diff options
author | Stijn Buys <ingar@osirion.org> | 2010-09-30 14:24:23 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2010-09-30 14:24:23 +0000 |
commit | 8b67219f7de2971114a81c5476dae578ac29e989 (patch) | |
tree | 5ec1b107127856afc1f9ed1acd65011c29db7c7f | |
parent | 3274ad9eeb02af614e1cba5cd05468de04069d6e (diff) |
Correct r_restart bug where models didn't get reloaded as it should
-rw-r--r-- | src/core/entity.cc | 3 | ||||
-rw-r--r-- | src/render/draw.cc | 5 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/core/entity.cc b/src/core/entity.cc index 1494438..ba79424 100644 --- a/src/core/entity.cc +++ b/src/core/entity.cc @@ -266,12 +266,11 @@ void Entity::set_zone(Zone *zone) void Entity::set_model(model::Model *model) { + // server-side property should not clear modelname entity_model = model; if (entity_model) { entity_radius = entity_model->radius(); entity_modelname.assign(entity_model->name()); - } else { - entity_modelname.clear(); } if (entity_info) { diff --git a/src/render/draw.cc b/src/render/draw.cc index 42b7d8c..f5978f7 100644 --- a/src/render/draw.cc +++ b/src/render/draw.cc @@ -125,6 +125,11 @@ void pass_prepare(float seconds) has_zone_light = true; } + } else { + // this reloads entity models if required by r_restart + if (!entity->model() && entity->modelname().size()) { + entity->set_model(model::Model::load(entity->modelname())); + } } } } |