forked from teamnwah/openmw-tes3coop
some unfinished work for dropping objects into the gameworld
This commit is contained in:
parent
967fb13fca
commit
6c9f75b322
3 changed files with 33 additions and 3 deletions
|
@ -6,10 +6,14 @@
|
||||||
|
|
||||||
#include <boost/lexical_cast.hpp>
|
#include <boost/lexical_cast.hpp>
|
||||||
|
|
||||||
|
#include "../mwbase/environment.hpp"
|
||||||
|
|
||||||
|
#include "window_manager.hpp"
|
||||||
|
#include "container.hpp"
|
||||||
|
|
||||||
using namespace MWGui;
|
using namespace MWGui;
|
||||||
|
|
||||||
HUD::HUD(int width, int height, int fpsLevel)
|
HUD::HUD(int width, int height, int fpsLevel, DragAndDrop* dragAndDrop)
|
||||||
: Layout("openmw_hud_layout.xml")
|
: Layout("openmw_hud_layout.xml")
|
||||||
, health(NULL)
|
, health(NULL)
|
||||||
, magicka(NULL)
|
, magicka(NULL)
|
||||||
|
@ -32,6 +36,7 @@ HUD::HUD(int width, int height, int fpsLevel)
|
||||||
, spellBoxBaseLeft(0)
|
, spellBoxBaseLeft(0)
|
||||||
, effectBoxBaseRight(0)
|
, effectBoxBaseRight(0)
|
||||||
, minimapBoxBaseRight(0)
|
, minimapBoxBaseRight(0)
|
||||||
|
, mDragAndDrop(dragAndDrop)
|
||||||
{
|
{
|
||||||
setCoord(0,0, width, height);
|
setCoord(0,0, width, height);
|
||||||
|
|
||||||
|
@ -80,6 +85,8 @@ HUD::HUD(int width, int height, int fpsLevel)
|
||||||
setEffect("icons\\s\\tx_s_chameleon.dds");
|
setEffect("icons\\s\\tx_s_chameleon.dds");
|
||||||
|
|
||||||
LocalMapBase::init(minimap, this);
|
LocalMapBase::init(minimap, this);
|
||||||
|
|
||||||
|
mMainWidget->eventMouseButtonClick += MyGUI::newDelegate(this, &HUD::onWorldClicked);
|
||||||
}
|
}
|
||||||
|
|
||||||
void HUD::setFpsLevel(int level)
|
void HUD::setFpsLevel(int level)
|
||||||
|
@ -243,3 +250,20 @@ void HUD::setBottomRightVisibility(bool effectBoxVisible, bool minimapBoxVisible
|
||||||
effectBox->setVisible(effectBoxVisible);
|
effectBox->setVisible(effectBoxVisible);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void HUD::onWorldClicked(MyGUI::Widget* _sender)
|
||||||
|
{
|
||||||
|
if (mDragAndDrop->mIsOnDragAndDrop)
|
||||||
|
{
|
||||||
|
// drop item into the gameworld
|
||||||
|
|
||||||
|
|
||||||
|
mDragAndDrop->mStore.clear();
|
||||||
|
mDragAndDrop->mIsOnDragAndDrop = false;
|
||||||
|
MyGUI::Gui::getInstance().destroyWidget(mDragAndDrop->mDraggedWidget);
|
||||||
|
mDragAndDrop->mDraggedWidget = 0;
|
||||||
|
mDragAndDrop->mContainerWindow = 0;
|
||||||
|
|
||||||
|
MWBase::Environment::get().getWindowManager()->setDragDrop(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,10 +6,12 @@
|
||||||
|
|
||||||
namespace MWGui
|
namespace MWGui
|
||||||
{
|
{
|
||||||
|
class DragAndDrop;
|
||||||
|
|
||||||
class HUD : public OEngine::GUI::Layout, public LocalMapBase
|
class HUD : public OEngine::GUI::Layout, public LocalMapBase
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
HUD(int width, int height, int fpsLevel);
|
HUD(int width, int height, int fpsLevel, DragAndDrop* dragAndDrop);
|
||||||
void setStats(int h, int hmax, int m, int mmax, int s, int smax);
|
void setStats(int h, int hmax, int m, int mmax, int s, int smax);
|
||||||
void setWeapIcon(const char *str);
|
void setWeapIcon(const char *str);
|
||||||
void setSpellIcon(const char *str);
|
void setSpellIcon(const char *str);
|
||||||
|
@ -46,5 +48,9 @@ namespace MWGui
|
||||||
int hmsBaseLeft, weapBoxBaseLeft, spellBoxBaseLeft;
|
int hmsBaseLeft, weapBoxBaseLeft, spellBoxBaseLeft;
|
||||||
// bottom right elements
|
// bottom right elements
|
||||||
int minimapBoxBaseRight, effectBoxBaseRight;
|
int minimapBoxBaseRight, effectBoxBaseRight;
|
||||||
|
|
||||||
|
DragAndDrop* mDragAndDrop;
|
||||||
|
|
||||||
|
void onWorldClicked(MyGUI::Widget* _sender);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -99,7 +99,6 @@ WindowManager::WindowManager(
|
||||||
mDragAndDrop->mDragAndDropWidget = dragAndDropWidget;
|
mDragAndDrop->mDragAndDropWidget = dragAndDropWidget;
|
||||||
mDragAndDrop->mContainerWindow = 0;
|
mDragAndDrop->mContainerWindow = 0;
|
||||||
|
|
||||||
hud = new HUD(w,h, showFPSLevel);
|
|
||||||
menu = new MainMenu(w,h);
|
menu = new MainMenu(w,h);
|
||||||
map = new MapWindow(*this);
|
map = new MapWindow(*this);
|
||||||
stats = new StatsWindow(*this);
|
stats = new StatsWindow(*this);
|
||||||
|
@ -109,6 +108,7 @@ WindowManager::WindowManager(
|
||||||
mDialogueWindow = new DialogueWindow(*this);
|
mDialogueWindow = new DialogueWindow(*this);
|
||||||
mContainerWindow = new ContainerWindow(*this,mDragAndDrop);
|
mContainerWindow = new ContainerWindow(*this,mDragAndDrop);
|
||||||
mInventoryWindow = new InventoryWindow(*this,mDragAndDrop);
|
mInventoryWindow = new InventoryWindow(*this,mDragAndDrop);
|
||||||
|
hud = new HUD(w,h, showFPSLevel, mDragAndDrop);
|
||||||
mToolTips = new ToolTips(this);
|
mToolTips = new ToolTips(this);
|
||||||
mScrollWindow = new ScrollWindow(*this);
|
mScrollWindow = new ScrollWindow(*this);
|
||||||
mBookWindow = new BookWindow(*this);
|
mBookWindow = new BookWindow(*this);
|
||||||
|
|
Loading…
Reference in a new issue