@@ -47,6 +47,13 @@ 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 },
5057#endif
5158 { nullptr , nullptr , nullptr , 0 },
5259};
@@ -132,3 +139,134 @@ void SoundFXNugget::Parse(INI *ini, void *formal, void *, const void *)
132139 ini->Init_From_INI (nugget, _fieldParse);
133140 reinterpret_cast <FXList *>(formal)->Add_FXNugget (nugget);
134141}
142+
143+ void TracerFXNugget::Do_FX_Pos (
144+ const Coord3D *primary, const Matrix3D *primary_mtx, float primary_speed, const Coord3D *secondary, float radius) const
145+ {
146+ captainslog_dbgassert (false , " TracerFXNugget::Do_FX_Pos not implemented!" );
147+ }
148+
149+ void TracerFXNugget::Do_FX_Obj (const Object *primary, const Object *secondary) const
150+ {
151+ captainslog_dbgassert (false , " TracerFXNugget::Do_FX_Obj not implemented!" );
152+ }
153+
154+ void TracerFXNugget::Parse (INI *ini, void *formal, void *, const void *)
155+ {
156+ static const FieldParse _fieldParse[] = {
157+ { " DecayAt" , &INI::Parse_Int, nullptr , offsetof (TracerFXNugget, m_decayAt) },
158+ { " Length" , &INI::Parse_Int, nullptr , offsetof (TracerFXNugget, m_length) },
159+ { " Width" , &INI::Parse_Real, nullptr , offsetof (TracerFXNugget, m_width) },
160+ { " Color" , &INI::Parse_RGB_Color, nullptr , offsetof (TracerFXNugget, m_color) },
161+ { " Speed" , &INI::Parse_Int, nullptr , offsetof (TracerFXNugget, speed) },
162+ { " Probability" , &INI::Parse_Real, nullptr , offsetof (TracerFXNugget, probability) },
163+ { nullptr , nullptr , nullptr , 0 },
164+ };
165+
166+ TracerFXNugget *nugget = new TracerFXNugget{};
167+ ini->Init_From_INI (nugget, _fieldParse);
168+ reinterpret_cast <FXList *>(formal)->Add_FXNugget (nugget);
169+ }
170+
171+ void LightPulseFXNugget::Do_FX_Pos (
172+ const Coord3D *primary, const Matrix3D *primary_mtx, float primary_speed, const Coord3D *secondary, float radius) const
173+ {
174+ captainslog_dbgassert (false , " LightPulseFXNugget::Do_FX_Pos not implemented!" );
175+ }
176+
177+ void LightPulseFXNugget::Do_FX_Obj (const Object *primary, const Object *secondary) const
178+ {
179+ captainslog_dbgassert (false , " LightPulseFXNugget::Do_FX_Obj not implemented!" );
180+ }
181+
182+ void LightPulseFXNugget::Parse (INI *ini, void *formal, void *, const void *)
183+ {
184+ static const FieldParse _fieldParse[] = {
185+ { " Color" , &INI::Parse_RGB_Color, nullptr , offsetof (LightPulseFXNugget, m_color) },
186+ { " Radius" , &INI::Parse_Int, nullptr , offsetof (LightPulseFXNugget, m_radius) },
187+ { " IncreaseTime" , &INI::Parse_Int, nullptr , offsetof (LightPulseFXNugget, m_increaseTime) },
188+ { " DecreaseTime" , &INI::Parse_Int, nullptr , offsetof (LightPulseFXNugget, m_decreaseTime) },
189+ { nullptr , nullptr , nullptr , 0 },
190+ };
191+
192+ LightPulseFXNugget *nugget = new LightPulseFXNugget{};
193+ ini->Init_From_INI (nugget, _fieldParse);
194+ reinterpret_cast <FXList *>(formal)->Add_FXNugget (nugget);
195+ }
196+
197+ void ViewShakeFXNugget::Do_FX_Pos (
198+ const Coord3D *primary, const Matrix3D *primary_mtx, float primary_speed, const Coord3D *secondary, float radius) const
199+ {
200+ captainslog_dbgassert (false , " ViewShakeFXNugget::Do_FX_Pos not implemented!" );
201+ }
202+
203+ void ViewShakeFXNugget::Do_FX_Obj (const Object *primary, const Object *secondary) const
204+ {
205+ captainslog_dbgassert (false , " ViewShakeFXNugget::Do_FX_Obj not implemented!" );
206+ }
207+
208+ void ViewShakeFXNugget::Parse (INI *ini, void *formal, void *, const void *)
209+ {
210+ static const FieldParse _fieldParse[] = {
211+ { " Type" , &INI::Parse_Index_List, g_shakeIntensityNames, offsetof (ViewShakeFXNugget, m_type) },
212+ { nullptr , nullptr , nullptr , 0 },
213+ };
214+
215+ ViewShakeFXNugget *nugget = new ViewShakeFXNugget{};
216+ ini->Init_From_INI (nugget, _fieldParse);
217+ reinterpret_cast <FXList *>(formal)->Add_FXNugget (nugget);
218+ }
219+
220+ void TerrainScorchFXNugget::Do_FX_Pos (
221+ const Coord3D *primary, const Matrix3D *primary_mtx, float primary_speed, const Coord3D *secondary, float radius) const
222+ {
223+ captainslog_dbgassert (false , " TerrainScorchFXNugget::Do_FX_Pos not implemented!" );
224+ }
225+
226+ void TerrainScorchFXNugget::Do_FX_Obj (const Object *primary, const Object *secondary) const
227+ {
228+ captainslog_dbgassert (false , " TerrainScorchFXNugget::Do_FX_Obj not implemented!" );
229+ }
230+
231+ void TerrainScorchFXNugget::Parse (INI *ini, void *formal, void *, const void *)
232+ {
233+ static const FieldParse _fieldParse[] = {
234+ { " Type" , &INI::Parse_AsciiString, nullptr , offsetof (TerrainScorchFXNugget, m_type) },
235+ { " Radius" , &INI::Parse_Int, nullptr , offsetof (TerrainScorchFXNugget, m_radius) },
236+ { nullptr , nullptr , nullptr , 0 },
237+ };
238+
239+ TerrainScorchFXNugget *nugget = new TerrainScorchFXNugget{};
240+ ini->Init_From_INI (nugget, _fieldParse);
241+ reinterpret_cast <FXList *>(formal)->Add_FXNugget (nugget);
242+ }
243+
244+ void ParticleSystemFXNugget::Do_FX_Pos (
245+ const Coord3D *primary, const Matrix3D *primary_mtx, float primary_speed, const Coord3D *secondary, float radius) const
246+ {
247+ captainslog_dbgassert (false , " ParticleSystemFXNugget::Do_FX_Pos not implemented!" );
248+ }
249+
250+ void ParticleSystemFXNugget::Do_FX_Obj (const Object *primary, const Object *secondary) const
251+ {
252+ captainslog_dbgassert (false , " ParticleSystemFXNugget::Do_FX_Obj not implemented!" );
253+ }
254+
255+ void ParticleSystemFXNugget::Parse (INI *ini, void *formal, void *, const void *)
256+ {
257+ static const FieldParse _fieldParse[] = {
258+ { " Name" , &INI::Parse_AsciiString, nullptr , offsetof (ParticleSystemFXNugget, m_sysName) },
259+ { " InitialDelay" , &GameClientRandomVariable::Parse, nullptr , offsetof (ParticleSystemFXNugget, m_initialDelay) },
260+ { " Offset" , &INI::Parse_Coord3D, nullptr , offsetof (ParticleSystemFXNugget, m_offset) },
261+ { " Height" , &GameClientRandomVariable::Parse, nullptr , offsetof (ParticleSystemFXNugget, m_height) },
262+ { " OrientToObject" , &INI::Parse_Bool, nullptr , offsetof (ParticleSystemFXNugget, m_orientToObject) },
263+ { " Ricochet" , &INI::Parse_Bool, nullptr , offsetof (ParticleSystemFXNugget, m_ricochet) },
264+ { " CreateAtGroundHeight" , &INI::Parse_Bool, nullptr , offsetof (ParticleSystemFXNugget, m_createAtGroundHeight) },
265+ { " UseCallersRadius" , &INI::Parse_Bool, nullptr , offsetof (ParticleSystemFXNugget, m_useCallersRadius) },
266+ { nullptr , nullptr , nullptr , 0 },
267+ };
268+
269+ ParticleSystemFXNugget *nugget = new ParticleSystemFXNugget{};
270+ ini->Init_From_INI (nugget, _fieldParse);
271+ reinterpret_cast <FXList *>(formal)->Add_FXNugget (nugget);
272+ }
0 commit comments