mirror of
https://github.com/OpenMW/openmw.git
synced 2025-01-21 06:23:53 +00:00
Merge branch 'engarde' into 'master'
Break invisibility after stopping preparing the attack (bug #5976) Closes #5976 See merge request OpenMW/openmw!2199
This commit is contained in:
commit
aee9191627
2 changed files with 6 additions and 1 deletions
|
@ -46,6 +46,7 @@
|
||||||
Bug #5863: GetEffect should return true after the player has teleported
|
Bug #5863: GetEffect should return true after the player has teleported
|
||||||
Bug #5913: Failed assertion during Ritual of Trees quest
|
Bug #5913: Failed assertion during Ritual of Trees quest
|
||||||
Bug #5937: Lights always need to be rotated by 90 degrees
|
Bug #5937: Lights always need to be rotated by 90 degrees
|
||||||
|
Bug #5976: Invisibility is broken when the attack starts instead of when it ends
|
||||||
Bug #5978: NPCs and Creatures talk to and headtrack a player character with a 75% chameleon effect or more
|
Bug #5978: NPCs and Creatures talk to and headtrack a player character with a 75% chameleon effect or more
|
||||||
Bug #5989: Simple water isn't affected by texture filter settings
|
Bug #5989: Simple water isn't affected by texture filter settings
|
||||||
Bug #6037: Launcher: Morrowind content language cannot be set to English
|
Bug #6037: Launcher: Morrowind content language cannot be set to English
|
||||||
|
|
|
@ -1352,7 +1352,6 @@ bool CharacterController::updateState(CharacterState idle)
|
||||||
bool resetIdle = ammunition;
|
bool resetIdle = ammunition;
|
||||||
if(mUpperBodyState == UpperCharState_WeapEquiped && (mHitState == CharState_None || mHitState == CharState_Block))
|
if(mUpperBodyState == UpperCharState_WeapEquiped && (mHitState == CharState_None || mHitState == CharState_Block))
|
||||||
{
|
{
|
||||||
world->breakInvisibility(mPtr);
|
|
||||||
mAttackStrength = 0;
|
mAttackStrength = 0;
|
||||||
|
|
||||||
// Randomize attacks for non-bipedal creatures
|
// Randomize attacks for non-bipedal creatures
|
||||||
|
@ -1397,6 +1396,7 @@ bool CharacterController::updateState(CharacterState idle)
|
||||||
static const bool useCastingAnimations = Settings::Manager::getBool("use magic item animations", "Game");
|
static const bool useCastingAnimations = Settings::Manager::getBool("use magic item animations", "Game");
|
||||||
if (isMagicItem && !useCastingAnimations)
|
if (isMagicItem && !useCastingAnimations)
|
||||||
{
|
{
|
||||||
|
world->breakInvisibility(mPtr);
|
||||||
// Enchanted items by default do not use casting animations
|
// Enchanted items by default do not use casting animations
|
||||||
world->castSpell(mPtr);
|
world->castSpell(mPtr);
|
||||||
resetIdle = false;
|
resetIdle = false;
|
||||||
|
@ -1404,6 +1404,7 @@ bool CharacterController::updateState(CharacterState idle)
|
||||||
}
|
}
|
||||||
else if(!spellid.empty() && canCast)
|
else if(!spellid.empty() && canCast)
|
||||||
{
|
{
|
||||||
|
world->breakInvisibility(mPtr);
|
||||||
MWMechanics::CastSpell cast(mPtr, nullptr, false, mCastingManualSpell);
|
MWMechanics::CastSpell cast(mPtr, nullptr, false, mCastingManualSpell);
|
||||||
cast.playSpellCastingEffects(spellid, isMagicItem);
|
cast.playSpellCastingEffects(spellid, isMagicItem);
|
||||||
|
|
||||||
|
@ -1476,6 +1477,7 @@ bool CharacterController::updateState(CharacterState idle)
|
||||||
}
|
}
|
||||||
else if(mWeaponType == ESM::Weapon::PickProbe)
|
else if(mWeaponType == ESM::Weapon::PickProbe)
|
||||||
{
|
{
|
||||||
|
world->breakInvisibility(mPtr);
|
||||||
MWWorld::ContainerStoreIterator weapon = cls.getInventoryStore(mPtr).getSlot(MWWorld::InventoryStore::Slot_CarriedRight);
|
MWWorld::ContainerStoreIterator weapon = cls.getInventoryStore(mPtr).getSlot(MWWorld::InventoryStore::Slot_CarriedRight);
|
||||||
MWWorld::Ptr item = *weapon;
|
MWWorld::Ptr item = *weapon;
|
||||||
// TODO: this will only work for the player, and needs to be fixed if NPCs should ever use lockpicks/probes.
|
// TODO: this will only work for the player, and needs to be fixed if NPCs should ever use lockpicks/probes.
|
||||||
|
@ -1576,6 +1578,7 @@ bool CharacterController::updateState(CharacterState idle)
|
||||||
animPlaying = mAnimation->getInfo(mCurrentWeapon, &complete);
|
animPlaying = mAnimation->getInfo(mCurrentWeapon, &complete);
|
||||||
if(mUpperBodyState == UpperCharState_MinAttackToMaxAttack && !isKnockedDown())
|
if(mUpperBodyState == UpperCharState_MinAttackToMaxAttack && !isKnockedDown())
|
||||||
{
|
{
|
||||||
|
world->breakInvisibility(mPtr);
|
||||||
float attackStrength = complete;
|
float attackStrength = complete;
|
||||||
float minAttackTime = mAnimation->getTextKeyTime(mCurrentWeapon+": "+mAttackType+" "+"min attack");
|
float minAttackTime = mAnimation->getTextKeyTime(mCurrentWeapon+": "+mAttackType+" "+"min attack");
|
||||||
float maxAttackTime = mAnimation->getTextKeyTime(mCurrentWeapon+": "+mAttackType+" "+"max attack");
|
float maxAttackTime = mAnimation->getTextKeyTime(mCurrentWeapon+": "+mAttackType+" "+"max attack");
|
||||||
|
@ -1703,6 +1706,7 @@ bool CharacterController::updateState(CharacterState idle)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
world->breakInvisibility(mPtr);
|
||||||
if(weapclass != ESM::WeaponType::Ranged && weapclass != ESM::WeaponType::Thrown)
|
if(weapclass != ESM::WeaponType::Ranged && weapclass != ESM::WeaponType::Thrown)
|
||||||
playSwishSound(0.0f);
|
playSwishSound(0.0f);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue