diff --git a/src/main.cpp b/src/main.cpp index 71fa5c3..d114e0f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -486,8 +486,8 @@ static Uint32 find_matching_tile(Uint32 corner_info) { static void recalculate_static_collision_grid(Map *world) { if (world->static_collision_grid) SDL_free(world->static_collision_grid); - world->static_collision_grid = (Uint8 *)SDL_calloc((world->size.x - 2) * (world->size.y - 2), sizeof(*world->static_collision_grid)); - + world->static_collision_grid = (Uint8 *)SDL_calloc((world->size.x - 1) * (world->size.y - 1), sizeof(*world->static_collision_grid)); + for (int i = 0; i < world->num_placeables; i++) { u32vec2 pos = world->placeables[i].pos; world->static_collision_grid[pos.y * (world->size.x - 2) + pos.x] = 1; @@ -496,8 +496,8 @@ static void recalculate_static_collision_grid(Map *world) { static void recalculate_water_collision_grid(Map *world) { if (world->water_collision_grid) SDL_free(world->water_collision_grid); - world->water_collision_grid = (Uint8 *)SDL_calloc((world->size.x - 2) * (world->size.y - 2), sizeof(*world->water_collision_grid)); - + world->water_collision_grid = (Uint8 *)SDL_calloc((world->size.x - 1) * (world->size.y - 1), sizeof(*world->water_collision_grid)); + for (Sint32 y = 0; y < world->size.y - 2; y++){ for (Sint32 x = 0; x < world->size.x - 2; x++) { Uint32 grid_corner_info =