Runtime/MP1: Replace bitfield unions with constructor initializers

This commit is contained in:
Luke Street 2020-04-10 15:25:40 -04:00
parent d23e76db54
commit 402e45ecb5
22 changed files with 153 additions and 164 deletions

View File

@ -1412,10 +1412,9 @@ void CFrontEndUI::SNesEmulatorFrame::Draw(CSaveGameScreen* saveUi) const {
} }
} }
CFrontEndUI::SOptionsFrontEndFrame::SOptionsFrontEndFrame() { CFrontEndUI::SOptionsFrontEndFrame::SOptionsFrontEndFrame() : x134_24_visible(true), x134_25_exitOptions(false) {
x4_frme = g_SimplePool->GetObj("FRME_OptionsFrontEnd"); x4_frme = g_SimplePool->GetObj("FRME_OptionsFrontEnd");
x10_pauseScreen = g_SimplePool->GetObj("STRG_PauseScreen"); x10_pauseScreen = g_SimplePool->GetObj("STRG_PauseScreen");
x134_24_visible = true;
} }
void CFrontEndUI::SOptionsFrontEndFrame::DoSliderChange(CGuiSliderGroup* caller, float value) { void CFrontEndUI::SOptionsFrontEndFrame::DoSliderChange(CGuiSliderGroup* caller, float value) {

View File

@ -279,13 +279,8 @@ public:
float x38_rowPitch = 0.f; float x38_rowPitch = 0.f;
CSfxHandle x3c_sliderSfx; CSfxHandle x3c_sliderSfx;
CRumbleGenerator x40_rumbleGen; CRumbleGenerator x40_rumbleGen;
union { bool x134_24_visible : 1;
u8 _dummy = 0; bool x134_25_exitOptions : 1;
struct {
bool x134_24_visible : 1;
bool x134_25_exitOptions : 1;
};
};
std::unique_ptr<CGameOptionsTouchBar> m_touchBar; std::unique_ptr<CGameOptionsTouchBar> m_touchBar;
bool m_touchBarInValue = false; bool m_touchBarInValue = false;

View File

@ -178,7 +178,11 @@ CInGameGuiManager::CInGameGuiManager(CStateManager& stateMgr, CArchitectureQueue
, x1c_rand(1234) , x1c_rand(1234)
, x20_faceplateDecor(stateMgr) , x20_faceplateDecor(stateMgr)
, x50_deathDot(g_SimplePool->GetObj("TXTR_DeathDot")) , x50_deathDot(g_SimplePool->GetObj("TXTR_DeathDot"))
, x5c_pauseScreenDGRPs(LockPauseScreenDependencies()) { , x5c_pauseScreenDGRPs(LockPauseScreenDependencies())
, x1f8_24_(false)
, x1f8_25_playerAlive(true)
, x1f8_26_deferTransition(false)
, x1f8_27_exitSaveUI(true) {
x1e0_helmetVisMode = g_tweakGui->GetHelmetVisMode(); x1e0_helmetVisMode = g_tweakGui->GetHelmetVisMode();
x1e4_enableTargetingManager = g_tweakGui->GetEnableTargetingManager(); x1e4_enableTargetingManager = g_tweakGui->GetEnableTargetingManager();
x1e8_enableAutoMapper = g_tweakGui->GetEnableAutoMapper(); x1e8_enableAutoMapper = g_tweakGui->GetEnableAutoMapper();
@ -187,9 +191,6 @@ CInGameGuiManager::CInGameGuiManager(CStateManager& stateMgr, CArchitectureQueue
x1f4_visorStaticAlpha = stateMgr.GetPlayer().GetVisorStaticAlpha(); x1f4_visorStaticAlpha = stateMgr.GetPlayer().GetVisorStaticAlpha();
x1f8_25_playerAlive = true;
x1f8_27_exitSaveUI = true;
xc8_inGameGuiDGRPs.reserve(InGameGuiDGRPs.size()); xc8_inGameGuiDGRPs.reserve(InGameGuiDGRPs.size());
for (const char* const dgrp : InGameGuiDGRPs) { for (const char* const dgrp : InGameGuiDGRPs) {
xc8_inGameGuiDGRPs.emplace_back(g_SimplePool->GetObj(dgrp)); xc8_inGameGuiDGRPs.emplace_back(g_SimplePool->GetObj(dgrp));

View File

@ -95,6 +95,10 @@ private:
EHudVisMode x1ec_hudVisMode; EHudVisMode x1ec_hudVisMode;
u32 x1f0_enablePlayerVisor; u32 x1f0_enablePlayerVisor;
float x1f4_visorStaticAlpha; float x1f4_visorStaticAlpha;
bool x1f8_24_ : 1;
bool x1f8_25_playerAlive : 1;
bool x1f8_26_deferTransition : 1;
bool x1f8_27_exitSaveUI : 1;
std::optional<CTexturedQuadFilter> m_deathRenderTexQuad; std::optional<CTexturedQuadFilter> m_deathRenderTexQuad;
std::optional<CTexturedQuadFilter> m_deathDotQuad; std::optional<CTexturedQuadFilter> m_deathDotQuad;
@ -102,16 +106,6 @@ private:
CColoredQuadFilter m_deathWhiteout{EFilterType::Blend}; CColoredQuadFilter m_deathWhiteout{EFilterType::Blend};
CColoredQuadFilter m_deathBlackout{EFilterType::Blend}; CColoredQuadFilter m_deathBlackout{EFilterType::Blend};
union {
struct {
bool x1f8_24_ : 1;
bool x1f8_25_playerAlive : 1;
bool x1f8_26_deferTransition : 1;
bool x1f8_27_exitSaveUI : 1;
};
u32 _dummy = 0;
};
static std::vector<TLockedToken<CDependencyGroup>> LockPauseScreenDependencies(); static std::vector<TLockedToken<CDependencyGroup>> LockPauseScreenDependencies();
bool CheckDGRPLoadComplete() const; bool CheckDGRPLoadComplete() const;
void BeginStateTransition(EInGameGuiState state, CStateManager& stateMgr); void BeginStateTransition(EInGameGuiState state, CStateManager& stateMgr);

View File

@ -14,7 +14,10 @@
namespace urde::MP1 { namespace urde::MP1 {
CLogBookScreen::CLogBookScreen(const CStateManager& mgr, CGuiFrame& frame, const CStringTable& pauseStrg) CLogBookScreen::CLogBookScreen(const CStateManager& mgr, CGuiFrame& frame, const CStringTable& pauseStrg)
: CPauseScreenBase(mgr, frame, pauseStrg, true) { : CPauseScreenBase(mgr, frame, pauseStrg, true)
, x260_24_loaded(false)
, x260_25_inTextScroll(false)
, x260_26_exitTextScroll(false) {
x19c_scanCompletes.resize(5); x19c_scanCompletes.resize(5);
x200_viewScans.resize(5); x200_viewScans.resize(5);
x258_artifactDoll = std::make_unique<CArtifactDoll>(); x258_artifactDoll = std::make_unique<CArtifactDoll>();
@ -177,7 +180,6 @@ bool CLogBookScreen::IsScanCategoryReady(CSaveWorld::EScanCategory category) con
}); });
} }
void CLogBookScreen::UpdateBodyText() { void CLogBookScreen::UpdateBodyText() {
if (x10_mode != EMode::TextScroll) { if (x10_mode != EMode::TextScroll) {
x174_textpane_body->TextSupport().SetText(u""); x174_textpane_body->TextSupport().SetText(u"");

View File

@ -13,7 +13,7 @@ namespace urde {
class CPlayerState; class CPlayerState;
class CScannableObjectInfo; class CScannableObjectInfo;
class CStringTable; class CStringTable;
} } // namespace urde
namespace urde::MP1 { namespace urde::MP1 {
class CArtifactDoll; class CArtifactDoll;
@ -25,18 +25,14 @@ class CLogBookScreen : public CPauseScreenBase {
x200_viewScans; x200_viewScans;
float x254_viewInterp = 0.f; float x254_viewInterp = 0.f;
std::unique_ptr<CArtifactDoll> x258_artifactDoll; std::unique_ptr<CArtifactDoll> x258_artifactDoll;
enum class ELeavePauseState {
enum class ELeavePauseState { InPause = 0, LeavingPause = 1, LeftPause = 2 }; InPause = 0,
LeavingPause = 1,
ELeavePauseState x25c_leavePauseState = ELeavePauseState::InPause; LeftPause = 2
union { } x25c_leavePauseState = ELeavePauseState::InPause;
struct { bool x260_24_loaded : 1;
bool x260_24_loaded : 1; bool x260_25_inTextScroll : 1;
bool x260_25_inTextScroll : 1; bool x260_26_exitTextScroll : 1;
bool x260_26_exitTextScroll : 1;
};
s32 _dummy = 0;
};
void InitializeLogBook(); void InitializeLogBook();
void UpdateRightTitles(); void UpdateRightTitles();

View File

@ -14,13 +14,16 @@ namespace urde::MP1 {
CMFGame::CMFGame(const std::weak_ptr<CStateManager>& stateMgr, const std::weak_ptr<CInGameGuiManager>& guiMgr, CMFGame::CMFGame(const std::weak_ptr<CStateManager>& stateMgr, const std::weak_ptr<CInGameGuiManager>& guiMgr,
const CArchitectureQueue&) const CArchitectureQueue&)
: CMFGameBase("CMFGame"), x14_stateManager(stateMgr.lock()), x18_guiManager(guiMgr.lock()) { : CMFGameBase("CMFGame")
x2a_25_samusAlive = true; , x14_stateManager(stateMgr.lock())
, x18_guiManager(guiMgr.lock())
, x2a_24_initialized(false)
, x2a_25_samusAlive(true) {
static_cast<CMain&>(*g_Main).SetMFGameBuilt(true); static_cast<CMain&>(*g_Main).SetMFGameBuilt(true);
} }
CMFGame::~CMFGame() { CMFGame::~CMFGame() {
CMain& main = static_cast<CMain&>(*g_Main); auto& main = static_cast<CMain&>(*g_Main);
main.SetMFGameBuilt(false); main.SetMFGameBuilt(false);
main.SetScreenFading(false); main.SetScreenFading(false);
CDecalManager::Reinitialize(); CDecalManager::Reinitialize();
@ -253,8 +256,9 @@ void CMFGame::EnterMapScreen() {
x14_stateManager->SetInMapScreen(true); x14_stateManager->SetInMapScreen(true);
} }
CMFGameLoader::CMFGameLoader() : CMFGameLoaderBase("CMFGameLoader") { CMFGameLoader::CMFGameLoader()
CMain* m = static_cast<CMain*>(g_Main); : CMFGameLoaderBase("CMFGameLoader"), x2c_24_initialized(false), x2c_25_transitionFinished(false) {
auto* m = static_cast<CMain*>(g_Main);
switch (m->GetFlowState()) { switch (m->GetFlowState()) {
case EFlowState::Default: case EFlowState::Default:
case EFlowState::StateSetter: { case EFlowState::StateSetter: {

View File

@ -23,13 +23,8 @@ class CMFGame : public CMFGameBase {
float x20_cineSkipTime; float x20_cineSkipTime;
u32 x24_ = 0; u32 x24_ = 0;
TUniqueId x28_skippedCineCam = kInvalidUniqueId; TUniqueId x28_skippedCineCam = kInvalidUniqueId;
union { bool x2a_24_initialized : 1;
struct { bool x2a_25_samusAlive : 1;
bool x2a_24_initialized : 1;
bool x2a_25_samusAlive : 1;
};
u8 _dummy = 0;
};
CColoredQuadFilter m_fadeToBlack{EFilterType::Multiply}; CColoredQuadFilter m_fadeToBlack{EFilterType::Multiply};
@ -57,14 +52,8 @@ class CMFGameLoader : public CMFGameLoaderBase {
std::shared_ptr<CStateManager> x14_stateMgr; std::shared_ptr<CStateManager> x14_stateMgr;
std::shared_ptr<CInGameGuiManager> x18_guiMgr; std::shared_ptr<CInGameGuiManager> x18_guiMgr;
std::vector<CToken> x1c_loadList; std::vector<CToken> x1c_loadList;
bool x2c_24_initialized : 1;
union { bool x2c_25_transitionFinished : 1;
struct {
bool x2c_24_initialized : 1;
bool x2c_25_transitionFinished : 1;
};
u8 _dummy = 0;
};
void MakeLoadDependencyList(); void MakeLoadDependencyList();

View File

@ -18,9 +18,22 @@ namespace urde::MP1 {
CPauseScreenBase::CPauseScreenBase(const CStateManager& mgr, CGuiFrame& frame, const CStringTable& pauseStrg, CPauseScreenBase::CPauseScreenBase(const CStateManager& mgr, CGuiFrame& frame, const CStringTable& pauseStrg,
bool isLogBook) bool isLogBook)
: x4_mgr(mgr), x8_frame(frame), xc_pauseStrg(pauseStrg) { : x4_mgr(mgr)
m_isLogBook = isLogBook; , x8_frame(frame)
m_playRightTableSfx = true; , xc_pauseStrg(pauseStrg)
, x198_24_ready(false)
, x198_25_handledInput(false)
, x198_26_exitPauseScreen(false)
, x198_27_canDraw(false)
, x198_28_pulseTextArrowTop(false)
, x198_29_pulseTextArrowBottom(false)
, m_isLogBook(isLogBook)
, m_bodyUpClicked(false)
, m_bodyDownClicked(false)
, m_bodyClicked(false)
, m_leftClicked(false)
, m_rightClicked(false)
, m_playRightTableSfx(true) {
InitializeFrameGlue(); InitializeFrameGlue();
} }

View File

@ -74,24 +74,20 @@ protected:
CGuiSliderGroup* x18c_slidergroup_slider = nullptr; CGuiSliderGroup* x18c_slidergroup_slider = nullptr;
CGuiTableGroup* x190_tablegroup_double = nullptr; CGuiTableGroup* x190_tablegroup_double = nullptr;
CGuiTableGroup* x194_tablegroup_triple = nullptr; CGuiTableGroup* x194_tablegroup_triple = nullptr;
union { bool x198_24_ready : 1;
struct { bool x198_25_handledInput : 1;
bool x198_24_ready : 1; bool x198_26_exitPauseScreen : 1;
bool x198_25_handledInput : 1; bool x198_27_canDraw : 1;
bool x198_26_exitPauseScreen : 1; bool x198_28_pulseTextArrowTop : 1;
bool x198_27_canDraw : 1; bool x198_29_pulseTextArrowBottom : 1;
bool x198_28_pulseTextArrowTop : 1; bool m_isLogBook : 1;
bool x198_29_pulseTextArrowBottom : 1; bool m_bodyUpClicked : 1;
bool m_isLogBook : 1; bool m_bodyDownClicked : 1;
bool m_bodyUpClicked : 1; bool m_bodyClicked : 1;
bool m_bodyDownClicked : 1; bool m_leftClicked : 1;
bool m_bodyClicked : 1; bool m_rightClicked : 1;
bool m_leftClicked : 1; bool m_playRightTableSfx : 1;
bool m_rightClicked : 1;
bool m_playRightTableSfx : 1;
};
u32 _dummy = 0;
};
void InitializeFrameGlue(); void InitializeFrameGlue();
void ChangeMode(EMode mode, bool playSfx = true); void ChangeMode(EMode mode, bool playSfx = true);
void UpdateSideTable(CGuiTableGroup* table); void UpdateSideTable(CGuiTableGroup* table);

View File

@ -6,9 +6,8 @@
namespace urde::MP1 { namespace urde::MP1 {
CPauseScreenBlur::CPauseScreenBlur() : x4_mapLightQuarter(g_SimplePool->GetObj("TXTR_MapLightQuarter")) { CPauseScreenBlur::CPauseScreenBlur()
x50_25_gameDraw = true; : x4_mapLightQuarter(g_SimplePool->GetObj("TXTR_MapLightQuarter")), x50_24_blurring(false), x50_25_gameDraw(true) {}
}
void CPauseScreenBlur::OnNewInGameGuiState(EInGameGuiState state, CStateManager& stateMgr) { void CPauseScreenBlur::OnNewInGameGuiState(EInGameGuiState state, CStateManager& stateMgr) {
switch (state) { switch (state) {

View File

@ -20,16 +20,12 @@ class CPauseScreenBlur {
EState x14_nextState = EState::InGame; EState x14_nextState = EState::InGame;
float x18_blurAmt = 0.f; float x18_blurAmt = 0.f;
CCameraBlurPass x1c_camBlur; CCameraBlurPass x1c_camBlur;
bool x50_24_blurring : 1;
bool x50_25_gameDraw : 1;
CTexturedQuadFilter m_quarterFilter{EFilterType::Multiply, x4_mapLightQuarter}; CTexturedQuadFilter m_quarterFilter{EFilterType::Multiply, x4_mapLightQuarter};
CScanLinesFilterEven m_linesFilter{EFilterType::Multiply}; CScanLinesFilterEven m_linesFilter{EFilterType::Multiply};
union {
struct {
bool x50_24_blurring : 1;
bool x50_25_gameDraw : 1;
};
u32 _dummy = 0;
};
void OnBlurComplete(bool); void OnBlurComplete(bool);
void SetState(EState state); void SetState(EState state);

View File

@ -8,7 +8,13 @@ const char* kMovies[] = {"Video/wingame.thp", "Video/wingame_best.thp", "
bool CPlayMovie::IsResultsScreen(EWhichMovie which) { return int(which) <= 2; } bool CPlayMovie::IsResultsScreen(EWhichMovie which) { return int(which) <= 2; }
CPlayMovie::CPlayMovie(EWhichMovie which) : CPlayMovieBase("CPlayMovie", kMovies[int(which)]), x18_which(which) { CPlayMovie::CPlayMovie(EWhichMovie which)
: CPlayMovieBase("CPlayMovie", kMovies[int(which)])
, x18_which(which)
, x78_24_(false)
, x78_25_(false)
, x78_26_resultsScreen(false)
, x78_27_(false) {
(void)x18_which; (void)x18_which;
} }

View File

@ -20,15 +20,11 @@ public:
private: private:
EWhichMovie x18_which; EWhichMovie x18_which;
union { bool x78_24_ : 1;
struct { bool x78_25_ : 1;
bool x78_24_ : 1; bool x78_26_resultsScreen : 1;
bool x78_25_ : 1; bool x78_27_ : 1;
bool x78_26_resultsScreen : 1;
bool x78_27_ : 1;
};
u16 _dummy = 0;
};
static bool IsResultsScreen(EWhichMovie which); static bool IsResultsScreen(EWhichMovie which);
public: public:

View File

@ -98,7 +98,15 @@ CSamusDoll::CSamusDoll(const CDependencyGroup& suitDgrp, const CDependencyGroup&
bool hasGrappleBeam) bool hasGrappleBeam)
: x10_ballXf(zeus::CTransform::Translate(0.f, 0.f, 0.625f * g_tweakPlayer->GetPlayerBallHalfExtent())) : x10_ballXf(zeus::CTransform::Translate(0.f, 0.f, 0.625f * g_tweakPlayer->GetPlayerBallHalfExtent()))
, x44_suit(suit) , x44_suit(suit)
, x48_beam(beam) { , x48_beam(beam)
, x270_24_hasSpiderBall(hasSpiderBall)
, x270_25_hasGrappleBeam(hasGrappleBeam)
, x270_26_pulseSuit(false)
, x270_27_pulseBeam(false)
, x270_28_pulseGrapple(false)
, x270_29_pulseBoots(false)
, x270_30_pulseVisor(false)
, x270_31_loaded(false) {
x70_fixedRot.rotateZ(M_PIF); x70_fixedRot.rotateZ(M_PIF);
x90_userInterpRot = xb0_userRot = x70_fixedRot; x90_userInterpRot = xb0_userRot = x70_fixedRot;
x1d4_spiderBallGlass = g_SimplePool->GetObj(SpiderBallGlassModels[size_t(suit)].first); x1d4_spiderBallGlass = g_SimplePool->GetObj(SpiderBallGlassModels[size_t(suit)].first);
@ -115,8 +123,6 @@ CSamusDoll::CSamusDoll(const CDependencyGroup& suitDgrp, const CDependencyGroup&
x230_ballTransitionFlash = g_SimplePool->GetObj("MorphBallTransitionFlash"); x230_ballTransitionFlash = g_SimplePool->GetObj("MorphBallTransitionFlash");
x23c_lights.push_back(CLight::BuildDirectional(zeus::skForward, zeus::skWhite)); x23c_lights.push_back(CLight::BuildDirectional(zeus::skForward, zeus::skWhite));
x24c_actorLights = std::make_unique<CActorLights>(8, zeus::skZero3f, 4, 4, false, false, false, 0.1f); x24c_actorLights = std::make_unique<CActorLights>(8, zeus::skZero3f, 4, 4, false, false, false, 0.1f);
x270_24_hasSpiderBall = hasSpiderBall;
x270_25_hasGrappleBeam = hasGrappleBeam;
x22c_ballInnerGlowGen->SetGlobalScale(zeus::CVector3f(0.625f)); x22c_ballInnerGlowGen->SetGlobalScale(zeus::CVector3f(0.625f));
x0_depToks.reserve(suitDgrp.GetObjectTagVector().size() + ballDgrp.GetObjectTagVector().size()); x0_depToks.reserve(suitDgrp.GetObjectTagVector().size() + ballDgrp.GetObjectTagVector().size());
for (const SObjectTag& tag : suitDgrp.GetObjectTagVector()) { for (const SObjectTag& tag : suitDgrp.GetObjectTagVector()) {

View File

@ -71,19 +71,14 @@ class CSamusDoll {
CSfxHandle x264_offsetSfx; CSfxHandle x264_offsetSfx;
CSfxHandle x268_rotateSfx; CSfxHandle x268_rotateSfx;
CSfxHandle x26c_zoomSfx; CSfxHandle x26c_zoomSfx;
union { bool x270_24_hasSpiderBall : 1;
struct { bool x270_25_hasGrappleBeam : 1;
bool x270_24_hasSpiderBall : 1; bool x270_26_pulseSuit : 1;
bool x270_25_hasGrappleBeam : 1; bool x270_27_pulseBeam : 1;
bool x270_26_pulseSuit : 1; bool x270_28_pulseGrapple : 1;
bool x270_27_pulseBeam : 1; bool x270_29_pulseBoots : 1;
bool x270_28_pulseGrapple : 1; bool x270_30_pulseVisor : 1;
bool x270_29_pulseBoots : 1; bool x270_31_loaded : 1;
bool x270_30_pulseVisor : 1;
bool x270_31_loaded : 1;
};
u32 _dummy = 0;
};
static constexpr zeus::CVector3f skInitialOffset{0.0f, 0.0f, 0.8f}; static constexpr zeus::CVector3f skInitialOffset{0.0f, 0.0f, 0.8f};
static CModelData BuildSuitModelData1(CPlayerState::EPlayerSuit suit); static CModelData BuildSuitModelData1(CPlayerState::EPlayerSuit suit);

View File

@ -23,9 +23,11 @@ CSamusHud::CSamusHud(CStateManager& stateMgr)
: x8_targetingMgr(stateMgr) : x8_targetingMgr(stateMgr)
, x258_frmeHelmet(g_SimplePool->GetObj("FRME_Helmet")) , x258_frmeHelmet(g_SimplePool->GetObj("FRME_Helmet"))
, x268_frmeBaseHud(g_SimplePool->GetObj("FRME_BaseHud")) , x268_frmeBaseHud(g_SimplePool->GetObj("FRME_BaseHud"))
, x2e0_24_inFreeLook(false)
, x2e0_25_lookControlHeld(false)
, x2e0_26_latestFirstPerson(true)
, x2e0_27_energyLow(stateMgr.GetPlayer().IsEnergyLow(stateMgr))
, m_energyDrainFilter(g_tweakGui->GetEnergyDrainFilterAdditive() ? EFilterType::Add : EFilterType::Blend) { , m_energyDrainFilter(g_tweakGui->GetEnergyDrainFilterAdditive() ? EFilterType::Add : EFilterType::Blend) {
x2e0_26_latestFirstPerson = true;
x2e0_27_energyLow = stateMgr.GetPlayer().IsEnergyLow(stateMgr);
x33c_lights = std::make_unique<CActorLights>(8, zeus::skZero3f, 4, 1, true, 0, 0, 0.1f); x33c_lights = std::make_unique<CActorLights>(8, zeus::skZero3f, 4, 1, true, 0, 0, 0.1f);
x340_hudLights.resize(3, SCachedHudLight(zeus::skZero3f, zeus::skWhite, 0.f, 0.f, 0.f, 0.f)); x340_hudLights.resize(3, SCachedHudLight(zeus::skZero3f, zeus::skWhite, 0.f, 0.f, 0.f, 0.f));
x46c_.resize(3); x46c_.resize(3);

View File

@ -95,17 +95,10 @@ class CSamusHud {
u32 x2d4_totalEnergyTanks = 0; u32 x2d4_totalEnergyTanks = 0;
u32 x2d8_missileAmount = 0; u32 x2d8_missileAmount = 0;
u32 x2dc_missileCapacity = 0; u32 x2dc_missileCapacity = 0;
bool x2e0_24_inFreeLook : 1;
union { bool x2e0_25_lookControlHeld : 1;
struct { bool x2e0_26_latestFirstPerson : 1;
bool x2e0_24_inFreeLook : 1; bool x2e0_27_energyLow : 1;
bool x2e0_25_lookControlHeld : 1;
bool x2e0_26_latestFirstPerson : 1;
bool x2e0_27_energyLow : 1;
};
u16 _dummy = 0;
};
u32 x2e4_ = 0; u32 x2e4_ = 0;
u32 x2e8_ = 0; u32 x2e8_ = 0;
CPlayerGun::EMissleMode x2ec_missileMode = CPlayerGun::EMissleMode::Inactive; CPlayerGun::EMissleMode x2ec_missileMode = CPlayerGun::EMissleMode::Inactive;

View File

@ -6,12 +6,20 @@
namespace urde { namespace urde {
CSlideShow::CSlideShow() : CIOWin("SlideShow"), x5c_slideA(*this), x90_slideB(*this) { CSlideShow::CSlideShow()
x130_ = g_tweakSlideShow->GetX54(); : CIOWin("SlideShow")
x134_24_ = true; , x5c_slideA(*this)
x134_30_ = true; , x90_slideB(*this)
x135_24_ = true; , x130_(g_tweakSlideShow->GetX54())
, x134_24_(true)
, x134_25_(false)
, x134_26_(false)
, x134_27_(false)
, x134_28_disableInput(false)
, x134_29_(false)
, x134_30_(true)
, x134_31_(false)
, x135_24_(true) {
const SObjectTag* font = g_ResFactory->GetResourceIdByName(g_tweakSlideShow->GetFont()); const SObjectTag* font = g_ResFactory->GetResourceIdByName(g_tweakSlideShow->GetFont());
if (font) { if (font) {
CGuiTextProperties propsA(false, true, EJustification::Center, EVerticalJustification::Bottom); CGuiTextProperties propsA(false, true, EJustification::Center, EVerticalJustification::Bottom);

View File

@ -87,21 +87,15 @@ private:
float x12c_ = 32.f; float x12c_ = 32.f;
*/ */
float x130_; float x130_;
bool x134_24_ : 1;
union { bool x134_25_ : 1;
struct { bool x134_26_ : 1;
bool x134_24_ : 1; bool x134_27_ : 1;
bool x134_25_ : 1; bool x134_28_disableInput : 1;
bool x134_26_ : 1; bool x134_29_ : 1;
bool x134_27_ : 1; bool x134_30_ : 1;
bool x134_28_disableInput : 1; bool x134_31_ : 1;
bool x134_29_ : 1; bool x135_24_ : 1;
bool x134_30_ : 1;
bool x134_31_ : 1;
bool x135_24_ : 1;
};
u32 dummy = 0;
};
bool LoadTXTRDep(std::string_view name); bool LoadTXTRDep(std::string_view name);
static bool AreAllDepsLoaded(const std::vector<TLockedToken<CDependencyGroup>>& deps); static bool AreAllDepsLoaded(const std::vector<TLockedToken<CDependencyGroup>>& deps);

View File

@ -240,7 +240,17 @@ 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(resFactory, resStore)
, x160_24_finished(false)
, x160_25_mfGameBuilt(false)
, x160_26_screenFading(false)
, x160_27_(false)
, x160_28_manageCard(false)
, x160_29_(false)
, x160_30_(false)
, x160_31_cardBusy(false)
, x161_24_gameFrameDrawn(false) {
xe4_gameplayResult = EGameplayResult::Playing; xe4_gameplayResult = EGameplayResult::Playing;
g_Main = this; g_Main = this;
} }

View File

@ -227,20 +227,15 @@ private:
u32 x130_[10] = {1000000}; u32 x130_[10] = {1000000};
union { bool x160_24_finished : 1;
struct { bool x160_25_mfGameBuilt : 1;
bool x160_24_finished : 1; bool x160_26_screenFading : 1;
bool x160_25_mfGameBuilt : 1; bool x160_27_ : 1;
bool x160_26_screenFading : 1; bool x160_28_manageCard : 1;
bool x160_27_ : 1; bool x160_29_ : 1;
bool x160_28_manageCard : 1; bool x160_30_ : 1;
bool x160_29_ : 1; bool x160_31_cardBusy : 1;
bool x160_30_ : 1; bool x161_24_gameFrameDrawn : 1;
bool x160_31_cardBusy : 1;
bool x161_24_gameFrameDrawn : 1;
};
u16 _dummy = 0;
};
std::unique_ptr<CGameArchitectureSupport> x164_archSupport; std::unique_ptr<CGameArchitectureSupport> x164_archSupport;