diff options
author | jiangzhengwenjz <jiangzhengwenjzw@qq.com> | 2019-07-10 03:19:28 +0800 |
---|---|---|
committer | jiangzhengwenjz <jiangzhengwenjzw@qq.com> | 2019-07-13 05:26:19 +0800 |
commit | bcf27c2de147b1a04c32f8f9e5dd8a5eca657455 (patch) | |
tree | bcd68c21ad09b923b5985fda8a19ccdfcb3a507e /src | |
parent | 05371e58753668147ec9e4d4bd161e5a044c058b (diff) |
resolved SetWindowTemplateFields
Diffstat (limited to 'src')
-rw-r--r-- | src/berry_powder.c | 6 | ||||
-rw-r--r-- | src/coins.c | 7 | ||||
-rw-r--r-- | src/menu.c | 109 | ||||
-rw-r--r-- | src/money.c | 7 | ||||
-rw-r--r-- | src/new_menu_helpers.c | 7 |
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; |