mirror of
https://github.com/rwengine/openrw.git
synced 2024-11-07 03:12:36 +01:00
Prevent characters falling through the ground when placed
This was occuring when loading saves created in portland
This commit is contained in:
parent
1ed182c3f2
commit
869f09ba01
@ -389,16 +389,15 @@ void CharacterObject::updateCharacter(float dt) {
|
||||
}
|
||||
|
||||
void CharacterObject::setPosition(const glm::vec3& pos) {
|
||||
auto realPos = pos;
|
||||
if (physCharacter) {
|
||||
btVector3 bpos(pos.x, pos.y, pos.z);
|
||||
if (std::abs(-100.f - pos.z) < 0.01f) {
|
||||
// Find the ground position
|
||||
auto gpos = engine->getGroundAtPosition(pos);
|
||||
bpos.setZ(gpos.z + 1.f);
|
||||
if (pos.z <= -99.f) {
|
||||
realPos = engine->getGroundAtPosition(pos);
|
||||
}
|
||||
btVector3 bpos(realPos.x, realPos.y, realPos.z + 1.0f);
|
||||
physCharacter->warp(bpos);
|
||||
}
|
||||
position = pos;
|
||||
position = realPos;
|
||||
getClump()->getFrame()->setTranslation(pos);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user