From ea275a8aa85c6952e015a85e5fe5e30d0deced3d Mon Sep 17 00:00:00 2001 From: scrawl Date: Mon, 30 Apr 2012 18:11:34 +0200 Subject: [PATCH 01/30] extended the list of spells with no magnitude / no duration --- apps/openmw/mwgui/widgets.cpp | 100 ++++++++++++++++++++++++++++------ apps/openmw/mwgui/widgets.hpp | 2 + 2 files changed, 86 insertions(+), 16 deletions(-) diff --git a/apps/openmw/mwgui/widgets.cpp b/apps/openmw/mwgui/widgets.cpp index 2f5af64736..0af035d310 100644 --- a/apps/openmw/mwgui/widgets.cpp +++ b/apps/openmw/mwgui/widgets.cpp @@ -356,18 +356,6 @@ void MWSpellEffect::updateWidgets() if (!mWindowManager) return; - // lists effects that have no magnitude (e.g. invisiblity) - /// \todo this list is probably incomplete - std::vector effectsWithoutMagnitude; - effectsWithoutMagnitude.push_back("sEffectInvisibility"); - effectsWithoutMagnitude.push_back("sEffectStuntedMagicka"); - effectsWithoutMagnitude.push_back("sEffectParalyze"); - - // lists effects that have no duration (e.g. open lock) - /// \todo this list is probably incomplete - std::vector effectsWithoutDuration; - effectsWithoutDuration.push_back("sEffectOpen"); - const ESMS::ESMStore &store = mWindowManager->getStore(); const ESM::MagicEffect *magicEffect = store.magicEffects.search(effect.effectID); if (textWidget) @@ -401,8 +389,7 @@ void MWSpellEffect::updateWidgets() spellLine += " " + mWindowManager->getGameSettingString(attributes[effect.attribute], ""); } - bool hasMagnitude = (std::find(effectsWithoutMagnitude.begin(), effectsWithoutMagnitude.end(), effectIDStr) == effectsWithoutMagnitude.end()); - if ((effect.magnMin >= 0 || effect.magnMax >= 0) && hasMagnitude) + if ((effect.magnMin >= 0 || effect.magnMax >= 0) && effectHasMagnitude(effectIDStr)) { if (effect.magnMin == effect.magnMax) spellLine += " " + boost::lexical_cast(effect.magnMin) + " " + ((effect.magnMin == 1) ? pt : pts); @@ -415,8 +402,7 @@ void MWSpellEffect::updateWidgets() // constant effects have no duration and no target if (!(mFlags & MWEffectList::EF_Constant)) { - bool hasDuration = (std::find(effectsWithoutDuration.begin(), effectsWithoutDuration.end(), effectIDStr) == effectsWithoutDuration.end()); - if (effect.duration >= 0 && hasDuration) + if (effect.duration >= 0 && effectHasDuration(effectIDStr)) { spellLine += " " + mWindowManager->getGameSettingString("sfor", "") + " " + boost::lexical_cast(effect.duration) + ((effect.duration == 1) ? sec : secs); } @@ -590,11 +576,93 @@ std::string MWSpellEffect::effectIDToString(const short effectID) names[35] ="sEffectWeaknesstoPoison"; names[30] ="sEffectWeaknesstoShock"; + /// \todo bloodmoon and tribunal spells - can't find the IDs anywhere? + assert(names.find(effectID) != names.end() && "Unimplemented effect type"); return names[effectID]; } +bool MWSpellEffect::effectHasDuration(const std::string& effect) +{ + // lists effects that have no duration (e.g. open lock) + std::vector effectsWithoutDuration; + effectsWithoutDuration.push_back("sEffectOpen"); + effectsWithoutDuration.push_back("sOpen"); + effectsWithoutDuration.push_back("sLock"); + effectsWithoutDuration.push_back("sDispel"); + effectsWithoutDuration.push_back("sSunDamage"); + effectsWithoutDuration.push_back("sCorprus"); + effectsWithoutDuration.push_back("sVampirism"); + effectsWithoutDuration.push_back("sMark"); + effectsWithoutDuration.push_back("sRecall"); + effectsWithoutDuration.push_back("sDivineIntervention"); + effectsWithoutDuration.push_back("sAlmsiviIntervention"); + effectsWithoutDuration.push_back("sCureCommonDisease"); + effectsWithoutDuration.push_back("sCureBlightDisease"); + effectsWithoutDuration.push_back("sCureCorprusDisease"); + effectsWithoutDuration.push_back("sCurePoison"); + effectsWithoutDuration.push_back("sCureParalyzation"); + effectsWithoutDuration.push_back("sRemoveCurse"); + + return (std::find(effectsWithoutDuration.begin(), effectsWithoutDuration.end(), effect) == effectsWithoutDuration.end()); +} + +bool MWSpellEffect::effectHasMagnitude(const std::string& effect) +{ + // lists effects that have no magnitude (e.g. invisiblity) + std::vector effectsWithoutMagnitude; + effectsWithoutMagnitude.push_back("sEffectInvisibility"); + effectsWithoutMagnitude.push_back("sEffectStuntedMagicka"); + effectsWithoutMagnitude.push_back("sEffectParalyze"); + effectsWithoutMagnitude.push_back("sSoultrap"); + effectsWithoutMagnitude.push_back("sSilence"); + effectsWithoutMagnitude.push_back("sParalyze"); + effectsWithoutMagnitude.push_back("sInvisibility"); + effectsWithoutMagnitude.push_back("sWaterWalking"); + effectsWithoutMagnitude.push_back("sWaterBreathing"); + effectsWithoutMagnitude.push_back("sSummonScamp"); + effectsWithoutMagnitude.push_back("sSummonClannfear"); + effectsWithoutMagnitude.push_back("sSummonDaedroth"); + effectsWithoutMagnitude.push_back("sSummonDremora"); + effectsWithoutMagnitude.push_back("sSummonAncestralGhost"); + effectsWithoutMagnitude.push_back("sSummonSkeletalMinion"); + effectsWithoutMagnitude.push_back("sSummonBonewalker"); + effectsWithoutMagnitude.push_back("sSummonGreaterBonewalker"); + effectsWithoutMagnitude.push_back("sSummonBonelord"); + effectsWithoutMagnitude.push_back("sSummonWingedTwilight"); + effectsWithoutMagnitude.push_back("sSummonHunger"); + effectsWithoutMagnitude.push_back("sSummonGoldenSaint"); + effectsWithoutMagnitude.push_back("sSummonFlameAtronach"); + effectsWithoutMagnitude.push_back("sSummonFrostAtronach"); + effectsWithoutMagnitude.push_back("sSummonStormAtronach"); + effectsWithoutMagnitude.push_back("sSummonCenturionSphere"); + effectsWithoutMagnitude.push_back("sBoundDagger"); + effectsWithoutMagnitude.push_back("sBoundLongsword"); + effectsWithoutMagnitude.push_back("sBoundMace"); + effectsWithoutMagnitude.push_back("sBoundBattleAxe"); + effectsWithoutMagnitude.push_back("sBoundSpear"); + effectsWithoutMagnitude.push_back("sBoundLongbow"); + effectsWithoutMagnitude.push_back("sBoundCuirass"); + effectsWithoutMagnitude.push_back("sBoundHelm"); + effectsWithoutMagnitude.push_back("sBoundBoots"); + effectsWithoutMagnitude.push_back("sBoundShield"); + effectsWithoutMagnitude.push_back("sBoundGloves"); + effectsWithoutMagnitude.push_back("sStuntedMagicka"); + effectsWithoutMagnitude.push_back("sMark"); + effectsWithoutMagnitude.push_back("sRecall"); + effectsWithoutMagnitude.push_back("sDivineIntervention"); + effectsWithoutMagnitude.push_back("sAlmsiviIntervention"); + effectsWithoutMagnitude.push_back("sCureCommonDisease"); + effectsWithoutMagnitude.push_back("sCureBlightDisease"); + effectsWithoutMagnitude.push_back("sCureCorprusDisease"); + effectsWithoutMagnitude.push_back("sCurePoison"); + effectsWithoutMagnitude.push_back("sCureParalyzation"); + effectsWithoutMagnitude.push_back("sRemoveCurse"); + + return (std::find(effectsWithoutMagnitude.begin(), effectsWithoutMagnitude.end(), effect) == effectsWithoutMagnitude.end()); +} + MWSpellEffect::~MWSpellEffect() { } diff --git a/apps/openmw/mwgui/widgets.hpp b/apps/openmw/mwgui/widgets.hpp index c0e62533d8..74da7fc933 100644 --- a/apps/openmw/mwgui/widgets.hpp +++ b/apps/openmw/mwgui/widgets.hpp @@ -197,6 +197,8 @@ namespace MWGui void setFlags(int flags) { mFlags = flags; } std::string effectIDToString(const short effectID); + bool effectHasMagnitude (const std::string& effect); + bool effectHasDuration (const std::string& effect); const SpellEffectValue &getSpellEffect() const { return effect; } From fc06dc72c9f94774851452747d0993b6722c39ed Mon Sep 17 00:00:00 2001 From: scrawl Date: Mon, 30 Apr 2012 18:20:44 +0200 Subject: [PATCH 02/30] small fix --- apps/openmw/mwgui/widgets.cpp | 120 +++++++++++++++++----------------- 1 file changed, 60 insertions(+), 60 deletions(-) diff --git a/apps/openmw/mwgui/widgets.cpp b/apps/openmw/mwgui/widgets.cpp index 0af035d310..3c7f33ecd4 100644 --- a/apps/openmw/mwgui/widgets.cpp +++ b/apps/openmw/mwgui/widgets.cpp @@ -588,22 +588,22 @@ bool MWSpellEffect::effectHasDuration(const std::string& effect) // lists effects that have no duration (e.g. open lock) std::vector effectsWithoutDuration; effectsWithoutDuration.push_back("sEffectOpen"); - effectsWithoutDuration.push_back("sOpen"); - effectsWithoutDuration.push_back("sLock"); - effectsWithoutDuration.push_back("sDispel"); - effectsWithoutDuration.push_back("sSunDamage"); - effectsWithoutDuration.push_back("sCorprus"); - effectsWithoutDuration.push_back("sVampirism"); - effectsWithoutDuration.push_back("sMark"); - effectsWithoutDuration.push_back("sRecall"); - effectsWithoutDuration.push_back("sDivineIntervention"); - effectsWithoutDuration.push_back("sAlmsiviIntervention"); - effectsWithoutDuration.push_back("sCureCommonDisease"); - effectsWithoutDuration.push_back("sCureBlightDisease"); - effectsWithoutDuration.push_back("sCureCorprusDisease"); - effectsWithoutDuration.push_back("sCurePoison"); - effectsWithoutDuration.push_back("sCureParalyzation"); - effectsWithoutDuration.push_back("sRemoveCurse"); + effectsWithoutDuration.push_back("sEffectLock"); + effectsWithoutDuration.push_back("sEffectDispel"); + effectsWithoutDuration.push_back("sEffectSunDamage"); + effectsWithoutDuration.push_back("sEffectCorpus"); + effectsWithoutDuration.push_back("sEffectVampirism"); + effectsWithoutDuration.push_back("sEffectMark"); + effectsWithoutDuration.push_back("sEffectRecall"); + effectsWithoutDuration.push_back("sEffectDivineIntervention"); + effectsWithoutDuration.push_back("sEffectAlmsiviIntervention"); + effectsWithoutDuration.push_back("sEffectCureCommonDisease"); + effectsWithoutDuration.push_back("sEffectCureBlightDisease"); + effectsWithoutDuration.push_back("sEffectCureCorprusDisease"); + effectsWithoutDuration.push_back("sEffectCurePoison"); + effectsWithoutDuration.push_back("sEffectCureParalyzation"); + effectsWithoutDuration.push_back("sEffectRemoveCurse"); + effectsWithoutDuration.push_back("sEffectRestoreAttribute"); return (std::find(effectsWithoutDuration.begin(), effectsWithoutDuration.end(), effect) == effectsWithoutDuration.end()); } @@ -615,50 +615,50 @@ bool MWSpellEffect::effectHasMagnitude(const std::string& effect) effectsWithoutMagnitude.push_back("sEffectInvisibility"); effectsWithoutMagnitude.push_back("sEffectStuntedMagicka"); effectsWithoutMagnitude.push_back("sEffectParalyze"); - effectsWithoutMagnitude.push_back("sSoultrap"); - effectsWithoutMagnitude.push_back("sSilence"); - effectsWithoutMagnitude.push_back("sParalyze"); - effectsWithoutMagnitude.push_back("sInvisibility"); - effectsWithoutMagnitude.push_back("sWaterWalking"); - effectsWithoutMagnitude.push_back("sWaterBreathing"); - effectsWithoutMagnitude.push_back("sSummonScamp"); - effectsWithoutMagnitude.push_back("sSummonClannfear"); - effectsWithoutMagnitude.push_back("sSummonDaedroth"); - effectsWithoutMagnitude.push_back("sSummonDremora"); - effectsWithoutMagnitude.push_back("sSummonAncestralGhost"); - effectsWithoutMagnitude.push_back("sSummonSkeletalMinion"); - effectsWithoutMagnitude.push_back("sSummonBonewalker"); - effectsWithoutMagnitude.push_back("sSummonGreaterBonewalker"); - effectsWithoutMagnitude.push_back("sSummonBonelord"); - effectsWithoutMagnitude.push_back("sSummonWingedTwilight"); - effectsWithoutMagnitude.push_back("sSummonHunger"); - effectsWithoutMagnitude.push_back("sSummonGoldenSaint"); - effectsWithoutMagnitude.push_back("sSummonFlameAtronach"); - effectsWithoutMagnitude.push_back("sSummonFrostAtronach"); - effectsWithoutMagnitude.push_back("sSummonStormAtronach"); - effectsWithoutMagnitude.push_back("sSummonCenturionSphere"); - effectsWithoutMagnitude.push_back("sBoundDagger"); - effectsWithoutMagnitude.push_back("sBoundLongsword"); - effectsWithoutMagnitude.push_back("sBoundMace"); - effectsWithoutMagnitude.push_back("sBoundBattleAxe"); - effectsWithoutMagnitude.push_back("sBoundSpear"); - effectsWithoutMagnitude.push_back("sBoundLongbow"); - effectsWithoutMagnitude.push_back("sBoundCuirass"); - effectsWithoutMagnitude.push_back("sBoundHelm"); - effectsWithoutMagnitude.push_back("sBoundBoots"); - effectsWithoutMagnitude.push_back("sBoundShield"); - effectsWithoutMagnitude.push_back("sBoundGloves"); - effectsWithoutMagnitude.push_back("sStuntedMagicka"); - effectsWithoutMagnitude.push_back("sMark"); - effectsWithoutMagnitude.push_back("sRecall"); - effectsWithoutMagnitude.push_back("sDivineIntervention"); - effectsWithoutMagnitude.push_back("sAlmsiviIntervention"); - effectsWithoutMagnitude.push_back("sCureCommonDisease"); - effectsWithoutMagnitude.push_back("sCureBlightDisease"); - effectsWithoutMagnitude.push_back("sCureCorprusDisease"); - effectsWithoutMagnitude.push_back("sCurePoison"); - effectsWithoutMagnitude.push_back("sCureParalyzation"); - effectsWithoutMagnitude.push_back("sRemoveCurse"); + effectsWithoutMagnitude.push_back("sEffectSoultrap"); + effectsWithoutMagnitude.push_back("sEffectSilence"); + effectsWithoutMagnitude.push_back("sEffectParalyze"); + effectsWithoutMagnitude.push_back("sEffectInvisibility"); + effectsWithoutMagnitude.push_back("sEffectWaterWalking"); + effectsWithoutMagnitude.push_back("sEffectWaterBreathing"); + effectsWithoutMagnitude.push_back("sEffectSummonScamp"); + effectsWithoutMagnitude.push_back("sEffectSummonClannfear"); + effectsWithoutMagnitude.push_back("sEffectSummonDaedroth"); + effectsWithoutMagnitude.push_back("sEffectSummonDremora"); + effectsWithoutMagnitude.push_back("sEffectSummonAncestralGhost"); + effectsWithoutMagnitude.push_back("sEffectSummonSkeletalMinion"); + effectsWithoutMagnitude.push_back("sEffectSummonBonewalker"); + effectsWithoutMagnitude.push_back("sEffectSummonGreaterBonewalker"); + effectsWithoutMagnitude.push_back("sEffectSummonBonelord"); + effectsWithoutMagnitude.push_back("sEffectSummonWingedTwilight"); + effectsWithoutMagnitude.push_back("sEffectSummonHunger"); + effectsWithoutMagnitude.push_back("sEffectSummonGoldenSaint"); + effectsWithoutMagnitude.push_back("sEffectSummonFlameAtronach"); + effectsWithoutMagnitude.push_back("sEffectSummonFrostAtronach"); + effectsWithoutMagnitude.push_back("sEffectSummonStormAtronach"); + effectsWithoutMagnitude.push_back("sEffectSummonCenturionSphere"); + effectsWithoutMagnitude.push_back("sEffectBoundDagger"); + effectsWithoutMagnitude.push_back("sEffectBoundLongsword"); + effectsWithoutMagnitude.push_back("sEffectBoundMace"); + effectsWithoutMagnitude.push_back("sEffectBoundBattleAxe"); + effectsWithoutMagnitude.push_back("sEffectBoundSpear"); + effectsWithoutMagnitude.push_back("sEffectBoundLongbow"); + effectsWithoutMagnitude.push_back("sEffectBoundCuirass"); + effectsWithoutMagnitude.push_back("sEffectBoundHelm"); + effectsWithoutMagnitude.push_back("sEffectBoundBoots"); + effectsWithoutMagnitude.push_back("sEffectBoundShield"); + effectsWithoutMagnitude.push_back("sEffectBoundGloves"); + effectsWithoutMagnitude.push_back("sEffectStuntedMagicka"); + effectsWithoutMagnitude.push_back("sEffectMark"); + effectsWithoutMagnitude.push_back("sEffectRecall"); + effectsWithoutMagnitude.push_back("sEffectDivineIntervention"); + effectsWithoutMagnitude.push_back("sEffectAlmsiviIntervention"); + effectsWithoutMagnitude.push_back("sEffectCureCommonDisease"); + effectsWithoutMagnitude.push_back("sEffectCureBlightDisease"); + effectsWithoutMagnitude.push_back("sEffectCureCorprusDisease"); + effectsWithoutMagnitude.push_back("sEffectCurePoison"); + effectsWithoutMagnitude.push_back("sEffectCureParalyzation"); + effectsWithoutMagnitude.push_back("sEffectRemoveCurse"); return (std::find(effectsWithoutMagnitude.begin(), effectsWithoutMagnitude.end(), effect) == effectsWithoutMagnitude.end()); } From 6d21fe3115518c36fec2877a1c9048a8941c3927 Mon Sep 17 00:00:00 2001 From: scrawl Date: Mon, 30 Apr 2012 21:07:25 +0200 Subject: [PATCH 03/30] fixed mygui leaking some stuff resulting in lower fps after looking at tooltips and low-quality text --- apps/openmw/mwgui/tooltips.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/apps/openmw/mwgui/tooltips.cpp b/apps/openmw/mwgui/tooltips.cpp index 90b5baa679..e1cb051111 100644 --- a/apps/openmw/mwgui/tooltips.cpp +++ b/apps/openmw/mwgui/tooltips.cpp @@ -31,13 +31,10 @@ void ToolTips::onFrame(float frameDuration) { /// \todo Store a MWWorld::Ptr in the widget user data, retrieve it here and construct a tooltip dynamically - /// \todo we are destroying/creating the tooltip widgets every frame here, - /// because the tooltip might change (e.g. when trap is activated) - /// is there maybe a better way (listener when the object changes)? - for (size_t i=0; igetChildCount(); ++i) - { - mDynamicToolTipBox->_destroyChildWidget(mDynamicToolTipBox->getChildAt(i)); - } + MyGUI::Gui::getInstance().destroyWidget(mDynamicToolTipBox); + mDynamicToolTipBox = mMainWidget->createWidget("HUD_Box", + IntCoord(0, 0, mMainWidget->getCoord().width, mMainWidget->getCoord().height), + Align::Stretch, "DynamicToolTipBox"); const IntSize &viewSize = RenderManager::getInstance().getViewSize(); From 48e3c4382376089e2657e665469eeb871c1f352b Mon Sep 17 00:00:00 2001 From: scrawl Date: Mon, 30 Apr 2012 21:36:45 +0200 Subject: [PATCH 04/30] added the bloodmoon/tribunal spells --- apps/openmw/mwgui/widgets.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/apps/openmw/mwgui/widgets.cpp b/apps/openmw/mwgui/widgets.cpp index 3c7f33ecd4..0422bb0e23 100644 --- a/apps/openmw/mwgui/widgets.cpp +++ b/apps/openmw/mwgui/widgets.cpp @@ -576,7 +576,15 @@ std::string MWSpellEffect::effectIDToString(const short effectID) names[35] ="sEffectWeaknesstoPoison"; names[30] ="sEffectWeaknesstoShock"; - /// \todo bloodmoon and tribunal spells - can't find the IDs anywhere? + // bloodmoon + names[138] ="sEffectSummonCreature01"; + names[139] ="sEffectSummonCreature02"; + names[140] ="sEffectSummonCreature03"; + names[141] ="sEffectSummonCreature04"; + names[142] ="sEffectSummonCreature05"; + + // tribunal + names[137] ="sEffectSummonFabricant"; assert(names.find(effectID) != names.end() && "Unimplemented effect type"); @@ -659,6 +667,12 @@ bool MWSpellEffect::effectHasMagnitude(const std::string& effect) effectsWithoutMagnitude.push_back("sEffectCurePoison"); effectsWithoutMagnitude.push_back("sEffectCureParalyzation"); effectsWithoutMagnitude.push_back("sEffectRemoveCurse"); + effectsWithoutMagnitude.push_back("sEffectSummonCreature01"); + effectsWithoutMagnitude.push_back("sEffectSummonCreature02"); + effectsWithoutMagnitude.push_back("sEffectSummonCreature03"); + effectsWithoutMagnitude.push_back("sEffectSummonCreature04"); + effectsWithoutMagnitude.push_back("sEffectSummonCreature05"); + effectsWithoutMagnitude.push_back("sEffectSummonFabricant"); return (std::find(effectsWithoutMagnitude.begin(), effectsWithoutMagnitude.end(), effect) == effectsWithoutMagnitude.end()); } From bd132074af1541b00b3d458fb7283199a1ba17f0 Mon Sep 17 00:00:00 2001 From: scrawl Date: Mon, 30 Apr 2012 22:37:23 +0200 Subject: [PATCH 05/30] some formatting tweaks --- apps/openmw/mwgui/tooltips.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/apps/openmw/mwgui/tooltips.cpp b/apps/openmw/mwgui/tooltips.cpp index e1cb051111..9d7a7ee874 100644 --- a/apps/openmw/mwgui/tooltips.cpp +++ b/apps/openmw/mwgui/tooltips.cpp @@ -53,7 +53,6 @@ void ToolTips::onFrame(float frameDuration) std::string text = focus->getUserString("ToolTipText"); ToolTipInfo info; - if (type == "") { mDynamicToolTipBox->setVisible(false); @@ -61,7 +60,7 @@ void ToolTips::onFrame(float frameDuration) } else if (type == "Text") { - info.caption = text; + info.text = text; } else if (type == "CaptionText") { @@ -197,8 +196,8 @@ IntSize ToolTips::createToolTip(const ToolTipInfo& info) const IntPoint padding(8, 8); - const int imageCaptionHPadding = 8; - const int imageCaptionVPadding = 4; + const int imageCaptionHPadding = (caption != "" ? 8 : 0); + const int imageCaptionVPadding = (caption != "" ? 4 : 0); std::string realImage = "icons\\" + image; findImageExtension(realImage); @@ -208,7 +207,7 @@ IntSize ToolTips::createToolTip(const ToolTipInfo& info) captionWidget->setCaption(caption); IntSize captionSize = captionWidget->getTextSize(); - int captionHeight = std::max(captionSize.height, imageSize); + int captionHeight = std::max(caption != "" ? captionSize.height : 0, imageSize); EditBox* textWidget = mDynamicToolTipBox->createWidget("SandText", IntCoord(0, captionHeight+imageCaptionVPadding, 300, 300-captionHeight-imageCaptionVPadding), Align::Stretch, "ToolTipText"); textWidget->setProperty("Static", "true"); From e4b057be300169c45e242b946b614311f71d3f70 Mon Sep 17 00:00:00 2001 From: scrawl Date: Tue, 1 May 2012 21:49:00 +0200 Subject: [PATCH 06/30] translated journal notification --- apps/openmw/mwdialogue/journal.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/openmw/mwdialogue/journal.cpp b/apps/openmw/mwdialogue/journal.cpp index e0245406ef..eb828a76cb 100644 --- a/apps/openmw/mwdialogue/journal.cpp +++ b/apps/openmw/mwdialogue/journal.cpp @@ -6,6 +6,8 @@ #include "../mwgui/window_manager.hpp" #include "../mwgui/messagebox.hpp" +#include "../mwworld/world.hpp" + namespace MWDialogue { Quest& Journal::getQuest (const std::string& id) @@ -38,7 +40,7 @@ namespace MWDialogue quest.addEntry (entry, *MWBase::Environment::get().getWorld()); // we are doing slicing on purpose here std::vector empty; - std::string notification = "Your Journal has been updated."; + std::string notification = MWBase::Environment::get().getWorld()->getStore().gameSettings.search("sJournalEntry")->str; MWBase::Environment::get().getWindowManager()->messageBox (notification, empty); } From dd8c66b479d9de8a508ba493d3fa70fbb38958c9 Mon Sep 17 00:00:00 2001 From: scrawl Date: Tue, 1 May 2012 21:54:30 +0200 Subject: [PATCH 07/30] notification when screenshot was taken --- apps/openmw/mwinput/inputmanager.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/apps/openmw/mwinput/inputmanager.cpp b/apps/openmw/mwinput/inputmanager.cpp index c2233f6265..9786c6768e 100644 --- a/apps/openmw/mwinput/inputmanager.cpp +++ b/apps/openmw/mwinput/inputmanager.cpp @@ -132,6 +132,9 @@ namespace MWInput void screenshot() { mEngine.screenshot(); + + std::vector empty; + windows.messageBox ("Screenshot saved", empty); } /* toggleInventory() is called when the user presses the button to toggle the inventory screen. */ From c0e12d0e56d5cadc6125bf46fb9072bb78f9b7df Mon Sep 17 00:00:00 2001 From: scrawl Date: Thu, 3 May 2012 01:11:49 +0200 Subject: [PATCH 08/30] class dialog fix --- apps/openmw/mwgui/charactercreation.cpp | 1 + apps/openmw/mwgui/class.cpp | 2 ++ 2 files changed, 3 insertions(+) diff --git a/apps/openmw/mwgui/charactercreation.cpp b/apps/openmw/mwgui/charactercreation.cpp index 9a23758558..446961a87b 100644 --- a/apps/openmw/mwgui/charactercreation.cpp +++ b/apps/openmw/mwgui/charactercreation.cpp @@ -171,6 +171,7 @@ void CharacterCreation::spawnDialog(const char id) if (mCreateClassDialog) mWM->removeDialog(mCreateClassDialog); mCreateClassDialog = new CreateClassDialog(*mWM); + mCreateClassDialog->setNextButtonShow(mCreationStage >= CSE_ClassChosen); mCreateClassDialog->eventDone += MyGUI::newDelegate(this, &CharacterCreation::onCreateClassDialogDone); mCreateClassDialog->eventBack += MyGUI::newDelegate(this, &CharacterCreation::onCreateClassDialogBack); mCreateClassDialog->open(); diff --git a/apps/openmw/mwgui/class.cpp b/apps/openmw/mwgui/class.cpp index 9f1fc5d2a5..e654f7c908 100644 --- a/apps/openmw/mwgui/class.cpp +++ b/apps/openmw/mwgui/class.cpp @@ -111,6 +111,7 @@ PickClassDialog::PickClassDialog(WindowManager& parWindowManager) MyGUI::ButtonPtr backButton; getWidget(backButton, "BackButton"); backButton->eventMouseButtonClick += MyGUI::newDelegate(this, &PickClassDialog::onBackClicked); + backButton->setCaption(mWindowManager.getGameSettingString("sBack", "")); MyGUI::ButtonPtr okButton; getWidget(okButton, "OKButton"); @@ -431,6 +432,7 @@ CreateClassDialog::CreateClassDialog(WindowManager& parWindowManager) MyGUI::ButtonPtr backButton; getWidget(backButton, "BackButton"); backButton->eventMouseButtonClick += MyGUI::newDelegate(this, &CreateClassDialog::onBackClicked); + backButton->setCaption(mWindowManager.getGameSettingString("sBack", "")); MyGUI::ButtonPtr okButton; getWidget(okButton, "OKButton"); From 0e6b82284fe0beab83a2bc769c133d66c7c605f2 Mon Sep 17 00:00:00 2001 From: scrawl Date: Thu, 3 May 2012 03:33:33 +0200 Subject: [PATCH 09/30] book & scroll windows --- apps/openmw/CMakeLists.txt | 2 +- apps/openmw/mwgui/bookwindow.cpp | 15 +++++++++++++++ apps/openmw/mwgui/bookwindow.hpp | 20 ++++++++++++++++++++ apps/openmw/mwgui/journalwindow.cpp | 7 ------- apps/openmw/mwgui/journalwindow.hpp | 9 --------- apps/openmw/mwgui/scrollwindow.cpp | 14 ++++++++++++++ apps/openmw/mwgui/scrollwindow.hpp | 19 +++++++++++++++++++ apps/openmw/mwgui/window_manager.cpp | 6 ++++++ apps/openmw/mwgui/window_manager.hpp | 4 ++++ files/mygui/CMakeLists.txt | 3 +++ files/mygui/core.xml | 1 + files/mygui/openmw_book_layout.xml | 20 ++++++++++++++++++++ files/mygui/openmw_journal_layout.xml | 7 ++----- files/mygui/openmw_journal_skin.xml | 6 +++--- files/mygui/openmw_scroll_layout.xml | 16 ++++++++++++++++ files/mygui/openmw_scroll_skin.xml | 15 +++++++++++++++ 16 files changed, 139 insertions(+), 25 deletions(-) create mode 100644 apps/openmw/mwgui/bookwindow.cpp create mode 100644 apps/openmw/mwgui/bookwindow.hpp create mode 100644 apps/openmw/mwgui/scrollwindow.cpp create mode 100644 apps/openmw/mwgui/scrollwindow.hpp create mode 100644 files/mygui/openmw_book_layout.xml create mode 100644 files/mygui/openmw_scroll_layout.xml create mode 100644 files/mygui/openmw_scroll_skin.xml diff --git a/apps/openmw/CMakeLists.txt b/apps/openmw/CMakeLists.txt index 79ea262e68..0fc841ce6e 100644 --- a/apps/openmw/CMakeLists.txt +++ b/apps/openmw/CMakeLists.txt @@ -25,7 +25,7 @@ add_openmw_dir (mwinput add_openmw_dir (mwgui layouts text_input widgets race class birth review window_manager console dialogue dialogue_history window_base stats_window messagebox journalwindow charactercreation - map_window window_pinnable_base cursorreplace tooltips + map_window window_pinnable_base cursorreplace tooltips scrollwindow bookwindow ) add_openmw_dir (mwdialogue diff --git a/apps/openmw/mwgui/bookwindow.cpp b/apps/openmw/mwgui/bookwindow.cpp new file mode 100644 index 0000000000..ce816a6693 --- /dev/null +++ b/apps/openmw/mwgui/bookwindow.cpp @@ -0,0 +1,15 @@ +#include "bookwindow.hpp" + +using namespace MWGui; + +BookWindow::BookWindow(WindowManager& parWindowManager) : + WindowBase("openmw_book_layout.xml", parWindowManager) +{ + //setVisible(false); + center(); +} + +void BookWindow::open(MWWorld::Ptr book) +{ +} + diff --git a/apps/openmw/mwgui/bookwindow.hpp b/apps/openmw/mwgui/bookwindow.hpp new file mode 100644 index 0000000000..57f45f0172 --- /dev/null +++ b/apps/openmw/mwgui/bookwindow.hpp @@ -0,0 +1,20 @@ +#ifndef MWGUI_BOOKWINDOW_H +#define MWGUI_BOOKWINDOW_H + +#include "window_base.hpp" + +#include "../mwworld/ptr.hpp" + +namespace MWGui +{ + class BookWindow : public WindowBase + { + public: + BookWindow(WindowManager& parWindowManager); + void open(MWWorld::Ptr book); + }; + +} + +#endif + diff --git a/apps/openmw/mwgui/journalwindow.cpp b/apps/openmw/mwgui/journalwindow.cpp index e67eda7771..4030911a00 100644 --- a/apps/openmw/mwgui/journalwindow.cpp +++ b/apps/openmw/mwgui/journalwindow.cpp @@ -109,9 +109,6 @@ MWGui::JournalWindow::JournalWindow (WindowManager& parWindowManager) //std::list list = formatText("OpenMW rgh dsfg sqef srg ZT uzql n ZLIEHRF LQSJH GLOIjf qjfmj hslkdgn jlkdjhg qlr isgli shli uhs fiuh qksf cg ksjnf lkqsnbf ksbf sbfkl zbf kuyzflkj sbgdfkj zlfh ozhjfmo hzmfh lizuf rty qzt ezy tkyEZT RYYJ DG fgh is an open-source implementation of the game engine found in the game Morrowind. This is a dumb test text msodjbg smojg smoig fiiinnn"); //std::list list = formatText(); //displayLeftText(list.front()); - - MyGUI::WindowPtr t = static_cast(mMainWidget); - t->eventWindowChangeCoord += MyGUI::newDelegate(this, &JournalWindow::onWindowResize); } void MWGui::JournalWindow::open() @@ -159,10 +156,6 @@ void MWGui::JournalWindow::open() } } -void MWGui::JournalWindow::onWindowResize(MyGUI::Window* window) -{ -} - void MWGui::JournalWindow::displayLeftText(std::string text) { mLeftTextWidget->eraseText(0,mLeftTextWidget->getTextLength()); diff --git a/apps/openmw/mwgui/journalwindow.hpp b/apps/openmw/mwgui/journalwindow.hpp index 4656c7a482..c5009d6548 100644 --- a/apps/openmw/mwgui/journalwindow.hpp +++ b/apps/openmw/mwgui/journalwindow.hpp @@ -19,15 +19,6 @@ namespace MWGui void open(); private: - enum ColorStyle - { - CS_Sub, - CS_Normal, - CS_Super - }; - - void onWindowResize(MyGUI::Window* window); - void displayLeftText(std::string text); void displayRightText(std::string text); diff --git a/apps/openmw/mwgui/scrollwindow.cpp b/apps/openmw/mwgui/scrollwindow.cpp new file mode 100644 index 0000000000..ab4065e418 --- /dev/null +++ b/apps/openmw/mwgui/scrollwindow.cpp @@ -0,0 +1,14 @@ +#include "scrollwindow.hpp" + +using namespace MWGui; + +ScrollWindow::ScrollWindow(WindowManager& parWindowManager) : + WindowBase("openmw_scroll_layout.xml", parWindowManager) +{ + setVisible(false); + center(); +} + +void ScrollWindow::open(MWWorld::Ptr scroll) +{ +} diff --git a/apps/openmw/mwgui/scrollwindow.hpp b/apps/openmw/mwgui/scrollwindow.hpp new file mode 100644 index 0000000000..d7f5cd686c --- /dev/null +++ b/apps/openmw/mwgui/scrollwindow.hpp @@ -0,0 +1,19 @@ +#ifndef MWGUI_SCROLLWINDOW_H +#define MWGUI_SCROLLWINDOW_H + +#include "window_base.hpp" + +#include "../mwworld/ptr.hpp" + +namespace MWGui +{ + class ScrollWindow : public WindowBase + { + public: + ScrollWindow(WindowManager& parWindowManager); + void open(MWWorld::Ptr scroll); + }; + +} + +#endif diff --git a/apps/openmw/mwgui/window_manager.cpp b/apps/openmw/mwgui/window_manager.cpp index 0f2df53e1a..40fc9308d7 100644 --- a/apps/openmw/mwgui/window_manager.cpp +++ b/apps/openmw/mwgui/window_manager.cpp @@ -8,6 +8,8 @@ #include "stats_window.hpp" #include "messagebox.hpp" #include "tooltips.hpp" +#include "scrollwindow.hpp" +#include "bookwindow.hpp" #include "../mwmechanics/mechanicsmanager.hpp" #include "../mwinput/inputmanager.hpp" @@ -37,6 +39,8 @@ WindowManager::WindowManager( , mMessageBoxManager(NULL) , console(NULL) , mJournal(NULL) + , mBookWindow(NULL) + , mScrollWindow(NULL) , dialogueWindow(nullptr) , mCharGen(NULL) , playerClass() @@ -84,6 +88,8 @@ WindowManager::WindowManager( mMessageBoxManager = new MessageBoxManager(this); dialogueWindow = new DialogueWindow(*this); mToolTips = new ToolTips(this); + mScrollWindow = new ScrollWindow(*this); + mBookWindow = new BookWindow(*this); // The HUD is always on hud->setVisible(true); diff --git a/apps/openmw/mwgui/window_manager.hpp b/apps/openmw/mwgui/window_manager.hpp index f96660715a..13da6c7f01 100644 --- a/apps/openmw/mwgui/window_manager.hpp +++ b/apps/openmw/mwgui/window_manager.hpp @@ -62,6 +62,8 @@ namespace MWGui class JournalWindow; class CharacterCreation; class ToolTips; + class ScrollWindow; + class BookWindow; class TextInputDialog; class InfoBoxDialog; @@ -203,6 +205,8 @@ namespace MWGui Console *console; JournalWindow* mJournal; DialogueWindow *dialogueWindow; + ScrollWindow* mScrollWindow; + BookWindow* mBookWindow; CharacterCreation* mCharGen; diff --git a/files/mygui/CMakeLists.txt b/files/mygui/CMakeLists.txt index 49055d2ede..ef62fb68ce 100644 --- a/files/mygui/CMakeLists.txt +++ b/files/mygui/CMakeLists.txt @@ -51,6 +51,9 @@ configure_file("${SDIR}/openmw_interactive_messagebox_layout.xml" "${DDIR}/openm configure_file("${SDIR}/openmw_journal_layout.xml" "${DDIR}/openmw_journal_layout.xml" COPYONLY) configure_file("${SDIR}/openmw_journal_skin.xml" "${DDIR}/openmw_journal_skin.xml" COPYONLY) configure_file("${SDIR}/openmw_tooltips.xml" "${DDIR}/openmw_tooltips.xml" COPYONLY) +configure_file("${SDIR}/openmw_scroll_layout.xml" "${DDIR}/openmw_scroll_layout.xml" COPYONLY) +configure_file("${SDIR}/openmw_scroll_skin.xml" "${DDIR}/openmw_scroll_skin.xml" COPYONLY) +configure_file("${SDIR}/openmw_book_layout.xml" "${DDIR}/openmw_book_layout.xml" COPYONLY) configure_file("${SDIR}/smallbars.png" "${DDIR}/smallbars.png" COPYONLY) configure_file("${SDIR}/transparent.png" "${DDIR}/transparent.png" COPYONLY) configure_file("${SDIR}/EBGaramond-Regular.ttf" "${DDIR}/EBGaramond-Regular.ttf" COPYONLY) diff --git a/files/mygui/core.xml b/files/mygui/core.xml index 7417328cf1..c0a29d1f6e 100644 --- a/files/mygui/core.xml +++ b/files/mygui/core.xml @@ -20,6 +20,7 @@ + diff --git a/files/mygui/openmw_book_layout.xml b/files/mygui/openmw_book_layout.xml new file mode 100644 index 0000000000..ccf494860b --- /dev/null +++ b/files/mygui/openmw_book_layout.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/files/mygui/openmw_journal_layout.xml b/files/mygui/openmw_journal_layout.xml index da4fe658bd..5711053aca 100644 --- a/files/mygui/openmw_journal_layout.xml +++ b/files/mygui/openmw_journal_layout.xml @@ -7,11 +7,8 @@ - - - - - + + diff --git a/files/mygui/openmw_journal_skin.xml b/files/mygui/openmw_journal_skin.xml index 0ef87852f4..a983ac523b 100644 --- a/files/mygui/openmw_journal_skin.xml +++ b/files/mygui/openmw_journal_skin.xml @@ -1,9 +1,9 @@ - - - + + + diff --git a/files/mygui/openmw_scroll_layout.xml b/files/mygui/openmw_scroll_layout.xml new file mode 100644 index 0000000000..b396931edd --- /dev/null +++ b/files/mygui/openmw_scroll_layout.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/files/mygui/openmw_scroll_skin.xml b/files/mygui/openmw_scroll_skin.xml new file mode 100644 index 0000000000..e55396ac44 --- /dev/null +++ b/files/mygui/openmw_scroll_skin.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + From 9fc1138a87996be047d05746c9218c5babf889c6 Mon Sep 17 00:00:00 2001 From: scrawl Date: Thu, 3 May 2012 05:26:05 +0200 Subject: [PATCH 10/30] opening, closing and taking books/scrolls works --- apps/openmw/CMakeLists.txt | 2 +- apps/openmw/mwclass/book.cpp | 8 ++--- apps/openmw/mwgui/bookwindow.cpp | 49 ++++++++++++++++++++++++++-- apps/openmw/mwgui/bookwindow.hpp | 14 ++++++++ apps/openmw/mwgui/mode.hpp | 4 +-- apps/openmw/mwgui/scrollwindow.cpp | 36 ++++++++++++++++++-- apps/openmw/mwgui/scrollwindow.hpp | 14 ++++++-- apps/openmw/mwgui/window_manager.cpp | 8 +++++ apps/openmw/mwgui/window_manager.hpp | 3 ++ apps/openmw/mwworld/actionread.cpp | 31 ++++++++++++++++++ apps/openmw/mwworld/actionread.hpp | 21 ++++++++++++ 11 files changed, 173 insertions(+), 17 deletions(-) create mode 100644 apps/openmw/mwworld/actionread.cpp create mode 100644 apps/openmw/mwworld/actionread.hpp diff --git a/apps/openmw/CMakeLists.txt b/apps/openmw/CMakeLists.txt index 0fc841ce6e..b112c3f38c 100644 --- a/apps/openmw/CMakeLists.txt +++ b/apps/openmw/CMakeLists.txt @@ -46,7 +46,7 @@ add_openmw_dir (mwsound add_openmw_dir (mwworld refdata world physicssystem scene globals class action nullaction actionteleport containerstore actiontalk actiontake manualref player cellfunctors - cells localscripts customdata weather inventorystore ptr + cells localscripts customdata weather inventorystore ptr actionread ) add_openmw_dir (mwclass diff --git a/apps/openmw/mwclass/book.cpp b/apps/openmw/mwclass/book.cpp index ab659b4805..2409f95e45 100644 --- a/apps/openmw/mwclass/book.cpp +++ b/apps/openmw/mwclass/book.cpp @@ -8,7 +8,7 @@ #include "../mwbase/environment.hpp" #include "../mwworld/ptr.hpp" -#include "../mwworld/actiontake.hpp" +#include "../mwworld/actionread.hpp" #include "../mwworld/world.hpp" #include "../mwrender/objects.hpp" @@ -60,12 +60,8 @@ namespace MWClass boost::shared_ptr Book::activate (const MWWorld::Ptr& ptr, const MWWorld::Ptr& actor) const { - // TODO implement reading - - MWBase::Environment::get().getSoundManager()->playSound3D (ptr, getUpSoundId(ptr), 1.0, 1.0, MWSound::Play_NoTrack); - return boost::shared_ptr ( - new MWWorld::ActionTake (ptr)); + new MWWorld::ActionRead (ptr)); } std::string Book::getScript (const MWWorld::Ptr& ptr) const diff --git a/apps/openmw/mwgui/bookwindow.cpp b/apps/openmw/mwgui/bookwindow.cpp index ce816a6693..4b6082b814 100644 --- a/apps/openmw/mwgui/bookwindow.cpp +++ b/apps/openmw/mwgui/bookwindow.cpp @@ -1,15 +1,58 @@ #include "bookwindow.hpp" +#include "../mwbase/environment.hpp" +#include "../mwinput/inputmanager.hpp" +#include "../mwsound/soundmanager.hpp" +#include "../mwworld/actiontake.hpp" + using namespace MWGui; -BookWindow::BookWindow(WindowManager& parWindowManager) : +BookWindow::BookWindow (WindowManager& parWindowManager) : WindowBase("openmw_book_layout.xml", parWindowManager) { - //setVisible(false); + getWidget(mCloseButton, "CloseButton"); + mCloseButton->eventMouseButtonClick += MyGUI::newDelegate(this, &BookWindow::onCloseButtonClicked); + + getWidget(mTakeButton, "TakeButton"); + mTakeButton->eventMouseButtonClick += MyGUI::newDelegate(this, &BookWindow::onTakeButtonClicked); + + getWidget(mNextPageButton, "NextPageBTN"); + mNextPageButton->eventMouseButtonClick += MyGUI::newDelegate(this, &BookWindow::onNextPageButtonClicked); + + getWidget(mPrevPageButton, "PrevPageBTN"); + mPrevPageButton->eventMouseButtonClick += MyGUI::newDelegate(this, &BookWindow::onPrevPageButtonClicked); + center(); } -void BookWindow::open(MWWorld::Ptr book) +void BookWindow::open (MWWorld::Ptr book) +{ + MWBase::Environment::get().getSoundManager()->playSound3D (book, "book open", 1.0, 1.0); + + mBook = book; +} + +void BookWindow::onCloseButtonClicked (MyGUI::Widget* _sender) +{ + MWBase::Environment::get().getSoundManager()->playSound3D (mBook, "book close", 1.0, 1.0); + + MWBase::Environment::get().getInputManager()->setGuiMode(MWGui::GM_Game); +} + +void BookWindow::onTakeButtonClicked (MyGUI::Widget* _sender) +{ + MWBase::Environment::get().getSoundManager()->playSound3D (mBook, "Item Book Up", 1.0, 1.0, MWSound::Play_NoTrack); + + MWWorld::ActionTake take(mBook); + take.execute(); + + MWBase::Environment::get().getInputManager()->setGuiMode (GM_Game); +} + +void BookWindow::onNextPageButtonClicked (MyGUI::Widget* _sender) { } +void BookWindow::onPrevPageButtonClicked (MyGUI::Widget* _sender) +{ +} diff --git a/apps/openmw/mwgui/bookwindow.hpp b/apps/openmw/mwgui/bookwindow.hpp index 57f45f0172..bc017e326f 100644 --- a/apps/openmw/mwgui/bookwindow.hpp +++ b/apps/openmw/mwgui/bookwindow.hpp @@ -12,6 +12,20 @@ namespace MWGui public: BookWindow(WindowManager& parWindowManager); void open(MWWorld::Ptr book); + + protected: + void onNextPageButtonClicked (MyGUI::Widget* _sender); + void onPrevPageButtonClicked (MyGUI::Widget* _sender); + void onCloseButtonClicked (MyGUI::Widget* _sender); + void onTakeButtonClicked (MyGUI::Widget* _sender); + + private: + MyGUI::Button* mCloseButton; + MyGUI::Button* mTakeButton; + MyGUI::Button* mNextPageButton; + MyGUI::Button* mPrevPageButton; + + MWWorld::Ptr mBook; }; } diff --git a/apps/openmw/mwgui/mode.hpp b/apps/openmw/mwgui/mode.hpp index 55f0952ce5..fa31bb1c4e 100644 --- a/apps/openmw/mwgui/mode.hpp +++ b/apps/openmw/mwgui/mode.hpp @@ -12,12 +12,12 @@ namespace MWGui GM_Console, // Console mode GM_Journal, // Journal mode - // None of the following are implemented yet + GM_Scroll, // Read scroll + GM_Book, // Read book GM_Dialogue, // NPC interaction GM_Barter, GM_Rest, - // .. more here .. // Startup character creation dialogs GM_Name, diff --git a/apps/openmw/mwgui/scrollwindow.cpp b/apps/openmw/mwgui/scrollwindow.cpp index ab4065e418..a5135722fc 100644 --- a/apps/openmw/mwgui/scrollwindow.cpp +++ b/apps/openmw/mwgui/scrollwindow.cpp @@ -1,14 +1,44 @@ #include "scrollwindow.hpp" +#include "../mwbase/environment.hpp" +#include "../mwinput/inputmanager.hpp" +#include "../mwworld/actiontake.hpp" +#include "../mwsound/soundmanager.hpp" + using namespace MWGui; -ScrollWindow::ScrollWindow(WindowManager& parWindowManager) : +ScrollWindow::ScrollWindow (WindowManager& parWindowManager) : WindowBase("openmw_scroll_layout.xml", parWindowManager) { - setVisible(false); + getWidget(mCloseButton, "CloseButton"); + mCloseButton->eventMouseButtonClick += MyGUI::newDelegate(this, &ScrollWindow::onCloseButtonClicked); + + getWidget(mTakeButton, "TakeButton"); + mTakeButton->eventMouseButtonClick += MyGUI::newDelegate(this, &ScrollWindow::onTakeButtonClicked); + center(); } -void ScrollWindow::open(MWWorld::Ptr scroll) +void ScrollWindow::open (MWWorld::Ptr scroll) { + MWBase::Environment::get().getSoundManager()->playSound3D (scroll, "scroll", 1.0, 1.0); + + mScroll = scroll; +} + +void ScrollWindow::onCloseButtonClicked (MyGUI::Widget* _sender) +{ + MWBase::Environment::get().getSoundManager()->playSound3D (mScroll, "scroll", 1.0, 1.0); + + MWBase::Environment::get().getInputManager()->setGuiMode (GM_Game); +} + +void ScrollWindow::onTakeButtonClicked (MyGUI::Widget* _sender) +{ + MWBase::Environment::get().getSoundManager()->playSound3D (mScroll, "Item Book Up", 1.0, 1.0, MWSound::Play_NoTrack); + + MWWorld::ActionTake take(mScroll); + take.execute(); + + MWBase::Environment::get().getInputManager()->setGuiMode (GM_Game); } diff --git a/apps/openmw/mwgui/scrollwindow.hpp b/apps/openmw/mwgui/scrollwindow.hpp index d7f5cd686c..e4968995e4 100644 --- a/apps/openmw/mwgui/scrollwindow.hpp +++ b/apps/openmw/mwgui/scrollwindow.hpp @@ -10,8 +10,18 @@ namespace MWGui class ScrollWindow : public WindowBase { public: - ScrollWindow(WindowManager& parWindowManager); - void open(MWWorld::Ptr scroll); + ScrollWindow (WindowManager& parWindowManager); + void open (MWWorld::Ptr scroll); + + protected: + void onCloseButtonClicked (MyGUI::Widget* _sender); + void onTakeButtonClicked (MyGUI::Widget* _sender); + + private: + MyGUI::Button* mCloseButton; + MyGUI::Button* mTakeButton; + + MWWorld::Ptr mScroll; }; } diff --git a/apps/openmw/mwgui/window_manager.cpp b/apps/openmw/mwgui/window_manager.cpp index 40fc9308d7..d082efe0c9 100644 --- a/apps/openmw/mwgui/window_manager.cpp +++ b/apps/openmw/mwgui/window_manager.cpp @@ -185,6 +185,8 @@ void WindowManager::updateVisible() stats->setVisible(false); console->disable(); mJournal->setVisible(false); + mScrollWindow->setVisible(false); + mBookWindow->setVisible(false); dialogueWindow->setVisible(false); // Mouse is visible whenever we're not in game mode @@ -205,6 +207,12 @@ void WindowManager::updateVisible() case GM_Console: console->enable(); break; + case GM_Scroll: + mScrollWindow->setVisible(true); + break; + case GM_Book: + mBookWindow->setVisible(true); + break; case GM_Name: case GM_Race: case GM_Class: diff --git a/apps/openmw/mwgui/window_manager.hpp b/apps/openmw/mwgui/window_manager.hpp index 13da6c7f01..b84c74441b 100644 --- a/apps/openmw/mwgui/window_manager.hpp +++ b/apps/openmw/mwgui/window_manager.hpp @@ -127,6 +127,9 @@ namespace MWGui MWGui::DialogueWindow* getDialogueWindow() {return dialogueWindow;} + MWGui::BookWindow* getBookWindow() {return mBookWindow;} + MWGui::ScrollWindow* getScrollWindow() {return mScrollWindow;} + MyGUI::Gui* getGui() const { return gui; } void wmUpdateFps(float fps, size_t triangleCount, size_t batchCount) diff --git a/apps/openmw/mwworld/actionread.cpp b/apps/openmw/mwworld/actionread.cpp new file mode 100644 index 0000000000..0d37e06f58 --- /dev/null +++ b/apps/openmw/mwworld/actionread.cpp @@ -0,0 +1,31 @@ +#include "actionread.hpp" + +#include "../mwbase/environment.hpp" +#include "../mwgui/window_manager.hpp" +#include "../mwgui/bookwindow.hpp" +#include "../mwgui/scrollwindow.hpp" + +namespace MWWorld +{ + ActionRead::ActionRead (const MWWorld::Ptr& object) : mObject (object) + { + } + + void ActionRead::execute () + { + ESMS::LiveCellRef *ref = + mObject.get(); + + if (ref->base->data.isScroll) + { + MWBase::Environment::get().getWindowManager()->setGuiMode(MWGui::GM_Scroll); + MWBase::Environment::get().getWindowManager()->getScrollWindow()->open(mObject); + } + else + { + MWBase::Environment::get().getWindowManager()->setGuiMode(MWGui::GM_Book); + MWBase::Environment::get().getWindowManager()->getBookWindow()->open(mObject); + } + } +} + diff --git a/apps/openmw/mwworld/actionread.hpp b/apps/openmw/mwworld/actionread.hpp new file mode 100644 index 0000000000..a4b495f794 --- /dev/null +++ b/apps/openmw/mwworld/actionread.hpp @@ -0,0 +1,21 @@ +#ifndef GAME_MWWORLD_ACTIONREAD_H +#define GAME_MWWORLD_ACTIONREAD_H + +#include "action.hpp" +#include "ptr.hpp" + +namespace MWWorld +{ + class ActionRead : public Action + { + Ptr mObject; // book or scroll to read + + public: + /// @param book or scroll to read + ActionRead (const Ptr& object); + + virtual void execute (); + }; +} + +#endif // ACTIONOPEN_H From 5028a83d1108f7ee01555d826fabe05a21bf518c Mon Sep 17 00:00:00 2001 From: scrawl Date: Thu, 3 May 2012 07:03:04 +0200 Subject: [PATCH 11/30] fix stats window layout resizing --- apps/openmw/mwgui/review.cpp | 2 +- apps/openmw/mwgui/stats_window.cpp | 2 +- files/mygui/openmw_stats_window_layout.xml | 36 +++++++++++----------- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/apps/openmw/mwgui/review.cpp b/apps/openmw/mwgui/review.cpp index 7dfe514def..81a87b07b6 100644 --- a/apps/openmw/mwgui/review.cpp +++ b/apps/openmw/mwgui/review.cpp @@ -248,7 +248,7 @@ MyGUI::TextBox* ReviewDialog::addValueItem(const std::string text, const std::st skillNameWidget = skillClientWidget->createWidget("SandText", coord1, MyGUI::Align::Default); skillNameWidget->setCaption(text); - skillValueWidget = skillClientWidget->createWidget("SandTextRight", coord2, MyGUI::Align::Default); + skillValueWidget = skillClientWidget->createWidget("SandTextRight", coord2, MyGUI::Align::Top | MyGUI::Align::Right); skillValueWidget->setCaption(value); skillValueWidget->_setWidgetState(state); diff --git a/apps/openmw/mwgui/stats_window.cpp b/apps/openmw/mwgui/stats_window.cpp index b007fc1d40..168b2efc66 100644 --- a/apps/openmw/mwgui/stats_window.cpp +++ b/apps/openmw/mwgui/stats_window.cpp @@ -256,7 +256,7 @@ MyGUI::TextBox* StatsWindow::addValueItem(const std::string& text, const std::st skillNameWidget->setUserString("ToolTipType", "Text"); skillNameWidget->setUserString("ToolTipText", tooltip); - skillValueWidget = skillClientWidget->createWidget("SandTextRight", coord2, MyGUI::Align::Default); + skillValueWidget = skillClientWidget->createWidget("SandTextRight", coord2, MyGUI::Align::Right | MyGUI::Align::Top); skillValueWidget->setUserString("ToolTipType", "Text"); skillValueWidget->setUserString("ToolTipText", tooltip); skillValueWidget->setCaption(value); diff --git a/files/mygui/openmw_stats_window_layout.xml b/files/mygui/openmw_stats_window_layout.xml index fd99f863e5..4f3f80e895 100644 --- a/files/mygui/openmw_stats_window_layout.xml +++ b/files/mygui/openmw_stats_window_layout.xml @@ -26,34 +26,34 @@ - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + From e26f39e56394d2cd9af09b10234b9c09e94c311f Mon Sep 17 00:00:00 2001 From: Marc Zinnschlag Date: Fri, 4 May 2012 17:20:57 +0200 Subject: [PATCH 12/30] fixed exception handling during subsystem setup --- apps/openmw/engine.cpp | 8 +------ apps/openmw/engine.hpp | 2 +- apps/openmw/mwbase/environment.cpp | 38 ++++++++++++++++++++++++++++++ apps/openmw/mwbase/environment.hpp | 5 +++- 4 files changed, 44 insertions(+), 9 deletions(-) diff --git a/apps/openmw/engine.cpp b/apps/openmw/engine.cpp index 12a5956a98..319c42bbd7 100644 --- a/apps/openmw/engine.cpp +++ b/apps/openmw/engine.cpp @@ -158,13 +158,7 @@ OMW::Engine::Engine(Files::ConfigurationManager& configurationManager) OMW::Engine::~Engine() { - delete MWBase::Environment::get().getInputManager(); - delete MWBase::Environment::get().getSoundManager(); - delete MWBase::Environment::get().getMechanicsManager(); - delete MWBase::Environment::get().getDialogueManager(); - delete MWBase::Environment::get().getJournal(); - delete MWBase::Environment::get().getScriptManager(); - delete MWBase::Environment::get().getWorld(); + mEnvironment.cleanup(); delete mScriptContext; delete mOgre; } diff --git a/apps/openmw/engine.hpp b/apps/openmw/engine.hpp index 09d6bc8201..63464a40d9 100644 --- a/apps/openmw/engine.hpp +++ b/apps/openmw/engine.hpp @@ -62,6 +62,7 @@ namespace OMW /// \brief Main engine class, that brings together all the components of OpenMW class Engine : private Ogre::FrameListener { + MWBase::Environment mEnvironment; std::string mEncoding; Files::PathContainer mDataDirs; boost::filesystem::path mResDir; @@ -77,7 +78,6 @@ namespace OMW std::string mFocusName; std::map mFallbackMap; - MWBase::Environment mEnvironment; Compiler::Extensions mExtensions; Compiler::Context *mScriptContext; diff --git a/apps/openmw/mwbase/environment.cpp b/apps/openmw/mwbase/environment.cpp index 8e9a9cfce3..792e240f4b 100644 --- a/apps/openmw/mwbase/environment.cpp +++ b/apps/openmw/mwbase/environment.cpp @@ -3,6 +3,19 @@ #include +#include "../mwinput/inputmanager.hpp" + +#include "../mwscript/scriptmanager.hpp" + +#include "../mwsound/soundmanager.hpp" + +#include "../mwworld/world.hpp" + +#include "../mwdialogue/dialoguemanager.hpp" +#include "../mwdialogue/journal.hpp" + +#include "../mwmechanics/mechanicsmanager.hpp" + MWBase::Environment *MWBase::Environment::sThis = 0; MWBase::Environment::Environment() @@ -15,6 +28,7 @@ MWBase::Environment::Environment() MWBase::Environment::~Environment() { + cleanup(); sThis = 0; } @@ -116,6 +130,30 @@ float MWBase::Environment::getFrameDuration() const return mFrameDuration; } +void MWBase::Environment::cleanup() +{ + delete mInputManager; + mInputManager = 0; + + delete mSoundManager; + mSoundManager = 0; + + delete mMechanicsManager; + mMechanicsManager = 0; + + delete mDialogueManager; + mDialogueManager = 0; + + delete mJournal; + mJournal = 0; + + delete mScriptManager; + mScriptManager = 0; + + delete mWorld; + mWorld = 0; +} + const MWBase::Environment& MWBase::Environment::get() { assert (sThis); diff --git a/apps/openmw/mwbase/environment.hpp b/apps/openmw/mwbase/environment.hpp index a010e7faa0..521beee0aa 100644 --- a/apps/openmw/mwbase/environment.hpp +++ b/apps/openmw/mwbase/environment.hpp @@ -43,7 +43,7 @@ namespace MWBase /// /// This class allows each mw-subsystem to access any others subsystem's top-level manager class. /// - /// \attention Environment does not take ownership of the manager class instances it is handed over in + /// \attention Environment takes ownership of the manager class instances it is handed over in /// the set* functions. class Environment { @@ -108,6 +108,9 @@ namespace MWBase float getFrameDuration() const; + void cleanup(); + ///< Delete all mw*-subsystems. + static const Environment& get(); ///< Return instance of this class. }; From a4d6d1bafff74e1e08aeb07792df92f312dee5a8 Mon Sep 17 00:00:00 2001 From: scrawl Date: Fri, 4 May 2012 18:09:45 +0200 Subject: [PATCH 13/30] added a utility for creating texture atlas at runtime --- CMakeLists.txt | 1 + apps/openmw/mwgui/cursorreplace.cpp | 3 + files/mygui/CMakeLists.txt | 1 + files/mygui/atlas1.cfg | 27 +++++++ libs/openengine/ogre/atlas.cpp | 113 ++++++++++++++++++++++++++++ libs/openengine/ogre/atlas.hpp | 27 +++++++ 6 files changed, 172 insertions(+) create mode 100644 files/mygui/atlas1.cfg create mode 100644 libs/openengine/ogre/atlas.cpp create mode 100644 libs/openengine/ogre/atlas.hpp diff --git a/CMakeLists.txt b/CMakeLists.txt index ca3fe0eeb8..668fcd83aa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -103,6 +103,7 @@ set(OENGINE_OGRE ${LIBDIR}/openengine/ogre/mouselook.cpp ${LIBDIR}/openengine/ogre/fader.cpp ${LIBDIR}/openengine/ogre/imagerotate.cpp + ${LIBDIR}/openengine/ogre/atlas.cpp ) set(OENGINE_GUI ${LIBDIR}/openengine/gui/events.cpp diff --git a/apps/openmw/mwgui/cursorreplace.cpp b/apps/openmw/mwgui/cursorreplace.cpp index 2079538fc2..e66f543266 100644 --- a/apps/openmw/mwgui/cursorreplace.cpp +++ b/apps/openmw/mwgui/cursorreplace.cpp @@ -2,6 +2,7 @@ #include #include +#include #include #include @@ -13,4 +14,6 @@ CursorReplace::CursorReplace() OEngine::Render::ImageRotate::rotate("textures\\tx_cursormove.dds", "mwpointer_vresize.png", 90); OEngine::Render::ImageRotate::rotate("textures\\tx_cursormove.dds", "mwpointer_dresize1.png", -45); OEngine::Render::ImageRotate::rotate("textures\\tx_cursormove.dds", "mwpointer_dresize2.png", 45); + + OEngine::Render::Atlas::createFromFile("atlas1.cfg", "mwgui1", "textures\\"); } diff --git a/files/mygui/CMakeLists.txt b/files/mygui/CMakeLists.txt index ef62fb68ce..2c380cd7e9 100644 --- a/files/mygui/CMakeLists.txt +++ b/files/mygui/CMakeLists.txt @@ -54,6 +54,7 @@ configure_file("${SDIR}/openmw_tooltips.xml" "${DDIR}/openmw_tooltips.xml" COPYO configure_file("${SDIR}/openmw_scroll_layout.xml" "${DDIR}/openmw_scroll_layout.xml" COPYONLY) configure_file("${SDIR}/openmw_scroll_skin.xml" "${DDIR}/openmw_scroll_skin.xml" COPYONLY) configure_file("${SDIR}/openmw_book_layout.xml" "${DDIR}/openmw_book_layout.xml" COPYONLY) +configure_file("${SDIR}/atlas1.cfg" "${DDIR}/atlas1.cfg" COPYONLY) configure_file("${SDIR}/smallbars.png" "${DDIR}/smallbars.png" COPYONLY) configure_file("${SDIR}/transparent.png" "${DDIR}/transparent.png" COPYONLY) configure_file("${SDIR}/EBGaramond-Regular.ttf" "${DDIR}/EBGaramond-Regular.ttf" COPYONLY) diff --git a/files/mygui/atlas1.cfg b/files/mygui/atlas1.cfg new file mode 100644 index 0000000000..2a9716b771 --- /dev/null +++ b/files/mygui/atlas1.cfg @@ -0,0 +1,27 @@ +[settings] + size_x = 512 + size_y = 512 + +[tx_menubook_close_idle.dds] + x = 0 + y = 0 + +[tx_menubook_close_over.dds] + x = 128 + y = 0 + +[tx_menubook_close_pressed.dds] + x = 256 + y = 0 + +[tx_menubook_take_idle.dds] + x = 384 + y = 0 + +[tx_menubook_take_over.dds] + x = 0 + y = 32 + +[tx_menubook_take_pressed.dds] + x = 128 + y = 32 diff --git a/libs/openengine/ogre/atlas.cpp b/libs/openengine/ogre/atlas.cpp new file mode 100644 index 0000000000..01b84afabc --- /dev/null +++ b/libs/openengine/ogre/atlas.cpp @@ -0,0 +1,113 @@ +#include "atlas.hpp" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace Ogre; +using namespace OEngine::Render; + +void Atlas::createFromFile (const std::string& filename, const std::string& textureName, const std::string& texturePrefix) +{ + ConfigFile file; + file.load(filename, ResourceGroupManager::AUTODETECT_RESOURCE_GROUP_NAME, "\t:=", true); + + Root* root = Ogre::Root::getSingletonPtr(); + + SceneManager* sceneMgr = root->createSceneManager(ST_GENERIC); + Camera* camera = sceneMgr->createCamera("AtlasCamera"); + + int width = StringConverter::parseInt(file.getSetting("size_x", "settings")); + int height = StringConverter::parseInt(file.getSetting("size_y", "settings")); + + std::vector rectangles; + int i = 0; + + ConfigFile::SectionIterator seci = file.getSectionIterator(); + while (seci.hasMoreElements()) + { + Ogre::String sectionName = seci.peekNextKey(); + seci.getNext(); + + if (sectionName == "settings" || sectionName == "") + continue; + + MaterialPtr material = MaterialManager::getSingleton().create("AtlasMaterial" + StringConverter::toString(i), ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME); + material->getTechnique(0)->getPass(0)->setLightingEnabled(false); + material->getTechnique(0)->getPass(0)->setDepthCheckEnabled(false); + TextureUnitState* tus = material->getTechnique(0)->getPass(0)->createTextureUnitState(texturePrefix + sectionName); + tus->setTextureBorderColour(ColourValue(0, 0, 0, 0)); + + Rectangle2D* rect = new Rectangle2D(true); + rect->setMaterial("AtlasMaterial" + StringConverter::toString(i)); + rect->setRenderQueueGroup(RENDER_QUEUE_BACKGROUND); + + int x = StringConverter::parseInt(file.getSetting("x", sectionName)); + int y = StringConverter::parseInt(file.getSetting("y", sectionName)); + + TexturePtr texture = TextureManager::getSingleton().getByName(texturePrefix + sectionName); + if (texture.isNull()) + { + std::cerr << "OEngine::Render::Atlas: Can't find texture " << texturePrefix + sectionName << ", skipping..." << std::endl; + continue; + } + int textureWidth = texture->getWidth(); + int textureHeight = texture->getHeight(); + + float left = x/float(width) * 2 - 1; + float top = (1-(y/float(height))) * 2 - 1; + float right = ((x+textureWidth))/float(width) * 2 - 1; + float bottom = (1-((y+textureHeight)/float(height))) * 2 - 1; + rect->setCorners(left, top, right, bottom); + + // Use infinite AAB to always stay visible + AxisAlignedBox aabInf; + aabInf.setInfinite(); + rect->setBoundingBox(aabInf); + + // Attach background to the scene + SceneNode* node = sceneMgr->getRootSceneNode()->createChildSceneNode(); + node->attachObject(rect); + + rectangles.push_back(rect); + ++i; + } + + TexturePtr destTexture = TextureManager::getSingleton().createManual( + textureName, + ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, + TEX_TYPE_2D, + width, height, + 0, + PF_FLOAT16_RGBA, + TU_RENDERTARGET); + + RenderTarget* rtt = destTexture->getBuffer()->getRenderTarget(); + rtt->setAutoUpdated(false); + Viewport* vp = rtt->addViewport(camera); + vp->setOverlaysEnabled(false); + vp->setShadowsEnabled(false); + vp->setBackgroundColour(ColourValue(0,0,0,0)); + + rtt->update(); + + // remove all the junk we've created + for (std::vector::iterator it=rectangles.begin(); + it!=rectangles.end(); ++it) + { + delete (*it); + } + while (i > 0) + { + MaterialManager::getSingleton().remove("AtlasMaterial" + StringConverter::toString(i-1)); + --i; + } + root->destroySceneManager(sceneMgr); +} diff --git a/libs/openengine/ogre/atlas.hpp b/libs/openengine/ogre/atlas.hpp new file mode 100644 index 0000000000..5dcd409ca5 --- /dev/null +++ b/libs/openengine/ogre/atlas.hpp @@ -0,0 +1,27 @@ +#ifndef OENGINE_OGRE_ATLAS_HPP +#define OENGINE_OGRE_ATLAS_HPP + +#include + +namespace OEngine +{ +namespace Render +{ + + /// \brief Creates a texture atlas at runtime + class Atlas + { + public: + /** + * @param absolute path to file that specifies layout of the texture (positions of the textures it contains) + * @param name of the destination texture to save to (in memory) + * @param texture directory prefix + */ + static void createFromFile (const std::string& filename, const std::string& textureName, const std::string& texturePrefix="textures\\"); + }; + +} +} + +#endif + From c125fba9d2d36e074d4a2a64963b258188e163d7 Mon Sep 17 00:00:00 2001 From: scrawl Date: Fri, 4 May 2012 18:44:46 +0200 Subject: [PATCH 14/30] button mouse-over image change working --- files/mygui/CMakeLists.txt | 2 +- files/mygui/core.xml | 2 +- files/mygui/openmw_book_layout.xml | 8 ++- files/mygui/openmw_images.xml | 39 ------------- files/mygui/openmw_resources.xml | 86 ++++++++++++++++++++++++++++ files/mygui/openmw_scroll_layout.xml | 9 ++- 6 files changed, 101 insertions(+), 45 deletions(-) delete mode 100644 files/mygui/openmw_images.xml create mode 100644 files/mygui/openmw_resources.xml diff --git a/files/mygui/CMakeLists.txt b/files/mygui/CMakeLists.txt index 2c380cd7e9..f712ea67d3 100644 --- a/files/mygui/CMakeLists.txt +++ b/files/mygui/CMakeLists.txt @@ -9,7 +9,7 @@ configure_file("${SDIR}/black.png" "${DDIR}/black.png" COPYONLY) configure_file("${SDIR}/core.skin" "${DDIR}/core.skin" COPYONLY) configure_file("${SDIR}/core.xml" "${DDIR}/core.xml" COPYONLY) configure_file("${SDIR}/mwgui.png" "${DDIR}/mwgui.png" COPYONLY) -configure_file("${SDIR}/openmw_images.xml" "${DDIR}/openmw_images.xml" COPYONLY) +configure_file("${SDIR}/openmw_resources.xml" "${DDIR}/openmw_resources.xml" COPYONLY) configure_file("${SDIR}/openmw_settings.xml" "${DDIR}/openmw_settings.xml" COPYONLY) configure_file("${SDIR}/openmw_box.skin.xml" "${DDIR}/openmw_box.skin.xml" COPYONLY) configure_file("${SDIR}/openmw_button.skin.xml" "${DDIR}/openmw_button.skin.xml" COPYONLY) diff --git a/files/mygui/core.xml b/files/mygui/core.xml index c0a29d1f6e..e1fb1b5e21 100644 --- a/files/mygui/core.xml +++ b/files/mygui/core.xml @@ -2,7 +2,7 @@ - + diff --git a/files/mygui/openmw_book_layout.xml b/files/mygui/openmw_book_layout.xml index ccf494860b..f43c38b5ef 100644 --- a/files/mygui/openmw_book_layout.xml +++ b/files/mygui/openmw_book_layout.xml @@ -9,8 +9,12 @@ - - + + + + + + diff --git a/files/mygui/openmw_images.xml b/files/mygui/openmw_images.xml deleted file mode 100644 index e149273e29..0000000000 --- a/files/mygui/openmw_images.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/files/mygui/openmw_resources.xml b/files/mygui/openmw_resources.xml new file mode 100644 index 0000000000..3dfc82cd19 --- /dev/null +++ b/files/mygui/openmw_resources.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/files/mygui/openmw_scroll_layout.xml b/files/mygui/openmw_scroll_layout.xml index b396931edd..8e2b1765f2 100644 --- a/files/mygui/openmw_scroll_layout.xml +++ b/files/mygui/openmw_scroll_layout.xml @@ -7,9 +7,14 @@ - + + + + + + + - From a3d99767f7e971f7c732d5da9ee0e27f8e56481e Mon Sep 17 00:00:00 2001 From: scrawl Date: Fri, 4 May 2012 19:11:32 +0200 Subject: [PATCH 15/30] next & prev button mouseover --- files/mygui/atlas1.cfg | 24 ++++++++++++++++ files/mygui/openmw_book_layout.xml | 12 +++++--- files/mygui/openmw_journal_layout.xml | 9 ++++-- files/mygui/openmw_journal_skin.xml | 12 -------- files/mygui/openmw_resources.xml | 40 +++++++++++++++++++++++++-- files/mygui/openmw_scroll_layout.xml | 4 +-- files/mygui/openmw_scroll_skin.xml | 10 ------- 7 files changed, 77 insertions(+), 34 deletions(-) diff --git a/files/mygui/atlas1.cfg b/files/mygui/atlas1.cfg index 2a9716b771..d1e05e0412 100644 --- a/files/mygui/atlas1.cfg +++ b/files/mygui/atlas1.cfg @@ -25,3 +25,27 @@ [tx_menubook_take_pressed.dds] x = 128 y = 32 + +[tx_menubook_next_idle.dds] + x = 256 + y = 32 + +[tx_menubook_next_over.dds] + x = 384 + y = 32 + +[tx_menubook_next_pressed.dds] + x = 0 + y = 64 + +[tx_menubook_prev_idle.dds] + x = 128 + y = 64 + +[tx_menubook_prev_over.dds] + x = 256 + y = 64 + +[tx_menubook_prev_pressed.dds] + x = 384 + y = 64 diff --git a/files/mygui/openmw_book_layout.xml b/files/mygui/openmw_book_layout.xml index f43c38b5ef..36f93a067a 100644 --- a/files/mygui/openmw_book_layout.xml +++ b/files/mygui/openmw_book_layout.xml @@ -7,12 +7,16 @@ - - - + + + + + + + - + diff --git a/files/mygui/openmw_journal_layout.xml b/files/mygui/openmw_journal_layout.xml index 5711053aca..906e872976 100644 --- a/files/mygui/openmw_journal_layout.xml +++ b/files/mygui/openmw_journal_layout.xml @@ -7,9 +7,12 @@ - - - + + + + + + diff --git a/files/mygui/openmw_journal_skin.xml b/files/mygui/openmw_journal_skin.xml index a983ac523b..9f82e907ff 100644 --- a/files/mygui/openmw_journal_skin.xml +++ b/files/mygui/openmw_journal_skin.xml @@ -1,18 +1,6 @@ - - - - - - - - - - - - diff --git a/files/mygui/openmw_resources.xml b/files/mygui/openmw_resources.xml index 3dfc82cd19..455765aadf 100644 --- a/files/mygui/openmw_resources.xml +++ b/files/mygui/openmw_resources.xml @@ -38,7 +38,7 @@ - + @@ -55,7 +55,7 @@ - + @@ -71,9 +71,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + diff --git a/files/mygui/openmw_scroll_layout.xml b/files/mygui/openmw_scroll_layout.xml index 8e2b1765f2..4c9ab10e20 100644 --- a/files/mygui/openmw_scroll_layout.xml +++ b/files/mygui/openmw_scroll_layout.xml @@ -7,11 +7,11 @@ - + - + diff --git a/files/mygui/openmw_scroll_skin.xml b/files/mygui/openmw_scroll_skin.xml index e55396ac44..20b952d582 100644 --- a/files/mygui/openmw_scroll_skin.xml +++ b/files/mygui/openmw_scroll_skin.xml @@ -1,15 +1,5 @@ - - - - - - - - - - From 499dd263988ca7ae96142253bf863c8dde5f6d15 Mon Sep 17 00:00:00 2001 From: scrawl Date: Fri, 4 May 2012 23:53:50 +0200 Subject: [PATCH 16/30] dialogue window topic list word-wrapping --- apps/openmw/CMakeLists.txt | 2 +- apps/openmw/mwgui/dialogue.cpp | 19 ++- apps/openmw/mwgui/dialogue.hpp | 9 +- apps/openmw/mwgui/list.cpp | 116 ++++++++++++++++++ apps/openmw/mwgui/list.hpp | 54 ++++++++ apps/openmw/mwgui/window_manager.cpp | 15 +-- files/mygui/openmw_dialogue_window_layout.xml | 2 +- files/mygui/openmw_list.skin.xml | 14 +++ files/mygui/openmw_scroll_layout.xml | 13 ++ files/mygui/openmw_scroll_skin.xml | 6 + 10 files changed, 228 insertions(+), 22 deletions(-) create mode 100644 apps/openmw/mwgui/list.cpp create mode 100644 apps/openmw/mwgui/list.hpp diff --git a/apps/openmw/CMakeLists.txt b/apps/openmw/CMakeLists.txt index b112c3f38c..29bc86fe34 100644 --- a/apps/openmw/CMakeLists.txt +++ b/apps/openmw/CMakeLists.txt @@ -25,7 +25,7 @@ add_openmw_dir (mwinput add_openmw_dir (mwgui layouts text_input widgets race class birth review window_manager console dialogue dialogue_history window_base stats_window messagebox journalwindow charactercreation - map_window window_pinnable_base cursorreplace tooltips scrollwindow bookwindow + map_window window_pinnable_base cursorreplace tooltips scrollwindow bookwindow list ) add_openmw_dir (mwdialogue diff --git a/apps/openmw/mwgui/dialogue.cpp b/apps/openmw/mwgui/dialogue.cpp index 0238446ebe..3d47aa7dc3 100644 --- a/apps/openmw/mwgui/dialogue.cpp +++ b/apps/openmw/mwgui/dialogue.cpp @@ -2,6 +2,7 @@ #include "dialogue_history.hpp" #include "window_manager.hpp" #include "widgets.hpp" +#include "list.hpp" #include "components/esm_store/store.hpp" #include "../mwbase/environment.hpp" #include "../mwdialogue/dialoguemanager.hpp" @@ -56,9 +57,8 @@ DialogueWindow::DialogueWindow(WindowManager& parWindowManager) //Topics list getWidget(topicsList, "TopicsList"); - topicsList->setScrollVisible(true); //topicsList->eventListSelectAccept += MyGUI::newDelegate(this, &DialogueWindow::onSelectTopic); - topicsList->eventListMouseItemActivate += MyGUI::newDelegate(this, &DialogueWindow::onSelectTopic); + topicsList->eventItemSelected += MyGUI::newDelegate(this, &DialogueWindow::onSelectTopic); //topicsList->eventListChangePosition += MyGUI::newDelegate(this, &DialogueWindow::onSelectTopic); MyGUI::ButtonPtr byeButton; @@ -98,7 +98,7 @@ void DialogueWindow::onMouseWheel(MyGUI::Widget* _sender, int _rel) void DialogueWindow::open() { - topicsList->removeAllItems(); + topicsList->clear(); pTopicsText.clear(); history->eraseText(0,history->getTextLength()); updateOptions(); @@ -110,11 +110,8 @@ void DialogueWindow::onByeClicked(MyGUI::Widget* _sender) MWBase::Environment::get().getDialogueManager()->goodbyeSelected(); } -void DialogueWindow::onSelectTopic(MyGUI::ListBox* _sender, size_t _index) +void DialogueWindow::onSelectTopic(std::string topic) { - if (_index == MyGUI::ITEM_NONE) - return; - std::string topic = _sender->getItemNameAt(_index); MWBase::Environment::get().getDialogueManager()->keywordSelected(lower_string(topic)); } @@ -126,7 +123,7 @@ void DialogueWindow::startDialogue(std::string npcName) void DialogueWindow::setKeywords(std::list keyWords) { - topicsList->removeAllItems(); + topicsList->clear(); for(std::list::iterator it = keyWords.begin(); it != keyWords.end(); it++) { topicsList->addItem(*it); @@ -135,9 +132,9 @@ void DialogueWindow::setKeywords(std::list keyWords) void DialogueWindow::removeKeyword(std::string keyWord) { - if(topicsList->findItemIndexWith(keyWord) != MyGUI::ITEM_NONE) + if(topicsList->hasItem(keyWord)) { - topicsList->removeItemAt(topicsList->findItemIndexWith(keyWord)); + topicsList->removeItem(keyWord); pTopicsText.erase(keyWord); } } @@ -211,7 +208,7 @@ void DialogueWindow::askQuestion(std::string question) void DialogueWindow::updateOptions() { //Clear the list of topics - topicsList->removeAllItems(); + topicsList->clear(); pTopicsText.clear(); history->eraseText(0,history->getTextLength()); diff --git a/apps/openmw/mwgui/dialogue.hpp b/apps/openmw/mwgui/dialogue.hpp index 5921ca57a2..ac29e9ec8d 100644 --- a/apps/openmw/mwgui/dialogue.hpp +++ b/apps/openmw/mwgui/dialogue.hpp @@ -7,6 +7,11 @@ namespace MWGui { class WindowManager; + + namespace Widgets + { + class MWList; + } } /* @@ -42,7 +47,7 @@ namespace MWGui void askQuestion(std::string question); protected: - void onSelectTopic(MyGUI::ListBox* _sender, size_t _index); + void onSelectTopic(std::string topic); void onByeClicked(MyGUI::Widget* _sender); void onHistoryClicked(MyGUI::Widget* _sender); void onMouseWheel(MyGUI::Widget* _sender, int _rel); @@ -55,7 +60,7 @@ namespace MWGui std::string parseText(std::string text); DialogueHistory* history; - MyGUI::ListBox* topicsList; + Widgets::MWList* topicsList; MyGUI::ProgressPtr pDispositionBar; MyGUI::EditPtr pDispositionText; std::map pTopicsText;// this map links keyword and "real" text. diff --git a/apps/openmw/mwgui/list.cpp b/apps/openmw/mwgui/list.cpp new file mode 100644 index 0000000000..733654b8c5 --- /dev/null +++ b/apps/openmw/mwgui/list.cpp @@ -0,0 +1,116 @@ +#include "list.hpp" + +#include + +using namespace MWGui; +using namespace MWGui::Widgets; + +MWList::MWList() : + mClient(0) + , mScrollView(0) + , mItemHeight(0) +{ +} + +void MWList::initialiseOverride() +{ + Base::initialiseOverride(); + + assignWidget(mClient, "Client"); + if (mClient == 0) + mClient = this; + + mScrollView = mClient->createWidgetReal( + "MW_ScrollView", MyGUI::FloatCoord(0.0, 0.0, 1.0, 1.0), + MyGUI::Align::Top | MyGUI::Align::Left | MyGUI::Align::Stretch, getName() + "_ScrollView"); +} + +void MWList::addItem(const std::string& name) +{ + mItems.push_back(name); + + redraw(); +} + +void MWList::redraw(bool scrollbarShown) +{ + const int _scrollBarWidth = 24; // fetch this from skin? + const int scrollBarWidth = scrollbarShown ? _scrollBarWidth : 0; + const int spacing = 3; + + while (mScrollView->getChildCount()) + { + MyGUI::Gui::getInstance().destroyWidget(mScrollView->getChildAt(0)); + } + + mItemHeight = 0; + for (std::vector::const_iterator it=mItems.begin(); + it!=mItems.end(); ++it) + { + MyGUI::Button* button = mScrollView->createWidget( + "MW_ListLine", MyGUI::IntCoord(0, mItemHeight, mScrollView->getSize().width - scrollBarWidth - 2, 24), + MyGUI::Align::Left | MyGUI::Align::Top, getName() + "_item_" + (*it)); + button->setCaption((*it)); + button->getSubWidgetText()->setWordWrap(true); + button->getSubWidgetText()->setTextAlign(MyGUI::Align::Left); + button->eventMouseWheel += MyGUI::newDelegate(this, &MWList::onMouseWheel); + button->eventMouseButtonClick += MyGUI::newDelegate(this, &MWList::onItemSelected); + + int height = button->getTextSize().height; + button->setSize(MyGUI::IntSize(button->getSize().width, height)); + + mItemHeight += height + spacing; + } + mScrollView->setCanvasSize(mClient->getSize().width + (_scrollBarWidth-scrollBarWidth), std::max(mItemHeight, mClient->getSize().height)); + mScrollView->setViewOffset(MyGUI::IntPoint(0,0)); + + if (!scrollbarShown && mItemHeight > mClient->getSize().height) + redraw(true); +} + +bool MWList::hasItem(const std::string& name) +{ + return (std::find(mItems.begin(), mItems.end(), name) != mItems.end()); +} + +unsigned int MWList::getItemCount() +{ + return mItems.size(); +} + +std::string MWList::getItemNameAt(unsigned int at) +{ + assert(at < mItems.size() && "List item out of bounds"); + return mItems[at]; +} + +void MWList::removeItem(const std::string& name) +{ + assert( std::find(mItems.begin(), mItems.end(), name) != mItems.end() ); + mItems.erase( std::find(mItems.begin(), mItems.end(), name) ); + + redraw(); +} + +void MWList::clear() +{ + mItems.clear(); + + redraw(); +} + +void MWList::onMouseWheel(MyGUI::Widget* _sender, int _rel) +{ + //NB view offset is negative + if (mScrollView->getViewOffset().top + _rel*0.3 > 0) + mScrollView->setViewOffset(MyGUI::IntPoint(0, 0)); + else + mScrollView->setViewOffset(MyGUI::IntPoint(0, mScrollView->getViewOffset().top + _rel*0.3)); +} + +void MWList::onItemSelected(MyGUI::Widget* _sender) +{ + std::string name = static_cast(_sender)->getCaption(); + + eventItemSelected(name); +} diff --git a/apps/openmw/mwgui/list.hpp b/apps/openmw/mwgui/list.hpp new file mode 100644 index 0000000000..eedcae066f --- /dev/null +++ b/apps/openmw/mwgui/list.hpp @@ -0,0 +1,54 @@ +#ifndef MWGUI_LIST_HPP +#define MWGUI_LIST_HPP + +#include + +namespace MWGui +{ + namespace Widgets + { + /** + * \brief a very simple list widget that supports word-wrapping entries + * \note does not handle changing the width of the list at runtime + */ + class MWList : public MyGUI::Widget + { + MYGUI_RTTI_DERIVED(MWList) + public: + MWList(); + + typedef MyGUI::delegates::CMultiDelegate1 EventHandle_String; + + /** + * Event: Item selected with the mouse. + * signature: void method(std::string itemName) + */ + EventHandle_String eventItemSelected; + + void addItem(const std::string& name); + void removeItem(const std::string& name); + bool hasItem(const std::string& name); + unsigned int getItemCount(); + std::string getItemNameAt(unsigned int at); + void clear(); + + protected: + void initialiseOverride(); + + void redraw(bool scrollbarShown = false); + + void onMouseWheel(MyGUI::Widget* _sender, int _rel); + void onItemSelected(MyGUI::Widget* _sender); + + private: + MyGUI::ScrollView* mScrollView; + MyGUI::Widget* mClient; + + std::vector mItems; + + int mItemHeight; // height of all items + }; + } +} + +#endif diff --git a/apps/openmw/mwgui/window_manager.cpp b/apps/openmw/mwgui/window_manager.cpp index d082efe0c9..dfac55beb9 100644 --- a/apps/openmw/mwgui/window_manager.cpp +++ b/apps/openmw/mwgui/window_manager.cpp @@ -10,6 +10,7 @@ #include "tooltips.hpp" #include "scrollwindow.hpp" #include "bookwindow.hpp" +#include "list.hpp" #include "../mwmechanics/mechanicsmanager.hpp" #include "../mwinput/inputmanager.hpp" @@ -73,6 +74,13 @@ WindowManager::WindowManager( //Register own widgets with MyGUI MyGUI::FactoryManager::getInstance().registerFactory("Widget"); + MyGUI::FactoryManager::getInstance().registerFactory("Widget"); + MyGUI::FactoryManager::getInstance().registerFactory("Widget"); + MyGUI::FactoryManager::getInstance().registerFactory("Widget"); + MyGUI::FactoryManager::getInstance().registerFactory("Widget"); + MyGUI::FactoryManager::getInstance().registerFactory("Widget"); + MyGUI::FactoryManager::getInstance().registerFactory("Widget"); + MyGUI::FactoryManager::getInstance().registerFactory("Widget"); // Get size info from the Gui object assert(gui); @@ -107,13 +115,6 @@ WindowManager::WindowManager( playerSkillValues.insert(std::make_pair(ESM::Skill::skillIds[i], MWMechanics::Stat())); } - MyGUI::FactoryManager::getInstance().registerFactory("Widget"); - MyGUI::FactoryManager::getInstance().registerFactory("Widget"); - MyGUI::FactoryManager::getInstance().registerFactory("Widget"); - MyGUI::FactoryManager::getInstance().registerFactory("Widget"); - MyGUI::FactoryManager::getInstance().registerFactory("Widget"); - MyGUI::FactoryManager::getInstance().registerFactory("Widget"); - // Set up visibility updateVisible(); } diff --git a/files/mygui/openmw_dialogue_window_layout.xml b/files/mygui/openmw_dialogue_window_layout.xml index b0e437074c..d45de4bd44 100644 --- a/files/mygui/openmw_dialogue_window_layout.xml +++ b/files/mygui/openmw_dialogue_window_layout.xml @@ -19,7 +19,7 @@ - + diff --git a/files/mygui/openmw_list.skin.xml b/files/mygui/openmw_list.skin.xml index 02075ad1a6..89cc73123c 100644 --- a/files/mygui/openmw_list.skin.xml +++ b/files/mygui/openmw_list.skin.xml @@ -212,6 +212,20 @@ + + + + + + + + + + + + + + diff --git a/files/mygui/openmw_scroll_layout.xml b/files/mygui/openmw_scroll_layout.xml index 4c9ab10e20..8641a0511e 100644 --- a/files/mygui/openmw_scroll_layout.xml +++ b/files/mygui/openmw_scroll_layout.xml @@ -15,6 +15,19 @@ + + + + + + + + + + + + + diff --git a/files/mygui/openmw_scroll_skin.xml b/files/mygui/openmw_scroll_skin.xml index 20b952d582..39437d54e7 100644 --- a/files/mygui/openmw_scroll_skin.xml +++ b/files/mygui/openmw_scroll_skin.xml @@ -2,4 +2,10 @@ + + + + + + From f20d4eeb414e9b3fdb73115f487996718ca1db63 Mon Sep 17 00:00:00 2001 From: scrawl Date: Sat, 5 May 2012 01:44:51 +0200 Subject: [PATCH 17/30] Bug #281 , openmw.font.xml update --- files/mygui/openmw.font.xml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/files/mygui/openmw.font.xml b/files/mygui/openmw.font.xml index e7d0f50c8a..25c44d5ed9 100644 --- a/files/mygui/openmw.font.xml +++ b/files/mygui/openmw.font.xml @@ -6,13 +6,13 @@ - + @@ -25,7 +25,6 @@ - @@ -37,4 +36,4 @@ - \ No newline at end of file + From 9dd53b32b80ec78e8af5e2ab0c66f85cbaf7769e Mon Sep 17 00:00:00 2001 From: scrawl Date: Mon, 7 May 2012 02:00:31 +0200 Subject: [PATCH 18/30] added daedric font for magic scrolls --- Daedric Font License.txt | 10 ++++++++++ files/mygui/CMakeLists.txt | 2 ++ files/mygui/Oblivion Worn.ttf | Bin 0 -> 158008 bytes files/mygui/Oblivion.ttf | Bin 0 -> 55364 bytes files/mygui/openmw.font.xml | 13 +++++++++++++ 5 files changed, 25 insertions(+) create mode 100644 Daedric Font License.txt create mode 100644 files/mygui/Oblivion Worn.ttf create mode 100644 files/mygui/Oblivion.ttf diff --git a/Daedric Font License.txt b/Daedric Font License.txt new file mode 100644 index 0000000000..a1553d0b04 --- /dev/null +++ b/Daedric Font License.txt @@ -0,0 +1,10 @@ +Dongle's Oblivion Daedric font set +http://www.uesp.net/wiki/Lore:Daedric_Alphabet#Daedric_Font + +--------------------------------------------------- + +This was done entirely as a personal project. Bethesda Softworks graciously granted me the permission for it. I am not connected with them in any way. +You may freely use these fonts to create anything you'd like. You may re-distribute the fonts freely, over the Internet, or by any other means. Always keep the .zip file intact, and this read me included. +Please do not modify and redistribute the fonts without my permission. +You may NOT sell any of these fonts under any circumstances. This includes putting them on compilation font CDs for sale, putting them in a "members only" pay-area of a website, or any other means of financial gain connected in ANY way with the redistribution of any of these fonts. +You have my permission to create and sell any artwork made with these fonts, however you may need to contact Bethesda Softworks before doing so. diff --git a/files/mygui/CMakeLists.txt b/files/mygui/CMakeLists.txt index f712ea67d3..d7e86ecfff 100644 --- a/files/mygui/CMakeLists.txt +++ b/files/mygui/CMakeLists.txt @@ -58,4 +58,6 @@ configure_file("${SDIR}/atlas1.cfg" "${DDIR}/atlas1.cfg" COPYONLY) configure_file("${SDIR}/smallbars.png" "${DDIR}/smallbars.png" COPYONLY) configure_file("${SDIR}/transparent.png" "${DDIR}/transparent.png" COPYONLY) configure_file("${SDIR}/EBGaramond-Regular.ttf" "${DDIR}/EBGaramond-Regular.ttf" COPYONLY) +configure_file("${SDIR}/Oblivion Worn.ttf" "${DDIR}/Oblivion Worn.ttf" COPYONLY) +configure_file("${SDIR}/Oblivion.ttf" "${DDIR}/Oblivion.ttf" COPYONLY) configure_file("${SDIR}/VeraMono.ttf" "${DDIR}/VeraMono.ttf" COPYONLY) diff --git a/files/mygui/Oblivion Worn.ttf b/files/mygui/Oblivion Worn.ttf new file mode 100644 index 0000000000000000000000000000000000000000..d48f19ebd55483019353b859760a09a4674ade0c GIT binary patch literal 158008 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 z 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�F<|P?9a@w`oo$3M&$Lf0C&= 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�HFq)5sM`sR*^AXmwda0Pf}SO?yVaNsQ|}y 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

