OpenBarnyard
 
Loading...
Searching...
No Matches
AGameState Class Reference

#include <AGameState.h>

Inheritance diagram for AGameState:
ABYardMenuState AMessagePopupState AMovieState ASlideshowState SaveLoadSKU AAudioOptionsState AFrontEndMainMenuState2 AOptionsState

Classes

struct  HUDParams
 

Public Types

enum  OVERLAY_ : OVERLAY { OVERLAY_1 , OVERLAY_2 , OVERLAY_3 , OVERLAY_NUMOF }
 
using OVERLAY = TUINT
 
using ThisClass = AGameState
 
using BaseClass = Toshi::TObject
 
template<class Result, class... Args>
using t_ExecuteForChildCb = Result ( AGameState::* )( Args... args )
 

Public Member Functions

virtual Toshi::TClass * GetClass () override
 
 AGameState ()
 
 ~AGameState ()
 
virtual TBOOL ProcessInput (const Toshi::TInputInterface::InputEvent *a_pInputEvent)
 
virtual TBOOL ProcessCommand (AInputCommand a_eInputCommand, const Toshi::TInputInterface::InputEvent *a_pInputEvent, TBOOL &a_rStopEvents)
 
virtual TBOOL Unknown1 (void *a_pUnk1, void *a_pUnk2)
 
virtual void Unknown2 (void *a_pUnk1)
 
virtual void Unknown3 (void *a_pUnk1)
 
virtual void Unknown4 (void *a_pUnk1)
 
virtual void Unknown5 ()
 
virtual TBOOL Unknown6 ()
 
virtual ASoundId GetSound ()
 
virtual TBOOL Unknown7 ()
 
virtual void Unknown8 ()
 
virtual void OnStarted ()
 
virtual void Unknown10 ()
 
virtual void Unknown11 (void *a_pUnk1, void *a_pUnk2)
 
virtual void Unknown12 (void *a_pUnk1, void *a_pUnk2)
 
virtual TFLOAT GetFOV ()
 
virtual TBOOL OnUpdate (TFLOAT a_fDeltaTime)
 
virtual void OnInsertion ()
 
virtual void OnRemoval ()
 
virtual void OnSuspend ()
 
virtual void OnResume (AGameState *a_pPreviousState)
 
virtual void OnActivate ()
 
virtual void OnDeactivate ()
 
TBOOL SendInputCommands (const Toshi::TInputInterface::InputEvent *a_pEvent)
 
void SetInputMap (const Toshi::TPString8 &a_MapName)
 
void Activate ()
 
void Deactivate ()
 
void Suspend ()
 
void Remove ()
 
void Destroy ()
 
void Destroy (TBOOL a_bDeactivate)
 
void SetOverlay (OVERLAY a_eOverlay)
 
OVERLAY GetOverlay () const
 
template<class RetT, class... Args>
void ExecuteForAllChildStates (t_ExecuteForChildCb< RetT, Args... > a_fnCallback, TUINT32 a_uiOffset, Args... args)
 
template<class... Args>
TBOOL ExecuteForOneChildState (t_ExecuteForChildCb< TBOOL, Args... > a_fnCallback, TUINT32 a_uiOffset, Args... args)
 

Static Public Member Functions

static Toshi::TObject * CreateTObject ()
 
static Toshi::TObject * CreateTObjectInPlace (void *a_pPtr)
 
static void InitialiseClass ()
 
static void DeinitialiseClass ()
 
static __forceinline Toshi::TClass * GetClassStatic ()
 

Static Public Attributes

static constexpr Toshi::TClass * PARENTCLASS = & Toshi::TObject::ms_oClass
 
static Toshi::TClass ms_oClass = Toshi::TClass( "AGameState", AGameState::PARENTCLASS, AGameState::CreateTObject, AGameState::CreateTObjectInPlace, AGameState::InitialiseClass, AGameState::DeinitialiseClass, 0, 1, sizeof( AGameState ), alignof( AGameState ) )
 

Protected Attributes

HUDParams m_HUDParams
 
OVERLAY m_eOverlayColorIndex
 
Toshi::T2DList< AGameStatem_ChildStates
 
AInputMapm_pInputMap
 
AGameStatem_pOwnerState
 
TBOOL m_bWasInserted
 
TBOOL m_bIsActivated
 
AGUI2Element m_GUIElement
 
TFLOAT m_fFOV
 

Friends

class AGameStateController
 

Detailed Description

