From 37b9ba5bd7a7cd8b998d9e2489531bf446c19d88 Mon Sep 17 00:00:00 2001 From: Fire-Head Date: Fri, 22 Jan 2021 02:59:08 +0300 Subject: [PATCH] lcs pobj --- src/core/World.cpp | 4 ++-- src/entities/Physical.cpp | 1 + src/objects/ParticleObject.cpp | 11 +++++++++++ src/objects/ParticleObject.h | 5 +++-- src/render/Particle.cpp | 2 +- src/render/Particle.h | 7 ------- 6 files changed, 18 insertions(+), 12 deletions(-) diff --git a/src/core/World.cpp b/src/core/World.cpp index 1af0c4a4..3022368b 100644 --- a/src/core/World.cpp +++ b/src/core/World.cpp @@ -2161,8 +2161,8 @@ CWorld::TriggerExplosionSectorList(CPtrList &list, const CVector &position, floa } else { CVector pos = pEntity->GetPosition(); pos.z -= 0.5f; - CParticleObject::AddObject(POBJECT_FIRE_HYDRANT, - pos, true); + CParticleObject::AddObject(POBJECT_FIRE_HYDRANT, pos, true); + CParticleObject::AddObject(POBJECT_FIRE_HYDRANT_STEAM, pos, true); pObject->bHasBeenDamaged = true; } } diff --git a/src/entities/Physical.cpp b/src/entities/Physical.cpp index 5ce7bd72..de60c400 100644 --- a/src/entities/Physical.cpp +++ b/src/entities/Physical.cpp @@ -715,6 +715,7 @@ CPhysical::ApplyCollision(CPhysical *B, CColPoint &colpoint, float &impulseA, fl int16 model = B->GetModelIndex(); if(model == MI_FIRE_HYDRANT && !Bobj->bHasBeenDamaged){ CParticleObject::AddObject(POBJECT_FIRE_HYDRANT, B->GetPosition() - CVector(0.0f, 0.0f, 0.5f), true); + CParticleObject::AddObject(POBJECT_FIRE_HYDRANT_STEAM, B->GetPosition() - CVector(0.0f, 0.0f, 0.5f), true); Bobj->bHasBeenDamaged = true; }else if(model == MI_PARKINGMETER || model == MI_PARKINGMETER2){ CPickups::CreateSomeMoney(GetPosition(), CGeneral::GetRandomNumber()%100); diff --git a/src/objects/ParticleObject.cpp b/src/objects/ParticleObject.cpp index 4d080d1f..a281062f 100644 --- a/src/objects/ParticleObject.cpp +++ b/src/objects/ParticleObject.cpp @@ -242,6 +242,16 @@ CParticleObject::AddObject(uint16 type, CVector const &pos, CVector const &targe break; } + case POBJECT_FIRE_HYDRANT_STEAM: + { + pobj->m_ParticleType = PARTICLE_HYDRANT_STEAM; + pobj->m_nNumEffectCycles = 2; + pobj->m_nSkipFrames = 2; + pobj->m_nCreationChance = 8; + pobj->m_nRemoveTimer = CTimer::GetTimeInMilliseconds() + 5000; + break; + } + case POBJECT_CAR_WATER_SPLASH: case POBJECT_PED_WATER_SPLASH: { @@ -921,6 +931,7 @@ void CParticleObject::UpdateClose(void) CParticle::AddParticle(PARTICLE_CAR_SPLASH, splashpos, splashvel, nil, CGeneral::GetRandomNumberInRange(0.005f, 0.0075f), this->m_Color, 0, 0, 1, 300); } + for ( int32 i = 0; i < this->m_nNumEffectCycles; i++ ) { CParticle::AddParticle(this->m_ParticleType, pos, vel, nil, 0.0f, this->m_Color); diff --git a/src/objects/ParticleObject.h b/src/objects/ParticleObject.h index f199e533..78c6eaf0 100644 --- a/src/objects/ParticleObject.h +++ b/src/objects/ParticleObject.h @@ -15,6 +15,7 @@ enum eParticleObjectType POBJECT_WALL_STEAM_SLOWMOTION, POBJECT_DARK_SMOKE, POBJECT_FIRE_HYDRANT, + POBJECT_FIRE_HYDRANT_STEAM, POBJECT_CAR_WATER_SPLASH, POBJECT_PED_WATER_SPLASH, POBJECT_SPLASHES_AROUND, @@ -49,14 +50,14 @@ public: CParticleObject *m_pNext; CParticleObject *m_pPrev; CParticle *m_pParticle; - uint32 m_nRemoveTimer; + uint32 m_nRemoveTimer; eParticleObjectType m_Type; tParticleType m_ParticleType; uint8 m_nNumEffectCycles; uint8 m_nSkipFrames; uint16 m_nFrameCounter; uint16 m_nState; - CVector m_vecTarget; + CVector m_vecTarget; // CVuVector on PSP float m_fRandVal; float m_fSize; CRGBA m_Color; diff --git a/src/render/Particle.cpp b/src/render/Particle.cpp index d6ee36a1..660ed5c2 100644 --- a/src/render/Particle.cpp +++ b/src/render/Particle.cpp @@ -2283,7 +2283,7 @@ void CParticle::HandleShootableBirdsStuff(CEntity *entity, CVector const&camPos) } void -CEntity::AddSteamsFromGround(CVector *unused) //todo +CEntity::AddSteamsFromGround(CVector *unused) { int i, n; C2dEffect *effect; diff --git a/src/render/Particle.h b/src/render/Particle.h index edfd9b77..a306f0c4 100644 --- a/src/render/Particle.h +++ b/src/render/Particle.h @@ -30,13 +30,6 @@ public: uint8 m_nCurrentFrame; RwRGBA m_Color; CParticle *m_pNext; - - //CVector m_vecParticleMovementOffset; - //int16 m_nCurrentZRotation; - //uint16 m_nZRotationTimer; - //float m_fCurrentZRadius; - //uint16 m_nZRadiusTimer; - int32 field_4C; CParticle()