@@ -64,8 +64,8 @@ int AEmitter::Create(const AEmitter& reference) {
64
64
SetFlash (dynamic_cast <Attachable*>(reference.m_pFlash ->Clone ()));
65
65
}
66
66
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 ()));
69
69
}
70
70
if (reference.m_EmissionSound ) {
71
71
m_EmissionSound = dynamic_cast <SoundContainer*>(reference.m_EmissionSound ->Clone ());
@@ -106,10 +106,10 @@ int AEmitter::ReadProperty(const std::string_view& propName, Reader& reader) {
106
106
107
107
MatchProperty (" AddEmission" , {
108
108
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 );
111
111
} else {
112
- reader.ReportError (" Tried to AddEmission a non-Emission type!" );
112
+ reader.ReportError (" Tried to AddAttachable a non-Attachable type!" );
113
113
}
114
114
});
115
115
MatchProperty (" EmissionSound" , {
@@ -132,7 +132,7 @@ int AEmitter::ReadProperty(const std::string_view& propName, Reader& reader) {
132
132
reader >> ppm;
133
133
// Go through all emissions and set the rate so that it emulates the way it used to work, for mod backwards compatibility.
134
134
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 ());
136
136
}
137
137
});
138
138
MatchProperty (" NegativeThrottleMultiplier" , { reader >> m_NegativeThrottleMultiplier; });
@@ -144,7 +144,7 @@ int AEmitter::ReadProperty(const std::string_view& propName, Reader& reader) {
144
144
reader >> burstSize;
145
145
// Go through all emissions and set the rate so that it emulates the way it used to work, for mod backwards compatibility.
146
146
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 ()));
148
148
}
149
149
});
150
150
MatchProperty (" BurstScale" , { reader >> m_BurstScale; });
@@ -169,9 +169,9 @@ int AEmitter::ReadProperty(const std::string_view& propName, Reader& reader) {
169
169
int AEmitter::Save (Writer& writer) const {
170
170
Attachable::Save (writer);
171
171
172
- for (auto itr = m_EmissionList. begin (); itr != m_EmissionList. end (); ++itr ) {
172
+ for (Emission* emission: m_EmissionList) {
173
173
writer.NewProperty (" AddEmission" );
174
- writer << *itr ;
174
+ writer << *emission ;
175
175
}
176
176
writer.NewProperty (" EmissionSound" );
177
177
writer << m_EmissionSound;
@@ -236,8 +236,8 @@ void AEmitter::Destroy(bool notInherited) {
236
236
m_EmissionSound->Stop ();
237
237
}
238
238
239
- for (auto eItr = m_EmissionList. begin (); eItr != m_EmissionList. end (); ++eItr ) {
240
- delete (*eItr) ;
239
+ for (Emission* emission: m_EmissionList) {
240
+ delete emission ;
241
241
}
242
242
243
243
delete m_EmissionSound;
@@ -246,15 +246,17 @@ void AEmitter::Destroy(bool notInherited) {
246
246
247
247
// m_BurstSound.Stop();
248
248
249
- if (!notInherited)
249
+ if (!notInherited) {
250
250
Attachable::Destroy ();
251
+ }
251
252
Clear ();
252
253
}
253
254
254
255
void AEmitter::ResetEmissionTimers () {
255
256
m_LastEmitTmr.Reset ();
256
- for (Emission* emission: m_EmissionList)
257
+ for (Emission* emission: m_EmissionList) {
257
258
emission->ResetEmissionTimers ();
259
+ }
258
260
}
259
261
260
262
void AEmitter::EnableEmission (bool enable) {
@@ -275,7 +277,7 @@ float AEmitter::EstimateImpulse(bool burst) {
275
277
float velMin, velMax, velRange, spread;
276
278
277
279
// 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) {
279
281
// Only check emissions that push the emitter
280
282
if (emission->PushesEmitter ()) {
281
283
float emissions = (emission->GetRate () / 60 .0f ) * g_TimerMan.GetDeltaTimeSecs ();
@@ -313,15 +315,15 @@ float AEmitter::EstimateImpulse(bool burst) {
313
315
float AEmitter::GetTotalParticlesPerMinute () const {
314
316
float totalPPM = 0 ;
315
317
for (const Emission* emission: m_EmissionList) {
316
- totalPPM += emission->GetRate () ;
318
+ totalPPM += emission->m_PPM ;
317
319
}
318
320
return totalPPM;
319
321
}
320
322
321
323
int AEmitter::GetTotalBurstSize () const {
322
324
int totalBurstSize = 0 ;
323
325
for (const Emission* emission: m_EmissionList) {
324
- totalBurstSize += emission->GetBurstSize () ;
326
+ totalBurstSize += emission->m_BurstSize ;
325
327
}
326
328
return totalBurstSize;
327
329
}
@@ -435,16 +437,16 @@ void AEmitter::Update() {
435
437
SPE = 60.0 / currentPPM;
436
438
437
439
// Add the last elapsed time to the accumulator
438
- emission->SetAccumulator (emission-> GetAccumulator () + m_LastEmitTmr.GetElapsedSimTimeS () );
440
+ emission->m_Accumulator += m_LastEmitTmr.GetElapsedSimTimeS ();
439
441
440
442
// 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);
442
444
// Deduct the about to be emitted emissions from the accumulator
443
- emission->SetAccumulator (emission-> GetAccumulator () - emissionCount * SPE) ;
445
+ emission->m_Accumulator -= emissionCount * SPE;
444
446
445
- RTEAssert (emission->GetAccumulator () >= 0 , " Emission accumulator negative!" );
447
+ RTEAssert (emission->m_Accumulator >= 0 , " Emission accumulator negative!" );
446
448
} else {
447
- emission->SetAccumulator ( 0 ) ;
449
+ emission->m_Accumulator = 0 ;
448
450
}
449
451
float scale = 1 .0F ;
450
452
// Add extra emissions if bursting.
@@ -459,8 +461,8 @@ void AEmitter::Update() {
459
461
}
460
462
pParticle = 0 ;
461
463
emitVel.Reset ();
462
- Vector rotationalVel = (((RotateOffset (emission->GetOffset ()) + (m_Pos - pRootParent->GetPos ())) * pRootParent->GetAngularVel ()).GetPerpendicular () / c_PPM) * emission->InheritsVelocity ();
463
464
parentVel = pRootParent->GetVel () * emission->InheritsVelocity ();
465
+ Vector rotationalVel = (((RotateOffset (emission->GetOffset ()) + (m_Pos - pRootParent->GetPos ())) * pRootParent->GetAngularVel ()).GetPerpendicular () / c_PPM) * emission->InheritsVelocity ();
464
466
465
467
for (int i = 0 ; i < emissionCount; ++i) {
466
468
velMin = emission->GetMinVelocity () * scale;
@@ -500,7 +502,7 @@ void AEmitter::Update() {
500
502
// Add to accumulative recoil impulse generated, F = m * a
501
503
// If enabled, that is
502
504
if (emission->PushesEmitter () && (GetParent () || GetMass () > 0 )) {
503
- pushImpulses += - emitVel * pParticle->GetMass ();
505
+ pushImpulses -= emitVel * pParticle->GetMass ();
504
506
}
505
507
506
508
// Set the emitted particle to not hit this emitter's parent, if applicable
0 commit comments