diff --git a/data/CommonEvents.json b/data/CommonEvents.json index 7e54674..346c75a 100644 --- a/data/CommonEvents.json +++ b/data/CommonEvents.json @@ -132480,7 +132480,7 @@ "addLog", "テキストをログウィンドウに追加", { - "text": "Note \\C[6]\\v[313]\\c[0] inserted into the notebook" + "text": "Memo \"\\C[6]\\v[313]\\c[0]\" put in notebook" } ] }, diff --git a/js/plugins/MinimapZoom.js b/js/plugins/MinimapZoom.js index cb20fbe..66a9d89 100644 --- a/js/plugins/MinimapZoom.js +++ b/js/plugins/MinimapZoom.js @@ -379,29 +379,49 @@ const tiles = $gameMap.allTiles(x, y); let hasFloorTile = false; - // Look for actual floor/ground tiles (A1, A2, A5 are typically ground) + // Look for actual floor/ground tiles + // RPG Maker MZ Tileset Layout: + // A1 (animated/water): 2048-2815 - water, waterfalls, poison swamps, lava + // A2 (ground): 2816-4351 - grass, dirt, stone floors + // A3 (buildings): 4352-5887 - roofs and building exteriors + // A4 (walls): 5888-8191 - wall tops + // A5 (normal tiles): 1536-1663 - simple ground tiles + // B-E tiles: start at different offsets for decoration + for (const tileId of tiles) { if (tileId === 0) continue; - // A1 (animated tiles) start at 2048 in autotile range but have ID < 256 after processing - // A2 (ground) tiles: 2816-4351 - // A5 (normal ground): 1536-1663 - // B-E tiles: 0-255 (in tileset index) - - // Check if this is a typical ground tile - // A5 tiles (ground): 1536-1663 + // A5 tiles (simple ground): 1536-1663 if (tileId >= 1536 && tileId < 1664) { hasFloorTile = true; break; } + // A1 tiles (water/animated - including poison, lava, swamps): 2048-2815 + if (tileId >= 2048 && tileId < 2816) { + hasFloorTile = true; + break; + } // A2 tiles (ground autotiles): 2816-4351 if (tileId >= 2816 && tileId < 4352) { hasFloorTile = true; break; } - // A1 tiles (water/animated): 2048-2815 - these are NOT ground - // A3 tiles (building): 4352-5887 - could be walls - // A4 tiles (wall top): 5888-8191 - definitely walls + // B-E tiles can also be walkable floors (tile ID encoding varies) + // These are typically in lower ranges and used for details/overlays + // If a B-E tile is passable, it should be considered ground + if (tileId > 0 && tileId < 1536) { + // This is a B-E tile, check if it's passable via flags + const flags = $gameMap.tilesetFlags(); + const flag = flags[tileId]; + if (flag !== undefined && (flag & 0x10) === 0) { + // Not star passability (not an overlay) - could be floor + if ((flag & 0x0F) !== 0x0F) { + // Not fully blocked + hasFloorTile = true; + break; + } + } + } } // Consider passable only if: passage check passes AND has a floor tile