inline scene::Node& entity_for_eclass(EntityClass* eclass) { if((string_compare_nocase_n(eclass->name(), "misc_", 5) == 0 && string_equal_nocase(eclass->name() + string_length(eclass->name()) - 5, "model")) // misc_*model (also misc_model) // TODO make classname_* wrapper functions for this || classname_equal(eclass->name(), "model_static")) { return New_MiscModel(eclass); } else if(classname_equal(eclass->name(), "light") || classname_equal(eclass->name(), "lightJunior")) { return New_Light(eclass); } if(!eclass->fixedsize) { if(g_gameType == eGameTypeDoom3) { return New_Doom3Group(eclass); } else { return New_Group(eclass); } } else if(!string_empty(eclass->modelpath())) { return New_EclassModel(eclass); } else { return New_GenericEntity(eclass); } }
inline scene::Node& entity_for_eclass (EntityClass* eclass) { if (eclass->name() == "misc_model") { return New_MiscModel(eclass); } else if (eclass->name() == "misc_sound") { return New_MiscSound(eclass); } else if (eclass->name() == "misc_particle") { return New_MiscParticle(eclass); } else if (eclass->name() == "light") { return New_Light(eclass); } else if (!eclass->fixedsize) { return New_Group(eclass); } else if (!eclass->modelpath().empty()) { return New_EclassModel(eclass); } else { return New_GenericEntity(eclass); } }