Start berry_pouch decomp
This commit is contained in:
@@ -5,384 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start InitBerryPouch
|
|
||||||
InitBerryPouch: @ 813CD50
|
|
||||||
push {r4-r7,lr}
|
|
||||||
mov r7, r8
|
|
||||||
push {r7}
|
|
||||||
adds r4, r1, 0
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r5, r0, 24
|
|
||||||
lsls r2, 24
|
|
||||||
lsrs r6, r2, 24
|
|
||||||
ldr r7, _0813CD78 @ =gUnknown_203F36C
|
|
||||||
ldr r0, _0813CD7C @ =0x00000814
|
|
||||||
bl Alloc
|
|
||||||
str r0, [r7]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _0813CD80
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl SetMainCallback2
|
|
||||||
b _0813CDE2
|
|
||||||
.align 2, 0
|
|
||||||
_0813CD78: .4byte gUnknown_203F36C
|
|
||||||
_0813CD7C: .4byte 0x00000814
|
|
||||||
_0813CD80:
|
|
||||||
cmp r5, 0x6
|
|
||||||
beq _0813CD88
|
|
||||||
ldr r0, _0813CDEC @ =gUnknown_203F370
|
|
||||||
strb r5, [r0, 0x4]
|
|
||||||
_0813CD88:
|
|
||||||
cmp r6, 0xFF
|
|
||||||
beq _0813CD90
|
|
||||||
ldr r0, _0813CDEC @ =gUnknown_203F370
|
|
||||||
strb r6, [r0, 0x5]
|
|
||||||
_0813CD90:
|
|
||||||
cmp r4, 0
|
|
||||||
beq _0813CD98
|
|
||||||
ldr r0, _0813CDEC @ =gUnknown_203F370
|
|
||||||
str r4, [r0]
|
|
||||||
_0813CD98:
|
|
||||||
ldr r1, [r7]
|
|
||||||
movs r0, 0
|
|
||||||
str r0, [r1]
|
|
||||||
strb r0, [r1, 0x9]
|
|
||||||
ldr r1, [r7]
|
|
||||||
movs r0, 0xFF
|
|
||||||
strb r0, [r1, 0x6]
|
|
||||||
movs r2, 0
|
|
||||||
ldr r6, _0813CDF0 @ =gTextFlags
|
|
||||||
ldr r0, _0813CDF4 @ =gSpecialVar_ItemId
|
|
||||||
mov r12, r0
|
|
||||||
ldr r1, _0813CDF8 @ =sub_813CE30
|
|
||||||
mov r8, r1
|
|
||||||
adds r5, r7, 0
|
|
||||||
ldr r4, _0813CDFC @ =0x0000080c
|
|
||||||
movs r3, 0
|
|
||||||
_0813CDB8:
|
|
||||||
ldr r0, [r5]
|
|
||||||
lsls r1, r2, 1
|
|
||||||
adds r0, r4
|
|
||||||
adds r0, r1
|
|
||||||
strh r3, [r0]
|
|
||||||
adds r0, r2, 0x1
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r2, r0, 24
|
|
||||||
cmp r2, 0x3
|
|
||||||
bls _0813CDB8
|
|
||||||
ldrb r0, [r6]
|
|
||||||
movs r1, 0x5
|
|
||||||
negs r1, r1
|
|
||||||
ands r1, r0
|
|
||||||
strb r1, [r6]
|
|
||||||
movs r0, 0
|
|
||||||
mov r1, r12
|
|
||||||
strh r0, [r1]
|
|
||||||
mov r0, r8
|
|
||||||
bl SetMainCallback2
|
|
||||||
_0813CDE2:
|
|
||||||
pop {r3}
|
|
||||||
mov r8, r3
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_0813CDEC: .4byte gUnknown_203F370
|
|
||||||
_0813CDF0: .4byte gTextFlags
|
|
||||||
_0813CDF4: .4byte gSpecialVar_ItemId
|
|
||||||
_0813CDF8: .4byte sub_813CE30
|
|
||||||
_0813CDFC: .4byte 0x0000080c
|
|
||||||
thumb_func_end InitBerryPouch
|
|
||||||
|
|
||||||
thumb_func_start sub_813CE00
|
|
||||||
sub_813CE00: @ 813CE00
|
|
||||||
push {lr}
|
|
||||||
bl RunTasks
|
|
||||||
bl AnimateSprites
|
|
||||||
bl BuildOamBuffer
|
|
||||||
bl DoScheduledBgTilemapCopiesToVram
|
|
||||||
bl UpdatePaletteFade
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end sub_813CE00
|
|
||||||
|
|
||||||
thumb_func_start sub_813CE1C
|
|
||||||
sub_813CE1C: @ 813CE1C
|
|
||||||
push {lr}
|
|
||||||
bl LoadOam
|
|
||||||
bl ProcessSpriteCopyRequests
|
|
||||||
bl TransferPlttBuffer
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end sub_813CE1C
|
|
||||||
|
|
||||||
thumb_func_start sub_813CE30
|
|
||||||
sub_813CE30: @ 813CE30
|
|
||||||
push {lr}
|
|
||||||
_0813CE32:
|
|
||||||
bl sub_80BF72C
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
cmp r0, 0x1
|
|
||||||
beq _0813CE56
|
|
||||||
bl sub_813CE5C
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
cmp r0, 0x1
|
|
||||||
beq _0813CE56
|
|
||||||
bl MenuHelpers_LinkSomething
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
cmp r0, 0x1
|
|
||||||
bne _0813CE32
|
|
||||||
_0813CE56:
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end sub_813CE30
|
|
||||||
|
|
||||||
thumb_func_start sub_813CE5C
|
|
||||||
sub_813CE5C: @ 813CE5C
|
|
||||||
push {r4,lr}
|
|
||||||
sub sp, 0x4
|
|
||||||
ldr r0, _0813CE7C @ =gMain
|
|
||||||
movs r1, 0x87
|
|
||||||
lsls r1, 3
|
|
||||||
adds r0, r1
|
|
||||||
ldrb r0, [r0]
|
|
||||||
cmp r0, 0x12
|
|
||||||
bls _0813CE70
|
|
||||||
b _0813CFE8
|
|
||||||
_0813CE70:
|
|
||||||
lsls r0, 2
|
|
||||||
ldr r1, _0813CE80 @ =_0813CE84
|
|
||||||
adds r0, r1
|
|
||||||
ldr r0, [r0]
|
|
||||||
mov pc, r0
|
|
||||||
.align 2, 0
|
|
||||||
_0813CE7C: .4byte gMain
|
|
||||||
_0813CE80: .4byte _0813CE84
|
|
||||||
.align 2, 0
|
|
||||||
_0813CE84:
|
|
||||||
.4byte _0813CED0
|
|
||||||
.4byte _0813CEDA
|
|
||||||
.4byte _0813CEE0
|
|
||||||
.4byte _0813CEE6
|
|
||||||
.4byte _0813CEEC
|
|
||||||
.4byte _0813CEF2
|
|
||||||
.4byte _0813CEF8
|
|
||||||
.4byte _0813CF08
|
|
||||||
.4byte _0813CF24
|
|
||||||
.4byte _0813CF30
|
|
||||||
.4byte _0813CF36
|
|
||||||
.4byte _0813CF44
|
|
||||||
.4byte _0813CF56
|
|
||||||
.4byte _0813CF5C
|
|
||||||
.4byte _0813CF62
|
|
||||||
.4byte _0813CFA4
|
|
||||||
.4byte _0813CFAA
|
|
||||||
.4byte _0813CFB0
|
|
||||||
.4byte _0813CFBE
|
|
||||||
_0813CED0:
|
|
||||||
bl SetVBlankHBlankCallbacksToNull
|
|
||||||
bl ClearScheduledBgCopiesToVram
|
|
||||||
b _0813CFD2
|
|
||||||
_0813CEDA:
|
|
||||||
bl ScanlineEffect_Stop
|
|
||||||
b _0813CFD2
|
|
||||||
_0813CEE0:
|
|
||||||
bl FreeAllSpritePalettes
|
|
||||||
b _0813CFD2
|
|
||||||
_0813CEE6:
|
|
||||||
bl ResetPaletteFade
|
|
||||||
b _0813CFD2
|
|
||||||
_0813CEEC:
|
|
||||||
bl ResetSpriteData
|
|
||||||
b _0813CFD2
|
|
||||||
_0813CEF2:
|
|
||||||
bl ResetItemMenuIconState
|
|
||||||
b _0813CFD2
|
|
||||||
_0813CEF8:
|
|
||||||
bl MenuHelpers_LinkSomething
|
|
||||||
lsls r0, 24
|
|
||||||
cmp r0, 0
|
|
||||||
bne _0813CFD2
|
|
||||||
bl ResetTasks
|
|
||||||
b _0813CFD2
|
|
||||||
_0813CF08:
|
|
||||||
bl sub_813D07C
|
|
||||||
ldr r0, _0813CF1C @ =gUnknown_203F36C
|
|
||||||
ldr r0, [r0]
|
|
||||||
ldr r1, _0813CF20 @ =0x0000080c
|
|
||||||
adds r0, r1
|
|
||||||
movs r1, 0
|
|
||||||
strh r1, [r0]
|
|
||||||
b _0813CFD2
|
|
||||||
.align 2, 0
|
|
||||||
_0813CF1C: .4byte gUnknown_203F36C
|
|
||||||
_0813CF20: .4byte 0x0000080c
|
|
||||||
_0813CF24:
|
|
||||||
bl sub_813D0E4
|
|
||||||
lsls r0, 24
|
|
||||||
cmp r0, 0
|
|
||||||
beq _0813D000
|
|
||||||
b _0813CFD2
|
|
||||||
_0813CF30:
|
|
||||||
bl sub_813E910
|
|
||||||
b _0813CFD2
|
|
||||||
_0813CF36:
|
|
||||||
bl sub_813D8AC
|
|
||||||
bl sub_813D6F4
|
|
||||||
bl sub_813D754
|
|
||||||
b _0813CFD2
|
|
||||||
_0813CF44:
|
|
||||||
bl sub_813D1C0
|
|
||||||
lsls r0, 24
|
|
||||||
cmp r0, 0
|
|
||||||
bne _0813CFD2
|
|
||||||
bl sub_813D00C
|
|
||||||
movs r0, 0x1
|
|
||||||
b _0813D002
|
|
||||||
_0813CF56:
|
|
||||||
bl sub_813D204
|
|
||||||
b _0813CFD2
|
|
||||||
_0813CF5C:
|
|
||||||
bl sub_813D6A4
|
|
||||||
b _0813CFD2
|
|
||||||
_0813CF62:
|
|
||||||
ldr r0, _0813CF94 @ =sub_813DA68
|
|
||||||
movs r1, 0
|
|
||||||
bl CreateTask
|
|
||||||
adds r4, r0, 0
|
|
||||||
lsls r4, 24
|
|
||||||
lsrs r4, 24
|
|
||||||
ldr r0, _0813CF98 @ =gMultiuseListMenuTemplate
|
|
||||||
ldr r2, _0813CF9C @ =gUnknown_203F370
|
|
||||||
ldrh r1, [r2, 0xA]
|
|
||||||
ldrh r2, [r2, 0x8]
|
|
||||||
bl ListMenuInit
|
|
||||||
ldr r2, _0813CFA0 @ =gTasks
|
|
||||||
lsls r1, r4, 2
|
|
||||||
adds r1, r4
|
|
||||||
lsls r1, 3
|
|
||||||
adds r1, r2
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
movs r2, 0
|
|
||||||
strh r0, [r1, 0x8]
|
|
||||||
strh r2, [r1, 0x18]
|
|
||||||
b _0813CFD2
|
|
||||||
.align 2, 0
|
|
||||||
_0813CF94: .4byte sub_813DA68
|
|
||||||
_0813CF98: .4byte gMultiuseListMenuTemplate
|
|
||||||
_0813CF9C: .4byte gUnknown_203F370
|
|
||||||
_0813CFA0: .4byte gTasks
|
|
||||||
_0813CFA4:
|
|
||||||
bl sub_813EC08
|
|
||||||
b _0813CFD2
|
|
||||||
_0813CFAA:
|
|
||||||
bl sub_813D5BC
|
|
||||||
b _0813CFD2
|
|
||||||
_0813CFB0:
|
|
||||||
movs r0, 0x1
|
|
||||||
negs r0, r0
|
|
||||||
movs r1, 0x10
|
|
||||||
movs r2, 0
|
|
||||||
bl BlendPalettes
|
|
||||||
b _0813CFD2
|
|
||||||
_0813CFBE:
|
|
||||||
movs r0, 0x1
|
|
||||||
negs r0, r0
|
|
||||||
movs r1, 0x2
|
|
||||||
negs r1, r1
|
|
||||||
movs r2, 0
|
|
||||||
str r2, [sp]
|
|
||||||
movs r2, 0x10
|
|
||||||
movs r3, 0
|
|
||||||
bl BeginNormalPaletteFade
|
|
||||||
_0813CFD2:
|
|
||||||
ldr r1, _0813CFE4 @ =gMain
|
|
||||||
movs r0, 0x87
|
|
||||||
lsls r0, 3
|
|
||||||
adds r1, r0
|
|
||||||
ldrb r0, [r1]
|
|
||||||
adds r0, 0x1
|
|
||||||
strb r0, [r1]
|
|
||||||
b _0813D000
|
|
||||||
.align 2, 0
|
|
||||||
_0813CFE4: .4byte gMain
|
|
||||||
_0813CFE8:
|
|
||||||
ldr r0, _0813CFF8 @ =sub_813CE1C
|
|
||||||
bl SetVBlankCallback
|
|
||||||
ldr r0, _0813CFFC @ =sub_813CE00
|
|
||||||
bl SetMainCallback2
|
|
||||||
movs r0, 0x1
|
|
||||||
b _0813D002
|
|
||||||
.align 2, 0
|
|
||||||
_0813CFF8: .4byte sub_813CE1C
|
|
||||||
_0813CFFC: .4byte sub_813CE00
|
|
||||||
_0813D000:
|
|
||||||
movs r0, 0
|
|
||||||
_0813D002:
|
|
||||||
add sp, 0x4
|
|
||||||
pop {r4}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_813CE5C
|
|
||||||
|
|
||||||
thumb_func_start sub_813D00C
|
|
||||||
sub_813D00C: @ 813D00C
|
|
||||||
push {lr}
|
|
||||||
sub sp, 0x4
|
|
||||||
movs r0, 0x1
|
|
||||||
negs r0, r0
|
|
||||||
movs r1, 0x2
|
|
||||||
negs r1, r1
|
|
||||||
movs r2, 0
|
|
||||||
str r2, [sp]
|
|
||||||
movs r3, 0x10
|
|
||||||
bl BeginNormalPaletteFade
|
|
||||||
ldr r0, _0813D03C @ =sub_813D048
|
|
||||||
movs r1, 0
|
|
||||||
bl CreateTask
|
|
||||||
ldr r0, _0813D040 @ =sub_813CE1C
|
|
||||||
bl SetVBlankCallback
|
|
||||||
ldr r0, _0813D044 @ =sub_813CE00
|
|
||||||
bl SetMainCallback2
|
|
||||||
add sp, 0x4
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_0813D03C: .4byte sub_813D048
|
|
||||||
_0813D040: .4byte sub_813CE1C
|
|
||||||
_0813D044: .4byte sub_813CE00
|
|
||||||
thumb_func_end sub_813D00C
|
|
||||||
|
|
||||||
thumb_func_start sub_813D048
|
|
||||||
sub_813D048: @ 813D048
|
|
||||||
push {r4,lr}
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r4, r0, 24
|
|
||||||
ldr r0, _0813D074 @ =gPaletteFade
|
|
||||||
ldrb r1, [r0, 0x7]
|
|
||||||
movs r0, 0x80
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
bne _0813D06C
|
|
||||||
ldr r0, _0813D078 @ =gUnknown_203F370
|
|
||||||
ldr r0, [r0]
|
|
||||||
bl SetMainCallback2
|
|
||||||
bl sub_813D7CC
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl DestroyTask
|
|
||||||
_0813D06C:
|
|
||||||
pop {r4}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_0813D074: .4byte gPaletteFade
|
|
||||||
_0813D078: .4byte gUnknown_203F370
|
|
||||||
thumb_func_end sub_813D048
|
|
||||||
|
|
||||||
thumb_func_start sub_813D07C
|
thumb_func_start sub_813D07C
|
||||||
sub_813D07C: @ 813D07C
|
sub_813D07C: @ 813D07C
|
||||||
push {r4,lr}
|
push {r4,lr}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "task.h"
|
#include "task.h"
|
||||||
|
#include "window.h"
|
||||||
|
|
||||||
struct YesNoFuncTable
|
struct YesNoFuncTable
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -251,6 +251,7 @@ SECTIONS {
|
|||||||
src/help_system.o(.text);
|
src/help_system.o(.text);
|
||||||
asm/wild_pokemon_area.o(.text);
|
asm/wild_pokemon_area.o(.text);
|
||||||
src/dynamic_placeholder_text_util.o(.text);
|
src/dynamic_placeholder_text_util.o(.text);
|
||||||
|
src/berry_pouch.o(.text);
|
||||||
asm/berry_pouch.o(.text);
|
asm/berry_pouch.o(.text);
|
||||||
asm/itemfinder.o(.text);
|
asm/itemfinder.o(.text);
|
||||||
src/buy_menu_helpers.o(.text);
|
src/buy_menu_helpers.o(.text);
|
||||||
|
|||||||
@@ -0,0 +1,233 @@
|
|||||||
|
#include "global.h"
|
||||||
|
#include "malloc.h"
|
||||||
|
#include "bg.h"
|
||||||
|
#include "palette.h"
|
||||||
|
#include "text.h"
|
||||||
|
#include "berry_pouch.h"
|
||||||
|
#include "item_menu.h"
|
||||||
|
#include "menu_helpers.h"
|
||||||
|
#include "new_menu_helpers.h"
|
||||||
|
#include "scanline_effect.h"
|
||||||
|
#include "item_menu_icons.h"
|
||||||
|
#include "list_menu.h"
|
||||||
|
#include "constants/items.h"
|
||||||
|
|
||||||
|
struct BerryPouchStruct_203F36C
|
||||||
|
{
|
||||||
|
u32 unk_000;
|
||||||
|
u8 filler_004[2];
|
||||||
|
u8 unk_006;
|
||||||
|
u8 filler_007[2];
|
||||||
|
u8 unk_009;
|
||||||
|
u8 filler_00a[2];
|
||||||
|
u8 filler_00c[0x800];
|
||||||
|
u16 unk_80C[4];
|
||||||
|
};
|
||||||
|
|
||||||
|
struct BerryPouchStruct_203F370
|
||||||
|
{
|
||||||
|
void (*savedCallback)(void);
|
||||||
|
u8 unk_04;
|
||||||
|
u8 unk_05;
|
||||||
|
u8 filler_06[2];
|
||||||
|
u16 unk_08;
|
||||||
|
u16 unk_0A;
|
||||||
|
};
|
||||||
|
|
||||||
|
EWRAM_DATA struct BerryPouchStruct_203F36C *gUnknown_203F36C = NULL;
|
||||||
|
EWRAM_DATA struct BerryPouchStruct_203F370 gUnknown_203F370 = {};
|
||||||
|
|
||||||
|
void sub_813CE30(void);
|
||||||
|
bool8 sub_813CE5C(void);
|
||||||
|
void sub_813D00C(void);
|
||||||
|
void sub_813D048(u8 taskId);
|
||||||
|
void sub_813D07C(void);
|
||||||
|
bool8 sub_813D0E4(void);
|
||||||
|
bool8 sub_813D1C0(void);
|
||||||
|
void sub_813D204(void);
|
||||||
|
void sub_813D5BC(void);
|
||||||
|
void sub_813D6A4(void);
|
||||||
|
void sub_813D6F4(void);
|
||||||
|
void sub_813D754(void);
|
||||||
|
void sub_813D7CC(void);
|
||||||
|
void sub_813D8AC(void);
|
||||||
|
void sub_813DA68(u8 taskId);
|
||||||
|
void sub_813E910(void);
|
||||||
|
void sub_813EC08(void);
|
||||||
|
|
||||||
|
void InitBerryPouch(u8 a0, void (*savedCallback)(void), u8 a2)
|
||||||
|
{
|
||||||
|
u8 i;
|
||||||
|
|
||||||
|
gUnknown_203F36C = Alloc(sizeof(struct BerryPouchStruct_203F36C));
|
||||||
|
if (gUnknown_203F36C == NULL)
|
||||||
|
{
|
||||||
|
SetMainCallback2(savedCallback);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (a0 != 6)
|
||||||
|
gUnknown_203F370.unk_04 = a0;
|
||||||
|
if (a2 != 0xFF)
|
||||||
|
gUnknown_203F370.unk_05 = a2;
|
||||||
|
if (savedCallback != NULL)
|
||||||
|
gUnknown_203F370.savedCallback = savedCallback;
|
||||||
|
gUnknown_203F36C->unk_000 = 0;
|
||||||
|
gUnknown_203F36C->unk_009 = 0;
|
||||||
|
gUnknown_203F36C->unk_006 = 0xFF;
|
||||||
|
for (i = 0; i < 4; i++)
|
||||||
|
gUnknown_203F36C->unk_80C[i] = 0;
|
||||||
|
gTextFlags.autoScroll = FALSE;
|
||||||
|
gSpecialVar_ItemId = ITEM_NONE;
|
||||||
|
SetMainCallback2(sub_813CE30);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_813CE00(void)
|
||||||
|
{
|
||||||
|
RunTasks();
|
||||||
|
AnimateSprites();
|
||||||
|
BuildOamBuffer();
|
||||||
|
DoScheduledBgTilemapCopiesToVram();
|
||||||
|
UpdatePaletteFade();
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_813CE1C(void)
|
||||||
|
{
|
||||||
|
LoadOam();
|
||||||
|
ProcessSpriteCopyRequests();
|
||||||
|
TransferPlttBuffer();
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_813CE30(void)
|
||||||
|
{
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
if (sub_80BF72C() == TRUE)
|
||||||
|
break;
|
||||||
|
if (sub_813CE5C() == TRUE)
|
||||||
|
break;
|
||||||
|
if (MenuHelpers_LinkSomething() == TRUE)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool8 sub_813CE5C(void)
|
||||||
|
{
|
||||||
|
u8 taskId;
|
||||||
|
|
||||||
|
switch (gMain.state)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
SetVBlankHBlankCallbacksToNull();
|
||||||
|
ClearScheduledBgCopiesToVram();
|
||||||
|
gMain.state++;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
ScanlineEffect_Stop();
|
||||||
|
gMain.state++;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
FreeAllSpritePalettes();
|
||||||
|
gMain.state++;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
ResetPaletteFade();
|
||||||
|
gMain.state++;
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
ResetSpriteData();
|
||||||
|
gMain.state++;
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
ResetItemMenuIconState();
|
||||||
|
gMain.state++;
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
if (!MenuHelpers_LinkSomething())
|
||||||
|
ResetTasks();
|
||||||
|
gMain.state++;
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
sub_813D07C();
|
||||||
|
gUnknown_203F36C->unk_80C[0] = 0;
|
||||||
|
gMain.state++;
|
||||||
|
break;
|
||||||
|
case 8:
|
||||||
|
if (sub_813D0E4())
|
||||||
|
gMain.state++;
|
||||||
|
break;
|
||||||
|
case 9:
|
||||||
|
sub_813E910();
|
||||||
|
gMain.state++;
|
||||||
|
break;
|
||||||
|
case 10:
|
||||||
|
sub_813D8AC();
|
||||||
|
sub_813D6F4();
|
||||||
|
sub_813D754();
|
||||||
|
gMain.state++;
|
||||||
|
break;
|
||||||
|
case 11:
|
||||||
|
if (!sub_813D1C0())
|
||||||
|
{
|
||||||
|
sub_813D00C();
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
gMain.state++;
|
||||||
|
break;
|
||||||
|
case 12:
|
||||||
|
sub_813D204();
|
||||||
|
gMain.state++;
|
||||||
|
break;
|
||||||
|
case 13:
|
||||||
|
sub_813D6A4();
|
||||||
|
gMain.state++;
|
||||||
|
break;
|
||||||
|
case 14:
|
||||||
|
taskId = CreateTask(sub_813DA68, 0);
|
||||||
|
gTasks[taskId].data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_203F370.unk_0A, gUnknown_203F370.unk_08);
|
||||||
|
gTasks[taskId].data[8] = 0;
|
||||||
|
gMain.state++;
|
||||||
|
break;
|
||||||
|
case 15:
|
||||||
|
sub_813EC08();
|
||||||
|
gMain.state++;
|
||||||
|
break;
|
||||||
|
case 16:
|
||||||
|
sub_813D5BC();
|
||||||
|
gMain.state++;
|
||||||
|
break;
|
||||||
|
case 17:
|
||||||
|
BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK);
|
||||||
|
gMain.state++;
|
||||||
|
break;
|
||||||
|
case 18:
|
||||||
|
BeginNormalPaletteFade(0xFFFFFFFF, -2, 16, 0, RGB_BLACK);
|
||||||
|
gMain.state++;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
SetVBlankCallback(sub_813CE1C);
|
||||||
|
SetMainCallback2(sub_813CE00);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_813D00C(void)
|
||||||
|
{
|
||||||
|
BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, RGB_BLACK);
|
||||||
|
CreateTask(sub_813D048, 0);
|
||||||
|
SetVBlankCallback(sub_813CE1C);
|
||||||
|
SetMainCallback2(sub_813CE00);
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_813D048(u8 taskId)
|
||||||
|
{
|
||||||
|
if (!gPaletteFade.active)
|
||||||
|
{
|
||||||
|
SetMainCallback2(gUnknown_203F370.savedCallback);
|
||||||
|
sub_813D7CC();
|
||||||
|
DestroyTask(taskId);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user