[Scummvm-cvs-logs] SF.net SVN: scummvm: [31295] scummvm/trunk/engines/kyra
lordhoto at users.sourceforge.net
lordhoto at users.sourceforge.net
Fri Mar 28 17:15:00 CET 2008
Revision: 31295
http://scummvm.svn.sourceforge.net/scummvm/?rev=31295&view=rev
Author: lordhoto
Date: 2008-03-28 09:15:00 -0700 (Fri, 28 Mar 2008)
Log Message:
-----------
Changed HoF GUI code to use common GUI code now.
Modified Paths:
--------------
scummvm/trunk/engines/kyra/gui_v2.cpp
scummvm/trunk/engines/kyra/kyra_v2.cpp
scummvm/trunk/engines/kyra/kyra_v2.h
scummvm/trunk/engines/kyra/staticres.cpp
Added Paths:
-----------
scummvm/trunk/engines/kyra/gui_v2.h
Modified: scummvm/trunk/engines/kyra/gui_v2.cpp
===================================================================
--- scummvm/trunk/engines/kyra/gui_v2.cpp 2008-03-28 15:29:39 UTC (rev 31294)
+++ scummvm/trunk/engines/kyra/gui_v2.cpp 2008-03-28 16:15:00 UTC (rev 31295)
@@ -243,26 +243,17 @@
_buttonShapes[18] = _screen->makeShapeCopy(src, 18);
}
-KyraEngine_v2::Button *KyraEngine_v2::addButtonToList(Button *list, Button *newButton) {
- if (!newButton)
- return list;
+GUI_v2::GUI_v2(KyraEngine_v2 *vm) : GUI(vm), _vm(vm), _screen(vm->screen_v2()) {
+ _backUpButtonList = _unknownButtonList = 0;
+}
- newButton->nextButton = 0;
-
- if (list) {
- Button *cur = list;
- while (cur->nextButton)
- cur = cur->nextButton;
- cur->nextButton = newButton;
- } else {
- list = newButton;
- }
-
+Button *GUI_v2::addButtonToList(Button *list, Button *newButton) {
+ list = GUI::addButtonToList(list, newButton);
_buttonListChanged = true;
return list;
}
-void KyraEngine_v2::processButton(Button *button) {
+void GUI_v2::processButton(Button *button) {
if (!button)
return;
@@ -276,20 +267,20 @@
int entry = button->flags2 & 5;
byte val1 = 0, val2 = 0, val3 = 0;
- uint8 *dataPtr = 0;
+ const uint8 *dataPtr = 0;
if (entry == 1) {
val1 = button->data1Val1;
- dataPtr = button->shapePtr1;
+ dataPtr = button->data1ShapePtr;
val2 = button->data1Val2;
val3 = button->data1Val3;
} else if (entry == 4 || entry == 5) {
val1 = button->data2Val1;
- dataPtr = button->shapePtr2;
+ dataPtr = button->data2ShapePtr;
val2 = button->data2Val2;
val3 = button->data2Val3;
} else {
val1 = button->data0Val1;
- dataPtr = button->shapePtr0;
+ dataPtr = button->data0ShapePtr;
val2 = button->data0Val2;
val3 = button->data0Val3;
}
@@ -346,7 +337,7 @@
_screen->updateScreen();
}
-int KyraEngine_v2::processButtonList(Button *buttonList, uint16 inputFlag) {
+int GUI_v2::processButtonList(Button *buttonList, uint16 inputFlag) {
if (!buttonList)
return inputFlag & 0x7FFF;
@@ -362,8 +353,8 @@
}
}
- int mouseX = _mouseX;
- int mouseY = _mouseY;
+ int mouseX = _vm->_mouseX;
+ int mouseY = _vm->_mouseY;
uint16 flags = 0;
@@ -554,8 +545,8 @@
buttonList->flags2 |= flags;
if (buttonList->buttonCallback) {
- removeInputTop();
- if ((this->*buttonList->buttonCallback)(buttonList))
+ _vm->removeInputTop();
+ if ((*buttonList->buttonCallback.get())(buttonList))
break;
}
@@ -574,6 +565,30 @@
return returnValue;
}
+const char *GUI_v2::getMenuTitle(const Menu &menu) {
+ if (!menu.menuNameId)
+ return 0;
+
+ return _vm->getTableString(menu.menuNameId, _vm->_optionsBuffer, 1);
+}
+
+const char *GUI_v2::getMenuItemTitle(const MenuItem &menuItem) {
+ if (!menuItem.itemId)
+ return 0;
+
+ return _vm->getTableString(menuItem.itemId, _vm->_optionsBuffer, 1);
+}
+
+const char *GUI_v2::getMenuItemLabel(const MenuItem &menuItem) {
+ if (!menuItem.labelId)
+ return 0;
+
+ return _vm->getTableString(menuItem.labelId, _vm->_optionsBuffer, 1);
+}
+
+#pragma mark -
+
+
int KyraEngine_v2::buttonInventory(Button *button) {
if (!_screen->isMouseVisible())
return 0;
@@ -943,18 +958,23 @@
}
void KyraEngine_v2::bookLoop() {
- static Button bookButtons[] = {
- { 0, 0x24, 0, 0, 1, 1, 1, 0x4487, 0, 0, 0, 0, 0x82, 0xBE, 0x0A, 0x0A, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0, &KyraEngine_v2::bookPrevPage },
- { 0, 0x25, 0, 0, 1, 1, 1, 0x4487, 0, 0, 0, 0, 0xB1, 0xBE, 0x0A, 0x0A, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0, &KyraEngine_v2::bookNextPage },
- { 0, 0x26, 0, 0, 1, 1, 1, 0x4487, 0, 0, 0, 0, 0x8F, 0xBE, 0x21, 0x0A, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0, &KyraEngine_v2::bookClose },
- { 0, 0x27, 0, 0, 1, 1, 1, 0x4487, 0, 0, 0, 0, 0x08, 0x08, 0x90, 0xB4, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0, &KyraEngine_v2::bookPrevPage },
- { 0, 0x28, 0, 0, 1, 1, 1, 0x4487, 0, 0, 0, 0, 0xAA, 0x08, 0x8E, 0xB4, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0, &KyraEngine_v2::bookNextPage }
- };
+ Button bookButtons[5];
+ GUI_V2_BUTTON(bookButtons[0], 0x24, 0, 0, 1, 1, 1, 0x4487, 0, 0x82, 0xBE, 0x0A, 0x0A, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0);
+ bookButtons[0].buttonCallback = BUTTON_FUNCTOR(KyraEngine_v2, this, &KyraEngine_v2::bookPrevPage);
+ GUI_V2_BUTTON(bookButtons[1], 0x25, 0, 0, 1, 1, 1, 0x4487, 0, 0xB1, 0xBE, 0x0A, 0x0A, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0);
+ bookButtons[1].buttonCallback = BUTTON_FUNCTOR(KyraEngine_v2, this, &KyraEngine_v2::bookNextPage);
+ GUI_V2_BUTTON(bookButtons[2], 0x26, 0, 0, 1, 1, 1, 0x4487, 0, 0x8F, 0xBE, 0x21, 0x0A, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0);
+ bookButtons[2].buttonCallback = BUTTON_FUNCTOR(KyraEngine_v2, this, &KyraEngine_v2::bookClose);
+ GUI_V2_BUTTON(bookButtons[3], 0x27, 0, 0, 1, 1, 1, 0x4487, 0, 0x08, 0x08, 0x90, 0xB4, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0);
+ bookButtons[3].buttonCallback = BUTTON_FUNCTOR(KyraEngine_v2, this, &KyraEngine_v2::bookPrevPage);
+ GUI_V2_BUTTON(bookButtons[4], 0x28, 0, 0, 1, 1, 1, 0x4487, 0, 0xAA, 0x08, 0x8E, 0xB4, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0);
+ bookButtons[4].buttonCallback = BUTTON_FUNCTOR(KyraEngine_v2, this, &KyraEngine_v2::bookNextPage);
+
Button *buttonList = 0;
for (uint i = 0; i < ARRAYSIZE(bookButtons); ++i)
- buttonList = addButtonToList(buttonList, &bookButtons[i]);
+ buttonList = _gui->addButtonToList(buttonList, &bookButtons[i]);
showBookPage();
_bookShown = true;
Added: scummvm/trunk/engines/kyra/gui_v2.h
===================================================================
--- scummvm/trunk/engines/kyra/gui_v2.h (rev 0)
+++ scummvm/trunk/engines/kyra/gui_v2.h 2008-03-28 16:15:00 UTC (rev 31295)
@@ -0,0 +1,95 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * $URL$
+ * $Id$
+ *
+ */
+
+#ifndef KYRA_GUI_V2_H
+#define KYRA_GUI_V2_H
+
+#include "kyra/gui.h"
+
+#define GUI_V2_BUTTON(button, a, b, c, d, e, f, h, i, j, k, l, m, n, o, p, q, r, s, t) \
+ button.nextButton = 0; \
+ button.index = a; \
+ button.unk6 = b; \
+ button.unk8 = c; \
+ button.data0Val1 = d; \
+ button.data0Val2 = e; \
+ button.data0Val3 = f; \
+ button.flags = h; \
+ button.data0ShapePtr = button.data1ShapePtr = button.data2ShapePtr = 0; \
+ button.dimTableIndex = i; \
+ button.x = j; \
+ button.y = k; \
+ button.width = l; \
+ button.height = m; \
+ button.data0Val2 = n; \
+ button.data0Val3 = o; \
+ button.data1Val2 = p; \
+ button.data1Val3 = q; \
+ button.data2Val2 = r; \
+ button.data2Val3 = s; \
+ button.flags2 = t;
+
+namespace Kyra {
+
+class KyraEngine_v2;
+class Screen_v2;
+
+class GUI_v2 : public GUI {
+friend class KyraEngine_v2;
+public:
+ GUI_v2(KyraEngine_v2 *engine);
+
+ Button *addButtonToList(Button *list, Button *newButton);
+
+ void processButton(Button *button);
+ int processButtonList(Button *button, uint16 inputFlag);
+
+private:
+ const char *getMenuTitle(const Menu &menu);
+ const char *getMenuItemTitle(const MenuItem &menuItem);
+ const char *getMenuItemLabel(const MenuItem &menuItem);
+
+ Button *getButtonListData() { return 0; }
+ Button *getScrollUpButton() { return 0; }
+ Button *getScrollDownButton() { return 0; }
+
+ Button::Callback getScrollUpButtonHandler() const { return Button::Callback(); }
+ Button::Callback getScrollDownButtonHandler() const { return Button::Callback(); }
+
+ uint8 defaultColor1() const { return 0xCF; }
+ uint8 defaultColor2() const { return 0xF8; }
+
+ KyraEngine_v2 *_vm;
+ Screen_v2 *_screen;
+
+ bool _buttonListChanged;
+ Button *_backUpButtonList;
+ Button *_unknownButtonList;
+};
+
+} // end of namespace Kyra
+
+#endif
+
Property changes on: scummvm/trunk/engines/kyra/gui_v2.h
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Date Rev Author URL Id
Name: svn:eol-style
+ native
Modified: scummvm/trunk/engines/kyra/kyra_v2.cpp
===================================================================
--- scummvm/trunk/engines/kyra/kyra_v2.cpp 2008-03-28 15:29:39 UTC (rev 31294)
+++ scummvm/trunk/engines/kyra/kyra_v2.cpp 2008-03-28 16:15:00 UTC (rev 31295)
@@ -120,9 +120,10 @@
_sceneList = 0;
memset(&_sceneAnimMovie, 0, sizeof(_sceneAnimMovie));
memset(&_wsaSlots, 0, sizeof(_wsaSlots));
- _backUpButtonList = _unknownButtonList = _buttonList = 0;
memset(&_buttonShapes, 0, sizeof(_buttonShapes));
+ _inventoryButtons = _buttonList = 0;
+
_dlgBuffer = 0;
_conversationState = new int8*[19];
for (int i = 0; i < 19; i++)
@@ -155,6 +156,7 @@
delete [] _mouseSHPBuf;
delete _screen;
delete _text;
+ delete _gui;
_text = 0;
delete _debugger;
delete _invWsa.wsa;
@@ -192,6 +194,8 @@
assert(_debugger);
_text = new TextDisplayer_v2(this, _screen);
assert(_text);
+ _gui = new GUI_v2(this);
+ assert(_gui);
if (_flags.isDemo && !_flags.isTalkie) {
_screen->loadFont(_screen->FID_8_FNT, "FONT9P.FNT");
@@ -354,7 +358,7 @@
loadButtonShapes();
_loadedZTable = 1;
loadZShapes(_loadedZTable);
- initMainButtonList();
+ initInventoryButtonList();
loadInventoryShapes();
_res->loadFileToBuf("PALETTE.COL", _screen->_currentPalette, 0x300);
@@ -817,7 +821,7 @@
_eventList.erase(_eventList.begin());
}
- return processButtonList(buttonList, keys | 0x8000);
+ return _gui->processButtonList(buttonList, keys | 0x8000);
}
void KyraEngine_v2::removeInputTop() {
@@ -863,6 +867,8 @@
}
void KyraEngine_v2::cleanup() {
+ delete [] _inventoryButtons; _inventoryButtons = 0;
+
delete [] _gamePlayBuffer; _gamePlayBuffer = 0;
delete [] _unkBuf500Bytes; _unkBuf500Bytes = 0;
delete [] _screenBuffer; _screenBuffer = 0;
Modified: scummvm/trunk/engines/kyra/kyra_v2.h
===================================================================
--- scummvm/trunk/engines/kyra/kyra_v2.h 2008-03-28 15:29:39 UTC (rev 31294)
+++ scummvm/trunk/engines/kyra/kyra_v2.h 2008-03-28 16:15:00 UTC (rev 31295)
@@ -29,6 +29,7 @@
#include "kyra/kyra.h"
#include "kyra/script.h"
#include "kyra/screen_v2.h"
+#include "kyra/gui_v2.h"
#include "common/list.h"
@@ -161,6 +162,7 @@
class KyraEngine_v2 : public KyraEngine {
friend class Debugger_v2;
friend class TextDisplayer_v2;
+friend class GUI_v2;
public:
KyraEngine_v2(OSystem *system, const GameFlags &flags);
~KyraEngine_v2();
@@ -306,7 +308,6 @@
void dinoRide();
- struct Button;
int checkInput(Button *buttonList, bool mainLoop = false);
void removeInputTop();
void handleInput(int x, int y);
@@ -605,51 +606,15 @@
int _nextAnimItem;
// gui
+ GUI_v2 *_gui;
+
void loadButtonShapes();
uint8 *_buttonShapes[19];
- struct Button {
- Button *nextButton;
- uint16 index;
- uint16 unk6;
- uint16 unk8;
- byte data0Val1;
- byte data1Val1;
- byte data2Val1;
- // XXX
- uint16 flags;
- uint8 *shapePtr0;
- uint8 *shapePtr1;
- uint8 *shapePtr2;
- uint16 dimTableIndex;
- int16 x;
- int16 y;
- int16 width;
- int16 height;
- uint8 data0Val2;
- uint8 data0Val3;
- uint8 data1Val2;
- uint8 data1Val3;
- uint8 data2Val2;
- uint8 data2Val3;
- // XXX
- uint16 flags2;
- typedef int (KyraEngine_v2::*ButtonCallback)(KyraEngine_v2::Button*);
- ButtonCallback buttonCallback;
- // XXX
- };
-
- bool _buttonListChanged;
+ void initInventoryButtonList();
+ Button *_inventoryButtons;
Button *_buttonList;
- Button *_backUpButtonList;
- Button *_unknownButtonList;
- void initMainButtonList();
-
- void processButton(Button *button);
- Button *addButtonToList(Button *list, Button *newButton);
- int processButtonList(Button *button, uint16 inputFlag);
-
int scrollInventory(Button *button);
int buttonInventory(Button *button);
int bookButton(Button *button);
Modified: scummvm/trunk/engines/kyra/staticres.cpp
===================================================================
--- scummvm/trunk/engines/kyra/staticres.cpp 2008-03-28 15:29:39 UTC (rev 31294)
+++ scummvm/trunk/engines/kyra/staticres.cpp 2008-03-28 16:15:00 UTC (rev 31295)
@@ -1424,51 +1424,67 @@
const int KyraEngine_v2::_dosTrackMapSize = ARRAYSIZE(KyraEngine_v2::_dosTrackMap);
-void KyraEngine_v2::initMainButtonList() {
- // note: _buttonDataListPtr
- static Button mainButtons[] = {
- { 0, 0x1, 0x4F, 0, 1, 1, 1, 0x4487, 0, 0, 0, 0, 0x00A, 0x95, 0x39, 0x1D, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0, /*&KyraEngine_v2::sub_C9A1*/0 },
- { 0, 0x2, 0x00, 0, 1, 1, 1, 0x4487, 0, 0, 0, 0, 0x104, 0x90, 0x3C, 0x2C, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0, &KyraEngine_v2::cauldronButton },
- { 0, 0x5, 0x00, 0, 1, 1, 1, 0x4487, 0, 0, 0, 0, 0x0FA, 0x90, 0x0A, 0x2C, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0, &KyraEngine_v2::cauldronClearButton },
- { 0, 0x3, 0x00, 0, 1, 1, 1, 0x4487, 0, 0, 0, 0, 0x0CE, 0x90, 0x2C, 0x2C, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0, &KyraEngine_v2::bookButton },
- { 0, 0x4, 0x00, 0, 1, 1, 1, 0x4487, 0, 0, 0, 0, 0x0B6, 0x9D, 0x18, 0x1E, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0, &KyraEngine_v2::scrollInventory },
- { 0, 0x6, 0x00, 0, 0, 0, 0, 0x1100, 0, 0, 0, 0, 0x04D, 0x92, 0x13, 0x15, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0, &KyraEngine_v2::buttonInventory },
- { 0, 0x7, 0x00, 0, 0, 0, 0, 0x1100, 0, 0, 0, 0, 0x061, 0x92, 0x13, 0x15, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0, &KyraEngine_v2::buttonInventory },
- { 0, 0x8, 0x00, 0, 0, 0, 0, 0x1100, 0, 0, 0, 0, 0x075, 0x92, 0x13, 0x15, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0, &KyraEngine_v2::buttonInventory },
- { 0, 0x9, 0x00, 0, 0, 0, 0, 0x1100, 0, 0, 0, 0, 0x089, 0x92, 0x13, 0x15, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0, &KyraEngine_v2::buttonInventory },
- { 0, 0xA, 0x00, 0, 0, 0, 0, 0x1100, 0, 0, 0, 0, 0x09D, 0x92, 0x13, 0x15, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0, &KyraEngine_v2::buttonInventory },
- { 0, 0xB, 0x00, 0, 0, 0, 0, 0x1100, 0, 0, 0, 0, 0x04D, 0xA8, 0x13, 0x14, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0, &KyraEngine_v2::buttonInventory },
- { 0, 0xC, 0x00, 0, 0, 0, 0, 0x1100, 0, 0, 0, 0, 0x061, 0xA8, 0x13, 0x14, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0, &KyraEngine_v2::buttonInventory },
- { 0, 0xD, 0x00, 0, 0, 0, 0, 0x1100, 0, 0, 0, 0, 0x075, 0xA8, 0x13, 0x14, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0, &KyraEngine_v2::buttonInventory },
- { 0, 0xE, 0x00, 0, 0, 0, 0, 0x1100, 0, 0, 0, 0, 0x089, 0xA8, 0x13, 0x14, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0, &KyraEngine_v2::buttonInventory },
- { 0, 0xF, 0x00, 0, 0, 0, 0, 0x1100, 0, 0, 0, 0, 0x09D, 0xA8, 0x13, 0x14, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0, &KyraEngine_v2::buttonInventory }
- };
+void KyraEngine_v2::initInventoryButtonList() {
+ delete [] _inventoryButtons;
+ _inventoryButtons = new Button[15];
+ assert(_inventoryButtons);
+
+ GUI_V2_BUTTON(_inventoryButtons[0], 0x1, 0x4F, 0, 1, 1, 1, 0x4487, 0, 0x00A, 0x95, 0x39, 0x1D, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0);
+ /*&KyraEngine_v2::sub_C9A1*/
+
+ GUI_V2_BUTTON(_inventoryButtons[1], 0x2, 0x00, 0, 1, 1, 1, 0x4487, 0, 0x104, 0x90, 0x3C, 0x2C, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0);
+ _inventoryButtons[1].buttonCallback = BUTTON_FUNCTOR(KyraEngine_v2, this, &KyraEngine_v2::cauldronButton);
+
+ GUI_V2_BUTTON(_inventoryButtons[2], 0x5, 0x00, 0, 1, 1, 1, 0x4487, 0, 0x0FA, 0x90, 0x0A, 0x2C, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0);
+ _inventoryButtons[2].buttonCallback = BUTTON_FUNCTOR(KyraEngine_v2, this, &KyraEngine_v2::cauldronClearButton);
+
+ GUI_V2_BUTTON(_inventoryButtons[3], 0x3, 0x00, 0, 1, 1, 1, 0x4487, 0, 0x0CE, 0x90, 0x2C, 0x2C, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0);
+ _inventoryButtons[3].buttonCallback = BUTTON_FUNCTOR(KyraEngine_v2, this, &KyraEngine_v2::bookButton);
+
+ GUI_V2_BUTTON(_inventoryButtons[4], 0x4, 0x00, 0, 1, 1, 1, 0x4487, 0, 0x0B6, 0x9D, 0x18, 0x1E, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0);
+ _inventoryButtons[4].buttonCallback = BUTTON_FUNCTOR(KyraEngine_v2, this, &KyraEngine_v2::scrollInventory);
+
+ Button::Callback inventoryCallback = BUTTON_FUNCTOR(KyraEngine_v2, this, &KyraEngine_v2::buttonInventory);
+ GUI_V2_BUTTON(_inventoryButtons[5], 0x6, 0x00, 0, 0, 0, 0, 0x1100, 0, 0x04D, 0x92, 0x13, 0x15, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0);
+ GUI_V2_BUTTON(_inventoryButtons[6], 0x7, 0x00, 0, 0, 0, 0, 0x1100, 0, 0x061, 0x92, 0x13, 0x15, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0);
+ GUI_V2_BUTTON(_inventoryButtons[7], 0x8, 0x00, 0, 0, 0, 0, 0x1100, 0, 0x075, 0x92, 0x13, 0x15, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0);
+ GUI_V2_BUTTON(_inventoryButtons[8], 0x9, 0x00, 0, 0, 0, 0, 0x1100, 0, 0x089, 0x92, 0x13, 0x15, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0);
+ GUI_V2_BUTTON(_inventoryButtons[9], 0xA, 0x00, 0, 0, 0, 0, 0x1100, 0, 0x09D, 0x92, 0x13, 0x15, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0);
+ GUI_V2_BUTTON(_inventoryButtons[10], 0xB, 0x00, 0, 0, 0, 0, 0x1100, 0, 0x04D, 0xA8, 0x13, 0x14, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0);
+ GUI_V2_BUTTON(_inventoryButtons[11], 0xC, 0x00, 0, 0, 0, 0, 0x1100, 0, 0x061, 0xA8, 0x13, 0x14, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0);
+ GUI_V2_BUTTON(_inventoryButtons[12], 0xD, 0x00, 0, 0, 0, 0, 0x1100, 0, 0x075, 0xA8, 0x13, 0x14, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0);
+ GUI_V2_BUTTON(_inventoryButtons[13], 0xE, 0x00, 0, 0, 0, 0, 0x1100, 0, 0x089, 0xA8, 0x13, 0x14, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0);
+ GUI_V2_BUTTON(_inventoryButtons[14], 0xF, 0x00, 0, 0, 0, 0, 0x1100, 0, 0x09D, 0xA8, 0x13, 0x14, 0xC7, 0xCF, 0xC7, 0xCF, 0xC7, 0xCF, 0);
+
+ for (int i = 5; i <= 14; ++i)
+ _inventoryButtons[i].buttonCallback = inventoryCallback;
+
switch (_lang) {
case 0:
- mainButtons[0].shapePtr0 = _buttonShapes[6];
- mainButtons[0].shapePtr1 = mainButtons[0].shapePtr2 = _buttonShapes[7];
+ _inventoryButtons[0].data0ShapePtr = _buttonShapes[6];
+ _inventoryButtons[0].data1ShapePtr = _inventoryButtons[0].data2ShapePtr = _buttonShapes[7];
break;
case 1:
- mainButtons[0].shapePtr0 = _buttonShapes[8];
- mainButtons[0].shapePtr1 = mainButtons[0].shapePtr2 = _buttonShapes[9];
+ _inventoryButtons[0].data0ShapePtr = _buttonShapes[8];
+ _inventoryButtons[0].data1ShapePtr = _inventoryButtons[0].data2ShapePtr = _buttonShapes[9];
break;
case 2:
- mainButtons[0].shapePtr0 = _buttonShapes[10];
- mainButtons[0].shapePtr1 = mainButtons[0].shapePtr2 = _buttonShapes[11];
+ _inventoryButtons[0].data0ShapePtr = _buttonShapes[10];
+ _inventoryButtons[0].data1ShapePtr = _inventoryButtons[0].data2ShapePtr = _buttonShapes[11];
break;
default:
- mainButtons[0].shapePtr0 = _buttonShapes[6];
- mainButtons[0].shapePtr1 = mainButtons[0].shapePtr2 = _buttonShapes[7];
+ _inventoryButtons[0].data0ShapePtr = _buttonShapes[6];
+ _inventoryButtons[0].data1ShapePtr = _inventoryButtons[0].data2ShapePtr = _buttonShapes[7];
break;
}
- _buttonList = &mainButtons[0];
- for (size_t i = 1; i < ARRAYSIZE(mainButtons); ++i)
- _buttonList = addButtonToList(_buttonList, &mainButtons[i]);
+ _buttonList = &_inventoryButtons[0];
+ for (size_t i = 1; i < 15; ++i)
+ _buttonList = _gui->addButtonToList(_buttonList, &_inventoryButtons[i]);
}
const uint16 KyraEngine_v2::_itemMagicTable[] = {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list