EQ2_Common_Structs.h 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351
  1. /*
  2. EQ2Emulator: Everquest II Server Emulator
  3. Copyright (C) 2007 EQ2EMulator Development Team (http://www.eq2emulator.net)
  4. This file is part of EQ2Emulator.
  5. EQ2Emulator is free software: you can redistribute it and/or modify
  6. it under the terms of the GNU General Public License as published by
  7. the Free Software Foundation, either version 3 of the License, or
  8. (at your option) any later version.
  9. EQ2Emulator is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. GNU General Public License for more details.
  13. You should have received a copy of the GNU General Public License
  14. along with EQ2Emulator. If not, see <http://www.gnu.org/licenses/>.
  15. */
  16. #ifndef _EQ2COMMON_STRUCTS_
  17. #define _EQ2COMMON_STRUCTS_
  18. #define SPAWN_PACKET_SIZE 895
  19. #define EQUIPMENT_L_WEAPON_INDEX 0 //chars left hand weapon
  20. #define EQUIPMENT_R_WEAPON_INDEX 1 //chars right hand weapon
  21. #define EQUIPMENT_HELMET 2
  22. #pragma pack(1)
  23. struct KeyGen_Struct{
  24. int32 size;
  25. };
  26. struct KeyGen_End_Struct{
  27. int32 exponent_len;
  28. int8 exponent;
  29. };
  30. struct LoginByNumRequest_Struct{
  31. int32 account_id;
  32. int32 access_code;
  33. int16 version;
  34. int32 unknown2[5];
  35. };
  36. struct LS_LoginResponse{
  37. int8 reply_code; // 0 granted, 1 denied
  38. int16 unknown01;
  39. int8 unknown02;
  40. sint32 unknown03; // -1 denied, 0 granted
  41. sint32 unknown04;
  42. sint32 unknown05;
  43. sint32 unknown06;
  44. int8 unknown07;
  45. int8 unknown08;
  46. int8 unknown09;
  47. int8 unknown10;
  48. sint32 unknown11;
  49. int32 accountid;
  50. int16 unknown12;
  51. };
  52. #pragma pack()
  53. enum EQ2_EquipmentSlot {
  54. slot_primary=0,
  55. slot_secondary=1,
  56. slot_head=2,
  57. slot_chest=3,
  58. slot_shoulders=4,
  59. slot_forearms=5,
  60. slot_hands=6,
  61. slot_legs=7,
  62. slot_feet=8,
  63. slot_left_ring=9,
  64. slot_right_ring=10,
  65. slot_ears=11,
  66. slot_neck=12,
  67. slot_left_wrist=13,
  68. slot_right_wrist=14,
  69. slot_ranged=15,
  70. slot_ammo=16,
  71. slot_waist=17,
  72. slot_activate1=18,
  73. slot_activate2=19,
  74. slot_textures=20,
  75. slot_hair=21,
  76. slot_beard=22,
  77. slot_naked_chest=23,
  78. slot_naked_legs=24
  79. };
  80. struct EQ2_EquipmentItem{
  81. int16 type;
  82. EQ2_Color color;
  83. EQ2_Color highlight;
  84. };
  85. struct EQ2_Equipment{
  86. int16 equip_id[25];
  87. EQ2_Color color[25];
  88. EQ2_Color highlight[25];
  89. };
  90. #pragma pack(1)
  91. struct CharFeatures{
  92. int16 hair_type;
  93. int16 hair_face_type;
  94. int16 wing_type;
  95. int16 chest_type;
  96. int16 legs_type;
  97. sint8 eye_type[3];
  98. sint8 ear_type[3];
  99. sint8 eye_brow_type[3];
  100. sint8 cheek_type[3];
  101. sint8 lip_type[3];
  102. sint8 chin_type[3];
  103. sint8 nose_type[3];
  104. sint8 body_size;
  105. sint8 body_age;
  106. sint8 soga_eye_type[3];
  107. sint8 soga_ear_type[3];
  108. sint8 soga_eye_brow_type[3];
  109. sint8 soga_cheek_type[3];
  110. int16 soga_chest_type;
  111. int16 soga_legs_type;
  112. sint8 soga_lip_type[3];
  113. sint8 soga_chin_type[3];
  114. sint8 soga_nose_type[3];
  115. int16 soga_hair_type;
  116. int16 soga_hair_face_type;
  117. int16 combat_voice;
  118. int16 emote_voice;
  119. int16 mount_model_type;
  120. EQ2_Color mount_saddle_color;
  121. EQ2_Color mount_color;
  122. EQ2_Color skin_color;
  123. EQ2_Color eye_color;
  124. EQ2_Color hair_type_color;
  125. EQ2_Color hair_type_highlight_color;
  126. EQ2_Color hair_face_color;
  127. EQ2_Color hair_face_highlight_color;
  128. EQ2_Color hair_highlight_color;
  129. EQ2_Color wing_color1;
  130. EQ2_Color wing_color2;
  131. EQ2_Color shirt_color;
  132. EQ2_Color pants_color;
  133. EQ2_Color hair_color1;
  134. EQ2_Color hair_color2;
  135. EQ2_Color soga_skin_color;
  136. EQ2_Color soga_eye_color;
  137. EQ2_Color soga_hair_color1;
  138. EQ2_Color soga_hair_color2;
  139. EQ2_Color soga_hair_type_color;
  140. EQ2_Color soga_hair_type_highlight_color;
  141. EQ2_Color soga_hair_face_color;
  142. EQ2_Color soga_hair_face_highlight_color;
  143. EQ2_Color soga_hair_highlight_color;
  144. };
  145. struct PositionData{
  146. int32 grid_id;
  147. sint8 Speed1;
  148. sint8 Speed2;
  149. sint16 Dir1;
  150. sint16 Dir2;
  151. sint16 Pitch1;
  152. sint16 Pitch2;
  153. sint16 Roll;
  154. float X;
  155. float Y;
  156. float Z;
  157. float X2;
  158. float Y2;
  159. float Z2;
  160. float X3;
  161. float Y3;
  162. float Z3;
  163. float SpawnOrigX;
  164. float SpawnOrigY;
  165. float SpawnOrigZ;
  166. float SpawnOrigHeading;
  167. float SpawnOrigPitch;
  168. float SpawnOrigRoll;
  169. float SpeedX;
  170. float SpeedY;
  171. float SpeedZ;
  172. float SideSpeed;
  173. int16 collision_radius;
  174. int16 state;
  175. };
  176. struct AppearanceData {
  177. PositionData pos;
  178. int16 model_type;
  179. int16 soga_model_type;
  180. int16 activity_status;
  181. int16 visual_state;
  182. int16 action_state;
  183. int16 mood_state;
  184. int16 emote_state;
  185. int8 attackable;
  186. int8 icon;
  187. int8 hide_hood;
  188. int8 show_level;
  189. int8 locked_no_loot;
  190. int8 quest_flag;
  191. int8 heroic_flag;
  192. int8 show_command_icon;
  193. int8 display_hand_icon;
  194. int8 player_flag;
  195. int8 targetable;
  196. int8 display_name;
  197. char sub_title[255]; //Guild
  198. int32 display_hp;//0 = 100 percent
  199. int32 power_left; //bar not shown if >=100
  200. int8 adventure_class;
  201. int8 tradeskill_class;
  202. int8 level;
  203. int8 tradeskill_level;
  204. int8 min_level;
  205. int8 max_level;
  206. int8 encounter_level;
  207. int16 visible; // 02 = normal, 15 = shadow
  208. char name[128]; //size around here somewhere
  209. char last_name[64];
  210. char prefix_title[128];
  211. char suffix_title[128];
  212. int8 race;
  213. int8 gender;
  214. int32 randomize;
  215. int8 lua_race_id;
  216. };
  217. struct Player_Update{
  218. /*0000*/ int32 activity;
  219. /*0004*/ float unknown2; // 1
  220. /*0008*/ float direction1;
  221. /*0012*/ float unknown3[8];
  222. /*0044*/ float speed;
  223. /*0048*/ float side_speed;
  224. /*0052*/ float unknown4;
  225. /*0056*/ float orig_x;
  226. /*0060*/ float orig_y;
  227. /*0064*/ float orig_z;
  228. /*0068*/ float orig_x2;
  229. /*0072*/ float orig_y2;
  230. /*0076*/ float orig_z2;
  231. /*0080*/ float unknown5[3];
  232. /*0092*/ int32 unknown6;
  233. /*0096*/ float unknown7[3];
  234. /*0108*/ int32 unknown8;
  235. /*0112*/ int32 grid_location;
  236. /*0116*/ float x;
  237. /*0120*/ float y;
  238. /*0124*/ float z;
  239. /*0128*/ float direction2;
  240. /*0132*/ float pitch;
  241. /*0136*/ float unknown10;
  242. /*0140*/ float speed_x;
  243. /*0144*/ float speed_y;
  244. /*0148*/ float speed_z;
  245. };
  246. struct Player_Update283 {
  247. /*0000*/ int32 activity;
  248. /*0004*/ int32 movement_mode; // 1
  249. /*0008*/ float direction1;
  250. /*0012*/ float desiredpitch;
  251. /*0016*/ float desired_heading_speed;
  252. /*0020*/ float desired_pitch_speed;
  253. /*0024*/ float collision_radius;
  254. /*0028*/ float collision_scale;
  255. /*0032*/ float temp_scale;
  256. /*0036*/ float speed_modifier;
  257. /*0040*/ float swim_speed_modifier;
  258. /*0044*/ float speed;
  259. /*0048*/ float side_speed;
  260. /*0052*/ float vert_speed;
  261. /*0056*/ float orig_x;
  262. /*0060*/ float orig_y;
  263. /*0064*/ float orig_z;
  264. /*0068*/ float orig_x2;
  265. /*0072*/ float orig_y2;
  266. /*0076*/ float orig_z2;
  267. /*0080*/ int32 face_actor_id;
  268. /*0084*/ int32 face_actor_range;
  269. /*0088*/ int32 grid_location;
  270. /*0092*/ float x;
  271. /*0096*/ float y;
  272. /*0100*/ float z;
  273. /*0104*/ float direction2;
  274. /*0108*/ float pitch;
  275. /*0112*/ float roll;
  276. /*0116*/ float speed_x;
  277. /*0120*/ float speed_y;
  278. /*0124*/ float speed_z;
  279. };//0128
  280. struct Player_Update1096{
  281. /*0000*/ int32 activity;
  282. /*0004*/ float unknown2; // 1
  283. /*0008*/ float direction1;
  284. /*0012*/ float unknown3[8];
  285. /*0044*/ float unk_speed;
  286. /*0048*/ float speed;
  287. /*0052*/ float side_speed;
  288. /*0056*/ float unknown4;
  289. /*0060*/ float orig_x;
  290. /*0064*/ float orig_y;
  291. /*0068*/ float orig_z;
  292. /*0072*/ float orig_x2;
  293. /*0076*/ float orig_y2;
  294. /*0080*/ float orig_z2;
  295. /*0092*/ float unknown5[3];
  296. /*0096*/ int32 unknown6;
  297. /*0108*/ float unknown7[3];
  298. /*0112*/ int32 unknown8;
  299. /*0116*/ int32 grid_location;
  300. /*0120*/ float x;
  301. /*0124*/ float y;
  302. /*0128*/ float z;
  303. /*0132*/ float direction2;
  304. /*0136*/ float pitch;
  305. /*0140*/ float unknown10;
  306. /*0144*/ float speed_x;
  307. /*0148*/ float speed_y;
  308. /*0152*/ float speed_z;
  309. };
  310. struct Player_Update1144{
  311. /*0000*/ int32 activity;
  312. /*0004*/ float unknown2; // 1
  313. /*0008*/ float direction1;
  314. /*0012*/ float unknown3[12];
  315. /*0044*/ float unk_speed;
  316. /*0048*/ float speed;
  317. /*0052*/ float side_speed;
  318. /*0056*/ float unknown4;
  319. /*0060*/ float orig_x;
  320. /*0064*/ float orig_y;
  321. /*0068*/ float orig_z;
  322. /*0072*/ float orig_x2;
  323. /*0076*/ float orig_y2;
  324. /*0080*/ float orig_z2;
  325. /*0092*/ float unknown5[3];
  326. /*0096*/ int32 unknown6;
  327. /*0108*/ float unknown7[3];
  328. /*0112*/ int32 unknown8;
  329. /*0116*/ int32 grid_location;
  330. /*0120*/ float x;
  331. /*0124*/ float y;
  332. /*0128*/ float z;
  333. /*0132*/ float direction2;
  334. /*0136*/ float pitch;
  335. /*0140*/ float unknown10;
  336. /*0144*/ float speed_x;
  337. /*0148*/ float speed_y;
  338. /*0152*/ float speed_z;
  339. };
  340. #pragma pack()
  341. #endif