diff options
author | jiangzhengwenjz <jiangzhengwenjzw@qq.com> | 2019-06-05 11:26:58 +0800 |
---|---|---|
committer | jiangzhengwenjz <jiangzhengwenjzw@qq.com> | 2019-06-05 11:26:58 +0800 |
commit | 1ffb8f667ca0408a84e79203146bc20b2b6e0412 (patch) | |
tree | f4acda6a9a780816a6dbe33cfe19dce2f49e89f1 | |
parent | 82e763455c9f173c1baf1b008f87156736cf39f3 (diff) |
sub_815B908
-rw-r--r-- | asm/teachy_tv.s | 72 | ||||
-rw-r--r-- | src/teachy_tv.c | 30 |
2 files changed, 29 insertions, 73 deletions
diff --git a/asm/teachy_tv.s b/asm/teachy_tv.s index 215a87e67..6efed0c4d 100644 --- a/asm/teachy_tv.s +++ b/asm/teachy_tv.s @@ -5,78 +5,6 @@ .text - thumb_func_start sub_815B8A4 -sub_815B8A4: @ 815B8A4 - push {r4,lr} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _0815B900 @ =gTasks+0x8 - adds r4, r1, r0 - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0815B8DC - ldr r1, _0815B904 @ =gUnknown_8479590 - movs r0, 0x8 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x11 - str r0, [sp, 0x8] - movs r0, 0x1 - movs r2, 0x14 - movs r3, 0xA - bl CopyToBgTilemapBufferRect_ChangePalette - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram -_0815B8DC: - ldrh r0, [r4, 0x4] - adds r0, 0x1 - strh r0, [r4, 0x4] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7E - ble _0815B8F8 - bl TeachyTvClearBg1EndGraphicalText - movs r0, 0 - strh r0, [r4, 0x4] - ldrh r0, [r4, 0x6] - adds r0, 0x1 - strh r0, [r4, 0x6] -_0815B8F8: - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0815B900: .4byte gTasks+0x8 -_0815B904: .4byte gUnknown_8479590 - thumb_func_end sub_815B8A4 - - thumb_func_start TeachyTvClearBg1EndGraphicalText -TeachyTvClearBg1EndGraphicalText: @ 815B908 - push {lr} - sub sp, 0x8 - movs r0, 0x8 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0x14 - movs r3, 0xA - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end TeachyTvClearBg1EndGraphicalText - thumb_func_start TeachyTvBackToOptionList TeachyTvBackToOptionList: @ 815B92C push {r4-r7,lr} diff --git a/src/teachy_tv.c b/src/teachy_tv.c index e14e61f82..0513360cb 100644 --- a/src/teachy_tv.c +++ b/src/teachy_tv.c @@ -53,6 +53,7 @@ extern u8 gUnknown_8E86F98; // pal extern struct ListMenuTemplate gUnknown_8479368; extern struct ListMenuItem gUnknown_8479340; extern struct WindowTemplate gUnknown_84792F0; +extern u8 gUnknown_8479590; void C2TeachyTv(); void C2TeachyTvMainCallback(); @@ -74,6 +75,7 @@ void TeachyTvOptionListController(u8); void TeachyTvAudioByInput(s32, bool8, struct ListMenu *); void TeachyTvQuitFadeControlAndTaskDel(u8 taskId); void TeachyTvRenderMsgAndSwitchClusterFuncs(u8 taskId); +void TeachyTvClearBg1EndGraphicalText(); extern void VblankHblankHandlerSetZero(); extern void sub_812B1E0(u16); @@ -83,7 +85,6 @@ 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 TeachyTvClearBg1EndGraphicalText(); extern void TeachyTvBackToOptionList(u8 taskId); void C2TeachyTv() @@ -778,4 +779,31 @@ void TeachyTvClusFuncDudeMoveLeft(u8 taskId) ++(u16)data[3]; else --v2->pos2.x; +} + +void TeachyTvClusFuncRenderAndRemoveBg1EndGraphic(u8 taskId) +{ + s16 *data; + int temp; + + data = gTasks[taskId].data; + if ( !data[2] ) + { + CopyToBgTilemapBufferRect_ChangePalette(1u, &gUnknown_8479590, 0x14u, 0xAu, 8u, 2u, 0x11u); + schedule_bg_copy_tilemap_to_vram(1u); + } + temp = (u16)data[2] + 1; + data[2] = temp; + if ( (s16)temp > 126 ) + { + TeachyTvClearBg1EndGraphicalText(); + (u16)data[2] = 0; + ++(u16)data[3]; + } +} + +void TeachyTvClearBg1EndGraphicalText() +{ + FillBgTilemapBufferRect_Palette0(1u, 0, 0x14u, 0xAu, 8u, 2u); + schedule_bg_copy_tilemap_to_vram(1u); }
\ No newline at end of file |