mirror of
https://github.com/halpz/re3.git
synced 2025-07-22 10:39:47 +00:00
implemented CObjectData
This commit is contained in:
@ -16,8 +16,8 @@ CObject::CObject(void)
|
||||
m_type = ENTITY_TYPE_OBJECT;
|
||||
m_fUprootLimit = 0.0f;
|
||||
m_nCollisionDamageEffect = 0;
|
||||
m_bSpecialCollisionResponseCases = 0;
|
||||
m_bCameraToAvoidThisObject = 0;
|
||||
m_nSpecialCollisionResponseCases = COLLRESPONSE_NONE;
|
||||
m_bCameraToAvoidThisObject = false;
|
||||
ObjectCreatedBy = 0;
|
||||
m_nEndOfLifeTime = 0;
|
||||
// m_nRefModelIndex = -1; // duplicate
|
||||
|
@ -9,6 +9,21 @@ enum {
|
||||
CUTSCENE_OBJECT = 4,
|
||||
};
|
||||
|
||||
enum {
|
||||
COLLRESPONSE_NONE,
|
||||
COLLRESPONSE_CHANGE_MODEL,
|
||||
COLLRESPONSE_SPLIT_MODEL,
|
||||
COLLRESPONSE_SMASH_COMPLETELY,
|
||||
COLLRESPONSE_CHANGE_THEN_SMASH,
|
||||
COLLRESPONSE_UNKNOWN5,
|
||||
|
||||
COLLRESPONSE_SMASH_CARDBOARD_COMPLETELY = 50,
|
||||
COLLRESPONSE_SMASH_WOODENBOX_COMPLETELY = 60,
|
||||
COLLRESPONSE_SMASH_TRAFFICCONE_COMPLETELY = 70,
|
||||
COLLRESPONSE_SMASH_BARPOST_COMPLETELY = 80,
|
||||
|
||||
};
|
||||
|
||||
class CVehicle;
|
||||
|
||||
class CObject : public CPhysical
|
||||
@ -28,9 +43,9 @@ public:
|
||||
int8 field_172;
|
||||
int8 field_173;
|
||||
float m_fCollisionDamageMultiplier;
|
||||
int8 m_nCollisionDamageEffect;
|
||||
int8 m_bSpecialCollisionResponseCases;
|
||||
int8 m_bCameraToAvoidThisObject;
|
||||
uint8 m_nCollisionDamageEffect;
|
||||
uint8 m_nSpecialCollisionResponseCases;
|
||||
bool m_bCameraToAvoidThisObject;
|
||||
int8 field_17B;
|
||||
int8 field_17C;
|
||||
int8 field_17D;
|
||||
|
@ -211,7 +211,7 @@ public:
|
||||
bool bInVehicle;
|
||||
uint8 stuff4[23];
|
||||
int32 m_nPedType;
|
||||
CPedStat *m_pedStats;
|
||||
CPedStats *m_pedStats;
|
||||
uint8 stuff5[24];
|
||||
CEntity *m_pCollidingEntity;
|
||||
uint8 stuff6[12];
|
||||
|
@ -1801,8 +1801,8 @@ CPhysical::ProcessCollision(void)
|
||||
n = distSq > 0.32f ? NUMSTEPS(0.3f) : NUMSTEPS(0.4f);
|
||||
step = savedTimeStep / n;
|
||||
}else if(IsObject()){
|
||||
int responsecase = ((CObject*)this)->m_bSpecialCollisionResponseCases;
|
||||
if(responsecase == 1){
|
||||
int responsecase = ((CObject*)this)->m_nSpecialCollisionResponseCases;
|
||||
if(responsecase == COLLRESPONSE_CHANGE_MODEL){
|
||||
CVector speedUp = { 0.0f, 0.0f, 0.0f };
|
||||
CVector speedDown = { 0.0f, 0.0f, 0.0f };
|
||||
speedUp.z = GetBoundRadius();
|
||||
@ -1816,12 +1816,12 @@ CPhysical::ProcessCollision(void)
|
||||
n = NUMSTEPS(0.3f);
|
||||
step = savedTimeStep / n;
|
||||
}
|
||||
}else if(responsecase == 5){
|
||||
}else if(responsecase == COLLRESPONSE_UNKNOWN5){
|
||||
if(distSq >= 0.009f){
|
||||
n = NUMSTEPS(0.09f);
|
||||
step = savedTimeStep / n;
|
||||
}
|
||||
}else if(responsecase == 2 || responsecase == 4){
|
||||
}else if(responsecase == COLLRESPONSE_SPLIT_MODEL || responsecase == COLLRESPONSE_CHANGE_THEN_SMASH){
|
||||
if(distSq >= sq(0.15f)){
|
||||
n = NUMSTEPS(0.15f);
|
||||
step = savedTimeStep / n;
|
||||
|
@ -30,7 +30,7 @@ public:
|
||||
float fForceMultiplier;
|
||||
float m_fAirResistance;
|
||||
float m_fElasticity;
|
||||
float fPercentSubmerged;
|
||||
float m_fBuoyancy;
|
||||
CVector m_vecCentreOfMass;
|
||||
CEntryInfoList m_entryInfoList;
|
||||
CPtrNode *m_movingListNode;
|
||||
|
Reference in New Issue
Block a user