Example #1
0
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);
  }
}
Example #2
0
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);
	}
}