forked from mirror/openmw-tes3mp
Merge pull request #203 from OpenMW/master
Add OpenMW commits up to 21 Apr 2017, part 2
This commit is contained in:
commit
a5484d237b
43 changed files with 198 additions and 123 deletions
|
@ -50,7 +50,7 @@ namespace MWBase
|
|||
|
||||
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
|
||||
virtual void keywordSelected (const std::string& keyword) = 0;
|
||||
|
|
|
@ -183,7 +183,7 @@ namespace MWDialogue
|
|||
|
||||
MWScript::InterpreterContext interpreterContext(&mActor.getRefData().getLocals(),mActor);
|
||||
win->addResponse (Interpreter::fixDefinesDialog(info->mResponse, interpreterContext));
|
||||
executeScript (info->mResultScript);
|
||||
executeScript (info->mResultScript, mActor);
|
||||
mLastTopic = Misc::StringUtils::lowerCase(it->mId);
|
||||
|
||||
// update topics again to accommodate changes resulting from executeScript
|
||||
|
@ -202,7 +202,7 @@ namespace MWDialogue
|
|||
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;
|
||||
|
||||
|
@ -218,7 +218,7 @@ namespace MWDialogue
|
|||
|
||||
Compiler::Locals locals;
|
||||
|
||||
std::string actorScript = mActor.getClass().getScript (mActor);
|
||||
std::string actorScript = actor.getClass().getScript (actor);
|
||||
|
||||
if (!actorScript.empty())
|
||||
{
|
||||
|
@ -258,14 +258,14 @@ namespace MWDialogue
|
|||
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;
|
||||
if(compile(script,code))
|
||||
if(compile(script, code, actor))
|
||||
{
|
||||
try
|
||||
{
|
||||
MWScript::InterpreterContext interpreterContext(&mActor.getRefData().getLocals(),mActor);
|
||||
MWScript::InterpreterContext interpreterContext(&actor.getRefData().getLocals(), actor);
|
||||
Interpreter::Interpreter interpreter;
|
||||
MWScript::installOpcodes (interpreter);
|
||||
interpreter.run (&code[0], code.size(), interpreterContext);
|
||||
|
@ -329,7 +329,7 @@ namespace MWDialogue
|
|||
}
|
||||
}
|
||||
|
||||
executeScript (info->mResultScript);
|
||||
executeScript (info->mResultScript, mActor);
|
||||
|
||||
mLastTopic = topic;
|
||||
}
|
||||
|
@ -512,7 +512,7 @@ namespace MWDialogue
|
|||
}
|
||||
}
|
||||
|
||||
executeScript (info->mResultScript);
|
||||
executeScript (info->mResultScript, mActor);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -630,13 +630,13 @@ namespace MWDialogue
|
|||
win->addResponse (Interpreter::fixDefinesDialog(info->mResponse, interpreterContext),
|
||||
gmsts.find ("sServiceRefusal")->getString());
|
||||
|
||||
executeScript (info->mResultScript);
|
||||
executeScript (info->mResultScript, mActor);
|
||||
return true;
|
||||
}
|
||||
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();
|
||||
if(!sndMgr->sayDone(actor))
|
||||
|
@ -675,6 +675,9 @@ namespace MWDialogue
|
|||
End of tes3mp addition
|
||||
*/
|
||||
}
|
||||
|
||||
if (!info->mResultScript.empty())
|
||||
executeScript(info->mResultScript, actor);
|
||||
}
|
||||
|
||||
int DialogueManager::countSavedGameRecords() const
|
||||
|
|
|
@ -51,8 +51,8 @@ namespace MWDialogue
|
|||
void updateTopics();
|
||||
void updateGlobals();
|
||||
|
||||
bool compile (const std::string& cmd,std::vector<Interpreter::Type_Code>& code);
|
||||
void executeScript (const std::string& script);
|
||||
bool compile (const std::string& cmd, std::vector<Interpreter::Type_Code>& code, const MWWorld::Ptr& actor);
|
||||
void executeScript (const std::string& script, const MWWorld::Ptr& actor);
|
||||
|
||||
void executeTopic (const std::string& topic);
|
||||
|
||||
|
@ -74,7 +74,7 @@ namespace MWDialogue
|
|||
|
||||
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
|
||||
virtual void keywordSelected (const std::string& keyword);
|
||||
|
|
|
@ -246,8 +246,8 @@ namespace MWGui
|
|||
mReviewDialog->setBirthSign(player.getBirthSign());
|
||||
|
||||
{
|
||||
MWWorld::Ptr player = MWMechanics::getPlayer();
|
||||
const MWMechanics::CreatureStats& stats = player.getClass().getCreatureStats(player);
|
||||
MWWorld::Ptr playerPtr = MWMechanics::getPlayer();
|
||||
const MWMechanics::CreatureStats& stats = playerPtr.getClass().getCreatureStats(playerPtr);
|
||||
|
||||
mReviewDialog->setHealth ( stats.getHealth() );
|
||||
mReviewDialog->setMagicka( stats.getMagicka() );
|
||||
|
|
|
@ -450,6 +450,8 @@ namespace MWGui
|
|||
|
||||
void InventoryWindow::onPinToggled()
|
||||
{
|
||||
Settings::Manager::setBool("inventory pin", "Windows", mPinned);
|
||||
|
||||
MWBase::Environment::get().getWindowManager()->setWeaponVisibility(!mPinned);
|
||||
}
|
||||
|
||||
|
|
|
@ -646,7 +646,7 @@ namespace MWGui
|
|||
, mGlobalMap(0)
|
||||
, mGlobalMapImage(NULL)
|
||||
, mGlobalMapOverlay(NULL)
|
||||
, mGlobal(false)
|
||||
, mGlobal(Settings::Manager::getBool("global", "Map"))
|
||||
, mEventBoxGlobal(NULL)
|
||||
, mEventBoxLocal(NULL)
|
||||
, mGlobalMapRender(new MWRender::GlobalMap(localMapRender->getRoot(), workQueue))
|
||||
|
@ -684,7 +684,7 @@ namespace MWGui
|
|||
|
||||
getWidget(mButton, "WorldButton");
|
||||
mButton->eventMouseButtonClick += MyGUI::newDelegate(this, &MapWindow::onWorldButtonClicked);
|
||||
mButton->setCaptionWithReplacing("#{sWorld}");
|
||||
mButton->setCaptionWithReplacing( mGlobal ? "#{sLocal}" : "#{sWorld}");
|
||||
|
||||
getWidget(mEventBoxGlobal, "EventBoxGlobal");
|
||||
mEventBoxGlobal->eventMouseDrag += MyGUI::newDelegate(this, &MapWindow::onMouseDrag);
|
||||
|
@ -697,6 +697,9 @@ namespace MWGui
|
|||
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"));
|
||||
|
||||
mGlobalMap->setVisible(mGlobal);
|
||||
mLocalMap->setVisible(!mGlobal);
|
||||
}
|
||||
|
||||
void MapWindow::onNoteEditOk()
|
||||
|
@ -794,7 +797,7 @@ namespace MWGui
|
|||
void MapWindow::setVisible(bool 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()
|
||||
|
@ -935,6 +938,8 @@ namespace MWGui
|
|||
mGlobalMap->setVisible(mGlobal);
|
||||
mLocalMap->setVisible(!mGlobal);
|
||||
|
||||
Settings::Manager::setBool("global", "Map", mGlobal);
|
||||
|
||||
mButton->setCaptionWithReplacing( mGlobal ? "#{sLocal}" :
|
||||
"#{sWorld}");
|
||||
|
||||
|
@ -944,6 +949,8 @@ namespace MWGui
|
|||
|
||||
void MapWindow::onPinToggled()
|
||||
{
|
||||
Settings::Manager::setBool("map pin", "Windows", mPinned);
|
||||
|
||||
MWBase::Environment::get().getWindowManager()->setMinimapVisibility(!mPinned);
|
||||
}
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#include <MyGUI_ImageBox.h>
|
||||
#include <MyGUI_ListBox.h>
|
||||
#include <MyGUI_InputManager.h>
|
||||
#include <MyGUI_LanguageManager.h>
|
||||
|
||||
#include <osgDB/ReadFile>
|
||||
#include <osg/Texture2D>
|
||||
|
@ -168,9 +169,9 @@ namespace MWGui
|
|||
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 ||
|
||||
(!mCurrentCharacter && !mSaving && directory==Misc::StringUtils::lowerCase (
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
|
||||
#include <MyGUI_InputManager.h>
|
||||
|
||||
#include <components/settings/settings.hpp>
|
||||
|
||||
#include "../mwbase/windowmanager.hpp"
|
||||
#include "../mwbase/environment.hpp"
|
||||
#include "../mwbase/world.hpp"
|
||||
|
@ -51,6 +53,8 @@ namespace MWGui
|
|||
|
||||
void SpellWindow::onPinToggled()
|
||||
{
|
||||
Settings::Manager::setBool("spells pin", "Windows", mPinned);
|
||||
|
||||
MWBase::Environment::get().getWindowManager()->setSpellVisibility(!mPinned);
|
||||
}
|
||||
|
||||
|
|
|
@ -6,6 +6,8 @@
|
|||
#include <MyGUI_ImageBox.h>
|
||||
#include <MyGUI_Gui.h>
|
||||
|
||||
#include <components/settings/settings.hpp>
|
||||
|
||||
#include "../mwbase/environment.hpp"
|
||||
#include "../mwbase/world.hpp"
|
||||
#include "../mwbase/windowmanager.hpp"
|
||||
|
@ -672,6 +674,8 @@ namespace MWGui
|
|||
|
||||
void StatsWindow::onPinToggled()
|
||||
{
|
||||
Settings::Manager::setBool("stats pin", "Windows", mPinned);
|
||||
|
||||
MWBase::Environment::get().getWindowManager()->setHMSVisibility(!mPinned);
|
||||
}
|
||||
|
||||
|
|
|
@ -372,6 +372,8 @@ namespace MWGui
|
|||
mPlayerSkillValues.insert(std::make_pair(ESM::Skill::sSkillIds[i], MWMechanics::SkillValue()));
|
||||
}
|
||||
|
||||
updatePinnedWindows();
|
||||
|
||||
// Set up visibility
|
||||
updateVisible();
|
||||
|
||||
|
@ -549,14 +551,14 @@ namespace MWGui
|
|||
setSpellVisibility((mAllowed & GW_Magic) && (!mSpellWindow->pinned() || (mForceHidden & GW_Magic)));
|
||||
setHMSVisibility((mAllowed & GW_Stats) && (!mStatsWindow->pinned() || (mForceHidden & GW_Stats)));
|
||||
|
||||
// If in game mode, show only the pinned windows
|
||||
if (gameMode)
|
||||
// If in game mode (or interactive messagebox), show only the pinned windows
|
||||
if (mGuiModes.empty())
|
||||
{
|
||||
mInventoryWindow->setGuiMode(GM_None);
|
||||
mMap->setVisible(mMap->pinned() && !(mForceHidden & GW_Map));
|
||||
mStatsWindow->setVisible(mStatsWindow->pinned() && !(mForceHidden & GW_Stats));
|
||||
mInventoryWindow->setVisible(mInventoryWindow->pinned() && !(mForceHidden & GW_Inventory));
|
||||
mSpellWindow->setVisible(mSpellWindow->pinned() && !(mForceHidden & GW_Magic));
|
||||
mMap->setVisible(mMap->pinned() && !(mForceHidden & GW_Map) && (mAllowed & GW_Map));
|
||||
mStatsWindow->setVisible(mStatsWindow->pinned() && !(mForceHidden & GW_Stats) && (mAllowed & GW_Stats));
|
||||
mInventoryWindow->setVisible(mInventoryWindow->pinned() && !(mForceHidden & GW_Inventory) && (mAllowed & GW_Inventory));
|
||||
mSpellWindow->setVisible(mSpellWindow->pinned() && !(mForceHidden & GW_Magic) && (mAllowed & GW_Magic));
|
||||
|
||||
return;
|
||||
}
|
||||
|
@ -1857,6 +1859,17 @@ namespace MWGui
|
|||
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)
|
||||
{
|
||||
switch (window)
|
||||
|
|
|
@ -539,6 +539,8 @@ namespace MWGui
|
|||
void createTextures();
|
||||
void createCursors();
|
||||
void setMenuTransparency(float value);
|
||||
|
||||
void updatePinnedWindows();
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -93,7 +93,7 @@ class CheckActorCommanded : public MWMechanics::EffectSourceVisitor
|
|||
MWWorld::Ptr mActor;
|
||||
public:
|
||||
bool mCommanded;
|
||||
CheckActorCommanded(MWWorld::Ptr actor)
|
||||
CheckActorCommanded(const MWWorld::Ptr& actor)
|
||||
: mActor(actor)
|
||||
, mCommanded(false){}
|
||||
|
||||
|
@ -129,10 +129,8 @@ void adjustCommandedActor (const MWWorld::Ptr& actor)
|
|||
}
|
||||
|
||||
if (!check.mCommanded && hasCommandPackage)
|
||||
{
|
||||
stats.getAiSequence().erase(it);
|
||||
}
|
||||
}
|
||||
|
||||
void getRestorationPerHourOfSleep (const MWWorld::Ptr& ptr, float& health, float& magicka)
|
||||
{
|
||||
|
@ -166,7 +164,7 @@ namespace MWMechanics
|
|||
MWWorld::Ptr mActor;
|
||||
bool mTrapped;
|
||||
public:
|
||||
SoulTrap(MWWorld::Ptr trappedCreature)
|
||||
SoulTrap(const MWWorld::Ptr& trappedCreature)
|
||||
: mCreature(trappedCreature)
|
||||
, mTrapped(false)
|
||||
{
|
||||
|
@ -738,15 +736,7 @@ namespace MWMechanics
|
|||
// any value of calm > 0 will stop the actor from fighting
|
||||
if ((effects.get(ESM::MagicEffect::CalmHumanoid).getMagnitude() > 0 && ptr.getClass().isNpc())
|
||||
|| (effects.get(ESM::MagicEffect::CalmCreature).getMagnitude() > 0 && !ptr.getClass().isNpc()))
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
creatureStats.getAiSequence().stopCombat();
|
||||
|
||||
// Update bound effects
|
||||
// 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);
|
||||
|
||||
// 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)
|
||||
stats.setTimeToStartDrowning(fHoldBreathTime);
|
||||
|
||||
|
@ -875,11 +865,8 @@ namespace MWMechanics
|
|||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
static const float fHoldBreathTime = world->getStore().get<ESM::GameSetting>().find("fHoldBreathTime")->getFloat();
|
||||
stats.setTimeToStartDrowning(fHoldBreathTime);
|
||||
}
|
||||
}
|
||||
|
||||
void Actors::updateEquippedLight (const MWWorld::Ptr& ptr, float duration)
|
||||
{
|
||||
|
|
|
@ -96,16 +96,16 @@ std::list<AiPackage*>::const_iterator AiSequence::end() const
|
|||
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?
|
||||
for(std::list<AiPackage*>::iterator it = mPackages.begin(); it != mPackages.end(); ++it)
|
||||
{
|
||||
if (package == it)
|
||||
{
|
||||
AiPackage* packagePtr = *it;
|
||||
delete packagePtr;
|
||||
return mPackages.erase(it);
|
||||
delete *it;
|
||||
mPackages.erase(it);
|
||||
return;
|
||||
}
|
||||
}
|
||||
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 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
|
||||
/** \see enum AiPackage::TypeId **/
|
||||
|
|
|
@ -893,7 +893,7 @@ namespace MWMechanics
|
|||
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();
|
||||
unsigned int index = 0;
|
||||
|
|
|
@ -122,7 +122,7 @@ namespace MWMechanics
|
|||
/// convert point from local (i.e. cell) to world coordinates
|
||||
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);
|
||||
|
||||
|
|
|
@ -2347,7 +2347,7 @@ void CharacterController::setAttackingOrSpell(bool attackingOrSpell)
|
|||
mAttackingOrSpell = attackingOrSpell;
|
||||
}
|
||||
|
||||
void CharacterController::setAIAttackType(std::string attackType)
|
||||
void CharacterController::setAIAttackType(const std::string& attackType)
|
||||
{
|
||||
mAttackType = attackType;
|
||||
}
|
||||
|
|
|
@ -268,7 +268,7 @@ public:
|
|||
bool isSneaking() const;
|
||||
|
||||
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);
|
||||
|
||||
bool readyToPrepareAttack() const;
|
||||
|
|
|
@ -21,7 +21,7 @@ namespace MWMechanics
|
|||
, mSelfEnchanting(false)
|
||||
{}
|
||||
|
||||
void Enchanting::setOldItem(MWWorld::Ptr oldItem)
|
||||
void Enchanting::setOldItem(const MWWorld::Ptr& oldItem)
|
||||
{
|
||||
mOldItemPtr=oldItem;
|
||||
if(!itemEmpty())
|
||||
|
@ -39,7 +39,7 @@ namespace MWMechanics
|
|||
mNewItemName=s;
|
||||
}
|
||||
|
||||
void Enchanting::setEffect(ESM::EffectList effectList)
|
||||
void Enchanting::setEffect(const ESM::EffectList& effectList)
|
||||
{
|
||||
mEffectList=effectList;
|
||||
}
|
||||
|
@ -49,7 +49,7 @@ namespace MWMechanics
|
|||
return mCastStyle;
|
||||
}
|
||||
|
||||
void Enchanting::setSoulGem(MWWorld::Ptr soulGem)
|
||||
void Enchanting::setSoulGem(const MWWorld::Ptr& soulGem)
|
||||
{
|
||||
mSoulGemPtr=soulGem;
|
||||
}
|
||||
|
@ -269,7 +269,7 @@ namespace MWMechanics
|
|||
mSelfEnchanting = selfEnchanting;
|
||||
}
|
||||
|
||||
void Enchanting::setEnchanter(MWWorld::Ptr enchanter)
|
||||
void Enchanting::setEnchanter(const MWWorld::Ptr& enchanter)
|
||||
{
|
||||
mEnchanter = enchanter;
|
||||
}
|
||||
|
|
|
@ -29,14 +29,14 @@ namespace MWMechanics
|
|||
|
||||
public:
|
||||
Enchanting();
|
||||
void setEnchanter(MWWorld::Ptr enchanter);
|
||||
void setEnchanter(const MWWorld::Ptr& enchanter);
|
||||
void setSelfEnchanting(bool selfEnchanting);
|
||||
void setOldItem(MWWorld::Ptr oldItem);
|
||||
void setOldItem(const MWWorld::Ptr& oldItem);
|
||||
MWWorld::Ptr getOldItem() { return mOldItemPtr; }
|
||||
MWWorld::Ptr getGem() { return mSoulGemPtr; }
|
||||
void setNewItemName(const std::string& s);
|
||||
void setEffect(ESM::EffectList effectList);
|
||||
void setSoulGem(MWWorld::Ptr soulGem);
|
||||
void setEffect(const ESM::EffectList& effectList);
|
||||
void setSoulGem(const MWWorld::Ptr& soulGem);
|
||||
bool create(); //Return true if created, false if failed.
|
||||
void nextCastStyle(); //Set enchant type to next possible type (for mOldItemPtr object)
|
||||
int getCastStyle() const;
|
||||
|
|
|
@ -15,7 +15,7 @@ namespace
|
|||
// Chooses a reachable end pathgrid point. start is assumed reachable.
|
||||
std::pair<int, bool> getClosestReachablePoint(const ESM::Pathgrid* grid,
|
||||
const MWWorld::CellStore *cell,
|
||||
const osg::Vec3f pos, int start)
|
||||
const osg::Vec3f& pos, int start)
|
||||
{
|
||||
assert(grid && !grid->mPoints.empty());
|
||||
|
||||
|
|
|
@ -794,7 +794,7 @@ namespace MWPhysics
|
|||
btVector3 mContactPoint;
|
||||
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),
|
||||
mLeastDistSqr(std::numeric_limits<float>::max())
|
||||
{ }
|
||||
|
@ -912,7 +912,7 @@ namespace MWPhysics
|
|||
class ClosestNotMeRayResultCallback : public btCollisionWorld::ClosestRayResultCallback
|
||||
{
|
||||
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)
|
||||
, mMe(me), mTargets(targets)
|
||||
{
|
||||
|
@ -938,7 +938,7 @@ namespace MWPhysics
|
|||
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 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.
|
||||
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>(),
|
||||
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
|
||||
{
|
||||
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)
|
||||
: mTexUnit(texUnit)
|
||||
, mColor(color)
|
||||
|
@ -383,7 +383,7 @@ namespace MWRender
|
|||
return mDone;
|
||||
}
|
||||
|
||||
void setColor(osg::Vec4f color)
|
||||
void setColor(const osg::Vec4f& color)
|
||||
{
|
||||
mColor = color;
|
||||
mColorChanged = true;
|
||||
|
@ -1362,7 +1362,7 @@ namespace MWRender
|
|||
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())
|
||||
return;
|
||||
|
|
|
@ -362,7 +362,7 @@ public:
|
|||
* @param texture override the texture specified in the model's materials - if empty, do not override
|
||||
* @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 getLoopingEffects (std::vector<int>& out) const;
|
||||
|
||||
|
|
|
@ -105,7 +105,7 @@ namespace MWRender
|
|||
};
|
||||
|
||||
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)
|
||||
, mResourceSystem(resourceSystem)
|
||||
, 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))
|
||||
{
|
||||
}
|
||||
|
|
|
@ -28,7 +28,7 @@ namespace MWRender
|
|||
class CharacterPreview
|
||||
{
|
||||
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);
|
||||
virtual ~CharacterPreview();
|
||||
|
||||
|
@ -73,7 +73,7 @@ namespace MWRender
|
|||
{
|
||||
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);
|
||||
|
||||
|
|
|
@ -99,7 +99,7 @@ private:
|
|||
private:
|
||||
void resetBlinkTimer();
|
||||
public:
|
||||
HeadAnimationTime(MWWorld::Ptr reference);
|
||||
HeadAnimationTime(const MWWorld::Ptr& reference);
|
||||
|
||||
void updatePtr(const MWWorld::Ptr& updated);
|
||||
|
||||
|
@ -128,7 +128,7 @@ public:
|
|||
{
|
||||
}
|
||||
|
||||
void setOffset(osg::Vec3f offset)
|
||||
void setOffset(const osg::Vec3f& 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)
|
||||
{
|
||||
resetBlinkTimer();
|
||||
|
|
|
@ -37,7 +37,7 @@ class Animation;
|
|||
class PtrHolder : public osg::Object
|
||||
{
|
||||
public:
|
||||
PtrHolder(MWWorld::Ptr ptr)
|
||||
PtrHolder(const MWWorld::Ptr& ptr)
|
||||
: mPtr(ptr)
|
||||
{
|
||||
}
|
||||
|
|
|
@ -14,7 +14,7 @@ namespace MWRender
|
|||
class TextureOverrideVisitor : public osg::NodeVisitor
|
||||
{
|
||||
public:
|
||||
TextureOverrideVisitor(std::string texture, Resource::ResourceSystem* resourcesystem)
|
||||
TextureOverrideVisitor(const std::string& texture, Resource::ResourceSystem* resourcesystem)
|
||||
: osg::NodeVisitor(TRAVERSE_ALL_CHILDREN)
|
||||
, mTexture(texture)
|
||||
, mResourcesystem(resourcesystem)
|
||||
|
|
|
@ -49,6 +49,9 @@ namespace MWScript
|
|||
{
|
||||
MWWorld::Ptr ptr = R()(runtime);
|
||||
|
||||
if (!ptr.getRefData().isEnabled())
|
||||
return;
|
||||
|
||||
std::string group = runtime.getStringLiteral (runtime[0].mInteger);
|
||||
runtime.pop();
|
||||
|
||||
|
@ -91,6 +94,9 @@ namespace MWScript
|
|||
{
|
||||
MWWorld::Ptr ptr = R()(runtime);
|
||||
|
||||
if (!ptr.getRefData().isEnabled())
|
||||
return;
|
||||
|
||||
std::string group = runtime.getStringLiteral (runtime[0].mInteger);
|
||||
runtime.pop();
|
||||
|
||||
|
|
|
@ -142,7 +142,7 @@ namespace MWScript
|
|||
|
||||
|
||||
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)
|
||||
{
|
||||
// If we run on a reference (local script, dialogue script or console with object
|
||||
|
|
|
@ -51,7 +51,7 @@ namespace MWScript
|
|||
|
||||
public:
|
||||
|
||||
InterpreterContext (MWScript::Locals *locals, MWWorld::Ptr reference,
|
||||
InterpreterContext (MWScript::Locals *locals, const MWWorld::Ptr& reference,
|
||||
const std::string& targetId = "");
|
||||
///< 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;
|
||||
}
|
||||
|
||||
void Player::markPosition(CellStore *markedCell, ESM::Position markedPosition)
|
||||
void Player::markPosition(CellStore *markedCell, const ESM::Position& markedPosition)
|
||||
{
|
||||
mMarkedCell = markedCell;
|
||||
mMarkedPosition = markedPosition;
|
||||
|
|
|
@ -61,7 +61,7 @@ namespace MWWorld
|
|||
void setWerewolfSkillsAttributes();
|
||||
|
||||
// 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;
|
||||
|
||||
/// Interiors can not always be mapped to a world position. However
|
||||
|
|
|
@ -3087,7 +3087,7 @@ namespace MWWorld
|
|||
|
||||
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)
|
||||
{
|
||||
}
|
||||
|
|
|
@ -408,6 +408,11 @@ namespace Compiler
|
|||
special = S_cmpEQ;
|
||||
else if (c=='=')
|
||||
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
|
||||
{
|
||||
special = S_cmpEQ;
|
||||
|
|
|
@ -86,7 +86,7 @@ private:
|
|||
// Prevent using writeHNT with strings. This already happened by accident and results in
|
||||
// state being discarded without any error on writing or reading it. :(
|
||||
// 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)
|
||||
|
|
|
@ -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)
|
||||
, mVTrans(data->mKeyList[1], 0.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)
|
||||
, mDelta(ctrl->mDelta)
|
||||
, 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)
|
||||
, mDelta(delta)
|
||||
, mTextures(textures)
|
||||
|
|
|
@ -223,7 +223,7 @@ namespace NifOsg
|
|||
public:
|
||||
UVController();
|
||||
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)
|
||||
|
||||
|
@ -297,8 +297,8 @@ namespace NifOsg
|
|||
std::vector<osg::ref_ptr<osg::Texture2D> > mTextures;
|
||||
|
||||
public:
|
||||
FlipController(const Nif::NiFlipController* ctrl, std::vector<osg::ref_ptr<osg::Texture2D> > textures);
|
||||
FlipController(int texSlot, float delta, 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, const std::vector<osg::ref_ptr<osg::Texture2D> >& textures);
|
||||
FlipController();
|
||||
FlipController(const FlipController& copy, const osg::CopyOp& copyop);
|
||||
|
||||
|
|
|
@ -1,6 +1,17 @@
|
|||
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
|
||||
--------------------
|
||||
|
||||
|
|
|
@ -18,6 +18,21 @@ Each window in the GUI mode remembers it's previous location when exiting the ga
|
|||
.. note::
|
||||
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
|
||||
-----
|
||||
|
||||
|
@ -25,6 +40,7 @@ stats
|
|||
y = 0.0
|
||||
h = 0.375
|
||||
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.
|
||||
|
||||
|
@ -35,6 +51,7 @@ spells
|
|||
y = 0.5725
|
||||
h = 0.375
|
||||
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.
|
||||
|
||||
|
@ -45,39 +62,10 @@ map
|
|||
y = 0.0
|
||||
h = 0.375
|
||||
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.
|
||||
|
||||
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
|
||||
---------
|
||||
|
||||
|
@ -85,6 +73,7 @@ inventory
|
|||
y = 0.4275
|
||||
h = 0.6225
|
||||
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.
|
||||
|
||||
|
@ -147,3 +136,33 @@ companion
|
|||
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.
|
||||
|
||||
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.
|
||||
local map cell distance = 1
|
||||
|
||||
# If true, map in world mode, otherwise in local mode
|
||||
global = false
|
||||
|
||||
[GUI]
|
||||
|
||||
# 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 w = 0.375
|
||||
stats h = 0.4275
|
||||
# Stats window pin status
|
||||
stats pin = false
|
||||
|
||||
# Spells window displaying powers, spells, and magical items.
|
||||
spells x = 0.625
|
||||
spells y = 0.5725
|
||||
spells w = 0.375
|
||||
spells h = 0.4275
|
||||
# Spells window pin status
|
||||
spells pin = false
|
||||
|
||||
# Local and world map window.
|
||||
map x = 0.625
|
||||
map y = 0.0
|
||||
map w = 0.375
|
||||
map h = 0.5725
|
||||
# Map window pin status
|
||||
map pin = false
|
||||
|
||||
# Dialog window for talking with NPCs.
|
||||
dialogue x = 0.095
|
||||
|
@ -407,6 +416,8 @@ inventory x = 0.0
|
|||
inventory y = 0.4275
|
||||
inventory w = 0.6225
|
||||
inventory h = 0.5725
|
||||
# Inventory window pin status
|
||||
inventory pin = false
|
||||
|
||||
# Player inventory window when searching a container.
|
||||
inventory container x = 0.0
|
||||
|
|
Loading…
Reference in a new issue