1 /* 2 * Copyright (C) 2001-2013 The Exult Team 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License as published by 6 * the Free Software Foundation; either version 2 of the License, or 7 * (at your option) any later version. 8 * 9 * This program is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 * 14 * You should have received a copy of the GNU General Public License 15 * along with this program; if not, write to the Free Software 16 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 */ 18 19 #ifndef EXULTMENU_H 20 #define EXULTMENU_H 21 22 #include "palette.h" 23 #include "game.h" 24 25 #include <memory> 26 27 class BaseGameInfo; 28 class Font; 29 class Game_window; 30 class Image_buffer8; 31 class MenuList; 32 class ModManager; 33 class Mouse; 34 class Shape_frame; 35 36 class ExultMenu { 37 private: 38 Font *font; 39 Font *fonton; 40 Font *navfont; 41 Font *navfonton; 42 Game_window *gwin; 43 Image_buffer8 *ibuf; 44 Vga_file exult_flx; 45 // Palette pal; 46 int centerx, centery; 47 int pagesize; 48 void calc_win(); 49 Mouse *menu_mouse; 50 std::unique_ptr<MenuList> create_main_menu(int first = 0); 51 std::unique_ptr<MenuList> create_mods_menu(ModManager *selgame, int first = 0); 52 BaseGameInfo *show_mods_menu(ModManager *selgame); 53 54 public: 55 ExultMenu(Game_window *gw); 56 BaseGameInfo *run(); 57 void setup(); 58 }; 59 60 #endif //EXULTMENU_H 61