From dc764698c9026f79fe4a9b3891a5a5b373decd55 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 14 Apr 2019 13:22:37 +0200 Subject: [PATCH 1/3] Use implicilt berry indexes in arrays --- include/berry.h | 6 - include/event_object_movement.h | 4 + include/event_scripts.h | 1 + src/berry.c | 92 +++++- .../berry_tree_graphics_tables.h | 265 +++++++++--------- src/event_object_movement.c | 6 +- 6 files changed, 228 insertions(+), 146 deletions(-) diff --git a/include/berry.h b/include/berry.h index ee581b9c18..9ff18e1983 100644 --- a/include/berry.h +++ b/include/berry.h @@ -34,12 +34,6 @@ enum BERRY_STAGE_SPARKLING = 0xFF, }; -#define NUM_BERRIES 44 - -extern const u8 *const gBerryTreeEventObjectGraphicsIdTablePointers[]; -extern const struct SpriteFrameImage *const gBerryTreePicTablePointers[]; -extern const u8 *const gBerryTreePaletteSlotTablePointers[]; - void ClearEnigmaBerries(void); void SetEnigmaBerry(u8 *src); bool32 IsEnigmaBerryValid(void); diff --git a/include/event_object_movement.h b/include/event_object_movement.h index 4f3f99cd16..93f73e6357 100644 --- a/include/event_object_movement.h +++ b/include/event_object_movement.h @@ -64,6 +64,10 @@ extern const struct OamData gEventObjectBaseOam_32x32; extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[]; extern const u8 gReflectionEffectPaletteMap[]; +extern const u8 *const gBerryTreeEventObjectGraphicsIdTablePointers[]; +extern const struct SpriteFrameImage *const gBerryTreePicTablePointers[]; +extern const u8 *const gBerryTreePaletteSlotTablePointers[]; + void ResetEventObjects(void); u8 GetMoveDirectionAnimNum(u8); u8 GetEventObjectIdByLocalIdAndMap(u8, u8, u8); diff --git a/include/event_scripts.h b/include/event_scripts.h index da96d29d83..fc0b3cde0d 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -18,6 +18,7 @@ extern const u8 EventScript_TryDoRematchBattle[]; extern const u8 SecretBase_EventScript_DollInteract[]; extern const u8 SecretBase_EventScript_CushionInteract[]; +extern const u8 BerryTreeScript[]; extern const u8 gTVBravoTrainerText00[]; extern const u8 gTVBravoTrainerText01[]; diff --git a/src/berry.c b/src/berry.c index cbac06a3dd..49acb7d101 100644 --- a/src/berry.c +++ b/src/berry.c @@ -1,6 +1,8 @@ #include "global.h" #include "berry.h" #include "event_data.h" +#include "event_object_movement.h" +#include "event_scripts.h" #include "field_control_avatar.h" #include "fieldmap.h" #include "item.h" @@ -11,11 +13,6 @@ #include "text.h" #include "constants/event_object_movement_constants.h" #include "constants/items.h" -#include "event_object_movement.h" - - - -extern const u8 BerryTreeScript[]; static u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry); static bool32 BerryTreeGrow(struct BerryTree *tree); @@ -117,6 +114,7 @@ static const u8 sBerryDescriptionPart2_Enigma[] = _("Appears to have the power o const struct Berry gBerries[] = { + [ITEM_CHERI_BERRY - FIRST_BERRY_INDEX] = { .name = _("CHERI"), .firmness = BERRY_FIRMNESS_SOFT, @@ -133,6 +131,8 @@ const struct Berry gBerries[] = .sour = 0, .smoothness = 25, }, + + [ITEM_CHESTO_BERRY - FIRST_BERRY_INDEX] = { .name = _("CHESTO"), .firmness = BERRY_FIRMNESS_SUPER_HARD, @@ -149,6 +149,8 @@ const struct Berry gBerries[] = .sour = 0, .smoothness = 25, }, + + [ITEM_PECHA_BERRY - FIRST_BERRY_INDEX] = { .name = _("PECHA"), .firmness = BERRY_FIRMNESS_VERY_SOFT, @@ -165,6 +167,8 @@ const struct Berry gBerries[] = .sour = 0, .smoothness = 25, }, + + [ITEM_RAWST_BERRY - FIRST_BERRY_INDEX] = { .name = _("RAWST"), .firmness = BERRY_FIRMNESS_HARD, @@ -181,6 +185,8 @@ const struct Berry gBerries[] = .sour = 0, .smoothness = 25, }, + + [ITEM_ASPEAR_BERRY - FIRST_BERRY_INDEX] = { .name = _("ASPEAR"), .firmness = BERRY_FIRMNESS_SUPER_HARD, @@ -197,6 +203,8 @@ const struct Berry gBerries[] = .sour = 10, .smoothness = 25, }, + + [ITEM_LEPPA_BERRY - FIRST_BERRY_INDEX] = { .name = _("LEPPA"), .firmness = BERRY_FIRMNESS_VERY_HARD, @@ -213,6 +221,8 @@ const struct Berry gBerries[] = .sour = 10, .smoothness = 20, }, + + [ITEM_ORAN_BERRY - FIRST_BERRY_INDEX] = { .name = _("ORAN"), .firmness = BERRY_FIRMNESS_SUPER_HARD, @@ -229,6 +239,8 @@ const struct Berry gBerries[] = .sour = 10, .smoothness = 20, }, + + [ITEM_PERSIM_BERRY - FIRST_BERRY_INDEX] = { .name = _("PERSIM"), .firmness = BERRY_FIRMNESS_HARD, @@ -245,6 +257,8 @@ const struct Berry gBerries[] = .sour = 10, .smoothness = 20, }, + + [ITEM_LUM_BERRY - FIRST_BERRY_INDEX] = { .name = _("LUM"), .firmness = BERRY_FIRMNESS_SUPER_HARD, @@ -261,6 +275,8 @@ const struct Berry gBerries[] = .sour = 10, .smoothness = 20, }, + + [ITEM_SITRUS_BERRY - FIRST_BERRY_INDEX] = { .name = _("SITRUS"), .firmness = BERRY_FIRMNESS_VERY_HARD, @@ -277,6 +293,8 @@ const struct Berry gBerries[] = .sour = 10, .smoothness = 20, }, + + [ITEM_FIGY_BERRY - FIRST_BERRY_INDEX] = { .name = _("FIGY"), .firmness = BERRY_FIRMNESS_SOFT, @@ -293,6 +311,8 @@ const struct Berry gBerries[] = .sour = 0, .smoothness = 25, }, + + [ITEM_WIKI_BERRY - FIRST_BERRY_INDEX] = { .name = _("WIKI"), .firmness = BERRY_FIRMNESS_HARD, @@ -309,6 +329,8 @@ const struct Berry gBerries[] = .sour = 0, .smoothness = 25, }, + + [ITEM_MAGO_BERRY - FIRST_BERRY_INDEX] = { .name = _("MAGO"), .firmness = BERRY_FIRMNESS_HARD, @@ -325,6 +347,8 @@ const struct Berry gBerries[] = .sour = 0, .smoothness = 25, }, + + [ITEM_AGUAV_BERRY - FIRST_BERRY_INDEX] = { .name = _("AGUAV"), .firmness = BERRY_FIRMNESS_SUPER_HARD, @@ -341,6 +365,8 @@ const struct Berry gBerries[] = .sour = 0, .smoothness = 25, }, + + [ITEM_IAPAPA_BERRY - FIRST_BERRY_INDEX] = { .name = _("IAPAPA"), .firmness = BERRY_FIRMNESS_SOFT, @@ -357,6 +383,8 @@ const struct Berry gBerries[] = .sour = 10, .smoothness = 25, }, + + [ITEM_RAZZ_BERRY - FIRST_BERRY_INDEX] = { .name = _("RAZZ"), .firmness = BERRY_FIRMNESS_VERY_HARD, @@ -373,6 +401,8 @@ const struct Berry gBerries[] = .sour = 0, .smoothness = 20, }, + + [ITEM_BLUK_BERRY - FIRST_BERRY_INDEX] = { .name = _("BLUK"), .firmness = BERRY_FIRMNESS_SOFT, @@ -389,6 +419,8 @@ const struct Berry gBerries[] = .sour = 0, .smoothness = 20, }, + + [ITEM_NANAB_BERRY - FIRST_BERRY_INDEX] = { .name = _("NANAB"), .firmness = BERRY_FIRMNESS_VERY_HARD, @@ -405,6 +437,8 @@ const struct Berry gBerries[] = .sour = 0, .smoothness = 20, }, + + [ITEM_WEPEAR_BERRY - FIRST_BERRY_INDEX] = { .name = _("WEPEAR"), .firmness = BERRY_FIRMNESS_SUPER_HARD, @@ -421,6 +455,8 @@ const struct Berry gBerries[] = .sour = 10, .smoothness = 20, }, + + [ITEM_PINAP_BERRY - FIRST_BERRY_INDEX] = { .name = _("PINAP"), .firmness = BERRY_FIRMNESS_HARD, @@ -437,6 +473,8 @@ const struct Berry gBerries[] = .sour = 10, .smoothness = 20, }, + + [ITEM_POMEG_BERRY - FIRST_BERRY_INDEX] = { .name = _("POMEG"), .firmness = BERRY_FIRMNESS_VERY_HARD, @@ -453,6 +491,8 @@ const struct Berry gBerries[] = .sour = 0, .smoothness = 20, }, + + [ITEM_KELPSY_BERRY - FIRST_BERRY_INDEX] = { .name = _("KELPSY"), .firmness = BERRY_FIRMNESS_HARD, @@ -469,6 +509,8 @@ const struct Berry gBerries[] = .sour = 10, .smoothness = 20, }, + + [ITEM_QUALOT_BERRY - FIRST_BERRY_INDEX] = { .name = _("QUALOT"), .firmness = BERRY_FIRMNESS_HARD, @@ -485,6 +527,8 @@ const struct Berry gBerries[] = .sour = 10, .smoothness = 20, }, + + [ITEM_HONDEW_BERRY - FIRST_BERRY_INDEX] = { .name = _("HONDEW"), .firmness = BERRY_FIRMNESS_HARD, @@ -501,6 +545,8 @@ const struct Berry gBerries[] = .sour = 0, .smoothness = 20, }, + + [ITEM_GREPA_BERRY - FIRST_BERRY_INDEX] = { .name = _("GREPA"), .firmness = BERRY_FIRMNESS_SOFT, @@ -517,6 +563,8 @@ const struct Berry gBerries[] = .sour = 10, .smoothness = 20, }, + + [ITEM_TAMATO_BERRY - FIRST_BERRY_INDEX] = { .name = _("TAMATO"), .firmness = BERRY_FIRMNESS_SOFT, @@ -533,6 +581,8 @@ const struct Berry gBerries[] = .sour = 0, .smoothness = 30, }, + + [ITEM_CORNN_BERRY - FIRST_BERRY_INDEX] = { .name = _("CORNN"), .firmness = BERRY_FIRMNESS_HARD, @@ -549,6 +599,8 @@ const struct Berry gBerries[] = .sour = 0, .smoothness = 30, }, + + [ITEM_MAGOST_BERRY - FIRST_BERRY_INDEX] = { .name = _("MAGOST"), .firmness = BERRY_FIRMNESS_HARD, @@ -565,6 +617,8 @@ const struct Berry gBerries[] = .sour = 0, .smoothness = 30, }, + + [ITEM_RABUTA_BERRY - FIRST_BERRY_INDEX] = { .name = _("RABUTA"), .firmness = BERRY_FIRMNESS_SOFT, @@ -581,6 +635,8 @@ const struct Berry gBerries[] = .sour = 10, .smoothness = 30, }, + + [ITEM_NOMEL_BERRY - FIRST_BERRY_INDEX] = { .name = _("NOMEL"), .firmness = BERRY_FIRMNESS_SUPER_HARD, @@ -597,6 +653,8 @@ const struct Berry gBerries[] = .sour = 20, .smoothness = 30, }, + + [ITEM_SPELON_BERRY - FIRST_BERRY_INDEX] = { .name = _("SPELON"), .firmness = BERRY_FIRMNESS_SOFT, @@ -613,6 +671,8 @@ const struct Berry gBerries[] = .sour = 0, .smoothness = 70, }, + + [ITEM_PAMTRE_BERRY - FIRST_BERRY_INDEX] = { .name = _("PAMTRE"), .firmness = BERRY_FIRMNESS_VERY_SOFT, @@ -629,6 +689,8 @@ const struct Berry gBerries[] = .sour = 0, .smoothness = 70, }, + + [ITEM_WATMEL_BERRY - FIRST_BERRY_INDEX] = { .name = _("WATMEL"), .firmness = BERRY_FIRMNESS_SOFT, @@ -645,6 +707,8 @@ const struct Berry gBerries[] = .sour = 0, .smoothness = 70, }, + + [ITEM_DURIN_BERRY - FIRST_BERRY_INDEX] = { .name = _("DURIN"), .firmness = BERRY_FIRMNESS_HARD, @@ -661,6 +725,8 @@ const struct Berry gBerries[] = .sour = 10, .smoothness = 70, }, + + [ITEM_BELUE_BERRY - FIRST_BERRY_INDEX] = { .name = _("BELUE"), .firmness = BERRY_FIRMNESS_VERY_SOFT, @@ -677,6 +743,8 @@ const struct Berry gBerries[] = .sour = 40, .smoothness = 70, }, + + [ITEM_LIECHI_BERRY - FIRST_BERRY_INDEX] = { .name = _("LIECHI"), .firmness = BERRY_FIRMNESS_VERY_HARD, @@ -693,6 +761,8 @@ const struct Berry gBerries[] = .sour = 10, .smoothness = 80, }, + + [ITEM_GANLON_BERRY - FIRST_BERRY_INDEX] = { .name = _("GANLON"), .firmness = BERRY_FIRMNESS_VERY_HARD, @@ -709,6 +779,8 @@ const struct Berry gBerries[] = .sour = 0, .smoothness = 80, }, + + [ITEM_SALAC_BERRY - FIRST_BERRY_INDEX] = { .name = _("SALAC"), .firmness = BERRY_FIRMNESS_VERY_HARD, @@ -725,6 +797,8 @@ const struct Berry gBerries[] = .sour = 40, .smoothness = 80, }, + + [ITEM_PETAYA_BERRY - FIRST_BERRY_INDEX] = { .name = _("PETAYA"), .firmness = BERRY_FIRMNESS_VERY_HARD, @@ -741,6 +815,8 @@ const struct Berry gBerries[] = .sour = 0, .smoothness = 80, }, + + [ITEM_APICOT_BERRY - FIRST_BERRY_INDEX] = { .name = _("APICOT"), .firmness = BERRY_FIRMNESS_HARD, @@ -757,6 +833,8 @@ const struct Berry gBerries[] = .sour = 40, .smoothness = 80, }, + + [ITEM_LANSAT_BERRY - FIRST_BERRY_INDEX] = { .name = _("LANSAT"), .firmness = BERRY_FIRMNESS_SOFT, @@ -773,6 +851,8 @@ const struct Berry gBerries[] = .sour = 10, .smoothness = 30, }, + + [ITEM_STARF_BERRY - FIRST_BERRY_INDEX] = { .name = _("STARF"), .firmness = BERRY_FIRMNESS_SUPER_HARD, @@ -789,6 +869,8 @@ const struct Berry gBerries[] = .sour = 10, .smoothness = 30, }, + + [ITEM_ENIGMA_BERRY - FIRST_BERRY_INDEX] = { .name = _("ENIGMA"), .firmness = BERRY_FIRMNESS_UNKNOWN, diff --git a/src/data/field_event_obj/berry_tree_graphics_tables.h b/src/data/field_event_obj/berry_tree_graphics_tables.h index f5ef15af95..27d5b1f9a1 100755 --- a/src/data/field_event_obj/berry_tree_graphics_tables.h +++ b/src/data/field_event_obj/berry_tree_graphics_tables.h @@ -423,142 +423,143 @@ const u8 gDeadBerryTreeEventObjectGraphicsIdTable[] = {EVENT_OBJ_GFX_BERRY_TREE_ const u8 gBerryTreeEventObjectGraphicsIdTable[] = {EVENT_OBJ_GFX_BERRY_TREE_EARLY_STAGES, EVENT_OBJ_GFX_BERRY_TREE_EARLY_STAGES, EVENT_OBJ_GFX_BERRY_TREE_LATE_STAGES, EVENT_OBJ_GFX_BERRY_TREE_LATE_STAGES, EVENT_OBJ_GFX_BERRY_TREE_LATE_STAGES}; const struct SpriteFrameImage *const gBerryTreePicTablePointers[] = { - gEventObjectPicTable_CheriBerryTree, - gEventObjectPicTable_ChestoBerryTree, - gEventObjectPicTable_PechaBerryTree, - gEventObjectPicTable_RawstBerryTree, - gEventObjectPicTable_AspearBerryTree, - gEventObjectPicTable_LeppaBerryTree, - gEventObjectPicTable_OranBerryTree, - gEventObjectPicTable_PersimBerryTree, - gEventObjectPicTable_LumBerryTree, - gEventObjectPicTable_SitrusBerryTree, - gEventObjectPicTable_FigyBerryTree, - gEventObjectPicTable_WikiBerryTree, - gEventObjectPicTable_MagoBerryTree, - gEventObjectPicTable_AguavBerryTree, - gEventObjectPicTable_IapapaBerryTree, - gEventObjectPicTable_RazzBerryTree, - gEventObjectPicTable_RazzBerryTree, - gEventObjectPicTable_MagoBerryTree, - gEventObjectPicTable_WepearBerryTree, - gEventObjectPicTable_IapapaBerryTree, - gEventObjectPicTable_PomegBerryTree, - gEventObjectPicTable_KelpsyBerryTree, - gEventObjectPicTable_WepearBerryTree, - gEventObjectPicTable_HondewBerryTree, - gEventObjectPicTable_GrepaBerryTree, - gEventObjectPicTable_TamatoBerryTree, - gEventObjectPicTable_CornnBerryTree, - gEventObjectPicTable_PomegBerryTree, - gEventObjectPicTable_RabutaBerryTree, - gEventObjectPicTable_NomelBerryTree, - gEventObjectPicTable_SpelonBerryTree, - gEventObjectPicTable_PamtreBerryTree, - gEventObjectPicTable_RabutaBerryTree, - gEventObjectPicTable_DurinBerryTree, - gEventObjectPicTable_HondewBerryTree, - gEventObjectPicTable_LiechiBerryTree, - gEventObjectPicTable_HondewBerryTree, - gEventObjectPicTable_AguavBerryTree, - gEventObjectPicTable_PomegBerryTree, - gEventObjectPicTable_GrepaBerryTree, - gEventObjectPicTable_LansatBerryTree, - gEventObjectPicTable_CornnBerryTree, - gEventObjectPicTable_DurinBerryTree, + [ITEM_CHERI_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_CheriBerryTree, + [ITEM_CHESTO_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_ChestoBerryTree, + [ITEM_PECHA_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_PechaBerryTree, + [ITEM_RAWST_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_RawstBerryTree, + [ITEM_ASPEAR_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_AspearBerryTree, + [ITEM_LEPPA_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_LeppaBerryTree, + [ITEM_ORAN_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_OranBerryTree, + [ITEM_PERSIM_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_PersimBerryTree, + [ITEM_LUM_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_LumBerryTree, + [ITEM_SITRUS_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_SitrusBerryTree, + [ITEM_FIGY_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_FigyBerryTree, + [ITEM_WIKI_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_WikiBerryTree, + [ITEM_MAGO_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_MagoBerryTree, + [ITEM_AGUAV_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_AguavBerryTree, + [ITEM_IAPAPA_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_IapapaBerryTree, + [ITEM_RAZZ_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_RazzBerryTree, + [ITEM_BLUK_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_RazzBerryTree, + [ITEM_NANAB_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_MagoBerryTree, + [ITEM_WEPEAR_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_WepearBerryTree, + [ITEM_PINAP_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_IapapaBerryTree, + [ITEM_POMEG_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_PomegBerryTree, + [ITEM_KELPSY_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_KelpsyBerryTree, + [ITEM_QUALOT_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_WepearBerryTree, + [ITEM_HONDEW_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_HondewBerryTree, + [ITEM_GREPA_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_GrepaBerryTree, + [ITEM_TAMATO_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_TamatoBerryTree, + [ITEM_CORNN_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_CornnBerryTree, + [ITEM_MAGOST_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_PomegBerryTree, + [ITEM_RABUTA_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_RabutaBerryTree, + [ITEM_NOMEL_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_NomelBerryTree, + [ITEM_SPELON_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_SpelonBerryTree, + [ITEM_PAMTRE_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_PamtreBerryTree, + [ITEM_WATMEL_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_RabutaBerryTree, + [ITEM_DURIN_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_DurinBerryTree, + [ITEM_BELUE_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_HondewBerryTree, + [ITEM_LIECHI_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_LiechiBerryTree, + [ITEM_GANLON_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_HondewBerryTree, + [ITEM_SALAC_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_AguavBerryTree, + [ITEM_PETAYA_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_PomegBerryTree, + [ITEM_APICOT_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_GrepaBerryTree, + [ITEM_LANSAT_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_LansatBerryTree, + [ITEM_STARF_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_CornnBerryTree, + [ITEM_ENIGMA_BERRY - FIRST_BERRY_INDEX] = gEventObjectPicTable_DurinBerryTree, }; const u8 *const gBerryTreePaletteSlotTablePointers[] = { - gBerryTreePaletteSlotTable_Cheri, - gBerryTreePaletteSlotTable_Chesto, - gBerryTreePaletteSlotTable_Pecha, - gBerryTreePaletteSlotTable_Rawst, - gBerryTreePaletteSlotTable_Aspear, - gBerryTreePaletteSlotTable_Leppa, - gBerryTreePaletteSlotTable_Oran, - gBerryTreePaletteSlotTable_Persim, - gBerryTreePaletteSlotTable_Lum, - gBerryTreePaletteSlotTable_Sitrus, - gBerryTreePaletteSlotTable_Figy, - gBerryTreePaletteSlotTable_Wiki, - gBerryTreePaletteSlotTable_Mago, - gBerryTreePaletteSlotTable_Aguav, - gBerryTreePaletteSlotTable_Iapapa, - gBerryTreePaletteSlotTable_Razz, - gBerryTreePaletteSlotTable_Razz, - gBerryTreePaletteSlotTable_Mago, - gBerryTreePaletteSlotTable_Wepear, - gBerryTreePaletteSlotTable_Iapapa, - gBerryTreePaletteSlotTable_Pomeg, - gBerryTreePaletteSlotTable_Kelpsy, - gBerryTreePaletteSlotTable_Wepear, - gBerryTreePaletteSlotTable_Hondew, - gBerryTreePaletteSlotTable_Grepa, - gBerryTreePaletteSlotTable_Tamato, - gBerryTreePaletteSlotTable_Cornn, - gBerryTreePaletteSlotTable_Pomeg, - gBerryTreePaletteSlotTable_Rabuta, - gBerryTreePaletteSlotTable_Nomel, - gBerryTreePaletteSlotTable_Spelon, - gBerryTreePaletteSlotTable_Pamtre, - gBerryTreePaletteSlotTable_Rabuta, - gBerryTreePaletteSlotTable_Durin, - gBerryTreePaletteSlotTable_Hondew, - gBerryTreePaletteSlotTable_Liechi, - gBerryTreePaletteSlotTable_Hondew, - gBerryTreePaletteSlotTable_Aguav, - gBerryTreePaletteSlotTable_Pomeg, - gBerryTreePaletteSlotTable_Grepa, - gBerryTreePaletteSlotTable_Lansat, - gBerryTreePaletteSlotTable_Cornn, - gBerryTreePaletteSlotTable_Durin, + [ITEM_CHERI_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Cheri, + [ITEM_CHESTO_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Chesto, + [ITEM_PECHA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Pecha, + [ITEM_RAWST_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Rawst, + [ITEM_ASPEAR_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Aspear, + [ITEM_LEPPA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Leppa, + [ITEM_ORAN_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Oran, + [ITEM_PERSIM_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Persim, + [ITEM_LUM_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Lum, + [ITEM_SITRUS_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Sitrus, + [ITEM_FIGY_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Figy, + [ITEM_WIKI_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Wiki, + [ITEM_MAGO_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Mago, + [ITEM_AGUAV_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Aguav, + [ITEM_IAPAPA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Iapapa, + [ITEM_RAZZ_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Razz, + [ITEM_BLUK_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Razz, + [ITEM_NANAB_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Mago, + [ITEM_WEPEAR_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Wepear, + [ITEM_PINAP_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Iapapa, + [ITEM_POMEG_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Pomeg, + [ITEM_KELPSY_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Kelpsy, + [ITEM_QUALOT_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Wepear, + [ITEM_HONDEW_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Hondew, + [ITEM_GREPA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Grepa, + [ITEM_TAMATO_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Tamato, + [ITEM_CORNN_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Cornn, + [ITEM_MAGOST_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Pomeg, + [ITEM_RABUTA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Rabuta, + [ITEM_NOMEL_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Nomel, + [ITEM_SPELON_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Spelon, + [ITEM_PAMTRE_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Pamtre, + [ITEM_WATMEL_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Rabuta, + [ITEM_DURIN_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Durin, + [ITEM_BELUE_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Hondew, + [ITEM_LIECHI_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Liechi, + [ITEM_GANLON_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Hondew, + [ITEM_SALAC_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Aguav, + [ITEM_PETAYA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Pomeg, + [ITEM_APICOT_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Grepa, + [ITEM_LANSAT_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Lansat, + [ITEM_STARF_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Cornn, + [ITEM_ENIGMA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Durin, }; const u8 *const gBerryTreeEventObjectGraphicsIdTablePointers[] = { - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, - gBerryTreeEventObjectGraphicsIdTable, + [ITEM_CHERI_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_CHESTO_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_PECHA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_RAWST_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_ASPEAR_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_LEPPA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_ORAN_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_PERSIM_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_LUM_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_SITRUS_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_FIGY_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_WIKI_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_MAGO_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_AGUAV_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_IAPAPA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_RAZZ_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_BLUK_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_NANAB_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_WEPEAR_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_PINAP_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_POMEG_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_KELPSY_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_QUALOT_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_HONDEW_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_GREPA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_TAMATO_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_CORNN_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_MAGOST_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_RABUTA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_NOMEL_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_SPELON_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_PAMTRE_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_WATMEL_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_DURIN_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_BELUE_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_LIECHI_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_GANLON_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_SALAC_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_PETAYA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_APICOT_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_LANSAT_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_STARF_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_ENIGMA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + // 3 unused berries. + [ITEM_0B0 - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_0B1 - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, + [ITEM_0B2 - FIRST_BERRY_INDEX] = gBerryTreeEventObjectGraphicsIdTable, }; diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 3e5362de41..75f758a129 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -25,6 +25,7 @@ #include "constants/event_object_movement_constants.h" #include "constants/event_objects.h" #include "constants/field_effects.h" +#include "constants/items.h" // this file was known as evobjmv.c in Game Freak's original source @@ -2005,10 +2006,9 @@ static void get_berry_tree_graphics(struct EventObject *eventObject, struct Spri sprite->invisible = FALSE; berryId = GetBerryTypeByBerryTreeId(eventObject->trainerRange_berryTreeId) - 1; berryStage--; - if (berryId >= NUM_BERRIES) - { + if (berryId > ITEM_TO_BERRY(LAST_BERRY_INDEX)) berryId = 0; - } + EventObjectSetGraphicsId(eventObject, gBerryTreeEventObjectGraphicsIdTablePointers[berryId][berryStage]); sprite->images = gBerryTreePicTablePointers[berryId]; sprite->oam.paletteNum = gBerryTreePaletteSlotTablePointers[berryId][berryStage]; From 59797e48010feaf1c41fec2aeb8771577ed11f2d Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 14 Apr 2019 11:41:02 +0200 Subject: [PATCH 2/3] Use constants in battle_anim_special.c --- data/battle_anim_scripts.s | 18 +-- .../sprites/{red_brick.png => pokeblock.png} | Bin include/constants/battle_anim.h | 2 +- include/graphics.h | 4 +- src/battle_anim.c | 4 +- src/battle_anim_special.c | 131 ++++++++---------- src/graphics.c | 4 +- 7 files changed, 77 insertions(+), 86 deletions(-) rename graphics/battle_anims/sprites/{red_brick.png => pokeblock.png} (100%) diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 0d5ce89a8e..f366d44261 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -10331,15 +10331,15 @@ General_SubstituteAppear: General_PokeblockThrow: createvisualtask sub_817345C, 2, 0 - createvisualtask sub_81732B0, 2 + createvisualtask AnimTask_LoadPokeblockGfx, 2 delay 0 waitplaysewithpan SE_W026, SOUND_PAN_ATTACKER, 22 - createsprite gBattleAnimSpriteTemplate_85E5338, ANIM_TARGET, 3, -18, 12, 0, 32 + createsprite gPokeblockSpriteTemplate, ANIM_TARGET, 3, -18, 12, 0, 32 delay 50 loopsewithpan SE_W039, SOUND_PAN_TARGET, 19, 2 createvisualtask AnimTask_SwayMon, 5, 1, 8, 1536, 2, ANIM_TARGET waitforvisualfinish - createvisualtask sub_81732E4, 2 + createvisualtask AnimTask_FreePokeblockGfx, 2 end General_ItemKnockoff: @@ -10516,7 +10516,7 @@ General_Hail: goto Move_HAIL General_LeechSeedDrain: - createvisualtask sub_817351C, 5 + createvisualtask AnimTask_GetBattlersFromArg, 5 delay 0 goto Move_ABSORB @@ -10535,7 +10535,7 @@ General_MonHit: General_ItemSteal: loadspritegfx ANIM_TAG_ITEM_BAG createvisualtask sub_8117F30, 2 - createvisualtask sub_8172ED0, 2 + createvisualtask AnimTask_TargetToEffectBattler, 2 delay 1 createsprite gItemStealSpriteTemplate, ANIM_ATTACKER, 2, 0, -5, 10, 2, -1 end @@ -10664,8 +10664,8 @@ General_WishHeal: end AnimScript_82D85A3: - createvisualtask sub_8172E9C, 2 - jumpreteq 1, AnimScript_82D85B4 + createvisualtask AnimTask_IsAttackerBehindSubstitute, 2 + jumprettrue AnimScript_82D85B4 AnimScript_82D85B2: waitforvisualfinish return @@ -10675,8 +10675,8 @@ AnimScript_82D85B4: goto AnimScript_82D85B2 AnimScript_82D85C3: - createvisualtask sub_8172E9C, 2 - jumpreteq 1, AnimScript_82D85D4 + createvisualtask AnimTask_IsAttackerBehindSubstitute, 2 + jumprettrue AnimScript_82D85D4 AnimScript_82D85D2: waitforvisualfinish return diff --git a/graphics/battle_anims/sprites/red_brick.png b/graphics/battle_anims/sprites/pokeblock.png similarity index 100% rename from graphics/battle_anims/sprites/red_brick.png rename to graphics/battle_anims/sprites/pokeblock.png diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h index 1209dfa19b..0a023f0c24 100644 --- a/include/constants/battle_anim.h +++ b/include/constants/battle_anim.h @@ -276,7 +276,7 @@ #define ANIM_TAG_GREEN_SPIKE (ANIM_SPRITES_START + 266) #define ANIM_TAG_WHITE_CIRCLE_OF_LIGHT (ANIM_SPRITES_START + 267) #define ANIM_TAG_GLOWY_BLUE_ORB (ANIM_SPRITES_START + 268) -#define ANIM_TAG_RED_BRICK (ANIM_SPRITES_START + 269) +#define ANIM_TAG_POKEBLOCK (ANIM_SPRITES_START + 269) #define ANIM_TAG_WHITE_FEATHER (ANIM_SPRITES_START + 270) #define ANIM_TAG_SPARKLE_6 (ANIM_SPRITES_START + 271) #define ANIM_TAG_SPLASH (ANIM_SPRITES_START + 272) diff --git a/include/graphics.h b/include/graphics.h index 2dfd7953ee..4e558b5088 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4388,7 +4388,7 @@ extern const u32 gBattleAnimSpriteGfx_IcicleSpear[]; extern const u32 gBattleAnimSpriteGfx_Hail[]; extern const u32 gBattleAnimSpriteGfx_GlowyRedOrb[]; extern const u32 gBattleAnimSpriteGfx_GreenSpike[]; -extern const u32 gBattleAnimSpriteGfx_RedBrick[]; +extern const u32 gBattleAnimSpriteGfx_Pokeblock[]; extern const u32 gBattleAnimSpriteGfx_WhiteFeather[]; extern const u32 gBattleAnimSpriteGfx_Sparkle6[]; extern const u32 gBattleAnimSpriteGfx_Splash[]; @@ -4674,7 +4674,7 @@ extern const u32 gBattleAnimSpritePal_GlowyGreenOrb[]; extern const u32 gBattleAnimSpritePal_GreenSpike[]; extern const u32 gBattleAnimSpritePal_WhiteCircleOfLight[]; extern const u32 gBattleAnimSpritePal_GlowyBlueOrb[]; -extern const u32 gBattleAnimSpritePal_RedBrick[]; +extern const u32 gBattleAnimSpritePal_Pokeblock[]; extern const u32 gBattleAnimSpritePal_WhiteFeather[]; extern const u32 gBattleAnimSpritePal_Sparkle6[]; extern const u32 gBattleAnimSpritePal_Splash[]; diff --git a/src/battle_anim.c b/src/battle_anim.c index b265bf7bce..3cac9f33e5 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -1394,7 +1394,7 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_GreenSpike, 0x0080, ANIM_TAG_GREEN_SPIKE}, {gBattleAnimSpriteGfx_CircleOfLight, 0x0800, ANIM_TAG_WHITE_CIRCLE_OF_LIGHT}, {gBattleAnimSpriteGfx_GlowyRedOrb, 0x0020, ANIM_TAG_GLOWY_BLUE_ORB}, - {gBattleAnimSpriteGfx_RedBrick, 0x0080, ANIM_TAG_RED_BRICK}, + {gBattleAnimSpriteGfx_Pokeblock, 0x0080, ANIM_TAG_POKEBLOCK}, {gBattleAnimSpriteGfx_WhiteFeather, 0x0400, ANIM_TAG_WHITE_FEATHER}, {gBattleAnimSpriteGfx_Sparkle6, 0x0080, ANIM_TAG_SPARKLE_6}, {gBattleAnimSpriteGfx_Splash, 0x0800, ANIM_TAG_SPLASH}, @@ -1687,7 +1687,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_GreenSpike, ANIM_TAG_GREEN_SPIKE}, {gBattleAnimSpritePal_WhiteCircleOfLight, ANIM_TAG_WHITE_CIRCLE_OF_LIGHT}, {gBattleAnimSpritePal_GlowyBlueOrb, ANIM_TAG_GLOWY_BLUE_ORB}, - {gBattleAnimSpritePal_RedBrick, ANIM_TAG_RED_BRICK}, + {gBattleAnimSpritePal_Pokeblock, ANIM_TAG_POKEBLOCK}, {gBattleAnimSpritePal_WhiteFeather, ANIM_TAG_WHITE_FEATHER}, {gBattleAnimSpritePal_Sparkle6, ANIM_TAG_SPARKLE_6}, {gBattleAnimSpritePal_Splash, ANIM_TAG_SPLASH}, diff --git a/src/battle_anim_special.c b/src/battle_anim_special.c index ee37d199ff..8a7737f829 100755 --- a/src/battle_anim_special.c +++ b/src/battle_anim_special.c @@ -16,9 +16,10 @@ #include "task.h" #include "trig.h" #include "util.h" -#include "constants/rgb.h" #include "constants/items.h" +#include "constants/moves.h" #include "constants/songs.h" +#include "constants/rgb.h" // iwram int gUnknown_030062DC; @@ -355,10 +356,10 @@ const u16 gUnknown_085E5310[] = RGB(4, 0, 0), }; -const struct SpriteTemplate gBattleAnimSpriteTemplate_85E5338 = +const struct SpriteTemplate gPokeblockSpriteTemplate = { - .tileTag = ANIM_TAG_RED_BRICK, - .paletteTag = ANIM_TAG_RED_BRICK, + .tileTag = ANIM_TAG_POKEBLOCK, + .paletteTag = ANIM_TAG_POKEBLOCK, .oam = &gUnknown_0852490C, .anims = gDummySpriteAnimTable, .images = NULL, @@ -675,9 +676,9 @@ void sub_8170D24(u8 taskId) void AnimTask_IsBallBlockedByTrainer(u8 taskId) { if (gBattleSpritesDataPtr->animationData->ballThrowCaseId == BALL_TRAINER_BLOCK) - gBattleAnimArgs[7] = -1; + gBattleAnimArgs[ARG_RET_ID] = -1; else - gBattleAnimArgs[7] = 0; + gBattleAnimArgs[ARG_RET_ID] = 0; DestroyAnimVisualTask(taskId); } @@ -687,30 +688,30 @@ u8 ItemIdToBallId(u16 ballItem) switch (ballItem) { case ITEM_MASTER_BALL: - return 4; + return BALL_MASTER; case ITEM_ULTRA_BALL: - return 3; + return BALL_ULTRA; case ITEM_GREAT_BALL: - return 1; + return BALL_GREAT; case ITEM_SAFARI_BALL: - return 2; + return BALL_SAFARI; case ITEM_NET_BALL: - return 5; + return BALL_NET; case ITEM_DIVE_BALL: - return 6; + return BALL_DIVE; case ITEM_NEST_BALL: - return 7; + return BALL_NEST; case ITEM_REPEAT_BALL: - return 8; + return BALL_REPEAT; case ITEM_TIMER_BALL: - return 9; + return BALL_TIMER; case ITEM_LUXURY_BALL: - return 10; + return BALL_LUXURY; case ITEM_PREMIER_BALL: - return 11; + return BALL_PREMIER; case ITEM_POKE_BALL: default: - return 0; + return BALL_POKE; } } @@ -804,7 +805,6 @@ static void sub_8171134(struct Sprite *sprite) { int i; u8 ballId; - int ballId2; // extra var needed to match if (TranslateAnimHorizontalArc(sprite)) { @@ -825,15 +825,15 @@ static void sub_8171134(struct Sprite *sprite) sprite->data[5] = 0; sprite->callback = sub_81711E8; - ballId = ItemIdToBallId(gLastUsedItem); - ballId2 = ballId; - if (ballId2 > 11) - return; - if (ballId2 < 0) - return; - AnimateBallOpenParticles(sprite->pos1.x, sprite->pos1.y - 5, 1, 28, ballId); - LaunchBallFadeMonTask(0, gBattleAnimTarget, 14, ballId); + ballId = ItemIdToBallId(gLastUsedItem); + switch (ballId) + { + case 0 ... POKEBALL_COUNT - 1: + AnimateBallOpenParticles(sprite->pos1.x, sprite->pos1.y - 5, 1, 28, ballId); + LaunchBallFadeMonTask(0, gBattleAnimTarget, 14, ballId); + break; + } } } } @@ -1280,28 +1280,23 @@ static void sub_8171AAC(struct Sprite *sprite) DestroySprite(sprite); } -// fakematching. I think the return type of ItemIdToBallId() -// is wrong because of the weird required casting. static void sub_8171AE4(struct Sprite *sprite) { u8 ballId; - int ballId2; // extra var needed to match StartSpriteAnim(sprite, 1); StartSpriteAffineAnim(sprite, 0); sprite->callback = sub_8171BAC; ballId = ItemIdToBallId(gLastUsedItem); - ballId2 = ballId; - if (ballId2 > 11) - goto LABEL; - if (ballId2 < 0) - goto LABEL; + switch (ballId) + { + case 0 ... POKEBALL_COUNT - 1: + AnimateBallOpenParticles(sprite->pos1.x, sprite->pos1.y - 5, 1, 28, ballId); + LaunchBallFadeMonTask(1, gBattleAnimTarget, 14, ballId); + break; + } - AnimateBallOpenParticles(sprite->pos1.x, sprite->pos1.y - 5, 1, 28, ballId); - LaunchBallFadeMonTask(1, gBattleAnimTarget, 14, ballId); - - LABEL: gSprites[gBattlerSpriteIds[gBattleAnimTarget]].invisible = 0; StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[gBattleAnimTarget]], 1); AnimateSprite(&gSprites[gBattlerSpriteIds[gBattleAnimTarget]]); @@ -1906,9 +1901,8 @@ void sub_8172BF0(u8 taskId) { u8 spriteId; u32 x; - u32 done; + u32 done = FALSE; - done = FALSE; spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; switch (gTasks[taskId].data[10]) { @@ -1942,8 +1936,7 @@ void sub_8172BF0(u8 taskId) if (gSprites[spriteId].pos2.x <= 0) { gSprites[spriteId].pos2.x = 0; - // done = FALSE; // fakematching--can't get the tail merge correct - goto DONE; + done = TRUE; } } else @@ -1956,10 +1949,8 @@ void sub_8172BF0(u8 taskId) } if (done) - { - DONE: DestroyAnimVisualTask(taskId); - } + break; } } @@ -1998,13 +1989,13 @@ void sub_8172D98(u8 taskId) } } -void sub_8172E9C(u8 taskId) +void AnimTask_IsAttackerBehindSubstitute(u8 taskId) { - gBattleAnimArgs[7] = gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].behindSubstitute; + gBattleAnimArgs[ARG_RET_ID] = gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].behindSubstitute; DestroyAnimVisualTask(taskId); } -void sub_8172ED0(u8 taskId) +void AnimTask_TargetToEffectBattler(u8 taskId) { gBattleAnimTarget = gEffectBattler; DestroyAnimVisualTask(taskId); @@ -2030,10 +2021,10 @@ void sub_8172EF0(u8 battler, struct Pokemon *mon) if (isShiny) { - if (GetSpriteTileStartByTag(0x27F9) == 0xFFFF) + if (GetSpriteTileStartByTag(ANIM_TAG_GOLD_STARS) == 0xFFFF) { - LoadCompressedSpriteSheetUsingHeap(&gBattleAnimPicTable[233]); - LoadCompressedSpritePaletteUsingHeap(&gBattleAnimPaletteTable[233]); + LoadCompressedSpriteSheetUsingHeap(&gBattleAnimPicTable[ANIM_TAG_GOLD_STARS - ANIM_SPRITES_START]); + LoadCompressedSpritePaletteUsingHeap(&gBattleAnimPaletteTable[ANIM_TAG_GOLD_STARS - ANIM_SPRITES_START]); } taskId1 = CreateTask(sub_8172FEC, 10); @@ -2103,7 +2094,7 @@ static void sub_8172FEC(u8 taskId) if (gTasks[taskId].data[11] == 0) { if (GetBattlerSide(battler) == B_SIDE_PLAYER) - pan = 192; + pan = -64; else pan = 63; @@ -2169,20 +2160,20 @@ static void sub_8173250(struct Sprite *sprite) } } -void sub_81732B0(u8 taskId) +void AnimTask_LoadPokeblockGfx(u8 taskId) { u8 paletteIndex; - LoadCompressedSpriteSheetUsingHeap(&gBattleAnimPicTable[269]); - LoadCompressedSpritePaletteUsingHeap(&gBattleAnimPaletteTable[269]); - paletteIndex = IndexOfSpritePaletteTag(0x281D); // unused + LoadCompressedSpriteSheetUsingHeap(&gBattleAnimPicTable[ANIM_TAG_POKEBLOCK - ANIM_SPRITES_START]); + LoadCompressedSpritePaletteUsingHeap(&gBattleAnimPaletteTable[ANIM_TAG_POKEBLOCK - ANIM_SPRITES_START]); + paletteIndex = IndexOfSpritePaletteTag(ANIM_TAG_POKEBLOCK); // unused DestroyAnimVisualTask(taskId); } -void sub_81732E4(u8 taskId) +void AnimTask_FreePokeblockGfx(u8 taskId) { - FreeSpriteTilesByTag(0x281D); - FreeSpritePaletteByTag(0x281D); + FreeSpriteTilesByTag(ANIM_TAG_POKEBLOCK); + FreeSpritePaletteByTag(ANIM_TAG_POKEBLOCK); DestroyAnimVisualTask(taskId); } @@ -2245,21 +2236,21 @@ void sub_817345C(u8 taskId) void AnimTask_GetTrappedMoveAnimId(u8 taskId) { - if (gBattleSpritesDataPtr->animationData->animArg == 83) - gBattleAnimArgs[0] = 1; - else if (gBattleSpritesDataPtr->animationData->animArg == 250) - gBattleAnimArgs[0] = 2; - else if (gBattleSpritesDataPtr->animationData->animArg == 128) - gBattleAnimArgs[0] = 3; - else if (gBattleSpritesDataPtr->animationData->animArg == 328) - gBattleAnimArgs[0] = 4; + if (gBattleSpritesDataPtr->animationData->animArg == MOVE_FIRE_SPIN) + gBattleAnimArgs[0] = TRAP_ANIM_FIRE_SPIN; + else if (gBattleSpritesDataPtr->animationData->animArg == MOVE_WHIRLPOOL) + gBattleAnimArgs[0] = TRAP_ANIM_WHIRLPOOL; + else if (gBattleSpritesDataPtr->animationData->animArg == MOVE_CLAMP) + gBattleAnimArgs[0] = TRAP_ANIM_CLAMP; + else if (gBattleSpritesDataPtr->animationData->animArg == MOVE_SAND_TOMB) + gBattleAnimArgs[0] = TRAP_ANIM_SAND_TOMB; else - gBattleAnimArgs[0] = 0; + gBattleAnimArgs[0] = TRAP_ANIM_BIND; DestroyAnimVisualTask(taskId); } -void sub_817351C(u8 taskId) +void AnimTask_GetBattlersFromArg(u8 taskId) { gBattleAnimAttacker = gBattleSpritesDataPtr->animationData->animArg; gBattleAnimTarget = gBattleSpritesDataPtr->animationData->animArg >> 8; diff --git a/src/graphics.c b/src/graphics.c index 163cecf5b0..0832101d8e 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -1042,8 +1042,8 @@ const u32 gBattleAnimSpritePal_Splash[] = INCBIN_U32("graphics/battle_anims/spri const u32 gBattleAnimSpriteGfx_SweatBead[] = INCBIN_U32("graphics/battle_anims/sprites/sweat_bead.4bpp.lz"); -const u32 gBattleAnimSpriteGfx_RedBrick[] = INCBIN_U32("graphics/battle_anims/sprites/red_brick.4bpp.lz"); -const u32 gBattleAnimSpritePal_RedBrick[] = INCBIN_U32("graphics/battle_anims/sprites/red_brick.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_Pokeblock[] = INCBIN_U32("graphics/battle_anims/sprites/pokeblock.4bpp.lz"); +const u32 gBattleAnimSpritePal_Pokeblock[] = INCBIN_U32("graphics/battle_anims/sprites/pokeblock.gbapal.lz"); const u32 gBattleAnimSpriteGfx_Gem1[] = INCBIN_U32("graphics/battle_anims/sprites/gem_1.4bpp.lz"); const u32 gBattleAnimSpriteGfx_Gem2[] = INCBIN_U32("graphics/battle_anims/sprites/gem_2.4bpp.lz"); From 19fdfaa5f27317d79a57162613976bb2db69de28 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 14 Apr 2019 12:38:44 +0200 Subject: [PATCH 3/3] Use constants for ball particles --- src/battle_anim_special.c | 295 ++++++++++++++++++++------------------ 1 file changed, 154 insertions(+), 141 deletions(-) diff --git a/src/battle_anim_special.c b/src/battle_anim_special.c index 8a7737f829..740340d141 100755 --- a/src/battle_anim_special.c +++ b/src/battle_anim_special.c @@ -104,39 +104,52 @@ static const struct BallCaptureSuccessStarData sBallCaptureSuccessStarData[] = }, }; -const struct CompressedSpriteSheet gBallOpenParticleSpritesheets[] = +#define TAG_PARTICLES_POKEBALL 55020 +#define TAG_PARTICLES_GREATBALL 55021 +#define TAG_PARTICLES_SAFARIBALL 55022 +#define TAG_PARTICLES_ULTRABALL 55023 +#define TAG_PARTICLES_MASTERBALL 55024 +#define TAG_PARTICLES_NETBALL 55025 +#define TAG_PARTICLES_DIVEBALL 55026 +#define TAG_PARTICLES_NESTBALL 55027 +#define TAG_PARTICLES_REPEATBALL 55028 +#define TAG_PARTICLES_TIMERBALL 55029 +#define TAG_PARTICLES_LUXURYBALL 55030 +#define TAG_PARTICLES_PREMIERBALL 55031 + +const struct CompressedSpriteSheet gBallParticleSpritesheets[] = { - {gBattleAnimSpriteGfx_Particles, 0x100, 0xD6EC}, - {gBattleAnimSpriteGfx_Particles, 0x100, 0xD6ED}, - {gBattleAnimSpriteGfx_Particles, 0x100, 0xD6EE}, - {gBattleAnimSpriteGfx_Particles, 0x100, 0xD6EF}, - {gBattleAnimSpriteGfx_Particles, 0x100, 0xD6F0}, - {gBattleAnimSpriteGfx_Particles, 0x100, 0xD6F1}, - {gBattleAnimSpriteGfx_Particles, 0x100, 0xD6F2}, - {gBattleAnimSpriteGfx_Particles, 0x100, 0xD6F3}, - {gBattleAnimSpriteGfx_Particles, 0x100, 0xD6F4}, - {gBattleAnimSpriteGfx_Particles, 0x100, 0xD6F5}, - {gBattleAnimSpriteGfx_Particles, 0x100, 0xD6F6}, - {gBattleAnimSpriteGfx_Particles, 0x100, 0xD6F7}, + {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_POKEBALL}, + {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_GREATBALL}, + {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_SAFARIBALL}, + {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_ULTRABALL}, + {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_MASTERBALL}, + {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_NETBALL}, + {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_DIVEBALL}, + {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_NESTBALL}, + {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_REPEATBALL}, + {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_TIMERBALL}, + {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_LUXURYBALL}, + {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_PREMIERBALL}, }; -const struct CompressedSpritePalette gBallOpenParticlePalettes[] = +const struct CompressedSpritePalette gBallParticlePalettes[] = { - {gBattleAnimSpritePal_CircleImpact, 0xD6EC}, - {gBattleAnimSpritePal_CircleImpact, 0xD6ED}, - {gBattleAnimSpritePal_CircleImpact, 0xD6EE}, - {gBattleAnimSpritePal_CircleImpact, 0xD6EF}, - {gBattleAnimSpritePal_CircleImpact, 0xD6F0}, - {gBattleAnimSpritePal_CircleImpact, 0xD6F1}, - {gBattleAnimSpritePal_CircleImpact, 0xD6F2}, - {gBattleAnimSpritePal_CircleImpact, 0xD6F3}, - {gBattleAnimSpritePal_CircleImpact, 0xD6F4}, - {gBattleAnimSpritePal_CircleImpact, 0xD6F5}, - {gBattleAnimSpritePal_CircleImpact, 0xD6F6}, - {gBattleAnimSpritePal_CircleImpact, 0xD6F7}, + {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_POKEBALL}, + {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_GREATBALL}, + {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_SAFARIBALL}, + {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_ULTRABALL}, + {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_MASTERBALL}, + {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_NETBALL}, + {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_DIVEBALL}, + {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_NESTBALL}, + {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_REPEATBALL}, + {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_TIMERBALL}, + {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_LUXURYBALL}, + {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_PREMIERBALL}, }; -const union AnimCmd gUnknown_085E5154[] = +const union AnimCmd gAnim_RegularBall[] = { ANIMCMD_FRAME(0, 1), ANIMCMD_FRAME(1, 1), @@ -147,64 +160,64 @@ const union AnimCmd gUnknown_085E5154[] = ANIMCMD_JUMP(0), }; -const union AnimCmd gUnknown_085E5170[] = +const union AnimCmd gAnim_MasterBall[] = { ANIMCMD_FRAME(3, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_085E5178[] = +const union AnimCmd gAnim_NetDiveBall[] = { ANIMCMD_FRAME(4, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_085E5180[] = +const union AnimCmd gAnim_NestBall[] = { ANIMCMD_FRAME(5, 1), ANIMCMD_END, }; -const union AnimCmd gUnknown_085E5188[] = +const union AnimCmd gAnim_LuxuryPremierBall[] = { ANIMCMD_FRAME(6, 4), ANIMCMD_FRAME(7, 4), ANIMCMD_JUMP(0), }; -const union AnimCmd gUnknown_085E5194[] = +const union AnimCmd gAnim_UltraRepeatTimerBall[] = { ANIMCMD_FRAME(7, 4), ANIMCMD_END, }; -const union AnimCmd *const gUnknown_085E519C[] = +const union AnimCmd *const gAnims_BallParticles[] = { - gUnknown_085E5154, - gUnknown_085E5170, - gUnknown_085E5178, - gUnknown_085E5180, - gUnknown_085E5188, - gUnknown_085E5194, + gAnim_RegularBall, + gAnim_MasterBall, + gAnim_NetDiveBall, + gAnim_NestBall, + gAnim_LuxuryPremierBall, + gAnim_UltraRepeatTimerBall, }; -const u8 gBallOpenParticleAnimNums[] = +const u8 gBallParticleAnimNums[] = { - 0, - 0, - 0, - 5, - 1, - 2, - 2, - 3, - 5, - 5, - 4, - 4, + [BALL_POKE] = 0, + [BALL_GREAT] = 0, + [BALL_SAFARI] = 0, + [BALL_ULTRA] = 5, + [BALL_MASTER] = 1, + [BALL_NET] = 2, + [BALL_DIVE] = 2, + [BALL_NEST] = 3, + [BALL_REPEAT] = 5, + [BALL_TIMER] = 5, + [BALL_LUXURY] = 4, + [BALL_PREMIER] = 4, }; -const TaskFunc gBallOpenParticleAnimationFuncs[] = +const TaskFunc gBallParticleAnimationFuncs[] = { PokeBallOpenParticleAnimation, GreatBallOpenParticleAnimation, @@ -220,132 +233,134 @@ const TaskFunc gBallOpenParticleAnimationFuncs[] = PremierBallOpenParticleAnimation, }; -const struct SpriteTemplate gUnknown_085E51F0[] = +const struct SpriteTemplate gBallParticlesSpriteTemplates[] = { { - .tileTag = 55020, - .paletteTag = 55020, + .tileTag = TAG_PARTICLES_POKEBALL, + .paletteTag = TAG_PARTICLES_POKEBALL, .oam = &gUnknown_08524904, - .anims = gUnknown_085E519C, + .anims = gAnims_BallParticles, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }, { - .tileTag = 55021, - .paletteTag = 55021, + .tileTag = TAG_PARTICLES_GREATBALL, + .paletteTag = TAG_PARTICLES_GREATBALL, .oam = &gUnknown_08524904, - .anims = gUnknown_085E519C, + .anims = gAnims_BallParticles, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }, { - .tileTag = 55022, - .paletteTag = 55022, + .tileTag = TAG_PARTICLES_SAFARIBALL, + .paletteTag = TAG_PARTICLES_SAFARIBALL, .oam = &gUnknown_08524904, - .anims = gUnknown_085E519C, + .anims = gAnims_BallParticles, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }, { - .tileTag = 55023, - .paletteTag = 55023, + .tileTag = TAG_PARTICLES_ULTRABALL, + .paletteTag = TAG_PARTICLES_ULTRABALL, .oam = &gUnknown_08524904, - .anims = gUnknown_085E519C, + .anims = gAnims_BallParticles, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }, { - .tileTag = 55024, - .paletteTag = 55024, + .tileTag = TAG_PARTICLES_MASTERBALL, + .paletteTag = TAG_PARTICLES_MASTERBALL, .oam = &gUnknown_08524904, - .anims = gUnknown_085E519C, + .anims = gAnims_BallParticles, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }, { - .tileTag = 55025, - .paletteTag = 55025, + .tileTag = TAG_PARTICLES_NETBALL, + .paletteTag = TAG_PARTICLES_NETBALL, .oam = &gUnknown_08524904, - .anims = gUnknown_085E519C, + .anims = gAnims_BallParticles, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }, { - .tileTag = 55026, - .paletteTag = 55026, + .tileTag = TAG_PARTICLES_DIVEBALL, + .paletteTag = TAG_PARTICLES_DIVEBALL, .oam = &gUnknown_08524904, - .anims = gUnknown_085E519C, + .anims = gAnims_BallParticles, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }, { - .tileTag = 55027, - .paletteTag = 55027, + .tileTag = TAG_PARTICLES_NESTBALL, + .paletteTag = TAG_PARTICLES_NESTBALL, .oam = &gUnknown_08524904, - .anims = gUnknown_085E519C, + .anims = gAnims_BallParticles, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }, { - .tileTag = 55028, - .paletteTag = 55028, + .tileTag = TAG_PARTICLES_REPEATBALL, + .paletteTag = TAG_PARTICLES_REPEATBALL, .oam = &gUnknown_08524904, - .anims = gUnknown_085E519C, + .anims = gAnims_BallParticles, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }, { - .tileTag = 55029, - .paletteTag = 55029, + .tileTag = TAG_PARTICLES_TIMERBALL, + .paletteTag = TAG_PARTICLES_TIMERBALL, .oam = &gUnknown_08524904, - .anims = gUnknown_085E519C, + .anims = gAnims_BallParticles, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }, { - .tileTag = 55030, - .paletteTag = 55030, + .tileTag = TAG_PARTICLES_LUXURYBALL, + .paletteTag = TAG_PARTICLES_LUXURYBALL, .oam = &gUnknown_08524904, - .anims = gUnknown_085E519C, + .anims = gAnims_BallParticles, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }, { - .tileTag = 55031, - .paletteTag = 55031, + .tileTag = TAG_PARTICLES_PREMIERBALL, + .paletteTag = TAG_PARTICLES_PREMIERBALL, .oam = &gUnknown_08524904, - .anims = gUnknown_085E519C, + .anims = gAnims_BallParticles, .images = NULL, .affineAnims = gDummySpriteAffineAnimTable, .callback = SpriteCallbackDummy, }, }; -const u16 gUnknown_085E5310[] = +const u16 gBallOpenFadeColors[] = { - RGB(31, 22, 30), - RGB(16, 23, 30), - RGB(23, 30, 20), - RGB(31, 31, 15), - RGB(23, 20, 28), - RGB(21, 31, 25), - RGB(12, 25, 30), - RGB(30, 27, 10), - RGB(31, 24, 16), - RGB(29, 30, 30), - RGB(31, 17, 10), - RGB(31, 9, 10), + [BALL_POKE] = RGB(31, 22, 30), + [BALL_GREAT] = RGB(16, 23, 30), + [BALL_SAFARI] = RGB(23, 30, 20), + [BALL_ULTRA] = RGB(31, 31, 15), + [BALL_MASTER] = RGB(23, 20, 28), + [BALL_NET] = RGB(21, 31, 25), + [BALL_DIVE] = RGB(12, 25, 30), + [BALL_NEST] = RGB(30, 27, 10), + [BALL_REPEAT] = RGB(31, 24, 16), + [BALL_TIMER] = RGB(29, 30, 30), + [BALL_LUXURY] = RGB(31, 17, 10), + [BALL_PREMIER] = RGB(31, 9, 10), + + // Garbage data RGB(0, 0, 0), RGB(1, 16, 0), RGB(3, 0, 1), @@ -1259,7 +1274,7 @@ static void sub_81719EC(struct Sprite *sprite) sub_8171D60(4); for (i = 0; i < 3; i++) { - u8 spriteId = CreateSprite(&gUnknown_085E51F0[4], sprite->pos1.x, sprite->pos1.y, subpriority); + u8 spriteId = CreateSprite(&gBallParticlesSpriteTemplates[4], sprite->pos1.x, sprite->pos1.y, subpriority); if (spriteId != MAX_SPRITES) { gSprites[spriteId].data[0] = 24; @@ -1268,7 +1283,7 @@ static void sub_81719EC(struct Sprite *sprite) gSprites[spriteId].data[5] = sBallCaptureSuccessStarData[i].unk2; InitAnimArcTranslation(&gSprites[spriteId]); gSprites[spriteId].callback = sub_8171AAC; - StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[4]); + StartSpriteAnim(&gSprites[spriteId], gBallParticleAnimNums[4]); } } } @@ -1369,10 +1384,10 @@ static void sub_8171D60(u8 ballId) { u8 taskId; - if (GetSpriteTileStartByTag(gBallOpenParticleSpritesheets[ballId].tag) == 0xFFFF) + if (GetSpriteTileStartByTag(gBallParticleSpritesheets[ballId].tag) == 0xFFFF) { - LoadCompressedSpriteSheetUsingHeap(&gBallOpenParticleSpritesheets[ballId]); - LoadCompressedSpritePaletteUsingHeap(&gBallOpenParticlePalettes[ballId]); + LoadCompressedSpriteSheetUsingHeap(&gBallParticleSpritesheets[ballId]); + LoadCompressedSpritePaletteUsingHeap(&gBallParticlePalettes[ballId]); } } @@ -1381,7 +1396,7 @@ u8 AnimateBallOpenParticles(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId) u8 taskId; sub_8171D60(ballId); - taskId = CreateTask(gBallOpenParticleAnimationFuncs[ballId], 5); + taskId = CreateTask(gBallParticleAnimationFuncs[ballId], 5); gTasks[taskId].data[1] = x; gTasks[taskId].data[2] = y; gTasks[taskId].data[3] = priority; @@ -1414,11 +1429,11 @@ static void PokeBallOpenParticleAnimation(u8 taskId) priority = gTasks[taskId].data[3]; subpriority = gTasks[taskId].data[4]; - spriteId = CreateSprite(&gUnknown_085E51F0[ballId], x, y, subpriority); + spriteId = CreateSprite(&gBallParticlesSpriteTemplates[ballId], x, y, subpriority); if (spriteId != MAX_SPRITES) { sub_8171E20(); - StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballId]); + StartSpriteAnim(&gSprites[spriteId], gBallParticleAnimNums[ballId]); gSprites[spriteId].callback = PokeBallOpenParticleAnimation_Step1; gSprites[spriteId].oam.priority = priority; @@ -1473,11 +1488,11 @@ static void TimerBallOpenParticleAnimation(u8 taskId) for (i = 0; i < 8; i++) { - spriteId = CreateSprite(&gUnknown_085E51F0[ballId], x, y, subpriority); + spriteId = CreateSprite(&gBallParticlesSpriteTemplates[ballId], x, y, subpriority); if (spriteId != MAX_SPRITES) { sub_8171E20(); - StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballId]); + StartSpriteAnim(&gSprites[spriteId], gBallParticleAnimNums[ballId]); gSprites[spriteId].callback = FanOutBallOpenParticles_Step1; gSprites[spriteId].oam.priority = priority; gSprites[spriteId].data[0] = i * 32; @@ -1507,11 +1522,11 @@ static void DiveBallOpenParticleAnimation(u8 taskId) for (i = 0; i < 8; i++) { - spriteId = CreateSprite(&gUnknown_085E51F0[ballId], x, y, subpriority); + spriteId = CreateSprite(&gBallParticlesSpriteTemplates[ballId], x, y, subpriority); if (spriteId != MAX_SPRITES) { sub_8171E20(); - StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballId]); + StartSpriteAnim(&gSprites[spriteId], gBallParticleAnimNums[ballId]); gSprites[spriteId].callback = FanOutBallOpenParticles_Step1; gSprites[spriteId].oam.priority = priority; gSprites[spriteId].data[0] = i * 32; @@ -1542,11 +1557,11 @@ static void SafariBallOpenParticleAnimation(u8 taskId) for (i = 0; i < 8; i++) { - spriteId = CreateSprite(&gUnknown_085E51F0[ballId], x, y, subpriority); + spriteId = CreateSprite(&gBallParticlesSpriteTemplates[ballId], x, y, subpriority); if (spriteId != MAX_SPRITES) { sub_8171E20(); - StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballId]); + StartSpriteAnim(&gSprites[spriteId], gBallParticleAnimNums[ballId]); gSprites[spriteId].callback = FanOutBallOpenParticles_Step1; gSprites[spriteId].oam.priority = priority; gSprites[spriteId].data[0] = i * 32; @@ -1577,11 +1592,11 @@ static void UltraBallOpenParticleAnimation(u8 taskId) for (i = 0; i < 10; i++) { - spriteId = CreateSprite(&gUnknown_085E51F0[ballId], x, y, subpriority); + spriteId = CreateSprite(&gBallParticlesSpriteTemplates[ballId], x, y, subpriority); if (spriteId != MAX_SPRITES) { sub_8171E20(); - StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballId]); + StartSpriteAnim(&gSprites[spriteId], gBallParticleAnimNums[ballId]); gSprites[spriteId].callback = FanOutBallOpenParticles_Step1; gSprites[spriteId].oam.priority = priority; gSprites[spriteId].data[0] = i * 25; @@ -1618,11 +1633,11 @@ static void GreatBallOpenParticleAnimation(u8 taskId) for (i = 0; i < 8; i++) { - spriteId = CreateSprite(&gUnknown_085E51F0[ballId], x, y, subpriority); + spriteId = CreateSprite(&gBallParticlesSpriteTemplates[ballId], x, y, subpriority); if (spriteId != MAX_SPRITES) { sub_8171E20(); - StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballId]); + StartSpriteAnim(&gSprites[spriteId], gBallParticleAnimNums[ballId]); gSprites[spriteId].callback = FanOutBallOpenParticles_Step1; gSprites[spriteId].oam.priority = priority; gSprites[spriteId].data[0] = i * 32; @@ -1666,13 +1681,13 @@ static void RepeatBallOpenParticleAnimation(u8 taskId) priority = gTasks[taskId].data[3]; subpriority = gTasks[taskId].data[4]; - for (i = 0; i < 12; i++) + for (i = 0; i < POKEBALL_COUNT; i++) { - spriteId = CreateSprite(&gUnknown_085E51F0[ballId], x, y, subpriority); + spriteId = CreateSprite(&gBallParticlesSpriteTemplates[ballId], x, y, subpriority); if (spriteId != MAX_SPRITES) { sub_8171E20(); - StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballId]); + StartSpriteAnim(&gSprites[spriteId], gBallParticleAnimNums[ballId]); gSprites[spriteId].callback = RepeatBallOpenParticleAnimation_Step1; gSprites[spriteId].oam.priority = priority; gSprites[spriteId].data[0] = i * 21; @@ -1712,11 +1727,11 @@ static void MasterBallOpenParticleAnimation(u8 taskId) { for (i = 0; i < 8; i++) { - spriteId = CreateSprite(&gUnknown_085E51F0[ballId], x, y, subpriority); + spriteId = CreateSprite(&gBallParticlesSpriteTemplates[ballId], x, y, subpriority); if (spriteId != MAX_SPRITES) { sub_8171E20(); - StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballId]); + StartSpriteAnim(&gSprites[spriteId], gBallParticleAnimNums[ballId]); gSprites[spriteId].callback = FanOutBallOpenParticles_Step1; gSprites[spriteId].oam.priority = priority; gSprites[spriteId].data[0] = i * 32; @@ -1756,11 +1771,11 @@ static void PremierBallOpenParticleAnimation(u8 taskId) for (i = 0; i < 8; i++) { - spriteId = CreateSprite(&gUnknown_085E51F0[ballId], x, y, subpriority); + spriteId = CreateSprite(&gBallParticlesSpriteTemplates[ballId], x, y, subpriority); if (spriteId != MAX_SPRITES) { sub_8171E20(); - StartSpriteAnim(&gSprites[spriteId], gBallOpenParticleAnimNums[ballId]); + StartSpriteAnim(&gSprites[spriteId], gBallParticleAnimNums[ballId]); gSprites[spriteId].callback = PremierBallOpenParticleAnimation_Step1; gSprites[spriteId].oam.priority = priority; gSprites[spriteId].data[0] = i * 32; @@ -1787,12 +1802,10 @@ static void PremierBallOpenParticleAnimation_Step1(struct Sprite *sprite) static void DestroyBallOpenAnimationParticle(struct Sprite *sprite) { int i, j; - int temp; if (!gMain.inBattle) { - temp = sprite->data[7]; // temp var needed to match - if (temp == 1) + if (sprite->data[7] == 1) DestroySpriteAndFreeResources(sprite); else DestroySprite(sprite); @@ -1802,18 +1815,18 @@ static void DestroyBallOpenAnimationParticle(struct Sprite *sprite) gBattleSpritesDataPtr->animationData->field_A--; if (gBattleSpritesDataPtr->animationData->field_A == 0) { - for (i = 0; i < 12; i++) + for (i = 0; i < POKEBALL_COUNT; i++) { - if (FuncIsActiveTask(gBallOpenParticleAnimationFuncs[i]) == TRUE) + if (FuncIsActiveTask(gBallParticleAnimationFuncs[i]) == TRUE) break; } - if (i == 12) + if (i == POKEBALL_COUNT) { - for (j = 0; j < 12; j++) + for (j = 0; j < POKEBALL_COUNT; j++) { - FreeSpriteTilesByTag(gBallOpenParticleSpritesheets[j].tag); - FreeSpritePaletteByTag(gBallOpenParticlePalettes[j].tag); + FreeSpriteTilesByTag(gBallParticleSpritesheets[j].tag); + FreeSpritePaletteByTag(gBallParticlePalettes[j].tag); } } @@ -1838,12 +1851,12 @@ u8 LaunchBallFadeMonTask(u8 unfadeLater, u8 battler, u32 selectedPalettes, u8 ba if (!unfadeLater) { - BlendPalette(battler * 16 + 0x100, 16, 0, gUnknown_085E5310[ballId]); + BlendPalette(battler * 16 + 0x100, 16, 0, gBallOpenFadeColors[ballId]); gTasks[taskId].data[1] = 1; } else { - BlendPalette(battler * 16 + 0x100, 16, 16, gUnknown_085E5310[ballId]); + BlendPalette(battler * 16 + 0x100, 16, 16, gBallOpenFadeColors[ballId]); gTasks[taskId].data[0] = 16; gTasks[taskId].data[1] = -1; gTasks[taskId].func = sub_8172B40; @@ -1859,7 +1872,7 @@ static void sub_8172AB0(u8 taskId) if (gTasks[taskId].data[2] <= 16) { - BlendPalette(gTasks[taskId].data[3] * 16 + 0x100, 16, gTasks[taskId].data[0], gUnknown_085E5310[ballId]); + BlendPalette(gTasks[taskId].data[3] * 16 + 0x100, 16, gTasks[taskId].data[0], gBallOpenFadeColors[ballId]); gTasks[taskId].data[0] += gTasks[taskId].data[1]; gTasks[taskId].data[2]++; } @@ -1887,7 +1900,7 @@ static void sub_8172B90(u8 taskId) if (gTasks[taskId].data[2] <= 16) { - BlendPalette(gTasks[taskId].data[3] * 16 + 0x100, 16, gTasks[taskId].data[0], gUnknown_085E5310[ballId]); + BlendPalette(gTasks[taskId].data[3] * 16 + 0x100, 16, gTasks[taskId].data[0], gBallOpenFadeColors[ballId]); gTasks[taskId].data[0] += gTasks[taskId].data[1]; gTasks[taskId].data[2]++; }