#include "high_scores.h"
#include "gui/menu.h"
#include "sector.h"
-#include "player.h"
#include "level.h"
#include "scene.h"
-#include "collision.h"
#include "tile.h"
-#include "particlesystem.h"
+#include "object/particlesystem.h"
+#include "object/background.h"
+#include "object/tilemap.h"
+#include "object/camera.h"
+#include "object/player.h"
#include "resources.h"
-#include "background.h"
-#include "tilemap.h"
#include "app/gettext.h"
#include "worldmap.h"
#include "intro.h"
#include "misc.h"
-#include "camera.h"
#include "statistics.h"
#include "timer.h"
#include "object/fireworks.h"
return false;
}
-GameSession::GameSession(const std::string& levelname_, int mode,
+GameSession::GameSession(const std::string& levelfile_, int mode,
bool flip_level_, Statistics* statistics)
: level(0), currentsector(0), st_gl_mode(mode),
- end_sequence(NO_ENDSEQUENCE), levelname(levelname_), flip_level(flip_level_),
- best_level_statistics(statistics)
+ end_sequence(NO_ENDSEQUENCE), levelfile(levelfile_),
+ flip_level(flip_level_), best_level_statistics(statistics)
{
current_ = this;
currentsector = 0;
level = new Level;
- level->load(levelname);
+ level->load(levelfile);
if(flip_level)
level->do_vertical_flip();
char str[60];
DrawingContext context;
- if(currentsector->background)
- currentsector->background->draw(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(gold_text, level->get_name(), Vector(screen->w/2, 160),
// CENTER_ALLIGN, LAYER_FOREGROUND1);
while (exit_status == ES_NONE) {
Uint32 ticks = SDL_GetTicks();
float elapsed_time = float(ticks - lastticks) / 1000.;
- global_time += elapsed_time;
+ if(!game_pause)
+ global_time += elapsed_time;
lastticks = ticks;
// 40fps is minimum
}
void
-GameSession::drawresultscreen(void)
+GameSession::drawresultscreen()
{
char str[80];
DrawingContext context;
- currentsector->background->draw(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->w/2, 200),
CENTER_ALLIGN, LAYER_FOREGROUND1);