Correct OP_AugmentInfo reply

This fixes the display issue for RoF
SoF/SoD/UF still won't show the charm info on Adventurer's Stone,
probably a client bug.
This commit is contained in:
Michael Cook (mackal)
2014-11-17 16:41:37 -05:00
parent c749155ad2
commit 0b44f58518
15 changed files with 77 additions and 45 deletions
+2 -2
View File
@@ -4389,8 +4389,8 @@ struct ControlBoat_Struct {
struct AugmentInfo_Struct
{
/*000*/ uint32 itemid; // id of the solvent needed
/*004*/ uint8 window; // window to display the information in
/*005*/ uint8 unknown005[67]; // total packet length 72, all the rest were always 00
/*004*/ uint32 window; // window to display the information in
/*008*/ char augment_info[64]; // the reply has the text here
/*072*/
};
+12
View File
@@ -235,6 +235,18 @@ namespace RoF
FINISH_ENCODE();
}
ENCODE(OP_AugmentInfo)
{
ENCODE_LENGTH_EXACT(AugmentInfo_Struct);
SETUP_DIRECT_ENCODE(AugmentInfo_Struct, structs::AugmentInfo_Struct);
OUT(itemid);
OUT(window);
strn0cpy(eq->augment_info, emu->augment_info, 64);
FINISH_ENCODE();
}
ENCODE(OP_Barter)
{
EQApplicationPacket *in = *p;
+1
View File
@@ -5,6 +5,7 @@ E(OP_AltCurrency)
E(OP_AltCurrencySell)
E(OP_Animation)
E(OP_ApplyPoison)
E(OP_AugmentInfo)
E(OP_Barter)
E(OP_BazaarSearch)
E(OP_BeginCast)
+3 -3
View File
@@ -4692,9 +4692,9 @@ struct ItemQuaternaryBodyStruct
struct AugmentInfo_Struct
{
/*000*/ uint32 itemid; // id of the solvent needed
/*004*/ uint8 window; // window to display the information in
/*005*/ uint8 unknown005[71]; // total packet length 76, all the rest were always 00
/*076*/
/*004*/ uint32 window; // window to display the information in
/*008*/ char augment_info[64]; // total packet length 76, all the rest were always 00
/*072*/ uint32 unknown072;
};
struct VeteranRewardItem
+12
View File
@@ -174,6 +174,18 @@ namespace SoD
FINISH_ENCODE();
}
ENCODE(OP_AugmentInfo)
{
ENCODE_LENGTH_EXACT(AugmentInfo_Struct);
SETUP_DIRECT_ENCODE(AugmentInfo_Struct, structs::AugmentInfo_Struct);
OUT(itemid);
OUT(window);
strn0cpy(eq->augment_info, emu->augment_info, 64);
FINISH_ENCODE();
}
ENCODE(OP_Barter)
{
EQApplicationPacket *in = *p;
+1
View File
@@ -3,6 +3,7 @@ E(OP_Action)
E(OP_AdventureMerchantSell)
E(OP_AltCurrencySell)
E(OP_ApplyPoison)
E(OP_AugmentInfo)
E(OP_Barter)
E(OP_BazaarSearch)
E(OP_Buff)
+3 -3
View File
@@ -4173,9 +4173,9 @@ struct ItemQuaternaryBodyStruct
struct AugmentInfo_Struct
{
/*000*/ uint32 itemid; // id of the solvent needed
/*004*/ uint8 window; // window to display the information in
/*005*/ uint8 unknown005[71]; // total packet length 76, all the rest were always 00
/*076*/
/*004*/ uint32 window; // window to display the information in
/*008*/ char augment_info[64]; // total packet length 76, all the rest were always 00
/*072*/ uint32 unknown072;
};
struct VeteranRewardItem
+12
View File
@@ -174,6 +174,18 @@ namespace SoF
FINISH_ENCODE();
}
ENCODE(OP_AugmentInfo)
{
ENCODE_LENGTH_EXACT(AugmentInfo_Struct);
SETUP_DIRECT_ENCODE(AugmentInfo_Struct, structs::AugmentInfo_Struct);
OUT(itemid);
OUT(window);
strn0cpy(eq->augment_info, emu->augment_info, 64);
FINISH_ENCODE();
}
ENCODE(OP_BazaarSearch)
{
if (((*p)->size == sizeof(BazaarReturnDone_Struct)) || ((*p)->size == sizeof(BazaarWelcome_Struct))) {
+1
View File
@@ -3,6 +3,7 @@ E(OP_Action)
E(OP_AdventureMerchantSell)
E(OP_AltCurrencySell)
E(OP_ApplyPoison)
E(OP_AugmentInfo)
E(OP_BazaarSearch)
E(OP_BecomeTrader)
E(OP_Buff)
+3 -3
View File
@@ -4027,9 +4027,9 @@ struct ItemQuaternaryBodyStruct
struct AugmentInfo_Struct
{
/*000*/ uint32 itemid; // id of the solvent needed
/*004*/ uint8 window; // window to display the information in
/*005*/ uint8 unknown005[71]; // total packet length 76, all the rest were always 00
/*076*/
/*004*/ uint32 window; // window to display the information in
/*008*/ char augment_info[64]; // total packet length 76, all the rest were always 00
/*072*/ uint32 unknown072;
};
struct VeteranRewardItem
+12
View File
@@ -226,6 +226,18 @@ namespace Underfoot
FINISH_ENCODE();
}
ENCODE(OP_AugmentInfo)
{
ENCODE_LENGTH_EXACT(AugmentInfo_Struct);
SETUP_DIRECT_ENCODE(AugmentInfo_Struct, structs::AugmentInfo_Struct);
OUT(itemid);
OUT(window);
strn0cpy(eq->augment_info, emu->augment_info, 64);
FINISH_ENCODE();
}
ENCODE(OP_Barter)
{
EQApplicationPacket *in = *p;
+1
View File
@@ -4,6 +4,7 @@ E(OP_AdventureMerchantSell)
E(OP_AltCurrency)
E(OP_AltCurrencySell)
E(OP_ApplyPoison)
E(OP_AugmentInfo)
E(OP_Barter)
E(OP_BazaarSearch)
E(OP_Buff)
+3 -3
View File
@@ -4272,9 +4272,9 @@ struct ItemQuaternaryBodyStruct
struct AugmentInfo_Struct
{
/*000*/ uint32 itemid; // id of the solvent needed
/*004*/ uint8 window; // window to display the information in
/*005*/ uint8 unknown005[71]; // total packet length 76, all the rest were always 00
/*076*/
/*004*/ uint32 window; // window to display the information in
/*008*/ char augment_info[64]; // total packet length 76, all the rest were always 00
/*072*/ uint32 unknown072;
};
struct VeteranRewardItem