24 #ifndef KYRA_GUI_LOL_H 25 #define KYRA_GUI_LOL_H 27 #include "kyra/gui/gui_v1.h" 30 #define GUI_LOL_MENU(menu, a, b, c, d, e, f, g, i) \ 32 const ScreenDim *dim = _screen->getScreenDim(a); \ 33 menu.x = (dim->sx << 3); \ 35 menu.width = (dim->w << 3); \ 36 menu.height = (dim->h); \ 37 if (_vm->gameFlags().use16ColorMode) { \ 38 menu.bkgdColor = 0xCC; \ 42 menu.bkgdColor = 225; \ 46 menu.menuNameId = b; \ 47 menu.highlightedItem = c; \ 48 menu.numberOfItems = d; \ 49 menu.titleX = (dim->sx << 3) + (dim->w << 2); \ 51 menu.textColor = _vm->gameFlags().use16ColorMode ? 0xE1 : 254; \ 52 menu.scrollUpButtonX = e; \ 53 menu.scrollUpButtonY = f; \ 54 menu.scrollDownButtonX = g; \ 55 menu.scrollDownButtonY = i; \ 58 #define GUI_LOL_MENU_ITEM(item, a, b, c, d, e, f, g) \ 62 item.itemString = ""; \ 63 item.useItemString = false; \ 68 item.textColor = _vm->gameFlags().use16ColorMode ? 0xC1 : 204; \ 69 item.highlightColor = _vm->gameFlags().use16ColorMode ? 0xE1 : 254; \ 71 if (_vm->gameFlags().use16ColorMode) { \ 72 item.bkgdColor = 0xCC; \ 76 item.bkgdColor = 225; \ 82 item.labelString = 0; \ 91 class GUI_LoL :
public GUI_v1 {
92 friend class LoLEngine;
94 GUI_LoL(LoLEngine *vm);
96 void initStaticData();
99 void processButton(
Button *button)
override;
100 int processButtonList(
Button *buttonList, uint16 inputFlags, int8 mouseWheel)
override;
102 int redrawShadedButtonCallback(
Button *button)
override;
103 int redrawButtonCallback(
Button *button)
override;
105 int runMenu(Menu &menu);
114 void setupSaveMenuSlots(Menu &menu,
int num);
116 void printMenuText(
const Common::String &str,
int x,
int y, uint8 c0, uint8 c1, uint8 flags)
override;
117 int getMenuCenterStringX(
const Common::String &str,
int x1,
int x2)
override;
121 int clickedMainMenu(
Button *button);
122 int clickedLoadMenu(
Button *button);
123 int clickedSaveMenu(
Button *button);
124 int clickedDeleteMenu(
Button *button);
125 int clickedOptionsMenu(
Button *button);
126 int clickedAudioMenu(
Button *button);
127 int clickedDeathMenu(
Button *button);
128 int clickedSavenameMenu(
Button *button);
129 int clickedChoiceMenu(
Button *button);
131 int scrollUp(
Button *button);
132 int scrollDown(
Button *button);
134 Button *getButtonListData()
override {
return _menuButtons; }
135 Button *getScrollUpButton()
override {
return &_scrollUpButton; }
136 Button *getScrollDownButton()
override {
return &_scrollDownButton; }
139 Button::Callback getScrollUpButtonHandler()
const override {
return _scrollUpFunctor; }
140 Button::Callback getScrollDownButtonHandler()
const override {
return _scrollDownFunctor; }
142 uint8 defaultColor1()
const override {
return 0xFE; }
143 uint8 defaultColor2()
const override {
return 0x00; }
144 uint8 menuItemLabelColor()
const override {
return 0xCC; }
147 Common::String getMenuItemTitle(
const MenuItem &menuItem)
override;
148 Common::String getMenuItemLabel(
const MenuItem &menuItem)
override;
153 Menu _mainMenu, _gameOptions, _audioOptions, _choiceMenu, _loadMenu, _saveMenu, _deleteMenu, _savenameMenu, _deathMenu;
154 Menu *_currentMenu, *_lastMenu, *_newMenu;
156 char *_saveDescription;
163 Button *_specialProcessButton;
164 Button *_backUpButtonList;
165 uint16 _flagsModifier;
170 Button::Callback _scrollUpFunctor;
171 Button::Callback _scrollDownFunctor;
173 void sortSaveSlots()
override;
Definition: detection.h:27