Match sub_8166BEC and do some cleanup
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
#ifndef GUARD_MENU_SPECIALIZED_H
|
#ifndef GUARD_MENU_SPECIALIZED_H
|
||||||
#define GUARD_MENU_SPECIALIZED_H
|
#define GUARD_MENU_SPECIALIZED_H
|
||||||
|
|
||||||
|
#include "sprite.h"
|
||||||
#include "player_pc.h"
|
#include "player_pc.h"
|
||||||
#include "list_menu.h"
|
#include "list_menu.h"
|
||||||
#include "pokemon.h"
|
#include "pokemon.h"
|
||||||
@@ -37,9 +38,11 @@ void sub_81D1ED4(struct UnknownStruct_81D1ED4 *a0);
|
|||||||
void sub_81D2108(struct UnknownStruct_81D1ED4 *arg0);
|
void sub_81D2108(struct UnknownStruct_81D1ED4 *arg0);
|
||||||
void sub_81D20AC(struct UnknownStruct_81D1ED4 *arg0);
|
void sub_81D20AC(struct UnknownStruct_81D1ED4 *arg0);
|
||||||
void sub_81D2230(struct UnknownStruct_81D1ED4 *arg0);
|
void sub_81D2230(struct UnknownStruct_81D1ED4 *arg0);
|
||||||
|
void sub_81D3520(struct Sprite **);
|
||||||
bool8 sub_81D20BC(struct UnknownStruct_81D1ED4 *arg0);
|
bool8 sub_81D20BC(struct UnknownStruct_81D1ED4 *arg0);
|
||||||
void sub_81D3464(void *arg0);
|
void sub_81D354C(struct Sprite **);
|
||||||
void sub_81D3480(void *arg0, u8 arg1, u8 arg2);
|
void sub_81D3464(struct Sprite **arg0);
|
||||||
|
void sub_81D3480(struct Sprite **arg0, u8 arg1, u8 arg2);
|
||||||
void sub_81D2754(u8 *arg0, struct UnknownSubStruct_81D1ED4 *arg1);
|
void sub_81D2754(u8 *arg0, struct UnknownSubStruct_81D1ED4 *arg1);
|
||||||
void sub_81D1F84(struct UnknownStruct_81D1ED4 *arg0, struct UnknownSubStruct_81D1ED4 *arg1, struct UnknownSubStruct_81D1ED4 *arg2);
|
void sub_81D1F84(struct UnknownStruct_81D1ED4 *arg0, struct UnknownSubStruct_81D1ED4 *arg1, struct UnknownSubStruct_81D1ED4 *arg2);
|
||||||
void MoveRelearnerPrintText(u8 *str);
|
void MoveRelearnerPrintText(u8 *str);
|
||||||
|
|||||||
+36
-214
@@ -46,15 +46,19 @@ struct UsePokeblockSubStruct
|
|||||||
|
|
||||||
struct UsePokeblockStruct
|
struct UsePokeblockStruct
|
||||||
{
|
{
|
||||||
/*0x0000*/ u8 field_0[0x7B0E];
|
/*0x0000*/ u8 field_0[0x7B06];
|
||||||
|
/*0x7B06*/ u8 field_7B06[7];
|
||||||
/*0x7B0E*/ u16 field_7B0E;
|
/*0x7B0E*/ u16 field_7B0E;
|
||||||
/*0x7B10*/ u8 field_7B10[0xC];
|
/*0x7B10*/ u8 field_7B10;
|
||||||
/*0x7B1C*/ u8 field_7B1C[0x13C];
|
/*0x7B11*/ u8 field_7B11[0xB];
|
||||||
|
/*0x7B1C*/ struct Sprite *field_7B1C[10];
|
||||||
|
/*0x7B44*/ struct Sprite *field_7B44[0x45];
|
||||||
/*0x7C58*/ struct UnknownStruct_81D1ED4 field_7C58;
|
/*0x7C58*/ struct UnknownStruct_81D1ED4 field_7C58;
|
||||||
/*0x7FB0*/ u8 unk7FB0[3];
|
/*0x7FB0*/ u8 unk7FB0[3];
|
||||||
/*0x7FB3*/ s8 unk7FB3;
|
/*0x7FB3*/ s8 unk7FB3;
|
||||||
/*0x7FB4*/ u8 filler7FB4[0x1C];
|
/*0x7FB4*/ u8 filler7FB4[0x1C];
|
||||||
/*0x7FD0*/ struct UsePokeblockSubStruct info;
|
/*0x7FD0*/ struct UsePokeblockSubStruct info;
|
||||||
|
/*0x804C*/ u8 filler804C[0x20];
|
||||||
};
|
};
|
||||||
|
|
||||||
extern u16 gKeyRepeatStartDelay;
|
extern u16 gKeyRepeatStartDelay;
|
||||||
@@ -76,7 +80,6 @@ void sub_8167608(u8 arg0);
|
|||||||
void sub_8167BA0(u16 arg0, u8 copyToVramMode);
|
void sub_8167BA0(u16 arg0, u8 copyToVramMode);
|
||||||
void sub_8166634(void);
|
void sub_8166634(void);
|
||||||
void sub_8167CA0(bool8);
|
void sub_8167CA0(bool8);
|
||||||
extern void sub_81D3520(u8*);
|
|
||||||
void sub_8166BEC(void);
|
void sub_8166BEC(void);
|
||||||
void sub_8166D44(void);
|
void sub_8166D44(void);
|
||||||
s8 sub_8166DE4(void);
|
s8 sub_8166DE4(void);
|
||||||
@@ -92,7 +95,6 @@ extern void sub_81D2074(void);
|
|||||||
void sub_81681F4(u8);
|
void sub_81681F4(u8);
|
||||||
void sub_8166E24(void);
|
void sub_8166E24(void);
|
||||||
bool8 sub_8166EDC(void);
|
bool8 sub_8166EDC(void);
|
||||||
void sub_81D354C(u8*);
|
|
||||||
void Pokeblock_BufferEnhancedStatText(u8 *dest, u8 statID, s16 a2);
|
void Pokeblock_BufferEnhancedStatText(u8 *dest, u8 statID, s16 a2);
|
||||||
void Pokeblock_MenuWindowTextPrint(const u8 *message);
|
void Pokeblock_MenuWindowTextPrint(const u8 *message);
|
||||||
void sub_8167184(struct Pokeblock *, struct Pokemon *);
|
void sub_8167184(struct Pokeblock *, struct Pokemon *);
|
||||||
@@ -145,7 +147,7 @@ EWRAM_DATA struct UsePokeblockStruct *gUnknown_0203BCAC = NULL;
|
|||||||
// code
|
// code
|
||||||
void ChooseMonToGivePokeblock(struct Pokeblock *pokeblock, void (*callback)(void))
|
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 = &gUnknown_0203BCAC->info;
|
||||||
gUnknown_0203BC90->pokeblock = pokeblock;
|
gUnknown_0203BC90->pokeblock = pokeblock;
|
||||||
gUnknown_0203BC90->callback = callback;
|
gUnknown_0203BC90->callback = callback;
|
||||||
@@ -155,7 +157,7 @@ void ChooseMonToGivePokeblock(struct Pokeblock *pokeblock, void (*callback)(void
|
|||||||
|
|
||||||
void CB2_ReturnAndChooseMonToGivePokeblock(void)
|
void CB2_ReturnAndChooseMonToGivePokeblock(void)
|
||||||
{
|
{
|
||||||
gUnknown_0203BCAC = AllocZeroed(0x806C);
|
gUnknown_0203BCAC = AllocZeroed(sizeof(*gUnknown_0203BCAC));
|
||||||
gUnknown_0203BC90 = &gUnknown_0203BCAC->info;
|
gUnknown_0203BC90 = &gUnknown_0203BCAC->info;
|
||||||
gUnknown_0203BC90->pokeblock = gUnknown_0203BC98;
|
gUnknown_0203BC90->pokeblock = gUnknown_0203BC98;
|
||||||
gUnknown_0203BC90->callback = gUnknown_0203BC94;
|
gUnknown_0203BC90->callback = gUnknown_0203BC94;
|
||||||
@@ -215,7 +217,7 @@ void sub_8166380(void)
|
|||||||
switch (gUnknown_0203BC90->field_50)
|
switch (gUnknown_0203BC90->field_50)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
gUnknown_0203BCAC->field_0[0x7B10] = 0xFF;
|
gUnknown_0203BCAC->field_7B10 = 0xFF;
|
||||||
sub_81D1ED4(&gUnknown_0203BCAC->field_7C58);
|
sub_81D1ED4(&gUnknown_0203BCAC->field_7C58);
|
||||||
gUnknown_0203BC90->field_50++;
|
gUnknown_0203BC90->field_50++;
|
||||||
break;
|
break;
|
||||||
@@ -242,9 +244,7 @@ void sub_8166380(void)
|
|||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
if (!sub_8168328())
|
if (!sub_8168328())
|
||||||
{
|
|
||||||
gUnknown_0203BC90->field_50++;
|
gUnknown_0203BC90->field_50++;
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
gKeyRepeatStartDelay = 20;
|
gKeyRepeatStartDelay = 20;
|
||||||
@@ -253,9 +253,7 @@ void sub_8166380(void)
|
|||||||
break;
|
break;
|
||||||
case 7:
|
case 7:
|
||||||
if (!sub_8167930())
|
if (!sub_8167930())
|
||||||
{
|
|
||||||
gUnknown_0203BC90->field_50++;
|
gUnknown_0203BC90->field_50++;
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
sub_8167608(0);
|
sub_8167608(0);
|
||||||
@@ -263,10 +261,8 @@ void sub_8166380(void)
|
|||||||
gUnknown_0203BC90->field_50++;
|
gUnknown_0203BC90->field_50++;
|
||||||
break;
|
break;
|
||||||
case 9:
|
case 9:
|
||||||
if (!sub_81D312C(&gUnknown_0203BCAC->field_0[0x7B0E]))
|
if (!sub_81D312C(&gUnknown_0203BCAC->field_7B0E))
|
||||||
{
|
|
||||||
gUnknown_0203BC90->field_50++;
|
gUnknown_0203BC90->field_50++;
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case 10:
|
case 10:
|
||||||
gUnknown_0203BC90->field_50++;
|
gUnknown_0203BC90->field_50++;
|
||||||
@@ -304,7 +300,7 @@ void sub_8166564(void)
|
|||||||
switch (gUnknown_0203BC90->field_50)
|
switch (gUnknown_0203BC90->field_50)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0));
|
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK);
|
||||||
SetVBlankCallback(sub_8166340);
|
SetVBlankCallback(sub_8166340);
|
||||||
ShowBg(0);
|
ShowBg(0);
|
||||||
ShowBg(1);
|
ShowBg(1);
|
||||||
@@ -315,11 +311,11 @@ void sub_8166564(void)
|
|||||||
case 1:
|
case 1:
|
||||||
if (!gPaletteFade.active)
|
if (!gPaletteFade.active)
|
||||||
{
|
{
|
||||||
sub_81D3464(&gUnknown_0203BCAC->field_7B1C);
|
sub_81D3464(gUnknown_0203BCAC->field_7B1C);
|
||||||
if (gUnknown_0203BCAC->info.field_71 != gUnknown_0203BCAC->info.field_70 - 1)
|
if (gUnknown_0203BCAC->info.field_71 != gUnknown_0203BCAC->info.field_70 - 1)
|
||||||
{
|
{
|
||||||
u8 var0 = gUnknown_0203BCAC->unk7FB0[gUnknown_0203BCAC->unk7FB3];
|
u8 var0 = gUnknown_0203BCAC->unk7FB0[gUnknown_0203BCAC->unk7FB3];
|
||||||
sub_81D3480(&gUnknown_0203BCAC->field_7B1C, gUnknown_0203BCAC->field_7B10[0], var0);
|
sub_81D3480(gUnknown_0203BCAC->field_7B1C, gUnknown_0203BCAC->field_7B10, var0);
|
||||||
}
|
}
|
||||||
|
|
||||||
sub_816636C(sub_8166634);
|
sub_816636C(sub_8166634);
|
||||||
@@ -338,14 +334,14 @@ void sub_8166634(void)
|
|||||||
{
|
{
|
||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
sub_8167CA0(TRUE);
|
sub_8167CA0(TRUE);
|
||||||
sub_81D3520(&gUnknown_0203BCAC->field_0[0x7B1C]);
|
sub_81D3520(gUnknown_0203BCAC->field_7B1C);
|
||||||
gUnknown_0203BC90->field_50 = 1;
|
gUnknown_0203BC90->field_50 = 1;
|
||||||
}
|
}
|
||||||
else if (gMain.heldKeys & DPAD_DOWN)
|
else if (gMain.heldKeys & DPAD_DOWN)
|
||||||
{
|
{
|
||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
sub_8167CA0(FALSE);
|
sub_8167CA0(FALSE);
|
||||||
sub_81D3520(&gUnknown_0203BCAC->field_0[0x7B1C]);
|
sub_81D3520(gUnknown_0203BCAC->field_7B1C);
|
||||||
gUnknown_0203BC90->field_50 = 1;
|
gUnknown_0203BC90->field_50 = 1;
|
||||||
}
|
}
|
||||||
else if (gMain.newKeys & B_BUTTON)
|
else if (gMain.newKeys & B_BUTTON)
|
||||||
@@ -357,15 +353,10 @@ void sub_8166634(void)
|
|||||||
{
|
{
|
||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
if (gUnknown_0203BCAC->info.field_71 == gUnknown_0203BCAC->info.field_70 - 1)
|
if (gUnknown_0203BCAC->info.field_71 == gUnknown_0203BCAC->info.field_70 - 1)
|
||||||
{
|
|
||||||
gUnknown_0203BC90->field_50 = 3;
|
gUnknown_0203BC90->field_50 = 3;
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
|
||||||
gUnknown_0203BC90->field_50 = 5;
|
gUnknown_0203BC90->field_50 = 5;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
var = gUnknown_0203BCAC->info.unk74();
|
var = gUnknown_0203BCAC->info.unk74();
|
||||||
@@ -421,7 +412,7 @@ void sub_816681C(void)
|
|||||||
gPokeblockMonId = sub_81672A4(gUnknown_0203BCAC->info.field_71);
|
gPokeblockMonId = sub_81672A4(gUnknown_0203BCAC->info.field_71);
|
||||||
gUnknown_0203BC94 = gUnknown_0203BC90->callback;
|
gUnknown_0203BC94 = gUnknown_0203BC90->callback;
|
||||||
gUnknown_0203BC98 = gUnknown_0203BC90->pokeblock;
|
gUnknown_0203BC98 = gUnknown_0203BC90->pokeblock;
|
||||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0));
|
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
|
||||||
gUnknown_0203BC90->field_50++;
|
gUnknown_0203BC90->field_50++;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
@@ -446,9 +437,9 @@ void sub_816681C(void)
|
|||||||
|
|
||||||
void sub_81668F8(void)
|
void sub_81668F8(void)
|
||||||
{
|
{
|
||||||
|
u16 var;
|
||||||
switch (gUnknown_0203BC90->field_50)
|
switch (gUnknown_0203BC90->field_50)
|
||||||
{
|
{
|
||||||
u16 var;
|
|
||||||
case 0:
|
case 0:
|
||||||
if (gUnknown_0203BCAC->info.field_71 != gPokeblockMonId)
|
if (gUnknown_0203BCAC->info.field_71 != gPokeblockMonId)
|
||||||
{
|
{
|
||||||
@@ -463,14 +454,12 @@ void sub_81668F8(void)
|
|||||||
case 1:
|
case 1:
|
||||||
var = gUnknown_0203BCAC->info.unk74();
|
var = gUnknown_0203BCAC->info.unk74();
|
||||||
if (!var)
|
if (!var)
|
||||||
{
|
|
||||||
gUnknown_0203BC90->field_50 = var;
|
gUnknown_0203BC90->field_50 = var;
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
BlendPalettes(0xFFFFFFFF, 16, RGB(0, 0, 0));
|
BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK);
|
||||||
gUnknown_0203BC90->field_50++;
|
gUnknown_0203BC90->field_50++;
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
@@ -482,13 +471,13 @@ void sub_81668F8(void)
|
|||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
SetVBlankCallback(sub_8166340);
|
SetVBlankCallback(sub_8166340);
|
||||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB(0, 0, 0));
|
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK);
|
||||||
gUnknown_0203BC90->field_50++;
|
gUnknown_0203BC90->field_50++;
|
||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
if (!gPaletteFade.active)
|
if (!gPaletteFade.active)
|
||||||
{
|
{
|
||||||
sub_81D3464(&gUnknown_0203BCAC->field_0[0x7B1C]);
|
sub_81D3464(gUnknown_0203BCAC->field_7B1C);
|
||||||
sub_816636C(sub_8166A34);
|
sub_816636C(sub_8166A34);
|
||||||
SetMainCallback2(sub_816631C);
|
SetMainCallback2(sub_816631C);
|
||||||
}
|
}
|
||||||
@@ -506,7 +495,7 @@ void sub_8166A34(void)
|
|||||||
gUnknown_0203BC90->field_5c[0] = (u8) &gPlayerParty;
|
gUnknown_0203BC90->field_5c[0] = (u8) &gPlayerParty;
|
||||||
gUnknown_0203BCAC->info.field_71 = (u32) &gUnknown_0203BCAC->field_0[gUnknown_0203BCAC->info.field_71];
|
gUnknown_0203BCAC->info.field_71 = (u32) &gUnknown_0203BCAC->field_0[gUnknown_0203BCAC->info.field_71];
|
||||||
gUnknown_0203BC90->field_5c[0] = &gPlayerParty
|
gUnknown_0203BC90->field_5c[0] = &gPlayerParty
|
||||||
sub_81D3520(&gUnknown_0203BCAC->field_0[0x7B1C]);
|
sub_81D3520(gUnknown_0203BCAC->field_7B1C);
|
||||||
/*gUnknown_0203BCAC->pokemon = &gPlayerParty[gUnknown_083DFEC4->unk893c[gUnknown_0203BCAC->field_0[0x7B1C]].partyIdx];
|
/*gUnknown_0203BCAC->pokemon = &gPlayerParty[gUnknown_083DFEC4->unk893c[gUnknown_0203BCAC->field_0[0x7B1C]].partyIdx];
|
||||||
move_anim_execute();*/
|
move_anim_execute();*/
|
||||||
gUnknown_0203BC90->field_50++;
|
gUnknown_0203BC90->field_50++;
|
||||||
@@ -740,7 +729,6 @@ _08166BDA:\n\
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef NONMATCHING
|
|
||||||
void sub_8166BEC(void)
|
void sub_8166BEC(void)
|
||||||
{
|
{
|
||||||
u8 i;
|
u8 i;
|
||||||
@@ -748,14 +736,12 @@ void sub_8166BEC(void)
|
|||||||
switch (gUnknown_0203BC90->field_50)
|
switch (gUnknown_0203BC90->field_50)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0));
|
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
|
||||||
gUnknown_0203BC90->field_50++;
|
gUnknown_0203BC90->field_50++;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
if (!gPaletteFade.active)
|
if (!gPaletteFade.active)
|
||||||
{
|
|
||||||
gUnknown_0203BC90->field_50 = 2;
|
gUnknown_0203BC90->field_50 = 2;
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
gScanlineEffect.state = 3;
|
gScanlineEffect.state = 3;
|
||||||
@@ -764,193 +750,30 @@ void sub_8166BEC(void)
|
|||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
SetMainCallback2(gUnknown_0203BC90->callback);
|
SetMainCallback2(gUnknown_0203BC90->callback);
|
||||||
sub_81D354C(&gUnknown_0203BCAC->field_0[0x7B1C]);
|
sub_81D354C(gUnknown_0203BCAC->field_7B1C);
|
||||||
for(i = 0; i < 7; i++)
|
for (i = 0; i < 7; i++)
|
||||||
{
|
DestroySprite(&gSprites[gUnknown_0203BCAC->field_7B06[i]]);
|
||||||
DestroySprite(&gSprites[gUnknown_0203BCAC->field_0[0x7B06 + i]]);
|
|
||||||
}
|
|
||||||
|
|
||||||
FreeSpriteTilesByTag(0);
|
FreeSpriteTilesByTag(0);
|
||||||
FreeSpriteTilesByTag(1);
|
FreeSpriteTilesByTag(1);
|
||||||
FreeSpriteTilesByTag(0);
|
FreeSpritePaletteByTag(0);
|
||||||
FreeSpriteTilesByTag(1);
|
FreeSpritePaletteByTag(1);
|
||||||
|
|
||||||
for(i = 0; i < 2; i++)
|
for (i = 0; i < 2; i++)
|
||||||
{
|
DestroySprite(gUnknown_0203BCAC->field_7B44[i]);
|
||||||
DestroySprite(&gUnknown_0203BCAC->sprite7B44[i*4]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(gUnknown_0203BCAC->field_0[0x7B10] != 255)
|
if (gUnknown_0203BCAC->field_7B10 != 0xFF)
|
||||||
{
|
DestroySprite(&gSprites[gUnknown_0203BCAC->field_7B10]);
|
||||||
DestroySprite(&gSprites[gUnknown_0203BCAC->field_0[0x7B10]]);
|
|
||||||
return;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
SetVBlankCallback(NULL);
|
SetVBlankCallback(NULL);
|
||||||
Free(gUnknown_0203BCA0);
|
FREE_AND_SET_NULL(gUnknown_0203BCA0);
|
||||||
gUnknown_0203BCA0 = NULL;
|
FREE_AND_SET_NULL(gUnknown_0203BCA4);
|
||||||
Free(gUnknown_0203BCA4);
|
FREE_AND_SET_NULL(gUnknown_0203BCA8);
|
||||||
gUnknown_0203BCA0 = NULL;
|
FREE_AND_SET_NULL(gUnknown_0203BCAC);
|
||||||
Free(gUnknown_0203BCA8);
|
|
||||||
gUnknown_0203BCA8 = NULL;
|
|
||||||
Free(gUnknown_0203BCAC);
|
|
||||||
gUnknown_0203BCAC = NULL;
|
|
||||||
FreeAllWindowBuffers();
|
FreeAllWindowBuffers();
|
||||||
break;
|
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)
|
void sub_8166D44(void)
|
||||||
{
|
{
|
||||||
@@ -980,7 +803,6 @@ s8 sub_8166DE4(void)
|
|||||||
rbox_fill_rectangle(2);
|
rbox_fill_rectangle(2);
|
||||||
ClearWindowTilemap(2);
|
ClearWindowTilemap(2);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user