summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/AgbRfu_LinkManager.c4
-rw-r--r--src/agb_flash.c26
-rw-r--r--src/apprentice.c1
-rw-r--r--src/battle_ai_script_commands.c12
-rw-r--r--src/battle_ai_switch_items.c1
-rw-r--r--src/battle_anim_bug.c29
-rw-r--r--src/battle_anim_effects_1.c9
-rwxr-xr-xsrc/battle_anim_effects_3.c54
-rw-r--r--src/battle_anim_flying.c475
-rw-r--r--src/battle_anim_mons.c1
-rw-r--r--src/battle_anim_sound_tasks.c1
-rw-r--r--src/battle_anim_water.c89
-rw-r--r--src/battle_bg.c2
-rw-r--r--src/battle_controllers.c1
-rw-r--r--src/battle_dome.c33
-rw-r--r--src/battle_factory.c13
-rw-r--r--src/battle_factory_screen.c16
-rw-r--r--src/battle_gfx_sfx_util.c14
-rw-r--r--src/battle_interface.c1
-rw-r--r--src/battle_main.c129
-rw-r--r--src/battle_message.c2
-rw-r--r--src/battle_pike.c1
-rw-r--r--src/battle_pyramid.c14
-rw-r--r--src/battle_script_commands.c28
-rw-r--r--src/battle_setup.c1
-rw-r--r--src/battle_tent.c3
-rw-r--r--src/battle_tower.c59
-rw-r--r--src/battle_transition.c2
-rw-r--r--src/battle_tv.c12
-rw-r--r--src/battle_util.c49
-rw-r--r--src/berry.c2
-rw-r--r--src/berry_blender.c10
-rwxr-xr-xsrc/berry_crush.c27
-rw-r--r--src/birch_pc.c1
-rw-r--r--src/braille_puzzles.c1
-rw-r--r--src/confetti_util.c6
-rw-r--r--src/contest.c80
-rw-r--r--src/contest_painting.c13
-rw-r--r--src/contest_util.c47
-rw-r--r--src/credits.c1
-rw-r--r--src/crt0.s4
-rw-r--r--src/data.c1
-rw-r--r--src/data/bard_music/pokemon.h1
-rw-r--r--src/data/battle_frontier/trainer_hill.h496
-rw-r--r--src/data/contest_opponents.h1
-rwxr-xr-xsrc/data/easy_chat/easy_chat_group_pokemon.h2
-rwxr-xr-xsrc/data/easy_chat/easy_chat_group_pokemon2.h2
-rwxr-xr-xsrc/data/field_effects/field_effect_objects.h2
-rw-r--r--src/data/lilycove_lady.h3
-rwxr-xr-xsrc/data/object_events/object_event_graphics.h128
-rwxr-xr-xsrc/data/object_events/object_event_graphics_info.h490
-rwxr-xr-xsrc/data/object_events/object_event_graphics_info_pointers.h8
-rw-r--r--src/data/pokemon/item_effects.h14
-rw-r--r--src/data/pokemon/tmhm_learnsets.h2
-rw-r--r--src/data/region_map/city_map_entries.h2
-rw-r--r--src/data/region_map/city_map_tilemaps.h2
-rw-r--r--src/daycare.c10
-rw-r--r--src/decompress.c1
-rw-r--r--src/decoration.c6
-rw-r--r--src/dewford_trend.c45
-rw-r--r--src/dodrio_berry_picking.c1
-rw-r--r--src/easy_chat.c29
-rwxr-xr-xsrc/ereader_helpers.c1
-rw-r--r--src/event_object_movement.c530
-rw-r--r--src/evolution_scene.c1
-rwxr-xr-xsrc/faraway_island.c23
-rw-r--r--src/field_effect.c2
-rwxr-xr-xsrc/field_effect_helpers.c10
-rw-r--r--src/field_player_avatar.c1
-rw-r--r--src/field_poison.c1
-rw-r--r--src/field_specials.c31
-rw-r--r--src/fldeff_cut.c10
-rw-r--r--src/frontier_pass.c4
-rw-r--r--src/frontier_util.c4
-rw-r--r--src/hall_of_fame.c1
-rw-r--r--src/intro.c1
-rw-r--r--src/item.c16
-rwxr-xr-xsrc/item_menu.c31
-rwxr-xr-xsrc/item_use.c2
-rw-r--r--src/link_rfu_2.c74
-rw-r--r--src/link_rfu_3.c22
-rw-r--r--src/list_menu.c22
-rw-r--r--src/lottery_corner.c1
-rw-r--r--src/m4a.c128
-rw-r--r--src/m4a_1.s466
-rw-r--r--src/m4a_tables.c6
-rw-r--r--src/mail.c1
-rw-r--r--src/mail_data.c1
-rw-r--r--src/main.c34
-rw-r--r--src/main_menu.c1
-rw-r--r--src/match_call.c5
-rw-r--r--src/menu.c106
-rw-r--r--src/menu_helpers.c8
-rw-r--r--src/menu_specialized.c141
-rw-r--r--src/metatile_behavior.c4
-rwxr-xr-xsrc/mevent2.c1
-rw-r--r--src/mevent_801BAAC.c1
-rw-r--r--src/mirage_tower.c33
-rw-r--r--src/mon_markings.c4
-rw-r--r--src/multiboot.c33
-rw-r--r--src/mystery_event_script.c1
-rw-r--r--src/overworld.c1
-rwxr-xr-xsrc/party_menu.c94
-rw-r--r--src/player_pc.c14
-rw-r--r--src/pokeball.c1
-rw-r--r--src/pokeblock.c2
-rw-r--r--src/pokedex.c63
-rwxr-xr-xsrc/pokedex_area_screen.c1
-rw-r--r--src/pokemon.c53
-rw-r--r--src/pokemon_animation.c6
-rw-r--r--src/pokemon_icon.c1
-rwxr-xr-xsrc/pokemon_jump.c3
-rw-r--r--src/pokemon_size_record.c1
-rw-r--r--src/pokemon_storage_system.c23
-rw-r--r--src/pokemon_summary_screen.c7
-rw-r--r--src/pokenav.c158
-rw-r--r--src/pokenav_conditions_1.c447
-rw-r--r--src/pokenav_conditions_2.c589
-rw-r--r--src/pokenav_conditions_3.c458
-rw-r--r--src/pokenav_main_menu.c155
-rwxr-xr-xsrc/pokenav_match_call_1.c48
-rwxr-xr-xsrc/pokenav_match_call_2.c145
-rw-r--r--src/pokenav_match_call_ui.c432
-rw-r--r--src/pokenav_menu_handler_1.c128
-rw-r--r--src/pokenav_menu_handler_2.c536
-rwxr-xr-xsrc/pokenav_region_map.c58
-rw-r--r--src/pokenav_ribbons_1.c414
-rw-r--r--src/pokenav_ribbons_2.c348
-rw-r--r--src/rayquaza_scene.c1
-rw-r--r--src/record_mixing.c36
-rw-r--r--src/reshow_battle_screen.c1
-rw-r--r--src/roamer.c1
-rw-r--r--src/roulette.c1
-rw-r--r--src/save.c6
-rw-r--r--src/scanline_effect.c8
-rw-r--r--src/scrcmd.c4
-rw-r--r--src/script.c6
-rwxr-xr-xsrc/script_pokemon_util.c1
-rw-r--r--src/secret_base.c9
-rwxr-xr-xsrc/shop.c6
-rw-r--r--src/slot_machine.c83
-rw-r--r--src/start_menu.c2
-rw-r--r--src/starter_choose.c1
-rw-r--r--src/trade.c1
-rw-r--r--src/trainer_hill.c21
-rw-r--r--src/trainer_pokemon_sprites.c1
-rw-r--r--src/trainer_see.c4
-rw-r--r--src/tv.c12
-rw-r--r--src/union_room.c11
-rwxr-xr-xsrc/union_room_chat.c2
-rw-r--r--src/use_pokeblock.c10
-rw-r--r--src/walda_phrase.c4
-rw-r--r--src/wild_encounter.c1
-rw-r--r--src/wireless_communication_status_screen.c6
154 files changed, 4551 insertions, 4156 deletions
diff --git a/src/AgbRfu_LinkManager.c b/src/AgbRfu_LinkManager.c
index 42cc9aea3..f6ebcc726 100644
--- a/src/AgbRfu_LinkManager.c
+++ b/src/AgbRfu_LinkManager.c
@@ -352,7 +352,7 @@ static bool8 rfu_LMAN_linkWatcher(u16 REQ_commandID)
{
for (i = 0; i < RFU_CHILD_MAX; i++)
{
- if (bm_linkLossSlot & (1 << i))
+ if ((bm_linkLossSlot >> i) & 1)
{
lman.linkRecoveryTimer.active |= (1 << i);
lman.linkRecoveryTimer.count[i] = lman.linkRecoveryTimer.count_max;
@@ -396,7 +396,7 @@ static bool8 rfu_LMAN_linkWatcher(u16 REQ_commandID)
bm_disconnectSlot = 0;
for (i = 0; i < RFU_CHILD_MAX; i++)
{
- if ((lman.linkRecoveryTimer.active) & (1 << i) && lman.linkRecoveryTimer.count[i] && --lman.linkRecoveryTimer.count[i] == 0)
+ if ((lman.linkRecoveryTimer.active >> i) & 1 && lman.linkRecoveryTimer.count[i] && --lman.linkRecoveryTimer.count[i] == 0)
{
lman.linkRecoveryTimer.active &= ~(1 << i);
bm_disconnectSlot |= (1 << i);
diff --git a/src/agb_flash.c b/src/agb_flash.c
index f63f84509..6b9381c70 100644
--- a/src/agb_flash.c
+++ b/src/agb_flash.c
@@ -41,7 +41,7 @@ u16 ReadFlashId(void)
u8 (*readFlash1)(u8 *);
SetReadFlash1(readFlash1Buffer);
- readFlash1 = (u8 (*)(u8 *))((uintptr_t)readFlash1Buffer + 1);
+ readFlash1 = (u8 (*)(u8 *))((s32)readFlash1Buffer + 1);
// Enter ID mode.
FLASH_WRITE(0x5555, 0xAA);
@@ -113,12 +113,12 @@ void SetReadFlash1(u16 *dest)
u16 *src;
u16 i;
- PollFlashStatus = (u8 (*)(u8 *))((uintptr_t)dest + 1);
+ PollFlashStatus = (u8 (*)(u8 *))((s32)dest + 1);
src = (u16 *)ReadFlash1;
- src = (u16 *)((uintptr_t)src ^ 1);
+ src = (u16 *)((s32)src ^ 1);
- i = ((uintptr_t)SetReadFlash1 - (uintptr_t)ReadFlash1) >> 1;
+ i = ((s32)SetReadFlash1 - (s32)ReadFlash1) >> 1;
while (i != 0)
{
@@ -154,10 +154,10 @@ void ReadFlash(u16 sectorNum, u32 offset, u8 *dest, u32 size)
}
funcSrc = (vu16 *)ReadFlash_Core;
- funcSrc = (vu16 *)((uintptr_t)funcSrc ^ 1);
+ funcSrc = (vu16 *)((s32)funcSrc ^ 1);
funcDest = readFlash_Core_Buffer;
- i = ((uintptr_t)ReadFlash - (uintptr_t)ReadFlash_Core) >> 1;
+ i = ((s32)ReadFlash - (s32)ReadFlash_Core) >> 1;
while (i != 0)
{
@@ -165,7 +165,7 @@ void ReadFlash(u16 sectorNum, u32 offset, u8 *dest, u32 size)
i--;
}
- readFlash_Core = (void (*)(vu8 *, u8 *, u32))((uintptr_t)readFlash_Core_Buffer + 1);
+ readFlash_Core = (void (*)(vu8 *, u8 *, u32))((s32)readFlash_Core_Buffer + 1);
src = FLASH_BASE + (sectorNum << gFlash->sector.shift) + offset;
@@ -202,10 +202,10 @@ u32 VerifyFlashSector(u16 sectorNum, u8 *src)
}
funcSrc = (vu16 *)VerifyFlashSector_Core;
- funcSrc = (vu16 *)((uintptr_t)funcSrc ^ 1);
+ funcSrc = (vu16 *)((s32)funcSrc ^ 1);
funcDest = verifyFlashSector_Core_Buffer;
- i = (u16)(((uintptr_t)VerifyFlashSector - (uintptr_t)VerifyFlashSector_Core) >> 1);
+ i = ((s32)VerifyFlashSector - (s32)VerifyFlashSector_Core) >> 1;
while (i != 0)
{
@@ -213,7 +213,7 @@ u32 VerifyFlashSector(u16 sectorNum, u8 *src)
i--;
}
- verifyFlashSector_Core = (u32 (*)(u8 *, u8 *, u32))((uintptr_t)verifyFlashSector_Core_Buffer + 1);
+ verifyFlashSector_Core = (u32 (*)(u8 *, u8 *, u32))((s32)verifyFlashSector_Core_Buffer + 1);
tgt = FLASH_BASE + (sectorNum << gFlash->sector.shift);
size = gFlash->sector.size;
@@ -239,10 +239,10 @@ u32 VerifyFlashSectorNBytes(u16 sectorNum, u8 *src, u32 n)
REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | WAITCNT_SRAM_8;
funcSrc = (vu16 *)VerifyFlashSector_Core;
- funcSrc = (vu16 *)((uintptr_t)funcSrc ^ 1);
+ funcSrc = (vu16 *)((s32)funcSrc ^ 1);
funcDest = verifyFlashSector_Core_Buffer;
- i = ((uintptr_t)VerifyFlashSector - (uintptr_t)VerifyFlashSector_Core) >> 1;
+ i = ((s32)VerifyFlashSector - (s32)VerifyFlashSector_Core) >> 1;
while (i != 0)
{
@@ -250,7 +250,7 @@ u32 VerifyFlashSectorNBytes(u16 sectorNum, u8 *src, u32 n)
i--;
}
- verifyFlashSector_Core = (u32 (*)(u8 *, u8 *, u32))((uintptr_t)verifyFlashSector_Core_Buffer + 1);
+ verifyFlashSector_Core = (u32 (*)(u8 *, u8 *, u32))((s32)verifyFlashSector_Core_Buffer + 1);
tgt = FLASH_BASE + (sectorNum << gFlash->sector.shift);
diff --git a/src/apprentice.c b/src/apprentice.c
index 3dc33cad4..ad157f301 100644
--- a/src/apprentice.c
+++ b/src/apprentice.c
@@ -27,7 +27,6 @@
#include "constants/items.h"
#include "constants/pokemon.h"
#include "constants/songs.h"
-#include "constants/species.h"
#include "constants/trainers.h"
#include "constants/moves.h"
diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c
index 5aef7a04f..4adb39a5d 100644
--- a/src/battle_ai_script_commands.c
+++ b/src/battle_ai_script_commands.c
@@ -14,7 +14,6 @@
#include "constants/battle_ai.h"
#include "constants/battle_move_effects.h"
#include "constants/moves.h"
-#include "constants/species.h"
#define AI_ACTION_DONE 0x0001
#define AI_ACTION_FLEE 0x0002
@@ -451,7 +450,16 @@ static u8 ChooseMoveOrAction_Doubles(void)
{
s32 i;
s32 j;
+#ifndef BUGFIX
s32 scriptsToRun;
+#else
+ // the value assigned to this is a u32 (aiFlags)
+ // this becomes relevant because aiFlags can have bit 31 set
+ // and scriptsToRun is shifted
+ // this never happens in the vanilla game because bit 31 is
+ // only set when it's the first battle
+ u32 scriptsToRun;
+#endif
s16 bestMovePointsForTarget[MAX_BATTLERS_COUNT];
s8 mostViableTargetsArray[MAX_BATTLERS_COUNT];
u8 actionOrMoveIndex[MAX_BATTLERS_COUNT];
@@ -1299,7 +1307,7 @@ static void Cmd_count_usable_party_mons(void)
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
- u8 position;
+ u32 position;
battlerOnField1 = gBattlerPartyIndexes[battlerId];
position = GetBattlerPosition(battlerId) ^ BIT_FLANK;
battlerOnField2 = gBattlerPartyIndexes[GetBattlerAtPosition(position)];
diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c
index 2a5a83e0d..1663c2561 100644
--- a/src/battle_ai_switch_items.c
+++ b/src/battle_ai_switch_items.c
@@ -9,7 +9,6 @@
#include "constants/item_effects.h"
#include "constants/items.h"
#include "constants/moves.h"
-#include "constants/species.h"
// this file's functions
static bool8 HasSuperEffectiveMoveAgainstOpponents(bool8 noRng);
diff --git a/src/battle_anim_bug.c b/src/battle_anim_bug.c
index 5e8a8b2a7..b8aba8976 100644
--- a/src/battle_anim_bug.c
+++ b/src/battle_anim_bug.c
@@ -372,11 +372,14 @@ static void AnimTranslateStinger(struct Sprite *sprite)
{
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
}
- else if (GetBattlerSide(gBattleAnimAttacker))
+ else
{
- gBattleAnimArgs[2] = -gBattleAnimArgs[2];
- gBattleAnimArgs[1] = -gBattleAnimArgs[1];
- gBattleAnimArgs[3] = -gBattleAnimArgs[3];
+ if (GetBattlerSide(gBattleAnimAttacker))
+ {
+ gBattleAnimArgs[2] = -gBattleAnimArgs[2];
+ gBattleAnimArgs[1] = -gBattleAnimArgs[1];
+ gBattleAnimArgs[3] = -gBattleAnimArgs[3];
+ }
}
if (!IsContest() && GetBattlerSide(gBattleAnimAttacker) == GetBattlerSide(gBattleAnimTarget))
@@ -440,24 +443,28 @@ static void AnimMissileArc_Step(struct Sprite *sprite)
else
{
s16 tempData[8];
- s16 xpos, ypos;
+ u16 *data = sprite->data;
+ u16 x1 = sprite->pos1.x;
+ s16 x2 = sprite->pos2.x;
+ u16 y1 = sprite->pos1.y;
+ s16 y2 = sprite->pos2.y;
int i;
for (i = 0; i < 8; i++)
- tempData[i] = sprite->data[i];
+ tempData[i] = data[i];
- xpos = sprite->pos1.x + sprite->pos2.x;
- ypos = sprite->pos1.y + sprite->pos2.y;
+ x2 += x1;
+ y2 += y1;
if (!TranslateAnimHorizontalArc(sprite))
{
- u16 rotation = ArcTan2Neg(sprite->pos1.x + sprite->pos2.x - xpos, //Isn't this zero lol
- sprite->pos1.y + sprite->pos2.y - ypos);
+ u16 rotation = ArcTan2Neg(sprite->pos1.x + sprite->pos2.x - x2,
+ sprite->pos1.y + sprite->pos2.y - y2);
rotation += 0xC000;
TrySetSpriteRotScale(sprite, FALSE, 0x100, 0x100, rotation);
for (i = 0; i < 8; i++)
- sprite->data[i] = tempData[i];
+ data[i] = tempData[i];
}
}
}
diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c
index c8d43e12e..04bab2f85 100644
--- a/src/battle_anim_effects_1.c
+++ b/src/battle_anim_effects_1.c
@@ -3967,25 +3967,24 @@ static void AnimProtect(struct Sprite* sprite)
static void AnimProtect_Step(struct Sprite *sprite)
{
- int i, savedPal;
+ int i, id, savedPal;
sprite->data[5] += 96;
sprite->pos2.x = -(sprite->data[5] >> 8);
if (++sprite->data[1] > 1)
{
- int id;
sprite->data[1] = 0;
savedPal = gPlttBufferFaded[sprite->data[2] + 1];
i = 0;
- do
+ while (i < 6)
{
id = sprite->data[2] + ++i;
gPlttBufferFaded[id] = gPlttBufferFaded[id + 1];
- } while (i < 6);
+ }
gPlttBufferFaded[sprite->data[2] + 7] = savedPal;
}
- if (sprite->data[7] > 6 && sprite->data[0] > 0 && ++sprite->data[6] > 1)
+ if (sprite->data[7] > 6 && sprite->data[0] >0 && ++sprite->data[6] > 1)
{
sprite->data[6] = 0;
sprite->data[7] -= 1;
diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c
index 4ba2ad1f1..9e50a8477 100755
--- a/src/battle_anim_effects_3.c
+++ b/src/battle_anim_effects_3.c
@@ -21,7 +21,6 @@
#include "constants/battle_anim.h"
#include "constants/rgb.h"
#include "constants/songs.h"
-#include "constants/species.h"
#include "constants/weather.h"
extern const struct SpriteTemplate gThoughtBubbleSpriteTemplate;
@@ -5003,8 +5002,8 @@ void AnimTask_GetReturnPowerLevel(u8 taskId)
void AnimTask_SnatchOpposingMonMove(u8 taskId)
{
u8 spriteId, spriteId2;
- u32 personality;
- u32 otId;
+ int personality;
+ int otId;
u16 species;
u8 subpriority;
bool8 isBackPic;
@@ -5038,31 +5037,34 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId)
isBackPic = FALSE;
x = -32;
}
- else if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
- {
- personality = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_PERSONALITY);
- otId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_OT_ID);
- if (gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies == SPECIES_NONE)
- species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES);
- else
- species = gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies;
-
- subpriority = gSprites[GetAnimBattlerSpriteId(ANIM_TARGET)].subpriority + 1;
- isBackPic = FALSE;
- x = 272;
- }
else
{
- personality = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_PERSONALITY);
- otId = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_OT_ID);
- if (gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies == SPECIES_NONE)
- species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES);
+ if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
+ {
+ personality = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_PERSONALITY);
+ otId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_OT_ID);
+ if (gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies == SPECIES_NONE)
+ species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES);
+ else
+ species = gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies;
+
+ subpriority = gSprites[GetAnimBattlerSpriteId(ANIM_TARGET)].subpriority + 1;
+ isBackPic = FALSE;
+ x = 272;
+ }
else
- species = gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies;
+ {
+ personality = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_PERSONALITY);
+ otId = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_OT_ID);
+ if (gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies == SPECIES_NONE)
+ species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES);
+ else
+ species = gBattleSpritesDataPtr->battlerData[gBattleAnimAttacker].transformSpecies;
- subpriority = gSprites[GetAnimBattlerSpriteId(ANIM_TARGET)].subpriority - 1;
- isBackPic = TRUE;
- x = -32;
+ subpriority = gSprites[GetAnimBattlerSpriteId(ANIM_TARGET)].subpriority - 1;
+ isBackPic = TRUE;
+ x = -32;
+ }
}
spriteId2 = sub_80A8394(species, isBackPic, 0, x, GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y), subpriority, personality, otId, gBattleAnimAttacker, 0);
@@ -5089,7 +5091,7 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId)
if (x < GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X))
{
gTasks[taskId].data[14]++;
- gBattleAnimArgs[7] = -1;
+ gBattleAnimArgs[7] = 0xFFFF;
}
}
else
@@ -5097,7 +5099,7 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId)
if (x > GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X))
{
gTasks[taskId].data[14]++;
- gBattleAnimArgs[7] = -1;
+ gBattleAnimArgs[7] = 0xFFFF;
}
}
}
diff --git a/src/battle_anim_flying.c b/src/battle_anim_flying.c
index fe94dc9a2..f8d47f4ec 100644
--- a/src/battle_anim_flying.c
+++ b/src/battle_anim_flying.c
@@ -380,18 +380,21 @@ static void AnimTask_AnimateGustTornadoPalette_Step(u8 taskId)
{
u8 data2;
u16 temp;
+ int i, base;
if (gTasks[taskId].data[10]++ == gTasks[taskId].data[1])
{
- int i, base;
gTasks[taskId].data[10] = 0;
data2 = gTasks[taskId].data[2];
temp = gPlttBufferFaded[16 * data2 + 0x108];
i = 7;
base = data2 * 16;
- for (; i > 0; --i)
+ do
+ {
gPlttBufferFaded[base + 0x101 + i] = gPlttBufferFaded[base + 0x100 + i];
+ i--;
+ } while (i > 0);
gPlttBufferFaded[base + 0x101] = temp;
}
@@ -533,16 +536,17 @@ static void AnimFlyBallAttack_Step(struct Sprite *sprite)
void DestroyAnimSpriteAfterTimer(struct Sprite *sprite)
{
- if (sprite->data[0]-- > 0)
- return;
- if (sprite->oam.affineMode & ST_OAM_AFFINE_ON_MASK)
+ if (sprite->data[0]-- <= 0)
{
- FreeOamMatrix(sprite->oam.matrixNum);
- sprite->oam.affineMode = ST_OAM_AFFINE_OFF;
- }
+ if (sprite->oam.affineMode & ST_OAM_AFFINE_ON_MASK)
+ {
+ FreeOamMatrix(sprite->oam.matrixNum);
+ sprite->oam.affineMode = ST_OAM_AFFINE_OFF;
+ }
- DestroySprite(sprite);
- gAnimVisualTaskCount--;
+ DestroySprite(sprite);
+ gAnimVisualTaskCount--;
+ }
}
struct FeatherDanceData
@@ -563,41 +567,35 @@ struct FeatherDanceData
u16 unkE_1:15;
};
-#define ANIM_SWITCH(sprite) \
- { \
- (sprite)->hFlip ^= 1; \
- (sprite)->animNum = (sprite)->hFlip; \
- (sprite)->animBeginning = TRUE; \
- (sprite)->animEnded = FALSE; \
- }
-
static void AnimFallingFeather(struct Sprite *sprite)
{
- u8 battler, sinIndex;
- u32 matrixNum;
- s16 sinVal;
+ u8 battler, matrixNum, sinIndex;
+ s16 spriteCoord;
struct FeatherDanceData *data = (struct FeatherDanceData *)sprite->data;
- battler = (gBattleAnimArgs[7] & 0x100) ? gBattleAnimAttacker : gBattleAnimTarget;
+ if (gBattleAnimArgs[7] & 0x100)
+ battler = gBattleAnimAttacker;
+ else
+ battler = gBattleAnimTarget;
if (GetBattlerSide(battler) == B_SIDE_PLAYER)
gBattleAnimArgs[0] = -gBattleAnimArgs[0];
sprite->pos1.x = GetBattlerSpriteCoord(battler, BATTLER_COORD_ATTR_HEIGHT) + gBattleAnimArgs[0];
- sinVal = GetBattlerSpriteCoord(battler, BATTLER_COORD_ATTR_WIDTH);
- sprite->pos1.y = sinVal + gBattleAnimArgs[1];
+ spriteCoord = GetBattlerSpriteCoord(battler, BATTLER_COORD_ATTR_WIDTH);
+ sprite->pos1.y = spriteCoord + gBattleAnimArgs[1];
- data->unk8 = (u16)(sprite->pos1.y) << 8;
- data->unkE_1 = (u16)(sinVal + gBattleAnimArgs[6]);
+ data->unk8 = sprite->pos1.y << 8;
+ data->unkE_1 = spriteCoord + gBattleAnimArgs[6];
data->unk0_0c = 1;
- data->unk2 = (u16)(gBattleAnimArgs[2] & 0xFF);
- data->unkA = (u16)gBattleAnimArgs[2] >> 8;
+ data->unk2 = gBattleAnimArgs[2] & 0xFF;
+ data->unkA = (gBattleAnimArgs[2] >> 8) & 0xFF;
data->unk4 = gBattleAnimArgs[3];
- data->unk6 = (u16)gBattleAnimArgs[4];
- *(u16 *)(data->unkC) = (u16)gBattleAnimArgs[5];
+ data->unk6 = gBattleAnimArgs[4];
+ *(u16*)(data->unkC) = gBattleAnimArgs[5];
- if (data->unk2 >= 64 && data->unk2 < 192)
+ if (data->unk2 >= 64 && data->unk2 <= 191)
{
if (!IsContest())
sprite->oam.priority = GetBattlerSpriteBGPriority(battler) + 1;
@@ -608,7 +606,11 @@ static void AnimFallingFeather(struct Sprite *sprite)
if (!(data->unk4 & 0x8000))
{
- ANIM_SWITCH(sprite);
+ sprite->hFlip ^= 1;
+ sprite->animNum = sprite->hFlip;
+
+ sprite->animBeginning = 1;
+ sprite->animEnded = 0;
}
}
else
@@ -618,28 +620,31 @@ static void AnimFallingFeather(struct Sprite *sprite)
if (data->unk4 & 0x8000)
{
- ANIM_SWITCH(sprite);
+ sprite->hFlip ^= 1;
+ sprite->animNum = sprite->hFlip;
+
+ sprite->animBeginning = 1;
+ sprite->animEnded = 0;
}
}
- data->unk0_1 = data->unk2 / 64;
- sprite->pos2.x = (gSineTable[data->unk2] * (s32)data->unkC[0]) >> 8;
+ data->unk0_1 = data->unk2 >> 6;
+ sprite->pos2.x = (gSineTable[data->unk2] * data->unkC[0]) >> 8;
matrixNum = sprite->oam.matrixNum;
sinIndex = (-sprite->pos2.x >> 1) + data->unkA;
- sinVal = gSineTable[sinIndex];
+ spriteCoord = gSineTable[sinIndex];
gOamMatrices[matrixNum].a = gOamMatrices[matrixNum].d = gSineTable[sinIndex + 64];
- gOamMatrices[matrixNum].b = sinVal;
- gOamMatrices[matrixNum].c = -sinVal;
+ gOamMatrices[matrixNum].b = spriteCoord;
+ gOamMatrices[matrixNum].c = -spriteCoord;
sprite->callback = sub_810E520;
}
static void sub_810E520(struct Sprite *sprite)
{
- u8 sinIndex;
- u32 matrixNum;
+ u8 matrixNum, sinIndex;
s16 sinVal = 0;
struct FeatherDanceData *data = (struct FeatherDanceData *)sprite->data;
if (data->unk0_0a)
@@ -649,226 +654,240 @@ static void sub_810E520(struct Sprite *sprite)
data->unk0_0a = 0;
data->unk1 = 0;
}
- return;
}
-
- switch (data->unk2 / 64)
+ else
{
- case 0:
- if ((u8)data->unk0_1 == 1) // this must be cast to u8
- {
- data->unk0_0d = 1;
- data->unk0_0a = 1;
- data->unk1 = 0;
- }
- else if ((u8)data->unk0_1 == 3)
- {
- data->unk0_0b ^= 1;
- data->unk0_0a = 1;
- data->unk1 = 0;
- }
- else if (data->unk0_0d)
+ switch (data->unk2 / 64)
{
- ANIM_SWITCH(sprite);
- if (data->unk0_0c)
+ case 0:
+ if ((u8)data->unk0_1 == 1) //casts to u8 here are necessary for matching
{
- if (!IsContest())
- {
- if (!data->unkE_0)
- {
- sprite->oam.priority--;
- data->unkE_0 ^= 1;
- }
- else
- {
- sprite->oam.priority++;
- data->unkE_0 ^= 1;
- }
- }
- else
- {
- if (!data->unkE_0)
- {
- sprite->subpriority -= 12;
- data->unkE_0 ^= 1;
- }
- else
- {
- sprite->subpriority += 12;
- data->unkE_0 ^= 1;
- }
- }
+ data->unk0_0d = 1;
+ data->unk0_0a = 1;
+ data->unk1 = 0;
}
- data->unk0_0d = 0;
- }
- data->unk0_1 = 0;
- break;
- case 1:
- if ((u8)data->unk0_1 == 0)
- {
- data->unk0_0d = 1;
- data->unk0_0a = 1;
- data->unk1 = 0;
- }
- else if ((u8)data->unk0_1 == 2)
- {
- data->unk0_0a = 1;
- data->unk1 = 0;
- }
- else if (data->unk0_0d)
- {
- ANIM_SWITCH(sprite);
- if (data->unk0_0c)
+ else if ((u8)data->unk0_1 == 3)
{
- if (!IsContest())
- {
- if (!data->unkE_0)
- {
- sprite->oam.priority--;
- data->unkE_0 ^= 1;
- }
- else
- {
- sprite->oam.priority++;
- data->unkE_0 ^= 1;
- }
- }
- else
- {
- if (!data->unkE_0)
- {
- sprite->subpriority -= 12;
- data->unkE_0 ^= 1;
- }
- else
- {
- sprite->subpriority += 12;
- data->unkE_0 ^= 1;
- }
- }
+ data->unk0_0b ^= 1;
+ data->unk0_0a = 1;
+ data->unk1 = 0;
}
- data->unk0_0d = 0;
- }
- data->unk0_1 = 1;
- break;
- case 2:
- if ((u8)data->unk0_1 == 3)
- {
- data->unk0_0d = 1;
- data->unk0_0a = 1;
- data->unk1 = 0;
- }
- else if ((u8)data->unk0_1 == 1)
- {
- data->unk0_0a = 1;
- data->unk1 = 0;
- }
- else if (data->unk0_0d)
- {
- ANIM_SWITCH(sprite);
- if (data->unk0_0c)
+ else if (data->unk0_0d)
{
- if (!IsContest())
+ sprite->hFlip ^= 1;
+ sprite->animNum = sprite->hFlip;
+ sprite->animBeginning = TRUE;
+ sprite->animEnded = FALSE;
+ if (data->unk0_0c)
{
- if (!data->unkE_0)
+ if (!IsContest())
{
- sprite->oam.priority--;
- data->unkE_0 ^= 1;
+ if (!data->unkE_0)
+ {
+ sprite->oam.priority--;
+ data->unkE_0 ^= 1;
+ }
+ else
+ {
+ sprite->oam.priority++;
+ data->unkE_0 ^= 1;
+ }
}
else
{
- sprite->oam.priority++;
- data->unkE_0 ^= 1;
+ if (!data->unkE_0)
+ {
+ sprite->subpriority -= 12;
+ data->unkE_0 ^= 1;
+ }
+ else
+ {
+ sprite->subpriority += 12;
+ data->unkE_0 ^= 1;
+ }
}
}
- else
+ data->unk0_0d = 0;
+ data->unk2;
+ }
+ data->unk0_1 = 0;
+ break;
+ case 1:
+ if ((u8)data->unk0_1 == 0)
+ {
+ data->unk0_0d = 1;
+ data->unk0_0a = 1;
+ data->unk1 = 0;
+ }
+ else if ((u8)data->unk0_1 == 2)
+ {
+ data->unk0_0a = 1;
+ data->unk1 = 0;
+ }
+ else if (data->unk0_0d)
+ {
+ sprite->hFlip ^= 1;
+ sprite->animNum = sprite->hFlip;
+ sprite->animBeginning = TRUE;
+ sprite->animEnded = FALSE;
+ if (data->unk0_0c)
{
- if (!data->unkE_0)
+ if (!IsContest())
{
- sprite->subpriority -= 12;
- data->unkE_0 ^= 1;
+ if (!data->unkE_0)
+ {
+ sprite->oam.priority--;
+ data->unkE_0 ^= 1;
+ }
+ else
+ {
+ sprite->oam.priority++;
+ data->unkE_0 ^= 1;
+ }
}
else
{
- sprite->subpriority += 12;
- data->unkE_0 ^= 1;
+ if (!data->unkE_0)
+ {
+ sprite->subpriority -= 12;
+ data->unkE_0 ^= 1;
+ }
+ else
+ {
+ sprite->subpriority += 12;
+ data->unkE_0 ^= 1;
+ }
}
}
+ data->unk0_0d = 0;
}
- data->unk0_0d = 0;
- }
- data->unk0_1 = 2;
- break;
- case 3:
- if ((u8)data->unk0_1 == 2)
- {
- data->unk0_0d = 1;
- }
- else if ((u8)data->unk0_1 == 0)
- {
- data->unk0_0b ^= 1;
- data->unk0_0a = 1;
- data->unk1 = 0;
- }
- else if (data->unk0_0d)
- {
- ANIM_SWITCH(sprite);
- if (data->unk0_0c)
+ data->unk0_1 = 1;
+ break;
+ case 2:
+ if ((u8)data->unk0_1 == 3)
+ {
+ data->unk0_0d = 1;
+ data->unk0_0a = 1;
+ data->unk1 = 0;
+ }
+ else if ((u8)data->unk0_1 == 1)
{
- if (!IsContest())
+ data->unk0_0a = 1;
+ data->unk1 = 0;
+ }
+ else if (data->unk0_0d)
+ {
+ sprite->hFlip ^= 1;
+ sprite->animNum = sprite->hFlip;
+ sprite->animBeginning = TRUE;
+ sprite->animEnded = FALSE;
+ if (data->unk0_0c)
{
- if (!data->unkE_0)
+ if (!IsContest())
{
- sprite->oam.priority--;
- data->unkE_0 ^= 1;
+ if (!data->unkE_0)
+ {
+ sprite->oam.priority--;
+ data->unkE_0 ^= 1;
+ }
+ else
+ {
+ sprite->oam.priority++;
+ data->unkE_0 ^= 1;
+ }
}
else
{
- sprite->oam.priority++;
- data->unkE_0 ^= 1;
+ if (!data->unkE_0)
+ {
+ sprite->subpriority -= 12;
+ data->unkE_0 ^= 1;
+ }
+ else
+ {
+ sprite->subpriority += 12;
+ data->unkE_0 ^= 1;
+ }
}
}
- else
+ data->unk0_0d = 0;
+ }
+ data->unk0_1 = 2;
+ break;
+ case 3:
+ if ((u8)data->unk0_1 == 2)
+ {
+ data->unk0_0d = 1;
+ }
+ else if ((u8)data->unk0_1 == 0)
+ {
+ data->unk0_0b ^= 1;
+ data->unk0_0a = 1;
+ data->unk1 = 0;
+ }
+ else if (data->unk0_0d)
+ {
+ sprite->hFlip ^= 1;
+ sprite->animNum = sprite->hFlip;
+ sprite->animBeginning = TRUE;
+ sprite->animEnded = FALSE;
+ if (data->unk0_0c)
{
- if (!data->unkE_0)
+ if (!IsContest())
{
- sprite->subpriority -= 12;
- data->unkE_0 ^= 1;
+ if (!data->unkE_0)
+ {
+ sprite->oam.priority--;
+ data->unkE_0 ^= 1;
+ }
+ else
+ {
+ sprite->oam.priority++;
+ data->unkE_0 ^= 1;
+ }
}
else
{
- sprite->subpriority += 12;
- data->unkE_0 ^= 1;
+ if (!data->unkE_0)
+ {
+ sprite->subpriority -= 12;
+ data->unkE_0 ^= 1;
+ }
+ else
+ {
+ sprite->subpriority += 12;
+ data->unkE_0 ^= 1;
+ }
}
}
+ data->unk0_0d = 0;
}
- data->unk0_0d = 0;
+ data->unk0_1 = 3;
+ break;
}
- data->unk0_1 = 3;
- break;
- }
- sprite->pos2.x = ((s32)(data->unkC[data->unk0_0b]) * gSineTable[data->unk2]) >> 8;
- matrixNum = sprite->oam.matrixNum;
+ sprite->pos2.x = ((s32)data->unkC[data->unk0_0b] * gSineTable[data->unk2]) >> 8;
+ matrixNum = sprite->oam.matrixNum;
- sinIndex = ((-sprite->pos2.x >> 1) + data->unkA);
- sinVal = gSineTable[sinIndex];
+ sinIndex = (-sprite->pos2.x >> 1) + data->unkA;
+ sinVal = gSineTable[sinIndex];
- gOamMatrices[matrixNum].a = gOamMatrices[matrixNum].d = gSineTable[sinIndex + 64];
- gOamMatrices[matrixNum].b = sinVal;
- gOamMatrices[matrixNum].c = -sinVal;
+ gOamMatrices[matrixNum].a = gOamMatrices[matrixNum].d = gSineTable[sinIndex + 64];
+ gOamMatrices[matrixNum].b = sinVal;
+ gOamMatrices[matrixNum].c = -sinVal;
- data->unk8 += data->unk6;
- sprite->pos1.y = (s16)(data->unk8 >> 8);
- if (data->unk4 & 0x8000)
- data->unk2 = (data->unk2 - (data->unk4 & 0x7FFF)) & 0xFF;
- else
- data->unk2 = (data->unk2 + (data->unk4 & 0x7FFF)) & 0xFF;
+ data->unk8 += data->unk6;
+ sprite->pos1.y = data->unk8 >> 8;
+ if (data->unk4 & 0x8000)
+ data->unk2 = (data->unk2 - (data->unk4 & 0x7FFF)) & 0xFF;
+ else
+ data->unk2 = (data->unk2 + (data->unk4 & 0x7FFF)) & 0xFF;
- if (sprite->pos1.y + sprite->pos2.y >= data->unkE_1)
- {
- sprite->data[0] = 0;
- sprite->callback = DestroyAnimSpriteAfterTimer;
+ if (sprite->pos1.y + sprite->pos2.y >= data->unkE_1)
+ {
+ sprite->data[0] = 0;
+ sprite->callback = DestroyAnimSpriteAfterTimer;
+ }
}
}
@@ -912,20 +931,20 @@ static void sub_810EB40(struct Sprite *sprite)
{
sprite->pos2.x += sprite->data[1] >> 8;
- if (sprite->data[0]++ == 5)
+ if (++sprite->data[0] == 6)
{
sprite->data[0] = 0;
sprite->pos2.x = 0;
StartSpriteAnim(sprite, 0);
}
- if (sprite->data[7]-- == 0)
+ if (--sprite->data[7] == -1)
DestroyAnimSprite(sprite);
}
void AnimTask_DrillPeckHitSplats(u8 task)
{
- if ((gTasks[task].data[0] % 32) == 0)
+ if (!(gTasks[task].data[0] % 32))
{
gAnimVisualTaskCount++;
@@ -1028,8 +1047,8 @@ static void AnimDiveBall_Step2(struct Sprite *sprite)
static void AnimDiveWaterSplash(struct Sprite *sprite)
{
- u8 matrixNum;
- s32 t1, t2;
+ u32 matrixNum;
+ int t1, t2;
switch (sprite->data[0])
{
@@ -1051,7 +1070,7 @@ static void AnimDiveWaterSplash(struct Sprite *sprite)
sprite->data[0]++;
break;
case 1:
- if (sprite->data[2] < 12)
+ if (sprite->data[2] <= 11)
sprite->data[1] -= 40;
else
sprite->data[1] += 40;
@@ -1059,7 +1078,7 @@ static void AnimDiveWaterSplash(struct Sprite *sprite)
sprite->data[2]++;
TrySetSpriteRotScale(sprite, 0, 256, sprite->data[1], 0);
-
+
matrixNum = sprite->oam.matrixNum;
t1 = 15616;
@@ -1083,8 +1102,8 @@ static void AnimDiveWaterSplash(struct Sprite *sprite)
// Launches a water droplet away from the specified battler. Used by Astonish and Dive
static void AnimSprayWaterDroplet(struct Sprite *sprite)
{
- const u16 v1 = Random2() & 0x1ff;
- const u16 v2 = Random2() & 0x07f;
+ int v1 = 0x1ff & Random2();
+ int v2 = 0x7f & Random2();
if (v1 % 2)
sprite->data[0] = 736 + v1;
@@ -1128,13 +1147,13 @@ static void AnimSprayWaterDroplet_Step(struct Sprite *sprite)
sprite->pos2.y -= sprite->data[1] >> 8;
}
- sprite->data[0] -= 0; // Needed to Match
+ sprite->data[0] = sprite->data[0];
sprite->data[1] -= 32;
if (sprite->data[0] < 0)
sprite->data[0] = 0;
- if (sprite->data[3]++ == 30)
+ if (++sprite->data[3] == 31)
DestroyAnimSprite(sprite);
}
@@ -1204,12 +1223,12 @@ void unref_sub_810F184(u8 taskId)
{
if (gBattleAnimArgs[0] == 0)
{
- const u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
+ u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
gSprites[spriteId].invisible = TRUE;
}
else
{
- const u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
+ u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
gSprites[spriteId].invisible = FALSE;
}
DestroyAnimVisualTask(taskId);
diff --git a/src/battle_anim_mons.c b/src/battle_anim_mons.c
index d9993ab95..d626e1604 100644
--- a/src/battle_anim_mons.c
+++ b/src/battle_anim_mons.c
@@ -15,7 +15,6 @@
#include "trig.h"
#include "util.h"
#include "constants/battle_anim.h"
-#include "constants/species.h"
#define GET_UNOWN_LETTER(personality) (( \
(((personality & 0x03000000) >> 24) << 6) \
diff --git a/src/battle_anim_sound_tasks.c b/src/battle_anim_sound_tasks.c
index 71c81235a..eed163816 100644
--- a/src/battle_anim_sound_tasks.c
+++ b/src/battle_anim_sound_tasks.c
@@ -5,7 +5,6 @@
#include "sound.h"
#include "task.h"
#include "constants/battle_anim.h"
-#include "constants/species.h"
// this file's functions
static void sub_8158B98(u8 taskId);
diff --git a/src/battle_anim_water.c b/src/battle_anim_water.c
index 12f37dbba..2bb90e585 100644
--- a/src/battle_anim_water.c
+++ b/src/battle_anim_water.c
@@ -52,7 +52,7 @@ static void CreateWaterSpoutLaunchDroplets(struct Task*, u8);
static void CreateWaterSpoutRainDroplet(struct Task*, u8);
static void AnimTask_WaterSport_Step(u8);
static void CreateWaterSportDroplet(struct Task*);
-static void CreateWaterPulseRingBubbles(struct Sprite*, s32, s32);
+static void CreateWaterPulseRingBubbles(struct Sprite*, int, int);
// Both unused
const u8 gUnknown_8593C80[] = INCBIN_U8("graphics/unknown/unknown_593C80.4bpp");
@@ -631,13 +631,13 @@ static void AnimTask_RotateAuroraRingColors_Step(u8 taskId)
if (++gTasks[taskId].data[10] == 3)
{
- u16 tempPlt;
+ u16 rgbBuffer;
gTasks[taskId].data[10] = 0;
palIndex = gTasks[taskId].data[2] + 1;
- tempPlt = gPlttBufferFaded[palIndex];
+ rgbBuffer = gPlttBufferFaded[palIndex];
for (i = 1; i < 8; i++)
gPlttBufferFaded[palIndex + i - 1] = gPlttBufferFaded[palIndex + i];
- gPlttBufferFaded[palIndex + 7] = tempPlt;
+ gPlttBufferFaded[palIndex + 7] = rgbBuffer;
}
if (++gTasks[taskId].data[11] == gTasks[taskId].data[0])
DestroyAnimVisualTask(taskId);
@@ -748,7 +748,6 @@ static void AnimHydroCannonBeam(struct Sprite *sprite)
if (GetBattlerPosition(gBattleAnimAttacker) == B_POSITION_PLAYER_LEFT || GetBattlerPosition(gBattleAnimAttacker) == B_POSITION_OPPONENT_LEFT)
gBattleAnimArgs[0] *= -1;
}
-
if ((gBattleAnimArgs[5] & 0xFF00) == 0)
animType = TRUE;
else
@@ -794,7 +793,7 @@ static void AnimSmallBubblePair_Step(struct Sprite *sprite)
sprite->pos2.x = Sin(sprite->data[0], 4);
sprite->data[1] += 48;
sprite->pos2.y = -(sprite->data[1] >> 8);
- if (sprite->data[7]-- == 0)
+ if (--sprite->data[7] == -1)
DestroyAnimSprite(sprite);
}
@@ -802,17 +801,17 @@ void AnimTask_CreateSurfWave(u8 taskId)
{
struct BattleAnimBgData animBg;
u8 taskId2;
- u16 *x, *y; //These pointers are needed to match
+ u16 *x;
+ u16 *y;
x = &gBattle_BG1_X;
y = &gBattle_BG1_Y;
- SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL | BLDCNT_TGT1_BG1);
- SetGpuReg(REG_OFFSET_BLDALPHA, (16 << 8));
+ SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL);
+ SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16));
SetAnimBgAttribute(1, BG_ANIM_PRIORITY, 1);
SetAnimBgAttribute(1, BG_ANIM_SCREEN_SIZE, 1);
sub_80A6B30(&animBg);
-
if (!IsContest())
{
SetAnimBgAttribute(1, BG_ANIM_CHAR_BASE_BLOCK, 1);
@@ -877,13 +876,13 @@ void AnimTask_CreateSurfWave(u8 taskId)
static void AnimTask_CreateSurfWave_Step1(u8 taskId)
{
- u16 rgbBuffer;
- u8 i;
- u16 *BGptrX, *BGptrY;
struct BattleAnimBgData animBg;
-
- BGptrX = &gBattle_BG1_X;
- BGptrY = &gBattle_BG1_Y;
+ u8 i;
+ u16 rgbBuffer;
+ u16 *BGptrX = &gBattle_BG1_X;
+ u16 *BGptrY = &gBattle_BG1_Y;
+ u32 palOffset;
+ u16 palNum;
*BGptrX += gTasks[taskId].data[0];
*BGptrY += gTasks[taskId].data[1];
@@ -891,18 +890,18 @@ static void AnimTask_CreateSurfWave_Step1(u8 taskId)
gTasks[taskId].data[2] += gTasks[taskId].data[1];
if (++gTasks[taskId].data[5] == 4)
{
- rgbBuffer = gPlttBufferFaded[16 * animBg.paletteId + 7];
- for (i = 6; i != 0; i--) // i > 0 generates the exact same code in this context
+ rgbBuffer = gPlttBufferFaded[animBg.paletteId * 16 + 7];
+ for (i = 6; i != 0; i--)
{
- gPlttBufferFaded[16 * animBg.paletteId + 1 + i] = gPlttBufferFaded[16 * animBg.paletteId + 1 + i - 1]; // 1 + i - 1 is needed to match for some bizarre reason
+ gPlttBufferFaded[animBg.paletteId * 16 + 1 + i] = gPlttBufferFaded[animBg.paletteId * 16 + 1 + i - 1]; // 1 + i - 1 is needed to match for some bizarre reason
}
- gPlttBufferFaded[16 * animBg.paletteId + 1] = rgbBuffer;
+ gPlttBufferFaded[animBg.paletteId * 16 + 1] = rgbBuffer;
gTasks[taskId].data[5] = 0;
}
if (++gTasks[taskId].data[6] > 1)
{
gTasks[taskId].data[6] = 0;
- if (++gTasks[taskId].data[3] < 14)
+ if (++gTasks[taskId].data[3] <= 13)
{
gTasks[gTasks[taskId].data[15]].data[1] = (s16)((gTasks[taskId].data[3]) | ((16 - gTasks[taskId].data[3]) << 8));
gTasks[taskId].data[4]++;
@@ -920,7 +919,6 @@ static void AnimTask_CreateSurfWave_Step1(u8 taskId)
}
}
-
static void AnimTask_CreateSurfWave_Step2(u8 taskId)
{
u16 *BGptrX = &gBattle_BG1_X;
@@ -1543,50 +1541,45 @@ static void AnimWaterPulseRing_Step(struct Sprite *sprite)
sprite->data[0]++;
}
-static void CreateWaterPulseRingBubbles(struct Sprite *sprite, s32 xDiff, s32 yDiff)
+static void CreateWaterPulseRingBubbles(struct Sprite *sprite, int xDiff, int yDiff)
{
- s16 combinedX, combinedY;
- s16 i, something;
+ s16 combinedX;
+ s16 combinedY;
+ s16 i;
+ s16 something;
s16 unusedVar = 1; //unusedVar is needed to match
- s16 somethingRandomX, somethingRandomY;
+ s16 randomSomethingY;
+ s16 randomSomethingX;
u8 spriteId;
-
+
something = sprite->data[0] / 2;
combinedX = sprite->pos1.x + sprite->pos2.x;
combinedY = sprite->pos1.y + sprite->pos2.y;
if (yDiff < 0)
- unusedVar *= -1; //Needed to Match
- somethingRandomY = yDiff + (Random2() % 10) - 5;
- somethingRandomX = -xDiff + (Random2() % 10) - 5;
+ unusedVar *= -1; //Needed to match
+ randomSomethingY = yDiff + (Random2() % 10) - 5;
+ randomSomethingX = -xDiff + (Random2() % 10) - 5;
- for (i = 0; i < 1; i++)
+ for (i = 0; i <= 0; i++)
{
spriteId = CreateSprite(&gWaterPulseRingBubbleSpriteTemplate, combinedX, combinedY + something, 130);
gSprites[spriteId].data[0] = 20;
- gSprites[spriteId].data[1] = somethingRandomY;
+ gSprites[spriteId].data[1] = randomSomethingY;
gSprites[spriteId].subpriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker) - 1;
- if (somethingRandomX < 0)
- {
- gSprites[spriteId].data[2] = -somethingRandomX;
- }
+ if (randomSomethingX < 0)
+ gSprites[spriteId].data[2] = -randomSomethingX;
else
- {
- gSprites[spriteId].data[2] = somethingRandomX;
- }
+ gSprites[spriteId].data[2] = randomSomethingX;
}
- for (i = 0; i < 1; i++)
+ for (i = 0; i <= 0; i++)
{
spriteId = CreateSprite(&gWaterPulseRingBubbleSpriteTemplate, combinedX, combinedY - something, 130);
gSprites[spriteId].data[0] = 20;
- gSprites[spriteId].data[1] = somethingRandomY;
+ gSprites[spriteId].data[1] = randomSomethingY;
gSprites[spriteId].subpriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker) - 1;
- if (somethingRandomX > 0)
- {
- gSprites[spriteId].data[2] = -somethingRandomX;
- }
+ if (randomSomethingX > 0)
+ gSprites[spriteId].data[2] = -randomSomethingX;
else
- {
- gSprites[spriteId].data[2] = somethingRandomX;
- }
+ gSprites[spriteId].data[2] = randomSomethingX;
}
}
diff --git a/src/battle_bg.c b/src/battle_bg.c
index 6a0e4c10c..7c9b05b25 100644
--- a/src/battle_bg.c
+++ b/src/battle_bg.c
@@ -1126,7 +1126,7 @@ void DrawBattleEntryBackground(void)
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
LZDecompressVram(gUnknown_08D778F0, (void*)(BG_CHAR_ADDR(1)));
- LZDecompressVram(gVsLettersGfx, (void*)(OBJ_VRAM0));
+ LZDecompressVram(gVsLettersGfx, (void*)(VRAM + 0x10000));
LoadCompressedPalette(gUnknown_08D77AE4, 0x60, 0x20);
SetBgAttribute(1, BG_ATTR_SCREENSIZE, 1);
SetGpuReg(REG_OFFSET_BG1CNT, 0x5C04);
diff --git a/src/battle_controllers.c b/src/battle_controllers.c
index 7f78c1ac9..3ebc5d3bd 100644
--- a/src/battle_controllers.c
+++ b/src/battle_controllers.c
@@ -13,7 +13,6 @@
#include "task.h"
#include "util.h"
#include "constants/abilities.h"
-#include "constants/species.h"
static EWRAM_DATA u8 sLinkSendTaskId = 0;
static EWRAM_DATA u8 sLinkReceiveTaskId = 0;
diff --git a/src/battle_dome.c b/src/battle_dome.c
index 2f6df5dca..ce2f3cde6 100644
--- a/src/battle_dome.c
+++ b/src/battle_dome.c
@@ -33,7 +33,6 @@
#include "graphics.h"
#include "constants/battle_dome.h"
#include "constants/frontier_util.h"
-#include "constants/species.h"
#include "constants/moves.h"
#include "constants/pokemon.h"
#include "constants/trainers.h"
@@ -2764,10 +2763,10 @@ static int GetTypeEffectivenessPoints(int move, int targetSpecies, int arg2)
// BUG: TYPE_x2 is not necessary and makes the condition always false if the ability is wonder guard.
if (TYPE_EFFECT_DEF_TYPE(i) == defType1)
if ((defAbility == ABILITY_WONDER_GUARD && TYPE_EFFECT_MULTIPLIER(i) == TYPE_x2) || defAbility != ABILITY_WONDER_GUARD)
- typePower = typePower * TYPE_EFFECT_MULTIPLIER(i) / 10;
+ typePower = (typePower * TYPE_EFFECT_MULTIPLIER(i)) / 10;
if (TYPE_EFFECT_DEF_TYPE(i) == defType2 && defType1 != defType2)
if ((defAbility == ABILITY_WONDER_GUARD && TYPE_EFFECT_MULTIPLIER(i) == TYPE_x2) || defAbility != ABILITY_WONDER_GUARD)
- typePower = typePower * TYPE_EFFECT_MULTIPLIER(i) / 10;
+ typePower = (typePower * TYPE_EFFECT_MULTIPLIER(i)) / 10;
}
i += 3;
}
@@ -2778,10 +2777,10 @@ static int GetTypeEffectivenessPoints(int move, int targetSpecies, int arg2)
case 0:
switch (typePower)
{
- default:
- case TYPE_x0:
- case TYPE_x0_25:
case TYPE_x0_50:
+ case TYPE_x0_25:
+ case TYPE_x0:
+ default:
typePower = 0;
break;
case TYPE_x1:
@@ -2798,19 +2797,19 @@ static int GetTypeEffectivenessPoints(int move, int targetSpecies, int arg2)
case 1:
switch (typePower)
{
- case TYPE_x0:
- typePower = 8;
+ default:
+ case TYPE_x1:
+ typePower = 0;
break;
case TYPE_x0_25:
typePower = 4;
break;
+ case TYPE_x0:
+ typePower = 8;
+ break;
case TYPE_x0_50:
typePower = 2;
break;
- default:
- case TYPE_x1:
- typePower = 0;
- break;
case TYPE_x2:
typePower = -2;
break;
@@ -2828,8 +2827,8 @@ static int GetTypeEffectivenessPoints(int move, int targetSpecies, int arg2)
case TYPE_x0_25:
typePower = -8;
break;
- default:
case TYPE_x0_50:
+ default:
typePower = 0;
break;
case TYPE_x1:
@@ -4305,7 +4304,7 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTourneyId)
textPrinter.currentY = textPrinter.y;
textPrinter.letterSpacing = 2;
textPrinter.lineSpacing = 0;
- textPrinter.style = 0;
+ textPrinter.unk = 0;
textPrinter.fgColor = TEXT_DYNAMIC_COLOR_5;
textPrinter.bgColor = TEXT_COLOR_TRANSPARENT;
textPrinter.shadowColor = TEXT_DYNAMIC_COLOR_4;
@@ -4838,7 +4837,7 @@ static void DisplayMatchInfoOnCard(u8 flags, u8 matchNo)
textPrinter.currentY = textPrinter.y;
textPrinter.letterSpacing = 0;
textPrinter.lineSpacing = 0;
- textPrinter.style = 0;
+ textPrinter.unk = 0;
textPrinter.fgColor = TEXT_DYNAMIC_COLOR_5;
textPrinter.bgColor = TEXT_COLOR_TRANSPARENT;
textPrinter.shadowColor = TEXT_DYNAMIC_COLOR_4;
@@ -5336,7 +5335,7 @@ static void Task_ShowTourneyTree(u8 taskId)
textPrinter.lineSpacing = 0;
textPrinter.currentX = GetStringCenterAlignXOffsetWithLetterSpacing(textPrinter.fontId, textPrinter.currentChar, 0x70, textPrinter.letterSpacing);
textPrinter.currentY = 1;
- textPrinter.style = 0;
+ textPrinter.unk = 0;
textPrinter.fgColor = TEXT_DYNAMIC_COLOR_5;
textPrinter.bgColor = TEXT_COLOR_TRANSPARENT;
textPrinter.shadowColor = TEXT_DYNAMIC_COLOR_4;
@@ -5517,7 +5516,7 @@ static void Task_HandleStaticTourneyTreeInput(u8 taskId)
textPrinter.y = 0;
textPrinter.letterSpacing = 2;
textPrinter.lineSpacing = 0;
- textPrinter.style = 0;
+ textPrinter.unk = 0;
textPrinter.fgColor = TEXT_DYNAMIC_COLOR_2;
textPrinter.bgColor = TEXT_COLOR_TRANSPARENT;
textPrinter.shadowColor = TEXT_DYNAMIC_COLOR_4;
diff --git a/src/battle_factory.c b/src/battle_factory.c
index 940e71f7d..a2b1d337a 100644
--- a/src/battle_factory.c
+++ b/src/battle_factory.c
@@ -8,7 +8,6 @@
#include "frontier_util.h"
#include "battle_tower.h"
#include "random.h"
-#include "constants/species.h"
#include "constants/battle_ai.h"
#include "constants/battle_factory.h"
#include "constants/battle_frontier.h"
@@ -208,7 +207,7 @@ static void InitFactoryChallenge(void)
for (i = 0; i < 6; i++)
gSaveBlock2Ptr->frontier.rentalMons[i].monId = 0xFFFF;
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
- gUnknown_03006298[i] = 0xFFFF;
+ gFrontierTempParty[i] = 0xFFFF;
SetDynamicWarp(0, gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum, -1);
gTrainerBattleOpponent_A = 0;
@@ -356,7 +355,7 @@ static void GenerateOpponentMons(void)
species[i] = gFacilityTrainerMons[monId].species;
heldItems[i] = gBattleFrontierHeldItems[gFacilityTrainerMons[monId].itemTableId];
- gUnknown_03006298[i] = monId;
+ gFrontierTempParty[i] = monId;
i++;
}
}
@@ -377,11 +376,11 @@ static void SetRentalsToOpponentParty(void)
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
{
- gSaveBlock2Ptr->frontier.rentalMons[i + 3].monId = gUnknown_03006298[i];
+ gSaveBlock2Ptr->frontier.rentalMons[i + 3].monId = gFrontierTempParty[i];
gSaveBlock2Ptr->frontier.rentalMons[i + 3].ivs = GetBoxMonData(&gEnemyParty[i].box, MON_DATA_ATK_IV, NULL);
gSaveBlock2Ptr->frontier.rentalMons[i + 3].personality = GetMonData(&gEnemyParty[i], MON_DATA_PERSONALITY, NULL);
gSaveBlock2Ptr->frontier.rentalMons[i + 3].abilityNum = GetBoxMonData(&gEnemyParty[i].box, MON_DATA_ABILITY_NUM, NULL);
- SetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[gUnknown_03006298[i]].itemTableId]);
+ SetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[gFrontierTempParty[i]].itemTableId]);
}
}
@@ -596,7 +595,7 @@ static void GetOpponentMostCommonMonType(void)
typesCount[i] = 0;
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
{
- u32 species = gFacilityTrainerMons[gUnknown_03006298[i]].species;
+ u32 species = gFacilityTrainerMons[gFrontierTempParty[i]].species;
typesCount[gBaseStats[species].type1]++;
if (gBaseStats[species].type1 != gBaseStats[species].type2)
@@ -632,7 +631,7 @@ static void GetOpponentBattleStyle(void)
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
{
- u16 monId = gUnknown_03006298[i];
+ u16 monId = gFrontierTempParty[i];
for (j = 0; j < MAX_MON_MOVES; j++)
{
u8 battleStyle = GetMoveBattleStyle(gFacilityTrainerMons[monId].moves[j]);
diff --git a/src/battle_factory_screen.c b/src/battle_factory_screen.c
index a3fa275c5..c10bbc5e4 100644
--- a/src/battle_factory_screen.c
+++ b/src/battle_factory_screen.c
@@ -1145,7 +1145,11 @@ static void CB2_InitSelectScreen(void)
LoadPalette(gFrontierFactorySelectMenu_Pal, 0, 0x40);
LoadPalette(gUnknown_0861046C, 0xF0, 8);
LoadPalette(gUnknown_0861046C, 0xE0, 10);
+ #if MODERN
+ if (sFactorySelectScreen && sFactorySelectScreen->fromSummaryScreen)
+ #else
if (sFactorySelectScreen->fromSummaryScreen == TRUE)
+ #endif
gPlttBufferUnfaded[228] = sFactorySelectScreen->unk2A4;
LoadPalette(gUnknown_0861039C, 0x20, 4);
gMain.state++;
@@ -1167,7 +1171,11 @@ static void CB2_InitSelectScreen(void)
SetVBlankCallback(Select_VblankCb);
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK);
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_OBJ_1D_MAP);
+ #if MODERN
+ if (sFactorySelectScreen && sFactorySelectScreen->fromSummaryScreen)
+ #else
if (sFactorySelectScreen->fromSummaryScreen == TRUE)
+ #endif
{
Select_SetWinRegs(88, 152, 32, 96);
ShowBg(3);
@@ -1181,7 +1189,11 @@ static void CB2_InitSelectScreen(void)
gMain.state++;
break;
case 5:
+ #if MODERN
+ if (sFactorySelectScreen && sFactorySelectScreen->fromSummaryScreen)
+ #else
if (sFactorySelectScreen->fromSummaryScreen == TRUE)
+ #endif
sFactorySelectScreen->cursorPos = gLastViewedMonIndex;
Select_InitMonsData();
Select_InitAllSprites();
@@ -3170,7 +3182,11 @@ static void CB2_InitSwapScreen(void)
gMain.state++;
break;
case 5:
+ #if MODERN
+ if (sFactorySwapScreen && sFactorySwapScreen->fromSummaryScreen)
+ #else
if (sFactorySwapScreen->fromSummaryScreen == TRUE)
+ #endif
sFactorySwapScreen->cursorPos = gLastViewedMonIndex;
gMain.state++;
break;
diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c
index 58b5d8228..c6db4ad42 100644
--- a/src/battle_gfx_sfx_util.c
+++ b/src/battle_gfx_sfx_util.c
@@ -18,7 +18,6 @@
#include "sound.h"
#include "party_menu.h"
#include "m4a.h"
-#include "constants/species.h"
#include "decompress.h"
#include "data.h"
#include "palette.h"
@@ -1012,12 +1011,15 @@ void BattleLoadSubstituteOrMonSpriteGfx(u8 battlerId, bool8 loadMonSprite)
palOffset = (battlerId * 16) + 0x100;
LoadCompressedPalette(gSubstituteDollPal, palOffset, 32);
}
- else if (!IsContest())
+ else
{
- if (GetBattlerSide(battlerId) != B_SIDE_PLAYER)
- BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[battlerId]], battlerId);
- else
- BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[battlerId]], battlerId);
+ if (!IsContest())
+ {
+ if (GetBattlerSide(battlerId) != B_SIDE_PLAYER)
+ BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlerPartyIndexes[battlerId]], battlerId);
+ else
+ BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlerPartyIndexes[battlerId]], battlerId);
+ }
}
}
diff --git a/src/battle_interface.c b/src/battle_interface.c
index 719af6a06..adbef019d 100644
--- a/src/battle_interface.c
+++ b/src/battle_interface.c
@@ -15,7 +15,6 @@
#include "util.h"
#include "gpu_regs.h"
#include "battle_message.h"
-#include "constants/species.h"
#include "pokedex.h"
#include "palette.h"
#include "international_string_util.h"
diff --git a/src/battle_main.c b/src/battle_main.c
index f0fedbd13..5bc80f61e 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -58,7 +58,6 @@
#include "constants/party_menu.h"
#include "constants/rgb.h"
#include "constants/songs.h"
-#include "constants/species.h"
#include "constants/trainers.h"
#include "cable_club.h"
@@ -128,7 +127,6 @@ static void HandleEndTurn_RanFromBattle(void);
static void HandleEndTurn_MonFled(void);
static void HandleEndTurn_FinishBattle(void);
-
// EWRAM vars
EWRAM_DATA u16 gBattle_BG0_X = 0;
EWRAM_DATA u16 gBattle_BG0_Y = 0;
@@ -634,16 +632,19 @@ static void CB2_InitBattleInternal(void)
gBattle_WIN0V = 0x5051;
ScanlineEffect_Clear();
- for (i = 0; i < 80; i++)
+ i = 0;
+ while (i < 80)
{
gScanlineEffectRegBuffers[0][i] = 0xF0;
gScanlineEffectRegBuffers[1][i] = 0xF0;
+ i++;
}
- for (; i < 160; i++)
+ while (i < 160)
{
gScanlineEffectRegBuffers[0][i] = 0xFF10;
gScanlineEffectRegBuffers[1][i] = 0xFF10;
+ i++;
}
ScanlineEffect_SetParams(sIntroScanlineParams16Bit);
@@ -770,7 +771,8 @@ static void SetPlayerBerryDataInBattleStruct(void)
static void SetAllPlayersBerryData(void)
{
- s32 i, j;
+ s32 i;
+ s32 j;
if (!(gBattleTypeFlags & BATTLE_TYPE_LINK))
{
@@ -2686,7 +2688,8 @@ static void sub_80398BC(struct Sprite *sprite) // unused?
static void sub_80398D0(struct Sprite *sprite)
{
- if (--sprite->data[4] == 0)
+ sprite->data[4]--;
+ if (sprite->data[4] == 0)
{
sprite->data[4] = 8;
sprite->invisible ^= 1;
@@ -3417,13 +3420,17 @@ static void BattleIntroDrawTrainersOrMonsSprites(void)
}
}
- if ((gBattleTypeFlags & BATTLE_TYPE_MULTI) && (GetBattlerPosition(gActiveBattler) == B_POSITION_PLAYER_RIGHT || GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_RIGHT))
+ if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
{
- BtlController_EmitDrawTrainerPic(0);
- MarkBattlerForControllerExec(gActiveBattler);
+ if (GetBattlerPosition(gActiveBattler) == B_POSITION_PLAYER_RIGHT
+ || GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_RIGHT)
+ {
+ BtlController_EmitDrawTrainerPic(0);
+ MarkBattlerForControllerExec(gActiveBattler);
+ }
}
- if ((gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) && (GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_RIGHT))
+ if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS && GetBattlerPosition(gActiveBattler) == B_POSITION_OPPONENT_RIGHT)
{
BtlController_EmitDrawTrainerPic(0);
MarkBattlerForControllerExec(gActiveBattler);
@@ -3530,7 +3537,7 @@ static void BattleIntroPrintWildMonAttacked(void)
static void BattleIntroPrintOpponentSendsOut(void)
{
- u8 position;
+ u32 position;
if (gBattleControllerExecFlags)
return;
@@ -3553,7 +3560,7 @@ static void BattleIntroPrintOpponentSendsOut(void)
static void BattleIntroOpponent2SendsOutMonAnimation(void)
{
- u8 position;
+ u32 position;
if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED))
position = B_POSITION_OPPONENT_RIGHT;
@@ -3581,7 +3588,7 @@ static void BattleIntroOpponent2SendsOutMonAnimation(void)
static void BattleIntroOpponent1SendsOutMonAnimation(void)
{
- u8 position;
+ u32 position;
if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
{
@@ -3596,9 +3603,7 @@ static void BattleIntroOpponent1SendsOutMonAnimation(void)
position = B_POSITION_OPPONENT_LEFT;
}
else
- {
position = B_POSITION_OPPONENT_LEFT;
- }
if (gBattleControllerExecFlags)
return;
@@ -3640,7 +3645,7 @@ static void BattleIntroRecordMonsToDex(void)
}
}
-static void sub_803B3AC(void) // unused
+void sub_803B3AC(void) // unused
{
if (gBattleControllerExecFlags == 0)
gBattleMainFunc = BattleIntroPrintPlayerSendsOut;
@@ -3673,7 +3678,7 @@ static void BattleIntroPrintPlayerSendsOut(void)
static void BattleIntroPlayer2SendsOutMonAnimation(void)
{
- u8 position;
+ u32 position;
if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED))
position = B_POSITION_PLAYER_RIGHT;
@@ -3705,7 +3710,7 @@ static void BattleIntroPlayer2SendsOutMonAnimation(void)
static void BattleIntroPlayer1SendsOutMonAnimation(void)
{
- u8 position;
+ u32 position;
if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED))
position = B_POSITION_PLAYER_LEFT;
@@ -3743,7 +3748,7 @@ static void BattleIntroPlayer1SendsOutMonAnimation(void)
gBattleMainFunc = TryDoEventsBeforeFirstTurn;
}
-static void sub_803B598(void) // unused
+void sub_803B598(void) // unused
{
if (gBattleControllerExecFlags == 0)
{
@@ -3766,7 +3771,8 @@ static void sub_803B598(void) // unused
static void TryDoEventsBeforeFirstTurn(void)
{
- s32 i, j;
+ s32 i;
+ s32 j;
u8 effect = 0;
if (gBattleControllerExecFlags)
@@ -3956,7 +3962,11 @@ u8 IsRunningFromBattleImpossible(void)
gPotentialItemEffectBattler = gActiveBattler;
- if ((holdEffect == HOLD_EFFECT_CAN_ALWAYS_RUN) || (gBattleTypeFlags & BATTLE_TYPE_LINK) || (gBattleMons[gActiveBattler].ability == ABILITY_RUN_AWAY))
+ if (holdEffect == HOLD_EFFECT_CAN_ALWAYS_RUN)
+ return 0;
+ if (gBattleTypeFlags & BATTLE_TYPE_LINK)
+ return 0;
+ if (gBattleMons[gActiveBattler].ability == ABILITY_RUN_AWAY)
return 0;
side = GetBattlerSide(gActiveBattler);
@@ -4733,38 +4743,40 @@ static void SetActionsAndBattlersTurnOrder(void)
gBattleStruct->focusPunchBattlerId = 0;
return;
}
- for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
+ else
{
- if (gChosenActionByBattler[gActiveBattler] == B_ACTION_USE_ITEM || gChosenActionByBattler[gActiveBattler] == B_ACTION_SWITCH)
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
{
- gActionsByTurnOrder[turnOrderId] = gChosenActionByBattler[gActiveBattler];
- gBattlerByTurnOrder[turnOrderId] = gActiveBattler;
- turnOrderId++;
+ if (gChosenActionByBattler[gActiveBattler] == B_ACTION_USE_ITEM || gChosenActionByBattler[gActiveBattler] == B_ACTION_SWITCH)
+ {
+ gActionsByTurnOrder[turnOrderId] = gChosenActionByBattler[gActiveBattler];
+ gBattlerByTurnOrder[turnOrderId] = gActiveBattler;
+ turnOrderId++;
+ }
}
- }
- for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
- {
- if (gChosenActionByBattler[gActiveBattler] != B_ACTION_USE_ITEM && gChosenActionByBattler[gActiveBattler] != B_ACTION_SWITCH)
+ for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
{
- gActionsByTurnOrder[turnOrderId] = gChosenActionByBattler[gActiveBattler];
- gBattlerByTurnOrder[turnOrderId] = gActiveBattler;
- turnOrderId++;
+ if (gChosenActionByBattler[gActiveBattler] != B_ACTION_USE_ITEM && gChosenActionByBattler[gActiveBattler] != B_ACTION_SWITCH)
+ {
+ gActionsByTurnOrder[turnOrderId] = gChosenActionByBattler[gActiveBattler];
+ gBattlerByTurnOrder[turnOrderId] = gActiveBattler;
+ turnOrderId++;
+ }
}
- }
- for (i = 0; i < gBattlersCount - 1; i++)
- {
- for (j = i + 1; j < gBattlersCount; j++)
+ for (i = 0; i < gBattlersCount - 1; i++)
{
- u8 battler1 = gBattlerByTurnOrder[i];
- u8 battler2 = gBattlerByTurnOrder[j];
-
- if (gActionsByTurnOrder[i] != B_ACTION_USE_ITEM
- && gActionsByTurnOrder[j] != B_ACTION_USE_ITEM
- && gActionsByTurnOrder[i] != B_ACTION_SWITCH
- && gActionsByTurnOrder[j] != B_ACTION_SWITCH)
+ for (j = i + 1; j < gBattlersCount; j++)
{
- if (GetWhoStrikesFirst(battler1, battler2, FALSE))
- SwapTurnOrder(i, j);
+ u8 battler1 = gBattlerByTurnOrder[i];
+ u8 battler2 = gBattlerByTurnOrder[j];
+ if (gActionsByTurnOrder[i] != B_ACTION_USE_ITEM
+ && gActionsByTurnOrder[j] != B_ACTION_USE_ITEM
+ && gActionsByTurnOrder[i] != B_ACTION_SWITCH
+ && gActionsByTurnOrder[j] != B_ACTION_SWITCH)
+ {
+ if (GetWhoStrikesFirst(battler1, battler2, FALSE))
+ SwapTurnOrder(i, j);
+ }
}
}
}
@@ -4842,8 +4854,8 @@ static void CheckFocusPunch_ClearVarsBeforeTurnStarts(void)
}
TryClearRageStatuses();
- gCurrentTurnActionNumber = 0; //See comment underneath
- gCurrentActionFuncId = gActionsByTurnOrder[gCurrentTurnActionNumber]; //Should be gActionsByTurnOrder[(gCurrentTurnActionNumber = 0)], but that doesn't match
+ gCurrentTurnActionNumber = 0;
+ gCurrentActionFuncId = gActionsByTurnOrder[gCurrentTurnActionNumber];
gDynamicBasePower = 0;
gBattleStruct->dynamicMoveType = 0;
gBattleMainFunc = RunTurnActionsFunctions;
@@ -4866,10 +4878,13 @@ static void RunTurnActionsFunctions(void)
gHitMarker &= ~(HITMARKER_x100000);
gBattleMainFunc = sEndTurnFuncsTable[gBattleOutcome & 0x7F];
}
- else if (gBattleStruct->savedTurnActionNumber != gCurrentTurnActionNumber) // action turn has been done, clear hitmarker bits for another battlerId
+ else
{
- gHitMarker &= ~(HITMARKER_NO_ATTACKSTRING);
- gHitMarker &= ~(HITMARKER_UNABLE_TO_USE_MOVE);
+ if (gBattleStruct->savedTurnActionNumber != gCurrentTurnActionNumber) // action turn has been done, clear hitmarker bits for another battlerId
+ {
+ gHitMarker &= ~(HITMARKER_NO_ATTACKSTRING);
+ gHitMarker &= ~(HITMARKER_UNABLE_TO_USE_MOVE);
+ }
}
}
@@ -4986,15 +5001,15 @@ static void HandleEndTurn_RanFromBattle(void)
{
switch (gProtectStructs[gBattlerAttacker].fleeFlag)
{
+ default:
+ gBattlescriptCurrInstr = BattleScript_GotAwaySafely;
+ break;
case 1:
gBattlescriptCurrInstr = BattleScript_SmokeBallEscape;
break;
case 2:
gBattlescriptCurrInstr = BattleScript_RanAwayUsingMonAbility;
break;
- default:
- gBattlescriptCurrInstr = BattleScript_GotAwaySafely;
- break;
}
}
@@ -5078,7 +5093,10 @@ static void FreeResetData_ReturnToOvOrDoEvolutions(void)
gBattleMainFunc = ReturnFromBattleToOverworld;
return;
}
- gBattleMainFunc = TryEvolvePokemon;
+ else
+ {
+ gBattleMainFunc = TryEvolvePokemon;
+ }
}
FreeAllWindowBuffers();
@@ -5173,4 +5191,3 @@ void RunBattleScriptCommands(void)
if (gBattleControllerExecFlags == 0)
gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]]();
}
-
diff --git a/src/battle_message.c b/src/battle_message.c
index ee1616b5e..e6c1666fc 100644
--- a/src/battle_message.c
+++ b/src/battle_message.c
@@ -2994,7 +2994,7 @@ void BattlePutTextOnWindow(const u8 *text, u8 windowId)
printerTemplate.currentY = printerTemplate.y;
printerTemplate.letterSpacing = textInfo[windowId].letterSpacing;
printerTemplate.lineSpacing = textInfo[windowId].lineSpacing;
- printerTemplate.style = 0;
+ printerTemplate.unk = 0;
printerTemplate.fgColor = textInfo[windowId].fgColor;
printerTemplate.bgColor = textInfo[windowId].bgColor;
printerTemplate.shadowColor = textInfo[windowId].shadowColor;
diff --git a/src/battle_pike.c b/src/battle_pike.c
index 6b31419a5..a161b88b8 100644
--- a/src/battle_pike.c
+++ b/src/battle_pike.c
@@ -21,7 +21,6 @@
#include "constants/layouts.h"
#include "constants/rgb.h"
#include "constants/trainers.h"
-#include "constants/species.h"
#include "constants/moves.h"
#include "constants/party_menu.h"
#include "constants/battle_pike.h"
diff --git a/src/battle_pyramid.c b/src/battle_pyramid.c
index 9e881d3a3..1b220f145 100644
--- a/src/battle_pyramid.c
+++ b/src/battle_pyramid.c
@@ -35,7 +35,6 @@
#include "constants/layouts.h"
#include "constants/maps.h"
#include "constants/moves.h"
-#include "constants/species.h"
#include "constants/trainers.h"
extern const struct MapLayout *const gMapLayouts[];
@@ -523,19 +522,6 @@ static const u8 sTrainerTextGroups[50][2] =
{FACILITY_CLASS_HIKER, 4},
};
-enum
-{
- HINT_EXIT_DIRECTION,
- HINT_REMAINING_ITEMS,
- HINT_REMAINING_TRAINERS,
- HINT_EXIT_SHORT_REMAINING_TRAINERS,
- HINT_EXIT_SHORT_REMAINING_ITEMS,
- HINT_EXIT_MEDIUM_REMAINING_TRAINERS,
- HINT_EXIT_MEDIUM_REMAINING_ITEMS,
- HINT_EXIT_FAR_REMAINING_TRAINERS,
- HINT_EXIT_FAR_REMAINING_ITEMS,
-};
-
static const u8 *const sExitDirectionHintTexts1[] =
{
BattlePyramid_Text_ExitHintUp1,
diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c
index 14866bbca..46ad706d7 100644
--- a/src/battle_script_commands.c
+++ b/src/battle_script_commands.c
@@ -16,7 +16,6 @@
#include "random.h"
#include "battle_controllers.h"
#include "battle_interface.h"
-#include "constants/species.h"
#include "constants/songs.h"
#include "constants/trainers.h"
#include "constants/battle_anim.h"
@@ -3519,7 +3518,7 @@ static void Cmd_unknown_24(void)
if (HP_count == 0)
gBattleOutcome |= B_OUTCOME_LOST;
-
+
HP_count = 0;
for (i = 0; i < PARTY_SIZE; i++)
@@ -3536,14 +3535,17 @@ static void Cmd_unknown_24(void)
if (gBattleOutcome == 0 && (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)))
{
- s32 foundPlayer = 0, foundOpponent;
+ s32 foundPlayer = 0;
+ s32 foundOpponent;
+
for (i = 0; i < gBattlersCount; i += 2)
{
if ((gHitMarker & HITMARKER_FAINTED2(i)) && (!gSpecialStatuses[i].flag40))
foundPlayer++;
}
-
+
foundOpponent = 0;
+
for (i = 1; i < gBattlersCount; i += 2)
{
if ((gHitMarker & HITMARKER_FAINTED2(i)) && (!gSpecialStatuses[i].flag40))
@@ -3553,14 +3555,14 @@ static void Cmd_unknown_24(void)
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
{
if (foundOpponent + foundPlayer > 1)
- gBattlescriptCurrInstr = (u8*) T2_READ_32(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T2_READ_PTR(gBattlescriptCurrInstr + 1);
else
gBattlescriptCurrInstr += 5;
}
else
{
if (foundOpponent != 0 && foundPlayer != 0)
- gBattlescriptCurrInstr = (u8*) T2_READ_32(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T2_READ_PTR(gBattlescriptCurrInstr + 1);
else
gBattlescriptCurrInstr += 5;
}
@@ -4661,10 +4663,8 @@ static void Cmd_jumpifcantswitch(void)
|| (gStatuses3[gActiveBattler] & STATUS3_ROOTED)))
{
gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2);
- return;
}
-
- if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)
+ else if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER)
{
if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT)
party = gEnemyParty;
@@ -5529,8 +5529,8 @@ static void Cmd_hitanimation(void)
static u32 GetTrainerMoneyToGive(u16 trainerId)
{
u32 i = 0;
+ u32 lastMonLevel = 0;
u32 moneyReward;
- u8 lastMonLevel = 0;
if (trainerId == TRAINER_SECRET_BASE)
{
@@ -6030,7 +6030,7 @@ static void PutLevelAndGenderOnLvlUpBox(void)
printerTemplate.currentY = 0;
printerTemplate.letterSpacing = 0;
printerTemplate.lineSpacing = 0;
- printerTemplate.style = 0;
+ printerTemplate.unk = 0;
printerTemplate.fgColor = TEXT_COLOR_WHITE;
printerTemplate.bgColor = TEXT_COLOR_TRANSPARENT;
printerTemplate.shadowColor = TEXT_COLOR_DARK_GREY;
@@ -7121,6 +7121,7 @@ static void Cmd_forcerandomswitch(void)
s32 i;
s32 battler1PartyId = 0;
s32 battler2PartyId = 0;
+
s32 firstMonId;
s32 lastMonId = 0; // + 1
s32 monsCount;
@@ -7242,10 +7243,11 @@ static void Cmd_forcerandomswitch(void)
{
i = Random() % monsCount;
i += firstMonId;
- } while (i == battler2PartyId || i == battler1PartyId);
+ }
+ while (i == battler2PartyId || i == battler1PartyId);
} while (GetMonData(&party[i], MON_DATA_SPECIES) == SPECIES_NONE
|| GetMonData(&party[i], MON_DATA_IS_EGG) == TRUE
- || GetMonData(&party[i], MON_DATA_HP) == 0); // Should be one while loop, conjoined by an ||, but that doesn't match. Equivalent logic though
+ || GetMonData(&party[i], MON_DATA_HP) == 0); //should be one while loop, but that doesn't match.
}
*(gBattleStruct->monToSwitchIntoId + gBattlerTarget) = i;
diff --git a/src/battle_setup.c b/src/battle_setup.c
index 8b02e1f42..40b5993f0 100644
--- a/src/battle_setup.c
+++ b/src/battle_setup.c
@@ -44,7 +44,6 @@
#include "constants/songs.h"
#include "constants/map_types.h"
#include "constants/maps.h"
-#include "constants/species.h"
#include "constants/trainers.h"
#include "constants/trainer_hill.h"
diff --git a/src/battle_tent.c b/src/battle_tent.c
index 250e2d8ee..26b2e8bb1 100644
--- a/src/battle_tent.c
+++ b/src/battle_tent.c
@@ -17,7 +17,6 @@
#include "constants/items.h"
#include "constants/layouts.h"
#include "constants/region_map_sections.h"
-#include "constants/species.h"
#include "constants/trainers.h"
// This file's functions.
@@ -418,7 +417,7 @@ static void GenerateOpponentMons(void)
species[i] = gFacilityTrainerMons[sRandMonSetId].species;
heldItems[i] = gBattleFrontierHeldItems[gFacilityTrainerMons[sRandMonSetId].itemTableId];
- gUnknown_03006298[i] = sRandMonSetId;
+ gFrontierTempParty[i] = sRandMonSetId;
i++;
}
}
diff --git a/src/battle_tower.c b/src/battle_tower.c
index e0ff3fe26..6fc0cd5be 100644
--- a/src/battle_tower.c
+++ b/src/battle_tower.c
@@ -35,7 +35,6 @@
#include "constants/trainers.h"
#include "constants/event_objects.h"
#include "constants/moves.h"
-#include "constants/species.h"
#include "constants/easy_chat.h"
#include "constants/tv.h"
@@ -47,7 +46,7 @@ EWRAM_DATA const struct BattleFrontierTrainer *gFacilityTrainers = NULL;
EWRAM_DATA const struct FacilityMon *gFacilityTrainerMons = NULL;
// IWRAM common
-u16 gUnknown_03006298[MAX_FRONTIER_PARTY_SIZE];
+u16 gFrontierTempParty[MAX_FRONTIER_PARTY_SIZE];
// This file's functions.
static void InitTowerChallenge(void);
@@ -1000,7 +999,7 @@ static bool8 ChooseSpecialBattleTowerTrainer(void)
return FALSE;
winStreak = GetCurrentBattleTowerWinStreak(lvlMode, battleMode);
- for (i = 0; i < 5; i++)
+ for (i = 0; i < BATTLE_TOWER_RECORD_COUNT; i++)
{
u32 *record = (u32*)(&gSaveBlock2Ptr->frontier.towerRecords[i]);
u32 recordHasData = 0;
@@ -1011,7 +1010,7 @@ static bool8 ChooseSpecialBattleTowerTrainer(void)
checksum += record[j];
}
validMons = 0;
- for (j = 0; j < 4; j++)
+ for (j = 0; j < MAX_FRONTIER_PARTY_SIZE; j++)
{
if (gSaveBlock2Ptr->frontier.towerRecords[i].party[j].species != 0
&& gSaveBlock2Ptr->frontier.towerRecords[i].party[j].level <= GetFrontierEnemyMonLevel(lvlMode))
@@ -1325,7 +1324,7 @@ void PutNewBattleTowerRecord(struct EmeraldBattleTowerRecord *newRecordEm)
struct EmeraldBattleTowerRecord *newRecord = newRecordEm; // Needed to match.
// Find a record slot of the same player and replace it.
- for (i = 0; i < 5; i++)
+ for (i = 0; i < BATTLE_TOWER_RECORD_COUNT; i++)
{
k = 0;
for (j = 0; j < TRAINER_ID_LENGTH; j++)
@@ -1351,19 +1350,19 @@ void PutNewBattleTowerRecord(struct EmeraldBattleTowerRecord *newRecordEm)
if (k == PLAYER_NAME_LENGTH)
break;
}
- if (i < 5)
+ if (i < BATTLE_TOWER_RECORD_COUNT)
{
gSaveBlock2Ptr->frontier.towerRecords[i] = *newRecord;
return;
}
// Find an empty record slot.
- for (i = 0; i < 5; i++)
+ for (i = 0; i < BATTLE_TOWER_RECORD_COUNT; i++)
{
if (gSaveBlock2Ptr->frontier.towerRecords[i].winStreak == 0)
break;
}
- if (i < 5)
+ if (i < BATTLE_TOWER_RECORD_COUNT)
{
gSaveBlock2Ptr->frontier.towerRecords[i] = *newRecord;
return;
@@ -1374,7 +1373,7 @@ void PutNewBattleTowerRecord(struct EmeraldBattleTowerRecord *newRecordEm)
slotIds[0] = 0;
slotsCount++;
- for (i = 1; i < 5; i++)
+ for (i = 1; i < BATTLE_TOWER_RECORD_COUNT; i++)
{
for (j = 0; j < slotsCount; j++)
{
@@ -1447,7 +1446,7 @@ u8 GetFrontierOpponentClass(u16 trainerId)
}
else if (trainerId == TRAINER_FRONTIER_BRAIN)
{
- return GetFrontierBrainTrainerClass(); // This sticks out like a sore thumb, but this is the only other way that matches. Maybe it SHOULD be assigned to ret, or all early returns. I don't know.
+ return GetFrontierBrainTrainerClass();
}
else if (trainerId == TRAINER_STEVEN_PARTNER)
{
@@ -1857,7 +1856,7 @@ static void FillFactoryFrontierTrainerParty(u16 trainerId, u8 firstMonId)
otID = T1_READ_32(gSaveBlock2Ptr->playerTrainerId);
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
{
- u16 monId = gUnknown_03006298[i];
+ u16 monId = gFrontierTempParty[i];
CreateMonWithEVSpreadNatureOTID(&gEnemyParty[firstMonId + i],
gFacilityTrainerMons[monId].species,
level,
@@ -1885,7 +1884,7 @@ static void FillFactoryTentTrainerParty(u16 trainerId, u8 firstMonId)
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
{
- u16 monId = gUnknown_03006298[i];
+ u16 monId = gFrontierTempParty[i];
CreateMonWithEVSpreadNatureOTID(&gEnemyParty[firstMonId + i],
gFacilityTrainerMons[monId].species,
level,
@@ -2225,11 +2224,11 @@ static void GetApprenticeMultiPartnerParty(u16 trainerId)
}
}
- gUnknown_03006298[0] = validSpecies[Random() % count];
+ gFrontierTempParty[0] = validSpecies[Random() % count];
do
{
- gUnknown_03006298[1] = validSpecies[Random() % count];
- } while (gUnknown_03006298[0] == gUnknown_03006298[1]);
+ gFrontierTempParty[1] = validSpecies[Random() % count];
+ } while (gFrontierTempParty[0] == gFrontierTempParty[1]);
}
static void GetRecordMixFriendMultiPartnerParty(u16 trainerId)
@@ -2241,7 +2240,7 @@ static void GetRecordMixFriendMultiPartnerParty(u16 trainerId)
u16 species2 = GetMonData(&gPlayerParty[1], MON_DATA_SPECIES, NULL);
count = 0;
- for (i = 0; i < 4; i++)
+ for (i = 0; i < MAX_FRONTIER_PARTY_SIZE; i++)
{
if (gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].party[i].species != species1
&& gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].party[i].species != species2
@@ -2253,11 +2252,11 @@ static void GetRecordMixFriendMultiPartnerParty(u16 trainerId)
}
}
- gUnknown_03006298[2] = validSpecies[Random() % count];
+ gFrontierTempParty[2] = validSpecies[Random() % count];
do
{
- gUnknown_03006298[3] = validSpecies[Random() % count];
- } while (gUnknown_03006298[2] == gUnknown_03006298[3]);
+ gFrontierTempParty[3] = validSpecies[Random() % count];
+ } while (gFrontierTempParty[2] == gFrontierTempParty[3]);
}
static void LoadMultiPartnerCandidatesData(void)
@@ -2363,7 +2362,7 @@ static void LoadMultiPartnerCandidatesData(void)
}
r10 = 0;
- for (i = 0; i < 5; i++)
+ for (i = 0; i < BATTLE_TOWER_RECORD_COUNT; i++)
{
u32 *record = (u32*)(&gSaveBlock2Ptr->frontier.towerRecords[i]);
u32 recordHasData = 0;
@@ -2380,7 +2379,7 @@ static void LoadMultiPartnerCandidatesData(void)
&& gSaveBlock2Ptr->frontier.towerRecords[i].checksum == checksum)
{
k = 0;
- for (j = 0; j < 4; j++)
+ for (j = 0; j < MAX_FRONTIER_PARTY_SIZE; j++)
{
if (species1 != gSaveBlock2Ptr->frontier.towerRecords[i].party[j].species
&& species2 != gSaveBlock2Ptr->frontier.towerRecords[i].party[j].species
@@ -2421,15 +2420,15 @@ static void sub_81646BC(u16 trainerId, u16 monId)
}
else if (trainerId < TRAINER_RECORD_MIXING_APPRENTICE)
{
- move = gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].party[gUnknown_03006298[gSpecialVar_0x8005 + 1]].moves[0];
- species = gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].party[gUnknown_03006298[gSpecialVar_0x8005 + 1]].species;
+ move = gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].party[gFrontierTempParty[gSpecialVar_0x8005 + 1]].moves[0];
+ species = gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].party[gFrontierTempParty[gSpecialVar_0x8005 + 1]].species;
}
else
{
s32 i;
- move = gSaveBlock2Ptr->apprentices[trainerId - TRAINER_RECORD_MIXING_APPRENTICE].party[gUnknown_03006298[gSpecialVar_0x8005 - 1]].moves[0];
- species = gSaveBlock2Ptr->apprentices[trainerId - TRAINER_RECORD_MIXING_APPRENTICE].party[gUnknown_03006298[gSpecialVar_0x8005 - 1]].species;
+ move = gSaveBlock2Ptr->apprentices[trainerId - TRAINER_RECORD_MIXING_APPRENTICE].party[gFrontierTempParty[gSpecialVar_0x8005 - 1]].moves[0];
+ species = gSaveBlock2Ptr->apprentices[trainerId - TRAINER_RECORD_MIXING_APPRENTICE].party[gFrontierTempParty[gSpecialVar_0x8005 - 1]].species;
for (i = 0; i < PLAYER_NAME_LENGTH; i++)
gStringVar3[i] = gSaveBlock2Ptr->apprentices[trainerId - TRAINER_RECORD_MIXING_APPRENTICE].playerName[i];
gStringVar3[i] = EOS;
@@ -2498,13 +2497,13 @@ static void ShowPartnerCandidateMessage(void)
}
else if (trainerId < TRAINER_RECORD_MIXING_APPRENTICE)
{
- gSaveBlock2Ptr->frontier.trainerIds[18] = gUnknown_03006298[2];
- gSaveBlock2Ptr->frontier.trainerIds[19] = gUnknown_03006298[3];
+ gSaveBlock2Ptr->frontier.trainerIds[18] = gFrontierTempParty[2];
+ gSaveBlock2Ptr->frontier.trainerIds[19] = gFrontierTempParty[3];
}
else
{
- gSaveBlock2Ptr->frontier.trainerIds[18] = gUnknown_03006298[0];
- gSaveBlock2Ptr->frontier.trainerIds[19] = gUnknown_03006298[1];
+ gSaveBlock2Ptr->frontier.trainerIds[18] = gFrontierTempParty[0];
+ gSaveBlock2Ptr->frontier.trainerIds[19] = gFrontierTempParty[1];
}
for (k = 0; k < 14; k++)
{
@@ -2683,7 +2682,7 @@ static void ValidateBattleTowerRecordChecksums(void)
if (gSaveBlock2Ptr->frontier.towerPlayer.checksum != checksum)
ClearBattleTowerRecord(&gSaveBlock2Ptr->frontier.towerPlayer);
- for (i = 0; i < 5; i++)
+ for (i = 0; i < BATTLE_TOWER_RECORD_COUNT; i++)
{
record = (u32*)(&gSaveBlock2Ptr->frontier.towerRecords[i]);
checksum = 0;
diff --git a/src/battle_transition.c b/src/battle_transition.c
index 43a90ac98..74e1548e7 100644
--- a/src/battle_transition.c
+++ b/src/battle_transition.c
@@ -3970,7 +3970,7 @@ static bool8 Phase2_FrontierLogoWave_Func4(struct Task *task)
for (i = 0; i < 160; i++, var6 += var8)
{
- const u16 index = var6 >> 8;
+ s16 index = var6 / 256;
gScanlineEffectRegBuffers[0][i] = sTransitionStructPtr->field_16 + Sin(index & 0xff, amplitude);
}
diff --git a/src/battle_tv.c b/src/battle_tv.c
index e3dec9a6c..7e311fdab 100644
--- a/src/battle_tv.c
+++ b/src/battle_tv.c
@@ -6,7 +6,6 @@
#include "constants/battle_string_ids.h"
#include "constants/battle_anim.h"
#include "constants/moves.h"
-#include "constants/species.h"
#include "battle_message.h"
#include "tv.h"
@@ -715,15 +714,16 @@ void BattleTv_SetDataBasedOnAnimation(u8 animationId)
void TryPutLinkBattleTvShowOnAir(void)
{
- u16 playerBestSpecies = 0, opponentBestSpecies = 0, moveId = 0;
- s16 sum = 0, playerBestSum = 0, opponentBestSum = SHRT_MAX;
+ u16 playerBestSpecies = 0, opponentBestSpecies = 0;
+ s16 playerBestSum = 0, opponentBestSum = SHRT_MAX;
u8 playerBestMonId = 0, opponentBestMonId = 0;
struct BattleTvMovePoints *movePoints = NULL;
u8 countPlayer = 0, countOpponent = 0;
- u16 species;
+ s16 sum = 0;
+ u16 species = 0;
+ u16 moveId = 0;
s32 i, j;
-
- int zero = 0, one = 1; // stupid variables needed to match. Feel free to get rid of them.
+ int zero = 0, one = 1; //needed for matching
if (gBattleStruct->anyMonHasTransformed)
return;
diff --git a/src/battle_util.c b/src/battle_util.c
index eb3907157..7025f0e3f 100644
--- a/src/battle_util.c
+++ b/src/battle_util.c
@@ -1,19 +1,31 @@
#include "global.h"
#include "battle.h"
-#include "battle_util.h"
#include "battle_anim.h"
+#include "battle_arena.h"
+#include "battle_pyramid.h"
+#include "battle_util.h"
#include "pokemon.h"
+#include "international_string_util.h"
#include "item.h"
#include "util.h"
#include "battle_scripts.h"
#include "random.h"
+#include "text.h"
+#include "safari_zone.h"
+#include "sound.h"
+#include "sprite.h"
#include "string_util.h"
+#include "task.h"
+#include "trig.h"
+#include "window.h"
+#include "battle_message.h"
#include "battle_ai_script_commands.h"
#include "battle_controllers.h"
#include "event_data.h"
#include "link.h"
#include "field_weather.h"
#include "constants/abilities.h"
+#include "constants/battle_anim.h"
#include "constants/battle_move_effects.h"
#include "constants/battle_script_commands.h"
#include "constants/battle_string_ids.h"
@@ -21,17 +33,16 @@
#include "constants/hold_effects.h"
#include "constants/items.h"
#include "constants/moves.h"
+#include "constants/songs.h"
#include "constants/species.h"
#include "constants/weather.h"
-#include "battle_arena.h"
-#include "battle_pyramid.h"
-#include "international_string_util.h"
-#include "safari_zone.h"
-#include "sound.h"
-#include "task.h"
-#include "trig.h"
-#include "window.h"
-#include "constants/songs.h"
+
+/*
+NOTE: The data and functions in this file up until (but not including) sSoundMovesTable
+are actually part of battle_main.c. They needed to be moved to this file in order to
+match the ROM; this is also why sSoundMovesTable's declaration is in the middle of
+functions instead of at the top of the file with the other declarations.
+*/
extern const u8 *const gBattleScriptsForMoveEffects[];
extern const u8 *const gBattlescriptsForBallThrow[];
@@ -283,9 +294,7 @@ void HandleAction_UseItem(void)
gBattlerAttacker = gBattlerTarget = gBattlerByTurnOrder[gCurrentTurnActionNumber];
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
-
ClearFuryCutterDestinyBondGrudge(gBattlerAttacker);
-
gLastUsedItem = gBattleBufferB[gBattlerAttacker][1] | (gBattleBufferB[gBattlerAttacker][2] << 8);
if (gLastUsedItem <= LAST_BALL) // is ball
@@ -311,18 +320,18 @@ void HandleAction_UseItem(void)
break;
case AI_ITEM_CURE_CONDITION:
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
- if (*(gBattleStruct->AI_itemFlags + (gBattlerAttacker >> 1)) & 1)
+ if (*(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) & 1)
{
- if (*(gBattleStruct->AI_itemFlags + (gBattlerAttacker >> 1)) & 0x3E)
+ if (*(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) & 0x3E)
gBattleCommunication[MULTISTRING_CHOOSER] = 5;
}
else
{
- do
+ while (!(*(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) & 1))
{
- *(gBattleStruct->AI_itemFlags + (gBattlerAttacker >> 1)) >>= 1;
+ *(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) >>= 1;
gBattleCommunication[MULTISTRING_CHOOSER]++;
- } while (!(*(gBattleStruct->AI_itemFlags + (gBattlerAttacker >> 1)) & 1));
+ }
}
break;
case AI_ITEM_X_STAT:
@@ -338,7 +347,7 @@ void HandleAction_UseItem(void)
while (!((*(gBattleStruct->AI_itemFlags + (gBattlerAttacker >> 1))) & 1))
{
- *(gBattleStruct->AI_itemFlags + (gBattlerAttacker >> 1)) >>= 1;
+ *(gBattleStruct->AI_itemFlags + gBattlerAttacker / 2) >>= 1;
gBattleTextBuff1[2]++;
}
@@ -354,7 +363,7 @@ void HandleAction_UseItem(void)
break;
}
- gBattlescriptCurrInstr = gBattlescriptsForUsingItem[*(gBattleStruct->AI_itemType + (gBattlerAttacker >> 1))];
+ gBattlescriptCurrInstr = gBattlescriptsForUsingItem[*(gBattleStruct->AI_itemType + gBattlerAttacker / 2)];
}
gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT;
}
@@ -527,6 +536,8 @@ void HandleAction_ThrowPokeblock(void)
gBattleStruct->safariPkblThrowCounter++;
if (gBattleStruct->safariEscapeFactor > 1)
{
+ // BUG: The safariEscapeFactor is unintetionally able to become 0 (but it can not become negative!). This causes the pokeblock throw glitch.
+ // To fix that change the < in the if statement below to <=.
if (gBattleStruct->safariEscapeFactor < sPkblToEscapeFactor[gBattleStruct->safariPkblThrowCounter][gBattleCommunication[MULTISTRING_CHOOSER]])
gBattleStruct->safariEscapeFactor = 1;
else
diff --git a/src/berry.c b/src/berry.c
index d70e8c353..98264f37b 100644
--- a/src/berry.c
+++ b/src/berry.c
@@ -1331,7 +1331,7 @@ void ResetBerryTreeSparkleFlags(void)
s16 bottom;
int i;
- GetCameraCoords((u16*)&cam_left, (u16*)&cam_top);
+ GetCameraCoords(&cam_left, &cam_top);
left = cam_left;
top = cam_top + 3;
right = cam_left + 14;
diff --git a/src/berry_blender.c b/src/berry_blender.c
index 2cdb841ee..16ba42bd7 100644
--- a/src/berry_blender.c
+++ b/src/berry_blender.c
@@ -168,8 +168,8 @@ struct BerryBlender
u16 progressBarValue;
u16 maxProgressBarValue;
u16 centerScale;
- s16 bg_X;
- s16 bg_Y;
+ u16 bg_X;
+ u16 bg_Y;
u8 opponentTaskIds[BLENDER_MAX_PLAYERS - 1];
u8 perfectOpponents; // for debugging, NPCs will always hit Best
u16 scores[BLENDER_MAX_PLAYERS][NUM_SCORE_TYPES];
@@ -3387,13 +3387,13 @@ static void RestoreBgCoord(s16* coord)
// For "unshaking" the screen after ShakeBgCoordForHit is called
static void RestoreBgCoords(void)
{
- RestoreBgCoord((s16 *)&sBerryBlender->bg_X);
- RestoreBgCoord((s16 *)&sBerryBlender->bg_Y);
+ RestoreBgCoord(&sBerryBlender->bg_X);
+ RestoreBgCoord(&sBerryBlender->bg_Y);
}
static void BlenderLandShakeBgCoord(s16* coord, u16 timer)
{
- u8 strength;
+ s32 strength;
if (timer < 10)
strength = 16;
diff --git a/src/berry_crush.c b/src/berry_crush.c
index 3554644f2..985bf8d28 100755
--- a/src/berry_crush.c
+++ b/src/berry_crush.c
@@ -146,49 +146,38 @@ struct BerryCrushGame
{
MainCallback unk0;
u32 (* unk4)(struct BerryCrushGame *, u8 *);
-
u8 unk8;
u8 unk9;
u8 mainTask;
u8 unkB;
-
u8 unkC;
u8 unkD;
-
u8 unkE;
u8 unkF;
-
u16 unk10;
u16 unk12;
u16 unk14;
-
u16 unk16;
s16 unk18;
s16 unk1A;
- s32 unk1C;
+ int unk1C;
s32 unk20;
u8 unk24;
-
u8 unk25_0:1;
u8 unk25_1:1;
u8 unk25_2:1;
u8 unk25_3:1;
u8 unk25_4:1;
u8 unk25_5:3;
-
u16 unk26;
-
u16 unk28;
s16 unk2A;
s16 unk2C;
-
s16 unk2E;
s16 unk30;
s16 unk32;
s16 unk34;
-
u8 unk36[0xA];
-
struct BerryCrushGame_40 unk40;
struct BerryCrushGame_5C unk5C;
union BerryCrushGame_68 unk68;
@@ -215,7 +204,7 @@ void sub_8022524(struct BerryCrushGame_138 *, u16);
void sub_8022B28(struct Sprite *);
void sub_8022554(struct BerryCrushGame_138 *r0);
void sub_8024578(struct BerryCrushGame *);
-void sub_8024644(u8 *, u8, u8, u16, u8);
+void sub_8024644(u8 *, u32, u32, u32, u32);
static void sub_8022A20(struct Sprite *sprite);
static u32 BerryCrushCommand_BeginNormalPaletteFade(struct BerryCrushGame *r6, u8 *r1);
static u32 sub_8022CB0(struct BerryCrushGame *r4, u8 *r5);
@@ -2394,7 +2383,7 @@ void sub_802339C(struct BerryCrushGame *r4)
}
}
}
- if (r8 >= 2)
+ if (r8 > 1)
{
for (r7 = 0; r7 < r4->unk9; ++r7)
{
@@ -2584,7 +2573,6 @@ void sub_802385C(struct BerryCrushGame *r5)
for (r4 = 0; r4 < r5->unk9; ++r4)
r5->unk68.as_four_players.others[r4].unk4.as_2d_bytes[1][5] = 0;
#endif
-
if ((gRecvCmds[0][0] & 0xFF00) != RFUCMD_SEND_PACKET
|| gRecvCmds[0][1] != 2)
{
@@ -3274,11 +3262,14 @@ static void BerryCrush_SetPaletteFadeParams(u8 *params, bool8 communicateAfter,
params[9] = communicateAfter;
}
-void sub_8024644(u8 *r0, u8 r1, u8 r2, u16 r3, u8 r5)
+void sub_8024644(u8 *r0, u32 r1, u32 r2, u32 r3, u32 r5)
{
+ u8 sp[4];
+
+ 0[(u16 *)sp] = r3;
r0[0] = r1;
r0[1] = r2;
- r0[2] = ((u8 *)&r3)[0];
- r0[3] = ((u8 *)&r3)[1];
+ r0[2] = sp[0];
+ r0[3] = sp[1];
r0[4] = r5;
}
diff --git a/src/birch_pc.c b/src/birch_pc.c
index 5b574b05d..1f0ab2349 100644
--- a/src/birch_pc.c
+++ b/src/birch_pc.c
@@ -2,7 +2,6 @@
#include "event_data.h"
#include "field_message_box.h"
#include "pokedex.h"
-#include "constants/species.h"
#include "strings.h"
bool16 ScriptGetPokedexInfo(void)
diff --git a/src/braille_puzzles.c b/src/braille_puzzles.c
index a1ea44e26..aa6664f35 100644
--- a/src/braille_puzzles.c
+++ b/src/braille_puzzles.c
@@ -8,7 +8,6 @@
#include "constants/field_effects.h"
#include "constants/maps.h"
#include "constants/songs.h"
-#include "constants/species.h"
#include "constants/metatile_labels.h"
#include "fieldmap.h"
#include "party_menu.h"
diff --git a/src/confetti_util.c b/src/confetti_util.c
index 6d4770056..3bda3ab53 100644
--- a/src/confetti_util.c
+++ b/src/confetti_util.c
@@ -30,8 +30,10 @@ static void sub_81520A8(void *dest, u16 value, u8 left, u8 top, u8 width, u8 hei
static void sub_8152134(void *dest, const u16 *src, u8 left, u8 top, u8 width, u8 height) // Unused.
{
- u8 i, j;
- u8 x, y;
+ u8 i;
+ u8 j;
+ u8 x;
+ u8 y;
const u16 *_src;
for (i = 0, _src = src, y = top; i < height; i++)
diff --git a/src/contest.c b/src/contest.c
index 61a159bc4..40a0eac66 100644
--- a/src/contest.c
+++ b/src/contest.c
@@ -42,7 +42,6 @@
#include "constants/moves.h"
#include "constants/rgb.h"
#include "constants/songs.h"
-#include "constants/species.h"
#include "constants/tv.h"
// This file's functions.
@@ -951,39 +950,39 @@ const struct SpriteTemplate sSpriteTemplates_ContestantsTurnBlinkEffect[CONTESTA
static const s8 gContestExcitementTable[CONTEST_CATEGORIES_COUNT][CONTEST_CATEGORIES_COUNT] =
{
- [CONTEST_CATEGORY_COOL] = {
- [CONTEST_CATEGORY_COOL] = +1,
- [CONTEST_CATEGORY_BEAUTY] = 0,
- [CONTEST_CATEGORY_CUTE] = -1,
- [CONTEST_CATEGORY_SMART] = -1,
+ [CONTEST_CATEGORY_COOL] = {
+ [CONTEST_CATEGORY_COOL] = +1,
+ [CONTEST_CATEGORY_BEAUTY] = 0,
+ [CONTEST_CATEGORY_CUTE] = -1,
+ [CONTEST_CATEGORY_SMART] = -1,
[CONTEST_CATEGORY_TOUGH] = 0
},
- [CONTEST_CATEGORY_BEAUTY] = {
- [CONTEST_CATEGORY_COOL] = 0,
- [CONTEST_CATEGORY_BEAUTY] = +1,
- [CONTEST_CATEGORY_CUTE] = 0,
- [CONTEST_CATEGORY_SMART] = -1,
+ [CONTEST_CATEGORY_BEAUTY] = {
+ [CONTEST_CATEGORY_COOL] = 0,
+ [CONTEST_CATEGORY_BEAUTY] = +1,
+ [CONTEST_CATEGORY_CUTE] = 0,
+ [CONTEST_CATEGORY_SMART] = -1,
[CONTEST_CATEGORY_TOUGH] = -1
},
[CONTEST_CATEGORY_CUTE] = {
- [CONTEST_CATEGORY_COOL] = -1,
- [CONTEST_CATEGORY_BEAUTY] = 0,
- [CONTEST_CATEGORY_CUTE] = +1,
- [CONTEST_CATEGORY_SMART] = 0,
+ [CONTEST_CATEGORY_COOL] = -1,
+ [CONTEST_CATEGORY_BEAUTY] = 0,
+ [CONTEST_CATEGORY_CUTE] = +1,
+ [CONTEST_CATEGORY_SMART] = 0,
[CONTEST_CATEGORY_TOUGH] = -1
},
[CONTEST_CATEGORY_SMART] = {
- [CONTEST_CATEGORY_COOL] = -1,
- [CONTEST_CATEGORY_BEAUTY] = -1,
- [CONTEST_CATEGORY_CUTE] = 0,
- [CONTEST_CATEGORY_SMART] = +1,
+ [CONTEST_CATEGORY_COOL] = -1,
+ [CONTEST_CATEGORY_BEAUTY] = -1,
+ [CONTEST_CATEGORY_CUTE] = 0,
+ [CONTEST_CATEGORY_SMART] = +1,
[CONTEST_CATEGORY_TOUGH] = 0
},
- [CONTEST_CATEGORY_TOUGH] = {
- [CONTEST_CATEGORY_COOL] = 0,
- [CONTEST_CATEGORY_BEAUTY] = -1,
- [CONTEST_CATEGORY_CUTE] = -1,
- [CONTEST_CATEGORY_SMART] = 0,
+ [CONTEST_CATEGORY_TOUGH] = {
+ [CONTEST_CATEGORY_COOL] = 0,
+ [CONTEST_CATEGORY_BEAUTY] = -1,
+ [CONTEST_CATEGORY_CUTE] = -1,
+ [CONTEST_CATEGORY_SMART] = 0,
[CONTEST_CATEGORY_TOUGH] = +1
}
};
@@ -3408,7 +3407,8 @@ static void GetAllChosenMoves(void)
static void RankContestants(void)
{
- s32 i, j;
+ s32 i;
+ s32 j;
s16 arr[CONTESTANT_COUNT];
for (i = 0; i < CONTESTANT_COUNT; i++)
@@ -3483,7 +3483,8 @@ static bool8 ContestantCanUseTurn(u8 contestant)
{
if (eContestantStatus[contestant].numTurnsSkipped != 0 || eContestantStatus[contestant].noMoreTurns)
return FALSE;
- return TRUE;
+ else
+ return TRUE;
}
static void SetContestantStatusesForNextRound(void)
@@ -3537,7 +3538,8 @@ bool8 Contest_IsMonsTurnDisabled(u8 contestant)
{
if (eContestantStatus[contestant].numTurnsSkipped != 0 || eContestantStatus[contestant].noMoreTurns)
return TRUE;
- return FALSE;
+ else
+ return FALSE;
}
static void CalculateTotalPointsForContestant(u8 contestant)
@@ -4480,14 +4482,17 @@ static void CalculateAppealMoveImpact(u8 contestant)
eContestantStatus[contestant].comboAppealBonus = eContestantStatus[contestant].baseAppeal * eContestantStatus[contestant].completedCombo;
eContestantStatus[contestant].completedComboFlag = TRUE; // Redundant with completedCombo, used by AI
}
- else if (gContestMoves[eContestantStatus[contestant].currMove].comboStarterId != 0)
- {
- eContestantStatus[contestant].hasJudgesAttention = TRUE;
- eContestantStatus[contestant].usedComboMove = TRUE;
- }
else
{
- eContestantStatus[contestant].hasJudgesAttention = FALSE;
+ if (gContestMoves[eContestantStatus[contestant].currMove].comboStarterId != 0)
+ {
+ eContestantStatus[contestant].hasJudgesAttention = TRUE;
+ eContestantStatus[contestant].usedComboMove = TRUE;
+ }
+ else
+ {
+ eContestantStatus[contestant].hasJudgesAttention = FALSE;
+ }
}
}
if (eContestantStatus[contestant].repeatedMove)
@@ -5010,7 +5015,7 @@ static void ShowHideNextTurnGfx(bool8 show)
{
if (eContestantStatus[i].turnOrderMod != 0 && show)
{
- CpuCopy32(GetTurnOrderNumberGfx(i), (void *)(VRAM + 0x10000 + (gSprites[eContestGfxState[i].nextTurnSpriteId].oam.tileNum + 6) * 32), 32);
+ CpuCopy32(GetTurnOrderNumberGfx(i), (void *)(OBJ_VRAM0 + (gSprites[eContestGfxState[i].nextTurnSpriteId].oam.tileNum + 6) * 32), 32);
gSprites[eContestGfxState[i].nextTurnSpriteId].pos1.y = sNextTurnSpriteYPositions[gContestantTurnOrder[i]];
gSprites[eContestGfxState[i].nextTurnSpriteId].invisible = FALSE;
}
@@ -5411,7 +5416,7 @@ static void Contest_PrintTextToBg0WindowStd(u32 windowId, const u8 *b)
printerTemplate.currentY = 1;
printerTemplate.letterSpacing = 0;
printerTemplate.lineSpacing = 0;
- printerTemplate.style = 0;
+ printerTemplate.unk = 0;
printerTemplate.fgColor = 15;
printerTemplate.bgColor = 0;
printerTemplate.shadowColor = 8;
@@ -5434,7 +5439,7 @@ void Contest_PrintTextToBg0WindowAt(u32 windowId, u8 *currChar, s32 x, s32 y, s3
printerTemplate.currentY = y;
printerTemplate.letterSpacing = 0;
printerTemplate.lineSpacing = 0;
- printerTemplate.style = 0;
+ printerTemplate.unk = 0;
printerTemplate.fgColor = 15;
printerTemplate.bgColor = 0;
printerTemplate.shadowColor = 8;
@@ -5458,7 +5463,7 @@ static void Contest_StartTextPrinter(const u8 *currChar, bool32 b)
printerTemplate.currentY = 1;
printerTemplate.letterSpacing = 0;
printerTemplate.lineSpacing = 0;
- printerTemplate.style = 0;
+ printerTemplate.unk = 0;
printerTemplate.fgColor = 1;
printerTemplate.bgColor = 0;
printerTemplate.shadowColor = 8;
@@ -6093,4 +6098,3 @@ void StripPlayerAndMonNamesForLinkContest(struct ContestPokemon *mon, s32 langua
}
}
-
diff --git a/src/contest_painting.c b/src/contest_painting.c
index e903edbbb..1602eb94f 100644
--- a/src/contest_painting.c
+++ b/src/contest_painting.c
@@ -397,16 +397,16 @@ static void _InitContestMonPixels(u8 *spriteGfx, u16 *palette, u16 (*destPixels)
{
for (pixelX = 0; pixelX < 8; pixelX++)
{
- colorIndex = spriteGfx[((tileY * 8) + tileX) * 32 + (pixelY << 2) + (pixelX >> 1)];
+ colorIndex = spriteGfx[32 * (tileY * 8 + tileX) + (pixelY << 2) + (pixelX >> 1)];
if (pixelX & 1)
colorIndex >>= 4;
else
- colorIndex &= 0xF; // %=16 works here too. Both match
+ colorIndex &= 0xF;
- if (colorIndex == 0) // transparent pixel
- (*destPixels)[tileY * 8 + pixelY][tileX * 8 + pixelX] = 0x8000;
+ if (colorIndex == 0) // transparent pixel
+ (*destPixels)[8 * tileY + pixelY][tileX * 8 + pixelX] = 0x8000;
else
- (*destPixels)[tileY * 8 + pixelY][tileX * 8 + pixelX] = palette[colorIndex];
+ (*destPixels)[8 * tileY + pixelY][tileX * 8 + pixelX] = palette[colorIndex];
}
}
}
@@ -501,7 +501,6 @@ static void LoadContestPaintingFrame(u8 contestWinnerId, bool8 arg1)
static void InitPaintingMonOamData(u8 contestWinnerId)
{
-
gMain.oamBuffer[0] = sContestPaintingMonOamData;
gMain.oamBuffer[0].tileNum = 0;
@@ -512,7 +511,7 @@ static void InitPaintingMonOamData(u8 contestWinnerId)
}
else
{
- gMain.oamBuffer[0].x = 88; // Duplicated Code
+ gMain.oamBuffer[0].x = 88; // Duplicated code
gMain.oamBuffer[0].y = 24;
}
}
diff --git a/src/contest_util.c b/src/contest_util.c
index dbc1e28ed..e690a3bbe 100644
--- a/src/contest_util.c
+++ b/src/contest_util.c
@@ -166,11 +166,6 @@ static void SpriteCB_Confetti(struct Sprite *sprite);
static void Task_ShowContestEntryMonPic(u8 taskId);
static void Task_LinkContestWaitForConnection(u8 taskId);
-extern const u16 gObjectEventPalette8[];
-extern const u16 gObjectEventPalette17[];
-extern const u16 gObjectEventPalette33[];
-extern const u16 gObjectEventPalette34[];
-
static const u16 sUnknown_0858D6B0[] = INCBIN_U16("graphics/unknown/unknown_58D6B0.gbapal");
static const u8 sUnknown_0858D6D0[] = INCBIN_U8("graphics/unknown/unknown_58D6D0.4bpp");
static const u16 sMiscBlank_Pal[] = INCBIN_U16("graphics/interface/blank.gbapal");
@@ -1151,12 +1146,12 @@ static void TryCreateWirelessSprites(void)
static s32 DrawResultsTextWindow(const u8 *text, u8 spriteId)
{
u16 windowId;
- s32 origWidth, strWidth;
+ int origWidth;
+ int strWidth;
u8 *spriteTilePtrs[4];
u8 *dst;
-
{
- struct WindowTemplate windowTemplate; //It's important the lifetime of this struct ends after the clear
+ struct WindowTemplate windowTemplate;
memset(&windowTemplate, 0, sizeof(windowTemplate));
windowTemplate.width = 30;
windowTemplate.height = 2;
@@ -1165,33 +1160,33 @@ static s32 DrawResultsTextWindow(const u8 *text, u8 spriteId)
}
origWidth = GetStringWidth(1, text, 0);
- if ((strWidth = (origWidth + 9) / 8) > 30)
- strWidth = 30;
+ strWidth = (origWidth + 9) / 8;
+ if (strWidth > 30)
+ strWidth = 30;
AddTextPrinterParameterized3(windowId, 1, (strWidth * 8 - origWidth) / 2, 1, sContestLinkTextColors, -1, text);
-
{
s32 i;
struct Sprite *sprite;
const u8 *src, *windowTilesPtr;
- windowTilesPtr = (const u8 *)(GetWindowAttribute(windowId, WINDOW_TILE_DATA));
- src = sUnknown_0858D6D0;
+ windowTilesPtr = (u8 *)(GetWindowAttribute(windowId, WINDOW_TILE_DATA));
+ src = (u8 *)(sUnknown_0858D6D0);
sprite = &gSprites[spriteId];
- spriteTilePtrs[0] = (u8 *)((OBJ_VRAM0) + sprite->oam.tileNum * 32);
+ spriteTilePtrs[0] = (u8 *)(sprite->oam.tileNum * 32 + OBJ_VRAM0);
for (i = 1; i < 4; i++)
- spriteTilePtrs[i] = (u8 *)((OBJ_VRAM0) + gSprites[sprite->data[i - 1]].oam.tileNum * 32);
-
+ spriteTilePtrs[i] = (void*)(gSprites[sprite->data[i - 1]].oam.tileNum * 32 + OBJ_VRAM0);
+
for (i = 0; i < 4; i++)
CpuFill32(0, spriteTilePtrs[i], 0x400);
-
+
dst = spriteTilePtrs[0];
CpuCopy32(src, dst, 0x20);
CpuCopy32(src + 128, dst + 0x100, 0x20);
CpuCopy32(src + 128, dst + 0x200, 0x20);
- CpuCopy32(src + 64, dst + 0x300, 0x20);
-
+ CpuCopy32(src + 64, dst + 0x300, 0x20);
+
for (i = 0; i < strWidth; i++)
{
dst = &spriteTilePtrs[(i + 1) / 8][((i + 1) % 8) * 32];
@@ -1203,10 +1198,10 @@ static s32 DrawResultsTextWindow(const u8 *text, u8 spriteId)
}
dst = &spriteTilePtrs[(i + 1) / 8][((i + 1) % 8) * 32];
- CpuCopy32(src + 32, dst, 0x20);
+ CpuCopy32(src + 32, dst, 0x20);
CpuCopy32(src + 160, dst + 0x100, 0x20);
CpuCopy32(src + 160, dst + 0x200, 0x20);
- CpuCopy32(src + 96, dst + 0x300, 0x20);
+ CpuCopy32(src + 96, dst + 0x300, 0x20);
}
RemoveWindow(windowId);
@@ -1922,7 +1917,7 @@ static void AddContestTextPrinter(int windowId, u8 *str, int x)
textPrinter.currentY = 2;
textPrinter.letterSpacing = 0;
textPrinter.lineSpacing = 0;
- textPrinter.style = 0;
+ textPrinter.unk = 0;
textPrinter.fgColor = 1;
textPrinter.bgColor = 0;
textPrinter.shadowColor = 8;
@@ -2488,16 +2483,16 @@ void LoadLinkContestPlayerPalettes(void)
if (version == VERSION_RUBY || version == VERSION_SAPPHIRE)
{
if (gLinkPlayers[i].gender == MALE)
- LoadPalette(gObjectEventPalette33, 0x160 + i * 0x10, 0x20);
+ LoadPalette(gObjectEventPal_RubySapphireBrendan, 0x160 + i * 0x10, 0x20);
else
- LoadPalette(gObjectEventPalette34, 0x160 + i * 0x10, 0x20);
+ LoadPalette(gObjectEventPal_RubySapphireMay, 0x160 + i * 0x10, 0x20);
}
else
{
if (gLinkPlayers[i].gender == MALE)
- LoadPalette(gObjectEventPalette8, 0x160 + i * 0x10, 0x20);
+ LoadPalette(gObjectEventPal_Brendan, 0x160 + i * 0x10, 0x20);
else
- LoadPalette(gObjectEventPalette17, 0x160 + i * 0x10, 0x20);
+ LoadPalette(gObjectEventPal_May, 0x160 + i * 0x10, 0x20);
}
}
}
diff --git a/src/credits.c b/src/credits.c
index 86a659d5a..41d1c1686 100644
--- a/src/credits.c
+++ b/src/credits.c
@@ -22,7 +22,6 @@
#include "pokedex.h"
#include "event_data.h"
#include "random.h"
-#include "constants/species.h"
enum
{
diff --git a/src/crt0.s b/src/crt0.s
index cb7c93a6b..49f214f80 100644
--- a/src/crt0.s
+++ b/src/crt0.s
@@ -91,6 +91,10 @@ Init: @ 8000204
ldr r1, =INTR_VECTOR
adr r0, IntrMain
str r0, [r1]
+ .if MODERN
+ mov r0, #255 @ RESET_ALL
+ svc #1 << 16
+ .endif @ MODERN
ldr r1, =AgbMain + 1
mov lr, pc
bx r1
diff --git a/src/data.c b/src/data.c
index 8d6640223..29d1835ac 100644
--- a/src/data.c
+++ b/src/data.c
@@ -5,7 +5,6 @@
#include "graphics.h"
#include "constants/items.h"
#include "constants/moves.h"
-#include "constants/species.h"
#include "constants/trainers.h"
#include "constants/battle_ai.h"
diff --git a/src/data/bard_music/pokemon.h b/src/data/bard_music/pokemon.h
index 112a5870b..5ccf2f830 100644
--- a/src/data/bard_music/pokemon.h
+++ b/src/data/bard_music/pokemon.h
@@ -1,6 +1,5 @@
#ifndef GUARD_DATA_BARD_MUSIC_POKEMON_H
#define GUARD_DATA_BARD_MUSIC_POKEMON_H
-#include "constants/species.h"
const u16 gNumSpeciesNames = NUM_SPECIES;
diff --git a/src/data/battle_frontier/trainer_hill.h b/src/data/battle_frontier/trainer_hill.h
index cfd5dd994..1b41024d0 100644
--- a/src/data/battle_frontier/trainer_hill.h
+++ b/src/data/battle_frontier/trainer_hill.h
@@ -1,5 +1,11 @@
#define TRAINER_HILL_OTID 0x10000000
+// NOTE: Each of these macros turn data into one byte. Therefore ranges for all arguments is 0-15
+// See struct TrHillDisplay for more info about each
+#define COORDS_XY(x,y) ((y<<4)|(x))
+#define TRAINER_DIRS(a, b) (((a-1)<<4)|(b-1))
+#define TRAINER_RANGE(a, b) ((a<<4)|(b))
+
static const struct TrHillTag sDataTagJPDefault = {
.numTrainers = NUM_TRAINER_HILL_TRAINERS_JP,
.unused1 = 1,
@@ -187,11 +193,28 @@ static const struct TrHillFloor sDataTagJPDefault_Floors[] = {
},
},
.display = {
- .data = { 0x31, 0x35, 0x35, 0x3b, 0x26, 0x26, 0x1b, 0x1c, 0x1d, 0x25, 0x39, 0x3a, 0x3b, 0x3b, 0x3b, 0x8, 0x31, 0x2b, 0x2b, 0x3b, 0x34, 0x34, 0x2b, 0x2b, 0x34, 0x33, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x8, 0x31, 0x2b, 0x2b, 0x3b, 0x3b, 0x3b, 0x34, 0x34, 0x3b, 0x33, 0x3f, 0x3f, 0x3f, 0x3b, 0x3b, 0x8, 0x31, 0x2b, 0x2b, 0x35, 0x35, 0x35, 0x35, 0x35, 0x3b, 0x33, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x8, 0x31, 0x2b, 0x34, 0x34, 0x34, 0x2b, 0x34, 0x34, 0x3b, 0x2c, 0x3f, 0x3f, 0x3f, 0x3b, 0x3b, 0x8, 0x31, 0x2b, 0x3b, 0x35, 0x3b, 0x2b, 0x3b, 0x35, 0x3b, 0x35, 0x3b, 0x3f, 0x3f, 0x3f, 0x3b, 0x8, 0x31, 0x2b, 0x3b, 0x2b, 0x3b, 0x2b, 0x3b, 0x2b, 0x3b, 0x2b, 0x3b, 0x3f, 0x3f, 0x3f, 0x3b, 0x8, 0x31, 0x34, 0x3b, 0x2b, 0x3b, 0x34, 0x3b, 0x2b, 0x35, 0x2b, 0x3b, 0x3b, 0x3f, 0x3b, 0x3b, 0x8, 0x31, 0x3b, 0x3b, 0x34, 0x3b, 0x3b, 0x3b, 0x34, 0x34, 0x34, 0x3f, 0x3b, 0x3b, 0x3b, 0x3f, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8 },
- .unk3A0 = { 0x381, 0x6fc1, 0x6341, 0x6041, 0x7f41, 0x4401, 0x5541, 0x5541, 0x11c1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff },
- .coords = { 0x28, 0x78 },
- .direction = 0x1,
- .range = 0x23
+ .metatileData = {
+ 0x31, 0x35, 0x35, 0x3b, 0x26, 0x26, 0x1b, 0x1c, 0x1d, 0x25, 0x39, 0x3a, 0x3b, 0x3b, 0x3b, 0x08,
+ 0x31, 0x2b, 0x2b, 0x3b, 0x34, 0x34, 0x2b, 0x2b, 0x34, 0x33, 0x3f, 0x3f, 0x3f, 0x3f, 0x3b, 0x08,
+ 0x31, 0x2b, 0x2b, 0x3b, 0x3b, 0x3b, 0x34, 0x34, 0x3b, 0x33, 0x3f, 0x3f, 0x3f, 0x3b, 0x3b, 0x08,
+ 0x31, 0x2b, 0x2b, 0x35, 0x35, 0x35, 0x35, 0x35, 0x3b, 0x33, 0x3f, 0x3f, 0x3f, 0x3b, 0x3f, 0x08,
+ 0x31, 0x2b, 0x34, 0x34, 0x34, 0x2b, 0x34, 0x34, 0x3b, 0x2c, 0x3f, 0x3f, 0x3f, 0x3b, 0x3b, 0x08,
+ 0x31, 0x2b, 0x3b, 0x35, 0x3b, 0x2b, 0x3b, 0x35, 0x3b, 0x35, 0x3b, 0x3f, 0x3f, 0x3f, 0x3b, 0x08,
+ 0x31, 0x2b, 0x3b, 0x2b, 0x3b, 0x2b, 0x3b, 0x2b, 0x3b, 0x2b, 0x3b, 0x3f, 0x3f, 0x3f, 0x3b, 0x08,
+ 0x31, 0x34, 0x3b, 0x2b, 0x3b, 0x34, 0x3b, 0x2b, 0x35, 0x2b, 0x3b, 0x3b, 0x3f, 0x3b, 0x3b, 0x08,
+ 0x31, 0x3b, 0x3b, 0x34, 0x3b, 0x3b, 0x3b, 0x34, 0x34, 0x34, 0x3f, 0x3b, 0x3b, 0x3b, 0x3f, 0x08,
+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
+ },
+ .collisionData = { 0x0381, 0x6fc1, 0x6341, 0x6041, 0x7f41, 0x4401, 0x5541, 0x5541, 0x11c1, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff },
+ .coords = { COORDS_XY(8,2), COORDS_XY(8,7) },
+ .direction = TRAINER_DIRS(DIR_SOUTH, DIR_NORTH),
+ .range = TRAINER_RANGE(2, 3)
}
},
[1] = {
@@ -372,11 +395,28 @@ static const struct TrHillFloor sDataTagJPDefault_Floors[] = {
},
},
.display = {
- .data = { 0x31, 0x3b, 0x35, 0x3b, 0x39, 0x26, 0x1b, 0x1c, 0x1d, 0x25, 0x39, 0x3a, 0x3b, 0x35, 0x3b, 0x8, 0x31, 0x3b, 0x2b, 0x3b, 0x3b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3b, 0x3b, 0x3b, 0x2b, 0x3b, 0x8, 0x31, 0x3b, 0x2b, 0x3b, 0x3b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3e, 0x3e, 0x3b, 0x2b, 0x3b, 0x8, 0x31, 0x3b, 0x2b, 0x3b, 0x3b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3b, 0x3b, 0x3b, 0x2b, 0x3b, 0x8, 0x3f, 0x3b, 0x2b, 0x3b, 0x3b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3b, 0x3e, 0x3e, 0x2b, 0x3b, 0x8, 0x31, 0x3b, 0x2b, 0x3b, 0x3b, 0x2b, 0x2b, 0x2c, 0x2b, 0x2b, 0x3b, 0x3b, 0x3b, 0x2b, 0x3b, 0x8, 0x31, 0x3f, 0x2b, 0x3b, 0x3b, 0x2c, 0x2c, 0x3b, 0x2c, 0x2c, 0x3e, 0x3e, 0x3b, 0x2b, 0x3b, 0x8, 0x31, 0x3b, 0x2b, 0x35, 0x35, 0x35, 0x35, 0x3b, 0x35, 0x35, 0x35, 0x35, 0x35, 0x2b, 0x3b, 0x8, 0x3f, 0x3b, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x3b, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x3b, 0x8, 0x31, 0x3b, 0x3f, 0x3f, 0x3b, 0x35, 0x35, 0x3b, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x8, 0x31, 0x3f, 0x3f, 0x3f, 0x3b, 0x2b, 0x2b, 0x35, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x8, 0x31, 0x3f, 0x3f, 0x3b, 0x3b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x8, 0x31, 0x3b, 0x3b, 0x3b, 0x3f, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8 },
- .unk3A0 = { 0x381, 0x27c5, 0x27c5, 0x27c5, 0x27c5, 0x27c5, 0x26c5, 0x2005, 0x3efd, 0x1, 0x6ff, 0x7ff, 0x7ff, 0xffff, 0xffff, 0xffff },
- .coords = { 0x67, 0xa7 },
- .direction = 0x1,
- .range = 0x33
+ .metatileData = {
+ 0x31, 0x3b, 0x35, 0x3b, 0x39, 0x26, 0x1b, 0x1c, 0x1d, 0x25, 0x39, 0x3a, 0x3b, 0x35, 0x3b, 0x08,
+ 0x31, 0x3b, 0x2b, 0x3b, 0x3b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3b, 0x3b, 0x3b, 0x2b, 0x3b, 0x08,
+ 0x31, 0x3b, 0x2b, 0x3b, 0x3b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3e, 0x3e, 0x3b, 0x2b, 0x3b, 0x08,
+ 0x31, 0x3b, 0x2b, 0x3b, 0x3b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3b, 0x3b, 0x3b, 0x2b, 0x3b, 0x08,
+ 0x3f, 0x3b, 0x2b, 0x3b, 0x3b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x3b, 0x3e, 0x3e, 0x2b, 0x3b, 0x08,
+ 0x31, 0x3b, 0x2b, 0x3b, 0x3b, 0x2b, 0x2b, 0x2c, 0x2b, 0x2b, 0x3b, 0x3b, 0x3b, 0x2b, 0x3b, 0x08,
+ 0x31, 0x3f, 0x2b, 0x3b, 0x3b, 0x2c, 0x2c, 0x3b, 0x2c, 0x2c, 0x3e, 0x3e, 0x3b, 0x2b, 0x3b, 0x08,
+ 0x31, 0x3b, 0x2b, 0x35, 0x35, 0x35, 0x35, 0x3b, 0x35, 0x35, 0x35, 0x35, 0x35, 0x2b, 0x3b, 0x08,
+ 0x3f, 0x3b, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x3b, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x3b, 0x08,
+ 0x31, 0x3b, 0x3f, 0x3f, 0x3b, 0x35, 0x35, 0x3b, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x35, 0x08,
+ 0x31, 0x3f, 0x3f, 0x3f, 0x3b, 0x2b, 0x2b, 0x35, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x08,
+ 0x31, 0x3f, 0x3f, 0x3b, 0x3b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x08,
+ 0x31, 0x3b, 0x3b, 0x3b, 0x3f, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x08,
+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
+ },
+ .collisionData = { 0x0381, 0x27c5, 0x27c5, 0x27c5, 0x27c5, 0x27c5, 0x26c5, 0x2005, 0x3efd, 0x1, 0x6ff, 0x7ff, 0x7ff, 0xffff, 0xffff, 0xffff },
+ .coords = { COORDS_XY(7,6), COORDS_XY(7,10) },
+ .direction = TRAINER_DIRS(DIR_SOUTH, DIR_NORTH),
+ .range = TRAINER_RANGE(3, 3)
}
},
};
@@ -686,11 +726,28 @@ static const struct TrHillFloor sDataTagNormal_Floors[] =
},
},
.display = {
- .data = {0x31, 0x3B, 0x35, 0x35, 0x26, 0x26, 0x1B, 0x1C, 0x1D, 0x25, 0x26, 0x3A, 0x3B, 0x35, 0x3B, 0x8, 0x31, 0x3B, 0x2C, 0x2C, 0x2C, 0x2B, 0x24, 0x24, 0x24, 0x24, 0x2C, 0x3B, 0x3B, 0x2C, 0x3B, 0x8, 0x2D, 0x3B, 0x3B, 0x3B, 0x3B, 0x2B, 0x3B, 0x3B, 0x3B, 0x3B, 0x35, 0x3B, 0x35, 0x35, 0x3B, 0x8, 0x33, 0x3B, 0x32, 0x21, 0x30, 0x2B, 0x3B, 0x32, 0x21, 0x30, 0x2B, 0x3B, 0x2C, 0x2B, 0x3B, 0x8, 0x33, 0x35, 0x3B, 0x3B, 0x3B, 0x2C, 0x35, 0x3B, 0x3B, 0x3B, 0x2B, 0x3B, 0x3B, 0x2B, 0x3B, 0x8, 0x34, 0x2C, 0x3B, 0x32, 0x21, 0x30, 0x2B, 0x32, 0x30, 0x3B, 0x2B, 0x32, 0x30, 0x2C, 0x3B, 0x8, 0x31, 0x35, 0x3B, 0x3B, 0x35, 0x3B, 0x2C, 0x3B, 0x3B, 0x35, 0x2C, 0x3B, 0x3B, 0x35, 0x35, 0x8, 0x31, 0x2C, 0x32, 0x30, 0x2B, 0x32, 0x30, 0x35, 0x3B, 0x2B, 0x32, 0x21, 0x30, 0x2C, 0x2C, 0x8, 0x31, 0x35, 0x3B, 0x3B, 0x2B, 0x3B, 0x3B, 0x2B, 0x3B, 0x2C, 0x3B, 0x35, 0x3B, 0x3B, 0x3B, 0x8, 0x31, 0x2C, 0x32, 0x30, 0x2B, 0x32, 0x30, 0x2B, 0x3B, 0x32, 0x30, 0x2B, 0x32, 0x30, 0x3B, 0x8, 0x31, 0x35, 0x35, 0x35, 0x2B, 0x3B, 0x3B, 0x2B, 0x3B, 0x3B, 0x35, 0x2B, 0x3B, 0x35, 0x35, 0x8, 0x31, 0x2B, 0x2C, 0x2C, 0x2C, 0x32, 0x30, 0x2B, 0x32, 0x30, 0x2C, 0x2C, 0x3B, 0x2C, 0x2C, 0x8, 0x31, 0x2B, 0x3B, 0x3B, 0x35, 0x3B, 0x3B, 0x2B, 0x3B, 0x3B, 0x35, 0x3B, 0x3B, 0x3B, 0x3B, 0x8, 0x31, 0x2C, 0x32, 0x30, 0x2B, 0x3B, 0x3B, 0x2C, 0x32, 0x30, 0x2C, 0x32, 0x30, 0x3B, 0x35, 0x8, 0x31, 0x3B, 0x3B, 0x3B, 0x2C, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x2C, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8},
- .unk3A0 = {0x381, 0x3FE5, 0x401, 0xBDED, 0x8425, 0xDFBD, 0x221, 0x7E7F, 0x941, 0x7F7D, 0x911, 0x7FF7, 0x4101, 0x79F9, 0x803, 0xFFFF},
- .coords = {27, 45},
- .direction = 0x21,
- .range = 0x21,
+ .metatileData = {
+ 0x31, 0x3B, 0x35, 0x35, 0x26, 0x26, 0x1B, 0x1C, 0x1D, 0x25, 0x26, 0x3A, 0x3B, 0x35, 0x3B, 0x08,
+ 0x31, 0x3B, 0x2C, 0x2C, 0x2C, 0x2B, 0x24, 0x24, 0x24, 0x24, 0x2C, 0x3B, 0x3B, 0x2C, 0x3B, 0x08,
+ 0x2D, 0x3B, 0x3B, 0x3B, 0x3B, 0x2B, 0x3B, 0x3B, 0x3B, 0x3B, 0x35, 0x3B, 0x35, 0x35, 0x3B, 0x08,
+ 0x33, 0x3B, 0x32, 0x21, 0x30, 0x2B, 0x3B, 0x32, 0x21, 0x30, 0x2B, 0x3B, 0x2C, 0x2B, 0x3B, 0x08,
+ 0x33, 0x35, 0x3B, 0x3B, 0x3B, 0x2C, 0x35, 0x3B, 0x3B, 0x3B, 0x2B, 0x3B, 0x3B, 0x2B, 0x3B, 0x08,
+ 0x34, 0x2C, 0x3B, 0x32, 0x21, 0x30, 0x2B, 0x32, 0x30, 0x3B, 0x2B, 0x32, 0x30, 0x2C, 0x3B, 0x08,
+ 0x31, 0x35, 0x3B, 0x3B, 0x35, 0x3B, 0x2C, 0x3B, 0x3B, 0x35, 0x2C, 0x3B, 0x3B, 0x35, 0x35, 0x08,
+ 0x31, 0x2C, 0x32, 0x30, 0x2B, 0x32, 0x30, 0x35, 0x3B, 0x2B, 0x32, 0x21, 0x30, 0x2C, 0x2C, 0x08,
+ 0x31, 0x35, 0x3B, 0x3B, 0x2B, 0x3B, 0x3B, 0x2B, 0x3B, 0x2C, 0x3B, 0x35, 0x3B, 0x3B, 0x3B, 0x08,
+ 0x31, 0x2C, 0x32, 0x30, 0x2B, 0x32, 0x30, 0x2B, 0x3B, 0x32, 0x30, 0x2B, 0x32, 0x30, 0x3B, 0x08,
+ 0x31, 0x35, 0x35, 0x35, 0x2B, 0x3B, 0x3B, 0x2B, 0x3B, 0x3B, 0x35, 0x2B, 0x3B, 0x35, 0x35, 0x08,
+ 0x31, 0x2B, 0x2C, 0x2C, 0x2C, 0x32, 0x30, 0x2B, 0x32, 0x30, 0x2C, 0x2C, 0x3B, 0x2C, 0x2C, 0x08,
+ 0x31, 0x2B, 0x3B, 0x3B, 0x35, 0x3B, 0x3B, 0x2B, 0x3B, 0x3B, 0x35, 0x3B, 0x3B, 0x3B, 0x3B, 0x08,
+ 0x31, 0x2C, 0x32, 0x30, 0x2B, 0x3B, 0x3B, 0x2C, 0x32, 0x30, 0x2C, 0x32, 0x30, 0x3B, 0x35, 0x08,
+ 0x31, 0x3B, 0x3B, 0x3B, 0x2C, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x2C, 0x08,
+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
+ },
+ .collisionData = {0x0381, 0x3FE5, 0x0401, 0xBDED, 0x8425, 0xDFBD, 0x0221, 0x7E7F, 0x0941, 0x7F7D, 0x0911, 0x7FF7, 0x4101, 0x79F9, 0x0803, 0xFFFF},
+ .coords = {COORDS_XY(11,1), COORDS_XY(13,2)},
+ .direction = TRAINER_DIRS(DIR_WEST, DIR_NORTH),
+ .range = TRAINER_RANGE(2, 1),
}
},
[1] =
@@ -991,11 +1048,28 @@ static const struct TrHillFloor sDataTagNormal_Floors[] =
},
},
.display = {
- .data = {0xD1, 0xD5, 0xD5, 0xD5, 0xD9, 0xD9, 0x1B, 0x1C, 0x1D, 0xC5, 0xC6, 0xCE, 0xD5, 0xDB, 0xD5, 0x8, 0xD1, 0xCB, 0xC4, 0xC4, 0xDB, 0xDB, 0xC4, 0xC4, 0xC4, 0xCC, 0xCC, 0xCC, 0xCB, 0xDB, 0xCB, 0x8, 0xD1, 0xCB, 0xDB, 0xDB, 0x17, 0x17, 0x17, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xCB, 0xDB, 0xCB, 0x8, 0xD1, 0xCB, 0xDB, 0xD5, 0x17, 0x17, 0x17, 0xD5, 0xD5, 0xD5, 0xD5, 0xDF, 0xCB, 0xDB, 0xCB, 0x8, 0xD1, 0xCB, 0xDB, 0xCB, 0x17, 0x17, 0x1F, 0xCB, 0xCB, 0xC4, 0xC4, 0xDB, 0xCB, 0xDB, 0xCB, 0x8, 0xD1, 0xCB, 0xDB, 0xCB, 0xDB, 0xDB, 0xC4, 0xCB, 0xCB, 0xDF, 0xD5, 0xD5, 0xCB, 0xDB, 0xCB, 0x8, 0xD1, 0xCB, 0xDB, 0xCB, 0xDB, 0xDB, 0xDB, 0xCB, 0xCB, 0xDB, 0xC4, 0xC4, 0xCB, 0xDB, 0xCB, 0x8, 0xD1, 0xCB, 0xDB, 0xCB, 0xDB, 0xDB, 0xDB, 0xCB, 0xCB, 0xD5, 0xD5, 0xDF, 0xCB, 0xDB, 0xCB, 0x8, 0xD1, 0xCB, 0xDB, 0xCB, 0xDB, 0xDB, 0xDB, 0xCB, 0xCB, 0xC4, 0xC4, 0xDB, 0xCB, 0xDB, 0xCB, 0x8, 0xD1, 0xCB, 0xDB, 0xCB, 0xDB, 0xDB, 0xDB, 0xCB, 0xCB, 0xDF, 0xD5, 0xD5, 0xCB, 0xDB, 0xCB, 0x8, 0xD1, 0xCB, 0xDB, 0xCB, 0xDB, 0xDB, 0xDB, 0xC4, 0xC4, 0xDB, 0xC4, 0xC4, 0xC4, 0xDB, 0xCB, 0x8, 0xD1, 0xCB, 0xDB, 0xCB, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0xDB, 0xD5, 0xD5, 0xD5, 0xCB, 0x8, 0xD1, 0xC4, 0xDB, 0xCB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0x9B, 0xDB, 0xCB, 0xCB, 0xCB, 0xCB, 0x8, 0xD1, 0xDB, 0xDB, 0xCB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0x9B, 0xDB, 0xCB, 0xCB, 0xCB, 0xCB, 0x8, 0xD1, 0xDB, 0xDB, 0xC4, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0x9B, 0xDB, 0xC4, 0xC4, 0xC4, 0xC4, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8},
- .unk3A0 = {0x381, 0x73FB, 0x400B, 0x400B, 0x51EB, 0x538B, 0x51BB, 0x518B, 0x51EB, 0x518B, 0x51BB, 0x5003, 0x501F, 0x101F, 0x101F, 0xFFFF},
- .coords = {180, 233},
- .direction = 0x3,
- .range = 0x35,
+ .metatileData = {
+ 0xD1, 0xD5, 0xD5, 0xD5, 0xD9, 0xD9, 0x1B, 0x1C, 0x1D, 0xC5, 0xC6, 0xCE, 0xD5, 0xDB, 0xD5, 0x08,
+ 0xD1, 0xCB, 0xC4, 0xC4, 0xDB, 0xDB, 0xC4, 0xC4, 0xC4, 0xCC, 0xCC, 0xCC, 0xCB, 0xDB, 0xCB, 0x08,
+ 0xD1, 0xCB, 0xDB, 0xDB, 0x17, 0x17, 0x17, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xCB, 0xDB, 0xCB, 0x08,
+ 0xD1, 0xCB, 0xDB, 0xD5, 0x17, 0x17, 0x17, 0xD5, 0xD5, 0xD5, 0xD5, 0xDF, 0xCB, 0xDB, 0xCB, 0x08,
+ 0xD1, 0xCB, 0xDB, 0xCB, 0x17, 0x17, 0x1F, 0xCB, 0xCB, 0xC4, 0xC4, 0xDB, 0xCB, 0xDB, 0xCB, 0x08,
+ 0xD1, 0xCB, 0xDB, 0xCB, 0xDB, 0xDB, 0xC4, 0xCB, 0xCB, 0xDF, 0xD5, 0xD5, 0xCB, 0xDB, 0xCB, 0x08,
+ 0xD1, 0xCB, 0xDB, 0xCB, 0xDB, 0xDB, 0xDB, 0xCB, 0xCB, 0xDB, 0xC4, 0xC4, 0xCB, 0xDB, 0xCB, 0x08,
+ 0xD1, 0xCB, 0xDB, 0xCB, 0xDB, 0xDB, 0xDB, 0xCB, 0xCB, 0xD5, 0xD5, 0xDF, 0xCB, 0xDB, 0xCB, 0x08,
+ 0xD1, 0xCB, 0xDB, 0xCB, 0xDB, 0xDB, 0xDB, 0xCB, 0xCB, 0xC4, 0xC4, 0xDB, 0xCB, 0xDB, 0xCB, 0x08,
+ 0xD1, 0xCB, 0xDB, 0xCB, 0xDB, 0xDB, 0xDB, 0xCB, 0xCB, 0xDF, 0xD5, 0xD5, 0xCB, 0xDB, 0xCB, 0x08,
+ 0xD1, 0xCB, 0xDB, 0xCB, 0xDB, 0xDB, 0xDB, 0xC4, 0xC4, 0xDB, 0xC4, 0xC4, 0xC4, 0xDB, 0xCB, 0x08,
+ 0xD1, 0xCB, 0xDB, 0xCB, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0xDB, 0xD5, 0xD5, 0xD5, 0xCB, 0x08,
+ 0xD1, 0xC4, 0xDB, 0xCB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0x9B, 0xDB, 0xCB, 0xCB, 0xCB, 0xCB, 0x08,
+ 0xD1, 0xDB, 0xDB, 0xCB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0x9B, 0xDB, 0xCB, 0xCB, 0xCB, 0xCB, 0x08,
+ 0xD1, 0xDB, 0xDB, 0xC4, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0x9B, 0xDB, 0xC4, 0xC4, 0xC4, 0xC4, 0x08,
+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
+ },
+ .collisionData = {0x0381, 0x73FB, 0x400B, 0x400B, 0x51EB, 0x538B, 0x51BB, 0x518B, 0x51EB, 0x518B, 0x51BB, 0x5003, 0x501F, 0x101F, 0x101F, 0xFFFF},
+ .coords = {COORDS_XY(4,11), COORDS_XY(9,14)},
+ .direction = TRAINER_DIRS(DIR_SOUTH, DIR_EAST),
+ .range = TRAINER_RANGE(3, 5),
}
},
[2] =
@@ -1295,11 +1369,28 @@ static const struct TrHillFloor sDataTagNormal_Floors[] =
},
},
.display = {
- .data = {0x31, 0x35, 0x35, 0x35, 0x26, 0x26, 0x13, 0x14, 0x15, 0x38, 0x26, 0x2E, 0x35, 0x35, 0x3B, 0x8, 0x69, 0x63, 0x64, 0x64, 0x64, 0x64, 0x71, 0x71, 0x71, 0x72, 0x64, 0x64, 0x64, 0x63, 0x73, 0x8, 0x69, 0x63, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x63, 0x73, 0x8, 0x69, 0x63, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x63, 0x73, 0x8, 0x69, 0x63, 0x43, 0x41, 0x40, 0x41, 0x42, 0x41, 0x41, 0x4A, 0x42, 0x41, 0x41, 0x63, 0x73, 0x8, 0x69, 0x63, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x64, 0x73, 0x73, 0x73, 0x63, 0x73, 0x8, 0x69, 0x63, 0x41, 0x43, 0x4B, 0x43, 0x43, 0x41, 0x42, 0x42, 0x40, 0x41, 0x40, 0x63, 0x73, 0x8, 0x69, 0x63, 0x73, 0x73, 0x64, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x63, 0x73, 0x8, 0x69, 0x63, 0x41, 0x40, 0x42, 0x42, 0x41, 0x41, 0x42, 0x4A, 0x42, 0x41, 0x42, 0x63, 0x73, 0x8, 0x69, 0x63, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x64, 0x73, 0x73, 0x73, 0x63, 0x73, 0x8, 0x69, 0x63, 0x41, 0x42, 0x41, 0x43, 0x4B, 0x41, 0x41, 0x41, 0x40, 0x43, 0x41, 0x63, 0x73, 0x8, 0x69, 0x63, 0x73, 0x73, 0x73, 0x73, 0x64, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x63, 0x73, 0x8, 0x69, 0x63, 0x41, 0x40, 0x43, 0x41, 0x42, 0x42, 0x41, 0x4A, 0x42, 0x41, 0x42, 0x63, 0x73, 0x8, 0x69, 0x64, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x64, 0x73, 0x73, 0x73, 0x64, 0x73, 0x8, 0x69, 0x43, 0x43, 0x41, 0x42, 0x42, 0x41, 0x43, 0x41, 0x41, 0x40, 0x42, 0x41, 0x42, 0x73, 0x8, 0x69, 0x42, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x42, 0x73, 0x8},
- .unk3A0 = {0x381, 0x7C3D, 0x4005, 0x4005, 0x4005, 0x4045, 0x4005, 0x4805, 0x4005, 0x4045, 0x4005, 0x4205, 0x4005, 0x4045, 0x1, 0x1},
- .coords = {37, 41},
- .direction = 0x23,
- .range = 0x33,
+ .metatileData = {
+ 0x31, 0x35, 0x35, 0x35, 0x26, 0x26, 0x13, 0x14, 0x15, 0x38, 0x26, 0x2E, 0x35, 0x35, 0x3B, 0x08,
+ 0x69, 0x63, 0x64, 0x64, 0x64, 0x64, 0x71, 0x71, 0x71, 0x72, 0x64, 0x64, 0x64, 0x63, 0x73, 0x08,
+ 0x69, 0x63, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x63, 0x73, 0x08,
+ 0x69, 0x63, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x63, 0x73, 0x08,
+ 0x69, 0x63, 0x43, 0x41, 0x40, 0x41, 0x42, 0x41, 0x41, 0x4A, 0x42, 0x41, 0x41, 0x63, 0x73, 0x08,
+ 0x69, 0x63, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x64, 0x73, 0x73, 0x73, 0x63, 0x73, 0x08,
+ 0x69, 0x63, 0x41, 0x43, 0x4B, 0x43, 0x43, 0x41, 0x42, 0x42, 0x40, 0x41, 0x40, 0x63, 0x73, 0x08,
+ 0x69, 0x63, 0x73, 0x73, 0x64, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x63, 0x73, 0x08,
+ 0x69, 0x63, 0x41, 0x40, 0x42, 0x42, 0x41, 0x41, 0x42, 0x4A, 0x42, 0x41, 0x42, 0x63, 0x73, 0x08,
+ 0x69, 0x63, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x64, 0x73, 0x73, 0x73, 0x63, 0x73, 0x08,
+ 0x69, 0x63, 0x41, 0x42, 0x41, 0x43, 0x4B, 0x41, 0x41, 0x41, 0x40, 0x43, 0x41, 0x63, 0x73, 0x08,
+ 0x69, 0x63, 0x73, 0x73, 0x73, 0x73, 0x64, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x63, 0x73, 0x08,
+ 0x69, 0x63, 0x41, 0x40, 0x43, 0x41, 0x42, 0x42, 0x41, 0x4A, 0x42, 0x41, 0x42, 0x63, 0x73, 0x08,
+ 0x69, 0x64, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x64, 0x73, 0x73, 0x73, 0x64, 0x73, 0x08,
+ 0x69, 0x43, 0x43, 0x41, 0x42, 0x42, 0x41, 0x43, 0x41, 0x41, 0x40, 0x42, 0x41, 0x42, 0x73, 0x08,
+ 0x69, 0x42, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x42, 0x73, 0x08,
+ },
+ .collisionData = {0x0381, 0x7C3D, 0x4005, 0x4005, 0x4005, 0x4045, 0x4005, 0x4805, 0x4005, 0x4045, 0x4005, 0x4205, 0x4005, 0x4045, 0x1, 0x1},
+ .coords = {COORDS_XY(5,2), COORDS_XY(9,2)},
+ .direction = TRAINER_DIRS(DIR_WEST, DIR_EAST),
+ .range = TRAINER_RANGE(3, 3),
}
},
[3] =
@@ -1592,11 +1683,28 @@ static const struct TrHillFloor sDataTagNormal_Floors[] =
},
},
.display = {
- .data = {0x31, 0x3B, 0x3B, 0x3B, 0x39, 0x26, 0x1B, 0x1C, 0x1D, 0x25, 0x39, 0x3A, 0x3B, 0x3B, 0x3B, 0x8, 0x1F, 0x17, 0x17, 0x17, 0x17, 0x2B, 0x24, 0x24, 0x24, 0x2B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x8, 0x33, 0x17, 0x17, 0x17, 0x17, 0x2B, 0x3B, 0x3B, 0x3B, 0x2B, 0x35, 0x35, 0x3B, 0x35, 0x35, 0x8, 0x33, 0x17, 0x17, 0x17, 0x17, 0x2B, 0x3B, 0x3B, 0x3B, 0x2B, 0x2C, 0x2C, 0x3B, 0x2C, 0x2C, 0x8, 0x33, 0x17, 0x1F, 0x17, 0x17, 0x2B, 0x3B, 0x3B, 0x3B, 0x2B, 0x17, 0x17, 0x17, 0x17, 0x17, 0x8, 0x34, 0x17, 0x2C, 0x17, 0x17, 0x2B, 0x3B, 0x3B, 0x3B, 0x2C, 0x17, 0x17, 0x17, 0x17, 0x17, 0x8, 0x17, 0x17, 0x17, 0x17, 0x17, 0x2C, 0x3B, 0x3B, 0x3B, 0x3B, 0x17, 0x17, 0x17, 0x17, 0x17, 0x8, 0x1F, 0x17, 0x17, 0x17, 0x17, 0x1F, 0x17, 0x3B, 0x3B, 0x3B, 0x17, 0x17, 0x17, 0x17, 0x17, 0x8, 0x33, 0x17, 0x17, 0x17, 0x17, 0x2B, 0x3B, 0x3B, 0x3B, 0x35, 0x1F, 0x17, 0x17, 0x1F, 0x17, 0x8, 0x34, 0x17, 0x17, 0x17, 0x17, 0x2B, 0x3B, 0x3B, 0x3B, 0x2B, 0x2C, 0x3B, 0x3B, 0x2B, 0x17, 0x8, 0x17, 0x17, 0x17, 0x1F, 0x17, 0x2B, 0x3B, 0x3B, 0x3B, 0x2B, 0x17, 0x17, 0x17, 0x2C, 0x17, 0x8, 0x1F, 0x17, 0x17, 0x2C, 0x17, 0x2B, 0x3B, 0x3B, 0x3B, 0x2B, 0x17, 0x3B, 0x1F, 0x3B, 0x17, 0x8, 0x33, 0x17, 0x17, 0x17, 0x17, 0x2B, 0x3B, 0x3B, 0x3B, 0x2B, 0x17, 0x3B, 0x2B, 0x3B, 0x17, 0x8, 0x33, 0x17, 0x17, 0x17, 0x17, 0x2B, 0x35, 0x35, 0x35, 0x2B, 0x17, 0x3B, 0x2C, 0x3B, 0x17, 0x8, 0x34, 0x17, 0x17, 0x17, 0x17, 0x2C, 0x2C, 0x2C, 0x2C, 0x2C, 0x17, 0x17, 0x17, 0x17, 0x17, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8},
- .unk3A0 = {0x381, 0x7C1, 0x8441, 0x8477, 0x8441, 0xA441, 0x401, 0x1, 0x8401, 0x8465, 0x445, 0x1441, 0x8449, 0x8449, 0x87C1, 0xFFFF},
- .coords = {71, 167},
- .direction = 0x1,
- .range = 0x33,
+ .metatileData = {
+ 0x31, 0x3B, 0x3B, 0x3B, 0x39, 0x26, 0x1B, 0x1C, 0x1D, 0x25, 0x39, 0x3A, 0x3B, 0x3B, 0x3B, 0x08,
+ 0x1F, 0x17, 0x17, 0x17, 0x17, 0x2B, 0x24, 0x24, 0x24, 0x2B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x08,
+ 0x33, 0x17, 0x17, 0x17, 0x17, 0x2B, 0x3B, 0x3B, 0x3B, 0x2B, 0x35, 0x35, 0x3B, 0x35, 0x35, 0x08,
+ 0x33, 0x17, 0x17, 0x17, 0x17, 0x2B, 0x3B, 0x3B, 0x3B, 0x2B, 0x2C, 0x2C, 0x3B, 0x2C, 0x2C, 0x08,
+ 0x33, 0x17, 0x1F, 0x17, 0x17, 0x2B, 0x3B, 0x3B, 0x3B, 0x2B, 0x17, 0x17, 0x17, 0x17, 0x17, 0x08,
+ 0x34, 0x17, 0x2C, 0x17, 0x17, 0x2B, 0x3B, 0x3B, 0x3B, 0x2C, 0x17, 0x17, 0x17, 0x17, 0x17, 0x08,
+ 0x17, 0x17, 0x17, 0x17, 0x17, 0x2C, 0x3B, 0x3B, 0x3B, 0x3B, 0x17, 0x17, 0x17, 0x17, 0x17, 0x08,
+ 0x1F, 0x17, 0x17, 0x17, 0x17, 0x1F, 0x17, 0x3B, 0x3B, 0x3B, 0x17, 0x17, 0x17, 0x17, 0x17, 0x08,
+ 0x33, 0x17, 0x17, 0x17, 0x17, 0x2B, 0x3B, 0x3B, 0x3B, 0x35, 0x1F, 0x17, 0x17, 0x1F, 0x17, 0x08,
+ 0x34, 0x17, 0x17, 0x17, 0x17, 0x2B, 0x3B, 0x3B, 0x3B, 0x2B, 0x2C, 0x3B, 0x3B, 0x2B, 0x17, 0x08,
+ 0x17, 0x17, 0x17, 0x1F, 0x17, 0x2B, 0x3B, 0x3B, 0x3B, 0x2B, 0x17, 0x17, 0x17, 0x2C, 0x17, 0x08,
+ 0x1F, 0x17, 0x17, 0x2C, 0x17, 0x2B, 0x3B, 0x3B, 0x3B, 0x2B, 0x17, 0x3B, 0x1F, 0x3B, 0x17, 0x08,
+ 0x33, 0x17, 0x17, 0x17, 0x17, 0x2B, 0x3B, 0x3B, 0x3B, 0x2B, 0x17, 0x3B, 0x2B, 0x3B, 0x17, 0x08,
+ 0x33, 0x17, 0x17, 0x17, 0x17, 0x2B, 0x35, 0x35, 0x35, 0x2B, 0x17, 0x3B, 0x2C, 0x3B, 0x17, 0x08,
+ 0x34, 0x17, 0x17, 0x17, 0x17, 0x2C, 0x2C, 0x2C, 0x2C, 0x2C, 0x17, 0x17, 0x17, 0x17, 0x17, 0x08,
+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
+ },
+ .collisionData = {0x0381, 0x7C1, 0x8441, 0x8477, 0x8441, 0xA441, 0x0401, 0x1, 0x8401, 0x8465, 0x0445, 0x1441, 0x8449, 0x8449, 0x87C1, 0xFFFF},
+ .coords = {COORDS_XY(7,4), COORDS_XY(7,10)},
+ .direction = TRAINER_DIRS(DIR_SOUTH, DIR_NORTH),
+ .range = TRAINER_RANGE(3, 3),
}
},
};
@@ -1896,11 +2004,28 @@ static const struct TrHillFloor sDataTagVariety_Floors[] = {
},
},
.display = {
- .data = {0x31, 0x3B, 0x3B, 0x3B, 0x39, 0x39, 0x13, 0x14, 0x15, 0x38, 0x39, 0x3A, 0x3B, 0x3B, 0x3B, 0x8, 0x40, 0x41, 0x41, 0x41, 0x41, 0x41, 0x42, 0x43, 0x43, 0x43, 0x43, 0x43, 0x40, 0x41, 0x41, 0x8, 0x40, 0xFB, 0x43, 0x41, 0x41, 0x41, 0x42, 0x40, 0x43, 0x41, 0x42, 0x42, 0x42, 0xFB, 0x41, 0x8, 0x40, 0x41, 0xFB, 0x41, 0x41, 0x41, 0x42, 0x40, 0x43, 0x41, 0x43, 0x43, 0xFB, 0x40, 0x41, 0x8, 0x40, 0x41, 0x41, 0xFB, 0x43, 0x41, 0x42, 0x40, 0x43, 0x43, 0x43, 0xFB, 0x41, 0x40, 0x41, 0x8, 0x40, 0x41, 0x41, 0x41, 0x42, 0x42, 0x42, 0x40, 0x43, 0x43, 0x43, 0x41, 0x41, 0x40, 0x41, 0x8, 0x40, 0x41, 0x41, 0x41, 0xFE, 0xFE, 0xFE, 0xFB, 0xFE, 0xFE, 0xFE, 0x41, 0x41, 0x40, 0x41, 0x8, 0x40, 0x41, 0x41, 0x41, 0xFE, 0xFE, 0xFE, 0xFB, 0xFE, 0xFE, 0xFE, 0x41, 0x41, 0x40, 0x41, 0x8, 0x40, 0x41, 0x42, 0x41, 0xFE, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFE, 0x41, 0x41, 0x40, 0x41, 0x8, 0x40, 0x41, 0x41, 0x41, 0xFE, 0xFE, 0xFE, 0xFB, 0xFE, 0xFE, 0xFE, 0x41, 0x41, 0x40, 0x41, 0x8, 0x40, 0x41, 0x41, 0x41, 0xFE, 0xFE, 0xFE, 0xFB, 0xFE, 0xFE, 0xFE, 0x41, 0x41, 0x40, 0x41, 0x8, 0x40, 0x42, 0x41, 0x43, 0x43, 0x43, 0x41, 0x40, 0x42, 0x42, 0x42, 0x42, 0x41, 0x40, 0x41, 0x8, 0x40, 0x40, 0x41, 0xFB, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0xFB, 0x41, 0x40, 0x41, 0x8, 0x40, 0x40, 0xFB, 0x43, 0x43, 0x41, 0x41, 0x41, 0x42, 0x42, 0x42, 0x42, 0xFB, 0x40, 0x41, 0x8, 0x40, 0xFB, 0x43, 0x43, 0x41, 0x41, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0xFB, 0x41, 0x8, 0x40, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x8},
- .unk3A0 = {0x381, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1},
- .coords = {133, 137},
- .direction = 0x23,
- .range = 0x33,
+ .metatileData = {
+ 0x31, 0x3B, 0x3B, 0x3B, 0x39, 0x39, 0x13, 0x14, 0x15, 0x38, 0x39, 0x3A, 0x3B, 0x3B, 0x3B, 0x08,
+ 0x40, 0x41, 0x41, 0x41, 0x41, 0x41, 0x42, 0x43, 0x43, 0x43, 0x43, 0x43, 0x40, 0x41, 0x41, 0x08,
+ 0x40, 0xFB, 0x43, 0x41, 0x41, 0x41, 0x42, 0x40, 0x43, 0x41, 0x42, 0x42, 0x42, 0xFB, 0x41, 0x08,
+ 0x40, 0x41, 0xFB, 0x41, 0x41, 0x41, 0x42, 0x40, 0x43, 0x41, 0x43, 0x43, 0xFB, 0x40, 0x41, 0x08,
+ 0x40, 0x41, 0x41, 0xFB, 0x43, 0x41, 0x42, 0x40, 0x43, 0x43, 0x43, 0xFB, 0x41, 0x40, 0x41, 0x08,
+ 0x40, 0x41, 0x41, 0x41, 0x42, 0x42, 0x42, 0x40, 0x43, 0x43, 0x43, 0x41, 0x41, 0x40, 0x41, 0x08,
+ 0x40, 0x41, 0x41, 0x41, 0xFE, 0xFE, 0xFE, 0xFB, 0xFE, 0xFE, 0xFE, 0x41, 0x41, 0x40, 0x41, 0x08,
+ 0x40, 0x41, 0x41, 0x41, 0xFE, 0xFE, 0xFE, 0xFB, 0xFE, 0xFE, 0xFE, 0x41, 0x41, 0x40, 0x41, 0x08,
+ 0x40, 0x41, 0x42, 0x41, 0xFE, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFE, 0x41, 0x41, 0x40, 0x41, 0x08,
+ 0x40, 0x41, 0x41, 0x41, 0xFE, 0xFE, 0xFE, 0xFB, 0xFE, 0xFE, 0xFE, 0x41, 0x41, 0x40, 0x41, 0x08,
+ 0x40, 0x41, 0x41, 0x41, 0xFE, 0xFE, 0xFE, 0xFB, 0xFE, 0xFE, 0xFE, 0x41, 0x41, 0x40, 0x41, 0x08,
+ 0x40, 0x42, 0x41, 0x43, 0x43, 0x43, 0x41, 0x40, 0x42, 0x42, 0x42, 0x42, 0x41, 0x40, 0x41, 0x08,
+ 0x40, 0x40, 0x41, 0xFB, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0xFB, 0x41, 0x40, 0x41, 0x08,
+ 0x40, 0x40, 0xFB, 0x43, 0x43, 0x41, 0x41, 0x41, 0x42, 0x42, 0x42, 0x42, 0xFB, 0x40, 0x41, 0x08,
+ 0x40, 0xFB, 0x43, 0x43, 0x41, 0x41, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0x43, 0xFB, 0x41, 0x08,
+ 0x40, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x08,
+ },
+ .collisionData = {0x0381, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1},
+ .coords = {COORDS_XY(5,8), COORDS_XY(9,8)},
+ .direction = TRAINER_DIRS(DIR_WEST, DIR_EAST),
+ .range = TRAINER_RANGE(3, 3),
}
},
[1] =
@@ -2219,11 +2344,28 @@ static const struct TrHillFloor sDataTagVariety_Floors[] = {
},
},
.display = {
- .data = {0x31, 0x3B, 0x3B, 0x3B, 0x39, 0x39, 0x13, 0x14, 0x15, 0x38, 0x39, 0x3A, 0x3B, 0x3B, 0x3B, 0x8, 0x91, 0x9B, 0x9C, 0x96, 0x40, 0x40, 0x96, 0x9B, 0x96, 0x40, 0x40, 0x96, 0x9B, 0x9C, 0x9B, 0x8, 0x9C, 0x9B, 0x96, 0x40, 0xDB, 0xDB, 0x40, 0x96, 0x40, 0xDB, 0xDB, 0x42, 0x96, 0x9B, 0x9B, 0x8, 0x91, 0x96, 0x40, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0x42, 0x96, 0x9C, 0x8, 0x91, 0x42, 0xDB, 0xDB, 0xD6, 0xD6, 0xD6, 0xDB, 0xD6, 0xD6, 0xD6, 0xDB, 0xDB, 0x42, 0x9B, 0x8, 0x96, 0x42, 0xDB, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xDB, 0x42, 0x96, 0x8, 0x96, 0x42, 0xDB, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xDB, 0x42, 0x96, 0x8, 0x96, 0x42, 0xDB, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xDB, 0x42, 0x96, 0x8, 0x96, 0x42, 0xDB, 0xDB, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xDB, 0xDB, 0x42, 0x96, 0x8, 0x91, 0x96, 0x42, 0xDB, 0xDB, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xDB, 0xDB, 0x42, 0x96, 0x9B, 0x8, 0x91, 0x9B, 0x96, 0x42, 0xDB, 0xDB, 0xD6, 0xD6, 0xD6, 0xDB, 0xDB, 0x42, 0x96, 0x9B, 0x9C, 0x8, 0x9C, 0x9B, 0x9B, 0x96, 0x42, 0xDB, 0xDB, 0xD6, 0xDB, 0xDB, 0x42, 0x96, 0x9B, 0x9B, 0x9B, 0x8, 0x96, 0x9B, 0x9B, 0x9B, 0x96, 0x41, 0xDB, 0xDB, 0xDB, 0x42, 0x96, 0x9B, 0x9B, 0x9C, 0x96, 0x8, 0xD6, 0x96, 0x9C, 0x9B, 0x9B, 0x96, 0x41, 0xDB, 0x42, 0x96, 0x9B, 0x9B, 0x9B, 0x96, 0xD6, 0x8, 0x9C, 0xD6, 0x96, 0x9B, 0x9C, 0x9B, 0x96, 0x40, 0x96, 0x9B, 0x9C, 0x9B, 0x96, 0xD6, 0x9C, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8},
- .unk3A0 = {0x381, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0xFFFF},
- .coords = {131, 139},
- .direction = 0x23,
- .range = 0x77,
+ .metatileData = {
+ 0x31, 0x3B, 0x3B, 0x3B, 0x39, 0x39, 0x13, 0x14, 0x15, 0x38, 0x39, 0x3A, 0x3B, 0x3B, 0x3B, 0x08,
+ 0x91, 0x9B, 0x9C, 0x96, 0x40, 0x40, 0x96, 0x9B, 0x96, 0x40, 0x40, 0x96, 0x9B, 0x9C, 0x9B, 0x08,
+ 0x9C, 0x9B, 0x96, 0x40, 0xDB, 0xDB, 0x40, 0x96, 0x40, 0xDB, 0xDB, 0x42, 0x96, 0x9B, 0x9B, 0x08,
+ 0x91, 0x96, 0x40, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0x42, 0x96, 0x9C, 0x08,
+ 0x91, 0x42, 0xDB, 0xDB, 0xD6, 0xD6, 0xD6, 0xDB, 0xD6, 0xD6, 0xD6, 0xDB, 0xDB, 0x42, 0x9B, 0x08,
+ 0x96, 0x42, 0xDB, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xDB, 0x42, 0x96, 0x08,
+ 0x96, 0x42, 0xDB, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xDB, 0x42, 0x96, 0x08,
+ 0x96, 0x42, 0xDB, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xDB, 0x42, 0x96, 0x08,
+ 0x96, 0x42, 0xDB, 0xDB, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xDB, 0xDB, 0x42, 0x96, 0x08,
+ 0x91, 0x96, 0x42, 0xDB, 0xDB, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xDB, 0xDB, 0x42, 0x96, 0x9B, 0x08,
+ 0x91, 0x9B, 0x96, 0x42, 0xDB, 0xDB, 0xD6, 0xD6, 0xD6, 0xDB, 0xDB, 0x42, 0x96, 0x9B, 0x9C, 0x08,
+ 0x9C, 0x9B, 0x9B, 0x96, 0x42, 0xDB, 0xDB, 0xD6, 0xDB, 0xDB, 0x42, 0x96, 0x9B, 0x9B, 0x9B, 0x08,
+ 0x96, 0x9B, 0x9B, 0x9B, 0x96, 0x41, 0xDB, 0xDB, 0xDB, 0x42, 0x96, 0x9B, 0x9B, 0x9C, 0x96, 0x08,
+ 0xD6, 0x96, 0x9C, 0x9B, 0x9B, 0x96, 0x41, 0xDB, 0x42, 0x96, 0x9B, 0x9B, 0x9B, 0x96, 0xD6, 0x08,
+ 0x9C, 0xD6, 0x96, 0x9B, 0x9C, 0x9B, 0x96, 0x40, 0x96, 0x9B, 0x9C, 0x9B, 0x96, 0xD6, 0x9C, 0x08,
+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
+ },
+ .collisionData = {0x0381, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0xFFFF},
+ .coords = {COORDS_XY(3,8), COORDS_XY(11,8)},
+ .direction = TRAINER_DIRS(DIR_WEST, DIR_EAST),
+ .range = TRAINER_RANGE(7, 7),
}
},
[2] =
@@ -2523,11 +2665,28 @@ static const struct TrHillFloor sDataTagVariety_Floors[] = {
},
},
.display = {
- .data = {0x31, 0x3B, 0x3B, 0x3B, 0x39, 0x39, 0x1B, 0x1C, 0x1D, 0x38, 0x39, 0x3A, 0x3B, 0x3B, 0x3B, 0x8, 0x91, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x84, 0x84, 0x84, 0x9A, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x8, 0x17, 0xB2, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xB0, 0x17, 0xB2, 0xA1, 0x8, 0x17, 0xBB, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0xBB, 0x17, 0x17, 0x17, 0x8, 0x17, 0xB2, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xB0, 0x17, 0xB2, 0xA1, 0x8, 0x17, 0x17, 0x17, 0xBB, 0x17, 0x17, 0x17, 0x17, 0x17, 0xBB, 0x17, 0x17, 0x17, 0x17, 0x17, 0x8, 0x17, 0xB2, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xB0, 0x17, 0xB2, 0xA1, 0x8, 0x17, 0x17, 0xBB, 0x17, 0x17, 0x17, 0x17, 0xBB, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x8, 0x17, 0xB2, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xB0, 0x17, 0xB2, 0xA1, 0x8, 0x17, 0x17, 0x17, 0x17, 0x17, 0xBB, 0x17, 0x17, 0x17, 0x17, 0xBB, 0x17, 0x17, 0x17, 0x17, 0x8, 0x17, 0xB2, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xB0, 0x17, 0xB2, 0xA1, 0x8, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0xBB, 0x17, 0x17, 0xBB, 0x17, 0x17, 0x8, 0x17, 0xB2, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xB0, 0x17, 0xB2, 0xA1, 0x8, 0x17, 0x17, 0x17, 0x17, 0xBB, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x8, 0x17, 0xB2, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xB0, 0x17, 0xB2, 0xA1, 0x8, 0x17, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0x17, 0xBB, 0xBB, 0x8},
- .unk3A0 = {0x381, 0x381, 0x7FF7, 0x1, 0x7FF7, 0x1, 0x7FF7, 0x1, 0x7FF7, 0x1, 0x7FF7, 0x1, 0x7FF7, 0x1, 0x7FF7, 0x1},
- .coords = {25, 30},
- .direction = 0x23,
- .range = 0x44,
+ .metatileData = {
+ 0x31, 0x3B, 0x3B, 0x3B, 0x39, 0x39, 0x1B, 0x1C, 0x1D, 0x38, 0x39, 0x3A, 0x3B, 0x3B, 0x3B, 0x08,
+ 0x91, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x84, 0x84, 0x84, 0x9A, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x08,
+ 0x17, 0xB2, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xB0, 0x17, 0xB2, 0xA1, 0x08,
+ 0x17, 0xBB, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0xBB, 0x17, 0x17, 0x17, 0x08,
+ 0x17, 0xB2, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xB0, 0x17, 0xB2, 0xA1, 0x08,
+ 0x17, 0x17, 0x17, 0xBB, 0x17, 0x17, 0x17, 0x17, 0x17, 0xBB, 0x17, 0x17, 0x17, 0x17, 0x17, 0x08,
+ 0x17, 0xB2, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xB0, 0x17, 0xB2, 0xA1, 0x08,
+ 0x17, 0x17, 0xBB, 0x17, 0x17, 0x17, 0x17, 0xBB, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x08,
+ 0x17, 0xB2, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xB0, 0x17, 0xB2, 0xA1, 0x08,
+ 0x17, 0x17, 0x17, 0x17, 0x17, 0xBB, 0x17, 0x17, 0x17, 0x17, 0xBB, 0x17, 0x17, 0x17, 0x17, 0x08,
+ 0x17, 0xB2, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xB0, 0x17, 0xB2, 0xA1, 0x08,
+ 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0xBB, 0x17, 0x17, 0xBB, 0x17, 0x17, 0x08,
+ 0x17, 0xB2, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xB0, 0x17, 0xB2, 0xA1, 0x08,
+ 0x17, 0x17, 0x17, 0x17, 0xBB, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x17, 0x08,
+ 0x17, 0xB2, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xB0, 0x17, 0xB2, 0xA1, 0x08,
+ 0x17, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0x17, 0xBB, 0xBB, 0x08,
+ },
+ .collisionData = {0x0381, 0x0381, 0x7FF7, 0x1, 0x7FF7, 0x1, 0x7FF7, 0x1, 0x7FF7, 0x1, 0x7FF7, 0x1, 0x7FF7, 0x1, 0x7FF7, 0x1},
+ .coords = {COORDS_XY(9,1), COORDS_XY(14,1)},
+ .direction = TRAINER_DIRS(DIR_WEST, DIR_EAST),
+ .range = TRAINER_RANGE(4, 4),
}
},
[3] =
@@ -2818,11 +2977,28 @@ static const struct TrHillFloor sDataTagVariety_Floors[] = {
},
},
.display = {
- .data = {0x31, 0x3B, 0x3B, 0x3B, 0x39, 0x39, 0x13, 0x14, 0x15, 0x38, 0x39, 0x3A, 0x3B, 0x3B, 0x3B, 0x8, 0x69, 0x40, 0x6D, 0x41, 0x73, 0x41, 0x5E, 0x41, 0x71, 0x42, 0x45, 0x45, 0x45, 0x45, 0x45, 0x8, 0x43, 0x73, 0x64, 0x73, 0x43, 0x73, 0x64, 0x73, 0x41, 0x73, 0x45, 0x45, 0x45, 0x45, 0x45, 0x8, 0x65, 0x40, 0x73, 0x42, 0x6D, 0x42, 0x73, 0x42, 0x6D, 0x42, 0x45, 0x45, 0x45, 0x45, 0x45, 0x8, 0x6C, 0x73, 0x41, 0x73, 0x64, 0x73, 0x40, 0x73, 0x64, 0x73, 0x40, 0x73, 0x42, 0x73, 0x41, 0x8, 0x69, 0x40, 0x6D, 0x41, 0x73, 0x40, 0x6D, 0x43, 0x73, 0x43, 0x6D, 0x42, 0x73, 0x42, 0x6D, 0x8, 0x40, 0x73, 0x64, 0x73, 0x43, 0x73, 0x64, 0x73, 0x41, 0x73, 0x64, 0x73, 0x41, 0x73, 0x64, 0x8, 0x65, 0x42, 0x73, 0x42, 0x6D, 0x41, 0x73, 0x40, 0x6D, 0x42, 0x73, 0x41, 0x6D, 0x42, 0x73, 0x8, 0x6C, 0x73, 0x41, 0x73, 0x64, 0x73, 0x42, 0x73, 0x64, 0x73, 0x42, 0x73, 0x64, 0x73, 0x42, 0x8, 0x69, 0x40, 0x6D, 0x41, 0x73, 0x41, 0x6D, 0x42, 0x73, 0x43, 0x6D, 0x41, 0x73, 0x43, 0x6D, 0x8, 0x40, 0x73, 0x64, 0x73, 0x43, 0x73, 0x64, 0x73, 0x43, 0x73, 0x64, 0x73, 0x42, 0x73, 0x64, 0x8, 0x65, 0x42, 0x73, 0x42, 0x6D, 0x43, 0x73, 0x42, 0x6D, 0x42, 0x73, 0x41, 0x6D, 0x40, 0x73, 0x8, 0x6C, 0x73, 0x40, 0x73, 0x64, 0x73, 0x41, 0x73, 0x64, 0x73, 0x42, 0x73, 0x64, 0x73, 0x42, 0x8, 0x69, 0x40, 0x6D, 0x42, 0x73, 0x42, 0x6D, 0x43, 0x73, 0x40, 0x6D, 0x41, 0x73, 0x40, 0x6D, 0x8, 0x40, 0x73, 0x64, 0x73, 0x40, 0x73, 0x64, 0x73, 0x40, 0x73, 0x64, 0x73, 0x43, 0x73, 0x64, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8},
- .unk3A0 = {0x381, 0x1, 0x2201, 0x1, 0x8881, 0x1, 0x2223, 0x1, 0x8889, 0x1, 0x2223, 0x1, 0x8889, 0x1, 0x2223, 0xFFFF},
- .coords = {42, 46},
- .direction = 0x23,
- .range = 0x33,
+ .metatileData = {
+ 0x31, 0x3B, 0x3B, 0x3B, 0x39, 0x39, 0x13, 0x14, 0x15, 0x38, 0x39, 0x3A, 0x3B, 0x3B, 0x3B, 0x08,
+ 0x69, 0x40, 0x6D, 0x41, 0x73, 0x41, 0x5E, 0x41, 0x71, 0x42, 0x45, 0x45, 0x45, 0x45, 0x45, 0x08,
+ 0x43, 0x73, 0x64, 0x73, 0x43, 0x73, 0x64, 0x73, 0x41, 0x73, 0x45, 0x45, 0x45, 0x45, 0x45, 0x08,
+ 0x65, 0x40, 0x73, 0x42, 0x6D, 0x42, 0x73, 0x42, 0x6D, 0x42, 0x45, 0x45, 0x45, 0x45, 0x45, 0x08,
+ 0x6C, 0x73, 0x41, 0x73, 0x64, 0x73, 0x40, 0x73, 0x64, 0x73, 0x40, 0x73, 0x42, 0x73, 0x41, 0x08,
+ 0x69, 0x40, 0x6D, 0x41, 0x73, 0x40, 0x6D, 0x43, 0x73, 0x43, 0x6D, 0x42, 0x73, 0x42, 0x6D, 0x08,
+ 0x40, 0x73, 0x64, 0x73, 0x43, 0x73, 0x64, 0x73, 0x41, 0x73, 0x64, 0x73, 0x41, 0x73, 0x64, 0x08,
+ 0x65, 0x42, 0x73, 0x42, 0x6D, 0x41, 0x73, 0x40, 0x6D, 0x42, 0x73, 0x41, 0x6D, 0x42, 0x73, 0x08,
+ 0x6C, 0x73, 0x41, 0x73, 0x64, 0x73, 0x42, 0x73, 0x64, 0x73, 0x42, 0x73, 0x64, 0x73, 0x42, 0x08,
+ 0x69, 0x40, 0x6D, 0x41, 0x73, 0x41, 0x6D, 0x42, 0x73, 0x43, 0x6D, 0x41, 0x73, 0x43, 0x6D, 0x08,
+ 0x40, 0x73, 0x64, 0x73, 0x43, 0x73, 0x64, 0x73, 0x43, 0x73, 0x64, 0x73, 0x42, 0x73, 0x64, 0x08,
+ 0x65, 0x42, 0x73, 0x42, 0x6D, 0x43, 0x73, 0x42, 0x6D, 0x42, 0x73, 0x41, 0x6D, 0x40, 0x73, 0x08,
+ 0x6C, 0x73, 0x40, 0x73, 0x64, 0x73, 0x41, 0x73, 0x64, 0x73, 0x42, 0x73, 0x64, 0x73, 0x42, 0x08,
+ 0x69, 0x40, 0x6D, 0x42, 0x73, 0x42, 0x6D, 0x43, 0x73, 0x40, 0x6D, 0x41, 0x73, 0x40, 0x6D, 0x08,
+ 0x40, 0x73, 0x64, 0x73, 0x40, 0x73, 0x64, 0x73, 0x40, 0x73, 0x64, 0x73, 0x43, 0x73, 0x64, 0x08,
+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
+ },
+ .collisionData = {0x0381, 0x1, 0x2201, 0x1, 0x8881, 0x1, 0x2223, 0x1, 0x8889, 0x1, 0x2223, 0x1, 0x8889, 0x1, 0x2223, 0xFFFF},
+ .coords = {COORDS_XY(10,2), COORDS_XY(14,2)},
+ .direction = TRAINER_DIRS(DIR_WEST, DIR_EAST),
+ .range = TRAINER_RANGE(3, 3),
}
},
};
@@ -3127,11 +3303,28 @@ static const struct TrHillFloor sDataTagUnique_Floors[] = {
},
},
.display = {
- .data = {0xF1, 0xF5, 0xFB, 0xF5, 0xE6, 0xE6, 0x1B, 0x14, 0x15, 0xF8, 0xF9, 0xFA, 0xFB, 0xFB, 0xFB, 0x8, 0xF1, 0xEB, 0xFB, 0xEB, 0xEC, 0xEC, 0xEC, 0xF9, 0xE6, 0xEE, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0x8, 0xF1, 0xEB, 0xFB, 0xEB, 0xFB, 0x9B, 0x9B, 0xFB, 0xEB, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEB, 0x8, 0xF1, 0xEB, 0xFB, 0xEB, 0x9B, 0xDB, 0xDB, 0x9B, 0xEC, 0xFB, 0xF5, 0xF5, 0xF5, 0xFB, 0xEB, 0x8, 0xF1, 0xEB, 0xFB, 0xEB, 0xF5, 0x95, 0x95, 0xF5, 0xF5, 0xF5, 0xEB, 0xEC, 0xEB, 0xFB, 0xEB, 0x8, 0xED, 0xEB, 0xFB, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEB, 0xFB, 0xEB, 0xFB, 0xEB, 0x8, 0xF4, 0xEB, 0xFB, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xEB, 0xFB, 0xEB, 0xFB, 0xEB, 0x8, 0xF1, 0xEB, 0xFB, 0xEB, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xFB, 0xEB, 0xFB, 0xEC, 0x8, 0xF1, 0xEB, 0xFB, 0xEB, 0xFB, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xEB, 0xF5, 0xFB, 0x8, 0xF1, 0xEC, 0xFB, 0xEB, 0xFB, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEB, 0xFB, 0x8, 0xF1, 0xF5, 0xF5, 0xEB, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xFB, 0xEB, 0xFB, 0x8, 0xF1, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEB, 0xFB, 0xEB, 0xFB, 0x8, 0xF1, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xEB, 0xFB, 0xEB, 0xFB, 0x8, 0xF1, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xFB, 0xEC, 0xFB, 0x8, 0xF1, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8},
- .unk3A0 = {0x381, 0x5E01, 0x50FF, 0x5083, 0x503B, 0x5FEB, 0xC02B, 0x5FEB, 0x5009, 0x57FD, 0x1005, 0x7FF5, 0x15, 0x7FF5, 0x1, 0xFFFF},
- .coords = {52, 55},
- .direction = 0x23,
- .range = 0x22,
+ .metatileData = {
+ 0xF1, 0xF5, 0xFB, 0xF5, 0xE6, 0xE6, 0x1B, 0x14, 0x15, 0xF8, 0xF9, 0xFA, 0xFB, 0xFB, 0xFB, 0x08,
+ 0xF1, 0xEB, 0xFB, 0xEB, 0xEC, 0xEC, 0xEC, 0xF9, 0xE6, 0xEE, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0x08,
+ 0xF1, 0xEB, 0xFB, 0xEB, 0xFB, 0x9B, 0x9B, 0xFB, 0xEB, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEB, 0x08,
+ 0xF1, 0xEB, 0xFB, 0xEB, 0x9B, 0xDB, 0xDB, 0x9B, 0xEC, 0xFB, 0xF5, 0xF5, 0xF5, 0xFB, 0xEB, 0x08,
+ 0xF1, 0xEB, 0xFB, 0xEB, 0xF5, 0x95, 0x95, 0xF5, 0xF5, 0xF5, 0xEB, 0xEC, 0xEB, 0xFB, 0xEB, 0x08,
+ 0xED, 0xEB, 0xFB, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEB, 0xFB, 0xEB, 0xFB, 0xEB, 0x08,
+ 0xF4, 0xEB, 0xFB, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xEB, 0xFB, 0xEB, 0xFB, 0xEB, 0x08,
+ 0xF1, 0xEB, 0xFB, 0xEB, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xFB, 0xEB, 0xFB, 0xEC, 0x08,
+ 0xF1, 0xEB, 0xFB, 0xEB, 0xFB, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xEB, 0xF5, 0xFB, 0x08,
+ 0xF1, 0xEC, 0xFB, 0xEB, 0xFB, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEB, 0xFB, 0x08,
+ 0xF1, 0xF5, 0xF5, 0xEB, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xFB, 0xEB, 0xFB, 0x08,
+ 0xF1, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEB, 0xFB, 0xEB, 0xFB, 0x08,
+ 0xF1, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xEB, 0xFB, 0xEB, 0xFB, 0x08,
+ 0xF1, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xFB, 0xEC, 0xFB, 0x08,
+ 0xF1, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0x08,
+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
+ },
+ .collisionData = {0x0381, 0x5E01, 0x50FF, 0x5083, 0x503B, 0x5FEB, 0xC02B, 0x5FEB, 0x5009, 0x57FD, 0x1005, 0x7FF5, 0x15, 0x7FF5, 0x1, 0xFFFF},
+ .coords = {COORDS_XY(4,3), COORDS_XY(7,3)},
+ .direction = TRAINER_DIRS(DIR_WEST, DIR_EAST),
+ .range = TRAINER_RANGE(2, 2),
}
},
[1] =
@@ -3431,11 +3624,28 @@ static const struct TrHillFloor sDataTagUnique_Floors[] = {
},
},
.display = {
- .data = {0x31, 0x3B, 0x3B, 0x3B, 0x39, 0x26, 0x1B, 0x1C, 0x1D, 0x25, 0x39, 0x3A, 0x3B, 0x3B, 0x3B, 0x8, 0x2D, 0x3B, 0x3B, 0x3B, 0x35, 0x2C, 0x23, 0x24, 0x23, 0x2C, 0x35, 0x3B, 0x3B, 0x3B, 0x3B, 0x8, 0x94, 0x87, 0x9B, 0x87, 0x8C, 0x87, 0x8B, 0x87, 0x8C, 0x87, 0x8C, 0x87, 0x95, 0x87, 0x9B, 0x8, 0x91, 0x8F, 0x9B, 0x8F, 0x9B, 0x8F, 0x8C, 0x8F, 0x9B, 0x8F, 0x9B, 0x8F, 0x8C, 0x8F, 0x95, 0x8, 0x8D, 0x97, 0x95, 0x97, 0x9B, 0x97, 0x95, 0x97, 0x95, 0x97, 0x9B, 0x97, 0x9B, 0x97, 0x8C, 0x8, 0x94, 0x87, 0x8C, 0x87, 0x9B, 0x87, 0x8C, 0x87, 0x8B, 0x87, 0x9B, 0x9B, 0x9B, 0x87, 0x9B, 0x8, 0x91, 0x8F, 0x9B, 0x8F, 0x95, 0x8F, 0x9B, 0x8F, 0x8C, 0x8F, 0x95, 0x9B, 0x95, 0x8F, 0x9B, 0x8, 0x91, 0x97, 0x95, 0x97, 0x8C, 0x97, 0x95, 0x97, 0x95, 0x97, 0x8C, 0x9B, 0x8C, 0x97, 0x95, 0x8, 0x91, 0x87, 0x8C, 0x87, 0x9B, 0x87, 0x8C, 0x87, 0x8B, 0x87, 0x9B, 0x87, 0x95, 0x87, 0x8C, 0x8, 0x8D, 0x8F, 0x9B, 0x8F, 0x95, 0x8F, 0x9B, 0x8F, 0x8C, 0x8F, 0x9B, 0x8F, 0x8C, 0x8F, 0x9B, 0x8, 0x94, 0x97, 0x95, 0x97, 0x8C, 0x97, 0x9B, 0x97, 0x95, 0x97, 0x95, 0x97, 0x9B, 0x97, 0x9B, 0x8, 0x91, 0x87, 0x8C, 0x87, 0x95, 0x87, 0x95, 0x87, 0x8B, 0x87, 0x8C, 0x87, 0x9B, 0x87, 0x9B, 0x8, 0x91, 0x8F, 0x95, 0x8F, 0x8B, 0x8F, 0x8C, 0x8F, 0x8C, 0x8F, 0x9B, 0x8F, 0x95, 0x8F, 0x9B, 0x8, 0x91, 0x97, 0x8C, 0x97, 0x8C, 0x97, 0x9B, 0x97, 0x9B, 0x97, 0x9B, 0x97, 0x8B, 0x97, 0x9B, 0x8, 0x91, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x8C, 0x9B, 0x9B, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8},
- .unk3A0 = {0x381, 0x7C1, 0x8AA1, 0x209, 0x5557, 0xA281, 0x81, 0x5D6D, 0x2283, 0x89, 0xDD55, 0x20A1, 0xA81, 0x7D5D, 0x9, 0xFFFF},
- .coords = {105, 109},
- .direction = 0x23,
- .range = 0x33,
+ .metatileData = {
+ 0x31, 0x3B, 0x3B, 0x3B, 0x39, 0x26, 0x1B, 0x1C, 0x1D, 0x25, 0x39, 0x3A, 0x3B, 0x3B, 0x3B, 0x08,
+ 0x2D, 0x3B, 0x3B, 0x3B, 0x35, 0x2C, 0x23, 0x24, 0x23, 0x2C, 0x35, 0x3B, 0x3B, 0x3B, 0x3B, 0x08,
+ 0x94, 0x87, 0x9B, 0x87, 0x8C, 0x87, 0x8B, 0x87, 0x8C, 0x87, 0x8C, 0x87, 0x95, 0x87, 0x9B, 0x08,
+ 0x91, 0x8F, 0x9B, 0x8F, 0x9B, 0x8F, 0x8C, 0x8F, 0x9B, 0x8F, 0x9B, 0x8F, 0x8C, 0x8F, 0x95, 0x08,
+ 0x8D, 0x97, 0x95, 0x97, 0x9B, 0x97, 0x95, 0x97, 0x95, 0x97, 0x9B, 0x97, 0x9B, 0x97, 0x8C, 0x08,
+ 0x94, 0x87, 0x8C, 0x87, 0x9B, 0x87, 0x8C, 0x87, 0x8B, 0x87, 0x9B, 0x9B, 0x9B, 0x87, 0x9B, 0x08,
+ 0x91, 0x8F, 0x9B, 0x8F, 0x95, 0x8F, 0x9B, 0x8F, 0x8C, 0x8F, 0x95, 0x9B, 0x95, 0x8F, 0x9B, 0x08,
+ 0x91, 0x97, 0x95, 0x97, 0x8C, 0x97, 0x95, 0x97, 0x95, 0x97, 0x8C, 0x9B, 0x8C, 0x97, 0x95, 0x08,
+ 0x91, 0x87, 0x8C, 0x87, 0x9B, 0x87, 0x8C, 0x87, 0x8B, 0x87, 0x9B, 0x87, 0x95, 0x87, 0x8C, 0x08,
+ 0x8D, 0x8F, 0x9B, 0x8F, 0x95, 0x8F, 0x9B, 0x8F, 0x8C, 0x8F, 0x9B, 0x8F, 0x8C, 0x8F, 0x9B, 0x08,
+ 0x94, 0x97, 0x95, 0x97, 0x8C, 0x97, 0x9B, 0x97, 0x95, 0x97, 0x95, 0x97, 0x9B, 0x97, 0x9B, 0x08,
+ 0x91, 0x87, 0x8C, 0x87, 0x95, 0x87, 0x95, 0x87, 0x8B, 0x87, 0x8C, 0x87, 0x9B, 0x87, 0x9B, 0x08,
+ 0x91, 0x8F, 0x95, 0x8F, 0x8B, 0x8F, 0x8C, 0x8F, 0x8C, 0x8F, 0x9B, 0x8F, 0x95, 0x8F, 0x9B, 0x08,
+ 0x91, 0x97, 0x8C, 0x97, 0x8C, 0x97, 0x9B, 0x97, 0x9B, 0x97, 0x9B, 0x97, 0x8B, 0x97, 0x9B, 0x08,
+ 0x91, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x8C, 0x9B, 0x9B, 0x08,
+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
+ },
+ .collisionData = {0x0381, 0x7C1, 0x8AA1, 0x0209, 0x5557, 0xA281, 0x81, 0x5D6D, 0x2283, 0x89, 0xDD55, 0x20A1, 0xA81, 0x7D5D, 0x9, 0xFFFF},
+ .coords = {COORDS_XY(9,6), COORDS_XY(13,6)},
+ .direction = TRAINER_DIRS(DIR_WEST, DIR_EAST),
+ .range = TRAINER_RANGE(3, 3),
}
},
[2] =
@@ -3735,11 +3945,28 @@ static const struct TrHillFloor sDataTagUnique_Floors[] = {
},
},
.display = {
- .data = {0x31, 0x3B, 0x3B, 0x3B, 0x39, 0x39, 0x13, 0x14, 0x15, 0x38, 0x39, 0x3A, 0x3B, 0x3B, 0x3B, 0x8, 0x69, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x7C, 0x46, 0x8, 0x69, 0x46, 0x7A, 0x73, 0x73, 0x73, 0x79, 0x73, 0x73, 0x73, 0x7D, 0x73, 0x73, 0x73, 0x46, 0x8, 0x69, 0x46, 0x73, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x8, 0x69, 0x46, 0x73, 0x73, 0x7B, 0x73, 0x7C, 0x73, 0x7B, 0x73, 0x7A, 0x73, 0x73, 0x73, 0x46, 0x8, 0x69, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x7A, 0x46, 0x8, 0x69, 0x46, 0x73, 0x73, 0x73, 0x73, 0x73, 0x7D, 0x7C, 0x73, 0x7C, 0x73, 0x7B, 0x73, 0x46, 0x8, 0x69, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x7C, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x8, 0x91, 0x46, 0x9B, 0x9B, 0x9B, 0x46, 0x3B, 0x3B, 0x3B, 0x46, 0x9B, 0x9B, 0x9B, 0x9B, 0x46, 0x8, 0x91, 0x46, 0x9B, 0x9B, 0x9B, 0x46, 0x3B, 0x3B, 0x3B, 0x46, 0x9B, 0x9B, 0x9B, 0x9B, 0x46, 0x8, 0x91, 0x46, 0x9B, 0x9B, 0x9B, 0x46, 0x3B, 0x3B, 0x3B, 0x46, 0x9B, 0x9B, 0x9B, 0x9B, 0x46, 0x8, 0xF1, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x8, 0xF1, 0x46, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0x7A, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0x7C, 0x8, 0xF1, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0xFB, 0x8, 0x7C, 0xFB, 0x7B, 0xFB, 0x7A, 0xFB, 0x79, 0xFB, 0xB3, 0xFB, 0x7D, 0xFB, 0x7E, 0xFB, 0x7D, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8},
- .unk3A0 = {0x381, 0x7FFB, 0x4003, 0x5FFF, 0x4003, 0x7FFB, 0x4003, 0x7EFF, 0x4443, 0x4443, 0x4443, 0x7EFF, 0x4001, 0x7FFD, 0x1, 0xFFFF},
- .coords = {150, 152},
- .direction = 0x23,
- .range = 0x11,
+ .metatileData = {
+ 0x31, 0x3B, 0x3B, 0x3B, 0x39, 0x39, 0x13, 0x14, 0x15, 0x38, 0x39, 0x3A, 0x3B, 0x3B, 0x3B, 0x08,
+ 0x69, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x7C, 0x46, 0x08,
+ 0x69, 0x46, 0x7A, 0x73, 0x73, 0x73, 0x79, 0x73, 0x73, 0x73, 0x7D, 0x73, 0x73, 0x73, 0x46, 0x08,
+ 0x69, 0x46, 0x73, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x08,
+ 0x69, 0x46, 0x73, 0x73, 0x7B, 0x73, 0x7C, 0x73, 0x7B, 0x73, 0x7A, 0x73, 0x73, 0x73, 0x46, 0x08,
+ 0x69, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x7A, 0x46, 0x08,
+ 0x69, 0x46, 0x73, 0x73, 0x73, 0x73, 0x73, 0x7D, 0x7C, 0x73, 0x7C, 0x73, 0x7B, 0x73, 0x46, 0x08,
+ 0x69, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x7C, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x08,
+ 0x91, 0x46, 0x9B, 0x9B, 0x9B, 0x46, 0x3B, 0x3B, 0x3B, 0x46, 0x9B, 0x9B, 0x9B, 0x9B, 0x46, 0x08,
+ 0x91, 0x46, 0x9B, 0x9B, 0x9B, 0x46, 0x3B, 0x3B, 0x3B, 0x46, 0x9B, 0x9B, 0x9B, 0x9B, 0x46, 0x08,
+ 0x91, 0x46, 0x9B, 0x9B, 0x9B, 0x46, 0x3B, 0x3B, 0x3B, 0x46, 0x9B, 0x9B, 0x9B, 0x9B, 0x46, 0x08,
+ 0xF1, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x08,
+ 0xF1, 0x46, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0x7A, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0x7C, 0x08,
+ 0xF1, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0xFB, 0x08,
+ 0x7C, 0xFB, 0x7B, 0xFB, 0x7A, 0xFB, 0x79, 0xFB, 0xB3, 0xFB, 0x7D, 0xFB, 0x7E, 0xFB, 0x7D, 0x08,
+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
+ },
+ .collisionData = {0x0381, 0x7FFB, 0x4003, 0x5FFF, 0x4003, 0x7FFB, 0x4003, 0x7EFF, 0x4443, 0x4443, 0x4443, 0x7EFF, 0x4001, 0x7FFD, 0x1, 0xFFFF},
+ .coords = {COORDS_XY(6,9), COORDS_XY(8,9)},
+ .direction = TRAINER_DIRS(DIR_WEST, DIR_EAST),
+ .range = TRAINER_RANGE(1, 1),
}
},
[3] =
@@ -4029,11 +4256,28 @@ static const struct TrHillFloor sDataTagUnique_Floors[] = {
},
},
.display = {
- .data = {0xF1, 0xFB, 0xFB, 0xFB, 0xF9, 0xF9, 0x1B, 0x1C, 0x1D, 0xE5, 0xE6, 0xEE, 0xF5, 0xFB, 0xFB, 0x8, 0xED, 0xF5, 0xF5, 0xF5, 0xFB, 0xFB, 0xEC, 0xEC, 0xEC, 0xEB, 0xEC, 0xEC, 0xEC, 0xFB, 0xFB, 0x8, 0xF4, 0xEC, 0xEC, 0xEC, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xEB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0x8, 0xF1, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xFB, 0xEB, 0xFB, 0xF5, 0xF5, 0xF5, 0xF5, 0x8, 0xF1, 0xEB, 0xEC, 0xEC, 0xEC, 0xEB, 0xEC, 0xEC, 0xFB, 0xEC, 0xFB, 0xEC, 0xEC, 0xEC, 0xEC, 0x8, 0xF1, 0xEB, 0xFB, 0xFB, 0xFB, 0xEB, 0xFB, 0xF5, 0xFB, 0xF5, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0x8, 0xF1, 0xEB, 0xFB, 0xF5, 0xFB, 0xEB, 0xFB, 0xEB, 0xFB, 0xEB, 0xF5, 0xF5, 0xF5, 0xFB, 0xFB, 0x8, 0xF1, 0xEB, 0xFB, 0xEB, 0xFB, 0xEB, 0xFB, 0xEB, 0xFB, 0xEB, 0xEC, 0xEC, 0xEC, 0xFB, 0xFB, 0x8, 0xF1, 0xEB, 0xFB, 0xEB, 0xFB, 0xEB, 0xFB, 0xEB, 0xFB, 0xEB, 0xFB, 0xF5, 0xF5, 0xF5, 0xF5, 0x8, 0xF1, 0xEB, 0xFB, 0xEB, 0xFB, 0xEB, 0xFB, 0xEB, 0xFB, 0xEB, 0xFB, 0xEC, 0xEC, 0xEC, 0xEC, 0x8, 0xF1, 0xEB, 0xFB, 0xEB, 0xFB, 0xEB, 0xFB, 0xEB, 0xFB, 0xEB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0x8, 0xF1, 0xEB, 0xFB, 0xEB, 0xFB, 0xEB, 0xFB, 0xEB, 0xFB, 0xEB, 0xF5, 0xF5, 0xF5, 0xF5, 0xFB, 0x8, 0xF1, 0xEC, 0xFB, 0xEB, 0xFB, 0xEC, 0xFB, 0xEB, 0xFB, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xFB, 0x8, 0xF1, 0xFB, 0xFB, 0xEB, 0xFB, 0xFB, 0xFB, 0xEB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0x8, 0xF1, 0xFB, 0xFB, 0xEC, 0xFB, 0xFB, 0xFB, 0xEC, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8},
- .unk3A0 = {0x381, 0x3F9, 0xF041, 0x41, 0x7F5F, 0x4401, 0x4541, 0x5579, 0x5541, 0x555F, 0x5541, 0x5541, 0x557D, 0x1101, 0x1101, 0xFFFF},
- .coords = {40, 91},
- .direction = 0x21,
- .range = 0x33,
+ .metatileData = {
+ 0xF1, 0xFB, 0xFB, 0xFB, 0xF9, 0xF9, 0x1B, 0x1C, 0x1D, 0xE5, 0xE6, 0xEE, 0xF5, 0xFB, 0xFB, 0x08,
+ 0xED, 0xF5, 0xF5, 0xF5, 0xFB, 0xFB, 0xEC, 0xEC, 0xEC, 0xEB, 0xEC, 0xEC, 0xEC, 0xFB, 0xFB, 0x08,
+ 0xF4, 0xEC, 0xEC, 0xEC, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xEB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0x08,
+ 0xF1, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xFB, 0xEB, 0xFB, 0xF5, 0xF5, 0xF5, 0xF5, 0x08,
+ 0xF1, 0xEB, 0xEC, 0xEC, 0xEC, 0xEB, 0xEC, 0xEC, 0xFB, 0xEC, 0xFB, 0xEC, 0xEC, 0xEC, 0xEC, 0x08,
+ 0xF1, 0xEB, 0xFB, 0xFB, 0xFB, 0xEB, 0xFB, 0xF5, 0xFB, 0xF5, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0x08,
+ 0xF1, 0xEB, 0xFB, 0xF5, 0xFB, 0xEB, 0xFB, 0xEB, 0xFB, 0xEB, 0xF5, 0xF5, 0xF5, 0xFB, 0xFB, 0x08,
+ 0xF1, 0xEB, 0xFB, 0xEB, 0xFB, 0xEB, 0xFB, 0xEB, 0xFB, 0xEB, 0xEC, 0xEC, 0xEC, 0xFB, 0xFB, 0x08,
+ 0xF1, 0xEB, 0xFB, 0xEB, 0xFB, 0xEB, 0xFB, 0xEB, 0xFB, 0xEB, 0xFB, 0xF5, 0xF5, 0xF5, 0xF5, 0x08,
+ 0xF1, 0xEB, 0xFB, 0xEB, 0xFB, 0xEB, 0xFB, 0xEB, 0xFB, 0xEB, 0xFB, 0xEC, 0xEC, 0xEC, 0xEC, 0x08,
+ 0xF1, 0xEB, 0xFB, 0xEB, 0xFB, 0xEB, 0xFB, 0xEB, 0xFB, 0xEB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0x08,
+ 0xF1, 0xEB, 0xFB, 0xEB, 0xFB, 0xEB, 0xFB, 0xEB, 0xFB, 0xEB, 0xF5, 0xF5, 0xF5, 0xF5, 0xFB, 0x08,
+ 0xF1, 0xEC, 0xFB, 0xEB, 0xFB, 0xEC, 0xFB, 0xEB, 0xFB, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xFB, 0x08,
+ 0xF1, 0xFB, 0xFB, 0xEB, 0xFB, 0xFB, 0xFB, 0xEB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0x08,
+ 0xF1, 0xFB, 0xFB, 0xEC, 0xFB, 0xFB, 0xFB, 0xEC, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0x08,
+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
+ },
+ .collisionData = {0x0381, 0x3F9, 0xF041, 0x41, 0x7F5F, 0x4401, 0x4541, 0x5579, 0x5541, 0x555F, 0x5541, 0x5541, 0x557D, 0x1101, 0x1101, 0xFFFF},
+ .coords = {COORDS_XY(8,2), COORDS_XY(11,5)},
+ .direction = TRAINER_DIRS(DIR_WEST, DIR_NORTH),
+ .range = TRAINER_RANGE(3, 3),
}
},
};
@@ -4345,11 +4589,28 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = {
},
},
.display = {
- .data = {0x31, 0x3B, 0x3B, 0x3B, 0x39, 0x39, 0x1B, 0x14, 0x15, 0x38, 0x39, 0x3A, 0x3B, 0x3B, 0x3B, 0x8, 0x31, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x2C, 0x39, 0x39, 0x3A, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x8, 0x31, 0x3B, 0x8, 0x8, 0x8, 0x8, 0x8, 0x3B, 0x8, 0x8, 0x8, 0x8, 0x8, 0x3B, 0x3B, 0x8, 0x69, 0x73, 0x8, 0x4D, 0x4D, 0x4D, 0x4D, 0xD1, 0x4D, 0x4D, 0x4D, 0x4D, 0x8, 0x69, 0x73, 0x8, 0x40, 0x3B, 0x8, 0x55, 0x55, 0x55, 0x55, 0xD1, 0x55, 0x55, 0x55, 0x55, 0x8, 0x31, 0x41, 0x8, 0x69, 0x41, 0x8, 0xC5, 0xD9, 0xD9, 0xD9, 0x9A, 0xD9, 0xD9, 0xD9, 0xC6, 0x8, 0x41, 0x73, 0x8, 0x69, 0x3B, 0x8, 0xD4, 0xDB, 0x9B, 0x73, 0x73, 0x73, 0x9B, 0xDB, 0xCC, 0x8, 0x31, 0x73, 0x8, 0x69, 0x3B, 0x8, 0xCD, 0x9B, 0x73, 0x73, 0x44, 0x73, 0x73, 0x9B, 0xD5, 0x8, 0x31, 0x73, 0x8, 0x69, 0x3B, 0x8, 0xD4, 0xDB, 0x9B, 0x73, 0x73, 0x73, 0x9B, 0xDB, 0xCC, 0x8, 0x31, 0x73, 0x8, 0x69, 0x41, 0x8, 0xD1, 0xDB, 0xDB, 0xDB, 0x9B, 0xDB, 0xDB, 0xDB, 0xDB, 0x8, 0x41, 0x73, 0x8, 0x40, 0x3B, 0x8, 0x8, 0xC7, 0xC7, 0xDB, 0xDB, 0xDB, 0xC7, 0xC7, 0x8, 0x8, 0x31, 0x41, 0x8, 0x69, 0x3B, 0x4D, 0x4D, 0x67, 0x67, 0xDB, 0xDB, 0xDB, 0x67, 0x67, 0x4D, 0x4D, 0x31, 0x73, 0x8, 0x69, 0x3B, 0x55, 0x55, 0xD7, 0xD7, 0xD1, 0xDB, 0xDB, 0xD7, 0xD7, 0x55, 0x55, 0x31, 0x73, 0x8, 0x69, 0x3B, 0x39, 0x39, 0x39, 0x39, 0x3A, 0x3B, 0x3B, 0x39, 0x39, 0x39, 0x39, 0x3A, 0x73, 0x8, 0x69, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8},
- .unk3A0 = {0x381, 0x201, 0x3EF9, 0x3EF9, 0x3EF9, 0x2009, 0x3019, 0x2009, 0x3019, 0x2009, 0x3019, 0x3019, 0x3C79, 0x1, 0x1, 0xFFFF},
- .coords = {116, 122},
- .direction = 0x23,
- .range = 0x55,
+ .metatileData = {
+ 0x31, 0x3B, 0x3B, 0x3B, 0x39, 0x39, 0x1B, 0x14, 0x15, 0x38, 0x39, 0x3A, 0x3B, 0x3B, 0x3B, 0x08,
+ 0x31, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x2C, 0x39, 0x39, 0x3A, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x08,
+ 0x31, 0x3B, 0x08, 0x08, 0x08, 0x08, 0x08, 0x3B, 0x08, 0x08, 0x08, 0x08, 0x08, 0x3B, 0x3B, 0x08,
+ 0x69, 0x73, 0x08, 0x4D, 0x4D, 0x4D, 0x4D, 0xD1, 0x4D, 0x4D, 0x4D, 0x4D, 0x08, 0x69, 0x73, 0x08,
+ 0x40, 0x3B, 0x08, 0x55, 0x55, 0x55, 0x55, 0xD1, 0x55, 0x55, 0x55, 0x55, 0x08, 0x31, 0x41, 0x08,
+ 0x69, 0x41, 0x08, 0xC5, 0xD9, 0xD9, 0xD9, 0x9A, 0xD9, 0xD9, 0xD9, 0xC6, 0x08, 0x41, 0x73, 0x08,
+ 0x69, 0x3B, 0x08, 0xD4, 0xDB, 0x9B, 0x73, 0x73, 0x73, 0x9B, 0xDB, 0xCC, 0x08, 0x31, 0x73, 0x08,
+ 0x69, 0x3B, 0x08, 0xCD, 0x9B, 0x73, 0x73, 0x44, 0x73, 0x73, 0x9B, 0xD5, 0x08, 0x31, 0x73, 0x08,
+ 0x69, 0x3B, 0x08, 0xD4, 0xDB, 0x9B, 0x73, 0x73, 0x73, 0x9B, 0xDB, 0xCC, 0x08, 0x31, 0x73, 0x08,
+ 0x69, 0x41, 0x08, 0xD1, 0xDB, 0xDB, 0xDB, 0x9B, 0xDB, 0xDB, 0xDB, 0xDB, 0x08, 0x41, 0x73, 0x08,
+ 0x40, 0x3B, 0x08, 0x08, 0xC7, 0xC7, 0xDB, 0xDB, 0xDB, 0xC7, 0xC7, 0x08, 0x08, 0x31, 0x41, 0x08,
+ 0x69, 0x3B, 0x4D, 0x4D, 0x67, 0x67, 0xDB, 0xDB, 0xDB, 0x67, 0x67, 0x4D, 0x4D, 0x31, 0x73, 0x08,
+ 0x69, 0x3B, 0x55, 0x55, 0xD7, 0xD7, 0xD1, 0xDB, 0xDB, 0xD7, 0xD7, 0x55, 0x55, 0x31, 0x73, 0x08,
+ 0x69, 0x3B, 0x39, 0x39, 0x39, 0x39, 0x3A, 0x3B, 0x3B, 0x39, 0x39, 0x39, 0x39, 0x3A, 0x73, 0x08,
+ 0x69, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x73, 0x08,
+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
+ },
+ .collisionData = {0x0381, 0x0201, 0x3EF9, 0x3EF9, 0x3EF9, 0x2009, 0x3019, 0x2009, 0x3019, 0x2009, 0x3019, 0x3019, 0x3C79, 0x1, 0x1, 0xFFFF},
+ .coords = {COORDS_XY(4,7), COORDS_XY(10,7)},
+ .direction = TRAINER_DIRS(DIR_WEST, DIR_EAST),
+ .range = TRAINER_RANGE(5, 5),
}
},
[1] =
@@ -4650,11 +4911,28 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = {
},
},
.display = {
- .data = {0x31, 0x3B, 0x3B, 0x3B, 0x39, 0x39, 0x13, 0x14, 0x15, 0x38, 0x39, 0x3A, 0x3B, 0x3B, 0x3B, 0x8, 0x91, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x78, 0x8, 0x91, 0x46, 0x9B, 0x7C, 0x9B, 0x9B, 0x9B, 0x7D, 0x9B, 0x7C, 0x9B, 0x7B, 0x9B, 0x7A, 0x9B, 0x8, 0x91, 0x46, 0x7D, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x8, 0x91, 0x46, 0x9B, 0x7E, 0x9B, 0x9B, 0x9B, 0x7D, 0x9B, 0x7E, 0x9B, 0xB3, 0x9B, 0x9B, 0x9B, 0x8, 0x91, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x9B, 0x8, 0x91, 0x46, 0x9B, 0x7D, 0x9B, 0x7C, 0x9B, 0x7B, 0x9B, 0x7A, 0x9B, 0x7C, 0x9B, 0x9B, 0x9B, 0x8, 0x91, 0x46, 0x9B, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x8, 0x91, 0x46, 0x9B, 0x7C, 0x9B, 0x7D, 0x9B, 0x7E, 0x9B, 0x9B, 0x9B, 0x7D, 0x9B, 0x7E, 0x9B, 0x8, 0x91, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0xB3, 0x8, 0x91, 0xD6, 0x96, 0x9B, 0x9B, 0x96, 0xD6, 0xDB, 0xD6, 0x96, 0x9B, 0x9B, 0x96, 0xD6, 0x9B, 0x8, 0xD6, 0x96, 0x9B, 0x9B, 0x96, 0xD6, 0xDB, 0xDB, 0xDB, 0xD6, 0x96, 0x9B, 0x9B, 0x96, 0xD6, 0x8, 0x96, 0x9B, 0x9B, 0x96, 0xD6, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xD6, 0x96, 0x9B, 0x9B, 0x96, 0x8, 0xD6, 0x96, 0x9B, 0x9B, 0x96, 0xD6, 0xDB, 0xDB, 0xDB, 0xD6, 0x96, 0x9B, 0x9B, 0x96, 0xD6, 0x8, 0x91, 0xD6, 0x96, 0x9B, 0x9B, 0x96, 0xD6, 0xDB, 0xD6, 0x96, 0x9B, 0x9B, 0x96, 0xD6, 0x9B, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8, 0x8},
- .unk3A0 = {0x381, 0x7FFD, 0x4001, 0x5FFF, 0x4001, 0x7FFD, 0x4001, 0x5FFF, 0x4001, 0x7FFD, 0x1, 0x1, 0x1, 0x1, 0x1, 0xFFFF},
- .coords = {167, 231},
- .direction = 0x1,
- .range = 0x33,
+ .metatileData = {
+ 0x31, 0x3B, 0x3B, 0x3B, 0x39, 0x39, 0x13, 0x14, 0x15, 0x38, 0x39, 0x3A, 0x3B, 0x3B, 0x3B, 0x08,
+ 0x91, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x78, 0x08,
+ 0x91, 0x46, 0x9B, 0x7C, 0x9B, 0x9B, 0x9B, 0x7D, 0x9B, 0x7C, 0x9B, 0x7B, 0x9B, 0x7A, 0x9B, 0x08,
+ 0x91, 0x46, 0x7D, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x08,
+ 0x91, 0x46, 0x9B, 0x7E, 0x9B, 0x9B, 0x9B, 0x7D, 0x9B, 0x7E, 0x9B, 0xB3, 0x9B, 0x9B, 0x9B, 0x08,
+ 0x91, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x9B, 0x08,
+ 0x91, 0x46, 0x9B, 0x7D, 0x9B, 0x7C, 0x9B, 0x7B, 0x9B, 0x7A, 0x9B, 0x7C, 0x9B, 0x9B, 0x9B, 0x08,
+ 0x91, 0x46, 0x9B, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x08,
+ 0x91, 0x46, 0x9B, 0x7C, 0x9B, 0x7D, 0x9B, 0x7E, 0x9B, 0x9B, 0x9B, 0x7D, 0x9B, 0x7E, 0x9B, 0x08,
+ 0x91, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0xB3, 0x08,
+ 0x91, 0xD6, 0x96, 0x9B, 0x9B, 0x96, 0xD6, 0xDB, 0xD6, 0x96, 0x9B, 0x9B, 0x96, 0xD6, 0x9B, 0x08,
+ 0xD6, 0x96, 0x9B, 0x9B, 0x96, 0xD6, 0xDB, 0xDB, 0xDB, 0xD6, 0x96, 0x9B, 0x9B, 0x96, 0xD6, 0x08,
+ 0x96, 0x9B, 0x9B, 0x96, 0xD6, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xD6, 0x96, 0x9B, 0x9B, 0x96, 0x08,
+ 0xD6, 0x96, 0x9B, 0x9B, 0x96, 0xD6, 0xDB, 0xDB, 0xDB, 0xD6, 0x96, 0x9B, 0x9B, 0x96, 0xD6, 0x08,
+ 0x91, 0xD6, 0x96, 0x9B, 0x9B, 0x96, 0xD6, 0xDB, 0xD6, 0x96, 0x9B, 0x9B, 0x96, 0xD6, 0x9B, 0x08,
+ 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
+ },
+ .collisionData = {0x0381, 0x7FFD, 0x4001, 0x5FFF, 0x4001, 0x7FFD, 0x4001, 0x5FFF, 0x4001, 0x7FFD, 0x1, 0x1, 0x1, 0x1, 0x1, 0xFFFF},
+ .coords = {COORDS_XY(7,10), COORDS_XY(7,14)},
+ .direction = TRAINER_DIRS(DIR_SOUTH, DIR_NORTH),
+ .range = TRAINER_RANGE(3, 3),
}
},
[2] =
@@ -4955,11 +5233,28 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = {
},
},
.display = {
- .data = {0xD1, 0xDB, 0xDB, 0xDB, 0xD9, 0xD9, 0x1B, 0x14, 0x15, 0x98, 0x99, 0x9A, 0x9B, 0x9B, 0x9B, 0x8, 0xD1, 0xDB, 0xDB, 0xDB, 0xD5, 0xD5, 0xC3, 0xF9, 0x86, 0x8E, 0x95, 0x9B, 0x9B, 0x9B, 0x9B, 0x8, 0xD1, 0xDB, 0xDB, 0xD5, 0xCB, 0xCB, 0xCB, 0xFB, 0x8B, 0x8B, 0x8B, 0x95, 0x9B, 0x9B, 0x9B, 0x8, 0xD1, 0xDB, 0xD5, 0xCB, 0xCB, 0xCB, 0xCB, 0xFB, 0x8B, 0x8B, 0x8B, 0x8B, 0x95, 0x9B, 0x9B, 0x8, 0xD1, 0xDB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xFB, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x9B, 0x9B, 0x8, 0xD1, 0xD5, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xFB, 0x8C, 0x8B, 0x8B, 0x8B, 0x8B, 0x95, 0x9B, 0x8, 0xD1, 0xCB, 0xCB, 0xCB, 0xCB, 0xCC, 0xCC, 0xFB, 0xFB, 0x8C, 0x8B, 0x8B, 0x8B, 0x8B, 0x9B, 0x8, 0xD1, 0xCC, 0xCC, 0xCC, 0xCC, 0xFB, 0xF5, 0xFB, 0xF5, 0xFB, 0x8B, 0x8B, 0x8B, 0x8B, 0x9B, 0x8, 0xD1, 0xD5, 0xD5, 0xD5, 0xD5, 0xFB, 0xEC, 0xFB, 0xEC, 0xFB, 0x8B, 0x8B, 0x8B, 0x8B, 0x9B, 0x8, 0xD1, 0xCB, 0xCB, 0xCB, 0xCB, 0xF5, 0xF5, 0xFB, 0xFB, 0xF5, 0x8B, 0x8B, 0x8B, 0x8B, 0x9B, 0x8, 0xD1, 0xCC, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xFB, 0xFB, 0x8B, 0x8B, 0x8B, 0x8B, 0x8C, 0x9B, 0x8, 0xD1, 0xDB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xFB, 0xF5, 0x8B, 0x8B, 0x8B, 0x8B, 0x9B, 0x9B, 0x8, 0xD1, 0xDB, 0xCC, 0xCB, 0xCB, 0xCB, 0xCB, 0xFB, 0x8B, 0x8B, 0x8B, 0x8B, 0x8C, 0x9B, 0x9B, 0x8, 0xD1, 0xDB, 0xDB, 0xCC, 0xCB, 0xCB, 0xCB, 0xFB, 0x8B, 0x8B, 0x8B, 0x8C, 0x9B, 0x9B, 0x9B, 0x8, 0xD1, 0xDB, 0xDB, 0xDB, 0xCC, 0xCC, 0xCB, 0xFB, 0x8C, 0x8C, 0x8C, 0x9B, 0x9B, 0x9B, 0x9B, 0x8, 0xD1, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xCC, 0xFB, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x8},
- .unk3A0 = {0x381, 0x201, 0xEE1, 0x1EF1, 0x3EF9, 0x3EF9, 0x7E7D, 0x783D, 0x2BD, 0x783D, 0x7E7D, 0x3E79, 0x3EF9, 0x1EF1, 0xEE1, 0x201},
- .coords = {103, 167},
- .direction = 0x1,
- .range = 0x33,
+ .metatileData = {
+ 0xD1, 0xDB, 0xDB, 0xDB, 0xD9, 0xD9, 0x1B, 0x14, 0x15, 0x98, 0x99, 0x9A, 0x9B, 0x9B, 0x9B, 0x08,
+ 0xD1, 0xDB, 0xDB, 0xDB, 0xD5, 0xD5, 0xC3, 0xF9, 0x86, 0x8E, 0x95, 0x9B, 0x9B, 0x9B, 0x9B, 0x08,
+ 0xD1, 0xDB, 0xDB, 0xD5, 0xCB, 0xCB, 0xCB, 0xFB, 0x8B, 0x8B, 0x8B, 0x95, 0x9B, 0x9B, 0x9B, 0x08,
+ 0xD1, 0xDB, 0xD5, 0xCB, 0xCB, 0xCB, 0xCB, 0xFB, 0x8B, 0x8B, 0x8B, 0x8B, 0x95, 0x9B, 0x9B, 0x08,
+ 0xD1, 0xDB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xFB, 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x9B, 0x9B, 0x08,
+ 0xD1, 0xD5, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xFB, 0x8C, 0x8B, 0x8B, 0x8B, 0x8B, 0x95, 0x9B, 0x08,
+ 0xD1, 0xCB, 0xCB, 0xCB, 0xCB, 0xCC, 0xCC, 0xFB, 0xFB, 0x8C, 0x8B, 0x8B, 0x8B, 0x8B, 0x9B, 0x08,
+ 0xD1, 0xCC, 0xCC, 0xCC, 0xCC, 0xFB, 0xF5, 0xFB, 0xF5, 0xFB, 0x8B, 0x8B, 0x8B, 0x8B, 0x9B, 0x08,
+ 0xD1, 0xD5, 0xD5, 0xD5, 0xD5, 0xFB, 0xEC, 0xFB, 0xEC, 0xFB, 0x8B, 0x8B, 0x8B, 0x8B, 0x9B, 0x08,
+ 0xD1, 0xCB, 0xCB, 0xCB, 0xCB, 0xF5, 0xF5, 0xFB, 0xFB, 0xF5, 0x8B, 0x8B, 0x8B, 0x8B, 0x9B, 0x08,
+ 0xD1, 0xCC, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xFB, 0xFB, 0x8B, 0x8B, 0x8B, 0x8B, 0x8C, 0x9B, 0x08,
+ 0xD1, 0xDB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xFB, 0xF5, 0x8B, 0x8B, 0x8B, 0x8B, 0x9B, 0x9B, 0x08,
+ 0xD1, 0xDB, 0xCC, 0xCB, 0xCB, 0xCB, 0xCB, 0xFB, 0x8B, 0x8B, 0x8B, 0x8B, 0x8C, 0x9B, 0x9B, 0x08,
+ 0xD1, 0xDB, 0xDB, 0xCC, 0xCB, 0xCB, 0xCB, 0xFB, 0x8B, 0x8B, 0x8B, 0x8C, 0x9B, 0x9B, 0x9B, 0x08,
+ 0xD1, 0xDB, 0xDB, 0xDB, 0xCC, 0xCC, 0xCB, 0xFB, 0x8C, 0x8C, 0x8C, 0x9B, 0x9B, 0x9B, 0x9B, 0x08,
+ 0xD1, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xCC, 0xFB, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x08,
+ },
+ .collisionData = {0x0381, 0x0201, 0xEE1, 0x1EF1, 0x3EF9, 0x3EF9, 0x7E7D, 0x783D, 0x2BD, 0x783D, 0x7E7D, 0x3E79, 0x3EF9, 0x1EF1, 0xEE1, 0x201},
+ .coords = {COORDS_XY(7,6), COORDS_XY(7,10)},
+ .direction = TRAINER_DIRS(DIR_SOUTH, DIR_NORTH),
+ .range = TRAINER_RANGE(3, 3),
}
},
[3] =
@@ -5252,11 +5547,32 @@ static const struct TrHillFloor sDataTagExpert_Floors[] = {
},
},
.display = {
- .data = {0x31, 0x3B, 0x3B, 0x3B, 0x39, 0x39, 0x13, 0x14, 0x15, 0x39, 0x39, 0x3A, 0x3B, 0x3B, 0x3B, 0x8, 0x96, 0xFB, 0xF6, 0xFD, 0xF6, 0xF6, 0xFB, 0x46, 0xFB, 0xF6, 0xF6, 0xFD, 0xF6, 0xFB, 0x9B, 0x8, 0xFB, 0x9B, 0xFB, 0xF6, 0xFB, 0xFB, 0xFB, 0x46, 0xFB, 0xFB, 0xFB, 0xF6, 0xFB, 0x9B, 0xFB, 0x8, 0xF6, 0xFB, 0x9B, 0xFB, 0xFB, 0x46, 0x46, 0x9B, 0x46, 0x46, 0xFB, 0xFB, 0x9B, 0xFB, 0xF6, 0x8, 0xFD, 0xF6, 0xFB, 0x9B, 0x46, 0x36, 0x36, 0x9B, 0x36, 0x36, 0x46, 0x9B, 0xFB, 0xF6, 0xFD, 0x8, 0xF6, 0xFB, 0xFB, 0x46, 0x9B, 0x46, 0x46, 0xDB, 0x46, 0x46, 0x9B, 0x46, 0xFB, 0xFB, 0xF6, 0x8, 0xF6, 0xFB, 0x46, 0x36, 0x46, 0x9B, 0xDB, 0xD6, 0xDB, 0x9B, 0x46, 0x36, 0x46, 0xFB, 0xF6, 0x8, 0xFB, 0xFB, 0x46, 0x36, 0x9B, 0xDB, 0xD6, 0xD6, 0xD6, 0xDB, 0x9B, 0x36, 0x46, 0xFB, 0xFB, 0x8, 0x96, 0x9B, 0x9B, 0x9B, 0x9B, 0xD6, 0xD6, 0x96, 0xD6, 0xD6, 0xDB, 0x9B, 0x9B, 0x9B, 0x96, 0x8, 0xFB, 0xFB, 0x46, 0x36, 0x9B, 0xDB, 0xD6, 0xD6, 0xD6, 0xDB, 0x9B, 0x36, 0x46, 0xFB, 0xFB, 0x8, 0xF6, 0xFB, 0x46, 0x36, 0x46, 0x9B, 0xDB, 0xD6, 0xDB, 0x9B, 0x46, 0x36, 0x46, 0xFB, 0xF6, 0x8, 0xF6, 0xFB, 0xFB, 0x46, 0x9B, 0x46, 0x46, 0xDB, 0x46, 0x46, 0x9B, 0x46, 0xFB, 0xFB, 0xF6, 0x8, 0xFD, 0xF6, 0xFB, 0x9B, 0x46, 0x36, 0x36, 0x9B, 0x36, 0x36, 0x46, 0x9B, 0xFB, 0xF6, 0xFD, 0x8, 0xF6, 0xFB, 0x9B, 0xFB, 0xFB, 0x46, 0x46, 0x9B, 0x46, 0x46, 0xFB, 0xFB, 0x9B, 0xFB, 0xF6, 0x8, 0xFB, 0x9B, 0xFB, 0xF6, 0xFB, 0xFB, 0xFB, 0x46, 0xFB, 0xFB, 0xFB, 0xF6, 0xFB, 0x9B, 0xFB, 0x8, 0x96, 0xFB, 0xF6, 0xFD, 0xF6, 0xF6, 0xFB, 0x46, 0xFB, 0xF6, 0xF6, 0xFD, 0xF6, 0xFB, 0x9B, 0x8},
- .unk3A0 = {0x381, 0x101, 0x101, 0x6C1, 0x821, 0x16D1, 0x2829, 0x2009, 0x1, 0x2009, 0x2829, 0x16D1, 0x821, 0x6C1, 0x101, 0x101},
- .coords = {103, 167},
- .direction = 0x1,
- .range = 0x33,
+ .metatileData = {
+ 0x31, 0x3B, 0x3B, 0x3B, 0x39, 0x39, 0x13, 0x14, 0x15, 0x39, 0x39, 0x3A, 0x3B, 0x3B, 0x3B, 0x08,
+ 0x96, 0xFB, 0xF6, 0xFD, 0xF6, 0xF6, 0xFB, 0x46, 0xFB, 0xF6, 0xF6, 0xFD, 0xF6, 0xFB, 0x9B, 0x08,
+ 0xFB, 0x9B, 0xFB, 0xF6, 0xFB, 0xFB, 0xFB, 0x46, 0xFB, 0xFB, 0xFB, 0xF6, 0xFB, 0x9B, 0xFB, 0x08,
+ 0xF6, 0xFB, 0x9B, 0xFB, 0xFB, 0x46, 0x46, 0x9B, 0x46, 0x46, 0xFB, 0xFB, 0x9B, 0xFB, 0xF6, 0x08,
+ 0xFD, 0xF6, 0xFB, 0x9B, 0x46, 0x36, 0x36, 0x9B, 0x36, 0x36, 0x46, 0x9B, 0xFB, 0xF6, 0xFD, 0x08,
+ 0xF6, 0xFB, 0xFB, 0x46, 0x9B, 0x46, 0x46, 0xDB, 0x46, 0x46, 0x9B, 0x46, 0xFB, 0xFB, 0xF6, 0x08,
+ 0xF6, 0xFB, 0x46, 0x36, 0x46, 0x9B, 0xDB, 0xD6, 0xDB, 0x9B, 0x46, 0x36, 0x46, 0xFB, 0xF6, 0x08,
+ 0xFB, 0xFB, 0x46, 0x36, 0x9B, 0xDB, 0xD6, 0xD6, 0xD6, 0xDB, 0x9B, 0x36, 0x46, 0xFB, 0xFB, 0x08,
+ 0x96, 0x9B, 0x9B, 0x9B, 0x9B, 0xD6, 0xD6, 0x96, 0xD6, 0xD6, 0xDB, 0x9B, 0x9B, 0x9B, 0x96, 0x08,
+ 0xFB, 0xFB, 0x46, 0x36, 0x9B, 0xDB, 0xD6, 0xD6, 0xD6, 0xDB, 0x9B, 0x36, 0x46, 0xFB, 0xFB, 0x08,
+ 0xF6, 0xFB, 0x46, 0x36, 0x46, 0x9B, 0xDB, 0xD6, 0xDB, 0x9B, 0x46, 0x36, 0x46, 0xFB, 0xF6, 0x08,
+ 0xF6, 0xFB, 0xFB, 0x46, 0x9B, 0x46, 0x46, 0xDB, 0x46, 0x46, 0x9B, 0x46, 0xFB, 0xFB, 0xF6, 0x08,
+ 0xFD, 0xF6, 0xFB, 0x9B, 0x46, 0x36, 0x36, 0x9B, 0x36, 0x36, 0x46, 0x9B, 0xFB, 0xF6, 0xFD, 0x08,
+ 0xF6, 0xFB, 0x9B, 0xFB, 0xFB, 0x46, 0x46, 0x9B, 0x46, 0x46, 0xFB, 0xFB, 0x9B, 0xFB, 0xF6, 0x08,
+ 0xFB, 0x9B, 0xFB, 0xF6, 0xFB, 0xFB, 0xFB, 0x46, 0xFB, 0xFB, 0xFB, 0xF6, 0xFB, 0x9B, 0xFB, 0x08,
+ 0x96, 0xFB, 0xF6, 0xFD, 0xF6, 0xF6, 0xFB, 0x46, 0xFB, 0xF6, 0xF6, 0xFD, 0xF6, 0xFB, 0x9B, 0x08,
+ },
+ .collisionData = {0x0381, 0x0101, 0x0101, 0x6C1, 0x0821, 0x16D1, 0x2829, 0x2009, 0x1, 0x2009, 0x2829, 0x16D1, 0x0821, 0x6C1, 0x0101, 0x101},
+ .coords = {COORDS_XY(7,6), COORDS_XY(7,10)},
+ .direction = TRAINER_DIRS(DIR_SOUTH, DIR_NORTH),
+ .range = TRAINER_RANGE(3, 3),
}
},
};
+
+#undef COORDS_XY
+#undef TRAINER_DIRS
+#undef TRAINER_RANGE
diff --git a/src/data/contest_opponents.h b/src/data/contest_opponents.h
index 6de931ef2..127457bbe 100644
--- a/src/data/contest_opponents.h
+++ b/src/data/contest_opponents.h
@@ -1,7 +1,6 @@
#include "global.h"
#include "contest.h"
-#include "constants/species.h"
#define CONTEST_OPPONENT_JIMMY 0
#define CONTEST_OPPONENT_EDITH 1
diff --git a/src/data/easy_chat/easy_chat_group_pokemon.h b/src/data/easy_chat/easy_chat_group_pokemon.h
index 9993a5144..a6e1c48ea 100755
--- a/src/data/easy_chat/easy_chat_group_pokemon.h
+++ b/src/data/easy_chat/easy_chat_group_pokemon.h
@@ -1,5 +1,3 @@
-#include "constants/species.h"
-
const u16 gEasyChatGroup_Pokemon[] = {
SPECIES_ABRA,
SPECIES_ABSOL,
diff --git a/src/data/easy_chat/easy_chat_group_pokemon2.h b/src/data/easy_chat/easy_chat_group_pokemon2.h
index 35b0a03cb..44dce0cc8 100755
--- a/src/data/easy_chat/easy_chat_group_pokemon2.h
+++ b/src/data/easy_chat/easy_chat_group_pokemon2.h
@@ -1,5 +1,3 @@
-#include "constants/species.h"
-
const u16 gEasyChatGroup_Pokemon2[] = {
SPECIES_ABRA,
SPECIES_AERODACTYL,
diff --git a/src/data/field_effects/field_effect_objects.h b/src/data/field_effects/field_effect_objects.h
index 1626b9f32..4fc3ecff6 100755
--- a/src/data/field_effects/field_effect_objects.h
+++ b/src/data/field_effects/field_effect_objects.h
@@ -1286,4 +1286,4 @@ const struct SpriteTemplate gFieldEffectObjectTemplate_Rayquaza = {
.callback = UpdateRayquazaSpotlightEffect,
};
-static const struct SpritePalette sSpritePalette_Unused = {gObjectEventPalette2, FLDEFF_PAL_TAG_UNKNOWN};
+static const struct SpritePalette sSpritePalette_Unused = {gObjectEventPal_Npc3, FLDEFF_PAL_TAG_UNKNOWN};
diff --git a/src/data/lilycove_lady.h b/src/data/lilycove_lady.h
index 738a6dc12..37bae7e95 100644
--- a/src/data/lilycove_lady.h
+++ b/src/data/lilycove_lady.h
@@ -1,7 +1,6 @@
#include "constants/easy_chat.h"
#include "constants/event_objects.h"
#include "constants/items.h"
-#include "constants/species.h"
#include "constants/moves.h"
static const u16 sContestLadyMonGfxId[] =
@@ -9,7 +8,7 @@ static const u16 sContestLadyMonGfxId[] =
OBJ_EVENT_GFX_ZIGZAGOON_1,
OBJ_EVENT_GFX_SKITTY,
OBJ_EVENT_GFX_POOCHYENA,
- OBJ_EVENT_GFX_KECLEON_1,
+ OBJ_EVENT_GFX_KECLEON,
OBJ_EVENT_GFX_PIKACHU
};
diff --git a/src/data/object_events/object_event_graphics.h b/src/data/object_events/object_event_graphics.h
index 50fc6715c..81d83a856 100755
--- a/src/data/object_events/object_event_graphics.h
+++ b/src/data/object_events/object_event_graphics.h
@@ -1,26 +1,26 @@
const u32 gObjectEventPic_BrendanNormal[] = INCBIN_U32("graphics/object_events/pics/people/brendan/walking.4bpp");
const u32 gObjectEventPic_BrendanRunning[] = INCBIN_U32("graphics/object_events/pics/people/brendan/running.4bpp");
-const u16 gObjectEventPalette8[] = INCBIN_U16("graphics/object_events/palettes/08.gbapal");
+const u16 gObjectEventPal_Brendan[] = INCBIN_U16("graphics/object_events/palettes/brendan.gbapal");
const u32 gObjectEventPic_RubySapphireBrendanNormal[] = INCBIN_U32("graphics/object_events/pics/people/ruby_sapphire_brendan/walking.4bpp");
const u32 gObjectEventPic_RubySapphireBrendanRunning[] = INCBIN_U32("graphics/object_events/pics/people/ruby_sapphire_brendan/running.4bpp");
-const u16 gObjectEventPalette33[] = INCBIN_U16("graphics/object_events/palettes/33.gbapal");
-const u16 gObjectEventPaletteNull1[16] = {};
-const u16 gObjectEventPaletteNull2[16] = {};
-const u16 gObjectEventPaletteNull3[16] = {};
-const u16 gObjectEventPaletteNull4[16] = {};
-const u16 gObjectEventPaletteNull5[16] = {};
-const u16 gObjectEventPaletteNull6[16] = {};
-const u16 gObjectEventPaletteNull7[16] = {};
-const u16 gObjectEventPaletteNull8[16] = {};
-const u16 gObjectEventPaletteNull9[16] = {};
-const u16 gObjectEventPaletteNull10[16] = {};
-const u16 gObjectEventPaletteNull11[16] = {};
-const u16 gObjectEventPaletteNull12[16] = {};
-const u16 gObjectEventPaletteNull13[16] = {};
-const u16 gObjectEventPaletteNull14[16] = {};
-const u16 gObjectEventPaletteNull15[16] = {};
-const u16 gObjectEventPalette9[] = INCBIN_U16("graphics/object_events/palettes/09.gbapal");
-const u16 gObjectEventPalette10[] = INCBIN_U16("graphics/object_events/palettes/10.gbapal");
+const u16 gObjectEventPal_RubySapphireBrendan[] = INCBIN_U16("graphics/object_events/palettes/ruby_sapphire_brendan.gbapal");
+const u16 gObjectEventPal_Null1[16] = {};
+const u16 gObjectEventPal_Null2[16] = {};
+const u16 gObjectEventPal_Null3[16] = {};
+const u16 gObjectEventPal_Null4[16] = {};
+const u16 gObjectEventPal_Null5[16] = {};
+const u16 gObjectEventPal_Null6[16] = {};
+const u16 gObjectEventPal_Null7[16] = {};
+const u16 gObjectEventPal_Null8[16] = {};
+const u16 gObjectEventPal_Null9[16] = {};
+const u16 gObjectEventPal_Null10[16] = {};
+const u16 gObjectEventPal_Null11[16] = {};
+const u16 gObjectEventPal_Null12[16] = {};
+const u16 gObjectEventPal_Null13[16] = {};
+const u16 gObjectEventPal_Null14[16] = {};
+const u16 gObjectEventPal_Null15[16] = {};
+const u16 gObjectEventPal_BrendanReflection[] = INCBIN_U16("graphics/object_events/palettes/brendan_reflection.gbapal");
+const u16 gObjectEventPal_BridgeReflection[] = INCBIN_U16("graphics/object_events/palettes/bridge_reflection.gbapal");
const u32 gObjectEventPic_BrendanFieldMove[] = INCBIN_U32("graphics/object_events/pics/people/brendan/field_move.4bpp");
const u32 gObjectEventPic_BrendanSurfing[] = INCBIN_U32("graphics/object_events/pics/people/brendan/surfing.4bpp");
const u32 gObjectEventPic_BrendanMachBike[] = INCBIN_U32("graphics/object_events/pics/people/brendan/mach_bike.4bpp");
@@ -31,43 +31,43 @@ const u32 gObjectEventPic_BrendanDecorating[] = INCBIN_U32("graphics/object_even
const u32 gObjectEventPic_MayDecorating[] = INCBIN_U32("graphics/object_events/pics/people/may/decorating.4bpp");
const u32 gObjectEventPic_BrendanUnderwater[] = INCBIN_U32("graphics/object_events/pics/people/brendan/underwater.4bpp");
const u32 gObjectEventPic_MayUnderwater[] = INCBIN_U32("graphics/object_events/pics/people/may/underwater.4bpp");
-const u16 gObjectEventPalette11[] = INCBIN_U16("graphics/object_events/palettes/11.gbapal");
+const u16 gObjectEventPal_PlayerUnderwater[] = INCBIN_U16("graphics/object_events/palettes/player_underwater.gbapal");
const u32 gObjectEventPic_MayNormal[] = INCBIN_U32("graphics/object_events/pics/people/may/walking.4bpp");
const u32 gObjectEventPic_MayRunning[] = INCBIN_U32("graphics/object_events/pics/people/may/running.4bpp");
-const u16 gObjectEventPalette17[] = INCBIN_U16("graphics/object_events/palettes/17.gbapal");
-const u16 gObjectEventPalette18[] = INCBIN_U16("graphics/object_events/palettes/18.gbapal");
+const u16 gObjectEventPal_May[] = INCBIN_U16("graphics/object_events/palettes/may.gbapal");
+const u16 gObjectEventPal_MayReflection[] = INCBIN_U16("graphics/object_events/palettes/may_reflection.gbapal");
const u32 gObjectEventPic_RubySapphireMayNormal[] = INCBIN_U32("graphics/object_events/pics/people/ruby_sapphire_may/walking.4bpp");
const u32 gObjectEventPic_RubySapphireMayRunning[] = INCBIN_U32("graphics/object_events/pics/people/ruby_sapphire_may/running.4bpp");
-const u16 gObjectEventPalette34[] = INCBIN_U16("graphics/object_events/palettes/34.gbapal");
+const u16 gObjectEventPal_RubySapphireMay[] = INCBIN_U16("graphics/object_events/palettes/ruby_sapphire_may.gbapal");
const u16 gUnusedObjectEventPalette[] = INCBIN_U16("graphics/object_events/palettes/unused_palette.gbapal");
-const u16 gObjectEventPaletteNull16[16] = {};
-const u16 gObjectEventPaletteNull17[16] = {};
-const u16 gObjectEventPaletteNull18[16] = {};
-const u16 gObjectEventPaletteNull19[16] = {};
-const u16 gObjectEventPaletteNull20[16] = {};
-const u16 gObjectEventPaletteNull21[16] = {};
-const u16 gObjectEventPaletteNull22[16] = {};
-const u16 gObjectEventPaletteNull23[16] = {};
-const u16 gObjectEventPaletteNull24[16] = {};
-const u16 gObjectEventPaletteNull25[16] = {};
-const u16 gObjectEventPaletteNull26[16] = {};
-const u16 gObjectEventPaletteNull27[16] = {};
-const u16 gObjectEventPaletteNull28[16] = {};
-const u16 gObjectEventPaletteNull29[16] = {};
+const u16 gObjectEventPal_Null16[16] = {};
+const u16 gObjectEventPal_Null17[16] = {};
+const u16 gObjectEventPal_Null18[16] = {};
+const u16 gObjectEventPal_Null19[16] = {};
+const u16 gObjectEventPal_Null20[16] = {};
+const u16 gObjectEventPal_Null21[16] = {};
+const u16 gObjectEventPal_Null22[16] = {};
+const u16 gObjectEventPal_Null23[16] = {};
+const u16 gObjectEventPal_Null24[16] = {};
+const u16 gObjectEventPal_Null25[16] = {};
+const u16 gObjectEventPal_Null26[16] = {};
+const u16 gObjectEventPal_Null27[16] = {};
+const u16 gObjectEventPal_Null28[16] = {};
+const u16 gObjectEventPal_Null29[16] = {};
const u32 gObjectEventPic_MayMachBike[] = INCBIN_U32("graphics/object_events/pics/people/may/mach_bike.4bpp");
const u32 gObjectEventPic_MayAcroBike[] = INCBIN_U32("graphics/object_events/pics/people/may/acro_bike.4bpp");
const u32 gObjectEventPic_MaySurfing[] = INCBIN_U32("graphics/object_events/pics/people/may/surfing.4bpp");
const u32 gObjectEventPic_MayFieldMove[] = INCBIN_U32("graphics/object_events/pics/people/may/field_move.4bpp");
const u32 gObjectEventPic_MayFishing[] = INCBIN_U32("graphics/object_events/pics/people/may/fishing.4bpp");
const u32 gObjectEventPic_MayWatering[] = INCBIN_U32("graphics/object_events/pics/people/may/watering.4bpp");
-const u16 gObjectEventPalette0[] = INCBIN_U16("graphics/object_events/palettes/00.gbapal");
-const u16 gObjectEventPalette1[] = INCBIN_U16("graphics/object_events/palettes/01.gbapal");
-const u16 gObjectEventPalette2[] = INCBIN_U16("graphics/object_events/palettes/02.gbapal");
-const u16 gObjectEventPalette3[] = INCBIN_U16("graphics/object_events/palettes/03.gbapal");
-const u16 gObjectEventPalette4[] = INCBIN_U16("graphics/object_events/palettes/04.gbapal");
-const u16 gObjectEventPalette5[] = INCBIN_U16("graphics/object_events/palettes/05.gbapal");
-const u16 gObjectEventPalette6[] = INCBIN_U16("graphics/object_events/palettes/06.gbapal");
-const u16 gObjectEventPalette7[] = INCBIN_U16("graphics/object_events/palettes/07.gbapal");
+const u16 gObjectEventPal_Npc1[] = INCBIN_U16("graphics/object_events/palettes/npc_1.gbapal");
+const u16 gObjectEventPal_Npc2[] = INCBIN_U16("graphics/object_events/palettes/npc_2.gbapal");
+const u16 gObjectEventPal_Npc3[] = INCBIN_U16("graphics/object_events/palettes/npc_3.gbapal");
+const u16 gObjectEventPal_Npc4[] = INCBIN_U16("graphics/object_events/palettes/npc_4.gbapal");
+const u16 gObjectEventPal_Npc1Reflection[] = INCBIN_U16("graphics/object_events/palettes/npc_1_reflection.gbapal");
+const u16 gObjectEventPal_Npc2Reflection[] = INCBIN_U16("graphics/object_events/palettes/npc_2_reflection.gbapal");
+const u16 gObjectEventPal_Npc3Reflection[] = INCBIN_U16("graphics/object_events/palettes/npc_3_reflection.gbapal");
+const u16 gObjectEventPal_Npc4Reflection[] = INCBIN_U16("graphics/object_events/palettes/npc_4_reflection.gbapal");
const u32 gObjectEventPic_NinjaBoy[] = INCBIN_U32("graphics/object_events/pics/people/ninja_boy.4bpp");
const u32 gObjectEventPic_Twin[] = INCBIN_U32("graphics/object_events/pics/people/twin.4bpp");
const u32 gObjectEventPic_Boy1[] = INCBIN_U32("graphics/object_events/pics/people/boy_1.4bpp");
@@ -177,10 +177,10 @@ const u32 gObjectEventPic_Wingull[] = INCBIN_U32("graphics/object_events/pics/po
const u32 gObjectEventPic_TuberMSwimming[] = INCBIN_U32("graphics/object_events/pics/people/tuber_m_swimming.4bpp");
const u32 gObjectEventPic_Azurill[] = INCBIN_U32("graphics/object_events/pics/pokemon/azurill.4bpp");
const u32 gObjectEventPic_Mom[] = INCBIN_U32("graphics/object_events/pics/people/mom.4bpp");
-const u16 gObjectEventPalette22[] = INCBIN_U16("graphics/object_events/palettes/22.gbapal");
-const u16 gObjectEventPalette23[] = INCBIN_U16("graphics/object_events/palettes/23.gbapal");
-const u16 gObjectEventPalette24[] = INCBIN_U16("graphics/object_events/palettes/24.gbapal");
-const u16 gObjectEventPalette25[] = INCBIN_U16("graphics/object_events/palettes/25.gbapal");
+const u16 gObjectEventPal_Kyogre[] = INCBIN_U16("graphics/object_events/palettes/kyogre.gbapal");
+const u16 gObjectEventPal_KyogreReflection[] = INCBIN_U16("graphics/object_events/palettes/kyogre_reflection.gbapal");
+const u16 gObjectEventPal_Groudon[] = INCBIN_U16("graphics/object_events/palettes/groudon.gbapal");
+const u16 gObjectEventPal_GroudonReflection[] = INCBIN_U16("graphics/object_events/palettes/groudon_reflection.gbapal");
const u32 gObjectEventPic_UnusedNatuDoll[] = INCBIN_U32("graphics/object_events/pics/dolls/unused_natu_doll.4bpp");
const u32 gObjectEventPic_UnusedMagnemiteDoll[] = INCBIN_U32("graphics/object_events/pics/dolls/unused_magnemite_doll.4bpp");
const u32 gObjectEventPic_UnusedSquirtleDoll[] = INCBIN_U32("graphics/object_events/pics/dolls/unused_squirtle_doll.4bpp");
@@ -238,20 +238,20 @@ const u32 gObjectEventPic_PushableBoulder[] = INCBIN_U32("graphics/object_events
const u32 gObjectEventPic_MrBrineysBoat[] = INCBIN_U32("graphics/object_events/pics/misc/mr_brineys_boat.4bpp");
const u32 gObjectEventPic_Fossil[] = INCBIN_U32("graphics/object_events/pics/misc/fossil.4bpp");
const u32 gObjectEventPic_SubmarineShadow[] = INCBIN_U32("graphics/object_events/pics/misc/submarine_shadow.4bpp");
-const u16 gObjectEventPalette26[] = INCBIN_U16("graphics/object_events/palettes/26.gbapal");
+const u16 gObjectEventPal_SubmarineShadow[] = INCBIN_U16("graphics/object_events/palettes/submarine_shadow.gbapal");
const u32 gObjectEventPic_Truck[] = INCBIN_U32("graphics/object_events/pics/misc/truck.4bpp");
-const u16 gObjectEventPalette14[] = INCBIN_U16("graphics/object_events/palettes/14.gbapal");
+const u16 gObjectEventPal_Truck[] = INCBIN_U16("graphics/object_events/palettes/truck.gbapal");
const u32 gObjectEventPic_Vigoroth[] = INCBIN_U32("graphics/object_events/pics/pokemon/vigoroth.4bpp");
-const u16 gObjectEventPalette15[] = INCBIN_U16("graphics/object_events/palettes/15.gbapal");
+const u16 gObjectEventPal_Vigoroth[] = INCBIN_U16("graphics/object_events/palettes/vigoroth.gbapal");
const u32 gObjectEventPic_BirchsBag[] = INCBIN_U32("graphics/object_events/pics/misc/birchs_bag.4bpp");
const u32 gObjectEventPic_EnemyZigzagoon[] = INCBIN_U32("graphics/object_events/pics/pokemon/enemy_zigzagoon.4bpp");
-const u16 gObjectEventPalette16[] = INCBIN_U16("graphics/object_events/palettes/16.gbapal");
+const u16 gObjectEventPal_EnemyZigzagoon[] = INCBIN_U16("graphics/object_events/palettes/enemy_zigzagoon.gbapal");
const u32 gObjectEventPic_Poochyena[] = INCBIN_U32("graphics/object_events/pics/pokemon/poochyena.4bpp");
-const u16 gObjectEventPalette27[] = INCBIN_U16("graphics/object_events/palettes/27.gbapal");
+const u16 gObjectEventPal_Poochyena[] = INCBIN_U16("graphics/object_events/palettes/poochyena.gbapal");
const u32 gObjectEventPic_CableCar[] = INCBIN_U32("graphics/object_events/pics/misc/cable_car.4bpp");
-const u16 gObjectEventPalette20[] = INCBIN_U16("graphics/object_events/palettes/20.gbapal");
+const u16 gObjectEventPal_CableCar[] = INCBIN_U16("graphics/object_events/palettes/cable_car.gbapal");
const u32 gObjectEventPic_SSTidal[] = INCBIN_U32("graphics/object_events/pics/misc/ss_tidal.4bpp");
-const u16 gObjectEventPalette21[] = INCBIN_U16("graphics/object_events/palettes/21.gbapal");
+const u16 gObjectEventPal_SSTidal[] = INCBIN_U16("graphics/object_events/palettes/ss_tidal.gbapal");
const u32 gFieldEffectObjectPic_Sparkle[] = INCBIN_U32("graphics/field_effects/pics/sparkle.4bpp");
const u32 gObjectEventPic_BerryTreeDirtPile[] = INCBIN_U32("graphics/object_events/pics/berry_trees/dirt_pile.4bpp");
const u32 gObjectEventPic_BerryTreeSprout[] = INCBIN_U32("graphics/object_events/pics/berry_trees/sprout.4bpp");
@@ -287,8 +287,8 @@ const u32 gObjectEventPic_DurinBerryTree[] = INCBIN_U32("graphics/object_events/
const u32 gObjectEventPic_TamatoBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/tamato.4bpp");
const u32 gFieldEffectObjectPic_SurfBlob[] = INCBIN_U32("graphics/field_effects/pics/surf_blob.4bpp");
const u32 gObjectEventPic_QuintyPlump[] = INCBIN_U32("graphics/object_events/pics/people/quinty_plump.4bpp");
-const u16 gObjectEventPalette12[] = INCBIN_U16("graphics/object_events/palettes/12.gbapal");
-const u16 gObjectEventPalette13[] = INCBIN_U16("graphics/object_events/palettes/13.gbapal");
+const u16 gObjectEventPal_QuintyPlump[] = INCBIN_U16("graphics/object_events/palettes/quinty_plump.gbapal");
+const u16 gObjectEventPal_QuintyPlumpReflection[] = INCBIN_U16("graphics/object_events/palettes/quinty_plump_reflection.gbapal");
const u32 gFieldEffectObjectPic_ShadowSmall[] = INCBIN_U32("graphics/field_effects/pics/shadow_small.4bpp");
const u32 gFieldEffectObjectPic_ShadowMedium[] = INCBIN_U32("graphics/field_effects/pics/shadow_medium.4bpp");
const u32 gFieldEffectObjectPic_ShadowLarge[] = INCBIN_U32("graphics/field_effects/pics/shadow_large.4bpp");
@@ -339,15 +339,15 @@ const u32 gObjectEventPic_Dusclops[] = INCBIN_U32("graphics/object_events/pics/p
const u32 gObjectEventPic_MysteryEventDeliveryman[] = INCBIN_U32("graphics/object_events/pics/people/mystery_event_deliveryman.4bpp");
const u32 gObjectEventPic_UnionRoomAttendant[] = INCBIN_U32("graphics/object_events/pics/people/union_room_attendant.4bpp");
const u32 gObjectEventPic_MovingBox[] = INCBIN_U32("graphics/object_events/pics/misc/moving_box.4bpp");
-const u16 gObjectEventPalette19[] = INCBIN_U16("graphics/object_events/palettes/19.gbapal");
+const u16 gObjectEventPal_MovingBox[] = INCBIN_U16("graphics/object_events/palettes/moving_box.gbapal");
const u32 gObjectEventPic_Sudowoodo[] = INCBIN_U32("graphics/object_events/pics/pokemon/sudowoodo.4bpp");
const u32 gObjectEventPic_Mew[] = INCBIN_U32("graphics/object_events/pics/pokemon/mew.4bpp");
-const u16 gObjectEventPalette28[] = INCBIN_U16("graphics/object_events/palettes/28.gbapal");
+const u16 gObjectEventPal_RedLeaf[] = INCBIN_U16("graphics/object_events/palettes/red_leaf.gbapal");
const u32 gObjectEventPic_Red[] = INCBIN_U32("graphics/object_events/pics/people/red.4bpp");
const u32 gObjectEventPic_Leaf[] = INCBIN_U32("graphics/object_events/pics/people/leaf.4bpp");
-const u16 gObjectEventPalette30[] = INCBIN_U16("graphics/object_events/palettes/30.gbapal");
+const u16 gObjectEventPal_BirthIslandStone[] = INCBIN_U16("graphics/object_events/palettes/birth_island_stone.gbapal");
const u32 gObjectEventPic_BirthIslandStone[] = INCBIN_U32("graphics/object_events/pics/misc/birth_island_stone.4bpp");
-const u16 gObjectEventPalette29[] = INCBIN_U16("graphics/object_events/palettes/29.gbapal");
+const u16 gObjectEventPal_Deoxys[] = INCBIN_U16("graphics/object_events/palettes/deoxys.gbapal");
const u32 gObjectEventPic_Deoxys[] = INCBIN_U32("graphics/object_events/pics/pokemon/deoxys.4bpp");
const u32 gObjectEventPic_Anabel[] = INCBIN_U32("graphics/object_events/pics/people/frontier_brains/anabel.4bpp");
const u32 gObjectEventPic_Tucker[] = INCBIN_U32("graphics/object_events/pics/people/frontier_brains/tucker.4bpp");
@@ -357,6 +357,6 @@ const u32 gObjectEventPic_Noland[] = INCBIN_U32("graphics/object_events/pics/peo
const u32 gObjectEventPic_Lucy[] = INCBIN_U32("graphics/object_events/pics/people/frontier_brains/lucy.4bpp");
const u32 gObjectEventPic_Brandon[] = INCBIN_U32("graphics/object_events/pics/people/frontier_brains/brandon.4bpp");
const u32 gObjectEventPic_Lugia[] = INCBIN_U32("graphics/object_events/pics/pokemon/lugia.4bpp");
-const u16 gObjectEventPalette32[] = INCBIN_U16("graphics/object_events/palettes/32.gbapal");
+const u16 gObjectEventPal_Lugia[] = INCBIN_U16("graphics/object_events/palettes/lugia.gbapal");
const u32 gObjectEventPic_HoOh[] = INCBIN_U32("graphics/object_events/pics/pokemon/ho_oh.4bpp");
-const u16 gObjectEventPalette31[] = INCBIN_U16("graphics/object_events/palettes/31.gbapal");
+const u16 gObjectEventPal_HoOh[] = INCBIN_U16("graphics/object_events/palettes/ho_oh.gbapal");
diff --git a/src/data/object_events/object_event_graphics_info.h b/src/data/object_events/object_event_graphics_info.h
index bb36c9436..c6c78dca9 100755
--- a/src/data/object_events/object_event_graphics_info.h
+++ b/src/data/object_events/object_event_graphics_info.h
@@ -1,245 +1,245 @@
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanNormal = {0xFFFF, OBJ_EVENT_PAL_TAG_8, OBJ_EVENT_PAL_TAG_10, 512, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_BrendanMayNormal, gObjectEventPicTable_BrendanNormal, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanMachBike = {0xFFFF, OBJ_EVENT_PAL_TAG_8, OBJ_EVENT_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_BrendanMachBike, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanAcroBike = {0xFFFF, OBJ_EVENT_PAL_TAG_8, OBJ_EVENT_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_AcroBike, gObjectEventPicTable_BrendanAcroBike, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanSurfing = {0xFFFF, OBJ_EVENT_PAL_TAG_8, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Surfing, gObjectEventPicTable_BrendanSurfing, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanFieldMove = {0xFFFF, OBJ_EVENT_PAL_TAG_8, OBJ_EVENT_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_FieldMove, gObjectEventPicTable_BrendanFieldMove, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_QuintyPlump = {0xFFFF, OBJ_EVENT_PAL_TAG_12, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_L, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_QuintyPlump, gObjectEventPicTable_QuintyPlump, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_NinjaBoy = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_NinjaBoy, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Twin = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Twin, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Boy1 = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Boy1, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Girl1 = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Girl1, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Boy2 = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Boy2, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Girl2 = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Girl2, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LittleBoy = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_LittleBoy, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LittleGirl = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_LittleGirl, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Boy3 = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Boy3, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Girl3 = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Girl3, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RichBoy = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RichBoy, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman1 = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Woman1, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_FatMan = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_FatMan, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PokefanF = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_PokefanF, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man1 = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Man1, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman2 = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Woman2, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ExpertM = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_ExpertM, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ExpertF = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_ExpertF, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man2 = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Man2, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman3 = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Woman3, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PokefanM = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_PokefanM, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman4 = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Woman4, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Cook = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Cook, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LinkReceptionist = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_LinkReceptionist, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldMan = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_OldMan, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldWoman = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_OldWoman, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Camper = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Camper, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Picnicker = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Picnicker, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man3 = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Man3, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman5 = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Woman5, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Youngster = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Youngster, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BugCatcher = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_BugCatcher, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PsychicM = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_PsychicM, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SchoolKidM = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SchoolKidM, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Maniac = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Maniac, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_HexManiac = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_HexManiac, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Rayquaza1 = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 2048, 64, 64, 4, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_64x64, gObjectEventSpriteOamTables_64x64, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RayquazaStill, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerM = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SwimmerM, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerF = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SwimmerF, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BlackBelt = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_BlackBelt, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Beauty = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Beauty, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Scientist1 = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Scientist1, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lass = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Lass, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Gentleman = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Gentleman, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sailor = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Sailor, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fisherman = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Fisherman, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RunningTriathleteM = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RunningTriathleteM, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RunningTriathleteF = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RunningTriathleteF, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberF = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_TuberF, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberM = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_TuberM, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Hiker = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Hiker, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CyclingTriathleteM = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_AcroBike, gObjectEventPicTable_CyclingTriathleteM, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CyclingTriathleteF = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_AcroBike, gObjectEventPicTable_CyclingTriathleteF, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Nurse = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Nurse, gObjectEventPicTable_Nurse, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ItemBall = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_ItemBall, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BerryTree = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, NULL, gObjectEventImageAnimTable_BerryTree, gObjectEventPicTable_PechaBerryTree, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BerryTreeEarlyStages = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_BerryTree, gObjectEventPicTable_PechaBerryTree, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BerryTreeLateStages = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_BerryTree, gObjectEventPicTable_PechaBerryTree, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ProfBirch = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_ProfBirch, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man4 = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Man4, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man5 = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Man5, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ReporterM = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_ReporterM, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ReporterF = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_ReporterF, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Bard = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MauvilleOldMan1, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Hipster = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MauvilleOldMan1, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Trader = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MauvilleOldMan1, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Storyteller = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Giddy = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedMauvilleOldMan1 = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedMauvilleOldMan2 = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedNatuDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_UnusedNatuDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedMagnemiteDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_UnusedMagnemiteDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedSquirtleDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_UnusedSquirtleDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedWooperDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_UnusedWooperDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedPikachuDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_UnusedPikachuDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedPorygon2Doll = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_UnusedPorygon2Doll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CuttableTree = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_CuttableTree, gObjectEventPicTable_CuttableTree, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MartEmployee = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MartEmployee, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RooftopSaleWoman = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RooftopSaleWoman, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Teala = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Teala, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BreakableRock = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_BreakableRock, gObjectEventPicTable_BreakableRock, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PushableBoulder = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_PushableBoulder, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MrBrineysBoat = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MrBrineysBoat, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayNormal = {0xFFFF, OBJ_EVENT_PAL_TAG_17, OBJ_EVENT_PAL_TAG_10, 512, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_BrendanMayNormal, gObjectEventPicTable_MayNormal, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayMachBike = {0xFFFF, OBJ_EVENT_PAL_TAG_17, OBJ_EVENT_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MayMachBike, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayAcroBike = {0xFFFF, OBJ_EVENT_PAL_TAG_17, OBJ_EVENT_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_AcroBike, gObjectEventPicTable_MayAcroBike, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MaySurfing = {0xFFFF, OBJ_EVENT_PAL_TAG_17, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Surfing, gObjectEventPicTable_MaySurfing, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayFieldMove = {0xFFFF, OBJ_EVENT_PAL_TAG_17, OBJ_EVENT_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_FieldMove, gObjectEventPicTable_MayFieldMove, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Truck = {0xFFFF, OBJ_EVENT_PAL_TAG_14, OBJ_EVENT_PAL_TAG_NONE, 1152, 48, 48, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_48x48, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_Truck, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_VigorothCarryingBox = {0xFFFF, OBJ_EVENT_PAL_TAG_15, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_VigorothCarryingBox, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_VigorothFacingAway = {0xFFFF, OBJ_EVENT_PAL_TAG_15, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_VigorothFacingAway, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BirchsBag = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BirchsBag, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_EnemyZigzagoon = {0xFFFF, OBJ_EVENT_PAL_TAG_16, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_EnemyZigzagoon, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Poochyena = {0xFFFF, OBJ_EVENT_PAL_TAG_27, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Poochyena, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Artist = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Artist, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanNormal = {0xFFFF, OBJ_EVENT_PAL_TAG_8, OBJ_EVENT_PAL_TAG_10, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_BrendanMayNormal, gObjectEventPicTable_BrendanNormal, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanMachBike = {0xFFFF, OBJ_EVENT_PAL_TAG_8, OBJ_EVENT_PAL_TAG_10, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_BrendanMachBike, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanAcroBike = {0xFFFF, OBJ_EVENT_PAL_TAG_8, OBJ_EVENT_PAL_TAG_10, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_AcroBike, gObjectEventPicTable_BrendanAcroBike, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanSurfing = {0xFFFF, OBJ_EVENT_PAL_TAG_8, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Surfing, gObjectEventPicTable_BrendanSurfing, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanFieldMove = {0xFFFF, OBJ_EVENT_PAL_TAG_8, OBJ_EVENT_PAL_TAG_10, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_FieldMove, gObjectEventPicTable_BrendanFieldMove, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMayNormal = {0xFFFF, OBJ_EVENT_PAL_TAG_17, OBJ_EVENT_PAL_TAG_10, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_BrendanMayNormal, gObjectEventPicTable_MayNormal, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMayMachBike = {0xFFFF, OBJ_EVENT_PAL_TAG_17, OBJ_EVENT_PAL_TAG_10, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MayMachBike, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMayAcroBike = {0xFFFF, OBJ_EVENT_PAL_TAG_17, OBJ_EVENT_PAL_TAG_10, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_AcroBike, gObjectEventPicTable_MayAcroBike, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMaySurfing = {0xFFFF, OBJ_EVENT_PAL_TAG_17, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Surfing, gObjectEventPicTable_MaySurfing, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMayFieldMove = {0xFFFF, OBJ_EVENT_PAL_TAG_17, OBJ_EVENT_PAL_TAG_10, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_FieldMove, gObjectEventPicTable_MayFieldMove, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Cameraman = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Cameraman, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanUnderwater = {0xFFFF, OBJ_EVENT_PAL_TAG_11, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_BrendanUnderwater, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayUnderwater = {0xFFFF, OBJ_EVENT_PAL_TAG_11, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MayUnderwater, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MovingBox = {0xFFFF, OBJ_EVENT_PAL_TAG_19, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 10, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_MovingBox, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CableCar = {0xFFFF, OBJ_EVENT_PAL_TAG_20, OBJ_EVENT_PAL_TAG_NONE, 2048, 64, 64, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_64x64, gObjectEventSpriteOamTables_64x64, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_CableCar, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Scientist2 = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Scientist2, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DevonEmployee = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_DevonEmployee, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_AquaMemberM = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_AquaMemberM, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_AquaMemberF = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_AquaMemberF, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MagmaMemberM = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MagmaMemberM, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MagmaMemberF = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MagmaMemberF, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sidney = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Sidney, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Phoebe = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Phoebe, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Glacia = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Glacia, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Drake = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Drake, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Roxanne = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Roxanne, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Brawly = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Brawly, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wattson = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Wattson, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Flannery = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Flannery, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Norman = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Norman, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Winona = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Winona, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Liza = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Liza, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Tate = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Tate, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wallace = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Wallace, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Steven = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Steven, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wally = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Wally, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RubySapphireLittleBoy = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RubySapphireLittleBoy, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanFishing = {0xFFFF, OBJ_EVENT_PAL_TAG_8, OBJ_EVENT_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Fishing, gObjectEventPicTable_BrendanFishing, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayFishing = {0xFFFF, OBJ_EVENT_PAL_TAG_17, OBJ_EVENT_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Fishing, gObjectEventPicTable_MayFishing, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_HotSpringsOldWoman = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_HotSpringsOldWoman, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SSTidal = {0xFFFF, OBJ_EVENT_PAL_TAG_21, OBJ_EVENT_PAL_TAG_NONE, 1920, 96, 40, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_8x8, gObjectEventSpriteOamTables_96x40, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SSTidal, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SubmarineShadow = {0xFFFF, OBJ_EVENT_PAL_TAG_26, OBJ_EVENT_PAL_TAG_NONE, 1408, 88, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_8x8, gObjectEventSpriteOamTables_88x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SubmarineShadow, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PichuDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_PichuDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PikachuDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_PikachuDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MarillDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_MarillDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TogepiDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_TogepiDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CyndaquilDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_CyndaquilDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ChikoritaDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_ChikoritaDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TotodileDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_TotodileDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_JigglypuffDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_JigglypuffDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MeowthDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_MeowthDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ClefairyDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_ClefairyDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DittoDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_DittoDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SmoochumDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_SmoochumDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TreeckoDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_TreeckoDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TorchicDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_TorchicDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MudkipDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_MudkipDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DuskullDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_DuskullDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_WynautDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_WynautDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BaltoyDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BaltoyDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KecleonDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_KecleonDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_AzurillDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_AzurillDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SkittyDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_SkittyDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwabluDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_SwabluDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GulpinDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_GulpinDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LotadDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_LotadDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SeedotDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_SeedotDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PikaCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_PikaCushion, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RoundCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_RoundCushion, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KissCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_KissCushion, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ZigzagCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_ZigzagCushion, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SpinCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_SpinCushion, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DiamondCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_DiamondCushion, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BallCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BallCushion, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GrassCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_GrassCushion, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_FireCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_FireCushion, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_WaterCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_WaterCushion, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigSnorlaxDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigSnorlaxDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigRhydonDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigRhydonDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigLaprasDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigLaprasDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigVenusaurDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigVenusaurDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigCharizardDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigCharizardDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigBlastoiseDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigBlastoiseDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigWailmerDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigWailmerDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigRegirockDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigRegirockDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigRegiceDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigRegiceDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigRegisteelDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigRegisteelDoll, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Latias = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_LatiasLatios, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Latios = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_LatiasLatios, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GameboyKid = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_GameboyKid, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ContestJudge = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_ContestJudge, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanWatering = {0xFFFF, OBJ_EVENT_PAL_TAG_8, OBJ_EVENT_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_BrendanWatering, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayWatering = {0xFFFF, OBJ_EVENT_PAL_TAG_17, OBJ_EVENT_PAL_TAG_10, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MayWatering, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanDecorating = {0xFFFF, OBJ_EVENT_PAL_TAG_8, OBJ_EVENT_PAL_TAG_10, 256, 16, 32, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BrendanDecorating, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayDecorating = {0xFFFF, OBJ_EVENT_PAL_TAG_17, OBJ_EVENT_PAL_TAG_10, 256, 16, 32, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_MayDecorating, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Archie = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Archie, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Maxie = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Maxie, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kyogre1 = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_KyogreFront, gObjectEventRotScalAnimTable_KyogreGroudon};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Groudon1 = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_GroudonFront, gObjectEventRotScalAnimTable_KyogreGroudon};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kyogre3 = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_KyogreSide, gObjectEventRotScalAnimTable_KyogreGroudon};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Groudon3 = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Groudon3, gObjectEventPicTable_GroudonSide, gObjectEventRotScalAnimTable_KyogreGroudon};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fossil = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_Fossil, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Regirock = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Regi, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Regice = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Regi, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Registeel = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Regi, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Skitty = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Skitty, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kecleon1 = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Kecleon, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kyogre2 = {0xFFFF, OBJ_EVENT_PAL_TAG_22, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_KyogreFront, gObjectEventRotScalAnimTable_KyogreGroudon};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Groudon2 = {0xFFFF, OBJ_EVENT_PAL_TAG_24, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_GroudonFront, gObjectEventRotScalAnimTable_KyogreGroudon};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Rayquaza2 = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 2048, 64, 64, 4, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_64x64, gObjectEventSpriteOamTables_64x64, gObjectEventImageAnimTable_Rayquaza2, gObjectEventPicTable_Rayquaza, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Zigzagoon = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Zigzagoon, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Pikachu = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Pikachu, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Azumarill = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Azumarill, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wingull = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Wingull, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kecleon2 = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_10, 128, 16, 16, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Kecleon, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberMSwimming = {0xFFFF, OBJ_EVENT_PAL_TAG_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_TuberMSwimming, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Azurill = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Azurill, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mom = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Mom, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LinkBrendan = {0xFFFF, OBJ_EVENT_PAL_TAG_17, OBJ_EVENT_PAL_TAG_10, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_BrendanMayNormal, gObjectEventPicTable_BrendanNormal, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LinkMay = {0xFFFF, OBJ_EVENT_PAL_TAG_17, OBJ_EVENT_PAL_TAG_10, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_BrendanMayNormal, gObjectEventPicTable_MayNormal, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Juan = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Juan, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Scott = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Scott, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MysteryEventDeliveryman = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MysteryEventDeliveryman, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Statue = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_Statue, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kirlia = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_S, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Kirlia, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Dusclops = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Dusclops, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnionRoomAttendant = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_UnionRoomAttendant, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Red = {0xFFFF, OBJ_EVENT_PAL_TAG_28, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Red, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Leaf = {0xFFFF, OBJ_EVENT_PAL_TAG_28, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Leaf, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sudowoodo = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Sudowoodo, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mew = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Mew, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Deoxys = {0xFFFF, OBJ_EVENT_PAL_TAG_29, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Deoxys, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BirthIslandStone = {0xFFFF, OBJ_EVENT_PAL_TAG_30, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BirthIslandStone, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Anabel = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Anabel, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Tucker = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Tucker, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Greta = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Greta, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Spenser = {0xFFFF, OBJ_EVENT_PAL_TAG_0, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Spenser, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Noland = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Noland, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lucy = {0xFFFF, OBJ_EVENT_PAL_TAG_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Lucy, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Brandon = {0xFFFF, OBJ_EVENT_PAL_TAG_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Brandon, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RubySapphireBrendan = {0xFFFF, OBJ_EVENT_PAL_TAG_33, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RubySapphireBrendan, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RubySapphireMay = {0xFFFF, OBJ_EVENT_PAL_TAG_34, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RubySapphireMay, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lugia = {0xFFFF, OBJ_EVENT_PAL_TAG_32, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Lugia, gDummySpriteAffineAnimTable};
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_HoOh = {0xFFFF, OBJ_EVENT_PAL_TAG_31, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_HoOh, gObjectEventPicTable_HoOh, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanNormal = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_BrendanMayNormal, gObjectEventPicTable_BrendanNormal, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanMachBike = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_BrendanMachBike, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanAcroBike = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_AcroBike, gObjectEventPicTable_BrendanAcroBike, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanSurfing = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Surfing, gObjectEventPicTable_BrendanSurfing, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanFieldMove = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_FieldMove, gObjectEventPicTable_BrendanFieldMove, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_QuintyPlump = {0xFFFF, OBJ_EVENT_PAL_TAG_QUINTY_PLUMP, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_L, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_QuintyPlump, gObjectEventPicTable_QuintyPlump, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_NinjaBoy = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_NinjaBoy, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Twin = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Twin, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Boy1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Boy1, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Girl1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Girl1, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Boy2 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Boy2, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Girl2 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Girl2, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LittleBoy = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_LittleBoy, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LittleGirl = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_LittleGirl, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Boy3 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Boy3, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Girl3 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Girl3, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RichBoy = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RichBoy, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Woman1, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_FatMan = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_FatMan, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PokefanF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_PokefanF, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Man1, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman2 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Woman2, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ExpertM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_ExpertM, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ExpertF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_ExpertF, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man2 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Man2, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman3 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Woman3, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PokefanM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_PokefanM, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman4 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Woman4, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Cook = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Cook, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LinkReceptionist = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_LinkReceptionist, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldMan = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_OldMan, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_OldWoman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_OldWoman, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Camper = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Camper, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Picnicker = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Picnicker, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man3 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Man3, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Woman5 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Woman5, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Youngster = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Youngster, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BugCatcher = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_BugCatcher, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PsychicM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_PsychicM, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SchoolKidM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SchoolKidM, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Maniac = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Maniac, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_HexManiac = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_HexManiac, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Rayquaza1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 2048, 64, 64, 4, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_64x64, gObjectEventSpriteOamTables_64x64, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RayquazaStill, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SwimmerM, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwimmerF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SwimmerF, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BlackBelt = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_BlackBelt, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Beauty = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Beauty, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Scientist1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Scientist1, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lass = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Lass, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Gentleman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Gentleman, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sailor = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Sailor, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fisherman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Fisherman, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RunningTriathleteM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RunningTriathleteM, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RunningTriathleteF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RunningTriathleteF, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_TuberF, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_TuberM, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Hiker = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Hiker, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CyclingTriathleteM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_AcroBike, gObjectEventPicTable_CyclingTriathleteM, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CyclingTriathleteF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_AcroBike, gObjectEventPicTable_CyclingTriathleteF, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Nurse = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Nurse, gObjectEventPicTable_Nurse, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ItemBall = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_ItemBall, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BerryTree = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, NULL, gObjectEventImageAnimTable_BerryTree, gObjectEventPicTable_PechaBerryTree, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BerryTreeEarlyStages = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_BerryTree, gObjectEventPicTable_PechaBerryTree, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BerryTreeLateStages = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_BerryTree, gObjectEventPicTable_PechaBerryTree, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ProfBirch = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_ProfBirch, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man4 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Man4, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Man5 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Man5, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ReporterM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_ReporterM, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ReporterF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_ReporterF, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Bard = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MauvilleOldMan1, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Hipster = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MauvilleOldMan1, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Trader = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MauvilleOldMan1, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Storyteller = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Giddy = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedMauvilleOldMan1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedMauvilleOldMan2 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MauvilleOldMan2, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedNatuDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_UnusedNatuDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedMagnemiteDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_UnusedMagnemiteDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedSquirtleDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_UnusedSquirtleDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedWooperDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_UnusedWooperDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedPikachuDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_UnusedPikachuDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnusedPorygon2Doll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_UnusedPorygon2Doll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CuttableTree = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_CuttableTree, gObjectEventPicTable_CuttableTree, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MartEmployee = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MartEmployee, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RooftopSaleWoman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RooftopSaleWoman, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Teala = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Teala, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BreakableRock = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_BreakableRock, gObjectEventPicTable_BreakableRock, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PushableBoulder = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_PushableBoulder, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MrBrineysBoat = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MrBrineysBoat, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayNormal = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 16, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_BrendanMayNormal, gObjectEventPicTable_MayNormal, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayMachBike = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MayMachBike, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayAcroBike = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_AcroBike, gObjectEventPicTable_MayAcroBike, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MaySurfing = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Surfing, gObjectEventPicTable_MaySurfing, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayFieldMove = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_FieldMove, gObjectEventPicTable_MayFieldMove, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Truck = {0xFFFF, OBJ_EVENT_PAL_TAG_TRUCK, OBJ_EVENT_PAL_TAG_NONE, 1152, 48, 48, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_48x48, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_Truck, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_VigorothCarryingBox = {0xFFFF, OBJ_EVENT_PAL_TAG_VIGOROTH, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_VigorothCarryingBox, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_VigorothFacingAway = {0xFFFF, OBJ_EVENT_PAL_TAG_VIGOROTH, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_VigorothFacingAway, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BirchsBag = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BirchsBag, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_EnemyZigzagoon = {0xFFFF, OBJ_EVENT_PAL_TAG_ZIGZAGOON, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_EnemyZigzagoon, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Poochyena = {0xFFFF, OBJ_EVENT_PAL_TAG_POOCHYENA, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Poochyena, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Artist = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Artist, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanNormal = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_BrendanMayNormal, gObjectEventPicTable_BrendanNormal, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanMachBike = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_BrendanMachBike, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanAcroBike = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_AcroBike, gObjectEventPicTable_BrendanAcroBike, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanSurfing = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Surfing, gObjectEventPicTable_BrendanSurfing, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalBrendanFieldMove = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_FieldMove, gObjectEventPicTable_BrendanFieldMove, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMayNormal = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_BrendanMayNormal, gObjectEventPicTable_MayNormal, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMayMachBike = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MayMachBike, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMayAcroBike = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_BIKE_TIRE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_AcroBike, gObjectEventPicTable_MayAcroBike, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMaySurfing = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Surfing, gObjectEventPicTable_MaySurfing, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RivalMayFieldMove = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_FieldMove, gObjectEventPicTable_MayFieldMove, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Cameraman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Cameraman, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanUnderwater = {0xFFFF, OBJ_EVENT_PAL_TAG_PLAYER_UNDERWATER, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_BrendanUnderwater, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayUnderwater = {0xFFFF, OBJ_EVENT_PAL_TAG_PLAYER_UNDERWATER, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MayUnderwater, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MovingBox = {0xFFFF, OBJ_EVENT_PAL_TAG_MOVING_BOX, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 10, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_MovingBox, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CableCar = {0xFFFF, OBJ_EVENT_PAL_TAG_CABLE_CAR, OBJ_EVENT_PAL_TAG_NONE, 2048, 64, 64, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_64x64, gObjectEventSpriteOamTables_64x64, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_CableCar, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Scientist2 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Scientist2, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DevonEmployee = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_DevonEmployee, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_AquaMemberM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_AquaMemberM, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_AquaMemberF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_AquaMemberF, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MagmaMemberM = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MagmaMemberM, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MagmaMemberF = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MagmaMemberF, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sidney = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Sidney, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Phoebe = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Phoebe, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Glacia = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Glacia, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Drake = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Drake, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Roxanne = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Roxanne, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Brawly = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Brawly, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wattson = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Wattson, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Flannery = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Flannery, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Norman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Norman, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Winona = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Winona, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Liza = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Liza, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Tate = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Tate, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wallace = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Wallace, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Steven = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Steven, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wally = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Wally, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RubySapphireLittleBoy = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RubySapphireLittleBoy, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanFishing = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Fishing, gObjectEventPicTable_BrendanFishing, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayFishing = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Fishing, gObjectEventPicTable_MayFishing, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_HotSpringsOldWoman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_HotSpringsOldWoman, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SSTidal = {0xFFFF, OBJ_EVENT_PAL_TAG_SSTIDAL, OBJ_EVENT_PAL_TAG_NONE, 1920, 96, 40, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_8x8, gObjectEventSpriteOamTables_96x40, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SSTidal, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SubmarineShadow = {0xFFFF, OBJ_EVENT_PAL_TAG_SUBMARINE_SHADOW, OBJ_EVENT_PAL_TAG_NONE, 1408, 88, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_8x8, gObjectEventSpriteOamTables_88x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_SubmarineShadow, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PichuDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_PichuDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PikachuDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_PikachuDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MarillDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_MarillDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TogepiDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_TogepiDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_CyndaquilDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_CyndaquilDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ChikoritaDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_ChikoritaDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TotodileDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_TotodileDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_JigglypuffDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_JigglypuffDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MeowthDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_MeowthDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ClefairyDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_ClefairyDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DittoDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_DittoDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SmoochumDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_SmoochumDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TreeckoDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_TreeckoDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TorchicDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_TorchicDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MudkipDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_MudkipDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DuskullDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_DuskullDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_WynautDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_WynautDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BaltoyDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BaltoyDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KecleonDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_KecleonDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_AzurillDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_AzurillDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SkittyDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_SkittyDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SwabluDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_SwabluDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GulpinDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_GulpinDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LotadDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_LotadDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SeedotDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_SeedotDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_PikaCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_PikaCushion, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RoundCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_RoundCushion, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KissCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_KissCushion, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ZigzagCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_ZigzagCushion, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_SpinCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_SpinCushion, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_DiamondCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 5, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_DiamondCushion, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BallCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BallCushion, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GrassCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_GrassCushion, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_FireCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_FireCushion, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_WaterCushion = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_WaterCushion, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigSnorlaxDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigSnorlaxDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigRhydonDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigRhydonDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigLaprasDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigLaprasDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigVenusaurDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigVenusaurDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigCharizardDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigCharizardDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigBlastoiseDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigBlastoiseDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigWailmerDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigWailmerDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigRegirockDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigRegirockDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigRegiceDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigRegiceDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BigRegisteelDoll = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BigRegisteelDoll, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Latias = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_LatiasLatios, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Latios = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_LatiasLatios, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_GameboyKid = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_GameboyKid, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ContestJudge = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_ContestJudge, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanWatering = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_BrendanWatering, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayWatering = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 512, 32, 32, 0, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MayWatering, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BrendanDecorating = {0xFFFF, OBJ_EVENT_PAL_TAG_BRENDAN, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BrendanDecorating, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MayDecorating = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_MayDecorating, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Archie = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Archie, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Maxie = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Maxie, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kyogre1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_KyogreFront, gObjectEventRotScalAnimTable_KyogreGroudon};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Groudon1 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_GroudonFront, gObjectEventRotScalAnimTable_KyogreGroudon};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kyogre3 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_KyogreSide, gObjectEventRotScalAnimTable_KyogreGroudon};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Groudon3 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Groudon3, gObjectEventPicTable_GroudonSide, gObjectEventRotScalAnimTable_KyogreGroudon};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Fossil = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_S, TRUE, FALSE, TRACKS_NONE, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_Fossil, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Regirock = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 3, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Regi, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Regice = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 4, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Regi, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Registeel = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Regi, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Skitty = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Skitty, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kecleon = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Kecleon, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kyogre2 = {0xFFFF, OBJ_EVENT_PAL_TAG_KYOGRE, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_KyogreFront, gObjectEventRotScalAnimTable_KyogreGroudon};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Groudon2 = {0xFFFF, OBJ_EVENT_PAL_TAG_GROUDON, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_GroudonFront, gObjectEventRotScalAnimTable_KyogreGroudon};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Rayquaza2 = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 2048, 64, 64, 4, SHADOW_SIZE_M, FALSE, TRUE, TRACKS_FOOT, &gObjectEventBaseOam_64x64, gObjectEventSpriteOamTables_64x64, gObjectEventImageAnimTable_Rayquaza2, gObjectEventPicTable_Rayquaza, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Zigzagoon = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Zigzagoon, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Pikachu = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Pikachu, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Azumarill = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Azumarill, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wingull = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Wingull, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KecleonBridgeShadow = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 128, 16, 16, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Kecleon, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberMSwimming = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_2, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 3, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_TuberMSwimming, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Azurill = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 128, 16, 16, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x16, gObjectEventSpriteOamTables_16x16, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Azurill, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mom = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Mom, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LinkBrendan = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_BrendanMayNormal, gObjectEventPicTable_BrendanNormal, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_LinkMay = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_BrendanMayNormal, gObjectEventPicTable_MayNormal, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Juan = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Juan, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Scott = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Scott, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_MysteryEventDeliveryman = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_MysteryEventDeliveryman, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Statue = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_Statue, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kirlia = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_S, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Kirlia, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Dusclops = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Dusclops, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_UnionRoomAttendant = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_UnionRoomAttendant, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Red = {0xFFFF, OBJ_EVENT_PAL_TAG_RED_LEAF, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Red, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Leaf = {0xFFFF, OBJ_EVENT_PAL_TAG_RED_LEAF, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Leaf, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Sudowoodo = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Sudowoodo, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mew = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Mew, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Deoxys = {0xFFFF, OBJ_EVENT_PAL_TAG_DEOXYS, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Deoxys, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BirthIslandStone = {0xFFFF, OBJ_EVENT_PAL_TAG_BIRTH_ISLAND_STONE, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, TRUE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Inanimate, gObjectEventPicTable_BirthIslandStone, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Anabel = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Anabel, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Tucker = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Tucker, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Greta = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Greta, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Spenser = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_1, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 2, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Spenser, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Noland = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Noland, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lucy = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_4, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 5, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Lucy, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Brandon = {0xFFFF, OBJ_EVENT_PAL_TAG_NPC_3, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 4, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Brandon, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RubySapphireBrendan = {0xFFFF, OBJ_EVENT_PAL_TAG_RS_BRENDAN, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RubySapphireBrendan, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_RubySapphireMay = {0xFFFF, OBJ_EVENT_PAL_TAG_RS_MAY, OBJ_EVENT_PAL_TAG_NONE, 256, 16, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_16x32, gObjectEventSpriteOamTables_16x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_RubySapphireMay, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Lugia = {0xFFFF, OBJ_EVENT_PAL_TAG_LUGIA, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_Standard, gObjectEventPicTable_Lugia, gDummySpriteAffineAnimTable};
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_HoOh = {0xFFFF, OBJ_EVENT_PAL_TAG_HO_OH, OBJ_EVENT_PAL_TAG_NONE, 512, 32, 32, 10, SHADOW_SIZE_M, FALSE, FALSE, TRACKS_FOOT, &gObjectEventBaseOam_32x32, gObjectEventSpriteOamTables_32x32, gObjectEventImageAnimTable_HoOh, gObjectEventPicTable_HoOh, gDummySpriteAffineAnimTable};
diff --git a/src/data/object_events/object_event_graphics_info_pointers.h b/src/data/object_events/object_event_graphics_info_pointers.h
index c72b0279d..0ca70fa33 100755
--- a/src/data/object_events/object_event_graphics_info_pointers.h
+++ b/src/data/object_events/object_event_graphics_info_pointers.h
@@ -202,7 +202,7 @@ const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Regirock;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Regice;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Registeel;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Skitty;
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kecleon1;
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kecleon;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kyogre2;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Groudon2;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Rayquaza2;
@@ -210,7 +210,7 @@ const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Zigzagoon;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Pikachu;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Azumarill;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Wingull;
-const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Kecleon2;
+const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_KecleonBridgeShadow;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_TuberMSwimming;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Azurill;
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_Mom;
@@ -451,7 +451,7 @@ const struct ObjectEventGraphicsInfo *const gObjectEventGraphicsInfoPointers[NUM
[OBJ_EVENT_GFX_REGICE] = &gObjectEventGraphicsInfo_Regice,
[OBJ_EVENT_GFX_REGISTEEL] = &gObjectEventGraphicsInfo_Registeel,
[OBJ_EVENT_GFX_SKITTY] = &gObjectEventGraphicsInfo_Skitty,
- [OBJ_EVENT_GFX_KECLEON_1] = &gObjectEventGraphicsInfo_Kecleon1,
+ [OBJ_EVENT_GFX_KECLEON] = &gObjectEventGraphicsInfo_Kecleon,
[OBJ_EVENT_GFX_KYOGRE_2] = &gObjectEventGraphicsInfo_Kyogre2,
[OBJ_EVENT_GFX_GROUDON_2] = &gObjectEventGraphicsInfo_Groudon2,
[OBJ_EVENT_GFX_RAYQUAZA_2] = &gObjectEventGraphicsInfo_Rayquaza2,
@@ -459,7 +459,7 @@ const struct ObjectEventGraphicsInfo *const gObjectEventGraphicsInfoPointers[NUM
[OBJ_EVENT_GFX_PIKACHU] = &gObjectEventGraphicsInfo_Pikachu,
[OBJ_EVENT_GFX_AZUMARILL] = &gObjectEventGraphicsInfo_Azumarill,
[OBJ_EVENT_GFX_WINGULL] = &gObjectEventGraphicsInfo_Wingull,
- [OBJ_EVENT_GFX_KECLEON_2] = &gObjectEventGraphicsInfo_Kecleon2,
+ [OBJ_EVENT_GFX_KECLEON_BRIDGE_SHADOW] = &gObjectEventGraphicsInfo_KecleonBridgeShadow,
[OBJ_EVENT_GFX_TUBER_M_SWIMMING] = &gObjectEventGraphicsInfo_TuberMSwimming,
[OBJ_EVENT_GFX_AZURILL] = &gObjectEventGraphicsInfo_Azurill,
[OBJ_EVENT_GFX_MOM] = &gObjectEventGraphicsInfo_Mom,
diff --git a/src/data/pokemon/item_effects.h b/src/data/pokemon/item_effects.h
index 698d97a43..1ed721e44 100644
--- a/src/data/pokemon/item_effects.h
+++ b/src/data/pokemon/item_effects.h
@@ -26,12 +26,12 @@ const u8 gItemEffect_ParalyzeHeal[6] = {
const u8 gItemEffect_FullRestore[7] = {
[3] = ITEM3_STATUS_ALL,
[4] = ITEM4_HEAL_HP,
- [6] = -1,
+ [6] = ITEM6_HEAL_FULL,
};
const u8 gItemEffect_MaxPotion[7] = {
[4] = ITEM4_HEAL_HP,
- [6] = -1,
+ [6] = ITEM6_HEAL_FULL,
};
const u8 gItemEffect_HyperPotion[7] = {
@@ -50,12 +50,12 @@ const u8 gItemEffect_FullHeal[6] = {
const u8 gItemEffect_Revive[7] = {
[4] = ITEM4_REVIVE | ITEM4_HEAL_HP,
- [6] = -2,
+ [6] = ITEM6_HEAL_HALF,
};
const u8 gItemEffect_MaxRevive[7] = {
[4] = ITEM4_REVIVE | ITEM4_HEAL_HP,
- [6] = -1,
+ [6] = ITEM6_HEAL_FULL,
};
const u8 gItemEffect_FreshWater[7] = {
@@ -107,7 +107,7 @@ const u8 gItemEffect_HealPowder[9] = {
const u8 gItemEffect_RevivalHerb[10] = {
[4] = ITEM4_REVIVE | ITEM4_HEAL_HP,
[5] = ITEM5_FRIENDSHIP_ALL,
- [6] = -1,
+ [6] = ITEM6_HEAL_FULL,
[7] = -15,
[8] = -15,
[9] = -20,
@@ -157,7 +157,7 @@ const u8 gItemEffect_BerryJuice[7] = {
const u8 gItemEffect_SacredAsh[7] = {
[0] = ITEM0_SACRED_ASH,
[4] = ITEM4_REVIVE | ITEM4_HEAL_HP,
- [6] = -1,
+ [6] = ITEM6_HEAL_FULL,
};
const u8 gItemEffect_HPUp[10] = {
@@ -206,7 +206,7 @@ const u8 gItemEffect_RareCandy[10] = {
[3] = ITEM3_LEVEL_UP,
[4] = ITEM4_REVIVE | ITEM4_HEAL_HP,
[5] = ITEM5_FRIENDSHIP_ALL,
- [6] = 0xFD,
+ [6] = ITEM6_HEAL_LVL_UP,
[7] = 5,
[8] = 3,
[9] = 2,
diff --git a/src/data/pokemon/tmhm_learnsets.h b/src/data/pokemon/tmhm_learnsets.h
index 3ad9a97c6..deeeda16f 100644
--- a/src/data/pokemon/tmhm_learnsets.h
+++ b/src/data/pokemon/tmhm_learnsets.h
@@ -3,7 +3,7 @@
// This table determines which TMs and HMs a species is capable of learning.
// Each entry is a 64-bit bit array spread across two 32-bit values, with
-// each bit corresponding to a .
+// each bit corresponding to a TM or HM.
const u32 gTMHMLearnsets[][2] =
{
[SPECIES_NONE] = TMHM_LEARNSET(0),
diff --git a/src/data/region_map/city_map_entries.h b/src/data/region_map/city_map_entries.h
index 09689da5b..d5478c7b4 100644
--- a/src/data/region_map/city_map_entries.h
+++ b/src/data/region_map/city_map_entries.h
@@ -18,7 +18,7 @@ static const struct CityMapEntry sPokenavCityMaps[NUM_CITY_MAPS] =
{
.mapSecId = MAPSEC_LAVARIDGE_TOWN,
.index = 0,
- .tilemap = gPokenavCityMap_Lavarige_0,
+ .tilemap = gPokenavCityMap_Lavaridge_0,
},
{
.mapSecId = MAPSEC_FALLARBOR_TOWN,
diff --git a/src/data/region_map/city_map_tilemaps.h b/src/data/region_map/city_map_tilemaps.h
index 8a8a931f9..fed158935 100644
--- a/src/data/region_map/city_map_tilemaps.h
+++ b/src/data/region_map/city_map_tilemaps.h
@@ -1,4 +1,4 @@
-const u32 gPokenavCityMap_Lavarige_0[] = INCBIN_U32("graphics/pokenav/city_maps/lavaridge_0.bin.lz");
+const u32 gPokenavCityMap_Lavaridge_0[] = INCBIN_U32("graphics/pokenav/city_maps/lavaridge_0.bin.lz");
const u32 gPokenavCityMap_Fallarbor_0[] = INCBIN_U32("graphics/pokenav/city_maps/fallarbor_0.bin.lz");
const u32 gPokenavCityMap_Fortree_0[] = INCBIN_U32("graphics/pokenav/city_maps/fortree_0.bin.lz");
const u32 gPokenavCityMap_Slateport_0[] = INCBIN_U32("graphics/pokenav/city_maps/slateport_0.bin.lz");
diff --git a/src/daycare.c b/src/daycare.c
index 1490d3742..60bff8f1e 100644
--- a/src/daycare.c
+++ b/src/daycare.c
@@ -22,7 +22,6 @@
#include "constants/items.h"
#include "constants/moves.h"
#include "constants/region_map_sections.h"
-#include "constants/species.h"
// this file's functions
static void ClearDaycareMonMail(struct DayCareMail *mail);
@@ -549,7 +548,12 @@ static void InheritIVs(struct Pokemon *egg, struct DayCare *daycare)
{
// Randomly pick an IV from the available list and stop from being chosen again.
selectedIvs[i] = availableIVs[Random() % (NUM_STATS - i)];
- RemoveIVIndexFromList(availableIVs, i);
+ // BUG: Instead of removing the IV that was just picked (like in RS and FRLG), this
+ // removes position 0 (HP) then position 1 (DEF), then position 2. This is why HP and DEF
+ // have a lower chance to be inherited in Emerald and why the IV picked for inheritance can
+ // be repeated. Uncomment the inline comment and remove the existing expression to get the
+ // intended behavior and to match the other Gen 3 games.
+ RemoveIVIndexFromList(availableIVs, i /*selectedIvs[i]*/);
}
// Determine which parent each of the selected IVs should inherit from.
@@ -1183,7 +1187,7 @@ static void DaycareAddTextPrinter(u8 windowId, const u8 *text, u32 x, u32 y)
printer.y = y;
printer.currentX = x;
printer.currentY = y;
- printer.style = 0;
+ printer.unk = 0;
gTextFlags.useAlternateDownArrow = 0;
printer.letterSpacing = 0;
printer.lineSpacing = 1;
diff --git a/src/decompress.c b/src/decompress.c
index c303f214f..007753303 100644
--- a/src/decompress.c
+++ b/src/decompress.c
@@ -4,7 +4,6 @@
#include "decompress.h"
#include "pokemon.h"
#include "text.h"
-#include "constants/species.h"
EWRAM_DATA ALIGNED(4) u8 gDecompressionBuffer[0x4000] = {0};
diff --git a/src/decoration.c b/src/decoration.c
index 22ae327f9..74dbacdf9 100644
--- a/src/decoration.c
+++ b/src/decoration.c
@@ -917,9 +917,9 @@ static void DecorationItemsMenu_PrintDecorationInUse(u8 windowId, s32 itemIndex,
if (itemIndex != -2)
{
if (IsDecorationIndexInSecretBase(itemIndex + 1) == TRUE)
- blit_move_info_icon(windowId, 0x18, 0x5c, y + 2);
+ BlitMenuInfoIcon(windowId, MENU_INFO_ICON_BALL_RED, 92, y + 2);
else if (IsDecorationIndexInPlayersRoom(itemIndex + 1) == TRUE)
- blit_move_info_icon(windowId, 0x19, 0x5c, y + 2);
+ BlitMenuInfoIcon(windowId, MENU_INFO_ICON_BALL_BLUE, 92, y + 2);
}
}
@@ -1827,7 +1827,7 @@ static void Task_SelectLocation(u8 taskId)
sPlacePutAwayYesNoFunctions[tDecorationItemsMenuCommand].yesFunc(taskId);
return;
}
-
+
if (tButton == B_BUTTON)
{
sPlacePutAwayYesNoFunctions[tDecorationItemsMenuCommand].noFunc(taskId);
diff --git a/src/dewford_trend.c b/src/dewford_trend.c
index e0063ec1b..5c7e50f16 100644
--- a/src/dewford_trend.c
+++ b/src/dewford_trend.c
@@ -219,11 +219,10 @@ void BufferTrendyPhraseString(void)
ConvertEasyChatWordsToString(gStringVar1, s->words, 2, 1);
}
-
void TrendyPhraseIsOld(void)
{
- u8 result = 0;
-
+ u16 result = 0;
+
do
{
if (gSaveBlock1Ptr->easyChatPairs[0].unk0_0 - gSaveBlock1Ptr->easyChatPairs[1].unk0_0 > 1)
@@ -234,7 +233,7 @@ void TrendyPhraseIsOld(void)
break;
result = 1;
} while (0);
-
+
gSpecialVar_Result = result;
}
@@ -249,46 +248,46 @@ static bool8 sub_8122A58(struct EasyChatPair *a, struct EasyChatPair *b, u8 c)
{
case 0:
if (a->unk0_0 > b->unk0_0)
- return TRUE;
+ return 1;
if (a->unk0_0 < b->unk0_0)
- return FALSE;
+ return 0;
if (a->unk0_7 > b->unk0_7)
- return TRUE;
+ return 1;
if (a->unk0_7 < b->unk0_7)
- return FALSE;
+ return 0;
break;
case 1:
if (a->unk0_7 > b->unk0_7)
- return TRUE;
+ return 1;
if (a->unk0_7 < b->unk0_7)
- return FALSE;
+ return 0;
if (a->unk0_0 > b->unk0_0)
- return TRUE;
+ return 1;
if (a->unk0_0 < b->unk0_0)
- return FALSE;
+ return 0;
break;
case 2:
if (a->unk0_0 > b->unk0_0)
- return TRUE;
+ return 1;
if (a->unk0_0 < b->unk0_0)
- return FALSE;
+ return 0;
if (a->unk0_7 > b->unk0_7)
- return TRUE;
+ return 1;
if (a->unk0_7 < b->unk0_7)
- return FALSE;
+ return 0;
if (a->unk2 > b->unk2)
- return TRUE;
+ return 1;
if (a->unk2 < b->unk2)
- return FALSE;
+ return 0;
if (a->words[0] > b->words[0])
- return TRUE;
+ return 1;
if (a->words[0] < b->words[0])
- return FALSE;
+ return 0;
if (a->words[1] > b->words[1])
- return TRUE;
+ return 1;
if (a->words[1] < b->words[1])
- return FALSE;
- return TRUE;
+ return 0;
+ return 1;
}
return Random() & 1;
}
diff --git a/src/dodrio_berry_picking.c b/src/dodrio_berry_picking.c
index 9cbc73c73..66eacc5f9 100644
--- a/src/dodrio_berry_picking.c
+++ b/src/dodrio_berry_picking.c
@@ -24,7 +24,6 @@
#include "window.h"
#include "constants/items.h"
#include "constants/songs.h"
-#include "constants/species.h"
struct DodrioSubstruct_0160
{
diff --git a/src/easy_chat.c b/src/easy_chat.c
index e08f0bb75..2590eea1a 100644
--- a/src/easy_chat.c
+++ b/src/easy_chat.c
@@ -32,7 +32,6 @@
#include "constants/lilycove_lady.h"
#include "constants/mauville_old_man.h"
#include "constants/songs.h"
-#include "constants/species.h"
#include "constants/rgb.h"
#define EZCHAT_TASK_STATE 0
@@ -1614,26 +1613,26 @@ static u16 sub_811ACDC(void)
{
return sub_811B150();
}
- if (JOY_NEW(START_BUTTON))
+ else if (JOY_NEW(START_BUTTON))
{
return sub_811B1B4();
}
- if (JOY_NEW(DPAD_UP))
+ else if (JOY_NEW(DPAD_UP))
{
sEasyChatScreen->mainCursorRow--;
break;
}
- if (JOY_NEW(DPAD_LEFT))
+ else if (JOY_NEW(DPAD_LEFT))
{
sEasyChatScreen->mainCursorColumn--;
break;
}
- if (JOY_NEW(DPAD_DOWN))
+ else if (JOY_NEW(DPAD_DOWN))
{
sEasyChatScreen->mainCursorRow = 0;
break;
}
- if (JOY_NEW(DPAD_RIGHT))
+ else if (JOY_NEW(DPAD_RIGHT))
{
sEasyChatScreen->mainCursorColumn++;
break;
@@ -2537,7 +2536,7 @@ u8 sub_811BBBC(void)
return sEasyChatScreen->unk_0c;
}
-static void sub_811BBC8(s8 *arg0, s8 *arg1)
+void sub_811BBC8(u8 *arg0, u8 *arg1)
{
*arg0 = sEasyChatScreen->unk_10;
*arg1 = sEasyChatScreen->unk_11;
@@ -4529,18 +4528,18 @@ static void sub_811E30C(void)
x = var0 * 13;
x = x * 8 + 28;
y = var1 * 16 + 96;
- sub_811E34C((u8)x, (u8)y);
+ sub_811E34C(x, y);
}
static void sub_811E34C(u8 x, u8 y)
{
- if (!sUnknown_0203A11C->unk2E4)
- return;
-
- sUnknown_0203A11C->unk2E4->pos1.x = (s16)x;
- sUnknown_0203A11C->unk2E4->pos1.y = (s16)y;
- sUnknown_0203A11C->unk2E4->pos2.x = 0;
- sUnknown_0203A11C->unk2E4->data[0] = 0;
+ if (sUnknown_0203A11C->unk2E4)
+ {
+ sUnknown_0203A11C->unk2E4->pos1.x = x;
+ sUnknown_0203A11C->unk2E4->pos1.y = y;
+ sUnknown_0203A11C->unk2E4->pos2.x = 0;
+ sUnknown_0203A11C->unk2E4->data[0] = 0;
+ }
}
static void sub_811E380(void)
diff --git a/src/ereader_helpers.c b/src/ereader_helpers.c
index bdfbebf6b..944d1d728 100755
--- a/src/ereader_helpers.c
+++ b/src/ereader_helpers.c
@@ -12,7 +12,6 @@
#include "trainer_hill.h"
#include "constants/easy_chat.h"
#include "constants/trainers.h"
-#include "constants/species.h"
#include "constants/moves.h"
#include "constants/items.h"
diff --git a/src/event_object_movement.c b/src/event_object_movement.c
index f97c9bfa0..1d06ddc84 100644
--- a/src/event_object_movement.c
+++ b/src/event_object_movement.c
@@ -401,42 +401,43 @@ const u8 gInitialMovementTypeFacingDirections[] = {
[MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT] = DIR_EAST,
};
-#define OBJ_EVENT_PAL_TAG_0 0x1103
-#define OBJ_EVENT_PAL_TAG_1 0x1104
-#define OBJ_EVENT_PAL_TAG_2 0x1105
-#define OBJ_EVENT_PAL_TAG_3 0x1106
-#define OBJ_EVENT_PAL_TAG_4 0x1107
-#define OBJ_EVENT_PAL_TAG_5 0x1108
-#define OBJ_EVENT_PAL_TAG_6 0x1109
-#define OBJ_EVENT_PAL_TAG_7 0x110A
-#define OBJ_EVENT_PAL_TAG_8 0x1100
-#define OBJ_EVENT_PAL_TAG_9 0x1101
-#define OBJ_EVENT_PAL_TAG_10 0x1102
-#define OBJ_EVENT_PAL_TAG_11 0x1115
-#define OBJ_EVENT_PAL_TAG_12 0x110B
-#define OBJ_EVENT_PAL_TAG_13 0x110C
-#define OBJ_EVENT_PAL_TAG_14 0x110D
-#define OBJ_EVENT_PAL_TAG_15 0x110E
-#define OBJ_EVENT_PAL_TAG_16 0x110F
-#define OBJ_EVENT_PAL_TAG_17 0x1110
-#define OBJ_EVENT_PAL_TAG_18 0x1111
-#define OBJ_EVENT_PAL_TAG_19 0x1112
-#define OBJ_EVENT_PAL_TAG_20 0x1113
-#define OBJ_EVENT_PAL_TAG_21 0x1114
-#define OBJ_EVENT_PAL_TAG_22 0x1116
-#define OBJ_EVENT_PAL_TAG_23 0x1117
-#define OBJ_EVENT_PAL_TAG_24 0x1118
-#define OBJ_EVENT_PAL_TAG_25 0x1119
-#define OBJ_EVENT_PAL_TAG_26 0x111B
-#define OBJ_EVENT_PAL_TAG_27 0x111C
-#define OBJ_EVENT_PAL_TAG_28 0x111D
-#define OBJ_EVENT_PAL_TAG_29 0x111E
-#define OBJ_EVENT_PAL_TAG_30 0x111F
-#define OBJ_EVENT_PAL_TAG_31 0x1120
-#define OBJ_EVENT_PAL_TAG_32 0x1121
-#define OBJ_EVENT_PAL_TAG_33 0x1122
-#define OBJ_EVENT_PAL_TAG_34 0x1123
-#define OBJ_EVENT_PAL_TAG_NONE 0x11FF
+#define OBJ_EVENT_PAL_TAG_BRENDAN 0x1100
+#define OBJ_EVENT_PAL_TAG_BRENDAN_REFLECTION 0x1101
+#define OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION 0x1102
+#define OBJ_EVENT_PAL_TAG_NPC_1 0x1103
+#define OBJ_EVENT_PAL_TAG_NPC_2 0x1104
+#define OBJ_EVENT_PAL_TAG_NPC_3 0x1105
+#define OBJ_EVENT_PAL_TAG_NPC_4 0x1106
+#define OBJ_EVENT_PAL_TAG_NPC_1_REFLECTION 0x1107
+#define OBJ_EVENT_PAL_TAG_NPC_2_REFLECTION 0x1108
+#define OBJ_EVENT_PAL_TAG_NPC_3_REFLECTION 0x1109
+#define OBJ_EVENT_PAL_TAG_NPC_4_REFLECTION 0x110A
+#define OBJ_EVENT_PAL_TAG_QUINTY_PLUMP 0x110B
+#define OBJ_EVENT_PAL_TAG_QUINTY_PLUMP_REFLECTION 0x110C
+#define OBJ_EVENT_PAL_TAG_TRUCK 0x110D
+#define OBJ_EVENT_PAL_TAG_VIGOROTH 0x110E
+#define OBJ_EVENT_PAL_TAG_ZIGZAGOON 0x110F
+#define OBJ_EVENT_PAL_TAG_MAY 0x1110
+#define OBJ_EVENT_PAL_TAG_MAY_REFLECTION 0x1111
+#define OBJ_EVENT_PAL_TAG_MOVING_BOX 0x1112
+#define OBJ_EVENT_PAL_TAG_CABLE_CAR 0x1113
+#define OBJ_EVENT_PAL_TAG_SSTIDAL 0x1114
+#define OBJ_EVENT_PAL_TAG_PLAYER_UNDERWATER 0x1115
+#define OBJ_EVENT_PAL_TAG_KYOGRE 0x1116
+#define OBJ_EVENT_PAL_TAG_KYOGRE_REFLECTION 0x1117
+#define OBJ_EVENT_PAL_TAG_GROUDON 0x1118
+#define OBJ_EVENT_PAL_TAG_GROUDON_REFLECTION 0x1119
+#define OBJ_EVENT_PAL_TAG_UNUSED 0x111A
+#define OBJ_EVENT_PAL_TAG_SUBMARINE_SHADOW 0x111B
+#define OBJ_EVENT_PAL_TAG_POOCHYENA 0x111C
+#define OBJ_EVENT_PAL_TAG_RED_LEAF 0x111D
+#define OBJ_EVENT_PAL_TAG_DEOXYS 0x111E
+#define OBJ_EVENT_PAL_TAG_BIRTH_ISLAND_STONE 0x111F
+#define OBJ_EVENT_PAL_TAG_HO_OH 0x1120
+#define OBJ_EVENT_PAL_TAG_LUGIA 0x1121
+#define OBJ_EVENT_PAL_TAG_RS_BRENDAN 0x1122
+#define OBJ_EVENT_PAL_TAG_RS_MAY 0x1123
+#define OBJ_EVENT_PAL_TAG_NONE 0x11FF
#include "data/object_events/object_event_graphics_info_pointers.h"
#include "data/field_effects/field_effect_object_template_pointers.h"
@@ -446,224 +447,224 @@ const u8 gInitialMovementTypeFacingDirections[] = {
#include "data/object_events/object_event_subsprites.h"
#include "data/object_events/object_event_graphics_info.h"
-const struct SpritePalette sObjectEventSpritePalettes[] = {
- {gObjectEventPalette0, OBJ_EVENT_PAL_TAG_0},
- {gObjectEventPalette1, OBJ_EVENT_PAL_TAG_1},
- {gObjectEventPalette2, OBJ_EVENT_PAL_TAG_2},
- {gObjectEventPalette3, OBJ_EVENT_PAL_TAG_3},
- {gObjectEventPalette4, OBJ_EVENT_PAL_TAG_4},
- {gObjectEventPalette5, OBJ_EVENT_PAL_TAG_5},
- {gObjectEventPalette6, OBJ_EVENT_PAL_TAG_6},
- {gObjectEventPalette7, OBJ_EVENT_PAL_TAG_7},
- {gObjectEventPalette8, OBJ_EVENT_PAL_TAG_8},
- {gObjectEventPalette9, OBJ_EVENT_PAL_TAG_9},
- {gObjectEventPalette10, OBJ_EVENT_PAL_TAG_10},
- {gObjectEventPalette11, OBJ_EVENT_PAL_TAG_11},
- {gObjectEventPalette12, OBJ_EVENT_PAL_TAG_12},
- {gObjectEventPalette13, OBJ_EVENT_PAL_TAG_13},
- {gObjectEventPalette14, OBJ_EVENT_PAL_TAG_14},
- {gObjectEventPalette15, OBJ_EVENT_PAL_TAG_15},
- {gObjectEventPalette16, OBJ_EVENT_PAL_TAG_16},
- {gObjectEventPalette17, OBJ_EVENT_PAL_TAG_17},
- {gObjectEventPalette18, OBJ_EVENT_PAL_TAG_18},
- {gObjectEventPalette19, OBJ_EVENT_PAL_TAG_19},
- {gObjectEventPalette20, OBJ_EVENT_PAL_TAG_20},
- {gObjectEventPalette21, OBJ_EVENT_PAL_TAG_21},
- {gObjectEventPalette22, OBJ_EVENT_PAL_TAG_22},
- {gObjectEventPalette23, OBJ_EVENT_PAL_TAG_23},
- {gObjectEventPalette24, OBJ_EVENT_PAL_TAG_24},
- {gObjectEventPalette25, OBJ_EVENT_PAL_TAG_25},
- {gObjectEventPalette26, OBJ_EVENT_PAL_TAG_26},
- {gObjectEventPalette27, OBJ_EVENT_PAL_TAG_27},
- {gObjectEventPalette28, OBJ_EVENT_PAL_TAG_28},
- {gObjectEventPalette29, OBJ_EVENT_PAL_TAG_29},
- {gObjectEventPalette30, OBJ_EVENT_PAL_TAG_30},
- {gObjectEventPalette31, OBJ_EVENT_PAL_TAG_31},
- {gObjectEventPalette32, OBJ_EVENT_PAL_TAG_32},
- {gObjectEventPalette33, OBJ_EVENT_PAL_TAG_33},
- {gObjectEventPalette34, OBJ_EVENT_PAL_TAG_34},
- {NULL, 0x0000},
+static const struct SpritePalette sObjectEventSpritePalettes[] = {
+ {gObjectEventPal_Npc1, OBJ_EVENT_PAL_TAG_NPC_1},
+ {gObjectEventPal_Npc2, OBJ_EVENT_PAL_TAG_NPC_2},
+ {gObjectEventPal_Npc3, OBJ_EVENT_PAL_TAG_NPC_3},
+ {gObjectEventPal_Npc4, OBJ_EVENT_PAL_TAG_NPC_4},
+ {gObjectEventPal_Npc1Reflection, OBJ_EVENT_PAL_TAG_NPC_1_REFLECTION},
+ {gObjectEventPal_Npc2Reflection, OBJ_EVENT_PAL_TAG_NPC_2_REFLECTION},
+ {gObjectEventPal_Npc3Reflection, OBJ_EVENT_PAL_TAG_NPC_3_REFLECTION},
+ {gObjectEventPal_Npc4Reflection, OBJ_EVENT_PAL_TAG_NPC_4_REFLECTION},
+ {gObjectEventPal_Brendan, OBJ_EVENT_PAL_TAG_BRENDAN},
+ {gObjectEventPal_BrendanReflection, OBJ_EVENT_PAL_TAG_BRENDAN_REFLECTION},
+ {gObjectEventPal_BridgeReflection, OBJ_EVENT_PAL_TAG_BRIDGE_REFLECTION},
+ {gObjectEventPal_PlayerUnderwater, OBJ_EVENT_PAL_TAG_PLAYER_UNDERWATER},
+ {gObjectEventPal_QuintyPlump, OBJ_EVENT_PAL_TAG_QUINTY_PLUMP},
+ {gObjectEventPal_QuintyPlumpReflection, OBJ_EVENT_PAL_TAG_QUINTY_PLUMP_REFLECTION},
+ {gObjectEventPal_Truck, OBJ_EVENT_PAL_TAG_TRUCK},
+ {gObjectEventPal_Vigoroth, OBJ_EVENT_PAL_TAG_VIGOROTH},
+ {gObjectEventPal_EnemyZigzagoon, OBJ_EVENT_PAL_TAG_ZIGZAGOON},
+ {gObjectEventPal_May, OBJ_EVENT_PAL_TAG_MAY},
+ {gObjectEventPal_MayReflection, OBJ_EVENT_PAL_TAG_MAY_REFLECTION},
+ {gObjectEventPal_MovingBox, OBJ_EVENT_PAL_TAG_MOVING_BOX},
+ {gObjectEventPal_CableCar, OBJ_EVENT_PAL_TAG_CABLE_CAR},
+ {gObjectEventPal_SSTidal, OBJ_EVENT_PAL_TAG_SSTIDAL},
+ {gObjectEventPal_Kyogre, OBJ_EVENT_PAL_TAG_KYOGRE},
+ {gObjectEventPal_KyogreReflection, OBJ_EVENT_PAL_TAG_KYOGRE_REFLECTION},
+ {gObjectEventPal_Groudon, OBJ_EVENT_PAL_TAG_GROUDON},
+ {gObjectEventPal_GroudonReflection, OBJ_EVENT_PAL_TAG_GROUDON_REFLECTION},
+ {gObjectEventPal_SubmarineShadow, OBJ_EVENT_PAL_TAG_SUBMARINE_SHADOW},
+ {gObjectEventPal_Poochyena, OBJ_EVENT_PAL_TAG_POOCHYENA},
+ {gObjectEventPal_RedLeaf, OBJ_EVENT_PAL_TAG_RED_LEAF},
+ {gObjectEventPal_Deoxys, OBJ_EVENT_PAL_TAG_DEOXYS},
+ {gObjectEventPal_BirthIslandStone, OBJ_EVENT_PAL_TAG_BIRTH_ISLAND_STONE},
+ {gObjectEventPal_HoOh, OBJ_EVENT_PAL_TAG_HO_OH},
+ {gObjectEventPal_Lugia, OBJ_EVENT_PAL_TAG_LUGIA},
+ {gObjectEventPal_RubySapphireBrendan, OBJ_EVENT_PAL_TAG_RS_BRENDAN},
+ {gObjectEventPal_RubySapphireMay, OBJ_EVENT_PAL_TAG_RS_MAY},
+ {NULL, 0x0000},
};
-const u16 gPlayerReflectionPaletteTags[] = {
- OBJ_EVENT_PAL_TAG_9,
- OBJ_EVENT_PAL_TAG_9,
- OBJ_EVENT_PAL_TAG_9,
- OBJ_EVENT_PAL_TAG_9,
+static const u16 sReflectionPaletteTags_Brendan[] = {
+ OBJ_EVENT_PAL_TAG_BRENDAN_REFLECTION,
+ OBJ_EVENT_PAL_TAG_BRENDAN_REFLECTION,
+ OBJ_EVENT_PAL_TAG_BRENDAN_REFLECTION,
+ OBJ_EVENT_PAL_TAG_BRENDAN_REFLECTION,
};
-const u16 Unknown_0850BCF0[] = {
- OBJ_EVENT_PAL_TAG_18,
- OBJ_EVENT_PAL_TAG_18,
- OBJ_EVENT_PAL_TAG_18,
- OBJ_EVENT_PAL_TAG_18,
+static const u16 sReflectionPaletteTags_May[] = {
+ OBJ_EVENT_PAL_TAG_MAY_REFLECTION,
+ OBJ_EVENT_PAL_TAG_MAY_REFLECTION,
+ OBJ_EVENT_PAL_TAG_MAY_REFLECTION,
+ OBJ_EVENT_PAL_TAG_MAY_REFLECTION,
};
-const u16 gPlayerUnderwaterReflectionPaletteTags[] = {
- OBJ_EVENT_PAL_TAG_11,
- OBJ_EVENT_PAL_TAG_11,
- OBJ_EVENT_PAL_TAG_11,
- OBJ_EVENT_PAL_TAG_11,
+static const u16 sReflectionPaletteTags_PlayerUnderwater[] = {
+ OBJ_EVENT_PAL_TAG_PLAYER_UNDERWATER,
+ OBJ_EVENT_PAL_TAG_PLAYER_UNDERWATER,
+ OBJ_EVENT_PAL_TAG_PLAYER_UNDERWATER,
+ OBJ_EVENT_PAL_TAG_PLAYER_UNDERWATER,
};
-const struct PairedPalettes gPlayerReflectionPaletteSets[] = {
- {OBJ_EVENT_PAL_TAG_8, gPlayerReflectionPaletteTags},
- {OBJ_EVENT_PAL_TAG_17, Unknown_0850BCF0},
- {OBJ_EVENT_PAL_TAG_11, gPlayerUnderwaterReflectionPaletteTags},
- {OBJ_EVENT_PAL_TAG_NONE, NULL},
+static const struct PairedPalettes sPlayerReflectionPaletteSets[] = {
+ {OBJ_EVENT_PAL_TAG_BRENDAN, sReflectionPaletteTags_Brendan},
+ {OBJ_EVENT_PAL_TAG_MAY, sReflectionPaletteTags_May},
+ {OBJ_EVENT_PAL_TAG_PLAYER_UNDERWATER, sReflectionPaletteTags_PlayerUnderwater},
+ {OBJ_EVENT_PAL_TAG_NONE, NULL},
};
-const u16 gQuintyPlumpReflectionPaletteTags[] = {
- OBJ_EVENT_PAL_TAG_13,
- OBJ_EVENT_PAL_TAG_13,
- OBJ_EVENT_PAL_TAG_13,
- OBJ_EVENT_PAL_TAG_13,
+static const u16 sReflectionPaletteTags_QuintyPlump[] = {
+ OBJ_EVENT_PAL_TAG_QUINTY_PLUMP_REFLECTION,
+ OBJ_EVENT_PAL_TAG_QUINTY_PLUMP_REFLECTION,
+ OBJ_EVENT_PAL_TAG_QUINTY_PLUMP_REFLECTION,
+ OBJ_EVENT_PAL_TAG_QUINTY_PLUMP_REFLECTION,
};
-const u16 gTruckReflectionPaletteTags[] = {
- OBJ_EVENT_PAL_TAG_14,
- OBJ_EVENT_PAL_TAG_14,
- OBJ_EVENT_PAL_TAG_14,
- OBJ_EVENT_PAL_TAG_14,
+static const u16 sReflectionPaletteTags_Truck[] = {
+ OBJ_EVENT_PAL_TAG_TRUCK,
+ OBJ_EVENT_PAL_TAG_TRUCK,
+ OBJ_EVENT_PAL_TAG_TRUCK,
+ OBJ_EVENT_PAL_TAG_TRUCK,
};
-const u16 gVigorothMoverReflectionPaletteTags[] = {
- OBJ_EVENT_PAL_TAG_15,
- OBJ_EVENT_PAL_TAG_15,
- OBJ_EVENT_PAL_TAG_15,
- OBJ_EVENT_PAL_TAG_15,
+static const u16 sReflectionPaletteTags_VigorothMover[] = {
+ OBJ_EVENT_PAL_TAG_VIGOROTH,
+ OBJ_EVENT_PAL_TAG_VIGOROTH,
+ OBJ_EVENT_PAL_TAG_VIGOROTH,
+ OBJ_EVENT_PAL_TAG_VIGOROTH,
};
-const u16 gMovingBoxReflectionPaletteTags[] = {
- OBJ_EVENT_PAL_TAG_19,
- OBJ_EVENT_PAL_TAG_19,
- OBJ_EVENT_PAL_TAG_19,
- OBJ_EVENT_PAL_TAG_19,
+static const u16 sReflectionPaletteTags_MovingBox[] = {
+ OBJ_EVENT_PAL_TAG_MOVING_BOX,
+ OBJ_EVENT_PAL_TAG_MOVING_BOX,
+ OBJ_EVENT_PAL_TAG_MOVING_BOX,
+ OBJ_EVENT_PAL_TAG_MOVING_BOX,
};
-const u16 gCableCarReflectionPaletteTags[] = {
- OBJ_EVENT_PAL_TAG_20,
- OBJ_EVENT_PAL_TAG_20,
- OBJ_EVENT_PAL_TAG_20,
- OBJ_EVENT_PAL_TAG_20,
+static const u16 sReflectionPaletteTags_CableCar[] = {
+ OBJ_EVENT_PAL_TAG_CABLE_CAR,
+ OBJ_EVENT_PAL_TAG_CABLE_CAR,
+ OBJ_EVENT_PAL_TAG_CABLE_CAR,
+ OBJ_EVENT_PAL_TAG_CABLE_CAR,
};
-const u16 gSSTidalReflectionPaletteTags[] = {
- OBJ_EVENT_PAL_TAG_21,
- OBJ_EVENT_PAL_TAG_21,
- OBJ_EVENT_PAL_TAG_21,
- OBJ_EVENT_PAL_TAG_21,
+static const u16 sReflectionPaletteTags_SSTidal[] = {
+ OBJ_EVENT_PAL_TAG_SSTIDAL,
+ OBJ_EVENT_PAL_TAG_SSTIDAL,
+ OBJ_EVENT_PAL_TAG_SSTIDAL,
+ OBJ_EVENT_PAL_TAG_SSTIDAL,
};
-const u16 gSubmarineShadowReflectionPaletteTags[] = {
- OBJ_EVENT_PAL_TAG_26,
- OBJ_EVENT_PAL_TAG_26,
- OBJ_EVENT_PAL_TAG_26,
- OBJ_EVENT_PAL_TAG_26,
+static const u16 sReflectionPaletteTags_SubmarineShadow[] = {
+ OBJ_EVENT_PAL_TAG_SUBMARINE_SHADOW,
+ OBJ_EVENT_PAL_TAG_SUBMARINE_SHADOW,
+ OBJ_EVENT_PAL_TAG_SUBMARINE_SHADOW,
+ OBJ_EVENT_PAL_TAG_SUBMARINE_SHADOW,
};
-const u16 Unknown_0850BD58[] = { // Kyogre2?
- OBJ_EVENT_PAL_TAG_23,
- OBJ_EVENT_PAL_TAG_23,
- OBJ_EVENT_PAL_TAG_23,
- OBJ_EVENT_PAL_TAG_23,
+static const u16 sReflectionPaletteTags_Kyogre[] = {
+ OBJ_EVENT_PAL_TAG_KYOGRE_REFLECTION,
+ OBJ_EVENT_PAL_TAG_KYOGRE_REFLECTION,
+ OBJ_EVENT_PAL_TAG_KYOGRE_REFLECTION,
+ OBJ_EVENT_PAL_TAG_KYOGRE_REFLECTION,
};
-const u16 Unknown_0850BD60[] = { // Groudon2?
- OBJ_EVENT_PAL_TAG_25,
- OBJ_EVENT_PAL_TAG_25,
- OBJ_EVENT_PAL_TAG_25,
- OBJ_EVENT_PAL_TAG_25,
+static const u16 sReflectionPaletteTags_Groudon[] = {
+ OBJ_EVENT_PAL_TAG_GROUDON_REFLECTION,
+ OBJ_EVENT_PAL_TAG_GROUDON_REFLECTION,
+ OBJ_EVENT_PAL_TAG_GROUDON_REFLECTION,
+ OBJ_EVENT_PAL_TAG_GROUDON_REFLECTION,
};
-const u16 Unknown_0850BD68[] = { // Invisible Keckleon?
- OBJ_EVENT_PAL_TAG_6,
- OBJ_EVENT_PAL_TAG_6,
- OBJ_EVENT_PAL_TAG_6,
- OBJ_EVENT_PAL_TAG_6,
+static const u16 sReflectionPaletteTags_Npc3[] = { // Only used by the Route 120 bridge Kecleon
+ OBJ_EVENT_PAL_TAG_NPC_3_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_3_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_3_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_3_REFLECTION,
};
-const u16 gRedLeafReflectionPaletteTags[] = {
- OBJ_EVENT_PAL_TAG_28,
- OBJ_EVENT_PAL_TAG_28,
- OBJ_EVENT_PAL_TAG_28,
- OBJ_EVENT_PAL_TAG_28,
+static const u16 sReflectionPaletteTags_RedLeaf[] = {
+ OBJ_EVENT_PAL_TAG_RED_LEAF,
+ OBJ_EVENT_PAL_TAG_RED_LEAF,
+ OBJ_EVENT_PAL_TAG_RED_LEAF,
+ OBJ_EVENT_PAL_TAG_RED_LEAF,
};
-const struct PairedPalettes gSpecialObjectReflectionPaletteSets[] = {
- {OBJ_EVENT_PAL_TAG_8, gPlayerReflectionPaletteTags},
- {OBJ_EVENT_PAL_TAG_17, Unknown_0850BCF0},
- {OBJ_EVENT_PAL_TAG_12, gQuintyPlumpReflectionPaletteTags},
- {OBJ_EVENT_PAL_TAG_14, gTruckReflectionPaletteTags},
- {OBJ_EVENT_PAL_TAG_15, gVigorothMoverReflectionPaletteTags},
- {OBJ_EVENT_PAL_TAG_19, gMovingBoxReflectionPaletteTags},
- {OBJ_EVENT_PAL_TAG_20, gCableCarReflectionPaletteTags},
- {OBJ_EVENT_PAL_TAG_21, gSSTidalReflectionPaletteTags},
- {OBJ_EVENT_PAL_TAG_22, Unknown_0850BD58},
- {OBJ_EVENT_PAL_TAG_24, Unknown_0850BD60},
- {OBJ_EVENT_PAL_TAG_2, Unknown_0850BD68},
- {OBJ_EVENT_PAL_TAG_26, gSubmarineShadowReflectionPaletteTags},
- {OBJ_EVENT_PAL_TAG_28, gRedLeafReflectionPaletteTags},
- {OBJ_EVENT_PAL_TAG_NONE, NULL},
+static const struct PairedPalettes sSpecialObjectReflectionPaletteSets[] = {
+ {OBJ_EVENT_PAL_TAG_BRENDAN, sReflectionPaletteTags_Brendan},
+ {OBJ_EVENT_PAL_TAG_MAY, sReflectionPaletteTags_May},
+ {OBJ_EVENT_PAL_TAG_QUINTY_PLUMP, sReflectionPaletteTags_QuintyPlump},
+ {OBJ_EVENT_PAL_TAG_TRUCK, sReflectionPaletteTags_Truck},
+ {OBJ_EVENT_PAL_TAG_VIGOROTH, sReflectionPaletteTags_VigorothMover},
+ {OBJ_EVENT_PAL_TAG_MOVING_BOX, sReflectionPaletteTags_MovingBox},
+ {OBJ_EVENT_PAL_TAG_CABLE_CAR, sReflectionPaletteTags_CableCar},
+ {OBJ_EVENT_PAL_TAG_SSTIDAL, sReflectionPaletteTags_SSTidal},
+ {OBJ_EVENT_PAL_TAG_KYOGRE, sReflectionPaletteTags_Kyogre},
+ {OBJ_EVENT_PAL_TAG_GROUDON, sReflectionPaletteTags_Groudon},
+ {OBJ_EVENT_PAL_TAG_NPC_3, sReflectionPaletteTags_Npc3},
+ {OBJ_EVENT_PAL_TAG_SUBMARINE_SHADOW, sReflectionPaletteTags_SubmarineShadow},
+ {OBJ_EVENT_PAL_TAG_RED_LEAF, sReflectionPaletteTags_RedLeaf},
+ {OBJ_EVENT_PAL_TAG_NONE, NULL},
};
-const u16 gObjectPaletteTags0[] = {
- OBJ_EVENT_PAL_TAG_8,
- OBJ_EVENT_PAL_TAG_9,
- OBJ_EVENT_PAL_TAG_0,
- OBJ_EVENT_PAL_TAG_1,
- OBJ_EVENT_PAL_TAG_2,
- OBJ_EVENT_PAL_TAG_3,
- OBJ_EVENT_PAL_TAG_4,
- OBJ_EVENT_PAL_TAG_5,
- OBJ_EVENT_PAL_TAG_6,
- OBJ_EVENT_PAL_TAG_7,
+static const u16 sObjectPaletteTags0[] = {
+ OBJ_EVENT_PAL_TAG_BRENDAN,
+ OBJ_EVENT_PAL_TAG_BRENDAN_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_1,
+ OBJ_EVENT_PAL_TAG_NPC_2,
+ OBJ_EVENT_PAL_TAG_NPC_3,
+ OBJ_EVENT_PAL_TAG_NPC_4,
+ OBJ_EVENT_PAL_TAG_NPC_1_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_2_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_3_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_4_REFLECTION,
};
-const u16 gObjectPaletteTags1[] = {
- OBJ_EVENT_PAL_TAG_8,
- OBJ_EVENT_PAL_TAG_9,
- OBJ_EVENT_PAL_TAG_0,
- OBJ_EVENT_PAL_TAG_1,
- OBJ_EVENT_PAL_TAG_2,
- OBJ_EVENT_PAL_TAG_3,
- OBJ_EVENT_PAL_TAG_4,
- OBJ_EVENT_PAL_TAG_5,
- OBJ_EVENT_PAL_TAG_6,
- OBJ_EVENT_PAL_TAG_7,
+static const u16 sObjectPaletteTags1[] = {
+ OBJ_EVENT_PAL_TAG_BRENDAN,
+ OBJ_EVENT_PAL_TAG_BRENDAN_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_1,
+ OBJ_EVENT_PAL_TAG_NPC_2,
+ OBJ_EVENT_PAL_TAG_NPC_3,
+ OBJ_EVENT_PAL_TAG_NPC_4,
+ OBJ_EVENT_PAL_TAG_NPC_1_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_2_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_3_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_4_REFLECTION,
};
-const u16 gObjectPaletteTags2[] = {
- OBJ_EVENT_PAL_TAG_8,
- OBJ_EVENT_PAL_TAG_9,
- OBJ_EVENT_PAL_TAG_0,
- OBJ_EVENT_PAL_TAG_1,
- OBJ_EVENT_PAL_TAG_2,
- OBJ_EVENT_PAL_TAG_3,
- OBJ_EVENT_PAL_TAG_4,
- OBJ_EVENT_PAL_TAG_5,
- OBJ_EVENT_PAL_TAG_6,
- OBJ_EVENT_PAL_TAG_7,
+static const u16 sObjectPaletteTags2[] = {
+ OBJ_EVENT_PAL_TAG_BRENDAN,
+ OBJ_EVENT_PAL_TAG_BRENDAN_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_1,
+ OBJ_EVENT_PAL_TAG_NPC_2,
+ OBJ_EVENT_PAL_TAG_NPC_3,
+ OBJ_EVENT_PAL_TAG_NPC_4,
+ OBJ_EVENT_PAL_TAG_NPC_1_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_2_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_3_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_4_REFLECTION,
};
-const u16 gObjectPaletteTags3[] = {
- OBJ_EVENT_PAL_TAG_8,
- OBJ_EVENT_PAL_TAG_9,
- OBJ_EVENT_PAL_TAG_0,
- OBJ_EVENT_PAL_TAG_1,
- OBJ_EVENT_PAL_TAG_2,
- OBJ_EVENT_PAL_TAG_3,
- OBJ_EVENT_PAL_TAG_4,
- OBJ_EVENT_PAL_TAG_5,
- OBJ_EVENT_PAL_TAG_6,
- OBJ_EVENT_PAL_TAG_7,
+static const u16 sObjectPaletteTags3[] = {
+ OBJ_EVENT_PAL_TAG_BRENDAN,
+ OBJ_EVENT_PAL_TAG_BRENDAN_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_1,
+ OBJ_EVENT_PAL_TAG_NPC_2,
+ OBJ_EVENT_PAL_TAG_NPC_3,
+ OBJ_EVENT_PAL_TAG_NPC_4,
+ OBJ_EVENT_PAL_TAG_NPC_1_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_2_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_3_REFLECTION,
+ OBJ_EVENT_PAL_TAG_NPC_4_REFLECTION,
};
-const u16 *const gObjectPaletteTagSets[] = {
- gObjectPaletteTags0,
- gObjectPaletteTags1,
- gObjectPaletteTags2,
- gObjectPaletteTags3,
+static const u16 *const sObjectPaletteTagSets[] = {
+ sObjectPaletteTags0,
+ sObjectPaletteTags1,
+ sObjectPaletteTags2,
+ sObjectPaletteTags3,
};
#include "data/object_events/berry_tree_graphics_tables.h"
@@ -1235,7 +1236,7 @@ static u8 InitObjectEventStateFromTemplate(struct ObjectEventTemplate *template,
objectEvent->rangeX = template->movementRangeX;
objectEvent->rangeY = template->movementRangeY;
objectEvent->trainerType = template->trainerType;
- objectEvent->mapNum = mapNum; //redundant, but needed to match
+ objectEvent->mapNum = mapNum;
objectEvent->trainerRange_berryTreeId = template->trainerRange_berryTreeId;
objectEvent->previousMovementDirection = gInitialMovementTypeFacingDirections[template->movementType];
SetObjectEventDirection(objectEvent, objectEvent->previousMovementDirection);
@@ -1364,16 +1365,16 @@ static u8 TrySetupObjectEventSprite(struct ObjectEventTemplate *objectEventTempl
paletteSlot = graphicsInfo->paletteSlot;
if (paletteSlot == 0)
{
- LoadPlayerObjectReflectionPalette(graphicsInfo->paletteTag1, 0);
+ LoadPlayerObjectReflectionPalette(graphicsInfo->paletteTag, 0);
}
else if (paletteSlot == 10)
{
- LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag1, 10);
+ LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag, 10);
}
else if (paletteSlot >= 16)
{
paletteSlot -= 16;
- sub_808EAB0(graphicsInfo->paletteTag1, paletteSlot);
+ sub_808EAB0(graphicsInfo->paletteTag, paletteSlot);
}
if (objectEvent->movementType == MOVEMENT_TYPE_INVISIBLE)
@@ -1476,7 +1477,7 @@ static void MakeObjectTemplateFromObjectEventGraphicsInfo(u16 graphicsId, void (
const struct ObjectEventGraphicsInfo *graphicsInfo = GetObjectEventGraphicsInfo(graphicsId);
spriteTemplate->tileTag = graphicsInfo->tileTag;
- spriteTemplate->paletteTag = graphicsInfo->paletteTag1;
+ spriteTemplate->paletteTag = graphicsInfo->paletteTag;
spriteTemplate->oam = graphicsInfo->oam;
spriteTemplate->anims = graphicsInfo->anims;
spriteTemplate->images = graphicsInfo->images;
@@ -1553,11 +1554,11 @@ u8 CreateObjectSprite(u8 graphicsId, u8 a1, s16 x, s16 y, u8 z, u8 direction)
sprite->data[1] = z;
if (graphicsInfo->paletteSlot == 10)
{
- LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot);
+ LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot);
}
else if (graphicsInfo->paletteSlot >= 16)
{
- sub_808EAB0(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot | 0xf0);
+ sub_808EAB0(graphicsInfo->paletteTag, graphicsInfo->paletteSlot | 0xf0);
}
if (subspriteTables != NULL)
{
@@ -1693,16 +1694,16 @@ static void sub_808E1B8(u8 objectEventId, s16 x, s16 y)
paletteSlot = graphicsInfo->paletteSlot;
if (paletteSlot == 0)
{
- LoadPlayerObjectReflectionPalette(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot);
+ LoadPlayerObjectReflectionPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot);
}
else if (paletteSlot == 10)
{
- LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot);
+ LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot);
}
else if (paletteSlot >= 16)
{
paletteSlot -= 16;
- sub_808EAB0(graphicsInfo->paletteTag1, paletteSlot);
+ sub_808EAB0(graphicsInfo->paletteTag, paletteSlot);
}
*(u16 *)&spriteTemplate.paletteTag = 0xFFFF;
spriteId = CreateSprite(&spriteTemplate, 0, 0, 0);
@@ -1769,16 +1770,16 @@ void ObjectEventSetGraphicsId(struct ObjectEvent *objectEvent, u8 graphicsId)
paletteSlot = graphicsInfo->paletteSlot;
if (paletteSlot == 0)
{
- PatchObjectPalette(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot);
+ PatchObjectPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot);
}
else if (paletteSlot == 10)
{
- LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot);
+ LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot);
}
else if (paletteSlot >= 16)
{
paletteSlot -= 16;
- sub_808EAB0(graphicsInfo->paletteTag1, paletteSlot);
+ sub_808EAB0(graphicsInfo->paletteTag, paletteSlot);
}
sprite->oam.shape = graphicsInfo->oam->shape;
sprite->oam.size = graphicsInfo->oam->size;
@@ -2030,11 +2031,11 @@ void LoadPlayerObjectReflectionPalette(u16 tag, u8 slot)
u8 i;
PatchObjectPalette(tag, slot);
- for (i = 0; gPlayerReflectionPaletteSets[i].tag != OBJ_EVENT_PAL_TAG_NONE; i++)
+ for (i = 0; sPlayerReflectionPaletteSets[i].tag != OBJ_EVENT_PAL_TAG_NONE; i++)
{
- if (gPlayerReflectionPaletteSets[i].tag == tag)
+ if (sPlayerReflectionPaletteSets[i].tag == tag)
{
- PatchObjectPalette(gPlayerReflectionPaletteSets[i].data[sCurrentReflectionType], gReflectionEffectPaletteMap[slot]);
+ PatchObjectPalette(sPlayerReflectionPaletteSets[i].data[sCurrentReflectionType], gReflectionEffectPaletteMap[slot]);
return;
}
}
@@ -2046,11 +2047,11 @@ void LoadSpecialObjectReflectionPalette(u16 tag, u8 slot)
sCurrentSpecialObjectPaletteTag = tag;
PatchObjectPalette(tag, slot);
- for (i = 0; gSpecialObjectReflectionPaletteSets[i].tag != OBJ_EVENT_PAL_TAG_NONE; i++)
+ for (i = 0; sSpecialObjectReflectionPaletteSets[i].tag != OBJ_EVENT_PAL_TAG_NONE; i++)
{
- if (gSpecialObjectReflectionPaletteSets[i].tag == tag)
+ if (sSpecialObjectReflectionPaletteSets[i].tag == tag)
{
- PatchObjectPalette(gSpecialObjectReflectionPaletteSets[i].data[sCurrentReflectionType], gReflectionEffectPaletteMap[slot]);
+ PatchObjectPalette(sSpecialObjectReflectionPaletteSets[i].data[sCurrentReflectionType], gReflectionEffectPaletteMap[slot]);
return;
}
}
@@ -2501,12 +2502,12 @@ void InitObjectEventPalettes(u8 palSlot)
sCurrentReflectionType = palSlot;
if (palSlot == 1)
{
- PatchObjectPaletteRange(gObjectPaletteTagSets[sCurrentReflectionType], 0, 6);
+ PatchObjectPaletteRange(sObjectPaletteTagSets[sCurrentReflectionType], 0, 6);
gReservedSpritePaletteCount = 8;
}
else
{
- PatchObjectPaletteRange(gObjectPaletteTagSets[sCurrentReflectionType], 0, 10);
+ PatchObjectPaletteRange(sObjectPaletteTagSets[sCurrentReflectionType], 0, 10);
}
}
@@ -2516,13 +2517,13 @@ u16 GetObjectPaletteTag(u8 palSlot)
if (palSlot < 10)
{
- return gObjectPaletteTagSets[sCurrentReflectionType][palSlot];
+ return sObjectPaletteTagSets[sCurrentReflectionType][palSlot];
}
- for (i = 0; gSpecialObjectReflectionPaletteSets[i].tag != OBJ_EVENT_PAL_TAG_NONE; i++)
+ for (i = 0; sSpecialObjectReflectionPaletteSets[i].tag != OBJ_EVENT_PAL_TAG_NONE; i++)
{
- if (gSpecialObjectReflectionPaletteSets[i].tag == sCurrentSpecialObjectPaletteTag)
+ if (sSpecialObjectReflectionPaletteSets[i].tag == sCurrentSpecialObjectPaletteTag)
{
- return gSpecialObjectReflectionPaletteSets[i].data[sCurrentReflectionType];
+ return sSpecialObjectReflectionPaletteSets[i].data[sCurrentReflectionType];
}
}
return OBJ_EVENT_PAL_TAG_NONE;
@@ -8213,13 +8214,15 @@ bool8 FreezeObjectEvent(struct ObjectEvent *objectEvent)
{
return TRUE;
}
-
- objectEvent->frozen = 1;
- objectEvent->spriteAnimPausedBackup = gSprites[objectEvent->spriteId].animPaused;
- objectEvent->spriteAffineAnimPausedBackup = gSprites[objectEvent->spriteId].affineAnimPaused;
- gSprites[objectEvent->spriteId].animPaused = 1;
- gSprites[objectEvent->spriteId].affineAnimPaused = 1;
- return FALSE;
+ else
+ {
+ objectEvent->frozen = 1;
+ objectEvent->spriteAnimPausedBackup = gSprites[objectEvent->spriteId].animPaused;
+ objectEvent->spriteAffineAnimPausedBackup = gSprites[objectEvent->spriteId].affineAnimPaused;
+ gSprites[objectEvent->spriteId].animPaused = 1;
+ gSprites[objectEvent->spriteId].affineAnimPaused = 1;
+ return FALSE;
+ }
}
void FreezeObjectEvents(void)
@@ -8392,8 +8395,8 @@ bool8 sub_80976EC(struct Sprite *sprite)
if (sprite->data[5] > 15)
return TRUE;
-
- return FALSE;
+ else
+ return FALSE;
}
static const s8 sFigure8XOffsets[FIGURE_8_LENGTH] = {
@@ -8473,15 +8476,15 @@ static bool8 AnimateSpriteInFigure8(struct Sprite *sprite)
return finished;
}
-static const s8 gUnknown_0850E802[16] = {
+static const s8 gUnknown_0850E802[] = {
-4, -6, -8, -10, -11, -12, -12, -12, -11, -10, -9, -8, -6, -4, 0, 0
};
-static const s8 gUnknown_0850E812[16] = {
+static const s8 gUnknown_0850E812[] = {
0, -2, -3, -4, -5, -6, -6, -6, -5, -5, -4, -3, -2, 0, 0, 0
};
-static const s8 gUnknown_0850E822[16] = {
+static const s8 gUnknown_0850E822[] = {
-2, -4, -6, -8, -9, -10, -10, -10, -9, -8, -6, -5, -3, -2, 0, 0
};
@@ -8561,9 +8564,12 @@ static void SetMovementDelay(struct Sprite *sprite, s16 timer)
static bool8 WaitForMovementDelay(struct Sprite *sprite)
{
- if (--sprite->data[3] == 0)
+ sprite->data[3]--;
+
+ if (sprite->data[3] == 0)
return TRUE;
- return FALSE;
+ else
+ return FALSE;
}
void SetAndStartSpriteAnim(struct Sprite *sprite, u8 animNum, u8 animCmdIndex)
@@ -8577,7 +8583,8 @@ bool8 SpriteAnimEnded(struct Sprite *sprite)
{
if (sprite->animEnded)
return TRUE;
- return FALSE;
+ else
+ return FALSE;
}
void UpdateObjectEventSpriteVisibility(struct Sprite *sprite, bool8 invisible)
@@ -8756,14 +8763,14 @@ static void UpdateObjectEventSpritePosition(struct Sprite *sprite)
{
switch(sprite->tAnimNum)
{
- case 0:
- break;
case UNION_ROOM_SPAWN_IN:
MoveUnionRoomObjectDown(sprite);
break;
case UNION_ROOM_SPAWN_OUT:
MoveUnionRoomObjectUp(sprite);
break;
+ case 0:
+ break;
default:
sprite->tAnimNum = 0;
break;
@@ -8832,7 +8839,7 @@ u8 (*const gMovementActionFuncs_FlyDown[])(struct ObjectEvent *, struct Sprite *
u8 MovementAction_StoreAndLockAnim_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- bool8 ableToStore = FALSE;
+ bool32 ableToStore = FALSE;
if (gLockedAnimObjectEvents == NULL)
{
gLockedAnimObjectEvents = AllocZeroed(sizeof(struct LockedAnimObjectEvents));
@@ -8842,8 +8849,9 @@ u8 MovementAction_StoreAndLockAnim_Step0(struct ObjectEvent *objectEvent, struct
}
else
{
- u8 i, firstFreeSlot;
- bool8 found;
+ u8 i;
+ u8 firstFreeSlot;
+ bool32 found;
for (firstFreeSlot = 16, found = FALSE, i = 0; i < 16; i++)
{
if (firstFreeSlot == 16 && gLockedAnimObjectEvents->objectEventIds[i] == 0)
@@ -8876,7 +8884,7 @@ u8 MovementAction_StoreAndLockAnim_Step0(struct ObjectEvent *objectEvent, struct
u8 MovementAction_FreeAndUnlockAnim_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- bool8 ableToStore;
+ bool32 ableToStore;
u8 index;
sprite->data[2] = 1;
@@ -8920,7 +8928,7 @@ void CreateLevitateMovementTask(struct ObjectEvent *objectEvent)
u8 taskId = CreateTask(ApplyLevitateMovement, 0xFF);
struct Task *task = &gTasks[taskId];
- StoreWordInTwoHalfwords((u16 *)&task->data[0], (u32)objectEvent);
+ StoreWordInTwoHalfwords(&task->data[0], (u32)objectEvent);
objectEvent->warpArrowSpriteId = taskId;
task->data[3] = 0xFFFF;
}
@@ -8931,7 +8939,7 @@ static void ApplyLevitateMovement(u8 taskId)
struct Sprite *sprite;
struct Task *task = &gTasks[taskId];
- LoadWordFromTwoHalfwords((u16 *)&task->data[0], (u32 *)&objectEvent); // load the map object pointer.
+ LoadWordFromTwoHalfwords(&task->data[0], (u32 *)&objectEvent); // load the map object pointer.
sprite = &gSprites[objectEvent->spriteId];
if(!(task->data[2] & 0x3))
@@ -8948,7 +8956,7 @@ void DestroyExtraMovementTask(u8 taskId)
struct ObjectEvent *objectEvent;
struct Task *task = &gTasks[taskId];
- LoadWordFromTwoHalfwords((u16 *)&task->data[0], (u32 *)&objectEvent); // unused objectEvent
+ LoadWordFromTwoHalfwords(&task->data[0], (u32 *)&objectEvent); // unused objectEvent
DestroyTask(taskId);
}
diff --git a/src/evolution_scene.c b/src/evolution_scene.c
index faa6195b0..d41bc5970 100644
--- a/src/evolution_scene.c
+++ b/src/evolution_scene.c
@@ -30,7 +30,6 @@
#include "trade.h"
#include "util.h"
#include "constants/battle_string_ids.h"
-#include "constants/species.h"
#include "constants/songs.h"
#include "constants/rgb.h"
diff --git a/src/faraway_island.c b/src/faraway_island.c
index 6bfa066c2..e3d8444c9 100755
--- a/src/faraway_island.c
+++ b/src/faraway_island.c
@@ -181,36 +181,40 @@ u32 GetMewMoveDirection(void)
{
if (ShouldMewMoveEast(mew, 1))
return GetRandomMewDirectionCandidate(2);
- if (ShouldMewMoveWest(mew, 1))
+ else if (ShouldMewMoveWest(mew, 1))
return GetRandomMewDirectionCandidate(2);
- return DIR_NORTH;
+ else
+ return DIR_NORTH;
}
if (ShouldMewMoveSouth(mew, 0))
{
if (ShouldMewMoveEast(mew, 1))
return GetRandomMewDirectionCandidate(2);
- if (ShouldMewMoveWest(mew, 1))
+ else if (ShouldMewMoveWest(mew, 1))
return GetRandomMewDirectionCandidate(2);
- return DIR_SOUTH;
+ else
+ return DIR_SOUTH;
}
if (ShouldMewMoveEast(mew, 0))
{
if (ShouldMewMoveNorth(mew, 1))
return GetRandomMewDirectionCandidate(2);
- if (ShouldMewMoveSouth(mew, 1))
+ else if (ShouldMewMoveSouth(mew, 1))
return GetRandomMewDirectionCandidate(2);
- return DIR_EAST;
+ else
+ return DIR_EAST;
}
if (ShouldMewMoveWest(mew, 0))
{
if (ShouldMewMoveNorth(mew, 1))
return GetRandomMewDirectionCandidate(2);
- if (ShouldMewMoveSouth(mew, 1))
+ else if (ShouldMewMoveSouth(mew, 1))
return GetRandomMewDirectionCandidate(2);
- return DIR_WEST;
+ else
+ return DIR_WEST;
}
// If this point is reached, Mew cannot move without getting closer to the player
@@ -311,7 +315,8 @@ static u8 GetValidMewMoveDirection(u8 ignoredDir)
if (count > 1)
return sMewDirectionCandidates[VarGet(VAR_FARAWAY_ISLAND_STEP_COUNTER) % count];
- return sMewDirectionCandidates[0];
+ else
+ return sMewDirectionCandidates[0];
}
void UpdateFarawayIslandStepCounter(void)
diff --git a/src/field_effect.c b/src/field_effect.c
index b64902c0e..41f1a899c 100644
--- a/src/field_effect.c
+++ b/src/field_effect.c
@@ -2597,7 +2597,7 @@ static void FieldMoveShowMonOutdoorsEffect_Init(struct Task *task)
{
task->data[11] = REG_WININ;
task->data[12] = REG_WINOUT;
- StoreWordInTwoHalfwords((u16 *)&task->data[13], (u32)gMain.vblankCallback);
+ StoreWordInTwoHalfwords(&task->data[13], (u32)gMain.vblankCallback);
task->tWinHoriz = WIN_RANGE(DISPLAY_WIDTH, DISPLAY_WIDTH + 1);
task->tWinVert = WIN_RANGE(DISPLAY_HEIGHT / 2, DISPLAY_HEIGHT / 2 + 1);
task->tWinIn = WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR;
diff --git a/src/field_effect_helpers.c b/src/field_effect_helpers.c
index 886e023d1..2322232b8 100755
--- a/src/field_effect_helpers.c
+++ b/src/field_effect_helpers.c
@@ -81,15 +81,15 @@ static void LoadObjectRegularReflectionPalette(struct ObjectEvent *objectEvent,
const struct ObjectEventGraphicsInfo *graphicsInfo;
graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId);
- if (graphicsInfo->paletteTag2 != OBJ_EVENT_PAL_TAG_NONE)
+ if (graphicsInfo->reflectionPaletteTag != OBJ_EVENT_PAL_TAG_NONE)
{
if (graphicsInfo->paletteSlot == 0)
{
- LoadPlayerObjectReflectionPalette(graphicsInfo->paletteTag1, paletteIndex);
+ LoadPlayerObjectReflectionPalette(graphicsInfo->paletteTag, paletteIndex);
}
else if (graphicsInfo->paletteSlot == 10)
{
- LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag1, paletteIndex);
+ LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag, paletteIndex);
}
else
{
@@ -106,9 +106,9 @@ static void LoadObjectHighBridgeReflectionPalette(struct ObjectEvent *objectEven
const struct ObjectEventGraphicsInfo *graphicsInfo;
graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId);
- if (graphicsInfo->paletteTag2 != OBJ_EVENT_PAL_TAG_NONE)
+ if (graphicsInfo->reflectionPaletteTag != OBJ_EVENT_PAL_TAG_NONE)
{
- PatchObjectPalette(graphicsInfo->paletteTag2, paletteNum);
+ PatchObjectPalette(graphicsInfo->reflectionPaletteTag, paletteNum);
UpdateSpritePaletteWithWeather(paletteNum);
}
}
diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c
index a47ee4a93..f57cc9979 100644
--- a/src/field_player_avatar.c
+++ b/src/field_player_avatar.c
@@ -29,7 +29,6 @@
#include "constants/maps.h"
#include "constants/moves.h"
#include "constants/songs.h"
-#include "constants/species.h"
#include "constants/trainer_types.h"
static EWRAM_DATA u8 gUnknown_0203734C = 0;
diff --git a/src/field_poison.c b/src/field_poison.c
index 9d3ca047c..132ce571e 100644
--- a/src/field_poison.c
+++ b/src/field_poison.c
@@ -16,7 +16,6 @@
#include "trainer_hill.h"
#include "constants/field_poison.h"
#include "constants/party_menu.h"
-#include "constants/species.h"
static bool32 IsMonValidSpecies(struct Pokemon *pokemon)
{
diff --git a/src/field_specials.c b/src/field_specials.c
index 57b750145..51030a387 100644
--- a/src/field_specials.c
+++ b/src/field_specials.c
@@ -16,6 +16,7 @@
#include "field_screen_effect.h"
#include "field_specials.h"
#include "field_weather.h"
+#include "graphics.h"
#include "international_string_util.h"
#include "item_icon.h"
#include "link.h"
@@ -60,7 +61,6 @@
#include "constants/script_menu.h"
#include "constants/slot_machine.h"
#include "constants/songs.h"
-#include "constants/species.h"
#include "constants/moves.h"
#include "constants/party_menu.h"
#include "constants/battle_frontier.h"
@@ -87,11 +87,6 @@ static EWRAM_DATA u32 sBattleTowerMultiBattleTypeFlags = 0;
struct ListMenuTemplate gScrollableMultichoice_ListMenuTemplate;
-extern const u16 gObjectEventPalette8[];
-extern const u16 gObjectEventPalette17[];
-extern const u16 gObjectEventPalette33[];
-extern const u16 gObjectEventPalette34[];
-
void TryLoseFansFromPlayTime(void);
void SetPlayerGotFirstFans(void);
u16 GetNumFansOfPlayerInTrainerFanClub(void);
@@ -622,18 +617,18 @@ static void LoadLinkPartnerObjectEventSpritePalette(u8 graphicsId, u8 localEvent
switch (graphicsId)
{
- case OBJ_EVENT_GFX_LINK_RS_BRENDAN:
- LoadPalette(gObjectEventPalette33, 0x100 + (adjustedPaletteNum << 4), 0x20);
- break;
- case OBJ_EVENT_GFX_LINK_RS_MAY:
- LoadPalette(gObjectEventPalette34, 0x100 + (adjustedPaletteNum << 4), 0x20);
- break;
- case OBJ_EVENT_GFX_RIVAL_BRENDAN_NORMAL:
- LoadPalette(gObjectEventPalette8, 0x100 + (adjustedPaletteNum << 4), 0x20);
- break;
- case OBJ_EVENT_GFX_RIVAL_MAY_NORMAL:
- LoadPalette(gObjectEventPalette17, 0x100 + (adjustedPaletteNum << 4), 0x20);
- break;
+ case OBJ_EVENT_GFX_LINK_RS_BRENDAN:
+ LoadPalette(gObjectEventPal_RubySapphireBrendan, 0x100 + (adjustedPaletteNum << 4), 0x20);
+ break;
+ case OBJ_EVENT_GFX_LINK_RS_MAY:
+ LoadPalette(gObjectEventPal_RubySapphireMay, 0x100 + (adjustedPaletteNum << 4), 0x20);
+ break;
+ case OBJ_EVENT_GFX_RIVAL_BRENDAN_NORMAL:
+ LoadPalette(gObjectEventPal_Brendan, 0x100 + (adjustedPaletteNum << 4), 0x20);
+ break;
+ case OBJ_EVENT_GFX_RIVAL_MAY_NORMAL:
+ LoadPalette(gObjectEventPal_May, 0x100 + (adjustedPaletteNum << 4), 0x20);
+ break;
}
}
}
diff --git a/src/fldeff_cut.c b/src/fldeff_cut.c
index db9eb4268..0458f7621 100644
--- a/src/fldeff_cut.c
+++ b/src/fldeff_cut.c
@@ -227,7 +227,8 @@ bool8 SetUpFieldMove_Cut(void)
y = gPlayerFacingPosition.y + sHyperCutStruct[i].y;
tileCuttable = TRUE;
- for (j = 0; j < 2; ++j) {
+ for (j = 0; j < 2; ++j)
+ {
if (sHyperCutStruct[i].unk2[j] == 0) break; // one line required to match -g
if (cutTiles[(u8)(sHyperCutStruct[i].unk2[j] - 1)] == FALSE)
{
@@ -250,8 +251,11 @@ bool8 SetUpFieldMove_Cut(void)
sHyperCutTiles[tileArrayId] = TRUE;
ret = TRUE;
}
- else if (MetatileBehavior_IsCuttableGrass(tileBehavior) == TRUE)
- sHyperCutTiles[tileArrayId] = TRUE;
+ else
+ {
+ if (MetatileBehavior_IsCuttableGrass(tileBehavior) == TRUE)
+ sHyperCutTiles[tileArrayId] = TRUE;
+ }
}
}
}
diff --git a/src/frontier_pass.c b/src/frontier_pass.c
index ac81c51e0..1b8030149 100644
--- a/src/frontier_pass.c
+++ b/src/frontier_pass.c
@@ -1195,7 +1195,7 @@ static void sub_80C6104(u8 cursorArea, u8 previousCursorArea)
return;
break;
}
-
+
switch (cursorArea)
{
case CURSOR_AREA_MAP:
@@ -1209,7 +1209,7 @@ static void sub_80C6104(u8 cursorArea, u8 previousCursorArea)
CopyToBgTilemapBufferRect_ChangePalette(1, sPassGfx->unk28 + 72, 2, 10, 12, 3, 17);
else
return;
- break; // needed
+ break; //needed to match
case CURSOR_AREA_CANCEL:
CopyToBgTilemapBufferRect_ChangePalette(1, gUnknown_08DE3374, 21, 0, 9, 2, 17);
break;
diff --git a/src/frontier_util.c b/src/frontier_util.c
index a36e2ec9f..83c9341d5 100644
--- a/src/frontier_util.c
+++ b/src/frontier_util.c
@@ -31,7 +31,6 @@
#include "constants/battle_frontier.h"
#include "constants/frontier_util.h"
#include "constants/trainers.h"
-#include "constants/species.h"
#include "constants/game_stat.h"
#include "constants/moves.h"
#include "constants/items.h"
@@ -2508,11 +2507,12 @@ void CreateFrontierBrainPokemon(void)
{
if (!(selectedMonBits & 1))
continue;
+
do
{
do
{
- j = Random32(); //Should be one while loop, but that doesn't match
+ j = Random32(); //should just be one while loop, but that doesn't match
} while (IsShinyOtIdPersonality(FRONTIER_BRAIN_OTID, j));
} while (sFrontierBrainsMons[facility][symbol][i].nature != GetNatureFromPersonality(j));
CreateMon(&gEnemyParty[monPartyId],
diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c
index a13543d6a..7b63950d1 100644
--- a/src/hall_of_fame.c
+++ b/src/hall_of_fame.c
@@ -18,7 +18,6 @@
#include "window.h"
#include "credits.h"
#include "bg.h"
-#include "constants/species.h"
#include "constants/game_stat.h"
#include "util.h"
#include "string_util.h"
diff --git a/src/intro.c b/src/intro.c
index eca8b84b1..7dab2ad46 100644
--- a/src/intro.c
+++ b/src/intro.c
@@ -21,7 +21,6 @@
#include "intro.h"
#include "graphics.h"
#include "sound.h"
-#include "constants/species.h"
#include "util.h"
#include "title_screen.h"
#include "constants/rgb.h"
diff --git a/src/item.c b/src/item.c
index 290e7177c..0b6366048 100644
--- a/src/item.c
+++ b/src/item.c
@@ -183,13 +183,15 @@ bool8 HasAtLeastOneBerry(void)
bool8 CheckBagHasSpace(u16 itemId, u16 count)
{
- u8 i, pocket;
- u16 slotCapacity, ownedCount;
+ u8 i;
+ u8 pocket;
+ u16 slotCapacity;
+ u16 ownedCount;
if (ItemId_GetPocket(itemId) == POCKET_NONE)
return FALSE;
- if (InBattlePyramid() || (FlagGet(FLAG_STORING_ITEMS_IN_PYRAMID_BAG) == TRUE))
+ if (InBattlePyramid() || FlagGet(FLAG_STORING_ITEMS_IN_PYRAMID_BAG) == TRUE)
{
return CheckPyramidBagHasSpace(itemId, count);
}
@@ -212,12 +214,12 @@ bool8 CheckBagHasSpace(u16 itemId, u16 count)
return FALSE;
count -= (slotCapacity - ownedCount);
if (count == 0)
- break; //Should just be "return TRUE", since setting count to 0 means all the remaining checks until return will be false anyway, but that doesn't match
+ break; //should be return TRUE, but that doesn't match
}
}
// Check space in empty item slots
- if (count > 0) //if (count !=0) also works here; both match
+ if (count > 0)
{
for (i = 0; i < gBagPockets[pocket].capacity; i++)
{
@@ -231,12 +233,12 @@ bool8 CheckBagHasSpace(u16 itemId, u16 count)
}
else
{
- count = 0; //Should just be "return TRUE", since setting count to 0 means all the remaining checks until return will be false anyway, but that doesn't match
+ count = 0; //should be return TRUE, but that doesn't match
break;
}
}
}
- if (count > 0) //if (count !=0) also works here; both match
+ if (count > 0)
return FALSE; // No more item slots. The bag is full
}
diff --git a/src/item_menu.c b/src/item_menu.c
index d40c3a12c..80035b945 100755
--- a/src/item_menu.c
+++ b/src/item_menu.c
@@ -628,6 +628,7 @@ void CB2_Bag(void)
bool8 SetupBagMenu(void)
{
+ u32 index;
u8 taskId;
switch (gMain.state)
@@ -919,14 +920,14 @@ void BagMenu_ItemPrintCallback(u8 windowId, s32 itemIndex, u8 y)
if (gBagPositionStruct.pocket == BERRIES_POCKET)
{
- ConvertIntToDecimalStringN(gStringVar1, itemQuantity, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ ConvertIntToDecimalStringN(gStringVar1, itemQuantity, STR_CONV_MODE_RIGHT_ALIGN, BERRY_CAPACITY_DIGITS);
StringExpandPlaceholders(gStringVar4, gText_xVar1);
offset = GetStringRightAlignXOffset(7, gStringVar4, 119);
BagMenu_Print(windowId, 7, gStringVar4, offset, y, 0, 0, -1, 0);
}
else if (gBagPositionStruct.pocket != KEYITEMS_POCKET && ItemId_GetImportance(itemId) == FALSE)
{
- ConvertIntToDecimalStringN(gStringVar1, itemQuantity, STR_CONV_MODE_RIGHT_ALIGN, 2);
+ ConvertIntToDecimalStringN(gStringVar1, itemQuantity, STR_CONV_MODE_RIGHT_ALIGN, BAG_ITEM_CAPACITY_DIGITS);
StringExpandPlaceholders(gStringVar4, gText_xVar1);
offset = GetStringRightAlignXOffset(7, gStringVar4, 119);
BagMenu_Print(windowId, 7, gStringVar4, offset, y, 0, 0, -1, 0);
@@ -1133,7 +1134,7 @@ void sub_81ABC3C(u8 a)
void PrintItemDepositAmount(u8 windowId, s16 numDeposited)
{
- u8 numDigits = (gBagPositionStruct.pocket == BERRIES_POCKET) ? 3 : 2;
+ u8 numDigits = (gBagPositionStruct.pocket == BERRIES_POCKET) ? BERRY_CAPACITY_DIGITS : BAG_ITEM_CAPACITY_DIGITS;
ConvertIntToDecimalStringN(gStringVar1, numDeposited, STR_CONV_MODE_LEADING_ZEROS, numDigits);
StringExpandPlaceholders(gStringVar4, gText_xVar1);
AddTextPrinterParameterized(windowId, 1, gStringVar4, GetStringCenterAlignXOffset(1, gStringVar4, 0x28), 2, 0, 0);
@@ -1141,7 +1142,7 @@ void PrintItemDepositAmount(u8 windowId, s16 numDeposited)
void PrintItemSoldAmount(int windowId, int numSold, int moneyEarned)
{
- u8 numDigits = (gBagPositionStruct.pocket == BERRIES_POCKET) ? 3 : 2;
+ u8 numDigits = (gBagPositionStruct.pocket == BERRIES_POCKET) ? BERRY_CAPACITY_DIGITS : BAG_ITEM_CAPACITY_DIGITS;
ConvertIntToDecimalStringN(gStringVar1, numSold, STR_CONV_MODE_LEADING_ZEROS, numDigits);
StringExpandPlaceholders(gStringVar4, gText_xVar1);
AddTextPrinterParameterized(windowId, 1, gStringVar4, 0, 1, -1, 0);
@@ -1228,12 +1229,12 @@ static u8 GetSwitchBagPocketDirection(void)
if (gBagMenu->pocketSwitchDisabled)
return SWITCH_POCKET_NONE;
LRKeys = GetLRKeysPressed();
- if (JOY_NEW(DPAD_LEFT) || LRKeys == MENU_L_PRESSED)
+ if ((JOY_NEW(DPAD_LEFT)) || LRKeys == MENU_L_PRESSED)
{
PlaySE(SE_SELECT);
return SWITCH_POCKET_LEFT;
}
- if (JOY_NEW(DPAD_RIGHT) || LRKeys == MENU_R_PRESSED)
+ if ((JOY_NEW(DPAD_RIGHT)) || LRKeys == MENU_R_PRESSED)
{
PlaySE(SE_SELECT);
return SWITCH_POCKET_RIGHT;
@@ -1668,7 +1669,7 @@ void Task_HandleOutOfBattleItemMenuInput(u8 taskId)
ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_LEFT, MENU_CURSOR_DELTA_NONE);
}
}
- else if (JOY_NEW(DPAD_RIGHT) || GetLRKeysPressed() == MENU_R_PRESSED)
+ else if ((JOY_NEW(DPAD_RIGHT)) || GetLRKeysPressed() == MENU_R_PRESSED)
{
if (!(cursorPos & 1) && sub_81ACDFC(cursorPos + 1))
{
@@ -1761,7 +1762,7 @@ void BagMenu_TossItems(u8 taskId)
s16* data = gTasks[taskId].data;
CopyItemName(gSpecialVar_ItemId, gStringVar1);
- ConvertIntToDecimalStringN(gStringVar2, tItemCount, STR_CONV_MODE_LEFT_ALIGN, 3);
+ ConvertIntToDecimalStringN(gStringVar2, tItemCount, STR_CONV_MODE_LEFT_ALIGN, MAX_ITEM_DIGITS);
StringExpandPlaceholders(gStringVar4, gText_ConfirmTossItems);
FillWindowPixelBuffer(1, PIXEL_FILL(0));
BagMenu_Print(1, 1, gStringVar4, 3, 1, 0, 0, 0, 0);
@@ -1804,7 +1805,7 @@ void BagMenu_ConfirmToss(u8 taskId)
s16* data = gTasks[taskId].data;
CopyItemName(gSpecialVar_ItemId, gStringVar1);
- ConvertIntToDecimalStringN(gStringVar2, tItemCount, STR_CONV_MODE_LEFT_ALIGN, 3);
+ ConvertIntToDecimalStringN(gStringVar2, tItemCount, STR_CONV_MODE_LEFT_ALIGN, MAX_ITEM_DIGITS);
StringExpandPlaceholders(gStringVar4, gText_ThrewAwayVar2Var1s);
FillWindowPixelBuffer(1, PIXEL_FILL(0));
BagMenu_Print(1, 1, gStringVar4, 3, 1, 0, 0, 0, 0);
@@ -2172,7 +2173,7 @@ static void BagMenu_TryDepositItem(u8 taskId)
else if (AddPCItem(gSpecialVar_ItemId, tItemCount) == TRUE)
{
CopyItemName(gSpecialVar_ItemId, gStringVar1);
- ConvertIntToDecimalStringN(gStringVar2, tItemCount, STR_CONV_MODE_LEFT_ALIGN, 3);
+ ConvertIntToDecimalStringN(gStringVar2, tItemCount, STR_CONV_MODE_LEFT_ALIGN, MAX_ITEM_DIGITS);
StringExpandPlaceholders(gStringVar4, gText_DepositedVar2Var1s);
BagMenu_Print(1, 1, gStringVar4, 3, 1, 0, 0, 0, 0);
gTasks[taskId].func = Task_ActuallyToss;
@@ -2456,10 +2457,10 @@ static void RemoveMoneyWindow(void)
void BagMenu_PrepareTMHMMoveWindow(void)
{
FillWindowPixelBuffer(3, PIXEL_FILL(0));
- blit_move_info_icon(3, 19, 0, 0);
- blit_move_info_icon(3, 20, 0, 12);
- blit_move_info_icon(3, 21, 0, 24);
- blit_move_info_icon(3, 22, 0, 36);
+ BlitMenuInfoIcon(3, MENU_INFO_ICON_TYPE, 0, 0);
+ BlitMenuInfoIcon(3, MENU_INFO_ICON_POWER, 0, 12);
+ BlitMenuInfoIcon(3, MENU_INFO_ICON_ACCURACY, 0, 24);
+ BlitMenuInfoIcon(3, MENU_INFO_ICON_PP, 0, 36);
CopyWindowToVram(3, 2);
}
@@ -2479,7 +2480,7 @@ void PrintTMHMMoveData(u16 itemId)
else
{
moveId = ItemIdToBattleMoveId(itemId);
- blit_move_info_icon(4, gBattleMoves[moveId].type + 1, 0, 0);
+ BlitMenuInfoIcon(4, gBattleMoves[moveId].type + 1, 0, 0);
if (gBattleMoves[moveId].power <= 1)
{
text = gText_ThreeDashes;
diff --git a/src/item_use.c b/src/item_use.c
index f9d1ff824..9ab755a5e 100755
--- a/src/item_use.c
+++ b/src/item_use.c
@@ -721,7 +721,7 @@ static void ItemUseOnFieldCB_WailmerPailBerry(u8 taskId)
static bool8 TryToWaterSudowoodo(void)
{
- s16 x, y;
+ u16 x, y;
u8 z;
u8 objId;
GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
diff --git a/src/link_rfu_2.c b/src/link_rfu_2.c
index 41b28ec5f..5e0ef0aa4 100644
--- a/src/link_rfu_2.c
+++ b/src/link_rfu_2.c
@@ -15,7 +15,6 @@
#include "string_util.h"
#include "task.h"
#include "text.h"
-#include "constants/species.h"
#include "save.h"
#include "mystery_gift.h"
@@ -876,7 +875,8 @@ static void sub_800F498(u16 *a0, u8 *a1)
static bool32 RfuProcessEnqueuedRecvBlock(void)
{
- u8 i, j;
+ u8 i;
+ u8 j;
u8 sp00[MAX_RFU_PLAYERS * (2 * (CMD_LENGTH - 1))];
u8 sp48[2 * (CMD_LENGTH - 1)];
u8 status;
@@ -933,14 +933,13 @@ static void HandleSendFailure(u8 unused, u32 flags)
for (j = 0; j < 7; j++)
{
temp = j << 1;
- sResendBlock16[j + 1] = (r10[i * 12 + temp + 1] << 8) | r10[i * 12 + temp];
+ sResendBlock16[j + 1] = (r10[12 * i + temp + 1] << 8) | r10[12 * i + temp + 0];
}
-
for (j = 0; j < 7; j++)
{
temp = j << 1;
sResendBlock8[temp + 1] = sResendBlock16[j] >> 8;
- sResendBlock8[temp + 0] = sResendBlock16[j] & 0xff;
+ sResendBlock8[temp + 0] = sResendBlock16[j];
}
RfuSendQueue_Enqueue(&Rfu.sendQueue, sResendBlock8);
Rfu.sendBlock.failedFlags |= (1 << i);
@@ -1024,7 +1023,8 @@ void Rfu_SetBerryBlenderLinkCallback(void)
static void RfuHandleReceiveCommand(u8 unused)
{
- u16 i, j;
+ u16 i;
+ u16 j;
for (i = 0; i < MAX_RFU_PLAYERS; i++)
{
@@ -1038,7 +1038,7 @@ static void RfuHandleReceiveCommand(u8 unused)
if (gRfuLinkStatus->parentChild == MODE_CHILD)
{
Rfu.playerCount = gRecvCmds[i][1];
- Rfu.multiplayerId = sub_800F74C((u8 *)(&gRecvCmds[i][2]));
+ Rfu.multiplayerId = sub_800F74C((u8 *)(gRecvCmds[i] + 2));
}
break;
case RFUCMD_0x8800:
@@ -1237,9 +1237,10 @@ void Rfu_SendPacket(void *data)
bool32 Rfu_InitBlockSend(const u8 *src, size_t size)
{
bool8 r4;
- if (Rfu.callback != NULL || gSendCmd[0] != 0)
+ if (Rfu.callback != NULL)
+ return FALSE;
+ if (gSendCmd[0] != 0)
return FALSE;
-
if (Rfu.sendBlock.sending)
{
sRfuDebug.unk_83++;
@@ -1417,12 +1418,16 @@ void Rfu_SetCloseLinkCallback(void)
static void SendReadyExitStandbyUntilAllReady(void)
{
- u8 i, playerCount;
+ u8 playerCount;
+ u8 i;
- if (GetMultiplayerId() != 0 && Rfu.recvQueue.count == 0 && Rfu.resendExitStandbyTimer > 60)
+ if (GetMultiplayerId() != 0)
{
- RfuPrepareSendBuffer(RFUCMD_READY_EXIT_STANDBY);
- Rfu.resendExitStandbyTimer = 0;
+ if (Rfu.recvQueue.count == 0 && Rfu.resendExitStandbyTimer > 60)
+ {
+ RfuPrepareSendBuffer(RFUCMD_READY_EXIT_STANDBY);
+ Rfu.resendExitStandbyTimer = 0;
+ }
}
playerCount = GetLinkPlayerCount();
for (i = 0; i < playerCount; i++)
@@ -1452,7 +1457,8 @@ static void LinkLeaderReadyToExitStandby(void)
// RFU equivalent of LinkCB_Standby and LinkCB_StandbyForAll
static void Rfu_LinkStandby(void)
{
- u8 i, playerCount;
+ u8 i;
+ u8 playerCount;
if (GetMultiplayerId() != 0)
{
@@ -1548,28 +1554,28 @@ static bool8 CheckForLeavingGroupMembers(void)
bool8 memberLeft = FALSE;
for (i = 0; i < RFU_CHILD_MAX; i++)
{
- if (Rfu.partnerSendStatuses[i] == RFU_STATUS_JOIN_GROUP_OK
- || Rfu.partnerSendStatuses[i] == RFU_STATUS_JOIN_GROUP_NO)
+ if (Rfu.partnerSendStatuses[i] < RFU_STATUS_JOIN_GROUP_OK
+ || Rfu.partnerSendStatuses[i] > RFU_STATUS_JOIN_GROUP_NO)
{
- continue;
- }
-
- if (gRfuSlotStatusNI[i]->recv.state == SLOT_STATE_RECV_SUCCESS
- || gRfuSlotStatusNI[i]->recv.state == SLOT_STATE_RECV_SUCCESS_AND_SENDSIDE_UNKNOWN)
- {
- if (Rfu.partnerRecvStatuses[i] == RFU_STATUS_LEAVE_GROUP_NOTICE)
+ if (gRfuSlotStatusNI[i]->recv.state == SLOT_STATE_RECV_SUCCESS
+ || gRfuSlotStatusNI[i]->recv.state == SLOT_STATE_RECV_SUCCESS_AND_SENDSIDE_UNKNOWN)
{
- Rfu.partnerSendStatuses[i] = RFU_STATUS_LEAVE_GROUP;
- Rfu.partnerRecvStatuses[i] = RFU_STATUS_10;
+ if (Rfu.partnerRecvStatuses[i] == RFU_STATUS_LEAVE_GROUP_NOTICE)
+ {
+ Rfu.partnerSendStatuses[i] = RFU_STATUS_LEAVE_GROUP;
+ Rfu.partnerRecvStatuses[i] = RFU_STATUS_10;
+ rfu_clearSlot(TYPE_NI_RECV, i);
+ rfu_NI_setSendData(1 << i, 8, &Rfu.partnerSendStatuses[i], 1);
+ memberLeft = TRUE;
+ }
+
+ }
+ else if (gRfuSlotStatusNI[Rfu.childSlot]->recv.state == SLOT_STATE_RECV_FAILED)
rfu_clearSlot(TYPE_NI_RECV, i);
- rfu_NI_setSendData(1 << i, 8, &Rfu.partnerSendStatuses[i], 1);
- memberLeft = TRUE;
+ {
+
}
}
- else if (gRfuSlotStatusNI[Rfu.childSlot]->recv.state == SLOT_STATE_RECV_FAILED)
- {
- rfu_clearSlot(TYPE_NI_RECV, i);
- }
}
return memberLeft;
}
@@ -2044,7 +2050,8 @@ void sub_80110B8(u32 a0)
if ((r8 >> i) & 1)
{
child_sprite_genders |= ((0x80 | ((gLinkPlayers[Rfu.linkPlayerIdx[i]].gender & 1) << 3) | (gLinkPlayers[Rfu.linkPlayerIdx[i]].trainerId & 7)) << (numConnectedChildren << 3));
- if (++numConnectedChildren == a0 - 1)
+ numConnectedChildren++;
+ if (numConnectedChildren == a0 - 1)
break;
}
}
@@ -2089,7 +2096,8 @@ static void sub_80111FC(void)
static void sub_801120C(u8 msg, u8 paramCount)
{
- u8 i, disconnectFlag = 0;
+ u8 i;
+ u8 disconnectFlag = 0;
switch (msg)
{
case LMAN_MSG_INITIALIZE_COMPLETED:
diff --git a/src/link_rfu_3.c b/src/link_rfu_3.c
index 821b2d118..c6344f503 100644
--- a/src/link_rfu_3.c
+++ b/src/link_rfu_3.c
@@ -309,7 +309,8 @@ static const struct SpriteTemplate sWirelessStatusIndicatorSpriteTemplate = {
void RfuRecvQueue_Reset(struct RfuRecvQueue *queue)
{
- s32 i, j;
+ s32 i;
+ s32 j;
for (i = 0; i < RECV_QUEUE_NUM_SLOTS; i++)
{
@@ -326,7 +327,8 @@ void RfuRecvQueue_Reset(struct RfuRecvQueue *queue)
void RfuSendQueue_Reset(struct RfuSendQueue *queue)
{
- s32 i, j;
+ s32 i;
+ s32 j;
for (i = 0; i < SEND_QUEUE_NUM_SLOTS; i++)
{
@@ -343,7 +345,8 @@ void RfuSendQueue_Reset(struct RfuSendQueue *queue)
static void RfuUnusedQueue_Reset(struct RfuUnusedQueue *queue)
{
- s32 i, j;
+ s32 i;
+ s32 j;
for (i = 0; i < UNUSED_QUEUE_NUM_SLOTS; i++)
{
@@ -623,32 +626,30 @@ static void ASCIIToPkmnStr(u8 *pkmnStr, const u8 *asciiStr)
static u8 GetConnectedChildStrength(u8 maxFlags)
{
u8 flagCount = 0;
- u8 flags = gRfuLinkStatus->connSlotFlag;
+ u32 flags = gRfuLinkStatus->connSlotFlag;
u8 i;
if (gRfuLinkStatus->parentChild == MODE_PARENT)
{
- for (i = 0; i < RFU_CHILD_MAX; i++)
+ for (i = 0; i < 4; flags >>= 1, i++)
{
if (flags & 1)
{
if (maxFlags == flagCount + 1)
{
return gRfuLinkStatus->strength[i];
- break; // This break is needed to match
+ break;
}
flagCount++;
}
- flags >>= 1;
}
}
else
{
- for (i = 0; i < 4; i++)
+ for (i = 0; i < 4; flags >>= 1, i++)
{
if (flags & 1)
return gRfuLinkStatus->strength[i];
- flags >>= 1;
}
}
return 0;
@@ -922,7 +923,8 @@ void RecordMixTrainerNames(void)
{
if (gWirelessCommType != 0)
{
- s32 i, j;
+ s32 i;
+ s32 j;
s32 nextSpace;
s32 connectedTrainerRecordIndices[5];
struct TrainerNameRecord *newRecords = calloc(ARRAY_COUNT(gSaveBlock1Ptr->trainerNameRecords), sizeof(struct TrainerNameRecord));
diff --git a/src/list_menu.c b/src/list_menu.c
index 7784dd338..3e5642e4c 100644
--- a/src/list_menu.c
+++ b/src/list_menu.c
@@ -312,7 +312,7 @@ static void ListMenuDummyTask(u8 taskId)
}
-u32 DoMysteryGiftListMenu(const struct WindowTemplate *windowTemplate, const struct ListMenuTemplate *listMenuTemplate, u8 arg2, u16 tileNum, u16 palNum)
+s32 DoMysteryGiftListMenu(const struct WindowTemplate *windowTemplate, const struct ListMenuTemplate *listMenuTemplate, u8 arg2, u16 tileNum, u16 palNum)
{
switch (sMysteryGiftLinkMenu.state)
{
@@ -439,12 +439,14 @@ s32 ListMenu_ProcessInput(u8 listTaskId)
rightButton = FALSE;
break;
case LIST_MULTIPLE_SCROLL_DPAD:
- leftButton = JOY_REPEAT(DPAD_LEFT);
- rightButton = JOY_REPEAT(DPAD_RIGHT);
+ // note: JOY_REPEAT won't match here
+ leftButton = gMain.newAndRepeatedKeys & DPAD_LEFT;
+ rightButton = gMain.newAndRepeatedKeys & DPAD_RIGHT;
break;
case LIST_MULTIPLE_SCROLL_L_R:
- leftButton = JOY_REPEAT(L_BUTTON);
- rightButton = JOY_REPEAT(R_BUTTON);
+ // same as above
+ leftButton = gMain.newAndRepeatedKeys & L_BUTTON;
+ rightButton = gMain.newAndRepeatedKeys & R_BUTTON;
break;
}
@@ -1257,17 +1259,17 @@ void ListMenuSetUpRedOutlineCursorSpriteOamTable(u16 rowWidth, u16 rowHeight, st
s32 i, j, id = 0;
subsprites[id] = sSubsprite_RedOutline1;
- subsprites[id].x = -120;
- subsprites[id].y = -120;
+ subsprites[id].x = 136;
+ subsprites[id].y = 136;
id++;
subsprites[id] = sSubsprite_RedOutline2;
subsprites[id].x = rowWidth + 128;
- subsprites[id].y = -120;
+ subsprites[id].y = 136;
id++;
subsprites[id] = sSubsprite_RedOutline7;
- subsprites[id].x = -120;
+ subsprites[id].x = 136;
subsprites[id].y = rowHeight + 128;
id++;
@@ -1297,7 +1299,7 @@ void ListMenuSetUpRedOutlineCursorSpriteOamTable(u16 rowWidth, u16 rowHeight, st
for (j = 8; j < rowHeight - 8; j += 8)
{
subsprites[id] = sSubsprite_RedOutline4;
- subsprites[id].x = -120;
+ subsprites[id].x = 136;
subsprites[id].y = j - 120;
id++;
diff --git a/src/lottery_corner.c b/src/lottery_corner.c
index 5f68ad516..2cbf0a808 100644
--- a/src/lottery_corner.c
+++ b/src/lottery_corner.c
@@ -4,7 +4,6 @@
#include "pokemon.h"
#include "constants/items.h"
#include "random.h"
-#include "constants/species.h"
#include "string_util.h"
#include "text.h"
#include "pokemon_storage_system.h"
diff --git a/src/m4a.c b/src/m4a.c
index b8f9e21c1..f061ba9b9 100644
--- a/src/m4a.c
+++ b/src/m4a.c
@@ -22,7 +22,8 @@ u8 gMPlayMemAccArea[0x10];
u32 MidiKeyToFreq(struct WaveData *wav, u8 key, u8 fineAdjust)
{
- u32 val1, val2;
+ u32 val1;
+ u32 val2;
u32 fineAdjustShifted = fineAdjust << 24;
if (key > 178)
@@ -314,7 +315,7 @@ void MPlayExtender(struct CgbChannel *cgbChans)
void MusicPlayerJumpTableCopy(void)
{
- asm("svc 0x2A");
+ asm("swi 0x2A");
}
void ClearChain(void *x)
@@ -351,25 +352,25 @@ void SoundInit(struct SoundInfo *soundInfo)
| SOUND_ALL_MIX_FULL;
REG_SOUNDBIAS_H = (REG_SOUNDBIAS_H & 0x3F) | 0x40;
- REG_DMA1SAD = (u32)soundInfo->pcmBuffer;
- REG_DMA1DAD = (u32)&REG_FIFO_A;
- REG_DMA2SAD = (u32)soundInfo->pcmBuffer + PCM_DMA_BUF_SIZE;
- REG_DMA2DAD = (u32)&REG_FIFO_B;
+ REG_DMA1SAD = (s32)soundInfo->pcmBuffer;
+ REG_DMA1DAD = (s32)&REG_FIFO_A;
+ REG_DMA2SAD = (s32)soundInfo->pcmBuffer + PCM_DMA_BUF_SIZE;
+ REG_DMA2DAD = (s32)&REG_FIFO_B;
SOUND_INFO_PTR = soundInfo;
CpuFill32(0, soundInfo, sizeof(struct SoundInfo));
soundInfo->maxChans = 8;
soundInfo->masterVolume = 15;
- soundInfo->plynote = ply_note;
+ soundInfo->plynote = (u32)ply_note;
soundInfo->CgbSound = DummyFunc;
soundInfo->CgbOscOff = (void (*)(u8))DummyFunc;
soundInfo->MidiKeyToCgbFreq = (u32 (*)(u8, u8, u8))DummyFunc;
- soundInfo->ExtVolPit = (void (*)(struct MusicPlayerInfo *, struct MusicPlayerTrack *))DummyFunc;
+ soundInfo->ExtVolPit = (u32)DummyFunc;
MPlayJumpTableCopy(gMPlayJumpTable);
- soundInfo->MPlayJumpTable = (void (**)())gMPlayJumpTable;
+ soundInfo->MPlayJumpTable = (u32)gMPlayJumpTable;
SampleFreqSet(SOUND_MODE_FREQ_13379);
@@ -380,7 +381,7 @@ void SampleFreqSet(u32 freq)
{
struct SoundInfo *soundInfo = SOUND_INFO_PTR;
- freq = (freq & SOUND_MODE_FREQ) >> SOUND_MODE_FREQ_SHIFT;
+ freq = (freq & 0xF0000) >> 16;
soundInfo->freq = freq;
soundInfo->pcmSamplesPerVBlank = gPcmSamplesPerVBlankTable[freq - 1];
soundInfo->pcmDmaPeriod = PCM_DMA_BUF_SIZE / soundInfo->pcmSamplesPerVBlank;
@@ -431,9 +432,14 @@ void m4aSoundMode(u32 mode)
soundInfo->maxChans = temp >> SOUND_MODE_MAXCHN_SHIFT;
- for (temp = MAX_DIRECTSOUND_CHANNELS, chan = soundInfo->chans; temp != 0; temp--,chan++)
+ temp = MAX_DIRECTSOUND_CHANNELS;
+ chan = &soundInfo->chans[0];
+
+ while (temp != 0)
{
chan->status = 0;
+ temp--;
+ chan++;
}
}
@@ -463,28 +469,37 @@ void m4aSoundMode(u32 mode)
void SoundClear(void)
{
- s32 i;
struct SoundInfo *soundInfo = SOUND_INFO_PTR;
- struct SoundChannel *chan;
+ s32 i;
+ void *chan;
if (soundInfo->ident != ID_NUMBER)
return;
soundInfo->ident++;
- for (i = MAX_DIRECTSOUND_CHANNELS, chan = soundInfo->chans; i > 0; i--,chan++)
+ i = MAX_DIRECTSOUND_CHANNELS;
+ chan = &soundInfo->chans[0];
+
+ while (i > 0)
{
- chan->status = 0;
+ ((struct SoundChannel *)chan)->status = 0;
+ i--;
+ chan = (void *)((s32)chan + sizeof(struct SoundChannel));
}
- chan = (struct SoundChannel *)soundInfo->cgbChans;
+ chan = soundInfo->cgbChans;
if (chan)
{
- for (i=1; i<=4; i++,chan++)
+ i = 1;
+
+ while (i <= 4)
{
soundInfo->CgbOscOff(i);
- chan->status = 0;
+ ((struct CgbChannel *)chan)->sf = 0;
+ i++;
+ chan = (void *)((s32)chan + sizeof(struct CgbChannel));
}
}
@@ -495,20 +510,21 @@ void m4aSoundVSyncOff(void)
{
struct SoundInfo *soundInfo = SOUND_INFO_PTR;
- if (soundInfo->ident < ID_NUMBER || soundInfo->ident > ID_NUMBER + 1)
- return;
- soundInfo->ident += 10;
+ if (soundInfo->ident >= ID_NUMBER && soundInfo->ident <= ID_NUMBER + 1)
+ {
+ soundInfo->ident += 10;
- if (REG_DMA1CNT & (DMA_REPEAT << 16))
- REG_DMA1CNT = ((DMA_ENABLE | DMA_START_NOW | DMA_32BIT | DMA_SRC_INC | DMA_DEST_FIXED) << 16) | 4;
+ if (REG_DMA1CNT & (DMA_REPEAT << 16))
+ REG_DMA1CNT = ((DMA_ENABLE | DMA_START_NOW | DMA_32BIT | DMA_SRC_INC | DMA_DEST_FIXED) << 16) | 4;
- if (REG_DMA2CNT & (DMA_REPEAT << 16))
- REG_DMA2CNT = ((DMA_ENABLE | DMA_START_NOW | DMA_32BIT | DMA_SRC_INC | DMA_DEST_FIXED) << 16) | 4;
+ if (REG_DMA2CNT & (DMA_REPEAT << 16))
+ REG_DMA2CNT = ((DMA_ENABLE | DMA_START_NOW | DMA_32BIT | DMA_SRC_INC | DMA_DEST_FIXED) << 16) | 4;
- REG_DMA1CNT_H = DMA_32BIT;
- REG_DMA2CNT_H = DMA_32BIT;
+ REG_DMA1CNT_H = DMA_32BIT;
+ REG_DMA2CNT_H = DMA_32BIT;
- CpuFill32(0, soundInfo->pcmBuffer, sizeof(soundInfo->pcmBuffer));
+ CpuFill32(0, soundInfo->pcmBuffer, sizeof(soundInfo->pcmBuffer));
+ }
}
void m4aSoundVSyncOn(void)
@@ -564,7 +580,7 @@ void MPlayOpen(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *track
}
soundInfo->intp = (u32)mplayInfo;
- soundInfo->func = MPlayMain;
+ soundInfo->func = (u32)MPlayMain;
soundInfo->ident = ID_NUMBER;
mplayInfo->ident = ID_NUMBER;
}
@@ -598,18 +614,25 @@ void MPlayStart(struct MusicPlayerInfo *mplayInfo, struct SongHeader *songHeader
mplayInfo->tempoC = 0;
mplayInfo->fadeOI = 0;
- for (i = 0, track = mplayInfo->tracks; i < songHeader->trackCount && i < mplayInfo->trackCount; i++, track++)
+ i = 0;
+ track = mplayInfo->tracks;
+
+ while (i < songHeader->trackCount && i < mplayInfo->trackCount)
{
TrackStop(mplayInfo, track);
track->flags = MPT_FLG_EXIST | MPT_FLG_START;
track->chan = 0;
track->cmdPtr = songHeader->part[i];
+ i++;
+ track++;
}
- for (; i < mplayInfo->trackCount; i++, track++)
+ while (i < mplayInfo->trackCount)
{
TrackStop(mplayInfo, track);
track->flags = 0;
+ i++;
+ track++;
}
if (songHeader->reverb & SOUND_MODE_REVERB_SET)
@@ -630,9 +653,14 @@ void m4aMPlayStop(struct MusicPlayerInfo *mplayInfo)
mplayInfo->ident++;
mplayInfo->status |= MUSICPLAYER_STATUS_PAUSE;
- for (i = mplayInfo->trackCount, track = mplayInfo->tracks; i > 0; i--, track++)
+ i = mplayInfo->trackCount;
+ track = mplayInfo->tracks;
+
+ while (i > 0)
{
TrackStop(mplayInfo, track);
+ i--;
+ track++;
}
mplayInfo->ident = ID_NUMBER;
@@ -643,28 +671,17 @@ void FadeOutBody(struct MusicPlayerInfo *mplayInfo)
s32 i;
struct MusicPlayerTrack *track;
u16 fadeOV;
-#ifdef NONMATCHING
- u16 mask;
-#else
- register u16 mask asm("r2");
-#endif // NONMATCHING
if (mplayInfo->fadeOI == 0)
return;
-
- mplayInfo->fadeOC--;
- mask = 0xFFFF;
-
- if (mplayInfo->fadeOC != 0)
+ if (--mplayInfo->fadeOC != 0)
return;
mplayInfo->fadeOC = mplayInfo->fadeOI;
if (mplayInfo->fadeOV & FADE_IN)
{
- mplayInfo->fadeOV += (4 << FADE_VOL_SHIFT);
-
- if ((u16)(mplayInfo->fadeOV & mask) >= (64 << FADE_VOL_SHIFT))
+ if ((u16)(mplayInfo->fadeOV += (4 << FADE_VOL_SHIFT)) >= (64 << FADE_VOL_SHIFT))
{
mplayInfo->fadeOV = (64 << FADE_VOL_SHIFT);
mplayInfo->fadeOI = 0;
@@ -672,12 +689,12 @@ void FadeOutBody(struct MusicPlayerInfo *mplayInfo)
}
else
{
- mplayInfo->fadeOV -= (4 << FADE_VOL_SHIFT);
-
- if ((s16)(mplayInfo->fadeOV & mask) <= 0)
+ if ((s16)(mplayInfo->fadeOV -= (4 << FADE_VOL_SHIFT)) <= 0)
{
+ i = mplayInfo->trackCount;
+ track = mplayInfo->tracks;
- for (i = mplayInfo->trackCount, track = mplayInfo->tracks; i > 0; i--, track++)
+ while (i > 0)
{
u32 val;
@@ -689,6 +706,9 @@ void FadeOutBody(struct MusicPlayerInfo *mplayInfo)
if (!val)
track->flags = 0;
+
+ i--;
+ track++;
}
if (mplayInfo->fadeOV & TEMPORARY_FADE)
@@ -701,7 +721,10 @@ void FadeOutBody(struct MusicPlayerInfo *mplayInfo)
}
}
- for (i = mplayInfo->trackCount, track = mplayInfo->tracks; i > 0; i--, track++)
+ i = mplayInfo->trackCount;
+ track = mplayInfo->tracks;
+
+ while (i > 0)
{
if (track->flags & MPT_FLG_EXIST)
{
@@ -710,6 +733,9 @@ void FadeOutBody(struct MusicPlayerInfo *mplayInfo)
track->volX = (fadeOV >> FADE_VOL_SHIFT);
track->flags |= MPT_FLG_VOLCHG;
}
+
+ i--;
+ track++;
}
}
@@ -717,7 +743,7 @@ void TrkVolPitSet(struct MusicPlayerInfo *mplayInfo, struct MusicPlayerTrack *tr
{
if (track->flags & MPT_FLG_VOLSET)
{
- u32 x;
+ s32 x;
s32 y;
x = (u32)(track->vol * track->volX) >> 5;
diff --git a/src/m4a_1.s b/src/m4a_1.s
index 290404ad0..cab4ed174 100644
--- a/src/m4a_1.s
+++ b/src/m4a_1.s
@@ -22,13 +22,13 @@ SoundMain:
ldr r0, lt_SOUND_INFO_PTR
ldr r0, [r0]
ldr r2, lt_ID_NUMBER
- ldr r3, [r0, #o_SoundInfo_ident]
+ ldr r3, [r0, o_SoundInfo_ident]
cmp r2, r3
beq SoundMain_1
bx lr @ Exit the function if ident doesn't match ID_NUMBER.
SoundMain_1:
adds r3, 1
- str r3, [r0, #o_SoundInfo_ident]
+ str r3, [r0, o_SoundInfo_ident]
push {r4-r7,lr}
mov r1, r8
mov r2, r9
@@ -36,7 +36,7 @@ SoundMain_1:
mov r4, r11
push {r0-r4}
sub sp, 0x18
- ldrb r1, [r0, #o_SoundInfo_maxLines]
+ ldrb r1, [r0, o_SoundInfo_maxLines]
cmp r1, 0 @ if maxLines is 0, there is no maximum
beq SoundMain_3
ldr r2, lt_REG_VCOUNT
@@ -48,24 +48,24 @@ SoundMain_2:
adds r1, r2
SoundMain_3:
str r1, [sp, 0x14]
- ldr r3, [r0, #o_SoundInfo_func]
+ ldr r3, [r0, o_SoundInfo_func]
cmp r3, 0
beq SoundMain_4
- ldr r0, [r0, #o_SoundInfo_intp]
+ ldr r0, [r0, o_SoundInfo_intp]
bl _081DD25E
ldr r0, [sp, 0x18]
SoundMain_4:
- ldr r3, [r0, #o_SoundInfo_CgbSound]
+ ldr r3, [r0, o_SoundInfo_CgbSound]
bl _081DD25E
ldr r0, [sp, 0x18]
- ldr r3, [r0, #o_SoundInfo_pcmSamplesPerVBlank]
+ ldr r3, [r0, o_SoundInfo_pcmSamplesPerVBlank]
mov r8, r3
ldr r5, lt_o_SoundInfo_pcmBuffer
adds r5, r0
- ldrb r4, [r0, #o_SoundInfo_pcmDmaCounter]
+ ldrb r4, [r0, o_SoundInfo_pcmDmaCounter]
subs r7, r4, 1
bls SoundMain_5
- ldrb r1, [r0, #o_SoundInfo_pcmDmaPeriod]
+ ldrb r1, [r0, o_SoundInfo_pcmDmaPeriod]
subs r1, r7
mov r2, r8
muls r2, r1
@@ -87,7 +87,7 @@ lt_PCM_DMA_BUF_SIZE: .word PCM_DMA_BUF_SIZE
thumb_func_start SoundMainRAM
SoundMainRAM:
- ldrb r3, [r0, #o_SoundInfo_reverb]
+ ldrb r3, [r0, o_SoundInfo_reverb]
cmp r3, 0
beq SoundMainRAM_NoReverb
adr r1, SoundMainRAM_Reverb
@@ -95,7 +95,7 @@ SoundMainRAM:
.arm
SoundMainRAM_Reverb:
cmp r4, 0x2
- addeq r7, r0, #o_SoundInfo_pcmBuffer
+ addeq r7, r0, o_SoundInfo_pcmBuffer
addne r7, r5, r8
mov r4, r8
_081DCEC4:
@@ -145,14 +145,14 @@ SoundMainRAM_NoReverb_Loop:
bgt SoundMainRAM_NoReverb_Loop
_081DCF36:
ldr r4, [sp, 0x18]
- ldr r0, [r4, #o_SoundInfo_divFreq]
+ ldr r0, [r4, o_SoundInfo_divFreq]
mov r12, r0
- ldrb r0, [r4, #o_SoundInfo_maxChans]
- adds r4, #o_SoundInfo_chans
+ ldrb r0, [r4, o_SoundInfo_maxChans]
+ adds r4, o_SoundInfo_chans
SoundMainRAM_ChanLoop:
str r0, [sp, 0x4]
- ldr r3, [r4, #o_SoundChannel_wav]
+ ldr r3, [r4, o_SoundChannel_wav]
ldr r0, [sp, 0x14]
cmp r0, 0
beq _081DCF60
@@ -169,7 +169,7 @@ _081DCF54:
.pool
_081DCF60:
- ldrb r6, [r4, #o_SoundChannel_status]
+ ldrb r6, [r4, o_SoundChannel_status]
movs r0, 0xC7
tst r0, r6
bne _081DCF6A
@@ -182,99 +182,99 @@ _081DCF6A:
tst r0, r6
bne _081DCFB0
movs r6, 0x3
- strb r6, [r4, #o_SoundChannel_status]
+ strb r6, [r4, o_SoundChannel_status]
adds r0, r3, 0
adds r0, 0x10
- ldr r1, [r4, #o_SoundChannel_ct]
+ ldr r1, [r4, o_SoundChannel_ct]
adds r0, r1
- str r0, [r4, #o_SoundChannel_cp]
+ str r0, [r4, o_SoundChannel_cp]
ldr r0, [r3, 0xC]
subs r0, r1
- str r0, [r4, #o_SoundChannel_ct]
+ str r0, [r4, o_SoundChannel_ct]
movs r5, 0
- strb r5, [r4, #o_SoundChannel_ev]
- str r5, [r4, #o_SoundChannel_fw]
+ strb r5, [r4, o_SoundChannel_ev]
+ str r5, [r4, o_SoundChannel_fw]
ldrb r2, [r3, 0x3]
movs r0, 0xC0
tst r0, r2
beq _081DCFF8
movs r0, 0x10
orrs r6, r0
- strb r6, [r4, #o_SoundChannel_status]
+ strb r6, [r4, o_SoundChannel_status]
b _081DCFF8
_081DCFA0:
- ldrb r5, [r4, #o_SoundChannel_ev]
+ ldrb r5, [r4, o_SoundChannel_ev]
movs r0, 0x4
tst r0, r6
beq _081DCFB6
- ldrb r0, [r4, #o_SoundChannel_iel]
+ ldrb r0, [r4, o_SoundChannel_iel]
subs r0, 1
- strb r0, [r4, #o_SoundChannel_iel]
+ strb r0, [r4, o_SoundChannel_iel]
bhi _081DD006
_081DCFB0:
movs r0, 0
- strb r0, [r4, #o_SoundChannel_status]
+ strb r0, [r4, o_SoundChannel_status]
b _081DD240
_081DCFB6:
movs r0, 0x40
tst r0, r6
beq _081DCFD6
- ldrb r0, [r4, #o_SoundChannel_release]
+ ldrb r0, [r4, o_SoundChannel_release]
muls r5, r0
lsrs r5, 8
- ldrb r0, [r4, #o_SoundChannel_iev]
+ ldrb r0, [r4, o_SoundChannel_iev]
cmp r5, r0
bhi _081DD006
_081DCFC8:
- ldrb r5, [r4, #o_SoundChannel_iev]
+ ldrb r5, [r4, o_SoundChannel_iev]
cmp r5, 0
beq _081DCFB0
movs r0, 0x4
orrs r6, r0
- strb r6, [r4, #o_SoundChannel_status]
+ strb r6, [r4, o_SoundChannel_status]
b _081DD006
_081DCFD6:
movs r2, 0x3
ands r2, r6
cmp r2, 0x2
bne _081DCFF4
- ldrb r0, [r4, #o_SoundChannel_decay]
+ ldrb r0, [r4, o_SoundChannel_decay]
muls r5, r0
lsrs r5, 8
- ldrb r0, [r4, #o_SoundChannel_sustain]
+ ldrb r0, [r4, o_SoundChannel_sustain]
cmp r5, r0
bhi _081DD006
adds r5, r0, 0
beq _081DCFC8
subs r6, 0x1
- strb r6, [r4, #o_SoundChannel_status]
+ strb r6, [r4, o_SoundChannel_status]
b _081DD006
_081DCFF4:
cmp r2, 0x3
bne _081DD006
_081DCFF8:
- ldrb r0, [r4, #o_SoundChannel_attack]
+ ldrb r0, [r4, o_SoundChannel_attack]
adds r5, r0
cmp r5, 0xFF
bcc _081DD006
movs r5, 0xFF
subs r6, 0x1
- strb r6, [r4, #o_SoundChannel_status]
+ strb r6, [r4, o_SoundChannel_status]
_081DD006:
- strb r5, [r4, #o_SoundChannel_ev]
+ strb r5, [r4, o_SoundChannel_ev]
ldr r0, [sp, 0x18]
- ldrb r0, [r0, #o_SoundChannel_release]
+ ldrb r0, [r0, o_SoundChannel_release]
adds r0, 0x1
muls r0, r5
lsrs r5, r0, 4
- ldrb r0, [r4, #o_SoundChannel_rightVolume]
+ ldrb r0, [r4, o_SoundChannel_rightVolume]
muls r0, r5
lsrs r0, 8
- strb r0, [r4, #o_SoundChannel_er]
- ldrb r0, [r4, #o_SoundChannel_leftVolume]
+ strb r0, [r4, o_SoundChannel_er]
+ ldrb r0, [r4, o_SoundChannel_leftVolume]
muls r0, r5
lsrs r0, 8
- strb r0, [r4, #o_SoundChannel_el]
+ strb r0, [r4, o_SoundChannel_el]
movs r0, 0x10
ands r0, r6
str r0, [sp, 0x10]
@@ -289,17 +289,17 @@ _081DD006:
str r0, [sp, 0x10]
_081DD03A:
ldr r5, [sp, 0x8]
- ldr r2, [r4, #o_SoundChannel_ct]
- ldr r3, [r4, #o_SoundChannel_cp]
+ ldr r2, [r4, o_SoundChannel_ct]
+ ldr r3, [r4, o_SoundChannel_cp]
adr r0, _081DD044
bx r0
.arm
_081DD044:
str r8, [sp]
- ldr r9, [r4, #o_SoundChannel_fw]
- ldrb r10, [r4, #o_SoundChannel_er]
- ldrb r11, [r4, #o_SoundChannel_el]
- ldrb r0, [r4, #o_SoundChannel_type]
+ ldr r9, [r4, o_SoundChannel_fw]
+ ldrb r10, [r4, o_SoundChannel_er]
+ ldrb r11, [r4, o_SoundChannel_el]
+ ldrb r0, [r4, o_SoundChannel_type]
tst r0, 0x30
beq _081DD068
bl sub_82DF49C
@@ -307,7 +307,7 @@ _081DD044:
_081DD068:
mov r10, r10, lsl 16
mov r11, r11, lsl 16
- ldrb r0, [r4, #o_SoundChannel_type]
+ ldrb r0, [r4, o_SoundChannel_type]
tst r0, 0x8
beq _081DD19C
_081DD07C:
@@ -383,7 +383,7 @@ _081DD164:
ldrne r3, [sp, 0xC]
bne _081DD118
_081DD174:
- strb r2, [r4, #o_SoundChannel_status]
+ strb r2, [r4, o_SoundChannel_status]
mov r0, r5, lsr 30
bic r5, r5, 0xC0000000
rsb r0, r0, 0x3
@@ -395,7 +395,7 @@ _081DD174:
b _081DD234
_081DD19C:
push {r4,r12}
- ldr r1, [r4, #o_SoundChannel_freq]
+ ldr r1, [r4, o_SoundChannel_freq]
mul r4, r12, r1
ldrsb r0, [r3]
ldrsb r1, [r3, 0x1]!
@@ -434,10 +434,10 @@ _081DD208:
sub r3, r3, 0x1
pop {r4,r12}
_081DD228:
- str r9, [r4, #o_SoundChannel_fw]
+ str r9, [r4, o_SoundChannel_fw]
_081DD22C:
- str r2, [r4, #o_SoundChannel_ct]
- str r3, [r4, #o_SoundChannel_cp]
+ str r2, [r4, o_SoundChannel_ct]
+ str r3, [r4, o_SoundChannel_cp]
_081DD234:
ldr r8, [sp]
add r0, pc, 0x1
@@ -467,33 +467,33 @@ _081DD25E:
arm_func_start sub_82DF49C
sub_82DF49C:
- ldr r6, [r4, #o_SoundChannel_wav]
- ldrb r0, [r4, #o_SoundChannel_status]
+ ldr r6, [r4, o_SoundChannel_wav]
+ ldrb r0, [r4, o_SoundChannel_status]
tst r0, 0x20
bne _081DD2B4
orr r0, r0, 0x20
- strb r0, [r4, #o_SoundChannel_status]
- ldrb r0, [r4, #o_SoundChannel_type]
+ strb r0, [r4, o_SoundChannel_status]
+ ldrb r0, [r4, o_SoundChannel_type]
tst r0, 0x10
beq _081DD29C
ldr r1, [r6, 0xC]
add r1, r1, r6, lsl 1
add r1, r1, 0x20
sub r3, r1, r3
- str r3, [r4, #o_SoundChannel_cp]
+ str r3, [r4, o_SoundChannel_cp]
_081DD29C:
ldrh r0, [r6]
cmp r0, 0
beq _081DD2B4
sub r3, r3, r6
sub r3, r3, 0x10
- str r3, [r4, #o_SoundChannel_cp]
+ str r3, [r4, o_SoundChannel_cp]
_081DD2B4:
push {r8,r12,lr}
mov r10, r10, lsl 16
mov r11, r11, lsl 16
- ldr r1, [r4, #o_SoundChannel_freq]
- ldrb r0, [r4, #o_SoundChannel_type]
+ ldr r1, [r4, o_SoundChannel_freq]
+ ldrb r0, [r4, o_SoundChannel_type]
tst r0, 0x8
movne r8, 0x800000
muleq r8, r12, r1
@@ -501,8 +501,8 @@ _081DD2B4:
cmp r0, 0
beq _081DD468
mov r0, 0xFF000000
- str r0, [r4, #o_SoundChannel_xpi]
- ldrb r0, [r4, #o_SoundChannel_type]
+ str r0, [r4, o_SoundChannel_xpi]
+ ldrb r0, [r4, o_SoundChannel_type]
tst r0, 0x10
bne _081DD3C0
bl sub_82DF758
@@ -555,7 +555,7 @@ _081DD398:
ldr r0, [sp, 0x1C]
cmp r0, 0
beq _081DD4F4
- ldr r3, [r4, #o_SoundChannel_wav]
+ ldr r3, [r4, o_SoundChannel_wav]
ldr r3, [r3, 0x8]
rsb lr, r2, 0
_081DD3B0:
@@ -612,7 +612,7 @@ _081DD440:
add r3, r3, 0x2
b _081DD4F0
_081DD468:
- ldrb r0, [r4, #o_SoundChannel_type]
+ ldrb r0, [r4, o_SoundChannel_type]
tst r0, 0x10
beq _081DD4F0
ldrsb r0, [r3, -0x1]!
@@ -653,7 +653,7 @@ _081DD4F0:
pop {r8,r12,pc}
_081DD4F4:
mov r2, 0
- strb r2, [r4, #o_SoundChannel_status]
+ strb r2, [r4, o_SoundChannel_status]
mov r0, r5, lsr 30
bic r5, r5, 0xC0000000
rsb r0, r0, 0x3
@@ -669,13 +669,13 @@ _081DD4F4:
sub_82DF758:
push {r0,r2,r5-r7,lr}
mov r0, r3, lsr 6
- ldr r1, [r4, #o_SoundChannel_xpi]
+ ldr r1, [r4, o_SoundChannel_xpi]
cmp r0, r1
beq _081DD594
- str r0, [r4, #o_SoundChannel_xpi]
+ str r0, [r4, o_SoundChannel_xpi]
mov r1, 0x21
mul r2, r1, r0
- ldr r1, [r4, #o_SoundChannel_wav]
+ ldr r1, [r4, o_SoundChannel_wav]
add r2, r2, r1
add r2, r2, 0x10
ldr r5, =gUnknown_03001300
@@ -749,7 +749,7 @@ _081DD5E2:
ply_fine:
push {r4,r5,lr}
adds r5, r1, 0
- ldr r4, [r5, #o_MusicPlayerTrack_chan]
+ ldr r4, [r5, o_MusicPlayerTrack_chan]
cmp r4, 0
beq ply_fine_done
ply_fine_loop:
@@ -830,7 +830,7 @@ _081DD64A:
ply_goto:
push {lr}
ply_goto_1:
- ldr r2, [r1, #o_MusicPlayerTrack_cmdPtr]
+ ldr r2, [r1, o_MusicPlayerTrack_cmdPtr]
ldrb r0, [r2, 0x3]
lsls r0, 8
ldrb r3, [r2, 0x2]
@@ -841,24 +841,24 @@ ply_goto_1:
lsls r0, 8
bl ldrb_r3_r2
orrs r0, r3
- str r0, [r1, #o_MusicPlayerTrack_cmdPtr]
+ str r0, [r1, o_MusicPlayerTrack_cmdPtr]
pop {r0}
bx r0
thumb_func_end ply_goto
thumb_func_start ply_patt
ply_patt:
- ldrb r2, [r1, #o_MusicPlayerTrack_patternLevel]
+ ldrb r2, [r1, o_MusicPlayerTrack_patternLevel]
cmp r2, 3
bhs ply_patt_done
lsls r2, 2
adds r3, r1, r2
- ldr r2, [r1, #o_MusicPlayerTrack_cmdPtr]
+ ldr r2, [r1, o_MusicPlayerTrack_cmdPtr]
adds r2, 0x4
- str r2, [r3, #o_MusicPlayerTrack_patternStack]
- ldrb r2, [r1, #o_MusicPlayerTrack_patternLevel]
+ str r2, [r3, o_MusicPlayerTrack_patternStack]
+ ldrb r2, [r1, o_MusicPlayerTrack_patternLevel]
adds r2, 1
- strb r2, [r1, #o_MusicPlayerTrack_patternLevel]
+ strb r2, [r1, o_MusicPlayerTrack_patternLevel]
b ply_goto
ply_patt_done:
b ply_fine
@@ -866,15 +866,15 @@ ply_patt_done:
thumb_func_start ply_pend
ply_pend:
- ldrb r2, [r1, #o_MusicPlayerTrack_patternLevel]
+ ldrb r2, [r1, o_MusicPlayerTrack_patternLevel]
cmp r2, 0
beq ply_pend_done
subs r2, 1
- strb r2, [r1, #o_MusicPlayerTrack_patternLevel]
+ strb r2, [r1, o_MusicPlayerTrack_patternLevel]
lsls r2, 2
adds r3, r1, r2
- ldr r2, [r3, #o_MusicPlayerTrack_patternStack]
- str r2, [r1, #o_MusicPlayerTrack_cmdPtr]
+ ldr r2, [r3, o_MusicPlayerTrack_patternStack]
+ str r2, [r1, o_MusicPlayerTrack_cmdPtr]
ply_pend_done:
bx lr
thumb_func_end ply_pend
@@ -882,17 +882,17 @@ ply_pend_done:
thumb_func_start ply_rept
ply_rept:
push {lr}
- ldr r2, [r1, #o_MusicPlayerTrack_cmdPtr]
+ ldr r2, [r1, o_MusicPlayerTrack_cmdPtr]
ldrb r3, [r2]
cmp r3, 0
bne ply_rept_1
adds r2, 1
- str r2, [r1, #o_MusicPlayerTrack_cmdPtr]
+ str r2, [r1, o_MusicPlayerTrack_cmdPtr]
b ply_goto_1
ply_rept_1:
- ldrb r3, [r1, #o_MusicPlayerTrack_repN]
+ ldrb r3, [r1, o_MusicPlayerTrack_repN]
adds r3, 1
- strb r3, [r1, #o_MusicPlayerTrack_repN]
+ strb r3, [r1, o_MusicPlayerTrack_repN]
mov r12, r3
bl ld_r3_tp_adr_i
cmp r12, r3
@@ -900,9 +900,9 @@ ply_rept_1:
b ply_goto_1
ply_rept_2:
movs r3, 0
- strb r3, [r1, #o_MusicPlayerTrack_repN]
+ strb r3, [r1, o_MusicPlayerTrack_repN]
adds r2, 5
- str r2, [r1, #o_MusicPlayerTrack_cmdPtr]
+ str r2, [r1, o_MusicPlayerTrack_cmdPtr]
pop {r0}
bx r0
thumb_func_end ply_rept
@@ -911,7 +911,7 @@ ply_rept_2:
ply_prio:
mov r12, lr
bl ld_r3_tp_adr_i
- strb r3, [r1, #o_MusicPlayerTrack_priority]
+ strb r3, [r1, o_MusicPlayerTrack_priority]
bx r12
thumb_func_end ply_prio
@@ -920,11 +920,11 @@ ply_tempo:
mov r12, lr
bl ld_r3_tp_adr_i
lsls r3, 1
- strh r3, [r0, #o_MusicPlayerInfo_tempoD]
- ldrh r2, [r0, #o_MusicPlayerInfo_tempoU]
+ strh r3, [r0, o_MusicPlayerInfo_tempoD]
+ ldrh r2, [r0, o_MusicPlayerInfo_tempoU]
muls r3, r2
lsrs r3, 8
- strh r3, [r0, #o_MusicPlayerInfo_tempoI]
+ strh r3, [r0, o_MusicPlayerInfo_tempoI]
bx r12
thumb_func_end ply_tempo
@@ -932,35 +932,35 @@ ply_tempo:
ply_keysh:
mov r12, lr
bl ld_r3_tp_adr_i
- strb r3, [r1, #o_MusicPlayerTrack_keyShift]
- ldrb r3, [r1, #o_MusicPlayerTrack_flags]
+ strb r3, [r1, o_MusicPlayerTrack_keyShift]
+ ldrb r3, [r1, o_MusicPlayerTrack_flags]
movs r2, 0xC
orrs r3, r2
- strb r3, [r1, #o_MusicPlayerTrack_flags]
+ strb r3, [r1, o_MusicPlayerTrack_flags]
bx r12
thumb_func_end ply_keysh
thumb_func_start ply_voice
ply_voice:
mov r12, lr
- ldr r2, [r1, #o_MusicPlayerTrack_cmdPtr]
+ ldr r2, [r1, o_MusicPlayerTrack_cmdPtr]
ldrb r3, [r2]
adds r2, 1
- str r2, [r1, #o_MusicPlayerTrack_cmdPtr]
+ str r2, [r1, o_MusicPlayerTrack_cmdPtr]
lsls r2, r3, 1
adds r2, r3
lsls r2, 2
- ldr r3, [r0, #o_MusicPlayerInfo_tone]
+ ldr r3, [r0, o_MusicPlayerInfo_tone]
adds r2, r3
ldr r3, [r2]
bl chk_adr_r2
- str r3, [r1, #o_MusicPlayerTrack_ToneData_type]
+ str r3, [r1, o_MusicPlayerTrack_ToneData_type]
ldr r3, [r2, 0x4]
bl chk_adr_r2
- str r3, [r1, #o_MusicPlayerTrack_ToneData_wav]
+ str r3, [r1, o_MusicPlayerTrack_ToneData_wav]
ldr r3, [r2, 0x8]
bl chk_adr_r2
- str r3, [r1, #o_MusicPlayerTrack_ToneData_attack]
+ str r3, [r1, o_MusicPlayerTrack_ToneData_attack]
bx r12
thumb_func_end ply_voice
@@ -968,11 +968,11 @@ ply_voice:
ply_vol:
mov r12, lr
bl ld_r3_tp_adr_i
- strb r3, [r1, #o_MusicPlayerTrack_vol]
- ldrb r3, [r1, #o_MusicPlayerTrack_flags]
+ strb r3, [r1, o_MusicPlayerTrack_vol]
+ ldrb r3, [r1, o_MusicPlayerTrack_flags]
movs r2, 0x3
orrs r3, r2
- strb r3, [r1, #o_MusicPlayerTrack_flags]
+ strb r3, [r1, o_MusicPlayerTrack_flags]
bx r12
thumb_func_end ply_vol
@@ -981,11 +981,11 @@ ply_pan:
mov r12, lr
bl ld_r3_tp_adr_i
subs r3, 0x40
- strb r3, [r1, #o_MusicPlayerTrack_pan]
- ldrb r3, [r1, #o_MusicPlayerTrack_flags]
+ strb r3, [r1, o_MusicPlayerTrack_pan]
+ ldrb r3, [r1, o_MusicPlayerTrack_flags]
movs r2, 0x3
orrs r3, r2
- strb r3, [r1, #o_MusicPlayerTrack_flags]
+ strb r3, [r1, o_MusicPlayerTrack_flags]
bx r12
thumb_func_end ply_pan
@@ -994,11 +994,11 @@ ply_bend:
mov r12, lr
bl ld_r3_tp_adr_i
subs r3, 0x40
- strb r3, [r1, #o_MusicPlayerTrack_bend]
- ldrb r3, [r1, #o_MusicPlayerTrack_flags]
+ strb r3, [r1, o_MusicPlayerTrack_bend]
+ ldrb r3, [r1, o_MusicPlayerTrack_flags]
movs r2, 0xC
orrs r3, r2
- strb r3, [r1, #o_MusicPlayerTrack_flags]
+ strb r3, [r1, o_MusicPlayerTrack_flags]
bx r12
thumb_func_end ply_bend
@@ -1006,11 +1006,11 @@ ply_bend:
ply_bendr:
mov r12, lr
bl ld_r3_tp_adr_i
- strb r3, [r1, #o_MusicPlayerTrack_bendRange]
- ldrb r3, [r1, #o_MusicPlayerTrack_flags]
+ strb r3, [r1, o_MusicPlayerTrack_bendRange]
+ ldrb r3, [r1, o_MusicPlayerTrack_flags]
movs r2, 0xC
orrs r3, r2
- strb r3, [r1, #o_MusicPlayerTrack_flags]
+ strb r3, [r1, o_MusicPlayerTrack_flags]
bx r12
thumb_func_end ply_bendr
@@ -1018,7 +1018,7 @@ ply_bendr:
ply_lfodl:
mov r12, lr
bl ld_r3_tp_adr_i
- strb r3, [r1, #o_MusicPlayerTrack_lfoDelay]
+ strb r3, [r1, o_MusicPlayerTrack_lfoDelay]
bx r12
thumb_func_end ply_lfodl
@@ -1026,14 +1026,14 @@ ply_lfodl:
ply_modt:
mov r12, lr
bl ld_r3_tp_adr_i
- ldrb r0, [r1, #o_MusicPlayerTrack_modT]
+ ldrb r0, [r1, o_MusicPlayerTrack_modT]
cmp r0, r3
beq _081DD7AA
- strb r3, [r1, #o_MusicPlayerTrack_modT]
- ldrb r3, [r1, #o_MusicPlayerTrack_flags]
+ strb r3, [r1, o_MusicPlayerTrack_modT]
+ ldrb r3, [r1, o_MusicPlayerTrack_flags]
movs r2, 0xF
orrs r3, r2
- strb r3, [r1, #o_MusicPlayerTrack_flags]
+ strb r3, [r1, o_MusicPlayerTrack_flags]
_081DD7AA:
bx r12
thumb_func_end ply_modt
@@ -1043,18 +1043,18 @@ ply_tune:
mov r12, lr
bl ld_r3_tp_adr_i
subs r3, 0x40
- strb r3, [r1, #o_MusicPlayerTrack_tune]
- ldrb r3, [r1, #o_MusicPlayerTrack_flags]
+ strb r3, [r1, o_MusicPlayerTrack_tune]
+ ldrb r3, [r1, o_MusicPlayerTrack_flags]
movs r2, 0xC
orrs r3, r2
- strb r3, [r1, #o_MusicPlayerTrack_flags]
+ strb r3, [r1, o_MusicPlayerTrack_flags]
bx r12
thumb_func_end ply_tune
thumb_func_start ply_port
ply_port:
mov r12, lr
- ldr r2, [r1, #o_MusicPlayerTrack_cmdPtr]
+ ldr r2, [r1, o_MusicPlayerTrack_cmdPtr]
ldrb r3, [r2]
adds r2, 1
ldr r0, =REG_SOUND1CNT_L @ sound register base address
@@ -1072,20 +1072,20 @@ m4aSoundVSync:
@ Exit the function if ident is not ID_NUMBER or ID_NUMBER+1.
ldr r2, lt2_ID_NUMBER
- ldr r3, [r0, #o_SoundInfo_ident]
+ ldr r3, [r0, o_SoundInfo_ident]
subs r3, r2
cmp r3, 1
bhi m4aSoundVSync_Done
@ Decrement the PCM DMA counter. If it reaches 0, we need to do a DMA.
- ldrb r1, [r0, #o_SoundInfo_pcmDmaCounter]
+ ldrb r1, [r0, o_SoundInfo_pcmDmaCounter]
subs r1, 1
- strb r1, [r0, #o_SoundInfo_pcmDmaCounter]
+ strb r1, [r0, o_SoundInfo_pcmDmaCounter]
bgt m4aSoundVSync_Done
@ Reload the PCM DMA counter.
- ldrb r1, [r0, #o_SoundInfo_pcmDmaPeriod]
- strb r1, [r0, #o_SoundInfo_pcmDmaCounter]
+ ldrb r1, [r0, o_SoundInfo_pcmDmaPeriod]
+ strb r1, [r0, o_SoundInfo_pcmDmaCounter]
ldr r2, =REG_DMA1
@@ -1127,18 +1127,18 @@ m4aSoundVSync_Done:
thumb_func_start MPlayMain
MPlayMain:
ldr r2, lt2_ID_NUMBER
- ldr r3, [r0, #o_MusicPlayerInfo_ident]
+ ldr r3, [r0, o_MusicPlayerInfo_ident]
cmp r2, r3
beq _081DD82E
bx lr
_081DD82E:
adds r3, 0x1
- str r3, [r0, #o_MusicPlayerInfo_ident]
+ str r3, [r0, o_MusicPlayerInfo_ident]
push {r0,lr}
- ldr r3, [r0, #o_MusicPlayerInfo_func]
+ ldr r3, [r0, o_MusicPlayerInfo_func]
cmp r3, 0
beq _081DD840
- ldr r0, [r0, #o_MusicPlayerInfo_intp]
+ ldr r0, [r0, o_MusicPlayerInfo_intp]
bl call_r3
_081DD840:
pop {r0}
@@ -1149,7 +1149,7 @@ _081DD840:
mov r7, r11
push {r4-r7}
adds r7, r0, 0
- ldr r0, [r7, #o_MusicPlayerInfo_status]
+ ldr r0, [r7, o_MusicPlayerInfo_status]
cmp r0, 0
bge _081DD858
b _081DDA6C
@@ -1159,18 +1159,18 @@ _081DD858:
mov r8, r0
adds r0, r7, 0
bl FadeOutBody
- ldr r0, [r7, #o_MusicPlayerInfo_status]
+ ldr r0, [r7, o_MusicPlayerInfo_status]
cmp r0, 0
bge _081DD86C
b _081DDA6C
_081DD86C:
- ldrh r0, [r7, #o_MusicPlayerInfo_tempoC]
- ldrh r1, [r7, #o_MusicPlayerInfo_tempoI]
+ ldrh r0, [r7, o_MusicPlayerInfo_tempoC]
+ ldrh r1, [r7, o_MusicPlayerInfo_tempoI]
adds r0, r1
b _081DD9BC
_081DD874:
- ldrb r6, [r7, #o_MusicPlayerInfo_trackCount]
- ldr r5, [r7, #o_MusicPlayerInfo_tracks]
+ ldrb r6, [r7, o_MusicPlayerInfo_trackCount]
+ ldr r5, [r7, o_MusicPlayerInfo_tracks]
movs r3, 0x1
movs r4, 0
_081DD87C:
@@ -1183,7 +1183,7 @@ _081DD886:
mov r10, r3
orrs r4, r3
mov r11, r4
- ldr r4, [r5, #o_MusicPlayerTrack_chan]
+ ldr r4, [r5, o_MusicPlayerTrack_chan]
cmp r4, 0
beq _081DD8BA
_081DD892:
@@ -1209,7 +1209,7 @@ _081DD8B4:
cmp r4, 0
bne _081DD892
_081DD8BA:
- ldrb r3, [r5, #o_MusicPlayerTrack_flags]
+ ldrb r3, [r5, o_MusicPlayerTrack_flags]
movs r0, 0x40
tst r0, r3
beq _081DD938
@@ -1218,33 +1218,33 @@ _081DD8BA:
movs r0, 0x80
strb r0, [r5]
movs r0, 0x2
- strb r0, [r5, #o_MusicPlayerTrack_bendRange]
+ strb r0, [r5, o_MusicPlayerTrack_bendRange]
movs r0, 0x40
- strb r0, [r5, #o_MusicPlayerTrack_volX]
+ strb r0, [r5, o_MusicPlayerTrack_volX]
movs r0, 0x16
- strb r0, [r5, #o_MusicPlayerTrack_lfoSpeed]
+ strb r0, [r5, o_MusicPlayerTrack_lfoSpeed]
movs r0, 0x1
adds r1, r5, 0x6
- strb r0, [r1, #o_MusicPlayerTrack_ToneData_type - 0x6]
+ strb r0, [r1, o_MusicPlayerTrack_ToneData_type - 0x6]
b _081DD938
_081DD8E0:
- ldr r2, [r5, #o_MusicPlayerTrack_cmdPtr]
+ ldr r2, [r5, o_MusicPlayerTrack_cmdPtr]
ldrb r1, [r2]
cmp r1, 0x80
bhs _081DD8EC
- ldrb r1, [r5, #o_MusicPlayerTrack_runningStatus]
+ ldrb r1, [r5, o_MusicPlayerTrack_runningStatus]
b _081DD8F6
_081DD8EC:
adds r2, 0x1
- str r2, [r5, #o_MusicPlayerTrack_cmdPtr]
+ str r2, [r5, o_MusicPlayerTrack_cmdPtr]
cmp r1, 0xBD
bcc _081DD8F6
- strb r1, [r5, #o_MusicPlayerTrack_runningStatus]
+ strb r1, [r5, o_MusicPlayerTrack_runningStatus]
_081DD8F6:
cmp r1, 0xCF
bcc _081DD90C
mov r0, r8
- ldr r3, [r0, #o_SoundInfo_plynote]
+ ldr r3, [r0, o_SoundInfo_plynote]
adds r0, r1, 0
subs r0, 0xCF
adds r1, r7, 0
@@ -1256,15 +1256,15 @@ _081DD90C:
bls _081DD92E
adds r0, r1, 0
subs r0, 0xB1
- strb r0, [r7, #o_MusicPlayerInfo_cmd]
+ strb r0, [r7, o_MusicPlayerInfo_cmd]
mov r3, r8
- ldr r3, [r3, #o_SoundInfo_MPlayJumpTable]
+ ldr r3, [r3, o_SoundInfo_MPlayJumpTable]
lsls r0, 2
ldr r3, [r3, r0]
adds r0, r7, 0
adds r1, r5, 0
bl call_r3
- ldrb r0, [r5, #o_MusicPlayerTrack_flags]
+ ldrb r0, [r5, o_MusicPlayerTrack_flags]
cmp r0, 0
beq _081DD994
b _081DD938
@@ -1273,29 +1273,29 @@ _081DD92E:
subs r1, 0x80
adds r1, r0
ldrb r0, [r1]
- strb r0, [r5, #o_MusicPlayerTrack_wait]
+ strb r0, [r5, o_MusicPlayerTrack_wait]
_081DD938:
- ldrb r0, [r5, #o_MusicPlayerTrack_wait]
+ ldrb r0, [r5, o_MusicPlayerTrack_wait]
cmp r0, 0
beq _081DD8E0
subs r0, 0x1
- strb r0, [r5, #o_MusicPlayerTrack_wait]
- ldrb r1, [r5, #o_MusicPlayerTrack_lfoSpeed]
+ strb r0, [r5, o_MusicPlayerTrack_wait]
+ ldrb r1, [r5, o_MusicPlayerTrack_lfoSpeed]
cmp r1, 0
beq _081DD994
- ldrb r0, [r5, #o_MusicPlayerTrack_mod]
+ ldrb r0, [r5, o_MusicPlayerTrack_mod]
cmp r0, 0
beq _081DD994
- ldrb r0, [r5, #o_MusicPlayerTrack_lfoDelayC]
+ ldrb r0, [r5, o_MusicPlayerTrack_lfoDelayC]
cmp r0, 0
beq _081DD95A
subs r0, 0x1
- strb r0, [r5, #o_MusicPlayerTrack_lfoDelayC]
+ strb r0, [r5, o_MusicPlayerTrack_lfoDelayC]
b _081DD994
_081DD95A:
- ldrb r0, [r5, #o_MusicPlayerTrack_lfoSpeedC]
+ ldrb r0, [r5, o_MusicPlayerTrack_lfoSpeedC]
adds r0, r1
- strb r0, [r5, #o_MusicPlayerTrack_lfoSpeedC]
+ strb r0, [r5, o_MusicPlayerTrack_lfoSpeedC]
adds r1, r0, 0
subs r0, 0x40
lsls r0, 24
@@ -1307,16 +1307,16 @@ _081DD96E:
movs r0, 0x80
subs r2, r0, r1
_081DD972:
- ldrb r0, [r5, #o_MusicPlayerTrack_mod]
+ ldrb r0, [r5, o_MusicPlayerTrack_mod]
muls r0, r2
asrs r2, r0, 6
- ldrb r0, [r5, #o_MusicPlayerTrack_modM]
+ ldrb r0, [r5, o_MusicPlayerTrack_modM]
eors r0, r2
lsls r0, 24
beq _081DD994
- strb r2, [r5, #o_MusicPlayerTrack_modM]
+ strb r2, [r5, o_MusicPlayerTrack_modM]
ldrb r0, [r5]
- ldrb r1, [r5, #o_MusicPlayerTrack_modT]
+ ldrb r1, [r5, o_MusicPlayerTrack_modT]
cmp r1, 0
bne _081DD98E
movs r1, 0xC
@@ -1325,7 +1325,7 @@ _081DD98E:
movs r1, 0x3
_081DD990:
orrs r0, r1
- strb r0, [r5, #o_MusicPlayerTrack_flags]
+ strb r0, [r5, o_MusicPlayerTrack_flags]
_081DD994:
mov r3, r10
mov r4, r11
@@ -1337,29 +1337,29 @@ _081DD998:
lsls r3, 1
b _081DD87C
_081DD9A4:
- ldr r0, [r7, #o_MusicPlayerInfo_clock]
+ ldr r0, [r7, o_MusicPlayerInfo_clock]
adds r0, 0x1
- str r0, [r7, #o_MusicPlayerInfo_clock]
+ str r0, [r7, o_MusicPlayerInfo_clock]
cmp r4, 0
bne _081DD9B6
movs r0, 0x80
lsls r0, 24
- str r0, [r7, #o_MusicPlayerInfo_status]
+ str r0, [r7, o_MusicPlayerInfo_status]
b _081DDA6C
_081DD9B6:
- str r4, [r7, #o_MusicPlayerInfo_status]
- ldrh r0, [r7, #o_MusicPlayerInfo_tempoC]
+ str r4, [r7, o_MusicPlayerInfo_status]
+ ldrh r0, [r7, o_MusicPlayerInfo_tempoC]
subs r0, 0x96
_081DD9BC:
- strh r0, [r7, #o_MusicPlayerInfo_tempoC]
+ strh r0, [r7, o_MusicPlayerInfo_tempoC]
cmp r0, 0x96
bcc _081DD9C4
b _081DD874
_081DD9C4:
- ldrb r2, [r7, #o_MusicPlayerInfo_trackCount]
- ldr r5, [r7, #o_MusicPlayerInfo_tracks]
+ ldrb r2, [r7, o_MusicPlayerInfo_trackCount]
+ ldr r5, [r7, o_MusicPlayerInfo_tracks]
_081DD9C8:
- ldrb r0, [r5, #o_MusicPlayerTrack_flags]
+ ldrb r0, [r5, o_MusicPlayerTrack_flags]
movs r1, 0x80
tst r1, r0
beq _081DDA62
@@ -1370,11 +1370,11 @@ _081DD9C8:
adds r0, r7, 0
adds r1, r5, 0
bl TrkVolPitSet
- ldr r4, [r5, #o_MusicPlayerTrack_chan]
+ ldr r4, [r5, o_MusicPlayerTrack_chan]
cmp r4, 0
beq _081DDA58
_081DD9E6:
- ldrb r1, [r4, #o_SoundChannel_status]
+ ldrb r1, [r4, o_SoundChannel_status]
movs r0, 0xC7
tst r0, r1
bne _081DD9F6
@@ -1382,26 +1382,26 @@ _081DD9E6:
bl ClearChain
b _081DDA52
_081DD9F6:
- ldrb r0, [r4, #o_SoundChannel_type]
+ ldrb r0, [r4, o_SoundChannel_type]
movs r6, 0x7
ands r6, r0
- ldrb r3, [r5, #o_MusicPlayerTrack_flags]
+ ldrb r3, [r5, o_MusicPlayerTrack_flags]
movs r0, 0x3
tst r0, r3
beq _081DDA14
bl ChnVolSetAsm
cmp r6, 0
beq _081DDA14
- ldrb r0, [r4, #o_CgbChannel_mo]
+ ldrb r0, [r4, o_CgbChannel_mo]
movs r1, 0x1
orrs r0, r1
- strb r0, [r4, #o_CgbChannel_mo]
+ strb r0, [r4, o_CgbChannel_mo]
_081DDA14:
- ldrb r3, [r5, #o_MusicPlayerTrack_flags]
+ ldrb r3, [r5, o_MusicPlayerTrack_flags]
movs r0, 0xC
tst r0, r3
beq _081DDA52
- ldrb r1, [r4, #o_SoundChannel_ky]
+ ldrb r1, [r4, o_SoundChannel_ky]
movs r0, 0x8
ldrsb r0, [r5, r0]
adds r2, r1, r0
@@ -1411,32 +1411,32 @@ _081DDA28:
cmp r6, 0
beq _081DDA46
mov r0, r8
- ldr r3, [r0, #o_SoundInfo_MidiKeyToCgbFreq]
+ ldr r3, [r0, o_SoundInfo_MidiKeyToCgbFreq]
adds r1, r2, 0
- ldrb r2, [r5, #o_MusicPlayerTrack_pitM]
+ ldrb r2, [r5, o_MusicPlayerTrack_pitM]
adds r0, r6, 0
bl call_r3
- str r0, [r4, #o_CgbChannel_fr]
- ldrb r0, [r4, #o_CgbChannel_mo]
+ str r0, [r4, o_CgbChannel_fr]
+ ldrb r0, [r4, o_CgbChannel_mo]
movs r1, 0x2
orrs r0, r1
- strb r0, [r4, #o_CgbChannel_mo]
+ strb r0, [r4, o_CgbChannel_mo]
b _081DDA52
_081DDA46:
adds r1, r2, 0
- ldrb r2, [r5, #o_MusicPlayerTrack_pitM]
- ldr r0, [r4, #o_SoundChannel_wav]
+ ldrb r2, [r5, o_MusicPlayerTrack_pitM]
+ ldr r0, [r4, o_SoundChannel_wav]
bl MidiKeyToFreq
- str r0, [r4, #o_SoundChannel_freq]
+ str r0, [r4, o_SoundChannel_freq]
_081DDA52:
- ldr r4, [r4, #o_SoundChannel_np]
+ ldr r4, [r4, o_SoundChannel_np]
cmp r4, 0
bne _081DD9E6
_081DDA58:
- ldrb r0, [r5, #o_MusicPlayerTrack_flags]
+ ldrb r0, [r5, o_MusicPlayerTrack_flags]
movs r1, 0xF0
ands r0, r1
- strb r0, [r5, #o_MusicPlayerTrack_flags]
+ strb r0, [r5, o_MusicPlayerTrack_flags]
mov r2, r9
_081DDA62:
subs r2, 0x1
@@ -1446,7 +1446,7 @@ _081DDA62:
bgt _081DD9C8
_081DDA6C:
ldr r0, lt2_ID_NUMBER
- str r0, [r7, #o_MusicPlayerInfo_ident]
+ str r0, [r7, o_MusicPlayerInfo_ident]
pop {r0-r7}
mov r8, r0
mov r9, r1
@@ -1467,35 +1467,35 @@ lt2_ID_NUMBER: .word ID_NUMBER
TrackStop:
push {r4-r6,lr}
adds r5, r1, 0
- ldrb r1, [r5, #o_MusicPlayerTrack_flags]
+ ldrb r1, [r5, o_MusicPlayerTrack_flags]
movs r0, 0x80
tst r0, r1
beq TrackStop_Done
- ldr r4, [r5, #o_MusicPlayerTrack_chan]
+ ldr r4, [r5, o_MusicPlayerTrack_chan]
cmp r4, 0
beq TrackStop_3
movs r6, 0
TrackStop_Loop:
- ldrb r0, [r4, #o_SoundChannel_status]
+ ldrb r0, [r4, o_SoundChannel_status]
cmp r0, 0
beq TrackStop_2
- ldrb r0, [r4, #o_SoundChannel_type]
+ ldrb r0, [r4, o_SoundChannel_type]
movs r3, 0x7
ands r0, r3
beq TrackStop_1
ldr r3, =SOUND_INFO_PTR
ldr r3, [r3]
- ldr r3, [r3, #o_SoundInfo_CgbOscOff]
+ ldr r3, [r3, o_SoundInfo_CgbOscOff]
bl call_r3
TrackStop_1:
- strb r6, [r4, #o_SoundChannel_status]
+ strb r6, [r4, o_SoundChannel_status]
TrackStop_2:
- str r6, [r4, #o_SoundChannel_track]
- ldr r4, [r4, #o_SoundChannel_np]
+ str r6, [r4, o_SoundChannel_track]
+ ldr r4, [r4, o_SoundChannel_np]
cmp r4, 0
bne TrackStop_Loop
TrackStop_3:
- str r4, [r5, #o_MusicPlayerTrack_chan]
+ str r4, [r5, o_MusicPlayerTrack_chan]
TrackStop_Done:
pop {r4-r6}
pop {r0}
@@ -1550,41 +1550,41 @@ ply_note:
ldr r1, =gClockTable
adds r0, r1
ldrb r0, [r0]
- strb r0, [r5, #o_MusicPlayerTrack_gateTime]
- ldr r3, [r5, #o_MusicPlayerTrack_cmdPtr]
+ strb r0, [r5, o_MusicPlayerTrack_gateTime]
+ ldr r3, [r5, o_MusicPlayerTrack_cmdPtr]
ldrb r0, [r3]
cmp r0, 0x80
bhs _081DDB46
- strb r0, [r5, #o_MusicPlayerTrack_key]
+ strb r0, [r5, o_MusicPlayerTrack_key]
adds r3, 0x1
ldrb r0, [r3]
cmp r0, 0x80
bhs _081DDB44
- strb r0, [r5, #o_MusicPlayerTrack_velocity]
+ strb r0, [r5, o_MusicPlayerTrack_velocity]
adds r3, 0x1
ldrb r0, [r3]
cmp r0, 0x80
bhs _081DDB44
- ldrb r1, [r5, #o_MusicPlayerTrack_gateTime]
+ ldrb r1, [r5, o_MusicPlayerTrack_gateTime]
adds r1, r0
- strb r1, [r5, #o_MusicPlayerTrack_gateTime]
+ strb r1, [r5, o_MusicPlayerTrack_gateTime]
adds r3, 0x1
_081DDB44:
- str r3, [r5, #o_MusicPlayerTrack_cmdPtr]
+ str r3, [r5, o_MusicPlayerTrack_cmdPtr]
_081DDB46:
movs r0, 0
str r0, [sp, 0x14]
adds r4, r5, 0
- adds r4, #o_MusicPlayerTrack_ToneData_type
+ adds r4, o_MusicPlayerTrack_ToneData_type
ldrb r2, [r4]
movs r0, TONEDATA_TYPE_RHY | TONEDATA_TYPE_SPL
tst r0, r2
beq _081DDB98
- ldrb r3, [r5, #o_MusicPlayerTrack_key]
+ ldrb r3, [r5, o_MusicPlayerTrack_key]
movs r0, TONEDATA_TYPE_SPL
tst r0, r2
beq _081DDB66
- ldr r1, [r5, #o_MusicPlayerTrack_ToneData_keySplitTable]
+ ldr r1, [r5, o_MusicPlayerTrack_ToneData_keySplitTable]
adds r1, r3
ldrb r0, [r1]
b _081DDB68
@@ -1594,7 +1594,7 @@ _081DDB68:
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
- ldr r0, [r5, #o_MusicPlayerTrack_ToneData_wav]
+ ldr r0, [r5, o_MusicPlayerTrack_ToneData_wav]
adds r1, r0
mov r9, r1
mov r6, r9
@@ -1787,7 +1787,7 @@ _081DDCBC:
bl call_r3
b _081DDCDC
_081DDCCE:
- ldr r0, [r5, #o_MusicPlayerTrack_unk_3C]
+ ldr r0, [r5, o_MusicPlayerTrack_unk_3C]
str r0, [r4, 0x18]
ldrb r2, [r5, 0x9]
adds r1, r3, 0
@@ -1816,37 +1816,37 @@ _081DDCEA:
thumb_func_start ply_endtie
ply_endtie:
push {r4,r5}
- ldr r2, [r1, #o_MusicPlayerTrack_cmdPtr]
+ ldr r2, [r1, o_MusicPlayerTrack_cmdPtr]
ldrb r3, [r2]
cmp r3, 0x80
bhs _081DDD16
- strb r3, [r1, #o_MusicPlayerTrack_key]
+ strb r3, [r1, o_MusicPlayerTrack_key]
adds r2, 0x1
- str r2, [r1, #o_MusicPlayerTrack_cmdPtr]
+ str r2, [r1, o_MusicPlayerTrack_cmdPtr]
b _081DDD18
_081DDD16:
- ldrb r3, [r1, #o_MusicPlayerTrack_key]
+ ldrb r3, [r1, o_MusicPlayerTrack_key]
_081DDD18:
- ldr r1, [r1, #o_MusicPlayerTrack_chan]
+ ldr r1, [r1, o_MusicPlayerTrack_chan]
cmp r1, 0
beq _081DDD40
movs r4, 0x83
movs r5, 0x40
_081DDD22:
- ldrb r2, [r1, #o_SoundChannel_status]
+ ldrb r2, [r1, o_SoundChannel_status]
tst r2, r4
beq _081DDD3A
tst r2, r5
bne _081DDD3A
- ldrb r0, [r1, #o_SoundChannel_mk]
+ ldrb r0, [r1, o_SoundChannel_mk]
cmp r0, r3
bne _081DDD3A
movs r0, 0x40
orrs r2, r0
- strb r2, [r1, #o_SoundChannel_status]
+ strb r2, [r1, o_SoundChannel_status]
b _081DDD40
_081DDD3A:
- ldr r1, [r1, #o_SoundChannel_np]
+ ldr r1, [r1, o_SoundChannel_np]
cmp r1, 0
bne _081DDD22
_081DDD40:
@@ -1857,9 +1857,9 @@ _081DDD40:
thumb_func_start clear_modM
clear_modM:
movs r2, 0
- strb r2, [r1, #o_MusicPlayerTrack_modM]
- strb r2, [r1, #o_MusicPlayerTrack_lfoSpeedC]
- ldrb r2, [r1, #o_MusicPlayerTrack_modT]
+ strb r2, [r1, o_MusicPlayerTrack_modM]
+ strb r2, [r1, o_MusicPlayerTrack_lfoSpeedC]
+ ldrb r2, [r1, o_MusicPlayerTrack_modT]
cmp r2, 0
bne _081DDD54
movs r2, 0xC
@@ -1867,17 +1867,17 @@ clear_modM:
_081DDD54:
movs r2, 0x3
_081DDD56:
- ldrb r3, [r1, #o_MusicPlayerTrack_flags]
+ ldrb r3, [r1, o_MusicPlayerTrack_flags]
orrs r3, r2
- strb r3, [r1, #o_MusicPlayerTrack_flags]
+ strb r3, [r1, o_MusicPlayerTrack_flags]
bx lr
thumb_func_end clear_modM
thumb_func_start ld_r3_tp_adr_i
ld_r3_tp_adr_i_unchecked:
- ldr r2, [r1, #o_MusicPlayerTrack_cmdPtr]
+ ldr r2, [r1, o_MusicPlayerTrack_cmdPtr]
adds r3, r2, 1
- str r3, [r1, #o_MusicPlayerTrack_cmdPtr]
+ str r3, [r1, o_MusicPlayerTrack_cmdPtr]
ldrb r3, [r2]
bx lr
thumb_func_end ld_r3_tp_adr_i
@@ -1886,7 +1886,7 @@ ld_r3_tp_adr_i_unchecked:
ply_lfos:
mov r12, lr
bl ld_r3_tp_adr_i_unchecked
- strb r3, [r1, #o_MusicPlayerTrack_lfoSpeed]
+ strb r3, [r1, o_MusicPlayerTrack_lfoSpeed]
cmp r3, 0
bne _081DDD7C
bl clear_modM
@@ -1898,7 +1898,7 @@ _081DDD7C:
ply_mod:
mov r12, lr
bl ld_r3_tp_adr_i_unchecked
- strb r3, [r1, #o_MusicPlayerTrack_mod]
+ strb r3, [r1, o_MusicPlayerTrack_mod]
cmp r3, 0
bne _081DDD90
bl clear_modM
diff --git a/src/m4a_tables.c b/src/m4a_tables.c
index dfd285b1f..9a4ea32e6 100644
--- a/src/m4a_tables.c
+++ b/src/m4a_tables.c
@@ -83,7 +83,7 @@ const u8 gScaleTable[] =
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B,
};
-const u32 gFreqTable[12] =
+const u32 gFreqTable[] =
{
2147483648u,
2275179671u,
@@ -99,7 +99,7 @@ const u32 gFreqTable[12] =
4053909305u,
};
-const u16 gPcmSamplesPerVBlankTable[12] =
+const u16 gPcmSamplesPerVBlankTable[] =
{
96,
132,
@@ -130,7 +130,7 @@ const u8 gCgbScaleTable[] =
0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB,
};
-const s16 gCgbFreqTable[12] =
+const s16 gCgbFreqTable[] =
{
-2004,
-1891,
diff --git a/src/mail.c b/src/mail.c
index 55bc9ed00..04464f06b 100644
--- a/src/mail.c
+++ b/src/mail.c
@@ -16,7 +16,6 @@
#include "gpu_regs.h"
#include "bg.h"
#include "pokemon_icon.h"
-#include "constants/species.h"
#include "malloc.h"
#include "easy_chat.h"
#include "constants/rgb.h"
diff --git a/src/mail_data.c b/src/mail_data.c
index b0b05e8fe..e0553af99 100644
--- a/src/mail_data.c
+++ b/src/mail_data.c
@@ -3,7 +3,6 @@
#include "constants/items.h"
#include "pokemon.h"
#include "pokemon_icon.h"
-#include "constants/species.h"
#include "text.h"
#include "international_string_util.h"
diff --git a/src/main.c b/src/main.c
index b3b76b1fb..9fd1d0a35 100644
--- a/src/main.c
+++ b/src/main.c
@@ -81,27 +81,13 @@ void InitIntrHandlers(void);
static void WaitForVBlank(void);
void EnableVCountIntrAtLine150(void);
+#define B_START_SELECT (B_BUTTON | START_BUTTON | SELECT_BUTTON)
+
void AgbMain()
{
-#if MODERN
// Modern compilers are liberal with the stack on entry to this function,
// so RegisterRamReset may crash if it resets IWRAM.
- RegisterRamReset(RESET_ALL & ~RESET_IWRAM);
- asm("mov\tr1, #0xC0\n"
- "\tlsl\tr1, r1, #0x12\n"
- "\tmov r2, #0xFC\n"
- "\tlsl r2, r2, #0x7\n"
- "\tadd\tr2, r1, r2\n"
- "\tmov\tr0, #0\n"
- "\tmov\tr3, r0\n"
- "\tmov\tr4, r0\n"
- "\tmov\tr5, r0\n"
- ".LCU0:\n"
- "\tstmia r1!, {r0, r3, r4, r5}\n"
- "\tcmp\tr1, r2\n"
- "\tbcc\t.LCU0\n"
- );
-#else
+#if !MODERN
RegisterRamReset(RESET_ALL);
#endif //MODERN
*(vu16 *)BG_PLTT = 0x7FFF;
@@ -134,11 +120,9 @@ void AgbMain()
{
ReadKeys();
- if (!gSoftResetDisabled
- && JOY_HELD_RAW(A_BUTTON)
- && JOY_HELD_RAW(B_BUTTON)
- && JOY_HELD_RAW(START_BUTTON)
- && JOY_HELD_RAW(SELECT_BUTTON)) //The reset key combo A + B + START + SELECT
+ if (gSoftResetDisabled == FALSE
+ && (gMain.heldKeysRaw & A_BUTTON)
+ && (gMain.heldKeysRaw & B_START_SELECT) == B_START_SELECT)
{
rfu_REQ_stopMode();
rfu_waitREQComplete();
@@ -262,7 +246,9 @@ static void ReadKeys(void)
if (keyInput != 0 && gMain.heldKeys == keyInput)
{
- if (--gMain.keyRepeatCounter == 0)
+ gMain.keyRepeatCounter--;
+
+ if (gMain.keyRepeatCounter == 0)
{
gMain.newAndRepeatedKeys = keyInput;
gMain.keyRepeatCounter = gKeyRepeatContinueDelay;
@@ -341,7 +327,7 @@ static void VBlankIntr(void)
{
if (gWirelessCommType != 0)
RfuVSync();
- else if (!gLinkVSyncDisabled)
+ else if (gLinkVSyncDisabled == FALSE)
LinkVSync();
gMain.vblankCounter1++;
diff --git a/src/main_menu.c b/src/main_menu.c
index e8403cdb1..5b39b6d45 100644
--- a/src/main_menu.c
+++ b/src/main_menu.c
@@ -3,7 +3,6 @@
#include "bg.h"
#include "constants/rgb.h"
#include "constants/songs.h"
-#include "constants/species.h"
#include "constants/trainers.h"
#include "decompress.h"
#include "event_data.h"
diff --git a/src/match_call.c b/src/match_call.c
index 1899eabf0..a39739f76 100644
--- a/src/match_call.c
+++ b/src/match_call.c
@@ -32,7 +32,6 @@
#include "constants/maps.h"
#include "constants/region_map_sections.h"
#include "constants/songs.h"
-#include "constants/species.h"
#include "constants/trainers.h"
struct MatchCallState
@@ -1335,7 +1334,7 @@ static void InitMatchCallTextPrinter(int windowId, const u8 *str)
printerTemplate.currentY = 1;
printerTemplate.letterSpacing = 0;
printerTemplate.lineSpacing = 0;
- printerTemplate.style = 0;
+ printerTemplate.unk = 0;
printerTemplate.fgColor = 10;
printerTemplate.bgColor = 8;
printerTemplate.shadowColor = 14;
@@ -1774,7 +1773,7 @@ static int GetNumOwnedBadges(void)
static bool32 sub_8196D74(int matchCallId)
{
int dayCount;
- u32 otId;
+ int otId;
u16 easyChatWord;
int numRematchTrainersFought;
int var0, var1, var2;
diff --git a/src/menu.c b/src/menu.c
index 9c5dec024..dca8adc2d 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -25,7 +25,7 @@
#define STD_WINDOW_PALETTE_NUM 14
#define STD_WINDOW_BASE_TILE_NUM 0x214
-struct MoveMenuInfoIcon
+struct MenuInfoIcon
{
u8 width;
u8 height;
@@ -98,34 +98,34 @@ const u16 gUnknown_0860F0B0[] = INCBIN_U16("graphics/interface/860F0B0.gbapal");
const u8 sTextColors[] = { TEXT_DYNAMIC_COLOR_6, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY };
// Table of move info icon offsets in graphics/interface_fr/menu.png
-const struct MoveMenuInfoIcon gMoveMenuInfoIcons[] =
+static const struct MenuInfoIcon sMenuInfoIcons[] =
{ // { width, height, offset }
- { 12, 12, 0x00 }, // Unused
- { 32, 12, 0x20 }, // Normal icon
- { 32, 12, 0x64 }, // Fight icon
- { 32, 12, 0x60 }, // Flying icon
- { 32, 12, 0x80 }, // Poison icon
- { 32, 12, 0x48 }, // Ground icon
- { 32, 12, 0x44 }, // Rock icon
- { 32, 12, 0x6C }, // Bug icon
- { 32, 12, 0x68 }, // Ghost icon
- { 32, 12, 0x88 }, // Steel icon
- { 32, 12, 0xA4 }, // ??? (Mystery) icon
- { 32, 12, 0x24 }, // Fire icon
- { 32, 12, 0x28 }, // Water icon
- { 32, 12, 0x2C }, // Grass icon
- { 32, 12, 0x40 }, // Electric icon
- { 32, 12, 0x84 }, // Psychic icon
- { 32, 12, 0x4C }, // Ice icon
- { 32, 12, 0xA0 }, // Dragon icon
- { 32, 12, 0x8C }, // Dark icon
- { 42, 12, 0xA8 }, // -Type- icon
- { 42, 12, 0xC0 }, // -Power- icon
- { 42, 12, 0xC8 }, // -Accuracy- icon
- { 42, 12, 0xE0 }, // -PP- icon
- { 42, 12, 0xE8 }, // -Effect- icon
- { 8, 8, 0xAE }, // Unused (Small white pokeball)
- { 8, 8, 0xAF }, // Unused (Small dark pokeball)
+ { 12, 12, 0x00 }, // Unused
+ [TYPE_NORMAL + 1] = { 32, 12, 0x20 },
+ [TYPE_FIGHTING + 1] = { 32, 12, 0x64 },
+ [TYPE_FLYING + 1] = { 32, 12, 0x60 },
+ [TYPE_POISON + 1] = { 32, 12, 0x80 },
+ [TYPE_GROUND + 1] = { 32, 12, 0x48 },
+ [TYPE_ROCK + 1] = { 32, 12, 0x44 },
+ [TYPE_BUG + 1] = { 32, 12, 0x6C },
+ [TYPE_GHOST + 1] = { 32, 12, 0x68 },
+ [TYPE_STEEL + 1] = { 32, 12, 0x88 },
+ [TYPE_MYSTERY + 1] = { 32, 12, 0xA4 },
+ [TYPE_FIRE + 1] = { 32, 12, 0x24 },
+ [TYPE_WATER + 1] = { 32, 12, 0x28 },
+ [TYPE_GRASS + 1] = { 32, 12, 0x2C },
+ [TYPE_ELECTRIC + 1] = { 32, 12, 0x40 },
+ [TYPE_PSYCHIC + 1] = { 32, 12, 0x84 },
+ [TYPE_ICE + 1] = { 32, 12, 0x4C },
+ [TYPE_DRAGON + 1] = { 32, 12, 0xA0 },
+ [TYPE_DARK + 1] = { 32, 12, 0x8C },
+ [MENU_INFO_ICON_TYPE] = { 42, 12, 0xA8 },
+ [MENU_INFO_ICON_POWER] = { 42, 12, 0xC0 },
+ [MENU_INFO_ICON_ACCURACY] = { 42, 12, 0xC8 },
+ [MENU_INFO_ICON_PP] = { 42, 12, 0xE0 },
+ [MENU_INFO_ICON_EFFECT] = { 42, 12, 0xE8 }, // Unused
+ [MENU_INFO_ICON_BALL_RED] = { 8, 8, 0xAE }, // For placed decorations in Secret Base
+ [MENU_INFO_ICON_BALL_BLUE] = { 8, 8, 0xAF }, // For placed decorations in player's room
};
@@ -180,7 +180,7 @@ u16 AddTextPrinterParameterized2(u8 windowId, u8 fontId, const u8 *str, u8 speed
printer.currentY = 1;
printer.letterSpacing = 0;
printer.lineSpacing = 0;
- printer.style = 0;
+ printer.unk = 0;
printer.fgColor = fgColor;
printer.bgColor = bgColor;
printer.shadowColor = shadowColor;
@@ -1049,13 +1049,13 @@ s8 ProcessMenuInput_other(void)
{
return MENU_B_PRESSED;
}
- else if (JOY_REPEAT(DPAD_ANY) == DPAD_UP)
+ else if ((JOY_REPEAT(DPAD_ANY)) == DPAD_UP)
{
PlaySE(SE_SELECT);
Menu_MoveCursor(-1);
return MENU_NOTHING_CHOSEN;
}
- else if (JOY_REPEAT(DPAD_ANY) == DPAD_DOWN)
+ else if ((JOY_REPEAT(DPAD_ANY)) == DPAD_DOWN)
{
PlaySE(SE_SELECT);
Menu_MoveCursor(1);
@@ -1075,17 +1075,17 @@ s8 Menu_ProcessInputNoWrapAround_other(void)
PlaySE(SE_SELECT);
return sMenu.cursorPos;
}
- if (JOY_NEW(B_BUTTON))
+ else if (JOY_NEW(B_BUTTON))
{
return MENU_B_PRESSED;
}
- if (JOY_REPEAT(DPAD_ANY) == DPAD_UP)
+ else if (JOY_REPEAT(DPAD_ANY) == DPAD_UP)
{
if (oldPos != Menu_MoveCursorNoWrapAround(-1))
PlaySE(SE_SELECT);
return MENU_NOTHING_CHOSEN;
}
- if (JOY_REPEAT(DPAD_ANY) == DPAD_DOWN)
+ else if (JOY_REPEAT(DPAD_ANY) == DPAD_DOWN)
{
if (oldPos != Menu_MoveCursorNoWrapAround(1))
PlaySE(SE_SELECT);
@@ -1130,7 +1130,7 @@ void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 l
printer.fgColor = GetFontAttribute(fontId, FONTATTR_COLOR_FOREGROUND);
printer.bgColor = GetFontAttribute(fontId, FONTATTR_COLOR_BACKGROUND);
printer.shadowColor = GetFontAttribute(fontId, FONTATTR_COLOR_SHADOW);
- printer.style = GetFontAttribute(fontId, FONTATTR_STYLE);
+ printer.unk = GetFontAttribute(fontId, FONTATTR_UNKNOWN);
printer.letterSpacing = letterSpacing;
printer.lineSpacing = GetFontAttribute(fontId, FONTATTR_LINE_SPACING);
printer.x = left;
@@ -1194,7 +1194,7 @@ void sub_8198AF8(const struct WindowTemplate *window, u8 fontId, u8 left, u8 top
printer.fgColor = GetFontAttribute(fontId, FONTATTR_COLOR_FOREGROUND);
printer.bgColor = GetFontAttribute(fontId, FONTATTR_COLOR_BACKGROUND);
printer.shadowColor = GetFontAttribute(fontId, FONTATTR_COLOR_SHADOW);
- printer.style = GetFontAttribute(fontId, FONTATTR_STYLE);
+ printer.unk = GetFontAttribute(fontId, FONTATTR_UNKNOWN);
printer.letterSpacing = GetFontAttribute(fontId, FONTATTR_LETTER_SPACING);
printer.lineSpacing = GetFontAttribute(fontId, FONTATTR_LINE_SPACING);
@@ -1252,7 +1252,7 @@ void sub_8198DBC(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 itemCount, u
printer.fgColor = GetFontAttribute(fontId, FONTATTR_COLOR_FOREGROUND);
printer.bgColor = GetFontAttribute(fontId, FONTATTR_COLOR_BACKGROUND);
printer.shadowColor = GetFontAttribute(fontId, FONTATTR_COLOR_SHADOW);
- printer.style = GetFontAttribute(fontId, FONTATTR_STYLE);
+ printer.unk = GetFontAttribute(fontId, FONTATTR_UNKNOWN);
printer.letterSpacing = GetFontAttribute(fontId, FONTATTR_LETTER_SPACING);
printer.lineSpacing = GetFontAttribute(fontId, FONTATTR_LINE_SPACING);
@@ -1496,25 +1496,25 @@ s8 sub_81993D8(void)
{
return MENU_B_PRESSED;
}
- else if (JOY_REPEAT(DPAD_ANY) == DPAD_UP)
+ else if ((JOY_REPEAT(DPAD_ANY)) == DPAD_UP)
{
PlaySE(SE_SELECT);
ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_UP);
return MENU_NOTHING_CHOSEN;
}
- else if (JOY_REPEAT(DPAD_ANY) == DPAD_DOWN)
+ else if ((JOY_REPEAT(DPAD_ANY)) == DPAD_DOWN)
{
PlaySE(SE_SELECT);
ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_NONE, MENU_CURSOR_DELTA_DOWN);
return MENU_NOTHING_CHOSEN;
}
- else if (JOY_REPEAT(DPAD_ANY) == DPAD_LEFT || GetLRKeysPressedAndHeld() == MENU_L_PRESSED)
+ else if ((JOY_REPEAT(DPAD_ANY)) == DPAD_LEFT || GetLRKeysPressedAndHeld() == MENU_L_PRESSED)
{
PlaySE(SE_SELECT);
ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_LEFT, MENU_CURSOR_DELTA_NONE);
return MENU_NOTHING_CHOSEN;
}
- else if (JOY_REPEAT(DPAD_ANY) == DPAD_RIGHT || GetLRKeysPressedAndHeld() == MENU_R_PRESSED)
+ else if ((JOY_REPEAT(DPAD_ANY)) == DPAD_RIGHT || GetLRKeysPressedAndHeld() == MENU_R_PRESSED)
{
PlaySE(SE_SELECT);
ChangeListMenuCursorPosition(MENU_CURSOR_DELTA_RIGHT, MENU_CURSOR_DELTA_NONE);
@@ -1538,25 +1538,25 @@ s8 sub_8199484(void)
{
return MENU_B_PRESSED;
}
- else if (JOY_REPEAT(DPAD_ANY) == DPAD_UP)
+ else if ((JOY_REPEAT(DPAD_ANY)) == DPAD_UP)
{
if (oldPos != ChangeGridMenuCursorPosition(0, -1))
PlaySE(SE_SELECT);
return MENU_NOTHING_CHOSEN;
}
- else if (JOY_REPEAT(DPAD_ANY) == DPAD_DOWN)
+ else if ((JOY_REPEAT(DPAD_ANY)) == DPAD_DOWN)
{
if (oldPos != ChangeGridMenuCursorPosition(0, 1))
PlaySE(SE_SELECT);
return MENU_NOTHING_CHOSEN;
}
- else if (JOY_REPEAT(DPAD_ANY) == DPAD_LEFT || GetLRKeysPressedAndHeld() == MENU_L_PRESSED)
+ else if ((JOY_REPEAT(DPAD_ANY)) == DPAD_LEFT || GetLRKeysPressedAndHeld() == MENU_L_PRESSED)
{
if (oldPos != ChangeGridMenuCursorPosition(-1, 0))
PlaySE(SE_SELECT);
return MENU_NOTHING_CHOSEN;
}
- else if (JOY_REPEAT(DPAD_ANY) == DPAD_RIGHT || GetLRKeysPressedAndHeld() == MENU_R_PRESSED)
+ else if ((JOY_REPEAT(DPAD_ANY)) == DPAD_RIGHT || GetLRKeysPressedAndHeld() == MENU_R_PRESSED)
{
if (oldPos != ChangeGridMenuCursorPosition(1, 0))
PlaySE(SE_SELECT);
@@ -1616,7 +1616,7 @@ void sub_81995E4(u8 windowId, u8 itemCount, const struct MenuAction *strs, const
printer.fgColor = GetFontAttribute(1, FONTATTR_COLOR_FOREGROUND);
printer.bgColor = GetFontAttribute(1, FONTATTR_COLOR_BACKGROUND);
printer.shadowColor = GetFontAttribute(1, FONTATTR_COLOR_SHADOW);
- printer.style = GetFontAttribute(1, FONTATTR_STYLE);
+ printer.unk = GetFontAttribute(1, FONTATTR_UNKNOWN);
printer.letterSpacing = 0;
printer.lineSpacing = 0;
printer.x = 8;
@@ -1650,7 +1650,7 @@ void CreateYesNoMenu(const struct WindowTemplate *window, u16 baseTileNum, u8 pa
printer.fgColor = GetFontAttribute(1, FONTATTR_COLOR_FOREGROUND);
printer.bgColor = GetFontAttribute(1, FONTATTR_COLOR_BACKGROUND);
printer.shadowColor = GetFontAttribute(1, FONTATTR_COLOR_SHADOW);
- printer.style = GetFontAttribute(1, FONTATTR_STYLE);
+ printer.unk = GetFontAttribute(1, FONTATTR_UNKNOWN);
printer.letterSpacing = 0;
printer.lineSpacing = 0;
@@ -1681,7 +1681,7 @@ void sub_819983C(u8 windowId, u8 a4, u8 itemCount, u8 itemCount2, const struct M
printer.fgColor = GetFontAttribute(1, FONTATTR_COLOR_FOREGROUND);
printer.bgColor = GetFontAttribute(1, FONTATTR_COLOR_BACKGROUND);
printer.shadowColor = GetFontAttribute(1, FONTATTR_COLOR_SHADOW);
- printer.style = GetFontAttribute(1, FONTATTR_STYLE);
+ printer.unk = GetFontAttribute(1, FONTATTR_UNKNOWN);
printer.letterSpacing = 0;
printer.lineSpacing = 0;
@@ -1949,7 +1949,7 @@ void AddTextPrinterParameterized3(u8 windowId, u8 fontId, u8 left, u8 top, const
printer.currentY = printer.y;
printer.letterSpacing = GetFontAttribute(fontId, 2);
printer.lineSpacing = GetFontAttribute(fontId, 3);
- printer.style = 0;
+ printer.unk = 0;
printer.fgColor = color[1];
printer.bgColor = color[0];
printer.shadowColor = color[2];
@@ -1970,7 +1970,7 @@ void AddTextPrinterParameterized4(u8 windowId, u8 fontId, u8 left, u8 top, u8 le
printer.currentY = printer.y;
printer.letterSpacing = letterSpacing;
printer.lineSpacing = lineSpacing;
- printer.style = 0;
+ printer.unk = 0;
printer.fgColor = color[1];
printer.bgColor = color[0];
printer.shadowColor = color[2];
@@ -1991,7 +1991,7 @@ void AddTextPrinterParameterized5(u8 windowId, u8 fontId, const u8 *str, u8 left
printer.currentY = top;
printer.letterSpacing = letterSpacing;
printer.lineSpacing = lineSpacing;
- printer.style = 0;
+ printer.unk = 0;
printer.fgColor = GetFontAttribute(fontId, 5);
printer.bgColor = GetFontAttribute(fontId, 6);
@@ -2119,9 +2119,9 @@ void ListMenuLoadStdPalAt(u8 palOffset, u8 palId)
LoadPalette(palette, palOffset, 0x20);
}
-void blit_move_info_icon(u8 windowId, u8 iconId, u16 x, u16 y)
+void BlitMenuInfoIcon(u8 windowId, u8 iconId, u16 x, u16 y)
{
- BlitBitmapRectToWindow(windowId, gFireRedMenuElements_Gfx + gMoveMenuInfoIcons[iconId].offset * 32, 0, 0, 128, 128, x, y, gMoveMenuInfoIcons[iconId].width, gMoveMenuInfoIcons[iconId].height);
+ BlitBitmapRectToWindow(windowId, gFireRedMenuElements_Gfx + sMenuInfoIcons[iconId].offset * 32, 0, 0, 128, 128, x, y, sMenuInfoIcons[iconId].width, sMenuInfoIcons[iconId].height);
}
void BufferSaveMenuText(u8 textId, u8 *dest, u8 color)
diff --git a/src/menu_helpers.c b/src/menu_helpers.c
index c80e52d27..b31d84a1e 100644
--- a/src/menu_helpers.c
+++ b/src/menu_helpers.c
@@ -183,7 +183,7 @@ bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1)
{
s16 valBefore = (*arg0);
- if (JOY_REPEAT(DPAD_ANY) == DPAD_UP)
+ if ((JOY_REPEAT(DPAD_ANY)) == DPAD_UP)
{
(*arg0)++;
if ((*arg0) > arg1)
@@ -199,7 +199,7 @@ bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1)
return TRUE;
}
}
- else if (JOY_REPEAT(DPAD_ANY) == DPAD_DOWN)
+ else if ((JOY_REPEAT(DPAD_ANY)) == DPAD_DOWN)
{
(*arg0)--;
if ((*arg0) <= 0)
@@ -215,7 +215,7 @@ bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1)
return TRUE;
}
}
- else if (JOY_REPEAT(DPAD_ANY) == DPAD_RIGHT)
+ else if ((JOY_REPEAT(DPAD_ANY)) == DPAD_RIGHT)
{
(*arg0) += 10;
if ((*arg0) > arg1)
@@ -231,7 +231,7 @@ bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1)
return TRUE;
}
}
- else if (JOY_REPEAT(DPAD_ANY) == DPAD_LEFT)
+ else if ((JOY_REPEAT(DPAD_ANY)) == DPAD_LEFT)
{
(*arg0) -= 10;
if ((*arg0) <= 0)
diff --git a/src/menu_specialized.c b/src/menu_specialized.c
index 495f9aa10..c1088d9f7 100644
--- a/src/menu_specialized.c
+++ b/src/menu_specialized.c
@@ -25,7 +25,6 @@
#include "window.h"
#include "constants/berry.h"
#include "constants/songs.h"
-#include "constants/species.h"
#include "gba/io_reg.h"
extern const struct CompressedSpriteSheet gMonFrontPicTable[];
@@ -250,7 +249,7 @@ void sub_81D1D04(u8 a0)
sUnknown_0203CF48[a0] = 0xFF;
}
-static u8 sub_81D1D34(u8 a0) // unused
+static u8 sub_81D1D34(u8 a0)
{
return sUnknown_0203CF48[a0];
}
@@ -320,7 +319,7 @@ void sub_81D1EC0(void)
Free(sUnknown_0203CF4C);
}
-void sub_81D1ED4(struct ConditionGraph *a0)
+void InitConditionGraphData(struct ConditionGraph *graph)
{
u8 i, j;
@@ -328,22 +327,22 @@ void sub_81D1ED4(struct ConditionGraph *a0)
{
for (i = 0; i < 10; i++)
{
- a0->unk64[i][j].unk0 = 0;
- a0->unk64[i][j].unk2 = 0;
+ graph->unk64[i][j].unk0 = 0;
+ graph->unk64[i][j].unk2 = 0;
}
for (i = 0; i < 4; i++)
{
- a0->unk0[i][j] = 0;
- a0->unk14[i][j].unk0 = 0x9B;
- a0->unk14[i][j].unk2 = 0x5B;
+ graph->stat[i][j] = 0;
+ graph->unk14[i][j].unk0 = 155;
+ graph->unk14[i][j].unk2 = 91;
}
- a0->unk12C[j].unk0 = 0;
- a0->unk12C[j].unk2 = 0;
+ graph->unk12C[j].unk0 = 0;
+ graph->unk12C[j].unk2 = 0;
}
- a0->unk354 = 0;
- a0->unk352 = 0;
+ graph->unk354 = 0;
+ graph->unk352 = 0;
}
void sub_81D1F84(struct ConditionGraph *graph, struct UnknownSubStruct_81D1ED4 *arg1, struct UnknownSubStruct_81D1ED4 *arg2)
@@ -351,7 +350,7 @@ void sub_81D1F84(struct ConditionGraph *graph, struct UnknownSubStruct_81D1ED4 *
u16 i, j;
s32 r5, r6;
- for (i = 0; i < 5; i++)
+ for (i = 0; i < FLAVOR_COUNT; i++)
{
r5 = arg1[i].unk0 << 8;
r6 = ((arg2[i].unk0 - arg1[i].unk0) << 8) / 10;
@@ -388,25 +387,25 @@ bool32 TransitionConditionGraph(struct ConditionGraph *graph)
}
}
-void sub_81D20AC(struct ConditionGraph *a0)
+void InitConditionGraphState(struct ConditionGraph *graph)
{
- a0->unk355 = 0;
+ graph->state = 0;
}
-bool8 sub_81D20BC(struct ConditionGraph *graph)
+bool8 SetupConditionGraphScanlineParams(struct ConditionGraph *graph)
{
struct ScanlineEffectParams params;
- switch (graph->unk355)
+ switch (graph->state)
{
case 0:
ScanlineEffect_Clear();
- graph->unk355++;
+ graph->state++;
return TRUE;
case 1:
params = sConditionGraphScanline;
ScanlineEffect_SetParams(params);
- graph->unk355++;
+ graph->state++;
return FALSE;
default:
return FALSE;
@@ -432,7 +431,7 @@ void sub_81D2108(struct ConditionGraph *graph)
graph->unk354 = 0;
}
-void sub_81D21DC(u8 bg)
+void SetConditionGraphIOWindows(u8 bg)
{
u32 flags;
@@ -904,60 +903,60 @@ static u8 *GetConditionMenuMonString(u8 *dst, u16 boxId, u16 monId)
}
else
{
- boxMon = GetBoxedMonPtr(box, mon);
+ boxMon = GetBoxedMonPtr(box, mon);
gender = GetBoxMonGender(boxMon);
level = GetLevelFromBoxMonExp(boxMon);
}
- if ((species == SPECIES_NIDORAN_F || species == SPECIES_NIDORAN_M) && !StringCompare(dst, gSpeciesNames[species]))
- gender = MON_GENDERLESS;
+ if ((species == SPECIES_NIDORAN_F || species == SPECIES_NIDORAN_M) && !StringCompare(dst, gSpeciesNames[species]))
+ gender = MON_GENDERLESS;
- for (str = dst; *str != EOS; str++)
- ;
+ for (str = dst; *str != EOS; str++)
+ ;
- *(str++) = EXT_CTRL_CODE_BEGIN;
- *(str++) = EXT_CTRL_CODE_SKIP;
- *(str++) = 60;
-
- switch (gender)
- {
- default:
- *(str++) = CHAR_SPACE;
- break;
- case MON_MALE:
- *(str++) = EXT_CTRL_CODE_BEGIN;
- *(str++) = EXT_CTRL_CODE_COLOR;
- *(str++) = TEXT_COLOR_RED;
*(str++) = EXT_CTRL_CODE_BEGIN;
- *(str++) = EXT_CTRL_CODE_SHADOW;
- *(str++) = TEXT_COLOR_LIGHT_RED;
- *(str++) = CHAR_MALE;
- break;
- case MON_FEMALE:
- *(str++) = EXT_CTRL_CODE_BEGIN;
- *(str++) = EXT_CTRL_CODE_COLOR;
- *(str++) = TEXT_COLOR_GREEN;
+ *(str++) = EXT_CTRL_CODE_SKIP;
+ *(str++) = 60;
+
+ switch (gender)
+ {
+ default:
+ *(str++) = CHAR_SPACE;
+ break;
+ case MON_MALE:
+ *(str++) = EXT_CTRL_CODE_BEGIN;
+ *(str++) = EXT_CTRL_CODE_COLOR;
+ *(str++) = TEXT_COLOR_RED;
+ *(str++) = EXT_CTRL_CODE_BEGIN;
+ *(str++) = EXT_CTRL_CODE_SHADOW;
+ *(str++) = TEXT_COLOR_LIGHT_RED;
+ *(str++) = CHAR_MALE;
+ break;
+ case MON_FEMALE:
+ *(str++) = EXT_CTRL_CODE_BEGIN;
+ *(str++) = EXT_CTRL_CODE_COLOR;
+ *(str++) = TEXT_COLOR_GREEN;
+ *(str++) = EXT_CTRL_CODE_BEGIN;
+ *(str++) = EXT_CTRL_CODE_SHADOW;
+ *(str++) = TEXT_COLOR_LIGHT_GREEN;
+ *(str++) = CHAR_FEMALE;
+ break;
+ }
+
*(str++) = EXT_CTRL_CODE_BEGIN;
- *(str++) = EXT_CTRL_CODE_SHADOW;
- *(str++) = TEXT_COLOR_LIGHT_GREEN;
- *(str++) = CHAR_FEMALE;
- break;
- }
+ *(str++) = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW;
+ *(str++) = TEXT_COLOR_BLUE;
+ *(str++) = TEXT_COLOR_TRANSPARENT;
+ *(str++) = TEXT_COLOR_LIGHT_BLUE;
+ *(str++) = CHAR_SLASH;
+ *(str++) = CHAR_EXTRA_SYMBOL;
+ *(str++) = CHAR_LV_2;
+ str = ConvertIntToDecimalStringN(str, level, STR_CONV_MODE_LEFT_ALIGN, 3);
+ *(str++) = CHAR_SPACE;
+ *str = EOS;
- *(str++) = EXT_CTRL_CODE_BEGIN;
- *(str++) = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW;
- *(str++) = TEXT_COLOR_BLUE;
- *(str++) = TEXT_COLOR_TRANSPARENT;
- *(str++) = TEXT_COLOR_LIGHT_BLUE;
- *(str++) = CHAR_SLASH;
- *(str++) = CHAR_EXTRA_SYMBOL;
- *(str++) = CHAR_LV_2;
- str = ConvertIntToDecimalStringN(str, level, STR_CONV_MODE_LEFT_ALIGN, 3);
- *(str++) = CHAR_SPACE;
- *str = EOS;
-
- return str;
+ return str;
}
// Buffers the string in src to dest up to n chars. If src is less than n chars, fill with spaces
@@ -1020,23 +1019,23 @@ void GetConditionMenuMonConditions(struct ConditionGraph *graph, u8 *sheen, u16
if (partyId != numMons)
{
- graph->unk0[id][0] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_COOL, NULL);
- graph->unk0[id][1] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_TOUGH, NULL);
- graph->unk0[id][2] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_SMART, NULL);
- graph->unk0[id][3] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_CUTE, NULL);
- graph->unk0[id][4] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_BEAUTY, NULL);
+ graph->stat[id][0] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_COOL, NULL);
+ graph->stat[id][1] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_TOUGH, NULL);
+ graph->stat[id][2] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_SMART, NULL);
+ graph->stat[id][3] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_CUTE, NULL);
+ graph->stat[id][4] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_BEAUTY, NULL);
sheen[id] = (GetBoxOrPartyMonData(boxId, monId, MON_DATA_SHEEN, NULL) != 0xFF)
? GetBoxOrPartyMonData(boxId, monId, MON_DATA_SHEEN, NULL) / 29u
: 9;
- sub_81D2754(graph->unk0[id], graph->unk14[id]);
+ sub_81D2754(graph->stat[id], graph->unk14[id]);
}
else
{
for (i = 0; i < FLAVOR_COUNT; i++)
{
- graph->unk0[id][i] = 0;
+ graph->stat[id][i] = 0;
graph->unk14[id][i].unk0 = 155;
graph->unk14[id][i].unk2 = 91;
}
diff --git a/src/metatile_behavior.c b/src/metatile_behavior.c
index dde4de329..51cc65c22 100644
--- a/src/metatile_behavior.c
+++ b/src/metatile_behavior.c
@@ -968,6 +968,10 @@ bool8 MetatileBehavior_IsDiveable(u8 metatileBehavior)
bool8 MetatileBehavior_IsUnableToEmerge(u8 metatileBehavior)
{
+ // BUG: The player is unintentionally able to emerge on water doors.
+ // Also the narrower underwater door in the underwater tileset has the wrong metatile behavior. This causes the dive glitch.
+ // To fix that add || metatileBehavior == MB_WATER_DOOR to the if statement below and
+ // change the metatile behavior of the narrower water door with porymaps tileset editor.
if (metatileBehavior == MB_NO_SURFACING
|| metatileBehavior == MB_SEAWEED_NO_SURFACING)
return TRUE;
diff --git a/src/mevent2.c b/src/mevent2.c
index 7a2edc7f5..3209c585a 100755
--- a/src/mevent2.c
+++ b/src/mevent2.c
@@ -10,7 +10,6 @@
#include "new_game.h"
#include "mevent.h"
#include "constants/mevent.h"
-#include "constants/species.h"
static EWRAM_DATA bool32 gUnknown_02022C70 = FALSE;
diff --git a/src/mevent_801BAAC.c b/src/mevent_801BAAC.c
index 847449c45..d732e3045 100644
--- a/src/mevent_801BAAC.c
+++ b/src/mevent_801BAAC.c
@@ -1,5 +1,4 @@
#include "global.h"
-#include "constants/species.h"
#include "bg.h"
#include "gpu_regs.h"
#include "palette.h"
diff --git a/src/mirage_tower.c b/src/mirage_tower.c
index 607083e26..ef7bf7228 100644
--- a/src/mirage_tower.c
+++ b/src/mirage_tower.c
@@ -168,7 +168,7 @@ const struct PulseBlendSettings gMirageTowerPulseBlendSettings = {
.numColors = 15,
.delay = 5,
.numFadeCycles = -1,
- .maxBlendCoeff = -5,
+ .maxBlendCoeff = 11,
.fadeType = 1,
.restorePaletteOnUnload = FALSE,
.unk7_7 = 1,
@@ -412,9 +412,10 @@ void DoMirageTowerCeilingCrumble(void)
static void WaitCeilingCrumble(u8 taskId)
{
- u16 *data = (u16 *)gTasks[taskId].data;
+ u16 *data = gTasks[taskId].data;
+ data[1]++;
// Either wait 1000 frames, or until all 16 crumble sprites and the one screen-shake task are completed.
- if (++data[1] == 1000 || data[0] == 17)
+ if (data[1] == 1000 || data[0] == 17)
gTasks[taskId].func = FinishCeilingCrumbleTask;
}
@@ -690,7 +691,7 @@ static void DoFossilFallAndSink(u8 taskId)
if (gSprites[sUnknown_0203CF0C->spriteId].callback != SpriteCallbackDummy)
return;
DestroySprite(&gSprites[sUnknown_0203CF0C->spriteId]);
- FREE_AND_SET_NULL(sUnknown_0203CF0C->unkC);
+ FREE_AND_SET_NULL(sUnknown_0203CF0C->unkC);;
FREE_AND_SET_NULL(sUnknown_0203CF0C->frameImage);
FREE_AND_SET_NULL(sUnknown_0203CF0C->frameImageTiles);
FREE_AND_SET_NULL(sUnknown_0203CF0C);
@@ -725,8 +726,8 @@ static void sub_81BF248(struct Sprite *sprite)
static void sub_81BF2B8(u8* a, u16 b, u8 c, u8 d, u8 e)
{
+ u8 r5, r4, r0, r2;
u16 var, var2;
- u8 r0, r5, r4, r2;
u8 r2_1, r4_1;
u8 b2, c2;
@@ -738,25 +739,23 @@ static void sub_81BF2B8(u8* a, u16 b, u8 c, u8 d, u8 e)
r4_1 = r4 & 7;
r2_1 = r2 & 7;
-
- gUnknown_030012A8[2] = r4 & 7; //should be r4_1 but that doesn't match
- gUnknown_030012A8[3] = r2 & 7; //should be r2_1 but that doesn't match
-
+ gUnknown_030012A8[2] = r4 & 7; //should be using r4_1, but that doesn't match
+ gUnknown_030012A8[3] = r2 & 7; //"
+
r0 = r2 / 8;
r5 = r4 / 8;
-
- gUnknown_030012A8[4] = r2 / 8; //should just be r0, but that doesn't match
- gUnknown_030012A8[5] = r4 / 8; //should be just r5 but that doesn't match
+
+ gUnknown_030012A8[4] = r2 / 8; //should be using r0, but that doesn't match
+ gUnknown_030012A8[5] = r4 / 8; //should be using r5, but that doesn't match
var = (d / 8) * (r5 * 64) + (r0 * 64);
-
gUnknown_030012A8[6] = var;
-
+
var2 = var + ((r4_1 * 8) + r2_1);
var2 /= 2;
- gUnknown_030012A8[7] = var + ((r4_1 * 8) + r2_1); // should be var2 with var2 being divided by 2 AFTER this assignment, but that doesn't match.
-
+ gUnknown_030012A8[7] = var + ((r4_1 * 8) + r2_1); //should be using var2 with var2 being divided afterwards, but that doesn't match
+
b2 = ((b % 2) ^ 1);
- c2 = (c << (b2 << 2)) | (15 << (((b2 ^ 1) << 2)));
+ c2 = (c << (b2 << 2)) | 15 << (((b2 ^ 1) << 2));
a[var2 + (e * 32)] &= c2;
}
diff --git a/src/mon_markings.c b/src/mon_markings.c
index c2afdda83..a819d4f9a 100644
--- a/src/mon_markings.c
+++ b/src/mon_markings.c
@@ -390,7 +390,7 @@ void sub_811FAF8(void)
}
}
-bool8 sub_811FBA4(void)
+bool8 MonMarkingsMenuHandleInput(void)
{
u16 i;
@@ -564,7 +564,7 @@ static void sub_811FF7C(struct Sprite *sprite)
sprite->pos1.y = (16 * sMenu->cursorPos) + sprite->data[0];
}
-struct Sprite *sub_811FF94(u16 tileTag, u16 paletteTag, const u16 *palette)
+struct Sprite *CreateMonMarkingsSpriteWithPal(u16 tileTag, u16 paletteTag, const u16 *palette)
{
if (!palette)
palette = gUnknown_0859E65C;
diff --git a/src/multiboot.c b/src/multiboot.c
index c7e14392e..19245b5b3 100644
--- a/src/multiboot.c
+++ b/src/multiboot.c
@@ -1,3 +1,4 @@
+#include "global.h"
#include "gba/gba.h"
#include "multiboot.h"
@@ -435,23 +436,23 @@ static int MultiBootHandShake(struct MultiBootParam *mp)
#undef must_data
}
-static NOINLINE void MultiBootWaitCycles(u32 cycles)
+NAKED
+static void MultiBootWaitCycles(u32 cycles)
{
- asm("mov r2, pc");
- asm("lsr r2, #24");
- asm("mov r1, #12");
- asm("cmp r2, #0x02");
- asm("beq MultiBootWaitCyclesLoop");
-
- asm("mov r1, #13");
- asm("cmp r2, #0x08");
- asm("beq MultiBootWaitCyclesLoop");
-
- asm("mov r1, #4");
-
- asm("MultiBootWaitCyclesLoop:");
- asm("sub r0, r1");
- asm("bgt MultiBootWaitCyclesLoop");
+ asm_unified("\
+ mov r2, pc\n\
+ lsrs r2, 24\n\
+ movs r1, 12\n\
+ cmp r2, 2\n\
+ beq MultiBootWaitCyclesLoop\n\
+ movs r1, 13\n\
+ cmp r2, 8\n\
+ beq MultiBootWaitCyclesLoop\n\
+ movs r1, 4\n\
+MultiBootWaitCyclesLoop:\n\
+ subs r0, r1\n\
+ bgt MultiBootWaitCyclesLoop\n\
+ bx lr\n");
}
static void MultiBootWaitSendDone(void)
diff --git a/src/mystery_event_script.c b/src/mystery_event_script.c
index 76f340c60..beb1bf45d 100644
--- a/src/mystery_event_script.c
+++ b/src/mystery_event_script.c
@@ -9,7 +9,6 @@
#include "pokemon.h"
#include "pokemon_size_record.h"
#include "script.h"
-#include "constants/species.h"
#include "strings.h"
#include "string_util.h"
#include "text.h"
diff --git a/src/overworld.c b/src/overworld.c
index ee70b3b92..dbc923e7b 100644
--- a/src/overworld.c
+++ b/src/overworld.c
@@ -65,7 +65,6 @@
#include "constants/maps.h"
#include "constants/region_map_sections.h"
#include "constants/songs.h"
-#include "constants/species.h"
#include "constants/trainer_hill.h"
#include "constants/weather.h"
diff --git a/src/party_menu.c b/src/party_menu.c
index 39f74e58d..f045a9a47 100755
--- a/src/party_menu.c
+++ b/src/party_menu.c
@@ -74,7 +74,6 @@
#include "constants/party_menu.h"
#include "constants/rgb.h"
#include "constants/songs.h"
-#include "constants/species.h"
#define PARTY_PAL_SELECTED (1 << 0)
#define PARTY_PAL_FAINTED (1 << 1)
@@ -1862,7 +1861,7 @@ u8 GetMonAilment(struct Pokemon *mon)
static void SetPartyMonsAllowedInMinigame(void)
{
- s16 *ptr;
+ u16 *ptr;
if (gPartyMenu.menuType == PARTY_MENU_TYPE_MINIGAME)
{
@@ -4324,9 +4323,13 @@ void ItemUseCB_Medicine(u8 taskId, TaskFunc task)
u16 hp = 0;
struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId];
u16 item = gSpecialVar_ItemId;
- bool8 canHeal;
+ bool8 canHeal, cannotUse;
- if (NotUsingHPEVItemOnShedinja(mon, item))
+ if (NotUsingHPEVItemOnShedinja(mon, item) == FALSE)
+ {
+ cannotUse = TRUE;
+ }
+ else
{
canHeal = IsHPRecoveryItem(item);
if (canHeal == TRUE)
@@ -4335,50 +4338,49 @@ void ItemUseCB_Medicine(u8 taskId, TaskFunc task)
if (hp == GetMonData(mon, MON_DATA_MAX_HP))
canHeal = FALSE;
}
- if (ExecuteTableBasedItemEffect_(gPartyMenu.slotId, item, 0))
- {
- iTriedHonestlyIDid:
- gPartyMenuUseExitCallback = FALSE;
- PlaySE(SE_SELECT);
- DisplayPartyMenuMessage(gText_WontHaveEffect, TRUE);
- ScheduleBgCopyTilemapToVram(2);
- gTasks[taskId].func = task;
- return;
- }
- }
- else
- {
- goto iTriedHonestlyIDid; //TODO: resolve this goto
+ cannotUse = ExecuteTableBasedItemEffect_(gPartyMenu.slotId, item, 0);
}
- gPartyMenuUseExitCallback = TRUE;
- if (!IsItemFlute(item))
- {
- PlaySE(SE_USE_ITEM);
- if (gPartyMenu.action != PARTY_ACTION_REUSABLE_ITEM)
- RemoveBagItem(item, 1);
- }
- else
- {
- PlaySE(SE_GLASS_FLUTE);
- }
- SetPartyMonAilmentGfx(mon, &sPartyMenuBoxes[gPartyMenu.slotId]);
- if (gSprites[sPartyMenuBoxes[gPartyMenu.slotId].statusSpriteId].invisible)
- DisplayPartyPokemonLevelCheck(mon, &sPartyMenuBoxes[gPartyMenu.slotId], 1);
- if (canHeal == TRUE)
+
+ if (cannotUse != FALSE)
{
- if (hp == 0)
- AnimatePartySlot(gPartyMenu.slotId, 1);
- PartyMenuModifyHP(taskId, gPartyMenu.slotId, 1, GetMonData(mon, MON_DATA_HP) - hp, Task_DisplayHPRestoredMessage);
- ResetHPTaskData(taskId, 0, hp);
- return;
+ gPartyMenuUseExitCallback = FALSE;
+ PlaySE(SE_SELECT);
+ DisplayPartyMenuMessage(gText_WontHaveEffect, TRUE);
+ ScheduleBgCopyTilemapToVram(2);
+ gTasks[taskId].func = task;
}
else
{
- GetMonNickname(mon, gStringVar1);
- GetMedicineItemEffectMessage(item);
- DisplayPartyMenuMessage(gStringVar4, TRUE);
- ScheduleBgCopyTilemapToVram(2);
- gTasks[taskId].func = task;
+ gPartyMenuUseExitCallback = TRUE;
+ if (!IsItemFlute(item))
+ {
+ PlaySE(SE_USE_ITEM);
+ if (gPartyMenu.action != PARTY_ACTION_REUSABLE_ITEM)
+ RemoveBagItem(item, 1);
+ }
+ else
+ {
+ PlaySE(SE_GLASS_FLUTE);
+ }
+ SetPartyMonAilmentGfx(mon, &sPartyMenuBoxes[gPartyMenu.slotId]);
+ if (gSprites[sPartyMenuBoxes[gPartyMenu.slotId].statusSpriteId].invisible)
+ DisplayPartyPokemonLevelCheck(mon, &sPartyMenuBoxes[gPartyMenu.slotId], 1);
+ if (canHeal == TRUE)
+ {
+ if (hp == 0)
+ AnimatePartySlot(gPartyMenu.slotId, 1);
+ PartyMenuModifyHP(taskId, gPartyMenu.slotId, 1, GetMonData(mon, MON_DATA_HP) - hp, Task_DisplayHPRestoredMessage);
+ ResetHPTaskData(taskId, 0, hp);
+ return;
+ }
+ else
+ {
+ GetMonNickname(mon, gStringVar1);
+ GetMedicineItemEffectMessage(item);
+ DisplayPartyMenuMessage(gStringVar4, TRUE);
+ ScheduleBgCopyTilemapToVram(2);
+ gTasks[taskId].func = task;
+ }
}
}
@@ -4949,9 +4951,9 @@ static void Task_DisplayLevelUpStatsPg2(u8 taskId)
static void DisplayLevelUpStatsPg1(u8 taskId)
{
- u16 *arrayPtr = (u16*)sPartyMenuInternal->data;
+ s16 *arrayPtr = sPartyMenuInternal->data;
- arrayPtr[12] = (u16)CreateLevelUpStatsWindow();
+ arrayPtr[12] = CreateLevelUpStatsWindow();
DrawLevelUpWindowPg1(arrayPtr[12], arrayPtr, &arrayPtr[6], TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY);
CopyWindowToVram(arrayPtr[12], 2);
ScheduleBgCopyTilemapToVram(2);
@@ -4959,7 +4961,7 @@ static void DisplayLevelUpStatsPg1(u8 taskId)
static void DisplayLevelUpStatsPg2(u8 taskId)
{
- u16 *arrayPtr = (u16 *)sPartyMenuInternal->data;
+ s16 *arrayPtr = sPartyMenuInternal->data;
DrawLevelUpWindowPg2(arrayPtr[12], &arrayPtr[6], TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY);
CopyWindowToVram(arrayPtr[12], 2);
diff --git a/src/player_pc.c b/src/player_pc.c
index 238424ee3..928aac706 100644
--- a/src/player_pc.c
+++ b/src/player_pc.c
@@ -327,7 +327,7 @@ void PlayerPC(void)
static void InitPlayerPCMenu(u8 taskId)
{
- s16 *data;
+ u16 *data;
struct WindowTemplate windowTemplate;
data = gTasks[taskId].data;
@@ -346,7 +346,7 @@ static void InitPlayerPCMenu(u8 taskId)
static void PlayerPCProcessMenuInput(u8 taskId)
{
- s16 *data;
+ u16 *data;
s8 inputOptionId;
data = gTasks[taskId].data;
@@ -435,7 +435,7 @@ static void PlayerPC_TurnOff(u8 taskId)
static void InitItemStorageMenu(u8 taskId, u8 var)
{
- s16 *data;
+ u16 *data;
struct WindowTemplate windowTemplate;
data = gTasks[taskId].data;
@@ -548,7 +548,7 @@ static void ItemStorage_Toss(u8 taskId)
static void ItemStorage_WithdrawToss_Helper(u8 taskId, bool8 toss)
{
- s16 *data = gTasks[taskId].data;
+ u16 *data = gTasks[taskId].data;
data[3] = toss;
sub_816B4DC(taskId);
@@ -581,9 +581,9 @@ static void ItemStorage_SetItemAndMailCount(u8 taskId)
static void sub_816B4DC(u8 taskId)
{
- u16 *data = (u16 *)gTasks[taskId].data;
+ u16 *data = gTasks[taskId].data;
- ClearStdWindowAndFrameToTransparent((u8)data[4], FALSE);
+ ClearStdWindowAndFrameToTransparent(data[4], FALSE);
ClearWindowTilemap(data[4]);
RemoveWindow(data[4]);
ScheduleBgCopyTilemapToVram(0);
@@ -1380,7 +1380,7 @@ static void ItemStorage_DoItemToss(u8 taskId)
data = gTasks[taskId].data;
b = (playerPCItemPageInfo.cursorPos + playerPCItemPageInfo.itemsAbove);
- if (ItemId_GetImportance(gSaveBlock1Ptr->pcItems[b].itemId) == 0)
+ if (!ItemId_GetImportance(gSaveBlock1Ptr->pcItems[b].itemId))
{
CopyItemName(gSaveBlock1Ptr->pcItems[b].itemId, gStringVar1);
ConvertIntToDecimalStringN(gStringVar2, data[2], STR_CONV_MODE_LEFT_ALIGN, 3);
diff --git a/src/pokeball.c b/src/pokeball.c
index b176677bd..92081a296 100644
--- a/src/pokeball.c
+++ b/src/pokeball.c
@@ -13,7 +13,6 @@
#include "trig.h"
#include "util.h"
#include "constants/songs.h"
-#include "constants/species.h"
extern struct MusicPlayerInfo gMPlayInfo_BGM;
diff --git a/src/pokeblock.c b/src/pokeblock.c
index b44112b88..0bfb10632 100644
--- a/src/pokeblock.c
+++ b/src/pokeblock.c
@@ -430,7 +430,7 @@ static const struct ListMenuTemplate sPokeblockListMenuTemplate =
// code
void OpenPokeblockCase(u8 caseId, void (*callback)(void))
{
- sPokeblockMenu = Alloc(sizeof(struct PokeblockMenuStruct));
+ sPokeblockMenu = Alloc(sizeof(*sPokeblockMenu));
sPokeblockMenu->caseId = caseId;
sPokeblockMenu->callbackOnUse = NULL;
sPokeblockMenu->unkTaskId = 0xFF;
diff --git a/src/pokedex.c b/src/pokedex.c
index d375a0afc..516cef6a7 100644
--- a/src/pokedex.c
+++ b/src/pokedex.c
@@ -28,7 +28,6 @@
#include "window.h"
#include "constants/rgb.h"
#include "constants/songs.h"
-#include "constants/species.h"
enum
{
@@ -172,16 +171,16 @@ struct PokedexView
u16 ownCount;
u16 monSpriteIds[MAX_MONS_ON_SCREEN];
u16 selectedMonSpriteId;
- s16 pokeBallRotationStep;
- s16 pokeBallRotationBackup;
+ u16 pokeBallRotationStep;
+ u16 pokeBallRotationBackup;
u8 pokeBallRotation;
u8 initialVOffset;
u8 scrollTimer;
u8 scrollDirection;
s16 listVOffset;
s16 listMovingVOffset;
- s16 scrollMonIncrement;
- s16 maxScrollTimer;
+ u16 scrollMonIncrement;
+ u16 maxScrollTimer;
u16 scrollSpeed;
u16 unkArr1[4]; // Cleared, never read
u8 filler[8];
@@ -2598,7 +2597,7 @@ static u16 TryDoPokedexScroll(u16 selectedMon, u16 ignored)
CreateMonListEntry(1, selectedMon, ignored);
PlaySE(SE_DEX_SCROLL);
}
- else if (JOY_HELD(DPAD_DOWN) && (selectedMon < sPokedexView->pokemonListCount - 1))
+ else if ((JOY_HELD(DPAD_DOWN)) && (selectedMon < sPokedexView->pokemonListCount - 1))
{
scrollDir = 2;
selectedMon = GetNextPosition(0, selectedMon, 0, sPokedexView->pokemonListCount - 1);
@@ -2606,7 +2605,7 @@ static u16 TryDoPokedexScroll(u16 selectedMon, u16 ignored)
CreateMonListEntry(2, selectedMon, ignored);
PlaySE(SE_DEX_SCROLL);
}
- else if (JOY_NEW(DPAD_LEFT) && (selectedMon > 0))
+ else if ((JOY_NEW(DPAD_LEFT)) && (selectedMon > 0))
{
startingPos = selectedMon;
@@ -3400,8 +3399,8 @@ static void Task_HandleInfoScreenInput(u8 taskId)
}
return;
}
- if ((JOY_NEW(DPAD_LEFT)
- || (JOY_NEW(L_BUTTON) && gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR))
+ if (((JOY_NEW(DPAD_LEFT))
+ || ((JOY_NEW(L_BUTTON)) && gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR))
&& sPokedexView->selectedScreen > 0)
{
sPokedexView->selectedScreen--;
@@ -3409,8 +3408,8 @@ static void Task_HandleInfoScreenInput(u8 taskId)
PlaySE(SE_DEX_PAGE);
return;
}
- if ((JOY_NEW(DPAD_RIGHT)
- || (JOY_NEW(R_BUTTON) && gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR))
+ if (((JOY_NEW(DPAD_RIGHT))
+ || ((JOY_NEW(R_BUTTON)) && gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR))
&& sPokedexView->selectedScreen < CANCEL_SCREEN)
{
sPokedexView->selectedScreen++;
@@ -3657,8 +3656,8 @@ static void Task_HandleCryScreenInput(u8 taskId)
PlaySE(SE_DEX_PAGE);
return;
}
- if (JOY_NEW(DPAD_RIGHT)
- || (JOY_NEW(R_BUTTON) && gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR))
+ if ((JOY_NEW(DPAD_RIGHT))
+ || ((JOY_NEW(R_BUTTON)) && gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR))
{
if (!sPokedexListItem->owned)
{
@@ -4168,13 +4167,12 @@ static void PrintMonHeight(u16 height, u8 left, u8 top)
static void PrintMonWeight(u16 weight, u8 left, u8 top)
{
u8 buffer[16];
- u8 i;
bool8 output;
+ u8 i;
u32 lbs = (weight * 100000) / 4536;
if (lbs % 10u >= 5)
lbs += 10;
-
i = 0;
output = FALSE;
@@ -4229,19 +4227,13 @@ const u8 *GetPokedexCategoryName(u16 dexNum) // unused
return gPokedexEntries[dexNum].categoryName;
}
-enum
-{
- HEIGHT,
- WEIGHT,
-};
-
u16 GetPokedexHeightWeight(u16 dexNum, u8 data)
{
switch (data)
{
- case HEIGHT:
+ case 0: // height
return gPokedexEntries[dexNum].height;
- case WEIGHT:
+ case 1: // weight
return gPokedexEntries[dexNum].weight;
default:
return 1;
@@ -5030,7 +5022,7 @@ static void Task_HandleSearchMenuInput(u8 taskId)
CopyWindowToVram(0, 2);
CopyBgTilemapBufferToVram(3);
}
- if (JOY_NEW(DPAD_RIGHT) && movementMap[gTasks[taskId].tMenuItem][1] != 0xFF)
+ if ((JOY_NEW(DPAD_RIGHT)) && movementMap[gTasks[taskId].tMenuItem][1] != 0xFF)
{
PlaySE(SE_SELECT);
gTasks[taskId].tMenuItem = movementMap[gTasks[taskId].tMenuItem][1];
@@ -5116,9 +5108,9 @@ static void Task_SelectSearchMenuItem(u8 taskId)
u16 *scrollOffset;
DrawOrEraseSearchParameterBox(FALSE);
- menuItem = (u16)gTasks[taskId].tMenuItem;
- cursorPos = (u16*)&gTasks[taskId].data[sSearchOptions[menuItem].taskDataCursorPos];
- scrollOffset = (u16*)&gTasks[taskId].data[sSearchOptions[menuItem].taskDataScrollOffset];
+ menuItem = gTasks[taskId].tMenuItem;
+ cursorPos = &gTasks[taskId].data[sSearchOptions[menuItem].taskDataCursorPos];
+ scrollOffset = &gTasks[taskId].data[sSearchOptions[menuItem].taskDataScrollOffset];
gTasks[taskId].tCursorPos = *cursorPos;
gTasks[taskId].tScrollOffset = *scrollOffset;
PrintSearchParameterText(taskId);
@@ -5237,8 +5229,9 @@ static void Task_ExitSearchWaitForFade(u8 taskId)
void SetSearchRectHighlight(u8 flags, u8 x, u8 y, u8 width)
{
- u16 i, temp; //This would have been better as a pointer but here we are
- u32 ptr = (u32)GetBgTilemapBuffer(3); //This should be a pointer, but this only matches as a u32.
+ u16 i;
+ u16 temp; //should be a pointer, but does not match as one
+ u32 ptr = (u32)GetBgTilemapBuffer(3); //same as above
for (i = 0; i < width; i++)
{
@@ -5246,7 +5239,7 @@ void SetSearchRectHighlight(u8 flags, u8 x, u8 y, u8 width)
temp &= 0x0fff;
temp |= (flags << 12);
*(u16 *)(ptr + (y + 0) * 64 + (x + i) * 2) = temp;
-
+
temp = *(u16 *)(ptr + (y + 1) * 64 + (x + i) * 2);
temp &= 0x0fff;
temp |= (flags << 12);
@@ -5452,8 +5445,8 @@ static void PrintSearchParameterText(u8 taskId)
const struct SearchOptionText *texts = sSearchOptions[gTasks[taskId].tMenuItem].texts;
const u16 *cursorPos = &gTasks[taskId].data[sSearchOptions[gTasks[taskId].tMenuItem].taskDataCursorPos];
const u16 *scrollOffset = &gTasks[taskId].data[sSearchOptions[gTasks[taskId].tMenuItem].taskDataScrollOffset];
-
- u16 i, j;
+ u16 i;
+ u16 j;
ClearSearchParameterBoxText();
@@ -5542,7 +5535,8 @@ static bool8 SearchParamCantScrollUp(u8 taskId)
if (lastOption > MAX_SEARCH_PARAM_CURSOR_POS && *scrollOffset != 0)
return FALSE;
- return TRUE;
+ else
+ return TRUE;
}
static bool8 SearchParamCantScrollDown(u8 taskId)
@@ -5553,7 +5547,8 @@ static bool8 SearchParamCantScrollDown(u8 taskId)
if (lastOption > MAX_SEARCH_PARAM_CURSOR_POS && *scrollOffset < lastOption - MAX_SEARCH_PARAM_CURSOR_POS)
return FALSE;
- return TRUE;
+ else
+ return TRUE;
}
#define sTaskId data[0]
diff --git a/src/pokedex_area_screen.c b/src/pokedex_area_screen.c
index fdbd2f40c..7a3b38dc2 100755
--- a/src/pokedex_area_screen.c
+++ b/src/pokedex_area_screen.c
@@ -20,7 +20,6 @@
#include "constants/region_map_sections.h"
#include "constants/rgb.h"
#include "constants/songs.h"
-#include "constants/species.h"
#define AREA_SCREEN_WIDTH 32
#define AREA_SCREEN_HEIGHT 20
diff --git a/src/pokemon.c b/src/pokemon.c
index 72fb4984c..d4b785964 100644
--- a/src/pokemon.c
+++ b/src/pokemon.c
@@ -44,7 +44,6 @@
#include "constants/layouts.h"
#include "constants/moves.h"
#include "constants/songs.h"
-#include "constants/species.h"
#include "constants/trainers.h"
struct SpeciesItem
@@ -70,7 +69,7 @@ EWRAM_DATA u8 gEnemyPartyCount = 0;
EWRAM_DATA struct Pokemon gPlayerParty[PARTY_SIZE] = {0};
EWRAM_DATA struct Pokemon gEnemyParty[PARTY_SIZE] = {0};
EWRAM_DATA struct SpriteTemplate gMultiuseSpriteTemplate = {0};
-EWRAM_DATA struct Unknown_806F160_Struct *gUnknown_020249B4[2] = {NULL, NULL};
+EWRAM_DATA struct Unknown_806F160_Struct *gUnknown_020249B4[2] = {NULL};
// const rom data
#include "data/battle_moves.h"
@@ -2837,9 +2836,9 @@ void CalculateMonStats(struct Pokemon *mon)
newMaxHP = (((n + hpEV / 4) * level) / 100) + level + 10;
}
- gBattleScripting.field_23 = newMaxHP - oldMaxHP;
- if (gBattleScripting.field_23 == 0)
- gBattleScripting.field_23 = 1;
+ gBattleScripting.levelUpHP = newMaxHP - oldMaxHP;
+ if (gBattleScripting.levelUpHP == 0)
+ gBattleScripting.levelUpHP = 1;
SetMonData(mon, MON_DATA_MAX_HP, &newMaxHP);
@@ -2861,6 +2860,8 @@ void CalculateMonStats(struct Pokemon *mon)
if (currentHP == 0 && oldMaxHP == 0)
currentHP = newMaxHP;
else if (currentHP != 0)
+ // BUG: currentHP is unintentionally able to become <= 0 after the instruction below. This causes the pomeg berry glitch.
+ // To fix that set currentHP = 1 if currentHP <= 0.
currentHP += newMaxHP - oldMaxHP;
else
return;
@@ -4911,19 +4912,21 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov
break;
}
}
+
+ // Get amount of HP to restore
dataUnsigned = itemEffect[var_3C++];
switch (dataUnsigned)
{
- case 0xFF:
+ case ITEM6_HEAL_FULL:
dataUnsigned = GetMonData(mon, MON_DATA_MAX_HP, NULL) - GetMonData(mon, MON_DATA_HP, NULL);
break;
- case 0xFE:
+ case ITEM6_HEAL_HALF:
dataUnsigned = GetMonData(mon, MON_DATA_MAX_HP, NULL) / 2;
if (dataUnsigned == 0)
dataUnsigned = 1;
break;
- case 0xFD:
- dataUnsigned = gBattleScripting.field_23;
+ case ITEM6_HEAL_LVL_UP:
+ dataUnsigned = gBattleScripting.levelUpHP;
break;
}
if (GetMonData(mon, MON_DATA_MAX_HP, NULL) != GetMonData(mon, MON_DATA_HP, NULL))
@@ -5747,7 +5750,7 @@ u8 GetTrainerEncounterMusicId(u16 trainerOpponentId)
u16 ModifyStatByNature(u8 nature, u16 n, u8 statIndex)
{
u16 retVal;
- // Dont modify HP, Accuracy, or Evasion by nature
+ // Don't modify HP, Accuracy, or Evasion by nature
if (statIndex <= STAT_HP || statIndex > NUM_NATURE_STATS)
{
return n;
@@ -6808,8 +6811,6 @@ static bool8 ShouldSkipFriendshipChange(void)
return FALSE;
}
-#define MAGIC_NUMBER 0xA3
-
static void sub_806F160(struct Unknown_806F160_Struct* structPtr)
{
u16 i, j;
@@ -6858,7 +6859,7 @@ struct Unknown_806F160_Struct *sub_806F2AC(u8 id, u8 arg1)
structPtr->field_0_0 = 7;
structPtr->field_0_1 = 7;
structPtr->field_1 = 4;
- structPtr->size = 1;
+ structPtr->field_3_0 = 1;
structPtr->field_3_1 = 2;
break;
case 0:
@@ -6866,12 +6867,12 @@ struct Unknown_806F160_Struct *sub_806F2AC(u8 id, u8 arg1)
structPtr->field_0_0 = 4;
structPtr->field_0_1 = 4;
structPtr->field_1 = 4;
- structPtr->size = 1;
+ structPtr->field_3_0 = 1;
structPtr->field_3_1 = 0;
break;
}
- structPtr->bytes = AllocZeroed(structPtr->size * 0x800 * 4 * structPtr->field_0_0);
+ structPtr->bytes = AllocZeroed(structPtr->field_3_0 * 0x800 * 4 * structPtr->field_0_0);
structPtr->byteArrays = AllocZeroed(structPtr->field_0_0 * 32);
if (structPtr->bytes == NULL || structPtr->byteArrays == NULL)
{
@@ -6880,7 +6881,7 @@ struct Unknown_806F160_Struct *sub_806F2AC(u8 id, u8 arg1)
else
{
for (i = 0; i < structPtr->field_0_0; i++)
- structPtr->byteArrays[i] = structPtr->bytes + (structPtr->size * (i << 0xD));
+ structPtr->byteArrays[i] = structPtr->bytes + (structPtr->field_3_0 * (i << 0xD));
}
structPtr->templates = AllocZeroed(sizeof(struct SpriteTemplate) * structPtr->field_0_0);
@@ -6899,8 +6900,8 @@ struct Unknown_806F160_Struct *sub_806F2AC(u8 id, u8 arg1)
case 2:
sub_806F1FC(structPtr);
break;
- case 1:
case 0:
+ case 1:
default:
sub_806F160(structPtr);
break;
@@ -6929,7 +6930,7 @@ struct Unknown_806F160_Struct *sub_806F2AC(u8 id, u8 arg1)
}
else
{
- structPtr->magic = MAGIC_NUMBER;
+ structPtr->magic = 0xA3;
gUnknown_020249B4[id] = structPtr;
}
@@ -6940,12 +6941,12 @@ void sub_806F47C(u8 id)
{
struct Unknown_806F160_Struct *structPtr;
- id &= 1;
+ id %= 2;
structPtr = gUnknown_020249B4[id];
if (structPtr == NULL)
return;
- if (structPtr->magic != MAGIC_NUMBER)
+ if (structPtr->magic != 0xA3)
{
memset(structPtr, 0, sizeof(struct Unknown_806F160_Struct));
}
@@ -6969,13 +6970,15 @@ void sub_806F47C(u8 id)
u8 *sub_806F4F8(u8 id, u8 arg1)
{
struct Unknown_806F160_Struct *structPtr = gUnknown_020249B4[id % 2];
- if (structPtr->magic != MAGIC_NUMBER)
+ if (structPtr->magic != 0xA3)
{
return NULL;
}
-
- if (arg1 >= structPtr->field_0_0)
- arg1 = 0;
+ else
+ {
+ if (arg1 >= structPtr->field_0_0)
+ arg1 = 0;
- return structPtr->byteArrays[arg1];
+ return structPtr->byteArrays[arg1];
+ }
}
diff --git a/src/pokemon_animation.c b/src/pokemon_animation.c
index e63a2cef1..bfcf77b5c 100644
--- a/src/pokemon_animation.c
+++ b/src/pokemon_animation.c
@@ -8,7 +8,6 @@
#include "util.h"
#include "constants/battle_anim.h"
#include "constants/rgb.h"
-#include "constants/species.h"
struct UnkAnimStruct
{
@@ -2884,10 +2883,9 @@ static void sub_8181C2C(struct Sprite *sprite)
}
else
{
+ s32 var = sUnknown_03001240[sprite->data[0]].field_8;
- const s16 var = sUnknown_03001240[sprite->data[0]].field_8;
-
- sprite->pos2.x = var * ((counter % 128) * 8) / 128 + 8 * -var; //Should be - 8 * var instead of + 8 * -var, but that doesn't match
+ sprite->pos2.x = var * ((counter % 128) * 8) / 128 + 8 * -var;
sprite->pos2.y = -(Sin(counter % 128, 8));
}
diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c
index 7d8c65d7c..b85a29151 100644
--- a/src/pokemon_icon.c
+++ b/src/pokemon_icon.c
@@ -4,7 +4,6 @@
#include "palette.h"
#include "pokemon_icon.h"
#include "sprite.h"
-#include "constants/species.h"
#define POKE_ICON_BASE_PAL_TAG 56000
diff --git a/src/pokemon_jump.c b/src/pokemon_jump.c
index 84d869a1a..914752eb4 100755
--- a/src/pokemon_jump.c
+++ b/src/pokemon_jump.c
@@ -29,7 +29,6 @@
#include "pokemon_jump.h"
#include "constants/rgb.h"
#include "constants/songs.h"
-#include "constants/species.h"
struct PokemonJump1_MonInfo
{
@@ -406,7 +405,7 @@ void StartPokemonJump(u16 partyIndex, MainCallback callback)
if (gReceivedRemoteLinkPlayers)
{
- gUnknown_02022CFC = Alloc(sizeof(struct PokemonJump1));
+ gUnknown_02022CFC = Alloc(sizeof(*gUnknown_02022CFC));
if (gUnknown_02022CFC)
{
ResetTasks();
diff --git a/src/pokemon_size_record.c b/src/pokemon_size_record.c
index 914d68925..f8b361912 100644
--- a/src/pokemon_size_record.c
+++ b/src/pokemon_size_record.c
@@ -6,7 +6,6 @@
#include "pokemon_size_record.h"
#include "string_util.h"
#include "text.h"
-#include "constants/species.h"
#define DEFAULT_MAX_SIZE 0x8000 // was 0x8100 in Ruby/Sapphire
diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c
index ae334504e..eb288c978 100644
--- a/src/pokemon_storage_system.c
+++ b/src/pokemon_storage_system.c
@@ -41,7 +41,6 @@
#include "constants/moves.h"
#include "constants/rgb.h"
#include "constants/songs.h"
-#include "constants/species.h"
struct WallpaperTable
{
@@ -2157,7 +2156,7 @@ static void Cb2_EnterPSS(u8 boxOption)
{
ResetTasks();
sCurrentBoxOption = boxOption;
- sPSSData = Alloc(sizeof(struct PokemonStorageSystemData));
+ sPSSData = Alloc(sizeof(*sPSSData));
if (sPSSData == NULL)
{
SetMainCallback2(Cb2_ExitPSS);
@@ -2177,7 +2176,7 @@ static void Cb2_EnterPSS(u8 boxOption)
static void Cb2_ReturnToPSS(void)
{
ResetTasks();
- sPSSData = Alloc(sizeof(struct PokemonStorageSystemData));
+ sPSSData = Alloc(sizeof(*sPSSData));
if (sPSSData == NULL)
{
SetMainCallback2(Cb2_ExitPSS);
@@ -3184,7 +3183,7 @@ static void Cb_ShowMarkMenu(u8 taskId)
sPSSData->state++;
break;
case 1:
- if (!sub_811FBA4())
+ if (!MonMarkingsMenuHandleInput())
{
sub_811FAF8();
ClearBottomWindow();
@@ -6778,11 +6777,11 @@ static void SetCursorMonData(void *pokemon, u8 mode)
{
u8 *txtPtr;
u16 gender;
- bool8 sanityIsBagEgg;
+ bool8 sanityIsBadEgg;
sPSSData->cursorMonItem = 0;
gender = MON_MALE;
- sanityIsBagEgg = FALSE;
+ sanityIsBadEgg = FALSE;
if (mode == MODE_PARTY)
{
struct Pokemon *mon = (struct Pokemon *)pokemon;
@@ -6790,8 +6789,8 @@ static void SetCursorMonData(void *pokemon, u8 mode)
sPSSData->cursorMonSpecies = GetMonData(mon, MON_DATA_SPECIES2);
if (sPSSData->cursorMonSpecies != SPECIES_NONE)
{
- sanityIsBagEgg = GetMonData(mon, MON_DATA_SANITY_IS_BAD_EGG);
- if (sanityIsBagEgg)
+ sanityIsBadEgg = GetMonData(mon, MON_DATA_SANITY_IS_BAD_EGG);
+ if (sanityIsBadEgg)
sPSSData->cursorMonIsEgg = TRUE;
else
sPSSData->cursorMonIsEgg = GetMonData(mon, MON_DATA_IS_EGG);
@@ -6814,8 +6813,8 @@ static void SetCursorMonData(void *pokemon, u8 mode)
if (sPSSData->cursorMonSpecies != SPECIES_NONE)
{
u32 otId = GetBoxMonData(boxMon, MON_DATA_OT_ID);
- sanityIsBagEgg = GetBoxMonData(boxMon, MON_DATA_SANITY_IS_BAD_EGG);
- if (sanityIsBagEgg)
+ sanityIsBadEgg = GetBoxMonData(boxMon, MON_DATA_SANITY_IS_BAD_EGG);
+ if (sanityIsBadEgg)
sPSSData->cursorMonIsEgg = TRUE;
else
sPSSData->cursorMonIsEgg = GetBoxMonData(boxMon, MON_DATA_IS_EGG);
@@ -6847,7 +6846,7 @@ static void SetCursorMonData(void *pokemon, u8 mode)
}
else if (sPSSData->cursorMonIsEgg)
{
- if (sanityIsBagEgg)
+ if (sanityIsBadEgg)
StringCopyPadded(sPSSData->cursorMonNickText, sPSSData->cursorMonNick, CHAR_SPACE, 5);
else
StringCopyPadded(sPSSData->cursorMonNickText, gText_EggNickname, CHAR_SPACE, 8);
@@ -7441,7 +7440,7 @@ static u8 HandleInput_OnButtons(void)
sPSSData->field_CD7 = 1;
break;
}
-
+
if (JOY_REPEAT(DPAD_DOWN | START_BUTTON))
{
retVal = 1;
diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c
index 805f69542..04f7f3f06 100644
--- a/src/pokemon_summary_screen.c
+++ b/src/pokemon_summary_screen.c
@@ -46,7 +46,6 @@
#include "constants/region_map_sections.h"
#include "constants/rgb.h"
#include "constants/songs.h"
-#include "constants/species.h"
// Screen titles (upper left)
#define PSS_LABEL_WINDOW_POKEMON_INFO_TITLE 0
@@ -1505,11 +1504,11 @@ static void Task_HandleInput(u8 taskId)
{
ChangeSummaryPokemon(taskId, 1);
}
- else if (JOY_NEW(DPAD_LEFT) || GetLRKeysPressed() == MENU_L_PRESSED)
+ else if ((JOY_NEW(DPAD_LEFT)) || GetLRKeysPressed() == MENU_L_PRESSED)
{
ChangePage(taskId, -1);
}
- else if (JOY_NEW(DPAD_RIGHT) || GetLRKeysPressed() == MENU_R_PRESSED)
+ else if ((JOY_NEW(DPAD_RIGHT)) || GetLRKeysPressed() == MENU_R_PRESSED)
{
ChangePage(taskId, 1);
}
@@ -3977,7 +3976,7 @@ static void StopPokemonAnimations(void) // A subtle effect, this function stops
static void CreateMonMarkingsSprite(struct Pokemon *mon)
{
- struct Sprite *sprite = sub_811FF94(TAG_MON_MARKINGS, TAG_MON_MARKINGS, sSummaryMarkingsPalette);
+ struct Sprite *sprite = CreateMonMarkingsSpriteWithPal(TAG_MON_MARKINGS, TAG_MON_MARKINGS, sSummaryMarkingsPalette);
sMonSummaryScreen->markingsSprite = sprite;
if (sprite != NULL)
diff --git a/src/pokenav.c b/src/pokenav.c
index 30dc001c3..eac0c85b4 100644
--- a/src/pokenav.c
+++ b/src/pokenav.c
@@ -14,8 +14,6 @@
#define LOOPED_TASK_PRIMARY_ID(taskId) (taskId & 0xFFFF)
#define LOOPED_TASK_SECONDARY_ID(taskId) (taskId >> 16)
-#define SUBSTRUCT_COUNT 19
-
struct PokenavResources
{
u32 (*currentMenuCb1)(void);
@@ -23,7 +21,7 @@ struct PokenavResources
u16 mode;
u16 conditionSearchId;
bool32 hasAnyRibbons;
- void *field10[SUBSTRUCT_COUNT];
+ void *substructPtrs[POKENAV_SUBSTRUCT_COUNT];
};
struct PokenavCallbacks
@@ -38,7 +36,7 @@ struct PokenavCallbacks
};
static u32 GetCurrentMenuCB(void);
-static u32 sub_81C75D4(void);
+static u32 IsActiveMenuLoopTaskActive_(void);
static bool32 SetActivePokenavMenu(u32 menuId);
static bool32 AnyMonHasRibbon(void);
static void InitPokenavResources(struct PokenavResources *a0);
@@ -126,43 +124,43 @@ const struct PokenavCallbacks PokenavMenuCallbacks[15] =
},
[POKENAV_CONDITION_PARTY - POKENAV_MENU_IDS_START] =
{
- .init = PokenavCallback_Init_7,
- .callback = sub_81CD070,
- .open = sub_81CDDD4,
- .createLoopTask = sub_81CDE2C,
- .isLoopTaskActive = sub_81CDE64,
- .free1 = sub_81CD1C0,
- .free2 = sub_81CECA0,
+ .init = PokenavCallback_Init_PartyCondition,
+ .callback = GetPartyConditionCallback,
+ .open = OpenPartyConditionMenu,
+ .createLoopTask = CreatePartyConditionLoopedTask,
+ .isLoopTaskActive = IsPartyConditionLoopedTaskActive,
+ .free1 = FreePartyConditionSubstruct1,
+ .free2 = FreePartyConditionSubstruct2,
},
[POKENAV_CONDITION_SEARCH_RESULTS - POKENAV_MENU_IDS_START] =
{
- .init = PokenavCallback_Init_8,
- .callback = sub_81CEFDC,
- .open = sub_81CF330,
- .createLoopTask = sub_81CF3A0,
- .isLoopTaskActive = sub_81CF3D0,
- .free1 = sub_81CEFF0,
- .free2 = sub_81CF3F8,
+ .init = PokenavCallback_Init_ConditionSearch,
+ .callback = GetConditionSearchResultsCallback,
+ .open = OpenConditionSearchResults,
+ .createLoopTask = CreateSearchResultsLoopedTask,
+ .isLoopTaskActive = IsSearchResultLoopedTaskActive,
+ .free1 = FreeSearchResultSubstruct1,
+ .free2 = FreeSearchResultSubstruct2,
},
- [POKENAV_MENU_9 - POKENAV_MENU_IDS_START] =
+ [POKENAV_CONDITION_GRAPH_FROM_SEARCH - POKENAV_MENU_IDS_START] =
{
- .init = PokenavCallback_Init_9,
- .callback = sub_81CD070,
- .open = sub_81CDDD4,
- .createLoopTask = sub_81CDE2C,
- .isLoopTaskActive = sub_81CDE64,
- .free1 = sub_81CD1C0,
- .free2 = sub_81CECA0,
+ .init = PokenavCallback_Init_ConditionGraphFromSearch,
+ .callback = GetPartyConditionCallback,
+ .open = OpenPartyConditionMenu,
+ .createLoopTask = CreatePartyConditionLoopedTask,
+ .isLoopTaskActive = IsPartyConditionLoopedTaskActive,
+ .free1 = FreePartyConditionSubstruct1,
+ .free2 = FreePartyConditionSubstruct2,
},
- [POKENAV_MENU_A - POKENAV_MENU_IDS_START] =
+ [POKENAV_RETURN_CONDITION_SEARCH - POKENAV_MENU_IDS_START] =
{
- .init = PokenavCallback_Init_10,
- .callback = sub_81CEFDC,
- .open = sub_81CF368,
- .createLoopTask = sub_81CF3A0,
- .isLoopTaskActive = sub_81CF3D0,
- .free1 = sub_81CEFF0,
- .free2 = sub_81CF3F8,
+ .init = PokenavCallback_Init_ReturnToMonSearchList,
+ .callback = GetConditionSearchResultsCallback,
+ .open = OpenConditionSearchListFromGraph,
+ .createLoopTask = CreateSearchResultsLoopedTask,
+ .isLoopTaskActive = IsSearchResultLoopedTaskActive,
+ .free1 = FreeSearchResultSubstruct1,
+ .free2 = FreeSearchResultSubstruct2,
},
[POKENAV_MATCH_CALL - POKENAV_MENU_IDS_START] =
{
@@ -176,33 +174,33 @@ const struct PokenavCallbacks PokenavMenuCallbacks[15] =
},
[POKENAV_RIBBONS_MON_LIST - POKENAV_MENU_IDS_START] =
{
- .init = PokenavCallback_Init_12,
- .callback = sub_81CFA34,
- .open = sub_81CFDD0,
- .createLoopTask = sub_81CFE40,
- .isLoopTaskActive = sub_81CFE70,
- .free1 = sub_81CFA48,
- .free2 = sub_81CFE98,
+ .init = PokenavCallback_Init_MonRibbonList,
+ .callback = GetRibbonsMonListCallback,
+ .open = OpenRibbonsMonList,
+ .createLoopTask = CreateRibbonsMonListLoopedTask,
+ .isLoopTaskActive = IsRibbonsMonListLoopedTaskActive,
+ .free1 = FreeRibbonsMonList1,
+ .free2 = FreeRibbonsMonList2,
},
- [POKENAV_MENU_D - POKENAV_MENU_IDS_START] =
+ [POKENAV_RIBBONS_SUMMARY_SCREEN - POKENAV_MENU_IDS_START] =
{
- .init = PokenavCallback_Init_13,
- .callback = sub_81D04A0,
- .open = sub_81D0978,
- .createLoopTask = sub_81D09B0,
- .isLoopTaskActive = sub_81D09E0,
- .free1 = sub_81D04B8,
- .free2 = sub_81D09F4,
+ .init = PokenavCallback_Init_RibbonsSummaryMenu,
+ .callback = GetRibbonsSummaryMenuCallback,
+ .open = OpenRibbonsSummaryMenu,
+ .createLoopTask = CreateRibbonsSummaryLoopedTask,
+ .isLoopTaskActive = IsRibbonsSummaryLoopedTaskActive,
+ .free1 = FreeRibbonsSummaryScreen1,
+ .free2 = FreeRibbonsSummaryScreen2,
},
- [POKENAV_MENU_E - POKENAV_MENU_IDS_START] =
+ [POKENAV_RIBBONS_RETURN_TO_MON_LIST - POKENAV_MENU_IDS_START] =
{
- .init = PokenavCallback_Init_14,
- .callback = sub_81CFA34,
- .open = sub_81CFE08,
- .createLoopTask = sub_81CFE40,
- .isLoopTaskActive = sub_81CFE70,
- .free1 = sub_81CFA48,
- .free2 = sub_81CFE98,
+ .init = PokenavCallback_Init_RibbonsMonListFromSummary,
+ .callback = GetRibbonsMonListCallback,
+ .open = OpenRibbonsMonListFromRibbonsSummary,
+ .createLoopTask = CreateRibbonsMonListLoopedTask,
+ .isLoopTaskActive = IsRibbonsMonListLoopedTaskActive,
+ .free1 = FreeRibbonsMonList1,
+ .free2 = FreeRibbonsMonList2,
},
};
@@ -317,7 +315,7 @@ static void Task_RunLoopedTask_LinkMode(u8 taskId)
void CB2_InitPokeNav(void)
{
- gPokenavResources = Alloc(sizeof(struct PokenavResources));
+ gPokenavResources = Alloc(sizeof(*gPokenavResources));
if (gPokenavResources == NULL)
{
SetMainCallback2(CB2_ReturnToFieldWithOpenMenu);
@@ -345,7 +343,7 @@ static void CB2_InitPokenavForTutorial(void)
if (gPaletteFade.active)
return;
- gPokenavResources = Alloc(sizeof(struct PokenavResources));
+ gPokenavResources = Alloc(sizeof(*gPokenavResources));
if (gPokenavResources == NULL)
{
SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
@@ -368,24 +366,24 @@ static void FreePokenavResources(void)
{
int i;
- for (i = 0; i < SUBSTRUCT_COUNT; i++)
+ for (i = 0; i < POKENAV_SUBSTRUCT_COUNT; i++)
FreePokenavSubstruct(i);
FREE_AND_SET_NULL(gPokenavResources);
InitKeys();
}
-static void InitPokenavResources(struct PokenavResources *a0)
+static void InitPokenavResources(struct PokenavResources *resources)
{
int i;
- for (i = 0; i < SUBSTRUCT_COUNT; i++)
- a0->field10[i] = NULL;
+ for (i = 0; i < POKENAV_SUBSTRUCT_COUNT; i++)
+ resources->substructPtrs[i] = NULL;
- a0->mode = POKENAV_MODE_NORMAL;
- a0->currentMenuIndex = 0;
- a0->hasAnyRibbons = AnyMonHasRibbon();
- a0->currentMenuCb1 = NULL;
+ resources->mode = POKENAV_MODE_NORMAL;
+ resources->currentMenuIndex = 0;
+ resources->hasAnyRibbons = AnyMonHasRibbon();
+ resources->currentMenuCb1 = NULL;
}
static bool32 AnyMonHasRibbon(void)
@@ -453,12 +451,12 @@ static void Task_Pokenav(u8 taskId)
tState = 4;
break;
case 2:
- if (sub_81C786C())
+ if (IsActiveMenuLoopTaskActive())
break;
tState = 3;
case 3:
menuId = GetCurrentMenuCB();
- if (menuId == -1)
+ if (menuId == POKENAV_MENU_FUNC_EXIT)
{
ShutdownPokenav();
tState = 5;
@@ -479,13 +477,13 @@ static void Task_Pokenav(u8 taskId)
}
else if (menuId != 0)
{
- sub_81C7850(menuId);
- if (sub_81C786C())
+ RunMainMenuLoopedTask(menuId);
+ if (IsActiveMenuLoopTaskActive())
tState = 2;
}
break;
case 4:
- if (!sub_81C75D4())
+ if (!IsActiveMenuLoopTaskActive_())
tState = 3;
break;
case 5:
@@ -516,15 +514,15 @@ static bool32 SetActivePokenavMenu(u32 menuId)
if (!PokenavMenuCallbacks[index].open())
return FALSE;
- sub_81C7834(PokenavMenuCallbacks[index].createLoopTask, PokenavMenuCallbacks[index].isLoopTaskActive);
+ SetActiveMenuLoopTasks(PokenavMenuCallbacks[index].createLoopTask, PokenavMenuCallbacks[index].isLoopTaskActive);
gPokenavResources->currentMenuCb1 = PokenavMenuCallbacks[index].callback;
gPokenavResources->currentMenuIndex = index;
return TRUE;
}
-static u32 sub_81C75D4(void)
+static u32 IsActiveMenuLoopTaskActive_(void)
{
- return sub_81C786C();
+ return IsActiveMenuLoopTaskActive();
}
static u32 GetCurrentMenuCB(void)
@@ -549,19 +547,19 @@ void SetPokenavVBlankCallback(void)
void *AllocSubstruct(u32 index, u32 size)
{
- gPokenavResources->field10[index] = Alloc(size);
- return gPokenavResources->field10[index];
+ gPokenavResources->substructPtrs[index] = Alloc(size);
+ return gPokenavResources->substructPtrs[index];
}
void *GetSubstructPtr(u32 index)
{
- return gPokenavResources->field10[index];
+ return gPokenavResources->substructPtrs[index];
}
void FreePokenavSubstruct(u32 index)
{
- if (gPokenavResources->field10[index] != NULL)
- FREE_AND_SET_NULL(gPokenavResources->field10[index]);
+ if (gPokenavResources->substructPtrs[index] != NULL)
+ FREE_AND_SET_NULL(gPokenavResources->substructPtrs[index]);
}
u32 GetPokenavMode(void)
diff --git a/src/pokenav_conditions_1.c b/src/pokenav_conditions_1.c
index 488d40d13..c27cd410c 100644
--- a/src/pokenav_conditions_1.c
+++ b/src/pokenav_conditions_1.c
@@ -12,105 +12,104 @@
#include "strings.h"
#include "text.h"
#include "constants/songs.h"
-#include "constants/species.h"
struct PokenavSub11
{
u32 monPal[3][0x20];
u8 fill[0x180];
u32 monPicGfx[3][0x800];
- u8 unk6300;
- s16 unk6302;
- u32 (*unk6304)(struct PokenavSub11 *);
+ u8 searchMode;
+ s16 monIndex;
+ u32 (*callback)(struct PokenavSub11 *);
u8 fill2[0x6320 - 0x6308];
- u8 unk6320[3][24];
- u8 unk6368[3][64];
- struct ConditionGraph unk6428;
- u8 unk6780[3];
- u8 unk6783[3];
- s8 unk6786;
+ u8 searchLocBuffer[3][24];
+ u8 nameBuffer[3][64];
+ struct ConditionGraph conditionData;
+ u8 sheen[3];
+ u8 monMarks[3];
+ s8 mark;
s8 unk6787;
s8 unk6788;
s8 unk6789;
- u8 unk678A;
+ u8 state;
};
-void sub_81CD970(void);
+void InitPartyConditionListParameters(void);
void sub_81CD9F8(void);
-u32 sub_81CD08C(struct PokenavSub11 *structPtr);
-u32 sub_81CD19C(struct PokenavSub11 *structPtr);
-u32 sub_81CD110(struct PokenavSub11 *structPtr);
-u8 sub_81CD1E4(struct PokenavSub11 *structPtr);
-u8 sub_81CD258(u8 arg0);
-void sub_81CD824(s16 arg0, u8 arg1);
-void sub_81CDA1C(s16 arg0, u8 arg1);
-void sub_81CDB98(s16 arg0, u8 arg1);
+u32 HandlePartyConditionInput(struct PokenavSub11 *structPtr);
+u32 GetConditionReturnCallback(struct PokenavSub11 *structPtr);
+u32 ConditionMenu_OpenMarkingsMenu(struct PokenavSub11 *structPtr);
+u8 ConditionGraphHandleDpadInput(struct PokenavSub11 *structPtr);
+u8 SwitchConditionSummaryIndex(u8 moveUp);
+void CopyMonNameGenderLocation(s16 id, u8 arg1);
+void GetMonConditionGraphData(s16 id, u8 arg1);
+void ConditionGraphDrawMonPic(s16 id, u8 arg1);
// code
-bool32 PokenavCallback_Init_7(void)
+bool32 PokenavCallback_Init_PartyCondition(void)
{
- struct PokenavSub11 *structPtr = AllocSubstruct(11, sizeof(struct PokenavSub11));
+ struct PokenavSub11 *structPtr = AllocSubstruct(POKENAV_SUBSTRUCT_CONDITION_GRAPH, sizeof(struct PokenavSub11));
if (structPtr == NULL)
return FALSE;
- sub_81D1ED4(&structPtr->unk6428);
- sub_81CD970();
+ InitConditionGraphData(&structPtr->conditionData);
+ InitPartyConditionListParameters();
gKeyRepeatStartDelay = 20;
- structPtr->unk6304 = sub_81CD08C;
+ structPtr->callback = HandlePartyConditionInput;
return TRUE;
}
-bool32 PokenavCallback_Init_9(void)
+bool32 PokenavCallback_Init_ConditionGraphFromSearch(void)
{
- struct PokenavSub11 *structPtr = AllocSubstruct(11, sizeof(struct PokenavSub11));
+ struct PokenavSub11 *structPtr = AllocSubstruct(POKENAV_SUBSTRUCT_CONDITION_GRAPH, sizeof(struct PokenavSub11));
if (structPtr == NULL)
return FALSE;
- sub_81D1ED4(&structPtr->unk6428);
+ InitConditionGraphData(&structPtr->conditionData);
sub_81CD9F8();
gKeyRepeatStartDelay = 20;
- structPtr->unk6304 = sub_81CD08C;
+ structPtr->callback = HandlePartyConditionInput;
return TRUE;
}
-u32 sub_81CD070(void)
+u32 GetPartyConditionCallback(void)
{
- struct PokenavSub11 *structPtr = GetSubstructPtr(11);
+ struct PokenavSub11 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_GRAPH);
- return structPtr->unk6304(structPtr);
+ return structPtr->callback(structPtr);
}
-u32 sub_81CD08C(struct PokenavSub11 *structPtr)
+u32 HandlePartyConditionInput(struct PokenavSub11 *structPtr)
{
- struct PokenavSub18 *unkPtr = GetSubstructPtr(18);
- u32 ret = sub_81CD1E4(structPtr);
+ struct PokenavSub18 *monListPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_LIST);
+ u32 ret = ConditionGraphHandleDpadInput(structPtr);
- if (ret == 0)
+ if (ret == PARTY_CONDITION_FUNC_NONE)
{
if (JOY_NEW(B_BUTTON))
{
PlaySE(SE_SELECT);
- structPtr->unk6304 = sub_81CD19C;
- ret = 2;
+ structPtr->callback = GetConditionReturnCallback;
+ ret = PARTY_CONDITION_FUNC_RETURN;
}
else if (JOY_NEW(A_BUTTON))
{
- if (structPtr->unk6300 == 0)
+ if (structPtr->searchMode == 0)
{
- if (unkPtr->unk2 == unkPtr->unk0 - 1)
+ if (monListPtr->currIndex == monListPtr->listCount - 1)
{
PlaySE(SE_SELECT);
- structPtr->unk6304 = sub_81CD19C;
- ret = 2;
+ structPtr->callback = GetConditionReturnCallback;
+ ret = PARTY_CONDITION_FUNC_RETURN;
}
}
else
{
PlaySE(SE_SELECT);
- ret = 5;
- structPtr->unk6304 = sub_81CD110;
+ ret = PARTY_CONDITION_FUNC_ADD_MARKINGS;
+ structPtr->callback = ConditionMenu_OpenMarkingsMenu;
}
}
}
@@ -118,204 +117,204 @@ u32 sub_81CD08C(struct PokenavSub11 *structPtr)
return ret;
}
-u32 sub_81CD110(struct PokenavSub11 *structPtr)
+u32 ConditionMenu_OpenMarkingsMenu(struct PokenavSub11 *structPtr)
{
- struct PokenavSub18 *unkPtr;
+ struct PokenavSub18 *monListPtr;
u8 markings;
- u32 ret = 0, boxId, monId;
+ u32 ret = PARTY_CONDITION_FUNC_NONE, boxId, monId;
- if (!sub_811FBA4())
+ if (!MonMarkingsMenuHandleInput())
{
- structPtr->unk6783[structPtr->unk6786] = sub_81CEF14();
- unkPtr = GetSubstructPtr(18);
- boxId = unkPtr->unk4[unkPtr->unk2].boxId;
- monId = unkPtr->unk4[unkPtr->unk2].monId;
- markings = structPtr->unk6783[structPtr->unk6786];
+ structPtr->monMarks[structPtr->mark] = GetMonMarkingsData();
+ monListPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_LIST);
+ boxId = monListPtr->monData[monListPtr->currIndex].boxId;
+ monId = monListPtr->monData[monListPtr->currIndex].monId;
+ markings = structPtr->monMarks[structPtr->mark];
if (boxId == TOTAL_BOXES_COUNT)
SetMonData(&gPlayerParty[monId], MON_DATA_MARKINGS, &markings);
else
SetBoxMonDataAt(boxId, monId, MON_DATA_MARKINGS, &markings);
- structPtr->unk6304 = sub_81CD08C;
- ret = 6;
+ structPtr->callback = HandlePartyConditionInput;
+ ret = PARTY_CONDITION_FUNC_CLOSE_MARKINGS;
}
return ret;
}
-u32 sub_81CD19C(struct PokenavSub11 *structPtr)
+u32 GetConditionReturnCallback(struct PokenavSub11 *structPtr)
{
- if (structPtr->unk6300 == 0)
+ if (structPtr->searchMode == 0)
return POKENAV_CONDITION_MENU;
else
- return POKENAV_MENU_A;
+ return POKENAV_RETURN_CONDITION_SEARCH;
}
-void sub_81CD1C0(void)
+void FreePartyConditionSubstruct1(void)
{
- struct PokenavSub11 *structPtr = GetSubstructPtr(11);
- if (structPtr->unk6300 == 0)
- FreePokenavSubstruct(18);
+ struct PokenavSub11 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_GRAPH);
+ if (structPtr->searchMode == 0)
+ FreePokenavSubstruct(POKENAV_SUBSTRUCT_MON_LIST);
- FreePokenavSubstruct(11);
+ FreePokenavSubstruct(POKENAV_SUBSTRUCT_CONDITION_GRAPH);
}
-u8 sub_81CD1E4(struct PokenavSub11 *structPtr)
+u8 ConditionGraphHandleDpadInput(struct PokenavSub11 *structPtr)
{
- struct PokenavSub18 *unkPtr = GetSubstructPtr(18);
+ struct PokenavSub18 *monListPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_LIST);
u8 ret = 0;
if (JOY_HELD(DPAD_UP))
{
- if (structPtr->unk6300 == 0 || unkPtr->unk2 != 0)
+ if (structPtr->searchMode == 0 || monListPtr->currIndex != 0)
{
PlaySE(SE_SELECT);
- ret = sub_81CD258(1);
+ ret = SwitchConditionSummaryIndex(1);
}
}
else if (JOY_HELD(DPAD_DOWN))
{
- if (structPtr->unk6300 == 0 || unkPtr->unk2 < unkPtr->unk0 - 1)
+ if (structPtr->searchMode == 0 || monListPtr->currIndex < monListPtr->listCount - 1)
{
PlaySE(SE_SELECT);
- ret = sub_81CD258(0);
+ ret = SwitchConditionSummaryIndex(0);
}
}
return ret;
}
-u8 sub_81CD258(u8 arg0)
+u8 SwitchConditionSummaryIndex(u8 moveUp)
{
u16 r7;
- bool8 r6, r0;
- struct PokenavSub11 *structPtr = GetSubstructPtr(11);
- struct PokenavSub18 *unkPtr = GetSubstructPtr(18);
-
- r7 = (arg0) ? structPtr->unk6788 : structPtr->unk6787;
- sub_81D1F84(&structPtr->unk6428, structPtr->unk6428.unk14[structPtr->unk6786], structPtr->unk6428.unk14[r7]);
- r6 = (unkPtr->unk2 != ((sub_81CDD5C() != 0) ? unkPtr->unk0 : unkPtr->unk0 - 1));
- if (arg0)
+ bool8 wasNotLastMon, isNotLastMon;
+ struct PokenavSub11 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_GRAPH);
+ struct PokenavSub18 *monListPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_LIST);
+
+ r7 = (moveUp) ? structPtr->unk6788 : structPtr->unk6787;
+ sub_81D1F84(&structPtr->conditionData, structPtr->conditionData.unk14[structPtr->mark], structPtr->conditionData.unk14[r7]);
+ wasNotLastMon = (monListPtr->currIndex != ((IsConditionMenuSearchMode() != 0) ? monListPtr->listCount : monListPtr->listCount - 1));
+ if (moveUp)
{
structPtr->unk6788 = structPtr->unk6787;
- structPtr->unk6787 = structPtr->unk6786;
- structPtr->unk6786 = r7;
+ structPtr->unk6787 = structPtr->mark;
+ structPtr->mark = r7;
structPtr->unk6789 = structPtr->unk6788;
- unkPtr->unk2 = (unkPtr->unk2 == 0) ? unkPtr->unk0 - 1 : unkPtr->unk2 - 1;
- structPtr->unk6302 = (unkPtr->unk2 != 0) ? unkPtr->unk2 - 1 : unkPtr->unk0 - 1;
+ monListPtr->currIndex = (monListPtr->currIndex == 0) ? monListPtr->listCount - 1 : monListPtr->currIndex - 1;
+ structPtr->monIndex = (monListPtr->currIndex != 0) ? monListPtr->currIndex - 1 : monListPtr->listCount - 1;
}
else
{
structPtr->unk6787 = structPtr->unk6788;
- structPtr->unk6788 = structPtr->unk6786;
- structPtr->unk6786 = r7;
+ structPtr->unk6788 = structPtr->mark;
+ structPtr->mark = r7;
structPtr->unk6789 = structPtr->unk6787;
- unkPtr->unk2 = (unkPtr->unk2 < unkPtr->unk0 - 1) ? unkPtr->unk2 + 1 : 0;
- structPtr->unk6302 = (unkPtr->unk2 < unkPtr->unk0 - 1) ? unkPtr->unk2 + 1 : 0;
+ monListPtr->currIndex = (monListPtr->currIndex < monListPtr->listCount - 1) ? monListPtr->currIndex + 1 : 0;
+ structPtr->monIndex = (monListPtr->currIndex < monListPtr->listCount - 1) ? monListPtr->currIndex + 1 : 0;
}
- r0 = (unkPtr->unk2 != ((sub_81CDD5C() != 0) ? unkPtr->unk0 : unkPtr->unk0 - 1));
-
- if (!r6)
- return 3;
- else if (!r0)
- return 4;
+ isNotLastMon = (monListPtr->currIndex != ((IsConditionMenuSearchMode() != 0) ? monListPtr->listCount : monListPtr->listCount - 1));
+
+ if (!wasNotLastMon)
+ return PARTY_CONDITION_FUNC_NO_TRANSITION;
+ else if (!isNotLastMon)
+ return PARTY_CONDITION_FUNC_SLIDE_MON_OUT;
else
- return 1;
+ return PARTY_CONDITION_FUNC_SLIDE_MON_IN;
}
-bool32 sub_81CD3C4(void)
+bool32 LoadPartyConditionMenuGfx(void)
{
s32 var;
- struct PokenavSub11 *structPtr = GetSubstructPtr(11);
- struct PokenavSub18 *unkPtr = GetSubstructPtr(18);
+ struct PokenavSub11 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_GRAPH);
+ struct PokenavSub18 *monListPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_LIST);
- switch (structPtr->unk678A)
+ switch (structPtr->state)
{
case 0:
- sub_81CD824(unkPtr->unk2, 0);
+ CopyMonNameGenderLocation(monListPtr->currIndex, 0);
break;
case 1:
- sub_81CDA1C(unkPtr->unk2, 0);
+ GetMonConditionGraphData(monListPtr->currIndex, 0);
break;
case 2:
- sub_81CDB98(unkPtr->unk2, 0);
+ ConditionGraphDrawMonPic(monListPtr->currIndex, 0);
break;
case 3:
- if (unkPtr->unk0 == 1)
+ if (monListPtr->listCount == 1)
{
- structPtr->unk6786 = 0;
+ structPtr->mark = 0;
structPtr->unk6787 = 0;
structPtr->unk6788 = 0;
- structPtr->unk678A = 0;
+ structPtr->state = 0;
return TRUE;
}
else
{
- structPtr->unk6786 = 0;
+ structPtr->mark = 0;
structPtr->unk6787 = 1;
structPtr->unk6788 = 2;
}
break;
// These were probably ternaries just like cases 7-9, but couldn't match it any other way.
case 4:
- var = unkPtr->unk2 + 1;
- if (var >= unkPtr->unk0)
+ var = monListPtr->currIndex + 1;
+ if (var >= monListPtr->listCount)
var = 0;
- sub_81CD824(var, 1);
+ CopyMonNameGenderLocation(var, 1);
break;
case 5:
- var = unkPtr->unk2 + 1;
- if (var >= unkPtr->unk0)
+ var = monListPtr->currIndex + 1;
+ if (var >= monListPtr->listCount)
var = 0;
- sub_81CDA1C(var, 1);
+ GetMonConditionGraphData(var, 1);
break;
case 6:
- var = unkPtr->unk2 + 1;
- if (var >= unkPtr->unk0)
+ var = monListPtr->currIndex + 1;
+ if (var >= monListPtr->listCount)
var = 0;
- sub_81CDB98(var, 1);
+ ConditionGraphDrawMonPic(var, 1);
break;
case 7:
- sub_81CD824((unkPtr->unk2 - 1 >= 0) ? unkPtr->unk2 - 1 : unkPtr->unk0 - 1, 2);
+ CopyMonNameGenderLocation((monListPtr->currIndex - 1 >= 0) ? monListPtr->currIndex - 1 : monListPtr->listCount - 1, 2);
break;
case 8:
- sub_81CDA1C((unkPtr->unk2 - 1 >= 0) ? unkPtr->unk2 - 1 : unkPtr->unk0 - 1, 2);
+ GetMonConditionGraphData((monListPtr->currIndex - 1 >= 0) ? monListPtr->currIndex - 1 : monListPtr->listCount - 1, 2);
break;
case 9:
- sub_81CDB98((unkPtr->unk2 - 1 >= 0) ? unkPtr->unk2 - 1 : unkPtr->unk0 - 1, 2);
- structPtr->unk678A = 0;
+ ConditionGraphDrawMonPic((monListPtr->currIndex - 1 >= 0) ? monListPtr->currIndex - 1 : monListPtr->listCount - 1, 2);
+ structPtr->state = 0;
return TRUE;
}
- structPtr->unk678A++;
+ structPtr->state++;
return FALSE;
}
-bool32 sub_81CD548(u8 arg0)
+bool32 SetConditionGraphData(u8 mode)
{
- struct PokenavSub11 *structPtr = GetSubstructPtr(11);
+ struct PokenavSub11 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_GRAPH);
- switch (arg0)
+ switch (mode)
{
case 0:
- sub_81CD824(structPtr->unk6302, structPtr->unk6789);
+ CopyMonNameGenderLocation(structPtr->monIndex, structPtr->unk6789);
break;
case 1:
- sub_81CDA1C(structPtr->unk6302, structPtr->unk6789);
+ GetMonConditionGraphData(structPtr->monIndex, structPtr->unk6789);
break;
case 2:
- sub_81CDB98(structPtr->unk6302, structPtr->unk6789);
+ ConditionGraphDrawMonPic(structPtr->monIndex, structPtr->unk6789);
return TRUE;
}
return FALSE;
}
-u8 *sub_81CD5CC(u8 *dst, const u8 *src, s16 n)
+u8 *CopyStringLeftAlignedToConditionData(u8 *dst, const u8 *src, s16 n)
{
while (*src != EOS)
*dst++ = *src++, n--;
@@ -327,15 +326,15 @@ u8 *sub_81CD5CC(u8 *dst, const u8 *src, s16 n)
return dst;
}
-u8 *sub_81CD624(u8 *str, u16 id, bool8 arg3)
+u8 *CopyMonConditionNameGender(u8 *str, u16 id, bool8 arg3)
{
u16 boxId, monId, gender, species, level, lvlDigits;
struct BoxPokemon *boxMon;
u8 *txtPtr, *str_;
- struct PokenavSub18 *unkPtr = GetSubstructPtr(18);
+ struct PokenavSub18 *monListPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_LIST);
- boxId = unkPtr->unk4[id].boxId;
- monId = unkPtr->unk4[id].monId;
+ boxId = monListPtr->monData[id].boxId;
+ monId = monListPtr->monData[id].monId;
*(str++) = EXT_CTRL_CODE_BEGIN;
*(str++) = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW;
*(str++) = TEXT_COLOR_BLUE;
@@ -418,115 +417,115 @@ u8 *sub_81CD624(u8 *str, u16 id, bool8 arg3)
return str_;
}
-void sub_81CD824(s16 arg0, u8 arg1)
+void CopyMonNameGenderLocation(s16 id, u8 arg1)
{
u16 boxId, i;
- struct PokenavSub11 *structPtr = GetSubstructPtr(11);
- struct PokenavSub18 *unkPtr = GetSubstructPtr(18);
+ struct PokenavSub11 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_GRAPH);
+ struct PokenavSub18 *monListPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_LIST);
- if (arg0 != (sub_81CDD5C() != 0 ? unkPtr->unk0 : unkPtr->unk0 - 1))
+ if (id != (IsConditionMenuSearchMode() != 0 ? monListPtr->listCount : monListPtr->listCount - 1))
{
- sub_81CD624(structPtr->unk6368[arg1], arg0, FALSE);
- boxId = unkPtr->unk4[arg0].boxId;
- structPtr->unk6320[arg1][0] = EXT_CTRL_CODE_BEGIN;
- structPtr->unk6320[arg1][1] = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW;
- structPtr->unk6320[arg1][2] = TEXT_COLOR_BLUE;
- structPtr->unk6320[arg1][3] = TEXT_COLOR_TRANSPARENT;
- structPtr->unk6320[arg1][4] = TEXT_COLOR_LIGHT_BLUE;
+ CopyMonConditionNameGender(structPtr->nameBuffer[arg1], id, FALSE);
+ boxId = monListPtr->monData[id].boxId;
+ structPtr->searchLocBuffer[arg1][0] = EXT_CTRL_CODE_BEGIN;
+ structPtr->searchLocBuffer[arg1][1] = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW;
+ structPtr->searchLocBuffer[arg1][2] = TEXT_COLOR_BLUE;
+ structPtr->searchLocBuffer[arg1][3] = TEXT_COLOR_TRANSPARENT;
+ structPtr->searchLocBuffer[arg1][4] = TEXT_COLOR_LIGHT_BLUE;
if (boxId == TOTAL_BOXES_COUNT)
- sub_81CD5CC(&structPtr->unk6320[arg1][5], gText_InParty, 8);
+ CopyStringLeftAlignedToConditionData(&structPtr->searchLocBuffer[arg1][5], gText_InParty, 8);
else
- sub_81CD5CC(&structPtr->unk6320[arg1][5], GetBoxNamePtr(boxId), 8);
+ CopyStringLeftAlignedToConditionData(&structPtr->searchLocBuffer[arg1][5], GetBoxNamePtr(boxId), 8);
}
else
{
for (i = 0; i < 12; i++)
- structPtr->unk6368[arg1][i] = CHAR_SPACE;
- structPtr->unk6368[arg1][i] = EOS;
+ structPtr->nameBuffer[arg1][i] = CHAR_SPACE;
+ structPtr->nameBuffer[arg1][i] = EOS;
for (i = 0; i < 8; i++)
- structPtr->unk6320[arg1][i] = CHAR_SPACE;
- structPtr->unk6320[arg1][i] = EOS;
+ structPtr->searchLocBuffer[arg1][i] = CHAR_SPACE;
+ structPtr->searchLocBuffer[arg1][i] = EOS;
}
}
-void sub_81CD970(void)
+void InitPartyConditionListParameters(void)
{
u16 i, count;
- struct PokenavSub11 *structPtr = GetSubstructPtr(11);
- struct PokenavSub18 *unkPtr = AllocSubstruct(18, sizeof(struct PokenavSub18));
+ struct PokenavSub11 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_GRAPH);
+ struct PokenavSub18 *monListPtr = AllocSubstruct(POKENAV_SUBSTRUCT_MON_LIST, sizeof(struct PokenavSub18));
- structPtr->unk6300 = 0;
+ structPtr->searchMode = 0;
for (i = 0, count = 0; i < CalculatePlayerPartyCount(); i++)
{
if (!GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG))
{
- unkPtr->unk4[count].boxId = TOTAL_BOXES_COUNT;
- unkPtr->unk4[count].monId = i;
- unkPtr->unk4[count].data = 0;
+ monListPtr->monData[count].boxId = TOTAL_BOXES_COUNT;
+ monListPtr->monData[count].monId = i;
+ monListPtr->monData[count].data = 0;
count++;
}
}
- unkPtr->unk4[count].boxId = 0;
- unkPtr->unk4[count].monId = 0;
- unkPtr->unk4[count].data = 0;
- unkPtr->unk2 = 0;
- unkPtr->unk0 = count + 1;
- structPtr->unk678A = 0;
+ monListPtr->monData[count].boxId = 0;
+ monListPtr->monData[count].monId = 0;
+ monListPtr->monData[count].data = 0;
+ monListPtr->currIndex = 0;
+ monListPtr->listCount = count + 1;
+ structPtr->state = 0;
}
void sub_81CD9F8(void)
{
- struct PokenavSub11 *structPtr = GetSubstructPtr(11);
- structPtr->unk6300 = 1;
- structPtr->unk678A = 0;
+ struct PokenavSub11 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_GRAPH);
+ structPtr->searchMode = 1;
+ structPtr->state = 0;
}
-void sub_81CDA1C(s16 arg0, u8 arg1)
+void GetMonConditionGraphData(s16 id, u8 arg1)
{
u16 boxId, monId, i;
- struct PokenavSub11 *structPtr = GetSubstructPtr(11);
- struct PokenavSub18 *unkPtr = GetSubstructPtr(18);
+ struct PokenavSub11 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_GRAPH);
+ struct PokenavSub18 *monListPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_LIST);
- if (arg0 != (sub_81CDD5C() != 0 ? unkPtr->unk0 : unkPtr->unk0 - 1))
+ if (id != (IsConditionMenuSearchMode() != 0 ? monListPtr->listCount : monListPtr->listCount - 1))
{
- boxId = unkPtr->unk4[arg0].boxId;
- monId = unkPtr->unk4[arg0].monId;
- structPtr->unk6428.unk0[arg1][0] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_COOL, NULL);
- structPtr->unk6428.unk0[arg1][1] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_TOUGH, NULL);
- structPtr->unk6428.unk0[arg1][2] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_SMART, NULL);
- structPtr->unk6428.unk0[arg1][3] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_CUTE, NULL);
- structPtr->unk6428.unk0[arg1][4] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_BEAUTY, NULL);
- structPtr->unk6780[arg1] = (GetBoxOrPartyMonData(boxId, monId, MON_DATA_SHEEN, NULL) != 255)
+ boxId = monListPtr->monData[id].boxId;
+ monId = monListPtr->monData[id].monId;
+ structPtr->conditionData.stat[arg1][0] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_COOL, NULL);
+ structPtr->conditionData.stat[arg1][1] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_TOUGH, NULL);
+ structPtr->conditionData.stat[arg1][2] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_SMART, NULL);
+ structPtr->conditionData.stat[arg1][3] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_CUTE, NULL);
+ structPtr->conditionData.stat[arg1][4] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_BEAUTY, NULL);
+ structPtr->sheen[arg1] = (GetBoxOrPartyMonData(boxId, monId, MON_DATA_SHEEN, NULL) != 255)
? GetBoxOrPartyMonData(boxId, monId, MON_DATA_SHEEN, NULL) / 29u
: 9;
- structPtr->unk6783[arg1] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_MARKINGS, NULL);
- sub_81D2754(structPtr->unk6428.unk0[arg1], structPtr->unk6428.unk14[arg1]);
+ structPtr->monMarks[arg1] = GetBoxOrPartyMonData(boxId, monId, MON_DATA_MARKINGS, NULL);
+ sub_81D2754(structPtr->conditionData.stat[arg1], structPtr->conditionData.unk14[arg1]);
}
else
{
- for (i = 0; i < 5; i++)
+ for (i = 0; i < FLAVOR_COUNT; i++)
{
- structPtr->unk6428.unk0[arg1][i] = 0;
- structPtr->unk6428.unk14[arg1][i].unk0 = 155;
- structPtr->unk6428.unk14[arg1][i].unk2 = 91;
+ structPtr->conditionData.stat[arg1][i] = 0;
+ structPtr->conditionData.unk14[arg1][i].unk0 = 155;
+ structPtr->conditionData.unk14[arg1][i].unk2 = 91;
}
}
}
-void sub_81CDB98(s16 arg0, u8 arg1)
+void ConditionGraphDrawMonPic(s16 index, u8 arg1)
{
u16 boxId, monId, species;
u32 personality, tid;
- struct PokenavSub11 *structPtr = GetSubstructPtr(11);
- struct PokenavSub18 *unkPtr = GetSubstructPtr(18);
+ struct PokenavSub11 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_GRAPH);
+ struct PokenavSub18 *monListPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_LIST);
- if (arg0 == (sub_81CDD5C() != 0 ? unkPtr->unk0 : unkPtr->unk0 - 1))
+ if (index == (IsConditionMenuSearchMode() != 0 ? monListPtr->listCount : monListPtr->listCount - 1))
return;
- boxId = unkPtr->unk4[arg0].boxId;
- monId = unkPtr->unk4[arg0].monId;
+ boxId = monListPtr->monData[index].boxId;
+ monId = monListPtr->monData[index].monId;
species = GetBoxOrPartyMonData(boxId, monId, MON_DATA_SPECIES2, NULL);
tid = GetBoxOrPartyMonData(boxId, monId, MON_DATA_OT_ID, NULL);
personality = GetBoxOrPartyMonData(boxId, monId, MON_DATA_PERSONALITY, NULL);
@@ -534,92 +533,92 @@ void sub_81CDB98(s16 arg0, u8 arg1)
LZ77UnCompWram(GetMonSpritePalFromSpeciesAndPersonality(species, tid, personality), structPtr->monPal[arg1]);
}
-u16 sub_81CDC50(void)
+u16 GetMonListCount(void)
{
- struct PokenavSub18 *unkPtr = GetSubstructPtr(18);
- return unkPtr->unk0;
+ struct PokenavSub18 *monListPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_LIST);
+ return monListPtr->listCount;
}
-u16 sub_81CDC60(void)
+u16 GetConditionGraphCurrentMonIndex(void)
{
- struct PokenavSub18 *unkPtr = GetSubstructPtr(18);
- return unkPtr->unk2;
+ struct PokenavSub18 *monListPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_LIST);
+ return monListPtr->currIndex;
}
-struct ConditionGraph *sub_81CDC70(void)
+struct ConditionGraph *GetConditionGraphDataPtr(void)
{
- struct PokenavSub11 *structPtr = GetSubstructPtr(11);
- return &structPtr->unk6428;
+ struct PokenavSub11 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_GRAPH);
+ return &structPtr->conditionData;
}
-u8 sub_81CDC84(void)
+u8 GetMonMarkIndex(void)
{
- struct PokenavSub11 *structPtr = GetSubstructPtr(11);
- return structPtr->unk6786;
+ struct PokenavSub11 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_GRAPH);
+ return structPtr->mark;
}
u8 sub_81CDC9C(void)
{
- struct PokenavSub11 *structPtr = GetSubstructPtr(11);
- return structPtr->unk6302;
+ struct PokenavSub11 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_GRAPH);
+ return structPtr->monIndex;
}
-void *sub_81CDCB4(u8 id)
+void *GetConditionMonPicGfx(u8 id)
{
- struct PokenavSub11 *structPtr = GetSubstructPtr(11);
+ struct PokenavSub11 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_GRAPH);
return structPtr->monPicGfx[id];
}
-void *sub_81CDCD4(u8 id)
+void *GetConditionMonPal(u8 id)
{
- struct PokenavSub11 *structPtr = GetSubstructPtr(11);
+ struct PokenavSub11 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_GRAPH);
return structPtr->monPal[id];
}
u8 sub_81CDCEC(void)
{
- struct PokenavSub11 *structPtr = GetSubstructPtr(11);
+ struct PokenavSub11 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_GRAPH);
return structPtr->unk6789;
}
-u8 *sub_81CDD04(u8 id)
+u8 *GetConditionMonNameBuffer(u8 id)
{
- struct PokenavSub11 *structPtr = GetSubstructPtr(11);
- return structPtr->unk6368[id];
+ struct PokenavSub11 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_GRAPH);
+ return structPtr->nameBuffer[id];
}
-u8 *sub_81CDD24(u8 id)
+u8 *GetConditionMonLocationBuffer(u8 id)
{
- struct PokenavSub11 *structPtr = GetSubstructPtr(11);
- return structPtr->unk6320[id];
+ struct PokenavSub11 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_GRAPH);
+ return structPtr->searchLocBuffer[id];
}
-u16 sub_81CDD48(void)
+u16 GetConditionMonDataBuffer(void)
{
- struct PokenavSub18 *unkPtr = GetSubstructPtr(18);
- return unkPtr->unk4[unkPtr->unk2].data;
+ struct PokenavSub18 *monListPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_LIST);
+ return monListPtr->monData[monListPtr->currIndex].data;
}
-bool32 sub_81CDD5C(void)
+bool32 IsConditionMenuSearchMode(void)
{
- struct PokenavSub11 *structPtr = GetSubstructPtr(11);
- if (structPtr->unk6300 == 1)
+ struct PokenavSub11 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_GRAPH);
+ if (structPtr->searchMode == 1)
return TRUE;
else
return FALSE;
}
-u8 sub_81CDD7C(void)
+u8 TryGetMonMarkId(void)
{
- struct PokenavSub11 *structPtr = GetSubstructPtr(11);
- if (structPtr->unk6300 == 1)
- return structPtr->unk6783[structPtr->unk6786];
+ struct PokenavSub11 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_GRAPH);
+ if (structPtr->searchMode == 1)
+ return structPtr->monMarks[structPtr->mark];
else
return 0;
}
-u8 sub_81CDDB0(void)
+u8 GetMonSheen(void)
{
- struct PokenavSub11 *structPtr = GetSubstructPtr(11);
- return structPtr->unk6780[structPtr->unk6786];
+ struct PokenavSub11 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_GRAPH);
+ return structPtr->sheen[structPtr->mark];
}
diff --git a/src/pokenav_conditions_2.c b/src/pokenav_conditions_2.c
index 7c536cd6a..c0e8c7d6d 100644
--- a/src/pokenav_conditions_2.c
+++ b/src/pokenav_conditions_2.c
@@ -15,22 +15,22 @@
#include "strings.h"
#include "text.h"
-u32 sub_81CE37C(s32);
-u32 sub_81CE2D0(s32);
-u32 sub_81CE4D8(s32);
-u32 sub_81CE5E4(s32);
-u32 sub_81CE6BC(s32);
-u32 sub_81CE700(s32);
+u32 LoopedTask_TransitionMons(s32);
+u32 LoopedTask_ExitPartyConditionMenu(s32);
+u32 LoopedTask_MoveCursorNoTransition(s32);
+u32 LoopedTask_SlideMonOut(s32);
+u32 LoopedTask_OpenMonMarkingsWindow(s32);
+u32 LoopedTask_CloseMonMarkingsWindow(s32);
BSS_DATA u8 gUnknown_030012BC;
const u16 gConditionGraphData_Pal[] = INCBIN_U16("graphics/pokenav/condition/graph_data.gbapal");
const u16 gConditionText_Pal[] = INCBIN_U16("graphics/pokenav/condition/text.gbapal");
const u32 gUnknown_08623228[] = INCBIN_U32("graphics/pokenav/8623228.4bpp.lz");
-const u32 gUnknown_0862323C[] = INCBIN_U32("graphics/pokenav/862323C.bin.lz");
-const u16 gUnknown_08623338[] = INCBIN_U16("graphics/pokenav/8623338.gbapal");
+const u32 sConditionGraph_Tilemap[] = INCBIN_U32("graphics/pokenav/862323C.bin.lz");
+const u16 sConditionGraphMonMarkingsPal[] = INCBIN_U16("graphics/pokenav/8623338.gbapal");
-const struct BgTemplate gUnknown_08623358[3] =
+const struct BgTemplate sPartyConditionBgTemplates[3] =
{
{
.bg = 1,
@@ -61,7 +61,7 @@ const struct BgTemplate gUnknown_08623358[3] =
}
};
-const struct WindowTemplate gUnknown_08623364 =
+const struct WindowTemplate sMonNameGenderWindowTemplate =
{
.bg = 1,
.tilemapLeft = 13,
@@ -72,7 +72,7 @@ const struct WindowTemplate gUnknown_08623364 =
.baseBlock = 2
};
-const struct WindowTemplate gUnknown_0862336C =
+const struct WindowTemplate sConditionGraphListIdWindowTemplate =
{
.bg = 1,
.tilemapLeft = 1,
@@ -83,7 +83,7 @@ const struct WindowTemplate gUnknown_0862336C =
.baseBlock = 0x36
};
-const struct WindowTemplate gUnknown_08623374 =
+const struct WindowTemplate sUnusedWindowTemplate1 =
{
.bg = 1,
.tilemapLeft = 1,
@@ -94,7 +94,7 @@ const struct WindowTemplate gUnknown_08623374 =
.baseBlock = 0x44
};
-const struct WindowTemplate gUnknown_0862337C =
+const struct WindowTemplate sUnusedWindowTemplate2 =
{
.bg = 1,
.tilemapLeft = 13,
@@ -105,15 +105,15 @@ const struct WindowTemplate gUnknown_0862337C =
.baseBlock = 0x44
};
-const LoopedTask gUnknown_08623384[] =
+const LoopedTask sPartyConditionLoopedTaskFuncs[] =
{
- NULL,
- sub_81CE37C,
- sub_81CE2D0,
- sub_81CE4D8,
- sub_81CE5E4,
- sub_81CE6BC,
- sub_81CE700
+ [PARTY_CONDITION_FUNC_NONE] = NULL,
+ [PARTY_CONDITION_FUNC_SLIDE_MON_IN] = LoopedTask_TransitionMons,
+ [PARTY_CONDITION_FUNC_RETURN] = LoopedTask_ExitPartyConditionMenu,
+ [PARTY_CONDITION_FUNC_NO_TRANSITION] = LoopedTask_MoveCursorNoTransition,
+ [PARTY_CONDITION_FUNC_SLIDE_MON_OUT] = LoopedTask_SlideMonOut,
+ [PARTY_CONDITION_FUNC_ADD_MARKINGS] = LoopedTask_OpenMonMarkingsWindow,
+ [PARTY_CONDITION_FUNC_CLOSE_MARKINGS] = LoopedTask_CloseMonMarkingsWindow
};
struct Pokenav7Struct
@@ -121,84 +121,84 @@ struct Pokenav7Struct
u32 loopedTaskId;
u8 tilemapBuffers[3][BG_SCREEN_SIZE];
u8 filler[2];
- u8 unk1806[10];
- u32 (*unk1810)(void);
- s16 unk1814;
- u8 unk1816;
- u16 unk1818;
- u16 unk181A;
+ u8 partyPokeballSpriteIds[10];
+ u32 (*callback)(void);
+ s16 monTransitionX;
+ u8 monPicSpriteId;
+ u16 monPalIndex;
+ u16 monGfxTileStart;
void *unk181C;
- u8 unk1820;
- u8 unk1821;
- u8 unk1822;
- u8 unk1823;
+ u8 nameGenderWindowId;
+ u8 listIndexWindowId;
+ u8 unusedWindowId1;
+ u8 unusedWindowId2;
struct PokemonMarkMenu monMarks;
- struct Sprite *unk28dc;
- struct Sprite *unk28e0[MAX_CONDITION_SPARKLES];
- u8 unk2908;
+ struct Sprite *monMarksSprite;
+ struct Sprite *conditionSparkleSprites[MAX_CONDITION_SPARKLES];
+ u8 windowModeState;
u8 filler2[0x38ac - 0x2909];
};
-extern s8 sub_81CDC84(void); // This function's declaration here is different than its definition in pokenav_unk_6. u8/s8
+extern s8 GetMonMarkIndex(void); // This function's declaration here is s8 vs. u8 in pokenav_conditions_1.c
-u32 sub_81CDE94(s32 state);
-u32 sub_81CDE80(void);
-void sub_81CED30(u8 var);
-void sub_81CE9E4(void);
-void sub_81CE934(void);
-bool32 sub_81CE754(u8 a0, u16 a1, bool8 a2);
+u32 LoopedTask_OpenPartyConditionGraph(s32 state);
+u32 GetPartyConditionLoopedTaskActive(void);
+void CreateConditionMonPic(u8 var);
+void CreateMonMarkingsOrPokeballIndicators(void);
+void CopyUnusedConditionWindowsToVram(void);
+bool32 UpdateConditionGraphWindows(u8 a0, u16 a1, bool8 a2);
void sub_81CEE44(void);
-void sub_81CEE90(void);
+void DoConditionGraphTransition(void);
void sub_81CEEC8(void);
void sub_81CEE68(void);
-void sub_81CEE74(bool8 showBg);
+void ToggleBg2(bool8 showBg);
// code
-bool32 sub_81CDDD4(void)
+bool32 OpenPartyConditionMenu(void)
{
- struct Pokenav7Struct *structPtr = AllocSubstruct(0xC, sizeof(struct Pokenav7Struct));
+ struct Pokenav7Struct *structPtr = AllocSubstruct(POKENAV_SUBSTRUCT_MON_MARK_MENU, sizeof(struct Pokenav7Struct));
if (structPtr == NULL)
return FALSE;
- structPtr->unk1816 = 0xFF;
- structPtr->loopedTaskId = CreateLoopedTask(sub_81CDE94, 1);
- structPtr->unk1810 = sub_81CDE80;
- structPtr->unk2908 = 0;
+ structPtr->monPicSpriteId = 0xFF;
+ structPtr->loopedTaskId = CreateLoopedTask(LoopedTask_OpenPartyConditionGraph, 1);
+ structPtr->callback = GetPartyConditionLoopedTaskActive;
+ structPtr->windowModeState = 0;
return TRUE;
}
-void sub_81CDE2C(s32 id)
+void CreatePartyConditionLoopedTask(s32 id)
{
- struct Pokenav7Struct *structPtr = GetSubstructPtr(0xC);
- structPtr->loopedTaskId = CreateLoopedTask(gUnknown_08623384[id], 1);
- structPtr->unk1810 = sub_81CDE80;
+ struct Pokenav7Struct *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_MARK_MENU);
+ structPtr->loopedTaskId = CreateLoopedTask(sPartyConditionLoopedTaskFuncs[id], 1);
+ structPtr->callback = GetPartyConditionLoopedTaskActive;
}
-u32 sub_81CDE64(void)
+u32 IsPartyConditionLoopedTaskActive(void)
{
- struct Pokenav7Struct *structPtr = GetSubstructPtr(0xC);
- return structPtr->unk1810();
+ struct Pokenav7Struct *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_MARK_MENU);
+ return structPtr->callback();
}
-u32 sub_81CDE80(void)
+u32 GetPartyConditionLoopedTaskActive(void)
{
- struct Pokenav7Struct *structPtr = GetSubstructPtr(0xC);
+ struct Pokenav7Struct *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_MARK_MENU);
return IsLoopedTaskActive(structPtr->loopedTaskId);
}
-u32 sub_81CDE94(s32 state)
+u32 LoopedTask_OpenPartyConditionGraph(s32 state)
{
- struct Pokenav7Struct *structPtr = GetSubstructPtr(0xC);
+ struct Pokenav7Struct *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_MARK_MENU);
switch (state)
{
case 0:
- if (sub_81CD3C4() != TRUE)
+ if (LoadPartyConditionMenuGfx() != TRUE)
return LT_PAUSE;
return LT_INC_AND_PAUSE;
case 1:
- InitBgTemplates(gUnknown_08623358, ARRAY_COUNT(gUnknown_08623358));
+ InitBgTemplates(sPartyConditionBgTemplates, ARRAY_COUNT(sPartyConditionBgTemplates));
ChangeBgX(1, 0, 0);
ChangeBgY(1, 0, 0);
ChangeBgX(2, 0, 0);
@@ -221,23 +221,23 @@ u32 sub_81CDE94(s32 state)
LZ77UnCompVram(gPokenavCondition_Tilemap, structPtr->tilemapBuffers[0]);
SetBgTilemapBuffer(3, structPtr->tilemapBuffers[0]);
- if (sub_81CDD5C() == TRUE)
+ if (IsConditionMenuSearchMode() == TRUE)
CopyToBgTilemapBufferRect(3, gPokenavOptions_Tilemap, 0, 5, 9, 4);
CopyBgTilemapBufferToVram(3);
CopyPaletteIntoBufferUnfaded(gPokenavCondition_Pal, 0x10, 0x20);
CopyPaletteIntoBufferUnfaded(gConditionText_Pal, 0xF0, 0x20);
- structPtr->unk1814 = -80;
+ structPtr->monTransitionX = -80;
return LT_INC_AND_PAUSE;
case 4:
if (FreeTempTileDataBuffersIfPossible())
return LT_PAUSE;
- LZ77UnCompVram(gUnknown_0862323C, structPtr->tilemapBuffers[2]);
+ LZ77UnCompVram(sConditionGraph_Tilemap, structPtr->tilemapBuffers[2]);
SetBgTilemapBuffer(2, structPtr->tilemapBuffers[2]);
CopyBgTilemapBufferToVram(2);
CopyPaletteIntoBufferUnfaded(gConditionGraphData_Pal, 0x30, 0x20);
- sub_81D21DC(2);
+ SetConditionGraphIOWindows(2);
return LT_INC_AND_PAUSE;
case 5:
sub_8199DF0(1, 0, 0, 1);
@@ -249,85 +249,85 @@ u32 sub_81CDE94(s32 state)
if (FreeTempTileDataBuffersIfPossible())
return LT_PAUSE;
- structPtr->unk1820 = AddWindow(&gUnknown_08623364);
- if (sub_81CDD5C() == TRUE)
+ structPtr->nameGenderWindowId = AddWindow(&sMonNameGenderWindowTemplate);
+ if (IsConditionMenuSearchMode() == TRUE)
{
- structPtr->unk1821 = AddWindow(&gUnknown_0862336C);
- structPtr->unk1822 = AddWindow(&gUnknown_08623374);
- structPtr->unk1823 = AddWindow(&gUnknown_0862337C);
+ structPtr->listIndexWindowId = AddWindow(&sConditionGraphListIdWindowTemplate);
+ structPtr->unusedWindowId1 = AddWindow(&sUnusedWindowTemplate1);
+ structPtr->unusedWindowId2 = AddWindow(&sUnusedWindowTemplate2);
}
DeactivateAllTextPrinters();
return LT_INC_AND_PAUSE;
case 7:
- sub_81CED30(0);
+ CreateConditionMonPic(0);
return LT_INC_AND_PAUSE;
case 8:
- sub_81CE9E4();
+ CreateMonMarkingsOrPokeballIndicators();
return LT_INC_AND_PAUSE;
case 9:
- if (sub_81CDD5C() == TRUE)
- sub_81CE934();
+ if (IsConditionMenuSearchMode() == TRUE)
+ CopyUnusedConditionWindowsToVram();
return LT_INC_AND_PAUSE;
case 10:
- sub_81CE754(0, sub_81CDC84(), TRUE);
+ UpdateConditionGraphWindows(0, GetMonMarkIndex(), TRUE);
return LT_INC_AND_PAUSE;
case 11:
- sub_81CE754(1, sub_81CDC84(), TRUE);
+ UpdateConditionGraphWindows(1, GetMonMarkIndex(), TRUE);
return LT_INC_AND_PAUSE;
case 12:
- sub_81CE754(2, sub_81CDC84(), TRUE);
+ UpdateConditionGraphWindows(2, GetMonMarkIndex(), TRUE);
return LT_INC_AND_PAUSE;
case 13:
- if (sub_81CE754(3, sub_81CDC84(), TRUE) != TRUE)
+ if (UpdateConditionGraphWindows(3, GetMonMarkIndex(), TRUE) != TRUE)
return LT_PAUSE;
- PutWindowTilemap(structPtr->unk1820);
- if (sub_81CDD5C() == TRUE)
+ PutWindowTilemap(structPtr->nameGenderWindowId);
+ if (IsConditionMenuSearchMode() == TRUE)
{
- PutWindowTilemap(structPtr->unk1821);
- PutWindowTilemap(structPtr->unk1822);
- PutWindowTilemap(structPtr->unk1823);
+ PutWindowTilemap(structPtr->listIndexWindowId);
+ PutWindowTilemap(structPtr->unusedWindowId1);
+ PutWindowTilemap(structPtr->unusedWindowId2);
}
return LT_INC_AND_PAUSE;
case 14:
ShowBg(1);
HideBg(2);
ShowBg(3);
- if (sub_81CDD5C() == TRUE)
+ if (IsConditionMenuSearchMode() == TRUE)
PrintHelpBarText(HELPBAR_CONDITION_MON_STATUS);
return LT_INC_AND_PAUSE;
case 15:
PokenavFadeScreen(1);
- if (!sub_81CDD5C())
+ if (!IsConditionMenuSearchMode())
{
- LoadLeftHeaderGfxForIndex(6);
- sub_81C7FA0(1, TRUE, 0);
- sub_81C7FA0(6, TRUE, 0);
+ LoadLeftHeaderGfxForIndex(POKENAV_GFX_PARTY_MENU);
+ ShowLeftHeaderGfx(POKENAV_GFX_CONDITION_MENU, TRUE, 0);
+ ShowLeftHeaderGfx(POKENAV_GFX_PARTY_MENU, TRUE, 0);
}
return LT_INC_AND_PAUSE;
case 16:
if (IsPaletteFadeActive())
return LT_PAUSE;
- if (!sub_81CDD5C() && sub_81C8010())
+ if (!IsConditionMenuSearchMode() && AreLeftHeaderSpritesMoving())
return LT_PAUSE;
SetVBlankCallback_(sub_81CEE44);
return LT_INC_AND_PAUSE;
case 17:
- sub_81CEE90();
- sub_81D20AC(sub_81CDC70());
+ DoConditionGraphTransition();
+ InitConditionGraphState(GetConditionGraphDataPtr());
return LT_INC_AND_PAUSE;
case 18:
- if (sub_81D20BC(sub_81CDC70()))
+ if (SetupConditionGraphScanlineParams(GetConditionGraphDataPtr()))
return LT_PAUSE;
return LT_INC_AND_PAUSE;
case 19:
- sub_81CEE74(TRUE);
+ ToggleBg2(TRUE);
return LT_INC_AND_PAUSE;
case 20:
- if (!TryUpdateConditionMonTransitionOn(sub_81CDC70(), &structPtr->unk1814))
+ if (!TryUpdateConditionMonTransitionOn(GetConditionGraphDataPtr(), &structPtr->monTransitionX))
{
- ResetConditionSparkleSprites(structPtr->unk28e0);
- if (sub_81CDD5C() == TRUE || sub_81CDC60() != sub_81CDC50())
- CreateConditionSparkleSprites(structPtr->unk28e0, structPtr->unk1816, sub_81CDDB0());
+ ResetConditionSparkleSprites(structPtr->conditionSparkleSprites);
+ if (IsConditionMenuSearchMode() == TRUE || GetConditionGraphCurrentMonIndex() != GetMonListCount())
+ CreateConditionSparkleSprites(structPtr->conditionSparkleSprites, structPtr->monPicSpriteId, GetMonSheen());
return LT_FINISH;
}
@@ -337,211 +337,211 @@ u32 sub_81CDE94(s32 state)
return LT_FINISH;
}
-u32 sub_81CE2D0(s32 state)
+u32 LoopedTask_ExitPartyConditionMenu(s32 state)
{
- struct Pokenav7Struct *structPtr = GetSubstructPtr(0xC);
+ struct Pokenav7Struct *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_MARK_MENU);
switch (state)
{
case 0:
sub_81CEEC8();
- DestroyConditionSparkleSprites(structPtr->unk28e0);
- return 1;
+ DestroyConditionSparkleSprites(structPtr->conditionSparkleSprites);
+ return LT_INC_AND_CONTINUE;
case 1:
- if (TryUpdateConditionMonTransitionOff(sub_81CDC70(), &structPtr->unk1814))
+ if (TryUpdateConditionMonTransitionOff(GetConditionGraphDataPtr(), &structPtr->monTransitionX))
return 2;
- sub_81CEE74(FALSE);
- return 1;
+ ToggleBg2(FALSE);
+ return LT_INC_AND_CONTINUE;
case 2:
PokenavFadeScreen(0);
- if (!sub_81CDD5C())
- sub_81C78A0();
- return 0;
+ if (!IsConditionMenuSearchMode())
+ SlideMenuHeaderDown();
+ return LT_INC_AND_PAUSE;
case 3:
if (IsPaletteFadeActive() || MainMenuLoopedTaskIsBusy())
- return 2;
- FreeConditionSparkles(structPtr->unk28e0);
+ return LT_PAUSE;
+ FreeConditionSparkles(structPtr->conditionSparkleSprites);
HideBg(1);
HideBg(2);
HideBg(3);
- return 1;
+ return LT_INC_AND_CONTINUE;
}
return LT_FINISH;
}
-u32 sub_81CE37C(s32 state)
+u32 LoopedTask_TransitionMons(s32 state)
{
- struct Pokenav7Struct *structPtr = GetSubstructPtr(0xC);
- struct ConditionGraph *unkPtr = sub_81CDC70();
+ struct Pokenav7Struct *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_MARK_MENU);
+ struct ConditionGraph *unkPtr = GetConditionGraphDataPtr();
switch (state)
{
case 0:
- sub_81CD548(0);
- return 1;
+ SetConditionGraphData(0);
+ return LT_INC_AND_CONTINUE;
case 1:
- sub_81CD548(1);
- return 1;
+ SetConditionGraphData(1);
+ return LT_INC_AND_CONTINUE;
case 2:
- sub_81CD548(2);
- DestroyConditionSparkleSprites(structPtr->unk28e0);
- return 1;
+ SetConditionGraphData(2);
+ DestroyConditionSparkleSprites(structPtr->conditionSparkleSprites);
+ return LT_INC_AND_CONTINUE;
case 3:
TransitionConditionGraph(unkPtr);
- return 1;
+ return LT_INC_AND_CONTINUE;
case 4:
- if (!MoveConditionMonOffscreen(&structPtr->unk1814))
+ if (!MoveConditionMonOffscreen(&structPtr->monTransitionX))
{
- sub_81CED30(sub_81CDC84());
- return 1;
+ CreateConditionMonPic(GetMonMarkIndex());
+ return LT_INC_AND_CONTINUE;
}
- return 2;
+ return LT_PAUSE;
case 5:
- sub_81CE754(0, sub_81CDC84(), FALSE);
- return 1;
+ UpdateConditionGraphWindows(0, GetMonMarkIndex(), FALSE);
+ return LT_INC_AND_CONTINUE;
case 6:
- sub_81CE754(1, sub_81CDC84(), FALSE);
- return 1;
+ UpdateConditionGraphWindows(1, GetMonMarkIndex(), FALSE);
+ return LT_INC_AND_CONTINUE;
case 7:
- sub_81CE754(2, sub_81CDC84(), FALSE);
- return 1;
+ UpdateConditionGraphWindows(2, GetMonMarkIndex(), FALSE);
+ return LT_INC_AND_CONTINUE;
case 8:
- if (sub_81CE754(3, sub_81CDC84(), FALSE) == TRUE)
- return 1;
- return 2;
+ if (UpdateConditionGraphWindows(3, GetMonMarkIndex(), FALSE) == TRUE)
+ return LT_INC_AND_CONTINUE;
+ return LT_PAUSE;
case 9:
- unkPtr = sub_81CDC70();
- if (!TryUpdateConditionMonTransitionOn(unkPtr, &structPtr->unk1814))
+ unkPtr = GetConditionGraphDataPtr();
+ if (!TryUpdateConditionMonTransitionOn(unkPtr, &structPtr->monTransitionX))
{
- ResetConditionSparkleSprites(structPtr->unk28e0);
- if (sub_81CDD5C() != TRUE && sub_81CDC60() == sub_81CDC50())
- return 1;
+ ResetConditionSparkleSprites(structPtr->conditionSparkleSprites);
+ if (IsConditionMenuSearchMode() != TRUE && GetConditionGraphCurrentMonIndex() == GetMonListCount())
+ return LT_INC_AND_CONTINUE;
- CreateConditionSparkleSprites(structPtr->unk28e0, structPtr->unk1816, sub_81CDDB0());
- return 1;
+ CreateConditionSparkleSprites(structPtr->conditionSparkleSprites, structPtr->monPicSpriteId, GetMonSheen());
+ return LT_INC_AND_CONTINUE;
}
- return 2;
+ return LT_PAUSE;
}
return LT_FINISH;
}
-u32 sub_81CE4D8(s32 state)
+u32 LoopedTask_MoveCursorNoTransition(s32 state)
{
- struct Pokenav7Struct *structPtr = GetSubstructPtr(0xC);
+ struct Pokenav7Struct *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_MARK_MENU);
switch (state)
{
case 0:
- sub_81CD548(0);
- return 1;
+ SetConditionGraphData(0);
+ return LT_INC_AND_CONTINUE;
case 1:
- sub_81CD548(1);
- return 1;
+ SetConditionGraphData(1);
+ return LT_INC_AND_CONTINUE;
case 2:
- sub_81CD548(2);
- return 1;
+ SetConditionGraphData(2);
+ return LT_INC_AND_CONTINUE;
case 3:
- sub_81CED30(sub_81CDC84());
- return 1;
+ CreateConditionMonPic(GetMonMarkIndex());
+ return LT_INC_AND_CONTINUE;
case 4:
- sub_81CE754(0, sub_81CDC84(), FALSE);
- return 1;
+ UpdateConditionGraphWindows(0, GetMonMarkIndex(), FALSE);
+ return LT_INC_AND_CONTINUE;
case 5:
- sub_81CE754(1, sub_81CDC84(), FALSE);
- return 1;
+ UpdateConditionGraphWindows(1, GetMonMarkIndex(), FALSE);
+ return LT_INC_AND_CONTINUE;
case 6:
- sub_81CE754(2, sub_81CDC84(), FALSE);
- return 1;
+ UpdateConditionGraphWindows(2, GetMonMarkIndex(), FALSE);
+ return LT_INC_AND_CONTINUE;
case 7:
- if (sub_81CE754(3, sub_81CDC84(), FALSE) == TRUE)
- return 1;
- return 2;
+ if (UpdateConditionGraphWindows(3, GetMonMarkIndex(), FALSE) == TRUE)
+ return LT_INC_AND_CONTINUE;
+ return LT_PAUSE;
case 8:
- if (!TryUpdateConditionMonTransitionOn(sub_81CDC70(), &structPtr->unk1814))
+ if (!TryUpdateConditionMonTransitionOn(GetConditionGraphDataPtr(), &structPtr->monTransitionX))
{
- ResetConditionSparkleSprites(structPtr->unk28e0);
- CreateConditionSparkleSprites(structPtr->unk28e0, structPtr->unk1816, sub_81CDDB0());
- return 1;
+ ResetConditionSparkleSprites(structPtr->conditionSparkleSprites);
+ CreateConditionSparkleSprites(structPtr->conditionSparkleSprites, structPtr->monPicSpriteId, GetMonSheen());
+ return LT_INC_AND_CONTINUE;
}
- return 2;
+ return LT_PAUSE;
}
return LT_FINISH;
}
-u32 sub_81CE5E4(s32 state)
+u32 LoopedTask_SlideMonOut(s32 state)
{
- struct Pokenav7Struct *structPtr = GetSubstructPtr(0xC);
+ struct Pokenav7Struct *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_MARK_MENU);
switch (state)
{
case 0:
- sub_81CD548(0);
- return 1;
+ SetConditionGraphData(0);
+ return LT_INC_AND_CONTINUE;
case 1:
- sub_81CD548(1);
- return 1;
+ SetConditionGraphData(1);
+ return LT_INC_AND_CONTINUE;
case 2:
- sub_81CD548(2);
- DestroyConditionSparkleSprites(structPtr->unk28e0);
- return 1;
+ SetConditionGraphData(2);
+ DestroyConditionSparkleSprites(structPtr->conditionSparkleSprites);
+ return LT_INC_AND_CONTINUE;
case 3:
- if (!TryUpdateConditionMonTransitionOff(sub_81CDC70(), &structPtr->unk1814))
- return 1;
- return 2;
+ if (!TryUpdateConditionMonTransitionOff(GetConditionGraphDataPtr(), &structPtr->monTransitionX))
+ return LT_INC_AND_CONTINUE;
+ return LT_PAUSE;
case 4:
- sub_81CE754(0, sub_81CDC84(), FALSE);
- return 1;
+ UpdateConditionGraphWindows(0, GetMonMarkIndex(), FALSE);
+ return LT_INC_AND_CONTINUE;
case 5:
- sub_81CE754(1, sub_81CDC84(), FALSE);
- return 1;
+ UpdateConditionGraphWindows(1, GetMonMarkIndex(), FALSE);
+ return LT_INC_AND_CONTINUE;
case 6:
- sub_81CE754(2, sub_81CDC84(), FALSE);
- return 1;
+ UpdateConditionGraphWindows(2, GetMonMarkIndex(), FALSE);
+ return LT_INC_AND_CONTINUE;
case 7:
- if (sub_81CE754(3, sub_81CDC84(), FALSE) == TRUE)
- return 1;
- return 2;
+ if (UpdateConditionGraphWindows(3, GetMonMarkIndex(), FALSE) == TRUE)
+ return LT_INC_AND_CONTINUE;
+ return LT_PAUSE;
}
return LT_FINISH;
}
-u32 sub_81CE6BC(s32 state)
+u32 LoopedTask_OpenMonMarkingsWindow(s32 state)
{
switch (state)
{
case 0:
- sub_811FAA4(sub_81CDD7C(), 176, 32);
- return 1;
+ sub_811FAA4(TryGetMonMarkId(), 176, 32);
+ return LT_INC_AND_CONTINUE;
case 1:
PrintHelpBarText(HELPBAR_CONDITION_MARKINGS);
- return 1;
+ return LT_INC_AND_CONTINUE;
case 2:
if (WaitForHelpBar() == TRUE)
- return 2;
- return 1;
+ return LT_PAUSE;
+ return LT_INC_AND_CONTINUE;
}
return LT_FINISH;
}
-u32 sub_81CE700(s32 state)
+u32 LoopedTask_CloseMonMarkingsWindow(s32 state)
{
switch (state)
{
case 0:
sub_811FAF8();
- return 1;
+ return LT_INC_AND_CONTINUE;
case 1:
PrintHelpBarText(HELPBAR_CONDITION_MON_STATUS);
- return 1;
+ return LT_INC_AND_CONTINUE;
case 2:
if (WaitForHelpBar() == TRUE)
- return 2;
- return 1;
+ return LT_PAUSE;
+ return LT_INC_AND_CONTINUE;
}
return LT_FINISH;
@@ -555,68 +555,68 @@ static u8 *UnusedPrintNumberString(u8 *dst, u16 num)
return txtPtr;
}
-bool32 sub_81CE754(u8 a0, u16 a1, bool8 a2)
+bool32 UpdateConditionGraphWindows(u8 mode, u16 bufferIndex, bool8 winMode)
{
u8 text[32];
const u8 *str;
- struct Pokenav7Struct *structPtr = GetSubstructPtr(0xC);
+ struct Pokenav7Struct *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_MARK_MENU);
- switch (a0)
+ switch (mode)
{
case 0:
- FillWindowPixelBuffer(structPtr->unk1820, 0);
- if (sub_81CDD5C() == TRUE)
- FillWindowPixelBuffer(structPtr->unk1821, 0);
+ FillWindowPixelBuffer(structPtr->nameGenderWindowId, 0);
+ if (IsConditionMenuSearchMode() == TRUE)
+ FillWindowPixelBuffer(structPtr->listIndexWindowId, 0);
break;
case 1:
- if (sub_81CDC60() != sub_81CDC50() - 1 || sub_81CDD5C() == TRUE)
+ if (GetConditionGraphCurrentMonIndex() != GetMonListCount() - 1 || IsConditionMenuSearchMode() == TRUE)
{
- str = sub_81CDD04(a1);
- AddTextPrinterParameterized(structPtr->unk1820, 1, str, 0, 1, 0, NULL);
+ str = GetConditionMonNameBuffer(bufferIndex);
+ AddTextPrinterParameterized(structPtr->nameGenderWindowId, 1, str, 0, 1, 0, NULL);
}
break;
case 2:
- if (sub_81CDD5C() == TRUE)
+ if (IsConditionMenuSearchMode() == TRUE)
{
- str = sub_81CDD24(a1);
- AddTextPrinterParameterized(structPtr->unk1820, 1, str, 0, 17, 0, NULL);
+ str = GetConditionMonLocationBuffer(bufferIndex);
+ AddTextPrinterParameterized(structPtr->nameGenderWindowId, 1, str, 0, 17, 0, NULL);
text[0] = EXT_CTRL_CODE_BEGIN;
text[1] = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW;
text[2] = TEXT_COLOR_BLUE;
text[3] = TEXT_COLOR_TRANSPARENT;
text[4] = TEXT_COLOR_LIGHT_BLUE;
StringCopy(text + 5, gText_Number2);
- AddTextPrinterParameterized(structPtr->unk1821, 1, text, 4, 1, 0, NULL);
- ConvertIntToDecimalStringN(text + 5, sub_81CDD48(), STR_CONV_MODE_RIGHT_ALIGN, 4);
- AddTextPrinterParameterized(structPtr->unk1821, 1, text, 28, 1, 0, NULL);
+ AddTextPrinterParameterized(structPtr->listIndexWindowId, 1, text, 4, 1, 0, NULL);
+ ConvertIntToDecimalStringN(text + 5, GetConditionMonDataBuffer(), STR_CONV_MODE_RIGHT_ALIGN, 4);
+ AddTextPrinterParameterized(structPtr->listIndexWindowId, 1, text, 28, 1, 0, NULL);
}
break;
case 3:
- switch (structPtr->unk2908)
+ switch (structPtr->windowModeState)
{
case 0:
- if (a2)
- CopyWindowToVram(structPtr->unk1820, 3);
+ if (winMode)
+ CopyWindowToVram(structPtr->nameGenderWindowId, 3);
else
- CopyWindowToVram(structPtr->unk1820, 2);
+ CopyWindowToVram(structPtr->nameGenderWindowId, 2);
- if (sub_81CDD5C() == TRUE)
+ if (IsConditionMenuSearchMode() == TRUE)
{
- structPtr->unk2908++;
+ structPtr->windowModeState++;
return FALSE;
}
else
{
- structPtr->unk2908 = 0;
+ structPtr->windowModeState = 0;
return TRUE;
}
case 1:
- if (a2)
- CopyWindowToVram(structPtr->unk1821, 3);
+ if (winMode)
+ CopyWindowToVram(structPtr->listIndexWindowId, 3);
else
- CopyWindowToVram(structPtr->unk1821, 2);
+ CopyWindowToVram(structPtr->listIndexWindowId, 2);
- structPtr->unk2908 = 0;
+ structPtr->windowModeState = 0;
return TRUE;
}
}
@@ -624,36 +624,36 @@ bool32 sub_81CE754(u8 a0, u16 a1, bool8 a2)
return FALSE;
}
-void sub_81CE934(void)
+void CopyUnusedConditionWindowsToVram(void)
{
- struct Pokenav7Struct *structPtr = GetSubstructPtr(0xC);
+ struct Pokenav7Struct *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_MARK_MENU);
- CopyWindowToVram(structPtr->unk1822, 3);
- CopyWindowToVram(structPtr->unk1823, 3);
+ CopyWindowToVram(structPtr->unusedWindowId1, 3);
+ CopyWindowToVram(structPtr->unusedWindowId2, 3);
}
void sub_81CE964(struct Sprite *sprite)
{
- if (sprite->data[0] == sub_81CDC60())
+ if (sprite->data[0] == GetConditionGraphCurrentMonIndex())
StartSpriteAnim(sprite, 0);
else
StartSpriteAnim(sprite, 1);
}
-void sub_81CE990(struct Sprite *sprite)
+void HighlightCurrentPartyIndexPokeball(struct Sprite *sprite)
{
- if (sub_81CDC60() == sub_81CDC50() - 1)
+ if (GetConditionGraphCurrentMonIndex() == GetMonListCount() - 1)
sprite->oam.paletteNum = IndexOfSpritePaletteTag(0x65);
else
sprite->oam.paletteNum = IndexOfSpritePaletteTag(0x66);
}
-void sub_81CE9C8(struct Sprite *sprite)
+void MonMarkingsCallback(struct Sprite *sprite)
{
- StartSpriteAnim(sprite, sub_81CDD7C());
+ StartSpriteAnim(sprite, TryGetMonMarkId());
}
-void sub_81CE9E4(void)
+void CreateMonMarkingsOrPokeballIndicators(void)
{
struct SpriteSheet sprSheets[4];
struct SpriteTemplate sprTemplate;
@@ -661,39 +661,40 @@ void sub_81CE9E4(void)
struct SpriteSheet sprSheet;
struct Sprite *sprite;
u16 i, spriteId;
- struct Pokenav7Struct *structPtr = GetSubstructPtr(0xC);
+ struct Pokenav7Struct *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_MARK_MENU);
LoadConditionSelectionIcons(sprSheets, &sprTemplate, sprPals);
- if (sub_81CDD5C() == TRUE)
+ if (IsConditionMenuSearchMode() == TRUE)
{
structPtr->monMarks.baseTileTag = 0x6A;
structPtr->monMarks.basePaletteTag = 0x6A;
sub_811F90C(&structPtr->monMarks);
sub_811FA90();
- sprite = sub_811FF94(0x69, 0x69, gUnknown_08623338);
+ sprite = CreateMonMarkingsSpriteWithPal(0x69, 0x69, sConditionGraphMonMarkingsPal);
sprite->oam.priority = 3;
sprite->pos1.x = 192;
sprite->pos1.y = 32;
- sprite->callback = sub_81CE9C8;
- structPtr->unk28dc = sprite;
- sub_81C7990(IndexOfSpritePaletteTag(0x69), 0);
+ sprite->callback = MonMarkingsCallback;
+ structPtr->monMarksSprite = sprite;
+ PokenavFillPalette(IndexOfSpritePaletteTag(0x69), 0);
}
else
{
+ // party mode -> add pokeballs on right hand side
LoadSpriteSheets(sprSheets);
Pokenav_AllocAndLoadPalettes(sprPals);
- for (i = 0; i < sub_81CDC50() - 1; i++)
+ for (i = 0; i < GetMonListCount() - 1; i++)
{
spriteId = CreateSprite(&sprTemplate, 226, (i * 20) + 8, 0);
if (spriteId != MAX_SPRITES)
{
- structPtr->unk1806[i] = spriteId;
+ structPtr->partyPokeballSpriteIds[i] = spriteId;
gSprites[spriteId].data[0] = i;
gSprites[spriteId].callback = sub_81CE964;
}
else
{
- structPtr->unk1806[i] = 0xFF;
+ structPtr->partyPokeballSpriteIds[i] = 0xFF;
}
}
@@ -704,27 +705,27 @@ void sub_81CE9E4(void)
spriteId = CreateSprite(&sprTemplate, 230, (i * 20) + 8, 0);
if (spriteId != MAX_SPRITES)
{
- structPtr->unk1806[i] = spriteId;
+ structPtr->partyPokeballSpriteIds[i] = spriteId;
gSprites[spriteId].oam.size = 0;
}
else
{
- structPtr->unk1806[i] = 0xFF;
+ structPtr->partyPokeballSpriteIds[i] = 0xFF;
}
}
sprTemplate.tileTag = 0x66;
- sprTemplate.callback = sub_81CE990;
+ sprTemplate.callback = HighlightCurrentPartyIndexPokeball;
spriteId = CreateSprite(&sprTemplate, 222, (i * 20) + 8, 0);
if (spriteId != MAX_SPRITES)
{
- structPtr->unk1806[i] = spriteId;
+ structPtr->partyPokeballSpriteIds[i] = spriteId;
gSprites[spriteId].oam.shape = SPRITE_SHAPE(32x16);
gSprites[spriteId].oam.size = SPRITE_SIZE(32x16);
}
else
{
- structPtr->unk1806[i] = 0xFF;
+ structPtr->partyPokeballSpriteIds[i] = 0xFF;
}
}
@@ -738,9 +739,9 @@ void sub_81CEBF4(struct Pokenav7Struct *structPtr)
{
u8 i;
- if (sub_81CDD5C() == TRUE)
+ if (IsConditionMenuSearchMode() == TRUE)
{
- DestroySprite(structPtr->unk28dc);
+ DestroySprite(structPtr->monMarksSprite);
FreeSpriteTilesByTag(0x6A);
FreeSpriteTilesByTag(0x69);
FreeSpritePaletteByTag(0x6A);
@@ -749,7 +750,7 @@ void sub_81CEBF4(struct Pokenav7Struct *structPtr)
else
{
for (i = 0; i < 7; i++)
- DestroySprite(&gSprites[structPtr->unk1806[i]]);
+ DestroySprite(&gSprites[structPtr->partyPokeballSpriteIds[i]]);
FreeSpriteTilesByTag(0x65);
FreeSpriteTilesByTag(0x66);
@@ -758,83 +759,83 @@ void sub_81CEBF4(struct Pokenav7Struct *structPtr)
FreeSpritePaletteByTag(0x66);
}
- if (structPtr->unk1816 != 0xFF)
+ if (structPtr->monPicSpriteId != 0xFF)
{
- DestroySprite(&gSprites[structPtr->unk1816]);
+ DestroySprite(&gSprites[structPtr->monPicSpriteId]);
FreeSpriteTilesByTag(0x64);
FreeSpritePaletteByTag(0x64);
}
}
-void sub_81CECA0(void)
+void FreePartyConditionSubstruct2(void)
{
- struct Pokenav7Struct *structPtr = GetSubstructPtr(0xC);
+ struct Pokenav7Struct *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_MARK_MENU);
- RemoveWindow(structPtr->unk1820);
- if (sub_81CDD5C() == TRUE)
+ RemoveWindow(structPtr->nameGenderWindowId);
+ if (IsConditionMenuSearchMode() == TRUE)
{
- RemoveWindow(structPtr->unk1821);
- RemoveWindow(structPtr->unk1822);
- RemoveWindow(structPtr->unk1823);
+ RemoveWindow(structPtr->listIndexWindowId);
+ RemoveWindow(structPtr->unusedWindowId1);
+ RemoveWindow(structPtr->unusedWindowId2);
}
else
{
- sub_81C7FDC();
+ SetLeftHeaderSpritesInvisibility();
}
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_BG0_ON | DISPCNT_OBJ_1D_MAP);
sub_81CEBF4(structPtr);
sub_81CEE68();
- FreePokenavSubstruct(0xC);
+ FreePokenavSubstruct(POKENAV_SUBSTRUCT_MON_MARK_MENU);
}
-void sub_81CED10(struct Sprite *sprite)
+void MonPicGfxSpriteCallback(struct Sprite *sprite)
{
- struct Pokenav7Struct *structPtr = GetSubstructPtr(0xC);
- sprite->pos1.x = structPtr->unk1814 + 38;
+ struct Pokenav7Struct *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_MARK_MENU);
+ sprite->pos1.x = structPtr->monTransitionX + 38;
}
-void sub_81CED30(u8 var)
+void CreateConditionMonPic(u8 id)
{
struct SpriteTemplate sprTemplate;
struct SpriteSheet sprSheet;
struct SpritePalette sprPal;
u8 spriteId;
- struct Pokenav7Struct *structPtr = GetSubstructPtr(0xC);
+ struct Pokenav7Struct *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_MARK_MENU);
- if (structPtr->unk1816 == 0xFF)
+ if (structPtr->monPicSpriteId == 0xFF)
{
LoadConditionMonPicTemplate(&sprSheet, &sprTemplate, &sprPal);
- sprSheet.data = sub_81CDCB4(var);
- sprPal.data = sub_81CDCD4(var);
- structPtr->unk1818 = LoadSpritePalette(&sprPal);
- structPtr->unk181A = LoadSpriteSheet(&sprSheet);
+ sprSheet.data = GetConditionMonPicGfx(id);
+ sprPal.data = GetConditionMonPal(id);
+ structPtr->monPalIndex = LoadSpritePalette(&sprPal);
+ structPtr->monGfxTileStart = LoadSpriteSheet(&sprSheet);
spriteId = CreateSprite(&sprTemplate, 38, 104, 0);
- structPtr->unk1816 = spriteId;
+ structPtr->monPicSpriteId = spriteId;
if (spriteId == MAX_SPRITES)
{
FreeSpriteTilesByTag(0x64);
FreeSpritePaletteByTag(0x64);
- structPtr->unk1816 = 0xFF;
+ structPtr->monPicSpriteId = 0xFF;
}
else
{
- structPtr->unk1816 = spriteId;
- gSprites[structPtr->unk1816].callback = sub_81CED10;
- structPtr->unk181C = (void*)(VRAM) + 0x10000 + (structPtr->unk181A * 32);
- structPtr->unk1818 = (structPtr->unk1818 * 16) + 0x100;
+ structPtr->monPicSpriteId = spriteId;
+ gSprites[structPtr->monPicSpriteId].callback = MonPicGfxSpriteCallback;
+ structPtr->unk181C = (void*)(VRAM) + 0x10000 + (structPtr->monGfxTileStart * 32);
+ structPtr->monPalIndex = (structPtr->monPalIndex * 16) + 0x100;
}
}
else
{
- DmaCopy16Defvars(3, sub_81CDCB4(var), structPtr->unk181C, 0x800);
- LoadPalette(sub_81CDCD4(var), structPtr->unk1818, 0x20);
+ DmaCopy16Defvars(3, GetConditionMonPicGfx(id), structPtr->unk181C, 0x800);
+ LoadPalette(GetConditionMonPal(id), structPtr->monPalIndex, 0x20);
}
}
void sub_81CEE44(void)
{
- struct ConditionGraph *unk = sub_81CDC70();
+ struct ConditionGraph *unk = GetConditionGraphDataPtr();
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
@@ -847,7 +848,7 @@ void sub_81CEE68(void)
SetPokenavVBlankCallback();
}
-void sub_81CEE74(bool8 showBg)
+void ToggleBg2(bool8 showBg)
{
if (showBg)
ShowBg(2);
@@ -855,29 +856,29 @@ void sub_81CEE74(bool8 showBg)
HideBg(2);
}
-void sub_81CEE90(void)
+void DoConditionGraphTransition(void)
{
- struct ConditionGraph *unk = sub_81CDC70();
- u8 id = sub_81CDC84();
+ struct ConditionGraph *conditionPtr = GetConditionGraphDataPtr();
+ u8 id = GetMonMarkIndex();
gUnknown_030012BC = id;
- sub_81D1F84(unk, unk->unk14[3], unk->unk14[id]);
- TransitionConditionGraph(unk);
+ sub_81D1F84(conditionPtr, conditionPtr->unk14[3], conditionPtr->unk14[id]);
+ TransitionConditionGraph(conditionPtr);
}
void sub_81CEEC8(void)
{
- struct ConditionGraph *unk = sub_81CDC70();
+ struct ConditionGraph *conditionPtr = GetConditionGraphDataPtr();
- if (sub_81CDD5C() || sub_81CDC60() != sub_81CDC50() - 1)
- sub_81D1F84(unk, unk->unk14[sub_81CDC84()], unk->unk14[3]);
+ if (IsConditionMenuSearchMode() || GetConditionGraphCurrentMonIndex() != GetMonListCount() - 1)
+ sub_81D1F84(conditionPtr, conditionPtr->unk14[GetMonMarkIndex()], conditionPtr->unk14[3]);
}
-u8 sub_81CEF14(void)
+u8 GetMonMarkingsData(void)
{
- struct Pokenav7Struct *structPtr = GetSubstructPtr(0xC);
+ struct Pokenav7Struct *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_MARK_MENU);
- if (sub_81CDD5C() == 1)
+ if (IsConditionMenuSearchMode() == 1)
return structPtr->monMarks.markings;
else
return 0;
diff --git a/src/pokenav_conditions_3.c b/src/pokenav_conditions_3.c
index 15b687a42..d02d844d0 100644
--- a/src/pokenav_conditions_3.c
+++ b/src/pokenav_conditions_3.c
@@ -10,67 +10,78 @@
#include "international_string_util.h"
#include "constants/songs.h"
+enum
+{
+ CONDITION_SEARCH_FUNC_NONE,
+ CONDITION_SEARCH_FUNC_MOVE_UP,
+ CONDITION_SEARCH_FUNC_MOVE_DOWN,
+ CONDITION_SEARCH_FUNC_PAGE_UP,
+ CONDITION_SEARCH_FUNC_PAGE_DOWN,
+ CONDITION_SEARCH_FUNC_EXIT,
+ CONDITION_SEARCH_FUNC_SELECT_MON,
+};
+
struct PokenavSub7
{
- u32 (*unk0)(struct PokenavSub7 *);
+ u32 (*callback)(struct PokenavSub7 *);
u32 loopedTaskId;
u8 fill1[4];
- s32 unkC;
- s32 unk10;
- u32 unk14;
- u32 unk18;
- u32 unk1C;
- struct PokenavSub18 *unkPtr;
+ s32 boxId;
+ s32 monId;
+ u32 conditionDataId;
+ u32 returnFromGraph;
+ u32 isPartyCondition;
+ struct PokenavSub18 *monList;
};
struct PokenavSub8
{
bool32 (*callback)(void);
- u32 ltid;
+ u32 ltid; //looped task Id
u16 winid;
- bool32 unkC;
+ bool32 fromGraph;
u8 buff[BG_SCREEN_SIZE];
}; // size: 0x810
-static u32 sub_81CF010(struct PokenavSub7 *structPtr);
-static u32 sub_81CF030(struct PokenavSub7 *structPtr);
-static u32 sub_81CF0B8(struct PokenavSub7 *structPtr);
-static u32 sub_81CF0B0(struct PokenavSub7 *structPtr);
-static u32 sub_81CF11C(s32 state);
-static u32 sub_81CF134(s32 state);
-static u32 sub_81CF1C4(s32 state);
-static u32 sub_81CF1D8(s32 state);
+static u32 HandleConditionSearchInput_WaitSetup(struct PokenavSub7 *structPtr);
+static u32 HandleConditionSearchInput(struct PokenavSub7 *structPtr);
+static u32 OpenConditionGraphFromSearchList(struct PokenavSub7 *structPtr);
+static u32 ReturnToConditionSearchList(struct PokenavSub7 *structPtr);
+static u32 GetConditionSearchLoopedTask(s32 state);
+static u32 BuildPartyMonSearchResults(s32 state);
+static u32 InitBoxMonSearchResults(s32 state);
+static u32 BuildBoxMonSearchResults(s32 state);
static u32 sub_81CF278(s32 state);
-static u32 sub_81CF578(s32 state);
-static u32 sub_81CF5F0(s32 state);
-static u32 sub_81CF668(s32 state);
-static u32 sub_81CF6E0(s32 state);
-static u32 sub_81CF758(s32 state);
-static u32 sub_81CF798(s32 state);
+static u32 LoopedTask_MoveSearchListCursorUp(s32 state);
+static u32 LoopedTask_MoveSearchListCursorDown(s32 state);
+static u32 LoopedTask_MoveSearchListPageUp(s32 state);
+static u32 LoopedTask_MoveSearchListPageDown(s32 state);
+static u32 LoopedTask_ExitConditionSearchMenu(s32 state);
+static u32 LoopedTask_SelectSearchResult(s32 state);
static void sub_81CF2C4(struct PokenavSub7 *structPtr, struct PokenavMonList *item);
-static bool32 sub_81CF3E4(void);
-static u32 sub_81CF418(s32 state);
-static void sub_81CF7C8(struct PokenavSub8 *);
-static void sub_81CF7F4(struct PokenavSub8 *);
-static void sub_81CF88C(void);
-static void sub_81CF8E4(struct PokenavMonList *, u8 *);
+static bool32 GetSearchResultCurrentLoopedTaskActive(void);
+static u32 LoopedTask_OpenConditionSearchResults(s32 state);
+static void AddSearchResultListMenuWindow(struct PokenavSub8 *);
+static void PrintSearchResultListMenuItems(struct PokenavSub8 *);
+static void InitConditionSearchListMenuTemplate(void);
+static void PrintSearchMonListItem(struct PokenavMonList *, u8 *);
-static const u32 gUnknown_086233A0[] = {0x16, 0x17, 0x18, 0x21, 0x2F};
+static const u32 sSearchMonDataIds[] = {MON_DATA_COOL, MON_DATA_BEAUTY, MON_DATA_CUTE, MON_DATA_SMART, MON_DATA_TOUGH};
-static const LoopedTask gUnknown_086233B4[] =
+static const LoopedTask sConditionSearchLoopedTaskFuncs[] =
{
- sub_81CF134,
- sub_81CF1C4,
- sub_81CF1D8,
+ BuildPartyMonSearchResults,
+ InitBoxMonSearchResults,
+ BuildBoxMonSearchResults,
sub_81CF278
};
-static const u16 gUnknown_086233C4[] = INCBIN_U16("graphics/pokenav/condition_search2.gbapal");
-static const u32 gUnknown_086233E4[] = INCBIN_U32("graphics/pokenav/condition_search2.4bpp.lz");
-static const u32 gUnknown_086234AC[] = INCBIN_U32("graphics/pokenav/condition_search2.bin.lz");
+static const u16 sConditionSearchResultFramePal[] = INCBIN_U16("graphics/pokenav/condition_search2.gbapal");
+static const u32 sConditionSearchResultTiles[] = INCBIN_U32("graphics/pokenav/condition_search2.4bpp.lz");
+static const u32 sConditionSearchResultTilemap[] = INCBIN_U32("graphics/pokenav/condition_search2.bin.lz");
static const u16 gUnknown_08623570[] = INCBIN_U16("graphics/pokenav/8623570.gbapal");
-static const struct BgTemplate gUnknown_08623590[] =
+static const struct BgTemplate sConditionSearchResultBgTemplates[] =
{
{
.bg = 1,
@@ -91,18 +102,18 @@ static const struct BgTemplate gUnknown_08623590[] =
}
};
-static const LoopedTask gUnknown_08623598[] =
+static const LoopedTask sSearchResultLoopTaskFuncs[] =
{
- NULL,
- sub_81CF578,
- sub_81CF5F0,
- sub_81CF668,
- sub_81CF6E0,
- sub_81CF758,
- sub_81CF798
+ [CONDITION_SEARCH_FUNC_NONE] = NULL,
+ [CONDITION_SEARCH_FUNC_MOVE_UP] = LoopedTask_MoveSearchListCursorUp,
+ [CONDITION_SEARCH_FUNC_MOVE_DOWN] = LoopedTask_MoveSearchListCursorDown,
+ [CONDITION_SEARCH_FUNC_PAGE_UP] = LoopedTask_MoveSearchListPageUp,
+ [CONDITION_SEARCH_FUNC_PAGE_DOWN] = LoopedTask_MoveSearchListPageDown,
+ [CONDITION_SEARCH_FUNC_EXIT] = LoopedTask_ExitConditionSearchMenu,
+ [CONDITION_SEARCH_FUNC_SELECT_MON] = LoopedTask_SelectSearchResult
};
-static const struct WindowTemplate gUnknown_086235B4 =
+static const struct WindowTemplate sSearchResultListMenuWindowTemplate =
{
.bg = 1,
.tilemapLeft = 1,
@@ -117,137 +128,139 @@ static const u8 sText_MaleSymbol[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_RED}{WHIT
static const u8 sText_FemaleSymbol[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_GREEN}{WHITE}{BLUE}♀{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}");
static const u8 sText_NoGenderSymbol[] = _("{UNK_SPACER}");
-bool32 PokenavCallback_Init_8(void)
+bool32 PokenavCallback_Init_ConditionSearch(void)
{
struct PokenavSub7 *structPtr = AllocSubstruct(7, sizeof(struct PokenavSub7));
if (structPtr == NULL)
return FALSE;
- structPtr->unkPtr = AllocSubstruct(18, sizeof(struct PokenavSub18));
- if (structPtr->unkPtr == NULL)
+ structPtr->monList = AllocSubstruct(POKENAV_SUBSTRUCT_MON_LIST, sizeof(struct PokenavSub18));
+ if (structPtr->monList == NULL)
return FALSE;
- structPtr->unk0 = sub_81CF010;
- structPtr->loopedTaskId = CreateLoopedTask(sub_81CF11C, 1);
- structPtr->unk18 = 0;
- structPtr->unk14 = gUnknown_086233A0[GetSelectedConditionSearch()];
+ structPtr->callback = HandleConditionSearchInput_WaitSetup;
+ structPtr->loopedTaskId = CreateLoopedTask(GetConditionSearchLoopedTask, 1);
+ structPtr->returnFromGraph = 0;
+ structPtr->conditionDataId = sSearchMonDataIds[GetSelectedConditionSearch()];
return TRUE;
}
-bool32 PokenavCallback_Init_10(void)
+// return to search results from condition graph
+bool32 PokenavCallback_Init_ReturnToMonSearchList(void)
{
- struct PokenavSub7 *structPtr = AllocSubstruct(7, sizeof(struct PokenavSub7));
+ struct PokenavSub7 *structPtr = AllocSubstruct(POKENAV_SUBSTRUCT_CONDITION_SEARCH_RESULTS, sizeof(struct PokenavSub7));
if (structPtr == NULL)
return FALSE;
- structPtr->unkPtr = GetSubstructPtr(18);
- structPtr->unk0 = sub_81CF030;
- structPtr->unk18 = 1;
- structPtr->unk14 = gUnknown_086233A0[GetSelectedConditionSearch()];
+ structPtr->monList = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_LIST);
+ structPtr->callback = HandleConditionSearchInput;
+ structPtr->returnFromGraph = 1;
+ structPtr->conditionDataId = sSearchMonDataIds[GetSelectedConditionSearch()];
return TRUE;
}
-u32 sub_81CEFDC(void)
+u32 GetConditionSearchResultsCallback(void)
{
- struct PokenavSub7 *structPtr = GetSubstructPtr(7);
- return structPtr->unk0(structPtr);
+ struct PokenavSub7 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_SEARCH_RESULTS);
+ return structPtr->callback(structPtr);
}
-void sub_81CEFF0(void)
+void FreeSearchResultSubstruct1(void)
{
- struct PokenavSub7 *structPtr = GetSubstructPtr(7);
- if (structPtr->unk1C == 0)
- FreePokenavSubstruct(18);
- FreePokenavSubstruct(7);
+ struct PokenavSub7 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_SEARCH_RESULTS);
+ if (structPtr->isPartyCondition == 0)
+ FreePokenavSubstruct(POKENAV_SUBSTRUCT_MON_LIST);
+ FreePokenavSubstruct(POKENAV_SUBSTRUCT_CONDITION_SEARCH_RESULTS);
}
-static bool32 sub_81CF010(struct PokenavSub7 *structPtr)
+static bool32 HandleConditionSearchInput_WaitSetup(struct PokenavSub7 *structPtr)
{
if (!IsLoopedTaskActive(structPtr->loopedTaskId))
- structPtr->unk0 = sub_81CF030;
+ structPtr->callback = HandleConditionSearchInput;
return FALSE;
}
-static u32 sub_81CF030(struct PokenavSub7 *structPtr)
+static u32 HandleConditionSearchInput(struct PokenavSub7 *structPtr)
{
if (JOY_REPEAT(DPAD_UP))
- return 1;
- if (JOY_REPEAT(DPAD_DOWN))
- return 2;
- if (JOY_NEW(DPAD_LEFT))
- return 3;
- if (JOY_NEW(DPAD_RIGHT))
- return 4;
- if (JOY_NEW(B_BUTTON))
+ return CONDITION_SEARCH_FUNC_MOVE_UP;
+ else if (JOY_REPEAT(DPAD_DOWN))
+ return CONDITION_SEARCH_FUNC_MOVE_DOWN;
+ else if (JOY_NEW(DPAD_LEFT))
+ return CONDITION_SEARCH_FUNC_PAGE_UP;
+ else if (JOY_NEW(DPAD_RIGHT))
+ return CONDITION_SEARCH_FUNC_PAGE_DOWN;
+ else if (JOY_NEW(B_BUTTON))
{
- structPtr->unk1C = 0;
- structPtr->unk0 = sub_81CF0B0;
- return 5;
+ structPtr->isPartyCondition = 0;
+ structPtr->callback = ReturnToConditionSearchList;
+ return CONDITION_SEARCH_FUNC_EXIT;
}
- if (JOY_NEW(A_BUTTON))
+ else if (JOY_NEW(A_BUTTON))
{
- structPtr->unkPtr->unk2 = GetSelectedMatchCall();
- structPtr->unk1C = 1;
- structPtr->unk0 = sub_81CF0B8;
- return 6;
+ structPtr->monList->currIndex = GetSelectedPokenavListIndex();
+ structPtr->isPartyCondition = 1;
+ structPtr->callback = OpenConditionGraphFromSearchList;
+ return CONDITION_SEARCH_FUNC_SELECT_MON;
}
- return 0;
+ else
+ return CONDITION_SEARCH_FUNC_NONE;
}
-static u32 sub_81CF0B0(struct PokenavSub7 *structPtr)
+static u32 ReturnToConditionSearchList(struct PokenavSub7 *structPtr)
{
return POKENAV_CONDITION_SEARCH_MENU;
}
-static u32 sub_81CF0B8(struct PokenavSub7 *structPtr)
+static u32 OpenConditionGraphFromSearchList(struct PokenavSub7 *structPtr)
{
- return POKENAV_MENU_9;
+ return POKENAV_CONDITION_GRAPH_FROM_SEARCH;
}
static u32 sub_81CF0C0(void)
{
- struct PokenavSub7 *structPtr = GetSubstructPtr(7);
- return structPtr->unk18;
+ struct PokenavSub7 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_SEARCH_RESULTS);
+ return structPtr->returnFromGraph;
}
-static struct PokenavMonList * sub_81CF0D0(void)
+static struct PokenavMonList * GetSearchResultsMonDataList(void)
{
- struct PokenavSub7 * ptr = GetSubstructPtr(7);
- return ptr->unkPtr->unk4;
+ struct PokenavSub7 * ptr = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_SEARCH_RESULTS);
+ return ptr->monList->monData;
}
-static u16 sub_81CF0E0(void)
+static u16 GetSearchResultsMonListCount(void)
{
- struct PokenavSub7 * ptr = GetSubstructPtr(7);
- return ptr->unkPtr->unk0;
+ struct PokenavSub7 * ptr = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_SEARCH_RESULTS);
+ return ptr->monList->listCount;
}
-static s32 sub_81CF0F0(void)
+static s32 GetSearchResultsSelectedMonData(void)
{
- struct PokenavSub7 * ptr = GetSubstructPtr(7);
- s32 i = GetSelectedMatchCall();
- return ptr->unkPtr->unk4[i].data;
+ struct PokenavSub7 * ptr = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_SEARCH_RESULTS);
+ s32 i = GetSelectedPokenavListIndex();
+ return ptr->monList->monData[i].data;
}
static u16 sub_81CF10C(void)
{
- struct PokenavSub7 * ptr = GetSubstructPtr(7);
- return ptr->unkPtr->unk2;
+ struct PokenavSub7 * ptr = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_SEARCH_RESULTS);
+ return ptr->monList->currIndex;
}
-static u32 sub_81CF11C(s32 state)
+static u32 GetConditionSearchLoopedTask(s32 state)
{
- return gUnknown_086233B4[state](state);
+ return sConditionSearchLoopedTaskFuncs[state](state);
}
-static u32 sub_81CF134(s32 state)
+static u32 BuildPartyMonSearchResults(s32 state)
{
s32 i;
struct PokenavMonList item;
- struct PokenavSub7 * ptr = GetSubstructPtr(7);
+ struct PokenavSub7 * ptr = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_SEARCH_RESULTS);
- ptr->unkPtr->unk0 = 0;
- ptr->unkPtr->unk2 = 0;
+ ptr->monList->listCount = 0;
+ ptr->monList->currIndex = 0;
item.boxId = 14;
for (i = 0; i < PARTY_SIZE; i++)
{
@@ -257,7 +270,7 @@ static u32 sub_81CF134(s32 state)
if (!GetMonData(pokemon, MON_DATA_SANITY_IS_EGG))
{
item.monId = i;
- item.data = GetMonData(pokemon, ptr->unk14);
+ item.data = GetMonData(pokemon, ptr->conditionDataId);
sub_81CF2C4(ptr, &item);
}
}
@@ -265,19 +278,19 @@ static u32 sub_81CF134(s32 state)
return LT_INC_AND_CONTINUE;
}
-static u32 sub_81CF1C4(s32 state)
+static u32 InitBoxMonSearchResults(s32 state)
{
- struct PokenavSub7 * ptr = GetSubstructPtr(7);
- ptr->unk10 = 0;
- ptr->unkC = 0;
+ struct PokenavSub7 * ptr = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_SEARCH_RESULTS);
+ ptr->monId = 0;
+ ptr->boxId = 0;
return LT_INC_AND_CONTINUE;
}
-static u32 sub_81CF1D8(s32 state)
+static u32 BuildBoxMonSearchResults(s32 state)
{
- struct PokenavSub7 * ptr = GetSubstructPtr(7);
- s32 boxId = ptr->unkC;
- s32 monId = ptr->unk10;
+ struct PokenavSub7 * ptr = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_SEARCH_RESULTS);
+ s32 boxId = ptr->boxId;
+ s32 monId = ptr->monId;
s32 boxCount = 0;
struct PokenavMonList item;
@@ -289,15 +302,15 @@ static u32 sub_81CF1D8(s32 state)
{
item.boxId = boxId;
item.monId = monId;
- item.data = GetBoxMonDataAt(boxId, monId, ptr->unk14);
+ item.data = GetBoxMonDataAt(boxId, monId, ptr->conditionDataId);
sub_81CF2C4(ptr, &item);
}
boxCount++;
monId++;
if (boxCount > 14)
{
- ptr->unkC = boxId;
- ptr->unk10 = monId;
+ ptr->boxId = boxId;
+ ptr->monId = monId;
return LT_CONTINUE;
}
}
@@ -310,108 +323,108 @@ static u32 sub_81CF1D8(s32 state)
static u32 sub_81CF278(s32 state)
{
- struct PokenavSub7 * ptr = GetSubstructPtr(7);
- s32 r6 = ptr->unkPtr->unk0;
- s32 r4 = ptr->unkPtr->unk4[0].data;
+ struct PokenavSub7 * ptr = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_SEARCH_RESULTS);
+ s32 r6 = ptr->monList->listCount;
+ s32 r4 = ptr->monList->monData[0].data;
s32 i;
- ptr->unkPtr->unk4[0].data = 1;
+ ptr->monList->monData[0].data = 1;
for (i = 1; i < r6; i++)
{
- if (ptr->unkPtr->unk4[i].data == r4)
+ if (ptr->monList->monData[i].data == r4)
{
- ptr->unkPtr->unk4[i].data = ptr->unkPtr->unk4[i - 1].data;
+ ptr->monList->monData[i].data = ptr->monList->monData[i - 1].data;
}
else
{
- r4 = ptr->unkPtr->unk4[i].data;
- ptr->unkPtr->unk4[i].data = i + 1;
+ r4 = ptr->monList->monData[i].data;
+ ptr->monList->monData[i].data = i + 1;
}
}
- ptr->unk18 = 1;
+ ptr->returnFromGraph = 1;
return LT_FINISH;
}
static void sub_81CF2C4(struct PokenavSub7 *structPtr, struct PokenavMonList *item)
{
u32 left = 0;
- u32 right = structPtr->unkPtr->unk0;
+ u32 right = structPtr->monList->listCount;
u32 insertionIdx = left + (right - left) / 2;
while (right != insertionIdx)
{
- if (item->data > structPtr->unkPtr->unk4[insertionIdx].data)
+ if (item->data > structPtr->monList->monData[insertionIdx].data)
right = insertionIdx;
else
left = insertionIdx + 1;
insertionIdx = left + (right - left) / 2;
}
- for (right = structPtr->unkPtr->unk0; right > insertionIdx; right--)
- structPtr->unkPtr->unk4[right] = structPtr->unkPtr->unk4[right - 1];
- structPtr->unkPtr->unk4[insertionIdx] = *item;
- structPtr->unkPtr->unk0++;
+ for (right = structPtr->monList->listCount; right > insertionIdx; right--)
+ structPtr->monList->monData[right] = structPtr->monList->monData[right - 1];
+ structPtr->monList->monData[insertionIdx] = *item;
+ structPtr->monList->listCount++;
}
-bool32 sub_81CF330(void)
+bool32 OpenConditionSearchResults(void)
{
- struct PokenavSub8 * unk = AllocSubstruct(8, sizeof(struct PokenavSub8));
- if (unk == NULL)
+ struct PokenavSub8 *searchList = AllocSubstruct(POKENAV_SUBSTRUCT_CONDITION_SEARCH_RESULT_LIST, sizeof(struct PokenavSub8));
+ if (searchList == NULL)
return FALSE;
- unk->ltid = CreateLoopedTask(sub_81CF418, 1);
- unk->callback = sub_81CF3E4;
- unk->unkC = FALSE;
+ searchList->ltid = CreateLoopedTask(LoopedTask_OpenConditionSearchResults, 1);
+ searchList->callback = GetSearchResultCurrentLoopedTaskActive;
+ searchList->fromGraph = FALSE;
return TRUE;
}
-bool32 sub_81CF368(void)
+bool32 OpenConditionSearchListFromGraph(void)
{
- struct PokenavSub8 * unk = AllocSubstruct(8, sizeof(struct PokenavSub8));
- if (unk == NULL)
+ struct PokenavSub8 *searchList = AllocSubstruct(POKENAV_SUBSTRUCT_CONDITION_SEARCH_RESULT_LIST, sizeof(struct PokenavSub8));
+ if (searchList == NULL)
return FALSE;
- unk->ltid = CreateLoopedTask(sub_81CF418, 1);
- unk->callback = sub_81CF3E4;
- unk->unkC = TRUE;
+ searchList->ltid = CreateLoopedTask(LoopedTask_OpenConditionSearchResults, 1);
+ searchList->callback = GetSearchResultCurrentLoopedTaskActive;
+ searchList->fromGraph = TRUE;
return TRUE;
}
-void sub_81CF3A0(s32 idx)
+void CreateSearchResultsLoopedTask(s32 idx)
{
- struct PokenavSub8 * unk = GetSubstructPtr(8);
- unk->ltid = CreateLoopedTask(gUnknown_08623598[idx], 1);
- unk->callback = sub_81CF3E4;
+ struct PokenavSub8 *searchList = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_SEARCH_RESULT_LIST);
+ searchList->ltid = CreateLoopedTask(sSearchResultLoopTaskFuncs[idx], 1);
+ searchList->callback = GetSearchResultCurrentLoopedTaskActive;
}
-bool32 sub_81CF3D0(void)
+bool32 IsSearchResultLoopedTaskActive(void)
{
- struct PokenavSub8 * unk = GetSubstructPtr(8);
- return unk->callback();
+ struct PokenavSub8 *searchList = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_SEARCH_RESULT_LIST);
+ return searchList->callback();
}
-bool32 sub_81CF3E4(void)
+bool32 GetSearchResultCurrentLoopedTaskActive(void)
{
- struct PokenavSub8 * unk = GetSubstructPtr(8);
- return IsLoopedTaskActive(unk->ltid);
+ struct PokenavSub8 *searchList = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_SEARCH_RESULT_LIST);
+ return IsLoopedTaskActive(searchList->ltid);
}
-void sub_81CF3F8(void)
+void FreeSearchResultSubstruct2(void)
{
- struct PokenavSub8 * unk = GetSubstructPtr(8);
+ struct PokenavSub8 *searchList = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_SEARCH_RESULT_LIST);
sub_81C8234();
- RemoveWindow(unk->winid);
- FreePokenavSubstruct(8);
+ RemoveWindow(searchList->winid);
+ FreePokenavSubstruct(POKENAV_SUBSTRUCT_CONDITION_SEARCH_RESULT_LIST);
}
-static u32 sub_81CF418(s32 state)
+static u32 LoopedTask_OpenConditionSearchResults(s32 state)
{
- struct PokenavSub8 * unk = GetSubstructPtr(8);
+ struct PokenavSub8 *searchList = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_SEARCH_RESULT_LIST);
switch (state)
{
case 0:
- InitBgTemplates(gUnknown_08623590, NELEMS(gUnknown_08623590));
- DecompressAndCopyTileDataToVram(1, gUnknown_086233E4, 0, 0, 0);
- SetBgTilemapBuffer(1, unk->buff);
- CopyToBgTilemapBuffer(1, gUnknown_086234AC, 0, 0);
+ InitBgTemplates(sConditionSearchResultBgTemplates, NELEMS(sConditionSearchResultBgTemplates));
+ DecompressAndCopyTileDataToVram(1, sConditionSearchResultTiles, 0, 0, 0);
+ SetBgTilemapBuffer(1, searchList->buff);
+ CopyToBgTilemapBuffer(1, sConditionSearchResultTilemap, 0, 0);
CopyBgTilemapBufferToVram(1);
- CopyPaletteIntoBufferUnfaded(gUnknown_086233C4, 0x10, 0x20);
+ CopyPaletteIntoBufferUnfaded(sConditionSearchResultFramePal, 0x10, 0x20);
CopyBgTilemapBufferToVram(1);
return LT_INC_AND_PAUSE;
case 1:
@@ -423,13 +436,13 @@ static u32 sub_81CF418(s32 state)
case 2:
if (FreeTempTileDataBuffersIfPossible())
return LT_PAUSE;
- CopyPaletteIntoBufferUnfaded(gUnknown_08623570, 0x20, 0x20);
- sub_81CF88C();
+ CopyPaletteIntoBufferUnfaded(gUnknown_08623570, 0x20, 32);
+ InitConditionSearchListMenuTemplate();
return LT_INC_AND_PAUSE;
case 3:
if (sub_81C8224())
return LT_PAUSE;
- sub_81CF7C8(unk);
+ AddSearchResultListMenuWindow(searchList);
PrintHelpBarText(HELPBAR_CONDITION_MON_LIST);
return LT_INC_AND_PAUSE;
case 4:
@@ -440,28 +453,28 @@ static u32 sub_81CF418(s32 state)
ShowBg(1);
ShowBg(2);
HideBg(3);
- if (!unk->unkC)
+ if (!searchList->fromGraph)
{
- u8 r4 = GetSelectedConditionSearch() + POKENAV_MENUITEM_CONDITION_SEARCH_COOL;
- LoadLeftHeaderGfxForIndex(r4);
- sub_81C7FA0(r4, 1, 0);
- sub_81C7FA0(1, 1, 0);
+ u8 searchGfxId = GetSelectedConditionSearch() + POKENAV_MENUITEM_CONDITION_SEARCH_COOL;
+ LoadLeftHeaderGfxForIndex(searchGfxId);
+ ShowLeftHeaderGfx(searchGfxId, 1, 0);
+ ShowLeftHeaderGfx(POKENAV_GFX_CONDITION_MENU, 1, 0);
}
PokenavFadeScreen(1);
return LT_INC_AND_PAUSE;
case 5:
if (IsPaletteFadeActive())
return LT_PAUSE;
- if (sub_81C8010())
+ if (AreLeftHeaderSpritesMoving())
return LT_PAUSE;
break;
}
return LT_FINISH;
}
-static u32 sub_81CF578(s32 state)
+static u32 LoopedTask_MoveSearchListCursorUp(s32 state)
{
- struct PokenavSub8 * unk = GetSubstructPtr(8);
+ struct PokenavSub8 *searchList = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_SEARCH_RESULT_LIST);
switch (state)
{
case 0:
@@ -478,11 +491,11 @@ static u32 sub_81CF578(s32 state)
}
return LT_INC_AND_PAUSE;
case 1:
- if (sub_81C8630())
+ if (IsMonListLoopedTaskActive())
return LT_PAUSE;
// fallthrough
case 2:
- sub_81CF7F4(unk);
+ PrintSearchResultListMenuItems(searchList);
return LT_INC_AND_PAUSE;
case 3:
if (IsDma3ManagerBusyWithBgCopy())
@@ -492,9 +505,9 @@ static u32 sub_81CF578(s32 state)
return LT_FINISH;
}
-static u32 sub_81CF5F0(s32 state)
+static u32 LoopedTask_MoveSearchListCursorDown(s32 state)
{
- struct PokenavSub8 * unk = GetSubstructPtr(8);
+ struct PokenavSub8 *searchList = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_SEARCH_RESULT_LIST);
switch (state)
{
case 0:
@@ -511,11 +524,11 @@ static u32 sub_81CF5F0(s32 state)
}
return LT_INC_AND_PAUSE;
case 1:
- if (sub_81C8630())
+ if (IsMonListLoopedTaskActive())
return LT_PAUSE;
// fallthrough
case 2:
- sub_81CF7F4(unk);
+ PrintSearchResultListMenuItems(searchList);
return LT_INC_AND_PAUSE;
case 3:
if (IsDma3ManagerBusyWithBgCopy())
@@ -525,9 +538,9 @@ static u32 sub_81CF5F0(s32 state)
return LT_FINISH;
}
-static u32 sub_81CF668(s32 state)
+static u32 LoopedTask_MoveSearchListPageUp(s32 state)
{
- struct PokenavSub8 * unk = GetSubstructPtr(8);
+ struct PokenavSub8 *searchList = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_SEARCH_RESULT_LIST);
switch (state)
{
case 0:
@@ -544,11 +557,11 @@ static u32 sub_81CF668(s32 state)
}
return LT_INC_AND_PAUSE;
case 1:
- if (sub_81C8630())
+ if (IsMonListLoopedTaskActive())
return LT_PAUSE;
// fallthrough
case 2:
- sub_81CF7F4(unk);
+ PrintSearchResultListMenuItems(searchList);
return LT_INC_AND_PAUSE;
case 3:
if (IsDma3ManagerBusyWithBgCopy())
@@ -558,9 +571,9 @@ static u32 sub_81CF668(s32 state)
return LT_FINISH;
}
-static u32 sub_81CF6E0(s32 state)
+static u32 LoopedTask_MoveSearchListPageDown(s32 state)
{
- struct PokenavSub8 * unk = GetSubstructPtr(8);
+ struct PokenavSub8 *searchList = GetSubstructPtr(POKENAV_SUBSTRUCT_CONDITION_SEARCH_RESULT_LIST);
switch (state)
{
case 0:
@@ -577,11 +590,11 @@ static u32 sub_81CF6E0(s32 state)
}
return LT_INC_AND_PAUSE;
case 1:
- if (sub_81C8630())
+ if (IsMonListLoopedTaskActive())
return LT_PAUSE;
// fallthrough
case 2:
- sub_81CF7F4(unk);
+ PrintSearchResultListMenuItems(searchList);
return LT_INC_AND_PAUSE;
case 3:
if (IsDma3ManagerBusyWithBgCopy())
@@ -591,27 +604,27 @@ static u32 sub_81CF6E0(s32 state)
return LT_FINISH;
}
-static u32 sub_81CF758(s32 state)
+static u32 LoopedTask_ExitConditionSearchMenu(s32 state)
{
switch (state)
{
case 0:
PlaySE(SE_SELECT);
PokenavFadeScreen(0);
- sub_81C78A0();
+ SlideMenuHeaderDown();
return LT_INC_AND_PAUSE;
case 1:
if (IsPaletteFadeActive())
return LT_PAUSE;
if (MainMenuLoopedTaskIsBusy())
return LT_PAUSE;
- sub_81C7FDC();
+ SetLeftHeaderSpritesInvisibility();
break;
}
return LT_FINISH;
}
-static u32 sub_81CF798(s32 state)
+static u32 LoopedTask_SelectSearchResult(s32 state)
{
switch (state)
{
@@ -627,46 +640,47 @@ static u32 sub_81CF798(s32 state)
return LT_FINISH;
}
-static void sub_81CF7C8(struct PokenavSub8 * ptr)
+static void AddSearchResultListMenuWindow(struct PokenavSub8 *searchList)
{
- ptr->winid = AddWindow(&gUnknown_086235B4);
- PutWindowTilemap(ptr->winid);
- CopyWindowToVram(ptr->winid, 1);
- sub_81CF7F4(ptr);
+ searchList->winid = AddWindow(&sSearchResultListMenuWindowTemplate);
+ PutWindowTilemap(searchList->winid);
+ CopyWindowToVram(searchList->winid, 1);
+ PrintSearchResultListMenuItems(searchList);
}
-static void sub_81CF7F4(struct PokenavSub8 * ptr)
+static void PrintSearchResultListMenuItems(struct PokenavSub8 *searchList)
{
- s32 r7 = sub_81CF0F0();
+ s32 r7 = GetSearchResultsSelectedMonData();
DynamicPlaceholderTextUtil_Reset();
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1);
*gStringVar1 = EOS;
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar2, gText_NumberF700);
- AddTextPrinterParameterized(ptr->winid, 1, gStringVar2, 4, 1, 0xFF, NULL);
+ AddTextPrinterParameterized(searchList->winid, 1, gStringVar2, 4, 1, 0xFF, NULL);
ConvertIntToDecimalStringN(gStringVar1, r7, STR_CONV_MODE_RIGHT_ALIGN, 3);
- AddTextPrinterParameterized(ptr->winid, 1, gStringVar1, 34, 1, 0xFF, NULL);
- CopyWindowToVram(ptr->winid, 2);
+ AddTextPrinterParameterized(searchList->winid, 1, gStringVar1, 34, 1, 0xFF, NULL);
+ CopyWindowToVram(searchList->winid, 2);
}
-static void sub_81CF88C(void)
+static void InitConditionSearchListMenuTemplate(void)
{
struct PokenavListTemplate template;
- template.list.monList = sub_81CF0D0();
- template.unk4 = sub_81CF0E0();
+
+ template.list.monList = GetSearchResultsMonDataList();
+ template.count = GetSearchResultsMonListCount();
template.unk8 = 4;
template.unk6 = sub_81CF10C();
- template.unk9 = 13;
- template.unkA = 17;
- template.unkB = 1;
- template.unkC = 8;
- template.unkD = 2;
- template.unkE = 1;
- template.listFunc.unk10_1 = sub_81CF8E4;
+ template.item_X = 13;
+ template.windowWidth = 17;
+ template.listTop = 1;
+ template.maxShowed = 8;
+ template.fillValue = 2;
+ template.fontId = 1;
+ template.listFunc.printMonFunc = PrintSearchMonListItem;
template.unk14 = NULL;
- sub_81C81D4(&gUnknown_08623590[1], &template, 0);
+ sub_81C81D4(&sConditionSearchResultBgTemplates[1], &template, 0);
}
-static void sub_81CF8E4(struct PokenavMonList * item, u8 * dest)
+static void PrintSearchMonListItem(struct PokenavMonList * item, u8 * dest)
{
u8 gender;
u8 level;
diff --git a/src/pokenav_main_menu.c b/src/pokenav_main_menu.c
index f2b9b0dcc..009cf783f 100644
--- a/src/pokenav_main_menu.c
+++ b/src/pokenav_main_menu.c
@@ -15,9 +15,9 @@
struct PokenavMainMenuResources
{
- void (*unk0)(u32);
- u32 (*unk4)(void);
- u32 unk8;
+ void (*loopTask)(u32);
+ u32 (*isLoopTaskActiveFunc)(void);
+ u32 unused;
u32 currentTaskId;
u32 helpBarWindowId;
u32 palettes;
@@ -47,8 +47,8 @@ static void SpriteCB_MoveLeftHeader(struct Sprite *sprite);
static void InitPokenavMainMenuResources(void);
static void InitHoennMapHeaderSprites(void);
static void InitHelpBar(void);
-static u32 LoopedTask_ScrollMenuHeaderDown(s32 a0);
-static u32 LoopedTask_ScrollMenuHeaderUp(s32 a0);
+static u32 LoopedTask_SlideMenuHeaderUp(s32 a0);
+static u32 LoopedTask_SlideMenuHeaderDown(s32 a0);
static void DrawHelpBar(u32 windowId);
static void SpriteCB_SpinningPokenav(struct Sprite* sprite);
static u32 LoopedTask_InitPokenavMenu(s32 a0);
@@ -294,7 +294,7 @@ bool32 InitPokenavMainMenu(void)
{
struct PokenavMainMenuResources *structPtr;
- structPtr = AllocSubstruct(0, sizeof(struct PokenavMainMenuResources));
+ structPtr = AllocSubstruct(POKENAV_SUBSTRUCT_MAIN_MENU, sizeof(struct PokenavMainMenuResources));
if (structPtr == NULL)
return FALSE;
@@ -306,14 +306,14 @@ bool32 InitPokenavMainMenu(void)
u32 PokenavMainMenuLoopedTaskIsActive(void)
{
- struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
+ struct PokenavMainMenuResources *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MAIN_MENU);
return IsLoopedTaskActive(structPtr->currentTaskId);
}
void ShutdownPokenav(void)
{
PlaySE(SE_POKENAV_OFF);
- sub_81CAADC();
+ ResetBldCnt_();
BeginNormalPaletteFade(0xFFFFFFFF, -1, 0, 16, RGB_BLACK);
}
@@ -345,7 +345,7 @@ static u32 LoopedTask_InitPokenavMenu(s32 a0)
ResetTempTileDataBuffers();
return LT_INC_AND_CONTINUE;
case 1:
- structPtr = GetSubstructPtr(0);
+ structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MAIN_MENU);
DecompressAndCopyTileDataToVram(0, &gPokenavHeader_Gfx, 0, 0, 0);
SetBgTilemapBuffer(0, structPtr->tilemapBuffer);
CopyToBgTilemapBuffer(0, &gPokenavHeader_Tilemap, 0, 0);
@@ -371,46 +371,46 @@ static u32 LoopedTask_InitPokenavMenu(s32 a0)
}
}
-void sub_81C7834(void *func1, void *func2) // Fix types later.
+void SetActiveMenuLoopTasks(void *createLoopTask, void *isLoopTaskActive) // Fix types later.
{
- struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
- structPtr->unk0 = func1;
- structPtr->unk4 = func2;
- structPtr->unk8 = 0;
+ struct PokenavMainMenuResources *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MAIN_MENU);
+ structPtr->loopTask = createLoopTask;
+ structPtr->isLoopTaskActiveFunc = isLoopTaskActive;
+ structPtr->unused = 0;
}
-void sub_81C7850(u32 a0)
+void RunMainMenuLoopedTask(u32 a0)
{
- struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
- structPtr->unk8 = 0;
- structPtr->unk0(a0);
+ struct PokenavMainMenuResources *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MAIN_MENU);
+ structPtr->unused = 0;
+ structPtr->loopTask(a0);
}
-u32 sub_81C786C(void)
+u32 IsActiveMenuLoopTaskActive(void)
{
- struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
- return structPtr->unk4();
+ struct PokenavMainMenuResources *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MAIN_MENU);
+ return structPtr->isLoopTaskActiveFunc();
}
-void sub_81C7880(void)
+void SlideMenuHeaderUp(void)
{
- struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
- structPtr->currentTaskId = CreateLoopedTask(LoopedTask_ScrollMenuHeaderDown, 4);
+ struct PokenavMainMenuResources *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MAIN_MENU);
+ structPtr->currentTaskId = CreateLoopedTask(LoopedTask_SlideMenuHeaderUp, 4);
}
-void sub_81C78A0(void)
+void SlideMenuHeaderDown(void)
{
- struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
- structPtr->currentTaskId = CreateLoopedTask(LoopedTask_ScrollMenuHeaderUp, 4);
+ struct PokenavMainMenuResources *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MAIN_MENU);
+ structPtr->currentTaskId = CreateLoopedTask(LoopedTask_SlideMenuHeaderDown, 4);
}
bool32 MainMenuLoopedTaskIsBusy(void)
{
- struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
+ struct PokenavMainMenuResources *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MAIN_MENU);
return IsLoopedTaskActive(structPtr->currentTaskId);
}
-static u32 LoopedTask_ScrollMenuHeaderDown(s32 a0)
+static u32 LoopedTask_SlideMenuHeaderUp(s32 a0)
{
switch (a0)
{
@@ -431,14 +431,13 @@ static u32 LoopedTask_ScrollMenuHeaderDown(s32 a0)
}
}
-static u32 LoopedTask_ScrollMenuHeaderUp(s32 a0)
+static u32 LoopedTask_SlideMenuHeaderDown(s32 a0)
{
if (ChangeBgY(0, 384, 2) <= 0)
{
ChangeBgY(0, 0, 0);
return LT_FINISH;
}
-
return LT_PAUSE;
}
@@ -459,41 +458,43 @@ void Pokenav_AllocAndLoadPalettes(const struct SpritePalette *palettes)
{
break;
}
-
- index = (index * 16) + 0x100;
- CopyPaletteIntoBufferUnfaded(current->data, index, 0x20);
+ else
+ {
+ index = (index * 16) + 0x100;
+ CopyPaletteIntoBufferUnfaded(current->data, index, 0x20);
+ }
}
}
-void sub_81C7990(u32 a0, u16 a1)
+void PokenavFillPalette(u32 palIndex, u16 fillValue)
{
- CpuFill16(a1, gPlttBufferFaded + 0x100 + (a0 * 16), 16 * sizeof(u16));
+ CpuFill16(fillValue, gPlttBufferFaded + 0x100 + (palIndex * 16), 16 * sizeof(u16));
}
-void sub_81C79BC(const u16 *a0, const u16 *a1, int a2, int a3, int a4, u16 *palette)
+void PokenavCopyPalette(const u16 *src, const u16 *dest, int size, int a3, int a4, u16 *palette)
{
if (a4 == 0)
{
- CpuCopy16(a0, palette, a2 * 2);
+ CpuCopy16(src, palette, size * 2);
}
else if (a4 >= a3)
{
- CpuCopy16(a1, palette, a2 * 2);
+ CpuCopy16(dest, palette, size * 2);
}
else
{
int r, g, b;
int r1, g1, b1;
- while (a2--)
+ while (size--)
{
- r = GET_R(*a0);
- g = GET_G(*a0);
- b = GET_B(*a0);
+ r = GET_R(*src);
+ g = GET_G(*src);
+ b = GET_B(*src);
- r1 = ((((GET_R(*a1) << 8) - (r << 8)) / a3) * a4) >> 8;
- g1 = ((((GET_G(*a1) << 8) - (g << 8)) / a3) * a4) >> 8;
- b1 = ((((GET_B(*a1) << 8) - (b << 8)) / a3) * a4) >> 8;
+ r1 = ((((GET_R(*dest) << 8) - (r << 8)) / a3) * a4) >> 8;
+ g1 = ((((GET_G(*dest) << 8) - (g << 8)) / a3) * a4) >> 8;
+ b1 = ((((GET_B(*dest) << 8) - (b << 8)) / a3) * a4) >> 8;
r = (r + r1) & 0x1F; //_RGB(r + r1, g + g1, b + b1); doesn't match; I have to assign the value of ((r + r1) & 0x1F) to r1
g = (g + g1) & 0x1F; //See above
@@ -501,7 +502,7 @@ void sub_81C79BC(const u16 *a0, const u16 *a1, int a2, int a3, int a4, u16 *pale
*palette = RGB2(r, g, b); //See above comment
- a0++, a1++;
+ src++, dest++;
palette++;
}
}
@@ -509,7 +510,7 @@ void sub_81C79BC(const u16 *a0, const u16 *a1, int a2, int a3, int a4, u16 *pale
void PokenavFadeScreen(s32 fadeType)
{
- struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
+ struct PokenavMainMenuResources *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MAIN_MENU);
switch (fadeType)
{
@@ -548,7 +549,7 @@ void InitBgTemplates(const struct BgTemplate *templates, int count)
static void InitHelpBar(void)
{
- struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
+ struct PokenavMainMenuResources *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MAIN_MENU);
InitWindows(&sHelpBarWindowTemplate[0]);
structPtr->helpBarWindowId = 0;
@@ -559,7 +560,7 @@ static void InitHelpBar(void)
void PrintHelpBarText(u32 textId)
{
- struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
+ struct PokenavMainMenuResources *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MAIN_MENU);
DrawHelpBar(structPtr->helpBarWindowId);
AddTextPrinterParameterized3(structPtr->helpBarWindowId, 1, 0, 1, sHelpBarTextColors, 0, sHelpBarTexts[textId]);
@@ -580,7 +581,7 @@ static void InitPokenavMainMenuResources(void)
{
s32 i;
u8 spriteId;
- struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
+ struct PokenavMainMenuResources *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MAIN_MENU);
for (i = 0; i < ARRAY_COUNT(gSpinningPokenavSpriteSheet); i++)
LoadCompressedSpriteSheet(&gSpinningPokenavSpriteSheet[i]);
@@ -593,7 +594,7 @@ static void InitPokenavMainMenuResources(void)
static void CleanupPokenavMainMenuResources(void)
{
- struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
+ struct PokenavMainMenuResources *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MAIN_MENU);
DestroySprite(structPtr->spinningPokenav);
FreeSpriteTilesByTag(0);
@@ -608,7 +609,7 @@ static void SpriteCB_SpinningPokenav(struct Sprite *sprite)
struct Sprite *PauseSpinningPokenavSprite(void)
{
- struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
+ struct PokenavMainMenuResources *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MAIN_MENU);
structPtr->spinningPokenav->callback = SpriteCallbackDummy;
return structPtr->spinningPokenav;
@@ -616,7 +617,7 @@ struct Sprite *PauseSpinningPokenavSprite(void)
void ResumeSpinningPokenavSprite(void)
{
- struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
+ struct PokenavMainMenuResources *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MAIN_MENU);
structPtr->spinningPokenav->pos1.x = 220;
structPtr->spinningPokenav->pos1.y = 12;
@@ -629,7 +630,7 @@ void ResumeSpinningPokenavSprite(void)
static void InitHoennMapHeaderSprites(void)
{
s32 i, spriteId;
- struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
+ struct PokenavMainMenuResources *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MAIN_MENU);
LoadCompressedSpriteSheet(&sPokenavHoennMapLeftHeaderSpriteSheet);
AllocSpritePalette(1);
@@ -658,9 +659,9 @@ void LoadLeftHeaderGfxForIndex(u32 menuGfxId)
LoadLeftHeaderGfxForSubMenu(menuGfxId - POKENAV_GFX_SUBMENUS_START);
}
-void sub_81C7E14(u32 menuGfxId)
+void UpdateRegionMapRightHeaderTiles(u32 menuGfxId)
{
- struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
+ struct PokenavMainMenuResources *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MAIN_MENU);
if (menuGfxId == POKENAV_GFX_MAP_MENU_ZOOMED_OUT)
structPtr->leftHeaderSprites[1]->oam.tileNum = GetSpriteTileStartByTag(2) + 32;
@@ -676,7 +677,7 @@ static void LoadLeftHeaderGfxForMenu(u32 menuGfxId)
if (menuGfxId >= POKENAV_GFX_SUBMENUS_START)
return;
- structPtr = GetSubstructPtr(0);
+ structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MAIN_MENU);
tag = sPokenavMenuLeftHeaderSpriteSheets[menuGfxId].tag;
size = GetDecompressedDataSize(sPokenavMenuLeftHeaderSpriteSheets[menuGfxId].data);
LoadPalette(&gPokenavLeftHeader_Pal[tag * 16], (IndexOfSpritePaletteTag(1) * 16) + 0x100, 0x20);
@@ -704,33 +705,33 @@ static void LoadLeftHeaderGfxForSubMenu(u32 menuGfxId)
RequestDma3Copy(&gDecompressionBuffer[0x1000], (void *)VRAM + 0x10800 + (GetSpriteTileStartByTag(2) * 32), size, 1);
}
-void sub_81C7FA0(u32 menuGfxId, bool32 arg1, bool32 arg2)
+void ShowLeftHeaderGfx(u32 menuGfxId, bool32 isMain, bool32 isOnRightSide)
{
- u32 var;
+ u32 tileTop;
- if (!arg1)
- var = 0x30;
+ if (!isMain)
+ tileTop = 0x30;
else
- var = 0x10;
+ tileTop = 0x10;
if (menuGfxId < POKENAV_GFX_SUBMENUS_START)
- ShowLeftHeaderSprites(var, arg2);
+ ShowLeftHeaderSprites(tileTop, isOnRightSide);
else
- ShowLeftHeaderSubmenuSprites(var, arg2);
+ ShowLeftHeaderSubmenuSprites(tileTop, isOnRightSide);
}
-void sub_81C7FC4(u32 arg0, bool32 arg1)
+void HideMainOrSubMenuLeftHeader(u32 id, bool32 onRightSide)
{
- if (arg0 < 6)
- HideLeftHeaderSprites(arg1);
+ if (id < POKENAV_GFX_PARTY_MENU)
+ HideLeftHeaderSprites(onRightSide);
else
- HideLeftHeaderSubmenuSprites(arg1);
+ HideLeftHeaderSubmenuSprites(onRightSide);
}
-void sub_81C7FDC(void)
+void SetLeftHeaderSpritesInvisibility(void)
{
s32 i;
- struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
+ struct PokenavMainMenuResources *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MAIN_MENU);
for (i = 0; i < (s32)ARRAY_COUNT(structPtr->leftHeaderSprites); i++)
{
@@ -739,9 +740,9 @@ void sub_81C7FDC(void)
}
}
-bool32 sub_81C8010(void)
+bool32 AreLeftHeaderSpritesMoving(void)
{
- struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
+ struct PokenavMainMenuResources *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MAIN_MENU);
if (structPtr->leftHeaderSprites[0]->callback == SpriteCallbackDummy && structPtr->submenuLeftHeaderSprites[0]->callback == SpriteCallbackDummy)
return FALSE;
@@ -752,7 +753,7 @@ bool32 sub_81C8010(void)
static void ShowLeftHeaderSprites(u32 startY, bool32 isOnRightSide)
{
s32 start, end, i;
- struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
+ struct PokenavMainMenuResources *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MAIN_MENU);
if (!isOnRightSide)
start = -96, end = 32;
@@ -769,7 +770,7 @@ static void ShowLeftHeaderSprites(u32 startY, bool32 isOnRightSide)
static void ShowLeftHeaderSubmenuSprites(u32 startY, bool32 isOnRightSide)
{
s32 start, end, i;
- struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
+ struct PokenavMainMenuResources *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MAIN_MENU);
if (!isOnRightSide)
start = -96, end = 16;
@@ -786,7 +787,7 @@ static void ShowLeftHeaderSubmenuSprites(u32 startY, bool32 isOnRightSide)
static void HideLeftHeaderSprites(bool32 isOnRightSide)
{
s32 start, end, i;
- struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
+ struct PokenavMainMenuResources *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MAIN_MENU);
if (!isOnRightSide)
start = 32, end = -96;
@@ -802,7 +803,7 @@ static void HideLeftHeaderSprites(bool32 isOnRightSide)
static void HideLeftHeaderSubmenuSprites(bool32 isOnRightSide)
{
s32 start, end, i;
- struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
+ struct PokenavMainMenuResources *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MAIN_MENU);
if (!isOnRightSide)
start = 16, end = -96;
diff --git a/src/pokenav_match_call_1.c b/src/pokenav_match_call_1.c
index d919a4dbf..fb44aaa87 100755
--- a/src/pokenav_match_call_1.c
+++ b/src/pokenav_match_call_1.c
@@ -53,7 +53,7 @@ static const u8 sMatchCallOptionsHasCheckPage[] =
bool32 PokenavCallback_Init_MatchCall(void)
{
- struct Pokenav3Struct *state = AllocSubstruct(5, sizeof(struct Pokenav3Struct));
+ struct Pokenav3Struct *state = AllocSubstruct(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN, sizeof(struct Pokenav3Struct));
if (!state)
return FALSE;
@@ -66,13 +66,13 @@ bool32 PokenavCallback_Init_MatchCall(void)
u32 GetMatchCallCallback(void)
{
- struct Pokenav3Struct *state = GetSubstructPtr(5);
+ struct Pokenav3Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
return state->callback(state);
}
void FreeMatchCallSubstruct1(void)
{
- FreePokenavSubstruct(5);
+ FreePokenavSubstruct(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
}
static u32 CB2_HandleMatchCallInput(struct Pokenav3Struct *state)
@@ -92,7 +92,7 @@ static u32 CB2_HandleMatchCallInput(struct Pokenav3Struct *state)
{
state->callback = CB2_HandleMatchCallOptionsInput;
state->optionCursorPos = 0;
- selection = GetSelectedMatchCall();
+ selection = GetSelectedPokenavListIndex();
if (!state->matchCallEntries[selection].isSpecialTrainer || MatchCall_HasCheckPage(state->matchCallEntries[selection].headerId))
{
@@ -205,7 +205,7 @@ static u32 CB2_HandleCallInput(struct Pokenav3Struct *state)
static u32 sub_81CAD20(s32 taskState)
{
int i, j;
- struct Pokenav3Struct *state = GetSubstructPtr(5);
+ struct Pokenav3Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
switch (taskState)
{
case 0:
@@ -239,7 +239,7 @@ static u32 sub_81CAD20(s32 taskState)
{
state->matchCallEntries[state->numRegistered].headerId = state->headerId;
state->matchCallEntries[state->numRegistered].isSpecialTrainer = FALSE;
- state->matchCallEntries[state->numRegistered].mapSec = sub_81CB0C8(j);
+ state->matchCallEntries[state->numRegistered].mapSec = GetMatchTableMapSectionId(j);
state->numRegistered++;
}
@@ -266,31 +266,31 @@ bool32 IsRematchEntryRegistered(int rematchIndex)
int sub_81CAE28(void)
{
- struct Pokenav3Struct *state = GetSubstructPtr(5);
+ struct Pokenav3Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
return state->unk10;
}
int GetNumberRegistered(void)
{
- struct Pokenav3Struct *state = GetSubstructPtr(5);
+ struct Pokenav3Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
return state->numRegistered;
}
int sub_81CAE48(void)
{
- struct Pokenav3Struct *state = GetSubstructPtr(5);
+ struct Pokenav3Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
return state->unkC;
}
int unref_sub_81CAE58(void)
{
- struct Pokenav3Struct *state = GetSubstructPtr(5);
+ struct Pokenav3Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
return state->numRegistered - state->unkC;
}
int unref_sub_81CAE6C(int arg0)
{
- struct Pokenav3Struct *state = GetSubstructPtr(5);
+ struct Pokenav3Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
arg0 += state->unkC;
if (arg0 >= state->numRegistered)
return REMATCH_TABLE_ENTRIES;
@@ -300,19 +300,19 @@ int unref_sub_81CAE6C(int arg0)
struct PokenavMatchCallEntries *sub_81CAE94(void)
{
- struct Pokenav3Struct *state = GetSubstructPtr(5);
+ struct Pokenav3Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
return state->matchCallEntries;
}
u16 GetMatchCallMapSec(int index)
{
- struct Pokenav3Struct *state = GetSubstructPtr(5);
+ struct Pokenav3Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
return state->matchCallEntries[index].mapSec;
}
bool32 ShouldDrawRematchPokeballIcon(int index)
{
- struct Pokenav3Struct *state = GetSubstructPtr(5);
+ struct Pokenav3Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
if (!state->matchCallEntries[index].isSpecialTrainer)
index = state->matchCallEntries[index].headerId;
else
@@ -327,7 +327,7 @@ bool32 ShouldDrawRematchPokeballIcon(int index)
int GetMatchCallTrainerPic(int index)
{
int headerId;
- struct Pokenav3Struct *state = GetSubstructPtr(5);
+ struct Pokenav3Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
if (!state->matchCallEntries[index].isSpecialTrainer)
{
index = GetTrainerIdxByRematchIdx(state->matchCallEntries[index].headerId);
@@ -348,7 +348,7 @@ int GetMatchCallTrainerPic(int index)
const u8 *GetMatchCallMessageText(int index, u8 *arg1)
{
- struct Pokenav3Struct *state = GetSubstructPtr(5);
+ struct Pokenav3Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
*arg1 = 0;
if (!Overworld_MapTypeAllowsTeleportAndFly(gMapHeader.mapType))
return gText_CallCantBeMadeHere;
@@ -364,7 +364,7 @@ const u8 *GetMatchCallMessageText(int index, u8 *arg1)
const u8 *GetMatchCallFlavorText(int index, int checkPageEntry)
{
int rematchId;
- struct Pokenav3Struct *state = GetSubstructPtr(5);
+ struct Pokenav3Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
if (state->matchCallEntries[index].isSpecialTrainer)
{
rematchId = MatchCall_GetRematchTableIdx(state->matchCallEntries[index].headerId);
@@ -381,13 +381,13 @@ const u8 *GetMatchCallFlavorText(int index, int checkPageEntry)
u16 GetMatchCallOptionCursorPos(void)
{
- struct Pokenav3Struct *state = GetSubstructPtr(5);
+ struct Pokenav3Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
return state->optionCursorPos;
}
u16 GetMatchCallOptionId(int optionId)
{
- struct Pokenav3Struct *state = GetSubstructPtr(5);
+ struct Pokenav3Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
if (state->maxOptionId < optionId)
return MATCH_CALL_OPTION_COUNT;
@@ -422,7 +422,7 @@ void BufferMatchCallNameAndDesc(struct PokenavMatchCallEntries *matchCallEntry,
}
}
-u8 sub_81CB0C8(int rematchIndex)
+u8 GetMatchTableMapSectionId(int rematchIndex)
{
int mapGroup = gRematchTable[rematchIndex].mapGroup;
int mapNum = gRematchTable[rematchIndex].mapNum;
@@ -431,7 +431,7 @@ u8 sub_81CB0C8(int rematchIndex)
int GetIndexDeltaOfNextCheckPageDown(int index)
{
- struct Pokenav3Struct *state = GetSubstructPtr(5);
+ struct Pokenav3Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
int count = 1;
while (++index < state->numRegistered)
{
@@ -448,7 +448,7 @@ int GetIndexDeltaOfNextCheckPageDown(int index)
int GetIndexDeltaOfNextCheckPageUp(int index)
{
- struct Pokenav3Struct *state = GetSubstructPtr(5);
+ struct Pokenav3Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
int count = -1;
while (--index >= 0)
{
@@ -488,8 +488,8 @@ bool32 unref_sub_81CB16C(void)
static bool32 sub_81CB1D0(void)
{
- struct Pokenav3Struct *state = GetSubstructPtr(5);
- int selection = GetSelectedMatchCall();
+ struct Pokenav3Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_MAIN);
+ int selection = GetSelectedPokenavListIndex();
if (!state->matchCallEntries[selection].isSpecialTrainer)
{
if (GetMatchCallMapSec(selection) == gMapHeader.regionMapSectionId)
diff --git a/src/pokenav_match_call_2.c b/src/pokenav_match_call_2.c
index 424882670..adcd889d3 100755
--- a/src/pokenav_match_call_2.c
+++ b/src/pokenav_match_call_2.c
@@ -23,7 +23,6 @@
#include "constants/game_stat.h"
#include "constants/region_map_sections.h"
#include "constants/songs.h"
-#include "constants/species.h"
struct Pokenav4Struct
{
@@ -37,7 +36,7 @@ struct Pokenav4Struct
u16 msgBoxWindowId;
s16 unk16;
u8 unused18;
- u8 unk19;
+ u8 unused19;
u16 unk1A;
struct Sprite *optionsCursorSprite;
struct Sprite *trainerPicSprite;
@@ -51,9 +50,9 @@ struct Pokenav4Struct
static bool32 GetCurrentLoopedTaskActive(void);
static u32 LoopedTask_OpenMatchCall(s32);
-static void sub_81CBBB8(void);
+static void InitMatchCallPokenavListMenuTemplate(void);
static void sub_81CBC1C(void);
-static void sub_81CC2B4(void);
+static void RemoveMatchCallSprites(void);
static void sub_81CC034(struct Pokenav4Struct *);
static void DrawMatchCallLeftColumnWindows(struct Pokenav4Struct *);
static void UpdateMatchCallInfoBox(struct Pokenav4Struct *);
@@ -120,7 +119,7 @@ static const u16 gUnknown_08622700[] = INCBIN_U16("graphics/pokenav/8622700.gbap
static const u16 gUnknown_08622720[] = INCBIN_U16("graphics/pokenav/pokeball_matchcall.gbapal");
static const u32 gUnknown_08622760[] = INCBIN_U32("graphics/pokenav/pokeball_matchcall.4bpp.lz");
-const struct BgTemplate gUnknown_0862278C[3] =
+const struct BgTemplate sMatchCallBgTemplates[3] =
{
{
.bg = 1,
@@ -153,22 +152,22 @@ const struct BgTemplate gUnknown_0862278C[3] =
static const LoopedTask sMatchCallLoopTaskFuncs[] =
{
- [POKENAV_MC_FUNC_NONE] = NULL,
- [POKENAV_MC_FUNC_DOWN] = MatchCallListCursorDown,
- [POKENAV_MC_FUNC_UP] = MatchCallListCursorUp,
- [POKENAV_MC_FUNC_PG_DOWN] = MatchCallListPageDown,
- [POKENAV_MC_FUNC_PG_UP] = MatchCallListPageUp,
- [POKENAV_MC_FUNC_SELECT] = SelectMatchCallEntry,
+ [POKENAV_MC_FUNC_NONE] = NULL,
+ [POKENAV_MC_FUNC_DOWN] = MatchCallListCursorDown,
+ [POKENAV_MC_FUNC_UP] = MatchCallListCursorUp,
+ [POKENAV_MC_FUNC_PG_DOWN] = MatchCallListPageDown,
+ [POKENAV_MC_FUNC_PG_UP] = MatchCallListPageUp,
+ [POKENAV_MC_FUNC_SELECT] = SelectMatchCallEntry,
[POKENAV_MC_FUNC_MOVE_OPTIONS_CURSOR] = MoveMatchCallOptionsCursor,
- [POKENAV_MC_FUNC_CANCEL] = CancelMatchCallSelection,
- [POKENAV_MC_FUNC_CALL_MSG] = DoMatchCallMessage,
- [POKENAV_MC_FUNC_NEARBY_MSG] = DoTrainerCloseByMessage,
- [POKENAV_MC_FUNC_10] = sub_81CB888,
- [POKENAV_MC_FUNC_SHOW_CHECK_PAGE] = ShowCheckPage,
- [POKENAV_MC_FUNC_CHECK_PAGE_UP] = ShowCheckPageUp,
- [POKENAV_MC_FUNC_CHECK_PAGE_DOWN] = ShowCheckPageDown,
- [POKENAV_MC_FUNC_EXIT_CHECK_PAGE] = ExitCheckPage,
- [POKENAV_MC_FUNC_EXIT] = ExitMatchCall
+ [POKENAV_MC_FUNC_CANCEL] = CancelMatchCallSelection,
+ [POKENAV_MC_FUNC_CALL_MSG] = DoMatchCallMessage,
+ [POKENAV_MC_FUNC_NEARBY_MSG] = DoTrainerCloseByMessage,
+ [POKENAV_MC_FUNC_10] = sub_81CB888,
+ [POKENAV_MC_FUNC_SHOW_CHECK_PAGE] = ShowCheckPage,
+ [POKENAV_MC_FUNC_CHECK_PAGE_UP] = ShowCheckPageUp,
+ [POKENAV_MC_FUNC_CHECK_PAGE_DOWN] = ShowCheckPageDown,
+ [POKENAV_MC_FUNC_EXIT_CHECK_PAGE] = ExitCheckPage,
+ [POKENAV_MC_FUNC_EXIT] = ExitMatchCall
};
static const struct WindowTemplate sMatchCallLocationWindowTemplate =
@@ -276,11 +275,11 @@ static const struct SpriteTemplate sTrainerPicSpriteTemplate =
bool32 OpenMatchCall(void)
{
- struct Pokenav4Struct *state = AllocSubstruct(6, sizeof(struct Pokenav4Struct));
+ struct Pokenav4Struct *state = AllocSubstruct(POKENAV_SUBSTRUCT_MATCH_CALL_OPEN, sizeof(struct Pokenav4Struct));
if (!state)
return FALSE;
- state->unk19 = 0;
+ state->unused19 = 0;
state->loopTaskId = CreateLoopedTask(LoopedTask_OpenMatchCall, 1);
state->isTaskActiveCB = GetCurrentLoopedTaskActive;
return TRUE;
@@ -288,21 +287,21 @@ bool32 OpenMatchCall(void)
void CreateMatchCallLoopedTask(s32 index)
{
- struct Pokenav4Struct *state = GetSubstructPtr(6);
+ struct Pokenav4Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_OPEN);
state->loopTaskId = CreateLoopedTask(sMatchCallLoopTaskFuncs[index], 1);
state->isTaskActiveCB = GetCurrentLoopedTaskActive;
}
bool32 IsMatchCallLoopedTaskActive(void)
{
- struct Pokenav4Struct *state = GetSubstructPtr(6);
+ struct Pokenav4Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_OPEN);
return state->isTaskActiveCB();
}
void FreeMatchCallSubstruct2(void)
{
- struct Pokenav4Struct *state = GetSubstructPtr(6);
- sub_81CC2B4();
+ struct Pokenav4Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_OPEN);
+ RemoveMatchCallSprites();
sub_81CBC1C();
RemoveWindow(state->infoBoxWindowId);
RemoveWindow(state->locWindowId);
@@ -312,17 +311,17 @@ void FreeMatchCallSubstruct2(void)
static bool32 GetCurrentLoopedTaskActive(void)
{
- struct Pokenav4Struct *state = GetSubstructPtr(6);
+ struct Pokenav4Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_OPEN);
return IsLoopedTaskActive(state->loopTaskId);
}
static u32 LoopedTask_OpenMatchCall(s32 taskState)
{
- struct Pokenav4Struct *state = GetSubstructPtr(6);
+ struct Pokenav4Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_OPEN);
switch (taskState)
{
case 0:
- InitBgTemplates(gUnknown_0862278C, ARRAY_COUNT(gUnknown_0862278C));
+ InitBgTemplates(sMatchCallBgTemplates, ARRAY_COUNT(sMatchCallBgTemplates));
ChangeBgX(2, 0, 0);
ChangeBgY(2, 0, 0);
DecompressAndCopyTileDataToVram(2, sMatchCallUI_Gfx, 0, 0, 0);
@@ -355,7 +354,7 @@ static u32 LoopedTask_OpenMatchCall(s32 taskState)
if (FreeTempTileDataBuffersIfPossible() || !sub_81CAE28())
return LT_PAUSE;
- sub_81CBBB8();
+ InitMatchCallPokenavListMenuTemplate();
return LT_INC_AND_PAUSE;
case 4:
if (sub_81C8224())
@@ -375,11 +374,11 @@ static u32 LoopedTask_OpenMatchCall(s32 taskState)
ShowBg(1);
sub_81CC214();
LoadLeftHeaderGfxForIndex(3);
- sub_81C7FA0(3, 1, 0);
+ ShowLeftHeaderGfx(POKENAV_GFX_MATCH_CALL_MENU, 1, 0);
PokenavFadeScreen(1);
return LT_INC_AND_PAUSE;
case 7:
- if (IsPaletteFadeActive() || sub_81C8010())
+ if (IsPaletteFadeActive() || AreLeftHeaderSpritesMoving())
return LT_PAUSE;
sub_81CBC38(1);
@@ -391,7 +390,7 @@ static u32 LoopedTask_OpenMatchCall(s32 taskState)
u32 MatchCallListCursorDown(s32 taskState)
{
- struct Pokenav4Struct *state = GetSubstructPtr(6);
+ struct Pokenav4Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_OPEN);
switch (taskState)
{
case 0:
@@ -410,7 +409,7 @@ u32 MatchCallListCursorDown(s32 taskState)
}
break;
case 1:
- if (sub_81C8630())
+ if (IsMonListLoopedTaskActive())
return LT_PAUSE;
PrintMatchCallLocation(state, 0);
@@ -428,7 +427,7 @@ u32 MatchCallListCursorDown(s32 taskState)
u32 MatchCallListCursorUp(s32 taskState)
{
- struct Pokenav4Struct *state = GetSubstructPtr(6);
+ struct Pokenav4Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_OPEN);
switch (taskState)
{
case 0:
@@ -447,7 +446,7 @@ u32 MatchCallListCursorUp(s32 taskState)
}
break;
case 1:
- if (sub_81C8630())
+ if (IsMonListLoopedTaskActive())
return LT_PAUSE;
PrintMatchCallLocation(state, 0);
@@ -465,7 +464,7 @@ u32 MatchCallListCursorUp(s32 taskState)
u32 MatchCallListPageDown(s32 taskState)
{
- struct Pokenav4Struct *state = GetSubstructPtr(6);
+ struct Pokenav4Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_OPEN);
switch (taskState)
{
case 0:
@@ -484,7 +483,7 @@ u32 MatchCallListPageDown(s32 taskState)
}
break;
case 1:
- if (sub_81C8630())
+ if (IsMonListLoopedTaskActive())
return LT_PAUSE;
PrintMatchCallLocation(state, 0);
@@ -502,7 +501,7 @@ u32 MatchCallListPageDown(s32 taskState)
u32 MatchCallListPageUp(s32 taskState)
{
- struct Pokenav4Struct *state = GetSubstructPtr(6);
+ struct Pokenav4Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_OPEN);
switch (taskState)
{
case 0:
@@ -521,7 +520,7 @@ u32 MatchCallListPageUp(s32 taskState)
}
break;
case 1:
- if (sub_81C8630())
+ if (IsMonListLoopedTaskActive())
return LT_PAUSE;
PrintMatchCallLocation(state, 0);
@@ -539,7 +538,7 @@ u32 MatchCallListPageUp(s32 taskState)
u32 SelectMatchCallEntry(s32 taskState)
{
- struct Pokenav4Struct *state = GetSubstructPtr(6);
+ struct Pokenav4Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_OPEN);
switch (taskState)
{
case 0:
@@ -562,7 +561,7 @@ u32 MoveMatchCallOptionsCursor(s32 taskState)
u16 cursorPos;
PlaySE(SE_SELECT);
- state = GetSubstructPtr(6);
+ state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_OPEN);
cursorPos = GetMatchCallOptionCursorPos();
UpdateCursorGfxPos(state, cursorPos);
return LT_FINISH;
@@ -570,7 +569,7 @@ u32 MoveMatchCallOptionsCursor(s32 taskState)
u32 CancelMatchCallSelection(s32 taskState)
{
- struct Pokenav4Struct *state = GetSubstructPtr(6);
+ struct Pokenav4Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_OPEN);
switch (taskState)
{
case 0:
@@ -589,7 +588,7 @@ u32 CancelMatchCallSelection(s32 taskState)
u32 DoMatchCallMessage(s32 taskState)
{
- struct Pokenav4Struct *state = GetSubstructPtr(6);
+ struct Pokenav4Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_OPEN);
switch (taskState)
{
case 0:
@@ -621,7 +620,7 @@ u32 DoMatchCallMessage(s32 taskState)
u32 DoTrainerCloseByMessage(s32 taskState)
{
- struct Pokenav4Struct *state = GetSubstructPtr(6);
+ struct Pokenav4Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_OPEN);
switch (taskState)
{
case 0:
@@ -647,7 +646,7 @@ u32 DoTrainerCloseByMessage(s32 taskState)
u32 sub_81CB888(s32 taskState)
{
- struct Pokenav4Struct *state = GetSubstructPtr(6);
+ struct Pokenav4Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_OPEN);
u32 result = LT_INC_AND_PAUSE;
switch (taskState)
@@ -711,7 +710,7 @@ u32 sub_81CB888(s32 taskState)
u32 ShowCheckPage(s32 taskState)
{
- struct Pokenav4Struct *state = GetSubstructPtr(6);
+ struct Pokenav4Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_OPEN);
switch (taskState)
{
case 0:
@@ -720,7 +719,7 @@ u32 ShowCheckPage(s32 taskState)
UpdateWindowsToShowCheckPage(state);
return LT_INC_AND_PAUSE;
case 1:
- if (sub_81C8820() || IsDma3ManagerBusyWithBgCopy1(state))
+ if (IsMatchCallListTaskActive() || IsDma3ManagerBusyWithBgCopy1(state))
return LT_PAUSE;
PrintHelpBarText(HELPBAR_MC_CHECK_PAGE);
@@ -730,7 +729,7 @@ u32 ShowCheckPage(s32 taskState)
LoadCheckPageTrainerPic(state);
return LT_INC_AND_PAUSE;
case 3:
- if (sub_81C8820() || WaitForTrainerPic(state) || WaitForHelpBar())
+ if (IsMatchCallListTaskActive() || WaitForTrainerPic(state) || WaitForHelpBar())
return LT_PAUSE;
break;
}
@@ -742,7 +741,7 @@ u32 ShowCheckPageDown(s32 taskState)
{
int topId;
int delta;
- struct Pokenav4Struct *state = GetSubstructPtr(6);
+ struct Pokenav4Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_OPEN);
switch (taskState)
{
case 0:
@@ -769,7 +768,7 @@ u32 ShowCheckPageDown(s32 taskState)
LoadCheckPageTrainerPic(state);
return LT_INC_AND_PAUSE;
case 4:
- if (sub_81C8820() || WaitForTrainerPic(state))
+ if (IsMatchCallListTaskActive() || WaitForTrainerPic(state))
return LT_PAUSE;
break;
}
@@ -779,7 +778,7 @@ u32 ShowCheckPageDown(s32 taskState)
u32 ExitCheckPage(s32 taskState)
{
- struct Pokenav4Struct *state = GetSubstructPtr(6);
+ struct Pokenav4Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_OPEN);
switch (taskState)
{
case 0:
@@ -788,7 +787,7 @@ u32 ExitCheckPage(s32 taskState)
sub_81C87F0();
return LT_INC_AND_PAUSE;
case 1:
- if (sub_81C8820() || WaitForTrainerPic(state))
+ if (IsMatchCallListTaskActive() || WaitForTrainerPic(state))
return LT_PAUSE;
PrintHelpBarText(HELPBAR_MC_TRAINER_LIST);
@@ -807,7 +806,7 @@ u32 ShowCheckPageUp(s32 taskState)
{
int topId;
int delta;
- struct Pokenav4Struct *state = GetSubstructPtr(6);
+ struct Pokenav4Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_OPEN);
switch (taskState)
{
case 0:
@@ -834,7 +833,7 @@ u32 ShowCheckPageUp(s32 taskState)
LoadCheckPageTrainerPic(state);
return LT_INC_AND_PAUSE;
case 4:
- if (sub_81C8820() || WaitForTrainerPic(state))
+ if (IsMatchCallListTaskActive() || WaitForTrainerPic(state))
return LT_PAUSE;
break;
}
@@ -850,35 +849,35 @@ u32 ExitMatchCall(s32 taskState)
PlaySE(SE_SELECT);
sub_81CBC38(0);
PokenavFadeScreen(0);
- sub_81C78A0();
+ SlideMenuHeaderDown();
return LT_INC_AND_PAUSE;
case 1:
if (IsPaletteFadeActive() || MainMenuLoopedTaskIsBusy())
return LT_PAUSE;
- sub_81C7FDC();
+ SetLeftHeaderSpritesInvisibility();
break;
}
return LT_FINISH;
}
-static void sub_81CBBB8(void)
+static void InitMatchCallPokenavListMenuTemplate(void)
{
struct PokenavListTemplate template;
template.list.matchCallEntries = sub_81CAE94();
- template.unk4 = GetNumberRegistered();
+ template.count = GetNumberRegistered();
template.unk8 = 4;
template.unk6 = 0;
- template.unk9 = 13;
- template.unkA = 16;
- template.unkB = 1;
- template.unkC = 8;
- template.unkD = 3;
- template.unkE = 7;
+ template.item_X = 13;
+ template.windowWidth = 16;
+ template.listTop = 1;
+ template.maxShowed = 8;
+ template.fillValue = 3;
+ template.fontId = 7;
template.listFunc.unk10_2 = BufferMatchCallNameAndDesc;
template.unk14 = TryDrawRematchPokeballIcon;
- sub_81C81D4(&gUnknown_0862278C[2], &template, 2);
+ sub_81C81D4(&sMatchCallBgTemplates[2], &template, 2);
CreateTask(sub_81CBC64, 7);
}
@@ -903,7 +902,7 @@ static void sub_81CBC64(u8 taskId)
taskData[0] += 4;
taskData[0] &= 0x7F;
taskData[1] = gSineTable[taskData[0]] >> 4;
- sub_81C79BC(gUnknown_08622720, gUnknown_08622720 + 0x10, 0x10, 0x10, taskData[1], gPlttBufferUnfaded + 0x50);
+ PokenavCopyPalette(gUnknown_08622720, gUnknown_08622720 + 0x10, 0x10, 0x10, taskData[1], gPlttBufferUnfaded + 0x50);
if (!gPaletteFade.active)
CpuCopy32(gPlttBufferUnfaded + 0x50, gPlttBufferFaded + 0x50, 0x20);
}
@@ -1001,7 +1000,7 @@ static void PrintMatchCallLocation(struct Pokenav4Struct *state, int arg1)
{
u8 mapName[32];
int x;
- int index = GetSelectedMatchCall() + arg1;
+ int index = GetSelectedPokenavListIndex() + arg1;
int mapSec = GetMatchCallMapSec(index);
if (mapSec != MAPSEC_NONE)
GetMapName(mapName, mapSec, 0);
@@ -1118,7 +1117,7 @@ static bool32 WaitForTrainerIsCloseByText(struct Pokenav4Struct *state)
static void PrintMatchCallMessage(struct Pokenav4Struct *state)
{
- int index = GetSelectedMatchCall();
+ int index = GetSelectedPokenavListIndex();
const u8 *str = GetMatchCallMessageText(index, &state->unkF);
u8 speed = GetPlayerTextSpeedDelay();
AddTextPrinterParameterized(state->msgBoxWindowId, 1, str, 32, 1, speed, NULL);
@@ -1152,7 +1151,7 @@ static void sub_81CC214(void)
int i;
u8 paletteNum;
struct SpriteSheet spriteSheet;
- struct Pokenav4Struct *state = GetSubstructPtr(6);
+ struct Pokenav4Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_OPEN);
for (i = 0; i < ARRAY_COUNT(gUnknown_08622810); i++)
LoadCompressedSpriteSheet(&gUnknown_08622810[i]);
@@ -1169,9 +1168,9 @@ static void sub_81CC214(void)
state->trainerPicSprite->invisible = TRUE;
}
-static void sub_81CC2B4(void)
+static void RemoveMatchCallSprites(void)
{
- struct Pokenav4Struct *state = GetSubstructPtr(6);
+ struct Pokenav4Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_OPEN);
if (state->optionsCursorSprite)
DestroySprite(state->optionsCursorSprite);
if (state->trainerPicSprite)
@@ -1222,7 +1221,7 @@ static struct Sprite *CreateTrainerPicSprite(void)
static void LoadCheckPageTrainerPic(struct Pokenav4Struct *state)
{
u16 cursor;
- int trainerPic = GetMatchCallTrainerPic(GetSelectedMatchCall());
+ int trainerPic = GetMatchCallTrainerPic(GetSelectedPokenavListIndex());
if (trainerPic >= 0)
{
DecompressPicFromTable(&gTrainerFrontPicTable[trainerPic], state->unk1828, SPECIES_NONE);
diff --git a/src/pokenav_match_call_ui.c b/src/pokenav_match_call_ui.c
index 01740fcce..2d89f9c39 100644
--- a/src/pokenav_match_call_ui.c
+++ b/src/pokenav_match_call_ui.c
@@ -9,7 +9,7 @@
// TODO: This UI isnt just for match call, seems to be the general pokenav list UI
-struct UnknownSubSubStruct_0203CF40 {
+struct PokenavListMenuWindow {
u8 bg;
u8 unk1;
u8 unk2;
@@ -38,14 +38,14 @@ struct MatchCallWindowState {
struct PokenavSub17Substruct
{
- struct UnknownSubSubStruct_0203CF40 unk0;
+ struct PokenavListMenuWindow listWindow;
u32 unk10;
u32 unk14;
u32 unk18;
void * unk1C;
s32 unk20;
s32 unk24;
- u32 unk28;
+ u32 loopedTaskId;
s32 unk2C;
u32 unk30;
void (*unk34)(struct PokenavMatchCallEntries *, u8*);
@@ -59,34 +59,34 @@ struct PokenavSub17Substruct
// Generally at index 0x11 (17)
struct PokenavSub17
{
- struct PokenavSub17Substruct unk0;
+ struct PokenavSub17Substruct list;
u8 tilemapBuffer[0x800];
struct MatchCallWindowState unk888;
s32 unk89C;
- u32 unk8A0;
+ u32 loopedTaskId;
};
extern void sub_81DB620(u32 windowId, u32 a1, u32 a2, u32 a3, u32 a4);
-void sub_81C82E4(struct PokenavSub17 *a0);
-bool32 sub_81C91AC(struct PokenavSub17Substruct *a0, const struct BgTemplate *a1, struct PokenavListTemplate *a2, s32 a3);
-void sub_81C9160(struct MatchCallWindowState *a0, struct PokenavListTemplate *a1);
+void sub_81C82E4(struct PokenavSub17 *matchCall);
+bool32 CopyPokenavListMenuTemplate(struct PokenavSub17Substruct *a0, const struct BgTemplate *a1, struct PokenavListTemplate *a2, s32 a3);
+void InitMatchCallWindowState(struct MatchCallWindowState *a0, struct PokenavListTemplate *a1);
void SpriteCB_MatchCallUpArrow(struct Sprite *sprite);
void SpriteCB_MatchCallDownArrow(struct Sprite *sprite);
void SpriteCB_MatchCallRightArrow(struct Sprite *sprite);
void ToggleMatchCallArrows(struct PokenavSub17Substruct *a0, u32 a1);
-void sub_81C8FE0(struct PokenavSub17Substruct *a0);
-void sub_81C8EF8(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1);
+void DestroyMatchCallListArrows(struct PokenavSub17Substruct *a0);
+void CreateMatchCallArrowSprites(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1);
void sub_81C8ED0(void);
static void PrintMatchCallFlavorText(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1, u32 a2);
void PrintMatchCallFieldNames(struct PokenavSub17Substruct *a0, u32 a1);
void sub_81C8D4C(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1);
void sub_81C8CB4(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1);
-void sub_81C8B70(struct UnknownSubSubStruct_0203CF40 *a0, s32 a1, s32 a2);
+void sub_81C8B70(struct PokenavListMenuWindow *a0, s32 a1, s32 a2);
void sub_81C8568(s32 a0, struct PokenavSub17Substruct *a1);
void sub_81C83AC(void * a0, u32 a1, u32 a2, u32 a3, u32 a4, struct PokenavSub17Substruct *a5);
void sub_81C837C(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1);
-void sub_81C835C(struct UnknownSubSubStruct_0203CF40 *a0);
+void sub_81C835C(struct PokenavListMenuWindow *a0);
u32 LoopedTask_sub_81C8254(s32 state);
bool32 sub_81C83E0(void);
u32 LoopedTask_sub_81C83F0(s32 state);
@@ -102,12 +102,12 @@ EWRAM_DATA u32 gUnknown_0203CF44 = 0;
bool32 sub_81C81D4(const struct BgTemplate *arg0, struct PokenavListTemplate *arg1, s32 arg2)
{
- struct PokenavSub17 *structPtr = AllocSubstruct(17, sizeof(struct PokenavSub17));
+ struct PokenavSub17 *structPtr = AllocSubstruct(POKENAV_SUBSTRUCT_MATCH_CALL_LIST, sizeof(struct PokenavSub17));
if (structPtr == NULL)
return FALSE;
- sub_81C9160(&structPtr->unk888, arg1);
- if (!sub_81C91AC(&structPtr->unk0, arg0, arg1, arg2))
+ InitMatchCallWindowState(&structPtr->unk888, arg1);
+ if (!CopyPokenavListMenuTemplate(&structPtr->list, arg0, arg1, arg2))
return FALSE;
CreateLoopedTask(LoopedTask_sub_81C8254, 6);
@@ -123,10 +123,10 @@ void sub_81C8234(void)
{
struct PokenavSub17 *structPtr;
- structPtr = GetSubstructPtr(17);
- sub_81C8FE0(&structPtr->unk0);
- RemoveWindow(structPtr->unk0.unk0.windowId);
- FreePokenavSubstruct(17);
+ structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
+ DestroyMatchCallListArrows(&structPtr->list);
+ RemoveWindow(structPtr->list.listWindow.windowId);
+ FreePokenavSubstruct(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
}
u32 LoopedTask_sub_81C8254(s32 state)
@@ -134,9 +134,9 @@ u32 LoopedTask_sub_81C8254(s32 state)
struct PokenavSub17 *structPtr;
if (IsDma3ManagerBusyWithBgCopy())
- return 2;
+ return LT_PAUSE;
- structPtr = GetSubstructPtr(17);
+ structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
switch (state)
{
@@ -144,10 +144,10 @@ u32 LoopedTask_sub_81C8254(s32 state)
sub_81C82E4(structPtr);
return LT_INC_AND_PAUSE;
case 1:
- sub_81C835C(&structPtr->unk0.unk0);
+ sub_81C835C(&structPtr->list.listWindow);
return LT_INC_AND_PAUSE;
case 2:
- sub_81C837C(&structPtr->unk888, &structPtr->unk0);
+ sub_81C837C(&structPtr->unk888, &structPtr->list);
return LT_INC_AND_PAUSE;
case 3:
if (sub_81C83E0())
@@ -160,53 +160,53 @@ u32 LoopedTask_sub_81C8254(s32 state)
return LT_INC_AND_CONTINUE;
}
case 4:
- sub_81C8EF8(&structPtr->unk888, &structPtr->unk0);
+ CreateMatchCallArrowSprites(&structPtr->unk888, &structPtr->list);
return LT_FINISH;
default:
return LT_FINISH;
}
}
-void sub_81C82E4(struct PokenavSub17 *a0)
+void sub_81C82E4(struct PokenavSub17 *matchCall)
{
- u16 tileNum = (a0->unk0.unk0.unk1 << 12) | a0->unk0.unk0.unk6;
- sub_8199DF0(a0->unk0.unk0.bg, PIXEL_FILL(1), a0->unk0.unk0.unk6, 1);
- sub_8199DF0(a0->unk0.unk0.bg, PIXEL_FILL(4), a0->unk0.unk0.unk6 + 1, 1);
- SetBgTilemapBuffer(a0->unk0.unk0.bg, a0->tilemapBuffer);
- FillBgTilemapBufferRect_Palette0(a0->unk0.unk0.bg, tileNum, 0, 0, 32, 32);
- ChangeBgY(a0->unk0.unk0.bg, 0, 0);
- ChangeBgX(a0->unk0.unk0.bg, 0, 0);
- ChangeBgY(a0->unk0.unk0.bg, a0->unk0.unk0.unk3 << 11, 2);
- CopyBgTilemapBufferToVram(a0->unk0.unk0.bg);
+ u16 tileNum = (matchCall->list.listWindow.unk1 << 12) | matchCall->list.listWindow.unk6;
+ sub_8199DF0(matchCall->list.listWindow.bg, PIXEL_FILL(1), matchCall->list.listWindow.unk6, 1);
+ sub_8199DF0(matchCall->list.listWindow.bg, PIXEL_FILL(4), matchCall->list.listWindow.unk6 + 1, 1);
+ SetBgTilemapBuffer(matchCall->list.listWindow.bg, matchCall->tilemapBuffer);
+ FillBgTilemapBufferRect_Palette0(matchCall->list.listWindow.bg, tileNum, 0, 0, 32, 32);
+ ChangeBgY(matchCall->list.listWindow.bg, 0, 0);
+ ChangeBgX(matchCall->list.listWindow.bg, 0, 0);
+ ChangeBgY(matchCall->list.listWindow.bg, matchCall->list.listWindow.unk3 << 11, 2);
+ CopyBgTilemapBufferToVram(matchCall->list.listWindow.bg);
}
-void sub_81C835C(struct UnknownSubSubStruct_0203CF40 *a0)
+void sub_81C835C(struct PokenavListMenuWindow *listWindow)
{
- FillWindowPixelBuffer(a0->windowId, PIXEL_FILL(1));
- PutWindowTilemap(a0->windowId);
- CopyWindowToVram(a0->windowId, 1);
+ FillWindowPixelBuffer(listWindow->windowId, PIXEL_FILL(1));
+ PutWindowTilemap(listWindow->windowId);
+ CopyWindowToVram(listWindow->windowId, 1);
}
-void sub_81C837C(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1)
+void sub_81C837C(struct MatchCallWindowState *state, struct PokenavSub17Substruct *a1)
{
- s32 arg2 = a0->listLength - a0->windowTopIndex;
- if (arg2 > a0->visibleEntries)
- arg2 = a0->visibleEntries;
+ s32 arg2 = state->listLength - state->windowTopIndex;
+ if (arg2 > state->visibleEntries)
+ arg2 = state->visibleEntries;
- sub_81C83AC(a0->unk10, a0->windowTopIndex, arg2, a0->unkC, 0, a1);
+ sub_81C83AC(state->unk10, state->windowTopIndex, arg2, state->unkC, 0, a1);
}
-void sub_81C83AC(void * a0, u32 a1, u32 a2, u32 a3, u32 a4, struct PokenavSub17Substruct *a5)
+void sub_81C83AC(void * a0, u32 a1, u32 a2, u32 a3, u32 a4, struct PokenavSub17Substruct *list)
{
if (a2 == 0)
return;
- a5->unk1C = a0 + a1 * a3;
- a5->unk18 = a3;
- a5->unk0.unkC = 0;
- a5->unk0.unkE = a2;
- a5->unk14 = a1;
- a5->unk10 = a4;
+ list->unk1C = a0 + a1 * a3;
+ list->unk18 = a3;
+ list->listWindow.unkC = 0;
+ list->listWindow.unkE = a2;
+ list->unk14 = a1;
+ list->unk10 = a4;
CreateLoopedTask(LoopedTask_sub_81C83F0, 5);
}
@@ -218,23 +218,23 @@ bool32 sub_81C83E0(void)
u32 LoopedTask_sub_81C83F0(s32 state)
{
u32 v1;
- struct PokenavSub17Substruct *structPtr = GetSubstructPtr(17);
+ struct PokenavSub17Substruct *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
switch (state)
{
case 0:
- v1 = (structPtr->unk0.unkA + structPtr->unk0.unkC + structPtr->unk10) & 0xF;
+ v1 = (structPtr->listWindow.unkA + structPtr->listWindow.unkC + structPtr->unk10) & 0xF;
structPtr->unk34(structPtr->unk1C, structPtr->unkTextBuffer);
if (structPtr->unk38 != NULL)
- structPtr->unk38(structPtr->unk0.windowId, structPtr->unk14, v1);
+ structPtr->unk38(structPtr->listWindow.windowId, structPtr->unk14, v1);
- AddTextPrinterParameterized(structPtr->unk0.windowId, structPtr->unk0.fontId, structPtr->unkTextBuffer, 8, (v1 << 4) + 1, 255, NULL);
- if (++structPtr->unk0.unkC >= structPtr->unk0.unkE)
+ AddTextPrinterParameterized(structPtr->listWindow.windowId, structPtr->listWindow.fontId, structPtr->unkTextBuffer, 8, (v1 << 4) + 1, 255, NULL);
+ if (++structPtr->listWindow.unkC >= structPtr->listWindow.unkE)
{
if (structPtr->unk38 != NULL)
- CopyWindowToVram(structPtr->unk0.windowId, 3);
+ CopyWindowToVram(structPtr->listWindow.windowId, 3);
else
- CopyWindowToVram(structPtr->unk0.windowId, 2);
+ CopyWindowToVram(structPtr->listWindow.windowId, 2);
return LT_INC_AND_PAUSE;
}
else
@@ -253,14 +253,14 @@ u32 LoopedTask_sub_81C83F0(s32 state)
bool32 ShouldShowUpArrow(void)
{
- struct PokenavSub17 *structPtr = GetSubstructPtr(17);
+ struct PokenavSub17 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
return (structPtr->unk888.windowTopIndex != 0);
}
bool32 ShouldShowDownArrow(void)
{
- struct PokenavSub17 *structPtr = GetSubstructPtr(17);
+ struct PokenavSub17 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
struct MatchCallWindowState *subPtr = &structPtr->unk888;
return (subPtr->windowTopIndex + subPtr->visibleEntries < subPtr->listLength);
@@ -268,7 +268,7 @@ bool32 ShouldShowDownArrow(void)
void MatchCall_MoveWindow(s32 a0, bool32 a1)
{
- struct PokenavSub17 *structPtr = GetSubstructPtr(17);
+ struct PokenavSub17 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
struct MatchCallWindowState *subPtr = &structPtr->unk888;
if (a0 < 0)
@@ -276,7 +276,7 @@ void MatchCall_MoveWindow(s32 a0, bool32 a1)
if (subPtr->windowTopIndex + a0 < 0)
a0 = -1 * subPtr->windowTopIndex;
if (a1)
- sub_81C83AC(subPtr->unk10, subPtr->windowTopIndex + a0, a0 * -1, subPtr->unkC, a0, &structPtr->unk0);
+ sub_81C83AC(subPtr->unk10, subPtr->windowTopIndex + a0, a0 * -1, subPtr->unkC, a0, &structPtr->list);
}
else if (a1)
{
@@ -284,31 +284,31 @@ void MatchCall_MoveWindow(s32 a0, bool32 a1)
if (temp + a0 >= subPtr->listLength)
a0 = subPtr->listLength - temp;
- sub_81C83AC(subPtr->unk10, gUnknown_0203CF44, a0, subPtr->unkC, subPtr->visibleEntries, &structPtr->unk0);
+ sub_81C83AC(subPtr->unk10, gUnknown_0203CF44, a0, subPtr->unkC, subPtr->visibleEntries, &structPtr->list);
}
- sub_81C8568(a0, &structPtr->unk0);
+ sub_81C8568(a0, &structPtr->list);
subPtr->windowTopIndex += a0;
}
-void sub_81C8568(s32 a0, struct PokenavSub17Substruct *a1)
+void sub_81C8568(s32 a0, struct PokenavSub17Substruct *list)
{
- a1->unk20 = GetBgY(a1->unk0.bg);
- a1->unk24 = a1->unk20 + (a0 << 12);
+ list->unk20 = GetBgY(list->listWindow.bg);
+ list->unk24 = list->unk20 + (a0 << 12);
if (a0 > 0)
- a1->unk30 = 1;
+ list->unk30 = 1;
else
- a1->unk30 = 2;
- a1->unk2C = a0;
- a1->unk28 = CreateLoopedTask(LoopedTask_sub_81C85A0, 6);
+ list->unk30 = 2;
+ list->unk2C = a0;
+ list->loopedTaskId = CreateLoopedTask(LoopedTask_sub_81C85A0, 6);
}
u32 LoopedTask_sub_81C85A0(s32 state)
{
s32 y, v1;
bool32 flag;
- struct PokenavSub17 *structPtr = GetSubstructPtr(17);
- struct PokenavSub17Substruct *subPtr = &structPtr->unk0;
+ struct PokenavSub17 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
+ struct PokenavSub17Substruct *subPtr = &structPtr->list;
switch (state)
{
@@ -318,8 +318,8 @@ u32 LoopedTask_sub_81C85A0(s32 state)
return LT_PAUSE;
case 1:
flag = FALSE;
- y = GetBgY(subPtr->unk0.bg);
- v1 = ChangeBgY(subPtr->unk0.bg, 0x1000, subPtr->unk30);
+ y = GetBgY(subPtr->listWindow.bg);
+ v1 = ChangeBgY(subPtr->listWindow.bg, 0x1000, subPtr->unk30);
if (subPtr->unk30 == 2)
{
if ((y > subPtr->unk24 || y <= subPtr->unk20) && v1 <= subPtr->unk24)
@@ -333,8 +333,8 @@ u32 LoopedTask_sub_81C85A0(s32 state)
if (flag)
{
- subPtr->unk0.unkA = (subPtr->unk0.unkA + subPtr->unk2C) & 0xF;
- ChangeBgY(subPtr->unk0.bg, subPtr->unk24, 0);
+ subPtr->listWindow.unkA = (subPtr->listWindow.unkA + subPtr->unk2C) & 0xF;
+ ChangeBgY(subPtr->listWindow.bg, subPtr->unk24, 0);
return LT_FINISH;
}
return LT_PAUSE;
@@ -342,15 +342,15 @@ u32 LoopedTask_sub_81C85A0(s32 state)
return LT_FINISH;
}
-bool32 sub_81C8630(void)
+bool32 IsMonListLoopedTaskActive(void)
{
- struct PokenavSub17 *structPtr = GetSubstructPtr(17);
- return IsLoopedTaskActive(structPtr->unk0.unk28);
+ struct PokenavSub17 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
+ return IsLoopedTaskActive(structPtr->list.loopedTaskId);
}
struct MatchCallWindowState *GetMatchCallWindowStruct(void)
{
- struct PokenavSub17 *structPtr = GetSubstructPtr(17);
+ struct PokenavSub17 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
return &structPtr->unk888;
}
@@ -448,7 +448,7 @@ int MatchCall_PageDown(void)
}
}
-u32 GetSelectedMatchCall(void)
+u32 GetSelectedPokenavListIndex(void)
{
struct MatchCallWindowState *structPtr = GetMatchCallWindowStruct();
@@ -464,53 +464,53 @@ u32 GetMatchCallListTopIndex(void)
void sub_81C877C(void)
{
- struct PokenavSub17 *structPtr = GetSubstructPtr(17);
+ struct PokenavSub17 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
structPtr->unk89C = 0;
- structPtr->unk8A0 = CreateLoopedTask(LoopedTask_sub_81C8870, 6);
+ structPtr->loopedTaskId = CreateLoopedTask(LoopedTask_sub_81C8870, 6);
}
void PrintCheckPageInfo(s16 a0)
{
- struct PokenavSub17 *structPtr = GetSubstructPtr(17);
+ struct PokenavSub17 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
structPtr->unk888.windowTopIndex += a0;
structPtr->unk89C = 0;
- structPtr->unk8A0 = CreateLoopedTask(LoopedTask_PrintCheckPageInfo, 6);
+ structPtr->loopedTaskId = CreateLoopedTask(LoopedTask_PrintCheckPageInfo, 6);
}
void sub_81C87F0(void)
{
- struct PokenavSub17 *structPtr = GetSubstructPtr(17);
+ struct PokenavSub17 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
structPtr->unk89C = 0;
- structPtr->unk8A0 = CreateLoopedTask(LoopedTask_sub_81C8A28, 6);
+ structPtr->loopedTaskId = CreateLoopedTask(LoopedTask_sub_81C8A28, 6);
}
-bool32 sub_81C8820(void)
+bool32 IsMatchCallListTaskActive(void)
{
- struct PokenavSub17 *structPtr = GetSubstructPtr(17);
- return IsLoopedTaskActive(structPtr->unk8A0);
+ struct PokenavSub17 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
+ return IsLoopedTaskActive(structPtr->loopedTaskId);
}
void sub_81C8838(void)
{
- struct PokenavSub17 *structPtr = GetSubstructPtr(17);
+ struct PokenavSub17 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
struct MatchCallWindowState *subPtr = &structPtr->unk888;
- structPtr->unk0.unk38(structPtr->unk0.unk0.windowId, subPtr->windowTopIndex + subPtr->selectedIndexOffset, (structPtr->unk0.unk0.unkA + subPtr->selectedIndexOffset) & 0xF);
- CopyWindowToVram(structPtr->unk0.unk0.windowId, 1);
+ structPtr->list.unk38(structPtr->list.listWindow.windowId, subPtr->windowTopIndex + subPtr->selectedIndexOffset, (structPtr->list.listWindow.unkA + subPtr->selectedIndexOffset) & 0xF);
+ CopyWindowToVram(structPtr->list.listWindow.windowId, 1);
}
// TODO:
u32 LoopedTask_sub_81C8870(s32 state)
{
- struct PokenavSub17 *structPtr = GetSubstructPtr(17);
+ struct PokenavSub17 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
switch (state)
{
case 0:
- ToggleMatchCallArrows(&structPtr->unk0, 1);
+ ToggleMatchCallArrows(&structPtr->list, 1);
// fall-through
case 1:
if (structPtr->unk89C != structPtr->unk888.selectedIndexOffset)
- sub_81C8B70(&structPtr->unk0.unk0, structPtr->unk89C, 1);
+ sub_81C8B70(&structPtr->list.listWindow, structPtr->unk89C, 1);
structPtr->unk89C++;
return LT_INC_AND_PAUSE;
@@ -520,7 +520,7 @@ u32 LoopedTask_sub_81C8870(s32 state)
if (structPtr->unk89C != structPtr->unk888.visibleEntries)
return 6;
if (structPtr->unk888.selectedIndexOffset != 0)
- sub_81C8B70(&structPtr->unk0.unk0, structPtr->unk89C, structPtr->unk888.selectedIndexOffset);
+ sub_81C8B70(&structPtr->list.listWindow, structPtr->unk89C, structPtr->unk888.selectedIndexOffset);
return LT_INC_AND_PAUSE;
}
@@ -537,7 +537,7 @@ u32 LoopedTask_sub_81C8870(s32 state)
}
return LT_PAUSE;
case 4:
- if (sub_81C8630())
+ if (IsMonListLoopedTaskActive())
return LT_PAUSE;
structPtr->unk888.selectedIndexOffset = 0;
@@ -548,35 +548,35 @@ u32 LoopedTask_sub_81C8870(s32 state)
u32 LoopedTask_PrintCheckPageInfo(s32 state)
{
- struct PokenavSub17 *structPtr = GetSubstructPtr(17);
+ struct PokenavSub17 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
if (IsDma3ManagerBusyWithBgCopy())
return LT_PAUSE;
switch (state)
{
case 0:
- sub_81C8CB4(&structPtr->unk888, &structPtr->unk0);
+ sub_81C8CB4(&structPtr->unk888, &structPtr->list);
break;
case 1:
- PrintMatchCallFieldNames(&structPtr->unk0, 0);
+ PrintMatchCallFieldNames(&structPtr->list, 0);
break;
case 2:
- PrintMatchCallFlavorText(&structPtr->unk888, &structPtr->unk0, CHECK_PAGE_STRATEGY);
+ PrintMatchCallFlavorText(&structPtr->unk888, &structPtr->list, CHECK_PAGE_STRATEGY);
break;
case 3:
- PrintMatchCallFieldNames(&structPtr->unk0, 1);
+ PrintMatchCallFieldNames(&structPtr->list, 1);
break;
case 4:
- PrintMatchCallFlavorText(&structPtr->unk888, &structPtr->unk0, CHECK_PAGE_POKEMON);
+ PrintMatchCallFlavorText(&structPtr->unk888, &structPtr->list, CHECK_PAGE_POKEMON);
break;
case 5:
- PrintMatchCallFieldNames(&structPtr->unk0, 2);
+ PrintMatchCallFieldNames(&structPtr->list, 2);
break;
case 6:
- PrintMatchCallFlavorText(&structPtr->unk888, &structPtr->unk0, CHECK_PAGE_INTRO_1);
+ PrintMatchCallFlavorText(&structPtr->unk888, &structPtr->list, CHECK_PAGE_INTRO_1);
break;
case 7:
- PrintMatchCallFlavorText(&structPtr->unk888, &structPtr->unk0, CHECK_PAGE_INTRO_2);
+ PrintMatchCallFlavorText(&structPtr->unk888, &structPtr->list, CHECK_PAGE_INTRO_2);
break;
default:
return LT_FINISH;
@@ -594,9 +594,9 @@ u32 LoopedTask_sub_81C8A28(s32 state)
if (IsDma3ManagerBusyWithBgCopy())
return LT_PAUSE;
- structPtr = GetSubstructPtr(17);
+ structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
subPtr888 = &structPtr->unk888;
- subPtr0 = &structPtr->unk0;
+ subPtr0 = &structPtr->list;
switch (state)
{
@@ -607,7 +607,7 @@ u32 LoopedTask_sub_81C8A28(s32 state)
ptr = &structPtr->unk89C;
if (++(*ptr) < structPtr->unk888.visibleEntries)
{
- sub_81C8B70(&subPtr0->unk0, *ptr, 1);
+ sub_81C8B70(&subPtr0->listWindow, *ptr, 1);
return LT_PAUSE;
}
@@ -618,7 +618,7 @@ u32 LoopedTask_sub_81C8A28(s32 state)
{
s32 r4 = subPtr888->windowTopIndex;
r5 = -r4;
- sub_81C8B70(&subPtr0->unk0, r5, r4);
+ sub_81C8B70(&subPtr0->listWindow, r5, r4);
subPtr888->selectedIndexOffset = r4;
*ptr = r5;
return LT_INC_AND_PAUSE;
@@ -630,7 +630,7 @@ u32 LoopedTask_sub_81C8A28(s32 state)
{
s32 r4 = subPtr888->windowTopIndex + subPtr888->visibleEntries - subPtr888->listLength;
r5 = -r4;
- sub_81C8B70(&subPtr0->unk0, r5, r4);
+ sub_81C8B70(&subPtr0->listWindow, r5, r4);
subPtr888->selectedIndexOffset = r4;
*ptr = r5;
return LT_INC_AND_PAUSE;
@@ -641,14 +641,14 @@ u32 LoopedTask_sub_81C8A28(s32 state)
MatchCall_MoveWindow(structPtr->unk89C, FALSE);
return LT_INC_AND_PAUSE;
case 3:
- if (!sub_81C8630())
+ if (!IsMonListLoopedTaskActive())
{
structPtr->unk89C = 0;
return 1;
}
return 2;
case 4:
- sub_81C83AC(subPtr888->unk10, subPtr888->windowTopIndex + structPtr->unk89C, 1, subPtr888->unkC, structPtr->unk89C, &structPtr->unk0);
+ sub_81C83AC(subPtr888->unk10, subPtr888->windowTopIndex + structPtr->unk89C, 1, subPtr888->unkC, structPtr->unk89C, &structPtr->list);
return LT_INC_AND_PAUSE;
case 5:
if (sub_81C83E0())
@@ -664,16 +664,16 @@ u32 LoopedTask_sub_81C8A28(s32 state)
return LT_FINISH;
}
-void sub_81C8B70(struct UnknownSubSubStruct_0203CF40 *a0, s32 a1, s32 a2)
+void sub_81C8B70(struct PokenavListMenuWindow *listWindow, s32 a1, s32 a2)
{
- u8 *v1 = (u8*)GetWindowAttribute(a0->windowId, WINDOW_TILE_DATA);
- u32 v2 = a0->unk4 * 64;
+ u8 *v1 = (u8*)GetWindowAttribute(listWindow->windowId, WINDOW_TILE_DATA);
+ u32 v2 = listWindow->unk4 * 64;
- a1 = (a0->unkA + a1) & 0xF;
+ a1 = (listWindow->unkA + a1) & 0xF;
if (a1 + a2 <= 16)
{
CpuFastFill8(PIXEL_FILL(1), v1 + a1 * v2, a2 * v2);
- CopyWindowToVram(a0->windowId, 2);
+ CopyWindowToVram(listWindow->windowId, 2);
}
else
{
@@ -682,63 +682,63 @@ void sub_81C8B70(struct UnknownSubSubStruct_0203CF40 *a0, s32 a1, s32 a2)
CpuFastFill8(PIXEL_FILL(1), v1 + a1 * v2, v3 * v2);
CpuFastFill8(PIXEL_FILL(1), v1, v4 * v2);
- CopyWindowToVram(a0->windowId, 2);
+ CopyWindowToVram(listWindow->windowId, 2);
}
for (a2--; a2 != -1; a1 = (a1 + 1) & 0xF, a2--)
- ClearRematchPokeballIcon(a0->windowId, a1);
+ ClearRematchPokeballIcon(listWindow->windowId, a1);
- CopyWindowToVram(a0->windowId, 1);
+ CopyWindowToVram(listWindow->windowId, 1);
}
-void sub_81C8C64(struct UnknownSubSubStruct_0203CF40 *a0, u32 a1)
+void sub_81C8C64(struct PokenavListMenuWindow *listWindow, u32 a1)
{
u16 var;
- u16 *v1 = (u16*)GetBgTilemapBuffer(GetWindowAttribute(a0->windowId, WINDOW_BG));
- v1 += ((a0->unkA << 6) + a0->unk2) - 1;
+ u16 *v1 = (u16*)GetBgTilemapBuffer(GetWindowAttribute(listWindow->windowId, WINDOW_BG));
+ v1 += ((listWindow->unkA << 6) + listWindow->unk2) - 1;
if (a1 != 0)
- var = (a0->unk1 << 12) | (a0->unk6 + 1);
+ var = (listWindow->unk1 << 12) | (listWindow->unk6 + 1);
else
- var = (a0->unk1 << 12) | (a0->unk6);
+ var = (listWindow->unk1 << 12) | (listWindow->unk6);
v1[0] = var;
v1[0x20] = var;
}
-void sub_81C8CB4(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1)
+void sub_81C8CB4(struct MatchCallWindowState *state, struct PokenavSub17Substruct *list)
{
u8 colors[3] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_RED};
- a1->unk34(a0->unk10 + a0->unkC * a0->windowTopIndex, a1->unkTextBuffer);
- a1->unk38(a1->unk0.windowId, a0->windowTopIndex, a1->unk0.unkA);
- FillWindowPixelRect(a1->unk0.windowId, PIXEL_FILL(4), 0, a1->unk0.unkA * 16, a1->unk0.unk4 * 8, 16);
- AddTextPrinterParameterized3(a1->unk0.windowId, a1->unk0.fontId, 8, (a1->unk0.unkA * 16) + 1, colors, TEXT_SPEED_FF, a1->unkTextBuffer);
- sub_81C8C64(&a1->unk0, 1);
- CopyWindowRectToVram(a1->unk0.windowId, 3, 0, a1->unk0.unkA * 2, a1->unk0.unk4, 2);
+ list->unk34(state->unk10 + state->unkC * state->windowTopIndex, list->unkTextBuffer);
+ list->unk38(list->listWindow.windowId, state->windowTopIndex, list->listWindow.unkA);
+ FillWindowPixelRect(list->listWindow.windowId, PIXEL_FILL(4), 0, list->listWindow.unkA * 16, list->listWindow.unk4 * 8, 16);
+ AddTextPrinterParameterized3(list->listWindow.windowId, list->listWindow.fontId, 8, (list->listWindow.unkA * 16) + 1, colors, TEXT_SPEED_FF, list->unkTextBuffer);
+ sub_81C8C64(&list->listWindow, 1);
+ CopyWindowRectToVram(list->listWindow.windowId, 3, 0, list->listWindow.unkA * 2, list->listWindow.unk4, 2);
}
-void sub_81C8D4C(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1)
+void sub_81C8D4C(struct MatchCallWindowState *state, struct PokenavSub17Substruct *list)
{
- a1->unk34(a0->unk10 + a0->unkC * a0->windowTopIndex, a1->unkTextBuffer);
- FillWindowPixelRect(a1->unk0.windowId, PIXEL_FILL(1), 0, a1->unk0.unkA * 16, a1->unk0.unk4 * 8, 16);
- AddTextPrinterParameterized(a1->unk0.windowId, a1->unk0.fontId, a1->unkTextBuffer, 8, a1->unk0.unkA * 16 + 1, TEXT_SPEED_FF, NULL);
- sub_81C8C64(&a1->unk0, 0);
- CopyWindowToVram(a1->unk0.windowId, 3);
+ list->unk34(state->unk10 + state->unkC * state->windowTopIndex, list->unkTextBuffer);
+ FillWindowPixelRect(list->listWindow.windowId, PIXEL_FILL(1), 0, list->listWindow.unkA * 16, list->listWindow.unk4 * 8, 16);
+ AddTextPrinterParameterized(list->listWindow.windowId, list->listWindow.fontId, list->unkTextBuffer, 8, list->listWindow.unkA * 16 + 1, TEXT_SPEED_FF, NULL);
+ sub_81C8C64(&list->listWindow, 0);
+ CopyWindowToVram(list->listWindow.windowId, 3);
}
-void PrintMatchCallFieldNames(struct PokenavSub17Substruct *a0, u32 fieldId)
+void PrintMatchCallFieldNames(struct PokenavSub17Substruct *list, u32 fieldId)
{
const u8 *fieldNames[] = {gText_PokenavMatchCall_Strategy, gText_PokenavMatchCall_TrainerPokemon, gText_PokenavMatchCall_SelfIntroduction};
u8 colors[3] = {TEXT_COLOR_WHITE, TEXT_COLOR_RED, TEXT_COLOR_LIGHT_RED};
- u32 top = (a0->unk0.unkA + 1 + (fieldId * 2)) & 0xF;
+ u32 top = (list->listWindow.unkA + 1 + (fieldId * 2)) & 0xF;
- FillWindowPixelRect(a0->unk0.windowId, PIXEL_FILL(1), 0, top << 4, a0->unk0.unk4, 16);
- AddTextPrinterParameterized3(a0->unk0.windowId, 7, 2, (top << 4) + 1, colors, -1, fieldNames[fieldId]);
- CopyWindowRectToVram(a0->unk0.windowId, 2, 0, top << 1, a0->unk0.unk4, 2);
+ FillWindowPixelRect(list->listWindow.windowId, PIXEL_FILL(1), 0, top << 4, list->listWindow.unk4, 16);
+ AddTextPrinterParameterized3(list->listWindow.windowId, 7, 2, (top << 4) + 1, colors, -1, fieldNames[fieldId]);
+ CopyWindowRectToVram(list->listWindow.windowId, 2, 0, top << 1, list->listWindow.unk4, 2);
}
-static void PrintMatchCallFlavorText(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1, u32 checkPageEntry)
+static void PrintMatchCallFlavorText(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *list, u32 checkPageEntry)
{
// lines 1, 3, and 5 are the field names printed by PrintMatchCallFieldNames
static const u8 lineOffsets[CHECK_PAGE_ENTRY_COUNT] =
@@ -749,14 +749,14 @@ static void PrintMatchCallFlavorText(struct MatchCallWindowState *a0, struct Pok
[CHECK_PAGE_INTRO_2] = 7
};
- u32 r6 = (a1->unk0.unkA + lineOffsets[checkPageEntry]) & 0xF;
+ u32 r6 = (list->listWindow.unkA + lineOffsets[checkPageEntry]) & 0xF;
const u8 *str = GetMatchCallFlavorText(a0->windowTopIndex, checkPageEntry);
if (str != NULL)
{
- sub_81DB620(a1->unk0.windowId, 1, r6 * 2, a1->unk0.unk4 - 1, 2);
- AddTextPrinterParameterized(a1->unk0.windowId, 7, str, 2, (r6 << 4) + 1, TEXT_SPEED_FF, NULL);
- CopyWindowRectToVram(a1->unk0.windowId, 2, 0, r6 * 2, a1->unk0.unk4, 2);
+ sub_81DB620(list->listWindow.windowId, 1, r6 * 2, list->listWindow.unk4 - 1, 2);
+ AddTextPrinterParameterized(list->listWindow.windowId, 7, str, 2, (r6 << 4) + 1, TEXT_SPEED_FF, NULL);
+ CopyWindowRectToVram(list->listWindow.windowId, 2, 0, r6 * 2, list->listWindow.unk4, 2);
}
}
@@ -839,57 +839,57 @@ void sub_81C8ED0(void)
Pokenav_AllocAndLoadPalettes(sMatchcallArrowPalettes);
}
-void sub_81C8EF8(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1)
+void CreateMatchCallArrowSprites(struct MatchCallWindowState *windowState, struct PokenavSub17Substruct *list)
{
u32 spriteId;
s16 x;
- spriteId = CreateSprite(&sMatchCallRightArrowSprite, a1->unk0.unk2 * 8 + 3, (a1->unk0.unk3 + 1) * 8, 7);
- a1->rightArrow = &gSprites[spriteId];
+ spriteId = CreateSprite(&sMatchCallRightArrowSprite, list->listWindow.unk2 * 8 + 3, (list->listWindow.unk3 + 1) * 8, 7);
+ list->rightArrow = &gSprites[spriteId];
- x = a1->unk0.unk2 * 8 + (a1->unk0.unk4 - 1) * 4;
- spriteId = CreateSprite(&sMatchCallUpDownArrowSprite, x, a1->unk0.unk3 * 8 + a0->visibleEntries * 16, 7);
- a1->downArrow = &gSprites[spriteId];
- a1->downArrow->oam.tileNum += 2;
- a1->downArrow->callback = SpriteCB_MatchCallDownArrow;
+ x = list->listWindow.unk2 * 8 + (list->listWindow.unk4 - 1) * 4;
+ spriteId = CreateSprite(&sMatchCallUpDownArrowSprite, x, list->listWindow.unk3 * 8 + windowState->visibleEntries * 16, 7);
+ list->downArrow = &gSprites[spriteId];
+ list->downArrow->oam.tileNum += 2;
+ list->downArrow->callback = SpriteCB_MatchCallDownArrow;
- spriteId = CreateSprite(&sMatchCallUpDownArrowSprite, x, a1->unk0.unk3 * 8, 7);
- a1->upArrow = &gSprites[spriteId];
- a1->upArrow->oam.tileNum += 4;
- a1->upArrow->callback = SpriteCB_MatchCallUpArrow;
+ spriteId = CreateSprite(&sMatchCallUpDownArrowSprite, x, list->listWindow.unk3 * 8, 7);
+ list->upArrow = &gSprites[spriteId];
+ list->upArrow->oam.tileNum += 4;
+ list->upArrow->callback = SpriteCB_MatchCallUpArrow;
}
-void sub_81C8FE0(struct PokenavSub17Substruct *a0)
+void DestroyMatchCallListArrows(struct PokenavSub17Substruct *list)
{
- DestroySprite(a0->rightArrow);
- DestroySprite(a0->upArrow);
- DestroySprite(a0->downArrow);
+ DestroySprite(list->rightArrow);
+ DestroySprite(list->upArrow);
+ DestroySprite(list->downArrow);
FreeSpriteTilesByTag(0xA);
FreeSpritePaletteByTag(0x14);
}
-void ToggleMatchCallArrows(struct PokenavSub17Substruct *a0, bool32 shouldHide)
+void ToggleMatchCallArrows(struct PokenavSub17Substruct *list, bool32 shouldHide)
{
if (shouldHide)
{
- a0->rightArrow->callback = SpriteCallbackDummy;
- a0->upArrow->callback = SpriteCallbackDummy;
- a0->downArrow->callback = SpriteCallbackDummy;
+ list->rightArrow->callback = SpriteCallbackDummy;
+ list->upArrow->callback = SpriteCallbackDummy;
+ list->downArrow->callback = SpriteCallbackDummy;
}
else
{
- a0->rightArrow->callback = SpriteCB_MatchCallRightArrow;
- a0->upArrow->callback = SpriteCB_MatchCallUpArrow;
- a0->downArrow->callback = SpriteCB_MatchCallDownArrow;
+ list->rightArrow->callback = SpriteCB_MatchCallRightArrow;
+ list->upArrow->callback = SpriteCB_MatchCallUpArrow;
+ list->downArrow->callback = SpriteCB_MatchCallDownArrow;
}
- a0->rightArrow->invisible = shouldHide;
- a0->upArrow->invisible = shouldHide;
- a0->downArrow->invisible = shouldHide;
+ list->rightArrow->invisible = shouldHide;
+ list->upArrow->invisible = shouldHide;
+ list->downArrow->invisible = shouldHide;
}
void SpriteCB_MatchCallRightArrow(struct Sprite *sprite)
{
- struct PokenavSub17 *structPtr = GetSubstructPtr(17);
+ struct PokenavSub17 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
sprite->pos2.y = structPtr->unk888.selectedIndexOffset << 4;
}
@@ -931,68 +931,68 @@ void SpriteCB_MatchCallUpArrow(struct Sprite *sprite)
void ToggleMatchCallVerticalArrows(bool32 shouldHide)
{
- struct PokenavSub17 *structPtr = GetSubstructPtr(17);
- structPtr->unk0.upArrow->data[7] = shouldHide;
- structPtr->unk0.downArrow->data[7] = shouldHide;
+ struct PokenavSub17 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_MATCH_CALL_LIST);
+ structPtr->list.upArrow->data[7] = shouldHide;
+ structPtr->list.downArrow->data[7] = shouldHide;
}
-void sub_81C9160(struct MatchCallWindowState *a0, struct PokenavListTemplate *a1)
+void InitMatchCallWindowState(struct MatchCallWindowState *dst, struct PokenavListTemplate *template)
{
- a0->unk10 = a1->list.matchCallEntries;
- a0->windowTopIndex = a1->unk6;
- a0->listLength = a1->unk4;
- a0->unkC = a1->unk8;
- a0->visibleEntries = a1->unkC;
- if (a0->visibleEntries >= a0->listLength)
+ dst->unk10 = template->list.matchCallEntries;
+ dst->windowTopIndex = template->unk6;
+ dst->listLength = template->count;
+ dst->unkC = template->unk8;
+ dst->visibleEntries = template->maxShowed;
+ if (dst->visibleEntries >= dst->listLength)
{
- a0->windowTopIndex = 0;
- a0->unk4 = 0;
- a0->selectedIndexOffset = a1->unk6;
+ dst->windowTopIndex = 0;
+ dst->unk4 = 0;
+ dst->selectedIndexOffset = template->unk6;
}
else
{
- a0->unk4 = a0->listLength - a0->visibleEntries;
- if (a0->windowTopIndex + a0->visibleEntries > a0->listLength)
+ dst->unk4 = dst->listLength - dst->visibleEntries;
+ if (dst->windowTopIndex + dst->visibleEntries > dst->listLength)
{
- a0->selectedIndexOffset = a0->windowTopIndex + a0->visibleEntries - a0->listLength;
- a0->windowTopIndex = a1->unk6 - a0->selectedIndexOffset;
+ dst->selectedIndexOffset = dst->windowTopIndex + dst->visibleEntries - dst->listLength;
+ dst->windowTopIndex = template->unk6 - dst->selectedIndexOffset;
}
else
{
- a0->selectedIndexOffset = 0;
+ dst->selectedIndexOffset = 0;
}
}
}
-bool32 sub_81C91AC(struct PokenavSub17Substruct *a0, const struct BgTemplate *a1, struct PokenavListTemplate *a2, s32 a3)
+bool32 CopyPokenavListMenuTemplate(struct PokenavSub17Substruct *dest, const struct BgTemplate *bgTemplate, struct PokenavListTemplate *template, s32 a3)
{
struct WindowTemplate window;
- a0->unk0.bg = a1->bg;
- a0->unk0.unk6 = a3;
- a0->unk34 = a2->listFunc.unk10_2;
- a0->unk38 = a2->unk14;
- a0->unk0.unk1 = a2->unkD;
- a0->unk0.unk2 = a2->unk9;
- a0->unk0.unk3 = a2->unkB;
- a0->unk0.unk4 = a2->unkA;
- a0->unk0.fontId = a2->unkE;
-
- window.bg = a1->bg;
- window.tilemapLeft = a2->unk9;
+ dest->listWindow.bg = bgTemplate->bg;
+ dest->listWindow.unk6 = a3;
+ dest->unk34 = template->listFunc.unk10_2;
+ dest->unk38 = template->unk14;
+ dest->listWindow.unk1 = template->fillValue;
+ dest->listWindow.unk2 = template->item_X;
+ dest->listWindow.unk3 = template->listTop;
+ dest->listWindow.unk4 = template->windowWidth;
+ dest->listWindow.fontId = template->fontId;
+
+ window.bg = bgTemplate->bg;
+ window.tilemapLeft = template->item_X;
window.tilemapTop = 0;
- window.width = a2->unkA;
+ window.width = template->windowWidth;
window.height = 32;
- window.paletteNum = a2->unkD;
+ window.paletteNum = template->fillValue;
window.baseBlock = a3 + 2;
- a0->unk0.windowId = AddWindow(&window);
- if (a0->unk0.windowId == 0xFF)
+ dest->listWindow.windowId = AddWindow(&window);
+ if (dest->listWindow.windowId == 0xFF)
return FALSE;
- a0->unk0.unkA = 0;
- a0->rightArrow = NULL;
- a0->upArrow = NULL;
- a0->downArrow = NULL;
+ dest->listWindow.unkA = 0;
+ dest->rightArrow = NULL;
+ dest->upArrow = NULL;
+ dest->downArrow = NULL;
return 1;
}
diff --git a/src/pokenav_menu_handler_1.c b/src/pokenav_menu_handler_1.c
index 6002d731b..4792756c1 100644
--- a/src/pokenav_menu_handler_1.c
+++ b/src/pokenav_menu_handler_1.c
@@ -32,53 +32,53 @@ static u32 (*GetMainMenuInputHandler(void))(struct Pokenav1Struct*);
static void SetMenuInputHandler(struct Pokenav1Struct *state);
// Number of entries - 1 for that menu type
-static const u8 sLastCursorPositions[] =
+static const u8 sLastCursorPositions[] =
{
- [POKENAV_MENU_TYPE_DEFAULT] = 2,
- [POKENAV_MENU_TYPE_UNLOCK_MC] = 3,
- [POKENAV_MENU_TYPE_UNLOCK_MC_RIBBONS] = 4,
- [POKENAV_MENU_TYPE_CONDITION] = 2,
+ [POKENAV_MENU_TYPE_DEFAULT] = 2,
+ [POKENAV_MENU_TYPE_UNLOCK_MC] = 3,
+ [POKENAV_MENU_TYPE_UNLOCK_MC_RIBBONS] = 4,
+ [POKENAV_MENU_TYPE_CONDITION] = 2,
[POKENAV_MENU_TYPE_CONDITION_SEARCH] = 5
};
static const u8 sMenuItems[][6] =
{
- [POKENAV_MENU_TYPE_DEFAULT] =
- {
- POKENAV_MENUITEM_MAP,
- POKENAV_MENUITEM_CONDITION,
+ [POKENAV_MENU_TYPE_DEFAULT] =
+ {
+ POKENAV_MENUITEM_MAP,
+ POKENAV_MENUITEM_CONDITION,
[2 ... 5] = POKENAV_MENUITEM_SWITCH_OFF
},
- [POKENAV_MENU_TYPE_UNLOCK_MC] =
- {
- POKENAV_MENUITEM_MAP,
- POKENAV_MENUITEM_CONDITION,
- POKENAV_MENUITEM_MATCH_CALL,
+ [POKENAV_MENU_TYPE_UNLOCK_MC] =
+ {
+ POKENAV_MENUITEM_MAP,
+ POKENAV_MENUITEM_CONDITION,
+ POKENAV_MENUITEM_MATCH_CALL,
[3 ... 5] = POKENAV_MENUITEM_SWITCH_OFF
},
- [POKENAV_MENU_TYPE_UNLOCK_MC_RIBBONS] =
- {
- POKENAV_MENUITEM_MAP,
- POKENAV_MENUITEM_CONDITION,
- POKENAV_MENUITEM_MATCH_CALL,
- POKENAV_MENUITEM_RIBBONS,
+ [POKENAV_MENU_TYPE_UNLOCK_MC_RIBBONS] =
+ {
+ POKENAV_MENUITEM_MAP,
+ POKENAV_MENUITEM_CONDITION,
+ POKENAV_MENUITEM_MATCH_CALL,
+ POKENAV_MENUITEM_RIBBONS,
[4 ... 5] = POKENAV_MENUITEM_SWITCH_OFF
},
- [POKENAV_MENU_TYPE_CONDITION] =
- {
- POKENAV_MENUITEM_CONDITION_PARTY,
- POKENAV_MENUITEM_CONDITION_SEARCH,
- POKENAV_MENUITEM_CONDITION_CANCEL,
+ [POKENAV_MENU_TYPE_CONDITION] =
+ {
+ POKENAV_MENUITEM_CONDITION_PARTY,
+ POKENAV_MENUITEM_CONDITION_SEARCH,
+ POKENAV_MENUITEM_CONDITION_CANCEL,
[3 ... 5] = POKENAV_MENUITEM_SWITCH_OFF
},
- [POKENAV_MENU_TYPE_CONDITION_SEARCH] =
- {
- POKENAV_MENUITEM_CONDITION_SEARCH_COOL,
- POKENAV_MENUITEM_CONDITION_SEARCH_BEAUTY,
- POKENAV_MENUITEM_CONDITION_SEARCH_CUTE,
- POKENAV_MENUITEM_CONDITION_SEARCH_SMART,
- POKENAV_MENUITEM_CONDITION_SEARCH_TOUGH,
- POKENAV_MENUITEM_CONDITION_SEARCH_CANCEL
+ [POKENAV_MENU_TYPE_CONDITION_SEARCH] =
+ {
+ POKENAV_MENUITEM_CONDITION_SEARCH_COOL,
+ POKENAV_MENUITEM_CONDITION_SEARCH_BEAUTY,
+ POKENAV_MENUITEM_CONDITION_SEARCH_CUTE,
+ POKENAV_MENUITEM_CONDITION_SEARCH_SMART,
+ POKENAV_MENUITEM_CONDITION_SEARCH_TOUGH,
+ POKENAV_MENUITEM_CONDITION_SEARCH_CANCEL
},
};
@@ -87,24 +87,24 @@ static u8 GetPokenavMainMenuType(void)
u8 menuType = POKENAV_MENU_TYPE_DEFAULT;
if (FlagGet(FLAG_ADDED_MATCH_CALL_TO_POKENAV))
- {
+ {
menuType = POKENAV_MENU_TYPE_UNLOCK_MC;
if (FlagGet(FLAG_SYS_RIBBON_GET))
menuType = POKENAV_MENU_TYPE_UNLOCK_MC_RIBBONS;
}
-
+
return menuType;
}
bool32 PokenavCallback_Init_MainMenuCursorOnMap(void)
{
- struct Pokenav1Struct *state = AllocSubstruct(1, sizeof(struct Pokenav1Struct));
+ struct Pokenav1Struct *state = AllocSubstruct(POKENAV_SUBSTRUCT_MAIN_MENU_HANDLER, sizeof(struct Pokenav1Struct));
if (!state)
return FALSE;
-
+
state->menuType = GetPokenavMainMenuType();
- state->cursorPos = 0;
+ state->cursorPos = POKENAV_MENUITEM_MAP;
state->currMenuItem = POKENAV_MENUITEM_MAP;
state->helpBarIndex = HELPBAR_NONE;
SetMenuInputHandler(state);
@@ -113,12 +113,12 @@ bool32 PokenavCallback_Init_MainMenuCursorOnMap(void)
bool32 PokenavCallback_Init_MainMenuCursorOnMatchCall(void)
{
- struct Pokenav1Struct *state = AllocSubstruct(1, sizeof(struct Pokenav1Struct));
+ struct Pokenav1Struct *state = AllocSubstruct(POKENAV_SUBSTRUCT_MAIN_MENU_HANDLER, sizeof(struct Pokenav1Struct));
if (!state)
return FALSE;
-
+
state->menuType = GetPokenavMainMenuType();
- state->cursorPos = 2;
+ state->cursorPos = POKENAV_MENUITEM_MATCH_CALL;
state->currMenuItem = POKENAV_MENUITEM_MATCH_CALL;
state->helpBarIndex = HELPBAR_NONE;
SetMenuInputHandler(state);
@@ -127,12 +127,12 @@ bool32 PokenavCallback_Init_MainMenuCursorOnMatchCall(void)
bool32 PokenavCallback_Init_MainMenuCursorOnRibbons(void)
{
- struct Pokenav1Struct *state = AllocSubstruct(1, sizeof(struct Pokenav1Struct));
+ struct Pokenav1Struct *state = AllocSubstruct(POKENAV_SUBSTRUCT_MAIN_MENU_HANDLER, sizeof(struct Pokenav1Struct));
if (!state)
return FALSE;
-
+
state->menuType = GetPokenavMainMenuType();
- state->cursorPos = 3;
+ state->cursorPos = POKENAV_MENUITEM_RIBBONS;
state->currMenuItem = POKENAV_MENUITEM_RIBBONS;
SetMenuInputHandler(state);
return TRUE;
@@ -140,12 +140,12 @@ bool32 PokenavCallback_Init_MainMenuCursorOnRibbons(void)
bool32 PokenavCallback_Init_ConditionMenu(void)
{
- struct Pokenav1Struct *state = AllocSubstruct(1, sizeof(struct Pokenav1Struct));
+ struct Pokenav1Struct *state = AllocSubstruct(POKENAV_SUBSTRUCT_MAIN_MENU_HANDLER, sizeof(struct Pokenav1Struct));
if (!state)
return FALSE;
-
+
state->menuType = POKENAV_MENU_TYPE_CONDITION;
- state->cursorPos = 0;
+ state->cursorPos = 0; //party
state->currMenuItem = POKENAV_MENUITEM_CONDITION_PARTY;
state->helpBarIndex = HELPBAR_NONE;
SetMenuInputHandler(state);
@@ -154,10 +154,10 @@ bool32 PokenavCallback_Init_ConditionMenu(void)
bool32 PokenavCallback_Init_ConditionSearchMenu(void)
{
- struct Pokenav1Struct *state = AllocSubstruct(1, sizeof(struct Pokenav1Struct));
+ struct Pokenav1Struct *state = AllocSubstruct(POKENAV_SUBSTRUCT_MAIN_MENU_HANDLER, sizeof(struct Pokenav1Struct));
if (!state)
return FALSE;
-
+
state->menuType = POKENAV_MENU_TYPE_CONDITION_SEARCH;
state->cursorPos = GetSelectedConditionSearch();
state->currMenuItem = state->cursorPos + POKENAV_MENUITEM_CONDITION_SEARCH_COOL;
@@ -202,13 +202,13 @@ static u32 (*GetMainMenuInputHandler(void))(struct Pokenav1Struct*)
u32 GetMenuHandlerCallback(void)
{
- struct Pokenav1Struct *state = GetSubstructPtr(1);
+ struct Pokenav1Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MAIN_MENU_HANDLER);
return state->callback(state);
}
void FreeMenuHandlerSubstruct1(void)
{
- FreePokenavSubstruct(1);
+ FreePokenavSubstruct(POKENAV_SUBSTRUCT_MAIN_MENU_HANDLER);
}
static u32 HandleMainMenuInput(struct Pokenav1Struct *state)
@@ -247,12 +247,12 @@ static u32 HandleMainMenuInput(struct Pokenav1Struct *state)
return POKENAV_MENU_FUNC_NO_RIBBON_WINNERS;
}
case POKENAV_MENUITEM_SWITCH_OFF:
- return -1;
+ return POKENAV_MENU_FUNC_EXIT;
}
}
-
+
if (JOY_NEW(B_BUTTON))
- return -1;
+ return POKENAV_MENU_FUNC_EXIT;
return POKENAV_MENU_FUNC_NONE;
}
@@ -262,7 +262,7 @@ static u32 HandleMainMenuInputTutorial(struct Pokenav1Struct *state)
{
if (UpdateMenuCursorPos(state))
return POKENAV_MENU_FUNC_MOVE_CURSOR;
-
+
if (JOY_NEW(A_BUTTON))
{
if (sMenuItems[state->menuType][state->cursorPos] == POKENAV_MENUITEM_MATCH_CALL)
@@ -277,13 +277,13 @@ static u32 HandleMainMenuInputTutorial(struct Pokenav1Struct *state)
return POKENAV_MENU_FUNC_NONE;
}
}
-
+
if (JOY_NEW(B_BUTTON))
{
PlaySE(SE_FAILURE);
return POKENAV_MENU_FUNC_NONE;
}
-
+
return POKENAV_MENU_FUNC_NONE;
}
@@ -292,7 +292,7 @@ static u32 HandleMainMenuInputEndTutorial(struct Pokenav1Struct *state)
{
if (UpdateMenuCursorPos(state))
return POKENAV_MENU_FUNC_MOVE_CURSOR;
-
+
if (JOY_NEW(A_BUTTON))
{
u32 menuItem = sMenuItems[state->menuType][state->cursorPos];
@@ -342,7 +342,7 @@ static u32 HandleConditionMenuInput(struct Pokenav1Struct *state)
{
if (UpdateMenuCursorPos(state))
return POKENAV_MENU_FUNC_MOVE_CURSOR;
-
+
if (JOY_NEW(A_BUTTON))
{
switch (sMenuItems[state->menuType][state->cursorPos])
@@ -386,7 +386,7 @@ static u32 HandleConditionSearchMenuInput(struct Pokenav1Struct *state)
{
if (UpdateMenuCursorPos(state))
return POKENAV_MENU_FUNC_MOVE_CURSOR;
-
+
if (JOY_NEW(A_BUTTON))
{
u8 menuItem = sMenuItems[state->menuType][state->cursorPos];
@@ -488,26 +488,26 @@ static bool32 UpdateMenuCursorPos(struct Pokenav1Struct *state)
int GetPokenavMenuType(void)
{
- struct Pokenav1Struct *state = GetSubstructPtr(1);
+ struct Pokenav1Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MAIN_MENU_HANDLER);
return state->menuType;
}
// Position of cursor relative to number of current menu options
int GetPokenavCursorPos(void)
{
- struct Pokenav1Struct *state = GetSubstructPtr(1);
+ struct Pokenav1Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MAIN_MENU_HANDLER);
return state->cursorPos;
}
// ID of menu item the cursor is currently on
int GetCurrentMenuItemId(void)
{
- struct Pokenav1Struct *state = GetSubstructPtr(1);
+ struct Pokenav1Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MAIN_MENU_HANDLER);
return state->currMenuItem;
}
u16 GetHelpBarTextId(void)
{
- struct Pokenav1Struct *state = GetSubstructPtr(1);
+ struct Pokenav1Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_MAIN_MENU_HANDLER);
return state->helpBarIndex;
}
diff --git a/src/pokenav_menu_handler_2.c b/src/pokenav_menu_handler_2.c
index 2be92013f..3fcd41dc9 100644
--- a/src/pokenav_menu_handler_2.c
+++ b/src/pokenav_menu_handler_2.c
@@ -27,7 +27,7 @@ struct Pokenav2Struct
bool8 otherIconsInMotion;
bool8 pokenavAlreadyOpen;
bool32 iconVisible[MAX_POKENAV_MENUITEMS];
- struct Sprite * field_028;
+ struct Sprite * blueLightSpriteId;
struct Sprite * iconSprites[MAX_POKENAV_MENUITEMS][4];
u16 bg1TilemapBuffer[0x400];
};
@@ -43,54 +43,54 @@ static u32 LoopedTask_ReturnToConditionMenu(s32 state);
static u32 LoopedTask_SelectRibbonsNoWinners(s32 state);
static u32 LoopedTask_ReShowDescription(s32 state);
static u32 LoopedTask_OpenPokenavFeature(s32 state);
-static void sub_81C9FC4(void);
-static void sub_81C9FEC(void);
+static void LoadPokenavOptionPalettes(void);
+static void FreeAndDestroyMainMenuSprites(void);
static void CreateMenuOptionSprites(void);
-static void sub_81CA094(void);
+static void DestroyMenuOptionSprites(void);
static void sub_81CA0C8(void);
-static void sub_81CA0EC(const u16 *const * a0, s32 a1, s32 a2);
-static void sub_81CA20C(void);
-static void sub_81CA278(void);
-static void sub_81CA35C(struct Sprite ** sprites, s32 a1, s32 a2, s32 a3);
-static void sub_81CA3B4(struct Sprite ** sprites);
-static void sub_81CA2DC(void);
+static void DrawOptionLabelGfx(const u16 *const * a0, s32 yPos, s32 a2);
+static void SetupCurrentMenuOptionsGfx(void);
+static void SetMenuOptionGfxParams_CursorMoved(void);
+static void SetMenuOptionGfxParamsInactive(struct Sprite ** sprites, s32 x, s32 a2, s32 a3);
+static void SetMenuOptionGfxParamsActive(struct Sprite ** sprites);
+static void SetupPokenavMenuOptions(void);
static bool32 AreMenuOptionSpritesMoving(void);
-static void sub_81CA448(struct Sprite ** sprites, bool32 a1);
+static void SetMenuOptionGfxInvisibility(struct Sprite ** sprites, bool32 a1);
static void sub_81CA474(struct Sprite * sprite);
static void sub_81CA4AC(struct Sprite * sprite);
static void sub_81CA580(u8 taskId);
-static void sub_81CA640(void);
-static void sub_81CA6AC(struct Sprite * sprite);
-static void sub_81CA698(void);
+static void CreateMatchCallBlueLightSprite(void);
+static void SpriteCB_BlinkingBlueLight(struct Sprite * sprite);
+static void DestroyRematchBlueLightSpriteId(void);
static void AddOptionDescriptionWindow(void);
static void PrintCurrentOptionDescription(void);
static void PrintNoRibbonWinners(void);
-static bool32 sub_81CA7C4(void);
-static void sub_81CA7D4(void);
-static void sub_81CA7F4(void);
-static void sub_81CA808(u8 taskId);
-static void sub_81CA818(void);
-static void sub_81CA850(void);
-static void sub_81CA864(void);
-static bool32 sub_81CA89C(void);
-static void sub_81CA8B0(u8 taskId);
-static void sub_81CA92C(void);
-static void sub_81CA994(void);
-static void sub_81CA9C8(void);
-static void sub_81CA9D8(void);
-static void sub_81CA9EC(u8 taskId);
-static void sub_81CAA3C(void);
-
-static const u16 gUnknown_0861FC78[] = INCBIN_U16("graphics/pokenav/bg.gbapal");
-static const u32 gUnknown_0861FC98[] = INCBIN_U32("graphics/pokenav/bg.4bpp.lz");
-static const u32 gUnknown_0861FCAC[] = INCBIN_U32("graphics/pokenav/bg.bin.lz");
-static const u16 gUnknown_0861FD4C[] = INCBIN_U16("graphics/pokenav/outline.gbapal");
-static const u32 gUnknown_0861FD6C[] = INCBIN_U32("graphics/pokenav/outline.4bpp.lz");
-static const u32 gUnknown_0861FFF4[] = INCBIN_U32("graphics/pokenav/outline_map.bin.lz");
-static const u16 gUnknown_08620104[] = INCBIN_U16("graphics/pokenav/blue_light.gbapal");
-static const u32 gUnknown_08620124[] = INCBIN_U32("graphics/pokenav/blue_light.4bpp.lz");
-
-static const struct BgTemplate gUnknown_08620194[] = {
+static bool32 IsDma3ManagerBusyWithBgCopy_(void);
+static void CreateMovingBgDotsTask(void);
+static void DestroyMovingDotsBgTask(void);
+static void Task_MoveBgDots(u8 taskId);
+static void CreateBgDotPurplePalTask(void);
+static void ChangeBgDotsColorToPurple(void);
+static void CreateBgDotLightBluePalTask(void);
+static bool32 IsTaskActive_UpdateBgDotsPalette(void);
+static void Task_UpdateBgDotsPalette(u8 taskId);
+static void SetupPokenavMenuScanlineEffects(void);
+static void DestroyMenuOptionGlowTask(void);
+static void ResetBldCnt(void);
+static void InitMenuOptionGlow(void);
+static void Task_CurrentMenuOptionGlow(u8 taskId);
+static void SetMenuOptionGlow(void);
+
+static const u16 sPokenavBgDotsPal[] = INCBIN_U16("graphics/pokenav/bg_dots.gbapal");
+static const u32 sPokenavBgDotsTiles[] = INCBIN_U32("graphics/pokenav/bg_dots.4bpp.lz");
+static const u32 sPokenavBgDotsTilemap[] = INCBIN_U32("graphics/pokenav/bg_dots.bin.lz");
+static const u16 sPokenavDeviceBgPal[] = INCBIN_U16("graphics/pokenav/device_outline.gbapal");
+static const u32 sPokenavDeviceBgTiles[] = INCBIN_U32("graphics/pokenav/device_outline.4bpp.lz");
+static const u32 sPokenavDeviceBgTilemap[] = INCBIN_U32("graphics/pokenav/device_outline_map.bin.lz");
+static const u16 sMatchCallBlueLightPal[] = INCBIN_U16("graphics/pokenav/blue_light.gbapal");
+static const u32 sMatchCallBlueLightTiles[] = INCBIN_U32("graphics/pokenav/blue_light.4bpp.lz");
+
+static const struct BgTemplate sPokenavMainMenuBgTemplates[] = {
{
.bg = 1,
.charBaseIndex = 1,
@@ -118,7 +118,8 @@ static const struct BgTemplate gUnknown_08620194[] = {
}
};
-static const LoopedTask sMenuHandlerLoopTaskFuncs[] = {
+static const LoopedTask sMenuHandlerLoopTaskFuncs[] =
+{
[POKENAV_MENU_FUNC_NONE] = NULL,
[POKENAV_MENU_FUNC_MOVE_CURSOR] = LoopedTask_MoveMenuCursor,
[POKENAV_MENU_FUNC_OPEN_CONDITION] = LoopedTask_OpenConditionMenu,
@@ -130,7 +131,7 @@ static const LoopedTask sMenuHandlerLoopTaskFuncs[] = {
[POKENAV_MENU_FUNC_OPEN_FEATURE] = LoopedTask_OpenPokenavFeature
};
-static const struct CompressedSpriteSheet gUnknown_086201C4[] =
+static const struct CompressedSpriteSheet sPokenavOptionsSpriteSheets[] =
{
{
.data = gPokenavOptions_Gfx,
@@ -138,76 +139,75 @@ static const struct CompressedSpriteSheet gUnknown_086201C4[] =
.tag = 0x0003
},
{
- .data = gUnknown_08620124,
+ .data = sMatchCallBlueLightTiles,
.size = 0x0100,
.tag = 0x0001
}
};
-static const struct SpritePalette gUnknown_086201D4[] =
+static const struct SpritePalette sPokenavOptionsSpritePalettes[] =
{
{gPokenavOptions_Pal + 0x00, 4},
{gPokenavOptions_Pal + 0x10, 5},
{gPokenavOptions_Pal + 0x20, 6},
{gPokenavOptions_Pal + 0x30, 7},
{gPokenavOptions_Pal + 0x40, 8},
- {gUnknown_08620104, 3},
+ {sMatchCallBlueLightPal, 3},
{}
};
-static const u16 gUnknown_0862020C[] = {0, 0};
-static const u16 gUnknown_08620210[] = {0x20, 1};
-static const u16 gUnknown_08620214[] = {0x40, 4};
-static const u16 gUnknown_08620218[] = {0x60, 2};
-static const u16 gUnknown_0862021C[] = {0x80, 3};
-static const u16 gUnknown_08620220[] = {0xA0, 1};
-static const u16 gUnknown_08620224[] = {0xC0, 1};
-static const u16 gUnknown_08620228[] = {0xE0, 4};
-static const u16 gUnknown_0862022C[] = {0x100, 1};
-static const u16 gUnknown_08620230[] = {0x120, 2};
-static const u16 gUnknown_08620234[] = {0x140, 0};
-static const u16 gUnknown_08620238[] = {0x160, 0};
-static const u16 gUnknown_0862023C[] = {0x180, 3};
-
-struct UnkStruct_08620240
-{
- u16 unk0;
- u16 unk2;
- const u16 *unk4[MAX_POKENAV_MENUITEMS];
+static const u16 sOptionsLabelGfx_RegionMap[] = {0, 0};
+static const u16 sOptionsLabelGfx_Condition[] = {0x20, 1};
+static const u16 sOptionsLabelGfx_MatchCall[] = {0x40, 4};
+static const u16 sOptionsLabelGfx_Ribbons[] = {0x60, 2};
+static const u16 sOptionsLabelGfx_SwitchOff[] = {0x80, 3};
+static const u16 sOptionsLabelGfx_Party[] = {0xA0, 1};
+static const u16 sOptionsLabelGfx_Search[] = {0xC0, 1};
+static const u16 sOptionsLabelGfx_Cool[] = {0xE0, 4};
+static const u16 sOptionsLabelGfx_Beauty[] = {0x100, 1};
+static const u16 sOptionsLabelGfx_Cute[] = {0x120, 2};
+static const u16 sOptionsLabelGfx_Smart[] = {0x140, 0};
+static const u16 sOptionsLabelGfx_Tough[] = {0x160, 0};
+static const u16 sOptionsLabelGfx_Cancel[] = {0x180, 3};
+
+struct OptionsLabelGfx
+{
+ u16 yStart;
+ u16 deltaY;
+ const u16 *tiles[MAX_POKENAV_MENUITEMS];
};
-// TODO
-static const struct UnkStruct_08620240 gUnknown_08620240[POKENAV_MENU_TYPE_COUNT] =
+static const struct OptionsLabelGfx sPokenavMenuOptionLabelGfx[POKENAV_MENU_TYPE_COUNT] =
{
[POKENAV_MENU_TYPE_DEFAULT] =
{
- 0x2A,
- 0x14,
- {gUnknown_0862020C, gUnknown_08620210, gUnknown_0862021C}
+ .yStart = 42,
+ .deltaY = 20,
+ {sOptionsLabelGfx_RegionMap, sOptionsLabelGfx_Condition, sOptionsLabelGfx_SwitchOff}
},
[POKENAV_MENU_TYPE_UNLOCK_MC] =
{
- 0x2A,
- 0x14,
- {gUnknown_0862020C, gUnknown_08620210, gUnknown_08620214, gUnknown_0862021C}
+ .yStart = 42,
+ .deltaY = 20,
+ {sOptionsLabelGfx_RegionMap, sOptionsLabelGfx_Condition, sOptionsLabelGfx_MatchCall, sOptionsLabelGfx_SwitchOff}
},
[POKENAV_MENU_TYPE_UNLOCK_MC_RIBBONS] =
{
- 0x2A,
- 0x14,
- {gUnknown_0862020C, gUnknown_08620210, gUnknown_08620214, gUnknown_08620218, gUnknown_0862021C}
+ .yStart = 42,
+ .deltaY = 20,
+ {sOptionsLabelGfx_RegionMap, sOptionsLabelGfx_Condition, sOptionsLabelGfx_MatchCall, sOptionsLabelGfx_Ribbons, sOptionsLabelGfx_SwitchOff}
},
[POKENAV_MENU_TYPE_CONDITION] =
{
- 0x38,
- 0x14,
- {gUnknown_08620220, gUnknown_08620224, gUnknown_0862023C}
+ .yStart = 56,
+ .deltaY = 20,
+ {sOptionsLabelGfx_Party, sOptionsLabelGfx_Search, sOptionsLabelGfx_Cancel}
},
[POKENAV_MENU_TYPE_CONDITION_SEARCH] =
{
- 0x28,
- 0x10,
- {gUnknown_08620228, gUnknown_0862022C, gUnknown_08620230, gUnknown_08620234, gUnknown_08620238, gUnknown_0862023C}
+ .yStart = 40,
+ .deltaY = 16,
+ {sOptionsLabelGfx_Cool, sOptionsLabelGfx_Beauty, sOptionsLabelGfx_Cute, sOptionsLabelGfx_Smart, sOptionsLabelGfx_Tough, sOptionsLabelGfx_Cancel}
},
};
@@ -287,7 +287,7 @@ static const struct SpriteTemplate sMenuOptionSpriteTemplate =
.callback = SpriteCallbackDummy,
};
-static const struct OamData gUnknown_08620364 =
+static const struct OamData sBlueLightOamData =
{
.y = 0,
.affineMode = ST_OAM_AFFINE_OFF,
@@ -301,18 +301,18 @@ static const struct OamData gUnknown_08620364 =
.paletteNum = 0,
};
-static const struct SpriteTemplate gUnknown_0862036C =
+static const struct SpriteTemplate sMatchCallBlueLightSpriteTemplate =
{
.tileTag = 1,
.paletteTag = 3,
- .oam = &gUnknown_08620364,
+ .oam = &sBlueLightOamData,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
};
-static const struct ScanlineEffectParams gUnknown_08620384 =
+static const struct ScanlineEffectParams sPokenavMainMenuScanlineEffectParams =
{
(void *)REG_ADDR_WIN0H,
((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1,
@@ -320,13 +320,13 @@ static const struct ScanlineEffectParams gUnknown_08620384 =
0
};
-static bool32 sub_81C98D4(void)
+static bool32 PlayerHasTrainerRematches(void)
{
s32 i;
for (i = 0; i < REMATCH_TABLE_ENTRIES; i++)
{
- if (sub_81CB0C8(i) == gMapHeader.regionMapSectionId
+ if (GetMatchTableMapSectionId(i) == gMapHeader.regionMapSectionId
&& IsRematchEntryRegistered(i)
&& gSaveBlock1Ptr->trainerRematches[i])
return TRUE;
@@ -373,43 +373,43 @@ static struct Pokenav2Struct * OpenPokenavMenu(void)
void CreateMenuHandlerLoopedTask(s32 ltIdx)
{
- struct Pokenav2Struct * state = GetSubstructPtr(2);
+ struct Pokenav2Struct * state = GetSubstructPtr(POKENAV_SUBSTRUCT_MENU_ICONS);
state->loopedTaskId = CreateLoopedTask(sMenuHandlerLoopTaskFuncs[ltIdx], 1);
state->isTaskActiveCB = GetCurrentLoopedTaskActive;
}
bool32 IsMenuHandlerLoopedTaskActive(void)
{
- struct Pokenav2Struct * state = GetSubstructPtr(2);
+ struct Pokenav2Struct * state = GetSubstructPtr(POKENAV_SUBSTRUCT_MENU_ICONS);
return state->isTaskActiveCB();
}
void FreeMenuHandlerSubstruct2(void)
{
- struct Pokenav2Struct * unk = GetSubstructPtr(2);
+ struct Pokenav2Struct * unk = GetSubstructPtr(POKENAV_SUBSTRUCT_MENU_ICONS);
- sub_81CA7F4();
+ DestroyMovingDotsBgTask();
RemoveWindow(unk->optionDescWindowId);
- sub_81C9FEC();
- sub_81CA994();
- FreePokenavSubstruct(2);
+ FreeAndDestroyMainMenuSprites();
+ DestroyMenuOptionGlowTask();
+ FreePokenavSubstruct(POKENAV_SUBSTRUCT_MENU_ICONS);
}
static bool32 GetCurrentLoopedTaskActive(void)
{
- struct Pokenav2Struct * unk = GetSubstructPtr(2);
+ struct Pokenav2Struct * unk = GetSubstructPtr(POKENAV_SUBSTRUCT_MENU_ICONS);
return IsLoopedTaskActive(unk->loopedTaskId);
}
static u32 LoopedTask_OpenMenu(s32 state)
{
- struct Pokenav2Struct * unk = GetSubstructPtr(2);
+ struct Pokenav2Struct * unk = GetSubstructPtr(POKENAV_SUBSTRUCT_MENU_ICONS);
switch (state)
{
case 0:
- InitBgTemplates(gUnknown_08620194, ARRAY_COUNT(gUnknown_08620194));
+ InitBgTemplates(sPokenavMainMenuBgTemplates, ARRAY_COUNT(sPokenavMainMenuBgTemplates));
DecompressAndCopyTileDataToVram(1, gPokenavMessageBox_Gfx, 0, 0, 0);
SetBgTilemapBuffer(1, unk->bg1TilemapBuffer);
CopyToBgTilemapBuffer(1, gPokenavMessageBox_Tilemap, 0, 0);
@@ -425,36 +425,36 @@ static u32 LoopedTask_OpenMenu(s32 state)
case 1:
if (FreeTempTileDataBuffersIfPossible())
return LT_PAUSE;
- DecompressAndCopyTileDataToVram(2, gUnknown_0861FD6C, 0, 0, 0);
- DecompressAndCopyTileDataToVram(2, gUnknown_0861FFF4, 0, 0, 1);
- CopyPaletteIntoBufferUnfaded(gUnknown_0861FD4C, 0x20, 0x20);
+ DecompressAndCopyTileDataToVram(2, sPokenavDeviceBgTiles, 0, 0, 0);
+ DecompressAndCopyTileDataToVram(2, sPokenavDeviceBgTilemap, 0, 0, 1);
+ CopyPaletteIntoBufferUnfaded(sPokenavDeviceBgPal, 0x20, 0x20);
return LT_INC_AND_PAUSE;
case 2:
if (FreeTempTileDataBuffersIfPossible())
return LT_PAUSE;
- DecompressAndCopyTileDataToVram(3, gUnknown_0861FC98, 0, 0, 0);
- DecompressAndCopyTileDataToVram(3, gUnknown_0861FCAC, 0, 0, 1);
- CopyPaletteIntoBufferUnfaded(gUnknown_0861FC78, 0x30, 0x20);
+ DecompressAndCopyTileDataToVram(3, sPokenavBgDotsTiles, 0, 0, 0);
+ DecompressAndCopyTileDataToVram(3, sPokenavBgDotsTilemap, 0, 0, 1);
+ CopyPaletteIntoBufferUnfaded(sPokenavBgDotsPal, 0x30, 0x20);
if (GetPokenavMenuType() == POKENAV_MENU_TYPE_CONDITION || GetPokenavMenuType() == POKENAV_MENU_TYPE_CONDITION_SEARCH)
- sub_81CA850();
+ ChangeBgDotsColorToPurple();
return LT_INC_AND_PAUSE;
case 3:
if (FreeTempTileDataBuffersIfPossible())
return LT_PAUSE;
AddOptionDescriptionWindow();
- sub_81CA7D4();
+ CreateMovingBgDotsTask();
return LT_INC_AND_CONTINUE;
case 4:
- sub_81C9FC4();
+ LoadPokenavOptionPalettes();
return LT_INC_AND_CONTINUE;
case 5:
PrintCurrentOptionDescription();
CreateMenuOptionSprites();
- sub_81CA640();
+ CreateMatchCallBlueLightSprite();
sub_81CA0C8();
return LT_INC_AND_PAUSE;
case 6:
- if (sub_81CA7C4())
+ if (IsDma3ManagerBusyWithBgCopy_())
return LT_PAUSE;
return LT_INC_AND_CONTINUE;
case 7:
@@ -487,22 +487,22 @@ static u32 LoopedTask_OpenMenu(s32 state)
switch (GetPokenavMenuType())
{
case POKENAV_MENU_TYPE_CONDITION_SEARCH:
- sub_81C7FA0(7, FALSE, FALSE);
+ ShowLeftHeaderGfx(7, FALSE, FALSE);
// fallthrough
case POKENAV_MENU_TYPE_CONDITION:
- sub_81C7FA0(1, FALSE, FALSE);
+ ShowLeftHeaderGfx(1, FALSE, FALSE);
break;
default:
- sub_81C7FA0(0, FALSE, FALSE);
+ ShowLeftHeaderGfx(0, FALSE, FALSE);
break;
}
- sub_81CA20C();
- sub_81CA92C();
+ SetupCurrentMenuOptionsGfx();
+ SetupPokenavMenuScanlineEffects();
return LT_INC_AND_CONTINUE;
case 9:
if (AreMenuOptionSpritesMoving())
return LT_PAUSE;
- if (sub_81C8010())
+ if (AreLeftHeaderSpritesMoving())
return LT_PAUSE;
break;
}
@@ -514,15 +514,15 @@ static u32 LoopedTask_MoveMenuCursor(s32 state)
switch (state)
{
case 0:
- sub_81CAA3C();
- sub_81CA278();
+ SetMenuOptionGlow();
+ SetMenuOptionGfxParams_CursorMoved();
PrintCurrentOptionDescription();
PlaySE(SE_SELECT);
return LT_INC_AND_PAUSE;
case 1:
if (AreMenuOptionSpritesMoving())
return LT_PAUSE;
- if (sub_81CA7C4())
+ if (IsDma3ManagerBusyWithBgCopy_())
return LT_PAUSE;
break;
}
@@ -534,35 +534,35 @@ static u32 LoopedTask_OpenConditionMenu(s32 state)
switch (state)
{
case 0:
- sub_81CA9C8();
- sub_81CA2DC();
- sub_81C7FC4(0, 0);
+ ResetBldCnt();
+ SetupPokenavMenuOptions();
+ HideMainOrSubMenuLeftHeader(POKENAV_GFX_MAIN_MENU, 0);
PlaySE(SE_SELECT);
return LT_INC_AND_PAUSE;
case 1:
if (AreMenuOptionSpritesMoving())
return LT_PAUSE;
- if (sub_81C8010())
+ if (AreLeftHeaderSpritesMoving())
return LT_PAUSE;
sub_81CA0C8();
LoadLeftHeaderGfxForIndex(1);
return LT_INC_AND_PAUSE;
case 2:
- sub_81CA20C();
- sub_81C7FA0(1, FALSE, FALSE);
- sub_81CA818();
+ SetupCurrentMenuOptionsGfx();
+ ShowLeftHeaderGfx(1, FALSE, FALSE);
+ CreateBgDotPurplePalTask();
PrintCurrentOptionDescription();
return LT_INC_AND_PAUSE;
case 3:
if (AreMenuOptionSpritesMoving())
return LT_PAUSE;
- if (sub_81C8010())
+ if (AreLeftHeaderSpritesMoving())
return LT_PAUSE;
- if (sub_81CA89C())
+ if (IsTaskActive_UpdateBgDotsPalette())
return LT_PAUSE;
- if (sub_81CA7C4())
+ if (IsDma3ManagerBusyWithBgCopy_())
return LT_PAUSE;
- sub_81CA9D8();
+ InitMenuOptionGlow();
break;
}
return LT_FINISH;
@@ -573,34 +573,34 @@ static u32 LoopedTask_ReturnToMainMenu(s32 state)
switch (state)
{
case 0:
- sub_81CA9C8();
- sub_81CA2DC();
- sub_81C7FC4(1, 0);
+ ResetBldCnt();
+ SetupPokenavMenuOptions();
+ HideMainOrSubMenuLeftHeader(POKENAV_GFX_CONDITION_MENU, 0);
return LT_INC_AND_PAUSE;
case 1:
if (AreMenuOptionSpritesMoving())
return LT_PAUSE;
- if (sub_81C8010())
+ if (AreLeftHeaderSpritesMoving())
return LT_PAUSE;
sub_81CA0C8();
LoadLeftHeaderGfxForIndex(0);
return LT_INC_AND_PAUSE;
case 2:
- sub_81CA20C();
- sub_81C7FA0(0, FALSE, FALSE);
- sub_81CA864();
+ SetupCurrentMenuOptionsGfx();
+ ShowLeftHeaderGfx(0, FALSE, FALSE);
+ CreateBgDotLightBluePalTask();
PrintCurrentOptionDescription();
return LT_INC_AND_PAUSE;
case 3:
if (AreMenuOptionSpritesMoving())
return LT_PAUSE;
- if (sub_81C8010())
+ if (AreLeftHeaderSpritesMoving())
return LT_PAUSE;
- if (sub_81CA89C())
+ if (IsTaskActive_UpdateBgDotsPalette())
return LT_PAUSE;
- if (sub_81CA7C4())
+ if (IsDma3ManagerBusyWithBgCopy_())
return LT_PAUSE;
- sub_81CA9D8();
+ InitMenuOptionGlow();
break;
}
return LT_FINISH;
@@ -611,8 +611,8 @@ static u32 LoopedTask_OpenConditionSearchMenu(s32 state)
switch (state)
{
case 0:
- sub_81CA9C8();
- sub_81CA2DC();
+ ResetBldCnt();
+ SetupPokenavMenuOptions();
PlaySE(SE_SELECT);
return LT_INC_AND_PAUSE;
case 1:
@@ -622,18 +622,18 @@ static u32 LoopedTask_OpenConditionSearchMenu(s32 state)
sub_81CA0C8();
return LT_INC_AND_PAUSE;
case 2:
- sub_81CA20C();
- sub_81C7FA0(7, FALSE, FALSE);
+ SetupCurrentMenuOptionsGfx();
+ ShowLeftHeaderGfx(7, FALSE, FALSE);
PrintCurrentOptionDescription();
return LT_INC_AND_PAUSE;
case 3:
if (AreMenuOptionSpritesMoving())
return LT_PAUSE;
- if (sub_81C8010())
+ if (AreLeftHeaderSpritesMoving())
return LT_PAUSE;
- if (sub_81CA89C())
+ if (IsTaskActive_UpdateBgDotsPalette())
return LT_PAUSE;
- sub_81CA9D8();
+ InitMenuOptionGlow();
break;
}
return LT_FINISH;
@@ -644,27 +644,27 @@ static u32 LoopedTask_ReturnToConditionMenu(s32 state)
switch (state)
{
case 0:
- sub_81CA9C8();
- sub_81CA2DC();
- sub_81C7FC4(7, 0);
+ ResetBldCnt();
+ SetupPokenavMenuOptions();
+ HideMainOrSubMenuLeftHeader(POKENAV_GFX_SEARCH_MENU, 0);
return LT_INC_AND_PAUSE;
case 1:
if (AreMenuOptionSpritesMoving())
return LT_PAUSE;
- if (sub_81C8010())
+ if (AreLeftHeaderSpritesMoving())
return LT_PAUSE;
sub_81CA0C8();
return LT_INC_AND_PAUSE;
case 2:
- sub_81CA20C();
+ SetupCurrentMenuOptionsGfx();
PrintCurrentOptionDescription();
return LT_INC_AND_PAUSE;
case 3:
if (AreMenuOptionSpritesMoving())
return LT_PAUSE;
- if (sub_81CA89C())
+ if (IsTaskActive_UpdateBgDotsPalette())
return LT_PAUSE;
- sub_81CA9D8();
+ InitMenuOptionGlow();
break;
}
return LT_FINISH;
@@ -714,19 +714,19 @@ static u32 LoopedTask_OpenPokenavFeature(s32 state)
case 1:
if (WaitForHelpBar())
return LT_PAUSE;
- sub_81C7880();
- sub_81CA9C8();
- sub_81CA2DC();
+ SlideMenuHeaderUp();
+ ResetBldCnt();
+ SetupPokenavMenuOptions();
switch (GetPokenavMenuType())
{
case POKENAV_MENU_TYPE_CONDITION_SEARCH:
- sub_81C7FC4(7, FALSE);
+ HideMainOrSubMenuLeftHeader(POKENAV_GFX_SEARCH_MENU, FALSE);
// fallthrough
case POKENAV_MENU_TYPE_CONDITION:
- sub_81C7FC4(1, FALSE);
+ HideMainOrSubMenuLeftHeader(POKENAV_GFX_CONDITION_MENU, FALSE);
break;
default:
- sub_81C7FC4(0, FALSE);
+ HideMainOrSubMenuLeftHeader(POKENAV_GFX_MAIN_MENU, FALSE);
break;
}
PlaySE(SE_SELECT);
@@ -734,7 +734,7 @@ static u32 LoopedTask_OpenPokenavFeature(s32 state)
case 2:
if (AreMenuOptionSpritesMoving())
return LT_PAUSE;
- if (sub_81C8010())
+ if (AreLeftHeaderSpritesMoving())
return LT_PAUSE;
PokenavFadeScreen(0);
return LT_INC_AND_PAUSE;
@@ -746,16 +746,16 @@ static u32 LoopedTask_OpenPokenavFeature(s32 state)
return LT_FINISH;
}
-static void sub_81C9FC4(void)
+static void LoadPokenavOptionPalettes(void)
{
s32 i;
- for (i = 0; i < NELEMS(gUnknown_086201C4); i++)
- LoadCompressedSpriteSheet(&gUnknown_086201C4[i]);
- Pokenav_AllocAndLoadPalettes(gUnknown_086201D4);
+ for (i = 0; i < NELEMS(sPokenavOptionsSpriteSheets); i++)
+ LoadCompressedSpriteSheet(&sPokenavOptionsSpriteSheets[i]);
+ Pokenav_AllocAndLoadPalettes(sPokenavOptionsSpritePalettes);
}
-static void sub_81C9FEC(void)
+static void FreeAndDestroyMainMenuSprites(void)
{
FreeSpriteTilesByTag(3);
FreeSpriteTilesByTag(1);
@@ -765,14 +765,14 @@ static void sub_81C9FEC(void)
FreeSpritePaletteByTag(7);
FreeSpritePaletteByTag(8);
FreeSpritePaletteByTag(3);
- sub_81CA094();
- sub_81CA698();
+ DestroyMenuOptionSprites();
+ DestroyRematchBlueLightSpriteId();
}
static void CreateMenuOptionSprites(void)
{
s32 i, j;
- struct Pokenav2Struct * unk = GetSubstructPtr(2);
+ struct Pokenav2Struct * unk = GetSubstructPtr(POKENAV_SUBSTRUCT_MENU_ICONS);
for (i = 0; i < MAX_POKENAV_MENUITEMS; i++)
{
@@ -786,10 +786,10 @@ static void CreateMenuOptionSprites(void)
}
}
-static void sub_81CA094(void)
+static void DestroyMenuOptionSprites(void)
{
s32 i, j;
- struct Pokenav2Struct * unk = GetSubstructPtr(2);
+ struct Pokenav2Struct * unk = GetSubstructPtr(POKENAV_SUBSTRUCT_MENU_ICONS);
for (i = 0; i < MAX_POKENAV_MENUITEMS; i++)
{
@@ -804,25 +804,25 @@ static void sub_81CA094(void)
static void sub_81CA0C8(void)
{
s32 menuType = GetPokenavMenuType();
- sub_81CA0EC(gUnknown_08620240[menuType].unk4, gUnknown_08620240[menuType].unk0, gUnknown_08620240[menuType].unk2);
+ DrawOptionLabelGfx(sPokenavMenuOptionLabelGfx[menuType].tiles, sPokenavMenuOptionLabelGfx[menuType].yStart, sPokenavMenuOptionLabelGfx[menuType].deltaY);
}
-static void sub_81CA0EC(const u16 *const *a0, s32 a1, s32 a2)
+static void DrawOptionLabelGfx(const u16 *const *tiles, s32 yPos, s32 deltaY)
{
s32 i, j;
- struct Pokenav2Struct * unk = GetSubstructPtr(2);
+ struct Pokenav2Struct * unk = GetSubstructPtr(POKENAV_SUBSTRUCT_MENU_ICONS);
s32 sp04 = GetSpriteTileStartByTag(3);
for (i = 0; i < MAX_POKENAV_MENUITEMS; i++)
{
- if (*a0 != NULL)
+ if (*tiles != NULL)
{
for (j = 0; j < 4; j++)
{
- unk->iconSprites[i][j]->oam.tileNum = (*a0)[0] + sp04 + 8 * j;
- unk->iconSprites[i][j]->oam.paletteNum = IndexOfSpritePaletteTag((*a0)[1] + 4);
+ unk->iconSprites[i][j]->oam.tileNum = (*tiles)[0] + sp04 + 8 * j;
+ unk->iconSprites[i][j]->oam.paletteNum = IndexOfSpritePaletteTag((*tiles)[1] + 4);
unk->iconSprites[i][j]->invisible = TRUE;
- unk->iconSprites[i][j]->pos1.y = a1;
+ unk->iconSprites[i][j]->pos1.y = yPos;
unk->iconSprites[i][j]->pos1.x = 0x8c;
unk->iconSprites[i][j]->pos2.x = 32 * j;
}
@@ -836,76 +836,78 @@ static void sub_81CA0EC(const u16 *const *a0, s32 a1, s32 a2)
}
unk->iconVisible[i] = FALSE;
}
- a0++;
- a1 += a2;
+ tiles++;
+ yPos += deltaY;
}
}
-static void sub_81CA20C(void)
+static void SetupCurrentMenuOptionsGfx(void)
{
s32 i;
- struct Pokenav2Struct * unk = GetSubstructPtr(2);
+ struct Pokenav2Struct *icons = GetSubstructPtr(POKENAV_SUBSTRUCT_MENU_ICONS);
s32 r8 = GetPokenavCursorPos();
s32 r7 = 0;
s32 r2;
for (i = 0; i < MAX_POKENAV_MENUITEMS; i++)
{
- if (unk->iconVisible[i])
+ if (icons->iconVisible[i])
{
if (r7++ == r8)
{
r2 = 0x82;
- unk->cursorPos = i;
+ icons->cursorPos = i;
}
else
r2 = 0x8c;
- sub_81CA35C(unk->iconSprites[i], 0x100, r2, 0xC);
- sub_81CA448(unk->iconSprites[i], FALSE);
+ SetMenuOptionGfxParamsInactive(icons->iconSprites[i], 0x100, r2, 0xC);
+ SetMenuOptionGfxInvisibility(icons->iconSprites[i], FALSE);
}
else
- sub_81CA448(unk->iconSprites[i], TRUE);
+ {
+ SetMenuOptionGfxInvisibility(icons->iconSprites[i], TRUE);
+ }
}
}
-static void sub_81CA278(void)
+static void SetMenuOptionGfxParams_CursorMoved(void)
{
s32 i;
- struct Pokenav2Struct * unk = GetSubstructPtr(2);
- s32 r3 = GetPokenavCursorPos();
- s32 r5;
+ struct Pokenav2Struct *icons = GetSubstructPtr(POKENAV_SUBSTRUCT_MENU_ICONS);
+ s32 prevPos = GetPokenavCursorPos();
+ s32 newPos;
- for (i = 0, r5 = 0; i < MAX_POKENAV_MENUITEMS; i++)
+ for (i = 0, newPos = 0; i < MAX_POKENAV_MENUITEMS; i++)
{
- if (unk->iconVisible[i])
+ if (icons->iconVisible[i])
{
- if (r5 == r3)
+ if (newPos == prevPos)
{
- r5 = i;
+ newPos = i;
break;
}
- r5++;
+ newPos++;
}
}
- sub_81CA35C(unk->iconSprites[unk->cursorPos], 0x82, 0x8c, 0x4);
- sub_81CA35C(unk->iconSprites[r5], 0x8c, 0x82, 0x4);
- unk->cursorPos = r5;
+ SetMenuOptionGfxParamsInactive(icons->iconSprites[icons->cursorPos], 0x82, 0x8c, 0x4);
+ SetMenuOptionGfxParamsInactive(icons->iconSprites[newPos], 0x8c, 0x82, 0x4);
+ icons->cursorPos = newPos;
}
-static void sub_81CA2DC(void)
+static void SetupPokenavMenuOptions(void)
{
s32 i;
- struct Pokenav2Struct * unk = GetSubstructPtr(2);
+ struct Pokenav2Struct *optionIcons = GetSubstructPtr(POKENAV_SUBSTRUCT_MENU_ICONS);
for (i = 0; i < MAX_POKENAV_MENUITEMS; i++)
{
- if (unk->iconVisible[i])
+ if (optionIcons->iconVisible[i])
{
- if (unk->cursorPos != i)
- sub_81CA35C(unk->iconSprites[i], 0x8C, 0x100, 0x8);
+ if (optionIcons->cursorPos != i)
+ SetMenuOptionGfxParamsInactive(optionIcons->iconSprites[i], 0x8C, 0x100, 0x8);
else
- sub_81CA3B4(unk->iconSprites[i]);
+ SetMenuOptionGfxParamsActive(optionIcons->iconSprites[i]);
}
}
}
@@ -913,40 +915,40 @@ static void sub_81CA2DC(void)
static bool32 AreMenuOptionSpritesMoving(void)
{
s32 i;
- struct Pokenav2Struct * unk = GetSubstructPtr(2);
+ struct Pokenav2Struct *icons = GetSubstructPtr(POKENAV_SUBSTRUCT_MENU_ICONS);
for (i = 0; i < MAX_POKENAV_MENUITEMS; i++)
{
- if (unk->iconSprites[i][0]->callback != SpriteCallbackDummy)
+ if (icons->iconSprites[i][0]->callback != SpriteCallbackDummy)
return TRUE;
}
- if (unk->otherIconsInMotion)
+ if (icons->otherIconsInMotion)
return TRUE;
return FALSE;
}
-static void sub_81CA35C(struct Sprite ** sprites, s32 a1, s32 a2, s32 a3)
+static void SetMenuOptionGfxParamsInactive(struct Sprite ** sprites, s32 x, s32 a2, s32 a3)
{
s32 i;
for (i = 0; i < 4; i++)
{
- (*sprites)->pos1.x = a1;
+ (*sprites)->pos1.x = x;
(*sprites)->data[0] = a3;
- (*sprites)->data[1] = 16 * (a2 - a1) / a3;
- (*sprites)->data[2] = 16 * a1;
+ (*sprites)->data[1] = 16 * (a2 - x) / a3;
+ (*sprites)->data[2] = 16 * x;
(*sprites)->data[7] = a2;
(*sprites)->callback = sub_81CA474;
sprites++;
}
}
-static void sub_81CA3B4(struct Sprite ** sprites)
+static void SetMenuOptionGfxParamsActive(struct Sprite ** sprites)
{
s32 i;
- struct Pokenav2Struct * unk = GetSubstructPtr(2);
+ struct Pokenav2Struct * unk = GetSubstructPtr(POKENAV_SUBSTRUCT_MENU_ICONS);
u8 taskId;
for (i = 0; i < 4; i++)
@@ -968,13 +970,13 @@ static void sub_81CA3B4(struct Sprite ** sprites)
unk->otherIconsInMotion++;
}
-static void sub_81CA448(struct Sprite ** sprites, bool32 a1)
+static void SetMenuOptionGfxInvisibility(struct Sprite ** sprites, bool32 invisible)
{
s32 i;
for (i = 0; i < 4; i++)
{
- (*sprites)->invisible = a1;
+ (*sprites)->invisible = invisible;
sprites++;
}
}
@@ -1078,7 +1080,7 @@ static void sub_81CA580(u8 taskId)
data[4]++;
if (data[4] == 12)
{
- ((struct Pokenav2Struct *)GetSubstructPtr(2))->otherIconsInMotion--;
+ ((struct Pokenav2Struct *)GetSubstructPtr(POKENAV_SUBSTRUCT_MENU_ICONS))->otherIconsInMotion--;
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0x00, 0x10));
DestroyTask(taskId);
}
@@ -1089,24 +1091,24 @@ static void sub_81CA580(u8 taskId)
data[0]--;
}
-static void sub_81CA640(void)
+static void CreateMatchCallBlueLightSprite(void)
{
- struct Pokenav2Struct * ptr = GetSubstructPtr(2);
- u8 spriteId = CreateSprite(&gUnknown_0862036C, 0x10, 0x60, 4);
- ptr->field_028 = &gSprites[spriteId];
- if (sub_81C98D4())
- ptr->field_028->callback = sub_81CA6AC;
+ struct Pokenav2Struct * ptr = GetSubstructPtr(POKENAV_SUBSTRUCT_MENU_ICONS);
+ u8 spriteId = CreateSprite(&sMatchCallBlueLightSpriteTemplate, 0x10, 0x60, 4);
+ ptr->blueLightSpriteId = &gSprites[spriteId];
+ if (PlayerHasTrainerRematches())
+ ptr->blueLightSpriteId->callback = SpriteCB_BlinkingBlueLight;
else
- ptr->field_028->invisible = TRUE;
+ ptr->blueLightSpriteId->invisible = TRUE;
}
-static void sub_81CA698(void)
+static void DestroyRematchBlueLightSpriteId(void)
{
- struct Pokenav2Struct * ptr = GetSubstructPtr(2);
- DestroySprite(ptr->field_028);
+ struct Pokenav2Struct *ptr = GetSubstructPtr(POKENAV_SUBSTRUCT_MENU_ICONS);
+ DestroySprite(ptr->blueLightSpriteId);
}
-static void sub_81CA6AC(struct Sprite * sprite)
+static void SpriteCB_BlinkingBlueLight(struct Sprite * sprite)
{
sprite->data[0]++;
if (sprite->data[0] > 8)
@@ -1118,7 +1120,7 @@ static void sub_81CA6AC(struct Sprite * sprite)
static void AddOptionDescriptionWindow(void)
{
- struct Pokenav2Struct * ptr = GetSubstructPtr(2);
+ struct Pokenav2Struct * ptr = GetSubstructPtr(POKENAV_SUBSTRUCT_MENU_ICONS);
ptr->optionDescWindowId = AddWindow(&sOptionDescWindowTemplate);
PutWindowTilemap(ptr->optionDescWindowId);
@@ -1128,7 +1130,7 @@ static void AddOptionDescriptionWindow(void)
static void PrintCurrentOptionDescription(void)
{
- struct Pokenav2Struct * ptr = GetSubstructPtr(2);
+ struct Pokenav2Struct * ptr = GetSubstructPtr(POKENAV_SUBSTRUCT_MENU_ICONS);
int menuItem = GetCurrentMenuItemId();
const u8 * s = sPageDescriptions[menuItem];
u32 width = GetStringWidth(1, s, -1);
@@ -1140,73 +1142,73 @@ static void PrintCurrentOptionDescription(void)
// Can occur by obtaining a mon with a ribbon and then releasing all ribbon winners
static void PrintNoRibbonWinners(void)
{
- struct Pokenav2Struct * ptr = GetSubstructPtr(2);
+ struct Pokenav2Struct * ptr = GetSubstructPtr(POKENAV_SUBSTRUCT_MENU_ICONS);
const u8 * s = gText_NoRibbonWinners;
u32 width = GetStringWidth(1, s, -1);
FillWindowPixelBuffer(ptr->optionDescWindowId, PIXEL_FILL(6));
AddTextPrinterParameterized3(ptr->optionDescWindowId, 1, (192 - width) / 2, 1, sOptionDescTextColors2, 0, s);
}
-static bool32 sub_81CA7C4(void)
+static bool32 IsDma3ManagerBusyWithBgCopy_(void)
{
return IsDma3ManagerBusyWithBgCopy();
}
-static void sub_81CA7D4(void)
+static void CreateMovingBgDotsTask(void)
{
- struct Pokenav2Struct * ptr = GetSubstructPtr(2);
- ptr->bg3ScrollTaskId = CreateTask(sub_81CA808, 2);
+ struct Pokenav2Struct * ptr = GetSubstructPtr(POKENAV_SUBSTRUCT_MENU_ICONS);
+ ptr->bg3ScrollTaskId = CreateTask(Task_MoveBgDots, 2);
}
-static void sub_81CA7F4(void)
+static void DestroyMovingDotsBgTask(void)
{
- struct Pokenav2Struct * ptr = GetSubstructPtr(2);
+ struct Pokenav2Struct * ptr = GetSubstructPtr(POKENAV_SUBSTRUCT_MENU_ICONS);
DestroyTask(ptr->bg3ScrollTaskId);
}
-static void sub_81CA808(u8 taskId)
+static void Task_MoveBgDots(u8 taskId)
{
ChangeBgX(3, 0x80, 1);
}
-static void sub_81CA818(void)
+static void CreateBgDotPurplePalTask(void)
{
- u8 taskId = CreateTask(sub_81CA8B0, 3);
- SetWordTaskArg(taskId, 1, (uintptr_t)(gUnknown_0861FC78 + 1));
- SetWordTaskArg(taskId, 3, (uintptr_t)(gUnknown_0861FC78 + 7));
+ u8 taskId = CreateTask(Task_UpdateBgDotsPalette, 3);
+ SetWordTaskArg(taskId, 1, (uintptr_t)(sPokenavBgDotsPal + 1));
+ SetWordTaskArg(taskId, 3, (uintptr_t)(sPokenavBgDotsPal + 7));
}
-static void sub_81CA850(void)
+static void ChangeBgDotsColorToPurple(void)
{
- CopyPaletteIntoBufferUnfaded(gUnknown_0861FC78 + 7, 0x31, 4);
+ CopyPaletteIntoBufferUnfaded(sPokenavBgDotsPal + 7, 0x31, 4);
}
-static void sub_81CA864(void)
+static void CreateBgDotLightBluePalTask(void)
{
- u8 taskId = CreateTask(sub_81CA8B0, 3);
- SetWordTaskArg(taskId, 1, (uintptr_t)(gUnknown_0861FC78 + 7));
- SetWordTaskArg(taskId, 3, (uintptr_t)(gUnknown_0861FC78 + 1));
+ u8 taskId = CreateTask(Task_UpdateBgDotsPalette, 3);
+ SetWordTaskArg(taskId, 1, (uintptr_t)(sPokenavBgDotsPal + 7));
+ SetWordTaskArg(taskId, 3, (uintptr_t)(sPokenavBgDotsPal + 1));
}
-static bool32 sub_81CA89C(void)
+static bool32 IsTaskActive_UpdateBgDotsPalette(void)
{
- return FuncIsActiveTask(sub_81CA8B0);
+ return FuncIsActiveTask(Task_UpdateBgDotsPalette);
}
-static void sub_81CA8B0(u8 taskId)
+static void Task_UpdateBgDotsPalette(u8 taskId)
{
u16 sp8[2];
s16 * data = gTasks[taskId].data;
const u16 * pal1 = (const u16 *)GetWordTaskArg(taskId, 1);
const u16 * pal2 = (const u16 *)GetWordTaskArg(taskId, 3);
- sub_81C79BC(pal1, pal2, 2, 12, ++data[0], sp8);
+ PokenavCopyPalette(pal1, pal2, 2, 12, ++data[0], sp8);
LoadPalette(sp8, 0x31, 4);
if (data[0] == 12)
DestroyTask(taskId);
}
-static void sub_81CA914(void)
+static void VBlankCB_PokenavMainMenu(void)
{
TransferPlttBuffer();
LoadOam();
@@ -1214,7 +1216,7 @@ static void sub_81CA914(void)
ScanlineEffect_InitHBlankDmaTransfer();
}
-static void sub_81CA92C(void)
+static void SetupPokenavMenuScanlineEffects(void)
{
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_OBJ | BLDCNT_EFFECT_LIGHTEN);
SetGpuReg(REG_OFFSET_BLDY, 0);
@@ -1223,33 +1225,33 @@ static void sub_81CA92C(void)
SetGpuRegBits(REG_OFFSET_WINOUT, 0x1F);
SetGpuRegBits(REG_OFFSET_WIN0V, 0xA0);
ScanlineEffect_Stop();
- sub_81CAA3C();
- ScanlineEffect_SetParams(gUnknown_08620384);
- SetVBlankCallback_(sub_81CA914);
- CreateTask(sub_81CA9EC, 3);
+ SetMenuOptionGlow();
+ ScanlineEffect_SetParams(sPokenavMainMenuScanlineEffectParams);
+ SetVBlankCallback_(VBlankCB_PokenavMainMenu);
+ CreateTask(Task_CurrentMenuOptionGlow, 3);
}
-static void sub_81CA994(void)
+static void DestroyMenuOptionGlowTask(void)
{
SetGpuReg(REG_OFFSET_BLDCNT, 0);
ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON);
ScanlineEffect_Stop();
- DestroyTask(FindTaskIdByFunc(sub_81CA9EC));
+ DestroyTask(FindTaskIdByFunc(Task_CurrentMenuOptionGlow));
SetPokenavVBlankCallback();
}
-static void sub_81CA9C8(void)
+static void ResetBldCnt(void)
{
SetGpuReg(REG_OFFSET_BLDCNT, 0);
}
-static void sub_81CA9D8(void)
+static void InitMenuOptionGlow(void)
{
- sub_81CAA3C();
+ SetMenuOptionGlow();
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_OBJ | BLDCNT_EFFECT_LIGHTEN);
}
-static void sub_81CA9EC(u8 taskId)
+static void Task_CurrentMenuOptionGlow(u8 taskId)
{
s16 * data = gTasks[taskId].data;
data[0]++;
@@ -1262,18 +1264,18 @@ static void sub_81CA9EC(u8 taskId)
}
}
-static void sub_81CAA3C(void)
+static void SetMenuOptionGlow(void)
{
int menuType = GetPokenavMenuType();
int cursorPos = GetPokenavCursorPos();
- int r4 = gUnknown_08620240[menuType].unk2 * cursorPos + gUnknown_08620240[menuType].unk0 - 8;
+ int r4 = sPokenavMenuOptionLabelGfx[menuType].deltaY * cursorPos + sPokenavMenuOptionLabelGfx[menuType].yStart - 8;
CpuFill16(0, gScanlineEffectRegBuffers[0], 0x140);
CpuFill16(0, gScanlineEffectRegBuffers[1], 0x140);
CpuFill16(RGB(16, 23, 28), &gScanlineEffectRegBuffers[0][r4], 0x20);
CpuFill16(RGB(16, 23, 28), &gScanlineEffectRegBuffers[1][r4], 0x20);
}
-void sub_81CAADC(void)
+void ResetBldCnt_(void)
{
- sub_81CA9C8();
+ ResetBldCnt();
}
diff --git a/src/pokenav_region_map.c b/src/pokenav_region_map.c
index 394b40907..2dd2e4408 100755
--- a/src/pokenav_region_map.c
+++ b/src/pokenav_region_map.c
@@ -170,11 +170,11 @@ static const struct SpriteTemplate sCityZoomTextSpriteTemplate =
u32 PokenavCallback_Init_RegionMap(void)
{
- struct Pokenav5Struct *state = AllocSubstruct(3, sizeof(struct Pokenav5Struct));
+ struct Pokenav5Struct *state = AllocSubstruct(POKENAV_SUBSTRUCT_REGION_MAP_STATE, sizeof(struct Pokenav5Struct));
if (!state)
return FALSE;
- if (!AllocSubstruct(16, sizeof(struct RegionMap)))
+ if (!AllocSubstruct(POKENAV_SUBSTRUCT_REGION_MAP, sizeof(struct RegionMap)))
return FALSE;
state->zoomDisabled = IsEventIslandMapSecId(gMapHeader.regionMapSectionId);
@@ -189,13 +189,13 @@ u32 PokenavCallback_Init_RegionMap(void)
void FreeRegionMapSubstruct1(void)
{
gSaveBlock2Ptr->regionMapZoom = IsRegionMapZoomed();
- FreePokenavSubstruct(16);
- FreePokenavSubstruct(3);
+ FreePokenavSubstruct(POKENAV_SUBSTRUCT_REGION_MAP);
+ FreePokenavSubstruct(POKENAV_SUBSTRUCT_REGION_MAP_STATE);
}
u32 GetRegionMapCallback(void)
{
- struct Pokenav5Struct *state = GetSubstructPtr(3);
+ struct Pokenav5Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_REGION_MAP_STATE);
return state->callback(state);
}
@@ -235,13 +235,13 @@ static u32 GetExitRegionMapMenuId(struct Pokenav5Struct *state)
bool32 GetZoomDisabled(void)
{
- struct Pokenav5Struct *state = GetSubstructPtr(3);
+ struct Pokenav5Struct *state = GetSubstructPtr(POKENAV_SUBSTRUCT_REGION_MAP_STATE);
return state->zoomDisabled;
}
bool32 OpenPokenavRegionMap(void)
{
- struct Pokenav5Struct_2 *state = AllocSubstruct(4, sizeof(struct Pokenav5Struct_2));
+ struct Pokenav5Struct_2 *state = AllocSubstruct(POKENAV_SUBSTRUCT_REGION_MAP_ZOOM, sizeof(struct Pokenav5Struct_2));
if (!state)
return FALSE;
@@ -252,25 +252,25 @@ bool32 OpenPokenavRegionMap(void)
void CreateRegionMapLoopedTask(s32 index)
{
- struct Pokenav5Struct_2 *state = GetSubstructPtr(4);
+ struct Pokenav5Struct_2 *state = GetSubstructPtr(POKENAV_SUBSTRUCT_REGION_MAP_ZOOM);
state->loopTaskId = CreateLoopedTask(sRegionMapLoopTaskFuncs[index], 1);
state->isTaskActiveCB = GetCurrentLoopedTaskActive;
}
bool32 IsRegionMapLoopedTaskActive(void)
{
- struct Pokenav5Struct_2 *state = GetSubstructPtr(4);
+ struct Pokenav5Struct_2 *state = GetSubstructPtr(POKENAV_SUBSTRUCT_REGION_MAP_ZOOM);
return state->isTaskActiveCB();
}
void FreeRegionMapSubstruct2(void)
{
- struct Pokenav5Struct_2 *state = GetSubstructPtr(4);
+ struct Pokenav5Struct_2 *state = GetSubstructPtr(POKENAV_SUBSTRUCT_REGION_MAP_ZOOM);
FreeRegionMapIconResources();
FreeCityZoomViewGfx();
RemoveWindow(state->infoWindowId);
- FreePokenavSubstruct(16);
- FreePokenavSubstruct(4);
+ FreePokenavSubstruct(POKENAV_SUBSTRUCT_REGION_MAP);
+ FreePokenavSubstruct(POKENAV_SUBSTRUCT_REGION_MAP_ZOOM);
SetPokenavVBlankCallback();
SetBgMode(0);
}
@@ -285,7 +285,7 @@ static void VBlankCB_RegionMap(void)
static bool32 GetCurrentLoopedTaskActive(void)
{
- struct Pokenav5Struct_2 *state = GetSubstructPtr(4);
+ struct Pokenav5Struct_2 *state = GetSubstructPtr(POKENAV_SUBSTRUCT_REGION_MAP_ZOOM);
return IsLoopedTaskActive(state->loopTaskId);
}
@@ -301,7 +301,7 @@ static u32 LoopedTask_OpenRegionMap(s32 taskState)
{
int menuGfxId;
struct RegionMap *regionMap;
- struct Pokenav5Struct_2 *state = GetSubstructPtr(4);
+ struct Pokenav5Struct_2 *state = GetSubstructPtr(POKENAV_SUBSTRUCT_REGION_MAP_ZOOM);
switch (taskState)
{
case 0:
@@ -311,7 +311,7 @@ static u32 LoopedTask_OpenRegionMap(s32 taskState)
HideBg(3);
SetBgMode(1);
InitBgTemplates(sRegionMapBgTemplates, ARRAY_COUNT(sRegionMapBgTemplates) - 1);
- regionMap = GetSubstructPtr(16);
+ regionMap = GetSubstructPtr(POKENAV_SUBSTRUCT_REGION_MAP);
InitRegionMapData(regionMap, &sRegionMapBgTemplates[1], ShouldOpenRegionMapZoomed());
LoadCityZoomViewGfx();
return LT_INC_AND_PAUSE;
@@ -361,11 +361,11 @@ static u32 LoopedTask_OpenRegionMap(s32 taskState)
menuGfxId = POKENAV_GFX_MAP_MENU_ZOOMED_IN;
LoadLeftHeaderGfxForIndex(menuGfxId);
- sub_81C7FA0(menuGfxId, 1, 1);
+ ShowLeftHeaderGfx(menuGfxId, 1, 1);
PokenavFadeScreen(1);
return LT_INC_AND_PAUSE;
case 7:
- if (IsPaletteFadeActive() || sub_81C8010())
+ if (IsPaletteFadeActive() || AreLeftHeaderSpritesMoving())
return LT_PAUSE;
return LT_INC_AND_CONTINUE;
default:
@@ -375,7 +375,7 @@ static u32 LoopedTask_OpenRegionMap(s32 taskState)
static u32 LoopedTask_UpdateInfoAfterCursorMove(s32 taskState)
{
- struct Pokenav5Struct_2 *state = GetSubstructPtr(4);
+ struct Pokenav5Struct_2 *state = GetSubstructPtr(POKENAV_SUBSTRUCT_REGION_MAP_ZOOM);
switch (taskState)
{
case 0:
@@ -409,7 +409,7 @@ static u32 LoopedTask_RegionMapZoomOut(s32 taskState)
if (WaitForHelpBar())
return LT_PAUSE;
- sub_81C7E14(POKENAV_GFX_MAP_MENU_ZOOMED_OUT);
+ UpdateRegionMapRightHeaderTiles(POKENAV_GFX_MAP_MENU_ZOOMED_OUT);
break;
}
@@ -418,7 +418,7 @@ static u32 LoopedTask_RegionMapZoomOut(s32 taskState)
static u32 LoopedTask_RegionMapZoomIn(s32 taskState)
{
- struct Pokenav5Struct_2 *state = GetSubstructPtr(4);
+ struct Pokenav5Struct_2 *state = GetSubstructPtr(POKENAV_SUBSTRUCT_REGION_MAP_ZOOM);
switch (taskState)
{
case 0:
@@ -442,7 +442,7 @@ static u32 LoopedTask_RegionMapZoomIn(s32 taskState)
if (WaitForHelpBar())
return LT_PAUSE;
- sub_81C7E14(POKENAV_GFX_MAP_MENU_ZOOMED_IN);
+ UpdateRegionMapRightHeaderTiles(POKENAV_GFX_MAP_MENU_ZOOMED_IN);
break;
}
@@ -461,8 +461,8 @@ static u32 LoopedTask_ExitRegionMap(s32 taskState)
if (IsPaletteFadeActive())
return LT_PAUSE;
- sub_81C7FDC();
- sub_81C78A0();
+ SetLeftHeaderSpritesInvisibility();
+ SlideMenuHeaderDown();
return LT_INC_AND_PAUSE;
case 2:
if (MainMenuLoopedTaskIsBusy())
@@ -490,7 +490,7 @@ static void LoadCityZoomViewGfx(void)
static void FreeCityZoomViewGfx(void)
{
int i;
- struct Pokenav5Struct_2 *state = GetSubstructPtr(4);
+ struct Pokenav5Struct_2 *state = GetSubstructPtr(POKENAV_SUBSTRUCT_REGION_MAP_ZOOM);
FreeSpriteTilesByTag(6);
FreeSpritePaletteByTag(11);
for (i = 0; i < (int)ARRAY_COUNT(state->cityZoomTextSprites); i++)
@@ -527,7 +527,7 @@ static bool32 TryFreeTempTileDataBuffers(void)
static void UpdateMapSecInfoWindow(struct Pokenav5Struct_2 *state)
{
- struct RegionMap *regionMap = GetSubstructPtr(16);
+ struct RegionMap *regionMap = GetSubstructPtr(POKENAV_SUBSTRUCT_REGION_MAP);
switch (regionMap->mapSecType)
{
case MAPSECTYPE_CITY_CANFLY:
@@ -619,7 +619,7 @@ static bool32 IsDecompressCityMapsActive(void)
static u32 LoopedTask_DecompressCityMaps(s32 taskState)
{
- struct Pokenav5Struct_2 *state = GetSubstructPtr(4);
+ struct Pokenav5Struct_2 *state = GetSubstructPtr(POKENAV_SUBSTRUCT_REGION_MAP_ZOOM);
if (taskState < NUM_CITY_MAPS)
{
LZ77UnCompWram(sPokenavCityMaps[taskState].tilemap, state->cityZoomPics[taskState]);
@@ -662,7 +662,7 @@ static void CreateCityZoomTextSprites(void)
int i;
int y;
struct Sprite *sprite;
- struct Pokenav5Struct_2 *state = GetSubstructPtr(4);
+ struct Pokenav5Struct_2 *state = GetSubstructPtr(POKENAV_SUBSTRUCT_REGION_MAP_ZOOM);
// When not zoomed in the text is still created but its pushed off screen
if (!IsRegionMapZoomed())
@@ -722,7 +722,7 @@ static void SpriteCB_CityZoomText(struct Sprite *sprite)
static void UpdateCityZoomTextPosition(void)
{
int i;
- struct Pokenav5Struct_2 *state = GetSubstructPtr(4);
+ struct Pokenav5Struct_2 *state = GetSubstructPtr(POKENAV_SUBSTRUCT_REGION_MAP_ZOOM);
int y = 132 - (GetBgY(1) >> 8);
for (i = 0; i < (int)ARRAY_COUNT(state->cityZoomTextSprites); i++)
state->cityZoomTextSprites[i]->pos1.y = y;
@@ -731,7 +731,7 @@ static void UpdateCityZoomTextPosition(void)
static void SetCityZoomTextInvisibility(bool32 invisible)
{
int i;
- struct Pokenav5Struct_2 *state = GetSubstructPtr(4);
+ struct Pokenav5Struct_2 *state = GetSubstructPtr(POKENAV_SUBSTRUCT_REGION_MAP_ZOOM);
for (i = 0; i < (int)ARRAY_COUNT(state->cityZoomTextSprites); i++)
state->cityZoomTextSprites[i]->invisible = invisible;
}
diff --git a/src/pokenav_ribbons_1.c b/src/pokenav_ribbons_1.c
index fd47b27ad..9c171dd45 100644
--- a/src/pokenav_ribbons_1.c
+++ b/src/pokenav_ribbons_1.c
@@ -8,16 +8,28 @@
#include "international_string_util.h"
#include "constants/songs.h"
+enum
+{
+ RIBBONS_MON_LIST_FUNC_NONE,
+ RIBBONS_MON_LIST_FUNC_MOVE_UP,
+ RIBBONS_MON_LIST_FUNC_MOVE_DOWN,
+ RIBBONS_MON_LIST_FUNC_PAGE_UP,
+ RIBBONS_MON_LIST_FUNC_PAGE_DOWN,
+ RIBBONS_MON_LIST_FUNC_EXIT,
+ RIBBONS_MON_LIST_FUNC_OPEN_RIBBONS_SUMMARY
+};
+
+
struct PokenavSub9
{
- u32 (*unk0)(struct PokenavSub9*);
+ u32 (*callback)(struct PokenavSub9*);
u32 loopedTaskId;
u16 winid;
- s32 unkC;
- s32 unk10;
- u32 unk14;
- u32 unk18;
- struct PokenavSub18 *unk1C;
+ s32 boxId;
+ s32 monId;
+ u32 changeBgs;
+ u32 saveMonList;
+ struct PokenavSub18 *monList;
};
struct PokenavSub10
@@ -25,46 +37,46 @@ struct PokenavSub10
bool32 (*callback)(void);
u32 ltid;
u16 winid;
- bool32 unkC;
+ bool32 fromSummary;
u8 buff[BG_SCREEN_SIZE];
};
-static u32 sub_81CFA68(struct PokenavSub9 *structPtr);
-static u32 sub_81CFA88(struct PokenavSub9 *structPtr);
-static u32 sub_81CFB08(struct PokenavSub9 *structPtr);
+static u32 HandleRibbonsMonListInput_WaitListInit(struct PokenavSub9 *structPtr);
+static u32 HandleRibbonsMonListInput(struct PokenavSub9 *structPtr);
+static u32 RibbonsMonMenu_ReturnToMainMenu(struct PokenavSub9 *structPtr);
static u32 sub_81CFB10(struct PokenavSub9 *structPtr);
-static u32 sub_81CFB8C(s32 state);
-static u32 sub_81CFC2C(s32 state);
-static u32 sub_81CFC40(s32 state);
-static u32 sub_81CFB74(s32 state);
+static u32 BuildPartyMonRibbonList(s32 state);
+static u32 InitBoxMonRibbonList(s32 state);
+static u32 BuildBoxMonRibbonList(s32 state);
+static u32 GetMonRibbonListLoopTaskFunc(s32 state);
static void sub_81CFCEC(struct PokenavSub9 *structPtr, struct PokenavMonList *item);
-static u32 sub_81CFEB8(s32 state);
-static bool32 sub_81CFE84(void);
-static u32 sub_81CFFFC(s32 state);
-static u32 sub_81D0074(s32 state);
-static u32 sub_81D00EC(s32 state);
-static u32 sub_81D0164(s32 state);
-static u32 sub_81D01DC(s32 state);
-static u32 sub_81D021C(s32 state);
+static u32 LoopedTask_OpenRibbonsMonList(s32 state);
+static bool32 GetRibbonsMonCurrentLoopedTaskActive(void);
+static u32 LoopedTask_RibbonsListMoveCursorUp(s32 state);
+static u32 LoopedTask_RibbonsListMoveCursorDown(s32 state);
+static u32 LoopedTask_RibbonsListMovePageUp(s32 state);
+static u32 LoopedTask_RibbonsListMovePageDown(s32 state);
+static u32 LoopedTask_RibbonsListReturnToMainMenu(s32 state);
+static u32 LoopedTask_RibbonsListOpenSummary(s32 state);
static void sub_81D02B0(s32 windowId, s32 val1, s32 val2);
-static void sub_81D024C(struct PokenavSub10 *ptr);
+static void AddRibbonsMonListWindow(struct PokenavSub10 *ptr);
static void sub_81D0288(struct PokenavSub10 *ptr);
-static void sub_81D0304(void);
+static void InitMonRibbonPokenavListMenuTemplate(void);
static void BufferRibbonMonInfoText(struct PokenavMonList *, u8 *);
-static const LoopedTask gUnknown_086235D8[] =
+static const LoopedTask sMonRibbonListLoopTaskFuncs[] =
{
- sub_81CFB8C,
- sub_81CFC2C,
- sub_81CFC40
+ BuildPartyMonRibbonList,
+ InitBoxMonRibbonList,
+ BuildBoxMonRibbonList
};
-static const u16 gUnknown_086235E4[] = INCBIN_U16("graphics/pokenav/ui_ribbons.gbapal");
-static const u32 gUnknown_08623604[] = INCBIN_U32("graphics/pokenav/ui_ribbons.4bpp.lz");
-static const u32 gUnknown_086236CC[] = INCBIN_U32("graphics/pokenav/ui_ribbons.bin.lz");
+static const u16 sMonRibbonListFramePal[] = INCBIN_U16("graphics/pokenav/ui_ribbons.gbapal");
+static const u32 sMonRibbonListFrameTiles[] = INCBIN_U32("graphics/pokenav/ui_ribbons.4bpp.lz");
+static const u32 sMonRibbonListFrameTilemap[] = INCBIN_U32("graphics/pokenav/ui_ribbons.bin.lz");
static const u16 gUnknown_08623790[] = INCBIN_U16("graphics/pokenav/8623790.gbapal");
-static const struct BgTemplate gUnknown_086237B0[] =
+static const struct BgTemplate sMonRibbonListBgTemplates[] =
{
{
.bg = 1,
@@ -85,18 +97,18 @@ static const struct BgTemplate gUnknown_086237B0[] =
}
};
-static const LoopedTask gUnknown_086237B8[] =
+static const LoopedTask sRibbonsMonMenuLoopTaskFuncs[] =
{
- NULL,
- sub_81CFFFC,
- sub_81D0074,
- sub_81D00EC,
- sub_81D0164,
- sub_81D01DC,
- sub_81D021C
+ [RIBBONS_MON_LIST_FUNC_NONE] = NULL,
+ [RIBBONS_MON_LIST_FUNC_MOVE_UP] = LoopedTask_RibbonsListMoveCursorUp,
+ [RIBBONS_MON_LIST_FUNC_MOVE_DOWN] = LoopedTask_RibbonsListMoveCursorDown,
+ [RIBBONS_MON_LIST_FUNC_PAGE_UP] = LoopedTask_RibbonsListMovePageUp,
+ [RIBBONS_MON_LIST_FUNC_PAGE_DOWN] = LoopedTask_RibbonsListMovePageDown,
+ [RIBBONS_MON_LIST_FUNC_EXIT] = LoopedTask_RibbonsListReturnToMainMenu,
+ [RIBBONS_MON_LIST_FUNC_OPEN_RIBBONS_SUMMARY] = LoopedTask_RibbonsListOpenSummary
};
-static const struct WindowTemplate gUnknown_086237D4 =
+static const struct WindowTemplate sRibbonsMonListWindowTemplate =
{
.bg = 1,
.tilemapLeft = 1,
@@ -111,135 +123,136 @@ static const u8 sText_MaleSymbol[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_RED}{WHIT
static const u8 sText_FemaleSymbol[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_GREEN}{WHITE}{BLUE}♀{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}");
static const u8 sText_NoGenderSymbol[] = _("{UNK_SPACER}");
-bool32 PokenavCallback_Init_12(void)
+bool32 PokenavCallback_Init_MonRibbonList(void)
{
- struct PokenavSub9 *structPtr = AllocSubstruct(9, sizeof(struct PokenavSub9));
+ struct PokenavSub9 *structPtr = AllocSubstruct(POKENAV_SUBSTRUCT_RIBBONS_MON_LIST, sizeof(struct PokenavSub9));
if (structPtr == NULL)
return FALSE;
- structPtr->unk1C = AllocSubstruct(18, sizeof(struct PokenavSub18));
- if (structPtr->unk1C == NULL)
+ structPtr->monList = AllocSubstruct(POKENAV_SUBSTRUCT_MON_LIST, sizeof(struct PokenavSub18));
+ if (structPtr->monList == NULL)
return FALSE;
- structPtr->unk0 = sub_81CFA68;
- structPtr->loopedTaskId = CreateLoopedTask(sub_81CFB74, 1);
- structPtr->unk14 = 0;
+ structPtr->callback = HandleRibbonsMonListInput_WaitListInit;
+ structPtr->loopedTaskId = CreateLoopedTask(GetMonRibbonListLoopTaskFunc, 1);
+ structPtr->changeBgs = 0;
return TRUE;
}
-bool32 PokenavCallback_Init_14(void)
+bool32 PokenavCallback_Init_RibbonsMonListFromSummary(void)
{
- struct PokenavSub9 *structPtr = AllocSubstruct(9, sizeof(struct PokenavSub9));
+ struct PokenavSub9 *structPtr = AllocSubstruct(POKENAV_SUBSTRUCT_RIBBONS_MON_LIST, sizeof(struct PokenavSub9));
if (structPtr == NULL)
return FALSE;
- structPtr->unk1C = GetSubstructPtr(18);
- structPtr->unk0 = sub_81CFA88;
- structPtr->unk14 = 1;
+ structPtr->monList = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_LIST);
+ structPtr->callback = HandleRibbonsMonListInput;
+ structPtr->changeBgs = 1;
return TRUE;
}
-u32 sub_81CFA34(void)
+u32 GetRibbonsMonListCallback(void)
{
- struct PokenavSub9 *structPtr = GetSubstructPtr(9);
- return structPtr->unk0(structPtr);
+ struct PokenavSub9 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_LIST);
+ return structPtr->callback(structPtr);
}
-void sub_81CFA48(void)
+void FreeRibbonsMonList1(void)
{
- struct PokenavSub9 *structPtr = GetSubstructPtr(9);
- if (!structPtr->unk18)
- FreePokenavSubstruct(18);
- FreePokenavSubstruct(9);
+ struct PokenavSub9 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_LIST);
+ if (!structPtr->saveMonList)
+ FreePokenavSubstruct(POKENAV_SUBSTRUCT_MON_LIST);
+ FreePokenavSubstruct(POKENAV_SUBSTRUCT_RIBBONS_MON_LIST);
}
-static u32 sub_81CFA68(struct PokenavSub9 *structPtr)
+static u32 HandleRibbonsMonListInput_WaitListInit(struct PokenavSub9 *structPtr)
{
if (!IsLoopedTaskActive(structPtr->loopedTaskId))
- structPtr->unk0 = sub_81CFA88;
+ structPtr->callback = HandleRibbonsMonListInput;
return 0;
}
-static u32 sub_81CFA88(struct PokenavSub9 *structPtr)
+static u32 HandleRibbonsMonListInput(struct PokenavSub9 *structPtr)
{
if (JOY_REPEAT(DPAD_UP))
- return 1;
+ return RIBBONS_MON_LIST_FUNC_MOVE_UP;
if (JOY_REPEAT(DPAD_DOWN))
- return 2;
+ return RIBBONS_MON_LIST_FUNC_MOVE_DOWN;
if (JOY_NEW(DPAD_LEFT))
- return 3;
+ return RIBBONS_MON_LIST_FUNC_PAGE_UP;
if (JOY_NEW(DPAD_RIGHT))
- return 4;
+ return RIBBONS_MON_LIST_FUNC_PAGE_DOWN;
if (JOY_NEW(B_BUTTON))
{
- structPtr->unk18 = 0;
- structPtr->unk0 = sub_81CFB08;
- return 5;
+ structPtr->saveMonList = 0;
+ structPtr->callback = RibbonsMonMenu_ReturnToMainMenu;
+ return RIBBONS_MON_LIST_FUNC_EXIT;
}
if (JOY_NEW(A_BUTTON))
{
- structPtr->unk1C->unk2 = GetSelectedMatchCall();
- structPtr->unk18 = 1;
- structPtr->unk0 = sub_81CFB10;
- return 6;
+ structPtr->monList->currIndex = GetSelectedPokenavListIndex();
+ structPtr->saveMonList = 1;
+ structPtr->callback = sub_81CFB10;
+ return RIBBONS_MON_LIST_FUNC_OPEN_RIBBONS_SUMMARY;
}
- return 0;
+ return RIBBONS_MON_LIST_FUNC_NONE;
}
-static u32 sub_81CFB08(struct PokenavSub9 *structPtr)
+static u32 RibbonsMonMenu_ReturnToMainMenu(struct PokenavSub9 *structPtr)
{
return POKENAV_MAIN_MENU_CURSOR_ON_RIBBONS;
}
static u32 sub_81CFB10(struct PokenavSub9 *structPtr)
{
- return POKENAV_MENU_D;
+ return POKENAV_RIBBONS_SUMMARY_SCREEN;
}
-static u32 sub_81CFB18(void)
+static u32 UpdateMonListBgs(void)
{
- struct PokenavSub9 *structPtr = GetSubstructPtr(9);
- return structPtr->unk14;
+ struct PokenavSub9 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_LIST);
+ return structPtr->changeBgs;
}
-static struct PokenavMonList * sub_81CFB28(void)
+static struct PokenavMonList *GetMonRibbonMonListData(void)
{
- struct PokenavSub9 * ptr = GetSubstructPtr(9);
- return ptr->unk1C->unk4;
+ struct PokenavSub9 * ptr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_LIST);
+ return ptr->monList->monData;
}
-static s32 sub_81CFB38(void)
+static s32 GetRibbonsMonListCount(void)
{
- struct PokenavSub9 * ptr = GetSubstructPtr(9);
- return ptr->unk1C->unk0;
+ struct PokenavSub9 * ptr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_LIST);
+ return ptr->monList->listCount;
}
-static s32 sub_81CFB48(void)
+//unused
+static s32 GetMonRibbonSelectedMonData(void)
{
- struct PokenavSub9 * ptr = GetSubstructPtr(9);
- s32 idx = GetSelectedMatchCall();
- return ptr->unk1C->unk4[idx].data;
+ struct PokenavSub9 * ptr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_LIST);
+ s32 idx = GetSelectedPokenavListIndex();
+ return ptr->monList->monData[idx].data;
}
-static s32 sub_81CFB64(void)
+static s32 GetRibbonListMenuCurrIndex(void)
{
- struct PokenavSub9 * ptr = GetSubstructPtr(9);
- return ptr->unk1C->unk2;
+ struct PokenavSub9 * ptr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_LIST);
+ return ptr->monList->currIndex;
}
-static u32 sub_81CFB74(s32 state)
+static u32 GetMonRibbonListLoopTaskFunc(s32 state)
{
- return gUnknown_086235D8[state](state);
+ return sMonRibbonListLoopTaskFuncs[state](state);
}
-static u32 sub_81CFB8C(s32 state)
+static u32 BuildPartyMonRibbonList(s32 state)
{
s32 i;
struct PokenavMonList item;
- struct PokenavSub9 * ptr = GetSubstructPtr(9);
+ struct PokenavSub9 * ptr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_LIST);
- ptr->unk1C->unk0 = 0;
- ptr->unk1C->unk2 = 0;
+ ptr->monList->listCount = 0;
+ ptr->monList->currIndex = 0;
item.boxId = TOTAL_BOXES_COUNT;
for (i = 0; i < PARTY_SIZE; i++)
{
@@ -261,19 +274,19 @@ static u32 sub_81CFB8C(s32 state)
return LT_INC_AND_CONTINUE;
}
-static u32 sub_81CFC2C(s32 state)
+static u32 InitBoxMonRibbonList(s32 state)
{
- struct PokenavSub9 * ptr = GetSubstructPtr(9);
- ptr->unk10 = 0;
- ptr->unkC = 0;
+ struct PokenavSub9 *ptr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_LIST);
+ ptr->monId = 0;
+ ptr->boxId = 0;
return LT_INC_AND_CONTINUE;
}
-static u32 sub_81CFC40(s32 state)
+static u32 BuildBoxMonRibbonList(s32 state)
{
- struct PokenavSub9 * ptr = GetSubstructPtr(9);
- s32 boxId = ptr->unkC;
- s32 monId = ptr->unk10;
+ struct PokenavSub9 * ptr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_LIST);
+ s32 boxId = ptr->boxId;
+ s32 monId = ptr->monId;
s32 boxCount = 0;
struct PokenavMonList item;
@@ -296,8 +309,8 @@ static u32 sub_81CFC40(s32 state)
monId++;
if (boxCount > TOTAL_BOXES_COUNT)
{
- ptr->unkC = boxId;
- ptr->unk10 = monId;
+ ptr->boxId = boxId;
+ ptr->monId = monId;
return LT_CONTINUE;
}
}
@@ -305,37 +318,38 @@ static u32 sub_81CFC40(s32 state)
boxId++;
}
- ptr->unk14 = 1;
+ ptr->changeBgs = 1;
return LT_FINISH;
}
static void sub_81CFCEC(struct PokenavSub9 *structPtr, struct PokenavMonList *item)
{
u32 left = 0;
- u32 right = structPtr->unk1C->unk0;
+ u32 right = structPtr->monList->listCount;
u32 insertionIdx = left + (right - left) / 2;
while (right != insertionIdx)
{
- if (item->data > structPtr->unk1C->unk4[insertionIdx].data)
+ if (item->data > structPtr->monList->monData[insertionIdx].data)
right = insertionIdx;
else
left = insertionIdx + 1;
insertionIdx = left + (right - left) / 2;
}
- for (right = structPtr->unk1C->unk0; right > insertionIdx; right--)
- structPtr->unk1C->unk4[right] = structPtr->unk1C->unk4[right - 1];
- structPtr->unk1C->unk4[insertionIdx] = *item;
- structPtr->unk1C->unk0++;
+ for (right = structPtr->monList->listCount; right > insertionIdx; right--)
+ structPtr->monList->monData[right] = structPtr->monList->monData[right - 1];
+ structPtr->monList->monData[insertionIdx] = *item;
+ structPtr->monList->listCount++;
}
-static bool32 sub_81CFD58(void)
+//unused
+static bool32 Unused_PlayerHasRibbonsMon(void)
{
s32 i, j;
for (i = 0; i < PARTY_SIZE; i++)
{
- struct Pokemon * mon = &gPlayerParty[i];
+ struct Pokemon *mon = &gPlayerParty[i];
if (!GetMonData(mon, MON_DATA_SANITY_HAS_SPECIES))
continue;
if (GetMonData(mon, MON_DATA_SANITY_IS_EGG))
@@ -358,72 +372,72 @@ static bool32 sub_81CFD58(void)
return FALSE;
}
-bool32 sub_81CFDD0(void)
+bool32 OpenRibbonsMonList(void)
{
- struct PokenavSub10 * ptr = AllocSubstruct(10, sizeof(struct PokenavSub10));
+ struct PokenavSub10 *ptr = AllocSubstruct(POKENAV_SUBSTRUCT_RIBBONS_MON_MENU, sizeof(struct PokenavSub10));
if (ptr == NULL)
return FALSE;
- ptr->ltid = CreateLoopedTask(sub_81CFEB8, 1);
- ptr->callback = sub_81CFE84;
- ptr->unkC = FALSE;
+ ptr->ltid = CreateLoopedTask(LoopedTask_OpenRibbonsMonList, 1);
+ ptr->callback = GetRibbonsMonCurrentLoopedTaskActive;
+ ptr->fromSummary = FALSE;
return TRUE;
}
-bool32 sub_81CFE08(void)
+bool32 OpenRibbonsMonListFromRibbonsSummary(void)
{
- struct PokenavSub10 * ptr = AllocSubstruct(10, sizeof(struct PokenavSub10));
- if (ptr == NULL)
+ struct PokenavSub10 *monMenu = AllocSubstruct(POKENAV_SUBSTRUCT_RIBBONS_MON_MENU, sizeof(struct PokenavSub10));
+ if (monMenu == NULL)
return FALSE;
- ptr->ltid = CreateLoopedTask(sub_81CFEB8, 1);
- ptr->callback = sub_81CFE84;
- ptr->unkC = TRUE;
+ monMenu->ltid = CreateLoopedTask(LoopedTask_OpenRibbonsMonList, 1);
+ monMenu->callback = GetRibbonsMonCurrentLoopedTaskActive;
+ monMenu->fromSummary = TRUE;
return TRUE;
}
-void sub_81CFE40(s32 idx)
+void CreateRibbonsMonListLoopedTask(s32 idx)
{
- struct PokenavSub10 * ptr = GetSubstructPtr(10);
- ptr->ltid = CreateLoopedTask(gUnknown_086237B8[idx], 1);
- ptr->callback = sub_81CFE84;
+ struct PokenavSub10 *monMenu = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_MENU);
+ monMenu->ltid = CreateLoopedTask(sRibbonsMonMenuLoopTaskFuncs[idx], 1);
+ monMenu->callback = GetRibbonsMonCurrentLoopedTaskActive;
}
-bool32 sub_81CFE70(void)
+bool32 IsRibbonsMonListLoopedTaskActive(void)
{
- struct PokenavSub10 * ptr = GetSubstructPtr(10);
- return ptr->callback();
+ struct PokenavSub10 *monMenu = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_MENU);
+ return monMenu->callback();
}
-bool32 sub_81CFE84(void)
+bool32 GetRibbonsMonCurrentLoopedTaskActive(void)
{
- struct PokenavSub10 * ptr = GetSubstructPtr(10);
+ struct PokenavSub10 * ptr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_MENU);
return IsLoopedTaskActive(ptr->ltid);
}
-void sub_81CFE98(void)
+void FreeRibbonsMonList2(void)
{
- struct PokenavSub10 * ptr = GetSubstructPtr(10);
+ struct PokenavSub10 * ptr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_MENU);
sub_81C8234();
RemoveWindow(ptr->winid);
- FreePokenavSubstruct(10);
+ FreePokenavSubstruct(POKENAV_SUBSTRUCT_RIBBONS_MON_MENU);
}
-static u32 sub_81CFEB8(s32 state)
+static u32 LoopedTask_OpenRibbonsMonList(s32 state)
{
- struct PokenavSub10 * unk = GetSubstructPtr(10);
+ struct PokenavSub10 *monMenu = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_MENU);
switch (state)
{
case 0:
- InitBgTemplates(gUnknown_086237B0, NELEMS(gUnknown_086237B0));
- DecompressAndCopyTileDataToVram(1, gUnknown_08623604, 0, 0, 0);
- SetBgTilemapBuffer(1, unk->buff);
- CopyToBgTilemapBuffer(1, gUnknown_086236CC, 0, 0);
- CopyPaletteIntoBufferUnfaded(gUnknown_086235E4, 0x10, 0x20);
+ InitBgTemplates(sMonRibbonListBgTemplates, NELEMS(sMonRibbonListBgTemplates));
+ DecompressAndCopyTileDataToVram(1, sMonRibbonListFrameTiles, 0, 0, 0);
+ SetBgTilemapBuffer(1, monMenu->buff);
+ CopyToBgTilemapBuffer(1, sMonRibbonListFrameTilemap, 0, 0);
+ CopyPaletteIntoBufferUnfaded(sMonRibbonListFramePal, 0x10, 0x20);
CopyBgTilemapBufferToVram(1);
return LT_INC_AND_PAUSE;
case 1:
if (FreeTempTileDataBuffersIfPossible())
return LT_PAUSE;
- if (!sub_81CFB18())
+ if (!UpdateMonListBgs())
return LT_PAUSE;
ChangeBgX(1, 0, 0);
ChangeBgY(1, 0, 0);
@@ -433,12 +447,12 @@ static u32 sub_81CFEB8(s32 state)
if (FreeTempTileDataBuffersIfPossible())
return LT_PAUSE;
CopyPaletteIntoBufferUnfaded(gUnknown_08623790, 0x20, 0x20);
- sub_81D0304();
+ InitMonRibbonPokenavListMenuTemplate();
return LT_INC_AND_PAUSE;
case 3:
if (sub_81C8224())
return LT_PAUSE;
- sub_81D024C(unk);
+ AddRibbonsMonListWindow(monMenu);
return LT_INC_AND_PAUSE;
case 4:
if (FreeTempTileDataBuffersIfPossible())
@@ -447,25 +461,25 @@ static u32 sub_81CFEB8(s32 state)
HideBg(3);
PrintHelpBarText(HELPBAR_RIBBONS_MON_LIST);
PokenavFadeScreen(1);
- if (!unk->unkC)
+ if (!monMenu->fromSummary)
{
- LoadLeftHeaderGfxForIndex(2);
- sub_81C7FA0(2, 1, 0);
+ LoadLeftHeaderGfxForIndex(POKENAV_GFX_RIBBONS_MENU);
+ ShowLeftHeaderGfx(POKENAV_GFX_RIBBONS_MENU, 1, 0);
}
return LT_INC_AND_PAUSE;
case 5:
if (IsPaletteFadeActive())
return LT_PAUSE;
- if (sub_81C8010())
+ if (AreLeftHeaderSpritesMoving())
return LT_PAUSE;
break;
}
return LT_FINISH;
}
-static u32 sub_81CFFFC(s32 state)
+static u32 LoopedTask_RibbonsListMoveCursorUp(s32 state)
{
- struct PokenavSub10 * unk = GetSubstructPtr(10);
+ struct PokenavSub10 *monMenu = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_MENU);
switch (state)
{
case 0:
@@ -482,11 +496,11 @@ static u32 sub_81CFFFC(s32 state)
}
return LT_INC_AND_PAUSE;
case 1:
- if (sub_81C8630())
+ if (IsMonListLoopedTaskActive())
return LT_PAUSE;
// fallthrough
case 2:
- sub_81D0288(unk);
+ sub_81D0288(monMenu);
return LT_INC_AND_PAUSE;
case 3:
if (IsDma3ManagerBusyWithBgCopy())
@@ -496,9 +510,9 @@ static u32 sub_81CFFFC(s32 state)
return LT_FINISH;
}
-static u32 sub_81D0074(s32 state)
+static u32 LoopedTask_RibbonsListMoveCursorDown(s32 state)
{
- struct PokenavSub10 * unk = GetSubstructPtr(10);
+ struct PokenavSub10 *monMenu = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_MENU);
switch (state)
{
case 0:
@@ -515,11 +529,11 @@ static u32 sub_81D0074(s32 state)
}
return LT_INC_AND_PAUSE;
case 1:
- if (sub_81C8630())
+ if (IsMonListLoopedTaskActive())
return LT_PAUSE;
// fallthrough
case 2:
- sub_81D0288(unk);
+ sub_81D0288(monMenu);
return LT_INC_AND_PAUSE;
case 3:
if (IsDma3ManagerBusyWithBgCopy())
@@ -529,9 +543,9 @@ static u32 sub_81D0074(s32 state)
return LT_FINISH;
}
-static u32 sub_81D00EC(s32 state)
+static u32 LoopedTask_RibbonsListMovePageUp(s32 state)
{
- struct PokenavSub10 * unk = GetSubstructPtr(10);
+ struct PokenavSub10 *monMenu = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_MENU);
switch (state)
{
case 0:
@@ -548,11 +562,11 @@ static u32 sub_81D00EC(s32 state)
}
return LT_INC_AND_PAUSE;
case 1:
- if (sub_81C8630())
+ if (IsMonListLoopedTaskActive())
return LT_PAUSE;
// fallthrough
case 2:
- sub_81D0288(unk);
+ sub_81D0288(monMenu);
return LT_INC_AND_PAUSE;
case 3:
if (IsDma3ManagerBusyWithBgCopy())
@@ -562,9 +576,9 @@ static u32 sub_81D00EC(s32 state)
return LT_FINISH;
}
-static u32 sub_81D0164(s32 state)
+static u32 LoopedTask_RibbonsListMovePageDown(s32 state)
{
- struct PokenavSub10 * unk = GetSubstructPtr(10);
+ struct PokenavSub10 *monMenu = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_MON_MENU);
switch (state)
{
case 0:
@@ -581,11 +595,11 @@ static u32 sub_81D0164(s32 state)
}
return LT_INC_AND_PAUSE;
case 1:
- if (sub_81C8630())
+ if (IsMonListLoopedTaskActive())
return LT_PAUSE;
// fallthrough
case 2:
- sub_81D0288(unk);
+ sub_81D0288(monMenu);
return LT_INC_AND_PAUSE;
case 3:
if (IsDma3ManagerBusyWithBgCopy())
@@ -595,27 +609,27 @@ static u32 sub_81D0164(s32 state)
return LT_FINISH;
}
-static u32 sub_81D01DC(s32 state)
+static u32 LoopedTask_RibbonsListReturnToMainMenu(s32 state)
{
switch (state)
{
case 0:
PlaySE(SE_SELECT);
PokenavFadeScreen(0);
- sub_81C78A0();
+ SlideMenuHeaderDown();
return LT_INC_AND_PAUSE;
case 1:
if (IsPaletteFadeActive())
return LT_PAUSE;
if (MainMenuLoopedTaskIsBusy())
return LT_PAUSE;
- sub_81C7FDC();
+ SetLeftHeaderSpritesInvisibility();
break;
}
return LT_FINISH;
}
-static u32 sub_81D021C(s32 state)
+static u32 LoopedTask_RibbonsListOpenSummary(s32 state)
{
switch (state)
{
@@ -631,23 +645,23 @@ static u32 sub_81D021C(s32 state)
return LT_FINISH;
}
-static void sub_81D024C(struct PokenavSub10 * ptr)
+static void AddRibbonsMonListWindow(struct PokenavSub10 *monMenu)
{
s32 r2;
- ptr->winid = AddWindow(&gUnknown_086237D4);
- PutWindowTilemap(ptr->winid);
- r2 = sub_81CFB38();
- sub_81D02B0(ptr->winid, 0, r2);
- CopyWindowToVram(ptr->winid, 1);
- sub_81D0288(ptr);
+ monMenu->winid = AddWindow(&sRibbonsMonListWindowTemplate);
+ PutWindowTilemap(monMenu->winid);
+ r2 = GetRibbonsMonListCount();
+ sub_81D02B0(monMenu->winid, 0, r2);
+ CopyWindowToVram(monMenu->winid, 1);
+ sub_81D0288(monMenu);
}
-static void sub_81D0288(struct PokenavSub10 * ptr)
+static void sub_81D0288(struct PokenavSub10 *monMenu)
{
- s32 r4 = GetSelectedMatchCall();
- s32 r2 = sub_81CFB38();
- sub_81D02B0(ptr->winid, r4 + 1, r2);
- CopyWindowToVram(ptr->winid, 2);
+ s32 r4 = GetSelectedPokenavListIndex();
+ s32 r2 = GetRibbonsMonListCount();
+ sub_81D02B0(monMenu->winid, r4 + 1, r2);
+ CopyWindowToVram(monMenu->winid, 2);
}
static void sub_81D02B0(s32 windowId, s32 val1, s32 val2)
@@ -663,22 +677,22 @@ static void sub_81D02B0(s32 windowId, s32 val1, s32 val2)
AddTextPrinterParameterized(windowId, 1, strbuf, x, 1, 0xFF, NULL);
}
-static void sub_81D0304(void)
+static void InitMonRibbonPokenavListMenuTemplate(void)
{
struct PokenavListTemplate template;
- template.list.monList = sub_81CFB28();
- template.unk4 = sub_81CFB38();
+ template.list.monList = GetMonRibbonMonListData();
+ template.count = GetRibbonsMonListCount();
template.unk8 = 4;
- template.unk6 = sub_81CFB64();
- template.unk9 = 13;
- template.unkA = 17;
- template.unkB = 1;
- template.unkC = 8;
- template.unkD = 2;
- template.unkE = 1;
- template.listFunc.unk10_1 = BufferRibbonMonInfoText;
+ template.unk6 = GetRibbonListMenuCurrIndex();
+ template.item_X = 13;
+ template.windowWidth = 17;
+ template.listTop = 1;
+ template.maxShowed = 8;
+ template.fillValue = 2;
+ template.fontId = 1;
+ template.listFunc.printMonFunc = BufferRibbonMonInfoText;
template.unk14 = NULL;
- sub_81C81D4(&gUnknown_086237B0[1], &template, 0);
+ sub_81C81D4(&sMonRibbonListBgTemplates[1], &template, 0);
}
// Buffers the "Nickname gender/level" text for the ribbon mon list
diff --git a/src/pokenav_ribbons_2.c b/src/pokenav_ribbons_2.c
index 6eabc9b33..203aa19e5 100644
--- a/src/pokenav_ribbons_2.c
+++ b/src/pokenav_ribbons_2.c
@@ -13,28 +13,38 @@
#include "window.h"
#include "constants/songs.h"
+enum
+{
+ RIBBONS_SUMMARY_FUNC_NONE,
+ RIBBONS_SUMMARY_FUNC_MOVED_CURSOR,
+ RIBBONS_SUMMARY_FUNC_SELECT_RIBBON,
+ RIBBONS_SUMMARY_FUNC_EXPANDED_CURSOR_MOVE,
+ RIBBONS_SUMMARY_FUNC_EXPANDED_CANCEL,
+ RIBBONS_SUMMARY_FUNC_EXIT,
+};
+
struct PokenavSub13
{
u8 filler0[0x8];
- struct PokenavSub18 *field_8;
+ struct PokenavSub18 *monList;
u16 field_C;
u16 field_E;
u16 field_10;
u16 field_12;
u32 field_14[25];
u32 field_78[8];
- u32 (*field_98)(struct PokenavSub13 *structPtr);
+ u32 (*callback)(struct PokenavSub13 *structPtr);
};
struct PokenavSub14
{
- u32 (*field_0)(void);
+ u32 (*callback)(void);
u32 loopedTaskId;
- u16 field_8;
- u16 field_A;
- u16 field_C;
+ u16 nameWindowId;
+ u16 ribbonCountWindowId;
+ u16 listIdxWindowId;
u16 field_E;
- u16 field_10;
+ u16 monSpriteId;
struct Sprite *field_14;
u32 filler;
u8 tilemapBuffers[2][BG_SCREEN_SIZE];
@@ -43,48 +53,48 @@ struct PokenavSub14
static u32 gUnknown_030012C0;
static u32 gUnknown_030012C4;
-void sub_81D0E84(struct PokenavSub14 *structPtr);
-void sub_81D0FF0(struct PokenavSub14 *structPtr);
-void sub_81D10D0(struct PokenavSub14 *structPtr);
+void PrintCurrentMonRibbonCount(struct PokenavSub14 *structPtr);
+void PrintRibbbonsSummaryMonInfo(struct PokenavSub14 *structPtr);
+void PrintRibbonsMonListIndex(struct PokenavSub14 *structPtr);
void sub_81D1500(struct PokenavSub14 *structPtr);
void sub_81D0EFC(struct PokenavSub14 *structPtr);
-void sub_81D1148(struct PokenavSub14 *structPtr);
-void sub_81D10A4(struct PokenavSub14 *structPtr);
-void sub_81D1178(struct PokenavSub14 *structPtr);
+void ResetSpritesAndDrawRibbonsMonFrontPic(struct PokenavSub14 *structPtr);
+void AddRibbonListIndexWindow(struct PokenavSub14 *structPtr);
+void DestroyRibbonsMonFrontPic(struct PokenavSub14 *structPtr);
void sub_81D11D8(struct PokenavSub14 *structPtr);
void sub_81D11FC(struct PokenavSub14 *structPtr);
-void sub_81D0E60(struct PokenavSub14 *structPtr);
+void AddRibbonCountWindow(struct PokenavSub14 *structPtr);
void sub_81D1448(struct PokenavSub14 *structPtr);
void sub_81D13FC(struct PokenavSub14 *structPtr);
-void sub_81D0FCC(struct PokenavSub14 *structPtr);
+void AddRibbonSummaryMonNameWindow(struct PokenavSub14 *structPtr);
void sub_81D12D8(struct PokenavSub14 *structPtr);
bool32 sub_81D1524(struct PokenavSub14 *structPtr);
bool32 sub_81D1234(struct PokenavSub14 *structPtr);
void sub_81D0814(struct PokenavSub13 *structPtr);
-u32 sub_81D0548(struct PokenavSub13 *structPtr);
-u32 sub_81D04C4(struct PokenavSub13 *structPtr);
-u32 sub_81D05D4(struct PokenavSub13 *structPtr);
+u32 HandleExpandedRibbonInput(struct PokenavSub13 *structPtr);
+u32 RibbonsSummaryHandleInput(struct PokenavSub13 *structPtr);
+u32 ReturnToRibbonsListFromSummary(struct PokenavSub13 *structPtr);
bool32 sub_81D05DC(struct PokenavSub13 *structPtr);
bool32 sub_81D0688(struct PokenavSub13 *structPtr);
bool32 sub_81D0664(struct PokenavSub13 *structPtr);
bool32 sub_81D061C(struct PokenavSub13 *structPtr);
bool32 sub_81D0688(struct PokenavSub13 *structPtr);
-bool32 sub_81D0A58(void);
-u32 sub_81D06C4(void);
-u32 sub_81D06D4(void);
-u16 sub_81D1184(s32 unused0, s32 unused1);
+bool32 GetCurrentLoopedTaskActive(void);
+u32 GetRibbonsSummaryCurrentIndex(void);
+u32 GetRibbonsSummaryMonListCount(void);
+u16 DrawRibbonsMonFrontPic(s32 unused0, s32 unused1);
void sub_81D1258(struct Sprite *sprite, s32 arg1, s32 arg2, s32 arg3);
void sub_81D1284(struct Sprite *sprite);
void sub_81D1350(void);
void sub_81D13BC(u16 *dst, u32 id);
void sub_81D1370(u32 arg0, u32 id);
void sub_81D1538(struct Sprite *sprite);
-u32 sub_81D0A6C(s32 state);
-u32 sub_81D0C84(s32 state);
-u32 sub_81D0D2C(s32 state);
-u32 sub_81D0D8C(s32 state);
-u32 sub_81D0E00(s32 state);
-u32 sub_81D0C54(s32 state);
+u32 LoopedTask_OpenRibbonsSummaryMenu(s32 state);
+u32 LoopedTask_UpdateRibbonsSummaryInfo(s32 state);
+u32 LoopedTask_ExpandSelectedRibbon(s32 state);
+u32 LoopedTask_MoveRibbonsCursorExpanded(s32 state);
+u32 LoopedTask_ShrinkExpandedRibbon(s32 state);
+u32 LoopedTask_ExitRibbonsSummaryMenu(s32 state);
struct
{
@@ -147,95 +157,95 @@ static const struct BgTemplate gUnknown_08624B98[] =
}
};
-static const LoopedTask gUnknown_08624BA0[] =
+static const LoopedTask sRibbonsSummaryMenuLoopTaskFuncs[] =
{
- NULL,
- sub_81D0C84,
- sub_81D0D2C,
- sub_81D0D8C,
- sub_81D0E00,
- sub_81D0C54
+ [RIBBONS_SUMMARY_FUNC_NONE] = NULL,
+ [RIBBONS_SUMMARY_FUNC_MOVED_CURSOR] = LoopedTask_UpdateRibbonsSummaryInfo,
+ [RIBBONS_SUMMARY_FUNC_SELECT_RIBBON] = LoopedTask_ExpandSelectedRibbon,
+ [RIBBONS_SUMMARY_FUNC_EXPANDED_CURSOR_MOVE] = LoopedTask_MoveRibbonsCursorExpanded,
+ [RIBBONS_SUMMARY_FUNC_EXPANDED_CANCEL] = LoopedTask_ShrinkExpandedRibbon,
+ [RIBBONS_SUMMARY_FUNC_EXIT] = LoopedTask_ExitRibbonsSummaryMenu
};
// code
-bool32 PokenavCallback_Init_13(void)
+bool32 PokenavCallback_Init_RibbonsSummaryMenu(void)
{
- struct PokenavSub13 *structPtr = AllocSubstruct(13, sizeof(struct PokenavSub13));
+ struct PokenavSub13 *structPtr = AllocSubstruct(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_LIST, sizeof(struct PokenavSub13));
if (structPtr == NULL)
return FALSE;
- structPtr->field_8 = GetSubstructPtr(18);
- if (structPtr->field_8 == NULL)
+ structPtr->monList = GetSubstructPtr(POKENAV_SUBSTRUCT_MON_LIST);
+ if (structPtr->monList == NULL)
return FALSE;
sub_81D0814(structPtr);
- structPtr->field_98 = sub_81D04C4;
+ structPtr->callback = RibbonsSummaryHandleInput;
gKeyRepeatContinueDelay = 3;
gKeyRepeatStartDelay = 10;
return TRUE;
}
-u32 sub_81D04A0(void)
+u32 GetRibbonsSummaryMenuCallback(void)
{
- struct PokenavSub13 *structPtr = GetSubstructPtr(13);
- return structPtr->field_98(structPtr);
+ struct PokenavSub13 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_LIST);
+ return structPtr->callback(structPtr);
}
-void sub_81D04B8(void)
+void FreeRibbonsSummaryScreen1(void)
{
- FreePokenavSubstruct(13);
+ FreePokenavSubstruct(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_LIST);
}
-u32 sub_81D04C4(struct PokenavSub13 *structPtr)
+u32 RibbonsSummaryHandleInput(struct PokenavSub13 *structPtr)
{
- if (JOY_REPEAT(DPAD_UP) && structPtr->field_8->unk2 != 0)
+ if (JOY_REPEAT(DPAD_UP) && structPtr->monList->currIndex != 0)
{
- structPtr->field_8->unk2--;
+ structPtr->monList->currIndex--;
structPtr->field_C = 0;
sub_81D0814(structPtr);
- return 1;
+ return RIBBONS_SUMMARY_FUNC_MOVED_CURSOR;
}
- if (JOY_REPEAT(DPAD_DOWN) && structPtr->field_8->unk2 < structPtr->field_8->unk0 - 1)
+ if (JOY_REPEAT(DPAD_DOWN) && structPtr->monList->currIndex < structPtr->monList->listCount - 1)
{
- structPtr->field_8->unk2++;
+ structPtr->monList->currIndex++;
structPtr->field_C = 0;
sub_81D0814(structPtr);
- return 1;
+ return RIBBONS_SUMMARY_FUNC_MOVED_CURSOR;
}
if (JOY_NEW(A_BUTTON))
{
- structPtr->field_98 = sub_81D0548;
- return 2;
+ structPtr->callback = HandleExpandedRibbonInput;
+ return RIBBONS_SUMMARY_FUNC_SELECT_RIBBON;
}
if (JOY_NEW(B_BUTTON))
{
- structPtr->field_98 = sub_81D05D4;
- return 5;
+ structPtr->callback = ReturnToRibbonsListFromSummary;
+ return RIBBONS_SUMMARY_FUNC_EXIT;
}
- return 0;
+ return RIBBONS_SUMMARY_FUNC_NONE;
}
-u32 sub_81D0548(struct PokenavSub13 *structPtr)
+u32 HandleExpandedRibbonInput(struct PokenavSub13 *structPtr)
{
if (JOY_REPEAT(DPAD_UP) && sub_81D05DC(structPtr))
- return 3;
+ return RIBBONS_SUMMARY_FUNC_EXPANDED_CURSOR_MOVE;
if (JOY_REPEAT(DPAD_DOWN) && sub_81D061C(structPtr))
- return 3;
+ return RIBBONS_SUMMARY_FUNC_EXPANDED_CURSOR_MOVE;
if (JOY_REPEAT(DPAD_LEFT) && sub_81D0664(structPtr))
- return 3;
+ return RIBBONS_SUMMARY_FUNC_EXPANDED_CURSOR_MOVE;
if (JOY_REPEAT(DPAD_RIGHT) && sub_81D0688(structPtr))
- return 3;
+ return RIBBONS_SUMMARY_FUNC_EXPANDED_CURSOR_MOVE;
if (JOY_NEW(B_BUTTON))
{
- structPtr->field_98 = sub_81D04C4;
- return 4;
+ structPtr->callback = RibbonsSummaryHandleInput;
+ return RIBBONS_SUMMARY_FUNC_EXPANDED_CANCEL;
}
- return 0;
+ return RIBBONS_SUMMARY_FUNC_NONE;
}
-u32 sub_81D05D4(struct PokenavSub13 *structPtr)
+u32 ReturnToRibbonsListFromSummary(struct PokenavSub13 *structPtr)
{
- return POKENAV_MENU_E;
+ return POKENAV_RIBBONS_RETURN_TO_MON_LIST;
}
bool32 sub_81D05DC(struct PokenavSub13 *structPtr)
@@ -320,23 +330,23 @@ bool32 sub_81D0688(struct PokenavSub13 *structPtr)
return FALSE;
}
-u32 sub_81D06C4(void)
+u32 GetRibbonsSummaryCurrentIndex(void)
{
- struct PokenavSub13 *structPtr = GetSubstructPtr(13);
- return structPtr->field_8->unk2;
+ struct PokenavSub13 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_LIST);
+ return structPtr->monList->currIndex;
}
-u32 sub_81D06D4(void)
+u32 GetRibbonsSummaryMonListCount(void)
{
- struct PokenavSub13 *structPtr = GetSubstructPtr(13);
- return structPtr->field_8->unk0;
+ struct PokenavSub13 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_LIST);
+ return structPtr->monList->listCount;
}
static void GetCurrMonInfo1(u8 *nick, u8 *level, u8 *gender)
{
- struct PokenavSub13 *structPtr = GetSubstructPtr(13);
- struct PokenavSub18 *mons = structPtr->field_8;
- struct PokenavMonList *monInfo = &mons->unk4[mons->unk2];
+ struct PokenavSub13 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_LIST);
+ struct PokenavSub18 *mons = structPtr->monList;
+ struct PokenavMonList *monInfo = &mons->monData[mons->currIndex];
if (monInfo->boxId == TOTAL_BOXES_COUNT)
{
@@ -357,9 +367,9 @@ static void GetCurrMonInfo1(u8 *nick, u8 *level, u8 *gender)
static void GetCurrMonInfo2(u16 *species, u32 *personality, u32 *otId)
{
- struct PokenavSub13 *structPtr = GetSubstructPtr(13);
- struct PokenavSub18 *mons = structPtr->field_8;
- struct PokenavMonList *monInfo = &mons->unk4[mons->unk2];
+ struct PokenavSub13 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_LIST);
+ struct PokenavSub18 *mons = structPtr->monList;
+ struct PokenavMonList *monInfo = &mons->monData[mons->currIndex];
if (monInfo->boxId == TOTAL_BOXES_COUNT)
{
@@ -379,9 +389,9 @@ static void GetCurrMonInfo2(u16 *species, u32 *personality, u32 *otId)
static u32 GetCurrMonRibbonCount(void)
{
- struct PokenavSub13 *structPtr = GetSubstructPtr(13);
- struct PokenavSub18 *mons = structPtr->field_8;
- struct PokenavMonList *monInfo = &mons->unk4[mons->unk2];
+ struct PokenavSub13 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_LIST);
+ struct PokenavSub18 *mons = structPtr->monList;
+ struct PokenavMonList *monInfo = &mons->monData[mons->currIndex];
if (monInfo->boxId == TOTAL_BOXES_COUNT)
return GetMonData(&gPlayerParty[monInfo->monId], MON_DATA_RIBBON_COUNT);
@@ -393,8 +403,8 @@ void sub_81D0814(struct PokenavSub13 *structPtr)
{
u32 ribbons;
s32 i, j;
- struct PokenavSub18 *mons = structPtr->field_8;
- struct PokenavMonList *monInfo = &mons->unk4[mons->unk2];
+ struct PokenavSub18 *mons = structPtr->monList;
+ struct PokenavMonList *monInfo = &mons->monData[mons->currIndex];
if (monInfo->boxId == TOTAL_BOXES_COUNT)
ribbons = GetMonData(&gPlayerParty[monInfo->monId], MON_DATA_RIBBONS);
@@ -433,27 +443,27 @@ void sub_81D0814(struct PokenavSub13 *structPtr)
u32 *sub_81D0914(u32 *arg0)
{
- struct PokenavSub13 *structPtr = GetSubstructPtr(13);
+ struct PokenavSub13 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_LIST);
*arg0 = structPtr->field_10;
return structPtr->field_14;
}
u32 *sub_81D092C(u32 *arg0)
{
- struct PokenavSub13 *structPtr = GetSubstructPtr(13);
+ struct PokenavSub13 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_LIST);
*arg0 = structPtr->field_12;
return structPtr->field_78;
}
u16 sub_81D0944(void)
{
- struct PokenavSub13 *structPtr = GetSubstructPtr(13);
+ struct PokenavSub13 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_LIST);
return structPtr->field_C;
}
u32 sub_81D0954(void)
{
- struct PokenavSub13 *structPtr = GetSubstructPtr(13);
+ struct PokenavSub13 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_LIST);
int var = structPtr->field_C;
if (var <= 24)
return structPtr->field_14[var];
@@ -461,38 +471,38 @@ u32 sub_81D0954(void)
return structPtr->field_78[var - 27];
}
-bool32 sub_81D0978(void)
+bool32 OpenRibbonsSummaryMenu(void)
{
- struct PokenavSub14 *structPtr = AllocSubstruct(14, sizeof(struct PokenavSub14));
+ struct PokenavSub14 *structPtr = AllocSubstruct(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_MENU, sizeof(struct PokenavSub14));
if (structPtr == NULL)
return FALSE;
- structPtr->loopedTaskId = CreateLoopedTask(sub_81D0A6C, 1);
- structPtr->field_0 = sub_81D0A58;
+ structPtr->loopedTaskId = CreateLoopedTask(LoopedTask_OpenRibbonsSummaryMenu, 1);
+ structPtr->callback = GetCurrentLoopedTaskActive;
return TRUE;
}
-void sub_81D09B0(s32 id)
+void CreateRibbonsSummaryLoopedTask(s32 id)
{
- struct PokenavSub14 *structPtr = GetSubstructPtr(14);
- structPtr->loopedTaskId = CreateLoopedTask(gUnknown_08624BA0[id], 1);
- structPtr->field_0 = sub_81D0A58;
+ struct PokenavSub14 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_MENU);
+ structPtr->loopedTaskId = CreateLoopedTask(sRibbonsSummaryMenuLoopTaskFuncs[id], 1);
+ structPtr->callback = GetCurrentLoopedTaskActive;
}
-u32 sub_81D09E0(void)
+u32 IsRibbonsSummaryLoopedTaskActive(void)
{
- struct PokenavSub14 *structPtr = GetSubstructPtr(14);
- return structPtr->field_0();
+ struct PokenavSub14 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_MENU);
+ return structPtr->callback();
}
-void sub_81D09F4(void)
+void FreeRibbonsSummaryScreen2(void)
{
- struct PokenavSub14 *structPtr = GetSubstructPtr(14);
- RemoveWindow(structPtr->field_A);
- RemoveWindow(structPtr->field_8);
- RemoveWindow(structPtr->field_C);
+ struct PokenavSub14 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_MENU);
+ RemoveWindow(structPtr->ribbonCountWindowId);
+ RemoveWindow(structPtr->nameWindowId);
+ RemoveWindow(structPtr->listIdxWindowId);
RemoveWindow(structPtr->field_E);
- sub_81D1178(structPtr);
+ DestroyRibbonsMonFrontPic(structPtr);
FreeSpriteTilesByTag(9);
FreeSpritePaletteByTag(0xF);
FreeSpritePaletteByTag(0x10);
@@ -501,18 +511,18 @@ void sub_81D09F4(void)
FreeSpritePaletteByTag(0x13);
FreeSpriteOamMatrix(structPtr->field_14);
DestroySprite(structPtr->field_14);
- FreePokenavSubstruct(14);
+ FreePokenavSubstruct(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_MENU);
}
-bool32 sub_81D0A58(void)
+bool32 GetCurrentLoopedTaskActive(void)
{
- struct PokenavSub14 *structPtr = GetSubstructPtr(14);
+ struct PokenavSub14 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_MENU);
return IsLoopedTaskActive(structPtr->loopedTaskId);
}
-u32 sub_81D0A6C(s32 state)
+u32 LoopedTask_OpenRibbonsSummaryMenu(s32 state)
{
- struct PokenavSub14 *structPtr = GetSubstructPtr(14);
+ struct PokenavSub14 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_MENU);
switch (state)
{
case 0:
@@ -539,21 +549,21 @@ u32 sub_81D0A6C(s32 state)
case 2:
if (!FreeTempTileDataBuffersIfPossible())
{
- sub_81D0E60(structPtr);
+ AddRibbonCountWindow(structPtr);
return LT_INC_AND_PAUSE;
}
return LT_PAUSE;
case 3:
if (!FreeTempTileDataBuffersIfPossible())
{
- sub_81D0FCC(structPtr);
+ AddRibbonSummaryMonNameWindow(structPtr);
return LT_INC_AND_PAUSE;
}
return LT_PAUSE;
case 4:
if (!FreeTempTileDataBuffersIfPossible())
{
- sub_81D10A4(structPtr);
+ AddRibbonListIndexWindow(structPtr);
return LT_INC_AND_PAUSE;
}
return LT_PAUSE;
@@ -567,7 +577,7 @@ u32 sub_81D0A6C(s32 state)
case 6:
if (!IsDma3ManagerBusyWithBgCopy())
{
- sub_81D1148(structPtr);
+ ResetSpritesAndDrawRibbonsMonFrontPic(structPtr);
return LT_INC_AND_CONTINUE;
}
return LT_PAUSE;
@@ -598,7 +608,7 @@ u32 sub_81D0A6C(s32 state)
return LT_FINISH;
}
-u32 sub_81D0C54(s32 state)
+u32 LoopedTask_ExitRibbonsSummaryMenu(s32 state)
{
switch (state)
{
@@ -614,9 +624,9 @@ u32 sub_81D0C54(s32 state)
return LT_FINISH;
}
-u32 sub_81D0C84(s32 state)
+u32 LoopedTask_UpdateRibbonsSummaryInfo(s32 state)
{
- struct PokenavSub14 *structPtr = GetSubstructPtr(14);
+ struct PokenavSub14 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_MENU);
switch (state)
{
case 0:
@@ -626,7 +636,7 @@ u32 sub_81D0C84(s32 state)
case 1:
if (!sub_81D1234(structPtr))
{
- sub_81D0FF0(structPtr);
+ PrintRibbbonsSummaryMonInfo(structPtr);
return LT_INC_AND_CONTINUE;
}
return LT_PAUSE;
@@ -634,10 +644,10 @@ u32 sub_81D0C84(s32 state)
sub_81D12D8(structPtr);
return LT_INC_AND_CONTINUE;
case 3:
- sub_81D10D0(structPtr);
+ PrintRibbonsMonListIndex(structPtr);
return LT_INC_AND_CONTINUE;
case 4:
- sub_81D0E84(structPtr);
+ PrintCurrentMonRibbonCount(structPtr);
return LT_INC_AND_CONTINUE;
case 5:
if (!IsDma3ManagerBusyWithBgCopy())
@@ -654,9 +664,9 @@ u32 sub_81D0C84(s32 state)
return LT_FINISH;
}
-u32 sub_81D0D2C(s32 state)
+u32 LoopedTask_ExpandSelectedRibbon(s32 state)
{
- struct PokenavSub14 *structPtr = GetSubstructPtr(14);
+ struct PokenavSub14 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_MENU);
switch (state)
{
case 0:
@@ -678,9 +688,9 @@ u32 sub_81D0D2C(s32 state)
return LT_FINISH;
}
-u32 sub_81D0D8C(s32 state)
+u32 LoopedTask_MoveRibbonsCursorExpanded(s32 state)
{
- struct PokenavSub14 *structPtr = GetSubstructPtr(14);
+ struct PokenavSub14 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_MENU);
switch (state)
{
case 0:
@@ -708,9 +718,9 @@ u32 sub_81D0D8C(s32 state)
return LT_FINISH;
}
-u32 sub_81D0E00(s32 state)
+u32 LoopedTask_ShrinkExpandedRibbon(s32 state)
{
- struct PokenavSub14 *structPtr = GetSubstructPtr(14);
+ struct PokenavSub14 *structPtr = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_MENU);
switch (state)
{
case 0:
@@ -720,7 +730,7 @@ u32 sub_81D0E00(s32 state)
case 1:
if (!sub_81D1524(structPtr))
{
- sub_81D0E84(structPtr);
+ PrintCurrentMonRibbonCount(structPtr);
PrintHelpBarText(HELPBAR_RIBBONS_LIST);
return LT_INC_AND_PAUSE;
}
@@ -732,7 +742,7 @@ u32 sub_81D0E00(s32 state)
return LT_FINISH;
}
-static const struct WindowTemplate gUnknown_08624BB8 =
+static const struct WindowTemplate sRibbonCountWindowTemplate =
{
.bg = 2,
.tilemapLeft = 12,
@@ -743,14 +753,14 @@ static const struct WindowTemplate gUnknown_08624BB8 =
.baseBlock = 0x14,
};
-void sub_81D0E60(struct PokenavSub14 *structPtr)
+void AddRibbonCountWindow(struct PokenavSub14 *structPtr)
{
- structPtr->field_A = AddWindow(&gUnknown_08624BB8);
- PutWindowTilemap(structPtr->field_A);
- sub_81D0E84(structPtr);
+ structPtr->ribbonCountWindowId = AddWindow(&sRibbonCountWindowTemplate);
+ PutWindowTilemap(structPtr->ribbonCountWindowId);
+ PrintCurrentMonRibbonCount(structPtr);
}
-void sub_81D0E84(struct PokenavSub14 *structPtr)
+void PrintCurrentMonRibbonCount(struct PokenavSub14 *structPtr)
{
u8 color[] = {TEXT_COLOR_RED, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY};
@@ -758,9 +768,9 @@ void sub_81D0E84(struct PokenavSub14 *structPtr)
DynamicPlaceholderTextUtil_Reset();
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gText_RibbonsF700);
- FillWindowPixelBuffer(structPtr->field_A, PIXEL_FILL(4));
- AddTextPrinterParameterized3(structPtr->field_A, 1, 0, 1, color, -1, gStringVar4);
- CopyWindowToVram(structPtr->field_A, 2);
+ FillWindowPixelBuffer(structPtr->ribbonCountWindowId, PIXEL_FILL(4));
+ AddTextPrinterParameterized3(structPtr->ribbonCountWindowId, 1, 0, 1, color, -1, gStringVar4);
+ CopyWindowToVram(structPtr->ribbonCountWindowId, 2);
}
void sub_81D0EFC(struct PokenavSub14 *structPtr)
@@ -769,11 +779,11 @@ void sub_81D0EFC(struct PokenavSub14 *structPtr)
u32 ribbonId = sub_81D0954();
u8 color[] = {TEXT_COLOR_RED, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY};
- FillWindowPixelBuffer(structPtr->field_A, PIXEL_FILL(4));
+ FillWindowPixelBuffer(structPtr->ribbonCountWindowId, PIXEL_FILL(4));
if (ribbonId < 25)
{
for (i = 0; i < 2; i++)
- AddTextPrinterParameterized3(structPtr->field_A, 1, 0, (i * 16) + 1, color, -1, gRibbonDescriptionPointers[ribbonId][i]);
+ AddTextPrinterParameterized3(structPtr->ribbonCountWindowId, 1, 0, (i * 16) + 1, color, -1, gRibbonDescriptionPointers[ribbonId][i]);
}
else
{
@@ -783,13 +793,13 @@ void sub_81D0EFC(struct PokenavSub14 *structPtr)
ribbonId--;
for (i = 0; i < 2; i++)
- AddTextPrinterParameterized3(structPtr->field_A, 1, 0, (i * 16) + 1, color, -1, gGiftRibbonDescriptionPointers[ribbonId][i]);
+ AddTextPrinterParameterized3(structPtr->ribbonCountWindowId, 1, 0, (i * 16) + 1, color, -1, gGiftRibbonDescriptionPointers[ribbonId][i]);
}
- CopyWindowToVram(structPtr->field_A, 2);
+ CopyWindowToVram(structPtr->ribbonCountWindowId, 2);
}
-static const struct WindowTemplate gUnknown_08624BC4 =
+static const struct WindowTemplate sRibbonSummaryMonNameWindowTemplate =
{
.bg = 2,
.tilemapLeft = 14,
@@ -800,23 +810,23 @@ static const struct WindowTemplate gUnknown_08624BC4 =
.baseBlock = 0x54,
};
-void sub_81D0FCC(struct PokenavSub14 *structPtr)
+void AddRibbonSummaryMonNameWindow(struct PokenavSub14 *structPtr)
{
- structPtr->field_8 = AddWindow(&gUnknown_08624BC4);
- PutWindowTilemap(structPtr->field_8);
- sub_81D0FF0(structPtr);
+ structPtr->nameWindowId = AddWindow(&sRibbonSummaryMonNameWindowTemplate);
+ PutWindowTilemap(structPtr->nameWindowId);
+ PrintRibbbonsSummaryMonInfo(structPtr);
}
static const u8 sMaleIconString[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_RED}{WHITE}{GREEN}♂{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}");
static const u8 sFemaleIconString[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_GREEN}{WHITE}{BLUE}♀{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}");
static const u8 sGenderlessIconString[] = _("{UNK_SPACER}");
-void sub_81D0FF0(struct PokenavSub14 *structPtr)
+void PrintRibbbonsSummaryMonInfo(struct PokenavSub14 *structPtr)
{
const u8 *genderTxt;
u8 *txtPtr;
u8 level, gender;
- u16 windowId = structPtr->field_8;
+ u16 windowId = structPtr->nameWindowId;
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
GetCurrMonInfo1(gStringVar3, &level, &gender);
@@ -843,7 +853,7 @@ void sub_81D0FF0(struct PokenavSub14 *structPtr)
CopyWindowToVram(windowId, 2);
}
-static const struct WindowTemplate gUnknown_08624BE8[] =
+static const struct WindowTemplate sRibbonMonListIndexWindowTemplate[] =
{
{
.bg = 2,
@@ -857,46 +867,46 @@ static const struct WindowTemplate gUnknown_08624BE8[] =
{},
};
-void sub_81D10A4(struct PokenavSub14 *structPtr)
+void AddRibbonListIndexWindow(struct PokenavSub14 *structPtr)
{
- structPtr->field_C = AddWindow(gUnknown_08624BE8);
- FillWindowPixelBuffer(structPtr->field_C, PIXEL_FILL(1));
- PutWindowTilemap(structPtr->field_C);
- sub_81D10D0(structPtr);
+ structPtr->listIdxWindowId = AddWindow(sRibbonMonListIndexWindowTemplate);
+ FillWindowPixelBuffer(structPtr->listIdxWindowId, PIXEL_FILL(1));
+ PutWindowTilemap(structPtr->listIdxWindowId);
+ PrintRibbonsMonListIndex(structPtr);
}
-void sub_81D10D0(struct PokenavSub14 *structPtr)
+void PrintRibbonsMonListIndex(struct PokenavSub14 *structPtr)
{
s32 x;
u8 *txtPtr;
- u32 id = sub_81D06C4() + 1;
- u32 count = sub_81D06D4();
+ u32 id = GetRibbonsSummaryCurrentIndex() + 1;
+ u32 count = GetRibbonsSummaryMonListCount();
txtPtr = ConvertIntToDecimalStringN(gStringVar1, id, STR_CONV_MODE_RIGHT_ALIGN, 3);
*(txtPtr++) = CHAR_SLASH;
ConvertIntToDecimalStringN(txtPtr, count, STR_CONV_MODE_RIGHT_ALIGN, 3);
x = GetStringCenterAlignXOffset(1, gStringVar1, 56);
- AddTextPrinterParameterized(structPtr->field_C, 1, gStringVar1, x, 1, TEXT_SPEED_FF, NULL);
- CopyWindowToVram(structPtr->field_C, 2);
+ AddTextPrinterParameterized(structPtr->listIdxWindowId, 1, gStringVar1, x, 1, TEXT_SPEED_FF, NULL);
+ CopyWindowToVram(structPtr->listIdxWindowId, 2);
}
-void sub_81D1148(struct PokenavSub14 *structPtr)
+void ResetSpritesAndDrawRibbonsMonFrontPic(struct PokenavSub14 *structPtr)
{
u16 species;
u32 personality, otId;
GetCurrMonInfo2(&species, &personality, &otId);
ResetAllPicSprites();
- structPtr->field_10 = sub_81D1184(40, 104);
- sub_81C7990(15, 0);
+ structPtr->monSpriteId = DrawRibbonsMonFrontPic(40, 104);
+ PokenavFillPalette(15, 0);
}
-void sub_81D1178(struct PokenavSub14 *structPtr)
+void DestroyRibbonsMonFrontPic(struct PokenavSub14 *structPtr)
{
- FreeAndDestroyMonPicSprite(structPtr->field_10);
+ FreeAndDestroyMonPicSprite(structPtr->monSpriteId);
}
-u16 sub_81D1184(s32 unused0, s32 unused1)
+u16 DrawRibbonsMonFrontPic(s32 unused0, s32 unused1)
{
u16 species, spriteId;
u32 personality, otId;
@@ -909,19 +919,19 @@ u16 sub_81D1184(s32 unused0, s32 unused1)
void sub_81D11D8(struct PokenavSub14 *structPtr)
{
- sub_81D1258(&gSprites[structPtr->field_10], 40, -32, 6);
+ sub_81D1258(&gSprites[structPtr->monSpriteId], 40, -32, 6);
}
void sub_81D11FC(struct PokenavSub14 *structPtr)
{
- FreeAndDestroyMonPicSprite(structPtr->field_10);
- structPtr->field_10 = sub_81D1184(-32, 104);
- sub_81D1258(&gSprites[structPtr->field_10], -32, 40, 6);
+ FreeAndDestroyMonPicSprite(structPtr->monSpriteId);
+ structPtr->monSpriteId = DrawRibbonsMonFrontPic(-32, 104);
+ sub_81D1258(&gSprites[structPtr->monSpriteId], -32, 40, 6);
}
bool32 sub_81D1234(struct PokenavSub14 *structPtr)
{
- return (gSprites[structPtr->field_10].callback != SpriteCallbackDummy);
+ return (gSprites[structPtr->monSpriteId].callback != SpriteCallbackDummy);
}
void sub_81D1258(struct Sprite *sprite, s32 arg1, s32 arg2, s32 arg3)
diff --git a/src/rayquaza_scene.c b/src/rayquaza_scene.c
index 063e6f324..bc6758cae 100644
--- a/src/rayquaza_scene.c
+++ b/src/rayquaza_scene.c
@@ -14,7 +14,6 @@
#include "decompress.h"
#include "sound.h"
#include "constants/songs.h"
-#include "constants/species.h"
#include "constants/rgb.h"
#include "random.h"
diff --git a/src/record_mixing.c b/src/record_mixing.c
index b12b71697..898459c0a 100644
--- a/src/record_mixing.c
+++ b/src/record_mixing.c
@@ -5,7 +5,6 @@
#include "text.h"
#include "item.h"
#include "task.h"
-#include "constants/species.h"
#include "save.h"
#include "load_save.h"
#include "pokemon.h"
@@ -713,18 +712,17 @@ static u8 sub_80E7A9C(struct DayCareMail *rmMail)
return rmMail->message.itemId;
}
-static void ExchangeMail(struct RecordMixingDayCareMail *src, size_t recordSize, u8 (*idxs)[2], u8 which0, u8 which1)
+static void sub_80E7AA4(struct RecordMixingDayCareMail *src, size_t recordSize, u8 (*idxs)[2], u8 which0, u8 which1)
{
struct DayCareMail buffer;
struct RecordMixingDayCareMail *mail1;
struct RecordMixingDayCareMail *mail2;
mail1 = (void *)src + recordSize * idxs[which0][0];
- buffer = mail1->mail[idxs[which0][1]];
-
+ memcpy(&buffer, &mail1->mail[idxs[which0][1]], sizeof(struct DayCareMail));
mail2 = (void *)src + recordSize * idxs[which1][0];
- mail1->mail[idxs[which0][1]] = mail2->mail[idxs[which1][1]];
- mail2->mail[idxs[which1][1]] = buffer;
+ memcpy(&mail1->mail[idxs[which0][1]], &mail2->mail[idxs[which1][1]], sizeof(struct DayCareMail));
+ memcpy(&mail2->mail[idxs[which1][1]], &buffer, sizeof(struct DayCareMail));
}
static void sub_80E7B2C(const u8 *src)
@@ -866,22 +864,22 @@ static void ReceiveDaycareMailData(struct RecordMixingDayCareMail *src, size_t r
}
else if (sp1c[i][0] == TRUE && sp1c[i][1] == TRUE)
{
- u8 mail1, mail2;
+ u32 var1, var2;
sp24[j][0] = i;
- mail1 = sub_80E7A9C(&_src->mail[0]);
- mail2 = sub_80E7A9C(&_src->mail[1]);
- if (!(mail1 || mail2) || (mail1 && mail2)) //Logical (not bitwise) XOR. Should be ((mail1 || mail2) && !(mail1 && mail2)), but that doesn't match.
+ var1 = sub_80E7A9C(&_src->mail[0]);
+ var2 = sub_80E7A9C(&_src->mail[1]);
+ if (!(var1 || var2) || (var1 && var2))
{
sp24[j][1] = Random2() % 2;
}
- else if (mail1 && !mail2)
+ else if (var1 && !var2)
{
sp24[j][1] = 0;
}
- else if (!mail1 && mail2)
+ else if (!var1 && var2)
{
- sp24[j][1] = 1;
+ sp24[j][1] = 1;
}
j++;
}
@@ -897,27 +895,27 @@ static void ReceiveDaycareMailData(struct RecordMixingDayCareMail *src, size_t r
switch (sp34)
{
case 2:
- ExchangeMail(src, recordSize, sp24, 0, 1);
+ sub_80E7AA4(src, recordSize, sp24, 0, 1);
break;
case 3:
which0 = gUnknown_0858CFB8[tableId][0];
which1 = gUnknown_0858CFB8[tableId][1];
- ExchangeMail(src, recordSize, sp24, which0, which1);
+ sub_80E7AA4(src, recordSize, sp24, which0, which1);
break;
case 4:
ptr = sp24;
which0 = gUnknown_0858CFBE[tableId][0];
which1 = gUnknown_0858CFBE[tableId][1];
- ExchangeMail(src, recordSize, ptr, which0, which1);
+ sub_80E7AA4(src, recordSize, ptr, which0, which1);
which0 = gUnknown_0858CFBE[tableId][2];
which1 = gUnknown_0858CFBE[tableId][3];
- ExchangeMail(src, recordSize, ptr, which0, which1);
+ sub_80E7AA4(src, recordSize, ptr, which0, which1);
break;
}
_src = (void *)src + which * recordSize;
- gSaveBlock1Ptr->daycare.mons[0].mail = _src->mail[0];
- gSaveBlock1Ptr->daycare.mons[1].mail = _src->mail[1];
+ memcpy(&gSaveBlock1Ptr->daycare.mons[0].mail, &_src->mail[0], sizeof(struct DayCareMail));
+ memcpy(&gSaveBlock1Ptr->daycare.mons[1].mail, &_src->mail[1], sizeof(struct DayCareMail));
SeedRng(oldSeed);
}
diff --git a/src/reshow_battle_screen.c b/src/reshow_battle_screen.c
index 46fc4cd41..d8d75a0e0 100644
--- a/src/reshow_battle_screen.c
+++ b/src/reshow_battle_screen.c
@@ -11,7 +11,6 @@
#include "battle_controllers.h"
#include "link.h"
#include "sprite.h"
-#include "constants/species.h"
#include "constants/trainers.h"
#include "battle_interface.h"
#include "battle_anim.h"
diff --git a/src/roamer.c b/src/roamer.c
index 8a67234e3..d053e5b25 100644
--- a/src/roamer.c
+++ b/src/roamer.c
@@ -4,7 +4,6 @@
#include "random.h"
#include "roamer.h"
#include "constants/maps.h"
-#include "constants/species.h"
enum
{
diff --git a/src/roulette.c b/src/roulette.c
index a0d1a7dc0..b4d1c4463 100644
--- a/src/roulette.c
+++ b/src/roulette.c
@@ -30,7 +30,6 @@
#include "constants/coins.h"
#include "constants/rgb.h"
#include "constants/roulette.h"
-#include "constants/species.h"
#include "constants/songs.h"
#define BALLS_PER_ROUND 6
diff --git a/src/save.c b/src/save.c
index 0a2a4e799..680f33de0 100644
--- a/src/save.c
+++ b/src/save.c
@@ -13,7 +13,7 @@
#include "link.h"
#include "constants/game_stat.h"
-static u16 CalculateChecksum(const void *data, u16 size);
+static u16 CalculateChecksum(void *data, u16 size);
static bool8 DoReadFlashWholeSection(u8 sector, struct SaveSection *section);
static u8 GetSaveValidStatus(const struct SaveSectionLocation *location);
static u8 sub_8152E10(u16 a1, const struct SaveSectionLocation *location);
@@ -621,7 +621,7 @@ static bool8 DoReadFlashWholeSection(u8 sector, struct SaveSection *section)
return TRUE;
}
-static u16 CalculateChecksum(const void *data, u16 size)
+static u16 CalculateChecksum(void *data, u16 size)
{
u16 i;
u32 checksum = 0;
@@ -648,7 +648,7 @@ static void UpdateSaveAddresses(void)
gRamSaveSectionLocations[i].size = sSaveSectionOffsets[i].size;
}
- for (; i <= SECTOR_ID_PKMN_STORAGE_END; i++) //i = SECTOR_ID_PKMN_STORAGE_START; in the initialization clause does not match
+ for (; i <= SECTOR_ID_PKMN_STORAGE_END; i++) //setting i to SECTOR_ID_PKMN_STORAGE_START does not match
{
gRamSaveSectionLocations[i].data = (void*)(gPokemonStoragePtr) + sSaveSectionOffsets[i].toAdd;
gRamSaveSectionLocations[i].size = sSaveSectionOffsets[i].size;
diff --git a/src/scanline_effect.c b/src/scanline_effect.c
index 0a4b0b8fd..1d5814429 100644
--- a/src/scanline_effect.c
+++ b/src/scanline_effect.c
@@ -100,16 +100,16 @@ void ScanlineEffect_InitHBlankDmaTransfer(void)
static void CopyValue16Bit(void)
{
- u16 *dest = (u16 *)gScanlineEffect.dmaDest;
- u16 *src = (u16 *)&gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer];
+ vu16 *dest = (vu16 *)gScanlineEffect.dmaDest;
+ vu16 *src = (vu16 *)&gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer];
*dest = *src;
}
static void CopyValue32Bit(void)
{
- u32 *dest = (u32 *)gScanlineEffect.dmaDest;
- u32 *src = (u32 *)&gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer];
+ vu32 *dest = (vu32 *)gScanlineEffect.dmaDest;
+ vu32 *src = (vu32 *)&gScanlineEffectRegBuffers[gScanlineEffect.srcBuffer];
*dest = *src;
}
diff --git a/src/scrcmd.c b/src/scrcmd.c
index 578e357fa..ef0b3f86b 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -788,8 +788,8 @@ bool8 ScrCmd_warphole(struct ScriptContext *ctx)
{
u8 mapGroup = ScriptReadByte(ctx);
u8 mapNum = ScriptReadByte(ctx);
- s16 x;
- s16 y;
+ u16 x;
+ u16 y;
PlayerGetDestCoords(&x, &y);
if (mapGroup == 0xFF && mapNum == 0xFF)
diff --git a/src/script.c b/src/script.c
index 889c25765..9ba1a7429 100644
--- a/src/script.c
+++ b/src/script.c
@@ -26,9 +26,9 @@ void InitScriptContext(struct ScriptContext *ctx, void *cmdTable, void *cmdTable
s32 i;
ctx->mode = 0;
- ctx->scriptPtr = NULL;
+ ctx->scriptPtr = 0;
ctx->stackDepth = 0;
- ctx->nativePtr = NULL;
+ ctx->nativePtr = 0;
ctx->cmdTable = cmdTable;
ctx->cmdTableEnd = cmdTableEnd;
@@ -55,7 +55,7 @@ void SetupNativeScript(struct ScriptContext *ctx, bool8 (*ptr)(void))
void StopScript(struct ScriptContext *ctx)
{
ctx->mode = 0;
- ctx->scriptPtr = NULL;
+ ctx->scriptPtr = 0;
}
bool8 RunScriptCommand(struct ScriptContext *ctx)
diff --git a/src/script_pokemon_util.c b/src/script_pokemon_util.c
index a7b5433f0..c9a2127ac 100755
--- a/src/script_pokemon_util.c
+++ b/src/script_pokemon_util.c
@@ -22,7 +22,6 @@
#include "string_util.h"
#include "tv.h"
#include "constants/items.h"
-#include "constants/species.h"
#include "constants/tv.h"
#include "constants/battle_frontier.h"
diff --git a/src/secret_base.c b/src/secret_base.c
index 3f69e0419..8e0929593 100644
--- a/src/secret_base.c
+++ b/src/secret_base.c
@@ -46,7 +46,6 @@
#include "constants/moves.h"
#include "constants/secret_bases.h"
#include "constants/songs.h"
-#include "constants/species.h"
#include "constants/trainers.h"
#include "constants/tv.h"
@@ -964,7 +963,7 @@ static void HandleRegistryMenuInput(u8 taskId)
data = gTasks[taskId].data;
input = ListMenu_ProcessInput(data[5]);
- ListMenuGetScrollAndRow(data[5], (u16 *)&data[2], (u16 *)&data[1]);
+ ListMenuGetScrollAndRow(data[5], &data[2], &data[1]);
switch (input)
{
case LIST_NOTHING_CHOSEN:
@@ -1045,10 +1044,10 @@ void DeleteRegistry_Yes_Callback(u8 taskId)
{
s16 *data = gTasks[taskId].data;
ClearDialogWindowAndFrame(0, 0);
- DestroyListMenuTask((u8)data[5], (u16 *)&data[2], (u16 *)&data[1]);
+ DestroyListMenuTask(data[5], &data[2], &data[1]);
gSaveBlock1Ptr->secretBases[data[4]].registryStatus = 0;
BuildRegistryMenuItems(taskId);
- sub_812225C((u16 *)&data[2], (u16 *)&data[1], (u16)data[3], (u16)data[0]);
+ sub_812225C(&data[2], &data[1], data[3], data[0]);
FinalizeRegistryMenu(taskId);
gTasks[taskId].func = HandleRegistryMenuInput;
}
@@ -1062,7 +1061,7 @@ static void DeleteRegistry_No(u8 taskId)
{
s16 *data = gTasks[taskId].data;
ClearDialogWindowAndFrame(0, 0);
- DestroyListMenuTask((u8)data[5], (u16 *)&data[2], (u16 *)&data[1]);
+ DestroyListMenuTask(data[5], &data[2], &data[1]);
FinalizeRegistryMenu(taskId);
gTasks[taskId].func = HandleRegistryMenuInput;
}
diff --git a/src/shop.c b/src/shop.c
index 6e2e82a52..44ab0885c 100755
--- a/src/shop.c
+++ b/src/shop.c
@@ -984,7 +984,7 @@ static void Task_BuyHowManyDialogueInit(u8 taskId)
u16 maxQuantity;
DrawStdFrameWithCustomTileAndPalette(3, FALSE, 1, 13);
- ConvertIntToDecimalStringN(gStringVar1, quantityInBag, STR_CONV_MODE_RIGHT_ALIGN, 4);
+ ConvertIntToDecimalStringN(gStringVar1, quantityInBag, STR_CONV_MODE_RIGHT_ALIGN, MAX_ITEM_DIGITS + 1);
StringExpandPlaceholders(gStringVar4, gText_InBagVar1);
BuyMenuPrint(3, gStringVar4, 0, 1, 0, 0);
tItemCount = 1;
@@ -1026,7 +1026,7 @@ static void Task_BuyHowManyDialogueHandleInput(u8 taskId)
ClearWindowTilemap(3);
PutWindowTilemap(1);
CopyItemName(tItemId, gStringVar1);
- ConvertIntToDecimalStringN(gStringVar2, tItemCount, STR_CONV_MODE_LEFT_ALIGN, 2);
+ ConvertIntToDecimalStringN(gStringVar2, tItemCount, STR_CONV_MODE_LEFT_ALIGN, BAG_ITEM_CAPACITY_DIGITS);
ConvertIntToDecimalStringN(gStringVar3, gShopDataPtr->totalCost, STR_CONV_MODE_LEFT_ALIGN, 6);
BuyMenuDisplayMessage(taskId, gText_Var1AndYouWantedVar2, BuyMenuConfirmPurchase);
}
@@ -1148,7 +1148,7 @@ static void BuyMenuPrintItemQuantityAndPrice(u8 taskId)
FillWindowPixelBuffer(4, PIXEL_FILL(1));
PrintMoneyAmount(4, 38, 1, gShopDataPtr->totalCost, TEXT_SPEED_FF);
- ConvertIntToDecimalStringN(gStringVar1, tItemCount, STR_CONV_MODE_LEADING_ZEROS, 2);
+ ConvertIntToDecimalStringN(gStringVar1, tItemCount, STR_CONV_MODE_LEADING_ZEROS, BAG_ITEM_CAPACITY_DIGITS);
StringExpandPlaceholders(gStringVar4, gText_xVar1);
BuyMenuPrint(4, gStringVar4, 0, 1, 0, 0);
}
diff --git a/src/slot_machine.c b/src/slot_machine.c
index cc001bcc9..7cfd7d22e 100644
--- a/src/slot_machine.c
+++ b/src/slot_machine.c
@@ -252,8 +252,8 @@ struct SlotMachine
/*0x0E*/ s16 payout;
/*0x10*/ s16 netCoinLoss; // coins lost to machine (but never goes below 0)
/*0x12*/ s16 bet;
- /*0x14*/ s16 reelTimePixelOffset;
- /*0x16*/ s16 reelTimePosition;
+ /*0x14*/ s16 reeltimePixelOffset;
+ /*0x16*/ s16 reeltimePosition;
/*0x18*/ s16 currReel;
/*0x1A*/ s16 reelIncrement; // speed of reel
/*0x1C*/ s16 reelPixelOffsets[NUM_REELS];
@@ -584,7 +584,7 @@ static const u16 *const sDigitalDisplay_Pal;
static const s16 sInitialReelPositions[NUM_REELS][2];
static const u8 sLuckyFlagProbabilities_Top3[][6];
static const u8 sLuckyFlagProbabilities_NotTop3[][6];
-static const u8 sReelTimeProbabilities_UnluckyGame[][17];
+static const u8 sReeltimeProbabilities_UnluckyGame[][17];
static const u8 sReelTimeProbabilities_LuckyGame[][17];
static const u8 sSymToMatch[];
static const u8 sReelTimeTags[];
@@ -682,7 +682,7 @@ static const struct WindowTemplate sWindowTemplate_InfoBox =
.baseBlock = 1
};
-static const u8 sColors_ReelTimeHelp[] = {TEXT_COLOR_LIGHT_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY};
+static const u8 sColors_ReeltimeHelp[] = {TEXT_COLOR_LIGHT_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY};
static bool8 (*const sSlotActions[])(struct Task *task) =
{
@@ -985,7 +985,7 @@ static void PlaySlotMachine_Internal(u8 slotMachineIndex, MainCallback exitCallb
{
struct Task *task = &gTasks[CreateTask(SlotMachineDummyTask, 0xFF)];
task->data[0] = slotMachineIndex;
- StoreWordInTwoHalfwords((u16 *)&task->data[1], (intptr_t)exitCallback);
+ StoreWordInTwoHalfwords(&task->data[1], (intptr_t)exitCallback);
}
@@ -1744,13 +1744,13 @@ static u8 AttemptsAtLuckyFlags_NotTop3(void)
static u8 GetReelTimeProbability(u8 reelTimeDraw)
{
- if (!sSlotMachine->luckyGame)
- return sReelTimeProbabilities_UnluckyGame[reelTimeDraw][sSlotMachine->pikaPower];
-
- return sReelTimeProbabilities_LuckyGame[reelTimeDraw][sSlotMachine->pikaPower];
+ if (sSlotMachine->luckyGame == FALSE)
+ return sReeltimeProbabilities_UnluckyGame[reelTimeDraw][sSlotMachine->pikaPower];
+ else
+ return sReelTimeProbabilities_LuckyGame[reelTimeDraw][sSlotMachine->pikaPower];
}
-static void GetReelTimeDraw(void)
+static void GetReeltimeDraw(void)
{
u8 rval;
s16 reelTimeDraw;
@@ -1773,13 +1773,15 @@ static bool8 ShouldReelTimeMachineExplode(u16 i)
u16 rval = Random() & 0xff;
if (rval < sReelTimeExplodeProbability[i])
return TRUE;
- return FALSE;
+ else
+ return FALSE;
}
static u16 SlowReelSpeed(void)
{
u8 i = 0;
- u8 rval, value;
+ u8 rval;
+ u8 value;
if (sSlotMachine->netCoinLoss >= 300)
i = 4;
else if (sSlotMachine->netCoinLoss >= 250)
@@ -1909,7 +1911,8 @@ static bool8 IsFinalTask_RunAwardPayoutActions(void)
{
if (FindTaskIdByFunc(RunAwardPayoutActions) == TAIL_SENTINEL)
return TRUE;
- return FALSE;
+ else
+ return FALSE;
}
static void RunAwardPayoutActions(u8 taskId)
@@ -1997,7 +2000,7 @@ static u8 GetTag(u8 reel, s16 offset)
static u8 GetNearbyReelTimeTag(s16 n)
{
- s16 newPosition = (sSlotMachine->reelTimePosition + n) % 6;
+ s16 newPosition = (sSlotMachine->reeltimePosition + n) % 6;
if (newPosition < 0)
newPosition += 6;
return sReelTimeTags[newPosition];
@@ -2023,22 +2026,22 @@ s16 AdvanceSlotReelToNextTag(u8 reelIndex, s16 value)
return offset;
}
-static void AdvanceReelTimeReel(s16 value)
+static void AdvanceReeltimeReel(s16 value)
{
- sSlotMachine->reelTimePixelOffset += value;
- sSlotMachine->reelTimePixelOffset %= 120;
- sSlotMachine->reelTimePosition = 6 - sSlotMachine->reelTimePixelOffset / 20;
+ sSlotMachine->reeltimePixelOffset += value;
+ sSlotMachine->reeltimePixelOffset %= 120;
+ sSlotMachine->reeltimePosition = 6 - sSlotMachine->reeltimePixelOffset / 20;
}
-s16 AdvanceReelTimeReelToNextTag(s16 value)
+s16 AdvanceReeltimeReelToNextTag(s16 value)
{
- s16 offset = sSlotMachine->reelTimePixelOffset % 20;
+ s16 offset = sSlotMachine->reeltimePixelOffset % 20;
if (offset != 0)
{
if (offset < value)
value = offset;
- AdvanceReelTimeReel(value);
- offset = sSlotMachine->reelTimePixelOffset % 20;
+ AdvanceReeltimeReel(value);
+ offset = sSlotMachine->reeltimePixelOffset % 20;
}
return offset;
}
@@ -3077,8 +3080,8 @@ static void Task_ReelTime(u8 taskId)
static void ReelTime_Init(struct Task *task)
{
sSlotMachine->reelTimeSpinsLeft = 0;
- sSlotMachine->reelTimePixelOffset = 0;
- sSlotMachine->reelTimePosition = 0;
+ sSlotMachine->reeltimePixelOffset = 0;
+ sSlotMachine->reeltimePosition = 0;
task->tState++;
task->data[1] = 0;
task->data[2] = 30;
@@ -3093,7 +3096,7 @@ static void ReelTime_Init(struct Task *task)
CreateReelTimeNumberSprites();
CreateReelTimeShadowSprites();
CreateReelTimeNumberGapSprite();
- GetReelTimeDraw();
+ GetReeltimeDraw();
StopMapMusic();
PlayNewMapMusic(MUS_ROULETTE);
}
@@ -3116,12 +3119,12 @@ static void ReelTime_WindowEnter(struct Task *task)
task->tState++;
task->data[3] = 0;
}
- AdvanceReelTimeReel(task->data[4] >> 8);
+ AdvanceReeltimeReel(task->data[4] >> 8);
}
static void ReelTime_WaitStartPikachu(struct Task *task)
{
- AdvanceReelTimeReel(task->data[4] >> 8);
+ AdvanceReeltimeReel(task->data[4] >> 8);
if (++task->data[5] >= 60)
{
task->tState++;
@@ -3141,7 +3144,7 @@ static void ReelTime_PikachuSpeedUp1(struct Task *task)
memcpy(reelTimeBoltDelays, sReelTimeBoltDelays, sizeof(sReelTimeBoltDelays));
memcpy(pikachuAuraFlashDelays, sPikachuAuraFlashDelays, sizeof(sPikachuAuraFlashDelays));
- AdvanceReelTimeReel(task->data[4] >> 8);
+ AdvanceReeltimeReel(task->data[4] >> 8);
// gradually slow down the reel
task->data[4] -= 4;
i = 4 - (task->data[4] >> 8);
@@ -3159,7 +3162,7 @@ static void ReelTime_PikachuSpeedUp1(struct Task *task)
static void ReelTime_PikachuSpeedUp2(struct Task *task)
{
- AdvanceReelTimeReel(task->data[4] >> 8);
+ AdvanceReeltimeReel(task->data[4] >> 8);
if (++task->data[5] >= 80)
{
task->tState++;
@@ -3171,7 +3174,7 @@ static void ReelTime_PikachuSpeedUp2(struct Task *task)
static void ReelTime_WaitReel(struct Task *task)
{
- AdvanceReelTimeReel(task->data[4] >> 8);
+ AdvanceReeltimeReel(task->data[4] >> 8);
task->data[4] = (u8)task->data[4] + 0x80;
if (++task->data[5] >= 80)
{
@@ -3182,7 +3185,7 @@ static void ReelTime_WaitReel(struct Task *task)
static void ReelTime_CheckExplode(struct Task *task)
{
- AdvanceReelTimeReel(task->data[4] >> 8);
+ AdvanceReeltimeReel(task->data[4] >> 8);
task->data[4] = (u8)task->data[4] + 0x40;
if (++task->data[5] >= 40)
{
@@ -3206,19 +3209,19 @@ static void ReelTime_CheckExplode(struct Task *task)
static void ReelTime_LandOnOutcome(struct Task *task)
{
- s16 reelTimePixelOffset = sSlotMachine->reelTimePixelOffset % 20;
- if (reelTimePixelOffset)
+ s16 reeltimePixelOffset = sSlotMachine->reeltimePixelOffset % 20;
+ if (reeltimePixelOffset)
{
- reelTimePixelOffset = AdvanceReelTimeReelToNextTag(task->data[4] >> 8);
+ reeltimePixelOffset = AdvanceReeltimeReelToNextTag(task->data[4] >> 8);
task->data[4] = (u8)task->data[4] + 0x40;
}
else if (GetNearbyReelTimeTag(1) != sSlotMachine->reelTimeDraw)
{
- AdvanceReelTimeReel(task->data[4] >> 8);
- reelTimePixelOffset = sSlotMachine->reelTimePixelOffset % 20;
+ AdvanceReeltimeReel(task->data[4] >> 8);
+ reeltimePixelOffset = sSlotMachine->reeltimePixelOffset % 20;
task->data[4] = (u8)task->data[4] + 0x40;
}
- if (reelTimePixelOffset == 0 && GetNearbyReelTimeTag(1) == sSlotMachine->reelTimeDraw)
+ if (reeltimePixelOffset == 0 && GetNearbyReelTimeTag(1) == sSlotMachine->reelTimeDraw)
{
task->data[4] = 0; // stop moving
task->tState++;
@@ -3441,7 +3444,7 @@ static void InfoBox_DrawWindow(struct Task *task)
static void InfoBox_AddText(struct Task *task)
{
- AddTextPrinterParameterized3(1, 1, 2, 5, sColors_ReelTimeHelp, 0, gText_ReelTimeHelp);
+ AddTextPrinterParameterized3(1, 1, 2, 5, sColors_ReeltimeHelp, 0, gText_ReelTimeHelp);
CopyWindowToVram(1, 3);
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0));
task->tState++;
@@ -3771,7 +3774,7 @@ static void CreateReelTimeNumberSprites(void)
static void SpriteCB_ReelTimeNumbers(struct Sprite *sprite)
{
- s16 r0 = (u16)(sSlotMachine->reelTimePixelOffset + sprite->data[7]);
+ s16 r0 = (u16)(sSlotMachine->reeltimePixelOffset + sprite->data[7]);
r0 %= 40;
sprite->pos1.y = r0 + 59;
StartSpriteAnimIfDifferent(sprite, GetNearbyReelTimeTag(r0 / 20));
@@ -4827,7 +4830,7 @@ static const u8 sLuckyFlagProbabilities_NotTop3[][6] = {
{40, 40, 35, 35, 40, 40}
};
-static const u8 sReelTimeProbabilities_UnluckyGame[][17] = {
+static const u8 sReeltimeProbabilities_UnluckyGame[][17] = {
{243, 243, 243, 80, 80, 80, 80, 40, 40, 40, 40, 40, 40, 5, 5, 5, 5},
{ 5, 5, 5, 150, 150, 150, 150, 130, 130, 130, 130, 130, 130, 100, 100, 100, 5},
{ 4, 4, 4, 20, 20, 20, 20, 80, 80, 80, 80, 80, 80, 100, 100, 100, 40},
diff --git a/src/start_menu.c b/src/start_menu.c
index fa51766e8..35eb53475 100644
--- a/src/start_menu.c
+++ b/src/start_menu.c
@@ -462,7 +462,7 @@ static bool32 InitStartMenuStep(void)
sInitStartMenuData[0]++;
break;
case 4:
- if (PrintStartMenuActions((s8 *)&sInitStartMenuData[1], 2))
+ if (PrintStartMenuActions(&sInitStartMenuData[1], 2))
sInitStartMenuData[0]++;
break;
case 5:
diff --git a/src/starter_choose.c b/src/starter_choose.c
index 2585f3408..771db961e 100644
--- a/src/starter_choose.c
+++ b/src/starter_choose.c
@@ -22,7 +22,6 @@
#include "trig.h"
#include "window.h"
#include "constants/songs.h"
-#include "constants/species.h"
#include "constants/rgb.h"
#define STARTER_MON_COUNT 3
diff --git a/src/trade.c b/src/trade.c
index f48e453a8..6696c23eb 100644
--- a/src/trade.c
+++ b/src/trade.c
@@ -49,7 +49,6 @@
#include "constants/moves.h"
#include "constants/region_map_sections.h"
#include "constants/rgb.h"
-#include "constants/species.h"
#include "constants/songs.h"
#include "constants/union_room.h"
diff --git a/src/trainer_hill.c b/src/trainer_hill.c
index 14af7372f..18d56723c 100644
--- a/src/trainer_hill.c
+++ b/src/trainer_hill.c
@@ -29,7 +29,6 @@
#include "constants/layouts.h"
#include "constants/moves.h"
#include "constants/maps.h"
-#include "constants/species.h"
#include "constants/trainers.h"
#include "constants/easy_chat.h"
#include "constants/trainer_hill.h"
@@ -356,7 +355,7 @@ static void SetUpDataStruct(void)
{
if (sHillData == NULL)
{
- sHillData = AllocZeroed(sizeof(struct TrHillStruct2));
+ sHillData = AllocZeroed(sizeof(*sHillData));
sHillData->floorId = gMapHeader.mapLayoutId - LAYOUT_TRAINER_HILL_1F;
CpuCopy32(sDataPerTag[gSaveBlock1Ptr->trainerHill.tag], &sHillData->tag, sizeof(sHillData->tag) + 4 * sizeof(struct TrHillFloor));
nullsub_2();
@@ -672,17 +671,17 @@ bool32 LoadTrainerHillFloorObjectEventScripts(void)
return TRUE;
}
-static u16 sub_81D5F58(u8 floorId, u32 bit, u32 arg2, u32 arg3)
+static u16 GetMetatileForFloor(u8 floorId, u32 x, u32 y, u32 stride) // stride is always 16
{
- u8 var0;
- u16 var1;
- u16 var2;
+ bool8 impassable;
+ u16 metatile;
+ u16 elevation;
- var0 = (sHillData->floors[floorId].display.unk3A0[arg2] >> (15 - bit) & 1);
- var1 = sHillData->floors[floorId].display.data[arg3 * arg2 + bit] + 0x200;
- var2 = 0x3000;
+ impassable = (sHillData->floors[floorId].display.collisionData[y] >> (15 - x) & 1);
+ metatile = sHillData->floors[floorId].display.metatileData[stride * y + x] + 0x200;
+ elevation = 0x3000;
- return (((var0 << 10) & 0xc00) | var2) | (var1 & 0x3ff);
+ return (((impassable << 10) & METATILE_COLLISION_MASK) | elevation) | (metatile & METATILE_ID_MASK);
}
void GenerateTrainerHillFloorLayout(u16 *mapArg)
@@ -722,7 +721,7 @@ void GenerateTrainerHillFloorLayout(u16 *mapArg)
for (i = 0; i < 16; i++)
{
for (j = 0; j < 16; j++)
- dst[j] = sub_81D5F58(mapId, j, i, 0x10);
+ dst[j] = GetMetatileForFloor(mapId, j, i, 0x10);
dst += 31;
}
diff --git a/src/trainer_pokemon_sprites.c b/src/trainer_pokemon_sprites.c
index d2cb634f0..c23047b01 100644
--- a/src/trainer_pokemon_sprites.c
+++ b/src/trainer_pokemon_sprites.c
@@ -2,7 +2,6 @@
#include "sprite.h"
#include "window.h"
#include "malloc.h"
-#include "constants/species.h"
#include "palette.h"
#include "decompress.h"
#include "trainer_pokemon_sprites.h"
diff --git a/src/trainer_see.c b/src/trainer_see.c
index f2024e37c..46fafa7e3 100644
--- a/src/trainer_see.c
+++ b/src/trainer_see.c
@@ -603,7 +603,7 @@ static void sub_80B44C8(u8 taskId)
struct ObjectEvent *objEvent;
// another objEvent loaded into by loadword?
- LoadWordFromTwoHalfwords((u16*)&task->data[1], (u32 *)&objEvent);
+ LoadWordFromTwoHalfwords(&task->data[1], (u32 *)&objEvent);
if (!task->data[7])
{
ObjectEventClearHeldMovement(objEvent);
@@ -624,7 +624,7 @@ static void sub_80B44C8(u8 taskId)
void sub_80B4578(struct ObjectEvent *var)
{
- StoreWordInTwoHalfwords((u16 *)&gTasks[CreateTask(sub_80B44C8, 0)].data[1], (u32)var);
+ StoreWordInTwoHalfwords(&gTasks[CreateTask(sub_80B44C8, 0)].data[1], (u32)var);
}
void EndTrainerApproach(void)
diff --git a/src/tv.c b/src/tv.c
index 7732bb9b1..748915c7a 100644
--- a/src/tv.c
+++ b/src/tv.c
@@ -32,6 +32,7 @@
#include "decoration.h"
#include "secret_base.h"
#include "tv.h"
+#include "pokeball.h"
#include "data.h"
#include "constants/battle_frontier.h"
#include "constants/contest.h"
@@ -42,7 +43,6 @@
#include "constants/moves.h"
#include "constants/region_map_sections.h"
#include "constants/script_menu.h"
-#include "constants/species.h"
#include "constants/tv.h"
// Static type declarations
@@ -964,7 +964,7 @@ void GabbyAndTyBeforeInterview(void)
}
if (!gBattleResults.usedMasterBall)
{
- for (i = 0; i < 11; i ++)
+ for (i = 0; i < POKEBALL_COUNT - 1; i ++)
{
if (gBattleResults.catchAttempts[i])
{
@@ -1136,7 +1136,7 @@ void PutPokemonTodayCaughtOnAir(void)
sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows);
if (sCurTVShowSlot != -1 && HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_POKEMON_TODAY_CAUGHT, FALSE) != TRUE)
{
- for (i = 0; i < 11; i ++)
+ for (i = 0; i < POKEBALL_COUNT - 1; i ++)
{
ct += gBattleResults.catchAttempts[i];
}
@@ -1153,7 +1153,7 @@ void PutPokemonTodayCaughtOnAir(void)
}
else
{
- for (i = 0; i < 11; i ++)
+ for (i = 0; i < POKEBALL_COUNT - 1; i ++)
{
ct += gBattleResults.catchAttempts[i];
}
@@ -1204,7 +1204,7 @@ void PutPokemonTodayFailedOnTheAir(void)
if (!rbernoulli(1, 1))
{
- for (i = 0, ct = 0; i < 11; i ++)
+ for (i = 0, ct = 0; i < POKEBALL_COUNT - 1; i ++)
{
ct += gBattleResults.catchAttempts[i];
}
@@ -2229,7 +2229,7 @@ void sub_80EE184(void)
show->breakingNews.kind = TVSHOW_BREAKING_NEWS;
show->breakingNews.active = FALSE;
balls = 0;
- for (i = 0; i < 11; i ++)
+ for (i = 0; i < POKEBALL_COUNT - 1; i ++)
{
balls += gBattleResults.catchAttempts[i];
}
diff --git a/src/union_room.c b/src/union_room.c
index 05bd8cfb0..3e80ffe37 100644
--- a/src/union_room.c
+++ b/src/union_room.c
@@ -52,7 +52,6 @@
#include "constants/party_menu.h"
#include "constants/rgb.h"
#include "constants/songs.h"
-#include "constants/species.h"
// States for Task_RunUnionRoom
enum {
@@ -3754,7 +3753,7 @@ static void UR_AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str
printerTemplate.y = y;
printerTemplate.currentX = x;
printerTemplate.currentY = y;
- printerTemplate.style = 0;
+ printerTemplate.unk = 0;
gTextFlags.useAlternateDownArrow = FALSE;
switch (colorIdx)
@@ -4077,14 +4076,14 @@ static void TradeBoardPrintItemInfo(u8 windowId, u8 y, struct GFtgtGname * gname
UR_AddTextPrinterParameterized(windowId, 1, uname, 8, y, colorIdx);
if (species == SPECIES_EGG)
{
- UR_AddTextPrinterParameterized(windowId, 1, sText_EggTrade, 0x44, y, colorIdx);
+ UR_AddTextPrinterParameterized(windowId, 1, sText_EggTrade, 68, y, colorIdx);
}
else
{
- blit_move_info_icon(windowId, type + 1, 0x44, y);
- UR_AddTextPrinterParameterized(windowId, 1, gSpeciesNames[species], 0x76, y, colorIdx);
+ BlitMenuInfoIcon(windowId, type + 1, 68, y);
+ UR_AddTextPrinterParameterized(windowId, 1, gSpeciesNames[species], 118, y, colorIdx);
ConvertIntToDecimalStringN(levelStr, level, STR_CONV_MODE_RIGHT_ALIGN, 3);
- UR_AddTextPrinterParameterized(windowId, 1, levelStr, 0xC6, y, colorIdx);
+ UR_AddTextPrinterParameterized(windowId, 1, levelStr, 198, y, colorIdx);
}
}
diff --git a/src/union_room_chat.c b/src/union_room_chat.c
index ed39d3acf..75464529f 100755
--- a/src/union_room_chat.c
+++ b/src/union_room_chat.c
@@ -2121,7 +2121,7 @@ static void Task_ReceiveChatMessage(u8 taskId)
static bool8 TryAllocDisplay(void)
{
- sDisplay = Alloc(sizeof(struct UnionRoomChatDisplay));
+ sDisplay = Alloc(sizeof(*sDisplay));
if (sDisplay && TryAllocSprites())
{
ResetBgsAndClearDma3BusyFlags(0);
diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c
index 4a70e9b44..b4ccbfe06 100644
--- a/src/use_pokeblock.c
+++ b/src/use_pokeblock.c
@@ -487,7 +487,7 @@ static void LoadUsePokeblockMenu(void)
{
case 0:
sMenu->curMonSpriteId = 0xFF;
- sub_81D1ED4(&sMenu->graph);
+ InitConditionGraphData(&sMenu->graph);
sInfo->mainState++;
break;
case 1:
@@ -537,12 +537,12 @@ static void LoadUsePokeblockMenu(void)
sInfo->mainState++;
break;
case 11:
- sub_81D2754(sMenu->graph.unk0[0], sMenu->graph.unk14[0]);
- sub_81D20AC(&sMenu->graph);
+ sub_81D2754(sMenu->graph.stat[0], sMenu->graph.unk14[0]);
+ InitConditionGraphState(&sMenu->graph);
sInfo->mainState++;
break;
case 12:
- if (!sub_81D20BC(&sMenu->graph))
+ if (!SetupConditionGraphScanlineParams(&sMenu->graph))
{
sub_81D1F84(&sMenu->graph, sMenu->graph.unk14[0], sMenu->graph.unk14[0]);
sInfo->mainState++;
@@ -1368,7 +1368,7 @@ static bool8 LoadUsePokeblockMenuGfx(void)
LoadBgTilemap(2, sMenu->tilemapBuffer, 1280, 0);
LoadPalette(gConditionGraphData_Pal, 48, 32);
LoadPalette(gConditionText_Pal, 240, 32);
- sub_81D21DC(2);
+ SetConditionGraphIOWindows(2);
break;
default:
sMenu->info.helperState = 0;
diff --git a/src/walda_phrase.c b/src/walda_phrase.c
index c9c7809d3..18fb2791b 100644
--- a/src/walda_phrase.c
+++ b/src/walda_phrase.c
@@ -118,8 +118,8 @@ static u8 GetLetterTableId(u8 letter)
static bool32 TryCalculateWallpaper(u16* backgroundClr, u16 *foregroundClr, u8 *iconId, u8 *patternId, u16 trainerId, u8 *phrase)
{
s32 i;
- u8 array[9];
- u8 charsByTableId[15];
+ ALIGNED(2) u8 array[12];
+ u8 charsByTableId[16];
u16 *ptr;
if (StringLength(phrase) != 15)
diff --git a/src/wild_encounter.c b/src/wild_encounter.c
index 492a10101..9f81a3b3e 100644
--- a/src/wild_encounter.c
+++ b/src/wild_encounter.c
@@ -21,7 +21,6 @@
#include "constants/items.h"
#include "constants/layouts.h"
#include "constants/maps.h"
-#include "constants/species.h"
#include "constants/weather.h"
extern const u8 EventScript_RepelWoreOff[];
diff --git a/src/wireless_communication_status_screen.c b/src/wireless_communication_status_screen.c
index 81fa16720..87b200f14 100644
--- a/src/wireless_communication_status_screen.c
+++ b/src/wireless_communication_status_screen.c
@@ -237,7 +237,7 @@ static void PrintHeaderTexts(void)
FillWindowPixelBuffer(1, PIXEL_FILL(0));
FillWindowPixelBuffer(2, PIXEL_FILL(0));
WCSS_AddTextPrinterParameterized(0, 1, sHeaderTexts[0], GetStringCenterAlignXOffset(1, sHeaderTexts[0], 0xC0), 6, COLORMODE_GREEN);
- for (i = 0; i < (int)ARRAY_COUNT(sHeaderTexts[0]) - 1; i++)
+ for (i = 0; i < (int)ARRAY_COUNT(*sHeaderTexts) - 1; i++)
{
WCSS_AddTextPrinterParameterized(1, 1, sHeaderTexts[i + 1], 0, 30 * i + 8, COLORMODE_WHITE_LGRAY);
}
@@ -362,12 +362,12 @@ static u32 CountPlayersInGroupAndGetActivity(struct UnkStruct_x20 * unk20, u32 *
{
if (group_players(i) == 0)
{
- k = 0; //Should just be 1 without the increment after the loop ends but that doesn't match.
+ k = 0;
for (j = 0; j < RFU_CHILD_MAX; j++)
{
if (unk20->gname_uname.gname.child_sprite_gender[j] != 0) k++;
}
- k++; //See above comment.
+ k++;
groupCounts[group_type(i)] += k;
}
else