aboutsummaryrefslogtreecommitdiff
path: root/engines/macventure/gui.cpp
diff options
context:
space:
mode:
authorBorja Lorente2016-06-25 17:38:15 +0200
committerBorja Lorente2016-08-14 18:39:05 +0200
commit8dd52b6cce3835950f255f48d13f3d09a7dbe0ff (patch)
treec2338539d10fd5c6546984798a04eb779471584b /engines/macventure/gui.cpp
parent499ebc0b54c79e89f4ee38628cea1f64cdf40bf2 (diff)
downloadscummvm-rg350-8dd52b6cce3835950f255f48d13f3d09a7dbe0ff.tar.gz
scummvm-rg350-8dd52b6cce3835950f255f48d13f3d09a7dbe0ff.tar.bz2
scummvm-rg350-8dd52b6cce3835950f255f48d13f3d09a7dbe0ff.zip
MACVENTURE: Complete text decoding
Diffstat (limited to 'engines/macventure/gui.cpp')
-rw-r--r--engines/macventure/gui.cpp54
1 files changed, 32 insertions, 22 deletions
diff --git a/engines/macventure/gui.cpp b/engines/macventure/gui.cpp
index d43be9b269..e0fcc5d691 100644
--- a/engines/macventure/gui.cpp
+++ b/engines/macventure/gui.cpp
@@ -174,6 +174,7 @@ void Gui::setWindowTitle(WindowReference winID, Common::String string) {
void Gui::updateWindowInfo(WindowReference ref, ObjID objID, const Common::Array<ObjID> &children) {
WindowData &data = findWindowData(ref);
data.children.clear();
+ data.objRef = objID;
uint32 originx = 0x7fff;
uint32 originy = 0x7fff;
for (uint i = 0; i < children.size(); i++) {
@@ -224,6 +225,8 @@ void Gui::initGUI() {
initWindows();
+ assignObjReferences();
+
if (!loadControls())
error("Could not load controls");
@@ -238,43 +241,47 @@ void Gui::initWindows() {
_controlsWindow->setDimensions(getWindowData(kCommandsWindow).bounds);
_controlsWindow->setActive(false);
_controlsWindow->setCallback(commandsWindowCallback, this);
- loadBorder(_controlsWindow, "border_command.bmp", false);
- loadBorder(_controlsWindow, "border_command.bmp", true);
+ //loadBorder(_controlsWindow, "border_command.bmp", false);
+ //loadBorder(_controlsWindow, "border_command.bmp", true);
// Main Game Window
_mainGameWindow = _wm.addWindow(false, false, false);
_mainGameWindow->setDimensions(getWindowData(kMainGameWindow).bounds);
_mainGameWindow->setActive(false);
_mainGameWindow->setCallback(mainGameWindowCallback, this);
- loadBorder(_mainGameWindow, "border_no_scroll_inac.bmp", false);
- loadBorder(_mainGameWindow, "border_no_scroll_act.bmp", true);
- findWindowData(kMainGameWindow).objRef = 3;
+ //loadBorder(_mainGameWindow, "border_no_scroll_inac.bmp", false);
+ //loadBorder(_mainGameWindow, "border_no_scroll_act.bmp", true);
// In-game Output Console
_outConsoleWindow = _wm.addWindow(false, true, true);
_outConsoleWindow->setDimensions(Common::Rect(20, 20, 120, 120));
_outConsoleWindow->setActive(false);
_outConsoleWindow->setCallback(outConsoleWindowCallback, this);
- loadBorder(_outConsoleWindow, "border_left_scroll_inac.bmp", false);
- loadBorder(_outConsoleWindow, "border_left_scroll_inac.bmp", true);
+ //loadBorder(_outConsoleWindow, "border_left_scroll_inac.bmp", false);
+ //loadBorder(_outConsoleWindow, "border_left_scroll_inac.bmp", true);
// Self Window
_selfWindow = _wm.addWindow(false, true, true);
_selfWindow->setDimensions(getWindowData(kSelfWindow).bounds);
_selfWindow->setActive(false);
_selfWindow->setCallback(selfWindowCallback, this);
- loadBorder(_selfWindow, "border_no_scroll_inac.bmp", false);
- loadBorder(_selfWindow, "border_no_scroll_inac.bmp", true);
- findWindowData(kMainGameWindow).objRef = 0;
+ //loadBorder(_selfWindow, "border_no_scroll_inac.bmp", false);
+ //loadBorder(_selfWindow, "border_no_scroll_inac.bmp", true);
// Exits Window
_exitsWindow = _wm.addWindow(false, true, true);
_exitsWindow->setDimensions(getWindowData(kExitsWindow).bounds);
_exitsWindow->setActive(false);
_exitsWindow->setCallback(exitsWindowCallback, this);
- loadBorder(_exitsWindow, "border_no_scroll_inac.bmp", false);
- loadBorder(_exitsWindow, "border_no_scroll_act.bmp", true);
+ //loadBorder(_exitsWindow, "border_no_scroll_inac.bmp", false);
+ //loadBorder(_exitsWindow, "border_no_scroll_act.bmp", true);
+
+
+}
+void Gui::assignObjReferences() {
+
+ findWindowData(kSelfWindow).objRef = 0;
}
@@ -282,7 +289,7 @@ WindowReference Gui::createInventoryWindow(ObjID objRef) {
Graphics::MacWindow *newWindow = _wm.addWindow(true, true, true);
WindowData newData;
GlobalSettings settings = _engine->getGlobalSettings();
- newData.refcon = (WindowReference)ABS(_inventoryWindows.size()); // This is a hack
+ newData.refcon = (WindowReference)ABS(_inventoryWindows.size()); // This is a HACK
if (_windowData->back().refcon < 0x80) { // There is already another inventory window
newData.bounds = _windowData->back().bounds; // Inventory windows are always last
@@ -303,8 +310,8 @@ WindowReference Gui::createInventoryWindow(ObjID objRef) {
newWindow->setDimensions(newData.bounds);
newWindow->setCallback(inventoryWindowCallback, this);
- loadBorder(newWindow, "border_no_scroll_inac.bmp", false);
- loadBorder(newWindow, "border_no_scroll_act.bmp", true);
+ //loadBorder(newWindow, "border_no_scroll_inac.bmp", false);
+ //loadBorder(newWindow, "border_no_scroll_act.bmp", true);
_inventoryWindows.push_back(newWindow);
debug("Create new inventory window. Reference: %d", newData.refcon);
@@ -587,7 +594,7 @@ void Gui::drawExitsWindow() {
srf->w + border.rightOffset,
srf->h + border.bottomOffset), kColorWhite);
- drawObjectsInWindow(kExitsWindow, _exitsWindow->getSurface());
+ drawObjectsInWindow(kMainGameWindow, _exitsWindow->getSurface());
}
void Gui::drawObjectsInWindow(WindowReference target, Graphics::ManagedSurface * surface) {
@@ -792,12 +799,6 @@ void Gui::updateWindow(WindowReference winID, bool containerOpen) {
it->unselect();
}
}
- if (winID == kMainGameWindow) {
- drawMainGameWindow();
- } else {
- Graphics::MacWindow *winRef = findWindow(winID);
- winRef->getSurface()->fillRect(data.bounds, kColorGray);
- }
Common::Array<DrawableObject> &children = data.children;
for (uint i = 0; i < children.size(); i++) {
uint flag = 0;
@@ -812,8 +813,17 @@ void Gui::updateWindow(WindowReference winID, bool containerOpen) {
mode = kBlitOR;
}
children[i] = DrawableObject(child, mode);
+ } else {
+ children[i] = DrawableObject(child, kBlitXOR);
}
}
+ if (winID == kMainGameWindow) {
+ drawMainGameWindow();
+ }
+ else {
+ Graphics::MacWindow *winRef = findWindow(winID);
+ winRef->getSurface()->fillRect(data.bounds, kColorGray);
+ }
if (data.type == kZoomDoc && data.updateScroll) {
warning("Unimplemented: update scroll");
}