13 #include <vlutil/vlString.h>
14 #include <vlutil/vlFilename.h>
26 #include <vlpi/simulationAddress.h>
28 #include <boost/unordered_map.hpp>
88 virtual bool readScenarioFile(
const DtFilename&
filename);
92 bool saveAsZipFile()
const;
93 virtual void setSaveAsZipFile(
bool);
100 static bool saveBufferToScenarioZipFile(
const DtFilename& scenanarioZipFile,
const DtFilename& zipContentsFile,
102 static bool saveBufferToScenarioZipFile(
const DtFilename& scenanarioZipFile,
const DtFilename& zipContentsFile,
103 const char* buffer,
int length);
108 static bool readBufferFromScenarioZipFile(
const DtFilename& scenanarioZipFile,
const DtFilename& zipContentsFile,
109 DtString& buffer,
bool onlyNeedsExtensionMatch =
true);
112 static bool fileExistsInZipFile(
const DtFilename& scenanarioZipFile,
const DtFilename& zipContentsFile,
113 bool onlyNeedsExtensionMatch =
true);
117 static bool extractScenarioFileFromZipFile(
const DtFilename& scenarioZipFile,
const DtFilename& zipContentsFile,
118 bool onlyNeedsExtensionMatch =
true);
121 static bool readScenarioFromZipFile(
const DtFilename& f,
DtScenario& scenario);
124 static bool saveFileToScenarioZipFile(
const DtFilename& scenanarioZipFile,
const DtFilename& zipContentsFile);
127 static bool isScenarioZipFile(
const DtFilename&);
134 virtual void setupScenarioFilenames(
const DtFilename& scenarioFilename,
135 bool saveObjectMap =
true);
139 virtual bool save(
const DtFilename&
filename,
140 bool saveObjectMap =
true);
150 virtual void setComponentAttachmentRule(
int rule);
151 virtual int componentAttachmentRule()
const;
154 virtual void setComponentAttachmentTableFilename(
const DtFilename&
filename);
155 virtual const DtFilename& componentAttachmentTableFilename()
const;
158 virtual void setTerrainDatabaseFilename(
const DtFilename&
filename);
159 virtual const DtFilename& terrainDatabaseFilename()
const;
162 virtual void setGuiTerrainDatabaseFilename(
const DtFilename&
filename);
163 virtual const DtFilename& guiTerrainDatabaseFilename()
const;
166 virtual void setOrderOfBattleFilename(
const DtFilename&
filename);
167 virtual DtFilename orderOfBattleFilename()
const;
170 virtual void setScenarioScriptsFilename(
const DtFilename&
filename);
171 virtual DtFilename scenarioScriptsFilename()
const;
174 virtual void setOrbatFilename(
const DtFilename&
filename);
175 virtual DtFilename orbatFilename()
const;
178 virtual void setPlanFilename(
const DtFilename&
filename);
179 virtual DtFilename planFilename()
const;
183 virtual void setGlobalPlanFilename(
const DtFilename&
filename);
184 virtual DtFilename globalPlanFilename()
const;
188 virtual void setParameterDatabaseFilename(
const DtFilename&
filename);
189 virtual const DtFilename& parameterDatabaseFilename()
const;
192 virtual void setPhysicalWorldFilename(
const DtFilename&
filename);
193 virtual const DtFilename& physicalWorldFilename()
const;
196 virtual void setObjectMapFilename(
const DtFilename&
filename);
197 virtual DtFilename objectMapFilename()
const;
201 virtual void setOverlayFilename(
const DtFilename&
filename);
202 virtual DtFilename overlayFilename()
const;
205 virtual void setSelectionGroupsFilename(
const DtFilename&
filename);
206 virtual DtFilename selectionGroupsFilename()
const;
210 virtual void setSymbolMapFilename(
const DtFilename&
filename);
211 virtual const DtFilename& symbolMapFilename()
const;
215 virtual void setCreateMenuFilename(
const DtFilename&
filename);
216 virtual const DtFilename& createMenuFilename()
const;
221 virtual void setForceHostilityFilename(
const DtFilename&
filename);
222 virtual DtFilename forceHostilityFilename()
const;
227 virtual void setScenarioExtrasFilename(
const DtFilename& f);
228 virtual DtFilename scenarioExtrasFilename()
const;
236 virtual void setUseDayNightIlluminationModel(
bool);
237 virtual bool useDayNightIlluminationModel()
const;
240 virtual void setTimeMultiplier(DtReal multiplier);
241 virtual DtReal timeMultiplier()
const;
244 virtual void setAutoReorganize(
const bool& flag);
245 virtual const bool& autoReorganize()
const;
248 virtual void setRandomNumberSeed(
long int numberSeed);
249 virtual long int randomNumberSeed()
const;
252 virtual DtString frameRateModeString()
const;
254 virtual void setFrameRateModeString(
DtString value);
258 virtual DtReal frameDeltaTime()
const;
259 virtual void setFrameDeltaTime(DtReal value);
263 virtual DtTime runDurationTime()
const;
264 virtual void setRunDurationTime(
DtTime time);
267 virtual void setSimTime(
DtTime time);
268 virtual DtTime simTime()
const;
271 virtual void setExerciseStartDateAndTime(
int year,
int month,
int day,
int hour,
int minute,
int second);
274 virtual void setExerciseStartDateAndTime(
DtTime time);
277 virtual void setExerciseStartTime(
DtTime time);
280 virtual DtTime exerciseStartTime()
const;
286 virtual void setSetScenarioStartTimeAtSpecifiedLocalTimeOnFirstObjectCreation(
bool,
int i = 10 * 3600);
287 virtual int setScenarioStartTimeAtSpecifiedLocalTimeOnFirstObjectCreation()
const;
288 virtual bool shouldSetScenarioStartTimeAtSpecifiedLocalTimeOnFirstObjectCreation()
const;
292 virtual void setCreateGlobalEnvironment(
bool b);
293 virtual bool createGlobalEnvironment()
const;
299 virtual void setCreateGlobalDynamicTerrain(
bool b);
300 virtual bool createGlobalDynamicTerrain()
const;
308 virtual void addAdditionalOpdFilename(
const DtString&);
309 virtual void removeAdditonalOpdFilename(
int iIndex);
315 virtual void setScenarioDescription(
const DtString&);
316 virtual DtString scenarioDescription()
const;
327 virtual void addSimulationModelSetFilename(
const DtString&);
328 virtual void removeSimulationModelSetFilename(
int iIndex);
330 virtual void setSimulationModelSetFilenames(
const std::vector<DtFilename>&);
331 virtual void setSimulationModelSetFilenames(
const std::vector<std::string>&);
347 virtual DtString scenarioName()
const;
348 virtual void setScenarioName(
const DtString& name);
349 virtual bool scenarioNameSpecified()
const;
357 static DtFilename validTerrainFile(
const DtFilename&);
360 virtual bool isParameterDatabaseRwStringSpecified();
361 virtual bool isPhysicalWorldRwStringSpecified();
362 virtual bool isOrderOfBattleRwStringSpecified();
363 virtual bool isScenarioScriptsRwStringSpecified();
364 virtual bool isOrbatRwStringSpecified();
365 virtual bool isOverlayRwStringSpecified();
366 virtual bool isSelectionGroupsRwStringSpecified();
367 virtual bool isSymbolMapRwStringSpecified();
368 virtual bool isCreateMenuRwStringSpecified();
369 virtual bool isPlanRwStringSpecified();
370 virtual bool isObjectMapRwStringSpecified();
371 virtual bool isTimeMultiplierSpecified();
372 virtual bool isAutoReorganizeRwStringSpecified();
373 virtual bool isRandomNumberSeedSpecified();
374 virtual bool isFrameRateModeSpecified();
375 virtual bool isRunDurationTimeSpecified();
376 virtual bool isFrameDeltaTimeSpecified();
377 virtual bool isSimTimeSpecified();
378 virtual bool isExerciseStartTimeSpecified();
379 virtual bool isForceHostilityRWStringSpecified();
380 virtual bool isScenarioExtrasRWStringSpecified();
382 virtual void setFilename(
const DtFilename&);
383 virtual const DtFilename&
filename()
const;
386 virtual bool writeScenarioFile(
const DtFilename &
filename);
390 virtual void putSelf(std::string& fp,
int indentLevel = 0,
bool writeUnspecified =
false,
403 virtual void finalizeGetSelf();
408 virtual bool isValid(
bool allowEmptyFilenames =
true,
DtString* retMessage = 0)
const;
411 virtual double version()
const;
414 virtual bool relativeToScenarioFile()
const;
417 virtual void setToCurrentVersion();
420 static double currentScenarioVersion();
425 virtual bool mapUUIDToScenarioDataFromOobInScenario(
const DtFilename& scenarioFile,
427 virtual bool mapUUIDToScenarioDataFromOobInScenario(DtlInputStream*,
ScenarioDataMap& scenarioDataMap,
bool mapUUIDOnly =
true);
430 virtual bool mapUUIDToScenarioDataFromOobInScenario(
ScenarioDataMap& scenarioDataMap,
bool mapUUIDOnly =
true);
435 virtual void updateSimulationModelSetFilenames();
438 static DtFilename reworkDataDirectory(
const DtFilename&);
441 static DtFilename replaceDirectoryWithAppropriateVariable(
const DtFilename&);
445 virtual void resolveSimulationModelSetPaths();
448 virtual void resolveDataPaths();
454 static DtFrameMode getFrameModeTypeFromFrameModeName(
468 virtual DtFilename absoluteFilename(
const DtFilename&)
const;
584 bool& remapped,
void* usr);
622 time_t startTimeOfDay = 0,
bool import =
false,
const DtSimulationAddress& address = DtSimSendToAll);
UUID is a unique ID wrapper class.
Definition: rwUUID.h:229
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:583
std::string label
Definition: scenario.h:60
DtFilename myObjectMapFilename
Definition: scenario.h:517
DtObjectType objectType
Definition: scenario.h:59
const int DtSimulationObjectGroupCreationMode
Definition: scenario.h:608
DtFilename myOverlayFilename
Definition: scenario.h:505
DtFilename myScenarioScriptsFilename
Definition: scenario.h:490
DtFilename myPlanFilename
Definition: scenario.h:496
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:561
DtFilename myGlobalPlanFilename
Definition: scenario.h:499
DtRwReal myRunDurationTime
Definition: scenario.h:537
DtRwString myScenarioScriptsRwString
Definition: scenario.h:491
Definition: scenario.h:52
bool(* DtRemappingFcn)(DtBackendMap *map, const std::set< DtSimulationAddress > &expectedBackends, void *usr)
Definition: scenario.h:586
DtRwString myForceHostilityRwString
Definition: scenario.h:521
DtRwString myOverlayRwString
Definition: scenario.h:506
static DtString theObjectMapExtension
Definition: scenario.h:568
DtRwNLengthStringVector is a named, readable/writable vector of strings of arbitrary length...
Definition: rwNLengthStringVector.h:28
bool myAutoReorganize
Definition: scenario.h:528
static DtString thePhysicalWorldFilenameExtension
Definition: scenario.h:558
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:551
DtFilename myPhysicalWorldFilename
Definition: scenario.h:481
static DtString theSelectionGroupsExtension
Definition: scenario.h:563
Definition: readerWriter.h:85
DtFilename mySymbolMapFilename
Definition: scenario.h:511
Description: Readable, Writable DtString Variable substitutions are done on this object when it is re...
Definition: rwString.h:20
DtRwString myCreateMenuRwString
Definition: scenario.h:515
DtFilename mySelectionGroupsFilename
Definition: scenario.h:508
DtRwReal myTimeMultiplier
Definition: scenario.h:526
Definition: readerWriterRegistry.h:39
Definition: scenario.h:588
Contains the DtUUID class declaration.
DtRwString myTerrainDatabaseRwString
Definition: scenario.h:479
DtRwString myPhysicalWorldRwString
Definition: scenario.h:482
DtRwNLengthStringVector myAdditionalOpdFilenames
Definition: scenario.h:542
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:554
DtFilename myTerrainDatabaseFilename
Definition: scenario.h:478
DtFilename myOrderOfBattleFilename
Definition: scenario.h:487
class DtAddressMap:
Definition: addressMap.h:22
DtRwString myOrderOfBattleRwString
Definition: scenario.h:488
DtFilename myComponentAttachmentTableFilename
Definition: scenario.h:474
const int DtSimulationObjectGroupDefaultFlags
Definition: scenario.h:614
const int DtSimulationObjectGroupUseGroupNameToDisambiguate
Definition: scenario.h:606
std::string myLoadBalancer
Definition: scenario.h:597
static DtString theSymbolMapExtension
Definition: scenario.h:564
static DtString theCreateMenuExtension
Definition: scenario.h:565
std::list< const DtRwVariableBindings * > DtVariableBindingsList
Definition: readerWriterRegistry.h:29
const int DtImportScenarioKeepOnlyOriginalSimulationObjects
Definition: scenario.h:610
DtRwInt myRandomNumberSeed
Definition: scenario.h:531
Description: Readable, Writable int.
Definition: rwInt.h:25
DtRwString mySelectionGroupsRwString
Definition: scenario.h:509
std::vector< DtFilename > SearchPaths
Definition: readerWriter.h:92
DtRwReal mySimTime
Definition: scenario.h:539
DtFilename myCreateMenuFilename
Definition: scenario.h:514
static DtString thePlanExtension
Definition: scenario.h:566
static double theScenarioVersion
Definition: scenario.h:574
DtFilename myFilename
Definition: scenario.h:476
DtUUID parentUuid
Definition: scenario.h:61
DtRwInt myComponentAttachmentRule
Definition: scenario.h:472
DtRwString myGuiTerrainDatabaseRwString
Definition: scenario.h:485
const int DtImportScenarioCreateSelectionGroup
Definition: scenario.h:604
static DtString theScenarioScriptsExtension
Definition: scenario.h:560
static DtString theForceHostilityExtension
Definition: scenario.h:571
DtFilename myOrbatFilename
Definition: scenario.h:493
const int DtSimulationObjectGroupPreserveForceInformation
Definition: scenario.h:605
static DtString theFileExtension
Definition: scenario.h:570
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:602
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:523
DtFilename myGuiTerrainDatabaseFilename
Definition: scenario.h:484
Description: Readable, Writable DtReal (double)
Definition: rwReal.h:27
static DtString theOverlayExtension
Definition: scenario.h:562
DtRwKeyValueList myScenarioData
Definition: scenario.h:548
DtFilename myParameterDatabaseFilename
Definition: scenario.h:502
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:546
DtRwString myParameterDatabaseRwString
Definition: scenario.h:503
DtRwNLengthStringVector mySimulationModelSetFilenames
Definition: scenario.h:543
DtRwString myScenarioExtrasRWString
Definition: scenario.h:524
const int DtImportScenarioImportScenarioEvents
Definition: scenario.h:603
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
DtRwString myPlanRwString
Definition: scenario.h:497
boost::unordered_map< DtUUID, ScenarioData > ScenarioDataMap
Definition: scenario.h:64
const int DtSimulationObjectGroupAllowAltitudePlacement
Definition: scenario.h:609
static DtString theOrderOfBattleExtension
Definition: scenario.h:559
#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:512
DtRwReal myExerciseStartTime
Definition: scenario.h:540
const DtReaderWriter & operator=(const DtReaderWriter &orig)
assignment operator
static DtString theScenarioDataExtension
Definition: scenario.h:572
virtual DtString toXml() const
Routines to archive/de-archive from an XML Environment.
DtFrameMode
Definition: messageTypes.h:449
DtFrameMode myFrameRateMode
Definition: scenario.h:534
static DtString theGlobalPlanExtension
Definition: scenario.h:567
DtRwString myObjectMapRwString
Definition: scenario.h:518
const int DtSimulationObjectGroupAltitudesAreAboveTerrain
Definition: scenario.h:607
const int DtImportScenarioDefaultFlags
Definition: scenario.h:612
DtRwString myFrameRateModeString
Definition: scenario.h:533
DtRwString myOrbatRwString
Definition: scenario.h:494
DtRwString myGlobalPlanRwString
Definition: scenario.h:500
void * myLoadBalancingUserData
Definition: scenario.h:599
DtRwReal myFrameDeltaTime
Definition: scenario.h:535
DtLoadBalancingFcn myLoadBalancingFcn
Definition: scenario.h:598
DtRwString myComponentAttachmentTableRwString
Definition: scenario.h:475
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:529
static DtString theParameterDatabaseExtension
Definition: scenario.h:569
DtFilename myForceHostilityFilename
Definition: scenario.h:520
DtRwNLengthStringVector myResolvedSimulationModelSetFilenames
Definition: scenario.h:544