add scripting support to ScreenSelectMusic and ScreenEvaluation
This commit is contained in:
@@ -0,0 +1 @@
|
||||
_shared background fade in
|
||||
@@ -0,0 +1 @@
|
||||
_options to options
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.6 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 3.2 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 4.0 KiB |
@@ -0,0 +1 @@
|
||||
_shared footer.png
|
||||
@@ -0,0 +1 @@
|
||||
ScreenEvaluation extra1.mp3
|
||||
@@ -1,4 +1,4 @@
|
||||
// Possible NextScreen names:
|
||||
// Possible NextScreen names:
|
||||
// - ScreenCaution
|
||||
// - ScreenEz2SelectPlayer
|
||||
// - ScreenSelectMode
|
||||
@@ -252,66 +252,64 @@ HelpText=Press START to continue
|
||||
TimerSeconds=15
|
||||
|
||||
[ScreenSelectMusic]
|
||||
BannerFrameX=160
|
||||
BannerFrameY=162
|
||||
BannerX=150
|
||||
BannerY=170
|
||||
BannerFrameOnCommand=x,160;y,162;xoffset,-400;bounceend,0.5;xoffset,400
|
||||
BannerFrameOffCommand=bouncebegin,0.5;xoffset,-400
|
||||
BannerOnCommand=x,150;y,170;xoffset,-400;bounceend,0.5;xoffset,400
|
||||
BannerOffCommand=bouncebegin,0.5;xoffset,-400
|
||||
BannerWidth=282
|
||||
BannerHeight=92
|
||||
BPMX=180
|
||||
BPMY=116
|
||||
BPMZoom=0.7
|
||||
StageX=52
|
||||
StageY=114
|
||||
StageZoom=0.7
|
||||
CDTitleX=252
|
||||
CDTitleY=148
|
||||
DifficultyFrameP1X=60
|
||||
DifficultyFrameP1Y=248
|
||||
DifficultyFrameP2X=260
|
||||
DifficultyFrameP2Y=248
|
||||
DifficultyIconP1X=48
|
||||
DifficultyIconP1Y=248
|
||||
DifficultyIconP2X=272
|
||||
DifficultyIconP2Y=248
|
||||
RadarX=160
|
||||
RadarY=334
|
||||
SortIconX=350
|
||||
SortIconY=70
|
||||
ScoreFrameP1X=520
|
||||
ScoreFrameP1Y=210
|
||||
ScoreFrameP2X=520
|
||||
ScoreFrameP2Y=286
|
||||
ScoreP1X=520
|
||||
ScoreP1Y=210
|
||||
ScoreP2X=520
|
||||
ScoreP2Y=286
|
||||
ScoreZoom=0.8
|
||||
MeterFrameP1X=82
|
||||
MeterFrameP1Y=432
|
||||
MeterFrameP2X=238
|
||||
MeterFrameP2Y=432
|
||||
MeterP1X=88
|
||||
MeterP1Y=432
|
||||
MeterP2X=228
|
||||
MeterP2Y=432
|
||||
WheelX=480
|
||||
WheelY=244
|
||||
PlayerOptionsP1X=16
|
||||
PlayerOptionsP1Y=330
|
||||
PlayerOptionsP2X=304
|
||||
PlayerOptionsP2Y=330
|
||||
SongOptionsX=160
|
||||
SongOptionsY=334
|
||||
OptionIconsP1X=30
|
||||
OptionIconsP1Y=58
|
||||
OptionIconsP2X=30
|
||||
OptionIconsP2Y=86
|
||||
BalloonX=392
|
||||
BalloonY=140
|
||||
BPMOnCommand=x,180;y,116;xoffset,-400;bounceend,0.5;xoffset,400
|
||||
BPMOffCommand=bouncebegin,0.5;xoffset,-400
|
||||
StageOnCommand=x,52;y,114;xoffset,-400;bounceend,0.5;xoffset,400
|
||||
StageOffCommand=bouncebegin,0.5;xoffset,-400
|
||||
CDTitleOnCommand=x,252;y,148;xoffset,-400;bounceend,0.5;xoffset,400
|
||||
CDTitleOffCommand=bouncebegin,0.5;xoffset,-400
|
||||
DifficultyFrameP1OnCommand=x,60;y,248;diffuse,1,1,1,0;linear,0.5;diffuse,1,1,1,1
|
||||
DifficultyFrameP1OffCommand=linear,0.5;diffuse,1,1,1,0
|
||||
DifficultyFrameP2OnCommand=x,260;y,248;diffuse,1,1,1,0;linear,0.5;diffuse,1,1,1,1
|
||||
DifficultyFrameP2OffCommand=linear,0.5;diffuse,1,1,1,0
|
||||
DifficultyIconP1OnCommand=x,48;y,248;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
|
||||
DifficultyIconP2OffCommand=linear,0.5;zoomy,0
|
||||
AutogenIconP1OnCommand=x,48;y,248;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
|
||||
AutogenIconP2OffCommand=linear,0.5;zoomy,0
|
||||
RadarOnCommand=x,160;y,334
|
||||
RadarOffCommand=
|
||||
SortIconOnCommand=x,350;y,70;zoomy,0;linear,0.5;zoomy,1
|
||||
SortIconOffCommand=linear,0.5;zoomy,0
|
||||
ScoreFrameP1OnCommand=x,520;y,210;xoffset,400;bounceend,0.5;xoffset,-400
|
||||
ScoreFrameP1OffCommand=bouncebegin,0.5;xoffset,400
|
||||
ScoreFrameP2OnCommand=x,520;y,286;xoffset,400;bounceend,0.5;xoffset,-400
|
||||
ScoreFrameP2OffCommand=bouncebegin,0.5;xoffset,400
|
||||
ScoreP1OnCommand=x,520;y,210;xoffset,400;bounceend,0.5;xoffset,-400
|
||||
ScoreP1OffCommand=bouncebegin,0.5;xoffset,400
|
||||
ScoreP2OnCommand=x,520;y,286;xoffset,400;bounceend,0.5;xoffset,-400
|
||||
ScoreP2OffCommand=bouncebegin,0.5;xoffset,400
|
||||
MeterFrameP1OnCommand=x,82;y,432;diffuse,1,1,1,0;linear,0.5;diffuse,1,1,1,1
|
||||
MeterFrameP1OffCommand=linear,0.5;diffuse,1,1,1,0
|
||||
MeterFrameP2OnCommand=x,238;y,432;diffuse,1,1,1,0;linear,0.5;diffuse,1,1,1,1
|
||||
MeterFrameP2OffCommand=linear,0.5;diffuse,1,1,1,0
|
||||
MeterP1OnCommand=x,88;y,432;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
|
||||
MeterP2OffCommand=linear,0.5;zoomy,0
|
||||
WheelOnCommand=x,480;y,244
|
||||
WheelOffCommand=
|
||||
SongOptionsOnCommand=x,160;y,334;zoom,0.5;diffuse,1,1,1,0;linear,0.5;diffuse,1,1,1,1
|
||||
SongOptionsOffCommand=linear,0.5;diffuse,1,1,1,0
|
||||
SongOptionsExtraCommand=diffuseblink
|
||||
OptionIconsP1OnCommand=x,30;y,58;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
|
||||
OptionIconsP2OffCommand=linear,0.5;zoomy,0
|
||||
BalloonOnCommand=x,392;y,140;zoomy,0;linear,0.5;zoomy,1
|
||||
BalloonOffCommand=linear,0.5;zoomy,0
|
||||
OptionsMessageShowCommand=x,320;y,240;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
|
||||
ScoreConnectedToMusicWheel=1
|
||||
SampleMusicDelay=0.25
|
||||
|
||||
[ScreenEz2SelectMusic]
|
||||
@@ -461,92 +459,283 @@ TickEarlySeconds=0.05
|
||||
[ScreenEvaluation]
|
||||
SongSelectScreen=ScreenSelectMusic
|
||||
EndGameScreen=ScreenNameEntry
|
||||
BannerX=320
|
||||
BannerY=100
|
||||
StageX=320
|
||||
StageY=64
|
||||
DifficultyIconP1X=220
|
||||
DifficultyIconP1Y=128
|
||||
DifficultyIconP2X=420
|
||||
DifficultyIconP2Y=128
|
||||
GradeP1X=94
|
||||
GradeP2X=546
|
||||
GradeY=100
|
||||
PercentBaseP1X=120
|
||||
PercentBaseP2X=572
|
||||
DancePointP1X=170
|
||||
DancePointP2X=622
|
||||
DancePointDisplayWidth=155 //this seems to work well with default
|
||||
PercentBaseY=134
|
||||
JudgeLabelsX=320
|
||||
MarvelousP1X=230
|
||||
MarvelousP2X=410
|
||||
MarvelousOniP1X=230
|
||||
MarvelousOniP2X=410
|
||||
MarvelousY=160
|
||||
PerfectP1X=230
|
||||
PerfectP2X=410
|
||||
PerfectOniP1X=230
|
||||
PerfectOniP2X=410
|
||||
PerfectY=192
|
||||
GreatP1X=230
|
||||
GreatP2X=410
|
||||
GreatOniP1X=230
|
||||
GreatOniP2X=410
|
||||
GreatY=224
|
||||
GoodP1X=230
|
||||
GoodP2X=410
|
||||
GoodOniP1X=230
|
||||
GoodOniP2X=410
|
||||
GoodY=256
|
||||
BooP1X=230
|
||||
BooP2X=410
|
||||
BooOniP1X=230
|
||||
BooOniP2X=410
|
||||
BooY=288
|
||||
MissP1X=230
|
||||
MissP2X=410
|
||||
MissOniP1X=230
|
||||
MissOniP2X=410
|
||||
MissY=320
|
||||
OKP1X=230
|
||||
OKP2X=410
|
||||
OKOniP1X=230
|
||||
OKOniP2X=410
|
||||
OKY=352
|
||||
MaxComboP1X=134
|
||||
MaxComboP2X=578
|
||||
MaxComboOniP1X=1000 // off screen
|
||||
MaxComboOniP2X=1000 // off screen
|
||||
MaxComboY=334
|
||||
ScoreLabelsX=320
|
||||
ScoreNumbersP1X=150
|
||||
ScoreNumbersP2X=490
|
||||
ScoreY=374
|
||||
BonusP1X=96
|
||||
BonusP2X=544
|
||||
BonusY=256
|
||||
BarP1BaseX=176
|
||||
BarP2BaseX=466
|
||||
BarP1Rotation=3.1415
|
||||
BarP2Rotation=0
|
||||
BarStartY=194
|
||||
BarSpacingY=27
|
||||
BarWidth=106
|
||||
BarHeight=16
|
||||
SongsSurvivedP1X=96
|
||||
SongsSurvivedP2X=544
|
||||
SongsSurvivedY=240
|
||||
NewRecordP1X=150
|
||||
NewRecordP2X=490
|
||||
NewRecordY=398
|
||||
TryExtraStageX=320
|
||||
TryExtraStageY=428
|
||||
Banner1OnCommand=x,320;y,100;yoffset,480;sleep,0.0;decelerate,0.3;yoffset,-480
|
||||
Banner1OffCommand=sleep,0.8;accelerate,0.3;yoffset,480
|
||||
Banner2OnCommand=
|
||||
Banner2OffCommand=
|
||||
Banner3OnCommand=
|
||||
Banner3OffCommand=
|
||||
Banner4OnCommand=
|
||||
Banner4OffCommand=
|
||||
Banner5OnCommand=
|
||||
Banner5OffCommand=
|
||||
BannerWidth=248
|
||||
BannerHeight=92
|
||||
StageOnCommand=x,320;y,66;yoffset,480;sleep,0.0;decelerate,0.3;yoffset,-480
|
||||
StageOffCommand=sleep,0.8;accelerate,0.3;yoffset,480
|
||||
DifficultyIconP1OnCommand=x,214;y,70;yoffset,480;sleep,0.0;decelerate,0.3;yoffset,-480
|
||||
DifficultyIconP1OffCommand=sleep,0.8;accelerate,0.3;yoffset,480
|
||||
DifficultyIconP2OnCommand=x,426;y,70;yoffset,480;sleep,0.0;decelerate,0.3;yoffset,-480
|
||||
DifficultyIconP2OffCommand=sleep,0.8;accelerate,0.3;yoffset,480
|
||||
PlayerOptionsP1OnCommand=horizalign,left;vertalign,bottom;x,200;y,140;zoom,0.5;shadowlength,2;yoffset,480;sleep,0.0;decelerate,0.3;yoffset,-480
|
||||
PlayerOptionsP1OffCommand=sleep,0.8;accelerate,0.3;yoffset,480
|
||||
PlayerOptionsP2OnCommand=horizalign,right;vertalign,bottom;x,440;y,140;zoom,0.5;shadowlength,2;yoffset,480;sleep,0.0;decelerate,0.3;yoffset,-480
|
||||
PlayerOptionsP2OffCommand=sleep,0.8;accelerate,0.3;yoffset,480
|
||||
GradeFrameP1OnCommand=x,94;y,100;xoffset,-320;sleep,0.0;decelerate,0.3;xoffset,320
|
||||
GradeFrameP1OffCommand=sleep,0.8;accelerate,0.3;xoffset,-320
|
||||
GradeFrameP2OnCommand=x,546;y,100;xoffset,320;sleep,0.0;decelerate,0.3;xoffset,-320
|
||||
GradeFrameP2OffCommand=sleep,0.8;accelerate,0.3;xoffset,320
|
||||
GradeP1OnCommand=x,94;y,100;glowshift;effectperiod,2;xoffset,-320;sleep,0.0;decelerate,0.3;xoffset,320
|
||||
GradeP1OffCommand=sleep,0.8;accelerate,0.3;xoffset,-320
|
||||
GradeP2OnCommand=x,546;y,100;glowshift;effectperiod,2;xoffset,320;sleep,0.0;decelerate,0.3;xoffset,-320
|
||||
GradeP2OffCommand=sleep,0.8;accelerate,0.3;xoffset,320
|
||||
PercentWholeP1OnCommand=horizalign,right;vertalign,bottom;x,100;y,132;glowshift;effectperiod,2;xoffset,-320;sleep,0.0;decelerate,0.3;xoffset,320
|
||||
PercentWholeP1OffCommand=sleep,0.8;accelerate,0.3;xoffset,-320
|
||||
PercentWholeP2OnCommand=horizalign,right;vertalign,bottom;x,552;y,132;glowshift;effectperiod,2;xoffset,320;sleep,0.0;decelerate,0.3;xoffset,-320
|
||||
PercentWholeP2OffCommand=sleep,0.8;accelerate,0.3;xoffset,320
|
||||
PercentRemainderP1OnCommand=horizalign,left;vertalign,bottom;x,100;y,132;zoom,0.5;glowshift;effectperiod,2;xoffset,-320;sleep,0.0;decelerate,0.3;xoffset,320
|
||||
PercentRemainderP1OffCommand=sleep,0.8;accelerate,0.3;xoffset,-320
|
||||
PercentRemainderP2OnCommand=horizalign,left;vertalign,bottom;x,552;y,132;zoom,0.5;glowshift;effectperiod,2;xoffset,320;sleep,0.0;decelerate,0.3;xoffset,-320
|
||||
PercentRemainderP2OffCommand=sleep,0.8;accelerate,0.3;xoffset,320
|
||||
DancePointsP1OnCommand=x,94;y,100;glowshift;effectperiod,2;xoffset,-320;sleep,0.0;decelerate,0.3;xoffset,320
|
||||
DancePointsP1OffCommand=sleep,0.8;accelerate,0.3;xoffset,-320
|
||||
DancePointsP2OnCommand=x,546;y,100;glowshift;effectperiod,2;xoffset,320;sleep,0.0;decelerate,0.3;xoffset,-320
|
||||
DancePointsP2OffCommand=sleep,0.8;accelerate,0.3;xoffset,320
|
||||
MarvelousLabelOnCommand=x,320;y,160;yoffset,480;sleep,0.1;decelerate,0.3;yoffset,-480
|
||||
MarvelousLabelOffCommand=sleep,0.7;accelerate,0.3;yoffset,480
|
||||
MarvelousNumberP1OnCommand=x,230;y,160;xoffset,-320;sleep,0.1;decelerate,0.3;xoffset,320
|
||||
MarvelousNumberP1OffCommand=sleep,0.7;accelerate,0.3;xoffset,-320
|
||||
MarvelousNumberP2OnCommand=x,410;y,160;xoffset,320;sleep,0.1;decelerate,0.3;xoffset,-320
|
||||
MarvelousNumberP2OffCommand=sleep,0.7;accelerate,0.3;xoffset,320
|
||||
PerfectLabelOnCommand=x,320;y,192;yoffset,480;sleep,0.2;decelerate,0.3;yoffset,-480
|
||||
PerfectLabelOffCommand=sleep,0.6;accelerate,0.3;yoffset,480
|
||||
PerfectNumberP1OnCommand=x,230;y,192;xoffset,-320;sleep,0.2;decelerate,0.3;xoffset,320
|
||||
PerfectNumberP1OffCommand=sleep,0.6;accelerate,0.3;xoffset,-320
|
||||
PerfectNumberP2OnCommand=x,410;y,192;xoffset,320;sleep,0.2;decelerate,0.3;xoffset,-320
|
||||
PerfectNumberP2OffCommand=sleep,0.6;accelerate,0.3;xoffset,320
|
||||
GreatLabelOnCommand=x,320;y,224;yoffset,480;sleep,0.3;decelerate,0.3;yoffset,-480
|
||||
GreatLabelOffCommand=sleep,0.5;accelerate,0.3;yoffset,480
|
||||
GreatNumberP1OnCommand=x,230;y,224;xoffset,-320;sleep,0.3;decelerate,0.3;xoffset,320
|
||||
GreatNumberP1OffCommand=sleep,0.5;accelerate,0.3;xoffset,-320
|
||||
GreatNumberP2OnCommand=x,410;y,224;xoffset,320;sleep,0.3;decelerate,0.3;xoffset,-320
|
||||
GreatNumberP2OffCommand=sleep,0.5;accelerate,0.3;xoffset,320
|
||||
GoodLabelOnCommand=x,320;y,256;yoffset,480;sleep,0.4;decelerate,0.3;yoffset,-480
|
||||
GoodLabelOffCommand=sleep,0.4;accelerate,0.3;yoffset,480
|
||||
GoodNumberP1OnCommand=x,230;y,256;xoffset,-320;sleep,0.4;decelerate,0.3;xoffset,320
|
||||
GoodNumberP1OffCommand=sleep,0.4;accelerate,0.3;xoffset,-320
|
||||
GoodNumberP2OnCommand=x,410;y,256;xoffset,320;sleep,0.4;decelerate,0.3;xoffset,-320
|
||||
GoodNumberP2OffCommand=sleep,0.4;accelerate,0.3;xoffset,320
|
||||
BooLabelOnCommand=x,320;y,288;yoffset,480;sleep,0.5;decelerate,0.3;yoffset,-480
|
||||
BooLabelOffCommand=sleep,0.3;accelerate,0.3;yoffset,480
|
||||
BooNumberP1OnCommand=x,230;y,288;xoffset,-320;sleep,0.5;decelerate,0.3;xoffset,320
|
||||
BooNumberP1OffCommand=sleep,0.3;accelerate,0.3;xoffset,-320
|
||||
BooNumberP2OnCommand=x,410;y,288;xoffset,320;sleep,0.5;decelerate,0.3;xoffset,-320
|
||||
BooNumberP2OffCommand=sleep,0.3;accelerate,0.3;xoffset,320
|
||||
MissLabelOnCommand=x,320;y,320;yoffset,480;sleep,0.6;decelerate,0.3;yoffset,-480
|
||||
MissLabelOffCommand=sleep,0.2;accelerate,0.3;yoffset,480
|
||||
MissNumberP1OnCommand=x,230;y,320;xoffset,-320;sleep,0.6;decelerate,0.3;xoffset,320
|
||||
MissNumberP1OffCommand=sleep,0.2;accelerate,0.3;xoffset,-320
|
||||
MissNumberP2OnCommand=x,410;y,320;xoffset,320;sleep,0.6;decelerate,0.3;xoffset,-320
|
||||
MissNumberP2OffCommand=sleep,0.2;accelerate,0.3;xoffset,320
|
||||
OKLabelOnCommand=x,320;y,352;yoffset,480;sleep,0.7;decelerate,0.3;yoffset,-480
|
||||
OKLabelOffCommand=sleep,0.1;accelerate,0.3;yoffset,480
|
||||
OKNumberP1OnCommand=x,230;y,352;xoffset,-320;sleep,0.7;decelerate,0.3;xoffset,320
|
||||
OKNumberP1OffCommand=sleep,0.1;accelerate,0.3;xoffset,-320
|
||||
OKNumberP2OnCommand=x,410;y,352;xoffset,320;sleep,0.7;decelerate,0.3;xoffset,-320
|
||||
OKNumberP2OffCommand=sleep,0.1;accelerate,0.3;xoffset,320
|
||||
MaxComboLabelOnCommand=diffuse,1,1,1,0
|
||||
MaxComboLabelOffCommand=
|
||||
MaxComboNumberP1OnCommand=x,134;y,334;zoom,1.2;diffuse,1,1,1,0;linear,0.7;diffuse,1,1,0,1
|
||||
MaxComboNumberP1OffCommand=linear,0.7;diffuse,1,1,1,0
|
||||
MaxComboNumberP2OnCommand=x,580;y,334;zoom,1.2;diffuse,1,1,1,0;linear,0.7;diffuse,1,1,0,1
|
||||
MaxComboNumberP2OffCommand=linear,0.7;diffuse,1,1,1,0
|
||||
BonusFrameP1OnCommand=x,96;y,256;diffuse,1,1,1,0;linear,0.7;diffuse,1,1,1,1
|
||||
BonusFrameP1OffCommand=linear,0.7;diffuse,1,1,1,0
|
||||
BonusFrameP2OnCommand=x,544;y,256;diffuse,1,1,1,0;linear,0.7;diffuse,1,1,1,1
|
||||
BonusFrameP2OffCommand=linear,0.7;diffuse,1,1,1,0
|
||||
BarPossible1P1OnCommand=horizalign,left;x,176;y,194;rotationz,3.1415;zoomx,0;sleep,0.2;linear,1.0;zoomx,1
|
||||
BarPossible1P1OffCommand=linear,0.7;diffuse,1,1,1,0
|
||||
BarPossible1P2OnCommand=horizalign,left;x,466;y,194;rotationz,0;zoomx,0;sleep,0.2;linear,1.0;zoomx,1
|
||||
BarPossible1P2OffCommand=linear,0.7;diffuse,1,1,1,0
|
||||
BarPossible2P1OnCommand=horizalign,left;x,176;y,221;rotationz,3.1415;zoomx,0;sleep,0.3;linear,1.0;zoomx,1
|
||||
BarPossible2P1OffCommand=linear,0.7;diffuse,1,1,1,0
|
||||
BarPossible2P2OnCommand=horizalign,left;x,466;y,221;rotationz,0;zoomx,0;sleep,0.3;linear,1.0;zoomx,1
|
||||
BarPossible2P2OffCommand=linear,0.7;diffuse,1,1,1,0
|
||||
BarPossible3P1OnCommand=horizalign,left;x,176;y,248;rotationz,3.1415;zoomx,0;sleep,0.4;linear,1.0;zoomx,1
|
||||
BarPossible3P1OffCommand=linear,0.7;diffuse,1,1,1,0
|
||||
BarPossible3P2OnCommand=horizalign,left;x,466;y,248;rotationz,0;zoomx,0;sleep,0.4;linear,1.0;zoomx,1
|
||||
BarPossible3P2OffCommand=linear,0.7;diffuse,1,1,1,0
|
||||
BarPossible4P1OnCommand=horizalign,left;x,176;y,275;rotationz,3.1415;zoomx,0;sleep,1.0;linear,1.0;zoomx,1
|
||||
BarPossible4P1OffCommand=linear,0.7;diffuse,1,1,1,0
|
||||
BarPossible4P2OnCommand=horizalign,left;x,466;y,275;rotationz,0;zoomx,0;sleep,1.0;linear,1.0;zoomx,1
|
||||
BarPossible4P2OffCommand=linear,0.7;diffuse,1,1,1,0
|
||||
BarPossible5P1OnCommand=horizalign,left;x,176;y,302;rotationz,3.1415;zoomx,0;sleep,0.6;linear,1.0;zoomx,1
|
||||
BarPossible5P1OffCommand=linear,0.7;diffuse,1,1,1,0
|
||||
BarPossible5P2OnCommand=horizalign,left;x,466;y,302;rotationz,0;zoomx,0;sleep,0.6;linear,1.0;zoomx,1
|
||||
BarPossible5P2OffCommand=linear,0.7;diffuse,1,1,1,0
|
||||
BarActual1P1OnCommand=horizalign,left;x,176;y,194;rotationz,3.1415;zoomx,0;sleep,0.7;linear,1.0;zoomx,1
|
||||
BarActual1P1OffCommand=linear,0.7;diffuse,1,1,1,0
|
||||
BarActual1P2OnCommand=horizalign,left;x,466;y,194;rotationz,0;zoomx,0;sleep,0.7;linear,1.0;zoomx,1
|
||||
BarActual1P2OffCommand=linear,0.7;diffuse,1,1,1,0
|
||||
BarActual2P1OnCommand=horizalign,left;x,176;y,221;rotationz,3.1415;zoomx,0;sleep,0.8;linear,1.0;zoomx,1
|
||||
BarActual2P1OffCommand=linear,0.7;diffuse,1,1,1,0
|
||||
BarActual2P2OnCommand=horizalign,left;x,466;y,221;rotationz,0;zoomx,0;sleep,0.8;linear,1.0;zoomx,1
|
||||
BarActual2P2OffCommand=linear,0.7;diffuse,1,1,1,0
|
||||
BarActual3P1OnCommand=horizalign,left;x,176;y,248;rotationz,3.1415;zoomx,0;sleep,0.9;linear,1.0;zoomx,1
|
||||
BarActual3P1OffCommand=linear,0.7;diffuse,1,1,1,0
|
||||
BarActual3P2OnCommand=horizalign,left;x,466;y,248;rotationz,0;zoomx,0;sleep,0.9;linear,1.0;zoomx,1
|
||||
BarActual3P2OffCommand=linear,0.7;diffuse,1,1,1,0
|
||||
BarActual4P1OnCommand=horizalign,left;x,176;y,275;rotationz,3.1415;zoomx,0;sleep,1.0;linear,1.0;zoomx,1
|
||||
BarActual4P1OffCommand=linear,0.7;diffuse,1,1,1,0
|
||||
BarActual4P2OnCommand=horizalign,left;x,466;y,275;rotationz,0;zoomx,0;sleep,1.0;linear,1.0;zoomx,1
|
||||
BarActual4P2OffCommand=linear,0.7;diffuse,1,1,1,0
|
||||
BarActual5P1OnCommand=horizalign,left;x,176;y,302;rotationz,3.1415;zoomx,0;sleep,1.1;linear,1.0;zoomx,1
|
||||
BarActual5P1OffCommand=linear,0.7;diffuse,1,1,1,0
|
||||
BarActual5P2OnCommand=horizalign,left;x,466;y,302;rotationz,0;zoomx,0;sleep,1.1;linear,1.0;zoomx,1
|
||||
BarActual5P2OffCommand=linear,0.7;diffuse,1,1,1,0
|
||||
BarActualMaxCommand=glowshift;effectperiod,0.5
|
||||
SongsSurvivedP1OnCommand=x,96;y,240;diffuse,1,1,1,0;linear,0.7;diffuse,1,1,1,1
|
||||
SongsSurvivedP1OffCommand=linear,0.7;diffuse,1,1,1,0
|
||||
SongsSurvivedP2OnCommand=x,544;y,240;diffuse,1,1,1,0;linear,0.7;diffuse,1,1,1,1
|
||||
SongsSurvivedP2OffCommand=linear,0.7;diffuse,1,1,1,0
|
||||
ScoreLabelOnCommand=x,320;y,380;yoffset,480;sleep,0.8;decelerate,0.3;yoffset,-480
|
||||
ScoreLabelOffCommand=sleep,0.0;accelerate,0.3;yoffset,480
|
||||
ScoreNumberP1OnCommand=x,160;y,380;xoffset,-320;sleep,0.8;decelerate,0.3;xoffset,320
|
||||
ScoreNumberP1OffCommand=sleep,0.0;accelerate,0.3;xoffset,-320
|
||||
ScoreNumberP2OnCommand=x,480;y,380;xoffset,320;sleep,0.8;decelerate,0.3;xoffset,-320
|
||||
ScoreNumberP2OffCommand=sleep,0.0;accelerate,0.3;xoffset,320
|
||||
TimeLabelOnCommand=x,320;y,380;yoffset,480;sleep,0.8;decelerate,0.3;yoffset,-480
|
||||
TimeLabelOffCommand=sleep,0.0;accelerate,0.3;yoffset,480
|
||||
TimeNumberP1OnCommand=x,160;y,380;xoffset,-320;sleep,0.8;decelerate,0.3;xoffset,320
|
||||
TimeNumberP1OffCommand=sleep,0.0;accelerate,0.3;xoffset,-320
|
||||
TimeNumberP2OnCommand=x,480;y,380;xoffset,320;sleep,0.8;decelerate,0.3;xoffset,-320
|
||||
TimeNumberP2OffCommand=sleep,0.0;accelerate,0.3;xoffset,320
|
||||
NewRecordP1OnCommand=x,150;y,398;diffuse,1,1,1,0;linear,0.7;diffuse,1,1,1,1;glowshift
|
||||
NewRecordP1OffCommand=linear,0.7;diffuse,1,1,1,0
|
||||
NewRecordP2OnCommand=x,490;y,398;diffuse,1,1,1,0;linear,0.7;diffuse,1,1,1,1;glowshift
|
||||
NewRecordP2OffCommand=linear,0.7;diffuse,1,1,1,0
|
||||
TryExtraStageOnCommand=x,320;y,428;diffuse,1,1,1,0;linear,0.7;diffuse,1,1,1,1;glowshift
|
||||
TryExtraStageOffCommand=linear,0.7;diffuse,1,1,1,0
|
||||
SpinGrades=1
|
||||
|
||||
[ScreenEvaluationStage]
|
||||
PercentWholeP1OnCommand=diffuse,1,1,1,0
|
||||
PercentWholeP1OffCommand=
|
||||
PercentWholeP2OnCommand=diffuse,1,1,1,0
|
||||
PercentWholeP2OffCommand=
|
||||
PercentRemainderP1OnCommand=diffuse,1,1,1,0
|
||||
PercentRemainderP1OffCommand=
|
||||
PercentRemainderP2OnCommand=diffuse,1,1,1,0
|
||||
PercentRemainderP2OffCommand=
|
||||
DancePointsP1OnCommand=diffuse,1,1,1,0
|
||||
DancePointsP1OffCommand=
|
||||
DancePointsP2OnCommand=diffuse,1,1,1,0
|
||||
DancePointsP2OffCommand=
|
||||
SongsSurvivedP1OnCommand=diffuse,1,1,1,0
|
||||
SongsSurvivedP1OffCommand=
|
||||
SongsSurvivedP2OnCommand=diffuse,1,1,1,0
|
||||
SongsSurvivedP2OffCommand=
|
||||
TimeLabelOnCommand=diffuse,1,1,1,0
|
||||
TimeLabelOffCommand=
|
||||
TimeNumberP1OnCommand=diffuse,1,1,1,0
|
||||
TimeNumberP1OffCommand=
|
||||
TimeNumberP2OnCommand=diffuse,1,1,1,0
|
||||
TimeNumberP2OffCommand=
|
||||
HelpText=Press START to continue
|
||||
TimerSeconds=20
|
||||
|
||||
[ScreenEvaluationSummary]
|
||||
// small banners
|
||||
Banner1OnCommand=x,260;y,80;zoom,0.5
|
||||
Banner1OffCommand=
|
||||
Banner2OnCommand=x,290;y,90;zoom,0.5
|
||||
Banner2OffCommand=
|
||||
Banner3OnCommand=x,320;y,100;zoom,0.5
|
||||
Banner3OffCommand=
|
||||
Banner4OnCommand=x,350;y,110;zoom,0.5
|
||||
Banner4OffCommand=
|
||||
Banner5OnCommand=x,380;y,120;zoom,0.5
|
||||
Banner5OffCommand=
|
||||
StageOnCommand=diffuse,1,1,1,0
|
||||
StageOffCommand=
|
||||
DifficultyIconP1OnCommand=diffuse,1,1,1,0
|
||||
DifficultyIconP1OffCommand=
|
||||
DifficultyIconP2OnCommand=diffuse,1,1,1,0
|
||||
DifficultyIconP2OffCommand=
|
||||
PlayerOptionsP1OnCommand=diffuse,1,1,1,0
|
||||
PlayerOptionsP1OffCommand=
|
||||
PlayerOptionsP2OnCommand=diffuse,1,1,1,0
|
||||
PlayerOptionsP2OffCommand=
|
||||
PercentWholeP1OnCommand=diffuse,1,1,1,0
|
||||
PercentWholeP1OffCommand=
|
||||
PercentWholeP2OnCommand=diffuse,1,1,1,0
|
||||
PercentWholeP2OffCommand=
|
||||
PercentRemainderP1OnCommand=diffuse,1,1,1,0
|
||||
PercentRemainderP1OffCommand=
|
||||
PercentRemainderP2OnCommand=diffuse,1,1,1,0
|
||||
PercentRemainderP2OffCommand=
|
||||
DancePointsP1OnCommand=diffuse,1,1,1,0
|
||||
DancePointsP1OffCommand=
|
||||
DancePointsP2OnCommand=diffuse,1,1,1,0
|
||||
DancePointsP2OffCommand=
|
||||
TimeLabelOnCommand=diffuse,1,1,1,0
|
||||
TimeLabelOffCommand=
|
||||
TimeNumberP1OnCommand=diffuse,1,1,1,0
|
||||
TimeNumberP1OffCommand=
|
||||
TimeNumberP2OnCommand=diffuse,1,1,1,0
|
||||
TimeNumberP2OffCommand=
|
||||
HelpText=Press START to continue
|
||||
TimerSeconds=40
|
||||
|
||||
[ScreenEvaluationCourse]
|
||||
BarPossible1P1OnCommand=diffuse,1,1,1,0
|
||||
BarPossible1P1OffCommand=
|
||||
BarPossible1P2OnCommand=diffuse,1,1,1,0
|
||||
BarPossible1P2OffCommand=
|
||||
BarPossible2P1OnCommand=diffuse,1,1,1,0
|
||||
BarPossible2P1OffCommand=
|
||||
BarPossible2P2OnCommand=diffuse,1,1,1,0
|
||||
BarPossible2P2OffCommand=
|
||||
BarPossible3P1OnCommand=diffuse,1,1,1,0
|
||||
BarPossible3P1OffCommand=
|
||||
BarPossible3P2OnCommand=diffuse,1,1,1,0
|
||||
BarPossible3P2OffCommand=
|
||||
BarPossible4P1OnCommand=diffuse,1,1,1,0
|
||||
BarPossible4P1OffCommand=
|
||||
BarPossible4P2OnCommand=diffuse,1,1,1,0
|
||||
BarPossible4P2OffCommand=
|
||||
BarPossible5P1OnCommand=diffuse,1,1,1,0
|
||||
BarPossible5P1OffCommand=
|
||||
BarPossible5P2OnCommand=diffuse,1,1,1,0
|
||||
BarPossible5P2OffCommand=
|
||||
BarActual1P1OnCommand=diffuse,1,1,1,0
|
||||
BarActual1P1OffCommand=
|
||||
BarActual1P2OnCommand=diffuse,1,1,1,0
|
||||
BarActual1P2OffCommand=
|
||||
BarActual2P1OnCommand=diffuse,1,1,1,0
|
||||
BarActual2P1OffCommand=
|
||||
BarActual2P2OnCommand=diffuse,1,1,1,0
|
||||
BarActual2P2OffCommand=
|
||||
BarActual3P1OnCommand=diffuse,1,1,1,0
|
||||
BarActual3P1OffCommand=
|
||||
BarActual3P2OnCommand=diffuse,1,1,1,0
|
||||
BarActual3P2OffCommand=
|
||||
BarActual4P1OnCommand=diffuse,1,1,1,0
|
||||
BarActual4P1OffCommand=
|
||||
BarActual4P2OnCommand=diffuse,1,1,1,0
|
||||
BarActual4P2OffCommand=
|
||||
BarActual5P1OnCommand=diffuse,1,1,1,0
|
||||
BarActual5P1OffCommand=
|
||||
BarActual5P2OnCommand=diffuse,1,1,1,0
|
||||
BarActual5P2OffCommand=
|
||||
ScoreLabelOnCommand=diffuse,1,1,1,0
|
||||
ScoreLabelOffCommand=
|
||||
ScoreNumberP1OnCommand=diffuse,1,1,1,0
|
||||
ScoreNumberP1OffCommand=
|
||||
ScoreNumberP2OnCommand=diffuse,1,1,1,0
|
||||
ScoreNumberP2OffCommand=
|
||||
HelpText=Press START to continue
|
||||
TimerSeconds=40
|
||||
SpinGrades=1
|
||||
GradesGlowColor1=1,1,1,0.0
|
||||
GradesGlowColor2=1,1,1,0.3
|
||||
|
||||
[ScreenMusicScroll]
|
||||
ScrollDelay=0.2
|
||||
@@ -629,9 +818,9 @@ FooterOnCommand=x,320;y,464
|
||||
FooterOffCommand=
|
||||
HelpOnCommand=x,320;y,456;zoom,0.5;zoomy,0;linear,0.5;zoomy,0.5
|
||||
HelpOffCommand=linear,0.5;zoomy,0
|
||||
StyleIconOnCommand=x,460;y,22;xoffset,640;spring,0.5;xoffset,-640
|
||||
StyleIconOnCommand=x,440;y,26;xoffset,640;spring,0.5;xoffset,-640
|
||||
StyleIconOffCommand=bouncebegin,0.5;xoffset,640;
|
||||
TimerOnCommand=x,588;y,22;xoffset,640;spring,0.5;xoffset,-640
|
||||
TimerOnCommand=x,590;y,22;xoffset,640;spring,0.5;xoffset,-640
|
||||
TimerOffCommand=bouncebegin,0.5;xoffset,640;
|
||||
|
||||
[ScreenOptions]
|
||||
@@ -710,7 +899,7 @@ RightEdge=620
|
||||
BottomEdge=460
|
||||
|
||||
[Judgment]
|
||||
MarvelousCommand=shadowlength,4;diffuse,1,1,1,1;zoom,1.3;linear,0.05;zoom,1;sleep,0.8;linear,0;diffuse,1,1,1,0,glowblink,effectperiod,0.05;effectcolor1,1,1,1,0;effectcolor2,1,1,1,0.5
|
||||
MarvelousCommand=shadowlength,4;diffuse,1,1,1,1;zoom,1.3;linear,0.05;zoom,1;sleep,0.8;linear,0;diffuse,1,1,1,0;glowblink;effectperiod,0.05;effectcolor1,1,1,1,0;effectcolor2,1,1,1,0.5
|
||||
PerfectCommand=shadowlength,4;diffuse,1,1,1,1;zoom,1.3;linear,0.05;zoom,1;sleep,0.8;linear,0;diffuse,1,1,1,0
|
||||
GreatCommand=shadowlength,4;diffuse,1,1,1,1;zoom,1.2;linear,0.05;zoom,1;sleep,0.8;linear,0;diffuse,1,1,1,0
|
||||
GoodCommand=shadowlength,4;diffuse,1,1,1,1;zoom,1.1;linear,0.05;zoom,1;sleep,0.8;linear,0;diffuse,1,1,1,0
|
||||
|
||||
+84
-53
@@ -371,38 +371,50 @@ void Actor::StretchTo( const RectF &r )
|
||||
|
||||
void Actor::SetEffectDiffuseBlink( float fEffectPeriodSeconds, RageColor c1, RageColor c2 )
|
||||
{
|
||||
m_Effect = diffuse_blink;
|
||||
if( m_Effect != diffuse_blink )
|
||||
{
|
||||
m_Effect = diffuse_blink;
|
||||
m_fEffectPeriodSeconds = fEffectPeriodSeconds;
|
||||
m_fSecsIntoEffect = 0;
|
||||
}
|
||||
m_effectColor1 = c1;
|
||||
m_effectColor2 = c2;
|
||||
m_fEffectPeriodSeconds = fEffectPeriodSeconds;
|
||||
m_fSecsIntoEffect = 0;
|
||||
}
|
||||
|
||||
void Actor::SetEffectDiffuseShift( float fEffectPeriodSeconds, RageColor c1, RageColor c2 )
|
||||
{
|
||||
m_Effect = diffuse_shift;
|
||||
if( m_Effect != diffuse_shift )
|
||||
{
|
||||
m_Effect = diffuse_shift;
|
||||
m_fEffectPeriodSeconds = fEffectPeriodSeconds;
|
||||
m_fSecsIntoEffect = 0;
|
||||
}
|
||||
m_effectColor1 = c1;
|
||||
m_effectColor2 = c2;
|
||||
m_fEffectPeriodSeconds = fEffectPeriodSeconds;
|
||||
m_fSecsIntoEffect = 0;
|
||||
}
|
||||
|
||||
void Actor::SetEffectGlowBlink( float fEffectPeriodSeconds, RageColor c1, RageColor c2 )
|
||||
{
|
||||
m_Effect = glow_blink;
|
||||
if( m_Effect != glow_blink )
|
||||
{
|
||||
m_Effect = glow_blink;
|
||||
m_fEffectPeriodSeconds = fEffectPeriodSeconds;
|
||||
m_fSecsIntoEffect = 0;
|
||||
}
|
||||
m_effectColor1 = c1;
|
||||
m_effectColor2 = c2;
|
||||
m_fEffectPeriodSeconds = fEffectPeriodSeconds;
|
||||
m_fSecsIntoEffect = 0;
|
||||
}
|
||||
|
||||
void Actor::SetEffectGlowShift( float fEffectPeriodSeconds, RageColor c1, RageColor c2 )
|
||||
{
|
||||
m_Effect = glow_shift;
|
||||
if( m_Effect != glow_shift )
|
||||
{
|
||||
m_Effect = glow_shift;
|
||||
m_fEffectPeriodSeconds = fEffectPeriodSeconds;
|
||||
m_fSecsIntoEffect = 0;
|
||||
}
|
||||
m_effectColor1 = c1;
|
||||
m_effectColor2 = c2;
|
||||
m_fEffectPeriodSeconds = fEffectPeriodSeconds;
|
||||
m_fSecsIntoEffect = 0;
|
||||
}
|
||||
|
||||
void Actor::SetEffectRainbow( float fEffectPeriodSeconds )
|
||||
@@ -552,9 +564,18 @@ void Actor::Fade( float fSleepSeconds, CString sFadeString, float fFadeSeconds,
|
||||
}
|
||||
}
|
||||
|
||||
CString GetParam( const CStringArray& sParams, int iIndex, int& iMaxIndexAccessed )
|
||||
{
|
||||
iMaxIndexAccessed = max( iIndex, iMaxIndexAccessed );
|
||||
if( iIndex < sParams.size() )
|
||||
return sParams[iIndex];
|
||||
else
|
||||
return "";
|
||||
}
|
||||
|
||||
void Actor::Command( CString sCommandString )
|
||||
{
|
||||
// OPTIMIZATION OPPORTUNITY: sCommandString could be parsed much more efficiently.
|
||||
// OPTIMIZATION OPPORTUNITY: sCommandString could be parsed more efficiently.
|
||||
|
||||
CStringArray asCommands;
|
||||
split( sCommandString, ";", asCommands, true );
|
||||
@@ -563,49 +584,49 @@ void Actor::Command( CString sCommandString )
|
||||
{
|
||||
CStringArray asTokens;
|
||||
split( asCommands[c], ",", asTokens, true );
|
||||
asTokens.resize(5); // make this big so we don't go out of bounds below
|
||||
// if the user doesn't provide enough parameters, tough.
|
||||
|
||||
CString& sName = asTokens[0];
|
||||
sName.MakeLower();
|
||||
int iMaxIndexAccessed = 0;
|
||||
|
||||
#define sParam(i) (asTokens[(unsigned)i+1])
|
||||
#define sParam(i) (GetParam(asTokens,i,iMaxIndexAccessed))
|
||||
#define fParam(i) ((float)atof(sParam(i)))
|
||||
#define iParam(i) (atoi(sParam(i)))
|
||||
#define bParam(i) (iParam(i)!=0)
|
||||
|
||||
CString& sName = asTokens[0];
|
||||
sName.MakeLower();
|
||||
|
||||
// Act on command
|
||||
if ( sName=="sleep" ) BeginTweening( fParam(0), TWEEN_LINEAR );
|
||||
else if( sName=="linear" ) BeginTweening( fParam(0), TWEEN_LINEAR );
|
||||
else if( sName=="accelerate" ) BeginTweening( fParam(0), TWEEN_ACCELERATE );
|
||||
else if( sName=="decelerate" ) BeginTweening( fParam(0), TWEEN_DECELERATE );
|
||||
else if( sName=="bouncebegin" ) BeginTweening( fParam(0), TWEEN_BOUNCE_BEGIN );
|
||||
else if( sName=="bounceend" ) BeginTweening( fParam(0), TWEEN_BOUNCE_END );
|
||||
else if( sName=="spring" ) BeginTweening( fParam(0), TWEEN_SPRING );
|
||||
if ( sName=="sleep" ) BeginTweening( fParam(1), TWEEN_LINEAR );
|
||||
else if( sName=="linear" ) BeginTweening( fParam(1), TWEEN_LINEAR );
|
||||
else if( sName=="accelerate" ) BeginTweening( fParam(1), TWEEN_ACCELERATE );
|
||||
else if( sName=="decelerate" ) BeginTweening( fParam(1), TWEEN_DECELERATE );
|
||||
else if( sName=="bouncebegin" ) BeginTweening( fParam(1), TWEEN_BOUNCE_BEGIN );
|
||||
else if( sName=="bounceend" ) BeginTweening( fParam(1), TWEEN_BOUNCE_END );
|
||||
else if( sName=="spring" ) BeginTweening( fParam(1), TWEEN_SPRING );
|
||||
else if( sName=="stoptweening" ) { StopTweening(); BeginTweening( 0.0001f, TWEEN_LINEAR ); }
|
||||
else if( sName=="x" ) SetX( fParam(0) );
|
||||
else if( sName=="y" ) SetY( fParam(0) );
|
||||
else if( sName=="xoffset" ) SetX( GetX()+fParam(0) );
|
||||
else if( sName=="yoffset" ) SetY( GetY()+fParam(0) );
|
||||
else if( sName=="zoom" ) SetZoom( fParam(0) );
|
||||
else if( sName=="zoomx" ) SetZoomX( fParam(0) );
|
||||
else if( sName=="zoomy" ) SetZoomY( fParam(0) );
|
||||
else if( sName=="zoomtowidth" ) ZoomToWidth( fParam(0) );
|
||||
else if( sName=="zoomtoheight" ) ZoomToHeight( fParam(0) );
|
||||
else if( sName=="diffuse" ) SetDiffuse( RageColor(fParam(0),fParam(1),fParam(2),fParam(3)) );
|
||||
else if( sName=="diffuseleftedge" ) SetDiffuseLeftEdge( RageColor(fParam(0),fParam(1),fParam(2),fParam(3)) );
|
||||
else if( sName=="diffuserightedge" ) SetDiffuseRightEdge( RageColor(fParam(0),fParam(1),fParam(2),fParam(3)) );
|
||||
else if( sName=="diffusetopedge" ) SetDiffuseTopEdge( RageColor(fParam(0),fParam(1),fParam(2),fParam(3)) );
|
||||
else if( sName=="diffusebottomedge" ) SetDiffuseBottomEdge( RageColor(fParam(0),fParam(1),fParam(2),fParam(3)) );
|
||||
else if( sName=="x" ) SetX( fParam(1) );
|
||||
else if( sName=="y" ) SetY( fParam(1) );
|
||||
else if( sName=="xoffset" ) SetX( GetX()+fParam(1) );
|
||||
else if( sName=="yoffset" ) SetY( GetY()+fParam(1) );
|
||||
else if( sName=="zoom" ) SetZoom( fParam(1) );
|
||||
else if( sName=="zoomx" ) SetZoomX( fParam(1) );
|
||||
else if( sName=="zoomy" ) SetZoomY( fParam(1) );
|
||||
else if( sName=="zoomtowidth" ) ZoomToWidth( fParam(1) );
|
||||
else if( sName=="zoomtoheight" ) ZoomToHeight( fParam(1) );
|
||||
else if( sName=="diffuse" ) SetDiffuse( RageColor(fParam(1),fParam(2),fParam(3),fParam(4)) );
|
||||
else if( sName=="diffuseleftedge" ) SetDiffuseLeftEdge( RageColor(fParam(1),fParam(2),fParam(3),fParam(4)) );
|
||||
else if( sName=="diffuserightedge" ) SetDiffuseRightEdge( RageColor(fParam(1),fParam(2),fParam(3),fParam(4)) );
|
||||
else if( sName=="diffusetopedge" ) SetDiffuseTopEdge( RageColor(fParam(1),fParam(2),fParam(3),fParam(4)) );
|
||||
else if( sName=="diffusebottomedge" ) SetDiffuseBottomEdge( RageColor(fParam(1),fParam(2),fParam(3),fParam(4)) );
|
||||
/* Add left/right/top/bottom for alpha if needed. */
|
||||
else if( sName=="diffusealpha" ) { for(int i = 0; i < 4; ++i) { RageColor c = GetDiffuses( i ); c.a = fParam(0); SetDiffuses( i, c ); } }
|
||||
else if( sName=="glow" ) SetGlow( RageColor(fParam(0),fParam(1),fParam(2),fParam(3)) );
|
||||
else if( sName=="rotationx" ) SetRotationX( fParam(0) );
|
||||
else if( sName=="rotationy" ) SetRotationY( fParam(0) );
|
||||
else if( sName=="rotationz" ) SetRotationZ( fParam(0) );
|
||||
else if( sName=="shadowlength" ) SetShadowLength( fParam(0) );
|
||||
else if( sName=="horizalign" ) SetHorizAlign( sParam(0) );
|
||||
else if( sName=="vertalign" ) SetVertAlign( sParam(0) );
|
||||
else if( sName=="glow" ) SetGlow( RageColor(fParam(1),fParam(2),fParam(3),fParam(4)) );
|
||||
else if( sName=="rotationx" ) SetRotationX( fParam(1) );
|
||||
else if( sName=="rotationy" ) SetRotationY( fParam(1) );
|
||||
else if( sName=="rotationz" ) SetRotationZ( fParam(1) );
|
||||
else if( sName=="shadowlength" ) SetShadowLength( fParam(1) );
|
||||
else if( sName=="horizalign" ) SetHorizAlign( sParam(1) );
|
||||
else if( sName=="vertalign" ) SetVertAlign( sParam(1) );
|
||||
else if( sName=="diffuseblink" ) SetEffectDiffuseBlink();
|
||||
else if( sName=="diffuseshift" ) SetEffectDiffuseShift();
|
||||
else if( sName=="glowblink" ) SetEffectGlowBlink();
|
||||
@@ -618,13 +639,13 @@ void Actor::Command( CString sCommandString )
|
||||
else if( sName=="spin" ) SetEffectSpin();
|
||||
else if( sName=="vibrate" ) SetEffectVibrate();
|
||||
else if( sName=="stopeffect" ) SetEffectNone();
|
||||
else if( sName=="effectcolor1" ) SetEffectColor1( RageColor(fParam(0),fParam(1),fParam(2),fParam(3)) );
|
||||
else if( sName=="effectcolor2" ) SetEffectColor2( RageColor(fParam(0),fParam(1),fParam(2),fParam(3)) );
|
||||
else if( sName=="effectperiod" ) SetEffectPeriod( fParam(0) );
|
||||
else if( sName=="effectmagnitude" ) SetEffectMagnitude( RageVector3(fParam(0),fParam(1),fParam(2)) );
|
||||
else if( sName=="animate" ) EnableAnimation( bParam(0) );
|
||||
else if( sName=="texturewrapping" ) EnableTextureWrapping( bParam(0) );
|
||||
else if( sName=="additiveblend" ) EnableAdditiveBlend( bParam(0) );
|
||||
else if( sName=="effectcolor1" ) SetEffectColor1( RageColor(fParam(1),fParam(2),fParam(3),fParam(4)) );
|
||||
else if( sName=="effectcolor2" ) SetEffectColor2( RageColor(fParam(1),fParam(2),fParam(3),fParam(4)) );
|
||||
else if( sName=="effectperiod" ) SetEffectPeriod( fParam(1) );
|
||||
else if( sName=="effectmagnitude" ) SetEffectMagnitude( RageVector3(fParam(1),fParam(2),fParam(3)) );
|
||||
else if( sName=="animate" ) EnableAnimation( bParam(1) );
|
||||
else if( sName=="texturewrapping" ) EnableTextureWrapping( bParam(1) );
|
||||
else if( sName=="additiveblend" ) EnableAdditiveBlend( bParam(1) );
|
||||
else
|
||||
{
|
||||
CString sError = ssprintf( "Unrecognized command name '%s' in command string '%s'.", sName.GetString(), sCommandString.GetString() );
|
||||
@@ -633,7 +654,17 @@ void Actor::Command( CString sCommandString )
|
||||
if( DISPLAY->IsWindowed() )
|
||||
MessageBox(NULL, sError, "Actor::Command", MB_OK);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
if( iMaxIndexAccessed != (int)asTokens.size()-1 )
|
||||
{
|
||||
CString sError = ssprintf( "Wrong number of parameters in command '%s'. Expected %d but there are %d.", join(",",asTokens).GetString(), iMaxIndexAccessed+1, (int)asTokens.size() );
|
||||
LOG->Warn( sError );
|
||||
#if defined(WIN32) // XXX arch?
|
||||
if( DISPLAY->IsWindowed() )
|
||||
MessageBox(NULL, sError, "Actor::Command", MB_OK);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -99,8 +99,8 @@ public:
|
||||
virtual float GetUnzoomedHeight() { return m_size.y; }
|
||||
virtual float GetZoomedWidth() { return m_size.x * DestTweenState().scale.x; }
|
||||
virtual float GetZoomedHeight() { return m_size.y * DestTweenState().scale.y; }
|
||||
// virtual void SetWidth( float width ) { DestTweenState().size.x = width; }
|
||||
// virtual void SetHeight( float height ) { DestTweenState().size.y = height; }
|
||||
virtual void SetWidth( float width ) { m_size.x = width; }
|
||||
virtual void SetHeight( float height ) { m_size.y = height; }
|
||||
|
||||
virtual float GetZoom() { return DestTweenState().scale.x; } // not accurate in some cases
|
||||
virtual float GetZoomX() { return DestTweenState().scale.x; }
|
||||
|
||||
@@ -1173,7 +1173,8 @@ void MusicWheel::Move(int n)
|
||||
{
|
||||
if(n)
|
||||
{
|
||||
m_fLockedWheelVelocity = LOCKED_INITIAL_VELOCITY;
|
||||
int iSign = n/abs(n);
|
||||
m_fLockedWheelVelocity = iSign*LOCKED_INITIAL_VELOCITY;
|
||||
m_soundLocked.Play();
|
||||
}
|
||||
return;
|
||||
|
||||
@@ -279,8 +279,9 @@ Screen* Screen::Create( CString sClassName )
|
||||
else if( 0==stricmp(sClassName, "ScreenCaution") ) ret = new ScreenCaution;
|
||||
else if( 0==stricmp(sClassName, "ScreenEdit") ) ret = new ScreenEdit;
|
||||
else if( 0==stricmp(sClassName, "ScreenEditMenu") ) ret = new ScreenEditMenu;
|
||||
else if( 0==stricmp(sClassName, "ScreenEvaluation") ) ret = new ScreenEvaluation;
|
||||
else if( 0==stricmp(sClassName, "ScreenFinalEvaluation") ) ret = new ScreenFinalEvaluation;
|
||||
else if( 0==stricmp(sClassName, "ScreenEvaluationStage") ) ret = new ScreenEvaluationStage;
|
||||
else if( 0==stricmp(sClassName, "ScreenEvaluationSummary") ) ret = new ScreenEvaluationSummary;
|
||||
else if( 0==stricmp(sClassName, "ScreenEvaluationCourse") ) ret = new ScreenEvaluationCourse;
|
||||
else if( 0==stricmp(sClassName, "ScreenEz2SelectPlayer") ) ret = new ScreenEz2SelectPlayer;
|
||||
else if( 0==stricmp(sClassName, "ScreenSelectMode") ) ret = new ScreenSelectMode;
|
||||
else if( 0==stricmp(sClassName, "ScreenGameOver") ) ret = new ScreenGameOver;
|
||||
|
||||
+355
-398
@@ -25,87 +25,58 @@
|
||||
#include "ThemeManager.h"
|
||||
#include "RageSoundManager.h"
|
||||
|
||||
// If a metric isn't present in the category m_sClassName, fall back to "ScreenEvaluation"
|
||||
#define GET_THEME_METRIC_FALLBACK(metric) (THEME->HasMetric(m_sClassName,metric)?THEME->GetMetric(m_sClassName,metric):THEME->GetMetric("ScreenEvaluation",metric))
|
||||
#define GET_THEME_ELEMENT_FALLBACK(cat,suffix) (THEME->GetPathToOptional(cat,m_sClassName+(suffix))!="" ? THEME->GetPathTo(cat,m_sClassName+(suffix)) : THEME->GetPathTo(cat,CString("ScreenEvaluation")+(suffix)))
|
||||
|
||||
#define SONGSEL_SCREEN THEME->GetMetric("ScreenEvaluation","SongSelectScreen")
|
||||
#define ENDGAME_SCREEN THEME->GetMetric("ScreenEvaluation","EndGameScreen")
|
||||
#define BANNER_X THEME->GetMetricF("ScreenEvaluation","BannerX")
|
||||
#define BANNER_Y THEME->GetMetricF("ScreenEvaluation","BannerY")
|
||||
#define STAGE_X THEME->GetMetricF("ScreenEvaluation","StageX")
|
||||
#define STAGE_Y THEME->GetMetricF("ScreenEvaluation","StageY")
|
||||
#define DIFFICULTY_ICON_X( p ) THEME->GetMetricF("ScreenEvaluation",ssprintf("DifficultyIconP%dX",p+1))
|
||||
#define DIFFICULTY_ICON_Y( p ) THEME->GetMetricF("ScreenEvaluation",ssprintf("DifficultyIconP%dY",p+1))
|
||||
#define GRADE_X( p ) THEME->GetMetricF("ScreenEvaluation",ssprintf("GradeP%dX",p+1))
|
||||
#define GRADE_Y THEME->GetMetricF("ScreenEvaluation","GradeY")
|
||||
#define PERCENT_BASE_X( p ) THEME->GetMetricF("ScreenEvaluation",ssprintf("PercentBaseP%dX",p+1))
|
||||
#define DANCE_POINT_X( p ) THEME->GetMetricF("ScreenEvaluation",ssprintf("DancePointP%dX",p+1))
|
||||
#define DANCE_POINT_WIDTH THEME->GetMetricF("ScreenEvaluation","DancePointDisplayWidth")
|
||||
#define PERCENT_BASE_Y THEME->GetMetricF("ScreenEvaluation","PercentBaseY")
|
||||
#define JUDGE_LABELS_X THEME->GetMetricF("ScreenEvaluation","JudgeLabelsX")
|
||||
#define MARVELOUS_X(o,p) THEME->GetMetricF("ScreenEvaluation",ssprintf("Marvelous%sP%dX",o?"Oni":"",p+1))
|
||||
#define MARVELOUS_Y THEME->GetMetricF("ScreenEvaluation","MarvelousY")
|
||||
#define PERFECT_X(o,p) THEME->GetMetricF("ScreenEvaluation",ssprintf("Perfect%sP%dX",o?"Oni":"",p+1))
|
||||
#define PERFECT_Y THEME->GetMetricF("ScreenEvaluation","PerfectY")
|
||||
#define GREAT_X(o,p) THEME->GetMetricF("ScreenEvaluation",ssprintf("Great%sP%dX",o?"Oni":"",p+1))
|
||||
#define GREAT_Y THEME->GetMetricF("ScreenEvaluation","GreatY")
|
||||
#define GOOD_X(o,p) THEME->GetMetricF("ScreenEvaluation",ssprintf("Good%sP%dX",o?"Oni":"",p+1))
|
||||
#define GOOD_Y THEME->GetMetricF("ScreenEvaluation","GoodY")
|
||||
#define BOO_X(o,p) THEME->GetMetricF("ScreenEvaluation",ssprintf("Boo%sP%dX",o?"Oni":"",p+1))
|
||||
#define BOO_Y THEME->GetMetricF("ScreenEvaluation","BooY")
|
||||
#define MISS_X(o,p) THEME->GetMetricF("ScreenEvaluation",ssprintf("Miss%sP%dX",o?"Oni":"",p+1))
|
||||
#define MISS_Y THEME->GetMetricF("ScreenEvaluation","MissY")
|
||||
#define OK_X(o,p) THEME->GetMetricF("ScreenEvaluation",ssprintf("OK%sP%dX",o?"Oni":"",p+1))
|
||||
#define OK_Y THEME->GetMetricF("ScreenEvaluation","OKY")
|
||||
#define MAX_COMBO_X(o,p) THEME->GetMetricF("ScreenEvaluation",ssprintf("MaxCombo%sP%dX",o?"Oni":"",p+1))
|
||||
#define MAX_COMBO_Y THEME->GetMetricF("ScreenEvaluation","MaxComboY")
|
||||
#define SCORE_LABELS_X THEME->GetMetricF("ScreenEvaluation","ScoreLabelsX")
|
||||
#define SCORE_NUMBERS_X( p ) THEME->GetMetricF("ScreenEvaluation",ssprintf("ScoreNumbersP%dX",p+1))
|
||||
#define SCORE_Y THEME->GetMetricF("ScreenEvaluation","ScoreY")
|
||||
#define BONUS_X( p ) THEME->GetMetricF("ScreenEvaluation",ssprintf("BonusP%dX",p+1))
|
||||
#define BONUS_Y THEME->GetMetricF("ScreenEvaluation","BonusY")
|
||||
#define BAR_BASE_X( p ) THEME->GetMetricF("ScreenEvaluation",ssprintf("BarP%dBaseX",p+1))
|
||||
#define BAR_ROTATION( p ) THEME->GetMetricF("ScreenEvaluation",ssprintf("BarP%dRotation",p+1))
|
||||
#define BAR_START_Y THEME->GetMetricF("ScreenEvaluation","BarStartY")
|
||||
#define BAR_SPACING_Y THEME->GetMetricF("ScreenEvaluation","BarSpacingY")
|
||||
#define BAR_WIDTH THEME->GetMetricF("ScreenEvaluation","BarWidth")
|
||||
#define BAR_HEIGHT THEME->GetMetricF("ScreenEvaluation","BarHeight")
|
||||
#define SONGS_SURVIVED_X( p ) THEME->GetMetricF("ScreenEvaluation",ssprintf("SongsSurvivedP%dX",p+1))
|
||||
#define SONGS_SURVIVED_Y THEME->GetMetricF("ScreenEvaluation","SongsSurvivedY")
|
||||
#define NEW_RECORD_X( p ) THEME->GetMetricF("ScreenEvaluation",ssprintf("NewRecordP%dX",p+1))
|
||||
#define NEW_RECORD_Y THEME->GetMetricF("ScreenEvaluation","NewRecordY")
|
||||
#define TRY_EXTRA_STAGE_X THEME->GetMetricF("ScreenEvaluation","TryExtraStageX")
|
||||
#define TRY_EXTRA_STAGE_Y THEME->GetMetricF("ScreenEvaluation","TryExtraStageY")
|
||||
#define HELP_TEXT THEME->GetMetric("ScreenEvaluation","HelpText")
|
||||
#define TIMER_SECONDS THEME->GetMetricI("ScreenEvaluation","TimerSeconds")
|
||||
#define SPIN_GRADES THEME->GetMetricB("ScreenEvaluation","SpinGrades")
|
||||
#define GRADES_GLOW_COLOR_1 THEME->GetMetricC("ScreenEvaluation","GradesGlowColor1")
|
||||
#define GRADES_GLOW_COLOR_2 THEME->GetMetricC("ScreenEvaluation","GradesGlowColor2")
|
||||
|
||||
float JUDGE_X( bool oni, int p, int l ) {
|
||||
switch( l ) {
|
||||
case 0: return MARVELOUS_X(oni,p);
|
||||
case 1: return PERFECT_X(oni,p);
|
||||
case 2: return GREAT_X(oni,p);
|
||||
case 3: return GOOD_X(oni,p);
|
||||
case 4: return BOO_X(oni,p);
|
||||
case 5: return MISS_X(oni,p);
|
||||
case 6: return OK_X(oni,p);
|
||||
case 7: return MAX_COMBO_X(oni,p);
|
||||
default: ASSERT(0); return 0;
|
||||
}
|
||||
}
|
||||
float JUDGE_Y( int l ) {
|
||||
switch( l ) {
|
||||
case 0: return MARVELOUS_Y;
|
||||
case 1: return PERFECT_Y;
|
||||
case 2: return GREAT_Y;
|
||||
case 3: return GOOD_Y;
|
||||
case 4: return BOO_Y;
|
||||
case 5: return MISS_Y;
|
||||
case 6: return OK_Y;
|
||||
case 7: return MAX_COMBO_Y;
|
||||
default: ASSERT(0); return 0;
|
||||
}
|
||||
}
|
||||
#define SONGSEL_SCREEN GET_THEME_METRIC_FALLBACK("SongSelectScreen")
|
||||
#define ENDGAME_SCREEN GET_THEME_METRIC_FALLBACK("EndGameScreen")
|
||||
#define BANNER_ON_COMMAND( i ) GET_THEME_METRIC_FALLBACK(ssprintf("Banner%dOnCommand",i+1))
|
||||
#define BANNER_OFF_COMMAND( i ) GET_THEME_METRIC_FALLBACK(ssprintf("Banner%dOffCommand",i+1))
|
||||
#define BANNER_WIDTH atof(GET_THEME_METRIC_FALLBACK("BannerWidth"))
|
||||
#define BANNER_HEIGHT atof(GET_THEME_METRIC_FALLBACK("BannerHeight"))
|
||||
#define STAGE_ON_COMMAND GET_THEME_METRIC_FALLBACK("StageOnCommand")
|
||||
#define STAGE_OFF_COMMAND GET_THEME_METRIC_FALLBACK("StageOffCommand")
|
||||
#define DIFFICULTY_ICON_ON_COMMAND( p ) GET_THEME_METRIC_FALLBACK(ssprintf("DifficultyIconP%dOnCommand",p+1))
|
||||
#define DIFFICULTY_ICON_OFF_COMMAND( p ) GET_THEME_METRIC_FALLBACK(ssprintf("DifficultyIconP%dOffCommand",p+1))
|
||||
#define PLAYER_OPTIONS_ON_COMMAND( p ) GET_THEME_METRIC_FALLBACK(ssprintf("PlayerOptionsP%dOnCommand",p+1))
|
||||
#define PLAYER_OPTIONS_OFF_COMMAND( p ) GET_THEME_METRIC_FALLBACK(ssprintf("PlayerOptionsP%dOffCommand",p+1))
|
||||
#define GRADE_FRAME_ON_COMMAND( p ) GET_THEME_METRIC_FALLBACK(ssprintf("GradeFrameP%dOnCommand",p+1))
|
||||
#define GRADE_FRAME_OFF_COMMAND( p ) GET_THEME_METRIC_FALLBACK(ssprintf("GradeFrameP%dOffCommand",p+1))
|
||||
#define GRADE_ON_COMMAND( p ) GET_THEME_METRIC_FALLBACK(ssprintf("GradeP%dOnCommand",p+1))
|
||||
#define GRADE_OFF_COMMAND( p ) GET_THEME_METRIC_FALLBACK(ssprintf("GradeP%dOffCommand",p+1))
|
||||
#define PERCENT_WHOLE_ON_COMMAND( p ) GET_THEME_METRIC_FALLBACK(ssprintf("PercentWholeP%dOnCommand",p+1))
|
||||
#define PERCENT_WHOLE_OFF_COMMAND( p ) GET_THEME_METRIC_FALLBACK(ssprintf("PercentWholeP%dOffCommand",p+1))
|
||||
#define PERCENT_REMAINDER_ON_COMMAND( p ) GET_THEME_METRIC_FALLBACK(ssprintf("PercentRemainderP%dOnCommand",p+1))
|
||||
#define PERCENT_REMAINDER_OFF_COMMAND( p ) GET_THEME_METRIC_FALLBACK(ssprintf("PercentRemainderP%dOffCommand",p+1))
|
||||
#define DANCE_POINTS_ON_COMMAND( p ) GET_THEME_METRIC_FALLBACK(ssprintf("DancePointsP%dOnCommand",p+1))
|
||||
#define DANCE_POINTS_OFF_COMMAND( p ) GET_THEME_METRIC_FALLBACK(ssprintf("DancePointsP%dOffCommand",p+1))
|
||||
const char* JUDGE_STRING[NUM_JUDGE_LINES] = { "Marvelous", "Perfect", "Great", "Good", "Boo", "Miss", "OK", "MaxCombo" };
|
||||
#define JUDGE_LABEL_ON_COMMAND( l ) GET_THEME_METRIC_FALLBACK(ssprintf("%sLabelOnCommand",JUDGE_STRING[l]))
|
||||
#define JUDGE_LABEL_OFF_COMMAND( l ) GET_THEME_METRIC_FALLBACK(ssprintf("%sLabelOffCommand",JUDGE_STRING[l]))
|
||||
#define JUDGE_NUMBER_ON_COMMAND( l, p ) GET_THEME_METRIC_FALLBACK(ssprintf("%sNumberP%dOnCommand",JUDGE_STRING[l],p+1))
|
||||
#define JUDGE_NUMBER_OFF_COMMAND( l, p ) GET_THEME_METRIC_FALLBACK(ssprintf("%sNumberP%dOffCommand",JUDGE_STRING[l],p+1))
|
||||
const char* SCORE_STRING[NUM_SCORE_LINES] = { "Score", "Time" };
|
||||
#define SCORE_LABEL_ON_COMMAND( l ) GET_THEME_METRIC_FALLBACK(ssprintf("%sLabelOnCommand",SCORE_STRING[l]))
|
||||
#define SCORE_LABEL_OFF_COMMAND( l ) GET_THEME_METRIC_FALLBACK(ssprintf("%sLabelOffCommand",SCORE_STRING[l]))
|
||||
#define SCORE_NUMBER_ON_COMMAND( l, p ) GET_THEME_METRIC_FALLBACK(ssprintf("%sNumberP%dOnCommand",SCORE_STRING[l],p+1))
|
||||
#define SCORE_NUMBER_OFF_COMMAND( l, p ) GET_THEME_METRIC_FALLBACK(ssprintf("%sNumberP%dOffCommand",SCORE_STRING[l],p+1))
|
||||
#define BONUS_FRAME_ON_COMMAND( p ) GET_THEME_METRIC_FALLBACK(ssprintf("BonusFrameP%dOnCommand",p+1))
|
||||
#define BONUS_FRAME_OFF_COMMAND( p ) GET_THEME_METRIC_FALLBACK(ssprintf("BonusFrameP%dOffCommand",p+1))
|
||||
#define BAR_POSSIBLE_ON_COMMAND( i, p ) GET_THEME_METRIC_FALLBACK(ssprintf("BarPossible%dP%dOnCommand",i+1,p+1))
|
||||
#define BAR_POSSIBLE_OFF_COMMAND( i, p ) GET_THEME_METRIC_FALLBACK(ssprintf("BarPossible%dP%dOffCommand",i+1,p+1))
|
||||
#define BAR_ACTUAL_ON_COMMAND( i, p ) GET_THEME_METRIC_FALLBACK(ssprintf("BarActual%dP%dOnCommand",i+1,p+1))
|
||||
#define BAR_ACTUAL_OFF_COMMAND( i, p ) GET_THEME_METRIC_FALLBACK(ssprintf("BarActual%dP%dOffCommand",i+1,p+1))
|
||||
#define BAR_ACTUAL_MAX_COMMAND GET_THEME_METRIC_FALLBACK("BarActualMaxCommand")
|
||||
#define SONGS_SURVIVED_ON_COMMAND( p ) GET_THEME_METRIC_FALLBACK(ssprintf("SongsSurvivedP%dOnCommand",p+1))
|
||||
#define SONGS_SURVIVED_OFF_COMMAND( p ) GET_THEME_METRIC_FALLBACK(ssprintf("SongsSurvivedP%dOffCommand",p+1))
|
||||
#define NEW_RECORD_ON_COMMAND( p ) GET_THEME_METRIC_FALLBACK(ssprintf("NewRecordP%dOnCommand",p+1))
|
||||
#define NEW_RECORD_OFF_COMMAND( p ) GET_THEME_METRIC_FALLBACK(ssprintf("NewRecordP%dOffCommand",p+1))
|
||||
#define TRY_EXTRA_STAGE_ON_COMMAND GET_THEME_METRIC_FALLBACK(ssprintf("TryExtraStageOnCommand"))
|
||||
#define TRY_EXTRA_STAGE_OFF_COMMAND GET_THEME_METRIC_FALLBACK(ssprintf("TryExtraStageOffCommand"))
|
||||
#define SPIN_GRADES 0!=atoi(GET_THEME_METRIC_FALLBACK("SpinGrades"))
|
||||
|
||||
|
||||
const ScreenMessage SM_GoToSelectMusic = ScreenMessage(SM_User+1);
|
||||
const ScreenMessage SM_GoToSelectCourse = ScreenMessage(SM_User+3);
|
||||
@@ -114,118 +85,64 @@ const ScreenMessage SM_GoToGameFinished = ScreenMessage(SM_User+5);
|
||||
const ScreenMessage SM_PlayCheer = ScreenMessage(SM_User+6);
|
||||
|
||||
|
||||
ScreenEvaluation::ScreenEvaluation( bool bSummary )
|
||||
ScreenEvaluation::ScreenEvaluation( CString sClassName, Type type )
|
||||
{
|
||||
/*
|
||||
//
|
||||
// debugging
|
||||
//
|
||||
GAMESTATE->m_PlayMode = PLAY_MODE_ARCADE;
|
||||
GAMESTATE->m_CurStyle = STYLE_DANCE_VERSUS;
|
||||
GAMESTATE->m_MasterPlayerNumber = PLAYER_1;
|
||||
GAMESTATE->m_pCurSong = SONGMAN->GetAllSongs()[0];
|
||||
GAMESTATE->m_pCurNotes[PLAYER_1] = GAMESTATE->m_pCurSong->GetNotes( NOTES_TYPE_DANCE_SINGLE, DIFFICULTY_HARD );
|
||||
GAMESTATE->m_pCurNotes[PLAYER_2] = GAMESTATE->m_pCurSong->GetNotes( NOTES_TYPE_DANCE_SINGLE, DIFFICULTY_HARD );
|
||||
GAMESTATE->m_PlayerOptions[PLAYER_1].m_bHoldNotes = false;
|
||||
GAMESTATE->m_PlayerOptions[PLAYER_2].m_bHoldNotes = false;
|
||||
GAMESTATE->m_PlayerOptions[PLAYER_1].m_fScrollSpeed = 2;
|
||||
GAMESTATE->m_PlayerOptions[PLAYER_2].m_fScrollSpeed = 2;
|
||||
GAMESTATE->m_iCurrentStageIndex = 2;
|
||||
*/
|
||||
|
||||
LOG->Trace( "ScreenEvaluation::ScreenEvaluation()" );
|
||||
|
||||
m_sClassName = sClassName;
|
||||
m_Type = type;
|
||||
|
||||
//
|
||||
// Set m_ResultMode. This enum will make our life easier later when we init different pieces.
|
||||
//
|
||||
switch( GAMESTATE->m_PlayMode )
|
||||
{
|
||||
case PLAY_MODE_ARCADE:
|
||||
case PLAY_MODE_BATTLE:
|
||||
m_ResultMode = bSummary ? RM_ARCADE_SUMMARY : RM_ARCADE_STAGE;
|
||||
break;
|
||||
case PLAY_MODE_NONSTOP:
|
||||
case PLAY_MODE_ONI:
|
||||
case PLAY_MODE_ENDLESS:
|
||||
m_ResultMode = RM_COURSE;
|
||||
break;
|
||||
default:
|
||||
ASSERT(0);
|
||||
}
|
||||
|
||||
int p;
|
||||
|
||||
//
|
||||
// Figure out which statistics and songs we're going to display
|
||||
//
|
||||
StageStats stageStats;
|
||||
vector<Song*> vSongsToShow;
|
||||
switch( m_ResultMode )
|
||||
switch( m_Type )
|
||||
{
|
||||
case RM_ARCADE_SUMMARY:
|
||||
case summary:
|
||||
GAMESTATE->GetFinalEvalStatsAndSongs( stageStats, vSongsToShow );
|
||||
break;
|
||||
case RM_ARCADE_STAGE:
|
||||
case RM_COURSE:
|
||||
case stage:
|
||||
case course:
|
||||
stageStats = GAMESTATE->m_CurStageStats;
|
||||
break;
|
||||
default:
|
||||
ASSERT(0);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
//
|
||||
// Init the song banners depending on m_ResultMode
|
||||
// Debugging
|
||||
//
|
||||
switch( m_ResultMode )
|
||||
{
|
||||
case RM_ARCADE_STAGE:
|
||||
{
|
||||
m_BannerWithFrame[0].LoadFromSong( GAMESTATE->m_pCurSong );
|
||||
m_BannerWithFrame[0].SetXY( BANNER_X, BANNER_Y );
|
||||
this->AddChild( &m_BannerWithFrame[0] );
|
||||
|
||||
m_sprStage.Load( THEME->GetPathTo("Graphics","ScreenEvaluation stage "+GAMESTATE->GetStageText()) );
|
||||
m_sprStage.SetXY( STAGE_X, STAGE_Y );
|
||||
this->AddChild( &m_sprStage );
|
||||
|
||||
for( int p=0; p<NUM_PLAYERS; p++ )
|
||||
for( int p=0; p<NUM_PLAYERS; p++ ) // foreach line
|
||||
for( int r=0; r<NUM_RADAR_CATEGORIES; r++ ) // foreach line
|
||||
{
|
||||
if( !GAMESTATE->IsPlayerEnabled(p) )
|
||||
continue; // skip
|
||||
m_DifficultyIcon[p].Load( THEME->GetPathTo("graphics","ScreenEvaluation difficulty icons 1x5") );
|
||||
m_DifficultyIcon[p].SetFromNotes( (PlayerNumber)p, GAMESTATE->m_pCurNotes[p] );
|
||||
m_DifficultyIcon[p].SetXY( DIFFICULTY_ICON_X(p), DIFFICULTY_ICON_Y(p) );
|
||||
this->AddChild( &m_DifficultyIcon[p] );
|
||||
stageStats.fRadarPossible[p][r] = 0.5f + r/10.0f;
|
||||
stageStats.fRadarActual[p][r] = 0.5f + r/10.0f;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case RM_ARCADE_SUMMARY:
|
||||
{
|
||||
for( unsigned i=0; i<vSongsToShow.size(); i++ )
|
||||
{
|
||||
m_BannerWithFrame[i].LoadFromSong( vSongsToShow[i] );
|
||||
float fBannerOffset = i - (vSongsToShow.size()-1)/2.0f;
|
||||
m_BannerWithFrame[i].SetXY( BANNER_X + fBannerOffset*32, BANNER_Y + fBannerOffset*16 );
|
||||
m_BannerWithFrame[i].SetZoom( 0.70f );
|
||||
this->AddChild( &m_BannerWithFrame[i] );
|
||||
}
|
||||
}
|
||||
break;
|
||||
case RM_COURSE:
|
||||
m_BannerWithFrame[0].LoadFromCourse( GAMESTATE->m_pCurCourse );
|
||||
m_BannerWithFrame[0].SetXY( BANNER_X, BANNER_Y );
|
||||
this->AddChild( &m_BannerWithFrame[0] );
|
||||
break;
|
||||
default:
|
||||
ASSERT(0);
|
||||
}
|
||||
|
||||
|
||||
//////////////////////////
|
||||
// Init graphic elements
|
||||
//////////////////////////
|
||||
m_Menu.Load( "ScreenEvaluation" );
|
||||
// FIXME:
|
||||
// The header needs to be different depending on the result mode.
|
||||
// We should really split these different ResultModes into separate derived classes
|
||||
// so that each can have its own Transitions, headers, and such.
|
||||
// THEME->GetPathTo("Graphics",m_ResultMode==RM_ARCADE_SUMMARY?"evaluation summary top edge":"evaluation top edge"),
|
||||
this->AddChild( &m_Menu );
|
||||
|
||||
int p;
|
||||
for( p=0; p<NUM_PLAYERS; p++ )
|
||||
{
|
||||
if( !GAMESTATE->IsPlayerEnabled( (PlayerNumber)p ) ) // If EZ2 wants to hide this graphic, place it somewhere off screen using theme metrics
|
||||
continue; // skip
|
||||
|
||||
m_ScoreDisplay[p].SetXY( SCORE_NUMBERS_X(p), SCORE_Y );
|
||||
m_ScoreDisplay[p].Init( (PlayerNumber)p );
|
||||
m_ScoreDisplay[p].SetZoomY( 1.0 );
|
||||
this->AddChild( &m_ScoreDisplay[p] );
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
//
|
||||
// Calculate grades
|
||||
@@ -247,19 +164,20 @@ ScreenEvaluation::ScreenEvaluation( bool bSummary )
|
||||
//
|
||||
// update persistent statistics
|
||||
//
|
||||
bool bNewRecord[NUM_PLAYERS] = { false, false };
|
||||
bool bNewRecord[NUM_PLAYERS];
|
||||
ZERO( bNewRecord );
|
||||
|
||||
|
||||
switch( m_ResultMode )
|
||||
switch( m_Type )
|
||||
{
|
||||
case RM_ARCADE_STAGE:
|
||||
case stage:
|
||||
{
|
||||
for( int p=0; p<NUM_PLAYERS; p++ )
|
||||
if( GAMESTATE->IsPlayerEnabled(p) )
|
||||
GAMESTATE->m_pCurNotes[p]->AddScore( (PlayerNumber)p, grade[p], stageStats.fScore[p], bNewRecord[p] );
|
||||
}
|
||||
break;
|
||||
case RM_ARCADE_SUMMARY:
|
||||
case summary:
|
||||
{
|
||||
NotesType nt = GAMESTATE->GetCurrentStyleDef()->m_NotesType;
|
||||
bool bIsPlayerEnabled[NUM_PLAYERS];
|
||||
@@ -281,7 +199,7 @@ ScreenEvaluation::ScreenEvaluation( bool bSummary )
|
||||
GAMESTATE->m_RankingNotesType = nt;
|
||||
}
|
||||
break;
|
||||
case RM_COURSE:
|
||||
case course:
|
||||
{
|
||||
NotesType nt = GAMESTATE->GetCurrentStyleDef()->m_NotesType;
|
||||
bool bIsPlayerEnabled[NUM_PLAYERS];
|
||||
@@ -303,179 +221,188 @@ ScreenEvaluation::ScreenEvaluation( bool bSummary )
|
||||
|
||||
m_bTryExtraStage =
|
||||
GAMESTATE->HasEarnedExtraStage() &&
|
||||
m_ResultMode==RM_ARCADE_STAGE;
|
||||
m_Type==stage;
|
||||
|
||||
|
||||
|
||||
m_Menu.Load( m_sClassName );
|
||||
this->AddChild( &m_Menu );
|
||||
|
||||
|
||||
|
||||
//
|
||||
// Init ResultMode-specific displays
|
||||
// init banner area
|
||||
//
|
||||
for( p=0; p<NUM_PLAYERS; p++ )
|
||||
switch( m_Type )
|
||||
{
|
||||
case stage:
|
||||
{
|
||||
m_Banner[0].SetCroppedSize( BANNER_WIDTH, BANNER_HEIGHT );
|
||||
m_Banner[0].LoadFromSong( GAMESTATE->m_pCurSong );
|
||||
m_Banner[0].Command( BANNER_ON_COMMAND(0) );
|
||||
this->AddChild( &m_Banner[0] );
|
||||
|
||||
m_sprBannerFrame[0].Load( GET_THEME_ELEMENT_FALLBACK("Graphics"," banner frame") );
|
||||
m_sprBannerFrame[0].Command( BANNER_ON_COMMAND(0) );
|
||||
this->AddChild( &m_sprBannerFrame[0] );
|
||||
|
||||
m_sprStage.Load( GET_THEME_ELEMENT_FALLBACK("Graphics"," stage "+GAMESTATE->GetStageText()) );
|
||||
m_sprStage.Command( STAGE_ON_COMMAND );
|
||||
this->AddChild( &m_sprStage );
|
||||
|
||||
for( int p=0; p<NUM_PLAYERS; p++ )
|
||||
{
|
||||
if( !GAMESTATE->IsPlayerEnabled(p) )
|
||||
continue; // skip
|
||||
|
||||
m_DifficultyIcon[p].Load( GET_THEME_ELEMENT_FALLBACK("Graphics"," difficulty icons 1x5") );
|
||||
m_DifficultyIcon[p].SetFromNotes( (PlayerNumber)p, GAMESTATE->m_pCurNotes[p] );
|
||||
m_DifficultyIcon[p].Command( DIFFICULTY_ICON_ON_COMMAND(p) );
|
||||
this->AddChild( &m_DifficultyIcon[p] );
|
||||
|
||||
m_textPlayerOptions[p].LoadFromFont( THEME->GetPathTo("Fonts","normal") );
|
||||
CString sPO = GAMESTATE->m_PlayerOptions[p].GetString();
|
||||
sPO.Replace( ", ", "\n" );
|
||||
m_textPlayerOptions[p].Command( PLAYER_OPTIONS_ON_COMMAND(p) );
|
||||
m_textPlayerOptions[p].SetText( sPO );
|
||||
this->AddChild( &m_textPlayerOptions[p] );
|
||||
}
|
||||
}
|
||||
break;
|
||||
case summary:
|
||||
{
|
||||
for( unsigned i=0; i<vSongsToShow.size(); i++ )
|
||||
{
|
||||
m_Banner[i].SetCroppedSize( BANNER_WIDTH, BANNER_HEIGHT );
|
||||
m_Banner[i].LoadFromSong( vSongsToShow[i] );
|
||||
m_Banner[i].Command( BANNER_ON_COMMAND(i) );
|
||||
this->AddChild( &m_Banner[i] );
|
||||
|
||||
m_sprBannerFrame[i].Load( GET_THEME_ELEMENT_FALLBACK("Graphics"," banner frame") );
|
||||
m_sprBannerFrame[i].Command( BANNER_ON_COMMAND(i) );
|
||||
this->AddChild( &m_sprBannerFrame[i] );
|
||||
}
|
||||
}
|
||||
break;
|
||||
case course:
|
||||
{
|
||||
m_Banner[0].SetCroppedSize( BANNER_WIDTH, BANNER_HEIGHT );
|
||||
m_Banner[0].LoadFromCourse( GAMESTATE->m_pCurCourse );
|
||||
m_Banner[0].Command( BANNER_ON_COMMAND(0) );
|
||||
this->AddChild( &m_Banner[0] );
|
||||
|
||||
m_sprBannerFrame[0].Load( GET_THEME_ELEMENT_FALLBACK("Graphics"," banner frame") );
|
||||
m_sprBannerFrame[0].Command( BANNER_ON_COMMAND(0) );
|
||||
this->AddChild( &m_sprBannerFrame[0] );
|
||||
}
|
||||
break;
|
||||
default:
|
||||
ASSERT(0);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// init grade area
|
||||
//
|
||||
for( p=0; p<NUM_PLAYERS; p++ )
|
||||
{
|
||||
if( !GAMESTATE->IsPlayerEnabled( (PlayerNumber)p ) )
|
||||
continue; // skip
|
||||
|
||||
// If EZ2 shouldn't have a grade frame, then make a theme that has a 1x1 transparent graphic for the grade frame.
|
||||
m_sprGradeFrame[p].Load( GET_THEME_ELEMENT_FALLBACK("Graphics"," grade frame 1x2") );
|
||||
m_sprGradeFrame[p].StopAnimating();
|
||||
m_sprGradeFrame[p].SetState( p );
|
||||
m_sprGradeFrame[p].Command( GRADE_FRAME_ON_COMMAND(p) );
|
||||
this->AddChild( &m_sprGradeFrame[p] );
|
||||
|
||||
switch( m_ResultMode )
|
||||
m_Grades[p].Command( GRADE_ON_COMMAND(p) );
|
||||
if( SPIN_GRADES )
|
||||
m_Grades[p].SpinAndSettleOn( grade[p] );
|
||||
else
|
||||
m_Grades[p].SetGrade( (PlayerNumber)p, grade[p] );
|
||||
this->AddChild( &m_Grades[p] );
|
||||
|
||||
m_textPercentWhole[p].LoadFromNumbers( GET_THEME_ELEMENT_FALLBACK("Numbers"," percent numbers") );
|
||||
m_textPercentWhole[p].EnableShadow( false );
|
||||
m_textPercentWhole[p].Command( PERCENT_WHOLE_ON_COMMAND(p) );
|
||||
this->AddChild( &m_textPercentWhole[p] );
|
||||
|
||||
m_textPercentRemainder[p].LoadFromNumbers( GET_THEME_ELEMENT_FALLBACK("Numbers"," percent numbers") );
|
||||
m_textPercentRemainder[p].EnableShadow( false );
|
||||
m_textPercentRemainder[p].Command( PERCENT_REMAINDER_ON_COMMAND(p) );
|
||||
this->AddChild( &m_textPercentRemainder[p] );
|
||||
|
||||
stageStats.iPossibleDancePoints[p] = max( 1, stageStats.iPossibleDancePoints[p] );
|
||||
float fPercentDancePoints = stageStats.iActualDancePoints[p] / (float)stageStats.iPossibleDancePoints[p] + 0.0001f; // correct for rounding errors
|
||||
fPercentDancePoints = max( fPercentDancePoints, 0 );
|
||||
int iPercentWhole = int(fPercentDancePoints*100);
|
||||
int iPercentRemainder = int( (fPercentDancePoints*100 - int(fPercentDancePoints*100)) * 10 );
|
||||
// m_textPercentWhole[p].SetText( ssprintf("%02d", iPercentWhole) );
|
||||
// m_textPercentRemainder[p].SetText( ssprintf(".%01d%%", iPercentRemainder) );
|
||||
m_textPercentWhole[p].SetText( "00" );
|
||||
m_textPercentRemainder[p].SetText( ".11%" );
|
||||
|
||||
m_textDancePoints[p].LoadFromNumbers( GET_THEME_ELEMENT_FALLBACK("Numbers"," percent numbers") );
|
||||
m_textDancePoints[p].EnableShadow( false );
|
||||
m_textDancePoints[p].SetText( ssprintf("%d", stageStats.iActualDancePoints[p]) );
|
||||
m_textDancePoints[p].Command( DANCE_POINTS_ON_COMMAND(p) );
|
||||
this->AddChild( &m_textDancePoints[p] );
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// init bonus area
|
||||
//
|
||||
for( p=0; p<NUM_PLAYERS; p++ )
|
||||
{
|
||||
if( !GAMESTATE->IsPlayerEnabled( (PlayerNumber)p ) )
|
||||
continue; // skip
|
||||
|
||||
m_sprBonusFrame[p].Load( GET_THEME_ELEMENT_FALLBACK("Graphics"," bonus frame 2x1") );
|
||||
m_sprBonusFrame[p].StopAnimating();
|
||||
m_sprBonusFrame[p].SetState( p );
|
||||
m_sprBonusFrame[p].Command( BONUS_FRAME_ON_COMMAND(p) );
|
||||
this->AddChild( &m_sprBonusFrame[p] );
|
||||
|
||||
for( int r=0; r<NUM_RADAR_CATEGORIES; r++ ) // foreach line
|
||||
{
|
||||
case RM_COURSE:
|
||||
{
|
||||
m_sprPercentFrame[p].Load( THEME->GetPathTo("Graphics","ScreenEvaluation percent frame") );
|
||||
m_sprPercentFrame[p].StopAnimating();
|
||||
m_sprPercentFrame[p].SetState( p );
|
||||
m_sprPercentFrame[p].SetXY( GRADE_X(p), GRADE_Y );
|
||||
this->AddChild( &m_sprPercentFrame[p] );
|
||||
m_sprPossibleBar[p][r].Load( GET_THEME_ELEMENT_FALLBACK("Graphics"," bars possible 1x2") );
|
||||
m_sprPossibleBar[p][r].StopAnimating();
|
||||
m_sprPossibleBar[p][r].SetState( p );
|
||||
m_sprPossibleBar[p][r].SetWidth( m_sprPossibleBar[p][r].GetUnzoomedWidth() * stageStats.fRadarPossible[p][r] );
|
||||
m_sprPossibleBar[p][r].Command( BAR_POSSIBLE_ON_COMMAND(r,p) );
|
||||
this->AddChild( &m_sprPossibleBar[p][r] );
|
||||
|
||||
m_textOniPercentLarge[p].LoadFromNumbers( THEME->GetPathTo("Numbers","ScreenEvaluation percent numbers") );
|
||||
m_textOniPercentLarge[p].EnableShadow( false );
|
||||
m_textOniPercentLarge[p].SetXY( (PREFSMAN->m_bDancePointsForOni ? DANCE_POINT_X(p) : PERCENT_BASE_X(p) ), PERCENT_BASE_Y );
|
||||
m_textOniPercentLarge[p].SetHorizAlign( Actor::align_right );
|
||||
m_textOniPercentLarge[p].SetVertAlign( Actor::align_bottom );
|
||||
m_textOniPercentLarge[p].SetEffectGlowShift( 2.5f );
|
||||
this->AddChild( &m_textOniPercentLarge[p] );
|
||||
|
||||
if(!PREFSMAN->m_bDancePointsForOni)
|
||||
{
|
||||
m_textOniPercentSmall[p].LoadFromNumbers( THEME->GetPathTo("Numbers","ScreenEvaluation percent numbers") );
|
||||
m_textOniPercentSmall[p].EnableShadow( false );
|
||||
m_textOniPercentSmall[p].SetZoom( 0.5f );
|
||||
m_textOniPercentSmall[p].SetXY( PERCENT_BASE_X(p), PERCENT_BASE_Y );
|
||||
m_textOniPercentSmall[p].SetHorizAlign( Actor::align_left );
|
||||
m_textOniPercentSmall[p].SetVertAlign( Actor::align_bottom );
|
||||
m_textOniPercentSmall[p].SetEffectGlowShift( 2.5f );
|
||||
this->AddChild( &m_textOniPercentSmall[p] );
|
||||
}
|
||||
|
||||
if(PREFSMAN->m_bDancePointsForOni)
|
||||
{
|
||||
m_textOniPercentLarge[p].SetText( ssprintf("%d", stageStats.iActualDancePoints[p]) );
|
||||
|
||||
const float fDancePointWidth = DANCE_POINT_WIDTH;
|
||||
const float WidestLineWidth = (float) m_textOniPercentLarge[p].GetWidestLineWidthInSourcePixels();
|
||||
if(WidestLineWidth > fDancePointWidth)
|
||||
m_textOniPercentLarge[p].SetZoomX( fDancePointWidth / WidestLineWidth );
|
||||
}
|
||||
else
|
||||
{
|
||||
stageStats.iPossibleDancePoints[p] = max( 1, stageStats.iPossibleDancePoints[p] );
|
||||
float fPercentDancePoints = stageStats.iActualDancePoints[p] / (float)stageStats.iPossibleDancePoints[p] + 0.0001f; // correct for rounding errors
|
||||
fPercentDancePoints = max( fPercentDancePoints, 0 );
|
||||
int iPercentDancePointsLarge = int(fPercentDancePoints*100);
|
||||
int iPercentDancePointsSmall = int( (fPercentDancePoints*100 - int(fPercentDancePoints*100)) * 10 );
|
||||
m_textOniPercentLarge[p].SetText( ssprintf("%02d", iPercentDancePointsLarge) );
|
||||
m_textOniPercentSmall[p].SetText( ssprintf(".%01d%%", iPercentDancePointsSmall) );
|
||||
}
|
||||
|
||||
// StageInfo stuff
|
||||
m_sprCourseFrame[p].Load( THEME->GetPathTo("Graphics","ScreenEvaluation stage frame 2x1") );
|
||||
m_sprCourseFrame[p].StopAnimating();
|
||||
m_sprCourseFrame[p].SetState( p );
|
||||
m_sprCourseFrame[p].SetXY( BONUS_X(p), BONUS_Y );
|
||||
this->AddChild( &m_sprCourseFrame[p] );
|
||||
|
||||
m_textSongsSurvived[p].LoadFromNumbers( THEME->GetPathTo("Numbers","ScreenEvaluation stage numbers") );
|
||||
m_textSongsSurvived[p].EnableShadow( false );
|
||||
m_textSongsSurvived[p].SetXY( SONGS_SURVIVED_X(p), SONGS_SURVIVED_Y );
|
||||
m_textSongsSurvived[p].SetText( ssprintf("%02d", stageStats.iSongsPlayed[p]) );
|
||||
this->AddChild( &m_textSongsSurvived[p] );
|
||||
}
|
||||
break;
|
||||
case RM_ARCADE_STAGE:
|
||||
case RM_ARCADE_SUMMARY:
|
||||
{
|
||||
m_sprGradeFrame[p].Load( THEME->GetPathTo("Graphics","ScreenEvaluation grade frame 1x2") );
|
||||
m_sprGradeFrame[p].StopAnimating();
|
||||
m_sprGradeFrame[p].SetState( p );
|
||||
m_sprGradeFrame[p].SetXY( GRADE_X(p), GRADE_Y );
|
||||
this->AddChild( &m_sprGradeFrame[p] );
|
||||
|
||||
// Ez2dancer should control the grade tween using theme metrics
|
||||
m_Grades[p].SetXY( GRADE_X(p), GRADE_Y );
|
||||
m_Grades[p].SetZ( 2 );
|
||||
m_Grades[p].SetZoom( 1.0f );
|
||||
m_Grades[p].SetEffectGlowShift( 1.0f, GRADES_GLOW_COLOR_1, GRADES_GLOW_COLOR_2 );
|
||||
if( SPIN_GRADES )
|
||||
m_Grades[p].SpinAndSettleOn( grade[p] );
|
||||
else
|
||||
m_Grades[p].SetGrade( (PlayerNumber)p, grade[p] );
|
||||
this->AddChild( &m_Grades[p] );
|
||||
|
||||
// Bonus info frame
|
||||
m_sprBonusFrame[p].Load( THEME->GetPathTo("Graphics","ScreenEvaluation bonus frame 2x1") );
|
||||
m_sprBonusFrame[p].StopAnimating();
|
||||
m_sprBonusFrame[p].SetState( p );
|
||||
m_sprBonusFrame[p].SetXY( BONUS_X(p), BONUS_Y );
|
||||
this->AddChild( &m_sprBonusFrame[p] );
|
||||
|
||||
for( int r=0; r<NUM_RADAR_CATEGORIES; r++ ) // foreach line
|
||||
{
|
||||
m_sprPossibleBar[p][r].Load( THEME->GetPathTo("Graphics","ScreenEvaluation bars possible 1x2") );
|
||||
m_sprPossibleBar[p][r].StopAnimating();
|
||||
m_sprPossibleBar[p][r].SetState( p );
|
||||
m_sprPossibleBar[p][r].SetHorizAlign( Actor::align_left );
|
||||
m_sprPossibleBar[p][r].SetX( BAR_BASE_X(p) );
|
||||
m_sprPossibleBar[p][r].SetY( BAR_START_Y + BAR_SPACING_Y*r );
|
||||
m_sprPossibleBar[p][r].SetRotationZ( BAR_ROTATION(p) );
|
||||
m_sprPossibleBar[p][r].SetZoomX( 0 );
|
||||
m_sprPossibleBar[p][r].ZoomToHeight( BAR_HEIGHT );
|
||||
m_sprPossibleBar[p][r].BeginTweening( 0.2f + r*0.1f ); // sleep
|
||||
m_sprPossibleBar[p][r].BeginTweening( 0.5f ); // tween
|
||||
m_sprPossibleBar[p][r].SetTweenZoomToWidth( BAR_WIDTH*stageStats.fRadarPossible[p][r] );
|
||||
this->AddChild( &m_sprPossibleBar[p][r] );
|
||||
|
||||
m_sprActualBar[p][r].Load( THEME->GetPathTo("Graphics","ScreenEvaluation bars actual 1x2") );
|
||||
m_sprActualBar[p][r].StopAnimating();
|
||||
m_sprActualBar[p][r].SetState( p );
|
||||
m_sprActualBar[p][r].SetHorizAlign( Actor::align_left );
|
||||
m_sprActualBar[p][r].SetX( BAR_BASE_X(p) );
|
||||
m_sprActualBar[p][r].SetY( BAR_START_Y + BAR_SPACING_Y*r );
|
||||
m_sprActualBar[p][r].SetRotationZ( BAR_ROTATION(p) );
|
||||
m_sprActualBar[p][r].SetZoomX( 0 );
|
||||
m_sprActualBar[p][r].ZoomToHeight( BAR_HEIGHT );
|
||||
m_sprActualBar[p][r].BeginTweening( 1.0f + r*0.2f ); // sleep
|
||||
m_sprActualBar[p][r].BeginTweening( 1.0f ); // tween
|
||||
m_sprActualBar[p][r].SetTweenZoomToWidth( BAR_WIDTH*stageStats.fRadarActual[p][r] );
|
||||
if( stageStats.fRadarActual[p][r] == stageStats.fRadarPossible[p][r] )
|
||||
m_sprActualBar[p][r].SetEffectGlowShift();
|
||||
this->AddChild( &m_sprActualBar[p][r] );
|
||||
}
|
||||
break;
|
||||
}
|
||||
m_sprActualBar[p][r].Load( GET_THEME_ELEMENT_FALLBACK("Graphics"," bars actual 1x2") );
|
||||
m_sprActualBar[p][r].StopAnimating();
|
||||
m_sprActualBar[p][r].SetState( p );
|
||||
m_sprActualBar[p][r].SetWidth( m_sprActualBar[p][r].GetUnzoomedWidth() * stageStats.fRadarActual[p][r] );
|
||||
m_sprActualBar[p][r].Command( BAR_ACTUAL_ON_COMMAND(r,p) );
|
||||
if( stageStats.fRadarActual[p][r] == stageStats.fRadarPossible[p][r] )
|
||||
m_sprActualBar[p][r].Command( BAR_ACTUAL_MAX_COMMAND );
|
||||
this->AddChild( &m_sprActualBar[p][r] );
|
||||
}
|
||||
|
||||
if( bNewRecord[p] )
|
||||
{
|
||||
m_sprNewRecord[p].Load( THEME->GetPathTo("Graphics","ScreenEvaluation new record") );
|
||||
m_sprNewRecord[p].SetXY( NEW_RECORD_X(p), NEW_RECORD_Y );
|
||||
m_sprNewRecord[p].SetEffectGlowShift( 2.5f );
|
||||
this->AddChild( &m_sprNewRecord[p] );
|
||||
}
|
||||
m_textSongsSurvived[p].LoadFromNumbers( GET_THEME_ELEMENT_FALLBACK("Numbers"," stage numbers") );
|
||||
m_textSongsSurvived[p].EnableShadow( false );
|
||||
m_textSongsSurvived[p].SetText( ssprintf("%02d", stageStats.iSongsPlayed[p]) );
|
||||
m_textSongsSurvived[p].Command( SONGS_SURVIVED_ON_COMMAND(p) );
|
||||
this->AddChild( &m_textSongsSurvived[p] );
|
||||
}
|
||||
|
||||
//
|
||||
// Init non-ResultMode specific displays.
|
||||
// Do this after Result-specific displays so that the text will draw on top of
|
||||
// the bonus frame.
|
||||
// init judgement area
|
||||
//
|
||||
int l;
|
||||
for( l=0; l<NUM_JUDGE_LINES; l++ )
|
||||
{
|
||||
// EZ2 should hide these things by placing them off screen with theme metrics
|
||||
m_sprJudgeLabels[l].Load( THEME->GetPathTo("Graphics","ScreenEvaluation judge labels 1x8") );
|
||||
m_sprJudgeLabels[l].Load( GET_THEME_ELEMENT_FALLBACK("Graphics"," judge labels 1x8") );
|
||||
m_sprJudgeLabels[l].StopAnimating();
|
||||
m_sprJudgeLabels[l].SetState( l );
|
||||
m_sprJudgeLabels[l].SetXY( JUDGE_LABELS_X, JUDGE_Y(l) );
|
||||
m_sprJudgeLabels[l].SetZoom( 1.0f );
|
||||
m_sprJudgeLabels[l].Command( JUDGE_LABEL_ON_COMMAND(l) );
|
||||
this->AddChild( &m_sprJudgeLabels[l] );
|
||||
}
|
||||
|
||||
m_sprScoreLabel.Load( THEME->GetPathTo("Graphics","ScreenEvaluation score labels") );
|
||||
m_sprScoreLabel.SetState( m_ResultMode==RM_COURSE ? 1 : 0 );
|
||||
m_sprScoreLabel.StopAnimating();
|
||||
m_sprScoreLabel.SetXY( SCORE_LABELS_X, SCORE_Y );
|
||||
m_sprScoreLabel.SetZoom( 1.0f );
|
||||
this->AddChild( &m_sprScoreLabel );
|
||||
|
||||
|
||||
for( p=0; p<NUM_PLAYERS; p++ )
|
||||
{
|
||||
if( !GAMESTATE->IsPlayerEnabled( (PlayerNumber)p ) )
|
||||
@@ -483,11 +410,10 @@ ScreenEvaluation::ScreenEvaluation( bool bSummary )
|
||||
|
||||
for( l=0; l<NUM_JUDGE_LINES; l++ )
|
||||
{
|
||||
m_textJudgeNumbers[l][p].LoadFromNumbers( THEME->GetPathTo("Numbers","ScreenEvaluation judge numbers") );
|
||||
m_textJudgeNumbers[l][p].LoadFromNumbers( GET_THEME_ELEMENT_FALLBACK("Numbers"," judge numbers") );
|
||||
m_textJudgeNumbers[l][p].EnableShadow( false );
|
||||
m_textJudgeNumbers[l][p].SetXY( JUDGE_X(m_ResultMode==RM_COURSE,p,l), JUDGE_Y(l) );
|
||||
m_textJudgeNumbers[l][p].SetZoom( 1.0f );
|
||||
m_textJudgeNumbers[l][p].SetDiffuse( PlayerToColor(p) );
|
||||
m_textJudgeNumbers[l][p].Command( JUDGE_NUMBER_ON_COMMAND(l,p) );
|
||||
this->AddChild( &m_textJudgeNumbers[l][p] );
|
||||
}
|
||||
|
||||
@@ -499,15 +425,44 @@ ScreenEvaluation::ScreenEvaluation( bool bSummary )
|
||||
m_textJudgeNumbers[5][p].SetText( ssprintf("%4d", stageStats.iTapNoteScores[p][TNS_MISS]) );
|
||||
m_textJudgeNumbers[6][p].SetText( ssprintf("%4d", stageStats.iHoldNoteScores[p][HNS_OK]) );
|
||||
m_textJudgeNumbers[7][p].SetText( ssprintf("%4d", stageStats.iMaxCombo[p]) );
|
||||
|
||||
|
||||
if( m_ResultMode==RM_COURSE )
|
||||
m_ScoreDisplay[p].SetText( SecondsToTime(stageStats.fAliveSeconds[p]) );
|
||||
else
|
||||
m_ScoreDisplay[p].SetScore( stageStats.fScore[p] );
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// init score area
|
||||
//
|
||||
int s;
|
||||
for( s=0; s<NUM_SCORE_LINES; s++ )
|
||||
{
|
||||
m_sprScoreLabel[s].Load( GET_THEME_ELEMENT_FALLBACK("Graphics"," score labels 1x2") );
|
||||
m_sprScoreLabel[s].SetState( s );
|
||||
m_sprScoreLabel[s].StopAnimating();
|
||||
m_sprScoreLabel[s].Command( SCORE_LABEL_ON_COMMAND(s) );
|
||||
this->AddChild( &m_sprScoreLabel[s] );
|
||||
}
|
||||
|
||||
for( p=0; p<NUM_PLAYERS; p++ )
|
||||
{
|
||||
if( !GAMESTATE->IsPlayerEnabled( (PlayerNumber)p ) )
|
||||
continue; // skip
|
||||
|
||||
for( int s=0; s<NUM_SCORE_LINES; s++ )
|
||||
{
|
||||
m_ScoreDisplay[s][p].Init( (PlayerNumber)p );
|
||||
m_ScoreDisplay[s][p].Command( SCORE_NUMBER_ON_COMMAND(s,p) );
|
||||
this->AddChild( &m_ScoreDisplay[s][p] );
|
||||
}
|
||||
|
||||
m_ScoreDisplay[0][p].SetScore( stageStats.fScore[p] );
|
||||
m_ScoreDisplay[1][p].SetText( SecondsToTime(stageStats.fAliveSeconds[p]) );
|
||||
|
||||
if( bNewRecord[p] )
|
||||
{
|
||||
m_sprNewRecord[p].Load( GET_THEME_ELEMENT_FALLBACK("Graphics"," new record") );
|
||||
m_sprNewRecord[p].Command( NEW_RECORD_ON_COMMAND(p) );
|
||||
this->AddChild( &m_sprNewRecord[p] );
|
||||
}
|
||||
}
|
||||
|
||||
bool bOneHasNewRecord = false;
|
||||
for( p=0; p<NUM_PLAYERS; p++ )
|
||||
@@ -516,15 +471,14 @@ ScreenEvaluation::ScreenEvaluation( bool bSummary )
|
||||
|
||||
if( m_bTryExtraStage )
|
||||
{
|
||||
m_sprTryExtraStage.Load( THEME->GetPathTo("Graphics",GAMESTATE->IsExtraStage()?"ScreenEvaluation extra2":"ScreenEvaluation extra1") );
|
||||
m_sprTryExtraStage.SetXY( TRY_EXTRA_STAGE_X, TRY_EXTRA_STAGE_Y );
|
||||
m_sprTryExtraStage.SetEffectGlowShift( 2.5f );
|
||||
m_sprTryExtraStage.Load( GET_THEME_ELEMENT_FALLBACK("Graphics",GAMESTATE->IsExtraStage()?" try extra2":" try extra1") );
|
||||
m_sprTryExtraStage.Command( TRY_EXTRA_STAGE_ON_COMMAND );
|
||||
this->AddChild( &m_sprTryExtraStage );
|
||||
|
||||
if( GAMESTATE->IsExtraStage() )
|
||||
SOUNDMAN->PlayOnce( THEME->GetPathTo("Sounds","ScreenEvaluation extra2") );
|
||||
SOUNDMAN->PlayOnce( GET_THEME_ELEMENT_FALLBACK("Sounds"," try extra2") );
|
||||
else
|
||||
SOUNDMAN->PlayOnce( THEME->GetPathTo("Sounds","ScreenEvaluation extra1") );
|
||||
SOUNDMAN->PlayOnce( GET_THEME_ELEMENT_FALLBACK("Sounds"," try extra1") );
|
||||
}
|
||||
else if( bOneHasNewRecord && ANNOUNCER->HasSoundsFor("evaluation new record") )
|
||||
{
|
||||
@@ -533,13 +487,13 @@ ScreenEvaluation::ScreenEvaluation( bool bSummary )
|
||||
else
|
||||
{
|
||||
|
||||
switch( m_ResultMode )
|
||||
switch( m_Type )
|
||||
{
|
||||
case RM_ARCADE_STAGE:
|
||||
case stage:
|
||||
SOUNDMAN->PlayOnceFromDir( ANNOUNCER->GetPathTo("evaluation "+GradeToString(max_grade)) );
|
||||
break;
|
||||
case RM_COURSE:
|
||||
case RM_ARCADE_SUMMARY:
|
||||
case course:
|
||||
case summary:
|
||||
SOUNDMAN->PlayOnceFromDir( ANNOUNCER->GetPathTo("evaluation final "+GradeToString(max_grade)) );
|
||||
break;
|
||||
default:
|
||||
@@ -556,15 +510,11 @@ ScreenEvaluation::ScreenEvaluation( bool bSummary )
|
||||
break;
|
||||
}
|
||||
|
||||
// if( bSummary )
|
||||
// m_Menu.ImmedOnScreenFromMenu();
|
||||
// else
|
||||
// m_Menu.TweenOnScreenFromBlack( SM_None );
|
||||
|
||||
SOUNDMAN->PlayMusic( THEME->GetPathTo("Sounds","ScreenEvaluation music") );
|
||||
SOUNDMAN->PlayMusic( GET_THEME_ELEMENT_FALLBACK("Sounds"," music") );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
void ScreenEvaluation::TweenOnScreen()
|
||||
{
|
||||
int i, p;
|
||||
@@ -652,8 +602,8 @@ void ScreenEvaluation::TweenOnScreen()
|
||||
apActorsInGradeOrPercentFrame.push_back( &m_sprGradeFrame[p] );
|
||||
apActorsInGradeOrPercentFrame.push_back( &m_Grades[p] );
|
||||
apActorsInGradeOrPercentFrame.push_back( &m_sprPercentFrame[p] );
|
||||
apActorsInGradeOrPercentFrame.push_back( &m_textOniPercentLarge[p] );
|
||||
apActorsInGradeOrPercentFrame.push_back( &m_textOniPercentSmall[p] );
|
||||
apActorsInGradeOrPercentFrame.push_back( &m_textPercentWhole[p] );
|
||||
apActorsInGradeOrPercentFrame.push_back( &m_textPercentRemainder[p] );
|
||||
apActorsInGradeOrPercentFrame.push_back( &m_sprNewRecord[p] );
|
||||
for( i=0; i<apActorsInGradeOrPercentFrame.size(); i++ )
|
||||
{
|
||||
@@ -669,60 +619,67 @@ void ScreenEvaluation::TweenOnScreen()
|
||||
m_sprTryExtraStage.BeginTweening( MENU_ELEMENTS_TWEEN_TIME );
|
||||
m_sprTryExtraStage.SetTweenZoomY( fOriginalZoomY );
|
||||
}
|
||||
*/
|
||||
|
||||
void ScreenEvaluation::TweenOffScreen()
|
||||
{
|
||||
int i, p;
|
||||
int p;
|
||||
|
||||
for( i=0; i<MAX_SONGS_TO_SHOW; i++ )
|
||||
m_BannerWithFrame[i].FadeOff( 0, "foldy", MENU_ELEMENTS_TWEEN_TIME );
|
||||
|
||||
m_sprStage.FadeOff( 0, "foldy", MENU_ELEMENTS_TWEEN_TIME );
|
||||
|
||||
for( p=0; p<NUM_PLAYERS; p++ )
|
||||
m_DifficultyIcon[p].FadeOff( 0, "foldy", MENU_ELEMENTS_TWEEN_TIME );
|
||||
|
||||
for( i=0; i<NUM_JUDGE_LINES; i++ )
|
||||
// banner area
|
||||
for( unsigned i=0; i<MAX_SONGS_TO_SHOW; i++ )
|
||||
{
|
||||
m_sprJudgeLabels[i].FadeOff( 0, "foldy", MENU_ELEMENTS_TWEEN_TIME );
|
||||
|
||||
for( int p=0; p<NUM_PLAYERS; p++ )
|
||||
m_textJudgeNumbers[i][p].FadeOff( 0, "foldy", MENU_ELEMENTS_TWEEN_TIME );
|
||||
m_Banner[i].Command( BANNER_OFF_COMMAND(i) );
|
||||
m_sprBannerFrame[i].Command( BANNER_OFF_COMMAND(i) );
|
||||
}
|
||||
|
||||
m_sprScoreLabel.FadeOff( 0, "foldy", MENU_ELEMENTS_TWEEN_TIME );
|
||||
|
||||
|
||||
for( p=0; p<NUM_PLAYERS; p++ )
|
||||
m_ScoreDisplay[p].FadeOff( 0, "foldy", MENU_ELEMENTS_TWEEN_TIME );
|
||||
|
||||
m_sprStage.Command( STAGE_OFF_COMMAND );
|
||||
for( p=0; p<NUM_PLAYERS; p++ )
|
||||
{
|
||||
int i;
|
||||
|
||||
m_Grades[p].SettleImmediately();
|
||||
|
||||
for( i=0; i<NUM_RADAR_CATEGORIES; i++ )
|
||||
{
|
||||
m_sprPossibleBar[p][i].FadeOff( 0, "foldy", MENU_ELEMENTS_TWEEN_TIME );
|
||||
m_sprActualBar[p][i].FadeOff( 0, "foldy", MENU_ELEMENTS_TWEEN_TIME );
|
||||
}
|
||||
|
||||
m_sprCourseFrame[p].FadeOff( 0, "foldy", MENU_ELEMENTS_TWEEN_TIME );
|
||||
m_textTime[p].FadeOff( 0, "foldy", MENU_ELEMENTS_TWEEN_TIME );
|
||||
m_textSongsSurvived[p].FadeOff( 0, "foldy", MENU_ELEMENTS_TWEEN_TIME );
|
||||
|
||||
|
||||
m_sprBonusFrame[p].FadeOff( 0, "foldy", MENU_ELEMENTS_TWEEN_TIME );
|
||||
m_sprGradeFrame[p].FadeOff( 0, "foldy", MENU_ELEMENTS_TWEEN_TIME );
|
||||
m_Grades[p].FadeOff( 0, "foldy", MENU_ELEMENTS_TWEEN_TIME );
|
||||
m_sprPercentFrame[p].FadeOff( 0, "foldy", MENU_ELEMENTS_TWEEN_TIME );
|
||||
m_textOniPercentLarge[p].FadeOff( 0, "foldy", MENU_ELEMENTS_TWEEN_TIME );
|
||||
m_textOniPercentSmall[p].FadeOff( 0, "foldy", MENU_ELEMENTS_TWEEN_TIME );
|
||||
m_sprNewRecord[p].FadeOff( 0, "foldy", MENU_ELEMENTS_TWEEN_TIME );
|
||||
m_DifficultyIcon[p].Command( DIFFICULTY_ICON_OFF_COMMAND(p) );
|
||||
m_textPlayerOptions[p].Command( PLAYER_OPTIONS_OFF_COMMAND(p) );
|
||||
}
|
||||
|
||||
m_sprTryExtraStage.FadeOff( 0, "foldy", MENU_ELEMENTS_TWEEN_TIME );
|
||||
|
||||
// grade area
|
||||
for( p=0; p<NUM_PLAYERS; p++ )
|
||||
{
|
||||
m_sprGradeFrame[p].Command( GRADE_FRAME_OFF_COMMAND(p) );
|
||||
m_Grades[p].Command( GRADE_OFF_COMMAND(p) );
|
||||
m_textPercentWhole[p].Command( PERCENT_WHOLE_OFF_COMMAND(p) );
|
||||
m_textPercentRemainder[p].Command( PERCENT_REMAINDER_OFF_COMMAND(p) );
|
||||
m_textDancePoints[p].Command( DANCE_POINTS_OFF_COMMAND(p) );
|
||||
}
|
||||
|
||||
// bonus area
|
||||
for( p=0; p<NUM_PLAYERS; p++ )
|
||||
{
|
||||
m_sprBonusFrame[p].Command( BONUS_FRAME_OFF_COMMAND(p) );
|
||||
for( int r=0; r<NUM_RADAR_CATEGORIES; r++ ) // foreach line
|
||||
{
|
||||
m_sprPossibleBar[p][r].Command( BAR_POSSIBLE_OFF_COMMAND(r,p) );
|
||||
m_sprActualBar[p][r].Command( BAR_ACTUAL_OFF_COMMAND(r,p) );
|
||||
}
|
||||
m_textSongsSurvived[p].Command( SONGS_SURVIVED_OFF_COMMAND(p) );
|
||||
}
|
||||
|
||||
// judgement area
|
||||
int l;
|
||||
for( l=0; l<NUM_JUDGE_LINES; l++ )
|
||||
m_sprJudgeLabels[l].Command( JUDGE_LABEL_OFF_COMMAND(l) );
|
||||
|
||||
for( p=0; p<NUM_PLAYERS; p++ )
|
||||
for( l=0; l<NUM_JUDGE_LINES; l++ )
|
||||
m_textJudgeNumbers[l][p].Command( JUDGE_NUMBER_OFF_COMMAND(l,p) );
|
||||
|
||||
|
||||
// score area
|
||||
for( int s=0; s<NUM_SCORE_LINES; s++ )
|
||||
m_sprScoreLabel[s].Command( SCORE_LABEL_OFF_COMMAND(s) );
|
||||
for( p=0; p<NUM_PLAYERS; p++ )
|
||||
{
|
||||
for( int s=0; s<NUM_SCORE_LINES; s++ )
|
||||
m_ScoreDisplay[s][p].Command( SCORE_NUMBER_OFF_COMMAND(s,p) );
|
||||
m_sprNewRecord[p].Command( NEW_RECORD_OFF_COMMAND(p) );
|
||||
}
|
||||
m_sprTryExtraStage.Command( TRY_EXTRA_STAGE_OFF_COMMAND );
|
||||
}
|
||||
|
||||
|
||||
@@ -819,9 +776,9 @@ void ScreenEvaluation::MenuStart( PlayerNumber pn )
|
||||
}
|
||||
else // not event mode
|
||||
{
|
||||
switch( m_ResultMode )
|
||||
switch( m_Type )
|
||||
{
|
||||
case RM_ARCADE_STAGE:
|
||||
case stage:
|
||||
if( m_bTryExtraStage )
|
||||
{
|
||||
m_Menu.StartTransitioning( SM_GoToSelectMusic );
|
||||
@@ -839,18 +796,18 @@ void ScreenEvaluation::MenuStart( PlayerNumber pn )
|
||||
m_Menu.StartTransitioning( SM_GoToSelectMusic );
|
||||
}
|
||||
break;
|
||||
case RM_ARCADE_SUMMARY:
|
||||
case summary:
|
||||
m_Menu.StartTransitioning( SM_GoToGameFinished );
|
||||
break;
|
||||
case RM_COURSE:
|
||||
case course:
|
||||
m_Menu.StartTransitioning( SM_GoToGameFinished );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
switch( m_ResultMode )
|
||||
switch( m_Type )
|
||||
{
|
||||
case RM_ARCADE_STAGE:
|
||||
case stage:
|
||||
// Increment the stage counter.
|
||||
int iNumStagesOfLastSong;
|
||||
iNumStagesOfLastSong = SongManager::GetNumStagesForSong( GAMESTATE->m_pCurSong );
|
||||
|
||||
@@ -17,24 +17,26 @@
|
||||
#include "MenuElements.h"
|
||||
#include "Banner.h"
|
||||
#include "ScoreDisplayNormal.h"
|
||||
#include "BannerWithFrame.h"
|
||||
#include "Banner.h"
|
||||
#include "DifficultyIcon.h"
|
||||
|
||||
|
||||
const int NUM_JUDGE_LINES = 8; // marvelous, perfect, great, good, boo, miss, ok, max_combo
|
||||
const int MAX_SONGS_TO_SHOW = 5; // In summary, we show last 3 stages, plus extra stages if passed
|
||||
const int NUM_JUDGE_LINES = 8; // marvelous, perfect, great, good, boo, miss, ok, max_combo
|
||||
const int NUM_SCORE_LINES = 2; // score, time
|
||||
|
||||
|
||||
class ScreenEvaluation : public Screen
|
||||
{
|
||||
public:
|
||||
ScreenEvaluation( bool bFinalEval = false );
|
||||
enum Type { stage, summary, course };
|
||||
ScreenEvaluation( CString sClassName, Type type );
|
||||
virtual void Update( float fDeltaTime );
|
||||
virtual void DrawPrimitives();
|
||||
virtual void Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI );
|
||||
virtual void HandleScreenMessage( const ScreenMessage SM );
|
||||
|
||||
virtual void TweenOnScreen();
|
||||
// virtual void TweenOnScreen();
|
||||
virtual void TweenOffScreen();
|
||||
virtual void MenuLeft( PlayerNumber pn );
|
||||
virtual void MenuRight( PlayerNumber pn );
|
||||
@@ -42,50 +44,69 @@ public:
|
||||
virtual void MenuStart( PlayerNumber pn );
|
||||
|
||||
protected:
|
||||
enum ResultMode { RM_ARCADE_STAGE, RM_ARCADE_SUMMARY, RM_COURSE };
|
||||
ResultMode m_ResultMode;
|
||||
CString m_sClassName;
|
||||
Type m_Type;
|
||||
|
||||
MenuElements m_Menu;
|
||||
|
||||
BannerWithFrame m_BannerWithFrame[MAX_SONGS_TO_SHOW];
|
||||
//
|
||||
// banner area
|
||||
//
|
||||
Banner m_Banner[MAX_SONGS_TO_SHOW];
|
||||
Sprite m_sprBannerFrame[MAX_SONGS_TO_SHOW];
|
||||
Sprite m_sprStage;
|
||||
DifficultyIcon m_DifficultyIcon[NUM_PLAYERS];
|
||||
BitmapText m_textPlayerOptions[NUM_PLAYERS];
|
||||
|
||||
// used in arcade
|
||||
//
|
||||
// grade area
|
||||
//
|
||||
Sprite m_sprGradeFrame[NUM_PLAYERS];
|
||||
GradeDisplay m_Grades[NUM_PLAYERS];
|
||||
BitmapText m_textPercentWhole[NUM_PLAYERS];
|
||||
BitmapText m_textPercentRemainder[NUM_PLAYERS];
|
||||
BitmapText m_textDancePoints[NUM_PLAYERS];
|
||||
|
||||
// used in Oni/Endless
|
||||
Sprite m_sprPercentFrame[NUM_PLAYERS];
|
||||
BitmapText m_textOniPercentLarge[NUM_PLAYERS];
|
||||
BitmapText m_textOniPercentSmall[NUM_PLAYERS];
|
||||
|
||||
// used in arcade
|
||||
//
|
||||
// bonus area
|
||||
//
|
||||
Sprite m_sprBonusFrame[NUM_PLAYERS];
|
||||
Sprite m_sprPossibleBar[NUM_PLAYERS][NUM_RADAR_CATEGORIES];
|
||||
Sprite m_sprActualBar[NUM_PLAYERS][NUM_RADAR_CATEGORIES];
|
||||
|
||||
// used in Oni/Endless
|
||||
Sprite m_sprCourseFrame[NUM_PLAYERS];
|
||||
BitmapText m_textTime[NUM_PLAYERS];
|
||||
BitmapText m_textSongsSurvived[NUM_PLAYERS];
|
||||
|
||||
//
|
||||
// judgement area
|
||||
//
|
||||
Sprite m_sprJudgeLabels[NUM_JUDGE_LINES];
|
||||
BitmapText m_textJudgeNumbers[NUM_JUDGE_LINES][NUM_PLAYERS];
|
||||
|
||||
Sprite m_sprScoreLabel;
|
||||
ScoreDisplayNormal m_ScoreDisplay[NUM_PLAYERS];
|
||||
|
||||
//
|
||||
// score area
|
||||
//
|
||||
Sprite m_sprScoreLabel[NUM_SCORE_LINES];
|
||||
ScoreDisplayNormal m_ScoreDisplay[NUM_SCORE_LINES][NUM_PLAYERS];
|
||||
Sprite m_sprNewRecord[NUM_PLAYERS];
|
||||
|
||||
bool m_bTryExtraStage;
|
||||
Sprite m_sprTryExtraStage;
|
||||
};
|
||||
|
||||
class ScreenFinalEvaluation : public ScreenEvaluation
|
||||
class ScreenEvaluationStage : public ScreenEvaluation
|
||||
{
|
||||
public:
|
||||
ScreenFinalEvaluation() : ScreenEvaluation(true) {};
|
||||
ScreenEvaluationStage() : ScreenEvaluation("ScreenEvaluationStage",ScreenEvaluation::stage) {};
|
||||
};
|
||||
|
||||
class ScreenEvaluationSummary : public ScreenEvaluation
|
||||
{
|
||||
public:
|
||||
ScreenEvaluationSummary() : ScreenEvaluation("ScreenEvaluationSummary",ScreenEvaluation::summary) {};
|
||||
};
|
||||
|
||||
class ScreenEvaluationCourse : public ScreenEvaluation
|
||||
{
|
||||
public:
|
||||
ScreenEvaluationCourse() : ScreenEvaluation("ScreenEvaluationCourse",ScreenEvaluation::course) {};
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -1487,7 +1487,7 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM )
|
||||
ShowSavePrompt( SM_GoToStateAfterCleared );
|
||||
break;
|
||||
}
|
||||
SCREENMAN->SetNewScreen( "ScreenEvaluation" );
|
||||
SCREENMAN->SetNewScreen( "ScreenEvaluationStage" );
|
||||
break;
|
||||
|
||||
case SM_BeginFailed:
|
||||
@@ -1558,7 +1558,7 @@ void ScreenGameplay::HandleScreenMessage( const ScreenMessage SM )
|
||||
GAMESTATE->m_PlayMode == PLAY_MODE_ONI ||
|
||||
GAMESTATE->m_PlayMode == PLAY_MODE_ENDLESS ||
|
||||
GAMESTATE->IsExtraStage() || GAMESTATE->IsExtraStage2())
|
||||
SCREENMAN->SetNewScreen( "ScreenEvaluation" );
|
||||
SCREENMAN->SetNewScreen( "ScreenEvaluationSummary" );
|
||||
else if( PREFSMAN->m_bEventMode )
|
||||
HandleScreenMessage( SM_GoToScreenAfterBack );
|
||||
else
|
||||
|
||||
+113
-176
@@ -30,55 +30,50 @@
|
||||
#include "GameConstantsAndTypes.h"
|
||||
#include "ThemeManager.h"
|
||||
#include "Notes.h"
|
||||
|
||||
|
||||
#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")
|
||||
|
||||
#define BANNER_FRAME_X THEME->GetMetricF("ScreenSelectMusic","BannerFrameX")
|
||||
#define BANNER_FRAME_Y THEME->GetMetricF("ScreenSelectMusic","BannerFrameY")
|
||||
#define BANNER_X THEME->GetMetricF("ScreenSelectMusic","BannerX")
|
||||
#define BANNER_Y THEME->GetMetricF("ScreenSelectMusic","BannerY")
|
||||
#define BANNER_WIDTH THEME->GetMetricF("ScreenSelectMusic","BannerWidth")
|
||||
#define BANNER_HEIGHT THEME->GetMetricF("ScreenSelectMusic","BannerHeight")
|
||||
#define BPM_X THEME->GetMetricF("ScreenSelectMusic","BPMX")
|
||||
#define BPM_Y THEME->GetMetricF("ScreenSelectMusic","BPMY")
|
||||
#define BPM_ZOOM THEME->GetMetricF("ScreenSelectMusic","BPMZoom")
|
||||
#define STAGE_X THEME->GetMetricF("ScreenSelectMusic","StageX")
|
||||
#define STAGE_Y THEME->GetMetricF("ScreenSelectMusic","StageY")
|
||||
#define STAGE_ZOOM THEME->GetMetricF("ScreenSelectMusic","StageZoom")
|
||||
#define CD_TITLE_X THEME->GetMetricF("ScreenSelectMusic","CDTitleX")
|
||||
#define CD_TITLE_Y THEME->GetMetricF("ScreenSelectMusic","CDTitleY")
|
||||
#define DIFFICULTY_FRAME_X( p ) THEME->GetMetricF("ScreenSelectMusic",ssprintf("DifficultyFrameP%dX",p+1))
|
||||
#define DIFFICULTY_FRAME_Y( p ) THEME->GetMetricF("ScreenSelectMusic",ssprintf("DifficultyFrameP%dY",p+1))
|
||||
#define DIFFICULTY_ICON_X( p ) THEME->GetMetricF("ScreenSelectMusic",ssprintf("DifficultyIconP%dX",p+1))
|
||||
#define DIFFICULTY_ICON_Y( p ) THEME->GetMetricF("ScreenSelectMusic",ssprintf("DifficultyIconP%dY",p+1))
|
||||
#define RADAR_X THEME->GetMetricF("ScreenSelectMusic","RadarX")
|
||||
#define RADAR_Y THEME->GetMetricF("ScreenSelectMusic","RadarY")
|
||||
#define SORT_ICON_X THEME->GetMetricF("ScreenSelectMusic","SortIconX")
|
||||
#define SORT_ICON_Y THEME->GetMetricF("ScreenSelectMusic","SortIconY")
|
||||
#define SCORE_FRAME_X( p ) THEME->GetMetricF("ScreenSelectMusic",ssprintf("ScoreFrameP%dX",p+1))
|
||||
#define SCORE_FRAME_Y( p ) THEME->GetMetricF("ScreenSelectMusic",ssprintf("ScoreFrameP%dY",p+1))
|
||||
#define SCORE_X( p ) THEME->GetMetricF("ScreenSelectMusic",ssprintf("ScoreP%dX",p+1))
|
||||
#define SCORE_Y( p ) THEME->GetMetricF("ScreenSelectMusic",ssprintf("ScoreP%dY",p+1))
|
||||
#define SCORE_ZOOM THEME->GetMetricF("ScreenSelectMusic","ScoreZoom")
|
||||
#define METER_FRAME_X( p ) THEME->GetMetricF("ScreenSelectMusic",ssprintf("MeterFrameP%dX",p+1))
|
||||
#define METER_FRAME_Y( p ) THEME->GetMetricF("ScreenSelectMusic",ssprintf("MeterFrameP%dY",p+1))
|
||||
#define METER_X( p ) THEME->GetMetricF("ScreenSelectMusic",ssprintf("MeterP%dX",p+1))
|
||||
#define METER_Y( p ) THEME->GetMetricF("ScreenSelectMusic",ssprintf("MeterP%dY",p+1))
|
||||
#define WHEEL_X THEME->GetMetricF("ScreenSelectMusic","WheelX")
|
||||
#define WHEEL_Y THEME->GetMetricF("ScreenSelectMusic","WheelY")
|
||||
#define PLAYER_OPTIONS_X( p ) THEME->GetMetricF("ScreenSelectMusic",ssprintf("PlayerOptionsP%dX",p+1))
|
||||
#define PLAYER_OPTIONS_Y( p ) THEME->GetMetricF("ScreenSelectMusic",ssprintf("PlayerOptionsP%dY",p+1))
|
||||
#define SONG_OPTIONS_X THEME->GetMetricF("ScreenSelectMusic","SongOptionsX")
|
||||
#define SONG_OPTIONS_Y THEME->GetMetricF("ScreenSelectMusic","SongOptionsY")
|
||||
#define OPTION_ICONS_X( p ) THEME->GetMetricF("ScreenSelectMusic",ssprintf("OptionIconsP%dX",p+1))
|
||||
#define OPTION_ICONS_Y( p ) THEME->GetMetricF("ScreenSelectMusic",ssprintf("OptionIconsP%dY",p+1))
|
||||
#define BALLOON_X THEME->GetMetricF("ScreenSelectMusic","BalloonX")
|
||||
#define BALLOON_Y THEME->GetMetricF("ScreenSelectMusic","BalloonY")
|
||||
#define HELP_TEXT THEME->GetMetric("ScreenSelectMusic","HelpText")
|
||||
#define TIMER_SECONDS THEME->GetMetricI("ScreenSelectMusic","TimerSeconds")
|
||||
#define SCORE_CONNECTED_TO_MUSIC_WHEEL THEME->GetMetricB("ScreenSelectMusic","ScoreConnectedToMusicWheel")
|
||||
#define SAMPLE_MUSIC_DELAY THEME->GetMetricF("ScreenSelectMusic","SampleMusicDelay")
|
||||
|
||||
const float TWEEN_TIME = 0.5f;
|
||||
|
||||
static const ScreenMessage SM_AllowOptionsMenuRepeat = ScreenMessage(SM_User+1);
|
||||
|
||||
@@ -105,124 +100,77 @@ ScreenSelectMusic::ScreenSelectMusic()
|
||||
this->AddChild( &m_Menu );
|
||||
|
||||
// these guys get loaded SetSong and TweenToSong
|
||||
m_Banner.SetXY( BANNER_X, BANNER_Y );
|
||||
m_Banner.SetCroppedSize( BANNER_WIDTH, BANNER_HEIGHT );
|
||||
this->AddChild( &m_Banner );
|
||||
|
||||
m_sprBannerFrame.Load( THEME->GetPathTo("Graphics","ScreenSelectMusic banner frame") );
|
||||
m_sprBannerFrame.SetXY( BANNER_FRAME_X, BANNER_FRAME_Y );
|
||||
this->AddChild( &m_sprBannerFrame );
|
||||
|
||||
m_BPMDisplay.SetXY( BPM_X, BPM_Y );
|
||||
m_BPMDisplay.SetZoom( BPM_ZOOM );
|
||||
this->AddChild( &m_BPMDisplay );
|
||||
|
||||
m_sprStage.Load( THEME->GetPathTo("Graphics","ScreenSelectMusic stage "+GAMESTATE->GetStageText()) );
|
||||
m_sprStage.SetXY( STAGE_X, STAGE_Y );
|
||||
this->AddChild( &m_sprStage );
|
||||
|
||||
m_sprCDTitle.Load( THEME->GetPathTo("Graphics","ScreenSelectMusic fallback cdtitle") );
|
||||
m_sprCDTitle.EnableShadow( false );
|
||||
m_sprCDTitle.SetXY( CD_TITLE_X, CD_TITLE_Y );
|
||||
this->AddChild( &m_sprCDTitle );
|
||||
|
||||
this->AddChild( &m_GrooveRadar );
|
||||
|
||||
m_textSongOptions.LoadFromFont( THEME->GetPathTo("Fonts","normal") );
|
||||
this->AddChild( &m_textSongOptions );
|
||||
|
||||
this->AddChild( &m_MusicWheel );
|
||||
|
||||
for( p=0; p<NUM_PLAYERS; p++ )
|
||||
{
|
||||
if( !GAMESTATE->IsPlayerEnabled(p) )
|
||||
continue; // skip
|
||||
|
||||
m_sprDifficultyFrame[p].Load( THEME->GetPathTo("Graphics","ScreenSelectMusic difficulty frame 2x1") );
|
||||
m_sprDifficultyFrame[p].SetXY( DIFFICULTY_FRAME_X(p), DIFFICULTY_FRAME_Y(p) );
|
||||
m_sprDifficultyFrame[p].StopAnimating();
|
||||
m_sprDifficultyFrame[p].SetState( p );
|
||||
this->AddChild( &m_sprDifficultyFrame[p] );
|
||||
|
||||
m_DifficultyIcon[p].Load( THEME->GetPathTo("graphics","ScreenSelectMusic difficulty icons 1x5") );
|
||||
m_DifficultyIcon[p].SetXY( DIFFICULTY_ICON_X(p), DIFFICULTY_ICON_Y(p) );
|
||||
this->AddChild( &m_DifficultyIcon[p] );
|
||||
|
||||
m_AutoGenIcon[p].Load( THEME->GetPathTo("graphics","ScreenSelectMusic autogen") );
|
||||
m_AutoGenIcon[p].SetXY( DIFFICULTY_ICON_X(p), DIFFICULTY_ICON_Y(p) );
|
||||
this->AddChild( &m_AutoGenIcon[p] );
|
||||
}
|
||||
|
||||
m_GrooveRadar.SetXY( RADAR_X, RADAR_Y );
|
||||
this->AddChild( &m_GrooveRadar );
|
||||
|
||||
|
||||
m_textSongOptions.LoadFromFont( THEME->GetPathTo("Fonts","normal") );
|
||||
m_textSongOptions.SetXY( SONG_OPTIONS_X, SONG_OPTIONS_Y );
|
||||
m_textSongOptions.SetZoom( 0.5f );
|
||||
if( GAMESTATE->IsExtraStage() || GAMESTATE->IsExtraStage2() )
|
||||
m_textSongOptions.SetEffectDiffuseShift( 2.5f, RageColor(1,0,0,1), RageColor(1,1,1,1) ); // blink red
|
||||
m_textSongOptions.SetDiffuse( RageColor(1,1,1,1) ); // white
|
||||
this->AddChild( &m_textSongOptions );
|
||||
|
||||
for( p=0; p<NUM_PLAYERS; p++ )
|
||||
{
|
||||
if( !GAMESTATE->IsPlayerEnabled(p) )
|
||||
continue;
|
||||
|
||||
m_OptionIconRow[p].SetXY( OPTION_ICONS_X(p), OPTION_ICONS_Y(p) );
|
||||
m_OptionIconRow[p].Refresh( (PlayerNumber)p );
|
||||
this->AddChild( &m_OptionIconRow[p] );
|
||||
|
||||
m_sprMeterFrame[p].Load( THEME->GetPathTo("Graphics","ScreenSelectMusic meter frame") );
|
||||
m_sprMeterFrame[p].SetXY( METER_FRAME_X(p), METER_FRAME_Y(p) );
|
||||
m_sprMeterFrame[p].StopAnimating();
|
||||
m_sprMeterFrame[p].SetState( p );
|
||||
this->AddChild( &m_sprMeterFrame[p] );
|
||||
|
||||
m_DifficultyMeter[p].SetXY( METER_X(p), METER_Y(p) );
|
||||
m_DifficultyMeter[p].SetShadowLength( 2 );
|
||||
this->AddChild( &m_DifficultyMeter[p] );
|
||||
}
|
||||
|
||||
m_MusicWheel.SetXY( WHEEL_X, WHEEL_Y );
|
||||
this->AddChild( &m_MusicWheel );
|
||||
|
||||
for( p=0; p<NUM_PLAYERS; p++ )
|
||||
{
|
||||
if( !GAMESTATE->IsPlayerEnabled((PlayerNumber)p) )
|
||||
continue; // skip
|
||||
|
||||
|
||||
m_sprHighScoreFrame[p].Load( THEME->GetPathTo("Graphics","ScreenSelectMusic score frame 1x2") );
|
||||
m_sprHighScoreFrame[p].StopAnimating();
|
||||
m_sprHighScoreFrame[p].SetState( p );
|
||||
m_sprHighScoreFrame[p].SetXY( SCORE_X(p), SCORE_Y(p) );
|
||||
this->AddChild( &m_sprHighScoreFrame[p] );
|
||||
|
||||
m_HighScore[p].SetXY( SCORE_X(p), SCORE_Y(p) );
|
||||
m_HighScore[p].SetZoom( SCORE_ZOOM );
|
||||
m_HighScore[p].SetDiffuse( PlayerToColor(p) );
|
||||
this->AddChild( &m_HighScore[p] );
|
||||
}
|
||||
|
||||
m_MusicSortDisplay.SetXY( SORT_ICON_X, SORT_ICON_Y );
|
||||
m_MusicSortDisplay.Set( GAMESTATE->m_SongSortOrder );
|
||||
this->AddChild( &m_MusicSortDisplay );
|
||||
|
||||
m_sprMarathonBalloon.Load( THEME->GetPathTo("Graphics","ScreenSelectMusic marathon") );
|
||||
m_sprMarathonBalloon.StopAnimating();
|
||||
m_sprMarathonBalloon.SetXY( BALLOON_X, BALLOON_Y );
|
||||
m_sprMarathonBalloon.SetZoomY( 0 );
|
||||
m_sprMarathonBalloon.SetDiffuse( RageColor(1,1,1,1) );
|
||||
m_sprMarathonBalloon.SetEffectBob( 2, RageVector3(0,10,0) );
|
||||
m_sprMarathonBalloon.SetDiffuse( RageColor(1,1,1,0) );
|
||||
this->AddChild( &m_sprMarathonBalloon );
|
||||
|
||||
m_sprLongBalloon.Load( THEME->GetPathTo("Graphics","ScreenSelectMusic long") );
|
||||
m_sprLongBalloon.StopAnimating();
|
||||
m_sprLongBalloon.SetXY( BALLOON_X, BALLOON_Y );
|
||||
m_sprLongBalloon.SetZoomY( 0 );
|
||||
m_sprLongBalloon.SetDiffuse( RageColor(1,1,1,1) );
|
||||
m_sprLongBalloon.SetEffectBob( 2, RageVector3(0,10,0) );
|
||||
m_sprLongBalloon.SetDiffuse( RageColor(1,1,1,0) );
|
||||
this->AddChild( &m_sprLongBalloon );
|
||||
|
||||
m_sprOptionsMessage.Load( THEME->GetPathTo("Graphics","ScreenSelectMusic options message 1x2") );
|
||||
m_sprOptionsMessage.StopAnimating();
|
||||
m_sprOptionsMessage.SetXY( CENTER_X, CENTER_Y );
|
||||
m_sprOptionsMessage.SetZoom( 1 );
|
||||
m_sprOptionsMessage.SetDiffuse( RageColor(1,1,1,0) );
|
||||
m_sprOptionsMessage.SetDiffuse( RageColor(1,1,1,0) ); // invisible
|
||||
//this->AddChild( &m_sprOptionsMessage ); // we have to draw this manually over the top of transitions
|
||||
|
||||
|
||||
@@ -261,9 +209,10 @@ void ScreenSelectMusic::DrawPrimitives()
|
||||
|
||||
void ScreenSelectMusic::TweenOnScreen()
|
||||
{
|
||||
/*
|
||||
int p;
|
||||
|
||||
m_sprBannerFrame.FadeOn( 0, "bounce left", TWEEN_TIME );
|
||||
m_sprBannerFrame.Command( 0, "bounce left", TWEEN_TIME );
|
||||
m_Banner.FadeOn( 0, "bounce left", TWEEN_TIME );
|
||||
m_BPMDisplay.FadeOn( 0, "bounce left", TWEEN_TIME );
|
||||
m_sprStage.FadeOn( 0, "bounce left", TWEEN_TIME );
|
||||
@@ -302,68 +251,65 @@ void ScreenSelectMusic::TweenOnScreen()
|
||||
}
|
||||
|
||||
m_MusicWheel.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 );
|
||||
m_GrooveRadar.TweenOnScreen();
|
||||
m_GrooveRadar.Command( RADAR_ON_COMMAND );
|
||||
m_textSongOptions.Command( SONG_OPTIONS_ON_COMMAND );
|
||||
m_MusicSortDisplay.Command( SORT_ICON_ON_COMMAND );
|
||||
m_MusicWheel.TweenOnScreen();
|
||||
m_MusicWheel.Command( WHEEL_ON_COMMAND );
|
||||
|
||||
for( int p=0; p<NUM_PLAYERS; p++ )
|
||||
{
|
||||
m_sprDifficultyFrame[p].Command( DIFFICULTY_FRAME_ON_COMMAND(p) );
|
||||
m_sprMeterFrame[p].Command( METER_FRAME_ON_COMMAND(p) );
|
||||
m_OptionIconRow[p].Command( OPTION_ICONS_ON_COMMAND(p) );
|
||||
m_DifficultyIcon[p].Command( DIFFICULTY_ICON_ON_COMMAND(p) );
|
||||
m_AutoGenIcon[p].Command( AUTOGEN_ICON_ON_COMMAND(p) );
|
||||
m_DifficultyMeter[p].Command( METER_ON_COMMAND(p) );
|
||||
m_sprHighScoreFrame[p].Command( SCORE_FRAME_ON_COMMAND(p) );
|
||||
m_HighScore[p].Command( SCORE_ON_COMMAND(p) );
|
||||
}
|
||||
|
||||
if( GAMESTATE->IsExtraStage() || GAMESTATE->IsExtraStage2() )
|
||||
m_textSongOptions.Command( SONG_OPTIONS_EXTRA_COMMAND );
|
||||
}
|
||||
|
||||
void ScreenSelectMusic::TweenOffScreen()
|
||||
{
|
||||
m_sprBannerFrame.FadeOff( 0, "bounce left", TWEEN_TIME );
|
||||
m_Banner.FadeOff( 0, "bounce left", TWEEN_TIME );
|
||||
m_BPMDisplay.FadeOff( 0, "bounce left", TWEEN_TIME );
|
||||
m_sprStage.FadeOff( 0, "bounce left", TWEEN_TIME );
|
||||
m_sprCDTitle.FadeOff( 0, "bounce left", TWEEN_TIME );
|
||||
|
||||
int p;
|
||||
for( p=0; p<NUM_PLAYERS; p++ )
|
||||
{
|
||||
m_sprDifficultyFrame[p].FadeOff( 0, "fade", TWEEN_TIME );
|
||||
m_sprMeterFrame[p].FadeOff( 0, "fade", TWEEN_TIME );
|
||||
}
|
||||
|
||||
|
||||
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 );
|
||||
m_GrooveRadar.TweenOffScreen();
|
||||
|
||||
m_textSongOptions.FadeOff( 0, "foldy", TWEEN_TIME );
|
||||
|
||||
for( p=0; p<NUM_PLAYERS; p++ )
|
||||
{
|
||||
m_OptionIconRow[p].FadeOff( 0, "foldy", TWEEN_TIME );
|
||||
// m_textPlayerOptions[p].FadeOff( 0, "fade", TWEEN_TIME );
|
||||
|
||||
m_DifficultyIcon[p].FadeOff( 0, "foldy", TWEEN_TIME );
|
||||
m_AutoGenIcon[p].FadeOff( 0, "foldy", TWEEN_TIME );
|
||||
|
||||
m_DifficultyMeter[p].FadeOff( 0, "foldy", TWEEN_TIME );
|
||||
}
|
||||
|
||||
m_MusicSortDisplay.FadeOff( 0, "fade", TWEEN_TIME );
|
||||
|
||||
vector<Actor*> apActorsInScore;
|
||||
for( p=0; p<NUM_PLAYERS; p++ )
|
||||
{
|
||||
apActorsInScore.push_back( &m_sprHighScoreFrame[p] );
|
||||
apActorsInScore.push_back( &m_HighScore[p] );
|
||||
}
|
||||
for( unsigned i=0; i<apActorsInScore.size(); i++ )
|
||||
{
|
||||
apActorsInScore[i]->BeginTweening( TWEEN_TIME, TWEEN_DECELERATE );
|
||||
apActorsInScore[i]->SetTweenX( SCORE_CONNECTED_TO_MUSIC_WHEEL ? apActorsInScore[i]->GetX()+400 : apActorsInScore[i]->GetX()-400 );
|
||||
}
|
||||
|
||||
m_sprMarathonBalloon.StopTweening();
|
||||
m_sprMarathonBalloon.BeginTweening( 0.2f );
|
||||
m_sprMarathonBalloon.SetTweenZoomY( 0 );
|
||||
m_sprLongBalloon.StopTweening();
|
||||
m_sprLongBalloon.BeginTweening( 0.2f );
|
||||
m_sprLongBalloon.SetTweenZoomY( 0 );
|
||||
|
||||
m_GrooveRadar.Command( RADAR_OFF_COMMAND );
|
||||
m_textSongOptions.Command( SONG_OPTIONS_OFF_COMMAND );
|
||||
m_MusicSortDisplay.Command( SORT_ICON_OFF_COMMAND );
|
||||
m_MusicWheel.TweenOffScreen();
|
||||
m_MusicWheel.Command( WHEEL_OFF_COMMAND );
|
||||
|
||||
for( int p=0; p<NUM_PLAYERS; p++ )
|
||||
{
|
||||
m_sprDifficultyFrame[p].Command( DIFFICULTY_FRAME_OFF_COMMAND(p) );
|
||||
m_sprMeterFrame[p].Command( METER_FRAME_OFF_COMMAND(p) );
|
||||
m_OptionIconRow[p].Command( OPTION_ICONS_OFF_COMMAND(p) );
|
||||
m_DifficultyIcon[p].Command( DIFFICULTY_ICON_OFF_COMMAND(p) );
|
||||
m_AutoGenIcon[p].Command( AUTOGEN_ICON_OFF_COMMAND(p) );
|
||||
m_DifficultyMeter[p].Command( METER_OFF_COMMAND(p) );
|
||||
m_sprHighScoreFrame[p].Command( SCORE_FRAME_OFF_COMMAND(p) );
|
||||
m_HighScore[p].Command( SCORE_OFF_COMMAND(p) );
|
||||
}
|
||||
}
|
||||
|
||||
void ScreenSelectMusic::TweenScoreOnAndOffAfterChangeSort()
|
||||
{
|
||||
if( !SCORE_CONNECTED_TO_MUSIC_WHEEL )
|
||||
return; // do nothing
|
||||
|
||||
/* XXX metric this with MusicWheel::TweenOnScreen */
|
||||
float factor = 0.25f;
|
||||
|
||||
@@ -382,7 +328,7 @@ void ScreenSelectMusic::TweenScoreOnAndOffAfterChangeSort()
|
||||
apActorsInScore[i]->StopTweening();
|
||||
|
||||
float fOriginalX = apActorsInScore[i]->GetX();
|
||||
apActorsInScore[i]->BeginTweening( factor*TWEEN_TIME, TWEEN_DECELERATE ); // tween off screen
|
||||
apActorsInScore[i]->BeginTweening( factor*0.5, TWEEN_DECELERATE ); // tween off screen
|
||||
apActorsInScore[i]->SetTweenX( fOriginalX+400 );
|
||||
|
||||
apActorsInScore[i]->BeginTweening( factor*0.5f ); // sleep
|
||||
@@ -725,15 +671,16 @@ void ScreenSelectMusic::MenuStart( PlayerNumber pn )
|
||||
float fShowSeconds = m_Menu.m_Out.GetLengthSeconds();
|
||||
|
||||
// show "hold START for options"
|
||||
m_sprOptionsMessage.SetDiffuse( RageColor(1,1,1,0) );
|
||||
m_sprOptionsMessage.BeginTweening( 0.15f ); // fade in
|
||||
m_sprOptionsMessage.SetDiffuse( RageColor(1,1,1,1) ); // visible
|
||||
m_sprOptionsMessage.Command( OPTIONS_MESSAGE_SHOW_COMMAND );
|
||||
/* m_sprOptionsMessage.BeginTweening( 0.15f ); // fade in
|
||||
m_sprOptionsMessage.SetTweenZoomY( 1 );
|
||||
m_sprOptionsMessage.SetTweenDiffuse( RageColor(1,1,1,1) );
|
||||
m_sprOptionsMessage.BeginTweening( fShowSeconds-0.35f ); // sleep
|
||||
m_sprOptionsMessage.BeginTweening( 0.15f ); // fade out
|
||||
m_sprOptionsMessage.SetTweenDiffuse( RageColor(1,1,1,0) );
|
||||
m_sprOptionsMessage.SetTweenZoomY( 0 );
|
||||
|
||||
*/
|
||||
m_bAllowOptionsMenu = true;
|
||||
/* Don't accept a held START for a little while, so it's not
|
||||
* hit accidentally. Accept an initial START right away, though,
|
||||
@@ -841,12 +788,8 @@ void ScreenSelectMusic::AfterMusicChange()
|
||||
no_banner_change = true;
|
||||
}
|
||||
|
||||
m_sprMarathonBalloon.StopTweening();
|
||||
m_sprMarathonBalloon.BeginTweening( 0.2f );
|
||||
m_sprMarathonBalloon.SetTweenZoomY( 0 );
|
||||
m_sprLongBalloon.StopTweening();
|
||||
m_sprLongBalloon.BeginTweening( 0.2f );
|
||||
m_sprLongBalloon.SetTweenZoomY( 0 );
|
||||
m_sprMarathonBalloon.Command( BALLOON_OFF_COMMAND );
|
||||
m_sprLongBalloon.Command( BALLOON_OFF_COMMAND );
|
||||
|
||||
switch( m_MusicWheel.GetSelectedType() )
|
||||
{
|
||||
@@ -910,17 +853,11 @@ void ScreenSelectMusic::AfterMusicChange()
|
||||
* like the effect with a lot of delay. */
|
||||
if( pSong->m_fMusicLengthSeconds > PREFSMAN->m_fMarathonVerSongSeconds )
|
||||
{
|
||||
m_sprMarathonBalloon.StopTweening();
|
||||
m_sprMarathonBalloon.BeginTweening( 0.1f ); /* delay */
|
||||
m_sprMarathonBalloon.BeginTweening( 0.2f );
|
||||
m_sprMarathonBalloon.SetTweenZoomY( 1 );
|
||||
m_sprMarathonBalloon.Command( BALLOON_ON_COMMAND );
|
||||
}
|
||||
else if( pSong->m_fMusicLengthSeconds > PREFSMAN->m_fLongVerSongSeconds )
|
||||
{
|
||||
m_sprLongBalloon.StopTweening();
|
||||
m_sprMarathonBalloon.BeginTweening( 0.1f ); /* delay */
|
||||
m_sprLongBalloon.BeginTweening( 0.2f );
|
||||
m_sprLongBalloon.SetTweenZoomY( 1 );
|
||||
m_sprLongBalloon.Command( BALLOON_ON_COMMAND );
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -57,10 +57,10 @@ LINK32=link.exe
|
||||
# SUBTRACT LINK32 /verbose /pdb:none
|
||||
# Begin Special Build Tool
|
||||
IntDir=.\../Release6
|
||||
TargetDir=\temp\stepmania
|
||||
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
|
||||
|
||||
@@ -92,10 +92,10 @@ LINK32=link.exe
|
||||
# SUBTRACT LINK32 /verbose /profile /pdb:none /incremental:no /nodefaultlib
|
||||
# Begin Special Build Tool
|
||||
IntDir=.\../Debug6
|
||||
TargetDir=\temp\stepmania
|
||||
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
|
||||
|
||||
@@ -972,14 +972,6 @@ SOURCE=.\Banner.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\BannerWithFrame.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\BannerWithFrame.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\BPMDisplay.cpp
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
@@ -292,6 +292,12 @@ CString ThemeManager::GetMetricsPathFromName( CString sThemeName )
|
||||
return GetThemeDirFromName( sThemeName ) + "metrics.ini";
|
||||
}
|
||||
|
||||
bool ThemeManager::HasMetric( CString sClassName, CString sValueName )
|
||||
{
|
||||
CString sThrowAway;
|
||||
return m_pIniMetrics->GetValue(sClassName,sValueName,sThrowAway);
|
||||
}
|
||||
|
||||
CString ThemeManager::GetMetricRaw( CString sClassName, CString sValueName )
|
||||
{
|
||||
#if defined(DEBUG) && defined(WIN32)
|
||||
|
||||
@@ -30,6 +30,7 @@ public:
|
||||
CString GetPathTo( CString sAssetCategory, CString sFileName ); // looks up the current theme in PREFSMAN
|
||||
CString GetPathToOptional( CString sAssetCategory, CString sFileName ); // looks up the current theme in PREFSMAN
|
||||
|
||||
bool HasMetric( CString sClassName, CString sValueName );
|
||||
CString GetMetricRaw( CString sClassName, CString sValueName );
|
||||
CString GetMetric( CString sClassName, CString sValueName );
|
||||
int GetMetricI( CString sClassName, CString sValueName );
|
||||
|
||||
Reference in New Issue
Block a user