Definition at line 10 of file AGameState.h.

Member Typedef Documentation

◆ BaseClass

using AGameState::BaseClass = Toshi::TObject

Definition at line 26 of file AGameState.h.

◆ OVERLAY

Definition at line 14 of file AGameState.h.

◆ t_ExecuteForChildCb

template<class Result, class... Args>
using AGameState::t_ExecuteForChildCb = Result ( AGameState::* )( Args... args )

Definition at line 29 of file AGameState.h.

◆ ThisClass

Definition at line 26 of file AGameState.h.

Member Enumeration Documentation

◆ OVERLAY_

Enumerator
OVERLAY_1 
OVERLAY_2 
OVERLAY_3 
OVERLAY_NUMOF 

Definition at line 15 of file AGameState.h.

16 {
21 };

Constructor & Destructor Documentation

◆ AGameState()

AGameState::AGameState ( )

Definition at line 22 of file AGameState.cpp.

23{
29 m_fFOV = TMath::DegToRad( 60.0f );
30
31 AGUI2Element* pRootElement = AGUI2::GetRootElement();
32 m_GUIElement.SetDimensions( pRootElement->GetWidth(), pRootElement->GetHeight() );
33
34 pRootElement->AddChildTail( m_GUIElement );
35 m_GUIElement.Hide();
36}
#define TNULL
Definition Typedefs.h:23
#define TFALSE
Definition Typedefs.h:24
TFORCEINLINE constexpr TFLOAT DegToRad(TFLOAT fDeg)
Definition TMathInline.h:64
TFLOAT m_fFOV
Definition AGameState.h:143
TBOOL m_bIsActivated
Definition AGameState.h:141
AInputMap * m_pInputMap
Definition AGameState.h:138
TBOOL m_bWasInserted
Definition AGameState.h:140
AGUI2Element m_GUIElement
Definition AGameState.h:142
AGameState * m_pOwnerState
Definition AGameState.h:139
OVERLAY m_eOverlayColorIndex
Definition AGameState.h:136
static AGUI2Element * GetRootElement()
Definition AGUI2.h:31
void AddChildTail(AGUI2Element &a_rElement)
virtual TFLOAT GetHeight()
virtual TFLOAT GetWidth()

◆ ~AGameState()

AGameState::~AGameState ( )

Definition at line 38 of file AGameState.cpp.

39{
40}

Member Function Documentation

◆ Activate()

void AGameState::Activate ( )

Definition at line 239 of file AGameState.cpp.

240{
241 OnActivate();
242
244 AGameStateControllerEvent( this, AGameStateControllerEvent::Type_GameStateActivated )
245 );
246}
static void Throw(const T &a_rData)
virtual void OnActivate()

◆ CreateTObject()

Toshi::TObject * AGameState::CreateTObject ( )
static

Definition at line 20 of file AGameState.cpp.

◆ CreateTObjectInPlace()

Toshi::TObject * AGameState::CreateTObjectInPlace ( void * a_pPtr)
static

Definition at line 20 of file AGameState.cpp.

◆ Deactivate()

void AGameState::Deactivate ( )

Definition at line 248 of file AGameState.cpp.

249{
250 OnDeactivate();
251
253 AGameStateControllerEvent(
254 this,
256 )
257 );
258}
virtual void OnDeactivate()

◆ DeinitialiseClass()

void AGameState::DeinitialiseClass ( )
static

Definition at line 20 of file AGameState.cpp.

◆ Destroy() [1/2]

void AGameState::Destroy ( )

Definition at line 157 of file AGameState.cpp.

158{
160
161 Deactivate();
162
163 OnRemoval();
164 delete this;
165}
static TFORCEINLINE TRenderInterface * GetSingleton()
Definition TSingleton.h:49
virtual void OnRemoval()
void Deactivate()

◆ Destroy() [2/2]

void AGameState::Destroy ( TBOOL a_bDeactivate)

Definition at line 167 of file AGameState.cpp.

168{
170
171 if ( a_bDeactivate )
172 Deactivate();
173
174 OnRemoval();
175 delete this;
176}

◆ ExecuteForAllChildStates()

template<class RetT, class... Args>
void AGameState::ExecuteForAllChildStates ( t_ExecuteForChildCb< RetT, Args... > a_fnCallback,
TUINT32 a_uiOffset,
Args... args )
inline

Definition at line 100 of file AGameState.h.

