mirror of
https://github.com/pret/pmd-red.git
synced 2026-08-28 19:55:09 -05:00
Move ground map conversion table to C
This commit is contained in:
236
include/constants/ground_map.h
Normal file
236
include/constants/ground_map.h
Normal file
@@ -0,0 +1,236 @@
|
||||
#ifndef GUARD_CONSTANTS_GROUND_MAP_H
|
||||
#define GUARD_CONSTANTS_GROUND_MAP_H
|
||||
|
||||
enum {
|
||||
MAP_SQUARE,
|
||||
MAP_POKEMON_SQUARE,
|
||||
MAP_WHISCASH_POND,
|
||||
MAP_WHISCASH_POND_OPEN,
|
||||
MAP_PELIPPER_POST_OFFICE,
|
||||
MAP_PELIPPER_POST_OFFICE_INSIDE,
|
||||
MAP_MAKUHITA_DOJO,
|
||||
MAP_MAKUHITA_DOJO_INSIDE,
|
||||
MAP_LUMINOUS_CAVE,
|
||||
MAP_TEAM_BASE_PIKACHU_BASIC,
|
||||
MAP_TEAM_BASE_PIKACHU_CONSTRUCTION,
|
||||
MAP_TEAM_BASE_PIKACHU_FINAL,
|
||||
MAP_TEAM_BASE_INSIDE_PIKACHU_BASIC,
|
||||
MAP_TEAM_BASE_INSIDE_PIKACHU_CONSTRUCTION,
|
||||
MAP_TEAM_BASE_INSIDE_PIKACHU_FINAL,
|
||||
MAP_TEAM_BASE_MEOWTH_BASIC,
|
||||
MAP_TEAM_BASE_MEOWTH_CONSTRUCTION,
|
||||
MAP_TEAM_BASE_MEOWTH_FINAL,
|
||||
MAP_TEAM_BASE_INSIDE_MEOWTH_BASIC,
|
||||
MAP_TEAM_BASE_INSIDE_MEOWTH_CONSTRUCTION,
|
||||
MAP_TEAM_BASE_INSIDE_MEOWTH_FINAL,
|
||||
MAP_TEAM_BASE_EEVEE_BASIC,
|
||||
MAP_TEAM_BASE_EEVEE_CONSTRUCTION,
|
||||
MAP_TEAM_BASE_EEVEE_FINAL,
|
||||
MAP_TEAM_BASE_INSIDE_EEVEE_BASIC,
|
||||
MAP_TEAM_BASE_INSIDE_EEVEE_CONSTRUCTION,
|
||||
MAP_TEAM_BASE_INSIDE_EEVEE_FINAL,
|
||||
MAP_TEAM_BASE_SKITTY_BASIC,
|
||||
MAP_TEAM_BASE_SKITTY_CONSTRUCTION,
|
||||
MAP_TEAM_BASE_SKITTY_FINAL,
|
||||
MAP_TEAM_BASE_INSIDE_SKITTY_BASIC,
|
||||
MAP_TEAM_BASE_INSIDE_SKITTY_CONSTRUCTION,
|
||||
MAP_TEAM_BASE_INSIDE_SKITTY_FINAL,
|
||||
MAP_TEAM_BASE_SQUIRTLE_BASIC,
|
||||
MAP_TEAM_BASE_SQUIRTLE_CONSTRUCTION,
|
||||
MAP_TEAM_BASE_SQUIRTLE_FINAL,
|
||||
MAP_TEAM_BASE_INSIDE_SQUIRTLE_BASIC,
|
||||
MAP_TEAM_BASE_INSIDE_SQUIRTLE_CONSTRUCTION,
|
||||
MAP_TEAM_BASE_INSIDE_SQUIRTLE_FINAL,
|
||||
MAP_TEAM_BASE_TOTODILE_BASIC,
|
||||
MAP_TEAM_BASE_TOTODILE_CONSTRUCTION,
|
||||
MAP_TEAM_BASE_TOTODILE_FINAL,
|
||||
MAP_TEAM_BASE_INSIDE_TOTODILE_BASIC,
|
||||
MAP_TEAM_BASE_INSIDE_TOTODILE_CONSTRUCTION,
|
||||
MAP_TEAM_BASE_INSIDE_TOTODILE_FINAL,
|
||||
MAP_TEAM_BASE_MUDKIP_BASIC,
|
||||
MAP_TEAM_BASE_MUDKIP_CONSTRUCTION,
|
||||
MAP_TEAM_BASE_MUDKIP_FINAL,
|
||||
MAP_TEAM_BASE_INSIDE_MUDKIP_BASIC,
|
||||
MAP_TEAM_BASE_INSIDE_MUDKIP_CONSTRUCTION,
|
||||
MAP_TEAM_BASE_INSIDE_MUDKIP_FINAL,
|
||||
MAP_TEAM_BASE_PSYDUCK_BASIC,
|
||||
MAP_TEAM_BASE_PSYDUCK_CONSTRUCTION,
|
||||
MAP_TEAM_BASE_PSYDUCK_FINAL,
|
||||
MAP_TEAM_BASE_INSIDE_PSYDUCK_BASIC,
|
||||
MAP_TEAM_BASE_INSIDE_PSYDUCK_CONSTRUCTION,
|
||||
MAP_TEAM_BASE_INSIDE_PSYDUCK_FINAL,
|
||||
MAP_TEAM_BASE_CHARMANDER_BASIC,
|
||||
MAP_TEAM_BASE_CHARMANDER_CONSTRUCTION,
|
||||
MAP_TEAM_BASE_CHARMANDER_FINAL,
|
||||
MAP_TEAM_BASE_INSIDE_CHARMANDER_BASIC,
|
||||
MAP_TEAM_BASE_INSIDE_CHARMANDER_CONSTRUCTION,
|
||||
MAP_TEAM_BASE_INSIDE_CHARMANDER_FINAL,
|
||||
MAP_TEAM_BASE_TORCHIC_BASIC,
|
||||
MAP_TEAM_BASE_TORCHIC_CONSTRUCTION,
|
||||
MAP_TEAM_BASE_TORCHIC_FINAL,
|
||||
MAP_TEAM_BASE_INSIDE_TORCHIC_BASIC,
|
||||
MAP_TEAM_BASE_INSIDE_TORCHIC_CONSTRUCTION,
|
||||
MAP_TEAM_BASE_INSIDE_TORCHIC_FINAL,
|
||||
MAP_TEAM_BASE_CYNDAQUIL_BASIC,
|
||||
MAP_TEAM_BASE_CYNDAQUIL_CONSTRUCTION,
|
||||
MAP_TEAM_BASE_CYNDAQUIL_FINAL,
|
||||
MAP_TEAM_BASE_INSIDE_CYNDAQUIL_BASIC,
|
||||
MAP_TEAM_BASE_INSIDE_CYNDAQUIL_CONSTRUCTION,
|
||||
MAP_TEAM_BASE_INSIDE_CYNDAQUIL_FINAL,
|
||||
MAP_TEAM_BASE_CUBONE_BASIC,
|
||||
MAP_TEAM_BASE_CUBONE_CONSTRUCTION,
|
||||
MAP_TEAM_BASE_CUBONE_FINAL,
|
||||
MAP_TEAM_BASE_INSIDE_CUBONE_BASIC,
|
||||
MAP_TEAM_BASE_INSIDE_CUBONE_CONSTRUCTION,
|
||||
MAP_TEAM_BASE_INSIDE_CUBONE_FINAL,
|
||||
MAP_TEAM_BASE_MACHOP_BASIC,
|
||||
MAP_TEAM_BASE_MACHOP_CONSTRUCTION,
|
||||
MAP_TEAM_BASE_MACHOP_FINAL,
|
||||
MAP_TEAM_BASE_INSIDE_MACHOP_BASIC,
|
||||
MAP_TEAM_BASE_INSIDE_MACHOP_CONSTRUCTION,
|
||||
MAP_TEAM_BASE_INSIDE_MACHOP_FINAL,
|
||||
MAP_TEAM_BASE_BULBASAUR_BASIC,
|
||||
MAP_TEAM_BASE_BULBASAUR_CONSTRUCTION,
|
||||
MAP_TEAM_BASE_BULBASAUR_FINAL,
|
||||
MAP_TEAM_BASE_INSIDE_BULBASAUR_BASIC,
|
||||
MAP_TEAM_BASE_INSIDE_BULBASAUR_CONSTRUCTION,
|
||||
MAP_TEAM_BASE_INSIDE_BULBASAUR_FINAL,
|
||||
MAP_TEAM_BASE_CHIKORITA_BASIC,
|
||||
MAP_TEAM_BASE_CHIKORITA_CONSTRUCTION,
|
||||
MAP_TEAM_BASE_CHIKORITA_FINAL,
|
||||
MAP_TEAM_BASE_INSIDE_CHIKORITA_BASIC,
|
||||
MAP_TEAM_BASE_INSIDE_CHIKORITA_CONSTRUCTION,
|
||||
MAP_TEAM_BASE_INSIDE_CHIKORITA_FINAL,
|
||||
MAP_TEAM_BASE_TREECKO_BASIC,
|
||||
MAP_TEAM_BASE_TREECKO_CONSTRUCTION,
|
||||
MAP_TEAM_BASE_TREECKO_FINAL,
|
||||
MAP_TEAM_BASE_INSIDE_TREECKO_BASIC,
|
||||
MAP_TEAM_BASE_INSIDE_TREECKO_CONSTRUCTION,
|
||||
MAP_TEAM_BASE_INSIDE_TREECKO_FINAL,
|
||||
MAP_FRIEND_AREA_BOUNTIFUL_SEA,
|
||||
MAP_FRIEND_AREA_TREASURE_SEA,
|
||||
MAP_FRIEND_AREA_SERENE_SEA,
|
||||
MAP_FRIEND_AREA_DEEP_SEA_FLOOR,
|
||||
MAP_FRIEND_AREA_DEEP_SEA_CURRENT,
|
||||
MAP_FRIEND_AREA_SEAFLOOR_CAVE,
|
||||
MAP_FRIEND_AREA_SHALLOW_BEACH,
|
||||
MAP_FRIEND_AREA_MT_DEEPGREEN,
|
||||
MAP_FRIEND_AREA_MT_CLEFT,
|
||||
MAP_FRIEND_AREA_MT_MOONVIEW,
|
||||
MAP_FRIEND_AREA_RAINBOW_PEAK,
|
||||
MAP_FRIEND_AREA_WILD_PLAINS,
|
||||
MAP_FRIEND_AREA_BEAU_PLAINS,
|
||||
MAP_FRIEND_AREA_SKY_BLUE_PLAINS,
|
||||
MAP_FRIEND_AREA_SAFARI,
|
||||
MAP_FRIEND_AREA_SCORCHED_PLAINS,
|
||||
MAP_FRIEND_AREA_SACRED_FIELD,
|
||||
MAP_FRIEND_AREA_MIST_RISE_FOREST,
|
||||
MAP_FRIEND_AREA_FLYAWAY_FOREST,
|
||||
MAP_FRIEND_AREA_OVERGROWN_FOREST,
|
||||
MAP_FRIEND_AREA_ENERGETIC_FOREST,
|
||||
MAP_FRIEND_AREA_MUSHROOM_FOREST,
|
||||
MAP_FRIEND_AREA_HEALING_FOREST,
|
||||
MAP_FRIEND_AREA_TRANSFORM_FOREST,
|
||||
MAP_FRIEND_AREA_SECRETIVE_FOREST,
|
||||
MAP_FRIEND_AREA_RUB_A_DUB_RIVER,
|
||||
MAP_FRIEND_AREA_TADPOLE_POND,
|
||||
MAP_FRIEND_AREA_TURTLESHELL_POND,
|
||||
MAP_FRIEND_AREA_MYSTIC_LAKE,
|
||||
MAP_FRIEND_AREA_WATERFALL_LAKE,
|
||||
MAP_FRIEND_AREA_PEANUT_SWAMP,
|
||||
MAP_FRIEND_AREA_POISON_SWAMP,
|
||||
MAP_FRIEND_AREA_ECHO_CAVE,
|
||||
MAP_FRIEND_AREA_CRYPTIC_CAVE,
|
||||
MAP_FRIEND_AREA_DRAGON_CAVE,
|
||||
MAP_FRIEND_AREA_BOULDER_CAVE,
|
||||
MAP_FRIEND_AREA_JUNGLE,
|
||||
MAP_FRIEND_AREA_DECREPIT_LAB,
|
||||
MAP_FRIEND_AREA_MT_DISCIPLINE,
|
||||
MAP_FRIEND_AREA_THUNDER_MEADOW,
|
||||
MAP_FRIEND_AREA_POWER_PLANT,
|
||||
MAP_FRIEND_AREA_CRATER,
|
||||
MAP_FRIEND_AREA_FURNACE_DESERT,
|
||||
MAP_FRIEND_AREA_AGED_CHAMBER_AN,
|
||||
MAP_FRIEND_AREA_AGED_CHAMBER_O_EXCLAIM,
|
||||
MAP_FRIEND_AREA_ANCIENT_RELIC,
|
||||
MAP_FRIEND_AREA_DARKNESS_RIDGE,
|
||||
MAP_FRIEND_AREA_FRIGID_CAVERN,
|
||||
MAP_FRIEND_AREA_ICE_FLOE_BEACH,
|
||||
MAP_FRIEND_AREA_VOLCANIC_PIT,
|
||||
MAP_FRIEND_AREA_STRATOS_LOOKOUT,
|
||||
MAP_FRIEND_AREA_RAVAGED_FIELD,
|
||||
MAP_FRIEND_AREA_MAGNETIC_QUARRY,
|
||||
MAP_FRIEND_AREA_LEGENDARY_ISLAND,
|
||||
MAP_FRIEND_AREA_SOUTHERN_ISLAND,
|
||||
MAP_FRIEND_AREA_ENCLOSED_ISLAND,
|
||||
MAP_FRIEND_AREA_FINAL_ISLAND,
|
||||
MAP_PERSONALITY_TEST_CYAN,
|
||||
MAP_PERSONALITY_TEST_PURPLE,
|
||||
MAP_FUGITIVES_FISSURE,
|
||||
MAP_FUGITIVES_FIRE,
|
||||
MAP_FUGITIVES_LAPIS_CAVE,
|
||||
MAP_FUGITIVES_VOLCANO,
|
||||
MAP_FUGITIVES_SNOW_ROAD,
|
||||
MAP_FUGITIVES_SNOW_FOREST,
|
||||
MAP_FUGITIVES_BLIZZARD_ROAD,
|
||||
MAP_SUMMIT_SUNSET,
|
||||
MAP_SKY_TOWER,
|
||||
MAP_COMET,
|
||||
MAP_NIGHTMARE,
|
||||
MAP_NIGHT_SKY_1,
|
||||
MAP_NIGHT_SKY_2,
|
||||
MAP_THE_END,
|
||||
MAP_TINY_WOODS_ENTRY,
|
||||
MAP_TINY_WOODS_END,
|
||||
MAP_THUNDERWAVE_CAVE_ENTRY,
|
||||
MAP_THUNDERWAVE_CAVE_END,
|
||||
MAP_MT_STEEL_ENTRY,
|
||||
MAP_MT_STEEL_END,
|
||||
MAP_SINISTER_WOODS_ENTRY,
|
||||
MAP_SINISTER_WOODS_END,
|
||||
MAP_SILENT_CHASM_ENTRY,
|
||||
MAP_SILENT_CHASM_END,
|
||||
MAP_MT_THUNDER_ENTRY,
|
||||
MAP_MT_THUNDER_MID,
|
||||
MAP_MT_THUNDER_END,
|
||||
MAP_GREAT_CANYON_ENTRY,
|
||||
MAP_HILL_OF_THE_ANCIENTS,
|
||||
MAP_LAPIS_CAVE_ENTRY,
|
||||
MAP_LAPIS_CAVE_END,
|
||||
MAP_MT_BLAZE_ENTRY,
|
||||
MAP_MT_BLAZE_MID,
|
||||
MAP_MT_BLAZE_END,
|
||||
MAP_FROSTY_FOREST_ENTRY,
|
||||
MAP_FROSTY_FOREST_MID,
|
||||
MAP_FROSTY_FOREST_END,
|
||||
MAP_MT_FREEZE_ENTRY,
|
||||
MAP_MT_FREEZE_MID,
|
||||
MAP_MT_FREEZE_END,
|
||||
MAP_MAGMA_CAVERN_ENTRY,
|
||||
MAP_MAGMA_CAVERN_MID,
|
||||
MAP_MAGMA_CAVERN_END,
|
||||
MAP_SKY_TOWER_ENTRY,
|
||||
MAP_SKY_TOWER_MID,
|
||||
MAP_SKY_TOWER_END,
|
||||
MAP_D14,
|
||||
MAP_D15,
|
||||
MAP_D16,
|
||||
MAP_D17,
|
||||
MAP_D18,
|
||||
MAP_D19,
|
||||
MAP_D20,
|
||||
MAP_D21,
|
||||
MAP_D22,
|
||||
MAP_D23,
|
||||
MAP_D24,
|
||||
MAP_D25,
|
||||
MAP_PERSONALITY_TEST_MULTICOLOR,
|
||||
MAP_TITLE_SCREEN,
|
||||
MAP_INTRO,
|
||||
MAP_LOGO_POKEMON_COMPANY,
|
||||
MAP_LOGO_WARNING,
|
||||
MAP_TEAM_BASE_WALL_MAP,
|
||||
MAP_COUNT,
|
||||
};
|
||||
|
||||
#endif // GUARD_CONSTANTS_GROUND_MAP_H
|
||||
@@ -40,14 +40,14 @@ static inline s16 Self_s16(s16 a)
|
||||
}
|
||||
|
||||
// Needed to match a couple of functions.
|
||||
static inline void InlineStrcpy(u8 *dst, const u8 *src)
|
||||
static inline u8 *InlineStrcpy(u8 *dst, const u8 *src)
|
||||
{
|
||||
strcpy(dst, src);
|
||||
return strcpy(dst, src);
|
||||
}
|
||||
|
||||
static inline void InlineStrncpy(u8 *dst, const u8 *src, s32 n)
|
||||
static inline u8 *InlineStrncpy(u8 *dst, const u8 *src, s32 n)
|
||||
{
|
||||
strncpy(dst, src, n);
|
||||
return strncpy(dst, src, n);
|
||||
}
|
||||
|
||||
static inline bool8 AreStringsDifferent(const u8 *str1, const u8 *str2)
|
||||
|
||||
@@ -4,16 +4,6 @@
|
||||
#include "structs/str_pokemon.h"
|
||||
#include "structs/str_wonder_mail.h"
|
||||
|
||||
// size: 0xC
|
||||
typedef struct GroundConversionStruct
|
||||
{
|
||||
s16 unk0;
|
||||
s16 unk2;
|
||||
s16 unk4;
|
||||
s16 unk6;
|
||||
/* 0x8 */ u8 *text;
|
||||
} GroundConversionStruct;
|
||||
|
||||
bool8 sub_8098F88(void);
|
||||
const char *GetCurrentGroundPlaceName(void);
|
||||
|
||||
@@ -25,6 +15,4 @@ bool8 sub_8098D80(u32 speed);
|
||||
bool8 sub_80992E0(s16 *param_1, s16 *param_2);
|
||||
bool8 sub_8099328(u8 *);
|
||||
|
||||
extern GroundConversionStruct gGroundConversion_811BAF4[10];
|
||||
|
||||
#endif // GUARD_GROUND_MAIN_H
|
||||
|
||||
18
include/ground_map_conversion_table.h
Normal file
18
include/ground_map_conversion_table.h
Normal file
@@ -0,0 +1,18 @@
|
||||
#ifndef GUARD_GROUND_MAP_CONVERSION_TABLE_H
|
||||
#define GUARD_GROUND_MAP_CONVERSION_TABLE_H
|
||||
|
||||
#include "constants/ground_map.h"
|
||||
|
||||
// size: 0xC
|
||||
typedef struct GroundConversionStruct
|
||||
{
|
||||
s16 unk0;
|
||||
s16 groundPlaceId;
|
||||
s16 mapFileTableId;
|
||||
s16 unk6;
|
||||
/* 0x8 */ const u8 *text;
|
||||
} GroundConversionStruct;
|
||||
|
||||
extern const GroundConversionStruct gGroundMapConversionTable[MAP_COUNT + 1];
|
||||
|
||||
#endif // GUARD_GROUND_MAP_CONVERSION_TABLE_H
|
||||
@@ -1,6 +1,49 @@
|
||||
#ifndef GUARD_GROUND_PLACE_H
|
||||
#define GUARD_GROUND_PLACE_H
|
||||
|
||||
// Duplicate entries are most likely outdoors vs indoors. To verify which are which
|
||||
enum GroundPlace {
|
||||
GROUND_PLACE_SQUARE,
|
||||
GROUND_PLACE_SQUARE_2,
|
||||
GROUND_PLACE_POKEMON_SQUARE,
|
||||
GROUND_PLACE_WHISCASH_POND,
|
||||
GROUND_PLACE_PELIPPER_POST_OFFICE,
|
||||
GROUND_PLACE_PELIPPER_POST_OFFICE_INSIDE,
|
||||
GROUND_PLACE_MAKUHITA_DOJO,
|
||||
GROUND_PLACE_MAKUHITA_DOJO_INSIDE, // unused
|
||||
GROUND_PLACE_LUMINOUS_CAVE,
|
||||
GROUND_PLACE_FRIEND_AREAS,
|
||||
GROUND_PLACE_TEAM_BASE,
|
||||
GROUND_PLACE_TEAM_BASE_INSIDE,
|
||||
GROUND_PLACE_DUNGEON,
|
||||
GROUND_PLACE_TINY_WOODS,
|
||||
GROUND_PLACE_THUNDERWAVE_CAVE,
|
||||
GROUND_PLACE_MT_STEEL,
|
||||
GROUND_PLACE_SINISTER_WOODS,
|
||||
GROUND_PLACE_SILENT_CHASM,
|
||||
GROUND_PLACE_MT_THUNDER,
|
||||
GROUND_PLACE_MT_THUNDER_MID,
|
||||
GROUND_PLACE_GREAT_CANYON,
|
||||
GROUND_PLACE_HILL_OF_THE_ANCIENTS,
|
||||
GROUND_PLACE_LAPIS_CAVE,
|
||||
GROUND_PLACE_LAPIS_CAVE_EXIT,
|
||||
GROUND_PLACE_MT_BLAZE,
|
||||
GROUND_PLACE_MT_BLAZE_MID,
|
||||
GROUND_PLACE_FROSTY_FOREST,
|
||||
GROUND_PLACE_FROSTY_CLEARING,
|
||||
GROUND_PLACE_MT_FREEZE,
|
||||
GROUND_PLACE_MT_FREEZE_MID,
|
||||
GROUND_PLACE_MAGMA_CAVERN,
|
||||
GROUND_PLACE_MAGMA_CAVERN_MID,
|
||||
GROUND_PLACE_SKY_TOWER,
|
||||
GROUND_PLACE_SKY_TOWER_MID,
|
||||
GROUND_PLACE_WESTERN_CAVE,
|
||||
GROUND_PLACE_DIRECTION, // Similarly to GROUND_PLACE_SCENE, used in the conversion table for bgs which are not maps.
|
||||
GROUND_PLACE_NEW_GAME,
|
||||
GROUND_PLACE_SCENE, // For all maps that aren't really maps, for example warning screen, personality test background, etc.
|
||||
GROUND_PLACE_INVALIDITY, // Probably marks the last entry, not used in-game.
|
||||
};
|
||||
|
||||
const u8 *GetGroundPlaceName(s16 id);
|
||||
|
||||
#endif // GUARD_GROUND_PLACE_H
|
||||
|
||||
@@ -4,12 +4,13 @@
|
||||
// size: 0x1C
|
||||
struct unkStruct_81188F0
|
||||
{
|
||||
/* 0x0 */ const u8 *text1;
|
||||
/* 0x4 */ const u8 *text2;
|
||||
/* 0x8 */ const u8 *text3;
|
||||
/* 0xC */ const u8 *text4[2];
|
||||
/* 0x14 */ u32 unk2;
|
||||
/* 0x18 */ u32 unk3;
|
||||
/* 0x0 */ const u8 *fileName1;
|
||||
/* 0x4 */ const u8 *fileName2;
|
||||
/* 0x8 */ const u8 *fileName3;
|
||||
/* 0xC */ const u8 *fileName4[2];
|
||||
// Unused, always NULL
|
||||
/* 0x14 */ const u8 *unusedFileName5;
|
||||
/* 0x18 */ const u8 *unusedFileName6;
|
||||
};
|
||||
|
||||
extern const struct unkStruct_81188F0 gUnknown_81188F0[];
|
||||
|
||||
Reference in New Issue
Block a user