VR-Forces Developer's Guide
 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
26 class DtSimMessage;
27 class DtlInputStream;
28 
35 {
36 public:
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 
63  virtual void merge(const DtHostilityManager&);
64 
68  virtual bool addForce(DtString forceName, DtVector forceColor, bool includeInDialogs, int forceType = -1, const DtString& country = "");
69 
71  virtual bool removeForce(DtU8 force);
72 
74  virtual bool hasForceNamed(const DtString&) const;
75 
78  virtual int forceTypeForForceNamed(const DtString&) const;
79 
82  virtual DtString countryTypeForForceNamed(const DtString&) const;
83 
89  virtual void setHostility(DtU8 force, DtU8 targetForce, bool hostile);
90 
92  virtual bool hostile(DtU8 force, DtU8 targetForce) const;
93 
95  virtual std::vector<DtU8> forcesUsed(bool alsoInDialogs = false) const;
96 
99  virtual void hostileForces(DtU8 force, std::list<DtU8>& forceList) const;
100  virtual void hostileForces(DtU8 force, std::set<DtU8>& forceList) const;
101 
104  virtual int forceHostileTo(DtU8 force) const;
105 
108  virtual void friendlyForces(DtU8 force, std::list<DtU8>& forceList) const;
109 
114 
115  virtual void addHostilityChangedCallback(DtHostitliyChangedCallbackFcn fcn, void* usr);
116  virtual void removeHostilityChangedCallback(DtHostitliyChangedCallbackFcn fcn, void* usr);
118 
120 
121  virtual void setName(DtU8 force, DtString forceName);
122  virtual DtString name(DtU8 force) const;
124 
126 
127  virtual void setCountry(DtU8 force, DtString forceName);
128  virtual DtString country(DtU8 force) const;
130 
132 
133  virtual void setIncludeInDialogs(DtU8 force, bool includeInDialogs);
134  virtual bool includeInDialogs(DtU8 force) const;
136 
138 
139  virtual void setColor(DtU8 force, DtVector forceColor);
140  virtual DtVector color(DtU8 force) const;
142 
144 
145  virtual void setForceIsUsed(DtU8 force, bool forceIsUsed);
146  virtual bool forceIsUsed(DtU8 force);
148 
150  virtual int numForces() const;
151 
153  virtual DtU8 nextAvailableForceId();
154 /*
157  virtual void writeHostilityFile(const DtString& filename);
158 */
162  virtual void getForceDescriptionList(DtRwForceDescriptionList& output) const;
163 
169  virtual bool readHostilityFile(const DtString& filename, bool clear = true);
170  virtual bool readHostilityFileFromZipFile(const DtFilename& scenarioZipFile, const DtString& filename, bool clear = true);
171 
173  virtual bool processHostilityFile(DtlInputStream*, bool clear);
174 
179  virtual void setDataFromDescriptionList(const DtRwForceDescriptionList& l, bool clear = true);
180 
181  virtual void addForceDescription(const DtRwForceDescription&);
182 
184  virtual void sendHostilityMatrix();
185 
187  virtual void sendForces();
188 
189 protected:
190 
191 //****************************************************************************
193 //****************************************************************************
195  virtual void registerInterfaceMessageCallbacks();
196 
198 
199  static void requestHostilityMatrixCallback(DtSimMessage* msg, void* usr);
200  virtual void processRequestHostilityMatrix(DtSimMessage* msg);
202 
204 
205  static void requestForcesCallback(DtSimMessage* msg, void* usr);
206  virtual void processRequestForces(DtSimMessage* msg);
208 
210 
211  static void setHostilityMatrixCallback(DtSimMessage* msg, void* usr);
212  virtual void processSetHostilityMatrix(DtSimMessage* msg);
214 
216 
217  static void requestForceHostilityCallback(DtSimMessage* msg, void* usr);
218  virtual void processRequestForceHostility(DtSimMessage* msg);
220 
222 
223  static void setForceHostilityCallback(DtSimMessage* msg, void* usr);
224  virtual void processSetForceHostility(DtSimMessage* msg);
226 
227 //****************************************************************************
229 //****************************************************************************
230 
233  virtual void clearMatrix();
234 
235 //****************************************************************************
237 //****************************************************************************
238 
239  typedef std::vector<bool> DtBoolVector;
240  typedef std::vector<DtBoolVector> DtBoolVectorVector;
241  typedef std::vector<DtString> DtNameVector;
242  typedef std::vector<DtVector> DtVectorVector;
243 
244 //****************************************************************************
246 //****************************************************************************
247 
249 
254 
260 
262 };
std::vector< DtString > DtNameVector
Definition: hostilityManager.h:241
DtBoolVector myForceIsUsedVector
Definition: hostilityManager.h:259
DtCallbackList< DtU8 > myHostilityChangedCallbackList
Definition: hostilityManager.h:261
DtVectorVector myColorVector
Definition: hostilityManager.h:258
std::vector< DtVector > DtVectorVector
Definition: hostilityManager.h:242
DtSimulationServices * mySimulationServices
Local members.
Definition: hostilityManager.h:248
DtCallbackList< DtU8 >::DtCallbackFunctionType DtHostitliyChangedCallbackFcn
Definition: hostilityManager.h:48
This class keeps track of which forces are hostile to which other forces in the simulation. It maintains state for each force type, and which other forces types are considered hostile by that force. It can be queried for this data any time during the simulation. Supports force enumerations from 0 to 255.
Definition: hostilityManager.h:34
std::vector< DtBoolVector > DtBoolVectorVector
Definition: hostilityManager.h:240
DtBoolVector myIncludeInDialogsVector
Definition: hostilityManager.h:257
ReaderWriter for lists of force descriptions.
Definition: rwForceDescriptionList.h:28
#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:239
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:94
DtNameVector myCountryVector
Definition: hostilityManager.h:256
DtNameVector myNameVector
Definition: hostilityManager.h:255
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.
DtBoolVectorVector myHostilityMatrix
Tracks which forces are hostile to which other forces. Each force has a vector which contains a boole...
Definition: hostilityManager.h:253

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)