static FrameRate frame_rate(100);
+/* If the demo was stopped - because game started, level
+ editor was excuted, etc - call this when you get back
+ to the title code.
+ */
+void resume_demo()
+{
+ // FIXME: shouldn't be needed if GameSession
+ // didn't relay on global variables
+ titlesession->get_current_sector()->activate();
+ titlesession->set_current();
+
+ frame_rate.update();
+}
+
void update_load_save_game_menu(Menu* pmenu)
{
for(int i = 2; i < 7; ++i)
worldmap.display(); // run the map
Menu::set_current(main_menu);
+ resume_demo();
}
else if (index < (int)contrib_subsets.size() + first_level_index)
{
/** get level's title */
std::string level_title = "<no title>";
- LispReader* reader = LispReader::load(subset.get_level_filename(i), "supertux-level");
+ std::string filename = subset.get_level_filename(i);
+ std::string filepath;
+ filepath = st_dir + "/levels/" + filename;
+ if (access(filepath.c_str(), R_OK) != 0)
+ {
+ filepath = datadir + "/levels/" + filename;
+ if (access(filepath.c_str(), R_OK) != 0)
+ {
+ std::cerr << "Error: Level: couldn't find level: " << filename << std::endl;
+ continue;
+ }
+ }
+
+ LispReader* reader = LispReader::load(filepath, "supertux-level");
if(!reader)
{
std::cerr << "Error: Could not open level file. Ignoring...\n";
session.run();
player_status.reset();
Menu::set_current(main_menu);
- titlesession->get_current_sector()->activate();
- titlesession->set_current();
+ resume_demo();
}
}
}
-/* If the demo was stopped - because game started, level
- editor was excuted, etc - call this when you get back
- to the title code.
- */
-void resume_demo()
-{
- // FIXME: shouldn't be needed if GameSession
- // didn't relay on global variables
- titlesession->get_current_sector()->activate();
- titlesession->set_current();
-
- frame_rate.update();
-}
-
void draw_demo(double frame_ratio)
{
Sector* world = titlesession->get_current_sector();
random_timer.init(true);
Ticks::pause_init();
- titlesession = new GameSession(datadir + "/levels/misc/menu.stl", ST_GL_DEMO_GAME);
+ titlesession = new GameSession("misc/menu.stl", ST_GL_DEMO_GAME);
/* Load images: */
bkg_title = new Surface(datadir + "/images/background/arctis.jpg", false);