make static and water collision grid the right size
buildbot/windows Build done.
buildbot/linux Build done.

Fixes: #19
This commit is contained in:
Sven Balzer
2026-08-08 11:41:08 +02:00
parent 1227b2ac60
commit dec5577857
+4 -4
View File
@@ -486,8 +486,8 @@ static Uint32 find_matching_tile(Uint32 corner_info) {
static void recalculate_static_collision_grid(Map *world) { static void recalculate_static_collision_grid(Map *world) {
if (world->static_collision_grid) SDL_free(world->static_collision_grid); 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++) { for (int i = 0; i < world->num_placeables; i++) {
u32vec2 pos = world->placeables[i].pos; u32vec2 pos = world->placeables[i].pos;
world->static_collision_grid[pos.y * (world->size.x - 2) + pos.x] = 1; 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) { static void recalculate_water_collision_grid(Map *world) {
if (world->water_collision_grid) SDL_free(world->water_collision_grid); 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 y = 0; y < world->size.y - 2; y++){
for (Sint32 x = 0; x < world->size.x - 2; x++) { for (Sint32 x = 0; x < world->size.x - 2; x++) {
Uint32 grid_corner_info = Uint32 grid_corner_info =