#pragma once namespace Hedgehog::Database { class CDatabase; } namespace SWA { class CGameDocument : public Hedgehog::Base::CSynchronizedObject { public: class CMember { public: struct SScoreInfo { be SRank; be ARank; be BRank; be CRank; be DRank; SWA_INSERT_PADDING(0x0C); be PointMarkerRecordSpeed; SWA_INSERT_PADDING(0x0C); be PointMarkerCount; be EnemyScore; be TrickScore; SWA_INSERT_PADDING(0x10); }; SWA_INSERT_PADDING(0x1C); boost::shared_ptr m_spDatabase; SWA_INSERT_PADDING(0x88); Hedgehog::Base::CSharedString m_StageName; xpointer m_pSoundAdministrator; SWA_INSERT_PADDING(0x48); xpointer m_pGeneralWindow; SWA_INSERT_PADDING(0xC0); boost::anonymous_shared_ptr m_spPlayerSwitchManager; SWA_INSERT_PADDING(0x10); SScoreInfo m_ScoreInfo; SWA_INSERT_PADDING(0x0C); }; // TODO: Hedgehog::Base::TSynchronizedPtr static CGameDocument* GetInstance(); xpointer m_pVftable; xpointer m_pMember; }; SWA_ASSERT_OFFSETOF(CGameDocument::CMember::SScoreInfo, SRank, 0x00); SWA_ASSERT_OFFSETOF(CGameDocument::CMember::SScoreInfo, ARank, 0x04); SWA_ASSERT_OFFSETOF(CGameDocument::CMember::SScoreInfo, BRank, 0x08); SWA_ASSERT_OFFSETOF(CGameDocument::CMember::SScoreInfo, CRank, 0x0C); SWA_ASSERT_OFFSETOF(CGameDocument::CMember::SScoreInfo, DRank, 0x10); SWA_ASSERT_OFFSETOF(CGameDocument::CMember::SScoreInfo, PointMarkerRecordSpeed, 0x20); SWA_ASSERT_OFFSETOF(CGameDocument::CMember::SScoreInfo, PointMarkerCount, 0x30); SWA_ASSERT_OFFSETOF(CGameDocument::CMember::SScoreInfo, EnemyScore, 0x34); SWA_ASSERT_OFFSETOF(CGameDocument::CMember::SScoreInfo, TrickScore, 0x38); SWA_ASSERT_SIZEOF(CGameDocument::CMember::SScoreInfo, 0x4C); SWA_ASSERT_OFFSETOF(CGameDocument::CMember, m_spDatabase, 0x1C); SWA_ASSERT_OFFSETOF(CGameDocument::CMember, m_StageName, 0xAC); SWA_ASSERT_OFFSETOF(CGameDocument::CMember, m_pSoundAdministrator, 0xB0); SWA_ASSERT_OFFSETOF(CGameDocument::CMember, m_pGeneralWindow, 0xFC); SWA_ASSERT_OFFSETOF(CGameDocument::CMember, m_spPlayerSwitchManager, 0x1C0); SWA_ASSERT_OFFSETOF(CGameDocument::CMember, m_ScoreInfo, 0x1D8); SWA_ASSERT_SIZEOF(CGameDocument::CMember, 0x230); SWA_ASSERT_OFFSETOF(CGameDocument, m_pMember, 0x08); SWA_ASSERT_SIZEOF(CGameDocument, 0x0C); } #include "GameDocument.inl"