EQ2_Common_Structs.h 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356
  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. sint8 soga_body_size;
  116. sint8 soga_body_age;
  117. int16 soga_hair_type;
  118. int16 soga_hair_face_type;
  119. int16 combat_voice;
  120. int16 emote_voice;
  121. int16 mount_model_type;
  122. EQ2_Color mount_saddle_color;
  123. EQ2_Color mount_color;
  124. EQ2_Color skin_color;
  125. EQ2_Color eye_color;
  126. EQ2_Color hair_type_color;
  127. EQ2_Color hair_type_highlight_color;
  128. EQ2_Color hair_face_color;
  129. EQ2_Color hair_face_highlight_color;
  130. EQ2_Color hair_highlight_color;
  131. EQ2_Color wing_color1;
  132. EQ2_Color wing_color2;
  133. EQ2_Color shirt_color;
  134. EQ2_Color pants_color;
  135. EQ2_Color hair_color1;
  136. EQ2_Color hair_color2;
  137. EQ2_Color soga_skin_color;
  138. EQ2_Color soga_eye_color;
  139. EQ2_Color soga_hair_color1;
  140. EQ2_Color soga_hair_color2;
  141. EQ2_Color soga_hair_type_color;
  142. EQ2_Color soga_hair_type_highlight_color;
  143. EQ2_Color soga_hair_face_color;
  144. EQ2_Color soga_hair_face_highlight_color;
  145. EQ2_Color soga_hair_highlight_color;
  146. EQ2_Color model_color;
  147. EQ2_Color soga_model_color;
  148. };
  149. struct PositionData{
  150. int32 grid_id;
  151. sint8 Speed1;
  152. sint8 Speed2;
  153. sint16 Dir1;
  154. sint16 Dir2;
  155. sint16 Pitch1;
  156. sint16 Pitch2;
  157. sint16 Roll;
  158. float X;
  159. float Y;
  160. float Z;
  161. float X2;
  162. float Y2;
  163. float Z2;
  164. float X3;
  165. float Y3;
  166. float Z3;
  167. float SpawnOrigX;
  168. float SpawnOrigY;
  169. float SpawnOrigZ;
  170. float SpawnOrigHeading;
  171. float SpawnOrigPitch;
  172. float SpawnOrigRoll;
  173. float SpeedX;
  174. float SpeedY;
  175. float SpeedZ;
  176. float SideSpeed;
  177. int16 collision_radius;
  178. int16 state;
  179. };
  180. struct AppearanceData {
  181. PositionData pos;
  182. int16 model_type;
  183. int16 soga_model_type;
  184. int16 activity_status;
  185. int16 visual_state;
  186. int16 action_state;
  187. int16 mood_state;
  188. int16 emote_state;
  189. int8 attackable;
  190. int8 icon;
  191. int8 hide_hood;
  192. int8 show_level;
  193. int8 locked_no_loot;
  194. int8 quest_flag;
  195. int8 heroic_flag;
  196. int8 show_command_icon;
  197. int8 display_hand_icon;
  198. int8 player_flag;
  199. int8 targetable;
  200. int8 display_name;
  201. char sub_title[255]; //Guild
  202. int32 display_hp;//0 = 100 percent
  203. int32 power_left; //bar not shown if >=100
  204. int8 adventure_class;
  205. int8 tradeskill_class;
  206. int8 level;
  207. int8 tradeskill_level;
  208. int8 min_level;
  209. int8 max_level;
  210. int8 encounter_level;
  211. int16 visible; // 02 = normal, 15 = shadow
  212. char name[128]; //size around here somewhere
  213. char last_name[64];
  214. char prefix_title[128];
  215. char suffix_title[128];
  216. int8 race;
  217. int8 gender;
  218. int32 randomize;
  219. int8 lua_race_id;
  220. };
  221. struct Player_Update{
  222. /*0000*/ int32 activity;
  223. /*0004*/ float unknown2; // 1
  224. /*0008*/ float direction1;
  225. /*0012*/ float unknown3[8];
  226. /*0044*/ float speed;
  227. /*0048*/ float side_speed;
  228. /*0052*/ float unknown4;
  229. /*0056*/ float orig_x;
  230. /*0060*/ float orig_y;
  231. /*0064*/ float orig_z;
  232. /*0068*/ float orig_x2;
  233. /*0072*/ float orig_y2;
  234. /*0076*/ float orig_z2;
  235. /*0080*/ float unknown5[3];
  236. /*0092*/ int32 unknown6;
  237. /*0096*/ float unknown7[3];
  238. /*0108*/ int32 unknown8;
  239. /*0112*/ int32 grid_location;
  240. /*0116*/ float x;
  241. /*0120*/ float y;
  242. /*0124*/ float z;
  243. /*0128*/ float direction2;
  244. /*0132*/ float pitch;
  245. /*0136*/ float unknown10;
  246. /*0140*/ float speed_x;
  247. /*0144*/ float speed_y;
  248. /*0148*/ float speed_z;
  249. };
  250. struct Player_Update283 {
  251. /*0000*/ int32 activity;
  252. /*0004*/ int32 movement_mode; // 1
  253. /*0008*/ float direction1;
  254. /*0012*/ float desiredpitch;
  255. /*0016*/ float desired_heading_speed;
  256. /*0020*/ float desired_pitch_speed;
  257. /*0024*/ float collision_radius;
  258. /*0028*/ float collision_scale;
  259. /*0032*/ float temp_scale;
  260. /*0036*/ float speed_modifier;
  261. /*0040*/ float swim_speed_modifier;
  262. /*0044*/ float speed;
  263. /*0048*/ float side_speed;
  264. /*0052*/ float vert_speed;
  265. /*0056*/ float orig_x;
  266. /*0060*/ float orig_y;
  267. /*0064*/ float orig_z;
  268. /*0068*/ float orig_x2;
  269. /*0072*/ float orig_y2;
  270. /*0076*/ float orig_z2;
  271. /*0080*/ int32 face_actor_id;
  272. /*0084*/ int32 face_actor_range;
  273. /*0088*/ int32 grid_location;
  274. /*0092*/ float x;
  275. /*0096*/ float y;
  276. /*0100*/ float z;
  277. /*0104*/ float direction2;
  278. /*0108*/ float pitch;
  279. /*0112*/ float roll;
  280. /*0116*/ float speed_x;
  281. /*0120*/ float speed_y;
  282. /*0124*/ float speed_z;
  283. };//0128
  284. struct Player_Update1096{
  285. /*0000*/ int32 activity;
  286. /*0004*/ float unknown2; // 1
  287. /*0008*/ float direction1;
  288. /*0012*/ float unknown3[8];
  289. /*0044*/ float unk_speed;
  290. /*0048*/ float speed;
  291. /*0052*/ float side_speed;
  292. /*0056*/ float unknown4;
  293. /*0060*/ float orig_x;
  294. /*0064*/ float orig_y;
  295. /*0068*/ float orig_z;
  296. /*0072*/ float orig_x2;
  297. /*0076*/ float orig_y2;
  298. /*0080*/ float orig_z2;
  299. /*0092*/ float unknown5[3];
  300. /*0096*/ int32 unknown6;
  301. /*0108*/ float unknown7[3];
  302. /*0112*/ int32 unknown8;
  303. /*0116*/ int32 grid_location;
  304. /*0120*/ float x;
  305. /*0124*/ float y;
  306. /*0128*/ float z;
  307. /*0132*/ float direction2;
  308. /*0136*/ float pitch;
  309. /*0140*/ float unknown10;
  310. /*0144*/ float speed_x;
  311. /*0148*/ float speed_y;
  312. /*0152*/ float speed_z;
  313. };
  314. struct Player_Update1144{
  315. /*0000*/ int32 activity;
  316. /*0004*/ float unknown2; // 1
  317. /*0008*/ float direction1;
  318. /*0012*/ float unknown3[12];
  319. /*0044*/ float unk_speed;
  320. /*0048*/ float speed;
  321. /*0052*/ float side_speed;
  322. /*0056*/ float unknown4;
  323. /*0060*/ float orig_x;
  324. /*0064*/ float orig_y;
  325. /*0068*/ float orig_z;
  326. /*0072*/ float orig_x2;
  327. /*0076*/ float orig_y2;
  328. /*0080*/ float orig_z2;
  329. /*0092*/ float unknown5[3];
  330. /*0096*/ int32 unknown6;
  331. /*0108*/ float unknown7[3];
  332. /*0112*/ int32 unknown8;
  333. /*0116*/ int32 grid_location;
  334. /*0120*/ float x;
  335. /*0124*/ float y;
  336. /*0128*/ float z;
  337. /*0132*/ float direction2;
  338. /*0136*/ float pitch;
  339. /*0140*/ float unknown10;
  340. /*0144*/ float speed_x;
  341. /*0148*/ float speed_y;
  342. /*0152*/ float speed_z;
  343. };
  344. #pragma pack()
  345. #endif