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&);
444 virtual void resolveSimulationModelSetPaths();
447 virtual void resolveDataPaths();
453 static DtFrameMode getFrameModeTypeFromFrameModeName(
467 virtual DtFilename absoluteFilename(
const DtFilename&)
const;
583 bool& remapped,
void* usr);
621 time_t startTimeOfDay = 0,
bool import =
false,
const DtSimulationAddress& address = DtSimSendToAll);
bool(* DtLoadBalancingFcn)(DtAddressMap *map, const DtList *backends, bool &remapped, void *usr)
Return true from this function to signal success of load balancing, however, set remapped to true if ...
Definition: scenario.h:582
std::string label
Definition: scenario.h:60
DtFilename myObjectMapFilename
Definition: scenario.h:516
DtObjectType objectType
Definition: scenario.h:59
const int DtSimulationObjectGroupCreationMode
Definition: scenario.h:607
DtFilename myOverlayFilename
Definition: scenario.h:504
DtFilename myScenarioScriptsFilename
Definition: scenario.h:489
DtFilename myPlanFilename
Definition: scenario.h:495
Scenario data that can be read from the order of battle file.
Definition: scenario.h:56
Class which holds a list of string key and string value pairs. This class is a DtReaderWriter, and also has associated DtBufferSerialize methods available.
Definition: rwKeyValueList.h:21
static DtString theOrbatExtension
Definition: scenario.h:560
DtFilename myGlobalPlanFilename
Definition: scenario.h:498
DtRwReal myRunDurationTime
Definition: scenario.h:536
DtRwString myScenarioScriptsRwString
Definition: scenario.h:490
Definition: scenario.h:52
bool(* DtRemappingFcn)(DtBackendMap *map, const std::set< DtSimulationAddress > &expectedBackends, void *usr)
Definition: scenario.h:585
DtRwString myForceHostilityRwString
Definition: scenario.h:520
DtRwString myOverlayRwString
Definition: scenario.h:505
static DtString theObjectMapExtension
Definition: scenario.h:567
DtRwNLengthStringVector is a named, readable/writable vector of strings of arbitrary length...
Definition: rwNLengthStringVector.h:28
bool myAutoReorganize
Definition: scenario.h:527
static DtString thePhysicalWorldFilenameExtension
Definition: scenario.h:557
std::string markingText
Definition: scenario.h:58
const char * filename
Definition: ioapi.h:38
DT_DLL_readerWriter DtBoost::shared_ptr< DtEnvironment > DtEnvironmentSP
Definition: readerWriter.h:30
DtRwReal myVersion
The version of the scenario file.
Definition: scenario.h:550
DtFilename myPhysicalWorldFilename
Definition: scenario.h:480
static DtString theSelectionGroupsExtension
Definition: scenario.h:562
Definition: readerWriter.h:85
DtFilename mySymbolMapFilename
Definition: scenario.h:510
Description: Readable, Writable DtString Variable substitutions are done on this object when it is re...
Definition: rwString.h:20
DtRwString myCreateMenuRwString
Definition: scenario.h:514
DtFilename mySelectionGroupsFilename
Definition: scenario.h:507
DtRwReal myTimeMultiplier
Definition: scenario.h:525
Definition: readerWriterRegistry.h:39
Definition: scenario.h:587
Contains the DtUUID class declaration.
DtRwString myTerrainDatabaseRwString
Definition: scenario.h:478
DtRwString myPhysicalWorldRwString
Definition: scenario.h:481
DtRwNLengthStringVector myAdditionalOpdFilenames
Definition: scenario.h:541
class DtBackendMap:
Definition: backendMap.h:21
Definition: objectType.h:27
bool mySaveAsZipFile
Whether or not to treat the file as a zip file when saving.
Definition: scenario.h:553
DtFilename myTerrainDatabaseFilename
Definition: scenario.h:477
DtFilename myOrderOfBattleFilename
Definition: scenario.h:486
class DtAddressMap:
Definition: addressMap.h:22
DtRwString myOrderOfBattleRwString
Definition: scenario.h:487
DtFilename myComponentAttachmentTableFilename
Definition: scenario.h:473
const int DtSimulationObjectGroupDefaultFlags
Definition: scenario.h:613
const int DtSimulationObjectGroupUseGroupNameToDisambiguate
Definition: scenario.h:605
std::string myLoadBalancer
Definition: scenario.h:596
static DtString theSymbolMapExtension
Definition: scenario.h:563
static DtString theCreateMenuExtension
Definition: scenario.h:564
std::list< const DtRwVariableBindings * > DtVariableBindingsList
Definition: readerWriterRegistry.h:29
const int DtImportScenarioKeepOnlyOriginalSimulationObjects
Definition: scenario.h:609
DtRwInt myRandomNumberSeed
Definition: scenario.h:530
Description: Readable, Writable int.
Definition: rwInt.h:25
DtRwString mySelectionGroupsRwString
Definition: scenario.h:508
std::vector< DtFilename > SearchPaths
Definition: readerWriter.h:92
DtRwReal mySimTime
Definition: scenario.h:538
DtFilename myCreateMenuFilename
Definition: scenario.h:513
static DtString thePlanExtension
Definition: scenario.h:565
static double theScenarioVersion
Definition: scenario.h:573
DtFilename myFilename
Definition: scenario.h:475
DtRwInt myComponentAttachmentRule
Definition: scenario.h:471
DtRwString myGuiTerrainDatabaseRwString
Definition: scenario.h:484
const int DtImportScenarioCreateSelectionGroup
Definition: scenario.h:603
static DtString theScenarioScriptsExtension
Definition: scenario.h:559
static DtString theForceHostilityExtension
Definition: scenario.h:570
DtFilename myOrbatFilename
Definition: scenario.h:492
const int DtSimulationObjectGroupPreserveForceInformation
Definition: scenario.h:604
static DtString theFileExtension
Definition: scenario.h:569
virtual void getSelf(DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference())
Top level to read itself from an input stream. searchPath is passed down to all DtReaderWriter member...
const int DtImportScenarioCreateUniqueNamesOnImport
Definition: scenario.h:601
virtual void putSelf(std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename())
Top level call to write itself to file. If write unspecified is true, will write entries that are uns...
DtFilename myScenarioExtrasFilename
Definition: scenario.h:522
DtFilename myGuiTerrainDatabaseFilename
Definition: scenario.h:483
Description: Readable, Writable DtReal (double)
Definition: rwReal.h:27
static DtString theOverlayExtension
Definition: scenario.h:561
DtRwKeyValueList myScenarioData
Definition: scenario.h:547
DtFilename myParameterDatabaseFilename
Definition: scenario.h:501
bool(* DtPreserveMappingsFcn)(void *usr)
Used by saveScenario to determine if original (true) or new mappings should be saved.
Definition: vrfRemoteController.h:89
Description: Readable, Writable bool.
Definition: rwBoolean.h:26
DtRwString myScenarioName
Definition: scenario.h:545
DtRwString myParameterDatabaseRwString
Definition: scenario.h:502
DtRwNLengthStringVector mySimulationModelSetFilenames
Definition: scenario.h:542
DtRwString myScenarioExtrasRWString
Definition: scenario.h:523
const int DtImportScenarioImportScenarioEvents
Definition: scenario.h:602
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
DtRwString myPlanRwString
Definition: scenario.h:496
boost::unordered_map< DtUUID, ScenarioData > ScenarioDataMap
Definition: scenario.h:63
const int DtSimulationObjectGroupAllowAltitudePlacement
Definition: scenario.h:608
static DtString theOrderOfBattleExtension
Definition: scenario.h:558
#define DT_DLL_vrfutil
This file is used to determine how to build Disable inconsistent dll linkage warning Visual Studio 6...
Definition: vrfutilDefines.h:34
DtRwString mySymbolMapRwString
Definition: scenario.h:511
DtRwReal myExerciseStartTime
Definition: scenario.h:539
const DtReaderWriter & operator=(const DtReaderWriter &orig)
assignment operator
static DtString theScenarioDataExtension
Definition: scenario.h:571
virtual DtString toXml() const
Routines to archive/de-archive from an XML Environment.
DtFrameMode
Definition: messageTypes.h:449
DtFrameMode myFrameRateMode
Definition: scenario.h:533
static DtString theGlobalPlanExtension
Definition: scenario.h:566
DtRwString myObjectMapRwString
Definition: scenario.h:517
const int DtSimulationObjectGroupAltitudesAreAboveTerrain
Definition: scenario.h:606
const int DtImportScenarioDefaultFlags
Definition: scenario.h:611
DtRwString myFrameRateModeString
Definition: scenario.h:532
DtRwString myOrbatRwString
Definition: scenario.h:493
DtRwString myGlobalPlanRwString
Definition: scenario.h:499
void * myLoadBalancingUserData
Definition: scenario.h:598
DtRwReal myFrameDeltaTime
Definition: scenario.h:534
DtLoadBalancingFcn myLoadBalancingFcn
Definition: scenario.h:597
DtRwString myComponentAttachmentTableRwString
Definition: scenario.h:474
static const DtFilename & appPath()
Gets the current working directory. The first time this accessor is called, it determines the current...
DtRwBoolean myAutoReorganizeRW
Definition: scenario.h:528
static DtString theParameterDatabaseExtension
Definition: scenario.h:568
DtFilename myForceHostilityFilename
Definition: scenario.h:519
DtRwNLengthStringVector myResolvedSimulationModelSetFilenames
Definition: scenario.h:543