summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjiangzhengwenjz <jiangzhengwenjzw@qq.com>2019-06-05 11:26:58 +0800
committerjiangzhengwenjz <jiangzhengwenjzw@qq.com>2019-06-05 11:26:58 +0800
commit1ffb8f667ca0408a84e79203146bc20b2b6e0412 (patch)
treef4acda6a9a780816a6dbe33cfe19dce2f49e89f1
parent82e763455c9f173c1baf1b008f87156736cf39f3 (diff)
sub_815B908
-rw-r--r--asm/teachy_tv.s72
-rw-r--r--src/teachy_tv.c30
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