13 #include <vlutil/vlString.h>
14 #include <vlutil/vlFilename.h>
25 #include <vlpi/simulationAddress.h>
27 #include <boost/unordered_map.hpp>
75 virtual bool readScenarioFile(
const DtFilename&
filename);
79 bool saveAsZipFile()
const;
80 virtual void setSaveAsZipFile(
bool);
87 static bool saveBufferToScenarioZipFile(
const DtFilename& scenanarioZipFile,
const DtFilename& zipContentsFile,
89 static bool saveBufferToScenarioZipFile(
const DtFilename& scenanarioZipFile,
const DtFilename& zipContentsFile,
90 const char* buffer,
int length);
95 static bool readBufferFromScenarioZipFile(
const DtFilename& scenanarioZipFile,
const DtFilename& zipContentsFile,
96 DtString& buffer,
bool onlyNeedsExtensionMatch =
true);
99 static bool fileExistsInZipFile(
const DtFilename& scenanarioZipFile,
const DtFilename& zipContentsFile,
100 bool onlyNeedsExtensionMatch =
true);
104 static bool extractScenarioFileFromZipFile(
const DtFilename& scenarioZipFile,
const DtFilename& zipContentsFile,
105 bool onlyNeedsExtensionMatch =
true);
108 static bool readScenarioFromZipFile(
const DtFilename& f,
DtScenario& scenario);
111 static bool saveFileToScenarioZipFile(
const DtFilename& scenanarioZipFile,
const DtFilename& zipContentsFile);
114 static bool isScenarioZipFile(
const DtFilename&);
121 virtual void setupScenarioFilenames(
const DtFilename& scenarioFilename,
122 bool saveObjectMap =
true);
126 virtual bool save(
const DtFilename& filename,
127 bool saveObjectMap =
true);
137 virtual void setComponentAttachmentRule(
int rule);
138 virtual int componentAttachmentRule()
const;
141 virtual void setComponentAttachmentTableFilename(
const DtFilename& filename);
142 virtual const DtFilename& componentAttachmentTableFilename()
const;
145 virtual void setTerrainDatabaseFilename(
const DtFilename& filename);
146 virtual const DtFilename& terrainDatabaseFilename()
const;
149 virtual void setGuiTerrainDatabaseFilename(
const DtFilename& filename);
150 virtual const DtFilename& guiTerrainDatabaseFilename()
const;
153 virtual void setOrderOfBattleFilename(
const DtFilename& filename);
154 virtual DtFilename orderOfBattleFilename()
const;
157 virtual void setScenarioScriptsFilename(
const DtFilename& filename);
158 virtual DtFilename scenarioScriptsFilename()
const;
161 virtual void setPlanFilename(
const DtFilename& filename);
162 virtual DtFilename planFilename()
const;
166 virtual void setGlobalPlanFilename(
const DtFilename& filename);
167 virtual DtFilename globalPlanFilename()
const;
171 virtual void setParameterDatabaseFilename(
const DtFilename& filename);
172 virtual const DtFilename& parameterDatabaseFilename()
const;
175 virtual void setPhysicalWorldFilename(
const DtFilename& filename);
176 virtual const DtFilename& physicalWorldFilename()
const;
179 virtual void setObjectMapFilename(
const DtFilename& filename);
180 virtual DtFilename objectMapFilename()
const;
184 virtual void setOverlayFilename(
const DtFilename& filename);
185 virtual DtFilename overlayFilename()
const;
188 virtual void setSelectionGroupsFilename(
const DtFilename& filename);
189 virtual DtFilename selectionGroupsFilename()
const;
193 virtual void setSymbolMapFilename(
const DtFilename& filename);
194 virtual const DtFilename& symbolMapFilename()
const;
198 virtual void setCreateMenuFilename(
const DtFilename& filename);
199 virtual const DtFilename& createMenuFilename()
const;
204 virtual void setForceHostilityFilename(
const DtFilename& filename);
205 virtual DtFilename forceHostilityFilename()
const;
210 virtual void setScenarioExtrasFilename(
const DtFilename& f);
211 virtual DtFilename scenarioExtrasFilename()
const;
215 virtual void setTimeMultiplier(DtReal multiplier);
216 virtual DtReal timeMultiplier()
const;
219 virtual void setAutoReorganize(
const bool& flag);
220 virtual const bool& autoReorganize()
const;
223 virtual void setRandomNumberSeed(
long int numberSeed);
224 virtual long int randomNumberSeed()
const;
227 virtual DtString frameRateModeString()
const;
229 virtual void setFrameRateModeString(
DtString value);
233 virtual DtReal frameDeltaTime()
const;
234 virtual void setFrameDeltaTime(DtReal value);
238 virtual DtTime runDurationTime()
const;
239 virtual void setRunDurationTime(
DtTime time);
242 virtual void setSimTime(
DtTime time);
243 virtual DtTime simTime()
const;
246 virtual void setExerciseStartDateAndTime(
int year,
int month,
int day,
int hour,
int minute,
int second);
249 virtual void setExerciseStartDateAndTime(
DtTime time);
252 virtual void setExerciseStartTime(
DtTime time);
255 virtual DtTime exerciseStartTime()
const;
261 virtual void setSetScenarioStartTimeAtSpecifiedLocalTimeOnFirstObjectCreation(
bool,
int i = 10 * 3600);
262 virtual int setScenarioStartTimeAtSpecifiedLocalTimeOnFirstObjectCreation()
const;
263 virtual bool shouldSetScenarioStartTimeAtSpecifiedLocalTimeOnFirstObjectCreation()
const;
267 virtual void setCreateGlobalEnvironment(
bool b);
268 virtual bool createGlobalEnvironment()
const;
274 virtual void setCreateGlobalDynamicTerrain(
bool b);
275 virtual bool createGlobalDynamicTerrain()
const;
283 virtual void addAdditionalOpdFilename(
const DtString&);
284 virtual void removeAdditonalOpdFilename(
int iIndex);
290 virtual void setScenarioDescription(
const DtString&);
291 virtual DtString scenarioDescription()
const;
300 virtual void addSimulationModelSetFilename(
const DtString&);
301 virtual void removeSimulationModelSetFilename(
int iIndex);
303 virtual void setSimulationModelSetFilenames(
const std::vector<DtFilename>&);
304 virtual void setSimulationModelSetFilenames(
const std::vector<std::string>&);
320 virtual DtString scenarioName()
const;
321 virtual void setScenarioName(
const DtString& name);
322 virtual bool scenarioNameSpecified()
const;
330 static DtFilename validTerrainFile(
const DtFilename&);
333 virtual bool isParameterDatabaseRwStringSpecified();
334 virtual bool isPhysicalWorldRwStringSpecified();
335 virtual bool isOrderOfBattleRwStringSpecified();
336 virtual bool isScenarioScriptsRwStringSpecified();
337 virtual bool isOverlayRwStringSpecified();
338 virtual bool isSelectionGroupsRwStringSpecified();
339 virtual bool isSymbolMapRwStringSpecified();
340 virtual bool isCreateMenuRwStringSpecified();
341 virtual bool isPlanRwStringSpecified();
342 virtual bool isObjectMapRwStringSpecified();
343 virtual bool isTimeMultiplierSpecified();
344 virtual bool isAutoReorganizeRwStringSpecified();
345 virtual bool isRandomNumberSeedSpecified();
346 virtual bool isFrameRateModeSpecified();
347 virtual bool isRunDurationTimeSpecified();
348 virtual bool isFrameDeltaTimeSpecified();
349 virtual bool isSimTimeSpecified();
350 virtual bool isExerciseStartTimeSpecified();
351 virtual bool isForceHostilityRWStringSpecified();
352 virtual bool isScenarioExtrasRWStringSpecified();
354 virtual void setFilename(
const DtFilename&);
355 virtual const DtFilename&
filename()
const;
358 virtual bool writeScenarioFile(
const DtFilename & filename);
362 virtual void putSelf(std::string& fp,
int indentLevel = 0,
bool writeUnspecified =
false,
375 virtual void finalizeGetSelf();
380 virtual bool isValid(
bool allowEmptyFilenames =
true,
DtString* retMessage = 0)
const;
383 virtual double version()
const;
386 virtual bool relativeToScenarioFile()
const;
389 virtual void setToCurrentVersion();
392 static double currentScenarioVersion();
397 virtual bool mapUUIDToNameFromOobInScenario(
const DtFilename& scenarioFile,
398 boost::unordered_map<DtUUID, std::string>& uuidToMarkingTextMap,
bool mapUUIDOnly =
true);
399 virtual bool mapUUIDToNameFromOobInScenario(DtlInputStream*, boost::unordered_map<DtUUID, std::string>& uuidToMarkingTextMap,
bool mapUUIDOnly =
true);
405 static DtFrameMode getFrameModeTypeFromFrameModeName(
419 virtual DtFilename absoluteFilename(
const DtFilename&)
const;
530 bool& remapped,
void* usr);
567 time_t startTimeOfDay = 0,
bool import =
false,
const DtSimulationAddress& address = DtSimSendToAll);