101 {
103 {
104 auto pGameState = TREINTERPRETCAST(
105 AGameState*,
106 TREINTERPRETCAST( uintptr_t, TSTATICCAST( AGameState, it ) ) + a_uiOffset
107 );
108
109 ( pGameState->*a_fnCallback )( args... );
110 }
111 }
#define TSTATICCAST(POINTERTYPE, VALUE)
Definition Defines.h:69
#define TREINTERPRETCAST(TYPE, VALUE)
Definition Defines.h:68
#define T2_FOREACH(vecName, iteratorName)
Definition T2Iterator.h:4
Toshi::T2DList< AGameState > m_ChildStates
Definition AGameState.h:137

◆ ExecuteForOneChildState()

template<class... Args>
TBOOL AGameState::ExecuteForOneChildState ( t_ExecuteForChildCb< TBOOL, Args... > a_fnCallback,
TUINT32 a_uiOffset,
Args... args )
inline

Definition at line 114 of file AGameState.h.

115 {
117 {
118 auto pGameState = TREINTERPRETCAST(
119 AGameState*,
120 TREINTERPRETCAST( uintptr_t, TSTATICCAST( AGameState, it ) ) + a_uiOffset
121 );
122
123 TBOOL bResult = ( pGameState->*a_fnCallback )( args... );
124
125 if ( bResult )
126 {
127 return TTRUE;
128 }
129 }
130
131 return TFALSE;
132 }
#define TTRUE
Definition Typedefs.h:25
bool TBOOL
Definition Typedefs.h:6

◆ GetClass()

Toshi::TClass * AGameState::GetClass ( )
overridevirtual

◆ GetClassStatic()

static __forceinline Toshi::TClass * AGameState::GetClassStatic ( )
inlinestatic

Definition at line 26 of file AGameState.h.

◆ GetFOV()

TFLOAT AGameState::GetFOV ( )
virtual

Definition at line 113 of file AGameState.cpp.

114{
116}
static TFLOAT sm_fCurrentFOV
Definition ACamera.h:9

◆ GetOverlay()

OVERLAY AGameState::GetOverlay ( ) const
inline

Definition at line 97 of file AGameState.h.

97{ return m_eOverlayColorIndex; }

◆ GetSound()

ASoundId AGameState::GetSound ( )
virtual

Definition at line 83 of file AGameState.cpp.

84{
85 return ASOUNDID_INVALID;
86}
#define ASOUNDID_INVALID
Definition ASoundLegacy.h:3

◆ InitialiseClass()

void AGameState::InitialiseClass ( )
static

Definition at line 20 of file AGameState.cpp.

◆ OnActivate()

void AGameState::OnActivate ( )
virtual

Reimplemented in ABYardMenuState, AFrontEndMainMenuState2, AOptionsState, and ASlideshowState.

Definition at line 145 of file AGameState.cpp.

146{
149}
void ExecuteForAllChildStates(t_ExecuteForChildCb< RetT, Args... > a_fnCallback, TUINT32 a_uiOffset, Args... args)
Definition AGameState.h:100

◆ OnDeactivate()

void AGameState::OnDeactivate ( )
virtual

◆ OnInsertion()

void AGameState::OnInsertion ( )
virtual

◆ OnRemoval()

void AGameState::OnRemoval ( )
virtual

◆ OnResume()

void AGameState::OnResume ( AGameState * a_pPreviousState)
virtual

Definition at line 140 of file AGameState.cpp.

141{
142 ExecuteForAllChildStates( &AGameState::OnResume, 0, a_pPreviousState );
143}
virtual void OnResume(AGameState *a_pPreviousState)

◆ OnStarted()

void AGameState::OnStarted ( )
virtual

Definition at line 97 of file AGameState.cpp.

98{
99}

◆ OnSuspend()

void AGameState::OnSuspend ( )
virtual

Definition at line 135 of file AGameState.cpp.

136{
138}
virtual void OnSuspend()

◆ OnUpdate()

TBOOL AGameState::OnUpdate ( TFLOAT a_fDeltaTime)
virtual

Reimplemented in ABYardMenuState, AFrontEndMainMenuState2, AMovieState, AOptionsState, and ASlideshowState.

Definition at line 118 of file AGameState.cpp.

119{
121 return TTRUE;
122}
virtual TBOOL OnUpdate(TFLOAT a_fDeltaTime)

◆ ProcessCommand()

TBOOL AGameState::ProcessCommand ( AInputCommand a_eInputCommand,
const Toshi::TInputInterface::InputEvent * a_pInputEvent,
TBOOL & a_rStopEvents )
virtual

