3 #ifndef DtSovietIffEncoder_H_
4 #define DtSovietIffEncoder_H_
21 #define DtDECLARE_SOVIET_IFF_ATTR_CHECKER(attrName) \
22 DtDECLARE_ATTR_CHECKER(DtIffStateRepository, attrName)
26 #define DtDECLARE_SOVIET_IFF_ATTR_ENCODER(attrName) \
27 DtDECLARE_ATTR_ENCODER(DtIffStateRepository, attrName)
33 #define DtDEFINE_SIMPLE_SOVIET_IFF_ATTR_ENCODER( \
34 attrName, netType, inspector) \
35 DtDEFINE_SIMPLE_ATTR_ENCODER(DtSovietIffEncoder, \
36 DtSovietStateRepository, attrName, netType, inspector)
43 #define DtDEFINE_SIMPLE_SOVIET_IFF_ATTR_CHECKER( \
44 attrName, inspector) \
45 DtDEFINE_SIMPLE_ATTR_CHECKER(DtSovietIffEncoder, \
46 DtSovietStateRepository, attrName, inspector)
53 #define DtDEFINE_SIMPLE_SOVIET_ATTR_ENCODER_WITH_PARAM(\
54 encClass, stateRepClass, attrName, netType, inspector, param) \
55 void encClass::encode##attrName(const stateRepClass& rep, \
56 RTI::AttributeHandleValuePairSet* attrs, \
57 RTI::AttributeHandle attrHandle) \
60 netVal = rep.soviet()->inspector(param); \
61 attrs->add(attrHandle, (char*) &netVal, sizeof(netType)); \
64 #define DtDEFINE_SIMPLE_SOVIET_IFF_ATTR_ENCODER_WITH_PARAM( \
65 attrName, netType, inspector, param) \
66 DtDEFINE_SIMPLE_SOVIET_ATTR_ENCODER_WITH_PARAM( \
67 DtSovietIffEncoder, DtIffStateRepository, attrName, netType, inspector, param)
69 #define DtDEFINE_SIMPLE_SOVIET_ATTR_CHECKER_WITH_PARAM( \
70 encClass, stateRepClass, attrName, inspector, param) \
71 bool encClass::need##attrName(const stateRepClass& stateRep, \
72 const stateRepClass& asSeenByRemote) \
74 return (bool) !(stateRep.soviet()->inspector(param) == \
75 asSeenByRemote.soviet()->inspector(param)); \
83 #define DtDEFINE_SIMPLE_SOVIET_IFF_ATTR_CHECKER_WITH_PARAM( \
84 attrName, inspector, param) \
85 DtDEFINE_SIMPLE_SOVIET_ATTR_CHECKER_WITH_PARAM( \
86 DtSovietIffEncoder, DtIffStateRepository, attrName, inspector, param)
88 class DT_DLL_VL DtSovietIffEncoder :
public DtIffEncoder
94 DtObjClassDesc* classDesc);
97 virtual ~DtSovietIffEncoder();
100 DtSovietIffEncoder(
const DtSovietIffEncoder& orig);
103 DtSovietIffEncoder& operator=(
const DtSovietIffEncoder& orig);
107 static DtHlaStateEncoder* create(
109 DtObjClassDesc* classDesc);
113 DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter1Enabled);
114 DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter1IsMalfunctioning);
115 DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter1IsDamaged);
116 DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter1IsOn);
118 DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter2Enabled);
119 DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter2IsMalfunctioning);
120 DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter2IsDamaged);
121 DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter2IsOn);
123 DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter3Enabled);
124 DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter3IsMalfunctioning);
125 DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter3IsDamaged);
126 DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter3IsOn);
128 DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter4Enabled);
129 DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter4IsMalfunctioning);
130 DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter4IsDamaged);
131 DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter4IsOn);
133 DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter5Enabled);
134 DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter5IsMalfunctioning);
135 DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter5IsDamaged);
136 DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter5IsOn);
138 DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter6Enabled);
139 DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter6IsMalfunctioning);
140 DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter6IsDamaged);
141 DtDECLARE_SOVIET_IFF_ATTR_CHECKER(Parameter6IsOn);
143 DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter1Enabled);
144 DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter1IsMalfunctioning);
145 DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter1IsDamaged);
146 DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter1IsOn);
148 DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter2Enabled);
149 DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter2IsMalfunctioning);
150 DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter2IsDamaged);
151 DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter2IsOn);
153 DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter3Enabled);
154 DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter3IsMalfunctioning);
155 DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter3IsDamaged);
156 DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter3IsOn);
158 DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter4Enabled);
159 DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter4IsMalfunctioning);
160 DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter4IsDamaged);
161 DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter4IsOn);
163 DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter5Enabled);
164 DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter5IsMalfunctioning);
165 DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter5IsDamaged);
166 DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter5IsOn);
168 DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter6Enabled);
169 DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter6IsMalfunctioning);
170 DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter6IsDamaged);
171 DtDECLARE_SOVIET_IFF_ATTR_ENCODER(Parameter6IsOn);
179 #define DtDEFINE_SIMPLE_MAKRPR3_SOVIET_IFF_TRANSPONDER_ATTR_ENCODER( \
180 attrName, netType, inspector) \
181 DtDEFINE_SIMPLE_ATTR_ENCODER(DtMAKRPR3_SovietIffTransponderEncoder, \
182 DtIffStateRepository, attrName, netType, inspector)
189 #define DtDEFINE_SIMPLE_MAKRPR3_SOVIET_IFF_TRANSPONDER_ATTR_CHECKER( \
190 attrName, inspector) \
191 DtDEFINE_SIMPLE_ATTR_CHECKER(DtMAKRPR3_SovietIffTransponderEncoder, \
192 DtIffStateRepository, attrName, inspector)
194 class DT_DLL_VL DtMAKRPR3_SovietIffTransponderEncoder :
public DtSovietIffEncoder
198 DtMAKRPR3_SovietIffTransponderEncoder(
200 DtObjClassDesc* classDesc);
203 virtual ~DtMAKRPR3_SovietIffTransponderEncoder();
206 DtMAKRPR3_SovietIffTransponderEncoder(
const DtMAKRPR3_SovietIffTransponderEncoder& orig);
209 DtMAKRPR3_SovietIffTransponderEncoder& operator=(
const DtMAKRPR3_SovietIffTransponderEncoder& orig);
213 static DtHlaStateEncoder* create(
215 DtObjClassDesc* classDesc);
219 DtDECLARE_IFF_ATTR_CHECKER(SystemDesignator);
220 DtDECLARE_IFF_ATTR_ENCODER(SystemDesignator);
228 #define DtDEFINE_SIMPLE_MAKRPR3_SOVIET_IFF_INTERROGATOR_ATTR_ENCODER( \
229 attrName, netType, inspector) \
230 DtDEFINE_SIMPLE_ATTR_ENCODER(DtMAKRPR3_SovietIffInterrogatorEncoder, \
231 DtIffStateRepository, attrName, netType, inspector)
238 #define DtDEFINE_SIMPLE_MAKRPR3_SOVIET_IFF_INTERROGATOR_ATTR_CHECKER( \
239 attrName, inspector) \
240 DtDEFINE_SIMPLE_ATTR_CHECKER(DtMAKRPR3_SovietIffInterrogatorEncoder, \
241 DtIffStateRepository, attrName, inspector)
243 class DT_DLL_VL DtMAKRPR3_SovietIffInterrogatorEncoder :
public DtSovietIffEncoder
247 DtMAKRPR3_SovietIffInterrogatorEncoder(
249 DtObjClassDesc* classDesc);
252 virtual ~DtMAKRPR3_SovietIffInterrogatorEncoder();
255 DtMAKRPR3_SovietIffInterrogatorEncoder(
const DtMAKRPR3_SovietIffInterrogatorEncoder& orig);
258 DtMAKRPR3_SovietIffInterrogatorEncoder& operator=(
const DtMAKRPR3_SovietIffInterrogatorEncoder& orig);
262 static DtHlaStateEncoder* create(
264 DtObjClassDesc* classDesc);
268 DtDECLARE_IFF_ATTR_CHECKER(SystemDesignator);
269 DtDECLARE_IFF_ATTR_ENCODER(SystemDesignator);
Instances of DtSovietStateRepository are used to store state data for IFFData.Soviet objects...
Definition: iffSovietStateRepository.h:29
Instances of DtExerciseConn are used to provide an application's interface or connection to the netwo...
Definition: exerciseConnDIS.h:62
#define DT_DLL_VL
Definition: vlMachineTypes.h:108