Some rather massive changes to Evaluation to allow for theming of Pump It Up style Evaluation Screens.

In Short: A sound plays each time a judgement appears on the screen. I've made a fair few options available for themers on this one... hence so many redir files.
This commit is contained in:
Andrew Livy
2003-05-11 22:19:40 +00:00
parent b6726a00c3
commit 502f6fa0b6
9 changed files with 129 additions and 15 deletions
+4 -3
View File
@@ -1,4 +1,5 @@
//Test file for Miryo's new Unlock system. Songs are matched by name, not folder name
[DP]500|Gamelan de Couple
[DP]7500|Exotic Ethnic
[DP]10000|Maxx Unlimited
// [DP]500|Gamelan de Couple
// [DP]7500|Exotic Ethnic
// [DP]10000|Maxx Unlimited
[DP]4000|Paranoia Survivor Max
+72
View File
@@ -861,6 +861,15 @@ TickEarlySeconds=0.05
[ScreenEvaluation]
BannerWidth=248
BannerHeight=92
JudgeSoundTimeMarvelous=-1
JudgeSoundTimePerfect=-1
JudgeSoundTimeGreat=-1
JudgeSoundTimeGood=-1
JudgeSoundTimeBoo=-1
JudgeSoundTimeMiss=-1
JudgeSoundTimeOK=-1
JudgeSoundTimeMaxCombo=-1 // how long to wait until we play the sound after the screen appears.... -1 means play no sound ever.
JudgeSoundIfJudgeGraphicsFullAlpha=0 // only play the sound if one of the judge graphics for the associated sound are full alpha
LargeBannerX=320
LargeBannerY=100
LargeBannerOnCommand=addy,480;sleep,0.0;decelerate,0.3;addy,-480
@@ -1230,6 +1239,15 @@ ShowScoreArea=1
ShowTimeArea=0
HelpText=Press START to continue
TimerSeconds=15
JudgeSoundTimeMarvelous=-1
JudgeSoundTimePerfect=-1
JudgeSoundTimeGreat=-1
JudgeSoundTimeGood=-1
JudgeSoundTimeBoo=-1
JudgeSoundTimeMiss=-1
JudgeSoundTimeOK=-1
JudgeSoundTimeMaxCombo=-1
JudgeSoundIfJudgeGraphicsFullAlpha=0
[ScreenEvaluationSummary]
NextScreen=ScreenNameEntry
@@ -1252,6 +1270,15 @@ ShowScoreArea=1
ShowTimeArea=0
HelpText=Press START to continue
TimerSeconds=30
JudgeSoundTimeMarvelous=-1
JudgeSoundTimePerfect=-1
JudgeSoundTimeGreat=-1
JudgeSoundTimeGood=-1
JudgeSoundTimeBoo=-1
JudgeSoundTimeMiss=-1
JudgeSoundTimeOK=-1
JudgeSoundTimeMaxCombo=-1
JudgeSoundIfJudgeGraphicsFullAlpha=0
[ScreenEvaluationNonstop]
NextScreen=ScreenNameEntry
@@ -1274,6 +1301,15 @@ ShowScoreArea=1
ShowTimeArea=0
HelpText=Press START to continue
TimerSeconds=30
JudgeSoundTimeMarvelous=-1
JudgeSoundTimePerfect=-1
JudgeSoundTimeGreat=-1
JudgeSoundTimeGood=-1
JudgeSoundTimeBoo=-1
JudgeSoundTimeMiss=-1
JudgeSoundTimeOK=-1
JudgeSoundTimeMaxCombo=-1
JudgeSoundIfJudgeGraphicsFullAlpha=0
[ScreenEvaluationOni]
NextScreen=ScreenNameEntry
@@ -1296,6 +1332,15 @@ ShowScoreArea=0
ShowTimeArea=1
HelpText=Press START to continue
TimerSeconds=30
JudgeSoundTimeMarvelous=-1
JudgeSoundTimePerfect=-1
JudgeSoundTimeGreat=-1
JudgeSoundTimeGood=-1
JudgeSoundTimeBoo=-1
JudgeSoundTimeMiss=-1
JudgeSoundTimeOK=-1
JudgeSoundTimeMaxCombo=-1
JudgeSoundIfJudgeGraphicsFullAlpha=0
[ScreenEvaluationEndless]
NextScreen=ScreenNameEntry
@@ -1318,6 +1363,15 @@ ShowScoreArea=0
ShowTimeArea=1
HelpText=Press START to continue
TimerSeconds=30
JudgeSoundTimeMarvelous=-1
JudgeSoundTimePerfect=-1
JudgeSoundTimeGreat=-1
JudgeSoundTimeGood=-1
JudgeSoundTimeBoo=-1
JudgeSoundTimeMiss=-1
JudgeSoundTimeOK=-1
JudgeSoundTimeMaxCombo=-1
JudgeSoundIfJudgeGraphicsFullAlpha=0
[ScreenEvaluationBattle]
NextScreen=ScreenSelectMusic
@@ -1340,6 +1394,15 @@ ShowScoreArea=1
ShowTimeArea=0
HelpText=Press START to continue
TimerSeconds=15
JudgeSoundTimeMarvelous=-1
JudgeSoundTimePerfect=-1
JudgeSoundTimeGreat=-1
JudgeSoundTimeGood=-1
JudgeSoundTimeBoo=-1
JudgeSoundTimeMiss=-1
JudgeSoundTimeOK=-1
JudgeSoundTimeMaxCombo=-1
JudgeSoundIfJudgeGraphicsFullAlpha=0
[ScreenEvaluationRave]
NextScreen=ScreenSelectMusic
@@ -1362,6 +1425,15 @@ ShowScoreArea=1
ShowTimeArea=0
HelpText=Press START to continue
TimerSeconds=15
JudgeSoundTimeMarvelous=-1
JudgeSoundTimePerfect=-1
JudgeSoundTimeGreat=-1
JudgeSoundTimeGood=-1
JudgeSoundTimeBoo=-1
JudgeSoundTimeMiss=-1
JudgeSoundTimeOK=-1
JudgeSoundTimeMaxCombo=-1
JudgeSoundIfJudgeGraphicsFullAlpha=0
[ScreenMusicScroll]
ScrollDelay=0.2
+4
View File
@@ -18,6 +18,7 @@
#include "RageMath.h"
#include "GameConstantsAndTypes.h"
#include "RageLog.h"
#include "ThemeManager.h"
/* This is Reset instead of Init since many derived classes have Init() functions
* that shouldn't change the position of the actor. */
@@ -280,6 +281,7 @@ void Actor::Update( float fDeltaTime )
if( m_bFirstUpdate )
m_bFirstUpdate = false;
}
void Actor::BeginTweening( float time, TweenType tt )
@@ -646,6 +648,8 @@ void Actor::Command( CString sCommandString )
CStringArray asCommands;
split( sCommandString, ";", asCommands, true );
float fTimeElapsed=0;
for( unsigned c=0; c<asCommands.size(); c++ )
{
CStringArray asTokens;
+1 -3
View File
@@ -13,7 +13,6 @@
#include "RageTypes.h"
class Actor
{
public:
@@ -270,6 +269,7 @@ protected:
TweenState m_start;
vector<TweenState> m_TweenStates;
vector<TweenInfo> m_TweenInfo;
TweenState& LatestTween() { ASSERT(m_TweenStates.size()>0); return m_TweenStates.back(); };
//
@@ -277,8 +277,6 @@ protected:
//
TweenState m_temp;
bool m_bFirstUpdate;
//
+28 -2
View File
@@ -25,6 +25,7 @@
#include "ThemeManager.h"
#include "RageSoundManager.h"
#include "ActorUtil.h"
#include "RageTimer.h"
const int NUM_SCORE_DIGITS = 9;
@@ -87,6 +88,8 @@ const char* JUDGE_STRING[NUM_JUDGE_LINES] = { "Marvelous", "Perfect", "Great", "
#define TRY_EXTRA_STAGE_UtilOffCommand THEME->GetMetric ("ScreenEvaluation",ssprintf("TryExtraStageUtilOffCommand"))
*/
#define JUDGE_SOUND_TIME( name ) THEME->GetMetricF( m_sName, ssprintf("JudgeSoundTime%s", name) );
#define SOUND_ON_FULL_ALPHA THEME->GetMetricB( m_sName, "JudgeSoundIfJudgeGraphicsFullAlpha" )
// metrics that are specific to classes derived from ScreenEvaluation
#define NEXT_SCREEN THEME->GetMetric (m_sName,"NextScreen")
#define END_SCREEN THEME->GetMetric (m_sName,"EndScreen")
@@ -131,7 +134,6 @@ ScreenEvaluation::ScreenEvaluation( CString sClassName, Type type ) : Screen(sCl
m_sName = sClassName;
m_Type = type;
int p;
//
@@ -521,6 +523,7 @@ ScreenEvaluation::ScreenEvaluation( CString sClassName, Type type ) : Screen(sCl
int l;
for( l=0; l<NUM_JUDGE_LINES; l++ )
{
m_TimeToPlayJudgeSound[l] = -1;
if( l == 0 && !PREFSMAN->m_bMarvelousTiming )
continue; // skip
@@ -533,6 +536,9 @@ ScreenEvaluation::ScreenEvaluation( CString sClassName, Type type ) : Screen(sCl
UtilSetXYAndOnCommand( m_sprJudgeLabels[l], "ScreenEvaluation" );
this->AddChild( &m_sprJudgeLabels[l] );
m_soundJudgeSound[l].Load( THEME->GetPathToS( ssprintf("ScreenEvaluation JudgeSound %s", JUDGE_STRING[l]) ) );
m_TimeToPlayJudgeSound[l] = JUDGE_SOUND_TIME( JUDGE_STRING[l] );
for( p=0; p<NUM_PLAYERS; p++ )
{
if( !GAMESTATE->IsPlayerEnabled( (PlayerNumber)p ) )
@@ -680,6 +686,7 @@ ScreenEvaluation::ScreenEvaluation( CString sClassName, Type type ) : Screen(sCl
SOUNDMAN->PlayMusic( THEME->GetPathToS("ScreenEvaluation music") );
m_fScreenCreateTime = RageTimer::GetTimeSinceStart();
}
@@ -798,10 +805,29 @@ void ScreenEvaluation::TweenOffScreen()
UtilOffCommand( m_sprTryExtraStage, "ScreenEvaluation" );
}
void ScreenEvaluation::Update( float fDeltaTime )
{
Screen::Update( fDeltaTime );
for( int l=0; l<NUM_JUDGE_LINES; l++ )
{
if(SHOW_JUDGMENT(l))
{
if(m_TimeToPlayJudgeSound[l] != -1)
{
RageColor c;
c.a = 1;
if((m_fScreenCreateTime + m_TimeToPlayJudgeSound[l]) < RageTimer::GetTimeSinceStart())
{
if((SOUND_ON_FULL_ALPHA && (m_sprJudgeLabels[l].GetDiffuse().a == c.a || m_textJudgeNumbers[l][PLAYER_1].GetDiffuse().a == c.a || m_textJudgeNumbers[l][PLAYER_2].GetDiffuse().a == c.a) || !SOUND_ON_FULL_ALPHA) )
{
m_soundJudgeSound[l].Play();
m_TimeToPlayJudgeSound[l] = -1;
}
}
}
}
}
}
void ScreenEvaluation::DrawPrimitives()
+5
View File
@@ -47,6 +47,8 @@ protected:
CString m_sName;
Type m_Type;
float m_fScreenCreateTime;
MenuElements m_Menu;
// banner area
@@ -84,6 +86,9 @@ protected:
// judgment area
Sprite m_sprJudgeLabels[NUM_JUDGE_LINES];
RageSound m_soundJudgeSound[NUM_JUDGE_LINES];
float m_TimeToPlayJudgeSound[NUM_JUDGE_LINES];
BitmapText m_textJudgeNumbers[NUM_JUDGE_LINES][NUM_PLAYERS];
// score area
+7
View File
@@ -71,6 +71,13 @@ BEGIN
END
#endif // APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Cursor
//
IDC_CURSOR1 CURSOR DISCARDABLE "cursor1.cur"
#endif // Japanese resources
/////////////////////////////////////////////////////////////////////////////
+5 -5
View File
@@ -1,5 +1,5 @@
# Microsoft Developer Studio Project File - Name="StepMania" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 60000
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Application" 0x0101
@@ -57,10 +57,10 @@ LINK32=link.exe
# SUBTRACT LINK32 /verbose /pdb:none
# Begin Special Build Tool
IntDir=.\../Release6
TargetDir=\stepmania\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=\stepmania\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
+2 -1
View File
@@ -9,6 +9,7 @@
#define BITMAP_CRASH 121
#define IDD_DIALOG1 126
#define IDD_DIALOG2 127
#define IDC_CURSOR1 128
#define BITMAP_ERROR 129
#define IDD_DISASM_CRASH 199
#define IDC_SHOCKWAVEFLASH1 1000
@@ -40,7 +41,7 @@
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 128
#define _APS_NEXT_RESOURCE_VALUE 129
#define _APS_NEXT_COMMAND_VALUE 40009
#define _APS_NEXT_CONTROL_VALUE 1015
#define _APS_NEXT_SYMED_VALUE 101