aboutsummaryrefslogtreecommitdiff
path: root/engines/mads/user_interface.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/mads/user_interface.cpp')
-rw-r--r--engines/mads/user_interface.cpp69
1 files changed, 61 insertions, 8 deletions
diff --git a/engines/mads/user_interface.cpp b/engines/mads/user_interface.cpp
index 5ab0b0f356..fd9f4c0153 100644
--- a/engines/mads/user_interface.cpp
+++ b/engines/mads/user_interface.cpp
@@ -27,16 +27,47 @@
namespace MADS {
-void SceneNode::load(Common::SeekableReadStream *f) {
- _walkPos.x = f->readSint16LE();
- _walkPos.y = f->readSint16LE();
- for (int i = 0; i < MAX_ROUTE_NODES; ++i)
- _indexes[i] = f->readUint16LE();
+UISlot::UISlot() {
+ _slotType = ST_NONE;
+ _field2 = 0;
+ _field3 = 0;
+ _field4 = 0;
+ _field6 = 0;
+ _field8 = 0;
+}
+
+/*------------------------------------------------------------------------*/
+
+void UISlots::fullRefresh() {
+ UISlot slot;
+ slot._slotType = ST_FULL_SCREEN_REFRESH;
+ slot._field2 = -1;
+
+ push_back(slot);
+}
+
+void UISlots::add(int v1, int v2, int v3, int v4) {
+ assert(size() < 50);
+
+ UISlot ie;
+ ie._slotType = -3;
+ ie._field2 = 201;
+ ie._field6 = v1;
+ ie._field8 = v2;
+ ie._field4 = v3;
+ ie._field3 = v4;
+
+ push_back(ie);
+}
+
+void UISlots::call(int v1, int v2) {
+ debug("TODO: UISlots::call");
}
/*------------------------------------------------------------------------*/
UserInterface::UserInterface(MADSEngine *vm) : _vm(vm) {
+ _invSpritesIndex = -1;
_category = CAT_NONE;
_screenObjectsCount = 0;
_inventoryTopIndex = 0;
@@ -99,8 +130,8 @@ void UserInterface::setup(int id) {
}
scene._screenObjects._v832EC = id;
- scene._imageInterEntries.clear();
- scene._imageInterEntries.add(-2, 0xff);
+ scene._userInterface._uiSlots.clear();
+ scene._userInterface._uiSlots.fullRefresh();
_vm->_game->_ticksExpiry = _vm->_events->getFrameCounter();
_v1A = -1;
_v1E = -1;
@@ -110,7 +141,7 @@ void UserInterface::setup(int id) {
copyTo(&_surface);
if (_vm->_game->_v1 == 5)
- scene._imageInterEntries.call(0, 0);
+ scene._userInterface._uiSlots.call(0, 0);
scene._action.clear();
drawTextElements();
@@ -400,5 +431,27 @@ void UserInterface::drawTalkList() {
warning("TODO: drawTalkList");
}
+void UserInterface::loadInventoryAnim(int objectId) {
+
+}
+
+void UserInterface::noInventoryAnim() {
+ Scene &scene = _vm->_game->_scene;
+
+ if (_invSpritesIndex >= 0) {
+ scene._sprites.remove(_invSpritesIndex);
+ _vm->_game->_ticksExpiry = _vm->_events->getFrameCounter();
+ _invSpritesIndex = -1;
+ }
+
+ if (!scene._screenObjects._v832EC)
+ refresh();
+}
+
+void UserInterface::refresh() {
+ Scene &scene = _vm->_game->_scene;
+ scene._userInterface._uiSlots.clear();
+// scene._userInterface._uiSlots.new()
+}
} // End of namespace MADS