diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/pokenav_before.c | 165 |
1 files changed, 25 insertions, 140 deletions
diff --git a/src/pokenav_before.c b/src/pokenav_before.c index b84b696cd..7693cba7d 100644 --- a/src/pokenav_before.c +++ b/src/pokenav_before.c @@ -3675,152 +3675,37 @@ void sub_80EFC3C(void) sub_80EFD3C(); } -#ifdef NONMATCHING // "var1 = gUnknown_083DFEC4->unkBC9A;" is the only thing that doesnt' match. bool8 sub_80EFC64(void) { u16 i; - u16 var1; + u8 var1; u16 var2; - if (gUnknown_083DFEC4->unkBC9A < 16) - { - var1 = gUnknown_083DFEC4->unkBC9A; - var2 = gUnknown_083DFEC4->unkBC9B; - for (i = 0; i < 2; i++) - { - if (gPokenavCityMaps[var1][i] != 0) - { - LZ77UnCompVram(gPokenavCityMaps[var1][i], gUnknown_083DFEC4->unkBC9C[var2]); - gUnknown_083DFEC4->unkCDCC[var1][i] = gUnknown_083DFEC4->unkBC9C[var2]; - var2++; - } - else - { - gUnknown_083DFEC4->unkCDCC[var1][i] = NULL; - } - } - - gUnknown_083DFEC4->unkBC9A++; - if (gUnknown_083DFEC4->unkBC9A < 16) - { - gUnknown_083DFEC4->unkBC9B = var2; - return TRUE; - } - } - - return FALSE; + if (gUnknown_083DFEC4->unkBC9A >= 16) + return FALSE; + + var1 = gUnknown_083DFEC4->unkBC9A; + var2 = gUnknown_083DFEC4->unkBC9B; + for (i = 0; i < 2; i++) + { + if (gPokenavCityMaps[var1][i] != 0) + { + LZ77UnCompVram(gPokenavCityMaps[var1][i], gUnknown_083DFEC4->unkBC9C[var2]); + gUnknown_083DFEC4->unkCDCC[var1][i] = gUnknown_083DFEC4->unkBC9C[var2]; + var2++; + } + else + { + gUnknown_083DFEC4->unkCDCC[var1][i] = NULL; + } + } + + if (++gUnknown_083DFEC4->unkBC9A >= 16) + return FALSE; + + gUnknown_083DFEC4->unkBC9B = var2; + return TRUE; } -#else -__attribute__((naked)) -bool8 sub_80EFC64(void) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r9\n\ - mov r6, r8\n\ - push {r6,r7}\n\ - sub sp, 0x8\n\ - ldr r4, _080EFCD0 @ =gUnknown_083DFEC4\n\ - ldr r2, [r4]\n\ - ldr r0, _080EFCD4 @ =0x0000bc9a\n\ - adds r1, r2, r0\n\ - ldrb r0, [r1]\n\ - cmp r0, 0xF\n\ - bhi _080EFD2C\n\ - ldrb r1, [r1]\n\ - mov r8, r1\n\ - ldr r1, _080EFCD8 @ =0x0000bc9b\n\ - adds r0, r2, r1\n\ - ldrb r7, [r0]\n\ - movs r2, 0\n\ - ldr r0, _080EFCDC @ =gPokenavCityMaps\n\ - mov r9, r0\n\ - adds r3, r4, 0\n\ -_080EFC8E:\n\ - lsls r0, r2, 2\n\ - mov r4, r8\n\ - lsls r1, r4, 3\n\ - adds r6, r0, r1\n\ - mov r1, r9\n\ - adds r0, r6, r1\n\ - ldr r1, [r0]\n\ - cmp r1, 0\n\ - beq _080EFCE8\n\ - movs r0, 0xC8\n\ - adds r5, r7, 0\n\ - muls r5, r0\n\ - ldr r4, _080EFCE0 @ =0x0000bc9c\n\ - adds r5, r4\n\ - ldr r4, [r3]\n\ - adds r5, r4, r5\n\ - adds r0, r1, 0\n\ - adds r1, r5, 0\n\ - str r2, [sp]\n\ - str r3, [sp, 0x4]\n\ - bl LZ77UnCompVram\n\ - ldr r0, _080EFCE4 @ =0x0000cdcc\n\ - adds r4, r0\n\ - adds r4, r6\n\ - str r5, [r4]\n\ - adds r0, r7, 0x1\n\ - lsls r0, 16\n\ - lsrs r7, r0, 16\n\ - ldr r2, [sp]\n\ - ldr r3, [sp, 0x4]\n\ - b _080EFCF2\n\ - .align 2, 0\n\ -_080EFCD0: .4byte gUnknown_083DFEC4\n\ -_080EFCD4: .4byte 0x0000bc9a\n\ -_080EFCD8: .4byte 0x0000bc9b\n\ -_080EFCDC: .4byte gPokenavCityMaps\n\ -_080EFCE0: .4byte 0x0000bc9c\n\ -_080EFCE4: .4byte 0x0000cdcc\n\ -_080EFCE8:\n\ - ldr r0, [r3]\n\ - ldr r4, _080EFD1C @ =0x0000cdcc\n\ - adds r0, r4\n\ - adds r0, r6\n\ - str r1, [r0]\n\ -_080EFCF2:\n\ - adds r0, r2, 0x1\n\ - lsls r0, 16\n\ - lsrs r2, r0, 16\n\ - cmp r2, 0x1\n\ - bls _080EFC8E\n\ - ldr r0, _080EFD20 @ =gUnknown_083DFEC4\n\ - ldr r2, [r0]\n\ - ldr r0, _080EFD24 @ =0x0000bc9a\n\ - adds r1, r2, r0\n\ - ldrb r0, [r1]\n\ - adds r0, 0x1\n\ - strb r0, [r1]\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0xF\n\ - bhi _080EFD2C\n\ - ldr r1, _080EFD28 @ =0x0000bc9b\n\ - adds r0, r2, r1\n\ - strb r7, [r0]\n\ - movs r0, 0x1\n\ - b _080EFD2E\n\ - .align 2, 0\n\ -_080EFD1C: .4byte 0x0000cdcc\n\ -_080EFD20: .4byte gUnknown_083DFEC4\n\ -_080EFD24: .4byte 0x0000bc9a\n\ -_080EFD28: .4byte 0x0000bc9b\n\ -_080EFD2C:\n\ - movs r0, 0\n\ -_080EFD2E:\n\ - add sp, 0x8\n\ - pop {r3,r4}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - pop {r4-r7}\n\ - pop {r1}\n\ - bx r1\n\ - .syntax divided\n"); -} -#endif // NONMATCHING void sub_80EFD3C(void) { |