• Main Page
  • Classes
  • Files
  • File List
  • File Members

code/source/powerups/PowerupReverse.cpp

Go to the documentation of this file.
00001 /*
00002  * TetriCycle
00003  * Copyright (C) 2009, 2010 Cale Scholl
00004  *
00005  * This file is part of TetriCycle.
00006  *
00007  * TetriCycle is free software: you can redistribute it and/or modify
00008  * it under the terms of the GNU Lesser General Public License as published
00009  * by the Free Software Foundation, either version 3 of the License, or
00010  * (at your option) any later version.
00011  *
00012  * TetriCycle is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015  * GNU Lesser General Public License for more details.
00016  *
00017  * You should have received a copy of the GNU Lesser General Public License
00018  * along with TetriCycle.  If not, see <http://www.gnu.org/licenses/>.
00019  */
00020 
00021 /** @file PowerupReverse.cpp
00022  * @author Cale Scholl / calvinss4
00023  */
00024 
00025 #include "PowerupReverse.h"
00026 
00027 #include "Player.h"        // for Player
00028 #include "libwiigui/gui.h" // for GuiImageData
00029 
00030 extern Player *g_players; ///< the player instances
00031 
00032 PowerupId PowerupReverse::powerupId;
00033 Powerup *PowerupReverse::instance = new PowerupReverse();
00034 
00035 GuiImageData *PowerupReverse::imageData = 
00036   new GuiImageData(powerup_reverse_png);
00037 
00038 string PowerupReverse::helpText[2] = 
00039   {"Reverse", "Reverses the direction in which the "
00040               "target player's tetris cylinder rotates."};
00041 
00042 void PowerupReverse::StartEffect(u8 player)
00043 {
00044   g_players[player].gameData.powerupData.isReverse = true;
00045 }
00046 
00047 /// Allow more than one PowerupReverse to be in effect at the same time.
00048 /**
00049  * This function assumes this powerup has already been removed from the powerup 
00050  * effect queue. If another PowerupReverse is in the queue then allow that one 
00051  * to stop the effect.
00052  */
00053 void PowerupReverse::StopEffect(u8 player)
00054 {
00055   for (int i = 0; i < MAX_POWERUP_EFFECTS; ++i)
00056   {
00057     Powerup *powerup = g_players[player].gameData.powerupEffects[i];
00058     if (powerup && powerup->GetPowerupId() == powerupId)
00059     {
00060       return;
00061     }
00062   }
00063   
00064   g_players[player].gameData.powerupData.isReverse = false;
00065 }

Generated on Wed Oct 20 2010 17:06:58 for TetriCycle by  doxygen 1.7.1