diff options
Diffstat (limited to 'src/model/mapfile.cc')
-rw-r--r-- | src/model/mapfile.cc | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/model/mapfile.cc b/src/model/mapfile.cc index 92349c0..b05880f 100644 --- a/src/model/mapfile.cc +++ b/src/model/mapfile.cc @@ -1305,7 +1305,7 @@ void MapFile::load_fragmentgroup(Model *model, const FragmentGroup::Type class_t // add the vertexgroup to the model model->add_group(group); - // add collision triangles + // load collision triangles into a mesh if (map_load_clip) { if (map_collisiontriangles.size()) { CollisionMesh *collisionmesh = new CollisionMesh(); @@ -1315,7 +1315,10 @@ void MapFile::load_fragmentgroup(Model *model, const FragmentGroup::Type class_t Triangle *triangle = (*it); collisionmesh->add_triangle(triangle->v0() - translation, triangle->v1() - translation, triangle->v2() - translation); } - + + // apply vertexgroup params to the collision mesh + collisionmesh->set_params(group); + // add the collision mesh to the collision model model->collisionmodel()->add_mesh(collisionmesh); } @@ -1958,6 +1961,9 @@ Model * MapFile::load(std::string const &name) cmit != model->collisionmodel()->meshes().end(); cmit++) { collision_tris_count += (*cmit)->size(); collision_mesh_count++; + + // translate collision meshes + (*cmit)->set_location((*cmit)->location() - map_center); } con_debug << " " << mapfile.name() << " collision " << collision_tris_count << " triangles " << collision_mesh_count << " meshes" << std::endl; |