Merge pull request #203 from OpenMW/master

Add OpenMW commits up to 21 Apr 2017, part 2
pull/176/merge
David Cernat 8 years ago committed by GitHub
commit a5484d237b

@ -50,7 +50,7 @@ namespace MWBase
virtual void goodbye() = 0; virtual void goodbye() = 0;
virtual void say(const MWWorld::Ptr &actor, const std::string &topic) const = 0; virtual void say(const MWWorld::Ptr &actor, const std::string &topic) = 0;
//calbacks for the GUI //calbacks for the GUI
virtual void keywordSelected (const std::string& keyword) = 0; virtual void keywordSelected (const std::string& keyword) = 0;

@ -183,7 +183,7 @@ namespace MWDialogue
MWScript::InterpreterContext interpreterContext(&mActor.getRefData().getLocals(),mActor); MWScript::InterpreterContext interpreterContext(&mActor.getRefData().getLocals(),mActor);
win->addResponse (Interpreter::fixDefinesDialog(info->mResponse, interpreterContext)); win->addResponse (Interpreter::fixDefinesDialog(info->mResponse, interpreterContext));
executeScript (info->mResultScript); executeScript (info->mResultScript, mActor);
mLastTopic = Misc::StringUtils::lowerCase(it->mId); mLastTopic = Misc::StringUtils::lowerCase(it->mId);
// update topics again to accommodate changes resulting from executeScript // update topics again to accommodate changes resulting from executeScript
@ -202,7 +202,7 @@ namespace MWDialogue
MWBase::Environment::get().getWindowManager()->showCompanionWindow(mActor); MWBase::Environment::get().getWindowManager()->showCompanionWindow(mActor);
} }
bool DialogueManager::compile (const std::string& cmd,std::vector<Interpreter::Type_Code>& code) bool DialogueManager::compile (const std::string& cmd, std::vector<Interpreter::Type_Code>& code, const MWWorld::Ptr& actor)
{ {
bool success = true; bool success = true;
@ -218,7 +218,7 @@ namespace MWDialogue
Compiler::Locals locals; Compiler::Locals locals;
std::string actorScript = mActor.getClass().getScript (mActor); std::string actorScript = actor.getClass().getScript (actor);
if (!actorScript.empty()) if (!actorScript.empty())
{ {
@ -258,14 +258,14 @@ namespace MWDialogue
return success; return success;
} }
void DialogueManager::executeScript (const std::string& script) void DialogueManager::executeScript (const std::string& script, const MWWorld::Ptr& actor)
{ {
std::vector<Interpreter::Type_Code> code; std::vector<Interpreter::Type_Code> code;
if(compile(script,code)) if(compile(script, code, actor))
{ {
try try
{ {
MWScript::InterpreterContext interpreterContext(&mActor.getRefData().getLocals(),mActor); MWScript::InterpreterContext interpreterContext(&actor.getRefData().getLocals(), actor);
Interpreter::Interpreter interpreter; Interpreter::Interpreter interpreter;
MWScript::installOpcodes (interpreter); MWScript::installOpcodes (interpreter);
interpreter.run (&code[0], code.size(), interpreterContext); interpreter.run (&code[0], code.size(), interpreterContext);
@ -329,7 +329,7 @@ namespace MWDialogue
} }
} }
executeScript (info->mResultScript); executeScript (info->mResultScript, mActor);
mLastTopic = topic; mLastTopic = topic;
} }
@ -512,7 +512,7 @@ namespace MWDialogue
} }
} }
executeScript (info->mResultScript); executeScript (info->mResultScript, mActor);
} }
else else
{ {
@ -630,13 +630,13 @@ namespace MWDialogue
win->addResponse (Interpreter::fixDefinesDialog(info->mResponse, interpreterContext), win->addResponse (Interpreter::fixDefinesDialog(info->mResponse, interpreterContext),
gmsts.find ("sServiceRefusal")->getString()); gmsts.find ("sServiceRefusal")->getString());
executeScript (info->mResultScript); executeScript (info->mResultScript, mActor);
return true; return true;
} }
return false; return false;
} }
void DialogueManager::say(const MWWorld::Ptr &actor, const std::string &topic) const void DialogueManager::say(const MWWorld::Ptr &actor, const std::string &topic)
{ {
MWBase::SoundManager *sndMgr = MWBase::Environment::get().getSoundManager(); MWBase::SoundManager *sndMgr = MWBase::Environment::get().getSoundManager();
if(!sndMgr->sayDone(actor)) if(!sndMgr->sayDone(actor))
@ -675,6 +675,9 @@ namespace MWDialogue
End of tes3mp addition End of tes3mp addition
*/ */
} }
if (!info->mResultScript.empty())
executeScript(info->mResultScript, actor);
} }
int DialogueManager::countSavedGameRecords() const int DialogueManager::countSavedGameRecords() const

@ -51,8 +51,8 @@ namespace MWDialogue
void updateTopics(); void updateTopics();
void updateGlobals(); void updateGlobals();
bool compile (const std::string& cmd,std::vector<Interpreter::Type_Code>& code); bool compile (const std::string& cmd, std::vector<Interpreter::Type_Code>& code, const MWWorld::Ptr& actor);
void executeScript (const std::string& script); void executeScript (const std::string& script, const MWWorld::Ptr& actor);
void executeTopic (const std::string& topic); void executeTopic (const std::string& topic);
@ -74,7 +74,7 @@ namespace MWDialogue
virtual bool checkServiceRefused (); virtual bool checkServiceRefused ();
virtual void say(const MWWorld::Ptr &actor, const std::string &topic) const; virtual void say(const MWWorld::Ptr &actor, const std::string &topic);
//calbacks for the GUI //calbacks for the GUI
virtual void keywordSelected (const std::string& keyword); virtual void keywordSelected (const std::string& keyword);

@ -246,8 +246,8 @@ namespace MWGui
mReviewDialog->setBirthSign(player.getBirthSign()); mReviewDialog->setBirthSign(player.getBirthSign());
{ {
MWWorld::Ptr player = MWMechanics::getPlayer(); MWWorld::Ptr playerPtr = MWMechanics::getPlayer();
const MWMechanics::CreatureStats& stats = player.getClass().getCreatureStats(player); const MWMechanics::CreatureStats& stats = playerPtr.getClass().getCreatureStats(playerPtr);
mReviewDialog->setHealth ( stats.getHealth() ); mReviewDialog->setHealth ( stats.getHealth() );
mReviewDialog->setMagicka( stats.getMagicka() ); mReviewDialog->setMagicka( stats.getMagicka() );

@ -450,6 +450,8 @@ namespace MWGui
void InventoryWindow::onPinToggled() void InventoryWindow::onPinToggled()
{ {
Settings::Manager::setBool("inventory pin", "Windows", mPinned);
MWBase::Environment::get().getWindowManager()->setWeaponVisibility(!mPinned); MWBase::Environment::get().getWindowManager()->setWeaponVisibility(!mPinned);
} }

@ -646,7 +646,7 @@ namespace MWGui
, mGlobalMap(0) , mGlobalMap(0)
, mGlobalMapImage(NULL) , mGlobalMapImage(NULL)
, mGlobalMapOverlay(NULL) , mGlobalMapOverlay(NULL)
, mGlobal(false) , mGlobal(Settings::Manager::getBool("global", "Map"))
, mEventBoxGlobal(NULL) , mEventBoxGlobal(NULL)
, mEventBoxLocal(NULL) , mEventBoxLocal(NULL)
, mGlobalMapRender(new MWRender::GlobalMap(localMapRender->getRoot(), workQueue)) , mGlobalMapRender(new MWRender::GlobalMap(localMapRender->getRoot(), workQueue))
@ -684,7 +684,7 @@ namespace MWGui
getWidget(mButton, "WorldButton"); getWidget(mButton, "WorldButton");
mButton->eventMouseButtonClick += MyGUI::newDelegate(this, &MapWindow::onWorldButtonClicked); mButton->eventMouseButtonClick += MyGUI::newDelegate(this, &MapWindow::onWorldButtonClicked);
mButton->setCaptionWithReplacing("#{sWorld}"); mButton->setCaptionWithReplacing( mGlobal ? "#{sLocal}" : "#{sWorld}");
getWidget(mEventBoxGlobal, "EventBoxGlobal"); getWidget(mEventBoxGlobal, "EventBoxGlobal");
mEventBoxGlobal->eventMouseDrag += MyGUI::newDelegate(this, &MapWindow::onMouseDrag); mEventBoxGlobal->eventMouseDrag += MyGUI::newDelegate(this, &MapWindow::onMouseDrag);
@ -697,6 +697,9 @@ namespace MWGui
mEventBoxLocal->eventMouseButtonDoubleClick += MyGUI::newDelegate(this, &MapWindow::onMapDoubleClicked); mEventBoxLocal->eventMouseButtonDoubleClick += MyGUI::newDelegate(this, &MapWindow::onMapDoubleClicked);
LocalMapBase::init(mLocalMap, mPlayerArrowLocal, Settings::Manager::getInt("local map widget size", "Map"), Settings::Manager::getInt("local map cell distance", "Map")); LocalMapBase::init(mLocalMap, mPlayerArrowLocal, Settings::Manager::getInt("local map widget size", "Map"), Settings::Manager::getInt("local map cell distance", "Map"));
mGlobalMap->setVisible(mGlobal);
mLocalMap->setVisible(!mGlobal);
} }
void MapWindow::onNoteEditOk() void MapWindow::onNoteEditOk()
@ -794,7 +797,7 @@ namespace MWGui
void MapWindow::setVisible(bool visible) void MapWindow::setVisible(bool visible)
{ {
WindowBase::setVisible(visible); WindowBase::setVisible(visible);
mButton->setVisible(visible && MWBase::Environment::get().getWindowManager()->isGuiMode()); mButton->setVisible(visible && MWBase::Environment::get().getWindowManager()->getMode() != MWGui::GM_None);
} }
void MapWindow::renderGlobalMap() void MapWindow::renderGlobalMap()
@ -935,6 +938,8 @@ namespace MWGui
mGlobalMap->setVisible(mGlobal); mGlobalMap->setVisible(mGlobal);
mLocalMap->setVisible(!mGlobal); mLocalMap->setVisible(!mGlobal);
Settings::Manager::setBool("global", "Map", mGlobal);
mButton->setCaptionWithReplacing( mGlobal ? "#{sLocal}" : mButton->setCaptionWithReplacing( mGlobal ? "#{sLocal}" :
"#{sWorld}"); "#{sWorld}");
@ -944,6 +949,8 @@ namespace MWGui
void MapWindow::onPinToggled() void MapWindow::onPinToggled()
{ {
Settings::Manager::setBool("map pin", "Windows", mPinned);
MWBase::Environment::get().getWindowManager()->setMinimapVisibility(!mPinned); MWBase::Environment::get().getWindowManager()->setMinimapVisibility(!mPinned);
} }

