From 7244b80fc6b19d7ae5d7b9d15ce6a70955696cc2 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Sun, 21 Jun 2020 02:36:46 -0400 Subject: [PATCH 1/8] Created constant for easier Ball Expansion. --- include/constants/items.h | 2 ++ src/battle_controller_player.c | 2 +- src/battle_main.c | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/include/constants/items.h b/include/constants/items.h index fafcac8b1..071e7a3e9 100644 --- a/include/constants/items.h +++ b/include/constants/items.h @@ -17,6 +17,8 @@ #define ITEM_LUXURY_BALL 11 #define ITEM_PREMIER_BALL 12 +#define END_BALLS ITEM_PREMIER_BALL + // Pokemon Items #define ITEM_POTION 13 #define ITEM_ANTIDOTE 14 diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 6dd9cd2f4..031b3bdde 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -316,7 +316,7 @@ static void HandleInputChooseAction(void) if (gBattleBufferA[gActiveBattler][1] == B_ACTION_USE_ITEM) { // Add item to bag if it is a ball - if (itemId <= ITEM_PREMIER_BALL) + if (itemId <= END_BALLS) AddBagItem(itemId, 1); else return; diff --git a/src/battle_main.c b/src/battle_main.c index e3eea60d0..805f1dcac 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -5547,7 +5547,7 @@ static void HandleAction_UseItem(void) ClearFuryCutterDestinyBondGrudge(gBattlerAttacker); gLastUsedItem = gBattleBufferB[gBattlerAttacker][1] | (gBattleBufferB[gBattlerAttacker][2] << 8); - if (gLastUsedItem <= ITEM_PREMIER_BALL) // is ball + if (gLastUsedItem <= END_BALLS) // is ball { gBattlescriptCurrInstr = gBattlescriptsForBallThrow[gLastUsedItem]; } From 06025e887f911acb1d777bbe80d9766a881122c6 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 24 Jun 2020 17:00:19 -0400 Subject: [PATCH 2/8] Allow flag/var counts to be updated alongside values --- include/constants/flags.h | 4 +++- include/constants/global.h | 2 -- include/constants/opponents.h | 1 + include/constants/vars.h | 1 + include/event_data.h | 3 --- include/global.h | 11 ++++++++--- src/bike.c | 1 - src/braille_puzzles.c | 1 - src/contest.c | 1 - src/contest_link_80F57C4.c | 1 - src/contest_link_80FC4F4.c | 1 - src/credits.c | 1 - src/easy_chat.c | 1 - src/faraway_island.c | 2 -- src/field_door.c | 1 - src/field_player_avatar.c | 1 - src/field_special_scene.c | 1 - src/field_specials.c | 1 - src/field_tasks.c | 1 - src/fldeff_misc.c | 1 - src/gym_leader_rematch.c | 1 - src/item_use.c | 2 -- src/main_menu.c | 1 - src/mauville_old_man.c | 1 - src/menu.c | 1 - src/mirage_tower.c | 1 - src/naming_screen.c | 1 - src/party_menu.c | 2 -- src/pokedex_area_screen.c | 1 - src/pokenav_match_call_1.c | 1 - src/post_battle_event_funcs.c | 1 - src/region_map.c | 1 - src/script_pokemon_util_80F87D8.c | 1 - src/trainer_card.c | 1 - src/union_room_player_avatar.c | 1 - 35 files changed, 13 insertions(+), 41 deletions(-) diff --git a/include/constants/flags.h b/include/constants/flags.h index 4dd18880f..a5994eb61 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -1573,7 +1573,7 @@ #define FLAG_UNUSED_0x91F (SYSTEM_FLAGS + 0xBF) // Unused Flag // Daily Flags -#define DAILY_FLAGS_START 0x920 +#define DAILY_FLAGS_START (FLAG_UNUSED_0x91F + 1) #define FLAG_UNUSED_0x920 (DAILY_FLAGS_START + 0x0) // Unused Flag #define FLAG_DAILY_CONTEST_LOBBY_RECEIVED_BERRY (DAILY_FLAGS_START + 0x1) #define FLAG_DAILY_SECRET_BASE (DAILY_FLAGS_START + 0x2) @@ -1641,6 +1641,8 @@ #define FLAG_UNUSED_0x95F (DAILY_FLAGS_START + 0x3F) // Unused Flag #define DAILY_FLAGS_END FLAG_UNUSED_0x95F +#define FLAGS_COUNT (DAILY_FLAGS_END + 1) + // Special Flags (Stored in EWRAM (gSpecialFlags), not in the SaveBlock) #define SPECIAL_FLAGS_START 0x4000 #define FLAG_HIDE_MAP_NAME_POPUP (SPECIAL_FLAGS_START + 0x0) diff --git a/include/constants/global.h b/include/constants/global.h index c7063d71c..a93e60e7c 100644 --- a/include/constants/global.h +++ b/include/constants/global.h @@ -34,8 +34,6 @@ #define POKEBLOCKS_COUNT 40 #define OBJECT_EVENTS_COUNT 16 #define BERRY_TREES_COUNT 128 -#define FLAGS_COUNT 300 -#define VARS_COUNT 256 #define MAIL_COUNT 16 #define SECRET_BASES_COUNT 20 #define TV_SHOWS_COUNT 25 diff --git a/include/constants/opponents.h b/include/constants/opponents.h index cd35cf6b7..c9cf9239d 100644 --- a/include/constants/opponents.h +++ b/include/constants/opponents.h @@ -859,6 +859,7 @@ // NOTE: Because each Trainer uses a flag to determine when they are defeated, there is only space for 9 additional trainers before trainer flag space overflows // More space can be made by shifting flags around in constants/flags.h or changing how trainer flags are handled +// MAX_TRAINERS_COUNT can be increased but will take up additional saveblock space #define TRAINERS_COUNT 855 #define MAX_TRAINERS_COUNT 864 diff --git a/include/constants/vars.h b/include/constants/vars.h index 4a38bde81..625c37aa9 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -274,6 +274,7 @@ #define VAR_UNUSED_0x40FF 0x40FF // Unused Var #define VARS_END 0x40FF +#define VARS_COUNT (VARS_END - VARS_START + 1) #define SPECIAL_VARS_START 0x8000 // special vars diff --git a/include/event_data.h b/include/event_data.h index 53999320f..8b4510e39 100644 --- a/include/event_data.h +++ b/include/event_data.h @@ -1,9 +1,6 @@ #ifndef GUARD_EVENT_DATA_H #define GUARD_EVENT_DATA_H -#include "constants/flags.h" -#include "constants/vars.h" - void InitEventData(void); void ClearTempFieldEventData(void); void ClearDailyFlags(void); diff --git a/include/global.h b/include/global.h index 2b03ebbe1..2083d7166 100644 --- a/include/global.h +++ b/include/global.h @@ -6,6 +6,8 @@ #include "config.h" // we need to define config before gba headers as print stuff needs the functions nulled before defines. #include "gba/gba.h" #include "constants/global.h" +#include "constants/flags.h" +#include "constants/vars.h" // Prevent cross-jump optimization. #define BLOCK_CROSS_JUMP asm(""); @@ -109,6 +111,11 @@ f; \ }) +#define ROUND_BITS_TO_BYTES(numBits)(((numBits) / 8) + (((numBits) % 8) ? 1 : 0)) + +#define DEX_FLAGS_NO (ROUND_BITS_TO_BYTES(POKEMON_SLOTS_NUMBER)) +#define NUM_FLAG_BYTES (ROUND_BITS_TO_BYTES(FLAGS_COUNT)) + struct Coords8 { s8 x; @@ -153,8 +160,6 @@ struct Time /*0x04*/ s8 seconds; }; -#define DEX_FLAGS_NO ((POKEMON_SLOTS_NUMBER / 8) + ((POKEMON_SLOTS_NUMBER % 8) ? 1 : 0)) - struct Pokedex { /*0x00*/ u8 order; @@ -923,7 +928,7 @@ struct SaveBlock1 /*0x9CA*/ u8 trainerRematches[MAX_REMATCH_ENTRIES]; /*0xA30*/ struct ObjectEvent objectEvents[OBJECT_EVENTS_COUNT]; /*0xC70*/ struct ObjectEventTemplate objectEventTemplates[OBJECT_EVENT_TEMPLATES_COUNT]; - /*0x1270*/ u8 flags[FLAGS_COUNT]; + /*0x1270*/ u8 flags[NUM_FLAG_BYTES]; /*0x139C*/ u16 vars[VARS_COUNT]; /*0x159C*/ u32 gameStats[NUM_GAME_STATS]; /*0x169C*/ struct BerryTree berryTrees[BERRY_TREES_COUNT]; diff --git a/src/bike.c b/src/bike.c index cd24d2487..3685ebfad 100644 --- a/src/bike.c +++ b/src/bike.c @@ -7,7 +7,6 @@ #include "metatile_behavior.h" #include "overworld.h" #include "sound.h" -#include "constants/flags.h" #include "constants/map_types.h" #include "constants/songs.h" diff --git a/src/braille_puzzles.c b/src/braille_puzzles.c index c00be82ad..f9f06823a 100644 --- a/src/braille_puzzles.c +++ b/src/braille_puzzles.c @@ -6,7 +6,6 @@ #include "sound.h" #include "task.h" #include "constants/field_effects.h" -#include "constants/flags.h" #include "constants/maps.h" #include "constants/songs.h" #include "constants/species.h" diff --git a/src/contest.c b/src/contest.c index 58628e35d..cb1bd6cf6 100644 --- a/src/contest.c +++ b/src/contest.c @@ -7,7 +7,6 @@ #include "constants/moves.h" #include "constants/songs.h" #include "constants/species.h" -#include "constants/flags.h" #include "battle.h" #include "battle_anim.h" #include "contest.h" diff --git a/src/contest_link_80F57C4.c b/src/contest_link_80F57C4.c index 0cecaed07..907e05993 100644 --- a/src/contest_link_80F57C4.c +++ b/src/contest_link_80F57C4.c @@ -40,7 +40,6 @@ #include "constants/rgb.h" #include "constants/songs.h" #include "constants/tv.h" -#include "constants/vars.h" #include "contest.h" struct ContestLinkUnk0 diff --git a/src/contest_link_80FC4F4.c b/src/contest_link_80FC4F4.c index d6cfea638..647ddc4db 100644 --- a/src/contest_link_80FC4F4.c +++ b/src/contest_link_80FC4F4.c @@ -6,7 +6,6 @@ #include "pokemon.h" #include "random.h" #include "task.h" -#include "constants/flags.h" static void sub_80FC5C0(u8); static void sub_80FC5DC(u8); diff --git a/src/credits.c b/src/credits.c index dd1166d82..8fc8a1f88 100644 --- a/src/credits.c +++ b/src/credits.c @@ -20,7 +20,6 @@ #include "trig.h" #include "graphics.h" #include "pokedex.h" -#include "constants/vars.h" #include "event_data.h" #include "random.h" #include "constants/species.h" diff --git a/src/easy_chat.c b/src/easy_chat.c index 1bdb3fdc0..bd4034c01 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -29,7 +29,6 @@ #include "window.h" #include "constants/easy_chat.h" #include "constants/event_objects.h" -#include "constants/flags.h" #include "constants/lilycove_lady.h" #include "constants/mauville_old_man.h" #include "constants/songs.h" diff --git a/src/faraway_island.c b/src/faraway_island.c index f8e3eac14..31e853aef 100755 --- a/src/faraway_island.c +++ b/src/faraway_island.c @@ -6,10 +6,8 @@ #include "metatile_behavior.h" #include "sprite.h" #include "constants/event_objects.h" -#include "constants/flags.h" #include "constants/maps.h" #include "constants/metatile_behaviors.h" -#include "constants/vars.h" static u8 sub_81D4890(u8); static bool8 sub_81D4C14(struct ObjectEvent*, u8); diff --git a/src/field_door.c b/src/field_door.c index b4794349c..e81c3dc4b 100644 --- a/src/field_door.c +++ b/src/field_door.c @@ -5,7 +5,6 @@ #include "fieldmap.h" #include "metatile_behavior.h" #include "task.h" -#include "constants/flags.h" #include "constants/maps.h" #include "constants/songs.h" #include "constants/metatile_labels.h" diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index b0918a78d..f5f6e99f7 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -25,7 +25,6 @@ #include "constants/event_objects.h" #include "constants/event_object_movement.h" #include "constants/field_effects.h" -#include "constants/flags.h" #include "constants/maps.h" #include "constants/moves.h" #include "constants/songs.h" diff --git a/src/field_special_scene.c b/src/field_special_scene.c index 540bcd1d4..3a3367957 100644 --- a/src/field_special_scene.c +++ b/src/field_special_scene.c @@ -17,7 +17,6 @@ #include "constants/event_object_movement.h" #include "constants/field_specials.h" #include "constants/songs.h" -#include "constants/vars.h" #include "constants/metatile_labels.h" #define SECONDS(value) ((signed) (60.0 * value + 0.5)) diff --git a/src/field_specials.c b/src/field_specials.c index 818cd70db..c41aa889f 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -63,7 +63,6 @@ #include "constants/species.h" #include "constants/moves.h" #include "constants/party_menu.h" -#include "constants/vars.h" #include "constants/battle_frontier.h" #include "constants/weather.h" #include "constants/metatile_labels.h" diff --git a/src/field_tasks.c b/src/field_tasks.c index 21b2732c3..901535677 100644 --- a/src/field_tasks.c +++ b/src/field_tasks.c @@ -19,7 +19,6 @@ #include "constants/field_tasks.h" #include "constants/items.h" #include "constants/songs.h" -#include "constants/vars.h" #include "constants/metatile_labels.h" struct PacifidlogMetatileOffsets diff --git a/src/fldeff_misc.c b/src/fldeff_misc.c index 9574ac563..a778d0029 100644 --- a/src/fldeff_misc.c +++ b/src/fldeff_misc.c @@ -23,7 +23,6 @@ #include "constants/metatile_labels.h" #include "constants/songs.h" #include "constants/tv.h" -#include "constants/vars.h" EWRAM_DATA struct MapPosition gPlayerFacingPosition = {0}; diff --git a/src/gym_leader_rematch.c b/src/gym_leader_rematch.c index 355ae5534..efe874894 100644 --- a/src/gym_leader_rematch.c +++ b/src/gym_leader_rematch.c @@ -1,5 +1,4 @@ #include "global.h" -#include "constants/flags.h" #include "random.h" #include "event_data.h" #include "battle_setup.h" diff --git a/src/item_use.c b/src/item_use.c index ff689a19a..0aae441c8 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -38,11 +38,9 @@ #include "text.h" #include "constants/event_bg.h" #include "constants/event_objects.h" -#include "constants/flags.h" #include "constants/item_effects.h" #include "constants/items.h" #include "constants/songs.h" -#include "constants/vars.h" static void SetUpItemUseCallback(u8 taskId); static void FieldCB_UseItemOnField(void); diff --git a/src/main_menu.c b/src/main_menu.c index 91931e581..781d7f85c 100644 --- a/src/main_menu.c +++ b/src/main_menu.c @@ -1,7 +1,6 @@ #include "global.h" #include "trainer_pokemon_sprites.h" #include "bg.h" -#include "constants/flags.h" #include "constants/rgb.h" #include "constants/songs.h" #include "constants/species.h" diff --git a/src/mauville_old_man.c b/src/mauville_old_man.c index dc5a0b335..bbf0f8972 100644 --- a/src/mauville_old_man.c +++ b/src/mauville_old_man.c @@ -3,7 +3,6 @@ #include "constants/songs.h" #include "constants/easy_chat.h" #include "constants/event_objects.h" -#include "constants/vars.h" #include "mauville_old_man.h" #include "event_data.h" #include "string_util.h" diff --git a/src/menu.c b/src/menu.c index 738c904ce..3db019d8e 100644 --- a/src/menu.c +++ b/src/menu.c @@ -18,7 +18,6 @@ #include "task.h" #include "text_window.h" #include "window.h" -#include "constants/flags.h" #include "constants/songs.h" #define DLG_WINDOW_PALETTE_NUM 15 diff --git a/src/mirage_tower.c b/src/mirage_tower.c index 2a6d6d6c4..e2f5cefb7 100644 --- a/src/mirage_tower.c +++ b/src/mirage_tower.c @@ -14,7 +14,6 @@ #include "sprite.h" #include "task.h" #include "window.h" -#include "constants/flags.h" #include "constants/maps.h" #include "constants/rgb.h" #include "constants/songs.h" diff --git a/src/naming_screen.c b/src/naming_screen.c index 161d4a7e0..84b540e99 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -13,7 +13,6 @@ #include "field_player_avatar.h" #include "event_object_movement.h" #include "event_data.h" -#include "constants/vars.h" #include "constants/songs.h" #include "pokemon_storage_system.h" #include "graphics.h" diff --git a/src/party_menu.c b/src/party_menu.c index c4497e824..9c30b4412 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -67,7 +67,6 @@ #include "constants/battle_frontier.h" #include "constants/easy_chat.h" #include "constants/field_effects.h" -#include "constants/flags.h" #include "constants/item_effects.h" #include "constants/items.h" #include "constants/maps.h" @@ -76,7 +75,6 @@ #include "constants/rgb.h" #include "constants/songs.h" #include "constants/species.h" -#include "constants/vars.h" #define PARTY_PAL_SELECTED (1 << 0) #define PARTY_PAL_FAINTED (1 << 1) diff --git a/src/pokedex_area_screen.c b/src/pokedex_area_screen.c index a2545cc1a..0232d4fc4 100755 --- a/src/pokedex_area_screen.c +++ b/src/pokedex_area_screen.c @@ -21,7 +21,6 @@ #include "constants/rgb.h" #include "constants/songs.h" #include "constants/species.h" -#include "constants/vars.h" #define AREA_SCREEN_WIDTH 32 #define AREA_SCREEN_HEIGHT 20 diff --git a/src/pokenav_match_call_1.c b/src/pokenav_match_call_1.c index ef1d5343f..1e4239bbc 100755 --- a/src/pokenav_match_call_1.c +++ b/src/pokenav_match_call_1.c @@ -12,7 +12,6 @@ #include "sound.h" #include "string_util.h" #include "strings.h" -#include "constants/flags.h" #include "constants/songs.h" struct Pokenav3Struct diff --git a/src/post_battle_event_funcs.c b/src/post_battle_event_funcs.c index 4fa5d1b21..07690960f 100644 --- a/src/post_battle_event_funcs.c +++ b/src/post_battle_event_funcs.c @@ -8,7 +8,6 @@ #include "script_pokemon_util_80F87D8.h" #include "tv.h" #include "constants/heal_locations.h" -#include "constants/flags.h" #include "constants/tv.h" int GameClear(void) diff --git a/src/region_map.c b/src/region_map.c index 287e97fe9..b8e07c835 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -9,7 +9,6 @@ #include "trig.h" #include "constants/maps.h" #include "overworld.h" -#include "constants/flags.h" #include "event_data.h" #include "secret_base.h" #include "string_util.h" diff --git a/src/script_pokemon_util_80F87D8.c b/src/script_pokemon_util_80F87D8.c index 134004fd0..9d21b44b0 100755 --- a/src/script_pokemon_util_80F87D8.c +++ b/src/script_pokemon_util_80F87D8.c @@ -30,7 +30,6 @@ #include "constants/items.h" #include "constants/species.h" #include "constants/tv.h" -#include "constants/vars.h" #include "constants/battle_frontier.h" extern const u16 gObjectEventPalette8[]; diff --git a/src/trainer_card.c b/src/trainer_card.c index fb92dc336..d625bc13e 100755 --- a/src/trainer_card.c +++ b/src/trainer_card.c @@ -27,7 +27,6 @@ #include "trainer_pokemon_sprites.h" #include "script_pokemon_util_80F87D8.h" #include "constants/songs.h" -#include "constants/flags.h" #include "constants/game_stat.h" #include "constants/battle_frontier.h" #include "constants/rgb.h" diff --git a/src/union_room_player_avatar.c b/src/union_room_player_avatar.c index 8a09306c0..600868f14 100644 --- a/src/union_room_player_avatar.c +++ b/src/union_room_player_avatar.c @@ -8,7 +8,6 @@ #include "union_room.h" #include "constants/event_objects.h" #include "constants/event_object_movement.h" -#include "constants/flags.h" EWRAM_DATA struct UnkStruct_8019BA8 * gUnknown_02022C64 = NULL; EWRAM_DATA u32 gUnknown_02022C68 = 0; From 2ed1f7c6f92abe93d86b921709576b82970f0848 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Wed, 24 Jun 2020 17:59:27 -0400 Subject: [PATCH 3/8] Byte-align daily flags --- include/constants/flags.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/include/constants/flags.h b/include/constants/flags.h index a5994eb61..a9c7abae1 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -1573,7 +1573,9 @@ #define FLAG_UNUSED_0x91F (SYSTEM_FLAGS + 0xBF) // Unused Flag // Daily Flags -#define DAILY_FLAGS_START (FLAG_UNUSED_0x91F + 1) +// These flags are cleared once per day +// The start and end are byte-aligned because the flags are cleared in byte increments +#define DAILY_FLAGS_START (FLAG_UNUSED_0x91F + (8 - FLAG_UNUSED_0x91F % 8)) #define FLAG_UNUSED_0x920 (DAILY_FLAGS_START + 0x0) // Unused Flag #define FLAG_DAILY_CONTEST_LOBBY_RECEIVED_BERRY (DAILY_FLAGS_START + 0x1) #define FLAG_DAILY_SECRET_BASE (DAILY_FLAGS_START + 0x2) @@ -1639,7 +1641,7 @@ #define FLAG_UNUSED_0x95D (DAILY_FLAGS_START + 0x3D) // Unused Flag #define FLAG_UNUSED_0x95E (DAILY_FLAGS_START + 0x3E) // Unused Flag #define FLAG_UNUSED_0x95F (DAILY_FLAGS_START + 0x3F) // Unused Flag -#define DAILY_FLAGS_END FLAG_UNUSED_0x95F +#define DAILY_FLAGS_END (FLAG_UNUSED_0x95F + (7 - FLAG_UNUSED_0x95F % 8)) #define FLAGS_COUNT (DAILY_FLAGS_END + 1) From 7d5ad8f7b4de78e7fc3d956ba7de469a5788a61e Mon Sep 17 00:00:00 2001 From: GriffinR Date: Fri, 26 Jun 2020 02:44:07 -0400 Subject: [PATCH 4/8] Use charmap constants for PLAY_SE --- src/battle_message.c | 18 +++++++++--------- src/strings.c | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/battle_message.c b/src/battle_message.c index efa4500c8..34b6abe76 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -312,23 +312,23 @@ static const u8 sText_StatsWontIncrease2[] = _("{B_ATK_NAME_WITH_PREFIX}'s stats static const u8 sText_StatsWontDecrease2[] = _("{B_DEF_NAME_WITH_PREFIX}'s stats won't\ngo any lower!"); static const u8 sText_CriticalHit[] = _("A critical hit!"); static const u8 sText_OneHitKO[] = _("It's a one-hit KO!"); -static const u8 sText_123Poof[] = _("{PAUSE 32}1, {PAUSE 15}2, and{PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE 0x0038}Poof!\p"); +static const u8 sText_123Poof[] = _("{PAUSE 32}1, {PAUSE 15}2, and{PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE SE_KON}Poof!\p"); static const u8 sText_AndEllipsis[] = _("And…\p"); static const u8 sText_HMMovesCantBeForgotten[] = _("HM moves can't be\nforgotten now.\p"); static const u8 sText_NotVeryEffective[] = _("It's not very effective…"); static const u8 sText_SuperEffective[] = _("It's super effective!"); -static const u8 sText_GotAwaySafely[] = _("{PLAY_SE 0x0011}Got away safely!\p"); -static const u8 sText_PkmnFledUsingIts[] = _("{PLAY_SE 0x0011}{B_ATK_NAME_WITH_PREFIX} fled\nusing its {B_LAST_ITEM}!\p"); -static const u8 sText_PkmnFledUsing[] = _("{PLAY_SE 0x0011}{B_ATK_NAME_WITH_PREFIX} fled\nusing {B_ATK_ABILITY}!\p"); -static const u8 sText_WildPkmnFled[] = _("{PLAY_SE 0x0011}Wild {B_BUFF1} fled!"); +static const u8 sText_GotAwaySafely[] = _("{PLAY_SE SE_NIGERU}Got away safely!\p"); +static const u8 sText_PkmnFledUsingIts[] = _("{PLAY_SE SE_NIGERU}{B_ATK_NAME_WITH_PREFIX} fled\nusing its {B_LAST_ITEM}!\p"); +static const u8 sText_PkmnFledUsing[] = _("{PLAY_SE SE_NIGERU}{B_ATK_NAME_WITH_PREFIX} fled\nusing {B_ATK_ABILITY}!\p"); +static const u8 sText_WildPkmnFled[] = _("{PLAY_SE SE_NIGERU}Wild {B_BUFF1} fled!"); static const u8 sText_PlayerDefeatedLinkTrainer[] = _("Player defeated\n{B_LINK_OPPONENT1_NAME}!"); static const u8 sText_TwoLinkTrainersDefeated[] = _("Player beat {B_LINK_OPPONENT1_NAME}\nand {B_LINK_OPPONENT2_NAME}!"); static const u8 sText_PlayerLostAgainstLinkTrainer[] = _("Player lost against\n{B_LINK_OPPONENT1_NAME}!"); static const u8 sText_PlayerLostToTwo[] = _("Player lost to {B_LINK_OPPONENT1_NAME}\nand {B_LINK_OPPONENT2_NAME}!"); static const u8 sText_PlayerBattledToDrawLinkTrainer[] = _("Player battled to a draw against\n{B_LINK_OPPONENT1_NAME}!"); static const u8 sText_PlayerBattledToDrawVsTwo[] = _("Player battled to a draw against\n{B_LINK_OPPONENT1_NAME} and {B_LINK_OPPONENT2_NAME}!"); -static const u8 sText_WildFled[] = _("{PLAY_SE 0x0011}{B_LINK_OPPONENT1_NAME} fled!"); -static const u8 sText_TwoWildFled[] = _("{PLAY_SE 0x0011}{B_LINK_OPPONENT1_NAME} and\n{B_LINK_OPPONENT2_NAME} fled!"); +static const u8 sText_WildFled[] = _("{PLAY_SE SE_NIGERU}{B_LINK_OPPONENT1_NAME} fled!"); +static const u8 sText_TwoWildFled[] = _("{PLAY_SE SE_NIGERU}{B_LINK_OPPONENT1_NAME} and\n{B_LINK_OPPONENT2_NAME} fled!"); static const u8 sText_NoRunningFromTrainers[] = _("No! There's no running\nfrom a TRAINER battle!\p"); static const u8 sText_CantEscape[] = _("Can't escape!\p"); static const u8 sText_DontLeaveBirch[] = _("PROF. BIRCH: Don't leave me like this!\p"); @@ -378,7 +378,7 @@ static const u8 sText_PkmnCuriousAboutX[] = _("{B_OPPONENT_MON1_NAME} is curious static const u8 sText_PkmnEnthralledByX[] = _("{B_OPPONENT_MON1_NAME} is enthralled by\nthe {B_BUFF1}!"); static const u8 sText_PkmnIgnoredX[] = _("{B_OPPONENT_MON1_NAME} completely ignored\nthe {B_BUFF1}!"); static const u8 sText_ThrewPokeblockAtPkmn[] = _("{B_PLAYER_NAME} threw a {POKEBLOCK}\nat the {B_OPPONENT_MON1_NAME}!"); -static const u8 sText_OutOfSafariBalls[] = _("{PLAY_SE 0x0049}ANNOUNCER: You're out of\nSAFARI BALLS! Game over!\p"); +static const u8 sText_OutOfSafariBalls[] = _("{PLAY_SE SE_PINPON}ANNOUNCER: You're out of\nSAFARI BALLS! Game over!\p"); static const u8 sText_OpponentMon1Appeared[] = _("{B_OPPONENT_MON1_NAME} appeared!\p"); static const u8 sText_WildPkmnAppeared[] = _("Wild {B_OPPONENT_MON1_NAME} appeared!\p"); static const u8 sText_WildPkmnAppeared2[] = _("Wild {B_OPPONENT_MON1_NAME} appeared!\p"); @@ -1303,7 +1303,7 @@ static const u8 sText_QuestionForfeitMatch[] = _("Would you like to forfeit the static const u8 sText_ForfeitedMatch[] = _("{B_PLAYER_NAME} forfeited the match!"); static const u8 sText_Trainer1WinText[] = _("{B_TRAINER1_WIN_TEXT}"); static const u8 sText_Trainer2WinText[] = _("{B_TRAINER2_WIN_TEXT}"); -static const u8 sText_Trainer1Fled[] = _( "{PLAY_SE 0x0011}{B_TRAINER1_CLASS} {B_TRAINER1_NAME} fled!"); +static const u8 sText_Trainer1Fled[] = _( "{PLAY_SE SE_NIGERU}{B_TRAINER1_CLASS} {B_TRAINER1_NAME} fled!"); static const u8 sText_PlayerLostAgainstTrainer1[] = _("Player lost against\n{B_TRAINER1_CLASS} {B_TRAINER1_NAME}!"); static const u8 sText_PlayerBattledToDrawTrainer1[] = _("Player battled to a draw against\n{B_TRAINER1_CLASS} {B_TRAINER1_NAME}!"); const u8 gText_RecordBattleToPass[] = _("Would you like to record your battle\non your FRONTIER PASS?"); diff --git a/src/strings.c b/src/strings.c index 3ca7f693f..7799580e9 100644 --- a/src/strings.c +++ b/src/strings.c @@ -402,7 +402,7 @@ const u8 gText_PkmnNeedsToReplaceMove[] = _("{STR_VAR_1} wants to learn the\nmov const u8 gText_StopLearningMove2[] = _("Stop trying to teach\n{STR_VAR_2}?"); const u8 gText_MoveNotLearned[] = _("{STR_VAR_1} did not learn the\nmove {STR_VAR_2}.{PAUSE_UNTIL_PRESS}"); const u8 gText_WhichMoveToForget[] = _("Which move should be forgotten?{PAUSE_UNTIL_PRESS}"); -const u8 gText_12PoofForgotMove[] = _("1, {PAUSE 15}2, and{PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE 0x0038}Poof!\p{STR_VAR_1} forgot how to\nuse {STR_VAR_2}.\pAnd…{PAUSE_UNTIL_PRESS}"); +const u8 gText_12PoofForgotMove[] = _("1, {PAUSE 15}2, and{PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE SE_KON}Poof!\p{STR_VAR_1} forgot how to\nuse {STR_VAR_2}.\pAnd…{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnAlreadyKnows[] = _("{STR_VAR_1} already knows\n{STR_VAR_2}.{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnHPRestoredByVar2[] = _("{STR_VAR_1}'s HP was restored\nby {STR_VAR_2} point(s).{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnCuredOfPoison[] = _("{STR_VAR_1} was cured of its\npoisoning.{PAUSE_UNTIL_PRESS}"); @@ -1745,7 +1745,7 @@ const u8 gText_MoveRelearnerTeachMoveConfirm[] = _("Teach {STR_VAR_2}?"); const u8 gText_MoveRelearnerPkmnLearnedMove[] = _("{STR_VAR_1} learned\n{STR_VAR_2}!"); const u8 gText_MoveRelearnerPkmnTryingToLearnMove[] = _("{STR_VAR_1} is trying to learn\n{STR_VAR_2}.\pBut {STR_VAR_1} can't learn more\nthan four moves.\pDelete an older move to make\nroom for {STR_VAR_2}?"); const u8 gText_MoveRelearnerStopTryingToTeachMove[] = _("Stop trying to teach\n{STR_VAR_2}?"); -const u8 gText_MoveRelearnerAndPoof[] = _("{PAUSE 32}1, {PAUSE 15}2, and {PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE 0x0038}Poof!\p"); +const u8 gText_MoveRelearnerAndPoof[] = _("{PAUSE 32}1, {PAUSE 15}2, and {PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE SE_KON}Poof!\p"); const u8 gText_MoveRelearnerPkmnForgotMoveAndLearnedNew[] = _("{STR_VAR_1} forgot {STR_VAR_3}.\pAnd…\p{STR_VAR_1} learned {STR_VAR_2}."); const u8 gText_MoveRelearnedPkmnDidNotLearnMove[] = _("{STR_VAR_1} did not learn the\nmove {STR_VAR_2}."); // Unused const u8 gText_MoveRelearnerGiveUp[] = _("Give up trying to teach a new\nmove to {STR_VAR_1}?"); From a35ab0d0232a8fc54f12ed618c9a0f94fd1a9c6d Mon Sep 17 00:00:00 2001 From: GriffinR Date: Mon, 29 Jun 2020 15:28:59 -0400 Subject: [PATCH 5/8] Fix segfault in gbagfx --- tools/gbagfx/main.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/gbagfx/main.c b/tools/gbagfx/main.c index 61e93ea45..cf3031696 100644 --- a/tools/gbagfx/main.c +++ b/tools/gbagfx/main.c @@ -92,6 +92,7 @@ void HandleGbaToPngCommand(char *inputPath, char *outputPath, int argc, char **a options.width = 1; options.metatileWidth = 1; options.metatileHeight = 1; + options.tilemapFilePath = NULL; options.isAffineMap = false; for (int i = 3; i < argc; i++) From 535189bf14d73af495705e98e4795cda61994114 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 11 Jul 2020 10:22:34 -0400 Subject: [PATCH 6/8] Fix some UB exposed with GCC 10.1.0 --- include/item_menu.h | 5 +---- src/item_menu.c | 8 ++++---- src/pokedex.c | 4 ++++ 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/include/item_menu.h b/include/item_menu.h index 9930ccd4f..edfb986f7 100644 --- a/include/item_menu.h +++ b/include/item_menu.h @@ -52,10 +52,7 @@ struct BagMenuStruct void (*exitCallback)(void); u8 tilemapBuffer[0x800]; u8 spriteId[12]; - u8 windowPointers[7]; - u8 unk817; - u8 unk818; - u8 unk819; + u8 windowPointers[10]; u8 itemOriginalLocation; u8 pocketSwitchDisabled:4; u8 itemIconSlot:2; diff --git a/src/item_menu.c b/src/item_menu.c index 561019e89..591ebe018 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -1776,7 +1776,7 @@ void Task_ChooseHowManyToToss(u8 taskId) if (AdjustQuantityAccordingToDPadInput(&tItemCount, data[2]) == TRUE) { - PrintItemDepositAmount(gBagMenu->unk817, tItemCount); + PrintItemDepositAmount(gBagMenu->windowPointers[7], tItemCount); } else if (gMain.newKeys & A_BUTTON) { @@ -2050,7 +2050,7 @@ void Task_BuyHowManyDialogueHandleInput(u8 taskId) if (AdjustQuantityAccordingToDPadInput(&tItemCount, data[2]) == TRUE) { - PrintItemSoldAmount(gBagMenu->unk818, tItemCount, (ItemId_GetPrice(gSpecialVar_ItemId) / 2) * tItemCount); + PrintItemSoldAmount(gBagMenu->windowPointers[8], tItemCount, (ItemId_GetPrice(gSpecialVar_ItemId) / 2) * tItemCount); } else if (gMain.newKeys & A_BUTTON) { @@ -2094,7 +2094,7 @@ void sub_81AD8C8(u8 taskId) LoadBagItemListBuffers(gBagPositionStruct.pocket); data[0] = ListMenuInit(&gMultiuseListMenuTemplate, *scrollPos, *cursorPos); BagMenu_PrintCursor_(data[0], 2); - PrintMoneyAmountInMoneyBox(gBagMenu->unk819, GetMoney(&gSaveBlock1Ptr->money), 0); + PrintMoneyAmountInMoneyBox(gBagMenu->windowPointers[9], GetMoney(&gSaveBlock1Ptr->money), 0); gTasks[taskId].func = sub_81AD9C0; } @@ -2134,7 +2134,7 @@ void sub_81ADA7C(u8 taskId) if (AdjustQuantityAccordingToDPadInput(&tItemCount, data[2]) == TRUE) { - PrintItemDepositAmount(gBagMenu->unk817, tItemCount); + PrintItemDepositAmount(gBagMenu->windowPointers[7], tItemCount); } else if (gMain.newKeys & A_BUTTON) { diff --git a/src/pokedex.c b/src/pokedex.c index d2e1a0666..0541f3f2e 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -4521,7 +4521,11 @@ static void UnusedPrintMonName(u8 windowId, const u8* name, u8 left, u8 top) ; for (i = 0; i < nameLength; i++) str[ARRAY_COUNT(str) - nameLength + i] = name[i]; +#ifdef UBFIX + str[ARRAY_COUNT(str) - 1] = EOS; +#else str[ARRAY_COUNT(str)] = EOS; +#endif PrintInfoSubMenuText(windowId, str, left, top); } From b31efcd6e3da8fc303a19d9845ca5e9a7d294747 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada Date: Sun, 12 Jul 2020 01:49:32 -0400 Subject: [PATCH 7/8] Renamed constant, --- include/constants/items.h | 2 +- src/battle_controller_player.c | 2 +- src/battle_main.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/constants/items.h b/include/constants/items.h index 071e7a3e9..ba4d3c49e 100644 --- a/include/constants/items.h +++ b/include/constants/items.h @@ -17,7 +17,7 @@ #define ITEM_LUXURY_BALL 11 #define ITEM_PREMIER_BALL 12 -#define END_BALLS ITEM_PREMIER_BALL +#define LAST_BALL ITEM_PREMIER_BALL // Pokemon Items #define ITEM_POTION 13 diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 031b3bdde..b933b4a60 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -316,7 +316,7 @@ static void HandleInputChooseAction(void) if (gBattleBufferA[gActiveBattler][1] == B_ACTION_USE_ITEM) { // Add item to bag if it is a ball - if (itemId <= END_BALLS) + if (itemId <= LAST_BALL) AddBagItem(itemId, 1); else return; diff --git a/src/battle_main.c b/src/battle_main.c index 805f1dcac..d6e3d5845 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -5547,7 +5547,7 @@ static void HandleAction_UseItem(void) ClearFuryCutterDestinyBondGrudge(gBattlerAttacker); gLastUsedItem = gBattleBufferB[gBattlerAttacker][1] | (gBattleBufferB[gBattlerAttacker][2] << 8); - if (gLastUsedItem <= END_BALLS) // is ball + if (gLastUsedItem <= LAST_BALL) // is ball { gBattlescriptCurrInstr = gBattlescriptsForBallThrow[gLastUsedItem]; } From 0425cb66ef9166de7b5129c1b3124fd14bfe2123 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 14 Jul 2020 11:13:03 +0200 Subject: [PATCH 8/8] Give proper names to some functions --- include/battle_main.h | 8 ++++---- src/battle_controller_player.c | 16 ++++++++-------- src/battle_main.c | 18 +++++++++--------- src/main.c | 2 +- src/pokeball.c | 4 ++-- 5 files changed, 24 insertions(+), 24 deletions(-) diff --git a/include/battle_main.h b/include/battle_main.h index e04db17bb..217b10b39 100644 --- a/include/battle_main.h +++ b/include/battle_main.h @@ -57,15 +57,15 @@ u32 sub_80397C4(u32 setId, u32 tableId); void SpriteCb_WildMon(struct Sprite *sprite); void SpriteCallbackDummy_2(struct Sprite *sprite); void SpriteCB_FaintOpponentMon(struct Sprite *sprite); -void sub_8039AD8(struct Sprite *sprite); -void sub_8039B2C(struct Sprite *sprite); -void sub_8039B58(struct Sprite *sprite); +void SpriteCb_ShowAsMoveTarget(struct Sprite *sprite); +void SpriteCb_HideAsMoveTarget(struct Sprite *sprite); +void SpriteCb_OpponentMonFromBall(struct Sprite *sprite); void sub_8039BB4(struct Sprite *sprite); void sub_80105DC(struct Sprite *sprite); void sub_8039C00(struct Sprite *sprite); void DoBounceEffect(u8 battlerId, u8 b, s8 c, s8 d); void EndBounceEffect(u8 battlerId, bool8 b); -void sub_8039E44(struct Sprite *sprite); +void SpriteCb_PlayerMonFromBall(struct Sprite *sprite); void sub_8039E60(struct Sprite *sprite); void sub_8039E84(struct Sprite *sprite); void sub_8039E9C(struct Sprite *sprite); diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 6dd9cd2f4..a1fec0fe1 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -359,7 +359,7 @@ static void HandleInputChooseTarget(void) } while (i < gBattlersCount); } - if (gMain.heldKeys & DPAD_ANY && gSaveBlock2Ptr->optionsButtonMode == 2) + if (gMain.heldKeys & DPAD_ANY && gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_L_EQUALS_A) gPlayerDpadHoldFrames++; else gPlayerDpadHoldFrames = 0; @@ -367,7 +367,7 @@ static void HandleInputChooseTarget(void) if (gMain.newKeys & A_BUTTON) { PlaySE(SE_SELECT); - gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039B2C; + gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_HideAsMoveTarget; BtlController_EmitTwoReturnValues(1, 10, gMoveSelectionCursor[gActiveBattler] | (gMultiUsePlayerCursor << 8)); EndBounceEffect(gMultiUsePlayerCursor, BOUNCE_HEALTHBOX); PlayerBufferExecCompleted(); @@ -375,7 +375,7 @@ static void HandleInputChooseTarget(void) else if (gMain.newKeys & B_BUTTON || gPlayerDpadHoldFrames > 59) { PlaySE(SE_SELECT); - gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039B2C; + gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_HideAsMoveTarget; gBattlerControllerFuncs[gActiveBattler] = HandleInputChooseMove; DoBounceEffect(gActiveBattler, BOUNCE_HEALTHBOX, 7, 1); DoBounceEffect(gActiveBattler, BOUNCE_MON, 7, 1); @@ -384,7 +384,7 @@ static void HandleInputChooseTarget(void) else if (gMain.newKeys & (DPAD_LEFT | DPAD_UP)) { PlaySE(SE_SELECT); - gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039B2C; + gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_HideAsMoveTarget; do { @@ -421,12 +421,12 @@ static void HandleInputChooseTarget(void) if (gAbsentBattlerFlags & gBitTable[gMultiUsePlayerCursor]) i = 0; } while (i == 0); - gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039AD8; + gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_ShowAsMoveTarget; } else if (gMain.newKeys & (DPAD_RIGHT | DPAD_DOWN)) { PlaySE(SE_SELECT); - gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039B2C; + gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_HideAsMoveTarget; do { @@ -463,7 +463,7 @@ static void HandleInputChooseTarget(void) if (gAbsentBattlerFlags & gBitTable[gMultiUsePlayerCursor]) i = 0; } while (i == 0); - gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039AD8; + gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_ShowAsMoveTarget; } } @@ -536,7 +536,7 @@ static void HandleInputChooseMove(void) else gMultiUsePlayerCursor = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); - gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = sub_8039AD8; + gSprites[gBattlerSpriteIds[gMultiUsePlayerCursor]].callback = SpriteCb_ShowAsMoveTarget; } } else if (gMain.newKeys & B_BUTTON || gPlayerDpadHoldFrames > 59) diff --git a/src/battle_main.c b/src/battle_main.c index dd31e12d5..7b91ffbd3 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -96,7 +96,7 @@ static void SpriteCb_WildMonShowHealthbox(struct Sprite *sprite); static void SpriteCb_WildMonAnimate(struct Sprite *sprite); static void sub_80398D0(struct Sprite *sprite); static void SpriteCB_AnimFaintOpponent(struct Sprite *sprite); -static void sub_8039AF4(struct Sprite *sprite); +static void SpriteCb_BlinkVisible(struct Sprite *sprite); static void SpriteCallbackDummy_3(struct Sprite *sprite); static void oac_poke_ally_(struct Sprite *sprite); static void SpecialStatusesClear(void); @@ -2798,31 +2798,31 @@ static void SpriteCB_AnimFaintOpponent(struct Sprite *sprite) } } -void sub_8039AD8(struct Sprite *sprite) +// Used when selecting a move, which can hit multiple targets, in double battles. +void SpriteCb_ShowAsMoveTarget(struct Sprite *sprite) { sprite->data[3] = 8; sprite->data[4] = sprite->invisible; - sprite->callback = sub_8039AF4; + sprite->callback = SpriteCb_BlinkVisible; } -static void sub_8039AF4(struct Sprite *sprite) +static void SpriteCb_BlinkVisible(struct Sprite *sprite) { - sprite->data[3]--; - if (sprite->data[3] == 0) + if (--sprite->data[3] == 0) { sprite->invisible ^= 1; sprite->data[3] = 8; } } -void sub_8039B2C(struct Sprite *sprite) +void SpriteCb_HideAsMoveTarget(struct Sprite *sprite) { sprite->invisible = sprite->data[4]; sprite->data[4] = FALSE; sprite->callback = SpriteCallbackDummy_2; } -void sub_8039B58(struct Sprite *sprite) +void SpriteCb_OpponentMonFromBall(struct Sprite *sprite) { if (sprite->affineAnimEnded) { @@ -2965,7 +2965,7 @@ static void SpriteCB_BounceEffect(struct Sprite *sprite) #undef sBouncerSpriteId #undef sWhich -void sub_8039E44(struct Sprite *sprite) +void SpriteCb_PlayerMonFromBall(struct Sprite *sprite) { if (sprite->affineAnimEnded) BattleAnimateBackSprite(sprite, sprite->sSpeciesId); diff --git a/src/main.c b/src/main.c index 5249d11fa..454fefc5c 100644 --- a/src/main.c +++ b/src/main.c @@ -280,7 +280,7 @@ static void ReadKeys(void) gMain.heldKeys = gMain.heldKeysRaw; // Remap L to A if the L=A option is enabled. - if (gSaveBlock2Ptr->optionsButtonMode == 2) + if (gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_L_EQUALS_A) { if (gMain.newKeys & L_BUTTON) gMain.newKeys |= A_BUTTON; diff --git a/src/pokeball.c b/src/pokeball.c index d473f9ba0..1a0561c33 100644 --- a/src/pokeball.c +++ b/src/pokeball.c @@ -798,9 +798,9 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite) StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[sprite->sBattler]], 1); if (GetBattlerSide(sprite->sBattler) == B_SIDE_OPPONENT) - gSprites[gBattlerSpriteIds[sprite->sBattler]].callback = sub_8039B58; + gSprites[gBattlerSpriteIds[sprite->sBattler]].callback = SpriteCb_OpponentMonFromBall; else - gSprites[gBattlerSpriteIds[sprite->sBattler]].callback = sub_8039E44; + gSprites[gBattlerSpriteIds[sprite->sBattler]].callback = SpriteCb_PlayerMonFromBall; AnimateSprite(&gSprites[gBattlerSpriteIds[sprite->sBattler]]); gSprites[gBattlerSpriteIds[sprite->sBattler]].data[1] = 0x1000;