Advertisement
Guest User

Untitled

a guest
Jan 20th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.21 KB | None | 0 0
  1. struct SpawnPositionUpdate_Struct
  2. {
  3. /*0000*/ int16 spawn_id; // Comment: Id of spawn to update
  4. /*0002*/ sint8 anim_type; // Comment: Velocity of the spawn on the client maalanar 2008-02-05: updated to be signed (confirmed by Sp0tter)
  5. /*0003*/ int8 heading; // Comment: Heading
  6. /*0004*/ sint8 delta_heading; // Comment: Heading Change
  7. /*0005*/ sint16 y_pos; // Comment: New Y position of spawn
  8. /*0007*/ sint16 x_pos; // Comment: New X position of spawn
  9. /*0009*/ sint16 z_pos; // Comment: New Z position of spawn
  10. /*0011*/ int32 delta_y:10, // Y Velocity
  11. spacer1:1, // ***Placeholder
  12. delta_z:10, // Z Velocity
  13. spacer2:1, // ***Placeholder
  14. delta_x:10; // X Velocity
  15. };
  16.  
  17. ENCODE(OP_ClientUpdate) {
  18. SETUP_VAR_ENCODE(PlayerPositionUpdateServer_Struct);
  19. EQApplicationPacket* app = new EQApplicationPacket(OP_MobUpdate, sizeof(structs::SpawnPositionUpdates_Struct) + sizeof(structs::SpawnPositionUpdate_Struct));
  20. structs::SpawnPositionUpdates_Struct *data = (structs::SpawnPositionUpdates_Struct *) app->pBuffer;
  21.  
  22. data->num_updates = 1;
  23. data->spawn_update[0].spawn_id = emu->spawn_id;
  24. data->spawn_update[0].anim_type = (sint8)emu->animation/4;
  25. data->spawn_update[0].x_pos = (sint16)EQ19toFloat(emu->x_pos);
  26. data->spawn_update[0].y_pos = (sint16)EQ19toFloat(emu->y_pos);
  27. data->spawn_update[0].z_pos = (sint16)EQ19toFloat(emu->z_pos) * 10;
  28. data->spawn_update[0].heading = (int8)EQ19toFloat(emu->heading);
  29. if ( emu->delta_x == 0 && emu->delta_y == 0)
  30. {
  31. data->spawn_update[0].delta_x = 0;
  32. data->spawn_update[0].delta_y = 0;
  33. data->spawn_update[0].delta_z = 0;
  34. }
  35. else
  36. {
  37. data->spawn_update[0].delta_x = (int32)NewEQ13toFloat(emu->delta_x)/125;
  38. data->spawn_update[0].delta_y = (int32)NewEQ13toFloat(emu->delta_y)/125;
  39. data->spawn_update[0].delta_z = (int32)NewEQ13toFloat(emu->delta_z)/40;
  40. }
  41. data->spawn_update[0].delta_heading = (sint8)NewEQ13toFloat(emu->delta_heading);
  42. dest->FastQueuePacket(&app);
  43. delete[] __emu_buffer;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement