diff options
author | jiangzhengwenjz <jiangzhengwenjzw@qq.com> | 2019-06-04 06:28:00 +0800 |
---|---|---|
committer | jiangzhengwenjz <jiangzhengwenjzw@qq.com> | 2019-06-04 06:29:42 +0800 |
commit | f9f66ddeb428857f3e7c3d920fcce807948ef8ab (patch) | |
tree | 68a7ad24bcc69381889533450ccda4d9d41be8f3 | |
parent | 9949dcf0e5266017ae4213e043f5e3662d482be9 (diff) |
sub_815B118
-rw-r--r-- | asm/teachy_tv.s | 104 | ||||
-rw-r--r-- | src/teachy_tv.c | 31 |
2 files changed, 37 insertions, 98 deletions
diff --git a/asm/teachy_tv.s b/asm/teachy_tv.s index f19915d6e..53ca52ccb 100644 --- a/asm/teachy_tv.s +++ b/asm/teachy_tv.s @@ -5,96 +5,6 @@ .text - thumb_func_start TeachyTvSetupPostBattleWindowAndObj -TeachyTvSetupPostBattleWindowAndObj: @ 815B118 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _0815B190 @ =gTasks+0x8 - adds r5, r0, r1 - movs r0, 0x2 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0815B194 @ =gSprites - adds r7, r0, r1 - movs r0, 0x1 - bl ClearWindowTilemap - bl TeachyTvClearWindowRegs - ldr r0, _0815B198 @ =gTeachyTV_StaticResources - ldrb r0, [r0, 0x5] - cmp r0, 0 - blt _0815B1B8 - cmp r0, 0x3 - bgt _0815B1A8 - ldrb r0, [r5, 0x2] - movs r1, 0x78 - movs r2, 0x38 - movs r3, 0 - bl TeachyTvSetSpriteCoordsAndSwitchFrame - movs r4, 0xC0 - lsls r4, 6 - movs r0, 0x3 - adds r1, r4, 0 - movs r2, 0x1 - bl ChangeBgX - movs r0, 0x3 - adds r1, r4, 0 - movs r2, 0x2 - bl ChangeBgY - ldr r2, _0815B19C @ =gUnknown_203F450 - ldr r1, [r2] - ldr r0, _0815B1A0 @ =0x00004004 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x3 - strb r0, [r1] - ldr r1, [r2] - ldr r0, _0815B1A4 @ =0x00004005 - adds r1, r0 - ldrb r0, [r1] - subs r0, 0x3 - strb r0, [r1] - b _0815B1B8 - .align 2, 0 -_0815B190: .4byte gTasks+0x8 -_0815B194: .4byte gSprites -_0815B198: .4byte gTeachyTV_StaticResources -_0815B19C: .4byte gUnknown_203F450 -_0815B1A0: .4byte 0x00004004 -_0815B1A4: .4byte 0x00004005 -_0815B1A8: - cmp r0, 0x5 - bgt _0815B1B8 - ldrb r0, [r5, 0x2] - movs r1, 0x78 - movs r2, 0x38 - movs r3, 0 - bl TeachyTvSetSpriteCoordsAndSwitchFrame -_0815B1B8: - movs r0, 0 - strh r0, [r5, 0x8] - strh r0, [r5, 0xA] - movs r0, 0x24 - ldrsh r1, [r7, r0] - movs r0, 0x26 - ldrsh r2, [r7, r0] - movs r0, 0x1 - str r0, [sp] - adds r0, r6, 0 - movs r3, 0 - bl sub_815BAA0 - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end TeachyTvSetupPostBattleWindowAndObj - thumb_func_start sub_815B1DC sub_815B1DC: @ 815B1DC push {r4,lr} @@ -758,7 +668,7 @@ sub_815B6A8: @ 815B6A8 str r3, [sp] adds r0, r5, 0 movs r3, 0 - bl sub_815BAA0 + bl TeachyTvGrassAnimationMain _0815B702: movs r1, 0x4 ldrsh r0, [r4, r1] @@ -843,7 +753,7 @@ _0815B78A: str r0, [sp] adds r0, r5, 0 movs r3, 0 - bl sub_815BAA0 + bl TeachyTvGrassAnimationMain _0815B7AC: movs r1, 0x4 ldrsh r0, [r4, r1] @@ -907,7 +817,7 @@ sub_815B7E4: @ 815B7E4 str r0, [sp] adds r0, r6, 0 movs r3, 0 - bl sub_815BAA0 + bl TeachyTvGrassAnimationMain add sp, 0x4 pop {r4-r6} pop {r0} @@ -948,7 +858,7 @@ sub_815B840: @ 815B840 str r0, [sp] adds r0, r3, 0 movs r3, 0 - bl sub_815BAA0 + bl TeachyTvGrassAnimationMain _0815B87E: ldrh r1, [r4, 0x24] movs r2, 0x24 @@ -1225,8 +1135,8 @@ _0815BA98: .4byte gTeachyTV_StaticResources _0815BA9C: .4byte sub_815B4EC thumb_func_end TeachyTvPostBattleFadeControl - thumb_func_start sub_815BAA0 -sub_815BAA0: @ 815BAA0 + thumb_func_start TeachyTvGrassAnimationMain +TeachyTvGrassAnimationMain: @ 815BAA0 push {r4-r7,lr} mov r7, r9 mov r6, r8 @@ -1321,7 +1231,7 @@ _0815BB5C: bx r0 .align 2, 0 _0815BB68: .4byte gUnknown_84795B8 - thumb_func_end sub_815BAA0 + thumb_func_end TeachyTvGrassAnimationMain thumb_func_start sub_815BB6C sub_815BB6C: @ 815BB6C diff --git a/src/teachy_tv.c b/src/teachy_tv.c index 750aa0dfb..48b72c995 100644 --- a/src/teachy_tv.c +++ b/src/teachy_tv.c @@ -43,7 +43,7 @@ extern void sub_815AC20(); void TeachyTvCreateAndRenderRbox(); void TeachyTvInitIo(); u8 TeachyTvSetupObjEventAndOam(); -extern void TeachyTvSetupPostBattleWindowAndObj(u8); +void TeachyTvSetupPostBattleWindowAndObj(u8); u8 TeachyTvSetupWindow(); void TeachyTvSetupScrollIndicatorArrowPair(); void TeachyTvSetWindowRegs(); @@ -344,3 +344,32 @@ void TeachyTvBg2AnimController() schedule_bg_copy_tilemap_to_vram(2u); } +extern void TeachyTvGrassAnimationMain(u8 taskId, s16 x, s16 y, u8 subpriority, bool8 mode); + +void TeachyTvSetupPostBattleWindowAndObj(u8 taskId) +{ + u16 *v2 = gTasks[taskId].data; + int v1 = ((s16 *)v2)[1]; + struct Sprite *v3 = &gSprites[v1]; + int op; + + ClearWindowTilemap(1u); + TeachyTvClearWindowRegs(); + op = gTeachyTV_StaticResources.optionChosen; + if ( op >= 0 ) { + if ( op <= 3 ) + { + TeachyTvSetSpriteCoordsAndSwitchFrame(((char*)v2)[2], 0x78, 0x38, 0); + ChangeBgX(3u, 0x3000u, 1u); + ChangeBgY(3u, 0x3000u, 2u); + *((u8 *)gUnknown_203F450 + 0x4004) += 3; + *((u8 *)gUnknown_203F450 + 0x4005) -= 3; + } + else if ( op <= 5 ) + TeachyTvSetSpriteCoordsAndSwitchFrame(((char*)v2)[2], 0x78, 0x38, 0); + } + + v2[4] = 0; + v2[5] = 0; + TeachyTvGrassAnimationMain(taskId, v3->pos2.x, v3->pos2.y, 0, 1u); +}
\ No newline at end of file |