checking in SMMAX2 theme and small fixes to themes and smpackage

This commit is contained in:
Chris Danford
2002-09-09 05:22:02 +00:00
parent 49efb3ebf5
commit ccc43c8502
24 changed files with 257 additions and 83 deletions
+2
View File
@@ -1,4 +1,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
on the same row.
CHANGE: Added bright ghost flash on hold note score of OK.
+5
View File
@@ -736,6 +736,10 @@ Example:
\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.
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.
************************************************************
15. The .CRS File Format
************************************************************
+127 -14
View File
@@ -2,6 +2,25 @@
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
about us page
@@ -14,30 +33,20 @@ RMA phone
RMA Kiko USB
couples format
3/5 button options toggle
kitsappt photos
100 flash on OK
slower eval bar tween
post graphics jobs needed on web site.
max style judge tween
add turns to editor
precise timing adjustment
draw taps on same row as hold with hold head
max style lifemeter animation
164 theme
warning
name entry
gap between wheel items
sample pop
@@ -46,14 +55,118 @@ fix screwed up scroll bar
ready, here we go between each stage of a course
team seattle link
send disc to Penny Arcade
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:
/////////////////////
warning
name entry
change transition oni to show banner
max style lifemeter animation
precise timing adjustment
texture cache
move NoteSkin to Theme
+5
View File
@@ -250,6 +250,7 @@ void Background::LoadFromSong( Song* pSong )
{
CStringArray arrayPossibleAnims;
GetDirListing( BG_ANIMS_DIR+"*.*", arrayPossibleAnims, true, true );
// strip out "cvs" and "danger"
for( int i=arrayPossibleAnims.GetSize()-1; i>=0; i-- )
if( 0==stricmp(arrayPossibleAnims[i].Right(3),"cvs") || -1!=arrayPossibleAnims[i].Find("anger") )
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]->SetZoom( fZoom );
}
m_BGADanger.SetXY( (float)LEFT_EDGE, (float)TOP_EDGE );
m_BGADanger.SetZoom( fZoom );
}
-3
View File
@@ -134,9 +134,6 @@ void GameDef::GetSkinNames( CStringArray &AddTo ) const
for( int i=AddTo.GetSize()-1; i>=0; i-- )
if( 0 == stricmp("cvs", AddTo[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
+2
View File
@@ -176,6 +176,8 @@ void NoteData::CopyRange( NoteData* pFrom, int iFromIndexBegin, int iFromIndexEn
void NoteData::AddHoldNote( HoldNote add )
{
ASSERT( add.m_fStartBeat>0 && add.m_fEndBeat>0 );
int i;
// look for other hold notes that overlap and merge them
+4 -4
View File
@@ -35,10 +35,10 @@ enum {
};
OptionRowData g_AppearanceOptionsLines[NUM_APPEARANCE_OPTIONS_LINES] = {
{ "Announcer", 1, {"OFF"} }, // fill this in on ImportOptions()
{ "Theme", 0, {""} }, // fill this in on ImportOptions()
{ "Note Skin", 0, {""} }, // fill this in on ImportOptions()
{ "How^To Play",2, {"OFF","ON"} },
{ "Announ\n-cer", 1, {"OFF"} }, // fill this in on ImportOptions()
{ "Theme", 0, {""} }, // fill this in on ImportOptions()
{ "Note\nSkin", 0, {""} }, // fill this in on ImportOptions()
{ "How To\nPlay", 2, {"OFF","ON"} },
};
ScreenAppearanceOptions::ScreenAppearanceOptions() :
+4
View File
@@ -717,6 +717,10 @@ void ScreenEdit::InputEdit( const DeviceInput& DeviceI, const InputEventType typ
newHN.m_iTrack = col;
newHN.m_fStartBeat = min(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 );
}
+16 -7
View File
@@ -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 )
{
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") );
}
else if( bOneHasNewRecord )
{
SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation new record") );
}
else
{
@@ -565,13 +574,13 @@ ScreenEvaluation::ScreenEvaluation( bool bSummary )
case RM_ARCADE_SUMMARY:
switch( max_grade )
{
case GRADE_E: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation e") ); break;
case GRADE_D: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation d") ); break;
case GRADE_C: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation c") ); break;
case GRADE_B: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation b") ); break;
case GRADE_A: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation a") ); break;
case GRADE_AA: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation aa") ); break;
case GRADE_AAA: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation aaa") ); break;
case GRADE_E: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation final e") ); break;
case GRADE_D: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation final d") ); break;
case GRADE_C: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation final c") ); break;
case GRADE_B: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation final b") ); break;
case GRADE_A: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation final a") ); break;
case GRADE_AA: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation final aa") ); break;
case GRADE_AAA: SOUND->PlayOnceStreamedFromDir( ANNOUNCER->GetPathTo("evaluation final aaa") ); break;
case GRADE_NO_DATA:
default:
ASSERT(0); // invalid grade
+16 -7
View File
@@ -351,7 +351,7 @@ ScreenGameplay::ScreenGameplay()
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.SetXY( SURVIVE_TIME_X, SURVIVE_TIME_Y );
m_textSurviveTime.SetText( "" );
@@ -380,6 +380,7 @@ ScreenGameplay::ScreenGameplay()
m_announcerDanger.Load( ANNOUNCER->GetPathTo("gameplay comment danger") );
m_announcerGood.Load( ANNOUNCER->GetPathTo("gameplay comment good") );
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_announcer200Combo.Load( ANNOUNCER->GetPathTo("gameplay 200 combo") );
@@ -679,12 +680,20 @@ void ScreenGameplay::Update( float fDeltaTime )
m_fTimeLeftBeforeDancingComment -= fDeltaTime;
if( m_fTimeLeftBeforeDancingComment <= 0 )
{
if( OneIsHot() )
m_announcerHot.PlayRandom();
else if( AllAreInDanger() )
m_announcerDanger.PlayRandom();
else
m_announcerGood.PlayRandom();
switch( GAMESTATE->m_PlayMode )
{
case PLAY_MODE_ARCADE:
if( OneIsHot() ) m_announcerHot.PlayRandom();
else if( AllAreInDanger() ) m_announcerDanger.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
}
+1
View File
@@ -129,6 +129,7 @@ private:
RandomSample m_announcerDanger;
RandomSample m_announcerGood;
RandomSample m_announcerHot;
RandomSample m_announcerOni;
RandomSample m_announcer100Combo;
RandomSample m_announcer200Combo;
RandomSample m_announcer300Combo;
+9 -9
View File
@@ -38,15 +38,15 @@ enum {
};
OptionRowData g_GraphicOptionsLines[NUM_GRAPHIC_OPTIONS_LINES] = {
{ "Display", 2, {"FULLSCREEN", "WINDOWED"} },
{ "Display Res", 7, {"320","400","512","640","800","1024","1280"} },
{ "Texture Res", 3, {"256","512","1024"} },
{ "Refresh Rate", 11, {"DEFAULT","MAX","60","70","72","75","80","85","90","100","120"} },
{ "Show Stats", 2, {"OFF","ON"} },
{ "BG Mode", 4, {"OFF","ANIMATIONS","VISUALIZATIONS","RANDOM MOVIES"} },
{ "BG Brightness", 11, {"0%","10%","20%","30%","40%","50%","60%","70%","80%","90%","100%"} },
{ "Movie Decode", 4, {"1ms","2ms","3ms","4ms"} },
{ "BG For Banner", 2, {"NO", "YES (slow)"} },
{ "Wait for Vsync", 2, {"NO", "YES"} },
{ "Display\nRes", 7, {"320","400","512","640","800","1024","1280"} },
{ "Texture\nRes", 3, {"256","512","1024"} },
{ "Refresh\nRate", 11, {"DEFAULT","MAX","60","70","72","75","80","85","90","100","120"} },
{ "Show\nStats", 2, {"OFF","ON"} },
{ "BG\nMode", 4, {"OFF","ANIMATIONS","VISUALIZATIONS","RANDOM MOVIES"} },
{ "BG\nBrightness", 11, {"0%","10%","20%","30%","40%","50%","60%","70%","80%","90%","100%"} },
{ "Movie\nDecode", 4, {"1ms","2ms","3ms","4ms"} },
{ "BG For\nBanner", 2, {"NO", "YES (slow)"} },
{ "Wait for\nVsync",2, {"NO", "YES"} },
};
static const int HorizRes[] = {
+6 -5
View File
@@ -178,11 +178,12 @@ void ScreenOptions::InitOptionsText()
title.LoadFromFont( THEME->GetPathTo("Fonts","option title") );
CString sText = optline.szTitle;
sText.Replace( " ", "\n" );
/* A bit of a hack: menus can put ^ to indicate a non-breaking space. This
* can go away if tihs gets smarter. (FOr example, there's no reason to break
* "how to play" into three lines. */
sText.Replace( "^", " " );
// Chris: To make a line break, use '\n'
// sText.Replace( " ", "\n" );
// /* A bit of a hack: menus can put ^ to indicate a non-breaking space. This
// * can go away if tihs gets smarter. (FOr example, there's no reason to break
// * "how to play" into three lines. */
// sText.Replace( "^", " " );
title.SetText( sText );
title.SetXY( LABELS_X, fY );
+10 -10
View File
@@ -37,16 +37,16 @@ enum {
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"} },
{ "Boost", 2, {"OFF","ON"} },
{ "Effect", 8, {"OFF","WAVE", "DRUNK", "DIZZY","SPACE","MINI","FLIP","TORNADO"} },
{ "Appear\nance", 5, {"VISIBLE","HIDDEN","SUDDEN","STEALTH", "BLINK"} },
{ "Turn", 5, {"OFF","MIRROR","LEFT","RIGHT","SHUFFLE"} },
{ "Little", 2, {"OFF","ON"} },
{ "Scroll", 2, {"STANDARD","REVERSE"} },
{ "Color", 4, {"VIVID","NOTE","FLAT","PLAIN"} },
{ "Holds", 2, {"OFF","ON"} },
{ "Dark", 2, {"OFF","ON"} },
{ "Speed", 9, {"x0.5","x0.75","x1","x1.5","x2","x3","x4","x5","x8"} },
{ "Boost", 2, {"OFF","ON"} },
{ "Effect", 8, {"OFF","WAVE", "DRUNK", "DIZZY","SPACE","MINI","FLIP","TORNADO"} },
{ "Appear\n-ance", 5, {"VISIBLE","HIDDEN","SUDDEN","STEALTH", "BLINK"} },
{ "Turn", 5, {"OFF","MIRROR","LEFT","RIGHT","SHUFFLE"} },
{ "Little", 2, {"OFF","ON"} },
{ "Scroll", 2, {"STANDARD","REVERSE"} },
{ "Color", 4, {"VIVID","NOTE","FLAT","PLAIN"} },
{ "Holds", 2, {"OFF","ON"} },
{ "Dark", 2, {"OFF","ON"} },
};
+3
View File
@@ -158,6 +158,9 @@ ScreenSelectDifficulty::ScreenSelectDifficulty()
m_framePages.AddChild( &m_sprCursor[p] );
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] );
}
+3 -3
View File
@@ -100,7 +100,7 @@ ScreenSelectMusic::ScreenSelectMusic()
m_Banner.SetCroppedSize( BANNER_WIDTH, BANNER_HEIGHT );
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 );
this->AddChild( &m_sprBannerFrame );
@@ -196,7 +196,7 @@ ScreenSelectMusic::ScreenSelectMusic()
if( !GAMESTATE->IsPlayerEnabled((PlayerNumber)p) )
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].SetState( p );
m_sprHighScoreFrame[p].SetXY( SCORE_X(p), SCORE_Y(p) );
@@ -318,7 +318,7 @@ void ScreenSelectMusic::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++ )
{
+3 -3
View File
@@ -30,9 +30,9 @@ enum {
};
OptionRowData g_SongOptionsLines[NUM_SONG_OPTIONS_LINES] = {
{ "Life Type", 2, {"BAR","BATTERY"} },
{ "Bar Drain", 3, {"NORMAL","NO RECOVER","SUDDEN DEATH"} },
{ "Bat Lives", 10, {"1","2","3","4","5","6","7","8","9","10"} },
{ "Life\nType", 2, {"BAR","BATTERY"} },
{ "Bar\nDrain", 3, {"NORMAL","NO RECOVER","SUDDEN DEATH"} },
{ "Bat\nLives", 10, {"1","2","3","4","5","6","7","8","9","10"} },
{ "Fail", 3, {"ARCADE","END OF SONG","OFF"} },
{ "Assist", 2, {"OFF","TICK"} },
{ "Rate", 9, {"x0.7","x0.8","x0.9","x1.0","x1.1","x1.2","x1.3","x1.4","x1.5"} },
+10 -4
View File
@@ -193,8 +193,6 @@ ScreenStage::ScreenStage()
}
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.BeginTweening(0.8f, Actor::TWEEN_BIAS_BEGIN );
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.SetZoom( 0.5f );
this->AddChild( &m_frameStage );
}
@@ -504,6 +507,9 @@ ScreenStage::ScreenStage()
m_stagename.SetTweenX(CENTER_X+70); // set their new locations
AddChild( &m_stagename ); //add the actor
this->AddChild( &m_frameStage );
//////////////////////////////
// END stage name //
//////////////////////////////
@@ -511,8 +517,8 @@ ScreenStage::ScreenStage()
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_frameStage );
this->AddChild( &m_Fade ); // fade should draw last, on top of everything else
m_Fade.SetOpened();
this->SendScreenMessage( SM_DoneFadingIn, 1.0f );
this->SendScreenMessage( SM_StartFadingOut, 4.0f );
+1 -1
View File
@@ -398,7 +398,7 @@ void Song::TidyUpData()
m_sSubTitle.TrimRight();
if( m_sArtist == "" ) m_sArtist = "Unknown artist";
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() )
{
+2 -3
View File
@@ -128,9 +128,8 @@ STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION
CAPTION "StepMania Error"
FONT 8, "MS Sans Serif"
BEGIN
EDITTEXT IDC_EDIT_ERROR,5,80,320,130,ES_MULTILINE |
ES_AUTOHSCROLL | ES_READONLY | WS_VSCROLL | NOT
WS_TABSTOP
EDITTEXT IDC_EDIT_ERROR,5,80,320,130,ES_MULTILINE | ES_READONLY |
WS_VSCROLL | NOT WS_TABSTOP
DEFPUSHBUTTON "Close",IDOK,265,215,60,15
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:",
+18 -5
View File
@@ -182,11 +182,24 @@ try_element_again:
CString sNewFileName;
file.ReadString( sNewFileName );
// 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.
CString sNewFilePath = sDir+sNewFileName;
if( sNewFileName == "" || !DoesFileExist(sNewFilePath) )
throw RageException( "The redirect '%s' points to the file '%s', which does not exist. Verify that this redirect is correct.", sRedirFilePath, sNewFilePath );
return sNewFilePath;
// at the start of their file names, so I took out this extra slash - Andy.
file.Close();
CString sNewFilePath = sDir+sNewFileName;
if( sNewFileName == "" || !DoesFileExist(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];
+2 -2
View File
@@ -96,11 +96,11 @@ SOURCE=.\manage.bmp
# End Source File
# Begin Source File
SOURCE=..\RageUtil.cpp
SOURCE=.\RageUtil.cpp
# End Source File
# Begin Source File
SOURCE=..\RageUtil.h
SOURCE=.\RageUtil.h
# End Source File
# Begin Source File
Binary file not shown.
+8 -3
View File
@@ -1,13 +1,15 @@
; NSIS Install Script
; created by BBF and chrisdanford
; created by
; BBF
; chrisdanford
; I use the following command to create the installer:
; 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+
Name "StepMania"
OutFile "stepmania300beta6.exe"
!define PRODUCT_NAME "StepMania 3.0 beta 6"
OutFile "stepmania300beta6rc.exe"
!define PRODUCT_NAME "StepMania 3.0 beta 6 Release Candidate"
; Some default compiler settings (uncomment and change at will):
@@ -98,6 +100,7 @@ File "Announcers\instructions.txt"
CreateDirectory "$INSTDIR\BGAnimations"
SetOutPath "$INSTDIR\BGAnimations"
File "BGAnimations\instructions.txt"
File /r "BGAnimations\danger"
CreateDirectory "$INSTDIR\Cache"
SetOutPath "$INSTDIR\Cache"
@@ -142,6 +145,7 @@ SetOutPath "$INSTDIR"
File "bass.dll"
File "COPYING.txt"
File "README-FIRST.TXT"
File "NEWS"
File "stepmania.exe"
File "stepmania.ini"
File "smpackage.exe"
@@ -219,6 +223,7 @@ RMDir "$INSTDIR\Visualizations"
Delete "$INSTDIR\bass.dll"
Delete "$INSTDIR\COPYING.txt"
Delete "$INSTDIR\README-FIRST.TXT"
Delete "$INSTDIR\NEWS"
Delete "$INSTDIR\stepmania.exe"
Delete "$INSTDIR\stepmania.ini"
Delete "$INSTDIR\smpackage.exe"