Merge pull request #190 from OpenMW/master

Add OpenMW commits up to 27 Mar 2017
pull/176/head
David Cernat 7 years ago committed by GitHub
commit 7647715dac

4
.gitignore vendored

@ -8,6 +8,10 @@ makefile
build*
prebuilt
##windows build process
/deps
/MSVC*
## doxygen
Doxygen

@ -167,7 +167,7 @@ namespace MWGui
Gui::MWList* mTopicsList;
MyGUI::ScrollBar* mScrollBar;
MyGUI::ProgressBar* mDispositionBar;
MyGUI::EditBox* mDispositionText;
MyGUI::TextBox* mDispositionText;
PersuasionDialog mPersuasionDialog;
};

@ -671,8 +671,9 @@ namespace MWGui
if (mIsDrowning)
{
float intensity = (cos(mDrowningFlashTheta) + 1.0f) / 2.0f;
mDrowningFlash->setColour(MyGUI::Colour(intensity, 0, 0));
float intensity = (cos(mDrowningFlashTheta) + 2.0f) / 3.0f;
mDrowningFlash->setAlpha(intensity);
}
}

@ -169,12 +169,12 @@ namespace MWInput
void InputManager::setPlayerControlsEnabled(bool enabled)
{
int nPlayerChannels = 17;
int nPlayerChannels = 18;
int playerChannels[] = {A_Activate, A_AutoMove, A_AlwaysRun, A_ToggleWeapon,
A_ToggleSpell, A_Rest, A_QuickKey1, A_QuickKey2,
A_QuickKey3, A_QuickKey4, A_QuickKey5, A_QuickKey6,
A_QuickKey7, A_QuickKey8, A_QuickKey9, A_QuickKey10,
A_Use};
A_Use, A_Journal};
for(int i = 0; i < nPlayerChannels; i++) {
int pc = playerChannels[i];
@ -1039,6 +1039,7 @@ namespace MWInput
}
else if(MWBase::Environment::get().getWindowManager()->containsMode(MWGui::GM_Journal))
{
MWBase::Environment::get().getSoundManager()->playSound ("book close", 1.0, 1.0);
MWBase::Environment::get().getWindowManager()->removeGuiMode(MWGui::GM_Journal);
}
}

