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

#include <AAudioOptionsState.h>

Inheritance diagram for AAudioOptionsState:
ABYardMenuState AGameState

Public Types

enum  AUDIOOPTIONS { AUDIOOPTIONS_EFFECTS , AUDIOOPTIONS_MUSIC , AUDIOOPTIONS_SPEECH , AUDIOOPTIONS_NUMOF }
 
using ThisClass = AAudioOptionsState
 
using BaseClass = ABYardMenuState
 
- Public Types inherited from ABYardMenuState
enum  MENUSTATE {
  MENUSTATE_DIALOG_APPEAR , MENUSTATE_DIALOG_DISAPPEAR , MENUSTATE_MENU_APPEAR , MENUSTATE_MENU_DISAPPEAR ,
  MENUSTATE_NOTHING , MENUSTATE_MENU_VISIBLE
}
 
using ThisClass = ABYardMenuState
 
using BaseClass = AGameState
 
- Public Types inherited from AGameState
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
 
 AAudioOptionsState ()
 
 ~AAudioOptionsState ()
 
virtual TBOOL ProcessInput (const Toshi::TInputInterface::InputEvent *a_pInputEvent) override
 
virtual TBOOL ProcessCommand (AInputCommand a_eInputCommand, const Toshi::TInputInterface::InputEvent *a_pInputEvent, TBOOL &a_rStopEvents) override
 
virtual void OnInsertion () override
 
virtual void OnRemoval () override
 
virtual void OnMenuItemActivated (AGUI2MenuItem &a_rMenuItem) override
 
virtual void OnMenuItemFocused (AGUI2MenuItem &a_rOldFocus, AGUI2MenuItem &a_rNewFocus) override
 
virtual void OnMenuClose () override
 
virtual void OnMenuGridItemFocused (AGUI2MenuGridItem &a_rOldFocus, AGUI2MenuGridItem &a_rNewFocus)
 
- Public Member Functions inherited from ABYardMenuState
 ABYardMenuState ()
 
 ~ABYardMenuState ()
 
virtual TBOOL OnUpdate (TFLOAT a_fDeltaTime) override
 
virtual void OnActivate () override
 
virtual void OnDeactivate () override
 
virtual void OnMenuOpen ()
 
- Public Member Functions inherited from AGameState
 AGameState ()
 
 ~AGameState ()
 
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 void OnSuspend ()
 
virtual void OnResume (AGameState *a_pPreviousState)
 
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 Member Functions inherited from ABYardMenuState
static Toshi::TObject * CreateTObject ()
 
static Toshi::TObject * CreateTObjectInPlace (void *a_pPtr)
 
static void InitialiseClass ()
 
static void DeinitialiseClass ()
 
static __forceinline Toshi::TClass * GetClassStatic ()
 
- Static Public Member Functions inherited from AGameState
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 = & ABYardMenuState::ms_oClass
 
static Toshi::TClass ms_oClass = Toshi::TClass( "AAudioOptionsState", AAudioOptionsState::PARENTCLASS, AAudioOptionsState::CreateTObject, AAudioOptionsState::CreateTObjectInPlace, AAudioOptionsState::InitialiseClass, AAudioOptionsState::DeinitialiseClass, 0, 1, sizeof( AAudioOptionsState ), alignof( AAudioOptionsState ) )
 
static constexpr TINT AUDIOOPTIONS_TEXTS [AUDIOOPTIONS_NUMOF]
 
- Static Public Attributes inherited from ABYardMenuState
static constexpr Toshi::TClass * PARENTCLASS = & AGameState::ms_oClass
 
static Toshi::TClass ms_oClass = Toshi::TClass( "ABYardMenuState", ABYardMenuState::PARENTCLASS, ABYardMenuState::CreateTObject, ABYardMenuState::CreateTObjectInPlace, ABYardMenuState::InitialiseClass, ABYardMenuState::DeinitialiseClass, 0, 1, sizeof( ABYardMenuState ), alignof( ABYardMenuState ) )
 
- Static Public Attributes inherited from AGameState
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 ) )
 

Additional Inherited Members

- Protected Member Functions inherited from ABYardMenuState
void OnButtonActivated (AGUI2Button *a_pButton)
 
- Protected Attributes inherited from ABYardMenuState
AGUI2Element m_oRootElement
 
AGUI2Dialog m_oDialog
 
AGUI2Menu m_oMenu
 
AGUI2Rectangle m_oDialogTitleBackground
 
AGUI2TextBox m_oDialogTitle
 
MENUSTATE m_eMenuState
 
TFLOAT m_fOscillatorOffset
 
TFLOAT m_fMenuOpacity
 
