Fix for text link issues with items whose loregroup is '-1'

This commit is contained in:
Uleat 2015-01-05 23:11:38 -05:00
parent 4b133c808c
commit 668823eaf2
14 changed files with 223 additions and 250 deletions

View File

@ -5270,20 +5270,19 @@ struct ClientMarqueeMessage_Struct {
typedef std::list<ServerLootItem_Struct*> ItemList; typedef std::list<ServerLootItem_Struct*> ItemList;
struct TextLinkBody_Struct { struct TextLinkBody_Struct {
uint8 unknown_1; /* '%1X' - Server field 1 */ uint8 unknown_1;
uint32 item_id; /* '%05X' - Server field 2 */ uint32 item_id;
uint32 augment_1; /* '%05X' - Server field 3 */ uint32 augment_1;
uint32 augment_2; /* '%05X' - Server field 4 */ uint32 augment_2;
uint32 augment_3; /* '%05X' - Server field 5 */ uint32 augment_3;
uint32 augment_4; /* '%05X' - Server field 6 */ uint32 augment_4;
uint32 augment_5; /* '%05X' - Server field 7 */ uint32 augment_5;
uint32 augment_6; /* '%05X' - Server field 8 */ uint32 augment_6;
uint8 unknown_2; /* '%1X' - Server field 9 */ uint8 is_evolving;
uint8 unknown_3; /* '%1X' - Server field 10 */ uint32 lore_group;
uint32 unknown_4; /* '%04X' - Server field 11 */ uint8 evolve_max;
uint8 unknown_5; /* '%1X' - Server field 12 */ uint32 ornament_icon;
uint32 ornament_icon; /* '%05X' - Server field 13 */ int hash;
int hash; /* '%08X' - Server field 14 */
}; };
// Restore structure packing to default // Restore structure packing to default

View File

@ -5819,10 +5819,9 @@ namespace RoF
serverLinkBodyStruct.augment_4 = (uint32)strtol(serverLinkBody.substr(21, 5).c_str(), nullptr, 16); 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_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.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.is_evolving = (uint8)strtol(serverLinkBody.substr(36, 1).c_str(), nullptr, 16);
serverLinkBodyStruct.unknown_3 = (uint8)strtol(serverLinkBody.substr(37, 1).c_str(), nullptr, 16); serverLinkBodyStruct.lore_group = (uint32)strtol(serverLinkBody.substr(37, 5).c_str(), nullptr, 16);
serverLinkBodyStruct.unknown_4 = (uint32)strtol(serverLinkBody.substr(38, 4).c_str(), nullptr, 16); serverLinkBodyStruct.evolve_max = (uint8)strtol(serverLinkBody.substr(42, 1).c_str(), nullptr, 16);
serverLinkBodyStruct.unknown_5 = (uint8)strtol(serverLinkBody.substr(42, 1).c_str(), nullptr, 16);
serverLinkBodyStruct.ornament_icon = (uint32)strtol(serverLinkBody.substr(43, 5).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); 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_4 = serverLinkBodyStruct.augment_4;
rofLinkBodyStruct.augment_5 = serverLinkBodyStruct.augment_5; rofLinkBodyStruct.augment_5 = serverLinkBodyStruct.augment_5;
rofLinkBodyStruct.augment_6 = serverLinkBodyStruct.augment_6; rofLinkBodyStruct.augment_6 = serverLinkBodyStruct.augment_6;
rofLinkBodyStruct.unknown_2 = serverLinkBodyStruct.unknown_3; rofLinkBodyStruct.is_evolving = serverLinkBodyStruct.is_evolving;
rofLinkBodyStruct.unknown_3 = serverLinkBodyStruct.unknown_4; rofLinkBodyStruct.lore_group = serverLinkBodyStruct.lore_group;
rofLinkBodyStruct.unknown_4 = serverLinkBodyStruct.unknown_5; rofLinkBodyStruct.evolve_max = serverLinkBodyStruct.evolve_max;
rofLinkBodyStruct.ornament_icon = serverLinkBodyStruct.ornament_icon; rofLinkBodyStruct.ornament_icon = serverLinkBodyStruct.ornament_icon;
rofLinkBodyStruct.hash = serverLinkBodyStruct.hash; rofLinkBodyStruct.hash = serverLinkBodyStruct.hash;
} }
@ -5858,9 +5857,9 @@ namespace RoF
rofLinkBodyStruct.augment_4, rofLinkBodyStruct.augment_4,
rofLinkBodyStruct.augment_5, rofLinkBodyStruct.augment_5,
rofLinkBodyStruct.augment_6, rofLinkBodyStruct.augment_6,
rofLinkBodyStruct.unknown_2, rofLinkBodyStruct.is_evolving,
rofLinkBodyStruct.unknown_3, rofLinkBodyStruct.lore_group,
rofLinkBodyStruct.unknown_4, rofLinkBodyStruct.evolve_max,
rofLinkBodyStruct.ornament_icon, rofLinkBodyStruct.ornament_icon,
rofLinkBodyStruct.hash rofLinkBodyStruct.hash
); );
@ -5999,9 +5998,9 @@ namespace RoF
rofLinkBodyStruct.augment_4 = (uint32)strtol(rofLinkBody.substr(21, 5).c_str(), nullptr, 16); 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_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.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.is_evolving = (uint8)strtol(rofLinkBody.substr(36, 1).c_str(), nullptr, 16);
rofLinkBodyStruct.unknown_3 = (uint32)strtol(rofLinkBody.substr(37, 4).c_str(), nullptr, 16); rofLinkBodyStruct.lore_group = (uint32)strtol(rofLinkBody.substr(37, 4).c_str(), nullptr, 16);
rofLinkBodyStruct.unknown_4 = (uint8)strtol(rofLinkBody.substr(41, 1).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.ornament_icon = (uint32)strtol(rofLinkBody.substr(42, 5).c_str(), nullptr, 16);
rofLinkBodyStruct.hash = (int)strtol(rofLinkBody.substr(47, 8).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_4 = rofLinkBodyStruct.augment_4;
serverLinkBodyStruct.augment_5 = rofLinkBodyStruct.augment_5; serverLinkBodyStruct.augment_5 = rofLinkBodyStruct.augment_5;
serverLinkBodyStruct.augment_6 = rofLinkBodyStruct.augment_6; serverLinkBodyStruct.augment_6 = rofLinkBodyStruct.augment_6;
serverLinkBodyStruct.unknown_2 = NOT_USED; serverLinkBodyStruct.is_evolving = rofLinkBodyStruct.is_evolving;
serverLinkBodyStruct.unknown_3 = rofLinkBodyStruct.unknown_2; serverLinkBodyStruct.lore_group = rofLinkBodyStruct.lore_group;
serverLinkBodyStruct.unknown_4 = rofLinkBodyStruct.unknown_3; serverLinkBodyStruct.evolve_max = rofLinkBodyStruct.evolve_max;
serverLinkBodyStruct.unknown_5 = rofLinkBodyStruct.unknown_4;
serverLinkBodyStruct.ornament_icon = rofLinkBodyStruct.ornament_icon; serverLinkBodyStruct.ornament_icon = rofLinkBodyStruct.ornament_icon;
serverLinkBodyStruct.hash = rofLinkBodyStruct.hash; serverLinkBodyStruct.hash = rofLinkBodyStruct.hash;
} }
@ -6029,7 +6027,7 @@ namespace RoF
static inline bool GenerateServerTextLinkBody(std::string& serverLinkBody, const TextLinkBody_Struct& serverLinkBodyStruct) static inline bool GenerateServerTextLinkBody(std::string& serverLinkBody, const TextLinkBody_Struct& serverLinkBodyStruct)
{ {
serverLinkBody = StringFormat( 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.unknown_1,
serverLinkBodyStruct.item_id, serverLinkBodyStruct.item_id,
serverLinkBodyStruct.augment_1, serverLinkBodyStruct.augment_1,
@ -6038,10 +6036,9 @@ namespace RoF
serverLinkBodyStruct.augment_4, serverLinkBodyStruct.augment_4,
serverLinkBodyStruct.augment_5, serverLinkBodyStruct.augment_5,
serverLinkBodyStruct.augment_6, serverLinkBodyStruct.augment_6,
serverLinkBodyStruct.unknown_2, serverLinkBodyStruct.is_evolving,
serverLinkBodyStruct.unknown_3, serverLinkBodyStruct.lore_group,
serverLinkBodyStruct.unknown_4, serverLinkBodyStruct.evolve_max,
serverLinkBodyStruct.unknown_5,
serverLinkBodyStruct.ornament_icon, serverLinkBodyStruct.ornament_icon,
serverLinkBodyStruct.hash serverLinkBodyStruct.hash
); );

View File

@ -5914,10 +5914,9 @@ namespace RoF2
serverLinkBodyStruct.augment_4 = (uint32)strtol(serverLinkBody.substr(21, 5).c_str(), nullptr, 16); 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_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.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.is_evolving = (uint8)strtol(serverLinkBody.substr(36, 1).c_str(), nullptr, 16);
serverLinkBodyStruct.unknown_3 = (uint8)strtol(serverLinkBody.substr(37, 1).c_str(), nullptr, 16); serverLinkBodyStruct.lore_group = (uint32)strtol(serverLinkBody.substr(37, 5).c_str(), nullptr, 16);
serverLinkBodyStruct.unknown_4 = (uint32)strtol(serverLinkBody.substr(38, 4).c_str(), nullptr, 16); serverLinkBodyStruct.evolve_max = (uint8)strtol(serverLinkBody.substr(42, 1).c_str(), nullptr, 16);
serverLinkBodyStruct.unknown_5 = (uint8)strtol(serverLinkBody.substr(42, 1).c_str(), nullptr, 16);
serverLinkBodyStruct.ornament_icon = (uint32)strtol(serverLinkBody.substr(43, 5).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); 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_4 = serverLinkBodyStruct.augment_4;
rof2LinkBodyStruct.augment_5 = serverLinkBodyStruct.augment_5; rof2LinkBodyStruct.augment_5 = serverLinkBodyStruct.augment_5;
rof2LinkBodyStruct.augment_6 = serverLinkBodyStruct.augment_6; rof2LinkBodyStruct.augment_6 = serverLinkBodyStruct.augment_6;
rof2LinkBodyStruct.unknown_2 = serverLinkBodyStruct.unknown_2; rof2LinkBodyStruct.is_evolving = serverLinkBodyStruct.is_evolving;
rof2LinkBodyStruct.unknown_3 = serverLinkBodyStruct.unknown_3; rof2LinkBodyStruct.lore_group = serverLinkBodyStruct.lore_group;
rof2LinkBodyStruct.unknown_4 = serverLinkBodyStruct.unknown_4; rof2LinkBodyStruct.evolve_max = serverLinkBodyStruct.evolve_max;
rof2LinkBodyStruct.unknown_5 = serverLinkBodyStruct.unknown_5;
rof2LinkBodyStruct.ornament_icon = serverLinkBodyStruct.ornament_icon; rof2LinkBodyStruct.ornament_icon = serverLinkBodyStruct.ornament_icon;
rof2LinkBodyStruct.hash = serverLinkBodyStruct.hash; rof2LinkBodyStruct.hash = serverLinkBodyStruct.hash;
} }
@ -5945,7 +5943,7 @@ namespace RoF2
static inline bool GenerateRoF2TextLinkBody(std::string& rof2LinkBody, const structs::TextLinkBody_Struct& rof2LinkBodyStruct) static inline bool GenerateRoF2TextLinkBody(std::string& rof2LinkBody, const structs::TextLinkBody_Struct& rof2LinkBodyStruct)
{ {
rof2LinkBody = StringFormat( 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.unknown_1,
rof2LinkBodyStruct.item_id, rof2LinkBodyStruct.item_id,
rof2LinkBodyStruct.augment_1, rof2LinkBodyStruct.augment_1,
@ -5954,10 +5952,9 @@ namespace RoF2
rof2LinkBodyStruct.augment_4, rof2LinkBodyStruct.augment_4,
rof2LinkBodyStruct.augment_5, rof2LinkBodyStruct.augment_5,
rof2LinkBodyStruct.augment_6, rof2LinkBodyStruct.augment_6,
rof2LinkBodyStruct.unknown_2, rof2LinkBodyStruct.is_evolving,
rof2LinkBodyStruct.unknown_3, rof2LinkBodyStruct.lore_group,
rof2LinkBodyStruct.unknown_4, rof2LinkBodyStruct.evolve_max,
rof2LinkBodyStruct.unknown_5,
rof2LinkBodyStruct.ornament_icon, rof2LinkBodyStruct.ornament_icon,
rof2LinkBodyStruct.hash rof2LinkBodyStruct.hash
); );
@ -6084,7 +6081,7 @@ namespace RoF2
static inline bool DegenerateRoF2TextLinkBody(structs::TextLinkBody_Struct& rof2LinkBodyStruct, const std::string& rof2LinkBody) 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)); memset(&rof2LinkBodyStruct, 0, sizeof(structs::TextLinkBody_Struct));
if (rof2LinkBody.length() != consts::TEXT_LINK_BODY_LENGTH) { return false; } 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_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_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.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.is_evolving = (uint8)strtol(rof2LinkBody.substr(36, 1).c_str(), nullptr, 16);
rof2LinkBodyStruct.unknown_3 = (uint32)strtol(rof2LinkBody.substr(37, 4).c_str(), nullptr, 16); rof2LinkBodyStruct.lore_group = (uint32)strtol(rof2LinkBody.substr(37, 5).c_str(), nullptr, 16);
rof2LinkBodyStruct.unknown_4 = (uint8)strtol(rof2LinkBody.substr(41, 1).c_str(), nullptr, 16); rof2LinkBodyStruct.evolve_max = (uint8)strtol(rof2LinkBody.substr(42, 1).c_str(), nullptr, 16);
rof2LinkBodyStruct.unknown_5 = (uint8)strtol(rof2LinkBody.substr(42, 1).c_str(), nullptr, 16);
rof2LinkBodyStruct.ornament_icon = (uint32)strtol(rof2LinkBody.substr(43, 5).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); 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_4 = rof2LinkBodyStruct.augment_4;
serverLinkBodyStruct.augment_5 = rof2LinkBodyStruct.augment_5; serverLinkBodyStruct.augment_5 = rof2LinkBodyStruct.augment_5;
serverLinkBodyStruct.augment_6 = rof2LinkBodyStruct.augment_6; serverLinkBodyStruct.augment_6 = rof2LinkBodyStruct.augment_6;
serverLinkBodyStruct.unknown_2 = rof2LinkBodyStruct.unknown_2; serverLinkBodyStruct.is_evolving = rof2LinkBodyStruct.is_evolving;
serverLinkBodyStruct.unknown_3 = rof2LinkBodyStruct.unknown_3; serverLinkBodyStruct.lore_group = rof2LinkBodyStruct.lore_group;
serverLinkBodyStruct.unknown_4 = rof2LinkBodyStruct.unknown_4; serverLinkBodyStruct.evolve_max = rof2LinkBodyStruct.evolve_max;
serverLinkBodyStruct.unknown_5 = rof2LinkBodyStruct.unknown_5;
serverLinkBodyStruct.ornament_icon = rof2LinkBodyStruct.ornament_icon; serverLinkBodyStruct.ornament_icon = rof2LinkBodyStruct.ornament_icon;
serverLinkBodyStruct.hash = rof2LinkBodyStruct.hash; serverLinkBodyStruct.hash = rof2LinkBodyStruct.hash;
} }
@ -6127,7 +6122,7 @@ namespace RoF2
static inline bool GenerateServerTextLinkBody(std::string& serverLinkBody, const TextLinkBody_Struct& serverLinkBodyStruct) static inline bool GenerateServerTextLinkBody(std::string& serverLinkBody, const TextLinkBody_Struct& serverLinkBodyStruct)
{ {
serverLinkBody = StringFormat( 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.unknown_1,
serverLinkBodyStruct.item_id, serverLinkBodyStruct.item_id,
serverLinkBodyStruct.augment_1, serverLinkBodyStruct.augment_1,
@ -6136,10 +6131,9 @@ namespace RoF2
serverLinkBodyStruct.augment_4, serverLinkBodyStruct.augment_4,
serverLinkBodyStruct.augment_5, serverLinkBodyStruct.augment_5,
serverLinkBodyStruct.augment_6, serverLinkBodyStruct.augment_6,
serverLinkBodyStruct.unknown_2, serverLinkBodyStruct.is_evolving,
serverLinkBodyStruct.unknown_3, serverLinkBodyStruct.lore_group,
serverLinkBodyStruct.unknown_4, serverLinkBodyStruct.evolve_max,
serverLinkBodyStruct.unknown_5,
serverLinkBodyStruct.ornament_icon, serverLinkBodyStruct.ornament_icon,
serverLinkBodyStruct.hash serverLinkBodyStruct.hash
); );

View File

@ -4872,23 +4872,22 @@ struct MercenaryMerchantResponse_Struct {
/*0004*/ /*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 struct TextLinkBody_Struct
{ {
uint8 unknown_1; /* '%1X' - RoF2 field 1 / Server field 1 */ uint8 unknown_1;
uint32 item_id; /* '%05X' - RoF2 field 2 / Server field 2 */ uint32 item_id;
uint32 augment_1; /* '%05X' - RoF2 field 3 / Server field 3 */ uint32 augment_1;
uint32 augment_2; /* '%05X' - RoF2 field 4 / Server field 4 */ uint32 augment_2;
uint32 augment_3; /* '%05X' - RoF2 field 5 / Server field 5 */ uint32 augment_3;
uint32 augment_4; /* '%05X' - RoF2 field 6 / Server field 6 */ uint32 augment_4;
uint32 augment_5; /* '%05X' - RoF2 field 7 / Server field 7 */ uint32 augment_5;
uint32 augment_6; /* '%05X' - RoF2 field 8 / Server field 8 */ uint32 augment_6;
uint8 unknown_2; /* '%1X' - RoF2 field 9 / Server field 9 */ uint8 is_evolving;
uint8 unknown_3; /* '%1X' - RoF2 field 10 / Server field 10 */ uint32 lore_group;
uint32 unknown_4; /* '%04X' - RoF2 field 11 / Server field 11 */ uint8 evolve_max;
uint8 unknown_5; /* '%1X' - RoF2 field 12 / Server field 12 */ uint32 ornament_icon;
uint32 ornament_icon; /* '%05X' - RoF2 field 13 / Server field 13 */ int hash;
int hash; /* '%08X' - RoF2 field 14 / Server field 14 */
}; };
}; //end namespace structs }; //end namespace structs

