Changeset 11071 for code/trunk/src/modules/pong
- Timestamp:
- Jan 17, 2016, 10:29:21 PM (9 years ago)
- Location:
- code/trunk
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
code/trunk
- Property svn:mergeinfo changed
-
code/trunk/src/modules/pong/Pong.cc
r9939 r11071 64 64 RegisterObject(Pong); 65 65 66 this->center_ = 0;67 this->ball_ = 0;68 this->bat_[0] = 0;69 this->bat_[1] = 0;66 this->center_ = nullptr; 67 this->ball_ = nullptr; 68 this->bat_[0] = nullptr; 69 this->bat_[1] = nullptr; 70 70 71 71 this->setHUDTemplate("PongHUD"); … … 103 103 void Pong::cleanup() 104 104 { 105 if (this->ball_ != NULL) // Destroy the ball, if present.105 if (this->ball_ != nullptr) // Destroy the ball, if present. 106 106 { 107 107 this->ball_->destroy(); 108 this->ball_ = 0;108 this->ball_ = nullptr; 109 109 } 110 110 … … 112 112 for (size_t i = 0; i < 2; ++i) 113 113 { 114 if (this->bat_[0] != NULL)114 if (this->bat_[0] != nullptr) 115 115 { 116 116 this->bat_[0]->destroy(); 117 this->bat_[0] = 0;117 this->bat_[0] = nullptr; 118 118 } 119 119 } … … 127 127 void Pong::start() 128 128 { 129 if (this->center_ != NULL) // There needs to be a PongCenterpoint, i.e. the area the game takes place.130 { 131 if (this->ball_ == NULL) // If there is no ball, create a new ball.129 if (this->center_ != nullptr) // There needs to be a PongCenterpoint, i.e. the area the game takes place. 130 { 131 if (this->ball_ == nullptr) // If there is no ball, create a new ball. 132 132 { 133 133 this->ball_ = new PongBall(this->center_->getContext()); … … 145 145 146 146 // If one of the bats is missing, create it. Apply the template for the bats as specified in the centerpoint. 147 for ( size_t i = 0; i < 2; ++i)147 for (WeakPtr<orxonox::PongBat>& bat : this->bat_) 148 148 { 149 if ( this->bat_[i] == NULL)149 if (bat == nullptr) 150 150 { 151 this->bat_[i]= new PongBat(this->center_->getContext());152 this->bat_[i]->addTemplate(this->center_->getBattemplate());151 bat = new PongBat(this->center_->getContext()); 152 bat->addTemplate(this->center_->getBattemplate()); 153 153 } 154 154 } … … 211 211 { 212 212 // first spawn human players to assign always the left bat to the player in singleplayer 213 for ( std::map<PlayerInfo*, Player>::iterator it = this->players_.begin(); it != this->players_.end(); ++it)214 if ( it->first->isHumanPlayer() && (it->first->isReadyToSpawn() || this->bForceSpawn_))215 this->spawnPlayer( it->first);213 for (const auto& mapEntry : this->players_) 214 if (mapEntry.first->isHumanPlayer() && (mapEntry.first->isReadyToSpawn() || this->bForceSpawn_)) 215 this->spawnPlayer(mapEntry.first); 216 216 // now spawn bots 217 for ( std::map<PlayerInfo*, Player>::iterator it = this->players_.begin(); it != this->players_.end(); ++it)218 if (! it->first->isHumanPlayer() && (it->first->isReadyToSpawn() || this->bForceSpawn_))219 this->spawnPlayer( it->first);217 for (const auto& mapEntry : this->players_) 218 if (!mapEntry.first->isHumanPlayer() && (mapEntry.first->isReadyToSpawn() || this->bForceSpawn_)) 219 this->spawnPlayer(mapEntry.first); 220 220 } 221 221 … … 231 231 232 232 // If the first (left) bat has no player. 233 if (this->bat_[0]->getPlayer() == NULL)233 if (this->bat_[0]->getPlayer() == nullptr) 234 234 { 235 235 player->startControl(this->bat_[0]); … … 237 237 } 238 238 // If the second (right) bat has no player. 239 else if (this->bat_[1]->getPlayer() == NULL)239 else if (this->bat_[1]->getPlayer() == nullptr) 240 240 { 241 241 player->startControl(this->bat_[1]); … … 247 247 248 248 // If the player is an AI, it receives a pointer to the ball. 249 if (player->getController() != NULL&& player->getController()->isA(Class(PongAI)))249 if (player->getController() != nullptr && player->getController()->isA(Class(PongAI))) 250 250 { 251 251 PongAI* ai = orxonox_cast<PongAI*>(player->getController()); … … 262 262 Deathmatch::playerScored(player, score); 263 263 264 if (this->center_ != NULL) // If there is a centerpoint.264 if (this->center_ != nullptr) // If there is a centerpoint. 265 265 { 266 266 // Fire an event for the player that has scored, to be able to react to it in the level, e.g. by displaying fireworks. … … 271 271 272 272 // Also announce, that the player has scored. 273 if (player != NULL)273 if (player != nullptr) 274 274 this->gtinfo_->sendAnnounceMessage(player->getName() + " scored"); 275 275 } 276 276 277 277 // If there is a ball present, reset its position, velocity and acceleration. 278 if (this->ball_ != NULL)278 if (this->ball_ != nullptr) 279 279 { 280 280 this->ball_->setPosition(Vector3::ZERO); … … 285 285 286 286 // If there are bats reset them to the middle position. 287 if (this->bat_[0] != NULL && this->bat_[1] != NULL)287 if (this->bat_[0] != nullptr && this->bat_[1] != nullptr) 288 288 { 289 289 this->bat_[0]->setPosition(-this->center_->getFieldDimension().x / 2, 0, 0); … … 292 292 293 293 // If a player gets enough points, he won the game -> end of game 294 PlayerInfo* winningPlayer = NULL;294 PlayerInfo* winningPlayer = nullptr; 295 295 if (this->getLeftPlayer() && this->getScore(this->getLeftPlayer()) >= scoreLimit_) 296 296 winningPlayer = this->getLeftPlayer(); … … 314 314 void Pong::startBall() 315 315 { 316 if (this->ball_ != NULL && this->center_ != NULL)316 if (this->ball_ != nullptr && this->center_ != nullptr) 317 317 this->ball_->setSpeed(this->center_->getBallSpeed()); 318 318 } … … 322 322 Get the left player. 323 323 @return 324 Returns a pointer to the player playing on the left. If there is no left player, NULLis returned.324 Returns a pointer to the player playing on the left. If there is no left player, nullptr is returned. 325 325 */ 326 326 PlayerInfo* Pong::getLeftPlayer() const 327 327 { 328 if (this->bat_ != NULL && this->bat_[0] != NULL)328 if (this->bat_ != nullptr && this->bat_[0] != nullptr) 329 329 return this->bat_[0]->getPlayer(); 330 330 else 331 return 0;331 return nullptr; 332 332 } 333 333 … … 336 336 Get the right player. 337 337 @return 338 Returns a pointer to the player playing on the right. If there is no right player, NULLis returned.338 Returns a pointer to the player playing on the right. If there is no right player, nullptr is returned. 339 339 */ 340 340 PlayerInfo* Pong::getRightPlayer() const 341 341 { 342 if (this->bat_ != NULL && this->bat_[1] != NULL)342 if (this->bat_ != nullptr && this->bat_[1] != nullptr) 343 343 return this->bat_[1]->getPlayer(); 344 344 else 345 return 0;345 return nullptr; 346 346 } 347 347 } -
code/trunk/src/modules/pong/Pong.h
r9667 r11071 68 68 virtual ~Pong(); //!< Destructor. Cleans up, if initialized. 69 69 70 virtual void start() ; //!< Starts the Pong minigame.71 virtual void end() ; ///!< Ends the Pong minigame.70 virtual void start() override; //!< Starts the Pong minigame. 71 virtual void end() override; ///!< Ends the Pong minigame. 72 72 73 virtual void spawnPlayer(PlayerInfo* player) ; //!< Spawns the input player.73 virtual void spawnPlayer(PlayerInfo* player) override; //!< Spawns the input player. 74 74 75 virtual void playerScored(PlayerInfo* player, int score = 1) ; //!< Is called when the player scored.75 virtual void playerScored(PlayerInfo* player, int score = 1) override; //!< Is called when the player scored. 76 76 77 77 /** … … 87 87 88 88 protected: 89 virtual void spawnPlayersIfRequested() ; //!< Spawns players, and fills the rest up with bots.89 virtual void spawnPlayersIfRequested() override; //!< Spawns players, and fills the rest up with bots. 90 90 91 91 void startBall(); //!< Starts the ball with some default speed. -
code/trunk/src/modules/pong/PongAI.cc
r11018 r11071 57 57 RegisterObject(PongAI); 58 58 59 this->ball_ = 0;59 this->ball_ = nullptr; 60 60 this->ballDirection_ = Vector2::ZERO; 61 61 this->ballEndPosition_ = 0; … … 77 77 PongAI::~PongAI() 78 78 { 79 for (std:: list<std::pair<Timer*, char> >::iterator it = this->reactionTimers_.begin(); it != this->reactionTimers_.end(); ++it)80 delete it->first;79 for (std::pair<Timer*, char>& pair : this->reactionTimers_) 80 delete pair.first; 81 81 } 82 82 … … 101 101 { 102 102 // If either the ball, or the controllable entity (i.e. the bat) don't exist (or aren't set). 103 if (this->ball_ == NULL || this->getControllableEntity() == NULL)103 if (this->ball_ == nullptr || this->getControllableEntity() == nullptr) 104 104 return; 105 105 … … 362 362 // Add a new Timer 363 363 Timer* timer = new Timer(delay, false, createExecutor(createFunctor(&PongAI::delayedMove, this))); 364 this->reactionTimers_. push_back(std::pair<Timer*, char>(timer, direction));364 this->reactionTimers_.emplace_back(timer, direction); 365 365 } 366 366 else -
code/trunk/src/modules/pong/PongAI.h
r9667 r11071 66 66 void setConfigValues(); 67 67 68 virtual void tick(float dt) ; //!< Implements the behavior of the PongAI (i.e. its intelligence).68 virtual void tick(float dt) override; //!< Implements the behavior of the PongAI (i.e. its intelligence). 69 69 70 70 /** … … 89 89 float strength_; //!< The strength of the AI. Ranging from 0 to 1. 90 90 91 std::list<std::pair<Timer*, char> 91 std::list<std::pair<Timer*, char>> reactionTimers_; //!< A list of reaction timers and the directions that take effect when their timer expires. 92 92 char movement_; //!< The planned movement. 93 93 char oldMove_; //!< The previous movement. -
code/trunk/src/modules/pong/PongBall.cc
r9945 r11071 61 61 this->speed_ = 0; 62 62 this->accelerationFactor_ = 1.0f; 63 this->bat_ = 0;63 this->bat_ = nullptr; 64 64 this->bDeleteBats_ = false; 65 65 this->batID_ = new unsigned int[2]; … … 82 82 else 83 83 { 84 this->defScoreSound_ = 0;85 this->defBatSound_ = 0;86 this->defBoundarySound_ = 0;84 this->defScoreSound_ = nullptr; 85 this->defBatSound_ = nullptr; 86 this->defBoundarySound_ = nullptr; 87 87 } 88 88 } … … 163 163 float distance = 0; 164 164 165 if (this->bat_ != NULL) // If there are bats.165 if (this->bat_ != nullptr) // If there are bats. 166 166 { 167 167 // If the right boundary has been crossed. 168 if (position.x > this->fieldWidth_ / 2 && this->bat_[1] != NULL)168 if (position.x > this->fieldWidth_ / 2 && this->bat_[1] != nullptr) 169 169 { 170 170 // Calculate the distance (in z-direction) between the ball and the center of the bat, weighted by half of the effective length of the bat (with additional 10%) … … 195 195 } 196 196 // If the left boundary has been crossed. 197 else if (position.x < -this->fieldWidth_ / 2 && this->bat_[0] != NULL)197 else if (position.x < -this->fieldWidth_ / 2 && this->bat_[0] != nullptr) 198 198 { 199 199 // Calculate the distance (in z-direction) between the ball and the center of the bat, weighted by half of the effective length of the bat (with additional 10%) … … 285 285 { 286 286 // Make space for the bats, if they don't exist, yet. 287 if (this->bat_ == NULL)287 if (this->bat_ == nullptr) 288 288 { 289 289 this->bat_ = new WeakPtr<PongBat>[2]; -
code/trunk/src/modules/pong/PongBall.h
r9939 r11071 63 63 virtual ~PongBall(); 64 64 65 virtual void tick(float dt) ;65 virtual void tick(float dt) override; 66 66 67 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) ;67 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; 68 68 69 69 /** -
code/trunk/src/modules/pong/PongBat.h
r9667 r11071 60 60 virtual ~PongBat() {} 61 61 62 virtual void tick(float dt) ;62 virtual void tick(float dt) override; 63 63 64 virtual void moveFrontBack(const Vector2& value) ; //!< Overloaded the function to steer the bat up and down.65 virtual void moveRightLeft(const Vector2& value) ; //!< Overloaded the function to steer the bat up and down.64 virtual void moveFrontBack(const Vector2& value) override; //!< Overloaded the function to steer the bat up and down. 65 virtual void moveRightLeft(const Vector2& value) override; //!< Overloaded the function to steer the bat up and down. 66 66 67 virtual void changedPlayer() ; //!< Is called when the player changed.67 virtual void changedPlayer() override; //!< Is called when the player changed. 68 68 69 69 /** -
code/trunk/src/modules/pong/PongCenterpoint.cc
r10624 r11071 84 84 void PongCenterpoint::checkGametype() 85 85 { 86 if (this->getGametype() != NULL&& this->getGametype()->isA(Class(Pong)))86 if (this->getGametype() != nullptr && this->getGametype()->isA(Class(Pong))) 87 87 { 88 88 Pong* pongGametype = orxonox_cast<Pong*>(this->getGametype()); -
code/trunk/src/modules/pong/PongCenterpoint.h
r10624 r11071 124 124 virtual ~PongCenterpoint() {} 125 125 126 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) ; //!< Method to create a PongCenterpoint through XML.126 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; //!< Method to create a PongCenterpoint through XML. 127 127 128 128 /** -
code/trunk/src/modules/pong/PongScore.cc
r10624 r11071 55 55 RegisterObject(PongScore); 56 56 57 this->owner_ = 0;57 this->owner_ = nullptr; 58 58 59 59 this->bShowName_ = false; … … 97 97 98 98 // If the owner is set. The owner being a Pong game. 99 if (this->owner_ != NULL)99 if (this->owner_ != nullptr) 100 100 { 101 101 if (!this->owner_->hasEnded()) … … 113 113 114 114 // Save the name and score of each player as a string. 115 if (player1_ != NULL)115 if (player1_ != nullptr) 116 116 { 117 117 name1 = player1_->getName(); 118 118 score1 = multi_cast<std::string>(this->owner_->getScore(player1_)); 119 119 } 120 if (player2_ != NULL)120 if (player2_ != nullptr) 121 121 { 122 122 name2 = player2_->getName(); … … 128 128 if (this->bShowLeftPlayer_) 129 129 { 130 if (this->bShowName_ && this->bShowScore_ && player1_ != NULL)130 if (this->bShowName_ && this->bShowScore_ && player1_ != nullptr) 131 131 output1 = name1 + " - " + score1; 132 132 else if (this->bShowScore_) … … 139 139 if (this->bShowRightPlayer_) 140 140 { 141 if (this->bShowName_ && this->bShowScore_ && player2_ != NULL)141 if (this->bShowName_ && this->bShowScore_ && player2_ != nullptr) 142 142 output2 = score2 + " - " + name2; 143 143 else if (this->bShowScore_) … … 163 163 @brief 164 164 Is called when the owner changes. 165 Sets the owner to NULL, if it is not a pointer to a Pong game.165 Sets the owner to nullptr, if it is not a pointer to a Pong game. 166 166 */ 167 167 void PongScore::changedOwner() … … 169 169 SUPER(PongScore, changedOwner); 170 170 171 if (this->getOwner() != NULL&& this->getOwner()->getGametype())171 if (this->getOwner() != nullptr && this->getOwner()->getGametype()) 172 172 this->owner_ = orxonox_cast<Pong*>(this->getOwner()->getGametype()); 173 173 else 174 this->owner_ = 0;174 this->owner_ = nullptr; 175 175 } 176 176 } -
code/trunk/src/modules/pong/PongScore.h
r9939 r11071 60 60 virtual ~PongScore(); 61 61 62 virtual void tick(float dt) ; //!< Creates and sets the caption to be displayed by the PongScore.63 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) ;64 virtual void changedOwner() ; //!< Is called when the owner changes.62 virtual void tick(float dt) override; //!< Creates and sets the caption to be displayed by the PongScore. 63 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override; 64 virtual void changedOwner() override; //!< Is called when the owner changes. 65 65 66 66 /**
Note: See TracChangeset
for help on using the changeset viewer.