diff options
author | Seth Barberee <seth.barberee@gmail.com> | 2022-01-31 15:57:02 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-31 15:57:02 -0800 |
commit | 1d64db5214b455bbd6f50ad6369ec04420e03984 (patch) | |
tree | 1a78046d52129ea3ddafc06d391706590a54ceaf /include | |
parent | 408fe77d7b9440d7eb5d46eda5f920572d516d67 (diff) | |
parent | 5dc5b3b1f97f9467005dadd63f5f6e052f984bc3 (diff) |
Merge pull request #94 from AnonymousRandomPerson/master
Dungeon movement decomp
Diffstat (limited to 'include')
-rw-r--r-- | include/constants/bg_music.h | 40 | ||||
-rw-r--r-- | include/dungeon_ai_movement.h | 9 | ||||
-rw-r--r-- | include/dungeon_capabilities_1.h | 2 | ||||
-rw-r--r-- | include/dungeon_engine.h | 7 | ||||
-rw-r--r-- | include/dungeon_movement.h | 6 | ||||
-rw-r--r-- | include/map.h | 48 |
6 files changed, 63 insertions, 49 deletions
diff --git a/include/constants/bg_music.h b/include/constants/bg_music.h index 86fb4e9..53bfade 100644 --- a/include/constants/bg_music.h +++ b/include/constants/bg_music.h @@ -1,51 +1,51 @@ #ifndef GUARD_CONSTANTS_BG_MUSIC_H -#define GUARD_CONSTANTS_BG_MUSIC_H +#define GUARD_CONSTANTS_BG_MUSIC_H -#define MUS_TEAM_BASE 1 +#define MUS_RESCUE_TEAM_BASE 1 #define MUS_FRIEND_AREA_SWAMP 2 #define MUS_FRIEND_AREA_CAVES 3 #define MUS_DREAM 4 -#define MUS_BENEVOLENT_SPIRT 5 +#define MUS_BENEVOLENT_SPIRIT 5 #define MUS_LEGEND_OF_NINETALES 6 #define MUS_POKEMON_SQUARE 7 -#define MUS_LOADING_SCREEN 8 +#define MUS_FILE_SELECT 8 #define MUS_RISING_FEAR 9 #define MUS_THERES_TROUBLE 10 -#define MUS_DECISIVE_BATTLE 11 -#define MUS_WELCOME_TO_WORLD_POKEMON 12 -#define MUS_BURIED_RELIC 13 +#define MUS_BOSS_BATTLE 11 +#define MUS_WELCOME_TO_THE_WORLD_OF_POKEMON 12 +#define MUS_A_NEW_ADVENTURE 13 // Plays in Buried Relic and Southern Cavern #define MUS_THUNDERWAVE_CAVE 14 #define MUS_SINISTER_WOODS 15 #define MUS_FRIEND_AREA_POND 16 #define MUS_KECLEON_SHOP 17 #define MUS_STOP_THIEF 18 #define MUS_WORLD_CALAMITY 19 // GIANT_STAR_APPROACHING -#define MUS_GRAND_CANYON 20 +#define MUS_GREAT_CANYON 20 #define MUS_STORMY_SEA 21 #define MUS_SKY_TOWER 22 #define MUS_SKY_TOWER_SUMMIT 23 -#define MUS_RUN_AWAY 24 +#define MUS_THE_ESCAPE 24 #define MUS_MT_BLAZE 25 -#define MUS_SKY_TOWER_END 26 +#define MUS_RAYQUAZAS_DOMAIN 26 #define MUS_FRIEND_AREA_STRATOS_LOOKOUT 27 #define MUS_FRIEND_AREA_RAINBOW_PEAK 28 -#define MUS_GENGAR_DREAM 29 +#define MUS_DREAM_EATER 29 #define MUS_FRIEND_AREA_DEEPSEA_CURRENT 30 #define MUS_FRIEND_AREA_SEAFLOOR_CAVE 31 -#define MUS_LAST_BATTLE 32 +#define MUS_BATTLE_WITH_RAYQUAZA 32 #define MUS_MT_BLAZE_PEAK 33 #define MUS_FRIEND_AREA_VOLCANIC_PIT 34 #define MUS_FRIEND_AREA_CRYPTIC_CAVE 35 -#define MUS_THROUGH_THE_LAND_OF_ICE_AND_SNOW 36 -#define MUS_GENGAR_DARK_WORLD 37 -#define MUS_MT_BLAZE_END 38 +#define MUS_ESCAPE_THROUGH_THE_SNOW 36 +#define MUS_THE_OTHER_SIDE 37 +#define MUS_THE_MOUNTAIN_OF_FIRE 38 #define MUS_FROSTY_GROTTO 39 #define MUS_INTRO 40 -#define MUS_AFTER_THE_BATTLE 41 -#define MUS_NEVER_FORGET 42 +#define MUS_AFTERMATH 41 +#define MUS_FAREWELL 42 #define MUS_TITLE_SCREEN 43 #define MUS_CREDITS 44 -#define MUS_EPILOGUE 45 +#define MUS_TIME_OF_REUNION 45 #define MUS_OPENING_TITLE 46 #define MUS_DUNGEON_FAIL 51 #define MUS_DUNGEON_COMPLETE 52 @@ -53,7 +53,7 @@ // 53 - 99 are blank/empty slots for BG Music #define MUS_FRIEND_AREA_UNUSED_1 100 -#define MUS_MEETING_WITH_PARTNER 101 +#define MUS_HEARTWARMING 101 #define MUS_LAPIS_CAVE 102 #define MUS_A_SUCCESSFUL_RESCUE 103 #define MUS_FROSTY_FOREST 104 @@ -66,7 +66,7 @@ #define MUS_MT_THUNDER 111 #define MUS_FRIEND_AREA_LAB 112 #define MUS_SILENT_CHASM 113 -#define MUS_IN_THE_DEPTHS_OF_PIT 114 +#define MUS_IN_THE_DEPTHS_OF_THE_PIT 114 #define MUS_MT_FREEZE 115 #define MUS_FRIEND_AREA_WILDS 116 #define MUS_FRIEND_AREA_LEGENDARY_ISLAND 117 diff --git a/include/dungeon_ai_movement.h b/include/dungeon_ai_movement.h new file mode 100644 index 0000000..27bb00f --- /dev/null +++ b/include/dungeon_ai_movement.h @@ -0,0 +1,9 @@ +#ifndef GUARD_DUNGEON_AI_MOVEMENT_H +#define GUARD_DUNGEON_AI_MOVEMENT_H + +#include "dungeon_entity.h" + +// 0x75990 +void DecideAction(struct DungeonEntity *pokemon); + +#endif diff --git a/include/dungeon_capabilities_1.h b/include/dungeon_capabilities_1.h index 1d10a0f..c19391b 100644 --- a/include/dungeon_capabilities_1.h +++ b/include/dungeon_capabilities_1.h @@ -7,5 +7,7 @@ bool8 CannotUseItems(struct DungeonEntity *pokemon); // 0x70CD0 bool8 CannotAct(struct DungeonEntity *pokemon); +// 0x70D6C +bool8 CanMoveInDirection(struct DungeonEntity *pokemon, u32 facingDir); #endif diff --git a/include/dungeon_engine.h b/include/dungeon_engine.h new file mode 100644 index 0000000..f987b11 --- /dev/null +++ b/include/dungeon_engine.h @@ -0,0 +1,7 @@ +#ifndef GUARD_DUNGEON_ENGINE_H +#define GUARD_DUNGEON_ENGINE_H + +// 0x441E8 +bool8 IsFixedDungeon(); + +#endif diff --git a/include/dungeon_movement.h b/include/dungeon_movement.h index e3ab174..d15ef1b 100644 --- a/include/dungeon_movement.h +++ b/include/dungeon_movement.h @@ -1,9 +1,7 @@ #ifndef GUARD_DUNGEON_MOVEMENT_H #define GUARD_DUNGEON_MOVEMENT_H -#include "dungeon_entity.h" - -// 0x75990 -void DecideAction(struct DungeonEntity *pokemon); +// 0x70328 +u8 GetCrossableTerrain(s16 species); #endif 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 |