diff --git a/common/patches/larion.cpp b/common/patches/larion.cpp index d9af91f34..269fe28ea 100644 --- a/common/patches/larion.cpp +++ b/common/patches/larion.cpp @@ -2351,6 +2351,18 @@ namespace Larion // DECODE methods + DECODE(OP_EnterWorld) + { + DECODE_LENGTH_EXACT(structs::EnterWorld_Struct); + SETUP_DIRECT_DECODE(EnterWorld_Struct, structs::EnterWorld_Struct); + + memcpy(emu->name, eq->name, sizeof(emu->name)); + emu->return_home = 0; + emu->tutorial = 0; + + FINISH_DIRECT_DECODE(); + } + DECODE(OP_ZoneEntry) { DECODE_LENGTH_EXACT(structs::ClientZoneEntry_Struct); diff --git a/common/patches/larion_ops.h b/common/patches/larion_ops.h index 6a6771550..862fcae9e 100644 --- a/common/patches/larion_ops.h +++ b/common/patches/larion_ops.h @@ -18,6 +18,7 @@ E(OP_GroundSpawn) E(OP_SendZonepoints) //list of packets we need to decode on the way in: +D(OP_EnterWorld) D(OP_ZoneEntry) #undef E diff --git a/common/patches/larion_structs.h b/common/patches/larion_structs.h index a571e3ad2..606f7bf06 100644 --- a/common/patches/larion_structs.h +++ b/common/patches/larion_structs.h @@ -315,6 +315,12 @@ namespace Larion { /*04*/ struct ZonePoint_Entry zpe[0]; // Always add one extra to the end after all zonepoints }; + struct EnterWorld_Struct { + /*000*/ char name[64]; + /*064*/ int32 unknown1; + /*068*/ int32 unknown2; //larion handles these differently so for now im just going to ignore them till i figure it out + }; + #pragma pack() }; //end namespace structs