Reimplemented in AAudioOptionsState, ABYardMenuState, AFrontEndMainMenuState2, AMovieState, AOptionsState, and ASlideshowState.

Definition at line 52 of file AGameState.cpp.

53{
54 return TFALSE;
55}

◆ ProcessInput()

TBOOL AGameState::ProcessInput ( const Toshi::TInputInterface::InputEvent * a_pInputEvent)
virtual

Reimplemented in AAudioOptionsState, ABYardMenuState, AFrontEndMainMenuState2, AMovieState, and ASlideshowState.

Definition at line 42 of file AGameState.cpp.

43{
44 if ( ExecuteForOneChildState( &AGameState::ProcessInput, 0, a_pInputEvent ) )
45 {
46 return TTRUE;
47 }
48
49 return TFALSE == ARootTask::GetSingleton()->IsGameSystemCreated();
50}
virtual TBOOL ProcessInput(const Toshi::TInputInterface::InputEvent *a_pInputEvent)
TBOOL ExecuteForOneChildState(t_ExecuteForChildCb< TBOOL, Args... > a_fnCallback, TUINT32 a_uiOffset, Args... args)
Definition AGameState.h:114

◆ Remove()

void AGameState::Remove ( )

Definition at line 265 of file AGameState.cpp.

266{
267 if ( m_pOwnerState == TNULL )
268 {
269 AGameStateController::GetSingleton()->PopCurrentGameState();
270 }
271 else
272 {
273 Node::Remove();
274
275 if ( m_bIsActivated )
276 {
277 OnDeactivate();
278 }
279
280 OnRemoval();
281 delete this;
282 }
283}

◆ SendInputCommands()

TBOOL AGameState::SendInputCommands ( const Toshi::TInputInterface::InputEvent * a_pEvent)

Definition at line 178 of file AGameState.cpp.

179{
180 auto pInputHandler = AInputHandler::GetSingleton();
181 auto pInputManager = AInputMapManager::GetSingleton();
182
183 pInputManager->PushInputMap( m_pInputMap );
184
185 AInputCommandArray commands;
186 pInputManager->GetEventCommands( a_pEvent, commands );
187
188 if ( a_pEvent->GetDoodad() == TInputDeviceKeyboard::KEY_F4 && pInputHandler->GetKeyboardDevice()->IsAltDown() )
189 {
190 // Quit app if Alt + F4 was pressed
191 TTODO( "FUN_00425980" );
192 g_oTheApp.Destroy();
193 }
194 else
195 {
196 TBOOL bProcessedCommand = TFALSE;
197
198 for ( TINT i = 0; i < commands.iNumCommands; i++ )
199 {
200 auto eCommand = commands.aCommands[ i ];
201 TBOOL bStopEvents = TTRUE;
202
203 if ( ProcessCommand( eCommand, a_pEvent, bStopEvents ) )
204 {
205 bProcessedCommand = TTRUE;
206
207 if ( bStopEvents )
208 {
209 pInputManager->PopInputMap();
210
211 for ( TINT k = 0; k < commands.iNumCommands; k++ )
212 {
213 commands.aCommands[ k ] = AInputCommand_Empty;
214 }
215
216 return TTRUE;
217 }
218 }
219 }
220
221 pInputManager->PopInputMap();
222 commands.Clear();
223
224 if ( !bProcessedCommand )
225 {
227 }
228 }
229
230 return TTRUE;
231}
#define TTODO(DESC)
Definition Defines.h:134
int TINT
Definition Typedefs.h:7
AApplication g_oTheApp
Definition AppBoot.cpp:31
@ AInputCommand_Empty
Definition AInputMap.h:14
TBOOL SendInputCommands(const Toshi::TInputInterface::InputEvent *a_pEvent)
virtual TBOOL ProcessCommand(AInputCommand a_eInputCommand, const Toshi::TInputInterface::InputEvent *a_pInputEvent, TBOOL &a_rStopEvents)
AInputCommand aCommands[MAX_NUM_COMMANDS]

◆ SetInputMap()

void AGameState::SetInputMap ( const Toshi::TPString8 & a_MapName)

Definition at line 233 of file AGameState.cpp.

234{
235 m_pInputMap = AInputMapManager::GetSingleton()->FindMap( a_MapName );
237}
#define TASSERT(X,...)
Definition Defines.h:138

◆ SetOverlay()

