From e62fff5f2eaae841a4378e6bf18fb6a9b50b3d16 Mon Sep 17 00:00:00 2001 From: Evil Eye <malusluminis@hotmail.com> Date: Mon, 7 Dec 2020 19:04:32 +0100 Subject: [PATCH 1/2] Add a setting to disable graphical herbalism --- apps/openmw/engine.cpp | 4 ++-- apps/openmw/mwclass/container.cpp | 10 +++++++++- apps/openmw/mwclass/container.hpp | 5 +++++ files/settings-default.cfg | 3 +++ 4 files changed, 19 insertions(+), 3 deletions(-) diff --git a/apps/openmw/engine.cpp b/apps/openmw/engine.cpp index 8092bb770..8f23f710d 100644 --- a/apps/openmw/engine.cpp +++ b/apps/openmw/engine.cpp @@ -386,8 +386,6 @@ OMW::Engine::Engine(Files::ConfigurationManager& configurationManager) , mNewGame (false) , mCfgMgr(configurationManager) { - MWClass::registerClasses(); - SDL_SetHint(SDL_HINT_ACCELEROMETER_AS_JOYSTICK, "0"); // We use only gamepads Uint32 flags = SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE|SDL_INIT_GAMECONTROLLER|SDL_INIT_JOYSTICK|SDL_INIT_SENSOR; @@ -838,6 +836,8 @@ void OMW::Engine::go() std::string settingspath; settingspath = loadSettings (settings); + MWClass::registerClasses(); + // Create encoder mEncoder = new ToUTF8::Utf8Encoder(mEncoding); diff --git a/apps/openmw/mwclass/container.cpp b/apps/openmw/mwclass/container.cpp index a27e3debd..5ae22cf05 100644 --- a/apps/openmw/mwclass/container.cpp +++ b/apps/openmw/mwclass/container.cpp @@ -2,6 +2,7 @@ #include <components/esm/loadcont.hpp> #include <components/esm/containerstate.hpp> +#include <components/settings/settings.hpp> #include "../mwbase/environment.hpp" #include "../mwbase/world.hpp" @@ -59,6 +60,11 @@ namespace MWClass return *this; } + Container::Container() + { + mHarvestEnabled = Settings::Manager::getBool("enable graphic herbalism", "Game"); + } + void Container::ensureCustomData (const MWWorld::Ptr& ptr) const { if (!ptr.getRefData().getCustomData()) @@ -72,8 +78,10 @@ namespace MWClass } } - bool canBeHarvested(const MWWorld::ConstPtr& ptr) + bool Container::canBeHarvested(const MWWorld::ConstPtr& ptr) const { + if (!mHarvestEnabled) + return false; const MWRender::Animation* animation = MWBase::Environment::get().getWorld()->getAnimation(ptr); if (animation == nullptr) return false; diff --git a/apps/openmw/mwclass/container.hpp b/apps/openmw/mwclass/container.hpp index 57dbf0c76..2dc0c06ca 100644 --- a/apps/openmw/mwclass/container.hpp +++ b/apps/openmw/mwclass/container.hpp @@ -30,11 +30,16 @@ namespace MWClass class Container : public MWWorld::Class { + bool mHarvestEnabled; + void ensureCustomData (const MWWorld::Ptr& ptr) const; MWWorld::Ptr copyToCellImpl(const MWWorld::ConstPtr &ptr, MWWorld::CellStore &cell) const override; + bool canBeHarvested(const MWWorld::ConstPtr& ptr) const; + public: + Container(); void insertObjectRendering (const MWWorld::Ptr& ptr, const std::string& model, MWRender::RenderingInterface& renderingInterface) const override; ///< Add reference into a cell for rendering diff --git a/files/settings-default.cfg b/files/settings-default.cfg index 0b307ba09..fbf646b38 100644 --- a/files/settings-default.cfg +++ b/files/settings-default.cfg @@ -361,6 +361,9 @@ trainers training skills based on base skill = false # Make stealing items from NPCs that were knocked down possible during combat. always allow stealing from knocked out actors = false +# Enables visually harvesting plants for models that support it. +enable graphic herbalism = true + [General] # Anisotropy reduces distortion in textures at low angles (e.g. 0 to 16). From 275b9aea4d6d245b69eab91401ba11b8d764a756 Mon Sep 17 00:00:00 2001 From: Evil Eye <malusluminis@hotmail.com> Date: Mon, 7 Dec 2020 21:56:41 +0100 Subject: [PATCH 2/2] rename setting --- apps/openmw/mwclass/container.cpp | 2 +- files/settings-default.cfg | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/openmw/mwclass/container.cpp b/apps/openmw/mwclass/container.cpp index 5ae22cf05..28305c394 100644 --- a/apps/openmw/mwclass/container.cpp +++ b/apps/openmw/mwclass/container.cpp @@ -62,7 +62,7 @@ namespace MWClass Container::Container() { - mHarvestEnabled = Settings::Manager::getBool("enable graphic herbalism", "Game"); + mHarvestEnabled = Settings::Manager::getBool("graphic herbalism", "Game"); } void Container::ensureCustomData (const MWWorld::Ptr& ptr) const diff --git a/files/settings-default.cfg b/files/settings-default.cfg index fbf646b38..c8805faa3 100644 --- a/files/settings-default.cfg +++ b/files/settings-default.cfg @@ -362,7 +362,7 @@ trainers training skills based on base skill = false always allow stealing from knocked out actors = false # Enables visually harvesting plants for models that support it. -enable graphic herbalism = true +graphic herbalism = true [General]