View File

@ -4897,19 +4897,19 @@ struct MercenaryMerchantResponse_Struct {
// RoF: "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%1X" "%04X" "%1X" "%05X" "%08X" // RoF: "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%1X" "%04X" "%1X" "%05X" "%08X"
struct TextLinkBody_Struct struct TextLinkBody_Struct
{ {
uint8 unknown_1; /* '%1X' - RoF field 1 / Server field 1 */ uint8 unknown_1;
uint32 item_id; /* '%05X' - RoF field 2 / Server field 2 */ uint32 item_id;
uint32 augment_1; /* '%05X' - RoF field 3 / Server field 3 */ uint32 augment_1;
uint32 augment_2; /* '%05X' - RoF field 4 / Server field 4 */ uint32 augment_2;
uint32 augment_3; /* '%05X' - RoF field 5 / Server field 5 */ uint32 augment_3;
uint32 augment_4; /* '%05X' - RoF field 6 / Server field 6 */ uint32 augment_4;
uint32 augment_5; /* '%05X' - RoF field 7 / Server field 7 */ uint32 augment_5;
uint32 augment_6; /* '%05X' - RoF field 8 / Server field 8 */ uint32 augment_6;
uint8 unknown_2; /* '%1X' - RoF field 9 / Server field 10 */ uint8 is_evolving;
uint32 unknown_3; /* '%04X' - RoF field 10 / Server field 11 */ uint32 lore_group;
uint8 unknown_4; /* '%1X' - RoF field 11 / Server field 12 */ uint8 evolve_max;
uint32 ornament_icon; /* '%05X' - RoF field 12 / Server field 13 */ uint32 ornament_icon;
int hash; /* '%08X' - RoF field 13 / Server field 14 */ int hash;
}; };
}; //end namespace structs }; //end namespace structs

