22#ifndef ULTIMA4_MAP_DUNGEON_H
23#define ULTIMA4_MAP_DUNGEON_H
25#include "ultima/ultima4/controllers/combat_controller.h"
26#include "ultima/ultima4/core/types.h"
27#include "ultima/ultima4/map/map.h"
32#define DNGROOM_NTRIGGERS 4
43 byte _changeX1, _changeY1, changeX2, changeY2;
56 _array[DIR_NONE] =
nullptr;
57 _array[DIR_NORTH] = &_northStart;
58 _array[DIR_EAST] = &_eastStart;
59 _array[DIR_SOUTH] = &_southStart;
60 _array[DIR_WEST] = &_westStart;
69 Trigger _triggers[DNGROOM_NTRIGGERS];
70 byte _creatureTiles[16];
102 DUNGEON_CORRIDOR = 0x00,
103 DUNGEON_LADDER_UP = 0x10,
104 DUNGEON_LADDER_DOWN = 0x20,
105 DUNGEON_LADDER_UPDOWN = 0x30,
106 DUNGEON_CHEST = 0x40,
107 DUNGEON_CEILING_HOLE = 0x50,
108 DUNGEON_FLOOR_HOLE = 0x60,
109 DUNGEON_MAGIC_ORB = 0x70,
111 DUNGEON_FOUNTAIN = 0x90,
112 DUNGEON_FIELD = 0xA0,
113 DUNGEON_ALTAR = 0xB0,
116 DUNGEON_SECRET_DOOR = 0xE0,
170 bool validTeleportLocation(
MapCoords coords);
179 byte _partyStartX[8];
180 byte _partyStartY[8];
188 TRAP_FALLING_ROCK = 0x1,
193 FOUNTAIN_NORMAL = 0x0,
194 FOUNTAIN_HEALING = 0x1,
197 FOUNTAIN_POISON = 0x4
215void dungeonDrinkFountain();
220void dungeonTouchOrb();
225bool dungeonHandleTrap(TrapType trap);
230bool isDungeon(Map *punknown);
Definition: combat_controller.h:212
Definition: dungeon.h:120
bool ladderDownAt(MapCoords coords)
DungeonToken tokenAt(MapCoords coords)
DungeonToken tokenForTile(MapTile tile)
Common::String getName() override
bool ladderUpAt(MapCoords coords)
DungeonToken currentToken()
byte subTokenAt(MapCoords coords)
Definition: map_tile.h:34
void load(Common::SeekableReadStream &s)