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 // // Miryokuteki's Todo/Done Record //
//////////////////////////////////// ////////////////////////////////////
// Last Updated May 2nd, 2003 // Last Updated May 9th, 2003
Todo List: 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) ** 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: 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 ** 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 // - ScreenCaution
// - ScreenEz2SelectPlayer // - ScreenEz2SelectPlayer
// - ScreenSelectMode // - ScreenSelectMode
@@ -1872,6 +1872,7 @@ NextScreen=ScreenHowToPlay
[ScreenHowToPlay] [ScreenHowToPlay]
NextScreen=ScreenDemonstration NextScreen=ScreenDemonstration
ScrollBPM=100 ScrollBPM=100
SecondsToShow=40
[ScreenDemonstration] [ScreenDemonstration]
SecondsToShow=30 SecondsToShow=30
+10 -2
View File
@@ -53,9 +53,14 @@ void NoteData::SetNumTracks( int iNewNumTracks )
for( int t=0; t<MAX_NOTE_TRACKS; t++ ) for( int t=0; t<MAX_NOTE_TRACKS; t++ )
{ {
if( t<m_iNumTracks ) if( t<m_iNumTracks )
{
m_TapNotes[t].resize( rows, TAP_EMPTY ); m_TapNotes[t].resize( rows, TAP_EMPTY );
}
else else
{
m_TapNotes[t].clear(); m_TapNotes[t].clear();
};
} }
} }
@@ -75,7 +80,9 @@ void NoteData::ClearRange( int iNoteIndexBegin, int iNoteIndexEnd )
void NoteData::ClearAll() void NoteData::ClearAll()
{ {
for( int t=0; t<m_iNumTracks; t++ ) for( int t=0; t<m_iNumTracks; t++ )
{
m_TapNotes[t].clear(); m_TapNotes[t].clear();
}
m_HoldNotes.clear(); m_HoldNotes.clear();
} }
@@ -510,7 +517,9 @@ void NoteData::PadTapNotes(int rows)
needed += 100; /* optimization: give it a little more than it needs */ needed += 100; /* optimization: give it a little more than it needs */
for(int track = 0; track < m_iNumTracks; ++track) for(int track = 0; track < m_iNumTracks; ++track)
{
m_TapNotes[track].insert(m_TapNotes[track].end(), needed, TAP_EMPTY); m_TapNotes[track].insert(m_TapNotes[track].end(), needed, TAP_EMPTY);
}
} }
void NoteData::MoveTapNoteTrack(int dest, int src) void NoteData::MoveTapNoteTrack(int dest, int src)
@@ -631,8 +640,7 @@ void NoteDataUtil::LoadFromSMNoteDataString( NoteData &out, CString sSMNoteData
// ASSERT(0); // ASSERT(0);
t = TAP_EMPTY; break; t = TAP_EMPTY; break;
} }
out.SetTapNote(c, iIndex, t);
out.SetTapNote(c, iIndex, t);
} }
} }
} }
+4
View File
@@ -33,6 +33,10 @@ class NoteData
/* Pad m_TapNotes so it includes the row "rows". */ /* Pad m_TapNotes so it includes the row "rows". */
void PadTapNotes(int rows); void PadTapNotes(int rows);
private:
public: public:
/* Set up to hold the data in From; same number of tracks, same /* Set up to hold the data in From; same number of tracks, same
* divisor. Doesn't allocate or copy anything. */ * divisor. Doesn't allocate or copy anything. */
+2 -2
View File
@@ -54,6 +54,7 @@ Player::Player()
BRIGHT_GHOST_COMBO_THRESHOLD.Refresh(); BRIGHT_GHOST_COMBO_THRESHOLD.Refresh();
m_PlayerNumber = PLAYER_INVALID; m_PlayerNumber = PLAYER_INVALID;
m_bShowJudgment = true;
m_pLifeMeter = NULL; m_pLifeMeter = NULL;
m_pScore = 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; * is reset and not tweening. Perhaps ActorFrame should recurse to subactors;
* then we could just this->StopTweening()? -glenn */ * then we could just this->StopTweening()? -glenn */
m_Judgment.StopTweening(); m_Judgment.StopTweening();
// m_Combo.Reset(); // don't reset combos between songs in a course!
m_Combo.Init( pn ); m_Combo.Init( pn );
m_Judgment.Reset(); m_Judgment.Reset();
@@ -325,7 +325,7 @@ void Player::DrawPrimitives()
if( fTilt != 0 ) if( fTilt != 0 )
DISPLAY->ExitPerspective(); DISPLAY->ExitPerspective();
m_Judgment.Draw(); if (m_bShowJudgment) { m_Judgment.Draw(); }
for( int c=0; c<GetNumTracks(); c++ ) for( int c=0; c<GetNumTracks(); c++ )
m_HoldJudgment[c].Draw(); m_HoldJudgment[c].Draw();
+1
View File
@@ -52,6 +52,7 @@ public:
void Step( int col ); void Step( int col );
void RandomiseNotes( int iNoteRow ); void RandomiseNotes( int iNoteRow );
void FadeToFail(); void FadeToFail();
bool m_bShowJudgment; // Used in ScreenHowToPlay
protected: protected:
void UpdateTapNotesMissedOlderThan( float fMissIfOlderThanThisBeat ); void UpdateTapNotesMissedOlderThan( float fMissIfOlderThanThisBeat );
+8 -3
View File
@@ -19,6 +19,7 @@
#include "NoteFieldPositioning.h" #include "NoteFieldPositioning.h"
#define BPMSPEED THEME->GetMetricF("ScreenHowToPlay","ScrollBPM") #define BPMSPEED THEME->GetMetricF("ScreenHowToPlay","ScrollBPM")
#define SECONDS_TO_SHOW THEME->GetMetricF("ScreenHowToPlay","SecondsToShow")
ScreenHowToPlay::ScreenHowToPlay() : ScreenAttract("ScreenHowToPlay") ScreenHowToPlay::ScreenHowToPlay() : ScreenAttract("ScreenHowToPlay")
{ {
@@ -64,22 +65,26 @@ ScreenHowToPlay::ScreenHowToPlay() : ScreenAttract("ScreenHowToPlay")
m_pSong = new Song; m_pSong = new Song;
m_pSong->AddBPMSegment( BPMSegment(0.0,BPMSPEED) ); 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(16,2) );
m_pSong->AddStopSegment( StopSegment(20,2) ); m_pSong->AddStopSegment( StopSegment(20,2) );
m_pSong->AddStopSegment( StopSegment(24,2) ); m_pSong->AddStopSegment( StopSegment(24,2) );
m_pSong->AddStopSegment( StopSegment(28,2) ); m_pSong->AddStopSegment( StopSegment(28,2) );
GAMESTATE->m_pCurSong = m_pSong; GAMESTATE->m_pCurSong = m_pSong;
GAMESTATE->m_bPastHereWeGo = true; GAMESTATE->m_bPastHereWeGo = true;
m_Player.Load( PLAYER_1, pND, NULL, NULL, NULL, NULL );
GAMESTATE->m_PlayerController[PLAYER_1] = PC_AUTOPLAY; GAMESTATE->m_PlayerController[PLAYER_1] = PC_AUTOPLAY;
m_Player.Load( PLAYER_1, pND, &m_LifeMeter, NULL, NULL, NULL );
m_Player.SetX( 480 ); m_Player.SetX( 480 );
m_Player.m_bShowJudgment = false;
this->AddChild( &m_Player ); this->AddChild( &m_Player );
delete pND; delete pND;
m_fFakeSecondsIntoSong = 0; m_fFakeSecondsIntoSong = 0;
this->ClearMessageQueue();
this->PostScreenMessage( SM_BeginFadingOut, SECONDS_TO_SHOW );
} }
ScreenHowToPlay::~ScreenHowToPlay() ScreenHowToPlay::~ScreenHowToPlay()
+5 -5
View File
@@ -1,5 +1,5 @@
# Microsoft Developer Studio Project File - Name="StepMania" - Package Owner=<4> # 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 ** # ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Application" 0x0101 # TARGTYPE "Win32 (x86) Application" 0x0101
@@ -57,10 +57,10 @@ LINK32=link.exe
# SUBTRACT LINK32 /verbose /pdb:none # SUBTRACT LINK32 /verbose /pdb:none
# Begin Special Build Tool # Begin Special Build Tool
IntDir=.\../Release6 IntDir=.\../Release6
TargetDir=\stepmania\stepmania TargetDir=\stepmania
TargetName=StepMania TargetName=StepMania
SOURCE="$(InputPath)" 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 PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi ia32.vdi
# End Special Build Tool # End Special Build Tool
@@ -92,10 +92,10 @@ LINK32=link.exe
# SUBTRACT LINK32 /verbose /profile /pdb:none /incremental:no /nodefaultlib # SUBTRACT LINK32 /verbose /profile /pdb:none /incremental:no /nodefaultlib
# Begin Special Build Tool # Begin Special Build Tool
IntDir=.\../Debug6 IntDir=.\../Debug6
TargetDir=\stepmania\stepmania TargetDir=\stepmania
TargetName=StepMania-debug TargetName=StepMania-debug
SOURCE="$(InputPath)" 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 PostBuild_Cmds=disasm\mapconv $(IntDir)\$(TargetName).map $(TargetDir)\StepMania.vdi ia32.vdi
# End Special Build Tool # End Special Build Tool
+3
View File
@@ -75,6 +75,9 @@ public:
Song(); Song();
~Song(); ~Song();
bool m_bIsForBM; // If true, we read the data in differantly, for BeatMania
bool LoadWithoutCache( CString sDir ); bool LoadWithoutCache( CString sDir );
NotesLoader *MakeLoader( CString sDir ) const; NotesLoader *MakeLoader( CString sDir ) const;