VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
hostilityManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2016 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
15 #include <vlutil/vlMachineTypes.h>
16 #include <vlutil/vlString.h>
17 #include <vector>
18 #include <list>
19 #include <set>
22 #include <matrix/vlVector.h>
23 
24 //forward defs
25 class DtSimManager;
26 class DtSimMessage;
27 class DtlInputStream;
28 
35 {
36 public:
37  DtHostilityManager(DtSimManager* simManager);
38  virtual ~DtHostilityManager();
39 
40 private:
42 
44  DtHostilityManager& operator=(const DtHostilityManager& orig);
46 
47 protected:
49 
50 public:
54  virtual bool init();
55 
60  virtual void setDefaultHostility();
61 
65  virtual bool addForce(DtString forceName, DtVector forceColor, bool includeInDialogs, int forceType = -1, const DtString& country = "");
66 
68  virtual bool removeForce(DtU8 force);
69 
71  virtual bool hasForceNamed(const DtString&) const;
72 
75  virtual int forceTypeForForceNamed(const DtString&) const;
76 
79  virtual DtString countryTypeForForceNamed(const DtString&) const;
80 
86  virtual void setHostility(DtU8 force, DtU8 targetForce, bool hostile);
87 
89  virtual bool hostile(DtU8 force, DtU8 targetForce) const;
90 
93  virtual void hostileForces(DtU8 force, std::list<DtU8>& forceList) const;
94  virtual void hostileForces(DtU8 force, std::set<DtU8>& forceList) const;
95 
98  virtual int forceHostileTo(DtU8 force) const;
99 
102  virtual void friendlyForces(DtU8 force, std::list<DtU8>& forceList) const;
103 
108 
109  virtual void addHostilityChangedCallback(DtHostitliyChangedCallbackFcn fcn, void* usr);
110  virtual void removeHostilityChangedCallback(DtHostitliyChangedCallbackFcn fcn, void* usr);
112 
114 
115  virtual void setName(DtU8 force, DtString forceName);
116  virtual DtString name(DtU8 force) const;
118 
120 
121  virtual void setCountry(DtU8 force, DtString forceName);
122  virtual DtString country(DtU8 force) const;
124 
126 
127  virtual void setIncludeInDialogs(DtU8 force, bool includeInDialogs);
128  virtual bool includeInDialogs(DtU8 force);
130 
132 
133  virtual void setColor(DtU8 force, DtVector forceColor);
134  virtual DtVector color(DtU8 force);
136 
138 
139  virtual void setForceIsUsed(DtU8 force, bool forceIsUsed);
140  virtual bool forceIsUsed(DtU8 force);
142 
144  virtual int numForces() const;
145 
147  virtual DtU8 nextAvailableForceId();
148 /*
151  virtual void writeHostilityFile(const DtString& filename);
152 */
156  virtual void getForceDescriptionList(DtRwForceDescriptionList& output);
157 
163  virtual bool readHostilityFile(const DtString& filename, bool clear = true);
164  virtual bool readHostilityFileFromZipFile(const DtFilename& scenarioZipFile, const DtString& filename, bool clear = true);
165 
167  virtual bool processHostilityFile(DtlInputStream*, bool clear);
168 
173  virtual void setDataFromDescriptionList(const DtRwForceDescriptionList& l, bool clear = true);
174 
176  virtual void sendHostilityMatrix();
177 
179  virtual void sendForces();
180 
181 protected:
182 
183 //****************************************************************************
185 //****************************************************************************
187  virtual void registerInterfaceMessageCallbacks();
188 
190 
191  static void requestHostilityMatrixCallback(DtSimMessage* msg, void* usr);
192  virtual void processRequestHostilityMatrix(DtSimMessage* msg);
194 
196 
197  static void requestForcesCallback(DtSimMessage* msg, void* usr);
198  virtual void processRequestForces(DtSimMessage* msg);
200 
202 
203  static void setHostilityMatrixCallback(DtSimMessage* msg, void* usr);
204  virtual void processSetHostilityMatrix(DtSimMessage* msg);
206 
208 
209  static void requestForceHostilityCallback(DtSimMessage* msg, void* usr);
210  virtual void processRequestForceHostility(DtSimMessage* msg);
212 
214 
215  static void setForceHostilityCallback(DtSimMessage* msg, void* usr);
216  virtual void processSetForceHostility(DtSimMessage* msg);
218 
219 //****************************************************************************
221 //****************************************************************************
222 
225  virtual void clearMatrix();
226 
227 //****************************************************************************
229 //****************************************************************************
230 
231  typedef std::vector<bool> DtBoolVector;
232  typedef std::vector<DtBoolVector> DtBoolVectorVector;
233  typedef std::vector<DtString> DtNameVector;
234  typedef std::vector<DtVector> DtVectorVector;
235 
236 //****************************************************************************
238 //****************************************************************************
239 
241 
246 
252 
254 };
std::vector< DtString > DtNameVector
Definition: hostilityManager.h:233
DtBoolVector myForceIsUsedVector
Definition: hostilityManager.h:251
DtCallbackList< DtU8 > myHostilityChangedCallbackList
Definition: hostilityManager.h:253
DtSimManager * mySimManager
Local members.
Definition: hostilityManager.h:240
DtVectorVector myColorVector
Definition: hostilityManager.h:250
std::vector< DtVector > DtVectorVector
Definition: hostilityManager.h:234
DtCallbackList< DtU8 >::DtCallbackFunctionType DtHostitliyChangedCallbackFcn
Definition: hostilityManager.h:48
This class keeps track of which forces are hostile to which other forces in the simulation.
Definition: hostilityManager.h:34
std::vector< DtBoolVector > DtBoolVectorVector
Definition: hostilityManager.h:232
DtBoolVector myIncludeInDialogsVector
Definition: hostilityManager.h:249
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
File: simMsg.h.
Definition: simMessage.h:35
Definition: noArgumentCallbackList.h:91
std::vector< bool > DtBoolVector
Typedefs to make list definitions easier.
Definition: hostilityManager.h:231
DtNameVector myCountryVector
Definition: hostilityManager.h:248
DtNameVector myNameVector
Definition: hostilityManager.h:247
Description: A readable, writable list of force descriptions.
Definition: rwForceDescriptionList.h:86
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:103
DtBoolVectorVector myHostilityMatrix
Tracks which forces are hostile to which other forces.
Definition: hostilityManager.h:245

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)