View File

@ -3911,10 +3911,9 @@ namespace SoD
serverLinkBodyStruct.augment_4 = (uint32)strtol(serverLinkBody.substr(21, 5).c_str(), nullptr, 16); 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_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.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.is_evolving = (uint8)strtol(serverLinkBody.substr(36, 1).c_str(), nullptr, 16);
serverLinkBodyStruct.unknown_3 = (uint8)strtol(serverLinkBody.substr(37, 1).c_str(), nullptr, 16); serverLinkBodyStruct.lore_group = (uint32)strtol(serverLinkBody.substr(37, 5).c_str(), nullptr, 16);
serverLinkBodyStruct.unknown_4 = (uint32)strtol(serverLinkBody.substr(38, 4).c_str(), nullptr, 16); serverLinkBodyStruct.evolve_max = (uint8)strtol(serverLinkBody.substr(42, 1).c_str(), nullptr, 16);
serverLinkBodyStruct.unknown_5 = (uint8)strtol(serverLinkBody.substr(42, 1).c_str(), nullptr, 16);
serverLinkBodyStruct.ornament_icon = (uint32)strtol(serverLinkBody.substr(43, 5).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); 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_3 = serverLinkBodyStruct.augment_3;
sodLinkBodyStruct.augment_4 = serverLinkBodyStruct.augment_4; sodLinkBodyStruct.augment_4 = serverLinkBodyStruct.augment_4;
sodLinkBodyStruct.augment_5 = serverLinkBodyStruct.augment_5; sodLinkBodyStruct.augment_5 = serverLinkBodyStruct.augment_5;
sodLinkBodyStruct.unknown_2 = serverLinkBodyStruct.unknown_3; sodLinkBodyStruct.is_evolving = serverLinkBodyStruct.is_evolving;
sodLinkBodyStruct.unknown_3 = serverLinkBodyStruct.unknown_4; sodLinkBodyStruct.lore_group = serverLinkBodyStruct.lore_group;
sodLinkBodyStruct.unknown_4 = serverLinkBodyStruct.unknown_5; sodLinkBodyStruct.evolve_max = serverLinkBodyStruct.evolve_max;
sodLinkBodyStruct.ornament_icon = serverLinkBodyStruct.ornament_icon; sodLinkBodyStruct.ornament_icon = serverLinkBodyStruct.ornament_icon;
sodLinkBodyStruct.hash = serverLinkBodyStruct.hash; sodLinkBodyStruct.hash = serverLinkBodyStruct.hash;
} }
@ -3948,9 +3947,9 @@ namespace SoD
sodLinkBodyStruct.augment_3, sodLinkBodyStruct.augment_3,
sodLinkBodyStruct.augment_4, sodLinkBodyStruct.augment_4,
sodLinkBodyStruct.augment_5, sodLinkBodyStruct.augment_5,
sodLinkBodyStruct.unknown_2, sodLinkBodyStruct.is_evolving,
sodLinkBodyStruct.unknown_3, sodLinkBodyStruct.lore_group,
sodLinkBodyStruct.unknown_4, sodLinkBodyStruct.evolve_max,
sodLinkBodyStruct.ornament_icon, sodLinkBodyStruct.ornament_icon,
sodLinkBodyStruct.hash sodLinkBodyStruct.hash
); );
@ -4088,9 +4087,9 @@ namespace SoD
sodLinkBodyStruct.augment_3 = (uint32)strtol(sodLinkBody.substr(16, 5).c_str(), nullptr, 16); 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_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.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.is_evolving = (uint8)strtol(sodLinkBody.substr(31, 1).c_str(), nullptr, 16);
sodLinkBodyStruct.unknown_3 = (uint32)strtol(sodLinkBody.substr(32, 4).c_str(), nullptr, 16); sodLinkBodyStruct.lore_group = (uint32)strtol(sodLinkBody.substr(32, 4).c_str(), nullptr, 16);
sodLinkBodyStruct.unknown_4 = (uint8)strtol(sodLinkBody.substr(36, 1).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.ornament_icon = (uint32)strtol(sodLinkBody.substr(37, 5).c_str(), nullptr, 16);
sodLinkBodyStruct.hash = (int)strtol(sodLinkBody.substr(42, 8).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_4 = sodLinkBodyStruct.augment_4;
serverLinkBodyStruct.augment_5 = sodLinkBodyStruct.augment_5; serverLinkBodyStruct.augment_5 = sodLinkBodyStruct.augment_5;
serverLinkBodyStruct.augment_6 = NOT_USED; serverLinkBodyStruct.augment_6 = NOT_USED;
serverLinkBodyStruct.unknown_2 = NOT_USED; serverLinkBodyStruct.is_evolving = sodLinkBodyStruct.is_evolving;
serverLinkBodyStruct.unknown_3 = sodLinkBodyStruct.unknown_2; serverLinkBodyStruct.lore_group = sodLinkBodyStruct.lore_group;
serverLinkBodyStruct.unknown_4 = sodLinkBodyStruct.unknown_3; serverLinkBodyStruct.evolve_max = sodLinkBodyStruct.evolve_max;
serverLinkBodyStruct.unknown_5 = sodLinkBodyStruct.unknown_4;
serverLinkBodyStruct.ornament_icon = sodLinkBodyStruct.ornament_icon; serverLinkBodyStruct.ornament_icon = sodLinkBodyStruct.ornament_icon;
serverLinkBodyStruct.hash = sodLinkBodyStruct.hash; serverLinkBodyStruct.hash = sodLinkBodyStruct.hash;
} }
@ -4118,7 +4116,7 @@ namespace SoD
static inline bool GenerateServerTextLinkBody(std::string& serverLinkBody, const TextLinkBody_Struct& serverLinkBodyStruct) static inline bool GenerateServerTextLinkBody(std::string& serverLinkBody, const TextLinkBody_Struct& serverLinkBodyStruct)
{ {
serverLinkBody = StringFormat( 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.unknown_1,
serverLinkBodyStruct.item_id, serverLinkBodyStruct.item_id,
serverLinkBodyStruct.augment_1, serverLinkBodyStruct.augment_1,
@ -4127,10 +4125,9 @@ namespace SoD
serverLinkBodyStruct.augment_4, serverLinkBodyStruct.augment_4,
serverLinkBodyStruct.augment_5, serverLinkBodyStruct.augment_5,
serverLinkBodyStruct.augment_6, serverLinkBodyStruct.augment_6,
serverLinkBodyStruct.unknown_2, serverLinkBodyStruct.is_evolving,
serverLinkBodyStruct.unknown_3, serverLinkBodyStruct.lore_group,
serverLinkBodyStruct.unknown_4, serverLinkBodyStruct.evolve_max,
serverLinkBodyStruct.unknown_5,
serverLinkBodyStruct.ornament_icon, serverLinkBodyStruct.ornament_icon,
serverLinkBodyStruct.hash serverLinkBodyStruct.hash
); );

View File

@ -4412,18 +4412,18 @@ struct MercenaryAssign_Struct {
// SoF: "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%1X" "%04X" "%1X" "%05X" "%08X" // SoF: "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%1X" "%04X" "%1X" "%05X" "%08X"
struct TextLinkBody_Struct struct TextLinkBody_Struct
{ {
uint8 unknown_1; /* '%1X' - SoD field 1 / Server field 1 */ uint8 unknown_1;
uint32 item_id; /* '%05X' - SoD field 2 / Server field 2 */ uint32 item_id;
uint32 augment_1; /* '%05X' - SoD field 3 / Server field 3 */ uint32 augment_1;
uint32 augment_2; /* '%05X' - SoD field 4 / Server field 4 */ uint32 augment_2;
uint32 augment_3; /* '%05X' - SoD field 5 / Server field 5 */ uint32 augment_3;
uint32 augment_4; /* '%05X' - SoD field 6 / Server field 6 */ uint32 augment_4;
uint32 augment_5; /* '%05X' - SoD field 7 / Server field 7 */ uint32 augment_5;
uint8 unknown_2; /* '%1X' - SoD field 8 / Server field 10 */ uint8 is_evolving;
uint32 unknown_3; /* '%04X' - SoD field 9 / Server field 11 */ uint32 lore_group;
uint8 unknown_4; /* '%1X' - SoD field 10 / Server field 12 */ uint8 evolve_max;
uint32 ornament_icon; /* '%05X' - SoD field 11 / Server field 13 */ uint32 ornament_icon;
int hash; /* '%08X' - SoD field 12 / Server field 14 */ int hash;
}; };
}; //end namespace structs }; //end namespace structs

View File

@ -3233,10 +3233,9 @@ namespace SoF
serverLinkBodyStruct.augment_4 = (uint32)strtol(serverLinkBody.substr(21, 5).c_str(), nullptr, 16); 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_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.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.is_evolving = (uint8)strtol(serverLinkBody.substr(36, 1).c_str(), nullptr, 16);
serverLinkBodyStruct.unknown_3 = (uint8)strtol(serverLinkBody.substr(37, 1).c_str(), nullptr, 16); serverLinkBodyStruct.lore_group = (uint32)strtol(serverLinkBody.substr(37, 5).c_str(), nullptr, 16);
serverLinkBodyStruct.unknown_4 = (uint32)strtol(serverLinkBody.substr(38, 4).c_str(), nullptr, 16); serverLinkBodyStruct.evolve_max = (uint8)strtol(serverLinkBody.substr(42, 1).c_str(), nullptr, 16);
serverLinkBodyStruct.unknown_5 = (uint8)strtol(serverLinkBody.substr(42, 1).c_str(), nullptr, 16);
serverLinkBodyStruct.ornament_icon = (uint32)strtol(serverLinkBody.substr(43, 5).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); 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_3 = serverLinkBodyStruct.augment_3;
sofLinkBodyStruct.augment_4 = serverLinkBodyStruct.augment_4; sofLinkBodyStruct.augment_4 = serverLinkBodyStruct.augment_4;
sofLinkBodyStruct.augment_5 = serverLinkBodyStruct.augment_5; sofLinkBodyStruct.augment_5 = serverLinkBodyStruct.augment_5;
sofLinkBodyStruct.unknown_2 = serverLinkBodyStruct.unknown_3; sofLinkBodyStruct.is_evolving = serverLinkBodyStruct.is_evolving;
sofLinkBodyStruct.unknown_3 = serverLinkBodyStruct.unknown_4; sofLinkBodyStruct.lore_group = serverLinkBodyStruct.lore_group;
sofLinkBodyStruct.unknown_4 = serverLinkBodyStruct.unknown_5; sofLinkBodyStruct.evolve_max = serverLinkBodyStruct.evolve_max;
sofLinkBodyStruct.ornament_icon = serverLinkBodyStruct.ornament_icon; sofLinkBodyStruct.ornament_icon = serverLinkBodyStruct.ornament_icon;
sofLinkBodyStruct.hash = serverLinkBodyStruct.hash; sofLinkBodyStruct.hash = serverLinkBodyStruct.hash;
} }
@ -3270,9 +3269,9 @@ namespace SoF
sofLinkBodyStruct.augment_3, sofLinkBodyStruct.augment_3,
sofLinkBodyStruct.augment_4, sofLinkBodyStruct.augment_4,
sofLinkBodyStruct.augment_5, sofLinkBodyStruct.augment_5,
sofLinkBodyStruct.unknown_2, sofLinkBodyStruct.is_evolving,
sofLinkBodyStruct.unknown_3, sofLinkBodyStruct.lore_group,
sofLinkBodyStruct.unknown_4, sofLinkBodyStruct.evolve_max,
sofLinkBodyStruct.ornament_icon, sofLinkBodyStruct.ornament_icon,
sofLinkBodyStruct.hash sofLinkBodyStruct.hash
); );
@ -3410,9 +3409,9 @@ namespace SoF
sofLinkBodyStruct.augment_3 = (uint32)strtol(sofLinkBody.substr(16, 5).c_str(), nullptr, 16); 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_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.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.is_evolving = (uint8)strtol(sofLinkBody.substr(31, 1).c_str(), nullptr, 16);
sofLinkBodyStruct.unknown_3 = (uint32)strtol(sofLinkBody.substr(32, 4).c_str(), nullptr, 16); sofLinkBodyStruct.lore_group = (uint32)strtol(sofLinkBody.substr(32, 4).c_str(), nullptr, 16);
sofLinkBodyStruct.unknown_4 = (uint8)strtol(sofLinkBody.substr(36, 1).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.ornament_icon = (uint32)strtol(sofLinkBody.substr(37, 5).c_str(), nullptr, 16);
sofLinkBodyStruct.hash = (int)strtol(sofLinkBody.substr(42, 8).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_4 = sofLinkBodyStruct.augment_4;
serverLinkBodyStruct.augment_5 = sofLinkBodyStruct.augment_5; serverLinkBodyStruct.augment_5 = sofLinkBodyStruct.augment_5;
serverLinkBodyStruct.augment_6 = NOT_USED; serverLinkBodyStruct.augment_6 = NOT_USED;
serverLinkBodyStruct.unknown_2 = NOT_USED; serverLinkBodyStruct.is_evolving = sofLinkBodyStruct.is_evolving;
serverLinkBodyStruct.unknown_3 = sofLinkBodyStruct.unknown_2; serverLinkBodyStruct.lore_group = sofLinkBodyStruct.lore_group;
serverLinkBodyStruct.unknown_4 = sofLinkBodyStruct.unknown_3; serverLinkBodyStruct.evolve_max = sofLinkBodyStruct.evolve_max;
serverLinkBodyStruct.unknown_5 = sofLinkBodyStruct.unknown_4;
serverLinkBodyStruct.ornament_icon = sofLinkBodyStruct.ornament_icon; serverLinkBodyStruct.ornament_icon = sofLinkBodyStruct.ornament_icon;
serverLinkBodyStruct.hash = sofLinkBodyStruct.hash; serverLinkBodyStruct.hash = sofLinkBodyStruct.hash;
} }
@ -3440,7 +3438,7 @@ namespace SoF
static inline bool GenerateServerTextLinkBody(std::string& serverLinkBody, const TextLinkBody_Struct& serverLinkBodyStruct) static inline bool GenerateServerTextLinkBody(std::string& serverLinkBody, const TextLinkBody_Struct& serverLinkBodyStruct)
{ {
serverLinkBody = StringFormat( 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.unknown_1,
serverLinkBodyStruct.item_id, serverLinkBodyStruct.item_id,
serverLinkBodyStruct.augment_1, serverLinkBodyStruct.augment_1,
@ -3449,10 +3447,9 @@ namespace SoF
serverLinkBodyStruct.augment_4, serverLinkBodyStruct.augment_4,
serverLinkBodyStruct.augment_5, serverLinkBodyStruct.augment_5,
serverLinkBodyStruct.augment_6, serverLinkBodyStruct.augment_6,
serverLinkBodyStruct.unknown_2, serverLinkBodyStruct.is_evolving,
serverLinkBodyStruct.unknown_3, serverLinkBodyStruct.lore_group,
serverLinkBodyStruct.unknown_4, serverLinkBodyStruct.evolve_max,
serverLinkBodyStruct.unknown_5,
serverLinkBodyStruct.ornament_icon, serverLinkBodyStruct.ornament_icon,
serverLinkBodyStruct.hash serverLinkBodyStruct.hash
); );

View File

@ -4118,18 +4118,18 @@ struct AltCurrencySellItem_Struct {
// SoF: "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%1X" "%04X" "%1X" "%05X" "%08X" // SoF: "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%1X" "%04X" "%1X" "%05X" "%08X"
struct TextLinkBody_Struct struct TextLinkBody_Struct
{ {
uint8 unknown_1; /* '%1X' - SoF field 1 / Server field 1 */ uint8 unknown_1;
uint32 item_id; /* '%05X' - SoF field 2 / Server field 2 */ uint32 item_id;
uint32 augment_1; /* '%05X' - SoF field 3 / Server field 3 */ uint32 augment_1;
uint32 augment_2; /* '%05X' - SoF field 4 / Server field 4 */ uint32 augment_2;
uint32 augment_3; /* '%05X' - SoF field 5 / Server field 5 */ uint32 augment_3;
uint32 augment_4; /* '%05X' - SoF field 6 / Server field 6 */ uint32 augment_4;
uint32 augment_5; /* '%05X' - SoF field 7 / Server field 7 */ uint32 augment_5;
uint8 unknown_2; /* '%1X' - SoF field 8 / Server field 10 */ uint8 is_evolving;
uint32 unknown_3; /* '%04X' - SoF field 9 / Server field 11 */ uint32 lore_group;
uint8 unknown_4; /* '%1X' - SoF field 10 / Server field 12 */ uint8 evolve_max;
uint32 ornament_icon; /* '%05X' - SoF field 11 / Server field 13 */ uint32 ornament_icon;
int hash; /* '%08X' - SoF field 12 / Server field 14 */ int hash;
}; };
}; //end namespace structs }; //end namespace structs

View File

@ -1992,10 +1992,9 @@ namespace Titanium
serverLinkBodyStruct.augment_4 = (uint32)strtol(serverLinkBody.substr(21, 5).c_str(), nullptr, 16); 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_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.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.is_evolving = (uint8)strtol(serverLinkBody.substr(36, 1).c_str(), nullptr, 16);
serverLinkBodyStruct.unknown_3 = (uint8)strtol(serverLinkBody.substr(37, 1).c_str(), nullptr, 16); serverLinkBodyStruct.lore_group = (uint32)strtol(serverLinkBody.substr(37, 5).c_str(), nullptr, 16);
serverLinkBodyStruct.unknown_4 = (uint32)strtol(serverLinkBody.substr(38, 4).c_str(), nullptr, 16); serverLinkBodyStruct.evolve_max = (uint8)strtol(serverLinkBody.substr(42, 1).c_str(), nullptr, 16);
serverLinkBodyStruct.unknown_5 = (uint8)strtol(serverLinkBody.substr(42, 1).c_str(), nullptr, 16);
serverLinkBodyStruct.ornament_icon = (uint32)strtol(serverLinkBody.substr(43, 5).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); 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_3 = serverLinkBodyStruct.augment_3;
titaniumLinkBodyStruct.augment_4 = serverLinkBodyStruct.augment_4; titaniumLinkBodyStruct.augment_4 = serverLinkBodyStruct.augment_4;
titaniumLinkBodyStruct.augment_5 = serverLinkBodyStruct.augment_5; titaniumLinkBodyStruct.augment_5 = serverLinkBodyStruct.augment_5;
titaniumLinkBodyStruct.unknown_2 = serverLinkBodyStruct.unknown_3; titaniumLinkBodyStruct.is_evolving = serverLinkBodyStruct.is_evolving;
titaniumLinkBodyStruct.unknown_3 = serverLinkBodyStruct.unknown_4; titaniumLinkBodyStruct.lore_group = serverLinkBodyStruct.lore_group;
titaniumLinkBodyStruct.unknown_4 = serverLinkBodyStruct.unknown_5; titaniumLinkBodyStruct.evolve_max = serverLinkBodyStruct.evolve_max;
titaniumLinkBodyStruct.hash = serverLinkBodyStruct.hash; titaniumLinkBodyStruct.hash = serverLinkBodyStruct.hash;
} }
@ -2028,9 +2027,9 @@ namespace Titanium
titaniumLinkBodyStruct.augment_3, titaniumLinkBodyStruct.augment_3,
titaniumLinkBodyStruct.augment_4, titaniumLinkBodyStruct.augment_4,
titaniumLinkBodyStruct.augment_5, titaniumLinkBodyStruct.augment_5,
titaniumLinkBodyStruct.unknown_2, titaniumLinkBodyStruct.is_evolving,
titaniumLinkBodyStruct.unknown_3, titaniumLinkBodyStruct.lore_group,
titaniumLinkBodyStruct.unknown_4, titaniumLinkBodyStruct.evolve_max,
titaniumLinkBodyStruct.hash titaniumLinkBodyStruct.hash
); );
@ -2167,9 +2166,9 @@ namespace Titanium
titaniumLinkBodyStruct.augment_3 = (uint32)strtol(titaniumLinkBody.substr(16, 5).c_str(), nullptr, 16); 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_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.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.is_evolving = (uint8)strtol(titaniumLinkBody.substr(31, 1).c_str(), nullptr, 16);
titaniumLinkBodyStruct.unknown_3 = (uint32)strtol(titaniumLinkBody.substr(32, 4).c_str(), nullptr, 16); titaniumLinkBodyStruct.lore_group = (uint32)strtol(titaniumLinkBody.substr(32, 4).c_str(), nullptr, 16);
titaniumLinkBodyStruct.unknown_4 = (uint8)strtol(titaniumLinkBody.substr(36, 1).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); titaniumLinkBodyStruct.hash = (int)strtol(titaniumLinkBody.substr(37, 8).c_str(), nullptr, 16);
return true; return true;
@ -2185,10 +2184,9 @@ namespace Titanium
serverLinkBodyStruct.augment_4 = titaniumLinkBodyStruct.augment_4; serverLinkBodyStruct.augment_4 = titaniumLinkBodyStruct.augment_4;
serverLinkBodyStruct.augment_5 = titaniumLinkBodyStruct.augment_5; serverLinkBodyStruct.augment_5 = titaniumLinkBodyStruct.augment_5;
serverLinkBodyStruct.augment_6 = NOT_USED; serverLinkBodyStruct.augment_6 = NOT_USED;
serverLinkBodyStruct.unknown_2 = NOT_USED; serverLinkBodyStruct.is_evolving = titaniumLinkBodyStruct.is_evolving;
serverLinkBodyStruct.unknown_3 = titaniumLinkBodyStruct.unknown_2; serverLinkBodyStruct.lore_group = titaniumLinkBodyStruct.lore_group;
serverLinkBodyStruct.unknown_4 = titaniumLinkBodyStruct.unknown_3; serverLinkBodyStruct.evolve_max = titaniumLinkBodyStruct.evolve_max;
serverLinkBodyStruct.unknown_5 = titaniumLinkBodyStruct.unknown_4;
serverLinkBodyStruct.ornament_icon = NOT_USED; serverLinkBodyStruct.ornament_icon = NOT_USED;
serverLinkBodyStruct.hash = titaniumLinkBodyStruct.hash; serverLinkBodyStruct.hash = titaniumLinkBodyStruct.hash;
} }
@ -2196,7 +2194,7 @@ namespace Titanium
static inline bool GenerateServerTextLinkBody(std::string& serverLinkBody, const TextLinkBody_Struct& serverLinkBodyStruct) static inline bool GenerateServerTextLinkBody(std::string& serverLinkBody, const TextLinkBody_Struct& serverLinkBodyStruct)
{ {
serverLinkBody = StringFormat( 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.unknown_1,
serverLinkBodyStruct.item_id, serverLinkBodyStruct.item_id,
serverLinkBodyStruct.augment_1, serverLinkBodyStruct.augment_1,
@ -2205,10 +2203,9 @@ namespace Titanium
serverLinkBodyStruct.augment_4, serverLinkBodyStruct.augment_4,
serverLinkBodyStruct.augment_5, serverLinkBodyStruct.augment_5,
serverLinkBodyStruct.augment_6, serverLinkBodyStruct.augment_6,
serverLinkBodyStruct.unknown_2, serverLinkBodyStruct.is_evolving,
serverLinkBodyStruct.unknown_3, serverLinkBodyStruct.lore_group,
serverLinkBodyStruct.unknown_4, serverLinkBodyStruct.evolve_max,
serverLinkBodyStruct.unknown_5,
serverLinkBodyStruct.ornament_icon, serverLinkBodyStruct.ornament_icon,
serverLinkBodyStruct.hash serverLinkBodyStruct.hash
); );

View File

@ -3332,17 +3332,17 @@ struct LFGuild_GuildToggle_Struct
// 6.2: "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%1X" "%04X" "%1X" "%08X" // 6.2: "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%1X" "%04X" "%1X" "%08X"
struct TextLinkBody_Struct struct TextLinkBody_Struct
{ {
uint8 unknown_1; /* '%1X' - Titanium field 1 / Server field 1 */ uint8 unknown_1;
uint32 item_id; /* '%05X' - Titanium field 2 / Server field 2 */ uint32 item_id;
uint32 augment_1; /* '%05X' - Titanium field 3 / Server field 3 */ uint32 augment_1;
uint32 augment_2; /* '%05X' - Titanium field 4 / Server field 4 */ uint32 augment_2;
uint32 augment_3; /* '%05X' - Titanium field 5 / Server field 5 */ uint32 augment_3;
uint32 augment_4; /* '%05X' - Titanium field 6 / Server field 6 */ uint32 augment_4;
uint32 augment_5; /* '%05X' - Titanium field 7 / Server field 7 */ uint32 augment_5;
uint8 unknown_2; /* '%1X' - Titanium field 8 / Server field 10 */ uint8 is_evolving;
uint32 unknown_3; /* '%04X' - Titanium field 9 / Server field 11 */ uint32 lore_group;
uint8 unknown_4; /* '%1X' - Titanium field 10 / Server field 12 */ uint8 evolve_max;
int hash; /* '%08X' - Titanium field 11 / Server field 14 */ int hash;
}; };
}; //end namespace structs }; //end namespace structs

