Closed robinsch closed 2 years ago
Seeing this is for 3.3.5, I pretty much only have wiki to look at and that seems to agree: https://wowdev.wiki/DB/SpellChainEffects
The 4.x definition after it also has 3 padding bytes behind it which is mildly suspicious
Yeah, this is evil. <8>
is correct, as seen on wiki (before the edit). I don't remember where this dump came from, but it apparently is missing padding bytes. The correct fix is not to change size here and on wiki, but to add the padding bytes.
The worse part of this is, that we don't know whether any <8>
columns for 3.3.5 are correct now, they can all have this issue.
@robinsch I pushed changes to your branch. The diff should be technically equivalent to your definition of having four bytes due to the architecture: uint8 x; uint8 padd[3]
== uint32 x | x ≤ 0xff
. You should be able to change that in your decompilation to see the same effect. I'll change it on wiki as well (i.e. revert + add a comment). Please disagree if you feel like!
@Marlamin We really should double check all 3.3.5 definitions, as horrible as it sounds. :(
Hm, I'm not really sure, something else needs to be wrong in the struct definition. The client checks for row size of 0xb1
If we add padding or change it to uint32 it will no longer match client row size check.
The definition is correct, no padding in the definition and size is uint8. This is saved as uint32 in memory (or the struct is padded, doesn't matter - same result).
Check for row size 0xb1:
Access to m_BlendMode found in 0x009aa210:
uVar13 = (uint)(*(char *)((int)param_1_00[7] + 0xa0) == '\x02');
BlendMode size is 4 bytes.
This is accessing m_Combo and does not line up with WoWDBDefs.