From 5bfdb2449dbbb468340f7b817fa752ac4a6738e9 Mon Sep 17 00:00:00 2001 From: Tom Mason Date: Wed, 9 Jan 2013 18:53:14 +0000 Subject: [PATCH 01/17] allowed dropObjectOnGround to be used on npcs, not just player --- apps/openmw/mwbase/world.hpp | 2 +- apps/openmw/mwgui/hud.cpp | 2 +- apps/openmw/mwworld/worldimp.cpp | 2 +- apps/openmw/mwworld/worldimp.hpp | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/openmw/mwbase/world.hpp b/apps/openmw/mwbase/world.hpp index 3401494ef..a576912c0 100644 --- a/apps/openmw/mwbase/world.hpp +++ b/apps/openmw/mwbase/world.hpp @@ -280,7 +280,7 @@ namespace MWBase /// @param cursor Y (relative 0-1) /// @return true if the object was placed, or false if it was rejected because the position is too far away - virtual void dropObjectOnGround (const MWWorld::Ptr& object) = 0; + virtual void dropObjectOnGround (const MWWorld::Ptr& actor, const MWWorld::Ptr& object) = 0; virtual bool canPlaceObject (float cursorX, float cursorY) = 0; ///< @return true if it is possible to place on object at specified cursor location diff --git a/apps/openmw/mwgui/hud.cpp b/apps/openmw/mwgui/hud.cpp index 5ea1d1338..a2c3a318b 100644 --- a/apps/openmw/mwgui/hud.cpp +++ b/apps/openmw/mwgui/hud.cpp @@ -220,7 +220,7 @@ void HUD::onWorldClicked(MyGUI::Widget* _sender) if (world->canPlaceObject(mouseX, mouseY)) world->placeObject(object, mouseX, mouseY); else - world->dropObjectOnGround(object); + world->dropObjectOnGround(world->getPlayer().getPlayer(), object); MyGUI::PointerManager::getInstance().setPointer("arrow"); diff --git a/apps/openmw/mwworld/worldimp.cpp b/apps/openmw/mwworld/worldimp.cpp index 7e0f1d7d3..6e2e5f3b7 100644 --- a/apps/openmw/mwworld/worldimp.cpp +++ b/apps/openmw/mwworld/worldimp.cpp @@ -1286,7 +1286,7 @@ namespace MWWorld } } - void World::dropObjectOnGround (const Ptr& object) + void World::dropObjectOnGround (const Ptr& actor, const Ptr& object) { MWWorld::Ptr::CellStore* cell = getPlayer().getPlayer().getCell(); diff --git a/apps/openmw/mwworld/worldimp.hpp b/apps/openmw/mwworld/worldimp.hpp index e6d377e60..7e89c1d87 100644 --- a/apps/openmw/mwworld/worldimp.hpp +++ b/apps/openmw/mwworld/worldimp.hpp @@ -311,7 +311,7 @@ namespace MWWorld /// @param cursor Y (relative 0-1) /// @return true if the object was placed, or false if it was rejected because the position is too far away - virtual void dropObjectOnGround (const Ptr& object); + virtual void dropObjectOnGround (const Ptr& actor, const Ptr& object); virtual bool canPlaceObject(float cursorX, float cursorY); ///< @return true if it is possible to place on object at specified cursor location From 3517635cfd86b017ad6e842be388bbb9149a5bce Mon Sep 17 00:00:00 2001 From: Tom Mason Date: Wed, 9 Jan 2013 21:16:45 +0000 Subject: [PATCH 02/17] added Drop and DropSoulGem functions --- apps/openmw/mwscript/docs/vmformat.txt | 7 ++- apps/openmw/mwscript/miscextensions.cpp | 64 +++++++++++++++++++++++++ apps/openmw/mwworld/worldimp.cpp | 4 +- 3 files changed, 72 insertions(+), 3 deletions(-) diff --git a/apps/openmw/mwscript/docs/vmformat.txt b/apps/openmw/mwscript/docs/vmformat.txt index 7c009f095..283f149de 100644 --- a/apps/openmw/mwscript/docs/vmformat.txt +++ b/apps/openmw/mwscript/docs/vmformat.txt @@ -311,4 +311,9 @@ op 0x20001f4: AddSoulGem, explicit reference op 0x20001f5: RemoveSoulGem op 0x20001f6: RemoveSoulGem, explicit reference op 0x20001f7: PlayBink -opcodes 0x20001f8-0x3ffffff unused +op 0x20001f8: Drop +op 0x20001f9: Drop, explicit reference +op 0x20001fa: DropSoulGem +op 0x20001fb: DropSoulGem, explicit reference + +opcodes 0x20001fa-0x3ffffff unused diff --git a/apps/openmw/mwscript/miscextensions.cpp b/apps/openmw/mwscript/miscextensions.cpp index a348a0a49..53c3c2f7b 100644 --- a/apps/openmw/mwscript/miscextensions.cpp +++ b/apps/openmw/mwscript/miscextensions.cpp @@ -383,6 +383,60 @@ namespace MWScript } }; + template + class OpDrop : public Interpreter::Opcode0 + { + public: + + virtual void execute (Interpreter::Runtime& runtime) + { + + MWWorld::Ptr ptr = R()(runtime); + + std::string item = runtime.getStringLiteral (runtime[0].mInteger); + runtime.pop(); + + MWWorld::ContainerStore& store = MWWorld::Class::get (ptr).getContainerStore (ptr); + + + for (MWWorld::ContainerStoreIterator iter (store.begin()); iter!=store.end(); ++iter) + { + if (::Misc::StringUtils::ciEqual(iter->getCellRef().mRefID, item)) + { + MWBase::Environment::get().getWorld()->dropObjectOnGround(ptr, *iter); + break; + } + } + } + }; + + template + class OpDropSoulGem : public Interpreter::Opcode0 + { + public: + + virtual void execute (Interpreter::Runtime& runtime) + { + + MWWorld::Ptr ptr = R()(runtime); + + std::string soul = runtime.getStringLiteral (runtime[0].mInteger); + runtime.pop(); + + MWWorld::ContainerStore& store = MWWorld::Class::get (ptr).getContainerStore (ptr); + + + for (MWWorld::ContainerStoreIterator iter (store.begin()); iter!=store.end(); ++iter) + { + if (::Misc::StringUtils::ciEqual(iter->getCellRef().mSoul, soul)) + { + MWBase::Environment::get().getWorld()->dropObjectOnGround(ptr, *iter); + break; + } + } + } + }; + template class OpGetAttacked : public Interpreter::Opcode0 { @@ -495,6 +549,10 @@ namespace MWScript const int opcodeAddSoulGemExplicit = 0x20001f4; const int opcodeRemoveSoulGem = 0x20001f5; const int opcodeRemoveSoulGemExplicit = 0x20001f6; + const int opcodeDrop = 0x20001f8; + const int opcodeDropExplicit = 0x20001f9; + const int opcodeDropSoulGem = 0x20001fa; + const int opcodeDropSoulGemExplicit = 0x20001fb; const int opcodeGetAttacked = 0x20001d3; const int opcodeGetAttackedExplicit = 0x20001d4; const int opcodeGetWeaponDrawn = 0x20001d7; @@ -538,6 +596,8 @@ namespace MWScript extensions.registerFunction ("geteffect", 'l', "l", opcodeGetEffect, opcodeGetEffectExplicit); extensions.registerInstruction ("addsoulgem", "cc", opcodeAddSoulGem, opcodeAddSoulGemExplicit); extensions.registerInstruction ("removesoulgem", "c", opcodeRemoveSoulGem, opcodeRemoveSoulGemExplicit); + extensions.registerInstruction ("drop", "c", opcodeDrop, opcodeDropExplicit); + extensions.registerInstruction ("dropsoulgem", "c", opcodeDropSoulGem, opcodeDropSoulGemExplicit); extensions.registerFunction ("getattacked", 'l', "", opcodeGetAttacked, opcodeGetAttackedExplicit); extensions.registerFunction ("getweapondrawn", 'l', "", opcodeGetWeaponDrawn, opcodeGetWeaponDrawnExplicit); extensions.registerFunction ("getspelleffects", 'l', "c", opcodeGetSpellEffects, opcodeGetSpellEffectsExplicit); @@ -576,6 +636,10 @@ namespace MWScript interpreter.installSegment5 (opcodeAddSoulGemExplicit, new OpAddSoulGem); interpreter.installSegment5 (opcodeRemoveSoulGem, new OpRemoveSoulGem); interpreter.installSegment5 (opcodeRemoveSoulGemExplicit, new OpRemoveSoulGem); + interpreter.installSegment5 (opcodeDrop, new OpDrop); + interpreter.installSegment5 (opcodeDropExplicit, new OpDrop); + interpreter.installSegment5 (opcodeDropSoulGem, new OpDropSoulGem); + interpreter.installSegment5 (opcodeDropSoulGemExplicit, new OpDropSoulGem); interpreter.installSegment5 (opcodeGetAttacked, new OpGetAttacked); interpreter.installSegment5 (opcodeGetAttackedExplicit, new OpGetAttacked); interpreter.installSegment5 (opcodeGetWeaponDrawn, new OpGetWeaponDrawn); diff --git a/apps/openmw/mwworld/worldimp.cpp b/apps/openmw/mwworld/worldimp.cpp index 6e2e5f3b7..f49b4bf9b 100644 --- a/apps/openmw/mwworld/worldimp.cpp +++ b/apps/openmw/mwworld/worldimp.cpp @@ -1288,10 +1288,10 @@ namespace MWWorld void World::dropObjectOnGround (const Ptr& actor, const Ptr& object) { - MWWorld::Ptr::CellStore* cell = getPlayer().getPlayer().getCell(); + MWWorld::Ptr::CellStore* cell = actor.getCell(); ESM::Position pos = - getPlayer().getPlayer().getRefData().getPosition(); + actor.getRefData().getPosition(); Ogre::Vector3 orig = Ogre::Vector3(pos.pos[0], pos.pos[1], pos.pos[2]); From 8486a5153592ee0505c0b5072e6dd7a48e65d54c Mon Sep 17 00:00:00 2001 From: Tom Mason Date: Wed, 9 Jan 2013 22:55:28 +0000 Subject: [PATCH 03/17] fixed drop amounts thanks to zinnschlag --- apps/openmw/mwscript/miscextensions.cpp | 34 ++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/apps/openmw/mwscript/miscextensions.cpp b/apps/openmw/mwscript/miscextensions.cpp index 53c3c2f7b..f329e30d9 100644 --- a/apps/openmw/mwscript/miscextensions.cpp +++ b/apps/openmw/mwscript/miscextensions.cpp @@ -396,6 +396,9 @@ namespace MWScript std::string item = runtime.getStringLiteral (runtime[0].mInteger); runtime.pop(); + Interpreter::Type_Integer amount = runtime[0].mInteger; + runtime.pop(); + MWWorld::ContainerStore& store = MWWorld::Class::get (ptr).getContainerStore (ptr); @@ -403,7 +406,19 @@ namespace MWScript { if (::Misc::StringUtils::ciEqual(iter->getCellRef().mRefID, item)) { - MWBase::Environment::get().getWorld()->dropObjectOnGround(ptr, *iter); + if(iter->getRefData().getCount() <= amount) + { + MWBase::Environment::get().getWorld()->dropObjectOnGround(ptr, *iter); + iter->getRefData().setCount(0); + } + else + { + int original = iter->getRefData().getCount(); + iter->getRefData().setCount(amount); + MWBase::Environment::get().getWorld()->dropObjectOnGround(ptr, *iter); + iter->getRefData().setCount(original - amount); + } + break; } } @@ -430,7 +445,20 @@ namespace MWScript { if (::Misc::StringUtils::ciEqual(iter->getCellRef().mSoul, soul)) { - MWBase::Environment::get().getWorld()->dropObjectOnGround(ptr, *iter); + + if(iter->getRefData().getCount() <= 1) + { + MWBase::Environment::get().getWorld()->dropObjectOnGround(ptr, *iter); + iter->getRefData().setCount(0); + } + else + { + int original = iter->getRefData().getCount(); + iter->getRefData().setCount(1); + MWBase::Environment::get().getWorld()->dropObjectOnGround(ptr, *iter); + iter->getRefData().setCount(original - 1); + } + break; } } @@ -596,7 +624,7 @@ namespace MWScript extensions.registerFunction ("geteffect", 'l', "l", opcodeGetEffect, opcodeGetEffectExplicit); extensions.registerInstruction ("addsoulgem", "cc", opcodeAddSoulGem, opcodeAddSoulGemExplicit); extensions.registerInstruction ("removesoulgem", "c", opcodeRemoveSoulGem, opcodeRemoveSoulGemExplicit); - extensions.registerInstruction ("drop", "c", opcodeDrop, opcodeDropExplicit); + extensions.registerInstruction ("drop", "cl", opcodeDrop, opcodeDropExplicit); extensions.registerInstruction ("dropsoulgem", "c", opcodeDropSoulGem, opcodeDropSoulGemExplicit); extensions.registerFunction ("getattacked", 'l', "", opcodeGetAttacked, opcodeGetAttackedExplicit); extensions.registerFunction ("getweapondrawn", 'l', "", opcodeGetWeaponDrawn, opcodeGetWeaponDrawnExplicit); From c71656493da4c5a5634d6510b851de0b8c26ac3a Mon Sep 17 00:00:00 2001 From: scrawl Date: Fri, 11 Jan 2013 01:23:24 +0100 Subject: [PATCH 04/17] Ingredient effects now correctly hide until the player has discovered them --- apps/openmw/mwclass/ingredient.cpp | 13 +++++++++++++ apps/openmw/mwgui/widgets.cpp | 8 ++++++-- apps/openmw/mwgui/widgets.hpp | 3 +++ 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/apps/openmw/mwclass/ingredient.cpp b/apps/openmw/mwclass/ingredient.cpp index 1be8d66b3..7ad8f1b47 100644 --- a/apps/openmw/mwclass/ingredient.cpp +++ b/apps/openmw/mwclass/ingredient.cpp @@ -12,6 +12,9 @@ #include "../mwworld/cellstore.hpp" #include "../mwworld/physicssystem.hpp" #include "../mwworld/actioneat.hpp" +#include "../mwworld/player.hpp" + +#include "../mwmechanics/npcstats.hpp" #include "../mwgui/tooltips.hpp" @@ -154,6 +157,10 @@ namespace MWClass text += MWGui::ToolTips::getMiscString(ref->mBase->mScript, "Script"); } + MWWorld::Ptr player = MWBase::Environment::get().getWorld ()->getPlayer ().getPlayer(); + MWMechanics::NpcStats& npcStats = MWWorld::Class::get(player).getNpcStats (player); + int alchemySkill = npcStats.getSkill (ESM::Skill::Alchemy).getBase(); + MWGui::Widgets::SpellEffectList list; for (int i=0; i<4; ++i) { @@ -163,6 +170,12 @@ namespace MWClass params.mEffectID = ref->mBase->mData.mEffectID[i]; params.mAttribute = ref->mBase->mData.mAttributes[i]; params.mSkill = ref->mBase->mData.mSkills[i]; + + params.mKnown = ( (i == 0 && alchemySkill >= 15) + || (i == 1 && alchemySkill >= 30) + || (i == 2 && alchemySkill >= 45) + || (i == 3 && alchemySkill >= 60)); + list.push_back(params); } info.effects = list; diff --git a/apps/openmw/mwgui/widgets.cpp b/apps/openmw/mwgui/widgets.cpp index 82e112826..f932c1f03 100644 --- a/apps/openmw/mwgui/widgets.cpp +++ b/apps/openmw/mwgui/widgets.cpp @@ -390,8 +390,13 @@ void MWSpellEffect::setSpellEffect(const SpellEffectParams& params) void MWSpellEffect::updateWidgets() { - if (!mWindowManager) + if (!mEffectParams.mKnown) + { + mTextWidget->setCaption ("?"); + mRequestedWidth = mTextWidget->getTextSize().width + 24; + mImageWidget->setImageTexture (""); return; + } const MWWorld::ESMStore &store = MWBase::Environment::get().getWorld()->getStore(); @@ -400,7 +405,6 @@ void MWSpellEffect::updateWidgets() store.get().search(mEffectParams.mEffectID); assert(magicEffect); - assert(mWindowManager); std::string pt = mWindowManager->getGameSettingString("spoint", ""); std::string pts = mWindowManager->getGameSettingString("spoints", ""); diff --git a/apps/openmw/mwgui/widgets.hpp b/apps/openmw/mwgui/widgets.hpp index 4ac5383f7..7cbb5e53a 100644 --- a/apps/openmw/mwgui/widgets.hpp +++ b/apps/openmw/mwgui/widgets.hpp @@ -37,12 +37,15 @@ namespace MWGui , mEffectID(-1) , mNoTarget(false) , mIsConstant(false) + , mKnown(true) { } bool mNoTarget; // potion effects for example have no target (target is always the player) bool mIsConstant; // constant effect means that duration will not be displayed + bool mKnown; // is this effect known to the player? (If not, will display as a question mark instead) + // value of -1 here means the effect is unknown to the player short mEffectID; From d469415e59ab55e16f01b24a83c422d8dfa1f60e Mon Sep 17 00:00:00 2001 From: Nathan Jeffords Date: Tue, 8 Jan 2013 09:45:01 -0800 Subject: [PATCH 05/17] factored out two function from OMW::Engine::go The initialization code inside Engine::go is now in two function it calls prior to running the main loop. --- apps/openmw/engine.cpp | 54 +++++++++++++++++++++++++++--------------- apps/openmw/engine.hpp | 7 ++++++ 2 files changed, 42 insertions(+), 19 deletions(-) diff --git a/apps/openmw/engine.cpp b/apps/openmw/engine.cpp index b19cafab7..661bf4a52 100644 --- a/apps/openmw/engine.cpp +++ b/apps/openmw/engine.cpp @@ -240,18 +240,9 @@ void OMW::Engine::setNewGame(bool newGame) mNewGame = newGame; } -// Initialise and enter main loop. - -void OMW::Engine::go() +std::string OMW::Engine::loadSettings (Settings::Manager & settings) { - assert (!mCellName.empty()); - assert (!mMaster.empty()); - assert (!mOgre); - - mOgre = new OEngine::Render::OgreRenderer; - // Create the settings manager and load default settings file - Settings::Manager settings; const std::string localdefault = mCfgMgr.getLocalPath().string() + "/settings-default.cfg"; const std::string globaldefault = mCfgMgr.getGlobalPath().string() + "/settings-default.cfg"; @@ -272,10 +263,6 @@ void OMW::Engine::go() else if (boost::filesystem::exists(globaldefault)) settings.loadUser(globaldefault); - // Get the path for the keybinder xml file - std::string keybinderUser = (mCfgMgr.getUserPath() / "input.xml").string(); - bool keybinderUserExists = boost::filesystem::exists(keybinderUser); - mFpsLevel = settings.getInt("fps", "HUD"); // load nif overrides @@ -285,6 +272,11 @@ void OMW::Engine::go() else if (boost::filesystem::exists(mCfgMgr.getGlobalPath().string() + "/transparency-overrides.cfg")) nifOverrides.loadTransparencyOverrides(mCfgMgr.getGlobalPath().string() + "/transparency-overrides.cfg"); + return settingspath; +} + +void OMW::Engine::prepareEngine (Settings::Manager & settings) +{ std::string renderSystem = settings.getString("render system", "Video"); if (renderSystem == "") { @@ -294,6 +286,9 @@ void OMW::Engine::go() renderSystem = "OpenGL Rendering Subsystem"; #endif } + + mOgre = new OEngine::Render::OgreRenderer; + mOgre->configure( mCfgMgr.getLogPath().string(), renderSystem, @@ -365,6 +360,11 @@ void OMW::Engine::go() mEnvironment.setDialogueManager (new MWDialogue::DialogueManager (mExtensions, mVerboseScripts, mTranslationDataStorage)); // Sets up the input system + + // Get the path for the keybinder xml file + std::string keybinderUser = (mCfgMgr.getUserPath() / "input.xml").string(); + bool keybinderUserExists = boost::filesystem::exists(keybinderUser); + mEnvironment.setInputManager (new MWInput::InputManager (*mOgre, MWBase::Environment::get().getWorld()->getPlayer(), *MWBase::Environment::get().getWindowManager(), mDebug, *this, keybinderUser, keybinderUserExists)); @@ -388,13 +388,8 @@ void OMW::Engine::go() MWBase::Environment::get().getWorld()->changeToInteriorCell (mCellName, pos); } - std::cout << "\nPress Q/ESC or close window to exit.\n"; - mOgre->getRoot()->addFrameListener (this); - // Play some good 'ol tunes - MWBase::Environment::get().getSoundManager()->playPlaylist(std::string("Explore")); - // scripts if (mCompileAll) { @@ -407,10 +402,31 @@ void OMW::Engine::go() << "%)" << std::endl; } +} + +// Initialise and enter main loop. + +void OMW::Engine::go() +{ + assert (!mCellName.empty()); + assert (!mMaster.empty()); + assert (!mOgre); + + Settings::Manager settings; + std::string settingspath; + + settingspath = loadSettings (settings); + + prepareEngine (settings); + + // Play some good 'ol tunes + MWBase::Environment::get().getSoundManager()->playPlaylist(std::string("Explore")); if (!mStartupScript.empty()) MWBase::Environment::get().getWindowManager()->executeInConsole (mStartupScript); + std::cout << "\nPress Q/ESC or close window to exit.\n"; + // Start the main rendering loop mOgre->start(); diff --git a/apps/openmw/engine.hpp b/apps/openmw/engine.hpp index 601cc7765..363bb8a10 100644 --- a/apps/openmw/engine.hpp +++ b/apps/openmw/engine.hpp @@ -6,6 +6,7 @@ #include #include #include +#include #include "mwbase/environment.hpp" @@ -103,6 +104,12 @@ namespace OMW virtual bool frameRenderingQueued (const Ogre::FrameEvent& evt); + /// Load settings from various files, returns the path to the user settings file + std::string loadSettings (Settings::Manager & settings); + + /// Prepare engine for game play + void prepareEngine (Settings::Manager & settings); + public: Engine(Files::ConfigurationManager& configurationManager); virtual ~Engine(); From 9d4f8c67223625e5a21d9095888532847e2e8be5 Mon Sep 17 00:00:00 2001 From: Nathan Jeffords Date: Thu, 3 Jan 2013 08:57:04 -0800 Subject: [PATCH 06/17] changed bullet_nif_loader to not modifiy NIF file The code in bullet_nif_loader was modifing the loaded NIF file as part of processing. Currently this is OK since the NIF file will be thrown away immediately, but it causes problems when trying to share loaded NIF files. --- components/nifbullet/bullet_nif_loader.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/components/nifbullet/bullet_nif_loader.cpp b/components/nifbullet/bullet_nif_loader.cpp index 42f6a8e68..0c8de0c27 100644 --- a/components/nifbullet/bullet_nif_loader.cpp +++ b/components/nifbullet/bullet_nif_loader.cpp @@ -165,7 +165,7 @@ bool ManualBulletShapeLoader::hasRootCollisionNode(Nif::Node* node) } void ManualBulletShapeLoader::handleNode(Nif::Node *node, int flags, - const Nif::Transformation *trafo,bool hasCollisionNode,bool isCollisionNode,bool raycastingOnly) + const Nif::Transformation *parentTrafo,bool hasCollisionNode,bool isCollisionNode,bool raycastingOnly) { // Accumulate the flags from all the child nodes. This works for all @@ -208,23 +208,23 @@ void ManualBulletShapeLoader::handleNode(Nif::Node *node, int flags, } } + Nif::Transformation childTrafo = node->trafo; - if (trafo) + if (parentTrafo) { // Get a non-const reference to the node's data, since we're // overwriting it. TODO: Is this necessary? - Nif::Transformation &final = node->trafo; // For both position and rotation we have that: // final_vector = old_vector + old_rotation*new_vector*old_scale - final.pos = trafo->pos + trafo->rotation*final.pos*trafo->scale; + childTrafo.pos = parentTrafo->pos + parentTrafo->rotation*childTrafo.pos*parentTrafo->scale; // Merge the rotations together - final.rotation = trafo->rotation * final.rotation; + childTrafo.rotation = parentTrafo->rotation * childTrafo.rotation; // Scale - final.scale *= trafo->scale; + childTrafo.scale *= parentTrafo->scale; } @@ -249,14 +249,14 @@ void ManualBulletShapeLoader::handleNode(Nif::Node *node, int flags, { if (!list[i].empty()) { - handleNode(list[i].getPtr(), flags,&node->trafo,hasCollisionNode,isCollisionNode,raycastingOnly); + handleNode(list[i].getPtr(), flags,&childTrafo,hasCollisionNode,isCollisionNode,raycastingOnly); } } } else if (node->recType == Nif::RC_NiTriShape && (isCollisionNode || !hasCollisionNode)) { cShape->mCollide = !(flags&0x800); - handleNiTriShape(dynamic_cast(node), flags,node->trafo.rotation,node->trafo.pos,node->trafo.scale,raycastingOnly); + handleNiTriShape(dynamic_cast(node), flags,childTrafo.rotation,childTrafo.pos,childTrafo.scale,raycastingOnly); } else if(node->recType == Nif::RC_RootCollisionNode) { @@ -265,7 +265,7 @@ void ManualBulletShapeLoader::handleNode(Nif::Node *node, int flags, for (int i=0; itrafo, hasCollisionNode,true,raycastingOnly); + handleNode(list[i].getPtr(), flags,&childTrafo, hasCollisionNode,true,raycastingOnly); } } } From 0989b44b415d56246a02d754733e971b7a8458bf Mon Sep 17 00:00:00 2001 From: Nathan Jeffords Date: Thu, 3 Jan 2013 09:33:19 -0800 Subject: [PATCH 07/17] spread some const around NIF loading --- components/nif/nif_file.cpp | 4 ++-- components/nif/node.hpp | 4 ++-- components/nifbullet/bullet_nif_loader.cpp | 18 +++++++-------- components/nifbullet/bullet_nif_loader.hpp | 10 ++++----- components/nifogre/ogre_nif_loader.cpp | 26 +++++++++++----------- 5 files changed, 31 insertions(+), 31 deletions(-) diff --git a/components/nif/nif_file.cpp b/components/nif/nif_file.cpp index 3313d89ab..38ff5b270 100644 --- a/components/nif/nif_file.cpp +++ b/components/nif/nif_file.cpp @@ -211,14 +211,14 @@ void NiSkinInstance::post(NIFFile *nif) } } -Ogre::Matrix4 Node::getLocalTransform() +Ogre::Matrix4 Node::getLocalTransform() const { Ogre::Matrix4 mat4(Ogre::Matrix4::IDENTITY); mat4.makeTransform(trafo.pos, Ogre::Vector3(trafo.scale), Ogre::Quaternion(trafo.rotation)); return mat4; } -Ogre::Matrix4 Node::getWorldTransform() +Ogre::Matrix4 Node::getWorldTransform() const { if(parent != NULL) return parent->getWorldTransform() * getLocalTransform(); diff --git a/components/nif/node.hpp b/components/nif/node.hpp index f7d3c6e96..07e7868cc 100644 --- a/components/nif/node.hpp +++ b/components/nif/node.hpp @@ -111,8 +111,8 @@ public: boneIndex = ind; } - Ogre::Matrix4 getLocalTransform(); - Ogre::Matrix4 getWorldTransform(); + Ogre::Matrix4 getLocalTransform() const; + Ogre::Matrix4 getWorldTransform() const; }; struct NiNode : Node diff --git a/components/nifbullet/bullet_nif_loader.cpp b/components/nifbullet/bullet_nif_loader.cpp index 0c8de0c27..cea8c4b52 100644 --- a/components/nifbullet/bullet_nif_loader.cpp +++ b/components/nifbullet/bullet_nif_loader.cpp @@ -51,7 +51,7 @@ ManualBulletShapeLoader::~ManualBulletShapeLoader() } -btQuaternion ManualBulletShapeLoader::getbtQuat(Ogre::Matrix3 &m) +btQuaternion ManualBulletShapeLoader::getbtQuat(Ogre::Matrix3 const &m) { Ogre::Quaternion oquat(m); btQuaternion quat; @@ -62,7 +62,7 @@ btQuaternion ManualBulletShapeLoader::getbtQuat(Ogre::Matrix3 &m) return quat; } -btVector3 ManualBulletShapeLoader::getbtVector(Ogre::Vector3 &v) +btVector3 ManualBulletShapeLoader::getbtVector(Ogre::Vector3 const &v) { return btVector3(v[0], v[1], v[2]); } @@ -138,7 +138,7 @@ void ManualBulletShapeLoader::loadResource(Ogre::Resource *resource) } } -bool ManualBulletShapeLoader::hasRootCollisionNode(Nif::Node* node) +bool ManualBulletShapeLoader::hasRootCollisionNode(Nif::Node const * node) { if (node->recType == Nif::RC_NiNode) { @@ -164,7 +164,7 @@ bool ManualBulletShapeLoader::hasRootCollisionNode(Nif::Node* node) return false; } -void ManualBulletShapeLoader::handleNode(Nif::Node *node, int flags, +void ManualBulletShapeLoader::handleNode(Nif::Node const *node, int flags, const Nif::Transformation *parentTrafo,bool hasCollisionNode,bool isCollisionNode,bool raycastingOnly) { @@ -181,7 +181,7 @@ void ManualBulletShapeLoader::handleNode(Nif::Node *node, int flags, } // Check for extra data - Nif::Extra *e = node; + Nif::Extra const *e = node; while (!e->extra.empty()) { // Get the next extra data in the list @@ -232,7 +232,7 @@ void ManualBulletShapeLoader::handleNode(Nif::Node *node, int flags, { - btVector3 boxsize = getbtVector((node->boundXYZ)); + btVector3 boxsize = getbtVector(node->boundXYZ); cShape->boxTranslation = node->boundPos; cShape->boxRotation = node->boundRot; @@ -243,7 +243,7 @@ void ManualBulletShapeLoader::handleNode(Nif::Node *node, int flags, // For NiNodes, loop through children if (node->recType == Nif::RC_NiNode) { - Nif::NodeList &list = ((Nif::NiNode*)node)->children; + Nif::NodeList const &list = ((Nif::NiNode const *)node)->children; int n = list.length(); for (int i=0; irecType == Nif::RC_NiTriShape && (isCollisionNode || !hasCollisionNode)) { cShape->mCollide = !(flags&0x800); - handleNiTriShape(dynamic_cast(node), flags,childTrafo.rotation,childTrafo.pos,childTrafo.scale,raycastingOnly); + handleNiTriShape(dynamic_cast(node), flags,childTrafo.rotation,childTrafo.pos,childTrafo.scale,raycastingOnly); } else if(node->recType == Nif::RC_RootCollisionNode) { @@ -270,7 +270,7 @@ void ManualBulletShapeLoader::handleNode(Nif::Node *node, int flags, } } -void ManualBulletShapeLoader::handleNiTriShape(Nif::NiTriShape *shape, int flags,Ogre::Matrix3 parentRot,Ogre::Vector3 parentPos,float parentScale, +void ManualBulletShapeLoader::handleNiTriShape(Nif::NiTriShape const *shape, int flags,Ogre::Matrix3 parentRot,Ogre::Vector3 parentPos,float parentScale, bool raycastingOnly) { assert(shape != NULL); diff --git a/components/nifbullet/bullet_nif_loader.hpp b/components/nifbullet/bullet_nif_loader.hpp index 2190fda1b..520878ce1 100644 --- a/components/nifbullet/bullet_nif_loader.hpp +++ b/components/nifbullet/bullet_nif_loader.hpp @@ -79,25 +79,25 @@ public: void load(const std::string &name,const std::string &group); private: - btQuaternion getbtQuat(Ogre::Matrix3 &m); + btQuaternion getbtQuat(Ogre::Matrix3 const &m); - btVector3 getbtVector(Ogre::Vector3 &v); + btVector3 getbtVector(Ogre::Vector3 const &v); /** *Parse a node. */ - void handleNode(Nif::Node *node, int flags, + void handleNode(Nif::Node const *node, int flags, const Nif::Transformation *trafo, bool hasCollisionNode,bool isCollisionNode,bool raycastingOnly); /** *Helper function */ - bool hasRootCollisionNode(Nif::Node* node); + bool hasRootCollisionNode(Nif::Node const * node); /** *convert a NiTriShape to a bullet trishape. */ - void handleNiTriShape(Nif::NiTriShape *shape, int flags,Ogre::Matrix3 parentRot,Ogre::Vector3 parentPos,float parentScales,bool raycastingOnly); + void handleNiTriShape(Nif::NiTriShape const *shape, int flags,Ogre::Matrix3 parentRot,Ogre::Vector3 parentPos,float parentScales,bool raycastingOnly); std::string resourceName; std::string resourceGroup; diff --git a/components/nifogre/ogre_nif_loader.cpp b/components/nifogre/ogre_nif_loader.cpp index 489acb108..207d01ff6 100644 --- a/components/nifogre/ogre_nif_loader.cpp +++ b/components/nifogre/ogre_nif_loader.cpp @@ -187,7 +187,7 @@ static TextKeyMap extractTextKeys(const Nif::NiTextKeyExtraData *tk) } -void buildBones(Ogre::Skeleton *skel, const Nif::Node *node, std::vector &ctrls, Ogre::Bone *parent=NULL) +void buildBones(Ogre::Skeleton *skel, const Nif::Node *node, std::vector &ctrls, Ogre::Bone *parent=NULL) { Ogre::Bone *bone; if(!skel->hasBone(node->name)) @@ -255,7 +255,7 @@ void loadResource(Ogre::Resource *resource) Nif::NIFFile nif(skel->getName()); const Nif::Node *node = dynamic_cast(nif.getRecord(0)); - std::vector ctrls; + std::vector ctrls; buildBones(skel, node, ctrls); std::vector targets; @@ -266,7 +266,7 @@ void loadResource(Ogre::Resource *resource) float maxtime = 0.0f; for(size_t i = 0;i < ctrls.size();i++) { - Nif::NiKeyframeController *ctrl = ctrls[i]; + Nif::NiKeyframeController const *ctrl = ctrls[i]; maxtime = std::max(maxtime, ctrl->timeStop); Nif::Named *target = dynamic_cast(ctrl->target.getPtr()); if(target != NULL) @@ -289,8 +289,8 @@ void loadResource(Ogre::Resource *resource) for(size_t i = 0;i < ctrls.size();i++) { - Nif::NiKeyframeController *kfc = ctrls[i]; - Nif::NiKeyframeData *kf = kfc->data.getPtr(); + Nif::NiKeyframeController const *kfc = ctrls[i]; + Nif::NiKeyframeData const *kf = kfc->data.getPtr(); /* Get the keyframes and make sure they're sorted first to last */ Nif::QuaternionKeyList quatkeys = kf->mRotations; @@ -711,7 +711,7 @@ class NIFMeshLoader : Ogre::ManualResourceLoader // Convert NiTriShape to Ogre::SubMesh - void handleNiTriShape(Ogre::Mesh *mesh, Nif::NiTriShape *shape) + void handleNiTriShape(Ogre::Mesh *mesh, Nif::NiTriShape const *shape) { Ogre::SkeletonPtr skel; const Nif::NiTriShapeData *data = shape->data.getPtr(); @@ -909,18 +909,18 @@ class NIFMeshLoader : Ogre::ManualResourceLoader sub->setMaterialName(mMaterialName); } - bool findTriShape(Ogre::Mesh *mesh, Nif::Node *node) + bool findTriShape(Ogre::Mesh *mesh, Nif::Node const *node) { if(node->recType == Nif::RC_NiTriShape && mShapeName == node->name) { - handleNiTriShape(mesh, dynamic_cast(node)); + handleNiTriShape(mesh, dynamic_cast(node)); return true; } - Nif::NiNode *ninode = dynamic_cast(node); + Nif::NiNode const *ninode = dynamic_cast(node); if(ninode) { - Nif::NodeList &children = ninode->children; + Nif::NodeList const &children = ninode->children; for(size_t i = 0;i < children.length();i++) { if(!children[i].empty()) @@ -957,7 +957,7 @@ public: } Nif::NIFFile nif(mName); - Nif::Node *node = dynamic_cast(nif.getRecord(0)); + Nif::Node const *node = dynamic_cast(nif.getRecord(0)); findTriShape(mesh, node); } @@ -1062,10 +1062,10 @@ MeshPairList NIFLoader::load(std::string name, std::string skelName, const std:: } // The first record is assumed to be the root node - Nif::Record *r = nif.getRecord(0); + Nif::Record const *r = nif.getRecord(0); assert(r != NULL); - Nif::Node *node = dynamic_cast(r); + Nif::Node const *node = dynamic_cast(r); if(node == NULL) { nif.warn("First record in file was not a node, but a "+ From d5ebd6654dc87de27bcc01f5634503acd7c71a6a Mon Sep 17 00:00:00 2001 From: Nathan Jeffords Date: Sat, 5 Jan 2013 10:58:50 -0800 Subject: [PATCH 08/17] cache loaded NIF files to eliminate reloads Created a NIF file caching mechanism to prevent the system from reloading a NIF during a startup and cell changes. --- apps/openmw/engine.cpp | 2 + apps/openmw/mwworld/scene.cpp | 2 + components/nif/nif_file.cpp | 149 +++++++++++++++++++++ components/nif/nif_file.hpp | 37 +++-- components/nifbullet/bullet_nif_loader.cpp | 3 +- components/nifogre/ogre_nif_loader.cpp | 10 +- 6 files changed, 187 insertions(+), 16 deletions(-) diff --git a/apps/openmw/engine.cpp b/apps/openmw/engine.cpp index 661bf4a52..4413e98f4 100644 --- a/apps/openmw/engine.cpp +++ b/apps/openmw/engine.cpp @@ -277,6 +277,8 @@ std::string OMW::Engine::loadSettings (Settings::Manager & settings) void OMW::Engine::prepareEngine (Settings::Manager & settings) { + Nif::NIFFile::CacheLock cachelock; + std::string renderSystem = settings.getString("render system", "Video"); if (renderSystem == "") { diff --git a/apps/openmw/mwworld/scene.cpp b/apps/openmw/mwworld/scene.cpp index 6b9abf508..b917a8916 100644 --- a/apps/openmw/mwworld/scene.cpp +++ b/apps/openmw/mwworld/scene.cpp @@ -172,6 +172,8 @@ namespace MWWorld void Scene::changeCell (int X, int Y, const ESM::Position& position, bool adjustPlayerPos) { + Nif::NIFFile::CacheLock cachelock; + mRendering.preCellChange(mCurrentCell); // remove active diff --git a/components/nif/nif_file.cpp b/components/nif/nif_file.cpp index 38ff5b270..07d34b9ea 100644 --- a/components/nif/nif_file.cpp +++ b/components/nif/nif_file.cpp @@ -34,10 +34,159 @@ #include "controller.hpp" #include + +//TODO: when threading is needed, enable these +//#include +//#include + using namespace std; using namespace Nif; using namespace Misc; +class NIFFile::LoadedCache +{ + //TODO: enable this to make cache thread safe... + //typedef boost::mutex mutex; + + struct mutex + { + void lock () {}; + void unlock () {} + }; + + typedef boost::lock_guard lock_guard; + typedef std::map < std::string, boost::weak_ptr > loaded_map; + typedef std::vector < boost::shared_ptr > locked_files; + + static int sLockLevel; + static mutex sProtector; + static loaded_map sLoadedMap; + static locked_files sLockedFiles; + +public: + + static ptr create (const std::string &name) + { + lock_guard _ (sProtector); + + ptr result; + + // lookup the resource + loaded_map::iterator i = sLoadedMap.find (name); + + if (i == sLoadedMap.end ()) // it doesn't existing currently, + { // or hasn't in the very near past + + // create it now, for smoother threading if needed, the + // loading should be performed outside of the sLoaderMap + // lock and an alternate mechanism should be used to + // synchronize threads competing to load the same resource + result = boost::make_shared (name, psudo_private_modifier()); + + // if we are locking the cache add an extra reference + // to keep the file in memory + if (sLockLevel > 0) + sLockedFiles.push_back (result); + + // stash a reference to the resource so that future + // calls can benefit + sLoadedMap [name] = boost::weak_ptr (result); + } + else // it may (probably) still exists + { + // attempt to get the reference + result = i->second.lock (); + + if (!result) // resource is in the process of being destroyed + { + // create a new instance, to replace the one that has + // begun the irreversible process of being destroyed + result = boost::make_shared (name, psudo_private_modifier()); + + // respect the cache lock... + if (sLockLevel > 0) + sLockedFiles.push_back (result); + + // we potentially overwrite an expired pointer here + // but the other thread performing the delete on + // the previous copy of this resource will detect it + // and make sure not to erase the new reference + sLoadedMap [name] = boost::weak_ptr (result); + } + } + + // we made it! + return result; + } + + static void release (NIFFile * file) + { + lock_guard _ (sProtector); + + loaded_map::iterator i = sLoadedMap.find (file->filename); + + // its got to be in here, it just might not be us... + assert (i != sLoadedMap.end ()); + + // if weak_ptr is still expired, this resource hasn't been recreated + // between the initiation of the final release due to destruction + // of the last shared pointer and this thread acquiring the lock on + // the loader map + if (i->second.expired ()) + sLoadedMap.erase (i); + } + + static void lockCache () + { + lock_guard _ (sProtector); + + sLockLevel++; + } + + static void unlockCache () + { + locked_files resetList; + + { + lock_guard _ (sProtector); + + if (--sLockLevel) + sLockedFiles.swap(resetList); + } + + // this not necessary, but makes it clear that the + // deletion of the locked cache entries is being done + // outside the protection of sProtector + resetList.clear (); + } +}; + +int NIFFile::LoadedCache::sLockLevel = 0; +NIFFile::LoadedCache::mutex NIFFile::LoadedCache::sProtector; +NIFFile::LoadedCache::loaded_map NIFFile::LoadedCache::sLoadedMap; +NIFFile::LoadedCache::locked_files NIFFile::LoadedCache::sLockedFiles; + +// these three calls are forwarded to the cache implementation... +void NIFFile::lockCache () { LoadedCache::lockCache (); } +void NIFFile::unlockCache () { LoadedCache::unlockCache (); } +NIFFile::ptr NIFFile::create (const std::string &name) { return LoadedCache::create (name); } + +/// Open a NIF stream. The name is used for error messages. +NIFFile::NIFFile(const std::string &name, psudo_private_modifier) + : filename(name) +{ + inp = Ogre::ResourceGroupManager::getSingleton().openResource(name); + parse(); +} + +NIFFile::~NIFFile() +{ + LoadedCache::release (this); + + for(std::size_t i=0; i #include +#include +#include +#include +#include + #include #include "record.hpp" @@ -93,6 +98,14 @@ class NIFFile return u.f; } + class LoadedCache; + friend class LoadedCache; + + // attempt to protect NIFFile from misuse... + struct psudo_private_modifier {}; // this dirty little trick should optimize out + NIFFile (NIFFile const &); + void operator = (NIFFile const &); + public: /// Used for error handling void fail(const std::string &msg) @@ -108,19 +121,21 @@ public: << "File: "< ptr; - ~NIFFile() + /// Open a NIF stream. The name is used for error messages. + NIFFile(const std::string &name, psudo_private_modifier); + ~NIFFile(); + + static ptr create (const std::string &name); + static void lockCache (); + static void unlockCache (); + + struct CacheLock { - for(std::size_t i=0; i(resource); OgreAssert(skel, "Attempting to load a skeleton into a non-skeleton resource!"); - Nif::NIFFile nif(skel->getName()); + Nif::NIFFile::ptr pnif(Nif::NIFFile::create (skel->getName())); + Nif::NIFFile & nif = *pnif.get (); const Nif::Node *node = dynamic_cast(nif.getRecord(0)); std::vector ctrls; @@ -956,8 +957,8 @@ public: return; } - Nif::NIFFile nif(mName); - Nif::Node const *node = dynamic_cast(nif.getRecord(0)); + Nif::NIFFile::ptr nif = Nif::NIFFile::create (mName); + Nif::Node const *node = dynamic_cast(nif->getRecord(0)); findTriShape(mesh, node); } @@ -1054,7 +1055,8 @@ MeshPairList NIFLoader::load(std::string name, std::string skelName, const std:: return meshiter->second; MeshPairList &meshes = sMeshPairMap[name+"@skel="+skelName]; - Nif::NIFFile nif(name); + Nif::NIFFile::ptr pnif = Nif::NIFFile::create (name); + Nif::NIFFile &nif = *pnif.get (); if (nif.numRecords() < 1) { nif.warn("Found no records in NIF."); From 85bdb49d1b18b9653f5e35cbee397342b92edf2c Mon Sep 17 00:00:00 2001 From: Michal Sciubidlo Date: Fri, 11 Jan 2013 09:10:48 +0100 Subject: [PATCH 09/17] Mix debug and release if necessary under non Windows systems. --- components/files/ogreplugin.cpp | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/components/files/ogreplugin.cpp b/components/files/ogreplugin.cpp index ca90fd30e..c319f7758 100644 --- a/components/files/ogreplugin.cpp +++ b/components/files/ogreplugin.cpp @@ -6,11 +6,6 @@ namespace Files { bool loadOgrePlugin(const std::string &pluginDir, std::string pluginName, Ogre::Root &ogreRoot) { - // Append plugin suffix if debugging. -#if defined(DEBUG) - pluginName = pluginName + OGRE_PLUGIN_DEBUG_SUFFIX; -#endif - #if OGRE_PLATFORM == OGRE_PLATFORM_APPLE std::ostringstream verStream; verStream << "." << OGRE_VERSION_MAJOR << "." << OGRE_VERSION_MINOR << "." << OGRE_VERSION_PATCH; @@ -28,13 +23,28 @@ bool loadOgrePlugin(const std::string &pluginDir, std::string pluginName, Ogre:: pluginExt = ".so"; #endif - std::string pluginPath = pluginDir + "/" + pluginName + pluginExt; + // Append plugin suffix if debugging. + std::string pluginPath; +#if defined(DEBUG) + pluginPath = pluginDir + "/" + pluginName + OGRE_PLUGIN_DEBUG_SUFFIX + pluginExt; if (boost::filesystem::exists(pluginPath)) { - ogreRoot.loadPlugin(pluginPath); - return true; + ogreRoot.loadPlugin(pluginPath); + return true; } else { - return false; +#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32 + return false; +#endif //OGRE_PLATFORM == OGRE_PLATFORM_WIN32 + } +#endif //defined(DEBUG) + + pluginPath = pluginDir + "/" + pluginName + pluginExt; + if (boost::filesystem::exists(pluginPath)) { + ogreRoot.loadPlugin(pluginPath); + return true; + } + else { + return false; } } From ed3c23ad9af2eb310c32fb2563ae55777c2e4608 Mon Sep 17 00:00:00 2001 From: scrawl Date: Sat, 12 Jan 2013 01:18:36 +0100 Subject: [PATCH 10/17] Fixed crash on changing cell due to Utf8Encoder going out of scope --- apps/openmw/engine.cpp | 11 ++++++----- apps/openmw/engine.hpp | 1 + 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/apps/openmw/engine.cpp b/apps/openmw/engine.cpp index 4413e98f4..4f149efa1 100644 --- a/apps/openmw/engine.cpp +++ b/apps/openmw/engine.cpp @@ -325,16 +325,13 @@ void OMW::Engine::prepareEngine (Settings::Manager & settings) // cursor replacer (converts the cursor from the bsa so they can be used by mygui) MWGui::CursorReplace replacer; - // Create encoder - ToUTF8::Utf8Encoder encoder (mEncoding); - // Create the world mEnvironment.setWorld (new MWWorld::World (*mOgre, mFileCollections, mMaster, - mResDir, mCfgMgr.getCachePath(), mNewGame, &encoder, mFallbackMap, + mResDir, mCfgMgr.getCachePath(), mNewGame, mEncoder, mFallbackMap, mActivationDistanceOverride)); //Load translation data - mTranslationDataStorage.setEncoder(&encoder); + mTranslationDataStorage.setEncoder(mEncoder); mTranslationDataStorage.loadTranslationData(mFileCollections, mMaster); // Create window manager - this manages all the MW-specific GUI windows @@ -419,6 +416,10 @@ void OMW::Engine::go() settingspath = loadSettings (settings); + // Create encoder + ToUTF8::Utf8Encoder encoder (mEncoding); + mEncoder = &encoder; + prepareEngine (settings); // Play some good 'ol tunes diff --git a/apps/openmw/engine.hpp b/apps/openmw/engine.hpp index 363bb8a10..e320c6991 100644 --- a/apps/openmw/engine.hpp +++ b/apps/openmw/engine.hpp @@ -62,6 +62,7 @@ namespace OMW { MWBase::Environment mEnvironment; ToUTF8::FromType mEncoding; + ToUTF8::Utf8Encoder* mEncoder; Files::PathContainer mDataDirs; boost::filesystem::path mResDir; OEngine::Render::OgreRenderer *mOgre; From 31e6d28b19f1afedcdefb0caa6a5664e413c72cf Mon Sep 17 00:00:00 2001 From: scrawl Date: Sat, 12 Jan 2013 06:37:43 +0100 Subject: [PATCH 11/17] Close NIF file resource after loading it into memory --- components/nif/nif_file.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/components/nif/nif_file.cpp b/components/nif/nif_file.cpp index 07d34b9ea..3db34e0cc 100644 --- a/components/nif/nif_file.cpp +++ b/components/nif/nif_file.cpp @@ -177,6 +177,8 @@ NIFFile::NIFFile(const std::string &name, psudo_private_modifier) { inp = Ogre::ResourceGroupManager::getSingleton().openResource(name); parse(); + // Make sure to close the file after it was loaded into memory + inp.setNull(); } NIFFile::~NIFFile() From f4ee8e26429fe8b27247b47ce88994e9e5c3937d Mon Sep 17 00:00:00 2001 From: Marc Zinnschlag Date: Sat, 12 Jan 2013 13:10:20 +0100 Subject: [PATCH 12/17] Issue #479: Added additional magnitude parameter to known spells --- apps/openmw/mwgui/quickkeysmenu.cpp | 2 +- apps/openmw/mwgui/spellbuyingwindow.cpp | 12 ++++++------ apps/openmw/mwgui/spellcreationdialog.cpp | 2 +- apps/openmw/mwgui/spellwindow.cpp | 2 +- apps/openmw/mwmechanics/spells.cpp | 24 +++++++++++------------ apps/openmw/mwmechanics/spells.hpp | 10 +++++----- apps/openmw/mwscript/statsextensions.cpp | 6 +++--- 7 files changed, 29 insertions(+), 29 deletions(-) diff --git a/apps/openmw/mwgui/quickkeysmenu.cpp b/apps/openmw/mwgui/quickkeysmenu.cpp index 02512425d..6d51420f0 100644 --- a/apps/openmw/mwgui/quickkeysmenu.cpp +++ b/apps/openmw/mwgui/quickkeysmenu.cpp @@ -440,7 +440,7 @@ namespace MWGui for (MWMechanics::Spells::TIterator it = spells.begin(); it != spells.end(); ++it) { - spellList.push_back(*it); + spellList.push_back (it->first); } const MWWorld::ESMStore &esmStore = diff --git a/apps/openmw/mwgui/spellbuyingwindow.cpp b/apps/openmw/mwgui/spellbuyingwindow.cpp index a41f401a5..11f090494 100644 --- a/apps/openmw/mwgui/spellbuyingwindow.cpp +++ b/apps/openmw/mwgui/spellbuyingwindow.cpp @@ -98,19 +98,19 @@ namespace MWGui MWMechanics::Spells& playerSpells = MWWorld::Class::get (player).getCreatureStats (player).getSpells(); MWMechanics::Spells& merchantSpells = MWWorld::Class::get (actor).getCreatureStats (actor).getSpells(); - + for (MWMechanics::Spells::TIterator iter = merchantSpells.begin(); iter!=merchantSpells.end(); ++iter) { const ESM::Spell* spell = - MWBase::Environment::get().getWorld()->getStore().get().find (*iter); - + MWBase::Environment::get().getWorld()->getStore().get().find (iter->first); + if (spell->mData.mType!=ESM::Spell::ST_Spell) continue; // don't try to sell diseases, curses or powers - + if (std::find (playerSpells.begin(), playerSpells.end(), *iter)!=playerSpells.end()) continue; // we have that spell already - - addSpell (*iter); + + addSpell (iter->first); } updateLabels(); diff --git a/apps/openmw/mwgui/spellcreationdialog.cpp b/apps/openmw/mwgui/spellcreationdialog.cpp index 69d69519f..839586452 100644 --- a/apps/openmw/mwgui/spellcreationdialog.cpp +++ b/apps/openmw/mwgui/spellcreationdialog.cpp @@ -436,7 +436,7 @@ namespace MWGui for (MWMechanics::Spells::TIterator it = spells.begin(); it != spells.end(); ++it) { const ESM::Spell* spell = - MWBase::Environment::get().getWorld()->getStore().get().find(*it); + MWBase::Environment::get().getWorld()->getStore().get().find (it->first); // only normal spells count if (spell->mData.mType != ESM::Spell::ST_Spell) diff --git a/apps/openmw/mwgui/spellwindow.cpp b/apps/openmw/mwgui/spellwindow.cpp index d62b23de4..47e1d739a 100644 --- a/apps/openmw/mwgui/spellwindow.cpp +++ b/apps/openmw/mwgui/spellwindow.cpp @@ -139,7 +139,7 @@ namespace MWGui for (MWMechanics::Spells::TIterator it = spells.begin(); it != spells.end(); ++it) { - spellList.push_back(*it); + spellList.push_back (it->first); } const MWWorld::ESMStore &esmStore = diff --git a/apps/openmw/mwmechanics/spells.cpp b/apps/openmw/mwmechanics/spells.cpp index ef084f479..32acca2f0 100644 --- a/apps/openmw/mwmechanics/spells.cpp +++ b/apps/openmw/mwmechanics/spells.cpp @@ -29,13 +29,13 @@ namespace MWMechanics void Spells::add (const std::string& spellId) { - if (std::find (mSpells.begin(), mSpells.end(), spellId)==mSpells.end()) - mSpells.push_back (spellId); + if (mSpells.find (spellId)==mSpells.end()) + mSpells.insert (std::make_pair (spellId, -1)); } void Spells::remove (const std::string& spellId) { - TContainer::iterator iter = std::find (mSpells.begin(), mSpells.end(), spellId); + TContainer::iterator iter = mSpells.find (spellId); if (iter!=mSpells.end()) mSpells.erase (iter); @@ -51,7 +51,7 @@ namespace MWMechanics for (TIterator iter = mSpells.begin(); iter!=mSpells.end(); ++iter) { const ESM::Spell *spell = - MWBase::Environment::get().getWorld()->getStore().get().find (*iter); + MWBase::Environment::get().getWorld()->getStore().get().find (iter->first); if (spell->mData.mType==ESM::Spell::ST_Ability || spell->mData.mType==ESM::Spell::ST_Blight || spell->mData.mType==ESM::Spell::ST_Disease || spell->mData.mType==ESM::Spell::ST_Curse) @@ -75,18 +75,18 @@ namespace MWMechanics { return mSelectedSpell; } - + bool Spells::hasCommonDisease() const { for (TIterator iter = mSpells.begin(); iter!=mSpells.end(); ++iter) { const ESM::Spell *spell = - MWBase::Environment::get().getWorld()->getStore().get().find (*iter); - + MWBase::Environment::get().getWorld()->getStore().get().find (iter->first); + if (spell->mData.mFlags & ESM::Spell::ST_Disease) return true; } - + return false; } @@ -95,12 +95,12 @@ namespace MWMechanics for (TIterator iter = mSpells.begin(); iter!=mSpells.end(); ++iter) { const ESM::Spell *spell = - MWBase::Environment::get().getWorld()->getStore().get().find (*iter); - + MWBase::Environment::get().getWorld()->getStore().get().find (iter->first); + if (spell->mData.mFlags & ESM::Spell::ST_Blight) return true; } - - return false; + + return false; } } diff --git a/apps/openmw/mwmechanics/spells.hpp b/apps/openmw/mwmechanics/spells.hpp index 12308661b..b4d058896 100644 --- a/apps/openmw/mwmechanics/spells.hpp +++ b/apps/openmw/mwmechanics/spells.hpp @@ -1,7 +1,7 @@ #ifndef GAME_MWMECHANICS_SPELLS_H #define GAME_MWMECHANICS_SPELLS_H -#include +#include #include namespace ESM @@ -21,12 +21,12 @@ namespace MWMechanics { public: - typedef std::vector TContainer; + typedef std::map TContainer; // ID, magnitude typedef TContainer::const_iterator TIterator; private: - std::vector mSpells; + TContainer mSpells; std::string mSelectedSpell; void addSpell (const ESM::Spell *, MagicEffects& effects) const; @@ -55,10 +55,10 @@ namespace MWMechanics const std::string getSelectedSpell() const; ///< May return an empty string. - + bool hasCommonDisease() const; - bool hasBlightDisease() const; + bool hasBlightDisease() const; }; } diff --git a/apps/openmw/mwscript/statsextensions.cpp b/apps/openmw/mwscript/statsextensions.cpp index 31ea7518b..530d44c9d 100644 --- a/apps/openmw/mwscript/statsextensions.cpp +++ b/apps/openmw/mwscript/statsextensions.cpp @@ -485,7 +485,7 @@ namespace MWScript for (MWMechanics::Spells::TIterator iter ( MWWorld::Class::get (ptr).getCreatureStats (ptr).getSpells().begin()); iter!=MWWorld::Class::get (ptr).getCreatureStats (ptr).getSpells().end(); ++iter) - if (*iter==id) + if (iter->first==id) { value = 1; break; @@ -1188,7 +1188,7 @@ namespace MWScript extensions.registerFunction ("getpccrimelevel", 'f', "", opcodeGetPCCrimeLevel); extensions.registerInstruction ("setpccrimelevel", "f", opcodeSetPCCrimeLevel); extensions.registerInstruction ("modpccrimelevel", "f", opcodeModPCCrimeLevel); - + extensions.registerInstruction ("addspell", "c", opcodeAddSpell, opcodeAddSpellExplicit); extensions.registerInstruction ("removespell", "c", opcodeRemoveSpell, opcodeRemoveSpellExplicit); @@ -1286,7 +1286,7 @@ namespace MWScript interpreter.installSegment5 (opcodeGetPCCrimeLevel, new OpGetPCCrimeLevel); interpreter.installSegment5 (opcodeSetPCCrimeLevel, new OpSetPCCrimeLevel); interpreter.installSegment5 (opcodeModPCCrimeLevel, new OpModPCCrimeLevel); - + interpreter.installSegment5 (opcodeAddSpell, new OpAddSpell); interpreter.installSegment5 (opcodeAddSpellExplicit, new OpAddSpell); interpreter.installSegment5 (opcodeRemoveSpell, new OpRemoveSpell); From 654cd3ab9bef7aad11a8c5e3a55a26d4100065cc Mon Sep 17 00:00:00 2001 From: Marc Zinnschlag Date: Sun, 13 Jan 2013 14:52:55 +0100 Subject: [PATCH 13/17] Issue #479: Use magnitude specified when adding disease --- apps/openmw/mwmechanics/magiceffects.cpp | 10 +++++++--- apps/openmw/mwmechanics/magiceffects.hpp | 3 ++- apps/openmw/mwmechanics/spells.cpp | 13 +++++-------- apps/openmw/mwmechanics/spells.hpp | 4 +--- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/apps/openmw/mwmechanics/magiceffects.cpp b/apps/openmw/mwmechanics/magiceffects.cpp index 94363cb79..1a7b34817 100644 --- a/apps/openmw/mwmechanics/magiceffects.cpp +++ b/apps/openmw/mwmechanics/magiceffects.cpp @@ -68,7 +68,7 @@ namespace MWMechanics } } - void MagicEffects::add (const ESM::EffectList& list) + void MagicEffects::add (const ESM::EffectList& list, float magnitude) { for (std::vector::const_iterator iter (list.mList.begin()); iter!=list.mList.end(); ++iter) @@ -78,9 +78,13 @@ namespace MWMechanics if (iter->mMagnMin>=iter->mMagnMax) param.mMagnitude = iter->mMagnMin; else + { + if (magnitude==-1) + magnitude = static_cast (std::rand()) / RAND_MAX; + param.mMagnitude = static_cast ( - (iter->mMagnMax-iter->mMagnMin+1)* - (static_cast (std::rand()) / RAND_MAX) + iter->mMagnMin); + (iter->mMagnMax-iter->mMagnMin+1)*magnitude + iter->mMagnMin); + } add (*iter, param); } diff --git a/apps/openmw/mwmechanics/magiceffects.hpp b/apps/openmw/mwmechanics/magiceffects.hpp index 2f61d7eeb..b80b5a863 100644 --- a/apps/openmw/mwmechanics/magiceffects.hpp +++ b/apps/openmw/mwmechanics/magiceffects.hpp @@ -67,7 +67,8 @@ namespace MWMechanics void add (const EffectKey& key, const EffectParam& param); - void add (const ESM::EffectList& list); + void add (const ESM::EffectList& list, float magnitude = -1); + ///< \param magnitude normalised magnitude (-1: random) MagicEffects& operator+= (const MagicEffects& effects); diff --git a/apps/openmw/mwmechanics/spells.cpp b/apps/openmw/mwmechanics/spells.cpp index 32acca2f0..e2da7cdc8 100644 --- a/apps/openmw/mwmechanics/spells.cpp +++ b/apps/openmw/mwmechanics/spells.cpp @@ -1,22 +1,19 @@ #include "spells.hpp" -#include "../mwworld/esmstore.hpp" +#include #include #include "../mwbase/environment.hpp" #include "../mwbase/world.hpp" +#include "../mwworld/esmstore.hpp" + #include "magiceffects.hpp" namespace MWMechanics { - void Spells::addSpell (const ESM::Spell *spell, MagicEffects& effects) const - { - effects.add (spell->mEffects); - } - Spells::TIterator Spells::begin() const { return mSpells.begin(); @@ -30,7 +27,7 @@ namespace MWMechanics void Spells::add (const std::string& spellId) { if (mSpells.find (spellId)==mSpells.end()) - mSpells.insert (std::make_pair (spellId, -1)); + mSpells.insert (std::make_pair (spellId, static_cast (std::rand()) / RAND_MAX)); } void Spells::remove (const std::string& spellId) @@ -55,7 +52,7 @@ namespace MWMechanics if (spell->mData.mType==ESM::Spell::ST_Ability || spell->mData.mType==ESM::Spell::ST_Blight || spell->mData.mType==ESM::Spell::ST_Disease || spell->mData.mType==ESM::Spell::ST_Curse) - addSpell (spell, effects); + effects.add (spell->mEffects, iter->second); } return effects; diff --git a/apps/openmw/mwmechanics/spells.hpp b/apps/openmw/mwmechanics/spells.hpp index b4d058896..e00ac259f 100644 --- a/apps/openmw/mwmechanics/spells.hpp +++ b/apps/openmw/mwmechanics/spells.hpp @@ -21,7 +21,7 @@ namespace MWMechanics { public: - typedef std::map TContainer; // ID, magnitude + typedef std::map TContainer; // ID, normalised magnitude typedef TContainer::const_iterator TIterator; private: @@ -29,8 +29,6 @@ namespace MWMechanics TContainer mSpells; std::string mSelectedSpell; - void addSpell (const ESM::Spell *, MagicEffects& effects) const; - public: TIterator begin() const; From 660d73fd888f185b31bff036298a1d405060944f Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Sun, 13 Jan 2013 06:56:58 -0800 Subject: [PATCH 14/17] Store the NIF index in the Record object --- components/nif/nif_file.cpp | 11 +++++------ components/nif/record.hpp | 3 ++- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/components/nif/nif_file.cpp b/components/nif/nif_file.cpp index 3db34e0cc..6b024ab68 100644 --- a/components/nif/nif_file.cpp +++ b/components/nif/nif_file.cpp @@ -39,9 +39,8 @@ //#include //#include -using namespace std; -using namespace Nif; -using namespace Misc; +namespace Nif +{ class NIFFile::LoadedCache { @@ -311,6 +310,7 @@ void NIFFile::parse() assert(r != NULL); assert(r->recType != RC_MISSING); r->recName = rec; + r->recIndex = i; records[i] = r; r->read(this); @@ -329,9 +329,6 @@ void NIFFile::parse() tree, but for the moment we ignore it. */ - // TODO: Set up kf file here first, if applicable. It needs its own - // code to link it up with the main NIF structure. - // Once parsing is done, do post-processing. for(int i=0; ipost(this); @@ -375,3 +372,5 @@ Ogre::Matrix4 Node::getWorldTransform() const return parent->getWorldTransform() * getLocalTransform(); return getLocalTransform(); } + +} diff --git a/components/nif/record.hpp b/components/nif/record.hpp index 5c4141fa9..d5f65e83a 100644 --- a/components/nif/record.hpp +++ b/components/nif/record.hpp @@ -91,8 +91,9 @@ struct Record // Record type and type name int recType; std::string recName; + size_t recIndex; - Record() : recType(RC_MISSING) {} + Record() : recType(RC_MISSING), recIndex(~(size_t)0) {} /// Parses the record from file virtual void read(NIFFile *nif) = 0; From b23fcb260cc75aebd5f6f27485320e14e78c3d1c Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Sun, 13 Jan 2013 08:00:04 -0800 Subject: [PATCH 15/17] Use the record index for finding the NiTriShape instead of the name --- components/nif/nif_file.cpp | 6 ++--- components/nif/nif_file.hpp | 2 +- components/nifogre/ogre_nif_loader.cpp | 32 +++++++++++++++----------- 3 files changed, 22 insertions(+), 18 deletions(-) diff --git a/components/nif/nif_file.cpp b/components/nif/nif_file.cpp index 6b024ab68..e6d3182ed 100644 --- a/components/nif/nif_file.cpp +++ b/components/nif/nif_file.cpp @@ -206,7 +206,7 @@ void NIFFile::parse() fail("Unsupported NIF version"); // Number of records - int recNum = getInt(); + size_t recNum = getInt(); records.resize(recNum); /* The format for 10.0.1.0 seems to be a bit different. After the @@ -218,7 +218,7 @@ void NIFFile::parse() we do not support or plan to support other versions yet. */ - for(int i=0;ipost(this); } diff --git a/components/nif/nif_file.hpp b/components/nif/nif_file.hpp index ded3f7362..e8884cd4d 100644 --- a/components/nif/nif_file.hpp +++ b/components/nif/nif_file.hpp @@ -146,7 +146,7 @@ public: } /// Number of records - int numRecords() { return records.size(); } + size_t numRecords() { return records.size(); } /************************************************* Parser functions diff --git a/components/nifogre/ogre_nif_loader.cpp b/components/nifogre/ogre_nif_loader.cpp index 777deabdf..dfbc93ee9 100644 --- a/components/nifogre/ogre_nif_loader.cpp +++ b/components/nifogre/ogre_nif_loader.cpp @@ -695,9 +695,10 @@ class NIFMeshLoader : Ogre::ManualResourceLoader { std::string mName; std::string mGroup; - std::string mShapeName; - std::string mMaterialName; + size_t mShapeIndex; std::string mSkelName; + std::string mMaterialName; + std::string mShapeName; void warn(const std::string &msg) { @@ -805,7 +806,8 @@ class NIFMeshLoader : Ogre::ManualResourceLoader Ogre::VertexDeclaration *decl; int nextBuf = 0; - Ogre::SubMesh *sub = mesh->createSubMesh(shape->name); + Ogre::SubMesh *sub = ((mShapeName.length() > 0) ? mesh->createSubMesh(mShapeName) : + mesh->createSubMesh()); // Add vertices sub->useSharedVertices = false; @@ -912,13 +914,13 @@ class NIFMeshLoader : Ogre::ManualResourceLoader bool findTriShape(Ogre::Mesh *mesh, Nif::Node const *node) { - if(node->recType == Nif::RC_NiTriShape && mShapeName == node->name) + if(node->recType == Nif::RC_NiTriShape && mShapeIndex == node->recIndex) { - handleNiTriShape(mesh, dynamic_cast(node)); + handleNiTriShape(mesh, dynamic_cast(node)); return true; } - Nif::NiNode const *ninode = dynamic_cast(node); + const Nif::NiNode *ninode = dynamic_cast(node); if(ninode) { Nif::NodeList const &children = ninode->children; @@ -942,7 +944,7 @@ public: NIFMeshLoader() { } NIFMeshLoader(const std::string &name, const std::string &group, const std::string skelName) - : mName(name), mGroup(group), mSkelName(skelName) + : mName(name), mGroup(group), mShapeIndex(~(size_t)0), mSkelName(skelName) { } virtual void loadResource(Ogre::Resource *resource) @@ -950,15 +952,14 @@ public: Ogre::Mesh *mesh = dynamic_cast(resource); assert(mesh && "Attempting to load a mesh into a non-mesh resource!"); - if(!mShapeName.length()) + Nif::NIFFile::ptr nif = Nif::NIFFile::create(mName); + if(mShapeIndex >= nif->numRecords()) { - if(mSkelName.length() > 0) - mesh->setSkeletonName(mSkelName); + mesh->setSkeletonName(mSkelName); return; } - Nif::NIFFile::ptr nif = Nif::NIFFile::create (mName); - Nif::Node const *node = dynamic_cast(nif->getRecord(0)); + Nif::Node const *node = dynamic_cast(nif->getRecord(mShapeIndex)); findTriShape(mesh, node); } @@ -999,9 +1000,12 @@ public: if(node->recType == Nif::RC_NiTriShape) { const Nif::NiTriShape *shape = dynamic_cast(node); + mShapeName = shape->name; Ogre::MeshManager &meshMgr = Ogre::MeshManager::getSingleton(); - std::string fullname = mName+"@shape="+shape->name; + std::string fullname = mName+"@index="+Ogre::StringConverter::toString(shape->recIndex); + if(mShapeName.length() > 0) + fullname += "@shape="+mShapeName; if(mSkelName.length() > 0 && mName != mSkelName) fullname += "@skel="+mSkelName; @@ -1013,7 +1017,7 @@ public: *loader = *this; if(!(flags&0x01)) // Not hidden { - loader->mShapeName = shape->name; + loader->mShapeIndex = shape->recIndex; loader->mMaterialName = NIFMaterialLoader::getMaterial(shape, fullname, mGroup); } From aa514a53d998462695256aa121e77df0a03cc67e Mon Sep 17 00:00:00 2001 From: lazydev Date: Tue, 15 Jan 2013 02:22:14 +0400 Subject: [PATCH 16/17] Console font change to provide possibility to show cyrillic symbols --- Bitstream Vera License.txt | 123 ------------------------------ Dejavu_lgc_font_license.txt | 99 ++++++++++++++++++++++++ credits.txt | 4 +- files/mygui/CMakeLists.txt | 2 +- files/mygui/DejaVuLGCSansMono.ttf | Bin 0 -> 285304 bytes files/mygui/VeraMono.ttf | Bin 49224 -> 0 bytes files/mygui/openmw_font.xml | 2 +- 7 files changed, 103 insertions(+), 127 deletions(-) delete mode 100644 Bitstream Vera License.txt create mode 100644 Dejavu_lgc_font_license.txt create mode 100644 files/mygui/DejaVuLGCSansMono.ttf delete mode 100644 files/mygui/VeraMono.ttf diff --git a/Bitstream Vera License.txt b/Bitstream Vera License.txt deleted file mode 100644 index 2b37cc1df..000000000 --- a/Bitstream Vera License.txt +++ /dev/null @@ -1,123 +0,0 @@ -Bitstream Vera Fonts Copyright - -The fonts have a generous copyright, allowing derivative works (as -long as "Bitstream" or "Vera" are not in the names), and full -redistribution (so long as they are not *sold* by themselves). They -can be be bundled, redistributed and sold with any software. - -The fonts are distributed under the following copyright: - -Copyright -========= - -Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream -Vera is a trademark of Bitstream, Inc. - -Permission is hereby granted, free of charge, to any person obtaining -a copy of the fonts accompanying this license ("Fonts") and associated -documentation files (the "Font Software"), to reproduce and distribute -the Font Software, including without limitation the rights to use, -copy, merge, publish, distribute, and/or sell copies of the Font -Software, and to permit persons to whom the Font Software is furnished -to do so, subject to the following conditions: - -The above copyright and trademark notices and this permission notice -shall be included in all copies of one or more of the Font Software -typefaces. - -The Font Software may be modified, altered, or added to, and in -particular the designs of glyphs or characters in the Fonts may be -modified and additional glyphs or characters may be added to the -Fonts, only if the fonts are renamed to names not containing either -the words "Bitstream" or the word "Vera". - -This License becomes null and void to the extent applicable to Fonts -or Font Software that has been modified and is distributed under the -"Bitstream Vera" names. - -The Font Software may be sold as part of a larger software package but -no copy of one or more of the Font Software typefaces may be sold by -itself. - -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL -BITSTREAM OR THE GNOME FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR -OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, -OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT -SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE. - -Except as contained in this notice, the names of Gnome, the Gnome -Foundation, and Bitstream Inc., shall not be used in advertising or -otherwise to promote the sale, use or other dealings in this Font -Software without prior written authorization from the Gnome Foundation -or Bitstream Inc., respectively. For further information, contact: -fonts at gnome dot org. - -Copyright FAQ -============= - - 1. I don't understand the resale restriction... What gives? - - Bitstream is giving away these fonts, but wishes to ensure its - competitors can't just drop the fonts as is into a font sale system - and sell them as is. It seems fair that if Bitstream can't make money - from the Bitstream Vera fonts, their competitors should not be able to - do so either. You can sell the fonts as part of any software package, - however. - - 2. I want to package these fonts separately for distribution and - sale as part of a larger software package or system. Can I do so? - - Yes. A RPM or Debian package is a "larger software package" to begin - with, and you aren't selling them independently by themselves. - See 1. above. - - 3. Are derivative works allowed? - Yes! - - 4. Can I change or add to the font(s)? - Yes, but you must change the name(s) of the font(s). - - 5. Under what terms are derivative works allowed? - - You must change the name(s) of the fonts. This is to ensure the - quality of the fonts, both to protect Bitstream and Gnome. We want to - ensure that if an application has opened a font specifically of these - names, it gets what it expects (though of course, using fontconfig, - substitutions could still could have occurred during font - opening). You must include the Bitstream copyright. Additional - copyrights can be added, as per copyright law. Happy Font Hacking! - - 6. If I have improvements for Bitstream Vera, is it possible they might get - adopted in future versions? - - Yes. The contract between the Gnome Foundation and Bitstream has - provisions for working with Bitstream to ensure quality additions to - the Bitstream Vera font family. Please contact us if you have such - additions. Note, that in general, we will want such additions for the - entire family, not just a single font, and that you'll have to keep - both Gnome and Jim Lyles, Vera's designer, happy! To make sense to add - glyphs to the font, they must be stylistically in keeping with Vera's - design. Vera cannot become a "ransom note" font. Jim Lyles will be - providing a document describing the design elements used in Vera, as a - guide and aid for people interested in contributing to Vera. - - 7. I want to sell a software package that uses these fonts: Can I do so? - - Sure. Bundle the fonts with your software and sell your software - with the fonts. That is the intent of the copyright. - - 8. If applications have built the names "Bitstream Vera" into them, - can I override this somehow to use fonts of my choosing? - - This depends on exact details of the software. Most open source - systems and software (e.g., Gnome, KDE, etc.) are now converting to - use fontconfig (see www.fontconfig.org) to handle font configuration, - selection and substitution; it has provisions for overriding font - names and subsituting alternatives. An example is provided by the - supplied local.conf file, which chooses the family Bitstream Vera for - "sans", "serif" and "monospace". Other software (e.g., the XFree86 - core server) has other mechanisms for font substitution. diff --git a/Dejavu_lgc_font_license.txt b/Dejavu_lgc_font_license.txt new file mode 100644 index 000000000..254e2cc42 --- /dev/null +++ b/Dejavu_lgc_font_license.txt @@ -0,0 +1,99 @@ +Fonts are (c) Bitstream (see below). DejaVu changes are in public domain. +Glyphs imported from Arev fonts are (c) Tavmjong Bah (see below) + +Bitstream Vera Fonts Copyright +------------------------------ + +Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is +a trademark of Bitstream, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of the fonts accompanying this license ("Fonts") and associated +documentation files (the "Font Software"), to reproduce and distribute the +Font Software, including without limitation the rights to use, copy, merge, +publish, distribute, and/or sell copies of the Font Software, and to permit +persons to whom the Font Software is furnished to do so, subject to the +following conditions: + +The above copyright and trademark notices and this permission notice shall +be included in all copies of one or more of the Font Software typefaces. + +The Font Software may be modified, altered, or added to, and in particular +the designs of glyphs or characters in the Fonts may be modified and +additional glyphs or characters may be added to the Fonts, only if the fonts +are renamed to names not containing either the words "Bitstream" or the word +"Vera". + +This License becomes null and void to the extent applicable to Fonts or Font +Software that has been modified and is distributed under the "Bitstream +Vera" names. + +The Font Software may be sold as part of a larger software package but no +copy of one or more of the Font Software typefaces may be sold by itself. + +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, +TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BITSTREAM OR THE GNOME +FOUNDATION BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING +ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE +FONT SOFTWARE. + +Except as contained in this notice, the names of Gnome, the Gnome +Foundation, and Bitstream Inc., shall not be used in advertising or +otherwise to promote the sale, use or other dealings in this Font Software +without prior written authorization from the Gnome Foundation or Bitstream +Inc., respectively. For further information, contact: fonts at gnome dot +org. + +Arev Fonts Copyright +------------------------------ + +Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the fonts accompanying this license ("Fonts") and +associated documentation files (the "Font Software"), to reproduce +and distribute the modifications to the Bitstream Vera Font Software, +including without limitation the rights to use, copy, merge, publish, +distribute, and/or sell copies of the Font Software, and to permit +persons to whom the Font Software is furnished to do so, subject to +the following conditions: + +The above copyright and trademark notices and this permission notice +shall be included in all copies of one or more of the Font Software +typefaces. + +The Font Software may be modified, altered, or added to, and in +particular the designs of glyphs or characters in the Fonts may be +modified and additional glyphs or characters may be added to the +Fonts, only if the fonts are renamed to names not containing either +the words "Tavmjong Bah" or the word "Arev". + +This License becomes null and void to the extent applicable to Fonts +or Font Software that has been modified and is distributed under the +"Tavmjong Bah Arev" names. + +The Font Software may be sold as part of a larger software package but +no copy of one or more of the Font Software typefaces may be sold by +itself. + +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL +TAVMJONG BAH BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. + +Except as contained in this notice, the name of Tavmjong Bah shall not +be used in advertising or otherwise to promote the sale, use or other +dealings in this Font Software without prior written authorization +from Tavmjong Bah. For further information, contact: tavmjong @ free +. fr. + +$Id: LICENSE 2133 2007-11-28 02:46:28Z lechimp $ diff --git a/credits.txt b/credits.txt index e1905c88b..878cbf915 100644 --- a/credits.txt +++ b/credits.txt @@ -118,5 +118,5 @@ for the open-source EB Garamond fontface. Thanks to Dongle, for his Daedric fontface, see Daedric Font License.txt for his license terms. -Thanks to Bitstream Inc. -for their Bitstream Vera fontface, see Bitstream Vera License.txt for their license terms. +Thanks to DejaVu team, +for their DejaVuLGCSansMono fontface, see Dejavu_lgc_font_license.txt for their license terms. diff --git a/files/mygui/CMakeLists.txt b/files/mygui/CMakeLists.txt index 871be93d1..e7e5b695e 100644 --- a/files/mygui/CMakeLists.txt +++ b/files/mygui/CMakeLists.txt @@ -80,7 +80,7 @@ set(MYGUI_FILES openmw_travel_window.layout openmw_persuasion_dialog.layout smallbars.png - VeraMono.ttf + DejaVuLGCSansMono.ttf markers.png ) diff --git a/files/mygui/DejaVuLGCSansMono.ttf b/files/mygui/DejaVuLGCSansMono.ttf new file mode 100644 index 0000000000000000000000000000000000000000..80c45b73e9d1d8990a842ca3688579a403556bce GIT binary patch literal 285304 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%0AN*c~gCA(Zc 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 z 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

