EQ2_Common_Structs.h 8.5 KB

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