Restarting the game

We already determine the size of the arena and the number of zombies by the value of the wave variable. We must also reset the ammo, gun, wave, and score to zero at the start of each new game. Find the following code in the event handling section of the game loop and add the highlighted code:

// Start a new game while in GAME_OVER state 
else if (event.key.code == Keyboard::Return && 
   state == State::GAME_OVER) 
{ 
   state = State::LEVELING_UP; 
   wave = 0;
   score = 0;

   // Prepare the gun and ammo for next game
   currentBullet = 0;
   bulletsSpare = 24;
   bulletsInClip = 6;
   clipSize = 6;
   fireRate = 1;

   // Reset the player's stats
   player.resetPlayerStats(); 
} 

Now we can play the game, the player can get ever more powerful and the zombies will ...

Get Beginning C++ Game Programming now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.