34 m_iActivatedButtonID = -1;
35 m_pWindmillHelper = a_pWindmillHelper;
58 m_oFadeOverListener.Disconnect();
60 AGameStateController::GetSingleton()->ReplaceState( pMovieState );
78 pBoneCamera->
SetModel(
TPS8D(
"data\\models\\envfrontend_cam" ),
"camera" );
87 if ( !AFadeManager::GetSingleton()->HasAnyFadesInProgress(
TTRUE ) && !m_oFadeOverListener.IsLinked() )
97 if ( !AFadeManager::GetSingleton()->HasAnyFadesInProgress(
TTRUE ) && !m_oFadeOverListener.IsLinked() )
122 if ( AInputHandler::GetSingleton()->HadInputLastFrame() )
125 m_fAFKTime += a_fDeltaTime;
129 if ( !AFadeManager::GetSingleton()->HasAnyFadesInProgress(
TTRUE ) )
133 m_oFadeOverListener.Connect(
139 UpdateMenuButtons( a_fDeltaTime );
143 UpdateFocusedButton( a_fDeltaTime );
158 if ( !m_pWindmillHelper )
162 ASimAnimModelHelperManager::GetSingleton()->AddModelHelper( m_pWindmillHelper );
164 m_pWindmillHelper->CreateBarnSign();
173 m_aButtons[ i ].Create( pFont, pFont->
GetTextWidth( wszText ), wszText, 5.0f );
177 m_aButtons[ i ].SetFocusedScale( 1.0f );
178 m_aButtons[ i ].OnFocusLost();
179 m_aButtons[ i ].SetId( i );
180 m_aButtons[ i ].SetScaleOnFocus(
TFALSE );
182 m_aButtons[ i ].SetImage(
"Panel_01", 1.25f, 1.5f );
183 m_aButtons[ i ].SetTextShadow(
TTRUE, 0xa0000000, 0.6f );
184 m_aButtons[ i ].SetTextShadowOffset( 5.0f, 5.0f );
185 m_oMenu.AddMenuItem( m_aButtons[ i ] );
188 m_oMenu.SetFocusAt( m_aButtons[ 0 ] );
195 m_Rectangle1.SetTransform( 0.0f, 10.0f );
199 m_Rectangle2.SetTransform( 5.0f, 10.0f );
200 m_Rectangle2.SetColour( 0x64000000 );
215 m_oMenu.SetTransform( 0.0f, 50.0f );
226 AMusicManager::GetSingleton()->StopBackgroundMusic();
227 TTODO(
"FUN_0054b390" );
231 m_aButtons[ i ].RemoveSelf();
234 m_Rectangle1.RemoveSelf();
235 m_Rectangle2.RemoveSelf();
245 m_iActivatedButtonID = -1;
268 m_iActivatedButtonID = pButton->
GetId();
278 if ( m_iActivatedButtonID == -1 )
283 switch ( m_iActivatedButtonID )
290 if ( pPushGameState )
291 AGameStateController::GetSingleton()->PushState( pPushGameState );
294void AFrontEndMainMenuState2::UpdateMenuButtons(
TFLOAT a_fDeltaTime )
299 if ( pLastMenuItem !=
TNULL )
305 TFLOAT fBackgroundScaleX, fBackgroundScaleY;
306 TFLOAT fTextScaleX, fTextScaleY;
308 if ( pItem == pFocused )
310 TFLOAT fSpeed = a_fDeltaTime * 10.0f;
318 TFLOAT fSpeed = a_fDeltaTime * 20.0f;
329 if ( pItem == pLastMenuItem )
break;
334void AFrontEndMainMenuState2::UpdateFocusedButton(
TFLOAT a_fDeltaTime )
336 AGUI2Button* pFocusedButton =
TSTATICCAST( AGUI2Button,
m_oMenu.GetFocusedMenuItem() );
346 TFLOAT fOneMinusProgress = 1.0f - fProgress;
Controller input device interface for the Toshi engine.
Keyboard input device for the Toshi engine.
#define TSTATICCAST(POINTERTYPE, VALUE)
#define TOSHI_NAMESPACE_USING
#define TDEFINE_CLASS(...)
@ AGUI2ATTACHMENT_TOPCENTER
#define AGUI2STYLE_COLOR_FOCUSED
#define AGUI2STYLE_FONT_PRIMARY
#define AGUI2STYLE_COLOR_DISABLED
#define AGUI2STYLE_COLOR_PRIMARY
TFORCEINLINE constexpr TFLOAT DegToRad(TFLOAT fDeg)
TFORCEINLINE TFLOAT Sin(TFLOAT fVal)
TFORCEINLINE TFLOAT LERPClamped(TFLOAT a, TFLOAT b, TFLOAT t)
TInputDevice * GetSource() const
TBOOL IsA(TClass *a_pClass)
void SetAnimation(const TCHAR *a_szSeqName)
void SetModel(const Toshi::TPString8 &a_strModelName, const TCHAR *a_szBoneName)
@ CAMERAHELPER_BONEATTACH
void SetCameraHelper(ACameraHelper *a_pHelper)
ACameraHelper * GetCurrentCameraHelper() const
ACameraHelper * GetCameraHelper(CAMERAHELPER a_eCameraHelper) const
static Toshi::TVector2 ms_vecActivatedButtonTranslation
virtual void OnActivate() override
TBOOL m_bFocusedElementBloated
virtual TBOOL OnUpdate(TFLOAT a_fDeltaTime) override
virtual void OnRemoval() override
static TFLOAT ms_fAnimationTime
virtual TBOOL ProcessCommand(AInputCommand a_eInputCommand, const Toshi::TInputInterface::InputEvent *a_pInputEvent, TBOOL &a_rStopEvents) override
static Toshi::TVector2 ms_vecActivatedButtonShadow
void OnButtonActivated(AGUI2Button *a_pButton)
TFLOAT * m_pButtonRotations
@ MENUSTATE_MENU_DISAPPEAR
virtual TBOOL ProcessInput(const Toshi::TInputInterface::InputEvent *a_pInputEvent) override
AGUI2Rectangle m_oDialogTitleBackground
virtual void OnDeactivate() override
virtual void OnInsertion() override
static TBOOL ms_bIsInserted
virtual void OnInsertion() override
static TFLOAT ms_fPlayIntroAFKTime
virtual void OnMenuItemActivated(AGUI2MenuItem &a_rMenuItem) override
virtual void OnDeactivate() override
static TFLOAT ms_fFocusedButtonMaxOffset
@ FRONTENDBUTTON_LOADGAME
static TFLOAT ms_fFocusedButtonAnimSpeed
virtual void OnMenuClose() override
AFrontEndMainMenuState2(AWindmillHelper *a_pWindmillHelper=nullptr, TBOOL a_bFlag=false)
virtual TBOOL OnUpdate(TFLOAT a_fDeltaTime) override
virtual TBOOL ProcessInput(const Toshi::TInputInterface::InputEvent *a_pInputEvent) override
static TFLOAT ms_fFocusedButtonMaxScale
static void SetupCamera()
virtual TBOOL ProcessCommand(AInputCommand a_eInputCommand, const Toshi::TInputInterface::InputEvent *a_pInputEvent, TBOOL &a_rStopEvents) override
static constexpr TINT FRONTENDBUTTON_TEXTS[FRONTENDBUTTON_NUMOF]
virtual void OnRemoval() override
virtual void OnActivate() override
~AFrontEndMainMenuState2()
static TFLOAT ms_fFocusedButtonTextMaxScale
Toshi::TEmitter< AFade, TBOOL > & GetFadeOverEmitter()
static AGUI2Element * GetRootElement()
AGUI2Rectangle & GetBackground()
virtual void SetShadowAlpha(TFLOAT a_fAlpha) override
AGUI2TextBox & GetTextBox()
void SetTextShadowOffset(TFLOAT a_fOffset)
AGUI2Transform & GetTransform()
void SetTranslation(TFLOAT a_fX, TFLOAT a_fY)
void AddChildTail(AGUI2Element &a_rElement)
TFLOAT GetTextWidth(const TWCHAR *a_wszText, TFLOAT a_fScale=1.0f)
static AGUI2Font * FindFont(const TCHAR *a_szFontName)
AGUI2MenuItem * GetFocusedMenuItem() const
AGUI2MenuItem * GetLastMenuItem() const
AGUI2MenuItem * GetPrevMenuItem() const
Toshi::TVector2 m_aMatrixRows[2]
void SetScale(TFLOAT a_fScaleX, TFLOAT a_fScaleY)