[Scummvm-git-logs] scummvm master -> 1529ab35d190c609542a9649d62c03731785b200
dreammaster
paulfgilbert at gmail.com
Sun May 3 19:56:42 UTC 2020
This automated email contains information about 4 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
59a82b6b0c ULTIMA4: Change menu controller to use keybinding actions
d46b944134 ULTIMA4: Mouse click handling for config menus
72ff61e5e5 ULTIMA4: Move views into their own subfolder
1529ab35d1 ULTIMA4: Positioning field cleanups
Commit: 59a82b6b0ce5dd0cee959d070beb3c1d4dd1781e
https://github.com/scummvm/scummvm/commit/59a82b6b0ce5dd0cee959d070beb3c1d4dd1781e
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-05-03T12:49:27-07:00
Commit Message:
ULTIMA4: Change menu controller to use keybinding actions
Changed paths:
engines/ultima/ultima4/controllers/menu_controller.cpp
engines/ultima/ultima4/controllers/menu_controller.h
engines/ultima/ultima4/meta_engine.cpp
engines/ultima/ultima4/meta_engine.h
diff --git a/engines/ultima/ultima4/controllers/menu_controller.cpp b/engines/ultima/ultima4/controllers/menu_controller.cpp
index 74c7c11fb0..a7c8cef5ca 100644
--- a/engines/ultima/ultima4/controllers/menu_controller.cpp
+++ b/engines/ultima/ultima4/controllers/menu_controller.cpp
@@ -34,34 +34,38 @@ MenuController::MenuController(Menu *menu, TextView *view) :
this->_view = view;
}
-bool MenuController::keyPressed(int key) {
- bool handled = true;
+void MenuController::setActive() {
+ // The game controller has the keybindings enabled
+ MetaEngine::setKeybindingMode(KBMODE_MENU);
+}
+
+void MenuController::keybinder(KeybindingAction action) {
bool cursorOn = _view->getCursorEnabled();
if (cursorOn)
_view->disableCursor();
- switch (key) {
- case Common::KEYCODE_UP:
+ switch (action) {
+ case KEYBIND_UP:
_menu->prev();
break;
- case Common::KEYCODE_DOWN:
+ case KEYBIND_DOWN:
_menu->next();
break;
- case Common::KEYCODE_LEFT:
- case Common::KEYCODE_RIGHT:
- case Common::KEYCODE_RETURN: {
- MenuEvent::Type action = MenuEvent::ACTIVATE;
-
- if (key == Common::KEYCODE_LEFT)
- action = MenuEvent::DECREMENT;
- else if (key == Common::KEYCODE_RIGHT)
- action = MenuEvent::INCREMENT;
- _menu->activateItem(-1, action);
+ case KEYBIND_LEFT:
+ case KEYBIND_RIGHT:
+ case KEYBIND_INTERACT: {
+ MenuEvent::Type menuAction = MenuEvent::ACTIVATE;
+
+ if (action == KEYBIND_LEFT)
+ menuAction = MenuEvent::DECREMENT;
+ else if (action == KEYBIND_RIGHT)
+ menuAction = MenuEvent::INCREMENT;
+ _menu->activateItem(-1, menuAction);
+ break;
}
- break;
default:
- handled = _menu->activateItemByShortcut(key, MenuEvent::ACTIVATE);
+ break;
}
_menu->show(_view);
@@ -70,6 +74,25 @@ bool MenuController::keyPressed(int key) {
_view->enableCursor();
_view->update();
+ if (_menu->getClosed())
+ doneWaiting();
+}
+
+bool MenuController::keyPressed(int key) {
+ bool handled = true;
+ bool cursorOn = _view->getCursorEnabled();
+
+ if (cursorOn)
+ _view->disableCursor();
+
+ handled = _menu->activateItemByShortcut(key, MenuEvent::ACTIVATE);
+
+ _menu->show(_view);
+
+ if (cursorOn)
+ _view->enableCursor();
+ _view->update();
+
if (_menu->getClosed())
doneWaiting();
diff --git a/engines/ultima/ultima4/controllers/menu_controller.h b/engines/ultima/ultima4/controllers/menu_controller.h
index bdc9ce1c65..0b423d1d93 100644
--- a/engines/ultima/ultima4/controllers/menu_controller.h
+++ b/engines/ultima/ultima4/controllers/menu_controller.h
@@ -39,6 +39,17 @@ class MenuController : public WaitableController<void *> {
public:
MenuController(Menu *menu, TextView *view);
bool keyPressed(int key) override;
+
+ /**
+ * Called when a controller is made active
+ */
+ void setActive() override;
+
+ /**
+ * Handles keybinder actions
+ */
+ void keybinder(KeybindingAction action) override;
+
protected:
Menu *_menu;
TextView *_view;
diff --git a/engines/ultima/ultima4/meta_engine.cpp b/engines/ultima/ultima4/meta_engine.cpp
index 60c1e88a03..0801ff6ef4 100644
--- a/engines/ultima/ultima4/meta_engine.cpp
+++ b/engines/ultima/ultima4/meta_engine.cpp
@@ -138,6 +138,16 @@ static const KeybindingRecord DIRECTION_KEYS[] = {
{ KEYBIND_NONE, nullptr, nullptr, nullptr, nullptr, nullptr }
};
+static const KeybindingRecord MENU_KEYS[] = {
+ { KEYBIND_INTERACT, "INTERACT", "Interact", "interact", "RETURN", nullptr },
+ { KEYBIND_ESCAPE, "ESCAPE", "Escape", nullptr, "ESCAPE", nullptr },
+ { KEYBIND_UP, "UP", "Up", nullptr, "UP", nullptr },
+ { KEYBIND_DOWN, "DOWN", "Down", nullptr, "DOWN", nullptr },
+ { KEYBIND_LEFT, "LEFT", "Left", nullptr, "LEFT", nullptr },
+ { KEYBIND_RIGHT, "RIGHT", "Right", nullptr, "RIGHT", nullptr },
+ { KEYBIND_NONE, nullptr, nullptr, nullptr, nullptr, nullptr }
+};
+
static const KeybindingRecord COMBAT_KEYS[] = {
{ KEYBIND_PASS, "PASS", "Pass", "pass", "SPACE", nullptr },
{ KEYBIND_UP, "UP", "Up", nullptr, "UP", nullptr },
@@ -171,8 +181,14 @@ static const KeysRecord DIRECTION_RECORDS[] = {
{ nullptr, nullptr, nullptr }
};
+static const KeysRecord MENU_RECORDS[] = {
+ { "ultima4", "Ultima IV", MENU_KEYS },
+ { nullptr, nullptr, nullptr }
+};
+
static const KeysRecord *MODE_RECORDS[5] = {
- NORMAL_RECORDS, INPUT_RECORDS, DIRECTION_RECORDS, NORMAL_RECORDS
+ NORMAL_RECORDS, INPUT_RECORDS, DIRECTION_RECORDS, MENU_RECORDS,
+ NORMAL_RECORDS
};
Common::KeymapArray MetaEngine::initKeymaps(KeybindingMode mode) {
diff --git a/engines/ultima/ultima4/meta_engine.h b/engines/ultima/ultima4/meta_engine.h
index 3bdc99751a..854f366068 100644
--- a/engines/ultima/ultima4/meta_engine.h
+++ b/engines/ultima/ultima4/meta_engine.h
@@ -62,6 +62,7 @@ enum KeybindingMode {
KBMODE_NORMAL, ///< Keys available when normal in-game
KBMODE_MINIMAL, ///< Minimal list available when reading input
KBMODE_DIRECTION, ///< Mode for selecting direction
+ KBMODE_MENU, ///< Intro config menus
KBMODE_COMBAT ///< Keys when in combat mode
};
Commit: d46b94413406177cdabad6484741da2774b467ea
https://github.com/scummvm/scummvm/commit/d46b94413406177cdabad6484741da2774b467ea
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-05-03T12:49:27-07:00
Commit Message:
ULTIMA4: Mouse click handling for config menus
Changed paths:
engines/ultima/ultima4/controllers/combat_controller.cpp
engines/ultima/ultima4/controllers/menu_controller.cpp
engines/ultima/ultima4/controllers/menu_controller.h
engines/ultima/ultima4/game/menu.cpp
engines/ultima/ultima4/game/menu.h
engines/ultima/ultima4/game/textview.cpp
engines/ultima/ultima4/game/textview.h
diff --git a/engines/ultima/ultima4/controllers/combat_controller.cpp b/engines/ultima/ultima4/controllers/combat_controller.cpp
index fcc9dc8acb..fa3d304742 100644
--- a/engines/ultima/ultima4/controllers/combat_controller.cpp
+++ b/engines/ultima/ultima4/controllers/combat_controller.cpp
@@ -130,7 +130,6 @@ void CombatController::init() {
}
void CombatController::setActive() {
- // The game controller has the keybindings enabled
MetaEngine::setKeybindingMode(KBMODE_COMBAT);
}
diff --git a/engines/ultima/ultima4/controllers/menu_controller.cpp b/engines/ultima/ultima4/controllers/menu_controller.cpp
index a7c8cef5ca..ae583ee4f0 100644
--- a/engines/ultima/ultima4/controllers/menu_controller.cpp
+++ b/engines/ultima/ultima4/controllers/menu_controller.cpp
@@ -35,7 +35,6 @@ MenuController::MenuController(Menu *menu, TextView *view) :
}
void MenuController::setActive() {
- // The game controller has the keybindings enabled
MetaEngine::setKeybindingMode(KBMODE_MENU);
}
@@ -99,5 +98,25 @@ bool MenuController::keyPressed(int key) {
return handled;
}
+bool MenuController::mousePressed(const Common::Point &mousePos) {
+ bool cursorOn = _view->getCursorEnabled();
+
+ if (cursorOn)
+ _view->disableCursor();
+
+ _menu->activateItemAtPos(_view, mousePos);
+
+ _menu->show(_view);
+
+ if (cursorOn)
+ _view->enableCursor();
+ _view->update();
+
+ if (_menu->getClosed())
+ doneWaiting();
+
+ return true;
+}
+
} // End of namespace Ultima4
} // End of namespace Ultima
diff --git a/engines/ultima/ultima4/controllers/menu_controller.h b/engines/ultima/ultima4/controllers/menu_controller.h
index 0b423d1d93..0934387972 100644
--- a/engines/ultima/ultima4/controllers/menu_controller.h
+++ b/engines/ultima/ultima4/controllers/menu_controller.h
@@ -38,7 +38,6 @@ class TextView;
class MenuController : public WaitableController<void *> {
public:
MenuController(Menu *menu, TextView *view);
- bool keyPressed(int key) override;
/**
* Called when a controller is made active
@@ -50,6 +49,15 @@ public:
*/
void keybinder(KeybindingAction action) override;
+ /**
+ * Key was pressed
+ */
+ bool keyPressed(int key) override;
+
+ /**
+ * Mouse button was pressed
+ */
+ bool mousePressed(const Common::Point &mousePos) override;
protected:
Menu *_menu;
TextView *_view;
diff --git a/engines/ultima/ultima4/game/menu.cpp b/engines/ultima/ultima4/game/menu.cpp
index 25a3d34800..bdcb7bcd55 100644
--- a/engines/ultima/ultima4/game/menu.cpp
+++ b/engines/ultima/ultima4/game/menu.cpp
@@ -221,9 +221,21 @@ MenuItem *Menu::getItemById(int id) {
_current = getById(id);
if (_current != _items.end())
return *_current;
+
return nullptr;
}
+void Menu::activateItemAtPos(TextView *view, const Common::Point &pt) {
+ for (Menu::MenuItemList::iterator it = begin(); it != end(); ++it) {
+ Common::Rect r = view->getTextBounds((*it)->getX(), (*it)->getY(),
+ (*it)->getText().size());
+
+ if (r.contains(pt)) {
+ activateItem((*it)->getId(), MenuEvent::ACTIVATE);
+ }
+ }
+}
+
void Menu::activateItem(int id, MenuEvent::Type action) {
MenuItem *mi;
@@ -240,7 +252,7 @@ void Menu::activateItem(int id, MenuEvent::Type action) {
if (mi->getClosesMenu())
setClosed(true);
- MenuEvent event(this, (MenuEvent::Type) action, mi);
+ MenuEvent event(this, (MenuEvent::Type)action, mi);
mi->activate(event);
setChanged();
notifyObservers(event);
diff --git a/engines/ultima/ultima4/game/menu.h b/engines/ultima/ultima4/game/menu.h
index 48f07816ff..6624c2cb80 100644
--- a/engines/ultima/ultima4/game/menu.h
+++ b/engines/ultima/ultima4/game/menu.h
@@ -156,6 +156,11 @@ public:
*/
MenuItem *getItemById(int id);
+ /**
+ * Activates any menu item at a given position
+ */
+ void activateItemAtPos(TextView *view, const Common::Point &pt);
+
/**
* Activates the menu item given by 'id', using 'action' to
* activate it. If the menu item cannot be activated using
diff --git a/engines/ultima/ultima4/game/textview.cpp b/engines/ultima/ultima4/game/textview.cpp
index 845ec802eb..98e4938dc3 100644
--- a/engines/ultima/ultima4/game/textview.cpp
+++ b/engines/ultima/ultima4/game/textview.cpp
@@ -300,5 +300,14 @@ void TextView::clearOptions() {
_options.clear();
}
+Common::Rect TextView::getTextBounds(int x, int y, int textWidth) const {
+ return Common::Rect(
+ SCALED(_x + (x * CHAR_WIDTH)),
+ SCALED(_y + (y * CHAR_HEIGHT)),
+ SCALED(_x + (x + textWidth * CHAR_WIDTH)),
+ SCALED(_y + (y + 1) * CHAR_HEIGHT)
+ );
+}
+
} // End of namespace Ultima4
} // End of namespace Ultima
diff --git a/engines/ultima/ultima4/game/textview.h b/engines/ultima/ultima4/game/textview.h
index 0adcecb05b..b973790a5c 100644
--- a/engines/ultima/ultima4/game/textview.h
+++ b/engines/ultima/ultima4/game/textview.h
@@ -136,6 +136,12 @@ public:
* Clear the options list
*/
void clearOptions();
+
+ /**
+ * Returns the physical screen dimensions of text at a given
+ * text location
+ */
+ Common::Rect getTextBounds(int x, int y, int textWidth) const;
};
} // End of namespace Ultima4
Commit: 72ff61e5e51b9e99c7643e313372f21e92f710ec
https://github.com/scummvm/scummvm/commit/72ff61e5e51b9e99c7643e313372f21e92f710ec
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-05-03T12:49:27-07:00
Commit Message:
ULTIMA4: Move views into their own subfolder
Changed paths:
A engines/ultima/ultima4/views/imageview.cpp
A engines/ultima/ultima4/views/imageview.h
A engines/ultima/ultima4/views/menu.cpp
A engines/ultima/ultima4/views/menu.h
A engines/ultima/ultima4/views/menuitem.cpp
A engines/ultima/ultima4/views/menuitem.h
A engines/ultima/ultima4/views/stats.cpp
A engines/ultima/ultima4/views/stats.h
A engines/ultima/ultima4/views/textview.cpp
A engines/ultima/ultima4/views/textview.h
A engines/ultima/ultima4/views/tileview.cpp
A engines/ultima/ultima4/views/tileview.h
A engines/ultima/ultima4/views/view.cpp
A engines/ultima/ultima4/views/view.h
R engines/ultima/ultima4/game/menu.cpp
R engines/ultima/ultima4/game/menu.h
R engines/ultima/ultima4/game/menuitem.cpp
R engines/ultima/ultima4/game/menuitem.h
R engines/ultima/ultima4/game/stats.cpp
R engines/ultima/ultima4/game/stats.h
R engines/ultima/ultima4/game/textview.cpp
R engines/ultima/ultima4/game/textview.h
R engines/ultima/ultima4/game/view.cpp
R engines/ultima/ultima4/game/view.h
R engines/ultima/ultima4/gfx/imageview.cpp
R engines/ultima/ultima4/gfx/imageview.h
R engines/ultima/ultima4/map/tileview.cpp
R engines/ultima/ultima4/map/tileview.h
engines/ultima/module.mk
engines/ultima/ultima4/controllers/combat_controller.cpp
engines/ultima/ultima4/controllers/game_controller.cpp
engines/ultima/ultima4/controllers/game_controller.h
engines/ultima/ultima4/controllers/intro_controller.cpp
engines/ultima/ultima4/controllers/intro_controller.h
engines/ultima/ultima4/controllers/menu_controller.cpp
engines/ultima/ultima4/controllers/read_string_controller.h
engines/ultima/ultima4/controllers/reagents_menu_controller.cpp
engines/ultima/ultima4/controllers/ztats_controller.cpp
engines/ultima/ultima4/core/debugger.cpp
engines/ultima/ultima4/core/debugger_actions.cpp
engines/ultima/ultima4/events/event_handler.cpp
engines/ultima/ultima4/filesys/savegame.cpp
engines/ultima/ultima4/game/codex.cpp
engines/ultima/ultima4/game/death.cpp
engines/ultima/ultima4/game/game.cpp
engines/ultima/ultima4/game/game.h
engines/ultima/ultima4/game/person.cpp
engines/ultima/ultima4/game/script.cpp
engines/ultima/ultima4/gfx/screen.cpp
engines/ultima/ultima4/map/dungeon.cpp
engines/ultima/ultima4/map/dungeonview.h
diff --git a/engines/ultima/module.mk b/engines/ultima/module.mk
index 90607d2e96..c20dccc82e 100644
--- a/engines/ultima/module.mk
+++ b/engines/ultima/module.mk
@@ -178,8 +178,6 @@ MODULE_OBJS := \
ultima4/game/death.o \
ultima4/game/game.o \
ultima4/game/item.o \
- ultima4/game/menu.o \
- ultima4/game/menuitem.o \
ultima4/game/moongate.o \
ultima4/game/names.o \
ultima4/game/object.o \
@@ -188,9 +186,6 @@ MODULE_OBJS := \
ultima4/game/portal.o \
ultima4/game/script.o \
ultima4/game/spell.o \
- ultima4/game/stats.o \
- ultima4/game/textview.o \
- ultima4/game/view.o \
ultima4/game/weapon.o \
ultima4/gfx/image.o \
ultima4/gfx/imageloader.o \
@@ -198,7 +193,6 @@ MODULE_OBJS := \
ultima4/gfx/imageloader_png.o \
ultima4/gfx/imageloader_u4.o \
ultima4/gfx/imagemgr.o \
- ultima4/gfx/imageview.o \
ultima4/gfx/scale.o \
ultima4/gfx/screen.o \
ultima4/map/annotation.o \
@@ -217,10 +211,16 @@ MODULE_OBJS := \
ultima4/map/tileanim.o \
ultima4/map/tilemap.o \
ultima4/map/tileset.o \
- ultima4/map/tileview.o \
ultima4/sound/music.o \
ultima4/sound/sound.o \
ultima4/sound/sound_scummvm.o \
+ ultima4/views/imageview.o \
+ ultima4/views/menu.o \
+ ultima4/views/menuitem.o \
+ ultima4/views/stats.o \
+ ultima4/views/textview.o \
+ ultima4/views/tileview.o \
+ ultima4/views/view.o \
ultima4/meta_engine.o \
ultima4/ultima4.o \
nuvie/meta_engine.o \
diff --git a/engines/ultima/ultima4/controllers/combat_controller.cpp b/engines/ultima/ultima4/controllers/combat_controller.cpp
index fa3d304742..8123c2fb99 100644
--- a/engines/ultima/ultima4/controllers/combat_controller.cpp
+++ b/engines/ultima/ultima4/controllers/combat_controller.cpp
@@ -44,7 +44,7 @@
#include "ultima/ultima4/game/player.h"
#include "ultima/ultima4/game/portal.h"
#include "ultima/ultima4/game/spell.h"
-#include "ultima/ultima4/game/stats.h"
+#include "ultima/ultima4/views/stats.h"
#include "ultima/ultima4/game/weapon.h"
#include "ultima/ultima4/gfx/screen.h"
#include "ultima/shared/std/containers.h"
diff --git a/engines/ultima/ultima4/controllers/game_controller.cpp b/engines/ultima/ultima4/controllers/game_controller.cpp
index 79e63f3f8c..b6557d31af 100644
--- a/engines/ultima/ultima4/controllers/game_controller.cpp
+++ b/engines/ultima/ultima4/controllers/game_controller.cpp
@@ -29,7 +29,7 @@
#include "ultima/ultima4/game/context.h"
#include "ultima/ultima4/game/death.h"
#include "ultima/ultima4/game/moongate.h"
-#include "ultima/ultima4/game/stats.h"
+#include "ultima/ultima4/views/stats.h"
#include "ultima/ultima4/gfx/imagemgr.h"
#include "ultima/ultima4/gfx/screen.h"
#include "ultima/ultima4/map/annotation.h"
diff --git a/engines/ultima/ultima4/controllers/game_controller.h b/engines/ultima/ultima4/controllers/game_controller.h
index 12d889e465..f88b00384e 100644
--- a/engines/ultima/ultima4/controllers/game_controller.h
+++ b/engines/ultima/ultima4/controllers/game_controller.h
@@ -29,7 +29,7 @@
#include "ultima/ultima4/game/portal.h"
#include "ultima/ultima4/game/player.h"
#include "ultima/ultima4/map/location.h"
-#include "ultima/ultima4/map/tileview.h"
+#include "ultima/ultima4/views/tileview.h"
namespace Ultima {
namespace Ultima4 {
diff --git a/engines/ultima/ultima4/controllers/intro_controller.cpp b/engines/ultima/ultima4/controllers/intro_controller.cpp
index 377e905ad0..38766223da 100644
--- a/engines/ultima/ultima4/controllers/intro_controller.cpp
+++ b/engines/ultima/ultima4/controllers/intro_controller.cpp
@@ -25,7 +25,7 @@
#include "ultima/ultima4/controllers/read_string_controller.h"
#include "ultima/ultima4/controllers/read_choice_controller.h"
#include "ultima/ultima4/game/player.h"
-#include "ultima/ultima4/game/menu.h"
+#include "ultima/ultima4/views/menu.h"
#include "ultima/ultima4/core/config.h"
#include "ultima/ultima4/core/utils.h"
#include "ultima/ultima4/core/settings.h"
diff --git a/engines/ultima/ultima4/controllers/intro_controller.h b/engines/ultima/ultima4/controllers/intro_controller.h
index 570dbfdbdd..b133f1f55f 100644
--- a/engines/ultima/ultima4/controllers/intro_controller.h
+++ b/engines/ultima/ultima4/controllers/intro_controller.h
@@ -26,10 +26,10 @@
#include "ultima/ultima4/controllers/controller.h"
#include "ultima/ultima4/core/observer.h"
#include "ultima/ultima4/filesys/savegame.h"
-#include "ultima/ultima4/game/menu.h"
-#include "ultima/ultima4/game/textview.h"
-#include "ultima/ultima4/gfx/imageview.h"
-#include "ultima/ultima4/map/tileview.h"
+#include "ultima/ultima4/views/menu.h"
+#include "ultima/ultima4/views/textview.h"
+#include "ultima/ultima4/views/imageview.h"
+#include "ultima/ultima4/views/tileview.h"
#include "ultima/shared/core/file.h"
namespace Ultima {
diff --git a/engines/ultima/ultima4/controllers/menu_controller.cpp b/engines/ultima/ultima4/controllers/menu_controller.cpp
index ae583ee4f0..ac71f99e6a 100644
--- a/engines/ultima/ultima4/controllers/menu_controller.cpp
+++ b/engines/ultima/ultima4/controllers/menu_controller.cpp
@@ -22,8 +22,8 @@
#include "ultima/ultima4/controllers/menu_controller.h"
#include "ultima/ultima4/events/event_handler.h"
-#include "ultima/ultima4/game/menu.h"
-#include "ultima/ultima4/game/textview.h"
+#include "ultima/ultima4/views/menu.h"
+#include "ultima/ultima4/views/textview.h"
namespace Ultima {
namespace Ultima4 {
diff --git a/engines/ultima/ultima4/controllers/read_string_controller.h b/engines/ultima/ultima4/controllers/read_string_controller.h
index 8e4c3c1dc0..8322102128 100644
--- a/engines/ultima/ultima4/controllers/read_string_controller.h
+++ b/engines/ultima/ultima4/controllers/read_string_controller.h
@@ -25,7 +25,7 @@
#include "ultima/ultima4/controllers/controller.h"
#include "ultima/ultima4/events/event_handler.h"
-#include "ultima/ultima4/game/textview.h"
+#include "ultima/ultima4/views/textview.h"
namespace Ultima {
namespace Ultima4 {
diff --git a/engines/ultima/ultima4/controllers/reagents_menu_controller.cpp b/engines/ultima/ultima4/controllers/reagents_menu_controller.cpp
index 8308cdbae7..2894410ba8 100644
--- a/engines/ultima/ultima4/controllers/reagents_menu_controller.cpp
+++ b/engines/ultima/ultima4/controllers/reagents_menu_controller.cpp
@@ -21,7 +21,7 @@
*/
#include "ultima/ultima4/controllers/reagents_menu_controller.h"
-#include "ultima/ultima4/game/menu.h"
+#include "ultima/ultima4/views/menu.h"
#include "ultima/ultima4/game/spell.h"
namespace Ultima {
diff --git a/engines/ultima/ultima4/controllers/ztats_controller.cpp b/engines/ultima/ultima4/controllers/ztats_controller.cpp
index 9690fe979e..dd36259ce0 100644
--- a/engines/ultima/ultima4/controllers/ztats_controller.cpp
+++ b/engines/ultima/ultima4/controllers/ztats_controller.cpp
@@ -23,7 +23,7 @@
#include "ultima/ultima4/controllers/ztats_controller.h"
#include "ultima/ultima4/events/event_handler.h"
#include "ultima/ultima4/game/context.h"
-#include "ultima/ultima4/game/stats.h"
+#include "ultima/ultima4/views/stats.h"
#include "ultima/ultima4/ultima4.h"
namespace Ultima {
diff --git a/engines/ultima/ultima4/core/debugger.cpp b/engines/ultima/ultima4/core/debugger.cpp
index 56d3c2c69c..eb51c3e034 100644
--- a/engines/ultima/ultima4/core/debugger.cpp
+++ b/engines/ultima/ultima4/core/debugger.cpp
@@ -34,7 +34,7 @@
#include "ultima/ultima4/game/moongate.h"
#include "ultima/ultima4/game/player.h"
#include "ultima/ultima4/game/portal.h"
-#include "ultima/ultima4/game/stats.h"
+#include "ultima/ultima4/views/stats.h"
#include "ultima/ultima4/game/weapon.h"
#include "ultima/ultima4/gfx/screen.h"
#include "ultima/ultima4/map/annotation.h"
diff --git a/engines/ultima/ultima4/core/debugger_actions.cpp b/engines/ultima/ultima4/core/debugger_actions.cpp
index db680957ab..b2cfa2d1cd 100644
--- a/engines/ultima/ultima4/core/debugger_actions.cpp
+++ b/engines/ultima/ultima4/core/debugger_actions.cpp
@@ -30,7 +30,7 @@
#include "ultima/ultima4/conversation/conversation.h"
#include "ultima/ultima4/game/context.h"
#include "ultima/ultima4/game/player.h"
-#include "ultima/ultima4/game/stats.h"
+#include "ultima/ultima4/views/stats.h"
#include "ultima/ultima4/gfx/screen.h"
#include "ultima/ultima4/gfx/textcolor.h"
#include "ultima/ultima4/map/annotation.h"
diff --git a/engines/ultima/ultima4/events/event_handler.cpp b/engines/ultima/ultima4/events/event_handler.cpp
index b54931a47a..eb39397675 100644
--- a/engines/ultima/ultima4/events/event_handler.cpp
+++ b/engines/ultima/ultima4/events/event_handler.cpp
@@ -26,7 +26,7 @@
#include "ultima/ultima4/core/utils.h"
#include "ultima/ultima4/filesys/savegame.h"
#include "ultima/ultima4/game/context.h"
-#include "ultima/ultima4/game/textview.h"
+#include "ultima/ultima4/views/textview.h"
#include "ultima/ultima4/gfx/screen.h"
#include "ultima/ultima4/map/location.h"
#include "common/events.h"
diff --git a/engines/ultima/ultima4/filesys/savegame.cpp b/engines/ultima/ultima4/filesys/savegame.cpp
index d736342758..e7ceb2da29 100644
--- a/engines/ultima/ultima4/filesys/savegame.cpp
+++ b/engines/ultima/ultima4/filesys/savegame.cpp
@@ -28,7 +28,7 @@
#include "ultima/ultima4/game/object.h"
#include "ultima/ultima4/game/player.h"
#include "ultima/ultima4/game/spell.h"
-#include "ultima/ultima4/game/stats.h"
+#include "ultima/ultima4/views/stats.h"
#include "ultima/ultima4/map/location.h"
#include "ultima/ultima4/map/mapmgr.h"
diff --git a/engines/ultima/ultima4/game/codex.cpp b/engines/ultima/ultima4/game/codex.cpp
index 2e82d89b61..eb12942498 100644
--- a/engines/ultima/ultima4/game/codex.cpp
+++ b/engines/ultima/ultima4/game/codex.cpp
@@ -29,7 +29,7 @@
#include "ultima/ultima4/game/names.h"
#include "ultima/ultima4/filesys/savegame.h"
#include "ultima/ultima4/gfx/screen.h"
-#include "ultima/ultima4/game/stats.h"
+#include "ultima/ultima4/views/stats.h"
#include "ultima/ultima4/ultima4.h"
#include "ultima/ultima4/filesys/u4file.h"
#include "ultima/ultima4/core/utils.h"
diff --git a/engines/ultima/ultima4/game/death.cpp b/engines/ultima/ultima4/game/death.cpp
index 363bd3782d..3d824f89d5 100644
--- a/engines/ultima/ultima4/game/death.cpp
+++ b/engines/ultima/ultima4/game/death.cpp
@@ -25,7 +25,7 @@
#include "ultima/ultima4/game/game.h"
#include "ultima/ultima4/game/player.h"
#include "ultima/ultima4/game/portal.h"
-#include "ultima/ultima4/game/stats.h"
+#include "ultima/ultima4/views/stats.h"
#include "ultima/ultima4/controllers/wait_controller.h"
#include "ultima/ultima4/core/settings.h"
#include "ultima/ultima4/events/event_handler.h"
diff --git a/engines/ultima/ultima4/game/game.cpp b/engines/ultima/ultima4/game/game.cpp
index 7e3cb19b89..bc1bf71fee 100644
--- a/engines/ultima/ultima4/game/game.cpp
+++ b/engines/ultima/ultima4/game/game.cpp
@@ -41,7 +41,7 @@
#include "ultima/ultima4/game/context.h"
#include "ultima/ultima4/game/death.h"
#include "ultima/ultima4/game/item.h"
-#include "ultima/ultima4/game/menu.h"
+#include "ultima/ultima4/views/menu.h"
#include "ultima/ultima4/game/creature.h"
#include "ultima/ultima4/game/moongate.h"
#include "ultima/ultima4/game/names.h"
@@ -49,7 +49,7 @@
#include "ultima/ultima4/game/player.h"
#include "ultima/ultima4/game/portal.h"
#include "ultima/ultima4/game/spell.h"
-#include "ultima/ultima4/game/stats.h"
+#include "ultima/ultima4/views/stats.h"
#include "ultima/ultima4/game/script.h"
#include "ultima/ultima4/game/weapon.h"
#include "ultima/ultima4/gfx/imagemgr.h"
diff --git a/engines/ultima/ultima4/game/game.h b/engines/ultima/ultima4/game/game.h
index 1a950e7bd4..0272ac0b39 100644
--- a/engines/ultima/ultima4/game/game.h
+++ b/engines/ultima/ultima4/game/game.h
@@ -28,7 +28,7 @@
#include "ultima/ultima4/core/observer.h"
#include "ultima/ultima4/core/types.h"
#include "ultima/ultima4/map/map.h"
-#include "ultima/ultima4/map/tileview.h"
+#include "ultima/ultima4/views/tileview.h"
#include "ultima/ultima4/sound/sound.h"
namespace Ultima {
diff --git a/engines/ultima/ultima4/game/person.cpp b/engines/ultima/ultima4/game/person.cpp
index 8c2ac033fc..5732a44d3e 100644
--- a/engines/ultima/ultima4/game/person.cpp
+++ b/engines/ultima/ultima4/game/person.cpp
@@ -23,7 +23,7 @@
#include "ultima/ultima4/game/person.h"
#include "ultima/ultima4/game/names.h"
#include "ultima/ultima4/game/player.h"
-#include "ultima/ultima4/game/stats.h"
+#include "ultima/ultima4/views/stats.h"
#include "ultima/ultima4/game/context.h"
#include "ultima/ultima4/game/script.h"
#include "ultima/ultima4/controllers/read_choice_controller.h"
diff --git a/engines/ultima/ultima4/game/script.cpp b/engines/ultima/ultima4/game/script.cpp
index 04fcfe742c..bb330b6ed3 100644
--- a/engines/ultima/ultima4/game/script.cpp
+++ b/engines/ultima/ultima4/game/script.cpp
@@ -35,7 +35,7 @@
#include "ultima/ultima4/game/player.h"
#include "ultima/ultima4/game/weapon.h"
#include "ultima/ultima4/game/spell.h"
-#include "ultima/ultima4/game/stats.h"
+#include "ultima/ultima4/views/stats.h"
#include "ultima/ultima4/gfx/screen.h"
#include "ultima/ultima4/map/tileset.h"
#include "ultima/ultima4/sound/music.h"
diff --git a/engines/ultima/ultima4/gfx/screen.cpp b/engines/ultima/ultima4/gfx/screen.cpp
index 195f7c52a4..c9064bc4f7 100644
--- a/engines/ultima/ultima4/gfx/screen.cpp
+++ b/engines/ultima/ultima4/gfx/screen.cpp
@@ -37,7 +37,7 @@
#include "ultima/ultima4/map/location.h"
#include "ultima/ultima4/map/tileanim.h"
#include "ultima/ultima4/map/tileset.h"
-#include "ultima/ultima4/map/tileview.h"
+#include "ultima/ultima4/views/tileview.h"
#include "ultima/ultima4/map/annotation.h"
#include "ultima/ultima4/ultima4.h"
#include "common/system.h"
diff --git a/engines/ultima/ultima4/map/dungeon.cpp b/engines/ultima/ultima4/map/dungeon.cpp
index aee0c333fe..f98ab10e8f 100644
--- a/engines/ultima/ultima4/map/dungeon.cpp
+++ b/engines/ultima/ultima4/map/dungeon.cpp
@@ -30,7 +30,7 @@
#include "ultima/ultima4/map/tilemap.h"
#include "ultima/ultima4/game/player.h"
#include "ultima/ultima4/gfx/screen.h"
-#include "ultima/ultima4/game/stats.h"
+#include "ultima/ultima4/views/stats.h"
#include "ultima/ultima4/map/tileset.h"
#include "ultima/ultima4/core/utils.h"
diff --git a/engines/ultima/ultima4/map/dungeonview.h b/engines/ultima/ultima4/map/dungeonview.h
index 439605272a..c339a5cb8f 100644
--- a/engines/ultima/ultima4/map/dungeonview.h
+++ b/engines/ultima/ultima4/map/dungeonview.h
@@ -28,7 +28,7 @@
#include "ultima/ultima4/filesys/savegame.h"
#include "ultima/ultima4/map/tileset.h"
#include "ultima/ultima4/map/direction.h"
-#include "ultima/ultima4/map/tileview.h"
+#include "ultima/ultima4/views/tileview.h"
#include "ultima/ultima4/core/types.h"
#include "ultima/ultima4/map/location.h"
diff --git a/engines/ultima/ultima4/gfx/imageview.cpp b/engines/ultima/ultima4/views/imageview.cpp
similarity index 97%
rename from engines/ultima/ultima4/gfx/imageview.cpp
rename to engines/ultima/ultima4/views/imageview.cpp
index 4fd5a34dbf..09ef34310d 100644
--- a/engines/ultima/ultima4/gfx/imageview.cpp
+++ b/engines/ultima/ultima4/views/imageview.cpp
@@ -22,8 +22,8 @@
#include "ultima/ultima4/gfx/image.h"
#include "ultima/ultima4/gfx/imagemgr.h"
-#include "ultima/ultima4/gfx/imageview.h"
#include "ultima/ultima4/core/settings.h"
+#include "ultima/ultima4/views/imageview.h"
namespace Ultima {
namespace Ultima4 {
diff --git a/engines/ultima/ultima4/gfx/imageview.h b/engines/ultima/ultima4/views/imageview.h
similarity index 92%
rename from engines/ultima/ultima4/gfx/imageview.h
rename to engines/ultima/ultima4/views/imageview.h
index 9ee8faff06..acfa1d7cf9 100644
--- a/engines/ultima/ultima4/gfx/imageview.h
+++ b/engines/ultima/ultima4/views/imageview.h
@@ -20,10 +20,10 @@
*
*/
-#ifndef ULTIMA4_GFX_IMAGEVIEW_H
-#define ULTIMA4_GFX_IMAGEVIEW_H
+#ifndef ULTIMA4_VIEWS_IMAGEVIEW_H
+#define ULTIMA4_VIEWS_IMAGEVIEW_H
-#include "ultima/ultima4/game/view.h"
+#include "ultima/ultima4/views/view.h"
namespace Ultima {
namespace Ultima4 {
diff --git a/engines/ultima/ultima4/game/menu.cpp b/engines/ultima/ultima4/views/menu.cpp
similarity index 98%
rename from engines/ultima/ultima4/game/menu.cpp
rename to engines/ultima/ultima4/views/menu.cpp
index bdcb7bcd55..3cb03b8e04 100644
--- a/engines/ultima/ultima4/game/menu.cpp
+++ b/engines/ultima/ultima4/views/menu.cpp
@@ -20,9 +20,9 @@
*
*/
-#include "ultima/ultima4/game/menu.h"
+#include "ultima/ultima4/views/menu.h"
#include "ultima/ultima4/events/event_handler.h"
-#include "ultima/ultima4/game/textview.h"
+#include "ultima/ultima4/views/textview.h"
namespace Ultima {
namespace Ultima4 {
diff --git a/engines/ultima/ultima4/game/menu.h b/engines/ultima/ultima4/views/menu.h
similarity index 97%
rename from engines/ultima/ultima4/game/menu.h
rename to engines/ultima/ultima4/views/menu.h
index 6624c2cb80..1b7d828ec3 100644
--- a/engines/ultima/ultima4/game/menu.h
+++ b/engines/ultima/ultima4/views/menu.h
@@ -20,11 +20,11 @@
*
*/
-#ifndef ULTIMA4_GAME_MENU_H
-#define ULTIMA4_GAME_MENU_H
+#ifndef ULTIMA4_VIEWS_MENU_H
+#define ULTIMA4_VIEWS_MENU_H
#include "ultima/ultima4/events/event_handler.h"
-#include "ultima/ultima4/game/menuitem.h"
+#include "ultima/ultima4/views/menuitem.h"
#include "ultima/ultima4/core/observable.h"
#include "ultima/ultima4/core/types.h"
#include "ultima/shared/std/containers.h"
diff --git a/engines/ultima/ultima4/game/menuitem.cpp b/engines/ultima/ultima4/views/menuitem.cpp
similarity index 98%
rename from engines/ultima/ultima4/game/menuitem.cpp
rename to engines/ultima/ultima4/views/menuitem.cpp
index a8b11d0ce1..256bd7ea14 100644
--- a/engines/ultima/ultima4/game/menuitem.cpp
+++ b/engines/ultima/ultima4/views/menuitem.cpp
@@ -20,8 +20,8 @@
*
*/
-#include "ultima/ultima4/game/menu.h"
-#include "ultima/ultima4/game/menuitem.h"
+#include "ultima/ultima4/views/menu.h"
+#include "ultima/ultima4/views/menuitem.h"
#include "ultima/ultima4/core/settings.h"
#include "ultima/ultima4/core/utils.h"
diff --git a/engines/ultima/ultima4/game/menuitem.h b/engines/ultima/ultima4/views/menuitem.h
similarity index 98%
rename from engines/ultima/ultima4/game/menuitem.h
rename to engines/ultima/ultima4/views/menuitem.h
index 24227188d8..debde7885c 100644
--- a/engines/ultima/ultima4/game/menuitem.h
+++ b/engines/ultima/ultima4/views/menuitem.h
@@ -20,8 +20,8 @@
*
*/
-#ifndef ULTIMA4_GAME_MENUITEM_H
-#define ULTIMA4_GAME_MENUITEM_H
+#ifndef ULTIMA4_VIEWS_MENUITEM_H
+#define ULTIMA4_VIEWS_MENUITEM_H
#include "common/str.h"
#include "ultima/shared/std/containers.h"
diff --git a/engines/ultima/ultima4/game/stats.cpp b/engines/ultima/ultima4/views/stats.cpp
similarity index 99%
rename from engines/ultima/ultima4/game/stats.cpp
rename to engines/ultima/ultima4/views/stats.cpp
index adc569b5fc..d9b9b25d88 100644
--- a/engines/ultima/ultima4/game/stats.cpp
+++ b/engines/ultima/ultima4/views/stats.cpp
@@ -23,10 +23,10 @@
#include "ultima/ultima4/ultima4.h"
#include "ultima/ultima4/core/config.h"
#include "ultima/ultima4/core/utils.h"
-#include "ultima/ultima4/game/stats.h"
+#include "ultima/ultima4/views/stats.h"
#include "ultima/ultima4/game/armor.h"
#include "ultima/ultima4/game/context.h"
-#include "ultima/ultima4/game/menu.h"
+#include "ultima/ultima4/views/menu.h"
#include "ultima/ultima4/game/names.h"
#include "ultima/ultima4/game/player.h"
#include "ultima/ultima4/filesys/savegame.h"
diff --git a/engines/ultima/ultima4/game/stats.h b/engines/ultima/ultima4/views/stats.h
similarity index 95%
rename from engines/ultima/ultima4/game/stats.h
rename to engines/ultima/ultima4/views/stats.h
index 4f52ef3657..3646e50a69 100644
--- a/engines/ultima/ultima4/game/stats.h
+++ b/engines/ultima/ultima4/views/stats.h
@@ -20,13 +20,13 @@
*
*/
-#ifndef ULTIMA4_GAME_STATS_H
-#define ULTIMA4_GAME_STATS_H
+#ifndef ULTIMA4_VIEWS_STATS_H
+#define ULTIMA4_VIEWS_STATS_H
#include "ultima/ultima4/core/observable.h"
#include "ultima/ultima4/core/observer.h"
-#include "ultima/ultima4/game/menu.h"
-#include "ultima/ultima4/game/textview.h"
+#include "ultima/ultima4/views/menu.h"
+#include "ultima/ultima4/views/textview.h"
namespace Ultima {
namespace Ultima4 {
diff --git a/engines/ultima/ultima4/game/textview.cpp b/engines/ultima/ultima4/views/textview.cpp
similarity index 99%
rename from engines/ultima/ultima4/game/textview.cpp
rename to engines/ultima/ultima4/views/textview.cpp
index 98e4938dc3..a6ba7bb8d9 100644
--- a/engines/ultima/ultima4/game/textview.cpp
+++ b/engines/ultima/ultima4/views/textview.cpp
@@ -25,7 +25,7 @@
#include "ultima/ultima4/gfx/imagemgr.h"
#include "ultima/ultima4/core/settings.h"
#include "ultima/ultima4/core/utils.h"
-#include "ultima/ultima4/game/textview.h"
+#include "ultima/ultima4/views/textview.h"
namespace Ultima {
namespace Ultima4 {
diff --git a/engines/ultima/ultima4/game/textview.h b/engines/ultima/ultima4/views/textview.h
similarity index 97%
rename from engines/ultima/ultima4/game/textview.h
rename to engines/ultima/ultima4/views/textview.h
index b973790a5c..ea3256b4dc 100644
--- a/engines/ultima/ultima4/game/textview.h
+++ b/engines/ultima/ultima4/views/textview.h
@@ -20,10 +20,10 @@
*
*/
-#ifndef ULTIMA4_GAME_TEXTVIEW_H
-#define ULTIMA4_GAME_TEXTVIEW_H
+#ifndef ULTIMA4_VIEWS_TEXTVIEW_H
+#define ULTIMA4_VIEWS_TEXTVIEW_H
-#include "ultima/ultima4/game/view.h"
+#include "ultima/ultima4/views/view.h"
#include "ultima/ultima4/gfx/image.h"
#include "common/array.h"
#include "common/rect.h"
diff --git a/engines/ultima/ultima4/map/tileview.cpp b/engines/ultima/ultima4/views/tileview.cpp
similarity index 99%
rename from engines/ultima/ultima4/map/tileview.cpp
rename to engines/ultima/ultima4/views/tileview.cpp
index 9b37285b6f..c020c10434 100644
--- a/engines/ultima/ultima4/map/tileview.cpp
+++ b/engines/ultima/ultima4/views/tileview.cpp
@@ -29,7 +29,7 @@
#include "ultima/ultima4/map/tile.h"
#include "ultima/ultima4/map/tileanim.h"
#include "ultima/ultima4/map/tileset.h"
-#include "ultima/ultima4/map/tileview.h"
+#include "ultima/ultima4/views/tileview.h"
#include "ultima/ultima4/ultima4.h"
namespace Ultima {
diff --git a/engines/ultima/ultima4/map/tileview.h b/engines/ultima/ultima4/views/tileview.h
similarity index 94%
rename from engines/ultima/ultima4/map/tileview.h
rename to engines/ultima/ultima4/views/tileview.h
index bd10943277..2c8cf946ef 100644
--- a/engines/ultima/ultima4/map/tileview.h
+++ b/engines/ultima/ultima4/views/tileview.h
@@ -20,10 +20,10 @@
*
*/
-#ifndef ULTIMA4_MAP_TILEVIEW_H
-#define ULTIMA4_MAP_TILEVIEW_H
+#ifndef ULTIMA4_VIEWS_TILEVIEW_H
+#define ULTIMA4_VIEWS_TILEVIEW_H
-#include "ultima/ultima4/game/view.h"
+#include "ultima/ultima4/views/view.h"
namespace Ultima {
namespace Ultima4 {
diff --git a/engines/ultima/ultima4/game/view.cpp b/engines/ultima/ultima4/views/view.cpp
similarity index 98%
rename from engines/ultima/ultima4/game/view.cpp
rename to engines/ultima/ultima4/views/view.cpp
index f798569a12..e5b73f505b 100644
--- a/engines/ultima/ultima4/game/view.cpp
+++ b/engines/ultima/ultima4/views/view.cpp
@@ -23,7 +23,7 @@
#include "ultima/ultima4/gfx/image.h"
#include "ultima/ultima4/gfx/imagemgr.h"
#include "ultima/ultima4/core/settings.h"
-#include "ultima/ultima4/game/view.h"
+#include "ultima/ultima4/views/view.h"
namespace Ultima {
namespace Ultima4 {
diff --git a/engines/ultima/ultima4/game/view.h b/engines/ultima/ultima4/views/view.h
similarity index 97%
rename from engines/ultima/ultima4/game/view.h
rename to engines/ultima/ultima4/views/view.h
index 5898588ab2..7ecf05677e 100644
--- a/engines/ultima/ultima4/game/view.h
+++ b/engines/ultima/ultima4/views/view.h
@@ -20,8 +20,8 @@
*
*/
-#ifndef ULTIMA4_GAME_VIEW_H
-#define ULTIMA4_GAME_VIEW_H
+#ifndef ULTIMA4_VIEWS_VIEW_H
+#define ULTIMA4_VIEWS_VIEW_H
namespace Ultima {
namespace Ultima4 {
Commit: 1529ab35d190c609542a9649d62c03731785b200
https://github.com/scummvm/scummvm/commit/1529ab35d190c609542a9649d62c03731785b200
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-05-03T12:49:27-07:00
Commit Message:
ULTIMA4: Positioning field cleanups
Changed paths:
engines/ultima/ultima4/gfx/image.h
engines/ultima/ultima4/gfx/imagemgr.cpp
engines/ultima/ultima4/gfx/screen.cpp
engines/ultima/ultima4/map/dungeonview.cpp
engines/ultima/ultima4/map/tile.cpp
engines/ultima/ultima4/views/imageview.cpp
engines/ultima/ultima4/views/menuitem.cpp
engines/ultima/ultima4/views/menuitem.h
engines/ultima/ultima4/views/textview.cpp
engines/ultima/ultima4/views/tileview.cpp
engines/ultima/ultima4/views/view.cpp
engines/ultima/ultima4/views/view.h
diff --git a/engines/ultima/ultima4/gfx/image.h b/engines/ultima/ultima4/gfx/image.h
index c08552a2ed..790c801b1c 100644
--- a/engines/ultima/ultima4/gfx/image.h
+++ b/engines/ultima/ultima4/gfx/image.h
@@ -48,10 +48,9 @@ bool operator==(const RGBA &lhs, const RGBA &rhs);
class Image;
-struct SubImage {
+struct SubImage : public Common::Rect {
Common::String _name;
Common::String _srcImageName;
- int x, y, width, height;
};
#define IM_OPAQUE (uint) 255
diff --git a/engines/ultima/ultima4/gfx/imagemgr.cpp b/engines/ultima/ultima4/gfx/imagemgr.cpp
index 0251d90a20..df4d2accaf 100644
--- a/engines/ultima/ultima4/gfx/imagemgr.cpp
+++ b/engines/ultima/ultima4/gfx/imagemgr.cpp
@@ -178,12 +178,13 @@ SubImage *ImageMgr::loadSubImageFromConf(const ImageInfo *info, const ConfigElem
subimage = new SubImage();
subimage->_name = conf.getString("name");
- subimage->width = conf.getInt("width");
- subimage->height = conf.getInt("height");
+ subimage->setWidth(conf.getInt("width"));
+ subimage->setHeight(conf.getInt("height"));
subimage->_srcImageName = info->_name;
if (conf.exists("x") && conf.exists("y")) {
- x = subimage->x = conf.getInt("x");
- y = subimage->y = conf.getInt("y");
+ x = conf.getInt("x");
+ y = conf.getInt("y");
+ subimage->moveTo(x, y);
} else {
// Automatically increment our position through the base image
x += last_width;
@@ -192,13 +193,12 @@ SubImage *ImageMgr::loadSubImageFromConf(const ImageInfo *info, const ConfigElem
y += last_height;
}
- subimage->x = x;
- subimage->y = y;
+ subimage->moveTo(x, y);
}
// "remember" the width and height of this subimage
- last_width = subimage->width;
- last_height = subimage->height;
+ last_width = subimage->width();
+ last_height = subimage->height();
return subimage;
}
diff --git a/engines/ultima/ultima4/gfx/screen.cpp b/engines/ultima/ultima4/gfx/screen.cpp
index c9064bc4f7..201511d789 100644
--- a/engines/ultima/ultima4/gfx/screen.cpp
+++ b/engines/ultima/ultima4/gfx/screen.cpp
@@ -517,10 +517,10 @@ void Screen::screenDrawImage(const Common::String &name, int x, int y) {
if (info) {
info->_image->drawSubRect(x, y,
- subimage->x * (settings._scale / info->_prescale),
- subimage->y * (settings._scale / info->_prescale),
- subimage->width * (settings._scale / info->_prescale),
- subimage->height * (settings._scale / info->_prescale));
+ subimage->left * (settings._scale / info->_prescale),
+ subimage->top * (settings._scale / info->_prescale),
+ subimage->width() * (settings._scale / info->_prescale),
+ subimage->height() * (settings._scale / info->_prescale));
return;
}
}
diff --git a/engines/ultima/ultima4/map/dungeonview.cpp b/engines/ultima/ultima4/map/dungeonview.cpp
index 4b6b5c04c6..f75e69e00b 100644
--- a/engines/ultima/ultima4/map/dungeonview.cpp
+++ b/engines/ultima/ultima4/map/dungeonview.cpp
@@ -164,8 +164,8 @@ void DungeonView::drawInDungeon(Tile *tile, int x_offset, int distance, Directio
}
if (tiledWall) {
- int i_x = SCALED((VIEWPORT_W * _tileWidth / 2) + this->_x) - (scaled->width() / 2);
- int i_y = SCALED((VIEWPORT_H * _tileHeight / 2) + this->_y) - (scaled->height() / 2);
+ int i_x = SCALED((VIEWPORT_W * _tileWidth / 2) + _bounds.left) - (scaled->width() / 2);
+ int i_y = SCALED((VIEWPORT_H * _tileHeight / 2) + _bounds.top) - (scaled->height() / 2);
int f_x = i_x + scaled->width();
int f_y = i_y + scaled->height();
int d_x = _animated->width();
@@ -177,12 +177,12 @@ void DungeonView::drawInDungeon(Tile *tile, int x_offset, int distance, Directio
x, y, 0, 0, f_x - x, f_y - y);
} else {
int y_offset = MAX(0, (dscale[distance] - offset_adj) * offset_multiplier);
- int x = SCALED((VIEWPORT_W * _tileWidth / 2) + this->_x) - (scaled->width() / 2);
- int y = SCALED((VIEWPORT_H * _tileHeight / 2) + this->_y + y_offset) - (scaled->height() / 8);
+ int x = SCALED((VIEWPORT_W * _tileWidth / 2) + _bounds.left) - (scaled->width() / 2);
+ int y = SCALED((VIEWPORT_H * _tileHeight / 2) + _bounds.top + y_offset) - (scaled->height() / 8);
scaled->drawSubRectOn(this->_screen, x, y, 0, 0,
- SCALED(_tileWidth * VIEWPORT_W + this->_x) - x ,
- SCALED(_tileHeight * VIEWPORT_H + this->_y) - y);
+ SCALED(_tileWidth * VIEWPORT_W + _bounds.left) - x ,
+ SCALED(_tileHeight * VIEWPORT_H + _bounds.top) - y);
}
delete scaled;
@@ -422,8 +422,8 @@ void DungeonView::drawWall(int xoffset, int distance, Direction orientation, Dun
int x = 0, y = 0;
SubImage *subimage = imageMgr->getSubImage(DNG_GRAPHIC_INFO[index].subimage);
if (subimage) {
- x = subimage->x;
- y = subimage->y;
+ x = subimage->left;
+ y = subimage->top;
}
g_screen->screenDrawImage(DNG_GRAPHIC_INFO[index].subimage, (BORDER_WIDTH + x) * settings._scale,
diff --git a/engines/ultima/ultima4/map/tile.cpp b/engines/ultima/ultima4/map/tile.cpp
index 5b29444713..135ab7bde3 100644
--- a/engines/ultima/ultima4/map/tile.cpp
+++ b/engines/ultima/ultima4/map/tile.cpp
@@ -153,8 +153,8 @@ void Tile::loadImage() {
info->_image->alphaOff();
if (info) {
- _w = (subimage ? subimage->width *_scale : info->_width * _scale / info->_prescale);
- _h = (subimage ? (subimage->height * _scale) / _frames : (info->_height * _scale / info->_prescale) / _frames);
+ _w = (subimage ? subimage->width() *_scale : info->_width * _scale / info->_prescale);
+ _h = (subimage ? (subimage->height() * _scale) / _frames : (info->_height * _scale / info->_prescale) / _frames);
_image = Image::create(_w, _h * _frames, false, Image::HARDWARE);
@@ -165,7 +165,9 @@ void Tile::loadImage() {
assert(tiles);
if (subimage) {
- tiles->drawSubRectOn(_image, 0, 0, subimage->x * _scale, subimage->y * _scale, subimage->width * _scale, subimage->height * _scale);
+ tiles->drawSubRectOn(_image, 0, 0,
+ subimage->left * _scale, subimage->top * _scale,
+ subimage->width() * _scale, subimage->height() * _scale);
} else {
tiles->drawOn(_image, 0, 0);
}
diff --git a/engines/ultima/ultima4/views/imageview.cpp b/engines/ultima/ultima4/views/imageview.cpp
index 09ef34310d..50153d4327 100644
--- a/engines/ultima/ultima4/views/imageview.cpp
+++ b/engines/ultima/ultima4/views/imageview.cpp
@@ -37,7 +37,7 @@ ImageView::~ImageView() {
void ImageView::draw(const Common::String &imageName, int x, int y) {
ImageInfo *info = imageMgr->get(imageName);
if (info) {
- info->_image->draw(SCALED(this->_x + x), SCALED(this->_y + y));
+ info->_image->draw(SCALED(_bounds.left + x), SCALED(_bounds.top + y));
return;
}
@@ -46,11 +46,11 @@ void ImageView::draw(const Common::String &imageName, int x, int y) {
info = imageMgr->get(subimage->_srcImageName);
if (info) {
- info->_image->drawSubRect(SCALED(this->_x + x), SCALED(this->_y + y),
- SCALED(subimage->x) / info->_prescale,
- SCALED(subimage->y) / info->_prescale,
- SCALED(subimage->width) / info->_prescale,
- SCALED(subimage->height) / info->_prescale);
+ info->_image->drawSubRect(SCALED(_bounds.left + x), SCALED(_bounds.top + y),
+ SCALED(subimage->left) / info->_prescale,
+ SCALED(subimage->top) / info->_prescale,
+ SCALED(subimage->width()) / info->_prescale,
+ SCALED(subimage->height()) / info->_prescale);
return;
}
}
diff --git a/engines/ultima/ultima4/views/menuitem.cpp b/engines/ultima/ultima4/views/menuitem.cpp
index 256bd7ea14..73db8bd793 100644
--- a/engines/ultima/ultima4/views/menuitem.cpp
+++ b/engines/ultima/ultima4/views/menuitem.cpp
@@ -28,8 +28,8 @@
namespace Ultima {
namespace Ultima4 {
-MenuItem::MenuItem(Common::String t, short xp, short yp, int sc) :
- _id(-1), x(xp), y(yp), _text(t), _highlighted(false),
+MenuItem::MenuItem(Common::String t, short x, short y, int sc) :
+ _id(-1), _x(x), _y(y), _text(t), _highlighted(false),
_selected(false), _visible(true), _scOffset(sc), _closesMenu(false) {
// if the sc/scOffset is outside the range of the text string, assert
ASSERT(sc == -1 || (sc >= 0 && sc <= (int)_text.size()), "sc value of %d out of range!", sc);
@@ -40,10 +40,10 @@ int MenuItem::getId() const {
return _id;
}
short MenuItem::getX() const {
- return x;
+ return _x;
}
short MenuItem::getY() const {
- return y;
+ return _y;
}
int MenuItem::getScOffset() const {
return _scOffset;
@@ -71,12 +71,12 @@ void MenuItem::setId(int i) {
_id = i;
}
-void MenuItem::setX(int xpos) {
- x = xpos;
+void MenuItem::setX(int x) {
+ _x = x;
}
-void MenuItem::setY(int ypos) {
- y = ypos;
+void MenuItem::setY(int y) {
+ _y = y;
}
void MenuItem::setText(Common::String t) {
diff --git a/engines/ultima/ultima4/views/menuitem.h b/engines/ultima/ultima4/views/menuitem.h
index debde7885c..7c94458b08 100644
--- a/engines/ultima/ultima4/views/menuitem.h
+++ b/engines/ultima/ultima4/views/menuitem.h
@@ -50,7 +50,7 @@ public:
/**
* MenuItem class
*/
- MenuItem(Common::String text, short xp, short yp, int shortcutKey = -1);
+ MenuItem(Common::String text, short x, short y, int shortcutKey = -1);
virtual ~MenuItem() {}
virtual void activate(MenuEvent &event) {}
@@ -69,8 +69,8 @@ public:
bool getClosesMenu() const;
void setId(int id);
- void setX(int xpos);
- void setY(int ypos);
+ void setX(int x);
+ void setY(int y);
void setText(Common::String text);
void setHighlighted(bool h = true);
void setSelected(bool s = true);
@@ -80,7 +80,7 @@ public:
protected:
int _id;
- short x, y;
+ short _x, _y;
Common::String _text;
bool _highlighted;
bool _selected;
diff --git a/engines/ultima/ultima4/views/textview.cpp b/engines/ultima/ultima4/views/textview.cpp
index a6ba7bb8d9..946451fbf3 100644
--- a/engines/ultima/ultima4/views/textview.cpp
+++ b/engines/ultima/ultima4/views/textview.cpp
@@ -58,8 +58,8 @@ void TextView::drawChar(int chr, int x, int y) {
ASSERT(x < _columns, "x value of %d out of range", x);
ASSERT(y < _rows, "y value of %d out of range", y);
- _charset->drawSubRect(SCALED(this->_x + (x * CHAR_WIDTH)),
- SCALED(this->_y + (y * CHAR_HEIGHT)),
+ _charset->drawSubRect(SCALED(_bounds.left + (x * CHAR_WIDTH)),
+ SCALED(_bounds.top + (y * CHAR_HEIGHT)),
0, SCALED(chr * CHAR_HEIGHT),
SCALED(CHAR_WIDTH),
SCALED(CHAR_HEIGHT));
@@ -69,8 +69,8 @@ void TextView::drawCharMasked(int chr, int x, int y, byte mask) {
drawChar(chr, x, y);
for (int i = 0; i < 8; i++) {
if (mask & (1 << i)) {
- _screen->fillRect(SCALED(this->_x + (x * CHAR_WIDTH)),
- SCALED(this->_y + (y * CHAR_HEIGHT) + i),
+ _screen->fillRect(SCALED(_bounds.left + (x * CHAR_WIDTH)),
+ SCALED(_bounds.top + (y * CHAR_HEIGHT) + i),
SCALED(CHAR_WIDTH),
SCALED(1),
0, 0, 0);
@@ -214,10 +214,10 @@ void TextView::optionAt(int x, int y, char key, const char *fmt, ...) {
if (key) {
Common::Rect r(
- SCALED(_x + (x * CHAR_WIDTH)),
- SCALED(_y + (y * CHAR_HEIGHT)),
- SCALED(_x + (x + strlen(buffer) - offset) * CHAR_WIDTH),
- SCALED(_y + (y + 1) * CHAR_HEIGHT)
+ SCALED(_bounds.left + (x * CHAR_WIDTH)),
+ SCALED(_bounds.top + (y * CHAR_HEIGHT)),
+ SCALED(_bounds.left + (x + strlen(buffer) - offset) * CHAR_WIDTH),
+ SCALED(_bounds.top + (y + 1) * CHAR_HEIGHT)
);
_options.push_back(Option(r, key));
@@ -226,16 +226,16 @@ void TextView::optionAt(int x, int y, char key, const char *fmt, ...) {
void TextView::scroll() {
_screen->drawSubRectOn(_screen,
- SCALED(_x),
- SCALED(_y),
- SCALED(_x),
- SCALED(_y) + SCALED(CHAR_HEIGHT),
- SCALED(_width),
- SCALED(_height) - SCALED(CHAR_HEIGHT));
-
- _screen->fillRect(SCALED(_x),
- SCALED(_y + (CHAR_HEIGHT * (_rows - 1))),
- SCALED(_width),
+ SCALED(_bounds.left),
+ SCALED(_bounds.top),
+ SCALED(_bounds.left),
+ SCALED(_bounds.top) + SCALED(CHAR_HEIGHT),
+ SCALED(_bounds.width()),
+ SCALED(_bounds.height()) - SCALED(CHAR_HEIGHT));
+
+ _screen->fillRect(SCALED(_bounds.left),
+ SCALED(_bounds.top + (CHAR_HEIGHT * (_rows - 1))),
+ SCALED(_bounds.width()),
SCALED(CHAR_HEIGHT),
0, 0, 0);
@@ -302,10 +302,10 @@ void TextView::clearOptions() {
Common::Rect TextView::getTextBounds(int x, int y, int textWidth) const {
return Common::Rect(
- SCALED(_x + (x * CHAR_WIDTH)),
- SCALED(_y + (y * CHAR_HEIGHT)),
- SCALED(_x + (x + textWidth * CHAR_WIDTH)),
- SCALED(_y + (y + 1) * CHAR_HEIGHT)
+ SCALED(_bounds.left + (x * CHAR_WIDTH)),
+ SCALED(_bounds.top + (y * CHAR_HEIGHT)),
+ SCALED(_bounds.left + (x + textWidth * CHAR_WIDTH)),
+ SCALED(_bounds.top + (y + 1) * CHAR_HEIGHT)
);
}
diff --git a/engines/ultima/ultima4/views/tileview.cpp b/engines/ultima/ultima4/views/tileview.cpp
index c020c10434..2361d20860 100644
--- a/engines/ultima/ultima4/views/tileview.cpp
+++ b/engines/ultima/ultima4/views/tileview.cpp
@@ -90,8 +90,8 @@ void TileView::drawTile(MapTile &mapTile, bool focus, int x, int y) {
_animated->fillRect(0, 0, SCALED(_tileWidth), SCALED(_tileHeight), 0, 0, 0, 255);
// Draw blackness on the tile.
- _animated->drawSubRect(SCALED(x * _tileWidth + this->_x),
- SCALED(y * _tileHeight + this->_y), 0, 0,
+ _animated->drawSubRect(SCALED(x * _tileWidth + _bounds.left),
+ SCALED(y * _tileHeight + _bounds.top), 0, 0,
SCALED(_tileWidth), SCALED(_tileHeight));
// Draw the tile to the screen
@@ -103,12 +103,12 @@ void TileView::drawTile(MapTile &mapTile, bool focus, int x, int y) {
tile->getAnim()->draw(_animated, tile, mapTile, DIR_NONE);
// Then draw it to the screen
- _animated->drawSubRect(SCALED(x * _tileWidth + this->_x),
- SCALED(y * _tileHeight + this->_y), 0, 0,
+ _animated->drawSubRect(SCALED(x * _tileWidth + _bounds.left),
+ SCALED(y * _tileHeight + _bounds.top), 0, 0,
SCALED(_tileWidth), SCALED(_tileHeight));
} else {
- image->drawSubRect(SCALED(x * _tileWidth + this->_x),
- SCALED(y * _tileHeight + this->_y),
+ image->drawSubRect(SCALED(x * _tileWidth + _bounds.left),
+ SCALED(y * _tileHeight + _bounds.top),
0, SCALED(_tileHeight * mapTile._frame),
SCALED(_tileWidth), SCALED(_tileHeight));
}
@@ -125,7 +125,7 @@ void TileView::drawTile(Std::vector<MapTile> &tiles, bool focus, int x, int y) {
// Clear tile contents
_animated->fillRect(0, 0, SCALED(_tileWidth), SCALED(_tileHeight), 0, 0, 0, 255);
_animated->drawSubRect(
- SCALED(x * _tileWidth + this->_x), SCALED(y * _tileHeight + this->_y),
+ SCALED(x * _tileWidth + _bounds.left), SCALED(y * _tileHeight + _bounds.top),
0, 0,
SCALED(_tileWidth), SCALED(_tileHeight)
);
@@ -158,8 +158,8 @@ void TileView::drawTile(Std::vector<MapTile> &tiles, bool focus, int x, int y) {
}
// Then draw it to the screen
- _animated->drawSubRect(SCALED(x * _tileWidth + this->_x),
- SCALED(y * _tileHeight + this->_y), 0, 0,
+ _animated->drawSubRect(SCALED(x * _tileWidth + _bounds.left),
+ SCALED(y * _tileHeight + _bounds.top), 0, 0,
SCALED(_tileWidth), SCALED(_tileHeight)
);
}
@@ -176,25 +176,25 @@ void TileView::drawFocus(int x, int y) {
// Draw the focus rectangle around the tile
if ((g_screen->_currentCycle * 4 / SCR_CYCLE_PER_SECOND) % 2) {
// left edge
- _screen->fillRect(SCALED(x * _tileWidth + this->_x),
- SCALED(y * _tileHeight + this->_y),
+ _screen->fillRect(SCALED(x * _tileWidth + _bounds.left),
+ SCALED(y * _tileHeight + _bounds.top),
SCALED(2), SCALED(_tileHeight), 0xff, 0xff, 0xff);
// top edge
- _screen->fillRect(SCALED(x * _tileWidth + this->_x),
- SCALED(y * _tileHeight + this->_y),
+ _screen->fillRect(SCALED(x * _tileWidth + _bounds.left),
+ SCALED(y * _tileHeight + _bounds.top),
SCALED(_tileWidth), SCALED(2),
0xff, 0xff, 0xff);
// Right edge
- _screen->fillRect(SCALED((x + 1) * _tileWidth + this->_x - 2),
- SCALED(y * _tileHeight + this->_y),
+ _screen->fillRect(SCALED((x + 1) * _tileWidth + _bounds.left - 2),
+ SCALED(y * _tileHeight + _bounds.top),
SCALED(2), SCALED(_tileHeight),
0xff, 0xff, 0xff);
// Bottom edge
- _screen->fillRect(SCALED(x * _tileWidth + this->_x),
- SCALED((y + 1) * _tileHeight + this->_y - 2),
+ _screen->fillRect(SCALED(x * _tileWidth + _bounds.left),
+ SCALED((y + 1) * _tileHeight + _bounds.top - 2),
SCALED(_tileWidth), SCALED(2),
0xff, 0xff, 0xff);
}
diff --git a/engines/ultima/ultima4/views/view.cpp b/engines/ultima/ultima4/views/view.cpp
index e5b73f505b..b65ee496e6 100644
--- a/engines/ultima/ultima4/views/view.cpp
+++ b/engines/ultima/ultima4/views/view.cpp
@@ -30,8 +30,9 @@ namespace Ultima4 {
Image *View::_screen = nullptr;
-View::View(int x, int y, int width, int height) : _x(x), _y(y), _width(width), _height(height),
- _highlighted(false), _highlightX(0), _highlightY(0), _highlightW(0), _highlightH(0) {
+View::View(int x, int y, int width, int height) :
+ _bounds(Common::Rect(x, y, x + width, y + height)),
+ _highlighted(false) {
if (_screen == nullptr)
_screen = imageMgr->get("screen")->_image;
}
@@ -42,7 +43,9 @@ void View::reinit() {
void View::clear() {
unhighlight();
- _screen->fillRect(SCALED(_x), SCALED(_y), SCALED(_width), SCALED(_height), 0, 0, 0);
+ _screen->fillRect(
+ SCALED(_bounds.left), SCALED(_bounds.top),
+ SCALED(_bounds.width()), SCALED(_bounds.height()), 0, 0, 0);
}
void View::update() {
@@ -63,30 +66,33 @@ void View::update(int x, int y, int width, int height) {
void View::highlight(int x, int y, int width, int height) {
_highlighted = true;
- _highlightX = x;
- _highlightY = y;
- _highlightW = width;
- _highlightH = height;
+ _highlightBounds = Common::Rect(x, y, x + width, y + height);
update(x, y, width, height);
}
void View::unhighlight() {
_highlighted = false;
- update(_highlightX, _highlightY, _highlightW, _highlightH);
- _highlightX = _highlightY = _highlightW = _highlightH = 0;
+ update(_highlightBounds.left, _highlightBounds.top,
+ _highlightBounds.width(), _highlightBounds.height());
+ _highlightBounds = Common::Rect();
}
void View::drawHighlighted() {
Image *screen = imageMgr->get("screen")->_image;
- Image *tmp = Image::create(SCALED(_highlightW), SCALED(_highlightH), false, Image::SOFTWARE);
+ Image *tmp = Image::create(SCALED(_highlightBounds.width()),
+ SCALED(_highlightBounds.height()), false, Image::SOFTWARE);
if (!tmp)
return;
- screen->drawSubRectOn(tmp, 0, 0, SCALED(this->_x + _highlightX), SCALED(this->_y + _highlightY), SCALED(_highlightW), SCALED(_highlightH));
+ screen->drawSubRectOn(tmp, 0, 0,
+ SCALED(_bounds.left + _highlightBounds.left),
+ SCALED(_bounds.top + _highlightBounds.top),
+ SCALED(_highlightBounds.width()),
+ SCALED(_highlightBounds.height()));
tmp->drawHighlighted();
- tmp->draw(SCALED(this->_x + _highlightX), SCALED(this->_y + _highlightY));
+ tmp->draw(SCALED(_bounds.left + _highlightBounds.left), SCALED(_bounds.top + _highlightBounds.top));
delete tmp;
}
diff --git a/engines/ultima/ultima4/views/view.h b/engines/ultima/ultima4/views/view.h
index 7ecf05677e..8d6e88972f 100644
--- a/engines/ultima/ultima4/views/view.h
+++ b/engines/ultima/ultima4/views/view.h
@@ -66,9 +66,9 @@ public:
virtual void unhighlight();
protected:
- const int _x, _y, _width, _height;
+ Common::Rect _bounds;
+ Common::Rect _highlightBounds;
bool _highlighted;
- int _highlightX, _highlightY, _highlightW, _highlightH;
void drawHighlighted();
#ifdef IOS_ULTIMA4
friend void U4IOS::updateScreenView();
More information about the Scummvm-git-logs
mailing list