mirror of https://github.com/AxioDL/metaforce.git
MP1/CMain: Add missing fields
This commit is contained in:
parent
1c775a7ea7
commit
34b2383dfd
|
@ -236,7 +236,8 @@ void CGameArchitectureSupport::specialKeyUp(boo::ESpecialKey key, boo::EModifier
|
||||||
|
|
||||||
CMain::CMain(IFactory* resFactory, CSimplePool* resStore, boo::IGraphicsDataFactory* gfxFactory,
|
CMain::CMain(IFactory* resFactory, CSimplePool* resStore, boo::IGraphicsDataFactory* gfxFactory,
|
||||||
boo::IGraphicsCommandQueue* cmdQ, const boo::ObjToken<boo::ITextureR>& spareTex)
|
boo::IGraphicsCommandQueue* cmdQ, const boo::ObjToken<boo::ITextureR>& spareTex)
|
||||||
: m_booSetter(gfxFactory, cmdQ, spareTex), x128_globalObjects(resFactory, resStore) {
|
: m_booSetter(gfxFactory, cmdQ, spareTex)
|
||||||
|
, x128_globalObjects(std::make_unique<CGameGlobalObjects>(resFactory, resStore)) {
|
||||||
xe4_gameplayResult = EGameplayResult::Playing;
|
xe4_gameplayResult = EGameplayResult::Playing;
|
||||||
g_Main = this;
|
g_Main = this;
|
||||||
}
|
}
|
||||||
|
@ -388,7 +389,7 @@ void CMain::AddOverridePaks() {
|
||||||
void CMain::ResetGameState() {
|
void CMain::ResetGameState() {
|
||||||
CPersistentOptions sysOpts = g_GameState->SystemOptions();
|
CPersistentOptions sysOpts = g_GameState->SystemOptions();
|
||||||
CGameOptions gameOpts = g_GameState->GameOptions();
|
CGameOptions gameOpts = g_GameState->GameOptions();
|
||||||
x128_globalObjects.ResetGameState();
|
x128_globalObjects->ResetGameState();
|
||||||
g_GameState->ImportPersistentOptions(sysOpts);
|
g_GameState->ImportPersistentOptions(sysOpts);
|
||||||
g_GameState->SetGameOptions(gameOpts);
|
g_GameState->SetGameOptions(gameOpts);
|
||||||
g_GameState->GetPlayerState()->SetIsFusionEnabled(g_GameState->SystemOptions().GetPlayerFusionSuitActive());
|
g_GameState->GetPlayerState()->SetIsFusionEnabled(g_GameState->SystemOptions().GetPlayerFusionSuitActive());
|
||||||
|
@ -411,7 +412,7 @@ void CMain::MemoryCardInitializePump() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::unique_ptr<CMemoryCardSys>& memSys = x128_globalObjects.x0_memoryCardSys;
|
std::unique_ptr<CMemoryCardSys>& memSys = x128_globalObjects->x0_memoryCardSys;
|
||||||
if (!memSys) {
|
if (!memSys) {
|
||||||
memSys = std::make_unique<CMemoryCardSys>();
|
memSys = std::make_unique<CMemoryCardSys>();
|
||||||
}
|
}
|
||||||
|
@ -632,8 +633,8 @@ void CMain::Warp(hecl::Console* con, const std::vector<std::string>& args) {
|
||||||
|
|
||||||
void CMain::StreamNewGameState(CBitStreamReader& r, u32 idx) {
|
void CMain::StreamNewGameState(CBitStreamReader& r, u32 idx) {
|
||||||
bool fusionBackup = g_GameState->SystemOptions().GetPlayerFusionSuitActive();
|
bool fusionBackup = g_GameState->SystemOptions().GetPlayerFusionSuitActive();
|
||||||
x128_globalObjects.x134_gameState = std::make_unique<CGameState>(r, idx);
|
x128_globalObjects->x134_gameState = std::make_unique<CGameState>(r, idx);
|
||||||
g_GameState = x128_globalObjects.x134_gameState.get();
|
g_GameState = x128_globalObjects->x134_gameState.get();
|
||||||
g_GameState->SystemOptions().SetPlayerFusionSuitActive(fusionBackup);
|
g_GameState->SystemOptions().SetPlayerFusionSuitActive(fusionBackup);
|
||||||
g_GameState->GetPlayerState()->SetIsFusionEnabled(fusionBackup);
|
g_GameState->GetPlayerState()->SetIsFusionEnabled(fusionBackup);
|
||||||
g_GameState->HintOptions().SetNextHintTime();
|
g_GameState->HintOptions().SetNextHintTime();
|
||||||
|
@ -645,7 +646,7 @@ void CMain::RefreshGameState() {
|
||||||
std::vector<u8> saveData = g_GameState->BackupBuf();
|
std::vector<u8> saveData = g_GameState->BackupBuf();
|
||||||
CGameOptions gameOpts = g_GameState->GameOptions();
|
CGameOptions gameOpts = g_GameState->GameOptions();
|
||||||
CBitStreamReader r(saveData.data(), saveData.size());
|
CBitStreamReader r(saveData.data(), saveData.size());
|
||||||
x128_globalObjects.StreamInGameState(r, g_GameState->GetFileIdx());
|
x128_globalObjects->StreamInGameState(r, g_GameState->GetFileIdx());
|
||||||
g_GameState->SetPersistentOptions(sysOpts);
|
g_GameState->SetPersistentOptions(sysOpts);
|
||||||
g_GameState->SetGameOptions(gameOpts);
|
g_GameState->SetGameOptions(gameOpts);
|
||||||
g_GameState->GameOptions().EnsureSettings();
|
g_GameState->GameOptions().EnsureSettings();
|
||||||
|
@ -776,7 +777,7 @@ void CMain::Init(const hecl::Runtime::FileStoreManager& storeMgr, hecl::CVarMana
|
||||||
|
|
||||||
InitializeSubsystems();
|
InitializeSubsystems();
|
||||||
AddOverridePaks();
|
AddOverridePaks();
|
||||||
x128_globalObjects.PostInitialize();
|
x128_globalObjects->PostInitialize();
|
||||||
x70_tweaks.RegisterTweaks(m_cvarMgr);
|
x70_tweaks.RegisterTweaks(m_cvarMgr);
|
||||||
x70_tweaks.RegisterResourceTweaks(m_cvarMgr);
|
x70_tweaks.RegisterResourceTweaks(m_cvarMgr);
|
||||||
AddWorldPaks();
|
AddWorldPaks();
|
||||||
|
@ -788,8 +789,9 @@ void CMain::Init(const hecl::Runtime::FileStoreManager& storeMgr, hecl::CVarMana
|
||||||
}
|
}
|
||||||
hecl::SystemStringConv conv(GetVersionString());
|
hecl::SystemStringConv conv(GetVersionString());
|
||||||
boo::SystemStringView versionView(conv.sys_str());
|
boo::SystemStringView versionView(conv.sys_str());
|
||||||
MainLog.report(logvisor::Level::Info, FMT_STRING(_SYS_STR("Loading data from Metroid Prime version {} from region {}{}")),
|
MainLog.report(logvisor::Level::Info,
|
||||||
versionView, boo::SystemChar(GetRegion()), IsTrilogy() ? _SYS_STR(" from trilogy") : _SYS_STR(""));
|
FMT_STRING(_SYS_STR("Loading data from Metroid Prime version {} from region {}{}")), versionView,
|
||||||
|
boo::SystemChar(GetRegion()), IsTrilogy() ? _SYS_STR(" from trilogy") : _SYS_STR(""));
|
||||||
} else {
|
} else {
|
||||||
MainLog.report(logvisor::Level::Fatal, FMT_STRING("Unable to load version info"));
|
MainLog.report(logvisor::Level::Fatal, FMT_STRING("Unable to load version info"));
|
||||||
}
|
}
|
||||||
|
@ -889,7 +891,7 @@ bool CMain::Proc() {
|
||||||
if (m_warmupTags.size())
|
if (m_warmupTags.size())
|
||||||
return false;
|
return false;
|
||||||
if (!m_loadedPersistentResources) {
|
if (!m_loadedPersistentResources) {
|
||||||
x128_globalObjects.m_gameResFactory->LoadPersistentResources(*g_SimplePool);
|
x128_globalObjects->m_gameResFactory->LoadPersistentResources(*g_SimplePool);
|
||||||
m_loadedPersistentResources = true;
|
m_loadedPersistentResources = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -977,7 +979,7 @@ void CMain::ShutdownSubsystems() {
|
||||||
|
|
||||||
void CMain::Shutdown() {
|
void CMain::Shutdown() {
|
||||||
m_console->unregisterCommand("Give");
|
m_console->unregisterCommand("Give");
|
||||||
x128_globalObjects.m_gameResFactory->UnloadPersistentResources();
|
x128_globalObjects->m_gameResFactory->UnloadPersistentResources();
|
||||||
x164_archSupport.reset();
|
x164_archSupport.reset();
|
||||||
ShutdownSubsystems();
|
ShutdownSubsystems();
|
||||||
CParticleSwooshShaders::Shutdown();
|
CParticleSwooshShaders::Shutdown();
|
||||||
|
@ -1012,6 +1014,37 @@ void CMain::Shutdown() {
|
||||||
|
|
||||||
boo::IWindow* CMain::GetMainWindow() const { return m_mainWindow; }
|
boo::IWindow* CMain::GetMainWindow() const { return m_mainWindow; }
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
int CMain::RsMain(int argc, boo::SystemChar** argv, boo::IAudioVoiceEngine* voiceEngine,
|
||||||
|
amuse::IBackendVoiceAllocator& backend) {
|
||||||
|
// PPCSetFpIEEEMode();
|
||||||
|
// uVar21 = OSGetTime();
|
||||||
|
// LCEnable();
|
||||||
|
x128_globalObjects = std::make_unique<CGameGlobalObjects>(nullptr, nullptr);
|
||||||
|
xf0_.resize(4, 0.3f);
|
||||||
|
x104_.resize(4, 0.2f);
|
||||||
|
x118_ = 0.3f;
|
||||||
|
x11c_ = 0.2f;
|
||||||
|
InitializeSubsystems();
|
||||||
|
x128_globalObjects->PostInitialize(); // COsContext*, CMemorySys*
|
||||||
|
x70_tweaks.RegisterTweaks(m_cvarMgr);
|
||||||
|
AddWorldPaks();
|
||||||
|
|
||||||
|
std::string msg;
|
||||||
|
if (!g_TweakManager->ReadFromMemoryCard("AudioTweaks"sv)) {
|
||||||
|
msg = "Loaded audio tweaks from memory card\n"s;
|
||||||
|
} else {
|
||||||
|
msg = "FAILED to load audio tweaks from memory card\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
FillInAssetIDs();
|
||||||
|
x164_archSupport = std::make_unique<CGameArchitectureSupport>(*this, voiceEngine, backend);
|
||||||
|
x164_archSupport->PreloadAudio();
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#if MP1_USE_BOO
|
#if MP1_USE_BOO
|
||||||
|
|
||||||
int CMain::appMain(boo::IApplication* app) {
|
int CMain::appMain(boo::IApplication* app) {
|
||||||
|
|
|
@ -206,17 +206,32 @@ private:
|
||||||
const boo::ObjToken<boo::ITextureR>& spareTex);
|
const boo::ObjToken<boo::ITextureR>& spareTex);
|
||||||
} m_booSetter;
|
} m_booSetter;
|
||||||
|
|
||||||
|
// COsContext x0_osContext;
|
||||||
// CMemorySys x6c_memSys;
|
// CMemorySys x6c_memSys;
|
||||||
CTweaks x70_tweaks;
|
CTweaks x70_tweaks;
|
||||||
EGameplayResult xe4_gameplayResult;
|
EGameplayResult xe4_gameplayResult;
|
||||||
|
double xe8_;
|
||||||
/* urde addition: these are simply initialized along with everything else */
|
rstl::reserved_vector<float, 4> xf0_;
|
||||||
CGameGlobalObjects x128_globalObjects;
|
rstl::reserved_vector<float, 4> x104_;
|
||||||
|
float x118_;
|
||||||
|
float x11c_;
|
||||||
|
float x120_;
|
||||||
|
float x124_;
|
||||||
|
std::unique_ptr<CGameGlobalObjects> x128_globalObjects;
|
||||||
EFlowState x12c_flowState = EFlowState::Default;
|
EFlowState x12c_flowState = EFlowState::Default;
|
||||||
|
rstl::reserved_vector<u32, 10> x130_{{
|
||||||
u32 x130_[10] = {1000000};
|
1000000,
|
||||||
|
1000000,
|
||||||
|
1000000,
|
||||||
|
1000000,
|
||||||
|
1000000,
|
||||||
|
1000000,
|
||||||
|
1000000,
|
||||||
|
1000000,
|
||||||
|
1000000,
|
||||||
|
1000000,
|
||||||
|
}};
|
||||||
|
// u32 x15c_ = 0;
|
||||||
bool x160_24_finished : 1 = false;
|
bool x160_24_finished : 1 = false;
|
||||||
bool x160_25_mfGameBuilt : 1 = false;
|
bool x160_25_mfGameBuilt : 1 = false;
|
||||||
bool x160_26_screenFading : 1 = false;
|
bool x160_26_screenFading : 1 = false;
|
||||||
|
@ -226,11 +241,9 @@ private:
|
||||||
bool x160_30_ : 1 = false;
|
bool x160_30_ : 1 = false;
|
||||||
bool x160_31_cardBusy : 1 = false;
|
bool x160_31_cardBusy : 1 = false;
|
||||||
bool x161_24_gameFrameDrawn : 1 = false;
|
bool x161_24_gameFrameDrawn : 1 = false;
|
||||||
|
|
||||||
std::unique_ptr<CGameArchitectureSupport> x164_archSupport;
|
std::unique_ptr<CGameArchitectureSupport> x164_archSupport;
|
||||||
|
|
||||||
boo::IWindow* m_mainWindow = nullptr;
|
boo::IWindow* m_mainWindow = nullptr;
|
||||||
|
|
||||||
hecl::CVarManager* m_cvarMgr = nullptr;
|
hecl::CVarManager* m_cvarMgr = nullptr;
|
||||||
std::unique_ptr<hecl::CVarCommons> m_cvarCommons;
|
std::unique_ptr<hecl::CVarCommons> m_cvarCommons;
|
||||||
std::unique_ptr<hecl::Console> m_console;
|
std::unique_ptr<hecl::Console> m_console;
|
||||||
|
@ -269,7 +282,7 @@ public:
|
||||||
|
|
||||||
static void UpdateDiscordPresence(CAssetId worldSTRG = {});
|
static void UpdateDiscordPresence(CAssetId worldSTRG = {});
|
||||||
|
|
||||||
// int RsMain(int argc, const boo::SystemChar* argv[]);
|
// int RsMain(int argc, boo::SystemChar** argv, boo::IAudioVoiceEngine* voiceEngine, amuse::IBackendVoiceAllocator& backend);
|
||||||
void Init(const hecl::Runtime::FileStoreManager& storeMgr, hecl::CVarManager* cvarManager, boo::IWindow* window,
|
void Init(const hecl::Runtime::FileStoreManager& storeMgr, hecl::CVarManager* cvarManager, boo::IWindow* window,
|
||||||
boo::IAudioVoiceEngine* voiceEngine, amuse::IBackendVoiceAllocator& backend) override;
|
boo::IAudioVoiceEngine* voiceEngine, amuse::IBackendVoiceAllocator& backend) override;
|
||||||
void WarmupShaders() override;
|
void WarmupShaders() override;
|
||||||
|
@ -318,7 +331,7 @@ public:
|
||||||
bool IsTrilogy() const override { return m_version.isTrilogy; }
|
bool IsTrilogy() const override { return m_version.isTrilogy; }
|
||||||
ERegion GetRegion() const override { return m_version.region; }
|
ERegion GetRegion() const override { return m_version.region; }
|
||||||
EGame GetGame() const override { return m_version.game; }
|
EGame GetGame() const override { return m_version.game; }
|
||||||
std::string_view GetVersionString() const override{ return m_version.version; }
|
std::string_view GetVersionString() const override { return m_version.version; }
|
||||||
|
|
||||||
int m_warpWorldIdx = -1;
|
int m_warpWorldIdx = -1;
|
||||||
TAreaId m_warpAreaId = 0;
|
TAreaId m_warpAreaId = 0;
|
||||||
|
|
|
@ -186,7 +186,7 @@ void CScriptSound::AcceptScriptMsg(EScriptObjectMessage msg, TUniqueId uid, CSta
|
||||||
}
|
}
|
||||||
|
|
||||||
void CScriptSound::PlaySound(CStateManager& mgr) {
|
void CScriptSound::PlaySound(CStateManager& mgr) {
|
||||||
if (!x11d_24_allowDuplicates && xec_sfxHandle && !xec_sfxHandle->IsClosed() || x11d_25_processedThisFrame) {
|
if ((!x11d_24_allowDuplicates && xec_sfxHandle && !xec_sfxHandle->IsClosed()) || x11d_25_processedThisFrame) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue