mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-01-30 16:45:33 +00:00
Merge branch 'master' into soul
This commit is contained in:
commit
cb6707624d
9 changed files with 23 additions and 13 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -30,6 +30,7 @@ cmake-build-*
|
|||
files/windows/*.aps
|
||||
## qt-creator
|
||||
CMakeLists.txt.user*
|
||||
.vs
|
||||
|
||||
## resources
|
||||
data
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
0.47.0
|
||||
------
|
||||
|
||||
Bug #5367: Selecting a spell on an enchanted item per hotkey always plays the equip sound
|
||||
Bug #5369: Spawnpoint in the Grazelands doesn't produce oversized creatures
|
||||
Feature #5362: Show the soul gems' trapped soul in count dialog
|
||||
|
||||
0.46.0
|
||||
|
|
|
@ -125,6 +125,7 @@ namespace MWClass
|
|||
const MWWorld::ESMStore& store = MWBase::Environment::get().getWorld()->getStore();
|
||||
MWWorld::ManualRef manualRef(store, id);
|
||||
manualRef.getPtr().getCellRef().setPosition(ptr.getCellRef().getPosition());
|
||||
manualRef.getPtr().getCellRef().setScale(ptr.getCellRef().getScale());
|
||||
MWWorld::Ptr placed = MWBase::Environment::get().getWorld()->placeObject(manualRef.getPtr(), ptr.getCell() , ptr.getCellRef().getPosition());
|
||||
customData.mSpawnActorId = placed.getClass().getCreatureStats(placed).getActorId();
|
||||
customData.mSpawn = false;
|
||||
|
|
|
@ -401,7 +401,8 @@ namespace MWGui
|
|||
return;
|
||||
}
|
||||
|
||||
MWBase::Environment::get().getWindowManager()->useItem(item);
|
||||
if (!store.isEquipped(item))
|
||||
MWBase::Environment::get().getWindowManager()->useItem(item);
|
||||
MWWorld::ConstContainerStoreIterator rightHand = store.getSlot(MWWorld::InventoryStore::Slot_CarriedRight);
|
||||
// change draw state only if the item is in player's right hand
|
||||
if (rightHand != store.end() && item == *rightHand)
|
||||
|
@ -411,8 +412,8 @@ namespace MWGui
|
|||
}
|
||||
else if (key->type == Type_MagicItem)
|
||||
{
|
||||
// equip, if it can be equipped
|
||||
if (!item.getClass().getEquipmentSlots(item).first.empty())
|
||||
// equip, if it can be equipped and isn't yet equipped
|
||||
if (!item.getClass().getEquipmentSlots(item).first.empty() && !store.isEquipped(item))
|
||||
{
|
||||
MWBase::Environment::get().getWindowManager()->useItem(item);
|
||||
|
||||
|
|
|
@ -43,6 +43,8 @@ namespace MWMechanics
|
|||
x *= pickQuality * mFatigueTerm;
|
||||
x += fPickLockMult * lockStrength;
|
||||
|
||||
MWBase::Environment::get().getMechanicsManager()->unlockAttempted(mActor, lock);
|
||||
|
||||
resultSound = "Open Lock Fail";
|
||||
if (x <= 0)
|
||||
resultMessage = "#{sLockImpossible}";
|
||||
|
@ -59,7 +61,6 @@ namespace MWMechanics
|
|||
resultMessage = "#{sLockFail}";
|
||||
}
|
||||
|
||||
MWBase::Environment::get().getMechanicsManager()->unlockAttempted(mActor, lock);
|
||||
int uses = lockpick.getClass().getItemHealth(lockpick);
|
||||
--uses;
|
||||
lockpick.getCellRef().setCharge(uses);
|
||||
|
@ -84,6 +85,8 @@ namespace MWMechanics
|
|||
x += fTrapCostMult * trapSpellPoints;
|
||||
x *= probeQuality * mFatigueTerm;
|
||||
|
||||
MWBase::Environment::get().getMechanicsManager()->unlockAttempted(mActor, trap);
|
||||
|
||||
resultSound = "Disarm Trap Fail";
|
||||
if (x <= 0)
|
||||
resultMessage = "#{sTrapImpossible}";
|
||||
|
@ -101,7 +104,6 @@ namespace MWMechanics
|
|||
resultMessage = "#{sTrapFail}";
|
||||
}
|
||||
|
||||
MWBase::Environment::get().getMechanicsManager()->unlockAttempted(mActor, trap);
|
||||
int uses = probe.getClass().getItemHealth(probe);
|
||||
--uses;
|
||||
probe.getCellRef().setCharge(uses);
|
||||
|
|
|
@ -709,6 +709,11 @@ namespace MWMechanics
|
|||
}
|
||||
else if (effectId == ESM::MagicEffect::Open)
|
||||
{
|
||||
if (!caster.isEmpty())
|
||||
{
|
||||
MWBase::Environment::get().getMechanicsManager()->unlockAttempted(getPlayer(), target);
|
||||
// Use the player instead of the caster for vanilla crime compatibility
|
||||
}
|
||||
const MWWorld::ESMStore& store = MWBase::Environment::get().getWorld()->getStore();
|
||||
const ESM::MagicEffect *magiceffect = store.get<ESM::MagicEffect>().find(effectId);
|
||||
MWRender::Animation* animation = MWBase::Environment::get().getWorld()->getAnimation(target);
|
||||
|
@ -726,11 +731,10 @@ namespace MWMechanics
|
|||
target.getCellRef().unlock();
|
||||
}
|
||||
else
|
||||
{
|
||||
MWBase::Environment::get().getSoundManager()->playSound3D(target, "Open Lock Fail", 1.f, 1.f);
|
||||
}
|
||||
|
||||
if (!caster.isEmpty())
|
||||
MWBase::Environment::get().getMechanicsManager()->unlockAttempted(getPlayer(), target);
|
||||
// Use the player instead of the caster for vanilla crime compatibility
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -457,7 +457,7 @@ namespace NifOsg
|
|||
{
|
||||
const Nif::NiLODNode* niLodNode = static_cast<const Nif::NiLODNode*>(nifNode);
|
||||
node = handleLodNode(niLodNode);
|
||||
dataVariance = osg::Object::STATIC;
|
||||
dataVariance = osg::Object::DYNAMIC;
|
||||
break;
|
||||
}
|
||||
case Nif::RC_NiSwitchNode:
|
||||
|
@ -476,8 +476,8 @@ namespace NifOsg
|
|||
{
|
||||
bool enabled = nifNode->flags & Nif::NiNode::Flag_ActiveCollision;
|
||||
node = new CollisionSwitch(nifNode->trafo.toMatrix(), enabled);
|
||||
dataVariance = osg::Object::STATIC;
|
||||
|
||||
// This matrix transform must not be combined with another matrix transform.
|
||||
dataVariance = osg::Object::DYNAMIC;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
|
|
|
@ -215,7 +215,6 @@ private:
|
|||
float mMinSize;
|
||||
|
||||
osg::ref_ptr<RootNode> mRootNode;
|
||||
osg::ref_ptr<LodCallback> mLodCallback;
|
||||
};
|
||||
|
||||
QuadTreeWorld::QuadTreeWorld(osg::Group *parent, osg::Group *compileRoot, Resource::ResourceSystem *resourceSystem, Storage *storage, int compMapResolution, float compMapLevel, float lodFactor, int vertexLodMod, float maxCompGeometrySize)
|
||||
|
|
|
@ -53,7 +53,7 @@ master_doc = 'index'
|
|||
|
||||
# General information about the project.
|
||||
project = u'OpenMW'
|
||||
copyright = u'2017, OpenMW Team'
|
||||
copyright = u'2020, OpenMW Team'
|
||||
|
||||
|
||||
# The version info for the project you're documenting, acts as replacement for
|
||||
|
|
Loading…
Reference in a new issue