OpenBarnyard
 
Loading...
Searching...
No Matches
AGameStateController.h
Go to the documentation of this file.
1#pragma once
2#include "AGameState.h"
5
6#include <Toshi/TTask.h>
7#include <Toshi/T2Vector.h>
9
10class AGameStateController : public Toshi::TTask
11 , public Toshi::TSingleton<AGameStateController>
12{
13public:
15
23
24public:
27
28 virtual TBOOL OnCreate() override;
29 virtual TBOOL OnUpdate( TFLOAT a_fDeltaTime ) override;
30 virtual void OnDestroy() override;
31
32 void ReplaceState( AGameState* a_pGameState );
33 void PushState( AGameState* a_pGameState );
34 void PopState( AGameState* a_pGameState );
35
37 void ResetStack();
38
39 void SetFlags( TUINT16 a_eFlags );
40
41 void SetOverlayParams( AGameState::OVERLAY a_eOverlay, const OverlayData& a_rcParams );
44
45 TBOOL ProcessInput( const Toshi::TInputInterface::InputEvent* a_pEvent );
46
47 AGameState* GetCurrentState() { return *m_oStates.Back(); }
48 TBOOL IsCurrentState( Toshi::TClass* a_pClass ) { return GetCurrentState()->IsA( a_pClass ); }
49
50private:
51 void InsertGameState( AGameState* a_pGameState );
52
53private:
54 inline static OverlayData ms_aOverlays[ AGameState::OVERLAY_NUMOF ];
55
56private:
57 // ...
58 Toshi::T2Vector<AGameState*, 10> m_oStates;
59 void* m_VectorData[ 5 ];
60 Toshi::T2DynamicVector<void*> m_UnkVector;
61 // ...
62 AGUI2Rectangle m_oOverlay;
63 TUINT16 m_eFlags;
64 TFLOAT m_fOverlayAlpha;
65 TFLOAT m_fSoundVolume;
66 TFLOAT m_fOverlayGoal;
67};
#define TDECLARE_CLASS(THIS_CLASS, PARENT_CLASS)
Definition TObject.h:38
uint16_t TUINT16
Definition Typedefs.h:15
uint8_t TUINT8
Definition Typedefs.h:17
float TFLOAT
Definition Typedefs.h:4
bool TBOOL
Definition Typedefs.h:6
Dynamic vector container for the Toshi engine.
TUINT OVERLAY
Definition AGameState.h:14
TBOOL IsCurrentState(Toshi::TClass *a_pClass)
OverlayData * GetOverlayParams(AGameState::OVERLAY a_eOverlay)
virtual TBOOL OnUpdate(TFLOAT a_fDeltaTime) override
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)
virtual TBOOL OnCreate() override
void SetOverlayParams(AGameState::OVERLAY a_eOverlay, const OverlayData &a_rcParams)