Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 27 additions & 16 deletions code/missioneditor/campaignsave.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -55,16 +55,19 @@ int Fred_campaign_save::save_campaign_file(const char* pathname, const SCP_vecto

// campaign flags - Goober5000
if (save_config.save_format != MissionFormat::RETAIL) {
optional_string_fred("$Flags:");
parse_comments();
fout(" %d\n", Campaign.flags);
if (optional_string_fred("$Flags:")) {
parse_comments();
} else {
fout("\n$Flags:");
}
fout(" %d", Campaign.flags);
}

if (save_config.save_format != MissionFormat::RETAIL && !Campaign.custom_data.empty()) {
if (optional_string_fred("$begin_custom_data_map")) {
parse_comments(2);
} else {
fout("\n$begin_custom_data_map");
fout("\n\n$begin_custom_data_map");
}

for (const auto& pair : Campaign.custom_data) {
Expand All @@ -79,21 +82,29 @@ int Fred_campaign_save::save_campaign_file(const char* pathname, const SCP_vecto
}

// write out the ships and weapons which the player can start the campaign with
optional_string_fred("+Starting Ships: (");
parse_comments(2);
if (optional_string_fred("+Starting Ships:")) {
parse_comments(2);
} else {
fout("\n\n+Starting Ships:");
}
fout(" (");
for (int i = 0; i < ship_info_size(); i++) {
if (Campaign.ships_allowed[i])
fout(" \"%s\" ", Ship_info[i].name);
fout(" \"%s\"", Ship_info[i].name);
}
fout(")\n");
fout(" )");

optional_string_fred("+Starting Weapons: (");
parse_comments();
if (optional_string_fred("+Starting Weapons:")) {
parse_comments(2);
} else {
fout("\n\n+Starting Weapons:");
}
fout(" (");
for (int i = 0; i < weapon_info_size(); i++) {
if (Campaign.weapons_allowed[i])
fout(" \"%s\" ", Weapon_info[i].name);
fout(" \"%s\"", Weapon_info[i].name);
}
fout(")\n");
fout(" )");

fred_parse_flag = 0;
for (int i = 0; i < Campaign.num_missions; i++) {
Expand All @@ -105,7 +116,7 @@ int Fred_campaign_save::save_campaign_file(const char* pathname, const SCP_vecto
parse_comments(2);
fout(" %s", cm.name);

if (strlen(cm.briefing_cutscene)) {
if (strlen(cm.briefing_cutscene) > 0) {
if (optional_string_fred("+Briefing Cutscene:", "$Mission"))
parse_comments();
else
Expand Down Expand Up @@ -196,9 +207,9 @@ int Fred_campaign_save::save_campaign_file(const char* pathname, const SCP_vecto
// now save campaign loop sexp
if (mission_loop || mission_fork) {
if (mission_loop)
required_string_fred("\n+Mission Loop:");
required_string_fred("+Mission Loop:");
else
required_string_fred("\n+Mission Fork:");
required_string_fred("+Mission Fork:");
parse_comments();

int num_mission_special = 0;
Expand Down Expand Up @@ -262,7 +273,7 @@ int Fred_campaign_save::save_campaign_file(const char* pathname, const SCP_vecto
if (optional_string_fred("+Level:", "$Mission:")) {
parse_comments();
} else {
fout("\n\n+Level:");
fout("\n+Level:");
}

fout(" %d", cm.level);
Expand Down
12 changes: 4 additions & 8 deletions code/missioneditor/missionsave.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2158,8 +2158,7 @@ int Fred_mission_save::save_fiction()
else
fout("\n$Font:");
fout(" %s", stage.font_filename);
} else
optional_string_fred("$Font:");
}

// save voice
if (strlen(stage.voice_filename) > 0) //-V805
Expand All @@ -2169,8 +2168,7 @@ int Fred_mission_save::save_fiction()
else
fout("\n$Voice:");
fout(" %s", stage.voice_filename);
} else
optional_string_fred("$Voice:");
}

// save UI
if (strlen(stage.ui_name) > 0) {
Expand All @@ -2179,8 +2177,7 @@ int Fred_mission_save::save_fiction()
else
fout("\n$UI:");
fout(" %s", stage.ui_name);
} else
optional_string_fred("$UI:");
}

// save background
save_custom_bitmap("$Background 640:",
Expand All @@ -2198,8 +2195,7 @@ int Fred_mission_save::save_fiction()
else
fout("\n$Formula:");
fout(" %s", sexp_out.c_str());
} else
optional_string_fred("$Formula:");
}
}
} else {
SCP_string msg = "Warning: This mission contains fiction viewer data, but you are saving in the retail "
Expand Down
Loading