parent
dc20a6b992
commit
34655d5c0a
|
@ -117,14 +117,19 @@ void update_water_runner_system(Scene_t* scene)
|
|||
bool to_go[4] = {false, false, false, false};
|
||||
Tile_t* curr_tile = tilemap.tiles + curr_idx;
|
||||
|
||||
if (curr_height > curr_low && curr_tile->water_level < tilemap.max_water_level)
|
||||
unsigned int next = curr_idx + p_crunner->bfs_tilemap.width;
|
||||
Tile_t* next_tile = tilemap.tiles + next;
|
||||
|
||||
if (
|
||||
curr_height > curr_low
|
||||
&& curr_tile->water_level < tilemap.max_water_level
|
||||
&& next_tile->water_level < tilemap.max_water_level
|
||||
)
|
||||
{
|
||||
lowest_tile = curr_idx;
|
||||
}
|
||||
|
||||
|
||||
unsigned int next = curr_idx + p_crunner->bfs_tilemap.width;
|
||||
Tile_t* next_tile = tilemap.tiles + next;
|
||||
if (next < p_crunner->bfs_tilemap.len)
|
||||
{
|
||||
to_go[0] = next_tile->solid != SOLID;
|
||||
|
@ -136,9 +141,9 @@ void update_water_runner_system(Scene_t* scene)
|
|||
|| curr_tile->water_level == tilemap.max_water_level
|
||||
)
|
||||
{
|
||||
next = curr_idx - 1;
|
||||
if (next % p_crunner->bfs_tilemap.width != 0)
|
||||
if (curr_idx % p_crunner->bfs_tilemap.width != 0)
|
||||
{
|
||||
next = curr_idx - 1;
|
||||
next_tile = tilemap.tiles + next;
|
||||
to_go[1] = next_tile->solid != SOLID;
|
||||
}
|
||||
|
|
19
water_test.c
19
water_test.c
|
@ -109,6 +109,25 @@ static void level_scene_render_func(Scene_t* scene)
|
|||
next_idx = p_runner->bfs_tilemap.tilemap[curr_idx].to;
|
||||
}
|
||||
}
|
||||
else if (p_runner->state == SCANLINE_FILL)
|
||||
{
|
||||
unsigned int tile_y = ((p_runner->current_tile) / tilemap.width);
|
||||
for (size_t i = 0; i < tilemap.width; ++i)
|
||||
{
|
||||
unsigned int tile_idx = i + tile_y * tilemap.width;
|
||||
if (
|
||||
p_runner->bfs_tilemap.tilemap[tile_idx].reachable
|
||||
&& tilemap.tiles[tile_idx].water_level < tilemap.max_water_level
|
||||
)
|
||||
{
|
||||
DrawRectangle(
|
||||
i * tilemap.tile_size, tile_y * tilemap.tile_size,
|
||||
tilemap.tile_size, tilemap.tile_size, ColorAlpha(GREEN, 0.4)
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
char buffer[64] = {0};
|
||||
|
|
Loading…
Reference in New Issue