1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-03-03 13:19:40 +00:00

addition to last commit: show the selected weapon/spell names as inventory/spell window caption

This commit is contained in:
scrawl 2012-05-29 18:59:11 +02:00
parent 298ae4f7f8
commit c5a685d11f
5 changed files with 25 additions and 9 deletions

View file

@ -44,6 +44,8 @@ HUD::HUD(int width, int height, int fpsLevel, DragAndDrop* dragAndDrop)
, mCellNameTimer(0.0f) , mCellNameTimer(0.0f)
, mCellNameBox(NULL) , mCellNameBox(NULL)
, mMapVisible(true) , mMapVisible(true)
, mWeaponVisible(true)
, mSpellVisible(true)
{ {
setCoord(0,0, width, height); setCoord(0,0, width, height);
@ -101,9 +103,6 @@ HUD::HUD(int width, int height, int fpsLevel, DragAndDrop* dragAndDrop)
setEffect("icons\\s\\tx_s_chameleon.dds"); setEffect("icons\\s\\tx_s_chameleon.dds");
unsetSelectedSpell();
unsetSelectedWeapon();
LocalMapBase::init(minimap, compass, this); LocalMapBase::init(minimap, compass, this);
mMainWidget->eventMouseButtonClick += MyGUI::newDelegate(this, &HUD::onWorldClicked); mMainWidget->eventMouseButtonClick += MyGUI::newDelegate(this, &HUD::onWorldClicked);
@ -201,6 +200,11 @@ void HUD::setBottomLeftVisibility(bool hmsVisible, bool weapVisible, bool spellV
if (!weapVisible) if (!weapVisible)
spellDx += spellBoxBaseLeft - weapBoxBaseLeft; spellDx += spellBoxBaseLeft - weapBoxBaseLeft;
mWeaponVisible = weapVisible;
mSpellVisible = spellVisible;
if (!mWeaponVisible && !mSpellVisible)
mWeaponSpellBox->setVisible(false);
health->setVisible(hmsVisible); health->setVisible(hmsVisible);
stamina->setVisible(hmsVisible); stamina->setVisible(hmsVisible);
magicka->setVisible(hmsVisible); magicka->setVisible(hmsVisible);
@ -346,7 +350,7 @@ void HUD::setSelectedSpell(const std::string& spellId, int successChancePercent)
{ {
const ESM::Spell* spell = MWBase::Environment::get().getWorld()->getStore().spells.find(spellId); const ESM::Spell* spell = MWBase::Environment::get().getWorld()->getStore().spells.find(spellId);
std::string spellName = spell->name; std::string spellName = spell->name;
if (spellName != mSpellName) if (spellName != mSpellName && mSpellVisible)
{ {
mWeaponSpellTimer = 5.0f; mWeaponSpellTimer = 5.0f;
mSpellName = spellName; mSpellName = spellName;
@ -376,7 +380,7 @@ void HUD::setSelectedSpell(const std::string& spellId, int successChancePercent)
void HUD::setSelectedEnchantItem(const MWWorld::Ptr& item, int chargePercent) void HUD::setSelectedEnchantItem(const MWWorld::Ptr& item, int chargePercent)
{ {
std::string itemName = MWWorld::Class::get(item).getName(item); std::string itemName = MWWorld::Class::get(item).getName(item);
if (itemName != mSpellName) if (itemName != mSpellName && mSpellVisible)
{ {
mWeaponSpellTimer = 5.0f; mWeaponSpellTimer = 5.0f;
mSpellName = itemName; mSpellName = itemName;
@ -407,7 +411,7 @@ void HUD::setSelectedEnchantItem(const MWWorld::Ptr& item, int chargePercent)
void HUD::setSelectedWeapon(const MWWorld::Ptr& item, int durabilityPercent) void HUD::setSelectedWeapon(const MWWorld::Ptr& item, int durabilityPercent)
{ {
std::string itemName = MWWorld::Class::get(item).getName(item); std::string itemName = MWWorld::Class::get(item).getName(item);
if (itemName != mWeaponName) if (itemName != mWeaponName && mWeaponVisible)
{ {
mWeaponSpellTimer = 5.0f; mWeaponSpellTimer = 5.0f;
mWeaponName = itemName; mWeaponName = itemName;
@ -443,7 +447,7 @@ void HUD::setSelectedWeapon(const MWWorld::Ptr& item, int durabilityPercent)
void HUD::unsetSelectedSpell() void HUD::unsetSelectedSpell()
{ {
std::string spellName = "#{sNone}"; std::string spellName = "#{sNone}";
if (spellName != mSpellName) if (spellName != mSpellName && mSpellVisible)
{ {
mWeaponSpellTimer = 5.0f; mWeaponSpellTimer = 5.0f;
mSpellName = spellName; mSpellName = spellName;
@ -462,7 +466,7 @@ void HUD::unsetSelectedSpell()
void HUD::unsetSelectedWeapon() void HUD::unsetSelectedWeapon()
{ {
std::string itemName = "#{sSkillHandtohand}"; std::string itemName = "#{sSkillHandtohand}";
if (itemName != mWeaponName) if (itemName != mWeaponName && mWeaponVisible)
{ {
mWeaponSpellTimer = 5.0f; mWeaponSpellTimer = 5.0f;
mWeaponName = itemName; mWeaponName = itemName;

View file

@ -67,6 +67,8 @@ namespace MWGui
float mWeaponSpellTimer; float mWeaponSpellTimer;
bool mMapVisible; bool mMapVisible;
bool mWeaponVisible;
bool mSpellVisible;
void onWorldClicked(MyGUI::Widget* _sender); void onWorldClicked(MyGUI::Widget* _sender);
void onWorldMouseOver(MyGUI::Widget* _sender, int x, int y); void onWorldMouseOver(MyGUI::Widget* _sender, int x, int y);

View file

@ -47,6 +47,7 @@ namespace MWGui
getWidget(mEffectBox, "EffectsBox"); getWidget(mEffectBox, "EffectsBox");
setCoord(498, 300, 302, 300); setCoord(498, 300, 302, 300);
updateSpells(); updateSpells();
mMainWidget->castType<MyGUI::Window>()->eventWindowChangeCoord += MyGUI::newDelegate(this, &SpellWindow::onWindowResize); mMainWidget->castType<MyGUI::Window>()->eventWindowChangeCoord += MyGUI::newDelegate(this, &SpellWindow::onWindowResize);

View file

@ -144,6 +144,9 @@ WindowManager::WindowManager(
playerSkillValues.insert(std::make_pair(ESM::Skill::skillIds[i], MWMechanics::Stat<float>())); playerSkillValues.insert(std::make_pair(ESM::Skill::skillIds[i], MWMechanics::Stat<float>()));
} }
unsetSelectedSpell();
unsetSelectedWeapon();
// Set up visibility // Set up visibility
updateVisible(); updateVisible();
} }
@ -678,24 +681,30 @@ void WindowManager::removeGuiMode(GuiMode mode)
void WindowManager::setSelectedSpell(const std::string& spellId, int successChancePercent) void WindowManager::setSelectedSpell(const std::string& spellId, int successChancePercent)
{ {
hud->setSelectedSpell(spellId, successChancePercent); hud->setSelectedSpell(spellId, successChancePercent);
const ESM::Spell* spell = MWBase::Environment::get().getWorld()->getStore().spells.find(spellId);
mSpellWindow->setTitle(spell->name);
} }
void WindowManager::setSelectedEnchantItem(const MWWorld::Ptr& item, int chargePercent) void WindowManager::setSelectedEnchantItem(const MWWorld::Ptr& item, int chargePercent)
{ {
hud->setSelectedEnchantItem(item, chargePercent); hud->setSelectedEnchantItem(item, chargePercent);
mSpellWindow->setTitle(MWWorld::Class::get(item).getName(item));
} }
void WindowManager::setSelectedWeapon(const MWWorld::Ptr& item, int durabilityPercent) void WindowManager::setSelectedWeapon(const MWWorld::Ptr& item, int durabilityPercent)
{ {
hud->setSelectedWeapon(item, durabilityPercent); hud->setSelectedWeapon(item, durabilityPercent);
mInventoryWindow->setTitle(MWWorld::Class::get(item).getName(item));
} }
void WindowManager::unsetSelectedSpell() void WindowManager::unsetSelectedSpell()
{ {
hud->unsetSelectedSpell(); hud->unsetSelectedSpell();
mSpellWindow->setTitle("#{sNone}");
} }
void WindowManager::unsetSelectedWeapon() void WindowManager::unsetSelectedWeapon()
{ {
hud->unsetSelectedWeapon(); hud->unsetSelectedWeapon();
mInventoryWindow->setTitle("#{sSkillHandtohand}");
} }

View file

@ -118,7 +118,7 @@ namespace GUI
void setTitle(const std::string& title) void setTitle(const std::string& title)
{ {
// NOTE: this assume that mMainWidget is of type Window. // NOTE: this assume that mMainWidget is of type Window.
static_cast<MyGUI::Window*>(mMainWidget)->setCaption(title); static_cast<MyGUI::Window*>(mMainWidget)->setCaptionWithReplacing(title);
adjustWindowCaption(); adjustWindowCaption();
} }