Merge branch 'master' of github.com:pret/pokeemerald
This commit is contained in:
+13
-3
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -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;
|
||||
|
||||
+22
-22
@@ -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},
|
||||
};
|
||||
|
||||
@@ -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};
|
||||
|
||||
@@ -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}
|
||||
};
|
||||
|
||||
@@ -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, \
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
+1
-1
@@ -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;
|
||||
|
||||
+2
-2
@@ -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},
|
||||
{},
|
||||
|
||||
+10
-10
@@ -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");
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
+3
-3
@@ -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);
|
||||
|
||||
+26
-31
@@ -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)
|
||||
{
|
||||
|
||||
+1
-1
@@ -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;
|
||||
|
||||
+154
-152
@@ -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_ORDER
|
||||
},
|
||||
[SEARCH_TYPE_RIGHT] =
|
||||
{ SEARCH_TYPE_LEFT,
|
||||
0xFF,
|
||||
SEARCH_COLOR,
|
||||
SEARCH_ORDER
|
||||
},
|
||||
[SEARCH_ORDER] =
|
||||
[SEARCH_TYPE_LEFT] =
|
||||
{
|
||||
0xFF,
|
||||
0xFF,
|
||||
SEARCH_TYPE_LEFT,
|
||||
0xFF,
|
||||
SEARCH_TYPE_RIGHT,
|
||||
SEARCH_COLOR,
|
||||
SEARCH_ORDER
|
||||
},
|
||||
[SEARCH_TYPE_RIGHT] =
|
||||
{ SEARCH_TYPE_LEFT,
|
||||
0xFF,
|
||||
SEARCH_COLOR,
|
||||
SEARCH_ORDER
|
||||
},
|
||||
[SEARCH_ORDER] =
|
||||
{
|
||||
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;
|
||||
|
||||
+5
-5
@@ -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)
|
||||
|
||||
+2
-1
@@ -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] =
|
||||
|
||||
+10
-9
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user