@@ -64,8 +64,8 @@ int AEmitter::Create(const AEmitter& reference) {
6464 SetFlash (dynamic_cast <Attachable*>(reference.m_pFlash ->Clone ()));
6565 }
6666
67- for (const Emission* emission: reference.m_EmissionList ) {
68- m_EmissionList.push_back (dynamic_cast <Emission*>(emission->Clone ()));
67+ for (Emission* emission: reference.m_EmissionList ) {
68+ m_EmissionList.push_back (static_cast <Emission*>(emission->Clone ()));
6969 }
7070 if (reference.m_EmissionSound ) {
7171 m_EmissionSound = dynamic_cast <SoundContainer*>(reference.m_EmissionSound ->Clone ());
@@ -106,10 +106,10 @@ int AEmitter::ReadProperty(const std::string_view& propName, Reader& reader) {
106106
107107 MatchProperty (" AddEmission" , {
108108 Entity* readerEntity = g_PresetMan.ReadReflectedPreset (reader);
109- if (Emission* readerEmission = dynamic_cast <Emission*>(readerEntity)) {
110- m_EmissionList.push_back (readerEmission );
109+ if (Emission* readerAttachable = dynamic_cast <Emission*>(readerEntity)) {
110+ m_EmissionList.push_back (readerAttachable );
111111 } else {
112- reader.ReportError (" Tried to AddEmission a non-Emission type!" );
112+ reader.ReportError (" Tried to AddAttachable a non-Attachable type!" );
113113 }
114114 });
115115 MatchProperty (" EmissionSound" , {
@@ -132,7 +132,7 @@ int AEmitter::ReadProperty(const std::string_view& propName, Reader& reader) {
132132 reader >> ppm;
133133 // Go through all emissions and set the rate so that it emulates the way it used to work, for mod backwards compatibility.
134134 for (Emission* emission: m_EmissionList) {
135- emission->SetRate ( ppm / static_cast <float >(m_EmissionList.size () ));
135+ emission->m_PPM = ppm / static_cast <float >(m_EmissionList.size ());
136136 }
137137 });
138138 MatchProperty (" NegativeThrottleMultiplier" , { reader >> m_NegativeThrottleMultiplier; });
@@ -144,7 +144,7 @@ int AEmitter::ReadProperty(const std::string_view& propName, Reader& reader) {
144144 reader >> burstSize;
145145 // Go through all emissions and set the rate so that it emulates the way it used to work, for mod backwards compatibility.
146146 for (Emission* emission: m_EmissionList) {
147- emission->SetBurstSize ( std::ceil (static_cast <float >(burstSize) / static_cast <float >(m_EmissionList.size () )));
147+ emission->m_BurstSize = std::ceil (static_cast <float >(burstSize) / static_cast <float >(m_EmissionList.size ()));
148148 }
149149 });
150150 MatchProperty (" BurstScale" , { reader >> m_BurstScale; });
@@ -169,9 +169,9 @@ int AEmitter::ReadProperty(const std::string_view& propName, Reader& reader) {
169169int AEmitter::Save (Writer& writer) const {
170170 Attachable::Save (writer);
171171
172- for (auto itr = m_EmissionList. begin (); itr != m_EmissionList. end (); ++itr ) {
172+ for (Emission* emission: m_EmissionList) {
173173 writer.NewProperty (" AddEmission" );
174- writer << *itr ;
174+ writer << *emission ;
175175 }
176176 writer.NewProperty (" EmissionSound" );
177177 writer << m_EmissionSound;
@@ -236,8 +236,8 @@ void AEmitter::Destroy(bool notInherited) {
236236 m_EmissionSound->Stop ();
237237 }
238238
239- for (auto eItr = m_EmissionList. begin (); eItr != m_EmissionList. end (); ++eItr ) {
240- delete (*eItr) ;
239+ for (Emission* emission: m_EmissionList) {
240+ delete emission ;
241241 }
242242
243243 delete m_EmissionSound;
@@ -246,15 +246,17 @@ void AEmitter::Destroy(bool notInherited) {
246246
247247 // m_BurstSound.Stop();
248248
249- if (!notInherited)
249+ if (!notInherited) {
250250 Attachable::Destroy ();
251+ }
251252 Clear ();
252253}
253254
254255void AEmitter::ResetEmissionTimers () {
255256 m_LastEmitTmr.Reset ();
256- for (Emission* emission: m_EmissionList)
257+ for (Emission* emission: m_EmissionList) {
257258 emission->ResetEmissionTimers ();
259+ }
258260}
259261
260262void AEmitter::EnableEmission (bool enable) {
@@ -275,7 +277,7 @@ float AEmitter::EstimateImpulse(bool burst) {
275277 float velMin, velMax, velRange, spread;
276278
277279 // Go through all emissions and emit them according to their respective rates
278- for (const Emission* emission: m_EmissionList) {
280+ for (Emission* emission: m_EmissionList) {
279281 // Only check emissions that push the emitter
280282 if (emission->PushesEmitter ()) {
281283 float emissions = (emission->GetRate () / 60 .0f ) * g_TimerMan.GetDeltaTimeSecs ();
@@ -313,15 +315,15 @@ float AEmitter::EstimateImpulse(bool burst) {
313315float AEmitter::GetTotalParticlesPerMinute () const {
314316 float totalPPM = 0 ;
315317 for (const Emission* emission: m_EmissionList) {
316- totalPPM += emission->GetRate () ;
318+ totalPPM += emission->m_PPM ;
317319 }
318320 return totalPPM;
319321}
320322
321323int AEmitter::GetTotalBurstSize () const {
322324 int totalBurstSize = 0 ;
323325 for (const Emission* emission: m_EmissionList) {
324- totalBurstSize += emission->GetBurstSize () ;
326+ totalBurstSize += emission->m_BurstSize ;
325327 }
326328 return totalBurstSize;
327329}
@@ -435,16 +437,16 @@ void AEmitter::Update() {
435437 SPE = 60.0 / currentPPM;
436438
437439 // Add the last elapsed time to the accumulator
438- emission->SetAccumulator (emission-> GetAccumulator () + m_LastEmitTmr.GetElapsedSimTimeS () );
440+ emission->m_Accumulator += m_LastEmitTmr.GetElapsedSimTimeS ();
439441
440442 // Now figure how many full emissions can fit in the current accumulator
441- emissionCount = std::floor (emission->GetAccumulator () / SPE);
443+ emissionCount = std::floor (emission->m_Accumulator / SPE);
442444 // Deduct the about to be emitted emissions from the accumulator
443- emission->SetAccumulator (emission-> GetAccumulator () - emissionCount * SPE) ;
445+ emission->m_Accumulator -= emissionCount * SPE;
444446
445- RTEAssert (emission->GetAccumulator () >= 0 , " Emission accumulator negative!" );
447+ RTEAssert (emission->m_Accumulator >= 0 , " Emission accumulator negative!" );
446448 } else {
447- emission->SetAccumulator ( 0 ) ;
449+ emission->m_Accumulator = 0 ;
448450 }
449451 float scale = 1 .0F ;
450452 // Add extra emissions if bursting.
@@ -459,8 +461,8 @@ void AEmitter::Update() {
459461 }
460462 pParticle = 0 ;
461463 emitVel.Reset ();
462- Vector rotationalVel = (((RotateOffset (emission->GetOffset ()) + (m_Pos - pRootParent->GetPos ())) * pRootParent->GetAngularVel ()).GetPerpendicular () / c_PPM) * emission->InheritsVelocity ();
463464 parentVel = pRootParent->GetVel () * emission->InheritsVelocity ();
465+ Vector rotationalVel = (((RotateOffset (emission->GetOffset ()) + (m_Pos - pRootParent->GetPos ())) * pRootParent->GetAngularVel ()).GetPerpendicular () / c_PPM) * emission->InheritsVelocity ();
464466
465467 for (int i = 0 ; i < emissionCount; ++i) {
466468 velMin = emission->GetMinVelocity () * scale;
@@ -500,7 +502,7 @@ void AEmitter::Update() {
500502 // Add to accumulative recoil impulse generated, F = m * a
501503 // If enabled, that is
502504 if (emission->PushesEmitter () && (GetParent () || GetMass () > 0 )) {
503- pushImpulses += - emitVel * pParticle->GetMass ();
505+ pushImpulses -= emitVel * pParticle->GetMass ();
504506 }
505507
506508 // Set the emitted particle to not hit this emitter's parent, if applicable
0 commit comments