13 #include <vlutil/vlString.h>
14 #include <vlutil/vlFilename.h>
26 #include <vlpi/simulationAddress.h>
28 #include <boost/unordered_map.hpp>
87 virtual bool readScenarioFile(
const DtFilename&
filename);
91 bool saveAsZipFile()
const;
92 virtual void setSaveAsZipFile(
bool);
99 static bool saveBufferToScenarioZipFile(
const DtFilename& scenanarioZipFile,
const DtFilename& zipContentsFile,
101 static bool saveBufferToScenarioZipFile(
const DtFilename& scenanarioZipFile,
const DtFilename& zipContentsFile,
102 const char* buffer,
int length);
107 static bool readBufferFromScenarioZipFile(
const DtFilename& scenanarioZipFile,
const DtFilename& zipContentsFile,
108 DtString& buffer,
bool onlyNeedsExtensionMatch =
true);
111 static bool fileExistsInZipFile(
const DtFilename& scenanarioZipFile,
const DtFilename& zipContentsFile,
112 bool onlyNeedsExtensionMatch =
true);
116 static bool extractScenarioFileFromZipFile(
const DtFilename& scenarioZipFile,
const DtFilename& zipContentsFile,
117 bool onlyNeedsExtensionMatch =
true);
120 static bool readScenarioFromZipFile(
const DtFilename& f,
DtScenario& scenario);
123 static bool saveFileToScenarioZipFile(
const DtFilename& scenanarioZipFile,
const DtFilename& zipContentsFile);
126 static bool isScenarioZipFile(
const DtFilename&);
133 virtual void setupScenarioFilenames(
const DtFilename& scenarioFilename,
134 bool saveObjectMap =
true);
138 virtual bool save(
const DtFilename&
filename,
139 bool saveObjectMap =
true);
149 virtual void setComponentAttachmentRule(
int rule);
150 virtual int componentAttachmentRule()
const;
153 virtual void setComponentAttachmentTableFilename(
const DtFilename&
filename);
154 virtual const DtFilename& componentAttachmentTableFilename()
const;
157 virtual void setTerrainDatabaseFilename(
const DtFilename&
filename);
158 virtual const DtFilename& terrainDatabaseFilename()
const;
161 virtual void setGuiTerrainDatabaseFilename(
const DtFilename&
filename);
162 virtual const DtFilename& guiTerrainDatabaseFilename()
const;
165 virtual void setOrderOfBattleFilename(
const DtFilename&
filename);
166 virtual DtFilename orderOfBattleFilename()
const;
169 virtual void setScenarioScriptsFilename(
const DtFilename&
filename);
170 virtual DtFilename scenarioScriptsFilename()
const;
173 virtual void setOrbatFilename(
const DtFilename&
filename);
174 virtual DtFilename orbatFilename()
const;
177 virtual void setPlanFilename(
const DtFilename&
filename);
178 virtual DtFilename planFilename()
const;
182 virtual void setGlobalPlanFilename(
const DtFilename&
filename);
183 virtual DtFilename globalPlanFilename()
const;
187 virtual void setParameterDatabaseFilename(
const DtFilename&
filename);
188 virtual const DtFilename& parameterDatabaseFilename()
const;
191 virtual void setPhysicalWorldFilename(
const DtFilename&
filename);
192 virtual const DtFilename& physicalWorldFilename()
const;
195 virtual void setObjectMapFilename(
const DtFilename&
filename);
196 virtual DtFilename objectMapFilename()
const;
200 virtual void setOverlayFilename(
const DtFilename&
filename);
201 virtual DtFilename overlayFilename()
const;
204 virtual void setSelectionGroupsFilename(
const DtFilename&
filename);
205 virtual DtFilename selectionGroupsFilename()
const;
209 virtual void setSymbolMapFilename(
const DtFilename&
filename);
210 virtual const DtFilename& symbolMapFilename()
const;
214 virtual void setCreateMenuFilename(
const DtFilename&
filename);
215 virtual const DtFilename& createMenuFilename()
const;
220 virtual void setForceHostilityFilename(
const DtFilename&
filename);
221 virtual DtFilename forceHostilityFilename()
const;
226 virtual void setScenarioExtrasFilename(
const DtFilename& f);
227 virtual DtFilename scenarioExtrasFilename()
const;
235 virtual void setUseDayNightIlluminationModel(
bool);
236 virtual bool useDayNightIlluminationModel()
const;
239 virtual void setTimeMultiplier(DtReal multiplier);
240 virtual DtReal timeMultiplier()
const;
243 virtual void setAutoReorganize(
const bool& flag);
244 virtual const bool& autoReorganize()
const;
247 virtual void setRandomNumberSeed(
long int numberSeed);
248 virtual long int randomNumberSeed()
const;
251 virtual DtString frameRateModeString()
const;
253 virtual void setFrameRateModeString(
DtString value);
257 virtual DtReal frameDeltaTime()
const;
258 virtual void setFrameDeltaTime(DtReal value);
262 virtual DtTime runDurationTime()
const;
263 virtual void setRunDurationTime(
DtTime time);
266 virtual void setSimTime(
DtTime time);
267 virtual DtTime simTime()
const;
270 virtual void setExerciseStartDateAndTime(
int year,
int month,
int day,
int hour,
int minute,
int second);
273 virtual void setExerciseStartDateAndTime(
DtTime time);
276 virtual void setExerciseStartTime(
DtTime time);
279 virtual DtTime exerciseStartTime()
const;
285 virtual void setSetScenarioStartTimeAtSpecifiedLocalTimeOnFirstObjectCreation(
bool,
int i = 10 * 3600);
286 virtual int setScenarioStartTimeAtSpecifiedLocalTimeOnFirstObjectCreation()
const;
287 virtual bool shouldSetScenarioStartTimeAtSpecifiedLocalTimeOnFirstObjectCreation()
const;
291 virtual void setCreateGlobalEnvironment(
bool b);
292 virtual bool createGlobalEnvironment()
const;
298 virtual void setCreateGlobalDynamicTerrain(
bool b);
299 virtual bool createGlobalDynamicTerrain()
const;
307 virtual void addAdditionalOpdFilename(
const DtString&);
308 virtual void removeAdditonalOpdFilename(
int iIndex);
314 virtual void setScenarioDescription(
const DtString&);
315 virtual DtString scenarioDescription()
const;
326 virtual void addSimulationModelSetFilename(
const DtString&);
327 virtual void removeSimulationModelSetFilename(
int iIndex);
329 virtual void setSimulationModelSetFilenames(
const std::vector<DtFilename>&);
330 virtual void setSimulationModelSetFilenames(
const std::vector<std::string>&);
346 virtual DtString scenarioName()
const;
347 virtual void setScenarioName(
const DtString& name);
348 virtual bool scenarioNameSpecified()
const;
356 static DtFilename validTerrainFile(
const DtFilename&);
359 virtual bool isParameterDatabaseRwStringSpecified();
360 virtual bool isPhysicalWorldRwStringSpecified();
361 virtual bool isOrderOfBattleRwStringSpecified();
362 virtual bool isScenarioScriptsRwStringSpecified();
363 virtual bool isOrbatRwStringSpecified();
364 virtual bool isOverlayRwStringSpecified();
365 virtual bool isSelectionGroupsRwStringSpecified();
366 virtual bool isSymbolMapRwStringSpecified();
367 virtual bool isCreateMenuRwStringSpecified();
368 virtual bool isPlanRwStringSpecified();
369 virtual bool isObjectMapRwStringSpecified();
370 virtual bool isTimeMultiplierSpecified();
371 virtual bool isAutoReorganizeRwStringSpecified();
372 virtual bool isRandomNumberSeedSpecified();
373 virtual bool isFrameRateModeSpecified();
374 virtual bool isRunDurationTimeSpecified();
375 virtual bool isFrameDeltaTimeSpecified();
376 virtual bool isSimTimeSpecified();
377 virtual bool isExerciseStartTimeSpecified();
378 virtual bool isForceHostilityRWStringSpecified();
379 virtual bool isScenarioExtrasRWStringSpecified();
381 virtual void setFilename(
const DtFilename&);
382 virtual const DtFilename&
filename()
const;
385 virtual bool writeScenarioFile(
const DtFilename &
filename);
389 virtual void putSelf(std::string& fp,
int indentLevel = 0,
bool writeUnspecified =
false,
402 virtual void finalizeGetSelf();
407 virtual bool isValid(
bool allowEmptyFilenames =
true,
DtString* retMessage = 0)
const;
410 virtual double version()
const;
413 virtual bool relativeToScenarioFile()
const;
416 virtual void setToCurrentVersion();
419 static double currentScenarioVersion();
424 virtual bool mapUUIDToScenarioDataFromOobInScenario(
const DtFilename& scenarioFile,
426 virtual bool mapUUIDToScenarioDataFromOobInScenario(DtlInputStream*,
ScenarioDataMap& scenarioDataMap,
bool mapUUIDOnly =
true);
429 virtual bool mapUUIDToScenarioDataFromOobInScenario(
ScenarioDataMap& scenarioDataMap,
bool mapUUIDOnly =
true);
434 virtual void updateSimulationModelSetFilenames();
437 static DtFilename reworkDataDirectory(
const DtFilename&);
440 static DtFilename replaceDirectoryWithAppropriateVariable(
const DtFilename&);
443 virtual void resolveSimulationModelSetPaths();
446 virtual void resolveDataPaths();
451 static DtFrameMode getFrameModeTypeFromFrameModeName(
465 virtual DtFilename absoluteFilename(
const DtFilename&)
const;
581 bool& remapped,
void* usr);
619 time_t startTimeOfDay = 0,
bool import =
false,
const DtSimulationAddress& address = DtSimSendToAll);