Decompile gamefileLoad

This commit is contained in:
Ryan Dwyer
2021-09-13 21:09:26 +10:00
parent aa9c63c016
commit c95f4a67f2
27 changed files with 509 additions and 925 deletions
+1 -1
View File
@@ -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
};
+1 -1
View File
@@ -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)
+2 -2
View File
@@ -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)
+2 -2
View File
@@ -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)
+59 -59
View File
@@ -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
+1 -1
View File
@@ -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)
+1 -1
View File
@@ -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)
+2 -2
View File
@@ -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
+2 -2
View File
@@ -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)
+4 -4
View File
@@ -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)
+2 -2
View File
@@ -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)
+8 -8
View File
@@ -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();
+4 -4
View File
@@ -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;
+10 -10
View File
@@ -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)
+14 -14
View File
@@ -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;
}
}
}
+10 -10
View File
@@ -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 {
+36 -36
View File
@@ -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;
+9 -9
View File
@@ -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];
+228 -644
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -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;
}
+5 -5
View File
@@ -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);
}
}
+24 -24
View File
@@ -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;
}
+1 -1
View File
@@ -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;
+1 -1
View File
@@ -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), \
+72 -72
View File
@@ -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
+8 -8
View File
@@ -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);
+1 -1
View File
@@ -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;