X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fworld.h;h=3399e03c8679ea49b2ecce96e01a9c9b5e5d7282;hb=b51078457876ee6a819e45d2271e0aaad4872106;hp=95b4603305789b9b3150da9c166899a40a0b57e6;hpb=84160722392a024dda42bd86ca9bd85b68c49457;p=supertux.git diff --git a/src/world.h b/src/world.h index 95b460330..3399e03c8 100644 --- a/src/world.h +++ b/src/world.h @@ -37,26 +37,29 @@ class Level; bouncy distros, etc) that are needed to run a game. */ class World { - public: +private: + typedef std::list BadGuys; + BadGuys bad_guys; + BadGuys bad_guys_to_add; Level* level; - Player tux; - + + int distro_counter; + bool counting_distros; + int currentmusic; + + static World* current_; +public: std::vector bouncy_distros; std::vector broken_bricks; std::vector bouncy_bricks; std::vector floating_scores; - std::vector bad_guys; std::vector upgrades; std::vector bullets; std::vector particle_systems; - int distro_counter; - bool counting_distros; - - static World* current_; - public: +public: static World* current() { return current_; } static void set_current(World* w) { current_ = w; } @@ -73,6 +76,10 @@ class World void draw(); void action(double frame_ratio); + void play_music(int musictype); + int get_music_type(); + + /** Checks for all possible collisions. And calls the collision_handlers, which the collision_objects provide for this case (or not). */ @@ -86,9 +93,11 @@ class World void add_broken_brick(Tile* tile, float x, float y); void add_broken_brick_piece(Tile* tile, float x, float y, float xm, float ym); void add_bouncy_brick(float x, float y); - void add_bad_guy(float x, float y, BadGuyKind kind); - void add_upgrade(float x, float y, int dir, UpgradeKind kind); - void add_bullet(float x, float y, float xm, int dir); + + BadGuy* add_bad_guy(float x, float y, BadGuyKind kind, bool stay_on_platform = false); + + void add_upgrade(float x, float y, Direction dir, UpgradeKind kind); + void add_bullet(float x, float y, float xm, Direction dir); /** Try to grab the coin at the given coordinates */ void trygrabdistro(float x, float y, int bounciness); @@ -97,11 +106,15 @@ class World void trybreakbrick(float x, float y, bool small); /** Try to get the content out of a bonus box, thus emptying it */ - void tryemptybox(float x, float y, int col_side); + void tryemptybox(float x, float y, Direction col_side); /** Try to bumb a badguy that might we walking above Tux, thus shaking the tile which the badguy is walking on an killing him this way */ void trybumpbadguy(float x, float y); + + /** Apply bonuses active in the player status, used to reactivate + bonuses from former levels */ + void apply_bonuses(); }; /** FIMXE: Workaround for the leveleditor mainly */