#include "display_manager.h"
class Level;
+class Background;
/** The World class holds a level and all the game objects (badguys,
bouncy distros, etc) that are needed to run a game. */
BadGuys bad_guys_to_add;
typedef std::list<Trampoline*> Trampolines;
Trampolines trampolines;
+ typedef std::list<FlyingPlatform*> FlyingPlatforms;
+ FlyingPlatforms flying_platforms;
Level* level;
Player* tux;
- Timer scrolling_timer;
-
int distro_counter;
bool counting_distros;
int currentmusic;
static World* current_;
public:
+ Background* background;
BadGuys bad_guys;
std::vector<Upgrade*> upgrades;
std::vector<Bullet*> bullets;
std::vector<GameObject*> gameobjects;
+ Camera* camera;
DisplayManager displaymanager;
public:
static World* current() { return current_; }
static void set_current(World* w) { current_ = w; }
- World(const std::string& filename);
- World(const std::string& subset, int level_nr);
- //World() {};
+ World(const std::string& filename, int level_nr = -1);
~World();
Level* get_level() { return level; }
void set_defaults();
void draw();
- void action(double frame_ratio);
- void scrolling(double frame_ratio); // camera scrolling
+ void action(float elapsed_time);
void play_music(int musictype);
int get_music_type();
BadGuy* add_bad_guy(float x, float y, BadGuyKind kind);
void add_upgrade(const Vector& pos, Direction dir, UpgradeKind kind);
- void add_bullet(const Vector& pos, float xm, Direction dir);
+ bool add_bullet(const Vector& pos, float xm, Direction dir);
/** Try to grab the coin at the given coordinates */
void trygrabdistro(float x, float y, int bounciness);