mirror of
https://github.com/Mezeporta/Erupe.git
synced 2026-03-22 07:32:32 +01:00
fix(festa): correct reward field version gate from G1 to G3
The extra reward fields (Unk5, Unk6, Unk7) in the InfoFesta response were gated at >= G1, but G1 clients do not expect these 5 extra bytes per reward entry. This caused the entire packet after the rewards section to be misaligned, corrupting MaximumFP, leaderboards, and bonus rates — which broke the festa UI including trial voting. Wii U disassembly of import_festa_info (0x02C470EC, 1068 bytes) confirms G3-Z2 reads these fields. G1 binary analysis shows only 8 festa packets (vs 12 in ZZ), and the intermediate/personal prize systems were not added until G5.2/G7 respectively.
This commit is contained in:
@@ -311,8 +311,8 @@ func handleMsgMhfInfoFesta(s *Session, p mhfpacket.MHFPacket) {
|
||||
bf.WriteUint16(reward.ItemType)
|
||||
bf.WriteUint16(reward.Quantity)
|
||||
bf.WriteUint16(reward.ItemID)
|
||||
// Not confirmed to be G1 but exists in G3
|
||||
if _config.ErupeConfig.RealClientMode >= _config.G1 {
|
||||
// Confirmed present in G3 via Wii U disassembly of import_festa_info
|
||||
if _config.ErupeConfig.RealClientMode >= _config.G3 {
|
||||
bf.WriteUint16(reward.Unk5)
|
||||
bf.WriteUint16(reward.Unk6)
|
||||
bf.WriteUint8(reward.Unk7)
|
||||
|
||||
Reference in New Issue
Block a user