/*! * @file power_up.h * @brief A class representing a PowerUp in the world. */ #ifndef _POWER_UP_H #define _POWER_UP_H #include "world_entity.h" #include "sound_buffer.h" #include "sound_source.h" class Material; typedef enum PowerUpRespawn { RESPAWN_NONE, RESPAWN_TIME, RESPAWN_size } PowerUpRespawn; class PowerUp : public WorldEntity { public: virtual void loadParams(const TiXmlElement* root); void collidesWith (WorldEntity* entity, const Vector& location); void loadPickupSound(const char* pickupSound); void loadRespawnSound(const char* pickupSound); virtual void draw () const; virtual void tick(float dt); void setRespawnType(const char* type); void setRespawnTime(const float respawn); int writeState(const byte* data, int length, int sender); int readState(byte* data, int maxLength ); protected: PowerUp(float r, float g, float b); virtual ~PowerUp (); Model* model; private: SoundSource soundSource; SoundBuffer* pickupBuffer; SoundBuffer* respawnBuffer; Material* sphereMaterial; PowerUpRespawn respawnType; float respawnTime; float respawnStart; static const char* respawnTypes[]; }; #endif /* _POWER_UP_H */