diff options
Diffstat (limited to 'src/decoration.c')
-rw-r--r-- | src/decoration.c | 659 |
1 files changed, 17 insertions, 642 deletions
diff --git a/src/decoration.c b/src/decoration.c index 8dde2834d..f2a1cf4b9 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -2403,8 +2403,6 @@ bool8 sub_80FFBDC(u16 metatileBehavior, const struct Decoration *decoration) return FALSE; } -// When behaviorBy is set, it is masked by 0xf000. This is the step that fails to match when built. -#ifdef NONMATCHING bool8 sub_80FFC24(u8 taskId, const struct Decoration *decoration) { u8 i; @@ -2536,540 +2534,6 @@ bool8 sub_80FFC24(u8 taskId, const struct Decoration *decoration) } return TRUE; } -#else -NAKED -bool8 sub_80FFC24(u8 taskId, const struct Decoration *decoration) -{ - asm(".syntax unified\n" - "\tpush {r4-r7,lr}\n" - "\tmov r7, r10\n" - "\tmov r6, r9\n" - "\tmov r5, r8\n" - "\tpush {r5-r7}\n" - "\tsub sp, 0x24\n" - "\tstr r1, [sp]\n" - "\tlsls r0, 24\n" - "\tlsrs r0, 24\n" - "\tmov r10, r0\n" - "\tldr r1, _080FFC60 @ =gTasks\n" - "\tlsls r0, 2\n" - "\tadd r0, r10\n" - "\tlsls r0, 3\n" - "\tadds r0, r1\n" - "\tldrb r2, [r0, 0x14]\n" - "\tstr r2, [sp, 0x4]\n" - "\tldrb r0, [r0, 0x12]\n" - "\tstr r0, [sp, 0x8]\n" - "\tldr r3, [sp]\n" - "\tldrb r0, [r3, 0x11]\n" - "\tadds r2, r1, 0\n" - "\tcmp r0, 0x4\n" - "\tbls _080FFC56\n" - "\tb _08100024\n" - "_080FFC56:\n" - "\tlsls r0, 2\n" - "\tldr r1, _080FFC64 @ =_080FFC68\n" - "\tadds r0, r1\n" - "\tldr r0, [r0]\n" - "\tmov pc, r0\n" - "\t.align 2, 0\n" - "_080FFC60: .4byte gTasks\n" - "_080FFC64: .4byte _080FFC68\n" - "\t.align 2, 0\n" - "_080FFC68:\n" - "\t.4byte _080FFC7C\n" - "\t.4byte _080FFC7C\n" - "\t.4byte _080FFD68\n" - "\t.4byte _080FFF1C\n" - "\t.4byte _080FFFA0\n" - "_080FFC7C:\n" - "\tmovs r6, 0\n" - "\tldr r0, [sp, 0x4]\n" - "\tcmp r6, r0\n" - "\tbcc _080FFC86\n" - "\tb _08100024\n" - "_080FFC86:\n" - "\tmov r1, r10\n" - "\tlsls r1, 2\n" - "\tstr r1, [sp, 0x1C]\n" - "_080FFC8C:\n" - "\tmov r2, r10\n" - "\tlsls r0, r2, 2\n" - "\tadd r0, r10\n" - "\tlsls r0, 3\n" - "\tldr r3, _080FFD64 @ =gTasks\n" - "\tadds r0, r3\n" - "\tldrh r0, [r0, 0xA]\n" - "\tsubs r0, r6\n" - "\tlsls r0, 16\n" - "\tlsrs r0, 16\n" - "\tmov r9, r0\n" - "\tmovs r7, 0\n" - "\tadds r6, 0x1\n" - "\tstr r6, [sp, 0x14]\n" - "\tldr r0, [sp, 0x8]\n" - "\tcmp r7, r0\n" - "\tbcs _080FFD56\n" - "\tmov r1, r9\n" - "\tlsls r1, 16\n" - "\tstr r1, [sp, 0xC]\n" - "\tasrs r1, 16\n" - "\tmov r9, r1\n" - "_080FFCB8:\n" - "\tldr r0, [sp, 0x1C]\n" - "\tadd r0, r10\n" - "\tlsls r0, 3\n" - "\tldr r2, _080FFD64 @ =gTasks\n" - "\tadds r0, r2\n" - "\tldrh r0, [r0, 0x8]\n" - "\tadds r0, r7\n" - "\tlsls r0, 16\n" - "\tmov r8, r0\n" - "\tasrs r6, r0, 16\n" - "\tadds r0, r6, 0\n" - "\tmov r1, r9\n" - "\tbl MapGridGetMetatileBehaviorAt\n" - "\tlsls r0, 24\n" - "\tlsrs r4, r0, 24\n" - "\tldr r3, [sp, 0x4]\n" - "\tldr r1, [sp, 0x14]\n" - "\tsubs r0, r3, r1\n" - "\tldr r2, [sp, 0x8]\n" - "\tadds r1, r0, 0\n" - "\tmuls r1, r2\n" - "\tadds r1, r7\n" - "\tldr r3, [sp]\n" - "\tldr r0, [r3, 0x1C]\n" - "\tlsls r1, 1\n" - "\tadds r1, r0\n" - "\tmovs r2, 0x80\n" - "\tlsls r2, 2\n" - "\tadds r0, r2, 0\n" - "\tldrh r1, [r1]\n" - "\tadds r0, r1\n" - "\tlsls r0, 16\n" - "\tlsrs r0, 16\n" - "\tbl GetBehaviorByMetatileId\n" - "\tmovs r3, 0xF0\n" - "\tlsls r3, 8\n" - "\tadds r1, r3, 0\n" - "\tadds r5, r1, 0\n" - "\tands r5, r0\n" - "\tadds r0, r4, 0\n" - "\tldr r1, [sp]\n" - "\tbl sub_80FFBDC\n" - "\tlsls r0, 24\n" - "\tcmp r0, 0\n" - "\tbne _080FFD1A\n" - "\tb _080FFFF4\n" - "_080FFD1A:\n" - "\tmov r0, r10\n" - "\tadds r1, r6, 0\n" - "\tmov r2, r9\n" - "\tadds r3, r5, 0\n" - "\tbl sub_80FFB94\n" - "\tlsls r0, 24\n" - "\tcmp r0, 0\n" - "\tbne _080FFD2E\n" - "\tb _080FFFF4\n" - "_080FFD2E:\n" - "\tmov r1, r8\n" - "\tlsrs r0, r1, 16\n" - "\tldr r2, [sp, 0xC]\n" - "\tlsrs r1, r2, 16\n" - "\tmovs r2, 0\n" - "\tbl GetObjectEventIdByXYZ\n" - "\tlsls r0, 24\n" - "\tlsrs r4, r0, 24\n" - "\tcmp r4, 0\n" - "\tbeq _080FFD4A\n" - "\tcmp r4, 0x10\n" - "\tbeq _080FFD4A\n" - "\tb _080FFFF4\n" - "_080FFD4A:\n" - "\tadds r0, r7, 0x1\n" - "\tlsls r0, 24\n" - "\tlsrs r7, r0, 24\n" - "\tldr r3, [sp, 0x8]\n" - "\tcmp r7, r3\n" - "\tbcc _080FFCB8\n" - "_080FFD56:\n" - "\tldr r1, [sp, 0x14]\n" - "\tlsls r0, r1, 24\n" - "\tlsrs r6, r0, 24\n" - "\tldr r2, [sp, 0x4]\n" - "\tcmp r6, r2\n" - "\tbcc _080FFC8C\n" - "\tb _08100024\n" - "\t.align 2, 0\n" - "_080FFD64: .4byte gTasks\n" - "_080FFD68:\n" - "\tmovs r6, 0\n" - "\tmov r3, r10\n" - "\tlsls r3, 2\n" - "\tstr r3, [sp, 0x1C]\n" - "\tldr r0, [sp, 0x4]\n" - "\tsubs r0, 0x1\n" - "\tstr r0, [sp, 0x18]\n" - "\tcmp r6, r0\n" - "\tbge _080FFE54\n" - "\tadds r0, r3, 0\n" - "\tadd r0, r10\n" - "\tlsls r0, 3\n" - "\tstr r0, [sp, 0x10]\n" - "_080FFD82:\n" - "\tldr r1, [sp, 0x10]\n" - "\tadds r0, r1, r2\n" - "\tldrh r0, [r0, 0xA]\n" - "\tsubs r0, r6\n" - "\tlsls r0, 16\n" - "\tlsrs r0, 16\n" - "\tmov r9, r0\n" - "\tmovs r7, 0\n" - "\tadds r6, 0x1\n" - "\tstr r6, [sp, 0x14]\n" - "\tldr r3, [sp, 0x8]\n" - "\tcmp r7, r3\n" - "\tbcs _080FFE48\n" - "\tlsls r0, 16\n" - "\tstr r0, [sp, 0x20]\n" - "_080FFDA0:\n" - "\tldr r1, [sp, 0x10]\n" - "\tadds r0, r1, r2\n" - "\tldrh r0, [r0, 0x8]\n" - "\tadds r0, r7\n" - "\tlsls r0, 16\n" - "\tmov r8, r0\n" - "\tasrs r6, r0, 16\n" - "\tmov r2, r9\n" - "\tlsls r1, r2, 16\n" - "\tadds r0, r6, 0\n" - "\tasrs r1, 16\n" - "\tbl MapGridGetMetatileBehaviorAt\n" - "\tlsls r0, 24\n" - "\tlsrs r4, r0, 24\n" - "\tldr r3, [sp, 0x4]\n" - "\tldr r1, [sp, 0x14]\n" - "\tsubs r0, r3, r1\n" - "\tldr r2, [sp, 0x8]\n" - "\tadds r1, r0, 0\n" - "\tmuls r1, r2\n" - "\tadds r1, r7\n" - "\tldr r3, [sp]\n" - "\tldr r0, [r3, 0x1C]\n" - "\tlsls r1, 1\n" - "\tadds r1, r0\n" - "\tmovs r2, 0x80\n" - "\tlsls r2, 2\n" - "\tadds r0, r2, 0\n" - "\tldrh r1, [r1]\n" - "\tadds r0, r1\n" - "\tlsls r0, 16\n" - "\tlsrs r0, 16\n" - "\tbl GetBehaviorByMetatileId\n" - "\tmovs r3, 0xF0\n" - "\tlsls r3, 8\n" - "\tadds r1, r3, 0\n" - "\tadds r5, r1, 0\n" - "\tands r5, r0\n" - "\tadds r0, r4, 0\n" - "\tbl MetatileBehavior_IsNormal\n" - "\tlsls r0, 24\n" - "\tcmp r0, 0\n" - "\tbne _080FFE0C\n" - "\tadds r0, r4, 0\n" - "\tadds r1, r5, 0\n" - "\tbl sub_80FFB6C\n" - "\tlsls r0, 24\n" - "\tcmp r0, 0\n" - "\tbne _080FFE0C\n" - "\tb _080FFFF4\n" - "_080FFE0C:\n" - "\tmov r0, r10\n" - "\tadds r1, r6, 0\n" - "\tldr r3, [sp, 0x20]\n" - "\tasrs r2, r3, 16\n" - "\tadds r3, r5, 0\n" - "\tbl sub_80FFB94\n" - "\tlsls r0, 24\n" - "\tcmp r0, 0\n" - "\tbne _080FFE22\n" - "\tb _080FFFF4\n" - "_080FFE22:\n" - "\tmov r1, r8\n" - "\tlsrs r0, r1, 16\n" - "\tldr r2, [sp, 0x20]\n" - "\tlsrs r1, r2, 16\n" - "\tmovs r2, 0\n" - "\tbl GetObjectEventIdByXYZ\n" - "\tlsls r0, 24\n" - "\tlsrs r0, 24\n" - "\tcmp r0, 0x10\n" - "\tbeq _080FFE3A\n" - "\tb _080FFFF4\n" - "_080FFE3A:\n" - "\tadds r0, r7, 0x1\n" - "\tlsls r0, 24\n" - "\tlsrs r7, r0, 24\n" - "\tldr r2, _080FFF18 @ =gTasks\n" - "\tldr r3, [sp, 0x8]\n" - "\tcmp r7, r3\n" - "\tbcc _080FFDA0\n" - "_080FFE48:\n" - "\tldr r1, [sp, 0x14]\n" - "\tlsls r0, r1, 24\n" - "\tlsrs r6, r0, 24\n" - "\tldr r3, [sp, 0x18]\n" - "\tcmp r6, r3\n" - "\tblt _080FFD82\n" - "_080FFE54:\n" - "\tldr r0, [sp, 0x1C]\n" - "\tadd r0, r10\n" - "\tlsls r0, 3\n" - "\tadds r0, r2\n" - "\tldrh r0, [r0, 0xA]\n" - "\tldr r1, [sp, 0x4]\n" - "\tsubs r0, r1\n" - "\tadds r0, 0x1\n" - "\tlsls r0, 16\n" - "\tlsrs r0, 16\n" - "\tmov r9, r0\n" - "\tmovs r7, 0\n" - "\tldr r3, [sp, 0x8]\n" - "\tcmp r7, r3\n" - "\tbcc _080FFE74\n" - "\tb _08100024\n" - "_080FFE74:\n" - "\tlsls r0, 16\n" - "\tstr r0, [sp, 0x20]\n" - "_080FFE78:\n" - "\tldr r0, [sp, 0x1C]\n" - "\tadd r0, r10\n" - "\tlsls r0, 3\n" - "\tldr r1, _080FFF18 @ =gTasks\n" - "\tadds r0, r1\n" - "\tldrh r0, [r0, 0x8]\n" - "\tadds r0, r7\n" - "\tlsls r0, 16\n" - "\tmov r8, r0\n" - "\tasrs r6, r0, 16\n" - "\tmov r2, r9\n" - "\tlsls r1, r2, 16\n" - "\tadds r0, r6, 0\n" - "\tasrs r1, 16\n" - "\tbl MapGridGetMetatileBehaviorAt\n" - "\tlsls r0, 24\n" - "\tlsrs r4, r0, 24\n" - "\tldr r3, [sp]\n" - "\tldr r0, [r3, 0x1C]\n" - "\tlsls r1, r7, 1\n" - "\tadds r1, r0\n" - "\tmovs r2, 0x80\n" - "\tlsls r2, 2\n" - "\tadds r0, r2, 0\n" - "\tldrh r1, [r1]\n" - "\tadds r0, r1\n" - "\tlsls r0, 16\n" - "\tlsrs r0, 16\n" - "\tbl GetBehaviorByMetatileId\n" - "\tmovs r3, 0xF0\n" - "\tlsls r3, 8\n" - "\tadds r1, r3, 0\n" - "\tadds r5, r1, 0\n" - "\tands r5, r0\n" - "\tadds r0, r4, 0\n" - "\tbl MetatileBehavior_IsNormal\n" - "\tlsls r0, 24\n" - "\tcmp r0, 0\n" - "\tbne _080FFEDA\n" - "\tadds r0, r4, 0\n" - "\tbl MetatileBehavior_IsSecretBaseNorthWall\n" - "\tlsls r0, 24\n" - "\tcmp r0, 0\n" - "\tbne _080FFEDA\n" - "\tb _080FFFF4\n" - "_080FFEDA:\n" - "\tmov r0, r10\n" - "\tadds r1, r6, 0\n" - "\tldr r3, [sp, 0x20]\n" - "\tasrs r2, r3, 16\n" - "\tadds r3, r5, 0\n" - "\tbl sub_80FFB94\n" - "\tlsls r0, 24\n" - "\tcmp r0, 0\n" - "\tbne _080FFEF0\n" - "\tb _080FFFF4\n" - "_080FFEF0:\n" - "\tmov r1, r8\n" - "\tlsrs r0, r1, 16\n" - "\tldr r2, [sp, 0x20]\n" - "\tlsrs r1, r2, 16\n" - "\tmovs r2, 0\n" - "\tbl GetObjectEventIdByXYZ\n" - "\tlsls r0, 24\n" - "\tlsrs r4, r0, 24\n" - "\tcmp r4, 0\n" - "\tbeq _080FFF0A\n" - "\tcmp r4, 0x10\n" - "\tbne _080FFFF4\n" - "_080FFF0A:\n" - "\tadds r0, r7, 0x1\n" - "\tlsls r0, 24\n" - "\tlsrs r7, r0, 24\n" - "\tldr r3, [sp, 0x8]\n" - "\tcmp r7, r3\n" - "\tbcc _080FFE78\n" - "\tb _08100024\n" - "\t.align 2, 0\n" - "_080FFF18: .4byte gTasks\n" - "_080FFF1C:\n" - "\tmovs r6, 0\n" - "\tldr r0, [sp, 0x4]\n" - "\tcmp r6, r0\n" - "\tbcc _080FFF26\n" - "\tb _08100024\n" - "_080FFF26:\n" - "\tmov r1, r10\n" - "\tlsls r0, r1, 2\n" - "\tadd r0, r10\n" - "\tlsls r1, r0, 3\n" - "\tldr r2, _080FFF9C @ =gTasks\n" - "\tadds r0, r1, r2\n" - "\tldrh r0, [r0, 0xA]\n" - "\tsubs r0, r6\n" - "\tlsls r0, 16\n" - "\tlsrs r0, 16\n" - "\tmov r9, r0\n" - "\tmovs r7, 0\n" - "\tldr r3, [sp, 0x8]\n" - "\tcmp r7, r3\n" - "\tbcs _080FFF8C\n" - "\tadds r0, r2, 0\n" - "\tadds r1, r0\n" - "\tmov r8, r1\n" - "\tmov r1, r9\n" - "\tlsls r0, r1, 16\n" - "\tasrs r5, r0, 16\n" - "_080FFF50:\n" - "\tmov r2, r8\n" - "\tldrh r0, [r2, 0x8]\n" - "\tadds r0, r7\n" - "\tlsls r0, 16\n" - "\tasrs r4, r0, 16\n" - "\tadds r0, r4, 0\n" - "\tadds r1, r5, 0\n" - "\tbl MapGridGetMetatileBehaviorAt\n" - "\tlsls r0, 24\n" - "\tlsrs r0, 24\n" - "\tbl MetatileBehavior_IsSecretBaseNorthWall\n" - "\tlsls r0, 24\n" - "\tcmp r0, 0\n" - "\tbeq _080FFFF4\n" - "\tadds r0, r4, 0\n" - "\tadds r1, r5, 0x1\n" - "\tbl MapGridGetMetatileIdAt\n" - "\tmovs r1, 0xA3\n" - "\tlsls r1, 2\n" - "\tcmp r0, r1\n" - "\tbeq _080FFFF4\n" - "\tadds r0, r7, 0x1\n" - "\tlsls r0, 24\n" - "\tlsrs r7, r0, 24\n" - "\tldr r3, [sp, 0x8]\n" - "\tcmp r7, r3\n" - "\tbcc _080FFF50\n" - "_080FFF8C:\n" - "\tadds r0, r6, 0x1\n" - "\tlsls r0, 24\n" - "\tlsrs r6, r0, 24\n" - "\tldr r0, [sp, 0x4]\n" - "\tcmp r6, r0\n" - "\tbcc _080FFF26\n" - "\tb _08100024\n" - "\t.align 2, 0\n" - "_080FFF9C: .4byte gTasks\n" - "_080FFFA0:\n" - "\tmov r3, r10\n" - "\tlsls r1, r3, 2\n" - "\tadds r0, r1, r3\n" - "\tlsls r0, 3\n" - "\tadds r0, r2\n" - "\tldrh r0, [r0, 0xA]\n" - "\tmov r9, r0\n" - "\tmovs r7, 0\n" - "\tstr r1, [sp, 0x1C]\n" - "\tldr r0, [sp, 0x8]\n" - "\tcmp r7, r0\n" - "\tbcs _08100024\n" - "\tadds r6, r2, 0\n" - "\tmov r1, r9\n" - "\tlsls r1, 16\n" - "\tstr r1, [sp, 0x20]\n" - "_080FFFC0:\n" - "\tldr r0, [sp, 0x1C]\n" - "\tadd r0, r10\n" - "\tlsls r0, 3\n" - "\tadds r0, r6\n" - "\tldrh r0, [r0, 0x8]\n" - "\tadds r0, r7\n" - "\tlsls r0, 16\n" - "\tlsrs r5, r0, 16\n" - "\tasrs r0, 16\n" - "\tmov r2, r9\n" - "\tlsls r1, r2, 16\n" - "\tasrs r1, 16\n" - "\tbl MapGridGetMetatileBehaviorAt\n" - "\tlsls r0, 24\n" - "\tlsrs r4, r0, 24\n" - "\tldr r3, [sp]\n" - "\tldrb r0, [r3, 0x12]\n" - "\tcmp r0, 0x5\n" - "\tbne _080FFFF8\n" - "_080FFFE8:\n" - "\tadds r0, r4, 0\n" - "\tbl MetatileBehavior_IsLargeMatCenter\n" - "\tlsls r0, 24\n" - "\tcmp r0, 0\n" - "\tbne _08100004\n" - "_080FFFF4:\n" - "\tmovs r0, 0\n" - "\tb _08100026\n" - "_080FFFF8:\n" - "\tadds r0, r4, 0\n" - "\tbl MetatileBehavior_IsSecretBaseLargeMatEdge\n" - "\tlsls r0, 24\n" - "\tcmp r0, 0\n" - "\tbeq _080FFFE8\n" - "_08100004:\n" - "\tadds r0, r5, 0\n" - "\tldr r2, [sp, 0x20]\n" - "\tlsrs r1, r2, 16\n" - "\tmovs r2, 0\n" - "\tbl GetObjectEventIdByXYZ\n" - "\tlsls r0, 24\n" - "\tlsrs r0, 24\n" - "\tcmp r0, 0x10\n" - "\tbne _080FFFF4\n" - "\tadds r0, r7, 0x1\n" - "\tlsls r0, 24\n" - "\tlsrs r7, r0, 24\n" - "\tldr r3, [sp, 0x8]\n" - "\tcmp r7, r3\n" - "\tbcc _080FFFC0\n" - "_08100024:\n" - "\tmovs r0, 0x1\n" - "_08100026:\n" - "\tadd sp, 0x24\n" - "\tpop {r3-r5}\n" - "\tmov r8, r3\n" - "\tmov r9, r4\n" - "\tmov r10, r5\n" - "\tpop {r4-r7}\n" - "\tpop {r1}\n" - "\tbx r1\n" - ".syntax divided\n"); -} -#endif void sub_8100038(u8 taskId) { @@ -3967,131 +3431,42 @@ void sub_81013B8(u8 a0, u8 a1, u8 a2, u8 a3) } } -#ifdef NONMATCHING void sub_8101460(u8 taskId) { u8 i; u8 xOff; u8 yOff; + u8 var1; + u32 var2; + gUnknown_02039234 = 0; if (sub_8101340(taskId) != TRUE) { - for (i=0; i<ewram_1f000.size; i++) + for (i = 0; i < ewram_1f000.size; i++) { - if (ewram_1f000.items[i] == 0) // This is using the wrong register! - { - continue; - } - sub_8101118(ewram_1f000.items[i], gUnknown_020391B4); - if (sub_8101200(taskId, i, gUnknown_020391B4) == TRUE) + var1 = ewram_1f000.items[i]; + if (var1 != 0) { - gUnknown_020391B4[0].decorId = i; - gUnknown_02039234++; - break; + sub_8101118(var1, gUnknown_020391B4); + if (sub_8101200(taskId, i, gUnknown_020391B4) == TRUE) + { + gUnknown_020391B4[0].decorId = i; + gUnknown_02039234++; + break; + } } } if (gUnknown_02039234 != 0) { xOff = ewram_1f000.pos[gUnknown_020391B4[0].decorId] >> 4; yOff = ewram_1f000.pos[gUnknown_020391B4[0].decorId] & 0xf; - sub_81013B8(xOff, yOff - gUnknown_020391B4[0].height + 1, xOff + gUnknown_020391B4[0].width - 1, yOff); + var1 = yOff - gUnknown_020391B4[0].height + 1; + var2 = gUnknown_020391B4[0].width + xOff - 1; + + sub_81013B8(xOff, var1, var2, yOff); } } } -#else -NAKED -void sub_8101460(u8 taskId) -{ - asm(".syntax unified\n" - "\tpush {r4-r7,lr}\n" - "\tlsls r0, 24\n" - "\tlsrs r6, r0, 24\n" - "\tldr r4, _081014B8 @ =gUnknown_02039234\n" - "\tmovs r0, 0\n" - "\tstrb r0, [r4]\n" - "\tadds r0, r6, 0\n" - "\tbl sub_8101340\n" - "\tlsls r0, 24\n" - "\tlsrs r0, 24\n" - "\tcmp r0, 0x1\n" - "\tbeq _08101504\n" - "\tmovs r5, 0\n" - "\tldr r0, _081014BC @ =ewram_1f000\n" - "\tldrb r1, [r0, 0x8]\n" - "\tcmp r5, r1\n" - "\tbcs _081014D2\n" - "\tadds r7, r4, 0\n" - "_08101486:\n" - "\tldr r0, [r0]\n" - "\tadds r0, r5\n" - "\tldrb r1, [r0] @ compiler incorrectly uses r0 for this and the next instruction\n" - "\tcmp r1, 0\n" - "\tbeq _081014C4\n" - "\tldr r4, _081014C0 @ =gUnknown_020391B4\n" - "\tadds r0, r1, 0\n" - "\tadds r1, r4, 0\n" - "\tbl sub_8101118\n" - "\tadds r0, r6, 0\n" - "\tadds r1, r5, 0\n" - "\tadds r2, r4, 0\n" - "\tbl sub_8101200\n" - "\tlsls r0, 24\n" - "\tlsrs r0, 24\n" - "\tcmp r0, 0x1\n" - "\tbne _081014C4\n" - "\tstrb r5, [r4]\n" - "\tldrb r0, [r7]\n" - "\tadds r0, 0x1\n" - "\tstrb r0, [r7]\n" - "\tb _081014D2\n" - "\t.align 2, 0\n" - "_081014B8: .4byte gUnknown_02039234\n" - "_081014BC: .4byte 0x201f000\n" - "_081014C0: .4byte gUnknown_020391B4\n" - "_081014C4:\n" - "\tadds r0, r5, 0x1\n" - "\tlsls r0, 24\n" - "\tlsrs r5, r0, 24\n" - "\tldr r0, _0810150C @ =ewram_1f000\n" - "\tldrb r1, [r0, 0x8]\n" - "\tcmp r5, r1\n" - "\tbcc _08101486\n" - "_081014D2:\n" - "\tldr r0, _08101510 @ =gUnknown_02039234\n" - "\tldrb r0, [r0]\n" - "\tcmp r0, 0\n" - "\tbeq _08101504\n" - "\tldr r0, _0810150C @ =ewram_1f000\n" - "\tldr r2, _08101514 @ =gUnknown_020391B4\n" - "\tldrb r1, [r2]\n" - "\tldr r0, [r0, 0x4]\n" - "\tadds r0, r1\n" - "\tldrb r1, [r0]\n" - "\tlsrs r0, r1, 4\n" - "\tmovs r3, 0xF\n" - "\tands r3, r1\n" - "\tldrb r1, [r2, 0x2]\n" - "\tsubs r1, r3, r1\n" - "\tadds r1, 0x1\n" - "\tlsls r1, 24\n" - "\tlsrs r1, 24\n" - "\tldrb r2, [r2, 0x1]\n" - "\tadds r2, r0\n" - "\tsubs r2, 0x1\n" - "\tlsls r2, 24\n" - "\tlsrs r2, 24\n" - "\tbl sub_81013B8\n" - "_08101504:\n" - "\tpop {r4-r7}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.align 2, 0\n" - "_0810150C: .4byte 0x201f000\n" - "_08101510: .4byte gUnknown_02039234\n" - "_08101514: .4byte gUnknown_020391B4\n" - ".syntax divided\n"); -} -#endif void sub_8101518(u8 taskId) { |