std::cout << "Sarting level: " << index << std::endl;
GameSession session(current_contrib_subset, index, ST_GL_PLAY);
session.run();
+ player_status.reset();
Menu::set_current(main_menu);
}
}
void draw_demo(GameSession* session, double frame_ratio)
{
- World::set_current(session->get_world());
- //World* world = session->get_world();
+ World* world = session->get_world();
+ World::set_current(world);
Level* plevel = session->get_level();
- Player* tux = session->get_world()->get_tux();
+ Player* tux = world->get_tux();
- session->get_world()->play_music(LEVEL_MUSIC);
+ world->play_music(LEVEL_MUSIC);
/* FIXME:
// update particle systems
*/
// Draw interactive tiles:
- for (int y = 0; y < 15; ++y)
+/* for (int y = 0; y < 15; ++y)
{
for (int x = 0; x < 21; ++x)
{
Tile::draw(32*x - fmodf(scroll_x, 32), y * 32,
plevel->ia_tiles[(int)y][(int)x + (int)(scroll_x / 32)]);
}
- }
+ }*/
global_frame_counter++;
tux->key_event((SDLKey) keymap.right,DOWN);
random_timer.start(rand() % 3000 + 3000);
walking = !walking;
}
-
+
// Wrap around at the end of the level back to the beginnig
if(plevel->width * 32 - 320 < tux->base.x)
{
scroll_x = tux->base.x - 320;
}
+ tux->can_jump = true;
float last_tux_x_pos = tux->base.x;
- tux->action(frame_ratio);
+ world->action(frame_ratio);
+
+ // disabled for now, since with the new jump code we easily get deadlocks
// Jump if tux stays in the same position for one loop, ie. if he is
// stuck behind a wall
if (last_tux_x_pos == tux->base.x)
- walking = false;
+ {
+ walking = false;
+ }
- tux->draw();
+ world->draw();
}
/* --- TITLE SCREEN --- */
char str[1024];
sprintf(str,"Are you sure you want to delete slot %d?", slot);
- Menu::set_current(0);
draw_background();
if(confirm_dialog(str))
remove(str);
}
+ update_load_save_game_menu(load_game_menu);
update_time = st_get_ticks();
- Menu::set_current(load_game_menu);
}
else if (process_load_game_menu())
{