diff options
Diffstat (limited to 'src/pokemon_summary_screen.c')
-rw-r--r-- | src/pokemon_summary_screen.c | 136 |
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\ |