summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/field/landmark.c366
1 files changed, 355 insertions, 11 deletions
diff --git a/src/field/landmark.c b/src/field/landmark.c
index 6a53716bb..1b7805e96 100644
--- a/src/field/landmark.c
+++ b/src/field/landmark.c
@@ -1,12 +1,11 @@
#include "global.h"
#include "landmark.h"
#include "event_data.h"
-
-#define MAPSEC_NONE 0x58
+#include "region_map_sections.h"
struct Landmark
{
- u8 *name;
+ const u8 *name;
u16 flag;
};
@@ -14,16 +13,361 @@ struct LandmarkList
{
u8 mapSection;
u8 id;
- const struct Landmark **landmarks;
+ const struct Landmark *const *landmarks;
+};
+
+extern const u8 gLandmarkName_FlowerShop[];
+extern const u8 gLandmarkName_PetalburgWoods[];
+extern const u8 gLandmarkName_MrBrineysCottage[];
+extern const u8 gLandmarkName_AbandonedShip[];
+extern const u8 gLandmarkName_SeashoreHouse[];
+extern const u8 gLandmarkName_SlateportBeach[];
+extern const u8 gLandmarkName_CyclingRoad[];
+extern const u8 gLandmarkName_NewMauville[];
+extern const u8 gLandmarkName_TrickHouse[];
+extern const u8 gLandmarkName_OldLadysRestShop[];
+extern const u8 gLandmarkName_Desert[];
+extern const u8 gLandmarkName_WinstrateFamily[];
+extern const u8 gLandmarkName_CableCar[];
+extern const u8 gLandmarkName_GlassWorkshop[];
+extern const u8 gLandmarkName_WeatherInstitute[];
+extern const u8 gLandmarkName_MeteorFalls[];
+extern const u8 gLandmarkName_TunnelersRestHouse[];
+extern const u8 gLandmarkName_RusturfTunnel[];
+extern const u8 gLandmarkName_PokemonDayCare[];
+extern const u8 gLandmarkName_SafariZoneEntrance[];
+extern const u8 gLandmarkName_MtPyre[];
+extern const u8 gLandmarkName_ShoalCave[];
+extern const u8 gLandmarkName_SeafloorCavern[];
+extern const u8 gLandmarkName_GraniteCave[];
+extern const u8 gLandmarkName_OceanCurrent[];
+extern const u8 gLandmarkName_LanettesHouse[];
+extern const u8 gLandmarkName_FieryPath[];
+extern const u8 gLandmarkName_JaggedPass[];
+extern const u8 gLandmarkName_BerryMastersHouse[];
+extern const u8 gLandmarkName_IslandCave[];
+extern const u8 gLandmarkName_DesertRuins[];
+extern const u8 gLandmarkName_ScorchedSlab[];
+extern const u8 gLandmarkName_AncientTomb[];
+extern const u8 gLandmarkName_SealedChamber[];
+extern const u8 gLandmarkName_FossilManiacsHouse[];
+extern const u8 gLandmarkName_HuntersHouse[];
+extern const u8 gLandmarkName_SkyPillar[];
+
+static const struct Landmark Landmark_FlowerShop = {gLandmarkName_FlowerShop, 2108};
+static const struct Landmark Landmark_PetalburgWoods = {gLandmarkName_PetalburgWoods, -1};
+static const struct Landmark Landmark_MrBrineysCottage = {gLandmarkName_MrBrineysCottage, 2109};
+static const struct Landmark Landmark_AbandonedShip = {gLandmarkName_AbandonedShip, 2110};
+static const struct Landmark Landmark_SeashoreHouse = {gLandmarkName_SeashoreHouse, 2111};
+static const struct Landmark Landmark_SlateportBeach = {gLandmarkName_SlateportBeach, -1};
+static const struct Landmark Landmark_CyclingRoad = {gLandmarkName_CyclingRoad, -1};
+static const struct Landmark Landmark_NewMauville = {gLandmarkName_NewMauville, 2112};
+static const struct Landmark Landmark_TrickHouse = {gLandmarkName_TrickHouse, 2114};
+static const struct Landmark Landmark_OldLadysRestShop = {gLandmarkName_OldLadysRestShop, 2113};
+static const struct Landmark Landmark_Desert = {gLandmarkName_Desert, -1};
+static const struct Landmark Landmark_WinstrateFamily = {gLandmarkName_WinstrateFamily, 2115};
+static const struct Landmark Landmark_CableCar = {gLandmarkName_CableCar, -1};
+static const struct Landmark Landmark_GlassWorkshop = {gLandmarkName_GlassWorkshop, 2116};
+static const struct Landmark Landmark_WeatherInstitute = {gLandmarkName_WeatherInstitute, -1};
+static const struct Landmark Landmark_MeteorFalls = {gLandmarkName_MeteorFalls, -1};
+static const struct Landmark Landmark_TunnelersRestHouse = {gLandmarkName_TunnelersRestHouse, 2138};
+static const struct Landmark Landmark_RusturfTunnel = {gLandmarkName_RusturfTunnel, -1};
+static const struct Landmark Landmark_PokemonDayCare = {gLandmarkName_PokemonDayCare, 2118};
+static const struct Landmark Landmark_SafariZoneEntrance = {gLandmarkName_SafariZoneEntrance, -1};
+static const struct Landmark Landmark_MtPyre = {gLandmarkName_MtPyre, -1};
+static const struct Landmark Landmark_ShoalCave = {gLandmarkName_ShoalCave, -1};
+static const struct Landmark Landmark_SeafloorCavern = {gLandmarkName_SeafloorCavern, 2119};
+static const struct Landmark Landmark_GraniteCave = {gLandmarkName_GraniteCave, -1};
+static const struct Landmark Landmark_OceanCurrent = {gLandmarkName_OceanCurrent, -1};
+static const struct Landmark Landmark_LanettesHouse = {gLandmarkName_LanettesHouse, 2117};
+static const struct Landmark Landmark_FieryPath = {gLandmarkName_FieryPath, 2122};
+static const struct Landmark Landmark_JaggedPass = {gLandmarkName_JaggedPass, -1};
+static const struct Landmark Landmark_BerryMastersHouse = {gLandmarkName_BerryMastersHouse, 2147};
+static const struct Landmark Landmark_IslandCave = {gLandmarkName_IslandCave, 2133};
+static const struct Landmark Landmark_DesertRuins = {gLandmarkName_DesertRuins, 2134};
+static const struct Landmark Landmark_ScorchedSlab = {gLandmarkName_ScorchedSlab, 2136};
+static const struct Landmark Landmark_AncientTomb = {gLandmarkName_AncientTomb, 2137};
+static const struct Landmark Landmark_SealedChamber = {gLandmarkName_SealedChamber, 2140};
+static const struct Landmark Landmark_FossilManiacsHouse = {gLandmarkName_FossilManiacsHouse, 2135};
+static const struct Landmark Landmark_HuntersHouse = {gLandmarkName_HuntersHouse, 2139};
+static const struct Landmark Landmark_SkyPillar = {gLandmarkName_SkyPillar, 2142};
+
+static const struct Landmark *const Landmarks_Route104_0[] =
+{
+ &Landmark_FlowerShop,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route104_1[] =
+{
+ &Landmark_PetalburgWoods,
+ &Landmark_MrBrineysCottage,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route105_0[] =
+{
+ &Landmark_IslandCave,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route106_1[] =
+{
+ &Landmark_GraniteCave,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route108_0[] =
+{
+ &Landmark_AbandonedShip,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route109_0[] =
+{
+ &Landmark_SeashoreHouse,
+ &Landmark_SlateportBeach,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route110_0[] =
+{
+ &Landmark_CyclingRoad,
+ &Landmark_NewMauville,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route110_1[] =
+{
+ &Landmark_CyclingRoad,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route110_2[] =
+{
+ &Landmark_CyclingRoad,
+ &Landmark_TrickHouse,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route111_0[] =
+{
+ &Landmark_OldLadysRestShop,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route111_1[] =
+{
+ &Landmark_Desert,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route111_3[] =
+{
+ &Landmark_DesertRuins,
+ &Landmark_Desert,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route111_4[] =
+{
+ &Landmark_WinstrateFamily,
+ &Landmark_Desert,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route112_0[] =
+{
+ &Landmark_FieryPath,
+ &Landmark_JaggedPass,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route112_1[] =
+{
+ &Landmark_CableCar,
+ &Landmark_FieryPath,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route113_1[] =
+{
+ &Landmark_GlassWorkshop,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route114_1[] =
+{
+ &Landmark_FossilManiacsHouse,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route114_2[] =
+{
+ &Landmark_LanettesHouse,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_MeteorFalls[] =
+{
+ &Landmark_MeteorFalls,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route116_1[] =
+{
+ &Landmark_TunnelersRestHouse,
+ &Landmark_RusturfTunnel,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route116_2[] =
+{
+ &Landmark_RusturfTunnel,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route117_2[] =
+{
+ &Landmark_PokemonDayCare,
+ NULL,
};
-extern const struct LandmarkList gLandmarkLists[];
+static const struct Landmark *const Landmarks_Route119_1[] =
+{
+ &Landmark_WeatherInstitute,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route120_0[] =
+{
+ &Landmark_ScorchedSlab,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route120_2[] =
+{
+ &Landmark_AncientTomb,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route121_2[] =
+{
+ &Landmark_SafariZoneEntrance,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route122_0[] =
+{
+ &Landmark_MtPyre,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route123_0[] =
+{
+ &Landmark_BerryMastersHouse,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route124_7[] =
+{
+ &Landmark_HuntersHouse,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route125_2[] =
+{
+ &Landmark_ShoalCave,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route128_1[] =
+{
+ &Landmark_SeafloorCavern,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route131_1[] =
+{
+ &Landmark_SkyPillar,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_OceanCurrent[] =
+{
+ &Landmark_OceanCurrent,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_Route134_2[] =
+{
+ &Landmark_SealedChamber,
+ &Landmark_OceanCurrent,
+ NULL,
+};
+
+static const struct Landmark *const Landmarks_MtChimney_2[] =
+{
+ &Landmark_CableCar,
+ &Landmark_JaggedPass,
+ NULL,
+};
+
+static const struct LandmarkList gLandmarkLists[] =
+{
+ {MAPSEC_Route104, 0, Landmarks_Route104_0},
+ {MAPSEC_Route104, 1, Landmarks_Route104_1},
+ {MAPSEC_Route105, 0, Landmarks_Route105_0},
+ {MAPSEC_Route106, 1, Landmarks_Route106_1},
+ {MAPSEC_Route108, 0, Landmarks_Route108_0},
+ {MAPSEC_Route109, 0, Landmarks_Route109_0},
+ {MAPSEC_Route110, 0, Landmarks_Route110_0},
+ {MAPSEC_Route110, 1, Landmarks_Route110_1},
+ {MAPSEC_Route110, 2, Landmarks_Route110_2},
+ {MAPSEC_Route111, 0, Landmarks_Route111_0},
+ {MAPSEC_Route111, 1, Landmarks_Route111_1},
+ {MAPSEC_Route111, 2, Landmarks_Route111_1},
+ {MAPSEC_Route111, 3, Landmarks_Route111_3},
+ {MAPSEC_Route111, 4, Landmarks_Route111_4},
+ {MAPSEC_Route112, 0, Landmarks_Route112_0},
+ {MAPSEC_Route112, 1, Landmarks_Route112_1},
+ {MAPSEC_Route113, 1, Landmarks_Route113_1},
+ {MAPSEC_Route114, 1, Landmarks_Route114_1},
+ {MAPSEC_Route114, 2, Landmarks_Route114_2},
+ {MAPSEC_Route114, 3, Landmarks_MeteorFalls},
+ {MAPSEC_Route115, 0, Landmarks_MeteorFalls},
+ {MAPSEC_Route115, 1, Landmarks_MeteorFalls},
+ {MAPSEC_Route116, 1, Landmarks_Route116_1},
+ {MAPSEC_Route116, 2, Landmarks_Route116_2},
+ {MAPSEC_Route117, 2, Landmarks_Route117_2},
+ {MAPSEC_Route119, 1, Landmarks_Route119_1},
+ {MAPSEC_Route120, 0, Landmarks_Route120_0},
+ {MAPSEC_Route120, 2, Landmarks_Route120_2},
+ {MAPSEC_Route121, 2, Landmarks_Route121_2},
+ {MAPSEC_Route122, 0, Landmarks_Route122_0},
+ {MAPSEC_Route123, 0, Landmarks_Route123_0},
+ {MAPSEC_Route122, 1, Landmarks_Route122_0},
+ {MAPSEC_Route124, 7, Landmarks_Route124_7},
+ {MAPSEC_Route125, 2, Landmarks_Route125_2},
+ {MAPSEC_Route128, 1, Landmarks_Route128_1},
+ {MAPSEC_Route131, 1, Landmarks_Route131_1},
+ {MAPSEC_Route132, 0, Landmarks_OceanCurrent},
+ {MAPSEC_Route132, 1, Landmarks_OceanCurrent},
+ {MAPSEC_Route133, 0, Landmarks_OceanCurrent},
+ {MAPSEC_Route133, 1, Landmarks_OceanCurrent},
+ {MAPSEC_Route133, 2, Landmarks_OceanCurrent},
+ {MAPSEC_Route134, 0, Landmarks_OceanCurrent},
+ {MAPSEC_Route134, 1, Landmarks_OceanCurrent},
+ {MAPSEC_Route134, 2, Landmarks_Route134_2},
+ {MAPSEC_MtChimney, 2, Landmarks_MtChimney_2},
+ {MAPSEC_Nothing, 0, NULL},
+};
-static const struct Landmark **GetLandmarks(u8 mapSection, u8 id);
+static const struct Landmark *const *GetLandmarks(u8 mapSection, u8 id);
-u8 *GetLandmarkName(u8 mapSection, u8 id, u8 count)
+const u8 *GetLandmarkName(u8 mapSection, u8 id, u8 count)
{
- const struct Landmark **landmarks = GetLandmarks(mapSection, id);
+ const struct Landmark *const *landmarks = GetLandmarks(mapSection, id);
if (!landmarks)
return NULL;
@@ -48,11 +392,11 @@ u8 *GetLandmarkName(u8 mapSection, u8 id, u8 count)
return (*landmarks)->name;
}
-static const struct Landmark **GetLandmarks(u8 mapSection, u8 id)
+static const struct Landmark *const *GetLandmarks(u8 mapSection, u8 id)
{
u16 i = 0;
- for (; gLandmarkLists[i].mapSection != MAPSEC_NONE; i++)
+ for (; gLandmarkLists[i].mapSection != MAPSEC_Nothing; i++)
{
if (gLandmarkLists[i].mapSection > mapSection)
return NULL;
@@ -60,7 +404,7 @@ static const struct Landmark **GetLandmarks(u8 mapSection, u8 id)
break;
}
- if (gLandmarkLists[i].mapSection == MAPSEC_NONE)
+ if (gLandmarkLists[i].mapSection == MAPSEC_Nothing)
return NULL;
for (; gLandmarkLists[i].mapSection == mapSection; i++)