Skip to content

Commit ab6bea5

Browse files
committed
Review
1 parent 594afaa commit ab6bea5

28 files changed

+89
-207
lines changed

Client/game_sa/CEntitySA.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,9 @@ class CEntitySA : public virtual CEntity
334334
bool GetBonePosition(eBone boneId, CVector& position);
335335
bool SetBonePosition(eBone boneId, const CVector& position);
336336

337+
bool IsOnFire() override { return false; }
338+
bool SetOnFire(bool onFire) override { return false; }
339+
337340
// CEntitySA interface
338341
virtual void OnChangingPosition(const CVector& vecNewPosition) {}
339342

Client/game_sa/CObjectSA.cpp

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -306,19 +306,19 @@ void CObjectSA::ResetScale()
306306
SetScale(1.0f, 1.0f, 1.0f);
307307
}
308308

309-
void CObjectSA::SetOnFire(bool onFire)
309+
bool CObjectSA::SetOnFire(bool onFire)
310310
{
311311
CObjectSAInterface* objectInterface = GetObjectInterface();
312-
if ((onFire && objectInterface->pFire) || (!onFire && !objectInterface->pFire))
313-
return;
312+
if (onFire == !!objectInterface->pFire)
313+
return false;
314314

315315
auto* fireManager = static_cast<CFireManagerSA*>(pGame->GetFireManager());
316316

317317
if (onFire)
318318
{
319319
CFire* fire = fireManager->StartFire(this, nullptr, static_cast<float>(DEFAULT_FIRE_PARTICLE_SIZE));
320320
if (!fire)
321-
return;
321+
return false;
322322

323323
fire->SetTarget(this);
324324
fire->SetStrength(1.0f);
@@ -330,7 +330,11 @@ void CObjectSA::SetOnFire(bool onFire)
330330
else
331331
{
332332
CFire* fire = fireManager->GetFire(objectInterface->pFire);
333-
if (fire)
334-
fire->Extinguish();
333+
if (!fire)
334+
return false;
335+
336+
fire->Extinguish();
335337
}
338+
339+
return true;
336340
}

Client/game_sa/CObjectSA.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ class CObjectSA : public virtual CObject, public virtual CPhysicalSA
154154
void ResetScale();
155155

156156
bool IsOnFire() override { return GetObjectInterface()->pFire != nullptr; }
157-
void SetOnFire(bool onFire) override;
157+
bool SetOnFire(bool onFire) override;
158158

159159
private:
160160
void CheckForGangTag();

Client/game_sa/CPedSA.cpp

Lines changed: 24 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -851,52 +851,39 @@ void CPedSA::SetBleeding(bool bBleeding)
851851
GetPedInterface()->pedFlags.bPedIsBleeding = bBleeding;
852852
}
853853

854-
bool CPedSA::IsOnFire()
855-
{
856-
if (GetPedInterface()->pFireOnPed != NULL)
857-
return true;
858-
return false;
859-
}
860-
861-
void CPedSA::SetOnFire(bool bOnFire)
854+
bool CPedSA::SetOnFire(bool onFire)
862855
{
863856
CPedSAInterface* pInterface = GetPedInterface();
857+
if (onFire == !!pInterface->pFireOnPed)
858+
return false;
864859

865-
if (bOnFire)
866-
{
867-
// If we are already on fire, don't apply a new fire
868-
if (pInterface->pFireOnPed == NULL)
869-
{
870-
CFireManagerSA* pFireManager = static_cast<CFireManagerSA*>(pGame->GetFireManager());
871-
CFire* pFire = pFireManager->StartFire(this, NULL, (float)DEFAULT_FIRE_PARTICLE_SIZE);
860+
auto* fireManager = static_cast<CFireManagerSA*>(pGame->GetFireManager());
872861

873-
if (pFire)
874-
{
875-
// Start the fire
876-
pFire->SetTarget(this);
877-
pFire->Ignite();
878-
pFire->SetStrength(1.0f);
879-
// Attach the fire only to the player, do not let it
880-
// create child fires when moving.
881-
pFire->SetNumGenerationsAllowed(0);
882-
pInterface->pFireOnPed = pFire->GetInterface();
883-
}
884-
}
862+
if (onFire)
863+
{
864+
CFire* fire = fireManager->StartFire(this, nullptr, static_cast<float>(DEFAULT_FIRE_PARTICLE_SIZE));
865+
if (!fire)
866+
return false;
867+
868+
// Start the fire
869+
fire->SetTarget(this);
870+
fire->Ignite();
871+
fire->SetStrength(1.0f);
872+
// Attach the fire only to the player, do not let it
873+
// create child fires when moving.
874+
fire->SetNumGenerationsAllowed(0);
875+
pInterface->pFireOnPed = fire->GetInterface();
885876
}
886877
else
887878
{
888-
// Make sure that we have some attached fire
889-
if (pInterface->pFireOnPed != NULL)
890-
{
891-
CFireManagerSA* pFireManager = static_cast<CFireManagerSA*>(pGame->GetFireManager());
892-
CFire* pFire = pFireManager->GetFire(static_cast<CFireSAInterface*>(pInterface->pFireOnPed));
879+
CFire* fire = fireManager->GetFire(static_cast<CFireSAInterface*>(pInterface->pFireOnPed));
880+
if (!fire)
881+
return false;
893882

894-
if (pFire)
895-
{
896-
pFire->Extinguish();
897-
}
898-
}
883+
fire->Extinguish();
899884
}
885+
886+
return true;
900887
}
901888

902889
void CPedSA::SetStayInSamePlace(bool bStay)

Client/game_sa/CPedSA.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -389,8 +389,8 @@ class CPedSA : public virtual CPed, public virtual CPhysicalSA
389389
bool IsBleeding();
390390
void SetBleeding(bool bBleeding);
391391

392-
bool IsOnFire();
393-
void SetOnFire(bool bOnFire);
392+
bool IsOnFire() override { return GetPedInterface()->pFireOnPed != nullptr; }
393+
bool SetOnFire(bool onFire) override;
394394

395395
bool GetStayInSamePlace() { return GetPedInterface()->pedFlags.bStayInSamePlace; }
396396
void SetStayInSamePlace(bool bStay);

Client/game_sa/CVehicleSA.cpp

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1834,19 +1834,19 @@ void CVehicleSA::OnChangingPosition(const CVector& vecNewPosition)
18341834
}
18351835
}
18361836

