aboutsummaryrefslogtreecommitdiff
path: root/saga/interface.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'saga/interface.cpp')
-rw-r--r--saga/interface.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/saga/interface.cpp b/saga/interface.cpp
index ae4ba581da..abcc2593b4 100644
--- a/saga/interface.cpp
+++ b/saga/interface.cpp
@@ -238,7 +238,8 @@ Interface::Interface(SagaEngine *vm) : _vm(vm), _initialized(false) {
_activeVerb = I_VERB_WALKTO;
_active = 0;
- _panelMode = _savedMode = kPanelNull;
+ _panelMode = _savedMode = _lockedMode = kPanelNull;
+ _inMainMode = false;
*_statusText = 0;
_inventoryCount = 0;
@@ -274,6 +275,12 @@ int Interface::setMode(int mode) {
// TODO: Is this where we should hide/show the mouse cursor?
_panelMode = mode;
+
+ if (_panelMode == kPanelConverse)
+ _inMainMode = false;
+ //else if (_panelMode == kPanelInventory)
+ // _inMainMode = true;
+
draw();
return SUCCESS;
@@ -355,16 +362,19 @@ int Interface::draw() {
lportrait.x = xbase + _iDesc.lportrait_x;
lportrait.y = ybase + _iDesc.lportrait_y;
- _vm->_sprite->draw(back_buf, _defPortraits, _leftPortrait, lportrait, 256);
+ if (_panelMode == kPanelMain || _panelMode == kPanelConverse ||
+ _lockedMode == kPanelMain || _lockedMode == kPanelConverse)
+ _vm->_sprite->draw(back_buf, _defPortraits, _leftPortrait, lportrait, 256);
- if (_panelMode == kPanelConverse && _iDesc.rportrait_x >= 0) {
+ if (!_inMainMode && _iDesc.rportrait_x >= 0) {
rportrait.x = xbase + _iDesc.rportrait_x;
rportrait.y = ybase + _iDesc.rportrait_y;
_vm->_sprite->draw(back_buf, _scenePortraits, _rightPortrait, rportrait, 256);
}
- drawInventory();
+ if (_inMainMode)
+ drawInventory();
return SUCCESS;
}