@@ -47,6 +47,14 @@ static const FieldParse s_theFXListFieldParse[] = {
47
47
{ " TerrainScorch" , reinterpret_cast <inifieldparse_t >(PICK_ADDRESS (0x004CAC80 , 0x00760F20 )) /* &TerrainScorchFXNugget::Parse */ , nullptr , 0 },
48
48
{ " ParticleSystem" , reinterpret_cast <inifieldparse_t >(PICK_ADDRESS (0x004CAE10 , 0x00761350 )) /* &ParticleSystemFXNugget::Parse */ , nullptr , 0 },
49
49
{ " FXListAtBonePos" , reinterpret_cast <inifieldparse_t >(PICK_ADDRESS (0x004CB8E0 , 0x00761D00 )) /* &FXListAtBonePosFXNugget::Parse */ , nullptr , 0 },
50
+ #else // DUMMIES
51
+ // { "RayEffect", &RayEffectFXNugget::Parse, nullptr, 0 },
52
+ { " Tracer" , &TracerFXNugget::Parse, nullptr , 0 },
53
+ { " LightPulse" , &LightPulseFXNugget::Parse, nullptr , 0 },
54
+ { " ViewShake" , &ViewShakeFXNugget::Parse, nullptr , 0 },
55
+ { " TerrainScorch" , &TerrainScorchFXNugget::Parse, nullptr , 0 },
56
+ { " ParticleSystem" , &ParticleSystemFXNugget::Parse, nullptr , 0 },
57
+ { " FXListAtBonePos" , &FXListAtBonePosFXNugget::Parse, nullptr , 0 },
50
58
#endif
51
59
{ nullptr , nullptr , nullptr , 0 },
52
60
};
@@ -132,3 +140,167 @@ void SoundFXNugget::Parse(INI *ini, void *formal, void *, const void *)
132
140
ini->Init_From_INI (nugget, _fieldParse);
133
141
reinterpret_cast <FXList *>(formal)->Add_FXNugget (nugget);
134
142
}
143
+
144
+ void TracerFXNugget::Do_FX_Pos (
145
+ const Coord3D *primary, const Matrix3D *primary_mtx, float primary_speed, const Coord3D *secondary, float radius) const
146
+ {
147
+ captainslog_dbgassert (false , " TracerFXNugget::Do_FX_Pos not implemented!" );
148
+ }
149
+
150
+ void TracerFXNugget::Do_FX_Obj (const Object *primary, const Object *secondary) const
151
+ {
152
+ captainslog_dbgassert (false , " TracerFXNugget::Do_FX_Obj not implemented!" );
153
+ }
154
+
155
+ void TracerFXNugget::Parse (INI *ini, void *formal, void *, const void *)
156
+ {
157
+ static const FieldParse _fieldParse[] = {
158
+ { " DecayAt" , &INI::Parse_Int, nullptr , offsetof (TracerFXNugget, m_decayAt) },
159
+ { " Length" , &INI::Parse_Int, nullptr , offsetof (TracerFXNugget, m_length) },
160
+ { " Width" , &INI::Parse_Real, nullptr , offsetof (TracerFXNugget, m_width) },
161
+ { " Color" , &INI::Parse_RGB_Color, nullptr , offsetof (TracerFXNugget, m_color) },
162
+ { " Speed" , &INI::Parse_Int, nullptr , offsetof (TracerFXNugget, speed) },
163
+ { " Probability" , &INI::Parse_Real, nullptr , offsetof (TracerFXNugget, probability) },
164
+ { nullptr , nullptr , nullptr , 0 },
165
+ };
166
+
167
+ TracerFXNugget *nugget = new TracerFXNugget{};
168
+ ini->Init_From_INI (nugget, _fieldParse);
169
+ reinterpret_cast <FXList *>(formal)->Add_FXNugget (nugget);
170
+ }
171
+
172
+ void LightPulseFXNugget::Do_FX_Pos (
173
+ const Coord3D *primary, const Matrix3D *primary_mtx, float primary_speed, const Coord3D *secondary, float radius) const
174
+ {
175
+ captainslog_dbgassert (false , " LightPulseFXNugget::Do_FX_Pos not implemented!" );
176
+ }
177
+
178
+ void LightPulseFXNugget::Do_FX_Obj (const Object *primary, const Object *secondary) const
179
+ {
180
+ captainslog_dbgassert (false , " LightPulseFXNugget::Do_FX_Obj not implemented!" );
181
+ }
182
+
183
+ void LightPulseFXNugget::Parse (INI *ini, void *formal, void *, const void *)
184
+ {
185
+ static const FieldParse _fieldParse[] = {
186
+ { " Color" , &INI::Parse_RGB_Color, nullptr , offsetof (LightPulseFXNugget, m_color) },
187
+ { " Radius" , &INI::Parse_Int, nullptr , offsetof (LightPulseFXNugget, m_radius) },
188
+ { " RadiusAsPercentOfObjectSize" ,
189
+ &INI::Parse_Percent_To_Real,
190
+ nullptr ,
191
+ offsetof (LightPulseFXNugget, m_radiusAsPercentOfObjectSize) },
192
+ { " IncreaseTime" , &INI::Parse_Int, nullptr , offsetof (LightPulseFXNugget, m_increaseTime) },
193
+ { " DecreaseTime" , &INI::Parse_Int, nullptr , offsetof (LightPulseFXNugget, m_decreaseTime) },
194
+ { nullptr , nullptr , nullptr , 0 },
195
+ };
196
+
197
+ LightPulseFXNugget *nugget = new LightPulseFXNugget{};
198
+ ini->Init_From_INI (nugget, _fieldParse);
199
+ reinterpret_cast <FXList *>(formal)->Add_FXNugget (nugget);
200
+ }
201
+
202
+ void ViewShakeFXNugget::Do_FX_Pos (
203
+ const Coord3D *primary, const Matrix3D *primary_mtx, float primary_speed, const Coord3D *secondary, float radius) const
204
+ {
205
+ captainslog_dbgassert (false , " ViewShakeFXNugget::Do_FX_Pos not implemented!" );
206
+ }
207
+
208
+ void ViewShakeFXNugget::Do_FX_Obj (const Object *primary, const Object *secondary) const
209
+ {
210
+ captainslog_dbgassert (false , " ViewShakeFXNugget::Do_FX_Obj not implemented!" );
211
+ }
212
+
213
+ void ViewShakeFXNugget::Parse (INI *ini, void *formal, void *, const void *)
214
+ {
215
+ static const FieldParse _fieldParse[] = {
216
+ { " Type" , &INI::Parse_Index_List, g_shakeIntensityNames, offsetof (ViewShakeFXNugget, m_type) },
217
+ { nullptr , nullptr , nullptr , 0 },
218
+ };
219
+
220
+ ViewShakeFXNugget *nugget = new ViewShakeFXNugget{};
221
+ ini->Init_From_INI (nugget, _fieldParse);
222
+ reinterpret_cast <FXList *>(formal)->Add_FXNugget (nugget);
223
+ }
224
+
225
+ void TerrainScorchFXNugget::Do_FX_Pos (
226
+ const Coord3D *primary, const Matrix3D *primary_mtx, float primary_speed, const Coord3D *secondary, float radius) const
227
+ {
228
+ captainslog_dbgassert (false , " TerrainScorchFXNugget::Do_FX_Pos not implemented!" );
229
+ }
230
+
231
+ void TerrainScorchFXNugget::Do_FX_Obj (const Object *primary, const Object *secondary) const
232
+ {
233
+ captainslog_dbgassert (false , " TerrainScorchFXNugget::Do_FX_Obj not implemented!" );
234
+ }
235
+
236
+ void TerrainScorchFXNugget::Parse (INI *ini, void *formal, void *, const void *)
237
+ {
238
+ static const FieldParse _fieldParse[] = {
239
+ { " Type" , &INI::Parse_AsciiString, nullptr , offsetof (TerrainScorchFXNugget, m_type) },
240
+ { " Radius" , &INI::Parse_Int, nullptr , offsetof (TerrainScorchFXNugget, m_radius) },
241
+ { nullptr , nullptr , nullptr , 0 },
242
+ };
243
+
244
+ TerrainScorchFXNugget *nugget = new TerrainScorchFXNugget{};
245
+ ini->Init_From_INI (nugget, _fieldParse);
246
+ reinterpret_cast <FXList *>(formal)->Add_FXNugget (nugget);
247
+ }
248
+
249
+ void ParticleSystemFXNugget::Do_FX_Pos (
250
+ const Coord3D *primary, const Matrix3D *primary_mtx, float primary_speed, const Coord3D *secondary, float radius) const
251
+ {
252
+ captainslog_dbgassert (false , " ParticleSystemFXNugget::Do_FX_Pos not implemented!" );
253
+ }
254
+
255
+ void ParticleSystemFXNugget::Do_FX_Obj (const Object *primary, const Object *secondary) const
256
+ {
257
+ captainslog_dbgassert (false , " ParticleSystemFXNugget::Do_FX_Obj not implemented!" );
258
+ }
259
+
260
+ void ParticleSystemFXNugget::Parse (INI *ini, void *formal, void *, const void *)
261
+ {
262
+ static const FieldParse _fieldParse[] = {
263
+ { " Name" , &INI::Parse_AsciiString, nullptr , offsetof (ParticleSystemFXNugget, m_sysName) },
264
+ { " Count" , &INI::Parse_Int, nullptr , offsetof (ParticleSystemFXNugget, m_count) },
265
+ { " Radius" , &GameClientRandomVariable::Parse, nullptr , offsetof (ParticleSystemFXNugget, m_radius) },
266
+ { " InitialDelay" , &GameClientRandomVariable::Parse, nullptr , offsetof (ParticleSystemFXNugget, m_initialDelay) },
267
+ { " AttachToObject" , &INI::Parse_Bool, nullptr , offsetof (ParticleSystemFXNugget, m_attachToObject) },
268
+ { " Offset" , &INI::Parse_Coord3D, nullptr , offsetof (ParticleSystemFXNugget, m_offset) },
269
+ { " Height" , &GameClientRandomVariable::Parse, nullptr , offsetof (ParticleSystemFXNugget, m_height) },
270
+ { " OrientToObject" , &INI::Parse_Bool, nullptr , offsetof (ParticleSystemFXNugget, m_orientToObject) },
271
+ { " RotateY" , &INI::Parse_Angle_Real, nullptr , offsetof (ParticleSystemFXNugget, m_rotateY) },
272
+ { " Ricochet" , &INI::Parse_Bool, nullptr , offsetof (ParticleSystemFXNugget, m_ricochet) },
273
+ { " CreateAtGroundHeight" , &INI::Parse_Bool, nullptr , offsetof (ParticleSystemFXNugget, m_createAtGroundHeight) },
274
+ { " UseCallersRadius" , &INI::Parse_Bool, nullptr , offsetof (ParticleSystemFXNugget, m_useCallersRadius) },
275
+ { nullptr , nullptr , nullptr , 0 },
276
+ };
277
+
278
+ ParticleSystemFXNugget *nugget = new ParticleSystemFXNugget{};
279
+ ini->Init_From_INI (nugget, _fieldParse);
280
+ reinterpret_cast <FXList *>(formal)->Add_FXNugget (nugget);
281
+ }
282
+
283
+ void FXListAtBonePosFXNugget::Do_FX_Pos (
284
+ const Coord3D *primary, const Matrix3D *primary_mtx, float primary_speed, const Coord3D *secondary, float radius) const
285
+ {
286
+ captainslog_dbgassert (false , " FXListAtBonePosFXNugget::Do_FX_Pos not implemented!" );
287
+ }
288
+
289
+ void FXListAtBonePosFXNugget::Do_FX_Obj (const Object *primary, const Object *secondary) const
290
+ {
291
+ captainslog_dbgassert (false , " FXListAtBonePosFXNugget::Do_FX_Obj not implemented!" );
292
+ }
293
+
294
+ void FXListAtBonePosFXNugget::Parse (INI *ini, void *formal, void *, const void *)
295
+ {
296
+ static const FieldParse _fieldParse[] = {
297
+ { " FX" , &FXList::Parse, nullptr , offsetof (FXListAtBonePosFXNugget, m_fx) },
298
+ { " BoneName" , &INI::Parse_AsciiString, nullptr , offsetof (FXListAtBonePosFXNugget, m_boneName) },
299
+ { " OrientToBone" , &INI::Parse_Bool, nullptr , offsetof (FXListAtBonePosFXNugget, m_orientToBone) },
300
+ { nullptr , nullptr , nullptr , 0 },
301
+ };
302
+
303
+ FXListAtBonePosFXNugget *nugget = new FXListAtBonePosFXNugget{};
304
+ ini->Init_From_INI (nugget, _fieldParse);
305
+ reinterpret_cast <FXList *>(formal)->Add_FXNugget (nugget);
306
+ }
0 commit comments