sovereignx/src/menu_unknown.c

221 lines
5.3 KiB
C
Raw Normal View History

2019-03-05 11:06:20 +00:00
#include "global.h"
#include "alloc.h"
#include "international_string_util.h"
#include "menu.h"
#include "menu_unknown.h"
#include "player_pc.h"
#include "sound.h"
#include "strings.h"
#include "string_util.h"
#include "window.h"
#include "constants/songs.h"
#define WINDOW_UNK_0 0
#define WINDOW_UNK_1 1
#define WINDOW_UNK_2 2
extern struct ListMenuItem *gUnknown_0203CF4C;
extern u8 gUnknown_0203CF48[3];
void sub_81D1E7C(s32 itemIndex, bool8 onInit, struct ListMenu *list);
const struct WindowTemplate gUnknown_086253E8[] =
{
[WINDOW_UNK_0] = {
//0x08010100,
.bg = 0,
.tilemapLeft = 1,
.tilemapTop = 1,
.width = 8,
//0x00080F02,
.height = 2,
.paletteNum = 0xF,
.baseBlock = 0x8
},
[WINDOW_UNK_1] = {
//0x08 01 15 00,
.bg = 0,
.tilemapLeft = 21,
.tilemapTop = 1,
.width = 8,
//0x0018 0F 12,
.height = 18,
.paletteNum = 0xF,
.baseBlock = 0x18
},
[WINDOW_UNK_2] = {
//0x0B 01 01 00
.bg = 0,
.tilemapLeft = 1,
.tilemapTop = 1,
.width = 11,
//0x0018 0F 08
.height = 8,
.paletteNum = 0xF,
.baseBlock = 0x18
}
};
const u8 gUnknown_08625400[] = {
1, 2, 3
};
static const u8 sEmptyItemName[] = _("");
bool8 sub_81D1C44(u8 count)
{
u32 i;
struct ListMenuItem **v1;
v1 = &gUnknown_0203CF4C;
*v1 = Alloc(count * sizeof(struct ListMenuItem) + sizeof(struct ListMenuItem));
if (gUnknown_0203CF4C == NULL)
return FALSE;
for (i = 0; i < ARRAY_COUNT(gUnknown_0203CF48); i = (u8)(i + 1))
{
gUnknown_0203CF48[i] |= 0xFF;
}
return TRUE;
}
u8 sub_81D1C84(u8 a0)
{
struct WindowTemplate template;
u8 windowId = gUnknown_0203CF48[a0];
if (windowId == 0xFF)
{
if (a0 == WINDOW_UNK_2)
{
u32 v1;
u32 v2;
s32 v3;
template = gUnknown_086253E8[WINDOW_UNK_2];
v3 = GetMaxWidthInMenuTable(&gMailboxMailOptions[0], 4);
template.width = v3;
gUnknown_0203CF48[WINDOW_UNK_2] = AddWindow(&template);
}
else
{
gUnknown_0203CF48[a0] = AddWindow(&gUnknown_086253E8[a0]);
}
SetStandardWindowBorderStyle(gUnknown_0203CF48[a0], 0);
}
return gUnknown_0203CF48[a0];
}
void sub_81D1D04(u8 a0)
{
sub_8198070(gUnknown_0203CF48[a0], 0);
ClearWindowTilemap(gUnknown_0203CF48[a0]);
RemoveWindow(gUnknown_0203CF48[a0]);
gUnknown_0203CF48[a0] = 0xFF;
}
u8 sub_81D1D34(u8 a0)
{
return gUnknown_0203CF48[a0];
}
void sub_81D1D44(u8 windowId, s32 itemId, u8 y)
{
u8 buffer[30];
u16 length;
if (itemId == LIST_CANCEL)
return;
StringCopy(buffer, gSaveBlock1Ptr->mail[6 + itemId].playerName);
sub_81DB52C(buffer);
length = StringLength(buffer);
if (length <= 5)
ConvertInternationalString(buffer, LANGUAGE_JAPANESE);
AddTextPrinterParameterized4(windowId, 1, 8, y, 0, 0, gUnknown_08625400, -1, buffer);
}
u8 sub_81D1DC0(struct PlayerPCItemPageStruct *page)
{
u16 i;
for (i = 0; i < page->count; i++)
{
gUnknown_0203CF4C[i].name = sEmptyItemName;
gUnknown_0203CF4C[i].id = i;
}
gUnknown_0203CF4C[i].name = gText_Cancel2;
gUnknown_0203CF4C[i].id = LIST_CANCEL;
gMultiuseListMenuTemplate.items = gUnknown_0203CF4C;
gMultiuseListMenuTemplate.totalItems = page->count + 1;
gMultiuseListMenuTemplate.windowId = gUnknown_0203CF48[1];
gMultiuseListMenuTemplate.header_X = 0;
gMultiuseListMenuTemplate.item_X = 8;
gMultiuseListMenuTemplate.cursor_X = 0;
gMultiuseListMenuTemplate.maxShowed = 8;
gMultiuseListMenuTemplate.upText_Y = 9;
gMultiuseListMenuTemplate.cursorPal = 2;
gMultiuseListMenuTemplate.fillValue = 1;
gMultiuseListMenuTemplate.cursorShadowPal = 3;
gMultiuseListMenuTemplate.moveCursorFunc = sub_81D1E7C;
gMultiuseListMenuTemplate.itemPrintFunc = sub_81D1D44;
gMultiuseListMenuTemplate.fontId = 1;
gMultiuseListMenuTemplate.cursorKind = 0;
gMultiuseListMenuTemplate.lettersSpacing = 0;
gMultiuseListMenuTemplate.itemVerticalPadding = 0;
gMultiuseListMenuTemplate.scrollMultiple = LIST_NO_MULTIPLE_SCROLL;
return ListMenuInit(&gMultiuseListMenuTemplate, page->itemsAbove, page->cursorPos);
}
void sub_81D1E7C(s32 itemIndex, bool8 onInit, struct ListMenu *list)
{
if (onInit != TRUE)
PlaySE(SE_SELECT);
}
void sub_81D1E90(struct PlayerPCItemPageStruct *page)
{
page->scrollIndicatorId = AddScrollIndicatorArrowPairParameterized(2, 0xC8, 12, 0x94, page->count - page->pageItems + 1, 0x6E, 0x6E, &page->itemsAbove);
}
void sub_81D1EC0(void)
{
Free(gUnknown_0203CF4C);
2019-03-06 01:32:14 +00:00
}
void sub_81D1ED4(struct UnknownStruct_81D1ED4 *a0)
{
u8 j;
u8 i;
u8 v1;
for (j = 0; j < 5; j++)
{
for (i = 0; i < 10; i++)
{
// u16
a0->unk64[i][j].unk0 = 0;
a0->unk64[i][j].unk2 = 0;
}
for (i = 0; i < 4; i++)
{
// u8
a0->unk0[i][j] = 0;
// u16
a0->unk14[i][j].unk0 = 0x9B;
a0->unk14[i][j].unk2 = 0x5B;
}
// u16
a0->unk12C[j].unk0 = 0;
a0->unk12C[j].unk2 = 0;
}
// u8
a0->unk354 = 0;
// u16
a0->unk352 = 0;
2019-03-05 11:06:20 +00:00
}