Finish berry_pouch code decomp

This commit is contained in:
PikalaxALT
2019-09-30 19:47:38 -04:00
parent 89be71dcb8
commit 8eea5b6d75
4 changed files with 128 additions and 472 deletions
+127 -4
View File
@@ -17,6 +17,7 @@
#include "item.h"
#include "item_use.h"
#include "party_menu.h"
#include "text_window.h"
#include "strings.h"
#include "string_util.h"
#include "sound.h"
@@ -118,15 +119,16 @@ void sub_813E7F0(u8 taskId);
void sub_813E8D4(u8 taskId);
void sub_813E910(void);
void sub_813E9A0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx);
u8 sub_813EA08(u8);
void sub_813EA98(u8);
void sub_813EACC(u8);
u8 sub_813EB10(u8);
u8 sub_813EA08(u8 winIdx);
void sub_813EA98(u8 winIdx);
void sub_813EACC(u8 winIdx);
u8 sub_813EB10(u8 winIdx);
void sub_813EB7C(u8 taskId, const struct YesNoFuncTable * ptrs);
void sub_813EBA8(u8 taskId, const struct YesNoFuncTable * ptrs);
void sub_813EBD4(void);
void sub_813EC08(void);
void sub_813EC28(void);
void sub_813EC64(struct Sprite * sprite);
static const struct BgTemplate gUnknown_846434C[] = {
{
@@ -1404,3 +1406,124 @@ void sub_813E8D4(u8 taskId)
sub_813E2B8(taskId);
}
}
void sub_813E910(void)
{
u8 i;
InitWindows(gUnknown_84643B8);
DeactivateAllTextPrinters();
TextWindow_SetUserSelectedFrame(0, 0x001, 0xE0);
TextWindow_LoadResourcesStdFrame0(0, 0x013, 0xD0);
TextWindow_SetStdFrame0_WithPal(0, 0x00A, 0xC0);
LoadPalette(gTMCaseMainWindowPalette, 0xF0, 0x20);
for (i = 0; i < 3; i++)
FillWindowPixelBuffer(i, PIXEL_FILL(0));
PutWindowTilemap(0);
PutWindowTilemap(1);
PutWindowTilemap(2);
ScheduleBgCopyTilemapToVram(0);
ScheduleBgCopyTilemapToVram(2);
for (i = 0; i < 14; i++)
gUnknown_203F38C[i] = 0xFF;
}
void sub_813E9A0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx)
{
AddTextPrinterParameterized4(windowId, fontId, x, y, letterSpacing, lineSpacing, gUnknown_8464448[colorIdx], speed, str);
}
u8 sub_813EA08(u8 winIdx)
{
u8 retval = gUnknown_203F38C[winIdx];
if (retval == 0xFF)
{
gUnknown_203F38C[winIdx] = AddWindow(&gUnknown_84643D8[winIdx]);
if (winIdx == 2 || winIdx == 6 || winIdx == 7 || winIdx == 8 || winIdx == 9)
DrawStdFrameWithCustomTileAndPalette(gUnknown_203F38C[winIdx], FALSE, 0x00A, 0xC);
else
DrawStdFrameWithCustomTileAndPalette(gUnknown_203F38C[winIdx], FALSE, 0x001, 0xE);
ScheduleBgCopyTilemapToVram(2);
retval = gUnknown_203F38C[winIdx];
}
return retval;
}
void sub_813EA78(u8 winIdx)
{
DrawStdFrameWithCustomTileAndPalette(gUnknown_203F38C[winIdx], FALSE, 0x001, 0xE);
}
void sub_813EA98(u8 winIdx)
{
ClearStdWindowAndFrameToTransparent(gUnknown_203F38C[winIdx], FALSE);
ClearWindowTilemap(gUnknown_203F38C[winIdx]);
RemoveWindow(gUnknown_203F38C[winIdx]);
ScheduleBgCopyTilemapToVram(2);
gUnknown_203F38C[winIdx] = 0xFF;
}
void sub_813EACC(u8 winIdx)
{
if (gUnknown_203F38C[winIdx] != 0xFF)
{
ClearDialogWindowAndFrameToTransparent(gUnknown_203F38C[winIdx], FALSE);
ClearWindowTilemap(gUnknown_203F38C[winIdx]);
RemoveWindow(gUnknown_203F38C[winIdx]);
PutWindowTilemap(1);
ScheduleBgCopyTilemapToVram(0);
ScheduleBgCopyTilemapToVram(2);
gUnknown_203F38C[winIdx] = 0xFF;
}
}
u8 sub_813EB10(u8 winIdx)
{
return gUnknown_203F38C[winIdx];
}
void DisplayItemMessageInBerryPouch(u8 taskId, u8 fontId, const u8 * str, TaskFunc followUpFunc)
{
if (gUnknown_203F38C[5] == 0xFF)
gUnknown_203F38C[5] = AddWindow(&gUnknown_84643D8[5]);
DisplayMessageAndContinueTask(taskId, gUnknown_203F38C[5], 0x013, 0xD, fontId, GetTextSpeedSetting(), str, followUpFunc);
ScheduleBgCopyTilemapToVram(2);
}
void sub_813EB7C(u8 taskId, const struct YesNoFuncTable * ptrs)
{
CreateYesNoMenuWithCallbacks(taskId, &gUnknown_84643D8[3], 2, 0, 2, 0x001, 0xE, ptrs);
}
void sub_813EBA8(u8 taskId, const struct YesNoFuncTable * ptrs)
{
CreateYesNoMenuWithCallbacks(taskId, &gUnknown_84643D8[4], 2, 0, 2, 0x001, 0xE, ptrs);
}
void sub_813EBD4(void)
{
PrintMoneyAmountInMoneyBoxWithBorder(sub_813EA08(2), 0x00A, 0xC, GetMoney(&gSaveBlock1Ptr->money));
}
void sub_813EC08(void)
{
gUnknown_203F39C = CreateSprite(&gUnknown_84644B8, 40, 76, 0);
}
void sub_813EC28(void)
{
struct Sprite * sprite = &gSprites[gUnknown_203F39C];
if (sprite->affineAnimEnded)
{
StartSpriteAffineAnim(sprite, 1);
sprite->callback = sub_813EC64;
}
}
void sub_813EC64(struct Sprite * sprite)
{
if (sprite->affineAnimEnded)
{
StartSpriteAffineAnim(sprite, 0);
sprite->callback = SpriteCallbackDummy;
}
}