diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2019-06-11 10:11:23 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2019-06-11 10:11:23 -0400 |
commit | 75a89830a95a47cea2cc6a0732ca0da454c74ab7 (patch) | |
tree | 0c0149b15f5467a5f0bd316e11fc6d2a356b8062 | |
parent | 9b58695341f0bb4291fcd4decd2292a1ebd0bcd7 (diff) |
Cleanup and documentation of teachy_tv
-rw-r--r-- | asm/battle_1.s | 4 | ||||
-rw-r--r-- | asm/battle_2.s | 54 | ||||
-rw-r--r-- | asm/battle_controller_link_opponent.s | 8 | ||||
-rw-r--r-- | asm/battle_controller_link_partner.s | 4 | ||||
-rw-r--r-- | asm/battle_controller_oak.s | 4 | ||||
-rw-r--r-- | asm/battle_controller_player.s | 4 | ||||
-rw-r--r-- | asm/battle_controller_pokedude.s | 4 | ||||
-rw-r--r-- | asm/battle_controller_safari.s | 4 | ||||
-rw-r--r-- | asm/battle_controllers.s | 4 | ||||
-rw-r--r-- | asm/battle_records.s | 8 | ||||
-rw-r--r-- | asm/battle_script_commands.s | 18 | ||||
-rw-r--r-- | asm/battle_setup.s | 24 | ||||
-rw-r--r-- | asm/battle_tower.s | 8 | ||||
-rw-r--r-- | asm/cable_club.s | 4 | ||||
-rw-r--r-- | asm/field_specials.s | 4 | ||||
-rw-r--r-- | asm/item_menu.s | 2 | ||||
-rw-r--r-- | asm/item_use.s | 4 | ||||
-rw-r--r-- | asm/party_menu.s | 2 | ||||
-rw-r--r-- | asm/safari_zone.s | 4 | ||||
-rw-r--r-- | data/text/teachy_tv.inc | 40 | ||||
-rw-r--r-- | include/battle.h | 2 | ||||
-rw-r--r-- | include/strings.h | 40 | ||||
-rw-r--r-- | include/teachy_tv.h | 4 | ||||
-rw-r--r-- | src/quest_log.c | 2 | ||||
-rw-r--r-- | src/quest_log_battle.c | 6 | ||||
-rw-r--r-- | src/teachy_tv.c | 859 | ||||
-rw-r--r-- | src/tm_case.c | 2 | ||||
-rw-r--r-- | sym_ewram.txt | 2 |
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 |