mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-07 23:43:59 -05:00
323 lines
7.5 KiB
C
323 lines
7.5 KiB
C
#include "global.h"
|
|
#include "task.h"
|
|
#include "palette.h"
|
|
#include "item_menu.h"
|
|
#include "text.h"
|
|
#include "window.h"
|
|
#include "text_window.h"
|
|
#include "menu_helpers.h"
|
|
#include "new_menu_helpers.h"
|
|
#include "menu.h"
|
|
#include "money.h"
|
|
#include "bag.h"
|
|
|
|
extern const u8 gText_DepositItem[];
|
|
|
|
const u16 gUnknown_8453098[] = INCBIN_U16("data/bag/bag_window_pal.gbapal");
|
|
const u8 gUnknown_84530B8[][3] = {
|
|
{0, 1, 2},
|
|
{0, 2, 3},
|
|
{0, 3, 2},
|
|
{0, 8, 9}
|
|
};
|
|
const struct WindowTemplate gUnknown_84530C4[] = {
|
|
{
|
|
.bg = 0,
|
|
.tilemapLeft = 0x0b,
|
|
.tilemapTop = 0x01,
|
|
.width = 0x12,
|
|
.height = 0x0c,
|
|
.paletteNum = 0x0f,
|
|
.baseBlock = 0x008a
|
|
}, {
|
|
.bg = 0,
|
|
.tilemapLeft = 0x05,
|
|
.tilemapTop = 0x0e,
|
|
.width = 0x19,
|
|
.height = 0x06,
|
|
.paletteNum = 0x0f,
|
|
.baseBlock = 0x0162
|
|
}, {
|
|
.bg = 0,
|
|
.tilemapLeft = 0x01,
|
|
.tilemapTop = 0x01,
|
|
.width = 0x09,
|
|
.height = 0x02,
|
|
.paletteNum = 0x0f,
|
|
.baseBlock = 0x01f8
|
|
}, DUMMY_WIN_TEMPLATE
|
|
};
|
|
const struct WindowTemplate gUnknown_84530E4[] = {
|
|
{
|
|
.bg = 0,
|
|
.tilemapLeft = 0x0b,
|
|
.tilemapTop = 0x01,
|
|
.width = 0x12,
|
|
.height = 0x0c,
|
|
.paletteNum = 0x0f,
|
|
.baseBlock = 0x008a
|
|
}, {
|
|
.bg = 0,
|
|
.tilemapLeft = 0x05,
|
|
.tilemapTop = 0x0e,
|
|
.width = 0x19,
|
|
.height = 0x06,
|
|
.paletteNum = 0x0f,
|
|
.baseBlock = 0x0162
|
|
}, {
|
|
.bg = 0,
|
|
.tilemapLeft = 0x01,
|
|
.tilemapTop = 0x01,
|
|
.width = 0x08,
|
|
.height = 0x02,
|
|
.paletteNum = 0x0C,
|
|
.baseBlock = 0x01f8
|
|
}, DUMMY_WIN_TEMPLATE
|
|
};
|
|
const struct WindowTemplate gUnknown_8453104[] = {
|
|
{
|
|
.bg = 0,
|
|
.tilemapLeft = 24,
|
|
.tilemapTop = 15,
|
|
.width = 5,
|
|
.height = 4,
|
|
.paletteNum = 0xF,
|
|
.baseBlock = 0x242
|
|
}, {
|
|
.bg = 0,
|
|
.tilemapLeft = 17,
|
|
.tilemapTop = 9,
|
|
.width = 12,
|
|
.height = 4,
|
|
.paletteNum = 0xF,
|
|
.baseBlock = 0x242
|
|
}, {
|
|
.bg = 0,
|
|
.tilemapLeft = 1,
|
|
.tilemapTop = 1,
|
|
.width = 8,
|
|
.height = 3,
|
|
.paletteNum = 0xC,
|
|
.baseBlock = 0x272
|
|
}
|
|
};
|
|
|
|
const struct WindowTemplate gUnknown_845311C = {
|
|
.bg = 0,
|
|
.tilemapLeft = 23,
|
|
.tilemapTop = 15,
|
|
.width = 6,
|
|
.height = 4,
|
|
.paletteNum = 0xF,
|
|
.baseBlock = 0x28a
|
|
};
|
|
|
|
const struct WindowTemplate gUnknown_8453124 = {
|
|
.bg = 0,
|
|
.tilemapLeft = 21,
|
|
.tilemapTop = 9,
|
|
.width = 6,
|
|
.height = 4,
|
|
.paletteNum = 0xF,
|
|
.baseBlock = 0x28a
|
|
};
|
|
|
|
const struct WindowTemplate gUnknown_845312C[] = {
|
|
{
|
|
.bg = 0x00,
|
|
.tilemapLeft = 0x02,
|
|
.tilemapTop = 0x0f,
|
|
.width = 0x1a,
|
|
.height = 0x04,
|
|
.paletteNum = 0x0f,
|
|
.baseBlock = 0x02a2
|
|
}, {
|
|
.bg = 0x00,
|
|
.tilemapLeft = 0x06,
|
|
.tilemapTop = 0x0f,
|
|
.width = 0x0e,
|
|
.height = 0x04,
|
|
.paletteNum = 0x0c,
|
|
.baseBlock = 0x02a2
|
|
}, {
|
|
.bg = 0x00,
|
|
.tilemapLeft = 0x06,
|
|
.tilemapTop = 0x0f,
|
|
.width = 0x0f,
|
|
.height = 0x04,
|
|
.paletteNum = 0x0c,
|
|
.baseBlock = 0x02da
|
|
}, {
|
|
.bg = 0x00,
|
|
.tilemapLeft = 0x06,
|
|
.tilemapTop = 0x0f,
|
|
.width = 0x10,
|
|
.height = 0x04,
|
|
.paletteNum = 0x0c,
|
|
.baseBlock = 0x0316
|
|
}, {
|
|
.bg = 0x00,
|
|
.tilemapLeft = 0x06,
|
|
.tilemapTop = 0x0f,
|
|
.width = 0x17,
|
|
.height = 0x04,
|
|
.paletteNum = 0x0c,
|
|
.baseBlock = 0x0356
|
|
}, {
|
|
.bg = 0x00,
|
|
.tilemapLeft = 0x16,
|
|
.tilemapTop = 0x11,
|
|
.width = 0x07,
|
|
.height = 0x02,
|
|
.paletteNum = 0x0f,
|
|
.baseBlock = 0x020a
|
|
}, {
|
|
.bg = 0x00,
|
|
.tilemapLeft = 0x16,
|
|
.tilemapTop = 0x0f,
|
|
.width = 0x07,
|
|
.height = 0x04,
|
|
.paletteNum = 0x0f,
|
|
.baseBlock = 0x020a
|
|
}, {
|
|
.bg = 0x00,
|
|
.tilemapLeft = 0x16,
|
|
.tilemapTop = 0x0d,
|
|
.width = 0x07,
|
|
.height = 0x06,
|
|
.paletteNum = 0x0f,
|
|
.baseBlock = 0x020a
|
|
}, {
|
|
.bg = 0x00,
|
|
.tilemapLeft = 0x16,
|
|
.tilemapTop = 0x0b,
|
|
.width = 0x07,
|
|
.height = 0x08,
|
|
.paletteNum = 0x0f,
|
|
.baseBlock = 0x020a
|
|
}
|
|
};
|
|
|
|
const u8 gUnknown_8453174[] = {16, 8, 4};
|
|
|
|
EWRAM_DATA u8 gUnknown_203AD34[11] = {};
|
|
|
|
void sub_810B858(void)
|
|
{
|
|
u8 i;
|
|
|
|
if (gUnknown_203ACFC.location != 3)
|
|
InitWindows(gUnknown_84530C4);
|
|
else
|
|
InitWindows(gUnknown_84530E4);
|
|
DeactivateAllTextPrinters();
|
|
TextWindow_SetUserSelectedFrame(0, 0x64, 0xE0);
|
|
TextWindow_LoadResourcesStdFrame0(0, 0x6D, 0xD0);
|
|
TextWindow_SetStdFrame0_WithPal(0, 0x81, 0xC0);
|
|
LoadPalette(gUnknown_8453098, 0xF0, 0x20);
|
|
for (i = 0; i < 3; i++)
|
|
{
|
|
FillWindowPixelBuffer(i, 0x00);
|
|
PutWindowTilemap(i);
|
|
}
|
|
ScheduleBgCopyTilemapToVram(0);
|
|
for (i = 0; i < 11; i++)
|
|
{
|
|
gUnknown_203AD34[i] = 0xFF;
|
|
}
|
|
}
|
|
|
|
void sub_810B8F0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, s8 speed, u8 colorIdx)
|
|
{
|
|
AddTextPrinterParameterized4(windowId, fontId, x, y, letterSpacing, lineSpacing, gUnknown_84530B8[colorIdx], speed, str);
|
|
}
|
|
|
|
void sub_810B958(const u8 * str)
|
|
{
|
|
u32 x = 0x48 - GetStringWidth(1, str, 0);
|
|
AddTextPrinterParameterized3(2, 1, x / 2, 1, gUnknown_84530B8[0], 0, str);
|
|
}
|
|
|
|
void sub_810B994(void)
|
|
{
|
|
u32 x;
|
|
DrawStdFrameWithCustomTileAndPalette(2, FALSE, 0x081, 0x0C);
|
|
x = 0x40 - GetStringWidth(0, gText_DepositItem, 0);
|
|
AddTextPrinterParameterized(2, 0, gText_DepositItem, x / 2, 1, 0, NULL);
|
|
}
|
|
|
|
u8 sub_810B9DC(u8 a0, u8 a1)
|
|
{
|
|
if (gUnknown_203AD34[a0] == 0xFF)
|
|
{
|
|
gUnknown_203AD34[a0] = AddWindow(&gUnknown_8453104[a0 + a1]);
|
|
if (a0 != 6)
|
|
{
|
|
DrawStdFrameWithCustomTileAndPalette(gUnknown_203AD34[a0], FALSE, 0x064, 0x0E);
|
|
}
|
|
else
|
|
{
|
|
DrawStdFrameWithCustomTileAndPalette(gUnknown_203AD34[a0], FALSE, 0x081, 0x0C);
|
|
}
|
|
ScheduleBgCopyTilemapToVram(0);
|
|
}
|
|
return gUnknown_203AD34[a0];
|
|
}
|
|
|
|
void sub_810BA3C(u8 a0)
|
|
{
|
|
ClearStdWindowAndFrameToTransparent(gUnknown_203AD34[a0], FALSE);
|
|
ClearWindowTilemap(gUnknown_203AD34[a0]);
|
|
RemoveWindow(gUnknown_203AD34[a0]);
|
|
ScheduleBgCopyTilemapToVram(0);
|
|
gUnknown_203AD34[a0] = 0xFF;
|
|
}
|
|
|
|
u8 sub_810BA70(u8 a0)
|
|
{
|
|
if (gUnknown_203AD34[a0] == 0xFF)
|
|
{
|
|
gUnknown_203AD34[a0] = AddWindow(&gUnknown_8453104[a0]);
|
|
}
|
|
return gUnknown_203AD34[a0];
|
|
}
|
|
|
|
void sub_810BA9C(u8 a0)
|
|
{
|
|
if (gUnknown_203AD34[a0] != 0xFF)
|
|
{
|
|
ClearDialogWindowAndFrameToTransparent(gUnknown_203AD34[a0], FALSE);
|
|
ClearWindowTilemap(gUnknown_203AD34[a0]);
|
|
RemoveWindow(gUnknown_203AD34[a0]);
|
|
PutWindowTilemap(1);
|
|
ScheduleBgCopyTilemapToVram(0);
|
|
gUnknown_203AD34[a0] = 0xFF;
|
|
|
|
}
|
|
}
|
|
|
|
u8 sub_810BAD8(u8 a0)
|
|
{
|
|
return gUnknown_203AD34[a0];
|
|
}
|
|
|
|
void sub_810BAE8(u8 taskId, const struct YesNoFuncTable * ptrs)
|
|
{
|
|
CreateYesNoMenuWithCallbacks(taskId, &gUnknown_845311C, 2, 0, 2, 0x64, 0x0E, ptrs);
|
|
}
|
|
|
|
void sub_810BB14(u8 taskId, const struct YesNoFuncTable * ptrs)
|
|
{
|
|
CreateYesNoMenuWithCallbacks(taskId, &gUnknown_8453124, 2, 0, 2, 0x064, 0x0E, ptrs);
|
|
}
|
|
|
|
void sub_810BB40(void)
|
|
{
|
|
PrintMoneyAmountInMoneyBoxWithBorder(sub_810B9DC(2, 0), 0x081, 0x0C, GetMoney(&gSaveBlock1Ptr->money));
|
|
}
|
|
|
|
void sub_810BB74(u8 windowId)
|
|
{
|
|
DrawTextBorderOuter(windowId, 0x064, 0x0E);
|
|
}
|