class CAdditionalAGCParamData // this is extra game parameter data that the object needs but MissionParams do not provide { public: CAdditionalAGCParamData() { Reset(); } TechTreeBitMask m_ttbmAltered[c_cSidesMax]; // which bits have changed TechTreeBitMask m_ttbmNewSetting[c_cSidesMax]; // the new bits char m_szTeamName[c_cSidesMax][c_cbName]; void Reset() { ZeroMemory(m_szTeamName, sizeof(m_szTeamName)); for (int i = 0; i < c_cSidesMax; ++i) { m_ttbmAltered[i].ClearAll(); m_ttbmNewSetting[i].ClearAll(); } } }; class CGameParamData : public MissionParams, public CAdditionalAGCParamData { public: void Reset() { CAdditionalAGCParamData::Reset(); MissionParams::Reset(); } };