uYxJ5{X7bTeTCsDbrNs8` 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 XH2;!U?0EYBKmT3y|9Drv@uGhLW8jS} literal 0 HcmV?d00001 diff --git a/files/mygui/VeraMono.ttf b/files/mygui/VeraMono.ttf deleted file mode 100644 index 139f0b4311ad2e0369a347b3be6c46e6c2b730d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49224 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 diff --git a/files/mygui/openmw_font.xml b/files/mygui/openmw_font.xml index cb5dd648f..0383c9942 100644 --- a/files/mygui/openmw_font.xml +++ b/files/mygui/openmw_font.xml @@ -35,7 +35,7 @@ - + From 30534404621cdce5ee9c04e027345af2a4a310ae Mon Sep 17 00:00:00 2001 From: Marc Zinnschlag Date: Tue, 15 Jan 2013 12:40:44 +0100 Subject: [PATCH 17/17] Issue #539: fixed AiWander --- apps/openmw/mwscript/aiextensions.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/openmw/mwscript/aiextensions.cpp b/apps/openmw/mwscript/aiextensions.cpp index 35243533c..8402a5b4c 100644 --- a/apps/openmw/mwscript/aiextensions.cpp +++ b/apps/openmw/mwscript/aiextensions.cpp @@ -181,10 +181,14 @@ namespace MWScript runtime.pop(); std::vector idleList; - for (unsigned int i=0; i