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:
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 );
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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 );
|
||||
|
||||
@@ -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 );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user