@ -7,6 +7,7 @@
#include <MyGUI_ImageBox.h> #include <MyGUI_ImageBox.h>
#include <MyGUI_ListBox.h> #include <MyGUI_ListBox.h>
#include <MyGUI_InputManager.h> #include <MyGUI_InputManager.h>
#include <MyGUI_LanguageManager.h>
#include <osgDB/ReadFile> #include <osgDB/ReadFile>
#include <osg/Texture2D> #include <osg/Texture2D>
@ -168,9 +169,9 @@ namespace MWGui
className = "?"; // From an older savegame format that did not support custom classes properly. className = "?"; // From an older savegame format that did not support custom classes properly.
} }
title << " (Level " << it->getSignature().mPlayerLevel << " " << className << ")"; title << " (#{sLevel} " << it->getSignature().mPlayerLevel << " " << MyGUI::TextIterator::toTagsString(className) << ")";
mCharacterSelection->addItem (title.str()); mCharacterSelection->addItem (MyGUI::LanguageManager::getInstance().replaceTags(title.str()));
if (mCurrentCharacter == &*it || if (mCurrentCharacter == &*it ||
(!mCurrentCharacter && !mSaving && directory==Misc::StringUtils::lowerCase ( (!mCurrentCharacter && !mSaving && directory==Misc::StringUtils::lowerCase (

@ -4,6 +4,8 @@
#include <MyGUI_InputManager.h> #include <MyGUI_InputManager.h>
#include <components/settings/settings.hpp>
#include "../mwbase/windowmanager.hpp" #include "../mwbase/windowmanager.hpp"
#include "../mwbase/environment.hpp" #include "../mwbase/environment.hpp"
#include "../mwbase/world.hpp" #include "../mwbase/world.hpp"
@ -51,6 +53,8 @@ namespace MWGui
void SpellWindow::onPinToggled() void SpellWindow::onPinToggled()
{ {
Settings::Manager::setBool("spells pin", "Windows", mPinned);
MWBase::Environment::get().getWindowManager()->setSpellVisibility(!mPinned); MWBase::Environment::get().getWindowManager()->setSpellVisibility(!mPinned);
} }

@ -6,6 +6,8 @@
#include <MyGUI_ImageBox.h> #include <MyGUI_ImageBox.h>
#include <MyGUI_Gui.h> #include <MyGUI_Gui.h>
#include <components/settings/settings.hpp>
#include "../mwbase/environment.hpp" #include "../mwbase/environment.hpp"
#include "../mwbase/world.hpp" #include "../mwbase/world.hpp"
#include "../mwbase/windowmanager.hpp" #include "../mwbase/windowmanager.hpp"
@ -672,6 +674,8 @@ namespace MWGui
void StatsWindow::onPinToggled() void StatsWindow::onPinToggled()
{ {
Settings::Manager::setBool("stats pin", "Windows", mPinned);
MWBase::Environment::get().getWindowManager()->setHMSVisibility(!mPinned); MWBase::Environment::get().getWindowManager()->setHMSVisibility(!mPinned);
} }

@ -372,6 +372,8 @@ namespace MWGui
mPlayerSkillValues.insert(std::make_pair(ESM::Skill::sSkillIds[i], MWMechanics::SkillValue())); mPlayerSkillValues.insert(std::make_pair(ESM::Skill::sSkillIds[i], MWMechanics::SkillValue()));
} }
updatePinnedWindows();
// Set up visibility // Set up visibility
updateVisible(); updateVisible();
@ -549,14 +551,14 @@ namespace MWGui
setSpellVisibility((mAllowed & GW_Magic) && (!mSpellWindow->pinned() || (mForceHidden & GW_Magic))); setSpellVisibility((mAllowed & GW_Magic) && (!mSpellWindow->pinned() || (mForceHidden & GW_Magic)));
setHMSVisibility((mAllowed & GW_Stats) && (!mStatsWindow->pinned() || (mForceHidden & GW_Stats))); setHMSVisibility((mAllowed & GW_Stats) && (!mStatsWindow->pinned() || (mForceHidden & GW_Stats)));
// If in game mode, show only the pinned windows // If in game mode (or interactive messagebox), show only the pinned windows
if (gameMode) if (mGuiModes.empty())
{ {
mInventoryWindow->setGuiMode(GM_None); mInventoryWindow->setGuiMode(GM_None);
mMap->setVisible(mMap->pinned() && !(mForceHidden & GW_Map)); mMap->setVisible(mMap->pinned() && !(mForceHidden & GW_Map) && (mAllowed & GW_Map));
mStatsWindow->setVisible(mStatsWindow->pinned() && !(mForceHidden & GW_Stats)); mStatsWindow->setVisible(mStatsWindow->pinned() && !(mForceHidden & GW_Stats) && (mAllowed & GW_Stats));
mInventoryWindow->setVisible(mInventoryWindow->pinned() && !(mForceHidden & GW_Inventory)); mInventoryWindow->setVisible(mInventoryWindow->pinned() && !(mForceHidden & GW_Inventory) && (mAllowed & GW_Inventory));
mSpellWindow->setVisible(mSpellWindow->pinned() && !(mForceHidden & GW_Magic)); mSpellWindow->setVisible(mSpellWindow->pinned() && !(mForceHidden & GW_Magic) && (mAllowed & GW_Magic));
return; return;
} }
@ -1857,6 +1859,17 @@ namespace MWGui
mVideoWidget->stop(); mVideoWidget->stop();
} }
void WindowManager::updatePinnedWindows()
{
mInventoryWindow->setPinned(Settings::Manager::getBool("inventory pin", "Windows"));
mMap->setPinned(Settings::Manager::getBool("map pin", "Windows"));
mSpellWindow->setPinned(Settings::Manager::getBool("spells pin", "Windows"));
mStatsWindow->setPinned(Settings::Manager::getBool("stats pin", "Windows"));
}
void WindowManager::pinWindow(GuiWindow window) void WindowManager::pinWindow(GuiWindow window)
{ {
switch (window) switch (window)

@ -539,6 +539,8 @@ namespace MWGui
void createTextures(); void createTextures();
void createCursors(); void createCursors();
void setMenuTransparency(float value); void setMenuTransparency(float value);
void updatePinnedWindows();
}; };
} }

