@@ -2861,22 +2861,29 @@ int Fred_mission_save::save_mission_info()
28612861 // this is compatible with non-SCP variants - Goober5000
28622862 fout (" %d" , (The_mission.support_ships .max_support_ships == 0 ) ? 1 : 0 );
28632863
2864+ // version-gated support options; see also check_for_25_1_data()
2865+ auto more_support_options_version = gameversion::version (25 , 1 );
2866+
28642867 if (save_config.save_format != MissionFormat::RETAIL ) {
2865- if (optional_string_fred (" +Disallow Support Rearm:" )) {
2866- parse_comments (2 );
2867- } else {
2868- fout (" \n +Disallow Support Rearm:" );
2868+ if (The_mission.required_fso_version >= more_support_options_version) {
2869+ if (optional_string_fred (" +Disallow Support Rearm:" )) {
2870+ parse_comments (2 );
2871+ } else {
2872+ fout (" \n +Disallow Support Rearm:" );
2873+ }
2874+
2875+ fout (" %d" , The_mission.support_ships .disallow_rearm ? 1 : 0 );
28692876 }
28702877
2871- fout (" %d" , The_mission.support_ships .disallow_rearm ? 1 : 0 );
2878+ if (The_mission.required_fso_version >= more_support_options_version) {
2879+ if (optional_string_fred (" +Allow Support Rearm Weapon Precedence:" )) {
2880+ parse_comments (2 );
2881+ } else {
2882+ fout (" \n +Allow Support Rearm Weapon Precedence:" );
2883+ }
28722884
2873- if (optional_string_fred (" +Allow Support Rearm Weapon Precedence:" )) {
2874- parse_comments (2 );
2875- } else {
2876- fout (" \n +Allow Support Rearm Weapon Precedence:" );
2885+ fout (" %d" , The_mission.support_ships .allow_rearm_weapon_precedence ? 1 : 0 );
28772886 }
2878-
2879- fout (" %d" , The_mission.support_ships .allow_rearm_weapon_precedence ? 1 : 0 );
28802887 }
28812888
28822889 // here be WMCoolmon's hull and subsys repair stuff
@@ -2895,12 +2902,14 @@ int Fred_mission_save::save_mission_info()
28952902 }
28962903 fout (" %f" , The_mission.support_ships .max_subsys_repair_val );
28972904
2898- if (optional_string_fred (" +Support Rearm Pool From Loadout:" )) {
2899- parse_comments (1 );
2900- } else {
2901- fout (" \n +Support Rearm Pool From Loadout:" );
2905+ if (The_mission.required_fso_version >= more_support_options_version) {
2906+ if (optional_string_fred (" +Support Rearm Pool From Loadout:" )) {
2907+ parse_comments (1 );
2908+ } else {
2909+ fout (" \n +Support Rearm Pool From Loadout:" );
2910+ }
2911+ fout (" %d" , The_mission.support_ships .rearm_pool_from_loadout ? 1 : 0 );
29022912 }
2903- fout (" %d" , The_mission.support_ships .rearm_pool_from_loadout ? 1 : 0 );
29042913 }
29052914
29062915 if (Mission_all_attack) {
@@ -4511,7 +4520,23 @@ int Fred_mission_save::save_players()
45114520
45124521 fout (" )" );
45134522
4514- if (save_config.save_format != MissionFormat::RETAIL && !The_mission.support_ships .rearm_pool_from_loadout ) {
4523+ // version-gated support options; see also check_for_25_1_data()
4524+ auto more_support_options_version = gameversion::version (25 , 1 );
4525+
4526+ bool has_rearm_pool_entries = false ;
4527+ if (save_config.save_format != MissionFormat::RETAIL && The_mission.required_fso_version >= more_support_options_version && !The_mission.support_ships .rearm_pool_from_loadout ) {
4528+ for (j = 0 ; j < weapon_info_size (); j++) {
4529+ // mirror the skip conditions used when writing the pool below
4530+ if (!Weapon_info[j].wi_flags [Weapon::Info_Flags::Player_allowed] || Weapon_info[j].disallow_rearm ) {
4531+ continue ;
4532+ }
4533+ if (The_mission.support_ships .rearm_weapon_pool [i][j] != -1 ) {
4534+ has_rearm_pool_entries = true ;
4535+ break ;
4536+ }
4537+ }
4538+ }
4539+ if (has_rearm_pool_entries) {
45154540 if (optional_string_fred (" +Support Rearm Pool:" , " $Starting Shipname:" )) {
45164541 parse_comments (2 );
45174542 } else {
0 commit comments