19 : m_UnkVector( m_VectorData,
TARRAYSIZE( m_VectorData ), 0 )
23 m_fOverlayGoal = 0.0f;
28 TASSERT( m_oStates.Size() == 0 );
36 AGUI2::GetSingleton()->GetDimensions( fWidth, fHeight );
38 m_oOverlay.SetDimensions( fWidth, fHeight );
40 m_oOverlay.SetInFront();
48 auto eFlags = m_eFlags;
52 m_eFlags = eFlags & 0xffef;
56 TTODO(
"FUN_00424000(false)" );
61 TTODO(
"FUN_00423de0((TCHAR *)0x0,true,(TPooledString8 *)0x0)" );
66 if ( m_oStates.Size() > 1 )
68 TTODO(
"This section" );
72 ( *m_oStates.Back() )->OnUpdate( a_fDeltaTime );
82 TASSERT( m_oStates.Size() == 1 );
84 auto pGameState = *m_oStates.Back();
87 pGameState->Destroy();
90void AGameStateController::InsertGameState(
AGameState* a_pGameState )
96 m_oStates.PushBack( a_pGameState );
103 if ( m_oStates.Size() > 1 )
105 auto pCurrentGameState = *m_oStates.Back();
108 pCurrentGameState->Destroy();
111 InsertGameState( a_pGameState );
116 if ( m_oStates.Size() > 1 )
118 ( *m_oStates.Back() )->Deactivate();
119 ( *m_oStates.Back() )->Suspend();
122 InsertGameState( a_pGameState );
127 auto pCurrentGameState = *m_oStates.Back();
129 TASSERT( a_pGameState == pCurrentGameState );
132 pCurrentGameState->Destroy();
134 if ( m_oStates.Size() == 1 && ARootTask::GetSingleton()->IsGameSystemCreated() )
140 if ( m_oStates.Size() > 1 )
142 pCurrentGameState = *m_oStates.Back();
143 pCurrentGameState->OnResume( a_pGameState );
144 pCurrentGameState->Activate();
150 TASSERT( m_oStates.Size() > 1 );
152 if ( m_oStates.Size() > 1 )
170 m_oOverlay.RemoveSelf();
190 while ( 1 < m_oStates.Size() )
192 auto pGameState = *m_oStates.Back();
195 pGameState->Destroy( bIsFirst );
202 m_eFlags |= a_eFlags;
203 m_fSoundVolume = 1.0f;
205 if ( !( m_eFlags & 256 ) )
207 m_fOverlayGoal = 0.0f;
208 m_fOverlayAlpha = ( a_eFlags == 4 ) ? 1.0f : 0.0f;
212 m_fOverlayAlpha = m_fOverlayGoal;
230 ms_aOverlays[ a_eOverlay ] = a_rcParams;
236 return &ms_aOverlays[ a_eOverlay ];
246 if ( m_oStates.Size() <= 1 )
251 if ( ACheatActivator::IsSingletonCreated() )
256 auto pGameState = *m_oStates.Back();
258 if ( pGameState->SendInputCommands( a_pEvent ) )
264 return pGameState->ProcessInput( a_pEvent );
#define HASANYFLAG(STATE, FLAG)
#define TIMPLEMENT_D(DESC)
#define TOSHI_NAMESPACE_USING
#define TARRAYSIZE(ARRAY)
#define TCOLOR_ALPHA(R, G, B, A)
#define TDEFINE_CLASS(...)
@ AGUI2ATTACHMENT_BOTTOMCENTER
static void Throw(const T &a_rData)
virtual void OnInsertion()
OverlayData * GetOverlayParams(AGameState::OVERLAY a_eOverlay)
virtual TBOOL OnUpdate(TFLOAT a_fDeltaTime) override
void PopCurrentGameState()
TBOOL ProcessInput(const Toshi::TInputInterface::InputEvent *a_pEvent)
virtual void OnDestroy() override
void PopState(AGameState *a_pGameState)
void ReplaceState(AGameState *a_pGameState)
void PushState(AGameState *a_pGameState)
void SetFlags(TUINT16 a_eFlags)
void UpdateScreenOverlay()
virtual TBOOL OnCreate() override
void SetOverlayParams(AGameState::OVERLAY a_eOverlay, const OverlayData &a_rcParams)
@ Type_GameStateBeingAdded
static AGUI2Element * GetRootElement()
void AddChildTail(AGUI2Element &a_rElement)