From 8922c72452b03c184654e8c88832f4e226ccd4bd Mon Sep 17 00:00:00 2001 From: Uleat Date: Sat, 23 May 2015 18:59:03 -0400 Subject: [PATCH] Added a name block memset to the server character select code and a few comments to the OP_CharInfo encodes --- common/patches/rof.cpp | 6 +++--- common/patches/rof2.cpp | 6 +++--- common/patches/sod.cpp | 6 +++--- common/patches/sof.cpp | 6 +++--- common/patches/uf.cpp | 6 +++--- world/worlddb.cpp | 1 + 6 files changed, 16 insertions(+), 15 deletions(-) diff --git a/common/patches/rof.cpp b/common/patches/rof.cpp index 89ad7db7f..9f9f58ab2 100644 --- a/common/patches/rof.cpp +++ b/common/patches/rof.cpp @@ -2946,12 +2946,12 @@ namespace RoF for (int counter = 0; counter < character_count; ++counter) { emu_cse = (CharacterSelectEntry_Struct *)emu_ptr; - eq_cse = (structs::CharacterSelectEntry_Struct *)eq_ptr; + eq_cse = (structs::CharacterSelectEntry_Struct *)eq_ptr; // base address strcpy(eq_cse->Name, emu_cse->Name); eq_ptr += strlen(emu_cse->Name); - eq_cse = (structs::CharacterSelectEntry_Struct *)eq_ptr; - eq_cse->Name[0] = '\0'; + eq_cse = (structs::CharacterSelectEntry_Struct *)eq_ptr; // offset address (base + name length offset) + eq_cse->Name[0] = '\0'; // (offset)eq_cse->Name[0] = (base)eq_cse->Name[strlen(emu_cse->Name)] eq_cse->Class = emu_cse->Class; eq_cse->Race = emu_cse->Race; diff --git a/common/patches/rof2.cpp b/common/patches/rof2.cpp index 75c4c7836..708c5a6a9 100644 --- a/common/patches/rof2.cpp +++ b/common/patches/rof2.cpp @@ -3035,12 +3035,12 @@ namespace RoF2 for (int counter = 0; counter < character_count; ++counter) { emu_cse = (CharacterSelectEntry_Struct *)emu_ptr; - eq_cse = (structs::CharacterSelectEntry_Struct *)eq_ptr; + eq_cse = (structs::CharacterSelectEntry_Struct *)eq_ptr; // base address strcpy(eq_cse->Name, emu_cse->Name); eq_ptr += strlen(emu_cse->Name); - eq_cse = (structs::CharacterSelectEntry_Struct *)eq_ptr; - eq_cse->Name[0] = '\0'; + eq_cse = (structs::CharacterSelectEntry_Struct *)eq_ptr; // offset address (base + name length offset) + eq_cse->Name[0] = '\0'; // (offset)eq_cse->Name[0] = (base)eq_cse->Name[strlen(emu_cse->Name)] eq_cse->Class = emu_cse->Class; eq_cse->Race = emu_cse->Race; diff --git a/common/patches/sod.cpp b/common/patches/sod.cpp index 8e730cfb9..0a8073131 100644 --- a/common/patches/sod.cpp +++ b/common/patches/sod.cpp @@ -1962,7 +1962,7 @@ namespace SoD for (int counter = 0; counter < character_count; ++counter) { emu_cse = (CharacterSelectEntry_Struct *)emu_ptr; - eq_cse = (structs::CharacterSelectEntry_Struct *)eq_ptr; + eq_cse = (structs::CharacterSelectEntry_Struct *)eq_ptr; // base address eq_cse->Level = emu_cse->Level; eq_cse->HairStyle = emu_cse->HairStyle; @@ -1970,8 +1970,8 @@ namespace SoD strcpy(eq_cse->Name, emu_cse->Name); eq_ptr += strlen(emu_cse->Name); - eq_cse = (structs::CharacterSelectEntry_Struct *)eq_ptr; - eq_cse->Name[0] = '\0'; + eq_cse = (structs::CharacterSelectEntry_Struct *)eq_ptr; // offset address (base + name length offset) + eq_cse->Name[0] = '\0'; // (offset)eq_cse->Name[0] = (base)eq_cse->Name[strlen(emu_cse->Name)] eq_cse->Beard = emu_cse->Beard; eq_cse->HairColor = emu_cse->HairColor; diff --git a/common/patches/sof.cpp b/common/patches/sof.cpp index a677cede3..f0e8a2dbe 100644 --- a/common/patches/sof.cpp +++ b/common/patches/sof.cpp @@ -1621,7 +1621,7 @@ namespace SoF for (int counter = 0; counter < character_count; ++counter) { emu_cse = (CharacterSelectEntry_Struct *)emu_ptr; - eq_cse = (structs::CharacterSelectEntry_Struct *)eq_ptr; + eq_cse = (structs::CharacterSelectEntry_Struct *)eq_ptr; // base address eq_cse->Level = emu_cse->Level; eq_cse->HairStyle = emu_cse->HairStyle; @@ -1629,8 +1629,8 @@ namespace SoF strcpy(eq_cse->Name, emu_cse->Name); eq_ptr += strlen(emu_cse->Name); - eq_cse = (structs::CharacterSelectEntry_Struct *)eq_ptr; - eq_cse->Name[0] = '\0'; + eq_cse = (structs::CharacterSelectEntry_Struct *)eq_ptr; // offset address (base + name length offset) + eq_cse->Name[0] = '\0'; // (offset)eq_cse->Name[0] = (base)eq_cse->Name[strlen(emu_cse->Name)] eq_cse->Beard = emu_cse->Beard; eq_cse->HairColor = emu_cse->HairColor; diff --git a/common/patches/uf.cpp b/common/patches/uf.cpp index 4177e4f81..e963312e2 100644 --- a/common/patches/uf.cpp +++ b/common/patches/uf.cpp @@ -2253,7 +2253,7 @@ namespace UF for (int counter = 0; counter < character_count; ++counter) { emu_cse = (CharacterSelectEntry_Struct *)emu_ptr; - eq_cse = (structs::CharacterSelectEntry_Struct *)eq_ptr; + eq_cse = (structs::CharacterSelectEntry_Struct *)eq_ptr; // base address eq_cse->Level = emu_cse->Level; eq_cse->HairStyle = emu_cse->HairStyle; @@ -2261,8 +2261,8 @@ namespace UF strcpy(eq_cse->Name, emu_cse->Name); eq_ptr += strlen(emu_cse->Name); - eq_cse = (structs::CharacterSelectEntry_Struct *)eq_ptr; - eq_cse->Name[0] = '\0'; + eq_cse = (structs::CharacterSelectEntry_Struct *)eq_ptr; // offset address (base + name length offset) + eq_cse->Name[0] = '\0'; // (offset)eq_cse->Name[0] = (base)eq_cse->Name[strlen(emu_cse->Name)] eq_cse->Beard = emu_cse->Beard; eq_cse->HairColor = emu_cse->HairColor; diff --git a/world/worlddb.cpp b/world/worlddb.cpp index 4b2a75ac6..b09758888 100644 --- a/world/worlddb.cpp +++ b/world/worlddb.cpp @@ -105,6 +105,7 @@ void WorldDatabase::GetCharSelectInfo(uint32 accountID, EQApplicationPacket **ou memset(&pp, 0, sizeof(PlayerProfile_Struct)); /* Fill CharacterSelectEntry_Struct */ + memset(cse->Name, 0, sizeof(cse->Name)); strcpy(cse->Name, row[1]); cse->Class = (uint8)atoi(row[4]); cse->Race = (uint32)atoi(row[3]);