17 #include <vlutil/vlFilename.h>
18 #include <vlutil/vlTime.h>
19 #include <vl/hostStructs.h>
21 #include <vlutil/vlPrint.h>
55 class DtCustomReportManager;
64 class DtPaperMapDatabase;
69 class DtVrfObjectIdGenerator;
107 DtCgf(
const DtSimulationAddress& addr, DtU32 sessionId = 1);
133 int entityAdvisory = 100);
150 virtual void sendFinalStatus();
157 virtual bool importScenarioDescriptionFile(
const DtFilename& file,
const DtString& format,
158 const std::map<std::string, std::string>& importData);
163 virtual DtString exportScenarioDescriptionFile(
const DtFilename& file,
const DtString& format,
164 const std::map<std::string, std::string>& exportData);
167 virtual void setAppDataDir(
const DtString&);
168 virtual const DtString& appDataDir()
const;
173 virtual bool loadScenario(
const DtFilename& name);
181 virtual bool loadScenario(
const DtScenario& scenario);
189 virtual bool newScenario(
const DtFilename& dbname =
190 DtFilename::nullFilename(),
const DtFilename& simulationModelSet =
191 DtFilename::nullFilename());
196 virtual bool saveScenario(
const DtFilename& savename);
202 virtual void closeScenario(
const DtFilename& terrainToOpen =
"");
208 virtual bool loadAdditionalObjectParameters(
const DtFilename& paramsFileName,
216 virtual void pause();
223 virtual void rewind();
230 virtual void setForceParameterDbReload(
bool reload);
231 virtual bool forceParameterDbReload()
const;
238 virtual void setEnableResourceMonitor(
bool b);
239 virtual bool isResourceMonitorEnabled()
const;
244 virtual void setAppInstance(HINSTANCE hInstance);
245 virtual void setConsoleWindow(HWND consoleWindow);
260 virtual const DtFilename& defaultTerrainDirectory();
261 virtual void setDefaultTerrainDirectory(
const DtFilename& directory);
269 virtual const DtFilename& defaultSimulationModelSetFilename();
270 virtual void setDefaultSimulationModelSetFilename(
const DtFilename& filename);
275 virtual void setUseDIGuy(
bool diguy);
276 virtual bool useDIGuy()
const;
284 virtual const DtFilename& diGuyCharacterDataFilename();
285 virtual void setDIGuyCharacterDataFilename(
const DtFilename& filename);
287 virtual const DtFilename& diGuyAnimationsFilename();
288 virtual void setDIGuyAnimationsFilename(
const DtFilename& filename);
293 virtual void setMsdlSidcMappingFile(
const DtFilename&);
294 virtual const DtFilename& msdlSidcMappingFile()
const;
299 virtual void setCountryCodesMappingFile(
const DtFilename&);
300 virtual const DtFilename& countryCodesMappingFile()
const;
313 virtual void deleteObject(
const DtString& name)
const;
317 virtual void deleteObject(
const DtEntityIdentifier& objectIdentifier)
const;
336 const DtString& uniqueName = DtString::nullString())
const;
352 virtual DtVrfObject* createRoute(
const DtList& vertices,
353 const DtString& uniqueName = DtString::nullString())
const;
371 const DtString& uniqueName = DtString::nullString())
const;
387 const DtList& vertices,
388 const DtString& uniqueName = DtString::nullString())
const;
404 const DtList& vertices,
405 const DtString& uniqueName = DtString::nullString())
const;
422 const DtList& vertices,
423 const DtString& uniqueName = DtString::nullString())
const;
460 const DtEntityType& entityType,
464 const DtString& entityName = DtString::nullString(),
465 bool allowBlocking =
true,
466 std::list<DtAdminContent*>* initialAdminContent = 0)
const;
502 const DtEntityType& aggregateType,
506 DtList* subordinateNames = 0,
507 const DtString& aggregateName = DtString::nullString())
const;
521 const DtEntityType& aggregateType,
525 bool createSubordinates,
526 const DtString& aggregateName = DtString::nullString(),
527 bool allowBlocking =
true)
const;
540 virtual bool addSubordinate(
DtVrfObject* subordinate,
558 virtual bool removeSubordinate(
DtVrfObject* subordinate,
580 virtual void sendSetDataRequest(
DtVrfObject* entity,
585 virtual void assignPlanByName(
const DtString& name,
const DtPlan& plan);
606 virtual void logObjectConsoleToFile(
DtVrfObject*
object,
607 DtFilename filename = DtFilename::nullFilename());
610 virtual void stopLoggingObjectConsoleToFile(
DtVrfObject*
object);
615 virtual void setObjectConsoleNotificationLevel(
DtVrfObject*
object,
616 DtNotifyLevelType
level);
620 virtual void setPublishZeroVelocityWhenPaused(
bool);
621 virtual bool publishZeroVelocityWhenPaused()
const;
639 virtual DtVrfObjectIdGenerator* vrfObjectIdGenerator()
const;
736 virtual const DtSimulationAddress& simulationAddress()
const;
743 virtual int sessionId()
const;
751 virtual DtExerciseConn* exerciseConn()
const;
756 virtual void useMapDatum(
const DtMapDatum& mapDatum);
759 virtual void setParameterDbLoaded(
bool flag);
761 virtual void setMaxDrainInputTime(
DtFloat64 maxTime);
762 virtual DtFloat64 maxDrainInputTime()
const;
765 virtual void setMinDrainInputTime(
DtFloat64 minTime);
766 virtual DtFloat64 minDrainInputTime()
const;
768 virtual void setMaxDrainInputReads(
int maxReads);
769 virtual int maxDrainInputReads()
const;
772 virtual bool logFrameRateStatistics()
const;
773 virtual void setLogFrameRateStatistics(
bool yesOrNo);
774 virtual void setFrameRateStatisticsLogFile(
const DtFilename&);
775 virtual const DtFilename& frameRateStatisticsLogFile()
const;
782 virtual void setDefaultParameterDbDirectory(
const DtFilename& filename);
787 virtual void setRunInTimeManagementMode(
bool yesOrNo);
788 virtual bool runInTimeManagementMode()
const;
793 static void startTimeManagement(
void* usr);
794 static void stopTimeManagement(
void* usr);
798 virtual void processStartTimeManagement();
799 virtual void processStopTimeManagement();
803 virtual void setFullyLoadTerrain(
bool yesOrNo);
804 virtual bool fullyLoadTerrain()
const;
810 virtual void setAssertOnBlockingTerrainCalls(
bool b);
811 virtual bool assertOnBlockingTerrainCalls()
const;
820 virtual void addPluginToLoad(
const DtString&);
824 virtual void setLoadPluginsIfVersionMismatch(
bool);
825 virtual bool loadPluginsIfVersionMismatch()
const;
837 virtual void addPreLoadTerrainCallback(
839 virtual void removePreLoadTerrainCallback(
847 virtual void addPostLoadTerrainCallback(
849 virtual void removePostLoadTerrainCallback(
855 virtual void runForDuration(
double);
858 virtual void stopSimulationDurationTimer();
861 static void runDurationCompleteCallback(
void*);
862 virtual void processRunDurationComplete();
865 virtual void setPublishingGlobalEnvironment(
bool);
871 virtual void addPreLoadScenarioCallback(
873 virtual void removePreLoadScenarioCallback(
881 virtual void addPostLoadScenarioCallback(
883 virtual void removePostLoadScenarioCallback(
890 virtual void addPreSaveScenarioCallback(
892 virtual void removePreSaveScenarioCallback(
899 virtual void addPostSaveScenarioCallback(
901 virtual void removePostSaveScenarioCallback(
908 virtual void addPreCloseScenarioCallback(
910 virtual void removePreCloseScenarioCallback(
917 virtual void addPostCloseScenarioCallback(
919 virtual void removePostCloseScenarioCallback(
926 virtual void addScenarioPauseCallback(
928 virtual void removeScenarioPauseCallback(
935 virtual void addScenarioRunCallback(
937 virtual void removeScenarioRunCallback(
944 virtual void addPreScenarioRewindCallback(
946 virtual void removePreScenarioRewindCallback(
953 virtual void addPostScenarioRewindCallback(
955 virtual void removePostScenarioRewindCallback(
962 virtual void addPostTickCallback(
964 virtual void removePostTickCallback(
970 virtual void setTimeToQuit(
bool);
971 virtual bool timeToQuit()
const;
977 virtual bool executeSimCommand(
const DtSimCommand& simCommand);
984 static void objectParametersOpCallback(
DtSimMessage* msg,
void* usr);
988 static void scenarioDescriptionCallback(
DtSimMessage*,
void* usr);
992 static void setRunDurationCallback(
DtSimMessage*,
void* usr);
996 static void actionCategoriesRequestCallback(
DtSimMessage* msg,
void* usr);
997 virtual void processActionCategoriesRequest(
DtSimMessage* msg);
1000 static void scenarioStatusRequestCallback(
DtSimMessage* msg,
void* usr);
1001 virtual void processScenarioStatusRequest(
DtSimMessage* msg);
1002 virtual void sendScenarioStatusMessage();
1012 virtual void loadAllPlugins();
1015 virtual bool loadComponentAttachmentTable(
const DtFilename& filename);
1021 virtual bool loadTerrain(
const DtFilename& filename);
1026 virtual DtFilename findTerrainFile(
const DtFilename& startFile,
const std::vector<DtFilename>& searchPaths,
1027 const std::string& extension)
const;
1031 virtual void unloadTerrain();
1034 virtual bool loadOrderOfBattle(
const DtFilename& filename);
1037 virtual bool loadScenarioScripts(
const DtFilename& filename);
1042 virtual bool loadParameterDb(
const DtFilename& filename,
1047 virtual bool loadObjectParametersDBFile(
const DtFilename& opdFile,
1053 virtual bool loadPhysicalWorldFile(
const DtFilename& file,
bool force =
false);
1056 virtual bool loadPlans(
const DtFilename& filename);
1059 virtual bool loadGlobalPlans(
const DtFilename& filename);
1074 virtual void loadActionCategories(
const DtFilename& f);
1076 virtual bool loadForceHostility(
const DtFilename& filename,
bool clear =
true);
1078 virtual bool loadScenarioExtras(
const DtFilename& filename);
1082 virtual void processObjectParametersOp(
DtSimMessage * msg);
1087 virtual void emptyParametersDB();
1099 virtual void setFrameRateMode(
const DtString& mode, DtReal deltaTime);
1102 virtual void setAutoReorganization(
bool onOff);
1106 virtual void drainInput();
1130 virtual void updateReadyStatus();
1139 static void simCommandCallback(
DtSimMessage* msg,
void* usr);
1147 static void deferredLoadScenarioCallback(
void * data);
1148 virtual void processDeferredLoadScenario();
1155 static void deferredRewindCallback(
void * data);
1156 virtual void processDeferredRewind();
1163 DtOutputLogger& getFrameRateStatsLogger(
const DtFilename& newFilename =
"");
1164 std::string createStatsLogFilename(
1165 const std::string& originalFilename,
const DtSimManager& simManager,
1169 void logScenarioRewind();
1170 void logScenarioClose();
1171 void logFrameRateStatsToFile(
DtSimManager* simManager);
1321 int myMaxDrainInputReads;
1333 bool ownVrfCreator()
const;
1334 void setOwnVrfCreator(
bool yesOrNo);