per-judgement step commands

This commit is contained in:
Glenn Maynard
2004-07-02 20:08:17 +00:00
parent cac98a3d12
commit ab9cac2642
10 changed files with 31 additions and 20 deletions
@@ -50,3 +50,9 @@ GoodCommand=diffuse,0.3,0.8,1.0,1;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffus
GreatCommand=diffuse,0.0,1.0,0.4,1;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
PerfectCommand=diffuse,1.0,1.0,0.3,1;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
MarvelousCommand=diffuse,1.0,1.0,1.0,1;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
[ReceptorArrow]
GreatCommand=
PerfectCommand=
MarvelousCommand=
+1 -1
View File
@@ -654,7 +654,7 @@ void NoteField::FadeToFail()
// don't fade all over again if this is called twice
}
void NoteField::Step( int iCol ) { SearchForSongBeat()->m_ReceptorArrowRow.Step( iCol ); }
void NoteField::Step( int iCol, TapNoteScore score ) { SearchForSongBeat()->m_ReceptorArrowRow.Step( iCol, score ); }
void NoteField::SetPressed( int iCol ) { SearchForSongBeat()->m_ReceptorArrowRow.SetPressed( iCol ); }
void NoteField::DidTapNote( int iCol, TapNoteScore score, bool bBright ) { SearchForSongBeat()->m_GhostArrowRow.DidTapNote( iCol, score, bBright ); }
void NoteField::DidHoldNote( int iCol ) { /*SearchForSongBeat()->m_GhostArrowRow.DidHoldNote( iCol );*/ }
+1 -1
View File
@@ -37,7 +37,7 @@ public:
void CacheAllUsedNoteSkins();
void CacheNoteSkin( CString skin );
void Step( int iCol );
void Step( int iCol, TapNoteScore score );
void SetPressed( int iCol );
void DidTapNote( int iCol, TapNoteScore score, bool bBright );
void DidHoldNote( int iCol );
+3 -7
View File
@@ -44,7 +44,6 @@ CachedThemeMetricB HOLD_JUDGMENTS_UNDER_FIELD ("Player","HoldJudgmentsUnderField
#define START_DRAWING_AT_PIXELS THEME->GetMetricI("Player","StartDrawingAtPixels")
#define STOP_DRAWING_AT_PIXELS THEME->GetMetricI("Player","StopDrawingAtPixels")
#define MAX_PRO_TIMING_ERROR THEME->GetMetricI("Player","MaxProTimingError")
CachedThemeMetricI RECEPTOR_CUTOFF ("Player","ReceptorNoSinkScoreCutoff");
/* Distance to search for a note in Step(). */
/* Units? */
@@ -63,7 +62,6 @@ PlayerMinus::PlayerMinus()
BRIGHT_GHOST_COMBO_THRESHOLD.Refresh();
TAP_JUDGMENTS_UNDER_FIELD.Refresh();
HOLD_JUDGMENTS_UNDER_FIELD.Refresh();
RECEPTOR_CUTOFF.Refresh();
m_PlayerNumber = PLAYER_INVALID;
m_fNoteFieldHeight = 0;
@@ -886,12 +884,10 @@ void PlayerMinus::Step( int col, RageTimer tm )
m_iDCState = AS2D_FEVER; // super celebrate time :)
}
}
m_pNoteField->Step( col, score );
}
//Don't blink arrows if the score is higher than what the theme
//says should not blink
if (RECEPTOR_CUTOFF>=score)
m_pNoteField->Step( col );
else
m_pNoteField->Step( col, TNS_NONE );
}
void PlayerMinus::HandleAutosync(float fNoteOffset)
+9 -4
View File
@@ -28,7 +28,12 @@ bool ReceptorArrow::Load( CString NoteSkin, PlayerNumber pn, int iColNo )
CString sPath;
m_pReceptorWaiting.Load( NOTESKIN->GetPathToFromNoteSkinAndButton(NoteSkin,sButton,"receptor waiting") );
m_pReceptorGo.Load( NOTESKIN->GetPathToFromNoteSkinAndButton(NoteSkin,sButton,"receptor go") );
m_sStepCommand = NOTESKIN->GetMetric(GAMESTATE->m_PlayerOptions[pn].m_sNoteSkin,"ReceptorArrow","StepCommand");
for( int i=0; i<NUM_TAP_NOTE_SCORES; i++ )
{
CString sJudge = TapNoteScoreToString( (TapNoteScore)i );
CString sCommand = Capitalize(sJudge)+"Command";
m_sScoreCommand[i] = NOTESKIN->GetMetric( NoteSkin, m_sName, sCommand );
}
m_pPressBlock.Load( NOTESKIN->GetPathToFromNoteSkinAndButton(NoteSkin,sButton,"KeypressBlock") );
@@ -67,12 +72,12 @@ void ReceptorArrow::DrawPrimitives()
ActorFrame::DrawPrimitives();
}
void ReceptorArrow::Step()
void ReceptorArrow::Step( TapNoteScore score )
{
m_pReceptorGo->FinishTweening();
m_pReceptorWaiting->FinishTweening();
m_pReceptorGo->Command( m_sStepCommand );
m_pReceptorWaiting->Command( m_sStepCommand );
m_pReceptorGo->Command( m_sScoreCommand[score] );
m_pReceptorWaiting->Command( m_sScoreCommand[score] );
}
/*
+3 -2
View File
@@ -6,6 +6,7 @@
#include "ActorFrame.h"
#include "ActorUtil.h"
#include "PlayerNumber.h"
#include "GameConstantsAndTypes.h"
class ReceptorArrow : public ActorFrame
{
@@ -15,7 +16,7 @@ public:
virtual void DrawPrimitives();
virtual void Update( float fDeltaTime );
void Step();
void Step( TapNoteScore score );
void SetPressed() { m_bIsPressed = true; };
private:
@@ -24,7 +25,7 @@ private:
AutoActor m_pReceptorWaiting;
AutoActor m_pReceptorGo;
CString m_sStepCommand;
CString m_sScoreCommand[NUM_TAP_NOTE_SCORES];
AutoActor m_pPressBlock;
bool m_bIsPressed;
+5 -2
View File
@@ -24,7 +24,10 @@ void ReceptorArrowRow::Load( PlayerNumber pn, CString NoteSkin, float fYReverseO
m_iNumCols = pStyle->m_iColsPerPlayer;
for( int c=0; c<m_iNumCols; c++ )
{
m_ReceptorArrow[c].SetName( "ReceptorArrow" );
m_ReceptorArrow[c].Load( NoteSkin, m_PlayerNumber, c );
}
}
void ReceptorArrowRow::Update( float fDeltaTime )
@@ -57,10 +60,10 @@ void ReceptorArrowRow::DrawPrimitives()
}
}
void ReceptorArrowRow::Step( int iCol )
void ReceptorArrowRow::Step( int iCol, TapNoteScore score )
{
ASSERT( iCol >= 0 && iCol < m_iNumCols );
m_ReceptorArrow[iCol].Step();
m_ReceptorArrow[iCol].Step( score );
}
void ReceptorArrowRow::SetPressed( int iCol )
+1 -1
View File
@@ -20,7 +20,7 @@ public:
virtual void DrawPrimitives();
virtual void CopyTweening( const ReceptorArrowRow &from );
void Step( int iCol );
void Step( int iCol, TapNoteScore score );
void SetPressed( int iCol );
protected:
+1 -1
View File
@@ -1210,7 +1210,7 @@ void ScreenEdit::InputRecord( const DeviceInput& DeviceI, const InputEventType t
break;
m_NoteFieldRecord.SetTapNote(iCol, iRow, TAP_TAP);
m_NoteFieldRecord.Step( iCol );
m_NoteFieldRecord.Step( iCol, TNS_MARVELOUS );
}
break;
case IET_SLOW_REPEAT:
+1 -1
View File
@@ -356,7 +356,7 @@ void ScreenNameEntry::Input( const DeviceInput& DeviceI, const InputEventType ty
int StringIndex = m_ColToStringIndex[StyleI.player][StyleI.col];
if(StringIndex != -1)
{
m_ReceptorArrowRow[StyleI.player].Step( StyleI.col );
m_ReceptorArrowRow[StyleI.player].Step( StyleI.col, TNS_MARVELOUS );
m_soundStep.Play();
char c = NAME_CHARS[GetClosestCharIndex(m_fFakeBeat)];
m_textSelectedChars[StyleI.player][StyleI.col].SetText( ssprintf("%c",c) );