VR-Forces 5.0.2 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 
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
DtVectorVector myColorVector
Definition: hostilityManager.h:250
std::vector< DtVector > DtVectorVector
Definition: hostilityManager.h:234
DtSimulationServices * mySimulationServices
Local members.
Definition: hostilityManager.h:240
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: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
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:90
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.
DtBoolVectorVector myHostilityMatrix
Tracks which forces are hostile to which other forces. Each force has a vector which contains a boole...
Definition: hostilityManager.h:245

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)