OpenBarnyard
 
Loading...
Searching...
No Matches
AGameState.cpp
Go to the documentation of this file.
1#include "pch.h"
2#include "AGameState.h"
4#include "Tasks/ARootTask.h"
5#include "Cameras/ACamera.h"
6#include "GUI/AGUI2.h"
7#include "AppBoot.h"
9
11
12//-----------------------------------------------------------------------------
13// Enables memory debugging.
14// Note: Should be the last include!
15//-----------------------------------------------------------------------------
16#include <Core/TMemoryDebugOn.h>
17
19
21
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}
37
41
43{
44 if ( ExecuteForOneChildState( &AGameState::ProcessInput, 0, a_pInputEvent ) )
45 {
46 return TTRUE;
47 }
48
49 return TFALSE == ARootTask::GetSingleton()->IsGameSystemCreated();
50}
51
52TBOOL AGameState::ProcessCommand( AInputCommand a_eInputCommand, const TInputInterface::InputEvent* a_pInputEvent, TBOOL& a_rStopEvents )
53{
54 return TFALSE;
55}
56
57TBOOL AGameState::Unknown1( void* a_pUnk1, void* a_pUnk2 )
58{
59 return ExecuteForOneChildState( &AGameState::Unknown1, 0, a_pUnk1, a_pUnk2 );
60}
61
62void AGameState::Unknown2( void* a_pUnk1 )
63{
64}
65
66void AGameState::Unknown3( void* a_pUnk1 )
67{
68}
69
70void AGameState::Unknown4( void* a_pUnk1 )
71{
72}
73
75{
76}
77
79{
80 return TTRUE;
81}
82
87
89{
90 return TTRUE;
91}
92
94{
95}
96
98{
99}
100
102{
103}
104
105void AGameState::Unknown11( void* a_pUnk1, void* a_pUnk2 )
106{
107}
108
109void AGameState::Unknown12( void* a_pUnk1, void* a_pUnk2 )
110{
111}
112
117
119{
121 return TTRUE;
122}
123
129
134
139
140void AGameState::OnResume( AGameState* a_pPreviousState )
141{
142 ExecuteForAllChildStates( &AGameState::OnResume, 0, a_pPreviousState );
143}
144
150
156
158{
160
161 Deactivate();
162
163 OnRemoval();
164 delete this;
165}
166
167void AGameState::Destroy( TBOOL a_bDeactivate )
168{
170
171 if ( a_bDeactivate )
172 Deactivate();
173
174 OnRemoval();
175 delete this;
176}
177
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}
232
233void AGameState::SetInputMap( const TPString8& a_MapName )
234{
235 m_pInputMap = AInputMapManager::GetSingleton()->FindMap( a_MapName );
237}
238
247
259
261{
262 OnSuspend();
263}
264
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}
Keyboard input device for the Toshi engine.
#define TASSERT(X,...)
Definition Defines.h:138
#define TOSHI_NAMESPACE_USING
Definition Defines.h:46
#define TTODO(DESC)
Definition Defines.h:134
#define TDEFINE_CLASS(...)
Definition TObject.h:120
float TFLOAT
Definition Typedefs.h:4
#define TNULL
Definition Typedefs.h:23
int TINT
Definition Typedefs.h:7
#define TFALSE
Definition Typedefs.h:24
#define TTRUE
Definition Typedefs.h:25
bool TBOOL
Definition Typedefs.h:6
AApplication g_oTheApp
Definition AppBoot.cpp:31
AInputCommand
Definition AInputMap.h:12
@ AInputCommand_Empty
Definition AInputMap.h:14
TINT32 ASoundId
Definition ASoundLegacy.h:5
#define ASOUNDID_INVALID
Definition ASoundLegacy.h:3
TFORCEINLINE constexpr TFLOAT DegToRad(TFLOAT fDeg)
Definition TMathInline.h:64
static void Throw(const T &a_rData)
static TFORCEINLINE TRenderInterface * GetSingleton()
Definition TSingleton.h:49
static TFLOAT sm_fCurrentFOV
Definition ACamera.h:9
virtual void Unknown10()
virtual void Unknown4(void *a_pUnk1)
virtual void OnActivate()
virtual TFLOAT GetFOV()
virtual TBOOL OnUpdate(TFLOAT a_fDeltaTime)
virtual ASoundId GetSound()
virtual void OnRemoval()
void ExecuteForAllChildStates(t_ExecuteForChildCb< RetT, Args... > a_fnCallback, TUINT32 a_uiOffset, Args... args)
Definition AGameState.h:100
virtual void Unknown2(void *a_pUnk1)
TFLOAT m_fFOV
Definition AGameState.h:143
virtual void OnSuspend()
virtual TBOOL ProcessInput(const Toshi::TInputInterface::InputEvent *a_pInputEvent)
void Activate()
TBOOL m_bIsActivated
Definition AGameState.h:141
virtual void OnStarted()
virtual TBOOL Unknown7()
virtual void Unknown3(void *a_pUnk1)
virtual void OnDeactivate()
AInputMap * m_pInputMap
Definition AGameState.h:138
TBOOL ExecuteForOneChildState(t_ExecuteForChildCb< TBOOL, Args... > a_fnCallback, TUINT32 a_uiOffset, Args... args)
Definition AGameState.h:114
virtual void Unknown12(void *a_pUnk1, void *a_pUnk2)
virtual void Unknown8()
void Suspend()
void Destroy()
virtual void Unknown5()
TBOOL m_bWasInserted
Definition AGameState.h:140
AGUI2Element m_GUIElement
Definition AGameState.h:142
AGameState * m_pOwnerState
Definition AGameState.h:139
void SetInputMap(const Toshi::TPString8 &a_MapName)
virtual void OnInsertion()
OVERLAY m_eOverlayColorIndex
Definition AGameState.h:136
virtual void Unknown11(void *a_pUnk1, void *a_pUnk2)
TBOOL SendInputCommands(const Toshi::TInputInterface::InputEvent *a_pEvent)
virtual TBOOL Unknown1(void *a_pUnk1, void *a_pUnk2)
virtual TBOOL Unknown6()
void Remove()
virtual TBOOL ProcessCommand(AInputCommand a_eInputCommand, const Toshi::TInputInterface::InputEvent *a_pInputEvent, TBOOL &a_rStopEvents)
virtual void OnResume(AGameState *a_pPreviousState)
void Deactivate()
static AGUI2Element * GetRootElement()
Definition AGUI2.h:31
void AddChildTail(AGUI2Element &a_rElement)
virtual TFLOAT GetHeight()
virtual TFLOAT GetWidth()
AInputCommand aCommands[MAX_NUM_COMMANDS]