00001 #ifndef __REVERSEPOWERUP_H__ 00002 #define __REVERSEPOWERUP_H__ 00003 00004 #include "Powerup.h" 00005 00006 /// Reverses the direction in which the target player's tetris cylinder rotates. 00007 class ReversePowerup : public Powerup 00008 { 00009 public: 00010 virtual PowerupId GetPowerupId() { return powerupId; } 00011 virtual GuiImageData* GetImageData() { return imageData; } 00012 virtual std::string* GetHelpText() { return helpText; } 00013 00014 protected: 00015 ReversePowerup() 00016 { 00017 STATIC 00018 ( 00019 vector<Powerup *> &powerupVector = Powerup::GetVector(); 00020 powerupId = powerupVector.size(); 00021 powerupVector.push_back(this); 00022 ) 00023 } 00024 virtual ~ReversePowerup() { } 00025 00026 /// Returns a new powerup instance. 00027 virtual Powerup* GetInstance() { return new ReversePowerup(); } 00028 00029 /// Returns a static powerup instance. 00030 //static Powerup* GetStaticInstance() { return instance; } 00031 00032 virtual void StartEffect(u8 player); 00033 virtual void StopEffect(u8 player); 00034 00035 private: 00036 static PowerupId powerupId; 00037 static Powerup *instance; 00038 static GuiImageData *imageData; 00039 static std::string helpText[2]; 00040 }; 00041 00042 #endif // __REVERSEPOWERUP_H__