api: update research

This commit is contained in:
Hyper
2025-01-15 19:47:11 +00:00
parent 064d0a1736
commit 4b7f2c0ae7
12 changed files with 272 additions and 66 deletions

View File

@@ -2,9 +2,35 @@
#include <SWA.inl>
#include <SWA/System/Game.h>
#include <SWA/System/GameParameter.h>
#include <SWA/System/GammaController.h>
namespace Hedgehog::Base
{
class CCriticalSection;
}
namespace Hedgehog::Database
{
class CDatabase;
}
namespace Hedgehog::Mirage
{
class CMatrixNode;
class CRenderScene;
}
namespace Hedgehog::Universe
{
class CParallelJobManagerD3D9;
}
namespace SWA
{
class CApplication;
class CDatabaseTree;
enum ELanguage : uint32_t
{
eLanguage_English,
@@ -33,12 +59,29 @@ namespace SWA
class CMember
{
public:
xpointer<CApplication> m_pApplication;
boost::shared_ptr<Hedgehog::Universe::CParallelJobManagerD3D9> m_spParallelJobManagerD3D9;
SWA_INSERT_PADDING(0x14);
boost::shared_ptr<CGame> m_spGame;
SWA_INSERT_PADDING(0x14);
boost::shared_ptr<Hedgehog::Database::CDatabase> m_spInspireDatabase;
SWA_INSERT_PADDING(0x30);
Hedgehog::Base::CSharedString m_Field74;
SWA_INSERT_PADDING(0x0C);
boost::shared_ptr<Hedgehog::Mirage::CMatrixNode> m_spMatrixNodeRoot;
SWA_INSERT_PADDING(0x14);
CGammaController m_GammaController;
SWA_INSERT_PADDING(0x1C);
boost::shared_ptr<Achievement::CManager> m_spAchievementManager;
boost::shared_ptr<CDatabaseTree> m_spDatabaseTree;
Hedgehog::Base::CSharedString m_Field10C;
SWA_INSERT_PADDING(0x1C);
boost::shared_ptr<Hedgehog::Mirage::CRenderScene> m_spRenderScene;
SWA_INSERT_PADDING(0x04);
boost::shared_ptr<CGameParameter> m_spGameParameter;
SWA_INSERT_PADDING(0x78);
boost::shared_ptr<Hedgehog::Base::CCriticalSection> m_spCriticalSection;
SWA_INSERT_PADDING(0x20);
boost::shared_ptr<CGame> m_pGame;
SWA_INSERT_PADDING(0xD4);
xpointer<Achievement::CManager> m_pAchievementManager;
SWA_INSERT_PADDING(0x3C);
xpointer<void> m_spGameParameter;
};
// TODO: Hedgehog::Base::TSynchronizedPtr<CApplicationDocument>
@@ -51,7 +94,31 @@ namespace SWA
be<ERegion> m_Region;
bool m_InspireVoices;
bool m_InspireSubtitles;
SWA_INSERT_PADDING(0x28);
};
SWA_ASSERT_OFFSETOF(CApplicationDocument::CMember, m_pApplication, 0x00);
SWA_ASSERT_OFFSETOF(CApplicationDocument::CMember, m_spParallelJobManagerD3D9, 0x04);
SWA_ASSERT_OFFSETOF(CApplicationDocument::CMember, m_spGame, 0x20);
SWA_ASSERT_OFFSETOF(CApplicationDocument::CMember, m_spInspireDatabase, 0x3C);
SWA_ASSERT_OFFSETOF(CApplicationDocument::CMember, m_Field74, 0x74);
SWA_ASSERT_OFFSETOF(CApplicationDocument::CMember, m_spMatrixNodeRoot, 0x84);
SWA_ASSERT_OFFSETOF(CApplicationDocument::CMember, m_GammaController, 0xA0);
SWA_ASSERT_OFFSETOF(CApplicationDocument::CMember, m_spAchievementManager, 0xFC);
SWA_ASSERT_OFFSETOF(CApplicationDocument::CMember, m_spDatabaseTree, 0x104);
SWA_ASSERT_OFFSETOF(CApplicationDocument::CMember, m_Field10C, 0x10C);
SWA_ASSERT_OFFSETOF(CApplicationDocument::CMember, m_spRenderScene, 0x12C);
SWA_ASSERT_OFFSETOF(CApplicationDocument::CMember, m_spGameParameter, 0x138);
SWA_ASSERT_OFFSETOF(CApplicationDocument::CMember, m_spCriticalSection, 0x1B8);
SWA_ASSERT_SIZEOF(CApplicationDocument::CMember, 0x1E0);
SWA_ASSERT_OFFSETOF(CApplicationDocument, m_pMember, 0x04);
SWA_ASSERT_OFFSETOF(CApplicationDocument, m_Language, 0x08);
SWA_ASSERT_OFFSETOF(CApplicationDocument, m_VoiceLanguage, 0x0C);
SWA_ASSERT_OFFSETOF(CApplicationDocument, m_Region, 0x18);
SWA_ASSERT_OFFSETOF(CApplicationDocument, m_InspireVoices, 0x1C);
SWA_ASSERT_OFFSETOF(CApplicationDocument, m_InspireSubtitles, 0x1D);
SWA_ASSERT_SIZEOF(CApplicationDocument, 0x48);
}
#include "ApplicationDocument.inl"

