Fixed collisions on inactive objects
This commit is contained in:
@@ -165,7 +165,7 @@ void CollisionSystem::updateCollider(uint16_t gameObjectIndex, const psyqo::Vec3
|
||||
}
|
||||
}
|
||||
|
||||
int CollisionSystem::detectCollisions(const AABB& playerAABB, psyqo::Vec3& pushBack) {
|
||||
int CollisionSystem::detectCollisions(const AABB& playerAABB, psyqo::Vec3& pushBack, SceneManager& scene) {
|
||||
m_resultCount = 0;
|
||||
const FP zero(0);
|
||||
pushBack = psyqo::Vec3{zero, zero, zero};
|
||||
@@ -173,7 +173,9 @@ int CollisionSystem::detectCollisions(const AABB& playerAABB, psyqo::Vec3& pushB
|
||||
// Rebuild spatial grid with all colliders
|
||||
m_grid.clear();
|
||||
for (int i = 0; i < m_colliderCount; i++) {
|
||||
m_grid.insert(i, m_colliders[i].bounds);
|
||||
if(scene.getGameObject(m_colliders[i].gameObjectIndex)->isActive()) {
|
||||
m_grid.insert(i, m_colliders[i].bounds);
|
||||
}
|
||||
}
|
||||
|
||||
// Test player AABB against all colliders for push-back
|
||||
|
||||
@@ -110,7 +110,7 @@ public:
|
||||
|
||||
void registerTriggerBox(const AABB& bounds, int16_t luaFileIndex);
|
||||
|
||||
int detectCollisions(const AABB& playerAABB, psyqo::Vec3& pushBack);
|
||||
int detectCollisions(const AABB& playerAABB, psyqo::Vec3& pushBack, class SceneManager& scene);
|
||||
|
||||
void detectTriggers(const AABB& playerAABB, class SceneManager& scene);
|
||||
|
||||
|
||||
@@ -319,7 +319,7 @@ void psxsplash::SceneManager::GameTick(psyqo::GPU &gpu) {
|
||||
}
|
||||
|
||||
psyqo::Vec3 pushBack;
|
||||
int collisionCount = m_collisionSystem.detectCollisions(playerAABB, pushBack);
|
||||
int collisionCount = m_collisionSystem.detectCollisions(playerAABB, pushBack, *this);
|
||||
|
||||
{
|
||||
psyqo::FixedPoint<12> zero;
|
||||
|
||||
Reference in New Issue
Block a user