@ -93,7 +93,7 @@ class CheckActorCommanded : public MWMechanics::EffectSourceVisitor
MWWorld::Ptr mActor; MWWorld::Ptr mActor;
public: public:
bool mCommanded; bool mCommanded;
CheckActorCommanded(MWWorld::Ptr actor) CheckActorCommanded(const MWWorld::Ptr& actor)
: mActor(actor) : mActor(actor)
, mCommanded(false){} , mCommanded(false){}
@ -129,9 +129,7 @@ void adjustCommandedActor (const MWWorld::Ptr& actor)
} }
if (!check.mCommanded && hasCommandPackage) if (!check.mCommanded && hasCommandPackage)
{
stats.getAiSequence().erase(it); stats.getAiSequence().erase(it);
}
} }
void getRestorationPerHourOfSleep (const MWWorld::Ptr& ptr, float& health, float& magicka) void getRestorationPerHourOfSleep (const MWWorld::Ptr& ptr, float& health, float& magicka)
@ -166,7 +164,7 @@ namespace MWMechanics
MWWorld::Ptr mActor; MWWorld::Ptr mActor;
bool mTrapped; bool mTrapped;
public: public:
SoulTrap(MWWorld::Ptr trappedCreature) SoulTrap(const MWWorld::Ptr& trappedCreature)
: mCreature(trappedCreature) : mCreature(trappedCreature)
, mTrapped(false) , mTrapped(false)
{ {
@ -738,15 +736,7 @@ namespace MWMechanics
// any value of calm > 0 will stop the actor from fighting // any value of calm > 0 will stop the actor from fighting
if ((effects.get(ESM::MagicEffect::CalmHumanoid).getMagnitude() > 0 && ptr.getClass().isNpc()) if ((effects.get(ESM::MagicEffect::CalmHumanoid).getMagnitude() > 0 && ptr.getClass().isNpc())
|| (effects.get(ESM::MagicEffect::CalmCreature).getMagnitude() > 0 && !ptr.getClass().isNpc())) || (effects.get(ESM::MagicEffect::CalmCreature).getMagnitude() > 0 && !ptr.getClass().isNpc()))
{ creatureStats.getAiSequence().stopCombat();
for (std::list<AiPackage*>::const_iterator it = creatureStats.getAiSequence().begin(); it != creatureStats.getAiSequence().end(); )
{
if ((*it)->getTypeId() == AiPackage::TypeIdCombat)
it = creatureStats.getAiSequence().erase(it);
else
++it;
}
}
// Update bound effects // Update bound effects
// Note: in vanilla MW multiple bound items of the same type can be created by different spells. // Note: in vanilla MW multiple bound items of the same type can be created by different spells.
@ -835,7 +825,7 @@ namespace MWMechanics
NpcStats &stats = ptr.getClass().getNpcStats(ptr); NpcStats &stats = ptr.getClass().getNpcStats(ptr);
// When npc stats are just initialized, mTimeToStartDrowning == -1 and we should get value from GMST // When npc stats are just initialized, mTimeToStartDrowning == -1 and we should get value from GMST
static const int fHoldBreathTime = MWBase::Environment::get().getWorld()->getStore().get<ESM::GameSetting>().find("fHoldBreathTime")->getFloat(); static const float fHoldBreathTime = MWBase::Environment::get().getWorld()->getStore().get<ESM::GameSetting>().find("fHoldBreathTime")->getFloat();
if (stats.getTimeToStartDrowning() == -1.f) if (stats.getTimeToStartDrowning() == -1.f)
stats.setTimeToStartDrowning(fHoldBreathTime); stats.setTimeToStartDrowning(fHoldBreathTime);
@ -875,11 +865,8 @@ namespace MWMechanics
} }
} }
else else
{
static const float fHoldBreathTime = world->getStore().get<ESM::GameSetting>().find("fHoldBreathTime")->getFloat();
stats.setTimeToStartDrowning(fHoldBreathTime); stats.setTimeToStartDrowning(fHoldBreathTime);
} }
}
void Actors::updateEquippedLight (const MWWorld::Ptr& ptr, float duration) void Actors::updateEquippedLight (const MWWorld::Ptr& ptr, float duration)
{ {

@ -96,16 +96,16 @@ std::list<AiPackage*>::const_iterator AiSequence::end() const
return mPackages.end(); return mPackages.end();
} }
std::list<AiPackage*>::const_iterator AiSequence::erase(std::list<AiPackage*>::const_iterator package) void AiSequence::erase(std::list<AiPackage*>::const_iterator package)
{ {
// Not sure if manually terminated packages should trigger mDone, probably not? // Not sure if manually terminated packages should trigger mDone, probably not?
for(std::list<AiPackage*>::iterator it = mPackages.begin(); it != mPackages.end(); ++it) for(std::list<AiPackage*>::iterator it = mPackages.begin(); it != mPackages.end(); ++it)
{ {
if (package == it) if (package == it)
{ {
AiPackage* packagePtr = *it; delete *it;
delete packagePtr; mPackages.erase(it);
return mPackages.erase(it); return;
} }
} }
throw std::runtime_error("can't find package to erase"); throw std::runtime_error("can't find package to erase");

@ -64,7 +64,7 @@ namespace MWMechanics
std::list<AiPackage*>::const_iterator begin() const; std::list<AiPackage*>::const_iterator begin() const;
std::list<AiPackage*>::const_iterator end() const; std::list<AiPackage*>::const_iterator end() const;
std::list<AiPackage*>::const_iterator erase (std::list<AiPackage*>::const_iterator package); void erase (std::list<AiPackage*>::const_iterator package);
/// Returns currently executing AiPackage type /// Returns currently executing AiPackage type
/** \see enum AiPackage::TypeId **/ /** \see enum AiPackage::TypeId **/

@ -893,7 +893,7 @@ namespace MWMechanics
storage.mAllowedNodes.push_back(PathFinder::MakePathgridPoint(vectorStart + delta)); storage.mAllowedNodes.push_back(PathFinder::MakePathgridPoint(vectorStart + delta));
} }
void AiWander::SetCurrentNodeToClosestAllowedNode(osg::Vec3f npcPos, AiWanderStorage& storage) void AiWander::SetCurrentNodeToClosestAllowedNode(const osg::Vec3f& npcPos, AiWanderStorage& storage)
{ {
float distanceToClosestNode = std::numeric_limits<float>::max(); float distanceToClosestNode = std::numeric_limits<float>::max();
unsigned int index = 0; unsigned int index = 0;

@ -122,7 +122,7 @@ namespace MWMechanics
/// convert point from local (i.e. cell) to world coordinates /// convert point from local (i.e. cell) to world coordinates
void ToWorldCoordinates(ESM::Pathgrid::Point& point, const ESM::Cell * cell); void ToWorldCoordinates(ESM::Pathgrid::Point& point, const ESM::Cell * cell);
void SetCurrentNodeToClosestAllowedNode(osg::Vec3f npcPos, AiWanderStorage& storage); void SetCurrentNodeToClosestAllowedNode(const osg::Vec3f& npcPos, AiWanderStorage& storage);
void AddNonPathGridAllowedPoints(osg::Vec3f npcPos, const ESM::Pathgrid * pathGrid, int pointIndex, AiWanderStorage& storage); void AddNonPathGridAllowedPoints(osg::Vec3f npcPos, const ESM::Pathgrid * pathGrid, int pointIndex, AiWanderStorage& storage);

@ -2347,7 +2347,7 @@ void CharacterController::setAttackingOrSpell(bool attackingOrSpell)
mAttackingOrSpell = attackingOrSpell; mAttackingOrSpell = attackingOrSpell;
} }
void CharacterController::setAIAttackType(std::string attackType) void CharacterController::setAIAttackType(const std::string& attackType)
{ {
mAttackType = attackType; mAttackType = attackType;
} }

@ -268,7 +268,7 @@ public:
bool isSneaking() const; bool isSneaking() const;
void setAttackingOrSpell(bool attackingOrSpell); void setAttackingOrSpell(bool attackingOrSpell);
void setAIAttackType(std::string attackType); // set and used by AiCombat void setAIAttackType(const std::string& attackType);
static void setAttackTypeRandomly(std::string& attackType); static void setAttackTypeRandomly(std::string& attackType);
bool readyToPrepareAttack() const; bool readyToPrepareAttack() const;

@ -21,7 +21,7 @@ namespace MWMechanics
, mSelfEnchanting(false) , mSelfEnchanting(false)
{} {}
void Enchanting::setOldItem(MWWorld::Ptr oldItem) void Enchanting::setOldItem(const MWWorld::Ptr& oldItem)
{ {
mOldItemPtr=oldItem; mOldItemPtr=oldItem;
if(!itemEmpty()) if(!itemEmpty())
@ -39,7 +39,7 @@ namespace MWMechanics
mNewItemName=s; mNewItemName=s;
} }
void Enchanting::setEffect(ESM::EffectList effectList) void Enchanting::setEffect(const ESM::EffectList& effectList)
{ {
mEffectList=effectList; mEffectList=effectList;
} }
@ -49,7 +49,7 @@ namespace MWMechanics
return mCastStyle; return mCastStyle;
} }
void Enchanting::setSoulGem(MWWorld::Ptr soulGem) void Enchanting::setSoulGem(const MWWorld::Ptr& soulGem)
{ {
mSoulGemPtr=soulGem; mSoulGemPtr=soulGem;
} }
@ -269,7 +269,7 @@ namespace MWMechanics
mSelfEnchanting = selfEnchanting; mSelfEnchanting = selfEnchanting;
} }
void Enchanting::setEnchanter(MWWorld::Ptr enchanter) void Enchanting::setEnchanter(const MWWorld::Ptr& enchanter)
{ {
mEnchanter = enchanter; mEnchanter = enchanter;
} }

