small functions
This commit is contained in:
+3
-184
@@ -5,187 +5,6 @@
|
||||
|
||||
.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
|
||||
TeachyTvGrassAnimationMain: @ 815BAA0
|
||||
push {r4-r7,lr}
|
||||
@@ -436,8 +255,8 @@ _0815BC88: .4byte 0x00004005
|
||||
_0815BC8C: .4byte 0x00004004
|
||||
thumb_func_end sub_815BC40
|
||||
|
||||
thumb_func_start sub_815BC90
|
||||
sub_815BC90: @ 815BC90
|
||||
thumb_func_start TeachyTvPrepBattle
|
||||
TeachyTvPrepBattle: @ 815BC90
|
||||
push {r4-r6,lr}
|
||||
lsls r0, 24
|
||||
lsrs r6, r0, 24
|
||||
@@ -488,7 +307,7 @@ _0815BCE2:
|
||||
.align 2, 0
|
||||
_0815BCFC: .4byte gTasks
|
||||
_0815BD00: .4byte sub_815BD04
|
||||
thumb_func_end sub_815BC90
|
||||
thumb_func_end TeachyTvPrepBattle
|
||||
|
||||
thumb_func_start sub_815BD04
|
||||
sub_815BD04: @ 815BD04
|
||||
|
||||
+84
-10
@@ -45,15 +45,16 @@ extern struct SpritePalette gUnknown_83A5348;
|
||||
extern void (**gUnknown_8479548)(u8);
|
||||
extern char * gUnknown_8479560;
|
||||
extern char * gUnknown_8479578;
|
||||
extern void *gUnknown_203F450; // tilemap pointer location
|
||||
extern u8 gUnknown_8E86240; // tilemap
|
||||
extern void *gUnknown_203F450;
|
||||
extern u8 gUnknown_8E86240;
|
||||
extern u8 gUnknown_8E86BE8;
|
||||
extern u8 gUnknown_8E86D6C;
|
||||
extern u8 gUnknown_8E86F98; // pal
|
||||
extern u8 gUnknown_8E86F98;
|
||||
extern struct ListMenuTemplate gUnknown_8479368;
|
||||
extern struct ListMenuItem gUnknown_8479340;
|
||||
extern struct WindowTemplate gUnknown_84792F0;
|
||||
extern u8 gUnknown_8479590;
|
||||
extern u8 gUnknown_8479390;
|
||||
|
||||
void C2TeachyTv();
|
||||
void C2TeachyTvMainCallback();
|
||||
@@ -75,17 +76,21 @@ void TeachyTvOptionListController(u8);
|
||||
void TeachyTvAudioByInput(s32, bool8, struct ListMenu *);
|
||||
void TeachyTvQuitFadeControlAndTaskDel(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 sub_812B1E0(u16);
|
||||
extern void sub_815BD80(void *);
|
||||
extern u8 ListMenuInitInternal(struct ListMenuTemplate *, u16 scrollOffset, u16 selectedRow);
|
||||
extern void sub_8055DC4();
|
||||
extern void TeachyTvGrassAnimationMain(u8 taskId, s16 x, s16 y, u8 subpriority, bool8 mode);
|
||||
extern bool16 sub_80BF518(u8 textPrinterId);
|
||||
extern void _call_via_r1(s32 arg, void *func);
|
||||
extern void TeachyTvBackToOptionList(u8 taskId);
|
||||
extern void sub_810B108(u8);
|
||||
|
||||
|
||||
void C2TeachyTv()
|
||||
{
|
||||
@@ -638,7 +643,7 @@ void TeachyTvRenderMsgAndSwitchClusterFuncs(u8 taskId)
|
||||
TeachyTvSetSpriteCoordsAndSwitchFrame(*((char *)data + 2), 0, 0, 0);
|
||||
FillWindowPixelBuffer(0, 0xCCu);
|
||||
CopyWindowToVram(0, 2u);
|
||||
TeachyTvClearBg1EndGraphicalText();
|
||||
TeachyTvClearBg1EndGraphicText();
|
||||
data[2] = v4;
|
||||
data[3] = v4;
|
||||
gTasks[taskId].func = TeachyTvBackToOptionList;
|
||||
@@ -796,14 +801,83 @@ void TeachyTvClusFuncRenderAndRemoveBg1EndGraphic(u8 taskId)
|
||||
data[2] = temp;
|
||||
if ( (s16)temp > 126 )
|
||||
{
|
||||
TeachyTvClearBg1EndGraphicalText();
|
||||
TeachyTvClearBg1EndGraphicText();
|
||||
(u16)data[2] = 0;
|
||||
++(u16)data[3];
|
||||
}
|
||||
}
|
||||
|
||||
void TeachyTvClearBg1EndGraphicalText()
|
||||
void TeachyTvClearBg1EndGraphicText()
|
||||
{
|
||||
FillBgTilemapBufferRect_Palette0(1u, 0, 0x14u, 0xAu, 8u, 2u);
|
||||
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