diff options
author | Sierraffinity <sierra@domoreaweso.me> | 2020-05-04 20:54:27 -0700 |
---|---|---|
committer | Sierraffinity <sierra@domoreaweso.me> | 2020-05-04 20:54:27 -0700 |
commit | a1244aa5dd4c7519ba6c2dcba5796eec2eba1c90 (patch) | |
tree | 76cd7fa5a9ed806e19221e8d9a11337355f074f5 /src | |
parent | 072a98ca9aea8bfea7edc65f0a4a230974362b96 (diff) | |
parent | b3b99b52ca978104ebed318f1d238fc97892836a (diff) |
Merge branch 'master' of github.com:pret/pokeemerald
Diffstat (limited to 'src')
-rw-r--r-- | src/berry.c | 16 | ||||
-rw-r--r-- | src/bike.c | 2 | ||||
-rw-r--r-- | src/data/heal_locations.h | 44 | ||||
-rwxr-xr-x | src/data/object_events/object_event_graphics_info.h | 6 | ||||
-rwxr-xr-x | src/data/object_events/object_event_subsprites.h | 83 | ||||
-rw-r--r-- | src/data/pokemon/base_stats.h | 2 | ||||
-rw-r--r-- | src/event_object_movement.c | 11 | ||||
-rw-r--r-- | src/field_player_avatar.c | 3 | ||||
-rw-r--r-- | src/fldeff_dig.c | 2 | ||||
-rw-r--r-- | src/fldeff_flash.c | 4 | ||||
-rw-r--r-- | src/graphics.c | 20 | ||||
-rw-r--r-- | src/heal_location.c | 1 | ||||
-rwxr-xr-x | src/item_use.c | 6 | ||||
-rw-r--r-- | src/librfu_rfu.c | 57 | ||||
-rw-r--r-- | src/overworld.c | 2 | ||||
-rw-r--r-- | src/pokedex.c | 298 | ||||
-rw-r--r-- | src/region_map.c | 10 | ||||
-rw-r--r-- | src/trainer_hill.c | 3 | ||||
-rw-r--r-- | src/trainer_see.c | 19 |
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 |