diff options
-rw-r--r-- | src/peds/Population.cpp | 2 | ||||
-rw-r--r-- | src/peds/Population.h | 2 | ||||
-rw-r--r-- | src/render/SpecialFX.cpp | 13 |
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;
|