summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjiangzhengwenjz <jiangzhengwenjzw@qq.com>2019-07-10 03:19:28 +0800
committerjiangzhengwenjz <jiangzhengwenjzw@qq.com>2019-07-13 05:26:19 +0800
commitbcf27c2de147b1a04c32f8f9e5dd8a5eca657455 (patch)
treebcd68c21ad09b923b5985fda8a19ccdfcb3a507e /src
parent05371e58753668147ec9e4d4bd161e5a044c058b (diff)
resolved SetWindowTemplateFields
Diffstat (limited to 'src')
-rw-r--r--src/berry_powder.c6
-rw-r--r--src/coins.c7
-rw-r--r--src/menu.c109
-rw-r--r--src/money.c7
-rw-r--r--src/new_menu_helpers.c7
5 files changed, 15 insertions, 121 deletions
diff --git a/src/berry_powder.c b/src/berry_powder.c
index 9b50d6abc..9b3bbc17f 100644
--- a/src/berry_powder.c
+++ b/src/berry_powder.c
@@ -110,13 +110,11 @@ void sub_815F070(void)
void sub_815F094(void)
{
struct WindowTemplate template;
- struct WindowTemplate template2;
if (sub_81119D4(sub_809D6D4) != TRUE)
{
- SetWindowTemplateFields(&template, 0, 1, 1, 8, 3, 15, 32);
- template2 = template;
- gUnknown_203F464 = AddWindow(&template2);
+ template = SetWindowTemplateFields(0, 1, 1, 8, 3, 15, 32);
+ gUnknown_203F464 = AddWindow(&template);
FillWindowPixelBuffer(gUnknown_203F464, 0);
PutWindowTilemap(gUnknown_203F464);
TextWindow_SetStdFrame0_WithPal(gUnknown_203F464, 0x21D, 0xD0);
diff --git a/src/coins.c b/src/coins.c
index a3c074b7c..9de600e7f 100644
--- a/src/coins.c
+++ b/src/coins.c
@@ -80,11 +80,10 @@ void PrintCoinsString(u32 coinAmount)
void ShowCoinsWindow(u32 coinAmount, u8 x, u8 y)
{
- struct WindowTemplate template, template2;
+ struct WindowTemplate template;
- SetWindowTemplateFields(&template, 0, x + 1, y + 1, 8, 3, 0xF, 0x20);
- template2 = template; // again, why...
- sCoinsWindowId = AddWindow(&template2);
+ template = SetWindowTemplateFields(0, x + 1, y + 1, 8, 3, 0xF, 0x20);
+ sCoinsWindowId = AddWindow(&template);
FillWindowPixelBuffer(sCoinsWindowId, 0);
PutWindowTilemap(sCoinsWindowId);
TextWindow_SetStdFrame0_WithPal(sCoinsWindowId, 0x21D, 0xD0);
diff --git a/src/menu.c b/src/menu.c
index 844878017..7d7f05032 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -519,11 +519,9 @@ static void sub_810FDE4(u8 windowId, u8 fontId, u8 lineHeight, u8 itemCount, con
AddItemMenuActionTextPrinters(windowId, fontId, GetFontAttribute(fontId, FONTATTR_MAX_LETTER_WIDTH), 0, GetFontAttribute(fontId, FONTATTR_LETTER_SPACING), lineHeight, itemCount, strs, orderArray);
}
-/*
-struct WindowTemplateWithAttr SetWindowTemplateFields(struct WindowTemplate *template, u8 bg, u8 left, u8 top, u8 width, u8 height, u8 paletteNum, u16 baseBlock)
+struct WindowTemplate SetWindowTemplateFields(u8 bg, u8 left, u8 top, u8 width, u8 height, u8 paletteNum, u16 baseBlock)
{
struct WindowTemplate temp;
- struct WindowTemplateWithAttr ret;
temp.bg = bg;
temp.tilemapLeft = left;
@@ -532,113 +530,14 @@ struct WindowTemplateWithAttr SetWindowTemplateFields(struct WindowTemplate *tem
temp.height = height;
temp.paletteNum = paletteNum;
temp.baseBlock = baseBlock;
- *template = temp;
- ret.ptr = template;
- ret.attr = *((u32*)&temp);
- return ret;
-}
-*/
-NAKED
-void SetWindowTemplateFields(struct WindowTemplate *template, u8 bg, u8 left, u8 top, u8 width, u8 height, u8 paletteNum, u16 baseBlock)
-{
- asm_unified("\n\
- push {r4-r7,lr}\n\
- mov r7, r10\n\
- mov r6, r9\n\
- mov r5, r8\n\
- push {r5-r7}\n\
- sub sp, 0x8\n\
- ldr r4, [sp, 0x28]\n\
- mov r12, r4\n\
- ldr r4, [sp, 0x2C]\n\
- mov r9, r4\n\
- ldr r4, [sp, 0x30]\n\
- mov r10, r4\n\
- ldr r7, [sp, 0x34]\n\
- lsls r1, 24\n\
- lsrs r1, 24\n\
- lsls r2, 24\n\
- lsls r3, 24\n\
- mov r4, r9\n\
- lsls r4, 24\n\
- lsrs r4, 24\n\
- mov r9, r4\n\
- mov r4, r10\n\
- lsls r4, 24\n\
- mov r10, r4\n\
- ldr r4, _0810FEF0 @ =0xffffff00\n\
- mov r8, r4\n\
- mov r5, r8\n\
- ldr r4, [sp]\n\
- ands r5, r4\n\
- orrs r5, r1\n\
- str r5, [sp]\n\
- lsrs r2, 16\n\
- ldr r6, _0810FEF4 @ =0xffff00ff\n\
- adds r4, r6, 0\n\
- ands r4, r5\n\
- orrs r4, r2\n\
- str r4, [sp]\n\
- lsrs r3, 8\n\
- ldr r1, _0810FEF8 @ =0xff00ffff\n\
- ands r1, r4\n\
- orrs r1, r3\n\
- str r1, [sp]\n\
- mov r2, r12\n\
- lsls r2, 24\n\
- mov r12, r2\n\
- ldr r2, _0810FEFC @ =0x00ffffff\n\
- ands r1, r2\n\
- mov r4, r12\n\
- orrs r4, r1\n\
- str r4, [sp]\n\
- ldr r1, [sp, 0x4]\n\
- mov r2, r8\n\
- ands r1, r2\n\
- mov r4, r9\n\
- orrs r1, r4\n\
- mov r8, r1\n\
- str r1, [sp, 0x4]\n\
- mov r1, r10\n\
- lsrs r1, 16\n\
- mov r2, r8\n\
- ands r6, r2\n\
- orrs r6, r1\n\
- str r6, [sp, 0x4]\n\
- lsls r2, r7, 16\n\
- ldr r1, _0810FF00 @ =0x0000ffff\n\
- ands r6, r1\n\
- orrs r6, r2\n\
- str r6, [sp, 0x4]\n\
- ldr r1, [sp]\n\
- ldr r2, [sp, 0x4]\n\
- str r1, [r0]\n\
- str r2, [r0, 0x4]\n\
- add sp, 0x8\n\
- pop {r3-r5}\n\
- mov r8, r3\n\
- mov r9, r4\n\
- mov r10, r5\n\
- pop {r4-r7}\n\
- pop {r2}\n\
- bx r2\n\
- .align 2, 0\n\
- _0810FEF0: .4byte 0xffffff00\n\
- _0810FEF4: .4byte 0xffff00ff\n\
- _0810FEF8: .4byte 0xff00ffff\n\
- _0810FEFC: .4byte 0x00ffffff\n\
- _0810FF00: .4byte 0x0000ffff\n\
- ");
+ return temp;
}
// not used
static u16 CreateWindowTemplate(u8 bg, u8 left, u8 top, u8 width, u8 height, u8 paletteNum, u16 baseBlock)
{
- struct WindowTemplate template, temp;
-
- SetWindowTemplateFields(&template, bg, left, top, width, height, paletteNum, baseBlock);
- temp = template;
- return (u16)AddWindow(&temp);
+ struct WindowTemplate template = SetWindowTemplateFields(bg, left, top, width, height, paletteNum, baseBlock);
+ return AddWindow(&template);
}
void CreateYesNoMenu(const struct WindowTemplate *window, u8 fontId, u8 left, u8 top, u16 baseTileNum, u8 paletteNum, u8 initialCursorPos)
diff --git a/src/money.c b/src/money.c
index 616b448e1..39e5aaa32 100644
--- a/src/money.c
+++ b/src/money.c
@@ -121,11 +121,10 @@ void ChangeAmountInMoneyBox(int amount)
void DrawMoneyBox(int amount, u8 x, u8 y)
{
- struct WindowTemplate template, template2;
+ struct WindowTemplate template;
- SetWindowTemplateFields(&template, 0, x + 1, y + 1, 8, 3, 15, 8);
- template2 = template;
- sMoneyBoxWindowId = AddWindow(&template2);
+ template = SetWindowTemplateFields(0, x + 1, y + 1, 8, 3, 15, 8);
+ sMoneyBoxWindowId = AddWindow(&template);
FillWindowPixelBuffer(sMoneyBoxWindowId, 0);
PutWindowTilemap(sMoneyBoxWindowId);
TextWindow_SetStdFrame0_WithPal(sMoneyBoxWindowId, 0x21D, 0xD0);
diff --git a/src/new_menu_helpers.c b/src/new_menu_helpers.c
index 8ef515006..5e2452e14 100644
--- a/src/new_menu_helpers.c
+++ b/src/new_menu_helpers.c
@@ -671,10 +671,9 @@ u8 sub_80F78E0(u8 height)
{
if (sStartMenuWindowId == 0xFF)
{
- struct WindowTemplate wTemp1, wTemp2;
- SetWindowTemplateFields(&wTemp1, 0, 0x16, 1, 7, height * 2 - 1, DLG_WINDOW_PALETTE_NUM, 0x13D);
- wTemp2 = wTemp1;
- sStartMenuWindowId = AddWindow(&wTemp2);
+ struct WindowTemplate template;
+ template = SetWindowTemplateFields(0, 0x16, 1, 7, height * 2 - 1, DLG_WINDOW_PALETTE_NUM, 0x13D);
+ sStartMenuWindowId = AddWindow(&template);
PutWindowTilemap(sStartMenuWindowId);
}
return sStartMenuWindowId;