mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-04-17 09:33:51 +00:00
game: add Classic 1.12 overrides for parseSpellStart and parseSpellGo
Vanilla 1.12 SMSG_SPELL_START and SMSG_SPELL_GO use: - PackedGuid (variable-length) for caster and target GUIDs, not full uint64 - uint16 castFlags, not uint32 as in TBC/WotLK - uint16 targetFlags in SpellCastTargets, not uint32 Without these overrides Classic inherited TBC's implementations which read 8 bytes for each GUID (over-reading the PackedGuid) and then 4 bytes for castFlags instead of 2, misaligning all subsequent fields and producing garbage spell IDs, cast times, and target GUIDs. Hit and miss target GUIDs in SMSG_SPELL_GO are also PackedGuid in Vanilla (vs full uint64 in TBC), handled by the new parseSpellGo.
This commit is contained in:
parent
c011d724c6
commit
5f06c18a54
2 changed files with 95 additions and 0 deletions
|
|
@ -405,6 +405,9 @@ public:
|
|||
bool parseMonsterMove(network::Packet& packet, MonsterMoveData& data) override {
|
||||
return MonsterMoveParser::parseVanilla(packet, data);
|
||||
}
|
||||
// Classic 1.12 uses PackedGuid (not full uint64) and uint16 castFlags (not uint32)
|
||||
bool parseSpellStart(network::Packet& packet, SpellStartData& data) override;
|
||||
bool parseSpellGo(network::Packet& packet, SpellGoData& data) override;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue