diff options
author | Nick Samarin <nicks1987@bigmir.net> | 2010-06-16 04:23:24 +0400 |
---|---|---|
committer | Nick Samarin <nicks1987@bigmir.net> | 2010-06-16 04:23:24 +0400 |
commit | 700c32e73833205830b062a13270e4a45668cad0 (patch) | |
tree | f8d684cdb2e487442cbff49abd8305e6f779a5d5 /source/gameengine/Ketsji/KX_ObstacleSimulation.cpp | |
parent | 147e8d01ebd7b04d81e2094669d8bc9b0f005f19 (diff) |
- registration obstacle in game object
- creation obstacle on object replication (including navmesh object)
- creation object transform for navigation mesh directly from blender object instead of using SGNode world transform (because SGNode doesn't exists yet when building navmesh on ProcessReplica)
Diffstat (limited to 'source/gameengine/Ketsji/KX_ObstacleSimulation.cpp')
-rw-r--r-- | source/gameengine/Ketsji/KX_ObstacleSimulation.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/source/gameengine/Ketsji/KX_ObstacleSimulation.cpp b/source/gameengine/Ketsji/KX_ObstacleSimulation.cpp index 038a1e07b1b..5994ebdc80c 100644 --- a/source/gameengine/Ketsji/KX_ObstacleSimulation.cpp +++ b/source/gameengine/Ketsji/KX_ObstacleSimulation.cpp @@ -195,7 +195,21 @@ void KX_ObstacleSimulation::AddObstacleForObj(KX_GameObject* gameobj) obstacle->m_shape = KX_OBSTACLE_CIRCLE; obstacle->m_rad = blenderobject->obstacleRad; obstacle->m_gameObj = gameobj; - + gameobj->RegisterObstacle(obstacle); +} + +void KX_ObstacleSimulation::DestroyObstacle(KX_Obstacle* obstacle) +{ + for (size_t i=0; i<m_obstacles.size(); i++) + { + if (m_obstacles[i] == obstacle) + { + obstacle->m_gameObj->UnregisterObstacle(); + m_obstacles[i] = m_obstacles.back(); + m_obstacles.pop_back(); + delete obstacle; + } + } } void KX_ObstacleSimulation::AddObstaclesForNavMesh(KX_NavMeshObject* navmeshobj) |