View File

@@ -13,12 +13,30 @@ namespace SWA
class CMember
{
public:
struct SScoreInfo
{
be<uint32_t> SRank;
be<uint32_t> ARank;
be<uint32_t> BRank;
be<uint32_t> CRank;
be<uint32_t> DRank;
SWA_INSERT_PADDING(0x0C);
be<float> PointMarkerRecordSpeed;
SWA_INSERT_PADDING(0x0C);
be<uint32_t> PointMarkerCount;
be<uint32_t> EnemyScore;
be<uint32_t> TrickScore;
SWA_INSERT_PADDING(0x10);
};
SWA_INSERT_PADDING(0x1C);
boost::shared_ptr<Hedgehog::Database::CDatabase> m_spDatabase;
SWA_INSERT_PADDING(0x8C);
SWA_INSERT_PADDING(0x88);
Hedgehog::Base::CSharedString m_StageName;
xpointer<CSoundAdministrator> m_pSoundAdministrator;
SWA_INSERT_PADDING(0x158);
be<uint32_t> m_Score;
SWA_INSERT_PADDING(0x124);
SScoreInfo m_ScoreInfo;
SWA_INSERT_PADDING(0x0C);
};
// TODO: Hedgehog::Base::TSynchronizedPtr<CGameDocument>
@@ -27,6 +45,26 @@ namespace SWA
xpointer<void> m_pVftable;
xpointer<CMember> 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_ScoreInfo, 0x1D8);
SWA_ASSERT_SIZEOF(CGameDocument::CMember, 0x230);
SWA_ASSERT_OFFSETOF(CGameDocument, m_pMember, 0x08);
SWA_ASSERT_SIZEOF(CGameDocument, 0x0C);
}
#include "GameDocument.inl"

View File

@@ -0,0 +1,17 @@
#pragma once
#include <SWA.inl>
namespace SWA
{
class CGameParameter // : public Hedgehog::Universe::CMessageActor
{
public:
struct SSaveData;
struct SStageParameter;
SWA_INSERT_PADDING(0x94);
xpointer<SSaveData> m_pSaveData;
xpointer<SStageParameter> m_pStageParameter;
};
}

View File

@@ -0,0 +1,22 @@
#pragma once
#include <SWA.inl>
#include <Hedgehog/Math/Vector.h>
namespace SWA
{
class CGammaController : public Hedgehog::Base::CObject
{
public:
SWA_INSERT_PADDING(0x10);
uint8_t m_Field10;
SWA_INSERT_PADDING(0x0F);
Hedgehog::Math::CVector4 m_Gamma;
Hedgehog::Math::CVector4 m_Field30;
};
SWA_ASSERT_OFFSETOF(CGammaController, m_Field10, 0x10);
SWA_ASSERT_OFFSETOF(CGammaController, m_Gamma, 0x20);
SWA_ASSERT_OFFSETOF(CGammaController, m_Field30, 0x30);
SWA_ASSERT_SIZEOF(CGammaController, 0x40);
}