@@ -47,6 +47,14 @@ static const FieldParse s_theFXListFieldParse[] = {
4747 { " TerrainScorch" , reinterpret_cast <inifieldparse_t >(PICK_ADDRESS (0x004CAC80 , 0x00760F20 )) /* &TerrainScorchFXNugget::Parse */ , nullptr , 0 },
4848 { " ParticleSystem" , reinterpret_cast <inifieldparse_t >(PICK_ADDRESS (0x004CAE10 , 0x00761350 )) /* &ParticleSystemFXNugget::Parse */ , nullptr , 0 },
4949 { " 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 },
5058#endif
5159 { nullptr , nullptr , nullptr , 0 },
5260};
@@ -132,3 +140,167 @@ void SoundFXNugget::Parse(INI *ini, void *formal, void *, const void *)
132140 ini->Init_From_INI (nugget, _fieldParse);
133141 reinterpret_cast <FXList *>(formal)->Add_FXNugget (nugget);
134142}
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