diff options
author | Charlie Stanton <charlie@shtanton.xyz> | 2025-04-06 09:15:32 +0100 |
---|---|---|
committer | Charlie Stanton <charlie@shtanton.xyz> | 2025-04-06 09:15:32 +0100 |
commit | 8c4d5838e67d62775983fb46a64813d8b6bceb28 (patch) | |
tree | dbd84695d747253de214f57f882c8e9191158bbe /src/tick.c | |
parent | 1c7d286f89592f5ca89557565226869e7ec04bcb (diff) | |
download | ldjam57-8c4d5838e67d62775983fb46a64813d8b6bceb28.tar |
Minor bug fixes
Diffstat (limited to 'src/tick.c')
-rw-r--r-- | src/tick.c | 19 |
1 files changed, 14 insertions, 5 deletions
@@ -302,30 +302,39 @@ static void tick(Game *game, Arena a) { } break; case EMPTY: - // TODO: same as multiple reds + blues = 0; if ( x > 0 && lastState->grid[x - 1 + y * GRIDWIDTH] == BLUE_RIGHT ) { - game->state.grid[x + y * GRIDWIDTH] = BLUE_RIGHT; + blues++; + blue = BLUE_RIGHT; } if ( x < GRIDWIDTH - 1 && lastState->grid[x + 1 + y * GRIDWIDTH] == BLUE_LEFT ) { - game->state.grid[x + y * GRIDWIDTH] = BLUE_LEFT; + blues++; + blue = BLUE_LEFT; } if ( y > 0 && lastState->grid[x + (y - 1) * GRIDWIDTH] == BLUE_DOWN ) { - game->state.grid[x + y * GRIDWIDTH] = BLUE_DOWN; + blues++; + blue = BLUE_DOWN; } if ( y < GRIDHEIGHT - 1 && lastState->grid[x + (y + 1) * GRIDWIDTH] == BLUE_UP ) { - game->state.grid[x + y * GRIDWIDTH] = BLUE_UP; + blues++; + blue = BLUE_UP; + } + if (blues == 1) { + game->state.grid[x + y * GRIDWIDTH] = blue; + } else if (blues >= 2) { + game->state.grid[x + y * GRIDWIDTH] = BLUE; } break; } |