mirror of
https://github.com/rwengine/openrw.git
synced 2024-09-18 16:32:32 +02:00
Newly created instance objects sleep immediately
This improves performance immediately after startup.
This commit is contained in:
parent
4adcaa670c
commit
711aad7701
@ -26,33 +26,39 @@ InstanceObject::InstanceObject(GameWorld* engine, const glm::vec3& pos,
|
|||||||
: GameObject(engine, pos, rot, modelinfo)
|
: GameObject(engine, pos, rot, modelinfo)
|
||||||
, scale(scale)
|
, scale(scale)
|
||||||
, dynamics(dyn) {
|
, dynamics(dyn) {
|
||||||
if (modelinfo) {
|
if (!modelinfo) {
|
||||||
changeModel(modelinfo);
|
return;
|
||||||
setPosition(pos);
|
}
|
||||||
setRotation(rot);
|
|
||||||
|
|
||||||
// Disable the main island LOD
|
changeModel(modelinfo);
|
||||||
if (modelinfo->name.find("IslandLOD") != std::string::npos) {
|
setPosition(pos);
|
||||||
setVisible(false);
|
setRotation(rot);
|
||||||
}
|
|
||||||
|
|
||||||
// Make sure bouys float on water
|
if (body) {
|
||||||
if (modelinfo->name.find("bouy") != std::string::npos) {
|
body->getBulletBody()->setActivationState(ISLAND_SLEEPING);
|
||||||
setFloating(true);
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/// @todo store path information properly
|
// Disable the main island LOD
|
||||||
if (modelinfo->type() == ModelDataType::SimpleInfo) {
|
if (modelinfo->name.find("IslandLOD") != std::string::npos) {
|
||||||
auto simpledata = static_cast<SimpleModelInfo*>(modelinfo);
|
setVisible(false);
|
||||||
for (auto& path : simpledata->paths) {
|
}
|
||||||
engine->aigraph.createPathNodes(position, rot, path);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (SimpleModelInfo::isDoorModel(modelinfo->name)) {
|
// Make sure bouys float on water
|
||||||
setStatic(true);
|
if (modelinfo->name.find("bouy") != std::string::npos) {
|
||||||
|
setFloating(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// @todo store path information properly
|
||||||
|
if (modelinfo->type() == ModelDataType::SimpleInfo) {
|
||||||
|
auto simpledata = static_cast<SimpleModelInfo*>(modelinfo);
|
||||||
|
for (auto& path : simpledata->paths) {
|
||||||
|
engine->aigraph.createPathNodes(position, rot, path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (SimpleModelInfo::isDoorModel(modelinfo->name)) {
|
||||||
|
setStatic(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
InstanceObject::~InstanceObject() = default;
|
InstanceObject::~InstanceObject() = default;
|
||||||
|
Loading…
Reference in New Issue
Block a user