1837-
void CVehicleSA::SetOnFire(bool onFire)
1837+
bool CVehicleSA::SetOnFire(bool onFire)
18381838
{
18391839
CVehicleSAInterface* vehicleInterface = GetVehicleInterface();
1840-
if ((onFire && vehicleInterface->m_pFire) || (!onFire && !vehicleInterface->m_pFire))
1841-
return;
1840+
if (onFire == !!vehicleInterface->m_pFire)
1841+
return false;
18421842

18431843
auto* fireManager = static_cast<CFireManagerSA*>(pGame->GetFireManager());
18441844

18451845
if (onFire)
18461846
{
18471847
CFire* fire = fireManager->StartFire(this, nullptr, static_cast<float>(DEFAULT_FIRE_PARTICLE_SIZE));
18481848
if (!fire)
1849-
return;
1849+
return false;
18501850

18511851
fire->SetTarget(this);
18521852
fire->SetStrength(1.0f);
@@ -1858,9 +1858,13 @@ void CVehicleSA::SetOnFire(bool onFire)
18581858
else
18591859
{
18601860
CFire* fire = fireManager->GetFire(vehicleInterface->m_pFire);
1861-
if (fire)
1862-
fire->Extinguish();
1861+
if (!fire)
1862+
return false;
1863+
1864+
fire->Extinguish();
18631865
}
1866+
1867+
return true;
18641868
}
18651869

18661870
void CVehicleSA::StaticSetHooks()

Client/game_sa/CVehicleSA.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -691,7 +691,7 @@ class CVehicleSA : public virtual CVehicle, public virtual CPhysicalSA
691691
const CVector* GetDummyPositions() const override { return m_dummyPositions.data(); }
692692

693693
bool IsOnFire() override { return GetVehicleInterface()->m_pFire != nullptr; }
694-
void SetOnFire(bool onFire) override;
694+
bool SetOnFire(bool onFire) override;
695695

696696
static void StaticSetHooks();
697697
static void SetVehiclesSunGlareEnabled(bool bEnabled);

Client/mods/deathmatch/logic/CClientEntity.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,9 @@ class CClientEntity : public CClientEntityBase
331331
bool CanBeDestroyedByScript() { return m_canBeDestroyedByScript; }
332332
void SetCanBeDestroyedByScript(bool canBeDestroyedByScript) { m_canBeDestroyedByScript = canBeDestroyedByScript; }
333333

334+
virtual bool IsOnFire() { return false; }
335+
virtual bool SetOnFire(bool onFire) { return false; }
336+
334337
protected:
335338
CClientManager* m_pManager;
336339
CClientEntity* m_pParent;

Client/mods/deathmatch/logic/CClientObject.cpp

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -429,20 +429,6 @@ void CClientObject::SetHealth(float fHealth)
429429
m_fHealth = fHealth;
430430
}
431431

432-
bool CClientObject::IsOnFire() const noexcept
433-
{
434-
if (!m_pObject)
435-
return false;
436-
437-
return m_pObject->IsOnFire();
438-
}
439-
440-
void CClientObject::SetOnFire(bool onFire) noexcept
441-
{
442-
if (m_pObject)
443-
m_pObject->SetOnFire(onFire);
444-
}
445-
446432
void CClientObject::StreamIn(bool bInstantly)
447433
{
448434
// Don't stream the object in, if respawn is disabled and the object is broken

Client/mods/deathmatch/logic/CClientObject.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,8 +119,8 @@ class CClientObject : public CClientStreamElement
119119
bool IsBeingRespawned() { return m_bBeingRespawned; };
120120
void SetBeingRespawned(bool bBeingRespawned) { m_bBeingRespawned = bBeingRespawned; };
121121

122-
bool IsOnFire() const noexcept;
123-
void SetOnFire(bool onFire) noexcept;
122+
bool IsOnFire() override { return m_pObject ? m_pObject->IsOnFire() : false; }
123+
bool SetOnFire(bool onFire) override { return m_pObject ? m_pObject->SetOnFire(onFire) : false; };
124124

125125
protected:
126126
void StreamIn(bool bInstantly);

0 commit comments

Comments
 (0)