add explosion graphic and sound if step on mine
This commit is contained in:
@@ -29,3 +29,31 @@ UseLighting=0
|
||||
ReverseDrawOrder=1101
|
||||
HoldHeadIsAboveWavyParts=1
|
||||
HoldTailIsAboveWavyParts=1
|
||||
|
||||
[GhostArrowDim]
|
||||
NoneCommand=
|
||||
MissCommand=
|
||||
BooCommand=diffuse,0.8,0.0,0.6,1;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
|
||||
GoodCommand=diffuse,0.3,0.8,1.0,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
|
||||
MarvelousCommand=diffuse,1.0,1.0,1.0,1;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
|
||||
|
||||
[GhostArrowBright]
|
||||
NoneCommand=
|
||||
MissCommand=
|
||||
BooCommand=diffuse,0.8,0.0,0.6,1;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
|
||||
GoodCommand=diffuse,0.3,0.8,1.0,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
|
||||
MarvelousCommand=diffuse,1.0,1.0,1.0,1;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
|
||||
|
||||
[GhostArrowMine]
|
||||
NoneCommand=
|
||||
MissCommand=blend,add;diffuse,1,1,1,1;zoom,1;rotationz,0;linear,0.3;rotationz,90;linear,0.3;rotationz,180;diffusealpha,0
|
||||
BooCommand=
|
||||
GoodCommand=
|
||||
GreatCommand=
|
||||
PerfectCommand=
|
||||
MarvelousCommand=
|
||||
|
||||
|
||||
@@ -1711,26 +1711,6 @@ OddLineIn=addx,640;decelerate,0.5;addx,-640;
|
||||
EvenLineOut=stoptweening;accelerate,0.3;addx,-640;
|
||||
OddLineOut=stoptweening;accelerate,0.3;addx,640;
|
||||
|
||||
[GhostArrow]
|
||||
ShowSeconds=0.12
|
||||
ZoomStart=1.0
|
||||
ZoomEnd=1.3
|
||||
ColorMarvelous=1.0,1.0,1.0,1 // white
|
||||
ColorPerfect=1.0,1.0,0.3,1 // yellow
|
||||
ColorGreat=0.0,1.0,0.4,1 // green
|
||||
ColorGood=0.3,0.8,1.0,1 // blue
|
||||
ColorBoo=0.8,0.0,0.6,1 // purple
|
||||
|
||||
[GhostArrowBright]
|
||||
ShowSeconds=0.12
|
||||
ZoomStart=1.0
|
||||
ZoomEnd=1.3
|
||||
ColorMarvelous=1.0,1.0,1.0,1 // white
|
||||
ColorPerfect=1.0,1.0,0.3,1 // yellow
|
||||
ColorGreat=0.0,1.0,0.4,1 // green
|
||||
ColorGood=0.3,0.8,1.0,1 // blue
|
||||
ColorBoo=0.8,0.0,0.6,1 // purple
|
||||
|
||||
[HoldGhostArrow]
|
||||
WarmUpSeconds=0.25
|
||||
|
||||
|
||||
@@ -141,3 +141,19 @@ SongSortOrder StringToSongSortOrder( CString str )
|
||||
|
||||
return SORT_INVALID;
|
||||
}
|
||||
|
||||
|
||||
CString TapNoteScoreToString( TapNoteScore tns )
|
||||
{
|
||||
switch( tns )
|
||||
{
|
||||
case TNS_NONE: return "none";
|
||||
case TNS_MISS: return "miss";
|
||||
case TNS_BOO: return "boo";
|
||||
case TNS_GOOD: return "good";
|
||||
case TNS_GREAT: return "great";
|
||||
case TNS_PERFECT: return "perfect";
|
||||
case TNS_MARVELOUS: return "marvelous";
|
||||
default: ASSERT(0); return ""; // invalid Difficulty
|
||||
}
|
||||
}
|
||||
|
||||
@@ -144,6 +144,7 @@ enum TapNoteScore {
|
||||
NUM_TAP_NOTE_SCORES
|
||||
};
|
||||
|
||||
CString TapNoteScoreToString( TapNoteScore tns );
|
||||
|
||||
//enum TapNoteTiming {
|
||||
// TNT_NONE,
|
||||
|
||||
@@ -12,34 +12,26 @@
|
||||
*/
|
||||
|
||||
#include "GhostArrow.h"
|
||||
#include "PrefsManager.h"
|
||||
#include "ThemeManager.h"
|
||||
|
||||
|
||||
CachedThemeMetricF GA_SHOW_SECONDS ("GhostArrow","ShowSeconds");
|
||||
CachedThemeMetricF GA_ZOOM_START ("GhostArrow","ZoomStart");
|
||||
CachedThemeMetricF GA_ZOOM_END ("GhostArrow","ZoomEnd");
|
||||
CachedThemeMetricC GA_COLOR_MARVELOUS ("GhostArrow","ColorMarvelous");
|
||||
CachedThemeMetricC GA_COLOR_PERFECT ("GhostArrow","ColorPerfect");
|
||||
CachedThemeMetricC GA_COLOR_GREAT ("GhostArrow","ColorGreat");
|
||||
CachedThemeMetricC GA_COLOR_GOOD ("GhostArrow","ColorGood");
|
||||
CachedThemeMetricC GA_COLOR_BOO ("GhostArrow","ColorBoo");
|
||||
#include "NoteSkinManager.h"
|
||||
|
||||
|
||||
GhostArrow::GhostArrow()
|
||||
{
|
||||
GA_SHOW_SECONDS.Refresh();
|
||||
GA_ZOOM_START.Refresh();
|
||||
GA_ZOOM_END.Refresh();
|
||||
GA_COLOR_MARVELOUS.Refresh();
|
||||
GA_COLOR_PERFECT.Refresh();
|
||||
GA_COLOR_GREAT.Refresh();
|
||||
GA_COLOR_GOOD.Refresh();
|
||||
GA_COLOR_BOO.Refresh();
|
||||
|
||||
SetDiffuse( RageColor(1,1,1,0) );
|
||||
}
|
||||
|
||||
void GhostArrow::Init( PlayerNumber pn )
|
||||
{
|
||||
m_PlayerNumber = pn;
|
||||
|
||||
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(m_PlayerNumber,m_sName,sCommand);
|
||||
}
|
||||
}
|
||||
|
||||
void GhostArrow::Update( float fDeltaTime )
|
||||
{
|
||||
Sprite::Update( fDeltaTime );
|
||||
@@ -47,34 +39,5 @@ void GhostArrow::Update( float fDeltaTime )
|
||||
|
||||
void GhostArrow::Step( TapNoteScore score )
|
||||
{
|
||||
// HACK: set the length of each frame so the animation plays in exactly 1 pop up time.
|
||||
// We can't do this in the constructor because the image hasn't been loaded yet
|
||||
for( int i=0; i<Sprite::GetNumStates(); i++ )
|
||||
Sprite::m_States[i].fDelay = GA_SHOW_SECONDS / Sprite::GetNumStates();
|
||||
|
||||
RageColor colorStart;
|
||||
switch( score )
|
||||
{
|
||||
case TNS_MARVELOUS: colorStart = GA_COLOR_MARVELOUS; break;
|
||||
case TNS_PERFECT: colorStart = GA_COLOR_PERFECT; break;
|
||||
case TNS_GREAT: colorStart = GA_COLOR_GREAT; break;
|
||||
case TNS_GOOD: colorStart = GA_COLOR_GOOD; break;
|
||||
case TNS_BOO: colorStart = GA_COLOR_BOO; break;
|
||||
case TNS_MISS: // miss should never be passed in here
|
||||
default:
|
||||
ASSERT(0);
|
||||
}
|
||||
RageColor colorEnd = colorStart;
|
||||
colorEnd.a = 0;
|
||||
|
||||
StopTweening();
|
||||
SetDiffuse( colorStart );
|
||||
SetState( 0 );
|
||||
SetZoom( GA_ZOOM_START );
|
||||
|
||||
BeginTweening( (float)GA_SHOW_SECONDS/2.0f );
|
||||
SetZoom( ((float)GA_ZOOM_START+(float)GA_ZOOM_END)/2.0f );
|
||||
BeginTweening( (float)GA_SHOW_SECONDS/2.0f );
|
||||
SetZoom( GA_ZOOM_END );
|
||||
SetDiffuse( colorEnd );
|
||||
this->Command( m_sScoreCommand[score] );
|
||||
}
|
||||
|
||||
@@ -12,20 +12,24 @@
|
||||
-----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
|
||||
#include "Sprite.h"
|
||||
#include "GameConstantsAndTypes.h"
|
||||
#include "PlayerNumber.h"
|
||||
|
||||
class GhostArrow : public Sprite
|
||||
{
|
||||
public:
|
||||
GhostArrow();
|
||||
|
||||
virtual void Init( PlayerNumber pn );
|
||||
|
||||
virtual void Update( float fDeltaTime );
|
||||
|
||||
void Step( TapNoteScore score );
|
||||
|
||||
protected:
|
||||
PlayerNumber m_PlayerNumber;
|
||||
CString m_sScoreCommand[NUM_TAP_NOTE_SCORES];
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -1,80 +0,0 @@
|
||||
#include "global.h"
|
||||
/*
|
||||
-----------------------------------------------------------------------------
|
||||
Class: GhostArrowBright
|
||||
|
||||
Desc: See header.
|
||||
|
||||
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
|
||||
Ben Nordstrom
|
||||
Chris Danford
|
||||
-----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#include "GhostArrowBright.h"
|
||||
#include "PrefsManager.h"
|
||||
#include "ThemeManager.h"
|
||||
|
||||
|
||||
CachedThemeMetricF GAB_SHOW_SECONDS ("GhostArrowBright","ShowSeconds");
|
||||
CachedThemeMetricF GAB_ZOOM_START ("GhostArrowBright","ZoomStart");
|
||||
CachedThemeMetricF GAB_ZOOM_END ("GhostArrowBright","ZoomEnd");
|
||||
CachedThemeMetricC GAB_COLOR_MARVELOUS ("GhostArrowBright","ColorMarvelous");
|
||||
CachedThemeMetricC GAB_COLOR_PERFECT ("GhostArrowBright","ColorPerfect");
|
||||
CachedThemeMetricC GAB_COLOR_GREAT ("GhostArrowBright","ColorGreat");
|
||||
CachedThemeMetricC GAB_COLOR_GOOD ("GhostArrowBright","ColorGood");
|
||||
CachedThemeMetricC GAB_COLOR_BOO ("GhostArrowBright","ColorBoo");
|
||||
|
||||
|
||||
GhostArrowBright::GhostArrowBright()
|
||||
{
|
||||
GAB_SHOW_SECONDS.Refresh();
|
||||
GAB_ZOOM_START.Refresh();
|
||||
GAB_ZOOM_END.Refresh();
|
||||
GAB_COLOR_MARVELOUS.Refresh();
|
||||
GAB_COLOR_PERFECT.Refresh();
|
||||
GAB_COLOR_GREAT.Refresh();
|
||||
GAB_COLOR_GOOD.Refresh();
|
||||
GAB_COLOR_BOO.Refresh();
|
||||
|
||||
SetDiffuse( RageColor(1,1,1,0) );
|
||||
}
|
||||
|
||||
void GhostArrowBright::Update( float fDeltaTime )
|
||||
{
|
||||
Sprite::Update( fDeltaTime );
|
||||
}
|
||||
|
||||
void GhostArrowBright::Step( TapNoteScore score )
|
||||
{
|
||||
// HACK: set the length of each frame so the animation plays in exactly 1 pop up time.
|
||||
// We can't do this in the constructor because the image hasn't been loaded yet
|
||||
for( int i=0; i<Sprite::GetNumStates(); i++ )
|
||||
Sprite::m_States[i].fDelay = GAB_SHOW_SECONDS / Sprite::GetNumStates();
|
||||
|
||||
RageColor colorStart;
|
||||
switch( score )
|
||||
{
|
||||
case TNS_MARVELOUS: colorStart = GAB_COLOR_MARVELOUS; break;
|
||||
case TNS_PERFECT: colorStart = GAB_COLOR_PERFECT; break;
|
||||
case TNS_GREAT: colorStart = GAB_COLOR_GREAT; break;
|
||||
case TNS_GOOD: colorStart = GAB_COLOR_GOOD; break;
|
||||
case TNS_BOO: colorStart = GAB_COLOR_BOO; break;
|
||||
case TNS_MISS: // miss should never be passed in here
|
||||
default:
|
||||
ASSERT(0);
|
||||
}
|
||||
RageColor colorEnd = colorStart;
|
||||
colorEnd.a = 0;
|
||||
|
||||
StopTweening();
|
||||
SetDiffuse( colorStart );
|
||||
SetState( 0 );
|
||||
SetZoom( GAB_ZOOM_START );
|
||||
|
||||
BeginTweening( (float)GAB_SHOW_SECONDS/2 );
|
||||
SetZoom( ((float)GAB_ZOOM_START+(float)GAB_ZOOM_END)/2 );
|
||||
BeginTweening( (float)GAB_SHOW_SECONDS/2 );
|
||||
SetZoom( GAB_ZOOM_END );
|
||||
SetDiffuse( colorEnd );
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
#ifndef GHOSTARROWBRIGHT_H
|
||||
#define GHOSTARROWBRIGHT_H
|
||||
/*
|
||||
-----------------------------------------------------------------------------
|
||||
Class: GhostArrowBright
|
||||
|
||||
Desc: Ghost arrow used when over 100 combo.
|
||||
|
||||
Copyright (c) 2001-2002 by the person(s) listed below. All rights reserved.
|
||||
Ben Nordstrom
|
||||
Chris Danford
|
||||
-----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#include "Sprite.h"
|
||||
#include "GameConstantsAndTypes.h"
|
||||
|
||||
class GhostArrowBright : public Sprite
|
||||
{
|
||||
public:
|
||||
GhostArrowBright();
|
||||
|
||||
virtual void Update( float fDeltaTime );
|
||||
|
||||
void Step( TapNoteScore score );
|
||||
|
||||
protected:
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -41,13 +41,25 @@ void GhostArrowRow::Load( PlayerNumber pn )
|
||||
if(Button == "")
|
||||
Button = NoteSkinManager::ColToButtonName(c);
|
||||
|
||||
m_GhostArrowRow[c].Load( NOTESKIN->GetPathTo(pn, Button, "tap explosion dim") );
|
||||
m_GhostArrowRowBright[c].Load( NOTESKIN->GetPathTo(pn, Button, "tap explosion bright") );
|
||||
m_HoldGhostArrowRow[c].Load( NOTESKIN->GetPathTo(pn, Button, "hold explosion") );
|
||||
m_GhostDim[c].SetName( "GhostArrowDim" );
|
||||
m_GhostBright[c].SetName( "GhostArrowBright" );
|
||||
m_GhostMine[c].SetName( "GhostArrowMine" );
|
||||
m_HoldGhost[c].SetName( "HoldGhostArrow" );
|
||||
|
||||
m_GhostDim[c].Init( pn );
|
||||
m_GhostBright[c].Init( pn );
|
||||
m_GhostMine[c].Init( pn );
|
||||
//m_HoldGhost[c].Init( pn );
|
||||
|
||||
m_GhostArrowRow[c].SetX( pStyleDef->m_ColumnInfo[pn][c].fXOffset );
|
||||
m_GhostArrowRowBright[c].SetX( pStyleDef->m_ColumnInfo[pn][c].fXOffset );
|
||||
m_HoldGhostArrowRow[c].SetX( pStyleDef->m_ColumnInfo[pn][c].fXOffset );
|
||||
m_GhostDim[c].Load( NOTESKIN->GetPathTo(pn, Button, "tap explosion dim") );
|
||||
m_GhostBright[c].Load( NOTESKIN->GetPathTo(pn, Button, "tap explosion bright") );
|
||||
m_GhostMine[c].Load( NOTESKIN->GetPathTo(pn, Button, "tap explosion mine") );
|
||||
m_HoldGhost[c].Load( NOTESKIN->GetPathTo(pn, Button, "hold explosion") );
|
||||
|
||||
m_GhostDim[c].SetX( pStyleDef->m_ColumnInfo[pn][c].fXOffset );
|
||||
m_GhostBright[c].SetX( pStyleDef->m_ColumnInfo[pn][c].fXOffset );
|
||||
m_GhostMine[c].SetX( pStyleDef->m_ColumnInfo[pn][c].fXOffset );
|
||||
m_HoldGhost[c].SetX( pStyleDef->m_ColumnInfo[pn][c].fXOffset );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,9 +68,10 @@ void GhostArrowRow::Update( float fDeltaTime )
|
||||
{
|
||||
for( int c=0; c<m_iNumCols; c++ )
|
||||
{
|
||||
m_GhostArrowRow[c].Update( fDeltaTime );
|
||||
m_GhostArrowRowBright[c].Update( fDeltaTime );
|
||||
m_HoldGhostArrowRow[c].Update( fDeltaTime );
|
||||
m_GhostDim[c].Update( fDeltaTime );
|
||||
m_GhostBright[c].Update( fDeltaTime );
|
||||
m_GhostMine[c].Update( fDeltaTime );
|
||||
m_HoldGhost[c].Update( fDeltaTime );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -69,17 +82,21 @@ void GhostArrowRow::DrawPrimitives()
|
||||
g_NoteFieldMode[m_PlayerNumber].BeginDrawTrack(c);
|
||||
|
||||
float fX = ArrowGetXPos( m_PlayerNumber, c, 0 );
|
||||
m_GhostArrowRow[c].SetX( fX );
|
||||
m_GhostArrowRowBright[c].SetX( fX );
|
||||
m_HoldGhostArrowRow[c].SetX( fX );
|
||||
float fZ = ArrowGetZPos( m_PlayerNumber, c, 0 );
|
||||
m_GhostArrowRow[c].SetZ( fZ );
|
||||
m_GhostArrowRowBright[c].SetZ( fZ );
|
||||
m_HoldGhostArrowRow[c].SetZ( fZ );
|
||||
m_GhostDim[c].SetX( fX );
|
||||
m_GhostBright[c].SetX( fX );
|
||||
m_GhostMine[c].SetX( fX );
|
||||
m_HoldGhost[c].SetX( fX );
|
||||
|
||||
m_GhostArrowRow[c].Draw();
|
||||
m_GhostArrowRowBright[c].Draw();
|
||||
m_HoldGhostArrowRow[c].Draw();
|
||||
float fZ = ArrowGetZPos( m_PlayerNumber, c, 0 );
|
||||
m_GhostDim[c].SetZ( fZ );
|
||||
m_GhostBright[c].SetZ( fZ );
|
||||
m_GhostMine[c].SetZ( fZ );
|
||||
m_HoldGhost[c].SetZ( fZ );
|
||||
|
||||
m_GhostDim[c].Draw();
|
||||
m_GhostBright[c].Draw();
|
||||
m_GhostMine[c].Draw();
|
||||
m_HoldGhost[c].Draw();
|
||||
|
||||
g_NoteFieldMode[m_PlayerNumber].EndDrawTrack(c);
|
||||
}
|
||||
@@ -90,13 +107,18 @@ void GhostArrowRow::TapNote( int iCol, TapNoteScore score, bool bBright )
|
||||
{
|
||||
ASSERT( iCol >= 0 && iCol < m_iNumCols );
|
||||
if( bBright )
|
||||
m_GhostArrowRowBright[iCol].Step( score );
|
||||
m_GhostBright[iCol].Step( score );
|
||||
else
|
||||
m_GhostArrowRow[iCol].Step( score );
|
||||
m_GhostDim[iCol].Step( score );
|
||||
}
|
||||
|
||||
void GhostArrowRow::HoldNote( int iCol )
|
||||
{
|
||||
ASSERT( iCol >= 0 && iCol < m_iNumCols );
|
||||
m_HoldGhostArrowRow[iCol].Step();
|
||||
m_HoldGhost[iCol].Step();
|
||||
}
|
||||
|
||||
void GhostArrowRow::TapMine( int iCol, TapNoteScore score )
|
||||
{
|
||||
m_GhostMine[iCol].Step( score );
|
||||
}
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
|
||||
#include "ActorFrame.h"
|
||||
#include "GhostArrow.h"
|
||||
#include "GhostArrowBright.h"
|
||||
#include "HoldGhostArrow.h"
|
||||
#include "GameConstantsAndTypes.h"
|
||||
#include "StyleDef.h"
|
||||
@@ -30,15 +29,17 @@ public:
|
||||
void Load( PlayerNumber pn );
|
||||
|
||||
void TapNote( int iCol, TapNoteScore score, bool bBright );
|
||||
void TapMine( int iCol, TapNoteScore score );
|
||||
void HoldNote( int iCol );
|
||||
|
||||
protected:
|
||||
int m_iNumCols;
|
||||
PlayerNumber m_PlayerNumber;
|
||||
|
||||
GhostArrow m_GhostArrowRow[MAX_NOTE_TRACKS];
|
||||
GhostArrowBright m_GhostArrowRowBright[MAX_NOTE_TRACKS];
|
||||
HoldGhostArrow m_HoldGhostArrowRow[MAX_NOTE_TRACKS];
|
||||
GhostArrow m_GhostDim[MAX_NOTE_TRACKS];
|
||||
GhostArrow m_GhostBright[MAX_NOTE_TRACKS];
|
||||
GhostArrow m_GhostMine[MAX_NOTE_TRACKS];
|
||||
HoldGhostArrow m_HoldGhost[MAX_NOTE_TRACKS];
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -199,6 +199,8 @@ void Player::Load( PlayerNumber pn, NoteData* pNoteData, LifeMeter* pLM, Combine
|
||||
}
|
||||
|
||||
m_sLastSeenNoteSkin = GAMESTATE->m_PlayerOptions[m_PlayerNumber].m_sNoteSkin;
|
||||
|
||||
m_soundMineExplosion.Load( THEME->GetPathToS("Player explosion") );
|
||||
}
|
||||
|
||||
void Player::Update( float fDeltaTime )
|
||||
@@ -458,6 +460,9 @@ void Player::Step( int col, RageTimer tm )
|
||||
|
||||
const float fSecondsFromPerfect = fabsf( fNoteOffset );
|
||||
|
||||
|
||||
TapNote tn = GetTapNote(col,iIndexOverlappingNote);
|
||||
|
||||
// calculate TapNoteScore
|
||||
TapNoteScore score;
|
||||
|
||||
@@ -472,6 +477,15 @@ void Player::Step( int col, RageTimer tm )
|
||||
else if( fScaledSecondsFromPerfect <= PREFSMAN->m_fJudgeWindowGoodSeconds ) score = TNS_GOOD;
|
||||
else if( fScaledSecondsFromPerfect <= PREFSMAN->m_fJudgeWindowBooSeconds ) score = TNS_BOO;
|
||||
else score = TNS_NONE;
|
||||
|
||||
// Penalize for stepping on mines
|
||||
if( tn == TAP_MINE && score > TNS_NONE )
|
||||
{
|
||||
m_soundMineExplosion.Play();
|
||||
score = TNS_MISS;
|
||||
m_GhostArrowRow.TapMine( col, TNS_MISS );
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case PC_CPU:
|
||||
@@ -483,9 +497,21 @@ void Player::Step( int col, RageTimer tm )
|
||||
* misses. */
|
||||
if( score == TNS_MISS )
|
||||
return;
|
||||
|
||||
// Unless the computer made a very good step, they were fooled by the mine
|
||||
if( tn == TAP_MINE && score <= TNS_GREAT )
|
||||
{
|
||||
m_soundMineExplosion.Play();
|
||||
score = TNS_MISS;
|
||||
m_GhostArrowRow.TapMine( col, TNS_MISS );
|
||||
}
|
||||
break;
|
||||
case PC_AUTOPLAY:
|
||||
score = TNS_MARVELOUS;
|
||||
|
||||
// Don't step on mines
|
||||
if( tn == TAP_MINE )
|
||||
return;
|
||||
break;
|
||||
default:
|
||||
ASSERT(0);
|
||||
@@ -493,9 +519,6 @@ void Player::Step( int col, RageTimer tm )
|
||||
break;
|
||||
}
|
||||
|
||||
// Stepping on a mine counts as a miss
|
||||
if( GetTapNote(col,iIndexOverlappingNote) == TAP_MINE )
|
||||
score = TNS_MISS;
|
||||
|
||||
if( score != TNS_NONE && score != TNS_MISS )
|
||||
{
|
||||
|
||||
@@ -16,10 +16,6 @@
|
||||
#include "Sprite.h"
|
||||
#include "BitmapText.h"
|
||||
|
||||
#include "GrayArrow.h"
|
||||
#include "GhostArrow.h"
|
||||
#include "GhostArrowBright.h"
|
||||
#include "HoldGhostArrow.h"
|
||||
#include "ActorFrame.h"
|
||||
#include "RandomSample.h"
|
||||
#include "Judgment.h"
|
||||
@@ -32,6 +28,7 @@
|
||||
#include "ArrowBackdrop.h"
|
||||
#include "RageTimer.h"
|
||||
#include "ProTimingDisplay.h"
|
||||
#include "RageSound.h"
|
||||
|
||||
class ScoreDisplay;
|
||||
class LifeMeter;
|
||||
@@ -97,6 +94,8 @@ protected:
|
||||
CString m_sLastSeenNoteSkin;
|
||||
bool m_bShowJudgment;
|
||||
int m_iRowLastCrossed;
|
||||
|
||||
RageSound m_soundMineExplosion;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -65,7 +65,7 @@ IntDir=.\../Debug6
|
||||
TargetDir=\stepmania\stepmania
|
||||
TargetName=StepMania-debug
|
||||
SOURCE="$(InputPath)"
|
||||
PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\
|
||||
PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\
|
||||
PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi ia32.vdi
|
||||
# End Special Build Tool
|
||||
|
||||
@@ -102,7 +102,7 @@ IntDir=.\Debug
|
||||
TargetDir=\stepmania\stepmania
|
||||
TargetName=default
|
||||
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
|
||||
|
||||
@@ -142,7 +142,7 @@ IntDir=.\../Release6
|
||||
TargetDir=\stepmania\stepmania
|
||||
TargetName=StepMania
|
||||
SOURCE="$(InputPath)"
|
||||
PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\
|
||||
PreLink_Cmds=disasm\verinc cl /Zl /nologo /c verstub.cpp /Fo$(IntDir)\
|
||||
PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi ia32.vdi
|
||||
# End Special Build Tool
|
||||
|
||||
@@ -183,7 +183,7 @@ IntDir=.\StepMania___Xbox_Release
|
||||
TargetDir=\stepmania\stepmania
|
||||
TargetName=default
|
||||
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
|
||||
|
||||
@@ -2984,25 +2984,6 @@ SOURCE=.\GhostArrow.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\GhostArrowBright.cpp
|
||||
|
||||
!IF "$(CFG)" == "StepMania - Win32 Debug"
|
||||
|
||||
!ELSEIF "$(CFG)" == "StepMania - Xbox Debug"
|
||||
|
||||
!ELSEIF "$(CFG)" == "StepMania - Win32 Release"
|
||||
|
||||
!ELSEIF "$(CFG)" == "StepMania - Xbox Release"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\GhostArrowBright.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\GhostArrowRow.cpp
|
||||
|
||||
!IF "$(CFG)" == "StepMania - Win32 Debug"
|
||||
|
||||
@@ -1349,12 +1349,6 @@ cl /Zl /nologo /c verstub.cpp /Fo"$(IntDir)"\
|
||||
<File
|
||||
RelativePath=".\GhostArrow.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\GhostArrowBright.cpp">
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\GhostArrowBright.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="GhostArrowRow.cpp">
|
||||
</File>
|
||||
|
||||
Reference in New Issue
Block a user