mirror of
https://gitlab.com/skmp/dca3-game.git
synced 2025-01-16 21:08:22 +01:00
Merge branch 'falco/fuck_da_fences' into 'main'
Fixed the goddamn fences. See merge request skmp/dca3-game!14
This commit is contained in:
commit
5786eeecb8
@ -83,6 +83,11 @@ CEntity::~CEntity(void)
|
||||
ResolveReferences();
|
||||
}
|
||||
|
||||
bool
|
||||
CEntity::IsFence(void) {
|
||||
return IsObject() && ::IsFence(static_cast<CObject *>(this)->GetModelIndex());
|
||||
}
|
||||
|
||||
void
|
||||
CEntity::SetModelIndex(uint32 id)
|
||||
{
|
||||
|
@ -131,6 +131,7 @@ public:
|
||||
bool IsPed(void) { return m_type == ENTITY_TYPE_PED; }
|
||||
bool IsObject(void) { return m_type == ENTITY_TYPE_OBJECT; }
|
||||
bool IsDummy(void) { return m_type == ENTITY_TYPE_DUMMY; }
|
||||
bool IsFence(void);
|
||||
|
||||
RpAtomic *GetAtomic(void) {
|
||||
assert(RwObjectGetType(m_rwObject) == rpATOMIC);
|
||||
|
@ -59,7 +59,7 @@ CPhysical::CPhysical(void)
|
||||
bInfiniteMass = false;
|
||||
bIsInWater = false;
|
||||
bHitByTrain = false;
|
||||
bSkipLineCol = false;
|
||||
bSkipLineCol = IsFence();
|
||||
|
||||
m_fDistanceTravelled = 0.0f;
|
||||
m_treadable[PATH_CAR] = nil;
|
||||
@ -1461,6 +1461,10 @@ CPhysical::ProcessCollisionSectorList(CPtrList *lists)
|
||||
skipCollision = false;
|
||||
altcollision = false;
|
||||
|
||||
if(A->IsFence() && B->IsFence()) {
|
||||
skipCollision = true;
|
||||
A->bSkipLineCol = true;
|
||||
}
|
||||
if(B->IsBuilding())
|
||||
skipCollision = false;
|
||||
else if(IsStreetLight(A->GetModelIndex()) &&
|
||||
@ -1922,12 +1926,12 @@ CPhysical::ProcessCollision(void)
|
||||
n = NUMSTEPS(0.09f);
|
||||
step = savedTimeStep / n;
|
||||
}
|
||||
}else if(responsecase == COLLRESPONSE_SMALLBOX || responsecase == COLLRESPONSE_FENCEPART){
|
||||
}else if(responsecase == COLLRESPONSE_SMALLBOX){
|
||||
if(distSq >= sq(0.15f)){
|
||||
n = NUMSTEPS(0.15f);
|
||||
step = savedTimeStep / n;
|
||||
}
|
||||
}else{
|
||||
}else if(responsecase != COLLRESPONSE_FENCEPART){
|
||||
if(distSq >= sq(0.3f)){
|
||||
n = NUMSTEPS(0.3f);
|
||||
step = savedTimeStep / n;
|
||||
|
Loading…
x
Reference in New Issue
Block a user