summaryrefslogtreecommitdiff
path: root/src/game_state.cpp
diff options
context:
space:
mode:
authorJustin Worthe <justin.worthe@gmail.com>2015-06-03 22:11:59 +0200
committerJustin Worthe <justin.worthe@gmail.com>2015-06-03 22:11:59 +0200
commita197a92893cff416b63da359db8c8059c7f333bf (patch)
tree7ff3c908a73231edda1f2ba7308a98da599f9169 /src/game_state.cpp
parente42727977b3dab7aecff0ce8afa5b16abcd8b26b (diff)
Added remaining objects for game state
Diffstat (limited to 'src/game_state.cpp')
-rw-r--r--src/game_state.cpp35
1 files changed, 28 insertions, 7 deletions
diff --git a/src/game_state.cpp b/src/game_state.cpp
index 48a9e42..340bcd3 100644
--- a/src/game_state.cpp
+++ b/src/game_state.cpp
@@ -1,27 +1,48 @@
#include "game_state.h"
#include <iostream>
+#include <fstream>
+#include <limits>
const int OPENING_LINES = 6;
const int GAME_AREA_LINES = 25;
-GameState::GameState(std::istream& file)
+GameState::GameState(std::string mapFilename)
{
+ std::ifstream mapFile(mapFilename);
for (int i=0; i<OPENING_LINES; ++i)
{
- file.ignore(numeric_limits<streamsize>::max(), '\n');
+ mapFile.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
}
- int x = -1;
int y = 0;
- char nextChar = ' ';
- while (char nextChar = file.get())
+
+ for (int x=-1; y <= GAME_AREA_LINES; ++x)
{
- ++x;
+ char nextChar = mapFile.get();
+ if (nextChar == EOF)
+ {
+ break;
+ }
+
switch (nextChar)
{
- case Alien.MAP_CHAR:
+ case Alien::MAP_CHAR:
aliens.push_back(Alien(x,y));
break;
+ case EnemyBullet::ALIEN_MAP_CHAR:
+ case EnemyBullet::ENEMY_MISSILE_MAP_CHAR:
+ bullets.push_back(EnemyBullet(x,y));
+ break;
+ case PlayerMissile::MAP_CHAR:
+ missiles.push_back(PlayerMissile(x,y));
+ break;
+ case Shield::MAP_CHAR:
+ shields.push_back(Shield(x,y));
+ break;
+ case Spaceship::ENEMY_MAP_CHAR:
+ case Spaceship::PLAYER_MAP_CHAR:
+ spaceships.push_back(Spaceship(x,y));
+ break;
case '\n':
++y;
x = -1;