TFLOAT m_fTotalTime
 
TBOOL m_bFocusedElementBloated
 
TBOOL m_bIgnoreInputs
 
TFLOATm_pButtonRotations
 
TBOOL m_bHasRectangle2
 
AGUI2Rectangle m_oRectangle2
 
- Protected Attributes inherited from AGameState
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
 
- Static Protected Attributes inherited from ABYardMenuState
static Toshi::TVector2 ms_vecActivatedButtonTranslation
 
static TFLOAT ms_fAnimationTime
 
static Toshi::TVector2 ms_vecActivatedButtonShadow
 

Detailed Description

Definition at line 40 of file AAudioOptionsState.h.

Member Typedef Documentation

◆ BaseClass

◆ ThisClass

Member Enumeration Documentation

◆ AUDIOOPTIONS

Enumerator
AUDIOOPTIONS_EFFECTS 
AUDIOOPTIONS_MUSIC 
AUDIOOPTIONS_SPEECH 
AUDIOOPTIONS_NUMOF 

Definition at line 45 of file AAudioOptionsState.h.

Constructor & Destructor Documentation

◆ AAudioOptionsState()

AAudioOptionsState::AAudioOptionsState ( )

Definition at line 20 of file AAudioOptionsState.cpp.

21{
22}

◆ ~AAudioOptionsState()

AAudioOptionsState::~AAudioOptionsState ( )

Definition at line 24 of file AAudioOptionsState.cpp.

25{
26}

Member Function Documentation

◆ CreateTObject()

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

Definition at line 18 of file AAudioOptionsState.cpp.

◆ CreateTObjectInPlace()

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

Definition at line 18 of file AAudioOptionsState.cpp.

◆ DeinitialiseClass()

void AAudioOptionsState::DeinitialiseClass ( )
static

Definition at line 18 of file AAudioOptionsState.cpp.

◆ GetClass()

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

Reimplemented from ABYardMenuState.

Definition at line 18 of file AAudioOptionsState.cpp.

◆ GetClassStatic()

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

Definition at line 43 of file AAudioOptionsState.h.

◆ InitialiseClass()

void AAudioOptionsState::InitialiseClass ( )
static

Definition at line 18 of file AAudioOptionsState.cpp.

◆ OnInsertion()

void AAudioOptionsState::OnInsertion ( )
overridevirtual

Reimplemented from ABYardMenuState.

Definition at line 72 of file AAudioOptionsState.cpp.

