feat(map): door_col a la geometria + passadís de sortida a Map

This commit is contained in:
JailDesigner committed 2026-04-26 10:05:32 +02:00
1 parent 63bb41425a
commit b54f3fc622
3 files changed
+50

No files matched your search

+19
View File
@@ -75,9 +75,24 @@ namespace Map {
playfield_w = board_w + (2 * outer_corridor);
playfield_h = board_h + (2 * outer_corridor);
// Porta i passadís de sortida. `door_col` és la columna central
// transitable; el passadís són exactament els 16 px d'eixa columna
// dins del strip del mur trasser. Si manca la clau, `door_col=0`
// i el passadís queda a x=0 amb mida zero — pràcticament inactiu
// (el bloqueig del clamp continua sent el rectangle del playfield).
door_col = g.contains("door_col") ? g["door_col"].get_value<int>() : 0;
door_corridor_x = (door_col * tile_size) + tilemap_origin_x;
door_corridor_y = hud_h;
door_corridor_w = tile_size;
door_corridor_h = back_wall_h;
// Cada càrrega de nivell deixa la porta tancada; l'entitat Door
// canviarà el flag a true quan transiti a OPEN.
door_open = false;
std::cout << "Map: geometria " << grid_cols << "x" << grid_rows
<< " sarcs " << sarc_w << "x" << sarc_h
<< " pitch " << pitch_x << "x" << pitch_y
<< " door_col " << door_col
<< " des de " << yaml_path << '\n';
}
@@ -136,6 +151,10 @@ namespace Map {
.tile_size = tile_size,
.tilemap_origin_x = tilemap_origin_x,
.tilemap_origin_y = tilemap_origin_y,
.door_corridor_x = door_corridor_x,
.door_corridor_y = door_corridor_y,
.door_corridor_w = door_corridor_w,
.door_corridor_h = door_corridor_h,
.collides = &collides,
.inside_playfield = &insidePlayfield,
};