summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/trade.s560
-rw-r--r--src/trade.c152
2 files changed, 151 insertions, 561 deletions
diff --git a/asm/trade.s b/asm/trade.s
index ccf0d094c..d50feda0b 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -10,566 +10,6 @@
.set sub_804A96C_alt, sub_804A96C
.endif
- thumb_func_start sub_80484F4
-sub_80484F4: @ 80484F4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- ldr r1, _08048518 @ =gMain
- ldr r2, _0804851C @ =0x0000043c
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x15
- bls _0804850C
- b _080489CA
-_0804850C:
- lsls r0, 2
- ldr r1, _08048520 @ =_08048524
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08048518: .4byte gMain
-_0804851C: .4byte 0x0000043c
-_08048520: .4byte _08048524
- .align 2, 0
-_08048524:
- .4byte _0804857C
- .4byte _0804865C
- .4byte _08048668
- .4byte _08048674
- .4byte _08048680
- .4byte _08048694
- .4byte _080486A0
- .4byte _080487E8
- .4byte _08048810
- .4byte _08048834
- .4byte _0804885C
- .4byte _08048880
- .4byte _08048894
- .4byte _080489CA
- .4byte _080489CA
- .4byte _08048914
- .4byte _0804891C
- .4byte _08048950
- .4byte _08048970
- .4byte _08048988
- .4byte _08048994
- .4byte _080489B0
-_0804857C:
- ldr r5, _08048630 @ =gUnknown_03004824
- ldr r6, _08048634 @ =0x02017000
- str r6, [r5]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetTasks
- ldr r0, [r5]
- adds r0, 0xC8
- ldr r1, _08048638 @ =0x06002800
- bl sub_804A964
- ldr r0, _0804863C @ =sub_80489F4
- bl SetVBlankCallback
- ldr r0, _08048640 @ =gWindowConfig_81E6CE4
- bl InitMenuWindow
- ldr r4, _08048644 @ =gWindowConfig_81E6F84
- adds r0, r4, 0
- bl SetUpWindowConfig
- ldr r0, [r5]
- adds r0, 0x4
- adds r1, r4, 0
- bl InitWindowFromConfig
- movs r0, 0x14
- bl SetTextWindowBaseTileNum
- ldr r1, [r5]
- adds r1, 0x7A
- movs r4, 0
- strb r0, [r1]
- ldr r0, [r5]
- adds r0, 0x4
- bl LoadTextWindowGraphics
- bl MenuZeroFillScreen
- bl sub_809D51C
- ldr r0, [r5]
- adds r0, 0x75
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x7B
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x7C
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x80
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x81
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x86
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0x87
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, 0xB4
- strb r4, [r0]
- ldr r0, _08048648 @ =gUnknown_03000508
- strb r4, [r0]
- ldr r1, _0804864C @ =gMain
- ldr r3, _08048650 @ =0x0000043c
- adds r1, r3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, _08048654 @ =gUnknown_020296CC
- movs r5, 0xD8
- lsls r5, 7
- adds r6, r5
- adds r0, r1, 0
- adds r0, 0x30
- ldr r2, _08048658 @ =0xffffff00
-_08048622:
- str r6, [r0]
- adds r6, r2
- subs r0, 0x4
- cmp r0, r1
- bge _08048622
- b _080489CA
- .align 2, 0
-_08048630: .4byte gUnknown_03004824
-_08048634: .4byte 0x02017000
-_08048638: .4byte 0x06002800
-_0804863C: .4byte sub_80489F4
-_08048640: .4byte gWindowConfig_81E6CE4
-_08048644: .4byte gWindowConfig_81E6F84
-_08048648: .4byte gUnknown_03000508
-_0804864C: .4byte gMain
-_08048650: .4byte 0x0000043c
-_08048654: .4byte gUnknown_020296CC
-_08048658: .4byte 0xffffff00
-_0804865C:
- ldr r0, _08048664 @ =0x0000043c
- adds r1, r2, r0
- b _0804883E
- .align 2, 0
-_08048664: .4byte 0x0000043c
-_08048668:
- ldr r3, _08048670 @ =0x0000043c
- adds r1, r2, r3
- b _0804899E
- .align 2, 0
-_08048670: .4byte 0x0000043c
-_08048674:
- ldr r5, _0804867C @ =0x0000043c
- adds r1, r2, r5
- b _0804899E
- .align 2, 0
-_0804867C: .4byte 0x0000043c
-_08048680:
- bl CalculatePlayerPartyCount
- ldr r1, _0804868C @ =gMain
- ldr r0, _08048690 @ =0x0000043c
- adds r1, r0
- b _0804899E
- .align 2, 0
-_0804868C: .4byte gMain
-_08048690: .4byte 0x0000043c
-_08048694:
- ldr r3, _0804869C @ =0x0000043c
- adds r1, r2, r3
- b _0804899E
- .align 2, 0
-_0804869C: .4byte 0x0000043c
-_080486A0:
- bl CalculateEnemyPartyCount
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- ldr r4, _080487C0 @ =gUnknown_03004824
- ldr r0, [r4]
- ldr r1, _080487C4 @ =gPlayerPartyCount
- ldrb r1, [r1]
- adds r0, 0x42
- strb r1, [r0]
- ldr r0, [r4]
- ldr r1, _080487C8 @ =gEnemyPartyCount
- ldrb r1, [r1]
- adds r0, 0x43
- strb r1, [r0]
- movs r0, 0
- bl sub_804A41C
- movs r0, 0x1
- bl sub_804A41C
- movs r6, 0
- ldr r0, [r4]
- adds r0, 0x42
- ldrb r0, [r0]
- cmp r6, r0
- bge _0804873C
- mov r8, r4
- ldr r7, _080487CC @ =gTradeMonSpriteCoords
-_080486DE:
- movs r0, 0x64
- adds r4, r6, 0
- muls r4, r0
- ldr r0, _080487D0 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- ldrb r2, [r7]
- lsls r2, 19
- movs r1, 0xE0
- lsls r1, 12
- adds r2, r1
- asrs r2, 16
- ldrb r3, [r7, 0x1]
- lsls r3, 19
- ldr r1, _080487D4 @ =0xfff40000
- adds r3, r1
- asrs r3, 16
- movs r1, 0x1
- str r1, [sp]
- str r0, [sp, 0x4]
- adds r0, r5, 0
- ldr r1, _080487D8 @ =sub_809D62C
- bl CreateMonIcon
- mov r2, r8
- ldr r1, [r2]
- adds r1, 0x34
- adds r1, r6
- strb r0, [r1]
- adds r7, 0x2
- adds r6, 0x1
- ldr r0, [r2]
- adds r0, 0x42
- ldrb r0, [r0]
- cmp r6, r0
- blt _080486DE
-_0804873C:
- movs r6, 0
- ldr r1, _080487C0 @ =gUnknown_03004824
- ldr r0, [r1]
- adds r0, 0x43
- ldrb r0, [r0]
- cmp r6, r0
- bge _080487B0
- ldr r0, _080487CC @ =gTradeMonSpriteCoords
- mov r8, r1
- adds r7, r0, 0
- adds r7, 0xC
-_08048752:
- movs r0, 0x64
- adds r4, r6, 0
- muls r4, r0
- ldr r0, _080487DC @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- ldrb r2, [r7]
- lsls r2, 19
- movs r3, 0xE0
- lsls r3, 12
- adds r2, r3
- asrs r2, 16
- ldrb r3, [r7, 0x1]
- lsls r3, 19
- ldr r1, _080487D4 @ =0xfff40000
- adds r3, r1
- asrs r3, 16
- movs r1, 0x1
- str r1, [sp]
- str r0, [sp, 0x4]
- adds r0, r5, 0
- ldr r1, _080487D8 @ =sub_809D62C
- bl CreateMonIcon
- mov r2, r8
- ldr r1, [r2]
- adds r1, 0x3A
- adds r1, r6
- strb r0, [r1]
- adds r7, 0x2
- adds r6, 0x1
- ldr r0, [r2]
- adds r0, 0x43
- ldrb r0, [r0]
- cmp r6, r0
- blt _08048752
-_080487B0:
- movs r0, 0x2
- movs r1, 0
- bl nullsub_5
- ldr r1, _080487E0 @ =gMain
- ldr r3, _080487E4 @ =0x0000043c
- adds r1, r3
- b _0804899E
- .align 2, 0
-_080487C0: .4byte gUnknown_03004824
-_080487C4: .4byte gPlayerPartyCount
-_080487C8: .4byte gEnemyPartyCount
-_080487CC: .4byte gTradeMonSpriteCoords
-_080487D0: .4byte gPlayerParty
-_080487D4: .4byte 0xfff40000
-_080487D8: .4byte sub_809D62C
-_080487DC: .4byte gEnemyParty
-_080487E0: .4byte gMain
-_080487E4: .4byte 0x0000043c
-_080487E8:
- bl LoadHeldItemIconGraphics
- ldr r0, _08048804 @ =gUnknown_03004824
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x42
- adds r1, 0x34
- movs r2, 0
- bl CreateHeldItemIcons
- ldr r1, _08048808 @ =gMain
- ldr r5, _0804880C @ =0x0000043c
- adds r1, r5
- b _0804899E
- .align 2, 0
-_08048804: .4byte gUnknown_03004824
-_08048808: .4byte gMain
-_0804880C: .4byte 0x0000043c
-_08048810:
- ldr r0, _08048828 @ =gUnknown_03004824
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x42
- adds r1, 0x34
- movs r2, 0x1
- bl CreateHeldItemIcons
- ldr r1, _0804882C @ =gMain
- ldr r0, _08048830 @ =0x0000043c
- adds r1, r0
- b _0804899E
- .align 2, 0
-_08048828: .4byte gUnknown_03004824
-_0804882C: .4byte gMain
-_08048830: .4byte 0x0000043c
-_08048834:
- bl sub_8047CE8
- ldr r1, _08048850 @ =gMain
- ldr r2, _08048854 @ =0x0000043c
- adds r1, r2
-_0804883E:
- ldrb r0, [r1]
- adds r0, 0x1
- movs r2, 0
- strb r0, [r1]
- ldr r0, _08048858 @ =gUnknown_03004824
- ldr r0, [r0]
- adds r0, 0xB4
- strb r2, [r0]
- b _080489CA
- .align 2, 0
-_08048850: .4byte gMain
-_08048854: .4byte 0x0000043c
-_08048858: .4byte gUnknown_03004824
-_0804885C:
- movs r0, 0x4
- movs r1, 0
- bl nullsub_5
- bl sub_804ABF8
- lsls r0, 24
- cmp r0, 0
- bne _08048870
- b _080489CA
-_08048870:
- ldr r1, _08048878 @ =gMain
- ldr r3, _0804887C @ =0x0000043c
- adds r1, r3
- b _0804899E
- .align 2, 0
-_08048878: .4byte gMain
-_0804887C: .4byte 0x0000043c
-_08048880:
- bl sub_8047D58
- ldr r1, _0804888C @ =gMain
- ldr r5, _08048890 @ =0x0000043c
- adds r1, r5
- b _0804899E
- .align 2, 0
-_0804888C: .4byte gMain
-_08048890: .4byte 0x0000043c
-_08048894:
- bl sub_8047E44
- ldr r2, _080488AC @ =0x02018000
- ldr r0, _080488B0 @ =gUnknown_03004824
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0x41
- ldrb r0, [r1]
- cmp r0, 0x5
- bhi _080488B4
- ldrb r0, [r2, 0x9]
- b _080488B8
- .align 2, 0
-_080488AC: .4byte 0x02018000
-_080488B0: .4byte gUnknown_03004824
-_080488B4:
- ldrb r0, [r2, 0x9]
- adds r0, 0x6
-_080488B8:
- strb r0, [r1]
- ldr r0, _08048900 @ =gSpriteTemplate_820C134
- ldr r3, _08048904 @ =gTradeMonSpriteCoords
- ldr r4, _08048908 @ =gUnknown_03004824
- ldr r1, [r4]
- adds r1, 0x41
- ldrb r2, [r1]
- lsls r2, 1
- adds r1, r2, r3
- ldrb r1, [r1]
- lsls r1, 19
- movs r5, 0x80
- lsls r5, 14
- adds r1, r5
- asrs r1, 16
- adds r3, 0x1
- adds r2, r3
- ldrb r2, [r2]
- lsls r2, 3
- movs r3, 0x2
- bl CreateSprite
- ldr r1, [r4]
- adds r1, 0x40
- strb r0, [r1]
- ldr r0, _0804890C @ =gMain
- ldr r1, _08048910 @ =0x0000043c
- adds r0, r1
- movs r1, 0xF
- strb r1, [r0]
- movs r0, 0x6
- movs r1, 0
- bl nullsub_5
- b _080489CA
- .align 2, 0
-_08048900: .4byte gSpriteTemplate_820C134
-_08048904: .4byte gTradeMonSpriteCoords
-_08048908: .4byte gUnknown_03004824
-_0804890C: .4byte gMain
-_08048910: .4byte 0x0000043c
-_08048914:
- movs r0, 0
- bl sub_8048B0C
- b _08048998
-_0804891C:
- movs r0, 0x1
- bl sub_8048B0C
- ldr r2, _08048944 @ =gUnknown_03004824
- ldr r0, [r2]
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- strb r1, [r0, 0x1]
- bl sub_8048C70
- movs r0, 0x7
- movs r1, 0
- bl nullsub_5
- ldr r1, _08048948 @ =gMain
- ldr r3, _0804894C @ =0x0000043c
- adds r1, r3
- b _0804899E
- .align 2, 0
-_08048944: .4byte gUnknown_03004824
-_08048948: .4byte gMain
-_0804894C: .4byte 0x0000043c
-_08048950:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, _08048968 @ =gMain
- ldr r5, _0804896C @ =0x0000043c
- adds r1, r5
- b _0804899E
- .align 2, 0
-_08048968: .4byte gMain
-_0804896C: .4byte 0x0000043c
-_08048970:
- movs r1, 0x80
- lsls r1, 19
- movs r3, 0xFA
- lsls r3, 5
- adds r0, r3, 0
- strh r0, [r1]
- ldr r5, _08048984 @ =0x0000043c
- adds r1, r2, r5
- b _0804899E
- .align 2, 0
-_08048984: .4byte 0x0000043c
-_08048988:
- ldr r0, _08048990 @ =0x0000043c
- adds r1, r2, r0
- b _0804899E
- .align 2, 0
-_08048990: .4byte 0x0000043c
-_08048994:
- bl sub_804AF10
-_08048998:
- ldr r1, _080489A8 @ =gMain
- ldr r2, _080489AC @ =0x0000043c
- adds r1, r2
-_0804899E:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _080489CA
- .align 2, 0
-_080489A8: .4byte gMain
-_080489AC: .4byte 0x0000043c
-_080489B0:
- ldr r0, _080489E8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080489CA
- ldr r0, _080489EC @ =sub_8048AB4
- bl SetMainCallback2
- ldr r0, _080489F0 @ =gUnknown_03000508
- strb r4, [r0]
-_080489CA:
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080489E8: .4byte gPaletteFade
-_080489EC: .4byte sub_8048AB4
-_080489F0: .4byte gUnknown_03000508
- thumb_func_end sub_80484F4
-
thumb_func_start sub_80489F4
sub_80489F4: @ 80489F4
push {lr}
diff --git a/src/trade.c b/src/trade.c
index c5cde0b39..cf2070fe1 100644
--- a/src/trade.c
+++ b/src/trade.c
@@ -84,12 +84,20 @@ struct TradeEwramSubstruct {
/*0x00b4*/ u8 unk_00b4;
/*0x00b5*/ u8 filler_00b4[0x13];
/*0x00c8*/ struct UnkStructE unk_00c8;
- /*0x00dc*/ u8 filler_00dc[0x5f24];
+ /*0x00dc*/ u8 filler_00dc[0xf24];
+};
+
+struct UnkStructF {
+ u8 filler_0000[9];
+ u8 unk_0009;
+ u8 filler_000a[0xff6];
};
struct TradeEwramStruct {
/*0x00000*/ u8 filler_00000[0x7000];
/*0x07000*/ struct TradeEwramSubstruct unk_07000;
+ /*0x08000*/ struct UnkStructF unk_08000;
+ /*0x09000*/ u8 filler_09000[0x4000];
/*0x0d000*/ u8 tileBuffers[13][256];
};
@@ -744,6 +752,148 @@ void sub_8047EC0(void)
UpdatePaletteFade();
}
+void sub_80484F4(void)
+{
+ int i;
+ struct UnkStructF *unkStructF;
+
+ switch (gMain.state)
+ {
+ case 0:
+ gUnknown_03004824 = &ewram_2010000.unk_07000;
+ ResetSpriteData();
+ FreeAllSpritePalettes();
+ ResetTasks();
+ sub_804A964(&gUnknown_03004824->unk_00c8, (void *)BG_SCREEN_ADDR(5));
+ SetVBlankCallback(sub_80489F4);
+ InitMenuWindow(&gWindowConfig_81E6CE4);
+ SetUpWindowConfig(&gWindowConfig_81E6F84);
+ InitWindowFromConfig(&gUnknown_03004824->window, &gWindowConfig_81E6F84);
+ gUnknown_03004824->unk_007a = SetTextWindowBaseTileNum(20);
+ LoadTextWindowGraphics(&gUnknown_03004824->window);
+ MenuZeroFillScreen();
+ sub_809D51C();
+ gUnknown_03004824->unk_0075 = 0;
+ gUnknown_03004824->unk_007b = 0;
+ gUnknown_03004824->unk_007c = 0;
+ gUnknown_03004824->unk_0080 = 0;
+ gUnknown_03004824->unk_0081 = 0;
+ gUnknown_03004824->unk_0086 = 0;
+ gUnknown_03004824->unk_0087 = 0;
+ gUnknown_03004824->unk_00b4 = 0;
+ gUnknown_03000508 = 0;
+ gMain.state ++;
+ for (i = 0; i < 13; i ++)
+ gUnknown_020296CC[i] = ewram_2010000.tileBuffers[i];
+ break;
+ case 1:
+ gMain.state ++;
+ gUnknown_03004824->unk_00b4 = 0;
+ break;
+ case 2:
+ gMain.state ++;
+ break;
+ case 3:
+ gMain.state ++;
+ break;
+ case 4:
+ CalculatePlayerPartyCount();
+ gMain.state ++;
+ break;
+ case 5:
+ gMain.state ++;
+ break;
+ case 6:
+ CalculateEnemyPartyCount();
+ REG_DISPCNT = 0;
+ gUnknown_03004824->playerPartyCount = gPlayerPartyCount;
+ gUnknown_03004824->friendPartyCount = gEnemyPartyCount;
+ sub_804A41C(0);
+ sub_804A41C(1);
+ for (i = 0; i < gUnknown_03004824->playerPartyCount; i ++)
+ gUnknown_03004824->playerPartyIcons[i] = CreateMonIcon(GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL), sub_809D62C, gTradeMonSpriteCoords[i][0] * 8 + 14, gTradeMonSpriteCoords[i][1] * 8 - 12, TRUE, GetMonData(&gPlayerParty[i], MON_DATA_PERSONALITY));
+ for (i = 0; i < gUnknown_03004824->friendPartyCount; i ++)
+ gUnknown_03004824->friendPartyIcons[i] = CreateMonIcon(GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2, NULL), sub_809D62C, gTradeMonSpriteCoords[6 + i][0] * 8 + 14, gTradeMonSpriteCoords[6 + i][1] * 8 - 12, TRUE, GetMonData(&gEnemyParty[i], MON_DATA_PERSONALITY));
+ nullsub_5(2, 0);
+ gMain.state ++;
+ break;
+ case 7:
+ LoadHeldItemIconGraphics();
+ CreateHeldItemIcons(&gUnknown_03004824->playerPartyCount, gUnknown_03004824->playerPartyIcons, 0);
+ gMain.state ++;
+ break;
+ case 8:
+ CreateHeldItemIcons(&gUnknown_03004824->playerPartyCount, gUnknown_03004824->playerPartyIcons, 1);
+ gMain.state ++;
+ break;
+ case 9:
+ sub_8047CE8();
+ gMain.state ++;
+ gUnknown_03004824->unk_00b4 = 0;
+ break;
+ case 10:
+ nullsub_5(4, 0);
+ if (sub_804ABF8())
+ {
+ gMain.state ++;
+ }
+ break;
+ case 11:
+ sub_8047D58();
+ gMain.state ++;
+ break;
+ case 12:
+ sub_8047E44();
+ unkStructF = &ewram_2010000.unk_08000;
+ if (gUnknown_03004824->unk_0041 < 6)
+ gUnknown_03004824->unk_0041 = unkStructF->unk_0009;
+ else
+ gUnknown_03004824->unk_0041 = unkStructF->unk_0009 + 6;
+ gUnknown_03004824->unk_0040 = CreateSprite(&gSpriteTemplate_820C134, gTradeMonSpriteCoords[gUnknown_03004824->unk_0041][0] * 8 + 32, gTradeMonSpriteCoords[gUnknown_03004824->unk_0041][1] * 8, 2);
+ gMain.state = 15;
+ nullsub_5(6, 0);
+ break;
+ case 15:
+ sub_8048B0C(0);
+ gMain.state ++;
+ break;
+ case 16:
+ sub_8048B0C(1);
+ gUnknown_03004824->unk_0000 = 0;
+ gUnknown_03004824->unk_0001 = 0;
+ sub_8048C70();
+ nullsub_5(7, 0);
+ gMain.state ++;
+ break;
+ case 17:
+ BeginNormalPaletteFade(-1, 0, 16, 0, 0);
+ gMain.state ++;
+ break;
+ case 18:
+ REG_DISPCNT = DISPCNT_OBJ_1D_MAP | DISPCNT_BG_ALL_ON | DISPCNT_OBJ_ON;
+ gMain.state ++;
+ break;
+ case 19:
+ gMain.state ++;
+ break;
+ case 20:
+ sub_804AF10();
+ gMain.state ++;
+ break;
+ case 21:
+ if (!gPaletteFade.active)
+ {
+ SetMainCallback2(sub_8048AB4);
+ gUnknown_03000508 = 0;
+ }
+ break;
+ }
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ UpdatePaletteFade();
+}
+
asm(".section .text.sub_804A96C");
void sub_804A96C(struct UnkStructD *arg0, u8 left, u8 top, u16 *tilemap, u8 width, u8 height, u16 sp8) {