-
- sprintf(str, " %d", player_status.coins);
- context.draw_text(white_text, _("COINS"),
- Vector(SCREEN_WIDTH - white_text->get_text_width(_("COINS"))-white_text->get_text_width(" 99"), 0),
- LEFT_ALLIGN, LAYER_FOREGROUND1);
- context.draw_text(gold_text, str,
- Vector(SCREEN_WIDTH - gold_text->get_text_width(" 99"), 0),LEFT_ALLIGN, LAYER_FOREGROUND1);
-
- if (player_status.lives >= 5)
- {
- sprintf(str, "%dx", player_status.lives);
- float x = SCREEN_WIDTH - gold_text->get_text_width(str) - tux_life->w;
- context.draw_text(gold_text, str, Vector(x, 20), LEFT_ALLIGN, LAYER_FOREGROUND1);
- context.draw_surface(tux_life, Vector(SCREEN_WIDTH - 16, 20),
- LAYER_FOREGROUND1);
- }
- else
- {
- for(int i= 0; i < player_status.lives; ++i)
- context.draw_surface(tux_life,
- Vector(SCREEN_WIDTH - tux_life->w*4 +(tux_life->w*i), 20),
- LAYER_FOREGROUND1);
- }
-
- context.draw_text(white_text, _("LIVES"),
- Vector(SCREEN_WIDTH - white_text->get_text_width(_("LIVES")) - white_text->get_text_width(" 99"), 20),
- LEFT_ALLIGN, LAYER_FOREGROUND1);
-
- if(config->show_fps) {
- sprintf(str, "%2.1f", fps_fps);
- context.draw_text(white_text, "FPS",
- Vector(SCREEN_WIDTH -
- white_text->get_text_width("FPS "), 40),
- LEFT_ALLIGN, LAYER_FOREGROUND1);
- context.draw_text(gold_text, str,
- Vector(SCREEN_WIDTH-4*16, 40),
- LEFT_ALLIGN, LAYER_FOREGROUND1);
- }
-}
-
-void
-GameSession::drawresultscreen()
-{
- char str[80];
-
- DrawingContext context;
- for(Sector::GameObjects::iterator i = currentsector->gameobjects.begin();
- i != currentsector->gameobjects.end(); ++i) {
- Background* background = dynamic_cast<Background*> (*i);
- if(background) {
- background->draw(context);
- }
- }
-
- context.draw_text(blue_text, _("Result:"), Vector(SCREEN_WIDTH/2, 200),
- CENTER_ALLIGN, LAYER_FOREGROUND1);
-
- sprintf(str, _("SCORE: %d"), global_stats.get_points(SCORE_STAT));
- context.draw_text(gold_text, str, Vector(SCREEN_WIDTH/2, 224), CENTER_ALLIGN, LAYER_FOREGROUND1);
-
- sprintf(str, _("COINS: %d"), player_status.coins);
- context.draw_text(gold_text, str, Vector(SCREEN_WIDTH/2, 256), CENTER_ALLIGN, LAYER_FOREGROUND1);
-
- context.do_drawing();
-
- wait_for_event(2.0, 5.0);
-}
-
-std::string slotinfo(int slot)
-{
- std::string tmp;
- std::string slotfile;
- std::string title;
- std::stringstream stream;
- stream << slot;
- slotfile = user_dir + "/save/slot" + stream.str() + ".stsg";
-
- try {
- lisp::Parser parser;
- std::auto_ptr<lisp::Lisp> root (parser.parse(slotfile));
-
- const lisp::Lisp* savegame = root->get_lisp("supertux-savegame");
- if(!savegame)
- throw std::runtime_error("file is not a supertux-savegame.");
-
- savegame->get("title", title);
- } catch(std::exception& e) {
- return std::string(_("Slot")) + " " + stream.str() + " - " +
- std::string(_("Free"));
- }
-
- return std::string("Slot ") + stream.str() + " - " + title;
-}
-
-bool process_load_game_menu()
-{
- int slot = load_game_menu->check();
-
- if(slot == -1)
- return false;
-
- if(load_game_menu->get_item_by_id(slot).kind != MN_ACTION)
- return false;
-
- std::stringstream stream;
- stream << slot;
- std::string slotfile = user_dir + "/save/slot" + stream.str() + ".stsg";
-
- fadeout(256);
- DrawingContext context;
- context.draw_text(white_text, "Loading...",
- Vector(SCREEN_WIDTH/2, SCREEN_HEIGHT/2),
- CENTER_ALLIGN, LAYER_FOREGROUND1);
- context.do_drawing();
-
- WorldMapNS::WorldMap worldmap;
-
- worldmap.set_map_filename("/levels/world1/worldmap.stwm");
- // Load the game or at least set the savegame_file variable
- worldmap.loadgame(slotfile);
-
- worldmap.display();
-
- Menu::set_current(main_menu);
-
- return true;