From d7a4707c84c37dc4cffa7eb47f2ac9cdf82d5068 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sat, 11 Apr 2020 16:11:51 +1000 Subject: [PATCH] Relocate a bunch of training related data --- src/game/data/data_02e820.c | 126 --------------------------- src/game/game_19c990.c | 128 ++++++++++++++++++++++++++-- src/include/game/data/data_02e820.h | 26 ------ src/include/game/game_19c990.h | 3 + 4 files changed, 124 insertions(+), 159 deletions(-) diff --git a/src/game/data/data_02e820.c b/src/game/data/data_02e820.c index e1f3920ee..5987a061d 100644 --- a/src/game/data/data_02e820.c +++ b/src/game/data/data_02e820.c @@ -18,132 +18,6 @@ #include "stagesetup.h" #include "types.h" -u8 g_CiDeviceSaveFileFlags[] = { - SAVEFILEFLAG_CI_UPLINK_DONE, - SAVEFILEFLAG_CI_ECMMINE_DONE, - SAVEFILEFLAG_CI_CAMSPY_DONE, - SAVEFILEFLAG_CI_NIGHTVISION_DONE, - SAVEFILEFLAG_CI_DOORDECODER_DONE, - SAVEFILEFLAG_CI_RTRACKER_DONE, - SAVEFILEFLAG_CI_IR_DONE, - SAVEFILEFLAG_CI_XRAY_DONE, - SAVEFILEFLAG_CI_DISGUISE_DONE, - SAVEFILEFLAG_CI_CLOAK_DONE, -}; - -u32 g_CiDeviceWeapons[] = { - WEAPON_DATAUPLINK, - WEAPON_ECMMINE, - WEAPON_CAMSPY, - WEAPON_NIGHTVISION, - WEAPON_DOORDECODER, - WEAPON_RTRACKER, - WEAPON_IRSCANNER, - WEAPON_XRAYSCANNER, - WEAPON_DISGUISE41, - WEAPON_CLOAKINGDEVICE, -}; - -u32 g_CiDeviceStageFlags[] = { - STAGEFLAG_CI_TRIGGER_UPLINK, - STAGEFLAG_CI_TRIGGER_ECMMINE, - STAGEFLAG_CI_TRIGGER_CAMSPY, - STAGEFLAG_CI_TRIGGER_NIGHTVISION, - STAGEFLAG_CI_TRIGGER_DOORDECODER, - STAGEFLAG_CI_TRIGGER_RTRACKER, - STAGEFLAG_CI_TRIGGER_IR, - STAGEFLAG_CI_TRIGGER_XRAY, - STAGEFLAG_CI_TRIGGER_DISGUISE, - STAGEFLAG_CI_TRIGGER_CLOAK, -}; - -// 2eb5c -u32 device_descriptions[] = { - /*0*/ L_MISC(280), // Data uplink - /*1*/ L_MISC(279), // ECM mine - /*2*/ L_MISC(271), // CamSpy - /*3*/ L_MISC(272), // Night vision - /*4*/ L_MISC(273), // Door decoder - /*5*/ L_MISC(277), // R-tracker - /*6*/ L_MISC(276), // IR scanner - /*7*/ L_MISC(274), // X-ray scanner - /*8*/ L_MISC(275), // Disguise - /*9*/ L_MISC(278), // Cloak -}; - -// 2eb84 -u32 device_tips1[] = { - /*0*/ L_MISC(357), - /*1*/ L_MISC(358), - /*2*/ L_MISC(359), - /*3*/ L_MISC(360), - /*4*/ L_MISC(361), - /*5*/ L_MISC(362), - /*6*/ L_MISC(363), - /*7*/ L_MISC(364), - /*8*/ L_MISC(365), - /*9*/ L_MISC(366), -}; - -// 2ebac -u32 device_tips2[] = { - /*0*/ L_MISC(367), - /*1*/ L_MISC(368), - /*2*/ L_MISC(369), - /*3*/ L_MISC(370), - /*4*/ L_MISC(371), - /*5*/ L_MISC(372), - /*6*/ L_MISC(373), - /*7*/ L_MISC(374), - /*8*/ L_MISC(375), - /*9*/ L_MISC(376), -}; - -u8 var80088bb4 = 0; -u8 var80088bb8 = 0; -s16 g_HoloRooms[5] = { 0x0016, 0x0017, 0x0018, 0x0019, -1 }; -u32 var80088bc8 = 0x0000599a; -u32 var80088bcc = 0x0000599b; -u32 var80088bd0 = 0x0000599c; -u32 var80088bd4 = 0x0000599d; -u32 var80088bd8 = 0x0000599e; -u32 var80088bdc = 0x0000599f; -u32 var80088be0 = 0x000059a0; -u32 var80088be4 = 0x00040000; -u32 var80088be8 = 0x00080000; -u32 var80088bec = 0x00100000; -u32 var80088bf0 = 0x00200000; -u32 var80088bf4 = 0x00400000; -u32 var80088bf8 = 0x00800000; -u32 var80088bfc = 0x01000000; -u32 var80088c00 = 0x02000000; -u32 var80088c04 = 0x00005950; -u32 var80088c08 = 0x00005951; -u32 var80088c0c = 0x00005952; -u32 var80088c10 = 0x00005953; -u32 var80088c14 = 0x00005954; -u32 var80088c18 = 0x00005955; -u32 var80088c1c = 0x00005956; -u32 var80088c20 = 0x00005957; -u32 var80088c24 = 0x00005958; -u32 var80088c28 = 0x00005959; -u32 var80088c2c = 0x0000595a; -u32 var80088c30 = 0x0000595b; -u32 var80088c34 = 0x0000595c; -u32 var80088c38 = 0x0000595d; -u32 var80088c3c = 0x0000595e; -u32 var80088c40 = 0x0000595f; -u32 var80088c44 = 0x00005960; -u32 var80088c48 = 0x00005961; -u32 var80088c4c = 0x00005962; -u32 var80088c50 = 0x00005963; -u32 var80088c54 = 0x00005964; -u32 var80088c58 = 0x000059a7; -u32 var80088c5c = 0x000059a8; -u32 var80088c60 = 0x000059a9; -u32 var80088c64 = 0x000059aa; -u32 var80088c68 = 0x000059ab; -u32 var80088c6c = 0x00000000; u32 var80088c70 = 0x51b751b8; u32 var80088c74 = 0x51b90000; diff --git a/src/game/game_19c990.c b/src/game/game_19c990.c index 3b2fef216..04d150a77 100644 --- a/src/game/game_19c990.c +++ b/src/game/game_19c990.c @@ -5869,7 +5869,19 @@ void dtEnd(void) bool dtIsAvailable(s32 deviceindex) { - u8 flags[10] = g_CiDeviceSaveFileFlags; + u8 flags[] = { + SAVEFILEFLAG_CI_UPLINK_DONE, + SAVEFILEFLAG_CI_ECMMINE_DONE, + SAVEFILEFLAG_CI_CAMSPY_DONE, + SAVEFILEFLAG_CI_NIGHTVISION_DONE, + SAVEFILEFLAG_CI_DOORDECODER_DONE, + SAVEFILEFLAG_CI_RTRACKER_DONE, + SAVEFILEFLAG_CI_IR_DONE, + SAVEFILEFLAG_CI_XRAY_DONE, + SAVEFILEFLAG_CI_DISGUISE_DONE, + SAVEFILEFLAG_CI_CLOAK_DONE, + }; + deviceindex--; if (deviceindex >= 10) { @@ -5917,35 +5929,90 @@ s32 func0f1a1d68(s32 wantindex) u32 dtGetWeaponByDeviceIndex(s32 deviceindex) { - u32 weapons[10] = g_CiDeviceWeapons; + u32 weapons[] = { + WEAPON_DATAUPLINK, + WEAPON_ECMMINE, + WEAPON_CAMSPY, + WEAPON_NIGHTVISION, + WEAPON_DOORDECODER, + WEAPON_RTRACKER, + WEAPON_IRSCANNER, + WEAPON_XRAYSCANNER, + WEAPON_DISGUISE41, + WEAPON_CLOAKINGDEVICE, + }; return weapons[deviceindex]; } u32 ciGetStageFlagByDeviceIndex(u32 deviceindex) { - u32 flags[10] = g_CiDeviceStageFlags; + u32 flags[] = { + STAGEFLAG_CI_TRIGGER_UPLINK, + STAGEFLAG_CI_TRIGGER_ECMMINE, + STAGEFLAG_CI_TRIGGER_CAMSPY, + STAGEFLAG_CI_TRIGGER_NIGHTVISION, + STAGEFLAG_CI_TRIGGER_DOORDECODER, + STAGEFLAG_CI_TRIGGER_RTRACKER, + STAGEFLAG_CI_TRIGGER_IR, + STAGEFLAG_CI_TRIGGER_XRAY, + STAGEFLAG_CI_TRIGGER_DISGUISE, + STAGEFLAG_CI_TRIGGER_CLOAK, + }; return flags[deviceindex]; } char *dtGetDescription(void) { - u32 texts[10] = device_descriptions; + u32 texts[] = { + /*0*/ L_MISC(280), // Data uplink + /*1*/ L_MISC(279), // ECM mine + /*2*/ L_MISC(271), // CamSpy + /*3*/ L_MISC(272), // Night vision + /*4*/ L_MISC(273), // Door decoder + /*5*/ L_MISC(277), // R-tracker + /*6*/ L_MISC(276), // IR scanner + /*7*/ L_MISC(274), // X-ray scanner + /*8*/ L_MISC(275), // Disguise + /*9*/ L_MISC(278), // Cloak + }; return langGet(texts[func0f1a1d68(var80088ad8)]); } char *dtGetTip1(void) { - u32 texts[10] = device_tips1; + u32 texts[] = { + /*0*/ L_MISC(357), + /*1*/ L_MISC(358), + /*2*/ L_MISC(359), + /*3*/ L_MISC(360), + /*4*/ L_MISC(361), + /*5*/ L_MISC(362), + /*6*/ L_MISC(363), + /*7*/ L_MISC(364), + /*8*/ L_MISC(365), + /*9*/ L_MISC(366), + }; return langGet(texts[func0f1a1d68(var80088ad8)]); } char *dtGetTip2(void) { - u32 texts[10] = device_tips2; + u32 texts[] = { + /*0*/ L_MISC(367), + /*1*/ L_MISC(368), + /*2*/ L_MISC(369), + /*3*/ L_MISC(370), + /*4*/ L_MISC(371), + /*5*/ L_MISC(372), + /*6*/ L_MISC(373), + /*7*/ L_MISC(374), + /*8*/ L_MISC(375), + /*9*/ L_MISC(376), + }; return langGet(texts[func0f1a1d68(var80088ad8)]); } @@ -5969,6 +6036,9 @@ void htPushEndscreen(void) g_HoloTrainingData.finished = false; } +u8 var80088bb4 = 0; +u8 var80088bb8 = 0; + void htTick(void) { if (var80088bb8) { @@ -6037,7 +6107,7 @@ void htEnd(void) struct prop *prop; s16 *propnum; s16 propnums[256]; - s16 rooms[5] = g_HoloRooms; + s16 rooms[5] = { 0x0016, 0x0017, 0x0018, 0x0019, -1 }; struct stagesetup00 *setup00 = g_StageSetup.unk00; g_HoloTrainingData.intraining = false; @@ -6152,6 +6222,14 @@ glabel func0f1a24dc /* f1a2550: 27bd0028 */ addiu $sp,$sp,0x28 ); +u32 var80088bc8 = 0x0000599a; +u32 var80088bcc = 0x0000599b; +u32 var80088bd0 = 0x0000599c; +u32 var80088bd4 = 0x0000599d; +u32 var80088bd8 = 0x0000599e; +u32 var80088bdc = 0x0000599f; +u32 var80088be0 = 0x000059a0; + GLOBAL_ASM( glabel func0f1a2554 /* f1a2554: 27bdffc8 */ addiu $sp,$sp,-56 @@ -6183,6 +6261,15 @@ glabel func0f1a2554 /* f1a25bc: 00000000 */ sll $zero,$zero,0x0 ); +u32 var80088be4 = 0x00040000; +u32 var80088be8 = 0x00080000; +u32 var80088bec = 0x00100000; +u32 var80088bf0 = 0x00200000; +u32 var80088bf4 = 0x00400000; +u32 var80088bf8 = 0x00800000; +u32 var80088bfc = 0x01000000; +u32 var80088c00 = 0x02000000; + GLOBAL_ASM( glabel func0f1a25c0 /* f1a25c0: 3c0e8009 */ lui $t6,%hi(var80088be4) @@ -6212,6 +6299,33 @@ glabel func0f1a25c0 /* f1a2620: 27bd0020 */ addiu $sp,$sp,0x20 ); +u32 var80088c04 = 0x00005950; +u32 var80088c08 = 0x00005951; +u32 var80088c0c = 0x00005952; +u32 var80088c10 = 0x00005953; +u32 var80088c14 = 0x00005954; +u32 var80088c18 = 0x00005955; +u32 var80088c1c = 0x00005956; +u32 var80088c20 = 0x00005957; +u32 var80088c24 = 0x00005958; +u32 var80088c28 = 0x00005959; +u32 var80088c2c = 0x0000595a; +u32 var80088c30 = 0x0000595b; +u32 var80088c34 = 0x0000595c; +u32 var80088c38 = 0x0000595d; +u32 var80088c3c = 0x0000595e; +u32 var80088c40 = 0x0000595f; +u32 var80088c44 = 0x00005960; +u32 var80088c48 = 0x00005961; +u32 var80088c4c = 0x00005962; +u32 var80088c50 = 0x00005963; +u32 var80088c54 = 0x00005964; +u32 var80088c58 = 0x000059a7; +u32 var80088c5c = 0x000059a8; +u32 var80088c60 = 0x000059a9; +u32 var80088c64 = 0x000059aa; +u32 var80088c68 = 0x000059ab; + GLOBAL_ASM( glabel func0f1a2624 /* f1a2624: 27bdffc8 */ addiu $sp,$sp,-56 diff --git a/src/include/game/data/data_02e820.h b/src/include/game/data/data_02e820.h index 1c3ada0de..31b18d960 100644 --- a/src/include/game/data/data_02e820.h +++ b/src/include/game/data/data_02e820.h @@ -3,32 +3,6 @@ #include #include "game/data/data_020df0.h" -extern u32 var80088800; -extern u8 var80088804; -extern u8 var80088808; -extern u8 var8008880c; -extern void *var80088810; -extern u16 g_FrPads[]; -extern u32 var80088854; -extern u8 var800888a0; -extern struct chrbio g_ChrBios[10]; -extern u32 misc_bios[]; -extern u32 var80088964; -extern u32 place_bios[]; -extern u8 var80088ad8; -extern u8 var80088adc; -extern u8 g_CiDeviceSaveFileFlags[10]; -extern u32 g_CiDeviceWeapons[10]; -extern u32 g_CiDeviceStageFlags[10]; -extern u32 device_descriptions[10]; -extern u32 device_tips1[10]; -extern u32 device_tips2[10]; -extern u8 var80088bb4; -extern u8 var80088bb8; -extern s16 g_HoloRooms[5]; -extern u32 var80088bc8; -extern u32 var80088be4; -extern u32 var80088c04; extern u32 var80088c20; extern u32 var80088c3c; extern u32 var80088c58; diff --git a/src/include/game/game_19c990.h b/src/include/game/game_19c990.h index 20b03c530..1a7e6e68c 100644 --- a/src/include/game/game_19c990.h +++ b/src/include/game/game_19c990.h @@ -3,6 +3,9 @@ #include #include "types.h" +extern u8 var80088804; +extern u8 var800888a0; + bool ciIsTourDone(void); u8 ciGetFiringRangeScore(s32 weapon_id); u32 func0f19c9e4(void);