summaryrefslogtreecommitdiff
path: root/src/pokemon_summary_screen.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/pokemon_summary_screen.c')
-rw-r--r--src/pokemon_summary_screen.c136
1 files changed, 27 insertions, 109 deletions
diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c
index 8c9e7a8a0..74dc11973 100644
--- a/src/pokemon_summary_screen.c
+++ b/src/pokemon_summary_screen.c
@@ -21,6 +21,12 @@
#include "text.h"
#include "window.h"
#include "event_data.h"
+#include "gpu_regs.h"
+#include "menu.h"
+#include "international_string_util.h"
+#include "scanline_effect.h"
+#include "menu_helpers.h"
+#include "daycare.h"
struct ContestMove
{
@@ -42,7 +48,6 @@ extern struct BgTemplate gUnknown_0861CBB4;
extern u8 gUnknown_0203CF20;
extern struct MusicPlayerInfo gMPlayInfo_BGM;
extern s8 gUnknown_0861CC1C[];
-extern u8 gUnknown_08329D22[];
extern u8 gUnknown_0203CF21;
extern struct UnkStruct_61CC04 gUnknown_0861CC04;
extern struct UnkStruct_61CC04 gUnknown_0861CC10;
@@ -65,20 +70,9 @@ extern u8 gUnknown_0861CE7B[];
extern struct WindowTemplate gUnknown_0861CCEC;
extern struct WindowTemplate gUnknown_0861CD14;
-extern void sub_806F2AC(u8 a, u8 b);
void sub_81C488C(u8 a);
-extern void do_scheduled_bg_tilemap_copies_to_vram(void);
extern u8 sub_81221EC();
extern u8 sub_81221AC();
-extern void SetVBlankHBlankCallbacksToNull();
-extern void ResetVramOamAndBgCntRegs();
-extern void clear_scheduled_bg_copies_to_vram();
-extern void ScanlineEffect_Stop();
-extern void ResetBgsAndClearDma3BusyFlags(u32 leftoverFireRedLeafGreenVariable);
-extern void ShowBg(u8 a);
-extern void SetGpuReg(u8 regOffset, u16 value);
-extern void schedule_bg_copy_tilemap_to_vram(u8 a);
-extern void SetBgTilemapBuffer(u8 bg, void *tilemap);
extern u8 gUnknown_08D9862C;
extern u8 gUnknown_08D98CC8;
extern u8 gUnknown_08D987FC;
@@ -93,9 +87,6 @@ extern struct CompressedSpritePalette gUnknown_0861D100;
extern struct CompressedSpritePalette gUnknown_0861D07C;
extern u8 gMoveTypes_Pal;
extern u8 gUnknown_08D97D0C;
-extern void reset_temp_tile_data_buffers();
-extern void decompress_and_copy_tile_data_to_vram(u8 a, void* tiledata, u8 b, u8 c, u8 d);
-extern u8 free_temp_tile_data_buffers_if_possible();
extern void sub_81C1E20(u8 taskId);
extern u8 *GetMonNickname(struct Pokemon *mon, u8 *dest);
extern u16 SpeciesToPokedexNum(u16 species);
@@ -125,8 +116,6 @@ extern u8 gText_Appeal[];
extern u8 gText_Jam[];
extern u8 gText_OTSlash[];
extern u8 gText_UnkCtrlF907F908[];
-extern u8 gAbilityNames[][13];
-extern u8 *gAbilityDescriptionPointers[];
extern u8 gText_XNature[];
extern u8 gText_XNatureHatchedAtYZ[];
extern u8 gText_XNatureHatchedSomewhereAt[];
@@ -156,13 +145,8 @@ extern u8 gText_OneDash[];
extern u8 gText_TwoDashes[];
extern u8 gText_ThreeDashes[];
extern u8 gUnknown_0861CE97[];
-extern struct BattleMove gBattleMoves[];
-extern u32 ChangeBgX(u8 bg, u32 value, u8 op);
extern void sub_8199C30(u8 a, u8 b, u8 c, u8 d, u8 e, u8 f);
-extern void AddTextPrinterParameterized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const u8* colors, s8 speed, u8 *str);
-extern s32 GetStringCenterAlignXOffset(u8 fontId, u8 *str, s32 totalWidth);
-extern s32 GetStringRightAlignXOffset(u8 fontId, u8 *str, s32 totalWidth);
extern bool8 sub_81A6BF4();
extern bool8 sub_81B9E94();
extern void UnkTextUtil_Reset();
@@ -1433,7 +1417,7 @@ void sub_81C14BC(struct Pokemon *mon, u8 swappingFromId, u8 swappingToId)
*ppBonusesPtr = localPpBonuses;
}
#else
-__attribute__((naked))
+NAKED
void sub_81C14BC(struct Pokemon *mon, u8 swappingFromId, u8 swappingToId)
{
asm(".syntax unified\n\
@@ -1644,7 +1628,7 @@ void sub_81C15EC(struct BoxPokemon *mon, u8 swappingFromId, u8 swappingToId)
*ppBonusesPtr = localPpBonuses;
}
#else
-__attribute__((naked))
+NAKED
void sub_81C15EC(struct BoxPokemon *mon, u8 swappingFromId, u8 swappingToId)
{
asm(".syntax unified\n\
@@ -1841,7 +1825,7 @@ void sub_81C174C(u8 taskId)
}
else
{
- PlaySE(0x20);
+ PlaySE(SE_HAZURE);
sub_81C18F4(taskId);
}
}
@@ -2055,7 +2039,7 @@ void sub_81C1CB0(struct UnkStruct_61CC04 *a, u16 *b, u8 c, u8 d)
Free(alloced);
}
#else
-__attribute__((naked))
+NAKED
void sub_81C1CB0(struct UnkStruct_61CC04 *a, u16 *b, u8 c, u8 d)
{
asm(".syntax unified\n\
@@ -2357,7 +2341,7 @@ void sub_81C2194(u16 *a, u16 b, u8 c)
}
}
#else
-__attribute__((naked))
+NAKED
void sub_81C2194(u16 *a, u16 b, u8 c)
{
asm(".syntax unified\n\
@@ -2553,7 +2537,7 @@ void sub_81C2554()
gUnknown_0203CF1C->unk40CB[i] |= 0xFF;
}
-void sub_81C25A4(u8 a, u8 *b, u8 c, u8 d, u8 e, u8 f)
+void sub_81C25A4(u8 a, const u8 *b, u8 c, u8 d, u8 e, u8 f)
{
AddTextPrinterParameterized2(a, 1, c, d, 0, e, gUnknown_0861CD2C[f], 0, b);
}
@@ -2792,93 +2776,27 @@ void sub_81C2C38(u8 a)
schedule_bg_copy_tilemap_to_vram(0);
}
-
-
-#ifdef NONMATCHING
u8 sub_81C2D2C(struct WindowTemplate *template, u8 a)
{
- u8 *r4 = gUnknown_0203CF1C->unk40CB;
- if (r4[a] == 0xFF)
+ u8 *windowIdPtr = &(gUnknown_0203CF1C->unk40CB[a]);
+ if (*windowIdPtr == 0xFF)
{
- r4[a] = AddWindow(&template[a]);
- FillWindowPixelBuffer(r4[a], 0);
+ *windowIdPtr = AddWindow(&template[a]);
+ FillWindowPixelBuffer(*windowIdPtr, 0);
}
- return r4[a];
+ return *windowIdPtr;
}
-#else
-__attribute__((naked))
-u8 sub_81C2D2C(struct WindowTemplate *template, u8 a)
-{
- asm(".syntax unified\n\
- push {r4,lr}\n\
- adds r3, r0, 0\n\
- lsls r1, 24\n\
- lsrs r2, r1, 24\n\
- ldr r0, =gUnknown_0203CF1C\n\
- ldr r4, =0x000040cb\n\
- adds r1, r2, r4\n\
- ldr r0, [r0]\n\
- adds r4, r0, r1\n\
- ldrb r0, [r4]\n\
- cmp r0, 0xFF\n\
- bne _081C2D56\n\
- lsls r0, r2, 3\n\
- adds r0, r3, r0\n\
- bl AddWindow\n\
- strb r0, [r4]\n\
- ldrb r0, [r4]\n\
- movs r1, 0\n\
- bl FillWindowPixelBuffer\n\
-_081C2D56:\n\
- ldrb r0, [r4]\n\
- pop {r4}\n\
- pop {r1}\n\
- bx r1\n\
- .pool\n\
- .syntax divided\n");
-}
-#endif
-#ifdef NONMATCHING
void sub_81C2D68(u8 a)
{
- u8 *r4 = gUnknown_0203CF1C->unk40CB;
- if (r4[a] != 0xFF)
+ u8 *windowIdPtr = &(gUnknown_0203CF1C->unk40CB[a]);
+ if (*windowIdPtr != 0xFF)
{
- ClearWindowTilemap(r4[a]);
- RemoveWindow(r4[a]);
- r4[a] = 0xFF;
+ ClearWindowTilemap(*windowIdPtr);
+ RemoveWindow(*windowIdPtr);
+ *windowIdPtr = 0xFF;
}
}
-#else
-__attribute__((naked))
-void sub_81C2D68(u8 a)
-{
- asm(".syntax unified\n\
- push {r4,lr}\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- ldr r1, =gUnknown_0203CF1C\n\
- ldr r2, =0x000040cb\n\
- adds r0, r2\n\
- ldr r1, [r1]\n\
- adds r4, r1, r0\n\
- ldrb r0, [r4]\n\
- cmp r0, 0xFF\n\
- beq _081C2D8C\n\
- bl ClearWindowTilemap\n\
- ldrb r0, [r4]\n\
- bl RemoveWindow\n\
- movs r0, 0xFF\n\
- strb r0, [r4]\n\
-_081C2D8C:\n\
- pop {r4}\n\
- pop {r0}\n\
- bx r0\n\
- .pool\n\
- .syntax divided\n");
-}
-#endif
void sub_81C2D9C(u8 a)
{
@@ -3041,7 +2959,7 @@ void sub_81C31F0(u8 *a)
{
u8 level = gUnknown_0203CF1C->summary.metLevel;
if (level == 0)
- level = 5;
+ level = EGG_HATCH_LEVEL;
ConvertIntToDecimalStringN(a, level, 0, 3);
UnkTextUtil_SetPtrI(3, a);
}
@@ -3108,7 +3026,7 @@ void sub_81C335C()
sub_81C25A4(r4, gText_FiveMarks, r5, 1, 0, 1);
}
#else
-__attribute__((naked))
+NAKED
void sub_81C335C()
{
asm(".syntax unified\n\
@@ -3255,11 +3173,11 @@ void sub_81C3554(u8 taskId)
void sub_81C35E4()
{
- u8 *text;
+ const u8 *text;
int offset;
if (gUnknown_0203CF1C->summary.item == ITEM_ENIGMA_BERRY && sub_81B1250() == 1 && (gUnknown_0203CF1C->unk40BE == 1 || gUnknown_0203CF1C->unk40BE == 4 || gUnknown_0203CF1C->unk40BE == 5))
{
- text = (u8*)ItemId_GetItem(ITEM_ENIGMA_BERRY);
+ text = ItemId_GetName(ITEM_ENIGMA_BERRY);
}
else if (gUnknown_0203CF1C->summary.item == ITEM_NONE)
text = gText_None;
@@ -3451,7 +3369,7 @@ void sub_81C3B08(u8 a)
sub_81C25A4(sp, text, offset, (a<<4), 0, r5);
}
#else
-__attribute__((naked))
+NAKED
void sub_81C3B08(u8 a)
{
asm(".syntax unified\n\