diff --git a/stepmania/NEWS b/stepmania/NEWS index 5904eeacf8..fce461166a 100644 --- a/stepmania/NEWS +++ b/stepmania/NEWS @@ -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. diff --git a/stepmania/README-FIRST.TXT b/stepmania/README-FIRST.TXT index 5fcab633e0..ab8a1e9b64 100644 --- a/stepmania/README-FIRST.TXT +++ b/stepmania/README-FIRST.TXT @@ -736,6 +736,10 @@ Example: \BGAnimations\\ +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 ************************************************************ diff --git a/stepmania/TODO.chris b/stepmania/TODO.chris index 8bd287a50a..1e4b5aedfa 100644 --- a/stepmania/TODO.chris +++ b/stepmania/TODO.chris @@ -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 diff --git a/stepmania/src/Background.cpp b/stepmania/src/Background.cpp index 7af870bfcf..11a302471b 100644 --- a/stepmania/src/Background.cpp +++ b/stepmania/src/Background.cpp @@ -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 ); + } diff --git a/stepmania/src/GameDef.cpp b/stepmania/src/GameDef.cpp index 52b615eab4..08cf5e9ed1 100644 --- a/stepmania/src/GameDef.cpp +++ b/stepmania/src/GameDef.cpp @@ -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 diff --git a/stepmania/src/NoteData.cpp b/stepmania/src/NoteData.cpp index e5f7343421..b91bda225b 100644 --- a/stepmania/src/NoteData.cpp +++ b/stepmania/src/NoteData.cpp @@ -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 diff --git a/stepmania/src/ScreenAppearanceOptions.cpp b/stepmania/src/ScreenAppearanceOptions.cpp index e66faab0ab..c71c834feb 100644 --- a/stepmania/src/ScreenAppearanceOptions.cpp +++ b/stepmania/src/ScreenAppearanceOptions.cpp @@ -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() : diff --git a/stepmania/src/ScreenEdit.cpp b/stepmania/src/ScreenEdit.cpp index 4af41f31c1..e184805643 100644 --- a/stepmania/src/ScreenEdit.cpp +++ b/stepmania/src/ScreenEdit.cpp @@ -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 ); } diff --git a/stepmania/src/ScreenEvaluation.cpp b/stepmania/src/ScreenEvaluation.cpp index ff594051f1..97df4f1ae8 100644 --- a/stepmania/src/ScreenEvaluation.cpp +++ b/stepmania/src/ScreenEvaluation.cpp @@ -531,6 +531,11 @@ ScreenEvaluation::ScreenEvaluation( bool bSummary ) } } + + bool bOneHasNewRecord = false; + for( p=0; pIsPlayerEnabled(p) && bNewRecord[p] ) + bOneHasNewRecord = true; if( m_bTryExtraStage ) { @@ -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 diff --git a/stepmania/src/ScreenGameplay.cpp b/stepmania/src/ScreenGameplay.cpp index aa59a89b60..5e8eedc179 100644 --- a/stepmania/src/ScreenGameplay.cpp +++ b/stepmania/src/ScreenGameplay.cpp @@ -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 } diff --git a/stepmania/src/ScreenGameplay.h b/stepmania/src/ScreenGameplay.h index 985afe92f0..483316f08a 100644 --- a/stepmania/src/ScreenGameplay.h +++ b/stepmania/src/ScreenGameplay.h @@ -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; diff --git a/stepmania/src/ScreenGraphicOptions.cpp b/stepmania/src/ScreenGraphicOptions.cpp index f77cc1b6d7..944ce87dcf 100644 --- a/stepmania/src/ScreenGraphicOptions.cpp +++ b/stepmania/src/ScreenGraphicOptions.cpp @@ -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[] = { diff --git a/stepmania/src/ScreenOptions.cpp b/stepmania/src/ScreenOptions.cpp index 140f339919..c6c5e66148 100644 --- a/stepmania/src/ScreenOptions.cpp +++ b/stepmania/src/ScreenOptions.cpp @@ -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 ); diff --git a/stepmania/src/ScreenPlayerOptions.cpp b/stepmania/src/ScreenPlayerOptions.cpp index 87f6750c6e..59e5685420 100644 --- a/stepmania/src/ScreenPlayerOptions.cpp +++ b/stepmania/src/ScreenPlayerOptions.cpp @@ -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"} }, }; diff --git a/stepmania/src/ScreenSelectDifficulty.cpp b/stepmania/src/ScreenSelectDifficulty.cpp index f271186b2a..f285a3dbb1 100644 --- a/stepmania/src/ScreenSelectDifficulty.cpp +++ b/stepmania/src/ScreenSelectDifficulty.cpp @@ -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] ); } diff --git a/stepmania/src/ScreenSelectMusic.cpp b/stepmania/src/ScreenSelectMusic.cpp index ee08b3f054..bac13a5175 100644 --- a/stepmania/src/ScreenSelectMusic.cpp +++ b/stepmania/src/ScreenSelectMusic.cpp @@ -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; pAddChild( &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 ); diff --git a/stepmania/src/Song.cpp b/stepmania/src/Song.cpp index b5b0abd04e..367fbeb4fb 100644 --- a/stepmania/src/Song.cpp +++ b/stepmania/src/Song.cpp @@ -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() ) { diff --git a/stepmania/src/StepMania.RC b/stepmania/src/StepMania.RC index d6b5194481..ea5e50bf66 100644 --- a/stepmania/src/StepMania.RC +++ b/stepmania/src/StepMania.RC @@ -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:", diff --git a/stepmania/src/ThemeManager.cpp b/stepmania/src/ThemeManager.cpp index ad3d97ba77..fd5c0927e5 100644 --- a/stepmania/src/ThemeManager.cpp +++ b/stepmania/src/ThemeManager.cpp @@ -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]; diff --git a/stepmania/src/smpackage/smpackage.dsp b/stepmania/src/smpackage/smpackage.dsp index d8d8b77ccd..e3a3d83218 100644 --- a/stepmania/src/smpackage/smpackage.dsp +++ b/stepmania/src/smpackage/smpackage.dsp @@ -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 diff --git a/stepmania/src/smpackage/smpackage.opt b/stepmania/src/smpackage/smpackage.opt index a4911cc8e3..712fe6e3de 100644 Binary files a/stepmania/src/smpackage/smpackage.opt and b/stepmania/src/smpackage/smpackage.opt differ diff --git a/stepmania/stepmania.nsi b/stepmania/stepmania.nsi index c6f13cb1b8..98aedc9ff0 100644 --- a/stepmania/stepmania.nsi +++ b/stepmania/stepmania.nsi @@ -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"