Files
pico-launcher/arm9/source/romBrowser/RomBrowserStateMachine.h
2025-11-25 17:41:31 +01:00

27 lines
850 B
C++

#pragma once
#include "RomBrowserState.h"
#include "RomBrowserStateTrigger.h"
class RomBrowserStateMachine
{
public:
void Fire(RomBrowserStateTrigger trigger);
void Update();
constexpr RomBrowserState GetPreviousState() const { return _prevState; }
constexpr RomBrowserStateTrigger GetLastTrigger() const { return _lastTrigger; }
constexpr RomBrowserState GetCurrentState() const { return _curState; }
constexpr bool HasStateChanged() const { return _stateChanged; }
private:
RomBrowserStateTrigger _lastTrigger = RomBrowserStateTrigger::None;
RomBrowserState _prevState = RomBrowserState::Start;
RomBrowserState _curState = RomBrowserState::Start;
RomBrowserStateTrigger _newTrigger = RomBrowserStateTrigger::None;
bool _stateChanged = false;
bool FireDirect(RomBrowserStateTrigger trigger);
};