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