summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/battle_anim_effects_2.c12
-rw-r--r--src/battle_script_commands.c4
-rw-r--r--src/berry_crush.c14
-rw-r--r--src/bg.c18
-rw-r--r--src/bike.c215
-rw-r--r--src/clear_save_data_screen.c4
-rw-r--r--src/data/object_events/movement_action_func_tables.h340
-rw-r--r--src/data/object_events/movement_type_func_tables.h38
-rw-r--r--src/data/party_menu.h6
-rw-r--r--src/data/trainers.h2
-rw-r--r--src/diploma.c4
-rw-r--r--src/dodrio_berry_picking_2.c6
-rw-r--r--src/easy_chat_3.c4
-rw-r--r--src/event_object_movement.c265
-rw-r--r--src/evolution_scene.c2
-rw-r--r--src/field_player_avatar.c15
-rw-r--r--src/field_screen_effect.c2
-rw-r--r--src/graphics.c28
-rw-r--r--src/help_message.c2
-rw-r--r--src/help_system_util.c36
-rw-r--r--src/item.c2
-rw-r--r--src/item_menu.c4
-rw-r--r--src/item_pc.c8
-rw-r--r--src/item_use.c4
-rw-r--r--src/librfu_intr.c14
-rw-r--r--src/librfu_rfu.c23
-rw-r--r--src/librfu_sio32id.c28
-rw-r--r--src/link.c2
-rw-r--r--src/list_menu.c4
-rw-r--r--src/m4a.c13
-rw-r--r--src/map_preview_screen.c2
-rw-r--r--src/menu_helpers.c2
-rw-r--r--src/metatile_behavior.c6
-rw-r--r--src/naming_screen.c10
-rw-r--r--src/option_menu.c2
-rw-r--r--src/overworld.c8
-rw-r--r--src/party_menu.c2
-rw-r--r--src/party_menu_specials.c2
-rw-r--r--src/pokedex.c2
-rw-r--r--src/pokedex_area_markers.c6
-rw-r--r--src/pokedex_screen.c2904
-rw-r--r--src/pokemon.c18
-rw-r--r--src/pokemon_jump_4.c6
-rw-r--r--src/pokemon_special_anim_scene.c4
-rw-r--r--src/pokemon_storage_system_2.c14
-rw-r--r--src/pokemon_storage_system_3.c2
-rw-r--r--src/pokemon_storage_system_5.c28
-rw-r--r--src/pokemon_summary_screen.c3276
-rw-r--r--src/quest_log_player.c2
-rw-r--r--src/region_map.c8
-rw-r--r--src/save_failed_screen.c2
-rw-r--r--src/slot_machine.c2
-rw-r--r--src/strings.c120
-rw-r--r--src/text.c47
-rw-r--r--src/trade.c36
-rw-r--r--src/trainer_card.c2
-rw-r--r--src/trainer_tower.c15
-rw-r--r--src/union_room.c10
-rw-r--r--src/union_room_chat_display.c4
-rw-r--r--src/vs_seeker.c128
-rw-r--r--src/wireless_communication_status_screen.c8
61 files changed, 3927 insertions, 3870 deletions
diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c
index dcffedb0e..ff9e64cb9 100644
--- a/src/battle_anim_effects_2.c
+++ b/src/battle_anim_effects_2.c
@@ -3013,10 +3013,7 @@ void AnimTask_FreeMusicNotesPals(u8 taskId)
static void SetMusicNotePalette(struct Sprite *sprite, u8 a, u8 b)
{
- u8 tile;
-
- tile = (b & 1);
- tile = ((-tile | tile) >> 31) & 32;
+ u8 tile = (b & 1) ? 32 : 0;
sprite->oam.tileNum += tile + (a << 2);
sprite->oam.paletteNum = IndexOfSpritePaletteTag(gMusicNotePaletteTagsTable[b >> 1]);
}
@@ -3715,7 +3712,7 @@ void AnimPerishSongMusicNote(struct Sprite *sprite)
if (!sprite->data[0])
{
sprite->pos1.x = 120;
- sprite->pos1.y = (gBattleAnimArgs[0] + (((u16)gBattleAnimArgs[0]) >> 31)) / 2 - 15;
+ sprite->pos1.y = gBattleAnimArgs[0] / 2 - 15;
StartSpriteAnim(sprite, gBattleAnimArgs[1]);
@@ -3725,7 +3722,7 @@ void AnimPerishSongMusicNote(struct Sprite *sprite)
sprite->data[0]++;
- sprite->data[1] = (sprite->data[0] + ((u16)sprite->data[0] >> 31)) / 2;
+ sprite->data[1] = sprite->data[0] / 2;
index = ((sprite->data[0] * 3) + (u16)sprite->data[3]);
var2 = 0xFF;
sprite->data[6] = (sprite->data[6] + 10) & 0xFF;
@@ -3773,8 +3770,7 @@ static void AnimPerishSongMusicNote_Step2(struct Sprite *sprite)
if (sprite->data[4] > 3)
{
- int var1 = sprite->data[2];
- sprite->invisible = var1 - (((s32)(var1 + ((u32)var1 >> 31)) >> 1) << 1);
+ sprite->invisible = sprite->data[2] % 2;
DestroyAnimSprite(sprite);
}
diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c
index c144833a1..ee9251017 100644
--- a/src/battle_script_commands.c
+++ b/src/battle_script_commands.c
@@ -5638,7 +5638,7 @@ static void PutLevelAndGenderOnLvlUpBox(void)
printerTemplate.unk = 0;
printerTemplate.fgColor = TEXT_COLOR_WHITE;
printerTemplate.bgColor = TEXT_COLOR_TRANSPARENT;
- printerTemplate.shadowColor = TEXT_COLOR_DARK_GREY;
+ printerTemplate.shadowColor = TEXT_COLOR_DARK_GRAY;
AddTextPrinter(&printerTemplate, 0xFF, NULL);
txtPtr = gStringVar4;
gStringVar4[0] = 0xF9;
@@ -9180,7 +9180,7 @@ static void atkF2_displaydexinfo(void)
if (!gPaletteFade.active)
{
FreeAllWindowBuffers();
- gBattleCommunication[TASK_ID] = sub_8106B60(species);
+ gBattleCommunication[TASK_ID] = DexScreen_RegisterMonToPokedex(species);
++gBattleCommunication[0];
}
break;
diff --git a/src/berry_crush.c b/src/berry_crush.c
index 87888756e..05be05802 100644
--- a/src/berry_crush.c
+++ b/src/berry_crush.c
@@ -400,15 +400,15 @@ static const struct BgTemplate sBgTemplates[] = {
static const u8 sBerryCrushTextColorTable[][3] = {
{
TEXT_COLOR_WHITE,
- TEXT_COLOR_DARK_GREY,
- TEXT_COLOR_LIGHT_GREY
+ TEXT_COLOR_DARK_GRAY,
+ TEXT_COLOR_LIGHT_GRAY
}, {
TEXT_COLOR_TRANSPARENT,
TEXT_COLOR_WHITE,
- TEXT_COLOR_DARK_GREY
+ TEXT_COLOR_DARK_GRAY
}, {
TEXT_COLOR_TRANSPARENT,
- TEXT_COLOR_LIGHT_GREY,
+ TEXT_COLOR_LIGHT_GRAY,
TEXT_COLOR_RED
}, {
TEXT_COLOR_WHITE,
@@ -1091,11 +1091,11 @@ static u32 BerryCrushCommand_PrintMessage(struct BerryCrushGame * game, u8 *para
if (params[1] & 2)
{
StringExpandPlaceholders(gStringVar4, sBerryCrushMessages[params[0]]);
- AddTextPrinterParameterized2(0, 2, gStringVar4, game->textSpeed, 0, TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GREY);
+ AddTextPrinterParameterized2(0, 2, gStringVar4, game->textSpeed, 0, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
}
else
{
- AddTextPrinterParameterized2(0, 2, sBerryCrushMessages[params[0]], game->textSpeed, NULL, TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GREY);
+ AddTextPrinterParameterized2(0, 2, sBerryCrushMessages[params[0]], game->textSpeed, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
}
CopyWindowToVram(0, COPYWIN_BOTH);
break;
@@ -2695,7 +2695,7 @@ static void PrintBerryCrushResultWindow(struct BerryCrushGame * game, u8 command
break;
}
if (linkPlayerId == game->localId)
- StringCopy(gStringVar3, gText_1_ClrLtGryShdwBlk_Dynamic0);
+ StringCopy(gStringVar3, gText_1_ClrBluShdwLtBlu_Dynamic0);
else
StringCopy(gStringVar3, gText_1_Dynamic0);
gStringVar3[0] = linkIdToPrint + CHAR_1;
diff --git a/src/bg.c b/src/bg.c
index 5db690332..b20186029 100644
--- a/src/bg.c
+++ b/src/bg.c
@@ -910,7 +910,7 @@ void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, const void *src, u8 destX, u
CopyRectToBgTilemapBufferRect(bg, src, 0, 0, rectWidth, rectHeight, destX, destY, rectWidth, rectHeight, palette, 0, 0);
}
-void CopyRectToBgTilemapBufferRect(u8 bg, const void *src, u8 srcX, u8 srcY, u8 srcWidth, u8 unused, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, s16 palette1, s16 tileOffset)
+void CopyRectToBgTilemapBufferRect(u8 bg, const void *src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, s16 tileOffset, s16 palette2)
{
u16 screenWidth, screenHeight, screenSize;
u16 var;
@@ -926,28 +926,28 @@ void CopyRectToBgTilemapBufferRect(u8 bg, const void *src, u8 srcX, u8 srcY, u8
{
case 0:
srcPtr = src + ((srcY * srcWidth) + srcX) * 2;
- for (i = destX; i < (destX + rectWidth); i++)
+ for (i = destY; i < (destY + rectHeight); i++)
{
- for (j = srcHeight; j < (srcHeight + destY); j++)
+ for (j = destX; j < (destX + rectWidth); j++)
{
u16 index = GetTileMapIndexFromCoords(j, i, screenSize, screenWidth, screenHeight);
- CopyTileMapEntry(srcPtr, sGpuBgConfigs2[bg].tilemap + (index * 2), rectHeight, palette1, tileOffset);
+ CopyTileMapEntry(srcPtr, sGpuBgConfigs2[bg].tilemap + (index * 2), palette1, tileOffset, palette2);
srcPtr += 2;
}
- srcPtr += (srcWidth - destY) * 2;
+ srcPtr += (srcWidth - rectWidth) * 2;
}
break;
case 1:
srcPtr = src + ((srcY * srcWidth) + srcX);
var = GetBgMetricAffineMode(bg, 0x1);
- for (i = destX; i < (destX + rectWidth); i++)
+ for (i = destY; i < (destY + rectHeight); i++)
{
- for (j = srcHeight; j < (srcHeight + destY); j++)
+ for (j = destX; j < (destX + rectWidth); j++)
{
- *(u8*)(sGpuBgConfigs2[bg].tilemap + ((var * i) + j)) = *(u8*)(srcPtr) + palette1;
+ *(u8*)(sGpuBgConfigs2[bg].tilemap + ((var * i) + j)) = *(u8*)(srcPtr) + tileOffset;
srcPtr++;
}
- srcPtr += (srcWidth - destY);
+ srcPtr += (srcWidth - rectWidth);
}
break;
}
diff --git a/src/bike.c b/src/bike.c
index b1d39ca21..4a8bf1d4e 100644
--- a/src/bike.c
+++ b/src/bike.c
@@ -9,48 +9,48 @@
#include "constants/map_types.h"
#include "constants/songs.h"
-static u8 GetMovePlayerOnBikeFuncId(u8 *, u16, u16);
-static void sub_80BD664(void);
-static u8 BikeCanFaceDIrectionOnRail(u8, u8);
-static u8 CheckNextTileForBikingCollision(u8);
-static u8 AdjustCollisionForBiking(struct ObjectEvent *, s16, s16, u8, u8);
+static u8 GetBikeTransitionId(u8 *, u16, u16);
+static void Bike_SetBikeStill(void);
+static u8 CanBikeFaceDirectionOnRail(u8 direction, u8 metatileBehavior);
+static u8 GetBikeCollision(u8);
+static u8 GetBikeCollisionAt(struct ObjectEvent *playerObjEvent, s16 x, s16 y, u8 direction, u8 metatileBehavior);
static bool8 MetatileBehaviorForbidsBiking(u8);
-static void BikeFaceDirection(u8);
-static void BikeFaceDirectionAccountForRail(u8);
-static void BikeTryMoveFastInDirection(u8);
-static void BikeLetGravityTakeTheWheel(u8);
-static void BikeTryMoveInDirection(u8);
-static u8 GetBikeMoveCmd_0(u8 *, u16, u16);
-static u8 GetBikeMoveCmd_1(u8 *, u16, u16);
-static u8 GetBikeMoveCmd_2(u8 *, u16, u16);
-
-static void (*const sMovePlayerOnBikeFuncs[])(u8) =
+static void BikeTransition_FaceDirection(u8);
+static void BikeTransition_TurnDirection(u8);
+static void BikeTransition_MoveDirection(u8);
+static void BikeTransition_Downhill(u8);
+static void BikeTransition_Uphill(u8);
+static u8 BikeInputHandler_Normal(u8 *, u16, u16);
+static u8 BikeInputHandler_Turning(u8 *, u16, u16);
+static u8 BikeInputHandler_Slope(u8 *, u16, u16);
+
+static void (*const sBikeTransitions[])(u8) =
{
- BikeFaceDirection,
- BikeFaceDirectionAccountForRail,
- BikeTryMoveFastInDirection,
- BikeLetGravityTakeTheWheel,
- BikeTryMoveInDirection,
+ [BIKE_TRANS_FACE_DIRECTION] = BikeTransition_FaceDirection,
+ [BIKE_TRANS_TURNING] = BikeTransition_TurnDirection,
+ [BIKE_TRANS_MOVE] = BikeTransition_MoveDirection,
+ [BIKE_TRANS_DOWNHILL] = BikeTransition_Downhill,
+ [BIKE_TRANS_UPHILL] = BikeTransition_Uphill,
};
-static u8 (*const sGetMovePlayerOnBikeFuncIdFuncs[])(u8 *, u16, u16) =
+static u8 (*const sBikeInputHandlers[])(u8 *, u16, u16) =
{
- GetBikeMoveCmd_0,
- GetBikeMoveCmd_1,
- GetBikeMoveCmd_2,
+ [BIKE_STATE_NORMAL] = BikeInputHandler_Normal,
+ [BIKE_STATE_TURNING] = BikeInputHandler_Turning,
+ [BIKE_STATE_SLOPE] = BikeInputHandler_Slope,
};
void MovePlayerOnBike(u8 direction, u16 newKeys, u16 heldKeys)
{
- sMovePlayerOnBikeFuncs[GetMovePlayerOnBikeFuncId(&direction, newKeys, heldKeys)](direction);
+ sBikeTransitions[GetBikeTransitionId(&direction, newKeys, heldKeys)](direction);
}
-static u8 GetMovePlayerOnBikeFuncId(u8 *direction, u16 newKeys, u16 heldKeys)
+static u8 GetBikeTransitionId(u8 *direction, u16 newKeys, u16 heldKeys)
{
- return sGetMovePlayerOnBikeFuncIdFuncs[gPlayerAvatar.acroBikeState](direction, newKeys, heldKeys);
+ return sBikeInputHandlers[gPlayerAvatar.acroBikeState](direction, newKeys, heldKeys);
}
-static u8 GetBikeMoveCmd_0(u8 *direction_p, u16 newKeys, u16 heldKeys)
+static u8 BikeInputHandler_Normal(u8 *direction_p, u16 newKeys, u16 heldKeys)
{
struct ObjectEvent *playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
u8 direction = GetPlayerMovementDirection();
@@ -60,64 +60,56 @@ static u8 GetBikeMoveCmd_0(u8 *direction_p, u16 newKeys, u16 heldKeys)
{
if (!JOY_HELD(B_BUTTON))
{
- gPlayerAvatar.acroBikeState = ACRO_STATE_WHEELIE_STANDING;
- gPlayerAvatar.runningState = 2;
+ gPlayerAvatar.acroBikeState = BIKE_STATE_SLOPE;
+ gPlayerAvatar.runningState = MOVING;
if (*direction_p < DIR_NORTH)
- return 3;
+ return BIKE_TRANS_DOWNHILL;
else
- return 4;
+ return BIKE_TRANS_UPHILL;
}
else
{
if (*direction_p != DIR_NONE)
{
- gPlayerAvatar.acroBikeState = ACRO_STATE_WHEELIE_STANDING;
- gPlayerAvatar.runningState = 2;
- return 4;
- }
- else
- {
- goto _080BD17E; // for matching purpose
+ gPlayerAvatar.acroBikeState = BIKE_STATE_SLOPE;
+ gPlayerAvatar.runningState = MOVING;
+ return BIKE_TRANS_UPHILL;
}
}
}
+ if (*direction_p == DIR_NONE)
+ {
+ *direction_p = direction;
+ gPlayerAvatar.runningState = NOT_MOVING;
+ return BIKE_TRANS_FACE_DIRECTION;
+ }
else
{
- if (*direction_p == DIR_NONE)
+ if (*direction_p != direction && gPlayerAvatar.runningState != MOVING)
{
- _080BD17E:
- *direction_p = direction;
- gPlayerAvatar.runningState = 0;
- return 0;
+ gPlayerAvatar.acroBikeState = BIKE_STATE_TURNING;
+ gPlayerAvatar.newDirBackup = *direction_p;
+ gPlayerAvatar.runningState = NOT_MOVING;
+ return GetBikeTransitionId(direction_p, newKeys, heldKeys);
}
else
{
- if (*direction_p != direction && gPlayerAvatar.runningState != 2)
- {
- gPlayerAvatar.acroBikeState = ACRO_STATE_TURNING;
- gPlayerAvatar.newDirBackup = *direction_p;
- gPlayerAvatar.runningState = 0;
- return GetMovePlayerOnBikeFuncId(direction_p, newKeys, heldKeys);
- }
- else
- {
- gPlayerAvatar.runningState = 2;
- return 2;
- }
+ gPlayerAvatar.runningState = MOVING;
+ return BIKE_TRANS_MOVE;
}
}
}
-static u8 GetBikeMoveCmd_1(u8 *direction_p, UNUSED u16 newKeys, UNUSED u16 heldKeys)
+static u8 BikeInputHandler_Turning(u8 *direction_p, UNUSED u16 newKeys, UNUSED u16 heldKeys)
{
*direction_p = gPlayerAvatar.newDirBackup;
- gPlayerAvatar.runningState = 1;
- gPlayerAvatar.acroBikeState = ACRO_STATE_NORMAL;
- sub_80BD664();
- return 1;
+ gPlayerAvatar.runningState = TURN_DIRECTION;
+ gPlayerAvatar.acroBikeState = BIKE_STATE_NORMAL;
+ Bike_SetBikeStill();
+ return BIKE_TRANS_TURNING;
}
-static u8 GetBikeMoveCmd_2(u8 *direction_p, u16 newKeys, u16 heldKeys)
+static u8 BikeInputHandler_Slope(u8 *direction_p, u16 newKeys, u16 heldKeys)
{
u8 direction = GetPlayerMovementDirection();
u8 playerObjEventId = gPlayerAvatar.objectEventId;
@@ -125,64 +117,61 @@ static u8 GetBikeMoveCmd_2(u8 *direction_p, u16 newKeys, u16 heldKeys)
{
if (*direction_p != direction)
{
- gPlayerAvatar.acroBikeState = ACRO_STATE_TURNING;
+ gPlayerAvatar.acroBikeState = BIKE_STATE_TURNING;
gPlayerAvatar.newDirBackup = *direction_p;
- gPlayerAvatar.runningState = 0;
- return GetMovePlayerOnBikeFuncId(direction_p, newKeys, heldKeys);
+ gPlayerAvatar.runningState = NOT_MOVING;
+ return GetBikeTransitionId(direction_p, newKeys, heldKeys);
}
else
{
- gPlayerAvatar.runningState = 2;
- gPlayerAvatar.acroBikeState = ACRO_STATE_WHEELIE_STANDING;
+ gPlayerAvatar.runningState = MOVING;
+ gPlayerAvatar.acroBikeState = BIKE_STATE_SLOPE;
if (*direction_p < DIR_NORTH)
- return 3;
+ return BIKE_TRANS_DOWNHILL;
else
- return 4;
+ return BIKE_TRANS_UPHILL;
}
}
+ gPlayerAvatar.acroBikeState = BIKE_STATE_NORMAL;
+ if (*direction_p == DIR_NONE)
+ {
+ *direction_p = direction;
+ gPlayerAvatar.runningState = NOT_MOVING;
+ return BIKE_TRANS_FACE_DIRECTION;
+ }
else
{
- gPlayerAvatar.acroBikeState = ACRO_STATE_NORMAL;
- if (*direction_p == DIR_NONE)
- {
- *direction_p = direction;
- gPlayerAvatar.runningState = 0;
- return 0;
- }
- else
- {
- gPlayerAvatar.runningState = 2;
- return 2;
- }
+ gPlayerAvatar.runningState = MOVING;
+ return BIKE_TRANS_MOVE;
}
}
-static void BikeFaceDirection(u8 direction)
+static void BikeTransition_FaceDirection(u8 direction)
{
PlayerFaceDirection(direction);
}
-static void BikeFaceDirectionAccountForRail(u8 direction)
+static void BikeTransition_TurnDirection(u8 direction)
{
struct ObjectEvent *playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
- if (!BikeCanFaceDIrectionOnRail(direction, playerObjEvent->currentMetatileBehavior))
+ if (!CanBikeFaceDirectionOnRail(direction, playerObjEvent->currentMetatileBehavior))
direction = playerObjEvent->movementDirection;
PlayerFaceDirection(direction);
}
-static void BikeTryMoveFastInDirection(u8 direction)
+static void BikeTransition_MoveDirection(u8 direction)
{
struct ObjectEvent *playerObjEvent;
playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
- if (!BikeCanFaceDIrectionOnRail(direction, playerObjEvent->currentMetatileBehavior))
+ if (!CanBikeFaceDirectionOnRail(direction, playerObjEvent->currentMetatileBehavior))
{
- BikeFaceDirection(playerObjEvent->movementDirection);
+ BikeTransition_FaceDirection(playerObjEvent->movementDirection);
}
else
{
- u8 collision = CheckNextTileForBikingCollision(direction);
+ u8 collision = GetBikeCollision(direction);
if (collision > COLLISION_NONE && collision <= COLLISION_ISOLATED_HORIZONTAL_RAIL)
{
@@ -204,9 +193,9 @@ static void BikeTryMoveFastInDirection(u8 direction)
}
}
-static void BikeLetGravityTakeTheWheel(UNUSED u8 v)
+static void BikeTransition_Downhill(UNUSED u8 v)
{
- u8 collision = CheckNextTileForBikingCollision(DIR_SOUTH);
+ u8 collision = GetBikeCollision(DIR_SOUTH);
if (collision == COLLISION_NONE)
sub_805C164(DIR_SOUTH);
@@ -214,13 +203,13 @@ static void BikeLetGravityTakeTheWheel(UNUSED u8 v)
PlayerJumpLedge(DIR_SOUTH);
}
-static void BikeTryMoveInDirection(u8 direction)
+static void BikeTransition_Uphill(u8 direction)
{
- if (CheckNextTileForBikingCollision(direction) == COLLISION_NONE)
+ if (GetBikeCollision(direction) == COLLISION_NONE)
PlayerGoSpeed1(direction);
}
-static u8 CheckNextTileForBikingCollision(u8 direction)
+static u8 GetBikeCollision(u8 direction)
{
struct ObjectEvent *playerObjEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
s16 x, y;
@@ -230,10 +219,10 @@ static u8 CheckNextTileForBikingCollision(u8 direction)
y = playerObjEvent->currentCoords.y;
MoveCoords(direction, &x, &y);
metatileBehavior = MapGridGetMetatileBehaviorAt(x, y);
- return AdjustCollisionForBiking(playerObjEvent, x, y, direction, metatileBehavior);
+ return GetBikeCollisionAt(playerObjEvent, x, y, direction, metatileBehavior);
}
-static u8 AdjustCollisionForBiking(struct ObjectEvent *playerObjEvent, s16 x, s16 y, u8 direction, u8 metatileBehavior)
+static u8 GetBikeCollisionAt(struct ObjectEvent *playerObjEvent, s16 x, s16 y, u8 direction, u8 metatileBehavior)
{
u8 retVal = CheckForObjectEventCollision(playerObjEvent, x, y, direction, metatileBehavior);
@@ -248,7 +237,7 @@ static u8 AdjustCollisionForBiking(struct ObjectEvent *playerObjEvent, s16 x, s1
return retVal;
}
-bool8 sub_80BD460(u8 r0)
+bool8 RS_IsRunningDisallowed(u8 r0)
{
if (MetatileBehaviorForbidsBiking(r0))
return TRUE;
@@ -270,16 +259,16 @@ bool32 IsRunningDisallowed(u8 metatileBehavior)
static bool8 MetatileBehaviorForbidsBiking(u8 metatileBehavior)
{
- if (MetatileBehavior_IsMB0A(metatileBehavior))
+ if (MetatileBehavior_IsRunningDisallowed(metatileBehavior))
return TRUE;
- if (!MetatileBehavior_ReturnFalse_9(metatileBehavior))
+ if (!MetatileBehavior_IsFortreeBridge(metatileBehavior))
return FALSE;
if (PlayerGetZCoord() & 1)
return FALSE;
return TRUE;
}
-static bool8 BikeCanFaceDIrectionOnRail(u8 direction, u8 metatileBehavior)
+static bool8 CanBikeFaceDirectionOnRail(u8 direction, u8 metatileBehavior)
{
if (direction == DIR_EAST || direction == DIR_WEST)
{
@@ -294,7 +283,7 @@ static bool8 BikeCanFaceDIrectionOnRail(u8 direction, u8 metatileBehavior)
return TRUE;
}
-bool8 MetatileAtPlayerPositionForbidsBiking(void)
+bool8 IsBikingDisallowedByPlayer(void)
{
s16 x, y;
u8 metatileBehavior;
@@ -309,9 +298,9 @@ bool8 MetatileAtPlayerPositionForbidsBiking(void)
return TRUE;
}
-bool8 player_should_look_direction_be_enforced_upon_movement(void)
+bool8 IsPlayerNotUsingAcroBikeOnBumpySlope(void)
{
- if (TestPlayerAvatarFlags(PLAYER_AVATAR_STATE_UNDERWATER))
+ if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_ACRO_BIKE))
{
if (MetatileBehavior_IsBumpySlope(gObjectEvents[gPlayerAvatar.objectEventId].currentMetatileBehavior))
return FALSE;
@@ -319,7 +308,7 @@ bool8 player_should_look_direction_be_enforced_upon_movement(void)
return TRUE;
}
-void StartTransitionToFlipBikeState(u8 flags)
+void GetOnOffBike(u8 flags)
{
gBikeCameraAheadPanback = FALSE;
if (gPlayerAvatar.flags & (PLAYER_AVATAR_FLAG_MACH_BIKE | PLAYER_AVATAR_FLAG_ACRO_BIKE))
@@ -339,11 +328,11 @@ void StartTransitionToFlipBikeState(u8 flags)
}
}
-void InitPlayerAvatarBikeState(u32 directionHistory, u32 abStartSelectHistory)
+void BikeClearState(u32 directionHistory, u32 abStartSelectHistory)
{
u8 i;
- gPlayerAvatar.acroBikeState = ACRO_STATE_NORMAL;
+ gPlayerAvatar.acroBikeState = BIKE_STATE_NORMAL;
gPlayerAvatar.newDirBackup = 0;
gPlayerAvatar.bikeFrameCounter = 0;
gPlayerAvatar.bikeSpeed = SPEED_STANDING;
@@ -360,7 +349,7 @@ void Bike_UpdateBikeCounterSpeed(u8 counter)
gPlayerAvatar.bikeSpeed = counter + (gPlayerAvatar.bikeFrameCounter >> 1);
}
-static void sub_80BD664(void)
+static void Bike_SetBikeStill(void)
{
gPlayerAvatar.bikeFrameCounter = 0;
gPlayerAvatar.bikeSpeed = SPEED_STANDING;
@@ -368,16 +357,16 @@ static void sub_80BD664(void)
s16 GetPlayerSpeed(void)
{
- s16 exp[] = { 1, 2, 4 };
+ s16 machBikeSpeeds[] = { SPEED_NORMAL, SPEED_FAST, SPEED_FASTEST };
if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_MACH_BIKE)
- return exp[gPlayerAvatar.bikeFrameCounter];
+ return machBikeSpeeds[gPlayerAvatar.bikeFrameCounter];
else if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_ACRO_BIKE)
- return 3;
+ return SPEED_FASTER;
else if (gPlayerAvatar.flags & (PLAYER_AVATAR_FLAG_SURFING | PLAYER_AVATAR_FLAG_DASH))
- return 2;
+ return SPEED_FAST;
else
- return 1;
+ return SPEED_NORMAL;
}
void Bike_HandleBumpySlopeJump(void)
@@ -391,8 +380,8 @@ void Bike_HandleBumpySlopeJump(void)
tileBehavior = MapGridGetMetatileBehaviorAt(x, y);
if (MetatileBehavior_IsBumpySlope(tileBehavior))
{
- gPlayerAvatar.acroBikeState = ACRO_STATE_WHEELIE_STANDING;
- nullsub_24(GetPlayerMovementDirection());
+ gPlayerAvatar.acroBikeState = BIKE_STATE_SLOPE;
+ PlayerUseAcroBikeOnBumpySlope(GetPlayerMovementDirection());
}
}
}
diff --git a/src/clear_save_data_screen.c b/src/clear_save_data_screen.c
index b2f106594..74e48be00 100644
--- a/src/clear_save_data_screen.c
+++ b/src/clear_save_data_screen.c
@@ -55,8 +55,8 @@ static const struct WindowTemplate sWindowTemplates[] = {
static const u8 sTextColor[] = {
TEXT_COLOR_WHITE,
- TEXT_COLOR_DARK_GREY,
- TEXT_COLOR_LIGHT_GREY
+ TEXT_COLOR_DARK_GRAY,
+ TEXT_COLOR_LIGHT_GRAY
};
static void CB2_RunClearSaveDataScreen(void)
diff --git a/src/data/object_events/movement_action_func_tables.h b/src/data/object_events/movement_action_func_tables.h
index 701167500..b91cd8284 100644
--- a/src/data/object_events/movement_action_func_tables.h
+++ b/src/data/object_events/movement_action_func_tables.h
@@ -463,176 +463,176 @@ static u8 GetMoveDirectionFasterAnimNum(u8 direction);
static u8 GetMoveDirectionFastestAnimNum(u8 direction);
bool8 (*const *const gMovementActionFuncs[])(struct ObjectEvent *, struct Sprite *) = {
- sMovementActionFuncs_x00,
- sMovementActionFuncs_x01,
- sMovementActionFuncs_x02,
- sMovementActionFuncs_x03,
- sMovementActionFuncs_x04,
- sMovementActionFuncs_x05,
- sMovementActionFuncs_x06,
- sMovementActionFuncs_x07,
- sMovementActionFuncs_x08,
- sMovementActionFuncs_x09,
- sMovementActionFuncs_x0A,
- sMovementActionFuncs_x0B,
- sMovementActionFuncs_x0C,
- sMovementActionFuncs_x0D,
- sMovementActionFuncs_x0E,
- sMovementActionFuncs_x0F,
- sMovementActionFuncs_x10,
- sMovementActionFuncs_x11,
- sMovementActionFuncs_x12,
- sMovementActionFuncs_x13,
- sMovementActionFuncs_x14,
- sMovementActionFuncs_x15,
- sMovementActionFuncs_x16,
- sMovementActionFuncs_x17,
- sMovementActionFuncs_x18,
- sMovementActionFuncs_x19,
- sMovementActionFuncs_x1A,
- sMovementActionFuncs_x1B,
- sMovementActionFuncs_x1C,
- sMovementActionFuncs_x1D,
- sMovementActionFuncs_x1E,
- sMovementActionFuncs_x1F,
- sMovementActionFuncs_x20,
- sMovementActionFuncs_x21,
- sMovementActionFuncs_x22,
- sMovementActionFuncs_x23,
- sMovementActionFuncs_x24,
- sMovementActionFuncs_x25,
- sMovementActionFuncs_x26,
- sMovementActionFuncs_x27,
- sMovementActionFuncs_x28,
- sMovementActionFuncs_x29,
- sMovementActionFuncs_x2A,
- sMovementActionFuncs_x2B,
- sMovementActionFuncs_x2C,
- sMovementActionFuncs_x2D,
- sMovementActionFuncs_x2E,
- sMovementActionFuncs_x2F,
- sMovementActionFuncs_x30,
- sMovementActionFuncs_x31,
- sMovementActionFuncs_x32,
- sMovementActionFuncs_x33,
- sMovementActionFuncs_x34,
- sMovementActionFuncs_x35,
- sMovementActionFuncs_x36,
- sMovementActionFuncs_x37,
- sMovementActionFuncs_x38,
- sMovementActionFuncs_x39,
- sMovementActionFuncs_x3A,
- sMovementActionFuncs_x3B,
- sMovementActionFuncs_x3C,
- sMovementActionFuncs_x3D,
- sMovementActionFuncs_x3E,
- sMovementActionFuncs_x3F,
- sMovementActionFuncs_x40,
- sMovementActionFuncs_x41,
- sMovementActionFuncs_x42,
- sMovementActionFuncs_x43,
- sMovementActionFuncs_x44,
- sMovementActionFuncs_x45,
- sMovementActionFuncs_x46,
- sMovementActionFuncs_x47,
- sMovementActionFuncs_x48,
- sMovementActionFuncs_x49,
- sMovementActionFuncs_x4A,
- sMovementActionFuncs_x4B,
- sMovementActionFuncs_x4C,
- sMovementActionFuncs_x4D,
- sMovementActionFuncs_x4E,
- sMovementActionFuncs_x4F,
- sMovementActionFuncs_x50,
- sMovementActionFuncs_x51,
- sMovementActionFuncs_x52,
- sMovementActionFuncs_x53,
- sMovementActionFuncs_x54,
- sMovementActionFuncs_x55,
- sMovementActionFuncs_x56,
- sMovementActionFuncs_x57,
- sMovementActionFuncs_x58,
- sMovementActionFuncs_x59,
- sMovementActionFuncs_x5A,
- sMovementActionFuncs_x5B,
- sMovementActionFuncs_x5C,
- sMovementActionFuncs_x5D,
- sMovementActionFuncs_x5E,
- sMovementActionFuncs_x5F,
- sMovementActionFuncs_x60,
- sMovementActionFuncs_x61,
- sMovementActionFuncs_x62,
- sMovementActionFuncs_x63,
- sMovementActionFuncs_x64,
- sMovementActionFuncs_x65,
- sMovementActionFuncs_x66,
- sMovementActionFuncs_x67,
- sMovementActionFuncs_x68,
- sMovementActionFuncs_x69,
- sMovementActionFuncs_x6A,
- sMovementActionFuncs_x6B,
- sMovementActionFuncs_x6C,
- sMovementActionFuncs_x6D,
- sMovementActionFuncs_x6E,
- sMovementActionFuncs_x6F,
- sMovementActionFuncs_x70,
- sMovementActionFuncs_x71,
- sMovementActionFuncs_x72,
- sMovementActionFuncs_x73,
- sMovementActionFuncs_x74,
- sMovementActionFuncs_x75,
- sMovementActionFuncs_x76,
- sMovementActionFuncs_x77,
- sMovementActionFuncs_x78,
- sMovementActionFuncs_x79,
- sMovementActionFuncs_x7A,
- sMovementActionFuncs_x7B,
- sMovementActionFuncs_x7C,
- sMovementActionFuncs_x7D,
- sMovementActionFuncs_x7E,
- sMovementActionFuncs_x7F,
- sMovementActionFuncs_x80,
- sMovementActionFuncs_x81,
- sMovementActionFuncs_x82,
- sMovementActionFuncs_x83,
- sMovementActionFuncs_x84,
- sMovementActionFuncs_x85,
- sMovementActionFuncs_x86,
- sMovementActionFuncs_x87,
- sMovementActionFuncs_x88,
- sMovementActionFuncs_x89,
- sMovementActionFuncs_x8A,
- sMovementActionFuncs_x8B,
- sMovementActionFuncs_x8C,
- sMovementActionFuncs_x8D,
- sMovementActionFuncs_x8E,
- sMovementActionFuncs_x8F,
- sMovementActionFuncs_x90,
- sMovementActionFuncs_x91,
- sMovementActionFuncs_x92,
- sMovementActionFuncs_x93,
- sMovementActionFuncs_x94,
- sMovementActionFuncs_x95,
- sMovementActionFuncs_x96,
- sMovementActionFuncs_x97,
- sMovementActionFuncs_x98,
- sMovementActionFuncs_x99,
- sMovementActionFuncs_x9A,
- sMovementActionFuncs_x9B,
- sMovementActionFuncs_x9C,
- sMovementActionFuncs_x9D,
- sMovementActionFuncs_x9E,
- sMovementActionFuncs_x9F,
- sMovementActionFuncs_xA0,
- sMovementActionFuncs_xA1,
- sMovementActionFuncs_xA2,
- sMovementActionFuncs_xA3,
- sMovementActionFuncs_xA4,
- sMovementActionFuncs_xA5,
- sMovementActionFuncs_xA6,
- sMovementActionFuncs_xA7,
- sMovementActionFuncs_xA8,
- sMovementActionFuncs_xA9,
+ [MOVEMENT_ACTION_FACE_DOWN] = sMovementActionFuncs_x00,
+ [MOVEMENT_ACTION_FACE_UP] = sMovementActionFuncs_x01,
+ [MOVEMENT_ACTION_FACE_LEFT] = sMovementActionFuncs_x02,
+ [MOVEMENT_ACTION_FACE_RIGHT] = sMovementActionFuncs_x03,
+ [MOVEMENT_ACTION_FACE_DOWN_FAST] = sMovementActionFuncs_x04,
+ [MOVEMENT_ACTION_FACE_UP_FAST] = sMovementActionFuncs_x05,
+ [MOVEMENT_ACTION_FACE_LEFT_FAST] = sMovementActionFuncs_x06,
+ [MOVEMENT_ACTION_FACE_RIGHT_FAST] = sMovementActionFuncs_x07,
+ [MOVEMENT_ACTION_WALK_SLOWEST_DOWN] = sMovementActionFuncs_x08,
+ [MOVEMENT_ACTION_WALK_SLOWEST_UP] = sMovementActionFuncs_x09,
+ [MOVEMENT_ACTION_WALK_SLOWEST_LEFT] = sMovementActionFuncs_x0A,
+ [MOVEMENT_ACTION_WALK_SLOWEST_RIGHT] = sMovementActionFuncs_x0B,
+ [MOVEMENT_ACTION_WALK_SLOW_DOWN] = sMovementActionFuncs_x0C,
+ [MOVEMENT_ACTION_WALK_SLOW_UP] = sMovementActionFuncs_x0D,
+ [MOVEMENT_ACTION_WALK_SLOW_LEFT] = sMovementActionFuncs_x0E,
+ [MOVEMENT_ACTION_WALK_SLOW_RIGHT] = sMovementActionFuncs_x0F,
+ [MOVEMENT_ACTION_WALK_NORMAL_DOWN] = sMovementActionFuncs_x10,
+ [MOVEMENT_ACTION_WALK_NORMAL_UP] = sMovementActionFuncs_x11,
+ [MOVEMENT_ACTION_WALK_NORMAL_LEFT] = sMovementActionFuncs_x12,
+ [MOVEMENT_ACTION_WALK_NORMAL_RIGHT] = sMovementActionFuncs_x13,
+ [MOVEMENT_ACTION_JUMP_2_DOWN] = sMovementActionFuncs_x14,
+ [MOVEMENT_ACTION_JUMP_2_UP] = sMovementActionFuncs_x15,
+ [MOVEMENT_ACTION_JUMP_2_LEFT] = sMovementActionFuncs_x16,
+ [MOVEMENT_ACTION_JUMP_2_RIGHT] = sMovementActionFuncs_x17,
+ [MOVEMENT_ACTION_DELAY_1] = sMovementActionFuncs_x18,
+ [MOVEMENT_ACTION_DELAY_2] = sMovementActionFuncs_x19,
+ [MOVEMENT_ACTION_DELAY_4] = sMovementActionFuncs_x1A,
+ [MOVEMENT_ACTION_DELAY_8] = sMovementActionFuncs_x1B,
+ [MOVEMENT_ACTION_DELAY_16] = sMovementActionFuncs_x1C,
+ [MOVEMENT_ACTION_WALK_FAST_DOWN] = sMovementActionFuncs_x1D,
+ [MOVEMENT_ACTION_WALK_FAST_UP] = sMovementActionFuncs_x1E,
+ [MOVEMENT_ACTION_WALK_FAST_LEFT] = sMovementActionFuncs_x1F,
+ [MOVEMENT_ACTION_WALK_FAST_RIGHT] = sMovementActionFuncs_x20,
+ [MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_DOWN] = sMovementActionFuncs_x21,
+ [MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_UP] = sMovementActionFuncs_x22,
+ [MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_LEFT] = sMovementActionFuncs_x23,
+ [MOVEMENT_ACTION_WALK_IN_PLACE_SLOW_RIGHT] = sMovementActionFuncs_x24,
+ [MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_DOWN] = sMovementActionFuncs_x25,
+ [MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_UP] = sMovementActionFuncs_x26,
+ [MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_LEFT] = sMovementActionFuncs_x27,
+ [MOVEMENT_ACTION_WALK_IN_PLACE_NORMAL_RIGHT] = sMovementActionFuncs_x28,
+ [MOVEMENT_ACTION_WALK_IN_PLACE_FAST_DOWN] = sMovementActionFuncs_x29,
+ [MOVEMENT_ACTION_WALK_IN_PLACE_FAST_UP] = sMovementActionFuncs_x2A,
+ [MOVEMENT_ACTION_WALK_IN_PLACE_FAST_LEFT] = sMovementActionFuncs_x2B,
+ [MOVEMENT_ACTION_WALK_IN_PLACE_FAST_RIGHT] = sMovementActionFuncs_x2C,
+ [MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_DOWN] = sMovementActionFuncs_x2D,
+ [MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_UP] = sMovementActionFuncs_x2E,
+ [MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_LEFT] = sMovementActionFuncs_x2F,
+ [MOVEMENT_ACTION_WALK_IN_PLACE_FASTEST_RIGHT] = sMovementActionFuncs_x30,
+ [MOVEMENT_ACTION_FACE_DOWN_SLOW] = sMovementActionFuncs_x31,
+ [MOVEMENT_ACTION_FACE_UP_SLOW] = sMovementActionFuncs_x32,
+ [MOVEMENT_ACTION_FACE_LEFT_SLOW] = sMovementActionFuncs_x33,
+ [MOVEMENT_ACTION_FACE_RIGHT_SLOW] = sMovementActionFuncs_x34,
+ [MOVEMENT_ACTION_WALK_FASTEST_DOWN] = sMovementActionFuncs_x35,
+ [MOVEMENT_ACTION_WALK_FASTEST_UP] = sMovementActionFuncs_x36,
+ [MOVEMENT_ACTION_WALK_FASTEST_LEFT] = sMovementActionFuncs_x37,
+ [MOVEMENT_ACTION_WALK_FASTEST_RIGHT] = sMovementActionFuncs_x38,
+ [MOVEMENT_ACTION_SLIDE_DOWN] = sMovementActionFuncs_x39,
+ [MOVEMENT_ACTION_SLIDE_UP] = sMovementActionFuncs_x3A,
+ [MOVEMENT_ACTION_SLIDE_LEFT] = sMovementActionFuncs_x3B,
+ [MOVEMENT_ACTION_SLIDE_RIGHT] = sMovementActionFuncs_x3C,
+ [MOVEMENT_ACTION_PLAYER_RUN_DOWN] = sMovementActionFuncs_x3D,
+ [MOVEMENT_ACTION_PLAYER_RUN_UP] = sMovementActionFuncs_x3E,
+ [MOVEMENT_ACTION_PLAYER_RUN_LEFT] = sMovementActionFuncs_x3F,
+ [MOVEMENT_ACTION_PLAYER_RUN_RIGHT] = sMovementActionFuncs_x40,
+ [MOVEMENT_ACTION_PLAYER_RUN_DOWN_SLOW] = sMovementActionFuncs_x41,
+ [MOVEMENT_ACTION_PLAYER_RUN_UP_SLOW] = sMovementActionFuncs_x42,
+ [MOVEMENT_ACTION_PLAYER_RUN_LEFT_SLOW] = sMovementActionFuncs_x43,
+ [MOVEMENT_ACTION_PLAYER_RUN_RIGHT_SLOW] = sMovementActionFuncs_x44,
+ [MOVEMENT_ACTION_START_ANIM_IN_DIRECTION] = sMovementActionFuncs_x45,
+ [MOVEMENT_ACTION_JUMP_SPECIAL_DOWN] = sMovementActionFuncs_x46,
+ [MOVEMENT_ACTION_JUMP_SPECIAL_UP] = sMovementActionFuncs_x47,
+ [MOVEMENT_ACTION_JUMP_SPECIAL_LEFT] = sMovementActionFuncs_x48,
+ [MOVEMENT_ACTION_JUMP_SPECIAL_RIGHT] = sMovementActionFuncs_x49,
+ [MOVEMENT_ACTION_FACE_PLAYER] = sMovementActionFuncs_x4A,
+ [MOVEMENT_ACTION_FACE_AWAY_PLAYER] = sMovementActionFuncs_x4B,
+ [MOVEMENT_ACTION_LOCK_FACING_DIRECTION] = sMovementActionFuncs_x4C,
+ [MOVEMENT_ACTION_UNLOCK_FACING_DIRECTION] = sMovementActionFuncs_x4D,
+ [MOVEMENT_ACTION_JUMP_DOWN] = sMovementActionFuncs_x4E,
+ [MOVEMENT_ACTION_JUMP_UP] = sMovementActionFuncs_x4F,
+ [MOVEMENT_ACTION_JUMP_LEFT] = sMovementActionFuncs_x50,
+ [MOVEMENT_ACTION_JUMP_RIGHT] = sMovementActionFuncs_x51,
+ [MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN] = sMovementActionFuncs_x52,
+ [MOVEMENT_ACTION_JUMP_IN_PLACE_UP] = sMovementActionFuncs_x53,
+ [MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT] = sMovementActionFuncs_x54,
+ [MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT] = sMovementActionFuncs_x55,
+ [MOVEMENT_ACTION_JUMP_IN_PLACE_DOWN_UP] = sMovementActionFuncs_x56,
+ [MOVEMENT_ACTION_JUMP_IN_PLACE_UP_DOWN] = sMovementActionFuncs_x57,
+ [MOVEMENT_ACTION_JUMP_IN_PLACE_LEFT_RIGHT] = sMovementActionFuncs_x58,
+ [MOVEMENT_ACTION_JUMP_IN_PLACE_RIGHT_LEFT] = sMovementActionFuncs_x59,
+ [MOVEMENT_ACTION_FACE_ORIGINAL_DIRECTION] = sMovementActionFuncs_x5A,
+ [MOVEMENT_ACTION_NURSE_JOY_BOW_DOWN] = sMovementActionFuncs_x5B,
+ [MOVEMENT_ACTION_ENABLE_JUMP_LANDING_GROUND_EFFECT] = sMovementActionFuncs_x5C,
+ [MOVEMENT_ACTION_DISABLE_JUMP_LANDING_GROUND_EFFECT] = sMovementActionFuncs_x5D,
+ [MOVEMENT_ACTION_DISABLE_ANIMATION] = sMovementActionFuncs_x5E,
+ [MOVEMENT_ACTION_RESTORE_ANIMATION] = sMovementActionFuncs_x5F,
+ [MOVEMENT_ACTION_SET_INVISIBLE] = sMovementActionFuncs_x60,
+ [MOVEMENT_ACTION_SET_VISIBLE] = sMovementActionFuncs_x61,
+ [MOVEMENT_ACTION_EMOTE_EXCLAMATION_MARK] = sMovementActionFuncs_x62,
+ [MOVEMENT_ACTION_EMOTE_QUESTION_MARK] = sMovementActionFuncs_x63,
+ [MOVEMENT_ACTION_EMOTE_X] = sMovementActionFuncs_x64,
+ [MOVEMENT_ACTION_EMOTE_DOUBLE_EXCL_MARK] = sMovementActionFuncs_x65,
+ [MOVEMENT_ACTION_EMOTE_SMILE] = sMovementActionFuncs_x66,
+ [MOVEMENT_ACTION_REVEAL_TRAINER] = sMovementActionFuncs_x67,
+ [MOVEMENT_ACTION_ROCK_SMASH_BREAK] = sMovementActionFuncs_x68,
+ [MOVEMENT_ACTION_CUT_TREE] = sMovementActionFuncs_x69,
+ [MOVEMENT_ACTION_SET_FIXED_PRIORITY] = sMovementActionFuncs_x6A,
+ [MOVEMENT_ACTION_CLEAR_FIXED_PRIORITY] = sMovementActionFuncs_x6B,
+ [MOVEMENT_ACTION_INIT_AFFINE_ANIM] = sMovementActionFuncs_x6C,
+ [MOVEMENT_ACTION_CLEAR_AFFINE_ANIM] = sMovementActionFuncs_x6D,
+ [MOVEMENT_ACTION_WALK_DOWN_START_AFFINE] = sMovementActionFuncs_x6E,
+ [MOVEMENT_ACTION_WALK_DOWN_AFFINE] = sMovementActionFuncs_x6F,
+ [MOVEMENT_ACTION_ACRO_WHEELIE_FACE_DOWN] = sMovementActionFuncs_x70,
+ [MOVEMENT_ACTION_ACRO_WHEELIE_FACE_UP] = sMovementActionFuncs_x71,
+ [MOVEMENT_ACTION_ACRO_WHEELIE_FACE_LEFT] = sMovementActionFuncs_x72,
+ [MOVEMENT_ACTION_ACRO_WHEELIE_FACE_RIGHT] = sMovementActionFuncs_x73,
+ [MOVEMENT_ACTION_ACRO_POP_WHEELIE_DOWN] = sMovementActionFuncs_x74,
+ [MOVEMENT_ACTION_ACRO_POP_WHEELIE_UP] = sMovementActionFuncs_x75,
+ [MOVEMENT_ACTION_ACRO_POP_WHEELIE_LEFT] = sMovementActionFuncs_x76,
+ [MOVEMENT_ACTION_ACRO_POP_WHEELIE_RIGHT] = sMovementActionFuncs_x77,
+ [MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_DOWN] = sMovementActionFuncs_x78,
+ [MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_UP] = sMovementActionFuncs_x79,
+ [MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_LEFT] = sMovementActionFuncs_x7A,
+ [MOVEMENT_ACTION_ACRO_END_WHEELIE_FACE_RIGHT] = sMovementActionFuncs_x7B,
+ [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_DOWN] = sMovementActionFuncs_x7C,
+ [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_UP] = sMovementActionFuncs_x7D,
+ [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_LEFT] = sMovementActionFuncs_x7E,
+ [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_FACE_RIGHT] = sMovementActionFuncs_x7F,
+ [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_DOWN] = sMovementActionFuncs_x80,
+ [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_UP] = sMovementActionFuncs_x81,
+ [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_LEFT] = sMovementActionFuncs_x82,
+ [MOVEMENT_ACTION_ACRO_WHEELIE_HOP_RIGHT] = sMovementActionFuncs_x83,
+ [MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_DOWN] = sMovementActionFuncs_x84,
+ [MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_UP] = sMovementActionFuncs_x85,
+ [MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_LEFT] = sMovementActionFuncs_x86,
+ [MOVEMENT_ACTION_ACRO_WHEELIE_JUMP_RIGHT] = sMovementActionFuncs_x87,
+ [MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_DOWN] = sMovementActionFuncs_x88,
+ [MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_UP] = sMovementActionFuncs_x89,
+ [MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_LEFT] = sMovementActionFuncs_x8A,
+ [MOVEMENT_ACTION_ACRO_WHEELIE_IN_PLACE_RIGHT] = sMovementActionFuncs_x8B,
+ [MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_DOWN] = sMovementActionFuncs_x8C,
+ [MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_UP] = sMovementActionFuncs_x8D,
+ [MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_LEFT] = sMovementActionFuncs_x8E,
+ [MOVEMENT_ACTION_ACRO_POP_WHEELIE_MOVE_RIGHT] = sMovementActionFuncs_x8F,
+ [MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_DOWN] = sMovementActionFuncs_x90,
+ [MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_UP] = sMovementActionFuncs_x91,
+ [MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_LEFT] = sMovementActionFuncs_x92,
+ [MOVEMENT_ACTION_ACRO_WHEELIE_MOVE_RIGHT] = sMovementActionFuncs_x93,
+ [MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_DOWN] = sMovementActionFuncs_x94,
+ [MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_UP] = sMovementActionFuncs_x95,
+ [MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_LEFT] = sMovementActionFuncs_x96,
+ [MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_RIGHT] = sMovementActionFuncs_x97,
+ [MOVEMENT_ACTION_0x98] = sMovementActionFuncs_x98,
+ [MOVEMENT_ACTION_0x99] = sMovementActionFuncs_x99,
+ [MOVEMENT_ACTION_0x9A] = sMovementActionFuncs_x9A,
+ [MOVEMENT_ACTION_0x9B] = sMovementActionFuncs_x9B,
+ [MOVEMENT_ACTION_0x9C] = sMovementActionFuncs_x9C,
+ [MOVEMENT_ACTION_0x9D] = sMovementActionFuncs_x9D,
+ [MOVEMENT_ACTION_0x9E] = sMovementActionFuncs_x9E,
+ [MOVEMENT_ACTION_0x9F] = sMovementActionFuncs_x9F,
+ [MOVEMENT_ACTION_0xA0] = sMovementActionFuncs_xA0,
+ [MOVEMENT_ACTION_0xA1] = sMovementActionFuncs_xA1,
+ [MOVEMENT_ACTION_0xA2] = sMovementActionFuncs_xA2,
+ [MOVEMENT_ACTION_0xA3] = sMovementActionFuncs_xA3,
+ [MOVEMENT_ACTION_FLY_UP] = sMovementActionFuncs_xA4,
+ [MOVEMENT_ACTION_FLY_DOWN] = sMovementActionFuncs_xA5,
+ [MOVEMENT_ACTION_0xA6] = sMovementActionFuncs_xA6,
+ [MOVEMENT_ACTION_0xA7] = sMovementActionFuncs_xA7,
+ [MOVEMENT_ACTION_0xA8] = sMovementActionFuncs_xA8,
+ [MOVEMENT_ACTION_0xA9] = sMovementActionFuncs_xA9,
};
static bool8 (*const sMovementActionFuncs_x00[])(struct ObjectEvent *, struct Sprite *) = {
diff --git a/src/data/object_events/movement_type_func_tables.h b/src/data/object_events/movement_type_func_tables.h
index a18c0e974..572a9b390 100644
--- a/src/data/object_events/movement_type_func_tables.h
+++ b/src/data/object_events/movement_type_func_tables.h
@@ -4,7 +4,7 @@ static bool8 MovementType_WanderAround_Step2(struct ObjectEvent *objectEvent, st
static bool8 MovementType_WanderAround_Step3(struct ObjectEvent *objectEvent, struct Sprite *sprite);
static bool8 MovementType_WanderAround_Step4(struct ObjectEvent *objectEvent, struct Sprite *sprite);
static bool8 MovementType_WanderAround_Step5(struct ObjectEvent *objectEvent, struct Sprite *sprite);
-static bool8 MovementType_WanderAround_Step5Duplicate(struct ObjectEvent *objectEvent, struct Sprite *sprite);
+static bool8 MovementType_WanderAround_Step5Slowest(struct ObjectEvent *objectEvent, struct Sprite *sprite);
static bool8 MovementType_WanderAround_Step6(struct ObjectEvent *objectEvent, struct Sprite *sprite);
static bool8 MovementType_LookAround_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite);
static bool8 MovementType_LookAround_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite);
@@ -141,12 +141,12 @@ static bool8 MovementType_MoveInPlace_Step1(struct ObjectEvent *objectEvent, str
static bool8 MovementType_Invisible_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite);
static bool8 MovementType_Invisible_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite);
static bool8 MovementType_Invisible_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite);
-static bool8 sub_8063364(struct ObjectEvent *objectEvent, struct Sprite *sprite);
-static bool8 sub_8063384(struct ObjectEvent *objectEvent, struct Sprite *sprite);
-static bool8 sub_80633A4(struct ObjectEvent *objectEvent, struct Sprite *sprite);
-static bool8 sub_80633B4(struct ObjectEvent *objectEvent, struct Sprite *sprite);
-static bool8 sub_80633D4(struct ObjectEvent *objectEvent, struct Sprite *sprite);
-static bool8 sub_80633F4(struct ObjectEvent *objectEvent, struct Sprite *sprite);
+static bool8 MovementType_VsSeeker4D_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite);
+static bool8 MovementType_VsSeeker4D_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite);
+static bool8 MovementType_VsSeeker4D_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite);
+static bool8 MovementType_VsSeeker4E_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite);
+static bool8 MovementType_VsSeeker4F_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite);
+static bool8 MovementType_VsSeeker4E_VsSeeker4F_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite);
static u8 GetVectorDirection(s16 dx, s16 dy, s16 absdx, s16 absdy);
static u8 GetLimitedVectorDirection_SouthNorth(s16 dx, s16 dy, s16 absdx, s16 absdy);
@@ -170,13 +170,13 @@ u8 (*const gMovementTypeFuncs_WanderAround[])(struct ObjectEvent *, struct Sprit
MovementType_WanderAround_Step6,
};
-u8 (*const gMovementTypeFuncs_WanderAroundDuplicate[])(struct ObjectEvent *, struct Sprite *) = {
+u8 (*const gMovementTypeFuncs_WanderAroundSlowest[])(struct ObjectEvent *, struct Sprite *) = {
MovementType_WanderAround_Step0,
MovementType_WanderAround_Step1,
MovementType_WanderAround_Step2,
MovementType_WanderAround_Step3,
MovementType_WanderAround_Step4,
- MovementType_WanderAround_Step5Duplicate,
+ MovementType_WanderAround_Step5Slowest,
MovementType_WanderAround_Step6,
};
@@ -596,18 +596,18 @@ u8 (*const gMovementTypeFuncs_Invisible[])(struct ObjectEvent *, struct Sprite *
MovementType_Invisible_Step2,
};
-u8 (*const gUnknown_83A63F0[])(struct ObjectEvent *, struct Sprite *) = {
- sub_8063364,
- sub_8063384,
- sub_80633A4,
+u8 (*const gMovementTypeFuncs_VsSeeker4D[])(struct ObjectEvent *, struct Sprite *) = {
+ MovementType_VsSeeker4D_Step0,
+ MovementType_VsSeeker4D_Step1,
+ MovementType_VsSeeker4D_Step2,
};
-u8 (*const gUnknown_83A63FC[])(struct ObjectEvent *, struct Sprite *) = {
- sub_80633B4,
- sub_80633F4,
+u8 (*const gMovementTypeFuncs_VsSeeker4E[])(struct ObjectEvent *, struct Sprite *) = {
+ MovementType_VsSeeker4E_Step0,
+ MovementType_VsSeeker4E_VsSeeker4F_Step1,
};
-u8 (*const gUnknown_83A6404[])(struct ObjectEvent *, struct Sprite *) = {
- sub_80633D4,
- sub_80633F4,
+u8 (*const gMovementTypeFuncs_VsSeeker4F[])(struct ObjectEvent *, struct Sprite *) = {
+ MovementType_VsSeeker4F_Step0,
+ MovementType_VsSeeker4E_VsSeeker4F_Step1,
};
diff --git a/src/data/party_menu.h b/src/data/party_menu.h
index e8151b810..084062b50 100644
--- a/src/data/party_menu.h
+++ b/src/data/party_menu.h
@@ -112,12 +112,12 @@ static const u32 sCancelButton_Tilemap[] = INCBIN_U32("graphics/interface/party_
static const u8 sFontColorTable[][3] =
{
- {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_GREY, TEXT_COLOR_DARK_GREY}, // Default
+ {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_GRAY, TEXT_COLOR_DARK_GRAY}, // Default
{TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_GREEN}, // Unused
{TEXT_COLOR_TRANSPARENT, TEXT_DYNAMIC_COLOR_2, TEXT_DYNAMIC_COLOR_3}, // Gender symbol
- {TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY}, // Selection actions
+ {TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY}, // Selection actions
{TEXT_COLOR_WHITE, TEXT_COLOR_BLUE, TEXT_COLOR_LIGHT_BLUE}, // Field moves
- {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY}, // Unused
+ {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY}, // Unused
};
static const struct WindowTemplate sSinglePartyMenuWindowTemplate[] =
diff --git a/src/data/trainers.h b/src/data/trainers.h
index 4ad71fd13..95e1c5412 100644
--- a/src/data/trainers.h
+++ b/src/data/trainers.h
@@ -9,7 +9,7 @@ const struct Trainer gTrainers[] = {
.doubleBattle = FALSE,
.aiFlags = 0,
.partySize = 0,
- .party = NULL
+ .party = {},
},
[TRAINER_AQUA_LEADER_1] = {
.partyFlags = 0,
diff --git a/src/diploma.c b/src/diploma.c
index 4f765437f..38df40663 100644
--- a/src/diploma.c
+++ b/src/diploma.c
@@ -38,8 +38,8 @@ static const u8 gUnknown_841599D[] = _("{HIGHLIGHT TRANSPARENT}さま");
static const u8 gUnknown_84159A3[] = _("{HIGHLIGHT TRANSPARENT}ホウエン");
static const u8 gUnknown_84159AB[] = _("{HIGHLIGHT TRANSPARENT}ぜんこく");
static const u8 gUnknown_84159B3[] = _("{HIGHLIGHT TRANSPARENT}     ポケモンずかんを\nみごと かんせい させた\nいだいなこうせきを たたえ\nここに しょうめい します");
-static const u8 gUnknown_84159ED[] = _("{COLOR RED}{HIGHLIGHT TRANSPARENT}ゲームフリーク");
-static const u8 gUnknown_84159FB[] = _("{COLOR RED}{HIGHLIGHT TRANSPARENT}");
+static const u8 gUnknown_84159ED[] = _("{COLOR DARK_GRAY}{HIGHLIGHT TRANSPARENT}ゲームフリーク");
+static const u8 gUnknown_84159FB[] = _("{COLOR DARK_GRAY}{HIGHLIGHT TRANSPARENT}");
static const ALIGNED(4) u8 gUnknown_8415A04[3] = {0, 2, 3};
diff --git a/src/dodrio_berry_picking_2.c b/src/dodrio_berry_picking_2.c
index ff44a70de..aa9f65042 100644
--- a/src/dodrio_berry_picking_2.c
+++ b/src/dodrio_berry_picking_2.c
@@ -906,8 +906,8 @@ static const u8 sTextColorTable[][3] =
{
{
TEXT_COLOR_WHITE,
- TEXT_COLOR_DARK_GREY,
- TEXT_COLOR_LIGHT_GREY
+ TEXT_COLOR_DARK_GRAY,
+ TEXT_COLOR_LIGHT_GRAY
}, {
TEXT_COLOR_WHITE,
TEXT_COLOR_RED,
@@ -1421,7 +1421,7 @@ static void sub_8155A78(void)
{
case 0:
DrawDialogueFrame(0, FALSE);
- AddTextPrinterParameterized2(0, 2, gText_SavingDontTurnOffThePower2, 0, NULL, TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GREY);
+ AddTextPrinterParameterized2(0, 2, gText_SavingDontTurnOffThePower2, 0, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
gUnknown_203F440->state++;
break;
case 1:
diff --git a/src/easy_chat_3.c b/src/easy_chat_3.c
index c904494bb..dc9fbed01 100644
--- a/src/easy_chat_3.c
+++ b/src/easy_chat_3.c
@@ -1321,7 +1321,7 @@ static void PrintTitleText(void)
xOffset = (128 - GetStringWidth(1, titleText, 0)) / 2u;
FillWindowPixelBuffer(0, PIXEL_FILL(0));
- EC_AddTextPrinterParameterized2(0, 1, titleText, xOffset, 0, TEXT_SPEED_FF, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY);
+ EC_AddTextPrinterParameterized2(0, 1, titleText, xOffset, 0, TEXT_SPEED_FF, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY);
PutWindowTilemap(0);
CopyWindowToVram(0, COPYWIN_BOTH);
}
@@ -1439,7 +1439,7 @@ static void PrintECFields(void)
*str++ = 9;
}
- str = WriteColorChangeControlCode(str, 0, TEXT_COLOR_DARK_GREY);
+ str = WriteColorChangeControlCode(str, 0, TEXT_COLOR_DARK_GRAY);
}
str = StringAppend(str, sText_Clear17);
diff --git a/src/event_object_movement.c b/src/event_object_movement.c
index 8b1dffa51..6b9445d8e 100644
--- a/src/event_object_movement.c
+++ b/src/event_object_movement.c
@@ -30,7 +30,7 @@ static void UpdateObjectEventSpriteAnimPause(struct ObjectEvent *, struct Sprite
static bool8 IsCoordOutsideObjectEventMovementRange(struct ObjectEvent *, s16, s16);
static bool8 IsMetatileDirectionallyImpassable(struct ObjectEvent *, s16, s16, u8);
static bool8 DoesObjectCollideWithObjectAt(struct ObjectEvent *, s16, s16);
-static void sub_8067A10(struct ObjectEvent *, struct Sprite *);
+static void CalcWhetherObjectIsOffscreen(struct ObjectEvent *, struct Sprite *);
static void UpdateObjEventSpriteVisibility(struct ObjectEvent *, struct Sprite *);
static void ObjectEventUpdateMetatileBehaviors(struct ObjectEvent*);
static void GetGroundEffectFlags_Reflection(struct ObjectEvent*, u32*);
@@ -90,9 +90,9 @@ static bool8 sub_805E2E8(struct ObjectEventTemplate *, s16, s16);
static void sub_805E384(struct ObjectEventTemplate *);
static bool8 MovementType_Disguise_Callback(struct ObjectEvent *, struct Sprite *);
static bool8 MovementType_Buried_Callback(struct ObjectEvent *, struct Sprite *);
-static u8 sub_8063304(struct ObjectEvent *, struct Sprite *);
-static u8 sub_8063324(struct ObjectEvent *, struct Sprite *);
-static u8 sub_8063344(struct ObjectEvent *, struct Sprite *);
+static u8 MovementType_VsSeeker4D_Callback(struct ObjectEvent *, struct Sprite *);
+static u8 MovementType_VsSeeker4E_Callback(struct ObjectEvent *, struct Sprite *);
+static u8 MovementType_VsSeeker4F_Callback(struct ObjectEvent *, struct Sprite *);
static void sub_8064544(struct ObjectEvent *, struct Sprite *);
static void DoObjectUnionRoomWarpYDisplacement(struct Sprite * sprite);
static void MovementType_None(struct Sprite *);
@@ -147,10 +147,10 @@ static void MovementType_WalkInPlace(struct Sprite *);
static void MovementType_WalkSlowlyInPlace(struct Sprite *);
static void MovementType_JogInPlace(struct Sprite *);
static void MovementType_Invisible(struct Sprite *);
-static void sub_8063298(struct Sprite *);
-static void sub_80632BC(struct Sprite *);
-static void sub_80632E0(struct Sprite *);
-static void MovementType_WanderAroundDuplicate(struct Sprite *);
+static void MovementType_VsSeeker4D(struct Sprite *);
+static void MovementType_VsSeeker4E(struct Sprite *);
+static void MovementType_VsSeeker4F(struct Sprite *);
+static void MovementType_WanderAroundSlowest(struct Sprite *);
#define movement_type_def(setup, table) \
static u8 setup##_callback(struct ObjectEvent *, struct Sprite *); \
@@ -198,87 +198,87 @@ void (*const gCameraObjectFuncs[])(struct Sprite *) = {
#include "data/object_events/object_event_graphics.h"
static void (*const sMovementTypeCallbacks[])(struct Sprite *) = {
- MovementType_None,
- MovementType_LookAround,
- MovementType_WanderAround,
- MovementType_WanderUpAndDown,
- MovementType_WanderUpAndDown,
- MovementType_WanderLeftAndRight,
- MovementType_WanderLeftAndRight,
- MovementType_FaceDirection,
- MovementType_FaceDirection,
- MovementType_FaceDirection,
- MovementType_FaceDirection,
- MovementType_Player,
- NULL,
- MovementType_FaceDownAndUp,
- MovementType_FaceLeftAndRight,
- MovementType_FaceUpAndLeft,
- MovementType_FaceUpAndRight,
- MovementType_FaceDownAndLeft,
- MovementType_FaceDownAndRight,
- MovementType_FaceDownUpAndLeft,
- MovementType_FaceDownUpAndRight,
- MovementType_FaceUpRightAndLeft,
- MovementType_FaceDownRightAndLeft,
- MovementType_RotateCounterclockwise,
- MovementType_RotateClockwise,
- MovementType_WalkBackAndForth,
- MovementType_WalkBackAndForth,
- MovementType_WalkBackAndForth,
- MovementType_WalkBackAndForth,
- MovementType_WalkSequenceUpRightLeftDown,
- MovementType_WalkSequenceRightLeftDownUp,
- MovementType_WalkSequenceDownUpRightLeft,
- MovementType_WalkSequenceLeftDownUpRight,
- MovementType_WalkSequenceUpLeftRightDown,
- MovementType_WalkSequenceLeftRightDownUp,
- MovementType_WalkSequenceDownUpLeftRight,
- MovementType_WalkSequenceRightDownUpLeft,
- MovementType_WalkSequenceLeftUpDownRight,
- MovementType_WalkSequenceUpDownRightLeft,
- MovementType_WalkSequenceRightLeftUpDown,
- MovementType_WalkSequenceDownRightLeftUp,
- MovementType_WalkSequenceRightUpDownLeft,
- MovementType_WalkSequenceUpDownLeftRight,
- MovementType_WalkSequenceLeftRightUpDown,
- MovementType_WalkSequenceDownLeftRightUp,
- MovementType_WalkSequenceUpLeftDownRight,
- MovementType_WalkSequenceDownRightUpLeft,
- MovementType_WalkSequenceLeftDownRightUp,
- MovementType_WalkSequenceRightUpLeftDown,
- MovementType_WalkSequenceUpRightDownLeft,
- MovementType_WalkSequenceDownLeftUpRight,
- MovementType_WalkSequenceLeftUpRightDown,
- MovementType_WalkSequenceRightDownLeftUp,
- MovementType_CopyPlayer,
- MovementType_CopyPlayer,
- MovementType_CopyPlayer,
- MovementType_CopyPlayer,
- MovementType_TreeDisguise,
- MovementType_MountainDisguise,
- MovementType_CopyPlayerInGrass,
- MovementType_CopyPlayerInGrass,
- MovementType_CopyPlayerInGrass,
- MovementType_CopyPlayerInGrass,
- MovementType_Buried,
- MovementType_WalkInPlace,
- MovementType_WalkInPlace,
- MovementType_WalkInPlace,
- MovementType_WalkInPlace,
- MovementType_WalkSlowlyInPlace,
- MovementType_WalkSlowlyInPlace,
- MovementType_WalkSlowlyInPlace,
- MovementType_WalkSlowlyInPlace,
- MovementType_JogInPlace,
- MovementType_JogInPlace,
- MovementType_JogInPlace,
- MovementType_JogInPlace,
- MovementType_Invisible,
- sub_8063298,
- sub_80632BC,
- sub_80632E0,
- MovementType_WanderAroundDuplicate,
+ [MOVEMENT_TYPE_NONE] = MovementType_None,
+ [MOVEMENT_TYPE_LOOK_AROUND] = MovementType_LookAround,
+ [MOVEMENT_TYPE_WANDER_AROUND] = MovementType_WanderAround,
+ [MOVEMENT_TYPE_WANDER_UP_AND_DOWN] = MovementType_WanderUpAndDown,
+ [MOVEMENT_TYPE_WANDER_DOWN_AND_UP] = MovementType_WanderUpAndDown,
+ [MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT] = MovementType_WanderLeftAndRight,
+ [MOVEMENT_TYPE_WANDER_RIGHT_AND_LEFT] = MovementType_WanderLeftAndRight,
+ [MOVEMENT_TYPE_FACE_UP] = MovementType_FaceDirection,
+ [MOVEMENT_TYPE_FACE_DOWN] = MovementType_FaceDirection,
+ [MOVEMENT_TYPE_FACE_LEFT] = MovementType_FaceDirection,
+ [MOVEMENT_TYPE_FACE_RIGHT] = MovementType_FaceDirection,
+ [MOVEMENT_TYPE_PLAYER] = MovementType_Player,
+ [MOVEMENT_TYPE_BERRY_TREE_GROWTH] = NULL,
+ [MOVEMENT_TYPE_FACE_DOWN_AND_UP] = MovementType_FaceDownAndUp,
+ [MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT] = MovementType_FaceLeftAndRight,
+ [MOVEMENT_TYPE_FACE_UP_AND_LEFT] = MovementType_FaceUpAndLeft,
+ [MOVEMENT_TYPE_FACE_UP_AND_RIGHT] = MovementType_FaceUpAndRight,
+ [MOVEMENT_TYPE_FACE_DOWN_AND_LEFT] = MovementType_FaceDownAndLeft,
+ [MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT] = MovementType_FaceDownAndRight,
+ [MOVEMENT_TYPE_FACE_DOWN_UP_AND_LEFT] = MovementType_FaceDownUpAndLeft,
+ [MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT] = MovementType_FaceDownUpAndRight,
+ [MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT] = MovementType_FaceUpRightAndLeft,
+ [MOVEMENT_TYPE_FACE_DOWN_LEFT_AND_RIGHT] = MovementType_FaceDownRightAndLeft,
+ [MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE] = MovementType_RotateCounterclockwise,
+ [MOVEMENT_TYPE_ROTATE_CLOCKWISE] = MovementType_RotateClockwise,
+ [MOVEMENT_TYPE_WALK_UP_AND_DOWN] = MovementType_WalkBackAndForth,
+ [MOVEMENT_TYPE_WALK_DOWN_AND_UP] = MovementType_WalkBackAndForth,
+ [MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT] = MovementType_WalkBackAndForth,
+ [MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT] = MovementType_WalkBackAndForth,
+ [MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_LEFT_DOWN] = MovementType_WalkSequenceUpRightLeftDown,
+ [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_DOWN_UP] = MovementType_WalkSequenceRightLeftDownUp,
+ [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_RIGHT_LEFT] = MovementType_WalkSequenceDownUpRightLeft,
+ [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_UP_RIGHT] = MovementType_WalkSequenceLeftDownUpRight,
+ [MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_RIGHT_DOWN] = MovementType_WalkSequenceUpLeftRightDown,
+ [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_DOWN_UP] = MovementType_WalkSequenceLeftRightDownUp,
+ [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_LEFT_RIGHT] = MovementType_WalkSequenceDownUpLeftRight,
+ [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_UP_LEFT] = MovementType_WalkSequenceRightDownUpLeft,
+ [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_DOWN_RIGHT] = MovementType_WalkSequenceLeftUpDownRight,
+ [MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_RIGHT_LEFT] = MovementType_WalkSequenceUpDownRightLeft,
+ [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_UP_DOWN] = MovementType_WalkSequenceRightLeftUpDown,
+ [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP] = MovementType_WalkSequenceDownRightLeftUp,
+ [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_DOWN_LEFT] = MovementType_WalkSequenceRightUpDownLeft,
+ [MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_LEFT_RIGHT] = MovementType_WalkSequenceUpDownLeftRight,
+ [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_UP_DOWN] = MovementType_WalkSequenceLeftRightUpDown,
+ [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_RIGHT_UP] = MovementType_WalkSequenceDownLeftRightUp,
+ [MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_DOWN_RIGHT] = MovementType_WalkSequenceUpLeftDownRight,
+ [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT] = MovementType_WalkSequenceDownRightUpLeft,
+ [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_RIGHT_UP] = MovementType_WalkSequenceLeftDownRightUp,
+ [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_LEFT_DOWN] = MovementType_WalkSequenceRightUpLeftDown,
+ [MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_DOWN_LEFT] = MovementType_WalkSequenceUpRightDownLeft,
+ [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT] = MovementType_WalkSequenceDownLeftUpRight,
+ [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN] = MovementType_WalkSequenceLeftUpRightDown,
+ [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP] = MovementType_WalkSequenceRightDownLeftUp,
+ [MOVEMENT_TYPE_COPY_PLAYER] = MovementType_CopyPlayer,
+ [MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE] = MovementType_CopyPlayer,
+ [MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE] = MovementType_CopyPlayer,
+ [MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE] = MovementType_CopyPlayer,
+ [MOVEMENT_TYPE_TREE_DISGUISE] = MovementType_TreeDisguise,
+ [MOVEMENT_TYPE_MOUNTAIN_DISGUISE] = MovementType_MountainDisguise,
+ [MOVEMENT_TYPE_COPY_PLAYER_IN_GRASS] = MovementType_CopyPlayerInGrass,
+ [MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS] = MovementType_CopyPlayerInGrass,
+ [MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS] = MovementType_CopyPlayerInGrass,
+ [MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS] = MovementType_CopyPlayerInGrass,
+ [MOVEMENT_TYPE_BURIED] = MovementType_Buried,
+ [MOVEMENT_TYPE_WALK_IN_PLACE_DOWN] = MovementType_WalkInPlace,
+ [MOVEMENT_TYPE_WALK_IN_PLACE_UP] = MovementType_WalkInPlace,
+ [MOVEMENT_TYPE_WALK_IN_PLACE_LEFT] = MovementType_WalkInPlace,
+ [MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT] = MovementType_WalkInPlace,
+ [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN] = MovementType_WalkSlowlyInPlace,
+ [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP] = MovementType_WalkSlowlyInPlace,
+ [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT] = MovementType_WalkSlowlyInPlace,
+ [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT] = MovementType_WalkSlowlyInPlace,
+ [MOVEMENT_TYPE_JOG_IN_PLACE_DOWN] = MovementType_JogInPlace,
+ [MOVEMENT_TYPE_JOG_IN_PLACE_UP] = MovementType_JogInPlace,
+ [MOVEMENT_TYPE_JOG_IN_PLACE_LEFT] = MovementType_JogInPlace,
+ [MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT] = MovementType_JogInPlace,
+ [MOVEMENT_TYPE_INVISIBLE] = MovementType_Invisible,
+ [MOVEMENT_TYPE_VS_SEEKER_4D] = MovementType_VsSeeker4D,
+ [MOVEMENT_TYPE_VS_SEEKER_4E] = MovementType_VsSeeker4E,
+ [MOVEMENT_TYPE_VS_SEEKER_4F] = MovementType_VsSeeker4F,
+ [MOVEMENT_TYPE_WANDER_AROUND_SLOWEST] = MovementType_WanderAroundSlowest,
};
const bool8 gRangedMovementTypes[NUM_FIELD_MAP_OBJECT_TEMPLATES] = {
@@ -350,19 +350,19 @@ const bool8 gRangedMovementTypes[NUM_FIELD_MAP_OBJECT_TEMPLATES] = {
[MOVEMENT_TYPE_WALK_IN_PLACE_UP] = FALSE,
[MOVEMENT_TYPE_WALK_IN_PLACE_LEFT] = FALSE,
[MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT] = FALSE,
+ [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN] = FALSE,
+ [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP] = FALSE,
+ [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT] = FALSE,
+ [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT] = FALSE,
[MOVEMENT_TYPE_JOG_IN_PLACE_DOWN] = FALSE,
[MOVEMENT_TYPE_JOG_IN_PLACE_UP] = FALSE,
[MOVEMENT_TYPE_JOG_IN_PLACE_LEFT] = FALSE,
[MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT] = FALSE,
- [MOVEMENT_TYPE_RUN_IN_PLACE_DOWN] = FALSE,
- [MOVEMENT_TYPE_RUN_IN_PLACE_UP] = FALSE,
- [MOVEMENT_TYPE_RUN_IN_PLACE_LEFT] = FALSE,
- [MOVEMENT_TYPE_RUN_IN_PLACE_RIGHT] = FALSE,
[MOVEMENT_TYPE_INVISIBLE] = FALSE,
- [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN] = FALSE,
- [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP] = FALSE,
- [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT] = FALSE,
- [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT] = TRUE,
+ [MOVEMENT_TYPE_VS_SEEKER_4D] = FALSE,
+ [MOVEMENT_TYPE_VS_SEEKER_4E] = FALSE,
+ [MOVEMENT_TYPE_VS_SEEKER_4F] = FALSE,
+ [MOVEMENT_TYPE_WANDER_AROUND_SLOWEST] = TRUE,
};
const u8 gInitialMovementTypeFacingDirections[NUM_FIELD_MAP_OBJECT_TEMPLATES] = {
@@ -434,19 +434,19 @@ const u8 gInitialMovementTypeFacingDirections[NUM_FIELD_MAP_OBJECT_TEMPLATES] =
[MOVEMENT_TYPE_WALK_IN_PLACE_UP] = DIR_NORTH,
[MOVEMENT_TYPE_WALK_IN_PLACE_LEFT] = DIR_WEST,
[MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT] = DIR_EAST,
+ [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN] = DIR_SOUTH,
+ [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP] = DIR_NORTH,
+ [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT] = DIR_WEST,
+ [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT] = DIR_EAST,
[MOVEMENT_TYPE_JOG_IN_PLACE_DOWN] = DIR_SOUTH,
[MOVEMENT_TYPE_JOG_IN_PLACE_UP] = DIR_NORTH,
[MOVEMENT_TYPE_JOG_IN_PLACE_LEFT] = DIR_WEST,
[MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT] = DIR_EAST,
- [MOVEMENT_TYPE_RUN_IN_PLACE_DOWN] = DIR_SOUTH,
- [MOVEMENT_TYPE_RUN_IN_PLACE_UP] = DIR_NORTH,
- [MOVEMENT_TYPE_RUN_IN_PLACE_LEFT] = DIR_WEST,
- [MOVEMENT_TYPE_RUN_IN_PLACE_RIGHT] = DIR_EAST,
[MOVEMENT_TYPE_INVISIBLE] = DIR_SOUTH,
- [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN] = DIR_SOUTH,
- [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP] = DIR_SOUTH,
- [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT] = DIR_SOUTH,
- [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT] = DIR_SOUTH,
+ [MOVEMENT_TYPE_VS_SEEKER_4D] = DIR_SOUTH,
+ [MOVEMENT_TYPE_VS_SEEKER_4E] = DIR_SOUTH,
+ [MOVEMENT_TYPE_VS_SEEKER_4F] = DIR_SOUTH,
+ [MOVEMENT_TYPE_WANDER_AROUND_SLOWEST] = DIR_SOUTH,
};
#define OBJ_EVENT_PAL_TAG_0 0x1103
@@ -2725,7 +2725,7 @@ u16 GetObjectPaletteTag(u8 palSlot)
movement_type_empty_callback(MovementType_None)
movement_type_def(MovementType_WanderAround, gMovementTypeFuncs_WanderAround)
-movement_type_def(MovementType_WanderAroundDuplicate, gMovementTypeFuncs_WanderAroundDuplicate)
+movement_type_def(MovementType_WanderAroundSlowest, gMovementTypeFuncs_WanderAroundSlowest)
static bool8 MovementType_WanderAround_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
@@ -2785,7 +2785,7 @@ static bool8 MovementType_WanderAround_Step5(struct ObjectEvent *objectEvent, st
return TRUE;
}
-static bool8 MovementType_WanderAround_Step5Duplicate(struct ObjectEvent *objectEvent, struct Sprite *sprite)
+static bool8 MovementType_WanderAround_Step5Slowest(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkSlowestMovementAction(objectEvent->movementDirection));
objectEvent->singleMovementActive = TRUE;
@@ -4603,45 +4603,45 @@ static bool8 MovementType_Invisible_Step2(struct ObjectEvent *objectEvent, struc
return FALSE;
}
-void sub_8063298(struct Sprite *sprite)
+void MovementType_VsSeeker4D(struct Sprite *sprite)
{
- UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, sub_8063304);
+ UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, MovementType_VsSeeker4D_Callback);
}
-void sub_80632BC(struct Sprite *sprite)
+void MovementType_VsSeeker4E(struct Sprite *sprite)
{
- UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, sub_8063324);
+ UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, MovementType_VsSeeker4E_Callback);
}
-void sub_80632E0(struct Sprite *sprite)
+void MovementType_VsSeeker4F(struct Sprite *sprite)
{
- UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, sub_8063344);
+ UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, MovementType_VsSeeker4F_Callback);
}
-static u8 sub_8063304(struct ObjectEvent *objectEvent, struct Sprite *sprite)
+static u8 MovementType_VsSeeker4D_Callback(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- return gUnknown_83A63F0[sprite->data[1]](objectEvent, sprite);
+ return gMovementTypeFuncs_VsSeeker4D[sprite->data[1]](objectEvent, sprite);
}
-static u8 sub_8063324(struct ObjectEvent *objectEvent, struct Sprite *sprite)
+static u8 MovementType_VsSeeker4E_Callback(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- return gUnknown_83A63FC[sprite->data[1]](objectEvent, sprite);
+ return gMovementTypeFuncs_VsSeeker4E[sprite->data[1]](objectEvent, sprite);
}
-static u8 sub_8063344(struct ObjectEvent *objectEvent, struct Sprite *sprite)
+static u8 MovementType_VsSeeker4F_Callback(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- return gUnknown_83A6404[sprite->data[1]](objectEvent, sprite);
+ return gMovementTypeFuncs_VsSeeker4F[sprite->data[1]](objectEvent, sprite);
}
-static bool8 sub_8063364(struct ObjectEvent *objectEvent, struct Sprite *sprite)
+static bool8 MovementType_VsSeeker4D_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
ClearObjectEventMovement(objectEvent, sprite);
- ObjectEventSetSingleMovement(objectEvent, sprite, 0x98);
+ ObjectEventSetSingleMovement(objectEvent, sprite, MOVEMENT_ACTION_0x98);
sprite->data[1] = 1;
return TRUE;
}
-static bool8 sub_8063384(struct ObjectEvent *objectEvent, struct Sprite *sprite)
+static bool8 MovementType_VsSeeker4D_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
if (ObjectEventExecSingleMovementAction(objectEvent, sprite))
{
@@ -4651,29 +4651,29 @@ static bool8 sub_8063384(struct ObjectEvent *objectEvent, struct Sprite *sprite)
return FALSE;
}
-static bool8 sub_80633A4(struct ObjectEvent *objectEvent, struct Sprite *sprite)
+static bool8 MovementType_VsSeeker4D_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
objectEvent->singleMovementActive = FALSE;
return FALSE;
}
-static bool8 sub_80633B4(struct ObjectEvent *objectEvent, struct Sprite *sprite)
+static bool8 MovementType_VsSeeker4E_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
ClearObjectEventMovement(objectEvent, sprite);
- ObjectEventSetSingleMovement(objectEvent, sprite, 0x99);
+ ObjectEventSetSingleMovement(objectEvent, sprite, MOVEMENT_ACTION_0x99);
sprite->data[1] = 1;
return FALSE;
}
-static bool8 sub_80633D4(struct ObjectEvent *objectEvent, struct Sprite *sprite)
+static bool8 MovementType_VsSeeker4F_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
ClearObjectEventMovement(objectEvent, sprite);
- ObjectEventSetSingleMovement(objectEvent, sprite, 0x9A);
+ ObjectEventSetSingleMovement(objectEvent, sprite, MOVEMENT_ACTION_0x9A);
sprite->data[1] = 1;
return FALSE;
}
-static bool8 sub_80633F4(struct ObjectEvent *objectEvent, struct Sprite *sprite)
+static bool8 MovementType_VsSeeker4E_VsSeeker4F_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
if (ObjectEventExecSingleMovementAction(objectEvent, sprite))
{
@@ -7879,7 +7879,6 @@ static bool8 MovementActionFunc_x98_1(struct ObjectEvent *objectEvent, struct Sp
static bool8 MovementActionFunc_x99_1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- s32 y;
switch (sprite->data[7])
{
case 0:
@@ -7892,8 +7891,8 @@ static bool8 MovementActionFunc_x99_1(struct ObjectEvent *objectEvent, struct Sp
sprite->animPaused = FALSE;
objectEvent->disableAnim = FALSE;
}
- y = -(3 * gSineTable[sprite->data[6]] >> 7);
- objectEvent->singleMovementActive = (-(sprite->pos2.y = y) | y) >> 31;
+ sprite->pos2.y = -(3 * gSineTable[sprite->data[6]] >> 7);
+ objectEvent->singleMovementActive = sprite->pos2.y != 0;
return FALSE;
case 1:
if (++sprite->data[4] > 16)
@@ -8016,11 +8015,11 @@ static void TryEnableObjectEventAnim(struct ObjectEvent *objectEvent, struct Spr
static void UpdateObjectEventVisibility(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8067A10(objectEvent, sprite);
+ CalcWhetherObjectIsOffscreen(objectEvent, sprite);
UpdateObjEventSpriteVisibility(objectEvent, sprite);
}
-static void sub_8067A10(struct ObjectEvent *objectEvent, struct Sprite *sprite)
+static void CalcWhetherObjectIsOffscreen(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
u16 x, y;
u16 x2, y2;
diff --git a/src/evolution_scene.c b/src/evolution_scene.c
index d2d6309f9..0eb36b523 100644
--- a/src/evolution_scene.c
+++ b/src/evolution_scene.c
@@ -69,7 +69,7 @@ static const u16 sMovingBgPals[] = INCBIN_U16("graphics/evolution_scene/transiti
static const u8 sText_ShedinjaJapaneseName[] = _("ヌケニン");
-static const u8 unref_83F8445[] = _("{COLOR RED}{HIGHLIGHT DARK_GREY}{SHADOW GREEN}");
+static const u8 unref_83F8445[] = _("{COLOR DARK_GRAY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GRAY}");
static const u8 unref_83F844F[][10] = {
_("▶\n "),
diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c
index bf0afe5b8..2dab94e10 100644
--- a/src/field_player_avatar.c
+++ b/src/field_player_avatar.c
@@ -720,7 +720,7 @@ static void PlayerAvatarTransition_Bike(struct ObjectEvent * playerObjEvent)
{
QuestLogTryRecordPlayerAvatarGfxTransition(QL_PLAYER_GFX_BIKE);
QuestLogCallUpdatePlayerSprite(QL_PLAYER_GFX_BIKE);
- InitPlayerAvatarBikeState(0, 0);
+ BikeClearState(0, 0);
}
static void PlayerAvatarTransition_Surfing(struct ObjectEvent * playerObjEvent)
@@ -913,7 +913,7 @@ void HandleEnforcedLookDirectionOnPlayerStopMoving(void)
{
if (gPlayerAvatar.tileTransitionState == T_TILE_CENTER || gPlayerAvatar.tileTransitionState == T_NOT_MOVING)
{
- if (player_should_look_direction_be_enforced_upon_movement())
+ if (IsPlayerNotUsingAcroBikeOnBumpySlope())
PlayerForceSetHeldMovement(GetFaceDirectionMovementAction(gObjectEvents[gPlayerAvatar.objectEventId].facingDirection));
}
}
@@ -1346,12 +1346,13 @@ void StartPlayerAvatarFishAnim(u8 direction)
QuestLogCallUpdatePlayerSprite(QL_PLAYER_GFX_FISH);
}
-void nullsub_24(u8 direction)
+// Stubbed from R/S
+void PlayerUseAcroBikeOnBumpySlope(u8 direction)
{
}
-static void nullsub_25(void)
+static void SetPlayerAvatarWatering(void)
{
}
@@ -1838,7 +1839,7 @@ static bool8 Fishing10(struct Task *task)
{
AlignFishingAnimationFrames(&gSprites[gPlayerAvatar.spriteId]);
FillWindowPixelBuffer(0, PIXEL_FILL(1));
- AddTextPrinterParameterized2(0, 2, gText_PokemonOnHook, 1, 0, TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GREY);
+ AddTextPrinterParameterized2(0, 2, gText_PokemonOnHook, 1, 0, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
task->tStep++;
task->tFrameCounter = 0;
return FALSE;
@@ -1885,7 +1886,7 @@ static bool8 Fishing12(struct Task *task)
AlignFishingAnimationFrames(&gSprites[gPlayerAvatar.spriteId]);
StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], GetFishingNoCatchDirectionAnimNum(GetPlayerFacingDirection()));
FillWindowPixelBuffer(0, PIXEL_FILL(1));
- AddTextPrinterParameterized2(0, 2, gText_NotEvenANibble, 1, NULL, TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GREY);
+ AddTextPrinterParameterized2(0, 2, gText_NotEvenANibble, 1, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
task->tStep = FISHING_SHOW_RESULT;
return TRUE;
}
@@ -1895,7 +1896,7 @@ static bool8 Fishing13(struct Task *task)
{
AlignFishingAnimationFrames(&gSprites[gPlayerAvatar.spriteId]);
StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], GetFishingNoCatchDirectionAnimNum(GetPlayerFacingDirection()));
- AddTextPrinterParameterized2(0, 2, gText_ItGotAway, 1, NULL, TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GREY);
+ AddTextPrinterParameterized2(0, 2, gText_ItGotAway, 1, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
task->tStep++;
return TRUE;
}
diff --git a/src/field_screen_effect.c b/src/field_screen_effect.c
index db5173651..8e0e76488 100644
--- a/src/field_screen_effect.c
+++ b/src/field_screen_effect.c
@@ -29,7 +29,7 @@ static const struct WindowTemplate gUnknown_83C68E4 = {
.baseBlock = 1,
};
-static const u8 gUnknown_83C68EC[] = { TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY };
+static const u8 gUnknown_83C68EC[] = { TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY };
static void Task_EnableScriptAfterMusicFade(u8 taskId);
static void Task_BarnDoorWipeChild(u8 taskId);
diff --git a/src/graphics.c b/src/graphics.c
index 7769e576c..04a6f6206 100644
--- a/src/graphics.c
+++ b/src/graphics.c
@@ -1224,29 +1224,29 @@ const u16 gUnknown_8E99F24[] = INCBIN_U16("graphics/link_rfu/unk_8E9A168.gbapal"
const u32 gEasyChatSelectGroupHelp_Tiles[] = INCBIN_U32("graphics/link_rfu/unk_8E99F44.4bpp.lz");
const u32 gEasyChatModeIcons_Tiles[] = INCBIN_U32("graphics/link_rfu/unk_8E9A168.4bpp.lz");
-const u32 gUnknown_8E9A460[] = INCBIN_U32("graphics/interface/trainer_memo.4bpp.lz");
-const u32 gUnknown_8E9B310[] = INCBIN_U32("graphics/interface/trainer_memo_pal1.gbapal");
+const u32 gPokeSumBgTiles[] = INCBIN_U32("graphics/interface/trainer_memo.4bpp.lz");
+const u32 gTrainerMemoPal1[] = INCBIN_U32("graphics/interface/trainer_memo_pal1.gbapal");
const u32 gUnknown_8E9B3B0[] = INCBIN_U32("graphics/interface/trainer_memo_pal2.gbapal");
const u32 gUnknown_8E9B3D0[] = INCBIN_U32("graphics/interface/trainer_memo_pal3.gbapal");
-const u32 gUnknown_8E9B3F0[] = INCBIN_U32("graphics/interface/summary_exp_bar.4bpp.lz");
-const u32 gUnknown_8E9B4B8[] = INCBIN_U32("graphics/interface/summary_hp_bar.4bpp.lz");
-const u16 gUnknown_8E9B578[] = INCBIN_U16("graphics/interface/summary_exp_bar.gbapal"); // hp bar uses this too
+const u32 gPokeSummary_ExpBarTiles[] = INCBIN_U32("graphics/interface/summary_exp_bar.4bpp.lz");
+const u32 gPokeSummary_HpBarTiles[] = INCBIN_U32("graphics/interface/summary_hp_bar.4bpp.lz");
+const u16 gPokeSummary_ExpBarPals[] = INCBIN_U16("graphics/interface/summary_exp_bar.gbapal"); // hp bar uses this too
-const u32 gUnknown_8E9B598[] = INCBIN_U32("graphics/interface/trainer_memo.bin.lz");
-const u32 gUnknown_8E9B750[] = INCBIN_U32("graphics/interface/trainer_memo_2.bin.lz");
-const u32 gUnknown_8E9B950[] = INCBIN_U32("graphics/interface/trainer_memo_3.bin.lz");
-const u32 gUnknown_8E9BA9C[] = INCBIN_U32("graphics/interface/trainer_memo_4.bin.lz");
-const u32 gUnknown_8E9BBCC[] = INCBIN_U32("graphics/interface/trainer_memo_5.bin.lz");
+const u32 gBgTilemap_TrainerMemo_Details[] = INCBIN_U32("graphics/interface/trainer_memo.bin.lz");
+const u32 gBgTilemap_TrainerMemo_Stats[] = INCBIN_U32("graphics/interface/trainer_memo_2.bin.lz");
+const u32 gBgTilemap_PokeSum_MovesListForDelete[] = INCBIN_U32("graphics/interface/trainer_memo_3.bin.lz");
+const u32 gBgTilemap_PokeSum_MoveDetailsForDelete[] = INCBIN_U32("graphics/interface/trainer_memo_4.bin.lz");
+const u32 gBgTilemap_TrainerMemo_Egg[] = INCBIN_U32("graphics/interface/trainer_memo_5.bin.lz");
const u16 gUnknown_8E9BD08[] = INCBIN_U16("graphics/unknown/unknown_E9BD08.gbapal"); // might be an alternate unused palette of the link_rfu gfx below.
const u32 gEasyChatRedRectangularCursor_Tiles[] = INCBIN_U32("graphics/interface/link_rfu_frame.4bpp.lz");
-const u16 gUnknown_8E9BF28[] = INCBIN_U16("graphics/interface/link_rfu_frame.gbapal");
-const u32 gUnknown_8E9BF48[] = INCBIN_U32("graphics/interface/link_rfu_status.4bpp.lz");
+const u16 gPokeSummary_StatusAilmentIconPals[] = INCBIN_U16("graphics/interface/link_rfu_frame.gbapal");
+const u32 gPokeSummary_StatusAilmentIconTiles[] = INCBIN_U32("graphics/interface/link_rfu_status.4bpp.lz");
-const u16 gUnknown_8E9C14C[] = INCBIN_U16("graphics/interface/pokedex_abc.gbapal");
-const u16 gUnknown_8E9C16C[] = INCBIN_U16("graphics/interface/pokedex_abc.4bpp.lz");
+const u16 gDexScreen_TopMenuIconPals_AtoZ[] = INCBIN_U16("graphics/pokedex/cat_icon_abc.gbapal");
+const u32 gDexScreen_TopMenuIconTiles_AtoZ[] = INCBIN_U32("graphics/pokedex/cat_icon_abc.4bpp.lz");
const u16 gPSSMenu_Pal[] = INCBIN_U16("graphics/interface/box_tiles_pal1.gbapal");
const u16 gUnknown_8E9C3F8[] = INCBIN_U16("graphics/interface/box_tiles_pal2.gbapal");
diff --git a/src/help_message.c b/src/help_message.c
index 82a10a5ab..d47642a85 100644
--- a/src/help_message.c
+++ b/src/help_message.c
@@ -89,7 +89,7 @@ static void sub_8112FD0(void)
sub_8112F18(sHelpMessageWindowId);
}
-static const u8 sHelpMessageTextColors[3] = {TEXT_COLOR_TRANSPARENT, TEXT_DYNAMIC_COLOR_1, TEXT_COLOR_DARK_GREY};
+static const u8 sHelpMessageTextColors[3] = {TEXT_COLOR_TRANSPARENT, TEXT_DYNAMIC_COLOR_1, TEXT_COLOR_DARK_GRAY};
static void PrintHelpMessageText(const u8 *text)
{
diff --git a/src/help_system_util.c b/src/help_system_util.c
index cd7bd1acf..f23bbbcff 100644
--- a/src/help_system_util.c
+++ b/src/help_system_util.c
@@ -400,7 +400,8 @@ void HelpSystemRenderText(u8 font, u8 * dest, const u8 * src, u8 x, u8 y, u8 wid
case PLACEHOLDER_BEGIN:
curChar = *src;
src++;
- if (curChar == PLACEHOLDER_ID_PLAYER) {
+ if (curChar == PLACEHOLDER_ID_PLAYER)
+ {
for (i = 0; i < 10; i++)
{
if (gSaveBlock2Ptr->playerName[i] == EOS)
@@ -477,42 +478,33 @@ void HelpSystemRenderText(u8 font, u8 * dest, const u8 * src, u8 x, u8 y, u8 wid
case EXT_CTRL_CODE_SHIFT_RIGHT:
case EXT_CTRL_CODE_SHIFT_DOWN:
src++;
+ case EXT_CTRL_CODE_RESET_FONT:
+ case EXT_CTRL_CODE_WAIT_BUTTON:
+ case EXT_CTRL_CODE_WAIT_SE:
+ case EXT_CTRL_CODE_FILL_WINDOW:
+ break;
+ case EXT_CTRL_CODE_CLEAR:
+ case EXT_CTRL_CODE_SKIP:
+ src++;
break;
case EXT_CTRL_CODE_CLEAR_TO:
{
-#ifdef NONMATCHING
- curChar = *src;
- clearPixels = curChar + orig_x - x;
-#else // dumb fakematch
- s32 r0;
- register const u8 * _src asm("r2") = src;
- asm("":::"r1");
- r0 = *_src;
- r0 += orig_x;
- clearPixels = r0 - x;
-#endif
+ clearPixels = *src + orig_x - x;
+
if (clearPixels > 0)
{
destBlit.pixels = dest;
destBlit.width = width * 8;
destBlit.height = height * 8;
- FillBitmapRect4Bit(&destBlit, x, y, clearPixels, GetFontAttribute(font, FONTATTR_MAX_LETTER_HEIGHT),
- 0);
+ FillBitmapRect4Bit(&destBlit, x, y, clearPixels, GetFontAttribute(font, FONTATTR_MAX_LETTER_HEIGHT), 0);
x += clearPixels;
}
src++;
break;
}
- case EXT_CTRL_CODE_CLEAR:
- case EXT_CTRL_CODE_SKIP:
case EXT_CTRL_CODE_MIN_LETTER_SPACING:
src++;
break;
- case EXT_CTRL_CODE_RESET_FONT:
- case EXT_CTRL_CODE_WAIT_BUTTON:
- case EXT_CTRL_CODE_WAIT_SE:
- case EXT_CTRL_CODE_FILL_WINDOW:
- break;
case EXT_CTRL_CODE_JPN:
case EXT_CTRL_CODE_ENG:
break;
@@ -521,7 +513,7 @@ void HelpSystemRenderText(u8 font, u8 * dest, const u8 * src, u8 x, u8 y, u8 wid
case CHAR_KEYPAD_ICON:
curChar = *src;
src++;
- srcBlit.pixels = (u8 *)gKeypadIconTiles + 0x20 * GetKeypadIconTileOffset(curChar);
+ srcBlit.pixels = (u8 *)&gKeypadIconTiles[0x20 * GetKeypadIconTileOffset(curChar)];
srcBlit.width = 0x80;
srcBlit.height = 0x80;
destBlit.pixels = dest;
diff --git a/src/item.c b/src/item.c
index ab082c315..801c7d689 100644
--- a/src/item.c
+++ b/src/item.c
@@ -598,7 +598,7 @@ void TrySetObtainedItemQuestLogEvent(u16 itemId)
|| itemId == ITEM_SAPPHIRE
)
{
- if (itemId != ITEM_TOWN_MAP || (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(PALLET_TOWN_GARYS_HOUSE) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(PALLET_TOWN_GARYS_HOUSE)))
+ if (itemId != ITEM_TOWN_MAP || (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(PALLET_TOWN_RIVALS_HOUSE) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(PALLET_TOWN_RIVALS_HOUSE)))
{
ptr = malloc(sizeof(*ptr));
ptr->itemId = itemId;
diff --git a/src/item_menu.c b/src/item_menu.c
index 3abecc1f5..6b23482e5 100644
--- a/src/item_menu.c
+++ b/src/item_menu.c
@@ -289,9 +289,9 @@ static const struct YesNoFuncTable sYesNoMenu_Sell = {
Task_SellItem_No
};
-static const u8 sListItemTextColor_RegularItem[] = _("{COLOR_HIGHLIGHT_SHADOW RED TRANSPARENT GREEN}");
+static const u8 sListItemTextColor_RegularItem[] = _("{COLOR_HIGHLIGHT_SHADOW DARK_GRAY TRANSPARENT LIGHT_GRAY}");
-static const u8 sListItemTextColor_TmCase_BerryPouch[] = _("{COLOR_HIGHLIGHT_SHADOW LIGHT_GRAY TRANSPARENT BLACK}");
+static const u8 sListItemTextColor_TmCase_BerryPouch[] = _("{COLOR_HIGHLIGHT_SHADOW BLUE TRANSPARENT LIGHT_BLUE}");
static const struct ScrollArrowsTemplate sPocketSwitchArrowPairTemplate = {
.firstArrowType = SCROLL_ARROW_LEFT,
diff --git a/src/item_pc.c b/src/item_pc.c
index 8f25e90ad..4366997ba 100644
--- a/src/item_pc.c
+++ b/src/item_pc.c
@@ -121,10 +121,10 @@ static const struct MenuAction sItemPcSubmenuOptions[] = {
};
static const u8 sTextColors[][3] = {
- {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY},
- {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY},
- {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_GREY, TEXT_COLOR_DARK_GREY},
- {TEXT_COLOR_TRANSPARENT, TEXT_DYNAMIC_COLOR_1, TEXT_COLOR_DARK_GREY}
+ {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY},
+ {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY},
+ {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_GRAY, TEXT_COLOR_DARK_GRAY},
+ {TEXT_COLOR_TRANSPARENT, TEXT_DYNAMIC_COLOR_1, TEXT_COLOR_DARK_GRAY}
};
static const struct WindowTemplate sWindowTemplates[] = {
diff --git a/src/item_use.c b/src/item_use.c
index 585d44273..b801e9ee5 100644
--- a/src/item_use.c
+++ b/src/item_use.c
@@ -263,7 +263,7 @@ void FieldUseFunc_MachBike(u8 taskId)
|| MetatileBehavior_IsIsolatedVerticalRail(behavior) == TRUE
|| MetatileBehavior_IsIsolatedHorizontalRail(behavior) == TRUE)
DisplayItemMessageInCurrentContext(taskId, gTasks[taskId].data[3], 2, gUnknown_8416451);
- else if (Overworld_IsBikingAllowed() == TRUE && !MetatileAtPlayerPositionForbidsBiking())
+ else if (Overworld_IsBikingAllowed() == TRUE && !IsBikingDisallowedByPlayer())
{
sItemUseOnFieldCB = ItemUseOnFieldCB_Bicycle;
sub_80A103C(taskId);
@@ -276,7 +276,7 @@ static void ItemUseOnFieldCB_Bicycle(u8 taskId)
{
if (!TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_MACH_BIKE | PLAYER_AVATAR_FLAG_ACRO_BIKE))
PlaySE(SE_BIKE_BELL);
- StartTransitionToFlipBikeState(PLAYER_AVATAR_FLAG_MACH_BIKE | PLAYER_AVATAR_FLAG_ACRO_BIKE);
+ GetOnOffBike(PLAYER_AVATAR_FLAG_MACH_BIKE | PLAYER_AVATAR_FLAG_ACRO_BIKE);
ClearPlayerHeldMovementAndUnfreezeObjectEvents();
ScriptContext2_Disable();
DestroyTask(taskId);
diff --git a/src/librfu_intr.c b/src/librfu_intr.c
index 41085182a..4c2f2573a 100644
--- a/src/librfu_intr.c
+++ b/src/librfu_intr.c
@@ -147,11 +147,7 @@ static void sio32intr_clock_slave(void)
{
u32 regSIODATA32;
u32 r0;
- #ifndef NONMATCHING
- register u32 reqLen asm("r2");
- #else
- u32 reqLen;
- #endif
+ u32 reqLen;
gSTWIStatus->timerActive = 0;
STWI_set_timer_in_RAM(100);
@@ -164,10 +160,14 @@ static void sio32intr_clock_slave(void)
((u32*)gSTWIStatus->rxPacket)[0] = regSIODATA32;
gSTWIStatus->reqNext = 1;
r0 = 0x99660000;
- if ((regSIODATA32 >> 16) == (r0 >> 16))
+ // variable reuse required
+ reqLen = (regSIODATA32 >> 16);
+ if (reqLen == (r0 >> 16))
{
+ // only reqLen = regSIODATA32 >> 8 is required to match, but it looks a bit
+ // more consistent when both lines update the variables. Might have been a macro?
gSTWIStatus->reqLength = reqLen = regSIODATA32 >> 8;
- gSTWIStatus->reqActiveCommand = regSIODATA32;
+ gSTWIStatus->reqActiveCommand = reqLen = (regSIODATA32 >> 0);
if (gSTWIStatus->reqLength == 0)
{
if (
diff --git a/src/librfu_rfu.c b/src/librfu_rfu.c
index 3f5bd8b69..9f642907b 100644
--- a/src/librfu_rfu.c
+++ b/src/librfu_rfu.c
@@ -1425,35 +1425,35 @@ static u16 rfu_STC_setSendData_org(u8 ni_or_uni, u8 bmSendSlot, u8 subFrameSize,
sending = ni_or_uni & 0x20;
if (sending || ni_or_uni == 0x40)
{
- u8 *dataType_p; // a hack to swap instructions
-
slotStatus_NI = gRfuSlotStatusNI[bm_slot_id];
slotStatus_UNI = NULL;
slotStatus_NI->send.errorCode = 0;
- *slotStatus_NI->send.now_p = dataType_p = &slotStatus_NI->send.dataType;
+ slotStatus_NI->send.now_p[0] = &slotStatus_NI->send.dataType;
slotStatus_NI->send.remainSize = 7;
slotStatus_NI->send.bmSlotOrg = bmSendSlot;
slotStatus_NI->send.bmSlot = bmSendSlot;
slotStatus_NI->send.payloadSize = subFrameSize - frameSize;
if (sending != 0)
- *dataType_p = 0;
+ slotStatus_NI->send.dataType = 0;
else
- *dataType_p = 1;
+ slotStatus_NI->send.dataType = 1;
slotStatus_NI->send.dataSize = dataSize;
slotStatus_NI->send.src = src;
slotStatus_NI->send.ack = 0;
slotStatus_NI->send.phase = 0;
- #ifndef NONMATCHING // to fix r2, r3, r4, r5 register roulette
- asm("":::"r2");
- #endif
for (i = 0; i < WINDOW_COUNT; ++i)
{
slotStatus_NI->send.recvAckFlag[i] = 0;
slotStatus_NI->send.n[i] = 1;
}
for (bm_slot_id = 0; bm_slot_id < RFU_CHILD_MAX; ++bm_slot_id)
- if ((bmSendSlot >> bm_slot_id) & 1)
- gRfuSlotStatusNI[bm_slot_id]->send.failCounter = 0;
+ {
+ do
+ {
+ if ((bmSendSlot >> bm_slot_id) & 1)
+ gRfuSlotStatusNI[bm_slot_id]->send.failCounter = 0;
+ } while (0);
+ }
gRfuLinkStatus->sendSlotNIFlag |= bmSendSlot;
*llFrameSize_p -= subFrameSize;
slotStatus_NI->send.state = SLOT_STATE_SEND_START;
@@ -1758,9 +1758,6 @@ static void rfu_constructSendLLFrame(void)
{
u8 *maxSize = llf_p - offsetof(struct RfuFixed, LLFBuffer[1]);
- // Does the volatile qualifier make sense?
- // It's the same as:
- // asm("":::"memory");
pakcketSize = maxSize - *(u8 *volatile *)&gRfuFixed;
}
}
diff --git a/src/librfu_sio32id.c b/src/librfu_sio32id.c
index b6623540f..d726bca7b 100644
--- a/src/librfu_sio32id.c
+++ b/src/librfu_sio32id.c
@@ -123,34 +123,30 @@ static void Sio32IDIntr(void)
{
u32 regSIODATA32;
u16 delay;
-#ifndef NONMATCHING
- register u32 rfuSIO32IdUnk0_times_16 asm("r1");
- register u16 negRfuSIO32IdUnk6 asm("r0");
-#else
u32 rfuSIO32IdUnk0_times_16;
u16 negRfuSIO32IdUnk6;
-#endif
regSIODATA32 = REG_SIODATA32;
if (gRfuSIO32Id.MS_mode != AGB_CLK_MASTER)
REG_SIOCNT |= SIO_ENABLE;
- rfuSIO32IdUnk0_times_16 = 16 * gRfuSIO32Id.MS_mode; // to handle side effect of inline asm
- rfuSIO32IdUnk0_times_16 = (regSIODATA32 << rfuSIO32IdUnk0_times_16) >> 16;
+ rfuSIO32IdUnk0_times_16 = (regSIODATA32 << (16 * gRfuSIO32Id.MS_mode)) >> 16;
regSIODATA32 = (regSIODATA32 << 16 * (1 - gRfuSIO32Id.MS_mode)) >> 16;
if (gRfuSIO32Id.lastId == 0)
{
- if (rfuSIO32IdUnk0_times_16 == gRfuSIO32Id.recv_id)
+ u16 backup = rfuSIO32IdUnk0_times_16;
+ if (backup == gRfuSIO32Id.recv_id)
{
- if (gRfuSIO32Id.count > 3)
+ if (gRfuSIO32Id.count < 4)
{
- gRfuSIO32Id.lastId = regSIODATA32;
- }
- else if (rfuSIO32IdUnk0_times_16 == (u16)~gRfuSIO32Id.send_id)
- {
- negRfuSIO32IdUnk6 = ~gRfuSIO32Id.recv_id;
- if (regSIODATA32 == negRfuSIO32IdUnk6)
- ++gRfuSIO32Id.count;
+ backup = (u16)~gRfuSIO32Id.send_id;
+ if (gRfuSIO32Id.recv_id == backup)
+ {
+ if (regSIODATA32 == (u16)~gRfuSIO32Id.recv_id)
+ ++gRfuSIO32Id.count;
+ }
}
+ else
+ gRfuSIO32Id.lastId = regSIODATA32;
}
else
{
diff --git a/src/link.c b/src/link.c
index d9de614ea..2a242dde9 100644
--- a/src/link.c
+++ b/src/link.c
@@ -1709,7 +1709,7 @@ u32 GetLinkRecvQueueLength(void)
return gLink.recvQueue.count;
}
-bool32 sub_800B270(void)
+bool32 LinkRecvQueueLengthMoreThan2(void)
{
if (GetLinkRecvQueueLength() > 2)
{
diff --git a/src/list_menu.c b/src/list_menu.c
index 5d3cb037f..b032ae012 100644
--- a/src/list_menu.c
+++ b/src/list_menu.c
@@ -748,12 +748,12 @@ void ListMenuSetUnkIndicatorsStructField(u8 taskId, u8 field, s32 value)
}
}
-void sub_8107CD8(u8 palOffset, u16 speciesId)
+void ListMenu_LoadMonIconPalette(u8 palOffset, u16 speciesId)
{
LoadPalette(GetValidMonIconPalettePtr(speciesId), palOffset, 0x20);
}
-void sub_8107CF8(u8 windowId, u16 speciesId, u32 personality, u16 x, u16 y)
+void ListMenu_DrawMonIconGraphics(u8 windowId, u16 speciesId, u32 personality, u16 x, u16 y)
{
BlitBitmapToWindow(windowId, GetMonIconPtr(speciesId, personality, 1), x, y, 32, 32);
}
diff --git a/src/m4a.c b/src/m4a.c
index 8772b6f2f..639aa2ac6 100644
--- a/src/m4a.c
+++ b/src/m4a.c
@@ -871,18 +871,13 @@ void CgbModVol(struct CgbChannel *chan)
if ((soundInfo->mode & 1) || !CgbPan(chan))
{
chan->pan = 0xFF;
- chan->eg = (u32)(chan->rightVolume + chan->leftVolume) >> 4;
+ chan->eg = (u32)(chan->leftVolume + chan->rightVolume);
+ chan->eg /= 16;
}
else
{
- // Force chan->rightVolume and chan->leftVolume to be read from memory again,
- // even though there is no reason to do so.
- // The command line option "-fno-gcse" achieves the same result as this.
- #ifndef NONMATCHING
- asm("" : : : "memory");
- #endif
-
- chan->eg = (u32)(chan->rightVolume + chan->leftVolume) >> 4;
+ chan->eg = (u32)(chan->leftVolume + chan->rightVolume);
+ chan->eg /= 16;
if (chan->eg > 15)
chan->eg = 15;
}
diff --git a/src/map_preview_screen.c b/src/map_preview_screen.c
index 7666decd3..ec889a2f5 100644
--- a/src/map_preview_screen.c
+++ b/src/map_preview_screen.c
@@ -455,7 +455,7 @@ u16 MapPreview_CreateMapNameWindow(u8 mapsec)
PutWindowTilemap(windowId);
color[0] = TEXT_COLOR_WHITE; // Access violation
color[1] = TEXT_COLOR_RED; // Access violation
- color[2] = TEXT_COLOR_LIGHT_GREY; // Access violation
+ color[2] = TEXT_COLOR_LIGHT_GRAY; // Access violation
GetMapName(gStringVar4, mapsec, 0);
xctr = 104 - GetStringWidth(2, gStringVar4, 0);
AddTextPrinterParameterized4(windowId, 2, xctr / 2, 2, 0, 0, color/* Access violation */, -1, gStringVar4);
diff --git a/src/menu_helpers.c b/src/menu_helpers.c
index 01ea44ae5..a64a4a0cd 100644
--- a/src/menu_helpers.c
+++ b/src/menu_helpers.c
@@ -132,7 +132,7 @@ bool8 sub_80BF748(void)
{
if (MenuHelpers_CallLinkSomething() == TRUE)
return TRUE;
- else if (sub_800B270() != TRUE)
+ else if (LinkRecvQueueLengthMoreThan2() != TRUE)
return FALSE;
else
return TRUE;
diff --git a/src/metatile_behavior.c b/src/metatile_behavior.c
index 4728ca05c..95215d7b6 100644
--- a/src/metatile_behavior.c
+++ b/src/metatile_behavior.c
@@ -598,7 +598,7 @@ bool8 MetatileBehavior_IsWaterfall(u8 metatileBehavior)
return FALSE;
}
-bool8 MetatileBehavior_ReturnFalse_9(u8 metatileBehavior) { return FALSE; }
+bool8 MetatileBehavior_IsFortreeBridge(u8 metatileBehavior) { return FALSE; }
bool8 MetatileBehavior_UnusedReturnFalse(u8 metatileBehavior){ return FALSE; }
bool8 MetatileBehavior_UnusedReturnFalse_2(u8 metatileBehavior) { return FALSE; }
bool8 MetatileBehavior_UnusedReturnFalse_3(u8 metatileBehavior) { return FALSE; }
@@ -691,9 +691,9 @@ bool8 MetatileBehavior_IsSeaweed(u8 metatileBehavior)
return FALSE;
}
-bool8 MetatileBehavior_IsMB0A(u8 metatileBehavior)
+bool8 MetatileBehavior_IsRunningDisallowed(u8 metatileBehavior)
{
- if(metatileBehavior == MB_0A)
+ if(metatileBehavior == MB_RUNNING_DISALLOWED)
return TRUE;
else
return FALSE;
diff --git a/src/naming_screen.c b/src/naming_screen.c
index 76c1a241e..2f40cf2aa 100644
--- a/src/naming_screen.c
+++ b/src/naming_screen.c
@@ -706,7 +706,7 @@ static void pokemon_transfer_to_pc_with_message(void)
StringExpandPlaceholders(gStringVar4, sTransferredToPCMessages[stringToDisplay]);
DrawDialogueFrame(0, FALSE);
gTextFlags.canABSpeedUpPrint = TRUE;
- AddTextPrinterParameterized2(0, 2, gStringVar4, GetTextSpeedSetting(), NULL, TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GREY);
+ AddTextPrinterParameterized2(0, 2, gStringVar4, GetTextSpeedSetting(), NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
CopyWindowToVram(0, COPYWIN_BOTH);
}
@@ -1814,9 +1814,9 @@ struct TextColor // Needed because of alignment
static const struct TextColor sTextColorStruct = {
{
- {TEXT_DYNAMIC_COLOR_4, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY},
- {TEXT_DYNAMIC_COLOR_5, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY},
- {TEXT_DYNAMIC_COLOR_6, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY}
+ {TEXT_DYNAMIC_COLOR_4, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY},
+ {TEXT_DYNAMIC_COLOR_5, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY},
+ {TEXT_DYNAMIC_COLOR_6, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY}
}
};
@@ -1880,7 +1880,7 @@ static void sub_809FA60(void)
static void sub_809FAE4(void)
{
- const u8 color[3] = { TEXT_DYNAMIC_COLOR_6, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY };
+ const u8 color[3] = { TEXT_DYNAMIC_COLOR_6, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY };
int strwidth = GetStringWidth(0, gText_MoveOkBack, 0);
FillWindowPixelBuffer(sNamingScreenData->windows[4], PIXEL_FILL(15));
diff --git a/src/option_menu.c b/src/option_menu.c
index f011bc1ec..0d7d22071 100644
--- a/src/option_menu.c
+++ b/src/option_menu.c
@@ -176,7 +176,7 @@ static const u8 *const sButtonTypeOptions[] =
gText_ButtonTypeLEqualsA
};
-static const u8 sOptionMenuPickSwitchCancelTextColor[] = {TEXT_DYNAMIC_COLOR_6, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY};
+static const u8 sOptionMenuPickSwitchCancelTextColor[] = {TEXT_DYNAMIC_COLOR_6, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY};
static const u8 sOptionMenuTextColor[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_RED, TEXT_COLOR_RED};
// Functions
diff --git a/src/overworld.c b/src/overworld.c
index 10a700e1f..2083b7578 100644
--- a/src/overworld.c
+++ b/src/overworld.c
@@ -3117,13 +3117,13 @@ static u16 GetDirectionForEventScript(const u8 *script)
return FACING_FORCED_RIGHT;
else if (script == BattleColosseum_4P_EventScript_PlayerSpot3)
return FACING_FORCED_LEFT;
- else if (script == RecordCenter_EventScript_Spot0)
+ else if (script == RecordCorner_EventScript_Spot0)
return FACING_FORCED_RIGHT;
- else if (script == RecordCenter_EventScript_Spot1)
+ else if (script == RecordCorner_EventScript_Spot1)
return FACING_FORCED_LEFT;
- else if (script == RecordCenter_EventScript_Spot2)
+ else if (script == RecordCorner_EventScript_Spot2)
return FACING_FORCED_RIGHT;
- else if (script == RecordCenter_EventScript_Spot3)
+ else if (script == RecordCorner_EventScript_Spot3)
return FACING_FORCED_LEFT;
else if (script == BattleColosseum_2P_EventScript_PlayerSpot0)
return FACING_FORCED_RIGHT;
diff --git a/src/party_menu.c b/src/party_menu.c
index 8dcc1d450..e08c427c8 100644
--- a/src/party_menu.c
+++ b/src/party_menu.c
@@ -3125,7 +3125,7 @@ static void CB2_ShowPokemonSummaryScreen(void)
{
if (gPartyMenu.menuType == PARTY_MENU_TYPE_IN_BATTLE)
UpdatePartyToBattleOrder();
- ShowPokemonSummaryScreen(gPlayerParty, gPartyMenu.slotId, gPlayerPartyCount - 1, CB2_ReturnToPartyMenuFromSummaryScreen, 0);
+ ShowPokemonSummaryScreen(gPlayerParty, gPartyMenu.slotId, gPlayerPartyCount - 1, CB2_ReturnToPartyMenuFromSummaryScreen, PSS_MODE_NORMAL);
}
static void CB2_ReturnToPartyMenuFromSummaryScreen(void)
diff --git a/src/party_menu_specials.c b/src/party_menu_specials.c
index 56e3373ec..03e77f52c 100644
--- a/src/party_menu_specials.c
+++ b/src/party_menu_specials.c
@@ -44,7 +44,7 @@ static void sub_80BF97C(u8 taskId)
void SelectMoveDeleterMove(void)
{
ShowSelectMovePokemonSummaryScreen(gPlayerParty, gSpecialVar_0x8004, gPlayerPartyCount - 1, CB2_ReturnToField, 0);
- sub_8138B38(3);
+ SetPokemonSummaryScreenMode(PSS_MODE_FORGET_MOVE);
gFieldCallback = FieldCB_ContinueScriptHandleMusic;
}
diff --git a/src/pokedex.c b/src/pokedex.c
index c49767ea9..e3e83c3c4 100644
--- a/src/pokedex.c
+++ b/src/pokedex.c
@@ -22,7 +22,7 @@ u16 GetPokedexHeightWeight(u16 dexNum, u8 data)
s8 GetSetPokedexFlag(u16 nationalDexNo, u8 caseID)
{
- return sub_8104AB0(nationalDexNo, caseID, 0);
+ return DexScreen_GetSetPokedexFlag(nationalDexNo, caseID, 0);
}
u16 GetNationalPokedexCount(u8 caseID)
diff --git a/src/pokedex_area_markers.c b/src/pokedex_area_markers.c
index a47d6876d..5226133ac 100644
--- a/src/pokedex_area_markers.c
+++ b/src/pokedex_area_markers.c
@@ -157,7 +157,7 @@ static void Task_ShowAreaMarkers(u8 taskId)
gSprites[data->spr_id].invisible = FALSE;
}
-u8 sub_8134230(u16 species, u16 tilesTag, u8 palIdx, u8 y)
+u8 Ctor_PokedexAreaMarkers(u16 species, u16 tilesTag, u8 palIdx, u8 y)
{
struct SpriteTemplate spriteTemplate;
struct CompressedSpriteSheet spriteSheet;
@@ -201,7 +201,7 @@ u8 sub_8134230(u16 species, u16 tilesTag, u8 palIdx, u8 y)
return taskId;
}
-void sub_81343F4(u8 taskId)
+void Dtor_PokedexAreaMarkers(u8 taskId)
{
struct PAM_TaskData * data = (void *)gTasks[taskId].data;
FreeSpriteTilesByTag(data->tilesTag);
@@ -228,7 +228,7 @@ void SetAreaSubsprite(s32 i, s32 whichArea, struct Subsprite * subsprites)
subsprites[i].y = sSubspriteLookupTable[whichArea][2];
}
-u8 sub_81344E0(u8 taskId)
+u8 PokedexAreaMarkers_Any(u8 taskId)
{
struct PAM_TaskData * data = (void *)gTasks[taskId].data;
return data->subsprites.subspriteCount;
diff --git a/src/pokedex_screen.c b/src/pokedex_screen.c
index 3c05010ae..dc8968a5f 100644
--- a/src/pokedex_screen.c
+++ b/src/pokedex_screen.c
@@ -20,58 +20,64 @@
#include "pokedex_area_markers.h"
#include "field_specials.h"
+enum TextMode {
+ TEXT_LEFT,
+ TEXT_CENTER,
+ TEXT_RIGHT
+};
+
struct PokedexScreenData
{
- u8 field_00;
- u8 field_01;
- u8 field_02[4];
- u32 field_08;
- u32 field_0C;
- u16 field_10;
- u16 field_12;
- u8 field_14;
- u8 field_15;
- u8 field_16;
- u8 field_17;
- u16 field_18[4];
- u8 field_20[4];
- u8 field_24[4];
- u8 field_28;
- u8 field_29;
- u8 field_2A;
- u8 field_2B;
- u8 field_2C;
- u8 field_2D;
- u8 field_2E;
- u8 field_2F;
- u32 field_30;
- u16 field_34;
- u16 field_36;
- u16 field_38;
- u16 field_3A;
- u16 field_3C;
- u16 field_3E;
- u8 field_40;
- u8 field_41;
- u8 field_42;
- struct ListMenuItem * field_44;
- u16 field_48;
- u8 field_4A[0x10];
- u16 field_5A;
- u16 * field_5C;
- u8 field_60;
- u8 field_61;
- u16 field_62;
- u8 field_64;
- u16 field_66;
- u16 field_68;
- u16 field_6A;
- u16 field_6C;
+ u8 taskId;
+ u8 state;
+ u8 data[4];
+ u32 unlockedCategories;
+ u32 modeSelectInput;
+ u16 modeSelectItemsAbove;
+ u16 modeSelectCursorPos;
+ u8 modeSelectWindowId;
+ u8 selectionIconWindowId;
+ u8 dexCountsWindowId;
+ u8 modeSelectListMenuId;
+ u16 pageSpecies[4];
+ u8 categoryMonWindowIds[4];
+ u8 categoryMonInfoWindowIds[4];
+ u8 category;
+ u8 firstPageInCategory;
+ u8 lastPageInCategory;
+ u8 pageNum;
+ u8 numMonsOnPage;
+ u8 categoryCursorPosInPage;
+ u8 categoryPageSelectionCursorTimer;
+ u8 parentOfCategoryMenu;
+ u32 characteristicMenuInput;
+ u16 kantoOrderMenuItemsAbove;
+ u16 kantoOrderMenuCursorPos;
+ u16 characteristicOrderMenuItemsAbove;
+ u16 characteristicOrderMenuCursorPos;
+ u16 nationalOrderMenuItemsAbove;
+ u16 nationalOrderMenuCursorPos;
+ u8 numericalOrderWindowId;
+ u8 orderedListMenuTaskId;
+ u8 dexOrderId;
+ struct ListMenuItem * listItems;
+ u16 orderedDexCount;
+ u8 windowIds[0x10];
+ u16 dexSpecies;
+ u16 * bgBufsMem;
+ u8 scrollArrowsTaskId;
+ u8 categoryPageCursorTaskId;
+ u16 modeSelectCursorPosBak;
+ u8 unlockedSeviiAreas;
+ u16 numSeenKanto;
+ u16 numOwnedKanto;
+ u16 numSeenNational;
+ u16 numOwnedNational;
};
struct PokedexScreenWindowGfx
{
- const u16 * map;
+ const u32 * tiles;
const u16 * pal;
};
@@ -81,61 +87,61 @@ struct PokedexCategoryPage
u8 count;
};
-EWRAM_DATA struct PokedexScreenData * gUnknown_203ACF0 = NULL;
-
-static void sub_810287C(u8 taskId);
-static void sub_8102C28(void);
-static void sub_8102F80(u8 taskId);
-static void sub_810317C(void);
-static void sub_8103238(u8 taskId);
-static void sub_810345C(void);
-static u16 sub_8103518(u8 a0);
-static void sub_8103924(const struct ListMenuTemplate * a0, u8 a1);
-static u8 sub_81039F0(void);
-static void sub_8103988(u8 a0);
-static void sub_8103AC8(u8 taskId);
-static u8 sub_8104234(void);
-static int sub_8104284(void);
-static void sub_81042EC(u8 taskId);
-static bool32 sub_8104664(u8 a0);
-void sub_81047B0(u8 *windowId_p);
-void sub_81047C8(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 colorIdx);
-static void sub_810491C(u8 windowId, u8 fontId, u16 num, u8 x, u8 y, u8 colorIdx);
-void sub_8104A34(u8 windowId, u8 fontId, u16 species, u8 x, u8 y);
-static u16 sub_8104BBC(u8 caseId, bool8 whichDex);
-void sub_8104C2C(const u8 *src);
-void sub_8104E90(void);
-bool8 sub_8104F0C(bool8 a0);
-void sub_8105058(u8 a0);
-void sub_8105178(u8 a0, u8 a1, u8 a2);
-static bool8 sub_81052D0(u8 a0);
-void sub_8105594(u8 a0, u8 a1);
-u8 sub_8105E1C(u8 a0);
-u8 sub_8106014(void);
-u8 sub_810603C(void);
-bool8 sub_8106838(u8 category, u8 a1);
-u8 sub_81068A0(u8 a0);
-u8 sub_810699C(u8 category);
-bool8 sub_8106A20(u16 a0);
-u8 sub_81067C0(void);
-void sub_81068DC(u8 category, u8 a1);
-u8 sub_8106AF8(u16 a0);
-void sub_8106B34(void);
-void sub_8106E78(const u8 *a0, s32 a1);
-static void sub_8102EC0(s32 itemIndex, bool8 onInit, struct ListMenu *list);
-static void sub_8102F48(u8 windowId, s32 itemId, u8 y);
-static void sub_8103A40(u8 windowId, s32 itemId, u8 y);
-static void sub_8106BD8(u8 taskId);
-static void sub_8106BE8(u8 taskId);
+EWRAM_DATA static struct PokedexScreenData * sPokedexScreenData = NULL;
+
+static void Task_PokedexScreen(u8 taskId);
+static void DexScreen_InitGfxForTopMenu(void);
+static void Task_DexScreen_NumericalOrder(u8 taskId);
+static void DexScreen_InitGfxForNumericalOrderList(void);
+static void Task_DexScreen_CharacteristicOrder(u8 taskId);
+static void DexScreen_CreateCharacteristicListMenu(void);
+static u16 DexScreen_CountMonsInOrderedList(u8 orderIdx);
+static void DexScreen_InitListMenuForOrderedList(const struct ListMenuTemplate * template, u8 order);
+static u8 DexScreen_CreateDexOrderScrollArrows(void);
+static void DexScreen_DestroyDexOrderListMenu(u8 order);
+static void Task_DexScreen_CategorySubmenu(u8 taskId);
+static u8 DexScreen_CreateCategoryMenuScrollArrows(void);
+static int DexScreen_InputHandler_GetShoulderInput(void);
+static void Task_DexScreen_ShowMonPage(u8 taskId);
+static bool32 DexScreen_TryScrollMonsVertical(u8 direction);
+static void DexScreen_RemoveWindow(u8 *windowId_p);
+static void DexScreen_AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 colorIdx);
+static void DexScreen_PrintNum3RightAlign(u8 windowId, u8 fontId, u16 num, u8 x, u8 y, u8 colorIdx);
+static void DexScreen_PrintMonDexNo(u8 windowId, u8 fontId, u16 species, u8 x, u8 y);
+static u16 DexScreen_GetDexCount(u8 caseId, bool8 whichDex);
+static void DexScreen_PrintControlInfo(const u8 *src);
+static void DexScreen_DestroyCategoryPageMonIconAndInfoWindows(void);
+static bool8 DexScreen_CreateCategoryListGfx(bool8 justRegistered);
+static void DexScreen_CreateCategoryPageSelectionCursor(u8 cursorPos);
+static void DexScreen_UpdateCategoryPageCursorObject(u8 taskId, u8 cursorPos, u8 numMonsInPage);
+static bool8 DexScreen_FlipCategoryPageInDirection(u8 direction);
+void DexScreen_DexPageZoomEffectFrame(u8 bg, u8 scale);
+static u8 DexScreen_DrawMonDexPage(bool8 justRegistered);
+u8 RemoveDexPageWindows(void);
+u8 DexScreen_DrawMonAreaPage(void);
+static bool8 DexScreen_IsPageUnlocked(u8 category, u8 pageNum);
+static bool8 DexScreen_IsCategoryUnlocked(u8 category);
+static u8 DexScreen_GetPageLimitsForCategory(u8 category);
+static bool8 DexScreen_LookUpCategoryBySpecies(u16 species);
+u8 DexScreen_DestroyAreaScreenResources(void);
+void DexScreen_CreateCategoryPageSpeciesList(u8 category, u8 pageNum);
+static u8 DexScreen_PageNumberToRenderablePages(u16 page);
+void DexScreen_InputHandler_StartToCry(void);
+void DexScreen_PrintStringWithAlignment(const u8 *str, s32 mode);
+static void MoveCursorFunc_DexModeSelect(s32 itemIndex, bool8 onInit, struct ListMenu *list);
+static void ItemPrintFunc_DexModeSelect(u8 windowId, s32 itemId, u8 y);
+static void ItemPrintFunc_OrderedListMenu(u8 windowId, s32 itemId, u8 y);
+static void Task_DexScreen_RegisterNonKantoMonBeforeNationalDex(u8 taskId);
+static void Task_DexScreen_RegisterMonToPokedex(u8 taskId);
#include "data/pokemon_graphics/footprint_table.h"
-const u8 gUnknown_8440124[] = INCBIN_U8("graphics/pokedex/unk_8440124.bin.lz");
-const u8 gUnknown_8440274[] = INCBIN_U8("graphics/pokedex/unk_8440274.4bpp.lz");
-const u8 gUnknown_84403AC[] = INCBIN_U8("graphics/pokedex/unk_84403AC.4bpp.lz");
-const u16 gUnknown_84404C8[] = INCBIN_U16("graphics/pokedex/unk_84404C8.gbapal");
+const u32 sCategoryMonInfoBgTiles[] = INCBIN_U32("graphics/pokedex/mini_page.4bpp.lz");
+const u32 sKantoDexTiles[] = INCBIN_U32("graphics/pokedex/kanto_dex_bgtiles.4bpp.lz");
+const u32 sNatDexTiles[] = INCBIN_U32("graphics/pokedex/national_dex_bgtiles.4bpp.lz");
+const u16 sKantoDexPalette[0x100] = INCBIN_U16("graphics/pokedex/kanto_dex_bgpals.gbapal");
-const u16 gUnknown_84406C8[] = {
+const u16 sDexScreen_CategoryCursorPals[] = {
RGB(24, 22, 17), RGB(26, 24, 20),
RGB(26, 20, 15), RGB(27, 23, 19),
RGB(28, 18, 15), RGB(28, 22, 19),
@@ -144,47 +150,47 @@ const u16 gUnknown_84406C8[] = {
RGB(26, 20, 15), RGB(27, 23, 19)
};
-const u16 gUnknown_84406E0[] = INCBIN_U16("graphics/pokedex/unk_84406E0.gbapal");
-const u16 gUnknown_84408E0[] = INCBIN_U16("graphics/pokedex/unk_84408E0.bin.lz");
-const u16 gUnknown_8440BD8[] = INCBIN_U16("graphics/pokedex/unk_8440BD8.bin.lz");
-const u32 gUnknown_8440EF0[] = INCBIN_U32("graphics/pokedex/unk_8440EF0.bin.lz");
-const u16 gUnknown_844112C[] = INCBIN_U16("graphics/pokedex/unk_844112C.bin.lz");
-const u16 gUnknown_84414BC[] = INCBIN_U16("graphics/pokedex/unk_84414BC.bin.lz");
-const u32 gUnknown_8441808[] = INCBIN_U32("graphics/pokedex/unk_8441808.bin.lz");
-const u16 gUnknown_8441A40[] = INCBIN_U16("graphics/pokedex/unk_8441A40.bin.lz");
-const u16 gUnknown_8441D54[] = INCBIN_U16("graphics/pokedex/unk_8441D54.bin.lz");
-const u16 gUnknown_8442004[] = INCBIN_U16("graphics/pokedex/unk_8442004.bin.lz");
-const u16 gUnknown_844223C[] = INCBIN_U16("graphics/pokedex/unk_844223C.bin.lz");
-const u16 gUnknown_84424E4[] = INCBIN_U16("graphics/pokedex/unk_84424E4.bin.lz");
-const u16 gUnknown_8442838[] = INCBIN_U16("graphics/pokedex/unk_8442838.bin.lz");
-const u16 gUnknown_8442BC0[] = INCBIN_U16("graphics/pokedex/unk_8442BC0.bin.lz");
-const u16 gUnknown_8442EF8[] = INCBIN_U16("graphics/pokedex/unk_8442EF8.bin.lz");
-const u16 gUnknown_844318C[] = INCBIN_U16("graphics/pokedex/unk_844318C.bin.lz");
-const u16 gUnknown_8443420[] = INCBIN_U16("graphics/pokedex/unk_8443420.gbapal");
-const u16 gUnknown_8443440[] = INCBIN_U16("graphics/pokedex/unk_8443440.gbapal");
-const u16 gUnknown_8443460[] = INCBIN_U16("graphics/pokedex/unk_8443460.gbapal");
-const u16 gUnknown_8443480[] = INCBIN_U16("graphics/pokedex/unk_8443480.gbapal");
-const u16 gUnknown_84434A0[] = INCBIN_U16("graphics/pokedex/unk_84434A0.gbapal");
-const u16 gUnknown_84434C0[] = INCBIN_U16("graphics/pokedex/unk_84434C0.gbapal");
-const u16 gUnknown_84434E0[] = INCBIN_U16("graphics/pokedex/unk_84434E0.gbapal");
-const u16 gUnknown_8443500[] = INCBIN_U16("graphics/pokedex/unk_8443500.gbapal");
-const u16 gUnknown_8443520[] = INCBIN_U16("graphics/pokedex/unk_8443520.gbapal");
-const u16 gUnknown_8443540[] = INCBIN_U16("graphics/pokedex/unk_8443540.gbapal");
-const u16 gUnknown_8443560[] = INCBIN_U16("graphics/pokedex/unk_8443560.gbapal");
-const u16 gUnknown_8443580[] = INCBIN_U16("graphics/pokedex/unk_8443580.gbapal");
-const u16 gUnknown_84435A0[] = INCBIN_U16("graphics/pokedex/unk_84435A0.gbapal");
-const u16 gUnknown_84435C0[] = INCBIN_U16("graphics/pokedex/unk_84435C0.gbapal");
-const u16 gUnknown_84435E0[] = INCBIN_U16("graphics/pokedex/unk_84435E0.gbapal");
-const u8 gUnknown_8443600[] = INCBIN_U8("graphics/pokedex/unk_8443600.4bpp");
-const u32 gUnknown_8443620[] = INCBIN_U32("graphics/pokedex/unk_8443620.bin.lz");
-const u32 gUnknown_8443910[] = INCBIN_U32("graphics/pokedex/unk_8443910.bin.lz");
-const u32 gUnknown_8443988[] = INCBIN_U32("graphics/pokedex/unk_8443988.bin.lz");
-const u32 gUnknown_84439FC[] = INCBIN_U32("graphics/pokedex/unk_84439FC.bin.lz");
-const u32 gUnknown_8443A78[] = INCBIN_U32("graphics/pokedex/unk_8443A78.bin.lz");
-const u32 gUnknown_8443AF8[] = INCBIN_U32("graphics/pokedex/unk_8443AF8.bin.lz");
-const u32 gUnknown_8443BB0[] = INCBIN_U32("graphics/pokedex/unk_8443BB0.bin.lz");
-const u32 gUnknown_8443C54[] = INCBIN_U32("graphics/pokedex/unk_8443C54.bin.lz");
-const u16 gUnknown_8443D00[] = INCBIN_U16("graphics/pokedex/unk_8443D00.4bpp");
+const u16 sNationalDexPalette[0x100] = INCBIN_U16("graphics/pokedex/national_dex_bgpals.gbapal");
+const u32 sTopMenuIconTiles_Cave[] = INCBIN_U32("graphics/pokedex/cat_icon_cave.4bpp.lz");
+const u32 sTopMenuIconTiles_Urban[] = INCBIN_U32("graphics/pokedex/cat_icon_urban.4bpp.lz");
+const u32 sTopMenuSelectionIconTiles_Cancel[] = INCBIN_U32("graphics/pokedex/cat_icon_cancel.4bpp.lz");
+const u32 sTopMenuIconTiles_Forest[] = INCBIN_U32("graphics/pokedex/cat_icon_forest.4bpp.lz");
+const u32 sTopMenuIconTiles_Grassland[] = INCBIN_U32("graphics/pokedex/cat_icon_grassland.4bpp.lz");
+const u32 sTopMenuIconTiles_QuestionMark[] = INCBIN_U32("graphics/pokedex/cat_icon_qmark.4bpp.lz");
+const u32 sTopMenuIconTiles_Mountain[] = INCBIN_U32("graphics/pokedex/cat_icon_mountain.4bpp.lz");
+const u32 sTopMenuIconTiles_Rare[] = INCBIN_U32("graphics/pokedex/cat_icon_rare.4bpp.lz");
+const u32 sTopMenuIconTiles_Sea[] = INCBIN_U32("graphics/pokedex/cat_icon_sea.4bpp.lz");
+const u32 sTopMenuIconTiles_Numerical[] = INCBIN_U32("graphics/pokedex/cat_icon_numerical.4bpp.lz");
+const u32 sTopMenuIconTiles_RoughTerrain[] = INCBIN_U32("graphics/pokedex/cat_icon_rough_terrain.4bpp.lz");
+const u32 sTopMenuIconTiles_WatersEdge[] = INCBIN_U32("graphics/pokedex/cat_icon_waters_edge.4bpp.lz");
+const u32 sTopMenuIconTiles_Type[] = INCBIN_U32("graphics/pokedex/cat_icon_type.4bpp.lz");
+const u32 sTopMenuIconTiles_Lightest[] = INCBIN_U32("graphics/pokedex/cat_icon_lightest.4bpp.lz");
+const u32 sTopMenuIconTiles_Smallest[] = INCBIN_U32("graphics/pokedex/cat_icon_smallest.4bpp.lz");
+const u16 sTopMenuIconPals_Cave[] = INCBIN_U16("graphics/pokedex/cat_icon_cave.gbapal");
+const u16 sTopMenuIconPals_Urban[] = INCBIN_U16("graphics/pokedex/cat_icon_urban.gbapal");
+const u16 sTopMenuSelectionIconPals_Cancel[] = INCBIN_U16("graphics/pokedex/cat_icon_cancel.gbapal");
+const u16 sTopMenuIconPals_Forest[] = INCBIN_U16("graphics/pokedex/cat_icon_forest.gbapal");
+const u16 sTopMenuIconPals_Grassland[] = INCBIN_U16("graphics/pokedex/cat_icon_grassland.gbapal");
+const u16 sTopMenuIconPals_QuestionMark[] = INCBIN_U16("graphics/pokedex/cat_icon_qmark.gbapal");
+const u16 sTopMenuIconPals_Mountain[] = INCBIN_U16("graphics/pokedex/cat_icon_mountain.gbapal");
+const u16 sTopMenuIconPals_Rare[] = INCBIN_U16("graphics/pokedex/cat_icon_rare.gbapal");
+const u16 sTopMenuIconPals_Sea[] = INCBIN_U16("graphics/pokedex/cat_icon_sea.gbapal");
+const u16 sTopMenuIconPals_Numerical[] = INCBIN_U16("graphics/pokedex/cat_icon_numerical.gbapal");
+const u16 sTopMenuIconPals_RoughTerrain[] = INCBIN_U16("graphics/pokedex/cat_icon_rough_terrain.gbapal");
+const u16 sTopMenuIconPals_WatersEdge[] = INCBIN_U16("graphics/pokedex/cat_icon_waters_edge.gbapal");
+const u16 sTopMenuIconPals_Type[] = INCBIN_U16("graphics/pokedex/cat_icon_type.gbapal");
+const u16 sTopMenuIconPals_Lightest[] = INCBIN_U16("graphics/pokedex/cat_icon_lightest.gbapal");
+const u16 sTopMenuIconPals_Smallest[] = INCBIN_U16("graphics/pokedex/cat_icon_smallest.gbapal");
+const u8 sDexScreen_CaughtIcon[] = INCBIN_U8("graphics/pokedex/caught_marker.4bpp");
+const u32 sTilemap_AreaMap_Kanto[] = INCBIN_U32("graphics/pokedex/map_kanto.4bpp.lz");
+const u32 sTilemap_AreaMap_OneIsland[] = INCBIN_U32("graphics/pokedex/map_one_island.4bpp.lz");
+const u32 sTilemap_AreaMap_TwoIsland[] = INCBIN_U32("graphics/pokedex/map_two_island.4bpp.lz");
+const u32 sTilemap_AreaMap_ThreeIsland[] = INCBIN_U32("graphics/pokedex/map_three_island.4bpp.lz");
+const u32 sTilemap_AreaMap_FourIsland[] = INCBIN_U32("graphics/pokedex/map_four_island.4bpp.lz");
+const u32 sTilemap_AreaMap_FiveIsland[] = INCBIN_U32("graphics/pokedex/map_five_island.4bpp.lz");
+const u32 sTilemap_AreaMap_SixIsland[] = INCBIN_U32("graphics/pokedex/map_six_island.4bpp.lz");
+const u32 sTilemap_AreaMap_SevenIsland[] = INCBIN_U32("graphics/pokedex/map_seven_island.4bpp.lz");
+const u16 sBlitTiles_WideEllipse[] = INCBIN_U16("graphics/pokedex/blit_wide_ellipse.4bpp");
#include "data/pokemon/pokedex_orders.h"
@@ -193,7 +199,7 @@ static const u8 gExpandedPlaceholder_PokedexDescription[] = _("");
#include "data/pokemon/pokedex_text.h"
#include "data/pokemon/pokedex_entries.h"
-static const struct BgTemplate sUnknown_8451EBC[] = {
+static const struct BgTemplate sBgTemplates[] = {
{
.bg = 0,
.charBaseIndex = 0,
@@ -232,7 +238,7 @@ static const struct BgTemplate sUnknown_8451EBC[] = {
},
};
-static const struct WindowTemplate sUnknown_8451ECC[] = {
+static const struct WindowTemplate sWindowTemplates[] = {
{
.bg = 0,
.tilemapLeft = 0,
@@ -262,82 +268,82 @@ static const struct WindowTemplate sUnknown_8451ECC[] = {
},
};
-static const struct PokedexScreenData sUnknown_8451EE4 = {
- .field_10 = 1,
- .field_14 = -1,
- .field_15 = -1,
- .field_16 = -1,
- .field_18 = {-1, -1, -1, -1},
- .field_20 = {-1, -1, -1, -1},
- .field_24 = {-1, -1, -1, -1},
- .field_40 = -1,
- .field_4A = {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
- .field_60 = -1,
- .field_61 = -1,
+static const struct PokedexScreenData sDexScreenDataInitialState = {
+ .modeSelectItemsAbove = 1,
+ .modeSelectWindowId = -1,
+ .selectionIconWindowId = -1,
+ .dexCountsWindowId = -1,
+ .pageSpecies = {-1, -1, -1, -1},
+ .categoryMonWindowIds = {-1, -1, -1, -1},
+ .categoryMonInfoWindowIds = {-1, -1, -1, -1},
+ .numericalOrderWindowId = -1,
+ .windowIds = {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1},
+ .scrollArrowsTaskId = -1,
+ .categoryPageCursorTaskId = -1,
+};
+
+
+static const struct WindowTemplate sWindowTemplate_ModeSelect = {
+ .bg = 1,
+ .tilemapLeft = 1,
+ .tilemapTop = 2,
+ .width = 20,
+ .height = 16,
+ .paletteNum = 0,
+ .baseBlock = 0x0008
+};
+
+static const struct WindowTemplate sWindowTemplate_SelectionIcon = {
+ .bg = 1,
+ .tilemapLeft = 21,
+ .tilemapTop = 11,
+ .width = 8,
+ .height = 6,
+ .paletteNum = 1,
+ .baseBlock = 0x0148
};
+static const struct WindowTemplate sWindowTemplate_DexCounts = {
+ .bg = 1,
+ .tilemapLeft = 21,
+ .tilemapTop = 2,
+ .width = 9,
+ .height = 9,
+ .paletteNum = 0,
+ .baseBlock = 0x0178
+};
-static const struct WindowTemplate sUnknown_8451F54 = {
- .bg = 1,
- .tilemapLeft = 1,
- .tilemapTop = 2,
- .width = 20,
- .height = 16,
- .paletteNum = 0,
- .baseBlock = 0x0008
- };
-
-static const struct WindowTemplate sUnknown_8451F5C = {
- .bg = 1,
- .tilemapLeft = 21,
- .tilemapTop = 11,
- .width = 8,
- .height = 6,
- .paletteNum = 1,
- .baseBlock = 0x0148
- };
-
-static const struct WindowTemplate sUnknown_8451F64 = {
- .bg = 1,
- .tilemapLeft = 21,
- .tilemapTop = 2,
- .width = 9,
- .height = 9,
- .paletteNum = 0,
- .baseBlock = 0x0178
- };
-
-static const struct ListMenuItem sUnknown_8451F6C[] = {
- {gText_PokemonList, -3},
- {gText_NumericalMode, 9},
- {gText_PokemonHabitats, -3},
- {gText_DexCategory_GrasslandPkmn, 0},
- {gText_DexCategory_ForestPkmn, 1},
- {gText_DexCategory_WatersEdgePkmn, 2},
- {gText_DexCategory_SeaPkmn, 3},
- {gText_DexCategory_CavePkmn, 4},
- {gText_DexCategory_MountainPkmn, 5},
- {gText_DexCategory_RoughTerrainPkmn, 6},
- {gText_DexCategory_UrbanPkmn, 7},
- {gText_DexCategory_RarePkmn, 8},
- {gText_Search, -3},
- {gText_AToZMode, 10},
- {gText_TypeMode, 11},
- {gText_LightestMode, 12},
- {gText_SmallestMode, 13},
- {gText_PokedexOther, -3},
- {gText_ClosePokedex, -2},
+static const struct ListMenuItem sListMenuItems_KantoDexModeSelect[] = {
+ {gText_PokemonList, LIST_HEADER},
+ {gText_NumericalMode, DEX_MODE(NUMERICAL_KANTO)},
+ {gText_PokemonHabitats, LIST_HEADER},
+ {gText_DexCategory_GrasslandPkmn, DEX_CATEGORY_GRASSLAND},
+ {gText_DexCategory_ForestPkmn, DEX_CATEGORY_FOREST},
+ {gText_DexCategory_WatersEdgePkmn, DEX_CATEGORY_WATERS_EDGE},
+ {gText_DexCategory_SeaPkmn, DEX_CATEGORY_SEA},
+ {gText_DexCategory_CavePkmn, DEX_CATEGORY_CAVE},
+ {gText_DexCategory_MountainPkmn, DEX_CATEGORY_MOUNTAIN},
+ {gText_DexCategory_RoughTerrainPkmn, DEX_CATEGORY_ROUGH_TERRAIN},
+ {gText_DexCategory_UrbanPkmn, DEX_CATEGORY_URBAN},
+ {gText_DexCategory_RarePkmn, DEX_CATEGORY_RARE},
+ {gText_Search, LIST_HEADER},
+ {gText_AToZMode, DEX_MODE(ATOZ)},
+ {gText_TypeMode, DEX_MODE(TYPE)},
+ {gText_LightestMode, DEX_MODE(LIGHTEST)},
+ {gText_SmallestMode, DEX_MODE(SMALLEST)},
+ {gText_PokedexOther, LIST_HEADER},
+ {gText_ClosePokedex, LIST_CANCEL},
};
-static const struct ListMenuTemplate sUnknown_8452004 = {
- .items = sUnknown_8451F6C,
- .moveCursorFunc = sub_8102EC0,
- .itemPrintFunc = sub_8102F48,
- .totalItems = NELEMS(sUnknown_8451F6C),
+static const struct ListMenuTemplate sListMenuTemplate_KantoDexModeSelect = {
+ .items = sListMenuItems_KantoDexModeSelect,
+ .moveCursorFunc = MoveCursorFunc_DexModeSelect,
+ .itemPrintFunc = ItemPrintFunc_DexModeSelect,
+ .totalItems = NELEMS(sListMenuItems_KantoDexModeSelect),
.maxShowed = 9,
- .windowId = 0,
- .header_X = 0,
- .item_X = 12,
+ .windowId = 0,
+ .header_X = 0,
+ .item_X = 12,
.cursor_X = 4,
.upText_Y = 2,
.cursorPal = 1,
@@ -350,38 +356,38 @@ static const struct ListMenuTemplate sUnknown_8452004 = {
.cursorKind = 0,
};
-static const struct ListMenuItem sUnknown_845201C[] = {
- {gText_PokemonList, -3},
- {gText_NumericalModeKanto, 9},
- {gText_NumericalModeNational, 14},
- {gText_PokemonHabitats, -3},
- {gText_DexCategory_GrasslandPkmn, 0},
- {gText_DexCategory_ForestPkmn, 1},
- {gText_DexCategory_WatersEdgePkmn, 2},
- {gText_DexCategory_SeaPkmn, 3},
- {gText_DexCategory_CavePkmn, 4},
- {gText_DexCategory_MountainPkmn, 5},
- {gText_DexCategory_RoughTerrainPkmn, 6},
- {gText_DexCategory_UrbanPkmn, 7},
- {gText_DexCategory_RarePkmn, 8},
- {gText_Search, -3},
- {gText_AToZMode, 10},
- {gText_TypeMode, 11},
- {gText_LightestMode, 12},
- {gText_SmallestMode, 13},
- {gText_PokedexOther, -3},
- {gText_ClosePokedex, -2},
+static const struct ListMenuItem sListMenuItems_NatDexModeSelect[] = {
+ {gText_PokemonList, LIST_HEADER},
+ {gText_NumericalModeKanto, DEX_MODE(NUMERICAL_KANTO)},
+ {gText_NumericalModeNational, DEX_MODE(NUMERICAL_NATIONAL)},
+ {gText_PokemonHabitats, LIST_HEADER},
+ {gText_DexCategory_GrasslandPkmn, DEX_CATEGORY_GRASSLAND},
+ {gText_DexCategory_ForestPkmn, DEX_CATEGORY_FOREST},
+ {gText_DexCategory_WatersEdgePkmn, DEX_CATEGORY_WATERS_EDGE},
+ {gText_DexCategory_SeaPkmn, DEX_CATEGORY_SEA},
+ {gText_DexCategory_CavePkmn, DEX_CATEGORY_CAVE},
+ {gText_DexCategory_MountainPkmn, DEX_CATEGORY_MOUNTAIN},
+ {gText_DexCategory_RoughTerrainPkmn, DEX_CATEGORY_ROUGH_TERRAIN},
+ {gText_DexCategory_UrbanPkmn, DEX_CATEGORY_URBAN},
+ {gText_DexCategory_RarePkmn, DEX_CATEGORY_RARE},
+ {gText_Search, LIST_HEADER},
+ {gText_AToZMode, DEX_MODE(ATOZ)},
+ {gText_TypeMode, DEX_MODE(TYPE)},
+ {gText_LightestMode, DEX_MODE(LIGHTEST)},
+ {gText_SmallestMode, DEX_MODE(SMALLEST)},
+ {gText_PokedexOther, LIST_HEADER},
+ {gText_ClosePokedex, LIST_CANCEL},
};
-static const struct ListMenuTemplate sUnknown_84520BC = {
- .items = sUnknown_845201C,
- .moveCursorFunc = sub_8102EC0,
- .itemPrintFunc = sub_8102F48,
- .totalItems = NELEMS(sUnknown_845201C),
+static const struct ListMenuTemplate sListMenuTemplate_NatDexModeSelect = {
+ .items = sListMenuItems_NatDexModeSelect,
+ .moveCursorFunc = MoveCursorFunc_DexModeSelect,
+ .itemPrintFunc = ItemPrintFunc_DexModeSelect,
+ .totalItems = NELEMS(sListMenuItems_NatDexModeSelect),
.maxShowed = 9,
- .windowId = 0,
- .header_X = 0,
- .item_X = 12,
+ .windowId = 0,
+ .header_X = 0,
+ .item_X = 12,
.cursor_X = 4,
.upText_Y = 2,
.cursorPal = 1,
@@ -394,54 +400,99 @@ static const struct ListMenuTemplate sUnknown_84520BC = {
.cursorKind = 0,
};
-static const struct ScrollArrowsTemplate sUnknown_84520D4 = {
- .firstArrowType = 2,
- .firstX = 200,
- .firstY = 19,
- .secondArrowType = 3,
- .secondX = 200,
+static const struct ScrollArrowsTemplate sScrollArrowsTemplate_KantoDex = {
+ .firstArrowType = 2,
+ .firstX = 200,
+ .firstY = 19,
+ .secondArrowType = 3,
+ .secondX = 200,
.secondY = 141,
- .fullyUpThreshold = 0,
- .fullyDownThreshold = 10,
- .tileTag = 2000,
+ .fullyUpThreshold = 0,
+ .fullyDownThreshold = 10,
+ .tileTag = 2000,
.palTag = 0xFFFF,
.palNum = 1
};
-static const struct ScrollArrowsTemplate sUnknown_84520E4 = {
- .firstArrowType = 2,
- .firstX = 200,
- .firstY = 19,
- .secondArrowType = 3,
- .secondX = 200,
+static const struct ScrollArrowsTemplate sScrollArrowsTemplate_NatDex = {
+ .firstArrowType = 2,
+ .firstX = 200,
+ .firstY = 19,
+ .secondArrowType = 3,
+ .secondX = 200,
.secondY = 141,
- .fullyUpThreshold = 0,
- .fullyDownThreshold = 11,
- .tileTag = 2000,
+ .fullyUpThreshold = 0,
+ .fullyDownThreshold = 11,
+ .tileTag = 2000,
.palTag = 0xFFFF,
.palNum = 1
};
-static const struct PokedexScreenWindowGfx sUnknown_84520F4[] = {
- {.map = gUnknown_84414BC, .pal = gUnknown_84434A0},
- {.map = gUnknown_844112C, .pal = gUnknown_8443480},
- {.map = gUnknown_8442838, .pal = gUnknown_8443580},
- {.map = gUnknown_8442004, .pal = gUnknown_8443520},
- {.map = gUnknown_84408E0, .pal = gUnknown_8443420},
- {.map = gUnknown_8441A40, .pal = gUnknown_84434E0},
- {.map = gUnknown_84424E4, .pal = gUnknown_8443560},
- {.map = gUnknown_8440BD8, .pal = gUnknown_8443440},
- {.map = gUnknown_8441D54, .pal = gUnknown_8443500},
- {.map = gUnknown_844223C, .pal = gUnknown_8443540},
- {.map = gUnknown_8E9C16C, .pal = gUnknown_8E9C14C},
- {.map = gUnknown_8442BC0, .pal = gUnknown_84435A0},
- {.map = gUnknown_8442EF8, .pal = gUnknown_84435C0},
- {.map = gUnknown_844318C, .pal = gUnknown_84435E0},
- {.map = gUnknown_844223C, .pal = gUnknown_8443540},
+static const struct PokedexScreenWindowGfx sTopMenuSelectionIconGfxPtrs[] = {
+ [DEX_CATEGORY_GRASSLAND] = {
+ .tiles = sTopMenuIconTiles_Grassland,
+ .pal = sTopMenuIconPals_Grassland
+ },
+ [DEX_CATEGORY_FOREST] = {
+ .tiles = sTopMenuIconTiles_Forest,
+ .pal = sTopMenuIconPals_Forest
+ },
+ [DEX_CATEGORY_WATERS_EDGE] = {
+ .tiles = sTopMenuIconTiles_WatersEdge,
+ .pal = sTopMenuIconPals_WatersEdge
+ },
+ [DEX_CATEGORY_SEA] = {
+ .tiles = sTopMenuIconTiles_Sea,
+ .pal = sTopMenuIconPals_Sea
+ },
+ [DEX_CATEGORY_CAVE] = {
+ .tiles = sTopMenuIconTiles_Cave,
+ .pal = sTopMenuIconPals_Cave
+ },
+ [DEX_CATEGORY_MOUNTAIN] = {
+ .tiles = sTopMenuIconTiles_Mountain,
+ .pal = sTopMenuIconPals_Mountain
+ },
+ [DEX_CATEGORY_ROUGH_TERRAIN] = {
+ .tiles = sTopMenuIconTiles_RoughTerrain,
+ .pal = sTopMenuIconPals_RoughTerrain
+ },
+ [DEX_CATEGORY_URBAN] = {
+ .tiles = sTopMenuIconTiles_Urban,
+ .pal = sTopMenuIconPals_Urban
+ },
+ [DEX_CATEGORY_RARE] = {
+ .tiles = sTopMenuIconTiles_Rare,
+ .pal = sTopMenuIconPals_Rare
+ },
+ [DEX_MODE(NUMERICAL_KANTO)] = {
+ .tiles = sTopMenuIconTiles_Numerical,
+ .pal = sTopMenuIconPals_Numerical
+ },
+ [DEX_MODE(ATOZ)] = {
+ .tiles = gDexScreen_TopMenuIconTiles_AtoZ,
+ .pal = gDexScreen_TopMenuIconPals_AtoZ
+ },
+ [DEX_MODE(TYPE)] = {
+ .tiles = sTopMenuIconTiles_Type,
+ .pal = sTopMenuIconPals_Type
+ },
+ [DEX_MODE(LIGHTEST)] = {
+ .tiles = sTopMenuIconTiles_Lightest,
+ .pal = sTopMenuIconPals_Lightest
+ },
+ [DEX_MODE(SMALLEST)] = {
+ .tiles = sTopMenuIconTiles_Smallest,
+ .pal = sTopMenuIconPals_Smallest
+ },
+ [DEX_MODE(NUMERICAL_NATIONAL)] = {
+ .tiles = sTopMenuIconTiles_Numerical,
+ .pal = sTopMenuIconPals_Numerical
+ },
};
-static const struct WindowTemplate sUnknown_845216C = {
+static const struct WindowTemplate sWindowTemplate_OrderedListMenu = {
.bg = 1,
.tilemapLeft = 2,
.tilemapTop = 2,
@@ -451,15 +502,15 @@ static const struct WindowTemplate sUnknown_845216C = {
.baseBlock = 0x0008
};
-static const struct ListMenuTemplate sUnknown_8452174 = {
- .items = sUnknown_8451F6C,
+static const struct ListMenuTemplate sListMenuTemplate_OrderedListMenu = {
+ .items = sListMenuItems_KantoDexModeSelect,
.moveCursorFunc = ListMenuDefaultCursorMoveFunc,
- .itemPrintFunc = sub_8103A40,
- .totalItems = 0,
+ .itemPrintFunc = ItemPrintFunc_OrderedListMenu,
+ .totalItems = 0,
.maxShowed = 9,
- .windowId = 0,
- .header_X = 0,
- .item_X = 56,
+ .windowId = 0,
+ .header_X = 0,
+ .item_X = 56,
.cursor_X = 4,
.upText_Y = 2,
.cursorPal = 1,
@@ -472,37 +523,55 @@ static const struct ListMenuTemplate sUnknown_8452174 = {
.cursorKind = 0,
};
-static const struct ListMenuWindowRect sUnknown_845218C = {
- .x = 0,
- .y = 0,
- .width = 5,
- .height = 16,
- .palNum = 0,
-};
-
-// Unused
-static const u8 gUnknown_8452194[] = {
- 0x05, 0x00, 0x02, 0x10, 0x01, 0x00, 0x00, 0x00,
- 0x07, 0x00, 0x08, 0x10, 0x00, 0x00, 0x00, 0x00,
- 0x0f, 0x00, 0x08, 0x10, 0x02, 0x00, 0x00, 0x00,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00
+static const struct ListMenuWindowRect sListMenuRects_OrderedList[] = {
+ {
+ .x = 0,
+ .y = 0,
+ .width = 5,
+ .height = 16,
+ .palNum = 0
+ }, {
+ .x = 5,
+ .y = 0,
+ .width = 2,
+ .height = 16,
+ .palNum = 1
+ }, {
+ .x = 7,
+ .y = 0,
+ .width = 8,
+ .height = 16,
+ .palNum = 0
+ }, {
+ .x = 15,
+ .y = 0,
+ .width = 8,
+ .height = 16,
+ .palNum = 2,
+ }, {
+ .x = 0xFF,
+ .y = 0xFF,
+ .width = 0xFF,
+ .height = 0xFF,
+ .palNum = 0xFF
+ }
};
-static const struct ScrollArrowsTemplate sUnknown_84521B4 = {
- .firstArrowType = 2,
- .firstX = 200,
- .firstY = 19,
- .secondArrowType = 3,
- .secondX = 200,
+static const struct ScrollArrowsTemplate sDexOrderScrollArrowsTemplate = {
+ .firstArrowType = 2,
+ .firstX = 200,
+ .firstY = 19,
+ .secondArrowType = 3,
+ .secondX = 200,
.secondY = 141,
- .fullyUpThreshold = 0,
- .fullyDownThreshold = 0,
- .tileTag = 2000,
+ .fullyUpThreshold = 0,
+ .fullyDownThreshold = 0,
+ .tileTag = 2000,
.palTag = 0xFFFF,
.palNum = 1,
};
-static const struct WindowTemplate sUnknown_84521C4 = {
+static const struct WindowTemplate sWindowTemplate_CategoryMonIcon = {
.bg = 2,
.tilemapLeft = 0,
.tilemapTop = 0,
@@ -512,7 +581,7 @@ static const struct WindowTemplate sUnknown_84521C4 = {
.baseBlock = 0x0000
};
-static const struct WindowTemplate sUnknown_84521CC = {
+static const struct WindowTemplate sWindowTemplate_CategoryMonInfo = {
.bg = 1,
.tilemapLeft = 0,
.tilemapTop = 0,
@@ -522,7 +591,7 @@ static const struct WindowTemplate sUnknown_84521CC = {
.baseBlock = 0x0000
};
-const struct WindowTemplate gUnknown_84521D4 = {
+const struct WindowTemplate sWindowTemplate_DexEntry_MonPic = {
.bg = 1,
.tilemapLeft = 19,
.tilemapTop = 3,
@@ -532,7 +601,7 @@ const struct WindowTemplate gUnknown_84521D4 = {
.baseBlock = 0x01a8
};
-const struct WindowTemplate gUnknown_84521DC = {
+const struct WindowTemplate sWindowTemplate_DexEntry_SpeciesStats = {
.bg = 1,
.tilemapLeft = 2,
.tilemapTop = 3,
@@ -542,7 +611,7 @@ const struct WindowTemplate gUnknown_84521DC = {
.baseBlock = 0x01e8
};
-const struct WindowTemplate gUnknown_84521E4 = {
+const struct WindowTemplate sWindowTemplate_DexEntry_FlavorText = {
.bg = 1,
.tilemapLeft = 0,
.tilemapTop = 11,
@@ -552,7 +621,7 @@ const struct WindowTemplate gUnknown_84521E4 = {
.baseBlock = 0x0250
};
-const struct WindowTemplate gUnknown_84521EC = {
+const struct WindowTemplate sWindowTemplate_AreaMap_MonIcon = {
.bg = 2,
.tilemapLeft = 1,
.tilemapTop = 2,
@@ -562,7 +631,7 @@ const struct WindowTemplate gUnknown_84521EC = {
.baseBlock = 0x01a8
};
-const struct WindowTemplate gUnknown_84521F4 = {
+const struct WindowTemplate sWindowTemplate_AreaMap_SpeciesName = {
.bg = 2,
.tilemapLeft = 5,
.tilemapTop = 2,
@@ -572,7 +641,7 @@ const struct WindowTemplate gUnknown_84521F4 = {
.baseBlock = 0x01b8
};
-const struct WindowTemplate gUnknown_84521FC = {
+const struct WindowTemplate sWindowTemplate_AreaMap_Size = {
.bg = 2,
.tilemapLeft = 2,
.tilemapTop = 7,
@@ -582,7 +651,7 @@ const struct WindowTemplate gUnknown_84521FC = {
.baseBlock = 0x01d0
};
-const struct WindowTemplate gUnknown_8452204 = {
+const struct WindowTemplate sWindowTemplate_AreaMap_Area = {
.bg = 2,
.tilemapLeft = 18,
.tilemapTop = 2,
@@ -592,7 +661,7 @@ const struct WindowTemplate gUnknown_8452204 = {
.baseBlock = 0x01e4
};
-const struct WindowTemplate gUnknown_845220C = {
+const struct WindowTemplate sWindowTemplate_AreaMap_MonTypes = {
.bg = 2,
.tilemapLeft = 5,
.tilemapTop = 5,
@@ -602,7 +671,7 @@ const struct WindowTemplate gUnknown_845220C = {
.baseBlock = 0x01f8
};
-const struct WindowTemplate gUnknown_8452214 = {
+const struct WindowTemplate sWindowTemplate_AreaMap_Kanto = {
.bg = 2,
.tilemapLeft = 17,
.tilemapTop = 4,
@@ -612,7 +681,7 @@ const struct WindowTemplate gUnknown_8452214 = {
.baseBlock = 0x0208
};
-static const struct WindowTemplate sUnknown_845221C = {
+static const struct WindowTemplate sWindowTemplate_AreaMap_OneIsland = {
.bg = 2,
.tilemapLeft = 13,
.tilemapTop = 4,
@@ -622,7 +691,7 @@ static const struct WindowTemplate sUnknown_845221C = {
.baseBlock = 0x0274
};
-static const struct WindowTemplate sUnknown_8452224 = {
+static const struct WindowTemplate sWindowTemplate_AreaMap_TwoIsland = {
.bg = 2,
.tilemapLeft = 13,
.tilemapTop = 7,
@@ -632,7 +701,7 @@ static const struct WindowTemplate sUnknown_8452224 = {
.baseBlock = 0x0280
};
-static const struct WindowTemplate sUnknown_845222C = {
+static const struct WindowTemplate sWindowTemplate_AreaMap_ThreeIsland = {
.bg = 2,
.tilemapLeft = 13,
.tilemapTop = 10,
@@ -642,7 +711,7 @@ static const struct WindowTemplate sUnknown_845222C = {
.baseBlock = 0x028c
};
-static const struct WindowTemplate sUnknown_8452234 = {
+static const struct WindowTemplate sWindowTemplate_AreaMap_FourIsland = {
.bg = 2,
.tilemapLeft = 13,
.tilemapTop = 13,
@@ -652,7 +721,7 @@ static const struct WindowTemplate sUnknown_8452234 = {
.baseBlock = 0x0298
};
-static const struct WindowTemplate sUnknown_845223C = {
+static const struct WindowTemplate sWindowTemplate_AreaMap_FiveIsland = {
.bg = 2,
.tilemapLeft = 17,
.tilemapTop = 13,
@@ -662,7 +731,7 @@ static const struct WindowTemplate sUnknown_845223C = {
.baseBlock = 0x02a8
};
-static const struct WindowTemplate sUnknown_8452244 = {
+static const struct WindowTemplate sWindowTemplate_AreaMap_SixIsland = {
.bg = 2,
.tilemapLeft = 21,
.tilemapTop = 13,
@@ -672,7 +741,7 @@ static const struct WindowTemplate sUnknown_8452244 = {
.baseBlock = 0x02b8
};
-static const struct WindowTemplate sUnknown_845224C = {
+static const struct WindowTemplate sWindowTemplate_AreaMap_SevenIsland = {
.bg = 2,
.tilemapLeft = 25,
.tilemapTop = 13,
@@ -684,46 +753,47 @@ static const struct WindowTemplate sUnknown_845224C = {
struct {
const struct WindowTemplate * window;
- const u32 * tilemap;
-} const gUnknown_8452254[] = {
- {&sUnknown_845221C, gUnknown_8443910},
- {&sUnknown_8452224, gUnknown_8443988},
- {&sUnknown_845222C, gUnknown_84439FC},
- {&sUnknown_8452234, gUnknown_8443A78},
- {&sUnknown_845223C, gUnknown_8443AF8},
- {&sUnknown_8452244, gUnknown_8443BB0},
- {&sUnknown_845224C, gUnknown_8443C54},
+ const u32 * tiles;
+} const sAreaMapStructs_SeviiIslands[] = {
+ {&sWindowTemplate_AreaMap_OneIsland, sTilemap_AreaMap_OneIsland},
+ {&sWindowTemplate_AreaMap_TwoIsland, sTilemap_AreaMap_TwoIsland},
+ {&sWindowTemplate_AreaMap_ThreeIsland, sTilemap_AreaMap_ThreeIsland},
+ {&sWindowTemplate_AreaMap_FourIsland, sTilemap_AreaMap_FourIsland},
+ {&sWindowTemplate_AreaMap_FiveIsland, sTilemap_AreaMap_FiveIsland},
+ {&sWindowTemplate_AreaMap_SixIsland, sTilemap_AreaMap_SixIsland},
+ {&sWindowTemplate_AreaMap_SevenIsland, sTilemap_AreaMap_SevenIsland},
};
-static const u16 sUnknown_845228C[] = INCBIN_U16("graphics/pokedex/unk_845228C.bin");
+static const u16 sCategoryPageIconWindowBg[] = INCBIN_U16("graphics/pokedex/page_icon_tilemap.bin");
-static const u8 sUnknown_845230C[][4] = {
- {0x0b, 0x03, 0x0b, 0x0b},
+// Circular window x/y; Rectangular window x/y
+static const u8 sPageIconCoords_1Mon[1][4] = {
+ {11, 3, 11, 11},
};
-static const u8 sUnknown_8452310[][4] = {
- {0x03, 0x03, 0x0b, 0x03},
- {0x12, 0x09, 0x0a, 0x0b},
+static const u8 sPageIconCoords_2Mons[2][4] = {
+ { 3, 3, 11, 3},
+ {18, 9, 10, 11},
};
-static const u8 sUnknown_8452318[][4] = {
- {0x01, 0x02, 0x09, 0x02},
- {0x0b, 0x09, 0x03, 0x0b},
- {0x15, 0x03, 0x15, 0x0b}
+static const u8 sPageIconCoords_3Mons[3][4] = {
+ { 1, 2, 9, 2},
+ {11, 9, 3, 11},
+ {21, 3, 21, 11}
};
-static const u8 sUnknown_8452324[][4] = {
- {0x00, 0x02, 0x06, 0x03},
- {0x07, 0x0a, 0x00, 0x0c},
- {0x0f, 0x0a, 0x16, 0x0b},
- {0x16, 0x02, 0x0f, 0x04}
+static const u8 sPageIconCoords_4Mons[4][4] = {
+ { 0, 2, 6, 3},
+ { 7, 10, 0, 12},
+ {15, 10, 22, 11},
+ {22, 2, 15, 4}
};
-const u8 (*const gUnknown_8452334[])[4] = {
- sUnknown_845230C,
- sUnknown_8452310,
- sUnknown_8452318,
- sUnknown_8452324,
+const u8 (*const sCategoryPageIconCoords[])[4] = {
+ sPageIconCoords_1Mon,
+ sPageIconCoords_2Mons,
+ sPageIconCoords_3Mons,
+ sPageIconCoords_4Mons,
};
static const u8 * const sDexCategoryNamePtrs[] = {
@@ -738,86 +808,55 @@ static const u8 * const sDexCategoryNamePtrs[] = {
gText_DexCategory_RarePkmn,
};
-const u16 gUnknown_8452368[] = INCBIN_U16("graphics/pokedex/unk_8452368.gbapal");
-
-static const u8 sUnknown_8452388[][30] = {
- {
- 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e,
- 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e,
- 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e
- }, {
- 0x05, 0x0b, 0x11, 0x17, 0x1d, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e,
- 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e,
- 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e
- }, {
- 0x02, 0x05, 0x08, 0x0b, 0x0e, 0x11, 0x14, 0x17, 0x1a, 0x1d,
- 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e,
- 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e
- }, {
- 0x02, 0x03, 0x05, 0x07, 0x09, 0x0b, 0x0d, 0x0f, 0x11, 0x13,
- 0x15, 0x17, 0x19, 0x1b, 0x1d, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e,
- 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e
- }, {
- 0x02, 0x04, 0x05, 0x07, 0x08, 0x0a, 0x0b, 0x0d, 0x0e, 0x10,
- 0x11, 0x13, 0x14, 0x16, 0x17, 0x19, 0x1a, 0x1c, 0x1d, 0x1e,
- 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e
- }, {
- 0x01, 0x02, 0x03, 0x04, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c,
- 0x0d, 0x0f, 0x10, 0x11, 0x13, 0x14, 0x15, 0x17, 0x18, 0x19,
- 0x1b, 0x1c, 0x1d, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e
- }, {
- 0x01, 0x02, 0x03, 0x04, 0x05, 0x07, 0x08, 0x09, 0x0a, 0x0b,
- 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x14, 0x15, 0x16,
- 0x17, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1e, 0x1e, 0x1e
- }, {
- 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0b,
- 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x15, 0x16,
- 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1e, 0x1e
- }, {
- 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a,
- 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14,
- 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e
- }, {
- 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09,
- 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13,
- 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d
- },
+const u16 sPalette_Silhouette[] = INCBIN_U16("graphics/pokedex/silhouette_sprite_pal.gbapal");
+
+static const u8 sDexScreenPageTurnColumns[][30] = {
+ {30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30},
+ { 5, 11, 17, 23, 29, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30},
+ { 2, 5, 8, 11, 14, 17, 20, 23, 26, 29, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30},
+ { 2, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30},
+ { 2, 4, 5, 7, 8, 10, 11, 13, 14, 16, 17, 19, 20, 22, 23, 25, 26, 28, 29, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30},
+ { 1, 2, 3, 4, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 19, 20, 21, 23, 24, 25, 27, 28, 29, 30, 30, 30, 30, 30, 30, 30},
+ { 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 25, 26, 27, 28, 29, 30, 30, 30, 30},
+ { 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 30, 30},
+ { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30},
+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29},
};
-static const struct ScrollArrowsTemplate sUnknown_84524B4 = {
- .firstArrowType = 0,
- .firstX = 16,
- .firstY = 80,
- .secondArrowType = 1,
- .secondX = 224,
+static const struct ScrollArrowsTemplate sScrollArrowsTemplate_CategoryMenu = {
+ .firstArrowType = 0,
+ .firstX = 16,
+ .firstY = 80,
+ .secondArrowType = 1,
+ .secondX = 224,
.secondY = 80,
- .fullyUpThreshold = 0,
- .fullyDownThreshold = 0,
- .tileTag = 2000,
+ .fullyUpThreshold = 0,
+ .fullyDownThreshold = 0,
+ .tileTag = 2000,
.palTag = 0xFFFF,
.palNum = 1,
};
-const struct CursorStruct gUnknown_84524C4 = {
- .left = 0,
+const struct CursorStruct sCursorStruct_CategoryPage = {
+ .left = 0,
.top = 160,
- .rowWidth = 64,
- .rowHeight = 40,
- .tileTag = 2002,
+ .rowWidth = 64,
+ .rowHeight = 40,
+ .tileTag = 2002,
.palTag = 0xFFFF,
.palNum = 4,
};
#include "data/pokemon/pokedex_categories.h"
-void sub_81024C0(void)
+void VBlankCB(void)
{
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
}
-void sub_81024D4(void)
+void CB2_PokedexScreen(void)
{
if (!gPaletteFade.active || IsDma3ManagerBusyWithBgCopy())
{
@@ -832,7 +871,7 @@ void sub_81024D4(void)
}
}
-void sub_810250C(void)
+void DexScreen_LoadResources(void)
{
bool8 natDex;
u8 taskId;
@@ -845,29 +884,29 @@ void sub_810250C(void)
ResetTasks();
ScanlineEffect_Stop();
ResetBgsAndClearDma3BusyFlags(TRUE);
- InitBgsFromTemplates(0, sUnknown_8451EBC, NELEMS(sUnknown_8451EBC));
+ InitBgsFromTemplates(0, sBgTemplates, NELEMS(sBgTemplates));
SetBgTilemapBuffer(3, (u16*)Alloc(BG_SCREEN_SIZE));
SetBgTilemapBuffer(2, (u16*)Alloc(BG_SCREEN_SIZE));
SetBgTilemapBuffer(1, (u16*)Alloc(BG_SCREEN_SIZE));
SetBgTilemapBuffer(0, (u16*)Alloc(BG_SCREEN_SIZE));
if (natDex)
- DecompressAndLoadBgGfxUsingHeap(3, (void*)gUnknown_84403AC, BG_SCREEN_SIZE, 0, 0);
+ DecompressAndLoadBgGfxUsingHeap(3, (void*)sNatDexTiles, BG_SCREEN_SIZE, 0, 0);
else
- DecompressAndLoadBgGfxUsingHeap(3, (void*)gUnknown_8440274, BG_SCREEN_SIZE, 0, 0);
- InitWindows(sUnknown_8451ECC);
+ DecompressAndLoadBgGfxUsingHeap(3, (void*)sKantoDexTiles, BG_SCREEN_SIZE, 0, 0);
+ InitWindows(sWindowTemplates);
DeactivateAllTextPrinters();
m4aSoundVSyncOn();
- SetVBlankCallback(sub_81024C0);
+ SetVBlankCallback(VBlankCB);
EnableInterrupts(INTR_FLAG_VBLANK);
- taskId = CreateTask(sub_810287C, 0);
- gUnknown_203ACF0 = Alloc(sizeof(struct PokedexScreenData));
- *gUnknown_203ACF0 = sUnknown_8451EE4;
- gUnknown_203ACF0->field_00 = taskId;
- gUnknown_203ACF0->field_44 = Alloc(NATIONAL_DEX_COUNT * sizeof(struct ListMenuItem));
- gUnknown_203ACF0->field_6A = sub_8104BBC(0, 1);
- gUnknown_203ACF0->field_6C = sub_8104BBC(1, 1);
- gUnknown_203ACF0->field_66 = sub_8104BBC(0, 0);
- gUnknown_203ACF0->field_68 = sub_8104BBC(1, 0);
+ taskId = CreateTask(Task_PokedexScreen, 0);
+ sPokedexScreenData = Alloc(sizeof(struct PokedexScreenData));
+ *sPokedexScreenData = sDexScreenDataInitialState;
+ sPokedexScreenData->taskId = taskId;
+ sPokedexScreenData->listItems = Alloc(NATIONAL_DEX_COUNT * sizeof(struct ListMenuItem));
+ sPokedexScreenData->numSeenNational = DexScreen_GetDexCount(FLAG_GET_SEEN, 1);
+ sPokedexScreenData->numOwnedNational = DexScreen_GetDexCount(FLAG_GET_CAUGHT, 1);
+ sPokedexScreenData->numSeenKanto = DexScreen_GetDexCount(FLAG_GET_SEEN, 0);
+ sPokedexScreenData->numOwnedKanto = DexScreen_GetDexCount(FLAG_GET_CAUGHT, 0);
SetBGMVolume_SuppressHelpSystemReduction(0x80);
ChangeBgX(0, 0, 0);
ChangeBgY(0, 0, 0);
@@ -879,31 +918,31 @@ void sub_810250C(void)
ChangeBgY(3, 0, 0);
gPaletteFade.bufferTransferDisabled = TRUE;
if (natDex)
- LoadPalette(gUnknown_84406E0, 0, 0x200);
+ LoadPalette(sNationalDexPalette, 0, 0x200);
else
- LoadPalette(gUnknown_84404C8, 0, 0x200);
- FillBgTilemapBufferRect(3, 0x001, 0, 0, 32, 32, 0);
- FillBgTilemapBufferRect(2, 0x000, 0, 0, 32, 32, 0x11);
- FillBgTilemapBufferRect(1, 0x000, 0, 0, 32, 32, 0x11);
- FillBgTilemapBufferRect(0, 0x0003, 0, 0, 32, 2, 0xF);
- FillBgTilemapBufferRect(0, 0x0000, 0, 2, 32, 16, 0x11);
- FillBgTilemapBufferRect(0, 0x003, 0, 18, 32, 2, 0xF);
+ LoadPalette(sKantoDexPalette, 0, 0x200);
+ FillBgTilemapBufferRect(3, 0x001, 0, 0, 32, 32, 0x00);
+ FillBgTilemapBufferRect(2, 0x000, 0, 0, 32, 32, 0x11);
+ FillBgTilemapBufferRect(1, 0x000, 0, 0, 32, 32, 0x11);
+ FillBgTilemapBufferRect(0, 0x003, 0, 0, 32, 2, 0x0F);
+ FillBgTilemapBufferRect(0, 0x000, 0, 2, 32, 16, 0x11);
+ FillBgTilemapBufferRect(0, 0x003, 0, 18, 32, 2, 0x0F);
}
void CB2_OpenPokedexFromStartMenu(void)
{
- sub_810250C();
+ DexScreen_LoadResources();
ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON | DISPCNT_WIN1_ON);
SetGpuReg(REG_OFFSET_BLDCNT, 0);
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
SetGpuReg(REG_OFFSET_BLDY, 0);
- SetMainCallback2(sub_81024D4);
+ SetMainCallback2(CB2_PokedexScreen);
SetHelpContext(HELPCONTEXT_POKEDEX);
}
#define FREE_IF_NOT_NULL(ptr0) ({ void * ptr = (ptr0); if (ptr) Free(ptr); })
-bool8 sub_8102798(void)
+bool8 DoClosePokedex(void)
{
switch (gMain.state)
{
@@ -918,8 +957,8 @@ bool8 sub_8102798(void)
UpdatePaletteFade();
return FALSE;
case 2:
- FREE_IF_NOT_NULL(gUnknown_203ACF0->field_44);
- FREE_IF_NOT_NULL(gUnknown_203ACF0);
+ FREE_IF_NOT_NULL(sPokedexScreenData->listItems);
+ FREE_IF_NOT_NULL(sPokedexScreenData);
FreeAllWindowBuffers();
FREE_IF_NOT_NULL(GetBgTilemapBuffer(0));
FREE_IF_NOT_NULL(GetBgTilemapBuffer(1));
@@ -931,44 +970,44 @@ bool8 sub_8102798(void)
return TRUE;
}
-void sub_8102858(void)
+void CB2_ClosePokedex(void)
{
- if (sub_8102798())
+ if (DoClosePokedex())
{
SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON | DISPCNT_WIN1_ON);
SetMainCallback2(CB2_ReturnToFieldWithOpenMenu);
}
}
-static void sub_810287C(u8 taskId)
+static void Task_PokedexScreen(u8 taskId)
{
int i;
- switch (gUnknown_203ACF0->field_01)
+ switch (sPokedexScreenData->state)
{
case 0:
- gUnknown_203ACF0->field_08 = 0;
+ sPokedexScreenData->unlockedCategories = 0;
for (i = 0; i < 9; i++)
- gUnknown_203ACF0->field_08 |= (sub_81068A0(i) << i);
- gUnknown_203ACF0->field_01 = 2;
+ sPokedexScreenData->unlockedCategories |= (DexScreen_IsCategoryUnlocked(i) << i);
+ sPokedexScreenData->state = 2;
break;
case 1:
- RemoveScrollIndicatorArrowPair(gUnknown_203ACF0->field_60);
- sub_81047B0(&gUnknown_203ACF0->field_14);
- sub_81047B0(&gUnknown_203ACF0->field_15);
- sub_81047B0(&gUnknown_203ACF0->field_16);
- SetMainCallback2(sub_8102858);
+ RemoveScrollIndicatorArrowPair(sPokedexScreenData->scrollArrowsTaskId);
+ DexScreen_RemoveWindow(&sPokedexScreenData->modeSelectWindowId);
+ DexScreen_RemoveWindow(&sPokedexScreenData->selectionIconWindowId);
+ DexScreen_RemoveWindow(&sPokedexScreenData->dexCountsWindowId);
+ SetMainCallback2(CB2_ClosePokedex);
DestroyTask(taskId);
break;
case 2:
- sub_8102C28();
- gUnknown_203ACF0->field_01 = 3;
+ DexScreen_InitGfxForTopMenu();
+ sPokedexScreenData->state = 3;
break;
case 3:
CopyBgTilemapBufferToVram(3);
CopyBgTilemapBufferToVram(2);
CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(0);
- gUnknown_203ACF0->field_01 = 4;
+ sPokedexScreenData->state = 4;
break;
case 4:
ShowBg(3);
@@ -981,352 +1020,352 @@ static void sub_810287C(u8 taskId)
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0, RGB_WHITEALPHA);
}
else
- BeginNormalPaletteFade(0xFFFF7FFF, 0, 16, 0, RGB_WHITEALPHA);
- gUnknown_203ACF0->field_01 = 5;
+ BeginNormalPaletteFade(~0x8000, 0, 16, 0, RGB_WHITEALPHA);
+ sPokedexScreenData->state = 5;
break;
case 5:
- ListMenuGetScrollAndRow(gUnknown_203ACF0->field_17, &gUnknown_203ACF0->field_62, NULL);
+ ListMenuGetScrollAndRow(sPokedexScreenData->modeSelectListMenuId, &sPokedexScreenData->modeSelectCursorPosBak, NULL);
if (IsNationalPokedexEnabled())
- gUnknown_203ACF0->field_60 = AddScrollIndicatorArrowPair(&sUnknown_84520E4, &gUnknown_203ACF0->field_62);
+ sPokedexScreenData->scrollArrowsTaskId = AddScrollIndicatorArrowPair(&sScrollArrowsTemplate_NatDex, &sPokedexScreenData->modeSelectCursorPosBak);
else
- gUnknown_203ACF0->field_60 = AddScrollIndicatorArrowPair(&sUnknown_84520D4, &gUnknown_203ACF0->field_62);
- gUnknown_203ACF0->field_01 = 6;
+ sPokedexScreenData->scrollArrowsTaskId = AddScrollIndicatorArrowPair(&sScrollArrowsTemplate_KantoDex, &sPokedexScreenData->modeSelectCursorPosBak);
+ sPokedexScreenData->state = 6;
break;
case 6:
- gUnknown_203ACF0->field_0C = ListMenu_ProcessInput(gUnknown_203ACF0->field_17);
- ListMenuGetScrollAndRow(gUnknown_203ACF0->field_17, &gUnknown_203ACF0->field_62, NULL);
+ sPokedexScreenData->modeSelectInput = ListMenu_ProcessInput(sPokedexScreenData->modeSelectListMenuId);
+ ListMenuGetScrollAndRow(sPokedexScreenData->modeSelectListMenuId, &sPokedexScreenData->modeSelectCursorPosBak, NULL);
if (JOY_NEW(A_BUTTON))
{
- switch (gUnknown_203ACF0->field_0C)
+ switch (sPokedexScreenData->modeSelectInput)
{
case LIST_CANCEL:
- gUnknown_203ACF0->field_01 = 1;
+ sPokedexScreenData->state = 1;
break;
- case 0:
- case 1:
- case 2:
- case 3:
- case 4:
- case 5:
- case 6:
- case 7:
- case 8:
- if (sub_81068A0(gUnknown_203ACF0->field_0C))
+ case DEX_CATEGORY_GRASSLAND:
+ case DEX_CATEGORY_FOREST:
+ case DEX_CATEGORY_WATERS_EDGE:
+ case DEX_CATEGORY_SEA:
+ case DEX_CATEGORY_CAVE:
+ case DEX_CATEGORY_MOUNTAIN:
+ case DEX_CATEGORY_ROUGH_TERRAIN:
+ case DEX_CATEGORY_URBAN:
+ case DEX_CATEGORY_RARE:
+ if (DexScreen_IsCategoryUnlocked(sPokedexScreenData->modeSelectInput))
{
- RemoveScrollIndicatorArrowPair(gUnknown_203ACF0->field_60);
- gUnknown_203ACF0->field_28 = gUnknown_203ACF0->field_0C;
- BeginNormalPaletteFade(0xFFFF7FFF, 0, 0, 16, RGB_WHITEALPHA);
- gUnknown_203ACF0->field_01 = 7;
+ RemoveScrollIndicatorArrowPair(sPokedexScreenData->scrollArrowsTaskId);
+ sPokedexScreenData->category = sPokedexScreenData->modeSelectInput;
+ BeginNormalPaletteFade(~0x8000, 0, 0, 16, RGB_WHITEALPHA);
+ sPokedexScreenData->state = 7;
}
break;
- case 9:
- case 14:
- RemoveScrollIndicatorArrowPair(gUnknown_203ACF0->field_60);
- gUnknown_203ACF0->field_42 = gUnknown_203ACF0->field_0C - 9;
- BeginNormalPaletteFade(0xFFFF7FFF, 0, 0, 16, RGB_WHITEALPHA);
- gUnknown_203ACF0->field_01 = 9;
+ case DEX_MODE(NUMERICAL_KANTO):
+ case DEX_MODE(NUMERICAL_NATIONAL):
+ RemoveScrollIndicatorArrowPair(sPokedexScreenData->scrollArrowsTaskId);
+ sPokedexScreenData->dexOrderId = sPokedexScreenData->modeSelectInput - DEX_CATEGORY_COUNT;
+ BeginNormalPaletteFade(~0x8000, 0, 0, 16, RGB_WHITEALPHA);
+ sPokedexScreenData->state = 9;
break;
- case 10:
- case 11:
- case 12:
- case 13:
- RemoveScrollIndicatorArrowPair(gUnknown_203ACF0->field_60);
- gUnknown_203ACF0->field_42 = gUnknown_203ACF0->field_0C - 9;
- gUnknown_203ACF0->field_38 = gUnknown_203ACF0->field_3A = 0;
- BeginNormalPaletteFade(0xFFFF7FFF, 0, 0, 16, RGB_WHITEALPHA);
- gUnknown_203ACF0->field_01 = 8;
+ case DEX_MODE(ATOZ):
+ case DEX_MODE(TYPE):
+ case DEX_MODE(LIGHTEST):
+ case DEX_MODE(SMALLEST):
+ RemoveScrollIndicatorArrowPair(sPokedexScreenData->scrollArrowsTaskId);
+ sPokedexScreenData->dexOrderId = sPokedexScreenData->modeSelectInput - DEX_CATEGORY_COUNT;
+ sPokedexScreenData->characteristicOrderMenuItemsAbove = sPokedexScreenData->characteristicOrderMenuCursorPos = 0;
+ BeginNormalPaletteFade(~0x8000, 0, 0, 16, RGB_WHITEALPHA);
+ sPokedexScreenData->state = 8;
break;
}
break;
}
if (JOY_NEW(B_BUTTON))
{
- gUnknown_203ACF0->field_01 = 1;
+ sPokedexScreenData->state = 1;
}
break;
case 7:
- DestroyListMenuTask(gUnknown_203ACF0->field_17, &gUnknown_203ACF0->field_12, &gUnknown_203ACF0->field_10);
+ DestroyListMenuTask(sPokedexScreenData->modeSelectListMenuId, &sPokedexScreenData->modeSelectCursorPos, &sPokedexScreenData->modeSelectItemsAbove);
FillBgTilemapBufferRect_Palette0(1, 0, 0, 0, 32, 20);
CopyBgTilemapBufferToVram(1);
- sub_81047B0(&gUnknown_203ACF0->field_14);
- sub_81047B0(&gUnknown_203ACF0->field_15);
- sub_81047B0(&gUnknown_203ACF0->field_16);
- gUnknown_203ACF0->field_2B = 0;
- gUnknown_203ACF0->field_2D = 0;
- gUnknown_203ACF0->field_2F = 0;
- gTasks[taskId].func = sub_8103AC8;
- gUnknown_203ACF0->field_01 = 0;
+ DexScreen_RemoveWindow(&sPokedexScreenData->modeSelectWindowId);
+ DexScreen_RemoveWindow(&sPokedexScreenData->selectionIconWindowId);
+ DexScreen_RemoveWindow(&sPokedexScreenData->dexCountsWindowId);
+ sPokedexScreenData->pageNum = 0;
+ sPokedexScreenData->categoryCursorPosInPage = 0;
+ sPokedexScreenData->parentOfCategoryMenu = 0;
+ gTasks[taskId].func = Task_DexScreen_CategorySubmenu;
+ sPokedexScreenData->state = 0;
break;
case 8:
- DestroyListMenuTask(gUnknown_203ACF0->field_17, &gUnknown_203ACF0->field_12, &gUnknown_203ACF0->field_10);
+ DestroyListMenuTask(sPokedexScreenData->modeSelectListMenuId, &sPokedexScreenData->modeSelectCursorPos, &sPokedexScreenData->modeSelectItemsAbove);
HideBg(1);
- sub_81047B0(&gUnknown_203ACF0->field_14);
- sub_81047B0(&gUnknown_203ACF0->field_15);
- sub_81047B0(&gUnknown_203ACF0->field_16);
- gTasks[taskId].func = sub_8103238;
- gUnknown_203ACF0->field_01 = 0;
+ DexScreen_RemoveWindow(&sPokedexScreenData->modeSelectWindowId);
+ DexScreen_RemoveWindow(&sPokedexScreenData->selectionIconWindowId);
+ DexScreen_RemoveWindow(&sPokedexScreenData->dexCountsWindowId);
+ gTasks[taskId].func = Task_DexScreen_CharacteristicOrder;
+ sPokedexScreenData->state = 0;
break;
case 9:
- DestroyListMenuTask(gUnknown_203ACF0->field_17, &gUnknown_203ACF0->field_12, &gUnknown_203ACF0->field_10);
+ DestroyListMenuTask(sPokedexScreenData->modeSelectListMenuId, &sPokedexScreenData->modeSelectCursorPos, &sPokedexScreenData->modeSelectItemsAbove);
HideBg(1);
- sub_81047B0(&gUnknown_203ACF0->field_14);
- sub_81047B0(&gUnknown_203ACF0->field_15);
- sub_81047B0(&gUnknown_203ACF0->field_16);
- gTasks[taskId].func = sub_8102F80;
- gUnknown_203ACF0->field_01 = 0;
+ DexScreen_RemoveWindow(&sPokedexScreenData->modeSelectWindowId);
+ DexScreen_RemoveWindow(&sPokedexScreenData->selectionIconWindowId);
+ DexScreen_RemoveWindow(&sPokedexScreenData->dexCountsWindowId);
+ gTasks[taskId].func = Task_DexScreen_NumericalOrder;
+ sPokedexScreenData->state = 0;
break;
}
}
-static void sub_8102C28(void)
+static void DexScreen_InitGfxForTopMenu(void)
{
struct ListMenuTemplate listMenuTemplate;
FillBgTilemapBufferRect(3, 0x00E, 0, 0, 30, 20, 0x00);
FillBgTilemapBufferRect(2, 0x000, 0, 0, 30, 20, 0x11);
FillBgTilemapBufferRect(1, 0x000, 0, 0, 30, 20, 0x11);
- gUnknown_203ACF0->field_14 = AddWindow(&sUnknown_8451F54);
- gUnknown_203ACF0->field_15 = AddWindow(&sUnknown_8451F5C);
- gUnknown_203ACF0->field_16 = AddWindow(&sUnknown_8451F64);
+ sPokedexScreenData->modeSelectWindowId = AddWindow(&sWindowTemplate_ModeSelect);
+ sPokedexScreenData->selectionIconWindowId = AddWindow(&sWindowTemplate_SelectionIcon);
+ sPokedexScreenData->dexCountsWindowId = AddWindow(&sWindowTemplate_DexCounts);
if (IsNationalPokedexEnabled())
{
- listMenuTemplate = sUnknown_84520BC;
- listMenuTemplate.windowId = gUnknown_203ACF0->field_14;
- gUnknown_203ACF0->field_17 = ListMenuInit(&listMenuTemplate, gUnknown_203ACF0->field_12, gUnknown_203ACF0->field_10);
- FillWindowPixelBuffer(gUnknown_203ACF0->field_16, PIXEL_FILL(0));
- sub_81047C8(gUnknown_203ACF0->field_16, 0, gText_Seen, 0, 2, 0);
- sub_81047C8(gUnknown_203ACF0->field_16, 0, gText_Kanto, 8, 13, 0);
- sub_810491C(gUnknown_203ACF0->field_16, 0, gUnknown_203ACF0->field_66, 52, 13, 2);
- sub_81047C8(gUnknown_203ACF0->field_16, 0, gText_National, 8, 24, 0);
- sub_810491C(gUnknown_203ACF0->field_16, 0, gUnknown_203ACF0->field_6A, 52, 24, 2);
- sub_81047C8(gUnknown_203ACF0->field_16, 0, gText_Owned, 0, 37, 0);
- sub_81047C8(gUnknown_203ACF0->field_16, 0, gText_Kanto, 8, 48, 0);
- sub_810491C(gUnknown_203ACF0->field_16, 0, gUnknown_203ACF0->field_68, 52, 48, 2);
- sub_81047C8(gUnknown_203ACF0->field_16, 0, gText_National, 8, 59, 0);
- sub_810491C(gUnknown_203ACF0->field_16, 0, gUnknown_203ACF0->field_6C, 52, 59, 2);
+ listMenuTemplate = sListMenuTemplate_NatDexModeSelect;
+ listMenuTemplate.windowId = sPokedexScreenData->modeSelectWindowId;
+ sPokedexScreenData->modeSelectListMenuId = ListMenuInit(&listMenuTemplate, sPokedexScreenData->modeSelectCursorPos, sPokedexScreenData->modeSelectItemsAbove);
+ FillWindowPixelBuffer(sPokedexScreenData->dexCountsWindowId, PIXEL_FILL(0));
+ DexScreen_AddTextPrinterParameterized(sPokedexScreenData->dexCountsWindowId, 0, gText_Seen, 0, 2, 0);
+ DexScreen_AddTextPrinterParameterized(sPokedexScreenData->dexCountsWindowId, 0, gText_Kanto, 8, 13, 0);
+ DexScreen_PrintNum3RightAlign(sPokedexScreenData->dexCountsWindowId, 0, sPokedexScreenData->numSeenKanto, 52, 13, 2);
+ DexScreen_AddTextPrinterParameterized(sPokedexScreenData->dexCountsWindowId, 0, gText_National, 8, 24, 0);
+ DexScreen_PrintNum3RightAlign(sPokedexScreenData->dexCountsWindowId, 0, sPokedexScreenData->numSeenNational, 52, 24, 2);
+ DexScreen_AddTextPrinterParameterized(sPokedexScreenData->dexCountsWindowId, 0, gText_Owned, 0, 37, 0);
+ DexScreen_AddTextPrinterParameterized(sPokedexScreenData->dexCountsWindowId, 0, gText_Kanto, 8, 48, 0);
+ DexScreen_PrintNum3RightAlign(sPokedexScreenData->dexCountsWindowId, 0, sPokedexScreenData->numOwnedKanto, 52, 48, 2);
+ DexScreen_AddTextPrinterParameterized(sPokedexScreenData->dexCountsWindowId, 0, gText_National, 8, 59, 0);
+ DexScreen_PrintNum3RightAlign(sPokedexScreenData->dexCountsWindowId, 0, sPokedexScreenData->numOwnedNational, 52, 59, 2);
}
else
{
- listMenuTemplate = sUnknown_8452004;
- listMenuTemplate.windowId = gUnknown_203ACF0->field_14;
- gUnknown_203ACF0->field_17 = ListMenuInit(&listMenuTemplate, gUnknown_203ACF0->field_12, gUnknown_203ACF0->field_10);
- FillWindowPixelBuffer(gUnknown_203ACF0->field_16, PIXEL_FILL(0));
- sub_81047C8(gUnknown_203ACF0->field_16, 1, gText_Seen, 0, 9, 0);
- sub_810491C(gUnknown_203ACF0->field_16, 1, gUnknown_203ACF0->field_66, 32, 21, 2);
- sub_81047C8(gUnknown_203ACF0->field_16, 1, gText_Owned, 0, 37, 0);
- sub_810491C(gUnknown_203ACF0->field_16, 1, gUnknown_203ACF0->field_68, 32, 49, 2);
+ listMenuTemplate = sListMenuTemplate_KantoDexModeSelect;
+ listMenuTemplate.windowId = sPokedexScreenData->modeSelectWindowId;
+ sPokedexScreenData->modeSelectListMenuId = ListMenuInit(&listMenuTemplate, sPokedexScreenData->modeSelectCursorPos, sPokedexScreenData->modeSelectItemsAbove);
+ FillWindowPixelBuffer(sPokedexScreenData->dexCountsWindowId, PIXEL_FILL(0));
+ DexScreen_AddTextPrinterParameterized(sPokedexScreenData->dexCountsWindowId, 1, gText_Seen, 0, 9, 0);
+ DexScreen_PrintNum3RightAlign(sPokedexScreenData->dexCountsWindowId, 1, sPokedexScreenData->numSeenKanto, 32, 21, 2);
+ DexScreen_AddTextPrinterParameterized(sPokedexScreenData->dexCountsWindowId, 1, gText_Owned, 0, 37, 0);
+ DexScreen_PrintNum3RightAlign(sPokedexScreenData->dexCountsWindowId, 1, sPokedexScreenData->numOwnedKanto, 32, 49, 2);
}
FillWindowPixelBuffer(0, PIXEL_FILL(15));
- sub_8106E78(gText_PokedexTableOfContents, 1);
+ DexScreen_PrintStringWithAlignment(gText_PokedexTableOfContents, TEXT_CENTER);
FillWindowPixelBuffer(1, PIXEL_FILL(15));
- sub_8104C2C(gText_PickOK);
+ DexScreen_PrintControlInfo(gText_PickOK);
PutWindowTilemap(0);
CopyWindowToVram(0, COPYWIN_GFX);
PutWindowTilemap(1);
CopyWindowToVram(1, COPYWIN_GFX);
- PutWindowTilemap(gUnknown_203ACF0->field_16);
- CopyWindowToVram(gUnknown_203ACF0->field_16, COPYWIN_GFX);
+ PutWindowTilemap(sPokedexScreenData->dexCountsWindowId);
+ CopyWindowToVram(sPokedexScreenData->dexCountsWindowId, COPYWIN_GFX);
}
-static void sub_8102EC0(s32 itemIndex, bool8 onInit, struct ListMenu *list)
+static void MoveCursorFunc_DexModeSelect(s32 itemIndex, bool8 onInit, struct ListMenu *list)
{
if (!onInit)
PlaySE(SE_SELECT);
if (itemIndex == LIST_CANCEL)
{
- CopyToWindowPixelBuffer(gUnknown_203ACF0->field_15, gUnknown_8440EF0, 0x000, 0x000);
- LoadPalette(gUnknown_8443460, 0x10, 0x20);
+ CopyToWindowPixelBuffer(sPokedexScreenData->selectionIconWindowId, sTopMenuSelectionIconTiles_Cancel, 0x000, 0x000);
+ LoadPalette(sTopMenuSelectionIconPals_Cancel, 0x10, 0x20);
}
else
{
- CopyToWindowPixelBuffer(gUnknown_203ACF0->field_15, sUnknown_84520F4[itemIndex].map, 0x000, 0x000);
- LoadPalette(sUnknown_84520F4[itemIndex].pal, 0x10, 0x20);
+ CopyToWindowPixelBuffer(sPokedexScreenData->selectionIconWindowId, sTopMenuSelectionIconGfxPtrs[itemIndex].tiles, 0x000, 0x000);
+ LoadPalette(sTopMenuSelectionIconGfxPtrs[itemIndex].pal, 0x10, 0x20);
}
- PutWindowTilemap(gUnknown_203ACF0->field_15);
- CopyWindowToVram(gUnknown_203ACF0->field_15, COPYWIN_GFX);
+ PutWindowTilemap(sPokedexScreenData->selectionIconWindowId);
+ CopyWindowToVram(sPokedexScreenData->selectionIconWindowId, COPYWIN_GFX);
}
-static void sub_8102F48(u8 windowId, s32 itemId, u8 y)
+static void ItemPrintFunc_DexModeSelect(u8 windowId, s32 itemId, u8 y)
{
u32 itemId_ = itemId;
- if (itemId_ > 8 || gUnknown_203ACF0->field_08 & (1 << itemId_))
+ if (itemId_ > 8 || sPokedexScreenData->unlockedCategories & (1 << itemId_))
ListMenuOverrideSetColors(1, 0, 3);
else
ListMenuOverrideSetColors(10, 0, 11);
}
-static void sub_8102F80(u8 taskId)
+static void Task_DexScreen_NumericalOrder(u8 taskId)
{
- switch (gUnknown_203ACF0->field_01)
+ switch (sPokedexScreenData->state)
{
case 0:
ListMenuLoadStdPalAt(0x10, 0);
ListMenuLoadStdPalAt(0x20, 1);
- gUnknown_203ACF0->field_48 = sub_8103518(gUnknown_203ACF0->field_42);
- gUnknown_203ACF0->field_01 = 2;
+ sPokedexScreenData->orderedDexCount = DexScreen_CountMonsInOrderedList(sPokedexScreenData->dexOrderId);
+ sPokedexScreenData->state = 2;
break;
case 1:
- sub_8103988(gUnknown_203ACF0->field_42);
+ DexScreen_DestroyDexOrderListMenu(sPokedexScreenData->dexOrderId);
HideBg(1);
- sub_81047B0(&gUnknown_203ACF0->field_40);
- gTasks[taskId].func = sub_810287C;
- gUnknown_203ACF0->field_01 = 0;
+ DexScreen_RemoveWindow(&sPokedexScreenData->numericalOrderWindowId);
+ gTasks[taskId].func = Task_PokedexScreen;
+ sPokedexScreenData->state = 0;
break;
case 2:
- sub_810317C();
- gUnknown_203ACF0->field_01 = 3;
+ DexScreen_InitGfxForNumericalOrderList();
+ sPokedexScreenData->state = 3;
break;
case 3:
CopyBgTilemapBufferToVram(3);
CopyBgTilemapBufferToVram(1);
- gUnknown_203ACF0->field_01 = 4;
+ sPokedexScreenData->state = 4;
break;
case 4:
ShowBg(1);
- BeginNormalPaletteFade(0xFFFF7FFF, 0, 16, 0, RGB_WHITEALPHA);
- gUnknown_203ACF0->field_01 = 5;
+ BeginNormalPaletteFade(~0x8000, 0, 16, 0, RGB_WHITEALPHA);
+ sPokedexScreenData->state = 5;
break;
case 5:
- ListMenuGetScrollAndRow(gUnknown_203ACF0->field_17, &gUnknown_203ACF0->field_62, NULL);
- gUnknown_203ACF0->field_60 = sub_81039F0();
- gUnknown_203ACF0->field_01 = 6;
+ ListMenuGetScrollAndRow(sPokedexScreenData->modeSelectListMenuId, &sPokedexScreenData->modeSelectCursorPosBak, NULL);
+ sPokedexScreenData->scrollArrowsTaskId = DexScreen_CreateDexOrderScrollArrows();
+ sPokedexScreenData->state = 6;
break;
case 6:
- gUnknown_203ACF0->field_30 = ListMenu_ProcessInput(gUnknown_203ACF0->field_41);
- ListMenuGetScrollAndRow(gUnknown_203ACF0->field_17, &gUnknown_203ACF0->field_62, NULL);
+ sPokedexScreenData->characteristicMenuInput = ListMenu_ProcessInput(sPokedexScreenData->orderedListMenuTaskId);
+ ListMenuGetScrollAndRow(sPokedexScreenData->modeSelectListMenuId, &sPokedexScreenData->modeSelectCursorPosBak, NULL);
if (JOY_NEW(A_BUTTON))
{
- if ((gUnknown_203ACF0->field_30 >> 16) & 1)
+ if ((sPokedexScreenData->characteristicMenuInput >> 16) & 1)
{
- gUnknown_203ACF0->field_5A = gUnknown_203ACF0->field_30;
- RemoveScrollIndicatorArrowPair(gUnknown_203ACF0->field_60);
- BeginNormalPaletteFade(0xFFFF7FFF, 0, 0, 16, RGB_WHITEALPHA);
- gUnknown_203ACF0->field_01 = 7;
+ sPokedexScreenData->dexSpecies = sPokedexScreenData->characteristicMenuInput;
+ RemoveScrollIndicatorArrowPair(sPokedexScreenData->scrollArrowsTaskId);
+ BeginNormalPaletteFade(~0x8000, 0, 0, 16, RGB_WHITEALPHA);
+ sPokedexScreenData->state = 7;
}
}
else if (JOY_NEW(B_BUTTON))
{
- RemoveScrollIndicatorArrowPair(gUnknown_203ACF0->field_60);
- BeginNormalPaletteFade(0xFFFF7FFF, 0, 0, 16, RGB_WHITEALPHA);
- gUnknown_203ACF0->field_01 = 1;
+ RemoveScrollIndicatorArrowPair(sPokedexScreenData->scrollArrowsTaskId);
+ BeginNormalPaletteFade(~0x8000, 0, 0, 16, RGB_WHITEALPHA);
+ sPokedexScreenData->state = 1;
}
break;
case 7:
- sub_8103988(gUnknown_203ACF0->field_42);
+ DexScreen_DestroyDexOrderListMenu(sPokedexScreenData->dexOrderId);
FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 32, 20);
CopyBgTilemapBufferToVram(1);
- sub_81047B0(&gUnknown_203ACF0->field_40);
- gTasks[taskId].func = sub_81042EC;
- gUnknown_203ACF0->field_01 = 0;
+ DexScreen_RemoveWindow(&sPokedexScreenData->numericalOrderWindowId);
+ gTasks[taskId].func = Task_DexScreen_ShowMonPage;
+ sPokedexScreenData->state = 0;
break;
}
}
-static void sub_810317C(void)
+static void DexScreen_InitGfxForNumericalOrderList(void)
{
struct ListMenuTemplate template;
FillBgTilemapBufferRect(3, 0x00E, 0, 0, 30, 20, 0x00);
FillBgTilemapBufferRect(1, 0x000, 0, 0, 32, 32, 0x11);
- gUnknown_203ACF0->field_40 = AddWindow(&sUnknown_845216C);
- template = sUnknown_8452174;
- template.items = gUnknown_203ACF0->field_44;
- template.windowId = gUnknown_203ACF0->field_40;
- template.totalItems = gUnknown_203ACF0->field_48;
- sub_8103924(&template, gUnknown_203ACF0->field_42);
+ sPokedexScreenData->numericalOrderWindowId = AddWindow(&sWindowTemplate_OrderedListMenu);
+ template = sListMenuTemplate_OrderedListMenu;
+ template.items = sPokedexScreenData->listItems;
+ template.windowId = sPokedexScreenData->numericalOrderWindowId;
+ template.totalItems = sPokedexScreenData->orderedDexCount;
+ DexScreen_InitListMenuForOrderedList(&template, sPokedexScreenData->dexOrderId);
FillWindowPixelBuffer(0, PIXEL_FILL(15));
- sub_8106E78(gText_PokemonListNoColor, 1);
+ DexScreen_PrintStringWithAlignment(gText_PokemonListNoColor, TEXT_CENTER);
FillWindowPixelBuffer(1, PIXEL_FILL(15));
- sub_8104C2C(gText_PickOKExit);
+ DexScreen_PrintControlInfo(gText_PickOKExit);
CopyWindowToVram(0, COPYWIN_GFX);
CopyWindowToVram(1, COPYWIN_GFX);
}
-static void sub_8103238(u8 taskId)
+static void Task_DexScreen_CharacteristicOrder(u8 taskId)
{
- switch (gUnknown_203ACF0->field_01)
+ switch (sPokedexScreenData->state)
{
case 0:
ListMenuLoadStdPalAt(0x10, 0);
ListMenuLoadStdPalAt(0x20, 1);
- gUnknown_203ACF0->field_48 = sub_8103518(gUnknown_203ACF0->field_42);
- gUnknown_203ACF0->field_01 = 2;
+ sPokedexScreenData->orderedDexCount = DexScreen_CountMonsInOrderedList(sPokedexScreenData->dexOrderId);
+ sPokedexScreenData->state = 2;
break;
case 1:
- sub_8103988(gUnknown_203ACF0->field_42);
+ DexScreen_DestroyDexOrderListMenu(sPokedexScreenData->dexOrderId);
HideBg(1);
- sub_81047B0(&gUnknown_203ACF0->field_40);
- gTasks[taskId].func = sub_810287C;
- gUnknown_203ACF0->field_01 = 0;
+ DexScreen_RemoveWindow(&sPokedexScreenData->numericalOrderWindowId);
+ gTasks[taskId].func = Task_PokedexScreen;
+ sPokedexScreenData->state = 0;
break;
case 2:
- sub_810345C();
- gUnknown_203ACF0->field_01 = 3;
+ DexScreen_CreateCharacteristicListMenu();
+ sPokedexScreenData->state = 3;
break;
case 3:
CopyBgTilemapBufferToVram(3);
CopyBgTilemapBufferToVram(1);
- gUnknown_203ACF0->field_01 = 4;
+ sPokedexScreenData->state = 4;
break;
case 4:
ShowBg(1);
- BeginNormalPaletteFade(0xFFFF7FFF, 0, 16, 0, RGB_WHITEALPHA);
- gUnknown_203ACF0->field_01 = 5;
+ BeginNormalPaletteFade(~0x8000, 0, 16, 0, RGB_WHITEALPHA);
+ sPokedexScreenData->state = 5;
break;
case 5:
- ListMenuGetScrollAndRow(gUnknown_203ACF0->field_17, &gUnknown_203ACF0->field_62, NULL);
- gUnknown_203ACF0->field_60 = sub_81039F0();
- gUnknown_203ACF0->field_01 = 6;
+ ListMenuGetScrollAndRow(sPokedexScreenData->modeSelectListMenuId, &sPokedexScreenData->modeSelectCursorPosBak, NULL);
+ sPokedexScreenData->scrollArrowsTaskId = DexScreen_CreateDexOrderScrollArrows();
+ sPokedexScreenData->state = 6;
break;
case 6:
- gUnknown_203ACF0->field_30 = ListMenu_ProcessInput(gUnknown_203ACF0->field_41);
- ListMenuGetScrollAndRow(gUnknown_203ACF0->field_17, &gUnknown_203ACF0->field_62, NULL);
+ sPokedexScreenData->characteristicMenuInput = ListMenu_ProcessInput(sPokedexScreenData->orderedListMenuTaskId);
+ ListMenuGetScrollAndRow(sPokedexScreenData->modeSelectListMenuId, &sPokedexScreenData->modeSelectCursorPosBak, NULL);
if (JOY_NEW(A_BUTTON))
{
- if (((gUnknown_203ACF0->field_30 >> 16) & 1) && !sub_8106A20(gUnknown_203ACF0->field_30))
+ if (((sPokedexScreenData->characteristicMenuInput >> 16) & 1) && !DexScreen_LookUpCategoryBySpecies(sPokedexScreenData->characteristicMenuInput))
{
- RemoveScrollIndicatorArrowPair(gUnknown_203ACF0->field_60);
- BeginNormalPaletteFade(0xFFFF7FFF, 0, 0, 16, RGB_WHITEALPHA);
- gUnknown_203ACF0->field_01 = 7;
+ RemoveScrollIndicatorArrowPair(sPokedexScreenData->scrollArrowsTaskId);
+ BeginNormalPaletteFade(~0x8000, 0, 0, 16, RGB_WHITEALPHA);
+ sPokedexScreenData->state = 7;
}
}
else if (JOY_NEW(B_BUTTON))
{
- RemoveScrollIndicatorArrowPair(gUnknown_203ACF0->field_60);
- BeginNormalPaletteFade(0xFFFF7FFF, 0, 0, 16, RGB_WHITEALPHA);
- gUnknown_203ACF0->field_01 = 1;
+ RemoveScrollIndicatorArrowPair(sPokedexScreenData->scrollArrowsTaskId);
+ BeginNormalPaletteFade(~0x8000, 0, 0, 16, RGB_WHITEALPHA);
+ sPokedexScreenData->state = 1;
}
break;
case 7:
- sub_8103988(gUnknown_203ACF0->field_42);
+ DexScreen_DestroyDexOrderListMenu(sPokedexScreenData->dexOrderId);
FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 32, 20);
CopyBgTilemapBufferToVram(1);
- sub_81047B0(&gUnknown_203ACF0->field_40);
- gUnknown_203ACF0->field_2F = 1;
- gTasks[taskId].func = sub_8103AC8;
- gUnknown_203ACF0->field_01 = 0;
+ DexScreen_RemoveWindow(&sPokedexScreenData->numericalOrderWindowId);
+ sPokedexScreenData->parentOfCategoryMenu = 1;
+ gTasks[taskId].func = Task_DexScreen_CategorySubmenu;
+ sPokedexScreenData->state = 0;
break;
}
}
-static void sub_810345C(void)
+static void DexScreen_CreateCharacteristicListMenu(void)
{
struct ListMenuTemplate template;
FillBgTilemapBufferRect(3, 0x00E, 0, 0, 30, 20, 0x00);
FillBgTilemapBufferRect(1, 0x000, 0, 0, 32, 32, 0x11);
- gUnknown_203ACF0->field_40 = AddWindow(&sUnknown_845216C);
- template = sUnknown_8452174;
- template.items = gUnknown_203ACF0->field_44;
- template.windowId = gUnknown_203ACF0->field_40;
- template.totalItems = gUnknown_203ACF0->field_48;
- sub_8103924(&template, gUnknown_203ACF0->field_42);
+ sPokedexScreenData->numericalOrderWindowId = AddWindow(&sWindowTemplate_OrderedListMenu);
+ template = sListMenuTemplate_OrderedListMenu;
+ template.items = sPokedexScreenData->listItems;
+ template.windowId = sPokedexScreenData->numericalOrderWindowId;
+ template.totalItems = sPokedexScreenData->orderedDexCount;
+ DexScreen_InitListMenuForOrderedList(&template, sPokedexScreenData->dexOrderId);
FillWindowPixelBuffer(0, PIXEL_FILL(15));
- sub_8106E78(gText_SearchNoColor, 1);
+ DexScreen_PrintStringWithAlignment(gText_SearchNoColor, TEXT_CENTER);
FillWindowPixelBuffer(1, PIXEL_FILL(15));
- sub_8104C2C(gText_PickOKExit);
+ DexScreen_PrintControlInfo(gText_PickOKExit);
CopyWindowToVram(0, COPYWIN_GFX);
CopyWindowToVram(1, COPYWIN_GFX);
}
-static u16 sub_8103518(u8 a0)
+static u16 DexScreen_CountMonsInOrderedList(u8 orderIdx)
{
s32 max_n = IsNationalPokedexEnabled() ? NATIONAL_DEX_COUNT : KANTO_DEX_COUNT;
u16 ndex_num;
@@ -1335,165 +1374,165 @@ static u16 sub_8103518(u8 a0)
bool8 caught;
bool8 seen;
- switch (a0)
+ switch (orderIdx)
{
default:
- case 0:
+ case DEX_ORDER_NUMERICAL_KANTO:
for (i = 0; i < KANTO_DEX_COUNT; i++)
{
ndex_num = i + 1;
- seen = sub_8104AB0(ndex_num, FLAG_GET_SEEN, 0);
- caught = sub_8104AB0(ndex_num, FLAG_GET_CAUGHT, 0);
+ seen = DexScreen_GetSetPokedexFlag(ndex_num, FLAG_GET_SEEN, FALSE);
+ caught = DexScreen_GetSetPokedexFlag(ndex_num, FLAG_GET_CAUGHT, FALSE);
if (seen)
{
- gUnknown_203ACF0->field_44[i].label = gSpeciesNames[NationalPokedexNumToSpecies(ndex_num)];
+ sPokedexScreenData->listItems[i].label = gSpeciesNames[NationalPokedexNumToSpecies(ndex_num)];
ret = ndex_num;
}
else
{
- gUnknown_203ACF0->field_44[i].label = gText_5Dashes;
+ sPokedexScreenData->listItems[i].label = gText_5Dashes;
}
- gUnknown_203ACF0->field_44[i].index = (caught << 17) + (seen << 16) + NationalPokedexNumToSpecies(ndex_num);
+ sPokedexScreenData->listItems[i].index = (caught << 17) + (seen << 16) + NationalPokedexNumToSpecies(ndex_num);
}
break;
- case 1:
- for (i = 0; i < SPECIES_CHIMECHO; i++)
+ case DEX_ORDER_ATOZ:
+ for (i = 0; i < NUM_SPECIES - 1; i++)
{
ndex_num = gPokedexOrder_Alphabetical[i];
if (ndex_num <= max_n)
{
- seen = sub_8104AB0(ndex_num, FLAG_GET_SEEN, 0);
- caught = sub_8104AB0(ndex_num, FLAG_GET_CAUGHT, 0);
+ seen = DexScreen_GetSetPokedexFlag(ndex_num, FLAG_GET_SEEN, FALSE);
+ caught = DexScreen_GetSetPokedexFlag(ndex_num, FLAG_GET_CAUGHT, FALSE);
if (seen)
{
- gUnknown_203ACF0->field_44[ret].label = gSpeciesNames[NationalPokedexNumToSpecies(ndex_num)];
- gUnknown_203ACF0->field_44[ret].index = (caught << 17) + (seen << 16) + NationalPokedexNumToSpecies(ndex_num);
+ sPokedexScreenData->listItems[ret].label = gSpeciesNames[NationalPokedexNumToSpecies(ndex_num)];
+ sPokedexScreenData->listItems[ret].index = (caught << 17) + (seen << 16) + NationalPokedexNumToSpecies(ndex_num);
ret++;
}
}
}
break;
- case 2:
+ case DEX_ORDER_TYPE:
for (i = 0; i < NUM_SPECIES - 1; i++)
{
ndex_num = SpeciesToNationalPokedexNum(gPokedexOrder_Type[i]);
if (ndex_num <= max_n)
{
- seen = sub_8104AB0(ndex_num, FLAG_GET_SEEN, 0);
- caught = sub_8104AB0(ndex_num, FLAG_GET_CAUGHT, 0);
+ seen = DexScreen_GetSetPokedexFlag(ndex_num, FLAG_GET_SEEN, FALSE);
+ caught = DexScreen_GetSetPokedexFlag(ndex_num, FLAG_GET_CAUGHT, FALSE);
if (caught)
{
- gUnknown_203ACF0->field_44[ret].label = gSpeciesNames[NationalPokedexNumToSpecies(ndex_num)];
- gUnknown_203ACF0->field_44[ret].index = (caught << 17) + (seen << 16) + NationalPokedexNumToSpecies(ndex_num);
+ sPokedexScreenData->listItems[ret].label = gSpeciesNames[NationalPokedexNumToSpecies(ndex_num)];
+ sPokedexScreenData->listItems[ret].index = (caught << 17) + (seen << 16) + NationalPokedexNumToSpecies(ndex_num);
ret++;
}
}
}
break;
- case 3:
+ case DEX_ORDER_LIGHTEST:
for (i = 0; i < NATIONAL_DEX_COUNT; i++)
{
ndex_num = gPokedexOrder_Weight[i];
if (ndex_num <= max_n)
{
- seen = sub_8104AB0(ndex_num, FLAG_GET_SEEN, 0);
- caught = sub_8104AB0(ndex_num, FLAG_GET_CAUGHT, 0);
+ seen = DexScreen_GetSetPokedexFlag(ndex_num, FLAG_GET_SEEN, FALSE);
+ caught = DexScreen_GetSetPokedexFlag(ndex_num, FLAG_GET_CAUGHT, FALSE);
if (caught)
{
- gUnknown_203ACF0->field_44[ret].label = gSpeciesNames[NationalPokedexNumToSpecies(ndex_num)];
- gUnknown_203ACF0->field_44[ret].index = (caught << 17) + (seen << 16) + NationalPokedexNumToSpecies(ndex_num);
+ sPokedexScreenData->listItems[ret].label = gSpeciesNames[NationalPokedexNumToSpecies(ndex_num)];
+ sPokedexScreenData->listItems[ret].index = (caught << 17) + (seen << 16) + NationalPokedexNumToSpecies(ndex_num);
ret++;
}
}
}
break;
- case 4:
+ case DEX_ORDER_SMALLEST:
for (i = 0; i < NATIONAL_DEX_COUNT; i++)
{
ndex_num = gPokedexOrder_Height[i];
if (ndex_num <= max_n)
{
- seen = sub_8104AB0(ndex_num, FLAG_GET_SEEN, 0);
- caught = sub_8104AB0(ndex_num, FLAG_GET_CAUGHT, 0);
+ seen = DexScreen_GetSetPokedexFlag(ndex_num, FLAG_GET_SEEN, FALSE);
+ caught = DexScreen_GetSetPokedexFlag(ndex_num, FLAG_GET_CAUGHT, FALSE);
if (caught)
{
- gUnknown_203ACF0->field_44[ret].label = gSpeciesNames[NationalPokedexNumToSpecies(ndex_num)];
- gUnknown_203ACF0->field_44[ret].index = (caught << 17) + (seen << 16) + NationalPokedexNumToSpecies(ndex_num);
+ sPokedexScreenData->listItems[ret].label = gSpeciesNames[NationalPokedexNumToSpecies(ndex_num)];
+ sPokedexScreenData->listItems[ret].index = (caught << 17) + (seen << 16) + NationalPokedexNumToSpecies(ndex_num);
ret++;
}
}
}
break;
- case 5:
+ case DEX_ORDER_NUMERICAL_NATIONAL:
for (i = 0; i < NATIONAL_DEX_COUNT; i++)
{
ndex_num = i + 1;
- seen = sub_8104AB0(ndex_num, FLAG_GET_SEEN, 0);
- caught = sub_8104AB0(ndex_num, FLAG_GET_CAUGHT, 0);
+ seen = DexScreen_GetSetPokedexFlag(ndex_num, FLAG_GET_SEEN, FALSE);
+ caught = DexScreen_GetSetPokedexFlag(ndex_num, FLAG_GET_CAUGHT, FALSE);
if (seen)
{
- gUnknown_203ACF0->field_44[i].label = gSpeciesNames[NationalPokedexNumToSpecies(ndex_num)];
+ sPokedexScreenData->listItems[i].label = gSpeciesNames[NationalPokedexNumToSpecies(ndex_num)];
ret = ndex_num;
}
else
{
- gUnknown_203ACF0->field_44[i].label = gText_5Dashes;
+ sPokedexScreenData->listItems[i].label = gText_5Dashes;
}
- gUnknown_203ACF0->field_44[i].index = (caught << 17) + (seen << 16) + NationalPokedexNumToSpecies(ndex_num);
+ sPokedexScreenData->listItems[i].index = (caught << 17) + (seen << 16) + NationalPokedexNumToSpecies(ndex_num);
}
break;
}
return ret;
}
-static void sub_8103924(const struct ListMenuTemplate * template, u8 a1)
+static void DexScreen_InitListMenuForOrderedList(const struct ListMenuTemplate * template, u8 order)
{
- switch (a1)
+ switch (order)
{
default:
- case 0:
- gUnknown_203ACF0->field_41 = ListMenuInitInRect(template, &sUnknown_845218C, gUnknown_203ACF0->field_36, gUnknown_203ACF0->field_34);
+ case DEX_ORDER_NUMERICAL_KANTO:
+ sPokedexScreenData->orderedListMenuTaskId = ListMenuInitInRect(template, sListMenuRects_OrderedList, sPokedexScreenData->kantoOrderMenuCursorPos, sPokedexScreenData->kantoOrderMenuItemsAbove);
break;
- case 1:
- case 2:
- case 3:
- case 4:
- gUnknown_203ACF0->field_41 = ListMenuInitInRect(template, &sUnknown_845218C, gUnknown_203ACF0->field_3A, gUnknown_203ACF0->field_38);
+ case DEX_ORDER_ATOZ:
+ case DEX_ORDER_TYPE:
+ case DEX_ORDER_LIGHTEST:
+ case DEX_ORDER_SMALLEST:
+ sPokedexScreenData->orderedListMenuTaskId = ListMenuInitInRect(template, sListMenuRects_OrderedList, sPokedexScreenData->characteristicOrderMenuCursorPos, sPokedexScreenData->characteristicOrderMenuItemsAbove);
break;
- case 5:
- gUnknown_203ACF0->field_41 = ListMenuInitInRect(template, &sUnknown_845218C, gUnknown_203ACF0->field_3E, gUnknown_203ACF0->field_3C);
+ case DEX_ORDER_NUMERICAL_NATIONAL:
+ sPokedexScreenData->orderedListMenuTaskId = ListMenuInitInRect(template, sListMenuRects_OrderedList, sPokedexScreenData->nationalOrderMenuCursorPos, sPokedexScreenData->nationalOrderMenuItemsAbove);
break;
}
}
-static void sub_8103988(u8 a0)
+static void DexScreen_DestroyDexOrderListMenu(u8 order)
{
- switch (a0)
+ switch (order)
{
default:
- case 0:
- DestroyListMenuTask(gUnknown_203ACF0->field_41, &gUnknown_203ACF0->field_36, &gUnknown_203ACF0->field_34);
+ case DEX_ORDER_NUMERICAL_KANTO:
+ DestroyListMenuTask(sPokedexScreenData->orderedListMenuTaskId, &sPokedexScreenData->kantoOrderMenuCursorPos, &sPokedexScreenData->kantoOrderMenuItemsAbove);
break;
- case 1:
- case 2:
- case 3:
- case 4:
- DestroyListMenuTask(gUnknown_203ACF0->field_41, &gUnknown_203ACF0->field_3A, &gUnknown_203ACF0->field_38);
+ case DEX_ORDER_ATOZ:
+ case DEX_ORDER_TYPE:
+ case DEX_ORDER_LIGHTEST:
+ case DEX_ORDER_SMALLEST:
+ DestroyListMenuTask(sPokedexScreenData->orderedListMenuTaskId, &sPokedexScreenData->characteristicOrderMenuCursorPos, &sPokedexScreenData->characteristicOrderMenuItemsAbove);
break;
- case 5:
- DestroyListMenuTask(gUnknown_203ACF0->field_41, &gUnknown_203ACF0->field_3E, &gUnknown_203ACF0->field_3C);
+ case DEX_ORDER_NUMERICAL_NATIONAL:
+ DestroyListMenuTask(sPokedexScreenData->orderedListMenuTaskId, &sPokedexScreenData->nationalOrderMenuCursorPos, &sPokedexScreenData->nationalOrderMenuItemsAbove);
break;
}
}
-static u8 sub_81039F0(void)
+static u8 DexScreen_CreateDexOrderScrollArrows(void)
{
- struct ScrollArrowsTemplate template = sUnknown_84521B4;
- if (gUnknown_203ACF0->field_48 > sUnknown_8452174.maxShowed)
- template.fullyDownThreshold = gUnknown_203ACF0->field_48 - sUnknown_8452174.maxShowed;
+ struct ScrollArrowsTemplate template = sDexOrderScrollArrowsTemplate;
+ if (sPokedexScreenData->orderedDexCount > sListMenuTemplate_OrderedListMenu.maxShowed)
+ template.fullyDownThreshold = sPokedexScreenData->orderedDexCount - sListMenuTemplate_OrderedListMenu.maxShowed;
else
template.fullyDownThreshold = 0;
- return AddScrollIndicatorArrowPair(&template, &gUnknown_203ACF0->field_62);
+ return AddScrollIndicatorArrowPair(&template, &sPokedexScreenData->modeSelectCursorPosBak);
}
struct PokedexListItem
@@ -1503,208 +1542,207 @@ struct PokedexListItem
bool8 caught:1;
};
-static void sub_8103A40(u8 windowId, s32 itemId, u8 y)
+static void ItemPrintFunc_OrderedListMenu(u8 windowId, s32 itemId, u8 y)
{
- u32 itemId_ = itemId;
- u16 species = itemId_;
- bool8 seen = (itemId_ >> 16) & 1; // not used but required to match
- bool8 caught = (itemId_ >> 17) & 1;
+ u16 species = (u32)itemId;
+ bool8 seen = ((u32)itemId >> 16) & 1; // not used but required to match
+ bool8 caught = ((u32)itemId >> 17) & 1;
u8 type1;
- sub_8104A34(gUnknown_203ACF0->field_40, 0, species, 12, y);
+ DexScreen_PrintMonDexNo(sPokedexScreenData->numericalOrderWindowId, 0, species, 12, y);
if (caught)
{
- BlitMoveInfoIcon(gUnknown_203ACF0->field_40, 0, 0x28, y);
+ BlitMoveInfoIcon(sPokedexScreenData->numericalOrderWindowId, 0, 0x28, y);
type1 = gBaseStats[species].type1;
- BlitMoveInfoIcon(gUnknown_203ACF0->field_40, type1 + 1, 0x78, y);
+ BlitMoveInfoIcon(sPokedexScreenData->numericalOrderWindowId, type1 + 1, 0x78, y);
if (type1 != gBaseStats[species].type2)
- BlitMoveInfoIcon(gUnknown_203ACF0->field_40, gBaseStats[species].type2 + 1, 0x98, y);
+ BlitMoveInfoIcon(sPokedexScreenData->numericalOrderWindowId, gBaseStats[species].type2 + 1, 0x98, y);
}
}
-static void sub_8103AC8(u8 taskId)
+static void Task_DexScreen_CategorySubmenu(u8 taskId)
{
- int r4;
+ int pageFlipCmd;
u8 *ptr;
- switch (gUnknown_203ACF0->field_01)
+ switch (sPokedexScreenData->state)
{
case 0:
HideBg(3);
HideBg(2);
HideBg(1);
- sub_810699C(gUnknown_203ACF0->field_28);
- if (gUnknown_203ACF0->field_2B < gUnknown_203ACF0->field_29)
- gUnknown_203ACF0->field_2B = gUnknown_203ACF0->field_29;
- gUnknown_203ACF0->field_01 = 2;
+ DexScreen_GetPageLimitsForCategory(sPokedexScreenData->category);
+ if (sPokedexScreenData->pageNum < sPokedexScreenData->firstPageInCategory)
+ sPokedexScreenData->pageNum = sPokedexScreenData->firstPageInCategory;
+ sPokedexScreenData->state = 2;
break;
case 1:
- sub_8104E90();
+ DexScreen_DestroyCategoryPageMonIconAndInfoWindows();
HideBg(2);
HideBg(1);
- switch (gUnknown_203ACF0->field_2F)
+ switch (sPokedexScreenData->parentOfCategoryMenu)
{
case 0:
default:
- gTasks[taskId].func = sub_810287C;
+ gTasks[taskId].func = Task_PokedexScreen;
break;
case 1:
- gTasks[taskId].func = sub_8103238;
+ gTasks[taskId].func = Task_DexScreen_CharacteristicOrder;
break;
}
- gUnknown_203ACF0->field_01 = 0;
+ sPokedexScreenData->state = 0;
break;
case 2:
- sub_8104F0C(0);
+ DexScreen_CreateCategoryListGfx(FALSE);
CopyBgTilemapBufferToVram(3);
CopyBgTilemapBufferToVram(2);
CopyBgTilemapBufferToVram(1);
- sub_8105058(0xFF);
- gUnknown_203ACF0->field_01 = 3;
+ DexScreen_CreateCategoryPageSelectionCursor(0xFF);
+ sPokedexScreenData->state = 3;
break;
case 3:
- BeginNormalPaletteFade(0xFFFF7FFF, 0, 16, 0, RGB_WHITEALPHA);
+ BeginNormalPaletteFade(~0x8000, 0, 16, 0, RGB_WHITEALPHA);
ShowBg(3);
ShowBg(2);
ShowBg(1);
- gUnknown_203ACF0->field_01 = 4;
+ sPokedexScreenData->state = 4;
break;
case 4:
- gUnknown_203ACF0->field_60 = sub_8104234();
- gUnknown_203ACF0->field_61 = ListMenuAddCursorObjectInternal(&gUnknown_84524C4, 0);
- gUnknown_203ACF0->field_01 = 5;
+ sPokedexScreenData->scrollArrowsTaskId = DexScreen_CreateCategoryMenuScrollArrows();
+ sPokedexScreenData->categoryPageCursorTaskId = ListMenuAddCursorObjectInternal(&sCursorStruct_CategoryPage, 0);
+ sPokedexScreenData->state = 5;
break;
case 5:
- sub_8105058(gUnknown_203ACF0->field_2D);
- sub_8105178(gUnknown_203ACF0->field_61, gUnknown_203ACF0->field_2D, gUnknown_203ACF0->field_2C);
- gUnknown_203ACF0->field_62 = gUnknown_203ACF0->field_2B;
- r4 = 0;
- if (JOY_NEW(A_BUTTON) && sub_8104AB0(gUnknown_203ACF0->field_18[gUnknown_203ACF0->field_2D], FLAG_GET_SEEN, 1))
- {
- RemoveScrollIndicatorArrowPair(gUnknown_203ACF0->field_60);
- ListMenuRemoveCursorObject(gUnknown_203ACF0->field_61, 0);
- gUnknown_203ACF0->field_01 = 12;
+ DexScreen_CreateCategoryPageSelectionCursor(sPokedexScreenData->categoryCursorPosInPage);
+ DexScreen_UpdateCategoryPageCursorObject(sPokedexScreenData->categoryPageCursorTaskId, sPokedexScreenData->categoryCursorPosInPage, sPokedexScreenData->numMonsOnPage);
+ sPokedexScreenData->modeSelectCursorPosBak = sPokedexScreenData->pageNum;
+ pageFlipCmd = 0;
+ if (JOY_NEW(A_BUTTON) && DexScreen_GetSetPokedexFlag(sPokedexScreenData->pageSpecies[sPokedexScreenData->categoryCursorPosInPage], FLAG_GET_SEEN, TRUE))
+ {
+ RemoveScrollIndicatorArrowPair(sPokedexScreenData->scrollArrowsTaskId);
+ ListMenuRemoveCursorObject(sPokedexScreenData->categoryPageCursorTaskId, 0);
+ sPokedexScreenData->state = 12;
break;
}
if (!JOY_HELD(R_BUTTON) && JOY_REPT(DPAD_LEFT))
{
- if (gUnknown_203ACF0->field_2D != 0)
+ if (sPokedexScreenData->categoryCursorPosInPage != 0)
{
- gUnknown_203ACF0->field_2D--;
+ sPokedexScreenData->categoryCursorPosInPage--;
PlaySE(SE_SELECT);
break;
}
else
- r4 = 1;
+ pageFlipCmd = 1;
}
if (!JOY_HELD(R_BUTTON) && JOY_REPT(DPAD_RIGHT))
{
- if (gUnknown_203ACF0->field_2D < gUnknown_203ACF0->field_2C - 1)
+ if (sPokedexScreenData->categoryCursorPosInPage < sPokedexScreenData->numMonsOnPage - 1)
{
- gUnknown_203ACF0->field_2D++;
+ sPokedexScreenData->categoryCursorPosInPage++;
PlaySE(SE_SELECT);
break;
}
else
- r4 = 2;
+ pageFlipCmd = 2;
}
- if (r4 == 0)
- r4 = sub_8104284();
- switch (r4)
+ if (pageFlipCmd == 0)
+ pageFlipCmd = DexScreen_InputHandler_GetShoulderInput();
+ switch (pageFlipCmd)
{
- case 0:
+ case 0: // No action
break;
- case 1:
- while (gUnknown_203ACF0->field_2B > gUnknown_203ACF0->field_29)
+ case 1: // Left
+ while (sPokedexScreenData->pageNum > sPokedexScreenData->firstPageInCategory)
{
- gUnknown_203ACF0->field_2B--;
- if (sub_8106838(gUnknown_203ACF0->field_28, gUnknown_203ACF0->field_2B))
+ sPokedexScreenData->pageNum--;
+ if (DexScreen_IsPageUnlocked(sPokedexScreenData->category, sPokedexScreenData->pageNum))
{
- gUnknown_203ACF0->field_01 = 8;
+ sPokedexScreenData->state = 8;
break;
}
}
- if (gUnknown_203ACF0->field_01 != 8)
- gUnknown_203ACF0->field_01 = 6;
+ if (sPokedexScreenData->state != 8)
+ sPokedexScreenData->state = 6;
break;
- case 2:
- while (gUnknown_203ACF0->field_2B < gUnknown_203ACF0->field_2A - 1)
+ case 2: // Right
+ while (sPokedexScreenData->pageNum < sPokedexScreenData->lastPageInCategory - 1)
{
- gUnknown_203ACF0->field_2B++;
- if (sub_8106838(gUnknown_203ACF0->field_28, gUnknown_203ACF0->field_2B))
+ sPokedexScreenData->pageNum++;
+ if (DexScreen_IsPageUnlocked(sPokedexScreenData->category, sPokedexScreenData->pageNum))
{
- gUnknown_203ACF0->field_01 = 10;
+ sPokedexScreenData->state = 10;
break;
}
}
- if (gUnknown_203ACF0->field_01 != 10)
- gUnknown_203ACF0->field_01 = 6;
+ if (sPokedexScreenData->state != 10)
+ sPokedexScreenData->state = 6;
break;
}
if (JOY_NEW(B_BUTTON))
{
- gUnknown_203ACF0->field_01 = 6;
+ sPokedexScreenData->state = 6;
}
break;
case 6:
case 7:
- RemoveScrollIndicatorArrowPair(gUnknown_203ACF0->field_60);
- ListMenuRemoveCursorObject(gUnknown_203ACF0->field_61, 0);
- BeginNormalPaletteFade(0xFFFF7FFF, 0, 0, 16, RGB_WHITEALPHA);
- gUnknown_203ACF0->field_01 = 1;
+ RemoveScrollIndicatorArrowPair(sPokedexScreenData->scrollArrowsTaskId);
+ ListMenuRemoveCursorObject(sPokedexScreenData->categoryPageCursorTaskId, 0);
+ BeginNormalPaletteFade(~0x8000, 0, 0, 16, RGB_WHITEALPHA);
+ sPokedexScreenData->state = 1;
break;
case 8:
case 10:
- sub_8104E90();
- sub_8105058(0xFF);
- ListMenuUpdateCursorObject(gUnknown_203ACF0->field_61, 0, 0xA0, 0);
- gUnknown_203ACF0->field_2E = 0;
- gUnknown_203ACF0->field_02[0] = 0;
- gUnknown_203ACF0->field_01++;
+ DexScreen_DestroyCategoryPageMonIconAndInfoWindows();
+ DexScreen_CreateCategoryPageSelectionCursor(0xFF);
+ ListMenuUpdateCursorObject(sPokedexScreenData->categoryPageCursorTaskId, 0, 0xA0, 0);
+ sPokedexScreenData->categoryPageSelectionCursorTimer = 0;
+ sPokedexScreenData->data[0] = 0;
+ sPokedexScreenData->state++;
break;
case 9:
- if (sub_81052D0(0))
+ if (DexScreen_FlipCategoryPageInDirection(0))
{
- gUnknown_203ACF0->field_2D = gUnknown_203ACF0->field_2C - 1;
- gUnknown_203ACF0->field_01 = 5;
+ sPokedexScreenData->categoryCursorPosInPage = sPokedexScreenData->numMonsOnPage - 1;
+ sPokedexScreenData->state = 5;
}
break;
case 11:
- if (sub_81052D0(1))
+ if (DexScreen_FlipCategoryPageInDirection(1))
{
- gUnknown_203ACF0->field_2D = 0;
- gUnknown_203ACF0->field_01 = 5;
+ sPokedexScreenData->categoryCursorPosInPage = 0;
+ sPokedexScreenData->state = 5;
}
break;
case 12:
- gUnknown_203ACF0->field_5A = gUnknown_203ACF0->field_18[gUnknown_203ACF0->field_2D];
+ sPokedexScreenData->dexSpecies = sPokedexScreenData->pageSpecies[sPokedexScreenData->categoryCursorPosInPage];
PlaySE(SE_SELECT);
- gUnknown_203ACF0->field_01 = 14;
+ sPokedexScreenData->state = 14;
break;
case 13:
- sub_8106014();
- gUnknown_203ACF0->field_01 = 4;
+ RemoveDexPageWindows();
+ sPokedexScreenData->state = 4;
break;
case 14:
- sub_8105E1C(0);
- gUnknown_203ACF0->field_01 = 15;
+ DexScreen_DrawMonDexPage(FALSE);
+ sPokedexScreenData->state = 15;
break;
case 15:
- gUnknown_203ACF0->field_02[0] = 0;
- gUnknown_203ACF0->field_02[1] = 0;
- gUnknown_203ACF0->field_01++;
+ sPokedexScreenData->data[0] = 0;
+ sPokedexScreenData->data[1] = 0;
+ sPokedexScreenData->state++;
// fallthrough
case 16:
- if (gUnknown_203ACF0->field_02[1] < 6)
+ if (sPokedexScreenData->data[1] < 6)
{
- if (gUnknown_203ACF0->field_02[0])
+ if (sPokedexScreenData->data[0])
{
- sub_8105594(0, gUnknown_203ACF0->field_02[1]);
+ DexScreen_DexPageZoomEffectFrame(0, sPokedexScreenData->data[1]);
CopyBgTilemapBufferToVram(0);
- gUnknown_203ACF0->field_02[0] = 4;
- gUnknown_203ACF0->field_02[1]++;
+ sPokedexScreenData->data[0] = 4;
+ sPokedexScreenData->data[1]++;
}
else
{
- gUnknown_203ACF0->field_02[0]--;
+ sPokedexScreenData->data[0]--;
}
}
else
@@ -1714,73 +1752,73 @@ static void sub_8103AC8(u8 taskId)
CopyBgTilemapBufferToVram(2);
CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(0);
- PlayCry2(gUnknown_203ACF0->field_5A, 0, 125, 10);
- gUnknown_203ACF0->field_02[0] = 0;
- gUnknown_203ACF0->field_01 = 17;
+ PlayCry2(sPokedexScreenData->dexSpecies, 0, 125, 10);
+ sPokedexScreenData->data[0] = 0;
+ sPokedexScreenData->state = 17;
}
break;
case 17:
if (JOY_NEW(A_BUTTON))
{
- sub_8106014();
+ RemoveDexPageWindows();
FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 2, 30, 16);
CopyBgTilemapBufferToVram(1);
- gUnknown_203ACF0->field_01 = 21;
+ sPokedexScreenData->state = 21;
}
else if (JOY_NEW(B_BUTTON))
{
- gUnknown_203ACF0->field_01 = 18;
+ sPokedexScreenData->state = 18;
}
else
{
- sub_8106B34();
+ DexScreen_InputHandler_StartToCry();
}
break;
case 18:
- sub_8104F0C(0);
- sub_8105594(0, 6);
+ DexScreen_CreateCategoryListGfx(FALSE);
+ DexScreen_DexPageZoomEffectFrame(0, 6);
CopyBgTilemapBufferToVram(3);
CopyBgTilemapBufferToVram(2);
CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(0);
- gUnknown_203ACF0->field_01 = 19;
+ sPokedexScreenData->state = 19;
break;
case 19:
- gUnknown_203ACF0->field_02[0] = 0;
- gUnknown_203ACF0->field_02[1] = 6;
- gUnknown_203ACF0->field_01++;
+ sPokedexScreenData->data[0] = 0;
+ sPokedexScreenData->data[1] = 6;
+ sPokedexScreenData->state++;
// fallthrough
case 20:
- if (gUnknown_203ACF0->field_02[1])
+ if (sPokedexScreenData->data[1])
{
- if (gUnknown_203ACF0->field_02[0])
+ if (sPokedexScreenData->data[0])
{
- gUnknown_203ACF0->field_02[1]--;
+ sPokedexScreenData->data[1]--;
FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 2, 30, 16);
- sub_8105594(0, gUnknown_203ACF0->field_02[1]);
+ DexScreen_DexPageZoomEffectFrame(0, sPokedexScreenData->data[1]);
CopyBgTilemapBufferToVram(0);
- gUnknown_203ACF0->field_02[0] = 1;
+ sPokedexScreenData->data[0] = 1;
}
else
- gUnknown_203ACF0->field_02[0]--;
+ sPokedexScreenData->data[0]--;
}
else
{
FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 2, 30, 16);
CopyBgTilemapBufferToVram(0);
- gUnknown_203ACF0->field_01 = 13;
+ sPokedexScreenData->state = 13;
}
break;
case 21:
- sub_810603C();
- gUnknown_203ACF0->field_01 = 22;
+ DexScreen_DrawMonAreaPage();
+ sPokedexScreenData->state = 22;
break;
case 22:
CopyBgTilemapBufferToVram(3);
CopyBgTilemapBufferToVram(2);
CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(0);
- gUnknown_203ACF0->field_01 = 23;
+ sPokedexScreenData->state = 23;
break;
case 23:
if (JOY_NEW(A_BUTTON))
@@ -1791,7 +1829,7 @@ static void sub_8103AC8(u8 taskId)
CopyBgTilemapBufferToVram(2);
CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(0);
- gUnknown_203ACF0->field_01 = 26;
+ sPokedexScreenData->state = 26;
}
else if (JOY_NEW(B_BUTTON))
{
@@ -1801,42 +1839,45 @@ static void sub_8103AC8(u8 taskId)
CopyBgTilemapBufferToVram(2);
CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(0);
- gUnknown_203ACF0->field_01 = 24;
+ sPokedexScreenData->state = 24;
}
else
{
- sub_8106B34();
+ DexScreen_InputHandler_StartToCry();
}
break;
case 24:
- sub_81067C0();
- gUnknown_203ACF0->field_01 = 25;
+ DexScreen_DestroyAreaScreenResources();
+ sPokedexScreenData->state = 25;
break;
case 25:
- sub_8105E1C(0);
+ DexScreen_DrawMonDexPage(FALSE);
CopyBgTilemapBufferToVram(3);
CopyBgTilemapBufferToVram(2);
CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(0);
- gUnknown_203ACF0->field_01 = 17;
+ sPokedexScreenData->state = 17;
break;
case 26:
- sub_81067C0();
- gUnknown_203ACF0->field_01 = 18;
+ DexScreen_DestroyAreaScreenResources();
+ sPokedexScreenData->state = 18;
break;
}
}
-static u8 sub_8104234(void)
+static u8 DexScreen_CreateCategoryMenuScrollArrows(void)
{
- struct ScrollArrowsTemplate template = sUnknown_84524B4;
- template.fullyUpThreshold = gUnknown_203ACF0->field_29;
- template.fullyDownThreshold = gUnknown_203ACF0->field_2A - 1;
- gUnknown_203ACF0->field_62 = gUnknown_203ACF0->field_2B;
- return AddScrollIndicatorArrowPair(&template, &gUnknown_203ACF0->field_62);
+ struct ScrollArrowsTemplate template = sScrollArrowsTemplate_CategoryMenu;
+ template.fullyUpThreshold = sPokedexScreenData->firstPageInCategory;
+ template.fullyDownThreshold = sPokedexScreenData->lastPageInCategory - 1;
+ sPokedexScreenData->modeSelectCursorPosBak = sPokedexScreenData->pageNum;
+ return AddScrollIndicatorArrowPair(&template, &sPokedexScreenData->modeSelectCursorPosBak);
}
-static int sub_8104284(void)
+/*
+ * Returns 1 to flip pages left, 2 to flip pages right, 0 for no action
+ */
+static int DexScreen_InputHandler_GetShoulderInput(void)
{
switch (gSaveBlock2Ptr->optionsButtonMode)
{
@@ -1861,95 +1902,95 @@ static int sub_8104284(void)
}
}
-static void sub_81042EC(u8 taskId)
+static void Task_DexScreen_ShowMonPage(u8 taskId)
{
- switch (gUnknown_203ACF0->field_01)
+ switch (sPokedexScreenData->state)
{
case 0:
HideBg(3);
HideBg(2);
HideBg(1);
- gUnknown_203ACF0->field_01 = 2;
+ sPokedexScreenData->state = 2;
break;
case 1:
HideBg(2);
HideBg(1);
- gTasks[taskId].func = sub_8102F80;
- gUnknown_203ACF0->field_01 = 0;
+ gTasks[taskId].func = Task_DexScreen_NumericalOrder;
+ sPokedexScreenData->state = 0;
break;
case 2:
- gUnknown_203ACF0->field_2C = 1;
- sub_8105E1C(0);
- gUnknown_203ACF0->field_01 = 3;
+ sPokedexScreenData->numMonsOnPage = 1;
+ DexScreen_DrawMonDexPage(FALSE);
+ sPokedexScreenData->state = 3;
break;
case 3:
CopyBgTilemapBufferToVram(3);
CopyBgTilemapBufferToVram(2);
CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(0);
- PlayCry2(gUnknown_203ACF0->field_5A, 0, 125, 10);
- gUnknown_203ACF0->field_01 = 4;
+ PlayCry2(sPokedexScreenData->dexSpecies, 0, 125, 10);
+ sPokedexScreenData->state = 4;
break;
case 4:
- BeginNormalPaletteFade(0xFFFF7FFF, 0, 16, 0, RGB_WHITEALPHA);
+ BeginNormalPaletteFade(~0x8000, 0, 16, 0, RGB_WHITEALPHA);
ShowBg(3);
ShowBg(2);
ShowBg(1);
- gUnknown_203ACF0->field_01 = 5;
+ sPokedexScreenData->state = 5;
break;
case 5:
if (JOY_NEW(A_BUTTON))
{
- sub_8106014();
+ RemoveDexPageWindows();
FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 2, 30, 16);
CopyBgTilemapBufferToVram(1);
- gUnknown_203ACF0->field_01 = 7;
+ sPokedexScreenData->state = 7;
}
else if (JOY_NEW(B_BUTTON))
{
- sub_8106014();
- BeginNormalPaletteFade(0xFFFF7FFF, 0, 0, 16, RGB_WHITEALPHA);
- gUnknown_203ACF0->field_01 = 1;
+ RemoveDexPageWindows();
+ BeginNormalPaletteFade(~0x8000, 0, 0, 16, RGB_WHITEALPHA);
+ sPokedexScreenData->state = 1;
}
- else if (JOY_NEW(DPAD_UP) && sub_8104664(1))
+ else if (JOY_NEW(DPAD_UP) && DexScreen_TryScrollMonsVertical(1))
{
- sub_8106014();
- BeginNormalPaletteFade(0xFFFF7FFF, 0, 0, 16, RGB_WHITEALPHA);
- gUnknown_203ACF0->field_01 = 6;
+ RemoveDexPageWindows();
+ BeginNormalPaletteFade(~0x8000, 0, 0, 16, RGB_WHITEALPHA);
+ sPokedexScreenData->state = 6;
}
- else if (JOY_NEW(DPAD_DOWN) && sub_8104664(0))
+ else if (JOY_NEW(DPAD_DOWN) && DexScreen_TryScrollMonsVertical(0))
{
- sub_8106014();
- BeginNormalPaletteFade(0xFFFF7FFF, 0, 0, 16, RGB_WHITEALPHA);
- gUnknown_203ACF0->field_01 = 6;
+ RemoveDexPageWindows();
+ BeginNormalPaletteFade(~0x8000, 0, 0, 16, RGB_WHITEALPHA);
+ sPokedexScreenData->state = 6;
}
else
{
- sub_8106B34();
+ DexScreen_InputHandler_StartToCry();
}
break;
case 6:
HideBg(2);
HideBg(1);
- gUnknown_203ACF0->field_5A = gUnknown_203ACF0->field_30;
- gUnknown_203ACF0->field_01 = 2;
+ sPokedexScreenData->dexSpecies = sPokedexScreenData->characteristicMenuInput;
+ sPokedexScreenData->state = 2;
break;
case 7:
- sub_810603C();
- gUnknown_203ACF0->field_01 = 8;
+ DexScreen_DrawMonAreaPage();
+ sPokedexScreenData->state = 8;
break;
case 8:
CopyBgTilemapBufferToVram(3);
CopyBgTilemapBufferToVram(2);
CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(0);
- gUnknown_203ACF0->field_01 = 9;
+ sPokedexScreenData->state = 9;
break;
case 9:
if (JOY_NEW(A_BUTTON))
{
- BeginNormalPaletteFade(0xFFFF7FFF, 0, 0, 16, RGB_WHITEALPHA);
- gUnknown_203ACF0->field_01 = 12;
+ BeginNormalPaletteFade(~0x8000, 0, 0, 16, RGB_WHITEALPHA);
+ sPokedexScreenData->state = 12;
}
else if (JOY_NEW(B_BUTTON))
{
@@ -1959,128 +2000,128 @@ static void sub_81042EC(u8 taskId)
CopyBgTilemapBufferToVram(2);
CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(0);
- gUnknown_203ACF0->field_01 = 10;
+ sPokedexScreenData->state = 10;
}
else
{
- sub_8106B34();
+ DexScreen_InputHandler_StartToCry();
}
break;
case 10:
- sub_81067C0();
- gUnknown_203ACF0->field_01 = 11;
+ DexScreen_DestroyAreaScreenResources();
+ sPokedexScreenData->state = 11;
break;
case 11:
- sub_8105E1C(0);
+ DexScreen_DrawMonDexPage(FALSE);
CopyBgTilemapBufferToVram(3);
CopyBgTilemapBufferToVram(2);
CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(0);
- gUnknown_203ACF0->field_01 = 5;
+ sPokedexScreenData->state = 5;
break;
case 12:
- sub_81067C0();
+ DexScreen_DestroyAreaScreenResources();
FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 2, 30, 16);
CopyBgTilemapBufferToVram(0);
- gUnknown_203ACF0->field_01 = 1;
+ sPokedexScreenData->state = 1;
break;
}
}
-static bool32 sub_8104664(u8 a0)
+static bool32 DexScreen_TryScrollMonsVertical(u8 direction)
{
- int r3;
- u16 *r6, *r12;
+ int selectedIndex;
+ u16 *itemsAbove_p, *cursorPos_p;
- switch (gUnknown_203ACF0->field_42)
+ switch (sPokedexScreenData->dexOrderId)
{
default:
- case 0:
- r12 = &gUnknown_203ACF0->field_36;
- r6 = &gUnknown_203ACF0->field_34;
+ case DEX_ORDER_NUMERICAL_KANTO:
+ cursorPos_p = &sPokedexScreenData->kantoOrderMenuCursorPos;
+ itemsAbove_p = &sPokedexScreenData->kantoOrderMenuItemsAbove;
break;
- case 1:
- case 2:
- case 3:
- case 4:
- r12 = &gUnknown_203ACF0->field_3A;
- r6 = &gUnknown_203ACF0->field_38;
+ case DEX_ORDER_ATOZ:
+ case DEX_ORDER_TYPE:
+ case DEX_ORDER_LIGHTEST:
+ case DEX_ORDER_SMALLEST:
+ cursorPos_p = &sPokedexScreenData->characteristicOrderMenuCursorPos;
+ itemsAbove_p = &sPokedexScreenData->characteristicOrderMenuItemsAbove;
break;
- case 5:
- r12 = &gUnknown_203ACF0->field_3E;
- r6 = &gUnknown_203ACF0->field_3C;
+ case DEX_ORDER_NUMERICAL_NATIONAL:
+ cursorPos_p = &sPokedexScreenData->nationalOrderMenuCursorPos;
+ itemsAbove_p = &sPokedexScreenData->nationalOrderMenuItemsAbove;
break;
}
- r3 = *r12 + *r6;
- if (a0)
+ selectedIndex = *cursorPos_p + *itemsAbove_p;
+ if (direction) // Seek up
{
- if (r3 == 0)
+ if (selectedIndex == 0)
return FALSE;
- r3--;
- while (r3 >= 0) //Should be while (--r3 >= 0) without the r3-- in the body or before the while at all, but this is needed to match.
+ selectedIndex--;
+ while (selectedIndex >= 0) //Should be while (--selectedIndex >= 0) without the selectedIndex-- in the body or before the while at all, but this is needed to match.
{
- if ((gUnknown_203ACF0->field_44[r3].index >> 16) & 1)
+ if ((sPokedexScreenData->listItems[selectedIndex].index >> 16) & 1)
{
break;
}
- r3--;
+ selectedIndex--;
}
- if (r3 < 0)
+ if (selectedIndex < 0)
{
return FALSE;
}
}
- else
+ else // Seek down
{
- if (r3 == gUnknown_203ACF0->field_48 - 1)
+ if (selectedIndex == sPokedexScreenData->orderedDexCount - 1)
{
return FALSE;
}
- r3++;
- while (r3 < gUnknown_203ACF0->field_48) //Should be while (++r3 < gUnknown_203ACF0->field_48) without the r3++ in the body or before the while at all, but this is needed to match.
+ selectedIndex++;
+ while (selectedIndex < sPokedexScreenData->orderedDexCount) //Should be while (++selectedIndex < sPokedexScreenData->orderedDexCount) without the selectedIndex++ in the body or before the while at all, but this is needed to match.
{
- if ((gUnknown_203ACF0->field_44[r3].index >> 16) & 1)
+ if ((sPokedexScreenData->listItems[selectedIndex].index >> 16) & 1)
break;
- r3++;
+ selectedIndex++;
}
- if (r3 >= gUnknown_203ACF0->field_48)
+ if (selectedIndex >= sPokedexScreenData->orderedDexCount)
{
return FALSE;
}
}
- gUnknown_203ACF0->field_30 = gUnknown_203ACF0->field_44[r3].index;
+ sPokedexScreenData->characteristicMenuInput = sPokedexScreenData->listItems[selectedIndex].index;
- if (gUnknown_203ACF0->field_48 > 9)
+ if (sPokedexScreenData->orderedDexCount > 9)
{
- if (r3 < 4)
+ if (selectedIndex < 4)
{
- *r12 = 0;
- *r6 = r3;
+ *cursorPos_p = 0;
+ *itemsAbove_p = selectedIndex;
}
- else if (r3 >= (gUnknown_203ACF0->field_48 - 4))
+ else if (selectedIndex >= (sPokedexScreenData->orderedDexCount - 4))
{
- *r12 = (gUnknown_203ACF0->field_48 - 9);
- *r6 = r3 + 9 - (gUnknown_203ACF0->field_48);
+ *cursorPos_p = (sPokedexScreenData->orderedDexCount - 9);
+ *itemsAbove_p = selectedIndex + 9 - (sPokedexScreenData->orderedDexCount);
}
else
{
- *r12 = r3 - 4;
- *r6 = 4;
+ *cursorPos_p = selectedIndex - 4;
+ *itemsAbove_p = 4;
}
}
else
{
- *r12 = 0;
- *r6 = r3;
+ *cursorPos_p = 0;
+ *itemsAbove_p = selectedIndex;
}
return TRUE;
}
-void sub_81047B0(u8 *windowId_p)
+static void DexScreen_RemoveWindow(u8 *windowId_p)
{
if (*windowId_p != 0xFF)
{
@@ -2089,7 +2130,7 @@ void sub_81047B0(u8 *windowId_p)
}
}
-void sub_81047C8(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 colorIdx)
+static void DexScreen_AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 colorIdx)
{
u8 textColor[3];
switch (colorIdx)
@@ -2123,17 +2164,17 @@ void sub_81047C8(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 colorIdx)
AddTextPrinterParameterized4(windowId, fontId, x, y, fontId == 0 ? 0 : 1, 0, textColor, -1, str);
}
-void sub_8104880(u8 windowId, u8 fontId, u16 num, u8 x, u8 y, u8 colorIdx)
+void DexScreen_PrintNum3LeadingZeroes(u8 windowId, u8 fontId, u16 num, u8 x, u8 y, u8 colorIdx)
{
u8 buff[4];
buff[0] = (num / 100) + CHAR_0;
buff[1] = ((num %= 100) / 10) + CHAR_0;
buff[2] = (num % 10) + CHAR_0;
buff[3] = EOS;
- sub_81047C8(windowId, fontId, buff, x, y, colorIdx);
+ DexScreen_AddTextPrinterParameterized(windowId, fontId, buff, x, y, colorIdx);
}
-static void sub_810491C(u8 windowId, u8 fontId, u16 num, u8 x, u8 y, u8 colorIdx)
+static void DexScreen_PrintNum3RightAlign(u8 windowId, u8 fontId, u16 num, u8 x, u8 y, u8 colorIdx)
{
u8 buff[4];
int i;
@@ -2147,10 +2188,10 @@ static void sub_810491C(u8 windowId, u8 fontId, u16 num, u8 x, u8 y, u8 colorIdx
break;
buff[i] = CHAR_SPACE;
}
- sub_81047C8(windowId, fontId, buff, x, y, colorIdx);
+ DexScreen_AddTextPrinterParameterized(windowId, fontId, buff, x, y, colorIdx);
}
-u32 sub_81049CC(int species)
+static u32 DexScreen_GetDefaultPersonality(int species)
{
switch (species)
{
@@ -2163,19 +2204,19 @@ u32 sub_81049CC(int species)
}
}
-void sub_81049FC(u8 windowId, u16 species, u16 paletteOffset)
+static void DexScreen_LoadMonPicInWindow(u8 windowId, u16 species, u16 paletteOffset)
{
- LoadMonPicInWindow(species, 8, sub_81049CC(species), TRUE, paletteOffset >> 4, windowId);
+ LoadMonPicInWindow(species, 8, DexScreen_GetDefaultPersonality(species), TRUE, paletteOffset >> 4, windowId);
}
-void sub_8104A34(u8 windowId, u8 fontId, u16 species, u8 x, u8 y)
+static void DexScreen_PrintMonDexNo(u8 windowId, u8 fontId, u16 species, u8 x, u8 y)
{
u16 dexNum = SpeciesToNationalPokedexNum(species);
- sub_81047C8(windowId, fontId, gText_PokedexNo, x, y, 0);
- sub_8104880(windowId, fontId, dexNum, x + 9, y, 0);
+ DexScreen_AddTextPrinterParameterized(windowId, fontId, gText_PokedexNo, x, y, 0);
+ DexScreen_PrintNum3LeadingZeroes(windowId, fontId, dexNum, x + 9, y, 0);
}
-s8 sub_8104AB0(u16 nationalDexNo, u8 caseId, bool8 indexIsSpecies)
+s8 DexScreen_GetSetPokedexFlag(u16 nationalDexNo, u8 caseId, bool8 indexIsSpecies)
{
u8 index;
u8 bit;
@@ -2195,6 +2236,7 @@ s8 sub_8104AB0(u16 nationalDexNo, u8 caseId, bool8 indexIsSpecies)
case FLAG_GET_SEEN:
if (gSaveBlock2Ptr->pokedex.seen[index] & mask)
{
+ // Anticheat
if ((gSaveBlock2Ptr->pokedex.seen[index] & mask) == (gSaveBlock1Ptr->seen1[index] & mask)
&& (gSaveBlock2Ptr->pokedex.seen[index] & mask) == (gSaveBlock1Ptr->seen2[index] & mask))
retVal = 1;
@@ -2203,6 +2245,7 @@ s8 sub_8104AB0(u16 nationalDexNo, u8 caseId, bool8 indexIsSpecies)
case FLAG_GET_CAUGHT:
if (gSaveBlock2Ptr->pokedex.owned[index] & mask)
{
+ // Anticheat
if ((gSaveBlock2Ptr->pokedex.owned[index] & mask) == (gSaveBlock2Ptr->pokedex.seen[index] & mask)
&& (gSaveBlock2Ptr->pokedex.owned[index] & mask) == (gSaveBlock1Ptr->seen1[index] & mask)
&& (gSaveBlock2Ptr->pokedex.owned[index] & mask) == (gSaveBlock1Ptr->seen2[index] & mask))
@@ -2211,6 +2254,7 @@ s8 sub_8104AB0(u16 nationalDexNo, u8 caseId, bool8 indexIsSpecies)
break;
case FLAG_SET_SEEN:
gSaveBlock2Ptr->pokedex.seen[index] |= mask;
+ // Anticheat
gSaveBlock1Ptr->seen1[index] |= mask;
gSaveBlock1Ptr->seen2[index] |= mask;
break;
@@ -2221,7 +2265,7 @@ s8 sub_8104AB0(u16 nationalDexNo, u8 caseId, bool8 indexIsSpecies)
return retVal;
}
-static u16 sub_8104BBC(u8 caseId, bool8 whichDex)
+static u16 DexScreen_GetDexCount(u8 caseId, bool8 whichDex)
{
u16 count = 0;
u16 i;
@@ -2231,14 +2275,14 @@ static u16 sub_8104BBC(u8 caseId, bool8 whichDex)
case 0: // Kanto
for (i = 0; i < KANTO_DEX_COUNT; i++)
{
- if (sub_8104AB0(i + 1, caseId, FALSE))
+ if (DexScreen_GetSetPokedexFlag(i + 1, caseId, FALSE))
count++;
}
break;
case 1: // National
for (i = 0; i < NATIONAL_DEX_COUNT; i++)
{
- if (sub_8104AB0(i + 1, caseId, FALSE))
+ if (DexScreen_GetSetPokedexFlag(i + 1, caseId, FALSE))
count++;
}
@@ -2247,157 +2291,157 @@ static u16 sub_8104BBC(u8 caseId, bool8 whichDex)
return count;
}
-void sub_8104C2C(const u8 *src)
+static void DexScreen_PrintControlInfo(const u8 *src)
{
- sub_81047C8(1, 0, src, 236 - GetStringWidth(0, src, 0), 2, 4);
+ DexScreen_AddTextPrinterParameterized(1, 0, src, 236 - GetStringWidth(0, src, 0), 2, 4);
}
-bool8 sub_8104C64(u16 a0, u8 a1, u8 a2)
+bool8 DexScreen_DrawMonPicInCategoryPage(u16 species, u8 slot, u8 numSlots)
{
struct WindowTemplate template;
- a2--;
- CopyToBgTilemapBufferRect_ChangePalette(3, sUnknown_845228C, gUnknown_8452334[a2][a1][0], gUnknown_8452334[a2][a1][1], 8, 8, a1 + 5);
- if (gUnknown_203ACF0->field_20[a1] == 0xFF)
- {
- template = sUnknown_84521C4;
- template.tilemapLeft = gUnknown_8452334[a2][a1][0];
- template.tilemapTop = gUnknown_8452334[a2][a1][1];
- template.paletteNum = a1 + 1;
- template.baseBlock = a1 * 64 + 8;
- gUnknown_203ACF0->field_20[a1] = AddWindow(&template);
- FillWindowPixelBuffer(gUnknown_203ACF0->field_20[a1], PIXEL_FILL(0));
- sub_81049FC(gUnknown_203ACF0->field_20[a1], a0, a1 * 16 + 16);
- PutWindowTilemap(gUnknown_203ACF0->field_20[a1]);
- CopyWindowToVram(gUnknown_203ACF0->field_20[a1], COPYWIN_GFX);
+ numSlots--;
+ CopyToBgTilemapBufferRect_ChangePalette(3, sCategoryPageIconWindowBg, sCategoryPageIconCoords[numSlots][slot][0], sCategoryPageIconCoords[numSlots][slot][1], 8, 8, slot + 5);
+ if (sPokedexScreenData->categoryMonWindowIds[slot] == 0xFF)
+ {
+ template = sWindowTemplate_CategoryMonIcon;
+ template.tilemapLeft = sCategoryPageIconCoords[numSlots][slot][0];
+ template.tilemapTop = sCategoryPageIconCoords[numSlots][slot][1];
+ template.paletteNum = slot + 1;
+ template.baseBlock = slot * 64 + 8;
+ sPokedexScreenData->categoryMonWindowIds[slot] = AddWindow(&template);
+ FillWindowPixelBuffer(sPokedexScreenData->categoryMonWindowIds[slot], PIXEL_FILL(0));
+ DexScreen_LoadMonPicInWindow(sPokedexScreenData->categoryMonWindowIds[slot], species, slot * 16 + 16);
+ PutWindowTilemap(sPokedexScreenData->categoryMonWindowIds[slot]);
+ CopyWindowToVram(sPokedexScreenData->categoryMonWindowIds[slot], COPYWIN_GFX);
}
else
- PutWindowTilemap(gUnknown_203ACF0->field_20[a1]);
+ PutWindowTilemap(sPokedexScreenData->categoryMonWindowIds[slot]);
- if (gUnknown_203ACF0->field_24[a1] == 0xFF)
+ if (sPokedexScreenData->categoryMonInfoWindowIds[slot] == 0xFF)
{
- if (a0 != SPECIES_NONE)
+ if (species != SPECIES_NONE)
{
- template = sUnknown_84521CC;
- template.tilemapLeft = gUnknown_8452334[a2][a1][2];
- template.tilemapTop = gUnknown_8452334[a2][a1][3];
- template.baseBlock = a1 * 40 + 0x108;
- gUnknown_203ACF0->field_24[a1] = AddWindow(&template);
- CopyToWindowPixelBuffer(gUnknown_203ACF0->field_24[a1], gUnknown_8440124, 0, 0);
- sub_8104A34(gUnknown_203ACF0->field_24[a1], 0, a0, 12, 0);
- sub_81047C8(gUnknown_203ACF0->field_24[a1], 2, gSpeciesNames[a0], 2, 13, 0);
- if (sub_8104AB0(a0, FLAG_GET_CAUGHT, TRUE))
- BlitBitmapRectToWindow(gUnknown_203ACF0->field_24[a1], gUnknown_8443600, 0, 0, 8, 8, 2, 3, 8, 8);
- PutWindowTilemap(gUnknown_203ACF0->field_24[a1]);
- CopyWindowToVram(gUnknown_203ACF0->field_24[a1], COPYWIN_GFX);
+ template = sWindowTemplate_CategoryMonInfo;
+ template.tilemapLeft = sCategoryPageIconCoords[numSlots][slot][2];
+ template.tilemapTop = sCategoryPageIconCoords[numSlots][slot][3];
+ template.baseBlock = slot * 40 + 0x108;
+ sPokedexScreenData->categoryMonInfoWindowIds[slot] = AddWindow(&template);
+ CopyToWindowPixelBuffer(sPokedexScreenData->categoryMonInfoWindowIds[slot], sCategoryMonInfoBgTiles, 0, 0);
+ DexScreen_PrintMonDexNo(sPokedexScreenData->categoryMonInfoWindowIds[slot], 0, species, 12, 0);
+ DexScreen_AddTextPrinterParameterized(sPokedexScreenData->categoryMonInfoWindowIds[slot], 2, gSpeciesNames[species], 2, 13, 0);
+ if (DexScreen_GetSetPokedexFlag(species, FLAG_GET_CAUGHT, TRUE))
+ BlitBitmapRectToWindow(sPokedexScreenData->categoryMonInfoWindowIds[slot], sDexScreen_CaughtIcon, 0, 0, 8, 8, 2, 3, 8, 8);
+ PutWindowTilemap(sPokedexScreenData->categoryMonInfoWindowIds[slot]);
+ CopyWindowToVram(sPokedexScreenData->categoryMonInfoWindowIds[slot], COPYWIN_GFX);
}
}
else
- PutWindowTilemap(gUnknown_203ACF0->field_24[a1]);
+ PutWindowTilemap(sPokedexScreenData->categoryMonInfoWindowIds[slot]);
return TRUE;
}
-void sub_8104E90(void)
+static void DexScreen_DestroyCategoryPageMonIconAndInfoWindows(void)
{
int i;
for (i = 0; i < 4; i++)
{
- sub_81047B0(&gUnknown_203ACF0->field_20[i]);
- sub_81047B0(&gUnknown_203ACF0->field_24[i]);
+ DexScreen_RemoveWindow(&sPokedexScreenData->categoryMonWindowIds[i]);
+ DexScreen_RemoveWindow(&sPokedexScreenData->categoryMonInfoWindowIds[i]);
}
}
-void sub_8104EC0(u8 unused, u16 a1, u16 a2, u8 unused2, u8 unused3)
+static void DexScreen_PrintCategoryPageNumbers(u8 windowId, u16 currentPage, u16 totalPages, u16 x, u16 y)
{
u8 buffer[30];
u8 *ptr = StringCopy(buffer, gText_Page);
- ptr = ConvertIntToDecimalStringN(ptr, a1, STR_CONV_MODE_RIGHT_ALIGN, 2);
+ ptr = ConvertIntToDecimalStringN(ptr, currentPage, STR_CONV_MODE_RIGHT_ALIGN, 2);
*ptr++ = CHAR_SLASH;
- ptr = ConvertIntToDecimalStringN(ptr, a2, STR_CONV_MODE_RIGHT_ALIGN, 2);
- sub_8106E78(buffer, 2);
+ ptr = ConvertIntToDecimalStringN(ptr, totalPages, STR_CONV_MODE_RIGHT_ALIGN, 2);
+ DexScreen_PrintStringWithAlignment(buffer, TEXT_RIGHT);
}
-bool8 sub_8104F0C(bool8 a0)
+static bool8 DexScreen_CreateCategoryListGfx(bool8 justRegistered)
{
FillBgTilemapBufferRect_Palette0(3, 2, 0, 0, 30, 20);
FillBgTilemapBufferRect_Palette0(2, 0, 0, 0, 32, 20);
FillBgTilemapBufferRect_Palette0(1, 0, 0, 0, 32, 20);
- sub_81068DC(gUnknown_203ACF0->field_28, gUnknown_203ACF0->field_2B);
+ DexScreen_CreateCategoryPageSpeciesList(sPokedexScreenData->category, sPokedexScreenData->pageNum);
FillWindowPixelBuffer(0, PIXEL_FILL(15));
- if (a0)
+ if (justRegistered)
{
- sub_8106E78(sDexCategoryNamePtrs[gUnknown_203ACF0->field_28], 1);
+ DexScreen_PrintStringWithAlignment(sDexCategoryNamePtrs[sPokedexScreenData->category], TEXT_CENTER);
}
else
{
- sub_8106E78(sDexCategoryNamePtrs[gUnknown_203ACF0->field_28], 0);
- sub_8104EC0(0, sub_8106AF8(gUnknown_203ACF0->field_2B), sub_8106AF8(gUnknown_203ACF0->field_2A - 1), 160, 2);
+ DexScreen_PrintStringWithAlignment(sDexCategoryNamePtrs[sPokedexScreenData->category], TEXT_LEFT);
+ DexScreen_PrintCategoryPageNumbers(0, DexScreen_PageNumberToRenderablePages(sPokedexScreenData->pageNum), DexScreen_PageNumberToRenderablePages(sPokedexScreenData->lastPageInCategory - 1), 160, 2);
}
CopyWindowToVram(0, COPYWIN_GFX);
FillWindowPixelBuffer(1, PIXEL_FILL(15));
- if (!a0)
- sub_8104C2C(gText_PickFlipPageCheckCancel);
+ if (!justRegistered)
+ DexScreen_PrintControlInfo(gText_PickFlipPageCheckCancel);
CopyWindowToVram(1, COPYWIN_GFX);
- if (gUnknown_203ACF0->field_18[0] != 0xFFFF)
- sub_8104C64(gUnknown_203ACF0->field_18[0], 0, gUnknown_203ACF0->field_2C);
- if (gUnknown_203ACF0->field_18[1] != 0xFFFF)
- sub_8104C64(gUnknown_203ACF0->field_18[1], 1, gUnknown_203ACF0->field_2C);
- if (gUnknown_203ACF0->field_18[2] != 0xFFFF)
- sub_8104C64(gUnknown_203ACF0->field_18[2], 2, gUnknown_203ACF0->field_2C);
- if (gUnknown_203ACF0->field_18[3] != 0xFFFF)
- sub_8104C64(gUnknown_203ACF0->field_18[3], 3, gUnknown_203ACF0->field_2C);
+ if (sPokedexScreenData->pageSpecies[0] != 0xFFFF)
+ DexScreen_DrawMonPicInCategoryPage(sPokedexScreenData->pageSpecies[0], 0, sPokedexScreenData->numMonsOnPage);
+ if (sPokedexScreenData->pageSpecies[1] != 0xFFFF)
+ DexScreen_DrawMonPicInCategoryPage(sPokedexScreenData->pageSpecies[1], 1, sPokedexScreenData->numMonsOnPage);
+ if (sPokedexScreenData->pageSpecies[2] != 0xFFFF)
+ DexScreen_DrawMonPicInCategoryPage(sPokedexScreenData->pageSpecies[2], 2, sPokedexScreenData->numMonsOnPage);
+ if (sPokedexScreenData->pageSpecies[3] != 0xFFFF)
+ DexScreen_DrawMonPicInCategoryPage(sPokedexScreenData->pageSpecies[3], 3, sPokedexScreenData->numMonsOnPage);
return FALSE;
}
-void sub_8105058(u8 a0)
+static void DexScreen_CreateCategoryPageSelectionCursor(u8 cursorPos)
{
int i;
- u32 r7;
+ u32 palIdx;
- if (a0 == 0xFF)
+ if (cursorPos == 0xFF)
{
for (i = 0; i < 4; i++)
{
- LoadPalette(&gUnknown_84406C8[0], 0x52 + 0x10 * i, 2);
- LoadPalette(&gUnknown_84406C8[1], 0x58 + 0x10 * i, 2);
+ LoadPalette(&sDexScreen_CategoryCursorPals[0], 0x52 + 0x10 * i, 2);
+ LoadPalette(&sDexScreen_CategoryCursorPals[1], 0x58 + 0x10 * i, 2);
}
- LoadPalette(&gUnknown_84406C8[0], 0x141, 2);
- gUnknown_203ACF0->field_2E = 0;
+ LoadPalette(&sDexScreen_CategoryCursorPals[0], 0x141, 2);
+ sPokedexScreenData->categoryPageSelectionCursorTimer = 0;
}
else
{
- gUnknown_203ACF0->field_2E++;
- if (gUnknown_203ACF0->field_2E == 16)
- gUnknown_203ACF0->field_2E = 0;
- r7 = gUnknown_203ACF0->field_2E >> 2;
+ sPokedexScreenData->categoryPageSelectionCursorTimer++;
+ if (sPokedexScreenData->categoryPageSelectionCursorTimer == 16)
+ sPokedexScreenData->categoryPageSelectionCursorTimer = 0;
+ palIdx = sPokedexScreenData->categoryPageSelectionCursorTimer >> 2;
for (i = 0; i < 4; i++)
{
- if (i == a0)
+ if (i == cursorPos)
{
- LoadPalette(&gUnknown_84406C8[2 * r7 + 2], 0x52 + 0x10 * i, 2);
- LoadPalette(&gUnknown_84406C8[2 * r7 + 3], 0x58 + 0x10 * i, 2);
+ LoadPalette(&sDexScreen_CategoryCursorPals[2 * palIdx + 2], 0x52 + 0x10 * i, 2);
+ LoadPalette(&sDexScreen_CategoryCursorPals[2 * palIdx + 3], 0x58 + 0x10 * i, 2);
}
else
{
- LoadPalette(&gUnknown_84406C8[0], 0x52 + 0x10 * i, 2);
- LoadPalette(&gUnknown_84406C8[1], 0x58 + 0x10 * i, 2);
+ LoadPalette(&sDexScreen_CategoryCursorPals[0], 0x52 + 0x10 * i, 2);
+ LoadPalette(&sDexScreen_CategoryCursorPals[1], 0x58 + 0x10 * i, 2);
}
}
- LoadPalette(&gUnknown_84406C8[2 * r7 + 2], 0x141, 2);
+ LoadPalette(&sDexScreen_CategoryCursorPals[2 * palIdx + 2], 0x141, 2);
}
}
-void sub_8105178(u8 a0, u8 a1, u8 a2)
+static void DexScreen_UpdateCategoryPageCursorObject(u8 taskId, u8 cursorPos, u8 numMonsInPage)
{
- a2--;
- ListMenuUpdateCursorObject(a0, gUnknown_8452334[a2][a1][2] * 8, gUnknown_8452334[a2][a1][3] * 8, 0);
+ numMonsInPage--;
+ ListMenuUpdateCursorObject(taskId, sCategoryPageIconCoords[numMonsInPage][cursorPos][2] * 8, sCategoryPageIconCoords[numMonsInPage][cursorPos][3] * 8, 0);
}
-bool8 sub_81051AC(const u16 *a0, u8 a1, u16 *a2, u8 a3)
+bool8 DexPage_TileBuffer_CopyCol(const u16 *srcBuf, u8 srcCol, u16 *dstBuf, u8 dstCol)
{
int i;
- const u16 *src = &a0[a1];
- u16 *dst = &a2[a3];
+ const u16 *src = &srcBuf[srcCol];
+ u16 *dst = &dstBuf[dstCol];
for (i = 0; i < 20; i++)
{
*dst = *src;
@@ -2407,42 +2451,42 @@ bool8 sub_81051AC(const u16 *a0, u8 a1, u16 *a2, u8 a3)
return FALSE;
}
-bool8 sub_81051D0(u16 a0, u16 *a1, u8 a2)
+bool8 DexPage_TileBuffer_FillCol(u16 tileNo, u16 *tileBuf, u8 x)
{
int i;
- u16 *dst = &a1[a2];
+ u16 *dst = &tileBuf[x];
for (i = 0; i < 20; i++)
{
- *dst = a0;
+ *dst = tileNo;
dst += 32;
}
return FALSE;
}
-bool8 sub_81051F0(u8 a0)
+bool8 DexScreen_TurnCategoryPage_BgEffect(u8 page)
{
- int i;
- int r4;
+ int dstCol;
+ int srcCol;
u16 *bg1buff = GetBgTilemapBuffer(1);
u16 *bg2buff = GetBgTilemapBuffer(2);
u16 *bg3buff = GetBgTilemapBuffer(3);
- u16 *sp04 = gUnknown_203ACF0->field_5C + 0x800;
- u16 *sp08 = gUnknown_203ACF0->field_5C + 0x400;
- u16 *sp0C = gUnknown_203ACF0->field_5C + 0x000;
- for (i = 0; i < 30; i++)
+ u16 *bg1mem = sPokedexScreenData->bgBufsMem + 0x800;
+ u16 *bg2mem = sPokedexScreenData->bgBufsMem + 0x400;
+ u16 *bg3mem = sPokedexScreenData->bgBufsMem + 0x000;
+ for (dstCol = 0; dstCol < 30; dstCol++)
{
- r4 = sUnknown_8452388[a0][i];
- if (r4 == 30)
+ srcCol = sDexScreenPageTurnColumns[page][dstCol];
+ if (srcCol == 30)
{
- sub_81051D0(0x000, bg1buff, i);
- sub_81051D0(0x000, bg2buff, i);
- sub_81051D0(0x00C, bg3buff, i);
+ DexPage_TileBuffer_FillCol(0x000, bg1buff, dstCol);
+ DexPage_TileBuffer_FillCol(0x000, bg2buff, dstCol);
+ DexPage_TileBuffer_FillCol(0x00C, bg3buff, dstCol);
}
else
{
- sub_81051AC(sp04, r4, bg1buff, i);
- sub_81051AC(sp08, r4, bg2buff, i);
- sub_81051AC(sp0C, r4, bg3buff, i);
+ DexPage_TileBuffer_CopyCol(bg1mem, srcCol, bg1buff, dstCol);
+ DexPage_TileBuffer_CopyCol(bg2mem, srcCol, bg2buff, dstCol);
+ DexPage_TileBuffer_CopyCol(bg3mem, srcCol, bg3buff, dstCol);
}
}
CopyBgTilemapBufferToVram(1);
@@ -2451,28 +2495,32 @@ bool8 sub_81051F0(u8 a0)
return FALSE;
}
-static bool8 sub_81052D0(u8 a0)
+/*
+ * Direction = 0: Left; 1: Right
+ */
+static bool8 DexScreen_FlipCategoryPageInDirection(u8 direction)
{
- u16 r4;
+ u16 color;
if (IsNationalPokedexEnabled())
- r4 = gUnknown_84406E0[7];
+ color = sNationalDexPalette[7];
else
- r4 = gUnknown_84404C8[7];
- switch (gUnknown_203ACF0->field_02[0])
+ color = sKantoDexPalette[7];
+ switch (sPokedexScreenData->data[0])
{
case 0:
- gUnknown_203ACF0->field_5C = Alloc(3 * BG_SCREEN_SIZE);
- if (a0)
- gUnknown_203ACF0->field_02[0] = 6;
+ sPokedexScreenData->bgBufsMem = Alloc(3 * BG_SCREEN_SIZE);
+ if (direction)
+ sPokedexScreenData->data[0] = 6;
else
- gUnknown_203ACF0->field_02[0] = 2;
+ sPokedexScreenData->data[0] = 2;
break;
case 1:
- Free(gUnknown_203ACF0->field_5C);
+ Free(sPokedexScreenData->bgBufsMem);
return TRUE;
+ // Go left
case 2:
- BeginNormalPaletteFade(0x00007FFF, 0, 0, 16, r4);
- gUnknown_203ACF0->field_02[0]++;
+ BeginNormalPaletteFade(0x00007FFF, 0, 0, 16, color);
+ sPokedexScreenData->data[0]++;
break;
case 3:
FillBgTilemapBufferRect_Palette0(3, 0x00C, 0, 0, 30, 20);
@@ -2481,128 +2529,141 @@ static bool8 sub_81052D0(u8 a0)
CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(2);
CopyBgTilemapBufferToVram(3);
- gUnknown_203ACF0->field_02[0]++;
+ sPokedexScreenData->data[0]++;
break;
case 4:
- BeginNormalPaletteFade(0x00007FFF, 0, 0, 0, r4);
- sub_8104F0C(FALSE);
- CpuFastCopy(GetBgTilemapBuffer(3), &gUnknown_203ACF0->field_5C[0 * BG_SCREEN_SIZE / 2], BG_SCREEN_SIZE);
- CpuFastCopy(GetBgTilemapBuffer(2), &gUnknown_203ACF0->field_5C[1 * BG_SCREEN_SIZE / 2], BG_SCREEN_SIZE);
- CpuFastCopy(GetBgTilemapBuffer(1), &gUnknown_203ACF0->field_5C[2 * BG_SCREEN_SIZE / 2], BG_SCREEN_SIZE);
+ BeginNormalPaletteFade(0x00007FFF, 0, 0, 0, color);
+ DexScreen_CreateCategoryListGfx(FALSE);
+ CpuFastCopy(GetBgTilemapBuffer(3), &sPokedexScreenData->bgBufsMem[0 * BG_SCREEN_SIZE / 2], BG_SCREEN_SIZE);
+ CpuFastCopy(GetBgTilemapBuffer(2), &sPokedexScreenData->bgBufsMem[1 * BG_SCREEN_SIZE / 2], BG_SCREEN_SIZE);
+ CpuFastCopy(GetBgTilemapBuffer(1), &sPokedexScreenData->bgBufsMem[2 * BG_SCREEN_SIZE / 2], BG_SCREEN_SIZE);
FillBgTilemapBufferRect_Palette0(3, 0x00C, 0, 0, 30, 20);
FillBgTilemapBufferRect_Palette0(2, 0x000, 0, 0, 32, 20);
FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 32, 20);
-
- gUnknown_203ACF0->field_02[1] = 0;
- gUnknown_203ACF0->field_02[0]++;
+
+ sPokedexScreenData->data[1] = 0;
+ sPokedexScreenData->data[0]++;
PlaySE(SE_BALL_TRAY_ENTER);
break;
case 5:
- if (gUnknown_203ACF0->field_02[1] < 10)
+ if (sPokedexScreenData->data[1] < 10)
{
- sub_81051F0(gUnknown_203ACF0->field_02[1]);
- gUnknown_203ACF0->field_02[1]++;
+ DexScreen_TurnCategoryPage_BgEffect(sPokedexScreenData->data[1]);
+ sPokedexScreenData->data[1]++;
}
else
{
- gUnknown_203ACF0->field_02[0] = 1;
+ sPokedexScreenData->data[0] = 1;
}
break;
+ // Go right
case 6:
- CpuFastCopy(GetBgTilemapBuffer(3), &gUnknown_203ACF0->field_5C[0 * BG_SCREEN_SIZE / 2], BG_SCREEN_SIZE);
- CpuFastCopy(GetBgTilemapBuffer(2), &gUnknown_203ACF0->field_5C[1 * BG_SCREEN_SIZE / 2], BG_SCREEN_SIZE);
- CpuFastCopy(GetBgTilemapBuffer(1), &gUnknown_203ACF0->field_5C[2 * BG_SCREEN_SIZE / 2], BG_SCREEN_SIZE);
+ CpuFastCopy(GetBgTilemapBuffer(3), &sPokedexScreenData->bgBufsMem[0 * BG_SCREEN_SIZE / 2], BG_SCREEN_SIZE);
+ CpuFastCopy(GetBgTilemapBuffer(2), &sPokedexScreenData->bgBufsMem[1 * BG_SCREEN_SIZE / 2], BG_SCREEN_SIZE);
+ CpuFastCopy(GetBgTilemapBuffer(1), &sPokedexScreenData->bgBufsMem[2 * BG_SCREEN_SIZE / 2], BG_SCREEN_SIZE);
- gUnknown_203ACF0->field_02[1] = 9;
- gUnknown_203ACF0->field_02[0]++;
+ sPokedexScreenData->data[1] = 9;
+ sPokedexScreenData->data[0]++;
PlaySE(SE_BALL_TRAY_ENTER);
break;
case 7:
- if (gUnknown_203ACF0->field_02[1] != 0)
+ if (sPokedexScreenData->data[1] != 0)
{
- sub_81051F0(gUnknown_203ACF0->field_02[1]);
- gUnknown_203ACF0->field_02[1]--;
+ DexScreen_TurnCategoryPage_BgEffect(sPokedexScreenData->data[1]);
+ sPokedexScreenData->data[1]--;
}
else
{
- sub_81051F0(gUnknown_203ACF0->field_02[0]);
- BeginNormalPaletteFade(0x00007FFF, 0, 16, 16, r4);
- gUnknown_203ACF0->field_02[0]++;
+#ifdef BUGFIX
+ DexScreen_TurnCategoryPage_BgEffect(0);
+#else
+ DexScreen_TurnCategoryPage_BgEffect(sPokedexScreenData->data[0]);
+#endif
+ BeginNormalPaletteFade(0x00007FFF, 0, 16, 16, color);
+ sPokedexScreenData->data[0]++;
}
break;
case 8:
gPaletteFade.bufferTransferDisabled = TRUE;
- sub_8104F0C(FALSE);
+ DexScreen_CreateCategoryListGfx(FALSE);
CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(2);
CopyBgTilemapBufferToVram(3);
- gUnknown_203ACF0->field_02[0]++;
+ sPokedexScreenData->data[0]++;
break;
case 9:
gPaletteFade.bufferTransferDisabled = FALSE;
- BeginNormalPaletteFade(0x00007FFF, 0, 16, 0, r4);
- gUnknown_203ACF0->field_02[0] = 1;
+ BeginNormalPaletteFade(0x00007FFF, 0, 16, 0, color);
+ sPokedexScreenData->data[0] = 1;
break;
}
return FALSE;
}
-void sub_8105594(u8 a0, u8 a1)
+// Scale from 0 to 6
+void DexScreen_DexPageZoomEffectFrame(u8 bg, u8 scale)
{
- u8 v0, v1, v2, v3;
- s16 v4, v5, v6;
-
- if (!gUnknown_203ACF0->field_2C)
+ u8 tileLeft, tileTop, width, height;
+ s16 left, top, divY;
+
+ if (!sPokedexScreenData->numMonsOnPage)
{
- v0 = gUnknown_8452334[0][0][2];
- v1 = gUnknown_8452334[0][0][3];
+ tileLeft = sCategoryPageIconCoords[0][0][2];
+ tileTop = sCategoryPageIconCoords[0][0][3];
}
else
{
- v0 = gUnknown_8452334[gUnknown_203ACF0->field_2C - 1][gUnknown_203ACF0->field_2D][2];
- v1 = gUnknown_8452334[gUnknown_203ACF0->field_2C - 1][gUnknown_203ACF0->field_2D][3];
- }
-
- v2 = 6 + (a1 * 4);
- v3 = 3 + (a1 * 2);
- if (v2 >= 28)
- v2 = 28;
- if (v3 >= 14)
- v3 = 14;
- v4 = v0 - ((a1 * 4) / 2);
- v5 = v1 - ((a1 * 2) / 2);
- if ((v4 + v2 + 2) >= 30)
- v4 -= ((v4 + v2 + 2) - 30);
- else if (v4 < 0)
- v4 = 0;
- if ((v5 + v3 + 2) >= 18)
- v5 -= ((v5 + v3 + 2) - 18);
- else if (v5 < 2)
- v5 = 2;
- v6 = (v5 + 1) + ((v3 / 2) + 1);
-
- FillBgTilemapBufferRect_Palette0(a0, 4, v4, v5, 1, 1);
- FillBgTilemapBufferRect_Palette0(a0, 5, v4 + 1, v5, v2, 1);
- FillBgTilemapBufferRect_Palette0(a0, 1028, v4 + 1 + v2, v5, 1, 1);
-
- FillBgTilemapBufferRect_Palette0(a0, 10, v4, v5 + 1 + v3, 1, 1);
- FillBgTilemapBufferRect_Palette0(a0, 11, v4 + 1, v5 + 1 + v3, v2, 1);
- FillBgTilemapBufferRect_Palette0(a0, 1034, v4 + 1 + v2, v5 + 1 + v3, 1, 1);
-
- FillBgTilemapBufferRect_Palette0(a0, 6, v4, v5 + 1, 1, v6 - v5 - 1);
- FillBgTilemapBufferRect_Palette0(a0, 7, v4, v6, 1, 1);
- FillBgTilemapBufferRect_Palette0(a0, 9, v4, v6 + 1, 1, v5 + v3 - v6);
-
- FillBgTilemapBufferRect_Palette0(a0, 1030, v4 + 1 + v2, v5 + 1, 1, v6 - v5 - 1);
- FillBgTilemapBufferRect_Palette0(a0, 1031, v4 + 1 + v2, v6, 1, 1);
- FillBgTilemapBufferRect_Palette0(a0, 1033, v4 + 1 + v2, v6 + 1, 1, v5 + v3 - v6);
-
- FillBgTilemapBufferRect_Palette0(a0, 1, v4 + 1, v5 + 1, v2, v6 - v5 - 1);
- FillBgTilemapBufferRect_Palette0(a0, 8, v4 + 1, v6, v2, 1);
- FillBgTilemapBufferRect_Palette0(a0, 2, v4 + 1, v6 + 1, v2, v5 + v3 - v6);
-}
-
-void sub_8105800(u8 a0, u16 species, u8 a2, u8 a3)
+ tileLeft = sCategoryPageIconCoords[sPokedexScreenData->numMonsOnPage - 1][sPokedexScreenData->categoryCursorPosInPage][2];
+ tileTop = sCategoryPageIconCoords[sPokedexScreenData->numMonsOnPage - 1][sPokedexScreenData->categoryCursorPosInPage][3];
+ }
+
+ width = 6 + (scale * 4);
+ height = 3 + (scale * 2);
+ if (width >= 28) // Make sure it's not wider than the screen
+ width = 28;
+ if (height >= 14) // Make sure it's not taller than the screen
+ height = 14;
+
+ left = tileLeft - ((scale * 4) / 2);
+ top = tileTop - ((scale * 2) / 2);
+ if ((left + width + 2) >= 30) // Don't wrap right...
+ left -= ((left + width + 2) - 30);
+ else if (left < 0) // ... left ...
+ left = 0;
+ if ((top + height + 2) >= 18) // ... down ...
+ top -= ((top + height + 2) - 18);
+ else if (top < 2) // or up.
+ top = 2;
+
+ divY = (top + 1) + ((height / 2) + 1); // The horizontal divider
+
+ // Top edge
+ FillBgTilemapBufferRect_Palette0(bg, 4, left, top, 1, 1);
+ FillBgTilemapBufferRect_Palette0(bg, 5, left + 1, top, width, 1);
+ FillBgTilemapBufferRect_Palette0(bg, BG_TILE_H_FLIP(4), left + 1 + width, top, 1, 1);
+
+ // Bottom edge
+ FillBgTilemapBufferRect_Palette0(bg, 10, left, top + 1 + height, 1, 1);
+ FillBgTilemapBufferRect_Palette0(bg, 11, left + 1, top + 1 + height, width, 1);
+ FillBgTilemapBufferRect_Palette0(bg, BG_TILE_H_FLIP(10), left + 1 + width, top + 1 + height, 1, 1);
+
+ // Left edge
+ FillBgTilemapBufferRect_Palette0(bg, 6, left, top + 1, 1, divY - top - 1);
+ FillBgTilemapBufferRect_Palette0(bg, 7, left, divY, 1, 1);
+ FillBgTilemapBufferRect_Palette0(bg, 9, left, divY + 1, 1, top + height - divY);
+
+ // Right edge
+ FillBgTilemapBufferRect_Palette0(bg, BG_TILE_H_FLIP(6), left + 1 + width, top + 1, 1, divY - top - 1);
+ FillBgTilemapBufferRect_Palette0(bg, BG_TILE_H_FLIP(7), left + 1 + width, divY, 1, 1);
+ FillBgTilemapBufferRect_Palette0(bg, BG_TILE_H_FLIP(9), left + 1 + width, divY + 1, 1, top + height - divY);
+
+ // Interior
+ FillBgTilemapBufferRect_Palette0(bg, 1, left + 1, top + 1, width, divY - top - 1);
+ FillBgTilemapBufferRect_Palette0(bg, 8, left + 1, divY, width, 1);
+ FillBgTilemapBufferRect_Palette0(bg, 2, left + 1, divY + 1, width, top + height - divY);
+}
+
+void DexScreen_PrintMonCategory(u8 windowId, u16 species, u8 x, u8 y)
{
u8 * categoryName;
u8 index, categoryStr[12];
@@ -2611,7 +2672,7 @@ void sub_8105800(u8 a0, u16 species, u8 a2, u8 a3)
categoryName = (u8 *)gPokedexEntries[species].categoryName;
index = 0;
- if (sub_8104AB0(species, 1, 0))
+ if (DexScreen_GetSetPokedexFlag(species, FLAG_GET_CAUGHT, FALSE))
{
#if REVISION == 0
while ((categoryName[index] != CHAR_SPACE) && (index < 11))
@@ -2631,15 +2692,15 @@ void sub_8105800(u8 a0, u16 species, u8 a2, u8 a3)
index++;
}
}
-
+
categoryStr[index] = EOS;
- sub_81047C8(a0, 0, categoryStr, a2, a3, 0);
- a2 += GetStringWidth(0, categoryStr, 0);
- sub_81047C8(a0, 0, gText_PokedexPokemon, a2, a3, 0);
+ DexScreen_AddTextPrinterParameterized(windowId, 0, categoryStr, x, y, 0);
+ x += GetStringWidth(0, categoryStr, 0);
+ DexScreen_AddTextPrinterParameterized(windowId, 0, gText_PokedexPokemon, x, y, 0);
}
-void sub_81058C4(u8 windowId, u16 species, u8 x, u8 y)
+void DexScreen_PrintMonHeight(u8 windowId, u16 species, u8 x, u8 y)
{
u16 height;
u32 inches, feet;
@@ -2657,7 +2718,7 @@ void sub_81058C4(u8 windowId, u16 species, u8 x, u8 y)
buffer[i++] = 5;
buffer[i++] = CHAR_SPACE;
- if (sub_8104AB0(species, FLAG_GET_CAUGHT, 0))
+ if (DexScreen_GetSetPokedexFlag(species, FLAG_GET_CAUGHT, FALSE))
{
inches = 10000 * height / 254; // actually tenths of inches here
if (inches % 10 >= 5)
@@ -2691,12 +2752,12 @@ void sub_81058C4(u8 windowId, u16 species, u8 x, u8 y)
}
buffer[i++] = EOS;
- sub_81047C8(windowId, 0, labelText, x, y, 0);
+ DexScreen_AddTextPrinterParameterized(windowId, 0, labelText, x, y, 0);
x += 30;
- sub_81047C8(windowId, 0, buffer, x, y, 0);
+ DexScreen_AddTextPrinterParameterized(windowId, 0, buffer, x, y, 0);
}
-void sub_8105A3C(u8 windowId, u16 species, u8 x, u8 y)
+void DexScreen_PrintMonWeight(u8 windowId, u16 species, u8 x, u8 y)
{
u16 weight;
u32 lbs;
@@ -2717,10 +2778,11 @@ void sub_8105A3C(u8 windowId, u16 species, u8 x, u8 y)
buffer[i++] = EXT_CTRL_CODE_MIN_LETTER_SPACING;
buffer[i++] = 5;
- if (sub_8104AB0(species, FLAG_GET_CAUGHT, 0))
+ if (DexScreen_GetSetPokedexFlag(species, FLAG_GET_CAUGHT, FALSE))
{
- lbs = (weight * 100000) / 4536;
+ lbs = (weight * 100000) / 4536; // Convert to hundredths of lb
+ // Round up to the nearest 0.1 lb
if (lbs % 10 >= 5)
lbs += 10;
@@ -2746,7 +2808,7 @@ void sub_8105A3C(u8 windowId, u16 species, u8 x, u8 y)
output = TRUE;
i++;
}
-
+
lbs %= 10000;
if ((buffer[i] = (lbs / 1000) + CHAR_0) == CHAR_0 && !output)
{
@@ -2782,23 +2844,23 @@ void sub_8105A3C(u8 windowId, u16 species, u8 x, u8 y)
buffer[i + j] = lbsText[j];
buffer[i + j] = EOS;
- sub_81047C8(windowId, 0, labelText, x, y, 0);
+ DexScreen_AddTextPrinterParameterized(windowId, 0, labelText, x, y, 0);
x += 30;
- sub_81047C8(windowId, 0, buffer, x, y, 0);
+ DexScreen_AddTextPrinterParameterized(windowId, 0, buffer, x, y, 0);
}
-void sub_8105CB0(u8 a0, u16 species, u8 x, u8 y)
+void DexScreen_PrintMonFlavorText(u8 windowId, u16 species, u8 x, u8 y)
{
struct TextPrinterTemplate printerTemplate;
u16 length;
- s32 v1;
+ s32 xCenter;
species = SpeciesToNationalPokedexNum(species);
- if (sub_8104AB0(species, 1, 0))
+ if (DexScreen_GetSetPokedexFlag(species, FLAG_GET_CAUGHT, FALSE))
{
printerTemplate.currentChar = gPokedexEntries[species].description;
- printerTemplate.windowId = a0;
+ printerTemplate.windowId = windowId;
printerTemplate.fontId = 2;
printerTemplate.letterSpacing = 1;
printerTemplate.lineSpacing = 0;
@@ -2808,10 +2870,10 @@ void sub_8105CB0(u8 a0, u16 species, u8 x, u8 y)
printerTemplate.shadowColor = 2;
length = GetStringWidth(2, gPokedexEntries[species].description, 0);
- v1 = x + (240 - length) / 2;
+ xCenter = x + (240 - length) / 2;
- if (v1 > 0)
- x = v1;
+ if (xCenter > 0)
+ x = xCenter;
else
x = 0;
@@ -2824,257 +2886,281 @@ void sub_8105CB0(u8 a0, u16 species, u8 x, u8 y)
}
}
-void sub_8105D64(u8 a0, u16 species, u8 a2, u8 a3)
+void DexScreen_DrawMonFootprint(u8 windowId, u16 species, u8 x, u8 y)
{
- u16 i, j, unused, v3;
- u8 v4, v5;
+ u16 i, j, unused, tileIdx;
+ u8 footprintPixel, footprintTile;
u8 * buffer;
u8 * footprint;
- if (!(sub_8104AB0(species, 1, 1)))
+ if (!(DexScreen_GetSetPokedexFlag(species, FLAG_GET_CAUGHT, TRUE)))
return;
footprint = (u8 *)(gMonFootprintTable[species]);
buffer = gDecompressionBuffer;
unused = 0;
- v3 = 0;
+ tileIdx = 0;
+ // Expand 1bpp to 4bpp
for (i = 0; i < 32; i++)
{
- v4 = footprint[i];
- for (j = 0; j < 4; j++)
+ footprintPixel = footprint[i];
+ for (j = 0; j < 8 / 2; j++)
{
- v5 = 0;
- if (v4 & (1 << (j * 2)))
- v5 |= 1;
- if (v4 & (2 << (j * 2)))
- v5 |= 16;
- buffer[v3] = v5;
- v3++;
+ footprintTile = 0;
+ if (footprintPixel & (1 << (j * 2)))
+ footprintTile |= 0x01;
+ if (footprintPixel & (2 << (j * 2)))
+ footprintTile |= 0x10;
+ buffer[tileIdx] = footprintTile;
+ tileIdx++;
}
}
- BlitBitmapRectToWindow(a0, buffer, 0, 0, 16, 16, a2, a3, 16, 16);
+ BlitBitmapRectToWindow(windowId, buffer, 0, 0, 16, 16, x, y, 16, 16);
}
-u8 sub_8105E1C(bool8 a0)
+static u8 DexScreen_DrawMonDexPage(bool8 justRegistered)
{
- sub_8105594(3, 6);
+ DexScreen_DexPageZoomEffectFrame(3, 6);
FillBgTilemapBufferRect_Palette0(2, 0, 0, 0, 30, 20);
FillBgTilemapBufferRect_Palette0(1, 0, 0, 0, 30, 20);
FillBgTilemapBufferRect_Palette0(0, 0, 0, 2, 30, 16);
- gUnknown_203ACF0->field_4A[0] = AddWindow(&gUnknown_84521D4);
- gUnknown_203ACF0->field_4A[1] = AddWindow(&gUnknown_84521DC);
- gUnknown_203ACF0->field_4A[2] = AddWindow(&gUnknown_84521E4);
-
- FillWindowPixelBuffer(gUnknown_203ACF0->field_4A[0], 0);
- sub_81049FC(gUnknown_203ACF0->field_4A[0], gUnknown_203ACF0->field_5A, 144);
- PutWindowTilemap(gUnknown_203ACF0->field_4A[0]);
- CopyWindowToVram(gUnknown_203ACF0->field_4A[0], 2);
- FillWindowPixelBuffer(gUnknown_203ACF0->field_4A[1], 0);
- sub_8104A34(gUnknown_203ACF0->field_4A[1], 0, gUnknown_203ACF0->field_5A, 0, 8);
- sub_81047C8(gUnknown_203ACF0->field_4A[1], 2, gSpeciesNames[gUnknown_203ACF0->field_5A], 28, 8, 0);
- sub_8105800(gUnknown_203ACF0->field_4A[1], gUnknown_203ACF0->field_5A, 0, 24);
- sub_81058C4(gUnknown_203ACF0->field_4A[1], gUnknown_203ACF0->field_5A, 0, 36);
- sub_8105A3C(gUnknown_203ACF0->field_4A[1], gUnknown_203ACF0->field_5A, 0, 48);
- sub_8105D64(gUnknown_203ACF0->field_4A[1], gUnknown_203ACF0->field_5A, 88, 40);
-
- PutWindowTilemap(gUnknown_203ACF0->field_4A[1]);
- CopyWindowToVram(gUnknown_203ACF0->field_4A[1], 2);
- FillWindowPixelBuffer(gUnknown_203ACF0->field_4A[2], 0);
- sub_8105CB0(gUnknown_203ACF0->field_4A[2], gUnknown_203ACF0->field_5A, 0, 8);
- PutWindowTilemap(gUnknown_203ACF0->field_4A[2]);
- CopyWindowToVram(gUnknown_203ACF0->field_4A[2], 2);
- FillWindowPixelBuffer(1, 255);
- if (a0 == FALSE)
- {
- sub_81047C8(1, 0, gText_Cry, 8, 2, 4);
- sub_8104C2C(gText_NextDataCancel);
+ sPokedexScreenData->windowIds[0] = AddWindow(&sWindowTemplate_DexEntry_MonPic);
+ sPokedexScreenData->windowIds[1] = AddWindow(&sWindowTemplate_DexEntry_SpeciesStats);
+ sPokedexScreenData->windowIds[2] = AddWindow(&sWindowTemplate_DexEntry_FlavorText);
+
+ // Mon pic
+ FillWindowPixelBuffer(sPokedexScreenData->windowIds[0], PIXEL_FILL(0));
+ DexScreen_LoadMonPicInWindow(sPokedexScreenData->windowIds[0], sPokedexScreenData->dexSpecies, 144);
+ PutWindowTilemap(sPokedexScreenData->windowIds[0]);
+ CopyWindowToVram(sPokedexScreenData->windowIds[0], COPYWIN_GFX);
+
+ // Species stats
+ FillWindowPixelBuffer(sPokedexScreenData->windowIds[1], PIXEL_FILL(0));
+ DexScreen_PrintMonDexNo(sPokedexScreenData->windowIds[1], 0, sPokedexScreenData->dexSpecies, 0, 8);
+ DexScreen_AddTextPrinterParameterized(sPokedexScreenData->windowIds[1], 2, gSpeciesNames[sPokedexScreenData->dexSpecies], 28, 8, 0);
+ DexScreen_PrintMonCategory(sPokedexScreenData->windowIds[1], sPokedexScreenData->dexSpecies, 0, 24);
+ DexScreen_PrintMonHeight(sPokedexScreenData->windowIds[1], sPokedexScreenData->dexSpecies, 0, 36);
+ DexScreen_PrintMonWeight(sPokedexScreenData->windowIds[1], sPokedexScreenData->dexSpecies, 0, 48);
+ DexScreen_DrawMonFootprint(sPokedexScreenData->windowIds[1], sPokedexScreenData->dexSpecies, 88, 40);
+ PutWindowTilemap(sPokedexScreenData->windowIds[1]);
+ CopyWindowToVram(sPokedexScreenData->windowIds[1], COPYWIN_GFX);
+
+ // Dex entry
+ FillWindowPixelBuffer(sPokedexScreenData->windowIds[2], PIXEL_FILL(0));
+ DexScreen_PrintMonFlavorText(sPokedexScreenData->windowIds[2], sPokedexScreenData->dexSpecies, 0, 8);
+ PutWindowTilemap(sPokedexScreenData->windowIds[2]);
+ CopyWindowToVram(sPokedexScreenData->windowIds[2], COPYWIN_GFX);
+
+ // Control info
+ FillWindowPixelBuffer(1, PIXEL_FILL(15));
+ if (justRegistered == FALSE)
+ {
+ DexScreen_AddTextPrinterParameterized(1, 0, gText_Cry, 8, 2, 4);
+ DexScreen_PrintControlInfo(gText_NextDataCancel);
}
else
- sub_8104C2C(gText_Next);
+ // Just registered
+ DexScreen_PrintControlInfo(gText_Next);
PutWindowTilemap(1);
- CopyWindowToVram(1, 2);
+ CopyWindowToVram(1, COPYWIN_GFX);
return 1;
}
-u8 sub_8106014(void)
+u8 RemoveDexPageWindows(void)
{
- sub_81047B0(&gUnknown_203ACF0->field_4A[0]);
- sub_81047B0(&gUnknown_203ACF0->field_4A[1]);
- sub_81047B0(&gUnknown_203ACF0->field_4A[2]);
+ DexScreen_RemoveWindow(&sPokedexScreenData->windowIds[0]);
+ DexScreen_RemoveWindow(&sPokedexScreenData->windowIds[1]);
+ DexScreen_RemoveWindow(&sPokedexScreenData->windowIds[2]);
return 0;
}
-u8 sub_810603C(void)
+u8 DexScreen_DrawMonAreaPage(void)
{
int i;
- u8 v1, v2;
- bool8 v3;
- s16 v4, v5;
+ u8 width, height;
+ bool8 monIsCaught;
+ s16 left, top;
u16 speciesId, species;
- u16 v8;
+ u16 kantoMapVoff;
- species = gUnknown_203ACF0->field_5A;
+ species = sPokedexScreenData->dexSpecies;
speciesId = SpeciesToNationalPokedexNum(species);
- v3 = sub_8104AB0(species, 1, 1);
- v1 = 28;
- v2 = 14;
- v4 = 0;
- v5 = 2;
-
- FillBgTilemapBufferRect_Palette0(3, 4, v4, v5, 1, 1);
- FillBgTilemapBufferRect_Palette0(3, 1028, v4 + 1 + v1, v5, 1, 1);
- FillBgTilemapBufferRect_Palette0(3, 2052, v4, v5 + 1 + v2, 1, 1);
- FillBgTilemapBufferRect_Palette0(3, 3076, v4 + 1 + v1, v5 + 1 + v2, 1, 1);
- FillBgTilemapBufferRect_Palette0(3, 5, v4 + 1, v5, v1, 1);
- FillBgTilemapBufferRect_Palette0(3, 2053, v4 + 1, v5 + 1 + v2, v1, 1);
- FillBgTilemapBufferRect_Palette0(3, 6, v4, v5 + 1, 1, v2);
- FillBgTilemapBufferRect_Palette0(3, 1030, v4 + 1 + v1, v5 + 1, 1, v2);
- FillBgTilemapBufferRect_Palette0(3, 1, v4 + 1, v5 + 1, v1, v2);
+ monIsCaught = DexScreen_GetSetPokedexFlag(species, FLAG_GET_CAUGHT, TRUE);
+ width = 28;
+ height = 14;
+ left = 0;
+ top = 2;
+
+ FillBgTilemapBufferRect_Palette0(3, 4, left, top, 1, 1);
+ FillBgTilemapBufferRect_Palette0(3, BG_TILE_H_FLIP(4), left + 1 + width, top, 1, 1);
+ FillBgTilemapBufferRect_Palette0(3, BG_TILE_V_FLIP(4), left, top + 1 + height, 1, 1);
+ FillBgTilemapBufferRect_Palette0(3, BG_TILE_H_V_FLIP(4), left + 1 + width, top + 1 + height, 1, 1);
+ FillBgTilemapBufferRect_Palette0(3, 5, left + 1, top, width, 1);
+ FillBgTilemapBufferRect_Palette0(3, BG_TILE_V_FLIP(5), left + 1, top + 1 + height, width, 1);
+ FillBgTilemapBufferRect_Palette0(3, 6, left, top + 1, 1, height);
+ FillBgTilemapBufferRect_Palette0(3, BG_TILE_H_FLIP(6), left + 1 + width, top + 1, 1, height);
+ FillBgTilemapBufferRect_Palette0(3, 1, left + 1, top + 1, width, height);
FillBgTilemapBufferRect_Palette0(0, 0, 0, 2, 30, 16);
- v1 = 10;
- v2 = 6;
- v4 = 1;
- v5 = 9;
-
- FillBgTilemapBufferRect_Palette0(0, 29, v4, v5, 1, 1);
- FillBgTilemapBufferRect_Palette0(0, 1053, v4 + 1 + v1, v5, 1, 1);
- FillBgTilemapBufferRect_Palette0(0, 2077, v4, v5 + 1 + v2, 1, 1);
- FillBgTilemapBufferRect_Palette0(0, 3101, v4 + 1 + v1, v5 + 1 + v2, 1, 1);
- FillBgTilemapBufferRect_Palette0(0, 30, v4 + 1, v5, v1, 1);
- FillBgTilemapBufferRect_Palette0(0, 2078, v4 + 1, v5 + 1 + v2, v1, 1);
- FillBgTilemapBufferRect_Palette0(0, 31, v4, v5 + 1, 1, v2);
- FillBgTilemapBufferRect_Palette0(0, 1055, v4 + 1 + v1, v5 + 1, 1, v2);
+ width = 10;
+ height = 6;
+ left = 1;
+ top = 9;
+
+ FillBgTilemapBufferRect_Palette0(0, 29, left, top, 1, 1);
+ FillBgTilemapBufferRect_Palette0(0, BG_TILE_H_FLIP(29), left + 1 + width, top, 1, 1);
+ FillBgTilemapBufferRect_Palette0(0, BG_TILE_V_FLIP(29), left, top + 1 + height, 1, 1);
+ FillBgTilemapBufferRect_Palette0(0, BG_TILE_H_V_FLIP(29), left + 1 + width, top + 1 + height, 1, 1);
+ FillBgTilemapBufferRect_Palette0(0, 30, left + 1, top, width, 1);
+ FillBgTilemapBufferRect_Palette0(0, BG_TILE_V_FLIP(30), left + 1, top + 1 + height, width, 1);
+ FillBgTilemapBufferRect_Palette0(0, 31, left, top + 1, 1, height);
+ FillBgTilemapBufferRect_Palette0(0, BG_TILE_H_FLIP(31), left + 1 + width, top + 1, 1, height);
FillBgTilemapBufferRect_Palette0(2, 0, 0, 0, 30, 20);
FillBgTilemapBufferRect_Palette0(1, 0, 0, 0, 30, 20);
- gUnknown_203ACF0->field_64 = GetUnlockedSeviiAreas();
- v8 = 4;
+ sPokedexScreenData->unlockedSeviiAreas = GetUnlockedSeviiAreas();
+ kantoMapVoff = 4;
+ // If any of the postgame islands are unlocked, Kanto map needs to be flush with the
+ // top of the screen.
for (i = 3; i < 7; i++)
- if ((gUnknown_203ACF0->field_64 >> i) & 1)
- v8 = 0;
-
- gUnknown_203ACF0->field_4A[0] = AddWindow(&gUnknown_8452214);
- CopyToWindowPixelBuffer(gUnknown_203ACF0->field_4A[0], (void *)gUnknown_8443620, 0, 0);
- SetWindowAttribute(gUnknown_203ACF0->field_4A[0], 2,
- GetWindowAttribute(gUnknown_203ACF0->field_4A[0], 2) + v8);
- PutWindowTilemap(gUnknown_203ACF0->field_4A[0]);
+ if ((sPokedexScreenData->unlockedSeviiAreas >> i) & 1)
+ kantoMapVoff = 0;
+
+ sPokedexScreenData->windowIds[0] = AddWindow(&sWindowTemplate_AreaMap_Kanto);
+ CopyToWindowPixelBuffer(sPokedexScreenData->windowIds[0], (void *)sTilemap_AreaMap_Kanto, 0, 0);
+ SetWindowAttribute(sPokedexScreenData->windowIds[0], WINDOW_TILEMAP_TOP,
+ GetWindowAttribute(sPokedexScreenData->windowIds[0], WINDOW_TILEMAP_TOP) + kantoMapVoff);
+ PutWindowTilemap(sPokedexScreenData->windowIds[0]);
for (i = 0; i < 7; i++)
- if ((gUnknown_203ACF0->field_64 >> i) & 1)
- {
- gUnknown_203ACF0->field_4A[i + 1] = AddWindow(gUnknown_8452254[i].window);
- CopyToWindowPixelBuffer(gUnknown_203ACF0->field_4A[i + 1], gUnknown_8452254[i].tilemap, 0, 0);
- SetWindowAttribute(gUnknown_203ACF0->field_4A[i + 1], 2, GetWindowAttribute(gUnknown_203ACF0->field_4A[i + 1], 2) + v8);
- PutWindowTilemap(gUnknown_203ACF0->field_4A[i + 1]);
- CopyWindowToVram(gUnknown_203ACF0->field_4A[i + 1], 2);
- }
- gUnknown_203ACF0->field_4A[8] = AddWindow(&gUnknown_84521F4);
- gUnknown_203ACF0->field_4A[9] = AddWindow(&gUnknown_84521FC);
- gUnknown_203ACF0->field_4A[10] = AddWindow(&gUnknown_8452204);
- gUnknown_203ACF0->field_4A[11] = AddWindow(&gUnknown_84521EC);
- gUnknown_203ACF0->field_4A[12] = AddWindow(&gUnknown_845220C);
- FillWindowPixelBuffer(gUnknown_203ACF0->field_4A[11], 0);
- sub_8107CD8(160, species);
- sub_8107CF8(gUnknown_203ACF0->field_4A[11], species, sub_81049CC(species), 0, 0);
- PutWindowTilemap(gUnknown_203ACF0->field_4A[11]);
- CopyWindowToVram(gUnknown_203ACF0->field_4A[11], 2);
- FillWindowPixelBuffer(gUnknown_203ACF0->field_4A[9], 0);
- {
- s32 width = GetStringWidth(0, gText_Size, 0);
- sub_81047C8(gUnknown_203ACF0->field_4A[9], 0, gText_Size, (gUnknown_84521FC.width * 8 - width) / 2, 4, 0);
- }
- PutWindowTilemap(gUnknown_203ACF0->field_4A[9]);
- CopyWindowToVram(gUnknown_203ACF0->field_4A[9], 2);
-
- FillWindowPixelBuffer(gUnknown_203ACF0->field_4A[10], 0);
- {
- s32 width = GetStringWidth(0, gText_Area, 0);
- sub_81047C8(gUnknown_203ACF0->field_4A[10], 0, gText_Area, (gUnknown_8452204.width * 8 - width) / 2, 4, 0);
- }
- SetWindowAttribute(gUnknown_203ACF0->field_4A[10], 2, GetWindowAttribute(gUnknown_203ACF0->field_4A[10], 2) + v8);
- PutWindowTilemap(gUnknown_203ACF0->field_4A[10]);
- CopyWindowToVram(gUnknown_203ACF0->field_4A[10], 2);
- FillWindowPixelBuffer(gUnknown_203ACF0->field_4A[8], 0);
- sub_8104A34(gUnknown_203ACF0->field_4A[8], 0, species, 0, 0);
- sub_81047C8(gUnknown_203ACF0->field_4A[8], 2, gSpeciesNames[species], 3, 12, 0);
- PutWindowTilemap(gUnknown_203ACF0->field_4A[8]);
- CopyWindowToVram(gUnknown_203ACF0->field_4A[8], 2);
- FillWindowPixelBuffer(gUnknown_203ACF0->field_4A[12], 0);
+ if ((sPokedexScreenData->unlockedSeviiAreas >> i) & 1)
+ {
+ sPokedexScreenData->windowIds[i + 1] = AddWindow(sAreaMapStructs_SeviiIslands[i].window);
+ CopyToWindowPixelBuffer(sPokedexScreenData->windowIds[i + 1], sAreaMapStructs_SeviiIslands[i].tiles, 0, 0);
+ SetWindowAttribute(sPokedexScreenData->windowIds[i + 1], WINDOW_TILEMAP_TOP, GetWindowAttribute(sPokedexScreenData->windowIds[i + 1], WINDOW_TILEMAP_TOP) + kantoMapVoff);
+ PutWindowTilemap(sPokedexScreenData->windowIds[i + 1]);
+ CopyWindowToVram(sPokedexScreenData->windowIds[i + 1], COPYWIN_GFX);
+ }
+ sPokedexScreenData->windowIds[8] = AddWindow(&sWindowTemplate_AreaMap_SpeciesName);
+ sPokedexScreenData->windowIds[9] = AddWindow(&sWindowTemplate_AreaMap_Size);
+ sPokedexScreenData->windowIds[10] = AddWindow(&sWindowTemplate_AreaMap_Area);
+ sPokedexScreenData->windowIds[11] = AddWindow(&sWindowTemplate_AreaMap_MonIcon);
+ sPokedexScreenData->windowIds[12] = AddWindow(&sWindowTemplate_AreaMap_MonTypes);
+
+ // Draw the mon icon
+ FillWindowPixelBuffer(sPokedexScreenData->windowIds[11], PIXEL_FILL(0));
+ ListMenu_LoadMonIconPalette(160, species);
+ ListMenu_DrawMonIconGraphics(sPokedexScreenData->windowIds[11], species, DexScreen_GetDefaultPersonality(species), 0, 0);
+ PutWindowTilemap(sPokedexScreenData->windowIds[11]);
+ CopyWindowToVram(sPokedexScreenData->windowIds[11], COPYWIN_GFX);
+
+ // Print "Size"
+ FillWindowPixelBuffer(sPokedexScreenData->windowIds[9], PIXEL_FILL(0));
+ {
+ s32 strWidth = GetStringWidth(0, gText_Size, 0);
+ DexScreen_AddTextPrinterParameterized(sPokedexScreenData->windowIds[9], 0, gText_Size, (sWindowTemplate_AreaMap_Size.width * 8 - strWidth) / 2, 4, 0);
+ }
+ PutWindowTilemap(sPokedexScreenData->windowIds[9]);
+ CopyWindowToVram(sPokedexScreenData->windowIds[9], COPYWIN_GFX);
+
+ // Print "Area"
+ FillWindowPixelBuffer(sPokedexScreenData->windowIds[10], PIXEL_FILL(0));
+ {
+ s32 strWidth = GetStringWidth(0, gText_Area, 0);
+ DexScreen_AddTextPrinterParameterized(sPokedexScreenData->windowIds[10], 0, gText_Area, (sWindowTemplate_AreaMap_Area.width * 8 - strWidth) / 2, 4, 0);
+ }
+ SetWindowAttribute(sPokedexScreenData->windowIds[10], WINDOW_TILEMAP_TOP, GetWindowAttribute(sPokedexScreenData->windowIds[10], WINDOW_TILEMAP_TOP) + kantoMapVoff);
+ PutWindowTilemap(sPokedexScreenData->windowIds[10]);
+ CopyWindowToVram(sPokedexScreenData->windowIds[10], COPYWIN_GFX);
+
+ // Print species name
+ FillWindowPixelBuffer(sPokedexScreenData->windowIds[8], PIXEL_FILL(0));
+ DexScreen_PrintMonDexNo(sPokedexScreenData->windowIds[8], 0, species, 0, 0);
+ DexScreen_AddTextPrinterParameterized(sPokedexScreenData->windowIds[8], 2, gSpeciesNames[species], 3, 12, 0);
+ PutWindowTilemap(sPokedexScreenData->windowIds[8]);
+ CopyWindowToVram(sPokedexScreenData->windowIds[8], COPYWIN_GFX);
+
+ // Type icons
+ FillWindowPixelBuffer(sPokedexScreenData->windowIds[12], PIXEL_FILL(0));
ListMenuLoadStdPalAt(176, 1);
- if (v3)
+ if (monIsCaught)
{
- BlitMoveInfoIcon(gUnknown_203ACF0->field_4A[12], 1 + gBaseStats[species].type1, 0, 1);
+ BlitMoveInfoIcon(sPokedexScreenData->windowIds[12], 1 + gBaseStats[species].type1, 0, 1);
if (gBaseStats[species].type1 != gBaseStats[species].type2)
- BlitMoveInfoIcon(gUnknown_203ACF0->field_4A[12], 1 + gBaseStats[species].type2, 32, 1);
+ BlitMoveInfoIcon(sPokedexScreenData->windowIds[12], 1 + gBaseStats[species].type2, 32, 1);
}
- PutWindowTilemap(gUnknown_203ACF0->field_4A[12]);
- CopyWindowToVram(gUnknown_203ACF0->field_4A[12], 2);
+ PutWindowTilemap(sPokedexScreenData->windowIds[12]);
+ CopyWindowToVram(sPokedexScreenData->windowIds[12], COPYWIN_GFX);
+
+ // Show size comparison
ResetAllPicSprites();
- LoadPalette(gUnknown_8452368, 288, 32);
+ LoadPalette(sPalette_Silhouette, 288, 32);
- if (v3)
+ if (monIsCaught)
{
- gUnknown_203ACF0->field_4A[14] = CreateMonPicSprite_HandleDeoxys(species, 8, sub_81049CC(species), 1, 40, 104, 0, 65535);
- gSprites[gUnknown_203ACF0->field_4A[14]].oam.paletteNum = 2;
- gSprites[gUnknown_203ACF0->field_4A[14]].oam.affineMode = 1;
- gSprites[gUnknown_203ACF0->field_4A[14]].oam.matrixNum = 2;
- gSprites[gUnknown_203ACF0->field_4A[14]].oam.priority = 1;
- gSprites[gUnknown_203ACF0->field_4A[14]].pos2.y = gPokedexEntries[speciesId].pokemonOffset;
+ sPokedexScreenData->windowIds[14] = CreateMonPicSprite_HandleDeoxys(species, 8, DexScreen_GetDefaultPersonality(species), TRUE, 40, 104, 0, 0xFFFF);
+ gSprites[sPokedexScreenData->windowIds[14]].oam.paletteNum = 2;
+ gSprites[sPokedexScreenData->windowIds[14]].oam.affineMode = 1;
+ gSprites[sPokedexScreenData->windowIds[14]].oam.matrixNum = 2;
+ gSprites[sPokedexScreenData->windowIds[14]].oam.priority = 1;
+ gSprites[sPokedexScreenData->windowIds[14]].pos2.y = gPokedexEntries[speciesId].pokemonOffset;
SetOamMatrix(2, gPokedexEntries[speciesId].pokemonScale, 0, 0, gPokedexEntries[speciesId].pokemonScale);
- gUnknown_203ACF0->field_4A[15] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId_Debug(gSaveBlock2Ptr->playerGender, 1), 1, 80, 104, 0, 65535);
- gSprites[gUnknown_203ACF0->field_4A[15]].oam.paletteNum = 2;
- gSprites[gUnknown_203ACF0->field_4A[15]].oam.affineMode = 1;
- gSprites[gUnknown_203ACF0->field_4A[15]].oam.matrixNum = 1;
- gSprites[gUnknown_203ACF0->field_4A[15]].oam.priority = 1;
- gSprites[gUnknown_203ACF0->field_4A[15]].pos2.y = gPokedexEntries[speciesId].trainerOffset;
+ sPokedexScreenData->windowIds[15] = CreateTrainerPicSprite(PlayerGenderToFrontTrainerPicId_Debug(gSaveBlock2Ptr->playerGender, TRUE), 1, 80, 104, 0, 0xFFFF);
+ gSprites[sPokedexScreenData->windowIds[15]].oam.paletteNum = 2;
+ gSprites[sPokedexScreenData->windowIds[15]].oam.affineMode = 1;
+ gSprites[sPokedexScreenData->windowIds[15]].oam.matrixNum = 1;
+ gSprites[sPokedexScreenData->windowIds[15]].oam.priority = 1;
+ gSprites[sPokedexScreenData->windowIds[15]].pos2.y = gPokedexEntries[speciesId].trainerOffset;
SetOamMatrix(1, gPokedexEntries[speciesId].trainerScale, 0, 0, gPokedexEntries[speciesId].trainerScale);
}
else
{
- gUnknown_203ACF0->field_4A[14] = 0xff;
- gUnknown_203ACF0->field_4A[15] = 0xff;
+ sPokedexScreenData->windowIds[14] = 0xff;
+ sPokedexScreenData->windowIds[15] = 0xff;
}
- gUnknown_203ACF0->field_02[2] = sub_8134230(species, 2001, 3, v8 * 8);
- if (!(sub_81344E0(gUnknown_203ACF0->field_02[2])))
+ // Create the area markers
+ sPokedexScreenData->data[2] = Ctor_PokedexAreaMarkers(species, 2001, 3, kantoMapVoff * 8);
+ if (!(PokedexAreaMarkers_Any(sPokedexScreenData->data[2])))
{
- BlitBitmapRectToWindow(gUnknown_203ACF0->field_4A[0], (void *)gUnknown_8443D00, 0, 0, 88, 16, 4, 28, 88, 16);
+ BlitBitmapRectToWindow(sPokedexScreenData->windowIds[0], (void *)sBlitTiles_WideEllipse, 0, 0, 88, 16, 4, 28, 88, 16);
{
- s32 width = GetStringWidth(0, gText_AreaUnknown, 0);
- sub_81047C8(gUnknown_203ACF0->field_4A[0], 0, gText_AreaUnknown, (96 - width) / 2, 29, 0);
+ s32 strWidth = GetStringWidth(0, gText_AreaUnknown, 0);
+ DexScreen_AddTextPrinterParameterized(sPokedexScreenData->windowIds[0], 0, gText_AreaUnknown, (96 - strWidth) / 2, 29, 0);
}
}
- CopyWindowToVram(gUnknown_203ACF0->field_4A[0], 2);
- FillWindowPixelBuffer(1, 255);
- sub_81047C8(1, 0, gText_Cry, 8, 2, 4);
- sub_8104C2C(gText_CancelPreviousData);
+ CopyWindowToVram(sPokedexScreenData->windowIds[0], COPYWIN_GFX);
+
+ // Draw the control info
+ FillWindowPixelBuffer(1, PIXEL_FILL(15));
+ DexScreen_AddTextPrinterParameterized(1, 0, gText_Cry, 8, 2, 4);
+ DexScreen_PrintControlInfo(gText_CancelPreviousData);
PutWindowTilemap(1);
- CopyWindowToVram(1, 2);
+ CopyWindowToVram(1, COPYWIN_GFX);
return 1;
}
-u8 sub_81067C0(void)
+u8 DexScreen_DestroyAreaScreenResources(void)
{
int i;
- sub_81343F4(gUnknown_203ACF0->field_02[2]);
+ Dtor_PokedexAreaMarkers(sPokedexScreenData->data[2]);
for (i = 0; i < 13; i++)
- sub_81047B0(&gUnknown_203ACF0->field_4A[i]);
- if (gUnknown_203ACF0->field_4A[15] != 0xff)
- FreeAndDestroyTrainerPicSprite(gUnknown_203ACF0->field_4A[15]);
- if (gUnknown_203ACF0->field_4A[14] != 0xff)
- FreeAndDestroyMonPicSprite(gUnknown_203ACF0->field_4A[14]);
+ DexScreen_RemoveWindow(&sPokedexScreenData->windowIds[i]);
+ if (sPokedexScreenData->windowIds[15] != 0xff)
+ FreeAndDestroyTrainerPicSprite(sPokedexScreenData->windowIds[15]);
+ if (sPokedexScreenData->windowIds[14] != 0xff)
+ FreeAndDestroyMonPicSprite(sPokedexScreenData->windowIds[14]);
return 0;
}
-int sub_8106810(u16 species)
+static int DexScreen_CanShowMonInDex(u16 species)
{
if (IsNationalPokedexEnabled() == TRUE)
return TRUE;
@@ -3083,7 +3169,7 @@ int sub_8106810(u16 species)
return FALSE;
}
-u8 sub_8106838(u8 categoryNum, u8 pageNum)
+static u8 DexScreen_IsPageUnlocked(u8 categoryNum, u8 pageNum)
{
int i, count;
u16 species;
@@ -3095,14 +3181,14 @@ u8 sub_8106838(u8 categoryNum, u8 pageNum)
if (i < count)
{
species = gDexCategories[categoryNum].page[pageNum].species[i];
- if (sub_8106810(species) == TRUE && sub_8104AB0(species, 0, 1))
- return 1;
+ if (DexScreen_CanShowMonInDex(species) == TRUE && DexScreen_GetSetPokedexFlag(species, FLAG_GET_SEEN, TRUE))
+ return TRUE;
}
}
- return 0;
+ return FALSE;
}
-u8 sub_81068A0(u8 categoryNum)
+static bool8 DexScreen_IsCategoryUnlocked(u8 categoryNum)
{
int i;
u8 count;
@@ -3110,67 +3196,67 @@ u8 sub_81068A0(u8 categoryNum)
count = gDexCategories[categoryNum].count;
for (i = 0; i < count; i++)
- if (sub_8106838(categoryNum, i))
+ if (DexScreen_IsPageUnlocked(categoryNum, i))
return 1;
return 0;
}
-void sub_81068DC(u8 categoryNum, u8 pageNum)
+void DexScreen_CreateCategoryPageSpeciesList(u8 categoryNum, u8 pageNum)
{
int i, count;
u16 species;
count = gDexCategories[categoryNum].page[pageNum].count;
- gUnknown_203ACF0->field_2C = 0;
+ sPokedexScreenData->numMonsOnPage = 0;
for (i = 0; i < 4; i++)
- gUnknown_203ACF0->field_18[i] = 0xffff;
+ sPokedexScreenData->pageSpecies[i] = 0xffff;
for (i = 0; i < count; i++)
{
species = gDexCategories[categoryNum].page[pageNum].species[i];
- if (sub_8106810(species) == TRUE && sub_8104AB0(species, 0, 1))
+ if (DexScreen_CanShowMonInDex(species) == TRUE && DexScreen_GetSetPokedexFlag(species, FLAG_GET_SEEN, TRUE))
{
- gUnknown_203ACF0->field_18[gUnknown_203ACF0->field_2C] = gDexCategories[categoryNum].page[pageNum].species[i];
- gUnknown_203ACF0->field_2C++;
+ sPokedexScreenData->pageSpecies[sPokedexScreenData->numMonsOnPage] = gDexCategories[categoryNum].page[pageNum].species[i];
+ sPokedexScreenData->numMonsOnPage++;
}
}
}
-u8 sub_810699C(u8 category)
+static u8 DexScreen_GetPageLimitsForCategory(u8 category)
{
int i;
- u8 count, v2, v3;
+ u8 count, firstPage, lastPage;
count = gDexCategories[category].count;
- v2 = 0xff;
- v3 = 0xff;
+ firstPage = 0xff;
+ lastPage = 0xff;
for (i = 0; i < count; i++)
- if (sub_8106838(category, i))
+ if (DexScreen_IsPageUnlocked(category, i))
{
- if (v2 == 0xff)
- v2 = i;
- v3 = i;
+ if (firstPage == 0xff)
+ firstPage = i;
+ lastPage = i;
}
- if (v3 != 0xff)
+ if (lastPage != 0xff)
{
- gUnknown_203ACF0->field_29 = v2;
- gUnknown_203ACF0->field_2A = v3 + 1;
- return 0;
+ sPokedexScreenData->firstPageInCategory = firstPage;
+ sPokedexScreenData->lastPageInCategory = lastPage + 1;
+ return FALSE;
}
else
{
- gUnknown_203ACF0->field_29 = 0;
- gUnknown_203ACF0->field_2A = 0;
- return 1;
+ sPokedexScreenData->firstPageInCategory = 0;
+ sPokedexScreenData->lastPageInCategory = 0;
+ return TRUE;
}
}
-u8 sub_8106A20(u16 a0)
+static u8 DexScreen_LookUpCategoryBySpecies(u16 species)
{
- int i, j, k, categoryCount, categoryPageCount, v5;
- u16 species;
+ int i, j, k, categoryCount, categoryPageCount, posInPage;
+ u16 dexSpecies;
for (i = 0; i < NELEMS(gDexCategories); i++)
{
@@ -3178,84 +3264,84 @@ u8 sub_8106A20(u16 a0)
for (j = 0; j < categoryCount; j++)
{
categoryPageCount = gDexCategories[i].page[j].count;
- for (k = 0, v5 = 0; k < categoryPageCount; k++)
+ for (k = 0, posInPage = 0; k < categoryPageCount; k++)
{
- species = gDexCategories[i].page[j].species[k];
- if (a0 == species)
+ dexSpecies = gDexCategories[i].page[j].species[k];
+ if (species == dexSpecies)
{
- gUnknown_203ACF0->field_28 = i;
- gUnknown_203ACF0->field_2B = j;
- gUnknown_203ACF0->field_2D = v5;
- return 0;
+ sPokedexScreenData->category = i;
+ sPokedexScreenData->pageNum = j;
+ sPokedexScreenData->categoryCursorPosInPage = posInPage;
+ return FALSE;
}
- if (sub_8106810(species) == TRUE && sub_8104AB0(species, 0, 1))
- v5++;
+ if (DexScreen_CanShowMonInDex(dexSpecies) == TRUE && DexScreen_GetSetPokedexFlag(dexSpecies, FLAG_GET_SEEN, TRUE))
+ posInPage++;
}
}
}
- return 1;
+ return TRUE;
}
-u8 sub_8106AF8(u16 a0)
+static u8 DexScreen_PageNumberToRenderablePages(u16 page)
{
- int i, v1;
+ int i, count;
- for (i = 0, v1 = 0; i < a0; i++)
- if (sub_8106838(gUnknown_203ACF0->field_28, i))
- v1++;
+ for (i = 0, count = 0; i < page; i++)
+ if (DexScreen_IsPageUnlocked(sPokedexScreenData->category, i))
+ count++;
- return v1 + 1;
+ return count + 1;
}
-void sub_8106B34(void)
+void DexScreen_InputHandler_StartToCry(void)
{
if (JOY_NEW(START_BUTTON))
- PlayCry2(gUnknown_203ACF0->field_5A, 0, 125, 10);
+ PlayCry2(sPokedexScreenData->dexSpecies, 0, 125, 10);
}
-u8 sub_8106B60(u16 species)
+u8 DexScreen_RegisterMonToPokedex(u16 species)
{
- sub_8104AB0(species, 2, 1);
- sub_8104AB0(species, 3, 1);
+ DexScreen_GetSetPokedexFlag(species, FLAG_SET_SEEN, TRUE);
+ DexScreen_GetSetPokedexFlag(species, FLAG_SET_CAUGHT, TRUE);
if (!IsNationalPokedexEnabled() && SpeciesToNationalPokedexNum(species) > KANTO_DEX_COUNT)
- return CreateTask(sub_8106BD8, 0);
+ return CreateTask(Task_DexScreen_RegisterNonKantoMonBeforeNationalDex, 0);
- sub_810250C();
- gTasks[gUnknown_203ACF0->field_00].func = sub_8106BE8;
- sub_8106A20(species);
+ DexScreen_LoadResources();
+ gTasks[sPokedexScreenData->taskId].func = Task_DexScreen_RegisterMonToPokedex;
+ DexScreen_LookUpCategoryBySpecies(species);
- return gUnknown_203ACF0->field_00;
+ return sPokedexScreenData->taskId;
}
-static void sub_8106BD8(u8 taskId)
+static void Task_DexScreen_RegisterNonKantoMonBeforeNationalDex(u8 taskId)
{
DestroyTask(taskId);
}
-static void sub_8106BE8(u8 taskId)
+static void Task_DexScreen_RegisterMonToPokedex(u8 taskId)
{
- switch (gUnknown_203ACF0->field_01)
+ switch (sPokedexScreenData->state)
{
case 0:
- sub_810699C(gUnknown_203ACF0->field_28);
- if (gUnknown_203ACF0->field_2B < gUnknown_203ACF0->field_29)
- gUnknown_203ACF0->field_2B = gUnknown_203ACF0->field_29;
- gUnknown_203ACF0->field_01 = 3;
+ DexScreen_GetPageLimitsForCategory(sPokedexScreenData->category);
+ if (sPokedexScreenData->pageNum < sPokedexScreenData->firstPageInCategory)
+ sPokedexScreenData->pageNum = sPokedexScreenData->firstPageInCategory;
+ sPokedexScreenData->state = 3;
break;
case 1:
- sub_8106014();
- sub_8104E90();
+ RemoveDexPageWindows();
+ DexScreen_DestroyCategoryPageMonIconAndInfoWindows();
gMain.state = 0;
- gUnknown_203ACF0->field_01 = 2;
+ sPokedexScreenData->state = 2;
break;
case 2:
- if (sub_8102798())
+ if (DoClosePokedex())
DestroyTask(taskId);
break;
case 3:
- sub_8104F0C(1);
+ DexScreen_CreateCategoryListGfx(TRUE);
PutWindowTilemap(0);
PutWindowTilemap(1);
@@ -3264,9 +3350,9 @@ static void sub_8106BE8(u8 taskId)
CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(0);
- sub_8105058(0xff);
+ DexScreen_CreateCategoryPageSelectionCursor(0xff);
- gUnknown_203ACF0->field_01 = 4;
+ sPokedexScreenData->state = 4;
break;
case 4:
gPaletteFade.bufferTransferDisabled = 0;
@@ -3276,49 +3362,49 @@ static void sub_8106BE8(u8 taskId)
ShowBg(1);
ShowBg(0);
- gUnknown_203ACF0->field_01 = 5;
+ sPokedexScreenData->state = 5;
break;
case 5:
gTasks[taskId].data[0] = 30;
- gUnknown_203ACF0->field_61 = ListMenuAddCursorObjectInternal(&gUnknown_84524C4, 0);
- gUnknown_203ACF0->field_01 = 6;
+ sPokedexScreenData->categoryPageCursorTaskId = ListMenuAddCursorObjectInternal(&sCursorStruct_CategoryPage, 0);
+ sPokedexScreenData->state = 6;
break;
case 6:
- sub_8105058(gUnknown_203ACF0->field_2D);
- sub_8105178(gUnknown_203ACF0->field_61, gUnknown_203ACF0->field_2D, gUnknown_203ACF0->field_2C);
+ DexScreen_CreateCategoryPageSelectionCursor(sPokedexScreenData->categoryCursorPosInPage);
+ DexScreen_UpdateCategoryPageCursorObject(sPokedexScreenData->categoryPageCursorTaskId, sPokedexScreenData->categoryCursorPosInPage, sPokedexScreenData->numMonsOnPage);
if (gTasks[taskId].data[0])
gTasks[taskId].data[0]--;
else
{
- ListMenuRemoveCursorObject(gUnknown_203ACF0->field_61, 0);
- gUnknown_203ACF0->field_01 = 7;
+ ListMenuRemoveCursorObject(sPokedexScreenData->categoryPageCursorTaskId, 0);
+ sPokedexScreenData->state = 7;
}
break;
case 7:
- gUnknown_203ACF0->field_5A = gUnknown_203ACF0->field_18[gUnknown_203ACF0->field_2D];
- gUnknown_203ACF0->field_01 = 8;
+ sPokedexScreenData->dexSpecies = sPokedexScreenData->pageSpecies[sPokedexScreenData->categoryCursorPosInPage];
+ sPokedexScreenData->state = 8;
break;
case 8:
- sub_8105E1C(1);
- gUnknown_203ACF0->field_01 = 9;
+ DexScreen_DrawMonDexPage(TRUE);
+ sPokedexScreenData->state = 9;
break;
case 9:
- gUnknown_203ACF0->field_02[0] = 0;
- gUnknown_203ACF0->field_02[1] = 0;
- gUnknown_203ACF0->field_01++;
+ sPokedexScreenData->data[0] = 0;
+ sPokedexScreenData->data[1] = 0;
+ sPokedexScreenData->state++;
case 10:
- if (gUnknown_203ACF0->field_02[1] < 6)
+ if (sPokedexScreenData->data[1] < 6)
{
- if (gUnknown_203ACF0->field_02[0])
+ if (sPokedexScreenData->data[0])
{
- sub_8105594(0, gUnknown_203ACF0->field_02[1]);
+ DexScreen_DexPageZoomEffectFrame(0, sPokedexScreenData->data[1]);
CopyBgTilemapBufferToVram(0);
- gUnknown_203ACF0->field_02[0] = 4;
- gUnknown_203ACF0->field_02[1]++;
+ sPokedexScreenData->data[0] = 4;
+ sPokedexScreenData->data[1]++;
}
else
- gUnknown_203ACF0->field_02[0]--;
+ sPokedexScreenData->data[0]--;
}
else
{
@@ -3328,35 +3414,35 @@ static void sub_8106BE8(u8 taskId)
CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(0);
- PlayCry2(gUnknown_203ACF0->field_5A, 0, 125, 10);
- gUnknown_203ACF0->field_02[0] = 0;
- gUnknown_203ACF0->field_01 = 11;
+ PlayCry2(sPokedexScreenData->dexSpecies, 0, 125, 10);
+ sPokedexScreenData->data[0] = 0;
+ sPokedexScreenData->state = 11;
}
break;
case 11:
if (JOY_NEW(A_BUTTON | B_BUTTON))
- gUnknown_203ACF0->field_01 = 2;
+ sPokedexScreenData->state = 2;
break;
}
}
-void sub_8106E78(const u8 * str, s32 mode)
+void DexScreen_PrintStringWithAlignment(const u8 * str, s32 mode)
{
u32 x;
switch (mode)
{
- case 0:
+ case TEXT_LEFT:
x = 8;
break;
- case 1:
+ case TEXT_CENTER:
x = (u32)(240 - GetStringWidth(2, str, 0)) / 2;
break;
- case 2:
+ case TEXT_RIGHT:
default:
x = 232 - GetStringWidth(2, str, 0);
break;
}
- sub_81047C8(0, 2, str, x, 2, 4);
+ DexScreen_AddTextPrinterParameterized(0, 2, str, x, 2, 4);
}
diff --git a/src/pokemon.c b/src/pokemon.c
index 563073237..c59fd226e 100644
--- a/src/pokemon.c
+++ b/src/pokemon.c
@@ -5416,7 +5416,7 @@ void RandomlyGivePartyPokerus(struct Pokemon *party)
&foo;
}
-u8 CheckPartyPokerus(struct Pokemon *party, u8 selection)
+u8 CheckPartyPokerus(struct Pokemon *party, u8 party_bm)
{
u8 retVal;
@@ -5424,23 +5424,25 @@ u8 CheckPartyPokerus(struct Pokemon *party, u8 selection)
unsigned curBit = 1;
retVal = 0;
- if (selection)
+ if (party_bm != 0) // Check mons in party based on bitmask, LSB = first mon
{
do
{
- if ((selection & 1) && (GetMonData(&party[partyIndex], MON_DATA_POKERUS, NULL) & 0xF))
+ if ((party_bm & 1) && (GetMonData(&party[partyIndex], MON_DATA_POKERUS, NULL) & 0xF))
retVal |= curBit;
partyIndex++;
curBit <<= 1;
- selection >>= 1;
+ party_bm >>= 1;
}
- while (selection);
+ while (party_bm);
}
- else if (GetMonData(&party[0], MON_DATA_POKERUS, NULL) & 0xF)
+ else // Single Pokemon
{
- retVal = 1;
+ if (GetMonData(&party[0], MON_DATA_POKERUS, NULL) & 0xF)
+ {
+ retVal = 1;
+ }
}
-
return retVal;
}
diff --git a/src/pokemon_jump_4.c b/src/pokemon_jump_4.c
index 64316f46e..b197ebeef 100644
--- a/src/pokemon_jump_4.c
+++ b/src/pokemon_jump_4.c
@@ -667,7 +667,7 @@ static void sub_814A7D0(u16 left, u16 top, u8 cursorPos)
static void sub_814A84C(void)
{
- u8 color[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY};
+ u8 color[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY};
PutWindowTilemap(0);
PutWindowTilemap(1);
@@ -867,7 +867,7 @@ static void sub_814AC30(bool32 arg0)
if (!arg0)
{
for (i = 0; i < playersCount; i++)
- sub_814AB98(i, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY);
+ sub_814AB98(i, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY);
}
else
{
@@ -875,7 +875,7 @@ static void sub_814AC30(bool32 arg0)
for (i = 0; i < playersCount; i++)
{
if (var != i)
- sub_814AB98(i, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY);
+ sub_814AB98(i, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY);
else
sub_814AB98(i, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_RED, TEXT_COLOR_LIGHT_RED);
}
diff --git a/src/pokemon_special_anim_scene.c b/src/pokemon_special_anim_scene.c
index e7201ef52..5015e93a7 100644
--- a/src/pokemon_special_anim_scene.c
+++ b/src/pokemon_special_anim_scene.c
@@ -610,13 +610,13 @@ bool8 PSA_LevelUpVerticalSpritesTaskIsRunning(void)
UNUSED void PSA_DrawLevelUpWindowPg1(u16 *statsBefore, u16 *statsAfter)
{
DrawTextBorderOuter(1, 0x001, 0xE);
- DrawLevelUpWindowPg1(1, statsBefore, statsAfter, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY);
+ DrawLevelUpWindowPg1(1, statsBefore, statsAfter, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY);
PutWindowTilemap(1);
CopyWindowToVram(1, COPYWIN_BOTH);
}
UNUSED void PSA_DrawLevelUpWindowPg2(u16 *currStats)
{
- DrawLevelUpWindowPg2(1, currStats, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY);
+ DrawLevelUpWindowPg2(1, currStats, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY);
CopyWindowToVram(1, COPYWIN_GFX);
}
diff --git a/src/pokemon_storage_system_2.c b/src/pokemon_storage_system_2.c
index 397bdda41..c13687cb0 100644
--- a/src/pokemon_storage_system_2.c
+++ b/src/pokemon_storage_system_2.c
@@ -245,7 +245,7 @@ static void Task_PokemonStorageSystemPC(u8 taskId)
LoadStdWindowFrameGfx();
DrawDialogueFrame(0, 0);
FillWindowPixelBuffer(0, PIXEL_FILL(1));
- AddTextPrinterParameterized2(0, 2, sUnknown_83CDA20[task->data[1]].desc, TEXT_SPEED_FF, NULL, TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GREY);
+ AddTextPrinterParameterized2(0, 2, sUnknown_83CDA20[task->data[1]].desc, TEXT_SPEED_FF, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
CopyWindowToVram(0, COPYWIN_BOTH);
CopyWindowToVram(task->data[15], COPYWIN_BOTH);
task->data[0]++;
@@ -271,7 +271,7 @@ static void Task_PokemonStorageSystemPC(u8 taskId)
{
task->data[1] = task->data[3];
FillWindowPixelBuffer(0, PIXEL_FILL(1));
- AddTextPrinterParameterized2(0, 2, sUnknown_83CDA20[task->data[1]].desc, 0, NULL, TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GREY);
+ AddTextPrinterParameterized2(0, 2, sUnknown_83CDA20[task->data[1]].desc, 0, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
}
break;
case MENU_B_PRESSED:
@@ -286,13 +286,13 @@ static void Task_PokemonStorageSystemPC(u8 taskId)
if (task->data[2] == 0 && CountPartyMons() == PARTY_SIZE)
{
FillWindowPixelBuffer(0, PIXEL_FILL(1));
- AddTextPrinterParameterized2(0, 2, gText_PartyFull, 0, NULL, TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GREY);
+ AddTextPrinterParameterized2(0, 2, gText_PartyFull, 0, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
task->data[0] = 3;
}
else if (task->data[2] == 1 && CountPartyMons() == 1)
{
FillWindowPixelBuffer(0, PIXEL_FILL(1));
- AddTextPrinterParameterized2(0, 2, gText_JustOnePkmn, 0, NULL, TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GREY);
+ AddTextPrinterParameterized2(0, 2, gText_JustOnePkmn, 0, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
task->data[0] = 3;
}
else
@@ -307,7 +307,7 @@ static void Task_PokemonStorageSystemPC(u8 taskId)
if (JOY_NEW(A_BUTTON | B_BUTTON))
{
FillWindowPixelBuffer(0, PIXEL_FILL(1));
- AddTextPrinterParameterized2(0, 2, sUnknown_83CDA20[task->data[1]].desc, 0, NULL, TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GREY);
+ AddTextPrinterParameterized2(0, 2, sUnknown_83CDA20[task->data[1]].desc, 0, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
task->data[0] = 2;
}
else if (JOY_NEW(DPAD_UP))
@@ -317,7 +317,7 @@ static void Task_PokemonStorageSystemPC(u8 taskId)
Menu_MoveCursor(-1);
task->data[1] = Menu_GetCursorPos();
FillWindowPixelBuffer(0, PIXEL_FILL(1));
- AddTextPrinterParameterized2(0, 2, sUnknown_83CDA20[task->data[1]].desc, 0, NULL, TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GREY);
+ AddTextPrinterParameterized2(0, 2, sUnknown_83CDA20[task->data[1]].desc, 0, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
task->data[0] = 2;
}
else if (JOY_NEW(DPAD_DOWN))
@@ -327,7 +327,7 @@ static void Task_PokemonStorageSystemPC(u8 taskId)
Menu_MoveCursor(1);
task->data[1] = Menu_GetCursorPos();
FillWindowPixelBuffer(0, PIXEL_FILL(1));
- AddTextPrinterParameterized2(0, 2, sUnknown_83CDA20[task->data[1]].desc, 0, NULL, TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GREY);
+ AddTextPrinterParameterized2(0, 2, sUnknown_83CDA20[task->data[1]].desc, 0, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
task->data[0] = 2;
}
break;
diff --git a/src/pokemon_storage_system_3.c b/src/pokemon_storage_system_3.c
index 262040a85..078c6a77b 100644
--- a/src/pokemon_storage_system_3.c
+++ b/src/pokemon_storage_system_3.c
@@ -2057,7 +2057,7 @@ static void Cb_ChangeScreen(u8 taskId)
partyMon = gPSSData->field_218C.mon;
monIndex = gPSSData->field_2187;
maxMonIndex = gPSSData->field_2186;
- mode = gPSSData->field_2188;
+ mode = gPSSData->summaryScreenMode;
FreePSSData();
ShowPokemonSummaryScreen(partyMon, monIndex, maxMonIndex, Cb2_ReturnToPSS, mode);
break;
diff --git a/src/pokemon_storage_system_5.c b/src/pokemon_storage_system_5.c
index a977d0118..96c7a4120 100644
--- a/src/pokemon_storage_system_5.c
+++ b/src/pokemon_storage_system_5.c
@@ -9,7 +9,7 @@
#include "constants/items.h"
#include "constants/moves.h"
-static EWRAM_DATA struct Pokemon gUnknown_20397BC = {};
+static EWRAM_DATA struct Pokemon sMonBeingCarried = {};
static EWRAM_DATA s8 sBoxCursorArea = 0;
static EWRAM_DATA s8 sBoxCursorPosition = 0;
static EWRAM_DATA bool8 sIsMonBeingMoved = FALSE;
@@ -76,7 +76,7 @@ void sub_8092340(void)
gPSSData->inBoxMovingMode = 0;
if (sIsMonBeingMoved)
{
- gPSSData->movingMon = gUnknown_20397BC;
+ gPSSData->movingMon = sMonBeingCarried;
CreateMovingMonIcon();
}
}
@@ -837,7 +837,7 @@ s8 RunCanReleaseMon(void)
void sub_8093630(void)
{
if (sIsMonBeingMoved)
- gUnknown_20397BC = gPSSData->movingMon;
+ sMonBeingCarried = gPSSData->movingMon;
}
void sub_8093660(void)
@@ -845,9 +845,9 @@ void sub_8093660(void)
if (sIsMonBeingMoved)
{
if (sMovingMonOrigBoxId == TOTAL_BOXES_COUNT)
- gPSSData->movingMon = gUnknown_20397BC;
+ gPSSData->movingMon = sMonBeingCarried;
else
- gPSSData->movingMon.box = gUnknown_20397BC.box;
+ gPSSData->movingMon.box = sMonBeingCarried.box;
}
}
@@ -856,24 +856,24 @@ void sub_80936B8(void)
if (sIsMonBeingMoved)
{
sub_8093630();
- gPSSData->field_218C.mon = &gUnknown_20397BC;
+ gPSSData->field_218C.mon = &sMonBeingCarried;
gPSSData->field_2187 = 0;
gPSSData->field_2186 = 0;
- gPSSData->field_2188 = 0;
+ gPSSData->summaryScreenMode = PSS_MODE_NORMAL;
}
else if (sBoxCursorArea == CURSOR_AREA_IN_PARTY)
{
gPSSData->field_218C.mon = gPlayerParty;
gPSSData->field_2187 = sBoxCursorPosition;
gPSSData->field_2186 = CountPartyMons() - 1;
- gPSSData->field_2188 = 0;
+ gPSSData->summaryScreenMode = PSS_MODE_NORMAL;
}
else
{
gPSSData->field_218C.box = GetBoxedMonPtr(StorageGetCurrentBox(), 0);
gPSSData->field_2187 = sBoxCursorPosition;
gPSSData->field_2186 = IN_BOX_COUNT - 1;
- gPSSData->field_2188 = 5;
+ gPSSData->summaryScreenMode = PSS_MODE_BOX;
}
}
@@ -998,7 +998,7 @@ static void sub_8093A10(void)
static void sub_8093AAC(void)
{
if (sIsMonBeingMoved)
- SetCursorMonData(&gUnknown_20397BC, MODE_PARTY);
+ SetCursorMonData(&sMonBeingCarried, MODE_PARTY);
else
sub_8093A10();
}
@@ -1114,18 +1114,18 @@ static void SetCursorMonData(void *pokemon, u8 mode)
*(txtPtr)++ = CHAR_FEMALE;
break;
default:
- *(txtPtr)++ = TEXT_COLOR_DARK_GREY;
+ *(txtPtr)++ = TEXT_COLOR_DARK_GRAY;
*(txtPtr)++ = TEXT_COLOR_WHITE;
- *(txtPtr)++ = TEXT_COLOR_LIGHT_GREY;
+ *(txtPtr)++ = TEXT_COLOR_LIGHT_GRAY;
*(txtPtr)++ = CHAR_SPACE;
break;
}
*(txtPtr++) = EXT_CTRL_CODE_BEGIN;
*(txtPtr++) = EXT_CTRL_CODE_COLOR_HIGHLIGHT_SHADOW;
- *(txtPtr++) = TEXT_COLOR_DARK_GREY;
+ *(txtPtr++) = TEXT_COLOR_DARK_GRAY;
*(txtPtr++) = TEXT_COLOR_WHITE;
- *(txtPtr++) = TEXT_COLOR_LIGHT_GREY;
+ *(txtPtr++) = TEXT_COLOR_LIGHT_GRAY;
*(txtPtr++) = CHAR_SPACE;
*(txtPtr++) = CHAR_EXTRA_EMOJI;
*(txtPtr++) = 5; // LV_2
diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c
index 0d10e9948..acacd706b 100644
--- a/src/pokemon_summary_screen.c
+++ b/src/pokemon_summary_screen.c
@@ -37,155 +37,154 @@
// needs conflicting header to match (curIndex is s8 in the function, but has to be defined as u8 here)
extern s16 SeekToNextMonInBox(struct BoxPokemon * boxMons, u8 curIndex, u8 maxIndex, u8 flags);
-static void sub_8138B8C(struct Pokemon * mon);
-static void sub_8135C34(void);
-static void sub_813B784(void);
-static void sub_8138414(u8 curPageIndex);
-static void sub_8134BAC(u8 taskId);
-static void sub_8134E84(u8 taskId);
-static void sub_813B3F0(u8 taskId);
-static void sub_813B120(u8, s8);
-static void sub_8137E64(u8 taskId);
-static void sub_8135638(void);
-static void sub_81356EC(void);
-static void sub_813B750(u8 curPageIndex);
-static void sub_8138280(u8 curPageIndex);
-static void sub_8137D28(u8 curPageIndex);
-static void sub_8135514(void);
-static u8 sub_81357A0(u8);
-static void sub_8138440(void);
-static void sub_8138CD8(u8 taskId);
-static void sub_8135AA4(void);
-static void sub_8135B90(void);
-static void sub_8138538(void);
-static void sub_8137D28(u8 curPageIndex);
-static void sub_8136F4C(void);
-static void sub_81374E8(void);
-static void sub_8137BD0(void);
-static void sub_8138A38(void);
-static void sub_8136DA4(const u8 * str);
-static void sub_8136DF0(const u8 * str);
-static void sub_8136E50(const u8 * str);
-static void sub_81358DC(u8, u8);
-static void sub_813A838(u8 invisible);
-static void sub_813AB70(u8 invisible);
-static void sub_8139C44(u8 invisible);
-static void sub_813B084(u8 invisible);
-static void sub_8139D54(u8 invisible);
-static void sub_813A3B8(u8 invisible);
-static void sub_813ACF8(u8 invisible);
-static void sub_813AEB0(u8 invisible);
-static void sub_813A0E8(u8 invisible);
-static void sub_8139EE4(u8 invisible);
-static void sub_81381AC(void);
-static void sub_8136BC4(void);
-static void sub_8136BAC(void);
-static u8 sub_8135F20(void);
-static u8 sub_8136AEC(void);
-static void sub_81381D0(void);
-static u8 sub_8136040(void);
-static void sub_8137E28(void);
-static void sub_81381C0(void);
-static void sub_8136D54(void);
-static void sub_81360D4(void);
-static void sub_8136350(void);
-static void sub_81367B0(void);
-static u8 sub_8138C5C(u32 status);
-static void sub_81367E8(u8);
-static u16 sub_8138BEC(struct Pokemon * mon, u8 moveSlot);
-static u16 sub_8138C24(struct Pokemon * mon, u8 moveSlot);
-static void sub_813ADA8(u16, u16);
-static void sub_813ABAC(u16, u16);
-static void sub_813AFFC(void);
-static void sub_8139F64(u16, u16);
-static void sub_813A254(u16, u16);
-static void sub_813A45C(u16, u16);
-static void sub_813A874(u16, u16);
-static void sub_8139CB0(void);
-static void sub_8139DBC(void);
-static void sub_813995C(void);
-static void sub_81393D4(u8 taskId);
-static void sub_8137EE8(void);
-static void sub_8136FB0(void);
-static void sub_81370EC(void);
-static void sub_8137270(void);
-static void sub_81372E4(u8 i);
-static void sub_8137554(void);
-static void sub_8137A90(void);
-static void sub_8137AF8(void);
-static void sub_8137944(void);
-static void sub_8137970(void);
-static bool32 sub_813B838(u8 metLocation);
-static bool32 sub_8138B4C(void);
-static bool32 sub_813B7E0(u8 nature);
-static void sub_8137724(void);
-static bool32 sub_813B7F8(void);
-static u8 sub_813847C(struct Pokemon * mon);
-static void sub_8137C18(void);
-static void sub_8137C90(void);
-static void sub_813AF90(void);
-static void sub_81380F0(void);
-static void sub_81390B0(void);
-static void sub_81391EC(void);
-static void sub_8139328(struct Pokemon * mon);
-static void sub_8139AAC(u16 spriteId);
-static void sub_813A124(struct Sprite * sprite);
-static void sub_813A35C(void);
-static void sub_813A620(void);
-static void sub_813A994(void);
-static void sub_813ACB4(void);
-static void sub_813AF50(void);
-static void sub_813B068(void);
-static void sub_813B0E4(void);
-static s8 sub_813B20C(s8);
-static s8 sub_813B38C(s8);
+static void BufferSelectedMonData(struct Pokemon * mon);
+static void CB2_SetUpPSS(void);
+static void PokeSum_TryPlayMonCry(void);
+static void PokeSum_RemoveWindows(u8 curPageIndex);
+static void Task_PokeSum_FlipPages(u8 taskId);
+static void Task_FlipPages_FromInfo(u8 taskId);
+static void Task_PokeSum_SwitchDisplayedPokemon(u8 taskId);
+static void PokeSum_SeekToNextMon(u8 taskId, s8 direction);
+static void Task_DestroyResourcesOnExit(u8 taskId);
+static void PokeSum_HideSpritesBeforePageFlip(void);
+static void PokeSum_ShowSpritesBeforePageFlip(void);
+static void PokeSum_UpdateWin1ActiveFlag(u8 curPageIndex);
+static void PokeSum_AddWindows(u8 curPageIndex);
+static void PokeSum_PrintPageHeaderText(u8 curPageIndex);
+static void PokeSum_InitBgCoordsBeforePageFlips(void);
+static u8 PokeSum_IsPageFlipFinished(u8);
+static void PokeSum_SetHelpContext(void);
+static void Task_HandleInput_SelectMove(u8 id);
+static void PokeSum_CopyNewBgTilemapBeforePageFlip_2(void);
+static void PokeSum_CopyNewBgTilemapBeforePageFlip(void);
+static void PokeSum_DrawBg3Tilemap(void);
+static void PokeSum_PrintRightPaneText(void);
+static void PokeSum_PrintBottomPaneText(void);
+static void PokeSum_PrintAbilityDataOrMoveTypes(void);
+static void PokeSum_PrintMonTypeIcons(void);
+static void PokeSum_PrintPageName(const u8 * str);
+static void PokeSum_PrintControlsString(const u8 * str);
+static void PrintMonLevelNickOnWindow2(const u8 * str);
+static void PokeSum_UpdateBgPriorityForPageFlip(u8 setBg0Priority, u8 keepBg1Bg2PriorityOrder);
+static void ShowOrHideHpBarObjs(u8 invisible);
+static void ShowOrHideExpBarObjs(u8 invisible);
+static void PokeSum_ShowOrHideMonPicSprite(u8 invisible);
+static void PokeSum_ShowOrHideMonMarkingsSprite(u8 invisible);
+static void ShowOrHideBallIconObj(u8 invisible);
+static void ShowOrHideStatusIcon(u8 invisible);
+static void HideShowPokerusIcon(u8 invisible);
+static void HideShowShinyStar(u8 invisible);
+static void ShoworHideMoveSelectionCursor(u8 invisible);
+static void PokeSum_ShowOrHideMonIconSprite(u8 invisible);
+static void PokeSum_Setup_ResetCallbacks(void);
+static void PokeSum_Setup_InitGpu(void);
+static void PokeSum_Setup_SpritesReset(void);
+static u8 PokeSum_HandleLoadBgGfx(void);
+static u8 PokeSum_HandleCreateSprites(void);
+static void PokeSum_CreateWindows(void);
+static u8 PokeSum_Setup_BufferStrings(void);
+static void CommitStaticWindowTilemaps(void);
+static void PokeSum_Setup_SetVBlankCallback(void);
+static void PokeSum_FinishSetup(void);
+static void BufferMonInfo(void);
+static void BufferMonSkills(void);
+static void BufferMonMoves(void);
+static u8 StatusToAilment(u32 status);
+static void BufferMonMoveI(u8);
+static u16 GetMonMoveBySlotId(struct Pokemon * mon, u8 moveSlot);
+static u16 GetMonPpByMoveSlot(struct Pokemon * mon, u8 moveSlot);
+static void CreateShinyStarObj(u16, u16);
+static void CreatePokerusIconObj(u16, u16);
+static void PokeSum_CreateMonMarkingsSprite(void);
+static void CreateMoveSelectionCursorObjs(u16, u16);
+static void CreateMonStatusIconObj(u16, u16);
+static void CreateHpBarObjs(u16, u16);
+static void CreateExpBarObjs(u16, u16);
+static void CreateBallIconObj(void);
+static void PokeSum_CreateMonIconSprite(void);
+static void PokeSum_CreateMonPicSprite(void);
+static void Task_InputHandler_SelectOrForgetMove(u8 taskId);
+static void CB2_RunPokemonSummaryScreen(void);
+static void PrintInfoPage(void);
+static void PrintSkillsPage(void);
+static void PrintMovesPage(void);
+static void PokeSum_PrintMoveName(u8 i);
+static void PokeSum_PrintTrainerMemo(void);
+static void PokeSum_PrintExpPoints_NextLv(void);
+static void PokeSum_PrintSelectedMoveStats(void);
+static void PokeSum_PrintTrainerMemo_Mon(void);
+static void PokeSum_PrintTrainerMemo_Egg(void);
+static bool32 MapSecIsInKantoOrSevii(u8 mapSec);
+static bool32 IsMultiBattlePartner(void);
+static bool32 PokeSum_IsMonBoldOrGentle(u8 nature);
+static void PokeSum_PrintTrainerMemo_Mon_NotHeldByOT(void);
+static bool32 CurrentMonIsFromGBA(void);
+static u8 PokeSum_BufferOtName_IsEqualToCurrentOwner(struct Pokemon * mon);
+static void PokeSum_PrintAbilityNameAndDesc(void);
+static void PokeSum_DrawMoveTypeIcons(void);
+static void PokeSum_DestroySprites(void);
+static void PokeSum_FlipPages_HandleBgHofs(void);
+static void SwapMonMoveSlots(void);
+static void SwapBoxMonMoveSlots(void);
+static void UpdateCurrentMonBufferFromPartyOrBox(struct Pokemon * mon);
+static void PokeSum_SetMonPicSpriteCallback(u16 spriteId);
+static void SpriteCB_MoveSelectionCursor(struct Sprite * sprite);
+static void UpdateMonStatusIconObj(void);
+static void UpdateHpBarObjs(void);
+static void UpdateExpBarObjs(void);
+static void ShowPokerusIconObjIfHasOrHadPokerus(void);
+static void ShowShinyStarObjIfMonShiny(void);
+static void PokeSum_DestroyMonMarkingsSprite(void);
+static void PokeSum_UpdateMonMarkingsAnim(void);
+static s8 SeekToNextMonInSingleParty(s8 direction);
+static s8 SeekToNextMonInMultiParty(s8 direction);
struct PokemonSummaryScreenData
{
- u16 unk0[0x800];
- u16 unk1000[0x800];
- u16 unk2000[0x800];
- u8 ALIGNED(4) unk3000[7];
+ u16 bg1TilemapBuffer[0x800];
+ u16 bg2TilemapBuffer[0x800];
+ u16 bg3TilemapBuffer[0x800];
+ u8 ALIGNED(4) windowIds[7];
u8 ALIGNED(4) unk3008;
- u8 ALIGNED(4) unk300C;
- u8 ALIGNED(4) unk3010;
- u8 ALIGNED(4) unk3014;
+ u8 ALIGNED(4) ballIconSpriteId;
+ u8 ALIGNED(4) monPicSpriteId;
+ u8 ALIGNED(4) monIconSpriteId;
- u8 ALIGNED(4) unk3018;
- u8 ALIGNED(4) unk301C;
+ u8 ALIGNED(4) inputHandlerTaskId;
+ u8 ALIGNED(4) inhibitPageFlipInput;
- u8 ALIGNED(4) unk3020;
+ u8 ALIGNED(4) numMonPicBounces;
bool32 isEnemyParty; /* 0x3024 */
struct PokeSummary
{
- u8 ALIGNED(4) unk3028[POKEMON_NAME_LENGTH];
- u8 ALIGNED(4) unk3034[POKEMON_NAME_LENGTH + 1];
- u8 ALIGNED(4) unk3040[12];
- u8 ALIGNED(4) unk304C[2][12];
+ u8 ALIGNED(4) speciesNameStrBuf[POKEMON_NAME_LENGTH];
+ u8 ALIGNED(4) nicknameStrBuf[POKEMON_NAME_LENGTH + 1];
+ u8 ALIGNED(4) otNameStrBuf[12];
+ u8 ALIGNED(4) otNameStrBufs[2][12];
- u8 ALIGNED(4) unk3064[5];
+ u8 ALIGNED(4) dexNumStrBuf[5];
u8 ALIGNED(4) unk306C[7];
- u8 ALIGNED(4) unk3074[ITEM_NAME_LENGTH + 1];
+ u8 ALIGNED(4) itemNameStrBuf[ITEM_NAME_LENGTH + 1];
- u8 ALIGNED(4) unk3084[3];
- u8 ALIGNED(4) unk3088[7];
- u8 ALIGNED(4) unk3090[9];
- u8 ALIGNED(4) unk309C[5][5];
+ u8 ALIGNED(4) genderSymbolStrBuf[3];
+ u8 ALIGNED(4) levelStrBuf[7];
+ u8 ALIGNED(4) curHpStrBuf[9];
+ u8 ALIGNED(4) statValueStrBufs[5][5];
- u8 ALIGNED(4) unk30B8[5][11];
- u8 ALIGNED(4) unk30F0[5][11];
- u8 ALIGNED(4) unk3128[5][MOVE_NAME_LENGTH + 1];
- u8 ALIGNED(4) unk316C[5][5];
- u8 ALIGNED(4) unk3188[5][5];
+ u8 ALIGNED(4) moveCurPpStrBufs[5][11];
+ u8 ALIGNED(4) moveMaxPpStrBufs[5][11];
+ u8 ALIGNED(4) moveNameStrBufs[5][MOVE_NAME_LENGTH + 1];
+ u8 ALIGNED(4) movePowerStrBufs[5][5];
+ u8 ALIGNED(4) moveAccuracyStrBufs[5][5];
- u8 ALIGNED(4) unk31A4[9];
- u8 ALIGNED(4) unk31B0[9];
+ u8 ALIGNED(4) expPointsStrBuf[9];
+ u8 ALIGNED(4) expToNextLevelStrBuf[9];
- u8 ALIGNED(4) unk31BC[13];
- u8 ALIGNED(4) unk31CC[52];
+ u8 ALIGNED(4) abilityNameStrBuf[13];
+ u8 ALIGNED(4) abilityDescStrBuf[52];
} summary;
u8 ALIGNED(4) isEgg; /* 0x3200 */
@@ -197,37 +196,37 @@ struct PokemonSummaryScreenData
u8 ALIGNED(4) curPageIndex; /* 0x3214 */
u8 ALIGNED(4) unk3218; /* 0x3218 */
u8 ALIGNED(4) isBoxMon; /* 0x321C */
- u8 ALIGNED(4) unk3220[2]; /* 0x3220 */
+ u8 ALIGNED(4) monTypes[2]; /* 0x3220 */
- u8 ALIGNED(4) unk3224; /* 0x3224 */
+ u8 ALIGNED(4) pageFlipDirection; /* 0x3224 */
u8 ALIGNED(4) unk3228; /* 0x3228 */
u8 ALIGNED(4) unk322C; /* 0x322C */
u8 ALIGNED(4) unk3230; /* 0x3230 */
u8 ALIGNED(4) lockMovesFlag; /* 0x3234 */
- u8 ALIGNED(4) unk3238; /* 0x3238 */
- u8 ALIGNED(4) unk323C; /* 0x323C */
- u8 ALIGNED(4) unk3240; /* 0x3240 */
- u8 ALIGNED(4) unk3244; /* 0x3244 */
+ u8 ALIGNED(4) whichBgLayerToTranslate; /* 0x3238 */
+ u8 ALIGNED(4) skillsPageBgNum; /* 0x323C */
+ u8 ALIGNED(4) infoAndMovesPageBgNum; /* 0x3240 */
+ u8 ALIGNED(4) flippingPages; /* 0x3244 */
u8 ALIGNED(4) unk3248; /* 0x3248 */
- s16 ALIGNED(4) unk324C; /* 0x324C */
+ s16 ALIGNED(4) flipPagesBgHofs; /* 0x324C */
- u16 unk3250[5]; /* 0x3250 */
- u16 unk325A[5]; /* 0x325A */
- u8 ALIGNED(4) unk3264; /* 0x3264 */
- u8 ALIGNED(4) unk3268; /* 0x3268 */
+ u16 moveTypes[5]; /* 0x3250 */
+ u16 moveIds[5]; /* 0x325A */
+ u8 ALIGNED(4) numMoves; /* 0x3264 */
+ u8 ALIGNED(4) isSwappingMoves; /* 0x3268 */
- u8 ALIGNED(4) unk326C; /* 0x326C */
+ u8 ALIGNED(4) curMonStatusAilment; /* 0x326C */
u8 ALIGNED(4) state3270; /* 0x3270 */
- u8 ALIGNED(4) unk3274; /* 0x3274 */
- u8 ALIGNED(4) unk3278; /* 0x3278 */
- u8 ALIGNED(4) unk327C; /* 0x327C */
- u8 ALIGNED(4) unk3280; /* 0x3280 */
- u8 ALIGNED(4) unk3284; /* 0x3284 */
- u8 ALIGNED(4) unk3288; /* 0x3288 */
- u8 ALIGNED(4) unk328C; /* 0x328C */
+ u8 ALIGNED(4) summarySetupStep; /* 0x3274 */
+ u8 ALIGNED(4) loadBgGfxStep; /* 0x3278 */
+ u8 ALIGNED(4) spriteCreationStep; /* 0x327C */
+ u8 ALIGNED(4) bufferStringsStep; /* 0x3280 */
+ u8 ALIGNED(4) state3284; /* 0x3284 */
+ u8 ALIGNED(4) selectMoveInputHandlerState; /* 0x3288 */
+ u8 ALIGNED(4) switchMonTaskState; /* 0x328C */
struct Pokemon currentMon; /* 0x3290 */
@@ -240,115 +239,115 @@ struct PokemonSummaryScreenData
MainCallback savedCallback;
struct Sprite * markingSprite;
- u8 ALIGNED(4) unk3300[2]; /* 0x3300 */
- u8 ALIGNED(4) unk3304[3]; /* 0x3304 */
+ u8 ALIGNED(4) lastPageFlipDirection; /* 0x3300 */
+ u8 ALIGNED(4) unk3304; /* 0x3304 */
};
struct Struct203B144
{
u16 unk00;
- u16 unk02;
- u16 unk04;
- u16 unk06;
- u16 unk08;
- u16 unk0A;
- u16 unk0C;
- u16 unk0E;
- u16 unk10;
-
- u16 unk12[5];
- u16 unk1C[5];
+ u16 curHpStr;
+ u16 atkStr;
+ u16 defStr;
+ u16 spAStr;
+ u16 spDStr;
+ u16 speStr;
+ u16 expStr;
+ u16 toNextLevel;
+
+ u16 curPp[5];
+ u16 maxPp[5];
u16 unk26;
};
-struct Struct203B160
+struct ExpBarObjs
{
struct Sprite * sprites[11]; /* 0x00 */
- u16 unk2C[11]; /* 0x2c */
- u16 unk42; /* 0x42 */
- u16 unk44; /* 0x44 */
+ u16 xpos[11]; /* 0x2c */
+ u16 tileTag; /* 0x42 */
+ u16 palTag; /* 0x44 */
};
-struct Struct203B15C
+struct HpBarObjs
{
struct Sprite * sprites[10]; /* 0x00 */
- u16 unk28[10]; /* 0x28 */
- u16 unk3C; /* 0x3c */
- u16 unk3E; /* 0x3e */
+ u16 xpos[10]; /* 0x28 */
+ u16 tileTag; /* 0x3c */
+ u16 palTag; /* 0x3e */
};
-struct Struct203B170
+struct MonPicBounceState
{
- u8 ALIGNED(4) unk00; /* 0x00 */
- u8 ALIGNED(4) unk04; /* 0x04 */
- u8 ALIGNED(4) unk08; /* 0x08 */
+ u8 ALIGNED(4) animFrame; /* 0x00 */
+ u8 ALIGNED(4) initDelay; /* 0x04 */
+ u8 ALIGNED(4) vigor; /* 0x08 */
};
-struct Struct203B148
+struct MoveSelectionCursor
{
struct Sprite * sprite; /* 0x00 */
- u16 unk04; /* 0x04 */
- u16 unk06; /* 0x06 */
- u16 unk08; /* 0x08 */
+ u16 whichSprite; /* 0x04 */
+ u16 tileTag; /* 0x06 */
+ u16 palTag; /* 0x08 */
};
-struct Struct203B158
+struct MonStatusIconObj
{
struct Sprite * sprite; /* 0x00 */
- u16 unk04; /* 0x04 */
- u16 unk06; /* 0x06 */
+ u16 tileTag; /* 0x04 */
+ u16 palTag; /* 0x06 */
};
-struct Struct203B164
+struct PokerusIconObj
{
struct Sprite * sprite; /* 0x00 */
- u16 unk04; /* 0x04 */
- u16 unk06; /* 0x06 */
+ u16 tileTag; /* 0x04 */
+ u16 palTag; /* 0x06 */
};
-struct Struct203B168
+struct ShinyStarObjData
{
struct Sprite * sprite; /* 0x00 */
- u16 unk04; /* 0x04 */
- u16 unk06; /* 0x06 */
+ u16 tileTag; /* 0x04 */
+ u16 palTag; /* 0x06 */
};
static EWRAM_DATA struct PokemonSummaryScreenData * sMonSummaryScreen = NULL;
-static EWRAM_DATA struct Struct203B144 * sUnknown_203B144 = NULL;
-static EWRAM_DATA struct Struct203B148 * sUnknown_203B148[4] = {};
-static EWRAM_DATA struct Struct203B158 * sUnknown_203B158 = NULL;
-static EWRAM_DATA struct Struct203B15C * sUnknown_203B15C = NULL;
-static EWRAM_DATA struct Struct203B160 * sUnknown_203B160 = NULL;
-static EWRAM_DATA struct Struct203B164 * sUnknown_203B164 = NULL;
-static EWRAM_DATA struct Struct203B168 * sUnknown_203B168 = NULL;
+static EWRAM_DATA struct Struct203B144 * sMonSkillsPrinterXpos = NULL;
+static EWRAM_DATA struct MoveSelectionCursor * sMoveSelectionCursorObjs[4] = {};
+static EWRAM_DATA struct MonStatusIconObj * sStatusIcon = NULL;
+static EWRAM_DATA struct HpBarObjs * sHpBarObjs = NULL;
+static EWRAM_DATA struct ExpBarObjs * sExpBarObjs = NULL;
+static EWRAM_DATA struct PokerusIconObj * sPokerusIconObj = NULL;
+static EWRAM_DATA struct ShinyStarObjData * sShinyStarObjData = NULL;
static EWRAM_DATA u8 sLastViewedMonIndex = 0;
-static EWRAM_DATA u8 sUnknown_203B16D = 0;
-static EWRAM_DATA u8 sUnknown_203B16E = 0;
-static EWRAM_DATA struct Struct203B170 * sUnknown_203B170 = NULL;
-
-extern const u32 gUnknown_8E9B750[];
-extern const u32 gUnknown_8E9B950[];
-extern const u32 gUnknown_8E9B598[];
-extern const u32 gUnknown_8E9BA9C[];
-extern const u32 gUnknown_8E9BBCC[];
-extern const u16 gUnknown_8E9B310[];
-extern const u32 gUnknown_8E9A460[];
-extern const u16 gUnknown_8E9B578[];
-extern const u32 gUnknown_8E9BF48[];
-extern const u16 gUnknown_8E9BF28[];
-extern const u32 gUnknown_8E9B4B8[];
-extern const u32 gUnknown_8E9B3F0[];
-extern const u16 gUnknown_8E9B578[];
-
-static const u32 sUnknown_84636C0[] = INCBIN_U32("graphics/interface/pokesummary_unk_84636C0.gbapal");
-static const u16 sUnknown_84636E0[] = INCBIN_U16("graphics/interface/pokesummary_unk_84636E0.gbapal");
-static const u32 sUnknown_8463700[] = INCBIN_U32("graphics/interface/pokesummary_unk_8463700.gbapal");
-static const u16 sUnknown_8463720[] = INCBIN_U16("graphics/interface/pokesummary_unk_8463720.gbapal");
-static const u32 sUnknown_8463740[] = INCBIN_U32("graphics/interface/pokesummary_unk_8463740.4bpp.lz");
-static const u32 sUnknown_846386C[] = INCBIN_U32("graphics/interface/pokesummary_unk_846386C.4bpp.lz");
-
-static const struct OamData sUnknown_846398C =
+static EWRAM_DATA u8 sMoveSelectionCursorPos = 0;
+static EWRAM_DATA u8 sMoveSwapCursorPos = 0;
+static EWRAM_DATA struct MonPicBounceState * sMonPicBounceState = NULL;
+
+extern const u32 gBgTilemap_TrainerMemo_Stats[];
+extern const u32 gBgTilemap_PokeSum_MovesListForDelete[];
+extern const u32 gBgTilemap_TrainerMemo_Details[];
+extern const u32 gBgTilemap_PokeSum_MoveDetailsForDelete[];
+extern const u32 gBgTilemap_TrainerMemo_Egg[];
+extern const u16 gTrainerMemoPal1[];
+extern const u32 gPokeSumBgTiles[];
+extern const u16 gPokeSummary_ExpBarPals[];
+extern const u32 gPokeSummary_StatusAilmentIconTiles[];
+extern const u16 gPokeSummary_StatusAilmentIconPals[];
+extern const u32 gPokeSummary_HpBarTiles[];
+extern const u32 gPokeSummary_ExpBarTiles[];
+extern const u16 gPokeSummary_ExpBarPals[];
+
+static const u32 sBgPal7[] = INCBIN_U32("graphics/interface/pokesummary_unk_84636C0.gbapal");
+static const u16 sMonMarkingSpritePalette[] = INCBIN_U16("graphics/interface/pokesummary_unk_84636E0.gbapal");
+static const u32 sBgPal8[] = INCBIN_U32("graphics/interface/pokesummary_unk_8463700.gbapal");
+static const u16 sMoveSelectionCursorPals[] = INCBIN_U16("graphics/interface/pokesummary_unk_8463720.gbapal");
+static const u32 sMoveSelectionCursorTiles_Left[] = INCBIN_U32("graphics/interface/pokesummary_unk_8463740.4bpp.lz");
+static const u32 sMoveSelectionCursorTiles_Right[] = INCBIN_U32("graphics/interface/pokesummary_unk_846386C.4bpp.lz");
+
+static const struct OamData sMoveSelectionCursorOamData =
{
.y = 0,
.affineMode = ST_OAM_AFFINE_OFF,
@@ -364,25 +363,25 @@ static const struct OamData sUnknown_846398C =
.paletteNum = 0
};
-static const union AnimCmd sUnknown_8463994[] =
+static const union AnimCmd sMoveSelectionCursorOamAnim_Red[] =
{
ANIMCMD_FRAME(0, 20),
ANIMCMD_JUMP(0),
};
-static const union AnimCmd sUnknown_846399C[] =
+static const union AnimCmd sMoveSelectionCursorOamAnim_Blue[] =
{
ANIMCMD_FRAME(0x20, 20),
ANIMCMD_JUMP(0),
};
-static const union AnimCmd * const sUnknown_84639A4[] =
+static const union AnimCmd * const sMoveSelectionCursorOamAnimTable[] =
{
- sUnknown_8463994,
- sUnknown_846399C
+ sMoveSelectionCursorOamAnim_Red,
+ sMoveSelectionCursorOamAnim_Blue
};
-static const struct OamData sUnknown_84639AC = {
+static const struct OamData sStatusAilmentIconOamData = {
.y = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
@@ -397,67 +396,67 @@ static const struct OamData sUnknown_84639AC = {
.paletteNum = 0
};
-static const union AnimCmd sUnknown_84639B4[] =
+static const union AnimCmd sStatusAilmentIconAnim_PSN[] =
{
ANIMCMD_FRAME(0, 20),
ANIMCMD_JUMP(0),
};
-static const union AnimCmd sUnknown_84639BC[] =
+static const union AnimCmd sStatusAilmentIconAnim_PRZ[] =
{
ANIMCMD_FRAME(4, 20),
ANIMCMD_JUMP(0),
};
-static const union AnimCmd sUnknown_84639C4[] =
+static const union AnimCmd sStatusAilmentIconAnim_SLP[] =
{
ANIMCMD_FRAME(8, 20),
ANIMCMD_JUMP(0),
};
-static const union AnimCmd sUnknown_84639CC[] =
+static const union AnimCmd sStatusAilmentIconAnim_FRZ[] =
{
ANIMCMD_FRAME(12, 20),
ANIMCMD_JUMP(0),
};
-static const union AnimCmd sUnknown_84639D4[] =
+static const union AnimCmd sStatusAilmentIconAnim_BRN[] =
{
ANIMCMD_FRAME(16, 20),
ANIMCMD_JUMP(0),
};
-static const union AnimCmd sUnknown_84639DC[] =
+static const union AnimCmd sStatusAilmentIconAnim_PKRS[] =
{
ANIMCMD_FRAME(20, 20),
ANIMCMD_JUMP(0),
};
-static const union AnimCmd sUnknown_84639E4[] =
+static const union AnimCmd sStatusAilmentIconAnim_FNT[] =
{
ANIMCMD_FRAME(24, 20),
ANIMCMD_JUMP(0),
};
-static const union AnimCmd sUnknown_84639EC[] =
+static const union AnimCmd sStatusAilmentIconAnim_Blank[] =
{
ANIMCMD_FRAME(28, 20),
ANIMCMD_JUMP(0),
};
-static const union AnimCmd * const sUnknown_84639F4[] =
+static const union AnimCmd * const sStatusAilmentIconAnimTable[] =
{
- sUnknown_84639B4,
- sUnknown_84639BC,
- sUnknown_84639C4,
- sUnknown_84639CC,
- sUnknown_84639D4,
- sUnknown_84639DC,
- sUnknown_84639E4,
- sUnknown_84639EC
+ sStatusAilmentIconAnim_PSN,
+ sStatusAilmentIconAnim_PRZ,
+ sStatusAilmentIconAnim_SLP,
+ sStatusAilmentIconAnim_FRZ,
+ sStatusAilmentIconAnim_BRN,
+ sStatusAilmentIconAnim_PKRS,
+ sStatusAilmentIconAnim_FNT,
+ sStatusAilmentIconAnim_Blank
};
-static const struct OamData sUnknown_8463A14 = {
+static const struct OamData sHpOrExpBarOamData = {
.y = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
@@ -472,98 +471,98 @@ static const struct OamData sUnknown_8463A14 = {
.paletteNum = 0
};
-static const union AnimCmd sUnknown_8463A1C[] =
+static const union AnimCmd sHpOrExpAnim_0[] =
{
ANIMCMD_FRAME(0, 20),
ANIMCMD_JUMP(0),
};
-static const union AnimCmd sUnknown_8463A24[] =
+static const union AnimCmd sHpOrExpAnim_1[] =
{
ANIMCMD_FRAME(1, 20),
ANIMCMD_JUMP(0),
};
-static const union AnimCmd sUnknown_8463A2C[] =
+static const union AnimCmd sHpOrExpAnim_2[] =
{
ANIMCMD_FRAME(2, 20),
ANIMCMD_JUMP(0),
};
-static const union AnimCmd sUnknown_8463A34[] =
+static const union AnimCmd sHpOrExpAnim_3[] =
{
ANIMCMD_FRAME(3, 20),
ANIMCMD_JUMP(0),
};
-static const union AnimCmd sUnknown_8463A3C[] =
+static const union AnimCmd sHpOrExpAnim_4[] =
{
ANIMCMD_FRAME(4, 20),
ANIMCMD_JUMP(0),
};
-static const union AnimCmd sUnknown_8463A44[] =
+static const union AnimCmd sHpOrExpAnim_5[] =
{
ANIMCMD_FRAME(5, 20),
ANIMCMD_JUMP(0),
};
-static const union AnimCmd sUnknown_8463A4C[] =
+static const union AnimCmd sHpOrExpAnim_6[] =
{
ANIMCMD_FRAME(6, 20),
ANIMCMD_JUMP(0),
};
-static const union AnimCmd sUnknown_8463A54[] =
+static const union AnimCmd sHpOrExpAnim_7[] =
{
ANIMCMD_FRAME(7, 20),
ANIMCMD_JUMP(0),
};
-static const union AnimCmd sUnknown_8463A5C[] =
+static const union AnimCmd sHpOrExpAnim_8[] =
{
ANIMCMD_FRAME(8, 20),
ANIMCMD_JUMP(0),
};
-static const union AnimCmd sUnknown_8463A64[] =
+static const union AnimCmd sHpOrExpAnim_9[] =
{
ANIMCMD_FRAME(9, 20),
ANIMCMD_JUMP(0),
};
-static const union AnimCmd sUnknown_8463A6C[] =
+static const union AnimCmd sHpOrExpAnim_10[] =
{
ANIMCMD_FRAME(10, 20),
ANIMCMD_JUMP(0),
};
-static const union AnimCmd sUnknown_8463A74[] =
+static const union AnimCmd sHpOrExpAnim_11[] =
{
ANIMCMD_FRAME(11, 20),
ANIMCMD_JUMP(0),
};
-static const union AnimCmd * const sUnknown_8463A7C[] =
-{
- sUnknown_8463A1C,
- sUnknown_8463A24,
- sUnknown_8463A2C,
- sUnknown_8463A34,
- sUnknown_8463A3C,
- sUnknown_8463A44,
- sUnknown_8463A4C,
- sUnknown_8463A54,
- sUnknown_8463A5C,
- sUnknown_8463A64,
- sUnknown_8463A6C,
- sUnknown_8463A74
+static const union AnimCmd * const sHpOrExpBarAnimTable[] =
+{
+ sHpOrExpAnim_0,
+ sHpOrExpAnim_1,
+ sHpOrExpAnim_2,
+ sHpOrExpAnim_3,
+ sHpOrExpAnim_4,
+ sHpOrExpAnim_5,
+ sHpOrExpAnim_6,
+ sHpOrExpAnim_7,
+ sHpOrExpAnim_8,
+ sHpOrExpAnim_9,
+ sHpOrExpAnim_10,
+ sHpOrExpAnim_11
};
-static const u16 sUnknown_8463AAC[] = INCBIN_U16("graphics/interface/pokesummary_unk_8463AAC.gbapal");
-static const u16 sUnknown_8463ACC[] = INCBIN_U16("graphics/interface/pokesummary_unk_8463ACC.gbapal");
+static const u16 sPokeSummary_HpBarPalYellow[] = INCBIN_U16("graphics/interface/pokesummary_unk_8463AAC.gbapal");
+static const u16 sPokeSummary_HpBarPalRed[] = INCBIN_U16("graphics/interface/pokesummary_unk_8463ACC.gbapal");
-static const struct OamData sUnknown_8463AEC = {
+static const struct OamData sPokerusIconObjOamData = {
.y = 0,
.affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL,
@@ -578,21 +577,21 @@ static const struct OamData sUnknown_8463AEC = {
.paletteNum = 0
};
-static const union AnimCmd sUnknown_8463AF4[] =
+static const union AnimCmd sPokerusIconObjAnim0[] =
{
ANIMCMD_FRAME(0, 20),
ANIMCMD_JUMP(0),
};
-static const union AnimCmd * const sUnknown_8463AFC[] =
+static const union AnimCmd * const sPokerusIconObjAnimTable[] =
{
- sUnknown_8463AF4
+ sPokerusIconObjAnim0
};
-static const u16 sUnknown_8463B00[] = INCBIN_U16("graphics/interface/pokesummary_unk_8463B00.gbapal");
-static const u32 sUnknown_8463B20[] = INCBIN_U32("graphics/interface/pokesummary_unk_8463B20.4bpp.lz");
+static const u16 sPokerusIconObjPal[] = INCBIN_U16("graphics/interface/pokesummary_unk_8463B00.gbapal");
+static const u32 sPokerusIconObjTiles[] = INCBIN_U32("graphics/interface/pokesummary_unk_8463B20.4bpp.lz");
-static const struct OamData sUnknown_8463B30 =
+static const struct OamData sStarObjOamData =
{
.y = 0,
.affineMode = ST_OAM_AFFINE_OFF,
@@ -608,49 +607,49 @@ static const struct OamData sUnknown_8463B30 =
.paletteNum = 0
};
-static const union AnimCmd sUnknown_8463B38[] =
+static const union AnimCmd sStarObjAnim0[] =
{
ANIMCMD_FRAME(1, 20),
ANIMCMD_JUMP(0),
};
-static const union AnimCmd * const sUnknown_8463B40[] =
+static const union AnimCmd * const sStarObjAnimTable[] =
{
- sUnknown_8463B38
+ sStarObjAnim0
};
-static const u16 sUnknown_8463B44[] = INCBIN_U16( "graphics/interface/pokesummary_unk_8463B44.gbapal");
-static const u32 sUnknown_8463B64[] = INCBIN_U32( "graphics/interface/pokesummary_unk_8463B64.4bpp.lz");
-static const u32 sUnknown_8463B88[] = INCBIN_U32( "graphics/interface/pokesummary_unk_8463B88.bin.lz");
-static const u32 sUnknown_8463C80[] = INCBIN_U32( "graphics/interface/pokesummary_unk_8463C80.bin.lz");
+static const u16 sStarObjPal[] = INCBIN_U16( "graphics/interface/pokesummary_unk_8463B44.gbapal");
+static const u32 sStarObjTiles[] = INCBIN_U32( "graphics/interface/pokesummary_unk_8463B64.4bpp.lz");
+static const u32 sBgTilemap_MovesInfoPage[] = INCBIN_U32( "graphics/interface/pokesummary_unk_8463B88.bin.lz");
+static const u32 sBgTilemap_MovesPage[] = INCBIN_U32( "graphics/interface/pokesummary_unk_8463C80.bin.lz");
#include "data/text/nature_names.h"
-static const u8 * const sUnknown_8463EC4[] = {
- gUnknown_8419B44,
- gUnknown_8419B7B,
- gUnknown_8419BAE,
- gUnknown_8419BDB
+static const u8 * const sEggHatchTimeTexts[] = {
+ gText_PokeSum_EggHatch_LongTime,
+ gText_PokeSum_EggHatch_SomeTime,
+ gText_PokeSum_EggHatch_Soon,
+ gText_PokeSum_EggHatch_AlmostReady
};
-static const u8 * const sUnknown_8463ED4[] = {
- gUnknown_8419A3D,
- gUnknown_8419B18,
- gUnknown_8419A6E,
- gUnknown_8419B18,
- gUnknown_8419AA2,
- gUnknown_8419ADE,
- gUnknown_8419B18
+static const u8 * const sEggOriginTexts[] = {
+ gText_PokeSum_EggOrigin_DayCare,
+ gText_PokeSum_EggOrigin_Trade,
+ gText_PokeSum_EggOrigin_TravelingMan,
+ gText_PokeSum_EggOrigin_Trade,
+ gText_PokeSum_EggOrigin_NicePlace,
+ gText_PokeSum_EggOrigin_Spa,
+ gText_PokeSum_EggOrigin_Trade
};
-static const u8 sUnknown_8463EF0[][3] = {
+static const u8 sPrintMoveTextColors[][3] = {
{0, 7, 8},
{0, 1, 2},
{0, 3, 4},
{0, 5, 6}
};
-static const struct BgTemplate sUnknown_8463EFC[] =
+static const struct BgTemplate sBgTempaltes[] =
{
{
.bg = 0,
@@ -690,9 +689,30 @@ static const struct BgTemplate sUnknown_8463EFC[] =
}
};
-static const struct WindowTemplate sUnknown_8463F0C[] =
+#define POKESUM_WIN_PAGE_NAME 0
+#define POKESUM_WIN_CONTROLS 1
+#define POKESUM_WIN_LVL_NICK 2
+#define POKESUM_WIN_RIGHT_PANE 3
+#define POKESUM_WIN_TRAINER_MEMO 4
+
+#define POKESUM_WIN_INFO_3 3
+#define POKESUM_WIN_INFO_4 4
+#define POKESUM_WIN_INFO_5 5
+#define POKESUM_WIN_INFO_6 6
+
+#define POKESUM_WIN_SKILLS_3 3
+#define POKESUM_WIN_SKILLS_4 4
+#define POKESUM_WIN_SKILLS_5 5
+#define POKESUM_WIN_SKILLS_6 6
+
+#define POKESUM_WIN_MOVES_3 3
+#define POKESUM_WIN_MOVES_4 4
+#define POKESUM_WIN_MOVES_5 5
+#define POKESUM_WIN_MOVES_6 6
+
+static const struct WindowTemplate sWindowTemplates_Permanent_Bg1[] =
{
- {
+ [POKESUM_WIN_PAGE_NAME] = {
.bg = 1,
.tilemapLeft = 0,
.tilemapTop = 0,
@@ -701,7 +721,7 @@ static const struct WindowTemplate sUnknown_8463F0C[] =
.paletteNum = 7,
.baseBlock = 0x0258
},
- {
+ [POKESUM_WIN_CONTROLS] = {
.bg = 1,
.tilemapLeft = 19,
.tilemapTop = 0,
@@ -710,7 +730,7 @@ static const struct WindowTemplate sUnknown_8463F0C[] =
.paletteNum = 7,
.baseBlock = 0x0272
},
- {
+ [POKESUM_WIN_LVL_NICK] = {
.bg = 1,
.tilemapLeft = 0,
.tilemapTop = 2,
@@ -721,7 +741,7 @@ static const struct WindowTemplate sUnknown_8463F0C[] =
}
};
-static const struct WindowTemplate sUnknown_8463F24[] =
+static const struct WindowTemplate sWindowTemplates_Permanent_Bg2[] =
{
{
.bg = 2,
@@ -752,9 +772,9 @@ static const struct WindowTemplate sUnknown_8463F24[] =
},
};
-static const struct WindowTemplate sUnknown_8463F3C[] =
+static const struct WindowTemplate sWindowTemplates_Info[] =
{
- {
+ [POKESUM_WIN_INFO_3 - 3] = {
.bg = 0,
.tilemapLeft = 15,
.tilemapTop = 2,
@@ -763,7 +783,7 @@ static const struct WindowTemplate sUnknown_8463F3C[] =
.paletteNum = 6,
.baseBlock = 0x0001
},
- {
+ [POKESUM_WIN_INFO_4 - 3] = {
.bg = 0,
.tilemapLeft = 1,
.tilemapTop = 14,
@@ -772,7 +792,7 @@ static const struct WindowTemplate sUnknown_8463F3C[] =
.paletteNum = 6,
.baseBlock = 0x00b5
},
- {
+ [POKESUM_WIN_INFO_5 - 3] = {
.bg = 0,
.tilemapLeft = 0,
.tilemapTop = 0,
@@ -781,7 +801,7 @@ static const struct WindowTemplate sUnknown_8463F3C[] =
.paletteNum = 0,
.baseBlock = 0x0000
},
- {
+ [POKESUM_WIN_INFO_6 - 3] = {
.bg = 0,
.tilemapLeft = 0,
.tilemapTop = 0,
@@ -792,9 +812,9 @@ static const struct WindowTemplate sUnknown_8463F3C[] =
},
};
-static const struct WindowTemplate sUnknown_8463F5C[] =
+static const struct WindowTemplate sWindowTemplates_Skills[] =
{
- {
+ [POKESUM_WIN_SKILLS_3 - 3] = {
.bg = 0,
.tilemapLeft = 20,
.tilemapTop = 2,
@@ -803,7 +823,7 @@ static const struct WindowTemplate sUnknown_8463F5C[] =
.paletteNum = 6,
.baseBlock = 0x0001
},
- {
+ [POKESUM_WIN_SKILLS_4 - 3] = {
.bg = 0,
.tilemapLeft = 6,
.tilemapTop = 12,
@@ -812,7 +832,7 @@ static const struct WindowTemplate sUnknown_8463F5C[] =
.paletteNum = 6,
.baseBlock = 0x008d
},
- {
+ [POKESUM_WIN_SKILLS_5 - 3] = {
.bg = 0,
.tilemapLeft = 1,
.tilemapTop = 16,
@@ -821,7 +841,7 @@ static const struct WindowTemplate sUnknown_8463F5C[] =
.paletteNum = 6,
.baseBlock = 0x00c5
},
- {
+ [POKESUM_WIN_SKILLS_6 - 3] = {
.bg = 0,
.tilemapLeft = 0,
.tilemapTop = 0,
@@ -832,9 +852,9 @@ static const struct WindowTemplate sUnknown_8463F5C[] =
},
};
-static const struct WindowTemplate sUnknown_8463F7C[] =
+static const struct WindowTemplate sWindowTemplates_Moves[] =
{
- {
+ [POKESUM_WIN_MOVES_3 - 3] = {
.bg = 0,
.tilemapLeft = 20,
.tilemapTop = 2,
@@ -843,7 +863,7 @@ static const struct WindowTemplate sUnknown_8463F7C[] =
.paletteNum = 8,
.baseBlock = 0x0001
},
- {
+ [POKESUM_WIN_MOVES_4 - 3] = {
.bg = 0,
.tilemapLeft = 0,
.tilemapTop = 7,
@@ -852,7 +872,7 @@ static const struct WindowTemplate sUnknown_8463F7C[] =
.paletteNum = 6,
.baseBlock = 0x00b5
},
- {
+ [POKESUM_WIN_MOVES_5 - 3] = {
.bg = 0,
.tilemapLeft = 15,
.tilemapTop = 2,
@@ -861,7 +881,7 @@ static const struct WindowTemplate sUnknown_8463F7C[] =
.paletteNum = 6,
.baseBlock = 0x0178
},
- {
+ [POKESUM_WIN_MOVES_6 - 3] = {
.bg = 0,
.tilemapLeft = 6,
.tilemapTop = 4,
@@ -872,7 +892,7 @@ static const struct WindowTemplate sUnknown_8463F7C[] =
},
};
-static const struct WindowTemplate sUnknown_8463F9C[] =
+static const struct WindowTemplate sWindowTemplates_Dummy[] =
{
{
.bg = 255,
@@ -886,7 +906,7 @@ static const struct WindowTemplate sUnknown_8463F9C[] =
};
-static const u8 sUnknown_8463FA4[][3] =
+static const u8 sLevelNickTextColors[][3] =
{
{0, 14, 10},
{0, 1, 2},
@@ -896,51 +916,51 @@ static const u8 sUnknown_8463FA4[][3] =
{0, 11, 10},
};
-static const u8 ALIGNED(4) sUnknown_8463FB8[] =
+static const u8 ALIGNED(4) sMultiBattlePartyOrder[] =
{
0, 2, 3, 1, 4, 5
};
-static const s8 sUnknown_8463FBE[] =
+static const s8 sMonPicBounceYDelta_Under60[] =
{
-1, 0, 1
};
-static const s8 sUnknown_8463FC1[] =
+static const s8 sMonPicBounceYDelta_60to80[] =
{
-2, -1, 0, 1, 2
};
-static const s8 sUnknown_8463FC6[] =
+static const s8 sMonPicBounceYDelta_80to99[] =
{
-3, -2, -1, 0, 1, 2, 3
};
-static const s8 sUnknown_8463FCD[] =
+static const s8 sMonPicBounceYDelta_Full[] =
{
-5, -3, -1, 0, 1, 3, 5
};
-static const s8 sUnknown_8463FD4[] =
+static const s8 sEggPicShakeXDelta_ItWillTakeSomeTime[] =
{
1, 1, 0, -1, -1, 0, -1, -1, 0, 1, 1
};
-static const s8 sUnknown_8463FDF[] =
+static const s8 sEggPicShakeXDelta_OccasionallyMoves[] =
{
2, 1, 0, -1, -2, 0, -2, -1, 0, 1, 2
};
-static const s8 sUnknown_8463FEA[] =
+static const s8 sEggPicShakeXDelta_AlmostReadyToHatch[] =
{
2, 1, 1, 0, -1, -1, -2, 0, -2, -1, -1, 0, 1, 1, 2
};
-static const u16 * const sUnknown_8463FFC[] =
+static const u16 * const sHpBarPals[] =
{
- gUnknown_8E9B578,
- sUnknown_8463AAC,
- sUnknown_8463ACC,
+ gPokeSummary_ExpBarPals,
+ sPokeSummary_HpBarPalYellow,
+ sPokeSummary_HpBarPalRed,
};
@@ -956,7 +976,7 @@ static const u16 * const sUnknown_8463FFC[] =
void ShowPokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx, MainCallback savedCallback, u8 mode)
{
sMonSummaryScreen = AllocZeroed(sizeof(struct PokemonSummaryScreenData));
- sUnknown_203B144 = AllocZeroed(sizeof(struct Struct203B144));
+ sMonSkillsPrinterXpos = AllocZeroed(sizeof(struct Struct203B144));
if (sMonSummaryScreen == NULL)
{
@@ -966,8 +986,8 @@ void ShowPokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx,
sLastViewedMonIndex = cursorPos;
- sUnknown_203B16D = 0;
- sUnknown_203B16E = 0;
+ sMoveSelectionCursorPos = 0;
+ sMoveSwapCursorPos = 0;
sMonSummaryScreen->savedCallback = savedCallback;
sMonSummaryScreen->monList.mons = party;
@@ -1004,58 +1024,58 @@ void ShowPokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx,
}
sMonSummaryScreen->state3270 = 0;
- sMonSummaryScreen->unk3274 = 0;
- sMonSummaryScreen->unk3278 = 0;
- sMonSummaryScreen->unk327C = 0;
+ sMonSummaryScreen->summarySetupStep = 0;
+ sMonSummaryScreen->loadBgGfxStep = 0;
+ sMonSummaryScreen->spriteCreationStep = 0;
- sMonSummaryScreen->unk3238 = 0;
- sMonSummaryScreen->unk323C = 2;
- sMonSummaryScreen->unk3240 = 1;
- sMonSummaryScreen->unk3244 = FALSE;
+ sMonSummaryScreen->whichBgLayerToTranslate = 0;
+ sMonSummaryScreen->skillsPageBgNum = 2;
+ sMonSummaryScreen->infoAndMovesPageBgNum = 1;
+ sMonSummaryScreen->flippingPages = FALSE;
sMonSummaryScreen->unk3228 = 0;
sMonSummaryScreen->unk322C = 1;
- sub_8138B8C(&sMonSummaryScreen->currentMon);
+ BufferSelectedMonData(&sMonSummaryScreen->currentMon);
sMonSummaryScreen->isEgg = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_IS_EGG);
sMonSummaryScreen->isBadEgg = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SANITY_IS_BAD_EGG);
if (sMonSummaryScreen->isBadEgg == TRUE)
sMonSummaryScreen->isEgg = TRUE;
- sMonSummaryScreen->unk3300[0] = 0xff;
- SetMainCallback2(sub_8135C34);
+ sMonSummaryScreen->lastPageFlipDirection = 0xff;
+ SetMainCallback2(CB2_SetUpPSS);
}
void ShowSelectMovePokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx, MainCallback savedCallback, u16 a4)
{
ShowPokemonSummaryScreen(party, cursorPos, lastIdx, savedCallback, PSS_MODE_SELECT_MOVE);
- sMonSummaryScreen->unk325A[4] = a4;
+ sMonSummaryScreen->moveIds[4] = a4;
}
-static u8 sub_813476C(u8 a0)
+static u8 PageFlipInputIsDisabled(u8 direction)
{
- if (sMonSummaryScreen->unk301C == TRUE && sMonSummaryScreen->unk3224 != a0)
+ if (sMonSummaryScreen->inhibitPageFlipInput == TRUE && sMonSummaryScreen->pageFlipDirection != direction)
return TRUE;
return FALSE;
}
-u32 sub_81347A4(u8 a0)
+bool32 IsPageFlipInput(u8 direction)
{
if (sMonSummaryScreen->isEgg)
return FALSE;
- if (sMonSummaryScreen->unk3300[0] != 0xff && sMonSummaryScreen->unk3300[0] == a0)
+ if (sMonSummaryScreen->lastPageFlipDirection != 0xff && sMonSummaryScreen->lastPageFlipDirection == direction)
{
- sMonSummaryScreen->unk3300[0] = 0xff;
+ sMonSummaryScreen->lastPageFlipDirection = 0xff;
return TRUE;
}
- if (sub_813476C(a0))
+ if (PageFlipInputIsDisabled(direction))
return FALSE;
- switch (a0)
+ switch (direction)
{
case 1:
if (JOY_NEW(DPAD_RIGHT))
@@ -1078,81 +1098,81 @@ u32 sub_81347A4(u8 a0)
return FALSE;
}
-static void sub_8134840(u8 taskId)
+static void Task_InputHandler_Info(u8 taskId)
{
switch (sMonSummaryScreen->state3270) {
- case PSS_STATE3270_0:
+ case PSS_STATE3270_FADEIN:
BeginNormalPaletteFade(0xffffffff, 0, 16, 0, 0);
- sMonSummaryScreen->state3270 = PSS_STATE3270_1;
+ sMonSummaryScreen->state3270 = PSS_STATE3270_PLAYCRY;
break;
- case PSS_STATE3270_1:
+ case PSS_STATE3270_PLAYCRY:
if (!gPaletteFade.active)
{
- sub_813B784();
- sMonSummaryScreen->state3270 = PSS_STATE3270_2;
+ PokeSum_TryPlayMonCry();
+ sMonSummaryScreen->state3270 = PSS_STATE3270_HANDLEINPUT;
return;
}
- sMonSummaryScreen->state3270 = PSS_STATE3270_1;
+ sMonSummaryScreen->state3270 = PSS_STATE3270_PLAYCRY;
break;
- case PSS_STATE3270_2:
+ case PSS_STATE3270_HANDLEINPUT:
if (MenuHelpers_CallLinkSomething() == TRUE)
return;
- else if (sub_800B270() == TRUE)
+ else if (LinkRecvQueueLengthMoreThan2() == TRUE)
return;
- else if (FuncIsActiveTask(sub_813B3F0))
+ else if (FuncIsActiveTask(Task_PokeSum_SwitchDisplayedPokemon))
return;
if (sMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO)
{
- if (sub_81347A4(1) == TRUE)
+ if (IsPageFlipInput(1) == TRUE)
{
- if (FuncIsActiveTask(sub_8134BAC))
+ if (FuncIsActiveTask(Task_PokeSum_FlipPages))
{
- sMonSummaryScreen->unk3300[0] = 1;
+ sMonSummaryScreen->lastPageFlipDirection = 1;
return;
}
else if (sMonSummaryScreen->curPageIndex < PSS_PAGE_MOVES)
{
PlaySE(SE_SELECT);
HideBg(0);
- sMonSummaryScreen->unk3224 = 1;
- sub_8138414(sMonSummaryScreen->curPageIndex);
+ sMonSummaryScreen->pageFlipDirection = 1;
+ PokeSum_RemoveWindows(sMonSummaryScreen->curPageIndex);
sMonSummaryScreen->curPageIndex++;
- sMonSummaryScreen->state3270 = PSS_STATE3270_3;
+ sMonSummaryScreen->state3270 = PSS_STATE3270_FLIPPAGES;
}
return;
}
- else if (sub_81347A4(0) == TRUE)
+ else if (IsPageFlipInput(0) == TRUE)
{
- if (FuncIsActiveTask(sub_8134BAC))
+ if (FuncIsActiveTask(Task_PokeSum_FlipPages))
{
- sMonSummaryScreen->unk3300[0] = 0;
+ sMonSummaryScreen->lastPageFlipDirection = 0;
return;
}
else if (sMonSummaryScreen->curPageIndex > PSS_PAGE_INFO)
{
PlaySE(SE_SELECT);
HideBg(0);
- sMonSummaryScreen->unk3224 = 0;
- sub_8138414(sMonSummaryScreen->curPageIndex);
+ sMonSummaryScreen->pageFlipDirection = 0;
+ PokeSum_RemoveWindows(sMonSummaryScreen->curPageIndex);
sMonSummaryScreen->curPageIndex--;
- sMonSummaryScreen->state3270 = PSS_STATE3270_3;
+ sMonSummaryScreen->state3270 = PSS_STATE3270_FLIPPAGES;
}
return;
}
}
- if ((!FuncIsActiveTask(sub_8134BAC)) || FuncIsActiveTask(sub_813B3F0))
+ if ((!FuncIsActiveTask(Task_PokeSum_FlipPages)) || FuncIsActiveTask(Task_PokeSum_SwitchDisplayedPokemon))
{
if (JOY_NEW(DPAD_UP))
{
- sub_813B120(taskId, -1);
+ PokeSum_SeekToNextMon(taskId, -1);
return;
}
else if (JOY_NEW(DPAD_DOWN))
{
- sub_813B120(taskId, 1);
+ PokeSum_SeekToNextMon(taskId, 1);
return;
}
else if (JOY_NEW(A_BUTTON))
@@ -1160,74 +1180,74 @@ static void sub_8134840(u8 taskId)
if (sMonSummaryScreen->curPageIndex == PSS_PAGE_INFO)
{
PlaySE(SE_SELECT);
- sMonSummaryScreen->state3270 = PSS_STATE3270_4;
+ sMonSummaryScreen->state3270 = PSS_STATE3270_ATEXIT_FADEOUT;
}
else if (sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES)
{
PlaySE(SE_SELECT);
- sMonSummaryScreen->unk3224 = 1;
- sub_8138414(sMonSummaryScreen->curPageIndex);
+ sMonSummaryScreen->pageFlipDirection = 1;
+ PokeSum_RemoveWindows(sMonSummaryScreen->curPageIndex);
sMonSummaryScreen->curPageIndex++;
- sMonSummaryScreen->state3270 = PSS_STATE3270_3;
+ sMonSummaryScreen->state3270 = PSS_STATE3270_FLIPPAGES;
}
return;
}
else if (JOY_NEW(B_BUTTON))
{
- sMonSummaryScreen->state3270 = PSS_STATE3270_4;
+ sMonSummaryScreen->state3270 = PSS_STATE3270_ATEXIT_FADEOUT;
}
}
break;
- case PSS_STATE3270_3:
+ case PSS_STATE3270_FLIPPAGES:
if (sMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO)
{
- CreateTask(sub_8134BAC, 0);
- sMonSummaryScreen->state3270 = PSS_STATE3270_2;
+ CreateTask(Task_PokeSum_FlipPages, 0);
+ sMonSummaryScreen->state3270 = PSS_STATE3270_HANDLEINPUT;
}
else
{
- gTasks[sMonSummaryScreen->unk3018].func = sub_8134E84;
- sMonSummaryScreen->state3270 = PSS_STATE3270_2;
+ gTasks[sMonSummaryScreen->inputHandlerTaskId].func = Task_FlipPages_FromInfo;
+ sMonSummaryScreen->state3270 = PSS_STATE3270_HANDLEINPUT;
}
break;
- case PSS_STATE3270_4:
+ case PSS_STATE3270_ATEXIT_FADEOUT:
BeginNormalPaletteFade(0xffffffff, 0, 0, 16, 0);
- sMonSummaryScreen->state3270 = PSS_STATE3270_5;
+ sMonSummaryScreen->state3270 = PSS_STATE3270_ATEXIT_WAITLINKDELAY;
break;
- case PSS_STATE3270_5:
+ case PSS_STATE3270_ATEXIT_WAITLINKDELAY:
if (Overworld_LinkRecvQueueLengthMoreThan2() == TRUE)
return;
- else if (sub_800B270() == TRUE)
+ else if (LinkRecvQueueLengthMoreThan2() == TRUE)
return;
- sMonSummaryScreen->state3270 = PSS_STATE3270_6;
+ sMonSummaryScreen->state3270 = PSS_STATE3270_ATEXIT_WAITFADE;
break;
default:
if (!gPaletteFade.active)
- sub_8137E64(taskId);
+ Task_DestroyResourcesOnExit(taskId);
break;
}
}
-static void sub_8134BAC(u8 taskId)
+static void Task_PokeSum_FlipPages(u8 taskId)
{
s16 * data = gTasks[taskId].data;
switch (data[0])
{
case 0:
- sub_8135638();
- sub_81356EC();
+ PokeSum_HideSpritesBeforePageFlip();
+ PokeSum_ShowSpritesBeforePageFlip();
sMonSummaryScreen->lockMovesFlag = TRUE;
- sMonSummaryScreen->unk301C = TRUE;
- sub_813B750(sMonSummaryScreen->curPageIndex);
- sub_8138280(sMonSummaryScreen->curPageIndex);
+ sMonSummaryScreen->inhibitPageFlipInput = TRUE;
+ PokeSum_UpdateWin1ActiveFlag(sMonSummaryScreen->curPageIndex);
+ PokeSum_AddWindows(sMonSummaryScreen->curPageIndex);
break;
case 1:
if (sMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO)
{
- if (!(sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES && sMonSummaryScreen->unk3224 == 0))
+ if (!(sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES && sMonSummaryScreen->pageFlipDirection == 0))
{
FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20);
CopyBgTilemapBufferToVram(0);
@@ -1239,15 +1259,15 @@ static void sub_8134BAC(u8 taskId)
FillBgTilemapBufferRect_Palette0(2, 0, 0, 2, 15, 2);
break;
case 2:
- sub_8135AA4();
- sub_8135B90();
- sub_8138538();
- sub_8137D28(sMonSummaryScreen->curPageIndex);
+ PokeSum_CopyNewBgTilemapBeforePageFlip_2();
+ PokeSum_CopyNewBgTilemapBeforePageFlip();
+ PokeSum_DrawBg3Tilemap();
+ PokeSum_PrintPageHeaderText(sMonSummaryScreen->curPageIndex);
break;
case 3:
- CopyWindowToVram(sMonSummaryScreen->unk3000[0], 2);
- CopyWindowToVram(sMonSummaryScreen->unk3000[1], 2);
- CopyWindowToVram(sMonSummaryScreen->unk3000[2], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[POKESUM_WIN_PAGE_NAME], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[POKESUM_WIN_CONTROLS], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[POKESUM_WIN_LVL_NICK], 2);
break;
case 4:
if (!IsDma3ManagerBusyWithBgCopy())
@@ -1261,27 +1281,27 @@ static void sub_8134BAC(u8 taskId)
break;
case 5:
- sub_8135514();
- sMonSummaryScreen->unk3244 = TRUE;
+ PokeSum_InitBgCoordsBeforePageFlips();
+ sMonSummaryScreen->flippingPages = TRUE;
break;
case 6:
- if (!sub_81357A0(sMonSummaryScreen->unk3224))
+ if (!PokeSum_IsPageFlipFinished(sMonSummaryScreen->pageFlipDirection))
return;
break;
case 7:
- sub_8136F4C();
+ PokeSum_PrintRightPaneText();
if (sMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO)
- sub_81374E8();
+ PokeSum_PrintBottomPaneText();
- sub_8137BD0();
- sub_8138A38();
+ PokeSum_PrintAbilityDataOrMoveTypes();
+ PokeSum_PrintMonTypeIcons();
break;
case 8:
- CopyWindowToVram(sMonSummaryScreen->unk3000[3], 2);
- CopyWindowToVram(sMonSummaryScreen->unk3000[4], 2);
- CopyWindowToVram(sMonSummaryScreen->unk3000[5], 2);
- CopyWindowToVram(sMonSummaryScreen->unk3000[6], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[POKESUM_WIN_TRAINER_MEMO], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[5], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[6], 2);
break;
case 9:
if (!IsDma3ManagerBusyWithBgCopy())
@@ -1294,34 +1314,34 @@ static void sub_8134BAC(u8 taskId)
break;
default:
- sub_8138440();
+ PokeSum_SetHelpContext();
if (sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO)
- gTasks[sMonSummaryScreen->unk3018].func = sub_8138CD8;
+ gTasks[sMonSummaryScreen->inputHandlerTaskId].func = Task_HandleInput_SelectMove;
DestroyTask(taskId);
data[0] = 0;
sMonSummaryScreen->lockMovesFlag = FALSE;
- sMonSummaryScreen->unk301C = FALSE;
+ sMonSummaryScreen->inhibitPageFlipInput = FALSE;
return;
}
data[0]++;
}
-static void sub_8134E84(u8 taskId)
+static void Task_FlipPages_FromInfo(u8 taskId)
{
- switch (sMonSummaryScreen->unk3284)
+ switch (sMonSummaryScreen->state3284)
{
case 0:
sMonSummaryScreen->lockMovesFlag = TRUE;
- sMonSummaryScreen->unk301C = TRUE;
- sub_8138280(sMonSummaryScreen->curPageIndex);
+ sMonSummaryScreen->inhibitPageFlipInput = TRUE;
+ PokeSum_AddWindows(sMonSummaryScreen->curPageIndex);
break;
case 1:
if (sMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO)
{
- if (!(sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES && sMonSummaryScreen->unk3224 == 0))
+ if (!(sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES && sMonSummaryScreen->pageFlipDirection == 0))
{
FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20);
CopyBgTilemapBufferToVram(0);
@@ -1334,23 +1354,23 @@ static void sub_8134E84(u8 taskId)
FillBgTilemapBufferRect_Palette0(2, 0, 0, 2, 15, 2);
break;
case 2:
- sub_8135638();
- sub_813B750(sMonSummaryScreen->curPageIndex);
- sub_8135B90();
- sub_8138538();
- sub_8135AA4();
+ PokeSum_HideSpritesBeforePageFlip();
+ PokeSum_UpdateWin1ActiveFlag(sMonSummaryScreen->curPageIndex);
+ PokeSum_CopyNewBgTilemapBeforePageFlip();
+ PokeSum_DrawBg3Tilemap();
+ PokeSum_CopyNewBgTilemapBeforePageFlip_2();
break;
case 3:
- sub_8136DA4(gUnknown_8419C39);
+ PokeSum_PrintPageName(gText_PokeSum_PageName_KnownMoves);
if (!(gMain.inBattle || gReceivedRemoteLinkPlayers))
- sub_8136DF0(gUnknown_8419C92);
+ PokeSum_PrintControlsString(gText_PokeSum_Controls_PickSwitch);
else
- sub_8136DF0(gUnknown_8419CA2);
+ PokeSum_PrintControlsString(gText_PokeSum_Controls_Pick);
break;
case 4:
- CopyWindowToVram(sMonSummaryScreen->unk3000[0], 2);
- CopyWindowToVram(sMonSummaryScreen->unk3000[1], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[POKESUM_WIN_PAGE_NAME], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[POKESUM_WIN_CONTROLS], 2);
break;
case 5:
if (!IsDma3ManagerBusyWithBgCopy())
@@ -1364,37 +1384,37 @@ static void sub_8134E84(u8 taskId)
break;
case 6:
- sub_8136F4C();
- sub_8137BD0();
- CopyWindowToVram(sMonSummaryScreen->unk3000[3], 2);
- CopyWindowToVram(sMonSummaryScreen->unk3000[5], 2);
+ PokeSum_PrintRightPaneText();
+ PokeSum_PrintAbilityDataOrMoveTypes();
+ CopyWindowToVram(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[5], 2);
break;
case 7:
if (!IsDma3ManagerBusyWithBgCopy())
{
CopyBgTilemapBufferToVram(0);
- sub_8135514();
- sMonSummaryScreen->unk3244 = TRUE;
+ PokeSum_InitBgCoordsBeforePageFlips();
+ sMonSummaryScreen->flippingPages = TRUE;
}
else
return;
break;
case 8:
- if (!sub_81357A0(sMonSummaryScreen->unk3224))
+ if (!PokeSum_IsPageFlipFinished(sMonSummaryScreen->pageFlipDirection))
return;
- sub_81374E8();
- CopyWindowToVram(sMonSummaryScreen->unk3000[4], 2);
+ PokeSum_PrintBottomPaneText();
+ CopyWindowToVram(sMonSummaryScreen->windowIds[POKESUM_WIN_TRAINER_MEMO], 2);
break;
case 9:
- sub_8138A38();
- sub_8136E50(gUnknown_8419C45);
+ PokeSum_PrintMonTypeIcons();
+ PrintMonLevelNickOnWindow2(gText_PokeSum_NoData);
break;
case 10:
- sub_81356EC();
- CopyWindowToVram(sMonSummaryScreen->unk3000[6], 2);
- CopyWindowToVram(sMonSummaryScreen->unk3000[2], 2);
+ PokeSum_ShowSpritesBeforePageFlip();
+ CopyWindowToVram(sMonSummaryScreen->windowIds[6], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[POKESUM_WIN_LVL_NICK], 2);
break;
case 11:
if (!IsDma3ManagerBusyWithBgCopy())
@@ -1408,30 +1428,30 @@ static void sub_8134E84(u8 taskId)
break;
default:
- sub_8138440();
- gTasks[sMonSummaryScreen->unk3018].func = sub_8138CD8;
- sMonSummaryScreen->unk3284 = 0;
+ PokeSum_SetHelpContext();
+ gTasks[sMonSummaryScreen->inputHandlerTaskId].func = Task_HandleInput_SelectMove;
+ sMonSummaryScreen->state3284 = 0;
sMonSummaryScreen->lockMovesFlag = FALSE;
- sMonSummaryScreen->unk301C = FALSE;
+ sMonSummaryScreen->inhibitPageFlipInput = FALSE;
return;
}
- sMonSummaryScreen->unk3284++;
+ sMonSummaryScreen->state3284++;
return;
}
-static void sub_81351A0(u8 taskId)
+static void Task_BackOutOfSelectMove(u8 taskId)
{
- switch (sMonSummaryScreen->unk3284)
+ switch (sMonSummaryScreen->state3284)
{
case 0:
sMonSummaryScreen->lockMovesFlag = TRUE;
- sMonSummaryScreen->unk301C = TRUE;
- sub_8138280(sMonSummaryScreen->curPageIndex);
+ sMonSummaryScreen->inhibitPageFlipInput = TRUE;
+ PokeSum_AddWindows(sMonSummaryScreen->curPageIndex);
break;
case 1:
if (sMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO) {
- if (!(sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES && sMonSummaryScreen->unk3224 == 0))
+ if (!(sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES && sMonSummaryScreen->pageFlipDirection == 0))
{
FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20);
CopyBgTilemapBufferToVram(0);
@@ -1444,132 +1464,132 @@ static void sub_81351A0(u8 taskId)
FillBgTilemapBufferRect_Palette0(2, 0, 0, 2, 15, 2);
break;
case 2:
- sub_8135AA4();
+ PokeSum_CopyNewBgTilemapBeforePageFlip_2();
break;
case 3:
- sub_8136F4C();
- sub_81374E8();
- sub_8137BD0();
- CopyWindowToVram(sMonSummaryScreen->unk3000[3], 2);
- CopyWindowToVram(sMonSummaryScreen->unk3000[4], 2);
- CopyWindowToVram(sMonSummaryScreen->unk3000[5], 2);
+ PokeSum_PrintRightPaneText();
+ PokeSum_PrintBottomPaneText();
+ PokeSum_PrintAbilityDataOrMoveTypes();
+ CopyWindowToVram(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[POKESUM_WIN_TRAINER_MEMO], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[5], 2);
CopyBgTilemapBufferToVram(0);
break;
case 4:
- sub_8136DA4(gUnknown_8419C39);
- sub_8136DF0(gUnknown_8419C82);
+ PokeSum_PrintPageName(gText_PokeSum_PageName_KnownMoves);
+ PokeSum_PrintControlsString(gText_PokeSum_Controls_PageDetail);
break;
case 5:
- CopyWindowToVram(sMonSummaryScreen->unk3000[0], 2);
- CopyWindowToVram(sMonSummaryScreen->unk3000[1], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[POKESUM_WIN_PAGE_NAME], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[POKESUM_WIN_CONTROLS], 2);
CopyBgTilemapBufferToVram(2);
CopyBgTilemapBufferToVram(1);
break;
case 6:
- sub_8135514();
- sMonSummaryScreen->unk3244 = TRUE;
- sub_8135638();
- sub_813B750(sMonSummaryScreen->curPageIndex);
- sub_8138A38();
+ PokeSum_InitBgCoordsBeforePageFlips();
+ sMonSummaryScreen->flippingPages = TRUE;
+ PokeSum_HideSpritesBeforePageFlip();
+ PokeSum_UpdateWin1ActiveFlag(sMonSummaryScreen->curPageIndex);
+ PokeSum_PrintMonTypeIcons();
break;
case 7:
break;
case 8:
- if (sub_81357A0(sMonSummaryScreen->unk3224) == 0)
+ if (PokeSum_IsPageFlipFinished(sMonSummaryScreen->pageFlipDirection) == 0)
return;
- sub_8136E50(gUnknown_8419C45);
+ PrintMonLevelNickOnWindow2(gText_PokeSum_NoData);
break;
case 9:
- CopyWindowToVram(sMonSummaryScreen->unk3000[6], 2);
- CopyWindowToVram(sMonSummaryScreen->unk3000[2], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[6], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[POKESUM_WIN_LVL_NICK], 2);
CopyBgTilemapBufferToVram(0);
CopyBgTilemapBufferToVram(2);
CopyBgTilemapBufferToVram(1);
break;
case 10:
- sub_8135B90();
- sub_8138538();
+ PokeSum_CopyNewBgTilemapBeforePageFlip();
+ PokeSum_DrawBg3Tilemap();
CopyBgTilemapBufferToVram(3);
- sub_81356EC();
+ PokeSum_ShowSpritesBeforePageFlip();
break;
default:
- sub_8138440();
- gTasks[sMonSummaryScreen->unk3018].func = sub_8134840;
- sMonSummaryScreen->unk3284 = 0;
+ PokeSum_SetHelpContext();
+ gTasks[sMonSummaryScreen->inputHandlerTaskId].func = Task_InputHandler_Info;
+ sMonSummaryScreen->state3284 = 0;
sMonSummaryScreen->lockMovesFlag = FALSE;
- sMonSummaryScreen->unk301C = FALSE;
+ sMonSummaryScreen->inhibitPageFlipInput = FALSE;
return;
}
- sMonSummaryScreen->unk3284++;
+ sMonSummaryScreen->state3284++;
return;
}
-static void sub_813546C(void)
+static void PokeSum_SetHpExpBarCoordsFullRight(void)
{
u8 i;
for (i = 0; i < 11; i++)
{
- sUnknown_203B160->unk2C[i] = (8 * i) + 396;
- sUnknown_203B160->sprites[i]->pos1.x = sUnknown_203B160->unk2C[i];
+ sExpBarObjs->xpos[i] = (8 * i) + 396;
+ sExpBarObjs->sprites[i]->pos1.x = sExpBarObjs->xpos[i];
if (i >= 9)
continue;
- sUnknown_203B15C->unk28[i] = (8 * i) + 412;
- sUnknown_203B15C->sprites[i]->pos1.x = sUnknown_203B15C->unk28[i];
+ sHpBarObjs->xpos[i] = (8 * i) + 412;
+ sHpBarObjs->sprites[i]->pos1.x = sHpBarObjs->xpos[i];
}
}
-static void sub_81354C4(void)
+static void PokeSum_SetHpExpBarCoordsFullLeft(void)
{
u8 i;
for (i = 0; i < 11; i++)
{
- sUnknown_203B160->unk2C[i] = (8 * i) + 156;
- sUnknown_203B160->sprites[i]->pos1.x = sUnknown_203B160->unk2C[i];
+ sExpBarObjs->xpos[i] = (8 * i) + 156;
+ sExpBarObjs->sprites[i]->pos1.x = sExpBarObjs->xpos[i];
if (i >= 9)
continue;
- sUnknown_203B15C->unk28[i] = (8 * i) + 172;
- sUnknown_203B15C->sprites[i]->pos1.x = sUnknown_203B15C->unk28[i];
+ sHpBarObjs->xpos[i] = (8 * i) + 172;
+ sHpBarObjs->sprites[i]->pos1.x = sHpBarObjs->xpos[i];
}
}
-static void sub_8135514(void)
+static void PokeSum_InitBgCoordsBeforePageFlips(void)
{
s8 pageDelta = 1;
- if (sMonSummaryScreen->unk3224 == 1)
+ if (sMonSummaryScreen->pageFlipDirection == 1)
pageDelta = -1;
if (sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO)
{
- sMonSummaryScreen->unk324C = 240;
+ sMonSummaryScreen->flipPagesBgHofs = 240;
return;
}
if ((sMonSummaryScreen->curPageIndex + pageDelta) == PSS_PAGE_MOVES_INFO)
{
- sub_81358DC(0, 0);
- sMonSummaryScreen->unk324C = 0;
+ PokeSum_UpdateBgPriorityForPageFlip(0, 0);
+ sMonSummaryScreen->flipPagesBgHofs = 0;
SetGpuReg(REG_OFFSET_BG1HOFS, 0);
SetGpuReg(REG_OFFSET_BG2HOFS, 0);
return;
}
- if (sMonSummaryScreen->unk3224 == 1)
+ if (sMonSummaryScreen->pageFlipDirection == 1)
{
- sMonSummaryScreen->unk324C = 0;
+ sMonSummaryScreen->flipPagesBgHofs = 0;
SetGpuReg(REG_OFFSET_BG0HOFS, 0);
SetGpuReg(REG_OFFSET_BG1HOFS, 0);
SetGpuReg(REG_OFFSET_BG2HOFS, 0);
- sub_81358DC(1, 1);
+ PokeSum_UpdateBgPriorityForPageFlip(1, 1);
}
else
{
u32 bg1Priority = GetGpuReg(REG_OFFSET_BG1CNT) & 3;
u32 bg2Priority = GetGpuReg(REG_OFFSET_BG2CNT) & 3;
- sMonSummaryScreen->unk324C = 240;
+ sMonSummaryScreen->flipPagesBgHofs = 240;
if (bg1Priority > bg2Priority)
SetGpuReg(REG_OFFSET_BG1HOFS, 240);
@@ -1577,26 +1597,26 @@ static void sub_8135514(void)
SetGpuReg(REG_OFFSET_BG2HOFS, 240);
SetGpuReg(REG_OFFSET_BG0HOFS, 240);
- sub_81358DC(1, 0);
+ PokeSum_UpdateBgPriorityForPageFlip(1, 0);
}
if (sMonSummaryScreen->curPageIndex == PSS_PAGE_SKILLS)
{
- if (sMonSummaryScreen->unk3224 == 1)
- sub_81354C4();
+ if (sMonSummaryScreen->pageFlipDirection == 1)
+ PokeSum_SetHpExpBarCoordsFullLeft();
else
- sub_813546C();
+ PokeSum_SetHpExpBarCoordsFullRight();
}
else if (sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES)
- sub_81354C4();
+ PokeSum_SetHpExpBarCoordsFullLeft();
}
-static void sub_8135638(void)
+static void PokeSum_HideSpritesBeforePageFlip(void)
{
u8 newPage;
- if (sMonSummaryScreen->unk3224 == 1)
+ if (sMonSummaryScreen->pageFlipDirection == 1)
newPage = sMonSummaryScreen->curPageIndex - 1;
else
newPage = sMonSummaryScreen->curPageIndex + 1;
@@ -1606,36 +1626,36 @@ static void sub_8135638(void)
case PSS_PAGE_INFO:
break;
case PSS_PAGE_SKILLS:
- sub_813A838(1);
- sub_813AB70(1);
+ ShowOrHideHpBarObjs(TRUE);
+ ShowOrHideExpBarObjs(TRUE);
break;
case PSS_PAGE_MOVES:
- if (sMonSummaryScreen->unk3224 == 1)
+ if (sMonSummaryScreen->pageFlipDirection == 1)
{
- sub_8139C44(1);
- sub_813B084(1);
- sub_8139D54(1);
- sub_813A3B8(1);
- sub_813ACF8(1);
- sub_813AEB0(1);
+ PokeSum_ShowOrHideMonPicSprite(TRUE);
+ PokeSum_ShowOrHideMonMarkingsSprite(TRUE);
+ ShowOrHideBallIconObj(TRUE);
+ ShowOrHideStatusIcon(TRUE);
+ HideShowPokerusIcon(TRUE);
+ HideShowShinyStar(TRUE);
}
break;
case PSS_PAGE_MOVES_INFO:
- sub_813A0E8(1);
- sub_8139EE4(1);
- sub_813A3B8(1);
- sub_813ACF8(1);
- sub_813AEB0(1);
+ ShoworHideMoveSelectionCursor(TRUE);
+ PokeSum_ShowOrHideMonIconSprite(TRUE);
+ ShowOrHideStatusIcon(TRUE);
+ HideShowPokerusIcon(TRUE);
+ HideShowShinyStar(TRUE);
break;
}
}
-static void sub_81356EC(void)
+static void PokeSum_ShowSpritesBeforePageFlip(void)
{
u8 newPage;
- if (sMonSummaryScreen->unk3224 == 1)
+ if (sMonSummaryScreen->pageFlipDirection == 1)
newPage = sMonSummaryScreen->curPageIndex - 1;
else
newPage = sMonSummaryScreen->curPageIndex + 1;
@@ -1643,86 +1663,86 @@ static void sub_81356EC(void)
switch (newPage)
{
case PSS_PAGE_INFO:
- sub_813A838(0);
- sub_813AB70(0);
+ ShowOrHideHpBarObjs(FALSE);
+ ShowOrHideExpBarObjs(FALSE);
break;
case PSS_PAGE_SKILLS:
break;
case PSS_PAGE_MOVES:
- if (sMonSummaryScreen->unk3224 == 0)
+ if (sMonSummaryScreen->pageFlipDirection == 0)
{
- sub_813A838(0);
- sub_813AB70(0);
+ ShowOrHideHpBarObjs(FALSE);
+ ShowOrHideExpBarObjs(FALSE);
}
else
{
- sub_813A0E8(0);
- sub_813ACF8(0);
- sub_8139EE4(0);
- sub_813AEB0(0);
+ ShoworHideMoveSelectionCursor(FALSE);
+ HideShowPokerusIcon(FALSE);
+ PokeSum_ShowOrHideMonIconSprite(FALSE);
+ HideShowShinyStar(FALSE);
}
break;
case PSS_PAGE_MOVES_INFO:
- sub_8139C44(0);
- sub_813B084(0);
- sub_813A3B8(0);
- sub_8139D54(0);
- sub_813ACF8(0);
- sub_813AEB0(0);
+ PokeSum_ShowOrHideMonPicSprite(FALSE);
+ PokeSum_ShowOrHideMonMarkingsSprite(FALSE);
+ ShowOrHideStatusIcon(FALSE);
+ ShowOrHideBallIconObj(FALSE);
+ HideShowPokerusIcon(FALSE);
+ HideShowShinyStar(FALSE);
break;
}
}
-static u8 sub_81357A0(u8 a0)
+static u8 PokeSum_IsPageFlipFinished(u8 a0)
{
s8 pageDelta = 1;
- if (sMonSummaryScreen->unk3224 == 1)
+ if (sMonSummaryScreen->pageFlipDirection == 1)
pageDelta = -1;
if (sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO)
- if (sMonSummaryScreen->unk324C <= 0)
+ if (sMonSummaryScreen->flipPagesBgHofs <= 0)
{
- sMonSummaryScreen->unk324C = 0;
- sMonSummaryScreen->unk3238 ^= 1;
- sub_81358DC(0, 0);
- sMonSummaryScreen->unk3244 = FALSE;
+ sMonSummaryScreen->flipPagesBgHofs = 0;
+ sMonSummaryScreen->whichBgLayerToTranslate ^= 1;
+ PokeSum_UpdateBgPriorityForPageFlip(0, 0);
+ sMonSummaryScreen->flippingPages = FALSE;
return TRUE;
}
if ((sMonSummaryScreen->curPageIndex + pageDelta) == PSS_PAGE_MOVES_INFO)
- if (sMonSummaryScreen->unk324C >= 240)
+ if (sMonSummaryScreen->flipPagesBgHofs >= 240)
{
- sMonSummaryScreen->unk324C = 240;
- sMonSummaryScreen->unk3238 ^= 1;
- sMonSummaryScreen->unk3244 = FALSE;
+ sMonSummaryScreen->flipPagesBgHofs = 240;
+ sMonSummaryScreen->whichBgLayerToTranslate ^= 1;
+ sMonSummaryScreen->flippingPages = FALSE;
return TRUE;
}
- if (sMonSummaryScreen->unk3224 == 1)
+ if (sMonSummaryScreen->pageFlipDirection == 1)
{
- if (sMonSummaryScreen->unk324C >= 240)
+ if (sMonSummaryScreen->flipPagesBgHofs >= 240)
{
- sMonSummaryScreen->unk324C = 240;
- sMonSummaryScreen->unk3238 ^= 1;
- sub_81358DC(0, 0);
- sMonSummaryScreen->unk3244 = FALSE;
+ sMonSummaryScreen->flipPagesBgHofs = 240;
+ sMonSummaryScreen->whichBgLayerToTranslate ^= 1;
+ PokeSum_UpdateBgPriorityForPageFlip(0, 0);
+ sMonSummaryScreen->flippingPages = FALSE;
return TRUE;
}
}
- else if (sMonSummaryScreen->unk324C <= 0)
+ else if (sMonSummaryScreen->flipPagesBgHofs <= 0)
{
- sMonSummaryScreen->unk3238 ^= 1;
- sMonSummaryScreen->unk324C = 0;
- sMonSummaryScreen->unk3244 = FALSE;
+ sMonSummaryScreen->whichBgLayerToTranslate ^= 1;
+ sMonSummaryScreen->flipPagesBgHofs = 0;
+ sMonSummaryScreen->flippingPages = FALSE;
return TRUE;
}
return FALSE;
}
-static void sub_81358DC(u8 a0, u8 a1)
+static void PokeSum_UpdateBgPriorityForPageFlip(u8 setBg0Priority, u8 keepBg1Bg2PriorityOrder)
{
u8 i;
u32 bg0Priority;
@@ -1733,13 +1753,13 @@ static void sub_81358DC(u8 a0, u8 a1)
bg1Priority = GetGpuReg(REG_OFFSET_BG1CNT) & 3;
bg2Priority = GetGpuReg(REG_OFFSET_BG2CNT) & 3;
- if (sMonSummaryScreen->unk3224 == 1)
+ if (sMonSummaryScreen->pageFlipDirection == 1)
{
- if (a0 == 0)
+ if (setBg0Priority == 0)
{
bg0Priority = 0;
- if (a1 == 0)
+ if (keepBg1Bg2PriorityOrder == 0)
{
if (bg1Priority > bg2Priority)
bg1Priority = 1, bg2Priority = 2;
@@ -1754,11 +1774,11 @@ static void sub_81358DC(u8 a0, u8 a1)
bg1Priority = 1, bg2Priority = 2;
}
}
- if (a0 == 1)
+ if (setBg0Priority == 1)
{
bg0Priority = 1;
- if (a1 == 0)
+ if (keepBg1Bg2PriorityOrder == 0)
{
if (bg1Priority > bg2Priority)
bg1Priority = 0, bg2Priority = 2;
@@ -1775,7 +1795,7 @@ static void sub_81358DC(u8 a0, u8 a1)
}
}
- if (sMonSummaryScreen->unk3224 == 0)
+ if (sMonSummaryScreen->pageFlipDirection == 0)
{
bg0Priority = 0;
if (bg1Priority > bg2Priority)
@@ -1786,30 +1806,30 @@ static void sub_81358DC(u8 a0, u8 a1)
for (i = 0; i < 11; i++)
{
- if (sMonSummaryScreen->curPageIndex == PSS_PAGE_SKILLS && sMonSummaryScreen->unk3224 == 1)
- sUnknown_203B160->sprites[i]->oam.priority = bg0Priority;
+ if (sMonSummaryScreen->curPageIndex == PSS_PAGE_SKILLS && sMonSummaryScreen->pageFlipDirection == 1)
+ sExpBarObjs->sprites[i]->oam.priority = bg0Priority;
else
- sUnknown_203B160->sprites[i]->oam.priority = bg1Priority;
+ sExpBarObjs->sprites[i]->oam.priority = bg1Priority;
if (i >= 9)
continue;
- if (sMonSummaryScreen->curPageIndex == PSS_PAGE_SKILLS && sMonSummaryScreen->unk3224 == 1)
- sUnknown_203B15C->sprites[i]->oam.priority = bg0Priority;
+ if (sMonSummaryScreen->curPageIndex == PSS_PAGE_SKILLS && sMonSummaryScreen->pageFlipDirection == 1)
+ sHpBarObjs->sprites[i]->oam.priority = bg0Priority;
else
- sUnknown_203B15C->sprites[i]->oam.priority = bg1Priority;
+ sHpBarObjs->sprites[i]->oam.priority = bg1Priority;
}
- SetGpuReg(REG_OFFSET_BG0CNT, (GetGpuReg(REG_OFFSET_BG0CNT) & 0xfffc) | bg0Priority);
- SetGpuReg(REG_OFFSET_BG1CNT, (GetGpuReg(REG_OFFSET_BG1CNT) & 0xfffc) | bg1Priority);
- SetGpuReg(REG_OFFSET_BG2CNT, (GetGpuReg(REG_OFFSET_BG2CNT) & 0xfffc) | bg2Priority);
+ SetGpuReg(REG_OFFSET_BG0CNT, (GetGpuReg(REG_OFFSET_BG0CNT) & (u16)~3) | bg0Priority);
+ SetGpuReg(REG_OFFSET_BG1CNT, (GetGpuReg(REG_OFFSET_BG1CNT) & (u16)~3) | bg1Priority);
+ SetGpuReg(REG_OFFSET_BG2CNT, (GetGpuReg(REG_OFFSET_BG2CNT) & (u16)~3) | bg2Priority);
}
-static void sub_8135AA4(void)
+static void PokeSum_CopyNewBgTilemapBeforePageFlip_2(void)
{
u8 newPage;
- if (sMonSummaryScreen->unk3224 == 1)
+ if (sMonSummaryScreen->pageFlipDirection == 1)
newPage = sMonSummaryScreen->curPageIndex - 1;
else
newPage = sMonSummaryScreen->curPageIndex + 1;
@@ -1817,33 +1837,33 @@ static void sub_8135AA4(void)
switch (newPage)
{
case PSS_PAGE_INFO:
- CopyToBgTilemapBuffer(sMonSummaryScreen->unk3240, gUnknown_8E9B750, 0, 0);
+ CopyToBgTilemapBuffer(sMonSummaryScreen->infoAndMovesPageBgNum, gBgTilemap_TrainerMemo_Stats, 0, 0);
break;
case PSS_PAGE_SKILLS:
- if (sMonSummaryScreen->unk3224 == 1)
- CopyToBgTilemapBuffer(sMonSummaryScreen->unk323C, gUnknown_8E9B950, 0, 0);
+ if (sMonSummaryScreen->pageFlipDirection == 1)
+ CopyToBgTilemapBuffer(sMonSummaryScreen->skillsPageBgNum, gBgTilemap_PokeSum_MovesListForDelete, 0, 0);
else
- CopyToBgTilemapBuffer(sMonSummaryScreen->unk323C, gUnknown_8E9B598, 0, 0);
+ CopyToBgTilemapBuffer(sMonSummaryScreen->skillsPageBgNum, gBgTilemap_TrainerMemo_Details, 0, 0);
break;
case PSS_PAGE_MOVES:
- if (sMonSummaryScreen->unk3224 == 1)
- CopyToBgTilemapBuffer(sMonSummaryScreen->unk3240, gUnknown_8E9BA9C, 0, 0);
+ if (sMonSummaryScreen->pageFlipDirection == 1)
+ CopyToBgTilemapBuffer(sMonSummaryScreen->infoAndMovesPageBgNum, gBgTilemap_PokeSum_MoveDetailsForDelete, 0, 0);
else
- CopyToBgTilemapBuffer(sMonSummaryScreen->unk3240, gUnknown_8E9B750, 0, 0);
+ CopyToBgTilemapBuffer(sMonSummaryScreen->infoAndMovesPageBgNum, gBgTilemap_TrainerMemo_Stats, 0, 0);
break;
case PSS_PAGE_MOVES_INFO:
- CopyToBgTilemapBuffer(sMonSummaryScreen->unk323C, gUnknown_8E9B950, 0, 0);
+ CopyToBgTilemapBuffer(sMonSummaryScreen->skillsPageBgNum, gBgTilemap_PokeSum_MovesListForDelete, 0, 0);
break;
}
}
-static void sub_8135B90(void)
+static void PokeSum_CopyNewBgTilemapBeforePageFlip(void)
{
u8 newPage;
- if (sMonSummaryScreen->unk3224 == 1)
+ if (sMonSummaryScreen->pageFlipDirection == 1)
newPage = sMonSummaryScreen->curPageIndex - 1;
else
newPage = sMonSummaryScreen->curPageIndex + 1;
@@ -1851,101 +1871,101 @@ static void sub_8135B90(void)
switch (newPage)
{
case PSS_PAGE_INFO:
- CopyToBgTilemapBuffer(sMonSummaryScreen->unk3240, gUnknown_8E9B750, 0, 0);
+ CopyToBgTilemapBuffer(sMonSummaryScreen->infoAndMovesPageBgNum, gBgTilemap_TrainerMemo_Stats, 0, 0);
break;
case PSS_PAGE_SKILLS:
break;
case PSS_PAGE_MOVES:
- if (sMonSummaryScreen->unk3224 == 1)
- CopyToBgTilemapBuffer(3, sUnknown_8463C80, 0, 0);
+ if (sMonSummaryScreen->pageFlipDirection == 1)
+ CopyToBgTilemapBuffer(3, sBgTilemap_MovesPage, 0, 0);
else
- CopyToBgTilemapBuffer(3, sUnknown_8463B88, 0, 0);
+ CopyToBgTilemapBuffer(3, sBgTilemap_MovesInfoPage, 0, 0);
break;
case PSS_PAGE_MOVES_INFO:
- CopyToBgTilemapBuffer(3, sUnknown_8463B88, 0, 0);
+ CopyToBgTilemapBuffer(3, sBgTilemap_MovesInfoPage, 0, 0);
break;
}
}
-static void sub_8135C34(void)
+static void CB2_SetUpPSS(void)
{
- switch (sMonSummaryScreen->unk3274)
+ switch (sMonSummaryScreen->summarySetupStep)
{
case 0:
- sub_81381AC();
+ PokeSum_Setup_ResetCallbacks();
break;
case 1:
- sub_8136BC4();
+ PokeSum_Setup_InitGpu();
break;
case 2:
- sub_8136BAC();
+ PokeSum_Setup_SpritesReset();
break;
case 3:
- if (!sub_8135F20())
+ if (!PokeSum_HandleLoadBgGfx())
return;
break;
case 4:
- if (!sub_8136AEC())
+ if (!PokeSum_HandleCreateSprites())
return;
break;
case 5:
- sub_81381D0();
+ PokeSum_CreateWindows();
break;
case 6:
- if (!sub_8136040())
+ if (!PokeSum_Setup_BufferStrings())
return;
break;
case 7:
- sub_8136F4C();
+ PokeSum_PrintRightPaneText();
break;
case 8:
- sub_81374E8();
+ PokeSum_PrintBottomPaneText();
break;
case 9:
- sub_8137BD0();
- sub_8138A38();
+ PokeSum_PrintAbilityDataOrMoveTypes();
+ PokeSum_PrintMonTypeIcons();
break;
case 10:
if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE || sMonSummaryScreen->mode == PSS_MODE_FORGET_MOVE)
- CopyToBgTilemapBuffer(3, sUnknown_8463C80, 0, 0);
+ CopyToBgTilemapBuffer(3, sBgTilemap_MovesPage, 0, 0);
else
- CopyToBgTilemapBuffer(3, sUnknown_8463B88, 0, 0);
+ CopyToBgTilemapBuffer(3, sBgTilemap_MovesInfoPage, 0, 0);
- sub_8138538();
+ PokeSum_DrawBg3Tilemap();
break;
case 11:
if (sMonSummaryScreen->isEgg)
- CopyToBgTilemapBuffer(sMonSummaryScreen->unk323C, gUnknown_8E9BBCC, 0, 0);
+ CopyToBgTilemapBuffer(sMonSummaryScreen->skillsPageBgNum, gBgTilemap_TrainerMemo_Egg, 0, 0);
else
{
if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE || sMonSummaryScreen->mode == PSS_MODE_FORGET_MOVE)
{
- CopyToBgTilemapBuffer(sMonSummaryScreen->unk323C, gUnknown_8E9B950, 0, 0);
- CopyToBgTilemapBuffer(sMonSummaryScreen->unk3240, gUnknown_8E9BA9C, 0, 0);
+ CopyToBgTilemapBuffer(sMonSummaryScreen->skillsPageBgNum, gBgTilemap_PokeSum_MovesListForDelete, 0, 0);
+ CopyToBgTilemapBuffer(sMonSummaryScreen->infoAndMovesPageBgNum, gBgTilemap_PokeSum_MoveDetailsForDelete, 0, 0);
}
else
{
- CopyToBgTilemapBuffer(sMonSummaryScreen->unk323C, gUnknown_8E9B598, 0, 0);
- CopyToBgTilemapBuffer(sMonSummaryScreen->unk3240, gUnknown_8E9B750, 0, 0);
+ CopyToBgTilemapBuffer(sMonSummaryScreen->skillsPageBgNum, gBgTilemap_TrainerMemo_Details, 0, 0);
+ CopyToBgTilemapBuffer(sMonSummaryScreen->infoAndMovesPageBgNum, gBgTilemap_TrainerMemo_Stats, 0, 0);
}
}
break;
case 12:
BlendPalettes(0xffffffff, 16, 0);
- sub_8137D28(sMonSummaryScreen->curPageIndex);
- sub_8137E28();
+ PokeSum_PrintPageHeaderText(sMonSummaryScreen->curPageIndex);
+ CommitStaticWindowTilemaps();
break;
case 13:
BeginNormalPaletteFade(0xffffffff, 0, 16, 0, 0);
- CopyWindowToVram(sMonSummaryScreen->unk3000[0], 2);
- CopyWindowToVram(sMonSummaryScreen->unk3000[1], 2);
- CopyWindowToVram(sMonSummaryScreen->unk3000[2], 2);
- CopyWindowToVram(sMonSummaryScreen->unk3000[6], 2);
- CopyWindowToVram(sMonSummaryScreen->unk3000[3], 2);
- CopyWindowToVram(sMonSummaryScreen->unk3000[4], 2);
- CopyWindowToVram(sMonSummaryScreen->unk3000[5], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[POKESUM_WIN_PAGE_NAME], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[POKESUM_WIN_CONTROLS], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[POKESUM_WIN_LVL_NICK], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[6], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[POKESUM_WIN_TRAINER_MEMO], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[5], 2);
break;
case 14:
CopyBgTilemapBufferToVram(0);
@@ -1956,58 +1976,58 @@ static void sub_8135C34(void)
case 15:
if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE || sMonSummaryScreen->mode == PSS_MODE_FORGET_MOVE)
{
- sub_8139EE4(0);
- sub_813A0E8(0);
+ PokeSum_ShowOrHideMonIconSprite(FALSE);
+ ShoworHideMoveSelectionCursor(FALSE);
}
else
{
- sub_8139C44(0);
- sub_813B084(0);
- sub_8139D54(0);
- sub_813A838(0);
- sub_813AB70(0);
+ PokeSum_ShowOrHideMonPicSprite(FALSE);
+ PokeSum_ShowOrHideMonMarkingsSprite(FALSE);
+ ShowOrHideBallIconObj(FALSE);
+ ShowOrHideHpBarObjs(FALSE);
+ ShowOrHideExpBarObjs(FALSE);
}
- sub_813A3B8(0);
- sub_813ACF8(0);
- sub_813AEB0(0);
+ ShowOrHideStatusIcon(FALSE);
+ HideShowPokerusIcon(FALSE);
+ HideShowShinyStar(FALSE);
break;
default:
- sub_81381C0();
- sub_8136D54();
+ PokeSum_Setup_SetVBlankCallback();
+ PokeSum_FinishSetup();
return;
}
- sMonSummaryScreen->unk3274++;
+ sMonSummaryScreen->summarySetupStep++;
}
-static u8 sub_8135F20(void)
+static u8 PokeSum_HandleLoadBgGfx(void)
{
- switch (sMonSummaryScreen->unk3278)
+ switch (sMonSummaryScreen->loadBgGfxStep)
{
case 0:
- LoadPalette(gUnknown_8E9B310, 0, 0x20 * 5);
+ LoadPalette(gTrainerMemoPal1, 0, 0x20 * 5);
if (IsMonShiny(&sMonSummaryScreen->currentMon) == TRUE && !sMonSummaryScreen->isEgg)
{
- LoadPalette(&gUnknown_8E9B310[16 * 6], 0, 0x20);
- LoadPalette(&gUnknown_8E9B310[16 * 5], 0x10, 0x20);
+ LoadPalette(&gTrainerMemoPal1[16 * 6], 0, 0x20);
+ LoadPalette(&gTrainerMemoPal1[16 * 5], 0x10, 0x20);
}
else
{
- LoadPalette(&gUnknown_8E9B310[16 * 0], 0, 0x20);
- LoadPalette(&gUnknown_8E9B310[16 * 1], 0x10, 0x20);
+ LoadPalette(&gTrainerMemoPal1[16 * 0], 0, 0x20);
+ LoadPalette(&gTrainerMemoPal1[16 * 1], 0x10, 0x20);
}
break;
case 1:
ListMenuLoadStdPalAt(0x60, 1);
- LoadPalette(sUnknown_84636C0, 0x70, 0x20);
+ LoadPalette(sBgPal7, 0x70, 0x20);
break;
case 2:
ResetTempTileDataBuffers();
break;
case 3:
- DecompressAndCopyTileDataToVram(2, gUnknown_8E9A460, 0, 0, 0);
+ DecompressAndCopyTileDataToVram(2, gPokeSumBgTiles, 0, 0, 0);
break;
case 4:
if (FreeTempTileDataBuffersIfPossible() == TRUE)
@@ -2019,45 +2039,45 @@ static u8 sub_8135F20(void)
break;
default:
- LoadPalette(sUnknown_8463700, 0x80, 0x20);
+ LoadPalette(sBgPal8, 0x80, 0x20);
return TRUE;
}
- sMonSummaryScreen->unk3278++;
+ sMonSummaryScreen->loadBgGfxStep++;
return FALSE;
}
-static u8 sub_8136040(void)
+static u8 PokeSum_Setup_BufferStrings(void)
{
- switch (sMonSummaryScreen->unk3280)
+ switch (sMonSummaryScreen->bufferStringsStep)
{
case 0:
- sub_81360D4();
+ BufferMonInfo();
if (sMonSummaryScreen->isEgg)
{
- sMonSummaryScreen->unk3280 = 0;
+ sMonSummaryScreen->bufferStringsStep = 0;
return TRUE;
}
break;
case 1:
if (sMonSummaryScreen->isEgg == 0)
- sub_8136350();
+ BufferMonSkills();
break;
case 2:
if (sMonSummaryScreen->isEgg == 0)
- sub_81367B0();
+ BufferMonMoves();
break;
default:
- sMonSummaryScreen->unk3280 = 0;
+ sMonSummaryScreen->bufferStringsStep = 0;
return TRUE;
}
- sMonSummaryScreen->unk3280++;
+ sMonSummaryScreen->bufferStringsStep++;
return FALSE;
}
-static void sub_81360D4(void)
+static void BufferMonInfo(void)
{
u8 tempStr[20];
u16 dexNum;
@@ -2067,68 +2087,68 @@ static void sub_81360D4(void)
dexNum = SpeciesToPokedexNum(GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES));
if (dexNum == 0xffff)
- StringCopy(sMonSummaryScreen->summary.unk3064, gUnknown_8416202);
+ StringCopy(sMonSummaryScreen->summary.dexNumStrBuf, gText_PokeSum_DexNoUnknown);
else
- ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk3064, dexNum, STR_CONV_MODE_LEADING_ZEROS, 3);
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.dexNumStrBuf, dexNum, STR_CONV_MODE_LEADING_ZEROS, 3);
- sUnknown_203B144->unk00 = 0;
+ sMonSkillsPrinterXpos->unk00 = 0;
if (!sMonSummaryScreen->isEgg)
{
dexNum = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES);
- GetSpeciesName(sMonSummaryScreen->summary.unk3028, dexNum);
+ GetSpeciesName(sMonSummaryScreen->summary.speciesNameStrBuf, dexNum);
}
else
{
- GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_NICKNAME, sMonSummaryScreen->summary.unk3028);
+ GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_NICKNAME, sMonSummaryScreen->summary.speciesNameStrBuf);
return;
}
- sMonSummaryScreen->unk3220[0] = gBaseStats[dexNum].type1;
- sMonSummaryScreen->unk3220[1] = gBaseStats[dexNum].type2;
+ sMonSummaryScreen->monTypes[0] = gBaseStats[dexNum].type1;
+ sMonSummaryScreen->monTypes[1] = gBaseStats[dexNum].type2;
GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_NICKNAME, tempStr);
- StringCopyN_Multibyte(sMonSummaryScreen->summary.unk3034, tempStr, POKEMON_NAME_LENGTH);
- StringGetEnd10(sMonSummaryScreen->summary.unk3034);
+ StringCopyN_Multibyte(sMonSummaryScreen->summary.nicknameStrBuf, tempStr, POKEMON_NAME_LENGTH);
+ StringGetEnd10(sMonSummaryScreen->summary.nicknameStrBuf);
gender = GetMonGender(&sMonSummaryScreen->currentMon);
dexNum = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES2);
if (gender == MON_FEMALE)
- StringCopy(sMonSummaryScreen->summary.unk3084, gText_FemaleSymbol);
+ StringCopy(sMonSummaryScreen->summary.genderSymbolStrBuf, gText_FemaleSymbol);
else if (gender == MON_MALE)
- StringCopy(sMonSummaryScreen->summary.unk3084, gText_MaleSymbol);
+ StringCopy(sMonSummaryScreen->summary.genderSymbolStrBuf, gText_MaleSymbol);
else
- StringCopy(sMonSummaryScreen->summary.unk3084, gString_Dummy);
+ StringCopy(sMonSummaryScreen->summary.genderSymbolStrBuf, gString_Dummy);
if (dexNum == SPECIES_NIDORAN_M || dexNum == SPECIES_NIDORAN_F)
- if (StringCompare(sMonSummaryScreen->summary.unk3034, gSpeciesNames[dexNum]) == 0)
- StringCopy(sMonSummaryScreen->summary.unk3084, gString_Dummy);
+ if (StringCompare(sMonSummaryScreen->summary.nicknameStrBuf, gSpeciesNames[dexNum]) == 0)
+ StringCopy(sMonSummaryScreen->summary.genderSymbolStrBuf, gString_Dummy);
GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_OT_NAME, tempStr);
- StringCopyN_Multibyte(sMonSummaryScreen->summary.unk3040, tempStr, OT_NAME_LENGTH);
+ StringCopyN_Multibyte(sMonSummaryScreen->summary.otNameStrBuf, tempStr, OT_NAME_LENGTH);
- ConvertInternationalString(sMonSummaryScreen->summary.unk3040, GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_LANGUAGE));
+ ConvertInternationalString(sMonSummaryScreen->summary.otNameStrBuf, GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_LANGUAGE));
otId = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_OT_ID) & 0xffff;
ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk306C, otId, STR_CONV_MODE_LEADING_ZEROS, 5);
ConvertIntToDecimalStringN(tempStr, GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_LEVEL), STR_CONV_MODE_LEFT_ALIGN, 3);
- StringCopy(sMonSummaryScreen->summary.unk3088, gText_Lv);
- StringAppendN(sMonSummaryScreen->summary.unk3088, tempStr, 4);
+ StringCopy(sMonSummaryScreen->summary.levelStrBuf, gText_Lv);
+ StringAppendN(sMonSummaryScreen->summary.levelStrBuf, tempStr, 4);
heldItem = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_HELD_ITEM);
if (heldItem == ITEM_NONE)
- StringCopy(sMonSummaryScreen->summary.unk3074, gUnknown_84161EF);
+ StringCopy(sMonSummaryScreen->summary.itemNameStrBuf, gText_PokeSum_Item_None);
else
- CopyItemName(heldItem, sMonSummaryScreen->summary.unk3074);
+ CopyItemName(heldItem, sMonSummaryScreen->summary.itemNameStrBuf);
}
-#define MACRO_8136350_0(x) (63 - StringLength((x)) * 6)
-#define MACRO_8136350_1(x) (27 - StringLength((x)) * 6)
+#define GetNumberRightAlign63(x) (63 - StringLength((x)) * 6)
+#define GetNumberRightAlign27(x) (27 - StringLength((x)) * 6)
-static void sub_8136350(void)
+static void BufferMonSkills(void)
{
u8 tempStr[20];
u8 level;
@@ -2140,63 +2160,63 @@ static void sub_8136350(void)
u32 expToNextLevel;
hp = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_HP);
- ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk3090, hp, STR_CONV_MODE_LEFT_ALIGN, 3);
- StringAppend(sMonSummaryScreen->summary.unk3090, gText_Slash);
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.curHpStrBuf, hp, STR_CONV_MODE_LEFT_ALIGN, 3);
+ StringAppend(sMonSummaryScreen->summary.curHpStrBuf, gText_Slash);
hp = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MAX_HP);
ConvertIntToDecimalStringN(tempStr, hp, STR_CONV_MODE_LEFT_ALIGN, 3);
- StringAppend(sMonSummaryScreen->summary.unk3090, tempStr);
+ StringAppend(sMonSummaryScreen->summary.curHpStrBuf, tempStr);
- sUnknown_203B144->unk02 = MACRO_8136350_0(sMonSummaryScreen->summary.unk3090);
+ sMonSkillsPrinterXpos->curHpStr = GetNumberRightAlign63(sMonSummaryScreen->summary.curHpStrBuf);
if (sMonSummaryScreen->savedCallback == CB2_ReturnToTradeMenuFromSummary && sMonSummaryScreen->isEnemyParty == TRUE)
{
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_ATK2);
- ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk309C[PSS_STAT_ATK], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
- sUnknown_203B144->unk04 = MACRO_8136350_1(sMonSummaryScreen->summary.unk309C[PSS_STAT_ATK]);
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_ATK], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
+ sMonSkillsPrinterXpos->atkStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_ATK]);
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_DEF2);
- ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk309C[PSS_STAT_DEF], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
- sUnknown_203B144->unk06 = MACRO_8136350_1(sMonSummaryScreen->summary.unk309C[PSS_STAT_DEF]);
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_DEF], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
+ sMonSkillsPrinterXpos->defStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_DEF]);
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPATK2);
- ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk309C[PSS_STAT_SPA], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
- sUnknown_203B144->unk08 = MACRO_8136350_1(sMonSummaryScreen->summary.unk309C[PSS_STAT_SPA]);
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPA], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
+ sMonSkillsPrinterXpos->spAStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPA]);
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPDEF2);
- ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk309C[PSS_STAT_SPD], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
- sUnknown_203B144->unk0A = MACRO_8136350_1(sMonSummaryScreen->summary.unk309C[PSS_STAT_SPD]);
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPD], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
+ sMonSkillsPrinterXpos->spDStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPD]);
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPEED2);
- ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk309C[PSS_STAT_SPE], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
- sUnknown_203B144->unk0C = MACRO_8136350_1(sMonSummaryScreen->summary.unk309C[PSS_STAT_SPE]);
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPE], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
+ sMonSkillsPrinterXpos->speStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPE]);
}
else
{
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_ATK);
- ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk309C[PSS_STAT_ATK], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
- sUnknown_203B144->unk04 = MACRO_8136350_1(sMonSummaryScreen->summary.unk309C[PSS_STAT_ATK]);
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_ATK], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
+ sMonSkillsPrinterXpos->atkStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_ATK]);
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_DEF);
- ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk309C[PSS_STAT_DEF], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
- sUnknown_203B144->unk06 = MACRO_8136350_1(sMonSummaryScreen->summary.unk309C[PSS_STAT_DEF]);
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_DEF], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
+ sMonSkillsPrinterXpos->defStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_DEF]);
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPATK);
- ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk309C[PSS_STAT_SPA], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
- sUnknown_203B144->unk08 = MACRO_8136350_1(sMonSummaryScreen->summary.unk309C[PSS_STAT_SPA]);
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPA], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
+ sMonSkillsPrinterXpos->spAStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPA]);
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPDEF);
- ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk309C[PSS_STAT_SPD], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
- sUnknown_203B144->unk0A = MACRO_8136350_1(sMonSummaryScreen->summary.unk309C[PSS_STAT_SPD]);
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPD], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
+ sMonSkillsPrinterXpos->spDStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPD]);
statValue = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPEED);
- ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk309C[PSS_STAT_SPE], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
- sUnknown_203B144->unk0C = MACRO_8136350_1(sMonSummaryScreen->summary.unk309C[PSS_STAT_SPE]);
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPE], statValue, STR_CONV_MODE_LEFT_ALIGN, 3);
+ sMonSkillsPrinterXpos->speStr = GetNumberRightAlign27(sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPE]);
}
exp = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_EXP);
- ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk31A4, exp, STR_CONV_MODE_LEFT_ALIGN, 7);
- sUnknown_203B144->unk0E = MACRO_8136350_0(sMonSummaryScreen->summary.unk31A4);
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.expPointsStrBuf, exp, STR_CONV_MODE_LEFT_ALIGN, 7);
+ sMonSkillsPrinterXpos->expStr = GetNumberRightAlign63(sMonSummaryScreen->summary.expPointsStrBuf);
level = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_LEVEL);
expToNextLevel = 0;
@@ -2206,123 +2226,123 @@ static void sub_8136350(void)
expToNextLevel = gExperienceTables[gBaseStats[species].growthRate][level + 1] - exp;
}
- ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk31B0, expToNextLevel, STR_CONV_MODE_LEFT_ALIGN, 7);
- sUnknown_203B144->unk10 = MACRO_8136350_0(sMonSummaryScreen->summary.unk31B0);
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.expToNextLevelStrBuf, expToNextLevel, STR_CONV_MODE_LEFT_ALIGN, 7);
+ sMonSkillsPrinterXpos->toNextLevel = GetNumberRightAlign63(sMonSummaryScreen->summary.expToNextLevelStrBuf);
type = GetAbilityBySpecies(GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES), GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_ABILITY_NUM));
- StringCopy(sMonSummaryScreen->summary.unk31BC, gAbilityNames[type]);
- StringCopy(sMonSummaryScreen->summary.unk31CC, gAbilityDescriptionPointers[type]);
+ StringCopy(sMonSummaryScreen->summary.abilityNameStrBuf, gAbilityNames[type]);
+ StringCopy(sMonSummaryScreen->summary.abilityDescStrBuf, gAbilityDescriptionPointers[type]);
- sMonSummaryScreen->unk326C = sub_8138C5C(GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_STATUS));
- if (sMonSummaryScreen->unk326C == AILMENT_NONE)
+ sMonSummaryScreen->curMonStatusAilment = StatusToAilment(GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_STATUS));
+ if (sMonSummaryScreen->curMonStatusAilment == AILMENT_NONE)
if (CheckPartyPokerus(&sMonSummaryScreen->currentMon, 0))
- sMonSummaryScreen->unk326C = AILMENT_PKRS;
+ sMonSummaryScreen->curMonStatusAilment = AILMENT_PKRS;
}
-static void sub_81367B0(void)
+static void BufferMonMoves(void)
{
u8 i;
for (i = 0; i < 4; i++)
- sub_81367E8(i);
+ BufferMonMoveI(i);
if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE)
- sub_81367E8(4);
+ BufferMonMoveI(4);
}
-#define MACRO_81367E8_0(a, b) ((6 * (a)) - StringLength((b)) * 6)
+#define GetRightAlignXpos_NDigits(a, b) ((6 * (a)) - StringLength((b)) * 6)
-static void sub_81367E8(u8 i)
+static void BufferMonMoveI(u8 i)
{
if (i < 4)
- sMonSummaryScreen->unk325A[i] = sub_8138BEC(&sMonSummaryScreen->currentMon, i);
+ sMonSummaryScreen->moveIds[i] = GetMonMoveBySlotId(&sMonSummaryScreen->currentMon, i);
- if (sMonSummaryScreen->unk325A[i] == 0)
+ if (sMonSummaryScreen->moveIds[i] == 0)
{
- StringCopy(sMonSummaryScreen->summary.unk3128[i], gUnknown_841620E);
- StringCopy(sMonSummaryScreen->summary.unk30B8[i], gUnknown_8416210);
- StringCopy(sMonSummaryScreen->summary.unk316C[i], gText_ThreeHyphens);
- StringCopy(sMonSummaryScreen->summary.unk3188[i], gText_ThreeHyphens);
- sUnknown_203B144->unk12[i] = 0xff;
- sUnknown_203B144->unk1C[i] = 0xff;
+ StringCopy(sMonSummaryScreen->summary.moveNameStrBufs[i], gText_PokeSum_OneHyphen);
+ StringCopy(sMonSummaryScreen->summary.moveCurPpStrBufs[i], gText_PokeSum_TwoHyphens);
+ StringCopy(sMonSummaryScreen->summary.movePowerStrBufs[i], gText_ThreeHyphens);
+ StringCopy(sMonSummaryScreen->summary.moveAccuracyStrBufs[i], gText_ThreeHyphens);
+ sMonSkillsPrinterXpos->curPp[i] = 0xff;
+ sMonSkillsPrinterXpos->maxPp[i] = 0xff;
return;
}
- sMonSummaryScreen->unk3264++;
- sMonSummaryScreen->unk3250[i] = gBattleMoves[sMonSummaryScreen->unk325A[i]].type;
- StringCopy(sMonSummaryScreen->summary.unk3128[i], gMoveNames[sMonSummaryScreen->unk325A[i]]);
+ sMonSummaryScreen->numMoves++;
+ sMonSummaryScreen->moveTypes[i] = gBattleMoves[sMonSummaryScreen->moveIds[i]].type;
+ StringCopy(sMonSummaryScreen->summary.moveNameStrBufs[i], gMoveNames[sMonSummaryScreen->moveIds[i]]);
if (i >= 4 && sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE)
{
- ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk30B8[i],
- gBattleMoves[sMonSummaryScreen->unk325A[i]].pp, STR_CONV_MODE_LEFT_ALIGN, 3);
- ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk30F0[i],
- gBattleMoves[sMonSummaryScreen->unk325A[i]].pp, STR_CONV_MODE_LEFT_ALIGN, 3);
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.moveCurPpStrBufs[i],
+ gBattleMoves[sMonSummaryScreen->moveIds[i]].pp, STR_CONV_MODE_LEFT_ALIGN, 3);
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.moveMaxPpStrBufs[i],
+ gBattleMoves[sMonSummaryScreen->moveIds[i]].pp, STR_CONV_MODE_LEFT_ALIGN, 3);
}
else
{
- ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk30B8[i],
- sub_8138C24(&sMonSummaryScreen->currentMon, i), STR_CONV_MODE_LEFT_ALIGN, 3);
- ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk30F0[i],
- CalculatePPWithBonus(sMonSummaryScreen->unk325A[i], GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_PP_BONUSES), i),
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.moveCurPpStrBufs[i],
+ GetMonPpByMoveSlot(&sMonSummaryScreen->currentMon, i), STR_CONV_MODE_LEFT_ALIGN, 3);
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.moveMaxPpStrBufs[i],
+ CalculatePPWithBonus(sMonSummaryScreen->moveIds[i], GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_PP_BONUSES), i),
STR_CONV_MODE_LEFT_ALIGN, 3);
}
- sUnknown_203B144->unk12[i] = MACRO_81367E8_0(2, sMonSummaryScreen->summary.unk30B8[i]);
- sUnknown_203B144->unk1C[i] = MACRO_81367E8_0(2, sMonSummaryScreen->summary.unk30F0[i]);
+ sMonSkillsPrinterXpos->curPp[i] = GetRightAlignXpos_NDigits(2, sMonSummaryScreen->summary.moveCurPpStrBufs[i]);
+ sMonSkillsPrinterXpos->maxPp[i] = GetRightAlignXpos_NDigits(2, sMonSummaryScreen->summary.moveMaxPpStrBufs[i]);
- if (gBattleMoves[sMonSummaryScreen->unk325A[i]].power <= 1)
- StringCopy(sMonSummaryScreen->summary.unk316C[i], gText_ThreeHyphens);
+ if (gBattleMoves[sMonSummaryScreen->moveIds[i]].power <= 1)
+ StringCopy(sMonSummaryScreen->summary.movePowerStrBufs[i], gText_ThreeHyphens);
else
- ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk316C[i], gBattleMoves[sMonSummaryScreen->unk325A[i]].power, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.movePowerStrBufs[i], gBattleMoves[sMonSummaryScreen->moveIds[i]].power, STR_CONV_MODE_RIGHT_ALIGN, 3);
- if (gBattleMoves[sMonSummaryScreen->unk325A[i]].accuracy == 0)
- StringCopy(sMonSummaryScreen->summary.unk3188[i], gText_ThreeHyphens);
+ if (gBattleMoves[sMonSummaryScreen->moveIds[i]].accuracy == 0)
+ StringCopy(sMonSummaryScreen->summary.moveAccuracyStrBufs[i], gText_ThreeHyphens);
else
- ConvertIntToDecimalStringN(sMonSummaryScreen->summary.unk3188[i], gBattleMoves[sMonSummaryScreen->unk325A[i]].accuracy, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ ConvertIntToDecimalStringN(sMonSummaryScreen->summary.moveAccuracyStrBufs[i], gBattleMoves[sMonSummaryScreen->moveIds[i]].accuracy, STR_CONV_MODE_RIGHT_ALIGN, 3);
}
-static u8 sub_8136AEC(void)
+static u8 PokeSum_HandleCreateSprites(void)
{
- switch (sMonSummaryScreen->unk327C)
+ switch (sMonSummaryScreen->spriteCreationStep)
{
case 0:
- sub_813ADA8(TAG_PSS_UNK_A0, TAG_PSS_UNK_A0);
+ CreateShinyStarObj(TAG_PSS_UNK_A0, TAG_PSS_UNK_A0);
break;
case 1:
- sub_813ABAC(TAG_PSS_UNK_96, TAG_PSS_UNK_96);
+ CreatePokerusIconObj(TAG_PSS_UNK_96, TAG_PSS_UNK_96);
break;
case 2:
- sub_813AFFC();
+ PokeSum_CreateMonMarkingsSprite();
break;
case 3:
- sub_8139F64(TAG_PSS_UNK_64, TAG_PSS_UNK_64);
+ CreateMoveSelectionCursorObjs(TAG_PSS_UNK_64, TAG_PSS_UNK_64);
break;
case 4:
- sub_813A254(TAG_PSS_UNK_6E, TAG_PSS_UNK_6E);
+ CreateMonStatusIconObj(TAG_PSS_UNK_6E, TAG_PSS_UNK_6E);
break;
case 5:
- sub_813A45C(TAG_PSS_UNK_78, TAG_PSS_UNK_78);
+ CreateHpBarObjs(TAG_PSS_UNK_78, TAG_PSS_UNK_78);
break;
case 6:
- sub_813A874(TAG_PSS_UNK_82, TAG_PSS_UNK_82);
+ CreateExpBarObjs(TAG_PSS_UNK_82, TAG_PSS_UNK_82);
break;
case 7:
- sub_8139CB0();
+ CreateBallIconObj();
break;
case 8:
- sub_8139DBC();
+ PokeSum_CreateMonIconSprite();
break;
default:
- sub_813995C();
+ PokeSum_CreateMonPicSprite();
return TRUE;
}
- sMonSummaryScreen->unk327C++;
+ sMonSummaryScreen->spriteCreationStep++;
return FALSE;
}
-static void sub_8136BAC(void)
+static void PokeSum_Setup_SpritesReset(void)
{
ResetSpriteData();
ResetPaletteFade();
@@ -2330,7 +2350,7 @@ static void sub_8136BAC(void)
ScanlineEffect_Stop();
}
-static void sub_8136BC4(void)
+static void PokeSum_Setup_InitGpu(void)
{
DmaClearLarge16(3, (void *)VRAM, VRAM_SIZE, 0x1000);
DmaClear32(3, (void *)OAM, OAM_SIZE);
@@ -2339,7 +2359,7 @@ static void sub_8136BC4(void)
SetGpuReg(REG_OFFSET_DISPCNT, 0);
ResetBgsAndClearDma3BusyFlags(0);
- InitBgsFromTemplates(0, sUnknown_8463EFC, NELEMS(sUnknown_8463EFC));
+ InitBgsFromTemplates(0, sBgTempaltes, NELEMS(sBgTempaltes));
ChangeBgX(0, 0, 0);
ChangeBgY(0, 0, 0);
@@ -2354,16 +2374,16 @@ static void sub_8136BC4(void)
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON | DISPCNT_WIN1_ON);
- sub_813B750(sMonSummaryScreen->curPageIndex);
+ PokeSum_UpdateWin1ActiveFlag(sMonSummaryScreen->curPageIndex);
SetGpuReg(REG_OFFSET_WININ, (WININ_WIN0_OBJ | WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_BG3) << 8);
SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3);
SetGpuReg(REG_OFFSET_WIN1V, 32 << 8 | 135);
SetGpuReg(REG_OFFSET_WIN1H, 2 << 8 | 240);
- SetBgTilemapBuffer(1, sMonSummaryScreen->unk0);
- SetBgTilemapBuffer(2, sMonSummaryScreen->unk1000);
- SetBgTilemapBuffer(3, sMonSummaryScreen->unk2000);
+ SetBgTilemapBuffer(1, sMonSummaryScreen->bg1TilemapBuffer);
+ SetBgTilemapBuffer(2, sMonSummaryScreen->bg2TilemapBuffer);
+ SetBgTilemapBuffer(3, sMonSummaryScreen->bg3TilemapBuffer);
ShowBg(0);
ShowBg(1);
@@ -2371,87 +2391,87 @@ static void sub_8136BC4(void)
ShowBg(3);
}
-static void sub_8136D54(void)
+static void PokeSum_FinishSetup(void)
{
if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE || sMonSummaryScreen->mode == PSS_MODE_FORGET_MOVE)
- sMonSummaryScreen->unk3018 = CreateTask(sub_81393D4, 0);
+ sMonSummaryScreen->inputHandlerTaskId = CreateTask(Task_InputHandler_SelectOrForgetMove, 0);
else
- sMonSummaryScreen->unk3018 = CreateTask(sub_8134840, 0);
+ sMonSummaryScreen->inputHandlerTaskId = CreateTask(Task_InputHandler_Info, 0);
- SetMainCallback2(sub_8137EE8);
+ SetMainCallback2(CB2_RunPokemonSummaryScreen);
}
-static void sub_8136DA4(const u8 * str)
+static void PokeSum_PrintPageName(const u8 * str)
{
- FillWindowPixelBuffer(sMonSummaryScreen->unk3000[0], 0);
- AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[0], 2, 4, 1, sUnknown_8463FA4[1], 0, str);
- PutWindowTilemap(sMonSummaryScreen->unk3000[0]);
+ FillWindowPixelBuffer(sMonSummaryScreen->windowIds[POKESUM_WIN_PAGE_NAME], 0);
+ AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_PAGE_NAME], 2, 4, 1, sLevelNickTextColors[1], 0, str);
+ PutWindowTilemap(sMonSummaryScreen->windowIds[POKESUM_WIN_PAGE_NAME]);
}
-static void sub_8136DF0(const u8 * str)
+static void PokeSum_PrintControlsString(const u8 * str)
{
u8 v0;
s32 width;
u8 r1;
- FillWindowPixelBuffer(sMonSummaryScreen->unk3000[1], 0);
+ FillWindowPixelBuffer(sMonSummaryScreen->windowIds[POKESUM_WIN_CONTROLS], 0);
width = GetStringWidth(0, str, 0);
- r1 = sMonSummaryScreen->unk3000[1];
- AddTextPrinterParameterized3(r1, 0, 0x54 - width, 0, sUnknown_8463FA4[1], 0, str);
- PutWindowTilemap(sMonSummaryScreen->unk3000[1]);
+ r1 = sMonSummaryScreen->windowIds[POKESUM_WIN_CONTROLS];
+ AddTextPrinterParameterized3(r1, 0, 0x54 - width, 0, sLevelNickTextColors[1], 0, str);
+ PutWindowTilemap(sMonSummaryScreen->windowIds[POKESUM_WIN_CONTROLS]);
}
-static void sub_8136E50(const u8 * msg)
+static void PrintMonLevelNickOnWindow2(const u8 * str)
{
- FillWindowPixelBuffer(sMonSummaryScreen->unk3000[2], 0);
+ FillWindowPixelBuffer(sMonSummaryScreen->windowIds[POKESUM_WIN_LVL_NICK], 0);
if (!sMonSummaryScreen->isEgg)
{
if (sMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO)
- AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[2], 2, 4, 2, sUnknown_8463FA4[1], 0xff, sMonSummaryScreen->summary.unk3088);
+ AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_LVL_NICK], 2, 4, 2, sLevelNickTextColors[1], TEXT_SPEED_FF, sMonSummaryScreen->summary.levelStrBuf);
- AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[2], 2, 40, 2, sUnknown_8463FA4[1], 0xff, sMonSummaryScreen->summary.unk3034);
+ AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_LVL_NICK], 2, 40, 2, sLevelNickTextColors[1], TEXT_SPEED_FF, sMonSummaryScreen->summary.nicknameStrBuf);
if (GetMonGender(&sMonSummaryScreen->currentMon) == MON_FEMALE)
- AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[2], 2, 105, 2, sUnknown_8463FA4[3], 0, sMonSummaryScreen->summary.unk3084);
+ AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_LVL_NICK], 2, 105, 2, sLevelNickTextColors[3], 0, sMonSummaryScreen->summary.genderSymbolStrBuf);
else
- AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[2], 2, 105, 2, sUnknown_8463FA4[2], 0, sMonSummaryScreen->summary.unk3084);
+ AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_LVL_NICK], 2, 105, 2, sLevelNickTextColors[2], 0, sMonSummaryScreen->summary.genderSymbolStrBuf);
}
- PutWindowTilemap(sMonSummaryScreen->unk3000[2]);
+ PutWindowTilemap(sMonSummaryScreen->windowIds[POKESUM_WIN_LVL_NICK]);
}
-static void sub_8136F4C(void)
+static void PokeSum_PrintRightPaneText(void)
{
- FillWindowPixelBuffer(sMonSummaryScreen->unk3000[3], 0);
+ FillWindowPixelBuffer(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], 0);
switch (sMonSummaryScreen->curPageIndex)
{
case PSS_PAGE_INFO:
- sub_8136FB0();
+ PrintInfoPage();
break;
case PSS_PAGE_SKILLS:
- sub_81370EC();
+ PrintSkillsPage();
break;
case PSS_PAGE_MOVES:
case PSS_PAGE_MOVES_INFO:
- sub_8137270();
+ PrintMovesPage();
break;
}
- PutWindowTilemap(sMonSummaryScreen->unk3000[3]);
+ PutWindowTilemap(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE]);
}
-static void sub_8136FB0(void)
+static void PrintInfoPage(void)
{
- AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 47, 19, sUnknown_8463FA4[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk3028);
+ AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], 2, 47, 19, sLevelNickTextColors[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.speciesNameStrBuf);
if (!sMonSummaryScreen->isEgg)
{
- AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 47 + sUnknown_203B144->unk00, 5, sUnknown_8463FA4[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk3064);
- AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 47, 49, sUnknown_8463FA4[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk3040);
- AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 47, 64, sUnknown_8463FA4[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk306C);
- AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 47, 79, sUnknown_8463FA4[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk3074);
+ AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], 2, 47 + sMonSkillsPrinterXpos->unk00, 5, sLevelNickTextColors[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.dexNumStrBuf);
+ AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], 2, 47, 49, sLevelNickTextColors[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.otNameStrBuf);
+ AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], 2, 47, 64, sLevelNickTextColors[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk306C);
+ AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], 2, 47, 79, sLevelNickTextColors[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.itemNameStrBuf);
}
else
{
@@ -2472,122 +2492,122 @@ static void sub_8136FB0(void)
if (sMonSummaryScreen->isBadEgg)
hatchMsgIndex = 0;
- AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 7, 45, sUnknown_8463FA4[0], TEXT_SPEED_FF, sUnknown_8463EC4[hatchMsgIndex]);
+ AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], 2, 7, 45, sLevelNickTextColors[0], TEXT_SPEED_FF, sEggHatchTimeTexts[hatchMsgIndex]);
}
}
-static void sub_81370EC(void)
+static void PrintSkillsPage(void)
{
- AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 14 + sUnknown_203B144->unk02, 4, sUnknown_8463FA4[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk3090);
- AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 50 + sUnknown_203B144->unk04, 22, sUnknown_8463FA4[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk309C[PSS_STAT_ATK]);
- AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 50 + sUnknown_203B144->unk06, 35, sUnknown_8463FA4[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk309C[PSS_STAT_DEF]);
- AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 50 + sUnknown_203B144->unk08, 48, sUnknown_8463FA4[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk309C[PSS_STAT_SPA]);
- AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 50 + sUnknown_203B144->unk0A, 61, sUnknown_8463FA4[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk309C[PSS_STAT_SPD]);
- AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 50 + sUnknown_203B144->unk0C, 74, sUnknown_8463FA4[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk309C[PSS_STAT_SPE]);
- AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 15 + sUnknown_203B144->unk0E, 87, sUnknown_8463FA4[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk31A4);
- AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 15 + sUnknown_203B144->unk10, 100, sUnknown_8463FA4[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk31B0);
+ AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], 2, 14 + sMonSkillsPrinterXpos->curHpStr, 4, sLevelNickTextColors[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.curHpStrBuf);
+ AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], 2, 50 + sMonSkillsPrinterXpos->atkStr, 22, sLevelNickTextColors[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_ATK]);
+ AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], 2, 50 + sMonSkillsPrinterXpos->defStr, 35, sLevelNickTextColors[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_DEF]);
+ AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], 2, 50 + sMonSkillsPrinterXpos->spAStr, 48, sLevelNickTextColors[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPA]);
+ AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], 2, 50 + sMonSkillsPrinterXpos->spDStr, 61, sLevelNickTextColors[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPD]);
+ AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], 2, 50 + sMonSkillsPrinterXpos->speStr, 74, sLevelNickTextColors[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.statValueStrBufs[PSS_STAT_SPE]);
+ AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], 2, 15 + sMonSkillsPrinterXpos->expStr, 87, sLevelNickTextColors[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.expPointsStrBuf);
+ AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], 2, 15 + sMonSkillsPrinterXpos->toNextLevel, 100, sLevelNickTextColors[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.expToNextLevelStrBuf);
}
-#define MACRO_8137270(x) ((x) * 28 + 5)
+#define GetMoveNamePrinterYpos(x) ((x) * 28 + 5)
+#define GetMovePpPinterYpos(x) ((x) * 28 + 16)
-static void sub_8137270(void)
+static void PrintMovesPage(void)
{
u8 i;
for (i = 0; i < 4; i++)
- sub_81372E4(i);
+ PokeSum_PrintMoveName(i);
if (sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO)
{
if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE)
- sub_81372E4(4);
+ PokeSum_PrintMoveName(4);
else
- AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2,
- 3, MACRO_8137270(4),
- sUnknown_8463EF0[0], TEXT_SPEED_FF, gFameCheckerText_Cancel);
+ AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], 2,
+ 3, GetMoveNamePrinterYpos(4),
+ sPrintMoveTextColors[0], TEXT_SPEED_FF, gFameCheckerText_Cancel);
}
}
-#define MACRO_81372E4(x) ((x) * 28 + 16)
-
-static void sub_81372E4(u8 i)
+static void PokeSum_PrintMoveName(u8 i)
{
- u8 v0 = 0;
- u8 curPP = sub_8138C24(&sMonSummaryScreen->currentMon, i);
- u16 move = sMonSummaryScreen->unk325A[i];
+ u8 colorIdx = 0;
+ u8 curPP = GetMonPpByMoveSlot(&sMonSummaryScreen->currentMon, i);
+ u16 move = sMonSummaryScreen->moveIds[i];
u8 ppBonuses = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_PP_BONUSES);
u8 maxPP = CalculatePPWithBonus(move, ppBonuses, i);
if (i == 4)
curPP = maxPP;
- AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 3, MACRO_8137270(i), sUnknown_8463EF0[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk3128[i]);
+ AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], 2, 3, GetMoveNamePrinterYpos(i), sPrintMoveTextColors[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.moveNameStrBufs[i]);
- if (sMonSummaryScreen->unk325A[i] == 0 || (curPP == maxPP))
- v0 = 0;
+ if (sMonSummaryScreen->moveIds[i] == 0 || (curPP == maxPP))
+ colorIdx = 0;
else if (curPP == 0)
- v0 = 3;
+ colorIdx = 3;
else if (maxPP == 3)
{
if (curPP == 2)
- v0 = 2;
+ colorIdx = 2;
else if (curPP == 1)
- v0 = 1;
+ colorIdx = 1;
}
else if (maxPP == 2)
{
if (curPP == 1)
- v0 = 1;
+ colorIdx = 1;
}
else
{
if (curPP <= (maxPP / 4))
- v0 = 2;
+ colorIdx = 2;
else if (curPP <= (maxPP / 2))
- v0 = 1;
+ colorIdx = 1;
}
- AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 36, MACRO_81372E4(i), sUnknown_8463EF0[v0], TEXT_SPEED_FF, gUnknown_8416238);
- AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 46 + sUnknown_203B144->unk12[i], MACRO_81372E4(i), sUnknown_8463EF0[v0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk30B8[i]);
+ AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], 2, 36, GetMovePpPinterYpos(i), sPrintMoveTextColors[colorIdx], TEXT_SPEED_FF,
+ gText_PokeSum_PP);
+ AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], 2, 46 + sMonSkillsPrinterXpos->curPp[i], GetMovePpPinterYpos(i), sPrintMoveTextColors[colorIdx], TEXT_SPEED_FF, sMonSummaryScreen->summary.moveCurPpStrBufs[i]);
- if (sMonSummaryScreen->unk325A[i] != MOVE_NONE)
+ if (sMonSummaryScreen->moveIds[i] != MOVE_NONE)
{
- AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 58, MACRO_81372E4(i), sUnknown_8463EF0[v0], TEXT_SPEED_FF, gText_Slash);
- AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[3], 2, 64 + sUnknown_203B144->unk1C[i], MACRO_81372E4(i), sUnknown_8463EF0[v0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk30F0[i]);
+ AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], 2, 58, GetMovePpPinterYpos(i), sPrintMoveTextColors[colorIdx], TEXT_SPEED_FF, gText_Slash);
+ AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], 2, 64 + sMonSkillsPrinterXpos->maxPp[i], GetMovePpPinterYpos(i), sPrintMoveTextColors[colorIdx], TEXT_SPEED_FF, sMonSummaryScreen->summary.moveMaxPpStrBufs[i]);
}
}
-static void sub_81374E8(void)
+static void PokeSum_PrintBottomPaneText(void)
{
- FillWindowPixelBuffer(sMonSummaryScreen->unk3000[4], 0);
+ FillWindowPixelBuffer(sMonSummaryScreen->windowIds[POKESUM_WIN_TRAINER_MEMO], 0);
switch (sMonSummaryScreen->curPageIndex)
{
case PSS_PAGE_INFO:
- sub_8137554();
+ PokeSum_PrintTrainerMemo();
break;
case PSS_PAGE_SKILLS:
- sub_8137A90();
+ PokeSum_PrintExpPoints_NextLv();
break;
case PSS_PAGE_MOVES_INFO:
- sub_8137AF8();
+ PokeSum_PrintSelectedMoveStats();
break;
case PSS_PAGE_MOVES:
break;
}
- PutWindowTilemap(sMonSummaryScreen->unk3000[4]);
+ PutWindowTilemap(sMonSummaryScreen->windowIds[POKESUM_WIN_TRAINER_MEMO]);
}
-static void sub_8137554(void)
+static void PokeSum_PrintTrainerMemo(void)
{
if (!sMonSummaryScreen->isEgg)
- sub_8137944();
+ PokeSum_PrintTrainerMemo_Mon();
else
- sub_8137970();
+ PokeSum_PrintTrainerMemo_Egg();
}
-static void sub_8137578(void)
+static void PokeSum_PrintTrainerMemo_Mon_HeldByOT(void)
{
u8 nature;
u8 level;
@@ -2609,57 +2629,59 @@ static void sub_8137578(void)
metLocation = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MET_LOCATION);
- if (sub_813B838(metLocation) == TRUE)
+ if (MapSecIsInKantoOrSevii(metLocation) == TRUE)
GetMapNameGeneric_(mapNameStr, metLocation);
else
{
- if (sMonSummaryScreen->isEnemyParty == TRUE || sub_8138B4C() == TRUE)
- StringCopy(mapNameStr, gUnknown_8419C13);
+ if (sMonSummaryScreen->isEnemyParty == TRUE || IsMultiBattlePartner() == TRUE)
+ StringCopy(mapNameStr, gText_Somewhere);
else
- StringCopy(mapNameStr, gUnknown_8419C0B);
+ StringCopy(mapNameStr, gText_PokeSum_ATrade);
}
DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, mapNameStr);
- if (GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MET_LEVEL) == 0)
+ // These pairs of strings are bytewise identical to each other in English,
+ // but Japanese uses different grammar for Bold and Gentle natures.
+ if (GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MET_LEVEL) == 0) // Hatched
{
- if (GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_EVENT_LEGAL) == 1)
+ if (GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_EVENT_LEGAL) == 1) // Fateful encounter
{
- if (sub_813B7E0(nature))
- DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_841996D);
+ if (PokeSum_IsMonBoldOrGentle(nature))
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gText_PokeSum_FatefulEncounterHatched_BoldGentleGrammar);
else
- DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_841992F);
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gText_PokeSum_FatefulEncounterHatched);
}
else
{
- if (sub_813B7E0(nature))
- DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_84198D5);
+ if (PokeSum_IsMonBoldOrGentle(nature))
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gText_PokeSum_Hatched_BoldGentleGrammar);
else
- DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_84198B4);
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gText_PokeSum_Hatched);
}
}
else
{
if (metLocation == METLOC_FATEFUL_ENCOUNTER)
{
- if (sub_813B7E0(nature))
- DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_84197ED);
+ if (PokeSum_IsMonBoldOrGentle(nature))
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gText_PokeSum_FatefulEncounterMet_BoldGentleGrammar);
else
- DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_84197B8);
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gText_PokeSum_FatefulEncounterMet);
}
else
{
- if (sub_813B7E0(nature))
- DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_8419841);
+ if (PokeSum_IsMonBoldOrGentle(nature))
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gText_PokeSum_Met_BoldGentleGrammar);
else
- DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_8419822);
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gText_PokeSum_Met);
}
}
- AddTextPrinterParameterized4(sMonSummaryScreen->unk3000[4], 2, 0, 3, 0, 0, sUnknown_8463FA4[0], TEXT_SPEED_FF, natureMetOrHatchedAtLevelStr);
+ AddTextPrinterParameterized4(sMonSummaryScreen->windowIds[POKESUM_WIN_TRAINER_MEMO], 2, 0, 3, 0, 0, sLevelNickTextColors[0], TEXT_SPEED_FF, natureMetOrHatchedAtLevelStr);
}
-static void sub_8137724(void)
+static void PokeSum_PrintTrainerMemo_Mon_NotHeldByOT(void)
{
u8 nature;
u8 level;
@@ -2682,87 +2704,89 @@ static void sub_8137724(void)
metLocation = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MET_LOCATION);
- if (!sub_813B838(metLocation) || !sub_813B7F8())
+ if (!MapSecIsInKantoOrSevii(metLocation) || !CurrentMonIsFromGBA())
{
- if (sub_8138B4C() == TRUE)
+ if (IsMultiBattlePartner() == TRUE)
{
- sub_8137578();
+ PokeSum_PrintTrainerMemo_Mon_HeldByOT();
return;
}
if (metLocation == METLOC_FATEFUL_ENCOUNTER)
{
- if (sub_813B7E0(nature))
- DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_84197ED);
+ if (PokeSum_IsMonBoldOrGentle(nature))
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gText_PokeSum_FatefulEncounterMet_BoldGentleGrammar);
else
- DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_84197B8);
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gText_PokeSum_FatefulEncounterMet);
}
else
{
- if (sub_813B7E0(nature))
- DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_841979D);
+ if (PokeSum_IsMonBoldOrGentle(nature))
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gText_PokeSum_MetInATrade_BoldGentleGrammar);
else
- DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_8419782);
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gText_PokeSum_MetInATrade);
}
- AddTextPrinterParameterized4(sMonSummaryScreen->unk3000[4], 2, 0, 3, 0, 0, sUnknown_8463FA4[0], TEXT_SPEED_FF, natureMetOrHatchedAtLevelStr);
+ AddTextPrinterParameterized4(sMonSummaryScreen->windowIds[POKESUM_WIN_TRAINER_MEMO], 2, 0, 3, 0, 0, sLevelNickTextColors[0], TEXT_SPEED_FF, natureMetOrHatchedAtLevelStr);
return;
}
- if (sub_813B838(metLocation) == TRUE)
+ if (MapSecIsInKantoOrSevii(metLocation) == TRUE)
GetMapNameGeneric_(mapNameStr, metLocation);
else
- StringCopy(mapNameStr, gUnknown_8419C0B);
+ StringCopy(mapNameStr, gText_PokeSum_ATrade);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, mapNameStr);
- if (GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MET_LEVEL) == 0)
+ // These pairs of strings are bytewise identical to each other in English,
+ // but Japanese uses different grammar for Bold and Gentle natures.
+ if (GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MET_LEVEL) == 0) // hatched from an EGG
{
- if (GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_EVENT_LEGAL) == 1)
+ if (GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_EVENT_LEGAL) == 1) // Fateful encounter
{
- if (sub_813B7E0(nature))
- DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_84199F4);
+ if (PokeSum_IsMonBoldOrGentle(nature))
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gText_PokeSum_ApparentlyFatefulEncounterHatched_BoldGentleGrammar);
else
- DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_84199AB);
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gText_PokeSum_ApparentlyFatefulEncounterHatched);
}
else
{
- if (sub_813B7E0(nature))
- DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_841988A);
+ if (PokeSum_IsMonBoldOrGentle(nature))
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gText_PokeSum_ApparentlyMet_BoldGentleGrammar);
else
- DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_8419860);
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gText_PokeSum_ApparentlyMet);
}
}
else
{
if (metLocation == METLOC_FATEFUL_ENCOUNTER)
{
- if (sub_813B7E0(nature))
- DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_84197ED);
+ if (PokeSum_IsMonBoldOrGentle(nature))
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gText_PokeSum_FatefulEncounterMet_BoldGentleGrammar);
else
- DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_84197B8);
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gText_PokeSum_FatefulEncounterMet);
}
else
{
- if (sub_813B7E0(nature))
- DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_841988A);
+ if (PokeSum_IsMonBoldOrGentle(nature))
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gText_PokeSum_ApparentlyMet_BoldGentleGrammar);
else
- DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gUnknown_8419860);
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(natureMetOrHatchedAtLevelStr, gText_PokeSum_ApparentlyMet);
}
}
- AddTextPrinterParameterized4(sMonSummaryScreen->unk3000[4], 2, 0, 3, 0, 0, sUnknown_8463FA4[0], TEXT_SPEED_FF, natureMetOrHatchedAtLevelStr);
+ AddTextPrinterParameterized4(sMonSummaryScreen->windowIds[POKESUM_WIN_TRAINER_MEMO], 2, 0, 3, 0, 0, sLevelNickTextColors[0], TEXT_SPEED_FF, natureMetOrHatchedAtLevelStr);
}
-static void sub_8137944(void)
+static void PokeSum_PrintTrainerMemo_Mon(void)
{
- if (sub_813847C(&sMonSummaryScreen->currentMon) == TRUE)
- sub_8137578();
+ if (PokeSum_BufferOtName_IsEqualToCurrentOwner(&sMonSummaryScreen->currentMon) == TRUE)
+ PokeSum_PrintTrainerMemo_Mon_HeldByOT();
else
- sub_8137724();
+ PokeSum_PrintTrainerMemo_Mon_NotHeldByOT();
}
-static void sub_8137970(void)
+static void PokeSum_PrintTrainerMemo_Egg(void)
{
u8 metLocation;
u8 version;
@@ -2784,7 +2808,7 @@ static void sub_8137970(void)
chosenStrIndex = 2;
if (chosenStrIndex == 0 || chosenStrIndex == 2)
- if (sub_813847C(&sMonSummaryScreen->currentMon) == FALSE)
+ if (PokeSum_BufferOtName_IsEqualToCurrentOwner(&sMonSummaryScreen->currentMon) == FALSE)
chosenStrIndex++;
}
}
@@ -2804,7 +2828,7 @@ static void sub_8137970(void)
else if (metLocation == METLOC_SPECIAL_EGG)
chosenStrIndex = 2;
- if (sub_813847C(&sMonSummaryScreen->currentMon) == FALSE)
+ if (PokeSum_BufferOtName_IsEqualToCurrentOwner(&sMonSummaryScreen->currentMon) == FALSE)
chosenStrIndex++;
}
}
@@ -2812,153 +2836,153 @@ static void sub_8137970(void)
if (sMonSummaryScreen->isBadEgg)
chosenStrIndex = 0;
- AddTextPrinterParameterized4(sMonSummaryScreen->unk3000[4], 2, 0, 3, 0, 0, sUnknown_8463FA4[0], TEXT_SPEED_FF, sUnknown_8463ED4[chosenStrIndex]);
+ AddTextPrinterParameterized4(sMonSummaryScreen->windowIds[POKESUM_WIN_TRAINER_MEMO], 2, 0, 3, 0, 0, sLevelNickTextColors[0], TEXT_SPEED_FF, sEggOriginTexts[chosenStrIndex]);
}
-static void sub_8137A90(void)
+static void PokeSum_PrintExpPoints_NextLv(void)
{
- AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[4], 2,
+ AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_TRAINER_MEMO], 2,
26, 7,
- sUnknown_8463FA4[0], TEXT_SPEED_FF,
- gUnknown_8419C4D);
+ sLevelNickTextColors[0], TEXT_SPEED_FF,
+ gText_PokeSum_ExpPoints);
- AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[4], 2,
+ AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_TRAINER_MEMO], 2,
26, 20,
- sUnknown_8463FA4[0], TEXT_SPEED_FF,
- gUnknown_8419C59);
+ sLevelNickTextColors[0], TEXT_SPEED_FF,
+ gText_PokeSum_NextLv);
}
-static void sub_8137AF8(void)
+static void PokeSum_PrintSelectedMoveStats(void)
{
- if (sUnknown_203B16D < 5)
+ if (sMoveSelectionCursorPos < 5)
{
- if (sMonSummaryScreen->mode != PSS_MODE_SELECT_MOVE && sUnknown_203B16D == 4)
+ if (sMonSummaryScreen->mode != PSS_MODE_SELECT_MOVE && sMoveSelectionCursorPos == 4)
return;
- AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[4], 2,
+ AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_TRAINER_MEMO], 2,
57, 1,
- sUnknown_8463FA4[0], TEXT_SPEED_FF,
- sMonSummaryScreen->summary.unk316C[sUnknown_203B16D]);
+ sLevelNickTextColors[0], TEXT_SPEED_FF,
+ sMonSummaryScreen->summary.movePowerStrBufs[sMoveSelectionCursorPos]);
- AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[4], 2,
+ AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[POKESUM_WIN_TRAINER_MEMO], 2,
57, 15,
- sUnknown_8463FA4[0], TEXT_SPEED_FF,
- sMonSummaryScreen->summary.unk3188[sUnknown_203B16D]);
+ sLevelNickTextColors[0], TEXT_SPEED_FF,
+ sMonSummaryScreen->summary.moveAccuracyStrBufs[sMoveSelectionCursorPos]);
- AddTextPrinterParameterized4(sMonSummaryScreen->unk3000[4], 2,
+ AddTextPrinterParameterized4(sMonSummaryScreen->windowIds[POKESUM_WIN_TRAINER_MEMO], 2,
7, 42,
0, 0,
- sUnknown_8463FA4[0], TEXT_SPEED_FF,
- gMoveDescriptionPointers[sMonSummaryScreen->unk325A[sUnknown_203B16D] - 1]);
+ sLevelNickTextColors[0], TEXT_SPEED_FF,
+ gMoveDescriptionPointers[sMonSummaryScreen->moveIds[sMoveSelectionCursorPos] - 1]);
}
}
-static void sub_8137BD0(void)
+static void PokeSum_PrintAbilityDataOrMoveTypes(void)
{
switch (sMonSummaryScreen->curPageIndex)
{
case PSS_PAGE_INFO:
break;
case PSS_PAGE_SKILLS:
- sub_8137C18();
+ PokeSum_PrintAbilityNameAndDesc();
break;
case PSS_PAGE_MOVES:
case PSS_PAGE_MOVES_INFO:
- sub_8137C90();
+ PokeSum_DrawMoveTypeIcons();
break;
}
- PutWindowTilemap(sMonSummaryScreen->unk3000[5]);
+ PutWindowTilemap(sMonSummaryScreen->windowIds[5]);
}
-static void sub_8137C18(void)
+static void PokeSum_PrintAbilityNameAndDesc(void)
{
- FillWindowPixelBuffer(sMonSummaryScreen->unk3000[5], 0);
+ FillWindowPixelBuffer(sMonSummaryScreen->windowIds[5], 0);
- AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[5], 2,
- 66, 1, sUnknown_8463FA4[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.unk31BC);
+ AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[5], 2,
+ 66, 1, sLevelNickTextColors[0], TEXT_SPEED_FF, sMonSummaryScreen->summary.abilityNameStrBuf);
- AddTextPrinterParameterized3(sMonSummaryScreen->unk3000[5], 2,
- 2, 15, sUnknown_8463FA4[0], TEXT_SPEED_FF,
- sMonSummaryScreen->summary.unk31CC);
+ AddTextPrinterParameterized3(sMonSummaryScreen->windowIds[5], 2,
+ 2, 15, sLevelNickTextColors[0], TEXT_SPEED_FF,
+ sMonSummaryScreen->summary.abilityDescStrBuf);
}
-static void sub_8137C90(void)
+static void PokeSum_DrawMoveTypeIcons(void)
{
u8 i;
- FillWindowPixelBuffer(sMonSummaryScreen->unk3000[5], 0);
+ FillWindowPixelBuffer(sMonSummaryScreen->windowIds[5], 0);
for (i = 0; i < 4; i++)
{
- if (sMonSummaryScreen->unk325A[i] == MOVE_NONE)
+ if (sMonSummaryScreen->moveIds[i] == MOVE_NONE)
continue;
- BlitMoveInfoIcon(sMonSummaryScreen->unk3000[5], sMonSummaryScreen->unk3250[i] + 1, 3, MACRO_8137270(i));
+ BlitMoveInfoIcon(sMonSummaryScreen->windowIds[5], sMonSummaryScreen->moveTypes[i] + 1, 3, GetMoveNamePrinterYpos(i));
}
if (sMonSummaryScreen->mode == PSS_MODE_SELECT_MOVE)
- BlitMoveInfoIcon(sMonSummaryScreen->unk3000[5], sMonSummaryScreen->unk3250[4] + 1, 3, MACRO_8137270(4));
+ BlitMoveInfoIcon(sMonSummaryScreen->windowIds[5], sMonSummaryScreen->moveTypes[4] + 1, 3, GetMoveNamePrinterYpos(4));
}
-static void sub_8137D28(u8 curPageIndex)
+static void PokeSum_PrintPageHeaderText(u8 curPageIndex)
{
switch (curPageIndex)
{
case PSS_PAGE_INFO:
- sub_8136DA4(gUnknown_8419C1D);
+ PokeSum_PrintPageName(gText_PokeSum_PageName_PokemonInfo);
if (!sMonSummaryScreen->isEgg)
- sub_8136DF0(gUnknown_8419C62);
+ PokeSum_PrintControlsString(gText_PokeSum_Controls_PageCancel);
else
- sub_8136DF0(gUnknown_8419C72);
+ PokeSum_PrintControlsString(gText_PokeSum_Controls_Cancel);
- sub_8136E50(gUnknown_8419C45);
+ PrintMonLevelNickOnWindow2(gText_PokeSum_NoData);
break;
case PSS_PAGE_SKILLS:
- sub_8136DA4(gUnknown_8419C2A);
- sub_8136DF0(gUnknown_8419C7B);
- sub_8136E50(gUnknown_8419C45);
+ PokeSum_PrintPageName(gText_PokeSum_PageName_PokemonSkills);
+ PokeSum_PrintControlsString(gText_PokeSum_Controls_Page);
+ PrintMonLevelNickOnWindow2(gText_PokeSum_NoData);
break;
case PSS_PAGE_MOVES:
- sub_8136DA4(gUnknown_8419C39);
- sub_8136DF0(gUnknown_8419C82);
- sub_8136E50(gUnknown_8419C45);
+ PokeSum_PrintPageName(gText_PokeSum_PageName_KnownMoves);
+ PokeSum_PrintControlsString(gText_PokeSum_Controls_PageDetail);
+ PrintMonLevelNickOnWindow2(gText_PokeSum_NoData);
break;
case PSS_PAGE_MOVES_INFO:
- sub_8136DA4(gUnknown_8419C39);
+ PokeSum_PrintPageName(gText_PokeSum_PageName_KnownMoves);
if (!gMain.inBattle)
- sub_8136DF0(gUnknown_8419C92);
+ PokeSum_PrintControlsString(gText_PokeSum_Controls_PickSwitch);
else
- sub_8136DF0(gUnknown_8419CA2);
- sub_8136E50(gUnknown_8419C45);
+ PokeSum_PrintControlsString(gText_PokeSum_Controls_Pick);
+ PrintMonLevelNickOnWindow2(gText_PokeSum_NoData);
break;
case PSS_PAGE_MOVE_DELETER:
- sub_8136DA4(gUnknown_8419C39);
- sub_8136DF0(gUnknown_8419CA9);
- sub_8136E50(gUnknown_8419C45);
+ PokeSum_PrintPageName(gText_PokeSum_PageName_KnownMoves);
+ PokeSum_PrintControlsString(gText_PokeSum_Controls_PickDelete);
+ PrintMonLevelNickOnWindow2(gText_PokeSum_NoData);
break;
default:
break;
}
}
-static void sub_8137E28(void)
+static void CommitStaticWindowTilemaps(void)
{
- PutWindowTilemap(sMonSummaryScreen->unk3000[0]);
- PutWindowTilemap(sMonSummaryScreen->unk3000[1]);
- PutWindowTilemap(sMonSummaryScreen->unk3000[2]);
+ PutWindowTilemap(sMonSummaryScreen->windowIds[POKESUM_WIN_PAGE_NAME]);
+ PutWindowTilemap(sMonSummaryScreen->windowIds[POKESUM_WIN_CONTROLS]);
+ PutWindowTilemap(sMonSummaryScreen->windowIds[POKESUM_WIN_LVL_NICK]);
}
-static void sub_8137E64(u8 taskId)
+static void Task_DestroyResourcesOnExit(u8 taskId)
{
- sub_813AF90();
+ PokeSum_DestroySprites();
FreeAllSpritePalettes();
if (IsCryPlayingOrClearCrySongs() == TRUE)
StopCryAndClearCrySongs();
- sub_8138414(sMonSummaryScreen->curPageIndex);
+ PokeSum_RemoveWindows(sMonSummaryScreen->curPageIndex);
FreeAllWindowBuffers();
DestroyTask(taskId);
SetMainCallback2(sMonSummaryScreen->savedCallback);
@@ -2966,10 +2990,10 @@ static void sub_8137E64(u8 taskId)
sLastViewedMonIndex = GetLastViewedMonIndex();
FREE_AND_SET_NULL_IF_SET(sMonSummaryScreen);
- FREE_AND_SET_NULL_IF_SET(sUnknown_203B144);
+ FREE_AND_SET_NULL_IF_SET(sMonSkillsPrinterXpos);
}
-static void sub_8137EE8(void)
+static void CB2_RunPokemonSummaryScreen(void)
{
RunTasks();
AnimateSprites();
@@ -2977,229 +3001,229 @@ static void sub_8137EE8(void)
UpdatePaletteFade();
}
-static void sub_8137F00(void)
+static void PokeSum_FlipPages_SlideHpExpBarsOut(void)
{
u8 i;
for (i = 0; i < 11; i++)
{
- if (sUnknown_203B160->unk2C[i] < 240)
+ if (sExpBarObjs->xpos[i] < 240)
{
- sUnknown_203B160->unk2C[i] += 60;
- sUnknown_203B160->sprites[i]->pos1.x = sUnknown_203B160->unk2C[i] + 60;
+ sExpBarObjs->xpos[i] += 60;
+ sExpBarObjs->sprites[i]->pos1.x = sExpBarObjs->xpos[i] + 60;
}
if (i >= 9)
continue;
- if (sUnknown_203B15C->unk28[i] < 240)
+ if (sHpBarObjs->xpos[i] < 240)
{
- sUnknown_203B15C->unk28[i] += 60;
- sUnknown_203B15C->sprites[i]->pos1.x = sUnknown_203B15C->unk28[i] + 60;
+ sHpBarObjs->xpos[i] += 60;
+ sHpBarObjs->sprites[i]->pos1.x = sHpBarObjs->xpos[i] + 60;
}
}
}
-static void sub_8137F68(void)
+static void PokeSum_FlipPages_SlideHpExpBarsIn(void)
{
u8 i;
for (i = 0; i < 11; i++)
{
- if (sUnknown_203B160->unk2C[i] > 156 + (8 * i))
+ if (sExpBarObjs->xpos[i] > 156 + (8 * i))
{
- sUnknown_203B160->unk2C[i] -= 60;
+ sExpBarObjs->xpos[i] -= 60;
- if (sUnknown_203B160->unk2C[i] < 156 + (8 * i))
- sUnknown_203B160->unk2C[i] = 156 + (8 * i);
+ if (sExpBarObjs->xpos[i] < 156 + (8 * i))
+ sExpBarObjs->xpos[i] = 156 + (8 * i);
- sUnknown_203B160->sprites[i]->pos1.x = sUnknown_203B160->unk2C[i];
+ sExpBarObjs->sprites[i]->pos1.x = sExpBarObjs->xpos[i];
}
if (i >= 9)
continue;
- if (sUnknown_203B15C->unk28[i] > 172 + (8 * i))
+ if (sHpBarObjs->xpos[i] > 172 + (8 * i))
{
- sUnknown_203B15C->unk28[i] -= 60;
+ sHpBarObjs->xpos[i] -= 60;
- if (sUnknown_203B15C->unk28[i] < 172 + (8 * i))
- sUnknown_203B15C->unk28[i] = 172 + (8 * i);
+ if (sHpBarObjs->xpos[i] < 172 + (8 * i))
+ sHpBarObjs->xpos[i] = 172 + (8 * i);
- sUnknown_203B15C->sprites[i]->pos1.x = sUnknown_203B15C->unk28[i];
+ sHpBarObjs->sprites[i]->pos1.x = sHpBarObjs->xpos[i];
}
}
}
-static void sub_8137FF4(void)
+static void PokeSum_FlipPages_SlideLayerLeft(void)
{
- if (sMonSummaryScreen->unk324C < 240)
+ if (sMonSummaryScreen->flipPagesBgHofs < 240)
{
- sMonSummaryScreen->unk324C += 60;
- if (sMonSummaryScreen->unk324C > 240)
- sMonSummaryScreen->unk324C = 240;
+ sMonSummaryScreen->flipPagesBgHofs += 60;
+ if (sMonSummaryScreen->flipPagesBgHofs > 240)
+ sMonSummaryScreen->flipPagesBgHofs = 240;
- if (sMonSummaryScreen->unk3238 == 0)
- SetGpuReg(REG_OFFSET_BG2HOFS, -sMonSummaryScreen->unk324C);
+ if (sMonSummaryScreen->whichBgLayerToTranslate == 0)
+ SetGpuReg(REG_OFFSET_BG2HOFS, -sMonSummaryScreen->flipPagesBgHofs);
else
- SetGpuReg(REG_OFFSET_BG1HOFS, -sMonSummaryScreen->unk324C);
+ SetGpuReg(REG_OFFSET_BG1HOFS, -sMonSummaryScreen->flipPagesBgHofs);
}
}
-static void sub_813805C(void)
+static void PokeSum_FlipPages_SlideLayeRight(void)
{
- if (sMonSummaryScreen->unk324C >= 60)
+ if (sMonSummaryScreen->flipPagesBgHofs >= 60)
{
- sMonSummaryScreen->unk324C -= 60;
- if (sMonSummaryScreen->unk324C < 0)
- sMonSummaryScreen->unk324C = 0;
+ sMonSummaryScreen->flipPagesBgHofs -= 60;
+ if (sMonSummaryScreen->flipPagesBgHofs < 0)
+ sMonSummaryScreen->flipPagesBgHofs = 0;
- if (sMonSummaryScreen->unk3238 == 0)
- SetGpuReg(REG_OFFSET_BG1HOFS, -sMonSummaryScreen->unk324C);
+ if (sMonSummaryScreen->whichBgLayerToTranslate == 0)
+ SetGpuReg(REG_OFFSET_BG1HOFS, -sMonSummaryScreen->flipPagesBgHofs);
else
- SetGpuReg(REG_OFFSET_BG2HOFS, -sMonSummaryScreen->unk324C);
+ SetGpuReg(REG_OFFSET_BG2HOFS, -sMonSummaryScreen->flipPagesBgHofs);
if (sMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO)
- SetGpuReg(REG_OFFSET_BG0HOFS, -sMonSummaryScreen->unk324C);
+ SetGpuReg(REG_OFFSET_BG0HOFS, -sMonSummaryScreen->flipPagesBgHofs);
}
}
-static void sub_81380F0(void)
+static void PokeSum_FlipPages_HandleBgHofs(void)
{
- if (sMonSummaryScreen->unk3224 == 1)
+ if (sMonSummaryScreen->pageFlipDirection == 1) // Right
{
if (sMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO)
- sub_8137FF4();
+ PokeSum_FlipPages_SlideLayerLeft();
else
- sub_813805C();
+ PokeSum_FlipPages_SlideLayeRight();
}
else
{
if (sMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES)
- sub_813805C();
+ PokeSum_FlipPages_SlideLayeRight();
else
- sub_8137FF4();
+ PokeSum_FlipPages_SlideLayerLeft();
}
}
-static void sub_8138134(void)
+static void PokeSum_FlipPages_HandleHpExpBarSprites(void)
{
if (sMonSummaryScreen->curPageIndex == PSS_PAGE_SKILLS
- && sMonSummaryScreen->unk3224 == 0)
- sub_8137F68();
+ && sMonSummaryScreen->pageFlipDirection == 0)
+ PokeSum_FlipPages_SlideHpExpBarsIn();
if (sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES
- && sMonSummaryScreen->unk3224 == 1)
- sub_8137F00();
+ && sMonSummaryScreen->pageFlipDirection == 1)
+ PokeSum_FlipPages_SlideHpExpBarsOut();
}
-static void sub_813817C(void)
+static void VBlankCB_PokemonSummaryScreen(void)
{
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
- if (sMonSummaryScreen->unk3244 == FALSE)
+ if (sMonSummaryScreen->flippingPages == FALSE)
return;
- sub_81380F0();
- sub_8138134();
+ PokeSum_FlipPages_HandleBgHofs();
+ PokeSum_FlipPages_HandleHpExpBarSprites();
}
-static void sub_81381AC(void)
+static void PokeSum_Setup_ResetCallbacks(void)
{
SetVBlankCallback(NULL);
SetHBlankCallback(NULL);
}
-static void sub_81381C0(void)
+static void PokeSum_Setup_SetVBlankCallback(void)
{
- SetVBlankCallback(sub_813817C);
+ SetVBlankCallback(VBlankCB_PokemonSummaryScreen);
}
-static void sub_81381D0(void)
+static void PokeSum_CreateWindows(void)
{
u8 i;
- InitWindows(sUnknown_8463F9C);
+ InitWindows(sWindowTemplates_Dummy);
for (i = 0; i < 3; i++)
- sMonSummaryScreen->unk3000[i] = AddWindow(&sUnknown_8463F0C[i]);
+ sMonSummaryScreen->windowIds[i] = AddWindow(&sWindowTemplates_Permanent_Bg1[i]);
for (i = 0; i < 4; i++)
switch (sMonSummaryScreen->curPageIndex)
{
case PSS_PAGE_INFO:
- sMonSummaryScreen->unk3000[i + 3] = AddWindow(&sUnknown_8463F3C[i]);
+ sMonSummaryScreen->windowIds[i + 3] = AddWindow(&sWindowTemplates_Info[i]);
break;
case PSS_PAGE_SKILLS:
- sMonSummaryScreen->unk3000[i + 3] = AddWindow(&sUnknown_8463F5C[i]);
+ sMonSummaryScreen->windowIds[i + 3] = AddWindow(&sWindowTemplates_Skills[i]);
break;
case PSS_PAGE_MOVES:
case PSS_PAGE_MOVES_INFO:
- sMonSummaryScreen->unk3000[i + 3] = AddWindow(&sUnknown_8463F7C[i]);
+ sMonSummaryScreen->windowIds[i + 3] = AddWindow(&sWindowTemplates_Moves[i]);
break;
default:
break;
}
}
-static void sub_8138280(u8 curPageIndex)
+static void PokeSum_AddWindows(u8 curPageIndex)
{
u8 i;
u32 bgPriority1 = GetGpuReg(REG_OFFSET_BG1CNT) & 3;
u32 bgPriority2 = GetGpuReg(REG_OFFSET_BG2CNT) & 3;
for (i = 0; i < 7; i++)
- sMonSummaryScreen->unk3000[i] = 0xff;
+ sMonSummaryScreen->windowIds[i] = 0xff;
- if ((sMonSummaryScreen->unk3224 == 1 && sMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO)
- || (sMonSummaryScreen->unk3224 == 0 && sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES))
+ if ((sMonSummaryScreen->pageFlipDirection == 1 && sMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO)
+ || (sMonSummaryScreen->pageFlipDirection == 0 && sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES))
{
if (bgPriority2 > bgPriority1)
for (i = 0; i < 3; i++)
- sMonSummaryScreen->unk3000[i] = AddWindow(&sUnknown_8463F24[i]);
+ sMonSummaryScreen->windowIds[i] = AddWindow(&sWindowTemplates_Permanent_Bg2[i]);
else
for (i = 0; i < 3; i++)
- sMonSummaryScreen->unk3000[i] = AddWindow(&sUnknown_8463F0C[i]);
+ sMonSummaryScreen->windowIds[i] = AddWindow(&sWindowTemplates_Permanent_Bg1[i]);
}
else
{
if (bgPriority2 > bgPriority1)
for (i = 0; i < 3; i++)
- sMonSummaryScreen->unk3000[i] = AddWindow(&sUnknown_8463F0C[i]);
+ sMonSummaryScreen->windowIds[i] = AddWindow(&sWindowTemplates_Permanent_Bg1[i]);
else
for (i = 0; i < 3; i++)
- sMonSummaryScreen->unk3000[i] = AddWindow(&sUnknown_8463F24[i]);
+ sMonSummaryScreen->windowIds[i] = AddWindow(&sWindowTemplates_Permanent_Bg2[i]);
}
for (i = 0; i < 4; i++)
switch (curPageIndex)
{
case PSS_PAGE_INFO:
- sMonSummaryScreen->unk3000[i + 3] = AddWindow(&sUnknown_8463F3C[i]);
+ sMonSummaryScreen->windowIds[i + 3] = AddWindow(&sWindowTemplates_Info[i]);
break;
case PSS_PAGE_SKILLS:
default:
- sMonSummaryScreen->unk3000[i + 3] = AddWindow(&sUnknown_8463F5C[i]);
+ sMonSummaryScreen->windowIds[i + 3] = AddWindow(&sWindowTemplates_Skills[i]);
break;
case PSS_PAGE_MOVES:
case PSS_PAGE_MOVES_INFO:
- sMonSummaryScreen->unk3000[i + 3] = AddWindow(&sUnknown_8463F7C[i]);
+ sMonSummaryScreen->windowIds[i + 3] = AddWindow(&sWindowTemplates_Moves[i]);
break;
}
}
-static void sub_8138414(u8 curPageIndex)
+static void PokeSum_RemoveWindows(u8 curPageIndex)
{
u8 i;
for (i = 0; i < 7; i++)
- RemoveWindow(sMonSummaryScreen->unk3000[i]);
+ RemoveWindow(sMonSummaryScreen->windowIds[i]);
}
-static void sub_8138440(void)
+static void PokeSum_SetHelpContext(void)
{
switch (sMonSummaryScreen->curPageIndex)
{
@@ -3216,7 +3240,7 @@ static void sub_8138440(void)
}
}
-static u8 sub_813847C(struct Pokemon * mon)
+static u8 PokeSum_BufferOtName_IsEqualToCurrentOwner(struct Pokemon * mon)
{
u8 i;
u8 multiplayerId;
@@ -3226,20 +3250,20 @@ static u8 sub_813847C(struct Pokemon * mon)
{
multiplayerId = GetMultiplayerId() ^ 1;
trainerId = gLinkPlayers[multiplayerId].trainerId & 0xffff;
- StringCopy(sMonSummaryScreen->summary.unk304C[0], gLinkPlayers[multiplayerId].name);
+ StringCopy(sMonSummaryScreen->summary.otNameStrBufs[0], gLinkPlayers[multiplayerId].name);
}
else
{
trainerId = GetPlayerTrainerId() & 0xffff;
- StringCopy(sMonSummaryScreen->summary.unk304C[0], gSaveBlock2Ptr->playerName);
+ StringCopy(sMonSummaryScreen->summary.otNameStrBufs[0], gSaveBlock2Ptr->playerName);
}
if (trainerId != (GetMonData(mon, MON_DATA_OT_ID) & 0xffff))
return FALSE;
- GetMonData(mon, MON_DATA_OT_NAME, sMonSummaryScreen->summary.unk304C[1]);
+ GetMonData(mon, MON_DATA_OT_NAME, sMonSummaryScreen->summary.otNameStrBufs[1]);
- if (!StringCompareWithoutExtCtrlCodes(sMonSummaryScreen->summary.unk304C[0], sMonSummaryScreen->summary.unk304C[1]))
+ if (!StringCompareWithoutExtCtrlCodes(sMonSummaryScreen->summary.otNameStrBufs[0], sMonSummaryScreen->summary.otNameStrBufs[1]))
return TRUE;
else
return FALSE;
@@ -3249,7 +3273,7 @@ static u8 sub_813847C(struct Pokemon * mon)
#define SUB_8138538_BASE_TILE_NUM (345)
-static void sub_8138538(void)
+static void PokeSum_DrawBg3Tilemap(void)
{
switch (sMonSummaryScreen->curPageIndex)
{
@@ -3331,17 +3355,17 @@ static void sub_8138538(void)
}
}
-static void sub_8138A38(void)
+static void PokeSum_PrintMonTypeIcons(void)
{
switch (sMonSummaryScreen->curPageIndex)
{
case PSS_PAGE_INFO:
if (!sMonSummaryScreen->isEgg)
{
- BlitMoveInfoIcon(sMonSummaryScreen->unk3000[3], sMonSummaryScreen->unk3220[0] + 1, 47, 35);
+ BlitMoveInfoIcon(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], sMonSummaryScreen->monTypes[0] + 1, 47, 35);
- if (sMonSummaryScreen->unk3220[0] != sMonSummaryScreen->unk3220[1])
- BlitMoveInfoIcon(sMonSummaryScreen->unk3000[3], sMonSummaryScreen->unk3220[1] + 1, 83, 35);
+ if (sMonSummaryScreen->monTypes[0] != sMonSummaryScreen->monTypes[1])
+ BlitMoveInfoIcon(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], sMonSummaryScreen->monTypes[1] + 1, 83, 35);
}
break;
case PSS_PAGE_SKILLS:
@@ -3349,13 +3373,13 @@ static void sub_8138A38(void)
case PSS_PAGE_MOVES:
break;
case PSS_PAGE_MOVES_INFO:
- FillWindowPixelBuffer(sMonSummaryScreen->unk3000[6], 0);
- BlitMoveInfoIcon(sMonSummaryScreen->unk3000[6], sMonSummaryScreen->unk3220[0] + 1, 0, 3);
+ FillWindowPixelBuffer(sMonSummaryScreen->windowIds[6], 0);
+ BlitMoveInfoIcon(sMonSummaryScreen->windowIds[6], sMonSummaryScreen->monTypes[0] + 1, 0, 3);
- if (sMonSummaryScreen->unk3220[0] != sMonSummaryScreen->unk3220[1])
- BlitMoveInfoIcon(sMonSummaryScreen->unk3000[6], sMonSummaryScreen->unk3220[1] + 1, 36, 3);
+ if (sMonSummaryScreen->monTypes[0] != sMonSummaryScreen->monTypes[1])
+ BlitMoveInfoIcon(sMonSummaryScreen->windowIds[6], sMonSummaryScreen->monTypes[1] + 1, 36, 3);
- PutWindowTilemap(sMonSummaryScreen->unk3000[6]);
+ PutWindowTilemap(sMonSummaryScreen->windowIds[6]);
break;
}
}
@@ -3367,15 +3391,15 @@ u8 GetLastViewedMonIndex(void)
u8 GetMoveSlotToReplace(void)
{
- return sUnknown_203B16E;
+ return sMoveSwapCursorPos;
}
-void sub_8138B38(u8 mode)
+void SetPokemonSummaryScreenMode(u8 mode)
{
sMonSummaryScreen->mode = mode;
}
-static bool32 sub_8138B4C(void)
+static bool32 IsMultiBattlePartner(void)
{
if (!IsUpdateLinkStateCBActive()
&& IsMultiBattle() == TRUE
@@ -3386,7 +3410,7 @@ static bool32 sub_8138B4C(void)
return FALSE;
}
-static void sub_8138B8C(struct Pokemon * mon)
+static void BufferSelectedMonData(struct Pokemon * mon)
{
if (!sMonSummaryScreen->isBoxMon)
{
@@ -3400,7 +3424,7 @@ static void sub_8138B8C(struct Pokemon * mon)
}
}
-static u16 sub_8138BEC(struct Pokemon * mon, u8 moveSlot)
+static u16 GetMonMoveBySlotId(struct Pokemon * mon, u8 moveSlot)
{
u16 move;
@@ -3422,7 +3446,7 @@ static u16 sub_8138BEC(struct Pokemon * mon, u8 moveSlot)
return move;
}
-static u16 sub_8138C24(struct Pokemon * mon, u8 moveSlot)
+static u16 GetMonPpByMoveSlot(struct Pokemon * mon, u8 moveSlot)
{
u16 pp;
@@ -3443,7 +3467,7 @@ static u16 sub_8138C24(struct Pokemon * mon, u8 moveSlot)
return pp;
}
-static u8 sub_8138C5C(u32 status)
+static u8 StatusToAilment(u32 status)
{
if (GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_HP) == 0)
return AILMENT_FNT;
@@ -3469,92 +3493,92 @@ static u8 sub_8138C5C(u32 status)
return AILMENT_NONE;
}
-static void sub_8138CD8(u8 id)
+static void Task_HandleInput_SelectMove(u8 taskId)
{
u8 i;
- switch (sMonSummaryScreen->unk3288)
+ switch (sMonSummaryScreen->selectMoveInputHandlerState)
{
case 0:
- if (MenuHelpers_CallLinkSomething() == TRUE || sub_800B270() == TRUE)
+ if (MenuHelpers_CallLinkSomething() == TRUE || LinkRecvQueueLengthMoreThan2() == TRUE)
return;
if (JOY_NEW(DPAD_UP))
{
- if (sUnknown_203B16D > 0)
+ if (sMoveSelectionCursorPos > 0)
{
- sMonSummaryScreen->unk3288 = 2;
+ sMonSummaryScreen->selectMoveInputHandlerState = 2;
PlaySE(SE_SELECT);
- for (i = sUnknown_203B16D; i > 0; i--)
- if (sMonSummaryScreen->unk325A[i - 1] != 0)
+ for (i = sMoveSelectionCursorPos; i > 0; i--)
+ if (sMonSummaryScreen->moveIds[i - 1] != 0)
{
PlaySE(SE_SELECT);
- sUnknown_203B16D = i - 1;
+ sMoveSelectionCursorPos = i - 1;
return;
}
}
else
{
- sUnknown_203B16D = 4;
- sMonSummaryScreen->unk3288 = 2;
+ sMoveSelectionCursorPos = 4;
+ sMonSummaryScreen->selectMoveInputHandlerState = 2;
PlaySE(SE_SELECT);
- if (sMonSummaryScreen->unk3268 == TRUE)
- for (i = sUnknown_203B16D; i > 0; i--)
- if (sMonSummaryScreen->unk325A[i - 1] != 0)
+ if (sMonSummaryScreen->isSwappingMoves == TRUE)
+ for (i = sMoveSelectionCursorPos; i > 0; i--)
+ if (sMonSummaryScreen->moveIds[i - 1] != 0)
{
PlaySE(SE_SELECT);
- sUnknown_203B16D = i - 1;
+ sMoveSelectionCursorPos = i - 1;
return;
}
}
}
else if (JOY_NEW(DPAD_DOWN))
{
- if (sUnknown_203B16D < 4)
+ if (sMoveSelectionCursorPos < 4)
{
u8 v0 = 4;
- sMonSummaryScreen->unk3288 = 2;
+ sMonSummaryScreen->selectMoveInputHandlerState = 2;
- if (sMonSummaryScreen->unk3268 == TRUE)
+ if (sMonSummaryScreen->isSwappingMoves == TRUE)
{
- if (sUnknown_203B16D == 5 - 2)
+ if (sMoveSelectionCursorPos == 5 - 2)
{
- sUnknown_203B16D = 0;
- sMonSummaryScreen->unk3288 = 2;
+ sMoveSelectionCursorPos = 0;
+ sMonSummaryScreen->selectMoveInputHandlerState = 2;
PlaySE(SE_SELECT);
return;
}
v0--;
}
- for (i = sUnknown_203B16D; i < v0; i++)
- if (sMonSummaryScreen->unk325A[i + 1] != 0)
+ for (i = sMoveSelectionCursorPos; i < v0; i++)
+ if (sMonSummaryScreen->moveIds[i + 1] != 0)
{
PlaySE(SE_SELECT);
- sUnknown_203B16D = i + 1;
+ sMoveSelectionCursorPos = i + 1;
return;
}
- if (!sMonSummaryScreen->unk3268)
+ if (!sMonSummaryScreen->isSwappingMoves)
{
PlaySE(SE_SELECT);
- sUnknown_203B16D = i;
+ sMoveSelectionCursorPos = i;
}
else
{
PlaySE(SE_SELECT);
- sUnknown_203B16D = 0;
+ sMoveSelectionCursorPos = 0;
}
return;
}
- else if (sUnknown_203B16D == 4)
+ else if (sMoveSelectionCursorPos == 4)
{
- sUnknown_203B16D = 0;
- sMonSummaryScreen->unk3288 = 2;
+ sMoveSelectionCursorPos = 0;
+ sMonSummaryScreen->selectMoveInputHandlerState = 2;
PlaySE(SE_SELECT);
return;
}
@@ -3562,98 +3586,98 @@ static void sub_8138CD8(u8 id)
else if (JOY_NEW(A_BUTTON))
{
PlaySE(SE_SELECT);
- if (sUnknown_203B16D == 4)
+ if (sMoveSelectionCursorPos == 4)
{
- sUnknown_203B16D = 0;
- sUnknown_203B16E = 0;
- sMonSummaryScreen->unk3268 = FALSE;
- sub_813A0E8(1);
- sMonSummaryScreen->unk3224 = 0;
- sub_8138414(sMonSummaryScreen->curPageIndex);
+ sMoveSelectionCursorPos = 0;
+ sMoveSwapCursorPos = 0;
+ sMonSummaryScreen->isSwappingMoves = FALSE;
+ ShoworHideMoveSelectionCursor(TRUE);
+ sMonSummaryScreen->pageFlipDirection = 0;
+ PokeSum_RemoveWindows(sMonSummaryScreen->curPageIndex);
sMonSummaryScreen->curPageIndex--;
- sMonSummaryScreen->unk3288 = 1;
+ sMonSummaryScreen->selectMoveInputHandlerState = 1;
return;
}
- if (sMonSummaryScreen->unk3268 != TRUE)
+ if (sMonSummaryScreen->isSwappingMoves != TRUE)
{
if (sMonSummaryScreen->isEnemyParty == FALSE
&& gMain.inBattle == 0
&& gReceivedRemoteLinkPlayers == 0)
{
- sUnknown_203B16E = sUnknown_203B16D;
- sMonSummaryScreen->unk3268 = TRUE;
+ sMoveSwapCursorPos = sMoveSelectionCursorPos;
+ sMonSummaryScreen->isSwappingMoves = TRUE;
}
return;
}
else
{
- sMonSummaryScreen->unk3268 = FALSE;
+ sMonSummaryScreen->isSwappingMoves = FALSE;
- if (sUnknown_203B16D == sUnknown_203B16E)
+ if (sMoveSelectionCursorPos == sMoveSwapCursorPos)
return;
if (sMonSummaryScreen->isBoxMon == 0)
- sub_81390B0();
+ SwapMonMoveSlots();
else
- sub_81391EC();
+ SwapBoxMonMoveSlots();
- sub_8139328(&sMonSummaryScreen->currentMon);
- sub_81367B0();
- sMonSummaryScreen->unk3288 = 2;
+ UpdateCurrentMonBufferFromPartyOrBox(&sMonSummaryScreen->currentMon);
+ BufferMonMoves();
+ sMonSummaryScreen->selectMoveInputHandlerState = 2;
return;
}
}
else if (JOY_NEW(B_BUTTON))
{
- if (sMonSummaryScreen->unk3268 == TRUE)
+ if (sMonSummaryScreen->isSwappingMoves == TRUE)
{
- sUnknown_203B16E = sUnknown_203B16D;
- sMonSummaryScreen->unk3268 = FALSE;
+ sMoveSwapCursorPos = sMoveSelectionCursorPos;
+ sMonSummaryScreen->isSwappingMoves = FALSE;
return;
}
- if (sUnknown_203B16D == 4)
+ if (sMoveSelectionCursorPos == 4)
{
- sUnknown_203B16D = 0;
- sUnknown_203B16E = 0;
+ sMoveSelectionCursorPos = 0;
+ sMoveSwapCursorPos = 0;
}
- sub_813A0E8(1);
- sMonSummaryScreen->unk3224 = 0;
- sub_8138414(sMonSummaryScreen->curPageIndex);
+ ShoworHideMoveSelectionCursor(TRUE);
+ sMonSummaryScreen->pageFlipDirection = 0;
+ PokeSum_RemoveWindows(sMonSummaryScreen->curPageIndex);
sMonSummaryScreen->curPageIndex--;
- sMonSummaryScreen->unk3288 = 1;
+ sMonSummaryScreen->selectMoveInputHandlerState = 1;
}
break;
case 1:
- gTasks[sMonSummaryScreen->unk3018].func = sub_81351A0;
- sMonSummaryScreen->unk3288 = 0;
+ gTasks[sMonSummaryScreen->inputHandlerTaskId].func = Task_BackOutOfSelectMove;
+ sMonSummaryScreen->selectMoveInputHandlerState = 0;
break;
case 2:
- sub_8136F4C();
- sub_81374E8();
- sub_8137BD0();
- sMonSummaryScreen->unk3288 = 3;
+ PokeSum_PrintRightPaneText();
+ PokeSum_PrintBottomPaneText();
+ PokeSum_PrintAbilityDataOrMoveTypes();
+ sMonSummaryScreen->selectMoveInputHandlerState = 3;
break;
case 3:
- if (MenuHelpers_CallLinkSomething() == TRUE || sub_800B270() == TRUE)
+ if (MenuHelpers_CallLinkSomething() == TRUE || LinkRecvQueueLengthMoreThan2() == TRUE)
return;
- CopyWindowToVram(sMonSummaryScreen->unk3000[3], 2);
- CopyWindowToVram(sMonSummaryScreen->unk3000[4], 2);
- CopyWindowToVram(sMonSummaryScreen->unk3000[5], 2);
- CopyWindowToVram(sMonSummaryScreen->unk3000[6], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[POKESUM_WIN_TRAINER_MEMO], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[5], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[6], 2);
CopyBgTilemapBufferToVram(0);
CopyBgTilemapBufferToVram(3);
- sMonSummaryScreen->unk3288 = 0;
+ sMonSummaryScreen->selectMoveInputHandlerState = 0;
break;
default:
break;
}
}
-static void sub_81390B0(void)
+static void SwapMonMoveSlots(void)
{
struct Pokemon * partyMons;
struct Pokemon * mon;
@@ -3666,29 +3690,29 @@ static void sub_81390B0(void)
partyMons = sMonSummaryScreen->monList.mons;
mon = &partyMons[GetLastViewedMonIndex()];
- move1 = GetMonData(mon, MON_DATA_MOVE1 + sUnknown_203B16D);
- move2 = GetMonData(mon, MON_DATA_MOVE1 + sUnknown_203B16E);
+ move1 = GetMonData(mon, MON_DATA_MOVE1 + sMoveSelectionCursorPos);
+ move2 = GetMonData(mon, MON_DATA_MOVE1 + sMoveSwapCursorPos);
- pp1 = GetMonData(mon, MON_DATA_PP1 + sUnknown_203B16D);
- pp2 = GetMonData(mon, MON_DATA_PP1 + sUnknown_203B16E);
+ pp1 = GetMonData(mon, MON_DATA_PP1 + sMoveSelectionCursorPos);
+ pp2 = GetMonData(mon, MON_DATA_PP1 + sMoveSwapCursorPos);
allMovesPPBonuses = GetMonData(mon, MON_DATA_PP_BONUSES);
- move1ppBonus = (allMovesPPBonuses & gPPUpGetMask[sUnknown_203B16D]) >> (sUnknown_203B16D * 2);
- move2ppBonus = (allMovesPPBonuses & gPPUpGetMask[sUnknown_203B16E]) >> (sUnknown_203B16E * 2);
+ move1ppBonus = (allMovesPPBonuses & gPPUpGetMask[sMoveSelectionCursorPos]) >> (sMoveSelectionCursorPos * 2);
+ move2ppBonus = (allMovesPPBonuses & gPPUpGetMask[sMoveSwapCursorPos]) >> (sMoveSwapCursorPos * 2);
- allMovesPPBonuses &= ~gPPUpGetMask[sUnknown_203B16D];
- allMovesPPBonuses &= ~gPPUpGetMask[sUnknown_203B16E];
- allMovesPPBonuses |= (move1ppBonus << (sUnknown_203B16E * 2)) + (move2ppBonus << (sUnknown_203B16D * 2));
+ allMovesPPBonuses &= ~gPPUpGetMask[sMoveSelectionCursorPos];
+ allMovesPPBonuses &= ~gPPUpGetMask[sMoveSwapCursorPos];
+ allMovesPPBonuses |= (move1ppBonus << (sMoveSwapCursorPos * 2)) + (move2ppBonus << (sMoveSelectionCursorPos * 2));
- SetMonData(mon, MON_DATA_MOVE1 + sUnknown_203B16D, (u8 *)&move2);
- SetMonData(mon, MON_DATA_MOVE1 + sUnknown_203B16E, (u8 *)&move1);
- SetMonData(mon, MON_DATA_PP1 + sUnknown_203B16D, &pp2);
- SetMonData(mon, MON_DATA_PP1 + sUnknown_203B16E, &pp1);
+ SetMonData(mon, MON_DATA_MOVE1 + sMoveSelectionCursorPos, (u8 *)&move2);
+ SetMonData(mon, MON_DATA_MOVE1 + sMoveSwapCursorPos, (u8 *)&move1);
+ SetMonData(mon, MON_DATA_PP1 + sMoveSelectionCursorPos, &pp2);
+ SetMonData(mon, MON_DATA_PP1 + sMoveSwapCursorPos, &pp1);
SetMonData(mon, MON_DATA_PP_BONUSES, &allMovesPPBonuses);
}
-static void sub_81391EC(void)
+static void SwapBoxMonMoveSlots(void)
{
struct BoxPokemon * boxMons;
struct BoxPokemon * boxMon;
@@ -3701,29 +3725,29 @@ static void sub_81391EC(void)
boxMons = sMonSummaryScreen->monList.boxMons;
boxMon = &boxMons[GetLastViewedMonIndex()];
- move1 = GetBoxMonData(boxMon, MON_DATA_MOVE1 + sUnknown_203B16D);
- move2 = GetBoxMonData(boxMon, MON_DATA_MOVE1 + sUnknown_203B16E);
+ move1 = GetBoxMonData(boxMon, MON_DATA_MOVE1 + sMoveSelectionCursorPos);
+ move2 = GetBoxMonData(boxMon, MON_DATA_MOVE1 + sMoveSwapCursorPos);
- pp1 = GetBoxMonData(boxMon, MON_DATA_PP1 + sUnknown_203B16D);
- pp2 = GetBoxMonData(boxMon, MON_DATA_PP1 + sUnknown_203B16E);
+ pp1 = GetBoxMonData(boxMon, MON_DATA_PP1 + sMoveSelectionCursorPos);
+ pp2 = GetBoxMonData(boxMon, MON_DATA_PP1 + sMoveSwapCursorPos);
allMovesPPBonuses = GetBoxMonData(boxMon, MON_DATA_PP_BONUSES);
- move1ppBonus = (allMovesPPBonuses & gPPUpGetMask[sUnknown_203B16D]) >> (sUnknown_203B16D * 2);
- move2ppBonus = (allMovesPPBonuses & gPPUpGetMask[sUnknown_203B16E]) >> (sUnknown_203B16E * 2);
+ move1ppBonus = (allMovesPPBonuses & gPPUpGetMask[sMoveSelectionCursorPos]) >> (sMoveSelectionCursorPos * 2);
+ move2ppBonus = (allMovesPPBonuses & gPPUpGetMask[sMoveSwapCursorPos]) >> (sMoveSwapCursorPos * 2);
- allMovesPPBonuses &= ~gPPUpGetMask[sUnknown_203B16D];
- allMovesPPBonuses &= ~gPPUpGetMask[sUnknown_203B16E];
- allMovesPPBonuses |= (move1ppBonus << (sUnknown_203B16E * 2)) + (move2ppBonus << (sUnknown_203B16D * 2));
+ allMovesPPBonuses &= ~gPPUpGetMask[sMoveSelectionCursorPos];
+ allMovesPPBonuses &= ~gPPUpGetMask[sMoveSwapCursorPos];
+ allMovesPPBonuses |= (move1ppBonus << (sMoveSwapCursorPos * 2)) + (move2ppBonus << (sMoveSelectionCursorPos * 2));
- SetBoxMonData(boxMon, MON_DATA_MOVE1 + sUnknown_203B16D, (u8 *)&move2);
- SetBoxMonData(boxMon, MON_DATA_MOVE1 + sUnknown_203B16E, (u8 *)&move1);
- SetBoxMonData(boxMon, MON_DATA_PP1 + sUnknown_203B16D, &pp2);
- SetBoxMonData(boxMon, MON_DATA_PP1 + sUnknown_203B16E, &pp1);
+ SetBoxMonData(boxMon, MON_DATA_MOVE1 + sMoveSelectionCursorPos, (u8 *)&move2);
+ SetBoxMonData(boxMon, MON_DATA_MOVE1 + sMoveSwapCursorPos, (u8 *)&move1);
+ SetBoxMonData(boxMon, MON_DATA_PP1 + sMoveSelectionCursorPos, &pp2);
+ SetBoxMonData(boxMon, MON_DATA_PP1 + sMoveSwapCursorPos, &pp1);
SetBoxMonData(boxMon, MON_DATA_PP_BONUSES, &allMovesPPBonuses);
}
-static void sub_8139328(struct Pokemon * mon)
+static void UpdateCurrentMonBufferFromPartyOrBox(struct Pokemon * mon)
{
if (!sMonSummaryScreen->isBoxMon)
{
@@ -3739,11 +3763,11 @@ static void sub_8139328(struct Pokemon * mon)
}
}
-static u8 sub_8139388(void)
+static u8 PokeSum_CanForgetSelectedMove(void)
{
u16 move;
- move = sub_8138BEC(&sMonSummaryScreen->currentMon, sUnknown_203B16D);
+ move = GetMonMoveBySlotId(&sMonSummaryScreen->currentMon, sMoveSelectionCursorPos);
if (IsMoveHm(move) == TRUE && sMonSummaryScreen->mode != PSS_MODE_FORGET_MOVE)
return FALSE;
@@ -3751,243 +3775,243 @@ static u8 sub_8139388(void)
return TRUE;
}
-static void sub_81393D4(u8 taskId)
+static void Task_InputHandler_SelectOrForgetMove(u8 taskId)
{
u8 i;
- switch (sMonSummaryScreen->unk3288)
+ switch (sMonSummaryScreen->selectMoveInputHandlerState)
{
case 0:
BeginNormalPaletteFade(0xffffffff, 0, 16, 0, 0);
- sMonSummaryScreen->unk3288++;
+ sMonSummaryScreen->selectMoveInputHandlerState++;
break;
case 1:
if (!gPaletteFade.active)
{
- sub_813B784();
- sMonSummaryScreen->unk3288++;
+ PokeSum_TryPlayMonCry();
+ sMonSummaryScreen->selectMoveInputHandlerState++;
}
break;
case 2:
if (JOY_NEW(DPAD_UP))
{
- if (sUnknown_203B16D > 0)
+ if (sMoveSelectionCursorPos > 0)
{
- sMonSummaryScreen->unk3288 = 3;
+ sMonSummaryScreen->selectMoveInputHandlerState = 3;
PlaySE(SE_SELECT);
- for (i = sUnknown_203B16D; i > 0; i--)
- if (sMonSummaryScreen->unk325A[i - 1] != 0)
+ for (i = sMoveSelectionCursorPos; i > 0; i--)
+ if (sMonSummaryScreen->moveIds[i - 1] != 0)
{
PlaySE(SE_SELECT);
- sUnknown_203B16D = i - 1;
+ sMoveSelectionCursorPos = i - 1;
return;
}
}
else
{
- sUnknown_203B16D = 4;
- sMonSummaryScreen->unk3288 = 3;
+ sMoveSelectionCursorPos = 4;
+ sMonSummaryScreen->selectMoveInputHandlerState = 3;
PlaySE(SE_SELECT);
return;
}
}
else if (JOY_NEW(DPAD_DOWN))
{
- if (sUnknown_203B16D < 4)
+ if (sMoveSelectionCursorPos < 4)
{
u8 v0 = 4;
- sMonSummaryScreen->unk3288 = 3;
+ sMonSummaryScreen->selectMoveInputHandlerState = 3;
- if (sMonSummaryScreen->unk3268 == TRUE)
+ if (sMonSummaryScreen->isSwappingMoves == TRUE)
v0--;
- for (i = sUnknown_203B16D; i < v0; i++)
- if (sMonSummaryScreen->unk325A[i + 1] != 0)
+ for (i = sMoveSelectionCursorPos; i < v0; i++)
+ if (sMonSummaryScreen->moveIds[i + 1] != 0)
{
PlaySE(SE_SELECT);
- sUnknown_203B16D = i + 1;
+ sMoveSelectionCursorPos = i + 1;
return;
}
- if (!sMonSummaryScreen->unk3268)
+ if (!sMonSummaryScreen->isSwappingMoves)
{
PlaySE(SE_SELECT);
- sUnknown_203B16D = i;
+ sMoveSelectionCursorPos = i;
}
return;
}
- else if (sUnknown_203B16D == 4)
+ else if (sMoveSelectionCursorPos == 4)
{
- sUnknown_203B16D = 0;
- sMonSummaryScreen->unk3288 = 3;
+ sMoveSelectionCursorPos = 0;
+ sMonSummaryScreen->selectMoveInputHandlerState = 3;
PlaySE(SE_SELECT);
return;
}
}
else if (JOY_NEW(A_BUTTON))
{
- if (sub_8139388() == TRUE || sUnknown_203B16D == 4)
+ if (PokeSum_CanForgetSelectedMove() == TRUE || sMoveSelectionCursorPos == 4)
{
PlaySE(SE_SELECT);
- sUnknown_203B16E = sUnknown_203B16D;
- gSpecialVar_0x8005 = sUnknown_203B16E;
- sMonSummaryScreen->unk3288 = 6;
+ sMoveSwapCursorPos = sMoveSelectionCursorPos;
+ gSpecialVar_0x8005 = sMoveSwapCursorPos;
+ sMonSummaryScreen->selectMoveInputHandlerState = 6;
}
else
{
PlaySE(SE_FAILURE);
- sMonSummaryScreen->unk3288 = 5;
+ sMonSummaryScreen->selectMoveInputHandlerState = 5;
}
}
else if (JOY_NEW(B_BUTTON))
{
- sUnknown_203B16E = 4;
- gSpecialVar_0x8005 = (u16)sUnknown_203B16E;
- sMonSummaryScreen->unk3288 = 6;
+ sMoveSwapCursorPos = 4;
+ gSpecialVar_0x8005 = (u16)sMoveSwapCursorPos;
+ sMonSummaryScreen->selectMoveInputHandlerState = 6;
}
break;
case 3:
- sub_8136F4C();
- sub_81374E8();
- sub_8137BD0();
- sMonSummaryScreen->unk3288 = 4;
+ PokeSum_PrintRightPaneText();
+ PokeSum_PrintBottomPaneText();
+ PokeSum_PrintAbilityDataOrMoveTypes();
+ sMonSummaryScreen->selectMoveInputHandlerState = 4;
break;
case 4:
- if (MenuHelpers_CallLinkSomething() == TRUE || sub_800B270() == TRUE)
+ if (MenuHelpers_CallLinkSomething() == TRUE || LinkRecvQueueLengthMoreThan2() == TRUE)
return;
- CopyWindowToVram(sMonSummaryScreen->unk3000[3], 2);
- CopyWindowToVram(sMonSummaryScreen->unk3000[4], 2);
- CopyWindowToVram(sMonSummaryScreen->unk3000[5], 2);
- CopyWindowToVram(sMonSummaryScreen->unk3000[6], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[POKESUM_WIN_TRAINER_MEMO], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[5], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[6], 2);
CopyBgTilemapBufferToVram(0);
CopyBgTilemapBufferToVram(3);
- sMonSummaryScreen->unk3288 = 2;
+ sMonSummaryScreen->selectMoveInputHandlerState = 2;
break;
case 5:
- FillWindowPixelBuffer(sMonSummaryScreen->unk3000[4], 0);
- AddTextPrinterParameterized4(sMonSummaryScreen->unk3000[4], 2,
+ FillWindowPixelBuffer(sMonSummaryScreen->windowIds[POKESUM_WIN_TRAINER_MEMO], 0);
+ AddTextPrinterParameterized4(sMonSummaryScreen->windowIds[POKESUM_WIN_TRAINER_MEMO], 2,
7, 42,
0, 0,
- sUnknown_8463FA4[0], TEXT_SPEED_FF,
- gUnknown_8419CB9);
- CopyWindowToVram(sMonSummaryScreen->unk3000[4], 2);
+ sLevelNickTextColors[0], TEXT_SPEED_FF,
+ gText_PokeSum_HmMovesCantBeForgotten);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[POKESUM_WIN_TRAINER_MEMO], 2);
CopyBgTilemapBufferToVram(0);
CopyBgTilemapBufferToVram(3);
- sMonSummaryScreen->unk3288 = 2;
+ sMonSummaryScreen->selectMoveInputHandlerState = 2;
break;
case 6:
BeginNormalPaletteFade(0xffffffff, 0, 0, 16, 0);
- sMonSummaryScreen->unk3288++;
+ sMonSummaryScreen->selectMoveInputHandlerState++;
break;
default:
if (!gPaletteFade.active)
- sub_8137E64(taskId);
+ Task_DestroyResourcesOnExit(taskId);
break;
}
}
-static void sub_8139768(struct Sprite * sprite)
+static void SpriteCB_PokeSum_MonPicSprite(struct Sprite * sprite)
{
- if (sMonSummaryScreen->unk3020 >= 2)
+ if (sMonSummaryScreen->numMonPicBounces >= 2)
return;
- if (sUnknown_203B170->unk04++ >= 2)
+ if (sMonPicBounceState->initDelay++ >= 2)
{
- u8 v0;
+ u8 arrayLen;
- switch (sUnknown_203B170->unk08)
+ switch (sMonPicBounceState->vigor)
{
case 0:
- sprite->pos1.y += sUnknown_8463FBE[sUnknown_203B170->unk00++];
- v0 = NELEMS(sUnknown_8463FBE);
+ sprite->pos1.y += sMonPicBounceYDelta_Under60[sMonPicBounceState->animFrame++];
+ arrayLen = NELEMS(sMonPicBounceYDelta_Under60);
break;
case 1:
- sprite->pos1.y += sUnknown_8463FC1[sUnknown_203B170->unk00++];
- v0 = NELEMS(sUnknown_8463FC1);
+ sprite->pos1.y += sMonPicBounceYDelta_60to80[sMonPicBounceState->animFrame++];
+ arrayLen = NELEMS(sMonPicBounceYDelta_60to80);
break;
case 2:
- sprite->pos1.y += sUnknown_8463FC6[sUnknown_203B170->unk00++];
- v0 = NELEMS(sUnknown_8463FC6);
+ sprite->pos1.y += sMonPicBounceYDelta_80to99[sMonPicBounceState->animFrame++];
+ arrayLen = NELEMS(sMonPicBounceYDelta_80to99);
break;
case 3:
default:
- sprite->pos1.y += sUnknown_8463FCD[sUnknown_203B170->unk00++];
- v0 = NELEMS(sUnknown_8463FCD);
+ sprite->pos1.y += sMonPicBounceYDelta_Full[sMonPicBounceState->animFrame++];
+ arrayLen = NELEMS(sMonPicBounceYDelta_Full);
break;
}
- if (sUnknown_203B170->unk00 >= v0)
+ if (sMonPicBounceState->animFrame >= arrayLen)
{
- sUnknown_203B170->unk00 = 0;
- sMonSummaryScreen->unk3020++;
+ sMonPicBounceState->animFrame = 0;
+ sMonSummaryScreen->numMonPicBounces++;
}
- sUnknown_203B170->unk04 = 0;
+ sMonPicBounceState->initDelay = 0;
}
}
-static void sub_8139868(struct Sprite * sprite)
+static void SpriteCB_PokeSum_EggPicShake(struct Sprite * sprite)
{
- if (sMonSummaryScreen->unk3020 >= 2)
+ if (sMonSummaryScreen->numMonPicBounces >= 2)
return;
- switch (sUnknown_203B170->unk08)
+ switch (sMonPicBounceState->vigor)
{
case 0:
default:
- if (sUnknown_203B170->unk04++ >= 120)
+ if (sMonPicBounceState->initDelay++ >= 120)
{
- sprite->pos1.x += sUnknown_8463FD4[sUnknown_203B170->unk00];
- if (++sUnknown_203B170->unk00 >= NELEMS(sUnknown_8463FD4))
+ sprite->pos1.x += sEggPicShakeXDelta_ItWillTakeSomeTime[sMonPicBounceState->animFrame];
+ if (++sMonPicBounceState->animFrame >= NELEMS(sEggPicShakeXDelta_ItWillTakeSomeTime))
{
- sUnknown_203B170->unk00 = 0;
- sUnknown_203B170->unk04 = 0;
- sMonSummaryScreen->unk3020++;
+ sMonPicBounceState->animFrame = 0;
+ sMonPicBounceState->initDelay = 0;
+ sMonSummaryScreen->numMonPicBounces++;
}
}
break;
case 1:
- if (sUnknown_203B170->unk04++ >= 90)
+ if (sMonPicBounceState->initDelay++ >= 90)
{
- sprite->pos1.x += sUnknown_8463FDF[sUnknown_203B170->unk00];
- if (++sUnknown_203B170->unk00 >= NELEMS(sUnknown_8463FDF))
+ sprite->pos1.x += sEggPicShakeXDelta_OccasionallyMoves[sMonPicBounceState->animFrame];
+ if (++sMonPicBounceState->animFrame >= NELEMS(sEggPicShakeXDelta_OccasionallyMoves))
{
- sUnknown_203B170->unk00 = 0;
- sUnknown_203B170->unk04 = 0;
- sMonSummaryScreen->unk3020++;
+ sMonPicBounceState->animFrame = 0;
+ sMonPicBounceState->initDelay = 0;
+ sMonSummaryScreen->numMonPicBounces++;
}
}
break;
case 2:
- if (sUnknown_203B170->unk04++ >= 60)
+ if (sMonPicBounceState->initDelay++ >= 60)
{
- sprite->pos1.x += sUnknown_8463FEA[sUnknown_203B170->unk00];
- if (++sUnknown_203B170->unk00 >= NELEMS(sUnknown_8463FEA))
+ sprite->pos1.x += sEggPicShakeXDelta_AlmostReadyToHatch[sMonPicBounceState->animFrame];
+ if (++sMonPicBounceState->animFrame >= NELEMS(sEggPicShakeXDelta_AlmostReadyToHatch))
{
- sUnknown_203B170->unk00 = 0;
- sUnknown_203B170->unk04 = 0;
- sMonSummaryScreen->unk3020++;
+ sMonPicBounceState->animFrame = 0;
+ sMonPicBounceState->initDelay = 0;
+ sMonSummaryScreen->numMonPicBounces++;
}
}
break;
}
}
-static void nullsub_96(struct Sprite * sprite)
+static void SpriteCB_MonPicDummy(struct Sprite * sprite)
{
}
-static void sub_813995C(void)
+static void PokeSum_CreateMonPicSprite(void)
{
u16 spriteId;
u16 species;
u32 personality;
u32 trainerId;
- sUnknown_203B170 = AllocZeroed(sizeof(struct Struct203B170));
+ sMonPicBounceState = AllocZeroed(sizeof(struct MonPicBounceState));
species = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES2);
personality = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_PERSONALITY);
@@ -4015,43 +4039,43 @@ static void sub_813995C(void)
else
gSprites[spriteId].hFlip = FALSE;
- sMonSummaryScreen->unk3010 = spriteId;
+ sMonSummaryScreen->monPicSpriteId = spriteId;
- sub_8139C44(1);
- sub_8139AAC(spriteId);
+ PokeSum_ShowOrHideMonPicSprite(TRUE);
+ PokeSum_SetMonPicSpriteCallback(spriteId);
}
-static void sub_8139AAC(u16 spriteId)
+static void PokeSum_SetMonPicSpriteCallback(u16 spriteId)
{
u16 curHp;
u16 maxHp;
- sMonSummaryScreen->unk3020 = 0;
+ sMonSummaryScreen->numMonPicBounces = 0;
if (sMonSummaryScreen->isEgg == TRUE)
{
u8 friendship = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_FRIENDSHIP);
if (friendship <= 5)
- sUnknown_203B170->unk08 = 2;
+ sMonPicBounceState->vigor = 2;
else
{
if (friendship <= 10)
- sUnknown_203B170->unk08 = 1;
+ sMonPicBounceState->vigor = 1;
else if (friendship <= 40)
- sUnknown_203B170->unk08 = 0;
+ sMonPicBounceState->vigor = 0;
}
- gSprites[spriteId].callback = sub_8139868;
+ gSprites[spriteId].callback = SpriteCB_PokeSum_EggPicShake;
return;
}
- if (sMonSummaryScreen->unk326C != AILMENT_NONE && sMonSummaryScreen->unk326C != AILMENT_PKRS)
+ if (sMonSummaryScreen->curMonStatusAilment != AILMENT_NONE && sMonSummaryScreen->curMonStatusAilment != AILMENT_PKRS)
{
- if (sMonSummaryScreen->unk326C == AILMENT_FNT)
+ if (sMonSummaryScreen->curMonStatusAilment == AILMENT_FNT)
return;
- gSprites[spriteId].callback = nullsub_96;
+ gSprites[spriteId].callback = SpriteCB_MonPicDummy;
return;
}
@@ -4059,29 +4083,29 @@ static void sub_8139AAC(u16 spriteId)
maxHp = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MAX_HP);
if (curHp == maxHp)
- sUnknown_203B170->unk08 = 3;
+ sMonPicBounceState->vigor = 3;
else if (maxHp * 0.8 <= curHp)
- sUnknown_203B170->unk08 = 2;
+ sMonPicBounceState->vigor = 2;
else if (maxHp * 0.6 <= curHp)
- sUnknown_203B170->unk08 = 1;
+ sMonPicBounceState->vigor = 1;
else
- sUnknown_203B170->unk08 = 0;
+ sMonPicBounceState->vigor = 0;
- gSprites[spriteId].callback = sub_8139768;
+ gSprites[spriteId].callback = SpriteCB_PokeSum_MonPicSprite;
}
-static void sub_8139C44(u8 invisible)
+static void PokeSum_ShowOrHideMonPicSprite(u8 invisible)
{
- gSprites[sMonSummaryScreen->unk3010].invisible = invisible;
+ gSprites[sMonSummaryScreen->monPicSpriteId].invisible = invisible;
}
-static void sub_8139C80(void)
+static void PokeSum_DestroyMonPicSprite(void)
{
- FreeAndDestroyMonPicSprite(sMonSummaryScreen->unk3010);
- FREE_AND_SET_NULL(sUnknown_203B170);
+ FreeAndDestroyMonPicSprite(sMonSummaryScreen->monPicSpriteId);
+ FREE_AND_SET_NULL(sMonPicBounceState);
}
-static void sub_8139CB0(void)
+static void CreateBallIconObj(void)
{
u16 ballItemId;
u8 ballId;
@@ -4094,24 +4118,24 @@ static void sub_8139CB0(void)
ballId = ItemIdToBallId(ballItemId);
LoadBallGfx(ballId);
- sMonSummaryScreen->unk300C = CreateSprite(&gBallSpriteTemplates[ballId], 106, 88, 0);
- gSprites[sMonSummaryScreen->unk300C].callback = SpriteCallbackDummy;
- gSprites[sMonSummaryScreen->unk300C].oam.priority = 0;
+ sMonSummaryScreen->ballIconSpriteId = CreateSprite(&gBallSpriteTemplates[ballId], 106, 88, 0);
+ gSprites[sMonSummaryScreen->ballIconSpriteId].callback = SpriteCallbackDummy;
+ gSprites[sMonSummaryScreen->ballIconSpriteId].oam.priority = 0;
- sub_8139D54(1);
+ ShowOrHideBallIconObj(TRUE);
}
-static void sub_8139D54(u8 invisible)
+static void ShowOrHideBallIconObj(u8 invisible)
{
- gSprites[sMonSummaryScreen->unk300C].invisible = invisible;
+ gSprites[sMonSummaryScreen->ballIconSpriteId].invisible = invisible;
}
-static void sub_8139D90(void)
+static void DestroyBallIconObj(void)
{
- DestroySpriteAndFreeResources2(&gSprites[sMonSummaryScreen->unk300C]);
+ DestroySpriteAndFreeResources2(&gSprites[sMonSummaryScreen->ballIconSpriteId]);
}
-static void sub_8139DBC(void)
+static void PokeSum_CreateMonIconSprite(void)
{
u16 species;
u32 personality;
@@ -4124,40 +4148,40 @@ static void sub_8139DBC(void)
if (sMonSummaryScreen->savedCallback == CB2_ReturnToTradeMenuFromSummary)
{
if (sMonSummaryScreen->isEnemyParty == TRUE)
- sMonSummaryScreen->unk3014 = CreateMonIcon(species, SpriteCallbackDummy, 24, 32, 0, personality, 0);
+ sMonSummaryScreen->monIconSpriteId = CreateMonIcon(species, SpriteCallbackDummy, 24, 32, 0, personality, 0);
else
- sMonSummaryScreen->unk3014 = CreateMonIcon(species, SpriteCallbackDummy, 24, 32, 0, personality, 1);
+ sMonSummaryScreen->monIconSpriteId = CreateMonIcon(species, SpriteCallbackDummy, 24, 32, 0, personality, 1);
}
else
{
if (ShouldIgnoreDeoxysForm(DEOXYS_CHECK_TRADE_MAIN, sLastViewedMonIndex))
- sMonSummaryScreen->unk3014 = CreateMonIcon(species, SpriteCallbackDummy, 24, 32, 0, personality, 0);
+ sMonSummaryScreen->monIconSpriteId = CreateMonIcon(species, SpriteCallbackDummy, 24, 32, 0, personality, 0);
else
- sMonSummaryScreen->unk3014 = CreateMonIcon(species, SpriteCallbackDummy, 24, 32, 0, personality, 1);
+ sMonSummaryScreen->monIconSpriteId = CreateMonIcon(species, SpriteCallbackDummy, 24, 32, 0, personality, 1);
}
if (!IsPokeSpriteNotFlipped(species))
- gSprites[sMonSummaryScreen->unk3014].hFlip = TRUE;
+ gSprites[sMonSummaryScreen->monIconSpriteId].hFlip = TRUE;
else
- gSprites[sMonSummaryScreen->unk3014].hFlip = FALSE;
+ gSprites[sMonSummaryScreen->monIconSpriteId].hFlip = FALSE;
- sub_8139EE4(1);
+ PokeSum_ShowOrHideMonIconSprite(TRUE);
}
-static void sub_8139EE4(u8 invisible)
+static void PokeSum_ShowOrHideMonIconSprite(bool8 invisible)
{
- gSprites[sMonSummaryScreen->unk3014].invisible = invisible;
+ gSprites[sMonSummaryScreen->monIconSpriteId].invisible = invisible;
}
-static void sub_8139F20(void)
+static void PokeSum_DestroyMonIconSprite(void)
{
u16 species;
species = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SPECIES2);
SafeFreeMonIconPalette(species);
- DestroyMonIcon(&gSprites[sMonSummaryScreen->unk3014]);
+ DestroyMonIcon(&gSprites[sMonSummaryScreen->monIconSpriteId]);
}
-static void sub_8139F64(u16 tileTag, u16 palTag)
+static void CreateMoveSelectionCursorObjs(u16 tileTag, u16 palTag)
{
u8 i;
u8 spriteId;
@@ -4165,13 +4189,13 @@ static void sub_8139F64(u16 tileTag, u16 palTag)
gfxBufferPtrs[0] = AllocZeroed(0x20 * 64);
gfxBufferPtrs[1] = AllocZeroed(0x20 * 64);
- sUnknown_203B148[0] = AllocZeroed(sizeof(struct Struct203B148));
- sUnknown_203B148[1] = AllocZeroed(sizeof(struct Struct203B148));
- sUnknown_203B148[2] = AllocZeroed(sizeof(struct Struct203B148));
- sUnknown_203B148[3] = AllocZeroed(sizeof(struct Struct203B148));
+ sMoveSelectionCursorObjs[0] = AllocZeroed(sizeof(struct MoveSelectionCursor));
+ sMoveSelectionCursorObjs[1] = AllocZeroed(sizeof(struct MoveSelectionCursor));
+ sMoveSelectionCursorObjs[2] = AllocZeroed(sizeof(struct MoveSelectionCursor));
+ sMoveSelectionCursorObjs[3] = AllocZeroed(sizeof(struct MoveSelectionCursor));
- LZ77UnCompWram(sUnknown_8463740, gfxBufferPtrs[0]);
- LZ77UnCompWram(sUnknown_846386C, gfxBufferPtrs[1]);
+ LZ77UnCompWram(sMoveSelectionCursorTiles_Left, gfxBufferPtrs[0]);
+ LZ77UnCompWram(sMoveSelectionCursorTiles_Right, gfxBufferPtrs[1]);
for (i = 0; i < 4; i++)
{
@@ -4181,69 +4205,69 @@ static void sub_8139F64(u16 tileTag, u16 palTag)
.tag = tileTag + i
};
- struct SpritePalette palette = {.data = sUnknown_8463720, .tag = palTag};
+ struct SpritePalette palette = {.data = sMoveSelectionCursorPals, .tag = palTag};
struct SpriteTemplate template = {
.tileTag = tileTag + i,
.paletteTag = palTag,
- .oam = &sUnknown_846398C,
- .anims = sUnknown_84639A4,
+ .oam = &sMoveSelectionCursorOamData,
+ .anims = sMoveSelectionCursorOamAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_813A124,
+ .callback = SpriteCB_MoveSelectionCursor,
};
LoadSpriteSheet(&sheet);
LoadSpritePalette(&palette);
- spriteId = CreateSprite(&template, 64 * (i % 2) + 152, sUnknown_203B16D * 28 + 34, i % 2);
- sUnknown_203B148[i]->sprite = &gSprites[spriteId];
- sUnknown_203B148[i]->unk04 = i;
- sUnknown_203B148[i]->unk06 = tileTag + i;
- sUnknown_203B148[i]->unk08 = palTag;
- sUnknown_203B148[i]->sprite->subpriority = i;
+ spriteId = CreateSprite(&template, 64 * (i % 2) + 152, sMoveSelectionCursorPos * 28 + 34, i % 2);
+ sMoveSelectionCursorObjs[i]->sprite = &gSprites[spriteId];
+ sMoveSelectionCursorObjs[i]->whichSprite = i;
+ sMoveSelectionCursorObjs[i]->tileTag = tileTag + i;
+ sMoveSelectionCursorObjs[i]->palTag = palTag;
+ sMoveSelectionCursorObjs[i]->sprite->subpriority = i;
if (i > 1)
- StartSpriteAnim(sUnknown_203B148[i]->sprite, 1);
+ StartSpriteAnim(sMoveSelectionCursorObjs[i]->sprite, 1);
}
- sub_813A0E8(1);
+ ShoworHideMoveSelectionCursor(TRUE);
FREE_AND_SET_NULL_IF_SET(gfxBufferPtrs[0]);
FREE_AND_SET_NULL_IF_SET(gfxBufferPtrs[1]);
}
-static void sub_813A0E8(u8 invisible)
+static void ShoworHideMoveSelectionCursor(bool8 invisible)
{
u8 i;
for (i = 0; i < 4; i++)
- sUnknown_203B148[i]->sprite->invisible = invisible;
+ sMoveSelectionCursorObjs[i]->sprite->invisible = invisible;
}
-static void sub_813A124(struct Sprite * sprite)
+static void SpriteCB_MoveSelectionCursor(struct Sprite * sprite)
{
u8 i;
for (i = 0; i < 4; i++)
{
- if (sMonSummaryScreen->unk3268 == TRUE && i > 1)
+ if (sMonSummaryScreen->isSwappingMoves == TRUE && i > 1)
continue;
- sUnknown_203B148[i]->sprite->pos1.y = sUnknown_203B16D * 28 + 34;
+ sMoveSelectionCursorObjs[i]->sprite->pos1.y = sMoveSelectionCursorPos * 28 + 34;
}
- if (sMonSummaryScreen->unk3268 != TRUE)
+ if (sMonSummaryScreen->isSwappingMoves != TRUE)
{
if (sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO)
{
- sUnknown_203B148[0]->sprite->invisible = FALSE;
- sUnknown_203B148[1]->sprite->invisible = FALSE;
+ sMoveSelectionCursorObjs[0]->sprite->invisible = FALSE;
+ sMoveSelectionCursorObjs[1]->sprite->invisible = FALSE;
}
return;
}
for (i = 0; i < 2; i++)
{
- sprite = sUnknown_203B148[i]->sprite;
+ sprite = sMoveSelectionCursorObjs[i]->sprite;
sprite->data[0]++;
if (sprite->invisible)
@@ -4262,30 +4286,30 @@ static void sub_813A124(struct Sprite * sprite)
}
}
-static void sub_813A21C(void)
+static void DestroyMoveSelectionCursorObjs(void)
{
u8 i;
for (i = 0; i < 4; i++)
{
- if (sUnknown_203B148[i]->sprite != NULL)
- DestroySpriteAndFreeResources(sUnknown_203B148[i]->sprite);
+ if (sMoveSelectionCursorObjs[i]->sprite != NULL)
+ DestroySpriteAndFreeResources(sMoveSelectionCursorObjs[i]->sprite);
- FREE_AND_SET_NULL_IF_SET(sUnknown_203B148[i]);
+ FREE_AND_SET_NULL_IF_SET(sMoveSelectionCursorObjs[i]);
}
}
-static void sub_813A254(u16 tileTag, u16 palTag)
+static void CreateMonStatusIconObj(u16 tileTag, u16 palTag)
{
u16 spriteId;
void * gfxBufferPtr;
- sUnknown_203B158 = AllocZeroed(sizeof(struct Struct203B158));
+ sStatusIcon = AllocZeroed(sizeof(struct MonStatusIconObj));
gfxBufferPtr = AllocZeroed(0x20 * 32);
- LZ77UnCompWram(gUnknown_8E9BF48, gfxBufferPtr);
+ LZ77UnCompWram(gPokeSummary_StatusAilmentIconTiles, gfxBufferPtr);
- if (sUnknown_203B158 != NULL)
+ if (sStatusIcon != NULL)
{
struct SpriteSheet sheet = {
.data = gfxBufferPtr,
@@ -4293,12 +4317,12 @@ static void sub_813A254(u16 tileTag, u16 palTag)
.tag = tileTag
};
- struct SpritePalette palette = {.data = gUnknown_8E9BF28, .tag = palTag};
+ struct SpritePalette palette = {.data = gPokeSummary_StatusAilmentIconPals, .tag = palTag};
struct SpriteTemplate template = {
.tileTag = tileTag,
.paletteTag = palTag,
- .oam = &sUnknown_84639AC,
- .anims = sUnknown_84639F4,
+ .oam = &sStatusAilmentIconOamData,
+ .anims = sStatusAilmentIconAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
@@ -4308,63 +4332,63 @@ static void sub_813A254(u16 tileTag, u16 palTag)
LoadSpritePalette(&palette);
spriteId = CreateSprite(&template, 0, 0, 0);
- sUnknown_203B158->sprite = &gSprites[spriteId];
- sUnknown_203B158->unk04 = tileTag;
- sUnknown_203B158->unk06 = palTag;
+ sStatusIcon->sprite = &gSprites[spriteId];
+ sStatusIcon->tileTag = tileTag;
+ sStatusIcon->palTag = palTag;
}
- sub_813A3B8(1);
- sub_813A35C();
+ ShowOrHideStatusIcon(TRUE);
+ UpdateMonStatusIconObj();
FREE_AND_SET_NULL_IF_SET(gfxBufferPtr);
}
-static void sub_813A334(void)
+static void DestroyMonStatusIconObj(void)
{
- if (sUnknown_203B158->sprite != NULL)
- DestroySpriteAndFreeResources(sUnknown_203B158->sprite);
+ if (sStatusIcon->sprite != NULL)
+ DestroySpriteAndFreeResources(sStatusIcon->sprite);
- FREE_AND_SET_NULL_IF_SET(sUnknown_203B158);
+ FREE_AND_SET_NULL_IF_SET(sStatusIcon);
}
-static void sub_813A35C(void)
+static void UpdateMonStatusIconObj(void)
{
- sMonSummaryScreen->unk326C = sub_8138C5C(GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_STATUS));
+ sMonSummaryScreen->curMonStatusAilment = StatusToAilment(GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_STATUS));
- if (sMonSummaryScreen->unk326C == AILMENT_NONE)
+ if (sMonSummaryScreen->curMonStatusAilment == AILMENT_NONE)
{
- sub_813A3B8(1);
+ ShowOrHideStatusIcon(TRUE);
return;
}
- StartSpriteAnim(sUnknown_203B158->sprite, sMonSummaryScreen->unk326C - 1);
- sub_813A3B8(0);
+ StartSpriteAnim(sStatusIcon->sprite, sMonSummaryScreen->curMonStatusAilment - 1);
+ ShowOrHideStatusIcon(FALSE);
}
-static void sub_813A3B8(u8 invisible)
+static void ShowOrHideStatusIcon(u8 invisible)
{
- if (sMonSummaryScreen->unk326C == AILMENT_NONE || sMonSummaryScreen->isEgg)
- sUnknown_203B158->sprite->invisible = TRUE;
+ if (sMonSummaryScreen->curMonStatusAilment == AILMENT_NONE || sMonSummaryScreen->isEgg)
+ sStatusIcon->sprite->invisible = TRUE;
else
- sUnknown_203B158->sprite->invisible = invisible;
+ sStatusIcon->sprite->invisible = invisible;
if (sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO)
{
- if (sUnknown_203B158->sprite->pos1.y != 45)
+ if (sStatusIcon->sprite->pos1.y != 45)
{
- sUnknown_203B158->sprite->pos1.x = 16;
- sUnknown_203B158->sprite->pos1.y = 45;
+ sStatusIcon->sprite->pos1.x = 16;
+ sStatusIcon->sprite->pos1.y = 45;
return;
}
}
- else if (sUnknown_203B158->sprite->pos1.y != 38)
+ else if (sStatusIcon->sprite->pos1.y != 38)
{
- sUnknown_203B158->sprite->pos1.x = 16;
- sUnknown_203B158->sprite->pos1.y = 38;
+ sStatusIcon->sprite->pos1.x = 16;
+ sStatusIcon->sprite->pos1.y = 38;
return;
}
}
-static void sub_813A45C(u16 tileTag, u16 palTag)
+static void CreateHpBarObjs(u16 tileTag, u16 palTag)
{
u8 i;
u8 spriteId;
@@ -4373,9 +4397,9 @@ static void sub_813A45C(u16 tileTag, u16 palTag)
u32 maxHp;
u8 hpBarPalTagOffset = 0;
- sUnknown_203B15C = AllocZeroed(sizeof(struct Struct203B15C));
+ sHpBarObjs = AllocZeroed(sizeof(struct HpBarObjs));
gfxBufferPtr = AllocZeroed(0x20 * 12);
- LZ77UnCompWram(gUnknown_8E9B4B8, gfxBufferPtr);
+ LZ77UnCompWram(gPokeSummary_HpBarTiles, gfxBufferPtr);
curHp = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_HP);
maxHp = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MAX_HP);
@@ -4393,9 +4417,9 @@ static void sub_813A45C(u16 tileTag, u16 palTag)
.tag = tileTag
};
- struct SpritePalette palette1 = {.data = sUnknown_8463FFC[0], .tag = palTag};
- struct SpritePalette palette2 = {.data = sUnknown_8463FFC[1], .tag = palTag + 1};
- struct SpritePalette palette3 = {.data = sUnknown_8463FFC[2], .tag = palTag + 2};
+ struct SpritePalette palette1 = {.data = sHpBarPals[0], .tag = palTag};
+ struct SpritePalette palette2 = {.data = sHpBarPals[1], .tag = palTag + 1};
+ struct SpritePalette palette3 = {.data = sHpBarPals[2], .tag = palTag + 2};
LoadSpriteSheet(&sheet);
LoadSpritePalette(&palette1);
@@ -4408,30 +4432,30 @@ static void sub_813A45C(u16 tileTag, u16 palTag)
struct SpriteTemplate template = {
.tileTag = tileTag,
.paletteTag = palTag + hpBarPalTagOffset,
- .oam = &sUnknown_8463A14,
- .anims = sUnknown_8463A7C,
+ .oam = &sHpOrExpBarOamData,
+ .anims = sHpOrExpBarAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
};
- sUnknown_203B15C->unk28[i] = i * 8 + 172;
- spriteId = CreateSprite(&template, sUnknown_203B15C->unk28[i], 36, 0);
- sUnknown_203B15C->sprites[i] = &gSprites[spriteId];
- sUnknown_203B15C->sprites[i]->invisible = FALSE;
- sUnknown_203B15C->sprites[i]->oam.priority = 2;
- sUnknown_203B15C->unk3C = tileTag;
- sUnknown_203B15C->unk3E = palTag;
- StartSpriteAnim(sUnknown_203B15C->sprites[i], 8);
+ sHpBarObjs->xpos[i] = i * 8 + 172;
+ spriteId = CreateSprite(&template, sHpBarObjs->xpos[i], 36, 0);
+ sHpBarObjs->sprites[i] = &gSprites[spriteId];
+ sHpBarObjs->sprites[i]->invisible = FALSE;
+ sHpBarObjs->sprites[i]->oam.priority = 2;
+ sHpBarObjs->tileTag = tileTag;
+ sHpBarObjs->palTag = palTag;
+ StartSpriteAnim(sHpBarObjs->sprites[i], 8);
}
- sub_813A620();
- sub_813A838(1);
+ UpdateHpBarObjs();
+ ShowOrHideHpBarObjs(TRUE);
FREE_AND_SET_NULL_IF_SET(gfxBufferPtr);
}
-static void sub_813A620(void)
+static void UpdateHpBarObjs(void)
{
u8 numWholeHpBarTiles = 0;
u8 i;
@@ -4440,8 +4464,8 @@ static void sub_813A620(void)
u8 hpBarPalOffset = 0;
u32 curHp;
u32 maxHp;
- s64 v0;
- s64 v1;
+ s64 pointsPerTile;
+ s64 totalPoints;
if (sMonSummaryScreen->isEgg)
return;
@@ -4469,71 +4493,71 @@ static void sub_813A620(void)
}
for (i = 0; i < 9; i++)
- sUnknown_203B15C->sprites[i]->oam.paletteNum = IndexOfSpritePaletteTag(TAG_PSS_UNK_78) + hpBarPalOffset;
+ sHpBarObjs->sprites[i]->oam.paletteNum = IndexOfSpritePaletteTag(TAG_PSS_UNK_78) + hpBarPalOffset;
if (curHp == maxHp)
for (i = two; i < 8; i++)
- StartSpriteAnim(sUnknown_203B15C->sprites[i], 8);
+ StartSpriteAnim(sHpBarObjs->sprites[i], 8);
else
{
- v0 = (maxHp << 2) / 6;
- v1 = (curHp << 2);
+ pointsPerTile = (maxHp << 2) / 6;
+ totalPoints = (curHp << 2);
while (TRUE)
{
- if (v1 <= v0)
+ if (totalPoints <= pointsPerTile)
break;
- v1 -= v0;
+ totalPoints -= pointsPerTile;
numWholeHpBarTiles++;
}
numWholeHpBarTiles += two;
for (i = two; i < numWholeHpBarTiles; i++)
- StartSpriteAnim(sUnknown_203B15C->sprites[i], 8);
+ StartSpriteAnim(sHpBarObjs->sprites[i], 8);
- animNum = (v1 * 6) / v0;
- StartSpriteAnim(sUnknown_203B15C->sprites[numWholeHpBarTiles], animNum);
+ animNum = (totalPoints * 6) / pointsPerTile;
+ StartSpriteAnim(sHpBarObjs->sprites[numWholeHpBarTiles], animNum);
for (i = numWholeHpBarTiles + 1; i < 8; i++)
- StartSpriteAnim(sUnknown_203B15C->sprites[i], 0);
+ StartSpriteAnim(sHpBarObjs->sprites[i], 0);
}
- StartSpriteAnim(sUnknown_203B15C->sprites[0], 9);
- StartSpriteAnim(sUnknown_203B15C->sprites[1], 10);
- StartSpriteAnim(sUnknown_203B15C->sprites[8], 11);
+ StartSpriteAnim(sHpBarObjs->sprites[0], 9);
+ StartSpriteAnim(sHpBarObjs->sprites[1], 10);
+ StartSpriteAnim(sHpBarObjs->sprites[8], 11);
}
-static void sub_813A800(void)
+static void DestroyHpBarObjs(void)
{
u8 i;
for (i = 0; i < 9; i++)
- if (sUnknown_203B15C->sprites[i] != NULL)
- DestroySpriteAndFreeResources(sUnknown_203B15C->sprites[i]);
+ if (sHpBarObjs->sprites[i] != NULL)
+ DestroySpriteAndFreeResources(sHpBarObjs->sprites[i]);
- FREE_AND_SET_NULL_IF_SET(sUnknown_203B15C);
+ FREE_AND_SET_NULL_IF_SET(sHpBarObjs);
}
-static void sub_813A838(u8 invisible)
+static void ShowOrHideHpBarObjs(u8 invisible)
{
u8 i;
for (i = 0; i < 9; i++)
- sUnknown_203B15C->sprites[i]->invisible = invisible;
+ sHpBarObjs->sprites[i]->invisible = invisible;
}
-static void sub_813A874(u16 tileTag, u16 palTag)
+static void CreateExpBarObjs(u16 tileTag, u16 palTag)
{
u8 i;
u8 spriteId;
void * gfxBufferPtr;
- sUnknown_203B160 = AllocZeroed(sizeof(struct Struct203B160));
+ sExpBarObjs = AllocZeroed(sizeof(struct ExpBarObjs));
gfxBufferPtr = AllocZeroed(0x20 * 12);
- LZ77UnCompWram(gUnknown_8E9B3F0, gfxBufferPtr);
+ LZ77UnCompWram(gPokeSummary_ExpBarTiles, gfxBufferPtr);
if (gfxBufferPtr != NULL)
{
struct SpriteSheet sheet = {
@@ -4542,7 +4566,7 @@ static void sub_813A874(u16 tileTag, u16 palTag)
.tag = tileTag
};
- struct SpritePalette palette = {.data = gUnknown_8E9B578, .tag = palTag};
+ struct SpritePalette palette = {.data = gPokeSummary_ExpBarPals, .tag = palTag};
LoadSpriteSheet(&sheet);
LoadSpritePalette(&palette);
}
@@ -4552,28 +4576,28 @@ static void sub_813A874(u16 tileTag, u16 palTag)
struct SpriteTemplate template = {
.tileTag = tileTag,
.paletteTag = palTag,
- .oam = &sUnknown_8463A14,
- .anims = sUnknown_8463A7C,
+ .oam = &sHpOrExpBarOamData,
+ .anims = sHpOrExpBarAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
};
- sUnknown_203B160->unk2C[i] = i * 8 + 156;
- spriteId = CreateSprite(&template, sUnknown_203B160->unk2C[i], 132, 0);
- sUnknown_203B160->sprites[i] = &gSprites[spriteId];
- sUnknown_203B160->sprites[i]->oam.priority = 2;
- sUnknown_203B160->unk42 = tileTag;
- sUnknown_203B160->unk44 = palTag;
+ sExpBarObjs->xpos[i] = i * 8 + 156;
+ spriteId = CreateSprite(&template, sExpBarObjs->xpos[i], 132, 0);
+ sExpBarObjs->sprites[i] = &gSprites[spriteId];
+ sExpBarObjs->sprites[i]->oam.priority = 2;
+ sExpBarObjs->tileTag = tileTag;
+ sExpBarObjs->palTag = palTag;
}
- sub_813A994();
- sub_813AB70(1);
+ UpdateExpBarObjs();
+ ShowOrHideExpBarObjs(TRUE);
FREE_AND_SET_NULL_IF_SET(gfxBufferPtr);
}
-static void sub_813A994(void)
+static void UpdateExpBarObjs(void)
{
u8 numWholeExpBarTiles = 0;
u8 i;
@@ -4582,8 +4606,8 @@ static void sub_813A994(void)
u32 totalExpToNextLevel;
u32 curExpToNextLevel;
u16 species;
- s64 v0;
- s64 v1;
+ s64 pointsPerTile;
+ s64 totalPoints;
u8 animNum;
u8 two = 2;
@@ -4598,75 +4622,75 @@ static void sub_813A994(void)
{
totalExpToNextLevel = gExperienceTables[gBaseStats[species].growthRate][level + 1] - gExperienceTables[gBaseStats[species].growthRate][level];
curExpToNextLevel = exp - gExperienceTables[gBaseStats[species].growthRate][level];
- v0 = ((totalExpToNextLevel << 2) / 8);
- v1 = (curExpToNextLevel << 2);
+ pointsPerTile = ((totalExpToNextLevel << 2) / 8);
+ totalPoints = (curExpToNextLevel << 2);
while (TRUE)
{
- if (v1 <= v0)
+ if (totalPoints <= pointsPerTile)
break;
- v1 -= v0;
+ totalPoints -= pointsPerTile;
numWholeExpBarTiles++;
}
numWholeExpBarTiles += two;
for (i = two; i < numWholeExpBarTiles; i++)
- StartSpriteAnim(sUnknown_203B160->sprites[i], 8);
+ StartSpriteAnim(sExpBarObjs->sprites[i], 8);
if (numWholeExpBarTiles >= 10)
{
if (totalExpToNextLevel == curExpToNextLevel)
return;
else
- StartSpriteAnim(sUnknown_203B160->sprites[9], 7);
+ StartSpriteAnim(sExpBarObjs->sprites[9], 7);
}
- animNum = (v1 * 8) / v0;
- StartSpriteAnim(sUnknown_203B160->sprites[numWholeExpBarTiles], animNum);
+ animNum = (totalPoints * 8) / pointsPerTile;
+ StartSpriteAnim(sExpBarObjs->sprites[numWholeExpBarTiles], animNum);
for (i = numWholeExpBarTiles + 1; i < 10; i++)
- StartSpriteAnim(sUnknown_203B160->sprites[i], 0);
+ StartSpriteAnim(sExpBarObjs->sprites[i], 0);
}
else
for (i = two; i < 10; i++)
- StartSpriteAnim(sUnknown_203B160->sprites[i], 0);
+ StartSpriteAnim(sExpBarObjs->sprites[i], 0);
- StartSpriteAnim(sUnknown_203B160->sprites[0], 9);
- StartSpriteAnim(sUnknown_203B160->sprites[1], 10);
- StartSpriteAnim(sUnknown_203B160->sprites[10], 11);
+ StartSpriteAnim(sExpBarObjs->sprites[0], 9);
+ StartSpriteAnim(sExpBarObjs->sprites[1], 10);
+ StartSpriteAnim(sExpBarObjs->sprites[10], 11);
}
-static void sub_813AB38(void)
+static void DestroyExpBarObjs(void)
{
u8 i;
for (i = 0; i < 11; i++)
- if (sUnknown_203B160->sprites[i] != NULL)
- DestroySpriteAndFreeResources(sUnknown_203B160->sprites[i]);
+ if (sExpBarObjs->sprites[i] != NULL)
+ DestroySpriteAndFreeResources(sExpBarObjs->sprites[i]);
- FREE_AND_SET_NULL_IF_SET(sUnknown_203B160);
+ FREE_AND_SET_NULL_IF_SET(sExpBarObjs);
}
-static void sub_813AB70(u8 invisible)
+static void ShowOrHideExpBarObjs(u8 invisible)
{
u8 i;
for (i = 0; i < 11; i++)
- sUnknown_203B160->sprites[i]->invisible = invisible;
+ sExpBarObjs->sprites[i]->invisible = invisible;
}
-static void sub_813ABAC(u16 tileTag, u16 palTag)
+static void CreatePokerusIconObj(u16 tileTag, u16 palTag)
{
u16 spriteId;
void * gfxBufferPtr;
- sUnknown_203B164 = AllocZeroed(sizeof(struct Struct203B164));
+ sPokerusIconObj = AllocZeroed(sizeof(struct PokerusIconObj));
gfxBufferPtr = AllocZeroed(0x20 * 1);
- LZ77UnCompWram(sUnknown_8463B20, gfxBufferPtr);
+ LZ77UnCompWram(sPokerusIconObjTiles, gfxBufferPtr);
- if (sUnknown_203B164 != NULL)
+ if (sPokerusIconObj != NULL)
{
struct SpriteSheet sheet = {
.data = gfxBufferPtr,
@@ -4674,12 +4698,12 @@ static void sub_813ABAC(u16 tileTag, u16 palTag)
.tag = tileTag
};
- struct SpritePalette palette = {.data = sUnknown_8463B00, .tag = palTag};
+ struct SpritePalette palette = {.data = sPokerusIconObjPal, .tag = palTag};
struct SpriteTemplate template = {
.tileTag = tileTag,
.paletteTag = palTag,
- .oam = &sUnknown_8463AEC,
- .anims = sUnknown_8463AFC,
+ .oam = &sPokerusIconObjOamData,
+ .anims = sPokerusIconObjAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
@@ -4689,69 +4713,69 @@ static void sub_813ABAC(u16 tileTag, u16 palTag)
LoadSpritePalette(&palette);
spriteId = CreateSprite(&template, 114, 92, 0);
- sUnknown_203B164->sprite = &gSprites[spriteId];
- sUnknown_203B164->unk04 = tileTag;
- sUnknown_203B164->unk06 = palTag;
+ sPokerusIconObj->sprite = &gSprites[spriteId];
+ sPokerusIconObj->tileTag = tileTag;
+ sPokerusIconObj->palTag = palTag;
}
- sub_813ACF8(1);
- sub_813ACB4();
+ HideShowPokerusIcon(TRUE);
+ ShowPokerusIconObjIfHasOrHadPokerus();
FREE_AND_SET_NULL_IF_SET(gfxBufferPtr);
}
-static void sub_813AC8C(void)
+static void DestroyPokerusIconObj(void)
{
- if (sUnknown_203B164->sprite != NULL)
- DestroySpriteAndFreeResources(sUnknown_203B164->sprite);
+ if (sPokerusIconObj->sprite != NULL)
+ DestroySpriteAndFreeResources(sPokerusIconObj->sprite);
- FREE_AND_SET_NULL_IF_SET(sUnknown_203B164);
+ FREE_AND_SET_NULL_IF_SET(sPokerusIconObj);
}
-static void sub_813ACB4(void)
+static void ShowPokerusIconObjIfHasOrHadPokerus(void)
{
if (!CheckPartyPokerus(&sMonSummaryScreen->currentMon, 0)
&& CheckPartyHasHadPokerus(&sMonSummaryScreen->currentMon, 0))
- sub_813ACF8(0);
+ HideShowPokerusIcon(FALSE);
else
- sub_813ACF8(1);
+ HideShowPokerusIcon(TRUE);
}
-static void sub_813ACF8(u8 invisible)
+static void HideShowPokerusIcon(bool8 invisible)
{
if (!CheckPartyPokerus(&sMonSummaryScreen->currentMon, 0)
&& CheckPartyHasHadPokerus(&sMonSummaryScreen->currentMon, 0))
{
- sUnknown_203B164->sprite->invisible = invisible;
+ sPokerusIconObj->sprite->invisible = invisible;
return;
}
else
- sUnknown_203B164->sprite->invisible = TRUE;
+ sPokerusIconObj->sprite->invisible = TRUE;
if (sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO)
{
- sUnknown_203B164->sprite->invisible = TRUE;
- sUnknown_203B164->sprite->pos1.x = 16;
- sUnknown_203B164->sprite->pos1.y = 44;
+ sPokerusIconObj->sprite->invisible = TRUE;
+ sPokerusIconObj->sprite->pos1.x = 16;
+ sPokerusIconObj->sprite->pos1.y = 44;
}
else
{
- sUnknown_203B164->sprite->pos1.x = 114;
- sUnknown_203B164->sprite->pos1.y = 92;
+ sPokerusIconObj->sprite->pos1.x = 114;
+ sPokerusIconObj->sprite->pos1.y = 92;
}
}
-static void sub_813ADA8(u16 tileTag, u16 palTag)
+static void CreateShinyStarObj(u16 tileTag, u16 palTag)
{
u16 spriteId;
void * gfxBufferPtr;
- sUnknown_203B168 = AllocZeroed(sizeof(struct Struct203B168));
+ sShinyStarObjData = AllocZeroed(sizeof(struct ShinyStarObjData));
gfxBufferPtr = AllocZeroed(0x20 * 2);
- LZ77UnCompWram(sUnknown_8463B64, gfxBufferPtr);
+ LZ77UnCompWram(sStarObjTiles, gfxBufferPtr);
- if (sUnknown_203B168 != NULL)
+ if (sShinyStarObjData != NULL)
{
struct SpriteSheet sheet = {
.data = gfxBufferPtr,
@@ -4759,12 +4783,12 @@ static void sub_813ADA8(u16 tileTag, u16 palTag)
.tag = tileTag
};
- struct SpritePalette palette = {.data = sUnknown_8463B44, .tag = palTag};
+ struct SpritePalette palette = {.data = sStarObjPal, .tag = palTag};
struct SpriteTemplate template = {
.tileTag = tileTag,
.paletteTag = palTag,
- .oam = &sUnknown_8463B30,
- .anims = sUnknown_8463B40,
+ .oam = &sStarObjOamData,
+ .anims = sStarObjAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
@@ -4773,89 +4797,89 @@ static void sub_813ADA8(u16 tileTag, u16 palTag)
LoadSpriteSheet(&sheet);
LoadSpritePalette(&palette);
spriteId = CreateSprite(&template, 106, 40, 0);
- sUnknown_203B168->sprite = &gSprites[spriteId];
- sUnknown_203B168->unk04 = tileTag;
- sUnknown_203B168->unk06 = palTag;
+ sShinyStarObjData->sprite = &gSprites[spriteId];
+ sShinyStarObjData->tileTag = tileTag;
+ sShinyStarObjData->palTag = palTag;
}
- sub_813AEB0(1);
- sub_813AF50();
+ HideShowShinyStar(TRUE);
+ ShowShinyStarObjIfMonShiny();
FREE_AND_SET_NULL_IF_SET(gfxBufferPtr);
}
-static void sub_813AE88(void)
+static void DestroyShinyStarObj(void)
{
- if (sUnknown_203B168->sprite != NULL)
- DestroySpriteAndFreeResources(sUnknown_203B168->sprite);
+ if (sShinyStarObjData->sprite != NULL)
+ DestroySpriteAndFreeResources(sShinyStarObjData->sprite);
- FREE_AND_SET_NULL_IF_SET(sUnknown_203B168);
+ FREE_AND_SET_NULL_IF_SET(sShinyStarObjData);
}
-static void sub_813AEB0(u8 invisible)
+static void HideShowShinyStar(bool8 invisible)
{
if (IsMonShiny(&sMonSummaryScreen->currentMon) == TRUE
&& !sMonSummaryScreen->isEgg)
- sUnknown_203B168->sprite->invisible = invisible;
+ sShinyStarObjData->sprite->invisible = invisible;
else
- sUnknown_203B168->sprite->invisible = TRUE;
+ sShinyStarObjData->sprite->invisible = TRUE;
if (sMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES_INFO)
{
- sUnknown_203B168->sprite->pos1.x = 8;
- sUnknown_203B168->sprite->pos1.y = 24;
+ sShinyStarObjData->sprite->pos1.x = 8;
+ sShinyStarObjData->sprite->pos1.y = 24;
}
else
{
- sUnknown_203B168->sprite->pos1.x = 106;
- sUnknown_203B168->sprite->pos1.y = 40;
+ sShinyStarObjData->sprite->pos1.x = 106;
+ sShinyStarObjData->sprite->pos1.y = 40;
}
}
-static void sub_813AF50(void)
+static void ShowShinyStarObjIfMonShiny(void)
{
if (IsMonShiny(&sMonSummaryScreen->currentMon) == TRUE && !sMonSummaryScreen->isEgg)
- sub_813AEB0(0);
+ HideShowShinyStar(FALSE);
else
- sub_813AEB0(1);
+ HideShowShinyStar(TRUE);
}
-static void sub_813AF90(void)
+static void PokeSum_DestroySprites(void)
{
- sub_813A21C();
- sub_813A800();
- sub_813AB38();
- sub_8139C80();
- sub_8139F20();
- sub_8139D90();
- sub_813B068();
- sub_813A334();
- sub_813AC8C();
- sub_813AE88();
+ DestroyMoveSelectionCursorObjs();
+ DestroyHpBarObjs();
+ DestroyExpBarObjs();
+ PokeSum_DestroyMonPicSprite();
+ PokeSum_DestroyMonIconSprite();
+ DestroyBallIconObj();
+ PokeSum_DestroyMonMarkingsSprite();
+ DestroyMonStatusIconObj();
+ DestroyPokerusIconObj();
+ DestroyShinyStarObj();
ResetSpriteData();
}
-static void sub_813AFC4(void)
+static void PokeSum_CreateSprites(void)
{
- sub_8139CB0();
- sub_8139D54(0);
- sub_8139DBC();
- sub_813995C();
- sub_8139C44(0);
- sub_813A620();
- sub_813A994();
- sub_813B0E4();
- sub_813A35C();
- sub_813ACB4();
- sub_813AF50();
+ CreateBallIconObj();
+ ShowOrHideBallIconObj(FALSE);
+ PokeSum_CreateMonIconSprite();
+ PokeSum_CreateMonPicSprite();
+ PokeSum_ShowOrHideMonPicSprite(FALSE);
+ UpdateHpBarObjs();
+ UpdateExpBarObjs();
+ PokeSum_UpdateMonMarkingsAnim();
+ UpdateMonStatusIconObj();
+ ShowPokerusIconObjIfHasOrHadPokerus();
+ ShowShinyStarObjIfMonShiny();
}
-static void sub_813AFFC(void)
+static void PokeSum_CreateMonMarkingsSprite(void)
{
u32 markings = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MARKINGS);
DestroySpriteAndFreeResources(sMonSummaryScreen->markingSprite);
- sMonSummaryScreen->markingSprite = CreateMonMarkingSprite_SelectCombo(TAG_PSS_UNK_8C, TAG_PSS_UNK_8C, sUnknown_84636E0);
+ sMonSummaryScreen->markingSprite = CreateMonMarkingSprite_SelectCombo(TAG_PSS_UNK_8C, TAG_PSS_UNK_8C, sMonMarkingSpritePalette);
if (sMonSummaryScreen->markingSprite != NULL)
{
@@ -4864,15 +4888,15 @@ static void sub_813AFFC(void)
sMonSummaryScreen->markingSprite->pos1.y = 91;
}
- sub_813B084(1);
+ PokeSum_ShowOrHideMonMarkingsSprite(TRUE);
}
-static void sub_813B068(void)
+static void PokeSum_DestroyMonMarkingsSprite(void)
{
DestroySpriteAndFreeResources(sMonSummaryScreen->markingSprite);
}
-static void sub_813B084(u8 invisible)
+static void PokeSum_ShowOrHideMonMarkingsSprite(u8 invisible)
{
u32 markings = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MARKINGS);
@@ -4882,162 +4906,163 @@ static void sub_813B084(u8 invisible)
sMonSummaryScreen->markingSprite->invisible = invisible;
}
-static void sub_813B0E4(void)
+static void PokeSum_UpdateMonMarkingsAnim(void)
{
u32 markings = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MARKINGS);
StartSpriteAnim(sMonSummaryScreen->markingSprite, markings);
- sub_813B084(0);
+ PokeSum_ShowOrHideMonMarkingsSprite(FALSE);
}
-static void sub_813B120(u8 taskId, s8 a1)
+static void PokeSum_SeekToNextMon(u8 taskId, s8 direction)
{
- s8 v0 = -1;
+ s8 scrollResult = -1;
if (sMonSummaryScreen->isBoxMon == TRUE)
{
- if (sMonSummaryScreen->curPageIndex != 0)
+ if (sMonSummaryScreen->curPageIndex != PSS_PAGE_INFO)
{
- if (a1 == 1)
- a1 = 0;
+ if (direction == 1)
+ direction = 0;
else
- a1 = 2;
+ direction = 2;
}
else
{
- if (a1 == 1)
- a1 = 1;
+ // Allow Eggs
+ if (direction == 1)
+ direction = 1;
else
- a1 = 3;
+ direction = 3;
}
- v0 = SeekToNextMonInBox(sMonSummaryScreen->monList.boxMons, GetLastViewedMonIndex(), sMonSummaryScreen->lastIndex, (u8)a1);
+ scrollResult = SeekToNextMonInBox(sMonSummaryScreen->monList.boxMons, GetLastViewedMonIndex(), sMonSummaryScreen->lastIndex, (u8)direction);
}
else
{
if (IsUpdateLinkStateCBActive() == FALSE
&& gReceivedRemoteLinkPlayers == 1
&& IsMultiBattle() == TRUE)
- v0 = sub_813B38C(a1);
+ scrollResult = SeekToNextMonInMultiParty(direction);
else
- v0 = sub_813B20C(a1);
+ scrollResult = SeekToNextMonInSingleParty(direction);
}
- if (v0 == -1)
+ if (scrollResult == -1)
return;
- sLastViewedMonIndex = v0;
- CreateTask(sub_813B3F0, 0);
- sMonSummaryScreen->unk328C = 0;
+ sLastViewedMonIndex = scrollResult;
+ CreateTask(Task_PokeSum_SwitchDisplayedPokemon, 0);
+ sMonSummaryScreen->switchMonTaskState = 0;
}
-static s8 sub_813B20C(s8 a0)
+static s8 SeekToNextMonInSingleParty(s8 direction)
{
struct Pokemon * partyMons = sMonSummaryScreen->monList.mons;
- s8 v1 = 0;
+ s8 seekDelta = 0;
if (sMonSummaryScreen->curPageIndex == 0)
{
- if (a0 == -1 && sLastViewedMonIndex == 0)
+ if (direction == -1 && sLastViewedMonIndex == 0)
return -1;
- else if (a0 == 1 && sLastViewedMonIndex >= sMonSummaryScreen->lastIndex)
+ else if (direction == 1 && sLastViewedMonIndex >= sMonSummaryScreen->lastIndex)
return -1;
else
- return sLastViewedMonIndex + a0;
+ return sLastViewedMonIndex + direction;
}
while (TRUE)
{
- v1 += a0;
- if (0 > sLastViewedMonIndex + v1 || sLastViewedMonIndex + v1 > sMonSummaryScreen->lastIndex)
+ seekDelta += direction;
+ if (0 > sLastViewedMonIndex + seekDelta || sLastViewedMonIndex + seekDelta > sMonSummaryScreen->lastIndex)
return -1;
- if (GetMonData(&partyMons[sLastViewedMonIndex + v1], MON_DATA_IS_EGG) == 0)
- return sLastViewedMonIndex + v1;
+ if (GetMonData(&partyMons[sLastViewedMonIndex + seekDelta], MON_DATA_IS_EGG) == 0)
+ return sLastViewedMonIndex + seekDelta;
}
return -1;
}
-static u8 sub_813B2C8(struct Pokemon * partyMons)
+static u8 PokeSum_CanSeekToMon(struct Pokemon * partyMons)
{
- if (GetMonData(partyMons, MON_DATA_SPECIES) != 0 && (sMonSummaryScreen->curPageIndex != 0 || GetMonData(partyMons, MON_DATA_IS_EGG) == 0))
+ if (GetMonData(partyMons, MON_DATA_SPECIES) != SPECIES_NONE && (sMonSummaryScreen->curPageIndex != PSS_PAGE_INFO || !GetMonData(partyMons, MON_DATA_IS_EGG)))
return TRUE;
return FALSE;
}
-static s8 sub_813B304(u8 a0)
+static s8 SeekToMonInMultiParty_SeekForward(u8 startingIdx)
{
while (TRUE)
{
- a0++;
+ startingIdx++;
- if (a0 == 6)
+ if (startingIdx == 6)
return -1;
- if (sub_813B2C8(&gPlayerParty[sUnknown_8463FB8[a0]]) == TRUE)
+ if (PokeSum_CanSeekToMon(&gPlayerParty[sMultiBattlePartyOrder[startingIdx]]) == TRUE)
break;
}
- return (s8)sUnknown_8463FB8[a0];
+ return (s8)sMultiBattlePartyOrder[startingIdx];
}
-static s8 sub_813B348(u8 a0)
+static s8 SeekToMonInMultiParty_SeekBack(u8 startingIdx)
{
while (1)
{
- if (a0 == 0)
+ if (startingIdx == 0)
return -1;
- a0--;
+ startingIdx--;
- if (sub_813B2C8(&gPlayerParty[sUnknown_8463FB8[a0]]) == TRUE)
+ if (PokeSum_CanSeekToMon(&gPlayerParty[sMultiBattlePartyOrder[startingIdx]]) == TRUE)
break;
}
- return (s8)(sUnknown_8463FB8[a0]);
+ return (s8)(sMultiBattlePartyOrder[startingIdx]);
}
-static s8 sub_813B38C(s8 a0)
+static s8 SeekToNextMonInMultiParty(s8 direction)
{
- u8 v0 = 0;
+ u8 foundPartyIdx = 0;
u8 i;
for (i = 0; i < PARTY_SIZE; i++)
- if (sUnknown_8463FB8[i] == GetLastViewedMonIndex())
+ if (sMultiBattlePartyOrder[i] == GetLastViewedMonIndex())
{
- v0 = i;
+ foundPartyIdx = i;
break;
}
- if ((a0 == -1 && v0 == 0)
- || (a0 == 1 && v0 == 5))
+ if ((direction == -1 && foundPartyIdx == 0)
+ || (direction == 1 && foundPartyIdx == 5))
return -1;
- if (a0 == 1)
- return sub_813B304(v0);
+ if (direction == 1)
+ return SeekToMonInMultiParty_SeekForward(foundPartyIdx);
else
- return sub_813B348(v0);
+ return SeekToMonInMultiParty_SeekBack(foundPartyIdx);
}
-static void sub_813B3F0(u8 id)
+static void Task_PokeSum_SwitchDisplayedPokemon(u8 taskId)
{
- switch (sMonSummaryScreen->unk328C)
+ switch (sMonSummaryScreen->switchMonTaskState)
{
case 0:
StopCryAndClearCrySongs();
- sUnknown_203B16D = 0;
- sUnknown_203B16E = 0;
- sMonSummaryScreen->unk328C++;
+ sMoveSelectionCursorPos = 0;
+ sMoveSwapCursorPos = 0;
+ sMonSummaryScreen->switchMonTaskState++;
break;
case 1:
- sub_8139C80();
- sub_8139F20();
- sub_8139D90();
- sMonSummaryScreen->unk328C++;
+ PokeSum_DestroyMonPicSprite();
+ PokeSum_DestroyMonIconSprite();
+ DestroyBallIconObj();
+ sMonSummaryScreen->switchMonTaskState++;
break;
case 2:
- sub_8138B8C(&sMonSummaryScreen->currentMon);
+ BufferSelectedMonData(&sMonSummaryScreen->currentMon);
sMonSummaryScreen->isEgg = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_IS_EGG);
sMonSummaryScreen->isBadEgg = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_SANITY_IS_BAD_EGG);
@@ -5045,97 +5070,97 @@ static void sub_813B3F0(u8 id)
if (sMonSummaryScreen->isBadEgg == TRUE)
sMonSummaryScreen->isEgg = TRUE;
- sMonSummaryScreen->unk328C++;
+ sMonSummaryScreen->switchMonTaskState++;
break;
case 3:
FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20);
if (IsMonShiny(&sMonSummaryScreen->currentMon) == TRUE && !sMonSummaryScreen->isEgg)
{
- LoadPalette(&gUnknown_8E9B310[16 * 6], 0, 0x20);
- LoadPalette(&gUnknown_8E9B310[16 * 5], 0x10, 0x20);
+ LoadPalette(&gTrainerMemoPal1[16 * 6], 0, 0x20);
+ LoadPalette(&gTrainerMemoPal1[16 * 5], 0x10, 0x20);
}
else
{
- LoadPalette(&gUnknown_8E9B310[16 * 0], 0, 0x20);
- LoadPalette(&gUnknown_8E9B310[16 * 1], 0x10, 0x20);
+ LoadPalette(&gTrainerMemoPal1[16 * 0], 0, 0x20);
+ LoadPalette(&gTrainerMemoPal1[16 * 1], 0x10, 0x20);
}
- sMonSummaryScreen->unk328C++;
+ sMonSummaryScreen->switchMonTaskState++;
break;
case 4:
if (sMonSummaryScreen->curPageIndex == PSS_PAGE_INFO)
{
if (sMonSummaryScreen->isEgg)
{
- CopyToBgTilemapBuffer(sMonSummaryScreen->unk323C, gUnknown_8E9BBCC, 0, 0);
- CopyToBgTilemapBuffer(sMonSummaryScreen->unk3240, gUnknown_8E9B750, 0, 0);
+ CopyToBgTilemapBuffer(sMonSummaryScreen->skillsPageBgNum, gBgTilemap_TrainerMemo_Egg, 0, 0);
+ CopyToBgTilemapBuffer(sMonSummaryScreen->infoAndMovesPageBgNum, gBgTilemap_TrainerMemo_Stats, 0, 0);
}
else
{
- CopyToBgTilemapBuffer(sMonSummaryScreen->unk323C, gUnknown_8E9B598, 0, 0);
- CopyToBgTilemapBuffer(sMonSummaryScreen->unk3240, gUnknown_8E9B750, 0, 0);
+ CopyToBgTilemapBuffer(sMonSummaryScreen->skillsPageBgNum, gBgTilemap_TrainerMemo_Details, 0, 0);
+ CopyToBgTilemapBuffer(sMonSummaryScreen->infoAndMovesPageBgNum, gBgTilemap_TrainerMemo_Stats, 0, 0);
}
}
- sMonSummaryScreen->unk328C++;
+ sMonSummaryScreen->switchMonTaskState++;
break;
case 5:
- sub_81360D4();
- sMonSummaryScreen->unk328C++;
+ BufferMonInfo();
+ sMonSummaryScreen->switchMonTaskState++;
break;
case 6:
if (!sMonSummaryScreen->isEgg)
- sub_8136350();
+ BufferMonSkills();
- sMonSummaryScreen->unk328C++;
+ sMonSummaryScreen->switchMonTaskState++;
break;
case 7:
if (!sMonSummaryScreen->isEgg)
- sub_81367B0();
+ BufferMonMoves();
- sMonSummaryScreen->unk328C++;
+ sMonSummaryScreen->switchMonTaskState++;
break;
case 8:
- sub_8136F4C();
- sub_81374E8();
- sub_8137BD0();
- sMonSummaryScreen->unk328C++;
+ PokeSum_PrintRightPaneText();
+ PokeSum_PrintBottomPaneText();
+ PokeSum_PrintAbilityDataOrMoveTypes();
+ sMonSummaryScreen->switchMonTaskState++;
break;
case 9:
- sub_8138A38();
- sub_8138538();
- sub_8137D28(sMonSummaryScreen->curPageIndex);
- sMonSummaryScreen->unk328C++;
+ PokeSum_PrintMonTypeIcons();
+ PokeSum_DrawBg3Tilemap();
+ PokeSum_PrintPageHeaderText(sMonSummaryScreen->curPageIndex);
+ sMonSummaryScreen->switchMonTaskState++;
break;
case 10:
- CopyWindowToVram(sMonSummaryScreen->unk3000[0], 2);
- CopyWindowToVram(sMonSummaryScreen->unk3000[1], 2);
- CopyWindowToVram(sMonSummaryScreen->unk3000[2], 2);
- CopyWindowToVram(sMonSummaryScreen->unk3000[6], 2);
- CopyWindowToVram(sMonSummaryScreen->unk3000[3], 2);
- CopyWindowToVram(sMonSummaryScreen->unk3000[4], 2);
- CopyWindowToVram(sMonSummaryScreen->unk3000[5], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[POKESUM_WIN_PAGE_NAME], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[POKESUM_WIN_CONTROLS], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[POKESUM_WIN_LVL_NICK], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[6], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[POKESUM_WIN_RIGHT_PANE], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[POKESUM_WIN_TRAINER_MEMO], 2);
+ CopyWindowToVram(sMonSummaryScreen->windowIds[5], 2);
CopyBgTilemapBufferToVram(0);
CopyBgTilemapBufferToVram(2);
CopyBgTilemapBufferToVram(3);
- sMonSummaryScreen->unk328C++;
+ sMonSummaryScreen->switchMonTaskState++;
break;
case 11:
- if (!Overworld_LinkRecvQueueLengthMoreThan2() && !sub_800B270())
+ if (!Overworld_LinkRecvQueueLengthMoreThan2() && !LinkRecvQueueLengthMoreThan2())
{
- sub_813AFC4();
- sub_813B784();
- sMonSummaryScreen->unk328C++;
+ PokeSum_CreateSprites();
+ PokeSum_TryPlayMonCry();
+ sMonSummaryScreen->switchMonTaskState++;
}
break;
default:
- sMonSummaryScreen->unk328C = 0;
- DestroyTask(id);
+ sMonSummaryScreen->switchMonTaskState = 0;
+ DestroyTask(taskId);
break;
}
}
-static void sub_813B750(u8 curPageIndex)
+static void PokeSum_UpdateWin1ActiveFlag(u8 curPageIndex)
{
ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN1_ON);
@@ -5151,7 +5176,7 @@ static void sub_813B750(u8 curPageIndex)
}
}
-static void sub_813B784(void)
+static void PokeSum_TryPlayMonCry(void)
{
if (!GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_IS_EGG))
{
@@ -5162,7 +5187,7 @@ static void sub_813B784(void)
}
}
-static bool32 sub_813B7E0(u8 nature)
+static bool32 PokeSum_IsMonBoldOrGentle(u8 nature)
{
if (nature == NATURE_BOLD || nature == NATURE_GENTLE)
return TRUE;
@@ -5170,7 +5195,7 @@ static bool32 sub_813B7E0(u8 nature)
return FALSE;
}
-static bool32 sub_813B7F8(void)
+static bool32 CurrentMonIsFromGBA(void)
{
u8 version = GetMonData(&sMonSummaryScreen->currentMon, MON_DATA_MET_GAME);
@@ -5184,14 +5209,15 @@ static bool32 sub_813B7F8(void)
return FALSE;
}
-static bool32 sub_813B838(u8 place)
+static bool32 MapSecIsInKantoOrSevii(u8 mapSec)
{
- if (place >= MAPSECS_KANTO && place < MAPSEC_NONE)
+ if (mapSec >= MAPSECS_KANTO && mapSec < MAPSEC_NONE)
return TRUE;
return FALSE;
}
-static void sub_813B854(void)
+UNUSED
+static void Unused_ShowPokemonSummaryScreen_NullParty(void)
{
- ShowPokemonSummaryScreen(0, 0, 0, CB2_ReturnToField, PSS_MODE_NORMAL);
+ ShowPokemonSummaryScreen(NULL, 0, 0, CB2_ReturnToField, PSS_MODE_NORMAL);
}
diff --git a/src/quest_log_player.c b/src/quest_log_player.c
index 4dcb13af2..ba672c482 100644
--- a/src/quest_log_player.c
+++ b/src/quest_log_player.c
@@ -69,7 +69,7 @@ static void QL_GfxTransition_Bike(void)
QL_SetObjectGraphicsId(objectEvent, GetPlayerAvatarGraphicsIdByStateId(PLAYER_AVATAR_GFX_BIKE));
ObjectEventTurn(objectEvent, objectEvent->movementDirection);
SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_MACH_BIKE);
- InitPlayerAvatarBikeState(0, 0);
+ BikeClearState(0, 0);
}
static void QL_GfxTransition_Fish(void)
diff --git a/src/region_map.c b/src/region_map.c
index c964fcf5a..858c5754d 100644
--- a/src/region_map.c
+++ b/src/region_map.c
@@ -511,9 +511,9 @@ static const struct WindowTemplate sRegionMapWindowTemplates[] = {
}, DUMMY_WIN_TEMPLATE
};
-ALIGNED(4) const u8 sTextColor_White[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY};
-ALIGNED(4) const u8 sTextColor_Green[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_GREEN, TEXT_COLOR_DARK_GREY};
-ALIGNED(4) const u8 sTextColor_Red[] = {TEXT_COLOR_TRANSPARENT, TEXT_DYNAMIC_COLOR_1, TEXT_COLOR_DARK_GREY};
+ALIGNED(4) const u8 sTextColor_White[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY};
+ALIGNED(4) const u8 sTextColor_Green[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_GREEN, TEXT_COLOR_DARK_GRAY};
+ALIGNED(4) const u8 sTextColor_Red[] = {TEXT_COLOR_TRANSPARENT, TEXT_DYNAMIC_COLOR_1, TEXT_COLOR_DARK_GRAY};
static const u8 *const sTextColorTable[] = {
[MAPSECTYPE_VISITED - 2] = sTextColor_Green,
@@ -812,7 +812,7 @@ static const u8 sWinRegs[][2] = {
{REG_OFFSET_WIN1V, REG_OFFSET_WIN1H}
};
-static const u8 sTextColors[] = {TEXT_DYNAMIC_COLOR_6, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY};
+static const u8 sTextColors[] = {TEXT_DYNAMIC_COLOR_6, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY};
static const u8 *const sMapNames[] = {
[MAPSEC_PALLET_TOWN - MAPSECS_KANTO] = gMapSecName_PalletTown,
diff --git a/src/save_failed_screen.c b/src/save_failed_screen.c
index 9c29323ba..7fd2f0f9f 100644
--- a/src/save_failed_screen.c
+++ b/src/save_failed_screen.c
@@ -153,7 +153,7 @@ static void ClearMapBuffer(void)
static void PrintTextOnSaveFailedScreen(const u8 *str)
{
- GenerateFontHalfRowLookupTable(TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GREY);
+ GenerateFontHalfRowLookupTable(TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY);
CpuFill16(PIXEL_FILL(1) | (PIXEL_FILL(1) << 8), gDecompressionBuffer + 0x20, 0x2300);
HelpSystemRenderText(2, gDecompressionBuffer + 0x20, str, 2, 2, 28, 10);
RequestDmaCopyFromCharBuffer();
diff --git a/src/slot_machine.c b/src/slot_machine.c
index 2c2891c5c..96779258d 100644
--- a/src/slot_machine.c
+++ b/src/slot_machine.c
@@ -1991,7 +1991,7 @@ static bool8 SlotsTask_GraphicsInit(u8 * state, struct SlotMachineSetupTaskData
x = 236 - GetStringWidth(0, gString_SlotMachineControls, 0);
textColor[0] = TEXT_DYNAMIC_COLOR_6;
textColor[1] = TEXT_COLOR_WHITE;
- textColor[2] = TEXT_COLOR_DARK_GREY;
+ textColor[2] = TEXT_COLOR_DARK_GRAY;
AddTextPrinterParameterized3(1, 0, x, 0, textColor, 0, gString_SlotMachineControls);
CopyBgTilemapBufferToVram(0);
diff --git a/src/strings.c b/src/strings.c
index e183e5167..0855152f5 100644
--- a/src/strings.c
+++ b/src/strings.c
@@ -58,7 +58,7 @@ const u8 gText_Seen[] = _("Seen:");
const u8 gText_Owned[] = _("Owned:");
const u8 gText_Kanto[] = _("KANTO");
const u8 gText_National[] = _("NATIONAL");
-const u8 gText_PokemonHabitats[] = _("{COLOR WHITE2}{SHADOW LIGHT_BLUE}POKéMON HABITATS");
+const u8 gText_PokemonHabitats[] = _("{COLOR DYNAMIC_COLOR6}{SHADOW DYNAMIC_COLOR5}POKéMON HABITATS");
const u8 gText_DexCategory_GrasslandPkmn[] = _("Grassland POKéMON");
const u8 gText_DexCategory_ForestPkmn[] = _("Forest POKéMON");
const u8 gText_DexCategory_WatersEdgePkmn[] = _("Water's-edge POKéMON");
@@ -68,16 +68,16 @@ const u8 gText_DexCategory_MountainPkmn[] = _("Mountain POKéMON");
const u8 gText_DexCategory_RoughTerrainPkmn[] = _("Rough-terrain POKéMON");
const u8 gText_DexCategory_UrbanPkmn[] = _("Urban POKéMON");
const u8 gText_DexCategory_RarePkmn[] = _("Rare POKéMON");
-const u8 gText_Search[] = _("{COLOR WHITE2}{SHADOW LIGHT_BLUE}SEARCH");
+const u8 gText_Search[] = _("{COLOR DYNAMIC_COLOR6}{SHADOW DYNAMIC_COLOR5}SEARCH");
const u8 gText_NumericalMode[] = _("NUMERICAL MODE");
const u8 gText_AToZMode[] = _("A TO Z MODE");
-const u8 gText_PokedexOther[] = _("{COLOR WHITE2}{SHADOW LIGHT_BLUE}OTHER");
+const u8 gText_PokedexOther[] = _("{COLOR DYNAMIC_COLOR6}{SHADOW DYNAMIC_COLOR5}OTHER");
const u8 gTextJP_HowToUsePokedex[] = _("ずかんの つかいかた");
const u8 gText_ClosePokedex[] = _("CLOSE POKéDEX");
const u8 gText_TypeMode[] = _("TYPE MODE");
const u8 gText_LightestMode[] = _("LIGHTEST MODE");
const u8 gText_SmallestMode[] = _("SMALLEST MODE");
-const u8 gText_PokemonList[] = _("{COLOR WHITE2}{SHADOW LIGHT_BLUE}POKéMON LIST");
+const u8 gText_PokemonList[] = _("{COLOR DYNAMIC_COLOR6}{SHADOW DYNAMIC_COLOR5}POKéMON LIST");
const u8 gText_NumericalModeKanto[] = _("NUMERICAL MODE: KANTO");
const u8 gText_NumericalModeNational[] = _("NUMERICAL MODE: NATIONAL");
const u8 gText_PokemonListNoColor[] = _("POKéMON LIST");
@@ -110,8 +110,8 @@ ALIGNED(4) const u8 gText_Number[] = _("No. ");
ALIGNED(4) const u8 gText_Level[] = _("Lv. ");
ALIGNED(4) const u8 gText_Name[] = _("NAME");
ALIGNED(4) const u8 gText_IDNumber[] = _("IDNo.");
-const u8 gUnknown_841610A[] = _("{HIGHLIGHT WHITE2}{COLOR DARK_GREY}オダマキはかせが ピンチだ!\nポケモンを だして たすけてあげよう!");
-const u8 gUnknown_8416133[] = _("{HIGHLIGHT WHITE2}{COLOR DARK_GREY}このポケモンにしますか?");
+const u8 gUnknown_841610A[] = _("{HIGHLIGHT DYNAMIC_COLOR6}{COLOR WHITE}オダマキはかせが ピンチだ!\nポケモンを だして たすけてあげよう!");
+const u8 gUnknown_8416133[] = _("{HIGHLIGHT DYNAMIC_COLOR6}{COLOR WHITE}このポケモンにしますか?");
const u8 gUnknown_8416146[] = _("ポケモン");
const u8 gText_SaveError_PleaseExchangeBackupMemory[] = _("Save error.\pPlease exchange the\nbackup memory.");
const u8 gSaveStatName_Player[] = _("PLAYER");
@@ -134,14 +134,14 @@ const u8 gText_Mail[] = _("MAIL");
const u8 gText_Take[] = _("TAKE");
const u8 gText_Store[] = _("STORE");
const u8 gOtherText_Check[] = _("CHECK");
-const u8 gUnknown_84161EF[] = _("NONE");
+const u8 gText_PokeSum_Item_None[] = _("NONE");
const u8 gOtherText_Open[] = _("OPEN");
const u8 gOtherText_Deselect[] = _("DESELECT");
-const u8 gUnknown_8416202[] = _("???");
+const u8 gText_PokeSum_DexNoUnknown[] = _("???");
const u8 gUnknown_8416206[] = _("?????");
const u8 gText_Slash[] = _("/");
-const u8 gUnknown_841620E[] = _("-");
-const u8 gUnknown_8416210[] = _("--");
+const u8 gText_PokeSum_OneHyphen[] = _("-");
+const u8 gText_PokeSum_TwoHyphens[] = _("--");
const u8 gText_ThreeHyphens[] = _("---");
const u8 gText_SevenHyphens[] = _("-------");
const u8 gText_MaleSymbol[] = _("♂");
@@ -151,7 +151,7 @@ const u8 gOtherText_UnkF9_08_Clear_01[] = _("{NO}{CLEAR 0x01}");
const u8 gUnknown_841622C[] = _("{PLUS}");
const u8 gUnknown_841622F[] = _("{ESCAPE 0x03}");
const u8 gUnknown_8416233[] = _("{ID}{NO}");
-const u8 gUnknown_8416238[] = _("{PP}");
+const u8 gText_PokeSum_PP[] = _("{PP}");
const u8 gText_SelectorArrow2[] = _("▶");
const u8 gUnknown_841623D[] = _("YES\nNO");
const u8 gText_GoBackToThePreviousMenu[] = _("Go back to the\nprevious menu.");
@@ -760,9 +760,9 @@ const u8 gUnknown_8418C62[] = _("なにも かわらなかった!");
const u8 gUnknown_8418C6F[] = _("もう これいじょう たべない みたい‥");
const u8 gText_SaveFailedScreen_CheckingBackupMemory[] = _("Save failed.\nChecking the backup memory‥\nPlease wait.\n“Time required:\nabout 1 minute”");
const u8 gText_SaveFailedScreen_BackupMemoryDamaged[] = _("The backup memory is damaged or\nthe game's battery has run dry.\nThe game can be played, but its\nprogress cannot be saved.\n“Please press the A Button.”");
-const u8 gUnknown_8418D70[] = _("{COLOR RED}“このまま ぼうけんをつづけることは できません\nタイトルに もどります”");
+const u8 gUnknown_8418D70[] = _("{COLOR DARK_GRAY}“このまま ぼうけんをつづけることは できません\nタイトルに もどります”");
const u8 gUnknown_8418D99[] = _("けんさが しゅうりょうしました!\nもういちど レポ-トを かきこみます\nしばらくおまちください");
-const u8 gUnknown_8418DC9[] = _("レポ-トの かきこみは しゅうりょうしました\n{COLOR RED}“このまま ぼうけんをつづけることは できません\nタイトルに もどります”");
+const u8 gUnknown_8418DC9[] = _("レポ-トの かきこみは しゅうりょうしました\n{COLOR DARK_GRAY}“このまま ぼうけんをつづけることは できません\nタイトルに もどります”");
const u8 gText_SaveFailedScreen_SaveCompleted[] = _("Save completed.\n“Please press the A Button.”");
const u8 gUnknown_8418E36[] = _("れんらくせん");
const u8 gUnknown_8418E3D[] = _("ひみつきち");
@@ -801,47 +801,47 @@ const u8 gText_RegionMap_AreaDesc_TanobyRuins[] = _("An ancient ruin that is rum
const u8 gText_RegionMap_AreaDesc_AlteringCave[] = _("This island has been known by this\nname since the distant past.\nNo one today knows where it got\nthis name, however.");
const u8 gText_RegionMap_AreaDesc_PatternBush[] = _("A lush and bush-like area. \nIn it are patterns where no grass\ngrows. Some study it in the belief\nthat a secret is concealed.");
const u8 gText_RegionMap_AreaDesc_DottedHole[] = _("A mysterious, just-discovered\nruin from an ancient time.\nIt got its name from the six dots\non its door.");
-const u8 gUnknown_8419782[] = _("{DYNAMIC 0x00} nature.\nMet in a trade.");
-const u8 gUnknown_841979D[] = _("{DYNAMIC 0x00} nature.\nMet in a trade.");
-const u8 gUnknown_84197B8[] = _("{DYNAMIC 0x00} nature.\nMet in a fateful encounter when\nat {LV_2} {DYNAMIC 0x01}.");
-const u8 gUnknown_84197ED[] = _("{DYNAMIC 0x00} nature.\nMet in a fateful encounter when\nat {LV_2} {DYNAMIC 0x01}.");
-const u8 gUnknown_8419822[] = _("{DYNAMIC 0x00} nature.\nMet in {DYNAMIC 0x02} at {LV_2} {DYNAMIC 0x01}.");
-const u8 gUnknown_8419841[] = _("{DYNAMIC 0x00} nature.\nMet in {DYNAMIC 0x02} at {LV_2} {DYNAMIC 0x01}.");
-const u8 gUnknown_8419860[] = _("{DYNAMIC 0x00} nature.\nApparently met in {DYNAMIC 0x02}\nat {LV_2} {DYNAMIC 0x01}.");
-const u8 gUnknown_841988A[] = _("{DYNAMIC 0x00} nature.\nApparently met in {DYNAMIC 0x02}\nat {LV_2} {DYNAMIC 0x01}.");
-const u8 gUnknown_84198B4[] = _("{DYNAMIC 0x00} nature.\nHatched: {DYNAMIC 0x02}\nat {LV_2} {DYNAMIC 0x01}.");
-const u8 gUnknown_84198D5[] = _("{DYNAMIC 0x00} nature.\nHatched: {DYNAMIC 0x02}\nat {LV_2} {DYNAMIC 0x01}.");
-const u8 gUnknown_84198F6[] = _("{DYNAMIC 0x00}なせいかく {LV_2}{DYNAMIC 0x01}のとき\n{DYNAMIC 0x02}で かえった ようだ");
-const u8 gUnknown_8419913[] = _("{DYNAMIC 0x00}せいかく {LV_2}{DYNAMIC 0x01}のとき\n{DYNAMIC 0x02}で かえった ようだ");
-const u8 gUnknown_841992F[] = _("{DYNAMIC 0x00} nature. Met in a fateful\nencounter (hatched: {DYNAMIC 0x02}\nat {LV_2} {DYNAMIC 0x01}).");
-const u8 gUnknown_841996D[] = _("{DYNAMIC 0x00} nature. Met in a fateful\nencounter (hatched: {DYNAMIC 0x02}\nat {LV_2} {DYNAMIC 0x01}).");
-const u8 gUnknown_84199AB[] = _("{DYNAMIC 0x00} nature. Apparently met in\na fateful encounter (hatched:\n{DYNAMIC 0x02} at {LV_2} {DYNAMIC 0x01}).");
-const u8 gUnknown_84199F4[] = _("{DYNAMIC 0x00} nature. Apparently met in\na fateful encounter シhatched:\n{DYNAMIC 0x02} at {LV_2} {DYNAMIC 0x01}ス.");
-const u8 gUnknown_8419A3D[] = _("An odd POKéMON EGG found by the\nDAY-CARE couple.");
-const u8 gUnknown_8419A6E[] = _("An odd POKéMON EGG obtained from\nthe traveling man.");
-const u8 gUnknown_8419AA2[] = _("A wondrously peculiar POKéMON EGG\nobtained at a nice place.");
-const u8 gUnknown_8419ADE[] = _("An odd POKéMON EGG obtained from\nan old woman at the SPA.");
-const u8 gUnknown_8419B18[] = _("A peculiar POKéMON EGG obtained\nin a trade.");
-const u8 gUnknown_8419B44[] = _("It looks like this\nEGG will take a\nlong time to hatch.");
-const u8 gUnknown_8419B7B[] = _("What will hatch\nfrom this? It will\ntake some time.");
-const u8 gUnknown_8419BAE[] = _("It occasionally\nmoves. It should\nhatch soon.");
-const u8 gUnknown_8419BDB[] = _("It's making sounds.\nIt's almost ready\nto hatch!");
-const u8 gUnknown_8419C0B[] = _("a trade");
-const u8 gUnknown_8419C13[] = _("Somewhere");
-const u8 gUnknown_8419C1D[] = _("POKéMON INFO");
-const u8 gUnknown_8419C2A[] = _("POKéMON SKILLS");
-const u8 gUnknown_8419C39[] = _("KNOWN MOVES");
-const u8 gUnknown_8419C45[] = _("No data");
-const u8 gUnknown_8419C4D[] = _("EXP. POINTS");
-const u8 gUnknown_8419C59[] = _("NEXT LV.");
-const u8 gUnknown_8419C62[] = _("{DPAD_RIGHT}PAGE {A_BUTTON}CANCEL");
-const u8 gUnknown_8419C72[] = _("{A_BUTTON}CANCEL");
-const u8 gUnknown_8419C7B[] = _("{DPAD_LEFTRIGHT}PAGE");
-const u8 gUnknown_8419C82[] = _("{DPAD_LEFT}PAGE {A_BUTTON}DETAIL");
-const u8 gUnknown_8419C92[] = _("{DPAD_UPDOWN}PICK {A_BUTTON}SWITCH");
-const u8 gUnknown_8419CA2[] = _("{DPAD_UPDOWN}PICK");
-const u8 gUnknown_8419CA9[] = _("{DPAD_UPDOWN}PICK {A_BUTTON}DELETE");
-const u8 gUnknown_8419CB9[] = _("HM moves can't be\nforgotten now.");
+const u8 gText_PokeSum_MetInATrade[] = _("{DYNAMIC 0x00} nature.\nMet in a trade.");
+const u8 gText_PokeSum_MetInATrade_BoldGentleGrammar[] = _("{DYNAMIC 0x00} nature.\nMet in a trade.");
+const u8 gText_PokeSum_FatefulEncounterMet[] = _("{DYNAMIC 0x00} nature.\nMet in a fateful encounter when\nat {LV_2} {DYNAMIC 0x01}.");
+const u8 gText_PokeSum_FatefulEncounterMet_BoldGentleGrammar[] = _("{DYNAMIC 0x00} nature.\nMet in a fateful encounter when\nat {LV_2} {DYNAMIC 0x01}.");
+const u8 gText_PokeSum_Met[] = _("{DYNAMIC 0x00} nature.\nMet in {DYNAMIC 0x02} at {LV_2} {DYNAMIC 0x01}.");
+const u8 gText_PokeSum_Met_BoldGentleGrammar[] = _("{DYNAMIC 0x00} nature.\nMet in {DYNAMIC 0x02} at {LV_2} {DYNAMIC 0x01}.");
+const u8 gText_PokeSum_ApparentlyMet[] = _("{DYNAMIC 0x00} nature.\nApparently met in {DYNAMIC 0x02}\nat {LV_2} {DYNAMIC 0x01}.");
+const u8 gText_PokeSum_ApparentlyMet_BoldGentleGrammar[] = _("{DYNAMIC 0x00} nature.\nApparently met in {DYNAMIC 0x02}\nat {LV_2} {DYNAMIC 0x01}.");
+const u8 gText_PokeSum_Hatched[] = _("{DYNAMIC 0x00} nature.\nHatched: {DYNAMIC 0x02}\nat {LV_2} {DYNAMIC 0x01}.");
+const u8 gText_PokeSum_Hatched_BoldGentleGrammar[] = _("{DYNAMIC 0x00} nature.\nHatched: {DYNAMIC 0x02}\nat {LV_2} {DYNAMIC 0x01}.");
+const u8 gText_PokeSum_JP_ApparentlyHatched[] = _("{DYNAMIC 0x00}なせいかく {LV_2}{DYNAMIC 0x01}のとき\n{DYNAMIC 0x02}で かえった ようだ");
+const u8 gText_PokeSum_JP_ApparentlyHatched_BoldGentleGrammar[] = _("{DYNAMIC 0x00}せいかく {LV_2}{DYNAMIC 0x01}のとき\n{DYNAMIC 0x02}で かえった ようだ");
+const u8 gText_PokeSum_FatefulEncounterHatched[] = _("{DYNAMIC 0x00} nature. Met in a fateful\nencounter (hatched: {DYNAMIC 0x02}\nat {LV_2} {DYNAMIC 0x01}).");
+const u8 gText_PokeSum_FatefulEncounterHatched_BoldGentleGrammar[] = _("{DYNAMIC 0x00} nature. Met in a fateful\nencounter (hatched: {DYNAMIC 0x02}\nat {LV_2} {DYNAMIC 0x01}).");
+const u8 gText_PokeSum_ApparentlyFatefulEncounterHatched[] = _("{DYNAMIC 0x00} nature. Apparently met in\na fateful encounter (hatched:\n{DYNAMIC 0x02} at {LV_2} {DYNAMIC 0x01}).");
+const u8 gText_PokeSum_ApparentlyFatefulEncounterHatched_BoldGentleGrammar[] = _("{DYNAMIC 0x00} nature. Apparently met in\na fateful encounter (hatched:\n{DYNAMIC 0x02} at {LV_2} {DYNAMIC 0x01}).");
+const u8 gText_PokeSum_EggOrigin_DayCare[] = _("An odd POKéMON EGG found by the\nDAY-CARE couple.");
+const u8 gText_PokeSum_EggOrigin_TravelingMan[] = _("An odd POKéMON EGG obtained from\nthe traveling man.");
+const u8 gText_PokeSum_EggOrigin_NicePlace[] = _("A wondrously peculiar POKéMON EGG\nobtained at a nice place.");
+const u8 gText_PokeSum_EggOrigin_Spa[] = _("An odd POKéMON EGG obtained from\nan old woman at the SPA.");
+const u8 gText_PokeSum_EggOrigin_Trade[] = _("A peculiar POKéMON EGG obtained\nin a trade.");
+const u8 gText_PokeSum_EggHatch_LongTime[] = _("It looks like this\nEGG will take a\nlong time to hatch.");
+const u8 gText_PokeSum_EggHatch_SomeTime[] = _("What will hatch\nfrom this? It will\ntake some time.");
+const u8 gText_PokeSum_EggHatch_Soon[] = _("It occasionally\nmoves. It should\nhatch soon.");
+const u8 gText_PokeSum_EggHatch_AlmostReady[] = _("It's making sounds.\nIt's almost ready\nto hatch!");
+const u8 gText_PokeSum_ATrade[] = _("a trade");
+const u8 gText_Somewhere[] = _("Somewhere");
+const u8 gText_PokeSum_PageName_PokemonInfo[] = _("POKéMON INFO");
+const u8 gText_PokeSum_PageName_PokemonSkills[] = _("POKéMON SKILLS");
+const u8 gText_PokeSum_PageName_KnownMoves[] = _("KNOWN MOVES");
+const u8 gText_PokeSum_NoData[] = _("No data");
+const u8 gText_PokeSum_ExpPoints[] = _("EXP. POINTS");
+const u8 gText_PokeSum_NextLv[] = _("NEXT LV.");
+const u8 gText_PokeSum_Controls_PageCancel[] = _("{DPAD_RIGHT}PAGE {A_BUTTON}CANCEL");
+const u8 gText_PokeSum_Controls_Cancel[] = _("{A_BUTTON}CANCEL");
+const u8 gText_PokeSum_Controls_Page[] = _("{DPAD_LEFTRIGHT}PAGE");
+const u8 gText_PokeSum_Controls_PageDetail[] = _("{DPAD_LEFT}PAGE {A_BUTTON}DETAIL");
+const u8 gText_PokeSum_Controls_PickSwitch[] = _("{DPAD_UPDOWN}PICK {A_BUTTON}SWITCH");
+const u8 gText_PokeSum_Controls_Pick[] = _("{DPAD_UPDOWN}PICK");
+const u8 gText_PokeSum_Controls_PickDelete[] = _("{DPAD_UPDOWN}PICK {A_BUTTON}DELETE");
+const u8 gText_PokeSum_HmMovesCantBeForgotten[] = _("HM moves can't be\nforgotten now.");
const u8 gText_TrainerCardName[] = _("NAME: ");
const u8 gText_TrainerCardIDNo[] = _("IDNo.");
const u8 gText_TrainerCardMoney[] = _("MONEY");
@@ -1032,7 +1032,7 @@ ALIGNED(4) const u8 gText_BerryCrush_NoBerries[] = _("You have no BERRIES.\nThe
ALIGNED(4) const u8 gText_BerryCrush_MemberDroppedOut[] = _("A member dropped out.\nThe game will be canceled.");
ALIGNED(4) const u8 gText_BerryCrush_TimeUp[] = _("Time's up.\pGood BERRY POWDER could not be\nmade…\p");
ALIGNED(4) const u8 gText_BerryCrush_CommunicationStandby[] = _("Communication standby…");
-ALIGNED(4) const u8 gText_1_ClrLtGryShdwBlk_Dynamic0[] = _("1. {COLOR LIGHT_GRAY}{SHADOW BLACK}{DYNAMIC 0x00}");
+ALIGNED(4) const u8 gText_1_ClrBluShdwLtBlu_Dynamic0[] = _("1. {COLOR BLUE}{SHADOW LIGHT_BLUE}{DYNAMIC 0x00}");
const u8 gText_1_Dynamic0[] = _("1. {DYNAMIC 0x00}");
ALIGNED(4) const u8 gText_SpaceTimes[] = _(" times");
ALIGNED(4) const u8 gText_XDotY[] = _("{STR_VAR_1}.{STR_VAR_2}");
@@ -1214,10 +1214,10 @@ const u8 gTradeText_CancelTrade[] = _("Cancel trade?");
const u8 gTradeText_PressBButtonToExit[] = _("Press the B Button to exit.");
const u8 gUnknown_841E10A[] = _("SUMMARY");
const u8 gUnknown_841E112[] = _("TRADE");
-const u8 gUnknown_841E118[] = _("{COLOR RED}{HIGHLIGHT DARK_GREY}{SHADOW GREEN}Communication standby…\nPlease wait.");
-const u8 gUnknown_841E145[] = _("{COLOR RED}{HIGHLIGHT DARK_GREY}{SHADOW GREEN}The trade has been canceled.");
-const u8 gUnknown_841E16B[] = _("{COLOR RED}{HIGHLIGHT DARK_GREY}{SHADOW GREEN}That's your only POKéMON\nfor battle.");
-const u8 gUnknown_841E199[] = _("{COLOR RED}{HIGHLIGHT DARK_GREY}{SHADOW GREEN}Waiting for your friend\nto finish…");
+const u8 gUnknown_841E118[] = _("{COLOR DARK_GRAY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GRAY}Communication standby…\nPlease wait.");
+const u8 gUnknown_841E145[] = _("{COLOR DARK_GRAY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GRAY}The trade has been canceled.");
+const u8 gUnknown_841E16B[] = _("{COLOR DARK_GRAY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GRAY}That's your only POKéMON\nfor battle.");
+const u8 gUnknown_841E199[] = _("{COLOR DARK_GRAY}{HIGHLIGHT WHITE}{SHADOW LIGHT_GRAY}Waiting for your friend\nto finish…");
const u8 gUnknown_841E1C5[] = _("Your friend wants\nto trade POKéMON.");
const u8 gText_XWillBeSentToY[] = _("{STR_VAR_2} will be\nsent to {STR_VAR_1}.");
const u8 gText_ByeByeVar1[] = _("Bye-bye, {STR_VAR_2}!");
@@ -1246,7 +1246,7 @@ const u8 gUnknown_841E2C9[] = _("{DYNAMIC 0x02} players");
const u8 gUnknown_841E2D4[] = _("{DYNAMIC 0x03} players");
const u8 gUnknown_841E2DF[] = _("{DPAD_ANY}えらぶ:{A_BUTTON}けってい");
const u8 gUnknown_841E2EC[] = _("{B_BUTTON}CANCEL");
-const u8 gUnknown_841E2F5[] = _("{COLOR BLUE}{SHADOW YELLOW} たいせんの くみあわせ\n{COLOR RED}{SHADOW GREEN}じぶんの ばしょをきめて ください");
+const u8 gUnknown_841E2F5[] = _("{COLOR RED}{SHADOW LIGHT_RED} たいせんの くみあわせ\n{COLOR DARK_GRAY}{SHADOW LIGHT_GRAY}じぶんの ばしょをきめて ください");
const u8 gUnknown_841E322[] = _("{ID}");
const u8 gText_CommunicationStandby5[] = _("Communication standby…");
const u8 gDaycareText_GetAlongVeryWell[] = _("The two seem to get along\nvery well.");
diff --git a/src/text.c b/src/text.c
index fbb084244..f92c73df1 100644
--- a/src/text.c
+++ b/src/text.c
@@ -487,7 +487,7 @@ void TextPrinterDrawDownArrow(struct TextPrinter *textPrinter)
BlitBitmapRectToWindow(
textPrinter->printerTemplate.windowId,
arrowTiles,
- sDownArrowYCoords[*(u32*)subStruct << 17 >> 30], // subStruct->downArrowYPosIdx but again, stupidly retrieved
+ sDownArrowYCoords[subStruct->downArrowYPosIdx],
0,
0x80,
0x10,
@@ -1007,16 +1007,12 @@ s32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing)
int minGlyphWidth;
s32 (*func)(u16 glyphId, bool32 isJapanese);
int localLetterSpacing;
- #ifndef NONMATCHING
- register u32 lineWidth asm("r5");
- #else
- u32 lineWidth;
- #endif
+ u32 lineWidth;
const u8 *bufferPointer;
int glyphWidth;
u32 width;
- isJapanese = 0;
+ isJapanese = FALSE;
minGlyphWidth = 0;
func = GetFontWidthFunc(fontId);
@@ -1024,7 +1020,7 @@ s32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing)
return 0;
if (letterSpacing == -1)
- localLetterSpacing = GetFontAttribute(fontId, 2);
+ localLetterSpacing = GetFontAttribute(fontId, FONTATTR_LETTER_SPACING);
else
localLetterSpacing = letterSpacing;
@@ -1041,7 +1037,7 @@ s32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing)
width = lineWidth;
lineWidth = 0;
break;
- case PLACEHOLDER_BEGIN:
+ case PLACEHOLDER_BEGIN:
switch (*++str)
{
case PLACEHOLDER_ID_STRING_VAR_1:
@@ -1063,18 +1059,15 @@ s32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing)
{
glyphWidth = func(*bufferPointer++, isJapanese);
if (minGlyphWidth > 0)
- {
- if (glyphWidth < minGlyphWidth)
- glyphWidth = minGlyphWidth;
- }
- else if (isJapanese)
- {
- glyphWidth += localLetterSpacing;
- }
- lineWidth += glyphWidth;
+ lineWidth += minGlyphWidth > glyphWidth ? minGlyphWidth : glyphWidth;
+ else
+ lineWidth += isJapanese ? glyphWidth + localLetterSpacing : glyphWidth;
}
bufferPointer = NULL;
break;
+ case CHAR_PROMPT_SCROLL:
+ case CHAR_PROMPT_CLEAR:
+ break;
case EXT_CTRL_CODE_BEGIN:
switch (*++str)
{
@@ -1092,13 +1085,17 @@ s32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing)
case EXT_CTRL_CODE_SHIFT_RIGHT:
case EXT_CTRL_CODE_SHIFT_DOWN:
++str;
+ case EXT_CTRL_CODE_RESET_FONT:
+ case EXT_CTRL_CODE_WAIT_BUTTON:
+ case EXT_CTRL_CODE_WAIT_SE:
+ case EXT_CTRL_CODE_FILL_WINDOW:
break;
case EXT_CTRL_CODE_FONT:
func = GetFontWidthFunc(*++str);
if (func == NULL)
return 0;
if (letterSpacing == -1)
- localLetterSpacing = GetFontAttribute(*str, 2);
+ localLetterSpacing = GetFontAttribute(*str, FONTATTR_LETTER_SPACING);
break;
case EXT_CTRL_CODE_CLEAR:
glyphWidth = *++str;
@@ -1115,15 +1112,10 @@ s32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing)
minGlyphWidth = *++str;
break;
case EXT_CTRL_CODE_JPN:
- isJapanese = 1;
+ isJapanese = TRUE;
break;
case EXT_CTRL_CODE_ENG:
- isJapanese = 0;
- break;
- case EXT_CTRL_CODE_RESET_FONT:
- case EXT_CTRL_CODE_WAIT_BUTTON:
- case EXT_CTRL_CODE_WAIT_SE:
- case EXT_CTRL_CODE_FILL_WINDOW:
+ isJapanese = FALSE;
default:
break;
}
@@ -1146,9 +1138,6 @@ s32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing)
}
lineWidth += glyphWidth;
break;
- case CHAR_PROMPT_SCROLL:
- case CHAR_PROMPT_CLEAR:
- break;
default:
glyphWidth = func(*str, isJapanese);
if (minGlyphWidth > 0)
diff --git a/src/trade.c b/src/trade.c
index 21c127838..656cba37b 100644
--- a/src/trade.c
+++ b/src/trade.c
@@ -411,7 +411,7 @@ static const u8 gUnknown_8261E92[] = {
};
const u8 sText_Dummy[] = _("");
-const u8 sText_ClrDkGryHltTranspShdwRed[] = _("{COLOR DARK_GREY}{HIGHLIGHT TRANSPARENT}{SHADOW RED}");
+const u8 sText_ClrWhtHltTranspShdwDrkGry[] = _("{COLOR WHITE}{HIGHLIGHT TRANSPARENT}{SHADOW DARK_GRAY}");
const u8 gText_MaleSymbol4[] = _("♂");
const u8 gText_FemaleSymbol4[] = _("♀");
const u8 gText_GenderlessSymbol[] = _("");
@@ -455,7 +455,7 @@ static const u8 *const sTradeErrorOrStatusMessagePtrs[] = {
gText_OtherTrainersPkmnCantBeTraded // The other TRAINER's POKéMON can't be traded now
};
-static const u8 sTextColor_PartyMonNickname[] = { TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY };
+static const u8 sTextColor_PartyMonNickname[] = { TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY };
static const struct BgTemplate sBgTemplates[] = {
{
@@ -674,7 +674,7 @@ static const u8 gUnknown_8262055[][2] = {
static void InitTradeMenuResources(void)
{
int i;
- static vu16 dummy;
+ static u16 dummy;
ResetSpriteData();
FreeAllSpritePalettes();
@@ -723,11 +723,6 @@ static void CB2_ReturnFromLinkTrade2(void)
u8 id;
s32 width;
u32 xPos;
-#ifndef NONMATCHING
- register u32 r0 asm("r0");
-#else
- u32 r0;
-#endif
u8 *name;
switch (gMain.state)
@@ -895,7 +890,8 @@ static void CB2_ReturnFromLinkTrade2(void)
gMain.state++;
break;
case 12:
- width = GetStringWidth(1, gSaveBlock2Ptr->playerName, 0);
+ name = gSaveBlock2Ptr->playerName;
+ width = GetStringWidth(1, name, 0);
xPos = (56 - width) / 2;
for (i = 0; i < 3; i++)
{
@@ -904,9 +900,8 @@ static void CB2_ReturnFromLinkTrade2(void)
CreateSprite(&temp, xPos + sTradeUnknownSpriteCoords[LANGUAGE_ENGLISH - 1][0] + (i * 32), sTradeUnknownSpriteCoords[LANGUAGE_ENGLISH - 1][1], 1);
}
id = GetMultiplayerId();
- r0 = (id ^ 1) * sizeof(*gLinkPlayers);
- name = gLinkPlayers->name;
- width = GetStringWidth(1, name + r0, 0);
+ name = gLinkPlayers[id ^ 1].name;
+ width = GetStringWidth(1, name, 0);
xPos = (56 - width) / 2;
for (i = 0; i < 3; i++)
{
@@ -999,11 +994,6 @@ void CB2_ReturnToTradeMenuFromSummary(void)
u8 id;
s32 width;
u32 xPos;
-#ifndef NONMATCHING
- register u32 r0 asm("r0");
-#else
- u32 r0;
-#endif
u8 *name;
switch (gMain.state)
@@ -1095,7 +1085,8 @@ void CB2_ReturnToTradeMenuFromSummary(void)
}
break;
case 12:
- width = GetStringWidth(1, gSaveBlock2Ptr->playerName, 0);
+ name = gSaveBlock2Ptr->playerName;
+ width = GetStringWidth(1, name, 0);
xPos = (56 - width) / 2;
for (i = 0; i < 3; i++)
{
@@ -1104,9 +1095,8 @@ void CB2_ReturnToTradeMenuFromSummary(void)
CreateSprite(&temp, xPos + sTradeUnknownSpriteCoords[LANGUAGE_ENGLISH - 1][0] + (i * 32), sTradeUnknownSpriteCoords[LANGUAGE_ENGLISH - 1][1], 1);
}
id = GetMultiplayerId();
- r0 = (id ^ 1) * sizeof(*gLinkPlayers);
- name = gLinkPlayers->name;
- width = GetStringWidth(1, name + r0, 0);
+ name = gLinkPlayers[id ^ 1].name;
+ width = GetStringWidth(1, name, 0);
xPos = (56 - width) / 2;
for (i = 0; i < 3; i++)
{
@@ -1827,9 +1817,9 @@ static void TradeMenuCB_2(void)
if (!gPaletteFade.active)
{
if (sTradeMenuResourcesPtr->tradeMenuCursorPosition < 6)
- ShowPokemonSummaryScreen(gPlayerParty, sTradeMenuResourcesPtr->tradeMenuCursorPosition, sTradeMenuResourcesPtr->partyCounts[0] - 1, CB2_ReturnToTradeMenuFromSummary, 4);
+ ShowPokemonSummaryScreen(gPlayerParty, sTradeMenuResourcesPtr->tradeMenuCursorPosition, sTradeMenuResourcesPtr->partyCounts[0] - 1, CB2_ReturnToTradeMenuFromSummary, PSS_MODE_TRADE);
else
- ShowPokemonSummaryScreen(gEnemyParty, sTradeMenuResourcesPtr->tradeMenuCursorPosition - 6, sTradeMenuResourcesPtr->partyCounts[1] - 1, CB2_ReturnToTradeMenuFromSummary, 4);
+ ShowPokemonSummaryScreen(gEnemyParty, sTradeMenuResourcesPtr->tradeMenuCursorPosition - 6, sTradeMenuResourcesPtr->partyCounts[1] - 1, CB2_ReturnToTradeMenuFromSummary, PSS_MODE_TRADE);
FreeAllWindowBuffers();
}
}
diff --git a/src/trainer_card.c b/src/trainer_card.c
index d3578dfb7..beb209bf5 100644
--- a/src/trainer_card.c
+++ b/src/trainer_card.c
@@ -271,7 +271,7 @@ static const u16 *const sKantoTrainerCardStarPals[] =
sKantoTrainerCard4Stars_Pals
};
-static const u8 sTrainerCardTextColors[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY};
+static const u8 sTrainerCardTextColors[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY};
static const u8 sTrainerCardStatColors[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_RED, TEXT_COLOR_LIGHT_RED};
static const u8 sTimeColonInvisibleTextColors[] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_TRANSPARENT, TEXT_COLOR_TRANSPARENT};
static const u8 sTrainerCardFontIds[] = {0, 2, 0};
diff --git a/src/trainer_tower.c b/src/trainer_tower.c
index fd10e33b2..b39782297 100644
--- a/src/trainer_tower.c
+++ b/src/trainer_tower.c
@@ -316,7 +316,7 @@ static const struct WindowTemplate sTimeBoardWindowTemplate[] = {
static const u32 sUnused_847A228 = 0x70;
-static const u8 sTextColors[3] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY};
+static const u8 sTextColors[3] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_LIGHT_GRAY};
static void (*const sTrainerTowerFunctions[])(void) = {
[TRAINER_TOWER_FUNC_INIT_FLOOR] = InitTrainerTowerFloor,
@@ -501,7 +501,7 @@ void GetTrainerTowerOpponentLoseText(u8 *dest, u8 opponentIdx)
TT_ConvertEasyChatMessageToString(sTrainerTowerOpponent->speechLose2, dest);
}
-static void SetUpTrainerTowerDataStruct(void) // fakematching
+static void SetUpTrainerTowerDataStruct(void)
{
u32 challengeType = gSaveBlock1Ptr->towerChallengeId;
s32 r4;
@@ -519,16 +519,7 @@ static void SetUpTrainerTowerDataStruct(void) // fakematching
r7 = gUnknown_84827B4[challengeType];
for (r4 = 0; r4 < MAX_TRAINER_TOWER_FLOORS; r4++)
{
- #ifndef NONMATCHING
- void * r5;
- register void * r0 asm("r0") = sTrainerTowerState;
- r5 = (void *)(r4 * sizeof(struct TrainerTowerFloor));
- r0 = r5 + (uintptr_t)r0;
- r0 += offsetof(struct UnkStruct_203F458, unk_0004.floors);
- memcpy(r0, r7[r4], sizeof(struct TrainerTowerFloor));
- #else
- memcpy(&sTrainerTowerState->unk_0004.floors[r4], r7[r4], sizeof(struct TrainerTowerFloor));
- #endif
+ *(sTrainerTowerState->unk_0004.floors + r4) = *(r7[r4]); // manual pointer arithmetic needed to match
}
sTrainerTowerState->unk_0004.checksum = CalcByteArraySum((void *)sTrainerTowerState->unk_0004.floors, sizeof(sTrainerTowerState->unk_0004.floors));
ValidateOrResetCurTrainerTowerRecord();
diff --git a/src/union_room.c b/src/union_room.c
index 24b8a4d3e..f19eba38d 100644
--- a/src/union_room.c
+++ b/src/union_room.c
@@ -3993,9 +3993,9 @@ static void UR_AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str
case UR_COLOR_DKE_WHT_LTE:
printerTemplate.letterSpacing = 0;
printerTemplate.lineSpacing = 0;
- printerTemplate.fgColor = TEXT_COLOR_DARK_GREY;
+ printerTemplate.fgColor = TEXT_COLOR_DARK_GRAY;
printerTemplate.bgColor = TEXT_COLOR_WHITE;
- printerTemplate.shadowColor = TEXT_COLOR_LIGHT_GREY;
+ printerTemplate.shadowColor = TEXT_COLOR_LIGHT_GRAY;
break;
case UR_COLOR_RED_WHT_LTR:
printerTemplate.letterSpacing = 0;
@@ -4016,14 +4016,14 @@ static void UR_AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str
printerTemplate.lineSpacing = 0;
printerTemplate.fgColor = TEXT_COLOR_WHITE;
printerTemplate.bgColor = TEXT_COLOR_WHITE;
- printerTemplate.shadowColor = TEXT_COLOR_LIGHT_GREY;
+ printerTemplate.shadowColor = TEXT_COLOR_LIGHT_GRAY;
break;
case UR_COLOR_WHT_DKE_LTE:
printerTemplate.letterSpacing = 0;
printerTemplate.lineSpacing = 0;
printerTemplate.fgColor = TEXT_COLOR_WHITE;
- printerTemplate.bgColor = TEXT_COLOR_DARK_GREY;
- printerTemplate.shadowColor = TEXT_COLOR_LIGHT_GREY;
+ printerTemplate.bgColor = TEXT_COLOR_DARK_GRAY;
+ printerTemplate.shadowColor = TEXT_COLOR_LIGHT_GRAY;
break;
case UR_COLOR_GRN_DN6_LTB:
printerTemplate.letterSpacing = 0;
diff --git a/src/union_room_chat_display.c b/src/union_room_chat_display.c
index 27ce26a02..60c202dcd 100644
--- a/src/union_room_chat_display.c
+++ b/src/union_room_chat_display.c
@@ -600,7 +600,7 @@ static bool32 DisplaySubtask_UpdateMessageBuffer(u8 *state)
UnionRoomChat_GetBufferSelectionRegion(&start, &length);
FillWin1Rect(start, length, PIXEL_FILL(0));
str = UnionRoomChat_GetMessageEntryBuffer();
- PrintOnWin1Parameterized(0, str, TEXT_COLOR_LIGHT_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY);
+ PrintOnWin1Parameterized(0, str, TEXT_COLOR_LIGHT_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY);
CopyWindowToVram(1, COPYWIN_GFX);
break;
case 1:
@@ -670,7 +670,7 @@ static bool32 DisplaySubtask_CancelRegister(u8 *state)
str = UnionRoomChat_GetEndOfMessageEntryBuffer();
length = StringLength_Multibyte(str);
FillWin1Rect(x, length, PIXEL_FILL(0));
- PrintOnWin1Parameterized(x, str, TEXT_COLOR_LIGHT_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY);
+ PrintOnWin1Parameterized(x, str, TEXT_COLOR_LIGHT_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GRAY);
CopyWindowToVram(1, COPYWIN_GFX);
break;
case 1:
diff --git a/src/vs_seeker.c b/src/vs_seeker.c
index af8bda8be..3432911e2 100644
--- a/src/vs_seeker.c
+++ b/src/vs_seeker.c
@@ -35,6 +35,13 @@ enum
typedef enum
{
+ VSSEEKER_SINGLE_RESP_RAND,
+ VSSEEKER_SINGLE_RESP_NO,
+ VSSEEKER_SINGLE_RESP_YES
+} VsSeekerSingleRespCode;
+
+typedef enum
+{
VSSEEKER_RESPONSE_NO_RESPONSE,
VSSEEKER_RESPONSE_UNFOUGHT_TRAINERS,
VSSEEKER_RESPONSE_FOUND_REMATCHES
@@ -44,8 +51,8 @@ typedef enum
typedef struct VsSeekerData
{
u16 trainerIdxs[6];
- u16 unk_c; // unused
- u16 unk_e; // unused
+ u16 mapGroup; // unused
+ u16 mapNum; // unused
} VsSeekerData;
struct VsSeekerTrainerInfo
@@ -72,10 +79,6 @@ struct VsSeekerStruct
u8 responseCode:5;
};
-extern u16 gSpecialVar_LastTalked;
-extern struct ObjectEvent gObjectEvents[OBJECT_EVENTS_COUNT];
-extern u8 gSelectedObjectEvent;
-
// static declarations
static EWRAM_DATA struct VsSeekerStruct *sVsSeeker = NULL;
@@ -88,24 +91,24 @@ static void Task_VsSeeker_2(u8 taskId);
static void GatherNearbyTrainerInfo(void);
static void Task_VsSeeker_3(u8 taskId);
static bool8 CanUseVsSeeker(void);
-static u8 GetVsSeekerResponseInArea(const VsSeekerData *);
+static u8 GetVsSeekerResponseInArea(const VsSeekerData * vsSeekerData);
static u8 GetRematchTrainerIdGivenGameState(const u16 *trainerIdxs, u8 rematchIdx);
-static u8 ShouldTryRematchBattleInternal(const VsSeekerData *, u16);
-static u8 HasRematchTrainerAlreadyBeenFought(const VsSeekerData *, u16);
+static u8 ShouldTryRematchBattleInternal(const VsSeekerData * vsSeekerData, u16 trainerBattleOpponent);
+static u8 HasRematchTrainerAlreadyBeenFought(const VsSeekerData * vsSeekerData, u16 trainerBattleOpponent);
static int LookupVsSeekerOpponentInArray(const VsSeekerData * array, u16 trainerId);
-static bool8 IsTrainerReadyForRematchInternal(const VsSeekerData *, u16);
-static u8 GetRunningBehaviorFromGraphicsId(u8);
-static u16 GetTrainerFlagFromScript(const u8 *);
-static int GetRematchIdx(const VsSeekerData *, u16);
-static bool32 IsThisTrainerRematchable(u32);
+static bool8 IsTrainerReadyForRematchInternal(const VsSeekerData * array, u16 trainerIdx);
+static u8 GetRunningBehaviorFromGraphicsId(u8 graphicsId);
+static u16 GetTrainerFlagFromScript(const u8 * script);
+static int GetRematchIdx(const VsSeekerData * vsSeekerData, u16 trainerFlagIdx);
+static bool32 IsThisTrainerRematchable(u32 localId);
static void ClearAllTrainerRematchStates(void);
-static bool8 IsTrainerVisibleOnScreen(struct VsSeekerTrainerInfo *);
-static u8 GetNextAvailableRematchTrainer(const VsSeekerData *, u16, u8 *);
+static bool8 IsTrainerVisibleOnScreen(struct VsSeekerTrainerInfo * trainerInfo);
+static u8 GetNextAvailableRematchTrainer(const VsSeekerData * vsSeekerData, u16 trainerFlagNo, u8 * idxPtr);
static u8 GetRematchableTrainerLocalId(void);
-static void StartTrainerObjectMovementScript(struct VsSeekerTrainerInfo *, const u8 *);
-static u8 GetCurVsSeekerResponse(s32, u16);
+static void StartTrainerObjectMovementScript(struct VsSeekerTrainerInfo * trainerInfo, const u8 * script);
+static u8 GetCurVsSeekerResponse(s32 vsSeekerIdx, u16 trainerIdx);
static void StartAllRespondantIdleMovements(void);
-static bool8 ObjectEventIdIsSane(u8 a0);
+static bool8 ObjectEventIdIsSane(u8 objectEventId);
static u8 GetRandomFaceDirectionMovementType();
// rodata
@@ -635,7 +638,14 @@ void VsSeekerResetObjectMovementAfterChargeComplete(void)
for (i = 0; i < gMapHeader.events->objectEventCount; i++)
{
- if ((templates[i].trainerType == 1 || templates[i].trainerType == 3) && (templates[i].movementType == MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN || templates[i].movementType == MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP || templates[i].movementType == MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT))
+ if ((
+ templates[i].trainerType == TRAINER_TYPE_NORMAL
+ || templates[i].trainerType == TRAINER_TYPE_BURIED
+ ) && (
+ templates[i].movementType == MOVEMENT_TYPE_VS_SEEKER_4D
+ || templates[i].movementType == MOVEMENT_TYPE_VS_SEEKER_4E
+ || templates[i].movementType == MOVEMENT_TYPE_VS_SEEKER_4F
+ ))
{
movementType = GetRandomFaceDirectionMovementType();
TryGetObjectEventIdByLocalIdAndMap(templates[i].localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &objEventId);
@@ -651,8 +661,7 @@ void VsSeekerResetObjectMovementAfterChargeComplete(void)
bool8 UpdateVsSeekerStepCounter(void)
{
- u8 x;
- x = 0;
+ u8 x = 0;
if (CheckBagHasItem(ITEM_VS_SEEKER, 1) == TRUE)
{
@@ -694,7 +703,7 @@ static void ResetMovementOfRematchableTrainers(void)
for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
{
struct ObjectEvent * objectEvent = &gObjectEvents[i];
- if (objectEvent->movementType == MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN || objectEvent->movementType == MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP || objectEvent->movementType == MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT)
+ if (objectEvent->movementType == MOVEMENT_TYPE_VS_SEEKER_4D || objectEvent->movementType == MOVEMENT_TYPE_VS_SEEKER_4E || objectEvent->movementType == MOVEMENT_TYPE_VS_SEEKER_4F)
{
u8 movementType = GetRandomFaceDirectionMovementType();
if (objectEvent->active && gSprites[objectEvent->spriteId].data[0] == i)
@@ -853,43 +862,42 @@ static u8 CanUseVsSeeker(void)
}
}
-static u8 GetVsSeekerResponseInArea(const VsSeekerData * a0)
+static u8 GetVsSeekerResponseInArea(const VsSeekerData * vsSeekerData)
{
- u16 r8 = 0;
+ u16 trainerIdx = 0;
u16 rval = 0;
- u8 r7;
- u8 sp0 = 0;
- u8 r0 = 0;
- s32 vsSeekerIdx;
- u8 *r2;
- vsSeekerIdx = 0;
+ u8 rematchTrainerIdx;
+ u8 unusedIdx = 0;
+ u8 response = 0;
+ s32 vsSeekerIdx = 0;
while (sVsSeeker->trainerInfo[vsSeekerIdx].localId != 0xFF)
{
- if (IsTrainerVisibleOnScreen(&sVsSeeker->trainerInfo[vsSeekerIdx]) == 1)
+ if (IsTrainerVisibleOnScreen(&sVsSeeker->trainerInfo[vsSeekerIdx]) == TRUE)
{
- r8 = sVsSeeker->trainerInfo[vsSeekerIdx].trainerIdx;
- if (!HasTrainerBeenFought(r8))
+ trainerIdx = sVsSeeker->trainerInfo[vsSeekerIdx].trainerIdx;
+ if (!HasTrainerBeenFought(trainerIdx))
{
StartTrainerObjectMovementScript(&sVsSeeker->trainerInfo[vsSeekerIdx], sMovementScript_TrainerUnfought);
sVsSeeker->trainerHasNotYetBeenFought = 1;
vsSeekerIdx++;
continue;
}
- r7 = GetNextAvailableRematchTrainer(a0, r8, &sp0);
- if (r7 == 0)
+ rematchTrainerIdx = GetNextAvailableRematchTrainer(vsSeekerData, trainerIdx, &unusedIdx);
+ if (rematchTrainerIdx == 0)
{
StartTrainerObjectMovementScript(&sVsSeeker->trainerInfo[vsSeekerIdx], sMovementScript_TrainerNoRematch);
sVsSeeker->trainerDoesNotWantRematch = 1;
}
else
{
- rval = Random() % 100;
- r0 = GetCurVsSeekerResponse(vsSeekerIdx, r8);
- if (r0 == 2)
- rval = 100;
- else if (r0 == 1)
- rval = 0;
+ rval = Random() % 100; // Even if it's overwritten below, it progresses the RNG.
+ response = GetCurVsSeekerResponse(vsSeekerIdx, trainerIdx);
+ if (response == VSSEEKER_SINGLE_RESP_YES)
+ rval = 100; // Definitely yes
+ else if (response == VSSEEKER_SINGLE_RESP_NO)
+ rval = 0; // Definitely no
+ // Otherwise it's a 70% chance to want a rematch
if (rval < 30)
{
StartTrainerObjectMovementScript(&sVsSeeker->trainerInfo[vsSeekerIdx], sMovementScript_TrainerNoRematch);
@@ -897,10 +905,10 @@ static u8 GetVsSeekerResponseInArea(const VsSeekerData * a0)
}
else
{
- gSaveBlock1Ptr->trainerRematches[sVsSeeker->trainerInfo[vsSeekerIdx].localId] = r7;
+ gSaveBlock1Ptr->trainerRematches[sVsSeeker->trainerInfo[vsSeekerIdx].localId] = rematchTrainerIdx;
ShiftStillObjectEventCoords(&gObjectEvents[sVsSeeker->trainerInfo[vsSeekerIdx].objectEventId]);
StartTrainerObjectMovementScript(&sVsSeeker->trainerInfo[vsSeekerIdx], sMovementScript_TrainerRematch);
- sVsSeeker->trainerIdxArray[sVsSeeker->numRematchableTrainers] = r8;
+ sVsSeeker->trainerIdxArray[sVsSeeker->numRematchableTrainers] = trainerIdx;
sVsSeeker->runningBehaviourEtcArray[sVsSeeker->numRematchableTrainers] = GetRunningBehaviorFromGraphicsId(sVsSeeker->trainerInfo[vsSeekerIdx].graphicsId);
sVsSeeker->numRematchableTrainers++;
sVsSeeker->trainerWantsRematch = 1;
@@ -992,11 +1000,11 @@ static u8 GetRematchTrainerIdGivenGameState(const u16 *trainerIdxs, u8 rematchId
return 0;
}
-u8 ShouldTryRematchBattle(void)
+bool8 ShouldTryRematchBattle(void)
{
if (ShouldTryRematchBattleInternal(sVsSeekerData, gTrainerBattleOpponent_A))
{
- return 1;
+ return TRUE;
}
return HasRematchTrainerAlreadyBeenFought(sVsSeekerData, gTrainerBattleOpponent_A);
}
@@ -1137,13 +1145,13 @@ static u8 GetRunningBehaviorFromGraphicsId(u8 graphicsId)
case OBJ_EVENT_GFX_BLACKBELT:
case OBJ_EVENT_GFX_HIKER:
case OBJ_EVENT_GFX_SAILOR:
- return 0x4e;
+ return MOVEMENT_TYPE_VS_SEEKER_4E;
case OBJ_EVENT_GFX_TUBER_M_WATER:
case OBJ_EVENT_GFX_SWIMMER_M_WATER:
case OBJ_EVENT_GFX_SWIMMER_F_WATER:
- return 0x4f;
+ return MOVEMENT_TYPE_VS_SEEKER_4F;
default:
- return 0x4d;
+ return MOVEMENT_TYPE_VS_SEEKER_4D;
}
}
@@ -1181,9 +1189,9 @@ static int GetRematchIdx(const VsSeekerData * vsSeekerData, u16 trainerFlagIdx)
return -1;
}
-static bool32 IsThisTrainerRematchable(u32 a0)
+static bool32 IsThisTrainerRematchable(u32 localId)
{
- if (!gSaveBlock1Ptr->trainerRematches[a0])
+ if (!gSaveBlock1Ptr->trainerRematches[localId])
return FALSE;
return TRUE;
}
@@ -1264,24 +1272,24 @@ static void StartTrainerObjectMovementScript(struct VsSeekerTrainerInfo * traine
ScriptMovement_StartObjectMovementScript(trainerInfo->localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, script);
}
-static u8 GetCurVsSeekerResponse(s32 a0, u16 a1)
+static u8 GetCurVsSeekerResponse(s32 vsSeekerIdx, u16 trainerIdx)
{
s32 i;
s32 j;
- for (i = 0; i < a0; i++)
+ for (i = 0; i < vsSeekerIdx; i++)
{
- if (IsTrainerVisibleOnScreen(&sVsSeeker->trainerInfo[i]) == 1 && sVsSeeker->trainerInfo[i].trainerIdx == a1)
+ if (IsTrainerVisibleOnScreen(&sVsSeeker->trainerInfo[i]) == 1 && sVsSeeker->trainerInfo[i].trainerIdx == trainerIdx)
{
for (j = 0; j < sVsSeeker->numRematchableTrainers; j++)
{
if (sVsSeeker->trainerIdxArray[j] == sVsSeeker->trainerInfo[i].trainerIdx)
- return 2;
+ return VSSEEKER_SINGLE_RESP_YES;
}
- return 1;
+ return VSSEEKER_SINGLE_RESP_NO;
}
}
- return 0;
+ return VSSEEKER_SINGLE_RESP_RAND;
}
static void StartAllRespondantIdleMovements(void)
@@ -1296,11 +1304,11 @@ static void StartAllRespondantIdleMovements(void)
{
if (sVsSeeker->trainerInfo[j].trainerIdx == sVsSeeker->trainerIdxArray[i])
{
- struct ObjectEvent *r4 = &gObjectEvents[sVsSeeker->trainerInfo[j].objectEventId];
+ struct ObjectEvent *objectEvent = &gObjectEvents[sVsSeeker->trainerInfo[j].objectEventId];
if (ObjectEventIdIsSane(sVsSeeker->trainerInfo[j].objectEventId) == 1)
- SetTrainerMovementType(r4, sVsSeeker->runningBehaviourEtcArray[i]);
- OverrideMovementTypeForObjectEvent(r4, sVsSeeker->runningBehaviourEtcArray[i]);
+ SetTrainerMovementType(objectEvent, sVsSeeker->runningBehaviourEtcArray[i]);
+ OverrideMovementTypeForObjectEvent(objectEvent, sVsSeeker->runningBehaviourEtcArray[i]);
gSaveBlock1Ptr->trainerRematches[sVsSeeker->trainerInfo[j].localId] = GetNextAvailableRematchTrainer(sVsSeekerData, sVsSeeker->trainerInfo[j].trainerIdx, &dummy);
}
}
diff --git a/src/wireless_communication_status_screen.c b/src/wireless_communication_status_screen.c
index f67da122f..936a1ed9f 100644
--- a/src/wireless_communication_status_screen.c
+++ b/src/wireless_communication_status_screen.c
@@ -323,13 +323,13 @@ static void WCSS_AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *
{
case 0:
textColor[0] = TEXT_COLOR_TRANSPARENT;
- textColor[1] = TEXT_COLOR_DARK_GREY;
- textColor[2] = TEXT_COLOR_LIGHT_GREY;
+ textColor[1] = TEXT_COLOR_DARK_GRAY;
+ textColor[2] = TEXT_COLOR_LIGHT_GRAY;
break;
case 1:
textColor[0] = TEXT_COLOR_TRANSPARENT;
textColor[1] = TEXT_COLOR_WHITE;
- textColor[2] = TEXT_COLOR_LIGHT_GREY;
+ textColor[2] = TEXT_COLOR_LIGHT_GRAY;
break;
case 2:
textColor[0] = TEXT_COLOR_TRANSPARENT;
@@ -344,7 +344,7 @@ static void WCSS_AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *
case 4:
textColor[0] = TEXT_COLOR_TRANSPARENT;
textColor[1] = TEXT_COLOR_WHITE;
- textColor[2] = TEXT_COLOR_DARK_GREY;
+ textColor[2] = TEXT_COLOR_DARK_GRAY;
break;
// default: UB
}