summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/peds/Population.cpp2
-rw-r--r--src/peds/Population.h2
-rw-r--r--src/render/SpecialFX.cpp13
3 files changed, 12 insertions, 5 deletions
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;