ScummVM API documentation
game_menu.h
1
2/* ScummVM - Graphic Adventure Engine
3 *
4 * ScummVM is the legal property of its developers, whose names
5 * are too numerous to list here. Please refer to the COPYRIGHT
6 * file distributed with this source distribution.
7 *
8 * This program is free software: you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation, either version 3 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program. If not, see <http://www.gnu.org/licenses/>.
20 *
21 */
22
23#ifndef M4_BURGER_GUI_GAME_MENU_H
24#define M4_BURGER_GUI_GAME_MENU_H
25
26#include "graphics/surface.h"
27#include "m4/m4_types.h"
28#include "m4/gui/gui_menu_items.h"
29#include "m4/gui/game_menu.h"
30
31namespace M4 {
32namespace Burger {
33namespace GUI {
34
41using M4::GUI::Sprite;
42using M4::GUI::CALLBACK;
43using M4::GUI::ItemHandlerFunction;
44
45class GameMenu {
46private:
47 static void destroyMenu();
48 static void cb_Game_Quit(void *, void *);
49 static void cb_Game_Resume(void *, void *);
50 static void cb_Game_Save(void *, void *);
51 static void cb_Game_Load(void *, void *);
52 static void cb_Game_Main(void *, void *);
53 static void cb_Game_Options(void *, void *);
54
55public:
56 static void show(RGB8 *myPalette);
57};
58
60private:
61 static void destroyMenu();
62 static void cb_Options_Game_Cancel(void *, void *);
63 static void cb_Options_Game_Done(void *, void *);
64 static void cb_Options_Digi(menuItemHSlider *myItem, guiMenu *myMenu);
65 static void cb_Options_Digestability(menuItemHSlider *myItem, guiMenu *myMenu);
66 static void setDigiVolume(uint16 volume);
67 static void setDigiVolumePerc(uint8 volumePerc);
68 static uint16 getDigiVolume();
69 static uint8 getDigiVolumePerc();
70
71public:
72 static void show(RGB8 *myPalette);
73};
74
76private:
77 static void destroyMenu(bool saveMenu);
78 static bool load_Handler(menuItemButton *theItem, int32 eventType, int32 event, int32 x, int32 y, void **currItem);
79
80 static void cb_SaveLoad_Save(void *, guiMenu *myMenu);
81 static void cb_SaveLoad_Load(menuItemButton *, guiMenu *);
82 static void cb_SaveLoad_Cancel(menuItemButton *, guiMenu *myMenu);
83 static void cb_SaveLoad_Slot(menuItemButton *myButton, guiMenu *myMenu);
84 static void cb_SaveLoad_VSlider(menuItemVSlider *myItem, guiMenu *myMenu);
85
86public:
87 static void show(RGB8 *myPalette, bool saveMenu);
88};
89
90class ErrorMenu {
91private:
92 static void destroyMenu();
93 static void cb_Err_Done(void *, void *);
94
95public:
96 static void show(RGB8 *myPalette);
97};
98
99// GAME MENU FUNCTIONS
100extern void CreateGameMenu(RGB8 *myPalette);
101extern void CreateF2SaveMenu(RGB8 *myPalette);
102extern void CreateLoadMenu(RGB8 *myPalette);
103extern void CreateF3LoadMenu(RGB8 *myPalette);
104
105// Routines used by the main menu
106void CreateLoadMenuFromMain(RGB8 *myPalette);
107
108} // namespace GUI
109} // namespace Burger
110} // namespace M4
111
112#endif
Definition: game_menu.h:90
Definition: game_menu.h:45
Definition: game_menu.h:59
Definition: game_menu.h:75
Definition: game_menu.h:31
Definition: database.h:28
Definition: gui_menu_items.h:300
Definition: gui_menu_items.h:175
Definition: gui_menu_items.h:219
Definition: gui_menu_items.h:165
Definition: gui_menu_items.h:277
Definition: gui_menu_items.h:243
Definition: gui.h:31
Definition: m4_types.h:78