View File

@ -4346,10 +4346,9 @@ namespace Underfoot
serverLinkBodyStruct.augment_4 = (uint32)strtol(serverLinkBody.substr(21, 5).c_str(), nullptr, 16); 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_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.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.is_evolving = (uint8)strtol(serverLinkBody.substr(36, 1).c_str(), nullptr, 16);
serverLinkBodyStruct.unknown_3 = (uint8)strtol(serverLinkBody.substr(37, 1).c_str(), nullptr, 16); serverLinkBodyStruct.lore_group = (uint32)strtol(serverLinkBody.substr(37, 5).c_str(), nullptr, 16);
serverLinkBodyStruct.unknown_4 = (uint32)strtol(serverLinkBody.substr(38, 4).c_str(), nullptr, 16); serverLinkBodyStruct.evolve_max = (uint8)strtol(serverLinkBody.substr(42, 1).c_str(), nullptr, 16);
serverLinkBodyStruct.unknown_5 = (uint8)strtol(serverLinkBody.substr(42, 1).c_str(), nullptr, 16);
serverLinkBodyStruct.ornament_icon = (uint32)strtol(serverLinkBody.substr(43, 5).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); 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_3 = serverLinkBodyStruct.augment_3;
underfootLinkBodyStruct.augment_4 = serverLinkBodyStruct.augment_4; underfootLinkBodyStruct.augment_4 = serverLinkBodyStruct.augment_4;
underfootLinkBodyStruct.augment_5 = serverLinkBodyStruct.augment_5; underfootLinkBodyStruct.augment_5 = serverLinkBodyStruct.augment_5;
underfootLinkBodyStruct.unknown_2 = serverLinkBodyStruct.unknown_3; underfootLinkBodyStruct.is_evolving = serverLinkBodyStruct.is_evolving;
underfootLinkBodyStruct.unknown_3 = serverLinkBodyStruct.unknown_4; underfootLinkBodyStruct.lore_group = serverLinkBodyStruct.lore_group;
underfootLinkBodyStruct.unknown_4 = serverLinkBodyStruct.unknown_5; underfootLinkBodyStruct.evolve_max = serverLinkBodyStruct.evolve_max;
underfootLinkBodyStruct.ornament_icon = serverLinkBodyStruct.ornament_icon; underfootLinkBodyStruct.ornament_icon = serverLinkBodyStruct.ornament_icon;
underfootLinkBodyStruct.hash = serverLinkBodyStruct.hash; underfootLinkBodyStruct.hash = serverLinkBodyStruct.hash;
} }
@ -4383,9 +4382,9 @@ namespace Underfoot
underfootLinkBodyStruct.augment_3, underfootLinkBodyStruct.augment_3,
underfootLinkBodyStruct.augment_4, underfootLinkBodyStruct.augment_4,
underfootLinkBodyStruct.augment_5, underfootLinkBodyStruct.augment_5,
underfootLinkBodyStruct.unknown_2, underfootLinkBodyStruct.is_evolving,
underfootLinkBodyStruct.unknown_3, underfootLinkBodyStruct.lore_group,
underfootLinkBodyStruct.unknown_4, underfootLinkBodyStruct.evolve_max,
underfootLinkBodyStruct.ornament_icon, underfootLinkBodyStruct.ornament_icon,
underfootLinkBodyStruct.hash underfootLinkBodyStruct.hash
); );
@ -4523,9 +4522,9 @@ namespace Underfoot
underfootLinkBodyStruct.augment_3 = (uint32)strtol(underfootLinkBody.substr(16, 5).c_str(), nullptr, 16); 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_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.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.is_evolving = (uint8)strtol(underfootLinkBody.substr(31, 1).c_str(), nullptr, 16);
underfootLinkBodyStruct.unknown_3 = (uint32)strtol(underfootLinkBody.substr(32, 4).c_str(), nullptr, 16); underfootLinkBodyStruct.lore_group = (uint32)strtol(underfootLinkBody.substr(32, 4).c_str(), nullptr, 16);
underfootLinkBodyStruct.unknown_4 = (uint8)strtol(underfootLinkBody.substr(36, 1).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.ornament_icon = (uint32)strtol(underfootLinkBody.substr(37, 5).c_str(), nullptr, 16);
underfootLinkBodyStruct.hash = (int)strtol(underfootLinkBody.substr(42, 8).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_4 = underfootLinkBodyStruct.augment_4;
serverLinkBodyStruct.augment_5 = underfootLinkBodyStruct.augment_5; serverLinkBodyStruct.augment_5 = underfootLinkBodyStruct.augment_5;
serverLinkBodyStruct.augment_6 = NOT_USED; serverLinkBodyStruct.augment_6 = NOT_USED;
serverLinkBodyStruct.unknown_2 = NOT_USED; serverLinkBodyStruct.is_evolving = underfootLinkBodyStruct.is_evolving;
serverLinkBodyStruct.unknown_3 = underfootLinkBodyStruct.unknown_2; serverLinkBodyStruct.lore_group = underfootLinkBodyStruct.lore_group;
serverLinkBodyStruct.unknown_4 = underfootLinkBodyStruct.unknown_3; serverLinkBodyStruct.evolve_max = underfootLinkBodyStruct.evolve_max;
serverLinkBodyStruct.unknown_5 = underfootLinkBodyStruct.unknown_4;
serverLinkBodyStruct.ornament_icon = underfootLinkBodyStruct.ornament_icon; serverLinkBodyStruct.ornament_icon = underfootLinkBodyStruct.ornament_icon;
serverLinkBodyStruct.hash = underfootLinkBodyStruct.hash; serverLinkBodyStruct.hash = underfootLinkBodyStruct.hash;
} }
@ -4553,7 +4551,7 @@ namespace Underfoot
static inline bool GenerateServerTextLinkBody(std::string& serverLinkBody, const TextLinkBody_Struct& serverLinkBodyStruct) static inline bool GenerateServerTextLinkBody(std::string& serverLinkBody, const TextLinkBody_Struct& serverLinkBodyStruct)
{ {
serverLinkBody = StringFormat( 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.unknown_1,
serverLinkBodyStruct.item_id, serverLinkBodyStruct.item_id,
serverLinkBodyStruct.augment_1, serverLinkBodyStruct.augment_1,
@ -4562,10 +4560,9 @@ namespace Underfoot
serverLinkBodyStruct.augment_4, serverLinkBodyStruct.augment_4,
serverLinkBodyStruct.augment_5, serverLinkBodyStruct.augment_5,
serverLinkBodyStruct.augment_6, serverLinkBodyStruct.augment_6,
serverLinkBodyStruct.unknown_2, serverLinkBodyStruct.is_evolving,
serverLinkBodyStruct.unknown_3, serverLinkBodyStruct.lore_group,
serverLinkBodyStruct.unknown_4, serverLinkBodyStruct.evolve_max,
serverLinkBodyStruct.unknown_5,
serverLinkBodyStruct.ornament_icon, serverLinkBodyStruct.ornament_icon,
serverLinkBodyStruct.hash serverLinkBodyStruct.hash
); );

View File

@ -4533,18 +4533,18 @@ struct MercenaryAssign_Struct {
// SoF: "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%1X" "%04X" "%1X" "%05X" "%08X" // SoF: "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%1X" "%04X" "%1X" "%05X" "%08X"
struct TextLinkBody_Struct struct TextLinkBody_Struct
{ {
uint8 unknown_1; /* '%1X' - Underfoot field 1 / Server field 1 */ uint8 unknown_1;
uint32 item_id; /* '%05X' - Underfoot field 2 / Server field 2 */ uint32 item_id;
uint32 augment_1; /* '%05X' - Underfoot field 3 / Server field 3 */ uint32 augment_1;
uint32 augment_2; /* '%05X' - Underfoot field 4 / Server field 4 */ uint32 augment_2;
uint32 augment_3; /* '%05X' - Underfoot field 5 / Server field 5 */ uint32 augment_3;
uint32 augment_4; /* '%05X' - Underfoot field 6 / Server field 6 */ uint32 augment_4;
uint32 augment_5; /* '%05X' - Underfoot field 7 / Server field 7 */ uint32 augment_5;
uint8 unknown_2; /* '%1X' - Underfoot field 8 / Server field 10 */ uint8 is_evolving;
uint32 unknown_3; /* '%04X' - Underfoot field 9 / Server field 11 */ uint32 lore_group;
uint8 unknown_4; /* '%1X' - Underfoot field 10 / Server field 12 */ uint8 evolve_max;
uint32 ornament_icon; /* '%05X' - Underfoot field 11 / Server field 13 */ uint32 ornament_icon;
int hash; /* '%08X' - Underfoot field 12 / Server field 14 */ int hash;
}; };
}; //end namespace structs }; //end namespace structs

View File

@ -8312,7 +8312,7 @@ void Client::TextLink::generate_body()
/* /*
Current server mask: EQClientRoF2 Current server mask: EQClientRoF2
RoF2: "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%1X" "%1X" "%04X" "%1X" "%05X" "%08X" (56) 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) 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) 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) 6.2: "%1X" "%05X" "%05X" "%05X" "%05X" "%05X" "%05X" "%1X" "%04X" "%1X" "%08X" (45)
@ -8328,12 +8328,11 @@ void Client::TextLink::generate_body()
augment_4 = NOT_USED; /* field 6 */ augment_4 = NOT_USED; /* field 6 */
augment_5 = NOT_USED; /* field 7 */ augment_5 = NOT_USED; /* field 7 */
augment_6 = NOT_USED; /* field 8 */ augment_6 = NOT_USED; /* field 8 */
unknown_2 = NOT_USED; /* field 9 */ is_evolving = NOT_USED; /* field 9 */
unknown_3 = NOT_USED; /* field 10 */ lore_group = NOT_USED; /* field 10 */
unknown_4 = NOT_USED; /* field 11 */ evolve_max = NOT_USED; /* field 11 */
unknown_5 = NOT_USED; /* field 12 */ ornament_icon = NOT_USED; /* field 12 */
ornament_icon = NOT_USED; /* field 13 */ hash = NOT_USED; /* field 13 */
hash = NOT_USED; /* field 14 */
const Item_Struct* item_data = nullptr; const Item_Struct* item_data = nullptr;
@ -8385,7 +8384,7 @@ void Client::TextLink::generate_body()
} }
m_LinkBody = StringFormat( 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, unknown_1,
item_id, item_id,
augment_1, augment_1,
@ -8394,10 +8393,9 @@ void Client::TextLink::generate_body()
augment_4, augment_4,
augment_5, augment_5,
augment_6, augment_6,
unknown_2, is_evolving,
unknown_3, lore_group,
unknown_4, evolve_max,
unknown_5,
ornament_icon, ornament_icon,
hash 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_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_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.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.is_evolving = (uint8)strtol(textLinkBody.substr(36, 1).c_str(), nullptr, 16);
textLinkBodyStruct.unknown_3 = (uint8)strtol(textLinkBody.substr(37, 1).c_str(), nullptr, 16); textLinkBodyStruct.lore_group = (uint32)strtol(textLinkBody.substr(37, 5).c_str(), nullptr, 16);
textLinkBodyStruct.unknown_4 = (uint32)strtol(textLinkBody.substr(38, 4).c_str(), nullptr, 16); textLinkBodyStruct.evolve_max = (uint8)strtol(textLinkBody.substr(42, 1).c_str(), nullptr, 16);
textLinkBodyStruct.unknown_5 = (uint8)strtol(textLinkBody.substr(42, 1).c_str(), nullptr, 16);
textLinkBodyStruct.ornament_icon = (uint32)strtol(textLinkBody.substr(43, 5).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); 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) bool Client::TextLink::GenerateLinkBody(std::string& textLinkBody, const TextLinkBody_Struct& textLinkBodyStruct)
{ {
textLinkBody = StringFormat( 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.unknown_1,
textLinkBodyStruct.item_id, textLinkBodyStruct.item_id,
textLinkBodyStruct.augment_1, textLinkBodyStruct.augment_1,
@ -8472,10 +8469,9 @@ bool Client::TextLink::GenerateLinkBody(std::string& textLinkBody, const TextLin
textLinkBodyStruct.augment_4, textLinkBodyStruct.augment_4,
textLinkBodyStruct.augment_5, textLinkBodyStruct.augment_5,
textLinkBodyStruct.augment_6, textLinkBodyStruct.augment_6,
textLinkBodyStruct.unknown_2, textLinkBodyStruct.is_evolving,
textLinkBodyStruct.unknown_3, textLinkBodyStruct.lore_group,
textLinkBodyStruct.unknown_4, textLinkBodyStruct.evolve_max,
textLinkBodyStruct.unknown_5,
textLinkBodyStruct.ornament_icon, textLinkBodyStruct.ornament_icon,
textLinkBodyStruct.hash textLinkBodyStruct.hash
); );