OpenBarnyard
 
Loading...
Searching...
No Matches
AOptionsState.cpp
Go to the documentation of this file.
1#include "pch.h"
2#include "AOptionsState.h"
4#include "SoundBank/ui.h"
9
10//-----------------------------------------------------------------------------
11// Enables memory debugging.
12// Note: Should be the last include!
13//-----------------------------------------------------------------------------
14#include <Core/TMemoryDebugOn.h>
15
17
19
23
27
28TBOOL AOptionsState::ProcessCommand( AInputCommand a_eInputCommand, const Toshi::TInputInterface::InputEvent* a_pInputEvent, TBOOL& a_rStopEvents )
29{
30 if ( m_eMenuState == MENUSTATE_MENU_VISIBLE && a_eInputCommand == AInputCommand_Cancel )
31 ASoundManager::GetSingleton()->PlayCue( soundbank::UI_MENUBACK );
32
33 return BaseClass::ProcessCommand( a_eInputCommand, a_pInputEvent, a_rStopEvents );
34}
35
37{
38 return BaseClass::OnUpdate( a_fDeltaTime );
39}
40
41TPSTRING8_DECLARE( DialogInputMap );
42
44{
45 SetInputMap( TPS8( DialogInputMap ) );
47
48 for ( TINT i = 0; i < OPTIONSBUTTON_NUMOF; i++ )
49 {
50 const TWCHAR* wszText = ALocaleManager::GetSingleton()->GetString( OPTIONSBUTTON_TEXTS[ i ] );
51
52 m_aButtons[ i ].Create( pFont, pFont->GetTextWidth( wszText ), wszText, 10.0f );
53 m_aButtons[ i ].SetFocusedColour( AGUI2STYLE_COLOR_FOCUSED );
54 m_aButtons[ i ].SetEnabledColour( AGUI2STYLE_COLOR_SECONDARY );
55 m_aButtons[ i ].SetDisabledColour( AGUI2STYLE_COLOR_DISABLED );
56 m_aButtons[ i ].SetFocusedScale( 1.0f );
57 m_aButtons[ i ].OnFocusLost();
58 m_aButtons[ i ].SetId( i );
59 m_aButtons[ i ].SetTextShadow( TTRUE, 0xa0000000, 0.6f );
60 m_aButtons[ i ].SetTextShadowOffset( 5.0f );
61 m_oMenu.AddMenuItem( m_aButtons[ i ] );
62 }
63
64 m_oMenu.SetFocusAt( m_aButtons[ 0 ] );
65 m_oDialogTitle.SetText( ALocaleManager::GetSingleton()->GetString( 284 ) );
66
68}
69
71{
72 for ( TINT i = 0; i < OPTIONSBUTTON_NUMOF; i++ )
73 {
74 m_aButtons[ i ].RemoveSelf();
75 }
76
78}
79
81{
82 m_iActivatedButtonID = -1;
84}
85
87{
88 AGUI2Button* pButton = TSTATICCAST( AGUI2Button, &a_rMenuItem );
89 m_iActivatedButtonID = pButton->GetId();
90
92}
93
95{
96 TIMPLEMENT();
97
98 //if ( m_iActivatedButtonID == -1 )
99 // AGameState::Remove();
100
101 if ( m_iActivatedButtonID == OPTIONSBUTTON_AUDIO )
102 {
103 AGameStateController::GetSingleton()->PushState( new AAudioOptionsState() );
104 }
105 else
106 {
108 }
109}
#define TIMPLEMENT()
Definition Defines.h:136
#define TSTATICCAST(POINTERTYPE, VALUE)
Definition Defines.h:69
#define TOSHI_NAMESPACE_USING
Definition Defines.h:46
#define TDEFINE_CLASS(...)
Definition TObject.h:120
#define TPSTRING8_DECLARE(STR)
Definition TPString8.h:15
#define TPS8(STR)
Definition TPString8.h:16
wchar_t TWCHAR
Definition Typedefs.h:21
float TFLOAT
Definition Typedefs.h:4
int TINT
Definition Typedefs.h:7
#define TTRUE
Definition Typedefs.h:25
bool TBOOL
Definition Typedefs.h:6
#define AGUI2STYLE_COLOR_FOCUSED
Definition AGUI2Style.h:10
#define AGUI2STYLE_COLOR_SECONDARY
Definition AGUI2Style.h:9
#define AGUI2STYLE_FONT_PRIMARY
Definition AGUI2Style.h:4
#define AGUI2STYLE_COLOR_DISABLED
Definition AGUI2Style.h:11
AInputCommand
Definition AInputMap.h:12
@ AInputCommand_Cancel
Definition AInputMap.h:16
@ UI_MENUBACK
Definition ui.h:31
virtual void OnActivate() override
AGUI2TextBox m_oDialogTitle
virtual TBOOL OnUpdate(TFLOAT a_fDeltaTime) override
virtual void OnRemoval() override
virtual TBOOL ProcessCommand(AInputCommand a_eInputCommand, const Toshi::TInputInterface::InputEvent *a_pInputEvent, TBOOL &a_rStopEvents) override
void OnButtonActivated(AGUI2Button *a_pButton)
MENUSTATE m_eMenuState
virtual void OnInsertion() override
void SetInputMap(const Toshi::TPString8 &a_MapName)
void Remove()
static constexpr TINT OPTIONSBUTTON_TEXTS[OPTIONSBUTTON_NUMOF]
virtual TBOOL OnUpdate(TFLOAT a_fDeltaTime) override
virtual void OnInsertion() override
virtual TBOOL ProcessCommand(AInputCommand a_eInputCommand, const Toshi::TInputInterface::InputEvent *a_pInputEvent, TBOOL &a_rStopEvents) override
virtual void OnActivate() override
virtual void OnMenuClose() override
virtual void OnRemoval() override
virtual void OnMenuItemActivated(AGUI2MenuItem &a_rMenuItem) override
TINT GetId() const
Definition AGUI2Button.h:18
TFLOAT GetTextWidth(const TWCHAR *a_wszText, TFLOAT a_fScale=1.0f)
static AGUI2Font * FindFont(const TCHAR *a_szFontName)