summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2021-07-08 16:44:01 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2021-07-08 16:57:22 -0400
commit9a661b953a024debc73af67ac56ff265a6890b39 (patch)
treedf757e870539b769ddfe351fe74771ce06c8be70
parent2c0e5849eeffbb0e0f4383fc3bcc9ca86ab0d029 (diff)
Match German sub_8072AB0
-rw-r--r--src/menu.c98
1 files changed, 14 insertions, 84 deletions
diff --git a/src/menu.c b/src/menu.c
index 2b454417a..6fabef96b 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -630,11 +630,11 @@ u8 unref_sub_8072A5C(u8 *dest, u8 *src, u8 left, u16 top, u8 width, u32 a6)
return sub_8004FD0(gMenuWindowPtr, dest, src, gMenuTextTileOffset, left, top, width, a6);
}
-#if ENGLISH
int sub_8072AB0(const u8 *str, u8 left, u16 top, u8 width, u8 height, u32 a6)
{
u8 newlineCount = sub_8004FD0(gMenuWindowPtr, NULL, str, gMenuTextTileOffset, left, top, width, a6);
+#if ENGLISH
left /= 8;
top /= 8;
width = (width + 7) / 8;
@@ -642,91 +642,21 @@ int sub_8072AB0(const u8 *str, u8 left, u16 top, u8 width, u8 height, u32 a6)
if (newlineCount < height)
Menu_BlankWindowRect(left, top + 2 * newlineCount, left + width - 1, height + top - 1);
-}
#elif GERMAN
-NAKED
-int sub_8072AB0(const u8 *str, u8 left, u16 top, u8 width, u8 height, u32 a6)
-{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- sub sp, 0x10\n\
- mov r12, r0\n\
- ldr r0, [sp, 0x24]\n\
- ldr r4, [sp, 0x28]\n\
- str r4, [sp, 0xC]\n\
- lsls r1, 24\n\
- lsrs r5, r1, 24\n\
- lsls r2, 16\n\
- lsrs r4, r2, 16\n\
- lsls r3, 24\n\
- lsrs r6, r3, 24\n\
- lsls r0, 24\n\
- lsrs r7, r0, 24\n\
- ldr r0, _08072AF8 @ =gMenuWindowPtr\n\
- ldr r0, [r0]\n\
- ldr r1, _08072AFC @ =gMenuTextTileOffset\n\
- ldrh r3, [r1]\n\
- str r5, [sp]\n\
- str r4, [sp, 0x4]\n\
- str r6, [sp, 0x8]\n\
- movs r1, 0\n\
- mov r2, r12\n\
- bl sub_8004FD0\n\
- adds r1, r0, 0\n\
- lsls r1, 24\n\
- lsrs r2, r1, 24\n\
- movs r3, 0x7\n\
- ands r3, r5\n\
- cmp r3, 0\n\
- bne _08072B00\n\
- adds r1, r6, 0x7\n\
- asrs r1, 3\n\
- subs r1, 0x1\n\
- b _08072B0C\n\
- .align 2, 0\n\
-_08072AF8: .4byte gMenuWindowPtr\n\
-_08072AFC: .4byte gMenuTextTileOffset\n\
-_08072B00:\n\
- adds r3, r6, r3\n\
- subs r1, r3, 0x1\n\
- cmp r1, 0\n\
- bge _08072B0A\n\
- adds r1, r3, 0x6\n\
-_08072B0A:\n\
- asrs r1, 3\n\
-_08072B0C:\n\
- lsls r1, 24\n\
- lsrs r1, 24\n\
- adds r6, r1, 0\n\
- lsrs r5, 3\n\
- adds r1, r7, 0x7\n\
- asrs r1, 3\n\
- lsls r1, 24\n\
- lsrs r7, r1, 24\n\
- lsrs r4, 3\n\
- cmp r2, r7\n\
- bcs _08072B3E\n\
- lsls r1, r2, 1\n\
- adds r1, r4, r1\n\
- lsls r1, 24\n\
- lsrs r1, 24\n\
- adds r2, r5, r6\n\
- lsls r2, 24\n\
- lsrs r2, 24\n\
- adds r3, r7, r4\n\
- subs r3, 0x1\n\
- lsls r3, 24\n\
- lsrs r3, 24\n\
- adds r0, r5, 0\n\
- bl Menu_BlankWindowRect\n\
-_08072B3E:\n\
- add sp, 0x10\n\
- pop {r4-r7}\n\
- pop {r1}\n\
- bx r1\n\
- .syntax divided\n");
-}
+ // This looks suspiciously macro-like
+ u8 r1;
+ if ((left & 7) == 0)
+ r1 = (width + 7) / 8 - 1;
+ else
+ r1 = (width + (left & 7) - 1) / 8;
+ width = r1;
+ left /= 8;
+ height = (height + 7) / 8;
+ top /= 8;
+ if (newlineCount < height)
+ Menu_BlankWindowRect(left, top + 2 * newlineCount, left + width, height + top - 1);
#endif
+}
void MenuPrint_RightAligned(const u8 *str, u8 right, u8 top)
{