From a122d558a26b41041276ebf6580167d7675b7592 Mon Sep 17 00:00:00 2001 From: Nikolay Korolev Date: Sat, 22 Feb 2020 15:53:41 +0300 Subject: merge + bug fix --- src/peds/Population.cpp | 2 ++ src/peds/Population.h | 2 ++ src/render/SpecialFX.cpp | 13 ++++++++----- 3 files changed, 12 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/peds/Population.cpp b/src/peds/Population.cpp index a168198b..a2dd5c38 100644 --- a/src/peds/Population.cpp +++ b/src/peds/Population.cpp @@ -16,6 +16,7 @@ #include "IniFile.h" #include "VisibilityPlugins.h" #include "PedPlacement.h" +#include "DummyObject.h" #define CREATION_DIST_MULT_TO_DIST 40.0f #define CREATION_RANGE 10.0f // Being added over the CREATION_DIST_MULT_TO_DIST. @@ -58,6 +59,7 @@ CVector &CPopulation::RegenerationForward = *(CVector*)0x8F1AD4; WRAPPER CPed *CPopulation::AddPedInCar(CVehicle *vehicle) { EAXJMP(0x4F5800); } WRAPPER void CPopulation::ManagePopulation(void) { EAXJMP(0x4F3B90); } WRAPPER void CPopulation::MoveCarsAndPedsOutOfAbandonedZones(void) { EAXJMP(0x4F5BE0); } +WRAPPER void CPopulation::ConvertToRealObject(CDummyObject* obj) { EAXJMP(0x4F45A0); } void CPopulation::Initialise() diff --git a/src/peds/Population.h b/src/peds/Population.h index d39fb209..f22926a0 100644 --- a/src/peds/Population.h +++ b/src/peds/Population.h @@ -6,6 +6,7 @@ class CPed; class CVehicle; +class CDummyObject; struct PedGroup { @@ -80,4 +81,5 @@ public: static void AddToPopulation(float, float, float, float); static void ManagePopulation(void); static void MoveCarsAndPedsOutOfAbandonedZones(void); + static void ConvertToRealObject(CDummyObject* obj); }; diff --git a/src/render/SpecialFX.cpp b/src/render/SpecialFX.cpp index e52222a2..76abcd5b 100644 --- a/src/render/SpecialFX.cpp +++ b/src/render/SpecialFX.cpp @@ -389,7 +389,8 @@ CMoneyMessages::RegisterOne(CVector vecPos, const char *pText, uint8 bRed, uint8 CRGBA FoamColour(255, 255, 255, 255); unsigned int CSpecialParticleStuff::BoatFromStart; -void CSpecialParticleStuff::CreateFoamAroundObject(CMatrix* pMatrix, float innerFw, float innerRg, float innerUp, int32 particles) +void +CSpecialParticleStuff::CreateFoamAroundObject(CMatrix* pMatrix, float innerFw, float innerRg, float innerUp, int32 particles) { float outerFw = innerFw + 5.0f; float outerRg = innerRg + 5.0f; @@ -397,8 +398,8 @@ void CSpecialParticleStuff::CreateFoamAroundObject(CMatrix* pMatrix, float inner for (int attempts = 0; particles > 0 && attempts < 1000; attempts++) { CVector pos; int rnd = CGeneral::GetRandomNumber(); - pos.x = (int8)(rnd - 128) / 110.0f; - pos.y = (int8)((rnd >> 8) - 128) / 110.0f; + pos.x = (int8)(rnd - 128) * innerFw / 110.0f; + pos.y = (int8)((rnd >> 8) - 128) * innerFw / 110.0f; pos.z = 0.0f; if (DotProduct2D(pos, TheCamera.GetForward()) >= 0) continue; @@ -421,12 +422,14 @@ void CSpecialParticleStuff::CreateFoamAroundObject(CMatrix* pMatrix, float inner } } -void CSpecialParticleStuff::StartBoatFoamAnimation() +void +CSpecialParticleStuff::StartBoatFoamAnimation() { BoatFromStart = CTimer::GetTimeInMilliseconds(); } -void CSpecialParticleStuff::UpdateBoatFoamAnimation(CMatrix* pMatrix) +void +CSpecialParticleStuff::UpdateBoatFoamAnimation(CMatrix* pMatrix) { static int32 FrameInAnimation = 0; static float X, Y, Z, dX, dY, dZ; -- cgit v1.2.3