mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-14 21:59:17 +00:00
Changed HoF GUI code to use common GUI code now.
svn-id: r31295
This commit is contained in:
parent
4ac08aa32a
commit
7605a9a517
@ -243,26 +243,17 @@ void KyraEngine_v2::loadButtonShapes() {
|
||||
_buttonShapes[18] = _screen->makeShapeCopy(src, 18);
|
||||
}
|
||||
|
||||
KyraEngine_v2::Button *KyraEngine_v2::addButtonToList(Button *list, Button *newButton) {
|
||||
if (!newButton)
|
||||
return list;
|
||||
|
||||
newButton->nextButton = 0;
|
||||
|
||||
if (list) {
|
||||
Button *cur = list;
|
||||
while (cur->nextButton)
|
||||
cur = cur->nextButton;
|
||||
cur->nextButton = newButton;
|
||||
} else {
|
||||
list = newButton;
|
||||
}
|
||||
GUI_v2::GUI_v2(KyraEngine_v2 *vm) : GUI(vm), _vm(vm), _screen(vm->screen_v2()) {
|
||||
_backUpButtonList = _unknownButtonList = 0;
|
||||
}
|
||||
|
||||
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 @@ void KyraEngine_v2::processButton(Button *button) {
|
||||
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 @@ void KyraEngine_v2::processButton(Button *button) {
|
||||
_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 KyraEngine_v2::processButtonList(Button *buttonList, uint16 inputFlag) {
|
||||
}
|
||||
}
|
||||
|
||||
int mouseX = _mouseX;
|
||||
int mouseY = _mouseY;
|
||||
int mouseX = _vm->_mouseX;
|
||||
int mouseY = _vm->_mouseY;
|
||||
|
||||
uint16 flags = 0;
|
||||
|
||||
@ -554,8 +545,8 @@ int KyraEngine_v2::processButtonList(Button *buttonList, uint16 inputFlag) {
|
||||
buttonList->flags2 |= flags;
|
||||
|
||||
if (buttonList->buttonCallback) {
|
||||
removeInputTop();
|
||||
if ((this->*buttonList->buttonCallback)(buttonList))
|
||||
_vm->removeInputTop();
|
||||
if ((*buttonList->buttonCallback.get())(buttonList))
|
||||
break;
|
||||
}
|
||||
|
||||
@ -574,6 +565,30 @@ int KyraEngine_v2::processButtonList(Button *buttonList, uint16 inputFlag) {
|
||||
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::showBookPage() {
|
||||
}
|
||||
|
||||
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;
|
||||
|
95
engines/kyra/gui_v2.h
Normal file
95
engines/kyra/gui_v2.h
Normal file
@ -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
|
||||
|
@ -120,9 +120,10 @@ KyraEngine_v2::KyraEngine_v2(OSystem *system, const GameFlags &flags) : KyraEngi
|
||||
_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 @@ KyraEngine_v2::~KyraEngine_v2() {
|
||||
delete [] _mouseSHPBuf;
|
||||
delete _screen;
|
||||
delete _text;
|
||||
delete _gui;
|
||||
_text = 0;
|
||||
delete _debugger;
|
||||
delete _invWsa.wsa;
|
||||
@ -192,6 +194,8 @@ int KyraEngine_v2::init() {
|
||||
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 @@ void KyraEngine_v2::startup() {
|
||||
loadButtonShapes();
|
||||
_loadedZTable = 1;
|
||||
loadZShapes(_loadedZTable);
|
||||
initMainButtonList();
|
||||
initInventoryButtonList();
|
||||
loadInventoryShapes();
|
||||
|
||||
_res->loadFileToBuf("PALETTE.COL", _screen->_currentPalette, 0x300);
|
||||
@ -817,7 +821,7 @@ int KyraEngine_v2::checkInput(Button *buttonList, bool mainLoop) {
|
||||
_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::delay(uint32 amount, bool updateGame, bool isMainLoop) {
|
||||
}
|
||||
|
||||
void KyraEngine_v2::cleanup() {
|
||||
delete [] _inventoryButtons; _inventoryButtons = 0;
|
||||
|
||||
delete [] _gamePlayBuffer; _gamePlayBuffer = 0;
|
||||
delete [] _unkBuf500Bytes; _unkBuf500Bytes = 0;
|
||||
delete [] _screenBuffer; _screenBuffer = 0;
|
||||
|
@ -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 @@ struct NestedSequence {
|
||||
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 @@ protected:
|
||||
|
||||
void dinoRide();
|
||||
|
||||
struct Button;
|
||||
int checkInput(Button *buttonList, bool mainLoop = false);
|
||||
void removeInputTop();
|
||||
void handleInput(int x, int y);
|
||||
@ -605,50 +606,14 @@ protected:
|
||||
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);
|
||||
|
@ -1424,51 +1424,67 @@ const int8 KyraEngine_v2::_dosTrackMap[] = {
|
||||
|
||||
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[] = {
|
||||
|
Loading…
Reference in New Issue
Block a user