sorted out object collision enums
This commit is contained in:
parent
b4bbd91921
commit
a2b89c6a18
@ -1847,7 +1847,7 @@ CPhysical::ProcessCollision(void)
|
||||
step = savedTimeStep / n;
|
||||
}else if(IsObject()){
|
||||
int responsecase = ((CObject*)this)->m_nSpecialCollisionResponseCases;
|
||||
if(responsecase == COLLRESPONSE_CHANGE_MODEL){
|
||||
if(responsecase == COLLRESPONSE_LAMPOST){
|
||||
CVector speedUp = { 0.0f, 0.0f, 0.0f };
|
||||
CVector speedDown = { 0.0f, 0.0f, 0.0f };
|
||||
speedUp.z = GetBoundRadius();
|
||||
@ -1866,7 +1866,7 @@ CPhysical::ProcessCollision(void)
|
||||
n = NUMSTEPS(0.09f);
|
||||
step = savedTimeStep / n;
|
||||
}
|
||||
}else if(responsecase == COLLRESPONSE_SPLIT_MODEL || responsecase == COLLRESPONSE_CHANGE_THEN_SMASH){
|
||||
}else if(responsecase == COLLRESPONSE_SMALLBOX || responsecase == COLLRESPONSE_FENCEPART){
|
||||
if(distSq >= sq(0.15f)){
|
||||
n = NUMSTEPS(0.15f);
|
||||
step = savedTimeStep / n;
|
||||
|
@ -173,12 +173,12 @@ CObject::ObjectDamage(float amount)
|
||||
const float fDirectionZ = 0.0002f * amount;
|
||||
switch (m_nCollisionDamageEffect)
|
||||
{
|
||||
case COLLRESPONSE_CHANGE_MODEL:
|
||||
case DAMAGE_EFFECT_CHANGE_MODEL:
|
||||
bRenderDamaged = true;
|
||||
break;
|
||||
case COLLRESPONSE_SPLIT_MODEL:
|
||||
case DAMAGE_EFFECT_SPLIT_MODEL:
|
||||
break;
|
||||
case COLLRESPONSE_SMASH_COMPLETELY:
|
||||
case DAMAGE_EFFECT_SMASH_COMPLETELY:
|
||||
bIsVisible = false;
|
||||
bUsesCollision = false;
|
||||
bIsStatic = true;
|
||||
@ -186,7 +186,7 @@ CObject::ObjectDamage(float amount)
|
||||
SetMoveSpeed(0.0f, 0.0f, 0.0f);
|
||||
SetTurnSpeed(0.0f, 0.0f, 0.0f);
|
||||
break;
|
||||
case COLLRESPONSE_CHANGE_THEN_SMASH:
|
||||
case DAMAGE_EFFECT_CHANGE_THEN_SMASH:
|
||||
if (!bRenderDamaged) {
|
||||
bRenderDamaged = true;
|
||||
}
|
||||
@ -199,7 +199,7 @@ CObject::ObjectDamage(float amount)
|
||||
SetTurnSpeed(0.0f, 0.0f, 0.0f);
|
||||
}
|
||||
break;
|
||||
case COLLRESPONSE_SMASH_CARDBOARD_COMPLETELY: {
|
||||
case DAMAGE_EFFECT_SMASH_CARDBOARD_COMPLETELY: {
|
||||
bIsVisible = false;
|
||||
bUsesCollision = false;
|
||||
bIsStatic = true;
|
||||
@ -222,7 +222,7 @@ CObject::ObjectDamage(float amount)
|
||||
PlayOneShotScriptObject(_SCRSOUND_CARDBOARD_BOX_SMASH, vecPos);
|
||||
break;
|
||||
}
|
||||
case COLLRESPONSE_SMASH_WOODENBOX_COMPLETELY: {
|
||||
case DAMAGE_EFFECT_SMASH_WOODENBOX_COMPLETELY: {
|
||||
bIsVisible = false;
|
||||
bUsesCollision = false;
|
||||
bIsStatic = true;
|
||||
@ -245,7 +245,7 @@ CObject::ObjectDamage(float amount)
|
||||
PlayOneShotScriptObject(_SCRSOUND_WOODEN_BOX_SMASH, vecPos);
|
||||
break;
|
||||
}
|
||||
case COLLRESPONSE_SMASH_TRAFFICCONE_COMPLETELY: {
|
||||
case DAMAGE_EFFECT_SMASH_TRAFFICCONE_COMPLETELY: {
|
||||
bIsVisible = false;
|
||||
bUsesCollision = false;
|
||||
bIsStatic = true;
|
||||
@ -270,7 +270,7 @@ CObject::ObjectDamage(float amount)
|
||||
PlayOneShotScriptObject(_SCRSOUND_TYRE_BUMP, vecPos);
|
||||
break;
|
||||
}
|
||||
case COLLRESPONSE_SMASH_BARPOST_COMPLETELY: {
|
||||
case DAMAGE_EFFECT_SMASH_BARPOST_COMPLETELY: {
|
||||
bIsVisible = false;
|
||||
bUsesCollision = false;
|
||||
bIsStatic = true;
|
||||
|
@ -10,19 +10,28 @@ enum {
|
||||
CUTSCENE_OBJECT = 4,
|
||||
};
|
||||
|
||||
enum {
|
||||
enum CollisionSpecialResponseCase
|
||||
{
|
||||
COLLRESPONSE_NONE,
|
||||
COLLRESPONSE_CHANGE_MODEL,
|
||||
COLLRESPONSE_SPLIT_MODEL,
|
||||
COLLRESPONSE_SMASH_COMPLETELY,
|
||||
COLLRESPONSE_CHANGE_THEN_SMASH,
|
||||
COLLRESPONSE_UNKNOWN5,
|
||||
COLLRESPONSE_LAMPOST,
|
||||
COLLRESPONSE_SMALLBOX,
|
||||
COLLRESPONSE_BIGBOX,
|
||||
COLLRESPONSE_FENCEPART,
|
||||
COLLRESPONSE_UNKNOWN5
|
||||
};
|
||||
|
||||
COLLRESPONSE_SMASH_CARDBOARD_COMPLETELY = 50,
|
||||
COLLRESPONSE_SMASH_WOODENBOX_COMPLETELY = 60,
|
||||
COLLRESPONSE_SMASH_TRAFFICCONE_COMPLETELY = 70,
|
||||
COLLRESPONSE_SMASH_BARPOST_COMPLETELY = 80,
|
||||
enum CollisionDamageEffect
|
||||
{
|
||||
DAMAGE_EFFECT_NONE,
|
||||
DAMAGE_EFFECT_CHANGE_MODEL,
|
||||
DAMAGE_EFFECT_SPLIT_MODEL,
|
||||
DAMAGE_EFFECT_SMASH_COMPLETELY,
|
||||
DAMAGE_EFFECT_CHANGE_THEN_SMASH,
|
||||
|
||||
DAMAGE_EFFECT_SMASH_CARDBOARD_COMPLETELY = 50,
|
||||
DAMAGE_EFFECT_SMASH_WOODENBOX_COMPLETELY = 60,
|
||||
DAMAGE_EFFECT_SMASH_TRAFFICCONE_COMPLETELY = 70,
|
||||
DAMAGE_EFFECT_SMASH_BARPOST_COMPLETELY = 80
|
||||
};
|
||||
|
||||
class CVehicle;
|
||||
|
@ -9551,7 +9551,7 @@ CPed::ProcessControl(void)
|
||||
{
|
||||
CBaseModelInfo *collidingModel = CModelInfo::GetModelInfo(collidingEnt->GetModelIndex());
|
||||
CColModel *collidingCol = collidingModel->GetColModel();
|
||||
if (collidingEnt->IsObject() && ((CObject*)collidingEnt)->m_nSpecialCollisionResponseCases != COLLRESPONSE_CHANGE_THEN_SMASH
|
||||
if (collidingEnt->IsObject() && ((CObject*)collidingEnt)->m_nSpecialCollisionResponseCases != COLLRESPONSE_FENCEPART
|
||||
|| collidingCol->boundingBox.max.x < 3.0f
|
||||
&& collidingCol->boundingBox.max.y < 3.0f) {
|
||||
|
||||
@ -16934,7 +16934,7 @@ CPed::SpawnFlyingComponent(int pedNode, int8 direction)
|
||||
obj->ObjectCreatedBy = TEMP_OBJECT;
|
||||
obj->bIsStatic = false;
|
||||
obj->bIsPickup = false;
|
||||
obj->m_nSpecialCollisionResponseCases = COLLRESPONSE_SPLIT_MODEL;
|
||||
obj->m_nSpecialCollisionResponseCases = COLLRESPONSE_SMALLBOX;
|
||||
|
||||
// life time - the more objects the are, the shorter this one will live
|
||||
CObject::nNoTempObjects++;
|
||||
|
Loading…
Reference in New Issue
Block a user