summaryrefslogtreecommitdiff
path: root/src/menu_cursor.c
diff options
context:
space:
mode:
authorscnorton <scnorton@biociphers.org>2017-06-27 15:01:18 -0400
committerscnorton <scnorton@biociphers.org>2017-06-27 15:01:18 -0400
commit00c7dee919c8f93b8519a7eede2c41ba2ddcaf08 (patch)
tree5707f8764920abcd4cffca84c675e5c53c32559d /src/menu_cursor.c
parent3d9eb18add0d8a9eb5bfa77fc64cd7b1f37fea5d (diff)
parent06b6cada0ddedc62063171703ba6607019751a9a (diff)
Merge branch 'master' into pokemon_data
Diffstat (limited to 'src/menu_cursor.c')
-rw-r--r--src/menu_cursor.c197
1 files changed, 195 insertions, 2 deletions
diff --git a/src/menu_cursor.c b/src/menu_cursor.c
index cfb38ca47..2dc36cf32 100644
--- a/src/menu_cursor.c
+++ b/src/menu_cursor.c
@@ -253,7 +253,7 @@ void sub_814A958(u8 a1)
SetSubspriteTables(&gSprites[gUnknown_0203A3D1], &gSubspriteTables_842F5C0[v8]);
return;
}
-#else
+#elif ENGLISH
__attribute__((naked))
void sub_814A958(u8 a1)
{
@@ -435,6 +435,189 @@ _0814AAB4: .4byte gSubspriteTables_842F5C0\n\
_0814AAB8: .4byte gUnknown_0203A3D1\n\
.syntax divided\n");
}
+#elif GERMAN
+__attribute__((naked))
+void sub_814A958(u8 a1)
+{
+ asm(".syntax 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, 0x4\n\
+ lsls r0, 24\n\
+ ldr r4, _0814A9C4 @ =gMenuCursorSubsprites\n\
+ ldr r2, _0814A9C8 @ =0x0000ffff\n\
+ lsrs r0, 24\n\
+ str r0, [sp]\n\
+ ldr r0, _0814A9CC @ =gUnknown_0842F780\n\
+ ldr r1, [r0, 0x4]\n\
+ ldr r0, [r0]\n\
+ str r0, [r4]\n\
+ str r1, [r4, 0x4]\n\
+ strh r2, [r4]\n\
+ adds r4, 0x8\n\
+ movs r7, 0x1\n\
+ movs r2, 0x1\n\
+ ldr r1, [sp]\n\
+ subs r0, r1, 0x1\n\
+ lsls r0, 16\n\
+ lsrs r3, r0, 16\n\
+ asrs r0, 16\n\
+ cmp r0, 0x7\n\
+ ble _0814AA3E\n\
+ ldr r0, _0814A9D0 @ =gUnknown_0842F788\n\
+ mov r12, r0\n\
+ mov r8, r1\n\
+ movs r1, 0x8\n\
+ negs r1, r1\n\
+ mov r10, r1\n\
+ ldr r5, _0814A9D4 @ =gUnknown_0842F790\n\
+ mov r9, r5\n\
+_0814A99E:\n\
+ lsls r0, r3, 16\n\
+ asrs r3, r0, 16\n\
+ cmp r3, 0x1F\n\
+ ble _0814A9D8\n\
+ mov r6, r12\n\
+ ldr r0, [r6]\n\
+ ldr r1, [r6, 0x4]\n\
+ str r0, [r4]\n\
+ str r1, [r4, 0x4]\n\
+ strh r2, [r4]\n\
+ lsls r0, r2, 16\n\
+ movs r1, 0x80\n\
+ lsls r1, 14\n\
+ adds r0, r1\n\
+ lsrs r2, r0, 16\n\
+ ldr r3, [sp]\n\
+ lsls r5, r3, 16\n\
+ b _0814AA24\n\
+ .align 2, 0\n\
+_0814A9C4: .4byte gMenuCursorSubsprites\n\
+_0814A9C8: .4byte 0x0000ffff\n\
+_0814A9CC: .4byte gUnknown_0842F780\n\
+_0814A9D0: .4byte gUnknown_0842F788\n\
+_0814A9D4: .4byte gUnknown_0842F790\n\
+_0814A9D8:\n\
+ ldr r6, [sp]\n\
+ lsls r5, r6, 16\n\
+ mov r0, r8\n\
+ cmp r0, 0x27\n\
+ ble _0814AA0E\n\
+ cmp r3, 0x8\n\
+ ble _0814AA0E\n\
+ mov r6, r12\n\
+ ldr r0, [r6]\n\
+ ldr r1, [r6, 0x4]\n\
+ str r0, [r4]\n\
+ str r1, [r4, 0x4]\n\
+ lsls r1, r2, 16\n\
+ asrs r1, 16\n\
+ adds r2, r1, 0\n\
+ subs r2, 0x20\n\
+ adds r0, r3, 0\n\
+ mov r6, r10\n\
+ ands r0, r6\n\
+ adds r2, r0\n\
+ strh r2, [r4]\n\
+ movs r0, 0x18\n\
+ ands r0, r3\n\
+ adds r1, r0\n\
+ lsls r1, 16\n\
+ lsrs r2, r1, 16\n\
+ b _0814AA24\n\
+_0814AA0E:\n\
+ mov r3, r9\n\
+ ldr r0, [r3]\n\
+ ldr r1, [r3, 0x4]\n\
+ str r0, [r4]\n\
+ str r1, [r4, 0x4]\n\
+ strh r2, [r4]\n\
+ lsls r0, r2, 16\n\
+ movs r6, 0x80\n\
+ lsls r6, 12\n\
+ adds r0, r6\n\
+ lsrs r2, r0, 16\n\
+_0814AA24:\n\
+ adds r4, 0x8\n\
+ adds r0, r7, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r7, r0, 24\n\
+ asrs r1, r5, 16\n\
+ lsls r0, r2, 16\n\
+ asrs r0, 16\n\
+ subs r1, r0\n\
+ lsls r1, 16\n\
+ lsrs r3, r1, 16\n\
+ asrs r1, 16\n\
+ cmp r1, 0x7\n\
+ bgt _0814A99E\n\
+_0814AA3E:\n\
+ ldr r5, _0814AAAC @ =0x0843d6d8\n\
+ ldr r0, [r5]\n\
+ ldr r1, [r5, 0x4]\n\
+ str r0, [r4]\n\
+ str r1, [r4, 0x4]\n\
+ lsls r1, r2, 16\n\
+ asrs r1, 16\n\
+ subs r1, 0x7\n\
+ lsls r0, r3, 16\n\
+ asrs r0, 16\n\
+ adds r0, r1\n\
+ strh r0, [r4]\n\
+ adds r0, r7, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r7, r0, 24\n\
+ ldr r6, _0814AAB0 @ =gUnknown_0203A3D0\n\
+ ldrb r0, [r6]\n\
+ cmp r0, 0x40\n\
+ beq _0814AA7C\n\
+ adds r1, r0, 0\n\
+ lsls r0, r1, 4\n\
+ adds r0, r1\n\
+ lsls r0, 2\n\
+ ldr r1, _0814AAB4 @ =gSprites\n\
+ adds r2, r0, r1\n\
+ lsls r1, r7, 3\n\
+ ldr r0, _0814AAB8 @ =gSubspriteTables_842F5C0\n\
+ adds r1, r0\n\
+ adds r0, r2, 0\n\
+ bl SetSubspriteTables\n\
+_0814AA7C:\n\
+ ldr r1, _0814AABC @ =gUnknown_0203A3D1\n\
+ ldrb r0, [r1]\n\
+ cmp r0, 0x40\n\
+ beq _0814AA9C\n\
+ adds r1, r0, 0\n\
+ lsls r0, r1, 4\n\
+ adds r0, r1\n\
+ lsls r0, 2\n\
+ ldr r1, _0814AAB4 @ =gSprites\n\
+ adds r2, r0, r1\n\
+ lsls r1, r7, 3\n\
+ ldr r0, _0814AAB8 @ =gSubspriteTables_842F5C0\n\
+ adds r1, r0\n\
+ adds r0, r2, 0\n\
+ bl SetSubspriteTables\n\
+_0814AA9C:\n\
+ add sp, 0x4\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_0814AAAC: .4byte 0x0843d6d8\n\
+_0814AAB0: .4byte gUnknown_0203A3D0\n\
+_0814AAB4: .4byte gSprites\n\
+_0814AAB8: .4byte gSubspriteTables_842F5C0\n\
+_0814AABC: .4byte gUnknown_0203A3D1\n\
+ .syntax divided\n");
+}
#endif
void sub_814AABC(void (*callback)(struct Sprite *))
@@ -542,7 +725,11 @@ u8 CreateBlendedOutlineCursor(u8 a1, u16 a2, u8 a3, u16 a4, u8 a5)
}
LoadSpriteSheetDeferred(&gUnknown_0842F1C0[a3 & 0xF]);
- gUnknown_0203A3D2 = CreateSprite(&gSpriteTemplate_842F298[v8], 0, 0xA0, a1);
+#if ENGLISH
+ gUnknown_0203A3D2 = CreateSprite(&gSpriteTemplate_842F298[v8], 0, 160, a1);
+#elif GERMAN
+ gUnknown_0203A3D2 = CreateSprite(&gSpriteTemplate_842F298[v8], 0, 161, a1);
+#endif
if (gUnknown_0203A3D2 != 0x40)
{
@@ -604,3 +791,9 @@ void sub_814ADF4(u8 a1)
SetSubspriteTables(&gSprites[gUnknown_0203A3D2], &gSubspriteTables_842F6C0[a1]);
return;
}
+
+#if GERMAN
+void nullsub_814B200(void)
+{
+}
+#endif