VR-Forces 4.2 Class Documentation
scenario.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
11 #include "vrfutil/rdrWritr.h"
12 #include <vlutil/vlString.h>
13 #include <vlutil/vlFilename.h>
14 #include "vrfutil/rwString.h"
15 #include "vrfutil/rwBoolean.h"
16 #include "vrfutil/rwReal.h"
17 #include "vrfutil/rwUnsigned.h"
18 #include "vrfutil/rwInt.h"
19 #include "vrfutil/vlClock.h"
20 #include "vrfutil/strIntMapper.h"
22 #include "vrfutil/rwKeyValueList.h"
24 #include <vrfExtProtocol/msgTypes.h>
25 
33 
35 
38 typedef bool (*DtPreserveMappingsFcn)(void* usr);
39 
40 #include "vrfutil/vrfutilDefines.h"
42 {
43 public:
44 
46  DtScenario();
47 
49  DtScenario(const DtString & name,
50  DtReaderWriterRegistry * const parentRegistry = 0);
51 
53  virtual ~DtScenario();
54 
56  DtScenario(const DtScenario& orig);
57 
59  DtScenario& operator=(const DtScenario& orig);
60 
62  virtual bool init();
63 
65  virtual bool readScenarioFile(const DtFilename& filename);
66 
68  virtual bool save();
69 
72  virtual bool save(const DtFilename& filename,
73  bool saveObjectMap = true);
74 
77  virtual DtScenario* clone() const;
78 
83  virtual void setComponentAttachmentRule(int rule);
84  virtual int componentAttachmentRule() const;
85 
87  virtual void setComponentAttachmentTableFilename(const DtFilename& filename);
88  virtual const DtFilename& componentAttachmentTableFilename() const;
91  virtual void setTerrainDatabaseFilename(const DtFilename& filename);
92  virtual const DtFilename& terrainDatabaseFilename() const;
93 
95  virtual void setGuiTerrainDatabaseFilename(const DtFilename& filename);
96  virtual const DtFilename& guiTerrainDatabaseFilename() const;
97 
99  virtual void setOrderOfBattleFilename(const DtFilename& filename);
100  virtual DtFilename orderOfBattleFilename() const;
101 
103  virtual void setScenarioScriptsFilename(const DtFilename& filename);
104  virtual DtFilename scenarioScriptsFilename() const;
105 
107  virtual void setPlanFilename(const DtFilename& filename);
108  virtual DtFilename planFilename() const;
109 
111 
112  virtual void setGlobalPlanFilename(const DtFilename& filename);
113  virtual DtFilename globalPlanFilename() const;
115 
117  virtual void setParameterDatabaseFilename(const DtFilename& filename);
118  virtual const DtFilename& parameterDatabaseFilename() const;
119 
121  virtual void setPhysicalWorldFilename(const DtFilename& filename);
122  virtual const DtFilename& physicalWorldFilename() const;
123 
125  virtual void setObjectMapFilename(const DtFilename& filename);
126  virtual DtFilename objectMapFilename() const;
127 
130  virtual void setOverlayFilename(const DtFilename& filename);
131  virtual DtFilename overlayFilename() const;
132 
134  virtual void setSelectionGroupsFilename(const DtFilename& filename);
135  virtual DtFilename selectionGroupsFilename() const;
136 
139  virtual void setSymbolMapFilename(const DtFilename& filename);
140  virtual const DtFilename& symbolMapFilename() const;
141 
144  virtual void setCreateMenuFilename(const DtFilename& filename);
145  virtual const DtFilename& createMenuFilename() const;
146 
150  virtual void setForceHostilityFilename(const DtFilename& filename);
151  virtual DtFilename forceHostilityFilename() const;
152 
156  virtual void setScenarioExtrasFilename(const DtFilename& f);
157  virtual DtFilename scenarioExtrasFilename() const;
159 
161  virtual void setTimeMultiplier(DtReal multiplier);
162  virtual DtReal timeMultiplier() const;
163 
165  virtual void setAutoReorganize(const bool& flag);
166  virtual const bool& autoReorganize() const;
167 
169  virtual void setRandomNumberSeed(unsigned numberSeed);
170  virtual unsigned randomNumberSeed() const;
171 
173  virtual DtString frameRateModeString() const;
174  virtual DtFrameMode frameRateMode() const;
175  virtual void setFrameRateModeString(DtString value);
176  virtual void setFrameRateMode(DtFrameMode value);
177 
179  virtual DtReal frameDeltaTime() const;
180  virtual void setFrameDeltaTime(DtReal value);
181 
184  virtual DtTime runDurationTime() const;
185  virtual void setRunDurationTime(DtTime time);
186 
188  virtual void setSimTime(DtTime time);
189  virtual DtTime simTime() const;
190 
192  virtual void setExerciseStartTime(DtTime time);
193  virtual DtTime exerciseStartTime() const;
194 
198  virtual DtRwNLengthStringVector& additionalOpdFilenames();
199  virtual const DtRwNLengthStringVector& additionalOpdFilenames() const;
200  virtual void addAdditionalOpdFilename(const DtString&);
201  virtual void removeAdditonalOpdFilename(int iIndex);
202  virtual void setAdditionalOpdFilenames(const DtRwNLengthStringVector&);
204 
207  virtual void setScenarioDescription(const DtString&);
208  virtual DtString scenarioDescription() const;
209 
215  virtual DtRwNLengthStringVector& simulationModelSetFilenames();
216  virtual const DtRwNLengthStringVector& simulationModelSetFilenames() const;
217  virtual void addSimulationModelSetFilename(const DtString&);
218  virtual void removeSimulationModelSetFilename(int iIndex);
219  virtual void setSimulationModelSetFilenames(const DtRwNLengthStringVector&);
221 
227 
228  virtual DtRwKeyValueList& scenarioData();
229  virtual const DtRwKeyValueList& scenarioData() const;
231 
234 
235  virtual DtString scenarioName() const;
236  virtual void setScenarioName(const DtString& name);
237  virtual bool scenarioNameSpecified() const;
239 
245  static DtFilename validTerrainFile(const DtFilename&);
246 
248  virtual bool isParameterDatabaseRwStringSpecified();
249  virtual bool isPhysicalWorldRwStringSpecified();
250  virtual bool isOrderOfBattleRwStringSpecified();
251  virtual bool isScenarioScriptsRwStringSpecified();
252  virtual bool isOverlayRwStringSpecified();
253  virtual bool isSelectionGroupsRwStringSpecified();
254  virtual bool isSymbolMapRwStringSpecified();
255  virtual bool isCreateMenuRwStringSpecified();
256  virtual bool isPlanRwStringSpecified();
257  virtual bool isObjectMapRwStringSpecified();
258  virtual bool isTimeMultiplierSpecified();
259  virtual bool isAutoReorganizeRwStringSpecified();
260  virtual bool isRandomNumberSeedSpecified();
261  virtual bool isFrameRateModeSpecified();
262  virtual bool isFrameDeltaTimeSpecified();
263  virtual bool isSimTimeSpecified();
264  virtual bool isExerciseStartTimeSpecified();
265  virtual bool isForceHostilityRWStringSpecified();
266  virtual bool isScenarioExtrasRWStringSpecified();
267 
268  virtual void setFilename(const DtFilename&);
269  virtual const DtFilename& filename() const;
270 
272  virtual bool writeScenarioFile(const DtFilename & filename);
273 
276  virtual void putSelf(FILE *fp, int indentLevel = 0, bool writeUnspecified = false,
277  const DtFilename& path = DtReaderWriter::appPath());
278 
281  virtual void getSelf(DtlObjPtr args, const DtFilename& searchPath,
282  const DtVariableBindingsList& variableBindings);
283 
287  virtual bool isValid(bool allowEmptyFilenames = true, DtString* retMessage = 0) const;
288 
290  virtual double version() const;
291 
293  virtual bool relativeToScenarioFile() const;
294 
296  virtual void setToCurrentVersion();
297 
299  static double currentScenarioVersion();
300 
301 public:
302 
303  static DtString getFrameModeNameFromFrameModeType(DtFrameMode);
304 
305  static DtFrameMode getFrameModeTypeFromFrameModeName(
306  const DtString& frameModeName);
307 
308 protected:
319  virtual DtFilename absoluteFilename(const DtFilename&) const;
320 
321 protected:
322 
324 
327  DtFilename myFilename;
328 
331 
334 
337 
340 
343 
344  DtFilename myPlanFilename;
346 
349 
352 
353  DtFilename myOverlayFilename;
355 
358 
361 
364 
367 
370 
373 
375 
378 
380 
382  DtFrameMode myFrameRateMode;
384 
386 
389 
392 
394 
396 
399 
400 protected:
401 
416 
417  static double theScenarioVersion;
418 };
419 
420 class DtAddressMap;
421 class DtList;
422 class DtBackendMap;
423 
424 typedef bool (*DtLoadBalancingFcn)(DtAddressMap* map, const DtList* backends, void* usr);
425 typedef bool (*DtRemappingFcn)(DtBackendMap* map, void* usr);
426 
428 {
429 public:
431  DtLoadBalancingFcnInfo(const std::string&, DtLoadBalancingFcn fcn, void*);
433 
435 
436  std::string myLoadBalancer;
439 };
440 
442 {
443 public:
445  DtScenarioLoadInformation(bool createAsNew, DtScenario*, DtLoadBalancingFcnInfo, DtRemappingFcn fcn = 0, void* remappingUsrData = 0,
446  int startTimeOfDay = 12 * 3600);
448 
450 
451 public:
458 };

Document ID: Generated on Sun Nov 24 19:49:21 EST 2013 from SVN revision 133924
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)