diff options
Diffstat (limited to 'gamestate.cpp')
-rw-r--r-- | gamestate.cpp | 36 |
1 files changed, 17 insertions, 19 deletions
diff --git a/gamestate.cpp b/gamestate.cpp index 39d589d..c312bfe 100644 --- a/gamestate.cpp +++ b/gamestate.cpp | |||
@@ -39,15 +39,7 @@ void GameState::input(SDLKey key) | |||
39 | 39 | ||
40 | break; | 40 | break; |
41 | case SDLK_ESCAPE: | 41 | case SDLK_ESCAPE: |
42 | newGame = false; | 42 | changeState(new TitleState()); |
43 | |||
44 | info.playerx = 1; | ||
45 | info.playery = 1; | ||
46 | info.level = Level(); | ||
47 | info.doneMaking = false; | ||
48 | board = Board(&info); | ||
49 | |||
50 | SDL_WM_SetCaption("Maze Of Life - Level 1", NULL); | ||
51 | 43 | ||
52 | break; | 44 | break; |
53 | } | 45 | } |
@@ -241,14 +233,14 @@ void GameState::Board::tick() | |||
241 | 233 | ||
242 | int neighbors = 0; | 234 | int neighbors = 0; |
243 | 235 | ||
244 | if ((x>0)&&(y>0)) incrementIfNeighbor(x-1,y-1,temp,&neighbors); | 236 | incrementIfNeighbor(x-1,y-1,temp,&neighbors); |
245 | if ((x>0)) incrementIfNeighbor(x-1,y,temp,&neighbors); | 237 | incrementIfNeighbor(x-1,y,temp,&neighbors); |
246 | if ((x>0)&&(y<HEIGHT-1)) incrementIfNeighbor(x-1,y+1,temp,&neighbors); | 238 | incrementIfNeighbor(x-1,y+1,temp,&neighbors); |
247 | if ((y>0)) incrementIfNeighbor(x,y-1,temp,&neighbors); | 239 | incrementIfNeighbor(x,y-1,temp,&neighbors); |
248 | if ((y<HEIGHT-1)) incrementIfNeighbor(x,y+1,temp,&neighbors); | 240 | incrementIfNeighbor(x,y+1,temp,&neighbors); |
249 | if ((x<WIDTH-1)&&(y>0)) incrementIfNeighbor(x+1,y-1,temp,&neighbors); | 241 | incrementIfNeighbor(x+1,y-1,temp,&neighbors); |
250 | if ((x<WIDTH-1)) incrementIfNeighbor(x+1,y,temp,&neighbors); | 242 | incrementIfNeighbor(x+1,y,temp,&neighbors); |
251 | if ((x<WIDTH-1)&&(y<HEIGHT-1)) incrementIfNeighbor(x+1,y+1,temp,&neighbors); | 243 | incrementIfNeighbor(x+1,y+1,temp,&neighbors); |
252 | 244 | ||
253 | if (temp[x][y]) | 245 | if (temp[x][y]) |
254 | { | 246 | { |
@@ -264,10 +256,16 @@ void GameState::Board::tick() | |||
264 | 256 | ||
265 | void GameState::Board::incrementIfNeighbor(int x, int y, bool temp[WIDTH][HEIGHT], int* tick) | 257 | void GameState::Board::incrementIfNeighbor(int x, int y, bool temp[WIDTH][HEIGHT], int* tick) |
266 | { | 258 | { |
259 | int nx = x; | ||
260 | int ny = y; | ||
261 | |||
267 | wrap(&x, &y); | 262 | wrap(&x, &y); |
268 | 263 | ||
269 | if ((temp[x][y])||((info->playerx==x)&&(info->playery==y))||((x==15)&&(y==15))) | 264 | if (!((nx!=x)&&(ny!=y))) |
270 | { | 265 | { |
271 | ++*tick; | 266 | if ((temp[x][y])||((info->playerx==x)&&(info->playery==y))||((x==15)&&(y==15))) |
267 | { | ||
268 | ++*tick; | ||
269 | } | ||
272 | } | 270 | } |
273 | } | 271 | } |