From e7b39e381af7b3ed0f9b872084658ff328a8ed84 Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Thu, 23 Mar 2006 00:15:13 +0000 Subject: [PATCH] cleanup --- stepmania/src/ControllerStateDisplay.cpp | 35 ++++++++++-------------- stepmania/src/ControllerStateDisplay.h | 8 ++++-- 2 files changed, 19 insertions(+), 24 deletions(-) diff --git a/stepmania/src/ControllerStateDisplay.cpp b/stepmania/src/ControllerStateDisplay.cpp index 795180e448..05ad581740 100644 --- a/stepmania/src/ControllerStateDisplay.cpp +++ b/stepmania/src/ControllerStateDisplay.cpp @@ -36,36 +36,25 @@ REGISTER_ACTOR_CLASS( ControllerStateDisplay ) ControllerStateDisplay::ControllerStateDisplay() { m_bIsLoaded = false; - - this->AddChild( &m_sprFrame ); - FOREACH_ENUM2( ControllerStateButton, b ) - this->AddChild( &m_Buttons[b].spr ); } void ControllerStateDisplay::LoadMultiPlayer( MultiPlayer mp ) { - m_bIsLoaded = true; - - m_sprFrame.Load( THEME->GetPathG("ControllerStateDisplay", "frame") ); - - FOREACH_ENUM2( ControllerStateButton, b ) - { - Button &button = m_Buttons[ b ]; - - //LOG->Warn( "csd: %d %d", mp, b ); - - RString sPath = THEME->GetPathG( "ControllerStateDisplay", ControllerStateButtonToString(b) ); - button.spr.Load( sPath ); - - button.di = DeviceInput( INPUTMAPPER->MultiPlayerToInputDevice(mp), ControllerStateButtonToDeviceButton[b] ); - } + LoadInternal( mp, GAME_CONTROLLER_INVALID ); } void ControllerStateDisplay::LoadGameController( GameController gc ) { + LoadInternal( MultiPlayer_INVALID, gc ); +} + +void ControllerStateDisplay::LoadInternal( MultiPlayer mp, GameController gc ) +{ + ASSERT( !m_bIsLoaded ); m_bIsLoaded = true; m_sprFrame.Load( THEME->GetPathG("ControllerStateDisplay", "frame") ); + this->AddChild( m_sprFrame ); FOREACH_ENUM2( ControllerStateButton, b ) { @@ -75,8 +64,12 @@ void ControllerStateDisplay::LoadGameController( GameController gc ) RString sPath = THEME->GetPathG( "ControllerStateDisplay", ControllerStateButtonToString(b) ); button.spr.Load( sPath ); + this->AddChild( m_Buttons[b].spr ); - button.gi = GameInput( gc, ControllerStateButtonToGameButton[b] ); + if( mp != MultiPlayer_INVALID ) + button.di = DeviceInput( INPUTMAPPER->MultiPlayerToInputDevice(mp), ControllerStateButtonToDeviceButton[b] ); + if( gc != GAME_CONTROLLER_INVALID ) + button.gi = GameInput( gc, ControllerStateButtonToGameButton[b] ); } } @@ -93,7 +86,7 @@ void ControllerStateDisplay::Update( float fDelta ) else if( button.di.IsValid() ) bVisible = INPUTFILTER->IsBeingPressed(button.di); - button.spr.SetVisible( bVisible ); + button.spr->SetVisible( bVisible ); } } diff --git a/stepmania/src/ControllerStateDisplay.h b/stepmania/src/ControllerStateDisplay.h index 4bc0f53089..347ce16e97 100644 --- a/stepmania/src/ControllerStateDisplay.h +++ b/stepmania/src/ControllerStateDisplay.h @@ -6,7 +6,7 @@ #include "ActorFrame.h" #include "ActorUtil.h" #include "PlayerNumber.h" -#include "Sprite.h" +#include "AutoActor.h" #include "RageInput.h" #include "GameInput.h" @@ -37,8 +37,10 @@ public: virtual void PushSelf( lua_State *L ); protected: + void LoadInternal( MultiPlayer mp, GameController gc ); + bool m_bIsLoaded; - Sprite m_sprFrame; + AutoActor m_sprFrame; struct Button { Button() @@ -47,7 +49,7 @@ protected: gi.MakeInvalid(); } - Sprite spr; + AutoActor spr; DeviceInput di; GameInput gi; };