Fix ScreenHowToPlay:: Now displays until all the hard-coded steps are gone (SecondsToShow metric), and added into Player.cpp a value to show/hide judgment messages (miss/perfect etc*). This is turned OFF by default so everything still shows the judgment, except for ScreenHowToPlay

This commit is contained in:
Kevin Slaughter
2003-05-19 08:18:21 +00:00
parent b46272b1be
commit b1396c186a
9 changed files with 46 additions and 17 deletions
+8 -1
View File
@@ -2,11 +2,18 @@
// Miryokuteki's Todo/Done Record //
////////////////////////////////////
// Last Updated May 2nd, 2003
// Last Updated May 9th, 2003
Todo List:
** Find a way to get the length of a movie being played, so ScreenIntroMovie does not have to have a pre-determined length (I.e: exits when the movie is finished playing)
Done as of 05/09/03:
** Implemented a complete MAX2 style unlock system.
Done as of 05/02/03:
** Added more scripting to SSDEX, now supporting icon bar/icons/text/pic/info scripting. Having small probs with the highlight bar for each player, scripting-wise. Will work on this later
+2 -1
View File
@@ -1,4 +1,4 @@
// Possible NextScreen names:
// Possible NextScreen names:
// - ScreenCaution
// - ScreenEz2SelectPlayer
// - ScreenSelectMode
@@ -1872,6 +1872,7 @@ NextScreen=ScreenHowToPlay
[ScreenHowToPlay]
NextScreen=ScreenDemonstration
ScrollBPM=100
SecondsToShow=40
[ScreenDemonstration]
SecondsToShow=30
+10 -2
View File
@@ -53,9 +53,14 @@ void NoteData::SetNumTracks( int iNewNumTracks )
for( int t=0; t<MAX_NOTE_TRACKS; t++ )
{
if( t<m_iNumTracks )
{
m_TapNotes[t].resize( rows, TAP_EMPTY );
}
else
{
m_TapNotes[t].clear();
};
}
}
@@ -75,7 +80,9 @@ void NoteData::ClearRange( int iNoteIndexBegin, int iNoteIndexEnd )
void NoteData::ClearAll()
{
for( int t=0; t<m_iNumTracks; t++ )
{
m_TapNotes[t].clear();
}
m_HoldNotes.clear();
}
@@ -510,7 +517,9 @@ void NoteData::PadTapNotes(int rows)
needed += 100; /* optimization: give it a little more than it needs */
for(int track = 0; track < m_iNumTracks; ++track)
{
m_TapNotes[track].insert(m_TapNotes[track].end(), needed, TAP_EMPTY);
}
}
void NoteData::MoveTapNoteTrack(int dest, int src)
@@ -631,8 +640,7 @@ void NoteDataUtil::LoadFromSMNoteDataString( NoteData &out, CString sSMNoteData
// ASSERT(0);
t = TAP_EMPTY; break;
}
out.SetTapNote(c, iIndex, t);
out.SetTapNote(c, iIndex, t);
}
}
}
+5 -1
View File
@@ -33,6 +33,10 @@ class NoteData
/* Pad m_TapNotes so it includes the row "rows". */
void PadTapNotes(int rows);
private:
public:
/* Set up to hold the data in From; same number of tracks, same
* divisor. Doesn't allocate or copy anything. */
@@ -41,7 +45,7 @@ public:
NoteData();
~NoteData();
void Init();
int GetNumTracks() const;
void SetNumTracks( int iNewNumTracks );
+2 -2
View File
@@ -54,6 +54,7 @@ Player::Player()
BRIGHT_GHOST_COMBO_THRESHOLD.Refresh();
m_PlayerNumber = PLAYER_INVALID;
m_bShowJudgment = true;
m_pLifeMeter = NULL;
m_pScore = NULL;
@@ -105,7 +106,6 @@ void Player::Load( PlayerNumber pn, NoteData* pNoteData, LifeMeter* pLM, ScoreDi
* is reset and not tweening. Perhaps ActorFrame should recurse to subactors;
* then we could just this->StopTweening()? -glenn */
m_Judgment.StopTweening();
// m_Combo.Reset(); // don't reset combos between songs in a course!
m_Combo.Init( pn );
m_Judgment.Reset();
@@ -325,7 +325,7 @@ void Player::DrawPrimitives()
if( fTilt != 0 )
DISPLAY->ExitPerspective();
m_Judgment.Draw();
if (m_bShowJudgment) { m_Judgment.Draw(); }
for( int c=0; c<GetNumTracks(); c++ )
m_HoldJudgment[c].Draw();
+1
View File
@@ -52,6 +52,7 @@ public:
void Step( int col );
void RandomiseNotes( int iNoteRow );
void FadeToFail();
bool m_bShowJudgment; // Used in ScreenHowToPlay
protected:
void UpdateTapNotesMissedOlderThan( float fMissIfOlderThanThisBeat );
+10 -5
View File
@@ -19,6 +19,7 @@
#include "NoteFieldPositioning.h"
#define BPMSPEED THEME->GetMetricF("ScreenHowToPlay","ScrollBPM")
#define SECONDS_TO_SHOW THEME->GetMetricF("ScreenHowToPlay","SecondsToShow")
ScreenHowToPlay::ScreenHowToPlay() : ScreenAttract("ScreenHowToPlay")
{
@@ -64,22 +65,26 @@ ScreenHowToPlay::ScreenHowToPlay() : ScreenAttract("ScreenHowToPlay")
m_pSong = new Song;
m_pSong->AddBPMSegment( BPMSegment(0.0,BPMSPEED) );
m_pSong->AddStopSegment( StopSegment(12,2) );
m_pSong->AddStopSegment( StopSegment(15,2) );
m_pSong->AddStopSegment( StopSegment(16,2) );
m_pSong->AddStopSegment( StopSegment(20,2) );
m_pSong->AddStopSegment( StopSegment(24,2) );
m_pSong->AddStopSegment( StopSegment(28,2) );
GAMESTATE->m_pCurSong = m_pSong;
GAMESTATE->m_bPastHereWeGo = true;
m_Player.Load( PLAYER_1, pND, NULL, NULL, NULL, NULL );
GAMESTATE->m_PlayerController[PLAYER_1] = PC_AUTOPLAY;
m_Player.Load( PLAYER_1, pND, &m_LifeMeter, NULL, NULL, NULL );
m_Player.SetX( 480 );
m_Player.m_bShowJudgment = false;
this->AddChild( &m_Player );
delete pND;
m_fFakeSecondsIntoSong = 0;
this->ClearMessageQueue();
this->PostScreenMessage( SM_BeginFadingOut, SECONDS_TO_SHOW );
}
ScreenHowToPlay::~ScreenHowToPlay()
@@ -91,6 +96,6 @@ void ScreenHowToPlay::Update( float fDelta )
{
m_fFakeSecondsIntoSong += fDelta;
GAMESTATE->UpdateSongPosition( m_fFakeSecondsIntoSong );
ScreenAttract::Update( fDelta );
}
}
+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
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
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
+3
View File
@@ -75,6 +75,9 @@ public:
Song();
~Song();
bool m_bIsForBM; // If true, we read the data in differantly, for BeatMania
bool LoadWithoutCache( CString sDir );
NotesLoader *MakeLoader( CString sDir ) const;