mirror of
https://gitlab.com/ryandwyer/perfect-dark
synced 2026-06-05 19:27:02 -04:00
Decompile gamefileLoad
This commit is contained in:
@@ -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
|
||||
};
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
@@ -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();
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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;
|
||||
|
||||
@@ -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
File diff suppressed because it is too large
Load Diff
@@ -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
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
@@ -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;
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user