// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#include <config.h>
+
#include <iostream>
#include <fstream>
#include <vector>
#include "resources.h"
#include "app/gettext.h"
#include "misc.h"
+#include "scene.h"
-#define map_message_TIME 2800
+#define map_message_TIME 2.8
Menu* worldmap_menu = 0;
{
if(special_tile && !special_tile->map_message.empty() &&
!special_tile->passive_message)
- worldmap->passive_message_timer.stop();
+ worldmap->passive_message_timer.start(0);
stop();
}
else
enter_level = false;
name = "<no title>";
- music = "SALCON.MOD";
+ music = "salcon.mod";
global_frame_counter = 0;
- frame_timer.init(true);
total_stats.reset();
}
WorldMap::get_input()
{
enter_level = false;
-
+ SDLKey key;
+
SDL_Event event;
while (SDL_PollEvent(&event))
{
break;
case SDL_KEYDOWN:
- switch(event.key.keysym.sym)
- {
- case SDLK_ESCAPE:
- on_escape_press();
- break;
- case SDLK_LCTRL:
- case SDLK_RETURN:
- enter_level = true;
- break;
-
- case SDLK_LEFT:
- tux->set_direction(D_WEST);
- break;
- case SDLK_RIGHT:
- tux->set_direction(D_EAST);
- break;
- case SDLK_UP:
- tux->set_direction(D_NORTH);
- break;
- case SDLK_DOWN:
- tux->set_direction(D_SOUTH);
- break;
+ key = event.key.keysym.sym;
- default:
- break;
- }
+ if(key == SDLK_ESCAPE)
+ on_escape_press();
+ else if(key == SDLK_RETURN || key == keymap.power)
+ enter_level = true;
+ else if(key == SDLK_LEFT || key == keymap.power)
+ tux->set_direction(D_WEST);
+ else if(key == SDLK_RIGHT || key == keymap.right)
+ tux->set_direction(D_EAST);
+ else if(key == SDLK_UP || key == keymap.up ||
+ key == keymap.jump)
+ // there might be ppl that use jump as up key
+ tux->set_direction(D_NORTH);
+ else if(key == SDLK_DOWN || key == keymap.down)
+ tux->set_direction(D_SOUTH);
break;
case SDL_JOYHATMOTION:
void
WorldMap::update(float delta)
{
- if(!frame_timer.check())
- {
- frame_timer.start(25);
+ if(!frame_timer.check()) {
global_frame_counter++;
- }
+ }
if (enter_level && !tux->is_moving())
{
frame_rate.set_frame_limit(false);
frame_rate.start();
+ frame_timer.start(.25, true);
DrawingContext context;
while(!quit)
writer->write_string("map", map_filename);
writer->write_int("lives", player_status.lives);
writer->write_int("distros", player_status.lives);
+ writer->write_int("max-score-multiplier", player_status.max_score_multiplier);
writer->start_list("tux");
reader.read_int("lives", player_status.lives);
reader.read_int("distros", player_status.distros);
+ reader.read_int("max-score-multiplier", player_status.max_score_multiplier);
if (player_status.lives < 0)
player_status.lives = START_LIVES;