X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Ftitle.cpp;h=93ec351fb1286419bcd5d18afbc92371d1605bea;hb=495f8b77cb935fe8eff81bec755efca8e34e8a99;hp=12f1c255b48a0a1e9c08fcde09b3ba26c5fc6203;hpb=c7fe25b98f752162f244a1d7bd8a45807c94d270;p=supertux.git diff --git a/src/title.cpp b/src/title.cpp index 12f1c255b..93ec351fb 100644 --- a/src/title.cpp +++ b/src/title.cpp @@ -36,7 +36,6 @@ #include #endif -#include "defines.h" #include "app/globals.h" #include "title.h" #include "video/screen.h" @@ -52,7 +51,7 @@ #include "gameloop.h" #include "worldmap.h" #include "leveleditor.h" -#include "scene.h" +#include "player_status.h" #include "tile.h" #include "sector.h" #include "object/tilemap.h" @@ -61,6 +60,7 @@ #include "resources.h" #include "app/gettext.h" #include "misc.h" +#include "textscroller.h" static Surface* bkg_title; static Surface* logo; @@ -84,9 +84,8 @@ static FrameRate frame_rate(100); */ void resume_demo() { - // FIXME: shouldn't be needed if GameSession - // didn't relay on global variables - titlesession->get_current_sector()->activate(); + player_status.reset(); + titlesession->get_current_sector()->activate("main"); titlesession->set_current(); frame_rate.update(); @@ -215,7 +214,7 @@ void check_levels_contrib_menu() contrib_subset_menu->additem(MN_HL,"",0,0); contrib_subset_menu->additem(MN_BACK, _("Back"), 0, 0); - titlesession->get_current_sector()->activate(); + titlesession->get_current_sector()->activate("main"); titlesession->set_current(); } } @@ -246,22 +245,22 @@ void draw_demo(float elapsed_time) world->play_music(LEVEL_MUSIC); - tux->key_event((SDLKey) keymap.right,DOWN); + tux->key_event((SDLKey) keymap.right, true); if(random_timer.check()) { random_timer.start(float(rand() % 3000 + 3000) / 1000.); walking = !walking; } else { if(walking) - tux->key_event((SDLKey) keymap.jump,UP); + tux->key_event((SDLKey) keymap.jump, false); else - tux->key_event((SDLKey) keymap.jump,DOWN); + tux->key_event((SDLKey) keymap.jump, true); } // Wrap around at the end of the level back to the beginnig if(world->solids->get_width() * 32 - 320 < tux->get_pos().x) { - tux->level_begin(); + world->activate("main"); world->camera->reset(tux->get_pos()); } @@ -286,6 +285,7 @@ void title(void) { walking = true; LevelEditor* leveleditor; + MusicRef credits_music; Ticks::pause_init(); @@ -297,7 +297,7 @@ void title(void) logo = new Surface(datadir + "/images/title/logo.png", true); img_choose_subset = new Surface(datadir + "/images/status/choose-level-subset.png", true); - titlesession->get_current_sector()->activate(); + titlesession->get_current_sector()->activate("main"); titlesession->set_current(); /* --- Main title loop: --- */ @@ -385,7 +385,9 @@ void title(void) break; case MNID_CREDITS: fadeout(500); - display_text_file("credits.txt", SCROLL_SPEED_CREDITS, white_big_text , white_text, white_small_text, blue_text ); + credits_music = SoundManager::get()->load_music(datadir + "/music/credits.ogg"); + SoundManager::get()->play_music(credits_music); + display_text_file("credits.txt"); fadeout(500); Menu::set_current(main_menu); break;