| name | worldmap-tiles |
| description | Reference for the 256x256 worldmap tile system (zone 1000) - tools/gen_worldmap.py tile character rules (reserved terrain/access chars, landmark/unknown sector fallback, entry portals) and the sector-indexed tables in constants.c/asciimap.c that must stay in sync. Use when editing lib/world/map/greed_island.txt, tools/gen_worldmap.py, or adding new sector types. |
Worldmap tiles (lib/world/map/greed_island.txt + tools/gen_worldmap.py)
The 256x256 worldmap (zone 1000) is generated by tools/gen_worldmap.py on every autorun boot. Tile character rules:
- Reserved terrain/access chars:
. f h ^ = ~ b r and S L P C ? (see the script docstring).
- Any other uppercase letter = landmark (
SECT_LANDMARK 16): peaceful/safe field room, rendered gold with the letter itself. No configuration needed — just place the letter on the map.
- Any other printable char = unknown (
SECT_UNKNOWN 17): plain field room, rendered dark green with the char itself. Whitespace/control chars inside the grid are still a fatal validation error.
enter portals: any (row, col) in ENTRY_LINKS (in the script) gets a D5 exit to the configured dest vnum, regardless of char (keyword entrance by default). L/P/C/? tiles without a link only produce a stderr warning (exit 0) — the boot is never blocked.
- The in-game renderer (
asciimap.c) lazily loads the map text file to know which letter/char to draw for landmark/unknown tiles; if the file is missing it falls back to a + glyph. Sector-indexed tables that must stay in sync with NUM_ROOM_SECTORS: sector_types[] and movement_loss[] in constants.c, plus map_info[]/world_map_info[] in asciimap.c (indices 16–29 are filler slots reserved for new sectors; pseudo-sectors like SECT_HERE start at fixed index 30).