class World
{
private:
- std::vector<BadGuy*> bad_guys;
+ typedef std::list<BadGuy*> BadGuys;
+ BadGuys bad_guys;
+ BadGuys bad_guys_to_add;
Level* level;
Player tux;
std::vector<Upgrade> upgrades;
std::vector<Bullet> bullets;
- std::vector<ParticleSystem*> particle_systems;
+ typedef std::vector<ParticleSystem*> ParticleSystems;
+ ParticleSystems particle_systems;
public:
static World* current() { return current_; }
void add_bouncy_brick(float x, float y);
BadGuy* add_bad_guy(float x, float y, BadGuyKind kind, bool stay_on_platform = false);
- void remove_bad_guy(BadGuy* badguy);
void add_upgrade(float x, float y, Direction dir, UpgradeKind kind);
void add_bullet(float x, float y, float xm, Direction dir);
/** 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 */