Urho3D::StaticModel *convertedModelToLutefisk(Urho3D::Context *ctx, Urho3D::Node *tgtnode, SEGS::SceneNode *node, int opt) { SEGS::Model *mdl = node->model; Urho3D::StaticModel * converted=nullptr; auto loc = s_coh_model_to_static_model.find(mdl); if (loc != s_coh_model_to_static_model.end()) converted = loc->second.Get(); if (mdl && converted) { float per_node_draw_distance = node->lod_far + node->lod_far_fade; StaticModel* boxObject = tgtnode->CreateComponent<StaticModel>(); copyStaticModel(converted, boxObject); boxObject->SetDrawDistance(per_node_draw_distance); return boxObject; } ModelModifiers *model_trick = mdl->trck_node; if (model_trick) { if (opt != CONVERT_EDITOR_MARKERS && model_trick->isFlag(NoDraw)) { //qDebug() << mdl->name << "Set as no draw"; return nullptr; } if (opt != CONVERT_EDITOR_MARKERS && model_trick->isFlag(EditorVisible)) { //qDebug() << mdl->name << "Set as editor model"; return nullptr; } if (model_trick && model_trick->isFlag(CastShadow)) { //qDebug() << "Not converting shadow models"<<mdl->name; return nullptr; } if (model_trick && model_trick->isFlag(ParticleSys)) { qDebug() << "Not converting particle sys:" << mdl->name; return nullptr; } } Urho3D::Model *modelptr = buildModel(ctx, mdl); if(!modelptr) return nullptr; StaticModel* boxObject = tgtnode->CreateComponent<StaticModel>(); boxObject->SetDrawDistance(node->lod_far+node->lod_far_fade); boxObject->SetModel(modelptr); convertMaterial(ctx,mdl,boxObject); s_coh_model_to_static_model[mdl] = boxObject; return boxObject; }