summaryrefslogtreecommitdiff
path: root/include/map.h
diff options
context:
space:
mode:
authorSeth Barberee <seth.barberee@gmail.com>2022-01-31 15:57:02 -0800
committerGitHub <noreply@github.com>2022-01-31 15:57:02 -0800
commit1d64db5214b455bbd6f50ad6369ec04420e03984 (patch)
tree1a78046d52129ea3ddafc06d391706590a54ceaf /include/map.h
parent408fe77d7b9440d7eb5d46eda5f920572d516d67 (diff)
parent5dc5b3b1f97f9467005dadd63f5f6e052f984bc3 (diff)
Merge pull request #94 from AnonymousRandomPerson/master
Dungeon movement decomp
Diffstat (limited to 'include/map.h')
-rw-r--r--include/map.h48
1 files changed, 23 insertions, 25 deletions
diff --git a/include/map.h b/include/map.h
index bb991ff..9122f00 100644
--- a/include/map.h
+++ b/include/map.h
@@ -7,6 +7,27 @@
#define MAX_ROOM_COUNT 24 // Empirical max, not sure if the code supports any more.
#define CORRIDOR_ROOM_INDEX 0xFF
+enum TileType
+{
+ TILE_TYPE_FLOOR = 1 << 0,
+ TILE_TYPE_LIQUID = 1 << 1, // Water or lava depending on the dungeon.
+ TILE_TYPE_UNK_2 = 1 << 2,
+ TILE_TYPE_ROOM_EXIT = 1 << 3,
+ TILE_TYPE_MAP_EDGE = 1 << 4,
+ TILE_TYPE_SHOP = 1 << 5,
+ TILE_TYPE_MONSTER_HOUSE = 1 << 6,
+ TILE_TYPE_STAIRS = 1 << 9
+};
+
+enum CrossableTerrain
+{
+ CROSSABLE_TERRAIN_REGULAR = 0,
+ CROSSABLE_TERRAIN_LIQUID = 1,
+ CROSSABLE_TERRAIN_CREVICE = 2,
+ CROSSABLE_TERRAIN_WALL = 3,
+ NUM_CROSSABLE_TERRAIN
+};
+
struct MapTile
{
// Uses the TileType bit flags.
@@ -17,11 +38,8 @@ struct MapTile
u8 unk8;
/* 0x9 */ u8 roomIndex;
// Bitwise flags for whether Pokémon can move to an adjacent tile. Bits correspond to directions in direction.h.
- // Different sets of flags are used for Pokémon that can cross special terrain.
- /* 0xA */ u8 canMoveAdjacent;
- /* 0xB */ u8 canMoveAdjacentLiquid;
- /* 0xC */ u8 canMoveAdjacentCrevice;
- /* 0xD */ u8 canMoveAdjacentWall;
+ // Different sets of flags are used for Pokémon that can cross special terrain, corresponding to Cthe rossableTerrain enum.
+ /* 0xA */ u8 canMoveAdjacent[NUM_CROSSABLE_TERRAIN];
u8 fillE[0x10 - 0xE];
/* 0x10 */ struct DungeonEntity *pokemon; // Pokémon on the tile.
/* 0x14 */ struct DungeonEntity *mapObject; // Item or trap on the tile.
@@ -39,24 +57,4 @@ struct MapRoom
u8 fillA[0x1A - 0xA];
};
-enum TileType
-{
- TILE_TYPE_FLOOR = 1 << 0,
- TILE_TYPE_LIQUID = 1 << 1, // Water or lava depending on the dungeon.
- TILE_TYPE_UNK_2 = 1 << 2,
- TILE_TYPE_ROOM_EXIT = 1 << 3,
- TILE_TYPE_MAP_EDGE = 1 << 4,
- TILE_TYPE_SHOP = 1 << 5,
- TILE_TYPE_MONSTER_HOUSE = 1 << 6,
- TILE_TYPE_STAIRS = 1 << 9
-};
-
-enum CrossableTerrain
-{
- CROSSABLE_TERRAIN_REGULAR = 0,
- CROSSABLE_TERRAIN_LIQUID = 1,
- CROSSABLE_TERRAIN_CREVICE = 2,
- CROSSABLE_TERRAIN_WALL = 3,
-};
-
#endif