1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-02-06 14:15:34 +00:00

Move base_anim settings to settings-default.cfg

This commit is contained in:
Nelsson Huotari 2020-12-30 22:11:32 +02:00
parent b164f1aa17
commit 3194520dcd
8 changed files with 49 additions and 26 deletions

View file

@ -418,10 +418,10 @@ namespace MWClass
{ {
const MWWorld::LiveCellRef<ESM::NPC> *ref = ptr.get<ESM::NPC>(); const MWWorld::LiveCellRef<ESM::NPC> *ref = ptr.get<ESM::NPC>();
std::string model = "meshes\\base_anim.nif"; std::string model = Settings::Manager::getString("xbaseanim", "Models");
const ESM::Race* race = MWBase::Environment::get().getWorld()->getStore().get<ESM::Race>().find(ref->mBase->mRace); const ESM::Race* race = MWBase::Environment::get().getWorld()->getStore().get<ESM::Race>().find(ref->mBase->mRace);
if(race->mData.mFlags & ESM::Race::Beast) if(race->mData.mFlags & ESM::Race::Beast)
model = "meshes\\base_animkna.nif"; model = Settings::Manager::getString("baseanimkna", "Models");
return model; return model;
} }
@ -431,12 +431,12 @@ namespace MWClass
const MWWorld::LiveCellRef<ESM::NPC> *npc = ptr.get<ESM::NPC>(); const MWWorld::LiveCellRef<ESM::NPC> *npc = ptr.get<ESM::NPC>();
const ESM::Race* race = MWBase::Environment::get().getWorld()->getStore().get<ESM::Race>().search(npc->mBase->mRace); const ESM::Race* race = MWBase::Environment::get().getWorld()->getStore().get<ESM::Race>().search(npc->mBase->mRace);
if(race && race->mData.mFlags & ESM::Race::Beast) if(race && race->mData.mFlags & ESM::Race::Beast)
models.emplace_back("meshes\\base_animkna.nif"); models.emplace_back(Settings::Manager::getString("baseanimkna", "Models"));
// keep these always loaded just in case // keep these always loaded just in case
models.emplace_back("meshes/xargonian_swimkna.nif"); models.emplace_back(Settings::Manager::getString("xargonianswimkna", "Models"));
models.emplace_back("meshes/xbase_anim_female.nif"); models.emplace_back(Settings::Manager::getString("xbaseanimfemale", "Models"));
models.emplace_back("meshes/xbase_anim.nif"); models.emplace_back(Settings::Manager::getString("xbaseanim", "Models"));
if (!npc->mBase->mModel.empty()) if (!npc->mBase->mModel.empty())
models.push_back("meshes/"+npc->mBase->mModel); models.push_back("meshes/"+npc->mBase->mModel);

View file

@ -1500,7 +1500,7 @@ namespace MWRender
MWWorld::LiveCellRef<ESM::Creature> *ref = mPtr.get<ESM::Creature>(); MWWorld::LiveCellRef<ESM::Creature> *ref = mPtr.get<ESM::Creature>();
if(ref->mBase->mFlags & ESM::Creature::Bipedal) if(ref->mBase->mFlags & ESM::Creature::Bipedal)
{ {
defaultSkeleton = "meshes\\xbase_anim.nif"; defaultSkeleton = Settings::Manager::getString("xbaseanim", "Models");
inject = true; inject = true;
} }
} }

View file