u$FrTv*e$4WDs1l)(lF(hkk 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 aQwX;Q3YTj~5Wt;51nvqNz%Yo0%l`{pxIU%; literal 0 HcmV?d00001 diff --git a/files/mygui/Oblivion.ttf b/files/mygui/Oblivion.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ab7e85e745858a629bb030bb21e1466255e12225 GIT binary patch literal 55364 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 veh2)udT8+*>Opk~_#3qV{Han+D literal 0 HcmV?d00001 diff --git a/files/mygui/openmw.font.xml b/files/mygui/openmw.font.xml index 25c44d5ed9..e93c9b770f 100644 --- a/files/mygui/openmw.font.xml +++ b/files/mygui/openmw.font.xml @@ -19,6 +19,19 @@ + + + + + + + + + + + + + From 3c69d265715cffd27f59ca2b9e01dd71f438aefe Mon Sep 17 00:00:00 2001 From: scrawl Date: Mon, 7 May 2012 19:42:04 +0200 Subject: [PATCH 19/30] journal close sound --- apps/openmw/mwgui/journalwindow.cpp | 10 ++++++++++ apps/openmw/mwgui/journalwindow.hpp | 3 +++ 2 files changed, 13 insertions(+) diff --git a/apps/openmw/mwgui/journalwindow.cpp b/apps/openmw/mwgui/journalwindow.cpp index 4030911a00..e4c38496dc 100644 --- a/apps/openmw/mwgui/journalwindow.cpp +++ b/apps/openmw/mwgui/journalwindow.cpp @@ -82,6 +82,7 @@ book formatText(std::string text,book mBook,int maxLine, int lineSize) MWGui::JournalWindow::JournalWindow (WindowManager& parWindowManager) : WindowBase("openmw_journal_layout.xml", parWindowManager) , lastPos(0) + , mVisible(false) { //setCoord(0,0,498, 342); center(); @@ -111,6 +112,15 @@ MWGui::JournalWindow::JournalWindow (WindowManager& parWindowManager) //displayLeftText(list.front()); } +void MWGui::JournalWindow::setVisible(bool visible) +{ + if (mVisible && !visible) + MWBase::Environment::get().getSoundManager()->playSound ("book close", 1.0, 1.0); + mVisible = visible; + + mMainWidget->setVisible(visible); +} + void MWGui::JournalWindow::open() { mPageNumber = 0; diff --git a/apps/openmw/mwgui/journalwindow.hpp b/apps/openmw/mwgui/journalwindow.hpp index c5009d6548..cacdb9414c 100644 --- a/apps/openmw/mwgui/journalwindow.hpp +++ b/apps/openmw/mwgui/journalwindow.hpp @@ -18,6 +18,8 @@ namespace MWGui JournalWindow(WindowManager& parWindowManager); void open(); + virtual void setVisible(bool visible); // only used to play close sound + private: void displayLeftText(std::string text); void displayRightText(std::string text); @@ -41,6 +43,7 @@ namespace MWGui std::vector leftPages; std::vector rightPages; int mPageNumber; //store the number of the current left page + bool mVisible; }; } From 2b584300d6cc94dc1b1e54cda5700589fcafb9f2 Mon Sep 17 00:00:00 2001 From: scrawl Date: Mon, 7 May 2012 23:16:29 +0200 Subject: [PATCH 20/30] throw an exception when no default settings file is found, which indicates a packaging error --- apps/openmw/engine.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/openmw/engine.cpp b/apps/openmw/engine.cpp index 319c42bbd7..c1bbeb5869 100644 --- a/apps/openmw/engine.cpp +++ b/apps/openmw/engine.cpp @@ -281,6 +281,8 @@ void OMW::Engine::go() settings.loadDefault(localdefault); else if (boost::filesystem::exists(globaldefault)) settings.loadDefault(globaldefault); + else + throw std::runtime_error ("No default settings file found! Make sure the file \"settings-default.cfg\" was properly installed."); // load user settings if they exist, otherwise just load the default settings as user settings const std::string settingspath = mCfgMgr.getUserPath().string() + "/settings.cfg"; From cd351ba3af196d6591cef3577358fd19a3893c28 Mon Sep 17 00:00:00 2001 From: scrawl Date: Tue, 8 May 2012 00:39:52 +0200 Subject: [PATCH 21/30] simple scroll text parsing (tags are ignored until now) --- apps/openmw/CMakeLists.txt | 1 + apps/openmw/mwgui/bookwindow.cpp | 8 +++ apps/openmw/mwgui/formatting.cpp | 95 ++++++++++++++++++++++++++++ apps/openmw/mwgui/formatting.hpp | 38 +++++++++++ apps/openmw/mwgui/scrollwindow.cpp | 17 +++++ apps/openmw/mwgui/scrollwindow.hpp | 1 + files/mygui/openmw_scroll_layout.xml | 9 --- 7 files changed, 160 insertions(+), 9 deletions(-) create mode 100644 apps/openmw/mwgui/formatting.cpp create mode 100644 apps/openmw/mwgui/formatting.hpp diff --git a/apps/openmw/CMakeLists.txt b/apps/openmw/CMakeLists.txt index 29bc86fe34..d7c229cf9f 100644 --- a/apps/openmw/CMakeLists.txt +++ b/apps/openmw/CMakeLists.txt @@ -26,6 +26,7 @@ add_openmw_dir (mwgui layouts text_input widgets race class birth review window_manager console dialogue dialogue_history window_base stats_window messagebox journalwindow charactercreation map_window window_pinnable_base cursorreplace tooltips scrollwindow bookwindow list + formatting ) add_openmw_dir (mwdialogue diff --git a/apps/openmw/mwgui/bookwindow.cpp b/apps/openmw/mwgui/bookwindow.cpp index 4b6082b814..3491e69183 100644 --- a/apps/openmw/mwgui/bookwindow.cpp +++ b/apps/openmw/mwgui/bookwindow.cpp @@ -1,5 +1,7 @@ #include "bookwindow.hpp" +#include "formatting.hpp" + #include "../mwbase/environment.hpp" #include "../mwinput/inputmanager.hpp" #include "../mwsound/soundmanager.hpp" @@ -30,6 +32,12 @@ void BookWindow::open (MWWorld::Ptr book) MWBase::Environment::get().getSoundManager()->playSound3D (book, "book open", 1.0, 1.0); mBook = book; + + ESMS::LiveCellRef *ref = + mBook.get(); + + //BookTextParser parser; + //parser.parse(ref->base->text, 0, 0); } void BookWindow::onCloseButtonClicked (MyGUI::Widget* _sender) diff --git a/apps/openmw/mwgui/formatting.cpp b/apps/openmw/mwgui/formatting.cpp new file mode 100644 index 0000000000..547c12c35d --- /dev/null +++ b/apps/openmw/mwgui/formatting.cpp @@ -0,0 +1,95 @@ +#include "formatting.hpp" + +#include +#include +#include + +using namespace MWGui; + +MyGUI::IntSize BookTextParser::parse(std::string text, MyGUI::Widget* parent, const int width) +{ + mParent = parent; + mWidth = width; + + assert(mParent); + while (mParent->getChildCount()) + { + MyGUI::Gui::getInstance().destroyWidget(mParent->getChildAt(0)); + } + + boost::algorithm::replace_all(text, "
", "\n"); + + // remove leading newlines + //while (text[0] == '\n') + // text.erase(0); + + // remove trailing " and newlines + if (text[text.size()-1] == '\"') + text.erase(text.size()-1); + while (text[text.size()-1] == '\n') + text.erase(text.size()-1); + + return parseSubText(text, -1, MyGUI::Align::Left | MyGUI::Align::Top); +} + +MyGUI::IntSize BookTextParser::parseSubText(std::string text, int textSize, MyGUI::Align textAlign) +{ + MyGUI::IntSize size(mWidth,0); + + bool tagFound = false; + std::string realText; // real text, without tags + for (unsigned int i=0; i= text.size()) + throw std::runtime_error("BookTextParser Error: Tag is not terminated"); + ++i; + c = text[i]; + } + continue; + } + else + { + tagFound = true; + while (c != '>') + { + if (i >= text.size()) + throw std::runtime_error("BookTextParser Error: Tag is not terminated"); + + c = text[++i]; + } + ++i; + /// \todo parse tags + size += parseSubText(text.substr(i, text.size()), textSize, textAlign); + break; + } + } + else + realText += c; + } + + if (!tagFound) + { + MyGUI::EditBox* box = mParent->createWidget("NormalText", + MyGUI::IntCoord(0, size.height, mWidth, 24), MyGUI::Align::Left | MyGUI::Align::Top, + mParent->getName() + boost::lexical_cast(mParent->getChildCount())); + box->setProperty("Static", "true"); + box->setProperty("MultiLine", "true"); + box->setProperty("WordWrap", "true"); + box->setProperty("NeedMouse", "false"); + box->setMaxTextLength(realText.size()); + box->setTextAlign(textAlign); + box->setTextColour(MyGUI::Colour(0,0,0)); + box->setCaption(realText); + box->setSize(box->getSize().width, box->getTextSize().height); + size += MyGUI::IntSize(0, box->getTextSize().height); + } + + return size; +} diff --git a/apps/openmw/mwgui/formatting.hpp b/apps/openmw/mwgui/formatting.hpp new file mode 100644 index 0000000000..b60137f355 --- /dev/null +++ b/apps/openmw/mwgui/formatting.hpp @@ -0,0 +1,38 @@ +#ifndef MWGUI_FORMATTING_H +#define MWGUI_FORMATTING_H + +#include + +#include + +namespace MWGui +{ + /// \brief utilities for parsing book/scroll text as mygui widgets + class BookTextParser + { + public: + /** + * Parse markup as MyGUI widgets + * @param markup to parse + * @param parent for the created widgets + * @param maximum width + * @return size of the created widgets + */ + MyGUI::IntSize parse(std::string text, MyGUI::Widget* parent, const int width); + + protected: + /** + * @param text to parse + * @param text size (-1 means default) + * @param text align + * @return size of the created widgets + */ + MyGUI::IntSize parseSubText(std::string text, int textSize, MyGUI::Align textAlign); + + private: + MyGUI::Widget* mParent; + int mWidth; + }; +} + +#endif diff --git a/apps/openmw/mwgui/scrollwindow.cpp b/apps/openmw/mwgui/scrollwindow.cpp index a5135722fc..babf439acc 100644 --- a/apps/openmw/mwgui/scrollwindow.cpp +++ b/apps/openmw/mwgui/scrollwindow.cpp @@ -1,5 +1,7 @@ #include "scrollwindow.hpp" +#include "formatting.hpp" + #include "../mwbase/environment.hpp" #include "../mwinput/inputmanager.hpp" #include "../mwworld/actiontake.hpp" @@ -10,6 +12,8 @@ using namespace MWGui; ScrollWindow::ScrollWindow (WindowManager& parWindowManager) : WindowBase("openmw_scroll_layout.xml", parWindowManager) { + getWidget(mTextView, "TextView"); + getWidget(mCloseButton, "CloseButton"); mCloseButton->eventMouseButtonClick += MyGUI::newDelegate(this, &ScrollWindow::onCloseButtonClicked); @@ -24,6 +28,19 @@ void ScrollWindow::open (MWWorld::Ptr scroll) MWBase::Environment::get().getSoundManager()->playSound3D (scroll, "scroll", 1.0, 1.0); mScroll = scroll; + + ESMS::LiveCellRef *ref = + mScroll.get(); + + BookTextParser parser; + MyGUI::IntSize size = parser.parse(ref->base->text, mTextView, 390); + + if (size.height > mTextView->getSize().height) + mTextView->setCanvasSize(size); + else + mTextView->setCanvasSize(390, mTextView->getSize().height); + + mTextView->setViewOffset(MyGUI::IntPoint(0,0)); } void ScrollWindow::onCloseButtonClicked (MyGUI::Widget* _sender) diff --git a/apps/openmw/mwgui/scrollwindow.hpp b/apps/openmw/mwgui/scrollwindow.hpp index e4968995e4..918a3d3ef0 100644 --- a/apps/openmw/mwgui/scrollwindow.hpp +++ b/apps/openmw/mwgui/scrollwindow.hpp @@ -20,6 +20,7 @@ namespace MWGui private: MyGUI::Button* mCloseButton; MyGUI::Button* mTakeButton; + MyGUI::ScrollView* mTextView; MWWorld::Ptr mScroll; }; diff --git a/files/mygui/openmw_scroll_layout.xml b/files/mygui/openmw_scroll_layout.xml index 8641a0511e..0f4a0be3e8 100644 --- a/files/mygui/openmw_scroll_layout.xml +++ b/files/mygui/openmw_scroll_layout.xml @@ -17,15 +17,6 @@ - - - - - - - - - From 8e7ab09a25bc9db3edc82916ff58eeb36d699a6f Mon Sep 17 00:00:00 2001 From: scrawl Date: Wed, 9 May 2012 01:34:32 +0200 Subject: [PATCH 22/30] scroll window image tags working --- apps/openmw/mwgui/bookwindow.cpp | 2 + apps/openmw/mwgui/formatting.cpp | 96 ++++++++++++++++++++---------- apps/openmw/mwgui/formatting.hpp | 30 +++++++--- apps/openmw/mwgui/scrollwindow.cpp | 6 +- 4 files changed, 93 insertions(+), 41 deletions(-) diff --git a/apps/openmw/mwgui/bookwindow.cpp b/apps/openmw/mwgui/bookwindow.cpp index 3491e69183..75be6280ad 100644 --- a/apps/openmw/mwgui/bookwindow.cpp +++ b/apps/openmw/mwgui/bookwindow.cpp @@ -54,6 +54,8 @@ void BookWindow::onTakeButtonClicked (MyGUI::Widget* _sender) MWWorld::ActionTake take(mBook); take.execute(); + /// \todo what about scripts? + MWBase::Environment::get().getInputManager()->setGuiMode (GM_Game); } diff --git a/apps/openmw/mwgui/formatting.cpp b/apps/openmw/mwgui/formatting.cpp index 547c12c35d..6c53c6873f 100644 --- a/apps/openmw/mwgui/formatting.cpp +++ b/apps/openmw/mwgui/formatting.cpp @@ -10,6 +10,7 @@ MyGUI::IntSize BookTextParser::parse(std::string text, MyGUI::Widget* parent, co { mParent = parent; mWidth = width; + mHeight = 0; assert(mParent); while (mParent->getChildCount()) @@ -29,16 +30,58 @@ MyGUI::IntSize BookTextParser::parse(std::string text, MyGUI::Widget* parent, co while (text[text.size()-1] == '\n') text.erase(text.size()-1); - return parseSubText(text, -1, MyGUI::Align::Left | MyGUI::Align::Top); + parseSubText(text); + return MyGUI::IntSize(mWidth, mHeight); } -MyGUI::IntSize BookTextParser::parseSubText(std::string text, int textSize, MyGUI::Align textAlign) +void BookTextParser::parseImage(std::string tag) { - MyGUI::IntSize size(mWidth,0); + int src_start = tag.find("SRC=")+5; + std::string image = tag.substr(src_start, tag.find('"', src_start)-src_start); + + // fix texture extension to .dds + if (image.size() > 4) + { + image[image.size()-3] = 'd'; + image[image.size()-2] = 'd'; + image[image.size()-1] = 's'; + } + + int width_start = tag.find("WIDTH=")+7; + int width = boost::lexical_cast(tag.substr(width_start, tag.find('"', width_start)-width_start)); + + int height_start = tag.find("HEIGHT=")+8; + int height = boost::lexical_cast(tag.substr(height_start, tag.find('"', height_start)-height_start)); + + MyGUI::ImageBox* box = mParent->createWidget ("ImageBox", + MyGUI::IntCoord(0, mHeight, width, height), MyGUI::Align::Left | MyGUI::Align::Top, + mParent->getName() + boost::lexical_cast(mParent->getChildCount())); + box->setImageTexture("bookart\\" + image); + box->setProperty("NeedMouse", "false"); + + mWidth = std::max(mWidth, width); + mHeight += height; +} + +void BookTextParser::parseSubText(std::string text) +{ + if (text[0] == '<') + { + if (text.find('>') == std::string::npos) + throw std::runtime_error("BookTextParser Error: Tag is not terminated"); + + if (text.size() > 4 && text.substr(0, 4) == "'))); + } + + text.erase(0, text.find('>')+1); + } bool tagFound = false; std::string realText; // real text, without tags - for (unsigned int i=0; i= text.size()) - throw std::runtime_error("BookTextParser Error: Tag is not terminated"); - - c = text[++i]; - } - ++i; - /// \todo parse tags - size += parseSubText(text.substr(i, text.size()), textSize, textAlign); break; } } @@ -74,22 +107,23 @@ MyGUI::IntSize BookTextParser::parseSubText(std::string text, int textSize, MyGU realText += c; } - if (!tagFound) - { - MyGUI::EditBox* box = mParent->createWidget("NormalText", - MyGUI::IntCoord(0, size.height, mWidth, 24), MyGUI::Align::Left | MyGUI::Align::Top, - mParent->getName() + boost::lexical_cast(mParent->getChildCount())); - box->setProperty("Static", "true"); - box->setProperty("MultiLine", "true"); - box->setProperty("WordWrap", "true"); - box->setProperty("NeedMouse", "false"); - box->setMaxTextLength(realText.size()); - box->setTextAlign(textAlign); - box->setTextColour(MyGUI::Colour(0,0,0)); - box->setCaption(realText); - box->setSize(box->getSize().width, box->getTextSize().height); - size += MyGUI::IntSize(0, box->getTextSize().height); - } + MyGUI::EditBox* box = mParent->createWidget("NormalText", + MyGUI::IntCoord(0, mHeight, mWidth, 24), MyGUI::Align::Left | MyGUI::Align::Top, + mParent->getName() + boost::lexical_cast(mParent->getChildCount())); + box->setProperty("Static", "true"); + box->setProperty("MultiLine", "true"); + box->setProperty("WordWrap", "true"); + box->setProperty("NeedMouse", "false"); + box->setMaxTextLength(realText.size()); + box->setTextAlign(mTextStyle.mTextAlign); + box->setTextColour(mTextStyle.mColour); + box->setFontName(mTextStyle.mFont); + box->setCaption(realText); + box->setSize(box->getSize().width, box->getTextSize().height); + mHeight += box->getTextSize().height; - return size; + if (tagFound) + { + parseSubText(text.substr(i, text.size())); + } } diff --git a/apps/openmw/mwgui/formatting.hpp b/apps/openmw/mwgui/formatting.hpp index b60137f355..9fd8150039 100644 --- a/apps/openmw/mwgui/formatting.hpp +++ b/apps/openmw/mwgui/formatting.hpp @@ -7,6 +7,22 @@ namespace MWGui { + struct TextStyle + { + TextStyle() : + mColour(0,0,0) + , mFont("Default") + , mTextSize(16) + , mTextAlign(MyGUI::Align::Left | MyGUI::Align::Top) + { + } + + MyGUI::Colour mColour; + std::string mFont; + int mTextSize; + MyGUI::Align mTextAlign; + }; + /// \brief utilities for parsing book/scroll text as mygui widgets class BookTextParser { @@ -21,17 +37,15 @@ namespace MWGui MyGUI::IntSize parse(std::string text, MyGUI::Widget* parent, const int width); protected: - /** - * @param text to parse - * @param text size (-1 means default) - * @param text align - * @return size of the created widgets - */ - MyGUI::IntSize parseSubText(std::string text, int textSize, MyGUI::Align textAlign); + void parseSubText(std::string text); + + void parseImage(std::string tag); private: MyGUI::Widget* mParent; - int mWidth; + int mWidth; // maximum width + int mHeight; // current height + TextStyle mTextStyle; }; } diff --git a/apps/openmw/mwgui/scrollwindow.cpp b/apps/openmw/mwgui/scrollwindow.cpp index babf439acc..b1c5ec3373 100644 --- a/apps/openmw/mwgui/scrollwindow.cpp +++ b/apps/openmw/mwgui/scrollwindow.cpp @@ -36,9 +36,9 @@ void ScrollWindow::open (MWWorld::Ptr scroll) MyGUI::IntSize size = parser.parse(ref->base->text, mTextView, 390); if (size.height > mTextView->getSize().height) - mTextView->setCanvasSize(size); + mTextView->setCanvasSize(MyGUI::IntSize(410, size.height)); else - mTextView->setCanvasSize(390, mTextView->getSize().height); + mTextView->setCanvasSize(410, mTextView->getSize().height); mTextView->setViewOffset(MyGUI::IntPoint(0,0)); } @@ -57,5 +57,7 @@ void ScrollWindow::onTakeButtonClicked (MyGUI::Widget* _sender) MWWorld::ActionTake take(mScroll); take.execute(); + /// \todo what about scripts? + MWBase::Environment::get().getInputManager()->setGuiMode (GM_Game); } From e5e8663bb4e2f49644504f3d0fb182cba2c6300a Mon Sep 17 00:00:00 2001 From: scrawl Date: Wed, 9 May 2012 02:11:44 +0200 Subject: [PATCH 23/30] parse

and

--- apps/openmw/mwgui/formatting.cpp | 109 +++++++++++++++++++++++++++++-- apps/openmw/mwgui/formatting.hpp | 3 +- 2 files changed, 106 insertions(+), 6 deletions(-) diff --git a/apps/openmw/mwgui/formatting.cpp b/apps/openmw/mwgui/formatting.cpp index 6c53c6873f..6b50fd04d0 100644 --- a/apps/openmw/mwgui/formatting.cpp +++ b/apps/openmw/mwgui/formatting.cpp @@ -6,6 +6,65 @@ using namespace MWGui; +namespace +{ + int convertFromHex(std::string hex) + { + int value = 0; + + int a = 0; + int b = hex.length() - 1; + for (; b >= 0; a++, b--) + { + if (hex[b] >= '0' && hex[b] <= '9') + { + value += (hex[b] - '0') * (1 << (a * 4)); + } + else + { + switch (hex[b]) + { + case 'A': + case 'a': + value += 10 * (1 << (a * 4)); + break; + + case 'B': + case 'b': + value += 11 * (1 << (a * 4)); + break; + + case 'C': + case 'c': + value += 12 * (1 << (a * 4)); + break; + + case 'D': + case 'd': + value += 13 * (1 << (a * 4)); + break; + + case 'E': + case 'e': + value += 14 * (1 << (a * 4)); + break; + + case 'F': + case 'f': + value += 15 * (1 << (a * 4)); + break; + + default: + throw std::runtime_error("invalid character in hex number"); + break; + } + } + } + + return value; + } +} + MyGUI::IntSize BookTextParser::parse(std::string text, MyGUI::Widget* parent, const int width) { mParent = parent; @@ -19,16 +78,15 @@ MyGUI::IntSize BookTextParser::parse(std::string text, MyGUI::Widget* parent, co } boost::algorithm::replace_all(text, "
", "\n"); + boost::algorithm::replace_all(text, "

", "\n\n"); // remove leading newlines //while (text[0] == '\n') // text.erase(0); - // remove trailing " and newlines + // remove trailing " if (text[text.size()-1] == '\"') text.erase(text.size()-1); - while (text[text.size()-1] == '\n') - text.erase(text.size()-1); parseSubText(text); return MyGUI::IntSize(mWidth, mHeight); @@ -63,6 +121,45 @@ void BookTextParser::parseImage(std::string tag) mHeight += height; } +void BookTextParser::parseDiv(std::string tag) +{ + if (tag.find("ALIGN=") == std::string::npos) + return; + + int align_start = tag.find("ALIGN=")+7; + std::string align = tag.substr(align_start, tag.find('"', align_start)-align_start); + if (align == "CENTER") + mTextStyle.mTextAlign = MyGUI::Align::HCenter; + else if (align == "LEFT") + mTextStyle.mTextAlign = MyGUI::Align::Left; +} + +void BookTextParser::parseFont(std::string tag) +{ + if (tag.find("COLOR=") != std::string::npos) + { + int color_start = tag.find("COLOR=")+7; + std::string color = tag.substr(color_start, tag.find('"', color_start)-color_start); + + mTextStyle.mColour = MyGUI::Colour( + convertFromHex(color.substr(0, 2))/255.0, + convertFromHex(color.substr(2, 2))/255.0, + convertFromHex(color.substr(4, 2))/255.0); + } + if (tag.find("FACE=") != std::string::npos) + { + int face_start = tag.find("FACE=")+6; + std::string face = tag.substr(face_start, tag.find('"', face_start)-face_start); + + if (face != "Magic Cards") + mTextStyle.mFont = face; + } + if (tag.find("SIZE=") != std::string::npos) + { + /// \todo + } +} + void BookTextParser::parseSubText(std::string text) { if (text[0] == '<') @@ -71,9 +168,11 @@ void BookTextParser::parseSubText(std::string text) throw std::runtime_error("BookTextParser Error: Tag is not terminated"); if (text.size() > 4 && text.substr(0, 4) == "'))); - } + else if (text.size() > 5 && text.substr(0, 5) == "'))); + else if (text.size() > 4 && text.substr(0, 4) == "'))); text.erase(0, text.find('>')+1); } diff --git a/apps/openmw/mwgui/formatting.hpp b/apps/openmw/mwgui/formatting.hpp index 9fd8150039..19b6969183 100644 --- a/apps/openmw/mwgui/formatting.hpp +++ b/apps/openmw/mwgui/formatting.hpp @@ -40,7 +40,8 @@ namespace MWGui void parseSubText(std::string text); void parseImage(std::string tag); - + void parseDiv(std::string tag); + void parseFont(std::string tag); private: MyGUI::Widget* mParent; int mWidth; // maximum width From d69501b061f6443a485139ee46d2edbebafb4e27 Mon Sep 17 00:00:00 2001 From: scrawl Date: Wed, 9 May 2012 02:16:10 +0200 Subject: [PATCH 24/30] change daedric font to .zip resource --- apps/openmw/engine.cpp | 7 +++++++ apps/openmw/engine.hpp | 4 +++- files/mygui/CMakeLists.txt | 3 +-- files/mygui/Oblivion Worn.ttf | Bin 158008 -> 0 bytes files/mygui/Oblivion.ttf | Bin 55364 -> 0 bytes files/mygui/Obliviontt.zip | Bin 0 -> 138502 bytes files/mygui/openmw.font.xml | 4 ++-- 7 files changed, 13 insertions(+), 5 deletions(-) delete mode 100644 files/mygui/Oblivion Worn.ttf delete mode 100644 files/mygui/Oblivion.ttf create mode 100644 files/mygui/Obliviontt.zip diff --git a/apps/openmw/engine.cpp b/apps/openmw/engine.cpp index 319c42bbd7..a00d764b06 100644 --- a/apps/openmw/engine.cpp +++ b/apps/openmw/engine.cpp @@ -194,6 +194,12 @@ void OMW::Engine::addResourcesDirectory (const boost::filesystem::path& path) Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, true); } +void OMW::Engine::addZipResource (const boost::filesystem::path& path) +{ + mOgre->getRoot()->addResourceLocation (path.string(), "Zip", + Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, false); +} + void OMW::Engine::enableFSStrict(bool fsStrict) { mFSStrict = fsStrict; @@ -314,6 +320,7 @@ void OMW::Engine::go() addResourcesDirectory(mResDir / "water"); addResourcesDirectory(mResDir / "gbuffer"); addResourcesDirectory(mResDir / "shadows"); + addZipResource(mResDir / "mygui" / "Obliviontt.zip"); // Create the window mOgre->createWindow("OpenMW"); diff --git a/apps/openmw/engine.hpp b/apps/openmw/engine.hpp index 63464a40d9..cf1ef3b9c9 100644 --- a/apps/openmw/engine.hpp +++ b/apps/openmw/engine.hpp @@ -91,9 +91,11 @@ namespace OMW /// add resources directory /// \note This function works recursively. - void addResourcesDirectory (const boost::filesystem::path& path); + /// add a .zip resource + void addZipResource (const boost::filesystem::path& path); + /// Load all BSA files in data directory. void loadBSA(); diff --git a/files/mygui/CMakeLists.txt b/files/mygui/CMakeLists.txt index d7e86ecfff..ac803646e4 100644 --- a/files/mygui/CMakeLists.txt +++ b/files/mygui/CMakeLists.txt @@ -58,6 +58,5 @@ configure_file("${SDIR}/atlas1.cfg" "${DDIR}/atlas1.cfg" COPYONLY) configure_file("${SDIR}/smallbars.png" "${DDIR}/smallbars.png" COPYONLY) configure_file("${SDIR}/transparent.png" "${DDIR}/transparent.png" COPYONLY) configure_file("${SDIR}/EBGaramond-Regular.ttf" "${DDIR}/EBGaramond-Regular.ttf" COPYONLY) -configure_file("${SDIR}/Oblivion Worn.ttf" "${DDIR}/Oblivion Worn.ttf" COPYONLY) -configure_file("${SDIR}/Oblivion.ttf" "${DDIR}/Oblivion.ttf" COPYONLY) +configure_file("${SDIR}/Obliviontt.zip" "${DDIR}/Obliviontt.zip" COPYONLY) configure_file("${SDIR}/VeraMono.ttf" "${DDIR}/VeraMono.ttf" COPYONLY) diff --git a/files/mygui/Oblivion Worn.ttf b/files/mygui/Oblivion Worn.ttf deleted file mode 100644 index d48f19ebd55483019353b859760a09a4674ade0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 158008 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 z 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�F<|P?9a@w`oo$3M&$Lf0C&= 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�HFq)5sM`sR*^AXmwda0Pf}SO?yVaNsQ|}y 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

u$FrTv*e$4WDs1l)(lF(hkk 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 aQwX;Q3YTj~5Wt;51nvqNz%Yo0%l`{pxIU%; diff --git a/files/mygui/Oblivion.ttf b/files/mygui/Oblivion.ttf deleted file mode 100644 index ab7e85e745858a629bb030bb21e1466255e12225..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55364 zcmce<3790;RW2C&k`WmZ85v9N`&L<5S(%lUm0fFBRqtKB?rn+y%cH`c2&pqedv&AijWf&%gUjk$8J9c#Ur{4Y2PcV#9z}-^^k4{dVsl4)W zhGBma*9T5)-+$@{>~}uRFn@5KVZ^VWyL#r~pZMm>ml;OdjyhjE_t=dBvy;KIh=cml zg@-R*o!bBC1+@1Jo}ayV<%tWQ_+(LLnD{*m^X#8oI)C+z=YHYE9K&c=7)Ji)rHwP^ z|MZW39__IiygzdZH?$+VhU;Uvu3Wl$Dhhp%ru{H5jVZNN+QXBff_%dpWue(LCb=E6TRNuKI4&wug~9hm2T^;_c27jM2( zdy4;WxKtS~xJ~a2f3#2I`9Et0k*f&ea2zFbqkKq;5zJ+ zWfbN!!*h<2ncp3r^Gp^!hIItg`Rn1i$i$d`7@kXv!UEu+bqnW_;dzXaS$lYH<9?Fi z8CFoy<(t^z@SJ5V?!&`#jxo4T49|IHj(cu+4w~ft>+oD;N<2S2ml%t$4$m!|_lM^( z#^84h&u!d4y7SsYHwxF@aO2A5hc+H9oPDBj^v1?x8-?u~7cOi(fjd*3POnusd*;!N z^Mz{<6>ePGz{NukZCrn}aP30j#A9c!pWk@s!p4;=?ZUo|8#gwtU$}PtDxO`xeDU%_ zXRcg%qHyl|#+e&<8*Q&{;QdF>pD7%@cHze3*RDVKXuGie@}oDdUq1VW8ykfS*Ecq< zJkctgzgBqY+Ks~1Yv(Utcmhoo9!2|w$1mTw1V9T9Z(P56`O!x&Uwf#1@a&b#kKyFV z#>F>WIdeS#eFXVjVf1t^7{uu61VG0tg>Jh$f5(GSg<)f(OR(!T<{{<=Q^4^JI9_2c z<9dU66nD-tPvG}a+}&UvLn$!Z@%sY)ZQw~*XNu|IUyo@8_0QnF4F~{g?IHZW0rIBz z&N63kP3>L}TE2!h3d{+#dIopS$ranb*>KIyAJp+1~8sM z-75iv=kR<3EfJj5cL?`t&<6GYDDIxY{iA5<0%|=TwD=(IQ(xQB+M~EjEuRf=KoDOD z+S~|wps}6DI|V>_4K)jZ<{Iu?MlHe+!B;>VRQn3f9>)_Jd5F;h^Dv&!2&kV&@tbhd zW)7k^!uDgsJ4aCKBKp4);A9i)uf_QsdU)--bZ;~huYGnR=zY|0f$5^}E;Ijq-gs>b zcS82srvdkmq<}-*2R=`sNFx!0BT2@QbPQg=FVy3=ZK11K`ZYJd${gCYd(Zv@2lwtf zy0C~_+ZiEWD3;2VYOUTFYmT=j+LN8`RByUJGoV+n2uZS{Ml?NYm{!b=JFe#^lBski zi$&%Cm7ld?D|~R=v2%H4X)D7VIsD(*xWN1tYLUQ2jhVH)^N>mdEigoj(dd1f24g_#2^KsvLF+0E=>_A>`SSbM>I zNAcbwAYQ|BhB?L#e+I#E-{k0;W%u1WEzaM5Rl9Znbx+U`7VL56dBDmt+&KF@kV7Y* z#qlAaW+$jQ$0)dFnE^Awl$j)B;u=~5!?f0(Wz<8bevM^+Wc^w8=DVL|wr8Ki>dW7E z@5HkV+bR@xT;Bc+dp|C?7H%|)IOAJ|ozL*qokvcU*9%V-p4xN%slv{}r8DQB5vsuv z4>q1!pDaAX96fazzmJ_NKC`@@zID2>zCMR`1ZoGbp!!qmXyJij3pfV1CjSMM#MWBj z8NPPt)ZtUlynTE6ndR;4>0+_4!>B&f)o(H<#J*OvkaJ}CY~!{ zD@V}=npl78DQffRsdDj|&pq{2`YDWKc>OHPy!OWO@CF8sS1|A$&$4engm-Z$7t?g3 zTr3v>*7|mIrMA|Np4tJxit7`YaR5(CWB%-F%Uyal8iwFfo9e`Q**NW1j$t{S3+{QT{9}>|rKJ1@{={w;6}sgX_Ox zrnoU?N*iaU)Stug(@akUm+&89CgtD1`QO;T!1GTtQ~YO{DQO$dci#LC`yXz;BK|XB zl<`qcscDfBMIrdXfycSX53hybh9ruTDDe`02{;daBuNlBmg8BD<9HrL5K~@SS8PF2 z4M{Md73Zj3G)6x`yTc11xFztCEJ-poDT%U(bLxhE3usP2vthfUluhQMsw2t~OA<|J z=S7L3TGT9Fq2p~};f74@N-`b8cBxfa-fS0;bAl-4(?v7liHc@RBIaAKP`emo@LvR2 z!;7FJbSNvbtf0x@fL~}{krhP}0k25V2JK36DOa(ygrw+kS%Peg)@25DgRzCf9fC!7 za9>c+ic0M&vMQ-)7u~$JU0#snYM~y}Q(hO5f-noMt_eV{;* zG+oo8k%+8ok*FF)C)BF0tJJPc@S*+be$+Tn97Q+(gtV+)i!<@KZN>-= zGzoa(MjRKG6^l8xrF#k2OT--`;WxJ9XEj{eb4n{3D0$*m%0frZf0_+bS{y! zv*~2s%cqj~$)vJ5-_~U%CWG!ROHoZf`L0KvS{lE{E422eU95dmPbV2vb^N63r(7?V z1UT^&z=F2xr4p`{D`v9AR4QJ`rHhGDCX-30bD2UR=|mMZuBe(8i>VPSnfbsEJiV=b zK2h!*%K7`D6#jggNvG2uhMUX)kpL*|X7C$2bRwJbV})`)U&&Po6MeX@{*?_uuWW|?d@>!-6x3^(Ou)9I|2%cRnY zR4SFvB;w^-u~f_DylN?5&(w>BLcUNgR;yXxQX`%kiAEhKqQx_XkA2|Z9+o{Z?G>HB)rD^@@E(J$P!^kiXj`N4YrBEzixS&gaHs=0EtP^#riscN}Y%hoHU zGHj1hqf$srbjMp$^+vWcF*a4{HOKHX(VXm5vyL9k=+Rg#nT(pr>e$QA{n`1QPgnZ8 z-`FZWij^LE5q^DzFF~dKtLLHmA7S|MXPLJ30u%ubs=k0L-&zr&i5H-G7Z~o5l_FHx z0+fydGlnvYvIk`y5Qz*ZL@*K(+Q2r3*uTj2(Vx3-*?`VX7WF^f==-)%B zq0FG{L^*+S0p&52CsCe8`54NlP+mldo(61R#mQfyaHp9UU^K8W76|Sw*7MNG8^MT7 z>sco95(><-c$@D}&*a$N)Dq`91}7UV{=1F`tm467iEXpxk`&y_aej`cioL0zqU%WI zQk$y>O`v9fy0)zP@o0MP^y>17X)h8rC9h}7x&+B@VWE`@)k;GHzw36?@?*Lfb!<}> zSW#jHOVG4tr(>C=tmBwk#^qj-cr3)4$U!?|1-Nu2y<`kK~gp%d>WIx|;18)p{_$EPF3^iaE|a`T`6Z4n`E= zX57LwO1R;n)KF$ncA}g>xq$K*%9AKhqkIhIQz$Q@yo~Y4_?`P%BvhFBy{=BMoJz?8U}n zM#7G)mQPO>Cu?PQW-OUcVnLCy044MF!IB^EOg4>VBk9((Y%=5^j(rbz53EuX_F@I* zAhA%z>U0OwZFZ(Nl@oeXGyUnd0OA6@1hnIUrdTh_g8cf^ODMH+$pAIxh$4k@X^AsM zfrBJhRKtyx^M;#rL4d04*!sEivwK^1wN;HL;!91dQA#ws&GPipOasIth`&-+I%nQfCWVNr~)JMeu;b13F4LO2npwI-&>^EL0A$=q5z~XT=a(;9s72 zvOgXETVgfLcyrh6U{@;=!Dv|?>Wlz|H<`5ktpDnNO6Sv-pN{BJnG6NkD*|^M)mYdr zvDoUx-M{|KwyW=7>r5q}zKT&St0_x`I_OQd=AU}wq3Ys+Mx$EG?CDNz%@c>+{Bw36 zx6a(neC!3do;fBRa99jO(J&MZ_@VPC&ZCooBuzt-rbm)A4N01YBuzt-rXfkwkfdoy z(ljJ#8j>^(Nt%WvO+%8VAxYDaq-jXfG$d(yBuO_L;U5XRJN-4t!W{rFmKbz7mnHeaI|Vl?&w7KiQ3-On;RFdsWn2qP`bNekx;jtt$$JsC9KvYx}N z5IxH{o5LAsRc4k0T9vV^Of&J|d>SvrQDQ)AYBj8Ykd^1bp{&9B4iQmE z51dp6y2!4~AoD+c4@Fn6QLr}I$uJj)bu zUU>-xql|@e2$Fgvp6g3cATY~;jv!Ch#;UcowK3g*q7}_d%q`CQ_1!Z?+4QaCV!`%7 z{inblnhL8&bMlkb;yvf?Uuy}usQV~|ZSBtuZnk@)=dVG7o zu(vX~WF*H6c5QBFfjcF@xSCj8vXTpiR`iUqdIsi*w)O0dz9eXABe{0$NMYsFe3=|$ zfb4nJ29-1*;$DEelf|M>ibUB09eA{`Lwl-|$l&ER3(BVTtWLzh^`Sm_Y(()4!&T&H zOtS^uiIEb-@sVUD857B4#C7)X9RR4ZovfIGQTFN&zw1N0cYOG#KRB1kCwShDcc$`0 z$e|~nW#5T4x5Iq)1pvaq7fZl+p{AOHe9evIYYv>8!^GzxUvrSJImp)>7!l;a)i}i79E1c3hq(~X3h=Cq@T>sO z3h=A|&kFFY0M82WtN_mn@T>sO3h=A|&kFFY0M8V(Re)z@gy+ph2+txA6@BS>#s&yt zAbAwr@o}d%ytDHEy%LKR`;Rc}zd_+n!%9(cl0+FpnMK)yvW{{Y*Py*@d`K0kKaZrqD#mMo{ zifPDLD`Swd=YMNmvAlG_wjCbMo#n&sfssR~+ zLDeQ_GXIci6+P%496PpfdKVn*wA%e8`(uGFuma|!JF@`xdC1x608UbCZ-k(s%445cwpPdWNQuXgNG6jYqy;imp>VRqO6jq9yqg@Mx?5L`O1*9;s|L#_ zcO5-BW-jdBx74uq-+!)}nQLcZBa|AY>79Gsv6Ul7_J-sC3%1MM2gwP0u!Om41#?vj z?ZFa+X$jm_f<0J*Jy?Q0Sb{xRf<0J*Jy?Q0Sb{xRf<0J*Jy?Q0Sb{xRf<0Io*@K&n z4DG=Z6j5{qdoUJ?yWt9kb)laFg@^ik9YSzO_nBTYH7JxDRwAS8z6Eb9DFe2PmCbQt zvg)@NbA?Jw$X2oe1@lV2VDzRc+3wb&R;<;ncyA(~s*V{;Z@zX{rhDYTv0nS00~Dyi z{C}POI985j<_Oz=mN^QseGJ8d)^`+BJiycrCZA_qm~n{LLfNsP0fMGq2{iWWt*t1SVqwlQDtGn80LAU@|5!855X{2~5TWCSwAVF@edLz+_BdGA1w?6PS#N z(PV5kGMtPFOa{7mOj$`KGe0RSBPl({ya#WK9#Ryk8p7=qvoBOxze)#xu(rWb=a^A|?p}os4j6FC3 zcI@Auo4LMSu1zm4ZE+V4bds_a*W}M?F-NuQ5d(AtAVQk>Q}$`_goWjfbl@>8NF=ky zFlt(HLdQ{fPUbJ&kKq^_$^dYFFm`@m04W$d`IjITAdu89LI66!3;>d7O(-C?h9CXw+`=gy45xd4Y&-Ouv7!z4xs+gkl6vGB5B7n zqzXbDdQu%v@u()1@k)+m*9FUlsm5tmTpd4H7oso-GE+${p}-<6?bYj@WLqks;feU^{db$Ux}wU~Nw?f~*FAzg>w+UECdzcPhsWI5H0xkk*1XESw&jkrtY%*=QyS(}K{ zYQ5#~dTI8?j947+awip5(95;5uKEcNjv0S$ev6x|7=?XDj*t1hc15*QrA~eB>b?8Y zmhDfq5hy1e!(<=kUPX)=a|Ty0Bs6KI?QqWi#~sHnqmgf*d<$jh$J}gWIA?9l8M?xp z4X{*!xdS^FB5o#F*z3drm`Qj^0^0}3k>uVl=lY$dW3{H|GKHy%FJ>nT3h!4ZlWf|! za$on%;YFiaBo!E1=#AsJ8;@t$=zfpxz3o zw*u;|fO;#S-U_I<0!&nZiOL8Qn~e-HQ2{2<)gur!W0;Is(Bl|PzZfif;_ac{N(ds^ z2cZDm+_ua^AjGH00}M=|!usLE>&dFXC-Rx}ivRSO_}Y3 zm#-wflxycw+$m_ewyjkcPA=@Yx>h&G*A~{!mgQt78-Zjnibnm|j+Wa!vM_u3)bgue zNf<^vZWxJ>172a*AuW5%&%FRek7E)6{6=WSB(SC@Ft!znYb3CyCoskY#9RVvdID>D z0&98#YkC4}dID>D0&98#YkC4}dID>D0&98#YkDF?pNf+t$`}fdWmdw`2xMrV)PIS| z1`J4InU>m3@qEh~4Doh5tBqs@78dAC(>0^DuT)+s85y`T3sVajw^?$XN+;u%lLqOO zxxrY{cI_nWX+*PmFXnWX_II{jJutyr?b+p0^ZxtSE6IIF4`<2;_U+18OKXSAvqzSD zNjDSF7{h*^`vv%Z_OiWanKdj9`%u;Zap>2@HO`CBnHm^D0}BPE$TfmN7NNqxh79#3 z5xB)gh+7e85rGyFbw%J-1a3v(Rs?QE;8p}~Mc`HhZbjf$1a3v(Rs?Rv5pFjdA$@5U zok6OG`qHM%ox#nWC?`-Zpge~1B+An$A4B;R%8Mv3qkIG9TPQ;zu-V9K1UI?HMq^yU zsFxAf4bcS9$D_iLp1lZaw!b)2jUxi(r1aj2 z!-w1Di66);EzbJMmASFz{EDAj-8#d0&eqj=LyY?=-Hzmw*`_hxx_tTG5|R;m1#7Un zt6)sc&H09BX`mN)7vv5+K3~20C$N=1#57rCV2y(U$X7a!fszUlr)!+^U!&QFI~243 zJXEOBSz>rb4$|j9^TSEXLOx|7pR$loSxizEla$3IWid%vOi~t;l*J@vF-ciWQWlex z#Uy1hN!igPZ8kETq%7nUx&TG+=&Uv(zZ%F77a{r8Kz=olUk%e(1NqfJel?I^4dhn? z`PD#vHIQEoRz->)W~)Ppw4l>1{{5+upr1+B@*T>ca7@Q-A_;4l?c@tJ)*}mUb5sUcDj(ZSsob+>4f#J_pF^;NK7qGrSd7SHl1}+ z$%$Nlxj(V}@U9-b(}M8l&5L(0_SV+ddQPd8D7MP^N~e;XZr72C5R zS7pJhH1e%%R5Z-&q5B_MsvJJBvtKCA9|`gMMb6|4uv+67X=G@vQM619bv5!tAfSkt z4GjRRET(%XS~kOE;&6GUI2od3ygzgQ{K0N}kkE!O8RBHTFOnsWkeV=Y_fu#7_P?zE=nLmocNCD{B-)j7y5wlc!pSbqO+WGY zL&v734qxogT&SN}T|E}WqHlhg{WNk7&ai9GGG`$_&Y?J1MMln4atsj@(UBafbWG!z zrg~s(I1$2ir3A(%k3z6!m%!L1kX{LlT>@j5z}O`)b_tAK0%MoJ*d;J_35;C=W0%0# zB`|ggj6HN(s5nWYjG@rFauyw*M#rbIv`sOm83)4cIY_Ia5ZehMwi7~OCxqC};NJ=S zzJT%=%9AKhqkIhIQz$Q@yo~YR{H8@>W*eP_b z0wxhKi9iOqDni5rN<%pN2$Pb6PXBTo>7+#NL}ZT_TR(GVeD>V2ZHa2$Ok_I;t zX(w%*9ILy-FqdB?JWdn2|U|_dV9$FFTp)R_%6YcrZ24QV11uK zl@dw?{B}pA4@Ln+KLT5hQbl@GuOH|O7!q}%0Pno~1DAKIikIOwIKB3vBN zbiH3YH_=`>bN$RpL@ULu%Gh{f>yebF^NJa@Ypv;GYhN}~#JowE9`0X0Q|WZ0YD8c) z-`-L*>y3(LXKd9BA9K6M=4?|JILY?rs%EiNh}u4)WHRCH=0~|bz}pgx-xr`6kAf6E zP+T7YiykOGi14{VxK}_(6X89mEm%=t&cAMOZ;9ph7!D^1EDyg;#7?&ZEfYi!Ia~fno2ph0+)?M`+M){?Z3Fa$>r>mz5M)S#;=Sw3UGaMZ1?)x z-?vt~_O2h_zi|23Vhlplv7_BiWorBGHYe8Y*zyBADUeAcdWrpcNS86@ZKQ`}f=RSU z$NwW-{0+*`f1d%XXHYEzd69v<$Ut6XATKhI7a7Ql4CF-y@*)Fyk%7F(1pfQ+Q7|Wr z9NwMVh)R8 z^u`PbmVzgN!2!!TKn1dRyX>tvBHZnF1`-7sbi5fzWG{G)QdTp?c&jWc$SZl9VW!5W z5`v(4nOc8$x3SS#I&K%|$5YdX?rrjU$#ua0A43J$rnua_9&!CfkcEpDW-_%BG>OM z@g92-Zhl)uPLM8WmS_5!ol81M`{CF~ajN2BsX|8c)Y|%i8NMpS{8ZG;c+r^Rw^DvI%1!T?hoUEHj zA?+Wyu-d!+&_)gJs@CG}y}Pq(4LH|1FUkCl`pno0ouY>+|(7z7)*Fpa}=wAo@ z>!5!f>!ptMQpb9!j}+m}MrggHu43>GdH_TX%s?G?(zw$c-dQ1!_9QAyV%?mCV4cKT zHwoo`66@w9*3C(*o0C{KC$Vl$V%?m?x;cq;a}w+3B-YKz(Ym?W$Z*}9#JUL_48b@O z8rk^z5(pV_DJ=kW9&##X5!xSU-Fe-Z8y|$+kgq^89rcjDMfz+I#R+0=XWJ9)doOGe z1Un}fNXSaJidNEAz4Ewc&(BUEGb5dmQtguK=1Nh^gQ^EB9J%F!5>@?~!BpLk_%$#% z$8*Sa_q^=VwtcO}@dMkuWOrd-zk2HEcI0EL_#ib7r#ENxFP!LJKf97{v>WMsXEvFd zC_Ama_g}g+QCz?0#E4==eiGQOf@0|lw@?V&?&YHtNarOK^5M@2py4~BZpbz!ZzPo9 zAnf)YmVbhcIJsIYkw^=PbfPgnRZMj%UTJn;vwvof=k@j;Ov;td^kgZ=wB0C6J8rz!wh+3 z^DME^(o8ZnUCg#(xv_*-P8kVv;`{(^5Yb9cY;6_CQ@X&)x}~bQ%9!JICdaL)hs0jZ zOB({x{|ofpi`MYcJ65JOd$Qk86nb%1DBgeVM&CVr=Hk(r=-k?=^`phg+Cpt|cCyuP z6{c5;h57hk{h@34*p1erud+YM*P%O-1Tk^O=I4e1yNWd_qS z1LfBTr`iES+t8b^gogTe2J!?Kq5l0pzMlReUjA#8@1O+Qu!@r;$`}gy%*cBgb~}S^ zTO+-@1^Ll}{Al5E3-Y4{`O$*>XhD9oAU|4=A1%m_7UV|@@}mX$(SrPFL4LGG@?*1+ zq5Nn;exM68caz<j6*l)B+E^jD!f9o#~082o9oBR-r}xD5jPeA^52O4P$}gcjhw=rKKScR!l<%MnXMM8~n)MnUBt!JK zhe}Hu>ZphZG!>-LZ02#3CQky5+$}r>-zirj$5(H2mEMZM2`|g3Tp=1wxzYNr-TPXl zs%NqX(~DC@d}_mIo0(`_>zyp}T6WO+X;$R2nvO*5`tsatp1fgfaqDdNANue4!29RQ z2ala>mXDk`USGY`QnIP$J!j5M$;hLlm>kFc31sjT2=m9l^%RrCH>v=fVsaC>;)AOR zfW1jc;rYm+M)xVpfa*|uE(4aNbBfW`aHRMgU3YNofIYXMhcG_3h`W?xJC8T$dxo5()46OL1_Cj`$PEdE?}!WPTB zmIp{lQ_TLhJ!J&$x`oEB7SA60u{WQum}X+%U1v@o$+CQF?f>YWJbb7nTN)M-B`zQT zcqmz4g3qS_hCN5w{po-*5V@nz2R41TGdSOgasuT7%3~-`qCAcAF_cfCyofUVe89x# z18^hL=L3{2*a+rH3}p59iq%0kH8^{5?daI#T|1gfkKH{Gk>PJwi&;-k)Vit0S}NA; zPAAK=lNIhqi~Widugy2i;>^+I$s2FH-j46P@ACZzy<)qRjM{Zgb7K+R#;10)c6@~W zedxtAu*1T&+zQ~~K}C~zo(!%gF~^&-iM$j^W)i#;XsE-;9p;%77uXwjMDBzza(D6W z53YJio#XKJQ`Yfk8nu4P%pUGF_Rf}y-T9<9QT5Andk^f(?fvi`xi!1Y7ZACNwWqpv zG>_a;dXj$94SMJ9Il5=jw^P||%UeSIL}R~+eLkiG zYcq2T#~HBqIPjebAipEZ2Jh7OiL(85eaF_>lrz6$f33N_n-}e3shZHFLT|aqzTN)N zJGQ;!${}a)K&NxGm6)9>RXpQ*vN_0(t*>=^2kvWSdyT9-cB;Dn=_enqMfTrc$qWwl zdRxjxZ+gec+2g-)j#kKkp9_F_nN1Trk0Ncv&QPWyB#F88P&RfT8#^P}*ui9UAR9Z7 zjUC9w4m9izWMc=iu>;xIfo$wRHg+HzJCKbX$i@z2V+XRaGm?#)jgV{<@IVKao@WYJ z1nF#rH0l~I@NE$O&7hD^>IBLKl*dq>M0pzJVcI~lZM-xh|T6JZ;-#WZh z6(X@{u^yLm?*J@bk5-4;_C z@h7Ex-f}dLlAh|ftz6`+t~qlX?a8|)y|L;{6Tp*v6HK{STkqQBGCD z)&ASu8U9JE_Ip99FW{po774FJ(z`Lcl;aw~Oh>Su(DgQ)Z-eDf#YziPm!uz=M|Z@w z=vElp3Oorz|1%lJVQ7oh$vNd08eycHrPQ&z4tZ)aSGK*F z?q;pE>ioj{-uu=zjAnDWS$qn99g@WXZ`4_e`6^ukR7vVwabW_Y;ZsYBRO_@Ui{N&ic-YeslF;HP&h6#;4xv zv>Pe2IK@9+xcmAK?ce^MH{RpnlQ&NHox!}g@Y8p1d+PC1vE+`suWh^g-`yMAdHF}~ zI(+@aws3X)7ksZ+$4EEhT!B%3dz=el5PZQxajviQ_jEII@ldC6@97h(jd;G{8P3es zs5Z8}_29C`@oMW~-tT?*(_g)6j(K7FrPFTJqVX}??^oXZwO@Zn8DC*#vQd1|*8o14 zn;&K?f&Q@>>5>9(=rGhJZic#|ezu;@&mgfeQ7l(uP=p$-bh?@}WX{PIn|W=lkxMlC z+^Z^LTBL}Ry{sk^h_mF*{=obH&C@#`|Gnove%MP}SZt%35O6IgGXI|YJY=%UG(+~J zFN`P@6bj_$XyJl)TMMZ7IS6j<6(|LAz2Ecc*Wt$4;fGPUC*Se5<%PGubtS+mXE2Ak zFQHYP99|s$3G~@P@Itk9nESvxP?5d)cQ@aOXxj?vF#~zf?;Set9OCH_Fq32xtjp5w zR`eYlizY~EXQ4&K2XZ<2O5$a9mB;2C94K{xd4T;!Fb4RqM*V@jU&1H=xBSv@)nSLL z4!N~PIc+Lh91vhJ`t?A)c^LnX`tCC8CtN^+_HX`Y<}Jha>)*5e*S3h^1TDS=W2%oG zI*(zoqE9ViY}i5ME!^h-G1>F@8e*u+2czq`em!}}InRA=<*n}sG4U#De}=FWCoEBm z+}j9EfQ^%xzvsRXjQ#kX^G6FSgKy@5y5amukUl){BVpm7oCth}6!sp*oLOj3JmSwR z9*4*iA)(_0&tL@9!vxqDR^Iydh2^)sBj}$)|GyLTpG0eT8)^heeadv?0Rm5L5ZL|* z_J;}n9~_Yj3m*6{%wgm{2n_V1(d@lu#)fl5b0hi=joi8UcgzNNGUyq3;-mKnaLS5- z!W9hTb?1LH;~LxVZGt>s`*@f-YaVL z>du5>Dahk96Zl>|(Eg{uMOR;+i>h*Qik;8B`i~(Wu?*GymG4vcO_f)FGpyTUrf&X2 z?_r@z=yJOO~`I9hTlF{iyV1=?|oru@}NHw~IcN_F!m+ z&QtpCmGkj+YrO8|m!*<<(A>1nJ&T|2DaKO+=`N2F3&kCuwn0|a5h;$eFOpS0iKu3!ROUoUa>@xB} z%Fb}AZ?Dn^IN@i~A}Nk#LRm;PL3(9?b)b$uGo%iQGKhxgQv&*iTEbA>YOxB6qN+g$ z^Q;euC15#V6KH3Nd0(u8>sqU25 z?M=^gr|_tbL4@tqi+CLvyY>E^um3;2ExVXrX&l2O)}pjb;voE|4xQf2JPT+gcb)|} z=oBDj2@L}btBv#_H{?#b0kSGn?f`(T_dC?eJe!55om%h#qg$4N%h!y`2Xla2;XvwQ zIKd=ldBT$G0FUT`=7dOPgd4CqKqUklY!`^28SK;oGy}&20u7LNvuprC7sTInXl{^y zKFOjjya-0_m$3KV^h~cq&CY}SLUIByVSk~dA#99h3Hf>iRWD#Tm$E1V0YwurgwLVA zQK^Qm0Ql`M(_EH8cruM+D5QG83EmulILfz;Wi*n`Og|V)mIK`cxbz+H0%!-73A`Hc zOb-BgH~91&ptvOrF6hIb8uX`WhQbM{-7zCQx?7?KK$`sk>K@!X^xrN*z2GiM8xmtO*aT_6#1Z(+v(}yN5e?6?=nnF_ zgYKrFe>g;XQkP&Jl6BebeUJAcSZ;qEXnDQ&yLY_b$CqE2ix7Ze1N}kR|LZm&yFJk@ z_WAug7iM?I)gA6_vwoYS=;onS8W2629}p^B58+SPtJp zAYUIFx?#_+sG_qx+E8u08O2Upl7{B7Hwkug)5%i7#&4p6D7%FZvbPBuP&C-0<12hk zH*&h3G4U3_U*b)O-uvPXQZ|s&flaIgVap_Tx}vZ7d0l~<(Zsi0h-TJP6(g)AI7l|N zQ@Wne)i^-<_6*1E+LE^GEH*zwKAN6a4PBEKwqoxqJBr*P#ftO%!J`t(xiP7@oD;D@ z2B#LvrHFw1m;}e|*b2xsFGAax*)g@k3fPtlvA*K=W^rpKJ(e+ht^BrTylUBF_@vm1 zXd-)vkBGie>SUv9yLF3azjZS5`EUOQhr~Y(yBA0iUFh(-sLRO50BSMU4lfddFvha( ziB?p=O;O%MX;2hnMEU^-9|OX@z_SKev9B7k{3J=H9p*#{MjrB}ghLpP8$mvlCULam z80~jwz{(S4t_sxiKszr~5Fh4bPGCQapoFDFkij zDtpD4iX1)(T>x@P+K>PPwsnwz1Ww~+vEkqf>4GXJM~Dz5K2N&?g4i%@fQkGIiBn(1 zU_oZc1;U1E7&oOj5XC9T)xjQmc!a>pCDp|q5O@s_F=a9rL82vgXQP*B2R3Y=W&&gQ zfD^-w>)4D8pkTK%BujAE9M4iX+Cgg;Kv2)vnod>p>=O}i2nWaw9WWttO(gdc2p*ra z2HWxx?xLr`4hqc^28z)j>zCpC17joNte5Ftj=4GGl2!~8adC_9dKX!pZ7YKqeR zs)=prB>d1uhC)w*4bNh86@ZV~Kx@JwsLW9jTdyHcXFmbEZyX*^Am4tMnQQA`pq$6~3h zplAQPU&Rhd^rk#~@#O1+LI{(v!`fuO=S1vCDFTmP6bDEz2nfBEc$ck8NLQi{odLwy zF&ly`u4{r01RugaK@oZed4chyL>-eX%P!yzZsQeBwl&C5gX852UM=k?ib-NFF?{XU zgHaNw?@f~^4!YqY=^tF+WPIM^_>h(Qu0$QA4)%|L;M98Jej^G7CFVyXdOKUT;t@!O zsYD&JmO8dHsh&6vCQS7kYa;gFlk|+g=oPaWTQu-VjNdF4w@f7+mlI^9Tt)>hmiWN( z>U(yJVsiJsz3Egf@g@&bG<;~Lylu7gV!}72-ErRlGnm*9Kv(mP$;8azgpND{&^d^O z6ExR$6WB9R$xLiX?>-0`v$Q9E12UZDFOeXJ;8IL|F%Ai)64%k9gLB%`5mk6mdJ~BP zkUKWC0&nUz7lFhRmADJBrq?^5Eg%o{h{=gq5yJqp$$T;~0j|czBoVMKavCTL8e9Z9 zYDV}8pqskjWxPr_lQ}HKRFif&2`cKZQ*UCt5XE+gwxwXPih&f71tvv!3lou%ZF_%& z$NG!JL>TU7KIL|h=m)AL}3!f^x@!JuqGK7~Pp$gp1!WE%k`+KSjv^%xQxF?fhM z;ZY=ai~KlAHNc0d#3~Od1xZ_A>1}oz_)ruV`+ot)ghc!zG02io-31`P+(4(q%Sr4C zg7>g36KDaJ0u2%UV%I8J_mqgPpnsKIqbg<)7{Mk^zT&(O(}0zNBrZT0d$$Z^M-&^< zkPwIUA1MP0lHv%x5Hh^93>ZSNtRYlL#vOqrLXMUt71eZ=$EIbFcqD7|h%L!ukl2uD zGWH}>5(dQG)(~4*KW?E*!7bYW21$-%KCxLKkO+AWiH_|{Wd~eEO91k!6f}XX1zI9x z$XSKh84s&e9ROKt4weJVKN9hX>#(Atn>Qd)N)X>IU5|dRYFI{JuO1(LZF{e&*m1CF zD)!2~`HFglyM##jTbNJ4cllS$x7ivy&91U{vF~Glf&B_M$*pjYaKFfXmiv#~-yub4 z7ynNFhxp&(KQCab6f6#hg!_db5k4n;N%$kNF1|(locMc^FCB;5X=sN+4Tgg2k_i%+ zp^F?0c^+CltWYv1reTc*7Gif1$)TQ41}KzRm#k$N1rDsJMLslPN>Vw?qn$+o_61aY zDDpi&%LY1mXmpazNQPBlb3&!>k&$wnX+icMIzvA&pz3G}ExY85l{U zw_$UTVM1?vum7?PLvYjLBzqz-W5`;7#YuKCj1U3^Mkfq)>Ka|mLyfP)v?7Buu%I@r z%}KJ~=q<7~VWW|KU6x^0z+92xM;L+R!y*DUV1ts4m=$2#(BNQa2A1J1D-(~=&Y(Pf zrDvNA_U|A?6aU6*8#RHFFR(G`BKWkl4oAeuz@+!VRImF!c_VIbfeTu2U;BFK_W+Qg zi8<4~4TSI41lgEF-_^)<6&Tb~NZ+sH?aXm`7QPzrOOHMsgi9;*Hw-;mBI2xh+CDMx zhmzNeW~3ZAr~?8V;F$?q8*Wi@nNd4|yCs-cN?Q$R4#>jH4}Ge)x(WLTT&}c9Av_t9 zi?620^M=W~)x3<{e^jD;SRgeZjqk2Ol!Zzm3xH$#w>usKR~-1;58RHO+EzFT$Rh~e zzpbkrd%M$-p7lc*kg7WrYko-zT#T4@+7@t#6ij&NY$X>S$RTVf51C6fs5eX?$e0i} zHFL|6i_JQb7e$T=cumN|4@$%s17`%N1R?oQ%2179{J}(^F7QNP2R_K^(1nGhhZ)+< z2C-3iNzi0FaEbz7ZEljBzqind0q`z|53fWW`*TA*ZQ>*%rm^Hf1$IbLF%*1j2P0U) z5-G1?d4#3`p95A#toAZehjANb2o_b+OQ6a^w21N=%mUgu9IHN-W#|H&8imct>28dV zPy?ijRj~YGeTB{i1>%zmr>iCzaJWNDE}xJTiG`_28cswpd3G7r9(Ltf#KTB(D>k9C9nq46?UJQp6C%J2Q&ke~ zMtcASIn08L*NV5AK%mr3ygDh-v3_D9_?&Xyb1f-*|(AjU@6WhC}ppq~Xuf*PqBHV_0e4cZBf&w@S1i*P-Nk^);7-^##Fg#rQ99b2#BJ2zeN ziV+-1O93{aMP?ob7Eys0V+zoyLoo!B!w&`|5r$uYO;JA$OM>)Nya(k5vkM$xc(5yg zQ~<{A1~^iL!}jtfS{Be95YdG33AGP9ev-nb-i=OZ16bMy9+M(;aSiDi?nFet{ z9mSVjFl)(F+)y;^LkHCqwm(oycBF|!NEK)!F9s>Qz?qzaB6mU2khpiNSx1D<7`BVK z!GCHPq{C~}?mwMX=l=Op_uSek&~?3M)$NexUSZei0OmhG-X!NHTc=K z&w&MW7~7(zYM>|3VFdf1fbRwMI}Zt3sg%|v1D+>X6Y#dEYV3c{dYmE$O1TQxgU9&_lpH0)PN1-T;Z=NQMb)&YTFJmnhr#PL$KCZNU!& z3}4Q{bpa;w{VE9uZ~aQ9zf6h7^EY{0QLe`A?XO2CPlK=*e-Bk zIwpiQy+BpLZa7HXc6uCvXanyT;QsG0}iqmhS^UX&??8Mx8Z zq@`-_22Dtz(-q>W_7+r$s)_|j!5ioUe*{884Xifg_kxV!#f3ol04`+rn)KHwK=VK} zu`k-ifW{;RRvQpv!ghxEg&-HTI^mu~FQ~_dNRzk_Q6y*Xz|?nP50)p~BIpBu0sw*v zaKTE3#M7hXLd1lV^nu``83u@|N6_FUu=p;APzE^;VGmJ9)|~iA0PkCbt9n=u_N4Us z^@JyGRRT*;Eix?8%4^!AdJ~TGLDR;EmGGFsVUUew;r0?59sGR(5$XQ19Jc1>q>cgK z7d*}Z(iF=$LFkp@P72=zeJp$y%rOaDJpMo?3du-xjKRQjAnI8;=mdYg0nW=rOt&HE zIVqn{73q6hnhLyjR^$?~R7x>E>?0X2nHRK^MvOk5ysatVDQ4UiE2U#wniHupuyY`; zM?GPprLojlwi`1nUz;dZu|8*F*ZhPi_-lRxz5?198oMMl{IliT-ZdxkwU~n(Z?T`M zLE8|pv;%f%68KvpwbU+7ngG2Ltpo(4;8OzUY|K}LIAnFw`Ebm@Vu*DWlV&L;iSv1E zT<1v=cBfVN4Nb@tI5E|UL3UyVm)uku5);VN{>Jv;w-5aL@UexC4$ZUE4*rIU%tuq$ zZdi;YlP-CxI7lokf_VJzhi}mifVh3@H3r%Dy_?_Gp5iVb3uFuO@=oCI2i;&k%={{w zVjJuhb|-s+eU|+u`!8IC+s(a``y}@n?ytCS@ipW_Z0Aq&@8dthe?@2r1L3^zlfwTj zd_nj#;XC52_@H=Q{HXXV;vb8Dfm|Ob{$XrA_^O9gK~e#Snjoq6fhJfF)LjJ1NuhPW zU+%&8PD?=k1Db&yga1SGEwt*OmQrYZXh)DaJq(Of^l*SD!+`xTHGv;^f#V^J+2^=G zZHCGWus2&``}IDIIw-s_#1OZ~s9+^RwU*pFs=?k0Ouc{IkjNo0N>T`I1ybR$v+S)t zpljbsRiM0!O#|h%R>OBG+kro%8kjXf_?9f=A>yE|Q^1|J#t1DWj4}w3-e!xvo{@ws z2cT%23}#phSxj@_8-UFkx_02B2r~>|m&|ihi-7~f>-vsQeit|v@L!V2T*mXb+5RM7J44=c$mqVoO%4IV5KnH<0CP);Za5(y)$27TQ`oGqP z1HV-O>ua1iz%cO|d=8X3fi^}jdX)cyX}*G_3C$sOQzwBkoa{{x&It1%QH6fAj)ZK7U`B%MfpA91e?#6I zG(Tjmz;{yzJVA%(D_|R{H}u~CRe@s@?idew1{fS=2VmYn!sL6wTwp{2uYoSQM4oW> z0aUyQb2_9}Fke2%D!_Z7TY3*U1+V`i014jnh|KSJv2)vt{QxC*^f-Dke9hmY9sJgN zu*6yk)4`tMT$IyAdytxq798j=*cy`7Ic(T1ii^t%6mgaP%-Zt&UbixpTip9zWDVFk zzgp7V4Eu?-mASnR?l0|qUwFTU``M2PQGB-~`klPraj-8#CDzSaiHMa$&?q9qVw{Pn zUb5^(1~V~%|2>}XjK!h}&Vq8UIQUyth|D|61aw40L+Bf}8k*yblo`#!=D}zAg41$f zTOx+%CK52w?&iCE%P+3IuUsLZ>jllpvcGb0X^!sa zme$^1E=#doqK>@9ET?dOH0}OKHjjPzI1&4>V_{BJ;;|~MqDa(%RRql`W&=vUg>-$5 z-!eY!q_8_H)D_#n_HBH!8jlqnfTG2qpZufCidw`bwYa={Vq(^HlBVk+q#*FMelwHb znvE6AyAhQpbKKoPFFP<9j0*Jvwi()jU7wURC+ z$qo<}Npr-IVQ)bHgEC3h22voPr3h#Mp@_(K8F)9yFvWjT(-ELUe3sX2lSc?0+9qE@ z8{|uY5z79cESlJbms}nQQos`dRUdytEN*g0@<87LRmL-DbHcAdX+fq)5UYk-23=W2 z(>%8C$7AU1u*guEokPwA^j6HWyD$&M6_6#IMwQvCI`Uj`_M56fgzAv%w9GE|_pqhqMyurTfsM4R%;0Vak) z5HS9NzsvnxxM zR$9po+qm1p70Z?ZOESh_Fm5qmdW$A-Ye z&PKK=B!P#ytch>@JgblxPmBJHrLGjUptfOrG@nMN zA^R;sjxx+dZtwaHkDtT<3W=T14W;*F7$ImUmJ_5m)*c%q?1#bbVID91_9ELEt-PV$ zvaR~H&Dk^!M{U$Em;Hx~+4OAlWhJbXxVVKaiGEd>+pwijPtf zx!EmNI4L*iblEZ{)2$L0TwoK0B5uP(d%edEFvtZ4RkE0WY0_#}Mn@CbZ;rIrwno?6 zf$=W5ZV$s5S%P>ebu%z5i~-ldeJ}{zu%E8wAA@d4`Z|Fr6}^`j9(ObBSq-a!T?T_9 z(QG1NWYYuhGv3(Ki!62-;yDT158qnsJ7v!#I@*;9;S?-Ha!03I*NkCpz+9A1B;A0c zVwje=WFBYK6qC+L?SY66G=tN}~8IK{t`{(Kd>Z9tD#_7i6jLVE`xZD2u#vR7XjJL4Y{jBk?#@CD=7(X?B z$*f;B$IYI()tocWF`r;wV_t9GjM^(l)UFNICTp{GvURq#&w4ti-gjEBx87>K-TH|2 zch;Az?^(a1k@;9TR*Ox>w#H76T@rgz?E2VqV=s=~8GBRgU9peF{yFy5*!N<;i7nFI zp*?I*+q>*D?2GLK?46%(zrcRE{TBQE_!F`6wL0BSKQRXCQnYM!B9}aKSdH_A^lT7Xd1~%%Fa&`vR}APcvzQon+4J+f z!_f|*i;a#WZX#1rSN0aY7FMiow*!9iwxiRpNJ}Y$#O#}YPufQ+cW$Y1{WeL1XG3X} zAZ|a}hI2T3M7ufFY8gUOv5am>e^6l95mJX8yZ|-%C6a&y`fm06p#w>ym3i0%>MTTP z&|O3301`ji?1!tA{3t!d=v(K9zOA|;jI#V^EabB^LI>gC6`Q50j<#G6yX?VcTM?Zu zuOnA%vyYjWt>L3i3rUWdxF_G9X` zaG!z@1MU`%0h4|qLbJmSV3R!PUu#7RIyOVDBQ?;30b3mIbkSn;sS@Qoz2d5N3|gSs zK190on;}h*Y6ShIwv0VOD{xDsWin(sN3}v@&w%TaP zuWm%YH~QT7zv&DaV~^Aq3^?5ts~fT28A`cnbMFne#a?5ENsd^ID5yJ?G!HL-#%;fQ zf>n@*W+|}Te9pIuW-7=yvrmd{sCcQTmK!xr%G{`s$mG3<3+~dz$qT(~*|^K&=31*{ zrh~wlcDN1JN?Y90YZae#AbjSBZ}(p5b3bvs=%yVbnKG~qpZc7eJm?lV&#)`?ie-2h z5Ze`hD~5C*bIbnLr12pvsW;o)5StwN?Wf9|TckYS+3A;azhJh8}@TkerQSBS@-Uep$9&oNHc~Nuj{y2HVH`MKeg|(x+vUGc2c)UeHe^Wj(H67O5@| zNR=SfxSL1aJZSvY#T&|AS{e_YPPp(AC=-|^Gs%%4UI6+uoST2G(i0C9pZU=jc&|=F zo_OS@T_eHqZf@#xUgB!E#AOq)O0B|5G&0_)3CK|_hX0tFx|)g$`-w+*Y%1k>hL1eYdsQDd zsW~AX;Z0qv@v4{6P;k}dey3!XowC2hb{BT>cdO$p?6ynvgd2NMdLiuw&JI7a*`;G{ zuqVsm4+IW^%OS8Y1kR*p*${GVwM#ePF~GH@-i2J3Y*>kaZlJT0nUr)E-H<}Lu*Fuerq8k7<$1+B98;oAv%Cgl$MS;-g820Xr$ptTduNFK^D7fsb%Ae zT9RE3L)iS+eC$3mx%elZ?ma2I=T-6Nof%JS`stn&#y*JlN2{NNj{ z%CN2^?ZlrIduqQTF5e8S=qlY3jv1v@zLd{>*FNo`I%8u7_?s41m!)CSj~BvU5zdI zx|=Az+v`@g6dLwtispgC58vfYSGMGbd3a`idgGYmG};rvrd_%HdkaJRYQ<{VGK<-T zkCr==#rVX!k+8aElbfy;7e2I{dX3-ht#@l~XZ=Jxu`7R|SbUiz&$eKSVXm_Cs%thD zhAwl8LoQY;(NJU=6!~*J7yP^htceqYpC22qhheIetQ9)hRNnTYYPN798zbY*#lKCZ z8o0lt;)&zO>&r+547XJ#xdG;8^W4c9lCDqg<1= zkFX8)YHKyUj1yNBo9@o6ck9q=9D3#UYkD2dV+WE&2vv!M_I=73Yaea?L7hhxa4q^S zPV-m5nJ5_vwV6xs{4|y=Ax0diLJYC-0J58=2&Q7f91o?^4O3aBG zCEK0cd2)SfrjQ(&uEib0jisVII9I3VwybmPQay5#CvGgx9JjgRmcsNciP7zkspiex z=JV#(XR<>mdChglZ4RcddHe~psT22J|BNTEL0K0tpowfWyU}MQ5KmOaC#|*Z-08VF z^KSHEqbQSWD6MA}Ufx1WO&b>uEbKp@C$q->kZXYNMUS`{h1(sh;pVZj`GKE41Fd_@ zwKl~Pu|vO!ImVEO%4^JT)T=2^EQ00aB9$oCyOk^|t4zM&CF{e@puA>mG|!!56(^po zjJB$nC9#CZPAN+;TO(5)EriY1Xw*8X;Wvf~HrIoHp&7bmlzFlI@t2-5!_|eDZQ=G= z8IF%!aLFa>CN8`D!c)5_{Nl;U?I-T+1&`x|$L7?>;fB7Ecxpn;E&gutRqhw87jp64 zN$PUq5xoh`)E5ocXd0&&dyQL+R~a8SzGD0eo3=KWabIh`*nF$`Ve{Y6lU1?7*lz8y zZno~W-fX?g`jqum>s!_X)?%y^+Znqcc5UoM#HaXB>=Wpj9*8ZVMHN@wwtc+)IQz-= z9rnG>mz^KE3ai>S7gdUlGa8bPoc8;uNOV+z?S`xEB#3Jzm(@zl3eF1$0f587hpmz+ zlA~R?R$^P}@RFQ=cH{w!zQK~HST(#gC>S1=Xz<(3ZH6le^^FXNBU*D-JhohnaQwjT zegml=Er#Y%7!qjfm>3pUqlo#&{|3Xn+WCa1lU_=Hg1Q!FC&QUbLiUJb2+GPUy zfFBWtMOebrj4`Y~v@%qBL*_xmnO@kx0!G(> zU|KyESHB#jmC!bl_1I~(*jvF=EiLs1xb4BX%@+J3F$gNeh0D6ZMNVU+TpMi|Mq{*AM$dpX=195Ps+(rLRn-r!@_aWa_@QJ9 zeN1M3Z*RIVJeI5V(zx9ZmqywcO62Qfx#7)8!_AL1nw`8IVW2-TTxyjFG0vsz#Y#&& zf7c(pX<_eD{l&odr@GxK)G$Hu@B7#V#pSnda52bK>V53$6~WH5>)_iI^qSyHNCb1A z&hK;8SE|B|UV)qTuIz3vG*%;MHxV>Shcu0n8hHG&%s-25;Iy5-Rl=g8?|qgbUa zwzck>o2EIK^v7=>o$XXSv7tA-Mm^Gaj?Ii$ScCDssIk0afaFjrH8enSs%zXbb9%&S zTB21c4u>dY{L*M?c!H<{l?z^A=R3_-hrq$P4yIXo`^i(?E01Vt>a3%waWuuANT;tR zt2Z@u&2nkWC>gl}8&;#!T8&Oy&_NUlI(zpX!58Usk76Bpu!_0%9mRm)vXBaWI_>hy zS-<*`9|}UDzwo8B8^bWkY>d^5^@f)$xgLC0-&A_y!hO+jm@?D7T5W4GeO#@v1-=W% z8WKts8+p6X`Fgq%u$T*p7BW=lmfdu9?MM;JaoMf8#gVnI!-d2)vmOI2W?sJ3sg}3) znw$H5+9<=hmsN*zwy_!WBh<99EmpQQ&vo?fbB^Wrny$m6hv}NvbbZ1;Iv;Bh*Bm}c zFj?Jt)X{-=9YzHZt_cN(p@4Ktxt^l^?~%%fnmNbV;``a;X5$t-oT8DnRXQRVrXvVH z;m;lCSN)(-4b7(ck>h${K+Mv_@!25xRZ*V zCf6y8@F|SdbB2+tjpdi}$7}1hjrRxQa_5kuo!6|9+{(2}^?W~1V`~x&CC9{(L)XYv z$MU&$qfltHbB*Ixuv$`#y@Z`=euaDD`YG~bRdxb0FokPnA2vQSHnDA8jbI)GVr}Hd zYTyaR1(+B1Z20*$PfS=!=O8wwbWSdj<(_82rMx&Xs%1oMpzWR5%>fnn=as z>6^EoU)Gg${{JAl{rtQBuQ4^=9uzCdWQF^Be6+h)TmkT-eKH*d^$PPc^AW_e<-zbQ z+@-(gAtv5*6T{`PmA&9t<@2}SV(jitF}#?R2QztpCjFF1B@wqKb9to+k>4$;r;bsO zlYbPw$>g@8H^<7-o3>rrv;C&&hbtF-!j+E>v+j+@L=2PV-_K?bkJzD?R-5puwdN@| zPhy8B^lOzciAfiSVR7u`%&V+SbGSN^vqh}S!H{8WexhF}!;{1rCqV8zlAM`VQzX>sk zmR_8?%!5xfhuii0G0BO$ra98OO5|X5BcN9;dL`f5e5bL4eDgG^}STB0rSZDF*Q)ss!7&-BJyiG^hlwJBap z7>T&ItC}<=?o=FW-0H4Jct-%+>BZL@@3n4Kma!3Upa{DRlnden5%Cw(eLTR6vzY3O zzC&CcYZ+!F z?yWOu3zk8mLEIaG6D+Mz+@6X(nP|n5Q0v8zwHv1*+?n&KG@1*Q$|YcQZYHisMx{2 z8e?d&9X8yg*bMNh6eVMR90NXr5m_t((g9(JaJJ?orEdrx;KPPLv%!GHy$q9JG`M4@ zt!bXIj*CY|P?#8ghS)X4F2l}|l>r+!!}Lv}GNUy`bBaH;_SBTneypeYhao2BqgW^>t8*YpfKSj>{y3t;{on5klB?c{WXA!V^0 zocGCn2fuc3WX;-kB24%jBLW>cVcriy)?TLLSG+KS($CyNMV2Fu1Tz`nQjxogaK-U8dKNhKIsW|dd@S_@FOpuI~!@~=# z^x+F|Mn>YwaV089Q4?7NVP5w3(xL+W75merA&lRSAl;o7p`lCYO}03D2@8~Ix3P#5 zZ>7FwtH_Cs*xSh;UJ#K^2Cv3pMKa1^1MC*3%{>dBFJv;Ak{CI28ZPm!Bu*Z7urQ^# zu!yz0_-u31;Sz?@NXu~=aob`sTmUdp7Drqh7)UCq8O#z2OTr1rP&aVNad{W`I2{lT zf}|$FEydNskf;X%TQ#vX#*W<;zi`$zs`M#NdauH?{GJyle~7 zIPuF_i5Mnl{j5P0EOFh|-Xqu;695dCn@YKy@JprQ!jCwUU^ElCkg+VDEv7aLW@pY9 zDIL4;SdI8%;zsf%znE-rxS#eV{HGIV?M0Fp%H>~j8DJV&fk&~IA@*WCPRoXkhrVro zb$Fy!OO^r}RPK%%_zX)pGjVn{ykvu87J^0a!{P!vDNdW%rQ+V}Bym-+4g6FPdjulH zp+ww7a45k)9|v*~kwj4RU5EICc?{h7;dDuQ3uAXW02g#3CVDdU(Paiv$HZ+tBT?EC zg#I$c;Td}mB99g3hwK=^856V5oZI!n-C?;>W|8aE1I#@LXBdy;$&E*DoV5>uMZSHgY)dw{G}y~F8s+9GC+`|+ZQHtK9t@FM z91!Lu6nqv;Ibn;X>w=Av@-GX9p;{at!kdzI&M|(Q9m|pBCM}9b{J1F?l#_O z{KQ;u?l2FUFEn3czRmoi`GDnHL)M&ii}hF5N3G9TKjJj%-q_#Rr`qS+m)qCaZ?NBK zf5-lb{SXHGo>Ov$oGs2jxdCn24JW7Y4#gu+e`Mqm0NE;_TgHvDLt-Kkt;%IA5{K zkF2ntbE#5^LEdS$TVTYWsUD7&lQ;uY*fgQ?C0IVLeZ{R5rehc5McV9$fI_Cu5Z#&g z+su|T#p|$$gXV0f|7b0t(xUzY^40jp2?WxGf(hU)OCG!s9SPfwt0feoFpB8$e|A%= z(+rFjXA+#+xwM!NU>2m3VEt1P^BZ4NRPl1g07;4cg~w&+bep<-(2lxGZEA}9WK`%( zN7IzkcK}7)QWEuxE4N6^sUDUM5^ap8h%_aZcE74V-jcE1l~`JCp&QOgcS;~?!4~&u z4gusy0r%f2)Y$@;F~%)eN}2*`Nvugq|99OJjhkUdz#8lSG(LO=Dos2Z?V^*_};Y8eWWGktSL2EF}aT zj7XzrX1Nx0lQ^nMx6^8u*@D1csm>O(i@-<%nkncikz_ zZAt5;G5D9_y(-k^;UvYb%A-AM=^6S=`$zY4%o$x5UJ$YgZWQIV#45ZNo0-~XK|q{L z2_*&tK|0zf{>X3u!MIyu$pGK6=5|{|Ap<+z7tDv-jIEZiqfuzlY0?WYHQYrKJsv0f zLA`J*)xN8sPV?QC6HzupQci$meuhP)bD2(I&|)~&pC?HP!CG`;wACP)xKvXr3kge_ zD64iVrZ~A0VUR)=Cd}V+lD^Y)WRC6(E*`)$ns@q9yCv*u%a#DtNV(Q1OyO~iBW}$c zTvtF7=wT=%p2*bGmjUF%DZN9iFpUdq8i~6#h1_BNgC_)1f-HTsIL7K>m)z@2>KY^~ z9H^a^S@>%|e7*G$=Z#5nl0dF+z_VKp?j%KvF#vjN&88!S(NVdkFi;r0#^zZPwAY$p zmzTm+nk?Gkp9kVsEMrU-Qr$@yng_HW=^&zy>ZAkUUI|OymG>rN5WUScw;f4-gw;K?yNrsI}OE zO|ce~Ab6Nm_y!$@ZNFaGb;;ohd#zq&5lPjcd9&SUt0`+S_KYl9`4z^Hparbu2x!)Y zQ?{{C#lxLcB9-K`?D>vfLC&+PHkB;_8DBGESM~>IE6?E?*UbH59yWTcKD1XJ9JyIhV1C2=8Uvvu-KH5X^mJ- zqT(@S^p~_WdPlmL{Ak+X7IYUEX{1UIy=AS0MHBO@5*EruM__yNeN5UO0#;5iqWZwjPsH zhl>g7#)^%%-WTY7H>o5g*h^a(c8s6aY^NPkqn`WSO;LcfW3HT(&hM|#wY0&9fx$tm zYIrcUr1?0Hz(!;Au}np4V**>Do@*Q}NDxJn=9jU=XYI=7nfO1ldSbDNza(qPwB^=V zPqBoQ)htVQyaMGjKC!Hs`N~$*AsjmEWO>RWSRS&BWOFXbSsrI%&PM%MUJQP8B8ga} zec$-Twtz2q_=Wll%l(*>6--#!Qi!=?^S@1p%!jkR+_+>z2p#C5}aEv0G z1b#B?jLZ@w6`hC_G z54{7<@+NZ;9+O4cEaBpeA|vkjp*Nh%CJNklN;m_o*bX&O%*hYF(`J~bk?eE`=99$5 z7GLH95%C<;tPL zOu#c?12zdcS}SU9N**G#*cC8$j&ocXF_z1*Jt-JTc3AR*x2R+yDO)+ZG{t81FptT| z;R|YNfKZdbWkjv8|ntqFf<=n@v1J z@i5JRuwi7#ipqx;a}Y{fxy1n&+O&tCEa=9Jd4fZrRYDsk`|B*!r|Ut4@?CM*#=+G^ z>E$L&_G8Ev8Xq%z;_dGzc0{>cfq09N!GYg?u)ae$3$lpAviYECJ)wo@I2 z>Sj?MA4EFXW;Bu4v`sK9h?9Ue3!Nc95~E8h1r4^RgbTxo38g;@3WgpWOh^pTa1cL& zju-A=U{E|Iig?lV6Hjr`Y#14i|0FWKj6(5}*5jUjmROm%rHiryOHW~~a6F>9=ta>! z%5WDQ0i8|j;<57>v!E{#x^NG2P;^oOF=K^^dxmjUe;82RPJ==PCGdkcU}ktm1kCr0 zD$)r<#=}3R&AGo6dyE$}5q4&( zqHTgJJPmCSU{avQkJq9#hS!X&u7Vd3S)(Nh2wI4k;JB2}(qq;ru1-Adx0M{iix8NK zBsHIO3;~^*JPeP+KT?&XlDhgLLVBGCjD3T}GCzbylZY7lspbr6k@TV9A>R4~9$czN z!lekW#|ZoCF*EVG-{;aoSW6FO4}UZ%Sj4gp;Hujw?GSeA{~UfLBoW48A zgzCW^Kxo07=)JhrLNJzpPMt|a;}2z0UIeb}nHYwJHP94sYB^NL=ww(NM|%B>O-YfE zu&C520=dt)6PA#-FqV|YIFbQrnH8Qfx=7*JL*ly+r>)~o76?Kx9%(jCmLi#qWSf8~ zsE_=xnrw`8in)BTILReHn(#Gnpen&4LwO0C^H&@1BBBV1ESH)wd8STcoP$`g^uhwB zdJ8|34(W?AN~a3Vee}P~Oy6tTG~54%&1+{VV-1T_>S>MVaae z1<<8R8jo1RXi_;l5iW8#dvr1CC#KRyzqJ;&Cr>QSOki|~Scm^49xJy_ZL&{w`tTiMW(un=^v$$v# zB+Ze2>5@+FB%NOTFDGw3&Dg|kjODbUYI8O!O@M2h`iIpnnX>XB00$N@mj|CChe~2b4;M zK;H063puN#4gIeg_8W%&jSBRyaYgIovGLP82!+CA32&12nXNTvuc^<~yu2GUf@m}+ z$6M(7we*8!4Zo8cs@6(!yutst>$OiB_iG&5ndwqG86*e+rN?i5GrK7*hKgYrR@YaA z_4CLA+)8qUn2mGLM?9IrI*cjYBC~}#deT^&1IwaFZI1alN=pzmfY3*Tz2UkoxkD*gHmkx#8yxsqB2(qF$dY@sY>gVQTTIYXC;~{yBRNA&Ef?^NS9tU z)69S((`ITCc2fH@AgMR5=~T@=|^VD|LdJ4VM&X%El+4qj#eBn-TMp%ngf zL&_ zMuamVp@`{?faDq!!p!I`gPE!l7LCzk=J389%3@jNaZZx5{BoS)!6RgiCP%e8YE?>4 zy$n~v&M=rqv&eDZ4jLfpxoNxHsWBzs>&&v%O^hXz1h2A`x%eCIhW;*R2%ES|{rMl3 zBL&=Dnm<|R9aIDpvA1&$Mh^4`r=-n+TVdpB2k?^fwcq|^_p$9$E$ZhJ_AIbBhY z+ik5)+lgpDm6y;8;tzl>(sC^sNG1bU;t(FzTeg~Q0}E|&4iOu0ImvfV+JE!@lhTQ> zQB1YhZ^-w~%BQlKV#ZCh^4ZbxwWYc9OSl4;+869vdwQ+fG?ZWTCE|J_9%hnuDsK_B zO(f%?4~(k%@a%Qisc;oqrP2A6r}UTM5-~A zhpG=Pe!w_rUIbN7R4+Y}s+*zeyl(7fq2w06Jcj>+OVQ_{Zcx|NRk8k6YFpVdpSMk$B_2Jy)j$AI8%++>uhqn~N^2b9=T>_#c5pg~qm}fI% zFrh4*S{)lh{18ytkDq+SwNp60Z%C#Ipk@2HwUu%&SHnkcVQM@VC)QFt;IJ(UeU6=& zFMeR(XEoJBd_l~j*4?gU|B_H-20?hEWkRJk+a&1kVv5tUJq)isE5G{9Wt&_&sDYSMD)wVX+dS)6Kq+4yaR_Ruf zxp<8UK`%ZDZa^SI%q+P5kXL`w*374gfatNZ%$F!4?m8uhXnFeb;x#BP=mn$5+`e~+0 zs<+pjyQYvFl9*w3I`ZPljGHCIxf@QDl0<(fVCEeo>}8S(g4C6CiW{>F#8E_|vnVE9 z2eUvtSw>=uP6&^Ips)@f0+^pmzgPVH#CRjVg>SU3W8Qsg>^{3-U*wpmTW@e5^lpeh zJN}i#jftNo&rNYnPWt6!{HwWu~$+fuu__KMm&Y9FjUSg+K3^(*W5)xTE% zMd#TYpEmQw?cdz7>6Cj;J?He>FZk}`?z!-+3l}baGMJiuY!~ll;yBjNxr|biRF)b= zNIt_daOEw2w-Qav(-83Ty-8Xt}jq~5O^1=i`2#H5;dmUs)K*< zgjz$yuyw@5-ay>2Ni{`%U8HMI&EPq_8Bw`~Gw|aPa<)pSKxMcwysrL|SYm&n-mkLU zu-;VfRqs;;6{;c=+*{NTamY%D+B~z*hg8+xaLx4x4$uT{ijUm`{3LhSyT+@@xpndV zlWU1nCdI;->M^xK?%o6~P|x^+3qyc@m{O!E49Ue}xF`TcN^ za6*BU4*=y!s8fbIWvEkzl>bBcOiC!~Cq>dfhtFF{U!+g(21;*6y0l2AjKFQ0C(`>R z6_B^2+fveXm2}<`xgHSeYAF3!)^E$2N@e}F0w(vvjX?%w05&0}w z4H1Q}3>18-x<{%iN!}{8+z*t}s^k(Vy;;>*RaJ@4HRWq4b=5UibxnslCEw2zsj;Ec zG{FCEMxpS0Q@3$cf9`RO!Y2AvR#QEKlx7W{92MR&sqB*wCMc!Eh_`=2RjQIFz$p za%s3XX{=TY0Lgu@1j%cL2nT`5MNwi6eWNOXtKZv zO#xFX4NTJu3yiD)hi!@yxRviLhSqME>_Y5`kn6gUdqekYP0h;#=c;ekl`#ovmg z2O{l(NPHktABf}!BK?8P06=De#ox$G0Aw}*G9v()6@Wc83!G7#fwSs3;AVL8L1v1r zz%A-{;8sTBgUlM+f!pB22kFfnz&XatgY?M!;;-SkUBG#@8@NlI0Nkxk1fHNy0-mT& z2A-r&0iLWLv-m6Kwo`$RQKtb<3=04g&Y9 zYk&vTlYs}-wZLoCQ-Dua*8#6pPhI>ekvpFTyiQ#Ye5!gn@M-E9!0Xiwz^AKc0-vF7 z1m2)-TKox{n45t&s#}0Jsat_Jt3LqVqHY7;s-6Y>1NH31AFJEcbAZoMw*#N8o(p`A zdLHn0^?cxS)eC^nQ!fNQU%hDYM??>OG4O@z4}mXIcK~0kUIP3>btmu+^-|zV)XRW( zs+TYRw|c311@L9+F5t`6D}k?2e+0Zsy$bkB^=jZBsn-BsrCy6Xf3r{eGvG5^;f{ZR38F zRQ(O`uhl1jA5(vejQY6xB=B$4r+}YOe+T?q_4mL}s{4SSQlAF?o%#&$@6|sneplV6 zJ`4P``bXer)cwGJQ2zw{tomo*KdOHL-mm@@_)qF{i{DZIto{x7FY4cc|EfL@{G9qC z@ZZ#zfd8((4E((M3h)c+tBc=OUsV4A{F3?_@XPA!z^|xp0Kclf3H%TBpTMuFZvnrq zzPdgl_)Ya);D4$IfZtO81^l-99`HNr`@rw29{?XvKV1AzZczPi;P=#zfZta? z2L3?(1o%VsQ{aEAp88u)YdAn+IJH^5)2-vWQ7 veh2)udT8+*>Opk~_#3qV{Han+D diff --git a/files/mygui/Obliviontt.zip b/files/mygui/Obliviontt.zip new file mode 100644 index 0000000000000000000000000000000000000000..af4f809fd846cff444d5b1f09c7e86df1b6207d1 GIT binary patch literal 138502 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⁡xddcV`NI&{-&A;hf~zQpRC??m3?0ZBLV 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 Z|2M=R(QxzpFvfG(^Em(jU#TDd{1aQG&olr4 literal 0 HcmV?d00001 diff --git a/files/mygui/openmw.font.xml b/files/mygui/openmw.font.xml index e93c9b770f..252499a5f1 100644 --- a/files/mygui/openmw.font.xml +++ b/files/mygui/openmw.font.xml @@ -20,8 +20,8 @@ - - + + From 8a9e05a96b73e47238084305f456a869ecc9abe2 Mon Sep 17 00:00:00 2001 From: scrawl Date: Thu, 10 May 2012 11:03:27 +0200 Subject: [PATCH 25/30] display text on the book window --- apps/openmw/mwgui/bookwindow.cpp | 84 ++++++++++++++-- apps/openmw/mwgui/bookwindow.hpp | 10 ++ apps/openmw/mwgui/formatting.cpp | 132 +++++++++++++++++++++++--- apps/openmw/mwgui/formatting.hpp | 7 +- apps/openmw/mwgui/scrollwindow.cpp | 2 - files/mygui/openmw_book_layout.xml | 11 ++- files/mygui/openmw_journal_layout.xml | 4 +- 7 files changed, 223 insertions(+), 27 deletions(-) diff --git a/apps/openmw/mwgui/bookwindow.cpp b/apps/openmw/mwgui/bookwindow.cpp index 75be6280ad..8de45984cd 100644 --- a/apps/openmw/mwgui/bookwindow.cpp +++ b/apps/openmw/mwgui/bookwindow.cpp @@ -7,6 +7,8 @@ #include "../mwsound/soundmanager.hpp" #include "../mwworld/actiontake.hpp" +#include + using namespace MWGui; BookWindow::BookWindow (WindowManager& parWindowManager) : @@ -24,20 +26,57 @@ BookWindow::BookWindow (WindowManager& parWindowManager) : getWidget(mPrevPageButton, "PrevPageBTN"); mPrevPageButton->eventMouseButtonClick += MyGUI::newDelegate(this, &BookWindow::onPrevPageButtonClicked); + getWidget(mLeftPageNumber, "LeftPageNumber"); + getWidget(mRightPageNumber, "RightPageNumber"); + + getWidget(mLeftPage, "LeftPage"); + getWidget(mRightPage, "RightPage"); + center(); } +void BookWindow::clearPages() +{ + for (std::vector::iterator it=mPages.begin(); + it!=mPages.end(); ++it) + { + MyGUI::Gui::getInstance().destroyWidget(*it); + } + mPages.clear(); +} + void BookWindow::open (MWWorld::Ptr book) { - MWBase::Environment::get().getSoundManager()->playSound3D (book, "book open", 1.0, 1.0); - mBook = book; + clearPages(); + mCurrentPage = 0; + + MWBase::Environment::get().getSoundManager()->playSound3D (book, "book open", 1.0, 1.0); + ESMS::LiveCellRef *ref = mBook.get(); - //BookTextParser parser; - //parser.parse(ref->base->text, 0, 0); + BookTextParser parser; + std::vector results = parser.split(ref->base->text, mLeftPage->getSize().width, mLeftPage->getSize().height); + + int i=0; + for (std::vector::iterator it=results.begin(); + it!=results.end(); ++it) + { + MyGUI::Widget* parent; + if (i%2 == 0) + parent = mLeftPage; + else + parent = mRightPage; + + MyGUI::Widget* pageWidget = parent->createWidgetReal("", MyGUI::FloatCoord(0.0,0.0,1.0,1.0), MyGUI::Align::Default, "BookPage" + boost::lexical_cast(i)); + parser.parse(*it, pageWidget, mLeftPage->getSize().width); + mPages.push_back(pageWidget); + ++i; + } + + updatePages(); } void BookWindow::onCloseButtonClicked (MyGUI::Widget* _sender) @@ -54,15 +93,48 @@ void BookWindow::onTakeButtonClicked (MyGUI::Widget* _sender) MWWorld::ActionTake take(mBook); take.execute(); - /// \todo what about scripts? - MWBase::Environment::get().getInputManager()->setGuiMode (GM_Game); } void BookWindow::onNextPageButtonClicked (MyGUI::Widget* _sender) { + if ((mCurrentPage+1)*2 < mPages.size()) + { + MWBase::Environment::get().getSoundManager()->playSound ("book page2", 1.0, 1.0); + + ++mCurrentPage; + + updatePages(); + } } void BookWindow::onPrevPageButtonClicked (MyGUI::Widget* _sender) { + if (mCurrentPage > 0) + { + MWBase::Environment::get().getSoundManager()->playSound ("book page", 1.0, 1.0); + + --mCurrentPage; + + updatePages(); + } +} + +void BookWindow::updatePages() +{ + mLeftPageNumber->setCaption( boost::lexical_cast(mCurrentPage*2 + 1) ); + mRightPageNumber->setCaption( boost::lexical_cast(mCurrentPage*2 + 2) ); + + unsigned int i=0; + for (std::vector::iterator it = mPages.begin(); + it != mPages.end(); ++it) + { + if (mCurrentPage*2 == i || mCurrentPage*2+1 == i) + (*it)->setVisible(true); + else + { + (*it)->setVisible(false); + } + ++i; + } } diff --git a/apps/openmw/mwgui/bookwindow.hpp b/apps/openmw/mwgui/bookwindow.hpp index bc017e326f..fcea1d11f2 100644 --- a/apps/openmw/mwgui/bookwindow.hpp +++ b/apps/openmw/mwgui/bookwindow.hpp @@ -19,11 +19,21 @@ namespace MWGui void onCloseButtonClicked (MyGUI::Widget* _sender); void onTakeButtonClicked (MyGUI::Widget* _sender); + void updatePages(); + void clearPages(); + private: MyGUI::Button* mCloseButton; MyGUI::Button* mTakeButton; MyGUI::Button* mNextPageButton; MyGUI::Button* mPrevPageButton; + MyGUI::TextBox* mLeftPageNumber; + MyGUI::TextBox* mRightPageNumber; + MyGUI::Widget* mLeftPage; + MyGUI::Widget* mRightPage; + + unsigned int mCurrentPage; // 0 is first page + std::vector mPages; MWWorld::Ptr mBook; }; diff --git a/apps/openmw/mwgui/formatting.cpp b/apps/openmw/mwgui/formatting.cpp index 6b50fd04d0..e031678aef 100644 --- a/apps/openmw/mwgui/formatting.cpp +++ b/apps/openmw/mwgui/formatting.cpp @@ -11,7 +11,7 @@ namespace int convertFromHex(std::string hex) { int value = 0; - + int a = 0; int b = hex.length() - 1; for (; b >= 0; a++, b--) @@ -28,43 +28,144 @@ namespace case 'a': value += 10 * (1 << (a * 4)); break; - + case 'B': case 'b': value += 11 * (1 << (a * 4)); break; - + case 'C': case 'c': value += 12 * (1 << (a * 4)); break; - + case 'D': case 'd': value += 13 * (1 << (a * 4)); break; - + case 'E': case 'e': value += 14 * (1 << (a * 4)); break; - + case 'F': case 'f': value += 15 * (1 << (a * 4)); break; - + default: throw std::runtime_error("invalid character in hex number"); break; } } } - + return value; } } +std::vector BookTextParser::split(std::string text, const int width, const int height) +{ + std::vector result; + + boost::algorithm::replace_all(text, "
", "\n"); + boost::algorithm::replace_all(text, "

", "\n\n"); + + const int spacing = 48; + + while (text.size() > 0) + { + // read in characters until we have exceeded the size, or run out of text + int currentWidth = 0; + int currentHeight = 0; + std::string currentText; + std::string currentWord; + + unsigned int i=0; + while (currentHeight <= height-spacing && i', i) == std::string::npos) + throw std::runtime_error("BookTextParser Error: Tag is not terminated"); + + if (text.size() > i+4 && text.substr(i, 4) == "', i)-i), false); + currentHeight += (mHeight-h); + currentWidth = 0; + } + else if (text.size() > i+5 && text.substr(i, 5) == "', i)-i)); + currentHeight += 18; // keep this in sync with the font size + currentWidth = 0; + } + else if (text.size() > i+4 && text.substr(i, 4) == "', i)-i)); + currentHeight += 18; // keep this in sync with the font size + currentWidth = 0; + } + + currentText += text.substr(i, text.find('>', i)-i+1); + i = text.find('>', i); + } + else if (text[i] == '\n') + { + currentHeight += 18; // keep this in sync with the font size + currentWidth = 0; + currentWord = ""; + currentText += text[i]; + } + else if (text[i] == ' ') + { + currentWidth += 3; // keep this in sync with the font's SpaceWidth property + currentWord = ""; + currentText += text[i]; + } + else + { + currentWidth += + MyGUI::FontManager::getInstance().getByName (mTextStyle.mFont == "Default" ? "EB Garamond" : mTextStyle.mFont) + ->getGlyphInfo(static_cast(text[i]))->width; + currentWord += text[i]; + currentText += text[i]; + } + + if (currentWidth > width) + { + currentHeight += 18; // keep this in sync with the font size + currentWidth = 0; + + // add size of the current word + unsigned int j=0; + while (jgetGlyphInfo(static_cast(currentWord[j]))->width; + ++j; + } + } + + ++i; + } + if (currentHeight > height-spacing) + { + // remove the last word + currentText.erase(currentText.size()-currentWord.size(), currentText.size()); + } + + result.push_back(currentText); + text.erase(0, currentText.size()); + } + + return result; +} + MyGUI::IntSize BookTextParser::parse(std::string text, MyGUI::Widget* parent, const int width) { mParent = parent; @@ -92,7 +193,7 @@ MyGUI::IntSize BookTextParser::parse(std::string text, MyGUI::Widget* parent, co return MyGUI::IntSize(mWidth, mHeight); } -void BookTextParser::parseImage(std::string tag) +void BookTextParser::parseImage(std::string tag, bool createWidget) { int src_start = tag.find("SRC=")+5; std::string image = tag.substr(src_start, tag.find('"', src_start)-src_start); @@ -111,11 +212,14 @@ void BookTextParser::parseImage(std::string tag) int height_start = tag.find("HEIGHT=")+8; int height = boost::lexical_cast(tag.substr(height_start, tag.find('"', height_start)-height_start)); - MyGUI::ImageBox* box = mParent->createWidget ("ImageBox", - MyGUI::IntCoord(0, mHeight, width, height), MyGUI::Align::Left | MyGUI::Align::Top, - mParent->getName() + boost::lexical_cast(mParent->getChildCount())); - box->setImageTexture("bookart\\" + image); - box->setProperty("NeedMouse", "false"); + if (createWidget) + { + MyGUI::ImageBox* box = mParent->createWidget ("ImageBox", + MyGUI::IntCoord(0, mHeight, width, height), MyGUI::Align::Left | MyGUI::Align::Top, + mParent->getName() + boost::lexical_cast(mParent->getChildCount())); + box->setImageTexture("bookart\\" + image); + box->setProperty("NeedMouse", "false"); + } mWidth = std::max(mWidth, width); mHeight += height; diff --git a/apps/openmw/mwgui/formatting.hpp b/apps/openmw/mwgui/formatting.hpp index 19b6969183..c8f2c9e445 100644 --- a/apps/openmw/mwgui/formatting.hpp +++ b/apps/openmw/mwgui/formatting.hpp @@ -36,10 +36,15 @@ namespace MWGui */ MyGUI::IntSize parse(std::string text, MyGUI::Widget* parent, const int width); + /** + * Split the specified text into pieces that fit in the area specified by width and height parameters + */ + std::vector split(std::string text, const int width, const int height); + protected: void parseSubText(std::string text); - void parseImage(std::string tag); + void parseImage(std::string tag, bool createWidget=true); void parseDiv(std::string tag); void parseFont(std::string tag); private: diff --git a/apps/openmw/mwgui/scrollwindow.cpp b/apps/openmw/mwgui/scrollwindow.cpp index b1c5ec3373..38e2f77c17 100644 --- a/apps/openmw/mwgui/scrollwindow.cpp +++ b/apps/openmw/mwgui/scrollwindow.cpp @@ -57,7 +57,5 @@ void ScrollWindow::onTakeButtonClicked (MyGUI::Widget* _sender) MWWorld::ActionTake take(mScroll); take.execute(); - /// \todo what about scripts? - MWBase::Environment::get().getInputManager()->setGuiMode (GM_Game); } diff --git a/files/mygui/openmw_book_layout.xml b/files/mygui/openmw_book_layout.xml index 36f93a067a..07ebf5030a 100644 --- a/files/mygui/openmw_book_layout.xml +++ b/files/mygui/openmw_book_layout.xml @@ -20,8 +20,15 @@ - - + + + + + + + + + diff --git a/files/mygui/openmw_journal_layout.xml b/files/mygui/openmw_journal_layout.xml index 906e872976..75bb5eea17 100644 --- a/files/mygui/openmw_journal_layout.xml +++ b/files/mygui/openmw_journal_layout.xml @@ -13,8 +13,8 @@ - - + + From de995e3a69f60c9bff28c15ccfe3f9cd4c3fcc67 Mon Sep 17 00:00:00 2001 From: scrawl Date: Thu, 10 May 2012 11:19:22 +0200 Subject: [PATCH 26/30] adjust topic list on window resize --- apps/openmw/mwgui/dialogue.cpp | 7 +++++++ apps/openmw/mwgui/dialogue.hpp | 1 + apps/openmw/mwgui/list.cpp | 5 +++++ apps/openmw/mwgui/list.hpp | 7 ++++++- 4 files changed, 19 insertions(+), 1 deletion(-) diff --git a/apps/openmw/mwgui/dialogue.cpp b/apps/openmw/mwgui/dialogue.cpp index 3d47aa7dc3..2e74290555 100644 --- a/apps/openmw/mwgui/dialogue.cpp +++ b/apps/openmw/mwgui/dialogue.cpp @@ -67,6 +67,8 @@ DialogueWindow::DialogueWindow(WindowManager& parWindowManager) getWidget(pDispositionBar, "Disposition"); getWidget(pDispositionText,"DispositionText"); + + static_cast(mMainWidget)->eventWindowChangeCoord += MyGUI::newDelegate(this, &DialogueWindow::onWindowResize); } void DialogueWindow::onHistoryClicked(MyGUI::Widget* _sender) @@ -88,6 +90,11 @@ void DialogueWindow::onHistoryClicked(MyGUI::Widget* _sender) } } +void DialogueWindow::onWindowResize(MyGUI::Window* _sender) +{ + topicsList->adjustSize(); +} + void DialogueWindow::onMouseWheel(MyGUI::Widget* _sender, int _rel) { if (history->getVScrollPosition() - _rel*0.3 < 0) diff --git a/apps/openmw/mwgui/dialogue.hpp b/apps/openmw/mwgui/dialogue.hpp index ac29e9ec8d..a8fed7d31e 100644 --- a/apps/openmw/mwgui/dialogue.hpp +++ b/apps/openmw/mwgui/dialogue.hpp @@ -51,6 +51,7 @@ namespace MWGui void onByeClicked(MyGUI::Widget* _sender); void onHistoryClicked(MyGUI::Widget* _sender); void onMouseWheel(MyGUI::Widget* _sender, int _rel); + void onWindowResize(MyGUI::Window* _sender); private: void updateOptions(); diff --git a/apps/openmw/mwgui/list.cpp b/apps/openmw/mwgui/list.cpp index 733654b8c5..d66cc6f89b 100644 --- a/apps/openmw/mwgui/list.cpp +++ b/apps/openmw/mwgui/list.cpp @@ -32,6 +32,11 @@ void MWList::addItem(const std::string& name) redraw(); } +void MWList::adjustSize() +{ + redraw(); +} + void MWList::redraw(bool scrollbarShown) { const int _scrollBarWidth = 24; // fetch this from skin? diff --git a/apps/openmw/mwgui/list.hpp b/apps/openmw/mwgui/list.hpp index eedcae066f..a2e9afcd1e 100644 --- a/apps/openmw/mwgui/list.hpp +++ b/apps/openmw/mwgui/list.hpp @@ -9,7 +9,7 @@ namespace MWGui { /** * \brief a very simple list widget that supports word-wrapping entries - * \note does not handle changing the width of the list at runtime + * \note if the width or height of the list changes, you must call adjustSize() method */ class MWList : public MyGUI::Widget { @@ -25,6 +25,11 @@ namespace MWGui */ EventHandle_String eventItemSelected; + /** + * Call after the size of the list changed + */ + void adjustSize(); + void addItem(const std::string& name); void removeItem(const std::string& name); bool hasItem(const std::string& name); From 4ce50c503bc28f4dd81b074fe578a82268b794ef Mon Sep 17 00:00:00 2001 From: scrawl Date: Thu, 10 May 2012 11:29:28 +0200 Subject: [PATCH 27/30] a few tweaks --- apps/openmw/mwgui/stats_window.cpp | 10 +++++++--- apps/openmw/mwgui/tooltips.cpp | 4 ++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/apps/openmw/mwgui/stats_window.cpp b/apps/openmw/mwgui/stats_window.cpp index 168b2efc66..8b688984fb 100644 --- a/apps/openmw/mwgui/stats_window.cpp +++ b/apps/openmw/mwgui/stats_window.cpp @@ -230,7 +230,9 @@ void StatsWindow::setBirthSign (const std::string& signId) void StatsWindow::addSeparator(MyGUI::IntCoord &coord1, MyGUI::IntCoord &coord2) { - MyGUI::ImageBox* separator = skillClientWidget->createWidget("MW_HLine", MyGUI::IntCoord(10, coord1.top, coord1.width + coord2.width - 4, 18), MyGUI::Align::Default); + MyGUI::ImageBox* separator = skillClientWidget->createWidget("MW_HLine", + MyGUI::IntCoord(10, coord1.top, coord1.width + coord2.width - 4, 18), + MyGUI::Align::Left | MyGUI::Align::Top | MyGUI::Align::HStretch); skillWidgets.push_back(separator); coord1.top += separator->getHeight(); @@ -239,7 +241,9 @@ void StatsWindow::addSeparator(MyGUI::IntCoord &coord1, MyGUI::IntCoord &coord2) void StatsWindow::addGroup(const std::string &label, MyGUI::IntCoord &coord1, MyGUI::IntCoord &coord2) { - MyGUI::TextBox* groupWidget = skillClientWidget->createWidget("SandBrightText", MyGUI::IntCoord(0, coord1.top, coord1.width + coord2.width, coord1.height), MyGUI::Align::Default); + MyGUI::TextBox* groupWidget = skillClientWidget->createWidget("SandBrightText", + MyGUI::IntCoord(0, coord1.top, coord1.width + coord2.width, coord1.height), + MyGUI::Align::Left | MyGUI::Align::Top | MyGUI::Align::HStretch); groupWidget->setCaption(label); skillWidgets.push_back(groupWidget); @@ -251,7 +255,7 @@ MyGUI::TextBox* StatsWindow::addValueItem(const std::string& text, const std::st { MyGUI::TextBox *skillNameWidget, *skillValueWidget; - skillNameWidget = skillClientWidget->createWidget("SandText", coord1, MyGUI::Align::Default); + skillNameWidget = skillClientWidget->createWidget("SandText", coord1, MyGUI::Align::Left | MyGUI::Align::Top | MyGUI::Align::HStretch); skillNameWidget->setCaption(text); skillNameWidget->setUserString("ToolTipType", "Text"); skillNameWidget->setUserString("ToolTipText", tooltip); diff --git a/apps/openmw/mwgui/tooltips.cpp b/apps/openmw/mwgui/tooltips.cpp index 9d7a7ee874..1dbe909681 100644 --- a/apps/openmw/mwgui/tooltips.cpp +++ b/apps/openmw/mwgui/tooltips.cpp @@ -103,8 +103,8 @@ void ToolTips::onFrame(float frameDuration) // adjust tooltip size to fit its content, position it above the crosshair /// \todo Slide the tooltip along the bounding box of the focused object (like in Morrowind) - setCoord(viewSize.width/2 - (tooltipSize.width)/2.f, - viewSize.height/2 - (tooltipSize.height) - 32, + setCoord(std::max(0, viewSize.width/2 - (tooltipSize.width)/2), + std::max(0, viewSize.height/2 - (tooltipSize.height) - 32), tooltipSize.width, tooltipSize.height); } From 3d9e89c8378b962b49940b8c3920dd9867614817 Mon Sep 17 00:00:00 2001 From: scrawl Date: Thu, 10 May 2012 12:44:01 +0200 Subject: [PATCH 28/30] removed unnecessary include --- apps/openmw/mwgui/formatting.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/openmw/mwgui/formatting.cpp b/apps/openmw/mwgui/formatting.cpp index e031678aef..53c23c25d5 100644 --- a/apps/openmw/mwgui/formatting.cpp +++ b/apps/openmw/mwgui/formatting.cpp @@ -2,7 +2,6 @@ #include #include -#include using namespace MWGui; From 37095b62c696674fc0122d541c4321eb1595a51e Mon Sep 17 00:00:00 2001 From: Marc Zinnschlag Date: Thu, 10 May 2012 12:51:40 +0200 Subject: [PATCH 29/30] removed another include --- apps/openmw/mwgui/formatting.hpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/apps/openmw/mwgui/formatting.hpp b/apps/openmw/mwgui/formatting.hpp index c8f2c9e445..a1e115491d 100644 --- a/apps/openmw/mwgui/formatting.hpp +++ b/apps/openmw/mwgui/formatting.hpp @@ -3,8 +3,6 @@ #include -#include - namespace MWGui { struct TextStyle From c4aae96d94e1a1dab397095f17e9b4f110b2451e Mon Sep 17 00:00:00 2001 From: scrawl Date: Fri, 11 May 2012 07:18:41 +0200 Subject: [PATCH 30/30] implemented "goodbye" script function that force-cancels dialogue --- apps/openmw/mwdialogue/dialoguemanager.cpp | 7 +++++++ apps/openmw/mwdialogue/dialoguemanager.hpp | 2 ++ apps/openmw/mwgui/dialogue.cpp | 17 +++++++++++++++++ apps/openmw/mwgui/dialogue.hpp | 3 +++ apps/openmw/mwscript/dialogueextensions.cpp | 13 +++++++++++++ apps/openmw/mwscript/docs/vmformat.txt | 3 ++- 6 files changed, 44 insertions(+), 1 deletion(-) diff --git a/apps/openmw/mwdialogue/dialoguemanager.cpp b/apps/openmw/mwdialogue/dialoguemanager.cpp index 282fba3543..7baf589c44 100644 --- a/apps/openmw/mwdialogue/dialoguemanager.cpp +++ b/apps/openmw/mwdialogue/dialoguemanager.cpp @@ -883,4 +883,11 @@ namespace MWDialogue } return factionID; } + + void DialogueManager::goodbye() + { + MWGui::DialogueWindow* win = MWBase::Environment::get().getWindowManager()->getDialogueWindow(); + + win->goodbye(); + } } diff --git a/apps/openmw/mwdialogue/dialoguemanager.hpp b/apps/openmw/mwdialogue/dialoguemanager.hpp index a3e37987db..992175c0cf 100644 --- a/apps/openmw/mwdialogue/dialoguemanager.hpp +++ b/apps/openmw/mwdialogue/dialoguemanager.hpp @@ -56,6 +56,8 @@ namespace MWDialogue void askQuestion(std::string question,int choice); + void goodbye(); + ///get the faction of the actor you are talking with std::string getFaction(); diff --git a/apps/openmw/mwgui/dialogue.cpp b/apps/openmw/mwgui/dialogue.cpp index 2e74290555..45163017a6 100644 --- a/apps/openmw/mwgui/dialogue.cpp +++ b/apps/openmw/mwgui/dialogue.cpp @@ -39,6 +39,7 @@ std::string::size_type find_str_ci(const std::string& str, const std::string& su DialogueWindow::DialogueWindow(WindowManager& parWindowManager) : WindowBase("openmw_dialogue_window_layout.xml", parWindowManager) + , mEnabled(true) { // Centre dialog center(); @@ -64,6 +65,7 @@ DialogueWindow::DialogueWindow(WindowManager& parWindowManager) MyGUI::ButtonPtr byeButton; getWidget(byeButton, "ByeButton"); byeButton->eventMouseButtonClick += MyGUI::newDelegate(this, &DialogueWindow::onByeClicked); + byeButton->setCaption(MWBase::Environment::get().getWorld()->getStore().gameSettings.search("sGoodbye")->str); getWidget(pDispositionBar, "Disposition"); getWidget(pDispositionText,"DispositionText"); @@ -81,6 +83,10 @@ void DialogueWindow::onHistoryClicked(MyGUI::Widget* _sender) size_t cursorPosition = t->getCursorPosition(lastPressed); MyGUI::UString color = history->getColorAtPos(cursorPosition); + + if (!mEnabled && color == "#572D21") + MWBase::Environment::get().getDialogueManager()->goodbyeSelected(); + if(color != "#B29154") { UString key = history->getColorTextAt(cursorPosition); @@ -119,11 +125,15 @@ void DialogueWindow::onByeClicked(MyGUI::Widget* _sender) void DialogueWindow::onSelectTopic(std::string topic) { + if (!mEnabled) return; + MWBase::Environment::get().getDialogueManager()->keywordSelected(lower_string(topic)); } void DialogueWindow::startDialogue(std::string npcName) { + mEnabled = true; + topicsList->setEnabled(true); static_cast(mMainWidget)->setCaption(npcName); adjustWindowCaption(); } @@ -224,3 +234,10 @@ void DialogueWindow::updateOptions() pDispositionText->eraseText(0,pDispositionText->getTextLength()); pDispositionText->addText("#B29154"+std::string("40/100")+"#B29154"); } + +void DialogueWindow::goodbye() +{ + history->addDialogText("\n#572D21" + MWBase::Environment::get().getWorld()->getStore().gameSettings.search("sGoodbye")->str); + topicsList->setEnabled(false); + mEnabled = false; +} diff --git a/apps/openmw/mwgui/dialogue.hpp b/apps/openmw/mwgui/dialogue.hpp index a8fed7d31e..a29e737997 100644 --- a/apps/openmw/mwgui/dialogue.hpp +++ b/apps/openmw/mwgui/dialogue.hpp @@ -45,6 +45,7 @@ namespace MWGui void addText(std::string text); void addTitle(std::string text); void askQuestion(std::string question); + void goodbye(); protected: void onSelectTopic(std::string topic); @@ -60,6 +61,8 @@ namespace MWGui */ std::string parseText(std::string text); + bool mEnabled; + DialogueHistory* history; Widgets::MWList* topicsList; MyGUI::ProgressPtr pDispositionBar; diff --git a/apps/openmw/mwscript/dialogueextensions.cpp b/apps/openmw/mwscript/dialogueextensions.cpp index b99d55999c..ec8ab59b41 100644 --- a/apps/openmw/mwscript/dialogueextensions.cpp +++ b/apps/openmw/mwscript/dialogueextensions.cpp @@ -115,6 +115,16 @@ namespace MWScript } }; + class OpGoodbye : public Interpreter::Opcode0 + { + public: + + virtual void execute(Interpreter::Runtime& runtime) + { + MWBase::Environment::get().getDialogueManager()->goodbye(); + } + }; + const int opcodeJournal = 0x2000133; const int opcodeSetJournalIndex = 0x2000134; const int opcodeGetJournalIndex = 0x2000135; @@ -122,6 +132,7 @@ namespace MWScript const int opcodeChoice = 0x2000a; const int opcodeForceGreeting = 0x200014f; const int opcodeForceGreetingExplicit = 0x2000150; + const int opcodeGoodbye = 0x2000152; void registerExtensions (Compiler::Extensions& extensions) { @@ -133,6 +144,7 @@ namespace MWScript extensions.registerInstruction("forcegreeting","",opcodeForceGreeting); extensions.registerInstruction("forcegreeting","",opcodeForceGreeting, opcodeForceGreetingExplicit); + extensions.registerInstruction("goodbye", "", opcodeGoodbye); } void installOpcodes (Interpreter::Interpreter& interpreter) @@ -144,6 +156,7 @@ namespace MWScript interpreter.installSegment3 (opcodeChoice,new OpChoice); interpreter.installSegment5 (opcodeForceGreeting, new OpForceGreeting); interpreter.installSegment5 (opcodeForceGreetingExplicit, new OpForceGreeting); + interpreter.installSegment5 (opcodeGoodbye, new OpGoodbye); } } diff --git a/apps/openmw/mwscript/docs/vmformat.txt b/apps/openmw/mwscript/docs/vmformat.txt index 378b2412a5..0920c72f8e 100644 --- a/apps/openmw/mwscript/docs/vmformat.txt +++ b/apps/openmw/mwscript/docs/vmformat.txt @@ -145,4 +145,5 @@ op 0x200014e: ModDisposition, explicit reference op 0x200014f: ForceGreeting op 0x2000150: ForceGreeting, explicit reference op 0x2000151: ToggleFullHelp -opcodes 0x2000152-0x3ffffff unused +op 0x2000152: Goodbye +opcodes 0x2000153-0x3ffffff unused