diff --git a/stepmania/Themes/default/metrics.ini b/stepmania/Themes/default/metrics.ini index 7a0effa3b4..e452bab142 100644 --- a/stepmania/Themes/default/metrics.ini +++ b/stepmania/Themes/default/metrics.ini @@ -362,62 +362,116 @@ HelpText=Press START to continue TimerSeconds=15 [ScreenSelectMusic] -BannerFrameOnCommand=x,160;y,162;addx,-400;bounceend,0.5;addx,400 -BannerFrameOffCommand=bouncebegin,0.5;addx,-400 +BannerX=160 +BannerY=162 BannerOnCommand=x,148;y,172;addx,-400;bounceend,0.5;addx,400 BannerOffCommand=bouncebegin,0.5;addx,-400 BannerWidth=282 BannerHeight=92 -BPMOnCommand=x,180;y,118;addx,-400;bounceend,0.5;addx,400 +BannerFrameX=160 +BannerFrameY=162 +BannerFrameOnCommand=addx,-400;bounceend,0.5;addx,400 +BannerFrameOffCommand=bouncebegin,0.5;addx,-400 +BPMX=180 +BPMY=118 +BPMOnCommand=addx,-400;bounceend,0.5;addx,400 BPMOffCommand=bouncebegin,0.5;addx,-400 -StageOnCommand=x,52;y,118;addx,-400;bounceend,0.5;addx,400 +StageX=52 +StageY=118 +StageOnCommand=addx,-400;bounceend,0.5;addx,400 StageOffCommand=bouncebegin,0.5;addx,-400 -CDTitleOnCommand=x,252;y,148;addx,-400;bounceend,0.5;addx,400 +CDTitleX=252 +CDTitleY=148 +CDTitleOnCommand=addx,-400;bounceend,0.5;addx,400 CDTitleOffCommand=bouncebegin,0.5;addx,-400 -DifficultyFrameP1OnCommand=x,60;y,248;diffusealpha,0;linear,0.5;diffusealpha,1 +DifficultyFrameP1X=60 +DifficultyFrameP1Y=248 +DifficultyFrameP1OnCommand=diffusealpha,0;linear,0.5;diffusealpha,1 DifficultyFrameP1OffCommand=linear,0.5;diffusealpha,0 -DifficultyFrameP2OnCommand=x,260;y,248;diffusealpha,0;linear,0.5;diffusealpha,1 +DifficultyFrameP2X=260 +DifficultyFrameP2Y=248 +DifficultyFrameP2OnCommand=diffusealpha,0;linear,0.5;diffusealpha,1 DifficultyFrameP2OffCommand=linear,0.5;diffusealpha,0 -DifficultyIconP1OnCommand=x,48;y,248;zoomy,0;linear,0.5;zoomy,1 +DifficultyIconP1X=48 +DifficultyIconP1Y=248 +DifficultyIconP1OnCommand=zoomy,0;linear,0.5;zoomy,1 DifficultyIconP1OffCommand=linear,0.5;zoomy,0 -DifficultyIconP2OnCommand=x,272;y,248;zoomy,0;linear,0.5;zoomy,1 +DifficultyIconP2X=272 +DifficultyIconP2Y=248 +DifficultyIconP2OnCommand=zoomy,0;linear,0.5;zoomy,1 DifficultyIconP2OffCommand=linear,0.5;zoomy,0 -AutogenIconP1OnCommand=x,48;y,248;zoomy,0;linear,0.5;zoomy,1 +AutogenIconP1X=48 +AutogenIconP1Y=248 +AutogenIconP1OnCommand=zoomy,0;linear,0.5;zoomy,1 AutogenIconP1OffCommand=linear,0.5;zoomy,0 -AutogenIconP2OnCommand=x,272;y,248;zoomy,0;linear,0.5;zoomy,1 +AutogenIconP2X=272 +AutogenIconP2Y=248 +AutogenIconP2OnCommand=zoomy,0;linear,0.5;zoomy,1 AutogenIconP2OffCommand=linear,0.5;zoomy,0 -RadarOnCommand=x,160;y,334 +RadarX=160 +RadarY=334 +RadarOnCommand= RadarOffCommand= -SortIconOnCommand=x,350;y,70;zoomy,0;linear,0.5;zoomy,1 +SortIconX=350 +SortIconY=70 +SortIconOnCommand=zoomy,0;linear,0.5;zoomy,1 SortIconOffCommand=linear,0.5;zoomy,0 -ScoreFrameP1OnCommand=x,520;y,210;addx,400;bounceend,0.5;addx,-400 +ScoreFrameP1X=520 +ScoreFrameP1Y=210 +ScoreFrameP1OnCommand=addx,400;bounceend,0.5;addx,-400 ScoreFrameP1OffCommand=bouncebegin,0.5;addx,400 -ScoreFrameP2OnCommand=x,520;y,286;addx,400;bounceend,0.5;addx,-400 +ScoreFrameP2X=520 +ScoreFrameP2Y=286 +ScoreFrameP2OnCommand=addx,400;bounceend,0.5;addx,-400 ScoreFrameP2OffCommand=bouncebegin,0.5;addx,400 -ScoreP1OnCommand=x,520;y,210;addx,400;bounceend,0.5;addx,-400 +ScoreP1X=520 +ScoreP1Y=210 +ScoreP1OnCommand=addx,400;bounceend,0.5;addx,-400 ScoreP1OffCommand=bouncebegin,0.5;addx,400 -ScoreP2OnCommand=x,520;y,286;addx,400;bounceend,0.5;addx,-400 +ScoreP2X=520 +ScoreP2Y=286 +ScoreP2OnCommand=addx,400;bounceend,0.5;addx,-400 ScoreP2OffCommand=bouncebegin,0.5;addx,400 -MeterFrameP1OnCommand=x,82;y,432;diffusealpha,0;linear,0.5;diffusealpha,1 +MeterFrameP1X=82 +MeterFrameP1Y=432 +MeterFrameP1OnCommand=diffusealpha,0;linear,0.5;diffusealpha,1 MeterFrameP1OffCommand=linear,0.5;diffusealpha,0 -MeterFrameP2OnCommand=x,238;y,432;diffusealpha,0;linear,0.5;diffusealpha,1 +MeterFrameP2X=238 +MeterFrameP2Y=432 +MeterFrameP2OnCommand=diffusealpha,0;linear,0.5;diffusealpha,1 MeterFrameP2OffCommand=linear,0.5;diffusealpha,0 -MeterP1OnCommand=x,88;y,432;zoomy,0;linear,0.5;zoomy,1 +MeterP1X=88 +MeterP1Y=432 +MeterP1OnCommand=zoomy,0;linear,0.5;zoomy,1 MeterP1OffCommand=linear,0.5;zoomy,0 -MeterP2OnCommand=x,228;y,432;zoomy,0;linear,0.5;zoomy,1 +MeterP2X=228 +MeterP2Y=432 +MeterP2OnCommand=zoomy,0;linear,0.5;zoomy,1 MeterP2OffCommand=linear,0.5;zoomy,0 -WheelOnCommand=x,480;y,244 +WheelX=480 +WheelY=244 +WheelOnCommand= WheelOffCommand= -SongOptionsOnCommand=x,160;y,334;zoom,0.5;shadowlength,2;diffusealpha,0;linear,0.5;diffusealpha,1 +SongOptionsX=160 +SongOptionsY=334 +SongOptionsOnCommand=zoom,0.5;shadowlength,2;diffusealpha,0;linear,0.5;diffusealpha,1 SongOptionsOffCommand=linear,0.5;diffusealpha,0 SongOptionsExtraCommand=diffuseblink -OptionIconsP1OnCommand=x,30;y,58;zoomy,0;linear,0.5;zoomy,1 +OptionIconsP1X=30 +OptionIconsP1Y=58 +OptionIconsP1OnCommand=zoomy,0;linear,0.5;zoomy,1 OptionIconsP1OffCommand=linear,0.5;zoomy,0 -OptionIconsP2OnCommand=x,30;y,86;zoomy,0;linear,0.5;zoomy,1 +OptionIconsP2X=30 +OptionIconsP2Y=86 +OptionIconsP2OnCommand=zoomy,0;linear,0.5;zoomy,1 OptionIconsP2OffCommand=linear,0.5;zoomy,0 -BalloonOnCommand=stoptweening;x,392;y,140;zoomy,0;linear,0.5;zoomy,1 -BalloonOffCommand=stoptweening;linear,0.5;zoomy,0 -OptionsMessageShowCommand=x,320;y,240;zoomy,0;linear,0.25;zoomy,1;sleep,1;linear,0.25;zoomy,0 +BalloonX=392 +BalloonY=140 +BalloonOnCommand=zoomy,0;linear,0.5;zoomy,1 +BalloonOffCommand=linear,0.5;zoomy,0 +OptionsMessageX=320 +OptionsMessageY=240 +OptionsMessageOnCommand=zoomy,0;linear,0.25;zoomy,1;sleep,1;linear,0.25;zoomy,0 HelpText=&LEFT; or &RIGHT; change music Hold &LEFT; and &RIGHT; then press START to change sort::&UP;&UP; easier difficulty &DOWN;&DOWN; harder difficulty::&UP;&DOWN;&UP;&DOWN; to change sort TimerSeconds=60 SampleMusicDelay=0.25 @@ -480,84 +534,209 @@ TimerSeconds=60 NextScreen=ScreenGameplay [ScreenGameplay] -SongSelectScreen=ScreenSelectMusic +PrevScreenArcade=ScreenSelectMusic +PrevScreenNonstop=ScreenSelectCourse +PrevScreenOni=ScreenSelectCourse +PrevScreenEndless=ScreenSelectCourse +PrevScreenBattle=ScreenSelectMusic +PrevScreenRave=ScreenSelectMusic +NextScreenArcade=ScreenEvaluationStage +NextScreenNonstop=ScreenEvaluationNonstop +NextScreenOni=ScreenEvaluationOni +NextScreenEndless=ScreenEvaluationEndless +NextScreenBattle=ScreenEvaluationStage +NextScreenRave=ScreenEvaluationStage BPMX=999 // don't show by default BPMY=999 -BPMZoom=0.0 -StagenameX=999 -StagenameY=999 -StagenameZoom=0.0 +BPMOnCommand=zoom,0 +BPMOffCommand= +SongTitleX=999 +SongTitleY=999 +SongTitleOnCommand=zoom,0 +SongTitleOffCommand= MaxComboX=999 MaxComboY=999 -MaxComboZoom=0.0 +MaxComboOnCommand=zoom,0 +MaxComboOffCommand= LifeFrameX=320 LifeFrameY=36 +LifeFrameOnCommand=addy,-100;sleep,0.5;linear,1;addy,100 +LifeFrameOffCommand=linear,1;addy,-100 +LifeFrameExtraX=320 LifeFrameExtraY=442 +LifeFrameExtraOnCommand=addy,100;sleep,0.5;linear,1;addy,-100 +LifeFrameExtraOffCommand=linear,1;addy,100 LyricsX=320 // this point is the center of the text line LyricsY=370 ScoreFrameX=320 ScoreFrameY=448 +ScoreFrameOnCommand=addy,100;sleep,0.5;linear,1;addy,-100 +ScoreFrameOffCommand=linear,1;addy,100 +ScoreFrameExtraX=320 ScoreFrameExtraY=32 -MiddleFrameX=320 -MiddleFrameY=240 +ScoreFrameExtraOnCommand=addy,-100;sleep,0.5;linear,1;addy,100 +ScoreFrameExtraOffCommand=linear,1;addy,-100 LifeP1X=140 LifeP1Y=28 +LifeP1OnCommand=addy,-100;sleep,0.5;linear,1;addy,100 +LifeP1OffCommand=linear,1;addy,-100 +LifeP1ExtraX=140 LifeP1ExtraY=450 +LifeP1ExtraOnCommand=addy,100;sleep,0.5;linear,1;addy,-100 +LifeP1ExtraOffCommand=linear,1;addy,100 LifeP2X=500 LifeP2Y=28 +LifeP2OnCommand=addy,-100;sleep,0.5;linear,1;addy,100 +LifeP2OffCommand=linear,1;addy,-100 +LifeP2ExtraX=500 LifeP2ExtraY=450 +LifeP2ExtraOnCommand=addy,100;sleep,0.5;linear,1;addy,-100 +LifeP2ExtraOffCommand=linear,1;addy,100 StageX=320 StageY=54 +StageOnCommand=addy,-100;sleep,0.5;linear,1;addy,100 +StageOffCommand=linear,1;addy,-100 +StageExtraX=320 StageExtraY=422 +StageExtraOnCommand=addy,100;sleep,0.5;linear,1;addy,-100 +StageExtraOffCommand=linear,1;addy,100 SongNumberP1X=290 SongNumberP1Y=54 +SongNumberP1OnCommand=addy,-100;sleep,0.5;linear,1;addy,100 +SongNumberP1OffCommand=linear,1;addy,-100 +SongNumberP1ExtraX=290 SongNumberP1ExtraY=440 +SongNumberP1ExtraOnCommand=addy,100;sleep,0.5;linear,1;addy,-100 +SongNumberP1ExtraOffCommand=linear,1;addy,100 SongNumberP2X=350 SongNumberP2Y=54 +SongNumberP2OnCommand=addy,-100;sleep,0.5;linear,1;addy,100 +SongNumberP2OffCommand=linear,1;addy,-100 +SongNumberP2ExtraY=350 SongNumberP2ExtraY=440 +SongNumberP2ExtraOnCommand=addy,100;sleep,0.5;linear,1;addy,-100 +SongNumberP2ExtraOffCommand=linear,1;addy,100 ScoreP1X=106 ScoreP1Y=444 +ScoreP1OnCommand=addy,100;sleep,0.5;linear,1;addy,-100 +ScoreP1OffCommand=linear,1;addy,100 +ScoreP1ExtraX=106 ScoreP1ExtraY=38 +ScoreP1ExtraOnCommand=addy,-100;sleep,0.5;linear,1;addy,100 +ScoreP1ExtraOffCommand=linear,1;addy,100 ScoreP2X=534 ScoreP2Y=444 +ScoreP2OnCommand=addy,100;sleep,0.5;linear,1;addy,-100 +ScoreP2OffCommand=linear,1;addy,100 +ScoreP2ExtraX=534 ScoreP2ExtraY=38 -ScoreZoom=1.0 +ScoreP2ExtraOnCommand=addy,-100;sleep,0.5;linear,1;addy,100 +ScoreP2ExtraOffCommand=linear,1;addy,-100 PlayerOptionsP1X=320 PlayerOptionsP1Y=434 +PlayerOptionsP1OnCommand=zoom,0.5;addy,100;sleep,0.5;linear,1;addy,-100 +PlayerOptionsP1OffCommand=linear,1;addy,-100 +PlayerOptionsP1ExtraX=320 PlayerOptionsP1ExtraY=46 +PlayerOptionsP1ExtraOnCommand=zoom,0.5;addy,-100;sleep,0.5;linear,1;addy,100 +PlayerOptionsP1ExtraOffCommand=linear,1;addy,100 PlayerOptionsP2X=320 PlayerOptionsP2Y=450 +PlayerOptionsP2OnCommand=zoom,0.5;addy,100;sleep,0.5;linear,1;addy,-100 +PlayerOptionsP2OffCommand=linear,1;addy,-100 +PlayerOptionsP2ExtraX=320 PlayerOptionsP2ExtraY=30 +PlayerOptionsP2ExtraOnCommand=zoom,0.5;addy,-100;sleep,0.5;linear,1;addy,100 +PlayerOptionsP2ExtraOffCommand=linear,1;addy,100 SongOptionsX=320 SongOptionsY=470 +SongOptionsOnCommand=zoom,0.5;addy,100;sleep,0.5;linear,1;addy,-100 +SongOptionsOffCommand=linear,1;addy,100 +SongOptionsExtraX=320 SongOptionsExtraY=10 +SongOptionsExtraOnCommand=zoom,0.5;addy,-100;sleep,0.5;linear,1;addy,100 +SongOptionsExtraOffCommand=linear,1;addy,100 DifficultyP1X=60 DifficultyP1Y=410 +DifficultyP1OnCommand=addx,-200;sleep,0.5;linear,1;addx,200 +DifficultyP1OffCommand=linear,1;addx,-200 +DifficultyP1ReverseX=60 DifficultyP1ReverseY=58 +DifficultyP1ReverseOnCommand=addx,-200;sleep,0.5;linear,1;addx,200 +DifficultyP1ReverseOffCommand=linear,1;addx,-200 +DifficultyP1ExtraX=60 DifficultyP1ExtraY=420 +DifficultyP1ExtraOnCommand=addx,-200;sleep,0.5;linear,1;addx,200 +DifficultyP1ExtraOffCommand=linear,1;addx,-200 +DifficultyP1ExtraReverseX=60 DifficultyP1ExtraReverseY=70 +DifficultyP1ExtraReverseOnCommnand=addx,-200;sleep,0.5;linear,1;addx,200 +DifficultyP1ExtraReverseOffCommand=linear,1;addx,-200 DifficultyP2X=580 DifficultyP2Y=410 +DifficultyP2OnCommand=addx,200;sleep,0.5;linear,1;addx,-200 +DifficultyP2OffCommand=linear,1;addx,200 +DifficultyP2ReverseX=580 DifficultyP2ReverseY=58 +DifficultyP2ReverseOnCommand=addx,200;sleep,0.5;linear,1;addx,-200 +DifficultyP2ReverseOffCommand=linear,1;addx,200 +DifficultyP2ExtraX=580 DifficultyP2ExtraY=420 +DifficultyP2ExtraOnCommand=addx,200;sleep,0.5;linear,1;addx,-200 +DifficultyP2ExtraOffCommand=linear,1;addx,200 +DifficultyP2ExtraReverseX=580 DifficultyP2ExtraReverseY=70 +DifficultyP2ExtraReverseOnCommand=addx,200;sleep,0.5;linear,1;addx,-200 +DifficultyP2ExtraReverseOffCommand=linear,1;addx,200 LyricsX=320 LyricsY=400 +LyricsReverseX=320 LyricsReverseY=100 +LyricsReverseOnCommand= +LyricsReverseOffCommand= +LyricsExtraX=320 LyricsExtraY=400 +LyricsExtraOnCommand= +LyricsExtraOffCommand= +LyricsExtraReverseX=320 LyricsExtraReverseY=400 +LyricsExtraReverseOnCommand= +LyricsExtraReverseOffCommand= ActiveItemsP1X=0 ActiveItemsP1Y=0 +ActiveItemsP1OnCommand= +ActiveItemsP1OffCommand= +ActiveItemsP1ReverseX=0 ActiveItemsP1ReverseY=0 +ActiveItemsP1ReverseOnCommand= +ActiveItemsP1ReverseOffCommand= +ActiveItemsP1ExtraX=0 ActiveItemsP1ExtraY=0 +ActiveItemsP1ExtraOnCommand= +ActiveItemsP1ExtraOffCommand= +ActiveItemsP1ExtraReverseX=0 ActiveItemsP1ExtraReverseY=0 +ActiveItemsP1ExtraReverseOnCommand= +ActiveItemsP1ExtraReverseOffCommand= ActiveItemsP2X=0 ActiveItemsP2Y=0 +ActiveItemsP2OnCommand= +ActiveItemsP2OffCommand= +ActiveItemsP2ReverseX=0 ActiveItemsP2ReverseY=0 +ActiveItemsP2ReverseOnCommand= +ActiveItemsP2ReverseOffCommand= +ActiveItemsP2ExtraX=0 ActiveItemsP2ExtraY=0 +ActiveItemsP2ExtraOnCommand= +ActiveItemsP2ExtraOffCommand= +ActiveItemsP2ExtraReverseX=0 ActiveItemsP2ExtraReverseY=0 +ActiveItemsP2ExtraReverseOnCommand= +ActiveItemsP2ExtraReverseOffCommand= SurviveTimeX=320 SurviveTimeY=340 +SurviveTimeOnCommand=sleep,0.3;linear,0.3;diffusealpha,1;sleep,3.5;linear,0.5;diffusealpha,0 DebugX=320 DebugY=240 AutoPlayX=320 diff --git a/stepmania/src/ScreenGameplay.cpp b/stepmania/src/ScreenGameplay.cpp index 647407b7a8..a18093d12b 100644 --- a/stepmania/src/ScreenGameplay.cpp +++ b/stepmania/src/ScreenGameplay.cpp @@ -33,13 +33,20 @@ #include "RageTimer.h" #include "ScoreKeeperMAX2.h" #include "NoteFieldPositioning.h" - #include "LyricsLoader.h" +#include "ActorUtil.h" + // // Defines // -#define SONGSEL_SCREEN THEME->GetMetric("ScreenGameplay","SongSelectScreen") +#define PREV_SCREEN( play_mode ) THEME->GetMetric ("ScreenGameplay","PrevScreen"+Capitalize(PlayModeToString(play_mode))) +#define NEXT_SCREEN( play_mode ) THEME->GetMetric ("ScreenGameplay","NextScreen"+Capitalize(PlayModeToString(play_mode))) +CachedThemeMetricF SECONDS_BETWEEN_COMMENTS ("ScreenGameplay","SecondsBetweenComments"); +CachedThemeMetricF G_TICK_EARLY_SECONDS ("ScreenGameplay","TickEarlySeconds"); + + +/* #define MAXCOMBO_X THEME->GetMetricF("ScreenGameplay","MaxComboX") #define MAXCOMBO_Y THEME->GetMetricF("ScreenGameplay","MaxComboY") #define MAXCOMBO_ZOOM THEME->GetMetricF("ScreenGameplay","MaxComboZoom") @@ -80,8 +87,7 @@ #define AUTOPLAY_Y THEME->GetMetricF("ScreenGameplay","AutoPlayY") #define SURVIVE_TIME_X THEME->GetMetricF("ScreenGameplay","SurviveTimeX") #define SURVIVE_TIME_Y THEME->GetMetricF("ScreenGameplay","SurviveTimeY") -CachedThemeMetricF SECONDS_BETWEEN_COMMENTS ("ScreenGameplay","SecondsBetweenComments"); -CachedThemeMetricF G_TICK_EARLY_SECONDS ("ScreenGameplay","TickEarlySeconds"); +*/ const ScreenMessage SM_PlayReady = ScreenMessage(SM_User+0); @@ -205,6 +211,7 @@ ScreenGameplay::ScreenGameplay( bool bDemonstration ) : Screen("ScreenGameplay") + const bool bExtra = GAMESTATE->IsExtraStage() || GAMESTATE->IsExtraStage2(); m_Background.SetDiffuse( RageColor(0.4f,0.4f,0.4f,1) ); @@ -251,7 +258,6 @@ ScreenGameplay::ScreenGameplay( bool bDemonstration ) : Screen("ScreenGameplay") this->AddChild( &m_NextSongOut ); - const bool bExtra = GAMESTATE->IsExtraStage() || GAMESTATE->IsExtraStage2(); // LifeFrame goes below LifeMeter CString sLifeFrameName; @@ -262,7 +268,8 @@ ScreenGameplay::ScreenGameplay( bool bDemonstration ) : Screen("ScreenGameplay") else sLifeFrameName = "ScreenGameplay life frame"; m_sprLifeFrame.Load( THEME->GetPathToG(sLifeFrameName) ); - m_sprLifeFrame.SetXY( LIFE_FRAME_X, LIFE_FRAME_Y(bExtra) ); + m_sprLifeFrame.SetName( bExtra?"LifeFrameExtra":"LifeFrame" ); + SET_XY( m_sprLifeFrame ); this->AddChild( &m_sprLifeFrame ); for( p=0; pLoad( (PlayerNumber)p ); - m_pLifeMeter[p]->SetXY( LIFE_X(p), LIFE_Y(p,bExtra) ); + m_pLifeMeter[p]->SetName( ssprintf("LifeP%d%s",p+1,bExtra?"Extra":"") ); + SET_XY( *m_pLifeMeter[p] ); this->AddChild( m_pLifeMeter[p] ); } @@ -289,7 +297,8 @@ ScreenGameplay::ScreenGameplay( bool bDemonstration ) : Screen("ScreenGameplay") { m_textCourseSongNumber[p].LoadFromNumbers( THEME->GetPathToN("ScreenGameplay song num") ); m_textCourseSongNumber[p].EnableShadow( false ); - m_textCourseSongNumber[p].SetXY( SONG_NUMBER_X(p), SONG_NUMBER_Y(p,bExtra) ); + m_textCourseSongNumber[p].SetName( ssprintf("SongNumberP%d%s",p+1,bExtra?"Extra":"") ); + SET_XY( m_textCourseSongNumber[p] ); m_textCourseSongNumber[p].SetText( "" ); m_textCourseSongNumber[p].SetDiffuse( RageColor(0,0.5f,1,1) ); // light blue } @@ -300,7 +309,8 @@ ScreenGameplay::ScreenGameplay( bool bDemonstration ) : Screen("ScreenGameplay") case PLAY_MODE_BATTLE: case PLAY_MODE_RAVE: m_sprStage.Load( THEME->GetPathToG("ScreenGameplay stage "+GAMESTATE->GetStageText()) ); - m_sprStage.SetXY( STAGE_X, STAGE_Y(bExtra) ); + m_sprStage.SetName( ssprintf("Stage%s",bExtra?"Extra":"") ); + SET_XY( m_sprStage ); this->AddChild( &m_sprStage ); break; case PLAY_MODE_NONSTOP: @@ -308,7 +318,9 @@ ScreenGameplay::ScreenGameplay( bool bDemonstration ) : Screen("ScreenGameplay") case PLAY_MODE_ENDLESS: for( p=0; pIsPlayerEnabled(p) ) + { this->AddChild( &m_textCourseSongNumber[p] ); + } break; default: ASSERT(0); // invalid GameMode @@ -326,19 +338,20 @@ ScreenGameplay::ScreenGameplay( bool bDemonstration ) : Screen("ScreenGameplay") else sScoreFrameName = "ScreenGameplay score frame"; m_sprScoreFrame.Load( THEME->GetPathToG(sScoreFrameName) ); - m_sprScoreFrame.SetXY( SCORE_FRAME_X, SCORE_FRAME_Y(bExtra) ); + m_sprScoreFrame.SetName( ssprintf("ScoreFrame%s",bExtra?"Extra":"") ); + SET_XY( m_sprScoreFrame ); this->AddChild( &m_sprScoreFrame ); m_textSongTitle.LoadFromFont( THEME->GetPathToF("ScreenGameplay song title") ); m_textSongTitle.EnableShadow( false ); - m_textSongTitle.SetXY( STAGENAME_X, STAGENAME_Y ); - m_textSongTitle.SetZoom( STAGENAME_ZOOM ); + m_textSongTitle.SetName( "SongTitle" ); + SET_XY( m_textSongTitle ); this->AddChild( &m_textSongTitle ); m_MaxCombo.LoadFromNumbers( THEME->GetPathToN("ScreenGameplay max combo") ); - m_MaxCombo.SetXY( MAXCOMBO_X, MAXCOMBO_Y ); - m_MaxCombo.SetZoom( MAXCOMBO_ZOOM ); - m_MaxCombo.SetText( ssprintf("%d", GAMESTATE->m_CurStageStats.iCurCombo[GAMESTATE->m_MasterPlayerNumber]) ); /* TODO: Make this work for both players */ + m_MaxCombo.SetName( "MaxCombo" ); + SET_XY( m_MaxCombo ); + m_MaxCombo.SetText( ssprintf("%d", GAMESTATE->m_CurStageStats.iCurCombo[GAMESTATE->m_MasterPlayerNumber]) ); // TODO: Make this work for both players this->AddChild( &m_MaxCombo ); for( p=0; pInit( (PlayerNumber)p ); - m_pScoreDisplay[p]->SetXY( SCORE_X(p), SCORE_Y(p,bExtra) ); - m_pScoreDisplay[p]->SetZoom( SCORE_ZOOM ); + m_pScoreDisplay[p]->SetName( ssprintf("ScoreP%d%s",p+1,bExtra?"Extra":"") ); + SET_XY( *m_pScoreDisplay[p] ); this->AddChild( m_pScoreDisplay[p] ); m_textPlayerOptions[p].LoadFromFont( THEME->GetPathToF("Common normal") ); m_textPlayerOptions[p].EnableShadow( false ); - m_textPlayerOptions[p].SetXY( PLAYER_OPTIONS_X(p), PLAYER_OPTIONS_Y(p,bExtra) ); - m_textPlayerOptions[p].SetZoom( 0.5f ); - m_textPlayerOptions[p].SetDiffuse( RageColor(1,1,1,1) ); + m_textPlayerOptions[p].SetName( ssprintf("PlayerOptionsP%d%s",p+1,bExtra?"Extra":"") ); + SET_XY( m_textPlayerOptions[p] ); this->AddChild( &m_textPlayerOptions[p] ); } m_textSongOptions.LoadFromFont( THEME->GetPathToF("Common normal") ); m_textSongOptions.EnableShadow( false ); - m_textSongOptions.SetXY( SONG_OPTIONS_X, SONG_OPTIONS_Y(bExtra) ); - m_textSongOptions.SetZoom( 0.5f ); - m_textSongOptions.SetDiffuse( RageColor(1,1,1,1) ); + m_textSongOptions.SetName( ssprintf("SongOptions%s",bExtra?"Extra":"") ); + SET_XY( m_textSongOptions ); m_textSongOptions.SetText( GAMESTATE->m_SongOptions.GetString() ); this->AddChild( &m_textSongOptions ); @@ -404,14 +415,15 @@ ScreenGameplay::ScreenGameplay( bool bDemonstration ) : Screen("ScreenGameplay") m_textAutoPlay.LoadFromFont( THEME->GetPathToF("ScreenGameplay autoplay") ); - m_textAutoPlay.SetXY( AUTOPLAY_X, AUTOPLAY_Y ); + m_textAutoPlay.SetName( "AutoPlay" ); + SET_XY( m_textAutoPlay ); if( !bDemonstration ) // only load if we're not in demonstration of jukebox this->AddChild( &m_textAutoPlay ); UpdateAutoPlayText(); - m_BPMDisplay.SetXY( BPM_X, BPM_Y ); - m_BPMDisplay.SetZoom( BPM_ZOOM ); + m_BPMDisplay.SetName( "BPM" ); + SET_XY( m_BPMDisplay ); this->AddChild( &m_BPMDisplay ); for( p=0; pGetPathToF("Common normal") ); - m_textDebug.SetXY( DEBUG_X, DEBUG_Y ); - m_textDebug.SetDiffuse( RageColor(1,1,1,1) ); + m_textDebug.SetName( "Debug" ); + SET_XY( m_textDebug ); this->AddChild( &m_textDebug ); @@ -471,8 +483,8 @@ ScreenGameplay::ScreenGameplay( bool bDemonstration ) : Screen("ScreenGameplay") { m_textSurviveTime.LoadFromFont( THEME->GetPathToF("ScreenGameplay survive time") ); m_textSurviveTime.EnableShadow( false ); - m_textSurviveTime.SetXY( SURVIVE_TIME_X, SURVIVE_TIME_Y ); - m_textSurviveTime.SetText( "" ); + m_textSurviveTime.SetName( "SurviveTime" ); + SET_XY( m_textSurviveTime ); m_textSurviveTime.SetDiffuse( RageColor(1,1,1,0) ); this->AddChild( &m_textSurviveTime ); } @@ -550,10 +562,10 @@ void ScreenGameplay::LoadNextSong() int p; for( p=0; pIsPlayerEnabled(p) ) + { GAMESTATE->m_CurStageStats.iSongsPlayed[p]++; - - for( p=0; pm_CurStageStats.iSongsPlayed[p]) ); + m_textCourseSongNumber[p].SetText( ssprintf("%d", GAMESTATE->m_CurStageStats.iSongsPlayed[p]) ); + } int iPlaySongIndex = GAMESTATE->GetCourseSongIndex(); iPlaySongIndex %= m_apSongsQueue.size(); @@ -642,8 +654,11 @@ void ScreenGameplay::LoadNextSong() if( !GAMESTATE->IsPlayerEnabled(PlayerNumber(p)) ) continue; - m_ActiveItemList[p].SetXY( ACTIVE_ITEMS_X(p), ACTIVE_ITEMS_Y(p,bExtra,bReverse[p]) ); - m_DifficultyIcon[p].SetXY( DIFFICULTY_X(p), DIFFICULTY_Y(p,bExtra,bReverse[p]) ); + m_ActiveItemList[p].SetName( ssprintf("ActiveItemsP%d%s%s",p+1,bExtra?"Extra":"",bReverse[p]?"Reverse":"") ); + SET_XY( m_ActiveItemList[p] ); + + m_DifficultyIcon[p].SetName( ssprintf("DifficultyP%d%s%s",p+1,bExtra?"Extra":"",bReverse[p]?"Reverse":"") ); + SET_XY( m_DifficultyIcon[p] ); } /* Load the Oni transitions */ @@ -653,7 +668,8 @@ void ScreenGameplay::LoadNextSong() /* XXX: We want to put the lyrics out of the way, but it's likely that one * player is in reverse and the other isn't. What to do? */ - m_LyricDisplay.SetXY( LYRICS_X, LYRICS_Y(bExtra,bReverse[GAMESTATE->m_MasterPlayerNumber]) ); + m_LyricDisplay.SetName( "Lyrics" ); + SET_XY( m_LyricDisplay ); // Load lyrics // XXX: don't load this here @@ -1326,11 +1342,13 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM ) // do they deserve an extra stage? if( GAMESTATE->HasEarnedExtraStage() ) { + TweenOffScreen(); m_Extra.StartTransitioning( SM_GoToStateAfterCleared ); SOUNDMAN->PlayOnceFromDir( ANNOUNCER->GetPathTo("gameplay extra") ); } else { + TweenOffScreen(); m_Cleared.StartTransitioning( SM_GoToStateAfterCleared ); SOUNDMAN->PlayOnceFromDir( ANNOUNCER->GetPathTo("gameplay cleared") ); } @@ -1445,23 +1463,7 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM ) case SM_GoToScreenAfterBack: /* Reset options. (Should this be done in ScreenSelect*?) */ GAMESTATE->RestoreSelectedOptions(); - - switch( GAMESTATE->m_PlayMode ) - { - case PLAY_MODE_ARCADE: - case PLAY_MODE_BATTLE: - case PLAY_MODE_RAVE: - // SCREENMAN->SetNewScreen( "ScreenSelectMusic" ); - SCREENMAN->SetNewScreen( SONGSEL_SCREEN ); - break; - case PLAY_MODE_NONSTOP: - case PLAY_MODE_ONI: - case PLAY_MODE_ENDLESS: - SCREENMAN->SetNewScreen( "ScreenSelectCourse" ); - break; - default: - ASSERT(0); - } + SCREENMAN->SetNewScreen( PREV_SCREEN(GAMESTATE->m_PlayMode) ); break; case SM_GoToStateAfterCleared: @@ -1474,30 +1476,13 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM ) ShowSavePrompt( SM_GoToStateAfterCleared ); break; } - switch( GAMESTATE->m_PlayMode ) - { - case PLAY_MODE_ARCADE: - case PLAY_MODE_BATTLE: - case PLAY_MODE_RAVE: - SCREENMAN->SetNewScreen( "ScreenEvaluationStage" ); - break; - case PLAY_MODE_NONSTOP: - SCREENMAN->SetNewScreen( "ScreenEvaluationNonstop" ); - break; - case PLAY_MODE_ONI: - SCREENMAN->SetNewScreen( "ScreenEvaluationOni" ); - break; - case PLAY_MODE_ENDLESS: - SCREENMAN->SetNewScreen( "ScreenEvaluationEndless" ); - break; - default: - ASSERT(0); - } + SCREENMAN->SetNewScreen( NEXT_SCREEN(GAMESTATE->m_PlayMode) ); break; case SM_BeginFailed: m_DancingState = STATE_OUTRO; m_soundMusic.StopPlaying(); + TweenOffScreen(); m_Failed.StartTransitioning( SM_GoToScreenAfterFail ); // make the background invisible so we don't waste power drawing it @@ -1505,7 +1490,6 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM ) m_Background.SetDiffuse( RageColor(1,1,1,0) ); // show the survive time if extra stage - // TODO: Move this animation to a metric? if( GAMESTATE->IsExtraStage() || GAMESTATE->IsExtraStage2() ) { float fMaxSurviveSeconds = 0; @@ -1514,12 +1498,7 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM ) fMaxSurviveSeconds = max( fMaxSurviveSeconds, GAMESTATE->m_CurStageStats.fAliveSeconds[p] ); ASSERT( fMaxSurviveSeconds > 0 ); m_textSurviveTime.SetText( "TIME: " + SecondsToTime(fMaxSurviveSeconds) ); - m_textSurviveTime.BeginTweening( 0.3f ); // sleep - m_textSurviveTime.BeginTweening( 0.3f ); // fade in - m_textSurviveTime.SetDiffuse( RageColor(1,1,1,1) ); - m_textSurviveTime.BeginTweening( 3.5f ); // sleep - m_textSurviveTime.BeginTweening( 0.5f ); // fade out - m_textSurviveTime.SetDiffuse( RageColor(1,1,1,0) ); + SET_XY( m_textSurviveTime ); } SOUNDMAN->PlayOnceFromDir( ANNOUNCER->GetPathTo("gameplay failed") ); @@ -1566,58 +1545,38 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM ) void ScreenGameplay::TweenOnScreen() { - unsigned i, p; - - /* XXX: m_sprLifeFrame.GetChildren(apActorsInLifeFrame) */ - vector apActorsInLifeFrame; - apActorsInLifeFrame.push_back( &m_sprLifeFrame ); - for( p=0; pGetY(); - apActorsInLifeFrame[i]->SetY( fOriginalY-100 ); - apActorsInLifeFrame[i]->BeginTweening( 0.5f ); // sleep - apActorsInLifeFrame[i]->BeginTweening( 1 ); - apActorsInLifeFrame[i]->SetY( fOriginalY ); - } - - - vector apActorsInScoreFrame; - apActorsInScoreFrame.push_back( &m_sprScoreFrame ); - for( p=0; pIsPlayerEnabled(p) ) continue; - apActorsInScoreFrame.push_back( m_pScoreDisplay[p] ); - apActorsInScoreFrame.push_back( &m_textPlayerOptions[p] ); - } - apActorsInScoreFrame.push_back( &m_textSongOptions ); - for( i=0; iGetY(); - apActorsInScoreFrame[i]->SetY( fOriginalY+100 ); - apActorsInScoreFrame[i]->BeginTweening( 0.5f ); // sleep - apActorsInScoreFrame[i]->BeginTweening( 1 ); - apActorsInScoreFrame[i]->SetY( fOriginalY ); - } - - for( p=0; pIsPlayerEnabled(p) ) + continue; + OFF_COMMAND( *m_pLifeMeter[p] ); + OFF_COMMAND( m_textCourseSongNumber[p] ); + OFF_COMMAND( *m_pScoreDisplay[p] ); + OFF_COMMAND( m_textPlayerOptions[p] ); + OFF_COMMAND( m_DifficultyIcon[p] ); + } } void ScreenGameplay::ShowOniGameOver( PlayerNumber pn ) diff --git a/stepmania/src/ScreenHowToPlay.cpp b/stepmania/src/ScreenHowToPlay.cpp index b2d212be65..1f60cc4682 100644 --- a/stepmania/src/ScreenHowToPlay.cpp +++ b/stepmania/src/ScreenHowToPlay.cpp @@ -69,7 +69,6 @@ ScreenHowToPlay::ScreenHowToPlay() : ScreenAttract("ScreenHowToPlay") ScreenHowToPlay::~ScreenHowToPlay() { delete m_pSong; - GAMESTATE->m_pCurSong = NULL; } void ScreenHowToPlay::Update( float fDelta ) diff --git a/stepmania/src/ScreenSelectDifficulty.cpp b/stepmania/src/ScreenSelectDifficulty.cpp index 918578f1e6..e5784a74a3 100644 --- a/stepmania/src/ScreenSelectDifficulty.cpp +++ b/stepmania/src/ScreenSelectDifficulty.cpp @@ -18,11 +18,7 @@ #include "GameState.h" #include "AnnouncerManager.h" #include "ModeChoice.h" - -#define SET_XY( actor ) actor.SetXY( THEME->GetMetricF(m_sName,actor.GetName()+"X"), THEME->GetMetricF(m_sName,actor.GetName()+"Y") ) -#define ON_COMMAND( actor ) actor.Command( THEME->GetMetric(m_sName,actor.GetName()+"OnCommand") ) -#define OFF_COMMAND( actor ) actor.Command( THEME->GetMetric(m_sName,actor.GetName()+"OffCommand") ) -#define SET_XY_AND_ON_COMMAND( actor ) SET_XY(actor); ON_COMMAND(actor) +#include "ActorUtil.h" #define NUM_CHOICES_ON_PAGE_1 THEME->GetMetricI("ScreenSelectDifficulty","NumChoicesOnPage1") #define LOCK_INPUT_SECONDS THEME->GetMetricF("ScreenSelectDifficulty","LockInputSeconds") diff --git a/stepmania/src/ScreenSelectGroup.cpp b/stepmania/src/ScreenSelectGroup.cpp index a84fb7eef0..0f6494ee38 100644 --- a/stepmania/src/ScreenSelectGroup.cpp +++ b/stepmania/src/ScreenSelectGroup.cpp @@ -23,11 +23,7 @@ #include "RageSoundManager.h" #include "ThemeManager.h" #include - -#define SET_XY( actor ) actor.SetXY( THEME->GetMetricF(m_sName,actor.GetName()+"X"), THEME->GetMetricF(m_sName,actor.GetName()+"Y") ) -#define ON_COMMAND( actor ) actor.Command( THEME->GetMetric(m_sName,actor.GetName()+"OnCommand") ) -#define OFF_COMMAND( actor ) actor.Command( THEME->GetMetric(m_sName,actor.GetName()+"OffCommand") ) -#define SET_XY_AND_ON_COMMAND( actor ) SET_XY(actor); ON_COMMAND(actor) +#include "ActorUtil.h" #define BANNER_WIDTH THEME->GetMetricF("ScreenSelectGroup","BannerWidth") #define BANNER_HEIGHT THEME->GetMetricF("ScreenSelectGroup","BannerHeight") diff --git a/stepmania/src/ScreenSelectMusic.cpp b/stepmania/src/ScreenSelectMusic.cpp index 96049e1570..49063af8c3 100644 --- a/stepmania/src/ScreenSelectMusic.cpp +++ b/stepmania/src/ScreenSelectMusic.cpp @@ -30,49 +30,14 @@ #include "GameConstantsAndTypes.h" #include "ThemeManager.h" #include "Notes.h" +#include "ActorUtil.h" + const int NUM_SCORE_DIGITS = 9; -#define BANNER_FRAME_ON_COMMAND THEME->GetMetric ("ScreenSelectMusic","BannerFrameOnCommand") -#define BANNER_FRAME_OFF_COMMAND THEME->GetMetric ("ScreenSelectMusic","BannerFrameOffCommand") -#define BANNER_ON_COMMAND THEME->GetMetric ("ScreenSelectMusic","BannerOnCommand") -#define BANNER_OFF_COMMAND THEME->GetMetric ("ScreenSelectMusic","BannerOffCommand") #define BANNER_WIDTH THEME->GetMetricF("ScreenSelectMusic","BannerWidth") #define BANNER_HEIGHT THEME->GetMetricF("ScreenSelectMusic","BannerHeight") -#define BPM_ON_COMMAND THEME->GetMetric ("ScreenSelectMusic","BPMOnCommand") -#define BPM_OFF_COMMAND THEME->GetMetric ("ScreenSelectMusic","BPMOffCommand") -#define STAGE_ON_COMMAND THEME->GetMetric ("ScreenSelectMusic","StageOnCommand") -#define STAGE_OFF_COMMAND THEME->GetMetric ("ScreenSelectMusic","StageOffCommand") -#define CD_TITLE_ON_COMMAND THEME->GetMetric ("ScreenSelectMusic","CDTitleOnCommand") -#define CD_TITLE_OFF_COMMAND THEME->GetMetric ("ScreenSelectMusic","CDTitleOffCommand") -#define DIFFICULTY_FRAME_ON_COMMAND( p ) THEME->GetMetric ("ScreenSelectMusic",ssprintf("DifficultyFrameP%dOnCommand",p+1)) -#define DIFFICULTY_FRAME_OFF_COMMAND( p ) THEME->GetMetric ("ScreenSelectMusic",ssprintf("DifficultyFrameP%dOffCommand",p+1)) -#define DIFFICULTY_ICON_ON_COMMAND( p ) THEME->GetMetric ("ScreenSelectMusic",ssprintf("DifficultyIconP%dOnCommand",p+1)) -#define DIFFICULTY_ICON_OFF_COMMAND( p ) THEME->GetMetric ("ScreenSelectMusic",ssprintf("DifficultyIconP%dOffCommand",p+1)) -#define AUTOGEN_ICON_ON_COMMAND( p ) THEME->GetMetric ("ScreenSelectMusic",ssprintf("AutogenIconP%dOnCommand",p+1)) -#define AUTOGEN_ICON_OFF_COMMAND( p ) THEME->GetMetric ("ScreenSelectMusic",ssprintf("AutogenIconP%dOffCommand",p+1)) -#define RADAR_ON_COMMAND THEME->GetMetric ("ScreenSelectMusic","RadarOnCommand") -#define RADAR_OFF_COMMAND THEME->GetMetric ("ScreenSelectMusic","RadarOffCommand") -#define SORT_ICON_ON_COMMAND THEME->GetMetric ("ScreenSelectMusic","SortIconOnCommand") -#define SORT_ICON_OFF_COMMAND THEME->GetMetric ("ScreenSelectMusic","SortIconOffCommand") -#define SCORE_FRAME_ON_COMMAND( p ) THEME->GetMetric ("ScreenSelectMusic",ssprintf("ScoreFrameP%dOnCommand",p+1)) -#define SCORE_FRAME_OFF_COMMAND( p ) THEME->GetMetric ("ScreenSelectMusic",ssprintf("ScoreFrameP%dOffCommand",p+1)) -#define SCORE_ON_COMMAND( p ) THEME->GetMetric ("ScreenSelectMusic",ssprintf("ScoreP%dOnCommand",p+1)) -#define SCORE_OFF_COMMAND( p ) THEME->GetMetric ("ScreenSelectMusic",ssprintf("ScoreP%dOffCommand",p+1)) -#define METER_FRAME_ON_COMMAND( p ) THEME->GetMetric ("ScreenSelectMusic",ssprintf("MeterFrameP%dOnCommand",p+1)) -#define METER_FRAME_OFF_COMMAND( p ) THEME->GetMetric ("ScreenSelectMusic",ssprintf("MeterFrameP%dOffCommand",p+1)) -#define METER_ON_COMMAND( p ) THEME->GetMetric ("ScreenSelectMusic",ssprintf("MeterP%dOnCommand",p+1)) -#define METER_OFF_COMMAND( p ) THEME->GetMetric ("ScreenSelectMusic",ssprintf("MeterP%dOffCommand",p+1)) -#define WHEEL_ON_COMMAND THEME->GetMetric ("ScreenSelectMusic","WheelOnCommand") -#define WHEEL_OFF_COMMAND THEME->GetMetric ("ScreenSelectMusic","WheelOffCommand") -#define SONG_OPTIONS_ON_COMMAND THEME->GetMetric ("ScreenSelectMusic","SongOptionsOnCommand") -#define SONG_OPTIONS_OFF_COMMAND THEME->GetMetric ("ScreenSelectMusic","SongOptionsOffCommand") #define SONG_OPTIONS_EXTRA_COMMAND THEME->GetMetric ("ScreenSelectMusic","SongOptionsExtraCommand") -#define OPTION_ICONS_ON_COMMAND( p ) THEME->GetMetric ("ScreenSelectMusic",ssprintf("OptionIconsP%dOnCommand",p+1)) -#define OPTION_ICONS_OFF_COMMAND( p ) THEME->GetMetric ("ScreenSelectMusic",ssprintf("OptionIconsP%dOffCommand",p+1)) -#define BALLOON_ON_COMMAND THEME->GetMetric ("ScreenSelectMusic","BalloonOnCommand") -#define BALLOON_OFF_COMMAND THEME->GetMetric ("ScreenSelectMusic","BalloonOffCommand") -#define OPTIONS_MESSAGE_SHOW_COMMAND THEME->GetMetric ("ScreenSelectMusic","OptionsMessageShowCommand") #define SAMPLE_MUSIC_DELAY THEME->GetMetricF("ScreenSelectMusic","SampleMusicDelay") @@ -98,26 +63,34 @@ ScreenSelectMusic::ScreenSelectMusic() : Screen("ScreenSelectMusic") m_Menu.Load( "ScreenSelectMusic" ); this->AddChild( &m_Menu ); - // these guys get loaded SetSong and TweenToSong + // this is loaded SetSong and TweenToSong + m_Banner.SetName( "Banner" ); m_Banner.SetCroppedSize( BANNER_WIDTH, BANNER_HEIGHT ); this->AddChild( &m_Banner ); + m_sprBannerFrame.SetName( "BannerFrame" ); m_sprBannerFrame.Load( THEME->GetPathToG("ScreenSelectMusic banner frame") ); this->AddChild( &m_sprBannerFrame ); + m_BPMDisplay.SetName( "BPM" ); this->AddChild( &m_BPMDisplay ); + m_sprStage.SetName( "Stage" ); m_sprStage.Load( THEME->GetPathToG("ScreenSelectMusic stage "+GAMESTATE->GetStageText()) ); this->AddChild( &m_sprStage ); + m_sprCDTitle.SetName( "CDTitle" ); m_sprCDTitle.Load( THEME->GetPathToG("ScreenSelectMusic fallback cdtitle") ); this->AddChild( &m_sprCDTitle ); + m_GrooveRadar.SetName( "Radar" ); this->AddChild( &m_GrooveRadar ); + m_textSongOptions.SetName( "SongOptions" ); m_textSongOptions.LoadFromFont( THEME->GetPathToF("Common normal") ); this->AddChild( &m_textSongOptions ); + m_MusicWheel.SetName( "Wheel" ); this->AddChild( &m_MusicWheel ); for( p=0; pIsHumanPlayer(p) ) continue; // skip + m_sprDifficultyFrame[p].SetName( ssprintf("DifficultyFrameP%d",p+1) ); m_sprDifficultyFrame[p].Load( THEME->GetPathToG("ScreenSelectMusic difficulty frame 2x1") ); m_sprDifficultyFrame[p].StopAnimating(); m_sprDifficultyFrame[p].SetState( p ); this->AddChild( &m_sprDifficultyFrame[p] ); + m_DifficultyIcon[p].SetName( ssprintf("DifficultyIconP%d",p+1) ); m_DifficultyIcon[p].Load( THEME->GetPathToG("ScreenSelectMusic difficulty icons 1x5") ); this->AddChild( &m_DifficultyIcon[p] ); + m_AutoGenIcon[p].SetName( ssprintf("AutogenIconP%d",p+1) ); m_AutoGenIcon[p].Load( THEME->GetPathToG("ScreenSelectMusic autogen") ); this->AddChild( &m_AutoGenIcon[p] ); + m_OptionIconRow[p].SetName( ssprintf("OptionIconsP%d",p+1) ); m_OptionIconRow[p].Refresh( (PlayerNumber)p ); this->AddChild( &m_OptionIconRow[p] ); + m_sprMeterFrame[p].SetName( ssprintf("MeterFrameP%d",p+1) ); m_sprMeterFrame[p].Load( THEME->GetPathToG("ScreenSelectMusic meter frame") ); m_sprMeterFrame[p].StopAnimating(); m_sprMeterFrame[p].SetState( p ); this->AddChild( &m_sprMeterFrame[p] ); + m_DifficultyMeter[p].SetName( ssprintf("MeterP%d",p+1) ); m_DifficultyMeter[p].SetShadowLength( 2 ); this->AddChild( &m_DifficultyMeter[p] ); + m_sprHighScoreFrame[p].SetName( ssprintf("ScoreFrameP%d",p+1) ); m_sprHighScoreFrame[p].Load( THEME->GetPathToG("ScreenSelectMusic score frame 1x2") ); m_sprHighScoreFrame[p].StopAnimating(); m_sprHighScoreFrame[p].SetState( p ); this->AddChild( &m_sprHighScoreFrame[p] ); + m_textHighScore[p].SetName( ssprintf("ScoreP%d",p+1) ); m_textHighScore[p].LoadFromNumbers( THEME->GetPathToN("ScreenSelectMusic score") ); m_textHighScore[p].EnableShadow( false ); m_textHighScore[p].SetDiffuse( PlayerToColor(p) ); this->AddChild( &m_textHighScore[p] ); } + m_MusicSortDisplay.SetName( "SortIcon" ); m_MusicSortDisplay.Set( GAMESTATE->m_SongSortOrder ); this->AddChild( &m_MusicSortDisplay ); + m_sprMarathonBalloon.SetName( "Balloon" ); m_sprMarathonBalloon.Load( THEME->GetPathToG("ScreenSelectMusic marathon") ); m_sprMarathonBalloon.SetDiffuse( RageColor(1,1,1,0) ); this->AddChild( &m_sprMarathonBalloon ); + m_sprLongBalloon.SetName( "Balloon" ); m_sprLongBalloon.Load( THEME->GetPathToG("ScreenSelectMusic long") ); m_sprLongBalloon.SetDiffuse( RageColor(1,1,1,0) ); this->AddChild( &m_sprLongBalloon ); + m_sprOptionsMessage.SetName( "OptionsMessage" ); m_sprOptionsMessage.Load( THEME->GetPathToG("ScreenSelectMusic options message 1x2") ); m_sprOptionsMessage.StopAnimating(); m_sprOptionsMessage.SetDiffuse( RageColor(1,1,1,0) ); // invisible @@ -210,28 +195,31 @@ void ScreenSelectMusic::DrawPrimitives() void ScreenSelectMusic::TweenOnScreen() { - m_sprBannerFrame.Command( BANNER_FRAME_ON_COMMAND ); - m_Banner.Command( BANNER_ON_COMMAND ); - m_BPMDisplay.Command( BPM_ON_COMMAND ); - m_sprStage.Command( STAGE_ON_COMMAND ); - m_sprCDTitle.Command( CD_TITLE_ON_COMMAND ); + SET_XY_AND_ON_COMMAND( m_sprBannerFrame ); + SET_XY_AND_ON_COMMAND( m_Banner ); + SET_XY_AND_ON_COMMAND( m_BPMDisplay ); + SET_XY_AND_ON_COMMAND( m_sprStage ); + SET_XY_AND_ON_COMMAND( m_sprCDTitle ); m_GrooveRadar.TweenOnScreen(); - m_GrooveRadar.Command( RADAR_ON_COMMAND ); - m_textSongOptions.Command( SONG_OPTIONS_ON_COMMAND ); - m_MusicSortDisplay.Command( SORT_ICON_ON_COMMAND ); + SET_XY_AND_ON_COMMAND( m_GrooveRadar ); + SET_XY_AND_ON_COMMAND( m_textSongOptions ); + SET_XY_AND_ON_COMMAND( m_MusicSortDisplay ); m_MusicWheel.TweenOnScreen(); - m_MusicWheel.Command( WHEEL_ON_COMMAND ); + SET_XY_AND_ON_COMMAND( m_MusicWheel ); for( int p=0; pIsHumanPlayer(p) ) + continue; // skip + + SET_XY_AND_ON_COMMAND( m_sprDifficultyFrame[p] ); + SET_XY_AND_ON_COMMAND( m_sprMeterFrame[p] ); + SET_XY_AND_ON_COMMAND( m_OptionIconRow[p] ); + SET_XY_AND_ON_COMMAND( m_DifficultyIcon[p] ); + SET_XY_AND_ON_COMMAND( m_AutoGenIcon[p] ); + SET_XY_AND_ON_COMMAND( m_DifficultyMeter[p] ); + SET_XY_AND_ON_COMMAND( m_sprHighScoreFrame[p] ); + SET_XY_AND_ON_COMMAND( m_textHighScore[p] ); } if( GAMESTATE->IsExtraStage() || GAMESTATE->IsExtraStage2() ) @@ -240,28 +228,31 @@ void ScreenSelectMusic::TweenOnScreen() void ScreenSelectMusic::TweenOffScreen() { - m_sprBannerFrame.Command( BANNER_FRAME_OFF_COMMAND ); - m_Banner.Command( BANNER_OFF_COMMAND ); - m_BPMDisplay.Command( BPM_OFF_COMMAND ); - m_sprStage.Command( STAGE_OFF_COMMAND ); - m_sprCDTitle.Command( CD_TITLE_OFF_COMMAND ); + OFF_COMMAND( m_sprBannerFrame ); + OFF_COMMAND( m_Banner ); + OFF_COMMAND( m_BPMDisplay ); + OFF_COMMAND( m_sprStage ); + OFF_COMMAND( m_sprCDTitle ); m_GrooveRadar.TweenOffScreen(); - m_GrooveRadar.Command( RADAR_OFF_COMMAND ); - m_textSongOptions.Command( SONG_OPTIONS_OFF_COMMAND ); - m_MusicSortDisplay.Command( SORT_ICON_OFF_COMMAND ); + OFF_COMMAND( m_GrooveRadar ); + OFF_COMMAND( m_textSongOptions ); + OFF_COMMAND( m_MusicSortDisplay ); m_MusicWheel.TweenOffScreen(); - m_MusicWheel.Command( WHEEL_OFF_COMMAND ); + OFF_COMMAND( m_MusicWheel ); for( int p=0; pIsHumanPlayer(p) ) + continue; // skip + + OFF_COMMAND( m_sprDifficultyFrame[p] ); + OFF_COMMAND( m_sprMeterFrame[p] ); + OFF_COMMAND( m_OptionIconRow[p] ); + OFF_COMMAND( m_DifficultyIcon[p] ); + OFF_COMMAND( m_AutoGenIcon[p] ); + OFF_COMMAND( m_DifficultyMeter[p] ); + OFF_COMMAND( m_sprHighScoreFrame[p] ); + OFF_COMMAND( m_textHighScore[p] ); } } @@ -640,7 +631,7 @@ void ScreenSelectMusic::MenuStart( PlayerNumber pn ) // show "hold START for options" m_sprOptionsMessage.SetDiffuse( RageColor(1,1,1,1) ); // visible - m_sprOptionsMessage.Command( OPTIONS_MESSAGE_SHOW_COMMAND ); + SET_XY_AND_ON_COMMAND( m_sprOptionsMessage ); /* m_sprOptionsMessage.BeginTweening( 0.15f ); // fade in m_sprOptionsMessage.SetZoomY( 1 ); m_sprOptionsMessage.SetDiffuse( RageColor(1,1,1,1) ); @@ -756,8 +747,8 @@ void ScreenSelectMusic::AfterMusicChange() no_banner_change = true; } - m_sprMarathonBalloon.Command( BALLOON_OFF_COMMAND ); - m_sprLongBalloon.Command( BALLOON_OFF_COMMAND ); + OFF_COMMAND( m_sprMarathonBalloon ); + OFF_COMMAND( m_sprLongBalloon ); switch( m_MusicWheel.GetSelectedType() ) { @@ -832,11 +823,13 @@ void ScreenSelectMusic::AfterMusicChange() * like the effect with a lot of delay. */ if( pSong->m_fMusicLengthSeconds > PREFSMAN->m_fMarathonVerSongSeconds ) { - m_sprMarathonBalloon.Command( BALLOON_ON_COMMAND ); + m_sprMarathonBalloon.StopTweening(); + SET_XY_AND_ON_COMMAND( m_sprMarathonBalloon ); } else if( pSong->m_fMusicLengthSeconds > PREFSMAN->m_fLongVerSongSeconds ) { - m_sprLongBalloon.Command( BALLOON_ON_COMMAND ); + m_sprLongBalloon.StopTweening(); + SET_XY_AND_ON_COMMAND( m_sprLongBalloon ); } } break; diff --git a/stepmania/src/ScreenSelectStyle.cpp b/stepmania/src/ScreenSelectStyle.cpp index bd24eb30c1..89a90a1528 100644 --- a/stepmania/src/ScreenSelectStyle.cpp +++ b/stepmania/src/ScreenSelectStyle.cpp @@ -17,11 +17,8 @@ #include "ScreenManager.h" #include "GameState.h" #include "AnnouncerManager.h" +#include "ActorUtil.h" -#define SET_XY( actor ) actor.SetXY( THEME->GetMetricF(m_sName,actor.GetName()+"X"), THEME->GetMetricF(m_sName,actor.GetName()+"Y") ) -#define ON_COMMAND( actor ) actor.Command( THEME->GetMetric(m_sName,actor.GetName()+"OnCommand") ) -#define OFF_COMMAND( actor ) actor.Command( THEME->GetMetric(m_sName,actor.GetName()+"OffCommand") ) -#define SET_XY_AND_ON_COMMAND( actor ) SET_XY(actor); ON_COMMAND(actor) #define ICON_GAIN_FOCUS_COMMAND THEME->GetMetric ("ScreenSelectStyle","IconGainFocusCommand") #define ICON_LOSE_FOCUS_COMMAND THEME->GetMetric ("ScreenSelectStyle","IconLoseFocusCommand") diff --git a/stepmania/src/StepMania.dsp b/stepmania/src/StepMania.dsp index 7e410e4148..25a7a8a60e 100644 --- a/stepmania/src/StepMania.dsp +++ b/stepmania/src/StepMania.dsp @@ -60,7 +60,7 @@ IntDir=.\../Release6 TargetDir=\stepmania\stepmania TargetName=StepMania SOURCE="$(InputPath)" -PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\ +PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\ PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi ia32.vdi # End Special Build Tool @@ -95,7 +95,7 @@ IntDir=.\../Debug6 TargetDir=\stepmania\stepmania TargetName=StepMania-debug SOURCE="$(InputPath)" -PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\ +PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\ PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi ia32.vdi # End Special Build Tool @@ -964,6 +964,10 @@ SOURCE=.\ActorScroller.h # End Source File # Begin Source File +SOURCE=.\ActorUtil.h +# End Source File +# Begin Source File + SOURCE=.\BitmapText.cpp # End Source File # Begin Source File diff --git a/stepmania/src/StepMania.vcproj b/stepmania/src/StepMania.vcproj index ef53ac24e5..146d462fcb 100644 --- a/stepmania/src/StepMania.vcproj +++ b/stepmania/src/StepMania.vcproj @@ -1562,6 +1562,9 @@ cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\ + + diff --git a/stepmania/src/Transition.cpp b/stepmania/src/Transition.cpp index ea70e868de..deeaa9f948 100644 --- a/stepmania/src/Transition.cpp +++ b/stepmania/src/Transition.cpp @@ -74,8 +74,8 @@ void Transition::DrawPrimitives() // that aren't visible. -Chris switch( m_State ) { -// case waiting: -// return; + case waiting: + return; case finished: return; }