@ -29,14 +29,14 @@ namespace MWMechanics
public: public:
Enchanting(); Enchanting();
void setEnchanter(MWWorld::Ptr enchanter); void setEnchanter(const MWWorld::Ptr& enchanter);
void setSelfEnchanting(bool selfEnchanting); void setSelfEnchanting(bool selfEnchanting);
void setOldItem(MWWorld::Ptr oldItem); void setOldItem(const MWWorld::Ptr& oldItem);
MWWorld::Ptr getOldItem() { return mOldItemPtr; } MWWorld::Ptr getOldItem() { return mOldItemPtr; }
MWWorld::Ptr getGem() { return mSoulGemPtr; } MWWorld::Ptr getGem() { return mSoulGemPtr; }
void setNewItemName(const std::string& s); void setNewItemName(const std::string& s);
void setEffect(ESM::EffectList effectList); void setEffect(const ESM::EffectList& effectList);
void setSoulGem(MWWorld::Ptr soulGem); void setSoulGem(const MWWorld::Ptr& soulGem);
bool create(); //Return true if created, false if failed. bool create(); //Return true if created, false if failed.
void nextCastStyle(); //Set enchant type to next possible type (for mOldItemPtr object) void nextCastStyle(); //Set enchant type to next possible type (for mOldItemPtr object)
int getCastStyle() const; int getCastStyle() const;