@ -92,16 +92,23 @@ bool AiFollow::execute (const MWWorld::Ptr& actor, CharacterController& characte
ESM::Position pos = actor.getRefData().getPosition(); //position of the actor
float followDistance = 180;
// When there are multiple actors following the same target, they form a group with each group member at 180*(i+1) distance to the target
int i=0;
// The distances below are approximations based on observations of the original engine.
// If only one actor is following the target, it uses 186.
// If there are multiple actors following the same target, they form a group with each group member at 313 + (130 * i) distance to the target.
short followDistance = 186;
std::list<int> followers = MWBase::Environment::get().getMechanicsManager()->getActorsFollowingIndices(target);
followers.sort();
for (std::list<int>::iterator it = followers.begin(); it != followers.end(); ++it)
if (followers.size() >= 2)
{
if (*it == mFollowIndex)
followDistance *= (i+1);
++i;
followDistance = 313;
short i = 0;
followers.sort();
for (std::list<int>::iterator it = followers.begin(); it != followers.end(); ++it)
{
if (*it == mFollowIndex)
followDistance += 130 * i;
++i;
}
}
if (!mAlwaysFollow) //Update if you only follow for a bit
@ -139,7 +146,7 @@ bool AiFollow::execute (const MWWorld::Ptr& actor, CharacterController& characte
if (!storage.mMoving)
{
const float threshold = 10; // to avoid constant switching between moving/stopping
const short threshold = 10; // to avoid constant switching between moving/stopping
followDistance += threshold;
}

@ -232,8 +232,10 @@ namespace MWMechanics
invStore.autoEquip(ptr);
}
// mWatchedTimeToStartDrowning = -1 for correct drowning state check,
// if stats.getTimeToStartDrowning() == 0 already on game start
MechanicsManager::MechanicsManager()
: mWatchedTimeToStartDrowning(0), mWatchedStatsEmpty (true), mUpdatePlayer (true), mClassSelected (false),
: mWatchedTimeToStartDrowning(-1), mWatchedStatsEmpty (true), mUpdatePlayer (true), mClassSelected (false),
mRaceSelected (false), mAI(true)
{
//buildPlayer no longer here, needs to be done explicitly after all subsystems are up and running

@ -1081,18 +1081,22 @@ namespace MWMechanics
adjustDynamicStat(creatureStats, effectKey.mId-ESM::MagicEffect::RestoreHealth, magnitude);
break;
case ESM::MagicEffect::DamageHealth:
receivedMagicDamage = true;
adjustDynamicStat(creatureStats, effectKey.mId-ESM::MagicEffect::DamageHealth, -magnitude);
break;
case ESM::MagicEffect::DamageMagicka:
case ESM::MagicEffect::DamageFatigue:
receivedMagicDamage = true;
adjustDynamicStat(creatureStats, effectKey.mId-ESM::MagicEffect::DamageHealth, -magnitude);
break;
case ESM::MagicEffect::AbsorbHealth:
case ESM::MagicEffect::AbsorbMagicka:
case ESM::MagicEffect::AbsorbFatigue:
if (magnitude > 0.f)
receivedMagicDamage = true;
adjustDynamicStat(creatureStats, effectKey.mId-ESM::MagicEffect::AbsorbHealth, -magnitude);
break;
case ESM::MagicEffect::AbsorbMagicka:
case ESM::MagicEffect::AbsorbFatigue:
adjustDynamicStat(creatureStats, effectKey.mId-ESM::MagicEffect::AbsorbHealth, -magnitude);
break;
case ESM::MagicEffect::DisintegrateArmor:
{

@ -37,7 +37,7 @@ namespace MWMechanics
int b = std::abs(playerOffer);
int d = (buying)
? int(100 * (a - b) / a)
: int(100 * (b - a) / a);
: int(100 * (b - a) / b);
int clampedDisposition = MWBase::Environment::get().getMechanicsManager()->getDerivedDisposition(merchant);

@ -95,7 +95,6 @@ namespace MWRender
osg::BlendFunc* blendFunc = static_cast<osg::BlendFunc*>(stateset->getAttribute(osg::StateAttribute::BLENDFUNC));
osg::ref_ptr<osg::BlendFunc> newBlendFunc = blendFunc ? new osg::BlendFunc(*blendFunc) : new osg::BlendFunc;
newBlendFunc->setDestinationAlpha(osg::BlendFunc::ONE);
newBlendFunc->setDestinationRGB(osg::BlendFunc::ONE);
newStateSet->setAttribute(newBlendFunc, osg::StateAttribute::ON);
node.setStateSet(newStateSet);
}

@ -3386,6 +3386,9 @@ namespace MWWorld
if (effectIt->mRange != rangeType || (effectIt->mArea <= 0 && !ignore.isEmpty() && ignore.getClass().isActor()))
continue; // Not right range type, or not area effect and hit an actor
if (fromProjectile && effectIt->mArea <= 0)
continue; // Don't play explosion for projectiles with 0-area effects
if (!fromProjectile && effectIt->mRange == ESM::RT_Touch && (!ignore.isEmpty()) && (!ignore.getClass().isActor() && !ignore.getClass().canBeActivated(ignore)))
continue; // Don't play explosion for touch spells on non-activatable objects except when spell is from the projectile enchantment

@ -81,7 +81,7 @@
<Child type="Widget" skin="BTN_BottomLeft" offset="0 20 4 4" align="Bottom Left"/>
<Child type="Widget" skin="BTN_BottomRight" offset="132 20 4 4" align="Bottom Right"/>
<BasisSkin type="SimpleText" offset="4 4 128 16" align="Stretch">
<BasisSkin type="SimpleText" offset="4 3 128 16" align="Stretch">
<State name="disabled" colour="#{fontcolour=disabled}" shift="0"/>
<State name="normal" colour="#{fontcolour=normal}" shift="0"/>
<State name="highlighted" colour="#{fontcolour=normal_over}" shift="0"/>

@ -16,9 +16,11 @@
</Widget>
<!-- The disposition bar-->
<Widget type="ProgressBar" skin="MW_EnergyBar_Blue" position="398 8 166 18"
<Widget type="ProgressBar" skin="MW_Progress_Blue" position="398 8 166 18"
align="Right Top" name="Disposition">
<Widget type="EditBox" skin="MW_DispositionEdit" position_real="0 0 1 1" align="Stretch" name="DispositionText"/>
<Widget type="TextBox" skin="ProgressText" position="0 0 166 14" name="DispositionText" align="Right VCenter">
<Property key="NeedMouse" value="false"/>
</Widget>
</Widget>
<!-- The list of topics -->
<Widget type="MWList" skin="MW_SimpleList" position="398 31 166 328" name="TopicsList" align="Right VStretch">

@ -1,14 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<MyGUI type="Resource" version="1.1">
<Resource type="ResourceSkin" name="MW_DispositionEdit" size="0 0 50 50">
<Property key="FontName" value="Default"/>
<Property key="TextAlign" value="Center"/>
<Property key="Static" value="1"/>
<Property key="WordWrap" value="true"/>
<Property key="TextShadow" value="true"/>
<Child type="TextBox" skin="SandText" offset="0 0 0 -4" align="Stretch" name="Client"/>
</Resource>
</MyGUI>

@ -23,7 +23,7 @@
<Property key="TextAlign" value="Left VCenter"/>
<Property key="TextColour" value="#{fontcolour=normal}"/>
<Child type="TextBox" skin="MW_TextEditClient" offset="4 1 502 18" align="Stretch" name="Client"/>
<Child type="TextBox" skin="MW_TextEditClient" offset="4 0 502 18" align="Stretch" name="Client"/>
</Resource>

@ -32,18 +32,19 @@
</Widget>
<!-- Drowning bar -->
<Widget type="Widget" skin="HUD_Box" position="0 36 220 56" align="Center Top" name="DrowningFrame">
<Widget type="Widget" skin="MW_Dialog" position="0 36 230 58" align="Center Top" name="DrowningFrame">
<Property key="Visible" value="false"/>
<Widget type="TextBox" skin="SandText" position="0 8 220 24" name="DrowningTitle" align="Center Top HStretch">
<Widget type="TextBox" skin="SandText" position="2 7 226 24" name="DrowningTitle" align="Center Top HStretch">
<Property key="Caption" value="#{sBreath}"/>
<Property key="TextAlign" value="Center"/>
<Property key="TextShadow" value="true"/>
<Property key="TextShadowColour" value="0 0 0"/>
</Widget>
<Widget type="ProgressBar" skin="MW_Progress_LightBlue" position="12 36 196 8" align="Center Top" name="Drowning">
<Widget type="Widget" skin="MW_Box" position="15 33 200 10" align="Stretch" name="BoundingBox"/>
<Widget type="ProgressBar" skin="MW_Progress_Drowning_Full" position="17 35 196 6" align="Center Top" name="Drowning">
<Property key="NeedMouse" value="false"/>
</Widget>
<Widget type="Widget" skin="MW_Progress_Drowning" position="14 38 192 4" align="Center Top" name="Flash"/>
<Widget type="Widget" skin="MW_Progress_Drowning_Small" position="19 37 192 2" align="Center Top" name="Flash"/>
</Widget>
<!-- Equipped weapon/selected spell name display for a few seconds after it changes -->

@ -6,7 +6,7 @@
<Widget type="Widget" skin="MW_Dialog" position="0 245 300 48" align="Bottom HCenter" name="LoadingBox">
<Widget type="TextBox" skin="SandText" position="20 8 260 18" align="Stretch" name="LoadingText">
<Widget type="TextBox" skin="SandText" position="20 9 260 18" align="Stretch" name="LoadingText">
<Property key="TextAlign" value="Center"/>
</Widget>

@ -39,11 +39,27 @@
<State name="normal" offset="0 0 16 8"/>
</BasisSkin>
</Resource>
<Resource type="ResourceSkin" name="MW_Progress_Drowning_Full_Small" size="16 8" texture="white" >
<Property key="Colour" value="0.035 0.545 0.545"/>
<BasisSkin type="MainSkin" offset="0 0 16 8" align="Stretch">
<State name="normal" offset="0 0 16 8"/>
</BasisSkin>
</Resource>
<Resource type="ResourceSkin" name="MW_Progress_Drowning_Small" size="16 8" texture="white" >
<Property key="Colour" value="0.785 0 0"/>
<BasisSkin type="MainSkin" offset="0 0 16 8" align="Stretch">
<State name="normal" offset="0 0 16 8"/>
</BasisSkin>
</Resource>
<Resource type="ResourceSkin" name="MW_Progress_Loading_Small" size="16 8" texture="white" >
<Property key="Colour" value="0 0.615 0.620"/>
<BasisSkin type="MainSkin" offset="0 0 16 8" align="Stretch">
<State name="normal" offset="0 0 16 8"/>
</BasisSkin>
</Resource>
<Resource type="ResourceSkin" name="ProgressText" size="16 16">
<Property key="FontName" value="Default"/>
<Property key="TextAlign" value="Top HCenter"/>
<Property key="TextAlign" value="VCenter HCenter"/>
<Property key="TextColour" value="#{fontcolour=normal}"/>
<Property key="TextShadow" value="true"/>
@ -57,7 +73,7 @@
<Property key="TrackFill" value="1"/>
<Child type="Widget" skin="MW_Box" offset="0 0 64 12" align="Stretch"/>
<Child type="Widget" skin="BlackBG" offset="2 2 60 8" align="Stretch" name="Client"/>
<Child type="Widget" skin="TransparentBG" offset="2 2 60 8" align="Stretch" name="Client"/>
</Resource>
<Resource type="ResourceSkin" name="MW_Progress_Green" size="64 12">
@ -65,7 +81,7 @@
<Property key="TrackFill" value="1"/>
<Child type="Widget" skin="MW_Box" offset="0 0 64 12" align="Stretch"/>
<Child type="Widget" skin="BlackBG" offset="2 2 60 8" align="Stretch" name="Client"/>
<Child type="Widget" skin="TransparentBG" offset="2 2 60 8" align="Stretch" name="Client"/>
</Resource>
<Resource type="ResourceSkin" name="MW_Progress_Blue" size="64 12">
@ -73,20 +89,13 @@
<Property key="TrackFill" value="1"/>
<Child type="Widget" skin="MW_Box" offset="0 0 64 12" align="Stretch"/>
<Child type="Widget" skin="BlackBG" offset="2 2 60 8" align="Stretch" name="Client"/>
</Resource>
<Resource type="ResourceSkin" name="MW_Progress_LightBlue" size="64 6">
<Property key="TrackSkin" value="MW_BigTrack_Progress_Blue_Small"/>
<Property key="TrackFill" value="1"/>
<Child type="Widget" skin="MW_Box" offset="0 0 64 6" align="Stretch"/>
<Child type="Widget" skin="BlackBG" offset="2 2 60 2" align="Stretch" name="Client"/>
<Child type="Widget" skin="TransparentBG" offset="2 2 60 8" align="Stretch" name="Client"/>
</Resource>
<Resource type="ResourceSkin" name="MW_Progress_Drowning" size="64 6">
<Property key="TrackSkin" value="MW_BigTrack_Progress_Red_Small"/>
<Resource type="ResourceSkin" name="MW_Progress_Drowning_Full" size="64 6">
<Property key="TrackSkin" value="MW_Progress_Drowning_Full_Small"/>
<Property key="TrackFill" value="1"/>
<Child type="Widget" skin="TransparentBG" offset="2 2 60 2" align="Stretch" name="Client"/>
</Resource>
<Resource type="ResourceSkin" name="MW_ProgressScroll_Loading" size="64 6">
@ -96,8 +105,8 @@
<Property key="VerticalAlignment" value="false"/>
<Property key="MoveToClick" value="false"/>
<Child type="Widget" skin="BlackBG" offset="2 2 60 2" align="Stretch" name="Client"/>
<Child type="Button" skin="MW_BigTrack_Progress_Green_Small" offset="0 0 1 6" align="Left VStretch" name="Track"/>
<Child type="Widget" skin="TransparentBG" offset="2 2 60 2" align="Stretch" name="Client"/>
<Child type="Button" skin="MW_Progress_Loading_Small" offset="0 0 1 6" align="Left VStretch" name="Track"/>
<Child type="Widget" skin="MW_Box" offset="0 0 64 6" align="Stretch"/>
</Resource>

@ -101,7 +101,7 @@
<Property key="ModeDrop" value="true"/>
<Widget type="Widget" skin="MW_Box" position="0 0 100 26" align="Stretch">
<Widget type="TextBox" skin="SandText" position="6 2 71 20" align="Stretch" name="Client">
<Widget type="TextBox" skin="SandText" position="6 3 71 20" align="Stretch" name="Client">
<Property key="TextAlign" value="Left VCenter"/>
</Widget>
<Widget type="ListBox" skin="MW_PopupList" position="65 38 100 200" style="Popup" layer="Popup" name="List">

@ -45,6 +45,7 @@
<Widget type="AutoSizedEditBox" skin="SandText" position="0 0 263 0" name="InfoText">
<Property key="Static" value="true"/>
<Property key="MultiLine" value="true"/>
<Property key="WordWrap" value="true"/>
</Widget>

@ -20,9 +20,9 @@
</Widget>
<Widget type="ProgressBar" skin="MW_Progress_Red" position="74 0 130 18" name="HBar" align="Right Top">
<Property key="NeedMouse" value="false"/>
</Widget>
<Widget type="TextBox" skin="ProgressText" position="74 0 130 18" name="HBarT" align="Right Top">
<Property key="NeedMouse" value="false"/>
<Widget type="TextBox" skin="ProgressText" position="0 0 130 14" name="HBarT" align="Right VCenter">
<Property key="NeedMouse" value="false"/>
</Widget>
</Widget>
</Widget>
@ -40,10 +40,9 @@
<Widget type="ProgressBar" skin="MW_Progress_Blue" position="74 0 130 18" name="MBar" align="Right Top">
<Property key="NeedMouse" value="false"/>
</Widget>
<Widget type="TextBox" skin="ProgressText" position="74 0 130 18" name="MBarT" align="Right Top">
<Property key="NeedMouse" value="false"/>
<Widget type="TextBox" skin="ProgressText" position="0 0 130 14" name="MBarT" align="Right VCenter">
<Property key="NeedMouse" value="false"/>
</Widget>
</Widget>
</Widget>
@ -61,9 +60,9 @@
<Widget type="ProgressBar" skin="MW_Progress_Green" position="74 0 130 18" name="FBar" align="Right Top">
<Property key="NeedMouse" value="false"/>
</Widget>
<Widget type="TextBox" skin="ProgressText" position="74 0 130 18" name="FBarT" align="Right Top">
<Property key="NeedMouse" value="false"/>
<Widget type="TextBox" skin="ProgressText" position="0 0 130 14" name="FBarT" align="Right VCenter">
<Property key="NeedMouse" value="false"/>
</Widget>
</Widget>
</Widget>
</Widget>

@ -21,7 +21,7 @@ color_misc=0,205,205 # ????
<Resource type="ResourceSkin" name="SandText" size="16 16">
<Property key="FontName" value="Default"/>
<Property key="TextAlign" value="Left Bottom"/>
<BasisSkin type="SimpleText" offset="0 0 16 16" align="Stretch">
<BasisSkin type="SimpleText" offset="0 -1 16 16" align="Stretch">
<State name="normal" colour="#{fontcolour=normal}" shift="0"/>
</BasisSkin>
</Resource>
@ -134,12 +134,12 @@ color_misc=0,205,205 # ????
<Resource type="ResourceSkin" name="MW_ChargeBar" size="204 18">
<Child type="ProgressBar" skin="MW_Progress_Red" offset="0 0 204 18" align="Right Top Stretch" name="Bar"/>
<Child type="TextBox" skin="ProgressText" offset="0 0 204 18" align="Right Top Stretch" name="BarText"/>
<Child type="TextBox" skin="ProgressText" offset="0 0 204 14" align="Stretch" name="BarText"/>
</Resource>
<Resource type="ResourceSkin" name="MW_ChargeBar_Blue" size="204 18">
<Child type="ProgressBar" skin="MW_Progress_Blue" offset="0 0 204 18" align="Right Top Stretch" name="Bar"/>
<Child type="TextBox" skin="ProgressText" offset="0 2 204 18" align="Right Top Stretch" name="BarText"/>
<Child type="TextBox" skin="ProgressText" offset="0 1 204 14" align="Right Top Stretch" name="BarText"/>
</Resource>
<Resource type="ResourceSkin" name="MW_DynamicStat_Red" size="204 18">

@ -165,7 +165,7 @@
</Widget>
<Widget type="ProgressBar" skin="MW_Progress_Red" position="50 70 200 20" align="HCenter Bottom" name="SkillProgress">
<Widget type="TextBox" skin="ProgressText" position="0 0 200 20" align="Stretch" name="SkillProgressText">
<Widget type="TextBox" skin="ProgressText" position="0 0 200 16" align="Stretch" name="SkillProgressText">
<Property key="TextAlign" value="Center"/>
</Widget>
</Widget>
@ -211,7 +211,7 @@
</Widget>
<Widget type="ProgressBar" skin="MW_Progress_Red" position="50 30 200 20" align="HCenter Bottom" name="LevelProgress">
<Widget type="TextBox" skin="ProgressText" position="0 0 200 20" align="Stretch" name="LevelProgressText">
<Widget type="TextBox" skin="ProgressText" position="0 0 200 16" align="Stretch" name="LevelProgressText">
<Property key="TextAlign" value="Center"/>
</Widget>
</Widget>

@ -4,10 +4,9 @@
<Widget type="Window" skin="MW_Dialog" layer="Windows" position="0 0 219 40" align="Center" name="_Main">
<Widget type="ProgressBar" skin="MW_Progress_Blue" position="5 6 199 20" name="ProgressBar">
<Widget type="TextBox" skin="SandText" position="0 0 199 20" name="ProgressText">
<Property key="TextAlign" value="Center"/>
<Widget type="TextBox" skin="ProgressText" position="0 0 199 16" name="ProgressText" align="Right VCenter">
<Property key="NeedMouse" value="false"/>
</Widget>
</Widget>
</Widget>
</MyGUI>

@ -9,6 +9,10 @@
</BasisSkin>
</Resource>
<Resource type="ResourceSkin" name="TransparentBG" size="8 8" texture="transparent">
<Property key="Colour" value="#{fontcolour=background}"/>
</Resource>
<!-- Define the borders for pin button (up) -->
<Resource type="ResourceSkin" name="PU_B" size="12 2" texture="textures\menu_rightbuttonup_bottom.dds">
<Property key="NeedMouse" value="false"/>

Loading…
Cancel
Save