per-judgement step commands
This commit is contained in:
@@ -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
|
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
|
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
|
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=
|
||||||
|
|
||||||
|
|||||||
@@ -654,7 +654,7 @@ void NoteField::FadeToFail()
|
|||||||
// don't fade all over again if this is called twice
|
// 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::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::DidTapNote( int iCol, TapNoteScore score, bool bBright ) { SearchForSongBeat()->m_GhostArrowRow.DidTapNote( iCol, score, bBright ); }
|
||||||
void NoteField::DidHoldNote( int iCol ) { /*SearchForSongBeat()->m_GhostArrowRow.DidHoldNote( iCol );*/ }
|
void NoteField::DidHoldNote( int iCol ) { /*SearchForSongBeat()->m_GhostArrowRow.DidHoldNote( iCol );*/ }
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ public:
|
|||||||
void CacheAllUsedNoteSkins();
|
void CacheAllUsedNoteSkins();
|
||||||
void CacheNoteSkin( CString skin );
|
void CacheNoteSkin( CString skin );
|
||||||
|
|
||||||
void Step( int iCol );
|
void Step( int iCol, TapNoteScore score );
|
||||||
void SetPressed( int iCol );
|
void SetPressed( int iCol );
|
||||||
void DidTapNote( int iCol, TapNoteScore score, bool bBright );
|
void DidTapNote( int iCol, TapNoteScore score, bool bBright );
|
||||||
void DidHoldNote( int iCol );
|
void DidHoldNote( int iCol );
|
||||||
|
|||||||
@@ -44,7 +44,6 @@ CachedThemeMetricB HOLD_JUDGMENTS_UNDER_FIELD ("Player","HoldJudgmentsUnderField
|
|||||||
#define START_DRAWING_AT_PIXELS THEME->GetMetricI("Player","StartDrawingAtPixels")
|
#define START_DRAWING_AT_PIXELS THEME->GetMetricI("Player","StartDrawingAtPixels")
|
||||||
#define STOP_DRAWING_AT_PIXELS THEME->GetMetricI("Player","StopDrawingAtPixels")
|
#define STOP_DRAWING_AT_PIXELS THEME->GetMetricI("Player","StopDrawingAtPixels")
|
||||||
#define MAX_PRO_TIMING_ERROR THEME->GetMetricI("Player","MaxProTimingError")
|
#define MAX_PRO_TIMING_ERROR THEME->GetMetricI("Player","MaxProTimingError")
|
||||||
CachedThemeMetricI RECEPTOR_CUTOFF ("Player","ReceptorNoSinkScoreCutoff");
|
|
||||||
|
|
||||||
/* Distance to search for a note in Step(). */
|
/* Distance to search for a note in Step(). */
|
||||||
/* Units? */
|
/* Units? */
|
||||||
@@ -63,7 +62,6 @@ PlayerMinus::PlayerMinus()
|
|||||||
BRIGHT_GHOST_COMBO_THRESHOLD.Refresh();
|
BRIGHT_GHOST_COMBO_THRESHOLD.Refresh();
|
||||||
TAP_JUDGMENTS_UNDER_FIELD.Refresh();
|
TAP_JUDGMENTS_UNDER_FIELD.Refresh();
|
||||||
HOLD_JUDGMENTS_UNDER_FIELD.Refresh();
|
HOLD_JUDGMENTS_UNDER_FIELD.Refresh();
|
||||||
RECEPTOR_CUTOFF.Refresh();
|
|
||||||
|
|
||||||
m_PlayerNumber = PLAYER_INVALID;
|
m_PlayerNumber = PLAYER_INVALID;
|
||||||
m_fNoteFieldHeight = 0;
|
m_fNoteFieldHeight = 0;
|
||||||
@@ -886,12 +884,10 @@ void PlayerMinus::Step( int col, RageTimer tm )
|
|||||||
m_iDCState = AS2D_FEVER; // super celebrate time :)
|
m_iDCState = AS2D_FEVER; // super celebrate time :)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
m_pNoteField->Step( col, score );
|
||||||
}
|
}
|
||||||
|
else
|
||||||
//Don't blink arrows if the score is higher than what the theme
|
m_pNoteField->Step( col, TNS_NONE );
|
||||||
//says should not blink
|
|
||||||
if (RECEPTOR_CUTOFF>=score)
|
|
||||||
m_pNoteField->Step( col );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void PlayerMinus::HandleAutosync(float fNoteOffset)
|
void PlayerMinus::HandleAutosync(float fNoteOffset)
|
||||||
|
|||||||
@@ -28,7 +28,12 @@ bool ReceptorArrow::Load( CString NoteSkin, PlayerNumber pn, int iColNo )
|
|||||||
CString sPath;
|
CString sPath;
|
||||||
m_pReceptorWaiting.Load( NOTESKIN->GetPathToFromNoteSkinAndButton(NoteSkin,sButton,"receptor waiting") );
|
m_pReceptorWaiting.Load( NOTESKIN->GetPathToFromNoteSkinAndButton(NoteSkin,sButton,"receptor waiting") );
|
||||||
m_pReceptorGo.Load( NOTESKIN->GetPathToFromNoteSkinAndButton(NoteSkin,sButton,"receptor go") );
|
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") );
|
m_pPressBlock.Load( NOTESKIN->GetPathToFromNoteSkinAndButton(NoteSkin,sButton,"KeypressBlock") );
|
||||||
|
|
||||||
@@ -67,12 +72,12 @@ void ReceptorArrow::DrawPrimitives()
|
|||||||
ActorFrame::DrawPrimitives();
|
ActorFrame::DrawPrimitives();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ReceptorArrow::Step()
|
void ReceptorArrow::Step( TapNoteScore score )
|
||||||
{
|
{
|
||||||
m_pReceptorGo->FinishTweening();
|
m_pReceptorGo->FinishTweening();
|
||||||
m_pReceptorWaiting->FinishTweening();
|
m_pReceptorWaiting->FinishTweening();
|
||||||
m_pReceptorGo->Command( m_sStepCommand );
|
m_pReceptorGo->Command( m_sScoreCommand[score] );
|
||||||
m_pReceptorWaiting->Command( m_sStepCommand );
|
m_pReceptorWaiting->Command( m_sScoreCommand[score] );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
#include "ActorFrame.h"
|
#include "ActorFrame.h"
|
||||||
#include "ActorUtil.h"
|
#include "ActorUtil.h"
|
||||||
#include "PlayerNumber.h"
|
#include "PlayerNumber.h"
|
||||||
|
#include "GameConstantsAndTypes.h"
|
||||||
|
|
||||||
class ReceptorArrow : public ActorFrame
|
class ReceptorArrow : public ActorFrame
|
||||||
{
|
{
|
||||||
@@ -15,7 +16,7 @@ public:
|
|||||||
|
|
||||||
virtual void DrawPrimitives();
|
virtual void DrawPrimitives();
|
||||||
virtual void Update( float fDeltaTime );
|
virtual void Update( float fDeltaTime );
|
||||||
void Step();
|
void Step( TapNoteScore score );
|
||||||
void SetPressed() { m_bIsPressed = true; };
|
void SetPressed() { m_bIsPressed = true; };
|
||||||
private:
|
private:
|
||||||
|
|
||||||
@@ -24,7 +25,7 @@ private:
|
|||||||
|
|
||||||
AutoActor m_pReceptorWaiting;
|
AutoActor m_pReceptorWaiting;
|
||||||
AutoActor m_pReceptorGo;
|
AutoActor m_pReceptorGo;
|
||||||
CString m_sStepCommand;
|
CString m_sScoreCommand[NUM_TAP_NOTE_SCORES];
|
||||||
|
|
||||||
AutoActor m_pPressBlock;
|
AutoActor m_pPressBlock;
|
||||||
bool m_bIsPressed;
|
bool m_bIsPressed;
|
||||||
|
|||||||
@@ -24,7 +24,10 @@ void ReceptorArrowRow::Load( PlayerNumber pn, CString NoteSkin, float fYReverseO
|
|||||||
m_iNumCols = pStyle->m_iColsPerPlayer;
|
m_iNumCols = pStyle->m_iColsPerPlayer;
|
||||||
|
|
||||||
for( int c=0; c<m_iNumCols; c++ )
|
for( int c=0; c<m_iNumCols; c++ )
|
||||||
|
{
|
||||||
|
m_ReceptorArrow[c].SetName( "ReceptorArrow" );
|
||||||
m_ReceptorArrow[c].Load( NoteSkin, m_PlayerNumber, c );
|
m_ReceptorArrow[c].Load( NoteSkin, m_PlayerNumber, c );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ReceptorArrowRow::Update( float fDeltaTime )
|
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 );
|
ASSERT( iCol >= 0 && iCol < m_iNumCols );
|
||||||
m_ReceptorArrow[iCol].Step();
|
m_ReceptorArrow[iCol].Step( score );
|
||||||
}
|
}
|
||||||
|
|
||||||
void ReceptorArrowRow::SetPressed( int iCol )
|
void ReceptorArrowRow::SetPressed( int iCol )
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ public:
|
|||||||
virtual void DrawPrimitives();
|
virtual void DrawPrimitives();
|
||||||
virtual void CopyTweening( const ReceptorArrowRow &from );
|
virtual void CopyTweening( const ReceptorArrowRow &from );
|
||||||
|
|
||||||
void Step( int iCol );
|
void Step( int iCol, TapNoteScore score );
|
||||||
void SetPressed( int iCol );
|
void SetPressed( int iCol );
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|||||||
@@ -1210,7 +1210,7 @@ void ScreenEdit::InputRecord( const DeviceInput& DeviceI, const InputEventType t
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
m_NoteFieldRecord.SetTapNote(iCol, iRow, TAP_TAP);
|
m_NoteFieldRecord.SetTapNote(iCol, iRow, TAP_TAP);
|
||||||
m_NoteFieldRecord.Step( iCol );
|
m_NoteFieldRecord.Step( iCol, TNS_MARVELOUS );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case IET_SLOW_REPEAT:
|
case IET_SLOW_REPEAT:
|
||||||
|
|||||||
@@ -356,7 +356,7 @@ void ScreenNameEntry::Input( const DeviceInput& DeviceI, const InputEventType ty
|
|||||||
int StringIndex = m_ColToStringIndex[StyleI.player][StyleI.col];
|
int StringIndex = m_ColToStringIndex[StyleI.player][StyleI.col];
|
||||||
if(StringIndex != -1)
|
if(StringIndex != -1)
|
||||||
{
|
{
|
||||||
m_ReceptorArrowRow[StyleI.player].Step( StyleI.col );
|
m_ReceptorArrowRow[StyleI.player].Step( StyleI.col, TNS_MARVELOUS );
|
||||||
m_soundStep.Play();
|
m_soundStep.Play();
|
||||||
char c = NAME_CHARS[GetClosestCharIndex(m_fFakeBeat)];
|
char c = NAME_CHARS[GetClosestCharIndex(m_fFakeBeat)];
|
||||||
m_textSelectedChars[StyleI.player][StyleI.col].SetText( ssprintf("%c",c) );
|
m_textSelectedChars[StyleI.player][StyleI.col].SetText( ssprintf("%c",c) );
|
||||||
|
|||||||
Reference in New Issue
Block a user