diff options
author | jiangzhengwenjz <jiangzhengwenjzw@qq.com> | 2019-06-03 03:19:15 +0800 |
---|---|---|
committer | jiangzhengwenjz <jiangzhengwenjzw@qq.com> | 2019-06-03 03:22:03 +0800 |
commit | 49a1de36d38b41b0f3f7c443acc636281314b749 (patch) | |
tree | 5cee3105df23fe688e1a1ba4d05de7b9c1d0282f | |
parent | 0a13397b8586bb4147d9e35c80a3c5aebff41d5b (diff) |
sub_815B0CC and rollback of failed attempt to make it compilable
-rw-r--r-- | asm/item_menu.s | 8 | ||||
-rw-r--r-- | asm/party_menu.s | 4 | ||||
-rw-r--r-- | asm/teachy_tv.s | 55 | ||||
-rw-r--r-- | include/teachy_tv.h | 2 | ||||
-rw-r--r-- | src/teachy_tv.c | 36 | ||||
-rw-r--r-- | src/tm_case.c | 2 | ||||
-rw-r--r-- | src/vs_seeker.c | 37 |
7 files changed, 65 insertions, 79 deletions
diff --git a/asm/item_menu.s b/asm/item_menu.s index 3a665b61e..c81730a55 100644 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -6342,11 +6342,11 @@ sub_810B108: @ 810B108 beq _0810B160 cmp r4, 0x8 beq _0810B16C - ldr r2, _0810B15C @ =CB2_ReturnToTeachyTV + ldr r2, _0810B15C @ =sub_815ABFC adds r0, r4, 0 b _0810B170 .align 2, 0 -_0810B15C: .4byte CB2_ReturnToTeachyTV +_0810B15C: .4byte sub_815ABFC _0810B160: ldr r2, _0810B168 @ =sub_8030AEC movs r0, 0x7 @@ -6386,7 +6386,7 @@ _0810B19C: bl sub_815AC20 ldr r0, _0810B1C4 @ =gUnknown_203AD10 ldr r1, [r0] - ldr r0, _0810B1C8 @ =CB2_ReturnToTeachyTV + ldr r0, _0810B1C8 @ =sub_815ABFC str r0, [r1] ldr r1, _0810B1CC @ =gTasks lsls r0, r4, 2 @@ -6402,7 +6402,7 @@ _0810B1BC: bx r1 .align 2, 0 _0810B1C4: .4byte gUnknown_203AD10 -_0810B1C8: .4byte CB2_ReturnToTeachyTV +_0810B1C8: .4byte sub_815ABFC _0810B1CC: .4byte gTasks _0810B1D0: .4byte sub_810B070 thumb_func_end sub_810B180 diff --git a/asm/party_menu.s b/asm/party_menu.s index 13ca24a2f..eab7c9455 100644 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -4879,12 +4879,12 @@ sub_8120FB0: @ 8120FB0 bl FreeRestoreBattleData bl LoadPlayerParty bl sub_815AC20 - ldr r0, _08120FC8 @ =CB2_ReturnToTeachyTV + ldr r0, _08120FC8 @ =sub_815ABFC bl SetMainCallback2 pop {r0} bx r0 .align 2, 0 -_08120FC8: .4byte CB2_ReturnToTeachyTV +_08120FC8: .4byte sub_815ABFC thumb_func_end sub_8120FB0 thumb_func_start sub_8120FCC diff --git a/asm/teachy_tv.s b/asm/teachy_tv.s index cd74baad3..46824b53b 100644 --- a/asm/teachy_tv.s +++ b/asm/teachy_tv.s @@ -5,49 +5,8 @@ .text - thumb_func_start sub_815B0CC -sub_815B0CC: @ 815B0CC - push {r4-r7,lr} - movs r0, 0x2 - bl GetBgTilemapBuffer - adds r7, r0, 0 - movs r0, 0x1 -_0815B0D8: - movs r4, 0x2 - lsls r5, r0, 5 - adds r6, r0, 0x1 -_0815B0DE: - bl Random - adds r2, r5, r4 - lsls r2, 1 - adds r2, r7 - movs r1, 0x3 - ands r1, r0 - lsls r1, 10 - ldr r3, _0815B114 @ =0x0000301f - adds r0, r3, 0 - adds r1, r0 - strh r1, [r2] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1B - bls _0815B0DE - lsls r0, r6, 24 - lsrs r0, 24 - cmp r0, 0xC - bls _0815B0D8 - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0815B114: .4byte 0x0000301f - thumb_func_end sub_815B0CC - - thumb_func_start TeachyTvConfigRboxAndObj -TeachyTvConfigRboxAndObj: @ 815B118 + thumb_func_start TeachyTvSetupPostBattleWindowAndObj +TeachyTvSetupPostBattleWindowAndObj: @ 815B118 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 @@ -134,7 +93,7 @@ _0815B1B8: pop {r4-r7} pop {r0} bx r0 - thumb_func_end TeachyTvConfigRboxAndObj + thumb_func_end TeachyTvSetupPostBattleWindowAndObj thumb_func_start sub_815B1DC sub_815B1DC: @ 815B1DC @@ -265,7 +224,7 @@ sub_815B2C0: @ 815B2C0 lsls r0, 3 ldr r1, _0815B31C @ =gTasks+0x8 adds r6, r0, r1 - bl sub_815B0CC + bl TeachyTvBg2AnimController ldr r0, _0815B320 @ =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 @@ -358,7 +317,7 @@ sub_815B38C: @ 815B38C lsls r1, 3 ldr r0, _0815B3F8 @ =gTasks+0x8 adds r4, r1, r0 - bl sub_815B0CC + bl TeachyTvBg2AnimController ldrh r0, [r4, 0x4] adds r0, 0x1 strh r0, [r4, 0x4] @@ -1103,7 +1062,7 @@ sub_815B92C: @ 815B92C lsls r0, 1 bl PlayNewMapMusic _0815B94C: - bl sub_815B0CC + bl TeachyTvBg2AnimController ldrh r0, [r5, 0x4] adds r0, 0x1 strh r0, [r5, 0x4] @@ -1630,7 +1589,7 @@ _0815BD70: lsls r0, 1 bl PlayNewMapMusic _0815BD78: - bl CB2_ReturnToTeachyTV + bl sub_815ABFC pop {r0} bx r0 thumb_func_end sub_815BD58 diff --git a/include/teachy_tv.h b/include/teachy_tv.h index 374780c04..382ad117d 100644 --- a/include/teachy_tv.h +++ b/include/teachy_tv.h @@ -1,7 +1,7 @@ #ifndef GUARD_TEACHY_TV_H #define GUARD_TEACHY_TV_H -void CB2_ReturnToTeachyTV(void); +void sub_815ABFC(void); void sub_815AC20(void); #endif //GUARD_TEACHY_TV_H diff --git a/src/teachy_tv.c b/src/teachy_tv.c index c62b6d6f1..60b182575 100644 --- a/src/teachy_tv.c +++ b/src/teachy_tv.c @@ -17,6 +17,7 @@ #include "item.h" #include "menu_indicators.h" #include "field_map_obj.h" +#include "random.h" #include "constants/songs.h" #include "constants/items.h" @@ -36,12 +37,12 @@ void C2TeachyTv(); void C2TeachyTvMainCallback(); void VblankHandlerTeachyTv(); void sub_815ABC4(u8 mode, void (*cb)()); -void CB2_ReturnToTeachyTV(); +void sub_815ABFC(); extern void sub_815AC20(); void TeachyTvCreateAndRenderRbox(); void TeachyTvInitIo(); u8 TeachyTvSetupObjEventAndOam(); -extern void TeachyTvConfigRboxAndObj(u8); +extern void TeachyTvSetupPostBattleWindowAndObj(u8); u8 TeachyTvSetupWindow(); void TeachyTvSetupScrollIndicatorArrowPair(); void TeachyTvSetWindowRegs(); @@ -95,7 +96,7 @@ void sub_815ABC4(u8 mode, void (*cb)()) SetMainCallback2(C2TeachyTvMainCallback); } -void CB2_ReturnToTeachyTV() +void sub_815ABFC() { if(gTeachyTV_StaticResources.mode == 1) sub_815ABC4(1,gTeachyTV_StaticResources.callback); @@ -151,7 +152,7 @@ void C2TeachyTvMainCallback() { taskId = CreateTask(TeachyTvTaskFunction, 0); gTasks[taskId].data[1] = TeachyTvSetupObjEventAndOam(); - TeachyTvConfigRboxAndObj(taskId); + TeachyTvSetupPostBattleWindowAndObj(taskId); } else { @@ -316,3 +317,30 @@ void TeachyTvClearWindowRegs() SetGpuReg(0x40u, 0); } +void TeachyTvBg2AnimController() +{ + u16 *tilemapBuffer; + u8 counter; + u32 offset2; + u32 offset; + u32 counter2; + + tilemapBuffer = (u16 *)GetBgTilemapBuffer(2u); + counter = 1; + do + { + offset2 = 2; + offset = 0x20 * counter; + counter2 = counter + 1; + do + { + tilemapBuffer[offset + offset2] = ((Random() & 3) << 10) + 0x301F; + offset2 = (offset2 + 1) << 0x18 >> 0x18; + } + while ( offset2 <= 0x1B ); + counter = counter2; + } + while ( counter2 << 0x18 >> 0x18 <= 0xCu ); + schedule_bg_copy_tilemap_to_vram(2u); +} + diff --git a/src/tm_case.c b/src/tm_case.c index 80fa29c5f..ce31e79c3 100644 --- a/src/tm_case.c +++ b/src/tm_case.c @@ -1147,7 +1147,7 @@ void PokeDude_InitTMCase(void) AddBagItem(ITEM_TM03, 1); AddBagItem(ITEM_TM09, 1); AddBagItem(ITEM_TM35, 1); - InitTMCase(4, CB2_ReturnToTeachyTV, 0); + InitTMCase(4, sub_815ABFC, 0); } static void Task_TMCaseDude1(u8 taskId) diff --git a/src/vs_seeker.c b/src/vs_seeker.c index bd19d96ff..bd5b9c7ea 100644 --- a/src/vs_seeker.c +++ b/src/vs_seeker.c @@ -24,8 +24,6 @@ #include "unk_810c3a4.h" #include "constants/movement_commands.h" #include "vs_seeker.h" -#include "item.h" -#include "constants/items.h" typedef enum { @@ -637,7 +635,6 @@ void sub_810C444(void) #ifdef NONMATCHING bool8 sub_810C4EC(void) { - s8 mask; if (CheckBagHasItem(ITEM_VS_SEEKER, 1) == TRUE) { if ((gSaveBlock1Ptr->trainerRematchStepCounter & 0xFF) < 100) @@ -646,23 +643,25 @@ bool8 sub_810C4EC(void) if (FlagGet(0x801) == TRUE) { - register u8 x,y; - x = gSaveBlock1Ptr->trainerRematchStepCounter >> 8; - if (x > 99) { - mask = -1; - goto section_1; + u16 x; + do { + x = (gSaveBlock1Ptr->trainerRematchStepCounter >> 8) & 0xFF; + } while (0); + if (x < 100) + { + x++; + gSaveBlock1Ptr->trainerRematchStepCounter = ((u16)(x << 8)) | (gSaveBlock1Ptr->trainerRematchStepCounter & 0xFF); + } + do { + x = (gSaveBlock1Ptr->trainerRematchStepCounter >> 8) & 0xFF; + } while (0); + if (x == 100) + { + FlagClear(0x801); + sub_810C640(); + sub_810D0D0(); + return TRUE; } - y = ((u8)x + 1); - gSaveBlock1Ptr->trainerRematchStepCounter = (((gSaveBlock1Ptr->trainerRematchStepCounter) & (u8)0xFFFFFFFF) | (y << 8)); - section_1: - x = (gSaveBlock1Ptr->trainerRematchStepCounter >> 8) & mask; - if (x == 100) - { - FlagClear(0x801); - sub_810C640(); - sub_810D0D0(); - return TRUE; - } } return FALSE; |