15 #include <boost/unordered_map.hpp>
19 class DtRwSpawnTemplateList;
34 virtual bool loadTemplates(
const DtFilename& filename);
41 virtual void updateSpawnSinkTemplates(
51 static void preScenarioLoadCallback(
DtScenario& scenario,
56 static void preScenarioRewindCallback(
void* usrData);
59 static void preScenarioImportCallback(
DtScenario& scenario,
61 virtual void preScenarioImport(
DtScenario& scenario);
64 static void postScenarioImportCallback(
const DtScenario& scenario,
66 virtual void postScenarioImport(
const DtScenario& scenario);
68 virtual DtUUID uuidForTemplateName(
const DtString& templateName)
const;
70 virtual void addSpawnPoint(
const DtUUID& templateUuid,
const DtUUID& spawnPointUuid);
72 virtual void removeSpawnPoint(
const DtUUID& templateUuid,
const DtUUID& spawnPointUuid);
81 virtual void clearTemplates();
92 static void requestSpawnListCallback(
DtSimMessage* msg,
void* usr);
99 virtual void sendSpawnListMessage(
const DtSimulationAddress& recipient,
100 bool initialSend =
false);
105 static void addSinkPointCallback(
DtSimMessage* msg,
void* usr);
111 static void requestSpawnDataCallback(
DtSimMessage* msg,
void* usr);
112 virtual void processRequestSpawnData(
DtSimMessage* msg);
117 static void updateSpawnTemplateCallback(
DtSimMessage* msg,
void* usr);
118 virtual void processUpdateSpawnTemplate(
DtSimMessage* msg);
123 static void createTemplateCallback(
DtSimMessage* msg,
void* usr);
129 static void deleteSpawnTemplateCallback(
DtSimMessage* msg,
void* usr);
130 virtual void processDeleteSpawnTemplate(
DtSimMessage* msg);
138 static void objectRemovedCallback(
DtVrfObject *
object,
void *usr);
139 virtual void processObjectRemoved(
DtVrfObject *
object);
147 virtual void removeSpawnTemplateAsParentOfSinkPoint(
const DtUUID& templateUUID,
const DtUUID& sinkPoint);
148 virtual void addSpawnTemplateAsParentOfSinkPoint(
const DtUUID& templateUUID,
const DtUUID& sinkPoint);
152 virtual void resolveUnmatchedSpawnPoints();
156 typedef void (*DtClearTemplateUUIDFunction)(
void* userData);
157 typedef void (*DtRefreshSpawnDataFunction)(
void* userData);
159 virtual void addClearTemplateUUIDEntry(
160 DtClearTemplateUUIDFunction fcn,
void* userData);
161 virtual void removeClearTemplateUUIDEntry(
162 DtClearTemplateUUIDFunction fcn,
void* userData);
164 virtual void addRefreshSpawnDataEntry(
165 DtRefreshSpawnDataFunction fcn,
void* userData);
166 virtual void removeRefreshSpawnDataEntry(
167 DtRefreshSpawnDataFunction fcn,
void* userData);