mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-02-19 16:39:41 +00:00
Move the last bits of code to createEntities
This commit is contained in:
parent
1c544682d5
commit
92546ca18d
3 changed files with 14 additions and 24 deletions
|
@ -365,16 +365,10 @@ void NpcAnimation::updateParts()
|
|||
|
||||
std::vector<Ogre::Entity*> NpcAnimation::insertBoundedPart(const std::string &mesh, const std::string &bonename)
|
||||
{
|
||||
NifOgre::MeshPairList meshes = NIFLoader::load(mesh);
|
||||
std::vector<Ogre::Entity*> parts;
|
||||
for(size_t i = 0;i < meshes.size();i++)
|
||||
{
|
||||
parts.push_back(mRend.getScene()->createEntity(meshes[i].first->getName()));
|
||||
Ogre::Entity *part = parts.back();
|
||||
|
||||
part->setVisibilityFlags(RV_Actors);
|
||||
mEntityList.mSkelBase->attachObjectToBone(bonename, part);
|
||||
}
|
||||
NifOgre::EntityList entities = NIFLoader::createEntities(mInsert, mesh);
|
||||
std::vector<Ogre::Entity*> &parts = entities.mEntities;
|
||||
for(size_t i = 0;i < parts.size();i++)
|
||||
parts[i]->setVisibilityFlags(RV_Actors);
|
||||
return parts;
|
||||
}
|
||||
|
||||
|
|
|
@ -509,16 +509,14 @@ void SkyManager::create()
|
|||
|
||||
/// \todo sky_night_02.nif (available in Bloodmoon)
|
||||
mAtmosphereNight = mRootNode->createChildSceneNode();
|
||||
NifOgre::MeshPairList meshes = NifOgre::NIFLoader::load("meshes\\sky_night_01.nif");
|
||||
for(size_t i = 0;i < meshes.size();i++)
|
||||
NifOgre::EntityList entities = NifOgre::NIFLoader::createEntities(mAtmosphereNight, "meshes\\sky_night_01.nif");
|
||||
for(size_t i = 0;i < entities.mEntities.size();i++)
|
||||
{
|
||||
Entity* night1_ent = mSceneMgr->createEntity(meshes[i].first->getName());
|
||||
Entity* night1_ent = entities.mEntities[i];
|
||||
night1_ent->setRenderQueueGroup(RQG_SkiesEarly+1);
|
||||
night1_ent->setVisibilityFlags(RV_Sky);
|
||||
night1_ent->setCastShadows(false);
|
||||
|
||||
mAtmosphereNight->attachObject(night1_ent);
|
||||
|
||||
for (unsigned int i=0; i<night1_ent->getNumSubEntities(); ++i)
|
||||
{
|
||||
MaterialPtr mp = night1_ent->getSubEntity(i)->getMaterial();
|
||||
|
@ -589,17 +587,16 @@ void SkyManager::create()
|
|||
fshader->getDefaultParameters()->setNamedAutoConstant("emissive", GpuProgramParameters::ACT_SURFACE_EMISSIVE_COLOUR);
|
||||
|
||||
mAtmosphereDay = mRootNode->createChildSceneNode();
|
||||
meshes = NifOgre::NIFLoader::load("meshes\\sky_atmosphere.nif");
|
||||
for(size_t i = 0;i < meshes.size();i++)
|
||||
entities = NifOgre::NIFLoader::createEntities(mAtmosphereDay, "meshes\\sky_atmosphere.nif");
|
||||
for(size_t i = 0;i < entities.mEntities.size();i++)
|
||||
{
|
||||
Entity* atmosphere_ent = mSceneMgr->createEntity(meshes[i].first->getName());
|
||||
Entity* atmosphere_ent = entities.mEntities[i];
|
||||
atmosphere_ent->setCastShadows(false);
|
||||
|
||||
ModVertexAlpha(atmosphere_ent, 0);
|
||||
|
||||
atmosphere_ent->setRenderQueueGroup(RQG_SkiesEarly);
|
||||
atmosphere_ent->setVisibilityFlags(RV_Sky);
|
||||
mAtmosphereDay->attachObject(atmosphere_ent);
|
||||
|
||||
mAtmosphereMaterial = atmosphere_ent->getSubEntity(0)->getMaterial();
|
||||
mAtmosphereMaterial = mAtmosphereMaterial->clone("Atmosphere");
|
||||
|
@ -677,13 +674,12 @@ void SkyManager::create()
|
|||
mCloudFragmentShader->getDefaultParameters()->setNamedAutoConstant("emissive", GpuProgramParameters::ACT_SURFACE_EMISSIVE_COLOUR);
|
||||
|
||||
SceneNode* clouds_node = mRootNode->createChildSceneNode();
|
||||
meshes = NifOgre::NIFLoader::load("meshes\\sky_clouds_01.nif");
|
||||
for(size_t i = 0;i < meshes.size();i++)
|
||||
entities = NifOgre::NIFLoader::createEntities(clouds_node, "meshes\\sky_clouds_01.nif");
|
||||
for(size_t i = 0;i < entities.mEntities.size();i++)
|
||||
{
|
||||
Entity* clouds_ent = mSceneMgr->createEntity(meshes[i].first->getName());
|
||||
Entity* clouds_ent = entities.mEntities[i];
|
||||
clouds_ent->setVisibilityFlags(RV_Sky);
|
||||
clouds_ent->setRenderQueueGroup(RQG_SkiesEarly+5);
|
||||
clouds_node->attachObject(clouds_ent);
|
||||
|
||||
mCloudMaterial = clouds_ent->getSubEntity(0)->getMaterial();
|
||||
mCloudMaterial = mCloudMaterial->clone("Clouds");
|
||||
|
|
|
@ -85,11 +85,11 @@ typedef std::vector< std::pair<Ogre::MeshPtr,std::string> > MeshPairList;
|
|||
*/
|
||||
class NIFLoader
|
||||
{
|
||||
public:
|
||||
static MeshPairList load(const std::string &name,
|
||||
Ogre::SkeletonPtr *skel=NULL,
|
||||
const std::string &group="General");
|
||||
|
||||
public:
|
||||
static EntityList createEntities(Ogre::SceneNode *parent,
|
||||
const std::string &name,
|
||||
const std::string &group="General");
|
||||
|
|
Loading…
Reference in a new issue