MCPcopy Create free account
hub / github.com/OpenFodder/openfodder / SaveCampaign

Method SaveCampaign

Source/Campaign.cpp:120–158  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

118}
119
120bool cCampaign::SaveCampaign() {
121 Json Campaign;
122 Campaign["Author"] = mAuthor;
123 Campaign["Name"] = mName;
124
125 // Each Mission
126 for (auto CurrentMission : mMissions) {
127 Json Mission;
128 Mission["Name"] = CurrentMission->mName;
129
130 // Each Phase of a mission
131 for(auto CurrentPhase : CurrentMission->mPhases) {
132 Json Phase;
133 Phase["MapName"] = CurrentPhase->mMapFilename;
134 Phase["Name"] = CurrentPhase->mName;
135 Phase["Aggression"][0] = CurrentPhase->mAggression.mMin;
136 Phase["Aggression"][1] = CurrentPhase->mAggression.mMax;
137
138 Phase["Grenades"] = CurrentPhase->mGrenades;
139 Phase["Rockets"] = CurrentPhase->mRockets;
140
141 for (auto Goal : CurrentPhase->mGoals)
142 Phase["Objectives"].push_back(mMissionGoal_Titles[Goal - 1]);
143
144 Mission["Phases"].push_back(Phase);
145 }
146 Campaign["Missions"].push_back(Mission);
147 }
148
149 // Save the campaign
150 std::ofstream MissionFile(GetPathToCampaign());
151 if (MissionFile.is_open()) {
152 MissionFile << Campaign.dump(1);
153 MissionFile.close();
154 return true;
155 }
156
157 return false;
158}
159
160/**
161 * Load a campaign

Callers

nothing calls this directly

Calls 3

dumpMethod · 0.80
closeMethod · 0.80
push_backMethod · 0.45

Tested by

no test coverage detected