@ -15,7 +15,7 @@ namespace
// Chooses a reachable end pathgrid point. start is assumed reachable. // Chooses a reachable end pathgrid point. start is assumed reachable.
std::pair<int, bool> getClosestReachablePoint(const ESM::Pathgrid* grid, std::pair<int, bool> getClosestReachablePoint(const ESM::Pathgrid* grid,
const MWWorld::CellStore *cell, const MWWorld::CellStore *cell,
const osg::Vec3f pos, int start) const osg::Vec3f& pos, int start)
{ {
assert(grid && !grid->mPoints.empty()); assert(grid && !grid->mPoints.empty());

@ -794,7 +794,7 @@ namespace MWPhysics
btVector3 mContactPoint; btVector3 mContactPoint;
btScalar mLeastDistSqr; btScalar mLeastDistSqr;
DeepestNotMeContactTestResultCallback(const btCollisionObject* me, const std::vector<const btCollisionObject*> targets, const btVector3 &origin) DeepestNotMeContactTestResultCallback(const btCollisionObject* me, const std::vector<const btCollisionObject*>& targets, const btVector3 &origin)
: mMe(me), mTargets(targets), mOrigin(origin), mObject(NULL), mContactPoint(0,0,0), : mMe(me), mTargets(targets), mOrigin(origin), mObject(NULL), mContactPoint(0,0,0),
mLeastDistSqr(std::numeric_limits<float>::max()) mLeastDistSqr(std::numeric_limits<float>::max())
{ } { }
@ -912,7 +912,7 @@ namespace MWPhysics
class ClosestNotMeRayResultCallback : public btCollisionWorld::ClosestRayResultCallback class ClosestNotMeRayResultCallback : public btCollisionWorld::ClosestRayResultCallback
{ {
public: public:
ClosestNotMeRayResultCallback(const btCollisionObject* me, const std::vector<const btCollisionObject*> targets, const btVector3& from, const btVector3& to) ClosestNotMeRayResultCallback(const btCollisionObject* me, const std::vector<const btCollisionObject*>& targets, const btVector3& from, const btVector3& to)
: btCollisionWorld::ClosestRayResultCallback(from, to) : btCollisionWorld::ClosestRayResultCallback(from, to)
, mMe(me), mTargets(targets) , mMe(me), mTargets(targets)
{ {
@ -938,7 +938,7 @@ namespace MWPhysics
const std::vector<const btCollisionObject*> mTargets; const std::vector<const btCollisionObject*> mTargets;
}; };
PhysicsSystem::RayResult PhysicsSystem::castRay(const osg::Vec3f &from, const osg::Vec3f &to, MWWorld::ConstPtr ignore, std::vector<MWWorld::Ptr> targets, int mask, int group) const PhysicsSystem::RayResult PhysicsSystem::castRay(const osg::Vec3f &from, const osg::Vec3f &to, const MWWorld::ConstPtr& ignore, std::vector<MWWorld::Ptr> targets, int mask, int group) const
{ {
btVector3 btFrom = toBullet(from); btVector3 btFrom = toBullet(from);
btVector3 btTo = toBullet(to); btVector3 btTo = toBullet(to);

@ -114,7 +114,7 @@ namespace MWPhysics
}; };
/// @param me Optional, a Ptr to ignore in the list of results. targets are actors to filter for, ignoring all other actors. /// @param me Optional, a Ptr to ignore in the list of results. targets are actors to filter for, ignoring all other actors.
RayResult castRay(const osg::Vec3f &from, const osg::Vec3f &to, MWWorld::ConstPtr ignore = MWWorld::ConstPtr(), RayResult castRay(const osg::Vec3f &from, const osg::Vec3f &to, const MWWorld::ConstPtr& ignore = MWWorld::ConstPtr(),
std::vector<MWWorld::Ptr> targets = std::vector<MWWorld::Ptr>(), std::vector<MWWorld::Ptr> targets = std::vector<MWWorld::Ptr>(),
int mask = CollisionType_World|CollisionType_HeightMap|CollisionType_Actor|CollisionType_Door, int group=0xff) const; int mask = CollisionType_World|CollisionType_HeightMap|CollisionType_Actor|CollisionType_Door, int group=0xff) const;

@ -282,7 +282,7 @@ namespace MWRender
class GlowUpdater : public SceneUtil::StateSetUpdater class GlowUpdater : public SceneUtil::StateSetUpdater
{ {
public: public:
GlowUpdater(int texUnit, osg::Vec4f color, const std::vector<osg::ref_ptr<osg::Texture2D> >& textures, GlowUpdater(int texUnit, const osg::Vec4f& color, const std::vector<osg::ref_ptr<osg::Texture2D> >& textures,
osg::Node* node, float duration, Resource::ResourceSystem* resourcesystem) osg::Node* node, float duration, Resource::ResourceSystem* resourcesystem)
: mTexUnit(texUnit) : mTexUnit(texUnit)
, mColor(color) , mColor(color)
@ -383,7 +383,7 @@ namespace MWRender
return mDone; return mDone;
} }
void setColor(osg::Vec4f color) void setColor(const osg::Vec4f& color)
{ {
mColor = color; mColor = color;
mColorChanged = true; mColorChanged = true;
@ -1362,7 +1362,7 @@ namespace MWRender
useQuadratic, quadraticValue, quadraticRadiusMult, useLinear, linearRadiusMult, linearValue); useQuadratic, quadraticValue, quadraticRadiusMult, useLinear, linearRadiusMult, linearValue);
} }
void Animation::addEffect (const std::string& model, int effectId, bool loop, const std::string& bonename, std::string texture) void Animation::addEffect (const std::string& model, int effectId, bool loop, const std::string& bonename, const std::string& texture)
{ {
if (!mObjectRoot.get()) if (!mObjectRoot.get())
return; return;

@ -362,7 +362,7 @@ public:
* @param texture override the texture specified in the model's materials - if empty, do not override * @param texture override the texture specified in the model's materials - if empty, do not override
* @note Will not add an effect twice. * @note Will not add an effect twice.
*/ */
void addEffect (const std::string& model, int effectId, bool loop = false, const std::string& bonename = "", std::string texture = ""); void addEffect (const std::string& model, int effectId, bool loop = false, const std::string& bonename = "", const std::string& texture = "");
void removeEffect (int effectId); void removeEffect (int effectId);
void getLoopingEffects (std::vector<int>& out) const; void getLoopingEffects (std::vector<int>& out) const;

@ -105,7 +105,7 @@ namespace MWRender
}; };
CharacterPreview::CharacterPreview(osg::Group* parent, Resource::ResourceSystem* resourceSystem, CharacterPreview::CharacterPreview(osg::Group* parent, Resource::ResourceSystem* resourceSystem,
MWWorld::Ptr character, int sizeX, int sizeY, const osg::Vec3f& position, const osg::Vec3f& lookAt) const MWWorld::Ptr& character, int sizeX, int sizeY, const osg::Vec3f& position, const osg::Vec3f& lookAt)
: mParent(parent) : mParent(parent)
, mResourceSystem(resourceSystem) , mResourceSystem(resourceSystem)
, mPosition(position) , mPosition(position)
@ -244,7 +244,7 @@ namespace MWRender
// -------------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------------
InventoryPreview::InventoryPreview(osg::Group* parent, Resource::ResourceSystem* resourceSystem, MWWorld::Ptr character) InventoryPreview::InventoryPreview(osg::Group* parent, Resource::ResourceSystem* resourceSystem, const MWWorld::Ptr& character)
: CharacterPreview(parent, resourceSystem, character, 512, 1024, osg::Vec3f(0, 700, 71), osg::Vec3f(0,0,71)) : CharacterPreview(parent, resourceSystem, character, 512, 1024, osg::Vec3f(0, 700, 71), osg::Vec3f(0,0,71))
{ {
} }

@ -28,7 +28,7 @@ namespace MWRender
class CharacterPreview class CharacterPreview
{ {
public: public:
CharacterPreview(osg::Group* parent, Resource::ResourceSystem* resourceSystem, MWWorld::Ptr character, int sizeX, int sizeY, CharacterPreview(osg::Group* parent, Resource::ResourceSystem* resourceSystem, const MWWorld::Ptr& character, int sizeX, int sizeY,
const osg::Vec3f& position, const osg::Vec3f& lookAt); const osg::Vec3f& position, const osg::Vec3f& lookAt);
virtual ~CharacterPreview(); virtual ~CharacterPreview();
@ -73,7 +73,7 @@ namespace MWRender
{ {
public: public:
InventoryPreview(osg::Group* parent, Resource::ResourceSystem* resourceSystem, MWWorld::Ptr character); InventoryPreview(osg::Group* parent, Resource::ResourceSystem* resourceSystem, const MWWorld::Ptr& character);
void updatePtr(const MWWorld::Ptr& ptr); void updatePtr(const MWWorld::Ptr& ptr);

@ -99,7 +99,7 @@ private:
private: private:
void resetBlinkTimer(); void resetBlinkTimer();
public: public:
HeadAnimationTime(MWWorld::Ptr reference); HeadAnimationTime(const MWWorld::Ptr& reference);
void updatePtr(const MWWorld::Ptr& updated); void updatePtr(const MWWorld::Ptr& updated);
@ -128,7 +128,7 @@ public:
{ {
} }
void setOffset(osg::Vec3f offset) void setOffset(const osg::Vec3f& offset)
{ {
mOffset = offset; mOffset = offset;
} }
@ -155,7 +155,7 @@ private:
// -------------------------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------------------------
HeadAnimationTime::HeadAnimationTime(MWWorld::Ptr reference) HeadAnimationTime::HeadAnimationTime(const MWWorld::Ptr& reference)
: mReference(reference), mTalkStart(0), mTalkStop(0), mBlinkStart(0), mBlinkStop(0), mEnabled(true), mValue(0) : mReference(reference), mTalkStart(0), mTalkStop(0), mBlinkStart(0), mBlinkStop(0), mEnabled(true), mValue(0)
{ {
resetBlinkTimer(); resetBlinkTimer();

@ -37,7 +37,7 @@ class Animation;
class PtrHolder : public osg::Object class PtrHolder : public osg::Object
{ {
public: public:
PtrHolder(MWWorld::Ptr ptr) PtrHolder(const MWWorld::Ptr& ptr)
: mPtr(ptr) : mPtr(ptr)
{ {
} }

@ -14,7 +14,7 @@ namespace MWRender
class TextureOverrideVisitor : public osg::NodeVisitor class TextureOverrideVisitor : public osg::NodeVisitor
{ {
public: public:
TextureOverrideVisitor(std::string texture, Resource::ResourceSystem* resourcesystem) TextureOverrideVisitor(const std::string& texture, Resource::ResourceSystem* resourcesystem)
: osg::NodeVisitor(TRAVERSE_ALL_CHILDREN) : osg::NodeVisitor(TRAVERSE_ALL_CHILDREN)
, mTexture(texture) , mTexture(texture)
, mResourcesystem(resourcesystem) , mResourcesystem(resourcesystem)

@ -49,6 +49,9 @@ namespace MWScript
{ {
MWWorld::Ptr ptr = R()(runtime); MWWorld::Ptr ptr = R()(runtime);
if (!ptr.getRefData().isEnabled())
return;
std::string group = runtime.getStringLiteral (runtime[0].mInteger); std::string group = runtime.getStringLiteral (runtime[0].mInteger);
runtime.pop(); runtime.pop();
@ -91,6 +94,9 @@ namespace MWScript
{ {
MWWorld::Ptr ptr = R()(runtime); MWWorld::Ptr ptr = R()(runtime);
if (!ptr.getRefData().isEnabled())
return;
std::string group = runtime.getStringLiteral (runtime[0].mInteger); std::string group = runtime.getStringLiteral (runtime[0].mInteger);
runtime.pop(); runtime.pop();

@ -142,7 +142,7 @@ namespace MWScript
InterpreterContext::InterpreterContext ( InterpreterContext::InterpreterContext (
MWScript::Locals *locals, MWWorld::Ptr reference, const std::string& targetId) MWScript::Locals *locals, const MWWorld::Ptr& reference, const std::string& targetId)
: mLocals (locals), mReference (reference), mTargetId (targetId) : mLocals (locals), mReference (reference), mTargetId (targetId)
{ {
// If we run on a reference (local script, dialogue script or console with object // If we run on a reference (local script, dialogue script or console with object

@ -51,7 +51,7 @@ namespace MWScript
public: public:
InterpreterContext (MWScript::Locals *locals, MWWorld::Ptr reference, InterpreterContext (MWScript::Locals *locals, const MWWorld::Ptr& reference,
const std::string& targetId = ""); const std::string& targetId = "");
///< The ownership of \a locals is not transferred. 0-pointer allowed. ///< The ownership of \a locals is not transferred. 0-pointer allowed.

@ -255,7 +255,7 @@ namespace MWWorld
return MWBase::Environment::get().getMechanicsManager()->getEnemiesNearby(getPlayer()).size() != 0; return MWBase::Environment::get().getMechanicsManager()->getEnemiesNearby(getPlayer()).size() != 0;
} }
void Player::markPosition(CellStore *markedCell, ESM::Position markedPosition) void Player::markPosition(CellStore *markedCell, const ESM::Position& markedPosition)
{ {
mMarkedCell = markedCell; mMarkedCell = markedCell;
mMarkedPosition = markedPosition; mMarkedPosition = markedPosition;

@ -61,7 +61,7 @@ namespace MWWorld
void setWerewolfSkillsAttributes(); void setWerewolfSkillsAttributes();
// For mark/recall magic effects // For mark/recall magic effects
void markPosition (CellStore* markedCell, ESM::Position markedPosition); void markPosition (CellStore* markedCell, const ESM::Position& markedPosition);
void getMarkedPosition (CellStore*& markedCell, ESM::Position& markedPosition) const; void getMarkedPosition (CellStore*& markedCell, ESM::Position& markedPosition) const;
/// Interiors can not always be mapped to a world position. However /// Interiors can not always be mapped to a world position. However

@ -3087,7 +3087,7 @@ namespace MWWorld
struct AddDetectedReferenceVisitor struct AddDetectedReferenceVisitor
{ {
AddDetectedReferenceVisitor(std::vector<Ptr>& out, Ptr detector, World::DetectionType type, float squaredDist) AddDetectedReferenceVisitor(std::vector<Ptr>& out, const Ptr& detector, World::DetectionType type, float squaredDist)
: mOut(out), mDetector(detector), mSquaredDist(squaredDist), mType(type) : mOut(out), mDetector(detector), mSquaredDist(squaredDist), mType(type)
{ {
} }

@ -408,6 +408,11 @@ namespace Compiler
special = S_cmpEQ; special = S_cmpEQ;
else if (c=='=') else if (c=='=')
special = S_cmpEQ; special = S_cmpEQ;
else if (c == '>' || c == '<') // Treat => and =< as ==
{
special = S_cmpEQ;
mErrorHandler.warning (std::string("invalid operator =") + c + ", treating it as ==", mLoc);
}
else else
{ {
special = S_cmpEQ; special = S_cmpEQ;

@ -86,7 +86,7 @@ private:
// Prevent using writeHNT with strings. This already happened by accident and results in // Prevent using writeHNT with strings. This already happened by accident and results in
// state being discarded without any error on writing or reading it. :( // state being discarded without any error on writing or reading it. :(
// writeHNString and friends must be used instead. // writeHNString and friends must be used instead.
void writeHNT(const std::string &name, std::string data) void writeHNT(const std::string& name, const std::string& data)
{ {
} }
void writeT(const std::string& data) void writeT(const std::string& data)

@ -218,7 +218,7 @@ UVController::UVController()
{ {
} }
UVController::UVController(const Nif::NiUVData *data, std::set<int> textureUnits) UVController::UVController(const Nif::NiUVData *data, const std::set<int>& textureUnits)
: mUTrans(data->mKeyList[0], 0.f) : mUTrans(data->mKeyList[0], 0.f)
, mVTrans(data->mKeyList[1], 0.f) , mVTrans(data->mKeyList[1], 0.f)
, mUScale(data->mKeyList[2], 1.f) , mUScale(data->mKeyList[2], 1.f)
@ -381,14 +381,14 @@ void MaterialColorController::apply(osg::StateSet *stateset, osg::NodeVisitor *n
} }
} }
FlipController::FlipController(const Nif::NiFlipController *ctrl, std::vector<osg::ref_ptr<osg::Texture2D> > textures) FlipController::FlipController(const Nif::NiFlipController *ctrl, const std::vector<osg::ref_ptr<osg::Texture2D> >& textures)
: mTexSlot(ctrl->mTexSlot) : mTexSlot(ctrl->mTexSlot)
, mDelta(ctrl->mDelta) , mDelta(ctrl->mDelta)
, mTextures(textures) , mTextures(textures)
{ {
} }
FlipController::FlipController(int texSlot, float delta, std::vector<osg::ref_ptr<osg::Texture2D> > textures) FlipController::FlipController(int texSlot, float delta, const std::vector<osg::ref_ptr<osg::Texture2D> >& textures)
: mTexSlot(texSlot) : mTexSlot(texSlot)
, mDelta(delta) , mDelta(delta)
, mTextures(textures) , mTextures(textures)

@ -223,7 +223,7 @@ namespace NifOsg
public: public:
UVController(); UVController();
UVController(const UVController&,const osg::CopyOp&); UVController(const UVController&,const osg::CopyOp&);
UVController(const Nif::NiUVData *data, std::set<int> textureUnits); UVController(const Nif::NiUVData *data, const std::set<int>& textureUnits);
META_Object(NifOsg,UVController) META_Object(NifOsg,UVController)
@ -297,8 +297,8 @@ namespace NifOsg
std::vector<osg::ref_ptr<osg::Texture2D> > mTextures; std::vector<osg::ref_ptr<osg::Texture2D> > mTextures;
public: public:
FlipController(const Nif::NiFlipController* ctrl, std::vector<osg::ref_ptr<osg::Texture2D> > textures); FlipController(const Nif::NiFlipController* ctrl, const std::vector<osg::ref_ptr<osg::Texture2D> >& textures);
FlipController(int texSlot, float delta, std::vector<osg::ref_ptr<osg::Texture2D> > textures); FlipController(int texSlot, float delta, const std::vector<osg::ref_ptr<osg::Texture2D> >& textures);
FlipController(); FlipController();
FlipController(const FlipController& copy, const osg::CopyOp& copyop); FlipController(const FlipController& copy, const osg::CopyOp& copyop);

@ -1,6 +1,17 @@
Map Settings Map Settings
############ ############
global
------
:Type: boolean
:Range: True/False
:Default: False
If this setting is true, a world map on a map window will be displayed, otherwise a local map will be displayed.
The default value is false. This setting can be toggled with the local/world map switch button on the map window.
global map cell size global map cell size
-------------------- --------------------

@ -18,6 +18,21 @@ Each window in the GUI mode remembers it's previous location when exiting the ga
.. note:: .. note::
To scale the windows, making the widgets proportionally larger, see the scaling factor setting instead. To scale the windows, making the widgets proportionally larger, see the scaling factor setting instead.
:Type: boolean
:Range: True/False
This section controls the state of pinnable windows: pinned or not. For example, to pin only the map window, the actual settings will be::
inventory pin = false
map pin = true
stats pin = false
spells pin = false
The pinnable window can be pinned/unpinned by clicking on a button in the right upper corner of the window.
.. note::
A world/local map switch button on the map window will be showed only in GUI mode.
stats stats
----- -----
@ -25,6 +40,7 @@ stats
y = 0.0 y = 0.0
h = 0.375 h = 0.375
w = 0.4275 w = 0.4275
pin = false
The stats window, displaying level, race, class, skills and stats. Activated by clicking on any of the three bars in the lower left corner of the HUD. The stats window, displaying level, race, class, skills and stats. Activated by clicking on any of the three bars in the lower left corner of the HUD.
@ -35,6 +51,7 @@ spells
y = 0.5725 y = 0.5725
h = 0.375 h = 0.375
w = 0.4275 w = 0.4275
pin = false
The spells window, displaying powers, spells, and magical items. Activated by clicking on the spells widget (third from left) in the bottom left corner of the HUD. The spells window, displaying powers, spells, and magical items. Activated by clicking on the spells widget (third from left) in the bottom left corner of the HUD.
@ -45,39 +62,10 @@ map
y = 0.0 y = 0.0
h = 0.375 h = 0.375
w = 0.5725 w = 0.5725
pin = false
The local and world map window. Activated by clicking on the map widget in the bottom right corner of the HUD. The local and world map window. Activated by clicking on the map widget in the bottom right corner of the HUD.
dialogue
--------
:Default: x = 0.095
y = 0.095
h = 0.810
w = 0.810
The dialog window, for talking with NPCs. Activated by clicking on a NPC.
alchemy
-------
:Default: x = 0.25
y = 0.25
h = 0.5
w = 0.5
The alchemy window, for crafting potions. Activated by dragging an alchemy tool on to the rag doll. Unlike most other windows, this window hides all other windows when opened.
console
-------
:Default: x = 0.0
y = 0.0
h = 1.0
w = 0.5
The console command window. Activated by pressing the tilde (~) key.
inventory inventory
--------- ---------
@ -85,6 +73,7 @@ inventory
y = 0.4275 y = 0.4275
h = 0.6225 h = 0.6225
w = 0.5725 w = 0.5725
pin = false
The inventory window, displaying the paper doll and possessions, when activated by clicking on the inventory widget (second from left) in the bottom left corner of the HUD. The inventory window, displaying the paper doll and possessions, when activated by clicking on the inventory widget (second from left) in the bottom left corner of the HUD.
@ -147,3 +136,33 @@ companion
w = 0.375 w = 0.375
The NPC's inventory window while interacting with a companion. The companion windows were added in the Tribunal expansion, but are available everywhere in the OpenMW engine. The NPC's inventory window while interacting with a companion. The companion windows were added in the Tribunal expansion, but are available everywhere in the OpenMW engine.
dialogue
--------
:Default: x = 0.095
y = 0.095
h = 0.810
w = 0.810
The dialog window, for talking with NPCs. Activated by clicking on a NPC.
alchemy
-------
:Default: x = 0.25
y = 0.25
h = 0.5
w = 0.5
The alchemy window, for crafting potions. Activated by dragging an alchemy tool on to the rag doll. Unlike most other windows, this window hides all other windows when opened.
console
-------
:Default: x = 0.0
y = 0.0
h = 1.0
w = 0.5
The console command window. Activated by pressing the tilde (~) key.

@ -107,6 +107,9 @@ local map widget size = 512
# may result in longer loading times. # may result in longer loading times.
local map cell distance = 1 local map cell distance = 1
# If true, map in world mode, otherwise in local mode
global = false
[GUI] [GUI]
# Scales GUI window and widget size. (<1.0 is smaller, >1.0 is larger). # Scales GUI window and widget size. (<1.0 is smaller, >1.0 is larger).
@ -371,18 +374,24 @@ stats x = 0.0
stats y = 0.0 stats y = 0.0
stats w = 0.375 stats w = 0.375
stats h = 0.4275 stats h = 0.4275
# Stats window pin status
stats pin = false
# Spells window displaying powers, spells, and magical items. # Spells window displaying powers, spells, and magical items.
spells x = 0.625 spells x = 0.625
spells y = 0.5725 spells y = 0.5725
spells w = 0.375 spells w = 0.375
spells h = 0.4275 spells h = 0.4275
# Spells window pin status
spells pin = false
# Local and world map window. # Local and world map window.
map x = 0.625 map x = 0.625
map y = 0.0 map y = 0.0
map w = 0.375 map w = 0.375
map h = 0.5725 map h = 0.5725
# Map window pin status
map pin = false
# Dialog window for talking with NPCs. # Dialog window for talking with NPCs.
dialogue x = 0.095 dialogue x = 0.095
@ -407,6 +416,8 @@ inventory x = 0.0
inventory y = 0.4275 inventory y = 0.4275
inventory w = 0.6225 inventory w = 0.6225
inventory h = 0.5725 inventory h = 0.5725
# Inventory window pin status
inventory pin = false
# Player inventory window when searching a container. # Player inventory window when searching a container.
inventory container x = 0.0 inventory container x = 0.0

Loading…
Cancel
Save