mirror of https://github.com/AxioDL/metaforce.git
Fix input being ignored, fix CPauseScreen crash when starting a transition
This commit is contained in:
parent
baa6acd198
commit
f1329268a6
|
@ -47,6 +47,7 @@
|
||||||
#include "Collision/CollisionUtil.hpp"
|
#include "Collision/CollisionUtil.hpp"
|
||||||
#include "World/CScriptWater.hpp"
|
#include "World/CScriptWater.hpp"
|
||||||
#include "World/CScriptDoor.hpp"
|
#include "World/CScriptDoor.hpp"
|
||||||
|
#include "Input/ControlMapper.hpp"
|
||||||
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
||||||
|
@ -204,6 +205,7 @@ CStateManager::CStateManager(const std::weak_ptr<CRelayTracker>& relayTracker,
|
||||||
x90c_loaderFuncs[int(EScriptObjectType::ShadowProjector)] = ScriptLoader::LoadShadowProjector;
|
x90c_loaderFuncs[int(EScriptObjectType::ShadowProjector)] = ScriptLoader::LoadShadowProjector;
|
||||||
x90c_loaderFuncs[int(EScriptObjectType::EnergyBall)] = ScriptLoader::LoadEnergyBall;
|
x90c_loaderFuncs[int(EScriptObjectType::EnergyBall)] = ScriptLoader::LoadEnergyBall;
|
||||||
|
|
||||||
|
ControlMapper::ResetCommandFilters();
|
||||||
x8f0_shadowTex = g_SimplePool->GetObj("DefaultShadow");
|
x8f0_shadowTex = g_SimplePool->GetObj("DefaultShadow");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -189,7 +189,7 @@ static FloatReturnFn skAnalogFuncs[] =
|
||||||
};
|
};
|
||||||
|
|
||||||
#define kCommandFilterCount 65
|
#define kCommandFilterCount 65
|
||||||
static bool skCommandFilterFlag[kCommandFilterCount];
|
static bool skCommandFilterFlag[kCommandFilterCount] = {true};
|
||||||
|
|
||||||
void ControlMapper::SetCommandFiltered(ECommands cmd, bool filtered)
|
void ControlMapper::SetCommandFiltered(ECommands cmd, bool filtered)
|
||||||
{
|
{
|
||||||
|
|
|
@ -116,6 +116,7 @@ void CPauseScreen::StartTransition(float time, const CStateManager& mgr, ESubScr
|
||||||
std::unique_ptr<CPauseScreenBase>& newScreenSlot = x7c_screens[x78_activeIdx];
|
std::unique_ptr<CPauseScreenBase>& newScreenSlot = x7c_screens[x78_activeIdx];
|
||||||
std::unique_ptr<CGuiFrame>& newScreenInst = x64_frameInsts[x78_activeIdx];
|
std::unique_ptr<CGuiFrame>& newScreenInst = x64_frameInsts[x78_activeIdx];
|
||||||
newScreenSlot = BuildPauseSubScreen(xc_nextSubscreen, mgr, *newScreenInst);
|
newScreenSlot = BuildPauseSubScreen(xc_nextSubscreen, mgr, *newScreenInst);
|
||||||
|
if (x7c_screens[1 - x78_activeIdx])
|
||||||
x7c_screens[1 - x78_activeIdx]->TransitioningAway();
|
x7c_screens[1 - x78_activeIdx]->TransitioningAway();
|
||||||
x91_initialTransition = false;
|
x91_initialTransition = false;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue