diff options
Diffstat (limited to 'include')
81 files changed, 2028 insertions, 1145 deletions
diff --git a/include/bard_music.h b/include/bard_music.h index 488205405..882606b27 100644 --- a/include/bard_music.h +++ b/include/bard_music.h @@ -38,7 +38,7 @@ struct BardSong // Exported ROM declarations -extern const u16 gUnknown_085F5490; +extern const u16 gNumSpeciesNames; extern const u16 gUnknown_085FA1D4; const struct BardSound *GetWordSounds(u16 word); void GetWordPhonemes(struct BardSong *song, u16 word); diff --git a/include/battle.h b/include/battle.h index d155ca5a0..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; @@ -564,9 +501,7 @@ struct BattleScripting }; // rom_80A5C6C -u8 GetBattlerSide(u8 battler); -u8 GetBattlerPosition(u8 battler); -u8 GetBattlerAtPosition(u8 position); + struct BattleSpriteInfo { diff --git a/include/battle_anim.h b/include/battle_anim.h index b3350f893..949bc236b 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -73,7 +73,7 @@ void sub_8118FBC(int bgId, u8 arg1, u8 arg2, u8 battlerPosition, u8 arg4, u8 *ar void HandleIntroSlide(u8 terrainId); int GetAnimBgAttribute(u8 bgId, u8 attributeId); -// battle_anim_80A5C6C.s +// battle_anim_mons.s void TranslateSpriteInEllipseOverDuration(struct Sprite *sprite); void sub_80A8AEC(struct Sprite *sprite); void sub_80A8A6C(struct Sprite *sprite); @@ -155,6 +155,9 @@ void sub_80A6DEC(struct Sprite *sprite); void DestroyAnimVisualTaskAndDisableBlend(u8 taskId); void DestroySpriteAndFreeResources_(struct Sprite *sprite); void SetBattlerSpriteYOffsetFromOtherYScale(u8 spriteId, u8 otherSpriteId); +u8 GetBattlerSide(u8 battler); +u8 GetBattlerPosition(u8 battler); +u8 GetBattlerAtPosition(u8 position); enum { @@ -193,7 +196,7 @@ u8 GetSubstituteSpriteDefault_Y(u8 battlerId); void sub_80A64EC(struct Sprite *sprite); void sub_80A718C(struct Sprite *sprite); -// battle_anim_80A9C70.s +// battle_anim_status_effects.s #define STAT_ANIM_PLUS1 15 #define STAT_ANIM_PLUS2 39 #define STAT_ANIM_MINUS1 22 @@ -204,13 +207,11 @@ void sub_80A718C(struct Sprite *sprite); #define STAT_ANIM_MULTIPLE_MINUS2 58 void LaunchStatusAnimation(u8 battlerId, u8 statusAnimId); -// battle_anim_8170478.c -void sub_8172EF0(u8 battler, struct Pokemon *mon); - // ground.c void sub_81152DC(u8 taskId); -// battle_anim_8170478.s +// battle_anim_special.c +void sub_8172EF0(u8 battler, struct Pokemon *mon); u8 ItemIdToBallId(u16 itemId); u8 AnimateBallOpenParticles(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId); u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 battlerId, u32 selectedPalettes, u8 ballId); diff --git a/include/battle_setup.h b/include/battle_setup.h index 3b327e3f7..984c820bb 100644 --- a/include/battle_setup.h +++ b/include/battle_setup.h @@ -1,10 +1,10 @@ #ifndef GUARD_BATTLE_SETUP_H #define GUARD_BATTLE_SETUP_H +#include "gym_leader_rematch.h" + #define REMATCHES_COUNT 5 -#define REMATCH_TABLE_ENTRIES 78 -#define REMATCH_WALLY_ENTRY 64 -#define REMATCH_ELITE_FOUR_ENTRIES 73 +#define REMATCH_ELITE_FOUR_ENTRIES REMATCH_SIDNEY struct RematchTrainer { diff --git a/include/berry_crush.h b/include/berry_crush.h new file mode 100755 index 000000000..101450a33 --- /dev/null +++ b/include/berry_crush.h @@ -0,0 +1,6 @@ +#ifndef GUARD_BERRY_CRUSH_H +#define GUARD_BERRY_CRUSH_H + +void sub_8020C70(MainCallback callback); + +#endif // GUARD_BERRY_CRUSH_H diff --git a/include/berry_powder.h b/include/berry_powder.h new file mode 100755 index 000000000..8deea7ec0 --- /dev/null +++ b/include/berry_powder.h @@ -0,0 +1,9 @@ +#ifndef GUARD_BERRY_POWDER_H +#define GUARD_BERRY_POWDER_H + +void SetBerryPowder(u32 *powder, u32 amount); +void ApplyNewEncryptionKeyToBerryPowder(u32 encryptionKey); +bool8 GiveBerryPowder(u32 amountToAdd); +u32 GetBerryPowder(void); + +#endif // GUARD_BERRY_POWDER_H diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h index 34a45395c..1209dfa19 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_RED_BRICK (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/battle_script_commands.h b/include/constants/battle_script_commands.h index e8a2980a5..894bd13b6 100644 --- a/include/constants/battle_script_commands.h +++ b/include/constants/battle_script_commands.h @@ -95,8 +95,6 @@ // statchange defines #define STAT_CHANGE_BS_PTR 0x1 #define STAT_CHANGE_NOT_PROTECT_AFFECTED 0x20 -#define STAT_CHANGE_WORKED 0 -#define STAT_CHANGE_DIDNT_WORK 1 // atk48 #define ATK48_STAT_NEGATIVE 0x1 @@ -104,6 +102,26 @@ #define ATK48_ONLY_MULTIPLE 0x4 #define ATK48_DONT_CHECK_LOWER 0x8 +// atk49, moveend cases +#define ATK49_RAGE 0 +#define ATK49_DEFROST 1 +#define ATK49_SYNCHRONIZE_TARGET 2 +#define ATK49_MOVE_END_ABILITIES 3 +#define ATK49_STATUS_IMMUNITY_ABILITIES 4 +#define ATK49_SYNCHRONIZE_ATTACKER 5 +#define ATK49_CHOICE_MOVE 6 +#define ATK49_CHANGED_ITEMS 7 +#define ATK49_ATTACKER_INVISIBLE 8 +#define ATK49_ATTACKER_VISIBLE 9 +#define ATK49_TARGET_VISIBLE 10 +#define ATK49_ITEM_EFFECTS_ALL 11 +#define ATK49_KINGSROCK_SHELLBELL 12 +#define ATK49_SUBSTITUTE 13 +#define ATK49_UPDATE_LAST_MOVES 14 +#define ATK49_MIRROR_MOVE 15 +#define ATK49_NEXT_TARGET 16 +#define ATK49_COUNT 17 + #define BIT_HP 0x1 #define BIT_ATK 0x2 #define BIT_DEF 0x4 diff --git a/include/constants/event_object_movement_constants.h b/include/constants/event_object_movement_constants.h index 2a80f9a09..b1f9b4cb5 100755 --- a/include/constants/event_object_movement_constants.h +++ b/include/constants/event_object_movement_constants.h @@ -242,4 +242,6 @@ #define MOVEMENT_ACTION_FLY_UP 0x9C #define MOVEMENT_ACTION_FLY_DOWN 0x9D +#define MOVEMENT_ACTION_STEP_END 0xFE + #endif // GUARD_CONSTANTS_EVENTOBJMV_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/field_effects.h b/include/constants/field_effects.h index 282f9ce75..00ca60457 100644 --- a/include/constants/field_effects.h +++ b/include/constants/field_effects.h @@ -1,7 +1,7 @@ #ifndef GUARD_FIELD_EFFECT_CONSTANTS_H #define GUARD_FIELD_EFFECT_CONSTANTS_H -#define FLDEFF_EXCLAMATION_MARK_ICON 0 +#define FLDEFF_EXCLAMATION_MARK_ICON 0 #define FLDEFF_USE_CUT_ON_GRASS 1 #define FLDEFF_USE_CUT_ON_TREE 2 #define FLDEFF_SHADOW 3 @@ -61,11 +61,11 @@ #define FLDEFF_SECRET_POWER_SHRUB 57 #define FLDEFF_CUT_GRASS 58 #define FLDEFF_FIELD_MOVE_SHOW_MON_INIT 59 -#define FLDEFF_USE_TOMB_PUZZLE_EFFECT 60 +#define FLDEFF_USE_TOMB_PUZZLE_EFFECT 60 #define FLDEFF_PCTURN_ON 61 #define FLDEFF_HALL_OF_FAME_RECORD 62 #define FLDEFF_USE_TELEPORT 63 -#define FLDEFF_64 64 +#define FLDEFF_RAYQUAZA 64 #define FLDEFF_65 65 #define FLDEFF_MOVE_DEOXYS_ROCK 66 diff --git a/include/constants/flags.h b/include/constants/flags.h index 230fbabaf..c56e9013d 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 @@ -336,24 +336,23 @@ #define FLAG_RECEIVED_AURORA_TICKET 0x13A // RECEIVED Aurora Ticket in Mystery Gift #define FLAG_RECEIVED_MYSTIC_TICKET 0x13B // RECEIVED Mystic Ticket in Mystery Gift #define FLAG_RECEIVED_OLD_SEA_MAP 0x13C // RECEIVED Old Sea Map in Mystery Gift - -#define FLAG_UNUSED_0x13D 0x13D // Unused Flag -#define FLAG_UNUSED_0x13E 0x13E // Unused Flag -#define FLAG_UNUSED_0x13F 0x13F // Unused Flag -#define FLAG_UNUSED_0x140 0x140 // Unused Flag -#define FLAG_UNUSED_0x141 0x141 // Unused Flag -#define FLAG_UNUSED_0x142 0x142 // Unused Flag -#define FLAG_UNUSED_0x143 0x143 // Unused Flag -#define FLAG_UNUSED_0x144 0x144 // Unused Flag -#define FLAG_UNUSED_0x145 0x145 // Unused Flag -#define FLAG_UNUSED_0x146 0x146 // Unused Flag -#define FLAG_UNUSED_0x147 0x147 // Unused Flag -#define FLAG_UNUSED_0x148 0x148 // Unused Flag -#define FLAG_UNUSED_0x149 0x149 // Unused Flag -#define FLAG_UNUSED_0x14A 0x14A // Unused Flag -#define FLAG_UNUSED_0x14B 0x14B // Unused Flag -#define FLAG_UNUSED_0x14C 0x14C // Unused Flag -#define FLAG_UNUSED_0x14D 0x14D // Unused Flag +#define FLAG_UNUSED_MYSTERY_GIFT_0x13D 0x13D +#define FLAG_UNUSED_MYSTERY_GIFT_0x13E 0x13E +#define FLAG_UNUSED_MYSTERY_GIFT_0x13F 0x13F +#define FLAG_UNUSED_MYSTERY_GIFT_0x140 0x140 +#define FLAG_UNUSED_MYSTERY_GIFT_0x141 0x141 +#define FLAG_UNUSED_MYSTERY_GIFT_0x142 0x142 +#define FLAG_UNUSED_MYSTERY_GIFT_0x143 0x143 +#define FLAG_UNUSED_MYSTERY_GIFT_0x144 0x144 +#define FLAG_UNUSED_MYSTERY_GIFT_0x145 0x145 +#define FLAG_UNUSED_MYSTERY_GIFT_0x146 0x146 +#define FLAG_UNUSED_MYSTERY_GIFT_0x147 0x147 +#define FLAG_UNUSED_MYSTERY_GIFT_0x148 0x148 +#define FLAG_UNUSED_MYSTERY_GIFT_0x149 0x149 +#define FLAG_UNUSED_MYSTERY_GIFT_0x14A 0x14A +#define FLAG_UNUSED_MYSTERY_GIFT_0x14B 0x14B +#define FLAG_UNUSED_MYSTERY_GIFT_0x14C 0x14C +#define FLAG_UNUSED_MYSTERY_GIFT_0x14D 0x14D #define FLAG_MIRAGE_TOWER_VISIBLE 0x14E #define FLAG_CHOSE_CLAW_FOSSIL 0x14F // Player chose Claw Fossil @@ -446,13 +445,14 @@ #define FLAG_REMATCH_NORMAN 0x1A2 #define FLAG_REMATCH_WINONA 0x1A3 #define FLAG_REMATCH_TATE_AND_LIZA 0x1A4 -#define FLAG_REMATCH_JUAN 0x1A5 -#define FLAG_REMATCH_SIDNEY 0x1A6 -#define FLAG_REMATCH_PHOEBE 0x1A7 -#define FLAG_REMATCH_GLACIA 0x1A8 -#define FLAG_REMATCH_DRAKE 0x1A9 -#define FLAG_REMATCH_WALLACE 0x1AA - +// Note: FLAG_REMATCH_JUAN is handled by FLAG_ENABLE_JUAN_MATCH_CALL instead. +#define FLAG_REMATCH_SIDNEY 0x1A5 +#define FLAG_REMATCH_PHOEBE 0x1A6 +#define FLAG_REMATCH_GLACIA 0x1A7 +#define FLAG_REMATCH_DRAKE 0x1A8 +#define FLAG_REMATCH_WALLACE 0x1A9 + +#define FLAG_UNUSED_0x1AA 0x1AA // Unused Flag #define FLAG_UNUSED_0x1AB 0x1AB // Unused Flag #define FLAG_DEFEATED_DEOXYS 0x1AC diff --git a/include/constants/game_stat.h b/include/constants/game_stat.h index 7ebf3501b..e302f1345 100644 --- a/include/constants/game_stat.h +++ b/include/constants/game_stat.h @@ -51,7 +51,7 @@ #define GAME_STAT_USED_DAYCARE 47 #define GAME_STAT_RODE_CABLE_CAR 48 #define GAME_STAT_ENTERED_HOT_SPRINGS 49 -#define GAME_STAT_50 50 +#define GAME_STAT_NUM_UNION_ROOM_BATTLES 50 #define GAME_STAT_51 51 #define NUM_USED_GAME_STATS 52 diff --git a/include/constants/maps.h b/include/constants/maps.h index e1e2da992..b849749a9 100644 --- a/include/constants/maps.h +++ b/include/constants/maps.h @@ -9,4 +9,10 @@ #define MAP_GROUP(map) (MAP_##map >> 8) #define MAP_NUM(map) (MAP_##map & 0xFF) +// These groups are used by pokedex_area_screen.c to find wild +// pokemon locations. +#define MAP_GROUP_OVERWORLD_MONS MAP_GROUP(PETALBURG_CITY) +#define MAP_GROUP_SPECIAL_MONS_1 MAP_GROUP(METEOR_FALLS_1F_1R) +#define MAP_GROUP_SPECIAL_MONS_2 MAP_GROUP(SAFARI_ZONE_NORTHWEST) + #endif // GUARD_CONSTANTS_MAPS_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 a459edd24..3778d5f08 100644 --- a/include/constants/songs.h +++ b/include/constants/songs.h @@ -467,7 +467,7 @@ #define MUS_RG_UNION 539 // Union Room #define MUS_RG_NETWORK 540 // Network Center #define MUS_RG_OKURIMONO 541 // Mystery Gift -#define MUS_RG_KINOMIKUI 542 +#define MUS_RG_KINOMIKUI 542 // Dodrio Berry Picking #define MUS_RG_NANADUNGEON 543 // Sevii Caves/Altering Cave (Mt. Moon) #define MUS_RG_OSHIE_TV 544 // Follow Me! #define MUS_RG_NANASHIMA 545 // Sevii Islands Routes (Lake of Rage) @@ -538,4 +538,6 @@ #define MUS_ROUTE_118 0x7FFF // map is split into 2 music sections. controlled by GetCurrLocationDefaultMusic(). +#define MUS_NONE 0xFFFF + #endif // GUARD_CONSTANTS_SONGS_H diff --git a/include/constants/vars.h b/include/constants/vars.h index c025d62fc..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 @@ -60,7 +58,7 @@ #define VAR_POISON_STEP_COUNTER 0x402B #define VAR_RESET_RTC_ENABLE 0x402C #define VAR_ENIGMA_BERRY_AVAILABLE 0x402D -#define VAR_UNUSED_0x402E 0x402E // Unused Var +#define VAR_0x402E 0x402E #define VAR_FRONTIER_MANIAC_FACILITY 0x402F #define VAR_FRONTIER_GAMBLER_FACILITY 0x4030 @@ -74,7 +72,7 @@ #define VAR_UNUSUAL_WEATHER_LOCATION 0x4037 #define VAR_UNUSUAL_WEATHER_STEP_COUNTER 0x4038 #define VAR_SHOULD_END_UNUSUAL_WEATHER 0x4039 -#define VAR_NEVER_READ_0x403A 0x403A // Var is written to, but never checked +#define VAR_FARAWAY_ISLAND_STEP_COUNTER 0x403A #define VAR_REGICE_STEPS_1 0x403B #define VAR_REGICE_STEPS_2 0x403C #define VAR_REGICE_STEPS_3 0x403D @@ -84,7 +82,7 @@ #define VAR_FANCLUB_UNKNOWN_1 0x4041 #define VAR_FANCLUB_UNKNOWN_2 0x4042 #define VAR_DEPT_STORE_FLOOR 0x4043 -#define VAR_0x4044 0x4044 +#define VAR_TRICK_HOUSE_LEVEL 0x4044 #define VAR_POKELOT_PRIZE_ITEM 0x4045 #define VAR_NATIONAL_DEX 0x4046 #define VAR_SEEDOT_SIZE_RECORD 0x4047 diff --git a/include/contest.h b/include/contest.h index 8146486cb..a0b1a6b34 100644 --- a/include/contest.h +++ b/include/contest.h @@ -196,19 +196,33 @@ enum CONTEST_STRING_NONE = 255 }; +enum { + CONTEST_RANK_NORMAL, + CONTEST_RANK_SUPER, + CONTEST_RANK_HYPER, + CONTEST_RANK_MASTER, + CONTEST_RANK_LINK +}; + +enum { + CONTEST_FILTER_NONE, + CONTEST_FILTER_NO_POSTGAME, + CONTEST_FILTER_ONLY_POSTGAME +}; + struct ContestPokemon { /*0x00*/ u16 species; /*0x02*/ u8 nickname[POKEMON_NAME_LENGTH + 1]; - /*0x0D*/ u8 trainerName[8]; + /*0x0D*/ u8 trainerName[PLAYER_NAME_LENGTH + 1]; /*0x15*/ u8 trainerGfxId; /*0x18*/ u32 flags; - /*0x1C*/ u8 whichRank:2; - u8 aiPool_Cool:1; - u8 aiPool_Beauty:1; - u8 aiPool_Cute:1; - u8 aiPool_Smart:1; - u8 aiPool_Tough:1; + /*0x1C*/ u8 whichRank:2; // 0x1 0x2 + u8 aiPool_Cool:1; // 0x4 + u8 aiPool_Beauty:1; // 0x8 + u8 aiPool_Cute:1; // 0x10 + u8 aiPool_Smart:1; // 0x20 + u8 aiPool_Tough:1; // 0x40 /*0x1E*/ u16 moves[4]; // moves /*0x26*/ u8 cool; // cool /*0x27*/ u8 beauty; // beauty @@ -219,7 +233,7 @@ struct ContestPokemon /*0x2C*/ u8 unk2C[12]; /*0x38*/ u32 personality; // personality /*0x3C*/ u32 otId; // otId -}; // wow +}; struct Shared18000 { diff --git a/include/contest_effect.h b/include/contest_effect.h index 5f48e1b8b..0474cb38c 100644 --- a/include/contest_effect.h +++ b/include/contest_effect.h @@ -19,6 +19,7 @@ struct ContestEffect extern const struct ContestMove gContestMoves[]; extern const struct ContestEffect gContestEffects[]; extern const u8 *const gContestEffectDescriptionPointers[]; +extern const u8 *const gContestMoveTypeTextPointers[]; bool8 AreMovesContestCombo(u16 lastMove, u16 nextMove); 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/ereader_helpers.h b/include/ereader_helpers.h new file mode 100755 index 000000000..bcbb68d4f --- /dev/null +++ b/include/ereader_helpers.h @@ -0,0 +1,51 @@ +#ifndef GUARD_EREADER_HELPERS_H +#define GUARD_EREADER_HELPERS_H + +struct Unk81D38FC +{ + u8 unk0; + u8 filler_1[3]; + u8 unk4[0x148]; + u8 unk14C[0x124]; + int checksum; +}; + +struct EReaderTrainerHillSet +{ + u8 unk_0; + u8 unk_1; + u8 unk_2; + u8 unk_3; + int checksum; + struct Unk81D38FC unk_8[6]; + u8 unk_ec0[40]; +}; + +struct Unk81D3998Sub +{ + u8 unk_000[4]; + u8 unk_004[0x148]; + u8 unk_14C[0x148]; + u8 unk_294[0x124]; +}; + +struct Unk81D3998 +{ + u8 unk_000; + u8 unk_001; + u8 unk_002; + int checksum; + struct Unk81D3998Sub unk_008[4]; +}; + +bool8 EReader_IsReceivedDataValid(struct EReaderTrainerHillSet *buffer); +bool32 TryWriteTrainerHill(struct EReaderTrainerHillSet *arg0); +bool32 ReadTrainerHillAndValidate(void); +int sub_81D3D70(u8, u32, u32*, u32*); +void sub_81D3F9C(void); +void sub_81D3FAC(void); +void sub_81D41A0(void); +void sub_81D41F4(void); +void sub_81D4238(void); + +#endif // GUARD_EREADER_HELPERS_H diff --git a/include/ereader_screen.h b/include/ereader_screen.h new file mode 100755 index 000000000..1daea4be0 --- /dev/null +++ b/include/ereader_screen.h @@ -0,0 +1,6 @@ +#ifndef GUARD_EREADER_SCREEN_H +#define GUARD_EREADER_SCREEN_H + +void task_add_00_ereader(void); + +#endif // GUARD_EREADER_SCREEN_H diff --git a/include/event_obj_lock.h b/include/event_obj_lock.h index 2f09ad36a..037c0080d 100644 --- a/include/event_obj_lock.h +++ b/include/event_obj_lock.h @@ -8,5 +8,6 @@ void LockSelectedEventObject(void); void sub_8098630(void); bool8 sub_8098734(void); void ScriptUnfreezeEventObjects(void); +void sub_8098524(void); #endif // GUARD_EVENT_OBJ_LOCK_H diff --git a/include/event_object_movement.h b/include/event_object_movement.h index 63ac09f2d..4f3f99cd1 100644 --- a/include/event_object_movement.h +++ b/include/event_object_movement.h @@ -74,10 +74,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,10 +86,10 @@ 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 sub_8093038(s16, s16, s16 *, s16 *); +void SetSpritePosToMapCoords(s16, s16, s16 *, s16 *); void CameraObjectReset1(void); void EventObjectSetGraphicsId(struct EventObject *, u8 graphicsId); void EventObjectTurn(struct EventObject *, u8); @@ -103,8 +103,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); @@ -413,5 +413,10 @@ u8 MovementType_RunInPlace_Step0(struct EventObject *, struct Sprite *); u8 MovementType_Invisible_Step0(struct EventObject *, struct Sprite *); u8 MovementType_Invisible_Step1(struct EventObject *, struct Sprite *); u8 MovementType_Invisible_Step2(struct EventObject *, struct Sprite *); +void sub_8097C44(u8 var, bool32 var2); +bool32 sub_8097C8C(u8 var); +void sub_8097BB4(u8 var1, u8 graphicsId); +void sub_8097CC4(u8 var1, u8 var2); +bool32 sub_8097D9C(u8 var); #endif //GUARD_FIELD_EVENT_OBJ_H diff --git a/include/event_scripts.h b/include/event_scripts.h index e3ec8afb4..da96d29d8 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -15,8 +15,8 @@ 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 gTVBravoTrainerText00[]; @@ -381,10 +381,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 +528,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[]; @@ -544,9 +542,9 @@ extern const u8 EventScript_RegionMap[]; extern const u8 EventScript_RunningShoesManual[]; extern const u8 EventScript_PictureBookShelf[]; extern const u8 EventScript_BookShelf[]; -extern const u8 EventScript_PokemonCenterBookshelf[]; +extern const u8 EventScript_PokemonCenterBookShelf[]; extern const u8 EventScript_Vase[]; -extern const u8 EventScript_TrashCan[]; +extern const u8 EventScript_EmptyTrashCan[]; extern const u8 EventScript_ShopShelf[]; extern const u8 EventScript_Blueprint[]; extern const u8 EventScript_WirelessBoxResults[]; diff --git a/include/faraway_island.h b/include/faraway_island.h new file mode 100755 index 000000000..4946bda8a --- /dev/null +++ b/include/faraway_island.h @@ -0,0 +1,10 @@ +#ifndef GUARD_FARAWAY_ISLAND_H +#define GUARD_FARAWAY_ISLAND_H + +u32 GetMewMoveDirection(void); +bool8 sub_81D4A58(struct EventObject*); +void UpdateFarawayIslandStepCounter(void); +bool8 EventObjectIsFarawayIslandMew(struct EventObject *); +bool8 IsMewPlayingHideAndSeek(void); + +#endif // GUARD_FARAWAY_ISLAND_H 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_player_avatar.h b/include/field_player_avatar.h index ca3d41546..8d87779e6 100644 --- a/include/field_player_avatar.h +++ b/include/field_player_avatar.h @@ -1,17 +1,6 @@ #ifndef GUARD_FIELD_PLAYER_AVATAR_H #define GUARD_FIELD_PLAYER_AVATAR_H -enum { - PLAYER_AVATAR_STATE_NORMAL, - PLAYER_AVATAR_STATE_MACH_BIKE, - PLAYER_AVATAR_STATE_ACRO_BIKE, - PLAYER_AVATAR_STATE_SURFING, - PLAYER_AVATAR_STATE_UNDERWATER, - PLAYER_AVATAR_STATE_FIELD_MOVE, - PLAYER_AVATAR_STATE_FISHING, - PLAYER_AVATAR_STATE_WATERING, -}; - void player_step(u8 a, u16 b, u16 c); void ClearPlayerAvatarInfo(void); void SetPlayerAvatarExtraStateTransition(u8, u8); @@ -73,5 +62,6 @@ void sub_808D1C8(void); bool32 sub_808D1B4(void); bool32 sub_808D1E8(void); void sub_808C0A8(u8 a); +u8 player_get_pos_including_state_based_drift(s16 *x, s16 *y); #endif // GUARD_FIELD_PLAYER_AVATAR_H diff --git a/include/field_screen_effect.h b/include/field_screen_effect.h index b4429c167..a62a76b2a 100644 --- a/include/field_screen_effect.h +++ b/include/field_screen_effect.h @@ -5,7 +5,7 @@ void pal_fill_for_maplights(void); void pal_fill_black(void); void WarpFadeScreen(void); void sub_80AF128(void); -void sub_80AF168(void); +void FieldCallback_ReturnToEventScript2(void); void sub_80AF188(void); void sub_80AF214(void); void sub_80AF2B4(u8 taskId); 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/field_weather.h b/include/field_weather.h index 76399200d..3a84a8a73 100644 --- a/include/field_weather.h +++ b/include/field_weather.h @@ -3,6 +3,14 @@ #include "sprite.h" +#define MAX_RAIN_SPRITES 24 +#define NUM_CLOUD_SPRITES 3 +#define NUM_FOG1_SPRITES 20 +#define NUM_ASH_SPRITES 20 +#define NUM_FOG2_SPRITES 20 +#define NUM_SANDSTORM_SPRITES 20 +#define NUM_SWIRL_SANDSTORM_SPRITES 5 + // Controls how the weather should be changing the screen palettes. enum { @@ -27,18 +35,18 @@ struct Weather { struct { - struct Sprite *rainSprites[24]; + struct Sprite *rainSprites[MAX_RAIN_SPRITES]; struct Sprite *snowflakeSprites[101]; - struct Sprite *cloudSprites[3]; + struct Sprite *cloudSprites[NUM_CLOUD_SPRITES]; } s1; struct { u8 filler0[0xA0]; - struct Sprite *fog1Sprites[20]; - struct Sprite *ashSprites[20]; - struct Sprite *fog2Sprites[20]; - struct Sprite *sandstormSprites1[20]; - struct Sprite *sandstormSprites2[5]; + struct Sprite *fog1Sprites[NUM_FOG1_SPRITES]; + struct Sprite *ashSprites[NUM_ASH_SPRITES]; + struct Sprite *fog2Sprites[NUM_FOG2_SPRITES]; + struct Sprite *sandstormSprites1[NUM_SANDSTORM_SPRITES]; + struct Sprite *sandstormSprites2[NUM_SWIRL_SANDSTORM_SPRITES]; } s2; } sprites; u8 gammaShifts[19][32]; @@ -62,57 +70,57 @@ struct Weather bool8 weatherChangeComplete; u8 weatherPicSpritePalIndex; u8 altGammaSpritePalIndex; - u16 unknown_6D6; - u8 unknown_6D8; - u8 unknown_6D9; + u16 rainSpriteVisibleCounter; + u8 curRainSpriteIndex; + u8 targetRainSpriteCount; u8 rainSpriteCount; - u8 unknown_6DB; - u8 unknown_6DC; + u8 rainSpriteVisibleDelay; + u8 isHeavyRain; u8 rainStrength; /*0x6DE*/ u8 cloudSpritesCreated; u8 filler_6DF[1]; - u16 unknown_6E0; + u16 snowflakeVisibleCounter; u16 unknown_6E2; u8 snowflakeSpriteCount; - u8 unknown_6E5; + u8 targetSnowflakeSpriteCount; u16 unknown_6E6; u16 thunderCounter; u8 unknown_6EA; u8 unknown_6EB; u8 unknown_6EC; - u8 unknown_6ED; + u8 thunderTriggered; u16 fog1ScrollPosX; - u16 unknown_6F0; - u16 unknown_6F2; + u16 fog1ScrollCounter; + u16 fog1ScrollOffset; u8 lightenedFogSpritePals[6]; u8 lightenedFogSpritePalsCount; u8 fog1SpritesCreated; - u16 unknown_6FC; + u16 ashBaseSpritesX; u16 unknown_6FE; u8 ashSpritesCreated; u8 filler_701[3]; - u32 unknown_704; - u32 unknown_708; + u32 sandstormXOffset; + u32 sandstormYOffset; u8 filler_70C[2]; - u16 unknown_70E; - u16 unknown_710; - u16 unknown_712; - u16 unknown_714; - u8 sandstormSprites1Created; - u8 sandstormSprites2Created; - u16 unknown_718; - u16 unknown_71A; - u16 unknown_71C; - u16 unknown_71E; - u16 unknown_720; - u16 unknown_722; + u16 sandstormBaseSpritesX; + u16 sandstormPosY; + u16 sandstormWaveIndex; + u16 sandstormWaveCounter; + u8 sandstormSpritesCreated; + u8 sandstormSwirlSpritesCreated; + u16 fog2BaseSpritesX; + u16 fog2PosY; + u16 fog2ScrollXCounter; + u16 fog2ScrollYCounter; + u16 fog2XOffset; + u16 fog2YOffset; u8 fog2SpritesCreated; u8 filler_725[1]; - u16 unknown_726; - u16 unknown_728; - u16 unknown_72A; - u16 unknown_72C; - u8 unknown_72E; + u16 bubblesDelayCounter; + u16 bubblesDelayIndex; + u16 bubblesCoordsIndex; + u16 bubblesSpriteCount; + u8 bubblesSpritesCreated; u8 filler_72F; u16 currBlendEVA; u16 currBlendEVB; @@ -174,10 +182,10 @@ void Clouds_InitVars(void); void Clouds_Main(void); void Clouds_InitAll(void); bool8 Clouds_Finish(void); -void Weather2_InitVars(void); -void Weather2_Main(void); -void Weather2_InitAll(void); -bool8 Weather2_Finish(void); +void Sunny_InitVars(void); +void Sunny_Main(void); +void Sunny_InitAll(void); +bool8 Sunny_Finish(void); void LightRain_InitVars(void); void LightRain_Main(void); void LightRain_InitAll(void); diff --git a/include/fieldmap.h b/include/fieldmap.h index bb5b0e290..2384ed46a 100644 --- a/include/fieldmap.h +++ b/include/fieldmap.h @@ -50,5 +50,6 @@ void SpriteCB_HallOfFameMonitor(struct Sprite *); // field_region_map.c void FieldInitRegionMap(MainCallback callback); +void sub_8088B94(int x, int y, int a2); #endif //GUARD_FIELDMAP_H diff --git a/include/fldeff.h b/include/fldeff.h index e095396a4..ff6c9823f 100644 --- a/include/fldeff.h +++ b/include/fldeff.h @@ -10,6 +10,7 @@ void FixLongGrassMetatilesWindowTop(s16 x, s16 y); void FixLongGrassMetatilesWindowBottom(s16 x, s16 y); extern const struct SpritePalette gFieldEffectObjectPaletteInfo6; +extern struct MapPosition gPlayerFacingPosition; // groundshake bool8 sub_81BE66C(void); diff --git a/include/gba/types.h b/include/gba/types.h index 3d78b5b5e..9f2594703 100644 --- a/include/gba/types.h +++ b/include/gba/types.h @@ -87,6 +87,29 @@ struct OamData #define ST_OAM_H_RECTANGLE 1 #define ST_OAM_V_RECTANGLE 2 +#define ST_OAM_SIZE_0 0 +#define ST_OAM_SIZE_1 1 +#define ST_OAM_SIZE_2 2 +#define ST_OAM_SIZE_3 3 + +#define SPRITE_SIZE_8x8 ((ST_OAM_SIZE_0 << 2) | (ST_OAM_SQUARE)) +#define SPRITE_SIZE_16x16 ((ST_OAM_SIZE_1 << 2) | (ST_OAM_SQUARE)) +#define SPRITE_SIZE_32x32 ((ST_OAM_SIZE_2 << 2) | (ST_OAM_SQUARE)) +#define SPRITE_SIZE_64x64 ((ST_OAM_SIZE_3 << 2) | (ST_OAM_SQUARE)) + +#define SPRITE_SIZE_16x8 ((ST_OAM_SIZE_0 << 2) | (ST_OAM_H_RECTANGLE)) +#define SPRITE_SIZE_32x8 ((ST_OAM_SIZE_1 << 2) | (ST_OAM_H_RECTANGLE)) +#define SPRITE_SIZE_32x16 ((ST_OAM_SIZE_2 << 2) | (ST_OAM_H_RECTANGLE)) +#define SPRITE_SIZE_64x32 ((ST_OAM_SIZE_3 << 2) | (ST_OAM_H_RECTANGLE)) + +#define SPRITE_SIZE_8x16 ((ST_OAM_SIZE_0 << 2) | (ST_OAM_V_RECTANGLE)) +#define SPRITE_SIZE_8x32 ((ST_OAM_SIZE_1 << 2) | (ST_OAM_V_RECTANGLE)) +#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) & 0x03) +#define SPRITE_SHAPE(dim) (SPRITE_SIZE_##dim & 0x03) + struct BgAffineSrcData { s32 texX; diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index e35d900d8..3aa44ec9a 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -232,14 +232,25 @@ struct EventObjectGraphicsInfo /*0x20*/ const union AffineAnimCmd *const *affineAnims; }; -#define PLAYER_AVATAR_FLAG_ON_FOOT (1 << 0) -#define PLAYER_AVATAR_FLAG_MACH_BIKE (1 << 1) -#define PLAYER_AVATAR_FLAG_ACRO_BIKE (1 << 2) -#define PLAYER_AVATAR_FLAG_SURFING (1 << 3) -#define PLAYER_AVATAR_FLAG_UNDERWATER (1 << 4) -#define PLAYER_AVATAR_FLAG_5 (1 << 5) -#define PLAYER_AVATAR_FLAG_6 (1 << 6) -#define PLAYER_AVATAR_FLAG_DASH (1 << 7) +enum { + PLAYER_AVATAR_STATE_NORMAL, + PLAYER_AVATAR_STATE_MACH_BIKE, + PLAYER_AVATAR_STATE_ACRO_BIKE, + PLAYER_AVATAR_STATE_SURFING, + PLAYER_AVATAR_STATE_UNDERWATER, + PLAYER_AVATAR_STATE_FIELD_MOVE, + PLAYER_AVATAR_STATE_FISHING, + PLAYER_AVATAR_STATE_WATERING, +}; + +#define PLAYER_AVATAR_FLAG_ON_FOOT (1 << PLAYER_AVATAR_STATE_NORMAL) +#define PLAYER_AVATAR_FLAG_MACH_BIKE (1 << PLAYER_AVATAR_STATE_MACH_BIKE) +#define PLAYER_AVATAR_FLAG_ACRO_BIKE (1 << PLAYER_AVATAR_STATE_ACRO_BIKE) +#define PLAYER_AVATAR_FLAG_SURFING (1 << PLAYER_AVATAR_STATE_SURFING) +#define PLAYER_AVATAR_FLAG_UNDERWATER (1 << PLAYER_AVATAR_STATE_UNDERWATER) +#define PLAYER_AVATAR_FLAG_5 (1 << PLAYER_AVATAR_STATE_FIELD_MOVE) +#define PLAYER_AVATAR_FLAG_6 (1 << PLAYER_AVATAR_STATE_FISHING) +#define PLAYER_AVATAR_FLAG_DASH (1 << PLAYER_AVATAR_STATE_WATERING) enum { diff --git a/include/global.h b/include/global.h index 1f9ac5185..4523ece21 100644 --- a/include/global.h +++ b/include/global.h @@ -471,21 +471,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; }; @@ -808,6 +808,76 @@ struct SaveTrainerHill /*0x3D6E*/ u16 tag:2; // x40, x80 = xC0 }; +struct MysteryEventStruct +{ + u8 unk_0_0:2; + u8 unk_0_2:3; + u8 unk_0_5:3; + u8 unk_1; +}; + + struct WonderNews +{ + u16 unk_00; + u8 unk_02; + u8 unk_03; + u8 unk_04[40]; + u8 unk_2C[10][40]; +}; + + struct WonderNewsSaveStruct +{ + u32 crc; + struct WonderNews data; +}; + + struct WonderCard +{ + u16 unk_00; + u16 unk_02; + u32 unk_04; + u8 unk_08_0:2; + u8 unk_08_2:4; + u8 unk_08_6:2; + u8 unk_09; + u8 unk_0A[40]; + u8 unk_32[40]; + u8 unk_5A[4][40]; + u8 unk_FA[40]; + u8 unk_122[40]; +}; + + struct WonderCardSaveStruct +{ + u32 crc; + struct WonderCard data; +}; + + struct MEventBuffer_3430_Sub +{ + u16 unk_00; + u16 unk_02; + u16 unk_04; + u16 unk_06; + u16 unk_08[2][7]; +}; + + struct MEventBuffer_3430 +{ + u32 crc; + struct MEventBuffer_3430_Sub data; +}; + + struct MEventBuffers +{ + /*0x000 0x322C*/ struct WonderNewsSaveStruct wonderNews; + /*0x1c0 0x33EC*/ struct WonderCardSaveStruct wonderCard; + /*0x310 0x353C*/ struct MEventBuffer_3430 buffer_310; + /*0x338 0x3564*/ u16 unk_338[4]; + /*0x340 0x356C*/ struct MysteryEventStruct unk_340; + /*0x344 0x3570*/ u32 unk_344[2][5]; +}; // 0x36C 0x3598 + struct SaveBlock1 { /*0x00*/ struct Coords16 pos; @@ -845,7 +915,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]; @@ -884,14 +954,16 @@ struct SaveBlock1 /*0x31A8*/ u8 giftRibbons[52]; /*0x31DC*/ struct Roamer roamer; /*0x31F8*/ struct EnigmaBerry enigmaBerry; - /*0x322C*/ u8 field_322C[1260]; + /*0x322C*/ struct MEventBuffers unk_322C; + /*0x3598*/ u8 field_3598[0x180]; /*0x3718*/ u32 trainerHillTimes[4]; /*0x3728*/ struct RamScript ramScript; /*0x3B14*/ struct RecordMixingGift recordMixingGift; /*0x3B24*/ u8 seen2[DEX_FLAGS_NO]; /*0x3B58*/ LilycoveLady lilycoveLady; /*0x3B98*/ struct TrainerNameRecord trainerNameRecords[20]; - /*0x3C88*/ u8 filler_3C88[0xDC]; + /*0x3C88*/ u8 unk3C88[10][21]; + /*0x3D5A*/ u8 filler3D5A[0xA]; /*0x3D64*/ struct SaveTrainerHill trainerHill; /*0x3D70*/ struct WaldaPhrase waldaPhrase; // sizeof: 0x3D88 diff --git a/include/graphics.h b/include/graphics.h index 84d48691c..1171d3c1c 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4129,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_RedBrick[]; +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_RedBrick[]; +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[]; @@ -4772,16 +4772,29 @@ extern const u32 gUnknown_08C16FA8[]; extern const u32 gUnknown_08C16E90[]; extern const u32 gUnknown_08C17170[]; extern const u32 gUnknown_08C17980[]; +extern const u32 gTiles_8C19450[]; +extern const u32 gContestNextTurnGfx[]; +extern const u16 gContestPal[]; +extern const u32 gUnknown_08C19168[]; +extern const u32 gContestApplauseGfx[]; +extern const u32 gContestJudgeGfx[]; +extern const u32 gContestJudgeSymbolsGfx[]; +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[]; +extern const u32 gUsePokeblockGraph_Gfx[]; +extern const u32 gUsePokeblockGraph_Tilemap[]; +extern const u16 gUsePokeblockGraph_Pal[]; +extern const u16 gUsePokeblockNatureWin_Pal[]; + // Berry blender extern const u32 gBerryBlenderArrowTiles[]; extern const u32 gBerryBlenderStartTiles[]; @@ -4907,4 +4920,25 @@ extern const u16 gEasyChatCursor_Pal[]; extern const u32 gEasyChatRightWindow_Gfx[]; extern const u16 gEasyChatRightWindow_Pal[]; +// Use Pokeblock +extern const u32 gUsePokeblockCondition_Gfx[]; + +// Union Room Chat +extern const u16 gUnknown_08DD4BB0[]; +extern const u16 gUnknown_08DD4BD0[]; +extern const u32 gUnknown_08DD4BF0[]; +extern const u32 gUnknown_08DD4C4C[]; +extern const u32 gUnknown_08DD4CF8[]; +extern const u16 gLinkMiscMenu_Pal[]; +extern const u32 gLinkMiscMenu_Gfx[]; +extern const u32 gLinkMiscMenu_Tilemap[]; + +// Use Pokeblock +extern const u8 gPokenavConditionCancel_Gfx[]; +extern const u16 gPokenavConditionCancel_Pal[]; + +// Berry Crush +extern const u32 gUnknown_08DE34B8[]; +extern const u16 gUnknown_08DE3398[]; + #endif //GUARD_GRAPHICS_H diff --git a/include/gym_leader_rematch.h b/include/gym_leader_rematch.h index ef0e5fef1..778d7a1e8 100644 --- a/include/gym_leader_rematch.h +++ b/include/gym_leader_rematch.h @@ -75,11 +75,17 @@ enum { REMATCH_WINONA, REMATCH_TATE_AND_LIZA, REMATCH_JUAN, + + // Entries below SIDNEY are considered part of REMATCH_ELITE_FOUR_ENTRIES. REMATCH_SIDNEY, REMATCH_PHOEBE, REMATCH_GLACIA, REMATCH_DRAKE, - REMATCH_WALLACE + REMATCH_WALLACE, + + // The total number of rematch entries. This must be the last element + // in the enum. + REMATCH_TABLE_ENTRIES }; void UpdateGymLeaderRematch(void); diff --git a/include/international_string_util.h b/include/international_string_util.h index 2d5b1c871..911cd6935 100644 --- a/include/international_string_util.h +++ b/include/international_string_util.h @@ -12,7 +12,7 @@ int GetStringCenterAlignXOffsetWithLetterSpacing(int fontId, const u8 *str, int int GetStringWidthDifference(int fontId, const u8 *str, int totalWidth, int letterSpacing); int GetMaxWidthInMenuTable(const struct MenuAction *str, int arg1); int sub_81DB3D8(const struct MenuAction *str, const u8* arg1, int arg2); -int sub_81DB41C(const struct ListMenuTemplate *listMenu); +int Intl_GetListMenuWidth(const struct ListMenuTemplate *listMenu); void CopyMonCategoryText(int dexNum, u8 *dest); u8 *sub_81DB494(u8 *str, int fontId, u8 *str2, int totalStringWidth); void PadNameString(u8 *dest, u8 padChar); diff --git a/include/item_icon.h b/include/item_icon.h index b702b2045..af03473fb 100644 --- a/include/item_icon.h +++ b/include/item_icon.h @@ -10,7 +10,7 @@ bool8 AllocItemIconTemporaryBuffers(void); void FreeItemIconTemporaryBuffers(void); void CopyItemIconPicTo4x4Buffer(const void *src, void *dest); u8 AddItemIconSprite(u16 tilesTag, u16 paletteTag, u16 itemId); -u8 AddCustomItemIconSprite(struct SpriteTemplate *customSpriteTemplate, u16 tilesTag, u16 paletteTag, u16 itemId); +u8 AddCustomItemIconSprite(const struct SpriteTemplate *customSpriteTemplate, u16 tilesTag, u16 paletteTag, u16 itemId); const void *GetItemIconPicOrPalette(u16 itemId, u8 which); #endif //GUARD_ITEM_ICON_H diff --git a/include/learn_move.h b/include/learn_move.h deleted file mode 100644 index 542ae6a5a..000000000 --- a/include/learn_move.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef GUARD_LEARN_MOVE_H -#define GUARD_LEARN_MOVE_H - -void TeachMoveTutorMove(void); -void ShowHideHearts(s32); - -#endif //GUARD_LEARN_MOVE_H diff --git a/include/link.h b/include/link.h index 24a834c68..62ae7761c 100644 --- a/include/link.h +++ b/include/link.h @@ -200,8 +200,6 @@ extern bool8 gLinkVSyncDisabled; extern u32 gLinkStatus; -void c2_mystery_gift(void); -void sub_801867C(void); bool8 IsWirelessAdapterConnected(void); void Task_DestroySelf(u8 taskId); void OpenLink(void); @@ -230,14 +228,12 @@ bool8 IsLinkMaster(void); void CB2_LinkError(void); u8 GetSioMultiSI(void); bool8 IsLinkConnectionEstablished(void); -void SetSuppressLinkErrorMessage(bool8); bool8 HasLinkErrorOccurred(void); void ResetSerial(void); u32 LinkMain1(u8 *shouldAdvanceLinkState, u16 *sendCmd, u16 (*recvCmds)[CMD_LENGTH]); void LinkVSync(void); void Timer3Intr(void); void SerialCB(void); -u8 GetLinkPlayerCount(void); bool32 InUnionRoom(void); void sub_800E0E8(void); bool8 IsLinkTaskFinished(void); @@ -307,7 +303,6 @@ void sub_8009FAC(void); bool8 sub_800A4D8(u8 a0); u8 sub_800A9D8(void); u8 sub_800A0C8(s32, s32); -u16 *GetSaveBlock1Field3564(void); u8 sub_800A9A8(void); void sub_800AD10(void); void sub_800AB18(void); diff --git a/include/link_rfu.h b/include/link_rfu.h index 5b8ccd9fb..edfd0ed20 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -260,7 +260,7 @@ u32 sub_8010714(u16 a0, const u8 *a1); void sub_8011DC0(const u8 *a0, u16 a1); bool8 sub_800EF1C(void); bool32 sub_800EF58(bool32 a0); -void sub_800E084(void); +void DestroyWirelessStatusIndicatorSprite(void); void sub_801103C(void); void sub_8011C5C(void); void sub_80106D4(void); @@ -281,8 +281,13 @@ void sub_8011DE0(u32 arg0); u8 sub_801100C(int a0); void sub_800EF7C(void); bool8 sub_800DE7C(struct UnkLinkRfuStruct_02022B14 *buff1, u8 *buff2, u8 idx); +bool8 sub_800DF34(struct UnkLinkRfuStruct_02022B14 *buff1, u8 *buff2, u8 idx); s32 sub_800E87C(u8 idx); void sub_8011BA4(void); -void sub_8010198(void); +void LinkRfu_FatalError(void); +bool32 sub_8011A9C(void); +void sub_80104B0(void); +void sub_8011A50(void); +void sub_80110B8(u32 a0); #endif //GUARD_LINK_RFU_H diff --git a/include/list_menu.h b/include/list_menu.h index ef23688d8..0a54a069a 100644 --- a/include/list_menu.h +++ b/include/list_menu.h @@ -4,7 +4,7 @@ #include "window.h" #define LIST_NOTHING_CHOSEN -1 -#define LIST_B_PRESSED -2 +#define LIST_CANCEL -2 #define LIST_HEADER -3 #define LIST_NO_MULTIPLE_SCROLL 0 @@ -98,7 +98,7 @@ struct CursorStruct extern struct ScrollArrowsTemplate gTempScrollArrowTemplate; extern struct ListMenuTemplate gMultiuseListMenuTemplate; -s32 DoMysteryGiftListMenu(struct WindowTemplate *windowTemplate, struct ListMenuTemplate *listMenuTemplate, u8 arg2, u16 tileNum, u16 palNum); +s32 DoMysteryGiftListMenu(const struct WindowTemplate *windowTemplate, const struct ListMenuTemplate *listMenuTemplate, u8 arg2, u16 tileNum, u16 palNum); u8 ListMenuInit(struct ListMenuTemplate *listMenuTemplate, u16 scrollOffset, u16 selectedRow); u8 ListMenuInitInRect(struct ListMenuTemplate *listMenuTemplate, struct ListMenuWindowRect *arg1, u16 scrollOffset, u16 selectedRow); s32 ListMenu_ProcessInput(u8 listTaskId); diff --git a/include/main.h b/include/main.h index 4f9a9e61a..16ac31df2 100644 --- a/include/main.h +++ b/include/main.h @@ -42,6 +42,8 @@ struct Main extern const u8 gGameVersion; extern const u8 gGameLanguage; +extern const u8 RomHeaderGameCode[4]; +extern const u8 RomHeaderSoftwareVersion; extern u16 gKeyRepeatStartDelay; extern bool8 gLinkTransferringData; @@ -69,6 +71,6 @@ void RestoreSerialTimer3IntrHandlers(void); void StartTimer1(void); void SeedRngAndSetTrainerId(void); u16 GetGeneratedTrainerIdLower(void); - +void sub_819789C(void); #endif // GUARD_MAIN_H diff --git a/include/menu.h b/include/menu.h index 7cd6de04b..08cad40bd 100644 --- a/include/menu.h +++ b/include/menu.h @@ -31,11 +31,11 @@ u16 AddTextPrinterParameterized2(u8 windowId, u8 fontId, const u8 *str, u8 speed void PrintPlayerNameOnWindow(u8, const u8*, u16, u16); void DisplayItemMessageOnField(u8 taskId, const u8 *src, TaskFunc callback); void ClearDialogWindowAndFrame(u8 windowId, bool8 copyToVram); -void SetStandardWindowBorderStyle(u8 a0, u8 a1); +void SetStandardWindowBorderStyle(u8 windowId, bool8 copyToVram); void DisplayYesNoMenuDefaultYes(void); u32 GetPlayerTextSpeed(void); u8 GetPlayerTextSpeedDelay(void); -void sub_81978B0(u16 arg0); +void Menu_LoadStdPalAt(u16 arg0); void AddTextPrinterWithCallbackForMessage(bool8 a1, void (*callback)(struct TextPrinterTemplate *, u16)); void sub_8199DF0(u32 bg, u8 a1, int a2, int a3); void AddTextPrinterParameterized3(u8 windowId, u8 fontId, u8 left, u8 top, const u8 *color, s8 speed, const u8 *str); @@ -69,7 +69,7 @@ u16 copy_decompressed_tile_data_to_vram(u8 bgId, const void *src, u16 size, u16 void AddTextPrinterForMessage(bool8 allowSkippingDelayWithButtonPress); void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 letterSpacing, u8 lineHeight, u8 itemCount, const struct MenuAction *strs, const u8 *a8); void sub_8198DBC(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 itemCount, u8 itemCount2, const struct MenuAction *strs, const u8 *a8); -u8 sub_8199944(u8 windowId, u8 optionWidth, u8 horizontalCount, u8 verticalCount, u8 initialCursorPos); +u8 sub_8199944(u8 windowId, u8 optionWidth, u8 columns, u8 rows, u8 initialCursorPos); u8 sub_8199134(s8, s8); u8 GetStartMenuWindowId(void); void sub_819A2BC(u8, u8); @@ -91,7 +91,7 @@ void sub_8199C30(u8 bgId, u8 left, u8 top, u8 width, u8 height, u8 palette); void sub_8199D3C(void *ptr, int delta, int width, int height, bool32 is8BPP); void sub_8198204(const u8 *string, const u8 *string2, u8 a3, u8 a4, bool8 copyToVram); void sub_8197AE8(bool8 copyToVram); -void sub_81997AC(u8 windowId, u8 a4, u8 a6, u8 a7, const struct MenuAction *strs); +void PrintMenuGridTable(u8 windowId, u8 optionWidth, u8 columns, u8 rows, const struct MenuAction *strs); s8 Menu_ProcessInputGridLayout(void); u8 InitMenuInUpperLeftCorner(u8 windowId, u8 itemCount, u8 initialCursorPos, bool8 APressMuted); s8 Menu_ProcessInputNoWrapAround_other(void); @@ -100,5 +100,8 @@ 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); #endif // GUARD_MENU_H 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 new file mode 100644 index 000000000..014ee2585 --- /dev/null +++ b/include/menu_specialized.h @@ -0,0 +1,67 @@ +#ifndef GUARD_MENU_SPECIALIZED_H +#define GUARD_MENU_SPECIALIZED_H + +#include "sprite.h" +#include "player_pc.h" +#include "list_menu.h" +#include "pokemon.h" + +struct UnknownSubStruct_81D1ED4 +{ + u16 unk0; + u16 unk2; +}; + +struct UnknownStruct_81D1ED4 +{ + /*0x000*/ u8 unk0[4][5]; + /*0x014*/ struct UnknownSubStruct_81D1ED4 unk14[4][5]; + /*0x064*/ struct UnknownSubStruct_81D1ED4 unk64[10][5]; + /*0x12C*/ struct UnknownSubStruct_81D1ED4 unk12C[5]; + /*0x140*/ u16 unk140[66][2]; + /*0x248*/ u16 unk248[66][2]; + /*0x350*/ u16 unk350; + /*0x352*/ u16 unk352; + /*0x354*/ u8 unk354; + /*0x355*/ u8 unk355; +}; + +bool8 sub_81D1C44(u8 count); +u8 sub_81D1C84(u8 a0); +u8 sub_81D1DC0(struct PlayerPCItemPageStruct *page); +void sub_81D1E90(struct PlayerPCItemPageStruct *page); +void sub_81D1EC0(void); +void sub_81D1D04(u8 a0); +void sub_81D1ED4(struct UnknownStruct_81D1ED4 *a0); +void sub_81D2108(struct UnknownStruct_81D1ED4 *arg0); +void sub_81D20AC(struct UnknownStruct_81D1ED4 *arg0); +void sub_81D2230(struct UnknownStruct_81D1ED4 *arg0); +bool8 sub_81D20BC(struct UnknownStruct_81D1ED4 *arg0); +bool32 sub_81D2074(struct UnknownStruct_81D1ED4 *a0); +void sub_81D2754(u8 *arg0, struct UnknownSubStruct_81D1ED4 *arg1); +void sub_81D1F84(struct UnknownStruct_81D1ED4 *arg0, struct UnknownSubStruct_81D1ED4 *arg1, struct UnknownSubStruct_81D1ED4 *arg2); +void MoveRelearnerPrintText(u8 *str); +bool16 MoveRelearnerRunTextPrinters(void); +void MoveRelearnerCreateYesNoMenu(void); +u8 LoadMoveRelearnerMovesList(const struct ListMenuItem *items, u16 numChoices); +void InitMoveRelearnerWindows(bool8 useContextWindow); +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); +void sub_81D3094(void *tilesDst, void *palDst, u16 boxId, u16 monId, u16 arg5, u16 arg6, bool8 arg7); +bool8 sub_81D312C(s16 *var); +bool8 sub_81D3150(s16 *var); +bool8 sub_81D3178(struct UnknownStruct_81D1ED4 *arg0, s16 *arg1); +bool8 sub_81D31A4(struct UnknownStruct_81D1ED4 *arg0, s16 *arg1); +void sub_81D31D0(struct SpriteSheet *sheet, struct SpriteTemplate *template, struct SpritePalette *pal); +void sub_81D321C(struct SpriteSheet *sheets, struct SpriteTemplate * template, struct SpritePalette *pals); +void sub_81D32B0(struct SpriteSheet *sheet, struct SpritePalette *pal); +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/mevent.h b/include/mevent.h new file mode 100755 index 000000000..a34ca355c --- /dev/null +++ b/include/mevent.h @@ -0,0 +1,63 @@ +#ifndef GUARD_MEVENT_H +#define GUARD_MEVENT_H + +struct MEvent_Str_1 +{ + u16 unk_000; + size_t unk_004; + const void * unk_008; +}; + +struct MEvent_Str_2 +{ + u8 fill_00[0x40]; +}; + +struct MEventStruct_Unk1442CC +{ + u32 unk_00; + u16 unk_04; + u32 unk_08; + u16 unk_0C; + u32 unk_10; + u16 unk_14; + u16 unk_16[4]; + struct MEventBuffer_3430_Sub unk_20; + u8 unk_44; + u8 unk_45[7]; + u8 unk_4C[4]; + u16 unk_50[6]; + u8 unk_5C[4]; + u8 unk_60; +}; + +void sub_801AFD8(void); +struct WonderNews *GetSavedWonderNews(void); +struct WonderCard *GetSavedWonderCard(void); +struct MEventBuffer_3430_Sub *sav1_get_mevent_buffer_2(void); +struct MysteryEventStruct *sub_801B044(void); +u16 *sub_801B058(void); +void DestroyWonderNews(void); +bool32 sub_801B078(const struct WonderNews *src); +bool32 ValidateReceivedWonderNews(void); +bool32 WonderNews_Test_Unk_02(void); +bool32 sub_801B1A4(const u8 *src); +void DestroyWonderCard(void); +bool32 sub_801B21C(const struct WonderCard *data); +bool32 ValidateReceivedWonderCard(void); +bool32 WonderCard_Test_Unk_08_6(void); +u16 GetWonderCardFlagID(void); +void WonderCard_ResetInternalReceivedFlag(struct WonderCard *buffer); +bool32 CheckReceivedGiftFromWonderCard(void); +bool32 sub_801B508(const u16 *data); +void sub_801B580(struct MEventStruct_Unk1442CC *data, bool32 a1); +bool32 sub_801B6A0(const struct MEventStruct_Unk1442CC *data, bool32 a1); +u32 sub_801B6EC(const u16 *a0, const struct MEventStruct_Unk1442CC *a1, const void *unused); +u32 sub_801B708(const u16 *a0, const struct MEventStruct_Unk1442CC *a1, const void *unused); +bool32 MEventStruct_Unk1442CC_CompareField_unk_16(const struct MEventStruct_Unk1442CC *a0, const u16 *a1); +u16 MEventStruct_Unk1442CC_GetValueNFrom_unk_20(const struct MEventStruct_Unk1442CC *a0, u32 command); +u16 mevent_081445C0(u32 command); +void sub_801B940(void); +bool32 sub_801B94C(u16 a0); + +#endif //GUARD_MEVENT_H diff --git a/include/mevent2.h b/include/mevent2.h new file mode 100644 index 000000000..80b1fd51b --- /dev/null +++ b/include/mevent2.h @@ -0,0 +1,6 @@ +#ifndef GUARD_MEVENT2_H +#define GUARD_MEVENT2_H + +void sub_801B990(u32, u32); + +#endif //GUARD_MEVENT2_H diff --git a/include/mevent_801BAAC.h b/include/mevent_801BAAC.h new file mode 100644 index 000000000..d76bc92c2 --- /dev/null +++ b/include/mevent_801BAAC.h @@ -0,0 +1,16 @@ +#ifndef GUARD_MEVENT_801BAAC_H +#define GUARD_MEVENT_801BAAC_H + +bool32 InitWonderCardResources(struct WonderCard * r5, struct MEventBuffer_3430_Sub * r6); +bool32 InitWonderNewsResources(const struct WonderNews * a0); +s32 FadeToWonderCardMenu(void); +s32 FadeToWonderNewsMenu(void); +s32 FadeOutFromWonderCard(bool32 flag); +void DestroyWonderCardResources(void); +s32 FadeOutFromWonderNews(bool32 flag); +void DestroyWonderNewsResources(void); +u32 MENews_GetInput(u16 input); +void MENews_AddScrollIndicatorArrowPair(void); +void MENews_RemoveScrollIndicatorArrowPair(void); + +#endif //GUARD_MEVENT_801BAAC_H diff --git a/include/mevent_client.h b/include/mevent_client.h new file mode 100644 index 000000000..c32d14d7a --- /dev/null +++ b/include/mevent_client.h @@ -0,0 +1,33 @@ +#ifndef GUARD_MEVENT_CLIENT_H +#define GUARD_MEVENT_CLIENT_H + +#include "mevent_server_helpers.h" + +struct mevent_client_cmd +{ + u32 instr; + u32 parameter; +}; + +struct mevent_client +{ + u32 unk_00; + u32 param; + u32 mainseqno; + u32 flag; + u32 cmdidx; + void * sendBuffer; + void * recvBuffer; + struct mevent_client_cmd * cmdBuffer; + void * buffer; + struct mevent_srv_sub manager; + u32 unk_4C; +}; + +void mevent_client_do_init(u32 arg); +u32 mevent_client_do_exec(u16 * a0); +void mevent_client_inc_flag(void); +void * mevent_client_get_buffer(void); +void mevent_client_set_param(u32 a0); + +#endif //GUARD_MEVENT_CLIENT_H diff --git a/include/mevent_news.h b/include/mevent_news.h new file mode 100755 index 000000000..5fa009499 --- /dev/null +++ b/include/mevent_news.h @@ -0,0 +1,7 @@ +#ifndef GUARD_MEVENT_NEWS_H +#define GUARD_MEVENT_NEWS_H + +void sub_801DBC0(void); +void GenerateRandomNews(u32 a0); + +#endif //GUARD_MEVENT_NEWS_H diff --git a/include/mevent_server.h b/include/mevent_server.h new file mode 100644 index 000000000..e74337cf6 --- /dev/null +++ b/include/mevent_server.h @@ -0,0 +1,36 @@ +#ifndef GUARD_MEVENT_SERVER_H +#define GUARD_MEVENT_SERVER_H + +#include "mevent_server_helpers.h" + +struct mevent_cmd +{ + u32 instr; + bool32 flag; + const void * parameter; +}; + +struct mevent_srv_common +{ + u32 unk_00; + u32 param; + u32 mainseqno; + u32 cmdidx; + const struct mevent_cmd * cmdBuffer; + void * recvBuffer; + struct WonderCard * wonder_card; + struct WonderNews * wonder_news; + struct MEventStruct_Unk1442CC * mevent_unk1442cc; + const void * sendBuffer1; + u32 sendBuffer1Size; + const void * sendBuffer2; + u32 sendBuffer2Size; + u32 sendWord; + struct mevent_srv_sub manager; +}; + +void mevent_srv_new_wcard(); +void mevent_srv_init_wnews(); +u32 mevent_srv_common_do_exec(u16 * a0); + +#endif //GUARD_MEVENT_SERVER_H diff --git a/include/mevent_server_helpers.h b/include/mevent_server_helpers.h new file mode 100644 index 000000000..e4e409862 --- /dev/null +++ b/include/mevent_server_helpers.h @@ -0,0 +1,38 @@ +#ifndef GUARD_MEVENT_SERVER_HELPERS_H +#define GUARD_MEVENT_SERVER_HELPERS_H + +#define ME_SEND_BUF_SIZE 0x400 + +struct mevent_srv_sub +{ + s32 seqno; + u8 sendPlayerNo; + u8 recvPlayerNo; + u16 recvIdent; + u16 recvCounter; + u16 recvCRC; + u16 recvSize; + u16 sendIdent; + u16 sendCounter; + u16 sendCRC; + u16 sendSize; + void * recvBfr; + const void * sendBfr; + u32 (*recvFunc)(struct mevent_srv_sub *); + u32 (*sendFunc)(struct mevent_srv_sub *); +}; + +struct send_recv_header +{ + u16 ident; + u16 crc; + u16 size; +}; + +void mevent_srv_sub_init(struct mevent_srv_sub *, u32, u32); +void mevent_srv_sub_init_send(struct mevent_srv_sub * manager, u32 ident, const void * src, u32 size); +bool32 mevent_srv_sub_recv(struct mevent_srv_sub * manager); +bool32 mevent_srv_sub_send(struct mevent_srv_sub * manager); +void mevent_srv_sub_init_recv(struct mevent_srv_sub *, u32, void *); + +#endif //GUARD_MEVENT_SERVER_HELPERS_H diff --git a/include/move_relearner.h b/include/move_relearner.h new file mode 100644 index 000000000..51b476d25 --- /dev/null +++ b/include/move_relearner.h @@ -0,0 +1,7 @@ +#ifndef GUARD_MOVE_RELEARNER_H +#define GUARD_MOVE_RELEARNER_H + +void TeachMoveRelearnerMove(void); +void MoveRelearnerShowHideHearts(s32); + +#endif //GUARD_MOVE_RELEARNER_H diff --git a/include/mystery_gift.h b/include/mystery_gift.h new file mode 100644 index 000000000..243895a67 --- /dev/null +++ b/include/mystery_gift.h @@ -0,0 +1,16 @@ +#ifndef GUARD_MYSTERY_GIFT_H +#define GUARD_MYSTERY_GIFT_H + +extern bool8 gGiftIsFromEReader; + +u16 GetMysteryGiftBaseBlock(void); +void c2_mystery_gift_e_reader_run(void); +void PrintMysteryGiftOrEReaderTopMenu(bool8 isJapanese, bool32 usePickOkCancel); +void MG_DrawCheckerboardPattern(u32 bg); +void MainCB_FreeAllBuffersAndReturnToInitTitleScreen(void); +bool32 MG_PrintTextOnWindow1AndWaitButton(u8 *textState, const u8 *str); +void AddTextPrinterToWindow1(const u8 *src); +void c2_ereader(void); +void c2_mystery_gift(void); + +#endif //GUARD_MYSTERY_GIFT_H diff --git a/include/naming_screen.h b/include/naming_screen.h index b04cb19b6..611f53ef2 100644 --- a/include/naming_screen.h +++ b/include/naming_screen.h @@ -59,9 +59,9 @@ struct NamingScreenData { enum { + PAGE_OTHERS, PAGE_UPPER, PAGE_LOWER, - PAGE_OTHERS, }; enum diff --git a/include/pokemon.h b/include/pokemon.h index 60ccb27f4..26d715d89 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -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_3.h b/include/pokemon_3.h deleted file mode 100644 index 263839b19..000000000 --- a/include/pokemon_3.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef GUARD_POKEMON_3_H -#define GUARD_POKEMON_3_H - -u16 sub_806EFF0(u16); -const u8* GetTrainerClassNameFromId(u16 trainerId); -const u8* GetTrainerNameFromId(u16 trainerId); -void PlayMapChosenOrBattleBGM(u16 song); -u8 GetTrainerEncounterMusicId(u16 trainerOpponentId); - -#endif // GUARD_POKEMON_3_H diff --git a/include/pokemon_summary_screen.h b/include/pokemon_summary_screen.h index bd99fed0e..20d881702 100755 --- a/include/pokemon_summary_screen.h +++ b/include/pokemon_summary_screen.h @@ -1,8 +1,13 @@ #ifndef GUARD_POKEMON_SUMMARY_SCREEN_H #define GUARD_POKEMON_SUMMARY_SCREEN_H +#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)); void ShowSelectMovePokemonSummaryScreen(struct Pokemon *, u8, u8, MainCallback, u16); diff --git a/include/pokenav.h b/include/pokenav.h index 29ccaec3e..4e1648c93 100644 --- a/include/pokenav.h +++ b/include/pokenav.h @@ -1,35 +1,6 @@ #ifndef GUARD_POKENAV_H #define GUARD_POKENAV_H -#include "player_pc.h" -#include "list_menu.h" -bool8 sub_81D20BC(void *arg0); -bool8 sub_81D312C(void *arg0); -void sub_81D1ED4(void *arg0); -void sub_81D2108(void *arg0); -void sub_81D20AC(void *arg0); -void sub_81D2230(void *arg0); -void sub_81D3464(void *arg0); -void sub_81D3480(void *arg0, u8 arg1); -void sub_81D2754(void *arg0, void *arg1); -void sub_81D1F84(void *arg0, void *arg1, void *arg2); -u8 sub_81D1C84(u8); -u8 sub_81D1DC0(struct PlayerPCItemPageStruct *); -void sub_81D1E90(struct PlayerPCItemPageStruct *); -void sub_81D1EC0(void); -void sub_81D1D04(u8); -bool8 sub_81D1C44(u8); -bool8 sub_81D4A58(struct EventObject*); -void sub_81D2BF4(u8 *); -u16 sub_81D2C3C(void); -void sub_81D2C50(void); -u8 sub_81D28C8(const struct ListMenuItem *items, u16 numChoices); -void sub_81D2824(u16); -bool8 EventObjectIsFarawayIslandMew(struct EventObject *); -u32 sub_81D427C(void); -void sub_81D4998(void); -void sub_81D3640(u16 arg0, void* statStoreLocation1, void* statStoreLocation2, u8 arg3, u8 arg4, u8 arg5); -void sub_81D3784(u16 arg0, void* statStoreLocation1, u8 arg2, u8 arg3, u8 arg4); void CB2_InitPokeNav(void); #endif //GUARD_POKENAV_H diff --git a/include/rom_8011DC0.h b/include/rom_8011DC0.h index ac9bbb5c3..ee7397320 100644 --- a/include/rom_8011DC0.h +++ b/include/rom_8011DC0.h @@ -1,23 +1,4 @@ #ifndef GUARD_rom_8011DC0_H #define GUARD_rom_8011DC0_H -// Exported type declarations - -// Exported RAM declarations - -extern u8 gUnknown_02022C2C; -extern struct UnkLinkRfuStruct_02022B14Substruct gUnknown_02022C38; -extern u16 gUnknown_02022C3C; -extern u8 gUnknown_02022C3E; - -// Exported ROM declarations - -void sub_8018438(void); -u16 mevent_081445C0(u8); -void sub_801B990(u32, u32); -u8 sub_8013F78(void); -bool32 sub_802C908(u16); -void nullsub_89(u8 taskId); -void var_800D_set_xB(void); - #endif //GUARD_rom_8011DC0_H diff --git a/include/save.h b/include/save.h index 88e5f2280..5e2cf7267 100644 --- a/include/save.h +++ b/include/save.h @@ -33,6 +33,7 @@ struct SaveSectionOffsets #define NUM_SECTORS_PER_SLOT 16 #define UNKNOWN_CHECK_VALUE 0x8012025 +#define SPECIAL_SECTION_SENTINEL 0xB39D // SetDamagedSectorBits states enum @@ -88,8 +89,8 @@ bool8 CheckSaveFile(void); u8 Save_LoadGameData(u8 a1); u16 sub_815355C(void); u8 sub_81534D0(u8); -u32 TryCopySpecialSaveSection(u8 sector, u8* dst); -u32 sub_8153634(u8 sector, u8* src); +u32 TryReadSpecialSaveSection(u8 sector, u8* dst); +u32 TryWriteSpecialSaveSection(u8 sector, u8* src); void sub_8153688(u8 taskId); // save_failed_screen.c diff --git a/include/script.h b/include/script.h index 34f4635bb..cfe493479 100644 --- a/include/script.h +++ b/include/script.h @@ -57,9 +57,9 @@ u32 CalculateRamScriptChecksum(void); void ClearRamScript(void); bool8 InitRamScript(const u8 *script, u16 scriptSize, u8 mapGroup, u8 mapNum, u8 objectId); const u8 *GetRamScript(u8 objectId, const u8 *script); -bool32 sub_80991F8(void); -u8 *sub_8099244(void); -void sub_80992A0(u8 *script, u16 scriptSize); +bool32 ValidateSavedRamScript(void); +u8 *GetSavedRamScriptIfValid(void); +void InitRamScript_NoEventObject(u8 *script, u16 scriptSize); // srccmd.h void sub_809BE48(u16 npcId); diff --git a/include/script_menu.h b/include/script_menu.h index 1f4e549fe..efb51870b 100644 --- a/include/script_menu.h +++ b/include/script_menu.h @@ -11,7 +11,7 @@ bool8 ScriptMenu_ShowPokemonPic(u16 var1, u8 var2, u8 var3); bool8 (*ScriptMenu_GetPicboxWaitFunc(void))(void); int convert_pixel_width_to_tile_width(int); u8 CreateWindowFromRect(u8, u8, u8, u8); -void sub_80E2A78(u8); +void ClearToTransparentAndRemoveWindow(u8); int display_text_and_get_width(const u8*, int); int sub_80E2D5C(int arg0, int tileWidth); bool16 ScrSpecial_CreatePCMenu(void); 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/strings.h b/include/strings.h index d0c339d4a..c62835ca1 100644 --- a/include/strings.h +++ b/include/strings.h @@ -9,6 +9,12 @@ extern const u8 gText_OpenLevel[]; extern const u8 gText_Mom[]; extern const u8 gText_Dad[]; +extern const u8 gText_GetsAPokeBlockQuestion[]; +extern const u8 gText_WontEatAnymore[]; +extern const u8 gText_WasEnhanced[]; +extern const u8 gText_NothingChanged[]; +extern const u8 gText_NatureSlash[]; + extern const u8 gText_Cool[]; extern const u8 gText_Beauty[]; extern const u8 gText_Cute[]; @@ -126,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[]; @@ -188,6 +194,7 @@ extern const u8 gText_SeeYaDescription[]; extern const u8 gText_EggNickname[]; extern const u8 gText_Pokemon[]; +extern const u8 gText_InParty[]; extern const u8 gText_InGameClockUsable[]; // reset rtc screen texts @@ -464,6 +471,14 @@ 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[]; //pokedex text extern const u8 gText_CryOf[]; @@ -859,15 +874,22 @@ extern const u8 gText_Winona[]; extern const u8 gText_Phoebe[]; extern const u8 gText_Glacia[]; -extern const u8 gText_PkmnLearnedMove4[]; -extern const u8 gText_PkmnTryingToLearnMove[]; -extern const u8 gText_WhichMoveToForget2[]; -extern const u8 gText_StopTryingToTeachMove[]; -extern const u8 gText_12AndPoof[]; -extern const u8 gText_PkmnForgotMoveAndLearnedNew[]; +extern const u8 gText_MoveRelearnerPkmnLearnedMove[]; +extern const u8 gText_MoveRelearnerPkmnTryingToLearnMove[]; +extern const u8 gText_MoveRelearnerWhichMoveToForget[]; +extern const u8 gText_MoveRelearnerStopTryingToTeachMove[]; +extern const u8 gText_MoveRelearnerAndPoof[]; +extern const u8 gText_MoveRelearnerPkmnForgotMoveAndLearnedNew[]; extern const u8 gText_TeachWhichMoveToPkmn[]; -extern const u8 gText_GiveUpTeachingNewMove[]; -extern const u8 gText_TeachX[]; +extern const u8 gText_MoveRelearnerGiveUp[]; +extern const u8 gText_MoveRelearnerTeachMoveConfirm[]; +extern const u8 gText_MoveRelearnerBattleMoves[]; +extern const u8 gText_MoveRelearnerPP[]; +extern const u8 gText_MoveRelearnerPower[]; +extern const u8 gText_MoveRelearnerAccuracy[]; +extern const u8 gText_MoveRelearnerContestMovesTitle[]; +extern const u8 gText_MoveRelearnerAppeal[]; +extern const u8 gText_MoveRelearnerJam[]; extern const u8 gText_Kira[]; extern const u8 gText_Amy[]; @@ -2559,4 +2581,131 @@ extern const u8 gUnknown_0862BAC4[]; extern const u8 gUnknown_0862BACF[]; extern const u8 gUnknown_0862BADA[]; +// E-Reader +extern const u8 gUnknown_085EDFD6[]; +extern const u8 gUnknown_085EDFF5[]; +extern const u8 gUnknown_085EE014[]; +extern const u8 gUnknown_085EE035[]; +extern const u8 gUnknown_085EE05C[]; +extern const u8 gUnknown_085EE06B[]; +extern const u8 gUnknown_085EE080[]; +extern const u8 gUnknown_085EE097[]; +extern const u8 gUnknown_085EE0A3[]; +extern const u8 gUnknown_085EE0BF[]; +extern const u8 gUnknown_085EE0DC[]; +extern const u8 gUnknown_085EE0FA[]; +extern const u8 gUnknown_085EE107[]; +extern const u8 gUnknown_085EE120[]; +extern const u8 gUnknown_085EE12D[]; +extern const u8 gUnknown_085EE14B[]; +extern const u8 gUnknown_085EE14F[]; +extern const u8 gUnknown_085EE154[]; + +// Berry Powder Menu +extern const u8 gText_Powder[]; + +// Union Room Chat +extern const u8 gText_F700JoinedChat[]; +extern const u8 gText_F700LeftChat[]; +extern const u8 gText_Hello[]; +extern const u8 gText_Pokemon2[]; +extern const u8 gText_Trade[]; +extern const u8 gText_Battle[]; +extern const u8 gText_Lets[]; +extern const u8 gText_Ok[]; +extern const u8 gText_Sorry[]; +extern const u8 gText_YayUnkF9F9[]; +extern const u8 gText_ThankYou[]; +extern const u8 gText_ByeBye[]; + +// Mystery Gift +extern const u8 gText_MysteryGift[]; +extern const u8 gText_PickOKCancel[]; +extern const u8 gText_PickOKExit[]; +extern const u8 gJPText_MysteryGift[]; +extern const u8 gJPText_DecideStop[]; +extern const u8 gText_WonderCards[]; +extern const u8 gText_WonderNews[]; +extern const u8 gText_Exit3[]; +extern const u8 gText_WirelessCommunication[]; +extern const u8 gText_Friend2[]; +extern const u8 gText_Cancel2[]; +extern const u8 gText_Receive[]; +extern const u8 gText_Send[]; +extern const u8 gText_Toss[]; +extern const u8 gText_VarietyOfEventsImportedWireless[]; +extern const u8 gText_WonderCardsInPossession[]; +extern const u8 gText_ReadNewsThatArrived[]; +extern const u8 gText_ReturnToTitle[]; +extern const u8 gText_WhatToDoWithCards[]; +extern const u8 gText_WhatToDoWithNews[]; +extern const u8 gText_IfThrowAwayCardEventWontHappen[]; +extern const u8 gText_OkayToDiscardNews[]; +extern const u8 gText_WonderNewsThrownAway[]; +extern const u8 gText_WonderCardThrownAway[]; +extern const u8 gText_DataWillBeSaved[]; +extern const u8 gText_SaveCompletedPressA[]; +extern const u8 gText_NothingSentOver[]; +extern const u8 gText_RecordUploadedViaWireless[]; +extern const u8 gText_WonderCardReceivedFrom[]; +extern const u8 gText_WonderCardReceived[]; +extern const u8 gText_WonderNewsReceivedFrom[]; +extern const u8 gText_WonderNewsReceived[]; +extern const u8 gText_NewStampReceived[]; +extern const u8 gText_AlreadyHadCard[]; +extern const u8 gText_AlreadyHadStamp[]; +extern const u8 gText_AlreadyHadNews[]; +extern const u8 gText_NoMoreRoomForStamps[]; +extern const u8 gText_CommunicationCanceled[]; +extern const u8 gText_CantAcceptNewsFromTrainer[]; +extern const u8 gText_CantAcceptCardFromTrainer[]; +extern const u8 gText_CommunicationError[]; +extern const u8 gText_NewTrainerReceived[]; +extern const u8 gText_RecordUploadedViaWireless[]; +extern const u8 gText_WonderCardSentTo[]; +extern const u8 gText_WonderNewsSentTo[]; +extern const u8 gText_StampSentTo[]; +extern const u8 gText_OtherTrainerHasCard[]; +extern const u8 gText_OtherTrainerHasStamp[]; +extern const u8 gText_OtherTrainerHasNews[]; +extern const u8 gText_NoMoreRoomForStamps[]; +extern const u8 gText_OtherTrainerCanceled[]; +extern const u8 gText_GiftSentTo[]; +extern const u8 gText_CantSendGiftToTrainer[]; +extern const u8 gText_DontHaveCardNewOneInput[]; +extern const u8 gText_DontHaveNewsNewOneInput[]; +extern const u8 gText_WhereShouldCardBeAccessed[]; +extern const u8 gText_WhereShouldNewsBeAccessed[]; +extern const u8 gText_Communicating[]; +extern const u8 gText_ThrowAwayWonderCard[]; +extern const u8 gText_HaventReceivedCardsGift[]; +extern const u8 gText_CommunicationCompleted[]; +extern const u8 gText_HaventReceivedGiftOkayToDiscard[]; +extern const u8 gText_SendingWonderCard[]; +extern const u8 gText_SendingWonderNews[]; +extern const u8 gText_WirelessCommStatus[]; +extern const u8 gText_PeopleTrading[]; +extern const u8 gText_PeopleBattling[]; +extern const u8 gText_PeopleInUnionRoom[]; +extern const u8 gText_PeopleCommunicating[]; +extern const u8 gText_CommStandbyAwaitingOtherPlayer[]; +extern const u8 gText_RefusedBattle[]; +extern const u8 gText_BattleWasRefused[]; +extern const u8 gText_QuitChatting[]; +extern const u8 gText_RegisterTextWhere[]; +extern const u8 gText_RegisterTextHere[]; +extern const u8 gText_InputText[]; +extern const u8 gText_ExitingChat[]; +extern const u8 gText_LeaderLeftEndingChat[]; +extern const u8 gText_RegisteredTextChanged[]; +extern const u8 gText_AlreadySavedFile_Unused[]; +extern const u8 gText_SavingDontTurnOff_Unused[]; +extern const u8 gText_PlayerSavedGame_Unused[]; +extern const u8 gText_IfLeaderLeavesChatEnds[]; +extern const u8 gText_Upper[]; +extern const u8 gText_Lower[]; +extern const u8 gText_Symbols[]; +extern const u8 gText_Register2[]; +extern const u8 gText_Exit2[]; + #endif // GUARD_STRINGS_H diff --git a/include/text.h b/include/text.h index d8f2fd8a3..eba3d0c4e 100644 --- a/include/text.h +++ b/include/text.h @@ -99,6 +99,8 @@ // #define EXT_CTRL_CODE_CLEAR 0x11 // +#define EXT_CTRL_CODE_CLEAR_TO 0x13 +#define EXT_CTRL_CODE_MIN_LETTER_SPACING 0x14 #define EXT_CTRL_CODE_JPN 0x15 #define EXT_CTRL_CODE_ENG 0x16 diff --git a/include/text_window.h b/include/text_window.h index 53a6df2e9..501597aa2 100644 --- a/include/text_window.h +++ b/include/text_window.h @@ -17,8 +17,8 @@ void LoadMessageBoxGfx(u8 windowId, u16 destOffset, u8 palOffset); void LoadUserWindowBorderGfx(u8 windowId, u16 destOffset, u8 palOffset); void LoadWindowGfx(u8 windowId, u8 frameId, u16 destOffset, u8 palOffset); void LoadUserWindowBorderGfx_(u8 windowId, u16 destOffset, u8 palOffset); -void sub_8098858(u8 windowId, u16 tileNum, u8 palNum); -void sub_80989E0(u8 windowId, u16 tileNum, u8 palNum); +void DrawTextBorderOuter(u8 windowId, u16 tileNum, u8 palNum); +void DrawTextBorderInner(u8 windowId, u16 tileNum, u8 palNum); void rbox_fill_rectangle(u8 windowId); const u16 *stdpal_get(u8 id); const u16 *GetOverworldTextboxPalettePtr(void); diff --git a/include/title_screen.h b/include/title_screen.h index ad0809ed2..b7100f124 100644 --- a/include/title_screen.h +++ b/include/title_screen.h @@ -1,7 +1,7 @@ #ifndef GUARD_TITLE_SCREEN_H #define GUARD_TITLE_SCREEN_H -extern const u16 gIntroWaterDropData[]; +extern const u16 gIntroWaterDropAlphaBlend[]; void CB2_InitTitleScreen(void); 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 new file mode 100644 index 000000000..538d37716 --- /dev/null +++ b/include/union_room.h @@ -0,0 +1,172 @@ +#ifndef GUARD_UNION_ROOM_H +#define GUARD_UNION_ROOM_H + +#include "librfu.h" + +// Exported type declarations + +struct UnkStruct_Shared +{ + struct UnkLinkRfuStruct_02022B14 field_0; + u8 ALIGNED(4) playerName[PLAYER_NAME_LENGTH + 1]; +}; + +struct UnkStruct_x1C +{ + struct UnkStruct_Shared unk0; + u8 unk18:1; +}; + +struct UnkStruct_x20 +{ + struct UnkStruct_Shared unk; + u16 field_18; + u8 field_1A_0:2; + u8 field_1A_1:1; + u8 field_1B; + u8 field_1D; + u8 field_1E; + u8 field_1F; +}; + +struct UnkStruct_Main0 +{ + struct UnkStruct_x20 arr[8]; +}; + +struct UnkStruct_Main4 +{ + struct UnkStruct_x1C arr[5]; +}; + +struct UnkStruct_Main8 +{ + struct UnkStruct_x20 arr[5]; +}; + +struct UnkStruct_Leader +{ + struct UnkStruct_Main0 *field_0; + struct UnkStruct_Main4 *field_4; + struct UnkStruct_Main8 *field_8; + u8 state; + u8 textState; + u8 field_E; + u8 listWindowId; + u8 field_10; + u8 field_11; + u8 listTaskId; + u8 field_13; + u8 field_14; + u8 field_15; + u8 field_16; + u8 field_17; + u8 field_18; + u8 field_19; + u16 field_1A; +}; + +struct UnkStruct_Group +{ + struct UnkStruct_Main0 *field_0; + struct UnkStruct_Main4 *field_4; + u8 state; + u8 textState; + u8 field_A; + u8 listWindowId; + u8 field_C; + u8 field_D; + u8 listTaskId; + u8 field_F; + u8 field_10; + u8 field_11; + u8 field_12; + u8 field_13; + u8 field_14; + u8 field_15; +}; + +struct UnkStruct_8019BA8 +{ + u8 field_0; + u8 field_1; + s8 field_2; + u8 field_3; +}; + +struct UnkStruct_URoom +{ + struct UnkStruct_Main0 *field_0; + struct UnkStruct_Main4 *field_4; + struct UnkStruct_Main0 *field_8; + struct UnkStruct_Main4 *field_C; + u16 field_10; + u16 field_12; + u8 state; + u8 stateAfterPrint; + u8 textState; + u8 field_17; + u8 field_18; + u8 field_19; + u8 field_1A; + u8 field_1B; + u8 field_1C; + u8 field_1D; + u8 field_1E; + u8 field_1F; + u8 field_20; + u8 spriteIds[40]; + u8 field_49; + u8 field_4A; + u16 field_4C[6]; + u8 field_58[0x98 - 0x58]; + u16 field_98; + u16 field_9A[3]; + struct UnkStruct_8019BA8 field_A0[8]; + u8 field_C0[12][15]; + u8 field_174[48]; + u8 field_1A4[200]; +}; + +union UnkUnion_Main +{ + struct UnkStruct_Leader *leader; + struct UnkStruct_Group *group; + struct UnkStruct_URoom *uRoom; +}; + +struct TradeUnkStruct +{ + u16 field_0; + u16 type; + u32 playerPersonality; + u8 field_8; + u8 field_9; + u16 playerSpecies; + u16 playerLevel; + u16 species; + u16 level; + u16 field_12; + u32 personality; +}; + +// Exported RAM declarations + +extern u8 gUnknown_02022C2C; +extern union UnkUnion_Main gUnknown_02022C30; +extern struct UnkLinkRfuStruct_02022B14Substruct gUnknown_02022C38; + +extern u16 gUnknown_02022C3C; +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); +void MEvent_CreateTask_CardOrNewsOverWireless(u32 arg0); +void MEvent_CreateTask_Leader(u32 arg0); + +#endif //GUARD_UNION_ROOM_H diff --git a/include/union_room_battle.h b/include/union_room_battle.h new file mode 100644 index 000000000..2f5086008 --- /dev/null +++ b/include/union_room_battle.h @@ -0,0 +1,7 @@ +#ifndef GUARD_UNION_ROOM_BATTLE_H +#define GUARD_UNION_ROOM_BATTLE_H + +u8 sub_8013C40(void); +void sub_8014210(u16 battleFlags); + +#endif //GUARD_UNION_ROOM_BATTLE_H diff --git a/include/union_room_chat.h b/include/union_room_chat.h new file mode 100755 index 000000000..17e482525 --- /dev/null +++ b/include/union_room_chat.h @@ -0,0 +1,7 @@ +#ifndef GUARD_UNION_ROOM_CHAT_H +#define GUARD_UNION_ROOM_CHAT_H + +void sub_801DD98(void); +void copy_strings_to_sav1(void); + +#endif // GUARD_UNION_ROOM_CHAT_H diff --git a/include/union_room_player_avatar.h b/include/union_room_player_avatar.h new file mode 100644 index 000000000..9870d0981 --- /dev/null +++ b/include/union_room_player_avatar.h @@ -0,0 +1,14 @@ +#ifndef GUARD_UNION_ROOM_PLAYER_AVATAR_H +#define GUARD_UNION_ROOM_PLAYER_AVATAR_H + +u8 sub_8019BA8(struct UnkStruct_8019BA8 * ptr); +void sub_8019E3C(void); +void sub_8019E70(u8 *arg0, s32 arg1); +void sub_8019F04(u8 *spriteIds); +void sub_8019F2C(void); +void sub_801A274(struct UnkStruct_URoom *arg0); +void sub_801A284(struct UnkStruct_URoom *arg0); +bool32 sub_801A2A8(struct UnkStruct_Main0 *arg0, s16 *arg1, s16 *arg2, u8 *arg3); +void sub_801A3D0(u32 arg0, u32 arg1, struct UnkStruct_Main0 *arg2); + +#endif //GUARD_UNION_ROOM_PLAYER_AVATAR_H diff --git a/include/util.h b/include/util.h index 56c89359a..77062de96 100644 --- a/include/util.h +++ b/include/util.h @@ -10,8 +10,8 @@ u8 CreateInvisibleSpriteWithCallback(void (*)(struct Sprite *)); void StoreWordInTwoHalfwords(u16 *, u32); void LoadWordFromTwoHalfwords(u16 *, u32 *); int CountTrailingZeroBits(u32 value); -u16 CalcCRC16(u8 *data, s32 length); -u16 CalcCRC16WithTable(u8 *data, u32 length); +u16 CalcCRC16(const u8 *data, s32 length); +u16 CalcCRC16WithTable(const u8 *data, u32 length); u32 CalcByteArraySum(const u8* data, u32 length); void BlendPalette(u16 palOffset, u16 numEntries, u8 coeff, u16 blendColor); void DoBgAffineSet(struct BgAffineDstData *dest, u32 texX, u32 texY, s16 scrX, s16 scrY, s16 sx, s16 sy, u16 alpha); |