void AGameState::SetOverlay ( OVERLAY a_eOverlay)
inline

Definition at line 96 of file AGameState.h.

96{ m_eOverlayColorIndex = a_eOverlay; }

◆ Suspend()

void AGameState::Suspend ( )

Definition at line 260 of file AGameState.cpp.

261{
262 OnSuspend();
263}

◆ Unknown1()

TBOOL AGameState::Unknown1 ( void * a_pUnk1,
void * a_pUnk2 )
virtual

Definition at line 57 of file AGameState.cpp.

58{
59 return ExecuteForOneChildState( &AGameState::Unknown1, 0, a_pUnk1, a_pUnk2 );
60}
virtual TBOOL Unknown1(void *a_pUnk1, void *a_pUnk2)

◆ Unknown10()

void AGameState::Unknown10 ( )
virtual

Definition at line 101 of file AGameState.cpp.

102{
103}

◆ Unknown11()

void AGameState::Unknown11 ( void * a_pUnk1,
void * a_pUnk2 )
virtual

Definition at line 105 of file AGameState.cpp.

106{
107}

◆ Unknown12()

void AGameState::Unknown12 ( void * a_pUnk1,
void * a_pUnk2 )
virtual

Definition at line 109 of file AGameState.cpp.

110{
111}

◆ Unknown2()

void AGameState::Unknown2 ( void * a_pUnk1)
virtual

Definition at line 62 of file AGameState.cpp.

63{
64}

◆ Unknown3()

void AGameState::Unknown3 ( void * a_pUnk1)
virtual

Definition at line 66 of file AGameState.cpp.

67{
68}

◆ Unknown4()

void AGameState::Unknown4 ( void * a_pUnk1)
virtual

Definition at line 70 of file AGameState.cpp.

71{
72}

◆ Unknown5()

void AGameState::Unknown5 ( )
virtual

Definition at line 74 of file AGameState.cpp.

75{
76}

◆ Unknown6()

TBOOL AGameState::Unknown6 ( )
virtual

Definition at line 78 of file AGameState.cpp.

79{
80 return TTRUE;
81}

◆ Unknown7()

TBOOL AGameState::Unknown7 ( )
virtual

Definition at line 88 of file AGameState.cpp.

89{
90 return TTRUE;
91}

◆ Unknown8()

void AGameState::Unknown8 ( )
virtual

Definition at line 93 of file AGameState.cpp.

94{
95}

Friends And Related Symbol Documentation

◆ AGameStateController

friend class AGameStateController
friend

Definition at line 23 of file AGameState.h.

Member Data Documentation

◆ m_bIsActivated

TBOOL AGameState::m_bIsActivated
protected

Definition at line 141 of file AGameState.h.

◆ m_bWasInserted

TBOOL AGameState::m_bWasInserted
protected

Definition at line 140 of file AGameState.h.

◆ m_ChildStates

Toshi::T2DList<AGameState> AGameState::m_ChildStates
protected

Definition at line 137 of file AGameState.h.

◆ m_eOverlayColorIndex

OVERLAY AGameState::m_eOverlayColorIndex
protected

Definition at line 136 of file AGameState.h.

◆ m_fFOV

TFLOAT AGameState::m_fFOV
protected

Definition at line 143 of file AGameState.h.

◆ m_GUIElement

AGUI2Element AGameState::m_GUIElement
protected

Definition at line 142 of file AGameState.h.

◆ m_HUDParams

HUDParams AGameState::m_HUDParams
protected

Definition at line 135 of file AGameState.h.

◆ m_pInputMap

AInputMap* AGameState::m_pInputMap
protected

Definition at line 138 of file AGameState.h.

◆ m_pOwnerState

AGameState* AGameState::m_pOwnerState
protected

Definition at line 139 of file AGameState.h.

◆ ms_oClass

Toshi::TClass AGameState::ms_oClass = Toshi::TClass( "AGameState", AGameState::PARENTCLASS, AGameState::CreateTObject, AGameState::CreateTObjectInPlace, AGameState::InitialiseClass, AGameState::DeinitialiseClass, 0, 1, sizeof( AGameState ), alignof( AGameState ) )
static

Definition at line 26 of file AGameState.h.

◆ PARENTCLASS

Toshi::TClass* AGameState::PARENTCLASS = & Toshi::TObject::ms_oClass
staticconstexpr

Definition at line 26 of file AGameState.h.


The documentation for this class was generated from the following files: