diff --git a/common/eq_packet_structs.h b/common/eq_packet_structs.h index 57dfe5482..1481fce8c 100644 --- a/common/eq_packet_structs.h +++ b/common/eq_packet_structs.h @@ -1279,8 +1279,8 @@ struct RequestClientZoneChange_Struct { struct Animation_Struct { /*00*/ uint16 spawnid; -/*02*/ uint8 action; -/*03*/ uint8 value; +/*02*/ uint8 speed; +/*03*/ uint8 action; /*04*/ }; diff --git a/common/patches/rof.cpp b/common/patches/rof.cpp index 81865d12b..1c9cf3fd6 100644 --- a/common/patches/rof.cpp +++ b/common/patches/rof.cpp @@ -227,8 +227,8 @@ namespace RoF SETUP_DIRECT_ENCODE(Animation_Struct, structs::Animation_Struct); OUT(spawnid); - OUT(value); OUT(action); + OUT(speed); FINISH_ENCODE(); } diff --git a/common/patches/rof2.cpp b/common/patches/rof2.cpp index 90affbf9a..681bef783 100644 --- a/common/patches/rof2.cpp +++ b/common/patches/rof2.cpp @@ -293,8 +293,8 @@ namespace RoF2 SETUP_DIRECT_ENCODE(Animation_Struct, structs::Animation_Struct); OUT(spawnid); - OUT(value); OUT(action); + OUT(speed); FINISH_ENCODE(); } diff --git a/common/patches/rof2_structs.h b/common/patches/rof2_structs.h index b33d568d0..21681df5e 100644 --- a/common/patches/rof2_structs.h +++ b/common/patches/rof2_structs.h @@ -1418,8 +1418,8 @@ struct RequestClientZoneChange_Struct { struct Animation_Struct { /*00*/ uint16 spawnid; -/*02*/ uint8 value; -/*03*/ uint8 action; +/*02*/ uint8 action; +/*03*/ uint8 speed; /*04*/ }; diff --git a/common/patches/rof_structs.h b/common/patches/rof_structs.h index 456c7b1a9..622305833 100644 --- a/common/patches/rof_structs.h +++ b/common/patches/rof_structs.h @@ -1448,8 +1448,8 @@ struct RequestClientZoneChange_Struct { struct Animation_Struct { /*00*/ uint16 spawnid; -/*02*/ uint8 value; -/*03*/ uint8 action; +/*02*/ uint8 action; +/*03*/ uint8 speed; /*04*/ }; diff --git a/common/patches/sod_structs.h b/common/patches/sod_structs.h index ef4dd32cb..55730423b 100644 --- a/common/patches/sod_structs.h +++ b/common/patches/sod_structs.h @@ -1205,8 +1205,8 @@ struct RequestClientZoneChange_Struct { struct Animation_Struct { /*00*/ uint16 spawnid; -/*02*/ uint8 action; -/*03*/ uint8 value; +/*02*/ uint8 speed; +/*03*/ uint8 action; /*04*/ }; diff --git a/common/patches/sof_structs.h b/common/patches/sof_structs.h index 51dbef1f5..fff207893 100644 --- a/common/patches/sof_structs.h +++ b/common/patches/sof_structs.h @@ -1182,8 +1182,8 @@ struct RequestClientZoneChange_Struct { struct Animation_Struct { /*00*/ uint16 spawnid; -/*02*/ uint8 action; -/*03*/ uint8 value; +/*02*/ uint8 speed; +/*03*/ uint8 action; /*04*/ }; diff --git a/common/patches/titanium_structs.h b/common/patches/titanium_structs.h index 1c3afd90b..5ad997d5b 100644 --- a/common/patches/titanium_structs.h +++ b/common/patches/titanium_structs.h @@ -1062,8 +1062,8 @@ struct RequestClientZoneChange_Struct { struct Animation_Struct { /*00*/ uint16 spawnid; -/*02*/ uint8 action; -/*03*/ uint8 value; +/*02*/ uint8 speed; +/*03*/ uint8 action; /*04*/ }; diff --git a/common/patches/uf_structs.h b/common/patches/uf_structs.h index d7b14b385..a82bfc4e3 100644 --- a/common/patches/uf_structs.h +++ b/common/patches/uf_structs.h @@ -1260,8 +1260,8 @@ struct RequestClientZoneChange_Struct { struct Animation_Struct { /*00*/ uint16 spawnid; -/*02*/ uint8 action; -/*03*/ uint8 value; +/*02*/ uint8 speed; +/*03*/ uint8 action; /*04*/ }; diff --git a/zone/client_packet.cpp b/zone/client_packet.cpp index 07e9876ca..e7a4684d8 100644 --- a/zone/client_packet.cpp +++ b/zone/client_packet.cpp @@ -2831,9 +2831,12 @@ void Client::Handle_OP_Animation(const EQApplicationPacket *app) Animation_Struct *s = (Animation_Struct *)app->pBuffer; //might verify spawn ID, but it wouldent affect anything - - DoAnim(s->action, s->value); - + if (GetClientVersion() >= ClientVersion::RoF) { + DoAnim(s->speed, s->action); //This was backwards so we gotta make up for it here + } else { + DoAnim(s->action, s->speed); + } + return; } diff --git a/zone/mob.cpp b/zone/mob.cpp index d196e3ce8..d47be1957 100644 --- a/zone/mob.cpp +++ b/zone/mob.cpp @@ -1314,12 +1314,12 @@ void Mob::DoAnim(const int animnum, int type, bool ackreq, eqFilterType filter) Animation_Struct* anim = (Animation_Struct*)outapp->pBuffer; anim->spawnid = GetID(); if(type == 0){ - anim->action = 10; - anim->value=animnum; + anim->action = animnum; + anim->speed = 10; } else{ anim->action = animnum; - anim->value=type; + anim->speed = type; } entity_list.QueueCloseClients(this, outapp, false, 200, 0, ackreq, filter); safe_delete(outapp);