summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/berry.c16
-rw-r--r--src/bike.c2
-rw-r--r--src/data/heal_locations.h44
-rwxr-xr-xsrc/data/object_events/object_event_graphics_info.h6
-rwxr-xr-xsrc/data/object_events/object_event_subsprites.h83
-rw-r--r--src/data/pokemon/base_stats.h2
-rw-r--r--src/event_object_movement.c11
-rw-r--r--src/field_player_avatar.c3
-rw-r--r--src/fldeff_dig.c2
-rw-r--r--src/fldeff_flash.c4
-rw-r--r--src/graphics.c20
-rw-r--r--src/heal_location.c1
-rwxr-xr-xsrc/item_use.c6
-rw-r--r--src/librfu_rfu.c57
-rw-r--r--src/overworld.c2
-rw-r--r--src/pokedex.c298
-rw-r--r--src/region_map.c10
-rw-r--r--src/trainer_hill.c3
-rw-r--r--src/trainer_see.c19
19 files changed, 303 insertions, 286 deletions
diff --git a/src/berry.c b/src/berry.c
index 7a8ab37fa..fe4a66af6 100644
--- a/src/berry.c
+++ b/src/berry.c
@@ -1200,6 +1200,15 @@ static u8 GetNumStagesWateredByBerryTreeId(u8 id)
return BerryTreeGetNumStagesWatered(GetBerryTreeInfo(id));
}
+// Berries can be watered at 4 stages of growth. This function is likely meant
+// to divide the berry yield range equally into quartiles. If you watered the
+// tree n times, your yield is a random number in the nth quartile.
+//
+// However, this function actually skews towards higher berry yields, because
+// it rounds `extraYield` to the nearest whole number.
+//
+// See resulting yields: https://gist.github.com/hondew/2a099dbe54aa91414decdbfaa524327d,
+// and bug fix: https://gist.github.com/hondew/0f0164e5b9dadfd72d24f30f2c049a0b.
static u8 CalcBerryYieldInternal(u16 max, u16 min, u8 water)
{
u32 randMin;
@@ -1215,10 +1224,11 @@ static u8 CalcBerryYieldInternal(u16 max, u16 min, u8 water)
randMax = (max - min) * (water);
rand = randMin + Random() % (randMax - randMin + 1);
- if ((rand & 3) > 1)
- extraYield = rand / 4 + 1;
+ // Round upwards
+ if ((rand % NUM_WATER_STAGES) >= NUM_WATER_STAGES / 2)
+ extraYield = rand / NUM_WATER_STAGES + 1;
else
- extraYield = rand / 4;
+ extraYield = rand / NUM_WATER_STAGES;
return extraYield + min;
}
}
diff --git a/src/bike.c b/src/bike.c
index e66d6b6e1..cd24d2487 100644
--- a/src/bike.c
+++ b/src/bike.c
@@ -1056,7 +1056,7 @@ void Bike_HandleBumpySlopeJump(void)
bool32 IsRunningDisallowed(u8 metatile)
{
- if (!(gMapHeader.flags & MAP_ALLOW_RUN) || IsRunningDisallowedByMetatile(metatile) == TRUE)
+ if (!(gMapHeader.flags & MAP_ALLOW_RUNNING) || IsRunningDisallowedByMetatile(metatile) == TRUE)
return TRUE;
else
return FALSE;
diff --git a/src/data/heal_locations.h b/src/data/heal_locations.h
index 613bcebe8..04530a1db 100644
--- a/src/data/heal_locations.h
+++ b/src/data/heal_locations.h
@@ -1,25 +1,25 @@
static const struct HealLocation sHealLocations[] =
{
- {MAP_GROUP(LITTLEROOT_TOWN_BRENDANS_HOUSE_2F), MAP_NUM(LITTLEROOT_TOWN_BRENDANS_HOUSE_2F), 4, 2},
- {MAP_GROUP(LITTLEROOT_TOWN_MAYS_HOUSE_2F), MAP_NUM(LITTLEROOT_TOWN_MAYS_HOUSE_2F), 4, 2},
- {MAP_GROUP(PETALBURG_CITY), MAP_NUM(PETALBURG_CITY), 20, 17},
- {MAP_GROUP(SLATEPORT_CITY), MAP_NUM(SLATEPORT_CITY), 19, 20},
- {MAP_GROUP(MAUVILLE_CITY), MAP_NUM(MAUVILLE_CITY), 22, 6},
- {MAP_GROUP(RUSTBORO_CITY), MAP_NUM(RUSTBORO_CITY), 16, 39},
- {MAP_GROUP(FORTREE_CITY), MAP_NUM(FORTREE_CITY), 5, 7},
- {MAP_GROUP(LILYCOVE_CITY), MAP_NUM(LILYCOVE_CITY), 24, 15},
- {MAP_GROUP(MOSSDEEP_CITY), MAP_NUM(MOSSDEEP_CITY), 28, 17},
- {MAP_GROUP(SOOTOPOLIS_CITY), MAP_NUM(SOOTOPOLIS_CITY), 43, 32},
- {MAP_GROUP(EVER_GRANDE_CITY), MAP_NUM(EVER_GRANDE_CITY), 27, 49},
- {MAP_GROUP(LITTLEROOT_TOWN), MAP_NUM(LITTLEROOT_TOWN), 5, 9},
- {MAP_GROUP(LITTLEROOT_TOWN), MAP_NUM(LITTLEROOT_TOWN), 14, 9},
- {MAP_GROUP(OLDALE_TOWN), MAP_NUM(OLDALE_TOWN), 6, 17},
- {MAP_GROUP(DEWFORD_TOWN), MAP_NUM(DEWFORD_TOWN), 2, 11},
- {MAP_GROUP(LAVARIDGE_TOWN), MAP_NUM(LAVARIDGE_TOWN), 9, 7},
- {MAP_GROUP(FALLARBOR_TOWN), MAP_NUM(FALLARBOR_TOWN), 14, 8},
- {MAP_GROUP(VERDANTURF_TOWN), MAP_NUM(VERDANTURF_TOWN), 16, 4},
- {MAP_GROUP(PACIFIDLOG_TOWN), MAP_NUM(PACIFIDLOG_TOWN), 8, 16},
- {MAP_GROUP(EVER_GRANDE_CITY), MAP_NUM(EVER_GRANDE_CITY), 18, 6},
- {MAP_GROUP(SOUTHERN_ISLAND_EXTERIOR), MAP_NUM(SOUTHERN_ISLAND_EXTERIOR), 15, 20},
- {MAP_GROUP(BATTLE_FRONTIER_OUTSIDE_EAST), MAP_NUM(BATTLE_FRONTIER_OUTSIDE_EAST), 3, 52},
+ [HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F - 1] = {MAP_GROUP(LITTLEROOT_TOWN_BRENDANS_HOUSE_2F), MAP_NUM(LITTLEROOT_TOWN_BRENDANS_HOUSE_2F), 4, 2},
+ [HEAL_LOCATION_LITTLEROOT_TOWN_MAYS_HOUSE_2F - 1] = {MAP_GROUP(LITTLEROOT_TOWN_MAYS_HOUSE_2F), MAP_NUM(LITTLEROOT_TOWN_MAYS_HOUSE_2F), 4, 2},
+ [HEAL_LOCATION_PETALBURG_CITY - 1] = {MAP_GROUP(PETALBURG_CITY), MAP_NUM(PETALBURG_CITY), 20, 17},
+ [HEAL_LOCATION_SLATEPORT_CITY - 1] = {MAP_GROUP(SLATEPORT_CITY), MAP_NUM(SLATEPORT_CITY), 19, 20},
+ [HEAL_LOCATION_MAUVILLE_CITY - 1] = {MAP_GROUP(MAUVILLE_CITY), MAP_NUM(MAUVILLE_CITY), 22, 6},
+ [HEAL_LOCATION_RUSTBORO_CITY - 1] = {MAP_GROUP(RUSTBORO_CITY), MAP_NUM(RUSTBORO_CITY), 16, 39},
+ [HEAL_LOCATION_FORTREE_CITY - 1] = {MAP_GROUP(FORTREE_CITY), MAP_NUM(FORTREE_CITY), 5, 7},
+ [HEAL_LOCATION_LILYCOVE_CITY - 1] = {MAP_GROUP(LILYCOVE_CITY), MAP_NUM(LILYCOVE_CITY), 24, 15},
+ [HEAL_LOCATION_MOSSDEEP_CITY - 1] = {MAP_GROUP(MOSSDEEP_CITY), MAP_NUM(MOSSDEEP_CITY), 28, 17},
+ [HEAL_LOCATION_SOOTOPOLIS_CITY - 1] = {MAP_GROUP(SOOTOPOLIS_CITY), MAP_NUM(SOOTOPOLIS_CITY), 43, 32},
+ [HEAL_LOCATION_EVER_GRANDE_CITY - 1] = {MAP_GROUP(EVER_GRANDE_CITY), MAP_NUM(EVER_GRANDE_CITY), 27, 49},
+ [HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE - 1] = {MAP_GROUP(LITTLEROOT_TOWN), MAP_NUM(LITTLEROOT_TOWN), 5, 9},
+ [HEAL_LOCATION_LITTLEROOT_TOWN_MAYS_HOUSE - 1] = {MAP_GROUP(LITTLEROOT_TOWN), MAP_NUM(LITTLEROOT_TOWN), 14, 9},
+ [HEAL_LOCATION_OLDALE_TOWN - 1] = {MAP_GROUP(OLDALE_TOWN), MAP_NUM(OLDALE_TOWN), 6, 17},
+ [HEAL_LOCATION_DEWFORD_TOWN - 1] = {MAP_GROUP(DEWFORD_TOWN), MAP_NUM(DEWFORD_TOWN), 2, 11},
+ [HEAL_LOCATION_LAVARIDGE_TOWN - 1] = {MAP_GROUP(LAVARIDGE_TOWN), MAP_NUM(LAVARIDGE_TOWN), 9, 7},
+ [HEAL_LOCATION_FALLARBOR_TOWN - 1] = {MAP_GROUP(FALLARBOR_TOWN), MAP_NUM(FALLARBOR_TOWN), 14, 8},
+ [HEAL_LOCATION_VERDANTURF_TOWN - 1] = {MAP_GROUP(VERDANTURF_TOWN), MAP_NUM(VERDANTURF_TOWN), 16, 4},
+ [HEAL_LOCATION_PACIFIDLOG_TOWN - 1] = {MAP_GROUP(PACIFIDLOG_TOWN), MAP_NUM(PACIFIDLOG_TOWN), 8, 16},
+ [HEAL_LOCATION_EVER_GRANDE_CITY_POKEMON_LEAGUE - 1] = {MAP_GROUP(EVER_GRANDE_CITY), MAP_NUM(EVER_GRANDE_CITY), 18, 6},
+ [HEAL_LOCATION_SOUTHERN_ISLAND_EXTERIOR - 1] = {MAP_GROUP(SOUTHERN_ISLAND_EXTERIOR), MAP_NUM(SOUTHERN_ISLAND_EXTERIOR), 15, 20},
+ [HEAL_LOCATION_BATTLE_FRONTIER_OUTSIDE_EAST - 1] = {MAP_GROUP(BATTLE_FRONTIER_OUTSIDE_EAST), MAP_NUM(BATTLE_FRONTIER_OUTSIDE_EAST), 3, 52},
};
diff --git a/src/data/object_events/object_event_graphics_info.h b/src/data/object_events/object_event_graphics_info.h
index cb221a30b..bb36c9436 100755
--- a/src/data/object_events/object_event_graphics_info.h
+++ b/src/data/object_events/object_event_graphics_info.h
@@ -92,7 +92,7 @@ const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayMachBike = {0xF
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayAcroBike = {0xFFFF, OBJ_EVENT_PAL_TAG_17, OBJ_EVENT_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_AcroBike, gObjectEventPicTable_MayAcroBike, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MaySurfing = {0xFFFF, OBJ_EVENT_PAL_TAG_17, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Surfing, gObjectEventPicTable_MaySurfing, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayFieldMove = {0xFFFF, OBJ_EVENT_PAL_TAG_17, OBJ_EVENT_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_FieldMove, gObjectEventPicTable_MayFieldMove, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Truck = {0xFFFF, OBJ_EVENT_PAL_TAG_14, OBJ_EVENT_PAL_TAG_NONE, 1152, 48, 48, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_Truck, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_Truck, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Truck = {0xFFFF, OBJ_EVENT_PAL_TAG_14, OBJ_EVENT_PAL_TAG_NONE, 1152, 48, 48, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_48x48, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_Truck, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_VigorothCarryingBox = {0xFFFF, OBJ_EVENT_PAL_TAG_15, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_VigorothCarryingBox, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_VigorothFacingAway = {0xFFFF, OBJ_EVENT_PAL_TAG_15, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_VigorothFacingAway, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BirchsBag = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BirchsBag, gDummySpriteAffineAnimTable};
@@ -139,8 +139,8 @@ const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RubySapphireLittle
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanFishing = {0xFFFF, OBJ_EVENT_PAL_TAG_8, OBJ_EVENT_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Fishing, gObjectEventPicTable_BrendanFishing, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayFishing = {0xFFFF, OBJ_EVENT_PAL_TAG_17, OBJ_EVENT_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Fishing, gObjectEventPicTable_MayFishing, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_HotSpringsOldWoman = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_HotSpringsOldWoman, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SSTidal = {0xFFFF, OBJ_EVENT_PAL_TAG_21, OBJ_EVENT_PAL_TAG_NONE, 1920, 96, 40, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_8x8, gObjectEventSpriteOamTables_SSTidal, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SSTidal, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SubmarineShadow = {0xFFFF, OBJ_EVENT_PAL_TAG_26, OBJ_EVENT_PAL_TAG_NONE, 1408, 88, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_8x8, gObjectEventSpriteOamTables_SubmarineShadow, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SubmarineShadow, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SSTidal = {0xFFFF, OBJ_EVENT_PAL_TAG_21, OBJ_EVENT_PAL_TAG_NONE, 1920, 96, 40, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_8x8, gObjectEventSpriteOamTables_96x40, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SSTidal, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SubmarineShadow = {0xFFFF, OBJ_EVENT_PAL_TAG_26, OBJ_EVENT_PAL_TAG_NONE, 1408, 88, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_8x8, gObjectEventSpriteOamTables_88x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SubmarineShadow, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PichuDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_PichuDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PikachuDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_PikachuDoll, gDummySpriteAffineAnimTable};
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MarillDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_MarillDoll, gDummySpriteAffineAnimTable};
diff --git a/src/data/object_events/object_event_subsprites.h b/src/data/object_events/object_event_subsprites.h
index 79e75f1e1..63df1f777 100755
--- a/src/data/object_events/object_event_subsprites.h
+++ b/src/data/object_events/object_event_subsprites.h
@@ -278,7 +278,7 @@ const struct SubspriteTable gObjectEventSpriteOamTables_32x32[] = {
{2, gObjectEventSpriteOamTable_32x32_4}
};
-const struct Subsprite gObjectEventSpriteOamTable_Truck_0[] = {
+const struct Subsprite gObjectEventSpriteOamTable_48x48[] = {
{
.x = -24,
.y = -24,
@@ -377,16 +377,16 @@ const struct Subsprite gObjectEventSpriteOamTable_Truck_0[] = {
}
};
-const struct SubspriteTable gObjectEventSpriteOamTables_Truck[] = {
- {12, gObjectEventSpriteOamTable_Truck_0},
- {12, gObjectEventSpriteOamTable_Truck_0},
- {12, gObjectEventSpriteOamTable_Truck_0},
- {12, gObjectEventSpriteOamTable_Truck_0},
- {12, gObjectEventSpriteOamTable_Truck_0},
- {12, gObjectEventSpriteOamTable_Truck_0}
+const struct SubspriteTable gObjectEventSpriteOamTables_48x48[] = {
+ {12, gObjectEventSpriteOamTable_48x48},
+ {12, gObjectEventSpriteOamTable_48x48},
+ {12, gObjectEventSpriteOamTable_48x48},
+ {12, gObjectEventSpriteOamTable_48x48},
+ {12, gObjectEventSpriteOamTable_48x48},
+ {12, gObjectEventSpriteOamTable_48x48}
};
-const struct Subsprite gObjectEventSpriteOamTable_Unused_0[] = {
+const struct Subsprite gObjectEventSpriteOamTable_64x32_0[] = {
{
.x = -32,
.y = -16,
@@ -397,7 +397,7 @@ const struct Subsprite gObjectEventSpriteOamTable_Unused_0[] = {
}
};
-const struct Subsprite gObjectEventSpriteOamTable_Unused_1[] = {
+const struct Subsprite gObjectEventSpriteOamTable_64x32_1[] = {
{
.x = -32,
.y = -16,
@@ -408,7 +408,7 @@ const struct Subsprite gObjectEventSpriteOamTable_Unused_1[] = {
}
};
-const struct Subsprite gObjectEventSpriteOamTable_Unused_2[] = {
+const struct Subsprite gObjectEventSpriteOamTable_64x32_2[] = {
{
.x = -32,
.y = -16,
@@ -419,7 +419,7 @@ const struct Subsprite gObjectEventSpriteOamTable_Unused_2[] = {
}
};
-const struct Subsprite gObjectEventSpriteOamTable_Unused_3[] = {
+const struct Subsprite gObjectEventSpriteOamTable_64x32_3[] = {
{
.x = -32,
.y = -16,
@@ -430,13 +430,14 @@ const struct Subsprite gObjectEventSpriteOamTable_Unused_3[] = {
}
};
-const struct SubspriteTable gObjectEventSpriteOamTables_Unused[] = {
+// Unused
+const struct SubspriteTable gObjectEventSpriteOamTables_64x32[] = {
{0, NULL},
- {1, gObjectEventSpriteOamTable_Unused_0},
- {1, gObjectEventSpriteOamTable_Unused_1},
- {1, gObjectEventSpriteOamTable_Unused_2},
- {1, gObjectEventSpriteOamTable_Unused_3},
- {1, gObjectEventSpriteOamTable_Unused_3}
+ {1, gObjectEventSpriteOamTable_64x32_0},
+ {1, gObjectEventSpriteOamTable_64x32_1},
+ {1, gObjectEventSpriteOamTable_64x32_2},
+ {1, gObjectEventSpriteOamTable_64x32_3},
+ {1, gObjectEventSpriteOamTable_64x32_3}
};
const struct Subsprite gObjectEventSpriteOamTable_64x64_0[] = {
@@ -492,7 +493,7 @@ const struct SubspriteTable gObjectEventSpriteOamTables_64x64[] = {
{1, gObjectEventSpriteOamTable_64x64_3}
};
-const struct Subsprite gObjectEventSpriteOamTable_SSTidal_0[] = {
+const struct Subsprite gObjectEventSpriteOamTable_96x40_0[] = {
{
.x = -48,
.y = -20,
@@ -615,7 +616,7 @@ const struct Subsprite gObjectEventSpriteOamTable_SSTidal_0[] = {
}
};
-const struct Subsprite gObjectEventSpriteOamTable_SSTidal_1[] = {
+const struct Subsprite gObjectEventSpriteOamTable_96x40_1[] = {
{
.x = -48,
.y = -20,
@@ -738,7 +739,7 @@ const struct Subsprite gObjectEventSpriteOamTable_SSTidal_1[] = {
}
};
-const struct Subsprite gObjectEventSpriteOamTable_SSTidal_2[] = {
+const struct Subsprite gObjectEventSpriteOamTable_96x40_2[] = {
{
.x = -48,
.y = -20,
@@ -861,7 +862,7 @@ const struct Subsprite gObjectEventSpriteOamTable_SSTidal_2[] = {
}
};
-const struct Subsprite gObjectEventSpriteOamTable_SSTidal_3[] = {
+const struct Subsprite gObjectEventSpriteOamTable_96x40_3[] = {
{
.x = -48,
.y = -20,
@@ -984,16 +985,17 @@ const struct Subsprite gObjectEventSpriteOamTable_SSTidal_3[] = {
}
};
-const struct SubspriteTable gObjectEventSpriteOamTables_SSTidal[] = {
- {15, gObjectEventSpriteOamTable_SSTidal_0},
- {15, gObjectEventSpriteOamTable_SSTidal_0},
- {15, gObjectEventSpriteOamTable_SSTidal_1},
- {15, gObjectEventSpriteOamTable_SSTidal_2},
- {15, gObjectEventSpriteOamTable_SSTidal_3},
- {15, gObjectEventSpriteOamTable_SSTidal_3}
+// Used by SS Tidal
+const struct SubspriteTable gObjectEventSpriteOamTables_96x40[] = {
+ {15, gObjectEventSpriteOamTable_96x40_0},
+ {15, gObjectEventSpriteOamTable_96x40_0},
+ {15, gObjectEventSpriteOamTable_96x40_1},
+ {15, gObjectEventSpriteOamTable_96x40_2},
+ {15, gObjectEventSpriteOamTable_96x40_3},
+ {15, gObjectEventSpriteOamTable_96x40_3}
};
-const struct Subsprite gObjectEventSpriteOamTable_SubmarineShadow_0[] = {
+const struct Subsprite gObjectEventSpriteOamTable_88x32_0[] = {
{
.x = -48,
.y = -20,
@@ -1124,7 +1126,7 @@ const struct Subsprite gObjectEventSpriteOamTable_SubmarineShadow_0[] = {
}
};
-const struct Subsprite gObjectEventSpriteOamTable_SubmarineShadow_1[] = {
+const struct Subsprite gObjectEventSpriteOamTable_88x32_1[] = {
{
.x = -48,
.y = -20,
@@ -1255,7 +1257,7 @@ const struct Subsprite gObjectEventSpriteOamTable_SubmarineShadow_1[] = {
}
};
-const struct Subsprite gObjectEventSpriteOamTable_SubmarineShadow_2[] = {
+const struct Subsprite gObjectEventSpriteOamTable_88x32_2[] = {
{
.x = -48,
.y = -20,
@@ -1386,7 +1388,7 @@ const struct Subsprite gObjectEventSpriteOamTable_SubmarineShadow_2[] = {
}
};
-const struct Subsprite gObjectEventSpriteOamTable_SubmarineShadow_3[] = {
+const struct Subsprite gObjectEventSpriteOamTable_88x32_3[] = {
{
.x = -48,
.y = -20,
@@ -1517,11 +1519,12 @@ const struct Subsprite gObjectEventSpriteOamTable_SubmarineShadow_3[] = {
}
};
-const struct SubspriteTable gObjectEventSpriteOamTables_SubmarineShadow[] = {
- {16, gObjectEventSpriteOamTable_SubmarineShadow_0},
- {16, gObjectEventSpriteOamTable_SubmarineShadow_0},
- {16, gObjectEventSpriteOamTable_SubmarineShadow_1},
- {16, gObjectEventSpriteOamTable_SubmarineShadow_2},
- {16, gObjectEventSpriteOamTable_SubmarineShadow_3},
- {16, gObjectEventSpriteOamTable_SubmarineShadow_3}
+// Used by Submarine Shadow
+const struct SubspriteTable gObjectEventSpriteOamTables_88x32[] = {
+ {16, gObjectEventSpriteOamTable_88x32_0},
+ {16, gObjectEventSpriteOamTable_88x32_0},
+ {16, gObjectEventSpriteOamTable_88x32_1},
+ {16, gObjectEventSpriteOamTable_88x32_2},
+ {16, gObjectEventSpriteOamTable_88x32_3},
+ {16, gObjectEventSpriteOamTable_88x32_3}
};
diff --git a/src/data/pokemon/base_stats.h b/src/data/pokemon/base_stats.h
index 2f493bc1b..4dedcfdc0 100644
--- a/src/data/pokemon/base_stats.h
+++ b/src/data/pokemon/base_stats.h
@@ -7,9 +7,9 @@
.baseHP = 50, \
.baseAttack = 150, \
.baseDefense = 50, \
+ .baseSpeed = 150, \
.baseSpAttack = 150, \
.baseSpDefense = 50, \
- .baseSpeed = 150, \
.type1 = TYPE_NORMAL, \
.type2 = TYPE_NORMAL, \
.catchRate = 3, \
diff --git a/src/event_object_movement.c b/src/event_object_movement.c
index 09cdd94cd..e166f8b95 100644
--- a/src/event_object_movement.c
+++ b/src/event_object_movement.c
@@ -27,6 +27,7 @@
#include "constants/field_effects.h"
#include "constants/items.h"
#include "constants/mauville_old_man.h"
+#include "constants/trainer_types.h"
// this file was known as evobjmv.c in Game Freak's original source
@@ -1454,7 +1455,7 @@ u8 SpawnSpecialObjectEventParameterized(u8 graphicsId, u8 movementBehavior, u8 l
objectEventTemplate.movementType = movementBehavior;
objectEventTemplate.movementRangeX = 0;
objectEventTemplate.movementRangeY = 0;
- objectEventTemplate.trainerType = 0;
+ objectEventTemplate.trainerType = TRAINER_TYPE_NONE;
objectEventTemplate.trainerRange_berryTreeId = 0;
return SpawnSpecialObjectEvent(&objectEventTemplate);
}
@@ -2344,7 +2345,8 @@ static u16 GetObjectEventFlagIdByObjectEventId(u8 objectEventId)
return GetObjectEventFlagIdByLocalIdAndMap(gObjectEvents[objectEventId].localId, gObjectEvents[objectEventId].mapNum, gObjectEvents[objectEventId].mapGroup);
}
-u8 sub_808F080(u8 localId, u8 mapNum, u8 mapGroup)
+// Unused
+static u8 GetObjectTrainerTypeByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup)
{
u8 objectEventId;
@@ -2355,7 +2357,8 @@ u8 sub_808F080(u8 localId, u8 mapNum, u8 mapGroup)
return gObjectEvents[objectEventId].trainerType;
}
-u8 sub_808F0BC(u8 objectEventId)
+// Unused
+static u8 GetObjectTrainerTypeByObjectEventId(u8 objectEventId)
{
return gObjectEvents[objectEventId].trainerType;
}
@@ -2604,7 +2607,7 @@ bool8 ObjectEventIsTrainerAndCloseToPlayer(struct ObjectEvent *objectEvent)
{
return FALSE;
}
- if (objectEvent->trainerType != 1 && objectEvent->trainerType != 3)
+ if (objectEvent->trainerType != TRAINER_TYPE_NORMAL && objectEvent->trainerType != TRAINER_TYPE_BURIED)
{
return FALSE;
}
diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c
index 6d44f4b51..b0918a78d 100644
--- a/src/field_player_avatar.c
+++ b/src/field_player_avatar.c
@@ -30,6 +30,7 @@
#include "constants/moves.h"
#include "constants/songs.h"
#include "constants/species.h"
+#include "constants/trainer_types.h"
static EWRAM_DATA u8 gUnknown_0203734C = 0;
EWRAM_DATA struct ObjectEvent gObjectEvents[OBJECT_EVENTS_COUNT] = {};
@@ -1378,7 +1379,7 @@ void InitPlayerAvatar(s16 x, s16 y, u8 direction, u8 gender)
playerObjEventTemplate.movementType = MOVEMENT_TYPE_PLAYER;
playerObjEventTemplate.movementRangeX = 0;
playerObjEventTemplate.movementRangeY = 0;
- playerObjEventTemplate.trainerType = 0;
+ playerObjEventTemplate.trainerType = TRAINER_TYPE_NONE;
playerObjEventTemplate.trainerRange_berryTreeId = 0;
playerObjEventTemplate.script = NULL;
playerObjEventTemplate.flagId = 0;
diff --git a/src/fldeff_dig.c b/src/fldeff_dig.c
index 7f10e126e..ee5caa0df 100644
--- a/src/fldeff_dig.c
+++ b/src/fldeff_dig.c
@@ -16,7 +16,7 @@ static void sub_8135780(void);
// text
bool8 SetUpFieldMove_Dig(void)
{
- if (CanUseEscapeRopeOnCurrMap() == TRUE)
+ if (CanUseDigOrEscapeRopeOnCurMap() == TRUE)
{
gFieldCallback2 = FieldCallback_PrepareFadeInFromMenu;
gPostMenuFieldCallback = hm2_dig;
diff --git a/src/fldeff_flash.c b/src/fldeff_flash.c
index e2497ca95..3cb91d4b1 100644
--- a/src/fldeff_flash.c
+++ b/src/fldeff_flash.c
@@ -50,7 +50,7 @@ static const struct FlashStruct sTransitionTypes[] =
{MAP_TYPE_ROUTE, MAP_TYPE_UNDERGROUND, TRUE, FALSE, DoEnterCaveTransition},
{MAP_TYPE_UNDERWATER, MAP_TYPE_UNDERGROUND, TRUE, FALSE, DoEnterCaveTransition},
{MAP_TYPE_OCEAN_ROUTE, MAP_TYPE_UNDERGROUND, TRUE, FALSE, DoEnterCaveTransition},
- {MAP_TYPE_UNUSED_2, MAP_TYPE_UNDERGROUND, TRUE, FALSE, DoEnterCaveTransition},
+ {MAP_TYPE_UNKNOWN, MAP_TYPE_UNDERGROUND, TRUE, FALSE, DoEnterCaveTransition},
{MAP_TYPE_INDOOR, MAP_TYPE_UNDERGROUND, TRUE, FALSE, DoEnterCaveTransition},
{MAP_TYPE_SECRET_BASE, MAP_TYPE_UNDERGROUND, TRUE, FALSE, DoEnterCaveTransition},
{MAP_TYPE_UNDERGROUND, MAP_TYPE_TOWN, FALSE, TRUE, DoExitCaveTransition},
@@ -58,7 +58,7 @@ static const struct FlashStruct sTransitionTypes[] =
{MAP_TYPE_UNDERGROUND, MAP_TYPE_ROUTE, FALSE, TRUE, DoExitCaveTransition},
{MAP_TYPE_UNDERGROUND, MAP_TYPE_UNDERWATER, FALSE, TRUE, DoExitCaveTransition},
{MAP_TYPE_UNDERGROUND, MAP_TYPE_OCEAN_ROUTE, FALSE, TRUE, DoExitCaveTransition},
- {MAP_TYPE_UNDERGROUND, MAP_TYPE_UNUSED_2, FALSE, TRUE, DoExitCaveTransition},
+ {MAP_TYPE_UNDERGROUND, MAP_TYPE_UNKNOWN, FALSE, TRUE, DoExitCaveTransition},
{MAP_TYPE_UNDERGROUND, MAP_TYPE_INDOOR, FALSE, TRUE, DoExitCaveTransition},
{MAP_TYPE_UNDERGROUND, MAP_TYPE_SECRET_BASE, FALSE, TRUE, DoExitCaveTransition},
{},
diff --git a/src/graphics.c b/src/graphics.c
index 83fab7dee..daae1d896 100644
--- a/src/graphics.c
+++ b/src/graphics.c
@@ -356,16 +356,16 @@ const u16 gBattleInterface_BallStatusBarPal[] = INCBIN_U16("graphics/battle_inte
const u16 gBattleInterface_BallDisplayPal[] = INCBIN_U16("graphics/battle_interface/ball_display.gbapal");
//Originally an array?
-const u8 gHealthboxElementsGfxTable[] = INCBIN_U8("graphics/battle_interface/hpbar.4bpp");
-const u8 gHealthboxElementsGfxTable_ExpBar[] = INCBIN_U8("graphics/battle_interface/expbar.4bpp");
-const u8 gHealthboxElementsGfxTable_StatusPsn[] = INCBIN_U8("graphics/battle_interface/status_psn.4bpp");
-const u8 gHealthboxElementsGfxTable_StatusPar[] = INCBIN_U8("graphics/battle_interface/status_par.4bpp");
-const u8 gHealthboxElementsGfxTable_StatusSlp[] = INCBIN_U8("graphics/battle_interface/status_slp.4bpp");
-const u8 gHealthboxElementsGfxTable_StatusFrz[] = INCBIN_U8("graphics/battle_interface/status_frz.4bpp");
-const u8 gHealthboxElementsGfxTable_StatusBrn[] = INCBIN_U8("graphics/battle_interface/status_brn.4bpp");
-const u8 gHealthboxElementsGfxTable_Misc[] = INCBIN_U8("graphics/battle_interface/misc.4bpp");
-const u8 gHealthboxElementsGfxTable_HpBarAnim[] = INCBIN_U8("graphics/battle_interface/hpbar_anim.4bpp");
-const u8 gHealthboxElementsGfxTable_MiscFrameEnd[] = INCBIN_U8("graphics/battle_interface/misc_frameend.4bpp");
+const u8 gHealthboxElementsGfxTable[] = INCBIN_U8("graphics/battle_interface/hpbar.4bpp",
+ "graphics/battle_interface/expbar.4bpp",
+ "graphics/battle_interface/status_psn.4bpp",
+ "graphics/battle_interface/status_par.4bpp",
+ "graphics/battle_interface/status_slp.4bpp",
+ "graphics/battle_interface/status_frz.4bpp",
+ "graphics/battle_interface/status_brn.4bpp",
+ "graphics/battle_interface/misc.4bpp",
+ "graphics/battle_interface/hpbar_anim.4bpp",
+ "graphics/battle_interface/misc_frameend.4bpp");
const u8 gBattleInterface_BallDisplayGfx[] = INCBIN_U8("graphics/battle_interface/ball_display.4bpp");
diff --git a/src/heal_location.c b/src/heal_location.c
index b378e8e8c..5eda24d67 100644
--- a/src/heal_location.c
+++ b/src/heal_location.c
@@ -1,6 +1,7 @@
#include "global.h"
#include "heal_location.h"
#include "constants/maps.h"
+#include "constants/heal_locations.h"
#include "data/heal_locations.h"
diff --git a/src/item_use.c b/src/item_use.c
index 73d6f6ffe..d359dbcef 100755
--- a/src/item_use.c
+++ b/src/item_use.c
@@ -911,9 +911,9 @@ static void ItemUseOnFieldCB_EscapeRope(u8 taskId)
DisplayItemMessageOnField(taskId, gStringVar4, Task_UseDigEscapeRopeOnField);
}
-bool8 CanUseEscapeRopeOnCurrMap(void)
+bool8 CanUseDigOrEscapeRopeOnCurMap(void)
{
- if (gMapHeader.flags & MAP_ALLOW_ESCAPE_ROPE)
+ if (gMapHeader.flags & MAP_ALLOW_ESCAPING)
return TRUE;
else
return FALSE;
@@ -921,7 +921,7 @@ bool8 CanUseEscapeRopeOnCurrMap(void)
void ItemUseOutOfBattle_EscapeRope(u8 taskId)
{
- if (CanUseEscapeRopeOnCurrMap() == TRUE)
+ if (CanUseDigOrEscapeRopeOnCurMap() == TRUE)
{
sItemUseOnFieldCB = ItemUseOnFieldCB_EscapeRope;
SetUpItemUseOnFieldCallback(taskId);
diff --git a/src/librfu_rfu.c b/src/librfu_rfu.c
index 582060f78..3f5bd8b69 100644
--- a/src/librfu_rfu.c
+++ b/src/librfu_rfu.c
@@ -1,3 +1,4 @@
+#include <limits.h>
#include "librfu.h"
struct LLSFStruct
@@ -110,7 +111,7 @@ static const struct LLSFStruct llsf_struct[2] = {
#define xstr(s) str(s)
#define str(s) #s
-const char version_string[] = "RFU_V" xstr(LIBRFU_VERSION);
+static const char version_string[] = "RFU_V" xstr(LIBRFU_VERSION);
static const char str_checkMbootLL[] = "RFU-MBOOT";
@@ -154,16 +155,13 @@ u16 rfu_initializeAPI(u32 *APIBuffer, u16 buffByteSize, IntrFunc *sioIntrTable_p
gRfuStatic = (void *)APIBuffer + 0xb4; // + sizeof(*gRfuLinkStatus)
gRfuFixed = (void *)APIBuffer + 0xdc; // + sizeof(*gRfuStatic)
gRfuSlotStatusNI[0] = (void *)APIBuffer + 0x1bc; // + sizeof(*gRfuFixed)
- gRfuSlotStatusUNI[0] = (void *)APIBuffer + 0x37c; // + sizeof(*gRfuSlotStatusNI[0])
+ gRfuSlotStatusUNI[0] = (void *)APIBuffer + 0x37c; // + sizeof(*gRfuSlotStatusNI[0]) * RFU_CHILD_MAX
for (i = 1; i < RFU_CHILD_MAX; ++i)
{
gRfuSlotStatusNI[i] = &gRfuSlotStatusNI[i - 1][1];
gRfuSlotStatusUNI[i] = &gRfuSlotStatusUNI[i - 1][1];
}
- // TODO: Is it possible to fix the following 2 statements?
- // It's equivalent to:
- // gRfuFixed->STWIBuffer = &APIBuffer->intr;
- // STWI_init_all(&APIBuffer->intr, sioIntrTable_p, copyInterruptToRam);
+ // remaining space in API buffer is used for `struct RfuIntrStruct`.
gRfuFixed->STWIBuffer = (struct RfuIntrStruct *)&gRfuSlotStatusUNI[3][1];
STWI_init_all((struct RfuIntrStruct *)&gRfuSlotStatusUNI[3][1], sioIntrTable_p, copyInterruptToRam);
rfu_STC_clearAPIVariables();
@@ -1800,7 +1798,7 @@ static u16 rfu_STC_NI_constructLLSF(u8 bm_slot_id, u8 **dest_pp, struct NIComm *
}
else
{
- if ((u32)NI_comm->remainSize >= NI_comm->payloadSize)
+ if (NI_comm->remainSize >= NI_comm->payloadSize)
size = NI_comm->payloadSize;
else
size = NI_comm->remainSize;
@@ -2095,34 +2093,31 @@ static void rfu_STC_NI_receive_Sender(u8 NI_slot, u8 bm_flag, const struct RfuLo
else
NI_comm->now_p[llsf_NI->phase] += NI_comm->payloadSize << 2;
NI_comm->remainSize -= NI_comm->payloadSize;
- if (NI_comm->remainSize != 0)
- if (NI_comm->remainSize >= 0)
- goto _081E30AE;
- // Above is a hack to avoid optimization over comparison.
- // rfu_STC_NI_constructLLSF uses this field as u32.
- // It's equivalent to the following condition:
- // if (NI_comm->remainSize == 0 || NI_comm->remainSize < 0)
+ switch (NI_comm->remainSize)
+ {
+ default:
+ case 0:
+ NI_comm->phase = 0;
+ if (NI_comm->state == SLOT_STATE_SEND_START)
{
- NI_comm->phase = 0;
- if (NI_comm->state == SLOT_STATE_SEND_START)
+ for (i = 0; i < WINDOW_COUNT; ++i)
{
- for (i = 0; i < WINDOW_COUNT; ++i)
- {
- NI_comm->n[i] = 1;
- NI_comm->now_p[i] = NI_comm->src + NI_comm->payloadSize * i;
- }
- NI_comm->remainSize = NI_comm->dataSize;
- NI_comm->state = SLOT_STATE_SENDING;
- }
- else
- {
- NI_comm->n[0] = 0;
- NI_comm->remainSize = 0;
- NI_comm->state = SLOT_STATE_SEND_LAST;
+ NI_comm->n[i] = 1;
+ NI_comm->now_p[i] = NI_comm->src + NI_comm->payloadSize * i;
}
+ NI_comm->remainSize = NI_comm->dataSize;
+ NI_comm->state = SLOT_STATE_SENDING;
}
- _081E30AE:
- ;
+ else
+ {
+ NI_comm->n[0] = 0;
+ NI_comm->remainSize = 0;
+ NI_comm->state = SLOT_STATE_SEND_LAST;
+ }
+ break;
+ case 1 ... INT_MAX:
+ break;
+ }
}
else if (NI_comm->state == SLOT_STATE_SEND_LAST)
{
diff --git a/src/overworld.c b/src/overworld.c
index ec43a3e80..72bc38693 100644
--- a/src/overworld.c
+++ b/src/overworld.c
@@ -978,7 +978,7 @@ static u16 GetCenterScreenMetatileBehavior(void)
bool32 Overworld_IsBikingAllowed(void)
{
- if (!(gMapHeader.flags & MAP_ALLOW_BIKE))
+ if (!(gMapHeader.flags & MAP_ALLOW_CYCLING))
return FALSE;
else
return TRUE;
diff --git a/src/pokedex.c b/src/pokedex.c
index 080548553..c3d38681c 100644
--- a/src/pokedex.c
+++ b/src/pokedex.c
@@ -666,10 +666,12 @@ static const union AnimCmd *const sSpriteAnimTable_DexListStartMenuCursor[] =
sSpriteAnim_DexListStartMenuCursor
};
+#define TAG_DEX_INTERFACE 4096 // Tile and pal tag used for all interface sprites.
+
static const struct SpriteTemplate sScrollBarSpriteTemplate =
{
- .tileTag = 4096,
- .paletteTag = 4096,
+ .tileTag = TAG_DEX_INTERFACE,
+ .paletteTag = TAG_DEX_INTERFACE,
.oam = &sOamData_ScrollBar,
.anims = sSpriteAnimTable_ScrollBar,
.images = NULL,
@@ -679,8 +681,8 @@ static const struct SpriteTemplate sScrollBarSpriteTemplate =
static const struct SpriteTemplate sScrollArrowSpriteTemplate =
{
- .tileTag = 4096,
- .paletteTag = 4096,
+ .tileTag = TAG_DEX_INTERFACE,
+ .paletteTag = TAG_DEX_INTERFACE,
.oam = &sOamData_ScrollArrow,
.anims = sSpriteAnimTable_ScrollArrow,
.images = NULL,
@@ -690,8 +692,8 @@ static const struct SpriteTemplate sScrollArrowSpriteTemplate =
static const struct SpriteTemplate sInterfaceTextSpriteTemplate =
{
- .tileTag = 4096,
- .paletteTag = 4096,
+ .tileTag = TAG_DEX_INTERFACE,
+ .paletteTag = TAG_DEX_INTERFACE,
.oam = &sOamData_InterfaceText,
.anims = sSpriteAnimTable_InterfaceText,
.images = NULL,
@@ -701,8 +703,8 @@ static const struct SpriteTemplate sInterfaceTextSpriteTemplate =
static const struct SpriteTemplate sRotatingPokeBallSpriteTemplate =
{
- .tileTag = 4096,
- .paletteTag = 4096,
+ .tileTag = TAG_DEX_INTERFACE,
+ .paletteTag = TAG_DEX_INTERFACE,
.oam = &sOamData_RotatingPokeBall,
.anims = sSpriteAnimTable_RotatingPokeBall,
.images = NULL,
@@ -712,8 +714,8 @@ static const struct SpriteTemplate sRotatingPokeBallSpriteTemplate =
static const struct SpriteTemplate sSeenOwnTextSpriteTemplate =
{
- .tileTag = 4096,
- .paletteTag = 4096,
+ .tileTag = TAG_DEX_INTERFACE,
+ .paletteTag = TAG_DEX_INTERFACE,
.oam = &sOamData_SeenOwnText,
.anims = sSpriteAnimTable_SeenOwnText,
.images = NULL,
@@ -723,8 +725,8 @@ static const struct SpriteTemplate sSeenOwnTextSpriteTemplate =
static const struct SpriteTemplate sHoennNationalTextSpriteTemplate =
{
- .tileTag = 4096,
- .paletteTag = 4096,
+ .tileTag = TAG_DEX_INTERFACE,
+ .paletteTag = TAG_DEX_INTERFACE,
.oam = &sOamData_InterfaceText,
.anims = sSpriteAnimTable_HoennNationalText,
.images = NULL,
@@ -734,8 +736,8 @@ static const struct SpriteTemplate sHoennNationalTextSpriteTemplate =
static const struct SpriteTemplate sHoennDexSeenOwnNumberSpriteTemplate =
{
- .tileTag = 4096,
- .paletteTag = 4096,
+ .tileTag = TAG_DEX_INTERFACE,
+ .paletteTag = TAG_DEX_INTERFACE,
.oam = &sOamData_Dex8x16,
.anims = sSpriteAnimTable_HoennSeenOwnNumber,
.images = NULL,
@@ -745,8 +747,8 @@ static const struct SpriteTemplate sHoennDexSeenOwnNumberSpriteTemplate =
static const struct SpriteTemplate sNationalDexSeenOwnNumberSpriteTemplate =
{
- .tileTag = 4096,
- .paletteTag = 4096,
+ .tileTag = TAG_DEX_INTERFACE,
+ .paletteTag = TAG_DEX_INTERFACE,
.oam = &sOamData_Dex8x16,
.anims = sSpriteAnimTable_NationalSeenOwnNumber,
.images = NULL,
@@ -756,8 +758,8 @@ static const struct SpriteTemplate sNationalDexSeenOwnNumberSpriteTemplate =
static const struct SpriteTemplate sDexListStartMenuCursorSpriteTemplate =
{
- .tileTag = 4096,
- .paletteTag = 4096,
+ .tileTag = TAG_DEX_INTERFACE,
+ .paletteTag = TAG_DEX_INTERFACE,
.oam = &sOamData_Dex8x16,
.anims = sSpriteAnimTable_DexListStartMenuCursor,
.images = NULL,
@@ -767,13 +769,13 @@ static const struct SpriteTemplate sDexListStartMenuCursorSpriteTemplate =
static const struct CompressedSpriteSheet sInterfaceSpriteSheet[] =
{
- {gPokedexInterface_Gfx, 0x2000, 4096},
+ {gPokedexInterface_Gfx, 0x2000, TAG_DEX_INTERFACE},
{0}
};
static const struct SpritePalette sInterfaceSpritePalette[] =
{
- {gPokedexBgHoenn_Pal, 4096},
+ {gPokedexBgHoenn_Pal, TAG_DEX_INTERFACE},
{0}
};
@@ -893,7 +895,7 @@ static const struct BgTemplate sInfoScreen_BgTemplate[] =
static const struct WindowTemplate sInfoScreen_WindowTemplates[] =
{
- [WIN_INFO] =
+ [WIN_INFO] =
{
.bg = 2,
.tilemapLeft = 0,
@@ -903,7 +905,7 @@ static const struct WindowTemplate sInfoScreen_WindowTemplates[] =
.paletteNum = 0,
.baseBlock = 1,
},
- [WIN_FOOTPRINT] =
+ [WIN_FOOTPRINT] =
{
.bg = 2,
.tilemapLeft = 25,
@@ -913,7 +915,7 @@ static const struct WindowTemplate sInfoScreen_WindowTemplates[] =
.paletteNum = 15,
.baseBlock = 641,
},
- [WIN_CRY_WAVE] =
+ [WIN_CRY_WAVE] =
{
.bg = 0,
.tilemapLeft = 0,
@@ -923,7 +925,7 @@ static const struct WindowTemplate sInfoScreen_WindowTemplates[] =
.paletteNum = 8,
.baseBlock = 645,
},
- [WIN_VU_METER] =
+ [WIN_VU_METER] =
{
.bg = 2,
.tilemapLeft = 18,
@@ -960,7 +962,7 @@ static const struct BgTemplate sNewEntryInfoScreen_BgTemplate[] =
static const struct WindowTemplate sNewEntryInfoScreen_WindowTemplates[] =
{
- [WIN_INFO] =
+ [WIN_INFO] =
{
.bg = 2,
.tilemapLeft = 0,
@@ -970,7 +972,7 @@ static const struct WindowTemplate sNewEntryInfoScreen_WindowTemplates[] =
.paletteNum = 0,
.baseBlock = 1,
},
- [WIN_FOOTPRINT] =
+ [WIN_FOOTPRINT] =
{
.bg = 2,
.tilemapLeft = 25,
@@ -1012,21 +1014,21 @@ static const u8 sLetterSearchRanges[][4] =
static const struct SearchMenuTopBarItem sSearchMenuTopBarItems[SEARCH_TOPBAR_COUNT] =
{
- [SEARCH_TOPBAR_SEARCH] =
+ [SEARCH_TOPBAR_SEARCH] =
{
.description = gText_SearchForPkmnBasedOnParameters,
.highlightX = 0,
.highlightY = 0,
.highlightWidth = 5,
},
- [SEARCH_TOPBAR_SHIFT] =
+ [SEARCH_TOPBAR_SHIFT] =
{
.description = gText_SwitchPokedexListings,
.highlightX = 6,
.highlightY = 0,
.highlightWidth = 5,
},
- [SEARCH_TOPBAR_CANCEL] =
+ [SEARCH_TOPBAR_CANCEL] =
{
.description = gText_ReturnToPokedex,
.highlightX = 12,
@@ -1037,7 +1039,7 @@ static const struct SearchMenuTopBarItem sSearchMenuTopBarItems[SEARCH_TOPBAR_CO
static const struct SearchMenuItem sSearchMenuItems[SEARCH_COUNT] =
{
- [SEARCH_NAME] =
+ [SEARCH_NAME] =
{
.description = gText_ListByFirstLetter,
.titleBgX = 0,
@@ -1047,7 +1049,7 @@ static const struct SearchMenuItem sSearchMenuItems[SEARCH_COUNT] =
.selectionBgY = 2,
.selectionBgWidth = 12,
},
- [SEARCH_COLOR] =
+ [SEARCH_COLOR] =
{
.description = gText_ListByBodyColor,
.titleBgX = 0,
@@ -1057,7 +1059,7 @@ static const struct SearchMenuItem sSearchMenuItems[SEARCH_COUNT] =
.selectionBgY = 4,
.selectionBgWidth = 12,
},
- [SEARCH_TYPE_LEFT] =
+ [SEARCH_TYPE_LEFT] =
{
.description = gText_ListByType,
.titleBgX = 0,
@@ -1067,7 +1069,7 @@ static const struct SearchMenuItem sSearchMenuItems[SEARCH_COUNT] =
.selectionBgY = 6,
.selectionBgWidth = 6,
},
- [SEARCH_TYPE_RIGHT] =
+ [SEARCH_TYPE_RIGHT] =
{
.description = gText_ListByType,
.titleBgX = 0,
@@ -1077,7 +1079,7 @@ static const struct SearchMenuItem sSearchMenuItems[SEARCH_COUNT] =
.selectionBgY = 6,
.selectionBgWidth = 6,
},
- [SEARCH_ORDER] =
+ [SEARCH_ORDER] =
{
.description = gText_SelectPokedexListingMode,
.titleBgX = 0,
@@ -1087,7 +1089,7 @@ static const struct SearchMenuItem sSearchMenuItems[SEARCH_COUNT] =
.selectionBgY = 8,
.selectionBgWidth = 12,
},
- [SEARCH_MODE] =
+ [SEARCH_MODE] =
{
.description = gText_SelectPokedexMode,
.titleBgX = 0,
@@ -1097,7 +1099,7 @@ static const struct SearchMenuItem sSearchMenuItems[SEARCH_COUNT] =
.selectionBgY = 10,
.selectionBgWidth = 12,
},
- [SEARCH_OK] =
+ [SEARCH_OK] =
{
.description = gText_ExecuteSearchSwitch,
.titleBgX = 0,
@@ -1112,52 +1114,52 @@ static const struct SearchMenuItem sSearchMenuItems[SEARCH_COUNT] =
// Left, Right, Up, Down
static const u8 sSearchMovementMap_SearchNatDex[SEARCH_COUNT][4] =
{
- [SEARCH_NAME] =
+ [SEARCH_NAME] =
{
- 0xFF,
- 0xFF,
- 0xFF,
+ 0xFF,
+ 0xFF,
+ 0xFF,
SEARCH_COLOR
},
- [SEARCH_COLOR] =
+ [SEARCH_COLOR] =
{
- 0xFF,
- 0xFF,
- SEARCH_NAME,
+ 0xFF,
+ 0xFF,
+ SEARCH_NAME,
SEARCH_TYPE_LEFT
},
- [SEARCH_TYPE_LEFT] =
- {
- 0xFF,
- SEARCH_TYPE_RIGHT,
- SEARCH_COLOR,
+ [SEARCH_TYPE_LEFT] =
+ {
+ 0xFF,
+ SEARCH_TYPE_RIGHT,
+ SEARCH_COLOR,
SEARCH_ORDER
},
- [SEARCH_TYPE_RIGHT] =
- { SEARCH_TYPE_LEFT,
- 0xFF,
- SEARCH_COLOR,
+ [SEARCH_TYPE_RIGHT] =
+ { SEARCH_TYPE_LEFT,
+ 0xFF,
+ SEARCH_COLOR,
SEARCH_ORDER
},
- [SEARCH_ORDER] =
+ [SEARCH_ORDER] =
{
- 0xFF,
- 0xFF,
- SEARCH_TYPE_LEFT,
+ 0xFF,
+ 0xFF,
+ SEARCH_TYPE_LEFT,
SEARCH_MODE
},
- [SEARCH_MODE] =
+ [SEARCH_MODE] =
{
- 0xFF,
- 0xFF,
- SEARCH_ORDER,
+ 0xFF,
+ 0xFF,
+ SEARCH_ORDER,
SEARCH_OK
},
- [SEARCH_OK] =
+ [SEARCH_OK] =
{
- 0xFF,
- 0xFF,
- SEARCH_MODE,
+ 0xFF,
+ 0xFF,
+ SEARCH_MODE,
0xFF
},
};
@@ -1165,53 +1167,53 @@ static const u8 sSearchMovementMap_SearchNatDex[SEARCH_COUNT][4] =
// Left, Right, Up, Down
static const u8 sSearchMovementMap_ShiftNatDex[SEARCH_COUNT][4] =
{
- [SEARCH_NAME] =
+ [SEARCH_NAME] =
{
- 0xFF,
- 0xFF,
- 0xFF,
+ 0xFF,
+ 0xFF,
+ 0xFF,
0xFF
},
- [SEARCH_COLOR] =
+ [SEARCH_COLOR] =
{
- 0xFF,
- 0xFF,
- 0xFF,
+ 0xFF,
+ 0xFF,
+ 0xFF,
0xFF
},
- [SEARCH_TYPE_LEFT] =
+ [SEARCH_TYPE_LEFT] =
{
- 0xFF,
- 0xFF,
- 0xFF,
+ 0xFF,
+ 0xFF,
+ 0xFF,
0xFF
},
- [SEARCH_TYPE_RIGHT] =
+ [SEARCH_TYPE_RIGHT] =
{
- 0xFF,
- 0xFF,
- 0xFF,
+ 0xFF,
+ 0xFF,
+ 0xFF,
0xFF
},
- [SEARCH_ORDER] =
+ [SEARCH_ORDER] =
{
- 0xFF,
- 0xFF,
- 0xFF,
+ 0xFF,
+ 0xFF,
+ 0xFF,
SEARCH_MODE
},
- [SEARCH_MODE] =
+ [SEARCH_MODE] =
{
- 0xFF,
- 0xFF,
- SEARCH_ORDER,
+ 0xFF,
+ 0xFF,
+ SEARCH_ORDER,
SEARCH_OK
},
- [SEARCH_OK] =
+ [SEARCH_OK] =
{
- 0xFF,
- 0xFF,
- SEARCH_MODE,
+ 0xFF,
+ 0xFF,
+ SEARCH_MODE,
0xFF
},
};
@@ -1219,52 +1221,52 @@ static const u8 sSearchMovementMap_ShiftNatDex[SEARCH_COUNT][4] =
// Left, Right, Up, Down
static const u8 sSearchMovementMap_SearchHoennDex[SEARCH_COUNT][4] =
{
- [SEARCH_NAME] =
+ [SEARCH_NAME] =
{
0xFF,
- 0xFF,
- 0xFF,
+ 0xFF,
+ 0xFF,
SEARCH_COLOR
},
- [SEARCH_COLOR] =
+ [SEARCH_COLOR] =
{
- 0xFF,
- 0xFF,
- SEARCH_NAME,
+ 0xFF,
+ 0xFF,
+ SEARCH_NAME,
SEARCH_TYPE_LEFT
},
- [SEARCH_TYPE_LEFT] =
+ [SEARCH_TYPE_LEFT] =
{
- 0xFF,
- SEARCH_TYPE_RIGHT,
- SEARCH_COLOR,
+ 0xFF,
+ SEARCH_TYPE_RIGHT,
+ SEARCH_COLOR,
SEARCH_ORDER
},
- [SEARCH_TYPE_RIGHT] =
- { SEARCH_TYPE_LEFT,
- 0xFF,
- SEARCH_COLOR,
+ [SEARCH_TYPE_RIGHT] =
+ { SEARCH_TYPE_LEFT,
+ 0xFF,
+ SEARCH_COLOR,
SEARCH_ORDER
},
[SEARCH_ORDER] =
{
- 0xFF,
- 0xFF,
- SEARCH_TYPE_LEFT,
+ 0xFF,
+ 0xFF,
+ SEARCH_TYPE_LEFT,
SEARCH_OK
},
- [SEARCH_MODE] =
+ [SEARCH_MODE] =
{
- 0xFF,
- 0xFF,
- 0xFF,
+ 0xFF,
+ 0xFF,
+ 0xFF,
0xFF
},
- [SEARCH_OK] =
+ [SEARCH_OK] =
{
- 0xFF,
- 0xFF,
- SEARCH_ORDER,
+ 0xFF,
+ 0xFF,
+ SEARCH_ORDER,
0xFF
},
};
@@ -1272,53 +1274,53 @@ static const u8 sSearchMovementMap_SearchHoennDex[SEARCH_COUNT][4] =
// Left, Right, Up, Down
static const u8 sSearchMovementMap_ShiftHoennDex[SEARCH_COUNT][4] =
{
- [SEARCH_NAME] =
+ [SEARCH_NAME] =
{
- 0xFF,
- 0xFF,
- 0xFF,
+ 0xFF,
+ 0xFF,
+ 0xFF,
0xFF
},
[SEARCH_COLOR] =
{
- 0xFF,
- 0xFF,
- 0xFF,
+ 0xFF,
+ 0xFF,
+ 0xFF,
0xFF
},
- [SEARCH_TYPE_LEFT] =
+ [SEARCH_TYPE_LEFT] =
{
- 0xFF,
- 0xFF,
- 0xFF,
+ 0xFF,
+ 0xFF,
+ 0xFF,
0xFF
},
- [SEARCH_TYPE_RIGHT] =
+ [SEARCH_TYPE_RIGHT] =
{
- 0xFF,
- 0xFF,
- 0xFF,
+ 0xFF,
+ 0xFF,
+ 0xFF,
0xFF
},
- [SEARCH_ORDER] =
+ [SEARCH_ORDER] =
{
- 0xFF,
- 0xFF,
- 0xFF,
+ 0xFF,
+ 0xFF,
+ 0xFF,
SEARCH_OK
},
- [SEARCH_MODE] =
+ [SEARCH_MODE] =
{
- 0xFF,
- 0xFF,
- 0xFF,
+ 0xFF,
+ 0xFF,
+ 0xFF,
0xFF
},
- [SEARCH_OK] =
+ [SEARCH_OK] =
{
- 0xFF,
- 0xFF,
- SEARCH_ORDER,
+ 0xFF,
+ 0xFF,
+ SEARCH_ORDER,
0xFF
},
};
@@ -2838,7 +2840,7 @@ static void CreateInterfaceSprites(u8 page)
spriteId = CreateSprite(&sHoennDexSeenOwnNumberSpriteTemplate, 40, 48, 1);
digitNum = (sPokedexView->seenCount % 100) % 10;
StartSpriteAnim(&gSprites[spriteId], digitNum);
-
+
// Owned value - 100s
drawNextDigit = FALSE;
spriteId = CreateSprite(&sHoennDexSeenOwnNumberSpriteTemplate, 24, 80, 1);
@@ -3898,7 +3900,7 @@ static void HighlightSubmenuScreenSelectBarItem(u8 a, u16 b)
u8 row = i * 7 + 1;
u32 newPalette;
- do
+ do
{
if (i == a || i == 3)
newPalette = 0x2000;
diff --git a/src/region_map.c b/src/region_map.c
index 8a15ca30d..0ee30527f 100644
--- a/src/region_map.c
+++ b/src/region_map.c
@@ -301,7 +301,7 @@ static const u8 sMapHealLocations[][3] =
{MAP_GROUP(LILYCOVE_CITY), MAP_NUM(LILYCOVE_CITY), HEAL_LOCATION_LILYCOVE_CITY},
{MAP_GROUP(MOSSDEEP_CITY), MAP_NUM(MOSSDEEP_CITY), HEAL_LOCATION_MOSSDEEP_CITY},
{MAP_GROUP(SOOTOPOLIS_CITY), MAP_NUM(SOOTOPOLIS_CITY), HEAL_LOCATION_SOOTOPOLIS_CITY},
- {MAP_GROUP(EVER_GRANDE_CITY), MAP_NUM(EVER_GRANDE_CITY), HEAL_LOCATION_EVER_GRANDE_CITY_1},
+ {MAP_GROUP(EVER_GRANDE_CITY), MAP_NUM(EVER_GRANDE_CITY), HEAL_LOCATION_EVER_GRANDE_CITY},
{MAP_GROUP(ROUTE101), MAP_NUM(ROUTE101), 0},
{MAP_GROUP(ROUTE102), MAP_NUM(ROUTE102), 0},
{MAP_GROUP(ROUTE103), MAP_NUM(ROUTE103), 0},
@@ -1003,8 +1003,8 @@ static void InitMapBasedOnPlayerLocation(void)
gRegionMap->playerIsInCave = TRUE;
break;
case MAP_TYPE_UNDERGROUND:
- case MAP_TYPE_UNUSED_2:
- if (gMapHeader.flags & MAP_ALLOW_ESCAPE_ROPE)
+ case MAP_TYPE_UNKNOWN:
+ if (gMapHeader.flags & MAP_ALLOW_ESCAPING)
{
mapHeader = Overworld_GetMapHeaderByGroupAndId(gSaveBlock1Ptr->escapeWarp.mapGroup, gSaveBlock1Ptr->escapeWarp.mapNum);
gRegionMap->mapSecId = mapHeader->regionMapSectionId;
@@ -1998,10 +1998,10 @@ static void CB_ExitFlyMap(void)
SetWarpDestinationToHealLocation(HEAL_LOCATION_BATTLE_FRONTIER_OUTSIDE_EAST);
break;
case MAPSEC_LITTLEROOT_TOWN:
- SetWarpDestinationToHealLocation(gSaveBlock2Ptr->playerGender == MALE ? HEAL_LOCATION_LITTLEROOT_TOWN_1 : HEAL_LOCATION_LITTLEROOT_TOWN_2);
+ SetWarpDestinationToHealLocation(gSaveBlock2Ptr->playerGender == MALE ? HEAL_LOCATION_LITTLEROOT_TOWN_BRENDANS_HOUSE : HEAL_LOCATION_LITTLEROOT_TOWN_MAYS_HOUSE);
break;
case MAPSEC_EVER_GRANDE_CITY:
- SetWarpDestinationToHealLocation(FlagGet(FLAG_LANDMARK_POKEMON_LEAGUE) && sFlyMap->regionMap.posWithinMapSec == 0 ? HEAL_LOCATION_EVER_GRANDE_CITY_2 : HEAL_LOCATION_EVER_GRANDE_CITY_1);
+ SetWarpDestinationToHealLocation(FlagGet(FLAG_LANDMARK_POKEMON_LEAGUE) && sFlyMap->regionMap.posWithinMapSec == 0 ? HEAL_LOCATION_EVER_GRANDE_CITY_POKEMON_LEAGUE : HEAL_LOCATION_EVER_GRANDE_CITY);
break;
default:
if (sMapHealLocations[sFlyMap->regionMap.mapSecId][2] != 0)
diff --git a/src/trainer_hill.c b/src/trainer_hill.c
index 11ac49e3a..8ff9d2eaf 100644
--- a/src/trainer_hill.c
+++ b/src/trainer_hill.c
@@ -33,6 +33,7 @@
#include "constants/trainers.h"
#include "constants/easy_chat.h"
#include "constants/trainer_hill.h"
+#include "constants/trainer_types.h"
#define HILL_TAG_NORMAL 0
#define HILL_TAG_VARIETY 1
@@ -258,7 +259,7 @@ static const struct ObjectEventTemplate sTrainerObjectEventTemplate =
.movementType = MOVEMENT_TYPE_LOOK_AROUND,
.movementRangeX = 1,
.movementRangeY = 1,
- .trainerType = 1,
+ .trainerType = TRAINER_TYPE_NORMAL,
};
static const u32 sNextFloorMapNum[NUM_TRAINER_HILL_FLOORS] =
diff --git a/src/trainer_see.c b/src/trainer_see.c
index b34b8f106..68a16e208 100644
--- a/src/trainer_see.c
+++ b/src/trainer_see.c
@@ -17,6 +17,7 @@
#include "constants/event_objects.h"
#include "constants/event_object_movement.h"
#include "constants/field_effects.h"
+#include "constants/trainer_types.h"
// this file's functions
static u8 CheckTrainer(u8 objectEventId);
@@ -181,18 +182,18 @@ bool8 CheckForTrainersWantingBattle(void)
for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
{
- u8 retVal;
+ u8 numTrainers;
if (!gObjectEvents[i].active)
continue;
- if (gObjectEvents[i].trainerType != 1 && gObjectEvents[i].trainerType != 3)
+ if (gObjectEvents[i].trainerType != TRAINER_TYPE_NORMAL && gObjectEvents[i].trainerType != TRAINER_TYPE_BURIED)
continue;
- retVal = CheckTrainer(i);
- if (retVal == 2)
- break; // two trainers have been found
+ numTrainers = CheckTrainer(i);
+ if (numTrainers == 2)
+ break;
- if (retVal == 0) // no trainers
+ if (numTrainers == 0)
continue;
if (gNoOfApproachingTrainers > 1)
@@ -289,14 +290,14 @@ static u8 GetTrainerApproachDistance(struct ObjectEvent *trainerObj)
u8 approachDistance;
PlayerGetDestCoords(&x, &y);
- if (trainerObj->trainerType == 1) // can only see in one direction
+ if (trainerObj->trainerType == TRAINER_TYPE_NORMAL) // can only see in one direction
{
approachDistance = sDirectionalApproachDistanceFuncs[trainerObj->facingDirection - 1](trainerObj, trainerObj->trainerRange_berryTreeId, x, y);
return CheckPathBetweenTrainerAndPlayer(trainerObj, approachDistance, trainerObj->facingDirection);
}
- else // can see in all directions
+ else // TRAINER_TYPE_SEE_ALL_DIRECTIONS, TRAINER_TYPE_BURIED
{
- for (i = 0; i < 4; i++)
+ for (i = 0; i < ARRAY_COUNT(sDirectionalApproachDistanceFuncs); i++)
{
approachDistance = sDirectionalApproachDistanceFuncs[i](trainerObj, trainerObj->trainerRange_berryTreeId, x, y);
if (CheckPathBetweenTrainerAndPlayer(trainerObj, approachDistance, i + 1)) // directions are 1-4 instead of 0-3. south north west east