diff options
author | Marcus Huderle <huderlem@gmail.com> | 2019-03-23 10:41:09 -0500 |
---|---|---|
committer | Marcus Huderle <huderlem@gmail.com> | 2019-03-23 10:41:09 -0500 |
commit | 511ff2f20f14a1e74109416a0b0d704c8c2692fc (patch) | |
tree | 3306202fcbee67c42de35ce2e04472d4ad493c02 /src | |
parent | a5ee2c14fda450ca67985805b8bc71e66dfcf622 (diff) |
Match sub_8166BEC and do some cleanup
Diffstat (limited to 'src')
-rw-r--r-- | src/use_pokeblock.c | 2768 |
1 files changed, 1295 insertions, 1473 deletions
diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index 59077b059..6c9400b37 100644 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c @@ -38,23 +38,27 @@ struct UsePokeblockSubStruct /*0x5C*/ u8 field_5c[5]; /*0x61*/ u8 field_61[5]; /*0x66*/ s16 field_66[5]; - /*0x70*/ u8 field_70; + /*0x70*/ u8 field_70; /*0x71*/ u8 field_71; - /*0x74*/ u8 (*unk74)(void); - /*0x78*/ u8 unk78; + /*0x74*/ u8 (*unk74)(void); + /*0x78*/ u8 unk78; }; struct UsePokeblockStruct { - /*0x0000*/ u8 field_0[0x7B0E]; - /*0x7B0E*/ u16 field_7B0E; - /*0x7B10*/ u8 field_7B10[0xC]; - /*0x7B1C*/ u8 field_7B1C[0x13C]; + /*0x0000*/ u8 field_0[0x7B06]; + /*0x7B06*/ u8 field_7B06[7]; + /*0x7B0E*/ u16 field_7B0E; + /*0x7B10*/ u8 field_7B10; + /*0x7B11*/ u8 field_7B11[0xB]; + /*0x7B1C*/ struct Sprite *field_7B1C[10]; + /*0x7B44*/ struct Sprite *field_7B44[0x45]; /*0x7C58*/ struct UnknownStruct_81D1ED4 field_7C58; /*0x7FB0*/ u8 unk7FB0[3]; /*0x7FB3*/ s8 unk7FB3; /*0x7FB4*/ u8 filler7FB4[0x1C]; /*0x7FD0*/ struct UsePokeblockSubStruct info; + /*0x804C*/ u8 filler804C[0x20]; }; extern u16 gKeyRepeatStartDelay; @@ -76,7 +80,6 @@ void sub_8167608(u8 arg0); void sub_8167BA0(u16 arg0, u8 copyToVramMode); void sub_8166634(void); void sub_8167CA0(bool8); -extern void sub_81D3520(u8*); void sub_8166BEC(void); void sub_8166D44(void); s8 sub_8166DE4(void); @@ -92,7 +95,6 @@ extern void sub_81D2074(void); void sub_81681F4(u8); void sub_8166E24(void); bool8 sub_8166EDC(void); -void sub_81D354C(u8*); void Pokeblock_BufferEnhancedStatText(u8 *dest, u8 statID, s16 a2); void Pokeblock_MenuWindowTextPrint(const u8 *message); void sub_8167184(struct Pokeblock *, struct Pokemon *); @@ -145,7 +147,7 @@ EWRAM_DATA struct UsePokeblockStruct *gUnknown_0203BCAC = NULL; // code void ChooseMonToGivePokeblock(struct Pokeblock *pokeblock, void (*callback)(void)) { - gUnknown_0203BCAC = AllocZeroed(0x806C); + gUnknown_0203BCAC = AllocZeroed(sizeof(*gUnknown_0203BCAC)); gUnknown_0203BC90 = &gUnknown_0203BCAC->info; gUnknown_0203BC90->pokeblock = pokeblock; gUnknown_0203BC90->callback = callback; @@ -155,7 +157,7 @@ void ChooseMonToGivePokeblock(struct Pokeblock *pokeblock, void (*callback)(void void CB2_ReturnAndChooseMonToGivePokeblock(void) { - gUnknown_0203BCAC = AllocZeroed(0x806C); + gUnknown_0203BCAC = AllocZeroed(sizeof(*gUnknown_0203BCAC)); gUnknown_0203BC90 = &gUnknown_0203BCAC->info; gUnknown_0203BC90->pokeblock = gUnknown_0203BC98; gUnknown_0203BC90->callback = gUnknown_0203BC94; @@ -214,88 +216,82 @@ void sub_8166380(void) { switch (gUnknown_0203BC90->field_50) { - case 0: - gUnknown_0203BCAC->field_0[0x7B10] = 0xFF; - sub_81D1ED4(&gUnknown_0203BCAC->field_7C58); - gUnknown_0203BC90->field_50++; - break; - case 1: - ResetSpriteData(); - FreeAllSpritePalettes(); - gUnknown_0203BC90->field_50++; - break; - case 2: - SetVBlankCallback(NULL); - CpuFill32(0, (void*)(VRAM), VRAM_SIZE); - gUnknown_0203BC90->field_50++; - break; - case 3: - ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_085DFCCC, ARRAY_COUNT(gUnknown_085DFCCC)); - InitWindows(gUnknown_085DFCDC); - DeactivateAllTextPrinters(); - LoadUserWindowBorderGfx(0, 0x97, 0xE0); - gUnknown_0203BC90->field_50++; - break; - case 4: - gUnknown_0203BC90->field_50++; - break; - case 5: - if (!sub_8168328()) - { - gUnknown_0203BC90->field_50++; - } - break; - case 6: - gKeyRepeatStartDelay = 20; - sub_8167420(); - gUnknown_0203BC90->field_50++; - break; - case 7: - if (!sub_8167930()) - { - gUnknown_0203BC90->field_50++; - } - break; - case 8: - sub_8167608(0); - sub_8167760(); - gUnknown_0203BC90->field_50++; - break; - case 9: - if (!sub_81D312C(&gUnknown_0203BCAC->field_0[0x7B0E])) - { - gUnknown_0203BC90->field_50++; - } - break; - case 10: + case 0: + gUnknown_0203BCAC->field_7B10 = 0xFF; + sub_81D1ED4(&gUnknown_0203BCAC->field_7C58); + gUnknown_0203BC90->field_50++; + break; + case 1: + ResetSpriteData(); + FreeAllSpritePalettes(); + gUnknown_0203BC90->field_50++; + break; + case 2: + SetVBlankCallback(NULL); + CpuFill32(0, (void*)(VRAM), VRAM_SIZE); + gUnknown_0203BC90->field_50++; + break; + case 3: + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, gUnknown_085DFCCC, ARRAY_COUNT(gUnknown_085DFCCC)); + InitWindows(gUnknown_085DFCDC); + DeactivateAllTextPrinters(); + LoadUserWindowBorderGfx(0, 0x97, 0xE0); + gUnknown_0203BC90->field_50++; + break; + case 4: + gUnknown_0203BC90->field_50++; + break; + case 5: + if (!sub_8168328()) gUnknown_0203BC90->field_50++; - break; - case 11: - sub_81D2754(gUnknown_0203BCAC->field_7C58.unk0[0], gUnknown_0203BCAC->field_7C58.unk14[0]); - sub_81D20AC(&gUnknown_0203BCAC->field_7C58); + break; + case 6: + gKeyRepeatStartDelay = 20; + sub_8167420(); + gUnknown_0203BC90->field_50++; + break; + case 7: + if (!sub_8167930()) gUnknown_0203BC90->field_50++; - break; - case 12: - if (!sub_81D20BC(&gUnknown_0203BCAC->field_7C58)) - { - sub_81D1F84(&gUnknown_0203BCAC->field_7C58, gUnknown_0203BCAC->field_7C58.unk14[0], gUnknown_0203BCAC->field_7C58.unk14[0]); - gUnknown_0203BC90->field_50++; - } - break; - case 13: - sub_81D2230(&gUnknown_0203BCAC->field_7C58); + break; + case 8: + sub_8167608(0); + sub_8167760(); + gUnknown_0203BC90->field_50++; + break; + case 9: + if (!sub_81D312C(&gUnknown_0203BCAC->field_7B0E)) gUnknown_0203BC90->field_50++; - break; - case 14: - PutWindowTilemap(0); - PutWindowTilemap(1); - sub_8167BA0(0, 1); + break; + case 10: + gUnknown_0203BC90->field_50++; + break; + case 11: + sub_81D2754(gUnknown_0203BCAC->field_7C58.unk0[0], gUnknown_0203BCAC->field_7C58.unk14[0]); + sub_81D20AC(&gUnknown_0203BCAC->field_7C58); + gUnknown_0203BC90->field_50++; + break; + case 12: + if (!sub_81D20BC(&gUnknown_0203BCAC->field_7C58)) + { + sub_81D1F84(&gUnknown_0203BCAC->field_7C58, gUnknown_0203BCAC->field_7C58.unk14[0], gUnknown_0203BCAC->field_7C58.unk14[0]); gUnknown_0203BC90->field_50++; - break; - case 15: - sub_816636C(sub_8166564); - break; + } + break; + case 13: + sub_81D2230(&gUnknown_0203BCAC->field_7C58); + gUnknown_0203BC90->field_50++; + break; + case 14: + PutWindowTilemap(0); + PutWindowTilemap(1); + sub_8167BA0(0, 1); + gUnknown_0203BC90->field_50++; + break; + case 15: + sub_816636C(sub_8166564); + break; } } @@ -303,113 +299,108 @@ void sub_8166564(void) { switch (gUnknown_0203BC90->field_50) { - case 0: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); - SetVBlankCallback(sub_8166340); - ShowBg(0); - ShowBg(1); - ShowBg(3); - ShowBg(2); - gUnknown_0203BC90->field_50++; - break; - case 1: - if (!gPaletteFade.active) + case 0: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + SetVBlankCallback(sub_8166340); + ShowBg(0); + ShowBg(1); + ShowBg(3); + ShowBg(2); + gUnknown_0203BC90->field_50++; + break; + case 1: + if (!gPaletteFade.active) + { + sub_81D3464(gUnknown_0203BCAC->field_7B1C); + if (gUnknown_0203BCAC->info.field_71 != gUnknown_0203BCAC->info.field_70 - 1) { - sub_81D3464(&gUnknown_0203BCAC->field_7B1C); - if (gUnknown_0203BCAC->info.field_71 != gUnknown_0203BCAC->info.field_70 - 1) - { - u8 var0 = gUnknown_0203BCAC->unk7FB0[gUnknown_0203BCAC->unk7FB3]; - sub_81D3480(&gUnknown_0203BCAC->field_7B1C, gUnknown_0203BCAC->field_7B10[0], var0); - } - - sub_816636C(sub_8166634); + u8 var0 = gUnknown_0203BCAC->unk7FB0[gUnknown_0203BCAC->unk7FB3]; + sub_81D3480(gUnknown_0203BCAC->field_7B1C, gUnknown_0203BCAC->field_7B10, var0); } - break; + + sub_816636C(sub_8166634); + } + break; } } void sub_8166634(void) -{ - u8 var; +{ + u8 var; switch (gUnknown_0203BC90->field_50) { - case 0: - if (gMain.heldKeys & DPAD_UP) - { - PlaySE(SE_SELECT); - sub_8167CA0(TRUE); - sub_81D3520(&gUnknown_0203BCAC->field_0[0x7B1C]); - gUnknown_0203BC90->field_50 = 1; - } - else if (gMain.heldKeys & DPAD_DOWN) - { - PlaySE(SE_SELECT); - sub_8167CA0(FALSE); - sub_81D3520(&gUnknown_0203BCAC->field_0[0x7B1C]); - gUnknown_0203BC90->field_50 = 1; - } - else if (gMain.newKeys & B_BUTTON) - { - PlaySE(SE_SELECT); + case 0: + if (gMain.heldKeys & DPAD_UP) + { + PlaySE(SE_SELECT); + sub_8167CA0(TRUE); + sub_81D3520(gUnknown_0203BCAC->field_7B1C); + gUnknown_0203BC90->field_50 = 1; + } + else if (gMain.heldKeys & DPAD_DOWN) + { + PlaySE(SE_SELECT); + sub_8167CA0(FALSE); + sub_81D3520(gUnknown_0203BCAC->field_7B1C); + gUnknown_0203BC90->field_50 = 1; + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + gUnknown_0203BC90->field_50 = 3; + } + else if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + if (gUnknown_0203BCAC->info.field_71 == gUnknown_0203BCAC->info.field_70 - 1) gUnknown_0203BC90->field_50 = 3; - } - else if (gMain.newKeys & A_BUTTON) - { - PlaySE(SE_SELECT); - if (gUnknown_0203BCAC->info.field_71 == gUnknown_0203BCAC->info.field_70 - 1) - { - gUnknown_0203BC90->field_50 = 3; - } - else - { - gUnknown_0203BC90->field_50 = 5; - } - } - - break; + else + gUnknown_0203BC90->field_50 = 5; + } + break; + case 1: + var = gUnknown_0203BCAC->info.unk74(); + if(!var) + gUnknown_0203BC90->field_50 = var; + break; + case 2: + break; + case 3: + sub_816636C(sub_8166BEC); + break; + case 4: + break; + case 5: + sub_8166D44(); + gUnknown_0203BC90->field_50++; + break; + case 6: + switch (sub_8166DE4()) + { case 1: - var = gUnknown_0203BCAC->info.unk74(); - if(!var) - gUnknown_0203BC90->field_50 = var; - break; - case 2: + case -1: + gUnknown_0203BC90->field_50 = 0; break; - case 3: - sub_816636C(sub_8166BEC); - break; - case 4: - break; - case 5: - sub_8166D44(); - gUnknown_0203BC90->field_50++; - break; - case 6: - switch (sub_8166DE4()) + case 0: + if (sub_8167268()) { - case 1: - case -1: - gUnknown_0203BC90->field_50 = 0; - break; - case 0: - if (sub_8167268()) - { - sub_8166F50(); - gUnknown_0203BC90->field_50 = 7; - } - else - { - sub_816636C(sub_816681C); - } - break; + sub_8166F50(); + gUnknown_0203BC90->field_50 = 7; } - break; - case 7: - if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + else { - sub_8166F94(); - gUnknown_0203BC90->field_50 = 0; + sub_816636C(sub_816681C); } break; + } + break; + case 7: + if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + { + sub_8166F94(); + gUnknown_0203BC90->field_50 = 0; + } + break; } } @@ -417,82 +408,80 @@ void sub_816681C(void) { switch (gUnknown_0203BC90->field_50) { - case 0: - gPokeblockMonId = sub_81672A4(gUnknown_0203BCAC->info.field_71); - gUnknown_0203BC94 = gUnknown_0203BC90->callback; - gUnknown_0203BC98 = gUnknown_0203BC90->pokeblock; - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); - gUnknown_0203BC90->field_50++; - break; - case 1: - if (!gPaletteFade.active) - { - SetVBlankCallback(NULL); - Free(gUnknown_0203BCA0); - gUnknown_0203BCA0 = NULL; - Free(gUnknown_0203BCA4); - gUnknown_0203BCA4 = NULL; - Free(gUnknown_0203BCA8); - gUnknown_0203BCA8 = NULL; - Free(gUnknown_0203BCAC); - gUnknown_0203BCAC = NULL; - FreeAllWindowBuffers(); - gMain.savedCallback = CB2_ReturnAndChooseMonToGivePokeblock; - CB2_PreparePokeblockFeedScene(); - } - break; + case 0: + gPokeblockMonId = sub_81672A4(gUnknown_0203BCAC->info.field_71); + gUnknown_0203BC94 = gUnknown_0203BC90->callback; + gUnknown_0203BC98 = gUnknown_0203BC90->pokeblock; + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + gUnknown_0203BC90->field_50++; + break; + case 1: + if (!gPaletteFade.active) + { + SetVBlankCallback(NULL); + Free(gUnknown_0203BCA0); + gUnknown_0203BCA0 = NULL; + Free(gUnknown_0203BCA4); + gUnknown_0203BCA4 = NULL; + Free(gUnknown_0203BCA8); + gUnknown_0203BCA8 = NULL; + Free(gUnknown_0203BCAC); + gUnknown_0203BCAC = NULL; + FreeAllWindowBuffers(); + gMain.savedCallback = CB2_ReturnAndChooseMonToGivePokeblock; + CB2_PreparePokeblockFeedScene(); + } + break; } } void sub_81668F8(void) { + u16 var; switch (gUnknown_0203BC90->field_50) { - u16 var; - case 0: - if (gUnknown_0203BCAC->info.field_71 != gPokeblockMonId) - { - sub_8167CA0(gUnknown_0203BC90->field_56); - gUnknown_0203BC90->field_50++; - } - else - { - gUnknown_0203BC90->field_50 = 3; - } - break; - case 1: - var = gUnknown_0203BCAC->info.unk74(); - if (!var) - { - gUnknown_0203BC90->field_50 = var; - } - break; - case 2: - break; - case 3: - BlendPalettes(0xFFFFFFFF, 16, RGB(0, 0, 0)); - gUnknown_0203BC90->field_50++; - break; - case 4: - ShowBg(0); - ShowBg(1); - ShowBg(3); - ShowBg(2); - gUnknown_0203BC90->field_50++; - break; - case 5: - SetVBlankCallback(sub_8166340); - BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0)); + case 0: + if (gUnknown_0203BCAC->info.field_71 != gPokeblockMonId) + { + sub_8167CA0(gUnknown_0203BC90->field_56); gUnknown_0203BC90->field_50++; - break; - case 6: - if (!gPaletteFade.active) - { - sub_81D3464(&gUnknown_0203BCAC->field_0[0x7B1C]); - sub_816636C(sub_8166A34); - SetMainCallback2(sub_816631C); - } - break; + } + else + { + gUnknown_0203BC90->field_50 = 3; + } + break; + case 1: + var = gUnknown_0203BCAC->info.unk74(); + if (!var) + gUnknown_0203BC90->field_50 = var; + break; + case 2: + break; + case 3: + BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK); + gUnknown_0203BC90->field_50++; + break; + case 4: + ShowBg(0); + ShowBg(1); + ShowBg(3); + ShowBg(2); + gUnknown_0203BC90->field_50++; + break; + case 5: + SetVBlankCallback(sub_8166340); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + gUnknown_0203BC90->field_50++; + break; + case 6: + if (!gPaletteFade.active) + { + sub_81D3464(gUnknown_0203BCAC->field_7B1C); + sub_816636C(sub_8166A34); + SetMainCallback2(sub_816631C); + } + break; } } @@ -502,11 +491,11 @@ void sub_8166A34(void) switch (gUnknown_0203BC90->field_50) { u8 var; - case 0: - gUnknown_0203BC90->field_5c[0] = (u8) &gPlayerParty; + case 0: + gUnknown_0203BC90->field_5c[0] = (u8) &gPlayerParty; gUnknown_0203BCAC->info.field_71 = (u32) &gUnknown_0203BCAC->field_0[gUnknown_0203BCAC->info.field_71]; - gUnknown_0203BC90->field_5c[0] = &gPlayerParty - sub_81D3520(&gUnknown_0203BCAC->field_0[0x7B1C]); + gUnknown_0203BC90->field_5c[0] = &gPlayerParty + sub_81D3520(gUnknown_0203BCAC->field_7B1C); /*gUnknown_0203BCAC->pokemon = &gPlayerParty[gUnknown_083DFEC4->unk893c[gUnknown_0203BCAC->field_0[0x7B1C]].partyIdx]; move_anim_execute();*/ gUnknown_0203BC90->field_50++; @@ -523,19 +512,19 @@ void sub_8166A34(void) gUnknown_0203BC90->field_50++; break; case 3: - var = gUnknown_0203BCAC->field_7C58[0]; - sub_81D2074(); + var = gUnknown_0203BCAC->field_7C58[0]; + sub_81D2074(); if (!var) { sub_81681F4(sub_81672A4(gUnknown_0203BCAC->info.field_71)); /*sub_80F3D00(); gUnknown_0203BCAC->unk52 = 0;*/ - if(gUnknown_0203BCAC->info.field_71 == gUnknown_0203BCAC->info.field_70 - 1) - { - gUnknown_0203BC90->field_52 = var; - } - - sub_81D3480(&gUnknown_0203BCAC->field_7C58[0x35B], gUnknown_0203BCAC->field_7C58[0x35B + gUnknown_0203BCAC->field_7C58[0x358]]); + if(gUnknown_0203BCAC->info.field_71 == gUnknown_0203BCAC->info.field_70 - 1) + { + gUnknown_0203BC90->field_52 = var; + } + + sub_81D3480(&gUnknown_0203BCAC->field_7C58[0x35B], gUnknown_0203BCAC->field_7C58[0x35B + gUnknown_0203BCAC->field_7C58[0x358]]); } break; @@ -559,412 +548,246 @@ void sub_8166A34(void) NAKED void sub_8166A34(void) { - asm(".syntax unified\n\ - push {r4-r6,lr}\n\ - ldr r1, =gUnknown_0203BC90\n\ - ldr r0, [r1]\n\ - adds r0, 0x50\n\ - ldrb r0, [r0]\n\ - adds r5, r1, 0\n\ - cmp r0, 0x5\n\ - bls _08166A46\n\ - b _08166BDA\n\ + asm(".syntax unified\n\ + push {r4-r6,lr}\n\ + ldr r1, =gUnknown_0203BC90\n\ + ldr r0, [r1]\n\ + adds r0, 0x50\n\ + ldrb r0, [r0]\n\ + adds r5, r1, 0\n\ + cmp r0, 0x5\n\ + bls _08166A46\n\ + b _08166BDA\n\ _08166A46:\n\ - lsls r0, 2\n\ - ldr r1, =_08166A58\n\ - adds r0, r1\n\ - ldr r0, [r0]\n\ - mov pc, r0\n\ - .pool\n\ - .align 2, 0\n\ + lsls r0, 2\n\ + ldr r1, =_08166A58\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + mov pc, r0\n\ + .pool\n\ + .align 2, 0\n\ _08166A58:\n\ - .4byte _08166A70\n\ - .4byte _08166AAC\n\ - .4byte _08166AC0\n\ - .4byte _08166B14\n\ - .4byte _08166B94\n\ - .4byte _08166BB6\n\ + .4byte _08166A70\n\ + .4byte _08166AAC\n\ + .4byte _08166AC0\n\ + .4byte _08166B14\n\ + .4byte _08166B94\n\ + .4byte _08166BB6\n\ _08166A70:\n\ - ldr r4, [r5]\n\ - ldr r3, =gPlayerParty\n\ - str r3, [r4, 0xC]\n\ - ldr r0, =gUnknown_0203BCAC\n\ - ldr r0, [r0]\n\ - ldr r2, =0x00008041\n\ - adds r1, r0, r2\n\ - ldrb r1, [r1]\n\ - lsls r1, 2\n\ - adds r1, r0, r1\n\ - subs r2, 0x88\n\ - adds r1, r2\n\ - ldrb r2, [r1]\n\ - movs r1, 0x64\n\ - muls r1, r2\n\ - adds r1, r3\n\ - str r1, [r4, 0xC]\n\ - ldr r3, =0x00007b1c\n\ - adds r0, r3\n\ - bl sub_81D3520\n\ - b _08166BAA\n\ - .pool\n\ + ldr r4, [r5]\n\ + ldr r3, =gPlayerParty\n\ + str r3, [r4, 0xC]\n\ + ldr r0, =gUnknown_0203BCAC\n\ + ldr r0, [r0]\n\ + ldr r2, =0x00008041\n\ + adds r1, r0, r2\n\ + ldrb r1, [r1]\n\ + lsls r1, 2\n\ + adds r1, r0, r1\n\ + subs r2, 0x88\n\ + adds r1, r2\n\ + ldrb r2, [r1]\n\ + movs r1, 0x64\n\ + muls r1, r2\n\ + adds r1, r3\n\ + str r1, [r4, 0xC]\n\ + ldr r3, =0x00007b1c\n\ + adds r0, r3\n\ + bl sub_81D3520\n\ + b _08166BAA\n\ + .pool\n\ _08166AAC:\n\ - ldr r0, =gMain\n\ - ldrh r1, [r0, 0x2E]\n\ - movs r0, 0x3\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _08166ABA\n\ - b _08166BDA\n\ + ldr r0, =gMain\n\ + ldrh r1, [r0, 0x2E]\n\ + movs r0, 0x3\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _08166ABA\n\ + b _08166BDA\n\ _08166ABA:\n\ - b _08166BAA\n\ - .pool\n\ + b _08166BAA\n\ + .pool\n\ _08166AC0:\n\ - bl sub_8167104\n\ - ldr r6, =gUnknown_0203BC90\n\ - ldr r0, [r6]\n\ - adds r0, 0x5C\n\ - ldr r4, =gUnknown_0203BCAC\n\ - ldr r1, [r4]\n\ - ldr r5, =0x00007ca8\n\ - adds r1, r5\n\ - bl sub_81D2754\n\ - ldr r2, [r4]\n\ - ldr r4, =0x00007c58\n\ - adds r0, r2, r4\n\ - ldr r3, =0x00007fb3\n\ - adds r1, r2, r3\n\ - movs r3, 0\n\ - ldrsb r3, [r1, r3]\n\ - lsls r1, r3, 2\n\ - adds r1, r3\n\ - lsls r1, 2\n\ - adds r4, 0x14\n\ - adds r1, r4\n\ - adds r1, r2, r1\n\ - adds r2, r5\n\ - bl sub_81D1F84\n\ - bl sub_8167338\n\ - ldr r1, [r6]\n\ - b _08166BAC\n\ - .pool\n\ + bl sub_8167104\n\ + ldr r6, =gUnknown_0203BC90\n\ + ldr r0, [r6]\n\ + adds r0, 0x5C\n\ + ldr r4, =gUnknown_0203BCAC\n\ + ldr r1, [r4]\n\ + ldr r5, =0x00007ca8\n\ + adds r1, r5\n\ + bl sub_81D2754\n\ + ldr r2, [r4]\n\ + ldr r4, =0x00007c58\n\ + adds r0, r2, r4\n\ + ldr r3, =0x00007fb3\n\ + adds r1, r2, r3\n\ + movs r3, 0\n\ + ldrsb r3, [r1, r3]\n\ + lsls r1, r3, 2\n\ + adds r1, r3\n\ + lsls r1, 2\n\ + adds r4, 0x14\n\ + adds r1, r4\n\ + adds r1, r2, r1\n\ + adds r2, r5\n\ + bl sub_81D1F84\n\ + bl sub_8167338\n\ + ldr r1, [r6]\n\ + b _08166BAC\n\ + .pool\n\ _08166B14:\n\ - ldr r5, =gUnknown_0203BCAC\n\ - ldr r0, [r5]\n\ - ldr r1, =0x00007c58\n\ - adds r0, r1\n\ - bl sub_81D2074\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ - cmp r6, 0\n\ - bne _08166BDA\n\ - ldr r0, [r5]\n\ - ldr r4, =0x00008041\n\ - adds r0, r4\n\ - ldrb r0, [r0]\n\ - bl sub_81672A4\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - bl sub_81681F4\n\ - ldr r3, [r5]\n\ - adds r4, r3, r4\n\ - ldrb r1, [r4]\n\ - ldr r2, =0x00008040\n\ - adds r0, r3, r2\n\ - ldrb r0, [r0]\n\ - subs r0, 0x1\n\ - cmp r1, r0\n\ - beq _08166B6C\n\ - ldr r4, =0x00007fb3\n\ - adds r0, r3, r4\n\ - movs r1, 0\n\ - ldrsb r1, [r0, r1]\n\ - subs r2, 0x90\n\ - adds r0, r3, r2\n\ - adds r0, r1\n\ - ldrb r2, [r0]\n\ - ldr r4, =0x00007b1c\n\ - adds r0, r3, r4\n\ - subs r4, 0xC\n\ - adds r1, r3, r4\n\ - ldrb r1, [r1]\n\ - bl sub_81D3480\n\ + ldr r5, =gUnknown_0203BCAC\n\ + ldr r0, [r5]\n\ + ldr r1, =0x00007c58\n\ + adds r0, r1\n\ + bl sub_81D2074\n\ + lsls r0, 24\n\ + lsrs r6, r0, 24\n\ + cmp r6, 0\n\ + bne _08166BDA\n\ + ldr r0, [r5]\n\ + ldr r4, =0x00008041\n\ + adds r0, r4\n\ + ldrb r0, [r0]\n\ + bl sub_81672A4\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + bl sub_81681F4\n\ + ldr r3, [r5]\n\ + adds r4, r3, r4\n\ + ldrb r1, [r4]\n\ + ldr r2, =0x00008040\n\ + adds r0, r3, r2\n\ + ldrb r0, [r0]\n\ + subs r0, 0x1\n\ + cmp r1, r0\n\ + beq _08166B6C\n\ + ldr r4, =0x00007fb3\n\ + adds r0, r3, r4\n\ + movs r1, 0\n\ + ldrsb r1, [r0, r1]\n\ + subs r2, 0x90\n\ + adds r0, r3, r2\n\ + adds r0, r1\n\ + ldrb r2, [r0]\n\ + ldr r4, =0x00007b1c\n\ + adds r0, r3, r4\n\ + subs r4, 0xC\n\ + adds r1, r3, r4\n\ + ldrb r1, [r1]\n\ + bl sub_81D3480\n\ _08166B6C:\n\ - ldr r1, =gUnknown_0203BC90\n\ - ldr r0, [r1]\n\ - adds r0, 0x52\n\ - strb r6, [r0]\n\ - ldr r1, [r1]\n\ - b _08166BAC\n\ - .pool\n\ + ldr r1, =gUnknown_0203BC90\n\ + ldr r0, [r1]\n\ + adds r0, 0x52\n\ + strb r6, [r0]\n\ + ldr r1, [r1]\n\ + b _08166BAC\n\ + .pool\n\ _08166B94:\n\ - ldr r1, [r5]\n\ - adds r1, 0x52\n\ - ldrb r0, [r1]\n\ - adds r0, 0x1\n\ - strb r0, [r1]\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0x10\n\ - bls _08166BDA\n\ - bl sub_8166E24\n\ + ldr r1, [r5]\n\ + adds r1, 0x52\n\ + ldrb r0, [r1]\n\ + adds r0, 0x1\n\ + strb r0, [r1]\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r0, 0x10\n\ + bls _08166BDA\n\ + bl sub_8166E24\n\ _08166BAA:\n\ - ldr r1, [r5]\n\ + ldr r1, [r5]\n\ _08166BAC:\n\ - adds r1, 0x50\n\ - ldrb r0, [r1]\n\ - adds r0, 0x1\n\ - strb r0, [r1]\n\ - b _08166BDA\n\ + adds r1, 0x50\n\ + ldrb r0, [r1]\n\ + adds r0, 0x1\n\ + strb r0, [r1]\n\ + b _08166BDA\n\ _08166BB6:\n\ - ldr r0, =gMain\n\ - ldrh r1, [r0, 0x2E]\n\ - movs r0, 0x3\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08166BDA\n\ - bl sub_8166EDC\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - bne _08166BDA\n\ - ldr r0, =gSpecialVar_ItemId\n\ - ldrb r0, [r0]\n\ - bl TryClearPokeblock\n\ - ldr r0, =sub_8166BEC\n\ - bl sub_816636C\n\ + ldr r0, =gMain\n\ + ldrh r1, [r0, 0x2E]\n\ + movs r0, 0x3\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _08166BDA\n\ + bl sub_8166EDC\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + bne _08166BDA\n\ + ldr r0, =gSpecialVar_ItemId\n\ + ldrb r0, [r0]\n\ + bl TryClearPokeblock\n\ + ldr r0, =sub_8166BEC\n\ + bl sub_816636C\n\ _08166BDA:\n\ - pop {r4-r6}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided\n"); + pop {r4-r6}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided\n"); } #endif -#ifdef NONMATCHING void sub_8166BEC(void) { - u8 i; - u8 var; + u8 i; + u8 var; switch (gUnknown_0203BC90->field_50) - { - case 0: - BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); - gUnknown_0203BC90->field_50++; - break; - case 1: - if (!gPaletteFade.active) - { - gUnknown_0203BC90->field_50 = 2; - } - break; - case 2: - gScanlineEffect.state = 3; - ScanlineEffect_InitHBlankDmaTransfer(); - gUnknown_0203BC90->field_50++; - break; - case 3: - SetMainCallback2(gUnknown_0203BC90->callback); - sub_81D354C(&gUnknown_0203BCAC->field_0[0x7B1C]); - for(i = 0; i < 7; i++) - { - DestroySprite(&gSprites[gUnknown_0203BCAC->field_0[0x7B06 + i]]); - } - - FreeSpriteTilesByTag(0); - FreeSpriteTilesByTag(1); - FreeSpriteTilesByTag(0); - FreeSpriteTilesByTag(1); - - for(i = 0; i < 2; i++) - { - DestroySprite(&gUnknown_0203BCAC->sprite7B44[i*4]); - } - - if(gUnknown_0203BCAC->field_0[0x7B10] != 255) - { - DestroySprite(&gSprites[gUnknown_0203BCAC->field_0[0x7B10]]); - return; - - } - - SetVBlankCallback(NULL); - Free(gUnknown_0203BCA0); - gUnknown_0203BCA0 = NULL; - Free(gUnknown_0203BCA4); - gUnknown_0203BCA0 = NULL; - Free(gUnknown_0203BCA8); - gUnknown_0203BCA8 = NULL; - Free(gUnknown_0203BCAC); - gUnknown_0203BCAC = NULL; - FreeAllWindowBuffers(); - break; + { + case 0: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + gUnknown_0203BC90->field_50++; + break; + case 1: + if (!gPaletteFade.active) + gUnknown_0203BC90->field_50 = 2; + break; + case 2: + gScanlineEffect.state = 3; + ScanlineEffect_InitHBlankDmaTransfer(); + gUnknown_0203BC90->field_50++; + break; + case 3: + SetMainCallback2(gUnknown_0203BC90->callback); + sub_81D354C(gUnknown_0203BCAC->field_7B1C); + for (i = 0; i < 7; i++) + DestroySprite(&gSprites[gUnknown_0203BCAC->field_7B06[i]]); + + FreeSpriteTilesByTag(0); + FreeSpriteTilesByTag(1); + FreeSpritePaletteByTag(0); + FreeSpritePaletteByTag(1); + + for (i = 0; i < 2; i++) + DestroySprite(gUnknown_0203BCAC->field_7B44[i]); + + if (gUnknown_0203BCAC->field_7B10 != 0xFF) + DestroySprite(&gSprites[gUnknown_0203BCAC->field_7B10]); + + SetVBlankCallback(NULL); + FREE_AND_SET_NULL(gUnknown_0203BCA0); + FREE_AND_SET_NULL(gUnknown_0203BCA4); + FREE_AND_SET_NULL(gUnknown_0203BCA8); + FREE_AND_SET_NULL(gUnknown_0203BCAC); + FreeAllWindowBuffers(); + break; } } -#else -NAKED -void sub_8166BEC(void) -{ - asm(".syntax unified\n\ - push {r4-r6,lr}\n\ - sub sp, 0x4\n\ - ldr r4, =gUnknown_0203BC90\n\ - ldr r0, [r4]\n\ - adds r2, r0, 0\n\ - adds r2, 0x50\n\ - ldrb r1, [r2]\n\ - cmp r1, 0x1\n\ - beq _08166C28\n\ - cmp r1, 0x1\n\ - bgt _08166C0C\n\ - cmp r1, 0\n\ - beq _08166C16\n\ - b _08166D18\n\ - .pool\n\ -_08166C0C:\n\ - cmp r1, 0x2\n\ - beq _08166C40\n\ - cmp r1, 0x3\n\ - beq _08166C5C\n\ - b _08166D18\n\ -_08166C16:\n\ - movs r0, 0x1\n\ - negs r0, r0\n\ - str r1, [sp]\n\ - movs r1, 0\n\ - movs r2, 0\n\ - movs r3, 0x10\n\ - bl BeginNormalPaletteFade\n\ - b _08166C4A\n\ -_08166C28:\n\ - ldr r0, =gPaletteFade\n\ - ldrb r1, [r0, 0x7]\n\ - movs r0, 0x80\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _08166D18\n\ - movs r0, 0x2\n\ - strb r0, [r2]\n\ - b _08166D18\n\ - .pool\n\ -_08166C40:\n\ - ldr r1, =gScanlineEffect\n\ - movs r0, 0x3\n\ - strb r0, [r1, 0x15]\n\ - bl ScanlineEffect_InitHBlankDmaTransfer\n\ -_08166C4A:\n\ - ldr r1, [r4]\n\ - adds r1, 0x50\n\ - ldrb r0, [r1]\n\ - adds r0, 0x1\n\ - strb r0, [r1]\n\ - b _08166D18\n\ - .pool\n\ -_08166C5C:\n\ - ldr r0, [r0, 0x4]\n\ - bl SetMainCallback2\n\ - ldr r0, =gUnknown_0203BCAC\n\ - ldr r0, [r0]\n\ - ldr r1, =0x00007b1c\n\ - adds r0, r1\n\ - bl sub_81D354C\n\ - movs r4, 0\n\ -_08166C70:\n\ - ldr r5, =gUnknown_0203BCAC\n\ - ldr r0, [r5]\n\ - ldr r2, =0x00007b06\n\ - adds r0, r2\n\ - adds r0, r4\n\ - ldrb r1, [r0]\n\ - lsls r0, r1, 4\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - ldr r1, =gSprites\n\ - adds r0, r1\n\ - bl DestroySprite\n\ - adds r0, r4, 0x1\n\ - lsls r0, 24\n\ - lsrs r4, r0, 24\n\ - cmp r4, 0x6\n\ - bls _08166C70\n\ - movs r0, 0\n\ - bl FreeSpriteTilesByTag\n\ - movs r0, 0x1\n\ - bl FreeSpriteTilesByTag\n\ - movs r0, 0\n\ - bl FreeSpritePaletteByTag\n\ - movs r0, 0x1\n\ - bl FreeSpritePaletteByTag\n\ - movs r4, 0\n\ -_08166CAE:\n\ - ldr r0, [r5]\n\ - lsls r1, r4, 2\n\ - ldr r2, =0x00007b44\n\ - adds r0, r2\n\ - adds r0, r1\n\ - ldr r0, [r0]\n\ - bl DestroySprite\n\ - adds r0, r4, 0x1\n\ - lsls r0, 24\n\ - lsrs r4, r0, 24\n\ - cmp r4, 0x1\n\ - bls _08166CAE\n\ - ldr r6, =gUnknown_0203BCAC\n\ - ldr r0, [r6]\n\ - ldr r2, =0x00007b10\n\ - adds r1, r0, r2\n\ - ldrb r0, [r1]\n\ - cmp r0, 0xFF\n\ - beq _08166CE6\n\ - adds r1, r0, 0\n\ - lsls r0, r1, 4\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - ldr r1, =gSprites\n\ - adds r0, r1\n\ - bl DestroySprite\n\ -_08166CE6:\n\ - movs r0, 0\n\ - bl SetVBlankCallback\n\ - ldr r4, =gUnknown_0203BCA0\n\ - ldr r0, [r4]\n\ - bl Free\n\ - movs r5, 0\n\ - str r5, [r4]\n\ - ldr r4, =gUnknown_0203BCA4\n\ - ldr r0, [r4]\n\ - bl Free\n\ - str r5, [r4]\n\ - ldr r4, =gUnknown_0203BCA8\n\ - ldr r0, [r4]\n\ - bl Free\n\ - str r5, [r4]\n\ - ldr r0, [r6]\n\ - bl Free\n\ - str r5, [r6]\n\ - bl FreeAllWindowBuffers\n\ -_08166D18:\n\ - add sp, 0x4\n\ - pop {r4-r6}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided\n"); -} -#endif void sub_8166D44(void) { - u8 stringBuffer[0x40]; + u8 stringBuffer[0x40]; GetMonData(&gPlayerParty[sub_81672A4(gUnknown_0203BCAC->info.field_71)], MON_DATA_NICKNAME, stringBuffer); StringGetEnd10(stringBuffer); StringAppend(stringBuffer, gText_GetsAPokeBlockQuestion); - StringCopy(gStringVar4, stringBuffer); - FillWindowPixelBuffer(2, 17); - sub_8098858(2, 151, 14); - AddTextPrinterParameterized(2, 1, gStringVar4, 0, 1, 0, NULL); - PutWindowTilemap(2); - CopyWindowToVram(2, 3); - CreateYesNoMenu(sUsePokeblockYesNoWinTemplate, 151, 14, 0); + StringCopy(gStringVar4, stringBuffer); + FillWindowPixelBuffer(2, 17); + sub_8098858(2, 151, 14); + AddTextPrinterParameterized(2, 1, gStringVar4, 0, 1, 0, NULL); + PutWindowTilemap(2); + CopyWindowToVram(2, 3); + CreateYesNoMenu(sUsePokeblockYesNoWinTemplate, 151, 14, 0); } s8 sub_8166DE4(void) @@ -972,44 +795,43 @@ s8 sub_8166DE4(void) s8 retval = Menu_ProcessInputNoWrapClearOnChoose(); switch(retval) { - case 0: - break; - case -1: - case 1: - PlaySE(SE_SELECT); - rbox_fill_rectangle(2); - ClearWindowTilemap(2); - break; - + case 0: + break; + case -1: + case 1: + PlaySE(SE_SELECT); + rbox_fill_rectangle(2); + ClearWindowTilemap(2); + break; } return retval; } void sub_8166E24(void) { - sub_8098858(2, 151, 14); - FillWindowPixelBuffer(2, 17); + sub_8098858(2, 151, 14); + FillWindowPixelBuffer(2, 17); for (gUnknown_0203BC90->field_53 = 0; gUnknown_0203BC90->field_53 < 5 && gUnknown_0203BC90->field_61[gUnknown_0203BC90->field_53] == 0; gUnknown_0203BC90->field_53++); - - if (gUnknown_0203BC90->field_53 < 5) - { - Pokeblock_BufferEnhancedStatText(gStringVar4, gUnknown_0203BC90->field_53, gUnknown_0203BC90->field_61[gUnknown_0203BC90->field_53]); - } - else - { - Pokeblock_BufferEnhancedStatText(gStringVar4, gUnknown_0203BC90->field_53, 0); - } - - Pokeblock_MenuWindowTextPrint(gStringVar4); - PutWindowTilemap(2); - CopyWindowToVram(2, 3); + + if (gUnknown_0203BC90->field_53 < 5) + { + Pokeblock_BufferEnhancedStatText(gStringVar4, gUnknown_0203BC90->field_53, gUnknown_0203BC90->field_61[gUnknown_0203BC90->field_53]); + } + else + { + Pokeblock_BufferEnhancedStatText(gStringVar4, gUnknown_0203BC90->field_53, 0); + } + + Pokeblock_MenuWindowTextPrint(gStringVar4); + PutWindowTilemap(2); + CopyWindowToVram(2, 3); } bool8 sub_8166EDC(void) { - FillWindowPixelBuffer(2, 17); - + FillWindowPixelBuffer(2, 17); + while (1) { gUnknown_0203BC90->field_53++; @@ -1024,33 +846,33 @@ bool8 sub_8166EDC(void) return FALSE; } } - + Pokeblock_BufferEnhancedStatText(gStringVar4, gUnknown_0203BC90->field_53, gUnknown_0203BC90->field_61[gUnknown_0203BC90->field_53]); Pokeblock_MenuWindowTextPrint(gStringVar4); - CopyWindowToVram(2, 2); + CopyWindowToVram(2, 2); - return TRUE; + return TRUE; } void sub_8166F50(void) { - FillWindowPixelBuffer(2, 17); - sub_8098858(2, 151, 14); - AddTextPrinterParameterized(2, 1, gText_WontEatAnymore, 0, 1, 0, NULL); - PutWindowTilemap(2); - CopyWindowToVram(2, 3); + FillWindowPixelBuffer(2, 17); + sub_8098858(2, 151, 14); + AddTextPrinterParameterized(2, 1, gText_WontEatAnymore, 0, 1, 0, NULL); + PutWindowTilemap(2); + CopyWindowToVram(2, 3); } void sub_8166F94(void) { - rbox_fill_rectangle(2); - ClearWindowTilemap(2); - CopyWindowToVram(2, 3); + rbox_fill_rectangle(2); + ClearWindowTilemap(2); + CopyWindowToVram(2, 3); } void Pokeblock_MenuWindowTextPrint(const u8 *message) { - AddTextPrinterParameterized(2, 1, gStringVar4, 0, 1, 0, NULL); + AddTextPrinterParameterized(2, 1, gStringVar4, 0, 1, 0, NULL); } #ifdef NONMATCHING @@ -1058,59 +880,59 @@ void Pokeblock_BufferEnhancedStatText(u8 *dest, u8 statID, s16 a2) { if (a2 != 0) { - if(a2 > 0) - { - statID = 0; - } + if(a2 > 0) + { + statID = 0; + } - StringCopy(dest, sContestStatNames[statID]); + StringCopy(dest, sContestStatNames[statID]); StringAppend(dest, gText_WasEnhanced); } - else - { - StringCopy(dest, gText_NothingChanged); - } + else + { + StringCopy(dest, gText_NothingChanged); + } } #else NAKED void Pokeblock_BufferEnhancedStatText(u8 *dest, u8 statID, s16 a2) { - asm(".syntax unified\n\ + asm(".syntax unified\n\ push {r4,lr}\n\ - adds r4, r0, 0\n\ - lsls r1, 24\n\ - lsrs r3, r1, 24\n\ - lsls r2, 16\n\ - lsrs r0, r2, 16\n\ - asrs r2, 16\n\ - cmp r2, 0\n\ - beq _08167010\n\ - cmp r2, 0\n\ - ble _08166FEC\n\ - movs r0, 0\n\ + adds r4, r0, 0\n\ + lsls r1, 24\n\ + lsrs r3, r1, 24\n\ + lsls r2, 16\n\ + lsrs r0, r2, 16\n\ + asrs r2, 16\n\ + cmp r2, 0\n\ + beq _08167010\n\ + cmp r2, 0\n\ + ble _08166FEC\n\ + movs r0, 0\n\ _08166FEC:\n\ - lsls r0, 16\n\ - ldr r1, =sContestStatNames\n\ - lsls r0, r3, 2\n\ - adds r0, r1\n\ - ldr r1, [r0]\n\ - adds r0, r4, 0\n\ - bl StringCopy\n\ - ldr r1, =gText_WasEnhanced\n\ - adds r0, r4, 0\n\ - bl StringAppend\n\ - b _08167018\n\ - .pool\n\ + lsls r0, 16\n\ + ldr r1, =sContestStatNames\n\ + lsls r0, r3, 2\n\ + adds r0, r1\n\ + ldr r1, [r0]\n\ + adds r0, r4, 0\n\ + bl StringCopy\n\ + ldr r1, =gText_WasEnhanced\n\ + adds r0, r4, 0\n\ + bl StringAppend\n\ + b _08167018\n\ + .pool\n\ _08167010:\n\ - ldr r1, =gText_NothingChanged\n\ - adds r0, r4, 0\n\ - bl StringCopy\n\ + ldr r1, =gText_NothingChanged\n\ + adds r0, r4, 0\n\ + bl StringCopy\n\ _08167018:\n\ - pop {r4}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided\n"); + pop {r4}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided\n"); } #endif @@ -1200,8 +1022,8 @@ void sub_8167184(struct Pokeblock *pokeblock, struct Pokemon *pokemon) bool8 sub_8167268(void) { - u8 *mon; - mon = (u8 *) &gUnknown_0203BCAC->field_0[gUnknown_0203BCAC->info.field_71 * 4]; + u8 *mon; + mon = (u8 *) &gUnknown_0203BCAC->field_0[gUnknown_0203BCAC->info.field_71 * 4]; if (sub_81D2C68(*(mon + 864 + 0x7C58), *(mon + 865 + 0x7C58), MON_DATA_SHEEN, 0) == 255) return TRUE; return FALSE; @@ -1281,838 +1103,838 @@ void sub_81673DC(struct Sprite *sprite) #ifdef NONMATCHING void sub_8167420(void) { - u16 i; - u16 ct; - + u16 i; + u16 ct; + for (i=0, ct=0; i < CalculatePlayerPartyCount(); i++) { if (!GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG)) { - *(&gUnknown_0203BCAC->field_7FB8 + ct * 4) = 14; - *(&gUnknown_0203BCAC->field_7FB9 + ct * 4)= i; - *(&gUnknown_0203BCAC->field_7FBA + ct * 2) = 0; - ct++; + *(&gUnknown_0203BCAC->field_7FB8 + ct * 4) = 14; + *(&gUnknown_0203BCAC->field_7FB9 + ct * 4)= i; + *(&gUnknown_0203BCAC->field_7FBA + ct * 2) = 0; + ct++; } } - gUnknown_0203BCAC->info.field_71 = 0; - gUnknown_0203BCAC->info.field_70 = ct + 1; - sub_81674BC(); + gUnknown_0203BCAC->info.field_71 = 0; + gUnknown_0203BCAC->info.field_70 = ct + 1; + sub_81674BC(); } #else NAKED void sub_8167420(void) { - asm(".syntax unified\n\ + asm(".syntax unified\n\ push {r4-r6,lr}\n\ - movs r4, 0\n\ - movs r5, 0\n\ - ldr r6, =gUnknown_0203BCAC\n\ - b _08167472\n\ - .pool\n\ + movs r4, 0\n\ + movs r5, 0\n\ + ldr r6, =gUnknown_0203BCAC\n\ + b _08167472\n\ + .pool\n\ _08167430:\n\ - movs r0, 0x64\n\ - muls r0, r4\n\ - ldr r1, =gPlayerParty\n\ - adds r0, r1\n\ - movs r1, 0x2D\n\ - bl GetMonData\n\ - adds r3, r0, 0\n\ - cmp r3, 0\n\ - bne _0816746C\n\ - ldr r1, [r6]\n\ - lsls r2, r5, 2\n\ - adds r1, r2\n\ - ldr r0, =0x00007fb8\n\ - adds r1, r0\n\ - movs r0, 0xE\n\ - strb r0, [r1]\n\ - ldr r0, [r6]\n\ - adds r0, r2\n\ - ldr r1, =0x00007fb9\n\ - adds r0, r1\n\ - strb r4, [r0]\n\ - ldr r0, [r6]\n\ - adds r0, r2\n\ - ldr r2, =0x00007fba\n\ - adds r0, r2\n\ - strh r3, [r0]\n\ - adds r0, r5, 0x1\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ + movs r0, 0x64\n\ + muls r0, r4\n\ + ldr r1, =gPlayerParty\n\ + adds r0, r1\n\ + movs r1, 0x2D\n\ + bl GetMonData\n\ + adds r3, r0, 0\n\ + cmp r3, 0\n\ + bne _0816746C\n\ + ldr r1, [r6]\n\ + lsls r2, r5, 2\n\ + adds r1, r2\n\ + ldr r0, =0x00007fb8\n\ + adds r1, r0\n\ + movs r0, 0xE\n\ + strb r0, [r1]\n\ + ldr r0, [r6]\n\ + adds r0, r2\n\ + ldr r1, =0x00007fb9\n\ + adds r0, r1\n\ + strb r4, [r0]\n\ + ldr r0, [r6]\n\ + adds r0, r2\n\ + ldr r2, =0x00007fba\n\ + adds r0, r2\n\ + strh r3, [r0]\n\ + adds r0, r5, 0x1\n\ + lsls r0, 16\n\ + lsrs r5, r0, 16\n\ _0816746C:\n\ - adds r0, r4, 0x1\n\ - lsls r0, 16\n\ - lsrs r4, r0, 16\n\ + adds r0, r4, 0x1\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ _08167472:\n\ - bl CalculatePlayerPartyCount\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r4, r0\n\ - bcc _08167430\n\ - ldr r2, =gUnknown_0203BCAC\n\ - ldr r0, [r2]\n\ - ldr r1, =0x00008041\n\ - adds r0, r1\n\ - movs r1, 0\n\ - strb r1, [r0]\n\ - ldr r0, [r2]\n\ - adds r1, r5, 0x1\n\ - ldr r2, =0x00008040\n\ - adds r0, r2\n\ - strb r1, [r0]\n\ - bl sub_81674BC\n\ - pop {r4-r6}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided\n"); + bl CalculatePlayerPartyCount\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r4, r0\n\ + bcc _08167430\n\ + ldr r2, =gUnknown_0203BCAC\n\ + ldr r0, [r2]\n\ + ldr r1, =0x00008041\n\ + adds r0, r1\n\ + movs r1, 0\n\ + strb r1, [r0]\n\ + ldr r0, [r2]\n\ + adds r1, r5, 0x1\n\ + ldr r2, =0x00008040\n\ + adds r0, r2\n\ + strb r1, [r0]\n\ + bl sub_81674BC\n\ + pop {r4-r6}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided\n"); } #endif #ifdef NONMATCHING void sub_81674BC(void) { - s16 var; - s16 var2; - - sub_816753C(gUnknown_0203BCAC->info.field_71, 0); - gUnknown_0203BCAC->field_7FB3 = 0; - gUnknown_0203BCAC->field_7FB4 = 1; - gUnknown_0203BCAC->field_7FB5 = 2; - - var = gUnknown_0203BCAC->info.field_71 + 1; - - if(var >= gUnknown_0203BCAC->info.field_70) - { - var = 0; - - } - - var2 = var - 1; - - if(var2 < 0) - { - var2 = gUnknown_0203BCAC->info.field_70 - 1; - } - - sub_816753C(var, 1); - sub_816753C(var2, 2); + s16 var; + s16 var2; + + sub_816753C(gUnknown_0203BCAC->info.field_71, 0); + gUnknown_0203BCAC->field_7FB3 = 0; + gUnknown_0203BCAC->field_7FB4 = 1; + gUnknown_0203BCAC->field_7FB5 = 2; + + var = gUnknown_0203BCAC->info.field_71 + 1; + + if(var >= gUnknown_0203BCAC->info.field_70) + { + var = 0; + + } + + var2 = var - 1; + + if(var2 < 0) + { + var2 = gUnknown_0203BCAC->info.field_70 - 1; + } + + sub_816753C(var, 1); + sub_816753C(var2, 2); } #else NAKED void sub_81674BC(void) { - asm(".syntax unified\n\ - push {r4,r5,lr}\n\ - ldr r4, =gUnknown_0203BCAC\n\ - ldr r0, [r4]\n\ - ldr r5, =0x00008041\n\ - adds r0, r5\n\ - ldrb r0, [r0]\n\ - movs r1, 0\n\ - bl sub_816753C\n\ - ldr r0, [r4]\n\ - ldr r1, =0x00007fb3\n\ - adds r0, r1\n\ - movs r1, 0\n\ - strb r1, [r0]\n\ - ldr r0, [r4]\n\ - ldr r2, =0x00007fb4\n\ - adds r0, r2\n\ - movs r1, 0x1\n\ - strb r1, [r0]\n\ - ldr r0, [r4]\n\ - ldr r1, =0x00007fb5\n\ - adds r0, r1\n\ - movs r1, 0x2\n\ - strb r1, [r0]\n\ - ldr r0, [r4]\n\ - adds r5, r0, r5\n\ - ldrb r3, [r5]\n\ - adds r1, r3, 0x1\n\ - adds r2, 0x8C\n\ - adds r0, r2\n\ - ldrb r2, [r0]\n\ - cmp r1, r2\n\ - blt _08167500\n\ - movs r1, 0\n\ + asm(".syntax unified\n\ + push {r4,r5,lr}\n\ + ldr r4, =gUnknown_0203BCAC\n\ + ldr r0, [r4]\n\ + ldr r5, =0x00008041\n\ + adds r0, r5\n\ + ldrb r0, [r0]\n\ + movs r1, 0\n\ + bl sub_816753C\n\ + ldr r0, [r4]\n\ + ldr r1, =0x00007fb3\n\ + adds r0, r1\n\ + movs r1, 0\n\ + strb r1, [r0]\n\ + ldr r0, [r4]\n\ + ldr r2, =0x00007fb4\n\ + adds r0, r2\n\ + movs r1, 0x1\n\ + strb r1, [r0]\n\ + ldr r0, [r4]\n\ + ldr r1, =0x00007fb5\n\ + adds r0, r1\n\ + movs r1, 0x2\n\ + strb r1, [r0]\n\ + ldr r0, [r4]\n\ + adds r5, r0, r5\n\ + ldrb r3, [r5]\n\ + adds r1, r3, 0x1\n\ + adds r2, 0x8C\n\ + adds r0, r2\n\ + ldrb r2, [r0]\n\ + cmp r1, r2\n\ + blt _08167500\n\ + movs r1, 0\n\ _08167500:\n\ - subs r0, r3, 0x1\n\ - lsls r0, 16\n\ - lsrs r4, r0, 16\n\ - cmp r0, 0\n\ - bge _08167510\n\ - subs r0, r2, 0x1\n\ - lsls r0, 16\n\ - lsrs r4, r0, 16\n\ + subs r0, r3, 0x1\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ + cmp r0, 0\n\ + bge _08167510\n\ + subs r0, r2, 0x1\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ _08167510:\n\ - adds r0, r1, 0\n\ - movs r1, 0x1\n\ - bl sub_816753C\n\ - lsls r0, r4, 16\n\ - asrs r0, 16\n\ - movs r1, 0x2\n\ - bl sub_816753C\n\ - pop {r4,r5}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided\n"); + adds r0, r1, 0\n\ + movs r1, 0x1\n\ + bl sub_816753C\n\ + lsls r0, r4, 16\n\ + asrs r0, 16\n\ + movs r1, 0x2\n\ + bl sub_816753C\n\ + pop {r4,r5}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided\n"); } #endif #ifdef NONMATCHING void sub_816753C(s16 a1, u8 a2) { - u8 *v3; - int v5; - int v6; - - v3 = &gUnknown_0203BCAC->field_0[a1 << 16 >> 14]; - v5 = *(0x7FB8 + v3); - v6 = *(0x7FB9 + v3); - - sub_81D2ED4(gUnknown_0203BCAC->field_0[0x7B4D + 24 * a2], gUnknown_0203BCAC->field_0[0x7B95 + 64 * a2], v5, v6, a1, gUnknown_0203BCAC->info.field_70, 0); - sub_81D2F78(gUnknown_0203BCAC->field_7C58[0], gUnknown_0203BCAC->field_0[0x7FB0], v5, v6, a1, a2, gUnknown_0203BCAC->info.field_70, 0); - sub_81D3094(gUnknown_0203BCAC->field_0[(a2 << 13) + 0x304], gUnknown_0203BCAC->field_0[(a2 << 7) + 4], v5, v6, a1, gUnknown_0203BCAC->info.field_70, 0); - //gUnknown_0203BCAC->field_0[0x7B4D + a1 * 40], gUnknown_0203BCAC->field_7FB8, gUnknown_0203BCAC->field_7FB9, gUnknown_203BCAC->field_0[0], gUnknown_203BCAC->info.field_70, 0) + u8 *v3; + int v5; + int v6; + + v3 = &gUnknown_0203BCAC->field_0[a1 << 16 >> 14]; + v5 = *(0x7FB8 + v3); + v6 = *(0x7FB9 + v3); + + sub_81D2ED4(gUnknown_0203BCAC->field_0[0x7B4D + 24 * a2], gUnknown_0203BCAC->field_0[0x7B95 + 64 * a2], v5, v6, a1, gUnknown_0203BCAC->info.field_70, 0); + sub_81D2F78(gUnknown_0203BCAC->field_7C58[0], gUnknown_0203BCAC->field_0[0x7FB0], v5, v6, a1, a2, gUnknown_0203BCAC->info.field_70, 0); + sub_81D3094(gUnknown_0203BCAC->field_0[(a2 << 13) + 0x304], gUnknown_0203BCAC->field_0[(a2 << 7) + 4], v5, v6, a1, gUnknown_0203BCAC->info.field_70, 0); + //gUnknown_0203BCAC->field_0[0x7B4D + a1 * 40], gUnknown_0203BCAC->field_7FB8, gUnknown_0203BCAC->field_7FB9, gUnknown_203BCAC->field_0[0], gUnknown_203BCAC->info.field_70, 0) } #else NAKED void sub_816753C(s16 a1, u8 a2) { - 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, 0x10\n\ - adds r5, r0, 0\n\ - adds r4, r1, 0\n\ - lsls r4, 24\n\ - lsrs r4, 24\n\ - ldr r0, =gUnknown_0203BCAC\n\ - mov r9, r0\n\ - ldr r1, [r0]\n\ - lsls r5, 16\n\ - asrs r0, r5, 14\n\ - adds r0, r1, r0\n\ - ldr r3, =0x00007fb8\n\ - adds r2, r0, r3\n\ - ldrb r7, [r2]\n\ - ldr r2, =0x00007fb9\n\ - adds r0, r2\n\ - ldrb r0, [r0]\n\ - mov r10, r0\n\ - adds r3, 0x88\n\ - adds r0, r1, r3\n\ - ldrb r6, [r0]\n\ - movs r0, 0\n\ - mov r8, r0\n\ - lsls r0, r4, 1\n\ - adds r0, r4\n\ - lsls r0, 3\n\ - ldr r2, =0x00007b4d\n\ - adds r0, r2\n\ - adds r0, r1, r0\n\ - lsls r2, r4, 6\n\ - ldr r3, =0x00007b95\n\ - adds r2, r3\n\ - adds r1, r2\n\ - lsrs r5, 16\n\ - str r5, [sp]\n\ - str r6, [sp, 0x4]\n\ - mov r2, r8\n\ - str r2, [sp, 0x8]\n\ - adds r2, r7, 0\n\ - mov r3, r10\n\ - bl sub_81D2ED4\n\ - mov r3, r9\n\ - ldr r1, [r3]\n\ - ldr r2, =0x00007c58\n\ - adds r0, r1, r2\n\ - ldr r3, =0x00007fb0\n\ - adds r1, r3\n\ - str r5, [sp]\n\ - str r4, [sp, 0x4]\n\ - str r6, [sp, 0x8]\n\ - mov r2, r8\n\ - str r2, [sp, 0xC]\n\ - adds r2, r7, 0\n\ - mov r3, r10\n\ - bl sub_81D2F78\n\ - lsls r0, r4, 13\n\ - movs r1, 0xC1\n\ - lsls r1, 2\n\ - adds r0, r1\n\ - mov r3, r9\n\ - ldr r1, [r3]\n\ - adds r0, r1, r0\n\ - lsls r4, 7\n\ - adds r4, 0x4\n\ - adds r1, r4\n\ - str r5, [sp]\n\ - str r6, [sp, 0x4]\n\ - mov r2, r8\n\ - str r2, [sp, 0x8]\n\ - adds r2, r7, 0\n\ - mov r3, r10\n\ - bl sub_81D3094\n\ - add sp, 0x10\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\ - .pool\n\ - .syntax divided\n"); + 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, 0x10\n\ + adds r5, r0, 0\n\ + adds r4, r1, 0\n\ + lsls r4, 24\n\ + lsrs r4, 24\n\ + ldr r0, =gUnknown_0203BCAC\n\ + mov r9, r0\n\ + ldr r1, [r0]\n\ + lsls r5, 16\n\ + asrs r0, r5, 14\n\ + adds r0, r1, r0\n\ + ldr r3, =0x00007fb8\n\ + adds r2, r0, r3\n\ + ldrb r7, [r2]\n\ + ldr r2, =0x00007fb9\n\ + adds r0, r2\n\ + ldrb r0, [r0]\n\ + mov r10, r0\n\ + adds r3, 0x88\n\ + adds r0, r1, r3\n\ + ldrb r6, [r0]\n\ + movs r0, 0\n\ + mov r8, r0\n\ + lsls r0, r4, 1\n\ + adds r0, r4\n\ + lsls r0, 3\n\ + ldr r2, =0x00007b4d\n\ + adds r0, r2\n\ + adds r0, r1, r0\n\ + lsls r2, r4, 6\n\ + ldr r3, =0x00007b95\n\ + adds r2, r3\n\ + adds r1, r2\n\ + lsrs r5, 16\n\ + str r5, [sp]\n\ + str r6, [sp, 0x4]\n\ + mov r2, r8\n\ + str r2, [sp, 0x8]\n\ + adds r2, r7, 0\n\ + mov r3, r10\n\ + bl sub_81D2ED4\n\ + mov r3, r9\n\ + ldr r1, [r3]\n\ + ldr r2, =0x00007c58\n\ + adds r0, r1, r2\n\ + ldr r3, =0x00007fb0\n\ + adds r1, r3\n\ + str r5, [sp]\n\ + str r4, [sp, 0x4]\n\ + str r6, [sp, 0x8]\n\ + mov r2, r8\n\ + str r2, [sp, 0xC]\n\ + adds r2, r7, 0\n\ + mov r3, r10\n\ + bl sub_81D2F78\n\ + lsls r0, r4, 13\n\ + movs r1, 0xC1\n\ + lsls r1, 2\n\ + adds r0, r1\n\ + mov r3, r9\n\ + ldr r1, [r3]\n\ + adds r0, r1, r0\n\ + lsls r4, 7\n\ + adds r4, 0x4\n\ + adds r1, r4\n\ + str r5, [sp]\n\ + str r6, [sp, 0x4]\n\ + mov r2, r8\n\ + str r2, [sp, 0x8]\n\ + adds r2, r7, 0\n\ + mov r3, r10\n\ + bl sub_81D3094\n\ + add sp, 0x10\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\ + .pool\n\ + .syntax divided\n"); } #endif #ifdef NONMATCHING void sub_8167608(u8 arg0) { - u8 v4; - u8 *v5; - u8 *v6; - u32 v7; - struct SpritePalette array[5]; - if(gUnknown_0203BCAC->field_0[0x7B10] == 255) - { - sub_81D31D0(&array[3], &array[0], &array[4]); - array[1] = (struct SpritePallete *) ((u32) gUnknown_0203BCAC->field_0[(arg0 << 13) + 772]); - array[2] = (struct SpritePallete *) ((u32) gUnknown_0203BCAC->field_0[(arg0 << 7) + 4]); - gUnknown_0203BCAC->field_0[0x7B12] = LoadSpritePalette(&array[3]); - gUnknown_0203BCAC->field_0[0x7B14] = LoadSpritePalette(&array[4]); - v4 = CreateSprite(array[0], 38, 104, 0); - gUnknown_0203BCAC->field_0[0x7B10] = v4; - if(v4 == 64) - { - FreeSpriteTilesByTag(100); - FreeSpritePaletteByTag(100); - gUnknown_0203BCAC->field_0[0x7B10] = 255; - } - else - { - gUnknown_0203BCAC->field_0[0x7B10] = v4; - v5 = &gUnknown_0203BCAC->field_0[0]; - v6 = &gUnknown_0203BCAC->field_0[0x7B10]; - gSprites[v6].callback = sub_8168168; - gSprites[v6].pos2.y -= 32; - *(v5+0x7B18) = 32 * *(v5+0x7B14) + 0x06010000; - *(v5+0x7B12) = 16 * *(v5+0x7B12) + 0x100; - } - } - else - { - v7 = gUnknown_0203BCAC->field_0[0x7B18]; - REG_ADDR_DMA3SAD = gUnknown_0203BCAC->field_0[(arg0 << 13) + 772]; - REG_ADDR_DMA3DAD = v7; - REG_ADDR_DMA3CNT = 0x80000400; - LoadPalette(gUnknown_0203BCAC->field_0[arg0 << 7) + 4), gUnknown_0203BCAC->field_0[0x7B12], 32); - } + u8 v4; + u8 *v5; + u8 *v6; + u32 v7; + struct SpritePalette array[5]; + if(gUnknown_0203BCAC->field_0[0x7B10] == 255) + { + sub_81D31D0(&array[3], &array[0], &array[4]); + array[1] = (struct SpritePallete *) ((u32) gUnknown_0203BCAC->field_0[(arg0 << 13) + 772]); + array[2] = (struct SpritePallete *) ((u32) gUnknown_0203BCAC->field_0[(arg0 << 7) + 4]); + gUnknown_0203BCAC->field_0[0x7B12] = LoadSpritePalette(&array[3]); + gUnknown_0203BCAC->field_0[0x7B14] = LoadSpritePalette(&array[4]); + v4 = CreateSprite(array[0], 38, 104, 0); + gUnknown_0203BCAC->field_0[0x7B10] = v4; + if(v4 == 64) + { + FreeSpriteTilesByTag(100); + FreeSpritePaletteByTag(100); + gUnknown_0203BCAC->field_0[0x7B10] = 255; + } + else + { + gUnknown_0203BCAC->field_0[0x7B10] = v4; + v5 = &gUnknown_0203BCAC->field_0[0]; + v6 = &gUnknown_0203BCAC->field_0[0x7B10]; + gSprites[v6].callback = sub_8168168; + gSprites[v6].pos2.y -= 32; + *(v5+0x7B18) = 32 * *(v5+0x7B14) + 0x06010000; + *(v5+0x7B12) = 16 * *(v5+0x7B12) + 0x100; + } + } + else + { + v7 = gUnknown_0203BCAC->field_0[0x7B18]; + REG_ADDR_DMA3SAD = gUnknown_0203BCAC->field_0[(arg0 << 13) + 772]; + REG_ADDR_DMA3DAD = v7; + REG_ADDR_DMA3CNT = 0x80000400; + LoadPalette(gUnknown_0203BCAC->field_0[arg0 << 7) + 4), gUnknown_0203BCAC->field_0[0x7B12], 32); + } } #else NAKED void sub_8167608(u8 arg0) { - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r8\n\ - push {r7}\n\ - sub sp, 0x28\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ - ldr r1, =gUnknown_0203BCAC\n\ - ldr r3, [r1]\n\ - ldr r0, =0x00007b10\n\ - mov r8, r0\n\ - adds r0, r3, r0\n\ - ldrb r0, [r0]\n\ - adds r7, r1, 0\n\ - cmp r0, 0xFF\n\ - bne _08167714\n\ - add r5, sp, 0x18\n\ - add r4, sp, 0x20\n\ - adds r0, r5, 0\n\ - mov r1, sp\n\ - adds r2, r4, 0\n\ - bl sub_81D31D0\n\ - lsls r0, r6, 13\n\ - movs r1, 0xC1\n\ - lsls r1, 2\n\ - adds r0, r1\n\ - ldr r1, [r7]\n\ - adds r0, r1, r0\n\ - str r0, [sp, 0x18]\n\ - lsls r0, r6, 7\n\ - adds r0, 0x4\n\ - adds r1, r0\n\ - str r1, [sp, 0x20]\n\ - adds r0, r4, 0\n\ - bl LoadSpritePalette\n\ - ldr r1, [r7]\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - ldr r2, =0x00007b12\n\ - adds r1, r2\n\ - strh r0, [r1]\n\ - adds r0, r5, 0\n\ - bl LoadSpriteSheet\n\ - ldr r1, [r7]\n\ - ldr r3, =0x00007b14\n\ - adds r1, r3\n\ - strh r0, [r1]\n\ - mov r0, sp\n\ - movs r1, 0x26\n\ - movs r2, 0x68\n\ - movs r3, 0\n\ - bl CreateSprite\n\ - lsls r0, 24\n\ - lsrs r1, r0, 24\n\ - ldr r0, [r7]\n\ - ldr r2, =0x00007b10\n\ - adds r0, r2\n\ - strb r1, [r0]\n\ - cmp r1, 0x40\n\ - bne _081676AC\n\ - movs r0, 0x64\n\ - bl FreeSpriteTilesByTag\n\ - movs r0, 0x64\n\ - bl FreeSpritePaletteByTag\n\ - ldr r0, [r7]\n\ - add r0, r8\n\ - movs r1, 0xFF\n\ - strb r1, [r0]\n\ - b _08167742\n\ - .pool\n\ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r8\n\ + push {r7}\n\ + sub sp, 0x28\n\ + lsls r0, 24\n\ + lsrs r6, r0, 24\n\ + ldr r1, =gUnknown_0203BCAC\n\ + ldr r3, [r1]\n\ + ldr r0, =0x00007b10\n\ + mov r8, r0\n\ + adds r0, r3, r0\n\ + ldrb r0, [r0]\n\ + adds r7, r1, 0\n\ + cmp r0, 0xFF\n\ + bne _08167714\n\ + add r5, sp, 0x18\n\ + add r4, sp, 0x20\n\ + adds r0, r5, 0\n\ + mov r1, sp\n\ + adds r2, r4, 0\n\ + bl sub_81D31D0\n\ + lsls r0, r6, 13\n\ + movs r1, 0xC1\n\ + lsls r1, 2\n\ + adds r0, r1\n\ + ldr r1, [r7]\n\ + adds r0, r1, r0\n\ + str r0, [sp, 0x18]\n\ + lsls r0, r6, 7\n\ + adds r0, 0x4\n\ + adds r1, r0\n\ + str r1, [sp, 0x20]\n\ + adds r0, r4, 0\n\ + bl LoadSpritePalette\n\ + ldr r1, [r7]\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + ldr r2, =0x00007b12\n\ + adds r1, r2\n\ + strh r0, [r1]\n\ + adds r0, r5, 0\n\ + bl LoadSpriteSheet\n\ + ldr r1, [r7]\n\ + ldr r3, =0x00007b14\n\ + adds r1, r3\n\ + strh r0, [r1]\n\ + mov r0, sp\n\ + movs r1, 0x26\n\ + movs r2, 0x68\n\ + movs r3, 0\n\ + bl CreateSprite\n\ + lsls r0, 24\n\ + lsrs r1, r0, 24\n\ + ldr r0, [r7]\n\ + ldr r2, =0x00007b10\n\ + adds r0, r2\n\ + strb r1, [r0]\n\ + cmp r1, 0x40\n\ + bne _081676AC\n\ + movs r0, 0x64\n\ + bl FreeSpriteTilesByTag\n\ + movs r0, 0x64\n\ + bl FreeSpritePaletteByTag\n\ + ldr r0, [r7]\n\ + add r0, r8\n\ + movs r1, 0xFF\n\ + strb r1, [r0]\n\ + b _08167742\n\ + .pool\n\ _081676AC:\n\ - ldr r0, [r7]\n\ - add r0, r8\n\ - strb r1, [r0]\n\ - ldr r4, =gSprites\n\ - ldr r2, [r7]\n\ - mov r0, r8\n\ - adds r3, r2, r0\n\ - ldrb r1, [r3]\n\ - lsls r0, r1, 4\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - adds r1, r4, 0\n\ - adds r1, 0x1C\n\ - adds r0, r1\n\ - ldr r1, =sub_8168168\n\ - str r1, [r0]\n\ - ldrb r1, [r3]\n\ - lsls r0, r1, 4\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - adds r0, r4\n\ - ldrh r1, [r0, 0x26]\n\ - subs r1, 0x22\n\ - strh r1, [r0, 0x26]\n\ - ldr r3, =0x00007b18\n\ - adds r1, r2, r3\n\ - subs r3, 0x4\n\ - adds r0, r2, r3\n\ - ldrh r0, [r0]\n\ - lsls r0, 5\n\ - ldr r3, =0x06010000\n\ - adds r0, r3\n\ - str r0, [r1]\n\ - ldr r0, =0x00007b12\n\ - adds r2, r0\n\ - ldrh r0, [r2]\n\ - lsls r0, 4\n\ - movs r1, 0x80\n\ - lsls r1, 1\n\ - adds r0, r1\n\ - strh r0, [r2]\n\ - b _08167742\n\ - .pool\n\ + ldr r0, [r7]\n\ + add r0, r8\n\ + strb r1, [r0]\n\ + ldr r4, =gSprites\n\ + ldr r2, [r7]\n\ + mov r0, r8\n\ + adds r3, r2, r0\n\ + ldrb r1, [r3]\n\ + lsls r0, r1, 4\n\ + adds r0, r1\n\ + lsls r0, 2\n\ + adds r1, r4, 0\n\ + adds r1, 0x1C\n\ + adds r0, r1\n\ + ldr r1, =sub_8168168\n\ + str r1, [r0]\n\ + ldrb r1, [r3]\n\ + lsls r0, r1, 4\n\ + adds r0, r1\n\ + lsls r0, 2\n\ + adds r0, r4\n\ + ldrh r1, [r0, 0x26]\n\ + subs r1, 0x22\n\ + strh r1, [r0, 0x26]\n\ + ldr r3, =0x00007b18\n\ + adds r1, r2, r3\n\ + subs r3, 0x4\n\ + adds r0, r2, r3\n\ + ldrh r0, [r0]\n\ + lsls r0, 5\n\ + ldr r3, =0x06010000\n\ + adds r0, r3\n\ + str r0, [r1]\n\ + ldr r0, =0x00007b12\n\ + adds r2, r0\n\ + ldrh r0, [r2]\n\ + lsls r0, 4\n\ + movs r1, 0x80\n\ + lsls r1, 1\n\ + adds r0, r1\n\ + strh r0, [r2]\n\ + b _08167742\n\ + .pool\n\ _08167714:\n\ - lsls r1, r6, 13\n\ - movs r0, 0xC1\n\ - lsls r0, 2\n\ - adds r1, r0\n\ - adds r1, r3, r1\n\ - ldr r2, =0x00007b18\n\ - adds r0, r3, r2\n\ - ldr r2, [r0]\n\ - ldr r0, =0x040000d4\n\ - str r1, [r0]\n\ - str r2, [r0, 0x4]\n\ - ldr r1, =0x80000400\n\ - str r1, [r0, 0x8]\n\ - ldr r0, [r0, 0x8]\n\ - lsls r0, r6, 7\n\ - adds r0, 0x4\n\ - adds r0, r3, r0\n\ - ldr r2, =0x00007b12\n\ - adds r1, r3, r2\n\ - ldrh r1, [r1]\n\ - movs r2, 0x20\n\ - bl LoadPalette\n\ + lsls r1, r6, 13\n\ + movs r0, 0xC1\n\ + lsls r0, 2\n\ + adds r1, r0\n\ + adds r1, r3, r1\n\ + ldr r2, =0x00007b18\n\ + adds r0, r3, r2\n\ + ldr r2, [r0]\n\ + ldr r0, =0x040000d4\n\ + str r1, [r0]\n\ + str r2, [r0, 0x4]\n\ + ldr r1, =0x80000400\n\ + str r1, [r0, 0x8]\n\ + ldr r0, [r0, 0x8]\n\ + lsls r0, r6, 7\n\ + adds r0, 0x4\n\ + adds r0, r3, r0\n\ + ldr r2, =0x00007b12\n\ + adds r1, r3, r2\n\ + ldrh r1, [r1]\n\ + movs r2, 0x20\n\ + bl LoadPalette\n\ _08167742:\n\ - add sp, 0x28\n\ - pop {r3}\n\ - mov r8, r3\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided\n"); + add sp, 0x28\n\ + pop {r3}\n\ + mov r8, r3\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .pool\n\ + .syntax divided\n"); } #endif #ifdef NONMATCHING void sub_8167760(void) { - s32 i; - u8 v1; - u8 v2; - u8 v3; - u32 v4; - struct SpriteSheet *v6; - struct SpriteTemplate *v7; - void (*funcCB) (void); - struct SpritePalette *v9; - struct SpriteSheet *v10; - struct SpritePalette *v11; - - sub_81D321C(v6, v7, v9); - LoadSpriteSheets(v6); - LoadSpritePalettes(v9); - for(i = 0; i < gUnknown_0203BCAC->info.field_70 - 1; i++) - { - v1 = CreateSprite(v7, 226, (0x140000 * i + 0x80000) >> 16, 0); - if(v1 == 64) - { - gUnknown_0203BCAC->field_0[0x7B06 + i] = -1; - } - else - { - gUnknown_0203BCAC->field_0[0x7B06 + i] = v1; - gSprites[v1].data[0] = i; - gSprites[v1].callback = (SpriteCallback) sub_8168180; - } - } - for(v7->tileTag = 103; i <= 5; i++) - { - v2 = CreateSprite(v7, 230, (0x140000 * i + 0x80000) >> 16, 0); - if(v2 == 64 ) - { - gUnknown_0203BCAC->field_0[0x7B06 + i] = -1; - } - else - { - gUnknown_0203BCAC->field_0[0x7B06 + i] = v2; - gSprites[v2].oam.tileNum &= 0x3F; - } - } - v7->tileTag = 102; - funcCB = sub_81681B4; - v3 = CreateSprite(v7, 222, (0x140000 * i + 0x80000) >> 16, 0); - if(v3 == 64) - { - gUnknown_0203BCAC->field_0[0x7B06 + i] = -1; - } - else - { - gUnknown_0203BCAC->field_0[0x7B06 + i] = v3; - v4 = 68 * v3 + 0x2020630; - (v4 + 1) = gSprites[v2].oam.affineMode & (0x3F | 0x40); - (v4 + 3) = (v4 + 3) & (0x3F | 0x80); - } - sub_81D32B0(v10, v11); - LoadSpriteSheet(v10); - LoadSpritePalette(v11); + s32 i; + u8 v1; + u8 v2; + u8 v3; + u32 v4; + struct SpriteSheet *v6; + struct SpriteTemplate *v7; + void (*funcCB) (void); + struct SpritePalette *v9; + struct SpriteSheet *v10; + struct SpritePalette *v11; + + sub_81D321C(v6, v7, v9); + LoadSpriteSheets(v6); + LoadSpritePalettes(v9); + for(i = 0; i < gUnknown_0203BCAC->info.field_70 - 1; i++) + { + v1 = CreateSprite(v7, 226, (0x140000 * i + 0x80000) >> 16, 0); + if(v1 == 64) + { + gUnknown_0203BCAC->field_0[0x7B06 + i] = -1; + } + else + { + gUnknown_0203BCAC->field_0[0x7B06 + i] = v1; + gSprites[v1].data[0] = i; + gSprites[v1].callback = (SpriteCallback) sub_8168180; + } + } + for(v7->tileTag = 103; i <= 5; i++) + { + v2 = CreateSprite(v7, 230, (0x140000 * i + 0x80000) >> 16, 0); + if(v2 == 64 ) + { + gUnknown_0203BCAC->field_0[0x7B06 + i] = -1; + } + else + { + gUnknown_0203BCAC->field_0[0x7B06 + i] = v2; + gSprites[v2].oam.tileNum &= 0x3F; + } + } + v7->tileTag = 102; + funcCB = sub_81681B4; + v3 = CreateSprite(v7, 222, (0x140000 * i + 0x80000) >> 16, 0); + if(v3 == 64) + { + gUnknown_0203BCAC->field_0[0x7B06 + i] = -1; + } + else + { + gUnknown_0203BCAC->field_0[0x7B06 + i] = v3; + v4 = 68 * v3 + 0x2020630; + (v4 + 1) = gSprites[v2].oam.affineMode & (0x3F | 0x40); + (v4 + 3) = (v4 + 3) & (0x3F | 0x80); + } + sub_81D32B0(v10, v11); + LoadSpriteSheet(v10); + LoadSpritePalette(v11); } #else NAKED void sub_8167760(void) { - 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, 0x60\n\ - add r5, sp, 0x20\n\ - add r4, sp, 0x38\n\ - mov r0, sp\n\ - adds r1, r5, 0\n\ - adds r2, r4, 0\n\ - bl sub_81D321C\n\ - mov r0, sp\n\ - bl LoadSpriteSheets\n\ - adds r0, r4, 0\n\ - bl LoadSpritePalettes\n\ - movs r4, 0\n\ - ldr r1, =gUnknown_0203BCAC\n\ - ldr r0, [r1]\n\ - ldr r2, =0x00008040\n\ - adds r0, r2\n\ - ldrb r0, [r0]\n\ - subs r0, 0x1\n\ - adds r6, r5, 0\n\ - add r2, sp, 0x50\n\ - mov r9, r2\n\ - add r2, sp, 0x58\n\ - mov r10, r2\n\ - cmp r4, r0\n\ - bge _0816781C\n\ - adds r5, r1, 0\n\ - ldr r7, =gSprites\n\ - movs r0, 0x1C\n\ - adds r0, r7\n\ - mov r8, r0\n\ + 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, 0x60\n\ + add r5, sp, 0x20\n\ + add r4, sp, 0x38\n\ + mov r0, sp\n\ + adds r1, r5, 0\n\ + adds r2, r4, 0\n\ + bl sub_81D321C\n\ + mov r0, sp\n\ + bl LoadSpriteSheets\n\ + adds r0, r4, 0\n\ + bl LoadSpritePalettes\n\ + movs r4, 0\n\ + ldr r1, =gUnknown_0203BCAC\n\ + ldr r0, [r1]\n\ + ldr r2, =0x00008040\n\ + adds r0, r2\n\ + ldrb r0, [r0]\n\ + subs r0, 0x1\n\ + adds r6, r5, 0\n\ + add r2, sp, 0x50\n\ + mov r9, r2\n\ + add r2, sp, 0x58\n\ + mov r10, r2\n\ + cmp r4, r0\n\ + bge _0816781C\n\ + adds r5, r1, 0\n\ + ldr r7, =gSprites\n\ + movs r0, 0x1C\n\ + adds r0, r7\n\ + mov r8, r0\n\ _081677AC:\n\ - lsls r2, r4, 2\n\ - adds r2, r4\n\ - lsls r2, 18\n\ - movs r1, 0x80\n\ - lsls r1, 12\n\ - adds r2, r1\n\ - asrs r2, 16\n\ - adds r0, r6, 0\n\ - movs r1, 0xE2\n\ - movs r3, 0\n\ - bl CreateSprite\n\ - lsls r0, 24\n\ - lsrs r3, r0, 24\n\ - cmp r3, 0x40\n\ - beq _081677FC\n\ - ldr r0, [r5]\n\ - ldr r2, =0x00007b06\n\ - adds r0, r2\n\ - adds r0, r4\n\ - strb r3, [r0]\n\ - lsls r0, r3, 4\n\ - adds r0, r3\n\ - lsls r0, 2\n\ - adds r1, r0, r7\n\ - strh r4, [r1, 0x2E]\n\ - add r0, r8\n\ - ldr r1, =sub_8168180\n\ - str r1, [r0]\n\ - b _08167808\n\ - .pool\n\ + lsls r2, r4, 2\n\ + adds r2, r4\n\ + lsls r2, 18\n\ + movs r1, 0x80\n\ + lsls r1, 12\n\ + adds r2, r1\n\ + asrs r2, 16\n\ + adds r0, r6, 0\n\ + movs r1, 0xE2\n\ + movs r3, 0\n\ + bl CreateSprite\n\ + lsls r0, 24\n\ + lsrs r3, r0, 24\n\ + cmp r3, 0x40\n\ + beq _081677FC\n\ + ldr r0, [r5]\n\ + ldr r2, =0x00007b06\n\ + adds r0, r2\n\ + adds r0, r4\n\ + strb r3, [r0]\n\ + lsls r0, r3, 4\n\ + adds r0, r3\n\ + lsls r0, 2\n\ + adds r1, r0, r7\n\ + strh r4, [r1, 0x2E]\n\ + add r0, r8\n\ + ldr r1, =sub_8168180\n\ + str r1, [r0]\n\ + b _08167808\n\ + .pool\n\ _081677FC:\n\ - ldr r0, [r5]\n\ - ldr r1, =0x00007b06\n\ - adds r0, r1\n\ - adds r0, r4\n\ - movs r1, 0xFF\n\ - strb r1, [r0]\n\ + ldr r0, [r5]\n\ + ldr r1, =0x00007b06\n\ + adds r0, r1\n\ + adds r0, r4\n\ + movs r1, 0xFF\n\ + strb r1, [r0]\n\ _08167808:\n\ - adds r0, r4, 0x1\n\ - lsls r0, 16\n\ - lsrs r4, r0, 16\n\ - ldr r0, [r5]\n\ - ldr r2, =0x00008040\n\ - adds r0, r2\n\ - ldrb r0, [r0]\n\ - subs r0, 0x1\n\ - cmp r4, r0\n\ - blt _081677AC\n\ + adds r0, r4, 0x1\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ + ldr r0, [r5]\n\ + ldr r2, =0x00008040\n\ + adds r0, r2\n\ + ldrb r0, [r0]\n\ + subs r0, 0x1\n\ + cmp r4, r0\n\ + blt _081677AC\n\ _0816781C:\n\ - movs r0, 0x67\n\ - strh r0, [r6]\n\ - cmp r4, 0x5\n\ - bhi _0816788A\n\ - ldr r5, =gUnknown_0203BCAC\n\ - ldr r7, =gSprites\n\ + movs r0, 0x67\n\ + strh r0, [r6]\n\ + cmp r4, 0x5\n\ + bhi _0816788A\n\ + ldr r5, =gUnknown_0203BCAC\n\ + ldr r7, =gSprites\n\ _08167828:\n\ - lsls r2, r4, 2\n\ - adds r2, r4\n\ - lsls r2, 18\n\ - movs r0, 0x80\n\ - lsls r0, 12\n\ - adds r2, r0\n\ - asrs r2, 16\n\ - adds r0, r6, 0\n\ - movs r1, 0xE6\n\ - movs r3, 0\n\ - bl CreateSprite\n\ - lsls r0, 24\n\ - lsrs r3, r0, 24\n\ - cmp r3, 0x40\n\ - beq _08167874\n\ - ldr r0, [r5]\n\ - ldr r1, =0x00007b06\n\ - adds r0, r1\n\ - adds r0, r4\n\ - strb r3, [r0]\n\ - lsls r1, r3, 4\n\ - adds r1, r3\n\ - lsls r1, 2\n\ - adds r1, r7\n\ - ldrb r2, [r1, 0x3]\n\ - movs r0, 0x3F\n\ - ands r0, r2\n\ - strb r0, [r1, 0x3]\n\ - b _08167880\n\ - .pool\n\ + lsls r2, r4, 2\n\ + adds r2, r4\n\ + lsls r2, 18\n\ + movs r0, 0x80\n\ + lsls r0, 12\n\ + adds r2, r0\n\ + asrs r2, 16\n\ + adds r0, r6, 0\n\ + movs r1, 0xE6\n\ + movs r3, 0\n\ + bl CreateSprite\n\ + lsls r0, 24\n\ + lsrs r3, r0, 24\n\ + cmp r3, 0x40\n\ + beq _08167874\n\ + ldr r0, [r5]\n\ + ldr r1, =0x00007b06\n\ + adds r0, r1\n\ + adds r0, r4\n\ + strb r3, [r0]\n\ + lsls r1, r3, 4\n\ + adds r1, r3\n\ + lsls r1, 2\n\ + adds r1, r7\n\ + ldrb r2, [r1, 0x3]\n\ + movs r0, 0x3F\n\ + ands r0, r2\n\ + strb r0, [r1, 0x3]\n\ + b _08167880\n\ + .pool\n\ _08167874:\n\ - ldr r0, [r5]\n\ - ldr r2, =0x00007b06\n\ - adds r0, r2\n\ - adds r0, r4\n\ - movs r1, 0xFF\n\ - strb r1, [r0]\n\ + ldr r0, [r5]\n\ + ldr r2, =0x00007b06\n\ + adds r0, r2\n\ + adds r0, r4\n\ + movs r1, 0xFF\n\ + strb r1, [r0]\n\ _08167880:\n\ - adds r0, r4, 0x1\n\ - lsls r0, 16\n\ - lsrs r4, r0, 16\n\ - cmp r4, 0x5\n\ - bls _08167828\n\ + adds r0, r4, 0x1\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ + cmp r4, 0x5\n\ + bls _08167828\n\ _0816788A:\n\ - movs r0, 0x66\n\ - strh r0, [r6]\n\ - ldr r0, =sub_81681B4\n\ - str r0, [r6, 0x14]\n\ - lsls r2, r4, 2\n\ - adds r2, r4\n\ - lsls r2, 18\n\ - movs r0, 0x80\n\ - lsls r0, 12\n\ - adds r2, r0\n\ - asrs r2, 16\n\ - adds r0, r6, 0\n\ - movs r1, 0xDE\n\ - movs r3, 0\n\ - bl CreateSprite\n\ - lsls r0, 24\n\ - lsrs r3, r0, 24\n\ - cmp r3, 0x40\n\ - beq _081678F4\n\ - ldr r0, =gUnknown_0203BCAC\n\ - ldr r0, [r0]\n\ - ldr r1, =0x00007b06\n\ - adds r0, r1\n\ - adds r0, r4\n\ - strb r3, [r0]\n\ - ldr r0, =gSprites\n\ - lsls r2, r3, 4\n\ - adds r2, r3\n\ - lsls r2, 2\n\ - adds r2, r0\n\ - ldrb r3, [r2, 0x1]\n\ - movs r1, 0x3F\n\ - adds r0, r1, 0\n\ - ands r0, r3\n\ - movs r3, 0x40\n\ - orrs r0, r3\n\ - strb r0, [r2, 0x1]\n\ - ldrb r0, [r2, 0x3]\n\ - ands r1, r0\n\ - movs r0, 0x80\n\ - orrs r1, r0\n\ - strb r1, [r2, 0x3]\n\ - b _08167902\n\ - .pool\n\ + movs r0, 0x66\n\ + strh r0, [r6]\n\ + ldr r0, =sub_81681B4\n\ + str r0, [r6, 0x14]\n\ + lsls r2, r4, 2\n\ + adds r2, r4\n\ + lsls r2, 18\n\ + movs r0, 0x80\n\ + lsls r0, 12\n\ + adds r2, r0\n\ + asrs r2, 16\n\ + adds r0, r6, 0\n\ + movs r1, 0xDE\n\ + movs r3, 0\n\ + bl CreateSprite\n\ + lsls r0, 24\n\ + lsrs r3, r0, 24\n\ + cmp r3, 0x40\n\ + beq _081678F4\n\ + ldr r0, =gUnknown_0203BCAC\n\ + ldr r0, [r0]\n\ + ldr r1, =0x00007b06\n\ + adds r0, r1\n\ + adds r0, r4\n\ + strb r3, [r0]\n\ + ldr r0, =gSprites\n\ + lsls r2, r3, 4\n\ + adds r2, r3\n\ + lsls r2, 2\n\ + adds r2, r0\n\ + ldrb r3, [r2, 0x1]\n\ + movs r1, 0x3F\n\ + adds r0, r1, 0\n\ + ands r0, r3\n\ + movs r3, 0x40\n\ + orrs r0, r3\n\ + strb r0, [r2, 0x1]\n\ + ldrb r0, [r2, 0x3]\n\ + ands r1, r0\n\ + movs r0, 0x80\n\ + orrs r1, r0\n\ + strb r1, [r2, 0x3]\n\ + b _08167902\n\ + .pool\n\ _081678F4:\n\ - ldr r0, =gUnknown_0203BCAC\n\ - ldr r0, [r0]\n\ - ldr r2, =0x00007b06\n\ - adds r0, r2\n\ - adds r0, r4\n\ - movs r1, 0xFF\n\ - strb r1, [r0]\n\ + ldr r0, =gUnknown_0203BCAC\n\ + ldr r0, [r0]\n\ + ldr r2, =0x00007b06\n\ + adds r0, r2\n\ + adds r0, r4\n\ + movs r1, 0xFF\n\ + strb r1, [r0]\n\ _08167902:\n\ - mov r0, r9\n\ - mov r1, r10\n\ - bl sub_81D32B0\n\ - mov r0, r9\n\ - bl LoadSpriteSheet\n\ - mov r0, r10\n\ - bl LoadSpritePalette\n\ - add sp, 0x60\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\ - .pool\n\ - .syntax divided\n"); + mov r0, r9\n\ + mov r1, r10\n\ + bl sub_81D32B0\n\ + mov r0, r9\n\ + bl LoadSpriteSheet\n\ + mov r0, r10\n\ + bl LoadSpritePalette\n\ + add sp, 0x60\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\ + .pool\n\ + .syntax divided\n"); } #endif bool8 sub_8167930(void) { - bool8 retvalue; - switch(gUnknown_0203BCAC->info.unk78) - { - case 0: - ChangeBgX(0, 0, 0); - ChangeBgY(0, 0, 0); - ChangeBgX(1, 0, 0); - ChangeBgY(1, 0, 0); - ChangeBgX(2, 0, 0); - ChangeBgY(2, 0, 0); - ChangeBgX(3, 0, 0); - ChangeBgY(3, 136 << 6, 0); - SetGpuReg(REG_OFFSET_DISPCNT, 28736); - SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2|BLDCNT_EFFECT_BLEND|BLDCNT_TGT2_BG1); - SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(11, 4)); - break; - case 1: - (u32 *) gUnknown_0203BCA4 = Alloc(6656); - (u32 *) gUnknown_0203BCA0 = Alloc(1280); - (u32 *) gUnknown_0203BCA8 = Alloc(1280); - break; - case 2: - LZ77UnCompVram(gUnknown_085DFB60, gUnknown_0203BCA8); - break; - case 3: - LoadBgTiles(3, gUnknown_085DFA80, 224, 0); - break; - case 4: - LoadBgTilemap(3, gUnknown_0203BCA8, 1280, 0); - break; - case 5: - LoadPalette(gUnknown_085DFA60, 208, 32); - gUnknown_0203BCAC->field_7B0E = 0xFFB0; - break; - case 6: - LZ77UnCompVram(gUsePokeblockGraph_Gfx, gUnknown_0203BCA4); - break; - case 7: - LZ77UnCompVram(gUsePokeblockGraph_Tilemap, gUnknown_0203BCA0); - LoadPalette(gUsePokeblockGraph_Pal, 32, 32); - break; - case 8: - LoadBgTiles(1, gUnknown_0203BCA4, 6656, 160 << 2); - break; - case 9: - SetBgTilemapBuffer(1, gUnknown_0203BCA0); - CopyToBgTilemapBufferRect(1, gUsePokeblockNatureWin_Pal, 0, 13, 12, 4); - CopyBgTilemapBufferToVram(1); - break; - case 10: - LZ77UnCompVram(gUnknown_085DFC0C, &gUnknown_0203BCAC->field_0[0x7304]); - break; - case 11: - LoadBgTilemap(2, &gUnknown_0203BCAC->field_0[0x7304], 1280, 0); - LoadPalette(gUnknown_086231E8, 48, 32); - LoadPalette(gUnknown_08623208, 240, 32); - sub_81D21DC(2); - break; - default: - gUnknown_0203BCAC->info.unk78 = 0; - retvalue = 0; - return retvalue; - } - gUnknown_0203BCAC->info.unk78++; - retvalue = 1; - return retvalue; + bool8 retvalue; + switch(gUnknown_0203BCAC->info.unk78) + { + case 0: + ChangeBgX(0, 0, 0); + ChangeBgY(0, 0, 0); + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + ChangeBgX(2, 0, 0); + ChangeBgY(2, 0, 0); + ChangeBgX(3, 0, 0); + ChangeBgY(3, 136 << 6, 0); + SetGpuReg(REG_OFFSET_DISPCNT, 28736); + SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2|BLDCNT_EFFECT_BLEND|BLDCNT_TGT2_BG1); + SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(11, 4)); + break; + case 1: + (u32 *) gUnknown_0203BCA4 = Alloc(6656); + (u32 *) gUnknown_0203BCA0 = Alloc(1280); + (u32 *) gUnknown_0203BCA8 = Alloc(1280); + break; + case 2: + LZ77UnCompVram(gUnknown_085DFB60, gUnknown_0203BCA8); + break; + case 3: + LoadBgTiles(3, gUnknown_085DFA80, 224, 0); + break; + case 4: + LoadBgTilemap(3, gUnknown_0203BCA8, 1280, 0); + break; + case 5: + LoadPalette(gUnknown_085DFA60, 208, 32); + gUnknown_0203BCAC->field_7B0E = 0xFFB0; + break; + case 6: + LZ77UnCompVram(gUsePokeblockGraph_Gfx, gUnknown_0203BCA4); + break; + case 7: + LZ77UnCompVram(gUsePokeblockGraph_Tilemap, gUnknown_0203BCA0); + LoadPalette(gUsePokeblockGraph_Pal, 32, 32); + break; + case 8: + LoadBgTiles(1, gUnknown_0203BCA4, 6656, 160 << 2); + break; + case 9: + SetBgTilemapBuffer(1, gUnknown_0203BCA0); + CopyToBgTilemapBufferRect(1, gUsePokeblockNatureWin_Pal, 0, 13, 12, 4); + CopyBgTilemapBufferToVram(1); + break; + case 10: + LZ77UnCompVram(gUnknown_085DFC0C, &gUnknown_0203BCAC->field_0[0x7304]); + break; + case 11: + LoadBgTilemap(2, &gUnknown_0203BCAC->field_0[0x7304], 1280, 0); + LoadPalette(gUnknown_086231E8, 48, 32); + LoadPalette(gUnknown_08623208, 240, 32); + sub_81D21DC(2); + break; + default: + gUnknown_0203BCAC->info.unk78 = 0; + retvalue = 0; + return retvalue; + } + gUnknown_0203BCAC->info.unk78++; + retvalue = 1; + return retvalue; } |