diff options
Diffstat (limited to 'include')
42 files changed, 1342 insertions, 1006 deletions
diff --git a/include/battle.h b/include/battle.h index 13c1851cf..0f4087c90 100644 --- a/include/battle.h +++ b/include/battle.h @@ -62,70 +62,12 @@ #define BATTLE_BUFFER_LINK_SIZE 0x1000 -struct TrainerMonNoItemDefaultMoves -{ - u16 iv; - u8 lvl; - u16 species; -}; - -struct TrainerMonItemDefaultMoves -{ - u16 iv; - u8 lvl; - u16 species; - u16 heldItem; -}; - -struct TrainerMonNoItemCustomMoves -{ - u16 iv; - u8 lvl; - u16 species; - u16 moves[4]; -}; - -struct TrainerMonItemCustomMoves -{ - u16 iv; - u8 lvl; - u16 species; - u16 heldItem; - u16 moves[4]; -}; - -union TrainerMonPtr -{ - const struct TrainerMonNoItemDefaultMoves *NoItemDefaultMoves; - const struct TrainerMonNoItemCustomMoves *NoItemCustomMoves; - const struct TrainerMonItemDefaultMoves *ItemDefaultMoves; - const struct TrainerMonItemCustomMoves *ItemCustomMoves; -}; - -struct Trainer -{ - /*0x00*/ u8 partyFlags; - /*0x01*/ u8 trainerClass; - /*0x02*/ u8 encounterMusic_gender; // last bit is gender - /*0x03*/ u8 trainerPic; - /*0x04*/ u8 trainerName[12]; - /*0x10*/ u16 items[4]; - /*0x18*/ bool8 doubleBattle; - /*0x1C*/ u32 aiFlags; - /*0x20*/ u8 partySize; - /*0x24*/ union TrainerMonPtr party; -}; - -extern const struct Trainer gTrainers[]; - -#define TRAINER_ENCOUNTER_MUSIC(trainer)((gTrainers[trainer].encounterMusic_gender & 0x7F)) - -struct UnknownFlags +struct ResourceFlags { u32 flags[4]; }; -#define UNKNOWN_FLAG_FLASH_FIRE 1 +#define RESOURCE_FLAG_FLASH_FIRE 1 struct DisableStruct { @@ -276,21 +218,16 @@ struct BattleCallbacksStack struct StatsArray { - u16 hp; - u16 atk; - u16 def; - u16 spd; - u16 spAtk; - u16 spDef; + u16 stats[NUM_STATS]; }; struct BattleResources { - struct SecretBaseRecord* secretBase; - struct UnknownFlags *flags; + struct SecretBase* secretBase; + struct ResourceFlags *flags; struct BattleScriptsStack* battleScriptsStack; struct BattleCallbacksStack* battleCallbackStack; - struct StatsArray* statsBeforeLvlUp; + struct StatsArray* beforeLvlUp; struct AI_ThinkingStruct *ai; struct BattleHistory *battleHistory; struct BattleScriptsStack *AI_ScriptsStack; @@ -774,6 +711,5 @@ extern u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT]; extern u8 gMultiUsePlayerCursor; extern u8 gNumberOfMovesToChoose; extern u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT]; -extern const u8 gTrainerClassNames[][13]; #endif // GUARD_BATTLE_H diff --git a/include/battle_anim.h b/include/battle_anim.h index 949bc236b..a7b71bd85 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -62,7 +62,7 @@ void MoveBattlerSpriteToBG(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible) bool8 IsContest(void); s8 BattleAnimAdjustPanning(s8 pan); s8 BattleAnimAdjustPanning2(s8 pan); -s16 KeepPanInRange(s16 a); +s16 KeepPanInRange(s16 a, int oldPan); s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan); void sub_80A4720(u16 a, u16 *b, u32 c, u8 d); void sub_80A477C(bool8); diff --git a/include/battle_transition.h b/include/battle_transition.h index 0d6ef3c83..db06a5638 100644 --- a/include/battle_transition.h +++ b/include/battle_transition.h @@ -13,7 +13,7 @@ extern const struct SpritePalette gFieldEffectObjectPaletteInfo10; enum // TRANSITION_MUGSHOT { - MUGSHOT_SYDNEY, + MUGSHOT_SIDNEY, MUGSHOT_PHOEBE, MUGSHOT_GLACIA, MUGSHOT_DRAKE, @@ -36,7 +36,7 @@ enum // TRANSITION_MUGSHOT #define B_TRANSITION_WHITEFADE 9 #define B_TRANSITION_GRID_SQUARES 10 #define B_TRANSITION_SHARDS 11 -#define B_TRANSITION_SYDNEY 12 +#define B_TRANSITION_SIDNEY 12 #define B_TRANSITION_PHOEBE 13 #define B_TRANSITION_GLACIA 14 #define B_TRANSITION_DRAKE 15 diff --git a/include/berry.h b/include/berry.h index ee581b9c1..9ff18e198 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/constants/battle_anim.h b/include/constants/battle_anim.h index 34a45395c..0a023f0c2 100644 --- a/include/constants/battle_anim.h +++ b/include/constants/battle_anim.h @@ -11,137 +11,137 @@ #define ANIM_TAG_SPARK (ANIM_SPRITES_START + 1) #define ANIM_TAG_PENCIL (ANIM_SPRITES_START + 2) #define ANIM_TAG_AIR_WAVE (ANIM_SPRITES_START + 3) -#define ANIM_TAG_UNUSED_ORB (ANIM_SPRITES_START + 4) +#define ANIM_TAG_ORB (ANIM_SPRITES_START + 4) #define ANIM_TAG_SWORD (ANIM_SPRITES_START + 5) #define ANIM_TAG_SEED (ANIM_SPRITES_START + 6) -#define ANIM_TAG_UNUSED_EXPLOSION (ANIM_SPRITES_START + 7) -#define ANIM_TAG_UNUSED_PINK_ORB (ANIM_SPRITES_START + 8) +#define ANIM_TAG_EXPLOSION_6 (ANIM_SPRITES_START + 7) +#define ANIM_TAG_PINK_ORB (ANIM_SPRITES_START + 8) // unused #define ANIM_TAG_GUST (ANIM_SPRITES_START + 9) #define ANIM_TAG_ICE_CUBE (ANIM_SPRITES_START + 10) #define ANIM_TAG_SPARK_2 (ANIM_SPRITES_START + 11) -#define ANIM_TAG_UNUSED_ORANGE (ANIM_SPRITES_START + 12) +#define ANIM_TAG_ORANGE (ANIM_SPRITES_START + 12) // unused #define ANIM_TAG_YELLOW_BALL (ANIM_SPRITES_START + 13) #define ANIM_TAG_LOCK_ON (ANIM_SPRITES_START + 14) #define ANIM_TAG_TIED_BAG (ANIM_SPRITES_START + 15) #define ANIM_TAG_BLACK_SMOKE (ANIM_SPRITES_START + 16) #define ANIM_TAG_BLACK_BALL (ANIM_SPRITES_START + 17) #define ANIM_TAG_CONVERSION (ANIM_SPRITES_START + 18) -#define ANIM_TAG_UNUSED_GLASS (ANIM_SPRITES_START + 19) +#define ANIM_TAG_GLASS (ANIM_SPRITES_START + 19) // unused #define ANIM_TAG_HORN_HIT (ANIM_SPRITES_START + 20) -#define ANIM_TAG_UNUSED_HIT (ANIM_SPRITES_START + 21) -#define ANIM_TAG_UNUSED_HIT_2 (ANIM_SPRITES_START + 22) -#define ANIM_TAG_UNUSED_BLUE_SHARDS (ANIM_SPRITES_START + 23) -#define ANIM_TAG_UNUSED_CLOSING_EYE (ANIM_SPRITES_START + 24) -#define ANIM_TAG_UNUSED_WAVING_HAND (ANIM_SPRITES_START + 25) -#define ANIM_TAG_UNUSED_HIT_DUPLICATE (ANIM_SPRITES_START + 26) +#define ANIM_TAG_HIT (ANIM_SPRITES_START + 21) +#define ANIM_TAG_HIT_2 (ANIM_SPRITES_START + 22) +#define ANIM_TAG_BLUE_SHARDS (ANIM_SPRITES_START + 23) // unused +#define ANIM_TAG_CLOSING_EYE (ANIM_SPRITES_START + 24) // unused +#define ANIM_TAG_WAVING_HAND (ANIM_SPRITES_START + 25) // unused +#define ANIM_TAG_HIT_DUPLICATE (ANIM_SPRITES_START + 26) // unused #define ANIM_TAG_LEER (ANIM_SPRITES_START + 27) -#define ANIM_TAG_UNUSED_BLUE_BURST (ANIM_SPRITES_START + 28) +#define ANIM_TAG_BLUE_BURST (ANIM_SPRITES_START + 28) // unused #define ANIM_TAG_SMALL_EMBER (ANIM_SPRITES_START + 29) #define ANIM_TAG_GRAY_SMOKE (ANIM_SPRITES_START + 30) #define ANIM_TAG_BLUE_STAR (ANIM_SPRITES_START + 31) -#define ANIM_TAG_UNUSED_BUBBLE_BURST (ANIM_SPRITES_START + 32) +#define ANIM_TAG_BUBBLE_BURST (ANIM_SPRITES_START + 32) #define ANIM_TAG_FIRE (ANIM_SPRITES_START + 33) -#define ANIM_TAG_UNUSED_SPINNING_FIRE (ANIM_SPRITES_START + 34) +#define ANIM_TAG_SPINNING_FIRE (ANIM_SPRITES_START + 34) // unused #define ANIM_TAG_FIRE_PLUME (ANIM_SPRITES_START + 35) -#define ANIM_TAG_UNUSED_LIGHTNING (ANIM_SPRITES_START + 36) +#define ANIM_TAG_LIGHTNING_2 (ANIM_SPRITES_START + 36) // unused #define ANIM_TAG_LIGHTNING (ANIM_SPRITES_START + 37) -#define ANIM_TAG_UNUSED_CLAW_SLASH (ANIM_SPRITES_START + 38) +#define ANIM_TAG_CLAW_SLASH_2 (ANIM_SPRITES_START + 38) // unused #define ANIM_TAG_CLAW_SLASH (ANIM_SPRITES_START + 39) -#define ANIM_TAG_UNUSED_SCRATCH (ANIM_SPRITES_START + 40) -#define ANIM_TAG_UNUSED_SCRATCH_2 (ANIM_SPRITES_START + 41) -#define ANIM_TAG_UNUSED_BUBBLE_BURST_2 (ANIM_SPRITES_START + 42) +#define ANIM_TAG_SCRATCH_3 (ANIM_SPRITES_START + 40) // unused +#define ANIM_TAG_SCRATCH_2 (ANIM_SPRITES_START + 41) // unused +#define ANIM_TAG_BUBBLE_BURST_2 (ANIM_SPRITES_START + 42) // unused #define ANIM_TAG_ICE_CHUNK (ANIM_SPRITES_START + 43) -#define ANIM_TAG_UNUSED_GLASS_2 (ANIM_SPRITES_START + 44) -#define ANIM_TAG_UNUSED_PINK_HEART (ANIM_SPRITES_START + 45) -#define ANIM_TAG_UNUSED_SAP_DRIP (ANIM_SPRITES_START + 46) -#define ANIM_TAG_UNUSED_SAP_DRIP_2 (ANIM_SPRITES_START + 47) +#define ANIM_TAG_GLASS_2 (ANIM_SPRITES_START + 44) // unused +#define ANIM_TAG_PINK_HEART_2 (ANIM_SPRITES_START + 45) // unused +#define ANIM_TAG_SAP_DRIP (ANIM_SPRITES_START + 46) // unused +#define ANIM_TAG_SAP_DRIP_2 (ANIM_SPRITES_START + 47) // unused #define ANIM_TAG_SPARKLE_1 (ANIM_SPRITES_START + 48) #define ANIM_TAG_SPARKLE_2 (ANIM_SPRITES_START + 49) #define ANIM_TAG_HUMANOID_FOOT (ANIM_SPRITES_START + 50) -#define ANIM_TAG_UNUSED_MONSTER_FOOT (ANIM_SPRITES_START + 51) -#define ANIM_TAG_UNUSED_HUMANOID_HAND (ANIM_SPRITES_START + 52) +#define ANIM_TAG_MONSTER_FOOT (ANIM_SPRITES_START + 51) +#define ANIM_TAG_HUMANOID_HAND (ANIM_SPRITES_START + 52) // unused #define ANIM_TAG_NOISE_LINE (ANIM_SPRITES_START + 53) -#define ANIM_TAG_UNUSED_YELLOW_UNK (ANIM_SPRITES_START + 54) -#define ANIM_TAG_UNUSED_RED_FIST (ANIM_SPRITES_START + 55) +#define ANIM_TAG_YELLOW_UNK (ANIM_SPRITES_START + 54) // unused +#define ANIM_TAG_RED_FIST (ANIM_SPRITES_START + 55) // unused #define ANIM_TAG_SLAM_HIT (ANIM_SPRITES_START + 56) -#define ANIM_TAG_UNUSED_RING (ANIM_SPRITES_START + 57) +#define ANIM_TAG_RING (ANIM_SPRITES_START + 57) // unused #define ANIM_TAG_ROCKS (ANIM_SPRITES_START + 58) -#define ANIM_TAG_UNUSED_Z (ANIM_SPRITES_START + 59) -#define ANIM_TAG_UNUSED_YELLOW_UNK_2 (ANIM_SPRITES_START + 60) -#define ANIM_TAG_UNUSED_AIR_SLASH (ANIM_SPRITES_START + 61) -#define ANIM_TAG_UNUSED_SPINNING_GREEN_ORBS (ANIM_SPRITES_START + 62) +#define ANIM_TAG_Z (ANIM_SPRITES_START + 59) // unused +#define ANIM_TAG_YELLOW_UNK_2 (ANIM_SPRITES_START + 60) // unused +#define ANIM_TAG_AIR_SLASH (ANIM_SPRITES_START + 61) // unused +#define ANIM_TAG_SPINNING_GREEN_ORBS (ANIM_SPRITES_START + 62) // unused #define ANIM_TAG_LEAF (ANIM_SPRITES_START + 63) #define ANIM_TAG_FINGER (ANIM_SPRITES_START + 64) #define ANIM_TAG_POISON_POWDER (ANIM_SPRITES_START + 65) -#define ANIM_TAG_UNUSED_BROWN_TRIANGLE (ANIM_SPRITES_START + 66) +#define ANIM_TAG_BROWN_TRIANGLE (ANIM_SPRITES_START + 66) // unused #define ANIM_TAG_SLEEP_POWDER (ANIM_SPRITES_START + 67) #define ANIM_TAG_STUN_SPORE (ANIM_SPRITES_START + 68) -#define ANIM_TAG_UNUSED_POWDER (ANIM_SPRITES_START + 69) +#define ANIM_TAG_POWDER (ANIM_SPRITES_START + 69) // unused #define ANIM_TAG_SPARKLE_3 (ANIM_SPRITES_START + 70) #define ANIM_TAG_SPARKLE_4 (ANIM_SPRITES_START + 71) #define ANIM_TAG_MUSIC_NOTES (ANIM_SPRITES_START + 72) #define ANIM_TAG_DUCK (ANIM_SPRITES_START + 73) #define ANIM_TAG_MUD_SAND (ANIM_SPRITES_START + 74) #define ANIM_TAG_ALERT (ANIM_SPRITES_START + 75) -#define ANIM_TAG_UNUSED_BLUE_FLAMES (ANIM_SPRITES_START + 76) -#define ANIM_TAG_UNUSED_BLUE_FLAMES_2 (ANIM_SPRITES_START + 77) -#define ANIM_TAG_UNUSED_SHOCK (ANIM_SPRITES_START + 78) +#define ANIM_TAG_BLUE_FLAMES (ANIM_SPRITES_START + 76) // unused +#define ANIM_TAG_BLUE_FLAMES_2 (ANIM_SPRITES_START + 77) // unused +#define ANIM_TAG_SHOCK_4 (ANIM_SPRITES_START + 78) // unused #define ANIM_TAG_SHOCK (ANIM_SPRITES_START + 79) -#define ANIM_TAG_UNUSED_BELL (ANIM_SPRITES_START + 80) -#define ANIM_TAG_UNUSED_PINK_GLOVE (ANIM_SPRITES_START + 81) -#define ANIM_TAG_UNUSED_BLUE_LINES (ANIM_SPRITES_START + 82) -#define ANIM_TAG_UNUSED_IMPACT (ANIM_SPRITES_START + 83) -#define ANIM_TAG_UNUSED_IMPACT_2 (ANIM_SPRITES_START + 84) -#define ANIM_TAG_UNUSED_RETICLE (ANIM_SPRITES_START + 85) +#define ANIM_TAG_BELL_2 (ANIM_SPRITES_START + 80) // unused +#define ANIM_TAG_PINK_GLOVE (ANIM_SPRITES_START + 81) // unused +#define ANIM_TAG_BLUE_LINES (ANIM_SPRITES_START + 82) // unused +#define ANIM_TAG_IMPACT_3 (ANIM_SPRITES_START + 83) // unused +#define ANIM_TAG_IMPACT_2 (ANIM_SPRITES_START + 84) // unused +#define ANIM_TAG_RETICLE (ANIM_SPRITES_START + 85) // unused #define ANIM_TAG_BREATH (ANIM_SPRITES_START + 86) #define ANIM_TAG_ANGER (ANIM_SPRITES_START + 87) -#define ANIM_TAG_UNUSED_SNOWBALL (ANIM_SPRITES_START + 88) -#define ANIM_TAG_UNUSED_VINE (ANIM_SPRITES_START + 89) -#define ANIM_TAG_UNUSED_SWORD (ANIM_SPRITES_START + 90) -#define ANIM_TAG_UNUSED_CLAPPING (ANIM_SPRITES_START + 91) -#define ANIM_TAG_UNUSED_RED_TUBE (ANIM_SPRITES_START + 92) +#define ANIM_TAG_SNOWBALL (ANIM_SPRITES_START + 88) // unused +#define ANIM_TAG_VINE (ANIM_SPRITES_START + 89) // unused +#define ANIM_TAG_SWORD_2 (ANIM_SPRITES_START + 90) // unused +#define ANIM_TAG_CLAPPING (ANIM_SPRITES_START + 91) // unused +#define ANIM_TAG_RED_TUBE (ANIM_SPRITES_START + 92) // unused #define ANIM_TAG_AMNESIA (ANIM_SPRITES_START + 93) -#define ANIM_TAG_UNUSED_STRING (ANIM_SPRITES_START + 94) -#define ANIM_TAG_UNUSED_PENCIL (ANIM_SPRITES_START + 95) -#define ANIM_TAG_UNUSED_PETAL (ANIM_SPRITES_START + 96) +#define ANIM_TAG_STRING_2 (ANIM_SPRITES_START + 94) // unused +#define ANIM_TAG_PENCIL_2 (ANIM_SPRITES_START + 95) // unused +#define ANIM_TAG_PETAL (ANIM_SPRITES_START + 96) // unused #define ANIM_TAG_BENT_SPOON (ANIM_SPRITES_START + 97) -#define ANIM_TAG_UNUSED_WEB (ANIM_SPRITES_START + 98) +#define ANIM_TAG_WEB (ANIM_SPRITES_START + 98) // unused #define ANIM_TAG_MILK_BOTTLE (ANIM_SPRITES_START + 99) #define ANIM_TAG_COIN (ANIM_SPRITES_START + 100) -#define ANIM_TAG_UNUSED_CRACKED_EGG (ANIM_SPRITES_START + 101) -#define ANIM_TAG_UNUSED_HATCHED_EGG (ANIM_SPRITES_START + 102) -#define ANIM_TAG_UNUSED_FRESH_EGG (ANIM_SPRITES_START + 103) -#define ANIM_TAG_UNUSED_FANGS (ANIM_SPRITES_START + 104) -#define ANIM_TAG_UNUSED_EXPLOSION_2 (ANIM_SPRITES_START + 105) -#define ANIM_TAG_UNUSED_EXPLOSION_3 (ANIM_SPRITES_START + 106) -#define ANIM_TAG_UNUSED_WATER_DROPLET (ANIM_SPRITES_START + 107) -#define ANIM_TAG_UNUSED_WATER_DROPLET_2 (ANIM_SPRITES_START + 108) -#define ANIM_TAG_UNUSED_SEED (ANIM_SPRITES_START + 109) -#define ANIM_TAG_UNUSED_SPROUT (ANIM_SPRITES_START + 110) -#define ANIM_TAG_UNUSED_RED_WAND (ANIM_SPRITES_START + 111) -#define ANIM_TAG_UNUSED_PURPLE_GREEN_UNK (ANIM_SPRITES_START + 112) -#define ANIM_TAG_UNUSED_WATER_COLUMN (ANIM_SPRITES_START + 113) -#define ANIM_TAG_UNUSED_MUD_UNK (ANIM_SPRITES_START + 114) +#define ANIM_TAG_CRACKED_EGG (ANIM_SPRITES_START + 101) // unused +#define ANIM_TAG_HATCHED_EGG (ANIM_SPRITES_START + 102) // unused +#define ANIM_TAG_FRESH_EGG (ANIM_SPRITES_START + 103) // unused +#define ANIM_TAG_FANGS (ANIM_SPRITES_START + 104) // unused +#define ANIM_TAG_EXPLOSION_2 (ANIM_SPRITES_START + 105) // unused +#define ANIM_TAG_EXPLOSION_3 (ANIM_SPRITES_START + 106) // unused +#define ANIM_TAG_WATER_DROPLET (ANIM_SPRITES_START + 107) // unused +#define ANIM_TAG_WATER_DROPLET_2 (ANIM_SPRITES_START + 108) // unused +#define ANIM_TAG_SEED_2 (ANIM_SPRITES_START + 109) // unused +#define ANIM_TAG_SPROUT (ANIM_SPRITES_START + 110) // unused +#define ANIM_TAG_RED_WAND (ANIM_SPRITES_START + 111) // unused +#define ANIM_TAG_PURPLE_GREEN_UNK (ANIM_SPRITES_START + 112) // unused +#define ANIM_TAG_WATER_COLUMN (ANIM_SPRITES_START + 113) // unused +#define ANIM_TAG_MUD_UNK (ANIM_SPRITES_START + 114) // unused #define ANIM_TAG_RAIN_DROPS (ANIM_SPRITES_START + 115) -#define ANIM_TAG_UNUSED_FURY_SWIPES (ANIM_SPRITES_START + 116) -#define ANIM_TAG_UNUSED_VINE_2 (ANIM_SPRITES_START + 117) -#define ANIM_TAG_UNUSED_TEETH (ANIM_SPRITES_START + 118) -#define ANIM_TAG_UNUSED_BONE (ANIM_SPRITES_START + 119) -#define ANIM_TAG_UNUSED_WHITE_BAG (ANIM_SPRITES_START + 120) -#define ANIM_TAG_UNUSED_UNKNOWN (ANIM_SPRITES_START + 121) -#define ANIM_TAG_UNUSED_PURPLE_CORAL (ANIM_SPRITES_START + 122) -#define ANIM_TAG_UNUSED_PURPLE_DROPLET (ANIM_SPRITES_START + 123) -#define ANIM_TAG_UNUSED_SHOCK_2 (ANIM_SPRITES_START + 124) -#define ANIM_TAG_UNUSED_CLOSING_EYE_2 (ANIM_SPRITES_START + 125) -#define ANIM_TAG_UNUSED_METAL_BALL (ANIM_SPRITES_START + 126) -#define ANIM_TAG_UNUSED_MONSTER_DOLL (ANIM_SPRITES_START + 127) -#define ANIM_TAG_UNUSED_WHIRLWIND (ANIM_SPRITES_START + 128) -#define ANIM_TAG_UNUSED_WHIRLWIND_2 (ANIM_SPRITES_START + 129) -#define ANIM_TAG_UNUSED_EXPLOSION_4 (ANIM_SPRITES_START + 130) -#define ANIM_TAG_UNUSED_EXPLOSION_5 (ANIM_SPRITES_START + 131) -#define ANIM_TAG_UNUSED_TONGUE (ANIM_SPRITES_START + 132) -#define ANIM_TAG_UNUSED_SMOKE (ANIM_SPRITES_START + 133) -#define ANIM_TAG_UNUSED_SMOKE_2 (ANIM_SPRITES_START + 134) +#define ANIM_TAG_FURY_SWIPES (ANIM_SPRITES_START + 116) // unused +#define ANIM_TAG_VINE_2 (ANIM_SPRITES_START + 117) // unused +#define ANIM_TAG_TEETH (ANIM_SPRITES_START + 118) // unused +#define ANIM_TAG_BONE_2 (ANIM_SPRITES_START + 119) // unused +#define ANIM_TAG_WHITE_BAG (ANIM_SPRITES_START + 120) // unused +#define ANIM_TAG_UNKNOWN (ANIM_SPRITES_START + 121) // unused +#define ANIM_TAG_PURPLE_CORAL (ANIM_SPRITES_START + 122) // unused +#define ANIM_TAG_PURPLE_DROPLET (ANIM_SPRITES_START + 123) // unused +#define ANIM_TAG_SHOCK_2 (ANIM_SPRITES_START + 124) // unused +#define ANIM_TAG_CLOSING_EYE_2 (ANIM_SPRITES_START + 125) // unused +#define ANIM_TAG_METAL_BALL (ANIM_SPRITES_START + 126) // unused +#define ANIM_TAG_MONSTER_DOLL (ANIM_SPRITES_START + 127) // unused +#define ANIM_TAG_WHIRLWIND (ANIM_SPRITES_START + 128) // unused +#define ANIM_TAG_WHIRLWIND_2 (ANIM_SPRITES_START + 129) // unused +#define ANIM_TAG_EXPLOSION_4 (ANIM_SPRITES_START + 130) // unused +#define ANIM_TAG_EXPLOSION_5 (ANIM_SPRITES_START + 131) // unused +#define ANIM_TAG_TONGUE (ANIM_SPRITES_START + 132) // unused +#define ANIM_TAG_SMOKE (ANIM_SPRITES_START + 133) // unused +#define ANIM_TAG_SMOKE_2 (ANIM_SPRITES_START + 134) // unused #define ANIM_TAG_IMPACT (ANIM_SPRITES_START + 135) #define ANIM_TAG_CIRCLE_IMPACT (ANIM_SPRITES_START + 136) #define ANIM_TAG_SCRATCH (ANIM_SPRITES_START + 137) @@ -185,11 +185,11 @@ #define ANIM_TAG_LARGE_FRESH_EGG (ANIM_SPRITES_START + 175) #define ANIM_TAG_SHADOW_BALL (ANIM_SPRITES_START + 176) #define ANIM_TAG_LICK (ANIM_SPRITES_START + 177) -#define ANIM_TAG_UNUSED_VOID_LINES (ANIM_SPRITES_START + 178) +#define ANIM_TAG_VOID_LINES (ANIM_SPRITES_START + 178) #define ANIM_TAG_STRING (ANIM_SPRITES_START + 179) #define ANIM_TAG_WEB_THREAD (ANIM_SPRITES_START + 180) #define ANIM_TAG_SPIDER_WEB (ANIM_SPRITES_START + 181) -#define ANIM_TAG_UNUSED_LIGHTBULB (ANIM_SPRITES_START + 182) +#define ANIM_TAG_LIGHTBULB (ANIM_SPRITES_START + 182) // unused #define ANIM_TAG_SLASH (ANIM_SPRITES_START + 183) #define ANIM_TAG_FOCUS_ENERGY (ANIM_SPRITES_START + 184) #define ANIM_TAG_SPHERE_TO_CUBE (ANIM_SPRITES_START + 185) @@ -211,7 +211,7 @@ #define ANIM_TAG_WARM_ROCK (ANIM_SPRITES_START + 201) #define ANIM_TAG_BREAKING_EGG (ANIM_SPRITES_START + 202) #define ANIM_TAG_THIN_RING (ANIM_SPRITES_START + 203) -#define ANIM_TAG_UNUSED_PUNCH_IMPACT (ANIM_SPRITES_START + 204) +#define ANIM_TAG_PUNCH_IMPACT (ANIM_SPRITES_START + 204) // unused #define ANIM_TAG_BELL (ANIM_SPRITES_START + 205) #define ANIM_TAG_MUSIC_NOTES_2 (ANIM_SPRITES_START + 206) #define ANIM_TAG_SPEED_DUST (ANIM_SPRITES_START + 207) @@ -276,17 +276,17 @@ #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_UNUSED_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) #define ANIM_TAG_SWEAT_BEAD (ANIM_SPRITES_START + 273) -#define ANIM_TAG_UNUSED_GEM_1 (ANIM_SPRITES_START + 274) -#define ANIM_TAG_UNUSED_GEM_2 (ANIM_SPRITES_START + 275) -#define ANIM_TAG_UNUSED_GEM_3 (ANIM_SPRITES_START + 276) +#define ANIM_TAG_GEM_1 (ANIM_SPRITES_START + 274) // unused +#define ANIM_TAG_GEM_2 (ANIM_SPRITES_START + 275) // unused +#define ANIM_TAG_GEM_3 (ANIM_SPRITES_START + 276) // unused #define ANIM_TAG_SLAM_HIT_2 (ANIM_SPRITES_START + 277) #define ANIM_TAG_RECYCLE (ANIM_SPRITES_START + 278) -#define ANIM_TAG_UNUSED_RED_PARTICLES (ANIM_SPRITES_START + 279) +#define ANIM_TAG_RED_PARTICLES (ANIM_SPRITES_START + 279) // unused #define ANIM_TAG_PROTECT (ANIM_SPRITES_START + 280) #define ANIM_TAG_DIRT_MOUND (ANIM_SPRITES_START + 281) #define ANIM_TAG_SHOCK_3 (ANIM_SPRITES_START + 282) @@ -313,7 +313,7 @@ // . . // . . // 127 -// +// #define SOUND_PAN_ATTACKER -64 #define SOUND_PAN_TARGET 63 @@ -335,10 +335,10 @@ #define BG_GUILLOTINE_CONTESTS 14 #define BG_ICE 15 #define BG_COSMIC 16 -#define BG_SEISMICTOSS_SKUUPPERCUT 17 -#define BG_FLYING 18 -#define BG_FLYING_CONTESTS 19 -#define BG_AURORABEAM 20 +#define BG_IN_AIR 17 +#define BG_SKY 18 +#define BG_SKY_CONTESTS 19 +#define BG_AURORA 20 #define BG_FISSURE 21 #define BG_BUG_OPPONENT 22 #define BG_BUG_PLAYER 23 @@ -411,32 +411,32 @@ #define ANIM_WEATHER_HAIL 4 // Battle mon back animations. -#define BACK_ANIM_NONE 0x00 -#define BACK_ANIM_H_SLIDE_QUICK 0x01 -#define BACK_ANIM_H_SLIDE 0x02 -#define BACK_ANIM_H_SLIDE_WITH_V_COMPRESS_1 0x03 -#define BACK_ANIM_H_SLIDE_WITH_V_COMPRESS_2 0x04 -#define BACK_ANIM_SHRINK_GROW_1 0x05 -#define BACK_ANIM_GROW_1 0x06 -#define BACK_ANIM_CIRCLE_MOVE_COUNTERCLOCKWISE 0x07 -#define BACK_ANIM_HORIZONTAL_SHAKE 0x08 -#define BACK_ANIM_VERTICAL_SHAKE 0x09 -#define BACK_ANIM_V_SHAKE_WITH_H_SLIDE 0x0a -#define BACK_ANIM_VERTICAL_STRETCH 0x0b -#define BACK_ANIM_HORIZONTAL_STRETCH 0x0c -#define BACK_ANIM_GROW_2 0x0d -#define BACK_ANIM_V_SHAKE_WITH_PAUSE 0x0e -#define BACK_ANIM_CIRCLE_MOVE_CLOCKWISE 0x0f -#define BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL 0x10 -#define BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE 0x11 -#define BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE 0x12 -#define BACK_ANIM_DIP_RIGHT_SIDE 0x13 -#define BACK_ANIM_SHRINK_GROW_2 0x14 -#define BACK_ANIM_JOLT_RIGHT 0x15 -#define BACK_ANIM_FLASH_YELLOW_WITH_SHAKE 0x16 -#define BACK_ANIM_FADE_RED_WITH_SHAKE 0x17 -#define BACK_ANIM_FADE_GREEN_WITH_SHAKE 0x18 -#define BACK_ANIM_FADE_BLUE_WITH_SHAKE 0x19 +#define BACK_ANIM_NONE 0x00 +#define BACK_ANIM_H_SLIDE_QUICK 0x01 +#define BACK_ANIM_H_SLIDE 0x02 +#define BACK_ANIM_H_SLIDE_WITH_V_COMPRESS_1 0x03 +#define BACK_ANIM_H_SLIDE_WITH_V_COMPRESS_2 0x04 +#define BACK_ANIM_SHRINK_GROW_1 0x05 +#define BACK_ANIM_GROW_1 0x06 +#define BACK_ANIM_CIRCLE_MOVE_COUNTERCLOCKWISE 0x07 +#define BACK_ANIM_HORIZONTAL_SHAKE 0x08 +#define BACK_ANIM_VERTICAL_SHAKE 0x09 +#define BACK_ANIM_V_SHAKE_WITH_H_SLIDE 0x0a +#define BACK_ANIM_VERTICAL_STRETCH 0x0b +#define BACK_ANIM_HORIZONTAL_STRETCH 0x0c +#define BACK_ANIM_GROW_2 0x0d +#define BACK_ANIM_V_SHAKE_WITH_PAUSE 0x0e +#define BACK_ANIM_CIRCLE_MOVE_CLOCKWISE 0x0f +#define BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_SMALL 0x10 +#define BACK_ANIM_CONCAVE_DOWN_ARC_SWAY_LARGE 0x11 +#define BACK_ANIM_CONCAVE_UP_ARC_SWAY_LARGE 0x12 +#define BACK_ANIM_DIP_RIGHT_SIDE 0x13 +#define BACK_ANIM_SHRINK_GROW_2 0x14 +#define BACK_ANIM_JOLT_RIGHT 0x15 +#define BACK_ANIM_FLASH_YELLOW_WITH_SHAKE 0x16 +#define BACK_ANIM_FADE_RED_WITH_SHAKE 0x17 +#define BACK_ANIM_FADE_GREEN_WITH_SHAKE 0x18 +#define BACK_ANIM_FADE_BLUE_WITH_SHAKE 0x19 #endif // GUARD_CONSTANTS_BATTLE_ANIM_H diff --git a/include/constants/event_objects.h b/include/constants/event_objects.h index 9973477da..07ed2d40c 100644 --- a/include/constants/event_objects.h +++ b/include/constants/event_objects.h @@ -274,6 +274,8 @@ #define TRACKS_FOOT 1 #define TRACKS_BIKE_TIRE 2 +#define FIRST_DECORATION_SPRITE_GFX EVENT_OBJ_GFX_PICHU_DOLL + #define EVENT_OBJ_ID_PLAYER 0xFF #define EVENT_OBJ_ID_CAMERA 0x7F diff --git a/include/constants/flags.h b/include/constants/flags.h index 0450e988d..732c68764 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -287,7 +287,7 @@ #define FLAG_RECEIVED_TM41 0x109 #define FLAG_RECEIVED_LAVARIDGE_EGG 0x10A #define FLAG_RECEIVED_REVIVED_FOSSIL_MON 0x10B -#define FLAG_DECORATION_16 0x10C +#define FLAG_SECRET_BASE_REGISTRY_ENABLED 0x10C #define FLAG_RECEIVED_TM46 0x10D #define FLAG_CONTEST_SKETCH_CREATED 0x10E #define FLAG_EVIL_TEAM_ESCAPED_STERN_SPOKE 0x10F @@ -1248,7 +1248,7 @@ #define FLAG_UNUSED_0x4F9 0x4F9 // Unused Flag #define FLAG_UNUSED_0x4FA 0x4FA // Unused Flag -#define FLAG_DEFEATED_ELITE_4_SYDNEY 0x4FB +#define FLAG_DEFEATED_ELITE_4_SIDNEY 0x4FB #define FLAG_DEFEATED_ELITE_4_PHOEBE 0x4FC #define FLAG_DEFEATED_ELITE_4_GLACIA 0x4FD #define FLAG_DEFEATED_ELITE_4_DRAKE 0x4FE diff --git a/include/constants/item_effects.h b/include/constants/item_effects.h new file mode 100644 index 000000000..a5bb77035 --- /dev/null +++ b/include/constants/item_effects.h @@ -0,0 +1,79 @@ +#ifndef GUARD_CONSTANTS_ITEM_EFFECTS_H +#define GUARD_CONSTANTS_ITEM_EFFECTS_H + +// field 0 masks +#define ITEM0_X_ATTACK 0x0F +#define ITEM0_HIGH_CRIT 0x30 // For Dire Hit, works the same way as move Focus Energy. +#define ITEM0_SACRED_ASH 0x40 +#define ITEM0_INFATUATION 0x80 + +// field 1 masks +#define ITEM1_X_SPEED 0x0F +#define ITEM1_X_DEFEND 0xF0 + +// field 2 masks +#define ITEM2_X_SPATK 0x0F +#define ITEM2_X_ACCURACY 0xF0 + +// field 3 masks +#define ITEM3_CONFUSION 0x1 +#define ITEM3_PARALYSIS 0x2 +#define ITEM3_FREEZE 0x4 +#define ITEM3_BURN 0x8 +#define ITEM3_POISON 0x10 +#define ITEM3_SLEEP 0x20 +#define ITEM3_LEVEL_UP 0x40 +#define ITEM3_MIST 0x80 // For Guard Specs, works the same way as move Mist. + +#define ITEM3_STATUS_ALL (ITEM3_CONFUSION | ITEM3_PARALYSIS | ITEM3_FREEZE | ITEM3_BURN | ITEM3_POISON | ITEM3_SLEEP) + +// field 4 masks +#define ITEM4_EV_HP 0x1 +#define ITEM4_EV_ATK 0x2 +#define ITEM4_HEAL_HP 0x4 +#define ITEM4_HEAL_PP_ALL 0x8 +#define ITEM4_HEAL_PP_ONE 0x10 +#define ITEM4_PP_UP 0x20 +#define ITEM4_REVIVE 0x40 +#define ITEM4_EVO_STONE 0x80 + +// field 5 masks +#define ITEM5_EV_DEF 0x1 +#define ITEM5_EV_SPEED 0x2 +#define ITEM5_EV_SPDEF 0x4 +#define ITEM5_EV_SPATK 0x8 +#define ITEM5_PP_MAX 0x10 +#define ITEM5_FRIENDSHIP_LOW 0x20 +#define ITEM5_FRIENDSHIP_MID 0x40 +#define ITEM5_FRIENDSHIP_HIGH 0x80 + +#define ITEM5_FRIENDSHIP_ALL (ITEM5_FRIENDSHIP_LOW | ITEM5_FRIENDSHIP_MID | ITEM5_FRIENDSHIP_HIGH) + +// fields 6 and onwards are item-specific arguments + +// Used for GetItemEffectType. +#define ITEM_EFFECT_X_ITEM 0 +#define ITEM_EFFECT_RAISE_LEVEL 1 +#define ITEM_EFFECT_HEAL_HP 2 +#define ITEM_EFFECT_CURE_POISON 3 +#define ITEM_EFFECT_CURE_SLEEP 4 +#define ITEM_EFFECT_CURE_BURN 5 +#define ITEM_EFFECT_CURE_FREEZE 6 +#define ITEM_EFFECT_CURE_PARALYSIS 7 +#define ITEM_EFFECT_CURE_CONFUSION 8 +#define ITEM_EFFECT_CURE_INFATUATION 9 +#define ITEM_EFFECT_SACRED_ASH 10 +#define ITEM_EFFECT_CURE_ALL_STATUS 11 +#define ITEM_EFFECT_ATK_EV 12 +#define ITEM_EFFECT_HP_EV 13 +#define ITEM_EFFECT_SPATK_EV 14 +#define ITEM_EFFECT_SPDEF_EV 15 +#define ITEM_EFFECT_SPEED_EV 16 +#define ITEM_EFFECT_DEF_EV 17 +#define ITEM_EFFECT_EVO_STONE 18 +#define ITEM_EFFECT_PP_UP 19 +#define ITEM_EFFECT_PP_MAX 20 +#define ITEM_EFFECT_HEAL_PP 21 +#define ITEM_EFFECT_NONE 22 + +#endif // GUARD_CONSTANTS_ITEM_EFFECTS_H diff --git a/include/constants/items.h b/include/constants/items.h index 294499c8b..3a894f8ff 100644 --- a/include/constants/items.h +++ b/include/constants/items.h @@ -473,6 +473,6 @@ #define NUM_HIDDEN_MACHINES 8 // Check if the item is one that can be used on a Pokemon. -#define IS_POKEMON_ITEM(item) ((item) >= ITEM_POTION && (item) <= ITEM_0B2) +#define ITEM_HAS_EFFECT(item) ((item) >= ITEM_POTION && (item) <= ITEM_0B2) #endif // GUARD_CONSTANTS_ITEMS_H diff --git a/include/constants/metatile_behaviors.h b/include/constants/metatile_behaviors.h index d8d75066c..44bbd9729 100755 --- a/include/constants/metatile_behaviors.h +++ b/include/constants/metatile_behaviors.h @@ -182,7 +182,7 @@ #define MB_SECRET_BASE_UNUSED 0xB2 #define MB_BLOCK_DECORATION 0xB3 #define MB_SECRET_BASE_DECORATION 0xB4 -#define MB_SECRET_BASE_LARGE_MAT_EDGE 0xB5 +#define MB_HOLDS_SMALL_DECORATION 0xB5 #define MB_UNUSED_B6 0xB6 #define MB_SECRET_BASE_NORTH_WALL 0xB7 #define MB_SECRET_BASE_BALLOON 0xB8 @@ -196,7 +196,7 @@ #define MB_IMPASSABLE_SOUTH_AND_NORTH 0xC0 #define MB_IMPASSABLE_WEST_AND_EAST 0xC1 #define MB_SECRET_BASE_HOLE 0xC2 -#define MB_LARGE_MAT_CENTER 0xC3 +#define MB_HOLDS_LARGE_DECORATION 0xC3 #define MB_SECRET_BASE_TV_SHIELD 0xC4 #define MB_PLAYER_ROOM_PC_ON 0xC5 #define MB_C6 0xC6 diff --git a/include/constants/songs.h b/include/constants/songs.h index 3778d5f08..b44c9f7a8 100644 --- a/include/constants/songs.h +++ b/include/constants/songs.h @@ -463,7 +463,7 @@ #define MUS_RG_SOUSA 535 // Starting Tutorial #define MUS_RG_SEKAIKAN 536 // Starting Tutorial 2 #define MUS_RG_SEIBETU 537 // Starting Tutorial 3 -#define MUS_RG_JUMP 538 // Jumping Minigame +#define MUS_RG_JUMP 538 // Pokemon Jump Minigame #define MUS_RG_UNION 539 // Union Room #define MUS_RG_NETWORK 540 // Network Center #define MUS_RG_OKURIMONO 541 // Mystery Gift diff --git a/include/constants/vars.h b/include/constants/vars.h index 20524611b..6fd1c16dd 100644 --- a/include/constants/vars.h +++ b/include/constants/vars.h @@ -1,8 +1,6 @@ #ifndef GUARD_CONSTANTS_VARS_H #define GUARD_CONSTANTS_VARS_H -#define UNKNOWN_VAR_OFFSET_3F20 0x3F20 - #define VARS_START 0x4000 // temporary vars diff --git a/include/contest.h b/include/contest.h index a0b1a6b34..a4e209bcb 100644 --- a/include/contest.h +++ b/include/contest.h @@ -1,6 +1,27 @@ #ifndef GUARD_CONTEST_H #define GUARD_CONTEST_H +#include "palette.h" + +#define CONTESTANT_COUNT 4 +#define APPLAUSE_METER_SIZE 5 +#define CONTEST_TURN_COUNT 5 + +enum +{ + CONTEST_DEBUG_MODE_OFF, + // Prints the totalPoints value for each contestant. + CONTEST_DEBUG_MODE_PRINT_POINT_TOTAL, + // Prints the ContestResourcesField1C::unk_C value as a bitstring for each contestant. + CONTEST_DEBUG_MODE_PRINT_UNK_C, + // Prints the ContestResourcesField1C::unk_D value as a bitstring for each contestant. + CONTEST_DEBUG_MODE_PRINT_UNK_D +}; + +#define LINK_CONTEST_FLAG_IS_LINK (1 << 0) +#define LINK_CONTEST_FLAG_IS_WIRELESS (1 << 1) +#define LINK_CONTEST_FLAG_HAS_RS_PLAYER (1 << 2) + enum { CONTEST_CATEGORY_COOL, @@ -216,7 +237,7 @@ struct ContestPokemon /*0x02*/ u8 nickname[POKEMON_NAME_LENGTH + 1]; /*0x0D*/ u8 trainerName[PLAYER_NAME_LENGTH + 1]; /*0x15*/ u8 trainerGfxId; - /*0x18*/ u32 flags; + /*0x18*/ u32 aiChecks; /*0x1C*/ u8 whichRank:2; // 0x1 0x2 u8 aiPool_Cool:1; // 0x4 u8 aiPool_Beauty:1; // 0x8 @@ -235,14 +256,12 @@ struct ContestPokemon /*0x3C*/ u32 otId; // otId }; -struct Shared18000 +struct Shared1A004 { - /*0x18000*/ u8 unk18000; - /*0x18001*/ u8 filler18001[3]; - /*0x18004*/ u16 unk18004[16][16]; - /*0x18204*/ u16 unk18204[0x200]; - /*0x18604*/ u16 unk18604[0x200]; - /*0x18A04*/ u8 unk18A04[0x800]; + u16 cachedWindowPalettes[16][16]; // Saved palette data before a move happens? + u16 unk18204[PLTT_BUFFER_SIZE]; // Saved copy of gPlttBufferUnfaded + u16 unk18604[PLTT_BUFFER_SIZE]; // Saved copy of gPlttBufferFaded + u8 savedJunk[0x800]; }; struct ContestStruct_field_18 @@ -260,14 +279,14 @@ struct Contest { /*0x0*/ u8 playerMoveChoice; /*0x1*/ u8 turnNumber; - /*0x2*/ u8 unk19206[4]; // seems to only be used by an unref function + /*0x2*/ u8 unused2[CONTESTANT_COUNT]; /*0x6*/ u16 unk1920A_0:1; // Task active flags? u16 unk1920A_1:1; u16 unk1920A_2:1; u16 unk1920A_3:1; u16 unk1920A_4:1; - u16 unk1920A_5:1; - u16 unk1920A_6:1; + u16 isShowingApplauseMeter:1; + u16 applauseMeterIsMoving:1; u16 unk1920A_7:1; /*0x7*/ u16 unk1920B_0:1; u16 unk1920B_1:1; @@ -281,12 +300,12 @@ struct Contest /*0x11*/ u8 unk19215; /*0x12*/ u8 unk19216; // sprite ID /*0x13*/ s8 applauseLevel; - /*0x19218*/ u8 unk19218[4]; + /*0x19218*/ u8 prevTurnOrder[CONTESTANT_COUNT]; /*0x1921C*/ u32 unk1921C; // saved RNG value? - u16 unk19220[5][4]; // move history? - u8 unk19248[5][4]; // excitement history - u8 applauseMeterSpriteId; // sprite ID - /*0x1925D*/ u8 unk1925D; + u16 moveHistory[CONTEST_TURN_COUNT][CONTESTANT_COUNT]; + u8 excitementHistory[CONTEST_TURN_COUNT][CONTESTANT_COUNT]; + u8 applauseMeterSpriteId; + /*0x1925D*/ u8 contestSetupState; /*0x1925E*/ u8 unk1925E; }; @@ -294,11 +313,11 @@ struct ContestantStatus { /*0x00*/ s16 appeal1; // move appeal? /*0x02*/ s16 appeal2; // final appeal after end of turn, maybe? - /*0x04*/ s16 unk4; + /*0x04*/ s16 pointTotal; /*0x06*/ u16 currMove; /*0x08*/ u16 prevMove; /*0x0A*/ u8 moveCategory; - /*0x0B*/ u8 unkB_0:2; + /*0x0B*/ u8 ranking:2; u8 unkB_2:2; u8 moveRepeatCount:3; u8 noMoreTurns:1; // used a one-time move? @@ -341,24 +360,24 @@ struct ContestantStatus struct UnknownContestStruct7 { - u8 turnOrder[4]; + u8 turnOrder[CONTESTANT_COUNT]; s16 jam; s16 jam2; u8 jamQueue[5]; - u8 unnervedPokes[4]; + u8 unnervedPokes[CONTESTANT_COUNT]; u8 contestant; }; struct ContestAIInfo { /*0x00*/ u8 aiState; - /*0x02*/ u16 unk2; - /*0x04*/ u8 unk4; + /*0x02*/ u16 nextMove; + /*0x04*/ u8 nextMoveIndex; /*0x05*/ u8 unk5[4]; /*0x09*/ u8 aiAction; /*0x0A*/ u8 fillerA[0x6]; // TODO: don't know what's here - /*0x10*/ u8 unk10; - /*0x14*/ u32 flags; + /*0x10*/ u8 currentAICheck; + /*0x14*/ u32 aiChecks; /*0x18*/ s16 scriptResult; /*0x1A*/ s16 scriptArr[3]; /*0x20*/ const u8 *stack[8]; @@ -408,30 +427,31 @@ struct ContestResourcesField20 struct ContestResources { - struct Contest *field_0; - struct ContestantStatus *field_4; + struct Contest *contest; + struct ContestantStatus *status; struct UnknownContestStruct7 *field_8; - struct ContestAIInfo *field_C; + struct ContestAIInfo *aiData; struct UnknownContestStruct5 *field_10; struct UnknownContestStruct4 *field_14; struct ContestStruct_field_18 *field_18; struct ContestResourcesField1C * field_1c; struct ContestResourcesField20 * field_20; - u8 * field_24[4]; + u8 * contestBgTilemaps[CONTESTANT_COUNT]; void * field_34; void * field_38; void * field_3c; }; -#define sContest (*gContestResources->field_0) -#define sContestantStatus (gContestResources->field_4) -#define shared192D0 (*gContestResources->field_8) -#define eContestAI (gContestResources->field_C) -#define shared19328 (*gContestResources->field_10) -#define shared19338 (*gContestResources->field_14) -#define shared15800 (gHeap + 0x18000) -#define shared16800 (gHeap + 0x19000) -#define shared18000 (*(struct Shared18000 *)(gHeap + 0x1a000)) +#define eContest (*gContestResources->contest) +#define eContestantStatus (gContestResources->status) +#define eContestResources8 (*gContestResources->field_8) +#define eContestAI (*gContestResources->aiData) +#define eContestResources10 (*gContestResources->field_10) +#define eContestResources14 (*gContestResources->field_14) +#define eUnzippedContestAudienceGfx (gHeap + 0x18000) +#define eUnknownHeap19000 (gHeap + 0x19000) +#define eContestDebugMode (gHeap[0x1a000]) +#define eUnknownHeap1A004 (*(struct Shared1A004 *)(gHeap + 0x1a004)) extern struct ContestPokemon gContestMons[4]; extern s16 gContestMonConditions[4]; @@ -441,8 +461,8 @@ extern s16 gUnknown_02039F18[4]; extern u8 gContestFinalStandings[4]; extern u8 gContestMonPartyIndex; extern u8 gContestPlayerMonIndex; -extern u8 gUnknown_02039F26[4]; -extern u8 gIsLinkContest; +extern u8 gContestantTurnOrder[4]; +extern u8 gLinkContestFlags; extern u8 gUnknown_02039F2B; extern u16 gSpecialVar_ContestCategory; extern u16 gSpecialVar_ContestRank; @@ -459,7 +479,7 @@ extern u32 gContestRngValue; // contest.c void ResetLinkContestBoolean(void); void LoadContestBgAfterMoveAnim(void); -void sub_80D7B24(void); +void CB2_StartContest(void); void sub_80DA8C8(u8 partyIndex); void sub_80DAB8C(u8 contestType, u8 rank); void sub_80DACBC(u8 contestType, u8 rank, bool32 isPostgame); @@ -467,8 +487,8 @@ u8 sub_80DAE0C(struct Pokemon *pkmn); void sub_80DB09C(u8 contestCategory); bool8 IsSpeciesNotUnown(u16 species); bool8 Contest_IsMonsTurnDisabled(u8 a); -void sub_80DBED4(void); -void sub_80DCE58(u8 a); +void SaveLinkContestResults(void); +void SortContestants(bool8 a); void SetContestantEffectStringID(u8 a, u8 b); void SetContestantEffectStringID2(u8 a, u8 b); void SetStartledString(u8 contestant, u8 jam); diff --git a/include/data.h b/include/data.h new file mode 100644 index 000000000..f1a4caa6a --- /dev/null +++ b/include/data.h @@ -0,0 +1,119 @@ +#ifndef GUARD_DATA_H +#define GUARD_DATA_H + +#include "constants/moves.h" +#include "constants/species.h" + +#define SPECIES_SHINY_TAG 500 + +struct MonCoords +{ + // This would use a bitfield, but some function + // uses it as a u8 and casting won't match. + u8 size; // u8 width:4, height:4; + u8 y_offset; +}; + +struct TrainerMonNoItemDefaultMoves +{ + u16 iv; + u8 lvl; + u16 species; +}; + +struct TrainerMonItemDefaultMoves +{ + u16 iv; + u8 lvl; + u16 species; + u16 heldItem; +}; + +struct TrainerMonNoItemCustomMoves +{ + u16 iv; + u8 lvl; + u16 species; + u16 moves[4]; +}; + +struct TrainerMonItemCustomMoves +{ + u16 iv; + u8 lvl; + u16 species; + u16 heldItem; + u16 moves[4]; +}; + +union TrainerMonPtr +{ + const struct TrainerMonNoItemDefaultMoves *NoItemDefaultMoves; + const struct TrainerMonNoItemCustomMoves *NoItemCustomMoves; + const struct TrainerMonItemDefaultMoves *ItemDefaultMoves; + const struct TrainerMonItemCustomMoves *ItemCustomMoves; +}; + +struct Trainer +{ + /*0x00*/ u8 partyFlags; + /*0x01*/ u8 trainerClass; + /*0x02*/ u8 encounterMusic_gender; // last bit is gender + /*0x03*/ u8 trainerPic; + /*0x04*/ u8 trainerName[12]; + /*0x10*/ u16 items[4]; + /*0x18*/ bool8 doubleBattle; + /*0x1C*/ u32 aiFlags; + /*0x20*/ u8 partySize; + /*0x24*/ union TrainerMonPtr party; +}; + +#define TRAINER_ENCOUNTER_MUSIC(trainer)((gTrainers[trainer].encounterMusic_gender & 0x7F)) + +extern const u16 gUnknown_082FF1D8[]; +extern const u32 gUnknown_082FF1F8[]; + +extern const struct SpriteFrameImage gUnknown_082FF3A8[]; +extern const struct SpriteFrameImage gUnknown_082FF3C8[]; +extern const struct SpriteFrameImage gUnknown_082FF3E8[]; +extern const struct SpriteFrameImage gUnknown_082FF408[]; +extern const struct SpriteFrameImage gTrainerBackPicTable_Brendan[]; +extern const struct SpriteFrameImage gTrainerBackPicTable_May[]; +extern const struct SpriteFrameImage gTrainerBackPicTable_Red[]; +extern const struct SpriteFrameImage gTrainerBackPicTable_Leaf[]; +extern const struct SpriteFrameImage gTrainerBackPicTable_RubySapphireBrendan[]; +extern const struct SpriteFrameImage gTrainerBackPicTable_RubySapphireMay[]; +extern const struct SpriteFrameImage gTrainerBackPicTable_Wally[]; +extern const struct SpriteFrameImage gTrainerBackPicTable_Steven[]; + +extern const union AffineAnimCmd *const gUnknown_082FF618[]; +extern const union AffineAnimCmd *const gUnknown_082FF694[]; +extern const union AffineAnimCmd *const gUnknown_082FF6C0[]; + +extern const union AnimCmd *const gUnknown_082FF70C[]; +extern const struct MonCoords gMonFrontPicCoords[]; +extern const struct CompressedSpriteSheet gMonStillFrontPicTable[]; +extern const struct MonCoords gMonBackPicCoords[]; +extern const struct CompressedSpriteSheet gMonBackPicTable[]; +extern const struct CompressedSpritePalette gMonPaletteTable[]; +extern const struct CompressedSpritePalette gMonShinyPaletteTable[]; +extern const union AnimCmd *const *const gTrainerFrontAnimsPtrTable[]; +extern const struct MonCoords gTrainerFrontPicCoords[]; +extern const struct CompressedSpriteSheet gTrainerFrontPicTable[]; +extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; +extern const union AnimCmd *const *const gTrainerBackAnimsPtrTable[]; +extern const struct MonCoords gTrainerBackPicCoords[]; +extern const struct CompressedSpriteSheet gTrainerBackPicTable[]; // functionally unused +extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[]; + +extern const u8 gEnemyMonElevation[NUM_SPECIES]; + +extern const union AnimCmd *const *const gMonFrontAnimsPtrTable[]; +extern const struct CompressedSpriteSheet gMonFrontPicTable[]; + +extern const struct Trainer gTrainers[]; +extern const u8 gTrainerClassNames[][13]; +extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1]; +extern const u8 gMoveNames[MOVES_COUNT][MOVE_NAME_LENGTH + 1]; + +#endif // GUARD_DATA_H diff --git a/include/data2.h b/include/data2.h deleted file mode 100644 index c1a2608ae..000000000 --- a/include/data2.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef GUARD_DATA2_H -#define GUARD_DATA2_H - -struct MonCoords -{ - // This would use a bitfield, but some function - // uses it as a u8 and casting won't match. - u8 size; // u8 width:4, height:4; - u8 y_offset; -}; - -extern const struct MonCoords gTrainerBackPicCoords[]; -extern const struct MonCoords gTrainerFrontPicCoords[]; - -extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1]; -extern const u8 gMoveNames[][MOVE_NAME_LENGTH + 1]; -extern struct CompressedSpriteSheet gUnknown_0831C620; -extern struct CompressedSpritePalette gUnknown_0831C628; -extern const struct SpriteTemplate gUnknown_0831C688; -extern const struct CompressedSpriteSheet gMonBackPicTable[]; - -#endif // GUARD_DATA2_H diff --git a/include/decoration.h b/include/decoration.h index f613c25d2..eed930356 100644 --- a/include/decoration.h +++ b/include/decoration.h @@ -1,7 +1,8 @@ #ifndef GUARD_DECORATION_H #define GUARD_DECORATION_H -enum DecorPerm { +enum DecorationPermission +{ /* * The nomenclature here describes collision and placement permissions, in that order. */ @@ -9,13 +10,11 @@ enum DecorPerm { DECORPERM_PASS_FLOOR, DECORPERM_BEHIND_FLOOR, DECORPERM_NA_WALL, - DECORPERM_SOLID_MAT + DECORPERM_SPRITE, }; -enum DecorShape { - /* - * Width-x-height - */ +enum DecorationShape +{ DECORSHAPE_1x1, DECORSHAPE_2x1, DECORSHAPE_3x1, // unused @@ -25,53 +24,52 @@ enum DecorShape { DECORSHAPE_1x3, // unused DECORSHAPE_2x4, DECORSHAPE_3x3, - DECORSHAPE_3x2 + DECORSHAPE_3x2, }; -enum DecorCat { - /* - * In which category you can find the decoration in the PC. - */ - /*0*/ DECORCAT_DESK, - /*1*/ DECORCAT_CHAIR, - /*2*/ DECORCAT_PLANT, - /*3*/ DECORCAT_ORNAMENT, - /*4*/ DECORCAT_MAT, - /*5*/ DECORCAT_POSTER, - /*6*/ DECORCAT_DOLL, - /*7*/ DECORCAT_CUSHION +enum DecorationCategory +{ + DECORCAT_DESK, + DECORCAT_CHAIR, + DECORCAT_PLANT, + DECORCAT_ORNAMENT, + DECORCAT_MAT, + DECORCAT_POSTER, + DECORCAT_DOLL, + DECORCAT_CUSHION, + DECORCAT_COUNT, }; struct Decoration { - /*0x00*/ u8 id; - /*0x01*/ u8 name[16]; - /*0x11*/ u8 permission; - /*0x12*/ u8 shape; - /*0x13*/ u8 category; - /*0x14*/ u16 price; - /*0x18*/ const u8 *description; - /*0x1c*/ const u16 *tiles; + u8 id; + u8 name[16]; + u8 permission; + u8 shape; + u8 category; + u16 price; + const u8 *description; + const u16 *tiles; }; -struct DecorPCPointers +struct DecorationPCContext { - /* 0x00 */ u8 *items; - /* 0x04 */ u8 *pos; - /* 0x08 */ u8 size; - /* 0x09 */ u8 isPlayerRoom; + u8 *items; + u8 *pos; + u8 size; + u8 isPlayerRoom; }; extern const struct Decoration gDecorations[]; -extern EWRAM_DATA u8 *gCurDecorInventoryItems; +extern EWRAM_DATA u8 *gCurDecorationItems; extern EWRAM_DATA u8 gCurDecorationIndex; -void sub_8126968(void); -void sub_8126AD8(u8 taskId); -void sub_8127D38(u16 mapX, u16 mapY, u16 decor); -void sub_8126B2C(u8 taskId); -void sub_8127208(u8 taskId); -void sub_8127250(u8 *dest, u8 decorCat); +void InitDecorationContextItems(void); +void DoSecretBaseDecorationMenu(u8 taskId); +void ShowDecorationOnMap(u16 mapX, u16 mapY, u16 decor); +void DoPlayerRoomDecorationMenu(u8 taskId); +void ShowDecorationCategoriesWindow(u8 taskId); +void CopyDecorationCategoryName(u8 *dest, u8 decorCat); bool8 IsSelectedDecorInThePC(void); u8 AddDecorationIconObject(u8 decor, s16 x, s16 y, u8 priority, u16 tilesTag, u16 paletteTag); diff --git a/include/decoration_inventory.h b/include/decoration_inventory.h index 7539f7240..7362c2da2 100644 --- a/include/decoration_inventory.h +++ b/include/decoration_inventory.h @@ -11,13 +11,13 @@ extern struct DecorationInventory gDecorationInventories[]; void SetDecorationInventoriesPointers(void); void ClearDecorationInventories(void); -s8 GetFirstEmptyDecorSlot(u8 idx); +s8 GetFirstEmptyDecorSlot(u8 category); u8 CheckHasDecoration(u8); u8 DecorationAdd(u8); u8 DecorationCheckSpace(u8); s8 DecorationRemove(u8); -void CondenseDecorationCategoryN(u8); -u8 CountDecorationCategoryN(u8 idx); -u8 CountDecorations(void); +void CondenseDecorationsInCategory(u8 category); +u8 GetNumOwnedDecorationsInCategory(u8 category); +u8 GetNumOwnedDecorations(void); #endif // GUARD_DECORATION_INVENTORY_H diff --git a/include/event_object_movement.h b/include/event_object_movement.h index ab555fda0..93f73e635 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); @@ -74,10 +78,10 @@ u8 GetFirstInactiveEventObjectId(void); void RemoveEventObjectByLocalIdAndMap(u8, u8, u8); void LoadPlayerObjectReflectionPalette(u16, u8); void LoadSpecialObjectReflectionPalette(u16, u8); -void sub_808EBA8(u8, u8, u8, s16, s16); +void TryMoveEventObjectToMapCoords(u8, u8, u8, s16, s16); void PatchObjectPalette(u16, u8); void sub_808E16C(s16, s16); -void sub_808F28C(u8 localId, u8 mapNum, u8 mapGroup, u8 decorCat); +void OverrideSecretBaseDecorationSpriteScript(u8 localId, u8 mapNum, u8 mapGroup, u8 decorCat); void sub_8092FF0(s16, s16, s16 *, s16 *); u8 GetFaceDirectionAnimNum(u8); void sub_80930E0(s16 *, s16 *, s16, s16); @@ -86,7 +90,7 @@ void EventObjectClearHeldMovementIfActive(struct EventObject *); void TrySpawnEventObjects(s16, s16); u8 sprite_new(u8 graphicsId, u8 a1, s16 x, s16 y, u8 z, u8 direction); u8 AddPseudoEventObject(u16, void (*)(struct Sprite *), s16 x, s16 y, u8 subpriority); -u8 show_sprite(u8, u8, u8); +u8 TrySpawnEventObject(u8, u8, u8); u8 SpawnSpecialEventObjectParameterized(u8 graphicsId, u8 movementBehavior, u8 localId, s16 x, s16 y, u8 z); u8 SpawnSpecialEventObject(struct EventObjectTemplate *); void SetSpritePosToMapCoords(s16, s16, s16 *, s16 *); @@ -103,8 +107,8 @@ void sub_808E78C(u8, u8, u8, u8); void sub_808E75C(s16, s16); void EventObjectGetLocalIdAndMap(struct EventObject *eventObject, void *localId, void *mapNum, void *mapGroup); void ShiftEventObjectCoords(struct EventObject *, s16, s16); -void sub_808EB08(struct EventObject *, s16, s16); -void sub_808F254(u8, u8, u8); +void MoveEventObjectToMapCoords(struct EventObject *, s16, s16); +void TryOverrideEventObjectTemplateCoords(u8, u8, u8); void InitEventObjectPalettes(u8 palSlot); void UpdateEventObjectCurrentMovement(struct EventObject *, struct Sprite *, bool8(struct EventObject *, struct Sprite *)); u8 EventObjectFaceOppositeDirection(struct EventObject *, u8); diff --git a/include/event_scripts.h b/include/event_scripts.h index bf7084326..fc0b3cde0 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -15,9 +15,10 @@ extern const u8 EventScript_TryDoDoubleTrainerBattle[]; extern const u8 EventScript_TryDoNormalTrainerBattle[]; extern const u8 EventScript_TryDoDoubleRematchBattle[]; extern const u8 EventScript_TryDoRematchBattle[]; -extern const u8 EventScript_SecretPower1[]; -extern const u8 EventScript_SecretPower2[]; +extern const u8 SecretBase_EventScript_DollInteract[]; +extern const u8 SecretBase_EventScript_CushionInteract[]; +extern const u8 BerryTreeScript[]; extern const u8 gTVBravoTrainerText00[]; extern const u8 gTVBravoTrainerText01[]; @@ -381,10 +382,10 @@ extern const u8 SecretBase_RedCave1_Text_2758CC[]; extern const u8 BattleFrontier_BattlePyramidEmptySquare_EventScript_252C88[]; //field effects -extern const u8 FieryPath_EventScript_2908FD[]; -extern const u8 EventScript_290CAE[]; +extern const u8 EventScript_FldEffStrength[]; +extern const u8 EventScript_FailSweetScent[]; extern const u8 EventScript_2926F8[]; -extern const u8 Route111_EventScript_2907F0[]; +extern const u8 EventScript_FldEffRockSmash[]; //player pc extern const u8 LittlerootTown_BrendansHouse_2F_EventScript_1F863F[]; @@ -528,8 +529,6 @@ extern const u8 EventScript_PlayerPCMale[]; extern const u8 EventScript_PlayerPCFemale[]; extern const u8 EventScript_SecretBasePC[]; extern const u8 EventScript_RecordMixingSecretBasePC[]; -extern const u8 EventScript_SecretPower1[]; -extern const u8 EventScript_SecretPower2[]; extern const u8 EventScript_PC[]; extern const u8 EventScript_TestSignpostMsg[]; extern const u8 EventScript_HiddenItemScript[]; diff --git a/include/field_effect.h b/include/field_effect.h index 1f5f4ee29..0dbe600d3 100644 --- a/include/field_effect.h +++ b/include/field_effect.h @@ -1,9 +1,7 @@ #ifndef GUARD_FIELD_EFFECTS_H #define GUARD_FIELD_EFFECTS_H -extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[2]; extern const struct SpritePalette gNewGameBirchObjectPaletteInfo; -extern const struct CompressedSpriteSheet gTrainerFrontPicTable[2]; extern const struct SpriteTemplate gNewGameBirchObjectTemplate; extern const struct OamData gNewGameBirchOamAttributes; @@ -53,4 +51,4 @@ void FreeResourcesAndDestroySprite(struct Sprite *sprite, u8 spriteId); u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y, u8 subpriority); void StartEscapeRopeFieldEffect(void); -#endif //GUARD_FIELD_EFFECTS_H +#endif // GUARD_FIELD_EFFECTS_H diff --git a/include/field_specials.h b/include/field_specials.h index 68b233074..b1a50c811 100644 --- a/include/field_specials.h +++ b/include/field_specials.h @@ -1,6 +1,9 @@ #ifndef GUARD_FIELD_SPECIALS_H #define GUARD_FIELD_SPECIALS_H +extern bool8 gBikeCyclingChallenge; +extern u8 gBikeCollisions; + u8 GetLeadMonIndex(void); u8 sub_813B260(void); u16 get_unknown_box_id(void); diff --git a/include/gba/types.h b/include/gba/types.h index cb370c785..9f2594703 100644 --- a/include/gba/types.h +++ b/include/gba/types.h @@ -107,8 +107,8 @@ struct OamData #define SPRITE_SIZE_16x32 ((ST_OAM_SIZE_2 << 2) | (ST_OAM_V_RECTANGLE)) #define SPRITE_SIZE_32x64 ((ST_OAM_SIZE_3 << 2) | (ST_OAM_V_RECTANGLE)) -#define SPRITE_SIZE(dim) (SPRITE_SIZE_##dim >> 2) -#define SPRITE_SHAPE(dim) (SPRITE_SIZE_##dim & 0xFF) +#define SPRITE_SIZE(dim) ((SPRITE_SIZE_##dim >> 2) & 0x03) +#define SPRITE_SHAPE(dim) (SPRITE_SIZE_##dim & 0x03) struct BgAffineSrcData { diff --git a/include/global.h b/include/global.h index 0a44ed3a9..8b61164f6 100644 --- a/include/global.h +++ b/include/global.h @@ -476,21 +476,21 @@ struct SecretBaseParty u8 EVs[PARTY_SIZE]; }; -struct SecretBaseRecord +struct SecretBase { /*0x1A9C*/ u8 secretBaseId; /*0x1A9D*/ u8 sbr_field_1_0:4; /*0x1A9D*/ u8 gender:1; - /*0x1A9D*/ u8 sbr_field_1_5:1; - /*0x1A9D*/ u8 sbr_field_1_6:2; + /*0x1A9D*/ u8 battledOwnerToday:1; + /*0x1A9D*/ u8 registryStatus:2; /*0x1A9E*/ u8 trainerName[PLAYER_NAME_LENGTH]; /*0x1AA5*/ u8 trainerId[4]; // byte 0 is used for determining trainer class /*0x1AA9*/ u8 language; - /*0x1AAA*/ u16 sbr_field_e; - /*0x1AAC*/ u8 sbr_field_10; + /*0x1AAA*/ u16 numSecretBasesReceived; + /*0x1AAC*/ u8 numTimesEntered; /*0x1AAD*/ u8 sbr_field_11; /*0x1AAE*/ u8 decorations[16]; - /*0x1ABE*/ u8 decorationPos[16]; + /*0x1ABE*/ u8 decorationPositions[16]; /*0x1AD0*/ struct SecretBaseParty party; }; @@ -920,7 +920,7 @@ struct SaveBlock1 /*0x139C*/ u16 vars[VARS_COUNT]; /*0x159C*/ u32 gameStats[NUM_GAME_STATS]; /*0x169C*/ struct BerryTree berryTrees[BERRY_TREES_COUNT]; - /*0x1A9C*/ struct SecretBaseRecord secretBases[SECRET_BASES_COUNT]; + /*0x1A9C*/ struct SecretBase secretBases[SECRET_BASES_COUNT]; /*0x271C*/ u8 playerRoomDecor[12]; /*0x2728*/ u8 playerRoomDecorPos[12]; /*0x2734*/ u8 decorDesk[10]; diff --git a/include/graphics.h b/include/graphics.h index 30ca2af82..4e558b508 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4019,6 +4019,13 @@ extern const u32 gPokenavLeftHeaderMainMenu_Gfx[]; extern const u32 gPokenavLeftHeaderCondition_Gfx[]; extern const u32 gPokenavLeftHeaderRibbons_Gfx[]; extern const u32 gPokenavLeftHeaderMatchCall_Gfx[]; +extern const u32 gPokenavLeftHeaderParty_Gfx[]; +extern const u32 gPokenavLeftHeaderSearch_Gfx[]; +extern const u32 gPokenavLeftHeaderCool_Gfx[]; +extern const u32 gPokenavLeftHeaderBeauty_Gfx[]; +extern const u32 gPokenavLeftHeaderCute_Gfx[]; +extern const u32 gPokenavLeftHeaderSmart_Gfx[]; +extern const u32 gPokenavLeftHeaderTough_Gfx[]; extern const u32 gPageInfoTilemap[]; extern const u32 gUnknown_08D98CC8[]; @@ -4122,620 +4129,620 @@ extern const u32 gBattleArenaJudgementSymbolsGfx[]; extern const u32 gBattleArenaJudgementSymbolsPalette[]; extern const u32 gContest2Pal[]; -extern const u32 gBattleAnimSpriteSheet_000[]; -extern const u32 gBattleAnimSpriteSheet_001[]; -extern const u32 gBattleAnimSpriteSheet_002[]; -extern const u32 gBattleAnimSpriteSheet_003[]; -extern const u32 gBattleAnimSpriteSheet_004[]; -extern const u32 gBattleAnimSpriteSheet_005[]; -extern const u32 gBattleAnimSpriteSheet_006[]; -extern const u32 gBattleAnimSpriteSheet_007[]; -extern const u32 gBattleAnimSpriteSheet_008[]; -extern const u32 gBattleAnimSpriteSheet_009[]; -extern const u32 gBattleAnimSpriteSheet_010[]; -extern const u32 gBattleAnimSpriteSheet_011[]; -extern const u32 gBattleAnimSpriteSheet_012[]; -extern const u32 gBattleAnimSpriteSheet_013[]; -extern const u32 gBattleAnimSpriteSheet_014[]; -extern const u32 gBattleAnimSpriteSheet_015[]; -extern const u32 gBattleAnimSpriteSheet_016[]; -extern const u32 gBattleAnimSpriteSheet_017[]; -extern const u32 gBattleAnimSpriteSheet_018[]; -extern const u32 gBattleAnimSpriteSheet_019[]; -extern const u32 gBattleAnimSpriteSheet_020[]; -extern const u32 gBattleAnimSpriteSheet_021[]; -extern const u32 gBattleAnimSpriteSheet_021[]; -extern const u32 gBattleAnimSpriteSheet_023[]; -extern const u32 gBattleAnimSpriteSheet_024[]; -extern const u32 gBattleAnimSpriteSheet_025[]; -extern const u32 gBattleAnimSpriteSheet_026[]; -extern const u32 gBattleAnimSpriteSheet_027[]; -extern const u32 gBattleAnimSpriteSheet_028[]; -extern const u32 gBattleAnimSpriteSheet_029[]; -extern const u32 gBattleAnimSpriteSheet_030[]; -extern const u32 gBattleAnimSpriteSheet_031[]; -extern const u32 gBattleAnimSpriteSheet_032[]; -extern const u32 gBattleAnimSpriteSheet_033[]; -extern const u32 gBattleAnimSpriteSheet_034[]; -extern const u32 gBattleAnimSpriteSheet_035[]; -extern const u32 gBattleAnimSpriteSheet_036[]; -extern const u32 gBattleAnimSpriteSheet_037[]; -extern const u32 gBattleAnimSpriteSheet_038[]; -extern const u32 gBattleAnimSpriteSheet_039[]; -extern const u32 gBattleAnimSpriteSheet_040[]; -extern const u32 gBattleAnimSpriteSheet_041[]; -extern const u32 gBattleAnimSpriteSheet_042[]; -extern const u32 gBattleAnimSpriteSheet_043[]; -extern const u32 gBattleAnimSpriteSheet_044[]; -extern const u32 gBattleAnimSpriteSheet_045[]; -extern const u32 gBattleAnimSpriteSheet_046[]; -extern const u32 gBattleAnimSpriteSheet_046[]; -extern const u32 gBattleAnimSpriteSheet_048[]; -extern const u32 gBattleAnimSpriteSheet_048[]; -extern const u32 gBattleAnimSpriteSheet_050[]; -extern const u32 gBattleAnimSpriteSheet_051[]; -extern const u32 gBattleAnimSpriteSheet_052[]; -extern const u32 gBattleAnimSpriteSheet_053[]; +extern const u32 gBattleAnimSpriteGfx_Bone[]; +extern const u32 gBattleAnimSpriteGfx_Spark[]; +extern const u32 gBattleAnimSpriteGfx_Pencil[]; +extern const u32 gBattleAnimSpriteGfx_AirWave[]; +extern const u32 gBattleAnimSpriteGfx_Orb[]; +extern const u32 gBattleAnimSpriteGfx_Sword[]; +extern const u32 gBattleAnimSpriteGfx_Seed[]; +extern const u32 gBattleAnimSpriteGfx_Explosion6[]; +extern const u32 gBattleAnimSpriteGfx_PinkOrb[]; +extern const u32 gBattleAnimSpriteGfx_Gust[]; +extern const u32 gBattleAnimSpriteGfx_IceCube[]; +extern const u32 gBattleAnimSpriteGfx_Spark2[]; +extern const u32 gBattleAnimSpriteGfx_Orange[]; +extern const u32 gBattleAnimSpriteGfx_YellowBall[]; +extern const u32 gBattleAnimSpriteGfx_LockOn[]; +extern const u32 gBattleAnimSpriteGfx_TiedBag[]; +extern const u32 gBattleAnimSpriteGfx_BlackSmoke[]; +extern const u32 gBattleAnimSpriteGfx_BlackBall[]; +extern const u32 gBattleAnimSpriteGfx_Conversion[]; +extern const u32 gBattleAnimSpriteGfx_Glass[]; +extern const u32 gBattleAnimSpriteGfx_HornHit[]; +extern const u32 gBattleAnimSpriteGfx_Hit[]; +extern const u32 gBattleAnimSpriteGfx_Hit[]; +extern const u32 gBattleAnimSpriteGfx_BlueShards[]; +extern const u32 gBattleAnimSpriteGfx_ClosingEye[]; +extern const u32 gBattleAnimSpriteGfx_WavingHand[]; +extern const u32 gBattleAnimSpriteGfx_HitDuplicate[]; +extern const u32 gBattleAnimSpriteGfx_Leer[]; +extern const u32 gBattleAnimSpriteGfx_BlueBurst[]; +extern const u32 gBattleAnimSpriteGfx_SmallEmber[]; +extern const u32 gBattleAnimSpriteGfx_GraySmoke[]; +extern const u32 gBattleAnimSpriteGfx_BlueStar[]; +extern const u32 gBattleAnimSpriteGfx_BubbleBurst[]; +extern const u32 gBattleAnimSpriteGfx_Fire[]; +extern const u32 gBattleAnimSpriteGfx_SpinningFire[]; +extern const u32 gBattleAnimSpriteGfx_FirePlume[]; +extern const u32 gBattleAnimSpriteGfx_Lightning2[]; +extern const u32 gBattleAnimSpriteGfx_Lightning[]; +extern const u32 gBattleAnimSpriteGfx_ClawSlash2[]; +extern const u32 gBattleAnimSpriteGfx_ClawSlash[]; +extern const u32 gBattleAnimSpriteGfx_Scratch3[]; +extern const u32 gBattleAnimSpriteGfx_Scratch2[]; +extern const u32 gBattleAnimSpriteGfx_BubbleBurst2[]; +extern const u32 gBattleAnimSpriteGfx_IceChunk[]; +extern const u32 gBattleAnimSpriteGfx_Glass2[]; +extern const u32 gBattleAnimSpriteGfx_PinkHeart2[]; +extern const u32 gBattleAnimSpriteGfx_SapDrip[]; +extern const u32 gBattleAnimSpriteGfx_SapDrip[]; +extern const u32 gBattleAnimSpriteGfx_Sparkle1[]; +extern const u32 gBattleAnimSpriteGfx_Sparkle1[]; +extern const u32 gBattleAnimSpriteGfx_HumanoidFoot[]; +extern const u32 gBattleAnimSpriteGfx_MonsterFoot[]; +extern const u32 gBattleAnimSpriteGfx_HumanoidHand[]; +extern const u32 gBattleAnimSpriteGfx_NoiseLine[]; extern const u32 gUnknown_08C2EA50[]; extern const u32 gUnknown_08C2EA9C[]; -extern const u32 gBattleAnimSpriteSheet_054[]; -extern const u32 gBattleAnimSpriteSheet_055[]; -extern const u32 gBattleAnimSpriteSheet_056[]; -extern const u32 gBattleAnimSpriteSheet_057[]; -extern const u32 gBattleAnimSpriteSheet_058[]; -extern const u32 gBattleAnimSpriteSheet_059[]; -extern const u32 gBattleAnimSpriteSheet_060[]; -extern const u32 gBattleAnimSpriteSheet_061[]; -extern const u32 gBattleAnimSpriteSheet_062[]; -extern const u32 gBattleAnimSpriteSheet_063[]; -extern const u32 gBattleAnimSpriteSheet_064[]; -extern const u32 gBattleAnimSpriteSheet_065[]; -extern const u32 gBattleAnimSpriteSheet_066[]; -extern const u32 gBattleAnimSpriteSheet_070[]; -extern const u32 gBattleAnimSpriteSheet_071[]; -extern const u32 gBattleAnimSpriteSheet_072[]; -extern const u32 gBattleAnimSpriteSheet_073[]; -extern const u32 gBattleAnimSpriteSheet_074[]; -extern const u32 gBattleAnimSpriteSheet_075[]; -extern const u32 gBattleAnimSpriteSheet_076[]; -extern const u32 gBattleAnimSpriteSheet_077[]; -extern const u32 gBattleAnimSpriteSheet_078[]; -extern const u32 gBattleAnimSpriteSheet_079[]; -extern const u32 gBattleAnimSpriteSheet_080[]; -extern const u32 gBattleAnimSpriteSheet_081[]; -extern const u32 gBattleAnimSpriteSheet_082[]; -extern const u32 gBattleAnimSpriteSheet_083[]; -extern const u32 gBattleAnimSpriteSheet_084[]; -extern const u32 gBattleAnimSpriteSheet_085[]; -extern const u32 gBattleAnimSpriteSheet_086[]; -extern const u32 gBattleAnimSpriteSheet_087[]; -extern const u32 gBattleAnimSpriteSheet_088[]; -extern const u32 gBattleAnimSpriteSheet_089[]; -extern const u32 gBattleAnimSpriteSheet_090[]; -extern const u32 gBattleAnimSpriteSheet_091[]; -extern const u32 gBattleAnimSpriteSheet_092[]; -extern const u32 gBattleAnimSpriteSheet_093[]; -extern const u32 gBattleAnimSpriteSheet_094[]; -extern const u32 gBattleAnimSpriteSheet_095[]; -extern const u32 gBattleAnimSpriteSheet_096[]; -extern const u32 gBattleAnimSpriteSheet_097[]; -extern const u32 gBattleAnimSpriteSheet_098[]; -extern const u32 gBattleAnimSpriteSheet_099[]; -extern const u32 gBattleAnimSpriteSheet_100[]; -extern const u32 gBattleAnimSpriteSheet_101[]; -extern const u32 gBattleAnimSpriteSheet_102[]; -extern const u32 gBattleAnimSpriteSheet_103[]; -extern const u32 gBattleAnimSpriteSheet_104[]; -extern const u32 gBattleAnimSpriteSheet_105[]; -extern const u32 gBattleAnimSpriteSheet_106[]; -extern const u32 gBattleAnimSpriteSheet_107[]; -extern const u32 gBattleAnimSpriteSheet_108[]; -extern const u32 gBattleAnimSpriteSheet_109[]; -extern const u32 gBattleAnimSpriteSheet_110[]; -extern const u32 gBattleAnimSpriteSheet_111[]; -extern const u32 gBattleAnimSpriteSheet_112[]; -extern const u32 gBattleAnimSpriteSheet_113[]; -extern const u32 gBattleAnimSpriteSheet_114[]; -extern const u32 gBattleAnimSpriteSheet_115[]; -extern const u32 gBattleAnimSpriteSheet_116[]; -extern const u32 gBattleAnimSpriteSheet_117[]; -extern const u32 gBattleAnimSpriteSheet_118[]; -extern const u32 gBattleAnimSpriteSheet_119[]; -extern const u32 gBattleAnimSpriteSheet_120[]; -extern const u32 gBattleAnimSpriteSheet_121[]; -extern const u32 gBattleAnimSpriteSheet_122[]; -extern const u32 gBattleAnimSpriteSheet_123[]; -extern const u32 gBattleAnimSpriteSheet_124[]; -extern const u32 gBattleAnimSpriteSheet_125[]; -extern const u32 gBattleAnimSpriteSheet_126[]; -extern const u32 gBattleAnimSpriteSheet_127[]; -extern const u32 gBattleAnimSpriteSheet_128[]; -extern const u32 gBattleAnimSpriteSheet_129[]; -extern const u32 gBattleAnimSpriteSheet_130[]; -extern const u32 gBattleAnimSpriteSheet_131[]; -extern const u32 gBattleAnimSpriteSheet_132[]; -extern const u32 gBattleAnimSpriteSheet_133[]; -extern const u32 gBattleAnimSpriteSheet_134[]; -extern const u32 gBattleAnimSpriteSheet_135[]; -extern const u32 gBattleAnimSpriteSheet_Particles[]; -extern const u32 gBattleAnimSpriteSheet_136[]; -extern const u32 gBattleAnimSpriteSheet_137[]; -extern const u32 gBattleAnimSpriteSheet_138[]; -extern const u32 gBattleAnimSpriteSheet_139[]; -extern const u32 gBattleAnimSpriteSheet_140[]; -extern const u32 gBattleAnimSpriteSheet_141[]; -extern const u32 gBattleAnimSpriteSheet_142[]; -extern const u32 gBattleAnimSpriteSheet_143[]; -extern const u32 gBattleAnimSpriteSheet_144[]; -extern const u32 gBattleAnimSpriteSheet_145[]; -//extern const struct CompressedSpriteSheet gBattleAnimSpriteSheet_146[]; -extern const u32 gBattleAnimSpriteSheet_146[]; -extern const u32 gBattleAnimSpriteSheet_147[]; -extern const u32 gBattleAnimSpriteSheet_148[]; -extern const u32 gBattleAnimSpriteSheet_149[]; -extern const u32 gBattleAnimSpriteSheet_150[]; -extern const u32 gBattleAnimSpriteSheet_151[]; -extern const u32 gBattleAnimSpriteSheet_152[]; -extern const u32 gBattleAnimSpriteSheet_153[]; -extern const u32 gBattleAnimSpriteSheet_154[]; -extern const u32 gBattleAnimSpriteSheet_155[]; -extern const u32 gBattleAnimSpriteSheet_156[]; -extern const u32 gBattleAnimSpriteSheet_157[]; -extern const u32 gBattleAnimSpriteSheet_158[]; -extern const u32 gBattleAnimSpriteSheet_159[]; -extern const u32 gBattleAnimSpriteSheet_160[]; -extern const u32 gBattleAnimSpriteSheet_161[]; -extern const u32 gBattleAnimSpriteSheet_162[]; -extern const u32 gBattleAnimSpriteSheet_163[]; -extern const u32 gBattleAnimSpriteSheet_166[]; -extern const u32 gBattleAnimSpriteSheet_171[]; -extern const u32 gBattleAnimSpriteSheet_173[]; -extern const u32 gBattleAnimSpriteSheet_174[]; -extern const u32 gBattleAnimSpriteSheet_175[]; -extern const u32 gBattleAnimSpriteSheet_176[]; -extern const u32 gBattleAnimSpriteSheet_177[]; -extern const u32 gBattleAnimSpriteSheet_178[]; -extern const u32 gBattleAnimSpriteSheet_179[]; -extern const u32 gBattleAnimSpriteSheet_180[]; -extern const u32 gBattleAnimSpriteSheet_181[]; -extern const u32 gBattleAnimSpriteSheet_182[]; -extern const u32 gBattleAnimSpriteSheet_183[]; -extern const u32 gBattleAnimSpriteSheet_184[]; -extern const u32 gBattleAnimSpriteSheet_185[]; -extern const u32 gBattleAnimSpriteSheet_186[]; -extern const u32 gBattleAnimSpriteSheet_187[]; -extern const u32 gBattleAnimSpriteSheet_188[]; -extern const u32 gBattleAnimSpriteSheet_189[]; -extern const u32 gBattleAnimSpriteSheet_190[]; -extern const u32 gBattleAnimSpriteSheet_191[]; -extern const u32 gBattleAnimSpriteSheet_192[]; -extern const u32 gBattleAnimSpriteSheet_193[]; -extern const u32 gBattleAnimSpriteSheet_194[]; -extern const u32 gBattleAnimSpriteSheet_195[]; -extern const u32 gBattleAnimSpriteSheet_196[]; -extern const u32 gBattleAnimSpriteSheet_197[]; -extern const u32 gBattleAnimSpriteSheet_198[]; -extern const u32 gBattleAnimSpriteSheet_199[]; -extern const u32 gBattleAnimSpriteSheet_200[]; -extern const u32 gBattleAnimSpriteSheet_201[]; -extern const u32 gBattleAnimSpriteSheet_202[]; -extern const u32 gBattleAnimSpriteSheet_203[]; -extern const u32 gBattleAnimSpriteSheet_204[]; -extern const u32 gBattleAnimSpriteSheet_205[]; -extern const u32 gBattleAnimSpriteSheet_206[]; -extern const u32 gBattleAnimSpriteSheet_207[]; -extern const u32 gBattleAnimSpriteSheet_208[]; -extern const u32 gBattleAnimSpriteSheet_209[]; -extern const u32 gBattleAnimSpriteSheet_210[]; -extern const u32 gBattleAnimSpriteSheet_211[]; -extern const u32 gBattleAnimSpriteSheet_212[]; -extern const u32 gBattleAnimSpriteSheet_213[]; -extern const u32 gBattleAnimSpriteSheet_214[]; -extern const u32 gBattleAnimSpriteSheet_215[]; -extern const u32 gBattleAnimSpriteSheet_210[]; -extern const u32 gBattleAnimSpriteSheet_217[]; -extern const u32 gBattleAnimSpriteSheet_218[]; -extern const u32 gBattleAnimSpriteSheet_210[]; -extern const u32 gBattleAnimSpriteSheet_220[]; -extern const u32 gBattleAnimSpriteSheet_221[]; -extern const u32 gBattleAnimSpriteSheet_222[]; -extern const u32 gBattleAnimSpriteSheet_223[]; -extern const u32 gBattleAnimSpriteSheet_224[]; -extern const u32 gBattleAnimSpriteSheet_225[]; -extern const u32 gBattleAnimSpriteSheet_226[]; -extern const u32 gBattleAnimSpriteSheet_227[]; -extern const u32 gBattleAnimSpriteSheet_228[]; -extern const u32 gBattleAnimSpriteSheet_229[]; -extern const u32 gBattleAnimSpriteSheet_230[]; -extern const u32 gBattleAnimSpriteSheet_231[]; -extern const u32 gBattleAnimSpriteSheet_232[]; -extern const u32 gBattleAnimSpriteSheet_233[]; -extern const u32 gBattleAnimSpriteSheet_234[]; -extern const u32 gBattleAnimSpriteSheet_235[]; -extern const u32 gBattleAnimSpriteSheet_235[]; -extern const u32 gBattleAnimSpriteSheet_235[]; -extern const u32 gBattleAnimSpriteSheet_238[]; -extern const u32 gBattleAnimSpriteSheet_239[]; -extern const u32 gBattleAnimSpriteSheet_240[]; -extern const u32 gBattleAnimSpriteSheet_241[]; -extern const u32 gBattleAnimSpriteSheet_242[]; -extern const u32 gBattleAnimSpriteSheet_243[]; -extern const u32 gBattleAnimSpriteSheet_244[]; -extern const u32 gBattleAnimSpriteSheet_245[]; -extern const u32 gBattleAnimSpriteSheet_246[]; -extern const u32 gBattleAnimSpriteSheet_247[]; -extern const u32 gBattleAnimSpriteSheet_248[]; -extern const u32 gBattleAnimSpriteSheet_249[]; -extern const u32 gBattleAnimSpriteSheet_250[]; -extern const u32 gBattleAnimSpriteSheet_251[]; -extern const u32 gBattleAnimSpriteSheet_252[]; -extern const u32 gBattleAnimSpriteSheet_253[]; -extern const u32 gBattleAnimSpriteSheet_254[]; -extern const u32 gBattleAnimSpriteSheet_255[]; -extern const u32 gBattleAnimSpriteSheet_256[]; -extern const u32 gBattleAnimSpriteSheet_257[]; -extern const u32 gBattleAnimSpriteSheet_258[]; -extern const u32 gBattleAnimSpriteSheet_260[]; -extern const u32 gBattleAnimSpriteSheet_261[]; -extern const u32 gBattleAnimSpriteSheet_262[]; -extern const u32 gBattleAnimSpriteSheet_263[]; -extern const u32 gBattleAnimSpriteSheet_264[]; -extern const u32 gBattleAnimSpriteSheet_266[]; -extern const u32 gBattleAnimSpriteSheet_269[]; -extern const u32 gBattleAnimSpriteSheet_270[]; -extern const u32 gBattleAnimSpriteSheet_271[]; -extern const u32 gBattleAnimSpriteSheet_272[]; -extern const u32 gBattleAnimSpriteSheet_273[]; -extern const u32 gBattleAnimSpriteSheet_274[]; -extern const u32 gBattleAnimSpriteSheet_275[]; -extern const u32 gBattleAnimSpriteSheet_276[]; -extern const u32 gBattleAnimSpriteSheet_277[]; -extern const u32 gBattleAnimSpriteSheet_278[]; -extern const u32 gBattleAnimSpriteSheet_279[]; -extern const u32 gBattleAnimSpriteSheet_280[]; -extern const u32 gBattleAnimSpriteSheet_281[]; -extern const u32 gBattleAnimSpriteSheet_282[]; -extern const u32 gBattleAnimSpriteSheet_283[]; -extern const u32 gBattleAnimBackgroundTilemap_ScaryFacePlayer[]; -extern const u32 gBattleAnimBackgroundTilemap_ScaryFaceOpponent[]; -extern const u32 gBattleAnimBackgroundTilemap_ScaryFaceContest[]; -extern const u32 gBattleAnimSpriteSheet_284[]; -extern const u32 gBattleAnimSpriteSheet_285[]; +extern const u32 gBattleAnimSpriteGfx_YellowUnk[]; +extern const u32 gBattleAnimSpriteGfx_RedFist[]; +extern const u32 gBattleAnimSpriteGfx_SlamHit[]; +extern const u32 gBattleAnimSpriteGfx_Ring[]; +extern const u32 gBattleAnimSpriteGfx_Rocks[]; +extern const u32 gBattleAnimSpriteGfx_Z[]; +extern const u32 gBattleAnimSpriteGfx_YellowUnk2[]; +extern const u32 gBattleAnimSpriteGfx_AirSlash[]; +extern const u32 gBattleAnimSpriteGfx_SpinningGreenOrbs[]; +extern const u32 gBattleAnimSpriteGfx_Leaf[]; +extern const u32 gBattleAnimSpriteGfx_Finger[]; +extern const u32 gBattleAnimSpriteGfx_PoisonPowder[]; +extern const u32 gBattleAnimSpriteGfx_BrownTriangle[]; +extern const u32 gBattleAnimSpriteGfx_Sparkle3[]; +extern const u32 gBattleAnimSpriteGfx_Sparkle4[]; +extern const u32 gBattleAnimSpriteGfx_MusicNotes[]; +extern const u32 gBattleAnimSpriteGfx_Duck[]; +extern const u32 gBattleAnimSpriteGfx_MudSand[]; +extern const u32 gBattleAnimSpriteGfx_Alert[]; +extern const u32 gBattleAnimSpriteGfx_BlueFlames[]; +extern const u32 gBattleAnimSpriteGfx_BlueFlames2[]; +extern const u32 gBattleAnimSpriteGfx_Shock4[]; +extern const u32 gBattleAnimSpriteGfx_Shock[]; +extern const u32 gBattleAnimSpriteGfx_Bell2[]; +extern const u32 gBattleAnimSpriteGfx_PinkGlove[]; +extern const u32 gBattleAnimSpriteGfx_BlueLines[]; +extern const u32 gBattleAnimSpriteGfx_Impact3[]; +extern const u32 gBattleAnimSpriteGfx_Impact2[]; +extern const u32 gBattleAnimSpriteGfx_Reticle[]; +extern const u32 gBattleAnimSpriteGfx_Breath[]; +extern const u32 gBattleAnimSpriteGfx_Anger[]; +extern const u32 gBattleAnimSpriteGfx_Snowball[]; +extern const u32 gBattleAnimSpriteGfx_Vine[]; +extern const u32 gBattleAnimSpriteGfx_Sword2[]; +extern const u32 gBattleAnimSpriteGfx_Clapping[]; +extern const u32 gBattleAnimSpriteGfx_RedTube[]; +extern const u32 gBattleAnimSpriteGfx_Amnesia[]; +extern const u32 gBattleAnimSpriteGfx_String2[]; +extern const u32 gBattleAnimSpriteGfx_Pencil2[]; +extern const u32 gBattleAnimSpriteGfx_Petal[]; +extern const u32 gBattleAnimSpriteGfx_BentSpoon[]; +extern const u32 gBattleAnimSpriteGfx_Web[]; +extern const u32 gBattleAnimSpriteGfx_MilkBottle[]; +extern const u32 gBattleAnimSpriteGfx_Coin[]; +extern const u32 gBattleAnimSpriteGfx_CrackedEgg[]; +extern const u32 gBattleAnimSpriteGfx_HatchedEgg[]; +extern const u32 gBattleAnimSpriteGfx_FreshEgg[]; +extern const u32 gBattleAnimSpriteGfx_Fangs[]; +extern const u32 gBattleAnimSpriteGfx_Explosion2[]; +extern const u32 gBattleAnimSpriteGfx_Explosion3[]; +extern const u32 gBattleAnimSpriteGfx_WaterDroplet[]; +extern const u32 gBattleAnimSpriteGfx_WaterDroplet2[]; +extern const u32 gBattleAnimSpriteGfx_Seed2[]; +extern const u32 gBattleAnimSpriteGfx_Sprout[]; +extern const u32 gBattleAnimSpriteGfx_RedWand[]; +extern const u32 gBattleAnimSpriteGfx_PurpleGreenUnk[]; +extern const u32 gBattleAnimSpriteGfx_WaterColumn[]; +extern const u32 gBattleAnimSpriteGfx_MudUnk[]; +extern const u32 gBattleAnimSpriteGfx_RainDrops[]; +extern const u32 gBattleAnimSpriteGfx_FurySwipes[]; +extern const u32 gBattleAnimSpriteGfx_Vine2[]; +extern const u32 gBattleAnimSpriteGfx_Teeth[]; +extern const u32 gBattleAnimSpriteGfx_Bone2[]; +extern const u32 gBattleAnimSpriteGfx_WhiteBag[]; +extern const u32 gBattleAnimSpriteGfx_Unknown[]; +extern const u32 gBattleAnimSpriteGfx_PurpleCoral[]; +extern const u32 gBattleAnimSpriteGfx_PurpleDroplet[]; +extern const u32 gBattleAnimSpriteGfx_Shock2[]; +extern const u32 gBattleAnimSpriteGfx_ClosingEye2[]; +extern const u32 gBattleAnimSpriteGfx_MetalBall[]; +extern const u32 gBattleAnimSpriteGfx_MonsterDoll[]; +extern const u32 gBattleAnimSpriteGfx_Whirlwind[]; +extern const u32 gBattleAnimSpriteGfx_Whirlwind2[]; +extern const u32 gBattleAnimSpriteGfx_Explosion4[]; +extern const u32 gBattleAnimSpriteGfx_Explosion5[]; +extern const u32 gBattleAnimSpriteGfx_Tongue[]; +extern const u32 gBattleAnimSpriteGfx_Smoke[]; +extern const u32 gBattleAnimSpriteGfx_Smoke2[]; +extern const u32 gBattleAnimSpriteGfx_Impact[]; +extern const u32 gBattleAnimSpriteGfx_Particles[]; +extern const u32 gBattleAnimSpriteGfx_CircleImpact[]; +extern const u32 gBattleAnimSpriteGfx_Scratch[]; +extern const u32 gBattleAnimSpriteGfx_Cut[]; +extern const u32 gBattleAnimSpriteGfx_SharpTeeth[]; +extern const u32 gBattleAnimSpriteGfx_RainbowRings[]; +extern const u32 gBattleAnimSpriteGfx_IceCrystals[]; +extern const u32 gBattleAnimSpriteGfx_IceSpikes[]; +extern const u32 gBattleAnimSpriteGfx_HandsAndFeet[]; +extern const u32 gBattleAnimSpriteGfx_MistCloud[]; +extern const u32 gBattleAnimSpriteGfx_Clamp[]; +//extern const struct CompressedSpriteSheet gBattleAnimSpriteGfx_146[]; +extern const u32 gBattleAnimSpriteGfx_Bubble[]; +extern const u32 gBattleAnimSpriteGfx_Orbs[]; +extern const u32 gBattleAnimSpriteGfx_WaterImpact[]; +extern const u32 gBattleAnimSpriteGfx_WaterOrb[]; +extern const u32 gBattleAnimSpriteGfx_PoisonBubble[]; +extern const u32 gBattleAnimSpriteGfx_ToxicBubble[]; +extern const u32 gBattleAnimSpriteGfx_Spikes[]; +extern const u32 gBattleAnimSpriteGfx_HornHit2[]; +extern const u32 gBattleAnimSpriteGfx_AirWave2[]; +extern const u32 gBattleAnimSpriteGfx_SmallBubbles[]; +extern const u32 gBattleAnimSpriteGfx_RoundShadow[]; +extern const u32 gBattleAnimSpriteGfx_Sunlight[]; +extern const u32 gBattleAnimSpriteGfx_Spore[]; +extern const u32 gBattleAnimSpriteGfx_Flower[]; +extern const u32 gBattleAnimSpriteGfx_RazorLeaf[]; +extern const u32 gBattleAnimSpriteGfx_Needle[]; +extern const u32 gBattleAnimSpriteGfx_WhirlwindLines[]; +extern const u32 gBattleAnimSpriteGfx_GoldRing[]; +extern const u32 gBattleAnimSpriteGfx_GreenLightWall[]; +extern const u32 gBattleAnimSpriteGfx_BlackBall2[]; +extern const u32 gBattleAnimSpriteGfx_SparkH[]; +extern const u32 gBattleAnimSpriteGfx_YellowStar[]; +extern const u32 gBattleAnimSpriteGfx_LargeFreshEgg[]; +extern const u32 gBattleAnimSpriteGfx_ShadowBall[]; +extern const u32 gBattleAnimSpriteGfx_Lick[]; +extern const u32 gBattleAnimSpriteGfx_VoidLines[]; +extern const u32 gBattleAnimSpriteGfx_String[]; +extern const u32 gBattleAnimSpriteGfx_WebThread[]; +extern const u32 gBattleAnimSpriteGfx_SpiderWeb[]; +extern const u32 gBattleAnimSpriteGfx_Lightbulb[]; +extern const u32 gBattleAnimSpriteGfx_Slash[]; +extern const u32 gBattleAnimSpriteGfx_FocusEnergy[]; +extern const u32 gBattleAnimSpriteGfx_SphereToCube[]; +extern const u32 gBattleAnimSpriteGfx_Tendrils[]; +extern const u32 gBattleAnimSpriteGfx_Eye[]; +extern const u32 gBattleAnimSpriteGfx_WhiteShadow[]; +extern const u32 gBattleAnimSpriteGfx_TealAlert[]; +extern const u32 gBattleAnimSpriteGfx_OpeningEye[]; +extern const u32 gBattleAnimSpriteGfx_RoundWhiteHalo[]; +extern const u32 gBattleAnimSpriteGfx_FangAttack[]; +extern const u32 gBattleAnimSpriteGfx_PurpleHandOutline[]; +extern const u32 gBattleAnimSpriteGfx_Moon[]; +extern const u32 gBattleAnimSpriteGfx_GreenSparkle[]; +extern const u32 gBattleAnimSpriteGfx_Spiral[]; +extern const u32 gBattleAnimSpriteGfx_SnoreZ[]; +extern const u32 gBattleAnimSpriteGfx_Explosion[]; +extern const u32 gBattleAnimSpriteGfx_Nail[]; +extern const u32 gBattleAnimSpriteGfx_GhostlySpirit[]; +extern const u32 gBattleAnimSpriteGfx_WarmRock[]; +extern const u32 gBattleAnimSpriteGfx_BreakingEgg[]; +extern const u32 gBattleAnimSpriteGfx_ThinRing[]; +extern const u32 gBattleAnimSpriteGfx_PunchImpact[]; +extern const u32 gBattleAnimSpriteGfx_Bell[]; +extern const u32 gBattleAnimSpriteGfx_MusicNotes2[]; +extern const u32 gBattleAnimSpriteGfx_SpeedDust[]; +extern const u32 gBattleAnimSpriteGfx_TornMetal[]; +extern const u32 gBattleAnimSpriteGfx_ThoughtBubble[]; +extern const u32 gBattleAnimSpriteGfx_MagentaHeart[]; +extern const u32 gBattleAnimSpriteGfx_ElectricOrbs[]; +extern const u32 gBattleAnimSpriteGfx_CircleOfLight[]; +extern const u32 gBattleAnimSpriteGfx_Electricity[]; +extern const u32 gBattleAnimSpriteGfx_Finger2[]; +extern const u32 gBattleAnimSpriteGfx_MovementWaves[]; +extern const u32 gBattleAnimSpriteGfx_MagentaHeart[]; +extern const u32 gBattleAnimSpriteGfx_RedOrb[]; +extern const u32 gBattleAnimSpriteGfx_EyeSparkle[]; +extern const u32 gBattleAnimSpriteGfx_MagentaHeart[]; +extern const u32 gBattleAnimSpriteGfx_Angel[]; +extern const u32 gBattleAnimSpriteGfx_Devil[]; +extern const u32 gBattleAnimSpriteGfx_Swipe[]; +extern const u32 gBattleAnimSpriteGfx_Roots[]; +extern const u32 gBattleAnimSpriteGfx_ItemBag[]; +extern const u32 gBattleAnimSpriteGfx_JaggedMusicNote[]; +extern const u32 gBattleAnimSpriteGfx_Pokeball[]; +extern const u32 gBattleAnimSpriteGfx_Spotlight[]; +extern const u32 gBattleAnimSpriteGfx_LetterZ[]; +extern const u32 gBattleAnimSpriteGfx_RapidSpin[]; +extern const u32 gBattleAnimSpriteGfx_TriForceTriangle[]; +extern const u32 gBattleAnimSpriteGfx_WispOrb[]; +extern const u32 gBattleAnimSpriteGfx_WispFire[]; +extern const u32 gBattleAnimSpriteGfx_GoldStars[]; +extern const u32 gBattleAnimSpriteGfx_EclipsingOrb[]; +extern const u32 gBattleAnimSpriteGfx_GrayOrb[]; +extern const u32 gBattleAnimSpriteGfx_GrayOrb[]; +extern const u32 gBattleAnimSpriteGfx_GrayOrb[]; +extern const u32 gBattleAnimSpriteGfx_PinkPetal[]; +extern const u32 gBattleAnimSpriteGfx_PainSplit[]; +extern const u32 gBattleAnimSpriteGfx_Confetti[]; +extern const u32 gBattleAnimSpriteGfx_GreenStar[]; +extern const u32 gBattleAnimSpriteGfx_PinkCloud[]; +extern const u32 gBattleAnimSpriteGfx_SweatDrop[]; +extern const u32 gBattleAnimSpriteGfx_GuardRing[]; +extern const u32 gBattleAnimSpriteGfx_PurpleScratch[]; +extern const u32 gBattleAnimSpriteGfx_PurpleSwipe[]; +extern const u32 gBattleAnimSpriteGfx_TagHand[]; +extern const u32 gBattleAnimSpriteGfx_SmallRedEye[]; +extern const u32 gBattleAnimSpriteGfx_HollowOrb[]; +extern const u32 gBattleAnimSpriteGfx_XSign[]; +extern const u32 gBattleAnimSpriteGfx_BluegreenOrb[]; +extern const u32 gBattleAnimSpriteGfx_PawPrint[]; +extern const u32 gBattleAnimSpriteGfx_PurpleFlame[]; +extern const u32 gBattleAnimSpriteGfx_RedBall[]; +extern const u32 gBattleAnimSpriteGfx_SmellingsaltEffect[]; +extern const u32 gBattleAnimSpriteGfx_Meteor[]; +extern const u32 gBattleAnimSpriteGfx_FlatRock[]; +extern const u32 gBattleAnimSpriteGfx_MagnifyingGlass[]; +extern const u32 gBattleAnimSpriteGfx_MetalSoundWaves[]; +extern const u32 gBattleAnimSpriteGfx_FlyingDirt[]; +extern const u32 gBattleAnimSpriteGfx_IcicleSpear[]; +extern const u32 gBattleAnimSpriteGfx_Hail[]; +extern const u32 gBattleAnimSpriteGfx_GlowyRedOrb[]; +extern const u32 gBattleAnimSpriteGfx_GreenSpike[]; +extern const u32 gBattleAnimSpriteGfx_Pokeblock[]; +extern const u32 gBattleAnimSpriteGfx_WhiteFeather[]; +extern const u32 gBattleAnimSpriteGfx_Sparkle6[]; +extern const u32 gBattleAnimSpriteGfx_Splash[]; +extern const u32 gBattleAnimSpriteGfx_SweatBead[]; +extern const u32 gBattleAnimSpriteGfx_Gem1[]; +extern const u32 gBattleAnimSpriteGfx_Gem2[]; +extern const u32 gBattleAnimSpriteGfx_Gem3[]; +extern const u32 gBattleAnimSpriteGfx_SlamHit2[]; +extern const u32 gBattleAnimSpriteGfx_Recycle[]; +extern const u32 gBattleAnimSpriteGfx_RedParticles[]; +extern const u32 gBattleAnimSpriteGfx_Protect[]; +extern const u32 gBattleAnimSpriteGfx_DirtMound[]; +extern const u32 gBattleAnimSpriteGfx_Shock3[]; +extern const u32 gBattleAnimSpriteGfx_WeatherBall[]; +extern const u32 gBattleAnimBgTilemap_ScaryFacePlayer[]; +extern const u32 gBattleAnimBgTilemap_ScaryFaceOpponent[]; +extern const u32 gBattleAnimBgTilemap_ScaryFaceContest[]; +extern const u32 gBattleAnimSpriteGfx_Bird[]; +extern const u32 gBattleAnimSpriteGfx_CrossImpact[]; -extern const u32 gBattleAnimSpritePalette_000[]; -extern const u32 gBattleAnimSpritePalette_001[]; -extern const u32 gBattleAnimSpritePalette_002[]; -extern const u32 gBattleAnimSpritePalette_003[]; -extern const u32 gBattleAnimSpritePalette_004[]; -extern const u32 gBattleAnimSpritePalette_005[]; -extern const u32 gBattleAnimSpritePalette_006[]; -extern const u32 gBattleAnimSpritePalette_007[]; -extern const u32 gBattleAnimSpritePalette_008[]; -extern const u32 gBattleAnimSpritePalette_009[]; -extern const u32 gBattleAnimSpritePalette_010[]; -extern const u32 gBattleAnimSpritePalette_011[]; -extern const u32 gBattleAnimSpritePalette_012[]; -extern const u32 gBattleAnimSpritePalette_013[]; -extern const u32 gBattleAnimSpritePalette_014[]; -extern const u32 gBattleAnimSpritePalette_015[]; -extern const u32 gBattleAnimSpritePalette_016[]; -extern const u32 gBattleAnimSpritePalette_016[]; -extern const u32 gBattleAnimSpritePalette_018[]; -extern const u32 gBattleAnimSpritePalette_019[]; -extern const u32 gBattleAnimSpritePalette_020[]; -extern const u32 gBattleAnimSpritePalette_021[]; -extern const u32 gBattleAnimSpritePalette_022[]; -extern const u32 gBattleAnimSpritePalette_023[]; -extern const u32 gBattleAnimSpritePalette_024[]; -extern const u32 gBattleAnimSpritePalette_025[]; -extern const u32 gBattleAnimSpritePalette_026[]; -extern const u32 gBattleAnimSpritePalette_027[]; -extern const u32 gBattleAnimSpritePalette_028[]; -extern const u32 gBattleAnimSpritePalette_029[]; -extern const u32 gBattleAnimSpritePalette_030[]; -extern const u32 gBattleAnimSpritePalette_031[]; -extern const u32 gBattleAnimSpritePalette_032[]; -extern const u32 gBattleAnimSpritePalette_033[]; -extern const u32 gBattleAnimSpritePalette_033[]; -extern const u32 gBattleAnimSpritePalette_033[]; -extern const u32 gBattleAnimSpritePalette_036[]; -extern const u32 gBattleAnimSpritePalette_036[]; -extern const u32 gBattleAnimSpritePalette_038[]; -extern const u32 gBattleAnimSpritePalette_039[]; -extern const u32 gBattleAnimSpritePalette_038[]; -extern const u32 gBattleAnimSpritePalette_038[]; -extern const u32 gBattleAnimSpritePalette_042[]; -extern const u32 gBattleAnimSpritePalette_043[]; -extern const u32 gBattleAnimSpritePalette_044[]; -extern const u32 gBattleAnimSpritePalette_045[]; -extern const u32 gBattleAnimSpritePalette_046[]; -extern const u32 gBattleAnimSpritePalette_047[]; -extern const u32 gBattleAnimSpritePalette_048[]; -extern const u32 gBattleAnimSpritePalette_049[]; -extern const u32 gBattleAnimSpritePalette_050[]; -extern const u32 gBattleAnimSpritePalette_050[]; -extern const u32 gBattleAnimSpritePalette_050[]; -extern const u32 gBattleAnimSpritePalette_026[]; -extern const u32 gBattleAnimSpritePalette_054[]; -extern const u32 gBattleAnimSpritePalette_050[]; -extern const u32 gBattleAnimSpritePalette_056[]; -extern const u32 gBattleAnimSpritePalette_057[]; -extern const u32 gBattleAnimSpritePalette_058[]; -extern const u32 gBattleAnimSpritePalette_059[]; -extern const u32 gBattleAnimSpritePalette_060[]; -extern const u32 gBattleAnimSpritePalette_061[]; -extern const u32 gBattleAnimSpritePalette_062[]; -extern const u32 gBattleAnimSpritePalette_063[]; -extern const u32 gBattleAnimSpritePalette_064[]; -extern const u32 gBattleAnimSpritePalette_065[]; -extern const u32 gBattleAnimSpritePalette_066[]; -extern const u32 gBattleAnimSpritePalette_067[]; -extern const u32 gBattleAnimSpritePalette_068[]; -extern const u32 gBattleAnimSpritePalette_065[]; -extern const u32 gBattleAnimSpritePalette_070[]; -extern const u32 gBattleAnimSpritePalette_070[]; -extern const u32 gBattleAnimSpritePalette_072[]; -extern const u32 gBattleAnimSpritePalette_073[]; -extern const u32 gBattleAnimSpritePalette_074[]; -extern const u32 gBattleAnimSpritePalette_075[]; -extern const u32 gBattleAnimSpritePalette_076[]; -extern const u32 gBattleAnimSpritePalette_076[]; -extern const u32 gBattleAnimSpritePalette_078[]; -extern const u32 gBattleAnimSpritePalette_078[]; -extern const u32 gBattleAnimSpritePalette_080[]; -extern const u32 gBattleAnimSpritePalette_081[]; -extern const u32 gBattleAnimSpritePalette_082[]; -extern const u32 gBattleAnimSpritePalette_083[]; -extern const u32 gBattleAnimSpritePalette_084[]; -extern const u32 gBattleAnimSpritePalette_085[]; -extern const u32 gBattleAnimSpritePalette_086[]; -extern const u32 gBattleAnimSpritePalette_087[]; -extern const u32 gBattleAnimSpritePalette_088[]; -extern const u32 gBattleAnimSpritePalette_089[]; -extern const u32 gBattleAnimSpritePalette_090[]; -extern const u32 gBattleAnimSpritePalette_091[]; -extern const u32 gBattleAnimSpritePalette_092[]; -extern const u32 gBattleAnimSpritePalette_093[]; -extern const u32 gBattleAnimSpritePalette_094[]; -extern const u32 gBattleAnimSpritePalette_095[]; -extern const u32 gBattleAnimSpritePalette_096[]; -extern const u32 gBattleAnimSpritePalette_097[]; -extern const u32 gBattleAnimSpritePalette_094[]; -extern const u32 gBattleAnimSpritePalette_099[]; -extern const u32 gBattleAnimSpritePalette_100[]; -extern const u32 gBattleAnimSpritePalette_101[]; -extern const u32 gBattleAnimSpritePalette_101[]; -extern const u32 gBattleAnimSpritePalette_103[]; -extern const u32 gBattleAnimSpritePalette_104[]; -extern const u32 gBattleAnimSpritePalette_105[]; -extern const u32 gBattleAnimSpritePalette_105[]; -extern const u32 gBattleAnimSpritePalette_107[]; -extern const u32 gBattleAnimSpritePalette_107[]; -extern const u32 gBattleAnimSpritePalette_109[]; -extern const u32 gBattleAnimSpritePalette_109[]; -extern const u32 gBattleAnimSpritePalette_111[]; -extern const u32 gBattleAnimSpritePalette_112[]; -extern const u32 gBattleAnimSpritePalette_113[]; -extern const u32 gBattleAnimSpritePalette_114[]; -extern const u32 gBattleAnimSpritePalette_115[]; -extern const u32 gBattleAnimSpritePalette_116[]; -extern const u32 gBattleAnimSpritePalette_117[]; -extern const u32 gBattleAnimSpritePalette_118[]; -extern const u32 gBattleAnimSpritePalette_119[]; -extern const u32 gBattleAnimSpritePalette_120[]; -extern const u32 gBattleAnimSpritePalette_121[]; -extern const u32 gBattleAnimSpritePalette_122[]; -extern const u32 gBattleAnimSpritePalette_122[]; -extern const u32 gBattleAnimSpritePalette_124[]; -extern const u32 gBattleAnimSpritePalette_125[]; -extern const u32 gBattleAnimSpritePalette_126[]; -extern const u32 gBattleAnimSpritePalette_127[]; -extern const u32 gBattleAnimSpritePalette_128[]; -extern const u32 gBattleAnimSpritePalette_128[]; -extern const u32 gBattleAnimSpritePalette_130[]; -extern const u32 gBattleAnimSpritePalette_130[]; -extern const u32 gBattleAnimSpritePalette_132[]; -extern const u32 gBattleAnimSpritePalette_133[]; -extern const u32 gBattleAnimSpritePalette_133[]; -extern const u32 gBattleAnimSpritePalette_135[]; -extern const u32 gBattleAnimSpritePalette_136[]; -extern const u32 gBattleAnimSpritePalette_135[]; -extern const u32 gBattleAnimSpritePalette_135[]; -extern const u32 gBattleAnimSpritePalette_139[]; -extern const u32 gBattleAnimSpritePalette_140[]; -extern const u32 gBattleAnimSpritePalette_141[]; -extern const u32 gBattleAnimSpritePalette_141[]; -extern const u32 gBattleAnimSpritePalette_143[]; -extern const u32 gBattleAnimSpritePalette_144[]; -extern const u32 gBattleAnimSpritePalette_139[]; -extern const u32 gBattleAnimSpritePalette_115[]; -extern const u32 gBattleAnimSpritePalette_147[]; -extern const u32 gBattleAnimSpritePalette_148[]; -extern const u32 gBattleAnimSpritePalette_148[]; -extern const u32 gBattleAnimSpritePalette_150[]; -extern const u32 gBattleAnimSpritePalette_150[]; -extern const u32 gBattleAnimSpritePalette_152[]; -extern const u32 gBattleAnimSpritePalette_153[]; -extern const u32 gBattleAnimSpritePalette_154[]; -extern const u32 gBattleAnimSpritePalette_155[]; -extern const u32 gBattleAnimSpritePalette_156[]; -extern const u32 gBattleAnimSpritePalette_157[]; -extern const u32 gBattleAnimSpritePalette_158[]; -extern const u32 gBattleAnimSpritePalette_159[]; -extern const u32 gBattleAnimSpritePalette_160[]; -extern const u32 gBattleAnimSpritePalette_161[]; -extern const u32 gBattleAnimSpritePalette_162[]; -extern const u32 gBattleAnimSpritePalette_163[]; -extern const u32 gBattleAnimSpritePalette_164[]; -extern const u32 gBattleAnimSpritePalette_165[]; -extern const u32 gBattleAnimSpritePalette_166[]; -extern const u32 gBattleAnimSpritePalette_167[]; -extern const u32 gBattleAnimSpritePalette_168[]; -extern const u32 gBattleAnimSpritePalette_169[]; -extern const u32 gBattleAnimSpritePalette_170[]; -extern const u32 gBattleAnimSpritePalette_171[]; -extern const u32 gBattleAnimSpritePalette_172[]; -extern const u32 gBattleAnimSpritePalette_174[]; -extern const u32 gBattleAnimSpritePalette_175[]; -extern const u32 gBattleAnimSpritePalette_176[]; -extern const u32 gBattleAnimSpritePalette_177[]; -extern const u32 gBattleAnimSpritePalette_178[]; -extern const u32 gBattleAnimSpritePalette_179[]; -extern const u32 gBattleAnimSpritePalette_182[]; -extern const u32 gBattleAnimSpritePalette_183[]; -extern const u32 gBattleAnimSpritePalette_184[]; -extern const u32 gBattleAnimSpritePalette_185[]; -extern const u32 gBattleAnimSpritePalette_186[]; -extern const u32 gBattleAnimSpritePalette_187[]; -extern const u32 gBattleAnimSpritePalette_188[]; -extern const u32 gBattleAnimSpritePalette_189[]; -extern const u32 gBattleAnimSpritePalette_190[]; -extern const u32 gBattleAnimSpritePalette_191[]; -extern const u32 gBattleAnimSpritePalette_192[]; -extern const u32 gBattleAnimSpritePalette_193[]; -extern const u32 gBattleAnimSpritePalette_194[]; -extern const u32 gBattleAnimSpritePalette_195[]; -extern const u32 gBattleAnimSpritePalette_196[]; -extern const u32 gBattleAnimSpritePalette_197[]; -extern const u32 gBattleAnimSpritePalette_198[]; -extern const u32 gBattleAnimSpritePalette_199[]; -extern const u32 gBattleAnimSpritePalette_200[]; -extern const u32 gBattleAnimSpritePalette_201[]; -extern const u32 gBattleAnimSpritePalette_202[]; -extern const u32 gBattleAnimSpritePalette_203[]; -extern const u32 gBattleAnimSpritePalette_204[]; -extern const u32 gBattleAnimSpritePalette_205[]; -extern const u32 gBattleAnimSpritePalette_206[]; -extern const u32 gBattleAnimSpritePalette_207[]; -extern const u32 gBattleAnimSpritePalette_209[]; -extern const u32 gBattleAnimSpritePalette_210[]; -extern const u32 gBattleAnimSpritePalette_211[]; -extern const u32 gBattleAnimSpritePalette_215[]; +extern const u32 gBattleAnimSpritePal_Bone[]; +extern const u32 gBattleAnimSpritePal_Spark[]; +extern const u32 gBattleAnimSpritePal_Pencil[]; +extern const u32 gBattleAnimSpritePal_AirWave[]; +extern const u32 gBattleAnimSpritePal_Orb[]; +extern const u32 gBattleAnimSpritePal_Sword[]; +extern const u32 gBattleAnimSpritePal_Seed[]; +extern const u32 gBattleAnimSpritePal_Explosion6[]; +extern const u32 gBattleAnimSpritePal_PinkOrb[]; +extern const u32 gBattleAnimSpritePal_Gust[]; +extern const u32 gBattleAnimSpritePal_IceCube[]; +extern const u32 gBattleAnimSpritePal_Spark2[]; +extern const u32 gBattleAnimSpritePal_Orange[]; +extern const u32 gBattleAnimSpritePal_YellowBall[]; +extern const u32 gBattleAnimSpritePal_LockOn[]; +extern const u32 gBattleAnimSpritePal_TiedBag[]; +extern const u32 gBattleAnimSpritePal_BlackSmoke[]; +extern const u32 gBattleAnimSpritePal_BlackSmoke[]; +extern const u32 gBattleAnimSpritePal_Conversion[]; +extern const u32 gBattleAnimSpritePal_Glass[]; +extern const u32 gBattleAnimSpritePal_HornHit[]; +extern const u32 gBattleAnimSpritePal_Hit[]; +extern const u32 gBattleAnimSpritePal_Hit2[]; +extern const u32 gBattleAnimSpritePal_BlueShards[]; +extern const u32 gBattleAnimSpritePal_ClosingEye[]; +extern const u32 gBattleAnimSpritePal_WavingHand[]; +extern const u32 gBattleAnimSpritePal_HitDuplicate[]; +extern const u32 gBattleAnimSpritePal_Leer[]; +extern const u32 gBattleAnimSpritePal_BlueBurst[]; +extern const u32 gBattleAnimSpritePal_SmallEmber[]; +extern const u32 gBattleAnimSpritePal_GraySmoke[]; +extern const u32 gBattleAnimSpritePal_BlueStar[]; +extern const u32 gBattleAnimSpritePal_BubbleBurst[]; +extern const u32 gBattleAnimSpritePal_Fire[]; +extern const u32 gBattleAnimSpritePal_Fire[]; +extern const u32 gBattleAnimSpritePal_Fire[]; +extern const u32 gBattleAnimSpritePal_Lightning2[]; +extern const u32 gBattleAnimSpritePal_Lightning2[]; +extern const u32 gBattleAnimSpritePal_ClawSlash2[]; +extern const u32 gBattleAnimSpritePal_ClawSlash[]; +extern const u32 gBattleAnimSpritePal_ClawSlash2[]; +extern const u32 gBattleAnimSpritePal_ClawSlash2[]; +extern const u32 gBattleAnimSpritePal_BubbleBurst2[]; +extern const u32 gBattleAnimSpritePal_IceChunk[]; +extern const u32 gBattleAnimSpritePal_Glass2[]; +extern const u32 gBattleAnimSpritePal_PinkHeart2[]; +extern const u32 gBattleAnimSpritePal_SapDrip[]; +extern const u32 gBattleAnimSpritePal_SapDrip2[]; +extern const u32 gBattleAnimSpritePal_Sparkle1[]; +extern const u32 gBattleAnimSpritePal_Sparkle2[]; +extern const u32 gBattleAnimSpritePal_HumanoidFoot[]; +extern const u32 gBattleAnimSpritePal_HumanoidFoot[]; +extern const u32 gBattleAnimSpritePal_HumanoidFoot[]; +extern const u32 gBattleAnimSpritePal_HitDuplicate[]; +extern const u32 gBattleAnimSpritePal_YellowUnk[]; +extern const u32 gBattleAnimSpritePal_HumanoidFoot[]; +extern const u32 gBattleAnimSpritePal_SlamHit[]; +extern const u32 gBattleAnimSpritePal_Ring[]; +extern const u32 gBattleAnimSpritePal_Rocks[]; +extern const u32 gBattleAnimSpritePal_Z[]; +extern const u32 gBattleAnimSpritePal_YellowUnk2[]; +extern const u32 gBattleAnimSpritePal_AirSlash[]; +extern const u32 gBattleAnimSpritePal_SpinningGreenOrbs[]; +extern const u32 gBattleAnimSpritePal_Leaf[]; +extern const u32 gBattleAnimSpritePal_Finger[]; +extern const u32 gBattleAnimSpritePal_PoisonPowder[]; +extern const u32 gBattleAnimSpritePal_BrownTriangle[]; +extern const u32 gBattleAnimSpritePal_SleepPowder[]; +extern const u32 gBattleAnimSpritePal_StunSpore[]; +extern const u32 gBattleAnimSpritePal_PoisonPowder[]; +extern const u32 gBattleAnimSpritePal_Sparkle3[]; +extern const u32 gBattleAnimSpritePal_Sparkle3[]; +extern const u32 gBattleAnimSpritePal_MusicNotes[]; +extern const u32 gBattleAnimSpritePal_Duck[]; +extern const u32 gBattleAnimSpritePal_MudSand[]; +extern const u32 gBattleAnimSpritePal_Alert[]; +extern const u32 gBattleAnimSpritePal_BlueFlames[]; +extern const u32 gBattleAnimSpritePal_BlueFlames[]; +extern const u32 gBattleAnimSpritePal_Shock4[]; +extern const u32 gBattleAnimSpritePal_Shock4[]; +extern const u32 gBattleAnimSpritePal_Bell2[]; +extern const u32 gBattleAnimSpritePal_PinkGlove[]; +extern const u32 gBattleAnimSpritePal_BlueLines[]; +extern const u32 gBattleAnimSpritePal_Impact3[]; +extern const u32 gBattleAnimSpritePal_Impact2[]; +extern const u32 gBattleAnimSpritePal_Reticle[]; +extern const u32 gBattleAnimSpritePal_Breath[]; +extern const u32 gBattleAnimSpritePal_Anger[]; +extern const u32 gBattleAnimSpritePal_Snowball[]; +extern const u32 gBattleAnimSpritePal_Vine[]; +extern const u32 gBattleAnimSpritePal_Sword2[]; +extern const u32 gBattleAnimSpritePal_Clapping[]; +extern const u32 gBattleAnimSpritePal_RedTube[]; +extern const u32 gBattleAnimSpritePal_Amnesia[]; +extern const u32 gBattleAnimSpritePal_String2[]; +extern const u32 gBattleAnimSpritePal_Pencil2[]; +extern const u32 gBattleAnimSpritePal_Petal[]; +extern const u32 gBattleAnimSpritePal_BentSpoon[]; +extern const u32 gBattleAnimSpritePal_String2[]; +extern const u32 gBattleAnimSpritePal_MilkBottle[]; +extern const u32 gBattleAnimSpritePal_Coin[]; +extern const u32 gBattleAnimSpritePal_CrackedEgg[]; +extern const u32 gBattleAnimSpritePal_CrackedEgg[]; +extern const u32 gBattleAnimSpritePal_FreshEgg[]; +extern const u32 gBattleAnimSpritePal_Fangs[]; +extern const u32 gBattleAnimSpritePal_Explosion2[]; +extern const u32 gBattleAnimSpritePal_Explosion2[]; +extern const u32 gBattleAnimSpritePal_WaterDroplet[]; +extern const u32 gBattleAnimSpritePal_WaterDroplet[]; +extern const u32 gBattleAnimSpritePal_Seed2[]; +extern const u32 gBattleAnimSpritePal_Seed2[]; +extern const u32 gBattleAnimSpritePal_RedWand[]; +extern const u32 gBattleAnimSpritePal_PurpleGreenUnk[]; +extern const u32 gBattleAnimSpritePal_WaterColumn[]; +extern const u32 gBattleAnimSpritePal_MudUnk[]; +extern const u32 gBattleAnimSpritePal_RainDrops[]; +extern const u32 gBattleAnimSpritePal_FurySwipes[]; +extern const u32 gBattleAnimSpritePal_Vine2[]; +extern const u32 gBattleAnimSpritePal_Teeth[]; +extern const u32 gBattleAnimSpritePal_Bone2[]; +extern const u32 gBattleAnimSpritePal_WhiteBag[]; +extern const u32 gBattleAnimSpritePal_Unknown[]; +extern const u32 gBattleAnimSpritePal_PurpleCoral[]; +extern const u32 gBattleAnimSpritePal_PurpleCoral[]; +extern const u32 gBattleAnimSpritePal_Shock2[]; +extern const u32 gBattleAnimSpritePal_ClosingEye2[]; +extern const u32 gBattleAnimSpritePal_MetalBall[]; +extern const u32 gBattleAnimSpritePal_MonsterDoll[]; +extern const u32 gBattleAnimSpritePal_Whirlwind[]; +extern const u32 gBattleAnimSpritePal_Whirlwind[]; +extern const u32 gBattleAnimSpritePal_Explosion4[]; +extern const u32 gBattleAnimSpritePal_Explosion4[]; +extern const u32 gBattleAnimSpritePal_Tongue[]; +extern const u32 gBattleAnimSpritePal_Smoke[]; +extern const u32 gBattleAnimSpritePal_Smoke[]; +extern const u32 gBattleAnimSpritePal_Impact[]; +extern const u32 gBattleAnimSpritePal_CircleImpact[]; +extern const u32 gBattleAnimSpritePal_Impact[]; +extern const u32 gBattleAnimSpritePal_Impact[]; +extern const u32 gBattleAnimSpritePal_SharpTeeth[]; +extern const u32 gBattleAnimSpritePal_RainbowRings[]; +extern const u32 gBattleAnimSpritePal_IceCrystals[]; +extern const u32 gBattleAnimSpritePal_IceCrystals[]; +extern const u32 gBattleAnimSpritePal_HandsAndFeet[]; +extern const u32 gBattleAnimSpritePal_MistCloud[]; +extern const u32 gBattleAnimSpritePal_SharpTeeth[]; +extern const u32 gBattleAnimSpritePal_RainDrops[]; +extern const u32 gBattleAnimSpritePal_Orbs[]; +extern const u32 gBattleAnimSpritePal_WaterImpact[]; +extern const u32 gBattleAnimSpritePal_WaterImpact[]; +extern const u32 gBattleAnimSpritePal_PoisonBubble[]; +extern const u32 gBattleAnimSpritePal_PoisonBubble[]; +extern const u32 gBattleAnimSpritePal_Spikes[]; +extern const u32 gBattleAnimSpritePal_HornHit2[]; +extern const u32 gBattleAnimSpritePal_AirWave2[]; +extern const u32 gBattleAnimSpritePal_SmallBubbles[]; +extern const u32 gBattleAnimSpritePal_RoundShadow[]; +extern const u32 gBattleAnimSpritePal_Sunlight[]; +extern const u32 gBattleAnimSpritePal_Spore[]; +extern const u32 gBattleAnimSpritePal_Flower[]; +extern const u32 gBattleAnimSpritePal_RazorLeaf[]; +extern const u32 gBattleAnimSpritePal_Needle[]; +extern const u32 gBattleAnimSpritePal_WhirlwindLines[]; +extern const u32 gBattleAnimSpritePal_GoldRing[]; +extern const u32 gBattleAnimSpritePal_PurpleRing[]; +extern const u32 gBattleAnimSpritePal_BlueRing[]; +extern const u32 gBattleAnimSpritePal_GreenLightWall[]; +extern const u32 gBattleAnimSpritePal_BlueLightWall[]; +extern const u32 gBattleAnimSpritePal_RedLightWall[]; +extern const u32 gBattleAnimSpritePal_GrayLightWall[]; +extern const u32 gBattleAnimSpritePal_OrangeLightWall[]; +extern const u32 gBattleAnimSpritePal_BlackBall2[]; +extern const u32 gBattleAnimSpritePal_PurpleGasCloud[]; +extern const u32 gBattleAnimSpritePal_YellowStar[]; +extern const u32 gBattleAnimSpritePal_LargeFreshEgg[]; +extern const u32 gBattleAnimSpritePal_ShadowBall[]; +extern const u32 gBattleAnimSpritePal_Lick[]; +extern const u32 gBattleAnimSpritePal_VoidLines[]; +extern const u32 gBattleAnimSpritePal_String[]; +extern const u32 gBattleAnimSpritePal_Lightbulb[]; +extern const u32 gBattleAnimSpritePal_Slash[]; +extern const u32 gBattleAnimSpritePal_FocusEnergy[]; +extern const u32 gBattleAnimSpritePal_SphereToCube[]; +extern const u32 gBattleAnimSpritePal_Tendrils[]; +extern const u32 gBattleAnimSpritePal_Eye[]; +extern const u32 gBattleAnimSpritePal_WhiteShadow[]; +extern const u32 gBattleAnimSpritePal_TealAlert[]; +extern const u32 gBattleAnimSpritePal_OpeningEye[]; +extern const u32 gBattleAnimSpritePal_RoundWhiteHalo[]; +extern const u32 gBattleAnimSpritePal_FangAttack[]; +extern const u32 gBattleAnimSpritePal_PurpleHandOutline[]; +extern const u32 gBattleAnimSpritePal_Moon[]; +extern const u32 gBattleAnimSpritePal_GreenSparkle[]; +extern const u32 gBattleAnimSpritePal_Spiral[]; +extern const u32 gBattleAnimSpritePal_SnoreZ[]; +extern const u32 gBattleAnimSpritePal_Explosion[]; +extern const u32 gBattleAnimSpritePal_Nail[]; +extern const u32 gBattleAnimSpritePal_GhostlySpirit[]; +extern const u32 gBattleAnimSpritePal_WarmRock[]; +extern const u32 gBattleAnimSpritePal_BreakingEgg[]; +extern const u32 gBattleAnimSpritePal_ThinRing[]; +extern const u32 gBattleAnimSpritePal_PunchImpact[]; +extern const u32 gBattleAnimSpritePal_Bell[]; +extern const u32 gBattleAnimSpritePal_MusicNotes2[]; +extern const u32 gBattleAnimSpritePal_SpeedDust[]; +extern const u32 gBattleAnimSpritePal_ThoughtBubble[]; +extern const u32 gBattleAnimSpritePal_MagentaHeart[]; +extern const u32 gBattleAnimSpritePal_ElectricOrbs[]; +extern const u32 gBattleAnimSpritePal_MovementWaves[]; extern const u32 gUnknown_08C249D0[]; extern const u32 gUnknown_08C249F8[]; -extern const u32 gBattleAnimSpritePalette_216[]; -extern const u32 gBattleAnimSpritePalette_217[]; -extern const u32 gBattleAnimSpritePalette_218[]; -extern const u32 gBattleAnimSpritePalette_219[]; +extern const u32 gBattleAnimSpritePal_RedHeart[]; +extern const u32 gBattleAnimSpritePal_RedOrb[]; +extern const u32 gBattleAnimSpritePal_EyeSparkle[]; +extern const u32 gBattleAnimSpritePal_PinkHeart[]; extern const u32 gUnknown_08C232E0; extern const u32 gUnknown_08C23D50; extern const u32 gUnknown_08C23D78; -extern const u32 gBattleAnimSpritePalette_220[]; -extern const u32 gBattleAnimSpritePalette_221[]; -extern const u32 gBattleAnimSpritePalette_222[]; -extern const u32 gBattleAnimSpritePalette_223[]; -extern const u32 gBattleAnimSpritePalette_224[]; -extern const u32 gBattleAnimSpritePalette_225[]; -extern const u32 gBattleAnimSpritePalette_226[]; -extern const u32 gBattleAnimSpritePalette_228[]; -extern const u32 gBattleAnimSpritePalette_229[]; -extern const u32 gBattleAnimSpritePalette_230[]; -extern const u32 gBattleAnimSpritePalette_231[]; -extern const u32 gBattleAnimSpritePalette_233[]; -extern const u32 gBattleAnimSpritePalette_234[]; -extern const u32 gBattleAnimSpritePalette_235[]; -extern const u32 gBattleAnimSpritePalette_236[]; -extern const u32 gBattleAnimSpritePalette_237[]; -extern const u32 gBattleAnimSpritePalette_238[]; -extern const u32 gBattleAnimSpritePalette_239[]; -extern const u32 gBattleAnimSpritePalette_240[]; -extern const u32 gBattleAnimSpritePalette_241[]; -extern const u32 gBattleAnimSpritePalette_242[]; -extern const u32 gBattleAnimSpritePalette_243[]; -extern const u32 gBattleAnimSpritePalette_244[]; +extern const u32 gBattleAnimSpritePal_Angel[]; +extern const u32 gBattleAnimSpritePal_Devil[]; +extern const u32 gBattleAnimSpritePal_Swipe[]; +extern const u32 gBattleAnimSpritePal_Roots[]; +extern const u32 gBattleAnimSpritePal_ItemBag[]; +extern const u32 gBattleAnimSpritePal_JaggedMusicNote[]; +extern const u32 gBattleAnimSpritePal_Pokeball[]; +extern const u32 gBattleAnimSpritePal_LetterZ[]; +extern const u32 gBattleAnimSpritePal_RapidSpin[]; +extern const u32 gBattleAnimSpritePal_TriForceTriangle[]; +extern const u32 gBattleAnimSpritePal_WispOrb[]; +extern const u32 gBattleAnimSpritePal_GoldStars[]; +extern const u32 gBattleAnimSpritePal_EclipsingOrb[]; +extern const u32 gBattleAnimSpritePal_GrayOrb[]; +extern const u32 gBattleAnimSpritePal_BlueOrb[]; +extern const u32 gBattleAnimSpritePal_RedOrb2[]; +extern const u32 gBattleAnimSpritePal_PinkPetal[]; +extern const u32 gBattleAnimSpritePal_PainSplit[]; +extern const u32 gBattleAnimSpritePal_Confetti[]; +extern const u32 gBattleAnimSpritePal_GreenStar[]; +extern const u32 gBattleAnimSpritePal_PinkCloud[]; +extern const u32 gBattleAnimSpritePal_SweatDrop[]; +extern const u32 gBattleAnimSpritePal_GuardRing[]; extern const u32 gCureBubblesGfx[]; extern const u32 gCureBubblesPal[]; extern const u32 gCureBubblesTilemap[]; -extern const u32 gBattleAnimSpritePalette_245[]; -extern const u32 gBattleAnimSpritePalette_248[]; -extern const u32 gBattleAnimSpritePalette_249[]; -extern const u32 gBattleAnimSpritePalette_251[]; -extern const u32 gBattleAnimSpritePalette_252[]; -extern const u32 gBattleAnimSpritePalette_253[]; -extern const u32 gBattleAnimSpritePalette_254[]; -extern const u32 gBattleAnimSpritePalette_255[]; -extern const u32 gBattleAnimSpritePalette_256[]; -extern const u32 gBattleAnimSpritePalette_257[]; -extern const u32 gBattleAnimSpritePalette_258[]; -extern const u32 gBattleAnimSpritePalette_259[]; -extern const u32 gBattleAnimSpritePalette_260[]; -extern const u32 gBattleAnimSpritePalette_261[]; -extern const u32 gBattleAnimSpritePalette_262[]; -extern const u32 gBattleAnimSpritePalette_263[]; -extern const u32 gBattleAnimSpritePalette_264[]; -extern const u32 gBattleAnimSpritePalette_265[]; -extern const u32 gBattleAnimSpritePalette_266[]; -extern const u32 gBattleAnimSpritePalette_267[]; -extern const u32 gBattleAnimSpritePalette_268[]; -extern const u32 gBattleAnimSpritePalette_269[]; -extern const u32 gBattleAnimSpritePalette_270[]; -extern const u32 gBattleAnimSpritePalette_271[]; -extern const u32 gBattleAnimSpritePalette_272[]; -extern const u32 gBattleAnimSpritePalette_274[]; -extern const u32 gBattleAnimSpritePalette_277[]; -extern const u32 gBattleAnimSpritePalette_278[]; -extern const u32 gBattleAnimSpritePalette_279[]; -extern const u32 gBattleAnimSpritePalette_280[]; -extern const u32 gBattleAnimSpritePalette_281[]; -extern const u32 gBattleAnimSpritePalette_282[]; -extern const u32 gBattleAnimSpritePalette_283[]; -extern const u32 gBattleAnimSpritePalette_284[]; -extern const u32 gBattleAnimSpritePalette_285[]; -extern const u32 gBattleAnimSpritePalette_286[]; -extern const u32 gBattleAnimSpritePalette_287[]; -extern const u32 gBattleAnimSpritePalette_288[]; +extern const u32 gBattleAnimSpritePal_PurpleScratch[]; +extern const u32 gBattleAnimSpritePal_SmallRedEye[]; +extern const u32 gBattleAnimSpritePal_HollowOrb[]; +extern const u32 gBattleAnimSpritePal_BluegreenOrb[]; +extern const u32 gBattleAnimSpritePal_PawPrint[]; +extern const u32 gBattleAnimSpritePal_PurpleFlame[]; +extern const u32 gBattleAnimSpritePal_RedBall[]; +extern const u32 gBattleAnimSpritePal_SmellingsaltEffect[]; +extern const u32 gBattleAnimSpritePal_Meteor[]; +extern const u32 gBattleAnimSpritePal_FlatRock[]; +extern const u32 gBattleAnimSpritePal_MagnifyingGlass[]; +extern const u32 gBattleAnimSpritePal_BrownOrb[]; +extern const u32 gBattleAnimSpritePal_MetalSoundWaves[]; +extern const u32 gBattleAnimSpritePal_FlyingDirt[]; +extern const u32 gBattleAnimSpritePal_IcicleSpear[]; +extern const u32 gBattleAnimSpritePal_Hail[]; +extern const u32 gBattleAnimSpritePal_GlowyRedOrb[]; +extern const u32 gBattleAnimSpritePal_GlowyGreenOrb[]; +extern const u32 gBattleAnimSpritePal_GreenSpike[]; +extern const u32 gBattleAnimSpritePal_WhiteCircleOfLight[]; +extern const u32 gBattleAnimSpritePal_GlowyBlueOrb[]; +extern const u32 gBattleAnimSpritePal_Pokeblock[]; +extern const u32 gBattleAnimSpritePal_WhiteFeather[]; +extern const u32 gBattleAnimSpritePal_Sparkle6[]; +extern const u32 gBattleAnimSpritePal_Splash[]; +extern const u32 gBattleAnimSpritePal_Gem1[]; +extern const u32 gBattleAnimSpritePal_SlamHit2[]; +extern const u32 gBattleAnimSpritePal_Recycle[]; +extern const u32 gBattleAnimSpritePal_RedParticles[]; +extern const u32 gBattleAnimSpritePal_Protect[]; +extern const u32 gBattleAnimSpritePal_DirtMound[]; +extern const u32 gBattleAnimSpritePal_Shock3[]; +extern const u32 gBattleAnimSpritePal_WeatherBall[]; +extern const u32 gBattleAnimSpritePal_Bird[]; +extern const u32 gBattleAnimSpritePal_CrossImpact[]; +extern const u32 gBattleAnimSpritePal_Slash2[]; +extern const u32 gBattleAnimSpritePal_WhipHit[]; +extern const u32 gBattleAnimSpritePal_BlueRing2[]; -extern const u32 gBattleAnimBackgroundImage_00[]; -extern const u32 gBattleAnimBackgroundImage_02[]; -extern const u32 gBattleAnimBackgroundImage_03[]; -extern const u32 gBattleAnimBackgroundImage_04[]; -extern const u32 gBattleAnimBackgroundImage_07[]; -extern const u32 gBattleAnimBackgroundImage_09[]; -extern const u32 gBattleAnimBackgroundImage_11[]; -extern const u32 gBattleAnimBackgroundImage_12[]; -extern const u32 gBattleAnimBackgroundImage_15[]; -extern const u32 gBattleAnimBackgroundImage_16[]; -extern const u32 gBattleAnimBackgroundImage_17[]; -extern const u32 gBattleAnimBackgroundImage_20[]; -extern const u32 gBattleAnimBackgroundImage_21[]; -extern const u32 gBattleAnimBackgroundPalette_00[]; -extern const u32 gBattleAnimBackgroundPalette_02[]; -extern const u32 gBattleAnimBackgroundPalette_03[]; -extern const u32 gBattleAnimBackgroundPalette_04[]; -extern const u32 gBattleAnimBackgroundPalette_07[]; -extern const u32 gBattleAnimBackgroundPalette_09[]; -extern const u32 gBattleAnimBackgroundPalette_11[]; -extern const u32 gBattleAnimBackgroundPalette_12[]; -extern const u32 gBattleAnimBackgroundPalette_15[]; -extern const u32 gBattleAnimBackgroundPalette_16[]; -extern const u32 gBattleAnimBackgroundPalette_17[]; -extern const u32 gBattleAnimBackgroundPalette_18[]; -extern const u32 gBattleAnimBackgroundPalette_20[]; -extern const u32 gBattleAnimBackgroundPalette_21[]; -extern const u32 gBattleAnimBackgroundPalette_22[]; -extern const u32 gBattleAnimBackgroundPalette_24[]; -extern const u32 gBattleAnimBackgroundTilemap_00[]; -extern const u32 gBattleAnimBackgroundTilemap_02[]; -extern const u32 gBattleAnimBackgroundTilemap_03[]; -extern const u32 gBattleAnimBackgroundTilemap_04[]; -extern const u32 gBattleAnimBackgroundTilemap_05[]; -extern const u32 gBattleAnimBackgroundTilemap_06[]; -extern const u32 gBattleAnimBackgroundTilemap_07[]; -extern const u32 gBattleAnimBackgroundTilemap_08[]; -extern const u32 gBattleAnimBackgroundTilemap_09[]; -extern const u32 gBattleAnimBackgroundTilemap_10[]; +extern const u32 gBattleAnimBgImage_Dark[]; +extern const u32 gBattleAnimBgImage_Ghost[]; +extern const u32 gBattleAnimBgImage_Psychic[]; +extern const u32 gBattleAnimBgImage_Impact[]; +extern const u32 gBattleAnimBgImage_Drill[]; +extern const u32 gBattleAnimBgImage_Highspeed[]; +extern const u32 gBattleAnimBgImage_Thunder[]; +extern const u32 gBattleAnimBgImage_Guillotine[]; +extern const u32 gBattleAnimBgImage_Ice[]; +extern const u32 gBattleAnimBgImage_Cosmic[]; +extern const u32 gBattleAnimBgImage_InAir[]; +extern const u32 gBattleAnimBgImage_Aurora[]; +extern const u32 gBattleAnimBgImage_Fissure[]; +extern const u32 gBattleAnimBgPalette_Dark[]; +extern const u32 gBattleAnimBgPalette_Ghost[]; +extern const u32 gBattleAnimBgPalette_Psychic[]; +extern const u32 gBattleAnimBgPalette_Impact[]; +extern const u32 gBattleAnimBgPalette_Drill[]; +extern const u32 gBattleAnimBgPalette_Highspeed[]; +extern const u32 gBattleAnimBgPalette_Thunder[]; +extern const u32 gBattleAnimBgPalette_Guillotine[]; +extern const u32 gBattleAnimBgPalette_Ice[]; +extern const u32 gBattleAnimBgPalette_Cosmic[]; +extern const u32 gBattleAnimBgPalette_InAir[]; +extern const u32 gBattleAnimBgPalette_Sky[]; +extern const u32 gBattleAnimBgPalette_Aurora[]; +extern const u32 gBattleAnimBgPalette_Fissure[]; +extern const u32 gBattleAnimBgPalette_Bug[]; +extern const u32 gBattleAnimBgPalette_Solarbeam[]; +extern const u32 gBattleAnimBgTilemap_Dark[]; +extern const u32 gBattleAnimBgTilemap_Ghost[]; +extern const u32 gBattleAnimBgTilemap_Psychic[]; +extern const u32 gBattleAnimBgTilemap_ImpactOpponent[]; +extern const u32 gBattleAnimBgTilemap_ImpactPlayer[]; +extern const u32 gBattleAnimBgTilemap_ImpactContests[]; +extern const u32 gBattleAnimBgTilemap_Drill[]; +extern const u32 gBattleAnimBgTilemap_DrillContests[]; +extern const u32 gBattleAnimBgTilemap_HighspeedOpponent[]; +extern const u32 gBattleAnimBgTilemap_HighspeedPlayer[]; extern const u32 gUnknown_08C2A634[]; extern const u32 gUnknown_08C2A6D4[]; extern const u32 gUnknown_08C2A6EC[]; -extern const u32 gBattleAnimBackgroundTilemap_11[]; -extern const u32 gBattleAnimBackgroundTilemap_12[]; -extern const u32 gBattleAnimBackgroundTilemap_13[]; -extern const u32 gBattleAnimBackgroundTilemap_14[]; -extern const u32 gBattleAnimBackgroundTilemap_15[]; -extern const u32 gBattleAnimBackgroundTilemap_16[]; -extern const u32 gBattleAnimBackgroundTilemap_17[]; -extern const u32 gBattleAnimBackgroundTilemap_20[]; -extern const u32 gBattleAnimBackgroundTilemap_21[]; +extern const u32 gBattleAnimBgTilemap_Thunder[]; +extern const u32 gBattleAnimBgTilemap_GuillotineOpponent[]; +extern const u32 gBattleAnimBgTilemap_GuillotinePlayer[]; +extern const u32 gBattleAnimBgTilemap_GuillotineContests[]; +extern const u32 gBattleAnimBgTilemap_Ice[]; +extern const u32 gBattleAnimBgTilemap_Cosmic[]; +extern const u32 gBattleAnimBgTilemap_InAir[]; +extern const u32 gBattleAnimBgTilemap_Aurora[]; +extern const u32 gBattleAnimBgTilemap_Fissure[]; extern const u32 gMetalShineGfx[]; extern const u32 gMetalShinePalette[]; @@ -4761,8 +4768,8 @@ extern const u32 gContestAudienceGfx[]; extern const u8 gContestApplauseMeterGfx[]; extern const u8 gContestNextTurnNumbersGfx[]; extern const u8 gContestNextTurnRandomGfx[]; -extern const u32 gUnknown_08C16FA8[]; -extern const u32 gUnknown_08C16E90[]; +extern const u32 gOldContestGfx[]; +extern const u32 gOldContestPalette[]; extern const u32 gUnknown_08C17170[]; extern const u32 gUnknown_08C17980[]; extern const u32 gTiles_8C19450[]; @@ -4777,8 +4784,8 @@ extern const u32 gContest3Pal[]; extern const u32 gUnknown_08D95E00[]; extern const u32 gUnknown_08D960D0[]; extern const u32 gUnknown_08D963A4[]; -extern const u32 gBattleAnimBackgroundImage_Surf[]; -extern const u32 gBattleAnimBackgroundPalette_Surf[]; +extern const u32 gBattleAnimBgImage_Surf[]; +extern const u32 gBattleAnimBgPalette_Surf[]; extern const u32 gBattleAnimBackgroundImageMuddyWater_Pal[]; extern const u32 gBattleAnimFogTilemap[]; diff --git a/include/international_string_util.h b/include/international_string_util.h index 911cd6935..cf3c5f723 100644 --- a/include/international_string_util.h +++ b/include/international_string_util.h @@ -14,7 +14,7 @@ int GetMaxWidthInMenuTable(const struct MenuAction *str, int arg1); int sub_81DB3D8(const struct MenuAction *str, const u8* arg1, int arg2); int Intl_GetListMenuWidth(const struct ListMenuTemplate *listMenu); void CopyMonCategoryText(int dexNum, u8 *dest); -u8 *sub_81DB494(u8 *str, int fontId, u8 *str2, int totalStringWidth); +u8 *sub_81DB494(u8 *str, int fontId, const u8 *str2, int totalStringWidth); void PadNameString(u8 *dest, u8 padChar); void sub_81DB554(u8 *, u8); void sub_81DB5AC(u8 *); diff --git a/include/link.h b/include/link.h index 62ae7761c..c14084066 100644 --- a/include/link.h +++ b/include/link.h @@ -235,7 +235,7 @@ void LinkVSync(void); void Timer3Intr(void); void SerialCB(void); bool32 InUnionRoom(void); -void sub_800E0E8(void); +void LoadWirelessStatusIndicatorSpriteGfx(void); bool8 IsLinkTaskFinished(void); void CreateWirelessStatusIndicatorSprite(u8, u8); void sub_800ADF8(void); diff --git a/include/match_call.h b/include/match_call.h index 6803d2f26..52eab63ec 100644 --- a/include/match_call.h +++ b/include/match_call.h @@ -14,7 +14,10 @@ s32 GetRematchIdxByTrainerIdx(s32 trainerIdx); void InitMatchCallCounters(void); bool32 TryStartMatchCall(void); bool32 IsMatchCallTaskActive(void); -void StartMatchCallFromScript(u8* script); +void StartMatchCallFromScript(u8 *message); void sub_8197080(u8 *destStr); +bool32 SelectMatchCallMessage(int, u8 *); +void sub_8197184(u32 windowId, u32 destOffset, u32 paletteId); +void sub_81971C4(u32 windowId, u32 tileOffset, u32 paletteId); #endif //GUARD_MATCH_CALL_H diff --git a/include/menu.h b/include/menu.h index 4d55fc955..08cad40bd 100644 --- a/include/menu.h +++ b/include/menu.h @@ -99,6 +99,7 @@ void sub_8199CBC(u8 bgId, u16 *dest, u8 left, u8 top, u8 width, u8 height); u8 sub_81980F0(u8 bg, u8 xPos, u8 yPos, u8 palette, u16 baseTile); void sub_8198314(void); void sub_8198180(const u8 *string, u8 a2, bool8 copyToVram); +void ResetBgPositions(void); void AddTextPrinterWithCustomSpeedForMessage(bool8 allowSkippingDelayWithButtonPress, u8 speed); void sub_8198C78(void); void PrintTextArray(u8 windowId, u8 fontId, u8 left, u8 top, u8 lineHeight, u8 itemCount, const struct MenuAction *strs); diff --git a/include/menu_helpers.h b/include/menu_helpers.h index 63af4c731..3b6c13172 100644 --- a/include/menu_helpers.h +++ b/include/menu_helpers.h @@ -30,7 +30,7 @@ bool8 itemid_80BF6D8_mail_related(u16 itemId); bool8 sub_81221AC(void); bool8 sub_81221EC(void); void sub_812220C(struct ItemSlot *slots, u8 count, u8 *arg2, u8 *usedSlotsCount, u8 maxUsedSlotsCount); -void sub_812225C(u16 *arg0, u16 *arg1, u8 arg2, u8 arg3); +void sub_812225C(u16 *scrollOffset, u16 *cursorPos, u8 maxShownItems, u8 numItems); void sub_8122298(u16 *arg0, u16 *arg1, u8 arg2, u8 arg3, u8 arg4); void LoadListMenuArrowsGfx(void); void sub_8122344(u8 *spriteIds, u8 count); diff --git a/include/menu_specialized.h b/include/menu_specialized.h index 405d78830..014ee2585 100644 --- a/include/menu_specialized.h +++ b/include/menu_specialized.h @@ -32,8 +32,6 @@ u8 sub_81D1DC0(struct PlayerPCItemPageStruct *page); void sub_81D1E90(struct PlayerPCItemPageStruct *page); void sub_81D1EC0(void); void sub_81D1D04(u8 a0); -void DrawLevelUpWindowPg1(u16 arg0, u16 *statStoreLocation1, u16 *statStoreLocation2, u8 arg3, u8 arg4, u8 arg5); -void DrawLevelUpWindowPg2(u16 arg0, u16 *statStoreLocation1, u8 arg2, u8 arg3, u8 arg4); void sub_81D1ED4(struct UnknownStruct_81D1ED4 *a0); void sub_81D2108(struct UnknownStruct_81D1ED4 *arg0); void sub_81D20AC(struct UnknownStruct_81D1ED4 *arg0); @@ -47,7 +45,6 @@ bool16 MoveRelearnerRunTextPrinters(void); void MoveRelearnerCreateYesNoMenu(void); u8 LoadMoveRelearnerMovesList(const struct ListMenuItem *items, u16 numChoices); void InitMoveRelearnerWindows(bool8 useContextWindow); -void GetMonLevelUpWindowStats(struct Pokemon *mon, u16 *statStoreLocation); s32 GetBoxOrPartyMonData(u16 boxId, u16 monId, s32 request, u8 *dst); void sub_81D2ED4(u8 *dst, u8 *nameDst, u16 boxId, u16 monId, u16 arg5, u16 arg6, bool8 arg7); void sub_81D2F78(struct UnknownStruct_81D1ED4 *arg0, u8 *sheen, u16 boxId, u16 monId, u16 arg5, u16 id, u16 arg7, bool8 arg8); @@ -63,5 +60,8 @@ void sub_81D3464(struct Sprite **sprites); void sub_81D3480(struct Sprite **sprites, u8 arg1, u8 arg2); void sub_81D3520(struct Sprite **sprites); void sub_81D354C(struct Sprite **sprites); +void DrawLevelUpWindowPg1(u16 windowId, u16 *statsBefore, u16 *statsAfter, u8 bgClr, u8 fgClr, u8 shadowClr); +void DrawLevelUpWindowPg2(u16 windowId, u16 *currStats, u8 bgClr, u8 fgClr, u8 shadowClr); +void GetMonLevelUpWindowStats(struct Pokemon *mon, u16 *currStats); #endif // GUARD_MENU_SPECIALIZED_H diff --git a/include/metatile_behavior.h b/include/metatile_behavior.h index e18639faf..7fd1d1301 100644 --- a/include/metatile_behavior.h +++ b/include/metatile_behavior.h @@ -59,8 +59,8 @@ bool8 MetatileBehavior_IsSecretBasePoster(u8); bool8 MetatileBehavior_IsNormal(u8); bool8 MetatileBehavior_IsSecretBaseNorthWall(u8); bool8 MetatileBehavior_IsMB_B2_Duplicate(u8); -bool8 MetatileBehavior_IsSecretBaseLargeMatEdge(u8); -bool8 MetatileBehavior_IsLargeMatCenter(u8); +bool8 MetatileBehavior_HoldsSmallDecoration(u8); +bool8 MetatileBehavior_HoldsLargeDecoration(u8); bool8 MetatileBehavior_IsSecretBaseHole(u8); bool8 MetatileBehavior_IsSecretBaseBalloon(u8); bool8 MetatileBehavior_IsSecretBaseBreakableDoor(u8); diff --git a/include/new_game.h b/include/new_game.h index 8fab05483..9b96ba478 100644 --- a/include/new_game.h +++ b/include/new_game.h @@ -2,7 +2,9 @@ #define GUARD_NEW_GAME_H extern bool8 gDifferentSaveFile; -extern bool8 gUnknown_020322D5; // The purpose of this variable is unknown as it's read only 3 times(2 times in contest.c and 1 time in berry_blender.c), never written to. +// Shortcuts some randomness in berry_blender.c, and enables debug printing +// in contest.c. +extern bool8 gEnableContestDebugging; void SetTrainerId(u32 trainerId, u8 *dst); u32 GetTrainerId(u8 *trainerId); diff --git a/include/pokemon.h b/include/pokemon.h index 60ccb27f4..c5fea6df7 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -14,7 +14,7 @@ #define MON_DATA_OT_NAME 7 #define MON_DATA_MARKINGS 8 #define MON_DATA_CHECKSUM 9 -#define MON_DATA_10 10 +#define MON_DATA_ENCRYPT_SEPARATOR 10 #define MON_DATA_SPECIES 11 #define MON_DATA_HELD_ITEM 12 #define MON_DATA_MOVE1 13 @@ -487,7 +487,7 @@ u8 GetDefaultMoveTarget(u8 battlerId); u8 GetMonGender(struct Pokemon *mon); u8 GetBoxMonGender(struct BoxPokemon *boxMon); u8 GetGenderFromSpeciesAndPersonality(u16 species, u32 personality); -void SetMultiuseSpriteTemplateToPokemon(u16 species, u8 battlerPosition); +void SetMultiuseSpriteTemplateToPokemon(u16 speciesTag, u8 battlerPosition); void SetMultiuseSpriteTemplateToTrainerBack(u16 trainerSpriteId, u8 battlerPosition); void SetMultiuseSpriteTemplateToTrainerFront(u16 arg0, u8 battlerPosition); @@ -509,7 +509,7 @@ u8 GetMonsStateToDoubles(void); u8 GetMonsStateToDoubles_2(void); u8 GetAbilityBySpecies(u16 species, bool8 altAbility); u8 GetMonAbility(struct Pokemon *mon); -void CreateSecretBaseEnemyParty(struct SecretBaseRecord *secretBaseRecord); +void CreateSecretBaseEnemyParty(struct SecretBase *secretBaseRecord); u8 GetSecretBaseTrainerPicIndex(void); u8 GetSecretBaseTrainerClass(void); bool8 IsPlayerPartyAndPokemonStorageFull(void); diff --git a/include/pokemon_jump.h b/include/pokemon_jump.h index f54e0d460..9dbf194d0 100644 --- a/include/pokemon_jump.h +++ b/include/pokemon_jump.h @@ -1,7 +1,11 @@ #ifndef GUARD_POKEMON_JUMP_H #define GUARD_POKEMON_JUMP_H +#include "main.h" + void sub_802EB24(u8, u8, u8, u8, u8); bool32 sub_802EB84(void); +void sub_802A9A8(u16 monId, MainCallback callback); +bool32 sub_802C908(u16 species); #endif //GUARD_POKEMON_JUMP_H diff --git a/include/pokemon_summary_screen.h b/include/pokemon_summary_screen.h index 19994b77f..20d881702 100755 --- a/include/pokemon_summary_screen.h +++ b/include/pokemon_summary_screen.h @@ -4,7 +4,9 @@ #include "main.h" extern u8 gLastViewedMonIndex; + extern const u8 *const gMoveDescriptionPointers[]; +extern const u8 *const gNatureNamePointers[]; void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void)); void sub_81C4F98(u8, void(*)(void)); diff --git a/include/pokenav.h b/include/pokenav.h index 4e1648c93..0d46f04f3 100644 --- a/include/pokenav.h +++ b/include/pokenav.h @@ -1,6 +1,186 @@ #ifndef GUARD_POKENAV_H #define GUARD_POKENAV_H +#include "bg.h" +#include "main.h" + +typedef u32 (*LoopedTask)(int state); + +// Return values of LoopedTask functions. +#define LT_INC_AND_PAUSE 0 +#define LT_INC_AND_CONTINUE 1 +#define LT_PAUSE 2 +#define LT_CONTINUE 3 +#define LT_FINISH 4 +#define LT_SET_STATE(newState) (newState + 5) + +enum +{ + POKENAV_MODE_NORMAL, // Chosen from Start menu. + POKENAV_MODE_FORCE_CALL_1, // Used for the script's special. Has to choose Match Call and make a call. + POKENAV_MODE_FORCE_CALL_2, // Set after making a call, has to exit Pokenav. +}; + +#define POKENAV_MENU_IDS_START 100000 +enum +{ + POKENAV_MENU_0 = POKENAV_MENU_IDS_START, + POKENAV_MENU_1, + POKENAV_MENU_2, + POKENAV_MENU_3, + POKENAV_MENU_4, + POKENAV_MENU_5, + POKENAV_MENU_6, + POKENAV_MENU_7, + POKENAV_MENU_8, + POKENAV_MENU_9, + POKENAV_MENU_A, + POKENAV_MENU_B, + POKENAV_MENU_C, + POKENAV_MENU_D, + POKENAV_MENU_E, +}; + +// pokenav.c +void sub_81C7694(u32); +u16 sub_81C76AC(void); + void CB2_InitPokeNav(void); +u32 CreateLoopedTask(LoopedTask loopedTask, u32 priority); +bool32 FuncIsActiveLoopedTask(LoopedTask func); +void *GetSubstructPtr(u32 index); +void FreePokenavSubstruct(u32 index); +void *AllocSubstruct(u32 index, u32 size); +void Pokenav_AllocAndLoadPalettes(const struct SpritePalette *palettes); +bool32 IsLoopedTaskActive(u32 taskId); +void SetPokenavMode(u16 mode); +u32 GetPokenavMode(void); +bool32 CanViewRibbonsMenu(void); +void SetPokenavVBlankCallback(void); +void SetVBlankCallback_(IntrCallback callback); + +// pokenav_match_call_ui.c +struct MatchCallListTemplate +{ + u32 unk0; + u16 unk4; + u16 unk6; + u8 unk8; + u8 unk9; + u8 unkA; + u8 unkB; + u8 unkC; + u8 unkD; + u8 unkE; + void (*unk10)(u32, u8 *a1); + void (*unk14)(u16 a0, u32 a1, u32 a2); +}; +u32 GetSelectedMatchCall(void); +bool32 sub_81C8224(void); +int MatchCall_MoveCursorUp(void); +int MatchCall_MoveCursorDown(void); +int MatchCall_PageDown(void); +int MatchCall_PageUp(void); +bool32 sub_81C8630(void); +void ToggleMatchCallVerticalArrows(bool32 shouldHide); +void sub_81C8838(void); +void sub_81C877C(void); +bool32 sub_81C8820(void); +void sub_81C87AC(s16 a0); +u32 GetMatchCallListTopIndex(void); +void sub_81C87F0(void); +bool32 sub_81C81D4(const struct BgTemplate *arg0, struct MatchCallListTemplate *arg1, s32 arg2); +void sub_81C8234(void); + +// pokenav_match_call_data.c +bool32 sub_81D17E8(u32 idx); +u8 sub_81D16DC(u32 idx); +bool32 sub_81D1BF8(u32 idx); +bool32 MatchCallFlagGetByIndex(u32 idx); +u32 MatchCall_GetRematchTableIdx(u32 idx); +u32 GetTrainerIdxByRematchIdx(u32 rematchIdx); +int sub_81D1BD0(u32 idx); +void MatchCall_GetMessage(u32 idx, u8 *dest); +const u8 *sub_81D1B40(u32 idx, u32 offset); +void sub_81D1A78(u32 idx, const u8 **desc, const u8 **name); + +// pokenav_main_menu.c +bool32 InitPokenavMainMenu(void); +void CopyPaletteIntoBufferUnfaded(const u16 *palette, u32 bufferOffset, u32 size); +void sub_81C7850(u32 a0); +u32 sub_81C786C(void); +void LoadLeftHeaderGfxForIndex(u32 arg0); +void sub_81C7FA0(u32 arg0, bool32 arg1, bool32 arg2); +void sub_81C7AC0(int a0); +bool32 sub_81C8010(void); +void InitBgTemplates(const struct BgTemplate *templates, int count); +bool32 IsPaletteFadeActive(void); +void sub_81C7BA4(u32 helpBarIndex); +bool32 IsDma3ManagerBusyWithBgCopy_(void); +void sub_81C78A0(void); +bool32 MainMenuLoopedTaskIsBusy(void); +void sub_81C7FDC(void); +void sub_81C79BC(const u16 *a0, const u16 *a1, u32 a2, u32 a3, u32 a4, u16 *a5); +void sub_81C7B40(void); +struct Sprite *PauseSpinningPokenavSprite(void); +void ResumeSpinningPokenavSprite(void); +void sub_81C7E14(u32 arg0); + +// pokenav_unk_1.c +bool32 sub_81C9298(void); +bool32 sub_81C92CC(void); +bool32 sub_81C9304(void); +bool32 sub_81C9338(void); +bool32 sub_81C9368(void); +u32 sub_81C941C(void); +void sub_81C9430(void); +int sub_81C9894(void); +const u8 *sub_81CAF78(int index, u8 *arg1); + +// pokenav_unk_2.c +void sub_81C99D4(void); +void sub_81CAADC(void); + +// pokenav_unk_3.c +struct Pokenav3Struct_Unk1C +{ + u8 unk0; + u8 unk1; + u16 unk2; +}; +bool32 sub_81CAAE8(void); +u32 sub_81CAB24(void); +void sub_81CAB38(void); +int sub_81CAE28(void); +int sub_81CAE38(void); +int sub_81CAE48(void); +struct Pokenav3Struct_Unk1C *sub_81CAE94(void); +u16 sub_81CAEA4(int); +bool32 sub_81CAEBC(int index); +int sub_81CAF04(int index); +const u8 *sub_81CAFD8(int index, int textType); +u16 sub_81CB01C(void); +u16 sub_81CB02C(int arg0); +void sub_81CB050(u32 arg0, u8 *str); +int sub_81CB0C8(int rematchIndex); +int sub_81CB0E4(int index); +bool32 sub_81CAE08(int); +int sub_81CB128(int index); + +// pokenav_unk_4.c +bool32 sub_81CB260(void); +void sub_81CB29C(int index); +u32 sub_81CB2CC(void); +void sub_81CB2E0(void); +void sub_81CBD48(u16 windowId, u32 a1); + +// pokenav_unk_5.c +u32 sub_81CC4D4(void); +void sub_81CC524(void); +u32 sub_81CC554(void); +bool32 sub_81CC5F4(void); +void sub_81CC62C(int); +u32 sub_81CC65C(void); +void sub_81CC670(void); #endif //GUARD_POKENAV_H diff --git a/include/region_map.h b/include/region_map.h index ed1c1a201..798e6f56d 100644 --- a/include/region_map.h +++ b/include/region_map.h @@ -90,7 +90,7 @@ struct RegionMapLocation // Exported RAM declarations // Exported ROM declarations -void sub_8122CF8(struct RegionMap *regionMap, struct BgTemplate *template, bool8 zoomed); +void sub_8122CF8(struct RegionMap *regionMap, const struct BgTemplate *template, bool8 zoomed); bool8 sub_8122DB0(void); void UpdateRegionMapVideoRegs(void); void InitRegionMap(struct RegionMap *regionMap, u8 argument); @@ -108,6 +108,10 @@ u16 CorrectSpecialMapSecId(u16 mapSecId); void sub_8122D88(struct RegionMap *regionMap); void PokedexAreaScreen_UpdateRegionMapVariablesAndVideoRegs(s16 x, s16 y); void MCB2_FlyMap(void); +bool8 sub_8124658(void); +void sub_812454C(void); +void sub_8123030(u16 a0, u32 a1); +void sub_8123418(void); extern const struct RegionMapLocation gRegionMapEntries[]; diff --git a/include/secret_base.h b/include/secret_base.h index 17efc314d..4e323b0c6 100644 --- a/include/secret_base.h +++ b/include/secret_base.h @@ -1,40 +1,30 @@ #ifndef GUARD_SECRET_BASE_H #define GUARD_SECRET_BASE_H -// Exported type declarations - -// Exported RAM declarations - -// Exported ROM declarations -void sub_80E9578(void); -void sub_80E980C(void); -void sub_80EB18C(struct SecretBaseRecord *dest); -void sub_80E9914(void); +void HideSecretBaseDecorationSprites(void); +void CopyCurSecretBaseOwnerName_StrVar1(void); +void ClearJapaneseSecretBases(struct SecretBase *dest); +void SetPlayerSecretBaseParty(void); u8 *GetSecretBaseMapName(u8 *dest); const u8 *GetSecretBaseTrainerLoseText(void); -void sub_80E8EE0(struct MapEvents const *events); -void sub_80E9238(u8 flagIn); -bool8 CurrentMapIsSecretBase(void); +void SetOccupiedSecretBaseEntranceMetatiles(struct MapEvents const *events); +void InitSecretBaseAppearance(bool8 hidePC); +bool8 CurMapIsSecretBase(void); void SecretBasePerStepCallback(u8 taskId); -bool8 sub_80E9680(void); -void sub_80EB498(void); -void sub_80EB56C(void); -void sub_80EB9E0(void); -void sub_80EBB28(void); +bool8 TrySetCurSecretBase(void); +void SetSecretBaseSecretsTvFlags_Poster(void); +void SetSecretBaseSecretsTvFlags_MiscFurnature(void); +void SetSecretBaseSecretsTvFlags_LargeDecorationSpot(void); +void SetSecretBaseSecretsTvFlags_SmallDecorationSpot(void); void WarpIntoSecretBase(const struct MapPosition *position, const struct MapEvents *events); -bool8 sub_80E909C(void); +bool8 SecretBaseMapPopupEnabled(void); void sub_80EB218(void); -void ResetSecretBases(void); - -// SetCurrentSecretBaseFromPosition -void sub_80E9608(const struct MapPosition *position, const struct MapEvents *events); -// SetCurrentSecretBaseVar -void sub_80E8B6C(void); -void sub_80E8BC8(void); -void sub_80E8D4C(void); +void ClearSecretBases(void); +void SetCurSecretBaseIdFromPosition(const struct MapPosition *position, const struct MapEvents *events); +void TrySetCurSecretBaseIndex(void); +void CheckPlayerHasSecretBase(void); +void ToggleSecretBaseEntranceMetatile(void); void EnableBothScriptContexts(void); void ReceiveSecretBasesData(void *records, size_t recordSize, u8 linkIdx); - - #endif //GUARD_SECRET_BASE_H diff --git a/include/shop.h b/include/shop.h index 1e4ffdb5c..9a5f8eb14 100644 --- a/include/shop.h +++ b/include/shop.h @@ -5,9 +5,9 @@ extern EWRAM_DATA struct ItemSlot gMartPurchaseHistory[3]; enum { - MART_TYPE_0, // normal mart - MART_TYPE_1, - MART_TYPE_2, + MART_TYPE_NORMAL, // normal mart + MART_TYPE_DECOR, + MART_TYPE_DECOR2, }; // shop view window NPC info enum @@ -49,4 +49,4 @@ void CreateDecorationShop1Menu(const u16 *); void CreateDecorationShop2Menu(const u16 *); void CB2_ExitSellMenu(void); -#endif // GUARD_SHOP_H +#endif // GUARD_SHOP_H
\ No newline at end of file diff --git a/include/strings.h b/include/strings.h index cb54afb13..964c46ef2 100644 --- a/include/strings.h +++ b/include/strings.h @@ -132,7 +132,7 @@ extern const u8 gText_ApostropheSBase[]; extern const u8 gText_NoRegistry[]; extern const u8 gText_OkayToDeleteFromRegistry[]; extern const u8 gText_RegisteredDataDeleted[]; -extern const u8 gUnknown_085EA79D[]; +extern const u8 gText_DelRegist[]; extern const u8 gText_CommErrorEllipsis[]; extern const u8 gText_MoveCloserToLinkPartner[]; extern const u8 gText_CommErrorCheckConnections[]; @@ -471,6 +471,12 @@ extern const u8 gText_EggCantBattle[]; extern const u8 gText_PkmnAlreadySelected[]; extern const u8 gText_PkmnAlreadyInBattle[]; extern const u8 gText_PkmnCantSwitchOut[]; +extern const u8 gUnknown_085EEA46[]; +extern const u8 gUnknown_085EEA4E[]; +extern const u8 gUnknown_085EEA55[]; +extern const u8 gUnknown_085EEA63[]; +extern const u8 gUnknown_085EEA6B[]; +extern const u8 gUnknown_085EEA5D[]; extern const u8 gText_Dash[]; extern const u8 gText_UnkCtrlF904[]; @@ -1002,18 +1008,21 @@ extern const u8 gText_SomeonesPC[]; extern const u8 gText_PlayersPC[]; extern const u8 gText_WhichPCShouldBeAccessed[]; -extern const u8 gText_Navgear_ClearButtonList[]; -extern const u8 gText_NavgearMap_ZoomedOutButtons[]; -extern const u8 gText_NavgearMap_ZoomedInButtons[]; -extern const u8 gText_NavgearCondition_MonListButtons[]; -extern const u8 gText_NavgearCondition_MonStatusButtons[]; -extern const u8 gText_NavgearCondition_MarkingButtons[]; -extern const u8 gText_NavgearMatchCall_TrainerListButtons[]; -extern const u8 gText_NavgearMatchCall_CallMenuButtons[]; -extern const u8 gText_NavgearMatchCall_CheckTrainerButtons[]; -extern const u8 gText_NavgearRibbons_MonListButtons[]; -extern const u8 gText_NavgearRibbons_RibbonListButtons[]; -extern const u8 gText_NavgearRibbons_RibbonCheckButtons[]; +extern const u8 gText_PokenavMatchCall_Strategy[]; +extern const u8 gText_PokenavMatchCall_TrainerPokemon[]; +extern const u8 gText_PokenavMatchCall_SelfIntroduction[]; +extern const u8 gText_Pokenav_ClearButtonList[]; +extern const u8 gText_PokenavMap_ZoomedOutButtons[]; +extern const u8 gText_PokenavMap_ZoomedInButtons[]; +extern const u8 gText_PokenavCondition_MonListButtons[]; +extern const u8 gText_PokenavCondition_MonStatusButtons[]; +extern const u8 gText_PokenavCondition_MarkingButtons[]; +extern const u8 gText_PokenavMatchCall_TrainerListButtons[]; +extern const u8 gText_PokenavMatchCall_CallMenuButtons[]; +extern const u8 gText_PokenavMatchCall_CheckTrainerButtons[]; +extern const u8 gText_PokenavRibbons_MonListButtons[]; +extern const u8 gText_PokenavRibbons_RibbonListButtons[]; +extern const u8 gText_PokenavRibbons_RibbonCheckButtons[]; extern const u8 gUnknown_085EAD37[]; extern const u8 gUnknown_085EAD41[]; @@ -2699,4 +2708,11 @@ extern const u8 gText_Symbols[]; extern const u8 gText_Register2[]; extern const u8 gText_Exit2[]; +// Pokenav Match Call +extern const u8 gText_CallCantBeMadeHere[]; +extern const u8 gText_NumberRegistered[]; +extern const u8 gText_NumberOfBattles[]; +extern const u8 gText_Unknown[]; +extern const u8 gText_TrainerCloseBy[]; + #endif // GUARD_STRINGS_H diff --git a/include/trader.h b/include/trader.h index c07ea81bd..25d72bd3b 100644 --- a/include/trader.h +++ b/include/trader.h @@ -6,7 +6,7 @@ #define GUARD_TRADER_H void sub_8133DA0(u8 taskId); -void sub_8133E1C(u8 taskId); +void ExitTraderMenu(u8 taskId); void TraderSetup(void); void Trader_ResetFlag(void); diff --git a/include/union_room.h b/include/union_room.h index 538d37716..facc63986 100644 --- a/include/union_room.h +++ b/include/union_room.h @@ -162,7 +162,6 @@ extern u8 gUnknown_02022C3E; // Exported ROM declarations u8 sub_8013F78(void); -bool32 sub_802C908(u16); void nullsub_89(u8 taskId); void var_800D_set_xB(void); void MEvent_CreateTask_CardOrNewsWithFriend(u32 arg0); |