From c95f4a67f27da22db21d29d8861fe14a2807b9b2 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Mon, 13 Sep 2021 21:09:26 +1000 Subject: [PATCH] Decompile gamefileLoad --- src/files/setup/setupame.c | 2 +- src/files/setup/setupazt.c | 2 +- src/files/setup/setupcave.c | 4 +- src/files/setup/setupdepo.c | 4 +- src/files/setup/setupdish.c | 118 ++--- src/files/setup/setupimp.c | 2 +- src/files/setup/setuplip.c | 2 +- src/files/setup/setuplue.c | 4 +- src/files/setup/setuppete.c | 4 +- src/files/setup/setuprit.c | 8 +- src/files/setup/setuptra.c | 4 +- src/game/cheats.c | 16 +- src/game/chr/chraicommands.c | 8 +- src/game/debug2.c | 20 +- src/game/endscreen.c | 28 +- src/game/game_01bea0.c | 20 +- src/game/game_102240.c | 72 +-- src/game/game_107fb0.c | 18 +- src/game/gamefile.c | 872 +++++++++-------------------------- src/game/mplayer/mplayer.c | 2 +- src/game/pak/pak.c | 10 +- src/game/training/training.c | 48 +- src/include/bss.h | 2 +- src/include/commands.h | 2 +- src/include/constants.h | 144 +++--- src/include/game/gamefile.h | 16 +- src/include/types.h | 2 +- 27 files changed, 509 insertions(+), 925 deletions(-) diff --git a/src/files/setup/setupame.c b/src/files/setup/setupame.c index 8ac9e54b9..cd752a8be 100644 --- a/src/files/setup/setupame.c +++ b/src/files/setup/setupame.c @@ -3194,7 +3194,7 @@ u8 func0422_intro_042d[] = { label(0x06) stop_cutscene_track stop_ambient_track - set_savefile_flag(SAVEFILEFLAG_CI_TOUR_DONE) + set_savefile_flag(GAMEFILEFLAG_CI_TOUR_DONE) set_ailist(CHR_SELF, GAILIST_IDLE) endlist }; diff --git a/src/files/setup/setupazt.c b/src/files/setup/setupazt.c index a30a9f6ed..82ab60ec4 100644 --- a/src/files/setup/setupazt.c +++ b/src/files/setup/setupazt.c @@ -2021,7 +2021,7 @@ u8 func1013_setup_rtracker[] = { u8 func1016_hide_hoverbike[] = { yield - if_savefile_flag_is_set(SAVEFILEFLAG_CRASHSITE_BIKE, /*goto*/ 0x08) + if_savefile_flag_is_set(GAMEFILEFLAG_CRASHSITE_BIKE, /*goto*/ 0x08) disable_object(OBJ_HOVERBIKE) label(0x08) set_ailist(CHR_SELF, GAILIST_IDLE) diff --git a/src/files/setup/setupcave.c b/src/files/setup/setupcave.c index 1d57c6e20..cd62595a8 100644 --- a/src/files/setup/setupcave.c +++ b/src/files/setup/setupcave.c @@ -2309,7 +2309,7 @@ u8 func100c_check_end_level[] = { // Pad 0x00e9 label(0x04) set_stage_flag(STAGEFLAG_BOARDED_PLANE) - unset_savefile_flag(SAVEFILEFLAG_AF1_ENTRY) + unset_savefile_flag(GAMEFILEFLAG_AF1_ENTRY) if_chr_death_animation_finished(CHR_BOND, /*goto*/ 0x31) if_chr_dead(CHR_BOND, /*goto*/ 0x31) if_chr_knockedout(CHR_BOND, /*goto*/ 0x31) @@ -2334,7 +2334,7 @@ u8 func100c_check_end_level[] = { // Pad 0x00d5 label(0x05) set_stage_flag(STAGEFLAG_BOARDED_PLANE) - set_savefile_flag(SAVEFILEFLAG_AF1_ENTRY) + set_savefile_flag(GAMEFILEFLAG_AF1_ENTRY) if_chr_death_animation_finished(CHR_BOND, /*goto*/ 0x31) if_chr_dead(CHR_BOND, /*goto*/ 0x31) if_chr_knockedout(CHR_BOND, /*goto*/ 0x31) diff --git a/src/files/setup/setupdepo.c b/src/files/setup/setupdepo.c index a2ec1f56e..79b5aca53 100644 --- a/src/files/setup/setupdepo.c +++ b/src/files/setup/setupdepo.c @@ -2586,7 +2586,7 @@ u8 func101d_init_mines[] = { set_chr_team(CHR_ANTI, TEAM_ENEMY) label(0x06) - if_savefile_flag_is_unset(SAVEFILEFLAG_G5_MINE, /*goto*/ 0x06) + if_savefile_flag_is_unset(GAMEFILEFLAG_G5_MINE, /*goto*/ 0x06) disable_object(OBJ_MINE1) dprint 'E','P','R','O','M','F','L','A','G',' ','N','O','T','S','E','T',0, @@ -2870,7 +2870,7 @@ u8 func1022_light_switch[] = { }; u8 func1023_hide_nbomb_crate[] = { - if_savefile_flag_is_unset(SAVEFILEFLAG_G5_MINE, /*goto*/ 0x06) + if_savefile_flag_is_unset(GAMEFILEFLAG_G5_MINE, /*goto*/ 0x06) set_ailist(CHR_SELF, GAILIST_IDLE) label(0x06) diff --git a/src/files/setup/setupdish.c b/src/files/setup/setupdish.c index 595ebd032..4635254d9 100644 --- a/src/files/setup/setupdish.c +++ b/src/files/setup/setupdish.c @@ -917,7 +917,7 @@ u8 func1002_devicetraining_camspy[] = { dprint 'd','o','n','e',0, yield set_stage_flag(STAGEFLAG_TRIGGER_DEVICE_SUCCESS) - set_savefile_flag(SAVEFILEFLAG_CI_CAMSPY_DONE) + set_savefile_flag(GAMEFILEFLAG_CI_CAMSPY_DONE) label(0x84) if_chr_in_room(CHR_BOND, 0x00, 0x001e, /*goto*/ 0x90) label(0x90) @@ -1045,7 +1045,7 @@ u8 func1003_devicetraining_nightvision[] = { goto_next(0x84) label(0x83) - set_savefile_flag(SAVEFILEFLAG_CI_NIGHTVISION_DONE) + set_savefile_flag(GAMEFILEFLAG_CI_NIGHTVISION_DONE) dprint 'd','o','n','e',0, set_stage_flag(STAGEFLAG_TRIGGER_DEVICE_SUCCESS) set_lights_state(0x0030, LIGHTOP_1, 0xff, 0x00, 0x00) @@ -1224,7 +1224,7 @@ u8 func1004_devicetraining_doordecoder[] = { goto_next(0x84) label(0x83) - set_savefile_flag(SAVEFILEFLAG_CI_DOORDECODER_DONE) + set_savefile_flag(GAMEFILEFLAG_CI_DOORDECODER_DONE) dprint 'd','o','n','e',0, yield set_stage_flag(STAGEFLAG_TRIGGER_DEVICE_SUCCESS) @@ -1437,7 +1437,7 @@ u8 func1005_devicetraining_xray[] = { goto_next(0x84) label(0x83) - set_savefile_flag(SAVEFILEFLAG_CI_XRAY_DONE) + set_savefile_flag(GAMEFILEFLAG_CI_XRAY_DONE) dprint 'd','o','n','e',0, yield set_stage_flag(STAGEFLAG_TRIGGER_DEVICE_SUCCESS) @@ -1576,7 +1576,7 @@ u8 func1006_devicetraining_disguise[] = { goto_next(0x84) label(0x83) - set_savefile_flag(SAVEFILEFLAG_CI_DISGUISE_DONE) + set_savefile_flag(GAMEFILEFLAG_CI_DISGUISE_DONE) dprint 'd','o','n','e',0, yield set_stage_flag(STAGEFLAG_TRIGGER_DEVICE_SUCCESS) @@ -1725,7 +1725,7 @@ u8 func1007_devicetrainign_ir[] = { goto_next(0x84) label(0x83) - set_savefile_flag(SAVEFILEFLAG_CI_IR_DONE) + set_savefile_flag(GAMEFILEFLAG_CI_IR_DONE) dprint 'd','o','n','e',0, yield set_stage_flag(STAGEFLAG_TRIGGER_DEVICE_SUCCESS) @@ -1852,7 +1852,7 @@ u8 func1008_devicetraining_rtracker[] = { goto_next(0x84) label(0x83) - set_savefile_flag(SAVEFILEFLAG_CI_RTRACKER_DONE) + set_savefile_flag(GAMEFILEFLAG_CI_RTRACKER_DONE) dprint 'd','o','n','e',0, yield set_stage_flag(STAGEFLAG_TRIGGER_DEVICE_SUCCESS) @@ -2003,7 +2003,7 @@ u8 func1009_devicetraining_cloak[] = { goto_next(0x84) label(0x83) - set_savefile_flag(SAVEFILEFLAG_CI_CLOAK_DONE) + set_savefile_flag(GAMEFILEFLAG_CI_CLOAK_DONE) dprint 'd','o','n','e',0, yield set_stage_flag(STAGEFLAG_TRIGGER_DEVICE_SUCCESS) @@ -2156,7 +2156,7 @@ u8 func100a_devicetraining_ecmmine[] = { goto_next(0x84) label(0x83) - set_savefile_flag(SAVEFILEFLAG_CI_ECMMINE_DONE) + set_savefile_flag(GAMEFILEFLAG_CI_ECMMINE_DONE) dprint 'd','o','n','e',0, yield set_stage_flag(STAGEFLAG_TRIGGER_DEVICE_SUCCESS) @@ -2364,7 +2364,7 @@ u8 func100b_devicetraining_uplink[] = { goto_next(0x84) label(0x83) - set_savefile_flag(SAVEFILEFLAG_CI_UPLINK_DONE) + set_savefile_flag(GAMEFILEFLAG_CI_UPLINK_DONE) dprint 'd','o','n','e',0, set_stage_flag(STAGEFLAG_TRIGGER_DEVICE_SUCCESS) yield @@ -2761,14 +2761,14 @@ u8 func042a_carrington_cloak[] = { u8 func100e_training_unlockables[] = { beginloop(0x04) - if_savefile_flag_is_set(SAVEFILEFLAG_CI_UPLINK_DONE, /*goto*/ 0x2f) + if_savefile_flag_is_set(GAMEFILEFLAG_CI_UPLINK_DONE, /*goto*/ 0x2f) endloop(0x04) label(0x2f) unlock_door(0x3e, 0x40) beginloop(0x08) - if_savefile_flag_is_set(SAVEFILEFLAG_CI_ECMMINE_DONE, /*goto*/ 0x2f) + if_savefile_flag_is_set(GAMEFILEFLAG_CI_ECMMINE_DONE, /*goto*/ 0x2f) endloop(0x08) label(0x2f) @@ -2777,14 +2777,14 @@ u8 func100e_training_unlockables[] = { goto_next(0x2f) beginloop(0x09) - if_savefile_flag_is_set(SAVEFILEFLAG_CI_CAMSPY_DONE, /*goto*/ 0x2f) + if_savefile_flag_is_set(GAMEFILEFLAG_CI_CAMSPY_DONE, /*goto*/ 0x2f) endloop(0x09) label(0x2f) unset_object_flag2(OBJ_LIGHTSWITCH, OBJFLAG2_INVISIBLE) beginloop(0x0a) - if_savefile_flag_is_set(SAVEFILEFLAG_CI_NIGHTVISION_DONE, /*goto*/ 0x2f) + if_savefile_flag_is_set(GAMEFILEFLAG_CI_NIGHTVISION_DONE, /*goto*/ 0x2f) endloop(0x0a) label(0x2f) @@ -2798,21 +2798,21 @@ u8 func100e_training_unlockables[] = { set_lights_state(0x0022, LIGHTOP_1, 0xff, 0x00, 0x00) beginloop(0x0b) - if_savefile_flag_is_set(SAVEFILEFLAG_CI_DOORDECODER_DONE, /*goto*/ 0x2f) + if_savefile_flag_is_set(GAMEFILEFLAG_CI_DOORDECODER_DONE, /*goto*/ 0x2f) endloop(0x0b) label(0x2f) unlock_door(0x41, 0x40) beginloop(0x0e) - if_savefile_flag_is_set(SAVEFILEFLAG_CI_IR_DONE, /*goto*/ 0x2f) + if_savefile_flag_is_set(GAMEFILEFLAG_CI_IR_DONE, /*goto*/ 0x2f) endloop(0x0e) label(0x2f) unlock_door(0x37, 0x40) beginloop(0x0f) - if_savefile_flag_is_set(SAVEFILEFLAG_CI_XRAY_DONE, /*goto*/ 0x2f) + if_savefile_flag_is_set(GAMEFILEFLAG_CI_XRAY_DONE, /*goto*/ 0x2f) endloop(0x0f) label(0x2f) @@ -2852,12 +2852,12 @@ u8 func100f_doorproxy_unused1[] = { set_ailist(CHR_SELF, GAILIST_IDLE) // Unreachable - do_door_proxy(SAVEFILEFLAG_CI_ECMMINE_DONE, 0x0185, 0x3d) + do_door_proxy(GAMEFILEFLAG_CI_ECMMINE_DONE, 0x0185, 0x3d) endlist }; u8 func1010_doorproxy[] = { - do_door_proxy(SAVEFILEFLAG_CI_UPLINK_DONE, 0x0186, 0x3e) + do_door_proxy(GAMEFILEFLAG_CI_UPLINK_DONE, 0x0186, 0x3e) endlist }; @@ -2865,7 +2865,7 @@ u8 func1010_doorproxy_unused2[] = { set_ailist(CHR_SELF, GAILIST_IDLE) // Unreachable - do_door_proxy(SAVEFILEFLAG_CI_ECMMINE_DONE, 0x0187, 0x3f) + do_door_proxy(GAMEFILEFLAG_CI_ECMMINE_DONE, 0x0187, 0x3f) endlist }; @@ -2905,7 +2905,7 @@ u8 func1012_cloak_doorproxy[] = { u8 func101b_ir_door[] = { beginloop(0x04) if_stage_flag_eq(STAGEFLAG_TRIGGER_IR, TRUE, /*goto*/ 0x06) - if_savefile_flag_is_set(SAVEFILEFLAG_CI_IR_DONE, /*goto*/ 0x2f) + if_savefile_flag_is_set(GAMEFILEFLAG_CI_IR_DONE, /*goto*/ 0x2f) label(0x06) reloop(0x04) @@ -2936,9 +2936,9 @@ u8 func042b_init_carrington[] = { set_self_chrflag(CHRCFLAG_UNEXPLODABLE) yield set_morale(0) - if_savefile_flag_is_unset(SAVEFILEFLAG_CI_TOUR_STARTED, /*goto*/ 0x06) + if_savefile_flag_is_unset(GAMEFILEFLAG_CI_TOUR_STARTED, /*goto*/ 0x06) #if VERSION >= VERSION_NTSC_1_0 - set_savefile_flag(SAVEFILEFLAG_CI_TOUR_DONE) + set_savefile_flag(GAMEFILEFLAG_CI_TOUR_DONE) #endif dprint 'E','E','P','R','O','M',' ','S','E','T',0, @@ -2951,7 +2951,7 @@ u8 func042b_init_carrington[] = { label(0x06) dprint 'E','E','P','R','O','M',' ','N','O','T','S','E','T',0, - if_savefile_flag_is_unset(SAVEFILEFLAG_CI_TOUR_DONE, /*goto*/ 0x8f) + if_savefile_flag_is_unset(GAMEFILEFLAG_CI_TOUR_DONE, /*goto*/ 0x8f) goto_first(0x08) beginloop(0x8f) @@ -2967,7 +2967,7 @@ u8 func042b_init_carrington[] = { u8 func1019_setup_carrington[] = { beginloop(0x04) if_chr_has_hiddenflag(CHR_CARRINGTON, CHRHFLAG_INFINITESHIELD, /*goto*/ 0x06) - if_savefile_flag_is_set(SAVEFILEFLAG_CI_TOUR_STARTED, /*goto*/ 0x2f) + if_savefile_flag_is_set(GAMEFILEFLAG_CI_TOUR_STARTED, /*goto*/ 0x2f) endloop(0x04) label(0x06) @@ -3008,7 +3008,7 @@ u8 func042c_carrington_tour[] = { label(0x06) set_chr_hiddenflag(CHR_SELF, CHRHFLAG_INFINITESHIELD) - set_savefile_flag(SAVEFILEFLAG_CI_TOUR_STARTED) + set_savefile_flag(GAMEFILEFLAG_CI_TOUR_STARTED) do_preset_animation(-1) remove_hudmsgs speak(CHR_TARGET, L_DISH_066, SFX_8029, CHANNEL_6, COLOR_06_WHITE) // "Joanna, it's good to see you." @@ -3291,7 +3291,7 @@ u8 func042c_carrington_tour[] = { endloop(0x7a) label(0x2f) - set_savefile_flag(SAVEFILEFLAG_CI_TOUR_DONE) + set_savefile_flag(GAMEFILEFLAG_CI_TOUR_DONE) walk_to_pad(PAD_CARRINGTON_OFFICE) beginloop(0x76) @@ -3368,19 +3368,19 @@ u8 func042e_devicegirl_reply_to_carrington[] = { u8 func1013_msg_hovercrate[] = { #if VERSION >= VERSION_PAL_FINAL beginloop(0x8f) - if_savefile_flag_is_unset(SAVEFILEFLAG_HOWTO_HOVERCRATE, /*goto*/ 0x04) + if_savefile_flag_is_unset(GAMEFILEFLAG_HOWTO_HOVERCRATE, /*goto*/ 0x04) endloop(0x8f) beginloop(0x04) - if_savefile_flag_is_set(SAVEFILEFLAG_HOWTO_HOVERCRATE, /*goto*/ 0x06) + if_savefile_flag_is_set(GAMEFILEFLAG_HOWTO_HOVERCRATE, /*goto*/ 0x06) if_chr_distance_to_pad_lt(CHR_BOND, 250, PAD_DISH_0141, /*goto*/ 0x2f) endloop(0x04) #else - if_savefile_flag_is_unset(SAVEFILEFLAG_CI_TOUR_STARTED, /*goto*/ 0x04) + if_savefile_flag_is_unset(GAMEFILEFLAG_CI_TOUR_STARTED, /*goto*/ 0x04) set_ailist(CHR_SELF, GAILIST_IDLE) beginloop(0x04) - if_savefile_flag_is_set(SAVEFILEFLAG_CI_TOUR_STARTED, /*goto*/ 0x06) + if_savefile_flag_is_set(GAMEFILEFLAG_CI_TOUR_STARTED, /*goto*/ 0x06) if_chr_distance_to_pad_lt(CHR_BOND, 250, PAD_DISH_0141, /*goto*/ 0x2f) endloop(0x04) #endif @@ -3390,7 +3390,7 @@ u8 func1013_msg_hovercrate[] = { label(0x2f) #if VERSION >= VERSION_PAL_FINAL - set_savefile_flag(SAVEFILEFLAG_HOWTO_HOVERCRATE) + set_savefile_flag(GAMEFILEFLAG_HOWTO_HOVERCRATE) #endif remove_hudmsgs show_hudmsg_middle(0x01, COLOR_04_ORANGE, L_DISH_073) // "HOVERCRATE Press B Button next to Hovcrate to grab it..." @@ -3410,19 +3410,19 @@ u8 func1013_msg_hovercrate[] = { u8 func1014_msg_hoverbike[] = { #if VERSION >= VERSION_PAL_FINAL beginloop(0x8f) - if_savefile_flag_is_unset(SAVEFILEFLAG_HOWTO_HOVERBIKE, /*goto*/ 0x04) + if_savefile_flag_is_unset(GAMEFILEFLAG_HOWTO_HOVERBIKE, /*goto*/ 0x04) endloop(0x8f) beginloop(0x04) - if_savefile_flag_is_set(SAVEFILEFLAG_HOWTO_HOVERBIKE, /*goto*/ 0x06) + if_savefile_flag_is_set(GAMEFILEFLAG_HOWTO_HOVERBIKE, /*goto*/ 0x06) if_chr_distance_to_pad_lt(CHR_BOND, 250, PAD_DISH_01F9, /*goto*/ 0x2f) endloop(0x04) #else - if_savefile_flag_is_unset(SAVEFILEFLAG_CI_TOUR_STARTED, /*goto*/ 0x04) + if_savefile_flag_is_unset(GAMEFILEFLAG_CI_TOUR_STARTED, /*goto*/ 0x04) set_ailist(CHR_SELF, GAILIST_IDLE) beginloop(0x04) - if_savefile_flag_is_set(SAVEFILEFLAG_CI_TOUR_STARTED, /*goto*/ 0x06) + if_savefile_flag_is_set(GAMEFILEFLAG_CI_TOUR_STARTED, /*goto*/ 0x06) if_chr_distance_to_pad_lt(CHR_BOND, 250, PAD_DISH_01F9, /*goto*/ 0x2f) endloop(0x04) #endif @@ -3432,7 +3432,7 @@ u8 func1014_msg_hoverbike[] = { label(0x2f) #if VERSION >= VERSION_PAL_FINAL - set_savefile_flag(SAVEFILEFLAG_HOWTO_HOVERBIKE) + set_savefile_flag(GAMEFILEFLAG_HOWTO_HOVERBIKE) #endif remove_hudmsgs show_hudmsg_middle(0x01, COLOR_04_ORANGE, L_DISH_075) // "HOVERBIKE Double tap B Button next to Hovbike to ride it..." @@ -3452,18 +3452,18 @@ u8 func1014_msg_hoverbike[] = { u8 func1015_msg_doors[] = { #if VERSION >= VERSION_PAL_FINAL beginloop(0x8f) - if_savefile_flag_is_unset(SAVEFILEFLAG_HOWTO_DOORS, /*goto*/ 0x04) + if_savefile_flag_is_unset(GAMEFILEFLAG_HOWTO_DOORS, /*goto*/ 0x04) endloop(0x8f) beginloop(0x04) - if_savefile_flag_is_set(SAVEFILEFLAG_HOWTO_DOORS, /*goto*/ 0x06) + if_savefile_flag_is_set(GAMEFILEFLAG_HOWTO_DOORS, /*goto*/ 0x06) endloop(0x04) #else - if_savefile_flag_is_unset(SAVEFILEFLAG_CI_TOUR_STARTED, /*goto*/ 0x04) + if_savefile_flag_is_unset(GAMEFILEFLAG_CI_TOUR_STARTED, /*goto*/ 0x04) set_ailist(CHR_SELF, GAILIST_IDLE) beginloop(0x04) - if_savefile_flag_is_set(SAVEFILEFLAG_CI_TOUR_STARTED, /*goto*/ 0x06) + if_savefile_flag_is_set(GAMEFILEFLAG_CI_TOUR_STARTED, /*goto*/ 0x06) endloop(0x04) #endif @@ -3472,7 +3472,7 @@ u8 func1015_msg_doors[] = { label(0x2f) #if VERSION >= VERSION_PAL_FINAL - set_savefile_flag(SAVEFILEFLAG_HOWTO_DOORS) + set_savefile_flag(GAMEFILEFLAG_HOWTO_DOORS) #endif remove_hudmsgs show_hudmsg_middle(0x01, COLOR_04_ORANGE, L_DISH_077) // "OPENING DOORS Press B Button next to door to open it." @@ -3492,20 +3492,20 @@ u8 func1015_msg_doors[] = { u8 func1016_msg_elevators[] = { #if VERSION >= VERSION_PAL_FINAL beginloop(0x8f) - if_savefile_flag_is_unset(SAVEFILEFLAG_HOWTO_ELEVATORS, /*goto*/ 0x04) + if_savefile_flag_is_unset(GAMEFILEFLAG_HOWTO_ELEVATORS, /*goto*/ 0x04) endloop(0x8f) beginloop(0x04) - if_savefile_flag_is_set(SAVEFILEFLAG_HOWTO_ELEVATORS, /*goto*/ 0x06) + if_savefile_flag_is_set(GAMEFILEFLAG_HOWTO_ELEVATORS, /*goto*/ 0x06) if_chr_distance_to_pad_lt(CHR_BOND, 250, PAD_DISH_0160, /*goto*/ 0x2f) if_chr_distance_to_pad_lt(CHR_BOND, 250, PAD_DISH_0162, /*goto*/ 0x2f) endloop(0x04) #else - if_savefile_flag_is_unset(SAVEFILEFLAG_CI_TOUR_STARTED, /*goto*/ 0x04) + if_savefile_flag_is_unset(GAMEFILEFLAG_CI_TOUR_STARTED, /*goto*/ 0x04) set_ailist(CHR_SELF, GAILIST_IDLE) beginloop(0x04) - if_savefile_flag_is_set(SAVEFILEFLAG_CI_TOUR_STARTED, /*goto*/ 0x06) + if_savefile_flag_is_set(GAMEFILEFLAG_CI_TOUR_STARTED, /*goto*/ 0x06) if_chr_distance_to_pad_lt(CHR_BOND, 250, PAD_DISH_0160, /*goto*/ 0x2f) if_chr_distance_to_pad_lt(CHR_BOND, 250, PAD_DISH_0162, /*goto*/ 0x2f) endloop(0x04) @@ -3513,7 +3513,7 @@ u8 func1016_msg_elevators[] = { label(0x2f) #if VERSION >= VERSION_PAL_FINAL - set_savefile_flag(SAVEFILEFLAG_HOWTO_ELEVATORS) + set_savefile_flag(GAMEFILEFLAG_HOWTO_ELEVATORS) #endif remove_hudmsgs show_hudmsg_middle(0x01, COLOR_04_ORANGE, L_DISH_079) // "ELEVATORS Press B Button next to door to call elevator." @@ -3525,11 +3525,11 @@ u8 func1016_msg_elevators[] = { u8 func1017_msg_terminals[] = { #if VERSION >= VERSION_PAL_FINAL beginloop(0x8f) - if_savefile_flag_is_unset(SAVEFILEFLAG_HOWTO_TERMINALS, /*goto*/ 0x04) + if_savefile_flag_is_unset(GAMEFILEFLAG_HOWTO_TERMINALS, /*goto*/ 0x04) endloop(0x8f) beginloop(0x04) - if_savefile_flag_is_set(SAVEFILEFLAG_HOWTO_TERMINALS, /*goto*/ 0x06) + if_savefile_flag_is_set(GAMEFILEFLAG_HOWTO_TERMINALS, /*goto*/ 0x06) if_chr_distance_to_pad_lt(CHR_BOND, 250, PAD_DISH_0227, /*goto*/ 0x2f) if_chr_distance_to_pad_lt(CHR_BOND, 250, PAD_DISH_022A, /*goto*/ 0x2f) if_chr_distance_to_pad_lt(CHR_BOND, 250, PAD_DISH_021C, /*goto*/ 0x2f) @@ -3539,11 +3539,11 @@ u8 func1017_msg_terminals[] = { if_chr_distance_to_pad_lt(CHR_BOND, 250, PAD_DISH_023E, /*goto*/ 0x2f) endloop(0x04) #else - if_savefile_flag_is_unset(SAVEFILEFLAG_CI_TOUR_STARTED, /*goto*/ 0x04) + if_savefile_flag_is_unset(GAMEFILEFLAG_CI_TOUR_STARTED, /*goto*/ 0x04) set_ailist(CHR_SELF, GAILIST_IDLE) beginloop(0x04) - if_savefile_flag_is_set(SAVEFILEFLAG_CI_TOUR_STARTED, /*goto*/ 0x06) + if_savefile_flag_is_set(GAMEFILEFLAG_CI_TOUR_STARTED, /*goto*/ 0x06) if_chr_distance_to_pad_lt(CHR_BOND, 250, PAD_DISH_0227, /*goto*/ 0x2f) if_chr_distance_to_pad_lt(CHR_BOND, 250, PAD_DISH_022A, /*goto*/ 0x2f) if_chr_distance_to_pad_lt(CHR_BOND, 250, PAD_DISH_021C, /*goto*/ 0x2f) @@ -3556,7 +3556,7 @@ u8 func1017_msg_terminals[] = { label(0x2f) #if VERSION >= VERSION_PAL_FINAL - set_savefile_flag(SAVEFILEFLAG_HOWTO_TERMINALS) + set_savefile_flag(GAMEFILEFLAG_HOWTO_TERMINALS) #endif remove_hudmsgs show_hudmsg_middle(0x01, COLOR_04_ORANGE, L_DISH_114) // "TERMINALS - Press B Button next to terminal to use it." @@ -3682,7 +3682,7 @@ u8 func101c_holo1_main[] = { goto_next(0x84) label(0x83) - set_savefile_flag(SAVEFILEFLAG_CI_HOLO1_DONE) + set_savefile_flag(GAMEFILEFLAG_CI_HOLO1_DONE) dprint 'd','o','n','e',0, set_stage_flag(STAGEFLAG_TRIGGER_HOLO_SUCCESS) yield @@ -4030,7 +4030,7 @@ u8 func1022_holo2_main[] = { goto_next(0x90) label(0x83) - set_savefile_flag(SAVEFILEFLAG_CI_HOLO2_DONE) + set_savefile_flag(GAMEFILEFLAG_CI_HOLO2_DONE) dprint 'd','o','n','e',0, set_stage_flag(STAGEFLAG_TRIGGER_HOLO_SUCCESS) yield @@ -4340,7 +4340,7 @@ u8 func1027_holo3_main[] = { goto_next(0x84) label(0x83) - set_savefile_flag(SAVEFILEFLAG_CI_HOLO3_DONE) + set_savefile_flag(GAMEFILEFLAG_CI_HOLO3_DONE) dprint 'd','o','n','e',0, set_stage_flag(STAGEFLAG_TRIGGER_HOLO_SUCCESS) yield @@ -4582,7 +4582,7 @@ u8 func1028_holo4_main[] = { goto_next(0x84) label(0x83) - set_savefile_flag(SAVEFILEFLAG_CI_HOLO4_DONE) + set_savefile_flag(GAMEFILEFLAG_CI_HOLO4_DONE) dprint 'd','o','n','e',0, set_stage_flag(STAGEFLAG_TRIGGER_HOLO_SUCCESS) yield @@ -4827,7 +4827,7 @@ u8 func1029_holo5_main[] = { goto_next(0x84) label(0x83) - set_savefile_flag(SAVEFILEFLAG_CI_HOLO5_DONE) + set_savefile_flag(GAMEFILEFLAG_CI_HOLO5_DONE) dprint 'd','o','n','e',0, set_stage_flag(STAGEFLAG_TRIGGER_HOLO_SUCCESS) yield @@ -5203,7 +5203,7 @@ u8 func102e_holo6_main[] = { goto_next(0x84) label(0x83) - set_savefile_flag(SAVEFILEFLAG_CI_HOLO6_DONE) + set_savefile_flag(GAMEFILEFLAG_CI_HOLO6_DONE) dprint 'd','o','n','e',0, set_stage_flag(STAGEFLAG_TRIGGER_HOLO_SUCCESS) yield @@ -5620,7 +5620,7 @@ u8 func1030_holo7_main[] = { goto_next(0x84) label(0x83) - set_savefile_flag(SAVEFILEFLAG_CI_HOLO7_DONE) + set_savefile_flag(GAMEFILEFLAG_CI_HOLO7_DONE) dprint 'd','o','n','e',0, set_stage_flag(STAGEFLAG_TRIGGER_HOLO_SUCCESS) yield diff --git a/src/files/setup/setupimp.c b/src/files/setup/setupimp.c index 549e0b7f8..0be930b09 100644 --- a/src/files/setup/setupimp.c +++ b/src/files/setup/setupimp.c @@ -3639,7 +3639,7 @@ u8 func042a_init_jonathan[] = { u8 func1021_setup_jonathan[] = { yield - if_savefile_flag_is_set(SAVEFILEFLAG_DEFENSE_JON, /*goto*/ 0x08) + if_savefile_flag_is_set(GAMEFILEFLAG_DEFENSE_JON, /*goto*/ 0x08) remove_chr(CHR_JONATHAN) label(0x08) set_ailist(CHR_SELF, GAILIST_IDLE) diff --git a/src/files/setup/setuplip.c b/src/files/setup/setuplip.c index d0fca0ed3..9c50f9d49 100644 --- a/src/files/setup/setuplip.c +++ b/src/files/setup/setuplip.c @@ -4502,7 +4502,7 @@ u8 func1027_check_disguise_worn[] = { }; u8 func1028_toggle_mechanic[] = { - if_savefile_flag_is_set(SAVEFILEFLAG_RESCUE_MECHANIC_DEAD, /*goto*/ 0x06) + if_savefile_flag_is_set(GAMEFILEFLAG_RESCUE_MECHANIC_DEAD, /*goto*/ 0x06) dprint 'K','E','E','P',' ','M','E','C','H','\n',0, set_ailist(CHR_SELF, GAILIST_IDLE) diff --git a/src/files/setup/setuplue.c b/src/files/setup/setuplue.c index 9d4fe231f..2b0c1aa89 100644 --- a/src/files/setup/setuplue.c +++ b/src/files/setup/setuplue.c @@ -2884,14 +2884,14 @@ u8 func141f_start_lifts[] = { u8 func101a_check_mechanic_dead[] = { yield - unset_savefile_flag(SAVEFILEFLAG_RESCUE_MECHANIC_DEAD) + unset_savefile_flag(GAMEFILEFLAG_RESCUE_MECHANIC_DEAD) beginloop(0x04) if_chr_dead(CHR_MECHANIC, /*goto*/ 0x2e) endloop(0x04) label(0x2e) - set_savefile_flag(SAVEFILEFLAG_RESCUE_MECHANIC_DEAD) + set_savefile_flag(GAMEFILEFLAG_RESCUE_MECHANIC_DEAD) dprint 'D','E','L','E','T','E',' ','M','E','C','H','\n',0, set_ailist(CHR_SELF, GAILIST_IDLE) endlist diff --git a/src/files/setup/setuppete.c b/src/files/setup/setuppete.c index fca3041e7..15b02be7c 100644 --- a/src/files/setup/setuppete.c +++ b/src/files/setup/setuppete.c @@ -771,10 +771,10 @@ u8 func100f_check_mine[] = { endloop(0x05) label(0x08) - unset_savefile_flag(SAVEFILEFLAG_G5_MINE) + unset_savefile_flag(GAMEFILEFLAG_G5_MINE) goto_next(0x03) label(0x06) - set_savefile_flag(SAVEFILEFLAG_G5_MINE) + set_savefile_flag(GAMEFILEFLAG_G5_MINE) label(0x03) set_stage_flag(STAGEFLAG_MINE_PLACED) diff --git a/src/files/setup/setuprit.c b/src/files/setup/setuprit.c index bc61f0f83..d3494a231 100644 --- a/src/files/setup/setuprit.c +++ b/src/files/setup/setuprit.c @@ -2147,7 +2147,7 @@ u8 func1002_intro[] = { if_chr_death_animation_finished(CHR_COOP, /*goto*/ 0x2d) set_chr_hiddenflag(CHR_COOP, CHRHFLAG_DISGUISED) label(0x2d) - if_savefile_flag_is_set(SAVEFILEFLAG_AF1_ENTRY, /*goto*/ 0x06) + if_savefile_flag_is_set(GAMEFILEFLAG_AF1_ENTRY, /*goto*/ 0x06) goto_next(0x7e) label(0x06) camera_movement(ANIM_01D0) @@ -2198,7 +2198,7 @@ u8 func1002_intro[] = { unset_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) unset_chr_chrflag(CHR_BOND, CHRCFLAG_UNPLAYABLE) set_chr_hiddenflag(CHR_BOND, CHRHFLAG_00020000) - if_savefile_flag_is_set(SAVEFILEFLAG_AF1_ENTRY, /*goto*/ 0x06) + if_savefile_flag_is_set(GAMEFILEFLAG_AF1_ENTRY, /*goto*/ 0x06) set_chr_hiddenflag(CHR_BOND, CHRHFLAG_TRIGGER_BUDDY_WARP) chr_do_animation(ANIM_01D3, -2, -1, CHRANIMFLAG_MOVEWHENINVIS | CHRANIMFLAG_PAUSEATEND, 0, CHR_BOND, 2) goto_next(0x2d) @@ -3703,7 +3703,7 @@ u8 func101a_equipment_switch[] = { }; u8 func101b_hoverbike_switch[] = { - unset_savefile_flag(SAVEFILEFLAG_CRASHSITE_BIKE) + unset_savefile_flag(GAMEFILEFLAG_CRASHSITE_BIKE) set_object_flag(0x1f, OBJFLAG_DEACTIVATED) set_object_image(OBJ_HOVERBIKE_SWITCH, 0, TVCMDLIST_12) label(0x08) @@ -3735,7 +3735,7 @@ u8 func101b_hoverbike_switch[] = { label(0x2d) set_object_image(OBJ_HOVERBIKE_SWITCH, 0, TVCMDLIST_13) show_hudmsg(CHR_P1P2, L_RIT_060) // "Cargo bay has been lowered." - set_savefile_flag(SAVEFILEFLAG_CRASHSITE_BIKE) + set_savefile_flag(GAMEFILEFLAG_CRASHSITE_BIKE) assign_sound(SFX_043A, CHANNEL_7) control_sound_from_object(CHANNEL_7, OBJ_HOVERBIKE_SWITCH, TRUE) unset_object_flag(0x1f, OBJFLAG_DEACTIVATED) diff --git a/src/files/setup/setuptra.c b/src/files/setup/setuptra.c index cec382da9..1352e7cfb 100644 --- a/src/files/setup/setuptra.c +++ b/src/files/setup/setuptra.c @@ -3170,7 +3170,7 @@ u8 func0c02_outro[] = { revoke_control(CHR_BOND, 4) hide_countdown_timer stop_countdown_timer - unset_savefile_flag(SAVEFILEFLAG_DEFENSE_JON) + unset_savefile_flag(GAMEFILEFLAG_DEFENSE_JON) end_level set_ailist(CHR_SELF, GAILIST_IDLE) endlist @@ -3239,7 +3239,7 @@ u8 func1021_jo_escaping[] = { hide_countdown_timer stop_countdown_timer label(0x62) - set_savefile_flag(SAVEFILEFLAG_DEFENSE_JON) + set_savefile_flag(GAMEFILEFLAG_DEFENSE_JON) play_cutscene_track(MUSIC_ESCAPE_OUTRO_LONG) camera_movement(ANIM_02D4) set_chr_chrflag(CHR_ANTI, CHRCFLAG_HIDDEN) diff --git a/src/game/cheats.c b/src/game/cheats.c index 36761fb15..50f0ff278 100644 --- a/src/game/cheats.c +++ b/src/game/cheats.c @@ -76,23 +76,23 @@ u32 cheatIsUnlocked(s32 cheat_id) unlocked++; } } else if (cheat->flags & CHEATFLAG_COMPLETION) { - if (g_SoloSaveFile.besttimes[cheat->stage_index][0]) { + if (g_GameFile.besttimes[cheat->stage_index][0]) { unlocked++; } - if (g_SoloSaveFile.besttimes[cheat->stage_index][1]) { + if (g_GameFile.besttimes[cheat->stage_index][1]) { unlocked++; } - if (g_SoloSaveFile.besttimes[cheat->stage_index][2]) { + if (g_GameFile.besttimes[cheat->stage_index][2]) { unlocked++; } } else { - if (g_SoloSaveFile.besttimes[cheat->stage_index][cheat->difficulty] && - g_SoloSaveFile.besttimes[cheat->stage_index][cheat->difficulty] <= cheat->time) { + if (g_GameFile.besttimes[cheat->stage_index][cheat->difficulty] && + g_GameFile.besttimes[cheat->stage_index][cheat->difficulty] <= cheat->time) { unlocked++; } } - if ((cheat->flags & CHEATFLAG_TRANSFERPAK) && savefileHasFlag(SAVEFILEFLAG_USED_TRANSFERPAK)) { + if ((cheat->flags & CHEATFLAG_TRANSFERPAK) && gamefileHasFlag(GAMEFILEFLAG_USED_TRANSFERPAK)) { unlocked++; } @@ -468,7 +468,7 @@ s32 cheatMenuHandleDialog(s32 operation, struct menudialog *dialog, union handle func0f14a52c(); if (func0f11e78c()) { - savefileSetFlag(SAVEFILEFLAG_USED_TRANSFERPAK); + gamefileSetFlag(GAMEFILEFLAG_USED_TRANSFERPAK); } #if PIRACYCHECKS @@ -498,7 +498,7 @@ s32 cheatMenuHandleDialog(s32 operation, struct menudialog *dialog, union handle if (operation == MENUOP_CLOSE) { if (func0f11e78c()) { - savefileSetFlag(SAVEFILEFLAG_USED_TRANSFERPAK); + gamefileSetFlag(GAMEFILEFLAG_USED_TRANSFERPAK); } func0f14a560(); diff --git a/src/game/chr/chraicommands.c b/src/game/chr/chraicommands.c index 7afec226e..d7149a780 100644 --- a/src/game/chr/chraicommands.c +++ b/src/game/chr/chraicommands.c @@ -11315,7 +11315,7 @@ bool aiIfObjectDistanceToPadLessThan(void) bool aiSetSavefileFlag(void) { u8 *cmd = g_Vars.ailist + g_Vars.aioffset; - savefileSetFlag(cmd[2]); + gamefileSetFlag(cmd[2]); g_Vars.aioffset += 3; return false; @@ -11327,7 +11327,7 @@ bool aiSetSavefileFlag(void) bool aiUnsetSavefileFlag(void) { u8 *cmd = g_Vars.ailist + g_Vars.aioffset; - savefileUnsetFlag(cmd[2]); + gamefileUnsetFlag(cmd[2]); g_Vars.aioffset += 3; return false; @@ -11340,7 +11340,7 @@ bool aiIfSavefileFlagIsSet(void) { u8 *cmd = g_Vars.ailist + g_Vars.aioffset; - if (savefileHasFlag(cmd[2])) { + if (gamefileHasFlag(cmd[2])) { g_Vars.aioffset = chraiGoToLabel(g_Vars.ailist, g_Vars.aioffset, cmd[3]); } else { g_Vars.aioffset += 4; @@ -11356,7 +11356,7 @@ bool aiIfSavefileFlagIsUnset(void) { u8 *cmd = g_Vars.ailist + g_Vars.aioffset; - if (!savefileHasFlag(cmd[2])) { + if (!gamefileHasFlag(cmd[2])) { g_Vars.aioffset = chraiGoToLabel(g_Vars.ailist, g_Vars.aioffset, cmd[3]); } else { g_Vars.aioffset += 4; diff --git a/src/game/debug2.c b/src/game/debug2.c index 0c2fe7843..ac738f587 100644 --- a/src/game/debug2.c +++ b/src/game/debug2.c @@ -698,25 +698,25 @@ glabel var7f1af4ecnb /* f1197bc: 24420001 */ addiu $v0,$v0,0x1 /* f1197c0: 1444fffe */ bne $v0,$a0,.NB0f1197bc /* f1197c4: a04300ab */ sb $v1,0xab($v0) -/* f1197c8: 0fc425a7 */ jal savefileSetFlag +/* f1197c8: 0fc425a7 */ jal gamefileSetFlag /* f1197cc: 24040030 */ addiu $a0,$zero,0x30 -/* f1197d0: 0fc425a7 */ jal savefileSetFlag +/* f1197d0: 0fc425a7 */ jal gamefileSetFlag /* f1197d4: 24040031 */ addiu $a0,$zero,0x31 -/* f1197d8: 0fc425a7 */ jal savefileSetFlag +/* f1197d8: 0fc425a7 */ jal gamefileSetFlag /* f1197dc: 24040032 */ addiu $a0,$zero,0x32 -/* f1197e0: 0fc425a7 */ jal savefileSetFlag +/* f1197e0: 0fc425a7 */ jal gamefileSetFlag /* f1197e4: 24040033 */ addiu $a0,$zero,0x33 -/* f1197e8: 0fc425a7 */ jal savefileSetFlag +/* f1197e8: 0fc425a7 */ jal gamefileSetFlag /* f1197ec: 24040034 */ addiu $a0,$zero,0x34 -/* f1197f0: 0fc425a7 */ jal savefileSetFlag +/* f1197f0: 0fc425a7 */ jal gamefileSetFlag /* f1197f4: 24040035 */ addiu $a0,$zero,0x35 -/* f1197f8: 0fc425a7 */ jal savefileSetFlag +/* f1197f8: 0fc425a7 */ jal gamefileSetFlag /* f1197fc: 24040036 */ addiu $a0,$zero,0x36 -/* f119800: 0fc425a7 */ jal savefileSetFlag +/* f119800: 0fc425a7 */ jal gamefileSetFlag /* f119804: 24040037 */ addiu $a0,$zero,0x37 -/* f119808: 0fc425a7 */ jal savefileSetFlag +/* f119808: 0fc425a7 */ jal gamefileSetFlag /* f11980c: 24040038 */ addiu $a0,$zero,0x38 -/* f119810: 0fc425a7 */ jal savefileSetFlag +/* f119810: 0fc425a7 */ jal gamefileSetFlag /* f119814: 24040039 */ addiu $a0,$zero,0x39 /* f119818: 1000001f */ beqz $zero,.NB0f119898 /* f11981c: 8faf001c */ lw $t7,0x1c($sp) diff --git a/src/game/endscreen.c b/src/game/endscreen.c index 739240d29..0465edc72 100644 --- a/src/game/endscreen.c +++ b/src/game/endscreen.c @@ -1182,12 +1182,12 @@ void endscreenSetCoopCompleted(void) { if (g_CheatsActiveBank0 == 0 && g_CheatsActiveBank1 == 0) { #if VERSION >= VERSION_NTSC_1_0 - if (g_SoloSaveFile.coopcompletions[g_MissionConfig.difficulty] & (1 << g_MissionConfig.stageindex)) { + if (g_GameFile.coopcompletions[g_MissionConfig.difficulty] & (1 << g_MissionConfig.stageindex)) { g_Menus[g_MpPlayerNum].data.endscreen.isfirstcompletion = true; } #endif - g_SoloSaveFile.coopcompletions[g_MissionConfig.difficulty] |= (1 << g_MissionConfig.stageindex); + g_GameFile.coopcompletions[g_MissionConfig.difficulty] |= (1 << g_MissionConfig.stageindex); } } @@ -1280,15 +1280,15 @@ void endscreenPrepare(void) secs = getMissionTime() / 60; if (secs != 0) { - if (secs >= S32_MAX || S32_MAX - secs <= g_SoloSaveFile.totaltime) { - g_SoloSaveFile.totaltime = S32_MAX; + if (secs >= S32_MAX || S32_MAX - secs <= g_GameFile.totaltime) { + g_GameFile.totaltime = S32_MAX; } else { - g_SoloSaveFile.totaltime += secs; + g_GameFile.totaltime += secs; } } - g_SoloSaveFile.autostageindex = g_MissionConfig.stageindex; - g_SoloSaveFile.autodifficulty = g_MissionConfig.difficulty; + g_GameFile.autostageindex = g_MissionConfig.stageindex; + g_GameFile.autodifficulty = g_MissionConfig.difficulty; if (g_CheatsActiveBank0 == 0 && g_CheatsActiveBank1 == 0 @@ -1312,28 +1312,28 @@ void endscreenPrepare(void) } // Set best time - prevbest = g_SoloSaveFile.besttimes[g_MissionConfig.stageindex][g_MissionConfig.difficulty]; + prevbest = g_GameFile.besttimes[g_MissionConfig.stageindex][g_MissionConfig.difficulty]; if (prevbest == 0) { g_Menus[g_MpPlayerNum].data.endscreen.isfirstcompletion = true; } if (secs < prevbest || prevbest == 0) { - g_SoloSaveFile.besttimes[g_MissionConfig.stageindex][g_MissionConfig.difficulty] = secs; + g_GameFile.besttimes[g_MissionConfig.stageindex][g_MissionConfig.difficulty] = secs; } // Recalculate thumbnail for file select screen if (g_MissionConfig.stageindex <= SOLOSTAGEINDEX_SKEDARRUINS) { - g_SoloSaveFile.autostageindex = g_MissionConfig.stageindex + 1; + g_GameFile.autostageindex = g_MissionConfig.stageindex + 1; - if (g_SoloSaveFile.autostageindex > SOLOSTAGEINDEX_SKEDARRUINS) { - g_SoloSaveFile.autostageindex = SOLOSTAGEINDEX_SKEDARRUINS; + if (g_GameFile.autostageindex > SOLOSTAGEINDEX_SKEDARRUINS) { + g_GameFile.autostageindex = SOLOSTAGEINDEX_SKEDARRUINS; } for (d = 0; d != 3; d++) { for (s = 0; s <= SOLOSTAGEINDEX_SKEDARRUINS; s++) { - if (g_SoloSaveFile.besttimes[s][d]) { - g_SoloSaveFile.thumbnail = s + 1; + if (g_GameFile.besttimes[s][d]) { + g_GameFile.thumbnail = s + 1; } } } diff --git a/src/game/game_01bea0.c b/src/game/game_01bea0.c index 1f8a6ec5b..d257db46d 100644 --- a/src/game/game_01bea0.c +++ b/src/game/game_01bea0.c @@ -1209,9 +1209,9 @@ glabel var7f1a863c /* f01cf9c: 240f0002 */ li $t7,0x2 /* f01cfa0: 3c018006 */ lui $at,0x8006 /* f01cfa4: a02f2610 */ sb $t7,0x2610($at) -/* f01cfa8: 0fc4402b */ jal savefileLoadDefaults +/* f01cfa8: 0fc4402b */ jal gamefileLoadDefaults /* f01cfac: 02002025 */ move $a0,$s0 -/* f01cfb0: 0fc43ee5 */ jal savefileApplyOptions +/* f01cfb0: 0fc43ee5 */ jal gamefileApplyOptions /* f01cfb4: 02002025 */ move $a0,$s0 /* f01cfb8: 3c0d8009 */ lui $t5,0x8009 /* f01cfbc: 91ad1040 */ lbu $t5,0x1040($t5) @@ -2981,14 +2981,14 @@ glabel var7f1a863c /* f01ceb8: 00008025 */ or $s0,$zero,$zero /* f01cebc: 0fc06fa8 */ jal func0f01bea0 /* f01cec0: afa40158 */ sw $a0,0x158($sp) -/* f01cec4: 3c10800a */ lui $s0,%hi(g_SoloSaveFile) -/* f01cec8: 26102200 */ addiu $s0,$s0,%lo(g_SoloSaveFile) +/* f01cec4: 3c10800a */ lui $s0,%hi(g_GameFile) +/* f01cec8: 26102200 */ addiu $s0,$s0,%lo(g_GameFile) /* f01cecc: 24190002 */ addiu $t9,$zero,0x2 /* f01ced0: 3c018006 */ lui $at,%hi(g_FileState) /* f01ced4: a0392940 */ sb $t9,%lo(g_FileState)($at) -/* f01ced8: 0fc43da6 */ jal savefileLoadDefaults +/* f01ced8: 0fc43da6 */ jal gamefileLoadDefaults /* f01cedc: 02002025 */ or $a0,$s0,$zero -/* f01cee0: 0fc43c81 */ jal savefileApplyOptions +/* f01cee0: 0fc43c81 */ jal gamefileApplyOptions /* f01cee4: 02002025 */ or $a0,$s0,$zero /* f01cee8: 3c0f8009 */ lui $t7,%hi(g_Is4Mb) /* f01ceec: 91ef0af0 */ lbu $t7,%lo(g_Is4Mb)($t7) @@ -4754,9 +4754,9 @@ glabel var7f1a863c /* f01cbac: 24190002 */ addiu $t9,$zero,0x2 /* f01cbb0: 3c018006 */ lui $at,0x8006 /* f01cbb4: a0394e50 */ sb $t9,0x4e50($at) -/* f01cbb8: 0fc426fe */ jal savefileLoadDefaults +/* f01cbb8: 0fc426fe */ jal gamefileLoadDefaults /* f01cbbc: 02002025 */ or $a0,$s0,$zero -/* f01cbc0: 0fc425d9 */ jal savefileApplyOptions +/* f01cbc0: 0fc425d9 */ jal gamefileApplyOptions /* f01cbc4: 02002025 */ or $a0,$s0,$zero /* f01cbc8: 3c0f8009 */ lui $t7,0x8009 /* f01cbcc: 91ef30e0 */ lbu $t7,0x30e0($t7) @@ -5913,8 +5913,8 @@ glabel var7f1a863c // } else /*ceb0*/ if (g_MenuData.unk008 == -7) { // func0f01bea0(); // g_FileState = FILESTATE_CHANGINGAGENT; -// savefileLoadDefaults(&g_SoloSaveFile); -// savefileApplyOptions(&g_SoloSaveFile); +// gamefileLoadDefaults(&g_GameFile); +// gamefileApplyOptions(&g_GameFile); // mainSetStageNum(IS4MB() ? STAGE_4MBMENU : STAGE_CITRAINING); // func0f16d3d0(); // } else { diff --git a/src/game/game_102240.c b/src/game/game_102240.c index 0dcf699c9..3306261e5 100644 --- a/src/game/game_102240.c +++ b/src/game/game_102240.c @@ -912,9 +912,9 @@ glabel isStageDifficultyUnlocked /* f1038ec: 28810011 */ slti $at,$a0,0x11 /* f1038f0: 14200024 */ bnez $at,.L0f103984 /* f1038f4: 00a03025 */ or $a2,$a1,$zero -/* f1038f8: 3c05800a */ lui $a1,%hi(g_SoloSaveFile) +/* f1038f8: 3c05800a */ lui $a1,%hi(g_GameFile) /* f1038fc: 00001025 */ or $v0,$zero,$zero -/* f103900: 24a52200 */ addiu $a1,$a1,%lo(g_SoloSaveFile) +/* f103900: 24a52200 */ addiu $a1,$a1,%lo(g_GameFile) /* f103904: 00001825 */ or $v1,$zero,$zero .L0f103908: /* f103908: 94ae0080 */ lhu $t6,0x80($a1) @@ -936,8 +936,8 @@ glabel isStageDifficultyUnlocked /* f103940: 00001825 */ or $v1,$zero,$zero /* f103944: 00047880 */ sll $t7,$a0,0x2 /* f103948: 01e47823 */ subu $t7,$t7,$a0 -/* f10394c: 3c18800a */ lui $t8,%hi(g_SoloSaveFile) -/* f103950: 27182200 */ addiu $t8,$t8,%lo(g_SoloSaveFile) +/* f10394c: 3c18800a */ lui $t8,%hi(g_GameFile) +/* f103950: 27182200 */ addiu $t8,$t8,%lo(g_GameFile) /* f103954: 000f7840 */ sll $t7,$t7,0x1 /* f103958: 01f81021 */ addu $v0,$t7,$t8 .L0f10395c: @@ -977,13 +977,13 @@ glabel isStageDifficultyUnlocked /* f1039d0: 01a46823 */ subu $t5,$t5,$a0 /* f1039d4: 000d6840 */ sll $t5,$t5,0x1 /* f1039d8: 00037040 */ sll $t6,$v1,0x1 -/* f1039dc: 3c18800a */ lui $t8,%hi(g_SoloSaveFile) -/* f1039e0: 27182200 */ addiu $t8,$t8,%lo(g_SoloSaveFile) +/* f1039dc: 3c18800a */ lui $t8,%hi(g_GameFile) +/* f1039e0: 27182200 */ addiu $t8,$t8,%lo(g_GameFile) /* f1039e4: 01ae7821 */ addu $t7,$t5,$t6 -/* f1039e8: 3c0a800a */ lui $t2,%hi(g_SoloSaveFile) +/* f1039e8: 3c0a800a */ lui $t2,%hi(g_GameFile) /* f1039ec: 3c09800a */ lui $t1,%hi(g_MissionConfig) /* f1039f0: 2529dfe8 */ addiu $t1,$t1,%lo(g_MissionConfig) -/* f1039f4: 254a2200 */ addiu $t2,$t2,%lo(g_SoloSaveFile) +/* f1039f4: 254a2200 */ addiu $t2,$t2,%lo(g_GameFile) /* f1039f8: 01f81021 */ addu $v0,$t7,$t8 /* f1039fc: 240b0003 */ addiu $t3,$zero,0x3 .L0f103a00: @@ -1016,8 +1016,8 @@ glabel isStageDifficultyUnlocked /* f103a5c: 24420002 */ addiu $v0,$v0,0x2 .L0f103a60: /* f103a60: 3c09800a */ lui $t1,%hi(g_MissionConfig) -/* f103a64: 3c0a800a */ lui $t2,%hi(g_SoloSaveFile) -/* f103a68: 254a2200 */ addiu $t2,$t2,%lo(g_SoloSaveFile) +/* f103a64: 3c0a800a */ lui $t2,%hi(g_GameFile) +/* f103a68: 254a2200 */ addiu $t2,$t2,%lo(g_GameFile) /* f103a6c: 2529dfe8 */ addiu $t1,$t1,%lo(g_MissionConfig) /* f103a70: 18800052 */ blez $a0,.L0f103bbc /* f103a74: 240b0003 */ addiu $t3,$zero,0x3 @@ -1120,8 +1120,8 @@ glabel isStageDifficultyUnlocked /* f103bc0: 2401002a */ addiu $at,$zero,0x2a /* f103bc4: 10a10047 */ beq $a1,$at,.L0f103ce4 /* f103bc8: 00003825 */ or $a3,$zero,$zero -/* f103bcc: 3c05800a */ lui $a1,%hi(g_SoloSaveFile) -/* f103bd0: 24a52200 */ addiu $a1,$a1,%lo(g_SoloSaveFile) +/* f103bcc: 3c05800a */ lui $a1,%hi(g_GameFile) +/* f103bd0: 24a52200 */ addiu $a1,$a1,%lo(g_GameFile) .L0f103bd4: /* f103bd4: 00001825 */ or $v1,$zero,$zero /* f103bd8: 00001025 */ or $v0,$zero,$zero @@ -1159,8 +1159,8 @@ glabel isStageDifficultyUnlocked /* f103c44: 1420ffe3 */ bnez $at,.L0f103bd4 /* f103c48: 24a50006 */ addiu $a1,$a1,0x6 .L0f103c4c: -/* f103c4c: 3c18800a */ lui $t8,%hi(g_SoloSaveFile+0x66) -/* f103c50: 27182266 */ addiu $t8,$t8,%lo(g_SoloSaveFile+0x66) +/* f103c4c: 3c18800a */ lui $t8,%hi(g_GameFile+0x66) +/* f103c50: 27182266 */ addiu $t8,$t8,%lo(g_GameFile+0x66) /* f103c54: 00b8082b */ sltu $at,$a1,$t8 /* f103c58: 14200022 */ bnez $at,.L0f103ce4 /* f103c5c: 24c2ffff */ addiu $v0,$a2,-1 @@ -1497,7 +1497,7 @@ s32 menuhandlerSoloDifficulty(s32 operation, struct menuitem *item, union handle if (item->param3 == 0) { return true; } - if (item->param <= (u32)g_SoloSaveFile.autodifficulty) { + if (item->param <= (u32)g_GameFile.autodifficulty) { return true; } } @@ -1505,7 +1505,7 @@ s32 menuhandlerSoloDifficulty(s32 operation, struct menuitem *item, union handle if (item->param3 == 0) { return true; } - if (item->param <= (u32)g_SoloSaveFile.autodifficulty) { + if (item->param <= (u32)g_GameFile.autodifficulty) { return true; } #endif @@ -1533,7 +1533,7 @@ s32 menuhandlerPdMode(s32 operation, struct menuitem *item, union handlerdata *d menuPushDialog(&g_PdModeSettingsMenuDialog); break; case MENUOP_CHECKHIDDEN: - if (g_SoloSaveFile.besttimes[SOLOSTAGEINDEX_SKEDARRUINS][DIFF_PA] == 0) { + if (g_GameFile.besttimes[SOLOSTAGEINDEX_SKEDARRUINS][DIFF_PA] == 0) { return true; } } @@ -1543,7 +1543,7 @@ s32 menuhandlerPdMode(s32 operation, struct menuitem *item, union handlerdata *d char *soloMenuTextBestTime(struct menuitem *item) { - u16 time = g_SoloSaveFile.besttimes[g_MissionConfig.stageindex][item->param]; + u16 time = g_GameFile.besttimes[g_MissionConfig.stageindex][item->param]; s32 hours = time / 3600; if (time == 0) { @@ -1611,7 +1611,7 @@ s32 getMaxAiBuddies(void) s32 d; for (d = 0; d != 3; d++) { - if ((g_SoloSaveFile.coopcompletions[d] | 0xfffe0000) == 0xffffffff) { + if ((g_GameFile.coopcompletions[d] | 0xfffe0000) == 0xffffffff) { extra = d + 1; } } @@ -2126,7 +2126,7 @@ s32 getNumUnlockedSpecialStages(void) s32 i; for (i = 0; i < 3; i++) { - if (g_SoloSaveFile.besttimes[SOLOSTAGEINDEX_SKEDARRUINS][i]) { + if (g_GameFile.besttimes[SOLOSTAGEINDEX_SKEDARRUINS][i]) { next = i + 1; } } @@ -2150,7 +2150,7 @@ s32 func0f104720(s32 value) s32 d; for (d = 0; d != 3; d++) { - if (g_SoloSaveFile.besttimes[SOLOSTAGEINDEX_SKEDARRUINS][d]) { + if (g_GameFile.besttimes[SOLOSTAGEINDEX_SKEDARRUINS][d]) { next = d + 1; } } @@ -2264,13 +2264,13 @@ glabel var7f1b2dfc /* f1047e0: 8c2f2d9c */ lw $t7,%lo(var7f1b2d9c)($at) /* f1047e4: 01e00008 */ jr $t7 /* f1047e8: 00000000 */ nop -/* f1047ec: 3c0a800a */ lui $t2,%hi(g_SoloSaveFile) -/* f1047f0: 3c09800a */ lui $t1,%hi(g_SoloSaveFile) +/* f1047ec: 3c0a800a */ lui $t2,%hi(g_GameFile) +/* f1047f0: 3c09800a */ lui $t1,%hi(g_GameFile) /* f1047f4: 3c08800a */ lui $t0,%hi(g_MissionConfig) /* f1047f8: ae000000 */ sw $zero,0x0($s0) /* f1047fc: 2508dfe8 */ addiu $t0,$t0,%lo(g_MissionConfig) -/* f104800: 25292200 */ addiu $t1,$t1,%lo(g_SoloSaveFile) -/* f104804: 254a2200 */ addiu $t2,$t2,%lo(g_SoloSaveFile) +/* f104800: 25292200 */ addiu $t1,$t1,%lo(g_GameFile) +/* f104804: 254a2200 */ addiu $t2,$t2,%lo(g_GameFile) /* f104808: 00003025 */ or $a2,$zero,$zero /* f10480c: 240b0011 */ addiu $t3,$zero,0x11 /* f104810: 24070003 */ addiu $a3,$zero,0x3 @@ -2427,8 +2427,8 @@ glabel var7f1b2dfc /* f104a3c: 072202d2 */ bltzl $t9,.L0f105588 /* f104a40: 00001025 */ or $v0,$zero,$zero /* f104a44: 8d0f0000 */ lw $t7,0x0($t0) -/* f104a48: 3c09800a */ lui $t1,%hi(g_SoloSaveFile) -/* f104a4c: 25292200 */ addiu $t1,$t1,%lo(g_SoloSaveFile) +/* f104a48: 3c09800a */ lui $t1,%hi(g_GameFile) +/* f104a4c: 25292200 */ addiu $t1,$t1,%lo(g_GameFile) /* f104a50: 000fc640 */ sll $t8,$t7,0x19 /* f104a54: 070202cc */ bltzl $t8,.L0f105588 /* f104a58: 00001025 */ or $v0,$zero,$zero @@ -2459,8 +2459,8 @@ glabel var7f1b2dfc .L0f104abc: /* f104abc: 0fc411c8 */ jal func0f104720 /* f104ac0: afa40160 */ sw $a0,0x160($sp) -/* f104ac4: 3c09800a */ lui $t1,%hi(g_SoloSaveFile) -/* f104ac8: 25292200 */ addiu $t1,$t1,%lo(g_SoloSaveFile) +/* f104ac4: 3c09800a */ lui $t1,%hi(g_GameFile) +/* f104ac8: 25292200 */ addiu $t1,$t1,%lo(g_GameFile) /* f104acc: 9138000c */ lbu $t8,0xc($t1) /* f104ad0: 8fa30164 */ lw $v1,0x164($sp) /* f104ad4: 8fa40160 */ lw $a0,0x160($sp) @@ -2772,15 +2772,15 @@ glabel var7f1b2dfc /* f104f78: 8faf00ec */ lw $t7,0xec($sp) /* f104f7c: 3c098008 */ lui $t1,%hi(g_ScaleX) /* f104f80: 240e0001 */ addiu $t6,$zero,0x1 -/* f104f84: 3c06800a */ lui $a2,%hi(g_SoloSaveFile) -/* f104f88: 3c10800a */ lui $s0,%hi(g_SoloSaveFile+0xc) +/* f104f84: 3c06800a */ lui $a2,%hi(g_GameFile) +/* f104f88: 3c10800a */ lui $s0,%hi(g_GameFile+0xc) /* f104f8c: 3c0b0010 */ lui $t3,0x10 /* f104f90: 2529fac0 */ addiu $t1,$t1,%lo(g_ScaleX) /* f104f94: 3c0dfb00 */ lui $t5,0xfb00 /* f104f98: 241fff00 */ addiu $ra,$zero,-256 /* f104f9c: 356b01c0 */ ori $t3,$t3,0x1c0 -/* f104fa0: 2610220c */ addiu $s0,$s0,%lo(g_SoloSaveFile+0xc) -/* f104fa4: 24c62200 */ addiu $a2,$a2,%lo(g_SoloSaveFile) +/* f104fa0: 2610220c */ addiu $s0,$s0,%lo(g_GameFile+0xc) +/* f104fa4: 24c62200 */ addiu $a2,$a2,%lo(g_GameFile) /* f104fa8: 2405003f */ addiu $a1,$zero,0x3f /* f104fac: 2408003f */ addiu $t0,$zero,0x3f /* f104fb0: 01ee6004 */ sllv $t4,$t6,$t7 @@ -2962,8 +2962,8 @@ glabel var7f1b2dfc /* f105258: 01ffc825 */ or $t9,$t7,$ra /* f10525c: acf90004 */ sw $t9,0x4($a3) /* f105260: 8fb800ec */ lw $t8,0xec($sp) -/* f105264: 3c0f800a */ lui $t7,%hi(g_SoloSaveFile) -/* f105268: 25ef2200 */ addiu $t7,$t7,%lo(g_SoloSaveFile) +/* f105264: 3c0f800a */ lui $t7,%hi(g_GameFile) +/* f105268: 25ef2200 */ addiu $t7,$t7,%lo(g_GameFile) /* f10526c: 00187080 */ sll $t6,$t8,0x2 /* f105270: 01d87023 */ subu $t6,$t6,$t8 /* f105274: 000e7040 */ sll $t6,$t6,0x1 @@ -5607,7 +5607,7 @@ s32 getNumCompletedMissions(void) bool done = false; for (d = 0; d != 3; d++) { - if (g_SoloSaveFile.besttimes[s][d] || (g_SoloSaveFile.coopcompletions[d] & (1 << s))) { + if (g_GameFile.besttimes[s][d] || (g_GameFile.coopcompletions[d] & (1 << s))) { count++; done = true; break; diff --git a/src/game/game_107fb0.c b/src/game/game_107fb0.c index f727d77f1..69789909e 100644 --- a/src/game/game_107fb0.c +++ b/src/game/game_107fb0.c @@ -22,7 +22,7 @@ struct savelocation_2d8 g_FilemgrFileToCopy; struct savelocation_2d8 var800a21e8; struct savelocation_2d8 g_FilemgrFileToDelete; struct savelocation_2d8 var800a21f8; -struct savefile_solo g_SoloSaveFile; +struct gamefile g_GameFile; u32 var800a22bc; struct savelocation_2d8 g_FilemgrLoadedMainFile; @@ -750,7 +750,7 @@ bool fileSave(s32 arg0, bool arg1) var80075bd0[g_Menus[g_MpPlayerNum].unke42 - 6] = 1; break; case 100: - errno = func0f10fac8(arg0); + errno = gamefileLoad(arg0); break; case 101: errno = func0f18dac0( @@ -941,7 +941,7 @@ glabel var7f1ad424nb /* f104c28: 002b0821 */ addu $at,$at,$t3 /* f104c2c: 1000001b */ beqz $zero,.NB0f104c9c /* f104c30: ac2f7f58 */ sw $t7,0x7f58($at) -/* f104c34: 0fc427fe */ jal func0f10fac8 +/* f104c34: 0fc427fe */ jal gamefileLoad /* f104c38: 8fa40048 */ lw $a0,0x48($sp) /* f104c3c: 10000017 */ beqz $zero,.NB0f104c9c /* f104c40: 00403025 */ or $a2,$v0,$zero @@ -1276,7 +1276,7 @@ void filemgrGetRenameName(char *buffer) case 9: case 10: case 11: - strcpy(buffer, g_SoloSaveFile.name); + strcpy(buffer, g_GameFile.name); break; case 1: case 2: @@ -1319,7 +1319,7 @@ void filemgrSetRenameName(char *name) case 9: case 10: case 11: - strcpy(g_SoloSaveFile.name, name); + strcpy(g_GameFile.name, name); break; case 1: case 2: @@ -2551,10 +2551,10 @@ s32 filemgrAgentNameKeyboardMenuHandler(s32 operation, struct menuitem *item, un switch (operation) { case MENUOP_GETTEXT: - strcpy(name, g_SoloSaveFile.name); + strcpy(name, g_GameFile.name); break; case MENUOP_SETTEXT: - strcpy(g_SoloSaveFile.name, name); + strcpy(g_GameFile.name, name); break; case MENUOP_SET: filemgrPushSelectLocationDialog(0, 0); @@ -2646,7 +2646,7 @@ s32 filemgrChooseAgentListMenuHandler(s32 operation, struct menuitem *item, unio file = &g_FileLists[0]->files[data->list.unk04]; if (file) { - savefileGetOverview(file->unk06, name, &stage, &difficulty, &time); + gamefileGetOverview(file->unk06, name, &stage, &difficulty, &time); seconds = time % 60; time = time / 60; @@ -2756,7 +2756,7 @@ s32 filemgrChooseAgentListMenuHandler(s32 operation, struct menuitem *item, unio break; case MENUOP_SET: if (data->list.value == g_FileLists[0]->numfiles) { - savefileLoadDefaults(&g_SoloSaveFile); + gamefileLoadDefaults(&g_GameFile); menuPushDialog(&g_FilemgrEnterNameMenuDialog); } else { struct filelistfile *file = &g_FileLists[0]->files[data->list.value]; diff --git a/src/game/gamefile.c b/src/game/gamefile.c index 401ed0f1d..09e5f812f 100644 --- a/src/game/gamefile.c +++ b/src/game/gamefile.c @@ -21,39 +21,39 @@ #include "data.h" #include "types.h" -u8 *savefileGetFlags(void) +u8 *gamefileGetFlags(void) { - return g_SoloSaveFile.flags; + return g_GameFile.flags; } -void savefileSetFlag(u32 value) +void gamefileSetFlag(u32 value) { - pakSetBitflag(value, g_SoloSaveFile.flags, true); + pakSetBitflag(value, g_GameFile.flags, true); } -void savefileUnsetFlag(u32 value) +void gamefileUnsetFlag(u32 value) { - pakSetBitflag(value, g_SoloSaveFile.flags, false); + pakSetBitflag(value, g_GameFile.flags, false); } -u32 savefileHasFlag(u32 value) +u32 gamefileHasFlag(u32 value) { - return pakHasBitflag(value, g_SoloSaveFile.flags); + return pakHasBitflag(value, g_GameFile.flags); } -void savefilePrintFlags(void) +void gamefilePrintFlags(void) { s32 i; for (i = 0x23; i != 0x4f; i++) { osSyncPrintf("Flag %d = %s", i, - pakHasBitflag(i, g_SoloSaveFile.flags) ? "TRUE" : "FALSE"); + pakHasBitflag(i, g_GameFile.flags) ? "TRUE" : "FALSE"); } } #if VERSION >= VERSION_PAL_FINAL GLOBAL_ASM( -glabel savefileApplyOptions +glabel gamefileApplyOptions /* f10fb94: 3c03800a */ lui $v1,0x800a /* f10fb98: 2463a510 */ addiu $v1,$v1,-23280 /* f10fb9c: 8c620298 */ lw $v0,0x298($v1) @@ -406,46 +406,46 @@ glabel savefileApplyOptions /* f1100a8: 00000000 */ nop ); #else -void savefileApplyOptions(struct savefile_solo *file) +void gamefileApplyOptions(struct gamefile *file) { s32 player1 = (g_Vars.coopplayernum >= 0 || g_Vars.antiplayernum >= 0) ? 0 : 4; s32 player2 = (g_Vars.coopplayernum >= 0 || g_Vars.antiplayernum >= 0) ? 1 : 5; - optionsSetForwardPitch(player1, pakHasBitflag(SAVEFILEFLAG_P1_FORWARDPITCH, file->flags)); - optionsSetAutoAim(player1, pakHasBitflag(SAVEFILEFLAG_P1_AUTOAIM, file->flags)); - optionsSetAimControl(player1, pakHasBitflag(SAVEFILEFLAG_P1_AIMCONTROL, file->flags)); - optionsSetSightOnScreen(player1, pakHasBitflag(SAVEFILEFLAG_P1_SIGHTONSCREEN, file->flags)); - optionsSetLookAhead(player1, pakHasBitflag(SAVEFILEFLAG_P1_LOOKAHEAD, file->flags)); - optionsSetAmmoOnScreen(player1, pakHasBitflag(SAVEFILEFLAG_P1_AMMOONSCREEN, file->flags)); - optionsSetHeadRoll(player1, pakHasBitflag(SAVEFILEFLAG_P1_HEADROLL, file->flags)); - optionsSetShowGunFunction(player1, pakHasBitflag(SAVEFILEFLAG_P1_SHOWGUNFUNCTION, file->flags)); - optionsSetAlwaysShowTarget(player1, pakHasBitflag(SAVEFILEFLAG_P1_ALWAYSSHOWTARGET, file->flags)); - optionsSetShowZoomRange(player1, pakHasBitflag(SAVEFILEFLAG_P1_SHOWZOOMRANGE, file->flags)); - optionsSetShowMissionTime(player1, pakHasBitflag(SAVEFILEFLAG_P1_SHOWMISSIONTIME, file->flags)); - optionsSetPaintball(player1, pakHasBitflag(SAVEFILEFLAG_P1_PAINTBALL, file->flags)); + optionsSetForwardPitch(player1, pakHasBitflag(GAMEFILEFLAG_P1_FORWARDPITCH, file->flags)); + optionsSetAutoAim(player1, pakHasBitflag(GAMEFILEFLAG_P1_AUTOAIM, file->flags)); + optionsSetAimControl(player1, pakHasBitflag(GAMEFILEFLAG_P1_AIMCONTROL, file->flags)); + optionsSetSightOnScreen(player1, pakHasBitflag(GAMEFILEFLAG_P1_SIGHTONSCREEN, file->flags)); + optionsSetLookAhead(player1, pakHasBitflag(GAMEFILEFLAG_P1_LOOKAHEAD, file->flags)); + optionsSetAmmoOnScreen(player1, pakHasBitflag(GAMEFILEFLAG_P1_AMMOONSCREEN, file->flags)); + optionsSetHeadRoll(player1, pakHasBitflag(GAMEFILEFLAG_P1_HEADROLL, file->flags)); + optionsSetShowGunFunction(player1, pakHasBitflag(GAMEFILEFLAG_P1_SHOWGUNFUNCTION, file->flags)); + optionsSetAlwaysShowTarget(player1, pakHasBitflag(GAMEFILEFLAG_P1_ALWAYSSHOWTARGET, file->flags)); + optionsSetShowZoomRange(player1, pakHasBitflag(GAMEFILEFLAG_P1_SHOWZOOMRANGE, file->flags)); + optionsSetShowMissionTime(player1, pakHasBitflag(GAMEFILEFLAG_P1_SHOWMISSIONTIME, file->flags)); + optionsSetPaintball(player1, pakHasBitflag(GAMEFILEFLAG_P1_PAINTBALL, file->flags)); - optionsSetForwardPitch(player2, pakHasBitflag(SAVEFILEFLAG_P2_FORWARDPITCH, file->flags)); - optionsSetAutoAim(player2, pakHasBitflag(SAVEFILEFLAG_P2_AUTOAIM, file->flags)); - optionsSetAimControl(player2, pakHasBitflag(SAVEFILEFLAG_P2_AIMCONTROL, file->flags)); - optionsSetSightOnScreen(player2, pakHasBitflag(SAVEFILEFLAG_P2_SIGHTONSCREEN, file->flags)); - optionsSetLookAhead(player2, pakHasBitflag(SAVEFILEFLAG_P2_LOOKAHEAD, file->flags)); - optionsSetAmmoOnScreen(player2, pakHasBitflag(SAVEFILEFLAG_P2_AMMOONSCREEN, file->flags)); - optionsSetHeadRoll(player2, pakHasBitflag(SAVEFILEFLAG_P2_HEADROLL, file->flags)); - optionsSetShowGunFunction(player2, pakHasBitflag(SAVEFILEFLAG_P2_SHOWGUNFUNCTION, file->flags)); - optionsSetAlwaysShowTarget(player2, pakHasBitflag(SAVEFILEFLAG_P2_ALWAYSSHOWTARGET, file->flags)); - optionsSetShowZoomRange(player2, pakHasBitflag(SAVEFILEFLAG_P2_SHOWZOOMRANGE, file->flags)); - optionsSetShowMissionTime(player2, pakHasBitflag(SAVEFILEFLAG_P2_SHOWMISSIONTIME, file->flags)); - optionsSetPaintball(player2, pakHasBitflag(SAVEFILEFLAG_P2_PAINTBALL, file->flags)); + optionsSetForwardPitch(player2, pakHasBitflag(GAMEFILEFLAG_P2_FORWARDPITCH, file->flags)); + optionsSetAutoAim(player2, pakHasBitflag(GAMEFILEFLAG_P2_AUTOAIM, file->flags)); + optionsSetAimControl(player2, pakHasBitflag(GAMEFILEFLAG_P2_AIMCONTROL, file->flags)); + optionsSetSightOnScreen(player2, pakHasBitflag(GAMEFILEFLAG_P2_SIGHTONSCREEN, file->flags)); + optionsSetLookAhead(player2, pakHasBitflag(GAMEFILEFLAG_P2_LOOKAHEAD, file->flags)); + optionsSetAmmoOnScreen(player2, pakHasBitflag(GAMEFILEFLAG_P2_AMMOONSCREEN, file->flags)); + optionsSetHeadRoll(player2, pakHasBitflag(GAMEFILEFLAG_P2_HEADROLL, file->flags)); + optionsSetShowGunFunction(player2, pakHasBitflag(GAMEFILEFLAG_P2_SHOWGUNFUNCTION, file->flags)); + optionsSetAlwaysShowTarget(player2, pakHasBitflag(GAMEFILEFLAG_P2_ALWAYSSHOWTARGET, file->flags)); + optionsSetShowZoomRange(player2, pakHasBitflag(GAMEFILEFLAG_P2_SHOWZOOMRANGE, file->flags)); + optionsSetShowMissionTime(player2, pakHasBitflag(GAMEFILEFLAG_P2_SHOWMISSIONTIME, file->flags)); + optionsSetPaintball(player2, pakHasBitflag(GAMEFILEFLAG_P2_PAINTBALL, file->flags)); - optionsSetInGameSubtitles(pakHasBitflag(SAVEFILEFLAG_INGAMESUBTITLES, file->flags)); - optionsSetCutsceneSubtitles(pakHasBitflag(SAVEFILEFLAG_CUTSCENESUBTITLES, file->flags)); + optionsSetInGameSubtitles(pakHasBitflag(GAMEFILEFLAG_INGAMESUBTITLES, file->flags)); + optionsSetCutsceneSubtitles(pakHasBitflag(GAMEFILEFLAG_CUTSCENESUBTITLES, file->flags)); // Duplicate - optionsSetPaintball(player2, pakHasBitflag(SAVEFILEFLAG_P2_PAINTBALL, file->flags)); + optionsSetPaintball(player2, pakHasBitflag(GAMEFILEFLAG_P2_PAINTBALL, file->flags)); - g_Vars.langfilteron = pakHasBitflag(SAVEFILEFLAG_LANGFILTERON, file->flags); + g_Vars.langfilteron = pakHasBitflag(GAMEFILEFLAG_LANGFILTERON, file->flags); - if (pakHasBitflag(SAVEFILEFLAG_HIRES, file->flags)) { + if (pakHasBitflag(GAMEFILEFLAG_HIRES, file->flags)) { if (IS4MB()) { optionsSetHiRes(false); } else { @@ -459,22 +459,22 @@ void savefileApplyOptions(struct savefile_solo *file) optionsSetScreenSplit(SCREENSPLIT_HORIZONTAL); optionsSetScreenRatio(SCREENRATIO_NORMAL); } else { - optionsSetScreenSplit(pakHasBitflag(SAVEFILEFLAG_SCREENSPLIT, file->flags)); - optionsSetScreenRatio(pakHasBitflag(SAVEFILEFLAG_SCREENRATIO, file->flags)); + optionsSetScreenSplit(pakHasBitflag(GAMEFILEFLAG_SCREENSPLIT, file->flags)); + optionsSetScreenRatio(pakHasBitflag(GAMEFILEFLAG_SCREENRATIO, file->flags)); } - if (pakHasBitflag(SAVEFILEFLAG_SCREENSIZE_CINEMA, file->flags)) { + if (pakHasBitflag(GAMEFILEFLAG_SCREENSIZE_CINEMA, file->flags)) { optionsSetScreenSize(SCREENSIZE_CINEMA); - } else if (pakHasBitflag(SAVEFILEFLAG_SCREENSIZE_WIDE, file->flags)) { + } else if (pakHasBitflag(GAMEFILEFLAG_SCREENSIZE_WIDE, file->flags)) { optionsSetScreenSize(SCREENSIZE_WIDE); } else { optionsSetScreenSize(SCREENSIZE_FULL); } - g_Vars.pendingantiplayernum = pakHasBitflag(SAVEFILEFLAG_ANTIPLAYERNUM, file->flags) ? 1 : 0; - g_Vars.coopradaron = pakHasBitflag(SAVEFILEFLAG_COOPRADARON, file->flags) ? 1 : 0; - g_Vars.coopfriendlyfire = pakHasBitflag(SAVEFILEFLAG_COOPFRIENDLYFIRE, file->flags) ? 1 : 0; - g_Vars.antiradaron = pakHasBitflag(SAVEFILEFLAG_ANTIRADARON, file->flags) ? 1 : 0; + g_Vars.pendingantiplayernum = pakHasBitflag(GAMEFILEFLAG_ANTIPLAYERNUM, file->flags) ? 1 : 0; + g_Vars.coopradaron = pakHasBitflag(GAMEFILEFLAG_COOPRADARON, file->flags) ? 1 : 0; + g_Vars.coopfriendlyfire = pakHasBitflag(GAMEFILEFLAG_COOPFRIENDLYFIRE, file->flags) ? 1 : 0; + g_Vars.antiradaron = pakHasBitflag(GAMEFILEFLAG_ANTIRADARON, file->flags) ? 1 : 0; } #endif @@ -482,7 +482,7 @@ void savefileApplyOptions(struct savefile_solo *file) const char var7f1b4bd0pf[] = "Dark"; GLOBAL_ASM( -glabel savefileLoadDefaults +glabel gamefileLoadDefaults /* f1100ac: 27bdffd8 */ addiu $sp,$sp,-40 /* f1100b0: afb20020 */ sw $s2,0x20($sp) /* f1100b4: 3c12800a */ lui $s2,0x800a @@ -777,7 +777,7 @@ glabel savefileLoadDefaults /* f11050c: 24420001 */ addiu $v0,$v0,0x1 /* f110510: 1443fffe */ bne $v0,$v1,.PF0f11050c /* f110514: a04000b4 */ sb $zero,0xb4($v0) -/* f110518: 0fc43ee5 */ jal savefileApplyOptions +/* f110518: 0fc43ee5 */ jal gamefileApplyOptions /* f11051c: 8fa40028 */ lw $a0,0x28($sp) /* f110520: 8fbf0024 */ lw $ra,0x24($sp) /* f110524: 8fb00018 */ lw $s0,0x18($sp) @@ -787,7 +787,7 @@ glabel savefileLoadDefaults /* f110534: 27bd0028 */ addiu $sp,$sp,0x28 ); #else -void savefileLoadDefaults(struct savefile_solo *file) +void gamefileLoadDefaults(struct gamefile *file) { s32 player1 = (g_Vars.coopplayernum >= 0 || g_Vars.antiplayernum >= 0) ? 0 : 4; s32 player2 = (g_Vars.coopplayernum >= 0 || g_Vars.antiplayernum >= 0) ? 1 : 5; @@ -806,52 +806,52 @@ void savefileLoadDefaults(struct savefile_solo *file) optionsSetControlMode(player2, CONTROLMODE_11); pakClearAllBitflags(file->flags); - pakSetBitflag(SAVEFILEFLAG_P1_FORWARDPITCH, file->flags, false); - pakSetBitflag(SAVEFILEFLAG_P1_AUTOAIM, file->flags, true); - pakSetBitflag(SAVEFILEFLAG_P1_AIMCONTROL, file->flags, AIMCONTROL_HOLD); - pakSetBitflag(SAVEFILEFLAG_P1_SIGHTONSCREEN, file->flags, true); - pakSetBitflag(SAVEFILEFLAG_P1_LOOKAHEAD, file->flags, true); - pakSetBitflag(SAVEFILEFLAG_P1_AMMOONSCREEN, file->flags, true); - pakSetBitflag(SAVEFILEFLAG_P1_HEADROLL, file->flags, true); - pakSetBitflag(SAVEFILEFLAG_P1_SHOWGUNFUNCTION, file->flags, true); - pakSetBitflag(SAVEFILEFLAG_INGAMESUBTITLES, file->flags, true); - pakSetBitflag(SAVEFILEFLAG_P1_ALWAYSSHOWTARGET, file->flags, true); - pakSetBitflag(SAVEFILEFLAG_P1_SHOWZOOMRANGE, file->flags, true); - pakSetBitflag(SAVEFILEFLAG_P1_SHOWMISSIONTIME, file->flags, false); - pakSetBitflag(SAVEFILEFLAG_P1_PAINTBALL, file->flags, false); + pakSetBitflag(GAMEFILEFLAG_P1_FORWARDPITCH, file->flags, false); + pakSetBitflag(GAMEFILEFLAG_P1_AUTOAIM, file->flags, true); + pakSetBitflag(GAMEFILEFLAG_P1_AIMCONTROL, file->flags, AIMCONTROL_HOLD); + pakSetBitflag(GAMEFILEFLAG_P1_SIGHTONSCREEN, file->flags, true); + pakSetBitflag(GAMEFILEFLAG_P1_LOOKAHEAD, file->flags, true); + pakSetBitflag(GAMEFILEFLAG_P1_AMMOONSCREEN, file->flags, true); + pakSetBitflag(GAMEFILEFLAG_P1_HEADROLL, file->flags, true); + pakSetBitflag(GAMEFILEFLAG_P1_SHOWGUNFUNCTION, file->flags, true); + pakSetBitflag(GAMEFILEFLAG_INGAMESUBTITLES, file->flags, true); + pakSetBitflag(GAMEFILEFLAG_P1_ALWAYSSHOWTARGET, file->flags, true); + pakSetBitflag(GAMEFILEFLAG_P1_SHOWZOOMRANGE, file->flags, true); + pakSetBitflag(GAMEFILEFLAG_P1_SHOWMISSIONTIME, file->flags, false); + pakSetBitflag(GAMEFILEFLAG_P1_PAINTBALL, file->flags, false); - pakSetBitflag(SAVEFILEFLAG_P2_FORWARDPITCH, file->flags, false); - pakSetBitflag(SAVEFILEFLAG_P2_AUTOAIM, file->flags, true); - pakSetBitflag(SAVEFILEFLAG_P2_AIMCONTROL, file->flags, AIMCONTROL_HOLD); - pakSetBitflag(SAVEFILEFLAG_P2_SIGHTONSCREEN, file->flags, true); - pakSetBitflag(SAVEFILEFLAG_P2_LOOKAHEAD, file->flags, true); - pakSetBitflag(SAVEFILEFLAG_P2_AMMOONSCREEN, file->flags, true); - pakSetBitflag(SAVEFILEFLAG_P2_HEADROLL, file->flags, true); - pakSetBitflag(SAVEFILEFLAG_P2_SHOWGUNFUNCTION, file->flags, true); - pakSetBitflag(SAVEFILEFLAG_CUTSCENESUBTITLES, file->flags, false); - pakSetBitflag(SAVEFILEFLAG_P2_ALWAYSSHOWTARGET, file->flags, true); - pakSetBitflag(SAVEFILEFLAG_P2_SHOWZOOMRANGE, file->flags, true); - pakSetBitflag(SAVEFILEFLAG_P2_SHOWMISSIONTIME, file->flags, false); - pakSetBitflag(SAVEFILEFLAG_P2_PAINTBALL, file->flags, false); + pakSetBitflag(GAMEFILEFLAG_P2_FORWARDPITCH, file->flags, false); + pakSetBitflag(GAMEFILEFLAG_P2_AUTOAIM, file->flags, true); + pakSetBitflag(GAMEFILEFLAG_P2_AIMCONTROL, file->flags, AIMCONTROL_HOLD); + pakSetBitflag(GAMEFILEFLAG_P2_SIGHTONSCREEN, file->flags, true); + pakSetBitflag(GAMEFILEFLAG_P2_LOOKAHEAD, file->flags, true); + pakSetBitflag(GAMEFILEFLAG_P2_AMMOONSCREEN, file->flags, true); + pakSetBitflag(GAMEFILEFLAG_P2_HEADROLL, file->flags, true); + pakSetBitflag(GAMEFILEFLAG_P2_SHOWGUNFUNCTION, file->flags, true); + pakSetBitflag(GAMEFILEFLAG_CUTSCENESUBTITLES, file->flags, false); + pakSetBitflag(GAMEFILEFLAG_P2_ALWAYSSHOWTARGET, file->flags, true); + pakSetBitflag(GAMEFILEFLAG_P2_SHOWZOOMRANGE, file->flags, true); + pakSetBitflag(GAMEFILEFLAG_P2_SHOWMISSIONTIME, file->flags, false); + pakSetBitflag(GAMEFILEFLAG_P2_PAINTBALL, file->flags, false); - pakSetBitflag(SAVEFILEFLAG_SCREENSPLIT, file->flags, SCREENSPLIT_HORIZONTAL); - pakSetBitflag(SAVEFILEFLAG_SCREENRATIO, file->flags, SCREENRATIO_NORMAL); - pakSetBitflag(SAVEFILEFLAG_SCREENSIZE_CINEMA, file->flags, false); - pakSetBitflag(SAVEFILEFLAG_SCREENSIZE_WIDE, file->flags, false); + pakSetBitflag(GAMEFILEFLAG_SCREENSPLIT, file->flags, SCREENSPLIT_HORIZONTAL); + pakSetBitflag(GAMEFILEFLAG_SCREENRATIO, file->flags, SCREENRATIO_NORMAL); + pakSetBitflag(GAMEFILEFLAG_SCREENSIZE_CINEMA, file->flags, false); + pakSetBitflag(GAMEFILEFLAG_SCREENSIZE_WIDE, file->flags, false); - pakSetBitflag(SAVEFILEFLAG_HIRES, file->flags, false); - pakSetBitflag(SAVEFILEFLAG_LANGFILTERON, file->flags, false); + pakSetBitflag(GAMEFILEFLAG_HIRES, file->flags, false); + pakSetBitflag(GAMEFILEFLAG_LANGFILTERON, file->flags, false); #if VERSION >= VERSION_NTSC_1_0 - pakSetBitflag(SAVEFILEFLAG_41, file->flags, false); - pakSetBitflag(SAVEFILEFLAG_42, file->flags, false); - pakSetBitflag(SAVEFILEFLAG_43, file->flags, false); + pakSetBitflag(GAMEFILEFLAG_FOUNDTIMEDMINE, file->flags, false); + pakSetBitflag(GAMEFILEFLAG_FOUNDPROXYMINE, file->flags, false); + pakSetBitflag(GAMEFILEFLAG_FOUNDREMOTEMINE, file->flags, false); #endif - pakSetBitflag(SAVEFILEFLAG_COOPRADARON, file->flags, true); - pakSetBitflag(SAVEFILEFLAG_COOPFRIENDLYFIRE, file->flags, true); - pakSetBitflag(SAVEFILEFLAG_ANTIRADARON, file->flags, true); - pakSetBitflag(SAVEFILEFLAG_ANTIPLAYERNUM, file->flags, 1); + pakSetBitflag(GAMEFILEFLAG_COOPRADARON, file->flags, true); + pakSetBitflag(GAMEFILEFLAG_COOPFRIENDLYFIRE, file->flags, true); + pakSetBitflag(GAMEFILEFLAG_ANTIRADARON, file->flags, true); + pakSetBitflag(GAMEFILEFLAG_ANTIPLAYERNUM, file->flags, 1); file->unk1e = 0; @@ -869,19 +869,19 @@ void savefileLoadDefaults(struct savefile_solo *file) mpDetermineUnlockedFeatures(); - for (i = 0; i < ARRAYCOUNT(g_SoloSaveFile.coopcompletions); i++) { - g_SoloSaveFile.coopcompletions[i] = 0; + for (i = 0; i < ARRAYCOUNT(g_GameFile.coopcompletions); i++) { + g_GameFile.coopcompletions[i] = 0; } - for (i = 0; i < ARRAYCOUNT(g_SoloSaveFile.firingrangescores); i++) { - g_SoloSaveFile.firingrangescores[i] = 0; + for (i = 0; i < ARRAYCOUNT(g_GameFile.firingrangescores); i++) { + g_GameFile.firingrangescores[i] = 0; } - for (i = 0; i < ARRAYCOUNT(g_SoloSaveFile.weaponsfound); i++) { - g_SoloSaveFile.weaponsfound[i] = 0; + for (i = 0; i < ARRAYCOUNT(g_GameFile.weaponsfound); i++) { + g_GameFile.weaponsfound[i] = 0; } - savefileApplyOptions(file); + gamefileApplyOptions(file); } #endif @@ -911,528 +911,112 @@ const u32 var7f1b3a04[] = {0x00000000}; const char var7f1b3a08[] = "tc != NULL"; const char var7f1b3a14[] = "gamefile.c"; +s32 gamefileLoad(s32 arg0) +{ + s32 p1index; + s32 p2index; + u32 volume; + s32 i; + s32 j; + struct savebuffer buffer; + s32 tmp; + u32 stack; + + p1index = g_Vars.coopplayernum >= 0 || g_Vars.antiplayernum >= 0 ? 0 : 4; + p2index = g_Vars.coopplayernum >= 0 || g_Vars.antiplayernum >= 0 ? 1 : 5; + + if (arg0 >= 0) { + savebufferClear(&buffer); + tmp = func0f116800(arg0, g_FilemgrLoadedMainFile.unk00, buffer.bytes, 0); + var800a21f8.unk00 = tmp; + + if (tmp == 0) { + cheatsDisableAll(); + savebufferReadString(&buffer, g_GameFile.name, 0); + g_GameFile.thumbnail = savebufferReadBits(&buffer, 5); + g_GameFile.totaltime = savebufferReadBits(&buffer, 32); + g_GameFile.autodifficulty = savebufferReadBits(&buffer, 2); + g_GameFile.autostageindex = savebufferReadBits(&buffer, 5); + + volume = savebufferReadBits(&buffer, 6) * 4; + + if (volume >= 252) { + volume = 255; + } + + sndSetSfxVolume((volume & 0x1ff) * 128); + + volume = savebufferReadBits(&buffer, 6) * 4; + + if (volume >= 252) { + volume = 255; + } + + optionsSetMusicVolume((volume & 0x1ff) * 128); + + sndSetSoundMode(savebufferReadBits(&buffer, 2)); + optionsSetControlMode(p1index, savebufferReadBits(&buffer, 3)); + optionsSetControlMode(p2index, savebufferReadBits(&buffer, 3)); + + for (i = 0; i < 10; i++) { + g_GameFile.flags[i] = savebufferReadBits(&buffer, 8); + } + + g_GameFile.unk1e = savebufferReadBits(&buffer, 16); + + for (i = 0; i < NUM_SOLOSTAGES; i++) { + for (j = 0; j < 3; j++) { + g_GameFile.besttimes[i][j] = savebufferReadBits(&buffer, 12); + } + } + + for (i = 0; i < 30; i++) { + for (j = 1; j < 5; j++) { + mpSetChallengeCompletedByAnyPlayerWithNumPlayers(i, j, savebufferReadBits(&buffer, 1)); + } + } + + mpDetermineUnlockedFeatures(); + + for (i = 0; i < 3; i++) { + g_GameFile.coopcompletions[i] = savebufferReadBits(&buffer, 21); + } + + for (i = 0; i < 9; i++) { + s32 numbits = i == 8 ? 2 : 8; + g_GameFile.firingrangescores[i] = savebufferReadBits(&buffer, numbits); + } + + for (i = 0; i < 4; i++) { + g_GameFile.weaponsfound[i] = savebufferReadBits(&buffer, 8); + } + #if VERSION >= VERSION_NTSC_1_0 -GLOBAL_ASM( -glabel func0f10fac8 -/* f10fac8: 27bdfec0 */ addiu $sp,$sp,-320 -/* f10facc: 3c03800a */ lui $v1,%hi(g_Vars) -/* f10fad0: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars) -/* f10fad4: 8c620298 */ lw $v0,0x298($v1) -/* f10fad8: afb00018 */ sw $s0,0x18($sp) -/* f10fadc: 00808025 */ or $s0,$a0,$zero -/* f10fae0: afbf002c */ sw $ra,0x2c($sp) -/* f10fae4: afb40028 */ sw $s4,0x28($sp) -/* f10fae8: afb30024 */ sw $s3,0x24($sp) -/* f10faec: afb20020 */ sw $s2,0x20($sp) -/* f10faf0: 04410005 */ bgez $v0,.L0f10fb08 -/* f10faf4: afb1001c */ sw $s1,0x1c($sp) -/* f10faf8: 8c6e029c */ lw $t6,0x29c($v1) -/* f10fafc: 24110004 */ addiu $s1,$zero,0x4 -/* f10fb00: 05c00003 */ bltz $t6,.L0f10fb10 -/* f10fb04: 00000000 */ nop -.L0f10fb08: -/* f10fb08: 10000001 */ b .L0f10fb10 -/* f10fb0c: 00008825 */ or $s1,$zero,$zero -.L0f10fb10: -/* f10fb10: 04410005 */ bgez $v0,.L0f10fb28 -/* f10fb14: 27b4004c */ addiu $s4,$sp,0x4c -/* f10fb18: 8c6f029c */ lw $t7,0x29c($v1) -/* f10fb1c: 24120005 */ addiu $s2,$zero,0x5 -/* f10fb20: 05e00003 */ bltz $t7,.L0f10fb30 -/* f10fb24: 00000000 */ nop -.L0f10fb28: -/* f10fb28: 10000001 */ b .L0f10fb30 -/* f10fb2c: 24120001 */ addiu $s2,$zero,0x1 -.L0f10fb30: -/* f10fb30: 060000d6 */ bltz $s0,.L0f10fe8c -/* f10fb34: 2402ffff */ addiu $v0,$zero,-1 -/* f10fb38: 0fc35517 */ jal savebufferClear -/* f10fb3c: 02802025 */ or $a0,$s4,$zero -/* f10fb40: 00102600 */ sll $a0,$s0,0x18 -/* f10fb44: 0004c603 */ sra $t8,$a0,0x18 -/* f10fb48: 3c05800a */ lui $a1,%hi(g_FilemgrLoadedMainFile) -/* f10fb4c: 8ca522c0 */ lw $a1,%lo(g_FilemgrLoadedMainFile)($a1) -/* f10fb50: 03002025 */ or $a0,$t8,$zero -/* f10fb54: 27a60050 */ addiu $a2,$sp,0x50 -/* f10fb58: 0fc45a00 */ jal func0f116800 -/* f10fb5c: 00003825 */ or $a3,$zero,$zero -/* f10fb60: 3c01800a */ lui $at,%hi(var800a21f8) -/* f10fb64: 144000c7 */ bnez $v0,.L0f10fe84 -/* f10fb68: ac2221f8 */ sw $v0,%lo(var800a21f8)($at) -/* f10fb6c: 0fc41d3b */ jal cheatsDisableAll -/* f10fb70: 00000000 */ nop -/* f10fb74: 3c05800a */ lui $a1,%hi(g_SoloSaveFile) -/* f10fb78: 24a52200 */ addiu $a1,$a1,%lo(g_SoloSaveFile) -/* f10fb7c: 02802025 */ or $a0,$s4,$zero -/* f10fb80: 0fc35539 */ jal savebufferReadString -/* f10fb84: 00003025 */ or $a2,$zero,$zero -/* f10fb88: 02802025 */ or $a0,$s4,$zero -/* f10fb8c: 0fc354fe */ jal savebufferReadBits -/* f10fb90: 24050005 */ addiu $a1,$zero,0x5 -/* f10fb94: 3c03800a */ lui $v1,%hi(g_SoloSaveFile) -/* f10fb98: 24632200 */ addiu $v1,$v1,%lo(g_SoloSaveFile) -/* f10fb9c: 906a000b */ lbu $t2,0xb($v1) -/* f10fba0: 000248c0 */ sll $t1,$v0,0x3 -/* f10fba4: 02802025 */ or $a0,$s4,$zero -/* f10fba8: 314bff07 */ andi $t3,$t2,0xff07 -/* f10fbac: 012b6025 */ or $t4,$t1,$t3 -/* f10fbb0: a06c000b */ sb $t4,0xb($v1) -/* f10fbb4: 0fc354fe */ jal savebufferReadBits -/* f10fbb8: 24050020 */ addiu $a1,$zero,0x20 -/* f10fbbc: 3c01800a */ lui $at,%hi(g_SoloSaveFile+0x10) -/* f10fbc0: ac222210 */ sw $v0,%lo(g_SoloSaveFile+0x10)($at) -/* f10fbc4: 02802025 */ or $a0,$s4,$zero -/* f10fbc8: 0fc354fe */ jal savebufferReadBits -/* f10fbcc: 24050002 */ addiu $a1,$zero,0x2 -/* f10fbd0: 3c03800a */ lui $v1,%hi(g_SoloSaveFile) -/* f10fbd4: 24632200 */ addiu $v1,$v1,%lo(g_SoloSaveFile) -/* f10fbd8: 906f000b */ lbu $t7,0xb($v1) -/* f10fbdc: 304e0007 */ andi $t6,$v0,0x7 -/* f10fbe0: 02802025 */ or $a0,$s4,$zero -/* f10fbe4: 31f8fff8 */ andi $t8,$t7,0xfff8 -/* f10fbe8: 01d8c825 */ or $t9,$t6,$t8 -/* f10fbec: a079000b */ sb $t9,0xb($v1) -/* f10fbf0: 0fc354fe */ jal savebufferReadBits -/* f10fbf4: 24050005 */ addiu $a1,$zero,0x5 -/* f10fbf8: 3c01800a */ lui $at,%hi(g_SoloSaveFile+0xc) -/* f10fbfc: a022220c */ sb $v0,%lo(g_SoloSaveFile+0xc)($at) -/* f10fc00: 02802025 */ or $a0,$s4,$zero -/* f10fc04: 0fc354fe */ jal savebufferReadBits -/* f10fc08: 24050006 */ addiu $a1,$zero,0x6 -/* f10fc0c: 00022880 */ sll $a1,$v0,0x2 -/* f10fc10: 2ca100fc */ sltiu $at,$a1,0xfc -/* f10fc14: 54200003 */ bnezl $at,.L0f10fc24 -/* f10fc18: 00a02025 */ or $a0,$a1,$zero -/* f10fc1c: 240500ff */ addiu $a1,$zero,0xff -/* f10fc20: 00a02025 */ or $a0,$a1,$zero -.L0f10fc24: -/* f10fc24: 000441c0 */ sll $t0,$a0,0x7 -/* f10fc28: 0c003a87 */ jal sndSetSfxVolume -/* f10fc2c: 3104ffff */ andi $a0,$t0,0xffff -/* f10fc30: 02802025 */ or $a0,$s4,$zero -/* f10fc34: 0fc354fe */ jal savebufferReadBits -/* f10fc38: 24050006 */ addiu $a1,$zero,0x6 -/* f10fc3c: 00022880 */ sll $a1,$v0,0x2 -/* f10fc40: 2ca100fc */ sltiu $at,$a1,0xfc -/* f10fc44: 54200003 */ bnezl $at,.L0f10fc54 -/* f10fc48: 00a02025 */ or $a0,$a1,$zero -/* f10fc4c: 240500ff */ addiu $a1,$zero,0xff -/* f10fc50: 00a02025 */ or $a0,$a1,$zero -.L0f10fc54: -/* f10fc54: 000449c0 */ sll $t1,$a0,0x7 -/* f10fc58: 0fc54bdc */ jal optionsSetMusicVolume -/* f10fc5c: 3124ffff */ andi $a0,$t1,0xffff -/* f10fc60: 02802025 */ or $a0,$s4,$zero -/* f10fc64: 0fc354fe */ jal savebufferReadBits -/* f10fc68: 24050002 */ addiu $a1,$zero,0x2 -/* f10fc6c: 0c003ce3 */ jal sndSetSoundMode -/* f10fc70: 00402025 */ or $a0,$v0,$zero -/* f10fc74: 02802025 */ or $a0,$s4,$zero -/* f10fc78: 0fc354fe */ jal savebufferReadBits -/* f10fc7c: 24050003 */ addiu $a1,$zero,0x3 -/* f10fc80: 02202025 */ or $a0,$s1,$zero -/* f10fc84: 0fc549cb */ jal optionsSetControlMode -/* f10fc88: 00402825 */ or $a1,$v0,$zero -/* f10fc8c: 02802025 */ or $a0,$s4,$zero -/* f10fc90: 0fc354fe */ jal savebufferReadBits -/* f10fc94: 24050003 */ addiu $a1,$zero,0x3 -/* f10fc98: 02402025 */ or $a0,$s2,$zero -/* f10fc9c: 0fc549cb */ jal optionsSetControlMode -/* f10fca0: 00402825 */ or $a1,$v0,$zero -/* f10fca4: 3c10800a */ lui $s0,%hi(g_SoloSaveFile) -/* f10fca8: 3c11800a */ lui $s1,%hi(g_SoloSaveFile+0xa) -/* f10fcac: 2631220a */ addiu $s1,$s1,%lo(g_SoloSaveFile+0xa) -/* f10fcb0: 26102200 */ addiu $s0,$s0,%lo(g_SoloSaveFile) -.L0f10fcb4: -/* f10fcb4: 02802025 */ or $a0,$s4,$zero -/* f10fcb8: 0fc354fe */ jal savebufferReadBits -/* f10fcbc: 24050008 */ addiu $a1,$zero,0x8 -/* f10fcc0: 26100001 */ addiu $s0,$s0,0x1 -/* f10fcc4: 0211082b */ sltu $at,$s0,$s1 -/* f10fcc8: 1420fffa */ bnez $at,.L0f10fcb4 -/* f10fccc: a2020013 */ sb $v0,0x13($s0) -/* f10fcd0: 02802025 */ or $a0,$s4,$zero -/* f10fcd4: 0fc354fe */ jal savebufferReadBits -/* f10fcd8: 24050010 */ addiu $a1,$zero,0x10 -/* f10fcdc: 3c01800a */ lui $at,%hi(g_SoloSaveFile+0x1e) -/* f10fce0: 3c13800a */ lui $s3,%hi(g_SoloSaveFile) -/* f10fce4: a422221e */ sh $v0,%lo(g_SoloSaveFile+0x1e)($at) -/* f10fce8: 26732200 */ addiu $s3,$s3,%lo(g_SoloSaveFile) -/* f10fcec: 24120003 */ addiu $s2,$zero,0x3 -/* f10fcf0: 00008025 */ or $s0,$zero,$zero -.L0f10fcf4: -/* f10fcf4: 02608825 */ or $s1,$s3,$zero -.L0f10fcf8: -/* f10fcf8: 02802025 */ or $a0,$s4,$zero -/* f10fcfc: 0fc354fe */ jal savebufferReadBits -/* f10fd00: 2405000c */ addiu $a1,$zero,0xc -/* f10fd04: 26100001 */ addiu $s0,$s0,0x1 -/* f10fd08: 26310002 */ addiu $s1,$s1,0x2 -/* f10fd0c: 1612fffa */ bne $s0,$s2,.L0f10fcf8 -/* f10fd10: a622001e */ sh $v0,0x1e($s1) -/* f10fd14: 3c0c800a */ lui $t4,%hi(g_SoloSaveFile+0x7e) -/* f10fd18: 258c227e */ addiu $t4,$t4,%lo(g_SoloSaveFile+0x7e) -/* f10fd1c: 26730006 */ addiu $s3,$s3,0x6 -/* f10fd20: 026c082b */ sltu $at,$s3,$t4 -/* f10fd24: 5420fff3 */ bnezl $at,.L0f10fcf4 -/* f10fd28: 00008025 */ or $s0,$zero,$zero -/* f10fd2c: 00008825 */ or $s1,$zero,$zero -/* f10fd30: 24120005 */ addiu $s2,$zero,0x5 -/* f10fd34: 24100001 */ addiu $s0,$zero,0x1 -.L0f10fd38: -/* f10fd38: 02802025 */ or $a0,$s4,$zero -.L0f10fd3c: -/* f10fd3c: 0fc354fe */ jal savebufferReadBits -/* f10fd40: 24050001 */ addiu $a1,$zero,0x1 -/* f10fd44: 02202025 */ or $a0,$s1,$zero -/* f10fd48: 02002825 */ or $a1,$s0,$zero -/* f10fd4c: 0fc67103 */ jal mpSetChallengeCompletedByAnyPlayerWithNumPlayers -/* f10fd50: 00403025 */ or $a2,$v0,$zero -/* f10fd54: 26100001 */ addiu $s0,$s0,0x1 -/* f10fd58: 5612fff8 */ bnel $s0,$s2,.L0f10fd3c -/* f10fd5c: 02802025 */ or $a0,$s4,$zero -/* f10fd60: 26310001 */ addiu $s1,$s1,0x1 -/* f10fd64: 2a21001e */ slti $at,$s1,0x1e -/* f10fd68: 5420fff3 */ bnezl $at,.L0f10fd38 -/* f10fd6c: 24100001 */ addiu $s0,$zero,0x1 -/* f10fd70: 0fc66bf7 */ jal mpDetermineUnlockedFeatures -/* f10fd74: 00000000 */ nop -/* f10fd78: 3c10800a */ lui $s0,%hi(g_SoloSaveFile) -/* f10fd7c: 3c11800a */ lui $s1,%hi(g_SoloSaveFile+0xc) -/* f10fd80: 2631220c */ addiu $s1,$s1,%lo(g_SoloSaveFile+0xc) -/* f10fd84: 26102200 */ addiu $s0,$s0,%lo(g_SoloSaveFile) -.L0f10fd88: -/* f10fd88: 02802025 */ or $a0,$s4,$zero -/* f10fd8c: 0fc354fe */ jal savebufferReadBits -/* f10fd90: 24050015 */ addiu $a1,$zero,0x15 -/* f10fd94: 26100004 */ addiu $s0,$s0,0x4 -/* f10fd98: 0211082b */ sltu $at,$s0,$s1 -/* f10fd9c: 1420fffa */ bnez $at,.L0f10fd88 -/* f10fda0: ae02009c */ sw $v0,0x9c($s0) -/* f10fda4: 3c10800a */ lui $s0,%hi(g_SoloSaveFile) -/* f10fda8: 3c12800a */ lui $s2,%hi(g_SoloSaveFile+0x9) -/* f10fdac: 3c11800a */ lui $s1,%hi(g_SoloSaveFile+0x8) -/* f10fdb0: 26312208 */ addiu $s1,$s1,%lo(g_SoloSaveFile+0x8) -/* f10fdb4: 26522209 */ addiu $s2,$s2,%lo(g_SoloSaveFile+0x9) -/* f10fdb8: 26102200 */ addiu $s0,$s0,%lo(g_SoloSaveFile) -.L0f10fdbc: -/* f10fdbc: 16110003 */ bne $s0,$s1,.L0f10fdcc -/* f10fdc0: 24050008 */ addiu $a1,$zero,0x8 -/* f10fdc4: 10000001 */ b .L0f10fdcc -/* f10fdc8: 24050002 */ addiu $a1,$zero,0x2 -.L0f10fdcc: -/* f10fdcc: 0fc354fe */ jal savebufferReadBits -/* f10fdd0: 02802025 */ or $a0,$s4,$zero -/* f10fdd4: 26100001 */ addiu $s0,$s0,0x1 -/* f10fdd8: 0212082b */ sltu $at,$s0,$s2 -/* f10fddc: 1420fff7 */ bnez $at,.L0f10fdbc -/* f10fde0: a20200ab */ sb $v0,0xab($s0) -/* f10fde4: 3c10800a */ lui $s0,%hi(g_SoloSaveFile) -/* f10fde8: 3c11800a */ lui $s1,%hi(g_SoloSaveFile+0x4) -/* f10fdec: 26312204 */ addiu $s1,$s1,%lo(g_SoloSaveFile+0x4) -/* f10fdf0: 26102200 */ addiu $s0,$s0,%lo(g_SoloSaveFile) -.L0f10fdf4: -/* f10fdf4: 02802025 */ or $a0,$s4,$zero -/* f10fdf8: 0fc354fe */ jal savebufferReadBits -/* f10fdfc: 24050008 */ addiu $a1,$zero,0x8 -/* f10fe00: 26100001 */ addiu $s0,$s0,0x1 -/* f10fe04: 1611fffb */ bne $s0,$s1,.L0f10fdf4 -/* f10fe08: a20200b4 */ sb $v0,0xb4($s0) -/* f10fe0c: 3c10800a */ lui $s0,%hi(g_SoloSaveFile+0x14) -/* f10fe10: 26102214 */ addiu $s0,$s0,%lo(g_SoloSaveFile+0x14) -/* f10fe14: 02002825 */ or $a1,$s0,$zero -/* f10fe18: 0fc47961 */ jal pakHasBitflag -/* f10fe1c: 24040041 */ addiu $a0,$zero,0x41 -/* f10fe20: 50400004 */ beqzl $v0,.L0f10fe34 -/* f10fe24: 24040042 */ addiu $a0,$zero,0x42 -/* f10fe28: 0fc672ce */ jal frSetWeaponFound -/* f10fe2c: 24040020 */ addiu $a0,$zero,0x20 -/* f10fe30: 24040042 */ addiu $a0,$zero,0x42 -.L0f10fe34: -/* f10fe34: 0fc47961 */ jal pakHasBitflag -/* f10fe38: 02002825 */ or $a1,$s0,$zero -/* f10fe3c: 50400004 */ beqzl $v0,.L0f10fe50 -/* f10fe40: 24040043 */ addiu $a0,$zero,0x43 -/* f10fe44: 0fc672ce */ jal frSetWeaponFound -/* f10fe48: 24040021 */ addiu $a0,$zero,0x21 -/* f10fe4c: 24040043 */ addiu $a0,$zero,0x43 -.L0f10fe50: -/* f10fe50: 0fc47961 */ jal pakHasBitflag -/* f10fe54: 02002825 */ or $a1,$s0,$zero -/* f10fe58: 10400003 */ beqz $v0,.L0f10fe68 -/* f10fe5c: 00000000 */ nop -/* f10fe60: 0fc672ce */ jal frSetWeaponFound -/* f10fe64: 24040022 */ addiu $a0,$zero,0x22 -.L0f10fe68: -/* f10fe68: 0fc35531 */ jal func0f0d54c4 -/* f10fe6c: 02802025 */ or $a0,$s4,$zero -/* f10fe70: 3c04800a */ lui $a0,%hi(g_SoloSaveFile) -/* f10fe74: 0fc43c81 */ jal savefileApplyOptions -/* f10fe78: 24842200 */ addiu $a0,$a0,%lo(g_SoloSaveFile) -/* f10fe7c: 10000003 */ b .L0f10fe8c -/* f10fe80: 00001025 */ or $v0,$zero,$zero -.L0f10fe84: -/* f10fe84: 10000001 */ b .L0f10fe8c -/* f10fe88: 2402ffff */ addiu $v0,$zero,-1 -.L0f10fe8c: -/* f10fe8c: 8fbf002c */ lw $ra,0x2c($sp) -/* f10fe90: 8fb00018 */ lw $s0,0x18($sp) -/* f10fe94: 8fb1001c */ lw $s1,0x1c($sp) -/* f10fe98: 8fb20020 */ lw $s2,0x20($sp) -/* f10fe9c: 8fb30024 */ lw $s3,0x24($sp) -/* f10fea0: 8fb40028 */ lw $s4,0x28($sp) -/* f10fea4: 03e00008 */ jr $ra -/* f10fea8: 27bd0140 */ addiu $sp,$sp,0x140 -); -#else -GLOBAL_ASM( -glabel func0f10fac8 -/* f109ff8: 27bdfec0 */ addiu $sp,$sp,-320 -/* f109ffc: 3c03800a */ lui $v1,0x800a -/* f10a000: 2463e6c0 */ addiu $v1,$v1,-6464 -/* f10a004: 8c620298 */ lw $v0,0x298($v1) -/* f10a008: afb00018 */ sw $s0,0x18($sp) -/* f10a00c: 00808025 */ or $s0,$a0,$zero -/* f10a010: afbf002c */ sw $ra,0x2c($sp) -/* f10a014: afb40028 */ sw $s4,0x28($sp) -/* f10a018: afb30024 */ sw $s3,0x24($sp) -/* f10a01c: afb20020 */ sw $s2,0x20($sp) -/* f10a020: 04410005 */ bgez $v0,.NB0f10a038 -/* f10a024: afb1001c */ sw $s1,0x1c($sp) -/* f10a028: 8c6e029c */ lw $t6,0x29c($v1) -/* f10a02c: 24110004 */ addiu $s1,$zero,0x4 -/* f10a030: 05c00003 */ bltz $t6,.NB0f10a040 -/* f10a034: 00000000 */ sll $zero,$zero,0x0 -.NB0f10a038: -/* f10a038: 10000001 */ beqz $zero,.NB0f10a040 -/* f10a03c: 00008825 */ or $s1,$zero,$zero -.NB0f10a040: -/* f10a040: 04410005 */ bgez $v0,.NB0f10a058 -/* f10a044: 27b3004c */ addiu $s3,$sp,0x4c -/* f10a048: 8c6f029c */ lw $t7,0x29c($v1) -/* f10a04c: 24120005 */ addiu $s2,$zero,0x5 -/* f10a050: 05e00003 */ bltz $t7,.NB0f10a060 -/* f10a054: 00000000 */ sll $zero,$zero,0x0 -.NB0f10a058: -/* f10a058: 10000001 */ beqz $zero,.NB0f10a060 -/* f10a05c: 24120001 */ addiu $s2,$zero,0x1 -.NB0f10a060: -/* f10a060: 060000bf */ bltz $s0,.NB0f10a360 -/* f10a064: 2402ffff */ addiu $v0,$zero,-1 -/* f10a068: 0fc34ad1 */ jal savebufferClear -/* f10a06c: 02602025 */ or $a0,$s3,$zero -/* f10a070: 00102600 */ sll $a0,$s0,0x18 -/* f10a074: 0004c603 */ sra $t8,$a0,0x18 -/* f10a078: 3c05800a */ lui $a1,0x800a -/* f10a07c: 8ca567b0 */ lw $a1,0x67b0($a1) -/* f10a080: 03002025 */ or $a0,$t8,$zero -/* f10a084: 27a60050 */ addiu $a2,$sp,0x50 -/* f10a088: 0fc442f1 */ jal func0f116800 -/* f10a08c: 00003825 */ or $a3,$zero,$zero -/* f10a090: 3c01800a */ lui $at,0x800a -/* f10a094: 144000b0 */ bnez $v0,.NB0f10a358 -/* f10a098: ac2266e8 */ sw $v0,0x66e8($at) -/* f10a09c: 0fc40c5b */ jal cheatsDisableAll -/* f10a0a0: 00000000 */ sll $zero,$zero,0x0 -/* f10a0a4: 3c05800a */ lui $a1,0x800a -/* f10a0a8: 24a566f0 */ addiu $a1,$a1,0x66f0 -/* f10a0ac: 02602025 */ or $a0,$s3,$zero -/* f10a0b0: 0fc34af3 */ jal savebufferReadString -/* f10a0b4: 00003025 */ or $a2,$zero,$zero -/* f10a0b8: 02602025 */ or $a0,$s3,$zero -/* f10a0bc: 0fc34ab8 */ jal savebufferReadBits -/* f10a0c0: 24050005 */ addiu $a1,$zero,0x5 -/* f10a0c4: 3c03800a */ lui $v1,0x800a -/* f10a0c8: 246366f0 */ addiu $v1,$v1,0x66f0 -/* f10a0cc: 906a000b */ lbu $t2,0xb($v1) -/* f10a0d0: 000248c0 */ sll $t1,$v0,0x3 -/* f10a0d4: 02602025 */ or $a0,$s3,$zero -/* f10a0d8: 314bff07 */ andi $t3,$t2,0xff07 -/* f10a0dc: 012b6025 */ or $t4,$t1,$t3 -/* f10a0e0: a06c000b */ sb $t4,0xb($v1) -/* f10a0e4: 0fc34ab8 */ jal savebufferReadBits -/* f10a0e8: 24050020 */ addiu $a1,$zero,0x20 -/* f10a0ec: 3c01800a */ lui $at,0x800a -/* f10a0f0: ac226700 */ sw $v0,0x6700($at) -/* f10a0f4: 02602025 */ or $a0,$s3,$zero -/* f10a0f8: 0fc34ab8 */ jal savebufferReadBits -/* f10a0fc: 24050002 */ addiu $a1,$zero,0x2 -/* f10a100: 3c03800a */ lui $v1,0x800a -/* f10a104: 246366f0 */ addiu $v1,$v1,0x66f0 -/* f10a108: 906f000b */ lbu $t7,0xb($v1) -/* f10a10c: 304e0007 */ andi $t6,$v0,0x7 -/* f10a110: 02602025 */ or $a0,$s3,$zero -/* f10a114: 31f8fff8 */ andi $t8,$t7,0xfff8 -/* f10a118: 01d8c825 */ or $t9,$t6,$t8 -/* f10a11c: a079000b */ sb $t9,0xb($v1) -/* f10a120: 0fc34ab8 */ jal savebufferReadBits -/* f10a124: 24050005 */ addiu $a1,$zero,0x5 -/* f10a128: 3c01800a */ lui $at,0x800a -/* f10a12c: a02266fc */ sb $v0,0x66fc($at) -/* f10a130: 02602025 */ or $a0,$s3,$zero -/* f10a134: 0fc34ab8 */ jal savebufferReadBits -/* f10a138: 24050006 */ addiu $a1,$zero,0x6 -/* f10a13c: 00022880 */ sll $a1,$v0,0x2 -/* f10a140: 2ca100fc */ sltiu $at,$a1,0xfc -/* f10a144: 54200003 */ bnezl $at,.NB0f10a154 -/* f10a148: 00a02025 */ or $a0,$a1,$zero -/* f10a14c: 240500ff */ addiu $a1,$zero,0xff -/* f10a150: 00a02025 */ or $a0,$a1,$zero -.NB0f10a154: -/* f10a154: 000441c0 */ sll $t0,$a0,0x7 -/* f10a158: 0c003c77 */ jal sndSetSfxVolume -/* f10a15c: 3104ffff */ andi $a0,$t0,0xffff -/* f10a160: 02602025 */ or $a0,$s3,$zero -/* f10a164: 0fc34ab8 */ jal savebufferReadBits -/* f10a168: 24050006 */ addiu $a1,$zero,0x6 -/* f10a16c: 00022880 */ sll $a1,$v0,0x2 -/* f10a170: 2ca100fc */ sltiu $at,$a1,0xfc -/* f10a174: 54200003 */ bnezl $at,.NB0f10a184 -/* f10a178: 00a02025 */ or $a0,$a1,$zero -/* f10a17c: 240500ff */ addiu $a1,$zero,0xff -/* f10a180: 00a02025 */ or $a0,$a1,$zero -.NB0f10a184: -/* f10a184: 000449c0 */ sll $t1,$a0,0x7 -/* f10a188: 0fc5359a */ jal optionsSetMusicVolume -/* f10a18c: 3124ffff */ andi $a0,$t1,0xffff -/* f10a190: 02602025 */ or $a0,$s3,$zero -/* f10a194: 0fc34ab8 */ jal savebufferReadBits -/* f10a198: 24050002 */ addiu $a1,$zero,0x2 -/* f10a19c: 0c003e02 */ jal sndSetSoundMode -/* f10a1a0: 00402025 */ or $a0,$v0,$zero -/* f10a1a4: 02602025 */ or $a0,$s3,$zero -/* f10a1a8: 0fc34ab8 */ jal savebufferReadBits -/* f10a1ac: 24050003 */ addiu $a1,$zero,0x3 -/* f10a1b0: 02202025 */ or $a0,$s1,$zero -/* f10a1b4: 0fc53387 */ jal optionsSetControlMode -/* f10a1b8: 00402825 */ or $a1,$v0,$zero -/* f10a1bc: 02602025 */ or $a0,$s3,$zero -/* f10a1c0: 0fc34ab8 */ jal savebufferReadBits -/* f10a1c4: 24050003 */ addiu $a1,$zero,0x3 -/* f10a1c8: 02402025 */ or $a0,$s2,$zero -/* f10a1cc: 0fc53387 */ jal optionsSetControlMode -/* f10a1d0: 00402825 */ or $a1,$v0,$zero -/* f10a1d4: 3c10800a */ lui $s0,0x800a -/* f10a1d8: 3c11800a */ lui $s1,0x800a -/* f10a1dc: 263166fa */ addiu $s1,$s1,0x66fa -/* f10a1e0: 261066f0 */ addiu $s0,$s0,0x66f0 -.NB0f10a1e4: -/* f10a1e4: 02602025 */ or $a0,$s3,$zero -/* f10a1e8: 0fc34ab8 */ jal savebufferReadBits -/* f10a1ec: 24050008 */ addiu $a1,$zero,0x8 -/* f10a1f0: 26100001 */ addiu $s0,$s0,0x1 -/* f10a1f4: 0211082b */ sltu $at,$s0,$s1 -/* f10a1f8: 1420fffa */ bnez $at,.NB0f10a1e4 -/* f10a1fc: a2020013 */ sb $v0,0x13($s0) -/* f10a200: 02602025 */ or $a0,$s3,$zero -/* f10a204: 0fc34ab8 */ jal savebufferReadBits -/* f10a208: 24050010 */ addiu $a1,$zero,0x10 -/* f10a20c: 3c01800a */ lui $at,0x800a -/* f10a210: 3c14800a */ lui $s4,0x800a -/* f10a214: a422670e */ sh $v0,0x670e($at) -/* f10a218: 269466f0 */ addiu $s4,$s4,0x66f0 -/* f10a21c: 24120003 */ addiu $s2,$zero,0x3 -/* f10a220: 00008025 */ or $s0,$zero,$zero -.NB0f10a224: -/* f10a224: 02808825 */ or $s1,$s4,$zero -.NB0f10a228: -/* f10a228: 02602025 */ or $a0,$s3,$zero -/* f10a22c: 0fc34ab8 */ jal savebufferReadBits -/* f10a230: 2405000c */ addiu $a1,$zero,0xc -/* f10a234: 26100001 */ addiu $s0,$s0,0x1 -/* f10a238: 26310002 */ addiu $s1,$s1,0x2 -/* f10a23c: 1612fffa */ bne $s0,$s2,.NB0f10a228 -/* f10a240: a622001e */ sh $v0,0x1e($s1) -/* f10a244: 3c0c800a */ lui $t4,0x800a -/* f10a248: 258c676e */ addiu $t4,$t4,0x676e -/* f10a24c: 26940006 */ addiu $s4,$s4,0x6 -/* f10a250: 028c082b */ sltu $at,$s4,$t4 -/* f10a254: 5420fff3 */ bnezl $at,.NB0f10a224 -/* f10a258: 00008025 */ or $s0,$zero,$zero -/* f10a25c: 00008825 */ or $s1,$zero,$zero -/* f10a260: 24120005 */ addiu $s2,$zero,0x5 -/* f10a264: 24100001 */ addiu $s0,$zero,0x1 -.NB0f10a268: -/* f10a268: 02602025 */ or $a0,$s3,$zero -.NB0f10a26c: -/* f10a26c: 0fc34ab8 */ jal savebufferReadBits -/* f10a270: 24050001 */ addiu $a1,$zero,0x1 -/* f10a274: 02202025 */ or $a0,$s1,$zero -/* f10a278: 02002825 */ or $a1,$s0,$zero -/* f10a27c: 0fc6591e */ jal mpSetChallengeCompletedByAnyPlayerWithNumPlayers -/* f10a280: 00403025 */ or $a2,$v0,$zero -/* f10a284: 26100001 */ addiu $s0,$s0,0x1 -/* f10a288: 5612fff8 */ bnel $s0,$s2,.NB0f10a26c -/* f10a28c: 02602025 */ or $a0,$s3,$zero -/* f10a290: 26310001 */ addiu $s1,$s1,0x1 -/* f10a294: 2a21001e */ slti $at,$s1,0x1e -/* f10a298: 5420fff3 */ bnezl $at,.NB0f10a268 -/* f10a29c: 24100001 */ addiu $s0,$zero,0x1 -/* f10a2a0: 0fc65417 */ jal mpDetermineUnlockedFeatures -/* f10a2a4: 00000000 */ sll $zero,$zero,0x0 -/* f10a2a8: 3c10800a */ lui $s0,0x800a -/* f10a2ac: 3c11800a */ lui $s1,0x800a -/* f10a2b0: 263166fc */ addiu $s1,$s1,0x66fc -/* f10a2b4: 261066f0 */ addiu $s0,$s0,0x66f0 -.NB0f10a2b8: -/* f10a2b8: 02602025 */ or $a0,$s3,$zero -/* f10a2bc: 0fc34ab8 */ jal savebufferReadBits -/* f10a2c0: 24050015 */ addiu $a1,$zero,0x15 -/* f10a2c4: 26100004 */ addiu $s0,$s0,0x4 -/* f10a2c8: 0211082b */ sltu $at,$s0,$s1 -/* f10a2cc: 1420fffa */ bnez $at,.NB0f10a2b8 -/* f10a2d0: ae02009c */ sw $v0,0x9c($s0) -/* f10a2d4: 3c10800a */ lui $s0,0x800a -/* f10a2d8: 3c12800a */ lui $s2,0x800a -/* f10a2dc: 3c11800a */ lui $s1,0x800a -/* f10a2e0: 263166f8 */ addiu $s1,$s1,0x66f8 -/* f10a2e4: 265266f9 */ addiu $s2,$s2,0x66f9 -/* f10a2e8: 261066f0 */ addiu $s0,$s0,0x66f0 -.NB0f10a2ec: -/* f10a2ec: 16110003 */ bne $s0,$s1,.NB0f10a2fc -/* f10a2f0: 24050008 */ addiu $a1,$zero,0x8 -/* f10a2f4: 10000001 */ beqz $zero,.NB0f10a2fc -/* f10a2f8: 24050002 */ addiu $a1,$zero,0x2 -.NB0f10a2fc: -/* f10a2fc: 0fc34ab8 */ jal savebufferReadBits -/* f10a300: 02602025 */ or $a0,$s3,$zero -/* f10a304: 26100001 */ addiu $s0,$s0,0x1 -/* f10a308: 0212082b */ sltu $at,$s0,$s2 -/* f10a30c: 1420fff7 */ bnez $at,.NB0f10a2ec -/* f10a310: a20200ab */ sb $v0,0xab($s0) -/* f10a314: 3c10800a */ lui $s0,0x800a -/* f10a318: 3c11800a */ lui $s1,0x800a -/* f10a31c: 263166f4 */ addiu $s1,$s1,0x66f4 -/* f10a320: 261066f0 */ addiu $s0,$s0,0x66f0 -.NB0f10a324: -/* f10a324: 02602025 */ or $a0,$s3,$zero -/* f10a328: 0fc34ab8 */ jal savebufferReadBits -/* f10a32c: 24050008 */ addiu $a1,$zero,0x8 -/* f10a330: 26100001 */ addiu $s0,$s0,0x1 -/* f10a334: 1611fffb */ bne $s0,$s1,.NB0f10a324 -/* f10a338: a20200b4 */ sb $v0,0xb4($s0) -/* f10a33c: 0fc34aeb */ jal func0f0d54c4 -/* f10a340: 02602025 */ or $a0,$s3,$zero -/* f10a344: 3c04800a */ lui $a0,0x800a -/* f10a348: 0fc425d9 */ jal savefileApplyOptions -/* f10a34c: 248466f0 */ addiu $a0,$a0,0x66f0 -/* f10a350: 10000003 */ beqz $zero,.NB0f10a360 -/* f10a354: 00001025 */ or $v0,$zero,$zero -.NB0f10a358: -/* f10a358: 10000001 */ beqz $zero,.NB0f10a360 -/* f10a35c: 2402ffff */ addiu $v0,$zero,-1 -.NB0f10a360: -/* f10a360: 8fbf002c */ lw $ra,0x2c($sp) -/* f10a364: 8fb00018 */ lw $s0,0x18($sp) -/* f10a368: 8fb1001c */ lw $s1,0x1c($sp) -/* f10a36c: 8fb20020 */ lw $s2,0x20($sp) -/* f10a370: 8fb30024 */ lw $s3,0x24($sp) -/* f10a374: 8fb40028 */ lw $s4,0x28($sp) -/* f10a378: 03e00008 */ jr $ra -/* f10a37c: 27bd0140 */ addiu $sp,$sp,0x140 -); + if (pakHasBitflag(GAMEFILEFLAG_FOUNDTIMEDMINE, g_GameFile.flags)) { + frSetWeaponFound(WEAPON_TIMEDMINE); + } + + if (pakHasBitflag(GAMEFILEFLAG_FOUNDPROXYMINE, g_GameFile.flags)) { + frSetWeaponFound(WEAPON_PROXIMITYMINE); + } + + if (pakHasBitflag(GAMEFILEFLAG_FOUNDREMOTEMINE, g_GameFile.flags)) { + frSetWeaponFound(WEAPON_REMOTEMINE); + } #endif + func0f0d54c4(&buffer); + gamefileApplyOptions(&g_GameFile); + + return 0; + } + + return -1; + } + + return -1; +} + #if VERSION >= VERSION_PAL_FINAL GLOBAL_ASM( glabel func0f10feac @@ -1984,8 +1568,8 @@ glabel func0f10feac /* f10ff24: ac325bd0 */ sw $s2,%lo(g_FileLists+0x10)($at) /* f10ff28: 0fc549e0 */ jal optionsGetForwardPitch /* f10ff2c: 02602025 */ or $a0,$s3,$zero -/* f10ff30: 3c10800a */ lui $s0,%hi(g_SoloSaveFile+0x14) -/* f10ff34: 26102214 */ addiu $s0,$s0,%lo(g_SoloSaveFile+0x14) +/* f10ff30: 3c10800a */ lui $s0,%hi(g_GameFile+0x14) +/* f10ff34: 26102214 */ addiu $s0,$s0,%lo(g_GameFile+0x14) /* f10ff38: 02002825 */ or $a1,$s0,$zero /* f10ff3c: 00002025 */ or $a0,$zero,$zero /* f10ff40: 0fc4794c */ jal pakSetBitflag @@ -2232,8 +1816,8 @@ glabel func0f10feac /* f110300: 00000000 */ nop /* f110304: 0fc35517 */ jal savebufferClear /* f110308: 02802025 */ or $a0,$s4,$zero -/* f11030c: 3c12800a */ lui $s2,%hi(g_SoloSaveFile) -/* f110310: 26522200 */ addiu $s2,$s2,%lo(g_SoloSaveFile) +/* f11030c: 3c12800a */ lui $s2,%hi(g_GameFile) +/* f110310: 26522200 */ addiu $s2,$s2,%lo(g_GameFile) /* f110314: 02402825 */ or $a1,$s2,$zero /* f110318: 0fc35569 */ jal func0f0d55a4 /* f11031c: 02802025 */ or $a0,$s4,$zero @@ -2297,10 +1881,10 @@ glabel func0f10feac /* f110400: 00402825 */ or $a1,$v0,$zero /* f110404: 0fc354be */ jal savebufferOr /* f110408: 24060003 */ addiu $a2,$zero,0x3 -/* f11040c: 3c10800a */ lui $s0,%hi(g_SoloSaveFile) -/* f110410: 3c11800a */ lui $s1,%hi(g_SoloSaveFile+0xa) -/* f110414: 2631220a */ addiu $s1,$s1,%lo(g_SoloSaveFile+0xa) -/* f110418: 26102200 */ addiu $s0,$s0,%lo(g_SoloSaveFile) +/* f11040c: 3c10800a */ lui $s0,%hi(g_GameFile) +/* f110410: 3c11800a */ lui $s1,%hi(g_GameFile+0xa) +/* f110414: 2631220a */ addiu $s1,$s1,%lo(g_GameFile+0xa) +/* f110418: 26102200 */ addiu $s0,$s0,%lo(g_GameFile) /* f11041c: 02802025 */ or $a0,$s4,$zero .L0f110420: /* f110420: 92050014 */ lbu $a1,0x14($s0) @@ -2314,8 +1898,8 @@ glabel func0f10feac /* f110440: 9645001e */ lhu $a1,0x1e($s2) /* f110444: 0fc354be */ jal savebufferOr /* f110448: 24060010 */ addiu $a2,$zero,0x10 -/* f11044c: 3c15800a */ lui $s5,%hi(g_SoloSaveFile) -/* f110450: 26b52200 */ addiu $s5,$s5,%lo(g_SoloSaveFile) +/* f11044c: 3c15800a */ lui $s5,%hi(g_GameFile) +/* f110450: 26b52200 */ addiu $s5,$s5,%lo(g_GameFile) /* f110454: 24130006 */ addiu $s3,$zero,0x6 /* f110458: 00008825 */ or $s1,$zero,$zero .L0f11045c: @@ -2328,8 +1912,8 @@ glabel func0f10feac /* f110470: 26310002 */ addiu $s1,$s1,0x2 /* f110474: 1633fffa */ bne $s1,$s3,.L0f110460 /* f110478: 26520002 */ addiu $s2,$s2,0x2 -/* f11047c: 3c18800a */ lui $t8,%hi(g_SoloSaveFile+0x7e) -/* f110480: 2718227e */ addiu $t8,$t8,%lo(g_SoloSaveFile+0x7e) +/* f11047c: 3c18800a */ lui $t8,%hi(g_GameFile+0x7e) +/* f110480: 2718227e */ addiu $t8,$t8,%lo(g_GameFile+0x7e) /* f110484: 26b50006 */ addiu $s5,$s5,0x6 /* f110488: 02b8082b */ sltu $at,$s5,$t8 /* f11048c: 5420fff3 */ bnezl $at,.L0f11045c @@ -2353,10 +1937,10 @@ glabel func0f10feac /* f1104cc: 2a21001e */ slti $at,$s1,0x1e /* f1104d0: 5420fff3 */ bnezl $at,.L0f1104a0 /* f1104d4: 24100001 */ addiu $s0,$zero,0x1 -/* f1104d8: 3c10800a */ lui $s0,%hi(g_SoloSaveFile) -/* f1104dc: 3c11800a */ lui $s1,%hi(g_SoloSaveFile+0xc) -/* f1104e0: 2631220c */ addiu $s1,$s1,%lo(g_SoloSaveFile+0xc) -/* f1104e4: 26102200 */ addiu $s0,$s0,%lo(g_SoloSaveFile) +/* f1104d8: 3c10800a */ lui $s0,%hi(g_GameFile) +/* f1104dc: 3c11800a */ lui $s1,%hi(g_GameFile+0xc) +/* f1104e0: 2631220c */ addiu $s1,$s1,%lo(g_GameFile+0xc) +/* f1104e4: 26102200 */ addiu $s0,$s0,%lo(g_GameFile) /* f1104e8: 02802025 */ or $a0,$s4,$zero .L0f1104ec: /* f1104ec: 8e0500a0 */ lw $a1,0xa0($s0) @@ -2366,12 +1950,12 @@ glabel func0f10feac /* f1104fc: 0211082b */ sltu $at,$s0,$s1 /* f110500: 5420fffa */ bnezl $at,.L0f1104ec /* f110504: 02802025 */ or $a0,$s4,$zero -/* f110508: 3c10800a */ lui $s0,%hi(g_SoloSaveFile) -/* f11050c: 3c12800a */ lui $s2,%hi(g_SoloSaveFile+0x9) -/* f110510: 3c11800a */ lui $s1,%hi(g_SoloSaveFile+0x8) -/* f110514: 26312208 */ addiu $s1,$s1,%lo(g_SoloSaveFile+0x8) -/* f110518: 26522209 */ addiu $s2,$s2,%lo(g_SoloSaveFile+0x9) -/* f11051c: 26102200 */ addiu $s0,$s0,%lo(g_SoloSaveFile) +/* f110508: 3c10800a */ lui $s0,%hi(g_GameFile) +/* f11050c: 3c12800a */ lui $s2,%hi(g_GameFile+0x9) +/* f110510: 3c11800a */ lui $s1,%hi(g_GameFile+0x8) +/* f110514: 26312208 */ addiu $s1,$s1,%lo(g_GameFile+0x8) +/* f110518: 26522209 */ addiu $s2,$s2,%lo(g_GameFile+0x9) +/* f11051c: 26102200 */ addiu $s0,$s0,%lo(g_GameFile) .L0f110520: /* f110520: 16110003 */ bne $s0,$s1,.L0f110530 /* f110524: 02802025 */ or $a0,$s4,$zero @@ -2387,10 +1971,10 @@ glabel func0f10feac /* f110544: 0212082b */ sltu $at,$s0,$s2 /* f110548: 1420fff5 */ bnez $at,.L0f110520 /* f11054c: 00000000 */ nop -/* f110550: 3c10800a */ lui $s0,%hi(g_SoloSaveFile) -/* f110554: 3c11800a */ lui $s1,%hi(g_SoloSaveFile+0x4) -/* f110558: 26312204 */ addiu $s1,$s1,%lo(g_SoloSaveFile+0x4) -/* f11055c: 26102200 */ addiu $s0,$s0,%lo(g_SoloSaveFile) +/* f110550: 3c10800a */ lui $s0,%hi(g_GameFile) +/* f110554: 3c11800a */ lui $s1,%hi(g_GameFile+0x4) +/* f110558: 26312204 */ addiu $s1,$s1,%lo(g_GameFile+0x4) +/* f11055c: 26102200 */ addiu $s0,$s0,%lo(g_GameFile) /* f110560: 02802025 */ or $a0,$s4,$zero .L0f110564: /* f110564: 920500b5 */ lbu $a1,0xb5($s0) @@ -2899,7 +2483,7 @@ glabel func0f10feac ); #endif -void savefileGetOverview(char *arg0, char *name, u8 *stage, u8 *difficulty, u32 *time) +void gamefileGetOverview(char *arg0, char *name, u8 *stage, u8 *difficulty, u32 *time) { struct savebuffer buffer; diff --git a/src/game/mplayer/mplayer.c b/src/game/mplayer/mplayer.c index b2b5d8da0..69e7f0c71 100644 --- a/src/game/mplayer/mplayer.c +++ b/src/game/mplayer/mplayer.c @@ -7313,7 +7313,7 @@ bool mpIsTrackUnlocked(s32 tracknum) unlocked = true; } else { for (i = 0; i != 3; i++) { - if (g_SoloSaveFile.besttimes[stageindex][i]) { + if (g_GameFile.besttimes[stageindex][i]) { unlocked = true; break; } diff --git a/src/game/pak/pak.c b/src/game/pak/pak.c index b1446c3dc..3e8e8693d 100644 --- a/src/game/pak/pak.c +++ b/src/game/pak/pak.c @@ -3011,8 +3011,8 @@ void func0f1189d8(void) func0f1169c8(SAVEDEVICE_GAMEPAK, 1); func0f1106c8(); - savefileLoadDefaults(&g_SoloSaveFile); - savefileApplyOptions(&g_SoloSaveFile); + gamefileLoadDefaults(&g_GameFile); + gamefileApplyOptions(&g_GameFile); g_FilemgrLoadedMainFile.unk04 = 0; g_Vars.unk0004e4 = 0xf5; @@ -3087,9 +3087,9 @@ glabel func0f1189d8 /* f112e20: 00000000 */ sll $zero,$zero,0x0 /* f112e24: 3c10800a */ lui $s0,0x800a /* f112e28: 261066f0 */ addiu $s0,$s0,0x66f0 -/* f112e2c: 0fc426fe */ jal savefileLoadDefaults +/* f112e2c: 0fc426fe */ jal gamefileLoadDefaults /* f112e30: 02002025 */ or $a0,$s0,$zero -/* f112e34: 0fc425d9 */ jal savefileApplyOptions +/* f112e34: 0fc425d9 */ jal gamefileApplyOptions /* f112e38: 02002025 */ or $a0,$s0,$zero /* f112e3c: 8fbf002c */ lw $ra,0x2c($sp) /* f112e40: 3c01800a */ lui $at,0x800a @@ -16862,7 +16862,7 @@ void pakClearAllBitflags(u8 *flags) { s32 i; - for (i = 0; i <= SAVEFILEFLAG_4E; i++) { + for (i = 0; i <= GAMEFILEFLAG_4E; i++) { pakSetBitflag(i, flags, false); } } diff --git a/src/game/training/training.c b/src/game/training/training.c index 564f64610..9eb5a4b1b 100644 --- a/src/game/training/training.c +++ b/src/game/training/training.c @@ -62,13 +62,13 @@ u16 g_FrPads[] = { bool ciIsTourDone(void) { - return savefileHasFlag(SAVEFILEFLAG_CI_TOUR_DONE); + return gamefileHasFlag(GAMEFILEFLAG_CI_TOUR_DONE); } u8 ciGetFiringRangeScore(s32 weaponindex) { // Data at firingrangescores is a u8 array where each score uses 2 bits - return (g_SoloSaveFile.firingrangescores[weaponindex >> 2] >> (weaponindex % 4) * 2) & 3; + return (g_GameFile.firingrangescores[weaponindex >> 2] >> (weaponindex % 4) * 2) & 3; } void frSaveScoreIfBest(s32 weaponindex, s32 difficulty) @@ -76,13 +76,13 @@ void frSaveScoreIfBest(s32 weaponindex, s32 difficulty) if (ciGetFiringRangeScore(weaponindex) < difficulty) { u32 byteindex = weaponindex >> 2; u32 shiftamount = (weaponindex % 4) * 2; - u32 value = g_SoloSaveFile.firingrangescores[byteindex]; + u32 value = g_GameFile.firingrangescores[byteindex]; u32 mask = (1 << shiftamount) + (1 << (shiftamount + 1)); value &= 255 - mask; value += (difficulty << shiftamount) & mask; - g_SoloSaveFile.firingrangescores[byteindex] = value; + g_GameFile.firingrangescores[byteindex] = value; } } @@ -145,35 +145,35 @@ u8 frIsWeaponFound(s32 weaponnum) } #if VERSION >= VERSION_NTSC_1_0 - if (weaponnum < (s32)sizeof(g_SoloSaveFile.weaponsfound) * 8) { + if (weaponnum < (s32)sizeof(g_GameFile.weaponsfound) * 8) { byteindex = weaponnum >> 3; - return g_SoloSaveFile.weaponsfound[byteindex] & (1 << (weaponnum % 8)); + return g_GameFile.weaponsfound[byteindex] & (1 << (weaponnum % 8)); } return false; #else byteindex = weaponnum >> 3; - return g_SoloSaveFile.weaponsfound[byteindex] & (1 << (weaponnum % 8)); + return g_GameFile.weaponsfound[byteindex] & (1 << (weaponnum % 8)); #endif } void frSetWeaponFound(s32 weaponnum) { - if (weaponnum < (s32)sizeof(g_SoloSaveFile.weaponsfound) * 8) { + if (weaponnum < (s32)sizeof(g_GameFile.weaponsfound) * 8) { u32 byteindex = weaponnum >> 3; - u32 value = g_SoloSaveFile.weaponsfound[byteindex]; + u32 value = g_GameFile.weaponsfound[byteindex]; value |= (1 << (weaponnum % 8)); - g_SoloSaveFile.weaponsfound[byteindex] = value; + g_GameFile.weaponsfound[byteindex] = value; } } s32 ciIsStageComplete(s32 stageindex) { - return g_SoloSaveFile.besttimes[stageindex][0] - || g_SoloSaveFile.besttimes[stageindex][1] - || g_SoloSaveFile.besttimes[stageindex][2]; + return g_GameFile.besttimes[stageindex][0] + || g_GameFile.besttimes[stageindex][1] + || g_GameFile.besttimes[stageindex][2]; } bool func0f19cbcc(s32 weapon) @@ -7568,16 +7568,16 @@ void dtEnd(void) bool dtIsAvailable(s32 deviceindex) { 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, + GAMEFILEFLAG_CI_UPLINK_DONE, + GAMEFILEFLAG_CI_ECMMINE_DONE, + GAMEFILEFLAG_CI_CAMSPY_DONE, + GAMEFILEFLAG_CI_NIGHTVISION_DONE, + GAMEFILEFLAG_CI_DOORDECODER_DONE, + GAMEFILEFLAG_CI_RTRACKER_DONE, + GAMEFILEFLAG_CI_IR_DONE, + GAMEFILEFLAG_CI_XRAY_DONE, + GAMEFILEFLAG_CI_DISGUISE_DONE, + GAMEFILEFLAG_CI_CLOAK_DONE, }; deviceindex--; @@ -7586,7 +7586,7 @@ bool dtIsAvailable(s32 deviceindex) return true; } - if (deviceindex < 0 || savefileHasFlag(flags[deviceindex])) { + if (deviceindex < 0 || gamefileHasFlag(flags[deviceindex])) { return true; } diff --git a/src/include/bss.h b/src/include/bss.h index 935e11494..6bdd3de03 100644 --- a/src/include/bss.h +++ b/src/include/bss.h @@ -198,7 +198,7 @@ extern u32 g_CheatsActiveBank1; extern u32 g_CheatsEnabledBank0; extern u32 g_CheatsEnabledBank1; extern struct savelocation_2d8 var800a21f8; -extern struct savefile_solo g_SoloSaveFile; +extern struct gamefile g_GameFile; extern struct savelocation_2d8 g_FilemgrLoadedMainFile; extern s8 g_SoloCompleted; extern u8 g_AltTitle; diff --git a/src/include/commands.h b/src/include/commands.h index b31c1269d..060417617 100644 --- a/src/include/commands.h +++ b/src/include/commands.h @@ -3574,7 +3574,7 @@ /** * Sets a savefile flag. * - * Expected to be a SAVEFILEFLAG constant. + * Expected to be a GAMEFILEFLAG constant. */ #define set_savefile_flag(flag) \ mkshort(0x0190), \ diff --git a/src/include/constants.h b/src/include/constants.h index 70c8adc62..857d5c8b4 100644 --- a/src/include/constants.h +++ b/src/include/constants.h @@ -3123,78 +3123,78 @@ #define SAVEDEVICE_GAMEPAK 4 #define SAVEDEVICE_INVALID 5 -#define SAVEFILEFLAG_P1_FORWARDPITCH 0x00 -#define SAVEFILEFLAG_P1_AUTOAIM 0x01 -#define SAVEFILEFLAG_P1_AIMCONTROL 0x02 -#define SAVEFILEFLAG_P1_SIGHTONSCREEN 0x03 -#define SAVEFILEFLAG_P1_LOOKAHEAD 0x04 -#define SAVEFILEFLAG_P1_AMMOONSCREEN 0x05 -#define SAVEFILEFLAG_SCREENSIZE_WIDE 0x06 -#define SAVEFILEFLAG_SCREENRATIO 0x07 -#define SAVEFILEFLAG_SCREENSIZE_CINEMA 0x08 -#define SAVEFILEFLAG_P1_HEADROLL 0x09 -#define SAVEFILEFLAG_P1_SHOWGUNFUNCTION 0x0a -#define SAVEFILEFLAG_INGAMESUBTITLES 0x0b -#define SAVEFILEFLAG_P2_FORWARDPITCH 0x0c -#define SAVEFILEFLAG_P2_AUTOAIM 0x0d -#define SAVEFILEFLAG_P2_AIMCONTROL 0x0e -#define SAVEFILEFLAG_P2_SIGHTONSCREEN 0x0f -#define SAVEFILEFLAG_P2_LOOKAHEAD 0x10 -#define SAVEFILEFLAG_P2_AMMOONSCREEN 0x11 -#define SAVEFILEFLAG_P2_HEADROLL 0x12 -#define SAVEFILEFLAG_P2_SHOWGUNFUNCTION 0x13 -#define SAVEFILEFLAG_CUTSCENESUBTITLES 0x14 -#define SAVEFILEFLAG_P1_ALWAYSSHOWTARGET 0x15 -#define SAVEFILEFLAG_P2_ALWAYSSHOWTARGET 0x16 -#define SAVEFILEFLAG_P1_SHOWZOOMRANGE 0x17 -#define SAVEFILEFLAG_P2_SHOWZOOMRANGE 0x18 -#define SAVEFILEFLAG_SCREENSPLIT 0x19 -#define SAVEFILEFLAG_P1_SHOWMISSIONTIME 0x1a -#define SAVEFILEFLAG_P2_SHOWMISSIONTIME 0x1b -#define SAVEFILEFLAG_COOPRADARON 0x1c -#define SAVEFILEFLAG_COOPFRIENDLYFIRE 0x1d -#define SAVEFILEFLAG_ANTIRADARON 0x1e -#define SAVEFILEFLAG_ANTIPLAYERNUM 0x1f -#define SAVEFILEFLAG_P1_PAINTBALL 0x20 -#define SAVEFILEFLAG_P2_PAINTBALL 0x21 -#define SAVEFILEFLAG_HIRES 0x22 -#define SAVEFILEFLAG_USED_TRANSFERPAK 0x23 -#define SAVEFILEFLAG_CI_TOUR_DONE 0x24 -#define SAVEFILEFLAG_CI_HOLO7_DONE 0x29 -#define SAVEFILEFLAG_CI_HOLO6_DONE 0x2a -#define SAVEFILEFLAG_CI_HOLO5_DONE 0x2b -#define SAVEFILEFLAG_CI_HOLO4_DONE 0x2c -#define SAVEFILEFLAG_CI_HOLO3_DONE 0x2d -#define SAVEFILEFLAG_CI_HOLO2_DONE 0x2e -#define SAVEFILEFLAG_CI_HOLO1_DONE 0x2f -#define SAVEFILEFLAG_CI_CLOAK_DONE 0x30 -#define SAVEFILEFLAG_CI_DISGUISE_DONE 0x31 -#define SAVEFILEFLAG_CI_XRAY_DONE 0x32 -#define SAVEFILEFLAG_CI_IR_DONE 0x33 -#define SAVEFILEFLAG_CI_RTRACKER_DONE 0x34 -#define SAVEFILEFLAG_CI_DOORDECODER_DONE 0x35 -#define SAVEFILEFLAG_CI_NIGHTVISION_DONE 0x36 -#define SAVEFILEFLAG_CI_CAMSPY_DONE 0x37 -#define SAVEFILEFLAG_CI_ECMMINE_DONE 0x38 -#define SAVEFILEFLAG_CI_UPLINK_DONE 0x39 -#define SAVEFILEFLAG_CI_TOUR_STARTED 0x3a -#define SAVEFILEFLAG_CRASHSITE_BIKE 0x3b -#define SAVEFILEFLAG_DEFENSE_JON 0x3c -#define SAVEFILEFLAG_AF1_ENTRY 0x3d -#define SAVEFILEFLAG_RESCUE_MECHANIC_DEAD 0x3e -#define SAVEFILEFLAG_G5_MINE 0x3f // true if thrown on top door -#define SAVEFILEFLAG_LANGFILTERON 0x40 -#define SAVEFILEFLAG_41 0x41 -#define SAVEFILEFLAG_42 0x42 -#define SAVEFILEFLAG_43 0x43 -#define SAVEFILEFLAG_HOWTO_HOVERCRATE 0x47 -#define SAVEFILEFLAG_HOWTO_HOVERBIKE 0x48 -#define SAVEFILEFLAG_HOWTO_DOORS 0x49 -#define SAVEFILEFLAG_HOWTO_ELEVATORS 0x4a -#define SAVEFILEFLAG_HOWTO_TERMINALS 0x4b -#define SAVEFILEFLAG_4C 0x4c -#define SAVEFILEFLAG_4D 0x4d -#define SAVEFILEFLAG_4E 0x4e +#define GAMEFILEFLAG_P1_FORWARDPITCH 0x00 +#define GAMEFILEFLAG_P1_AUTOAIM 0x01 +#define GAMEFILEFLAG_P1_AIMCONTROL 0x02 +#define GAMEFILEFLAG_P1_SIGHTONSCREEN 0x03 +#define GAMEFILEFLAG_P1_LOOKAHEAD 0x04 +#define GAMEFILEFLAG_P1_AMMOONSCREEN 0x05 +#define GAMEFILEFLAG_SCREENSIZE_WIDE 0x06 +#define GAMEFILEFLAG_SCREENRATIO 0x07 +#define GAMEFILEFLAG_SCREENSIZE_CINEMA 0x08 +#define GAMEFILEFLAG_P1_HEADROLL 0x09 +#define GAMEFILEFLAG_P1_SHOWGUNFUNCTION 0x0a +#define GAMEFILEFLAG_INGAMESUBTITLES 0x0b +#define GAMEFILEFLAG_P2_FORWARDPITCH 0x0c +#define GAMEFILEFLAG_P2_AUTOAIM 0x0d +#define GAMEFILEFLAG_P2_AIMCONTROL 0x0e +#define GAMEFILEFLAG_P2_SIGHTONSCREEN 0x0f +#define GAMEFILEFLAG_P2_LOOKAHEAD 0x10 +#define GAMEFILEFLAG_P2_AMMOONSCREEN 0x11 +#define GAMEFILEFLAG_P2_HEADROLL 0x12 +#define GAMEFILEFLAG_P2_SHOWGUNFUNCTION 0x13 +#define GAMEFILEFLAG_CUTSCENESUBTITLES 0x14 +#define GAMEFILEFLAG_P1_ALWAYSSHOWTARGET 0x15 +#define GAMEFILEFLAG_P2_ALWAYSSHOWTARGET 0x16 +#define GAMEFILEFLAG_P1_SHOWZOOMRANGE 0x17 +#define GAMEFILEFLAG_P2_SHOWZOOMRANGE 0x18 +#define GAMEFILEFLAG_SCREENSPLIT 0x19 +#define GAMEFILEFLAG_P1_SHOWMISSIONTIME 0x1a +#define GAMEFILEFLAG_P2_SHOWMISSIONTIME 0x1b +#define GAMEFILEFLAG_COOPRADARON 0x1c +#define GAMEFILEFLAG_COOPFRIENDLYFIRE 0x1d +#define GAMEFILEFLAG_ANTIRADARON 0x1e +#define GAMEFILEFLAG_ANTIPLAYERNUM 0x1f +#define GAMEFILEFLAG_P1_PAINTBALL 0x20 +#define GAMEFILEFLAG_P2_PAINTBALL 0x21 +#define GAMEFILEFLAG_HIRES 0x22 +#define GAMEFILEFLAG_USED_TRANSFERPAK 0x23 +#define GAMEFILEFLAG_CI_TOUR_DONE 0x24 +#define GAMEFILEFLAG_CI_HOLO7_DONE 0x29 +#define GAMEFILEFLAG_CI_HOLO6_DONE 0x2a +#define GAMEFILEFLAG_CI_HOLO5_DONE 0x2b +#define GAMEFILEFLAG_CI_HOLO4_DONE 0x2c +#define GAMEFILEFLAG_CI_HOLO3_DONE 0x2d +#define GAMEFILEFLAG_CI_HOLO2_DONE 0x2e +#define GAMEFILEFLAG_CI_HOLO1_DONE 0x2f +#define GAMEFILEFLAG_CI_CLOAK_DONE 0x30 +#define GAMEFILEFLAG_CI_DISGUISE_DONE 0x31 +#define GAMEFILEFLAG_CI_XRAY_DONE 0x32 +#define GAMEFILEFLAG_CI_IR_DONE 0x33 +#define GAMEFILEFLAG_CI_RTRACKER_DONE 0x34 +#define GAMEFILEFLAG_CI_DOORDECODER_DONE 0x35 +#define GAMEFILEFLAG_CI_NIGHTVISION_DONE 0x36 +#define GAMEFILEFLAG_CI_CAMSPY_DONE 0x37 +#define GAMEFILEFLAG_CI_ECMMINE_DONE 0x38 +#define GAMEFILEFLAG_CI_UPLINK_DONE 0x39 +#define GAMEFILEFLAG_CI_TOUR_STARTED 0x3a +#define GAMEFILEFLAG_CRASHSITE_BIKE 0x3b +#define GAMEFILEFLAG_DEFENSE_JON 0x3c +#define GAMEFILEFLAG_AF1_ENTRY 0x3d +#define GAMEFILEFLAG_RESCUE_MECHANIC_DEAD 0x3e +#define GAMEFILEFLAG_G5_MINE 0x3f // true if thrown on top door +#define GAMEFILEFLAG_LANGFILTERON 0x40 +#define GAMEFILEFLAG_FOUNDTIMEDMINE 0x41 +#define GAMEFILEFLAG_FOUNDPROXYMINE 0x42 +#define GAMEFILEFLAG_FOUNDREMOTEMINE 0x43 +#define GAMEFILEFLAG_HOWTO_HOVERCRATE 0x47 +#define GAMEFILEFLAG_HOWTO_HOVERBIKE 0x48 +#define GAMEFILEFLAG_HOWTO_DOORS 0x49 +#define GAMEFILEFLAG_HOWTO_ELEVATORS 0x4a +#define GAMEFILEFLAG_HOWTO_TERMINALS 0x4b +#define GAMEFILEFLAG_4C 0x4c +#define GAMEFILEFLAG_4D 0x4d +#define GAMEFILEFLAG_4E 0x4e #define SCREENRATIO_NORMAL 0 #define SCREENRATIO_16_9 1 diff --git a/src/include/game/gamefile.h b/src/include/game/gamefile.h index b9b4c777f..4067187af 100644 --- a/src/include/game/gamefile.h +++ b/src/include/game/gamefile.h @@ -4,15 +4,15 @@ #include "data.h" #include "types.h" -u32 savefileHasFlag(u32 value); -void savefileSetFlag(u32 value); -void savefileUnsetFlag(u32 value); -void savefilePrintFlags(void); -void savefileApplyOptions(struct savefile_solo *file); -void savefileLoadDefaults(struct savefile_solo *file); -s32 func0f10fac8(s32 arg0); +u32 gamefileHasFlag(u32 value); +void gamefileSetFlag(u32 value); +void gamefileUnsetFlag(u32 value); +void gamefilePrintFlags(void); +void gamefileApplyOptions(struct gamefile *file); +void gamefileLoadDefaults(struct gamefile *file); +s32 gamefileLoad(s32 arg0); s32 func0f10feac(s32 arg0, s32 arg1, u16 arg2); -void savefileGetOverview(char *arg0, char *name, u8 *stage, u8 *difficulty, u32 *time); +void gamefileGetOverview(char *arg0, char *name, u8 *stage, u8 *difficulty, u32 *time); bool func0f1106c8(void); u32 func0f110720(void); u32 func0f11080c(void); diff --git a/src/include/types.h b/src/include/types.h index a8c8da2fb..f1e4b8916 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -4495,7 +4495,7 @@ struct menu { /*0xe6c*/ s8 savedevice; // 0-3 = controller pak 1-4, 4 = game pak }; -struct savefile_solo { +struct gamefile { /*0x00*/ char name[11]; /*0x0b*/ u8 thumbnail : 5; // stage index of the image to show on file select screen /*0x0b*/ u8 autodifficulty : 3;