From 0d4b7f518c14197c659c55d8a34955d0f9b59d7e Mon Sep 17 00:00:00 2001 From: Sergio Valor Date: Sat, 11 Apr 2026 07:55:26 +0200 Subject: [PATCH] fix: minimap sempre tirava a gastar standard.gif --- data/room/01.yaml | 20 ++++++------ data/room/02.yaml | 52 ++++++++++++++++---------------- data/room/03.yaml | 50 +++++++++++++++--------------- data/tilesets/neighborhood.gif | Bin 7934 -> 8098 bytes source/game/editor/mini_map.cpp | 45 ++++++++++++++++----------- source/game/editor/mini_map.hpp | 15 ++++++--- 6 files changed, 98 insertions(+), 84 deletions(-) diff --git a/data/room/01.yaml b/data/room/01.yaml index 29ef93a..0883e95 100644 --- a/data/room/01.yaml +++ b/data/room/01.yaml @@ -18,20 +18,20 @@ tilemap: - [169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169] - [169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169] - [169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169] - - [169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 33, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] - [169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] - - [33, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 33, 169, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [33, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 169, 169, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] - [33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 169, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] - [33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 169, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] - [33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] - [33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] - [33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] - - [7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 534, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] - - [26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 186, 534, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] - - [26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 186, 186, 534, -1, -1, -1, -1, -1, -1, -1, -1, -1] - - [26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 186, 186, 186, 186, 186, 534, -1, -1, -1, -1, -1, -1] - - [26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 186, 186, 186, 186, 186, 186, 534, -1, -1, -1, -1, -1] + - [169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 513, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 536, 513, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 536, 513, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 536, 181, 181, 513, -1, -1, -1, -1, -1, -1] + - [26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 536, 513, -1, -1, -1, -1, -1] - [51, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] # Mapa de colisiones (0 = vacio, 1 = solido) collision: @@ -41,9 +41,9 @@ tilemap: - [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] - [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] - [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] + - [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] - [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] - - [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] - - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] @@ -54,7 +54,7 @@ tilemap: - [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] - [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0] - [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 3, 0, 0, 0, 0, 0, 0] - - [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 3, 0, 0, 0, 0, 0] + - [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 3, 0, 0, 0, 0, 0] - [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] # Llaves en esta habitación keys: diff --git a/data/room/02.yaml b/data/room/02.yaml index c0cf5b4..c85c382 100644 --- a/data/room/02.yaml +++ b/data/room/02.yaml @@ -12,45 +12,45 @@ room: tilemap: # Mapa de dibujo (indices de tiles, -1 = vacio) draw: - - [191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191] - - [184, 165, 165, 166, 167, 165, 184, 166, 165, 184, 165, 165, 167, 165, 165, 166, 165, 165, 184, 165, 165, 165, 184, 166, 165, 165, 165, 184, 184, 184, 165, 210] - - [210, 180, 210, 211, 211, 210, 180, 210, 212, 210, 180, 210, 211, 212, 210, 180, 210, 210, 210, 210, 211, 212, 210, 180, 210, 212, 180, 210, 210, 166, 210, 211] - - [42, 42, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] - - [42, 42, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6, 1, 1, 1] - - [303, 303, 303, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 48, 5, 25] - - [33, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 302, 24, 25] + - [169, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191] + - [169, 165, 165, 166, 167, 165, 184, 166, 165, 184, 165, 165, 167, 165, 165, 166, 165, 165, 184, 165, 165, 165, 184, 166, 165, 165, 165, 184, 184, 184, 165, 210] + - [169, 180, 210, 211, 211, 210, 180, 210, 212, 210, 180, 210, 211, 212, 210, 180, 210, 210, 210, 210, 211, 212, 210, 180, 210, 212, 180, 210, 210, 166, 210, 211] + - [169, 42, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [169, 42, 42, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6, 1, 1, 1] + - [169, 213, 214, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 48, 5, 25] + - [33, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 304, 24, 25] - [33, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, 25] - - [33, 33, -1, 412, 412, 412, 412, -1, -1, -1, -1, 412, 303, 412, 412, 412, -1, -1, -1, -1, 412, 303, 412, 412, 412, 412, 303, -1, -1, -1, 24, 25] + - [33, 33, -1, 412, 412, 412, 412, -1, -1, -1, -1, 412, 304, 412, 412, 412, -1, -1, -1, -1, 412, 304, 412, 412, 412, 412, 304, -1, -1, -1, 24, 25] - [33, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, 25] - - [33, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 410, 24, 25] - - [33, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, 25] - - [33, 33, 412, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 410, 24, 25] - - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, 25] - - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, 25] - - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 409, 409, 409, 409, 409, -1, -1, 48, 49] - - [-1, -1, 303, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [33, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 238, 239, 24, 25] + - [33, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 48, 49] + - [33, 33, 412, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 304, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 409, 409, 409, 409, 409, -1, -1, -1, -1] + - [-1, -1, 304, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1] - [188, 190, 188, 190, 188, 190, 188, 190, 188, 190, 188, 190, 188, 190, 188, 190, 188, 190, 188, 190, 188, 190, 188, 190, 188, 190, 188, 190, 188, 190, 188, 190] # Mapa de colisiones (0 = vacio, 1 = solido) collision: - - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] - - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] - - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] - - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] - - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1] - - [2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1] + - [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + - [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + - [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + - [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] + - [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1] + - [1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1] - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1] - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1] - [0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 1, 1] - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1] - - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 1] + - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 1, 1] - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1] - - [0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 1] - - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1] - - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1] - - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 0, 0, 1, 1] + - [0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1] + - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1] + - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, -1] + - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 0, 0, -1, -1] - [0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] diff --git a/data/room/03.yaml b/data/room/03.yaml index 185aee7..bc3030a 100644 --- a/data/room/03.yaml +++ b/data/room/03.yaml @@ -15,23 +15,23 @@ tilemap: - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 169, 169] - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 169, 169] - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 169, 169] + - [-1, -1, -1, -1, -1, -1, -1, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 308, -1, 169, 169] + - [1, 2, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, -1, -1, -1, 512, 533, 169, 169, 169, 169, 169, 169, 169] + - [25, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 512, 533, 169, 169, 169, 169, 169, 169, 169, 169] + - [25, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 512, 535, -1, -1, -1, 304, -1, 169, 169, 169, 169] + - [25, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 512, 535, -1, -1, -1, -1, -1, -1, -1, 169, 169, 169] + - [25, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 512, 535, -1, -1, -1, -1, -1, -1, -1, -1, -1, 169, 169] + - [25, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 512, 535, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 169, 169] + - [25, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 512, 535, -1, -1, -1, -1, -1, -1, -1, -1, -1, 238, 239, 169, 169] + - [49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 235, -1, 512, 535, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 169, 169] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, 266, 266, 266, 266, 266, 266, 266, 266, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 169, 169] - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 169, 169] - - [1, 2, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, -1, -1, 510, 186, 7, 7, 7, 7, 7, 169, 169] - - [25, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 510, 186, -1, -1, -1, -1, -1, -1, 169, 169] - - [25, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 510, 186, -1, -1, -1, -1, -1, -1, -1, 169, 169] - - [25, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 510, 186, 307, -1, -1, -1, -1, -1, -1, -1, 169, 169] - - [25, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 510, 186, -1, -1, -1, -1, -1, -1, -1, -1, -1, 169, 169] - - [25, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 510, 186, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 169, 169] - - [25, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 510, 186, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 169, 169] - - [25, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 510, 186, 307, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 169, 169] - - [25, 26, -1, -1, -1, -1, -1, -1, -1, 266, 266, 266, 266, 266, 266, 186, 186, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 169, 169] - - [25, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 169, 169] - - [25, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 169, 169] - - [49, 50, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 380, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 169, 169] - - [-1, -1, -1, -1, -1, -1, -1, 169, 169, 169, 169, 169, 169, 169, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 169, 169] - - [-1, -1, -1, -1, -1, -1, -1, -1, 168, 168, 168, 168, 168, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 169, 169] - - [-1, -1, -1, -1, -1, -1, -1, -1, 168, 134, 168, 134, 168, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 169, 169] - - [-1, -1, -1, -1, -1, -1, -1, -1, 168, 168, 168, 168, 168, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 169, 169] + - [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 169, 169] + - [160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 169, 169] + - [191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 175, 175, 175, 175, 175, 175, 175, 191, 191, 169, 169] + - [165, 167, 184, 165, 166, 165, 175, 175, 175, 175, 184, 184, 166, 166, 184, 165, 167, 184, 165, 165, 184, 184, 170, 170, 170, 170, 170, 165, 184, 165, 169, 169] + - [211, 210, 180, 180, 180, 211, 170, 170, 170, 170, 210, 210, 180, 210, 210, 210, 180, 180, 211, 210, 211, 210, 170, 134, 170, 134, 170, 211, 210, 180, 169, 169] + - [187, 187, 187, 187, 332, 187, 170, 170, 170, 170, 187, 187, 187, 332, 332, 187, 187, 187, 187, 332, 187, 187, 170, 170, 170, 170, 170, 187, 187, 332, 169, 169] - [169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169] # Mapa de colisiones (0 = vacio, 1 = solido) collision: @@ -39,7 +39,7 @@ tilemap: - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1] - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1] - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1] - - [1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 4, 1, 1, 1, 1, 1, 1, 1, 1] + - [1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -1, 0, 0, 4, 1, 1, 1, 1, 1, 1, 1, 1] - [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, 1, 1] - [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1] - [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1] @@ -47,13 +47,13 @@ tilemap: - [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1] - [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1] - [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1] - - [1, 1, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1] - - [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1] - - [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1] - - [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1] - - [0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1] - - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1] - - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1] + - [-1, -1, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1] + - [-1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1] + - [-1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1] + - [-1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1] + - [0, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 1, 1] + - [0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1] + - [0, 0, 0, 0, 0, 0, -1, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1] - [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1] - [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] @@ -76,7 +76,7 @@ items: - tileSetFile: items.gif tile: 0 - position: {x: 13, y: 11} + position: {x: 12, y: 11} counter: 1 color1: 11 color2: 12 diff --git a/data/tilesets/neighborhood.gif b/data/tilesets/neighborhood.gif index 37b9d82ec9c72e517d3e7de44f23c5dbaf5d1180..e49707383c78c161531a40d8624eb918f6a5586f 100644 GIT binary patch delta 7912 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 SSnns^3daP)Po9Y&0028jF@6RB delta 7747 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 J>mvjK06T$UGxh)g diff --git a/source/game/editor/mini_map.cpp b/source/game/editor/mini_map.cpp index 6ccebea..b72874e 100644 --- a/source/game/editor/mini_map.cpp +++ b/source/game/editor/mini_map.cpp @@ -21,7 +21,6 @@ MiniMap::MiniMap(Uint8 bg_color, Uint8 conn_color) : bg_color_(bg_color), conn_color_(conn_color) { - buildTileColorTable("standard.gif"); layoutRooms(); buildRoomSurfaces(); composeFinalSurface(); @@ -34,47 +33,54 @@ void MiniMap::rebuild(Uint8 bg_color, Uint8 conn_color) { composeFinalSurface(); } -// Analiza el tileset y crea tabla: tile_index → color predominante -void MiniMap::buildTileColorTable(const std::string& tileset_name) { +// Devuelve (construyendo si hace falta) la tabla de color predominante para un tileset +auto MiniMap::getOrBuildTileColorTable(const std::string& tileset_name) -> const TileColorTable& { + auto it = tileset_tables_.find(tileset_name); + if (it != tileset_tables_.end()) { return it->second; } + + // Inserta entrada vacía. Si el tileset no se puede cargar, esto evita reintentos. + auto& table = tileset_tables_[tileset_name]; + auto tileset = Resource::Cache::get()->getSurface(tileset_name); - if (!tileset) { return; } + if (!tileset) { return table; } - tileset_width_ = static_cast(tileset->getWidth()) / Tile::SIZE; - tileset_transparent_ = tileset->getTransparentColor(); + table.tileset_width = static_cast(tileset->getWidth()) / Tile::SIZE; + table.transparent = tileset->getTransparentColor(); int tileset_height = static_cast(tileset->getHeight()) / Tile::SIZE; - int total_tiles = tileset_width_ * tileset_height; + int total_tiles = table.tileset_width * tileset_height; - tile_colors_.resize(total_tiles, 0); + table.colors.resize(total_tiles, 0); for (int tile = 0; tile < total_tiles; ++tile) { - int tile_x = (tile % tileset_width_) * Tile::SIZE; - int tile_y = (tile / tileset_width_) * Tile::SIZE; + int tile_x = (tile % table.tileset_width) * Tile::SIZE; + int tile_y = (tile / table.tileset_width) * Tile::SIZE; // Contar frecuencia de cada color en el tile (ignorar el color transparente del tileset) - Uint8 transparent = tileset->getTransparentColor(); std::array freq{}; for (int y = 0; y < Tile::SIZE; ++y) { for (int x = 0; x < Tile::SIZE; ++x) { Uint8 pixel = tileset->getPixel(tile_x + x, tile_y + y); - if (pixel != transparent) { + if (pixel != table.transparent) { freq[pixel]++; } } } // Encontrar el color más frecuente (transparent = tile vacío, no se pinta) - Uint8 best_color = transparent; + Uint8 best_color = table.transparent; int best_count = 0; for (int c = 0; c < 256; ++c) { - if (c == transparent) { continue; } + if (c == table.transparent) { continue; } if (freq[c] > best_count) { best_count = freq[c]; best_color = static_cast(c); } } - tile_colors_[tile] = best_color; + table.colors[tile] = best_color; } + + return table; } // Posiciona las rooms en un grid usando BFS desde las conexiones @@ -178,6 +184,9 @@ auto MiniMap::getRoomMiniSurface(const std::string& room_name) -> std::shared_pt } if (!room_data) { return nullptr; } + // Tabla de colores específica del tileset que usa esta room (cacheada). + const auto& table = getOrBuildTileColorTable(room_data->tile_set_file); + auto surface = std::make_shared(ROOM_W, ROOM_H); auto prev = Screen::get()->getRendererSurface(); @@ -191,10 +200,10 @@ auto MiniMap::getRoomMiniSurface(const std::string& room_name) -> std::shared_pt if (index >= static_cast(tile_map.size())) { continue; } int tile = tile_map[index]; - if (tile < 0 || tile >= static_cast(tile_colors_.size())) { continue; } + if (tile < 0 || tile >= static_cast(table.colors.size())) { continue; } - Uint8 color = tile_colors_[tile]; - if (color != tileset_transparent_) { + Uint8 color = table.colors[tile]; + if (color != table.transparent) { surface->putPixel(x, y, color); } } diff --git a/source/game/editor/mini_map.hpp b/source/game/editor/mini_map.hpp index dd03aae..021b758 100644 --- a/source/game/editor/mini_map.hpp +++ b/source/game/editor/mini_map.hpp @@ -49,7 +49,14 @@ class MiniMap { GridPos pos; // Posición en el grid }; - void buildTileColorTable(const std::string& tileset_name); + // Tabla de color predominante para un tileset concreto + struct TileColorTable { + std::vector colors; // tile_index → palette color + int tileset_width{0}; // Ancho del tileset en tiles + Uint8 transparent{16}; // Color transparente del tileset + }; + + auto getOrBuildTileColorTable(const std::string& tileset_name) -> const TileColorTable&; void buildRoomSurfaces(); void layoutRooms(); void composeFinalSurface(); @@ -59,10 +66,8 @@ class MiniMap { auto cellPixelX(int grid_x) const -> int { return PADDING + ((grid_x - min_grid_x_) * (CELL_W + GAP)); } auto cellPixelY(int grid_y) const -> int { return PADDING + ((grid_y - min_grid_y_) * (CELL_H + GAP)); } - // Tabla de color predominante por tile index - std::vector tile_colors_; // tile_index → palette color index - int tileset_width_{0}; // Ancho del tileset en tiles - Uint8 tileset_transparent_{16}; // Color transparente del tileset + // Caché de tablas de color por tileset (clave: nombre del fichero del tileset) + std::unordered_map tileset_tables_; // Rooms renderizadas y posicionadas std::unordered_map room_positions_;