summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjiangzhengwenjz <jiangzhengwenjzw@qq.com>2019-06-03 03:19:15 +0800
committerjiangzhengwenjz <jiangzhengwenjzw@qq.com>2019-06-03 03:22:03 +0800
commit49a1de36d38b41b0f3f7c443acc636281314b749 (patch)
tree5cee3105df23fe688e1a1ba4d05de7b9c1d0282f
parent0a13397b8586bb4147d9e35c80a3c5aebff41d5b (diff)
sub_815B0CC and rollback of failed attempt to make it compilable
-rw-r--r--asm/item_menu.s8
-rw-r--r--asm/party_menu.s4
-rw-r--r--asm/teachy_tv.s55
-rw-r--r--include/teachy_tv.h2
-rw-r--r--src/teachy_tv.c36
-rw-r--r--src/tm_case.c2
-rw-r--r--src/vs_seeker.c37
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;