Open
Description
the most significant number of warnings when /Wall is used revolves around padding bytes being added to various classes and structs.
In some instances dozens of bytes can be added to a single object as padding due to the ordering of data within it.
Optimising this should help with memory usage and cache friendliness of data structures.
The warning is C4820 for reference and requires /Wall to be used.
Some examples of some of the most used classes:
'Object': '5' bytes padding added after data member 'Object::m_lastWeaponCondition'
'Object': '4' bytes padding added after data member 'Object::m_isReceivingDifficultyBonus'
'Object': '4' bytes padding added after data member 'Object::m_prev'
'Object': '2' bytes padding added after data member 'Object::m_visionSpiedMask'
'PointGroupClass': '3' bytes padding added after data member 'PointGroupClass::FrameRowColumnCountLog2'
'PointGroupClass': '2' bytes padding added after data member 'PointGroupClass::DefaultPointFrame'
'PointGroupClass': '3' bytes padding added after data member 'PointGroupClass::Billboard'
'Render2DSentenceClass': '3' bytes padding added after data member 'Render2DSentenceClass::MonoSpaced'
'Render2DSentenceClass': '3' bytes padding added after data member 'Render2DSentenceClass::Centered'
'Render2DSentenceClass': '1' bytes padding added after data member 'Render2DSentenceClass::useHardWordWrap'
'FontCharsClass': '3' bytes padding added after data member 'FontCharsClass::IsBold'
'StealthUpdate': '3' bytes padding added after data member 'StealthUpdate::m_xferRestoreDisguise'
'StealthUpdateModuleData': '3' bytes padding added after data member 'StealthUpdateModuleData::m_grantedBySpecialPower'
'StealthUpdate': '3' bytes padding added after data member 'StealthUpdate::m_enabled'
'StealthUpdate': '1' bytes padding added after data member 'StealthUpdate::m_disguised'
'WeaponTemplate': '3' bytes padding added after data member 'WeaponTemplate::m_isScaleWeaponSpeed'
'WeaponTemplate': '3' bytes padding added after data member 'WeaponTemplate::m_damageDealtAtSelfPosition'
'WeaponTemplate': '3' bytes padding added after data member 'WeaponTemplate::m_playFXWhenStealthed'
'WeaponTemplate': '3' bytes padding added after data member 'WeaponTemplate::m_dieOnDetonate'
'Weapon': '2' bytes padding added after data member 'Weapon::m_leechWeaponRangeActive'