small functions
This commit is contained in:
+3
-184
@@ -5,187 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start TeachyTvBackToOptionList
|
|
||||||
TeachyTvBackToOptionList: @ 815B92C
|
|
||||||
push {r4-r7,lr}
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
lsls r1, r0, 2
|
|
||||||
adds r1, r0
|
|
||||||
lsls r6, r1, 3
|
|
||||||
ldr r7, _0815B9DC @ =gTasks+0x8
|
|
||||||
adds r5, r6, r7
|
|
||||||
movs r1, 0x4
|
|
||||||
ldrsh r0, [r5, r1]
|
|
||||||
cmp r0, 0
|
|
||||||
bne _0815B94C
|
|
||||||
movs r0, 0xAD
|
|
||||||
lsls r0, 1
|
|
||||||
bl PlayNewMapMusic
|
|
||||||
_0815B94C:
|
|
||||||
bl TeachyTvBg2AnimController
|
|
||||||
ldrh r0, [r5, 0x4]
|
|
||||||
adds r0, 0x1
|
|
||||||
strh r0, [r5, 0x4]
|
|
||||||
lsls r0, 16
|
|
||||||
asrs r0, 16
|
|
||||||
cmp r0, 0x3F
|
|
||||||
ble _0815B9D4
|
|
||||||
movs r4, 0
|
|
||||||
strh r4, [r5, 0x4]
|
|
||||||
strh r4, [r5, 0x6]
|
|
||||||
bl TeachyTvSetupWindow
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
strh r0, [r5]
|
|
||||||
adds r0, r7, 0
|
|
||||||
subs r0, 0x8
|
|
||||||
adds r0, r6, r0
|
|
||||||
ldr r1, _0815B9E0 @ =TeachyTvOptionListController
|
|
||||||
str r1, [r0]
|
|
||||||
movs r0, 0
|
|
||||||
bl PutWindowTilemap
|
|
||||||
bl TeachyTvSetupScrollIndicatorArrowPair
|
|
||||||
bl TeachyTvSetWindowRegs
|
|
||||||
movs r0, 0
|
|
||||||
bl schedule_bg_copy_tilemap_to_vram
|
|
||||||
movs r0, 0x3
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0
|
|
||||||
bl ChangeBgX
|
|
||||||
movs r0, 0x3
|
|
||||||
movs r1, 0
|
|
||||||
movs r2, 0
|
|
||||||
bl ChangeBgY
|
|
||||||
movs r1, 0x80
|
|
||||||
lsls r1, 5
|
|
||||||
movs r0, 0x3
|
|
||||||
movs r2, 0x2
|
|
||||||
bl ChangeBgX
|
|
||||||
movs r1, 0xA0
|
|
||||||
lsls r1, 6
|
|
||||||
movs r0, 0x3
|
|
||||||
movs r2, 0x1
|
|
||||||
bl ChangeBgY
|
|
||||||
ldr r2, _0815B9E4 @ =gUnknown_203F450
|
|
||||||
ldr r0, [r2]
|
|
||||||
ldr r1, _0815B9E8 @ =0x00004004
|
|
||||||
adds r0, r1
|
|
||||||
strb r4, [r0]
|
|
||||||
ldr r0, [r2]
|
|
||||||
adds r1, 0x1
|
|
||||||
adds r0, r1
|
|
||||||
movs r1, 0x3
|
|
||||||
strb r1, [r0]
|
|
||||||
ldr r0, [r2]
|
|
||||||
ldr r1, _0815B9EC @ =0x00004006
|
|
||||||
adds r0, r1
|
|
||||||
strb r4, [r0]
|
|
||||||
_0815B9D4:
|
|
||||||
pop {r4-r7}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_0815B9DC: .4byte gTasks+0x8
|
|
||||||
_0815B9E0: .4byte TeachyTvOptionListController
|
|
||||||
_0815B9E4: .4byte gUnknown_203F450
|
|
||||||
_0815B9E8: .4byte 0x00004004
|
|
||||||
_0815B9EC: .4byte 0x00004006
|
|
||||||
thumb_func_end TeachyTvBackToOptionList
|
|
||||||
|
|
||||||
thumb_func_start sub_815B9F0
|
|
||||||
sub_815B9F0: @ 815B9F0
|
|
||||||
push {lr}
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r1, r0, 24
|
|
||||||
adds r2, r1, 0
|
|
||||||
ldr r0, _0815BA0C @ =gTeachyTV_StaticResources
|
|
||||||
ldrb r0, [r0, 0x5]
|
|
||||||
cmp r0, 0
|
|
||||||
blt _0815BA22
|
|
||||||
cmp r0, 0x3
|
|
||||||
bgt _0815BA10
|
|
||||||
adds r0, r1, 0
|
|
||||||
bl sub_815BC90
|
|
||||||
b _0815BA22
|
|
||||||
.align 2, 0
|
|
||||||
_0815BA0C: .4byte gTeachyTV_StaticResources
|
|
||||||
_0815BA10:
|
|
||||||
cmp r0, 0x5
|
|
||||||
bgt _0815BA22
|
|
||||||
ldr r0, _0815BA28 @ =gUnknown_203F450
|
|
||||||
ldr r1, [r0]
|
|
||||||
ldr r0, _0815BA2C @ =sub_815BA30
|
|
||||||
str r0, [r1]
|
|
||||||
adds r0, r2, 0
|
|
||||||
bl TeachyTvQuitBeginFade
|
|
||||||
_0815BA22:
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_0815BA28: .4byte gUnknown_203F450
|
|
||||||
_0815BA2C: .4byte sub_815BA30
|
|
||||||
thumb_func_end sub_815B9F0
|
|
||||||
|
|
||||||
thumb_func_start sub_815BA30
|
|
||||||
sub_815BA30: @ 815BA30
|
|
||||||
push {lr}
|
|
||||||
ldr r0, _0815BA44 @ =gTeachyTV_StaticResources
|
|
||||||
ldrb r0, [r0, 0x5]
|
|
||||||
cmp r0, 0x4
|
|
||||||
bne _0815BA48
|
|
||||||
movs r0, 0xA
|
|
||||||
bl sub_810B108
|
|
||||||
b _0815BA4E
|
|
||||||
.align 2, 0
|
|
||||||
_0815BA44: .4byte gTeachyTV_StaticResources
|
|
||||||
_0815BA48:
|
|
||||||
movs r0, 0x9
|
|
||||||
bl sub_810B108
|
|
||||||
_0815BA4E:
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
thumb_func_end sub_815BA30
|
|
||||||
|
|
||||||
thumb_func_start TeachyTvPostBattleFadeControl
|
|
||||||
TeachyTvPostBattleFadeControl: @ 815BA54
|
|
||||||
push {r4,lr}
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
lsls r1, r0, 2
|
|
||||||
adds r1, r0
|
|
||||||
lsls r2, r1, 3
|
|
||||||
ldr r4, _0815BA8C @ =gTasks+0x8
|
|
||||||
adds r3, r2, r4
|
|
||||||
ldr r0, _0815BA90 @ =gPaletteFade
|
|
||||||
ldrb r1, [r0, 0x7]
|
|
||||||
movs r0, 0x80
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
bne _0815BA86
|
|
||||||
ldr r1, _0815BA94 @ =gUnknown_8479390
|
|
||||||
ldr r0, _0815BA98 @ =gTeachyTV_StaticResources
|
|
||||||
ldrb r0, [r0, 0x5]
|
|
||||||
adds r0, r1
|
|
||||||
ldrb r0, [r0]
|
|
||||||
strh r0, [r3, 0x6]
|
|
||||||
adds r0, r4, 0
|
|
||||||
subs r0, 0x8
|
|
||||||
adds r0, r2, r0
|
|
||||||
ldr r1, _0815BA9C @ =TeachyTvRenderMsgAndSwitchClusterFuncs
|
|
||||||
str r1, [r0]
|
|
||||||
_0815BA86:
|
|
||||||
pop {r4}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.align 2, 0
|
|
||||||
_0815BA8C: .4byte gTasks+0x8
|
|
||||||
_0815BA90: .4byte gPaletteFade
|
|
||||||
_0815BA94: .4byte gUnknown_8479390
|
|
||||||
_0815BA98: .4byte gTeachyTV_StaticResources
|
|
||||||
_0815BA9C: .4byte TeachyTvRenderMsgAndSwitchClusterFuncs
|
|
||||||
thumb_func_end TeachyTvPostBattleFadeControl
|
|
||||||
|
|
||||||
thumb_func_start TeachyTvGrassAnimationMain
|
thumb_func_start TeachyTvGrassAnimationMain
|
||||||
TeachyTvGrassAnimationMain: @ 815BAA0
|
TeachyTvGrassAnimationMain: @ 815BAA0
|
||||||
push {r4-r7,lr}
|
push {r4-r7,lr}
|
||||||
@@ -436,8 +255,8 @@ _0815BC88: .4byte 0x00004005
|
|||||||
_0815BC8C: .4byte 0x00004004
|
_0815BC8C: .4byte 0x00004004
|
||||||
thumb_func_end sub_815BC40
|
thumb_func_end sub_815BC40
|
||||||
|
|
||||||
thumb_func_start sub_815BC90
|
thumb_func_start TeachyTvPrepBattle
|
||||||
sub_815BC90: @ 815BC90
|
TeachyTvPrepBattle: @ 815BC90
|
||||||
push {r4-r6,lr}
|
push {r4-r6,lr}
|
||||||
lsls r0, 24
|
lsls r0, 24
|
||||||
lsrs r6, r0, 24
|
lsrs r6, r0, 24
|
||||||
@@ -488,7 +307,7 @@ _0815BCE2:
|
|||||||
.align 2, 0
|
.align 2, 0
|
||||||
_0815BCFC: .4byte gTasks
|
_0815BCFC: .4byte gTasks
|
||||||
_0815BD00: .4byte sub_815BD04
|
_0815BD00: .4byte sub_815BD04
|
||||||
thumb_func_end sub_815BC90
|
thumb_func_end TeachyTvPrepBattle
|
||||||
|
|
||||||
thumb_func_start sub_815BD04
|
thumb_func_start sub_815BD04
|
||||||
sub_815BD04: @ 815BD04
|
sub_815BD04: @ 815BD04
|
||||||
|
|||||||
+84
-10
@@ -45,15 +45,16 @@ extern struct SpritePalette gUnknown_83A5348;
|
|||||||
extern void (**gUnknown_8479548)(u8);
|
extern void (**gUnknown_8479548)(u8);
|
||||||
extern char * gUnknown_8479560;
|
extern char * gUnknown_8479560;
|
||||||
extern char * gUnknown_8479578;
|
extern char * gUnknown_8479578;
|
||||||
extern void *gUnknown_203F450; // tilemap pointer location
|
extern void *gUnknown_203F450;
|
||||||
extern u8 gUnknown_8E86240; // tilemap
|
extern u8 gUnknown_8E86240;
|
||||||
extern u8 gUnknown_8E86BE8;
|
extern u8 gUnknown_8E86BE8;
|
||||||
extern u8 gUnknown_8E86D6C;
|
extern u8 gUnknown_8E86D6C;
|
||||||
extern u8 gUnknown_8E86F98; // pal
|
extern u8 gUnknown_8E86F98;
|
||||||
extern struct ListMenuTemplate gUnknown_8479368;
|
extern struct ListMenuTemplate gUnknown_8479368;
|
||||||
extern struct ListMenuItem gUnknown_8479340;
|
extern struct ListMenuItem gUnknown_8479340;
|
||||||
extern struct WindowTemplate gUnknown_84792F0;
|
extern struct WindowTemplate gUnknown_84792F0;
|
||||||
extern u8 gUnknown_8479590;
|
extern u8 gUnknown_8479590;
|
||||||
|
extern u8 gUnknown_8479390;
|
||||||
|
|
||||||
void C2TeachyTv();
|
void C2TeachyTv();
|
||||||
void C2TeachyTvMainCallback();
|
void C2TeachyTvMainCallback();
|
||||||
@@ -75,17 +76,21 @@ void TeachyTvOptionListController(u8);
|
|||||||
void TeachyTvAudioByInput(s32, bool8, struct ListMenu *);
|
void TeachyTvAudioByInput(s32, bool8, struct ListMenu *);
|
||||||
void TeachyTvQuitFadeControlAndTaskDel(u8 taskId);
|
void TeachyTvQuitFadeControlAndTaskDel(u8 taskId);
|
||||||
void TeachyTvRenderMsgAndSwitchClusterFuncs(u8 taskId);
|
void TeachyTvRenderMsgAndSwitchClusterFuncs(u8 taskId);
|
||||||
void TeachyTvClearBg1EndGraphicalText();
|
void TeachyTvClearBg1EndGraphicText();
|
||||||
|
void TeachyTvBackToOptionList(u8 taskId);
|
||||||
|
void TeachyTvSetupBagItemsByOptionChosen();
|
||||||
|
void TeachyTvPrepBattle(u8 taskId);
|
||||||
|
void TeachyTvGrassAnimationMain(u8 taskId, s16 x, s16 y, u8 subpriority, bool8 mode);
|
||||||
|
|
||||||
extern void VblankHblankHandlerSetZero();
|
extern void VblankHblankHandlerSetZero();
|
||||||
extern void sub_812B1E0(u16);
|
extern void sub_812B1E0(u16);
|
||||||
extern void sub_815BD80(void *);
|
extern void sub_815BD80(void *);
|
||||||
extern u8 ListMenuInitInternal(struct ListMenuTemplate *, u16 scrollOffset, u16 selectedRow);
|
extern u8 ListMenuInitInternal(struct ListMenuTemplate *, u16 scrollOffset, u16 selectedRow);
|
||||||
extern void sub_8055DC4();
|
extern void sub_8055DC4();
|
||||||
extern void TeachyTvGrassAnimationMain(u8 taskId, s16 x, s16 y, u8 subpriority, bool8 mode);
|
|
||||||
extern bool16 sub_80BF518(u8 textPrinterId);
|
extern bool16 sub_80BF518(u8 textPrinterId);
|
||||||
extern void _call_via_r1(s32 arg, void *func);
|
extern void _call_via_r1(s32 arg, void *func);
|
||||||
extern void TeachyTvBackToOptionList(u8 taskId);
|
extern void sub_810B108(u8);
|
||||||
|
|
||||||
|
|
||||||
void C2TeachyTv()
|
void C2TeachyTv()
|
||||||
{
|
{
|
||||||
@@ -638,7 +643,7 @@ void TeachyTvRenderMsgAndSwitchClusterFuncs(u8 taskId)
|
|||||||
TeachyTvSetSpriteCoordsAndSwitchFrame(*((char *)data + 2), 0, 0, 0);
|
TeachyTvSetSpriteCoordsAndSwitchFrame(*((char *)data + 2), 0, 0, 0);
|
||||||
FillWindowPixelBuffer(0, 0xCCu);
|
FillWindowPixelBuffer(0, 0xCCu);
|
||||||
CopyWindowToVram(0, 2u);
|
CopyWindowToVram(0, 2u);
|
||||||
TeachyTvClearBg1EndGraphicalText();
|
TeachyTvClearBg1EndGraphicText();
|
||||||
data[2] = v4;
|
data[2] = v4;
|
||||||
data[3] = v4;
|
data[3] = v4;
|
||||||
gTasks[taskId].func = TeachyTvBackToOptionList;
|
gTasks[taskId].func = TeachyTvBackToOptionList;
|
||||||
@@ -796,14 +801,83 @@ void TeachyTvClusFuncRenderAndRemoveBg1EndGraphic(u8 taskId)
|
|||||||
data[2] = temp;
|
data[2] = temp;
|
||||||
if ( (s16)temp > 126 )
|
if ( (s16)temp > 126 )
|
||||||
{
|
{
|
||||||
TeachyTvClearBg1EndGraphicalText();
|
TeachyTvClearBg1EndGraphicText();
|
||||||
(u16)data[2] = 0;
|
(u16)data[2] = 0;
|
||||||
++(u16)data[3];
|
++(u16)data[3];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void TeachyTvClearBg1EndGraphicalText()
|
void TeachyTvClearBg1EndGraphicText()
|
||||||
{
|
{
|
||||||
FillBgTilemapBufferRect_Palette0(1u, 0, 0x14u, 0xAu, 8u, 2u);
|
FillBgTilemapBufferRect_Palette0(1u, 0, 0x14u, 0xAu, 8u, 2u);
|
||||||
schedule_bg_copy_tilemap_to_vram(1u);
|
schedule_bg_copy_tilemap_to_vram(1u);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TeachyTvBackToOptionList(u8 taskId)
|
||||||
|
{
|
||||||
|
s16 *data;
|
||||||
|
s32 temp;
|
||||||
|
|
||||||
|
data = gTasks[taskId].data;
|
||||||
|
if ( !data[2] )
|
||||||
|
PlayNewMapMusic(BGM_FRLG_TEACHY_TV);
|
||||||
|
TeachyTvBg2AnimController();
|
||||||
|
temp = (u16)data[2] + 1;
|
||||||
|
data[2] = temp;
|
||||||
|
if ( (s16)temp > 0x3F )
|
||||||
|
{
|
||||||
|
data[2] = 0;
|
||||||
|
data[3] = 0;
|
||||||
|
*data = TeachyTvSetupWindow();
|
||||||
|
gTasks[taskId].func = TeachyTvOptionListController;
|
||||||
|
PutWindowTilemap(0);
|
||||||
|
TeachyTvSetupScrollIndicatorArrowPair();
|
||||||
|
TeachyTvSetWindowRegs();
|
||||||
|
schedule_bg_copy_tilemap_to_vram(0);
|
||||||
|
ChangeBgX(3u, 0, 0);
|
||||||
|
ChangeBgY(3u, 0, 0);
|
||||||
|
ChangeBgX(3u, 0x1000u, 2u);
|
||||||
|
ChangeBgY(3u, 0x2800u, 1u);
|
||||||
|
((u8*)gUnknown_203F450)[0x4004] = 0;
|
||||||
|
((u8*)gUnknown_203F450)[0x4005] = 3;
|
||||||
|
((u8*)gUnknown_203F450)[0x4006] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void TeachyTvChainTaskBattleOrFadeByOptionChosen(u8 taskId)
|
||||||
|
{
|
||||||
|
int op = gTeachyTV_StaticResources.optionChosen;
|
||||||
|
if( op < 0 )
|
||||||
|
return;
|
||||||
|
if ( op <= 3 )
|
||||||
|
{
|
||||||
|
TeachyTvPrepBattle(taskId);
|
||||||
|
|
||||||
|
}
|
||||||
|
else if ( op <= 5 )
|
||||||
|
{
|
||||||
|
*((void(**)())gUnknown_203F450) = TeachyTvSetupBagItemsByOptionChosen;
|
||||||
|
TeachyTvQuitBeginFade(taskId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void TeachyTvSetupBagItemsByOptionChosen()
|
||||||
|
{
|
||||||
|
if ( gTeachyTV_StaticResources.optionChosen == 4 )
|
||||||
|
sub_810B108(0xAu);
|
||||||
|
else
|
||||||
|
sub_810B108(9u);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TeachyTvPostBattleFadeControl(u8 taskId)
|
||||||
|
{
|
||||||
|
s16 *data = gTasks[taskId].data;
|
||||||
|
if ( !(gPaletteFade.active) )
|
||||||
|
{
|
||||||
|
u8* funcIdx = &gUnknown_8479390;
|
||||||
|
int arg = funcIdx[gTeachyTV_StaticResources.optionChosen];
|
||||||
|
data[3] = arg;
|
||||||
|
gTasks[taskId].func = TeachyTvRenderMsgAndSwitchClusterFuncs;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user