summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2019-06-11 10:11:23 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2019-06-11 10:11:23 -0400
commit75a89830a95a47cea2cc6a0732ca0da454c74ab7 (patch)
tree0c0149b15f5467a5f0bd316e11fc6d2a356b8062
parent9b58695341f0bb4291fcd4decd2292a1ebd0bcd7 (diff)
Cleanup and documentation of teachy_tv
-rw-r--r--asm/battle_1.s4
-rw-r--r--asm/battle_2.s54
-rw-r--r--asm/battle_controller_link_opponent.s8
-rw-r--r--asm/battle_controller_link_partner.s4
-rw-r--r--asm/battle_controller_oak.s4
-rw-r--r--asm/battle_controller_player.s4
-rw-r--r--asm/battle_controller_pokedude.s4
-rw-r--r--asm/battle_controller_safari.s4
-rw-r--r--asm/battle_controllers.s4
-rw-r--r--asm/battle_records.s8
-rw-r--r--asm/battle_script_commands.s18
-rw-r--r--asm/battle_setup.s24
-rw-r--r--asm/battle_tower.s8
-rw-r--r--asm/cable_club.s4
-rw-r--r--asm/field_specials.s4
-rw-r--r--asm/item_menu.s2
-rw-r--r--asm/item_use.s4
-rw-r--r--asm/party_menu.s2
-rw-r--r--asm/safari_zone.s4
-rw-r--r--data/text/teachy_tv.inc40
-rw-r--r--include/battle.h2
-rw-r--r--include/strings.h40
-rw-r--r--include/teachy_tv.h4
-rw-r--r--src/quest_log.c2
-rw-r--r--src/quest_log_battle.c6
-rw-r--r--src/teachy_tv.c859
-rw-r--r--src/tm_case.c2
-rw-r--r--sym_ewram.txt2
28 files changed, 570 insertions, 555 deletions
diff --git a/asm/battle_1.s b/asm/battle_1.s
index c479650a7..e8bb73629 100644
--- a/asm/battle_1.s
+++ b/asm/battle_1.s
@@ -517,7 +517,7 @@ _0800F5C8: .4byte 0x00006001
thumb_func_start sub_800F5CC
sub_800F5CC: @ 800F5CC
push {lr}
- ldr r0, _0800F5E0 @ =gUnknown_2023E8A
+ ldr r0, _0800F5E0 @ =gBattleOutcome
ldrb r2, [r0]
cmp r2, 0x3
bne _0800F5E8
@@ -526,7 +526,7 @@ sub_800F5CC: @ 800F5CC
bl sub_80D87BC
b _0800F6F0
.align 2, 0
-_0800F5E0: .4byte gUnknown_2023E8A
+_0800F5E0: .4byte gBattleOutcome
_0800F5E4: .4byte gUnknown_83FE883
_0800F5E8:
ldr r0, _0800F61C @ =gBattleTypeFlags
diff --git a/asm/battle_2.s b/asm/battle_2.s
index 7929762d8..6df4e00b9 100644
--- a/asm/battle_2.s
+++ b/asm/battle_2.s
@@ -2376,7 +2376,7 @@ sub_8011100: @ 8011100
cmp r0, 0
beq _08011158
ldr r2, _08011168 @ =gSpecialVar_Result
- ldr r1, _0801116C @ =gUnknown_2023E8A
+ ldr r1, _0801116C @ =gBattleOutcome
movs r0, 0x3
strb r0, [r1]
movs r0, 0x3
@@ -2399,7 +2399,7 @@ _08011158:
_08011160: .4byte gMain
_08011164: .4byte gBattleTypeFlags
_08011168: .4byte gSpecialVar_Result
-_0801116C: .4byte gUnknown_2023E8A
+_0801116C: .4byte gBattleOutcome
_08011170: .4byte CB2_QuitRecordedBattle
thumb_func_end sub_8011100
@@ -4966,7 +4966,7 @@ _08012522:
strb r0, [r2, 0x1D]
ldr r0, _08012724 @ =gUnknown_2023D72
strb r1, [r0]
- ldr r2, _08012728 @ =gUnknown_2023E8A
+ ldr r2, _08012728 @ =gBattleOutcome
strb r1, [r2]
ldr r0, _0801272C @ =gUnknown_2023BC8
str r1, [r0]
@@ -5194,7 +5194,7 @@ _08012718: .4byte 0x00010002
_0801271C: .4byte gSaveBlock2Ptr
_08012720: .4byte gBattleScripting
_08012724: .4byte gUnknown_2023D72
-_08012728: .4byte gUnknown_2023E8A
+_08012728: .4byte gBattleOutcome
_0801272C: .4byte gUnknown_2023BC8
_08012730: .4byte gUnknown_2023E7E
_08012734: .4byte gUnknown_2023E82
@@ -7783,7 +7783,7 @@ sub_8013BD4: @ 8013BD4
push {r5-r7}
movs r0, 0x1
bl TurnValuesCleanUp
- ldr r0, _08013C78 @ =gUnknown_2023E8A
+ ldr r0, _08013C78 @ =gBattleOutcome
ldrb r0, [r0]
cmp r0, 0
bne _08013C04
@@ -7844,7 +7844,7 @@ _08013C58:
subs r0, 0x1
cmp r0, r1
bge _08013C58
- ldr r0, _08013C78 @ =gUnknown_2023E8A
+ ldr r0, _08013C78 @ =gBattleOutcome
ldrb r0, [r0]
cmp r0, 0
beq _08013CB0
@@ -7856,7 +7856,7 @@ _08013C58:
str r0, [r1]
b _08013D20
.align 2, 0
-_08013C78: .4byte gUnknown_2023E8A
+_08013C78: .4byte gBattleOutcome
_08013C7C: .4byte gBattleStruct
_08013C80: .4byte gUnknown_2023DD0
_08013C84: .4byte 0xfffffdff
@@ -10971,7 +10971,7 @@ _080155C4: .4byte gBattleResources
thumb_func_start RunTurnActionsFunctions
RunTurnActionsFunctions: @ 80155C8
push {r4-r6,lr}
- ldr r6, _0801561C @ =gUnknown_2023E8A
+ ldr r6, _0801561C @ =gBattleOutcome
ldrb r0, [r6]
ldr r2, _08015620 @ =gUnknown_2023BE3
cmp r0, 0
@@ -11012,7 +11012,7 @@ _080155D8:
str r0, [r3]
b _0801565C
.align 2, 0
-_0801561C: .4byte gUnknown_2023E8A
+_0801561C: .4byte gBattleOutcome
_08015620: .4byte gUnknown_2023BE3
_08015624: .4byte gBattleStruct
_08015628: .4byte gUnknown_2023BE2
@@ -11058,7 +11058,7 @@ sub_8015670: @ 8015670
cmp r0, 0
beq _080156C4
ldr r1, _080156B0 @ =gBattleTextBuff1
- ldr r4, _080156B4 @ =gUnknown_2023E8A
+ ldr r4, _080156B4 @ =gBattleOutcome
ldrb r0, [r4]
strb r0, [r1]
movs r0, 0
@@ -11077,7 +11077,7 @@ sub_8015670: @ 8015670
_080156A8: .4byte gUnknown_2023BE3
_080156AC: .4byte gBattleTypeFlags
_080156B0: .4byte gBattleTextBuff1
-_080156B4: .4byte gUnknown_2023E8A
+_080156B4: .4byte gBattleOutcome
_080156B8: .4byte sBattler_AI
_080156BC: .4byte gUnknown_2023D74
_080156C0: .4byte gUnknown_81D88CC
@@ -11181,7 +11181,7 @@ sub_801578C: @ 801578C
cmp r0, 0
beq _080157E0
ldr r1, _080157CC @ =gBattleTextBuff1
- ldr r4, _080157D0 @ =gUnknown_2023E8A
+ ldr r4, _080157D0 @ =gBattleOutcome
ldrb r0, [r4]
strb r0, [r1]
movs r0, 0
@@ -11200,7 +11200,7 @@ sub_801578C: @ 801578C
_080157C4: .4byte gUnknown_2023BE3
_080157C8: .4byte gBattleTypeFlags
_080157CC: .4byte gBattleTextBuff1
-_080157D0: .4byte gUnknown_2023E8A
+_080157D0: .4byte gBattleOutcome
_080157D4: .4byte sBattler_AI
_080157D8: .4byte gUnknown_2023D74
_080157DC: .4byte gUnknown_81D88CC
@@ -11496,7 +11496,7 @@ sub_8015A30: @ 8015A30
ldrb r0, [r0]
cmp r0, 0
beq _08015A52
- ldr r0, _08015A60 @ =gUnknown_2023E8A
+ ldr r0, _08015A60 @ =gBattleOutcome
ldrb r0, [r0]
cmp r0, 0x1
beq _08015A6C
@@ -11507,7 +11507,7 @@ _08015A52:
.align 2, 0
_08015A58: .4byte gPaletteFade
_08015A5C: .4byte gUnknown_3004FD4
-_08015A60: .4byte gUnknown_2023E8A
+_08015A60: .4byte gBattleOutcome
_08015A64: .4byte gUnknown_3004F84
_08015A68: .4byte ReturnFromBattleToOverworld
_08015A6C:
@@ -11653,7 +11653,7 @@ _08015B74:
bne _08015BD4
_08015B86:
ldr r1, _08015BE8 @ =gSpecialVar_Result
- ldr r5, _08015BEC @ =gUnknown_2023E8A
+ ldr r5, _08015BEC @ =gBattleOutcome
ldrb r0, [r5]
strh r0, [r1]
ldr r3, _08015BF0 @ =gMain
@@ -11698,7 +11698,7 @@ _08015BDC: .4byte gBattleTypeFlags
_08015BE0: .4byte gPlayerParty
_08015BE4: .4byte gReceivedRemoteLinkPlayers
_08015BE8: .4byte gSpecialVar_Result
-_08015BEC: .4byte gUnknown_2023E8A
+_08015BEC: .4byte gBattleOutcome
_08015BF0: .4byte gMain
_08015BF4: .4byte 0x00000439
_08015BF8: .4byte gUnknown_3004F80
@@ -13212,7 +13212,7 @@ _0801687A:
ldr r0, _0801689C @ =gBattlersCount
ldrb r0, [r0]
strb r0, [r1]
- ldr r1, _080168A0 @ =gUnknown_2023E8A
+ ldr r1, _080168A0 @ =gBattleOutcome
movs r0, 0x4
strb r0, [r1]
_0801688C:
@@ -13224,7 +13224,7 @@ _0801688C:
_08016894: .4byte gBattleStruct
_08016898: .4byte gUnknown_2023BE2
_0801689C: .4byte gBattlersCount
-_080168A0: .4byte gUnknown_2023E8A
+_080168A0: .4byte gBattleOutcome
thumb_func_end sub_8016748
thumb_func_start sub_80168A4
@@ -13254,7 +13254,7 @@ sub_80168A4: @ 80168A4
beq _08016938
adds r4, r2, 0
ldr r6, _0801690C @ =gUnknown_2023D7C
- ldr r5, _08016910 @ =gUnknown_2023E8A
+ ldr r5, _08016910 @ =gBattleOutcome
_080168D8:
ldrb r0, [r4]
bl GetBattlerSide
@@ -13277,7 +13277,7 @@ _08016900: .4byte gBattleTypeFlags
_08016904: .4byte gBattlersCount
_08016908: .4byte gActiveBattler
_0801690C: .4byte gUnknown_2023D7C
-_08016910: .4byte gUnknown_2023E8A
+_08016910: .4byte gBattleOutcome
_08016914:
ldrb r0, [r4]
adds r0, r6
@@ -13300,7 +13300,7 @@ _08016926:
cmp r0, r1
bcc _080168D8
_08016938:
- ldr r0, _08016948 @ =gUnknown_2023E8A
+ ldr r0, _08016948 @ =gBattleOutcome
ldrb r1, [r0]
movs r2, 0x80
orrs r1, r2
@@ -13308,7 +13308,7 @@ _08016938:
b _080169D8
.align 2, 0
_08016944: .4byte gBattlersCount
-_08016948: .4byte gUnknown_2023E8A
+_08016948: .4byte gBattleOutcome
_0801694C:
ldrb r0, [r4]
bl GetBattlerSide
@@ -13368,7 +13368,7 @@ _080169CC:
ldr r0, _080169E0 @ =gBattlersCount
ldrb r0, [r0]
strb r0, [r5]
- ldr r1, _080169E4 @ =gUnknown_2023E8A
+ ldr r1, _080169E4 @ =gBattleOutcome
movs r0, 0x6
_080169D6:
strb r0, [r1]
@@ -13378,7 +13378,7 @@ _080169D8:
bx r0
.align 2, 0
_080169E0: .4byte gBattlersCount
-_080169E4: .4byte gUnknown_2023E8A
+_080169E4: .4byte gBattleOutcome
thumb_func_end sub_80168A4
thumb_func_start sub_80169E8
@@ -13690,7 +13690,7 @@ HandleAction_SafriZoneRun: @ 8016C60
ldr r0, _08016C94 @ =gBattlersCount
ldrb r0, [r0]
strb r0, [r4]
- ldr r1, _08016C98 @ =gUnknown_2023E8A
+ ldr r1, _08016C98 @ =gBattleOutcome
movs r0, 0x4
strb r0, [r1]
pop {r4}
@@ -13701,7 +13701,7 @@ _08016C88: .4byte sBattler_AI
_08016C8C: .4byte gUnknown_2023BDE
_08016C90: .4byte gUnknown_2023BE2
_08016C94: .4byte gBattlersCount
-_08016C98: .4byte gUnknown_2023E8A
+_08016C98: .4byte gBattleOutcome
thumb_func_end HandleAction_SafriZoneRun
thumb_func_start HandleAction_Action9
diff --git a/asm/battle_controller_link_opponent.s b/asm/battle_controller_link_opponent.s
index a03003f30..873fa088c 100644
--- a/asm/battle_controller_link_opponent.s
+++ b/asm/battle_controller_link_opponent.s
@@ -6218,15 +6218,15 @@ RecordedOpponentHandleCmd55: @ 803D914
ldrb r2, [r0]
cmp r2, 0x3
bne _0803D93C
- ldr r0, _0803D938 @ =gUnknown_2023E8A
+ ldr r0, _0803D938 @ =gBattleOutcome
strb r2, [r0]
b _0803D944
.align 2, 0
_0803D930: .4byte gUnknown_2022BC4
_0803D934: .4byte gActiveBattler
-_0803D938: .4byte gUnknown_2023E8A
+_0803D938: .4byte gBattleOutcome
_0803D93C:
- ldr r0, _0803D968 @ =gUnknown_2023E8A
+ ldr r0, _0803D968 @ =gBattleOutcome
movs r1, 0x3
eors r1, r2
strb r1, [r0]
@@ -6246,7 +6246,7 @@ _0803D944:
pop {r0}
bx r0
.align 2, 0
-_0803D968: .4byte gUnknown_2023E8A
+_0803D968: .4byte gBattleOutcome
_0803D96C: .4byte gUnknown_3004FE0
_0803D970: .4byte gActiveBattler
_0803D974: .4byte sub_802F6A8
diff --git a/asm/battle_controller_link_partner.s b/asm/battle_controller_link_partner.s
index f47740d91..8da94bdce 100644
--- a/asm/battle_controller_link_partner.s
+++ b/asm/battle_controller_link_partner.s
@@ -5890,7 +5890,7 @@ sub_80D7218: @ 80D7218
thumb_func_start LinkPartnerHandlecmd55
LinkPartnerHandlecmd55: @ 80D7224
push {r4,lr}
- ldr r2, _080D725C @ =gUnknown_2023E8A
+ ldr r2, _080D725C @ =gBattleOutcome
ldr r1, _080D7260 @ =gUnknown_2022BC4
ldr r4, _080D7264 @ =gActiveBattler
ldrb r0, [r4]
@@ -5914,7 +5914,7 @@ LinkPartnerHandlecmd55: @ 80D7224
pop {r0}
bx r0
.align 2, 0
-_080D725C: .4byte gUnknown_2023E8A
+_080D725C: .4byte gBattleOutcome
_080D7260: .4byte gUnknown_2022BC4
_080D7264: .4byte gActiveBattler
_080D7268: .4byte gUnknown_3004FE0
diff --git a/asm/battle_controller_oak.s b/asm/battle_controller_oak.s
index abc839dce..9f878733e 100644
--- a/asm/battle_controller_oak.s
+++ b/asm/battle_controller_oak.s
@@ -7435,7 +7435,7 @@ sub_80EB274: @ 80EB274
thumb_func_start sub_80EB280
sub_80EB280: @ 80EB280
push {r4,lr}
- ldr r2, _080EB2C4 @ =gUnknown_2023E8A
+ ldr r2, _080EB2C4 @ =gBattleOutcome
ldr r1, _080EB2C8 @ =gUnknown_2022BC4
ldr r4, _080EB2CC @ =gActiveBattler
ldrb r0, [r4]
@@ -7466,7 +7466,7 @@ _080EB2BC:
pop {r0}
bx r0
.align 2, 0
-_080EB2C4: .4byte gUnknown_2023E8A
+_080EB2C4: .4byte gBattleOutcome
_080EB2C8: .4byte gUnknown_2022BC4
_080EB2CC: .4byte gActiveBattler
_080EB2D0: .4byte gBattleTypeFlags
diff --git a/asm/battle_controller_player.s b/asm/battle_controller_player.s
index 75754d645..2a2419a7b 100644
--- a/asm/battle_controller_player.s
+++ b/asm/battle_controller_player.s
@@ -10671,7 +10671,7 @@ _08033A74: .4byte gUnknown_2023FFC
thumb_func_start PlayerHandlecmd55
PlayerHandlecmd55: @ 8033A78
push {r4,lr}
- ldr r2, _08033AB0 @ =gUnknown_2023E8A
+ ldr r2, _08033AB0 @ =gBattleOutcome
ldr r1, _08033AB4 @ =gUnknown_2022BC4
ldr r4, _08033AB8 @ =gActiveBattler
ldrb r0, [r4]
@@ -10695,7 +10695,7 @@ PlayerHandlecmd55: @ 8033A78
pop {r0}
bx r0
.align 2, 0
-_08033AB0: .4byte gUnknown_2023E8A
+_08033AB0: .4byte gBattleOutcome
_08033AB4: .4byte gUnknown_2022BC4
_08033AB8: .4byte gActiveBattler
_08033ABC: .4byte gUnknown_3004FE0
diff --git a/asm/battle_controller_pokedude.s b/asm/battle_controller_pokedude.s
index 2629a8544..23b4a23e8 100644
--- a/asm/battle_controller_pokedude.s
+++ b/asm/battle_controller_pokedude.s
@@ -6700,7 +6700,7 @@ sub_81597B8: @ 81597B8
thumb_func_start sub_81597C4
sub_81597C4: @ 81597C4
push {r4,lr}
- ldr r2, _08159808 @ =gUnknown_2023E8A
+ ldr r2, _08159808 @ =gBattleOutcome
ldr r1, _0815980C @ =gUnknown_2022BC4
ldr r4, _08159810 @ =gActiveBattler
ldrb r0, [r4]
@@ -6731,7 +6731,7 @@ _08159800:
pop {r0}
bx r0
.align 2, 0
-_08159808: .4byte gUnknown_2023E8A
+_08159808: .4byte gBattleOutcome
_0815980C: .4byte gUnknown_2022BC4
_08159810: .4byte gActiveBattler
_08159814: .4byte gBattleTypeFlags
diff --git a/asm/battle_controller_safari.s b/asm/battle_controller_safari.s
index b0f53b7d9..9e01ad2fd 100644
--- a/asm/battle_controller_safari.s
+++ b/asm/battle_controller_safari.s
@@ -1487,7 +1487,7 @@ sub_80DE048: @ 80DE048
thumb_func_start SafariHandleCmd55
SafariHandleCmd55: @ 80DE054
push {r4,lr}
- ldr r2, _080DE098 @ =gUnknown_2023E8A
+ ldr r2, _080DE098 @ =gBattleOutcome
ldr r1, _080DE09C @ =gUnknown_2022BC4
ldr r4, _080DE0A0 @ =gActiveBattler
ldrb r0, [r4]
@@ -1518,7 +1518,7 @@ _080DE090:
pop {r0}
bx r0
.align 2, 0
-_080DE098: .4byte gUnknown_2023E8A
+_080DE098: .4byte gBattleOutcome
_080DE09C: .4byte gUnknown_2022BC4
_080DE0A0: .4byte gActiveBattler
_080DE0A4: .4byte gBattleTypeFlags
diff --git a/asm/battle_controllers.s b/asm/battle_controllers.s
index 5d0921323..5337929a1 100644
--- a/asm/battle_controllers.s
+++ b/asm/battle_controllers.s
@@ -2176,7 +2176,7 @@ EmitPrintString: @ 800E2D4
ldr r2, _0800E3B4 @ =gUnknown_2022874
movs r0, 0x10
strb r0, [r2]
- ldr r0, _0800E3B8 @ =gUnknown_2023E8A
+ ldr r0, _0800E3B8 @ =gBattleOutcome
ldrb r0, [r0]
strb r0, [r2, 0x1]
strb r1, [r2, 0x2]
@@ -2277,7 +2277,7 @@ _0800E378:
bx r0
.align 2, 0
_0800E3B4: .4byte gUnknown_2022874
-_0800E3B8: .4byte gUnknown_2023E8A
+_0800E3B8: .4byte gBattleOutcome
_0800E3BC: .4byte gCurrentMove
_0800E3C0: .4byte gUnknown_2023D4C
_0800E3C4: .4byte gUnknown_2023D68
diff --git a/asm/battle_records.s b/asm/battle_records.s
index 2dce41cf8..e48a0025e 100644
--- a/asm/battle_records.s
+++ b/asm/battle_records.s
@@ -925,7 +925,7 @@ _080CD94C: .4byte 0x0000270f
sub_80CD950: @ 80CD950
push {r4,lr}
adds r4, r0, 0
- ldr r0, _080CD964 @ =gUnknown_2023E8A
+ ldr r0, _080CD964 @ =gBattleOutcome
ldrb r0, [r0]
cmp r0, 0x1
beq _080CD968
@@ -933,7 +933,7 @@ sub_80CD950: @ 80CD950
beq _080CD976
b _080CD984
.align 2, 0
-_080CD964: .4byte gUnknown_2023E8A
+_080CD964: .4byte gBattleOutcome
_080CD968:
eors r0, r4
bl sub_80CD8F8
@@ -978,7 +978,7 @@ sub_80CD98C: @ 80CD98C
subs r3, 0x30
adds r2, r3
ldrh r2, [r2, 0xE]
- ldr r3, _080CD9EC @ =gUnknown_2023E8A
+ ldr r3, _080CD9EC @ =gBattleOutcome
ldrb r3, [r3]
ldr r5, _080CD9F0 @ =gLinkPlayers
lsls r4, r6, 3
@@ -998,7 +998,7 @@ _080CD9DC: .4byte gSaveBlock1Ptr
_080CD9E0: .4byte gSaveBlock2Ptr
_080CD9E4: .4byte 0x00000a98
_080CD9E8: .4byte gUnknown_2039654
-_080CD9EC: .4byte gUnknown_2023E8A
+_080CD9EC: .4byte gBattleOutcome
_080CD9F0: .4byte gLinkPlayers
thumb_func_end sub_80CD98C
diff --git a/asm/battle_script_commands.s b/asm/battle_script_commands.s
index 9c69714cb..60b06f8a6 100644
--- a/asm/battle_script_commands.s
+++ b/asm/battle_script_commands.s
@@ -12,7 +12,7 @@ atk00_attackcanceler: @ 801D760
mov r6, r8
push {r6,r7}
sub sp, 0x4
- ldr r0, _0801D77C @ =gUnknown_2023E8A
+ ldr r0, _0801D77C @ =gBattleOutcome
ldrb r0, [r0]
cmp r0, 0
beq _0801D784
@@ -21,7 +21,7 @@ atk00_attackcanceler: @ 801D760
strb r0, [r1]
b _0801DAFC
.align 2, 0
-_0801D77C: .4byte gUnknown_2023E8A
+_0801D77C: .4byte gBattleOutcome
_0801D780: .4byte gUnknown_2023BE3
_0801D784:
ldr r2, _0801D7B4 @ =gBattleMons
@@ -9519,7 +9519,7 @@ _0802243C:
ble _0802240C
cmp r6, 0
bne _08022450
- ldr r0, _0802253C @ =gUnknown_2023E8A
+ ldr r0, _0802253C @ =gBattleOutcome
ldrb r1, [r0]
movs r2, 0x2
orrs r1, r2
@@ -9553,7 +9553,7 @@ _08022484:
adds r5, 0x1
cmp r5, 0x5
ble _08022454
- ldr r2, _0802253C @ =gUnknown_2023E8A
+ ldr r2, _0802253C @ =gBattleOutcome
cmp r6, 0
bne _08022498
ldrb r0, [r2]
@@ -9647,7 +9647,7 @@ _0802251E:
.align 2, 0
_08022534: .4byte gUnknown_2023BC8
_08022538: .4byte gPlayerParty
-_0802253C: .4byte gUnknown_2023E8A
+_0802253C: .4byte gBattleOutcome
_08022540: .4byte gEnemyParty
_08022544: .4byte gBattleTypeFlags
_08022548: .4byte gBattlersCount
@@ -15311,7 +15311,7 @@ atk57: @ 80251C4
bl GetBattlerAtPosition
ldr r4, _080251F0 @ =gActiveBattler
strb r0, [r4]
- ldr r0, _080251F4 @ =gUnknown_2023E8A
+ ldr r0, _080251F4 @ =gBattleOutcome
ldrb r1, [r0]
movs r0, 0
bl EmitCmd55
@@ -15326,7 +15326,7 @@ atk57: @ 80251C4
bx r0
.align 2, 0
_080251F0: .4byte gActiveBattler
-_080251F4: .4byte gUnknown_2023E8A
+_080251F4: .4byte gBattleOutcome
_080251F8: .4byte gUnknown_2023D74
thumb_func_end atk57
@@ -16141,7 +16141,7 @@ sub_80258AC: @ 80258AC
push {r7}
movs r6, 0
movs r5, 0
- ldr r0, _080258F0 @ =gUnknown_2023E8A
+ ldr r0, _080258F0 @ =gBattleOutcome
ldrb r0, [r0]
cmp r0, 0x1
beq _080258C0
@@ -16171,7 +16171,7 @@ _080258C0:
mov r8, r0
b _080259E8
.align 2, 0
-_080258F0: .4byte gUnknown_2023E8A
+_080258F0: .4byte gBattleOutcome
_080258F4: .4byte gTrainerBattleOpponent_A
_080258F8: .4byte gBattleResources
_080258FC: .4byte gBattleStruct
diff --git a/asm/battle_setup.s b/asm/battle_setup.s
index f4e1fdf0a..146e4a3c9 100644
--- a/asm/battle_setup.s
+++ b/asm/battle_setup.s
@@ -623,7 +623,7 @@ sub_807FB40: @ 807FB40
movs r0, 0
movs r1, 0x80
bl ResetOamRange
- ldr r0, _0807FB78 @ =gUnknown_2023E8A
+ ldr r0, _0807FB78 @ =gBattleOutcome
ldrb r0, [r0]
bl IsPlayerDefeated
cmp r0, 0x1
@@ -633,7 +633,7 @@ sub_807FB40: @ 807FB40
b _0807FB8C
.align 2, 0
_0807FB74: .4byte 0x01000100
-_0807FB78: .4byte gUnknown_2023E8A
+_0807FB78: .4byte gBattleOutcome
_0807FB7C: .4byte c2_whiteout
_0807FB80:
ldr r0, _0807FB94 @ =CB2_ReturnToField
@@ -666,7 +666,7 @@ sub_807FBA0: @ 807FBA0
movs r0, 0
movs r1, 0x80
bl ResetOamRange
- ldr r0, _0807FBD8 @ =gUnknown_2023E8A
+ ldr r0, _0807FBD8 @ =gBattleOutcome
ldrb r0, [r0]
bl IsPlayerDefeated
cmp r0, 0x1
@@ -676,7 +676,7 @@ sub_807FBA0: @ 807FBA0
b _0807FBE6
.align 2, 0
_0807FBD4: .4byte 0x01000100
-_0807FBD8: .4byte gUnknown_2023E8A
+_0807FBD8: .4byte gBattleOutcome
_0807FBDC: .4byte c2_whiteout
_0807FBE0:
ldr r0, _0807FBEC @ =c2_exit_to_overworld_1_continue_scripts_restart_music
@@ -704,7 +704,7 @@ sub_807FBF0: @ 807FBF0
movs r0, 0
movs r1, 0x80
bl ResetOamRange
- ldr r4, _0807FC28 @ =gUnknown_2023E8A
+ ldr r4, _0807FC28 @ =gBattleOutcome
ldrb r0, [r4]
bl IsPlayerDefeated
adds r1, r0, 0
@@ -715,7 +715,7 @@ sub_807FBF0: @ 807FBF0
b _0807FC4C
.align 2, 0
_0807FC24: .4byte 0x01000100
-_0807FC28: .4byte gUnknown_2023E8A
+_0807FC28: .4byte gBattleOutcome
_0807FC2C: .4byte c2_whiteout
_0807FC30:
ldrb r0, [r4]
@@ -1853,7 +1853,7 @@ sub_80804AC: @ 80804AC
ldrh r0, [r0]
cmp r0, 0x9
bne _08080508
- ldr r0, _080804DC @ =gUnknown_2023E8A
+ ldr r0, _080804DC @ =gBattleOutcome
ldrb r0, [r0]
bl IsPlayerDefeated
adds r1, r0, 0
@@ -1870,7 +1870,7 @@ sub_80804AC: @ 80804AC
b _080804EE
.align 2, 0
_080804D8: .4byte gUnknown_20386AC
-_080804DC: .4byte gUnknown_2023E8A
+_080804DC: .4byte gBattleOutcome
_080804E0: .4byte gSpecialVar_Result
_080804E4: .4byte gUnknown_20386CC
_080804E8:
@@ -1900,7 +1900,7 @@ _08080508:
_0808051C: .4byte gTrainerBattleOpponent_A
_08080520: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
_08080524:
- ldr r0, _08080538 @ =gUnknown_2023E8A
+ ldr r0, _08080538 @ =gBattleOutcome
ldrb r0, [r0]
bl IsPlayerDefeated
cmp r0, 0x1
@@ -1910,7 +1910,7 @@ _08080530:
bl SetMainCallback2
b _0808054E
.align 2, 0
-_08080538: .4byte gUnknown_2023E8A
+_08080538: .4byte gBattleOutcome
_0808053C: .4byte c2_whiteout
_08080540:
ldr r0, _08080554 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
@@ -1940,7 +1940,7 @@ sub_8080558: @ 8080558
_08080570: .4byte gTrainerBattleOpponent_A
_08080574: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
_08080578:
- ldr r0, _0808058C @ =gUnknown_2023E8A
+ ldr r0, _0808058C @ =gBattleOutcome
ldrb r0, [r0]
bl IsPlayerDefeated
cmp r0, 0x1
@@ -1949,7 +1949,7 @@ _08080578:
bl SetMainCallback2
b _080805A6
.align 2, 0
-_0808058C: .4byte gUnknown_2023E8A
+_0808058C: .4byte gBattleOutcome
_08080590: .4byte c2_whiteout
_08080594:
ldr r0, _080805AC @ =c2_exit_to_overworld_1_continue_scripts_restart_music
diff --git a/asm/battle_tower.s b/asm/battle_tower.s
index 0f268a320..503a6343e 100644
--- a/asm/battle_tower.s
+++ b/asm/battle_tower.s
@@ -2894,7 +2894,7 @@ _080E6FF2:
bl sub_80E712C
ldr r4, _080E703C @ =gSaveBlock2Ptr
ldr r0, [r4]
- ldr r1, _080E704C @ =gUnknown_2023E8A
+ ldr r1, _080E704C @ =gBattleOutcome
ldrb r1, [r1]
ldr r2, _080E7050 @ =0x0000055d
adds r0, r2
@@ -2930,7 +2930,7 @@ _080E703C: .4byte gSaveBlock2Ptr
_080E7040: .4byte 0x0000055c
_080E7044: .4byte gSpecialVar_0x8004
_080E7048: .4byte 0x00000564
-_080E704C: .4byte gUnknown_2023E8A
+_080E704C: .4byte gBattleOutcome
_080E7050: .4byte 0x0000055d
_080E7054: .4byte 0x0000055e
thumb_func_end sub_80E6FB8
@@ -3612,7 +3612,7 @@ _080E754C: .4byte gSaveBlock2Ptr
thumb_func_start sub_80E7550
sub_80E7550: @ 80E7550
push {lr}
- ldr r0, _080E7564 @ =gUnknown_2023E8A
+ ldr r0, _080E7564 @ =gBattleOutcome
ldrb r0, [r0]
cmp r0, 0x3
bne _080E756C
@@ -3621,7 +3621,7 @@ sub_80E7550: @ 80E7550
strb r0, [r1]
b _080E7590
.align 2, 0
-_080E7564: .4byte gUnknown_2023E8A
+_080E7564: .4byte gBattleOutcome
_080E7568: .4byte gStringVar4
_080E756C:
cmp r0, 0x1
diff --git a/asm/cable_club.s b/asm/cable_club.s
index 91ddde46d..b9b3a595c 100644
--- a/asm/cable_club.s
+++ b/asm/cable_club.s
@@ -1940,7 +1940,7 @@ sub_8081668: @ 8081668
ldrb r0, [r0]
cmp r0, 0
beq _0808170A
- ldr r0, _080816C4 @ =gUnknown_2023E8A
+ ldr r0, _080816C4 @ =gBattleOutcome
ldrb r0, [r0]
cmp r0, 0x1
beq _080816C8
@@ -1953,7 +1953,7 @@ _080816B4: .4byte 0x0000ffdf
_080816B8: .4byte gSpecialVar_0x8004
_080816BC: .4byte gUnknown_300502C
_080816C0: .4byte gWirelessCommType
-_080816C4: .4byte gUnknown_2023E8A
+_080816C4: .4byte gBattleOutcome
_080816C8:
ldr r4, _080816E8 @ =gLinkPlayers
bl GetMultiplayerId
diff --git a/asm/field_specials.s b/asm/field_specials.s
index 7a0221941..a6f97e9df 100644
--- a/asm/field_specials.s
+++ b/asm/field_specials.s
@@ -178,11 +178,11 @@ _080CA748: .4byte gUnknown_8417FCC
thumb_func_start sub_80CA74C
sub_80CA74C: @ 80CA74C
- ldr r0, _080CA754 @ =gUnknown_2023E8A
+ ldr r0, _080CA754 @ =gBattleOutcome
ldrb r0, [r0]
bx lr
.align 2, 0
-_080CA754: .4byte gUnknown_2023E8A
+_080CA754: .4byte gBattleOutcome
thumb_func_end sub_80CA74C
thumb_func_start sub_80CA758
diff --git a/asm/item_menu.s b/asm/item_menu.s
index b3169cdc3..dd1fde957 100644
--- a/asm/item_menu.s
+++ b/asm/item_menu.s
@@ -6383,7 +6383,7 @@ sub_810B180: @ 810B180
_0810B198: .4byte gMain
_0810B19C:
bl sub_810AECC
- bl sub_815AC20
+ bl SetTeachyTvControllerModeToResume
ldr r0, _0810B1C4 @ =gUnknown_203AD10
ldr r1, [r0]
ldr r0, _0810B1C8 @ =CB2_ReturnToTeachyTV
diff --git a/asm/item_use.s b/asm/item_use.s
index 67da30cf6..517d849c0 100644
--- a/asm/item_use.s
+++ b/asm/item_use.s
@@ -1241,7 +1241,7 @@ sub_80A194C: @ 80A194C
push {lr}
ldr r1, _080A195C @ =UseFameCheckerFromMenu
movs r0, 0
- bl sub_815ABC4
+ bl InitTeachyTvController
pop {r0}
bx r0
.align 2, 0
@@ -1263,7 +1263,7 @@ sub_80A1960: @ 80A1960
bl sub_80A1184
ldr r1, _080A1994 @ =CB2_ReturnToField
movs r0, 0
- bl sub_815ABC4
+ bl InitTeachyTvController
adds r0, r4, 0
bl DestroyTask
_080A1988:
diff --git a/asm/party_menu.s b/asm/party_menu.s
index 2ce165ef2..b3ce0f3be 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -4878,7 +4878,7 @@ sub_8120FB0: @ 8120FB0
push {lr}
bl FreeRestoreBattleData
bl LoadPlayerParty
- bl sub_815AC20
+ bl SetTeachyTvControllerModeToResume
ldr r0, _08120FC8 @ =CB2_ReturnToTeachyTV
bl SetMainCallback2
pop {r0}
diff --git a/asm/safari_zone.s b/asm/safari_zone.s
index 48103dc9c..4bc9d6eb7 100644
--- a/asm/safari_zone.s
+++ b/asm/safari_zone.s
@@ -129,7 +129,7 @@ sub_80A0F4C: @ 80A0F4C
_080A0F60: .4byte gUnknown_2039994
_080A0F64: .4byte CB2_ReturnToField
_080A0F68:
- ldr r0, _080A0F88 @ =gUnknown_2023E8A
+ ldr r0, _080A0F88 @ =gBattleOutcome
ldrb r0, [r0]
cmp r0, 0x8
bne _080A0F9C
@@ -143,7 +143,7 @@ _080A0F68:
bl SetMainCallback2
b _080A0FB0
.align 2, 0
-_080A0F88: .4byte gUnknown_2023E8A
+_080A0F88: .4byte gBattleOutcome
_080A0F8C: .4byte gUnknown_81BFB87
_080A0F90: .4byte gFieldCallback
_080A0F94: .4byte sub_807E3EC
diff --git a/data/text/teachy_tv.inc b/data/text/teachy_tv.inc
index 633be347d..3989aa5d1 100644
--- a/data/text/teachy_tv.inc
+++ b/data/text/teachy_tv.inc
@@ -1,25 +1,25 @@
-gUnknown_841B7A4:: @ 841B7A4
+gTeachyTvString_TeachBattle:: @ 841B7A4
.string "Teach me how to battle.$"
-gUnknown_841B7BC:: @ 841B7BC
+gTeachyTvString_StatusProblems:: @ 841B7BC
.string "What are status problems?$"
-gUnknown_841B7D6:: @ 841B7D6
+gTeachyTvString_TypeMatchups:: @ 841B7D6
.string "What are type matchups?$"
-gUnknown_841B7EE:: @ 841B7EE
+gTeachyTvString_CatchPkmn:: @ 841B7EE
.string "I want to catch POKéMON.$"
-gUnknown_841B807:: @ 841B807
+gTeachyTvString_AboutTMs:: @ 841B807
.string "Teach me about TMs.$"
-gUnknown_841B81B:: @ 841B81B
+gTeachyTvString_RegisterItem:: @ 841B81B
.string "How do I register an item?$"
-gUnknown_841B836:: @ 841B836
+gTeachyTvString_Cancel:: @ 841B836
.string "CANCEL$"
-gUnknown_841B83D:: @ 841B83D
+gTeachyTvText_PokeDudeSaysHello:: @ 841B83D
.string "Hey, all you TRAINERS out there!\n"
.string "HELLO, TRAINERS!\p"
.string "……… ……… ………\p"
@@ -28,7 +28,7 @@ gUnknown_841B83D:: @ 841B83D
.string "It's me, the POKé DUDE!\p"
.string "$"
-gUnknown_841B8BF:: @ 841B8BF
+gTeachyTvText_BattleScript1:: @ 841B8BF
.string "Today, the POKé DUDE's here to\n"
.string "tell you about how you can battle\l"
.string "POKéMON!\p"
@@ -44,7 +44,7 @@ gUnknown_841B8BF:: @ 841B8BF
.string "Keep your eyes glued to the super\n"
.string "POKé DUDE SHOW!$"
-gUnknown_841BA41:: @ 841BA41
+gTeachyTvText_BattleScript2:: @ 841BA41
.string "Well, did you get that?\p"
.string "Even if your own POKéMON's HP\n"
.string "falls to zero, and it becomes\l"
@@ -55,7 +55,7 @@ gUnknown_841BA41:: @ 841BA41
.string "Remember, TRAINERS, a good deed\n"
.string "a day brings happiness to stay!$"
-gUnknown_841BB40:: @ 841BB40
+gTeachyTvText_StatusScript1:: @ 841BB40
.string "Today, the POKé DUDE's here to\n"
.string "tell you about status problems!\p"
.string "Status problems include poisoning,\n"
@@ -73,7 +73,7 @@ gUnknown_841BB40:: @ 841BB40
.string "Keep your eyes glued to the super\n"
.string "POKé DUDE SHOW!$"
-gUnknown_841BD10:: @ 841BD10
+gTeachyTvText_StatusScript2:: @ 841BD10
.string "Poisoning or paralysis don't go\n"
.string "away after a battle.\p"
.string "If a POKéMON is poisoned, it loses\n"
@@ -87,7 +87,7 @@ gUnknown_841BD10:: @ 841BD10
.string "Remember, TRAINERS, a good deed\n"
.string "a day brings happiness to stay!$"
-gUnknown_841BE76:: @ 841BE76
+gTeachyTvText_MatchupsScript1:: @ 841BE76
.string "Does everyone know about type\n"
.string "matchups?\p"
.string "POKéMON and their moves all\n"
@@ -110,7 +110,7 @@ gUnknown_841BE76:: @ 841BE76
.string "Keep your eyes glued to the super\n"
.string "POKé DUDE SHOW!$"
-gUnknown_841C0AF:: @ 841C0AF
+gTeachyTvText_MatchupsScript2:: @ 841C0AF
.string "Is it possible to launch an attack\n"
.string "that will inflict heavy damage?\p"
.string "Does the opposing POKéMON pose\n"
@@ -126,7 +126,7 @@ gUnknown_841C0AF:: @ 841C0AF
.string "Remember, a good deed a day\n"
.string "brings happiness to stay!$"
-gUnknown_841C23B:: @ 841C23B
+gTeachyTvText_CatchingScript1:: @ 841C23B
.string "Today, the POKé DUDE's going to\n"
.string "show you how to catch POKéMON!\p"
.string "Just imagine… A groovy POKéMON\n"
@@ -141,7 +141,7 @@ gUnknown_841C23B:: @ 841C23B
.string "Keep your eyes glued to the super\n"
.string "POKé DUDE SHOW!$"
-gUnknown_841C384:: @ 841C384
+gTeachyTvText_CatchingScript2:: @ 841C384
.string "If your first POKé BALL fails to\n"
.string "catch the POKéMON, don't give up!\p"
.string "Keep throwing POKé BALLS…\n"
@@ -150,7 +150,7 @@ gUnknown_841C384:: @ 841C384
.string "Remember, TRAINERS, a good deed\n"
.string "a day brings happiness to stay!$"
-gUnknown_841C459:: @ 841C459
+gTeachyTvText_TMsScript1:: @ 841C459
.string "Hey, everyone!\n"
.string "Do you all have TMs?\p"
.string "A TM, Technical Machine, is an\n"
@@ -187,13 +187,13 @@ gPokeDudeText_ReadTMDescription:: @ 841C693
.string "So, try using it on POKéMON with\n"
.string "arms that can throw punches!$"
-gUnknown_841C7B4:: @ 841C7B4
+gTeachyTvText_TMsScript2:: @ 841C7B4
.string "Wow, I talked a lot today!\n"
.string "All righty, be seeing you!\p"
.string "Remember, TRAINERS, a good deed\n"
.string "a day brings happiness to stay!$"
-gUnknown_841C82A:: @ 841C82A
+gTeachyTvText_RegisterScript1:: @ 841C82A
.string "A TRAINER's BAG has a bunch of\n"
.string "nifty, convenient features!\p"
.string "Take stuff in the KEY ITEMS\n"
@@ -208,7 +208,7 @@ gUnknown_841C82A:: @ 841C82A
.string "Keep your eyes glued to the sorta\n"
.string "super POKé DUDE SHOW!$"
-gUnknown_841C994:: @ 841C994
+gTeachyTvText_RegisterScript2:: @ 841C994
.string "And now, your TEACHY TV is\n"
.string "registered.\p"
.string "How do you use it?\n"
diff --git a/include/battle.h b/include/battle.h
index c86bc9232..2e6d251c3 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -983,6 +983,6 @@ extern u8 gBattlersCount;
extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT];
extern s32 gBattleMoveDamage;
-extern u8 gUnknown_2023E8A;
+extern u8 gBattleOutcome;
#endif // GUARD_BATTLE_H
diff --git a/include/strings.h b/include/strings.h
index 51aeb376a..edc5136f8 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -115,25 +115,25 @@ extern const u8 gPokeDudeText_TMTypes[];
extern const u8 gPokeDudeText_ReadTMDescription[];
// teachy_tv
-extern const u8 gUnknown_841B7A4[];
-extern const u8 gUnknown_841B7BC[];
-extern const u8 gUnknown_841B7D6[];
-extern const u8 gUnknown_841B7EE[];
-extern const u8 gUnknown_841B807[];
-extern const u8 gUnknown_841B81B[];
-extern const u8 gUnknown_841B836[];
-extern const u8 gUnknown_841B83D[];
-extern const u8 gUnknown_841B8BF[];
-extern const u8 gUnknown_841BB40[];
-extern const u8 gUnknown_841BE76[];
-extern const u8 gUnknown_841C23B[];
-extern const u8 gUnknown_841C459[];
-extern const u8 gUnknown_841C82A[];
-extern const u8 gUnknown_841BA41[];
-extern const u8 gUnknown_841BD10[];
-extern const u8 gUnknown_841C0AF[];
-extern const u8 gUnknown_841C384[];
-extern const u8 gUnknown_841C7B4[];
-extern const u8 gUnknown_841C994[];
+extern const u8 gTeachyTvString_TeachBattle[];
+extern const u8 gTeachyTvString_StatusProblems[];
+extern const u8 gTeachyTvString_TypeMatchups[];
+extern const u8 gTeachyTvString_CatchPkmn[];
+extern const u8 gTeachyTvString_AboutTMs[];
+extern const u8 gTeachyTvString_RegisterItem[];
+extern const u8 gTeachyTvString_Cancel[];
+extern const u8 gTeachyTvText_PokeDudeSaysHello[];
+extern const u8 gTeachyTvText_BattleScript1[];
+extern const u8 gTeachyTvText_StatusScript1[];
+extern const u8 gTeachyTvText_MatchupsScript1[];
+extern const u8 gTeachyTvText_CatchingScript1[];
+extern const u8 gTeachyTvText_TMsScript1[];
+extern const u8 gTeachyTvText_RegisterScript1[];
+extern const u8 gTeachyTvText_BattleScript2[];
+extern const u8 gTeachyTvText_StatusScript2[];
+extern const u8 gTeachyTvText_MatchupsScript2[];
+extern const u8 gTeachyTvText_CatchingScript2[];
+extern const u8 gTeachyTvText_TMsScript2[];
+extern const u8 gTeachyTvText_RegisterScript2[];
#endif //GUARD_STRINGS_H
diff --git a/include/teachy_tv.h b/include/teachy_tv.h
index f3b9eb565..36bac6a67 100644
--- a/include/teachy_tv.h
+++ b/include/teachy_tv.h
@@ -1,8 +1,8 @@
#ifndef GUARD_TEACHY_TV_H
#define GUARD_TEACHY_TV_H
-void sub_815ABC4(u8 mode, void (*cb)());
+void InitTeachyTvController(u8 mode, void (*cb)());
void CB2_ReturnToTeachyTV(void);
-void sub_815AC20(void);
+void SetTeachyTvControllerModeToResume(void);
#endif //GUARD_TEACHY_TV_H
diff --git a/src/quest_log.c b/src/quest_log.c
index 6299d285d..ed061a8b6 100644
--- a/src/quest_log.c
+++ b/src/quest_log.c
@@ -2746,7 +2746,7 @@ void sub_81134CC(struct Var4038Struct * a0)
if (VarGet(VAR_MAP_SCENE_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB) == 2)
{
sub_8113078(a0);
- if (gUnknown_2023E8A == 1)
+ if (gBattleOutcome == B_OUTCOME_WON)
sub_8113194(a0);
else
sub_81131FC(a0);
diff --git a/src/quest_log_battle.c b/src/quest_log_battle.c
index d4d1245ec..4a63042bf 100644
--- a/src/quest_log_battle.c
+++ b/src/quest_log_battle.c
@@ -26,7 +26,7 @@ void sub_812C334(s32 *, s32 *);
void sub_812BFDC(void)
{
- if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_WALLY_TUTORIAL | BATTLE_TYPE_DOME)) && (gUnknown_2023E8A == 1 || gUnknown_2023E8A == 7))
+ if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_WALLY_TUTORIAL | BATTLE_TYPE_DOME)) && (gBattleOutcome == B_OUTCOME_WON || gBattleOutcome == B_OUTCOME_CAUGHT))
{
struct QuestLogStruct_TrainerBattleRecord * questLogTrainerBattleRecord = Alloc(sizeof(struct QuestLogStruct_TrainerBattleRecord));
struct QuestLogStruct_WildBattleRecord * questLogWildBattleRecord = Alloc(sizeof(struct QuestLogStruct_WildBattleRecord));
@@ -81,7 +81,7 @@ void sub_812BFDC(void)
}
else
{
- if (gUnknown_2023E8A == 1)
+ if (gBattleOutcome == B_OUTCOME_WON)
{
questLogWildBattleRecord->v0 = GetMonData(gEnemyParty + 0, MON_DATA_SPECIES);
questLogWildBattleRecord->v2 = SPECIES_NONE;
@@ -116,7 +116,7 @@ void sub_812C224(void)
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
{
struct QuestLogStruct_LinkBattleRecord * r5 = Alloc(sizeof(struct QuestLogStruct_LinkBattleRecord));
- r5->v0 = gUnknown_2023E8A - 1;
+ r5->v0 = gBattleOutcome - 1; // 0 = won, 1 = lost, 2 = drew
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
{
r8 = 15;
diff --git a/src/teachy_tv.c b/src/teachy_tv.c
index 1a144b0dd..f3ef96077 100644
--- a/src/teachy_tv.c
+++ b/src/teachy_tv.c
@@ -34,14 +34,23 @@
#include "fieldmap.h"
#include "strings.h"
+enum TeachyTvScript
+{
+ TTVSCR_BATTLE,
+ TTVSCR_STATUS,
+ TTVSCR_MATCHUPS,
+ TTVSCR_CATCHING,
+ TTVSCR_TMS,
+ TTVSCR_REGISTER
+};
+
struct TeachyTvCtrlBlk
{
MainCallback callback;
u8 mode;
- u8 optionChosen;
+ u8 whichScript;
u16 scrollOffset;
u16 selectedRow;
- u16 filler;
};
struct TeachyTvBuf
@@ -51,196 +60,196 @@ struct TeachyTvBuf
u16 buffer2[0x800];
u16 buffer3[0x800];
u16 buffer4[0x800];
- u8 var_4004;
- u8 var_4005;
- u8 var_4006;
- u8 var_4007;
+ u8 grassAnimCounterLo;
+ u8 grassAnimCounterHi;
+ u8 grassAnimDisabled;
+ u8 scrollIndicatorArrowPairId;
};
-EWRAM_DATA struct TeachyTvCtrlBlk gTeachyTV_StaticResources = {0};
-EWRAM_DATA struct TeachyTvBuf * gUnknown_203F450 = NULL;
-
-void TeachyTvClusFuncTransitionRenderBg2TeachyTvGraphicInitNpcPos(u8 taskId);
-void TeachyTvClusFuncClearBg2TeachyTvGraphic(u8 taskId);
-void TeachyTvClusFuncNpcMoveAndSetupTextPrinter(u8 taskId);
-void TeachyTvClusFuncIdleIfTextPrinterIsActive(u8 taskId);
-void TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen(u8 taskId);
-void TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen2(u8 taskId);
-void TeachyTvClusFuncIdleIfTextPrinterIsActive2(u8 taskId);
-void TeachyTvClusFuncEraseTextWindowIfKeyPressed(u8 taskId);
-void TeachyTvClusFuncStartAnimNpcWalkIntoGrass(u8 taskId);
-void TeachyTvClusFuncDudeMoveUp(u8 taskId);
-void TeachyTvClusFuncDudeMoveRight(u8 taskId);
-void TeachyTvClusFuncDudeTurnLeft(u8 taskId);
-void TeachyTvClusFuncDudeMoveLeft(u8 taskId);
-void TeachyTvClusFuncRenderAndRemoveBg1EndGraphic(u8 taskId);
-void TeachyTvClusFuncTaskBattleOrFadeByOptionChosen(u8 taskId);
-void TeachyTvCallback(void);
-void TeachyTvMainCallback(void);
-void TeachyTvVblankHandler(void);
-void TeachyTvCreateAndRenderRbox(void);
-void TeachyTvInitIo(void);
-u8 TeachyTvSetupObjEventAndOam(void);
-void TeachyTvSetupPostBattleWindowAndObj(u8);
-u8 TeachyTvSetupWindow(void);
-void TeachyTvSetupScrollIndicatorArrowPair(void);
-void TeachyTvSetWindowRegs(void);
-void TeachyTvSetupBg(void);
-void TeachyTvLoadGraphic(void);
-void TeachyTvPostBattleFadeControl(u8);
-void TeachyTvOptionListController(u8);
-void TeachyTvAudioByInput(s32, bool8, struct ListMenu *);
-void TeachyTvQuitFadeControlAndTaskDel(u8 taskId);
-void TeachyTvRenderMsgAndSwitchClusterFuncs(u8 taskId);
-void TeachyTvClearBg1EndGraphicText(void);
-void TeachyTvBackToOptionList(u8 taskId);
-void TeachyTvSetupBagItemsByOptionChosen(void);
-void TeachyTvPrepBattle(u8 taskId);
-void TeachyTvGrassAnimationMain(u8 taskId, s16 x, s16 y, u8 subpriority, bool8 mode);
-void TeachyTvLoadBg3Map(u16 *);
-u8 TeachyTvGrassAnimationCheckIfNeedsToGenerateGrassObj(s16 x, s16 y);
-void TeachyTvGrassAnimationObjCallback(struct Sprite *sprite);
-void TeachyTvRestorePlayerPartyCallback(void);
-void TeachyTvPreBattleAnimAndSetBattleCallback(u8 taskId);
-void TeachyTvLoadMapTilesetToBuffer(struct Tileset *ts, u8 *dstBuffer, u16 size);
-void TeachyTvPushBackNewMapPalIndexArrayEntry(const struct MapData *mStruct, u16 *buf1, u8 *palIndexArray, u16 mapEntry, u16 offset);
-void TeachyTvComputeMapTilesFromTilesetAndMetaTiles(u16 *metaTilesArray, u8 *blockBuf, u8 *tileset);
-void TeachyTvComputeSingleMapTileBlockFromTilesetAndMetaTiles(u8 *blockBuf, u8 *tileset, u8 metaTile);
-u16 TeachyTvComputePalIndexArrayEntryByMetaTile(u8 *palIndexArrayBuf, u16 metaTile);
-void TeachyTvLoadMapPalette(const struct MapData * mStruct, const u8 *palIndexArray);
-
-const struct BgTemplate gTeachyTvBgTemplateArray[] =
+static EWRAM_DATA struct TeachyTvCtrlBlk gTeachyTV_StaticResources = {0};
+static EWRAM_DATA struct TeachyTvBuf * sResources = NULL;
+
+static void TTVcmd_TransitionRenderBg2TeachyTvGraphicInitNpcPos(u8 taskId);
+static void TTVcmd_ClearBg2TeachyTvGraphic(u8 taskId);
+static void TTVcmd_NpcMoveAndSetupTextPrinter(u8 taskId);
+static void TTVcmd_IdleIfTextPrinterIsActive(u8 taskId);
+static void TTVcmd_TextPrinterSwitchStringByOptionChosen(u8 taskId);
+static void TTVcmd_TextPrinterSwitchStringByOptionChosen2(u8 taskId);
+static void TTVcmd_IdleIfTextPrinterIsActive2(u8 taskId);
+static void TTVcmd_EraseTextWindowIfKeyPressed(u8 taskId);
+static void TTVcmd_StartAnimNpcWalkIntoGrass(u8 taskId);
+static void TTVcmd_DudeMoveUp(u8 taskId);
+static void TTVcmd_DudeMoveRight(u8 taskId);
+static void TTVcmd_DudeTurnLeft(u8 taskId);
+static void TTVcmd_DudeMoveLeft(u8 taskId);
+static void TTVcmd_RenderAndRemoveBg1EndGraphic(u8 taskId);
+static void TTVcmd_TaskBattleOrFadeByOptionChosen(u8 taskId);
+static void TeachyTvCallback(void);
+static void TeachyTvMainCallback(void);
+static void TeachyTvVblankHandler(void);
+static void TeachyTvCreateAndRenderRbox(void);
+static void TeachyTvInitIo(void);
+static u8 TeachyTvSetupObjEventAndOam(void);
+static void TeachyTvSetupPostBattleWindowAndObj(u8);
+static u8 TeachyTvSetupWindow(void);
+static void TeachyTvSetupScrollIndicatorArrowPair(void);
+static void TeachyTvSetWindowRegs(void);
+static void TeachyTvSetupBg(void);
+static void TeachyTvLoadGraphic(void);
+static void TeachyTvPostBattleFadeControl(u8);
+static void TeachyTvOptionListController(u8);
+static void TeachyTvAudioByInput(s32, bool8, struct ListMenu *);
+static void TeachyTvQuitFadeControlAndTaskDel(u8 taskId);
+static void TeachyTvRenderMsgAndSwitchClusterFuncs(u8 taskId);
+static void TeachyTvClearBg1EndGraphicText(void);
+static void TTVcmd_End(u8 taskId);
+static void TeachyTvSetupBagItemsByOptionChosen(void);
+static void TeachyTvPrepBattle(u8 taskId);
+static void TeachyTvGrassAnimationMain(u8 taskId, s16 x, s16 y, u8 subpriority, bool8 mode);
+static void TeachyTvLoadBg3Map(u16 *);
+static u8 TeachyTvGrassAnimationCheckIfNeedsToGenerateGrassObj(s16 x, s16 y);
+static void TeachyTvGrassAnimationObjCallback(struct Sprite *sprite);
+static void TeachyTvRestorePlayerPartyCallback(void);
+static void TeachyTvPreBattleAnimAndSetBattleCallback(u8 taskId);
+static void TeachyTvLoadMapTilesetToBuffer(struct Tileset *ts, u8 *dstBuffer, u16 size);
+static void TeachyTvPushBackNewMapPalIndexArrayEntry(const struct MapData *mStruct, u16 *buf1, u8 *palIndexArray, u16 mapEntry, u16 offset);
+static void TeachyTvComputeMapTilesFromTilesetAndMetaTiles(u16 *metaTilesArray, u8 *blockBuf, u8 *tileset);
+static void TeachyTvComputeSingleMapTileBlockFromTilesetAndMetaTiles(u8 *blockBuf, u8 *tileset, u8 metaTile);
+static u16 TeachyTvComputePalIndexArrayEntryByMetaTile(u8 *palIndexArrayBuf, u16 metaTile);
+static void TeachyTvLoadMapPalette(const struct MapData * mStruct, const u8 *palIndexArray);
+
+static const struct BgTemplate gTeachyTvBgTemplateArray[] =
{
{
- .bg = 0x0,
- .charBaseIndex = 0x0,
- .mapBaseIndex = 0x1F,
- .screenSize = 0x0,
- .paletteMode = 0x0,
- .priority = 0x1,
- .baseTile = 0x0,
+ .bg = 0,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 31,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 1,
+ .baseTile = 0x000,
},
{
- .bg = 0x1,
- .charBaseIndex = 0x0,
- .mapBaseIndex = 0x1E,
- .screenSize = 0x0,
- .paletteMode = 0x0,
- .priority = 0x0,
- .baseTile = 0x0,
+ .bg = 1,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 30,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 0,
+ .baseTile = 0x000,
},
{
- .bg = 0x2,
- .charBaseIndex = 0x0,
- .mapBaseIndex = 0x1D,
- .screenSize = 0x0,
- .paletteMode = 0x0,
- .priority = 0x2,
- .baseTile = 0x0,
+ .bg = 2,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 29,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 2,
+ .baseTile = 0x000,
},
{
- .bg = 0x3,
- .charBaseIndex = 0x2,
- .mapBaseIndex = 0x1C,
- .screenSize = 0x0,
- .paletteMode = 0x0,
- .priority = 0x3,
- .baseTile = 0x0,
+ .bg = 3,
+ .charBaseIndex = 2,
+ .mapBaseIndex = 28,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 3,
+ .baseTile = 0x000,
},
};
-const struct WindowTemplate gTeachyTvWindowTemplateArray[] =
+static const struct WindowTemplate gTeachyTvWindowTemplateArray[] =
{
{
- .bg = 0x1,
- .tilemapLeft = 0x2,
- .tilemapTop = 0xF,
- .width = 0x1A,
- .height = 0x4,
+ .bg = 1,
+ .tilemapLeft = 2,
+ .tilemapTop = 15,
+ .width = 26,
+ .height = 4,
.paletteNum = 0x3,
- .baseBlock = 0xEA,
+ .baseBlock = 0x0EA,
},
{
- .bg = 0x0,
- .tilemapLeft = 0x4,
- .tilemapTop = 0x1,
- .width = 0x16,
- .height = 0xC,
+ .bg = 0,
+ .tilemapLeft = 4,
+ .tilemapTop = 1,
+ .width = 22,
+ .height = 12,
.paletteNum = 0x3,
.baseBlock = 0x152,
},
DUMMY_WIN_TEMPLATE,
};
-const struct ListMenuItem gTeachyTvListMenuItemArray[] =
+static const struct ListMenuItem sListMenuItems[] =
{
{
- .label = gUnknown_841B7A4,
- .index = 0,
+ .label = gTeachyTvString_TeachBattle,
+ .index = TTVSCR_BATTLE
},
{
- .label = gUnknown_841B7BC,
- .index = 1,
+ .label = gTeachyTvString_StatusProblems,
+ .index = TTVSCR_STATUS
},
{
- .label = gUnknown_841B7D6,
- .index = 2,
+ .label = gTeachyTvString_TypeMatchups,
+ .index = TTVSCR_MATCHUPS
},
{
- .label = gUnknown_841B7EE,
- .index = 3,
+ .label = gTeachyTvString_CatchPkmn,
+ .index = TTVSCR_CATCHING
},
{
- .label = gUnknown_841B807,
- .index = 4,
+ .label = gTeachyTvString_AboutTMs,
+ .index = TTVSCR_TMS
},
{
- .label = gUnknown_841B81B,
- .index = 5,
+ .label = gTeachyTvString_RegisterItem,
+ .index = TTVSCR_REGISTER
},
{
- .label = gUnknown_841B836,
- .index = -2,
+ .label = gTeachyTvString_Cancel,
+ .index = -2
},
};
-const struct ListMenuItem gTeachyTvListMenuItemArray2[] =
+static const struct ListMenuItem sListMenuItems_NoTMCase[] =
{
{
- .label = gUnknown_841B7A4,
- .index = 0,
+ .label = gTeachyTvString_TeachBattle,
+ .index = TTVSCR_BATTLE
},
{
- .label = gUnknown_841B7BC,
- .index = 1,
+ .label = gTeachyTvString_StatusProblems,
+ .index = TTVSCR_STATUS
},
{
- .label = gUnknown_841B7D6,
- .index = 2,
+ .label = gTeachyTvString_TypeMatchups,
+ .index = TTVSCR_MATCHUPS
},
{
- .label = gUnknown_841B7EE,
- .index = 3,
+ .label = gTeachyTvString_CatchPkmn,
+ .index = TTVSCR_CATCHING
},
{
- .label = gUnknown_841B836,
- .index = -2,
+ .label = gTeachyTvString_Cancel,
+ .index = -2
},
};
-const struct ListMenuTemplate gTeachyTvListMenuTemplateArray =
+static const struct ListMenuTemplate sListMenuTemplate =
{
- .items = gTeachyTvListMenuItemArray,
+ .items = sListMenuItems,
.moveCursorFunc = NULL,
.itemPrintFunc = NULL,
- .totalItems = 0x7,
- .maxShowed = 0x6,
- .windowId = 0x0,
- .header_X = 0x0,
- .item_X = 0x8,
- .cursor_X = 0x0,
- .upText_Y = 0x6,
+ .totalItems = 7,
+ .maxShowed = 6,
+ .windowId = 0,
+ .header_X = 0,
+ .item_X = 8,
+ .cursor_X = 0,
+ .upText_Y = 6,
.cursorPal = 0x1,
.fillValue = 0x0,
.cursorShadowPal = 0x2,
@@ -251,7 +260,7 @@ const struct ListMenuTemplate gTeachyTvListMenuTemplateArray =
.cursorKind = 0x0,
};
-const struct ScrollArrowsTemplate gTeachyTvScrollIndicatorArrowPairTemplateArray =
+static const struct ScrollArrowsTemplate sScrollIndicatorArrowPair =
{
.firstArrowType = 0x2,
.firstX = 0x78,
@@ -259,151 +268,156 @@ const struct ScrollArrowsTemplate gTeachyTvScrollIndicatorArrowPairTemplateArray
.secondArrowType = 0x3,
.secondX = 0x78,
.secondY = 0x64,
- .fullyUpThreshold = 0x0,
- .fullyDownThreshold = 0x1,
+ .fullyUpThreshold = 0,
+ .fullyDownThreshold = 1,
.tileTag = 0x800,
.palTag = 0x800,
.palNum = 0x0,
};
-const u8 gTeachyTvSwitchFuncArray[] =
+static const u8 sWhereToReturnToFromBattle[] =
{
- 0xC, 0xC, 0xC, 0xC, 0x9, 0x9, 0x0, 0x0,
+ 12,
+ 12,
+ 12,
+ 12,
+ 9,
+ 9
};
-void (* const gTeachyTvFuncCluster0[])(u8) =
-{
- TeachyTvClusFuncTransitionRenderBg2TeachyTvGraphicInitNpcPos,
- TeachyTvClusFuncClearBg2TeachyTvGraphic,
- TeachyTvClusFuncNpcMoveAndSetupTextPrinter,
- TeachyTvClusFuncIdleIfTextPrinterIsActive,
- TeachyTvClusFuncIdleIfTextPrinterIsActive2,
- TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen,
- TeachyTvClusFuncIdleIfTextPrinterIsActive2,
- TeachyTvClusFuncEraseTextWindowIfKeyPressed,
- TeachyTvClusFuncStartAnimNpcWalkIntoGrass,
- TeachyTvClusFuncDudeMoveUp,
- TeachyTvClusFuncDudeMoveRight,
- TeachyTvClusFuncTaskBattleOrFadeByOptionChosen,
- TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen2,
- TeachyTvClusFuncIdleIfTextPrinterIsActive2,
- TeachyTvClusFuncEraseTextWindowIfKeyPressed,
- TeachyTvClusFuncDudeTurnLeft,
- TeachyTvClusFuncDudeMoveLeft,
- TeachyTvClusFuncRenderAndRemoveBg1EndGraphic,
- TeachyTvBackToOptionList,
+static void (* const sBattleScript[])(u8) =
+{
+ TTVcmd_TransitionRenderBg2TeachyTvGraphicInitNpcPos,
+ TTVcmd_ClearBg2TeachyTvGraphic,
+ TTVcmd_NpcMoveAndSetupTextPrinter,
+ TTVcmd_IdleIfTextPrinterIsActive,
+ TTVcmd_IdleIfTextPrinterIsActive2,
+ TTVcmd_TextPrinterSwitchStringByOptionChosen,
+ TTVcmd_IdleIfTextPrinterIsActive2,
+ TTVcmd_EraseTextWindowIfKeyPressed,
+ TTVcmd_StartAnimNpcWalkIntoGrass,
+ TTVcmd_DudeMoveUp,
+ TTVcmd_DudeMoveRight,
+ TTVcmd_TaskBattleOrFadeByOptionChosen,
+ TTVcmd_TextPrinterSwitchStringByOptionChosen2,
+ TTVcmd_IdleIfTextPrinterIsActive2,
+ TTVcmd_EraseTextWindowIfKeyPressed,
+ TTVcmd_DudeTurnLeft,
+ TTVcmd_DudeMoveLeft,
+ TTVcmd_RenderAndRemoveBg1EndGraphic,
+ TTVcmd_End,
};
-void (* const gTeachyTvFuncCluster1[])(u8) =
-{
- TeachyTvClusFuncTransitionRenderBg2TeachyTvGraphicInitNpcPos,
- TeachyTvClusFuncClearBg2TeachyTvGraphic,
- TeachyTvClusFuncNpcMoveAndSetupTextPrinter,
- TeachyTvClusFuncIdleIfTextPrinterIsActive,
- TeachyTvClusFuncIdleIfTextPrinterIsActive2,
- TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen,
- TeachyTvClusFuncIdleIfTextPrinterIsActive2,
- TeachyTvClusFuncEraseTextWindowIfKeyPressed,
- TeachyTvClusFuncStartAnimNpcWalkIntoGrass,
- TeachyTvClusFuncDudeMoveUp,
- TeachyTvClusFuncDudeMoveRight,
- TeachyTvClusFuncTaskBattleOrFadeByOptionChosen,
- TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen2,
- TeachyTvClusFuncIdleIfTextPrinterIsActive2,
- TeachyTvClusFuncEraseTextWindowIfKeyPressed,
- TeachyTvClusFuncDudeTurnLeft,
- TeachyTvClusFuncDudeMoveLeft,
- TeachyTvClusFuncRenderAndRemoveBg1EndGraphic,
- TeachyTvBackToOptionList,
+static void (* const sStatusScript[])(u8) =
+{
+ TTVcmd_TransitionRenderBg2TeachyTvGraphicInitNpcPos,
+ TTVcmd_ClearBg2TeachyTvGraphic,
+ TTVcmd_NpcMoveAndSetupTextPrinter,
+ TTVcmd_IdleIfTextPrinterIsActive,
+ TTVcmd_IdleIfTextPrinterIsActive2,
+ TTVcmd_TextPrinterSwitchStringByOptionChosen,
+ TTVcmd_IdleIfTextPrinterIsActive2,
+ TTVcmd_EraseTextWindowIfKeyPressed,
+ TTVcmd_StartAnimNpcWalkIntoGrass,
+ TTVcmd_DudeMoveUp,
+ TTVcmd_DudeMoveRight,
+ TTVcmd_TaskBattleOrFadeByOptionChosen,
+ TTVcmd_TextPrinterSwitchStringByOptionChosen2,
+ TTVcmd_IdleIfTextPrinterIsActive2,
+ TTVcmd_EraseTextWindowIfKeyPressed,
+ TTVcmd_DudeTurnLeft,
+ TTVcmd_DudeMoveLeft,
+ TTVcmd_RenderAndRemoveBg1EndGraphic,
+ TTVcmd_End,
};
-void (* const gTeachyTvFuncCluster2[])(u8) =
-{
- TeachyTvClusFuncTransitionRenderBg2TeachyTvGraphicInitNpcPos,
- TeachyTvClusFuncClearBg2TeachyTvGraphic,
- TeachyTvClusFuncNpcMoveAndSetupTextPrinter,
- TeachyTvClusFuncIdleIfTextPrinterIsActive,
- TeachyTvClusFuncIdleIfTextPrinterIsActive2,
- TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen,
- TeachyTvClusFuncIdleIfTextPrinterIsActive2,
- TeachyTvClusFuncEraseTextWindowIfKeyPressed,
- TeachyTvClusFuncStartAnimNpcWalkIntoGrass,
- TeachyTvClusFuncDudeMoveUp,
- TeachyTvClusFuncDudeMoveRight,
- TeachyTvClusFuncTaskBattleOrFadeByOptionChosen,
- TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen2,
- TeachyTvClusFuncIdleIfTextPrinterIsActive2,
- TeachyTvClusFuncEraseTextWindowIfKeyPressed,
- TeachyTvClusFuncDudeTurnLeft,
- TeachyTvClusFuncDudeMoveLeft,
- TeachyTvClusFuncRenderAndRemoveBg1EndGraphic,
- TeachyTvBackToOptionList,
+static void (* const sMatchupsScript[])(u8) =
+{
+ TTVcmd_TransitionRenderBg2TeachyTvGraphicInitNpcPos,
+ TTVcmd_ClearBg2TeachyTvGraphic,
+ TTVcmd_NpcMoveAndSetupTextPrinter,
+ TTVcmd_IdleIfTextPrinterIsActive,
+ TTVcmd_IdleIfTextPrinterIsActive2,
+ TTVcmd_TextPrinterSwitchStringByOptionChosen,
+ TTVcmd_IdleIfTextPrinterIsActive2,
+ TTVcmd_EraseTextWindowIfKeyPressed,
+ TTVcmd_StartAnimNpcWalkIntoGrass,
+ TTVcmd_DudeMoveUp,
+ TTVcmd_DudeMoveRight,
+ TTVcmd_TaskBattleOrFadeByOptionChosen,
+ TTVcmd_TextPrinterSwitchStringByOptionChosen2,
+ TTVcmd_IdleIfTextPrinterIsActive2,
+ TTVcmd_EraseTextWindowIfKeyPressed,
+ TTVcmd_DudeTurnLeft,
+ TTVcmd_DudeMoveLeft,
+ TTVcmd_RenderAndRemoveBg1EndGraphic,
+ TTVcmd_End,
};
-void (* const gTeachyTvFuncCluster3[])(u8) =
-{
- TeachyTvClusFuncTransitionRenderBg2TeachyTvGraphicInitNpcPos,
- TeachyTvClusFuncClearBg2TeachyTvGraphic,
- TeachyTvClusFuncNpcMoveAndSetupTextPrinter,
- TeachyTvClusFuncIdleIfTextPrinterIsActive,
- TeachyTvClusFuncIdleIfTextPrinterIsActive2,
- TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen,
- TeachyTvClusFuncIdleIfTextPrinterIsActive2,
- TeachyTvClusFuncEraseTextWindowIfKeyPressed,
- TeachyTvClusFuncStartAnimNpcWalkIntoGrass,
- TeachyTvClusFuncDudeMoveUp,
- TeachyTvClusFuncDudeMoveRight,
- TeachyTvClusFuncTaskBattleOrFadeByOptionChosen,
- TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen2,
- TeachyTvClusFuncIdleIfTextPrinterIsActive2,
- TeachyTvClusFuncEraseTextWindowIfKeyPressed,
- TeachyTvClusFuncDudeTurnLeft,
- TeachyTvClusFuncDudeMoveLeft,
- TeachyTvClusFuncRenderAndRemoveBg1EndGraphic,
- TeachyTvBackToOptionList,
+static void (* const sCatchingScript[])(u8) =
+{
+ TTVcmd_TransitionRenderBg2TeachyTvGraphicInitNpcPos,
+ TTVcmd_ClearBg2TeachyTvGraphic,
+ TTVcmd_NpcMoveAndSetupTextPrinter,
+ TTVcmd_IdleIfTextPrinterIsActive,
+ TTVcmd_IdleIfTextPrinterIsActive2,
+ TTVcmd_TextPrinterSwitchStringByOptionChosen,
+ TTVcmd_IdleIfTextPrinterIsActive2,
+ TTVcmd_EraseTextWindowIfKeyPressed,
+ TTVcmd_StartAnimNpcWalkIntoGrass,
+ TTVcmd_DudeMoveUp,
+ TTVcmd_DudeMoveRight,
+ TTVcmd_TaskBattleOrFadeByOptionChosen,
+ TTVcmd_TextPrinterSwitchStringByOptionChosen2,
+ TTVcmd_IdleIfTextPrinterIsActive2,
+ TTVcmd_EraseTextWindowIfKeyPressed,
+ TTVcmd_DudeTurnLeft,
+ TTVcmd_DudeMoveLeft,
+ TTVcmd_RenderAndRemoveBg1EndGraphic,
+ TTVcmd_End,
};
-void (* const gTeachyTvFuncCluster4[])(u8) =
-{
- TeachyTvClusFuncTransitionRenderBg2TeachyTvGraphicInitNpcPos,
- TeachyTvClusFuncClearBg2TeachyTvGraphic,
- TeachyTvClusFuncNpcMoveAndSetupTextPrinter,
- TeachyTvClusFuncIdleIfTextPrinterIsActive,
- TeachyTvClusFuncIdleIfTextPrinterIsActive2,
- TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen,
- TeachyTvClusFuncIdleIfTextPrinterIsActive2,
- TeachyTvClusFuncEraseTextWindowIfKeyPressed,
- TeachyTvClusFuncTaskBattleOrFadeByOptionChosen,
- TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen2,
- TeachyTvClusFuncIdleIfTextPrinterIsActive2,
- TeachyTvClusFuncEraseTextWindowIfKeyPressed,
- TeachyTvClusFuncDudeTurnLeft,
- TeachyTvClusFuncDudeMoveLeft,
- TeachyTvClusFuncRenderAndRemoveBg1EndGraphic,
- TeachyTvBackToOptionList,
+static void (* const sTMsScript[])(u8) =
+{
+ TTVcmd_TransitionRenderBg2TeachyTvGraphicInitNpcPos,
+ TTVcmd_ClearBg2TeachyTvGraphic,
+ TTVcmd_NpcMoveAndSetupTextPrinter,
+ TTVcmd_IdleIfTextPrinterIsActive,
+ TTVcmd_IdleIfTextPrinterIsActive2,
+ TTVcmd_TextPrinterSwitchStringByOptionChosen,
+ TTVcmd_IdleIfTextPrinterIsActive2,
+ TTVcmd_EraseTextWindowIfKeyPressed,
+ TTVcmd_TaskBattleOrFadeByOptionChosen,
+ TTVcmd_TextPrinterSwitchStringByOptionChosen2,
+ TTVcmd_IdleIfTextPrinterIsActive2,
+ TTVcmd_EraseTextWindowIfKeyPressed,
+ TTVcmd_DudeTurnLeft,
+ TTVcmd_DudeMoveLeft,
+ TTVcmd_RenderAndRemoveBg1EndGraphic,
+ TTVcmd_End,
};
-void (* const gTeachyTvFuncCluster5[])(u8) =
-{
- TeachyTvClusFuncTransitionRenderBg2TeachyTvGraphicInitNpcPos,
- TeachyTvClusFuncClearBg2TeachyTvGraphic,
- TeachyTvClusFuncNpcMoveAndSetupTextPrinter,
- TeachyTvClusFuncIdleIfTextPrinterIsActive,
- TeachyTvClusFuncIdleIfTextPrinterIsActive2,
- TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen,
- TeachyTvClusFuncIdleIfTextPrinterIsActive2,
- TeachyTvClusFuncEraseTextWindowIfKeyPressed,
- TeachyTvClusFuncTaskBattleOrFadeByOptionChosen,
- TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen2,
- TeachyTvClusFuncIdleIfTextPrinterIsActive2,
- TeachyTvClusFuncEraseTextWindowIfKeyPressed,
- TeachyTvClusFuncDudeTurnLeft,
- TeachyTvClusFuncDudeMoveLeft,
- TeachyTvClusFuncRenderAndRemoveBg1EndGraphic,
- TeachyTvBackToOptionList,
+static void (* const sRegisterKeyItemScript[])(u8) =
+{
+ TTVcmd_TransitionRenderBg2TeachyTvGraphicInitNpcPos,
+ TTVcmd_ClearBg2TeachyTvGraphic,
+ TTVcmd_NpcMoveAndSetupTextPrinter,
+ TTVcmd_IdleIfTextPrinterIsActive,
+ TTVcmd_IdleIfTextPrinterIsActive2,
+ TTVcmd_TextPrinterSwitchStringByOptionChosen,
+ TTVcmd_IdleIfTextPrinterIsActive2,
+ TTVcmd_EraseTextWindowIfKeyPressed,
+ TTVcmd_TaskBattleOrFadeByOptionChosen,
+ TTVcmd_TextPrinterSwitchStringByOptionChosen2,
+ TTVcmd_IdleIfTextPrinterIsActive2,
+ TTVcmd_EraseTextWindowIfKeyPressed,
+ TTVcmd_DudeTurnLeft,
+ TTVcmd_DudeMoveLeft,
+ TTVcmd_RenderAndRemoveBg1EndGraphic,
+ TTVcmd_End,
};
-void TeachyTvCallback(void)
+static void TeachyTvCallback(void)
{
RunTasks();
AnimateSprites();
@@ -412,14 +426,14 @@ void TeachyTvCallback(void)
UpdatePaletteFade();
}
-void TeachyTvVblankHandler(void)
+static void TeachyTvVblankHandler(void)
{
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
}
-void sub_815ABC4(u8 mode, void (*cb)())
+void InitTeachyTvController(u8 mode, MainCallback cb)
{
gTeachyTV_StaticResources.mode = mode;
gTeachyTV_StaticResources.callback = cb;
@@ -427,7 +441,7 @@ void sub_815ABC4(u8 mode, void (*cb)())
{
gTeachyTV_StaticResources.scrollOffset = 0;
gTeachyTV_StaticResources.selectedRow = 0;
- gTeachyTV_StaticResources.optionChosen = 0;
+ gTeachyTV_StaticResources.whichScript = TTVSCR_BATTLE;
}
if (mode == 1)
{
@@ -439,17 +453,17 @@ void sub_815ABC4(u8 mode, void (*cb)())
void CB2_ReturnToTeachyTV(void)
{
if (gTeachyTV_StaticResources.mode == 1)
- sub_815ABC4(1, gTeachyTV_StaticResources.callback);
+ InitTeachyTvController(1, gTeachyTV_StaticResources.callback);
else
- sub_815ABC4(2, gTeachyTV_StaticResources.callback);
+ InitTeachyTvController(2, gTeachyTV_StaticResources.callback);
}
-void sub_815AC20(void)
+void SetTeachyTvControllerModeToResume(void)
{
gTeachyTV_StaticResources.mode = 1;
}
-void TeachyTvMainCallback(void)
+static void TeachyTvMainCallback(void)
{
u8 taskId;
struct Task *taskAddr;
@@ -457,10 +471,10 @@ void TeachyTvMainCallback(void)
switch (gMain.state)
{
case 0:
- gUnknown_203F450 = AllocZeroed(sizeof(struct TeachyTvBuf));
- gUnknown_203F450->savedCallback = NULL;
- gUnknown_203F450->var_4006 = 0;
- gUnknown_203F450->var_4007 = 0xFF;
+ sResources = AllocZeroed(sizeof(struct TeachyTvBuf));
+ sResources->savedCallback = NULL;
+ sResources->grassAnimDisabled = 0;
+ sResources->scrollIndicatorArrowPairId = 0xFF;
VblankHblankHandlerSetZero();
clear_scheduled_bg_copies_to_vram();
ScanlineEffect_Stop();
@@ -505,14 +519,14 @@ void TeachyTvMainCallback(void)
}
}
-void TeachyTvSetupBg(void)
+static void TeachyTvSetupBg(void)
{
InitBgReg();
ResetBgsAndClearDma3BusyFlags(0);
InitBgsFromTemplates(0, gTeachyTvBgTemplateArray, 4);
- SetBgTilemapBuffer(1, gUnknown_203F450->buffer1);
- SetBgTilemapBuffer(2, gUnknown_203F450->buffer2);
- SetBgTilemapBuffer(3, gUnknown_203F450->buffer3);
+ SetBgTilemapBuffer(1, sResources->buffer1);
+ SetBgTilemapBuffer(2, sResources->buffer2);
+ SetBgTilemapBuffer(3, sResources->buffer3);
SetGpuReg(REG_OFFSET_DISPCNT, 0x3040);
ShowBg(0);
ShowBg(1);
@@ -520,25 +534,25 @@ void TeachyTvSetupBg(void)
ShowBg(3);
ChangeBgX(3, 0x1000, 2);
ChangeBgY(3, 0x2800, 1);
- gUnknown_203F450->var_4004 = 0;
- gUnknown_203F450->var_4005 = 3;
+ sResources->grassAnimCounterLo = 0;
+ sResources->grassAnimCounterHi = 3;
SetGpuReg(REG_OFFSET_BLDCNT, 0);
}
-void TeachyTvLoadGraphic(void)
+static void TeachyTvLoadGraphic(void)
{
u16 src = RGB_BLACK;
reset_temp_tile_data_buffers();
decompress_and_copy_tile_data_to_vram(1, gUnknown_8E86240, 0, 0, 0);
- LZDecompressWram(gUnknown_8E86BE8, gUnknown_203F450->buffer1);
- LZDecompressWram(gUnknown_8E86D6C, gUnknown_203F450->buffer4);
+ LZDecompressWram(gUnknown_8E86BE8, sResources->buffer1);
+ LZDecompressWram(gUnknown_8E86D6C, sResources->buffer4);
LoadCompressedPalette(gUnknown_8E86F98, 0, 0x80);
LoadPalette(&src, 0, sizeof(src));
LoadSpritePalette(&gUnknown_83A5348);
- TeachyTvLoadBg3Map(gUnknown_203F450->buffer3);
+ TeachyTvLoadBg3Map(sResources->buffer3);
}
-void TeachyTvCreateAndRenderRbox(void)
+static void TeachyTvCreateAndRenderRbox(void)
{
InitWindows(gTeachyTvWindowTemplateArray);
DeactivateAllTextPrinters();
@@ -548,14 +562,14 @@ void TeachyTvCreateAndRenderRbox(void)
CopyWindowToVram(0, 2);
}
-u8 TeachyTvSetupWindow(void)
+static u8 TeachyTvSetupWindow(void)
{
- gMultiuseListMenuTemplate = gTeachyTvListMenuTemplateArray;
+ gMultiuseListMenuTemplate = sListMenuTemplate;
gMultiuseListMenuTemplate.windowId = 1;
gMultiuseListMenuTemplate.moveCursorFunc = TeachyTvAudioByInput;
if (!CheckBagHasItem(ITEM_TM_CASE, 1))
{
- gMultiuseListMenuTemplate.items = gTeachyTvListMenuItemArray2;
+ gMultiuseListMenuTemplate.items = sListMenuItems_NoTMCase;
gMultiuseListMenuTemplate.totalItems = 5;
gMultiuseListMenuTemplate.maxShowed = 5;
gMultiuseListMenuTemplate.upText_Y = (gMultiuseListMenuTemplate.upText_Y + 8) & 0xF;
@@ -567,35 +581,35 @@ u8 TeachyTvSetupWindow(void)
);
}
-void TeachyTvSetupScrollIndicatorArrowPair(void)
+static void TeachyTvSetupScrollIndicatorArrowPair(void)
{
if (!CheckBagHasItem(ITEM_TM_CASE, 1))
{
- struct TeachyTvBuf * temp = gUnknown_203F450;
- temp->var_4007 = 0xFF;
+ struct TeachyTvBuf * temp = sResources;
+ temp->scrollIndicatorArrowPairId = 0xFF;
}
else
{
- gUnknown_203F450->var_4007 = AddScrollIndicatorArrowPair(&gTeachyTvScrollIndicatorArrowPairTemplateArray, &(gTeachyTV_StaticResources.scrollOffset));
+ sResources->scrollIndicatorArrowPairId = AddScrollIndicatorArrowPair(&sScrollIndicatorArrowPair, &(gTeachyTV_StaticResources.scrollOffset));
}
}
-void TeachyTvRemoveScrollIndicatorArrowPair(void)
+static void TeachyTvRemoveScrollIndicatorArrowPair(void)
{
- if (gUnknown_203F450->var_4007 != 0xFF)
+ if (sResources->scrollIndicatorArrowPairId != 0xFF)
{
- RemoveScrollIndicatorArrowPair(gUnknown_203F450->var_4007);
- gUnknown_203F450->var_4007 = 0xFF;
+ RemoveScrollIndicatorArrowPair(sResources->scrollIndicatorArrowPairId);
+ sResources->scrollIndicatorArrowPairId = 0xFF;
}
}
-void TeachyTvAudioByInput(s32 notUsed, bool8 play, struct ListMenu *notUsedAlt)
+static void TeachyTvAudioByInput(s32 notUsed, bool8 play, struct ListMenu *notUsedAlt)
{
if (play != TRUE)
PlaySE(SE_SELECT);
}
-void TeachyTvInitIo(void)
+static void TeachyTvInitIo(void)
{
SetGpuReg(REG_OFFSET_WININ, 0x3F);
SetGpuReg(REG_OFFSET_WINOUT, 0x1F);
@@ -603,7 +617,7 @@ void TeachyTvInitIo(void)
SetGpuReg(REG_OFFSET_BLDY, 0x5);
}
-u8 TeachyTvSetupObjEventAndOam(void)
+static u8 TeachyTvSetupObjEventAndOam(void)
{
u8 objId = AddPseudoEventObject(90, SpriteCallbackDummy, 0, 0, 8);
gSprites[objId].oam.priority = 2;
@@ -611,7 +625,7 @@ u8 TeachyTvSetupObjEventAndOam(void)
return objId;
}
-void TeachyTvSetSpriteCoordsAndSwitchFrame(u8 objId, u16 x, u16 y, u8 frame)
+static void TeachyTvSetSpriteCoordsAndSwitchFrame(u8 objId, u16 x, u16 y, u8 frame)
{
gSprites[objId].pos2.x = x;
gSprites[objId].pos2.y = y;
@@ -619,19 +633,19 @@ void TeachyTvSetSpriteCoordsAndSwitchFrame(u8 objId, u16 x, u16 y, u8 frame)
StartSpriteAnim(&gSprites[objId], frame);
}
-void TeachyTvSetWindowRegs(void)
+static void TeachyTvSetWindowRegs(void)
{
SetGpuReg(REG_OFFSET_WIN0V, 0xC64);
SetGpuReg(REG_OFFSET_WIN0H, 0x1CD4);
}
-void TeachyTvClearWindowRegs(void)
+static void TeachyTvClearWindowRegs(void)
{
SetGpuReg(REG_OFFSET_WIN0V, 0x0);
SetGpuReg(REG_OFFSET_WIN0H, 0x0);
}
-void TeachyTvBg2AnimController(void)
+static void TeachyTvBg2AnimController(void)
{
u16 * tilemapBuffer = GetBgTilemapBuffer(2);
u8 i, j;
@@ -645,27 +659,29 @@ void TeachyTvBg2AnimController(void)
schedule_bg_copy_tilemap_to_vram(2);
}
-void TeachyTvSetupPostBattleWindowAndObj(u8 taskId)
+static void TeachyTvSetupPostBattleWindowAndObj(u8 taskId)
{
s16 *data = gTasks[taskId].data;
struct Sprite *objAddr = &gSprites[data[1]];
- int op;
ClearWindowTilemap(1);
TeachyTvClearWindowRegs();
- op = gTeachyTV_StaticResources.optionChosen;
- if (op >= 0)
+ switch (gTeachyTV_StaticResources.whichScript)
{
- if (op <= 3)
- {
- TeachyTvSetSpriteCoordsAndSwitchFrame(data[1], 0x78, 0x38, 0);
- ChangeBgX(3, 0x3000, 1);
- ChangeBgY(3, 0x3000, 2);
- gUnknown_203F450->var_4004 += 3;
- gUnknown_203F450->var_4005 -= 3;
- }
- else if (op <= 5)
- TeachyTvSetSpriteCoordsAndSwitchFrame(data[1], 0x78, 0x38, 0);
+ case TTVSCR_BATTLE:
+ case TTVSCR_STATUS:
+ case TTVSCR_MATCHUPS:
+ case TTVSCR_CATCHING:
+ TeachyTvSetSpriteCoordsAndSwitchFrame(data[1], 0x78, 0x38, 0);
+ ChangeBgX(3, 0x3000, 1);
+ ChangeBgY(3, 0x3000, 2);
+ sResources->grassAnimCounterLo += 3;
+ sResources->grassAnimCounterHi -= 3;
+ break;
+ case TTVSCR_TMS:
+ case TTVSCR_REGISTER:
+ TeachyTvSetSpriteCoordsAndSwitchFrame(data[1], 0x78, 0x38, 0);
+ break;
}
data[4] = 0;
@@ -673,32 +689,32 @@ void TeachyTvSetupPostBattleWindowAndObj(u8 taskId)
TeachyTvGrassAnimationMain(taskId, objAddr->pos2.x, objAddr->pos2.y, 0, 1);
}
-void TeachyTvInitTextPrinter(const u8 *text)
+static void TeachyTvInitTextPrinter(const u8 *text)
{
gTextFlags.autoScroll = 0;
AddTextPrinterParameterized2(0, 4, text, GetTextSpeedSetting(), 0, 1, 0xC, 3);
}
-void TeachyTvFree(void)
+static void TeachyTvFree(void)
{
- Free(gUnknown_203F450);
- gUnknown_203F450 = NULL;
+ Free(sResources);
+ sResources = NULL;
FreeAllWindowBuffers();
}
-void TeachyTvQuitBeginFade(u8 taskId)
+static void TeachyTvQuitBeginFade(u8 taskId)
{
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
gTasks[taskId].func = TeachyTvQuitFadeControlAndTaskDel;
}
-void TeachyTvQuitFadeControlAndTaskDel(u8 taskId)
+static void TeachyTvQuitFadeControlAndTaskDel(u8 taskId)
{
if (!(gPaletteFade.active))
{
- if (gUnknown_203F450->savedCallback != NULL)
+ if (sResources->savedCallback != NULL)
{
- SetMainCallback2(gUnknown_203F450->savedCallback);
+ SetMainCallback2(sResources->savedCallback);
}
else
{
@@ -710,7 +726,7 @@ void TeachyTvQuitFadeControlAndTaskDel(u8 taskId)
}
}
-void TeachyTvOptionListController(u8 taskId)
+static void TeachyTvOptionListController(u8 taskId)
{
s16 * data = gTasks[taskId].data;
s32 input;
@@ -737,7 +753,7 @@ void TeachyTvOptionListController(u8 taskId)
break;
default:
PlaySE(SE_SELECT);
- gTeachyTV_StaticResources.optionChosen = input;
+ gTeachyTV_StaticResources.whichScript = input;
DestroyListMenu(data[0], &gTeachyTV_StaticResources.scrollOffset, &gTeachyTV_StaticResources.selectedRow);
TeachyTvClearWindowRegs();
ClearWindowTilemap(1);
@@ -752,14 +768,14 @@ void TeachyTvOptionListController(u8 taskId)
}
}
-void TeachyTvClusFuncTransitionRenderBg2TeachyTvGraphicInitNpcPos(u8 taskId)
+static void TTVcmd_TransitionRenderBg2TeachyTvGraphicInitNpcPos(u8 taskId)
{
s16 *data = gTasks[taskId].data;
TeachyTvBg2AnimController();
if (++data[2] > 63)
{
- CopyToBgTilemapBufferRect_ChangePalette(2, gUnknown_203F450->buffer4, 0, 0, 0x20, 0x20, 0x11);
- TeachyTvSetSpriteCoordsAndSwitchFrame(((u8 *)data)[2], 8, 0x38, 7);
+ CopyToBgTilemapBufferRect_ChangePalette(2, sResources->buffer4, 0, 0, 0x20, 0x20, 0x11);
+ TeachyTvSetSpriteCoordsAndSwitchFrame(data[1], 8, 0x38, 7);
schedule_bg_copy_tilemap_to_vram(2);
data[2] = 0;
++data[3];
@@ -767,7 +783,7 @@ void TeachyTvClusFuncTransitionRenderBg2TeachyTvGraphicInitNpcPos(u8 taskId)
}
}
-void TeachyTvClusFuncClearBg2TeachyTvGraphic(u8 taskId)
+static void TTVcmd_ClearBg2TeachyTvGraphic(u8 taskId)
{
s16 *data = gTasks[taskId].data;
if (++data[2] == 134)
@@ -779,7 +795,7 @@ void TeachyTvClusFuncClearBg2TeachyTvGraphic(u8 taskId)
}
}
-void TeachyTvClusFuncNpcMoveAndSetupTextPrinter(u8 taskId)
+static void TTVcmd_NpcMoveAndSetupTextPrinter(u8 taskId)
{
s16 * data = gTasks[taskId].data;
struct Sprite * spriteAddr = &gSprites[data[1]];
@@ -789,7 +805,7 @@ void TeachyTvClusFuncNpcMoveAndSetupTextPrinter(u8 taskId)
if (spriteAddr->pos2.x == 0x78)
{
StartSpriteAnim(&gSprites[data[1]], 0);
- TeachyTvInitTextPrinter(gUnknown_841B83D);
+ TeachyTvInitTextPrinter(gTeachyTvText_PokeDudeSaysHello);
data[2] = 0;
++data[3];
}
@@ -798,83 +814,81 @@ void TeachyTvClusFuncNpcMoveAndSetupTextPrinter(u8 taskId)
}
}
-void TeachyTvClusFuncIdleIfTextPrinterIsActive(u8 taskId)
+static void TTVcmd_IdleIfTextPrinterIsActive(u8 taskId)
{
s16 *data = gTasks[taskId].data;
if (!sub_80BF518(0))
++data[3];
}
-void TeachyTvRenderMsgAndSwitchClusterFuncs(u8 taskId)
+static void TeachyTvRenderMsgAndSwitchClusterFuncs(u8 taskId)
{
s16 *data = gTasks[taskId].data;
if (JOY_NEW(B_BUTTON))
{
- u8 *offset = &(gUnknown_203F450->var_4006);
- u32 zero = 0;
- offset[0] = 1;
- TeachyTvSetSpriteCoordsAndSwitchFrame(*((char *)data + 2), 0, 0, 0);
+ sResources->grassAnimDisabled = 1;
+ TeachyTvSetSpriteCoordsAndSwitchFrame(data[1], 0, 0, 0);
FillWindowPixelBuffer(0, 0xCC);
CopyWindowToVram(0, 2);
TeachyTvClearBg1EndGraphicText();
- data[2] = zero;
- data[3] = zero;
- gTasks[taskId].func = TeachyTvBackToOptionList;
+ data[2] = 0;
+ data[3] = 0;
+ gTasks[taskId].func = TTVcmd_End;
}
else
{
static void (* const * const array[])(u8) =
{
- gTeachyTvFuncCluster0,
- gTeachyTvFuncCluster1,
- gTeachyTvFuncCluster2,
- gTeachyTvFuncCluster3,
- gTeachyTvFuncCluster4,
- gTeachyTvFuncCluster5,
+ sBattleScript,
+ sStatusScript,
+ sMatchupsScript,
+ sCatchingScript,
+ sTMsScript,
+ sRegisterKeyItemScript,
};
- void (*const *cluster)(u8) = array[gTeachyTV_StaticResources.optionChosen];
+ void (*const *cluster)(u8) = array[gTeachyTV_StaticResources.whichScript];
cluster[data[3]](taskId);
}
}
-void TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen(u8 taskId)
+static void TTVcmd_TextPrinterSwitchStringByOptionChosen(u8 taskId)
{
s16 *data = gTasks[taskId].data;
static const u8 *const texts[] = {
- gUnknown_841B8BF,
- gUnknown_841BB40,
- gUnknown_841BE76,
- gUnknown_841C23B,
- gUnknown_841C459,
- gUnknown_841C82A,
+ gTeachyTvText_BattleScript1,
+ gTeachyTvText_StatusScript1,
+ gTeachyTvText_MatchupsScript1,
+ gTeachyTvText_CatchingScript1,
+ gTeachyTvText_TMsScript1,
+ gTeachyTvText_RegisterScript1,
};
- TeachyTvInitTextPrinter(texts[gTeachyTV_StaticResources.optionChosen]);
+ TeachyTvInitTextPrinter(texts[gTeachyTV_StaticResources.whichScript]);
++data[3];
}
-void TeachyTvClusFuncTextPrinterSwitchStringByOptionChosen2(u8 taskId)
+static void TTVcmd_TextPrinterSwitchStringByOptionChosen2(u8 taskId)
{
s16 *data = gTasks[taskId].data;
static const u8 *const texts[] =
{
- gUnknown_841BA41,
- gUnknown_841BD10,
- gUnknown_841C0AF,
- gUnknown_841C384,
- gUnknown_841C7B4,
- gUnknown_841C994,
+ gTeachyTvText_BattleScript2,
+ gTeachyTvText_StatusScript2,
+ gTeachyTvText_MatchupsScript2,
+ gTeachyTvText_CatchingScript2,
+ gTeachyTvText_TMsScript2,
+ gTeachyTvText_RegisterScript2,
};
- TeachyTvInitTextPrinter(texts[gTeachyTV_StaticResources.optionChosen]);
+ TeachyTvInitTextPrinter(texts[gTeachyTV_StaticResources.whichScript]);
++data[3];
}
-const u16 gUnknown_8479590[] =
+static const u16 gUnknown_8479590[] =
{
0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8,
0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8,
};
-const struct Subsprite gTeachyTvSubspriteArray[] =
+static const struct Subsprite gTeachyTvSubspriteArray[] =
{
{
.x = -0x8,
@@ -894,7 +908,7 @@ const struct Subsprite gTeachyTvSubspriteArray[] =
},
};
-const struct SubspriteTable gTeachyTvSubspriteTableArray[] =
+static const struct SubspriteTable gTeachyTvSubspriteTableArray[] =
{
{
.subspriteCount = 0,
@@ -906,7 +920,7 @@ const struct SubspriteTable gTeachyTvSubspriteTableArray[] =
},
};
-const u8 gTeachyTvGrassAnimArray[] =
+static const u8 gTeachyTvGrassAnimArray[] =
{
0, 0, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 0, 0,
@@ -928,14 +942,14 @@ const u8 gTeachyTvGrassAnimArray[] =
1, 1, 1, 1, 1, 1, 0, 0,
};
-void TeachyTvClusFuncIdleIfTextPrinterIsActive2(u8 taskId)
+static void TTVcmd_IdleIfTextPrinterIsActive2(u8 taskId)
{
s16 *data = gTasks[taskId].data;
if (!sub_80BF518(0))
++data[3];
}
-void TeachyTvClusFuncEraseTextWindowIfKeyPressed(u8 taskId)
+static void TTVcmd_EraseTextWindowIfKeyPressed(u8 taskId)
{
s16 *data = gTasks[taskId].data;
if (JOY_NEW(A_BUTTON | B_BUTTON))
@@ -946,7 +960,7 @@ void TeachyTvClusFuncEraseTextWindowIfKeyPressed(u8 taskId)
}
}
-void TeachyTvClusFuncStartAnimNpcWalkIntoGrass(u8 taskId)
+static void TTVcmd_StartAnimNpcWalkIntoGrass(u8 taskId)
{
s16 *data = gTasks[taskId].data;
StartSpriteAnim(&gSprites[data[1]], 5);
@@ -956,14 +970,14 @@ void TeachyTvClusFuncStartAnimNpcWalkIntoGrass(u8 taskId)
++data[3];
}
-void TeachyTvClusFuncDudeMoveUp(u8 taskId)
+static void TTVcmd_DudeMoveUp(u8 taskId)
{
s16 *data = gTasks[taskId].data;
struct Sprite *obj = &gSprites[data[1]];
ChangeBgY(3, 0x100, 2);
if (!(++data[2] & 0xF))
{
- --gUnknown_203F450->var_4005;
+ --sResources->grassAnimCounterHi;
TeachyTvGrassAnimationMain(taskId, obj->pos2.x, obj->pos2.y, 0, 0);
}
if (data[2] == 48)
@@ -976,13 +990,13 @@ void TeachyTvClusFuncDudeMoveUp(u8 taskId)
}
}
-void TeachyTvClusFuncDudeMoveRight(u8 taskId)
+static void TTVcmd_DudeMoveRight(u8 taskId)
{
s16 *data = gTasks[taskId].data;
struct Sprite *obj = &gSprites[data[1]];
ChangeBgX(3, 0x100, 1);
if (!(++data[2] & 0xF))
- ++gUnknown_203F450->var_4004;
+ ++sResources->grassAnimCounterLo;
if (!((data[2] + 8) & 0xF))
TeachyTvGrassAnimationMain(taskId, obj->pos2.x + 8, obj->pos2.y, 0, 0);
if (data[2] == 0x30)
@@ -995,7 +1009,7 @@ void TeachyTvClusFuncDudeMoveRight(u8 taskId)
}
}
-void TeachyTvClusFuncDudeTurnLeft(u8 taskId)
+static void TTVcmd_DudeTurnLeft(u8 taskId)
{
s16 *data = gTasks[taskId].data;
@@ -1007,7 +1021,7 @@ void TeachyTvClusFuncDudeTurnLeft(u8 taskId)
TeachyTvGrassAnimationMain(taskId, objAddr->pos2.x, objAddr->pos2.y, 0, 0);
}
-void TeachyTvClusFuncDudeMoveLeft(u8 taskId)
+static void TTVcmd_DudeMoveLeft(u8 taskId)
{
s16 *data = gTasks[taskId].data;
struct Sprite *objAddr = &gSprites[data[1]];
@@ -1020,12 +1034,12 @@ void TeachyTvClusFuncDudeMoveLeft(u8 taskId)
--objAddr->pos2.x;
}
-void TeachyTvClusFuncRenderAndRemoveBg1EndGraphic(u8 taskId)
+static void TTVcmd_RenderAndRemoveBg1EndGraphic(u8 taskId)
{
s16 *data = gTasks[taskId].data;
if (!data[2])
{
- CopyToBgTilemapBufferRect_ChangePalette(1, gUnknown_8479590, 0x14, 0xA, 8, 2, 0x11);
+ CopyToBgTilemapBufferRect_ChangePalette(1, gUnknown_8479590, 20, 10, 8, 2, 0x11);
schedule_bg_copy_tilemap_to_vram(1);
}
if (++data[2] > 126)
@@ -1036,13 +1050,13 @@ void TeachyTvClusFuncRenderAndRemoveBg1EndGraphic(u8 taskId)
}
}
-void TeachyTvClearBg1EndGraphicText(void)
+static void TeachyTvClearBg1EndGraphicText(void)
{
- FillBgTilemapBufferRect_Palette0(1, 0, 0x14, 0xA, 8, 2);
+ FillBgTilemapBufferRect_Palette0(1, 0, 20, 10, 8, 2);
schedule_bg_copy_tilemap_to_vram(1);
}
-void TeachyTvBackToOptionList(u8 taskId)
+static void TTVcmd_End(u8 taskId)
{
s16 *data = gTasks[taskId].data;
if (data[2] == 0)
@@ -1062,53 +1076,54 @@ void TeachyTvBackToOptionList(u8 taskId)
ChangeBgY(3, 0x0, 0);
ChangeBgX(3, 0x1000, 2);
ChangeBgY(3, 0x2800, 1);
- gUnknown_203F450->var_4004 = 0;
- gUnknown_203F450->var_4005 = 3;
- gUnknown_203F450->var_4006 = 0;
+ sResources->grassAnimCounterLo = 0;
+ sResources->grassAnimCounterHi = 3;
+ sResources->grassAnimDisabled = 0;
}
}
-void TeachyTvClusFuncTaskBattleOrFadeByOptionChosen(u8 taskId)
+static void TTVcmd_TaskBattleOrFadeByOptionChosen(u8 taskId)
{
- int op = gTeachyTV_StaticResources.optionChosen;
- if (op >= 0)
+ switch (gTeachyTV_StaticResources.whichScript)
{
- if (op <= 3)
- {
- TeachyTvPrepBattle(taskId);
- }
- else if (op <= 5)
- {
- gUnknown_203F450->savedCallback = TeachyTvSetupBagItemsByOptionChosen;
- TeachyTvQuitBeginFade(taskId);
- }
+ case TTVSCR_BATTLE:
+ case TTVSCR_STATUS:
+ case TTVSCR_MATCHUPS:
+ case TTVSCR_CATCHING:
+ TeachyTvPrepBattle(taskId);
+ break;
+ case TTVSCR_TMS:
+ case TTVSCR_REGISTER:
+ sResources->savedCallback = TeachyTvSetupBagItemsByOptionChosen;
+ TeachyTvQuitBeginFade(taskId);
+ break;
}
}
-void TeachyTvSetupBagItemsByOptionChosen(void)
+static void TeachyTvSetupBagItemsByOptionChosen(void)
{
- if (gTeachyTV_StaticResources.optionChosen == 4)
+ if (gTeachyTV_StaticResources.whichScript == TTVSCR_TMS)
sub_810B108(10);
else
sub_810B108(9);
}
-void TeachyTvPostBattleFadeControl(u8 taskId)
+static void TeachyTvPostBattleFadeControl(u8 taskId)
{
s16 *data = gTasks[taskId].data;
if (!(gPaletteFade.active))
{
- data[3] = gTeachyTvSwitchFuncArray[gTeachyTV_StaticResources.optionChosen];
+ data[3] = sWhereToReturnToFromBattle[gTeachyTV_StaticResources.whichScript];
gTasks[taskId].func = TeachyTvRenderMsgAndSwitchClusterFuncs;
}
}
-void TeachyTvGrassAnimationMain(u8 taskId, s16 x, s16 y, u8 subpriority, bool8 mode)
+static void TeachyTvGrassAnimationMain(u8 taskId, s16 x, s16 y, u8 subpriority, bool8 mode)
{
struct Sprite *obj;
u8 spriteId;
- if (gUnknown_203F450->var_4006 != 1 && TeachyTvGrassAnimationCheckIfNeedsToGenerateGrassObj(x - 0x10, y))
+ if (sResources->grassAnimDisabled != 1 && TeachyTvGrassAnimationCheckIfNeedsToGenerateGrassObj(x - 0x10, y))
{
spriteId = CreateSprite(gUnknown_83A0010[4], 0, 0, subpriority);
obj = &gSprites[spriteId];
@@ -1130,13 +1145,13 @@ void TeachyTvGrassAnimationMain(u8 taskId, s16 x, s16 y, u8 subpriority, bool8 m
}
}
-void TeachyTvGrassAnimationObjCallback(struct Sprite *sprite)
+static void TeachyTvGrassAnimationObjCallback(struct Sprite *sprite)
{
s16 diff1, diff2;
s16 *data = gTasks[sprite->data[0]].data;
struct Sprite *objAddr = &gSprites[data[1]];
- if (gUnknown_203F450->var_4006 == 1)
+ if (sResources->grassAnimDisabled == 1)
DestroySprite(sprite);
else
{
@@ -1144,8 +1159,8 @@ void TeachyTvGrassAnimationObjCallback(struct Sprite *sprite)
sprite->subspriteTableNum = 1;
else
sprite->subspriteTableNum = 0;
- sprite->pos2.x += (u16)data[4];
- sprite->pos2.y += (u16)data[5];
+ sprite->pos2.x += data[4];
+ sprite->pos2.y += data[5];
if (sprite->animEnded)
{
sprite->subpriority = 0;
@@ -1157,7 +1172,7 @@ void TeachyTvGrassAnimationObjCallback(struct Sprite *sprite)
}
}
-u8 TeachyTvGrassAnimationCheckIfNeedsToGenerateGrassObj(s16 x, s16 y)
+static u8 TeachyTvGrassAnimationCheckIfNeedsToGenerateGrassObj(s16 x, s16 y)
{
const u8 * arr;
struct TeachyTvBuf *ptr;
@@ -1165,21 +1180,21 @@ u8 TeachyTvGrassAnimationCheckIfNeedsToGenerateGrassObj(s16 x, s16 y)
if ((x < 0) || (y < 0))
return 0;
arr = gTeachyTvGrassAnimArray;
- high = ((y >> 4) + gUnknown_203F450->var_4005) << 4;
- low = ((x >> 4) + gUnknown_203F450->var_4004);
+ high = ((y >> 4) + sResources->grassAnimCounterHi) << 4;
+ low = ((x >> 4) + sResources->grassAnimCounterLo);
return arr[high+low];
}
-void TeachyTvPrepBattle(u8 taskId)
+static void TeachyTvPrepBattle(u8 taskId)
{
s16 *data = gTasks[taskId].data;
TeachyTvFree();
- gSpecialVar_0x8004 = gTeachyTV_StaticResources.optionChosen;
+ gSpecialVar_0x8004 = gTeachyTV_StaticResources.whichScript;
gMain.savedCallback = TeachyTvRestorePlayerPartyCallback;
SavePlayerParty();
sub_8159F40();
PlayMapChosenOrBattleBGM(MUS_DUMMY);
- if (!gTeachyTV_StaticResources.optionChosen)
+ if (gTeachyTV_StaticResources.whichScript == TTVSCR_BATTLE)
data[6] = 9;
else
data[6] = 8;
@@ -1187,7 +1202,7 @@ void TeachyTvPrepBattle(u8 taskId)
gTasks[taskId].func = TeachyTvPreBattleAnimAndSetBattleCallback;
}
-void TeachyTvPreBattleAnimAndSetBattleCallback(u8 taskId)
+static void TeachyTvPreBattleAnimAndSetBattleCallback(u8 taskId)
{
s16 *data = gTasks[taskId].data;
switch (data[7])
@@ -1206,17 +1221,17 @@ void TeachyTvPreBattleAnimAndSetBattleCallback(u8 taskId)
}
}
-void TeachyTvRestorePlayerPartyCallback(void)
+static void TeachyTvRestorePlayerPartyCallback(void)
{
LoadPlayerParty();
- if (gUnknown_2023E8A == 3)
- sub_815AC20();
+ if (gBattleOutcome == B_OUTCOME_DREW)
+ SetTeachyTvControllerModeToResume();
else
PlayNewMapMusic(BGM_FRLG_FOLLOW_ME);
CB2_ReturnToTeachyTV();
}
-void TeachyTvLoadBg3Map(u16 *buffer)
+static void TeachyTvLoadBg3Map(u16 *buffer)
{
u16 * bgTilesBuffer;
u8 * mapTilesRowBuffer;
@@ -1281,7 +1296,7 @@ void TeachyTvLoadBg3Map(u16 *buffer)
Free(blockIndicesBuffer);
}
-void TeachyTvLoadMapTilesetToBuffer(struct Tileset *ts, u8 *dstBuffer, u16 size)
+static void TeachyTvLoadMapTilesetToBuffer(struct Tileset *ts, u8 *dstBuffer, u16 size)
{
if (ts)
{
@@ -1292,7 +1307,7 @@ void TeachyTvLoadMapTilesetToBuffer(struct Tileset *ts, u8 *dstBuffer, u16 size)
}
}
-void TeachyTvPushBackNewMapPalIndexArrayEntry(const struct MapData *mStruct, u16 *buf1, u8 *palIndexArray, u16 mapEntry, u16 offset)
+static void TeachyTvPushBackNewMapPalIndexArrayEntry(const struct MapData *mStruct, u16 *buf1, u8 *palIndexArray, u16 mapEntry, u16 offset)
{
u16 * metaTileEntryAddr = mapEntry <= 0x27F ? &((u16*)(mStruct->primaryTileset->metatiles))[8 * mapEntry] : &((u16*)(mStruct->secondaryTileset->metatiles))[8 * (mapEntry - 0x280)];
buf1[0] = (TeachyTvComputePalIndexArrayEntryByMetaTile(palIndexArray, metaTileEntryAddr[0]) << 12) + 4 * offset;
@@ -1301,7 +1316,7 @@ void TeachyTvPushBackNewMapPalIndexArrayEntry(const struct MapData *mStruct, u16
buf1[33] = (TeachyTvComputePalIndexArrayEntryByMetaTile(palIndexArray, metaTileEntryAddr[3]) << 12) + 4 * offset + 3;
}
-void TeachyTvComputeMapTilesFromTilesetAndMetaTiles(u16 *metaTilesArray, u8 *blockBuf, u8 *tileset)
+static void TeachyTvComputeMapTilesFromTilesetAndMetaTiles(u16 *metaTilesArray, u8 *blockBuf, u8 *tileset)
{
TeachyTvComputeSingleMapTileBlockFromTilesetAndMetaTiles(blockBuf, &tileset[0x20 * (*metaTilesArray & 0x3FF)], (*metaTilesArray >> 10) & 3);
TeachyTvComputeSingleMapTileBlockFromTilesetAndMetaTiles(blockBuf, &tileset[0x20 * (metaTilesArray[4] & 0x3FF)], (metaTilesArray[4] >> 10) & 3);
@@ -1314,7 +1329,7 @@ void TeachyTvComputeMapTilesFromTilesetAndMetaTiles(u16 *metaTilesArray, u8 *blo
TeachyTvComputeSingleMapTileBlockFromTilesetAndMetaTiles(blockBuf, &tileset[0x20 * (metaTilesArray[7] & 0x3FF)], (metaTilesArray[7] >> 10) & 3);
}
-void TeachyTvComputeSingleMapTileBlockFromTilesetAndMetaTiles(u8 *blockBuf, u8 *tileset, u8 metaTile)
+static void TeachyTvComputeSingleMapTileBlockFromTilesetAndMetaTiles(u8 *blockBuf, u8 *tileset, u8 metaTile)
{
u8 i, j;
u8 * buffer = AllocZeroed(0x20);
@@ -1350,7 +1365,7 @@ void TeachyTvComputeSingleMapTileBlockFromTilesetAndMetaTiles(u8 *blockBuf, u8 *
Free(buffer);
}
-u16 TeachyTvComputePalIndexArrayEntryByMetaTile(u8 *palIndexArrayBuf, u16 metaTile)
+static u16 TeachyTvComputePalIndexArrayEntryByMetaTile(u8 *palIndexArrayBuf, u16 metaTile)
{
u16 i;
int firstEntry;
@@ -1382,7 +1397,7 @@ u16 TeachyTvComputePalIndexArrayEntryByMetaTile(u8 *palIndexArrayBuf, u16 metaTi
return (0xF - i);
}
-void TeachyTvLoadMapPalette(const struct MapData * mStruct, const u8 * palIndexArray)
+static void TeachyTvLoadMapPalette(const struct MapData * mStruct, const u8 * palIndexArray)
{
u8 i;
const struct Tileset * ts;
diff --git a/src/tm_case.c b/src/tm_case.c
index 026ba95a7..5a079ed2d 100644
--- a/src/tm_case.c
+++ b/src/tm_case.c
@@ -1171,7 +1171,7 @@ static void Task_TMCaseDude_Playback(u8 taskId)
if (data[8] < 21)
{
data[8] = 21;
- sub_815AC20();
+ SetTeachyTvControllerModeToResume();
}
}
diff --git a/sym_ewram.txt b/sym_ewram.txt
index e02014479..4bd540684 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -386,7 +386,7 @@ gUnknown_2023E82: @ 2023E82
gUnknown_2023E83: @ 2023E83
.space 0x7
-gUnknown_2023E8A: @ 2023E8A
+gBattleOutcome: @ 2023E8A
.space 0x2
gUnknown_2023E8C: @ 2023E8C