Broken runtime

This commit is contained in:
Jan Racek
2026-03-27 13:46:42 +01:00
parent eacbf4de46
commit 090402f71a
25 changed files with 1111 additions and 877 deletions

View File

@@ -156,32 +156,22 @@ void CollisionSystem::reset() {
void CollisionSystem::registerCollider(uint16_t gameObjectIndex, const AABB& localBounds,
CollisionType type, CollisionMask mask) {
if (m_colliderCount >= MAX_COLLIDERS) {
// Out of collider slots
return;
}
if (m_colliderCount >= MAX_COLLIDERS) return;
CollisionData& data = m_colliders[m_colliderCount++];
data.bounds = localBounds; // Will be transformed in updateCollider
data.localBounds = localBounds;
data.bounds = localBounds;
data.type = type;
data.layerMask = mask;
data.flags = 0;
data.gridCell = 0;
data.gameObjectIndex = gameObjectIndex;
}
void CollisionSystem::updateCollider(uint16_t gameObjectIndex, const psyqo::Vec3& position,
const psyqo::Matrix33& rotation) {
// Find the collider for this object
for (int i = 0; i < m_colliderCount; i++) {
if (m_colliders[i].gameObjectIndex == gameObjectIndex) {
// For now, just translate the AABB (no rotation support for AABBs)
// TODO: Compute rotated AABB if needed
// Store original local bounds somewhere if we need to recalculate
// For now, assume bounds are already world-relative
m_colliders[i].bounds.min = m_colliders[i].bounds.min + position;
m_colliders[i].bounds.max = m_colliders[i].bounds.max + position;
m_colliders[i].bounds.min = m_colliders[i].localBounds.min + position;
m_colliders[i].bounds.max = m_colliders[i].localBounds.max + position;
break;
}
}