diff options
38 files changed, 2465 insertions, 2413 deletions
| diff --git a/.travis.yml b/.travis.yml index e9964105e..8d39be503 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,8 +14,10 @@ cache:    apt: true  install:    - pushd $HOME -  - travis_retry wget https://github.com/devkitPro/buildscripts/releases/download/devkitARM_r50/devkitARM_r50-linux.tar.xz +  - travis_retry wget https://github.com/devkitPro/buildscripts/releases/download/devkitARM_r52/devkitARM_r52-linux.tar.xz    - tar xJf devkitARM*.tar.xz +  - travis_retry wget https://github.com/devkitPro/devkitarm-rules/releases/download/v1.0.0/devkitarm-rules-1.0.0.tar.xz +  - tar xJf devkitarm-rules-*.tar.xz -C $DEVKITARM    - travis_retry git clone https://github.com/pret/agbcc.git    - cd agbcc && ./build.sh && ./install.sh $TRAVIS_BUILD_DIR    - popd diff --git a/graphics/link_games/pkmnjump_321start2.png b/graphics/link_games/321start.pngBinary files differ index 2823feb81..2823feb81 100644 --- a/graphics/link_games/pkmnjump_321start2.png +++ b/graphics/link_games/321start.png diff --git a/graphics/link_games/pkmnjump_321start1.png b/graphics/link_games/321start_2.pngBinary files differ index 343fd3e7d..343fd3e7d 100644 --- a/graphics/link_games/pkmnjump_321start1.png +++ b/graphics/link_games/321start_2.png diff --git a/include/constants/global.h b/include/constants/global.h index 7c96de511..c7063d71c 100644 --- a/include/constants/global.h +++ b/include/constants/global.h @@ -67,6 +67,7 @@  #define FRONTIER_DOUBLES_PARTY_SIZE 4  #define FRONTIER_MULTI_PARTY_SIZE   2  #define MAX_FRONTIER_PARTY_SIZE     FRONTIER_DOUBLES_PARTY_SIZE +#define UNION_ROOM_PARTY_SIZE       2  // string lengths  #define ITEM_NAME_LENGTH 14 diff --git a/include/digit_obj_util.h b/include/digit_obj_util.h new file mode 100644 index 000000000..aca97e2c7 --- /dev/null +++ b/include/digit_obj_util.h @@ -0,0 +1,26 @@ +#ifndef GUARD_DIGIT_OBJ_UTIL_H +#define GUARD_DIGIT_OBJ_UTIL_H + +struct DigitObjUtilTemplate +{ +    u8 strConvMode:2; +    u8 shape:2; +    u8 size:2; +    u8 priority:2; +    u8 oamCount; +    u8 xDelta; +    s16 x; +    s16 y; +    const struct SpriteSheet *spriteSheet; +    const struct SpritePalette *spritePal; +}; + +bool32 DigitObjUtil_Init(u32 count); +void DigitObjUtil_Free(void); +bool32 DigitObjUtil_CreatePrinter(u32 id, s32 num, const struct DigitObjUtilTemplate *template); +void DigitObjUtil_PrintNumOn(u32 id, s32 arg1); +void DigitObjUtil_DeletePrinter(u32 id); +void DigitObjUtil_HideOrShow(u32 id, bool32 arg1); +u8 GetTilesPerImage(u32 shape, u32 size); + +#endif // GUARD_DIGIT_OBJ_UTIL_H diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h index 5e5a2361f..1dbe171bc 100644 --- a/include/field_player_avatar.h +++ b/include/field_player_avatar.h @@ -48,7 +48,7 @@ bool8 PartyHasMonWithSurf(void);  bool8 IsPlayerFacingSurfableFishableWater(void);  bool8 IsPlayerSurfingNorth(void);  void sub_808C228(u8 direction); -u8 sub_808BCD0(void); +u8 GetPlayerAvatarFlags(void);  void sub_808B578(void);  u8 GetFRLGAvatarGraphicsIdByGender(u8);  u8 GetRSAvatarGraphicsIdByGender(u8); diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index af2be9c77..2e451a368 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -304,7 +304,7 @@ enum  struct PlayerAvatar  {      /*0x00*/ u8 flags; -    /*0x01*/ u8 unk1; // used to be named bike, but its definitely not that. seems to be some transition flags +    /*0x01*/ u8 transitionFlags; // used to be named bike, but its definitely not that. seems to be some transition flags      /*0x02*/ u8 runningState; // this is a static running state. 00 is not moving, 01 is turn direction, 02 is moving.      /*0x03*/ u8 tileTransitionState; // this is a transition running state: 00 is not moving, 01 is transition between tiles, 02 means you are on the frame in which you have centered on a tile but are about to keep moving, even if changing directions. 2 is also used for a ledge hop, since you are transitioning.      /*0x04*/ u8 spriteId; diff --git a/include/minigame_countdown.h b/include/minigame_countdown.h new file mode 100644 index 000000000..930205218 --- /dev/null +++ b/include/minigame_countdown.h @@ -0,0 +1,7 @@ +#ifndef GUARD_MINIGAME_COUNTDOWN_H +#define GUARD_MINIGAME_COUNTDOWN_H + +void StartMinigameCountdown(u16 tilesTag, u16 palTag, s16 x, s16 y, u8 subpriority); +bool32 IsMinigameCountdownRunning(void); + +#endif //GUARD_MINIGAME_COUNTDOWN_H diff --git a/include/party_menu.h b/include/party_menu.h index 126931762..7f51d08c9 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -24,8 +24,8 @@ extern struct PartyMenu gPartyMenu;  extern bool8 gPartyMenuUseExitCallback;  extern u8 gSelectedMonPartyId;  extern MainCallback gPostMenuFieldCallback; -extern u8 gSelectedOrderFromParty[4]; -extern u8 gBattlePartyCurrentOrder[3]; +extern u8 gSelectedOrderFromParty[MAX_FRONTIER_PARTY_SIZE]; +extern u8 gBattlePartyCurrentOrder[PARTY_SIZE / 2];  extern void (*gItemUseCB)(u8, TaskFunc); diff --git a/include/pokemon_jump.h b/include/pokemon_jump.h index dde59aac5..9cf65212f 100644 --- a/include/pokemon_jump.h +++ b/include/pokemon_jump.h @@ -8,7 +8,5 @@ bool32 IsSpeciesAllowedInPokemonJump(u16 species);  void IsPokemonJumpSpeciesInParty(void);  void ResetPokeJumpResults(void);  void ShowPokemonJumpRecords(void); -void sub_802EB24(s16 tileTag, s16 palTag, s16 x, s16 y, u8 subpriority); -bool32 sub_802EB84(void);  #endif // GUARD_POKEMON_JUMP_H diff --git a/include/rom_8034C54.h b/include/rom_8034C54.h deleted file mode 100644 index 4da324dd1..000000000 --- a/include/rom_8034C54.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef GUARD_ROM_8034C54_H -#define GUARD_ROM_8034C54_H - -struct UnkStruct3 -{ -    u8 field_0_0:2; -    u8 shape:2; -    u8 size:2; -    u8 priority:2; -    u8 field_1; -    u8 xDelta; -    s16 x; -    s16 y; -    const struct SpriteSheet *spriteSheet; -    const struct SpritePalette *spritePal; -}; - -bool32 sub_8034C54(u32 count); -void sub_8034CC8(void); -bool32 sub_8034D14(u32 id, s32 arg1, const struct UnkStruct3 *arg2); -void sub_8035044(u32 id, s32 arg1); -void sub_80353DC(u32 id); -void sub_803547C(u32 id, bool32 arg1); -u8 sub_80355F8(u32 shape, u32 size); - -#endif // GUARD_ROM_8034C54_H diff --git a/ld_script.txt b/ld_script.txt index 1c4db64cc..74d9f6ae6 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -77,11 +77,12 @@ SECTIONS {          src/berry_powder.o(.text);          src/dodrio_berry_picking.o(.text);          src/pokemon_jump.o(.text); +        src/minigame_countdown.o(.text);          src/rtc.o(.text);          src/main_menu.o(.text);          src/battle_controllers.o(.text);          src/decompress.o(.text); -        src/rom_8034C54.o(.text); +        src/digit_obj_util.o(.text);          src/battle_bg.o(.text);          src/battle_main.o(.text);          src/battle_util.o(.text); @@ -460,10 +461,11 @@ SECTIONS {          src/berry_powder.o(.rodata);          src/dodrio_berry_picking.o(.rodata);          src/pokemon_jump.o(.rodata); +        src/minigame_countdown.o(.rodata);          src/rtc.o(.rodata);          src/main_menu.o(.rodata);          src/battle_controllers.o(.rodata); -        src/rom_8034C54.o(.rodata); +        src/digit_obj_util.o(.rodata);          src/data.o(.rodata);          src/battle_bg.o(.rodata);          src/battle_main.o(.rodata); diff --git a/src/battle_bg.c b/src/battle_bg.c index 01d05e68d..00c504bfd 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -691,6 +691,25 @@ static const struct BattleBackground gBattleTerrainTable[] =      },  }; +static void sub_8035648(void); + +// Unused +static void sub_8035608(void) +{ +    u8 spriteId; + +    ResetSpriteData(); +    spriteId = CreateSprite(&gUnknown_0831AC88, 0, 0, 0); +    gSprites[spriteId].invisible = TRUE; +    SetMainCallback2(sub_8035648); +} + +static void sub_8035648(void) +{ +    AnimateSprites(); +    BuildOamBuffer(); +} +  void BattleInitBgsAndWindows(void)  {      ResetBgsAndClearDma3BusyFlags(0); diff --git a/src/battle_dome.c b/src/battle_dome.c index 746d195d9..e4947825d 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -2578,7 +2578,7 @@ static void CreateDomeOpponentMons(u16 tournamentTrainerId)          // Create mon if it was selected, starting from back          for (i = FRONTIER_PARTY_SIZE - 1; i >= 0; i--)          { -            if (selectedMonBits & 4) +            if (selectedMonBits & (1 << (FRONTIER_PARTY_SIZE - 1)))              {                  CreateDomeOpponentMon(monsCount, tournamentTrainerId, i, otId);                  monsCount++; diff --git a/src/battle_main.c b/src/battle_main.c index 0f6ec40a4..e3eea60d0 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -4425,7 +4425,7 @@ static void HandleTurnActionSelectionState(void)                              RecordedBattle_ClearBattlerAction(gActiveBattler, 1);                              gBattleCommunication[gActiveBattler] = STATE_SELECTION_SCRIPT;                              *(gBattleStruct->selectionScriptFinished + gActiveBattler) = FALSE; -                            gBattleBufferB[gActiveBattler][1] = 0; +                            gBattleBufferB[gActiveBattler][1] = B_ACTION_USE_MOVE;                              *(gBattleStruct->stateIdAfterSelScript + gActiveBattler) = STATE_WAIT_ACTION_CHOSEN;                              return;                          } @@ -4553,7 +4553,7 @@ static void HandleTurnActionSelectionState(void)          case STATE_SELECTION_SCRIPT_MAY_RUN:              if (*(gBattleStruct->selectionScriptFinished + gActiveBattler))              { -                if (gBattleBufferB[gActiveBattler][1] == 13) +                if (gBattleBufferB[gActiveBattler][1] == B_ACTION_NOTHING_FAINTED)                  {                      gHitMarker |= HITMARKER_RUN;                      gChosenActionByBattler[gActiveBattler] = B_ACTION_RUN; diff --git a/src/battle_pike.c b/src/battle_pike.c index 9bc7254ec..6b31419a5 100644 --- a/src/battle_pike.c +++ b/src/battle_pike.c @@ -874,20 +874,20 @@ static bool8 TryInflictRandomStatus(void)  {      u8 j, i;      u8 count; -    u8 indices[3]; +    u8 indices[FRONTIER_PARTY_SIZE];      u32 status;      u16 species;      bool8 statusChosen;      struct Pokemon *mon; -    for (i = 0; i < 3; i++) +    for (i = 0; i < FRONTIER_PARTY_SIZE; i++)          indices[i] = i;      for (j = 0; j < 10; j++)      {          u8 temp, id; -        i = Random() % 3; -        id = Random() % 3; +        i = Random() % FRONTIER_PARTY_SIZE; +        id = Random() % FRONTIER_PARTY_SIZE;          SWAP(indices[i], indices[id], temp);      } @@ -921,7 +921,7 @@ static bool8 TryInflictRandomStatus(void)          {              status = sStatusFlags;              j = 0; -            for (i = 0; i < 3; i++) +            for (i = 0; i < FRONTIER_PARTY_SIZE; i++)              {                  mon = &gPlayerParty[indices[i]];                  if (GetAilmentFromStatus(GetMonData(mon, MON_DATA_STATUS)) == AILMENT_NONE @@ -963,7 +963,7 @@ static bool8 TryInflictRandomStatus(void)      }      j = 0; -    for (i = 0; i < 3; i++) +    for (i = 0; i < FRONTIER_PARTY_SIZE; i++)      {          mon = &gPlayerParty[indices[i]];          if (GetAilmentFromStatus(GetMonData(mon, MON_DATA_STATUS)) == AILMENT_NONE @@ -995,7 +995,7 @@ static bool8 AtLeastOneHealthyMon(void)          count = 3;      healthyMonsCount = 0; -    for (i = 0; i < 3; i++) +    for (i = 0; i < FRONTIER_PARTY_SIZE; i++)      {          struct Pokemon *mon = &gPlayerParty[i];          if (GetAilmentFromStatus(GetMonData(mon, MON_DATA_STATUS)) == AILMENT_NONE @@ -1262,23 +1262,23 @@ static void Task_DoStatusInflictionScreenFlash(u8 taskId)  static void TryHealMons(u8 healCount)  {      u8 j, i, k; -    u8 indices[3]; +    u8 indices[FRONTIER_PARTY_SIZE];      if (healCount == 0)          return; -    for (i = 0; i < 3; i++) +    for (i = 0; i < FRONTIER_PARTY_SIZE; i++)          indices[i] = i;      for (k = 0; k < 10; k++)      {          u8 temp; -        i = Random() % 3; -        j = Random() % 3; +        i = Random() % FRONTIER_PARTY_SIZE; +        j = Random() % FRONTIER_PARTY_SIZE;          SWAP(indices[i], indices[j], temp);      } -    for (i = 0; i < 3; i++) +    for (i = 0; i < FRONTIER_PARTY_SIZE; i++)      {          bool32 canBeHealed = FALSE;          struct Pokemon *mon = &gPlayerParty[indices[i]]; @@ -1483,7 +1483,7 @@ static bool8 AtLeastTwoAliveMons(void)      mon = &gPlayerParty[0];      countDead = 0; -    for (i = 0; i < 3; i++, mon++) +    for (i = 0; i < FRONTIER_PARTY_SIZE; i++, mon++)      {          if (GetMonData(mon, MON_DATA_HP) == 0)              countDead++; diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 729cce0c9..84f2b1f4d 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -8925,7 +8925,7 @@ static void Cmd_jumpifnopursuitswitchdmg(void)          for (i = 0; i < gBattlersCount; i++)          {              if (gBattlerByTurnOrder[i] == gBattlerTarget) -                gActionsByTurnOrder[i] = 11; +                gActionsByTurnOrder[i] = B_ACTION_TRY_FINISH;          }          gCurrentMove = MOVE_PURSUIT; @@ -10005,7 +10005,7 @@ static void Cmd_pursuitrelated(void)      if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE          && !(gAbsentBattlerFlags & gBitTable[gActiveBattler]) -        && gChosenActionByBattler[gActiveBattler] == 0 +        && gChosenActionByBattler[gActiveBattler] == B_ACTION_USE_MOVE          && gChosenMoveByBattler[gActiveBattler] == MOVE_PURSUIT)      {          gActionsByTurnOrder[gActiveBattler] = 11; diff --git a/src/battle_tower.c b/src/battle_tower.c index 4890e7a05..4695d9aa0 100644 --- a/src/battle_tower.c +++ b/src/battle_tower.c @@ -24,6 +24,7 @@  #include "tv.h"  #include "battle_factory.h"  #include "constants/apprentice.h" +#include "constants/battle_dome.h"  #include "constants/battle_frontier.h"  #include "constants/battle_frontier_mons.h"  #include "constants/battle_tent_mons.h" @@ -2054,7 +2055,7 @@ void DoSpecialTrainerBattle(void)          if (VarGet(VAR_FRONTIER_BATTLE_MODE) == FRONTIER_MODE_DOUBLES)              gBattleTypeFlags |= BATTLE_TYPE_DOUBLE;          if (gTrainerBattleOpponent_A == TRAINER_FRONTIER_BRAIN) -            FillFrontierTrainerParty(2); +            FillFrontierTrainerParty(DOME_BATTLE_PARTY_SIZE);          CreateTask(Task_StartBattleAfterTransition, 1);          sub_806E694(0);          BattleTransition_StartOnField(sub_80B100C(3)); @@ -2211,12 +2212,12 @@ static void nullsub_116(void)  static void GetApprenticeMultiPartnerParty(u16 trainerId)  {      s32 i, count; -    u32 validSpecies[3]; +    u32 validSpecies[MULTI_PARTY_SIZE];      u16 species1 = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES, NULL);      u16 species2 = GetMonData(&gPlayerParty[1], MON_DATA_SPECIES, NULL);      count = 0; -    for (i = 0; i < 3; i++) +    for (i = 0; i < MULTI_PARTY_SIZE; i++)      {          u16 apprenticeSpecies = gSaveBlock2Ptr->apprentices[trainerId - TRAINER_RECORD_MIXING_APPRENTICE].party[i].species;          if (apprenticeSpecies != species1 && apprenticeSpecies != species2) @@ -2340,7 +2341,7 @@ static void LoadMultiPartnerCandidatesData(void)              && gSaveBlock2Ptr->apprentices[i].lvlMode - 1 == lvlMode)          {              k = 0; -            for (j = 0; j < 3; j++) +            for (j = 0; j < MULTI_PARTY_SIZE; j++)              {                  if (species1 != gSaveBlock2Ptr->apprentices[i].party[j].species                      && species2 != gSaveBlock2Ptr->apprentices[i].party[j].species) @@ -2948,26 +2949,26 @@ static void FillPartnerParty(u16 trainerId)      if (trainerId == TRAINER_STEVEN_PARTNER)      { -        for (i = 0; i < 3; i++) +        for (i = 0; i < MULTI_PARTY_SIZE; i++)          {              do              {                  j = Random32();              } while (IsShinyOtIdPersonality(STEVEN_OTID, j) || sStevenMons[i].nature != GetNatureFromPersonality(j)); -            CreateMon(&gPlayerParty[3 + i], +            CreateMon(&gPlayerParty[MULTI_PARTY_SIZE + i],                        sStevenMons[i].species,                        sStevenMons[i].level,                        sStevenMons[i].fixedIV,                        TRUE, i, // BUG: personality was stored in the 'j' variable. As a result, Steven's pokemon do not have the intended natures.                        OT_ID_PRESET, STEVEN_OTID);              for (j = 0; j < PARTY_SIZE; j++) -                SetMonData(&gPlayerParty[3 + i], MON_DATA_HP_EV + j, &sStevenMons[i].evs[j]); +                SetMonData(&gPlayerParty[MULTI_PARTY_SIZE + i], MON_DATA_HP_EV + j, &sStevenMons[i].evs[j]);              for (j = 0; j < MAX_MON_MOVES; j++) -                SetMonMoveSlot(&gPlayerParty[3 + i], sStevenMons[i].moves[j], j); -            SetMonData(&gPlayerParty[3 + i], MON_DATA_OT_NAME, gTrainers[TRAINER_STEVEN].trainerName); +                SetMonMoveSlot(&gPlayerParty[MULTI_PARTY_SIZE + i], sStevenMons[i].moves[j], j); +            SetMonData(&gPlayerParty[MULTI_PARTY_SIZE + i], MON_DATA_OT_NAME, gTrainers[TRAINER_STEVEN].trainerName);              j = MALE; -            SetMonData(&gPlayerParty[3 + i], MON_DATA_OT_GENDER, &j); -            CalculateMonStats(&gPlayerParty[3 + i]); +            SetMonData(&gPlayerParty[MULTI_PARTY_SIZE + i], MON_DATA_OT_GENDER, &j); +            CalculateMonStats(&gPlayerParty[MULTI_PARTY_SIZE + i]);          }      }      else if (trainerId == TRAINER_EREADER) @@ -2980,10 +2981,10 @@ static void FillPartnerParty(u16 trainerId)          level = SetFacilityPtrsGetLevel();          ivs = GetFrontierTrainerFixedIvs(trainerId);          otID = Random32(); -        for (i = 0; i < 2; i++) +        for (i = 0; i < FRONTIER_MULTI_PARTY_SIZE; i++)          {              monId = gSaveBlock2Ptr->frontier.trainerIds[i + 18]; -            CreateMonWithEVSpreadNatureOTID(&gPlayerParty[3 + i], +            CreateMonWithEVSpreadNatureOTID(&gPlayerParty[MULTI_PARTY_SIZE + i],                                                   gFacilityTrainerMons[monId].species,                                                   level,                                                   gFacilityTrainerMons[monId].nature, @@ -2993,23 +2994,23 @@ static void FillPartnerParty(u16 trainerId)              friendship = MAX_FRIENDSHIP;              for (j = 0; j < MAX_MON_MOVES; j++)              { -                SetMonMoveSlot(&gPlayerParty[3 + i], gFacilityTrainerMons[monId].moves[j], j); +                SetMonMoveSlot(&gPlayerParty[MULTI_PARTY_SIZE + i], gFacilityTrainerMons[monId].moves[j], j);                  if (gFacilityTrainerMons[monId].moves[j] == MOVE_FRUSTRATION)                      friendship = 0;              } -            SetMonData(&gPlayerParty[3 + i], MON_DATA_FRIENDSHIP, &friendship); -            SetMonData(&gPlayerParty[3 + i], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId]); +            SetMonData(&gPlayerParty[MULTI_PARTY_SIZE + i], MON_DATA_FRIENDSHIP, &friendship); +            SetMonData(&gPlayerParty[MULTI_PARTY_SIZE + i], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId]);              for (j = 0; j < PLAYER_NAME_LENGTH + 1; j++)                  trainerName[j] = gFacilityTrainers[trainerId].trainerName[j]; -            SetMonData(&gPlayerParty[3 + i], MON_DATA_OT_NAME, &trainerName); +            SetMonData(&gPlayerParty[MULTI_PARTY_SIZE + i], MON_DATA_OT_NAME, &trainerName);              j = IsFrontierTrainerFemale(trainerId); -            SetMonData(&gPlayerParty[3 + i], MON_DATA_OT_GENDER, &j); +            SetMonData(&gPlayerParty[MULTI_PARTY_SIZE + i], MON_DATA_OT_GENDER, &j);          }      }      else if (trainerId < TRAINER_RECORD_MIXING_APPRENTICE)      {          trainerId -= TRAINER_RECORD_MIXING_FRIEND; -        for (i = 0; i < 2; i++) +        for (i = 0; i < FRONTIER_MULTI_PARTY_SIZE; i++)          {              struct EmeraldBattleTowerRecord *record = &gSaveBlock2Ptr->frontier.towerRecords[trainerId];              struct BattleTowerPokemon monData = record->party[gSaveBlock2Ptr->frontier.trainerIds[18 + i]]; @@ -3027,20 +3028,20 @@ static void FillPartnerParty(u16 trainerId)                  if (monData.nickname[0] == EXT_CTRL_CODE_BEGIN && monData.nickname[1] == EXT_CTRL_CODE_JPN)                      trainerName[5] = EOS;              } -            CreateBattleTowerMon2(&gPlayerParty[3 + i], &monData, TRUE); -            SetMonData(&gPlayerParty[3 + i], MON_DATA_OT_NAME, trainerName); +            CreateBattleTowerMon2(&gPlayerParty[MULTI_PARTY_SIZE + i], &monData, TRUE); +            SetMonData(&gPlayerParty[MULTI_PARTY_SIZE + i], MON_DATA_OT_NAME, trainerName);              j = IsFrontierTrainerFemale(trainerId + TRAINER_RECORD_MIXING_FRIEND); -            SetMonData(&gPlayerParty[3 + i], MON_DATA_OT_GENDER, &j); +            SetMonData(&gPlayerParty[MULTI_PARTY_SIZE + i], MON_DATA_OT_GENDER, &j);          }      }      else      {          trainerId -= TRAINER_RECORD_MIXING_APPRENTICE; -        for (i = 0; i < 2; i++) +        for (i = 0; i < FRONTIER_MULTI_PARTY_SIZE; i++)          { -            CreateApprenticeMon(&gPlayerParty[3 + i], &gSaveBlock2Ptr->apprentices[trainerId], gSaveBlock2Ptr->frontier.trainerIds[18 + i]); +            CreateApprenticeMon(&gPlayerParty[MULTI_PARTY_SIZE + i], &gSaveBlock2Ptr->apprentices[trainerId], gSaveBlock2Ptr->frontier.trainerIds[18 + i]);              j = IsFrontierTrainerFemale(trainerId + TRAINER_RECORD_MIXING_APPRENTICE); -            SetMonData(&gPlayerParty[3 + i], MON_DATA_OT_GENDER, &j); +            SetMonData(&gPlayerParty[MULTI_PARTY_SIZE + i], MON_DATA_OT_GENDER, &j);          }      }  } @@ -3351,7 +3352,7 @@ static void SetNextBattleTentOpponent(void)  static void FillTentTrainerParty_(u16 trainerId, u8 firstMonId, u8 monCount)  {      s32 i, j; -    u16 chosenMonIndices[4]; +    u16 chosenMonIndices[MAX_FRONTIER_PARTY_SIZE];      u8 friendship;      u8 level = SetTentPtrsGetLevel();      u8 fixedIV = 0; diff --git a/src/berry_crush.c b/src/berry_crush.c index 542888631..a67d1548e 100755 --- a/src/berry_crush.c +++ b/src/berry_crush.c @@ -19,9 +19,9 @@  #include "menu.h"  #include "overworld.h"  #include "palette.h" -#include "pokemon_jump.h" +#include "minigame_countdown.h"  #include "random.h" -#include "rom_8034C54.h" +#include "digit_obj_util.h"  #include "save.h"  #include "scanline_effect.h"  #include "script.h" @@ -714,14 +714,14 @@ static const struct SpriteTemplate gUnknown_082F436C =      .callback = SpriteCallbackDummy  }; -static const struct UnkStruct3 gUnknown_082F4384[] =  +static const struct DigitObjUtilTemplate gUnknown_082F4384[] =   {      { -        .field_0_0 = 1, +        .strConvMode = 1,          .shape = 2,          .size = 0,          .priority = 0, -        .field_1 = 2,  +        .oamCount = 2,           .xDelta = 8,           .x = 156,          .y = 0, @@ -729,11 +729,11 @@ static const struct UnkStruct3 gUnknown_082F4384[] =          .spritePal = gUnknown_082F422C,      },      { -        .field_0_0 = 0, +        .strConvMode = 0,          .shape = 2,          .size = 0,          .priority = 0, -        .field_1 = 2,  +        .oamCount = 2,           .xDelta = 8,           .x = 180,          .y = 0, @@ -741,11 +741,11 @@ static const struct UnkStruct3 gUnknown_082F4384[] =          .spritePal = gUnknown_082F422C,      },      { -        .field_0_0 = 0, +        .strConvMode = 0,          .shape = 2,          .size = 0,          .priority = 0, -        .field_1 = 2,  +        .oamCount = 2,           .xDelta = 8,           .x = 204,          .y = 0, @@ -1036,7 +1036,7 @@ int sub_802104C(void)      case 1:          CpuFill16(0, (void *)OAM, OAM_SIZE);          gReservedSpritePaletteCount = 0; -        sub_8034C54(3); +        DigitObjUtil_Init(3);          break;      case 2:          ResetPaletteFade(); @@ -1165,7 +1165,7 @@ int sub_802130C(void)      case 6:          DestroyWirelessStatusIndicatorSprite();          sub_8022960(var0); -        sub_8034CC8(); +        DigitObjUtil_Free();          break;      case 7:          var0->unkC = 0; @@ -1701,18 +1701,18 @@ void ShowBerryCrushRankings(void)  void sub_8022524(struct BerryCrushGame_138 *r4, u16 r1)  {      sub_8021944(r4, r1); -    sub_8035044(0, r4->unk4); -    sub_8035044(1, r4->unk6); -    sub_8035044(2, r4->unk8); +    DigitObjUtil_PrintNumOn(0, r4->unk4); +    DigitObjUtil_PrintNumOn(1, r4->unk6); +    DigitObjUtil_PrintNumOn(2, r4->unk8);  }  void sub_8022554(struct BerryCrushGame_138 *r0)  {      r0->unk78[0]->invisible = TRUE;      r0->unk78[1]->invisible = TRUE; -    sub_803547C(2, 1); -    sub_803547C(1, 1); -    sub_803547C(0, 1); +    DigitObjUtil_HideOrShow(2, 1); +    DigitObjUtil_HideOrShow(1, 1); +    DigitObjUtil_HideOrShow(0, 1);  }  void sub_8022588(struct BerryCrushGame *r5) @@ -1855,9 +1855,9 @@ void sub_8022730(struct BerryCrushGame *r6)          r6->unk138.unk78[r5]->invisible = FALSE;          r6->unk138.unk78[r5]->animPaused = FALSE;      } -    sub_8034D14(0, 0, &gUnknown_082F4384[0]); -    sub_8034D14(1, 0, &gUnknown_082F4384[1]); -    sub_8034D14(2, 0, &gUnknown_082F4384[2]); +    DigitObjUtil_CreatePrinter(0, 0, &gUnknown_082F4384[0]); +    DigitObjUtil_CreatePrinter(1, 0, &gUnknown_082F4384[1]); +    DigitObjUtil_CreatePrinter(2, 0, &gUnknown_082F4384[2]);      if (r6->unk12 == 1)          sub_8022554(&r6->unk138);  } @@ -1875,9 +1875,9 @@ void sub_8022960(struct BerryCrushGame *r5)      FreeSpritePaletteByTag(1);      for (; r4 < ARRAY_COUNT(r5->unk138.unk78); ++r4)          DestroySprite(r5->unk138.unk78[r4]); -    sub_80353DC(2); -    sub_80353DC(1); -    sub_80353DC(0); +    DigitObjUtil_DeletePrinter(2); +    DigitObjUtil_DeletePrinter(1); +    DigitObjUtil_DeletePrinter(0);      for (r4 = 0; r4 < ARRAY_COUNT(r5->unk138.unk4C); ++r4)          DestroySprite(r5->unk138.unk4C[r4]);      for (r4 = 0; r4 < r5->unk9; ++r4) @@ -2317,10 +2317,10 @@ static u32 sub_80232EC(struct BerryCrushGame *r4,  __attribute__((unused)) u8 *r      case 1:          if (!IsLinkTaskFinished())              return 0; -        sub_802EB24(0x1000, 0x1000, 120, 80, 0); +        StartMinigameCountdown(0x1000, 0x1000, 120, 80, 0);          break;      case 2: -        if (sub_802EB84()) +        if (IsMinigameCountdownRunning())              return 0;          // fallthrough      case 0: diff --git a/src/data/pokemon_graphics/front_pic_anims.h b/src/data/pokemon_graphics/front_pic_anims.h index 4c97af1a7..671fc5fad 100644 --- a/src/data/pokemon_graphics/front_pic_anims.h +++ b/src/data/pokemon_graphics/front_pic_anims.h @@ -7391,3 +7391,6 @@ const union AnimCmd *const *const gMonFrontAnimsPtrTable[] =      ANIM_CMD(UNOWN_EMARK),      ANIM_CMD(UNOWN_QMARK),  }; + +#undef ANIM_CMD +#undef ANIM_CMD_FULL diff --git a/src/data/pokemon_graphics/unknown_anims.h b/src/data/pokemon_graphics/unknown_anims.h index bb4862d09..ea7ab34a2 100644 --- a/src/data/pokemon_graphics/unknown_anims.h +++ b/src/data/pokemon_graphics/unknown_anims.h @@ -1,5 +1,5 @@  // unused and unkown -static const union AnimCmd gUnknown_082FF71C[] = +static const union AnimCmd sUnknownAnim_BLAZIKEN_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_FRAME(1, 25), @@ -9,7 +9,7 @@ static const union AnimCmd gUnknown_082FF71C[] =      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF734[] = +static const union AnimCmd sUnknownAnim_BLAZIKEN_2[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_FRAME(2, 8), @@ -17,20 +17,20 @@ static const union AnimCmd gUnknown_082FF734[] =      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF744[] = +static const union AnimCmd sUnknownAnim_BLAZIKEN_3[] =  {      ANIMCMD_FRAME(0, 10),      ANIMCMD_FRAME(2, 10),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF750[] = +static const union AnimCmd sUnknownAnim_BLAZIKEN_4[] =  {      ANIMCMD_FRAME(0, 10),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF758[] = +static const union AnimCmd sUnknownAnim_MARSHTOMP_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_FRAME(1, 5), @@ -41,7 +41,7 @@ static const union AnimCmd gUnknown_082FF758[] =      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF774[] = +static const union AnimCmd sUnknownAnim_MARSHTOMP_2[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_FRAME(2, 12), @@ -52,14 +52,14 @@ static const union AnimCmd gUnknown_082FF774[] =      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF790[] = +static const union AnimCmd sUnknownAnim_MARSHTOMP_3[] =  {      ANIMCMD_FRAME(0, 14),      ANIMCMD_FRAME(2, 12),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF79C[] = +static const union AnimCmd sUnknownAnim_POOCHYENA_1[] =  {      ANIMCMD_FRAME(0, 10),      ANIMCMD_FRAME(1, 10), @@ -68,7 +68,7 @@ static const union AnimCmd gUnknown_082FF79C[] =      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF7B0[] = +static const union AnimCmd sUnknownAnim_POOCHYENA_2[] =  {      ANIMCMD_FRAME(0, 10),      ANIMCMD_FRAME(2, 10), @@ -77,193 +77,193 @@ static const union AnimCmd gUnknown_082FF7B0[] =      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF7C4[] = +static const union AnimCmd sUnknownAnim_MIGHTYENA_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF7CC[] = +static const union AnimCmd sUnknownAnim_ZIGZAGOON_1[] =  {      ANIMCMD_FRAME(0, 5),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF7D4[] = +static const union AnimCmd sUnknownAnim_LINOONE_1[] =  {      ANIMCMD_FRAME(0, 5),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF7DC[] = +static const union AnimCmd sUnknownAnim_WURMPLE_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF7E4[] = +static const union AnimCmd sUnknownAnim_WURMPLE_2[] =  {      ANIMCMD_FRAME(1, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF7EC[] = +static const union AnimCmd sUnknownAnim_SILCOON_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF7F4[] = +static const union AnimCmd sUnknownAnim_SILCOON_2[] =  {      ANIMCMD_FRAME(1, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF7FC[] = +static const union AnimCmd sUnknownAnim_BEAUTIFLY_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF804[] = +static const union AnimCmd sUnknownAnim_BEAUTIFLY_2[] =  {      ANIMCMD_FRAME(1, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF80C[] = +static const union AnimCmd sUnknownAnim_CASCOON_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF814[] = +static const union AnimCmd sUnknownAnim_CASCOON_2[] =  {      ANIMCMD_FRAME(1, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF81C[] = +static const union AnimCmd sUnknownAnim_DUSTOX_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF824[] = +static const union AnimCmd sUnknownAnim_DUSTOX_2[] =  {      ANIMCMD_FRAME(1, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF82C[] = +static const union AnimCmd sUnknownAnim_LOMBRE_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF834[] = +static const union AnimCmd sUnknownAnim_LUDICOLO_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF83C[] = +static const union AnimCmd sUnknownAnim_LUDICOLO_2[] =  {      ANIMCMD_FRAME(1, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF844[] = +static const union AnimCmd sUnknownAnim_SEEDOT_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF84C[] = +static const union AnimCmd sUnknownAnim_NUZLEAF_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF854[] = +static const union AnimCmd sUnknownAnim_SHIFTRY_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF85C[] = +static const union AnimCmd sUnknownAnim_SHIFTRY_2[] =  {      ANIMCMD_FRAME(1, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF864[] = +static const union AnimCmd sUnknownAnim_TAILLOW_1[] =  {      ANIMCMD_FRAME(0, 5),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF86C[] = +static const union AnimCmd sUnknownAnim_SWELLOW_1[] =  {      ANIMCMD_FRAME(0, 5),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF874[] = +static const union AnimCmd sUnknownAnim_SHROOMISH_1[] =  {      ANIMCMD_FRAME(0, 5),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF87C[] = +static const union AnimCmd sUnknownAnim_BRELOOM_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF884[] = +static const union AnimCmd sUnknownAnim_WINGULL_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF88C[] = +static const union AnimCmd sUnknownAnim_PELIPPER_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF894[] = +static const union AnimCmd sUnknownAnim_PELIPPER_2[] =  {      ANIMCMD_FRAME(1, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF89C[] = +static const union AnimCmd sUnknownAnim_SURSKIT_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF8A4[] = +static const union AnimCmd sUnknownAnim_SURSKIT_2[] =  {      ANIMCMD_FRAME(1, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF8AC[] = +static const union AnimCmd sUnknownAnim_MASQUERAIN_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF8B4[] = +static const union AnimCmd sUnknownAnim_MASQUERAIN_2[] =  {      ANIMCMD_FRAME(1, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF8BC[] = +static const union AnimCmd sUnknownAnim_WAILMER_1[] =  {      ANIMCMD_FRAME(0, 15),      ANIMCMD_FRAME(8, 15), @@ -283,7 +283,7 @@ static const union AnimCmd gUnknown_082FF8BC[] =      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF8FC[] = +static const union AnimCmd sUnknownAnim_WAILMER_2[] =  {      ANIMCMD_FRAME(0, 10),      ANIMCMD_FRAME(8, 15), @@ -295,7 +295,7 @@ static const union AnimCmd gUnknown_082FF8FC[] =      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF91C[] = +static const union AnimCmd sUnknownAnim_WAILMER_3[] =  {      ANIMCMD_FRAME(0, 10),      ANIMCMD_FRAME(9, 10), @@ -304,26 +304,26 @@ static const union AnimCmd gUnknown_082FF91C[] =      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF930[] = +static const union AnimCmd sUnknownAnim_WAILMER_4[] =  {      ANIMCMD_FRAME(0, 15),      ANIMCMD_FRAME(11, 15),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF93C[] = +static const union AnimCmd sUnknownAnim_SKITTY_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF944[] = +static const union AnimCmd sUnknownAnim_DELCATTY_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF94C[] = +static const union AnimCmd sUnknownAnim_KECLEON_1[] =  {      ANIMCMD_FRAME(0, 10),      ANIMCMD_FRAME(1, 7), @@ -350,7 +350,7 @@ static const union AnimCmd gUnknown_082FF94C[] =      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FF9A8[] = +static const union AnimCmd sUnknownAnim_KECLEON_2[] =  {      ANIMCMD_FRAME(0, 12),      ANIMCMD_FRAME(7, 12), @@ -376,7 +376,7 @@ static const union AnimCmd gUnknown_082FF9A8[] =      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFA00[] = +static const union AnimCmd sUnknownAnim_KECLEON_3[] =  {      ANIMCMD_FRAME(0, 12),      ANIMCMD_FRAME(7, 12), @@ -402,182 +402,182 @@ static const union AnimCmd gUnknown_082FFA00[] =      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFA58[] = +static const union AnimCmd sUnknownAnim_KECLEON_4[] =  {      ANIMCMD_FRAME(0,18),      ANIMCMD_FRAME(10, 18),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFA64[] = +static const union AnimCmd sUnknownAnim_BALTOY_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFA6C[] = +static const union AnimCmd sUnknownAnim_CLAYDOL_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFA74[] = +static const union AnimCmd sUnknownAnim_NOSEPASS_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFA7C[] = +static const union AnimCmd sUnknownAnim_SABLEYE_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFA84[] = +static const union AnimCmd sUnknownAnim_SABLEYE_2[] =  {      ANIMCMD_FRAME(1, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFA8C[] = +static const union AnimCmd sUnknownAnim_LUVDISC_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFA94[] = +static const union AnimCmd sUnknownAnim_LUVDISC_2[] =  {      ANIMCMD_FRAME(1, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFA9C[] = +static const union AnimCmd sUnknownAnim_FEEBAS_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFAA4[] = +static const union AnimCmd sUnknownAnim_FEEBAS_2[] =  {      ANIMCMD_FRAME(1, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFAAC[] = +static const union AnimCmd sUnknownAnim_MILOTIC_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFAB4[] = +static const union AnimCmd sUnknownAnim_MILOTIC_2[] =  {      ANIMCMD_FRAME(1, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFABC[] = +static const union AnimCmd sUnknownAnim_CARVANHA_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFAC4[] = +static const union AnimCmd sUnknownAnim_CARVANHA_2[] =  {      ANIMCMD_FRAME(1, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFACC[] = +static const union AnimCmd sUnknownAnim_SHARPEDO_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFAD4[] = +static const union AnimCmd sUnknownAnim_SHARPEDO_2[] =  {      ANIMCMD_FRAME(1, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFADC[] = +static const union AnimCmd sUnknownAnim_TRAPINCH_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFAE4[] = +static const union AnimCmd sUnknownAnim_VIBRAVA_1[] =  {      ANIMCMD_FRAME(0, 63),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFAEC[] = +static const union AnimCmd sUnknownAnim_FLYGON_1[] =  {      ANIMCMD_FRAME(0, 63),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFAF4[] = +static const union AnimCmd sUnknownAnim_MAKUHITA_1[] =  {      ANIMCMD_FRAME(0, 63),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFAFC[] = +static const union AnimCmd sUnknownAnim_HARIYAMA_1[] =  {      ANIMCMD_FRAME(0, 63),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFB04[] = +static const union AnimCmd sUnknownAnim_ELECTRIKE_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFB0C[] = +static const union AnimCmd sUnknownAnim_ELECTRIKE_2[] =  {      ANIMCMD_FRAME(1, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFB14[] = +static const union AnimCmd sUnknownAnim_MANECTRIC_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFB1C[] = +static const union AnimCmd sUnknownAnim_NUMEL_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFB24[] = +static const union AnimCmd sUnknownAnim_NUMEL_2[] =  {      ANIMCMD_FRAME(1, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFB2C[] = +static const union AnimCmd sUnknownAnim_CAMERUPT_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFB34[] = +static const union AnimCmd sUnknownAnim_SPHEAL_1[] =  {      ANIMCMD_FRAME(0, 5),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFB3C[] = +static const union AnimCmd sUnknownAnim_SEALEO_1[] =  {      ANIMCMD_FRAME(0, 5),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFB44[] = +static const union AnimCmd sUnknownAnim_WALREIN_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_FRAME(1, 18), @@ -588,7 +588,7 @@ static const union AnimCmd gUnknown_082FFB44[] =      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFB60[] = +static const union AnimCmd sUnknownAnim_WALREIN_2[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_FRAME(2, 18), @@ -599,7 +599,7 @@ static const union AnimCmd gUnknown_082FFB60[] =      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFB7C[] = +static const union AnimCmd sUnknownAnim_AZURILL_1[] =  {      ANIMCMD_FRAME(0, 5),      ANIMCMD_FRAME(2, 5), @@ -619,7 +619,7 @@ static const union AnimCmd gUnknown_082FFB7C[] =      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFBBC[] = +static const union AnimCmd sUnknownAnim_AZURILL_2[] =  {      ANIMCMD_FRAME(0, 6),      ANIMCMD_FRAME(1, 6), @@ -632,7 +632,7 @@ static const union AnimCmd gUnknown_082FFBBC[] =      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFBE0[] = +static const union AnimCmd sUnknownAnim_AZURILL_3[] =  {      ANIMCMD_FRAME(0, 12),      ANIMCMD_FRAME(5, 12), @@ -641,61 +641,61 @@ static const union AnimCmd gUnknown_082FFBE0[] =      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFBF4[] = +static const union AnimCmd sUnknownAnim_AZURILL_4[] =  {      ANIMCMD_FRAME(7, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFBFC[] = +static const union AnimCmd sUnknownAnim_SPOINK_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFC04[] = +static const union AnimCmd sUnknownAnim_SPOINK_2[] =  {      ANIMCMD_FRAME(1, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFC0C[] = +static const union AnimCmd sUnknownAnim_GRUMPIG_1[] =  {      ANIMCMD_FRAME(0, 63),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFC14[] = +static const union AnimCmd sUnknownAnim_PLUSLE_1[] =  {      ANIMCMD_FRAME(0, 63),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFC1C[] = +static const union AnimCmd sUnknownAnim_MINUN_1[] =  {      ANIMCMD_FRAME(0, 63),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFC24[] = +static const union AnimCmd sUnknownAnim_MAWILE_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFC2C[] = +static const union AnimCmd sUnknownAnim_MEDITITE_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFC34[] = +static const union AnimCmd sUnknownAnim_MEDICHAM_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFC3C[] = +static const union AnimCmd sUnknownAnim_SWABLU_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_FRAME(1, 10), @@ -706,7 +706,7 @@ static const union AnimCmd gUnknown_082FFC3C[] =      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFC58[] = +static const union AnimCmd sUnknownAnim_SWABLU_2[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_FRAME(2, 8), @@ -717,217 +717,217 @@ static const union AnimCmd gUnknown_082FFC58[] =      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFC74[] = +static const union AnimCmd sUnknownAnim_ALTARIA_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFC7C[] = +static const union AnimCmd sUnknownAnim_WYNAUT_1[] =  {      ANIMCMD_FRAME(0, 10),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFC84[] = +static const union AnimCmd sUnknownAnim_WYNAUT_2[] =  {      ANIMCMD_FRAME(1, 9),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFC8C[] = +static const union AnimCmd sUnknownAnim_DUSKULL_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFC94[] = +static const union AnimCmd sUnknownAnim_DUSKULL_2[] =  {      ANIMCMD_FRAME(1, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFC9C[] = +static const union AnimCmd sUnknownAnim_DUSCLOPS_1[] =  {      ANIMCMD_FRAME(0, 10),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFCA4[] = +static const union AnimCmd sUnknownAnim_DUSCLOPS_2[] =  {      ANIMCMD_FRAME(1, 10),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFCAC[] = +static const union AnimCmd sUnknownAnim_SLAKOTH_1[] =  {      ANIMCMD_FRAME(0, 5),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFCB4[] = +static const union AnimCmd sUnknownAnim_VIGOROTH_1[] =  {      ANIMCMD_FRAME(0, 5),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFCBC[] = +static const union AnimCmd sUnknownAnim_SLAKING_1[] =  {      ANIMCMD_FRAME(0, 5),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFCC4[] = +static const union AnimCmd sUnknownAnim_GULPIN_1[] =  {      ANIMCMD_FRAME(0, 5),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFCCC[] = +static const union AnimCmd sUnknownAnim_SWALOT_1[] =  {      ANIMCMD_FRAME(0, 5),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFCD4[] = +static const union AnimCmd sUnknownAnim_TROPIUS_1[] =  {      ANIMCMD_FRAME(0, 5),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFCDC[] = +static const union AnimCmd sUnknownAnim_CLAMPERL_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFCE4[] = +static const union AnimCmd sUnknownAnim_ABSOL_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFCEC[] = +static const union AnimCmd sUnknownAnim_SHUPPET_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFCF4[] = +static const union AnimCmd sUnknownAnim_SHUPPET_2[] =  {      ANIMCMD_FRAME(1, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFCFC[] = +static const union AnimCmd sUnknownAnim_BANETTE_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFD04[] = +static const union AnimCmd sUnknownAnim_ARON_1[] =  {      ANIMCMD_FRAME(0, 5),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFD0C[] = +static const union AnimCmd sUnknownAnim_LAIRON_1[] =  {      ANIMCMD_FRAME(0, 5),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFD14[] = +static const union AnimCmd sUnknownAnim_AGGRON_1[] =  {      ANIMCMD_FRAME(0, 5),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFD1C[] = +static const union AnimCmd sUnknownAnim_CASTFORM_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFD24[] = +static const union AnimCmd sUnknownAnim_CASTFORM_2[] =  {      ANIMCMD_FRAME(1, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFD2C[] = +static const union AnimCmd sUnknownAnim_CASTFORM_3[] =  {      ANIMCMD_FRAME(2, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFD34[] = +static const union AnimCmd sUnknownAnim_CASTFORM_4[] =  {      ANIMCMD_FRAME(3, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFD3C[] = +static const union AnimCmd sUnknownAnim_VOLBEAT_1[] =  {      ANIMCMD_FRAME(0, 63),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFD44[] = +static const union AnimCmd sUnknownAnim_ILLUMISE_1[] =  {      ANIMCMD_FRAME(0, 63),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFD4C[] = +static const union AnimCmd sUnknownAnim_BAGON_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFD54[] = +static const union AnimCmd sUnknownAnim_BAGON_2[] =  {      ANIMCMD_FRAME(1, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFD5C[] = +static const union AnimCmd sUnknownAnim_SALAMENCE_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFD64[] = +static const union AnimCmd sUnknownAnim_SALAMENCE_2[] =  {      ANIMCMD_FRAME(1, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFD6C[] = +static const union AnimCmd sUnknownAnim_REGIROCK_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFD74[] = +static const union AnimCmd sUnknownAnim_REGICE_1[] =  {      ANIMCMD_FRAME(1, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFD7C[] = +static const union AnimCmd sUnknownAnim_REGISTEEL_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFD84[] = +static const union AnimCmd sUnknownAnim_REGISTEEL_2[] =  {      ANIMCMD_FRAME(1, 1),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFD8C[] = +static const union AnimCmd sUnknownAnim_RAYQUAZA_1[] =  {      ANIMCMD_FRAME(0, 20),      ANIMCMD_FRAME(1, 30), @@ -936,7 +936,7 @@ static const union AnimCmd gUnknown_082FFD8C[] =      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFDA0[] = +static const union AnimCmd sUnknownAnim_RAYQUAZA_2[] =  {      ANIMCMD_FRAME(0, 20),      ANIMCMD_FRAME(2, 20), @@ -945,1372 +945,1378 @@ static const union AnimCmd gUnknown_082FFDA0[] =      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFDB4[] = +static const union AnimCmd sUnknownAnim_Unused1[] =  {      ANIMCMD_FRAME(0, 10),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFDBC[] = +static const union AnimCmd sUnknownAnim_Unused2[] =  {      ANIMCMD_FRAME(0, 10),      ANIMCMD_END,  }; -static const union AnimCmd gUnknown_082FFDC4[] = +static const union AnimCmd sUnknownAnim_JIRACHI_1[] =  {      ANIMCMD_FRAME(0, 1),      ANIMCMD_END,  }; -static const union AnimCmd *const gUnknown_082FFDCC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFDD0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFDD4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFDD8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFDDC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFDE0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFDE4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFDE8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFDEC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFDF0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFDF4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFDF8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFDFC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE00[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE04[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE08[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE0C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE10[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE14[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE18[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE1C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE20[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE24[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE28[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE2C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE30[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE34[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE38[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE3C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE40[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE44[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE48[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE4C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE50[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE54[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE58[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE5C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE60[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE64[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE68[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE6C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE70[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE74[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE78[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE7C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE80[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE84[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE88[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE8C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE90[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE94[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE98[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFE9C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEA0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEA4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEA8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEAC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEB0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEB4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEB8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEBC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEC0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEC4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEC8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFECC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFED0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFED4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFED8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEDC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEE0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEE4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEE8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEEC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEF0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEF4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEF8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFEFC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF00[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF04[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF08[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF0C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF10[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF14[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF18[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF1C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF20[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF24[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF28[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF2C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF30[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF34[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF38[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF3C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF40[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF44[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF48[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF4C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF50[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF54[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF58[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF5C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF60[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF64[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF68[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF6C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF70[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF74[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF78[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF7C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF80[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF84[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF88[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF8C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF90[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF94[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF98[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFF9C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFA0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFA4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFA8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFAC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFB0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFB4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFB8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFBC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFC0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFC4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFC8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFCC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFD0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFD4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFD8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFDC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFE0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFE4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFE8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFEC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFF0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFF4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFF8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_082FFFFC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300000[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300004[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300008[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830000C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300010[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300014[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300018[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830001C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300020[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300024[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300028[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830002C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300030[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300034[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300038[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830003C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300040[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300044[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300048[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830004C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300050[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300054[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300058[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830005C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300060[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300064[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300068[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830006C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300070[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300074[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300078[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830007C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300080[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300084[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300088[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830008C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300090[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300094[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300098[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830009C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000A0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000A4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000A8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000AC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000B0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000B4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000B8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000BC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000C0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000C4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000C8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000CC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000D0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000D4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000D8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000DC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000E0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000E4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000E8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000EC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000F0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000F4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000F8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083000FC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300100[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300104[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300108[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830010C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300110[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300114[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300118[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830011C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300120[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300124[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300128[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830012C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300130[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300134[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300138[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830013C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300140[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300144[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300148[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830014C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300150[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300154[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300158[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830015C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300160[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300164[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300168[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830016C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300170[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300174[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300178[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830017C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300180[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300184[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300188[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830018C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300190[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300194[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300198[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830019C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083001A0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083001A4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083001A8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083001AC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083001B0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083001B4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083001B8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083001BC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083001C0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083001C4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083001C8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083001CC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083001D0[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_NONE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_BULBASAUR[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_IVYSAUR[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_VENUSAUR[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CHARMANDER[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CHARMELEON[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CHARIZARD[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SQUIRTLE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_WARTORTLE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_BLASTOISE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CATERPIE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_METAPOD[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_BUTTERFREE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_WEEDLE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_KAKUNA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_BEEDRILL[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_PIDGEY[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_PIDGEOTTO[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_PIDGEOT[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_RATTATA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_RATICATE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SPEAROW[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_FEAROW[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_EKANS[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ARBOK[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_PIKACHU[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_RAICHU[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SANDSHREW[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SANDSLASH[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_NIDORAN_F[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_NIDORINA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_NIDOQUEEN[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_NIDORAN_M[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_NIDORINO[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_NIDOKING[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CLEFAIRY[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CLEFABLE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_VULPIX[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_NINETALES[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_JIGGLYPUFF[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_WIGGLYTUFF[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ZUBAT[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GOLBAT[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ODDISH[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GLOOM[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_VILEPLUME[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_PARAS[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_PARASECT[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_VENONAT[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_VENOMOTH[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_DIGLETT[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_DUGTRIO[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MEOWTH[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_PERSIAN[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_PSYDUCK[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GOLDUCK[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MANKEY[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_PRIMEAPE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GROWLITHE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ARCANINE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_POLIWAG[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_POLIWHIRL[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_POLIWRATH[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ABRA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_KADABRA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ALAKAZAM[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MACHOP[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MACHOKE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MACHAMP[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_BELLSPROUT[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_WEEPINBELL[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_VICTREEBEL[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_TENTACOOL[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_TENTACRUEL[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GEODUDE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GRAVELER[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GOLEM[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_PONYTA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_RAPIDASH[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SLOWPOKE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SLOWBRO[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MAGNEMITE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MAGNETON[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_FARFETCHD[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_DODUO[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_DODRIO[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SEEL[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_DEWGONG[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GRIMER[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MUK[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SHELLDER[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CLOYSTER[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GASTLY[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_HAUNTER[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GENGAR[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ONIX[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_DROWZEE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_HYPNO[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_KRABBY[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_KINGLER[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_VOLTORB[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ELECTRODE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_EXEGGCUTE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_EXEGGUTOR[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CUBONE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MAROWAK[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_HITMONLEE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_HITMONCHAN[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_LICKITUNG[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_KOFFING[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_WEEZING[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_RHYHORN[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_RHYDON[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CHANSEY[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_TANGELA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_KANGASKHAN[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_HORSEA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SEADRA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GOLDEEN[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SEAKING[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_STARYU[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_STARMIE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MR_MIME[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SCYTHER[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_JYNX[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ELECTABUZZ[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MAGMAR[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_PINSIR[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_TAUROS[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MAGIKARP[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GYARADOS[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_LAPRAS[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_DITTO[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_EEVEE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_VAPOREON[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_JOLTEON[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_FLAREON[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_PORYGON[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_OMANYTE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_OMASTAR[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_KABUTO[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_KABUTOPS[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_AERODACTYL[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SNORLAX[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ARTICUNO[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ZAPDOS[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MOLTRES[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_DRATINI[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_DRAGONAIR[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_DRAGONITE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MEWTWO[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MEW[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CHIKORITA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_BAYLEEF[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MEGANIUM[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CYNDAQUIL[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_QUILAVA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_TYPHLOSION[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_TOTODILE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CROCONAW[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_FERALIGATR[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SENTRET[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_FURRET[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_HOOTHOOT[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_NOCTOWL[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_LEDYBA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_LEDIAN[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SPINARAK[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ARIADOS[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CROBAT[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CHINCHOU[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_LANTURN[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_PICHU[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CLEFFA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_IGGLYBUFF[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_TOGEPI[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_TOGETIC[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_NATU[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_XATU[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MAREEP[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_FLAAFFY[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_AMPHAROS[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_BELLOSSOM[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MARILL[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_AZUMARILL[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SUDOWOODO[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_POLITOED[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_HOPPIP[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SKIPLOOM[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_JUMPLUFF[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_AIPOM[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SUNKERN[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SUNFLORA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_YANMA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_WOOPER[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_QUAGSIRE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ESPEON[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UMBREON[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MURKROW[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SLOWKING[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MISDREAVUS[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_WOBBUFFET[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GIRAFARIG[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_PINECO[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_FORRETRESS[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_DUNSPARCE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GLIGAR[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_STEELIX[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SNUBBULL[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GRANBULL[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_QWILFISH[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SCIZOR[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SHUCKLE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_HERACROSS[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SNEASEL[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_TEDDIURSA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_URSARING[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SLUGMA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MAGCARGO[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SWINUB[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_PILOSWINE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CORSOLA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_REMORAID[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_OCTILLERY[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_DELIBIRD[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MANTINE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SKARMORY[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_HOUNDOUR[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_HOUNDOOM[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_KINGDRA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_PHANPY[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_DONPHAN[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_PORYGON2[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_STANTLER[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SMEARGLE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_TYROGUE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_HITMONTOP[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SMOOCHUM[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ELEKID[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MAGBY[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MILTANK[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_BLISSEY[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_RAIKOU[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ENTEI[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SUICUNE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_LARVITAR[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_PUPITAR[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_TYRANITAR[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_LUGIA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_HO_OH[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CELEBI[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_OLD_UNOWN[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_TREECKO[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GROVYLE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SCEPTILE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_TORCHIC[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_COMBUSKEN[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083001D4[] = +static const union AnimCmd *const sUnknownAnims_BLAZIKEN[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FF71C, -    gUnknown_082FF734, -    gUnknown_082FF744, -    gUnknown_082FF750, +    sUnknownAnim_BLAZIKEN_1, +    sUnknownAnim_BLAZIKEN_2, +    sUnknownAnim_BLAZIKEN_3, +    sUnknownAnim_BLAZIKEN_4,  }; -static const union AnimCmd *const gUnknown_083001E8[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_MUDKIP[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083001EC[] = +static const union AnimCmd *const sUnknownAnims_MARSHTOMP[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FF758, -    gUnknown_082FF774, -    gUnknown_082FF790, +    sUnknownAnim_MARSHTOMP_1, +    sUnknownAnim_MARSHTOMP_2, +    sUnknownAnim_MARSHTOMP_3,  }; -static const union AnimCmd *const gUnknown_083001FC[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SWAMPERT[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300200[] = +static const union AnimCmd *const sUnknownAnims_POOCHYENA[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FF79C, -    gUnknown_082FF7B0, +    sUnknownAnim_POOCHYENA_1, +    sUnknownAnim_POOCHYENA_2,  }; -static const union AnimCmd *const gUnknown_0830020C[] = +static const union AnimCmd *const sUnknownAnims_MIGHTYENA[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FF7C4, +    sUnknownAnim_MIGHTYENA_1,  }; -static const union AnimCmd *const gUnknown_08300214[] = +static const union AnimCmd *const sUnknownAnims_ZIGZAGOON[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FF7CC, +    sUnknownAnim_ZIGZAGOON_1,  }; -static const union AnimCmd *const gUnknown_0830021C[] = +static const union AnimCmd *const sUnknownAnims_LINOONE[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FF7D4, +    sUnknownAnim_LINOONE_1,  }; -static const union AnimCmd *const gUnknown_08300224[] = +static const union AnimCmd *const sUnknownAnims_WURMPLE[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FF7DC, -    gUnknown_082FF7E4, +    sUnknownAnim_WURMPLE_1, +    sUnknownAnim_WURMPLE_2,  }; -static const union AnimCmd *const gUnknown_08300230[] = +static const union AnimCmd *const sUnknownAnims_SILCOON[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FF7EC, -    gUnknown_082FF7F4, +    sUnknownAnim_SILCOON_1, +    sUnknownAnim_SILCOON_2,  }; -static const union AnimCmd *const gUnknown_0830023C[] = +static const union AnimCmd *const sUnknownAnims_BEAUTIFLY[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FF7FC, -    gUnknown_082FF804, +    sUnknownAnim_BEAUTIFLY_1, +    sUnknownAnim_BEAUTIFLY_2,  }; -static const union AnimCmd *const gUnknown_08300248[] = +static const union AnimCmd *const sUnknownAnims_CASCOON[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FF80C, -    gUnknown_082FF814, +    sUnknownAnim_CASCOON_1, +    sUnknownAnim_CASCOON_2,  }; -static const union AnimCmd *const gUnknown_08300254[] = +static const union AnimCmd *const sUnknownAnims_DUSTOX[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FF81C, -    gUnknown_082FF824, +    sUnknownAnim_DUSTOX_1, +    sUnknownAnim_DUSTOX_2,  }; -static const union AnimCmd *const gUnknown_08300260[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_LOTAD[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300264[] = +static const union AnimCmd *const sUnknownAnims_LOMBRE[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FF82C, +    sUnknownAnim_LOMBRE_1,  }; -static const union AnimCmd *const gUnknown_0830026C[] = +static const union AnimCmd *const sUnknownAnims_LUDICOLO[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FF834, -    gUnknown_082FF83C, +    sUnknownAnim_LUDICOLO_1, +    sUnknownAnim_LUDICOLO_2,  }; -static const union AnimCmd *const gUnknown_08300278[] = +static const union AnimCmd *const sUnknownAnims_SEEDOT[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FF844, +    sUnknownAnim_SEEDOT_1,  }; -static const union AnimCmd *const gUnknown_08300280[] = +static const union AnimCmd *const sUnknownAnims_NUZLEAF[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FF84C, +    sUnknownAnim_NUZLEAF_1,  }; -static const union AnimCmd *const gUnknown_08300288[] = +static const union AnimCmd *const sUnknownAnims_SHIFTRY[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FF854, -    gUnknown_082FF85C, +    sUnknownAnim_SHIFTRY_1, +    sUnknownAnim_SHIFTRY_2,  }; -static const union AnimCmd *const gUnknown_08300294[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300298[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830029C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_NINCADA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_NINJASK[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SHEDINJA[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083002A0[] = +static const union AnimCmd *const sUnknownAnims_TAILLOW[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FF864, +    sUnknownAnim_TAILLOW_1,  }; -static const union AnimCmd *const gUnknown_083002A8[] = +static const union AnimCmd *const sUnknownAnims_SWELLOW[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FF86C, +    sUnknownAnim_SWELLOW_1,  }; -static const union AnimCmd *const gUnknown_083002B0[] = +static const union AnimCmd *const sUnknownAnims_SHROOMISH[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FF874, +    sUnknownAnim_SHROOMISH_1,  }; -static const union AnimCmd *const gUnknown_083002B8[] = +static const union AnimCmd *const sUnknownAnims_BRELOOM[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FF87C, +    sUnknownAnim_BRELOOM_1,  }; -static const union AnimCmd *const gUnknown_083002C0[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SPINDA[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083002C4[] = +static const union AnimCmd *const sUnknownAnims_WINGULL[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FF884, +    sUnknownAnim_WINGULL_1,  }; -static const union AnimCmd *const gUnknown_083002CC[] = +static const union AnimCmd *const sUnknownAnims_PELIPPER[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FF88C, -    gUnknown_082FF894, +    sUnknownAnim_PELIPPER_1, +    sUnknownAnim_PELIPPER_2,  }; -static const union AnimCmd *const gUnknown_083002D8[] = +static const union AnimCmd *const sUnknownAnims_SURSKIT[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FF89C, -    gUnknown_082FF8A4, +    sUnknownAnim_SURSKIT_1, +    sUnknownAnim_SURSKIT_2,  }; -static const union AnimCmd *const gUnknown_083002E4[] = +static const union AnimCmd *const sUnknownAnims_MASQUERAIN[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FF8AC, -    gUnknown_082FF8B4, +    sUnknownAnim_MASQUERAIN_1, +    sUnknownAnim_MASQUERAIN_2,  }; -static const union AnimCmd *const gUnknown_083002F0[] = +static const union AnimCmd *const sUnknownAnims_WAILMER[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FF8BC, -    gUnknown_082FF8FC, -    gUnknown_082FF91C, -    gUnknown_082FF930, +    sUnknownAnim_WAILMER_1, +    sUnknownAnim_WAILMER_2, +    sUnknownAnim_WAILMER_3, +    sUnknownAnim_WAILMER_4,  }; -static const union AnimCmd *const gUnknown_08300304[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_WAILORD[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300308[] = +static const union AnimCmd *const sUnknownAnims_SKITTY[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FF93C, +    sUnknownAnim_SKITTY_1,  }; -static const union AnimCmd *const gUnknown_08300310[] = +static const union AnimCmd *const sUnknownAnims_DELCATTY[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FF944, +    sUnknownAnim_DELCATTY_1,  }; -static const union AnimCmd *const gUnknown_08300318[] = +static const union AnimCmd *const sUnknownAnims_KECLEON[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FF94C, -    gUnknown_082FF9A8, -    gUnknown_082FFA00, -    gUnknown_082FFA58, +    sUnknownAnim_KECLEON_1, +    sUnknownAnim_KECLEON_2, +    sUnknownAnim_KECLEON_3, +    sUnknownAnim_KECLEON_4,  }; -static const union AnimCmd *const gUnknown_0830032C[] = +static const union AnimCmd *const sUnknownAnims_BALTOY[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFA64, +    sUnknownAnim_BALTOY_1,  }; -static const union AnimCmd *const gUnknown_08300334[] = +static const union AnimCmd *const sUnknownAnims_CLAYDOL[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFA6C, +    sUnknownAnim_CLAYDOL_1,  }; -static const union AnimCmd *const gUnknown_0830033C[] = +static const union AnimCmd *const sUnknownAnims_NOSEPASS[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFA74, +    sUnknownAnim_NOSEPASS_1,  }; -static const union AnimCmd *const gUnknown_08300344[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_TORKOAL[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300348[] = +static const union AnimCmd *const sUnknownAnims_SABLEYE[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFA7C, -    gUnknown_082FFA84, +    sUnknownAnim_SABLEYE_1, +    sUnknownAnim_SABLEYE_2,  }; -static const union AnimCmd *const gUnknown_08300354[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300358[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_BARBOACH[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_WHISCASH[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830035C[] = +static const union AnimCmd *const sUnknownAnims_LUVDISC[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFA8C, -    gUnknown_082FFA94, +    sUnknownAnim_LUVDISC_1, +    sUnknownAnim_LUVDISC_2,  }; -static const union AnimCmd *const gUnknown_08300368[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830036C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CORPHISH[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CRAWDAUNT[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300370[] = +static const union AnimCmd *const sUnknownAnims_FEEBAS[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFA9C, -    gUnknown_082FFAA4, +    sUnknownAnim_FEEBAS_1, +    sUnknownAnim_FEEBAS_2,  }; -static const union AnimCmd *const gUnknown_0830037C[] = +static const union AnimCmd *const sUnknownAnims_MILOTIC[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFAAC, -    gUnknown_082FFAB4, +    sUnknownAnim_MILOTIC_1, +    sUnknownAnim_MILOTIC_2,  }; -static const union AnimCmd *const gUnknown_08300388[] = +static const union AnimCmd *const sUnknownAnims_CARVANHA[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFABC, -    gUnknown_082FFAC4, +    sUnknownAnim_CARVANHA_1, +    sUnknownAnim_CARVANHA_2,  }; -static const union AnimCmd *const gUnknown_08300394[] = +static const union AnimCmd *const sUnknownAnims_SHARPEDO[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFACC, -    gUnknown_082FFAD4, +    sUnknownAnim_SHARPEDO_1, +    sUnknownAnim_SHARPEDO_2,  }; -static const union AnimCmd *const gUnknown_083003A0[] = +static const union AnimCmd *const sUnknownAnims_TRAPINCH[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFADC, +    sUnknownAnim_TRAPINCH_1,  }; -static const union AnimCmd *const gUnknown_083003A8[] = +static const union AnimCmd *const sUnknownAnims_VIBRAVA[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFAE4, +    sUnknownAnim_VIBRAVA_1,  }; -static const union AnimCmd *const gUnknown_083003B0[] = +static const union AnimCmd *const sUnknownAnims_FLYGON[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFAEC, +    sUnknownAnim_FLYGON_1,  }; -static const union AnimCmd *const gUnknown_083003B8[] = +static const union AnimCmd *const sUnknownAnims_MAKUHITA[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFAF4, +    sUnknownAnim_MAKUHITA_1,  }; -static const union AnimCmd *const gUnknown_083003C0[] = +static const union AnimCmd *const sUnknownAnims_HARIYAMA[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFAFC, +    sUnknownAnim_HARIYAMA_1,  }; -static const union AnimCmd *const gUnknown_083003C8[] = +static const union AnimCmd *const sUnknownAnims_ELECTRIKE[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFB04, -    gUnknown_082FFB0C, +    sUnknownAnim_ELECTRIKE_1, +    sUnknownAnim_ELECTRIKE_2,  }; -static const union AnimCmd *const gUnknown_083003D4[] = +static const union AnimCmd *const sUnknownAnims_MANECTRIC[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFB14, +    sUnknownAnim_MANECTRIC_1,  }; -static const union AnimCmd *const gUnknown_083003DC[] = +static const union AnimCmd *const sUnknownAnims_NUMEL[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFB1C, -    gUnknown_082FFB24, +    sUnknownAnim_NUMEL_1, +    sUnknownAnim_NUMEL_2,  }; -static const union AnimCmd *const gUnknown_083003E8[] = +static const union AnimCmd *const sUnknownAnims_CAMERUPT[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFB2C, +    sUnknownAnim_CAMERUPT_1,  }; -static const union AnimCmd *const gUnknown_083003F0[] = +static const union AnimCmd *const sUnknownAnims_SPHEAL[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFB34, +    sUnknownAnim_SPHEAL_1,  }; -static const union AnimCmd *const gUnknown_083003F8[] = +static const union AnimCmd *const sUnknownAnims_SEALEO[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFB3C, +    sUnknownAnim_SEALEO_1,  }; -static const union AnimCmd *const gUnknown_08300400[] = +static const union AnimCmd *const sUnknownAnims_WALREIN[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFB44, -    gUnknown_082FFB60, +    sUnknownAnim_WALREIN_1, +    sUnknownAnim_WALREIN_2,  }; -static const union AnimCmd *const gUnknown_0830040C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300410[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300414[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300418[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830041C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300420[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CACNEA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CACTURNE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SNORUNT[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GLALIE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_LUNATONE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SOLROCK[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300424[] = +static const union AnimCmd *const sUnknownAnims_AZURILL[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFB7C, -    gUnknown_082FFBBC, -    gUnknown_082FFBE0, -    gUnknown_082FFBF4, +    sUnknownAnim_AZURILL_1, +    sUnknownAnim_AZURILL_2, +    sUnknownAnim_AZURILL_3, +    sUnknownAnim_AZURILL_4,  }; -static const union AnimCmd *const gUnknown_08300438[] = +static const union AnimCmd *const sUnknownAnims_SPOINK[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFBFC, -    gUnknown_082FFC04, +    sUnknownAnim_SPOINK_1, +    sUnknownAnim_SPOINK_2,  }; -static const union AnimCmd *const gUnknown_08300444[] = +static const union AnimCmd *const sUnknownAnims_GRUMPIG[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFC0C, +    sUnknownAnim_GRUMPIG_1,  }; -static const union AnimCmd *const gUnknown_0830044C[] = +static const union AnimCmd *const sUnknownAnims_PLUSLE[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFC14, +    sUnknownAnim_PLUSLE_1,  }; -static const union AnimCmd *const gUnknown_08300454[] = +static const union AnimCmd *const sUnknownAnims_MINUN[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFC1C, +    sUnknownAnim_MINUN_1,  }; -static const union AnimCmd *const gUnknown_0830045C[] = +static const union AnimCmd *const sUnknownAnims_MAWILE[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFC24, +    sUnknownAnim_MAWILE_1,  }; -static const union AnimCmd *const gUnknown_08300464[] = +static const union AnimCmd *const sUnknownAnims_MEDITITE[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFC2C, +    sUnknownAnim_MEDITITE_1,  }; -static const union AnimCmd *const gUnknown_0830046C[] = +static const union AnimCmd *const sUnknownAnims_MEDICHAM[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFC34, +    sUnknownAnim_MEDICHAM_1,  }; -static const union AnimCmd *const gUnknown_08300474[] = +static const union AnimCmd *const sUnknownAnims_SWABLU[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFC3C, -    gUnknown_082FFC58, +    sUnknownAnim_SWABLU_1, +    sUnknownAnim_SWABLU_2,  }; -static const union AnimCmd *const gUnknown_08300480[] = +static const union AnimCmd *const sUnknownAnims_ALTARIA[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFC74, +    sUnknownAnim_ALTARIA_1,  }; -static const union AnimCmd *const gUnknown_08300488[] = +static const union AnimCmd *const sUnknownAnims_WYNAUT[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFC7C, -    gUnknown_082FFC84, +    sUnknownAnim_WYNAUT_1, +    sUnknownAnim_WYNAUT_2,  }; -static const union AnimCmd *const gUnknown_08300494[] = +static const union AnimCmd *const sUnknownAnims_DUSKULL[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFC8C, -    gUnknown_082FFC94, +    sUnknownAnim_DUSKULL_1, +    sUnknownAnim_DUSKULL_2,  }; -static const union AnimCmd *const gUnknown_083004A0[] = +static const union AnimCmd *const sUnknownAnims_DUSCLOPS[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFC9C, -    gUnknown_082FFCA4, +    sUnknownAnim_DUSCLOPS_1, +    sUnknownAnim_DUSCLOPS_2,  }; -static const union AnimCmd *const gUnknown_083004AC[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ROSELIA[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083004B0[] = +static const union AnimCmd *const sUnknownAnims_SLAKOTH[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFCAC, +    sUnknownAnim_SLAKOTH_1,  }; -static const union AnimCmd *const gUnknown_083004B8[] = +static const union AnimCmd *const sUnknownAnims_VIGOROTH[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFCB4, +    sUnknownAnim_VIGOROTH_1,  }; -static const union AnimCmd *const gUnknown_083004C0[] = +static const union AnimCmd *const sUnknownAnims_SLAKING[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFCBC, +    sUnknownAnim_SLAKING_1,  }; -static const union AnimCmd *const gUnknown_083004C8[] = +static const union AnimCmd *const sUnknownAnims_GULPIN[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFCC4, +    sUnknownAnim_GULPIN_1,  }; -static const union AnimCmd *const gUnknown_083004D0[] = +static const union AnimCmd *const sUnknownAnims_SWALOT[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFCCC, +    sUnknownAnim_SWALOT_1,  }; -static const union AnimCmd *const gUnknown_083004D8[] = +static const union AnimCmd *const sUnknownAnims_TROPIUS[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFCD4, +    sUnknownAnim_TROPIUS_1,  }; -static const union AnimCmd *const gUnknown_083004E0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083004E4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083004E8[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_WHISMUR[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_LOUDRED[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_EXPLOUD[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083004EC[] = +static const union AnimCmd *const sUnknownAnims_CLAMPERL[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFCDC, +    sUnknownAnim_CLAMPERL_1,  }; -static const union AnimCmd *const gUnknown_083004F4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083004F8[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_HUNTAIL[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GOREBYSS[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083004FC[] = +static const union AnimCmd *const sUnknownAnims_ABSOL[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFCE4, +    sUnknownAnim_ABSOL_1,  }; -static const union AnimCmd *const gUnknown_08300504[] = +static const union AnimCmd *const sUnknownAnims_SHUPPET[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFCEC, -    gUnknown_082FFCF4, +    sUnknownAnim_SHUPPET_1, +    sUnknownAnim_SHUPPET_2,  }; -static const union AnimCmd *const gUnknown_08300510[] = +static const union AnimCmd *const sUnknownAnims_BANETTE[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFCFC, +    sUnknownAnim_BANETTE_1,  }; -static const union AnimCmd *const gUnknown_08300518[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830051C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300520[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SEVIPER[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ZANGOOSE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_RELICANTH[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300524[] = +static const union AnimCmd *const sUnknownAnims_ARON[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFD04, +    sUnknownAnim_ARON_1,  }; -static const union AnimCmd *const gUnknown_0830052C[] = +static const union AnimCmd *const sUnknownAnims_LAIRON[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFD0C, +    sUnknownAnim_LAIRON_1,  }; -static const union AnimCmd *const gUnknown_08300534[] = +static const union AnimCmd *const sUnknownAnims_AGGRON[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFD14, +    sUnknownAnim_AGGRON_1,  }; -static const union AnimCmd *const gUnknown_0830053C[] = +static const union AnimCmd *const sUnknownAnims_CASTFORM[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFD1C, -    gUnknown_082FFD24, -    gUnknown_082FFD2C, -    gUnknown_082FFD34, +    sUnknownAnim_CASTFORM_1, +    sUnknownAnim_CASTFORM_2, +    sUnknownAnim_CASTFORM_3, +    sUnknownAnim_CASTFORM_4,  }; -static const union AnimCmd *const gUnknown_08300550[] = +static const union AnimCmd *const sUnknownAnims_VOLBEAT[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFD3C, +    sUnknownAnim_VOLBEAT_1,  }; -static const union AnimCmd *const gUnknown_08300558[] = +static const union AnimCmd *const sUnknownAnims_ILLUMISE[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFD44, +    sUnknownAnim_ILLUMISE_1,  }; -static const union AnimCmd *const gUnknown_08300560[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300564[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300568[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830056C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300570[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300574[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300578[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_LILEEP[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CRADILY[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ANORITH[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_ARMALDO[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_RALTS[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_KIRLIA[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GARDEVOIR[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830057C[] = +static const union AnimCmd *const sUnknownAnims_BAGON[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFD4C, -    gUnknown_082FFD54, +    sUnknownAnim_BAGON_1, +    sUnknownAnim_BAGON_2,  }; -static const union AnimCmd *const gUnknown_08300588[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_SHELGON[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830058C[] = +static const union AnimCmd *const sUnknownAnims_SALAMENCE[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFD5C, -    gUnknown_082FFD64, +    sUnknownAnim_SALAMENCE_1, +    sUnknownAnim_SALAMENCE_2,  }; -static const union AnimCmd *const gUnknown_08300598[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830059C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083005A0[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_BELDUM[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_METANG[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_METAGROSS[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083005A4[] = +static const union AnimCmd *const sUnknownAnims_REGIROCK[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFD6C, +    sUnknownAnim_REGIROCK_1,  }; -static const union AnimCmd *const gUnknown_083005AC[] = +static const union AnimCmd *const sUnknownAnims_REGICE[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFD74, +    sUnknownAnim_REGICE_1,  }; -static const union AnimCmd *const gUnknown_083005B4[] = +static const union AnimCmd *const sUnknownAnims_REGISTEEL[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFD7C, -    gUnknown_082FFD84, +    sUnknownAnim_REGISTEEL_1, +    sUnknownAnim_REGISTEEL_2,  }; -static const union AnimCmd *const gUnknown_083005C0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083005C4[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_KYOGRE[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_GROUDON[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083005C8[] = +static const union AnimCmd *const sUnknownAnims_RAYQUAZA[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFD8C, -    gUnknown_082FFDA0, +    sUnknownAnim_RAYQUAZA_1, +    sUnknownAnim_RAYQUAZA_2,  }; -static const union AnimCmd *const gUnknown_083005D4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083005D8[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_LATIAS[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_LATIOS[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083005DC[] = +static const union AnimCmd *const sUnknownAnims_JIRACHI[] =  {      sAnim_GeneralFrame0, -    gUnknown_082FFDC4, +    sUnknownAnim_JIRACHI_1,  }; -static const union AnimCmd *const gUnknown_083005E4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083005E8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083005EC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083005F0[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083005F4[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083005F8[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_083005FC[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300600[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300604[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300608[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830060C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300610[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300614[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300618[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830061C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300620[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300624[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300628[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830062C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300630[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300634[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300638[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830063C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300640[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300644[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300648[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_0830064C[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300650[] = {sAnim_GeneralFrame0}; -static const union AnimCmd *const gUnknown_08300654[] = {sAnim_GeneralFrame0}; - -const union AnimCmd *const *const gUnknownAnimsTable[] = -{ -    gUnknown_082FFDCC, -    gUnknown_082FFDD0, -    gUnknown_082FFDD4, -    gUnknown_082FFDD8, -    gUnknown_082FFDDC, -    gUnknown_082FFDE0, -    gUnknown_082FFDE4, -    gUnknown_082FFDE8, -    gUnknown_082FFDEC, -    gUnknown_082FFDF0, -    gUnknown_082FFDF4, -    gUnknown_082FFDF8, -    gUnknown_082FFDFC, -    gUnknown_082FFE00, -    gUnknown_082FFE04, -    gUnknown_082FFE08, -    gUnknown_082FFE0C, -    gUnknown_082FFE10, -    gUnknown_082FFE14, -    gUnknown_082FFE18, -    gUnknown_082FFE1C, -    gUnknown_082FFE20, -    gUnknown_082FFE24, -    gUnknown_082FFE28, -    gUnknown_082FFE2C, -    gUnknown_082FFE30, -    gUnknown_082FFE34, -    gUnknown_082FFE38, -    gUnknown_082FFE3C, -    gUnknown_082FFE40, -    gUnknown_082FFE44, -    gUnknown_082FFE48, -    gUnknown_082FFE4C, -    gUnknown_082FFE50, -    gUnknown_082FFE54, -    gUnknown_082FFE58, -    gUnknown_082FFE5C, -    gUnknown_082FFE60, -    gUnknown_082FFE64, -    gUnknown_082FFE68, -    gUnknown_082FFE6C, -    gUnknown_082FFE70, -    gUnknown_082FFE74, -    gUnknown_082FFE78, -    gUnknown_082FFE7C, -    gUnknown_082FFE80, -    gUnknown_082FFE84, -    gUnknown_082FFE88, -    gUnknown_082FFE8C, -    gUnknown_082FFE90, -    gUnknown_082FFE94, -    gUnknown_082FFE98, -    gUnknown_082FFE9C, -    gUnknown_082FFEA0, -    gUnknown_082FFEA4, -    gUnknown_082FFEA8, -    gUnknown_082FFEAC, -    gUnknown_082FFEB0, -    gUnknown_082FFEB4, -    gUnknown_082FFEB8, -    gUnknown_082FFEBC, -    gUnknown_082FFEC0, -    gUnknown_082FFEC4, -    gUnknown_082FFEC8, -    gUnknown_082FFECC, -    gUnknown_082FFED0, -    gUnknown_082FFED4, -    gUnknown_082FFED8, -    gUnknown_082FFEDC, -    gUnknown_082FFEE0, -    gUnknown_082FFEE4, -    gUnknown_082FFEE8, -    gUnknown_082FFEEC, -    gUnknown_082FFEF0, -    gUnknown_082FFEF4, -    gUnknown_082FFEF8, -    gUnknown_082FFEFC, -    gUnknown_082FFF00, -    gUnknown_082FFF04, -    gUnknown_082FFF08, -    gUnknown_082FFF0C, -    gUnknown_082FFF10, -    gUnknown_082FFF14, -    gUnknown_082FFF18, -    gUnknown_082FFF1C, -    gUnknown_082FFF20, -    gUnknown_082FFF24, -    gUnknown_082FFF28, -    gUnknown_082FFF2C, -    gUnknown_082FFF30, -    gUnknown_082FFF34, -    gUnknown_082FFF38, -    gUnknown_082FFF3C, -    gUnknown_082FFF40, -    gUnknown_082FFF44, -    gUnknown_082FFF48, -    gUnknown_082FFF4C, -    gUnknown_082FFF50, -    gUnknown_082FFF54, -    gUnknown_082FFF58, -    gUnknown_082FFF5C, -    gUnknown_082FFF60, -    gUnknown_082FFF64, -    gUnknown_082FFF68, -    gUnknown_082FFF6C, -    gUnknown_082FFF70, -    gUnknown_082FFF74, -    gUnknown_082FFF78, -    gUnknown_082FFF7C, -    gUnknown_082FFF80, -    gUnknown_082FFF84, -    gUnknown_082FFF88, -    gUnknown_082FFF8C, -    gUnknown_082FFF90, -    gUnknown_082FFF94, -    gUnknown_082FFF98, -    gUnknown_082FFF9C, -    gUnknown_082FFFA0, -    gUnknown_082FFFA4, -    gUnknown_082FFFA8, -    gUnknown_082FFFAC, -    gUnknown_082FFFB0, -    gUnknown_082FFFB4, -    gUnknown_082FFFB8, -    gUnknown_082FFFBC, -    gUnknown_082FFFC0, -    gUnknown_082FFFC4, -    gUnknown_082FFFC8, -    gUnknown_082FFFCC, -    gUnknown_082FFFD0, -    gUnknown_082FFFD4, -    gUnknown_082FFFD8, -    gUnknown_082FFFDC, -    gUnknown_082FFFE0, -    gUnknown_082FFFE4, -    gUnknown_082FFFE8, -    gUnknown_082FFFEC, -    gUnknown_082FFFF0, -    gUnknown_082FFFF4, -    gUnknown_082FFFF8, -    gUnknown_082FFFFC, -    gUnknown_08300000, -    gUnknown_08300004, -    gUnknown_08300008, -    gUnknown_0830000C, -    gUnknown_08300010, -    gUnknown_08300014, -    gUnknown_08300018, -    gUnknown_0830001C, -    gUnknown_08300020, -    gUnknown_08300024, -    gUnknown_08300028, -    gUnknown_0830002C, -    gUnknown_08300030, -    gUnknown_08300034, -    gUnknown_08300038, -    gUnknown_0830003C, -    gUnknown_08300040, -    gUnknown_08300044, -    gUnknown_08300048, -    gUnknown_0830004C, -    gUnknown_08300050, -    gUnknown_08300054, -    gUnknown_08300058, -    gUnknown_0830005C, -    gUnknown_08300060, -    gUnknown_08300064, -    gUnknown_08300068, -    gUnknown_0830006C, -    gUnknown_08300070, -    gUnknown_08300074, -    gUnknown_08300078, -    gUnknown_0830007C, -    gUnknown_08300080, -    gUnknown_08300084, -    gUnknown_08300088, -    gUnknown_0830008C, -    gUnknown_08300090, -    gUnknown_08300094, -    gUnknown_08300098, -    gUnknown_0830009C, -    gUnknown_083000A0, -    gUnknown_083000A4, -    gUnknown_083000A8, -    gUnknown_083000AC, -    gUnknown_083000B0, -    gUnknown_083000B4, -    gUnknown_083000B8, -    gUnknown_083000BC, -    gUnknown_083000C0, -    gUnknown_083000C4, -    gUnknown_083000C8, -    gUnknown_083000CC, -    gUnknown_083000D0, -    gUnknown_083000D4, -    gUnknown_083000D8, -    gUnknown_083000DC, -    gUnknown_083000E0, -    gUnknown_083000E4, -    gUnknown_083000E8, -    gUnknown_083000EC, -    gUnknown_083000F0, -    gUnknown_083000F4, -    gUnknown_083000F8, -    gUnknown_083000FC, -    gUnknown_08300100, -    gUnknown_08300104, -    gUnknown_08300108, -    gUnknown_0830010C, -    gUnknown_08300110, -    gUnknown_08300114, -    gUnknown_08300118, -    gUnknown_0830011C, -    gUnknown_08300120, -    gUnknown_08300124, -    gUnknown_08300128, -    gUnknown_0830012C, -    gUnknown_08300130, -    gUnknown_08300134, -    gUnknown_08300138, -    gUnknown_0830013C, -    gUnknown_08300140, -    gUnknown_08300144, -    gUnknown_08300148, -    gUnknown_0830014C, -    gUnknown_08300150, -    gUnknown_08300154, -    gUnknown_08300158, -    gUnknown_0830015C, -    gUnknown_08300160, -    gUnknown_08300164, -    gUnknown_08300168, -    gUnknown_0830016C, -    gUnknown_08300170, -    gUnknown_08300174, -    gUnknown_08300178, -    gUnknown_0830017C, -    gUnknown_08300180, -    gUnknown_08300184, -    gUnknown_08300188, -    gUnknown_0830018C, -    gUnknown_08300190, -    gUnknown_08300194, -    gUnknown_08300198, -    gUnknown_0830019C, -    gUnknown_083001A0, -    gUnknown_083001A4, -    gUnknown_083001A8, -    gUnknown_083001AC, -    gUnknown_083001B0, -    gUnknown_083001B4, -    gUnknown_083001B8, -    gUnknown_083001BC, -    gUnknown_083001BC, -    gUnknown_083001BC, -    gUnknown_083001BC, -    gUnknown_083001BC, -    gUnknown_083001BC, -    gUnknown_083001BC, -    gUnknown_083001BC, -    gUnknown_083001BC, -    gUnknown_083001BC, -    gUnknown_083001BC, -    gUnknown_083001BC, -    gUnknown_083001BC, -    gUnknown_083001BC, -    gUnknown_083001BC, -    gUnknown_083001BC, -    gUnknown_083001BC, -    gUnknown_083001BC, -    gUnknown_083001BC, -    gUnknown_083001BC, -    gUnknown_083001BC, -    gUnknown_083001BC, -    gUnknown_083001BC, -    gUnknown_083001BC, -    gUnknown_083001BC, -    gUnknown_083001C0, -    gUnknown_083001C4, -    gUnknown_083001C8, -    gUnknown_083001CC, -    gUnknown_083001D0, -    gUnknown_083001D4, -    gUnknown_083001E8, -    gUnknown_083001EC, -    gUnknown_083001FC, -    gUnknown_08300200, -    gUnknown_0830020C, -    gUnknown_08300214, -    gUnknown_0830021C, -    gUnknown_08300224, -    gUnknown_08300230, -    gUnknown_0830023C, -    gUnknown_08300248, -    gUnknown_08300254, -    gUnknown_08300260, -    gUnknown_08300264, -    gUnknown_0830026C, -    gUnknown_08300278, -    gUnknown_08300280, -    gUnknown_08300288, -    gUnknown_08300294, -    gUnknown_08300298, -    gUnknown_0830029C, -    gUnknown_083002A0, -    gUnknown_083002A8, -    gUnknown_083002B0, -    gUnknown_083002B8, -    gUnknown_083002C0, -    gUnknown_083002C4, -    gUnknown_083002CC, -    gUnknown_083002D8, -    gUnknown_083002E4, -    gUnknown_083002F0, -    gUnknown_08300304, -    gUnknown_08300308, -    gUnknown_08300310, -    gUnknown_08300318, -    gUnknown_0830032C, -    gUnknown_08300334, -    gUnknown_0830033C, -    gUnknown_08300344, -    gUnknown_08300348, -    gUnknown_08300354, -    gUnknown_08300358, -    gUnknown_0830035C, -    gUnknown_08300368, -    gUnknown_0830036C, -    gUnknown_08300370, -    gUnknown_0830037C, -    gUnknown_08300388, -    gUnknown_08300394, -    gUnknown_083003A0, -    gUnknown_083003A8, -    gUnknown_083003B0, -    gUnknown_083003B8, -    gUnknown_083003C0, -    gUnknown_083003C8, -    gUnknown_083003D4, -    gUnknown_083003DC, -    gUnknown_083003E8, -    gUnknown_083003F0, -    gUnknown_083003F8, -    gUnknown_08300400, -    gUnknown_0830040C, -    gUnknown_08300410, -    gUnknown_08300414, -    gUnknown_08300418, -    gUnknown_0830041C, -    gUnknown_08300420, -    gUnknown_08300424, -    gUnknown_08300438, -    gUnknown_08300444, -    gUnknown_0830044C, -    gUnknown_08300454, -    gUnknown_0830045C, -    gUnknown_08300464, -    gUnknown_0830046C, -    gUnknown_08300474, -    gUnknown_08300480, -    gUnknown_08300488, -    gUnknown_08300494, -    gUnknown_083004A0, -    gUnknown_083004AC, -    gUnknown_083004B0, -    gUnknown_083004B8, -    gUnknown_083004C0, -    gUnknown_083004C8, -    gUnknown_083004D0, -    gUnknown_083004D8, -    gUnknown_083004E0, -    gUnknown_083004E4, -    gUnknown_083004E8, -    gUnknown_083004EC, -    gUnknown_083004F4, -    gUnknown_083004F8, -    gUnknown_083004FC, -    gUnknown_08300504, -    gUnknown_08300510, -    gUnknown_08300518, -    gUnknown_0830051C, -    gUnknown_08300520, -    gUnknown_08300524, -    gUnknown_0830052C, -    gUnknown_08300534, -    gUnknown_0830053C, -    gUnknown_08300550, -    gUnknown_08300558, -    gUnknown_08300560, -    gUnknown_08300564, -    gUnknown_08300568, -    gUnknown_0830056C, -    gUnknown_08300570, -    gUnknown_08300574, -    gUnknown_08300578, -    gUnknown_0830057C, -    gUnknown_08300588, -    gUnknown_0830058C, -    gUnknown_08300598, -    gUnknown_0830059C, -    gUnknown_083005A0, -    gUnknown_083005A4, -    gUnknown_083005AC, -    gUnknown_083005B4, -    gUnknown_083005C0, -    gUnknown_083005C4, -    gUnknown_083005C8, -    gUnknown_083005D4, -    gUnknown_083005D8, -    gUnknown_083005DC, -    gUnknown_083005E4, -    gUnknown_083005E8, -    gUnknown_083005EC, -    gUnknown_083005EC, -    gUnknown_083005F0, -    gUnknown_083005F4, -    gUnknown_083005F8, -    gUnknown_083005FC, -    gUnknown_08300600, -    gUnknown_08300604, -    gUnknown_08300608, -    gUnknown_0830060C, -    gUnknown_08300610, -    gUnknown_08300614, -    gUnknown_08300618, -    gUnknown_0830061C, -    gUnknown_08300620, -    gUnknown_08300624, -    gUnknown_08300628, -    gUnknown_0830062C, -    gUnknown_08300630, -    gUnknown_08300634, -    gUnknown_08300638, -    gUnknown_0830063C, -    gUnknown_08300640, -    gUnknown_08300644, -    gUnknown_08300648, -    gUnknown_0830064C, -    gUnknown_08300650, -    gUnknown_08300654, -}; +static const union AnimCmd *const sUnknownAnims_DEOXYS[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_CHIMECHO[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_EGG[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_C[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_D[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_E[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_F[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_G[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_H[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_I[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_J[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_K[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_L[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_M[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_N[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_O[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_P[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_Q[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_R[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_S[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_T[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_U[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_V[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_W[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_X[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_Y[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_Z[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_EMARK[] = {sAnim_GeneralFrame0}; +static const union AnimCmd *const sUnknownAnims_UNOWN_QMARK[] = {sAnim_GeneralFrame0}; + +#define ANIM_CMD(name)             [SPECIES_##name] = sUnknownAnims_##name +#define ANIM_CMD_FULL(name, anims) [SPECIES_##name] = anims + +static const union AnimCmd *const *const sUnknownAnimsTable[] = +{ +    ANIM_CMD(NONE), +    ANIM_CMD(BULBASAUR), +    ANIM_CMD(IVYSAUR), +    ANIM_CMD(VENUSAUR), +    ANIM_CMD(CHARMANDER), +    ANIM_CMD(CHARMELEON), +    ANIM_CMD(CHARIZARD), +    ANIM_CMD(SQUIRTLE), +    ANIM_CMD(WARTORTLE), +    ANIM_CMD(BLASTOISE), +    ANIM_CMD(CATERPIE), +    ANIM_CMD(METAPOD), +    ANIM_CMD(BUTTERFREE), +    ANIM_CMD(WEEDLE), +    ANIM_CMD(KAKUNA), +    ANIM_CMD(BEEDRILL), +    ANIM_CMD(PIDGEY), +    ANIM_CMD(PIDGEOTTO), +    ANIM_CMD(PIDGEOT), +    ANIM_CMD(RATTATA), +    ANIM_CMD(RATICATE), +    ANIM_CMD(SPEAROW), +    ANIM_CMD(FEAROW), +    ANIM_CMD(EKANS), +    ANIM_CMD(ARBOK), +    ANIM_CMD(PIKACHU), +    ANIM_CMD(RAICHU), +    ANIM_CMD(SANDSHREW), +    ANIM_CMD(SANDSLASH), +    ANIM_CMD(NIDORAN_F), +    ANIM_CMD(NIDORINA), +    ANIM_CMD(NIDOQUEEN), +    ANIM_CMD(NIDORAN_M), +    ANIM_CMD(NIDORINO), +    ANIM_CMD(NIDOKING), +    ANIM_CMD(CLEFAIRY), +    ANIM_CMD(CLEFABLE), +    ANIM_CMD(VULPIX), +    ANIM_CMD(NINETALES), +    ANIM_CMD(JIGGLYPUFF), +    ANIM_CMD(WIGGLYTUFF), +    ANIM_CMD(ZUBAT), +    ANIM_CMD(GOLBAT), +    ANIM_CMD(ODDISH), +    ANIM_CMD(GLOOM), +    ANIM_CMD(VILEPLUME), +    ANIM_CMD(PARAS), +    ANIM_CMD(PARASECT), +    ANIM_CMD(VENONAT), +    ANIM_CMD(VENOMOTH), +    ANIM_CMD(DIGLETT), +    ANIM_CMD(DUGTRIO), +    ANIM_CMD(MEOWTH), +    ANIM_CMD(PERSIAN), +    ANIM_CMD(PSYDUCK), +    ANIM_CMD(GOLDUCK), +    ANIM_CMD(MANKEY), +    ANIM_CMD(PRIMEAPE), +    ANIM_CMD(GROWLITHE), +    ANIM_CMD(ARCANINE), +    ANIM_CMD(POLIWAG), +    ANIM_CMD(POLIWHIRL), +    ANIM_CMD(POLIWRATH), +    ANIM_CMD(ABRA), +    ANIM_CMD(KADABRA), +    ANIM_CMD(ALAKAZAM), +    ANIM_CMD(MACHOP), +    ANIM_CMD(MACHOKE), +    ANIM_CMD(MACHAMP), +    ANIM_CMD(BELLSPROUT), +    ANIM_CMD(WEEPINBELL), +    ANIM_CMD(VICTREEBEL), +    ANIM_CMD(TENTACOOL), +    ANIM_CMD(TENTACRUEL), +    ANIM_CMD(GEODUDE), +    ANIM_CMD(GRAVELER), +    ANIM_CMD(GOLEM), +    ANIM_CMD(PONYTA), +    ANIM_CMD(RAPIDASH), +    ANIM_CMD(SLOWPOKE), +    ANIM_CMD(SLOWBRO), +    ANIM_CMD(MAGNEMITE), +    ANIM_CMD(MAGNETON), +    ANIM_CMD(FARFETCHD), +    ANIM_CMD(DODUO), +    ANIM_CMD(DODRIO), +    ANIM_CMD(SEEL), +    ANIM_CMD(DEWGONG), +    ANIM_CMD(GRIMER), +    ANIM_CMD(MUK), +    ANIM_CMD(SHELLDER), +    ANIM_CMD(CLOYSTER), +    ANIM_CMD(GASTLY), +    ANIM_CMD(HAUNTER), +    ANIM_CMD(GENGAR), +    ANIM_CMD(ONIX), +    ANIM_CMD(DROWZEE), +    ANIM_CMD(HYPNO), +    ANIM_CMD(KRABBY), +    ANIM_CMD(KINGLER), +    ANIM_CMD(VOLTORB), +    ANIM_CMD(ELECTRODE), +    ANIM_CMD(EXEGGCUTE), +    ANIM_CMD(EXEGGUTOR), +    ANIM_CMD(CUBONE), +    ANIM_CMD(MAROWAK), +    ANIM_CMD(HITMONLEE), +    ANIM_CMD(HITMONCHAN), +    ANIM_CMD(LICKITUNG), +    ANIM_CMD(KOFFING), +    ANIM_CMD(WEEZING), +    ANIM_CMD(RHYHORN), +    ANIM_CMD(RHYDON), +    ANIM_CMD(CHANSEY), +    ANIM_CMD(TANGELA), +    ANIM_CMD(KANGASKHAN), +    ANIM_CMD(HORSEA), +    ANIM_CMD(SEADRA), +    ANIM_CMD(GOLDEEN), +    ANIM_CMD(SEAKING), +    ANIM_CMD(STARYU), +    ANIM_CMD(STARMIE), +    ANIM_CMD(MR_MIME), +    ANIM_CMD(SCYTHER), +    ANIM_CMD(JYNX), +    ANIM_CMD(ELECTABUZZ), +    ANIM_CMD(MAGMAR), +    ANIM_CMD(PINSIR), +    ANIM_CMD(TAUROS), +    ANIM_CMD(MAGIKARP), +    ANIM_CMD(GYARADOS), +    ANIM_CMD(LAPRAS), +    ANIM_CMD(DITTO), +    ANIM_CMD(EEVEE), +    ANIM_CMD(VAPOREON), +    ANIM_CMD(JOLTEON), +    ANIM_CMD(FLAREON), +    ANIM_CMD(PORYGON), +    ANIM_CMD(OMANYTE), +    ANIM_CMD(OMASTAR), +    ANIM_CMD(KABUTO), +    ANIM_CMD(KABUTOPS), +    ANIM_CMD(AERODACTYL), +    ANIM_CMD(SNORLAX), +    ANIM_CMD(ARTICUNO), +    ANIM_CMD(ZAPDOS), +    ANIM_CMD(MOLTRES), +    ANIM_CMD(DRATINI), +    ANIM_CMD(DRAGONAIR), +    ANIM_CMD(DRAGONITE), +    ANIM_CMD(MEWTWO), +    ANIM_CMD(MEW), +    ANIM_CMD(CHIKORITA), +    ANIM_CMD(BAYLEEF), +    ANIM_CMD(MEGANIUM), +    ANIM_CMD(CYNDAQUIL), +    ANIM_CMD(QUILAVA), +    ANIM_CMD(TYPHLOSION), +    ANIM_CMD(TOTODILE), +    ANIM_CMD(CROCONAW), +    ANIM_CMD(FERALIGATR), +    ANIM_CMD(SENTRET), +    ANIM_CMD(FURRET), +    ANIM_CMD(HOOTHOOT), +    ANIM_CMD(NOCTOWL), +    ANIM_CMD(LEDYBA), +    ANIM_CMD(LEDIAN), +    ANIM_CMD(SPINARAK), +    ANIM_CMD(ARIADOS), +    ANIM_CMD(CROBAT), +    ANIM_CMD(CHINCHOU), +    ANIM_CMD(LANTURN), +    ANIM_CMD(PICHU), +    ANIM_CMD(CLEFFA), +    ANIM_CMD(IGGLYBUFF), +    ANIM_CMD(TOGEPI), +    ANIM_CMD(TOGETIC), +    ANIM_CMD(NATU), +    ANIM_CMD(XATU), +    ANIM_CMD(MAREEP), +    ANIM_CMD(FLAAFFY), +    ANIM_CMD(AMPHAROS), +    ANIM_CMD(BELLOSSOM), +    ANIM_CMD(MARILL), +    ANIM_CMD(AZUMARILL), +    ANIM_CMD(SUDOWOODO), +    ANIM_CMD(POLITOED), +    ANIM_CMD(HOPPIP), +    ANIM_CMD(SKIPLOOM), +    ANIM_CMD(JUMPLUFF), +    ANIM_CMD(AIPOM), +    ANIM_CMD(SUNKERN), +    ANIM_CMD(SUNFLORA), +    ANIM_CMD(YANMA), +    ANIM_CMD(WOOPER), +    ANIM_CMD(QUAGSIRE), +    ANIM_CMD(ESPEON), +    ANIM_CMD(UMBREON), +    ANIM_CMD(MURKROW), +    ANIM_CMD(SLOWKING), +    ANIM_CMD(MISDREAVUS), +    ANIM_CMD(UNOWN), +    ANIM_CMD(WOBBUFFET), +    ANIM_CMD(GIRAFARIG), +    ANIM_CMD(PINECO), +    ANIM_CMD(FORRETRESS), +    ANIM_CMD(DUNSPARCE), +    ANIM_CMD(GLIGAR), +    ANIM_CMD(STEELIX), +    ANIM_CMD(SNUBBULL), +    ANIM_CMD(GRANBULL), +    ANIM_CMD(QWILFISH), +    ANIM_CMD(SCIZOR), +    ANIM_CMD(SHUCKLE), +    ANIM_CMD(HERACROSS), +    ANIM_CMD(SNEASEL), +    ANIM_CMD(TEDDIURSA), +    ANIM_CMD(URSARING), +    ANIM_CMD(SLUGMA), +    ANIM_CMD(MAGCARGO), +    ANIM_CMD(SWINUB), +    ANIM_CMD(PILOSWINE), +    ANIM_CMD(CORSOLA), +    ANIM_CMD(REMORAID), +    ANIM_CMD(OCTILLERY), +    ANIM_CMD(DELIBIRD), +    ANIM_CMD(MANTINE), +    ANIM_CMD(SKARMORY), +    ANIM_CMD(HOUNDOUR), +    ANIM_CMD(HOUNDOOM), +    ANIM_CMD(KINGDRA), +    ANIM_CMD(PHANPY), +    ANIM_CMD(DONPHAN), +    ANIM_CMD(PORYGON2), +    ANIM_CMD(STANTLER), +    ANIM_CMD(SMEARGLE), +    ANIM_CMD(TYROGUE), +    ANIM_CMD(HITMONTOP), +    ANIM_CMD(SMOOCHUM), +    ANIM_CMD(ELEKID), +    ANIM_CMD(MAGBY), +    ANIM_CMD(MILTANK), +    ANIM_CMD(BLISSEY), +    ANIM_CMD(RAIKOU), +    ANIM_CMD(ENTEI), +    ANIM_CMD(SUICUNE), +    ANIM_CMD(LARVITAR), +    ANIM_CMD(PUPITAR), +    ANIM_CMD(TYRANITAR), +    ANIM_CMD(LUGIA), +    ANIM_CMD(HO_OH), +    ANIM_CMD(CELEBI), +    ANIM_CMD_FULL(OLD_UNOWN_B, sUnknownAnims_OLD_UNOWN), +    ANIM_CMD_FULL(OLD_UNOWN_C, sUnknownAnims_OLD_UNOWN), +    ANIM_CMD_FULL(OLD_UNOWN_D, sUnknownAnims_OLD_UNOWN), +    ANIM_CMD_FULL(OLD_UNOWN_E, sUnknownAnims_OLD_UNOWN), +    ANIM_CMD_FULL(OLD_UNOWN_F, sUnknownAnims_OLD_UNOWN), +    ANIM_CMD_FULL(OLD_UNOWN_G, sUnknownAnims_OLD_UNOWN), +    ANIM_CMD_FULL(OLD_UNOWN_H, sUnknownAnims_OLD_UNOWN), +    ANIM_CMD_FULL(OLD_UNOWN_I, sUnknownAnims_OLD_UNOWN), +    ANIM_CMD_FULL(OLD_UNOWN_J, sUnknownAnims_OLD_UNOWN), +    ANIM_CMD_FULL(OLD_UNOWN_K, sUnknownAnims_OLD_UNOWN), +    ANIM_CMD_FULL(OLD_UNOWN_L, sUnknownAnims_OLD_UNOWN), +    ANIM_CMD_FULL(OLD_UNOWN_M, sUnknownAnims_OLD_UNOWN), +    ANIM_CMD_FULL(OLD_UNOWN_N, sUnknownAnims_OLD_UNOWN), +    ANIM_CMD_FULL(OLD_UNOWN_O, sUnknownAnims_OLD_UNOWN), +    ANIM_CMD_FULL(OLD_UNOWN_P, sUnknownAnims_OLD_UNOWN), +    ANIM_CMD_FULL(OLD_UNOWN_Q, sUnknownAnims_OLD_UNOWN), +    ANIM_CMD_FULL(OLD_UNOWN_R, sUnknownAnims_OLD_UNOWN), +    ANIM_CMD_FULL(OLD_UNOWN_S, sUnknownAnims_OLD_UNOWN), +    ANIM_CMD_FULL(OLD_UNOWN_T, sUnknownAnims_OLD_UNOWN), +    ANIM_CMD_FULL(OLD_UNOWN_U, sUnknownAnims_OLD_UNOWN), +    ANIM_CMD_FULL(OLD_UNOWN_V, sUnknownAnims_OLD_UNOWN), +    ANIM_CMD_FULL(OLD_UNOWN_W, sUnknownAnims_OLD_UNOWN), +    ANIM_CMD_FULL(OLD_UNOWN_X, sUnknownAnims_OLD_UNOWN), +    ANIM_CMD_FULL(OLD_UNOWN_Y, sUnknownAnims_OLD_UNOWN), +    ANIM_CMD_FULL(OLD_UNOWN_Z, sUnknownAnims_OLD_UNOWN), +    ANIM_CMD(TREECKO), +    ANIM_CMD(GROVYLE), +    ANIM_CMD(SCEPTILE), +    ANIM_CMD(TORCHIC), +    ANIM_CMD(COMBUSKEN), +    ANIM_CMD(BLAZIKEN), +    ANIM_CMD(MUDKIP), +    ANIM_CMD(MARSHTOMP), +    ANIM_CMD(SWAMPERT), +    ANIM_CMD(POOCHYENA), +    ANIM_CMD(MIGHTYENA), +    ANIM_CMD(ZIGZAGOON), +    ANIM_CMD(LINOONE), +    ANIM_CMD(WURMPLE), +    ANIM_CMD(SILCOON), +    ANIM_CMD(BEAUTIFLY), +    ANIM_CMD(CASCOON), +    ANIM_CMD(DUSTOX), +    ANIM_CMD(LOTAD), +    ANIM_CMD(LOMBRE), +    ANIM_CMD(LUDICOLO), +    ANIM_CMD(SEEDOT), +    ANIM_CMD(NUZLEAF), +    ANIM_CMD(SHIFTRY), +    ANIM_CMD(NINCADA), +    ANIM_CMD(NINJASK), +    ANIM_CMD(SHEDINJA), +    ANIM_CMD(TAILLOW), +    ANIM_CMD(SWELLOW), +    ANIM_CMD(SHROOMISH), +    ANIM_CMD(BRELOOM), +    ANIM_CMD(SPINDA), +    ANIM_CMD(WINGULL), +    ANIM_CMD(PELIPPER), +    ANIM_CMD(SURSKIT), +    ANIM_CMD(MASQUERAIN), +    ANIM_CMD(WAILMER), +    ANIM_CMD(WAILORD), +    ANIM_CMD(SKITTY), +    ANIM_CMD(DELCATTY), +    ANIM_CMD(KECLEON), +    ANIM_CMD(BALTOY), +    ANIM_CMD(CLAYDOL), +    ANIM_CMD(NOSEPASS), +    ANIM_CMD(TORKOAL), +    ANIM_CMD(SABLEYE), +    ANIM_CMD(BARBOACH), +    ANIM_CMD(WHISCASH), +    ANIM_CMD(LUVDISC), +    ANIM_CMD(CORPHISH), +    ANIM_CMD(CRAWDAUNT), +    ANIM_CMD(FEEBAS), +    ANIM_CMD(MILOTIC), +    ANIM_CMD(CARVANHA), +    ANIM_CMD(SHARPEDO), +    ANIM_CMD(TRAPINCH), +    ANIM_CMD(VIBRAVA), +    ANIM_CMD(FLYGON), +    ANIM_CMD(MAKUHITA), +    ANIM_CMD(HARIYAMA), +    ANIM_CMD(ELECTRIKE), +    ANIM_CMD(MANECTRIC), +    ANIM_CMD(NUMEL), +    ANIM_CMD(CAMERUPT), +    ANIM_CMD(SPHEAL), +    ANIM_CMD(SEALEO), +    ANIM_CMD(WALREIN), +    ANIM_CMD(CACNEA), +    ANIM_CMD(CACTURNE), +    ANIM_CMD(SNORUNT), +    ANIM_CMD(GLALIE), +    ANIM_CMD(LUNATONE), +    ANIM_CMD(SOLROCK), +    ANIM_CMD(AZURILL), +    ANIM_CMD(SPOINK), +    ANIM_CMD(GRUMPIG), +    ANIM_CMD(PLUSLE), +    ANIM_CMD(MINUN), +    ANIM_CMD(MAWILE), +    ANIM_CMD(MEDITITE), +    ANIM_CMD(MEDICHAM), +    ANIM_CMD(SWABLU), +    ANIM_CMD(ALTARIA), +    ANIM_CMD(WYNAUT), +    ANIM_CMD(DUSKULL), +    ANIM_CMD(DUSCLOPS), +    ANIM_CMD(ROSELIA), +    ANIM_CMD(SLAKOTH), +    ANIM_CMD(VIGOROTH), +    ANIM_CMD(SLAKING), +    ANIM_CMD(GULPIN), +    ANIM_CMD(SWALOT), +    ANIM_CMD(TROPIUS), +    ANIM_CMD(WHISMUR), +    ANIM_CMD(LOUDRED), +    ANIM_CMD(EXPLOUD), +    ANIM_CMD(CLAMPERL), +    ANIM_CMD(HUNTAIL), +    ANIM_CMD(GOREBYSS), +    ANIM_CMD(ABSOL), +    ANIM_CMD(SHUPPET), +    ANIM_CMD(BANETTE), +    ANIM_CMD(SEVIPER), +    ANIM_CMD(ZANGOOSE), +    ANIM_CMD(RELICANTH), +    ANIM_CMD(ARON), +    ANIM_CMD(LAIRON), +    ANIM_CMD(AGGRON), +    ANIM_CMD(CASTFORM), +    ANIM_CMD(VOLBEAT), +    ANIM_CMD(ILLUMISE), +    ANIM_CMD(LILEEP), +    ANIM_CMD(CRADILY), +    ANIM_CMD(ANORITH), +    ANIM_CMD(ARMALDO), +    ANIM_CMD(RALTS), +    ANIM_CMD(KIRLIA), +    ANIM_CMD(GARDEVOIR), +    ANIM_CMD(BAGON), +    ANIM_CMD(SHELGON), +    ANIM_CMD(SALAMENCE), +    ANIM_CMD(BELDUM), +    ANIM_CMD(METANG), +    ANIM_CMD(METAGROSS), +    ANIM_CMD(REGIROCK), +    ANIM_CMD(REGICE), +    ANIM_CMD(REGISTEEL), +    ANIM_CMD(KYOGRE), +    ANIM_CMD(GROUDON), +    ANIM_CMD(RAYQUAZA), +    ANIM_CMD(LATIAS), +    ANIM_CMD(LATIOS), +    ANIM_CMD(JIRACHI), +    ANIM_CMD(DEOXYS), +    ANIM_CMD(CHIMECHO), +    ANIM_CMD(EGG), +    ANIM_CMD_FULL(UNOWN_B, sUnknownAnims_EGG), +    ANIM_CMD(UNOWN_C), +    ANIM_CMD(UNOWN_D), +    ANIM_CMD(UNOWN_E), +    ANIM_CMD(UNOWN_F), +    ANIM_CMD(UNOWN_G), +    ANIM_CMD(UNOWN_H), +    ANIM_CMD(UNOWN_I), +    ANIM_CMD(UNOWN_J), +    ANIM_CMD(UNOWN_K), +    ANIM_CMD(UNOWN_L), +    ANIM_CMD(UNOWN_M), +    ANIM_CMD(UNOWN_N), +    ANIM_CMD(UNOWN_O), +    ANIM_CMD(UNOWN_P), +    ANIM_CMD(UNOWN_Q), +    ANIM_CMD(UNOWN_R), +    ANIM_CMD(UNOWN_S), +    ANIM_CMD(UNOWN_T), +    ANIM_CMD(UNOWN_U), +    ANIM_CMD(UNOWN_V), +    ANIM_CMD(UNOWN_W), +    ANIM_CMD(UNOWN_X), +    ANIM_CMD(UNOWN_Y), +    ANIM_CMD(UNOWN_Z), +    ANIM_CMD(UNOWN_EMARK), +    ANIM_CMD(UNOWN_QMARK), +}; + +#undef ANIM_CMD +#undef ANIM_CMD_FULL diff --git a/src/digit_obj_util.c b/src/digit_obj_util.c new file mode 100644 index 000000000..fe5d49e69 --- /dev/null +++ b/src/digit_obj_util.c @@ -0,0 +1,450 @@ +#include "global.h" +#include "digit_obj_util.h" +#include "malloc.h" +#include "decompress.h" +#include "main.h" +#include "battle_main.h" + +struct DigitPrinter +{ +    bool8 isActive; +    u8 firstOamId; +    u8 strConvMode; +    u8 oamCount; +    u8 palTagIndex; +    u8 size; +    u8 shape; +    u8 priority; +    u8 xDelta; +    u8 tilesPerImage; +    u16 tileStart; +    s16 x; +    s16 y; +    u16 tileTag; +    u16 palTag; +    u32 pow10; +    s32 lastPrinted; +}; + +struct DigitPrinterAlloc +{ +    u32 count; +    struct DigitPrinter *array; +}; + +// this file's functions +static u8 GetFirstOamId(u8 oamCount);; +static void CopyWorkToOam(struct DigitPrinter *objWork); +static void DrawNumObjsLeadingZeros(struct DigitPrinter *objWork, s32 num, bool32 sign); +static void DrawNumObjsMinusInFront(struct DigitPrinter *objWork, s32 num, bool32 sign); +static void DrawNumObjsMinusInBack(struct DigitPrinter *objWork, s32 num, bool32 sign); +static bool32 SharesTileWithAnyActive(u32 id); +static bool32 SharesPalWithAnyActive(u32 id); + +// ewram +static EWRAM_DATA struct DigitPrinterAlloc *sOamWork = {0}; + +// const rom data +static const u8 sTilesPerImage[4][4] = +{ +    [ST_OAM_SQUARE]      = { +        [ST_OAM_SIZE_0] = 0x01, // SPRITE_SIZE_8x8 +        [ST_OAM_SIZE_1] = 0x04, // SPRITE_SIZE_16x16 +        [ST_OAM_SIZE_2] = 0x10, // SPRITE_SIZE_32x32 +        [ST_OAM_SIZE_3] = 0x40  // SPRITE_SIZE_64x64 +    }, +    [ST_OAM_H_RECTANGLE] = { +        [ST_OAM_SIZE_0] = 0x02, // SPRITE_SIZE_16x8 +        [ST_OAM_SIZE_1] = 0x04, // SPRITE_SIZE_32x8 +        [ST_OAM_SIZE_2] = 0x08, // SPRITE_SIZE_32x16 +        [ST_OAM_SIZE_3] = 0x20  // SPRITE_SIZE_64x32 +    }, +    [ST_OAM_V_RECTANGLE] = { +        [ST_OAM_SIZE_0] = 0x02, // SPRITE_SIZE_8x16 +        [ST_OAM_SIZE_1] = 0x04, // SPRITE_SIZE_8x32 +        [ST_OAM_SIZE_2] = 0x08, // SPRITE_SIZE_16x32 +        [ST_OAM_SIZE_3] = 0x20  // SPRITE_SIZE_32x64 +    } +}; + +// code +bool32 DigitObjUtil_Init(u32 count) +{ +    u32 i; + +    if (sOamWork != NULL) +        DigitObjUtil_Free(); + +    sOamWork = Alloc(sizeof(*sOamWork)); +    if (sOamWork == NULL) +        return FALSE; + +    sOamWork->array = Alloc(sizeof(struct DigitPrinter) * count); +    if (sOamWork->array == NULL) +    { +        Free(sOamWork); +        return FALSE; +    } + +    sOamWork->count = count; +    for (i = 0; i < count; i++) +    { +        sOamWork->array[i].isActive = FALSE; +        sOamWork->array[i].firstOamId = 0xFF; +    } + +    return TRUE; +} + +void DigitObjUtil_Free(void) +{ +    if (sOamWork != NULL) +    { +        if (sOamWork->array != NULL) +        { +            u32 i; + +            for (i = 0; i < sOamWork->count; i++) +                DigitObjUtil_DeletePrinter(i); + +            Free(sOamWork->array); +        } + +        FREE_AND_SET_NULL(sOamWork); +    } +} + +bool32 DigitObjUtil_CreatePrinter(u32 id, s32 num, const struct DigitObjUtilTemplate *template) +{ +    u32 i; + +    if (sOamWork == NULL) +        return FALSE; +    if (sOamWork->array[id].isActive) +        return FALSE; + +    sOamWork->array[id].firstOamId = GetFirstOamId(template->oamCount); +    if (sOamWork->array[id].firstOamId == 0xFF) +        return FALSE; + +    sOamWork->array[id].tileStart = GetSpriteTileStartByTag(template->spriteSheet->tag); +    if (sOamWork->array[id].tileStart == 0xFFFF) +    { +        if (template->spriteSheet->size != 0) +        { +            sOamWork->array[id].tileStart = LoadSpriteSheet(template->spriteSheet); +        } +        else +        { +            struct CompressedSpriteSheet compSpriteSheet; + +            compSpriteSheet = *(struct CompressedSpriteSheet*)(template->spriteSheet); +            compSpriteSheet.size = GetDecompressedDataSize(template->spriteSheet->data); +            sOamWork->array[id].tileStart = LoadCompressedSpriteSheet(&compSpriteSheet); +        } + +        if (sOamWork->array[id].tileStart == 0xFFFF) +            return FALSE; +    } + +    sOamWork->array[id].palTagIndex = IndexOfSpritePaletteTag(template->spritePal->tag); +    if (sOamWork->array[id].palTagIndex == 0xFF) +        sOamWork->array[id].palTagIndex = LoadSpritePalette(template->spritePal); + +    sOamWork->array[id].strConvMode = template->strConvMode; +    sOamWork->array[id].oamCount = template->oamCount; +    sOamWork->array[id].x = template->x; +    sOamWork->array[id].y = template->y; +    sOamWork->array[id].shape = template->shape; +    sOamWork->array[id].size = template->size; +    sOamWork->array[id].priority = template->priority; +    sOamWork->array[id].xDelta = template->xDelta; +    sOamWork->array[id].tilesPerImage = GetTilesPerImage(template->shape, template->size); +    sOamWork->array[id].tileTag = template->spriteSheet->tag; +    sOamWork->array[id].palTag = template->spritePal->tag; +    sOamWork->array[id].isActive = TRUE; + +    // Decimal left shift +    sOamWork->array[id].pow10 = 1; +    for (i = 1; i < template->oamCount; i++) +        sOamWork->array[id].pow10 *= 10; + +    CopyWorkToOam(&sOamWork->array[id]); +    DigitObjUtil_PrintNumOn(id, num); + +    return TRUE; +} + +static void CopyWorkToOam(struct DigitPrinter *objWork) +{ +    u32 i; +    u32 oamId = objWork->firstOamId; +    u32 x = objWork->x; +    u32 oamCount = objWork->oamCount + 1; + +    CpuFill16(0, &gMain.oamBuffer[oamId], sizeof(struct OamData) * oamCount); +    for (i = 0, oamId = objWork->firstOamId; i < oamCount; i++, oamId++) +    { +        gMain.oamBuffer[oamId].y = objWork->y; +        gMain.oamBuffer[oamId].x = x; +        gMain.oamBuffer[oamId].shape = objWork->shape; +        gMain.oamBuffer[oamId].size = objWork->size; +        gMain.oamBuffer[oamId].tileNum = objWork->tileStart; +        gMain.oamBuffer[oamId].priority = objWork->priority; +        gMain.oamBuffer[oamId].paletteNum = objWork->palTagIndex; + +        x += objWork->xDelta; +    } + +    oamId--; +    gMain.oamBuffer[oamId].x = objWork->x - objWork->xDelta; +    gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_ERASE; +    gMain.oamBuffer[oamId].tileNum = objWork->tileStart + (objWork->tilesPerImage * 10); +} + +void DigitObjUtil_PrintNumOn(u32 id, s32 num) +{ +    bool32 sign; + +    if (sOamWork == NULL) +        return; +    if (!sOamWork->array[id].isActive) +        return; + +    sOamWork->array[id].lastPrinted = num; +    if (num < 0) +    { +        sign = TRUE; +        num *= -1; +    } +    else +    { +        sign = FALSE; +    } + +    switch (sOamWork->array[id].strConvMode) +    { +    case 0: +    default: +        DrawNumObjsLeadingZeros(&sOamWork->array[id], num, sign); +        break; +    case 1: +        DrawNumObjsMinusInFront(&sOamWork->array[id], num, sign); +        break; +    case 2: +        DrawNumObjsMinusInBack(&sOamWork->array[id], num, sign); +        break; +    } +} + +static void DrawNumObjsLeadingZeros(struct DigitPrinter *objWork, s32 num, bool32 sign) +{ +    u32 pow10 = objWork->pow10; +    u32 oamId = objWork->firstOamId; + +    while (pow10 != 0) +    { +        u32 digit = num / pow10; +        num -= (digit * pow10); +        pow10 /= 10; + +        gMain.oamBuffer[oamId].tileNum = (digit * objWork->tilesPerImage) + objWork->tileStart; +        oamId++; +    } + +    if (sign) +        gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_OFF; +    else +        gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_ERASE; +} + +static void DrawNumObjsMinusInFront(struct DigitPrinter *objWork, s32 num, bool32 sign) +{ +    u32 pow10 = objWork->pow10; +    static int oamId; +    static int curDigit; +    static int firstDigit; + +    oamId = objWork->firstOamId; +    curDigit = 0; +    firstDigit = -1; + +    while (pow10 != 0) +    { +        u32 digit = num / pow10; +        num -= (digit * pow10); +        pow10 /= 10; + +        if (digit != 0 || firstDigit != -1 || pow10 == 0) +        { +            gMain.oamBuffer[oamId].tileNum = (digit * objWork->tilesPerImage) + objWork->tileStart; +            gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_OFF; + +            if (firstDigit == -1) +                firstDigit = curDigit; +        } +        else +        { +            gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_ERASE; +        } + +        oamId++; +        curDigit++; +    } + +    if (sign) +    { +        gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_OFF; +        gMain.oamBuffer[oamId].x = objWork->x + ((firstDigit - 1) * objWork->xDelta); +    } +    else +    { +        gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_ERASE; +    } +} + +static void DrawNumObjsMinusInBack(struct DigitPrinter *objWork, s32 num, bool32 sign) +{ +    u32 pow10 = objWork->pow10; +    u32 oamId = objWork->firstOamId; +    bool32 printingDigits = FALSE; +    s32 nsprites = 0; + +    while (pow10 != 0) +    { +        u32 digit = num / pow10; +        num -= (digit * pow10); +        pow10 /= 10; + +        if (digit != 0 || printingDigits || pow10 == 0) +        { +            printingDigits = TRUE; +            gMain.oamBuffer[oamId].tileNum = (digit * objWork->tilesPerImage) + objWork->tileStart; +            gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_OFF; + +            oamId++; +            nsprites++; +        } +    } + +    while (nsprites < objWork->oamCount) +    { +        gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_ERASE; +        oamId++; +        nsprites++; +    } + +    if (sign) +        gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_OFF; +    else +        gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_ERASE; +} + +void DigitObjUtil_DeletePrinter(u32 id) +{ +    s32 oamId, oamCount, i; + +    if (sOamWork == NULL) +        return; +    if (!sOamWork->array[id].isActive) +        return; + +    oamCount = sOamWork->array[id].oamCount + 1; +    oamId = sOamWork->array[id].firstOamId; + +    for (i = 0; i < oamCount; i++, oamId++) +        gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_ERASE; + +    if (!SharesTileWithAnyActive(id)) +        FreeSpriteTilesByTag(sOamWork->array[id].tileTag); +    if (!SharesPalWithAnyActive(id)) +        FreeSpritePaletteByTag(sOamWork->array[id].palTag); + +    sOamWork->array[id].isActive = FALSE; +} + +void DigitObjUtil_HideOrShow(u32 id, bool32 hide) +{ +    s32 oamId, oamCount, i; + +    if (sOamWork == NULL) +        return; +    if (!sOamWork->array[id].isActive) +        return; + +    oamCount = sOamWork->array[id].oamCount + 1; +    oamId = sOamWork->array[id].firstOamId; +    if (hide) +    { +        for (i = 0; i < oamCount; i++, oamId++) +            gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_ERASE; +    } +    else +    { +        for (i = 0; i < oamCount; i++, oamId++) +            gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_OFF; + +        DigitObjUtil_PrintNumOn(id, sOamWork->array[id].lastPrinted); +    } +} + +static u8 GetFirstOamId(u8 oamCount) +{ +    u32 i; +    u16 firstOamId = 64; + +    for (i = 0; i < sOamWork->count; i++) +    { +        if (!sOamWork->array[i].isActive) +        { +            if (sOamWork->array[i].firstOamId != 0xFF && sOamWork->array[i].oamCount <= oamCount) +                return sOamWork->array[i].firstOamId; +        } +        else +        { +            firstOamId += 1 + sOamWork->array[i].oamCount; +        } +    } + +    if (firstOamId + oamCount + 1 > 128) +        return 0xFF; +    else +        return firstOamId; +} + +static bool32 SharesTileWithAnyActive(u32 id) +{ +    u32 i; + +    for (i = 0; i < sOamWork->count; i++) +    { +        if (sOamWork->array[i].isActive && i != id +            && sOamWork->array[i].tileTag == sOamWork->array[id].tileTag) +        { +            return TRUE; +        } +    } + +    return FALSE; +} + +static bool32 SharesPalWithAnyActive(u32 id) +{ +    u32 i; + +    for (i = 0; i < sOamWork->count; i++) +    { +        if (sOamWork->array[i].isActive && i != id +            && sOamWork->array[i].palTag == sOamWork->array[id].palTag) +        { +            return TRUE; +        } +    } + +    return FALSE; +} + +u8 GetTilesPerImage(u32 shape, u32 size) +{ +    return sTilesPerImage[shape][size]; +} diff --git a/src/dodrio_berry_picking.c b/src/dodrio_berry_picking.c index 40074e0af..936c1828f 100644 --- a/src/dodrio_berry_picking.c +++ b/src/dodrio_berry_picking.c @@ -12,7 +12,7 @@  #include "m4a.h"  #include "main.h"  #include "palette.h" -#include "pokemon_jump.h" +#include "minigame_countdown.h"  #include "random.h"  #include "save.h"  #include "script.h" @@ -667,7 +667,7 @@ static void sub_8024E38(void)      switch (gUnknown_02022C98->unk10)      {      case 0: -        sub_802EB24(7, 8, 120, 80, 0); +        StartMinigameCountdown(7, 8, 120, 80, 0);          gUnknown_02022C98->unk10++;          break;      case 1: @@ -682,7 +682,7 @@ static void sub_8024E38(void)          }          break;      case 3: -        if (!sub_802EB84()) +        if (!IsMinigameCountdownRunning())          {              gUnknown_02022C98->unk10++;          } diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 464e6acec..09cdd94cd 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -1754,7 +1754,7 @@ static void SetPlayerAvatarObjectEventIdAndObjectId(u8 objectEventId, u8 spriteI      gPlayerAvatar.objectEventId = objectEventId;      gPlayerAvatar.spriteId = spriteId;      gPlayerAvatar.gender = GetPlayerAvatarGenderByGraphicsId(gObjectEvents[objectEventId].graphicsId); -    SetPlayerAvatarExtraStateTransition(gObjectEvents[objectEventId].graphicsId, 0x20); +    SetPlayerAvatarExtraStateTransition(gObjectEvents[objectEventId].graphicsId, PLAYER_AVATAR_FLAG_5);  }  void ObjectEventSetGraphicsId(struct ObjectEvent *objectEvent, u8 graphicsId) diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index ebab51ed8..35bbb1e03 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -59,8 +59,8 @@ static bool8 ForcedMovement_SlideSouth(void);  static bool8 ForcedMovement_SlideNorth(void);  static bool8 ForcedMovement_SlideWest(void);  static bool8 ForcedMovement_SlideEast(void); -static bool8 ForcedMovement_0xBB(void); -static bool8 ForcedMovement_0xBC(void); +static bool8 ForcedMovement_MatJump(void); +static bool8 ForcedMovement_MatSpin(void);  static bool8 ForcedMovement_MuddySlope(void);  static void MovePlayerNotOnBike(u8, u16); @@ -99,10 +99,10 @@ static void PlayCollisionSoundIfNotFacingWarp(u8 a);  static void sub_808C280(struct ObjectEvent *);  static void StartStrengthAnim(u8, u8); -static void Task_BumpBoulder(u8 taskId); -static u8 sub_808C3A4(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject); -static u8 do_boulder_dust(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject); -static u8 sub_808C484(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject); +static void Task_PushBoulder(u8 taskId); +static u8 PushBoulder_Start(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject); +static u8 PushBoulder_Move(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject); +static u8 PushBoulder_End(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject);  static void DoPlayerMatJump(void);  static void DoPlayerAvatarSecretBaseMatJump(u8 taskId); @@ -182,8 +182,8 @@ static bool8 (*const sForcedMovementFuncs[])(void) =      ForcedMovement_SlideWest,      ForcedMovement_SlideEast,      ForcedMovement_PushedSouthByCurrent, -    ForcedMovement_0xBB, -    ForcedMovement_0xBC, +    ForcedMovement_MatJump, +    ForcedMovement_MatSpin,      ForcedMovement_MuddySlope,  }; @@ -211,16 +211,16 @@ static const u8 sAcroBikeTrickCollisionTypes[] = {      COLLISION_HORIZONTAL_RAIL,  }; -static void (*const gUnknown_084974B8[])(struct ObjectEvent *) = +static void (*const sPlayerAvatarTransitionFuncs[])(struct ObjectEvent *) =  { -    PlayerAvatarTransition_Normal, -    PlayerAvatarTransition_MachBike, -    PlayerAvatarTransition_AcroBike, -    PlayerAvatarTransition_Surfing, -    PlayerAvatarTransition_Underwater, -    PlayerAvatarTransition_ReturnToField, -    PlayerAvatarTransition_Dummy, -    PlayerAvatarTransition_Dummy, +    [PLAYER_AVATAR_STATE_NORMAL]     = PlayerAvatarTransition_Normal, +    [PLAYER_AVATAR_STATE_MACH_BIKE]  = PlayerAvatarTransition_MachBike, +    [PLAYER_AVATAR_STATE_ACRO_BIKE]  = PlayerAvatarTransition_AcroBike, +    [PLAYER_AVATAR_STATE_SURFING]    = PlayerAvatarTransition_Surfing, +    [PLAYER_AVATAR_STATE_UNDERWATER] = PlayerAvatarTransition_Underwater, +    [PLAYER_AVATAR_STATE_FIELD_MOVE] = PlayerAvatarTransition_ReturnToField, +    [PLAYER_AVATAR_STATE_FISHING]    = PlayerAvatarTransition_Dummy, +    [PLAYER_AVATAR_STATE_WATERING]   = PlayerAvatarTransition_Dummy,  };  static bool8 (*const sArrowWarpMetatileBehaviorChecks[])(u8) = @@ -259,23 +259,23 @@ static const u8 sFRLGAvatarGfxIds[] = {OBJ_EVENT_GFX_RED, OBJ_EVENT_GFX_LEAF};  static const u8 sRSAvatarGfxIds[] = {OBJ_EVENT_GFX_LINK_RS_BRENDAN, OBJ_EVENT_GFX_LINK_RS_MAY}; -static const u8 gUnknown_0849750C[2][5][2] = +static const u8 sPlayerAvatarGfxToStateFlag[2][5][2] =  { -    //male +    [MALE] =       { -        {OBJ_EVENT_GFX_BRENDAN_NORMAL, 1}, -        {OBJ_EVENT_GFX_BRENDAN_MACH_BIKE, 2}, -        {OBJ_EVENT_GFX_BRENDAN_ACRO_BIKE, 4}, -        {OBJ_EVENT_GFX_BRENDAN_SURFING, 8}, -        {OBJ_EVENT_GFX_BRENDAN_UNDERWATER, 16}, +        {OBJ_EVENT_GFX_BRENDAN_NORMAL,     PLAYER_AVATAR_FLAG_ON_FOOT}, +        {OBJ_EVENT_GFX_BRENDAN_MACH_BIKE,  PLAYER_AVATAR_FLAG_MACH_BIKE}, +        {OBJ_EVENT_GFX_BRENDAN_ACRO_BIKE,  PLAYER_AVATAR_FLAG_ACRO_BIKE}, +        {OBJ_EVENT_GFX_BRENDAN_SURFING,    PLAYER_AVATAR_FLAG_SURFING}, +        {OBJ_EVENT_GFX_BRENDAN_UNDERWATER, PLAYER_AVATAR_FLAG_UNDERWATER},      }, -    //female +    [FEMALE] =       { -        {OBJ_EVENT_GFX_MAY_NORMAL, 1}, -        {OBJ_EVENT_GFX_MAY_MACH_BIKE, 2}, -        {OBJ_EVENT_GFX_MAY_ACRO_BIKE, 4}, -        {OBJ_EVENT_GFX_MAY_SURFING, 8}, -        {OBJ_EVENT_GFX_MAY_UNDERWATER, 16}, +        {OBJ_EVENT_GFX_MAY_NORMAL,         PLAYER_AVATAR_FLAG_ON_FOOT}, +        {OBJ_EVENT_GFX_MAY_MACH_BIKE,      PLAYER_AVATAR_FLAG_MACH_BIKE}, +        {OBJ_EVENT_GFX_MAY_ACRO_BIKE,      PLAYER_AVATAR_FLAG_ACRO_BIKE}, +        {OBJ_EVENT_GFX_MAY_SURFING,        PLAYER_AVATAR_FLAG_SURFING}, +        {OBJ_EVENT_GFX_MAY_UNDERWATER,     PLAYER_AVATAR_FLAG_UNDERWATER},      }  }; @@ -287,11 +287,11 @@ static bool8 (*const sArrowWarpMetatileBehaviorChecks2[])(u8) =  //Duplicate of      MetatileBehavior_IsEastArrowWarp,  }; -static bool8 (*const gUnknown_08497530[])(struct Task *, struct ObjectEvent *, struct ObjectEvent *) = +static bool8 (*const sPushBoulderFuncs[])(struct Task *, struct ObjectEvent *, struct ObjectEvent *) =  { -    sub_808C3A4, -    do_boulder_dust, -    sub_808C484, +    PushBoulder_Start, +    PushBoulder_Move, +    PushBoulder_End,  };  static bool8 (*const sPlayerAvatarSecretBaseMatJump[])(struct Task *, struct ObjectEvent *) = @@ -547,13 +547,13 @@ static bool8 ForcedMovement_SlideEast(void)      return ForcedMovement_Slide(DIR_EAST, PlayerGoSpeed2);  } -static bool8 ForcedMovement_0xBB(void) +static bool8 ForcedMovement_MatJump(void)  {      DoPlayerMatJump();      return TRUE;  } -static bool8 ForcedMovement_0xBC(void) +static bool8 ForcedMovement_MatSpin(void)  {      DoPlayerMatSpin();      return TRUE; @@ -807,23 +807,23 @@ bool8 IsPlayerCollidingWithFarawayIslandMew(u8 direction)  void SetPlayerAvatarTransitionFlags(u16 transitionFlags)  { -    gPlayerAvatar.unk1 |= transitionFlags; +    gPlayerAvatar.transitionFlags |= transitionFlags;      DoPlayerAvatarTransition();  }  static void DoPlayerAvatarTransition(void)  {      u8 i; -    u8 flags = gPlayerAvatar.unk1; +    u8 flags = gPlayerAvatar.transitionFlags;      if (flags != 0)      { -        for (i = 0; i < 8; i++, flags >>= 1) +        for (i = 0; i < ARRAY_COUNT(sPlayerAvatarTransitionFuncs); i++, flags >>= 1)          {              if (flags & 1) -                gUnknown_084974B8[i](&gObjectEvents[gPlayerAvatar.objectEventId]); +                sPlayerAvatarTransitionFuncs[i](&gObjectEvents[gPlayerAvatar.objectEventId]);          } -        gPlayerAvatar.unk1 = 0; +        gPlayerAvatar.transitionFlags = 0;      }  } @@ -1186,12 +1186,12 @@ void sub_808BC90(s16 x, s16 y)      MoveObjectEventToMapCoords(&gObjectEvents[gPlayerAvatar.objectEventId], x, y);  } -u8 TestPlayerAvatarFlags(u8 a) +u8 TestPlayerAvatarFlags(u8 flag)  { -    return gPlayerAvatar.flags & a; +    return gPlayerAvatar.flags & flag;  } -u8 sub_808BCD0(void) +u8 GetPlayerAvatarFlags(void)  {      return gPlayerAvatar.flags;  } @@ -1335,32 +1335,32 @@ static u8 GetPlayerAvatarStateTransitionByGraphicsId(u8 graphicsId, u8 gender)  {      u8 i; -    for (i = 0; i < 5; i++) +    for (i = 0; i < ARRAY_COUNT(sPlayerAvatarGfxToStateFlag[0]); i++)      { -        if (gUnknown_0849750C[gender][i][0] == graphicsId) -            return gUnknown_0849750C[gender][i][1]; +        if (sPlayerAvatarGfxToStateFlag[gender][i][0] == graphicsId) +            return sPlayerAvatarGfxToStateFlag[gender][i][1];      } -    return 1; +    return PLAYER_AVATAR_FLAG_ON_FOOT;  }  u8 GetPlayerAvatarGraphicsIdByCurrentState(void)  {      u8 i; -    u8 r5 = gPlayerAvatar.flags; +    u8 flags = gPlayerAvatar.flags; -    for (i = 0; i < 5; i++) +    for (i = 0; i < ARRAY_COUNT(sPlayerAvatarGfxToStateFlag[0]); i++)      { -        if (gUnknown_0849750C[gPlayerAvatar.gender][i][1] & r5) -            return gUnknown_0849750C[gPlayerAvatar.gender][i][0]; +        if (sPlayerAvatarGfxToStateFlag[gPlayerAvatar.gender][i][1] & flags) +            return sPlayerAvatarGfxToStateFlag[gPlayerAvatar.gender][i][0];      }      return 0;  } -void SetPlayerAvatarExtraStateTransition(u8 graphicsId, u8 b) +void SetPlayerAvatarExtraStateTransition(u8 graphicsId, u8 transitionFlag)  { -    u8 unk = GetPlayerAvatarStateTransitionByGraphicsId(graphicsId, gPlayerAvatar.gender); +    u8 stateFlag = GetPlayerAvatarStateTransitionByGraphicsId(graphicsId, gPlayerAvatar.gender); -    gPlayerAvatar.unk1 |= unk | b; +    gPlayerAvatar.transitionFlags |= stateFlag | transitionFlag;      DoPlayerAvatarTransition();  } @@ -1384,7 +1384,7 @@ void InitPlayerAvatar(s16 x, s16 y, u8 direction, u8 gender)      playerObjEventTemplate.flagId = 0;      objectEventId = SpawnSpecialObjectEvent(&playerObjEventTemplate);      objectEvent = &gObjectEvents[objectEventId]; -    objectEvent->isPlayer = 1; +    objectEvent->isPlayer = TRUE;      objectEvent->warpArrowSpriteId = CreateWarpArrowSprite();      ObjectEventTurn(objectEvent, direction);      ClearPlayerAvatarInfo(); @@ -1453,22 +1453,22 @@ static void sub_808C280(struct ObjectEvent *objectEvent)  static void StartStrengthAnim(u8 a, u8 b)  { -    u8 taskId = CreateTask(Task_BumpBoulder, 0xFF); +    u8 taskId = CreateTask(Task_PushBoulder, 0xFF);      gTasks[taskId].data[1] = a;      gTasks[taskId].data[2] = b; -    Task_BumpBoulder(taskId); +    Task_PushBoulder(taskId);  } -static void Task_BumpBoulder(u8 taskId) +static void Task_PushBoulder(u8 taskId)  { -    while (gUnknown_08497530[gTasks[taskId].data[0]](&gTasks[taskId], +    while (sPushBoulderFuncs[gTasks[taskId].data[0]](&gTasks[taskId],                                                       &gObjectEvents[gPlayerAvatar.objectEventId],                                                       &gObjectEvents[gTasks[taskId].data[1]]))          ;  } -static bool8 sub_808C3A4(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject) +static bool8 PushBoulder_Start(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject)  {      ScriptContext2_Enable();      gPlayerAvatar.preventStep = TRUE; @@ -1476,7 +1476,7 @@ static bool8 sub_808C3A4(struct Task *task, struct ObjectEvent *playerObject, st      return FALSE;  } -static bool8 do_boulder_dust(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject) +static bool8 PushBoulder_Move(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject)  {      if (ObjectEventIsHeldMovementActive(playerObject))      { @@ -1506,7 +1506,7 @@ static bool8 do_boulder_dust(struct Task *task, struct ObjectEvent *playerObject      return FALSE;  } -static bool8 sub_808C484(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject) +static bool8 PushBoulder_End(struct Task *task, struct ObjectEvent *playerObject, struct ObjectEvent *strengthObject)  {      if (ObjectEventCheckHeldMovementStatus(playerObject)       && ObjectEventCheckHeldMovementStatus(strengthObject)) @@ -1515,7 +1515,7 @@ static bool8 sub_808C484(struct Task *task, struct ObjectEvent *playerObject, st          ObjectEventClearHeldMovementIfFinished(strengthObject);          gPlayerAvatar.preventStep = FALSE;          ScriptContext2_Disable(); -        DestroyTask(FindTaskIdByFunc(Task_BumpBoulder)); +        DestroyTask(FindTaskIdByFunc(Task_PushBoulder));      }      return FALSE;  } @@ -1545,7 +1545,7 @@ static u8 PlayerAvatar_DoSecretBaseMatJump(struct Task *task, struct ObjectEvent          if (task->data[1] > 1)          {              gPlayerAvatar.preventStep = FALSE; -            gPlayerAvatar.unk1 |= 0x20; +            gPlayerAvatar.transitionFlags |= PLAYER_AVATAR_FLAG_5;              DestroyTask(FindTaskIdByFunc(DoPlayerAvatarSecretBaseMatJump));          }      } diff --git a/src/fldeff_misc.c b/src/fldeff_misc.c index 60d1ea072..def86ab1b 100644 --- a/src/fldeff_misc.c +++ b/src/fldeff_misc.c @@ -1260,7 +1260,7 @@ static void Task_WateringBerryTreeAnim_2(u8 taskId)  static void Task_WateringBerryTreeAnim_3(u8 taskId)  { -    SetPlayerAvatarTransitionFlags(sub_808BCD0()); +    SetPlayerAvatarTransitionFlags(GetPlayerAvatarFlags());      DestroyTask(taskId);      EnableBothScriptContexts();  } diff --git a/src/frontier_util.c b/src/frontier_util.c index f46c60391..668771375 100644 --- a/src/frontier_util.c +++ b/src/frontier_util.c @@ -94,7 +94,7 @@ static const u8 sFrontierBrainStreakAppearances[NUM_FRONTIER_FACILITIES][4] =      [FRONTIER_FACILITY_PYRAMID] = {21,  70, 35, 0},  }; -static const struct FrontierBrainMon sFrontierBrainsMons[][2][3] = +static const struct FrontierBrainMon sFrontierBrainsMons[][2][FRONTIER_PARTY_SIZE] =  {      [FRONTIER_FACILITY_TOWER] =      { @@ -1778,9 +1778,9 @@ void ResetWinStreaks(void)      s32 battleMode, lvlMode;      gSaveBlock2Ptr->frontier.winStreakActiveFlags = 0; -    for (battleMode = 0; battleMode < 4; battleMode++) +    for (battleMode = 0; battleMode < FRONTIER_MODE_COUNT; battleMode++)      { -        for (lvlMode = 0; lvlMode < 2; lvlMode++) +        for (lvlMode = 0; lvlMode < FRONTIER_LVL_TENT; lvlMode++)          {              gSaveBlock2Ptr->frontier.towerWinStreaks[battleMode][lvlMode] = 0;              if (battleMode < FRONTIER_MODE_MULTIS) diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index 065d25582..05e4ed0aa 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -155,7 +155,7 @@ static const struct CompressedSpritePalette sHallOfFame_ConfettiSpritePalette[]      {},  }; -static const s16 sHallOfFame_MonFullTeamPositions[6][4] = +static const s16 sHallOfFame_MonFullTeamPositions[PARTY_SIZE][4] =  {      {120,   210,    120,    40},      {326,   220,    56,     40}, @@ -165,7 +165,7 @@ static const s16 sHallOfFame_MonFullTeamPositions[6][4] =      {310,   -92,    40,     88}  }; -static const s16 sHallOfFame_MonHalfTeamPositions[3][4] = +static const s16 sHallOfFame_MonHalfTeamPositions[PARTY_SIZE / 2][4] =  {      {120,   234,    120,    64},      {326,   244,    56,     64}, @@ -544,7 +544,7 @@ static void Task_Hof_DisplayMon(u8 taskId)      u16 currMonId = gTasks[taskId].tDisplayedMonId;      struct HallofFameMon* currMon = &sHofMonPtr->mon[currMonId]; -    if (gTasks[taskId].tMonNumber > 3) +    if (gTasks[taskId].tMonNumber > PARTY_SIZE / 2)      {          xPos = sHallOfFame_MonFullTeamPositions[currMonId][0];          yPos = sHallOfFame_MonFullTeamPositions[currMonId][1]; @@ -893,7 +893,7 @@ static void Task_HofPC_DrawSpritesPrintText(u8 taskId)              u16 spriteId;              s16 posX, posY; -            if (gTasks[taskId].tMonNo > 3) +            if (gTasks[taskId].tMonNo > PARTY_SIZE / 2)              {                  posX = sHallOfFame_MonFullTeamPositions[i][2];                  posY = sHallOfFame_MonFullTeamPositions[i][3]; diff --git a/src/item_use.c b/src/item_use.c index 954d4b26f..73d6f6ffe 100755 --- a/src/item_use.c +++ b/src/item_use.c @@ -221,9 +221,9 @@ void ItemUseOutOfBattle_Bike(u8 taskId)  static void ItemUseOnFieldCB_Bike(u8 taskId)  {      if (!ItemId_GetSecondaryId(gSpecialVar_ItemId)) -        GetOnOffBike(2); +        GetOnOffBike(PLAYER_AVATAR_FLAG_MACH_BIKE);      else -        GetOnOffBike(4); +        GetOnOffBike(PLAYER_AVATAR_FLAG_ACRO_BIKE);      ScriptUnfreezeObjectEvents();      ScriptContext2_Disable();      DestroyTask(taskId); diff --git a/src/minigame_countdown.c b/src/minigame_countdown.c new file mode 100644 index 000000000..be1c42e29 --- /dev/null +++ b/src/minigame_countdown.c @@ -0,0 +1,636 @@ +#include "global.h" +#include "decompress.h" +#include "link.h" +#include "link_rfu.h" +#include "sound.h" +#include "task.h" +#include "trig.h" +#include "constants/songs.h" + +extern const struct OamData gOamData_AffineOff_ObjNormal_32x32; + +static void sub_802E6D0(u8 taskId); +static void sub_802E83C(u8 taskId); +static void sub_802E8C8(u8 taskId); +static void sub_802EA50(u8 taskId); +static void sub_802EAB0(u8 taskId); +static void sub_802EB98(u8 taskId); +static void Task_MinigameCountdown(u8 taskId); +static bool32 RunMinigameCountdownDigitsAnim(u8 spriteId); +static bool32 IsStartGraphicAnimRunning(u8 spriteId); +static void Load321StartGfx(u16 tileTag, u16 palTag); +static u8 CreateNumberSprite(u16 tileTag, u16 palTag, s16 x, s16 y, u8 subpriority); +static void CreateStartSprite(u16 tileTag, u16 palTag, s16 x, s16 y, u8 subpriority, s16 *spriteId1, s16 *spriteId2); +static void InitStartGraphic(u8 spriteId1, u8 spriteId2, u8 spriteId3); +static void SpriteCB_Start(struct Sprite *sprite); + +static const u16 sSpritePal_321Start_2[] = INCBIN_U16("graphics/link_games/321start_2.gbapal"); +static const u32 sSpriteSheet_321Start_2[] = INCBIN_U32("graphics/link_games/321start_2.4bpp.lz"); + +static const struct CompressedSpriteSheet gUnknown_082FE6C8[] = +{ +    {sSpriteSheet_321Start_2, 0xC00, 0x2000}, +    {}, +}; + +static const struct SpritePalette gUnknown_082FE6D8[] = +{ +    {sSpritePal_321Start_2, 0x2000}, +    {}, +}; + +static const union AnimCmd sSpriteAnim_82FE6E8[] = +{ +    ANIMCMD_FRAME(0, 0), +    ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_82FE6F0[] = +{ +    ANIMCMD_FRAME(16, 0), +    ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_82FE6F8[] = +{ +    ANIMCMD_FRAME(32, 0), +    ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_82FE700[] = +{ +    ANIMCMD_FRAME(64, 0), +    ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_82FE708[] = +{ +    ANIMCMD_FRAME(48, 0), +    ANIMCMD_END +}; + +static const union AnimCmd sSpriteAnim_82FE710[] = +{ +    ANIMCMD_FRAME(80, 0), +    ANIMCMD_END +}; + +static const union AnimCmd *const sSpriteAnimTable_82FE718[] = +{ +    sSpriteAnim_82FE6E8, +    sSpriteAnim_82FE6F0, +    sSpriteAnim_82FE6F8, +    sSpriteAnim_82FE700, +    sSpriteAnim_82FE708, +    sSpriteAnim_82FE710 +}; + +static const struct SpriteTemplate gUnknown_082FE730[] = +{ +    { +        .tileTag = 0x2000, +        .paletteTag = 0x2000, +        .oam = &gOamData_AffineOff_ObjNormal_32x32, +        .anims = sSpriteAnimTable_82FE718, +        .images = NULL, +        .affineAnims = gDummySpriteAffineAnimTable, +        .callback = SpriteCallbackDummy, +    }, +}; + +static const TaskFunc gUnknown_082FE748[][4] = +{ +    { +        sub_802E83C, +        sub_802E8C8, +        sub_802EA50, +        sub_802EAB0 +    }, +}; + +static const u16 sSpritePal_321Start[] = INCBIN_U16("graphics/link_games/321start.gbapal"); +static const u32 sSpriteSheet_321Start[] = INCBIN_U32("graphics/link_games/321start.4bpp.lz"); + +// Unused +static u32 sub_802E63C(u8 funcSetId, u8 taskPriority) +{ +    u8 taskId = CreateTask(sub_802E6D0, taskPriority); +    struct Task *task = &gTasks[taskId]; + +    task->data[0] = 1; +    task->data[1] = funcSetId; +    gUnknown_082FE748[funcSetId][0](taskId); +    return taskId; +} + +static bool32 sub_802E688(void) +{ +    u8 taskId = FindTaskIdByFunc(sub_802E6D0); +    if (taskId == 0xFF) +        return FALSE; + +    gTasks[taskId].data[0] = 2; +    return TRUE; +} + +static bool32 sub_802E6BC(void) +{ +    return FuncIsActiveTask(sub_802E6D0); +} + +static void sub_802E6D0(u8 taskId) +{ +    s16 *data = gTasks[taskId].data; + +    switch (data[0]) +    { +    case 2: +        gUnknown_082FE748[data[1]][2](taskId); +        data[0] = 3; +        break; +    case 3: +        gUnknown_082FE748[data[1]][3](taskId); +        break; +    case 4: +        gUnknown_082FE748[data[1]][1](taskId); +        DestroyTask(taskId); +        break; +    } +} + +static void sub_802E75C(u8 taskId, s16 *data) +{ +    u8 i; +    struct Sprite *sprite; + +    LoadCompressedSpriteSheet(&gUnknown_082FE6C8[data[3]]); +    LoadSpritePalette(&gUnknown_082FE6D8[data[4]]); +    for (i = 0; i < data[8]; i++) +        data[13 + i] = CreateSprite(&gUnknown_082FE730[data[2]], data[9], data[10], data[7]); +    for (i = 0; i < data[8]; i++) +    { +        sprite = &gSprites[data[13 + i]]; +        sprite->oam.priority = data[6]; +        sprite->invisible = TRUE; +        sprite->data[1] = data[5]; +        sprite->data[3] = taskId; +        sprite->data[4] = i; +        sprite->data[5] = data[13]; +    } +} + +static void sub_802E83C(u8 taskId) +{ +    s16 *data = gTasks[taskId].data; +    data[2] = 0; +    data[3] = 0; +    data[4] = 0; +    data[5] = 60; +    data[6] = 0; +    data[7] = 0; +    data[8] = 3; +    data[9] = 120; +    data[10] = 88; +    sub_802E75C(taskId, data); + +    StartSpriteAnim(&gSprites[data[14]], 4); +    gSprites[data[14]].pos2.x = -32; + +    StartSpriteAnim(&gSprites[data[15]], 5); +    gSprites[data[15]].pos2.x = 32; +} + +static void sub_802E8C8(u8 taskId) +{ +    u8 i = 0; +    s16 *data = gTasks[taskId].data; + +    for (i = 0; i < data[8]; i++) +        DestroySprite(&gSprites[data[13 + i]]); +    FreeSpriteTilesByTag(gUnknown_082FE6C8[data[3]].tag); +    FreeSpritePaletteByTag(gUnknown_082FE6D8[data[4]].tag); +} + +static void sub_802E938(struct Sprite *sprite) +{ +    s16 *data = gTasks[sprite->data[3]].data; + +    if (data[11] % data[5] != 0) +        return; +    if (data[11] == data[10]) +        return; + +    data[10] = data[11]; +    switch (sprite->data[2]) +    { +    case 0: +        sprite->invisible = FALSE; +    case 1: +    case 2: +        PlaySE(SE_KON); +        StartSpriteAnim(sprite, sprite->data[2]); +        break; +    case 3: +        PlaySE(SE_PIN); +        StartSpriteAnim(sprite, sprite->data[2]); +        gSprites[data[14]].invisible = FALSE; +        gSprites[data[15]].invisible = FALSE; +        break; +    case 4: +        sprite->invisible = TRUE; +        gSprites[data[14]].invisible = TRUE; +        gSprites[data[15]].invisible = TRUE; +        data[0] = 4; +        return; +    } +    sprite->data[2]++; +} + +static void sub_802EA50(u8 taskId) +{ +    s16 *data = gTasks[taskId].data; +    PlaySE(SE_KON); +    gSprites[data[13]].callback = sub_802E938; +    gSprites[data[13]].invisible = FALSE; +    gTasks[taskId].data[0] = 3; +} + +static void sub_802EAB0(u8 taskId) +{ +    u16 packet[6]; +    s16 *data = gTasks[taskId].data; + +    if (gReceivedRemoteLinkPlayers != 0) +    { +        if (gRecvCmds[0][1] == 0x7FFF) +            data[11] = gRecvCmds[0][2]; +        if (GetMultiplayerId() == 0) +        { +            data[12]++; +            memset(packet, 0, sizeof(packet)); +            packet[0] = 0x7FFF; +            packet[1] = data[12]; +            sub_800FE50(packet); +        } +    } +    else +    { +        data[11]++; +    } +} + +#define tState       data[0] +#define tTilesTag    data[2] +#define tPalTag      data[3] +#define tX           data[4] +#define tY           data[5] +#define tSubpriority data[6] +#define tSpriteId1   data[7] +#define tSpriteId2   data[8] +#define tSpriteId3   data[9] + +void StartMinigameCountdown(s16 tilesTag, s16 palTag, s16 x, s16 y, u8 subpriority) +{ +    u8 taskId = CreateTask(Task_MinigameCountdown, 80); +    gTasks[taskId].tTilesTag = tilesTag; +    gTasks[taskId].tPalTag = palTag; +    gTasks[taskId].tX = x; +    gTasks[taskId].tY = y; +    gTasks[taskId].tSubpriority = subpriority; +} + +bool32 IsMinigameCountdownRunning(void) +{ +    return FuncIsActiveTask(Task_MinigameCountdown); +} + +static void Task_MinigameCountdown(u8 taskId) +{ +    s16 *data = gTasks[taskId].data; + +    switch (tState) +    { +    case 0: +        Load321StartGfx(tTilesTag, tPalTag); +        tSpriteId1 = CreateNumberSprite(tTilesTag, tPalTag, tX, tY, tSubpriority); +        CreateStartSprite(tTilesTag, tPalTag, tX, tY, tSubpriority, &tSpriteId2, &tSpriteId3); +        tState++; +        break; +    case 1: +        if (!RunMinigameCountdownDigitsAnim(tSpriteId1)) +        { +            InitStartGraphic(tSpriteId1, tSpriteId2, tSpriteId3); +            FreeSpriteOamMatrix(&gSprites[tSpriteId1]); +            DestroySprite(&gSprites[tSpriteId1]); +            tState++; +        } +        break; +    case 2: +        if (!IsStartGraphicAnimRunning(tSpriteId2)) +        { +            DestroySprite(&gSprites[tSpriteId2]); +            DestroySprite(&gSprites[tSpriteId3]); +            FreeSpriteTilesByTag(tTilesTag); +            FreeSpritePaletteByTag(tPalTag); +            DestroyTask(taskId); +        } +        break; +    } +} + +static bool32 RunMinigameCountdownDigitsAnim(u8 spriteId) +{ +    struct Sprite *sprite = &gSprites[spriteId]; + +    switch (sprite->data[0]) +    { +    case 0: +        sub_8007E18(sprite, 0x800, 0x1A); +        sprite->data[0]++; +        // fallthrough +    case 1: +        if (sprite->data[2] == 0) +            PlaySE(SE_KON2); +        if (++sprite->data[2] >= 20) +        { +            sprite->data[2] = 0; +            StartSpriteAffineAnim(sprite, 1); +            sprite->data[0]++; +        } +        break; +    case 2: +        if (sprite->affineAnimEnded) +            sprite->data[0]++; +        break; +    case 3: +        if (++sprite->data[2] >= 4) +        { +            sprite->data[2] = 0; +            sprite->data[0]++; +            StartSpriteAffineAnim(sprite, 2); +        } +        break; +    case 4: +        sprite->pos1.y -= 4; +        if (++sprite->data[2] >= 8) +        { +            if (sprite->data[4] <= 1) +            { +                StartSpriteAnim(sprite, sprite->data[4] + 1); +                sprite->data[2] = 0; +                sprite->data[0]++; +            } +            else +            { +                sprite->data[0] = 7; +                return FALSE; +            } +        } +        break; +    case 5: +        sprite->pos1.y += 4; +        if (++sprite->data[2] >= 8) +        { +            sprite->data[2] = 0; +            StartSpriteAffineAnim(sprite, 3); +            sprite->data[0]++; +        } +        break; +    case 6: +        if (sprite->affineAnimEnded) +        { +            sprite->data[4]++; +            sprite->data[0] = 1; +        } +        break; +    case 7: +        return FALSE; +    } + +    return TRUE; +} + +// First argument is unused. +static void InitStartGraphic(u8 spriteId1, u8 spriteId2, u8 spriteId3) +{ +    gSprites[spriteId2].pos2.y = -40; +    gSprites[spriteId3].pos2.y = -40; +    gSprites[spriteId2].invisible = FALSE; +    gSprites[spriteId3].invisible = FALSE; +    gSprites[spriteId2].callback = SpriteCB_Start; +    gSprites[spriteId3].callback = SpriteCB_Start; +} + +static bool32 IsStartGraphicAnimRunning(u8 spriteId) +{ +    return gSprites[spriteId].callback == SpriteCB_Start; +} + +static void SpriteCB_Start(struct Sprite *sprite) +{ +    int y; +    s16 *data = sprite->data; + +    switch (data[0]) +    { +    case 0: +        data[4] = 64; +        data[5] = sprite->pos2.y << 4; +        data[0]++; +    case 1: +        data[5] += data[4]; +        data[4]++; +        sprite->pos2.y = data[5] >> 4; +        if (sprite->pos2.y >= 0) +        { +            PlaySE(SE_KON2); +            sprite->pos2.y = 0; +            data[0]++; +        } +        break; +    case 2: +        data[1] += 12; +        if (data[1] >= 128) +        { +            PlaySE(SE_KON2); +            data[1] = 0; +            data[0]++; +        } +        y = gSineTable[data[1]]; +        sprite->pos2.y = -(y >> 4); +        break; +    case 3: +        data[1] += 16; +        if (data[1] >= 128) +        { +            PlaySE(SE_KON2); +            data[1] = 0; +            data[0]++; +        } +        sprite->pos2.y = -(gSineTable[data[1]] >> 5); +        break; +    case 4: +        if (++data[1] > 40) +            sprite->callback = SpriteCallbackDummy; +        break; +    } +} + +static void Load321StartGfx(u16 tileTag, u16 palTag) +{ +    struct CompressedSpriteSheet spriteSheet = {sSpriteSheet_321Start, 0xE00, 0}; +    struct SpritePalette spritePalette = {sSpritePal_321Start, 0}; + +    spriteSheet.tag = tileTag; +    spritePalette.tag = palTag; + +    LoadCompressedSpriteSheet(&spriteSheet); +    LoadSpritePalette(&spritePalette); +} + +static const struct OamData sOamData_Numbers = +{ +    .y = 0, +    .affineMode = ST_OAM_AFFINE_DOUBLE, +    .objMode = ST_OAM_OBJ_NORMAL, +    .mosaic = 0, +    .bpp = ST_OAM_4BPP, +    .shape = SPRITE_SHAPE(32x32), +    .x = 0, +    .matrixNum = 0, +    .size = SPRITE_SIZE(32x32), +    .tileNum = 0, +    .priority = 0, +    .paletteNum = 0, +    .affineParam = 0 +}; + +static const struct OamData sOamData_Start = +{ +    .y = 0, +    .affineMode = ST_OAM_AFFINE_OFF, +    .objMode = ST_OAM_OBJ_NORMAL, +    .mosaic = 0, +    .bpp = ST_OAM_4BPP, +    .shape = SPRITE_SHAPE(64x32), +    .x = 0, +    .matrixNum = 0, +    .size = SPRITE_SIZE(64x32), +    .tileNum = 0, +    .priority = 0, +    .paletteNum = 0, +    .affineParam = 0 +}; + +static const union AnimCmd sAnim_Numbers_Three[] = +{ +    ANIMCMD_FRAME(0, 1), +    ANIMCMD_END +}; + +static const union AnimCmd sAnim_Numbers_Two[] = +{ +    ANIMCMD_FRAME(16, 1), +    ANIMCMD_END +}; + +static const union AnimCmd sAnim_Numbers_One[] = +{ +    ANIMCMD_FRAME(32, 1), +    ANIMCMD_END +}; + +static const union AnimCmd *const sAnimTable_Numbers[] = +{ +    sAnim_Numbers_Three, +    sAnim_Numbers_Two, +    sAnim_Numbers_One +}; + +static const union AnimCmd sAnim_StartLeft[] = +{ +    ANIMCMD_FRAME(48, 1), +    ANIMCMD_END +}; + +static const union AnimCmd sAnim_StartRight[] = +{ +    ANIMCMD_FRAME(80, 1), +    ANIMCMD_END +}; + +static const union AnimCmd *const sAnimTable_Start[] = +{ +    sAnim_StartLeft, +    sAnim_StartRight +}; + +static const union AffineAnimCmd sAffineAnim_Numbers_0[] = +{ +    AFFINEANIMCMD_FRAME(256, 256, 0, 0), +    AFFINEANIMCMD_END +}; + +static const union AffineAnimCmd sAffineAnim_Numbers_1[] = +{ +    AFFINEANIMCMD_FRAME(256, 256, 0, 0), +    AFFINEANIMCMD_FRAME(16, -16, 0, 8), +    AFFINEANIMCMD_END +}; + +static const union AffineAnimCmd sAffineAnim_Numbers_2[] = +{ +    AFFINEANIMCMD_FRAME(-18, 18, 0, 8), +    AFFINEANIMCMD_END +}; + +static const union AffineAnimCmd sAffineAnim_Numbers_3[] = +{ +    AFFINEANIMCMD_FRAME(  6,  -6, 0, 8), +    AFFINEANIMCMD_FRAME( -4,   4, 0, 8), +    AFFINEANIMCMD_FRAME(256, 256, 0, 0), +    AFFINEANIMCMD_END +}; + +static const union AffineAnimCmd *const sAffineAnimTable_Numbers[] = +{ +    sAffineAnim_Numbers_0, +    sAffineAnim_Numbers_1, +    sAffineAnim_Numbers_2, +    sAffineAnim_Numbers_3 +}; + +static u8 CreateNumberSprite(u16 tileTag, u16 palTag, s16 x, s16 y, u8 subpriority) +{ +    struct SpriteTemplate spriteTemplate = +    { +        .oam = &sOamData_Numbers, +        .anims = sAnimTable_Numbers, +        .affineAnims = sAffineAnimTable_Numbers, +        .callback = SpriteCallbackDummy, +    }; + +    spriteTemplate.tileTag = tileTag; +    spriteTemplate.paletteTag = palTag; +    return CreateSprite(&spriteTemplate, x, y, subpriority); +} + +static void CreateStartSprite(u16 tileTag, u16 palTag, s16 x, s16 y, u8 subpriority, s16 *spriteId1, s16 *spriteId2) +{ +    struct SpriteTemplate spriteTemplate = +    { +        .oam = &sOamData_Start, +        .anims = sAnimTable_Start, +        .affineAnims = gDummySpriteAffineAnimTable, +        .callback = SpriteCallbackDummy, +    }; + +    spriteTemplate.tileTag = tileTag; +    spriteTemplate.paletteTag = palTag; +    *spriteId1 = CreateSprite(&spriteTemplate, x - 32, y, subpriority); +    *spriteId2 = CreateSprite(&spriteTemplate, x + 32, y, subpriority); + +    gSprites[*spriteId1].invisible = TRUE; +    gSprites[*spriteId2].invisible = TRUE; +    StartSpriteAnim(&gSprites[*spriteId2], 1); +} diff --git a/src/party_menu.c b/src/party_menu.c index 0a119f03d..43bdc46ec 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -152,7 +152,7 @@ EWRAM_DATA u8 gSelectedMonPartyId = 0;  EWRAM_DATA MainCallback gPostMenuFieldCallback = NULL;  static EWRAM_DATA u16 *sSlot1TilemapBuffer = 0; // for switching party slots  static EWRAM_DATA u16 *sSlot2TilemapBuffer = 0; // -EWRAM_DATA u8 gSelectedOrderFromParty[4] = {0}; +EWRAM_DATA u8 gSelectedOrderFromParty[MAX_FRONTIER_PARTY_SIZE] = {0};  static EWRAM_DATA u16 sPartyMenuItemId = 0;  static EWRAM_DATA u16 sUnused_0203CEFE = 0;  EWRAM_DATA u8 gBattlePartyCurrentOrder[PARTY_SIZE / 2] = {0}; // bits 0-3 are the current pos of Slot 1, 4-7 are Slot 2, and so on @@ -5624,9 +5624,9 @@ static u8 GetMaxBattleEntries(void)      switch (VarGet(VAR_FRONTIER_FACILITY))      {      case FACILITY_MULTI_OR_EREADER: -        return 3; +        return MULTI_PARTY_SIZE;      case FACILITY_UNION_ROOM: -        return 2; +        return UNION_ROOM_PARTY_SIZE;      default: // Battle Frontier          return gSpecialVar_0x8005;      } @@ -5639,7 +5639,7 @@ static u8 GetMinBattleEntries(void)      case FACILITY_MULTI_OR_EREADER:          return 1;      case FACILITY_UNION_ROOM: -        return 2; +        return UNION_ROOM_PARTY_SIZE;      default: // Battle Frontier          return gSpecialVar_0x8005;      } @@ -6074,7 +6074,7 @@ static void Task_MultiPartnerPartySlideIn(u8 taskId)          SlideMultiPartyMenuBoxSpritesOneStep(taskId);          if (tXPos == 0)          { -            for (i = 3; i < PARTY_SIZE; i++) +            for (i = MULTI_PARTY_SIZE; i < PARTY_SIZE; i++)              {                  if (gMultiPartnerParty[i - MULTI_PARTY_SIZE].species != SPECIES_NONE)                      AnimateSelectedPartyIcon(sPartyMenuBoxes[i].monSpriteId, 0); diff --git a/src/pokemon.c b/src/pokemon.c index ec29af02d..87ea2551f 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -4394,7 +4394,7 @@ u8 CalculatePlayerPartyCount(void)  {      gPlayerPartyCount = 0; -    while (gPlayerPartyCount < 6 +    while (gPlayerPartyCount < PARTY_SIZE          && GetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_SPECIES, NULL) != SPECIES_NONE)      {          gPlayerPartyCount++; @@ -4407,7 +4407,7 @@ u8 CalculateEnemyPartyCount(void)  {      gEnemyPartyCount = 0; -    while (gEnemyPartyCount < 6 +    while (gEnemyPartyCount < PARTY_SIZE          && GetMonData(&gEnemyParty[gEnemyPartyCount], MON_DATA_SPECIES, NULL) != SPECIES_NONE)      {          gEnemyPartyCount++; @@ -4494,7 +4494,7 @@ void CreateSecretBaseEnemyParty(struct SecretBase *secretBaseRecord)              SetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, &gBattleResources->secretBase->party.heldItems[i]); -            for (j = 0; j < 6; j++) +            for (j = 0; j < NUM_STATS; j++)                  SetMonData(&gEnemyParty[i], MON_DATA_HP_EV + j, &gBattleResources->secretBase->party.EVs[i]);              for (j = 0; j < MAX_MON_MOVES; j++) diff --git a/src/pokemon_jump.c b/src/pokemon_jump.c index 6c76b15a6..f2f416c35 100755 --- a/src/pokemon_jump.c +++ b/src/pokemon_jump.c @@ -12,9 +12,10 @@  #include "link_rfu.h"  #include "main.h"  #include "menu.h" +#include "minigame_countdown.h"  #include "palette.h"  #include "random.h" -#include "rom_8034C54.h" +#include "digit_obj_util.h"  #include "save.h"  #include "script.h"  #include "sound.h" @@ -289,21 +290,8 @@ static void sub_802D5E4(void);  static void sub_802D72C(void);  static void sub_802D688(void);  static void Task_ShowPokemonJumpRecords(u8 taskId); -static void sub_802E6D0(u8 taskId); -static void sub_802EB98(u8 taskId);  static void sub_802E500(u16 windowId, int width);  static void TruncateToFirstWordOnly(u8 *str); -static void sub_802EF50(u16 tileTag, u16 palTag); -static u8 sub_802EFA8(u16 tileTag, u16 palTag, s16 x, s16 y, u8 subpriority); -static void sub_802EFFC(u16 tileTag, u16 palTag, s16 x, s16 y, u8 subpriority, s16 *spriteId1, s16 *spriteId2); -static bool32 sub_802EC98(u8 spriteId); -static bool32 sub_802EE30(u8 spriteId); -static void sub_802EDCC(u8 spriteId1, u8 spriteId2, u8 spriteId3); -static void sub_802EE5C(struct Sprite *sprite); -static void sub_802E83C(u8 taskId); -static void sub_802E8C8(u8 taskId); -static void sub_802EA50(u8 taskId); -static void sub_802EAB0(u8 taskId);  EWRAM_DATA static struct PokemonJump1 *gUnknown_02022CFC = NULL;  EWRAM_DATA static struct PokemonJump2 *gUnknown_02022D00 = NULL; @@ -2807,13 +2795,13 @@ static void sub_802CF50(struct PokemonJump2 *arg0, int arg1)  static void sub_802D044(struct PokemonJump2 *arg0)  { -    sub_802EB24(9, 7, 120, 80, 0); +    StartMinigameCountdown(9, 7, 120, 80, 0);      sub_802CD3C(arg0);  }  static bool32 sub_802D068(void)  { -    return sub_802EB84(); +    return IsMinigameCountdownRunning();  }  static void sub_802D074(struct PokemonJump2 *arg0) @@ -2831,7 +2819,7 @@ static void sub_802D074(struct PokemonJump2 *arg0)  static void sub_802D0AC(void)  {      FreeAllWindowBuffers(); -    sub_8034CC8(); +    DigitObjUtil_Free();  }  static void sub_802D0BC(struct PokemonJump2 *arg0) @@ -3515,37 +3503,37 @@ static int sub_802DCCC(u8 flags)  static void sub_802DD08(void)  { -    struct UnkStruct3 unkStruct; -    struct UnkStruct3 *ptr = &unkStruct; // This temp variable is needed to match, don't ask me why. +    struct DigitObjUtilTemplate template; +    struct DigitObjUtilTemplate *ptr = &template; // This temp variable is needed to match, don't ask me why.      ptr->shape = SPRITE_SHAPE(8x8);      ptr->size = SPRITE_SIZE(8x8); -    ptr->field_0_0 = 0; +    ptr->strConvMode = 0;      ptr->priority = 1; -    ptr->field_1 = 5; +    ptr->oamCount = 5;      ptr->xDelta = 8;      ptr->x = 108;      ptr->y = 6;      ptr->spriteSheet = (void*) &gUnknown_082FE1EC;      ptr->spritePal = &gUnknown_082FE1F4; -    sub_8034C54(2); -    sub_8034D14(0, 0, ptr); +    DigitObjUtil_Init(2); +    DigitObjUtil_CreatePrinter(0, 0, ptr); -    unkStruct.field_1 = 4; -    unkStruct.x = 30; -    unkStruct.y = 6; -    sub_8034D14(1, 0, &unkStruct); +    template.oamCount = 4; +    template.x = 30; +    template.y = 6; +    DigitObjUtil_CreatePrinter(1, 0, &template);  }  static void sub_802DD64(int arg0)  { -    sub_8035044(0, arg0); +    DigitObjUtil_PrintNumOn(0, arg0);  }  static void sub_802DD74(u16 arg0)  { -    sub_8035044(1, arg0); +    DigitObjUtil_PrintNumOn(1, arg0);  }  static void sub_802DD88(u8 multiplayerId) @@ -3987,611 +3975,3 @@ static void TruncateToFirstWordOnly(u8 *str)          }      }  } - -static const u16 gPkmnJump321StartPal1[] = INCBIN_U16("graphics/link_games/pkmnjump_321start1.gbapal"); -static const u32 gPkmnJump321StartGfx1[] = INCBIN_U32("graphics/link_games/pkmnjump_321start1.4bpp.lz"); - -static const struct CompressedSpriteSheet gUnknown_082FE6C8[] = -{ -    {gPkmnJump321StartGfx1, 0xC00, 0x2000}, -    {}, -}; - -static const struct SpritePalette gUnknown_082FE6D8[] = -{ -    {gPkmnJump321StartPal1, 0x2000}, -    {}, -}; - -static const union AnimCmd sSpriteAnim_82FE6E8[] = -{ -    ANIMCMD_FRAME(0, 0), -    ANIMCMD_END -}; - -static const union AnimCmd sSpriteAnim_82FE6F0[] = -{ -    ANIMCMD_FRAME(16, 0), -    ANIMCMD_END -}; - -static const union AnimCmd sSpriteAnim_82FE6F8[] = -{ -    ANIMCMD_FRAME(32, 0), -    ANIMCMD_END -}; - -static const union AnimCmd sSpriteAnim_82FE700[] = -{ -    ANIMCMD_FRAME(64, 0), -    ANIMCMD_END -}; - -static const union AnimCmd sSpriteAnim_82FE708[] = -{ -    ANIMCMD_FRAME(48, 0), -    ANIMCMD_END -}; - -static const union AnimCmd sSpriteAnim_82FE710[] = -{ -    ANIMCMD_FRAME(80, 0), -    ANIMCMD_END -}; - -static const union AnimCmd *const sSpriteAnimTable_82FE718[] = -{ -    sSpriteAnim_82FE6E8, -    sSpriteAnim_82FE6F0, -    sSpriteAnim_82FE6F8, -    sSpriteAnim_82FE700, -    sSpriteAnim_82FE708, -    sSpriteAnim_82FE710 -}; - -static const struct SpriteTemplate gUnknown_082FE730[] = -{ -    { -        .tileTag = 0x2000, -        .paletteTag = 0x2000, -        .oam = &gOamData_AffineOff_ObjNormal_32x32, -        .anims = sSpriteAnimTable_82FE718, -        .images = NULL, -        .affineAnims = gDummySpriteAffineAnimTable, -        .callback = SpriteCallbackDummy, -    }, -}; - -static const TaskFunc gUnknown_082FE748[][4] = -{ -    { -        sub_802E83C, -        sub_802E8C8, -        sub_802EA50, -        sub_802EAB0 -    }, -}; - -// There's only set of task functions. -static u32 sub_802E63C(u8 funcSetId, u8 taskPriority) -{ -    u8 taskId = CreateTask(sub_802E6D0, taskPriority); -    struct Task *task = &gTasks[taskId]; - -    task->data[0] = 1; -    task->data[1] = funcSetId; -    gUnknown_082FE748[funcSetId][0](taskId); -    return taskId; -} - -static bool32 sub_802E688(void) -{ -    u8 taskId = FindTaskIdByFunc(sub_802E6D0); -    if (taskId == 0xFF) -        return FALSE; - -    gTasks[taskId].data[0] = 2; -    return TRUE; -} - -static bool32 sub_802E6BC(void) -{ -    return FuncIsActiveTask(sub_802E6D0); -} - -static void sub_802E6D0(u8 taskId) -{ -    s16 *data = gTasks[taskId].data; - -    switch (data[0]) -    { -    case 2: -        gUnknown_082FE748[data[1]][2](taskId); -        data[0] = 3; -        break; -    case 3: -        gUnknown_082FE748[data[1]][3](taskId); -        break; -    case 4: -        gUnknown_082FE748[data[1]][1](taskId); -        DestroyTask(taskId); -        break; -    } -} - -static void sub_802E75C(u8 taskId, s16 *data) -{ -    u8 i; -    struct Sprite *sprite; - -    LoadCompressedSpriteSheet(&gUnknown_082FE6C8[data[3]]); -    LoadSpritePalette(&gUnknown_082FE6D8[data[4]]); -    for (i = 0; i < data[8]; i++) -        data[13 + i] = CreateSprite(&gUnknown_082FE730[data[2]], data[9], data[10], data[7]); -    for (i = 0; i < data[8]; i++) -    { -        sprite = &gSprites[data[13 + i]]; -        sprite->oam.priority = data[6]; -        sprite->invisible = TRUE; -        sprite->data[1] = data[5]; -        sprite->data[3] = taskId; -        sprite->data[4] = i; -        sprite->data[5] = data[13]; -    } -} - -static void sub_802E83C(u8 taskId) -{ -    s16 *data = gTasks[taskId].data; -    data[2] = 0; -    data[3] = 0; -    data[4] = 0; -    data[5] = 60; -    data[6] = 0; -    data[7] = 0; -    data[8] = 3; -    data[9] = 120; -    data[10] = 88; -    sub_802E75C(taskId, data); - -    StartSpriteAnim(&gSprites[data[14]], 4); -    gSprites[data[14]].pos2.x = -32; - -    StartSpriteAnim(&gSprites[data[15]], 5); -    gSprites[data[15]].pos2.x = 32; -} - -static void sub_802E8C8(u8 taskId) -{ -    u8 i = 0; -    s16 *data = gTasks[taskId].data; - -    for (i = 0; i < data[8]; i++) -        DestroySprite(&gSprites[data[13 + i]]); -    FreeSpriteTilesByTag(gUnknown_082FE6C8[data[3]].tag); -    FreeSpritePaletteByTag(gUnknown_082FE6D8[data[4]].tag); -} - -static void sub_802E938(struct Sprite *sprite) -{ -    s16 *data = gTasks[sprite->data[3]].data; - -    if (data[11] % data[5] != 0) -        return; -    if (data[11] == data[10]) -        return; - -    data[10] = data[11]; -    switch (sprite->data[2]) -    { -    case 0: -        sprite->invisible = FALSE; -    case 1: -    case 2: -        PlaySE(SE_KON); -        StartSpriteAnim(sprite, sprite->data[2]); -        break; -    case 3: -        PlaySE(SE_PIN); -        StartSpriteAnim(sprite, sprite->data[2]); -        gSprites[data[14]].invisible = FALSE; -        gSprites[data[15]].invisible = FALSE; -        break; -    case 4: -        sprite->invisible = TRUE; -        gSprites[data[14]].invisible = TRUE; -        gSprites[data[15]].invisible = TRUE; -        data[0] = 4; -        return; -    } -    sprite->data[2]++; -} - -static void sub_802EA50(u8 taskId) -{ -    s16 *data = gTasks[taskId].data; -    PlaySE(SE_KON); -    gSprites[data[13]].callback = sub_802E938; -    gSprites[data[13]].invisible = FALSE; -    gTasks[taskId].data[0] = 3; -} - -static void sub_802EAB0(u8 taskId) -{ -    u16 packet[6]; -    s16 *data = gTasks[taskId].data; - -    if (gReceivedRemoteLinkPlayers != 0) -    { -        if (gRecvCmds[0][1] == 0x7FFF) -            data[11] = gRecvCmds[0][2]; -        if (GetMultiplayerId() == 0) -        { -            data[12]++; -            memset(packet, 0, sizeof(packet)); -            packet[0] = 0x7FFF; -            packet[1] = data[12]; -            sub_800FE50(packet); -        } -    } -    else -    { -        data[11]++; -    } -} - -void sub_802EB24(s16 tileTag, s16 palTag, s16 x, s16 y, u8 subpriority) -{ -    u8 taskId = CreateTask(sub_802EB98, 0x50); -    gTasks[taskId].data[2] = tileTag; -    gTasks[taskId].data[3] = palTag; -    gTasks[taskId].data[4] = x; -    gTasks[taskId].data[5] = y; -    gTasks[taskId].data[6] = subpriority; -} - -bool32 sub_802EB84(void) -{ -    return FuncIsActiveTask(sub_802EB98); -} - -static void sub_802EB98(u8 taskId) -{ -    s16 *data = gTasks[taskId].data; - -    switch (data[0]) -    { -    case 0: -        sub_802EF50(data[2], data[3]); -        data[7] = sub_802EFA8(data[2], data[3], data[4], data[5], data[6]); -        sub_802EFFC(data[2], data[3], data[4], data[5], data[6], &data[8], &data[9]); -        data[0]++; -        break; -    case 1: -        if (!sub_802EC98(data[7])) -        { -            sub_802EDCC(data[7], data[8], data[9]); -            FreeSpriteOamMatrix(&gSprites[data[7]]); -            DestroySprite(&gSprites[data[7]]); -            data[0]++; -        } -        break; -    case 2: -        if (!sub_802EE30(data[8])) -        { -            DestroySprite(&gSprites[data[8]]); -            DestroySprite(&gSprites[data[9]]); -            FreeSpriteTilesByTag(data[2]); -            FreeSpritePaletteByTag(data[3]); -            DestroyTask(taskId); -        } -        break; -    } -} - -static bool32 sub_802EC98(u8 spriteId) -{ -    struct Sprite *sprite = &gSprites[spriteId]; - -    switch (sprite->data[0]) -    { -    case 0: -        sub_8007E18(sprite, 0x800, 0x1A); -        sprite->data[0]++; -    case 1: -        if (sprite->data[2] == 0) -            PlaySE(SE_KON2); -        if (++sprite->data[2] >= 20) -        { -            sprite->data[2] = 0; -            StartSpriteAffineAnim(sprite, 1); -            sprite->data[0]++; -        } -        break; -    case 2: -        if (sprite->affineAnimEnded) -            sprite->data[0]++; -        break; -    case 3: -        if (++sprite->data[2] >= 4) -        { -            sprite->data[2] = 0; -            sprite->data[0]++; -            StartSpriteAffineAnim(sprite, 2); -        } -        break; -    case 4: -        sprite->pos1.y -= 4; -        if (++sprite->data[2] >= 8) -        { -            if (sprite->data[4] <= 1) -            { -                StartSpriteAnim(sprite, sprite->data[4] + 1); -                sprite->data[2] = 0; -                sprite->data[0]++; -            } -            else -            { -                sprite->data[0] = 7; -                return FALSE; -            } -        } -        break; -    case 5: -        sprite->pos1.y += 4; -        if (++sprite->data[2] >= 8) -        { -            sprite->data[2] = 0; -            StartSpriteAffineAnim(sprite, 3); -            sprite->data[0]++; -        } -        break; -    case 6: -        if (sprite->affineAnimEnded) -        { -            sprite->data[4]++; -            sprite->data[0] = 1; -        } -        break; -    case 7: -        return FALSE; -    } - -    return TRUE; -} - -// First argument is unused. -static void sub_802EDCC(u8 spriteId1, u8 spriteId2, u8 spriteId3) -{ -    gSprites[spriteId2].pos2.y = -40; -    gSprites[spriteId3].pos2.y = -40; -    gSprites[spriteId2].invisible = FALSE; -    gSprites[spriteId3].invisible = FALSE; -    gSprites[spriteId2].callback = sub_802EE5C; -    gSprites[spriteId3].callback = sub_802EE5C; -} - -static bool32 sub_802EE30(u8 spriteId) -{ -    return (gSprites[spriteId].callback == sub_802EE5C); -} - -static void sub_802EE5C(struct Sprite *sprite) -{ -    int y; -    s16 *data = sprite->data; - -    switch (data[0]) -    { -    case 0: -        data[4] = 64; -        data[5] = sprite->pos2.y << 4; -        data[0]++; -    case 1: -        data[5] += data[4]; -        data[4]++; -        sprite->pos2.y = data[5] >> 4; -        if (sprite->pos2.y >= 0) -        { -            PlaySE(SE_KON2); -            sprite->pos2.y = 0; -            data[0]++; -        } -        break; -    case 2: -        data[1] += 12; -        if (data[1] >= 128) -        { -            PlaySE(SE_KON2); -            data[1] = 0; -            data[0]++; -        } -        y = gSineTable[data[1]]; -        sprite->pos2.y = -(y >> 4); -        break; -    case 3: -        data[1] += 16; -        if (data[1] >= 128) -        { -            PlaySE(SE_KON2); -            data[1] = 0; -            data[0]++; -        } -        sprite->pos2.y = -(gSineTable[data[1]] >> 5); -        break; -    case 4: -        if (++data[1] > 40) -            sprite->callback = SpriteCallbackDummy; -        break; -    } -} - -static const u16 gPkmnJump321StartPal2[] = INCBIN_U16("graphics/link_games/pkmnjump_321start2.gbapal"); -static const u32 gPkmnJump321StartGfx2[] = INCBIN_U32("graphics/link_games/pkmnjump_321start2.4bpp.lz"); - -static void sub_802EF50(u16 tileTag, u16 palTag) -{ -    struct CompressedSpriteSheet sprSheet = {gPkmnJump321StartGfx2, 0xE00, 0}; -    struct SpritePalette sprPal = {gPkmnJump321StartPal2, 0}; - -    sprSheet.tag = tileTag; -    sprPal.tag = palTag; - -    LoadCompressedSpriteSheet(&sprSheet); -    LoadSpritePalette(&sprPal); -} - -static const struct OamData sOamData_82FEBDC = -{ -    .y = 0, -    .affineMode = ST_OAM_AFFINE_DOUBLE, -    .objMode = ST_OAM_OBJ_NORMAL, -    .mosaic = 0, -    .bpp = ST_OAM_4BPP, -    .shape = SPRITE_SHAPE(32x32), -    .x = 0, -    .matrixNum = 0, -    .size = SPRITE_SIZE(32x32), -    .tileNum = 0, -    .priority = 0, -    .paletteNum = 0, -    .affineParam = 0 -}; - -static const struct OamData sOamData_82FEBE4 = -{ -    .y = 0, -    .affineMode = ST_OAM_AFFINE_OFF, -    .objMode = ST_OAM_OBJ_NORMAL, -    .mosaic = 0, -    .bpp = ST_OAM_4BPP, -    .shape = SPRITE_SHAPE(64x32), -    .x = 0, -    .matrixNum = 0, -    .size = SPRITE_SIZE(64x32), -    .tileNum = 0, -    .priority = 0, -    .paletteNum = 0, -    .affineParam = 0 -}; - -static const union AnimCmd sSpriteAnim_82FEBEC[] = -{ -    ANIMCMD_FRAME(0, 1), -    ANIMCMD_END -}; - -static const union AnimCmd sSpriteAnim_82FEBF4[] = -{ -    ANIMCMD_FRAME(16, 1), -    ANIMCMD_END -}; - -static const union AnimCmd sSpriteAnim_82FEBFC[] = -{ -    ANIMCMD_FRAME(32, 1), -    ANIMCMD_END -}; - -static const union AnimCmd *const sSpriteAnimTable_82FEC04[] = -{ -    sSpriteAnim_82FEBEC, -    sSpriteAnim_82FEBF4, -    sSpriteAnim_82FEBFC -}; - -static const union AnimCmd sSpriteAnim_82FEC10[] = -{ -    ANIMCMD_FRAME(48, 1), -    ANIMCMD_END -}; - -static const union AnimCmd sSpriteAnim_82FEC18[] = -{ -    ANIMCMD_FRAME(80, 1), -    ANIMCMD_END -}; - -static const union AnimCmd *const sSpriteAnimTable_82FEC20[] = -{ -    sSpriteAnim_82FEC10, -    sSpriteAnim_82FEC18 -}; - -static const union AffineAnimCmd sSpriteAffineAnim_82FEC28[] = -{ -    AFFINEANIMCMD_FRAME(256, 256, 0, 0), -    AFFINEANIMCMD_END -}; - -static const union AffineAnimCmd sSpriteAffineAnim_82FEC38[] = -{ -    AFFINEANIMCMD_FRAME(256, 256, 0, 0), -    AFFINEANIMCMD_FRAME(16, -16, 0, 8), -    AFFINEANIMCMD_END -}; - -static const union AffineAnimCmd sSpriteAffineAnim_82FEC50[] = -{ -    AFFINEANIMCMD_FRAME(-18, 18, 0, 8), -    AFFINEANIMCMD_END -}; - -static const union AffineAnimCmd sSpriteAffineAnim_82FEC60[] = -{ -    AFFINEANIMCMD_FRAME(6, -6, 0, 8), -    AFFINEANIMCMD_FRAME(-4, 4, 0, 8), -    AFFINEANIMCMD_FRAME(256, 256, 0, 0), -    AFFINEANIMCMD_END -}; - -static const union AffineAnimCmd *const sSpriteAffineAnimTable_82FEC80[] = -{ -    sSpriteAffineAnim_82FEC28, -    sSpriteAffineAnim_82FEC38, -    sSpriteAffineAnim_82FEC50, -    sSpriteAffineAnim_82FEC60 -}; - -static u8 sub_802EFA8(u16 tileTag, u16 palTag, s16 x, s16 y, u8 subpriority) -{ -    u8 spriteId; -    struct SpriteTemplate sprTemplate = -    { -        .tileTag = 0, -        .paletteTag = 0, -        .oam = &sOamData_82FEBDC, -        .anims = sSpriteAnimTable_82FEC04, -        .images = NULL, -        .affineAnims = sSpriteAffineAnimTable_82FEC80, -        .callback = SpriteCallbackDummy, -    }; - -    sprTemplate.tileTag = tileTag; -    sprTemplate.paletteTag = palTag; -    spriteId = CreateSprite(&sprTemplate, x, y, subpriority); -    return spriteId; -} - -static void sub_802EFFC(u16 tileTag, u16 palTag, s16 x, s16 y, u8 subpriority, s16 *spriteId1, s16 *spriteId2) -{ -    struct SpriteTemplate sprTemplate = -    { -        .tileTag = 0, -        .paletteTag = 0, -        .oam = &sOamData_82FEBE4, -        .anims = sSpriteAnimTable_82FEC20, -        .images = NULL, -        .affineAnims = gDummySpriteAffineAnimTable, -        .callback = SpriteCallbackDummy, -    }; - -    sprTemplate.tileTag = tileTag; -    sprTemplate.paletteTag = palTag; -    *spriteId1 = CreateSprite(&sprTemplate, x - 32, y, subpriority); -    *spriteId2 = CreateSprite(&sprTemplate, x + 32, y, subpriority); - -    gSprites[*spriteId1].invisible = TRUE; -    gSprites[*spriteId2].invisible = TRUE; -    StartSpriteAnim(&gSprites[*spriteId2], 1); -} diff --git a/src/rom_8034C54.c b/src/rom_8034C54.c deleted file mode 100644 index 029696526..000000000 --- a/src/rom_8034C54.c +++ /dev/null @@ -1,453 +0,0 @@ -#include "global.h" -#include "rom_8034C54.h" -#include "malloc.h" -#include "decompress.h" -#include "main.h" -#include "battle_main.h" - -struct UnkStruct2 -{ -    bool8 isActive; -    u8 firstOamId; -    u8 field_2; -    u8 oamCount; -    u8 palTagIndex; -    u8 size; -    u8 shape; -    u8 priority; -    u8 xDelta; -    u8 field_9; -    u16 tileStart; -    s16 x; -    s16 y; -    u16 tileTag; -    u16 palTag; -    u32 field_14; -    s32 field_18; -}; - -struct UnkStruct1 -{ -    u32 count; -    struct UnkStruct2 *array; -}; - -// this file's functions -static u8 sub_8035518(u8 arg0);; -static void sub_8034EFC(struct UnkStruct2 *arg0); -static void sub_80350B0(struct UnkStruct2 *arg0, s32 arg1, bool32 arg2); -static void sub_8035164(struct UnkStruct2 *arg0, s32 arg1, bool32 arg2); -static void sub_80352C0(struct UnkStruct2 *arg0, s32 arg1, bool32 arg2); -static bool32 SharesTileWithAnyActive(u32 id); -static bool32 SharesPalWithAnyActive(u32 id); -static void sub_8035648(void); - -// iwram -static s32 gUnknown_03000DD4; -static s32 gUnknown_03000DD8; -static s32 gUnknown_03000DDC; - -// ewram -static EWRAM_DATA struct UnkStruct1 *gUnknown_02022E10 = {0}; - -// const rom data -static const u8 gUnknown_082FF1C8[][4] = -{ -    {0x01, 0x04, 0x10, 0x40}, -    {0x02, 0x04, 0x08, 0x20}, -    {0x02, 0x04, 0x08, 0x20}, -    {0x00, 0x00, 0x00, 0x00} -}; - -// code -bool32 sub_8034C54(u32 count) -{ -    u32 i; - -    if (gUnknown_02022E10 != NULL) -        sub_8034CC8(); - -    gUnknown_02022E10 = Alloc(sizeof(*gUnknown_02022E10)); -    if (gUnknown_02022E10 == NULL) -        return FALSE; - -    gUnknown_02022E10->array = Alloc(sizeof(struct UnkStruct2) * count); -    if (gUnknown_02022E10->array == NULL) -    { -        Free(gUnknown_02022E10); -        return FALSE; -    } - -    gUnknown_02022E10->count = count; -    for (i = 0; i < count; i++) -    { -        gUnknown_02022E10->array[i].isActive = FALSE; -        gUnknown_02022E10->array[i].firstOamId = 0xFF; -    } - -    return TRUE; -} - -void sub_8034CC8(void) -{ -    if (gUnknown_02022E10 != NULL) -    { -        if (gUnknown_02022E10->array != NULL) -        { -            u32 i; - -            for (i = 0; i < gUnknown_02022E10->count; i++) -                sub_80353DC(i); - -            Free(gUnknown_02022E10->array); -        } - -        FREE_AND_SET_NULL(gUnknown_02022E10); -    } -} - -bool32 sub_8034D14(u32 id, s32 arg1, const struct UnkStruct3 *arg2) -{ -    u32 i; - -    if (gUnknown_02022E10 == NULL) -        return FALSE; -    if (gUnknown_02022E10->array[id].isActive) -        return FALSE; - -    gUnknown_02022E10->array[id].firstOamId = sub_8035518(arg2->field_1); -    if (gUnknown_02022E10->array[id].firstOamId == 0xFF) -        return FALSE; - -    gUnknown_02022E10->array[id].tileStart = GetSpriteTileStartByTag(arg2->spriteSheet->tag); -    if (gUnknown_02022E10->array[id].tileStart == 0xFFFF) -    { -        if (arg2->spriteSheet->size != 0) -        { -            gUnknown_02022E10->array[id].tileStart = LoadSpriteSheet(arg2->spriteSheet); -        } -        else -        { -            struct CompressedSpriteSheet compSpriteSheet; - -            compSpriteSheet = *(struct CompressedSpriteSheet*)(arg2->spriteSheet); -            compSpriteSheet.size = GetDecompressedDataSize(arg2->spriteSheet->data); -            gUnknown_02022E10->array[id].tileStart = LoadCompressedSpriteSheet(&compSpriteSheet); -        } - -        if (gUnknown_02022E10->array[id].tileStart == 0xFFFF) -            return FALSE; -    } - -    gUnknown_02022E10->array[id].palTagIndex = IndexOfSpritePaletteTag(arg2->spritePal->tag); -    if (gUnknown_02022E10->array[id].palTagIndex == 0xFF) -        gUnknown_02022E10->array[id].palTagIndex = LoadSpritePalette(arg2->spritePal); - -    gUnknown_02022E10->array[id].field_2 = arg2->field_0_0; -    gUnknown_02022E10->array[id].oamCount = arg2->field_1; -    gUnknown_02022E10->array[id].x = arg2->x; -    gUnknown_02022E10->array[id].y = arg2->y; -    gUnknown_02022E10->array[id].shape = arg2->shape; -    gUnknown_02022E10->array[id].size = arg2->size; -    gUnknown_02022E10->array[id].priority = arg2->priority; -    gUnknown_02022E10->array[id].xDelta = arg2->xDelta; -    gUnknown_02022E10->array[id].field_9 = sub_80355F8(arg2->shape, arg2->size); -    gUnknown_02022E10->array[id].tileTag = arg2->spriteSheet->tag; -    gUnknown_02022E10->array[id].palTag = arg2->spritePal->tag; -    gUnknown_02022E10->array[id].isActive = TRUE; -    gUnknown_02022E10->array[id].field_14 = 1; - -    for (i = 1; i < arg2->field_1; i++) -        gUnknown_02022E10->array[id].field_14 *= 10; - -    sub_8034EFC(&gUnknown_02022E10->array[id]); -    sub_8035044(id, arg1); - -    return TRUE; -} - -static void sub_8034EFC(struct UnkStruct2 *arg0) -{ -    u32 i; -    u32 oamId = arg0->firstOamId; -    u32 x = arg0->x; -    u32 oamCount = arg0->oamCount + 1; - -    CpuFill16(0, &gMain.oamBuffer[oamId], sizeof(struct OamData) * oamCount); -    for (i = 0, oamId = arg0->firstOamId; i < oamCount; i++, oamId++) -    { -        gMain.oamBuffer[oamId].y = arg0->y; -        gMain.oamBuffer[oamId].x = x; -        gMain.oamBuffer[oamId].shape = arg0->shape; -        gMain.oamBuffer[oamId].size = arg0->size; -        gMain.oamBuffer[oamId].tileNum = arg0->tileStart; -        gMain.oamBuffer[oamId].priority = arg0->priority; -        gMain.oamBuffer[oamId].paletteNum = arg0->palTagIndex; - -        x += arg0->xDelta; -    } - -    oamId--; -    gMain.oamBuffer[oamId].x = arg0->x - arg0->xDelta; -    gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_ERASE; -    gMain.oamBuffer[oamId].tileNum = arg0->tileStart + (arg0->field_9 * 10); -} - -void sub_8035044(u32 id, s32 arg1) -{ -    bool32 r2; - -    if (gUnknown_02022E10 == NULL) -        return; -    if (!gUnknown_02022E10->array[id].isActive) -        return; - -    gUnknown_02022E10->array[id].field_18 = arg1; -    if (arg1 < 0) -    { -        r2 = TRUE; -        arg1 *= -1; -    } -    else -    { -        r2 = FALSE; -    } - -    switch (gUnknown_02022E10->array[id].field_2) -    { -    case 0: -    default: -        sub_80350B0(&gUnknown_02022E10->array[id], arg1, r2); -        break; -    case 1: -        sub_8035164(&gUnknown_02022E10->array[id], arg1, r2); -        break; -    case 2: -        sub_80352C0(&gUnknown_02022E10->array[id], arg1, r2); -        break; -    } -} - -static void sub_80350B0(struct UnkStruct2 *arg0, s32 arg1, bool32 arg2) -{ -    u32 r5 = arg0->field_14; -    u32 oamId = arg0->firstOamId; - -    while (r5 != 0) -    { -        u32 r4 = arg1 / r5; -        arg1 -= (r4 * r5); -        r5 /= 10; - -        gMain.oamBuffer[oamId].tileNum = (r4 * arg0->field_9) + arg0->tileStart; -        oamId++; -    } - -    if (arg2) -        gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_OFF; -    else -        gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_ERASE; -} - -static void sub_8035164(struct UnkStruct2 *arg0, s32 arg1, bool32 arg2) -{ -    u32 r5 = arg0->field_14; -    gUnknown_03000DD4 = arg0->firstOamId; -    gUnknown_03000DD8 = 0; -    gUnknown_03000DDC = -1; - -    while (r5 != 0) -    { -        u32 r4 = arg1 / r5; -        arg1 -= (r4 * r5); -        r5 /= 10; - -        if (r4 != 0 || gUnknown_03000DDC != -1 || r5 == 0) -        { -            gMain.oamBuffer[gUnknown_03000DD4].tileNum = (r4 * arg0->field_9) + arg0->tileStart; -            gMain.oamBuffer[gUnknown_03000DD4].affineMode = ST_OAM_AFFINE_OFF; - -            if (gUnknown_03000DDC == -1) -                gUnknown_03000DDC = gUnknown_03000DD8; -        } -        else -        { -            gMain.oamBuffer[gUnknown_03000DD4].affineMode = ST_OAM_AFFINE_ERASE; -        } - -        gUnknown_03000DD4++; -        gUnknown_03000DD8++; -    } - -    if (arg2) -    { -        gMain.oamBuffer[gUnknown_03000DD4].affineMode = ST_OAM_AFFINE_OFF; -        gMain.oamBuffer[gUnknown_03000DD4].x = arg0->x + ((gUnknown_03000DDC - 1) * arg0->xDelta); -    } -    else -    { -        gMain.oamBuffer[gUnknown_03000DD4].affineMode = ST_OAM_AFFINE_ERASE; -    } -} - -static void sub_80352C0(struct UnkStruct2 *arg0, s32 arg1, bool32 arg2) -{ -    u32 r5 = arg0->field_14; -    u32 oamId = arg0->firstOamId; -    u32 var_28 = 0; -    s32 r9 = 0; - -    while (r5 != 0) -    { -        u32 r4 = arg1 / r5; -        arg1 -= (r4 * r5); -        r5 /= 10; - -        if (r4 != 0 || var_28 != 0 || r5 == 0) -        { -            var_28 = 1; -            gMain.oamBuffer[oamId].tileNum = (r4 * arg0->field_9) + arg0->tileStart; -            gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_OFF; - -            oamId++; -            r9++; -        } -    } - -    while (r9 < arg0->oamCount) -    { -        gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_ERASE; -        oamId++; -        r9++; -    } - -    if (arg2) -        gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_OFF; -    else -        gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_ERASE; -} - -void sub_80353DC(u32 id) -{ -    s32 oamId, oamCount, i; - -    if (gUnknown_02022E10 == NULL) -        return; -    if (!gUnknown_02022E10->array[id].isActive) -        return; - -    oamCount = gUnknown_02022E10->array[id].oamCount + 1; -    oamId = gUnknown_02022E10->array[id].firstOamId; - -    for (i = 0; i < oamCount; i++, oamId++) -        gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_ERASE; - -    if (!SharesTileWithAnyActive(id)) -        FreeSpriteTilesByTag(gUnknown_02022E10->array[id].tileTag); -    if (!SharesPalWithAnyActive(id)) -        FreeSpritePaletteByTag(gUnknown_02022E10->array[id].palTag); - -    gUnknown_02022E10->array[id].isActive = FALSE; -} - -void sub_803547C(u32 id, bool32 arg1) -{ -    s32 oamId, oamCount, i; - -    if (gUnknown_02022E10 == NULL) -        return; -    if (!gUnknown_02022E10->array[id].isActive) -        return; - -    oamCount = gUnknown_02022E10->array[id].oamCount + 1; -    oamId = gUnknown_02022E10->array[id].firstOamId; -    if (arg1) -    { -        for (i = 0; i < oamCount; i++, oamId++) -            gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_ERASE; -    } -    else -    { -        for (i = 0; i < oamCount; i++, oamId++) -            gMain.oamBuffer[oamId].affineMode = ST_OAM_AFFINE_OFF; - -        sub_8035044(id, gUnknown_02022E10->array[id].field_18); -    } -} - -static u8 sub_8035518(u8 arg0) -{ -    u32 i; -    u16 oamCount = 64; - -    for (i = 0; i < gUnknown_02022E10->count; i++) -    { -        if (!gUnknown_02022E10->array[i].isActive) -        { -            if (gUnknown_02022E10->array[i].firstOamId != 0xFF && gUnknown_02022E10->array[i].oamCount <= arg0) -                return gUnknown_02022E10->array[i].firstOamId; -        } -        else -        { -            oamCount += 1 + gUnknown_02022E10->array[i].oamCount; -        } -    } - -    if (oamCount + arg0 + 1 > 128) -        return 0xFF; -    else -        return oamCount; -} - -static bool32 SharesTileWithAnyActive(u32 id) -{ -    u32 i; - -    for (i = 0; i < gUnknown_02022E10->count; i++) -    { -        if (gUnknown_02022E10->array[i].isActive && i != id -            && gUnknown_02022E10->array[i].tileTag == gUnknown_02022E10->array[id].tileTag) -        { -            return TRUE; -        } -    } - -    return FALSE; -} - -static bool32 SharesPalWithAnyActive(u32 id) -{ -    u32 i; - -    for (i = 0; i < gUnknown_02022E10->count; i++) -    { -        if (gUnknown_02022E10->array[i].isActive && i != id -            && gUnknown_02022E10->array[i].palTag == gUnknown_02022E10->array[id].palTag) -        { -            return TRUE; -        } -    } - -    return FALSE; -} - -u8 sub_80355F8(u32 shape, u32 size) -{ -    return gUnknown_082FF1C8[shape][size]; -} - -static void sub_8035608(void) -{ -    u8 spriteId; - -    ResetSpriteData(); -    spriteId = CreateSprite(&gUnknown_0831AC88, 0, 0, 0); -    gSprites[spriteId].invisible = TRUE; -    SetMainCallback2(sub_8035648); -} - -static void sub_8035648(void) -{ -    AnimateSprites(); -    BuildOamBuffer(); -} diff --git a/src/rom_81520A8.c b/src/rom_81520A8.c index f6d14d49c..8b10d44d0 100644 --- a/src/rom_81520A8.c +++ b/src/rom_81520A8.c @@ -2,7 +2,7 @@  #include "rom_81520A8.h"  #include "malloc.h"  #include "main.h" -#include "rom_8034C54.h" +#include "digit_obj_util.h"  static EWRAM_DATA struct  { @@ -138,7 +138,7 @@ static bool32 sub_81523F4(struct UnkStruct_81520A8 *structPtr, u8 arg1)          return FALSE;      structPtr->unk18 = arg1; -    structPtr->tileNum = (sub_80355F8(structPtr->oam.shape, structPtr->oam.size) * arg1) + tileStart; +    structPtr->tileNum = (GetTilesPerImage(structPtr->oam.shape, structPtr->oam.size) * arg1) + tileStart;      return TRUE;  } diff --git a/src/union_room_battle.c b/src/union_room_battle.c index c80340da3..18dd7c320 100644 --- a/src/union_room_battle.c +++ b/src/union_room_battle.c @@ -451,15 +451,15 @@ void sub_801AAD4(void)  {      s32 i;      sub_8014210(10); -    for (i = 0; i < 2; i++) +    for (i = 0; i < UNION_ROOM_PARTY_SIZE; i++)      {          gEnemyParty[i] = gPlayerParty[gSelectedOrderFromParty[i] - 1];      } -    for (i = 0; i < 6; i++) +    for (i = 0; i < PARTY_SIZE; i++)      {          ZeroMonData(&gPlayerParty[i]);      } -    for (i = 0; i < 2; i++) +    for (i = 0; i < UNION_ROOM_PARTY_SIZE; i++)      {          gPlayerParty[i] = gEnemyParty[i];      } diff --git a/sym_bss.txt b/sym_bss.txt index 1c58146f6..aad8c8f14 100644 --- a/sym_bss.txt +++ b/sym_bss.txt @@ -14,7 +14,7 @@  	.include "src/dodrio_berry_picking.o"  	.include "src/rtc.o"  	.include "src/main_menu.o" -	.include "src/rom_8034C54.o" +	.include "src/digit_obj_util.o"  	.include "src/egg_hatch.o"  	.include "src/berry_blender.o"  	.include "src/play_time.o" diff --git a/sym_ewram.txt b/sym_ewram.txt index c5cb123c5..d00f7953c 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -23,7 +23,7 @@  	.include "src/pokemon_jump.o"  	.include "src/main_menu.o"  	.include "src/battle_controllers.o" -	.include "src/rom_8034C54.o" +	.include "src/digit_obj_util.o"  	.include "src/battle_main.o"  	.include "src/pokemon.o"  	.include "src/random.o" | 