73{
74 TIMPLEMENT();
75
77
78 m_oGridMenu.CreateGrid( AUDIOOPTIONS_NUMOF, 2, 40.0f, 20.0f );
79 m_oGridMenu.SetCallbackUserData( this );
80 m_oGridMenu.SetFocusSound( soundbank::UI_MENUCLICK );
81 m_oGridMenu.SetBackSound( soundbank::UI_MENUBACK );
82 m_oGridMenu.SetSelectSound( soundbank::UI_MENUOK );
83 m_oGridMenu.BlockActivation( TTRUE );
84
85 m_oGridMenu.SetItemActivationCallback( []( void* a_pUserData, AGUI2MenuGridItem* a_pItem ) {
86 TSTATICCAST( AAudioOptionsState, a_pUserData )->m_eMenuState = MENUSTATE_MENU_DISAPPEAR;
87 } );
88 m_oGridMenu.SetItemFocusCallback( []( void* a_pUserData, AGUI2MenuGridItem* a_pOldFocus, AGUI2MenuGridItem* a_pNewFocus ) {
89 TSTATICCAST( AAudioOptionsState, a_pUserData )->OnMenuGridItemFocused( *a_pOldFocus, *a_pNewFocus );
90 } );
91
92 // Create sliders
93 for ( TINT i = 0; i < AUDIOOPTIONS_NUMOF; i++ )
94 {
95 // Initialise label
96 const TWCHAR* wszText = ALocaleManager::GetSingleton()->GetString( AUDIOOPTIONS_TEXTS[ i ] );
97
98 m_aTextItems[ i ].Create( pFont, pFont->GetTextWidth( wszText ), wszText, 10.0f );
99 m_aTextItems[ i ].SetFocusedColour( AGUI2STYLE_COLOR_FOCUSED );
100 m_aTextItems[ i ].SetEnabledColour( AGUI2STYLE_COLOR_SECONDARY );
101 m_aTextItems[ i ].SetDisabledColour( AGUI2STYLE_COLOR_DISABLED );
102 m_aTextItems[ i ].SetFocusedScale( 1.0f );
103 m_aTextItems[ i ].OnFocusLost();
104 m_aTextItems[ i ].SetId( i );
105 m_aTextItems[ i ].SetTextShadow( TTRUE, 0xa0000000, 0.6f );
106 m_aTextItems[ i ].SetTextShadowOffset( 5.0f );
107 m_oGridMenu.AddMenuGridItem( m_aTextItems[ i ] );
108
109 // Initialise slider
110 m_aVolumeSliders[ i ].Create( "left_arrow", "left_arrow2", "Statue_GoldStar" );
111 m_aVolumeSliders[ i ].SetEnabled( TFALSE );
112 m_aVolumeSliders[ i ].SetId( i );
113 m_aVolumeSliders[ i ].SetCallbackUserData( this );
114 m_aVolumeSliders[ i ].SetArrowFocusedCallback( []( void* a_pUserData, TINT a_iSliderID ) {
115 AAudioOptionsState* pState = TSTATICCAST( AAudioOptionsState, a_pUserData );
116 pState->m_oGridMenu.SetFocusAt( &pState->m_aTextItems[ a_iSliderID ] );
117 pState->m_iFocusedItemId = a_iSliderID;
118 } );
119 m_oGridMenu.AddMenuGridItem( m_aVolumeSliders[ i ] );
120 }
121
122 // Update side elements
123 m_aTextItems[ AUDIOOPTIONS_EFFECTS ].SetSideElements( TNULL, TNULL, &m_aTextItems[ AUDIOOPTIONS_SPEECH ], &m_aTextItems[ AUDIOOPTIONS_MUSIC ] );
124 m_aTextItems[ AUDIOOPTIONS_MUSIC ].SetSideElements( TNULL, TNULL, &m_aTextItems[ AUDIOOPTIONS_EFFECTS ], &m_aTextItems[ AUDIOOPTIONS_SPEECH ] );
125 m_aTextItems[ AUDIOOPTIONS_SPEECH ].SetSideElements( TNULL, TNULL, &m_aTextItems[ AUDIOOPTIONS_MUSIC ], &m_aTextItems[ AUDIOOPTIONS_EFFECTS ] );
126
127 m_oGridMenu.ReflowChildren();
128
129 // Center text elements
130 for ( TINT i = 0; i < AUDIOOPTIONS_NUMOF; i++ )
131 {
132 m_aTextItems[ i ].SetTransform(
133 m_aTextItems[ i ].GetWidth() * 0.5f + m_aTextItems[ i ].GetTransform().GetTranslation().x,
134 m_aTextItems[ i ].GetTransform().GetTranslation().y
135 );
136
137 m_aTextItems[ i ].SetAttachment( AGUI2ATTACHMENT_TOPLEFT, AGUI2ATTACHMENT_TOPCENTER );
138 }
139
140 // ...
141 m_oDialog.AddChildTail( m_oGridMenu );
142 m_oGridMenu.SetFocusAt( &m_aTextItems[ 0 ] );
143
144 m_oDialogTitle.SetText( ALocaleManager::GetSingleton()->GetString( 302 ) );
146
148
149 m_oDialog.SetDimensions( m_oGridMenu.GetWidth() + 128.0f, m_oGridMenu.GetHeight() + 150.0f );
150}
#define TIMPLEMENT()
Definition Defines.h:136
#define TSTATICCAST(POINTERTYPE, VALUE)
Definition Defines.h:69
wchar_t TWCHAR
Definition Typedefs.h:21
#define TNULL
Definition Typedefs.h:23
int TINT
Definition Typedefs.h:7
#define TFALSE
Definition Typedefs.h:24
#define TTRUE
Definition Typedefs.h:25
@ AGUI2ATTACHMENT_TOPLEFT
@ AGUI2ATTACHMENT_TOPCENTER
#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
@ UI_MENUCLICK
Definition ui.h:28
@ UI_MENUOK
Definition ui.h:34
@ UI_MENUBACK
Definition ui.h:31
static constexpr TINT AUDIOOPTIONS_TEXTS[AUDIOOPTIONS_NUMOF]
TBOOL m_bFocusedElementBloated
AGUI2TextBox m_oDialogTitle
AGUI2Dialog m_oDialog
virtual void OnInsertion() override
TFLOAT GetTextWidth(const TWCHAR *a_wszText, TFLOAT a_fScale=1.0f)
static AGUI2Font * FindFont(const TCHAR *a_szFontName)
void SetFocusAt(AGUI2MenuGridItem *a_pMenuItem)

◆ OnMenuClose()

void AAudioOptionsState::OnMenuClose ( )
overridevirtual

Reimplemented from ABYardMenuState.

Definition at line 175 of file AAudioOptionsState.cpp.

176{
177 TIMPLEMENT();
178
180}
void Remove()

