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