From 668823eaf20fa5533d9226f57368b2254e98e22e Mon Sep 17 00:00:00 2001 From: Uleat Date: Mon, 5 Jan 2015 23:11:38 -0500 Subject: [PATCH] Fix for text link issues with items whose loregroup is '-1' --- common/eq_packet_structs.h | 27 ++++++++--------- common/patches/rof.cpp | 41 ++++++++++++------------- common/patches/rof2.cpp | 48 +++++++++++++----------------- common/patches/rof2_structs.h | 29 +++++++++--------- common/patches/rof_structs.h | 26 ++++++++-------- common/patches/sod.cpp | 41 ++++++++++++------------- common/patches/sod_structs.h | 24 +++++++-------- common/patches/sof.cpp | 41 ++++++++++++------------- common/patches/sof_structs.h | 24 +++++++-------- common/patches/titanium.cpp | 41 ++++++++++++------------- common/patches/titanium_structs.h | 22 +++++++------- common/patches/underfoot.cpp | 41 ++++++++++++------------- common/patches/underfoot_structs.h | 24 +++++++-------- zone/client.cpp | 44 +++++++++++++-------------- 14 files changed, 223 insertions(+), 250 deletions(-) diff --git a/common/eq_packet_structs.h b/common/eq_packet_structs.h index 32f7360fb..2c38b5bb0 100644 --- a/common/eq_packet_structs.h +++ b/common/eq_packet_structs.h @@ -5270,20 +5270,19 @@ struct ClientMarqueeMessage_Struct { typedef std::list ItemList; struct TextLinkBody_Struct { - uint8 unknown_1; /* '%1X' - Server field 1 */ - uint32 item_id; /* '%05X' - Server field 2 */ - uint32 augment_1; /* '%05X' - Server field 3 */ - uint32 augment_2; /* '%05X' - Server field 4 */ - uint32 augment_3; /* '%05X' - Server field 5 */ - uint32 augment_4; /* '%05X' - Server field 6 */ - uint32 augment_5; /* '%05X' - Server field 7 */ - uint32 augment_6; /* '%05X' - Server field 8 */ - uint8 unknown_2; /* '%1X' - Server field 9 */ - uint8 unknown_3; /* '%1X' - Server field 10 */ - uint32 unknown_4; /* '%04X' - Server field 11 */ - uint8 unknown_5; /* '%1X' - Server field 12 */ - uint32 ornament_icon; /* '%05X' - Server field 13 */ - int hash; /* '%08X' - Server field 14 */ + uint8 unknown_1; + uint32 item_id; + uint32 augment_1; + uint32 augment_2; + uint32 augment_3; + uint32 augment_4; + uint32 augment_5; + uint32 augment_6; + uint8 is_evolving; + uint32 lore_group; + uint8 evolve_max; + uint32 ornament_icon; + int hash; }; // Restore structure packing to default diff --git a/common/patches/rof.cpp b/common/patches/rof.cpp index d236d2b34..00b76da6c 100644 --- a/common/patches/rof.cpp +++ b/common/patches/rof.cpp @@ -5819,10 +5819,9 @@ namespace RoF serverLinkBodyStruct.augment_4 = (uint32)strtol(serverLinkBody.substr(21, 5).c_str(), nullptr, 16); serverLinkBodyStruct.augment_5 = (uint32)strtol(serverLinkBody.substr(26, 5).c_str(), nullptr, 16); serverLinkBodyStruct.augment_6 = (uint32)strtol(serverLinkBody.substr(31, 5).c_str(), nullptr, 16); - serverLinkBodyStruct.unknown_2 = (uint8)strtol(serverLinkBody.substr(36, 1).c_str(), nullptr, 16); - serverLinkBodyStruct.unknown_3 = (uint8)strtol(serverLinkBody.substr(37, 1).c_str(), nullptr, 16); - serverLinkBodyStruct.unknown_4 = (uint32)strtol(serverLinkBody.substr(38, 4).c_str(), nullptr, 16); - serverLinkBodyStruct.unknown_5 = (uint8)strtol(serverLinkBody.substr(42, 1).c_str(), nullptr, 16); + serverLinkBodyStruct.is_evolving = (uint8)strtol(serverLinkBody.substr(36, 1).c_str(), nullptr, 16); + serverLinkBodyStruct.lore_group = (uint32)strtol(serverLinkBody.substr(37, 5).c_str(), nullptr, 16); + serverLinkBodyStruct.evolve_max = (uint8)strtol(serverLinkBody.substr(42, 1).c_str(), nullptr, 16); serverLinkBodyStruct.ornament_icon = (uint32)strtol(serverLinkBody.substr(43, 5).c_str(), nullptr, 16); serverLinkBodyStruct.hash = (int)strtol(serverLinkBody.substr(48, 8).c_str(), nullptr, 16); @@ -5839,9 +5838,9 @@ namespace RoF rofLinkBodyStruct.augment_4 = serverLinkBodyStruct.augment_4; rofLinkBodyStruct.augment_5 = serverLinkBodyStruct.augment_5; rofLinkBodyStruct.augment_6 = serverLinkBodyStruct.augment_6; - rofLinkBodyStruct.unknown_2 = serverLinkBodyStruct.unknown_3; - rofLinkBodyStruct.unknown_3 = serverLinkBodyStruct.unknown_4; - rofLinkBodyStruct.unknown_4 = serverLinkBodyStruct.unknown_5; + rofLinkBodyStruct.is_evolving = serverLinkBodyStruct.is_evolving; + rofLinkBodyStruct.lore_group = serverLinkBodyStruct.lore_group; + rofLinkBodyStruct.evolve_max = serverLinkBodyStruct.evolve_max; rofLinkBodyStruct.ornament_icon = serverLinkBodyStruct.ornament_icon; rofLinkBodyStruct.hash = serverLinkBodyStruct.hash; } @@ -5858,9 +5857,9 @@ namespace RoF rofLinkBodyStruct.augment_4, rofLinkBodyStruct.augment_5, rofLinkBodyStruct.augment_6, - rofLinkBodyStruct.unknown_2, - rofLinkBodyStruct.unknown_3, - rofLinkBodyStruct.unknown_4, + rofLinkBodyStruct.is_evolving, + rofLinkBodyStruct.lore_group, + rofLinkBodyStruct.evolve_max, rofLinkBodyStruct.ornament_icon, rofLinkBodyStruct.hash ); @@ -5999,9 +5998,9 @@ namespace RoF rofLinkBodyStruct.augment_4 = (uint32)strtol(rofLinkBody.substr(21, 5).c_str(), nullptr, 16); rofLinkBodyStruct.augment_5 = (uint32)strtol(rofLinkBody.substr(26, 5).c_str(), nullptr, 16); rofLinkBodyStruct.augment_6 = (uint32)strtol(rofLinkBody.substr(31, 5).c_str(), nullptr, 16); - rofLinkBodyStruct.unknown_2 = (uint8)strtol(rofLinkBody.substr(36, 1).c_str(), nullptr, 16); - rofLinkBodyStruct.unknown_3 = (uint32)strtol(rofLinkBody.substr(37, 4).c_str(), nullptr, 16); - rofLinkBodyStruct.unknown_4 = (uint8)strtol(rofLinkBody.substr(41, 1).c_str(), nullptr, 16); + rofLinkBodyStruct.is_evolving = (uint8)strtol(rofLinkBody.substr(36, 1).c_str(), nullptr, 16); + rofLinkBodyStruct.lore_group = (uint32)strtol(rofLinkBody.substr(37, 4).c_str(), nullptr, 16); + rofLinkBodyStruct.evolve_max = (uint8)strtol(rofLinkBody.substr(41, 1).c_str(), nullptr, 16); rofLinkBodyStruct.ornament_icon = (uint32)strtol(rofLinkBody.substr(42, 5).c_str(), nullptr, 16); rofLinkBodyStruct.hash = (int)strtol(rofLinkBody.substr(47, 8).c_str(), nullptr, 16); @@ -6018,10 +6017,9 @@ namespace RoF serverLinkBodyStruct.augment_4 = rofLinkBodyStruct.augment_4; serverLinkBodyStruct.augment_5 = rofLinkBodyStruct.augment_5; serverLinkBodyStruct.augment_6 = rofLinkBodyStruct.augment_6; - serverLinkBodyStruct.unknown_2 = NOT_USED; - serverLinkBodyStruct.unknown_3 = rofLinkBodyStruct.unknown_2; - serverLinkBodyStruct.unknown_4 = rofLinkBodyStruct.unknown_3; - serverLinkBodyStruct.unknown_5 = rofLinkBodyStruct.unknown_4; + serverLinkBodyStruct.is_evolving = rofLinkBodyStruct.is_evolving; + serverLinkBodyStruct.lore_group = rofLinkBodyStruct.lore_group; + serverLinkBodyStruct.evolve_max = rofLinkBodyStruct.evolve_max; serverLinkBodyStruct.ornament_icon = rofLinkBodyStruct.ornament_icon; serverLinkBodyStruct.hash = rofLinkBodyStruct.hash; } @@ -6029,7 +6027,7 @@ namespace RoF static inline bool GenerateServerTextLinkBody(std::string& serverLinkBody, const TextLinkBody_Struct& serverLinkBodyStruct) { serverLinkBody = StringFormat( - "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%01X" "%01X" "%04X" "%01X" "%05X" "%08X", + "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%01X" "%05X" "%01X" "%05X" "%08X", serverLinkBodyStruct.unknown_1, serverLinkBodyStruct.item_id, serverLinkBodyStruct.augment_1, @@ -6038,10 +6036,9 @@ namespace RoF serverLinkBodyStruct.augment_4, serverLinkBodyStruct.augment_5, serverLinkBodyStruct.augment_6, - serverLinkBodyStruct.unknown_2, - serverLinkBodyStruct.unknown_3, - serverLinkBodyStruct.unknown_4, - serverLinkBodyStruct.unknown_5, + serverLinkBodyStruct.is_evolving, + serverLinkBodyStruct.lore_group, + serverLinkBodyStruct.evolve_max, serverLinkBodyStruct.ornament_icon, serverLinkBodyStruct.hash ); diff --git a/common/patches/rof2.cpp b/common/patches/rof2.cpp index 6356a6f7d..3d23c54bc 100644 --- a/common/patches/rof2.cpp +++ b/common/patches/rof2.cpp @@ -5914,10 +5914,9 @@ namespace RoF2 serverLinkBodyStruct.augment_4 = (uint32)strtol(serverLinkBody.substr(21, 5).c_str(), nullptr, 16); serverLinkBodyStruct.augment_5 = (uint32)strtol(serverLinkBody.substr(26, 5).c_str(), nullptr, 16); serverLinkBodyStruct.augment_6 = (uint32)strtol(serverLinkBody.substr(31, 5).c_str(), nullptr, 16); - serverLinkBodyStruct.unknown_2 = (uint8)strtol(serverLinkBody.substr(36, 1).c_str(), nullptr, 16); - serverLinkBodyStruct.unknown_3 = (uint8)strtol(serverLinkBody.substr(37, 1).c_str(), nullptr, 16); - serverLinkBodyStruct.unknown_4 = (uint32)strtol(serverLinkBody.substr(38, 4).c_str(), nullptr, 16); - serverLinkBodyStruct.unknown_5 = (uint8)strtol(serverLinkBody.substr(42, 1).c_str(), nullptr, 16); + serverLinkBodyStruct.is_evolving = (uint8)strtol(serverLinkBody.substr(36, 1).c_str(), nullptr, 16); + serverLinkBodyStruct.lore_group = (uint32)strtol(serverLinkBody.substr(37, 5).c_str(), nullptr, 16); + serverLinkBodyStruct.evolve_max = (uint8)strtol(serverLinkBody.substr(42, 1).c_str(), nullptr, 16); serverLinkBodyStruct.ornament_icon = (uint32)strtol(serverLinkBody.substr(43, 5).c_str(), nullptr, 16); serverLinkBodyStruct.hash = (int)strtol(serverLinkBody.substr(48, 8).c_str(), nullptr, 16); @@ -5934,10 +5933,9 @@ namespace RoF2 rof2LinkBodyStruct.augment_4 = serverLinkBodyStruct.augment_4; rof2LinkBodyStruct.augment_5 = serverLinkBodyStruct.augment_5; rof2LinkBodyStruct.augment_6 = serverLinkBodyStruct.augment_6; - rof2LinkBodyStruct.unknown_2 = serverLinkBodyStruct.unknown_2; - rof2LinkBodyStruct.unknown_3 = serverLinkBodyStruct.unknown_3; - rof2LinkBodyStruct.unknown_4 = serverLinkBodyStruct.unknown_4; - rof2LinkBodyStruct.unknown_5 = serverLinkBodyStruct.unknown_5; + rof2LinkBodyStruct.is_evolving = serverLinkBodyStruct.is_evolving; + rof2LinkBodyStruct.lore_group = serverLinkBodyStruct.lore_group; + rof2LinkBodyStruct.evolve_max = serverLinkBodyStruct.evolve_max; rof2LinkBodyStruct.ornament_icon = serverLinkBodyStruct.ornament_icon; rof2LinkBodyStruct.hash = serverLinkBodyStruct.hash; } @@ -5945,7 +5943,7 @@ namespace RoF2 static inline bool GenerateRoF2TextLinkBody(std::string& rof2LinkBody, const structs::TextLinkBody_Struct& rof2LinkBodyStruct) { rof2LinkBody = StringFormat( - "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%1X" "%1X" "%04X" "%1X" "%05X" "%08X", + "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%1X" "%05X" "%1X" "%05X" "%08X", rof2LinkBodyStruct.unknown_1, rof2LinkBodyStruct.item_id, rof2LinkBodyStruct.augment_1, @@ -5954,10 +5952,9 @@ namespace RoF2 rof2LinkBodyStruct.augment_4, rof2LinkBodyStruct.augment_5, rof2LinkBodyStruct.augment_6, - rof2LinkBodyStruct.unknown_2, - rof2LinkBodyStruct.unknown_3, - rof2LinkBodyStruct.unknown_4, - rof2LinkBodyStruct.unknown_5, + rof2LinkBodyStruct.is_evolving, + rof2LinkBodyStruct.lore_group, + rof2LinkBodyStruct.evolve_max, rof2LinkBodyStruct.ornament_icon, rof2LinkBodyStruct.hash ); @@ -6084,7 +6081,7 @@ namespace RoF2 static inline bool DegenerateRoF2TextLinkBody(structs::TextLinkBody_Struct& rof2LinkBodyStruct, const std::string& rof2LinkBody) { - // RoF2: "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%1X" "%1X" "%04X" "%1X" "%05X" "%08X" + // RoF2: "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%1X" "%05X" "%1X" "%05X" "%08X" memset(&rof2LinkBodyStruct, 0, sizeof(structs::TextLinkBody_Struct)); if (rof2LinkBody.length() != consts::TEXT_LINK_BODY_LENGTH) { return false; } @@ -6096,10 +6093,9 @@ namespace RoF2 rof2LinkBodyStruct.augment_4 = (uint32)strtol(rof2LinkBody.substr(21, 5).c_str(), nullptr, 16); rof2LinkBodyStruct.augment_5 = (uint32)strtol(rof2LinkBody.substr(26, 5).c_str(), nullptr, 16); rof2LinkBodyStruct.augment_6 = (uint32)strtol(rof2LinkBody.substr(31, 5).c_str(), nullptr, 16); - rof2LinkBodyStruct.unknown_2 = (uint8)strtol(rof2LinkBody.substr(36, 1).c_str(), nullptr, 16); - rof2LinkBodyStruct.unknown_3 = (uint32)strtol(rof2LinkBody.substr(37, 4).c_str(), nullptr, 16); - rof2LinkBodyStruct.unknown_4 = (uint8)strtol(rof2LinkBody.substr(41, 1).c_str(), nullptr, 16); - rof2LinkBodyStruct.unknown_5 = (uint8)strtol(rof2LinkBody.substr(42, 1).c_str(), nullptr, 16); + rof2LinkBodyStruct.is_evolving = (uint8)strtol(rof2LinkBody.substr(36, 1).c_str(), nullptr, 16); + rof2LinkBodyStruct.lore_group = (uint32)strtol(rof2LinkBody.substr(37, 5).c_str(), nullptr, 16); + rof2LinkBodyStruct.evolve_max = (uint8)strtol(rof2LinkBody.substr(42, 1).c_str(), nullptr, 16); rof2LinkBodyStruct.ornament_icon = (uint32)strtol(rof2LinkBody.substr(43, 5).c_str(), nullptr, 16); rof2LinkBodyStruct.hash = (int)strtol(rof2LinkBody.substr(48, 8).c_str(), nullptr, 16); @@ -6116,10 +6112,9 @@ namespace RoF2 serverLinkBodyStruct.augment_4 = rof2LinkBodyStruct.augment_4; serverLinkBodyStruct.augment_5 = rof2LinkBodyStruct.augment_5; serverLinkBodyStruct.augment_6 = rof2LinkBodyStruct.augment_6; - serverLinkBodyStruct.unknown_2 = rof2LinkBodyStruct.unknown_2; - serverLinkBodyStruct.unknown_3 = rof2LinkBodyStruct.unknown_3; - serverLinkBodyStruct.unknown_4 = rof2LinkBodyStruct.unknown_4; - serverLinkBodyStruct.unknown_5 = rof2LinkBodyStruct.unknown_5; + serverLinkBodyStruct.is_evolving = rof2LinkBodyStruct.is_evolving; + serverLinkBodyStruct.lore_group = rof2LinkBodyStruct.lore_group; + serverLinkBodyStruct.evolve_max = rof2LinkBodyStruct.evolve_max; serverLinkBodyStruct.ornament_icon = rof2LinkBodyStruct.ornament_icon; serverLinkBodyStruct.hash = rof2LinkBodyStruct.hash; } @@ -6127,7 +6122,7 @@ namespace RoF2 static inline bool GenerateServerTextLinkBody(std::string& serverLinkBody, const TextLinkBody_Struct& serverLinkBodyStruct) { serverLinkBody = StringFormat( - "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%01X" "%01X" "%04X" "%01X" "%05X" "%08X", + "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%01X" "%05X" "%01X" "%05X" "%08X", serverLinkBodyStruct.unknown_1, serverLinkBodyStruct.item_id, serverLinkBodyStruct.augment_1, @@ -6136,10 +6131,9 @@ namespace RoF2 serverLinkBodyStruct.augment_4, serverLinkBodyStruct.augment_5, serverLinkBodyStruct.augment_6, - serverLinkBodyStruct.unknown_2, - serverLinkBodyStruct.unknown_3, - serverLinkBodyStruct.unknown_4, - serverLinkBodyStruct.unknown_5, + serverLinkBodyStruct.is_evolving, + serverLinkBodyStruct.lore_group, + serverLinkBodyStruct.evolve_max, serverLinkBodyStruct.ornament_icon, serverLinkBodyStruct.hash ); diff --git a/common/patches/rof2_structs.h b/common/patches/rof2_structs.h index 60cf07808..0b2de35ab 100644 --- a/common/patches/rof2_structs.h +++ b/common/patches/rof2_structs.h @@ -4872,23 +4872,22 @@ struct MercenaryMerchantResponse_Struct { /*0004*/ }; -// RoF2: "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%1X" "%1X" "%04X" "%1X" "%05X" "%08X" +// RoF2: "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%1X" "%05X" "%1X" "%05X" "%08X" struct TextLinkBody_Struct { - uint8 unknown_1; /* '%1X' - RoF2 field 1 / Server field 1 */ - uint32 item_id; /* '%05X' - RoF2 field 2 / Server field 2 */ - uint32 augment_1; /* '%05X' - RoF2 field 3 / Server field 3 */ - uint32 augment_2; /* '%05X' - RoF2 field 4 / Server field 4 */ - uint32 augment_3; /* '%05X' - RoF2 field 5 / Server field 5 */ - uint32 augment_4; /* '%05X' - RoF2 field 6 / Server field 6 */ - uint32 augment_5; /* '%05X' - RoF2 field 7 / Server field 7 */ - uint32 augment_6; /* '%05X' - RoF2 field 8 / Server field 8 */ - uint8 unknown_2; /* '%1X' - RoF2 field 9 / Server field 9 */ - uint8 unknown_3; /* '%1X' - RoF2 field 10 / Server field 10 */ - uint32 unknown_4; /* '%04X' - RoF2 field 11 / Server field 11 */ - uint8 unknown_5; /* '%1X' - RoF2 field 12 / Server field 12 */ - uint32 ornament_icon; /* '%05X' - RoF2 field 13 / Server field 13 */ - int hash; /* '%08X' - RoF2 field 14 / Server field 14 */ + uint8 unknown_1; + uint32 item_id; + uint32 augment_1; + uint32 augment_2; + uint32 augment_3; + uint32 augment_4; + uint32 augment_5; + uint32 augment_6; + uint8 is_evolving; + uint32 lore_group; + uint8 evolve_max; + uint32 ornament_icon; + int hash; }; }; //end namespace structs diff --git a/common/patches/rof_structs.h b/common/patches/rof_structs.h index 4aa2c04a2..c5f02dc9b 100644 --- a/common/patches/rof_structs.h +++ b/common/patches/rof_structs.h @@ -4897,19 +4897,19 @@ struct MercenaryMerchantResponse_Struct { // RoF: "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%1X" "%04X" "%1X" "%05X" "%08X" struct TextLinkBody_Struct { - uint8 unknown_1; /* '%1X' - RoF field 1 / Server field 1 */ - uint32 item_id; /* '%05X' - RoF field 2 / Server field 2 */ - uint32 augment_1; /* '%05X' - RoF field 3 / Server field 3 */ - uint32 augment_2; /* '%05X' - RoF field 4 / Server field 4 */ - uint32 augment_3; /* '%05X' - RoF field 5 / Server field 5 */ - uint32 augment_4; /* '%05X' - RoF field 6 / Server field 6 */ - uint32 augment_5; /* '%05X' - RoF field 7 / Server field 7 */ - uint32 augment_6; /* '%05X' - RoF field 8 / Server field 8 */ - uint8 unknown_2; /* '%1X' - RoF field 9 / Server field 10 */ - uint32 unknown_3; /* '%04X' - RoF field 10 / Server field 11 */ - uint8 unknown_4; /* '%1X' - RoF field 11 / Server field 12 */ - uint32 ornament_icon; /* '%05X' - RoF field 12 / Server field 13 */ - int hash; /* '%08X' - RoF field 13 / Server field 14 */ + uint8 unknown_1; + uint32 item_id; + uint32 augment_1; + uint32 augment_2; + uint32 augment_3; + uint32 augment_4; + uint32 augment_5; + uint32 augment_6; + uint8 is_evolving; + uint32 lore_group; + uint8 evolve_max; + uint32 ornament_icon; + int hash; }; }; //end namespace structs diff --git a/common/patches/sod.cpp b/common/patches/sod.cpp index b30bad97d..94d1cb120 100644 --- a/common/patches/sod.cpp +++ b/common/patches/sod.cpp @@ -3911,10 +3911,9 @@ namespace SoD serverLinkBodyStruct.augment_4 = (uint32)strtol(serverLinkBody.substr(21, 5).c_str(), nullptr, 16); serverLinkBodyStruct.augment_5 = (uint32)strtol(serverLinkBody.substr(26, 5).c_str(), nullptr, 16); serverLinkBodyStruct.augment_6 = (uint32)strtol(serverLinkBody.substr(31, 5).c_str(), nullptr, 16); - serverLinkBodyStruct.unknown_2 = (uint8)strtol(serverLinkBody.substr(36, 1).c_str(), nullptr, 16); - serverLinkBodyStruct.unknown_3 = (uint8)strtol(serverLinkBody.substr(37, 1).c_str(), nullptr, 16); - serverLinkBodyStruct.unknown_4 = (uint32)strtol(serverLinkBody.substr(38, 4).c_str(), nullptr, 16); - serverLinkBodyStruct.unknown_5 = (uint8)strtol(serverLinkBody.substr(42, 1).c_str(), nullptr, 16); + serverLinkBodyStruct.is_evolving = (uint8)strtol(serverLinkBody.substr(36, 1).c_str(), nullptr, 16); + serverLinkBodyStruct.lore_group = (uint32)strtol(serverLinkBody.substr(37, 5).c_str(), nullptr, 16); + serverLinkBodyStruct.evolve_max = (uint8)strtol(serverLinkBody.substr(42, 1).c_str(), nullptr, 16); serverLinkBodyStruct.ornament_icon = (uint32)strtol(serverLinkBody.substr(43, 5).c_str(), nullptr, 16); serverLinkBodyStruct.hash = (int)strtol(serverLinkBody.substr(48, 8).c_str(), nullptr, 16); @@ -3930,9 +3929,9 @@ namespace SoD sodLinkBodyStruct.augment_3 = serverLinkBodyStruct.augment_3; sodLinkBodyStruct.augment_4 = serverLinkBodyStruct.augment_4; sodLinkBodyStruct.augment_5 = serverLinkBodyStruct.augment_5; - sodLinkBodyStruct.unknown_2 = serverLinkBodyStruct.unknown_3; - sodLinkBodyStruct.unknown_3 = serverLinkBodyStruct.unknown_4; - sodLinkBodyStruct.unknown_4 = serverLinkBodyStruct.unknown_5; + sodLinkBodyStruct.is_evolving = serverLinkBodyStruct.is_evolving; + sodLinkBodyStruct.lore_group = serverLinkBodyStruct.lore_group; + sodLinkBodyStruct.evolve_max = serverLinkBodyStruct.evolve_max; sodLinkBodyStruct.ornament_icon = serverLinkBodyStruct.ornament_icon; sodLinkBodyStruct.hash = serverLinkBodyStruct.hash; } @@ -3948,9 +3947,9 @@ namespace SoD sodLinkBodyStruct.augment_3, sodLinkBodyStruct.augment_4, sodLinkBodyStruct.augment_5, - sodLinkBodyStruct.unknown_2, - sodLinkBodyStruct.unknown_3, - sodLinkBodyStruct.unknown_4, + sodLinkBodyStruct.is_evolving, + sodLinkBodyStruct.lore_group, + sodLinkBodyStruct.evolve_max, sodLinkBodyStruct.ornament_icon, sodLinkBodyStruct.hash ); @@ -4088,9 +4087,9 @@ namespace SoD sodLinkBodyStruct.augment_3 = (uint32)strtol(sodLinkBody.substr(16, 5).c_str(), nullptr, 16); sodLinkBodyStruct.augment_4 = (uint32)strtol(sodLinkBody.substr(21, 5).c_str(), nullptr, 16); sodLinkBodyStruct.augment_5 = (uint32)strtol(sodLinkBody.substr(26, 5).c_str(), nullptr, 16); - sodLinkBodyStruct.unknown_2 = (uint8)strtol(sodLinkBody.substr(31, 1).c_str(), nullptr, 16); - sodLinkBodyStruct.unknown_3 = (uint32)strtol(sodLinkBody.substr(32, 4).c_str(), nullptr, 16); - sodLinkBodyStruct.unknown_4 = (uint8)strtol(sodLinkBody.substr(36, 1).c_str(), nullptr, 16); + sodLinkBodyStruct.is_evolving = (uint8)strtol(sodLinkBody.substr(31, 1).c_str(), nullptr, 16); + sodLinkBodyStruct.lore_group = (uint32)strtol(sodLinkBody.substr(32, 4).c_str(), nullptr, 16); + sodLinkBodyStruct.evolve_max = (uint8)strtol(sodLinkBody.substr(36, 1).c_str(), nullptr, 16); sodLinkBodyStruct.ornament_icon = (uint32)strtol(sodLinkBody.substr(37, 5).c_str(), nullptr, 16); sodLinkBodyStruct.hash = (int)strtol(sodLinkBody.substr(42, 8).c_str(), nullptr, 16); @@ -4107,10 +4106,9 @@ namespace SoD serverLinkBodyStruct.augment_4 = sodLinkBodyStruct.augment_4; serverLinkBodyStruct.augment_5 = sodLinkBodyStruct.augment_5; serverLinkBodyStruct.augment_6 = NOT_USED; - serverLinkBodyStruct.unknown_2 = NOT_USED; - serverLinkBodyStruct.unknown_3 = sodLinkBodyStruct.unknown_2; - serverLinkBodyStruct.unknown_4 = sodLinkBodyStruct.unknown_3; - serverLinkBodyStruct.unknown_5 = sodLinkBodyStruct.unknown_4; + serverLinkBodyStruct.is_evolving = sodLinkBodyStruct.is_evolving; + serverLinkBodyStruct.lore_group = sodLinkBodyStruct.lore_group; + serverLinkBodyStruct.evolve_max = sodLinkBodyStruct.evolve_max; serverLinkBodyStruct.ornament_icon = sodLinkBodyStruct.ornament_icon; serverLinkBodyStruct.hash = sodLinkBodyStruct.hash; } @@ -4118,7 +4116,7 @@ namespace SoD static inline bool GenerateServerTextLinkBody(std::string& serverLinkBody, const TextLinkBody_Struct& serverLinkBodyStruct) { serverLinkBody = StringFormat( - "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%01X" "%01X" "%04X" "%01X" "%05X" "%08X", + "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%01X" "%05X" "%01X" "%05X" "%08X", serverLinkBodyStruct.unknown_1, serverLinkBodyStruct.item_id, serverLinkBodyStruct.augment_1, @@ -4127,10 +4125,9 @@ namespace SoD serverLinkBodyStruct.augment_4, serverLinkBodyStruct.augment_5, serverLinkBodyStruct.augment_6, - serverLinkBodyStruct.unknown_2, - serverLinkBodyStruct.unknown_3, - serverLinkBodyStruct.unknown_4, - serverLinkBodyStruct.unknown_5, + serverLinkBodyStruct.is_evolving, + serverLinkBodyStruct.lore_group, + serverLinkBodyStruct.evolve_max, serverLinkBodyStruct.ornament_icon, serverLinkBodyStruct.hash ); diff --git a/common/patches/sod_structs.h b/common/patches/sod_structs.h index 3c1acc37d..39f81b7c1 100644 --- a/common/patches/sod_structs.h +++ b/common/patches/sod_structs.h @@ -4412,18 +4412,18 @@ struct MercenaryAssign_Struct { // SoF: "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%1X" "%04X" "%1X" "%05X" "%08X" struct TextLinkBody_Struct { - uint8 unknown_1; /* '%1X' - SoD field 1 / Server field 1 */ - uint32 item_id; /* '%05X' - SoD field 2 / Server field 2 */ - uint32 augment_1; /* '%05X' - SoD field 3 / Server field 3 */ - uint32 augment_2; /* '%05X' - SoD field 4 / Server field 4 */ - uint32 augment_3; /* '%05X' - SoD field 5 / Server field 5 */ - uint32 augment_4; /* '%05X' - SoD field 6 / Server field 6 */ - uint32 augment_5; /* '%05X' - SoD field 7 / Server field 7 */ - uint8 unknown_2; /* '%1X' - SoD field 8 / Server field 10 */ - uint32 unknown_3; /* '%04X' - SoD field 9 / Server field 11 */ - uint8 unknown_4; /* '%1X' - SoD field 10 / Server field 12 */ - uint32 ornament_icon; /* '%05X' - SoD field 11 / Server field 13 */ - int hash; /* '%08X' - SoD field 12 / Server field 14 */ + uint8 unknown_1; + uint32 item_id; + uint32 augment_1; + uint32 augment_2; + uint32 augment_3; + uint32 augment_4; + uint32 augment_5; + uint8 is_evolving; + uint32 lore_group; + uint8 evolve_max; + uint32 ornament_icon; + int hash; }; }; //end namespace structs diff --git a/common/patches/sof.cpp b/common/patches/sof.cpp index cd5a1ef71..a75b07307 100644 --- a/common/patches/sof.cpp +++ b/common/patches/sof.cpp @@ -3233,10 +3233,9 @@ namespace SoF serverLinkBodyStruct.augment_4 = (uint32)strtol(serverLinkBody.substr(21, 5).c_str(), nullptr, 16); serverLinkBodyStruct.augment_5 = (uint32)strtol(serverLinkBody.substr(26, 5).c_str(), nullptr, 16); serverLinkBodyStruct.augment_6 = (uint32)strtol(serverLinkBody.substr(31, 5).c_str(), nullptr, 16); - serverLinkBodyStruct.unknown_2 = (uint8)strtol(serverLinkBody.substr(36, 1).c_str(), nullptr, 16); - serverLinkBodyStruct.unknown_3 = (uint8)strtol(serverLinkBody.substr(37, 1).c_str(), nullptr, 16); - serverLinkBodyStruct.unknown_4 = (uint32)strtol(serverLinkBody.substr(38, 4).c_str(), nullptr, 16); - serverLinkBodyStruct.unknown_5 = (uint8)strtol(serverLinkBody.substr(42, 1).c_str(), nullptr, 16); + serverLinkBodyStruct.is_evolving = (uint8)strtol(serverLinkBody.substr(36, 1).c_str(), nullptr, 16); + serverLinkBodyStruct.lore_group = (uint32)strtol(serverLinkBody.substr(37, 5).c_str(), nullptr, 16); + serverLinkBodyStruct.evolve_max = (uint8)strtol(serverLinkBody.substr(42, 1).c_str(), nullptr, 16); serverLinkBodyStruct.ornament_icon = (uint32)strtol(serverLinkBody.substr(43, 5).c_str(), nullptr, 16); serverLinkBodyStruct.hash = (int)strtol(serverLinkBody.substr(48, 8).c_str(), nullptr, 16); @@ -3252,9 +3251,9 @@ namespace SoF sofLinkBodyStruct.augment_3 = serverLinkBodyStruct.augment_3; sofLinkBodyStruct.augment_4 = serverLinkBodyStruct.augment_4; sofLinkBodyStruct.augment_5 = serverLinkBodyStruct.augment_5; - sofLinkBodyStruct.unknown_2 = serverLinkBodyStruct.unknown_3; - sofLinkBodyStruct.unknown_3 = serverLinkBodyStruct.unknown_4; - sofLinkBodyStruct.unknown_4 = serverLinkBodyStruct.unknown_5; + sofLinkBodyStruct.is_evolving = serverLinkBodyStruct.is_evolving; + sofLinkBodyStruct.lore_group = serverLinkBodyStruct.lore_group; + sofLinkBodyStruct.evolve_max = serverLinkBodyStruct.evolve_max; sofLinkBodyStruct.ornament_icon = serverLinkBodyStruct.ornament_icon; sofLinkBodyStruct.hash = serverLinkBodyStruct.hash; } @@ -3270,9 +3269,9 @@ namespace SoF sofLinkBodyStruct.augment_3, sofLinkBodyStruct.augment_4, sofLinkBodyStruct.augment_5, - sofLinkBodyStruct.unknown_2, - sofLinkBodyStruct.unknown_3, - sofLinkBodyStruct.unknown_4, + sofLinkBodyStruct.is_evolving, + sofLinkBodyStruct.lore_group, + sofLinkBodyStruct.evolve_max, sofLinkBodyStruct.ornament_icon, sofLinkBodyStruct.hash ); @@ -3410,9 +3409,9 @@ namespace SoF sofLinkBodyStruct.augment_3 = (uint32)strtol(sofLinkBody.substr(16, 5).c_str(), nullptr, 16); sofLinkBodyStruct.augment_4 = (uint32)strtol(sofLinkBody.substr(21, 5).c_str(), nullptr, 16); sofLinkBodyStruct.augment_5 = (uint32)strtol(sofLinkBody.substr(26, 5).c_str(), nullptr, 16); - sofLinkBodyStruct.unknown_2 = (uint8)strtol(sofLinkBody.substr(31, 1).c_str(), nullptr, 16); - sofLinkBodyStruct.unknown_3 = (uint32)strtol(sofLinkBody.substr(32, 4).c_str(), nullptr, 16); - sofLinkBodyStruct.unknown_4 = (uint8)strtol(sofLinkBody.substr(36, 1).c_str(), nullptr, 16); + sofLinkBodyStruct.is_evolving = (uint8)strtol(sofLinkBody.substr(31, 1).c_str(), nullptr, 16); + sofLinkBodyStruct.lore_group = (uint32)strtol(sofLinkBody.substr(32, 4).c_str(), nullptr, 16); + sofLinkBodyStruct.evolve_max = (uint8)strtol(sofLinkBody.substr(36, 1).c_str(), nullptr, 16); sofLinkBodyStruct.ornament_icon = (uint32)strtol(sofLinkBody.substr(37, 5).c_str(), nullptr, 16); sofLinkBodyStruct.hash = (int)strtol(sofLinkBody.substr(42, 8).c_str(), nullptr, 16); @@ -3429,10 +3428,9 @@ namespace SoF serverLinkBodyStruct.augment_4 = sofLinkBodyStruct.augment_4; serverLinkBodyStruct.augment_5 = sofLinkBodyStruct.augment_5; serverLinkBodyStruct.augment_6 = NOT_USED; - serverLinkBodyStruct.unknown_2 = NOT_USED; - serverLinkBodyStruct.unknown_3 = sofLinkBodyStruct.unknown_2; - serverLinkBodyStruct.unknown_4 = sofLinkBodyStruct.unknown_3; - serverLinkBodyStruct.unknown_5 = sofLinkBodyStruct.unknown_4; + serverLinkBodyStruct.is_evolving = sofLinkBodyStruct.is_evolving; + serverLinkBodyStruct.lore_group = sofLinkBodyStruct.lore_group; + serverLinkBodyStruct.evolve_max = sofLinkBodyStruct.evolve_max; serverLinkBodyStruct.ornament_icon = sofLinkBodyStruct.ornament_icon; serverLinkBodyStruct.hash = sofLinkBodyStruct.hash; } @@ -3440,7 +3438,7 @@ namespace SoF static inline bool GenerateServerTextLinkBody(std::string& serverLinkBody, const TextLinkBody_Struct& serverLinkBodyStruct) { serverLinkBody = StringFormat( - "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%01X" "%01X" "%04X" "%01X" "%05X" "%08X", + "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%01X" "%05X" "%01X" "%05X" "%08X", serverLinkBodyStruct.unknown_1, serverLinkBodyStruct.item_id, serverLinkBodyStruct.augment_1, @@ -3449,10 +3447,9 @@ namespace SoF serverLinkBodyStruct.augment_4, serverLinkBodyStruct.augment_5, serverLinkBodyStruct.augment_6, - serverLinkBodyStruct.unknown_2, - serverLinkBodyStruct.unknown_3, - serverLinkBodyStruct.unknown_4, - serverLinkBodyStruct.unknown_5, + serverLinkBodyStruct.is_evolving, + serverLinkBodyStruct.lore_group, + serverLinkBodyStruct.evolve_max, serverLinkBodyStruct.ornament_icon, serverLinkBodyStruct.hash ); diff --git a/common/patches/sof_structs.h b/common/patches/sof_structs.h index 5986e0029..08d7f6fa6 100644 --- a/common/patches/sof_structs.h +++ b/common/patches/sof_structs.h @@ -4118,18 +4118,18 @@ struct AltCurrencySellItem_Struct { // SoF: "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%1X" "%04X" "%1X" "%05X" "%08X" struct TextLinkBody_Struct { - uint8 unknown_1; /* '%1X' - SoF field 1 / Server field 1 */ - uint32 item_id; /* '%05X' - SoF field 2 / Server field 2 */ - uint32 augment_1; /* '%05X' - SoF field 3 / Server field 3 */ - uint32 augment_2; /* '%05X' - SoF field 4 / Server field 4 */ - uint32 augment_3; /* '%05X' - SoF field 5 / Server field 5 */ - uint32 augment_4; /* '%05X' - SoF field 6 / Server field 6 */ - uint32 augment_5; /* '%05X' - SoF field 7 / Server field 7 */ - uint8 unknown_2; /* '%1X' - SoF field 8 / Server field 10 */ - uint32 unknown_3; /* '%04X' - SoF field 9 / Server field 11 */ - uint8 unknown_4; /* '%1X' - SoF field 10 / Server field 12 */ - uint32 ornament_icon; /* '%05X' - SoF field 11 / Server field 13 */ - int hash; /* '%08X' - SoF field 12 / Server field 14 */ + uint8 unknown_1; + uint32 item_id; + uint32 augment_1; + uint32 augment_2; + uint32 augment_3; + uint32 augment_4; + uint32 augment_5; + uint8 is_evolving; + uint32 lore_group; + uint8 evolve_max; + uint32 ornament_icon; + int hash; }; }; //end namespace structs diff --git a/common/patches/titanium.cpp b/common/patches/titanium.cpp index fb7faa4f9..e083f9561 100644 --- a/common/patches/titanium.cpp +++ b/common/patches/titanium.cpp @@ -1992,10 +1992,9 @@ namespace Titanium serverLinkBodyStruct.augment_4 = (uint32)strtol(serverLinkBody.substr(21, 5).c_str(), nullptr, 16); serverLinkBodyStruct.augment_5 = (uint32)strtol(serverLinkBody.substr(26, 5).c_str(), nullptr, 16); serverLinkBodyStruct.augment_6 = (uint32)strtol(serverLinkBody.substr(31, 5).c_str(), nullptr, 16); - serverLinkBodyStruct.unknown_2 = (uint8)strtol(serverLinkBody.substr(36, 1).c_str(), nullptr, 16); - serverLinkBodyStruct.unknown_3 = (uint8)strtol(serverLinkBody.substr(37, 1).c_str(), nullptr, 16); - serverLinkBodyStruct.unknown_4 = (uint32)strtol(serverLinkBody.substr(38, 4).c_str(), nullptr, 16); - serverLinkBodyStruct.unknown_5 = (uint8)strtol(serverLinkBody.substr(42, 1).c_str(), nullptr, 16); + serverLinkBodyStruct.is_evolving = (uint8)strtol(serverLinkBody.substr(36, 1).c_str(), nullptr, 16); + serverLinkBodyStruct.lore_group = (uint32)strtol(serverLinkBody.substr(37, 5).c_str(), nullptr, 16); + serverLinkBodyStruct.evolve_max = (uint8)strtol(serverLinkBody.substr(42, 1).c_str(), nullptr, 16); serverLinkBodyStruct.ornament_icon = (uint32)strtol(serverLinkBody.substr(43, 5).c_str(), nullptr, 16); serverLinkBodyStruct.hash = (int)strtol(serverLinkBody.substr(48, 8).c_str(), nullptr, 16); @@ -2011,9 +2010,9 @@ namespace Titanium titaniumLinkBodyStruct.augment_3 = serverLinkBodyStruct.augment_3; titaniumLinkBodyStruct.augment_4 = serverLinkBodyStruct.augment_4; titaniumLinkBodyStruct.augment_5 = serverLinkBodyStruct.augment_5; - titaniumLinkBodyStruct.unknown_2 = serverLinkBodyStruct.unknown_3; - titaniumLinkBodyStruct.unknown_3 = serverLinkBodyStruct.unknown_4; - titaniumLinkBodyStruct.unknown_4 = serverLinkBodyStruct.unknown_5; + titaniumLinkBodyStruct.is_evolving = serverLinkBodyStruct.is_evolving; + titaniumLinkBodyStruct.lore_group = serverLinkBodyStruct.lore_group; + titaniumLinkBodyStruct.evolve_max = serverLinkBodyStruct.evolve_max; titaniumLinkBodyStruct.hash = serverLinkBodyStruct.hash; } @@ -2028,9 +2027,9 @@ namespace Titanium titaniumLinkBodyStruct.augment_3, titaniumLinkBodyStruct.augment_4, titaniumLinkBodyStruct.augment_5, - titaniumLinkBodyStruct.unknown_2, - titaniumLinkBodyStruct.unknown_3, - titaniumLinkBodyStruct.unknown_4, + titaniumLinkBodyStruct.is_evolving, + titaniumLinkBodyStruct.lore_group, + titaniumLinkBodyStruct.evolve_max, titaniumLinkBodyStruct.hash ); @@ -2167,9 +2166,9 @@ namespace Titanium titaniumLinkBodyStruct.augment_3 = (uint32)strtol(titaniumLinkBody.substr(16, 5).c_str(), nullptr, 16); titaniumLinkBodyStruct.augment_4 = (uint32)strtol(titaniumLinkBody.substr(21, 5).c_str(), nullptr, 16); titaniumLinkBodyStruct.augment_5 = (uint32)strtol(titaniumLinkBody.substr(26, 5).c_str(), nullptr, 16); - titaniumLinkBodyStruct.unknown_2 = (uint8)strtol(titaniumLinkBody.substr(31, 1).c_str(), nullptr, 16); - titaniumLinkBodyStruct.unknown_3 = (uint32)strtol(titaniumLinkBody.substr(32, 4).c_str(), nullptr, 16); - titaniumLinkBodyStruct.unknown_4 = (uint8)strtol(titaniumLinkBody.substr(36, 1).c_str(), nullptr, 16); + titaniumLinkBodyStruct.is_evolving = (uint8)strtol(titaniumLinkBody.substr(31, 1).c_str(), nullptr, 16); + titaniumLinkBodyStruct.lore_group = (uint32)strtol(titaniumLinkBody.substr(32, 4).c_str(), nullptr, 16); + titaniumLinkBodyStruct.evolve_max = (uint8)strtol(titaniumLinkBody.substr(36, 1).c_str(), nullptr, 16); titaniumLinkBodyStruct.hash = (int)strtol(titaniumLinkBody.substr(37, 8).c_str(), nullptr, 16); return true; @@ -2185,10 +2184,9 @@ namespace Titanium serverLinkBodyStruct.augment_4 = titaniumLinkBodyStruct.augment_4; serverLinkBodyStruct.augment_5 = titaniumLinkBodyStruct.augment_5; serverLinkBodyStruct.augment_6 = NOT_USED; - serverLinkBodyStruct.unknown_2 = NOT_USED; - serverLinkBodyStruct.unknown_3 = titaniumLinkBodyStruct.unknown_2; - serverLinkBodyStruct.unknown_4 = titaniumLinkBodyStruct.unknown_3; - serverLinkBodyStruct.unknown_5 = titaniumLinkBodyStruct.unknown_4; + serverLinkBodyStruct.is_evolving = titaniumLinkBodyStruct.is_evolving; + serverLinkBodyStruct.lore_group = titaniumLinkBodyStruct.lore_group; + serverLinkBodyStruct.evolve_max = titaniumLinkBodyStruct.evolve_max; serverLinkBodyStruct.ornament_icon = NOT_USED; serverLinkBodyStruct.hash = titaniumLinkBodyStruct.hash; } @@ -2196,7 +2194,7 @@ namespace Titanium static inline bool GenerateServerTextLinkBody(std::string& serverLinkBody, const TextLinkBody_Struct& serverLinkBodyStruct) { serverLinkBody = StringFormat( - "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%01X" "%01X" "%04X" "%01X" "%05X" "%08X", + "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%01X" "%05X" "%01X" "%05X" "%08X", serverLinkBodyStruct.unknown_1, serverLinkBodyStruct.item_id, serverLinkBodyStruct.augment_1, @@ -2205,10 +2203,9 @@ namespace Titanium serverLinkBodyStruct.augment_4, serverLinkBodyStruct.augment_5, serverLinkBodyStruct.augment_6, - serverLinkBodyStruct.unknown_2, - serverLinkBodyStruct.unknown_3, - serverLinkBodyStruct.unknown_4, - serverLinkBodyStruct.unknown_5, + serverLinkBodyStruct.is_evolving, + serverLinkBodyStruct.lore_group, + serverLinkBodyStruct.evolve_max, serverLinkBodyStruct.ornament_icon, serverLinkBodyStruct.hash ); diff --git a/common/patches/titanium_structs.h b/common/patches/titanium_structs.h index 7fb2df5cd..06536c7c2 100644 --- a/common/patches/titanium_structs.h +++ b/common/patches/titanium_structs.h @@ -3332,17 +3332,17 @@ struct LFGuild_GuildToggle_Struct // 6.2: "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%1X" "%04X" "%1X" "%08X" struct TextLinkBody_Struct { - uint8 unknown_1; /* '%1X' - Titanium field 1 / Server field 1 */ - uint32 item_id; /* '%05X' - Titanium field 2 / Server field 2 */ - uint32 augment_1; /* '%05X' - Titanium field 3 / Server field 3 */ - uint32 augment_2; /* '%05X' - Titanium field 4 / Server field 4 */ - uint32 augment_3; /* '%05X' - Titanium field 5 / Server field 5 */ - uint32 augment_4; /* '%05X' - Titanium field 6 / Server field 6 */ - uint32 augment_5; /* '%05X' - Titanium field 7 / Server field 7 */ - uint8 unknown_2; /* '%1X' - Titanium field 8 / Server field 10 */ - uint32 unknown_3; /* '%04X' - Titanium field 9 / Server field 11 */ - uint8 unknown_4; /* '%1X' - Titanium field 10 / Server field 12 */ - int hash; /* '%08X' - Titanium field 11 / Server field 14 */ + uint8 unknown_1; + uint32 item_id; + uint32 augment_1; + uint32 augment_2; + uint32 augment_3; + uint32 augment_4; + uint32 augment_5; + uint8 is_evolving; + uint32 lore_group; + uint8 evolve_max; + int hash; }; }; //end namespace structs diff --git a/common/patches/underfoot.cpp b/common/patches/underfoot.cpp index e45dae148..022c1d62c 100644 --- a/common/patches/underfoot.cpp +++ b/common/patches/underfoot.cpp @@ -4346,10 +4346,9 @@ namespace Underfoot serverLinkBodyStruct.augment_4 = (uint32)strtol(serverLinkBody.substr(21, 5).c_str(), nullptr, 16); serverLinkBodyStruct.augment_5 = (uint32)strtol(serverLinkBody.substr(26, 5).c_str(), nullptr, 16); serverLinkBodyStruct.augment_6 = (uint32)strtol(serverLinkBody.substr(31, 5).c_str(), nullptr, 16); - serverLinkBodyStruct.unknown_2 = (uint8)strtol(serverLinkBody.substr(36, 1).c_str(), nullptr, 16); - serverLinkBodyStruct.unknown_3 = (uint8)strtol(serverLinkBody.substr(37, 1).c_str(), nullptr, 16); - serverLinkBodyStruct.unknown_4 = (uint32)strtol(serverLinkBody.substr(38, 4).c_str(), nullptr, 16); - serverLinkBodyStruct.unknown_5 = (uint8)strtol(serverLinkBody.substr(42, 1).c_str(), nullptr, 16); + serverLinkBodyStruct.is_evolving = (uint8)strtol(serverLinkBody.substr(36, 1).c_str(), nullptr, 16); + serverLinkBodyStruct.lore_group = (uint32)strtol(serverLinkBody.substr(37, 5).c_str(), nullptr, 16); + serverLinkBodyStruct.evolve_max = (uint8)strtol(serverLinkBody.substr(42, 1).c_str(), nullptr, 16); serverLinkBodyStruct.ornament_icon = (uint32)strtol(serverLinkBody.substr(43, 5).c_str(), nullptr, 16); serverLinkBodyStruct.hash = (int)strtol(serverLinkBody.substr(48, 8).c_str(), nullptr, 16); @@ -4365,9 +4364,9 @@ namespace Underfoot underfootLinkBodyStruct.augment_3 = serverLinkBodyStruct.augment_3; underfootLinkBodyStruct.augment_4 = serverLinkBodyStruct.augment_4; underfootLinkBodyStruct.augment_5 = serverLinkBodyStruct.augment_5; - underfootLinkBodyStruct.unknown_2 = serverLinkBodyStruct.unknown_3; - underfootLinkBodyStruct.unknown_3 = serverLinkBodyStruct.unknown_4; - underfootLinkBodyStruct.unknown_4 = serverLinkBodyStruct.unknown_5; + underfootLinkBodyStruct.is_evolving = serverLinkBodyStruct.is_evolving; + underfootLinkBodyStruct.lore_group = serverLinkBodyStruct.lore_group; + underfootLinkBodyStruct.evolve_max = serverLinkBodyStruct.evolve_max; underfootLinkBodyStruct.ornament_icon = serverLinkBodyStruct.ornament_icon; underfootLinkBodyStruct.hash = serverLinkBodyStruct.hash; } @@ -4383,9 +4382,9 @@ namespace Underfoot underfootLinkBodyStruct.augment_3, underfootLinkBodyStruct.augment_4, underfootLinkBodyStruct.augment_5, - underfootLinkBodyStruct.unknown_2, - underfootLinkBodyStruct.unknown_3, - underfootLinkBodyStruct.unknown_4, + underfootLinkBodyStruct.is_evolving, + underfootLinkBodyStruct.lore_group, + underfootLinkBodyStruct.evolve_max, underfootLinkBodyStruct.ornament_icon, underfootLinkBodyStruct.hash ); @@ -4523,9 +4522,9 @@ namespace Underfoot underfootLinkBodyStruct.augment_3 = (uint32)strtol(underfootLinkBody.substr(16, 5).c_str(), nullptr, 16); underfootLinkBodyStruct.augment_4 = (uint32)strtol(underfootLinkBody.substr(21, 5).c_str(), nullptr, 16); underfootLinkBodyStruct.augment_5 = (uint32)strtol(underfootLinkBody.substr(26, 5).c_str(), nullptr, 16); - underfootLinkBodyStruct.unknown_2 = (uint8)strtol(underfootLinkBody.substr(31, 1).c_str(), nullptr, 16); - underfootLinkBodyStruct.unknown_3 = (uint32)strtol(underfootLinkBody.substr(32, 4).c_str(), nullptr, 16); - underfootLinkBodyStruct.unknown_4 = (uint8)strtol(underfootLinkBody.substr(36, 1).c_str(), nullptr, 16); + underfootLinkBodyStruct.is_evolving = (uint8)strtol(underfootLinkBody.substr(31, 1).c_str(), nullptr, 16); + underfootLinkBodyStruct.lore_group = (uint32)strtol(underfootLinkBody.substr(32, 4).c_str(), nullptr, 16); + underfootLinkBodyStruct.evolve_max = (uint8)strtol(underfootLinkBody.substr(36, 1).c_str(), nullptr, 16); underfootLinkBodyStruct.ornament_icon = (uint32)strtol(underfootLinkBody.substr(37, 5).c_str(), nullptr, 16); underfootLinkBodyStruct.hash = (int)strtol(underfootLinkBody.substr(42, 8).c_str(), nullptr, 16); @@ -4542,10 +4541,9 @@ namespace Underfoot serverLinkBodyStruct.augment_4 = underfootLinkBodyStruct.augment_4; serverLinkBodyStruct.augment_5 = underfootLinkBodyStruct.augment_5; serverLinkBodyStruct.augment_6 = NOT_USED; - serverLinkBodyStruct.unknown_2 = NOT_USED; - serverLinkBodyStruct.unknown_3 = underfootLinkBodyStruct.unknown_2; - serverLinkBodyStruct.unknown_4 = underfootLinkBodyStruct.unknown_3; - serverLinkBodyStruct.unknown_5 = underfootLinkBodyStruct.unknown_4; + serverLinkBodyStruct.is_evolving = underfootLinkBodyStruct.is_evolving; + serverLinkBodyStruct.lore_group = underfootLinkBodyStruct.lore_group; + serverLinkBodyStruct.evolve_max = underfootLinkBodyStruct.evolve_max; serverLinkBodyStruct.ornament_icon = underfootLinkBodyStruct.ornament_icon; serverLinkBodyStruct.hash = underfootLinkBodyStruct.hash; } @@ -4553,7 +4551,7 @@ namespace Underfoot static inline bool GenerateServerTextLinkBody(std::string& serverLinkBody, const TextLinkBody_Struct& serverLinkBodyStruct) { serverLinkBody = StringFormat( - "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%01X" "%01X" "%04X" "%01X" "%05X" "%08X", + "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%01X" "%05X" "%01X" "%05X" "%08X", serverLinkBodyStruct.unknown_1, serverLinkBodyStruct.item_id, serverLinkBodyStruct.augment_1, @@ -4562,10 +4560,9 @@ namespace Underfoot serverLinkBodyStruct.augment_4, serverLinkBodyStruct.augment_5, serverLinkBodyStruct.augment_6, - serverLinkBodyStruct.unknown_2, - serverLinkBodyStruct.unknown_3, - serverLinkBodyStruct.unknown_4, - serverLinkBodyStruct.unknown_5, + serverLinkBodyStruct.is_evolving, + serverLinkBodyStruct.lore_group, + serverLinkBodyStruct.evolve_max, serverLinkBodyStruct.ornament_icon, serverLinkBodyStruct.hash ); diff --git a/common/patches/underfoot_structs.h b/common/patches/underfoot_structs.h index 9180a762b..b196e5867 100644 --- a/common/patches/underfoot_structs.h +++ b/common/patches/underfoot_structs.h @@ -4533,18 +4533,18 @@ struct MercenaryAssign_Struct { // SoF: "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%1X" "%04X" "%1X" "%05X" "%08X" struct TextLinkBody_Struct { - uint8 unknown_1; /* '%1X' - Underfoot field 1 / Server field 1 */ - uint32 item_id; /* '%05X' - Underfoot field 2 / Server field 2 */ - uint32 augment_1; /* '%05X' - Underfoot field 3 / Server field 3 */ - uint32 augment_2; /* '%05X' - Underfoot field 4 / Server field 4 */ - uint32 augment_3; /* '%05X' - Underfoot field 5 / Server field 5 */ - uint32 augment_4; /* '%05X' - Underfoot field 6 / Server field 6 */ - uint32 augment_5; /* '%05X' - Underfoot field 7 / Server field 7 */ - uint8 unknown_2; /* '%1X' - Underfoot field 8 / Server field 10 */ - uint32 unknown_3; /* '%04X' - Underfoot field 9 / Server field 11 */ - uint8 unknown_4; /* '%1X' - Underfoot field 10 / Server field 12 */ - uint32 ornament_icon; /* '%05X' - Underfoot field 11 / Server field 13 */ - int hash; /* '%08X' - Underfoot field 12 / Server field 14 */ + uint8 unknown_1; + uint32 item_id; + uint32 augment_1; + uint32 augment_2; + uint32 augment_3; + uint32 augment_4; + uint32 augment_5; + uint8 is_evolving; + uint32 lore_group; + uint8 evolve_max; + uint32 ornament_icon; + int hash; }; }; //end namespace structs diff --git a/zone/client.cpp b/zone/client.cpp index 54324932d..c8bbd25cf 100644 --- a/zone/client.cpp +++ b/zone/client.cpp @@ -8312,10 +8312,10 @@ void Client::TextLink::generate_body() /* Current server mask: EQClientRoF2 - RoF2: "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%1X" "%1X" "%04X" "%1X" "%05X" "%08X" (56) - RoF: "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%1X" "%04X" "%1X" "%05X" "%08X" (55) - SoF: "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%1X" "%04X" "%1X" "%05X" "%08X" (50) - 6.2: "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%1X" "%04X" "%1X" "%08X" (45) + RoF2: "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%1X" "%05X" "%1X" "%05X" "%08X" (56) + RoF: "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%1X" "%04X" "%1X" "%05X" "%08X" (55) + SoF: "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%1X" "%04X" "%1X" "%05X" "%08X" (50) + 6.2: "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%1X" "%04X" "%1X" "%08X" (45) */ // could use a ##_cast(&this) with a memset to '0' since these properties are inherited @@ -8328,12 +8328,11 @@ void Client::TextLink::generate_body() augment_4 = NOT_USED; /* field 6 */ augment_5 = NOT_USED; /* field 7 */ augment_6 = NOT_USED; /* field 8 */ - unknown_2 = NOT_USED; /* field 9 */ - unknown_3 = NOT_USED; /* field 10 */ - unknown_4 = NOT_USED; /* field 11 */ - unknown_5 = NOT_USED; /* field 12 */ - ornament_icon = NOT_USED; /* field 13 */ - hash = NOT_USED; /* field 14 */ + is_evolving = NOT_USED; /* field 9 */ + lore_group = NOT_USED; /* field 10 */ + evolve_max = NOT_USED; /* field 11 */ + ornament_icon = NOT_USED; /* field 12 */ + hash = NOT_USED; /* field 13 */ const Item_Struct* item_data = nullptr; @@ -8385,7 +8384,7 @@ void Client::TextLink::generate_body() } m_LinkBody = StringFormat( - "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%1X" "%1X" "%04X" "%1X" "%05X" "%08X", + "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%1X" "%05X" "%1X" "%05X" "%08X", unknown_1, item_id, augment_1, @@ -8394,10 +8393,9 @@ void Client::TextLink::generate_body() augment_4, augment_5, augment_6, - unknown_2, - unknown_3, - unknown_4, - unknown_5, + is_evolving, + lore_group, + evolve_max, ornament_icon, hash ); @@ -8450,10 +8448,9 @@ bool Client::TextLink::DegenerateLinkBody(TextLinkBody_Struct& textLinkBodyStruc textLinkBodyStruct.augment_4 = (uint32)strtol(textLinkBody.substr(21, 5).c_str(), nullptr, 16); textLinkBodyStruct.augment_5 = (uint32)strtol(textLinkBody.substr(26, 5).c_str(), nullptr, 16); textLinkBodyStruct.augment_6 = (uint32)strtol(textLinkBody.substr(31, 5).c_str(), nullptr, 16); - textLinkBodyStruct.unknown_2 = (uint8)strtol(textLinkBody.substr(36, 1).c_str(), nullptr, 16); - textLinkBodyStruct.unknown_3 = (uint8)strtol(textLinkBody.substr(37, 1).c_str(), nullptr, 16); - textLinkBodyStruct.unknown_4 = (uint32)strtol(textLinkBody.substr(38, 4).c_str(), nullptr, 16); - textLinkBodyStruct.unknown_5 = (uint8)strtol(textLinkBody.substr(42, 1).c_str(), nullptr, 16); + textLinkBodyStruct.is_evolving = (uint8)strtol(textLinkBody.substr(36, 1).c_str(), nullptr, 16); + textLinkBodyStruct.lore_group = (uint32)strtol(textLinkBody.substr(37, 5).c_str(), nullptr, 16); + textLinkBodyStruct.evolve_max = (uint8)strtol(textLinkBody.substr(42, 1).c_str(), nullptr, 16); textLinkBodyStruct.ornament_icon = (uint32)strtol(textLinkBody.substr(43, 5).c_str(), nullptr, 16); textLinkBodyStruct.hash = (int)strtol(textLinkBody.substr(48, 8).c_str(), nullptr, 16); @@ -8463,7 +8460,7 @@ bool Client::TextLink::DegenerateLinkBody(TextLinkBody_Struct& textLinkBodyStruc bool Client::TextLink::GenerateLinkBody(std::string& textLinkBody, const TextLinkBody_Struct& textLinkBodyStruct) { textLinkBody = StringFormat( - "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%1X" "%1X" "%04X" "%1X" "%05X" "%08X", + "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%1X" "%05X" "%1X" "%05X" "%08X", textLinkBodyStruct.unknown_1, textLinkBodyStruct.item_id, textLinkBodyStruct.augment_1, @@ -8472,10 +8469,9 @@ bool Client::TextLink::GenerateLinkBody(std::string& textLinkBody, const TextLin textLinkBodyStruct.augment_4, textLinkBodyStruct.augment_5, textLinkBodyStruct.augment_6, - textLinkBodyStruct.unknown_2, - textLinkBodyStruct.unknown_3, - textLinkBodyStruct.unknown_4, - textLinkBodyStruct.unknown_5, + textLinkBodyStruct.is_evolving, + textLinkBodyStruct.lore_group, + textLinkBodyStruct.evolve_max, textLinkBodyStruct.ornament_icon, textLinkBodyStruct.hash );