◆ OnMenuGridItemFocused()

void AAudioOptionsState::OnMenuGridItemFocused ( AGUI2MenuGridItem & a_rOldFocus,
AGUI2MenuGridItem & a_rNewFocus )
virtual

Definition at line 182 of file AAudioOptionsState.cpp.

183{
184 TIMPLEMENT();
185 m_iFocusedItemId = -1;
186}

◆ OnMenuItemActivated()

void AAudioOptionsState::OnMenuItemActivated ( AGUI2MenuItem & a_rMenuItem)
overridevirtual

Implements ABYardMenuState.

Definition at line 164 of file AAudioOptionsState.cpp.

165{
166 ASoundManager::GetSingleton()->PlayCue( soundbank::UI_MENUOK );
167 ABYardMenuState::OnButtonActivated( TSTATICCAST( AGUI2Button, &a_rMenuItem ) );
168}
void OnButtonActivated(AGUI2Button *a_pButton)

◆ OnMenuItemFocused()

void AAudioOptionsState::OnMenuItemFocused ( AGUI2MenuItem & a_rOldFocus,
AGUI2MenuItem & a_rNewFocus )
overridevirtual

Reimplemented from ABYardMenuState.

Definition at line 170 of file AAudioOptionsState.cpp.

171{
172 TIMPLEMENT();
173}

◆ OnRemoval()

void AAudioOptionsState::OnRemoval ( )
overridevirtual

Reimplemented from ABYardMenuState.

Definition at line 152 of file AAudioOptionsState.cpp.

153{
154 TIMPLEMENT();
155 for ( TINT i = 0; i < AUDIOOPTIONS_NUMOF; i++ )
156 {
157 m_aTextItems[ i ].RemoveSelf();
158 }
159
160 m_oGridMenu.RemoveSelf();
162}
virtual void OnRemoval() override

◆ ProcessCommand()

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

Reimplemented from ABYardMenuState.

Definition at line 41 of file AAudioOptionsState.cpp.

42{
43 TIMPLEMENT();
44
46 {
47 if ( a_eInputCommand == AInputCommand_Cancel )
48 {
49 ASoundManager::GetSingleton()->PlayCue( soundbank::UI_MENUBACK );
51 m_iFocusedItemId = -1;
52 return TTRUE;
53 }
54 else if ( a_eInputCommand == AInputCommand_Left )
55 {
56 a_pInputEvent->StartRepeat();
57 return TTRUE;
58 }
59 else if ( a_eInputCommand == AInputCommand_Right )
60 {
61 a_pInputEvent->StartRepeat();
62 return TTRUE;
63 }
64
65 if ( m_oGridMenu.ProcessInputCommand( a_eInputCommand, a_pInputEvent ) )
66 return TTRUE;
67 }
68
69 return BaseClass::ProcessCommand( a_eInputCommand, a_pInputEvent, a_rStopEvents );
70}
@ AInputCommand_Right
Definition AInputMap.h:34
@ AInputCommand_Left
Definition AInputMap.h:33
@ AInputCommand_Cancel
Definition AInputMap.h:16
virtual TBOOL ProcessCommand(AInputCommand a_eInputCommand, const Toshi::TInputInterface::InputEvent *a_pInputEvent, TBOOL &a_rStopEvents) override
MENUSTATE m_eMenuState

◆ ProcessInput()

TBOOL AAudioOptionsState::ProcessInput ( const Toshi::TInputInterface::InputEvent * a_pInputEvent)
overridevirtual

Reimplemented from ABYardMenuState.

Definition at line 28 of file AAudioOptionsState.cpp.

29{
30 TIMPLEMENT();
31
33 {
34 if ( m_oGridMenu.ProcessInputEvent( a_pInputEvent ) )
35 return TTRUE;
36 }
37
38 return BaseClass::ProcessInput( a_pInputEvent );
39}
virtual TBOOL ProcessInput(const Toshi::TInputInterface::InputEvent *a_pInputEvent) override

Member Data Documentation

◆ AUDIOOPTIONS_TEXTS

TINT AAudioOptionsState::AUDIOOPTIONS_TEXTS[AUDIOOPTIONS_NUMOF]
inlinestaticconstexpr
Initial value:
= {
299,
300,
301
}

Definition at line 53 of file AAudioOptionsState.h.

53 {
54 299,
55 300,
56 301
57 };

◆ ms_oClass

Definition at line 43 of file AAudioOptionsState.h.

◆ PARENTCLASS

Toshi::TClass* AAudioOptionsState::PARENTCLASS = & ABYardMenuState::ms_oClass
staticconstexpr

Definition at line 43 of file AAudioOptionsState.h.


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