summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKaz <kazbloxmc@gmail.com>2020-05-25 22:07:36 -0400
committerKaz <kazbloxmc@gmail.com>2020-05-25 22:07:36 -0400
commit08c053f0130dd8bedb81f4cdb1850a85c90ae89f (patch)
tree1af2799fb8a3c21e189ed994b4b088bf1590c8aa /src
parentbdd3fa89da0f3f88135b513e72ce2029c039ca95 (diff)
decoration.c, field_player_avatar.c, field_tasks.c: fix NONMATCHINGs
Diffstat (limited to 'src')
-rw-r--r--src/decoration.c659
-rw-r--r--src/field_player_avatar.c12
-rw-r--r--src/field_tasks.c126
-rw-r--r--src/fieldmap.c2
4 files changed, 47 insertions, 752 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)
{
diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c
index cd6e67c8c..cb0bf760f 100644
--- a/src/field_player_avatar.c
+++ b/src/field_player_avatar.c
@@ -681,24 +681,16 @@ void SetPlayerAvatarTransitionFlags(u16 a)
static void DoPlayerAvatarTransition(void)
{
u8 i;
- u32 flags = gPlayerAvatar.unk1;
+ u8 flags = gPlayerAvatar.unk1;
if (flags != 0)
{
- for (i = 0; i < 8; i++, flags >>= 1)
+ for (i = 0; i < ARRAY_COUNT(gUnknown_0830FC14); i++, flags >>= 1)
{
-#ifdef NONMATCHING
if (flags & 1)
{
gUnknown_0830FC14[i](&gObjectEvents[gPlayerAvatar.objectEventId]);
}
-#else
- if (flags & 1)
- {
- register void (*const *funcs)(struct ObjectEvent *) asm("r0") = gUnknown_0830FC14;
- funcs[i](&gObjectEvents[gPlayerAvatar.objectEventId]);
- }
-#endif
}
gPlayerAvatar.unk1 = 0;
}
diff --git a/src/field_tasks.c b/src/field_tasks.c
index a56de5746..abc4e1505 100644
--- a/src/field_tasks.c
+++ b/src/field_tasks.c
@@ -147,46 +147,46 @@ void ResetFieldTasksArgs(void)
}
}
-const struct MetatileOffset gUnknown_08376384[][2] = {
- {{ 0, 0, METATILE_ID(Pacifidlog, HalfSubmergedLogs_Vertical0)}, { 0, 1, METATILE_ID(Pacifidlog, HalfSubmergedLogs_Vertical1)}},
- {{ 0, -1, METATILE_ID(Pacifidlog, HalfSubmergedLogs_Vertical0)}, { 0, 0, METATILE_ID(Pacifidlog, HalfSubmergedLogs_Vertical1)}},
- {{ 0, 0, METATILE_ID(Pacifidlog, HalfSubmergedLogs_Horizontal0)}, { 1, 0, METATILE_ID(Pacifidlog, HalfSubmergedLogs_Horizontal1)}},
- {{ -1, 0, METATILE_ID(Pacifidlog, HalfSubmergedLogs_Horizontal0)}, { 0, 0, METATILE_ID(Pacifidlog, HalfSubmergedLogs_Horizontal1)}}
+const struct MetatileOffset gUnknown_08376384[] = {
+ { 0, 0, METATILE_ID(Pacifidlog, HalfSubmergedLogs_Vertical0)}, {0, 1, METATILE_ID(Pacifidlog, HalfSubmergedLogs_Vertical1)},
+ { 0, -1, METATILE_ID(Pacifidlog, HalfSubmergedLogs_Vertical0)}, {0, 0, METATILE_ID(Pacifidlog, HalfSubmergedLogs_Vertical1)},
+ { 0, 0, METATILE_ID(Pacifidlog, HalfSubmergedLogs_Horizontal0)}, {1, 0, METATILE_ID(Pacifidlog, HalfSubmergedLogs_Horizontal1)},
+ {-1, 0, METATILE_ID(Pacifidlog, HalfSubmergedLogs_Horizontal0)}, {0, 0, METATILE_ID(Pacifidlog, HalfSubmergedLogs_Horizontal1)}
};
-const struct MetatileOffset gUnknown_083763A4[][2] = {
- {{ 0, 0, METATILE_ID(Pacifidlog, SubmergedLogs_Vertical0)}, { 0, 1, METATILE_ID(Pacifidlog, SubmergedLogs_Vertical1)}},
- {{ 0, -1, METATILE_ID(Pacifidlog, SubmergedLogs_Vertical0)}, { 0, 0, METATILE_ID(Pacifidlog, SubmergedLogs_Vertical1)}},
- {{ 0, 0, METATILE_ID(Pacifidlog, SubmergedLogs_Horizontal0)}, { 1, 0, METATILE_ID(Pacifidlog, SubmergedLogs_Horizontal1)}},
- {{ -1, 0, METATILE_ID(Pacifidlog, SubmergedLogs_Horizontal0)}, { 0, 0, METATILE_ID(Pacifidlog, SubmergedLogs_Horizontal1)}}
+const struct MetatileOffset gUnknown_083763A4[] = {
+ { 0, 0, METATILE_ID(Pacifidlog, SubmergedLogs_Vertical0)}, {0, 1, METATILE_ID(Pacifidlog, SubmergedLogs_Vertical1)},
+ { 0, -1, METATILE_ID(Pacifidlog, SubmergedLogs_Vertical0)}, {0, 0, METATILE_ID(Pacifidlog, SubmergedLogs_Vertical1)},
+ { 0, 0, METATILE_ID(Pacifidlog, SubmergedLogs_Horizontal0)}, {1, 0, METATILE_ID(Pacifidlog, SubmergedLogs_Horizontal1)},
+ {-1, 0, METATILE_ID(Pacifidlog, SubmergedLogs_Horizontal0)}, {0, 0, METATILE_ID(Pacifidlog, SubmergedLogs_Horizontal1)}
};
-const struct MetatileOffset gUnknown_083763C4[][2] = {
- {{ 0, 0, METATILE_ID(Pacifidlog, FloatingLogs_Vertical0)}, { 0, 1, METATILE_ID(Pacifidlog, FloatingLogs_Vertical1)}},
- {{ 0, -1, METATILE_ID(Pacifidlog, FloatingLogs_Vertical0)}, { 0, 0, METATILE_ID(Pacifidlog, FloatingLogs_Vertical1)}},
- {{ 0, 0, METATILE_ID(Pacifidlog, FloatingLogs_Horizontal0)}, { 1, 0, METATILE_ID(Pacifidlog, FloatingLogs_Horizontal1)}},
- {{ -1, 0, METATILE_ID(Pacifidlog, FloatingLogs_Horizontal0)}, { 0, 0, METATILE_ID(Pacifidlog, FloatingLogs_Horizontal1)}}
+const struct MetatileOffset gUnknown_083763C4[] = {
+ { 0, 0, METATILE_ID(Pacifidlog, FloatingLogs_Vertical0)}, {0, 1, METATILE_ID(Pacifidlog, FloatingLogs_Vertical1)},
+ { 0, -1, METATILE_ID(Pacifidlog, FloatingLogs_Vertical0)}, {0, 0, METATILE_ID(Pacifidlog, FloatingLogs_Vertical1)},
+ { 0, 0, METATILE_ID(Pacifidlog, FloatingLogs_Horizontal0)}, {1, 0, METATILE_ID(Pacifidlog, FloatingLogs_Horizontal1)},
+ {-1, 0, METATILE_ID(Pacifidlog, FloatingLogs_Horizontal0)}, {0, 0, METATILE_ID(Pacifidlog, FloatingLogs_Horizontal1)}
};
void DummyPerStepCallback(u8 taskId) {}
-const struct MetatileOffset *sub_80695E0(const struct MetatileOffset a0[][2], s8 a1)
+const struct MetatileOffset *sub_80695E0(const struct MetatileOffset *a0, u16 a1)
{
if (MetatileBehavior_IsPacifidlogVerticalLog1(a1))
{
- return a0[0];
+ return &a0[0 * 2];
}
else if (MetatileBehavior_IsPacifidlogVerticalLog2(a1))
{
- return a0[1];
+ return &a0[1 * 2];
}
else if (MetatileBehavior_IsPacifidlogHorizontalLog1(a1))
{
- return a0[2];
+ return &a0[2 * 2];
}
else if (MetatileBehavior_IsPacifidlogHorizontalLog2(a1))
{
- return a0[3];
+ return &a0[3 * 2];
}
else
{
@@ -194,95 +194,23 @@ const struct MetatileOffset *sub_80695E0(const struct MetatileOffset a0[][2], s8
}
}
-#ifdef NONMATCHING
-void sub_8069638(const struct MetatileOffset offsets[][2], s16 x, s16 y, bool32 flag)
+void sub_8069638(const struct MetatileOffset *offsets, s16 x, s16 y, bool32 flag)
{
- const struct MetatileOffset *offsetData = sub_80695E0(offsets, MapGridGetMetatileBehaviorAt(x, y));
- const struct MetatileOffset *offsetdata2 = offsetData;
- if (offsetData != NULL)
+ offsets = sub_80695E0(offsets, MapGridGetMetatileBehaviorAt(x, y));
+ if (offsets)
{
- MapGridSetMetatileIdAt(x + offsetData[0].x, y + offsetData[0].y, offsetData[0].tileId);
+ MapGridSetMetatileIdAt(x + offsets[0].x, y + offsets[0].y, offsets[0].tileId);
if (flag)
{
- CurrentMapDrawMetatileAt(x + offsetData[0].x, y + offsetData[0].y);
+ CurrentMapDrawMetatileAt(x + offsets[0].x, y + offsets[0].y);
}
- MapGridSetMetatileIdAt(x + offsetdata2[1].x, y + offsetdata2[1].y, offsetdata2[1].tileId);
+ MapGridSetMetatileIdAt(x + offsets[1].x, y + offsets[1].y, offsets[1].tileId);
if (flag)
{
- CurrentMapDrawMetatileAt(x + offsetdata2[1].x, y + offsetdata2[1].y);
+ CurrentMapDrawMetatileAt(x + offsets[1].x, y + offsets[1].y);
}
}
}
-#else
-NAKED
-void sub_8069638(const struct MetatileOffset offsets[][2], s16 x, s16 y, bool32 flag)
-{
- asm_unified("\tpush {r4-r7,lr}\n"
- "\tmov r7, r8\n"
- "\tpush {r7}\n"
- "\tadds r5, r0, 0\n"
- "\tmov r8, r3\n"
- "\tlsls r1, 16\n"
- "\tasrs r6, r1, 16\n"
- "\tlsls r2, 16\n"
- "\tasrs r7, r2, 16\n"
- "\tadds r0, r6, 0\n"
- "\tadds r1, r7, 0\n"
- "\tbl MapGridGetMetatileBehaviorAt\n"
- "\tadds r1, r0, 0\n"
- "\tlsls r1, 16\n"
- "\tlsrs r1, 16\n"
- "\tadds r0, r5, 0\n"
- "\tbl sub_80695E0\n"
- "\tadds r4, r0, 0\n"
- "\tadds r5, r4, 0\n"
- "\tcmp r4, 0\n"
- "\tbeq _080696B6\n"
- "\tmovs r0, 0\n"
- "\tldrsb r0, [r4, r0]\n"
- "\tadds r0, r6, r0\n"
- "\tmovs r1, 0x1\n"
- "\tldrsb r1, [r4, r1]\n"
- "\tadds r1, r7, r1\n"
- "\tldrh r2, [r4, 0x2]\n"
- "\tbl MapGridSetMetatileIdAt\n"
- "\tmov r0, r8\n"
- "\tcmp r0, 0\n"
- "\tbeq _0806968E\n"
- "\tmovs r0, 0\n"
- "\tldrsb r0, [r4, r0]\n"
- "\tadds r0, r6, r0\n"
- "\tmovs r1, 0x1\n"
- "\tldrsb r1, [r4, r1]\n"
- "\tadds r1, r7, r1\n"
- "\tbl CurrentMapDrawMetatileAt\n"
- "_0806968E:\n"
- "\tmovs r0, 0x4\n"
- "\tldrsb r0, [r5, r0]\n"
- "\tadds r0, r6, r0\n"
- "\tmovs r1, 0x5\n"
- "\tldrsb r1, [r5, r1]\n"
- "\tadds r1, r7, r1\n"
- "\tldrh r2, [r5, 0x6]\n"
- "\tbl MapGridSetMetatileIdAt\n"
- "\tmov r0, r8\n"
- "\tcmp r0, 0\n"
- "\tbeq _080696B6\n"
- "\tmovs r0, 0x4\n"
- "\tldrsb r0, [r5, r0]\n"
- "\tadds r0, r6, r0\n"
- "\tmovs r1, 0x5\n"
- "\tldrsb r1, [r5, r1]\n"
- "\tadds r1, r7, r1\n"
- "\tbl CurrentMapDrawMetatileAt\n"
- "_080696B6:\n"
- "\tpop {r3}\n"
- "\tmov r8, r3\n"
- "\tpop {r4-r7}\n"
- "\tpop {r0}\n"
- "\tbx r0");
-}
-#endif
void sub_80696C0(s16 x, s16 y, bool32 flag)
{
diff --git a/src/fieldmap.c b/src/fieldmap.c
index f9b81a173..1241f85c9 100644
--- a/src/fieldmap.c
+++ b/src/fieldmap.c
@@ -460,7 +460,7 @@ void MapGridSetMetatileEntryAt(int x, int y, u16 metatile)
}
}
-u32 GetBehaviorByMetatileId(u16 metatile)
+u16 GetBehaviorByMetatileId(u16 metatile)
{
u16 *attributes;
if (metatile < NUM_METATILES_IN_PRIMARY)