@ -10,7 +10,7 @@
#include <components/sceneutil/visitor.hpp> #include <components/sceneutil/visitor.hpp>
#include <components/sceneutil/positionattitudetransform.hpp> #include <components/sceneutil/positionattitudetransform.hpp>
#include <components/sceneutil/skeleton.hpp> #include <components/sceneutil/skeleton.hpp>
#include <components/settings/settings.hpp>
#include <components/misc/stringops.hpp> #include <components/misc/stringops.hpp>
#include "../mwbase/environment.hpp" #include "../mwbase/environment.hpp"
@ -35,7 +35,7 @@ CreatureAnimation::CreatureAnimation(const MWWorld::Ptr &ptr,
setObjectRoot(model, false, false, true); setObjectRoot(model, false, false, true);
if((ref->mBase->mFlags&ESM::Creature::Bipedal)) if((ref->mBase->mFlags&ESM::Creature::Bipedal))
addAnimSource("meshes\\xbase_anim.nif", model); addAnimSource(Settings::Manager::getString("xbaseanim", "Models"), model);
addAnimSource(model, model); addAnimSource(model, model);
} }
} }
@ -54,7 +54,7 @@ CreatureWeaponAnimation::CreatureWeaponAnimation(const MWWorld::Ptr &ptr, const
if((ref->mBase->mFlags&ESM::Creature::Bipedal)) if((ref->mBase->mFlags&ESM::Creature::Bipedal))
{ {
addAnimSource("meshes\\xbase_anim.nif", model); addAnimSource(Settings::Manager::getString("xbaseanim", "Models"), model);
} }
addAnimSource(model, model); addAnimSource(model, model);

View file

@ -524,7 +524,7 @@ void NpcAnimation::updateNpcBase()
if(!is1stPerson) if(!is1stPerson)
{ {
const std::string base = "meshes\\xbase_anim.nif"; const std::string base = Settings::Manager::getString("xbaseanim", "Models");
if (smodel != base && !isWerewolf) if (smodel != base && !isWerewolf)
addAnimSource(base, smodel); addAnimSource(base, smodel);
@ -538,7 +538,7 @@ void NpcAnimation::updateNpcBase()
} }
else else
{ {
const std::string base = "meshes\\xbase_anim.1st.nif"; const std::string base = Settings::Manager::getString("xbaseanim1st", "Models");
if (smodel != base && !isWerewolf) if (smodel != base && !isWerewolf)
addAnimSource(base, smodel); addAnimSource(base, smodel);

View file

@ -456,12 +456,15 @@ namespace MWRender
mSky->listAssetsToPreload(workItem->mModels, workItem->mTextures); mSky->listAssetsToPreload(workItem->mModels, workItem->mTextures);
mWater->listAssetsToPreload(workItem->mTextures); mWater->listAssetsToPreload(workItem->mTextures);
const char* basemodels[] = {"xbase_anim", "xbase_anim.1st", "xbase_anim_female", "xbase_animkna"}; workItem->mModels.push_back(Settings::Manager::getString("xbaseanim", "Models"));
for (size_t i=0; i<sizeof(basemodels)/sizeof(basemodels[0]); ++i) workItem->mModels.push_back(Settings::Manager::getString("xbaseanim1st", "Models"));
{ workItem->mModels.push_back(Settings::Manager::getString("xbaseanimfemale", "Models"));
workItem->mModels.push_back(std::string("meshes/") + basemodels[i] + ".nif"); workItem->mModels.push_back(Settings::Manager::getString("xargonianswimkna", "Models"));
workItem->mKeyframes.push_back(std::string("meshes/") + basemodels[i] + ".kf");
} workItem->mKeyframes.push_back(Settings::Manager::getString("xbaseanimkf", "Models"));
workItem->mKeyframes.push_back(Settings::Manager::getString("xbaseanim1stkf", "Models"));
workItem->mKeyframes.push_back(Settings::Manager::getString("xbaseanimfemalekf", "Models"));
workItem->mKeyframes.push_back(Settings::Manager::getString("xargonianswimknakf", "Models"));
workItem->mTextures.emplace_back("textures/_land_default.dds"); workItem->mTextures.emplace_back("textures/_land_default.dds");

View file

@ -26,6 +26,8 @@
#include <components/sceneutil/controller.hpp> #include <components/sceneutil/controller.hpp>
#include <components/sceneutil/optimizer.hpp> #include <components/sceneutil/optimizer.hpp>
#include <components/settings/settings.hpp>
#include <components/shader/shadervisitor.hpp> #include <components/shader/shadervisitor.hpp>
#include <components/shader/shadermanager.hpp> #include <components/shader/shadermanager.hpp>

View file

@ -1,5 +1,7 @@
#include "actorutil.hpp" #include "actorutil.hpp"
#include <components/settings/settings.hpp>
namespace SceneUtil namespace SceneUtil
{ {
std::string getActorSkeleton(bool firstPerson, bool isFemale, bool isBeast, bool isWerewolf) std::string getActorSkeleton(bool firstPerson, bool isFemale, bool isBeast, bool isWerewolf)
@ -7,24 +9,24 @@ namespace SceneUtil
if (!firstPerson) if (!firstPerson)
{ {
if (isWerewolf) if (isWerewolf)
return "meshes\\wolf\\skin.nif"; return Settings::Manager::getString("wolfskin", "Models");
else if (isBeast) else if (isBeast)
return "meshes\\base_animkna.nif"; return Settings::Manager::getString("baseanimkna", "Models");
else if (isFemale) else if (isFemale)
return "meshes\\base_anim_female.nif"; return Settings::Manager::getString("baseanimfemale", "Models");
else else
return "meshes\\base_anim.nif"; return Settings::Manager::getString("baseanim", "Models");
} }
else else
{ {
if (isWerewolf) if (isWerewolf)
return "meshes\\wolf\\skin.1st.nif"; return Settings::Manager::getString("wolfskin1st", "Models");
else if (isBeast) else if (isBeast)
return "meshes\\base_animkna.1st.nif"; return Settings::Manager::getString("baseanimkna1st", "Models");
else if (isFemale) else if (isFemale)
return "meshes\\base_anim_female.1st.nif"; return Settings::Manager::getString("baseanimfemale1st", "Models");
else else
return "meshes\\base_anim.1st.nif"; return Settings::Manager::getString("xbaseanim1st", "Models");
} }
} }
} }

View file

@ -969,3 +969,19 @@ distance = 1
# A minimum size of groundcover chunk in cells (0.125, 0.25, 0.5, 1.0) # A minimum size of groundcover chunk in cells (0.125, 0.25, 0.5, 1.0)
min chunk size = 0.5 min chunk size = 0.5
xbaseanim = meshes\xbase_anim.nif
baseanim = meshes\base_anim.nif
xbaseanim1st = meshes\xbase_anim.1st.nif
baseanimkna = meshes\base_animkna.nif
baseanimkna1st = meshes\base_animkna.1st.nif
xbaseanimfemale = meshes/xbase_anim_female.nif
baseanimfemale = meshes/base_anim_female.nif
baseanimfemale1st = meshes\base_anim_female.1st.nif
wolfskin = meshes\wolf\skin.nif
wolfskin1st = meshes\wolf\skin.1st.nif
xargonianswimkna = meshes/xargonian_swimkna.nif
xbaseanimkf = meshes\xbase_anim.kf
xbaseanim1stkf = meshes\xbase_anim.1st.kf
xbaseanimfemalekf = meshes/xbase_anim_female.kf
xargonianswimknakf = meshes/xargonian_swimkna.kf