Fixing Projectile code

This commit is contained in:
Sergeanur
2020-01-07 17:26:23 +02:00
parent f9316d9cc3
commit f7e962beaa
8 changed files with 47 additions and 34 deletions

View File

@ -57,7 +57,7 @@ CObjectData::Initialise(const char *filename)
&ms_aObjectInfo[id].m_fCollisionDamageMultiplier,
&damageEffect, &responseCase, &camAvoid);
ms_aObjectInfo[id].m_fBuoyancy = 100.0f/percentSubmerged * 0.008*ms_aObjectInfo[id].m_fMass;
ms_aObjectInfo[id].m_fBuoyancy = 100.0f/percentSubmerged * GRAVITY *ms_aObjectInfo[id].m_fMass;
ms_aObjectInfo[id].m_nCollisionDamageEffect = damageEffect;
ms_aObjectInfo[id].m_nSpecialCollisionResponseCases = responseCase;
ms_aObjectInfo[id].m_bCameraToAvoidThisObject = camAvoid;

View File

@ -2,12 +2,26 @@
#include "patcher.h"
#include "Projectile.h"
CProjectile::CProjectile(int32 model) : CObject()
{
m_fMass = 1.0f;
m_fTurnMass = 1.0f;
m_fAirResistance = 0.99f;
m_fElasticity = 0.75f;
m_fBuoyancy = GRAVITY * m_fMass * 0.1f;
bExplosionProof = true;
SetModelIndex(model);
ObjectCreatedBy = MISSION_OBJECT;
}
class CProjectile_ : public CProjectile
{
public:
CProjectile* ctor(int32 model) { return ::new (this) CProjectile(model); }
void dtor(void) { CProjectile::~CProjectile(); }
};
STARTPATCHES
InjectHook(0x4BFE30, &CProjectile_::ctor, PATCH_JUMP);
InjectHook(0x4BFED0, &CProjectile_::dtor, PATCH_JUMP);
ENDPATCHES

View File

@ -7,4 +7,5 @@
class CProjectile : public CObject
{
public:
CProjectile(int32);
};