checking in SMMAX2 theme and small fixes to themes and smpackage
This commit is contained in:
@@ -1,4 +1,6 @@
|
|||||||
------------------------CVS after 3.00 beta 6----------------
|
------------------------CVS after 3.00 beta 6----------------
|
||||||
|
BUG FIX: Editor no longer crashes if you try to drag a hold note up
|
||||||
|
before beat 0.
|
||||||
CHANGE: Hold head now drawn in place tap note graphic when a Hold starts
|
CHANGE: Hold head now drawn in place tap note graphic when a Hold starts
|
||||||
on the same row.
|
on the same row.
|
||||||
CHANGE: Added bright ghost flash on hold note score of OK.
|
CHANGE: Added bright ghost flash on hold note score of OK.
|
||||||
|
|||||||
@@ -736,6 +736,10 @@ Example:
|
|||||||
|
|
||||||
\BGAnimations\<anim folder>\<layer files>
|
\BGAnimations\<anim folder>\<layer files>
|
||||||
|
|
||||||
|
Why?
|
||||||
|
|
||||||
|
Grouping all of the graphics for an animation into one file would be a pain. If you want your sprites to have animation and you put all the frames for multiple animations into one big graphics file: a) That file would be huge and many video cards can't draw large textures, b) You'd have to create some other text file that says which frames of the graphic belong to which sprite, c) If your sprites are different sizes, there will be a lot of wasted space between the frames of that graphic, and d) It's a pain for the artist to cut and paste a whole bunch of frames from different animations into one graphic (and make sure everything is lined up right).
|
||||||
|
|
||||||
The BGAnimations folder should contain several folders for individual background animations. Currently, these background animations cycle in order of their folder names, changing every 4 measures of the song.
|
The BGAnimations folder should contain several folders for individual background animations. Currently, these background animations cycle in order of their folder names, changing every 4 measures of the song.
|
||||||
|
|
||||||
In an animation folder, each sprite represents one layer. Multiple layers can be specified by having multiple sprites. Layers are drawn from back to front in order of their file name. Different "layer effects" are specified by adding tokens to the file name. Here are an explanation of the currently supported tokens:
|
In an animation folder, each sprite represents one layer. Multiple layers can be specified by having multiple sprites. Layers are drawn from back to front in order of their file name. Different "layer effects" are specified by adding tokens to the file name. Here are an explanation of the currently supported tokens:
|
||||||
@@ -793,6 +797,7 @@ tilepulse,
|
|||||||
- Tiles zoom in and out.
|
- Tiles zoom in and out.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
************************************************************
|
************************************************************
|
||||||
15. The .CRS File Format
|
15. The .CRS File Format
|
||||||
************************************************************
|
************************************************************
|
||||||
|
|||||||
+127
-14
@@ -2,6 +2,25 @@
|
|||||||
Fix
|
Fix
|
||||||
/////////////////////////
|
/////////////////////////
|
||||||
|
|
||||||
|
the only other thing is to encorporate `...' to replace <...>, and instead turn the <...> as triple jumps or more than 2 arrow jumps. its the new DWI format.
|
||||||
|
|
||||||
|
change "bg change" to show a list
|
||||||
|
|
||||||
|
change background change to look for movies in song dir and bganimations in song dir
|
||||||
|
|
||||||
|
You're saying that right now the max combo text is being drawn underneath the bonus frame?
|
||||||
|
|
||||||
|
the MAX announcer dosnt say "Extra Stage" anymore
|
||||||
|
SlinkyWizard30: and there is no "%" sign on Oni
|
||||||
|
|
||||||
|
crash loading bga in Win98
|
||||||
|
|
||||||
|
editor play and record without set range
|
||||||
|
|
||||||
|
editor intro prompt
|
||||||
|
|
||||||
|
oni-specific comments
|
||||||
|
|
||||||
arcade mode
|
arcade mode
|
||||||
|
|
||||||
about us page
|
about us page
|
||||||
@@ -14,30 +33,20 @@ RMA phone
|
|||||||
|
|
||||||
RMA Kiko USB
|
RMA Kiko USB
|
||||||
|
|
||||||
|
couples format
|
||||||
|
|
||||||
|
3/5 button options toggle
|
||||||
|
|
||||||
kitsappt photos
|
kitsappt photos
|
||||||
|
|
||||||
100 flash on OK
|
|
||||||
|
|
||||||
slower eval bar tween
|
slower eval bar tween
|
||||||
|
|
||||||
post graphics jobs needed on web site.
|
|
||||||
|
|
||||||
max style judge tween
|
max style judge tween
|
||||||
|
|
||||||
add turns to editor
|
add turns to editor
|
||||||
|
|
||||||
precise timing adjustment
|
|
||||||
|
|
||||||
draw taps on same row as hold with hold head
|
|
||||||
|
|
||||||
max style lifemeter animation
|
|
||||||
|
|
||||||
164 theme
|
164 theme
|
||||||
|
|
||||||
warning
|
|
||||||
|
|
||||||
name entry
|
|
||||||
|
|
||||||
gap between wheel items
|
gap between wheel items
|
||||||
|
|
||||||
sample pop
|
sample pop
|
||||||
@@ -46,14 +55,118 @@ fix screwed up scroll bar
|
|||||||
|
|
||||||
ready, here we go between each stage of a course
|
ready, here we go between each stage of a course
|
||||||
|
|
||||||
|
team seattle link
|
||||||
|
|
||||||
send disc to Penny Arcade
|
send disc to Penny Arcade
|
||||||
|
|
||||||
different top bar frame for oni
|
different top bar frame for oni
|
||||||
|
|
||||||
|
get rid of demonstration box.
|
||||||
|
|
||||||
|
rename "gameplay top frame", "bototm frame" to "life frame", score frame"
|
||||||
|
|
||||||
|
long ver, marathon balloons
|
||||||
|
|
||||||
|
flag for use hold head
|
||||||
|
|
||||||
|
warning screen
|
||||||
|
|
||||||
|
explanation text in options
|
||||||
|
|
||||||
|
lyrics
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////
|
||||||
|
Animachanic suggestions:
|
||||||
|
//////////////////////
|
||||||
|
Suggestions for SM to make it more MAX2-esque:
|
||||||
|
|
||||||
|
-The BPM numbers are of a more "squarish" font, and by default are very light gray in color.
|
||||||
|
-BPMs that change or go high are displayed in a light purple rather than red.
|
||||||
|
-When you select difficulty, the banners don't bounce/jiggle, they sort of scroll upwards.
|
||||||
|
-The sort select needs to be changed. MAX2 does it very quickly, nearly twice or three times
|
||||||
|
faster than 5th does. Also, the sound byte for it is different.
|
||||||
|
-I don't know if this is already being implemented, but it would be nice to make a "MAX2"
|
||||||
|
song selection, including songs from previous mixes, but being able to change their font
|
||||||
|
color on the song selection screen.
|
||||||
|
-When you change songs, the BPM numbers scroll upwards.
|
||||||
|
-On the evaluation screen, on the song banner, the icon for difficulty is displayed on the
|
||||||
|
left side at the top rather than the bottom.
|
||||||
|
-Also on the evaluation screen, the numbers start spinning much faster than they do in SM,
|
||||||
|
and they decelerate.
|
||||||
|
-You know how the grade letter "pulses"? The pulses need to be faster, about twice as fast,
|
||||||
|
and the amount of time they are "glowing" needs to be shortened to about half the amount
|
||||||
|
of time it is currently set to "glow".
|
||||||
|
-It would be nice if when you selected options, the little boxes to the side of the options
|
||||||
|
screen would display what you had selected.
|
||||||
|
-The "select difficulty" banners should be level with each other.
|
||||||
|
-I don't know if this is just lag on my system, but you should be able to scroll through the
|
||||||
|
songs faster when you hold down left or right.
|
||||||
|
|
||||||
|
AMENDS:
|
||||||
|
|
||||||
|
-Difficulty in feet should go up to ten.
|
||||||
|
-When changing songs, feet icons should not "bounce" when you switch songs rapidly.
|
||||||
|
-The CD titles should rotate a little faster, and should have a little more depth to them.
|
||||||
|
-1st stage text should be blue, 2nd stage text should be green, 3rd stage text should be
|
||||||
|
yellow, and final/extra stage should be red.
|
||||||
|
-It would be more realistic if it didn't prompt you to hit enter a second time for options;
|
||||||
|
it should instruct you to hold enter in the readme. Just an idea.
|
||||||
|
-I'm currently in the process of setting up all the MAX2 (and MAX songs available on MAX2)
|
||||||
|
to play close to arcade-accurate previews. Once I finish I can send the files to you.
|
||||||
|
|
||||||
|
That's it for now.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//////////////////////
|
||||||
|
Spig suggestions:
|
||||||
|
//////////////////////
|
||||||
|
If you're free of bugs heres what you can think of putting in or changing:
|
||||||
|
|
||||||
|
- Make SMANIAC songs show the Oni Banner instead of heavy
|
||||||
|
|
||||||
|
- Add a new color for SMANIAC like blue
|
||||||
|
|
||||||
|
- Support for oni specific gameplay frames
|
||||||
|
|
||||||
|
- Support for extra stage specific gameplay frames
|
||||||
|
|
||||||
|
- In the MAX2 skin, the max combo doesn't show
|
||||||
|
|
||||||
|
- Perhaps see what the groove radar looks like with a 1 pixel border, it may be a bit thick?
|
||||||
|
|
||||||
|
- Support for the results screen to show up to 5 stages cleared instead of 3
|
||||||
|
|
||||||
|
- (popular request) When choosing ALL MUSIC mode, do NOT start off by showing folder's. Instead, just leave all the songs out with each group being colored its specifc color. then, if the user wants by folder, all he/she has to do is sort to it by tapping UP-DOWN-UP-DOWN
|
||||||
|
|
||||||
|
- Suport for ONI specifc gameplay frames
|
||||||
|
|
||||||
|
- Good/boo/missed jumps count only as 1
|
||||||
|
|
||||||
|
- Combo only goes up after getting PERFECTS
|
||||||
|
|
||||||
|
- Changing the metrics "StageY=" doesn't change the placement of the stage number.
|
||||||
|
http://spig.krystaljungle.com/STEPMANIA/oni.JPG
|
||||||
|
Perhaps we can have the stage number on the bar like that, and where it the STAGE is, it could say ONI. Just like the picture.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////
|
/////////////////////
|
||||||
Punt:
|
Punt:
|
||||||
/////////////////////
|
/////////////////////
|
||||||
|
|
||||||
|
warning
|
||||||
|
|
||||||
|
name entry
|
||||||
|
|
||||||
|
change transition oni to show banner
|
||||||
|
|
||||||
|
max style lifemeter animation
|
||||||
|
|
||||||
|
precise timing adjustment
|
||||||
|
|
||||||
texture cache
|
texture cache
|
||||||
|
|
||||||
move NoteSkin to Theme
|
move NoteSkin to Theme
|
||||||
|
|||||||
@@ -250,6 +250,7 @@ void Background::LoadFromSong( Song* pSong )
|
|||||||
{
|
{
|
||||||
CStringArray arrayPossibleAnims;
|
CStringArray arrayPossibleAnims;
|
||||||
GetDirListing( BG_ANIMS_DIR+"*.*", arrayPossibleAnims, true, true );
|
GetDirListing( BG_ANIMS_DIR+"*.*", arrayPossibleAnims, true, true );
|
||||||
|
// strip out "cvs" and "danger"
|
||||||
for( int i=arrayPossibleAnims.GetSize()-1; i>=0; i-- )
|
for( int i=arrayPossibleAnims.GetSize()-1; i>=0; i-- )
|
||||||
if( 0==stricmp(arrayPossibleAnims[i].Right(3),"cvs") || -1!=arrayPossibleAnims[i].Find("anger") )
|
if( 0==stricmp(arrayPossibleAnims[i].Right(3),"cvs") || -1!=arrayPossibleAnims[i].Find("anger") )
|
||||||
arrayPossibleAnims.RemoveAt(i);
|
arrayPossibleAnims.RemoveAt(i);
|
||||||
@@ -352,6 +353,10 @@ void Background::LoadFromSong( Song* pSong )
|
|||||||
m_BackgroundAnimations[i]->SetXY( (float)LEFT_EDGE, (float)TOP_EDGE );
|
m_BackgroundAnimations[i]->SetXY( (float)LEFT_EDGE, (float)TOP_EDGE );
|
||||||
m_BackgroundAnimations[i]->SetZoom( fZoom );
|
m_BackgroundAnimations[i]->SetZoom( fZoom );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_BGADanger.SetXY( (float)LEFT_EDGE, (float)TOP_EDGE );
|
||||||
|
m_BGADanger.SetZoom( fZoom );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -134,9 +134,6 @@ void GameDef::GetSkinNames( CStringArray &AddTo ) const
|
|||||||
for( int i=AddTo.GetSize()-1; i>=0; i-- )
|
for( int i=AddTo.GetSize()-1; i>=0; i-- )
|
||||||
if( 0 == stricmp("cvs", AddTo[i]) )
|
if( 0 == stricmp("cvs", AddTo[i]) )
|
||||||
AddTo.RemoveAt( i );
|
AddTo.RemoveAt( i );
|
||||||
|
|
||||||
if( AddTo.GetSize() == 0 )
|
|
||||||
throw RageException( "The folder '%s' must contain at least one skin.", sBaseSkinFolder );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GameDef::HasASkinNamed( CString sSkin ) const
|
bool GameDef::HasASkinNamed( CString sSkin ) const
|
||||||
|
|||||||
@@ -176,6 +176,8 @@ void NoteData::CopyRange( NoteData* pFrom, int iFromIndexBegin, int iFromIndexEn
|
|||||||
|
|
||||||
void NoteData::AddHoldNote( HoldNote add )
|
void NoteData::AddHoldNote( HoldNote add )
|
||||||
{
|
{
|
||||||
|
ASSERT( add.m_fStartBeat>0 && add.m_fEndBeat>0 );
|
||||||
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
// look for other hold notes that overlap and merge them
|
// look for other hold notes that overlap and merge them
|
||||||
|
|||||||
@@ -35,10 +35,10 @@ enum {
|
|||||||
};
|
};
|
||||||
|
|
||||||
OptionRowData g_AppearanceOptionsLines[NUM_APPEARANCE_OPTIONS_LINES] = {
|
OptionRowData g_AppearanceOptionsLines[NUM_APPEARANCE_OPTIONS_LINES] = {
|
||||||
{ "Announcer", 1, {"OFF"} }, // fill this in on ImportOptions()
|
{ "Announ\n-cer", 1, {"OFF"} }, // fill this in on ImportOptions()
|
||||||
{ "Theme", 0, {""} }, // fill this in on ImportOptions()
|
{ "Theme", 0, {""} }, // fill this in on ImportOptions()
|
||||||
{ "Note Skin", 0, {""} }, // fill this in on ImportOptions()
|
{ "Note\nSkin", 0, {""} }, // fill this in on ImportOptions()
|
||||||
{ "How^To Play",2, {"OFF","ON"} },
|
{ "How To\nPlay", 2, {"OFF","ON"} },
|
||||||
};
|
};
|
||||||
|
|
||||||
ScreenAppearanceOptions::ScreenAppearanceOptions() :
|
ScreenAppearanceOptions::ScreenAppearanceOptions() :
|
||||||
|
|||||||
@@ -717,6 +717,10 @@ void ScreenEdit::InputEdit( const DeviceInput& DeviceI, const InputEventType typ
|
|||||||
newHN.m_iTrack = col;
|
newHN.m_iTrack = col;
|
||||||
newHN.m_fStartBeat = min(fStartBeat, fEndBeat);
|
newHN.m_fStartBeat = min(fStartBeat, fEndBeat);
|
||||||
newHN.m_fEndBeat = max(fStartBeat, fEndBeat);
|
newHN.m_fEndBeat = max(fStartBeat, fEndBeat);
|
||||||
|
|
||||||
|
newHN.m_fStartBeat = max(newHN.m_fStartBeat, 0);
|
||||||
|
newHN.m_fEndBeat = max(newHN.m_fEndBeat, 0);
|
||||||
|
|
||||||
m_NoteFieldEdit.AddHoldNote( newHN );
|
m_NoteFieldEdit.AddHoldNote( newHN );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -532,6 +532,11 @@ ScreenEvaluation::ScreenEvaluation( bool bSummary )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool bOneHasNewRecord = false;
|
||||||
|
for( p=0; p<NUM_PLAYERS; p++ )
|
||||||
|
if( GAMESTATE->IsPlayerEnabled(p) && bNewRecord[p] )
|
||||||
|
bOneHasNewRecord = true;
|
||||||
|
|
||||||
if( m_bTryExtraStage )
|
if( m_bTryExtraStage )
|
||||||
{
|
{
|
||||||
m_sprTryExtraStage.Load( THEME->GetPathTo("Graphics",GAMESTATE->IsExtraStage()?"evaluation try extra stage2":"evaluation try extra stage1") );
|
m_sprTryExtraStage.Load( THEME->GetPathTo("Graphics",GAMESTATE->IsExtraStage()?"evaluation try extra stage2":"evaluation try extra stage1") );
|
||||||
@@ -541,6 +546,10 @@ ScreenEvaluation::ScreenEvaluation( bool bSummary )
|
|||||||
|
|
||||||
SOUND->PlayOnceStreamed( THEME->GetPathTo("Sounds","evaluation extra stage") );
|
SOUND->PlayOnceStreamed( THEME->GetPathTo("Sounds","evaluation extra stage") );
|
||||||
}
|
}
|
||||||
|
else if( bOneHasNewRecord )
|
||||||
|
{
|
||||||
|
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation new record") );
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -565,13 +574,13 @@ ScreenEvaluation::ScreenEvaluation( bool bSummary )
|
|||||||
case RM_ARCADE_SUMMARY:
|
case RM_ARCADE_SUMMARY:
|
||||||
switch( max_grade )
|
switch( max_grade )
|
||||||
{
|
{
|
||||||
case GRADE_E: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation e") ); break;
|
case GRADE_E: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation final e") ); break;
|
||||||
case GRADE_D: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation d") ); break;
|
case GRADE_D: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation final d") ); break;
|
||||||
case GRADE_C: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation c") ); break;
|
case GRADE_C: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation final c") ); break;
|
||||||
case GRADE_B: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation b") ); break;
|
case GRADE_B: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation final b") ); break;
|
||||||
case GRADE_A: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation a") ); break;
|
case GRADE_A: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation final a") ); break;
|
||||||
case GRADE_AA: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation aa") ); break;
|
case GRADE_AA: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation final aa") ); break;
|
||||||
case GRADE_AAA: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation aaa") ); break;
|
case GRADE_AAA: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation final aaa") ); break;
|
||||||
case GRADE_NO_DATA:
|
case GRADE_NO_DATA:
|
||||||
default:
|
default:
|
||||||
ASSERT(0); // invalid grade
|
ASSERT(0); // invalid grade
|
||||||
|
|||||||
@@ -351,7 +351,7 @@ ScreenGameplay::ScreenGameplay()
|
|||||||
this->AddChild( &m_Fade );
|
this->AddChild( &m_Fade );
|
||||||
|
|
||||||
|
|
||||||
m_textSurviveTime.LoadFromTextureAndChars( THEME->GetPathTo("Graphics","gameplay survive time numbers 7x2"), "01234 :56789%." );
|
m_textSurviveTime.LoadFromFont( THEME->GetPathTo("Fonts","survive time") );
|
||||||
m_textSurviveTime.TurnShadowOff();
|
m_textSurviveTime.TurnShadowOff();
|
||||||
m_textSurviveTime.SetXY( SURVIVE_TIME_X, SURVIVE_TIME_Y );
|
m_textSurviveTime.SetXY( SURVIVE_TIME_X, SURVIVE_TIME_Y );
|
||||||
m_textSurviveTime.SetText( "" );
|
m_textSurviveTime.SetText( "" );
|
||||||
@@ -380,6 +380,7 @@ ScreenGameplay::ScreenGameplay()
|
|||||||
m_announcerDanger.Load( ANNOUNCER->GetPathTo("gameplay comment danger") );
|
m_announcerDanger.Load( ANNOUNCER->GetPathTo("gameplay comment danger") );
|
||||||
m_announcerGood.Load( ANNOUNCER->GetPathTo("gameplay comment good") );
|
m_announcerGood.Load( ANNOUNCER->GetPathTo("gameplay comment good") );
|
||||||
m_announcerHot.Load( ANNOUNCER->GetPathTo("gameplay comment hot") );
|
m_announcerHot.Load( ANNOUNCER->GetPathTo("gameplay comment hot") );
|
||||||
|
m_announcerOni.Load( ANNOUNCER->GetPathTo("gameplay comment oni") );
|
||||||
|
|
||||||
m_announcer100Combo.Load( ANNOUNCER->GetPathTo("gameplay 100 combo") );
|
m_announcer100Combo.Load( ANNOUNCER->GetPathTo("gameplay 100 combo") );
|
||||||
m_announcer200Combo.Load( ANNOUNCER->GetPathTo("gameplay 200 combo") );
|
m_announcer200Combo.Load( ANNOUNCER->GetPathTo("gameplay 200 combo") );
|
||||||
@@ -679,12 +680,20 @@ void ScreenGameplay::Update( float fDeltaTime )
|
|||||||
m_fTimeLeftBeforeDancingComment -= fDeltaTime;
|
m_fTimeLeftBeforeDancingComment -= fDeltaTime;
|
||||||
if( m_fTimeLeftBeforeDancingComment <= 0 )
|
if( m_fTimeLeftBeforeDancingComment <= 0 )
|
||||||
{
|
{
|
||||||
if( OneIsHot() )
|
switch( GAMESTATE->m_PlayMode )
|
||||||
m_announcerHot.PlayRandom();
|
{
|
||||||
else if( AllAreInDanger() )
|
case PLAY_MODE_ARCADE:
|
||||||
m_announcerDanger.PlayRandom();
|
if( OneIsHot() ) m_announcerHot.PlayRandom();
|
||||||
else
|
else if( AllAreInDanger() ) m_announcerDanger.PlayRandom();
|
||||||
m_announcerGood.PlayRandom();
|
else m_announcerGood.PlayRandom();
|
||||||
|
break;
|
||||||
|
case PLAY_MODE_ONI:
|
||||||
|
case PLAY_MODE_ENDLESS:
|
||||||
|
m_announcerOni.PlayRandom();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
ASSERT(0);
|
||||||
|
}
|
||||||
|
|
||||||
m_fTimeLeftBeforeDancingComment = SECONDS_BETWEEN_COMMENTS; // reset for the next comment
|
m_fTimeLeftBeforeDancingComment = SECONDS_BETWEEN_COMMENTS; // reset for the next comment
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -129,6 +129,7 @@ private:
|
|||||||
RandomSample m_announcerDanger;
|
RandomSample m_announcerDanger;
|
||||||
RandomSample m_announcerGood;
|
RandomSample m_announcerGood;
|
||||||
RandomSample m_announcerHot;
|
RandomSample m_announcerHot;
|
||||||
|
RandomSample m_announcerOni;
|
||||||
RandomSample m_announcer100Combo;
|
RandomSample m_announcer100Combo;
|
||||||
RandomSample m_announcer200Combo;
|
RandomSample m_announcer200Combo;
|
||||||
RandomSample m_announcer300Combo;
|
RandomSample m_announcer300Combo;
|
||||||
|
|||||||
@@ -38,15 +38,15 @@ enum {
|
|||||||
};
|
};
|
||||||
OptionRowData g_GraphicOptionsLines[NUM_GRAPHIC_OPTIONS_LINES] = {
|
OptionRowData g_GraphicOptionsLines[NUM_GRAPHIC_OPTIONS_LINES] = {
|
||||||
{ "Display", 2, {"FULLSCREEN", "WINDOWED"} },
|
{ "Display", 2, {"FULLSCREEN", "WINDOWED"} },
|
||||||
{ "Display Res", 7, {"320","400","512","640","800","1024","1280"} },
|
{ "Display\nRes", 7, {"320","400","512","640","800","1024","1280"} },
|
||||||
{ "Texture Res", 3, {"256","512","1024"} },
|
{ "Texture\nRes", 3, {"256","512","1024"} },
|
||||||
{ "Refresh Rate", 11, {"DEFAULT","MAX","60","70","72","75","80","85","90","100","120"} },
|
{ "Refresh\nRate", 11, {"DEFAULT","MAX","60","70","72","75","80","85","90","100","120"} },
|
||||||
{ "Show Stats", 2, {"OFF","ON"} },
|
{ "Show\nStats", 2, {"OFF","ON"} },
|
||||||
{ "BG Mode", 4, {"OFF","ANIMATIONS","VISUALIZATIONS","RANDOM MOVIES"} },
|
{ "BG\nMode", 4, {"OFF","ANIMATIONS","VISUALIZATIONS","RANDOM MOVIES"} },
|
||||||
{ "BG Brightness", 11, {"0%","10%","20%","30%","40%","50%","60%","70%","80%","90%","100%"} },
|
{ "BG\nBrightness", 11, {"0%","10%","20%","30%","40%","50%","60%","70%","80%","90%","100%"} },
|
||||||
{ "Movie Decode", 4, {"1ms","2ms","3ms","4ms"} },
|
{ "Movie\nDecode", 4, {"1ms","2ms","3ms","4ms"} },
|
||||||
{ "BG For Banner", 2, {"NO", "YES (slow)"} },
|
{ "BG For\nBanner", 2, {"NO", "YES (slow)"} },
|
||||||
{ "Wait for Vsync", 2, {"NO", "YES"} },
|
{ "Wait for\nVsync",2, {"NO", "YES"} },
|
||||||
};
|
};
|
||||||
|
|
||||||
static const int HorizRes[] = {
|
static const int HorizRes[] = {
|
||||||
|
|||||||
@@ -178,11 +178,12 @@ void ScreenOptions::InitOptionsText()
|
|||||||
|
|
||||||
title.LoadFromFont( THEME->GetPathTo("Fonts","option title") );
|
title.LoadFromFont( THEME->GetPathTo("Fonts","option title") );
|
||||||
CString sText = optline.szTitle;
|
CString sText = optline.szTitle;
|
||||||
sText.Replace( " ", "\n" );
|
// Chris: To make a line break, use '\n'
|
||||||
/* A bit of a hack: menus can put ^ to indicate a non-breaking space. This
|
// sText.Replace( " ", "\n" );
|
||||||
* can go away if tihs gets smarter. (FOr example, there's no reason to break
|
// /* A bit of a hack: menus can put ^ to indicate a non-breaking space. This
|
||||||
* "how to play" into three lines. */
|
// * can go away if tihs gets smarter. (FOr example, there's no reason to break
|
||||||
sText.Replace( "^", " " );
|
// * "how to play" into three lines. */
|
||||||
|
// sText.Replace( "^", " " );
|
||||||
|
|
||||||
title.SetText( sText );
|
title.SetText( sText );
|
||||||
title.SetXY( LABELS_X, fY );
|
title.SetXY( LABELS_X, fY );
|
||||||
|
|||||||
@@ -37,16 +37,16 @@ enum {
|
|||||||
NUM_PLAYER_OPTIONS_LINES
|
NUM_PLAYER_OPTIONS_LINES
|
||||||
};
|
};
|
||||||
OptionRowData g_PlayerOptionsLines[NUM_PLAYER_OPTIONS_LINES] = {
|
OptionRowData g_PlayerOptionsLines[NUM_PLAYER_OPTIONS_LINES] = {
|
||||||
{ "Speed", 9, {"x0.5","x0.75","x1","x1.5","x2","x3","x4","x5","x8"} },
|
{ "Speed", 9, {"x0.5","x0.75","x1","x1.5","x2","x3","x4","x5","x8"} },
|
||||||
{ "Boost", 2, {"OFF","ON"} },
|
{ "Boost", 2, {"OFF","ON"} },
|
||||||
{ "Effect", 8, {"OFF","WAVE", "DRUNK", "DIZZY","SPACE","MINI","FLIP","TORNADO"} },
|
{ "Effect", 8, {"OFF","WAVE", "DRUNK", "DIZZY","SPACE","MINI","FLIP","TORNADO"} },
|
||||||
{ "Appear\nance", 5, {"VISIBLE","HIDDEN","SUDDEN","STEALTH", "BLINK"} },
|
{ "Appear\n-ance", 5, {"VISIBLE","HIDDEN","SUDDEN","STEALTH", "BLINK"} },
|
||||||
{ "Turn", 5, {"OFF","MIRROR","LEFT","RIGHT","SHUFFLE"} },
|
{ "Turn", 5, {"OFF","MIRROR","LEFT","RIGHT","SHUFFLE"} },
|
||||||
{ "Little", 2, {"OFF","ON"} },
|
{ "Little", 2, {"OFF","ON"} },
|
||||||
{ "Scroll", 2, {"STANDARD","REVERSE"} },
|
{ "Scroll", 2, {"STANDARD","REVERSE"} },
|
||||||
{ "Color", 4, {"VIVID","NOTE","FLAT","PLAIN"} },
|
{ "Color", 4, {"VIVID","NOTE","FLAT","PLAIN"} },
|
||||||
{ "Holds", 2, {"OFF","ON"} },
|
{ "Holds", 2, {"OFF","ON"} },
|
||||||
{ "Dark", 2, {"OFF","ON"} },
|
{ "Dark", 2, {"OFF","ON"} },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -158,6 +158,9 @@ ScreenSelectDifficulty::ScreenSelectDifficulty()
|
|||||||
m_framePages.AddChild( &m_sprCursor[p] );
|
m_framePages.AddChild( &m_sprCursor[p] );
|
||||||
|
|
||||||
m_sprOK[p].Load( THEME->GetPathTo("Graphics", "select difficulty ok 2x1") );
|
m_sprOK[p].Load( THEME->GetPathTo("Graphics", "select difficulty ok 2x1") );
|
||||||
|
m_sprOK[p].SetState( p );
|
||||||
|
m_sprOK[p].StopAnimating();
|
||||||
|
m_sprOK[p].SetDiffuse( D3DXCOLOR(1,1,1,0) );
|
||||||
m_framePages.AddChild( &m_sprOK[p] );
|
m_framePages.AddChild( &m_sprOK[p] );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ ScreenSelectMusic::ScreenSelectMusic()
|
|||||||
m_Banner.SetCroppedSize( BANNER_WIDTH, BANNER_HEIGHT );
|
m_Banner.SetCroppedSize( BANNER_WIDTH, BANNER_HEIGHT );
|
||||||
this->AddChild( &m_Banner );
|
this->AddChild( &m_Banner );
|
||||||
|
|
||||||
m_sprBannerFrame.Load( THEME->GetPathTo("Graphics","select music info frame") );
|
m_sprBannerFrame.Load( THEME->GetPathTo("Graphics","select music banner frame") );
|
||||||
m_sprBannerFrame.SetXY( BANNER_FRAME_X, BANNER_FRAME_Y );
|
m_sprBannerFrame.SetXY( BANNER_FRAME_X, BANNER_FRAME_Y );
|
||||||
this->AddChild( &m_sprBannerFrame );
|
this->AddChild( &m_sprBannerFrame );
|
||||||
|
|
||||||
@@ -196,7 +196,7 @@ ScreenSelectMusic::ScreenSelectMusic()
|
|||||||
if( !GAMESTATE->IsPlayerEnabled((PlayerNumber)p) )
|
if( !GAMESTATE->IsPlayerEnabled((PlayerNumber)p) )
|
||||||
continue; // skip
|
continue; // skip
|
||||||
|
|
||||||
m_sprHighScoreFrame[p].Load( THEME->GetPathTo("Graphics","select music score frame") );
|
m_sprHighScoreFrame[p].Load( THEME->GetPathTo("Graphics","select music score frame 1x2") );
|
||||||
m_sprHighScoreFrame[p].StopAnimating();
|
m_sprHighScoreFrame[p].StopAnimating();
|
||||||
m_sprHighScoreFrame[p].SetState( p );
|
m_sprHighScoreFrame[p].SetState( p );
|
||||||
m_sprHighScoreFrame[p].SetXY( SCORE_X(p), SCORE_Y(p) );
|
m_sprHighScoreFrame[p].SetXY( SCORE_X(p), SCORE_Y(p) );
|
||||||
@@ -318,7 +318,7 @@ void ScreenSelectMusic::TweenOffScreen()
|
|||||||
|
|
||||||
m_GrooveRadar.TweenOffScreen();
|
m_GrooveRadar.TweenOffScreen();
|
||||||
|
|
||||||
m_textSongOptions.FadeOff( 0, "fade", TWEEN_TIME );
|
m_textSongOptions.FadeOff( 0, "foldy", TWEEN_TIME );
|
||||||
|
|
||||||
for( p=0; p<NUM_PLAYERS; p++ )
|
for( p=0; p<NUM_PLAYERS; p++ )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -30,9 +30,9 @@ enum {
|
|||||||
};
|
};
|
||||||
|
|
||||||
OptionRowData g_SongOptionsLines[NUM_SONG_OPTIONS_LINES] = {
|
OptionRowData g_SongOptionsLines[NUM_SONG_OPTIONS_LINES] = {
|
||||||
{ "Life Type", 2, {"BAR","BATTERY"} },
|
{ "Life\nType", 2, {"BAR","BATTERY"} },
|
||||||
{ "Bar Drain", 3, {"NORMAL","NO RECOVER","SUDDEN DEATH"} },
|
{ "Bar\nDrain", 3, {"NORMAL","NO RECOVER","SUDDEN DEATH"} },
|
||||||
{ "Bat Lives", 10, {"1","2","3","4","5","6","7","8","9","10"} },
|
{ "Bat\nLives", 10, {"1","2","3","4","5","6","7","8","9","10"} },
|
||||||
{ "Fail", 3, {"ARCADE","END OF SONG","OFF"} },
|
{ "Fail", 3, {"ARCADE","END OF SONG","OFF"} },
|
||||||
{ "Assist", 2, {"OFF","TICK"} },
|
{ "Assist", 2, {"OFF","TICK"} },
|
||||||
{ "Rate", 9, {"x0.7","x0.8","x0.9","x1.0","x1.1","x1.2","x1.3","x1.4","x1.5"} },
|
{ "Rate", 9, {"x0.7","x0.8","x0.9","x1.0","x1.1","x1.2","x1.3","x1.4","x1.5"} },
|
||||||
|
|||||||
@@ -193,8 +193,6 @@ ScreenStage::ScreenStage()
|
|||||||
}
|
}
|
||||||
m_frameStage.AddChild( &m_sprStage );
|
m_frameStage.AddChild( &m_sprStage );
|
||||||
|
|
||||||
this->AddChild( &m_Fade ); // fade should draw last, on top of everything else
|
|
||||||
m_Fade.SetOpened();
|
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -215,6 +213,9 @@ ScreenStage::ScreenStage()
|
|||||||
m_frameStage.SetXY( CENTER_X, fStageOffScreenY );
|
m_frameStage.SetXY( CENTER_X, fStageOffScreenY );
|
||||||
m_frameStage.BeginTweening(0.8f, Actor::TWEEN_BIAS_BEGIN );
|
m_frameStage.BeginTweening(0.8f, Actor::TWEEN_BIAS_BEGIN );
|
||||||
m_frameStage.SetTweenY( CENTER_Y );
|
m_frameStage.SetTweenY( CENTER_Y );
|
||||||
|
|
||||||
|
this->AddChild( &m_quadMask ); // add quad mask before stage so that it will block out the stage sprites
|
||||||
|
this->AddChild( &m_frameStage );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -229,6 +230,8 @@ ScreenStage::ScreenStage()
|
|||||||
|
|
||||||
m_frameStage.SetXY( CENTER_X, CENTER_Y+160 );
|
m_frameStage.SetXY( CENTER_X, CENTER_Y+160 );
|
||||||
m_frameStage.SetZoom( 0.5f );
|
m_frameStage.SetZoom( 0.5f );
|
||||||
|
|
||||||
|
this->AddChild( &m_frameStage );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -504,6 +507,9 @@ ScreenStage::ScreenStage()
|
|||||||
|
|
||||||
m_stagename.SetTweenX(CENTER_X+70); // set their new locations
|
m_stagename.SetTweenX(CENTER_X+70); // set their new locations
|
||||||
AddChild( &m_stagename ); //add the actor
|
AddChild( &m_stagename ); //add the actor
|
||||||
|
|
||||||
|
this->AddChild( &m_frameStage );
|
||||||
|
|
||||||
//////////////////////////////
|
//////////////////////////////
|
||||||
// END stage name //
|
// END stage name //
|
||||||
//////////////////////////////
|
//////////////////////////////
|
||||||
@@ -511,8 +517,8 @@ ScreenStage::ScreenStage()
|
|||||||
m_sprStage.SetZoom( 0 ); // hide this element for Ez2 :)
|
m_sprStage.SetZoom( 0 ); // hide this element for Ez2 :)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Add this last, so it's on top (except for the QuadMask, due to SetZ) */
|
this->AddChild( &m_Fade ); // fade should draw last, on top of everything else
|
||||||
this->AddChild( &m_frameStage );
|
m_Fade.SetOpened();
|
||||||
|
|
||||||
this->SendScreenMessage( SM_DoneFadingIn, 1.0f );
|
this->SendScreenMessage( SM_DoneFadingIn, 1.0f );
|
||||||
this->SendScreenMessage( SM_StartFadingOut, 4.0f );
|
this->SendScreenMessage( SM_StartFadingOut, 4.0f );
|
||||||
|
|||||||
@@ -398,7 +398,7 @@ void Song::TidyUpData()
|
|||||||
m_sSubTitle.TrimRight();
|
m_sSubTitle.TrimRight();
|
||||||
if( m_sArtist == "" ) m_sArtist = "Unknown artist";
|
if( m_sArtist == "" ) m_sArtist = "Unknown artist";
|
||||||
if( m_BPMSegments.GetSize() == 0 )
|
if( m_BPMSegments.GetSize() == 0 )
|
||||||
throw RageException( "No #BPM specified in '%s.'", GetSongFilePath() );
|
throw RageException( "No #BPM specified in '%s.'", m_sSongDir+m_sSongFileName );
|
||||||
|
|
||||||
if( !HasMusic() )
|
if( !HasMusic() )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -128,9 +128,8 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION
|
|||||||
CAPTION "StepMania Error"
|
CAPTION "StepMania Error"
|
||||||
FONT 8, "MS Sans Serif"
|
FONT 8, "MS Sans Serif"
|
||||||
BEGIN
|
BEGIN
|
||||||
EDITTEXT IDC_EDIT_ERROR,5,80,320,130,ES_MULTILINE |
|
EDITTEXT IDC_EDIT_ERROR,5,80,320,130,ES_MULTILINE | ES_READONLY |
|
||||||
ES_AUTOHSCROLL | ES_READONLY | WS_VSCROLL | NOT
|
WS_VSCROLL | NOT WS_TABSTOP
|
||||||
WS_TABSTOP
|
|
||||||
DEFPUSHBUTTON "Close",IDOK,265,215,60,15
|
DEFPUSHBUTTON "Close",IDOK,265,215,60,15
|
||||||
CONTROL 129,IDC_STATIC,"Static",SS_BITMAP,0,0,332,38
|
CONTROL 129,IDC_STATIC,"Static",SS_BITMAP,0,0,332,38
|
||||||
LTEXT "Sorry! An error has occurred while running StepMania.\r\n\r\nSpecific details about the error may be listeted in the box below:",
|
LTEXT "Sorry! An error has occurred while running StepMania.\r\n\r\nSpecific details about the error may be listeted in the box below:",
|
||||||
|
|||||||
@@ -182,11 +182,24 @@ try_element_again:
|
|||||||
CString sNewFileName;
|
CString sNewFileName;
|
||||||
file.ReadString( sNewFileName );
|
file.ReadString( sNewFileName );
|
||||||
// CString sNewFilePath = sDir+"\\"+sNewFileName; // This is what it used to be, FONT redirs were getting extra slashes
|
// CString sNewFilePath = sDir+"\\"+sNewFileName; // This is what it used to be, FONT redirs were getting extra slashes
|
||||||
// at the start of their file names, so I took out this extra slash - Andy.
|
// at the start of their file names, so I took out this extra slash - Andy.
|
||||||
CString sNewFilePath = sDir+sNewFileName;
|
file.Close();
|
||||||
if( sNewFileName == "" || !DoesFileExist(sNewFilePath) )
|
CString sNewFilePath = sDir+sNewFileName;
|
||||||
throw RageException( "The redirect '%s' points to the file '%s', which does not exist. Verify that this redirect is correct.", sRedirFilePath, sNewFilePath );
|
if( sNewFileName == "" || !DoesFileExist(sNewFilePath) )
|
||||||
return sNewFilePath;
|
{
|
||||||
|
#ifdef _DEBUG
|
||||||
|
if( IDRETRY == AfxMessageBox( ssprintf("The redirect '%s' points to the file '%s', which does not exist. Verify that this redirect is correct.", sRedirFilePath, sNewFilePath), MB_RETRYCANCEL ) )
|
||||||
|
goto try_element_again;
|
||||||
|
#endif
|
||||||
|
throw RageException( "The redirect '%s' points to the file '%s', which does not exist. Verify that this redirect is correct.", sRedirFilePath, sNewFilePath );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return sNewFilePath;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return asPossibleElementFilePaths[0];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return asPossibleElementFilePaths[0];
|
return asPossibleElementFilePaths[0];
|
||||||
|
|||||||
@@ -96,11 +96,11 @@ SOURCE=.\manage.bmp
|
|||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=..\RageUtil.cpp
|
SOURCE=.\RageUtil.cpp
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=..\RageUtil.h
|
SOURCE=.\RageUtil.h
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@@ -1,13 +1,15 @@
|
|||||||
; NSIS Install Script
|
; NSIS Install Script
|
||||||
; created by BBF and chrisdanford
|
; created by
|
||||||
|
; BBF
|
||||||
|
; chrisdanford
|
||||||
; I use the following command to create the installer:
|
; I use the following command to create the installer:
|
||||||
; D:\Program Files\NSIS>makensis.exe /v3 /cd "m:\Dev Projects\CVS\stepmania\stepmania.nsi"
|
; D:\Program Files\NSIS>makensis.exe /v3 /cd "m:\Dev Projects\CVS\stepmania\stepmania.nsi"
|
||||||
;
|
;
|
||||||
; NOTE: this .NSI script is designed for NSIS v1.8+
|
; NOTE: this .NSI script is designed for NSIS v1.8+
|
||||||
|
|
||||||
Name "StepMania"
|
Name "StepMania"
|
||||||
OutFile "stepmania300beta6.exe"
|
OutFile "stepmania300beta6rc.exe"
|
||||||
!define PRODUCT_NAME "StepMania 3.0 beta 6"
|
!define PRODUCT_NAME "StepMania 3.0 beta 6 Release Candidate"
|
||||||
|
|
||||||
|
|
||||||
; Some default compiler settings (uncomment and change at will):
|
; Some default compiler settings (uncomment and change at will):
|
||||||
@@ -98,6 +100,7 @@ File "Announcers\instructions.txt"
|
|||||||
CreateDirectory "$INSTDIR\BGAnimations"
|
CreateDirectory "$INSTDIR\BGAnimations"
|
||||||
SetOutPath "$INSTDIR\BGAnimations"
|
SetOutPath "$INSTDIR\BGAnimations"
|
||||||
File "BGAnimations\instructions.txt"
|
File "BGAnimations\instructions.txt"
|
||||||
|
File /r "BGAnimations\danger"
|
||||||
|
|
||||||
CreateDirectory "$INSTDIR\Cache"
|
CreateDirectory "$INSTDIR\Cache"
|
||||||
SetOutPath "$INSTDIR\Cache"
|
SetOutPath "$INSTDIR\Cache"
|
||||||
@@ -142,6 +145,7 @@ SetOutPath "$INSTDIR"
|
|||||||
File "bass.dll"
|
File "bass.dll"
|
||||||
File "COPYING.txt"
|
File "COPYING.txt"
|
||||||
File "README-FIRST.TXT"
|
File "README-FIRST.TXT"
|
||||||
|
File "NEWS"
|
||||||
File "stepmania.exe"
|
File "stepmania.exe"
|
||||||
File "stepmania.ini"
|
File "stepmania.ini"
|
||||||
File "smpackage.exe"
|
File "smpackage.exe"
|
||||||
@@ -219,6 +223,7 @@ RMDir "$INSTDIR\Visualizations"
|
|||||||
Delete "$INSTDIR\bass.dll"
|
Delete "$INSTDIR\bass.dll"
|
||||||
Delete "$INSTDIR\COPYING.txt"
|
Delete "$INSTDIR\COPYING.txt"
|
||||||
Delete "$INSTDIR\README-FIRST.TXT"
|
Delete "$INSTDIR\README-FIRST.TXT"
|
||||||
|
Delete "$INSTDIR\NEWS"
|
||||||
Delete "$INSTDIR\stepmania.exe"
|
Delete "$INSTDIR\stepmania.exe"
|
||||||
Delete "$INSTDIR\stepmania.ini"
|
Delete "$INSTDIR\stepmania.ini"
|
||||||
Delete "$INSTDIR\smpackage.exe"
|
Delete "$INSTDIR\smpackage.exe"
|
||||||
|
|||||||
Reference in New Issue
Block a user