2 // Copyright (C) 2004 Tobas Glaesser <tobi.web@gmx.de>
4 // This program is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU General Public License
6 // as published by the Free Software Foundation; either version 2
7 // of the License, or (at your option) any later version.
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.
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.
21 #include "app/globals.h"
23 void MyConfig::customload(LispReader& reader)
25 reader.read_int ("keyboard-up", keymap.up);
26 reader.read_int ("keyboard-down", keymap.down);
27 reader.read_int ("keyboard-left", keymap.left);
28 reader.read_int ("keyboard-right", keymap.right);
29 reader.read_int ("keyboard-jump", keymap.jump);
30 reader.read_int ("keyboard-power", keymap.power);
32 void MyConfig::customsave(FILE * config)
34 fprintf(config, "\t(keyboard-up %d)\n", keymap.up);
35 fprintf(config, "\t(keyboard-down %d)\n", keymap.down);
36 fprintf(config, "\t(keyboard-left %d)\n", keymap.left);
37 fprintf(config, "\t(keyboard-right %d)\n", keymap.right);
38 fprintf(config, "\t(keyboard-jump %d)\n", keymap.jump);
39 fprintf(config, "\t(keyboard-power %d)\n", keymap.power);
42 void process_options_menu(void)
44 switch (options_menu->check())
48 if(use_gl != options_menu->isToggled(MNID_OPENGL))
51 Setup::video(screen->w,screen->h);
54 options_menu->get_item_by_id(MNID_OPENGL).toggled = false;
58 if(use_fullscreen != options_menu->isToggled(MNID_FULLSCREEN))
60 use_fullscreen = !use_fullscreen;
61 Setup::video(screen->w,screen->h);
65 if(SoundManager::get()->sound_enabled() != options_menu->isToggled(MNID_SOUND))
66 SoundManager::get()->enable_sound(!SoundManager::get()->sound_enabled());
69 if(SoundManager::get()->music_enabled() != options_menu->isToggled(MNID_MUSIC))
71 SoundManager::get()->enable_music(!SoundManager::get()->music_enabled());
75 if(show_fps != options_menu->isToggled(MNID_SHOWFPS))
83 main_menu = new Menu();
84 options_menu = new Menu();
85 options_keys_menu = new Menu();
86 options_joystick_menu = new Menu();
87 load_game_menu = new Menu();
88 save_game_menu = new Menu();
89 game_menu = new Menu();
90 highscore_menu = new Menu();
91 contrib_menu = new Menu();
92 contrib_subset_menu = new Menu();
93 worldmap_menu = new Menu();
95 main_menu->set_pos(screen->w/2, 335);
96 main_menu->additem(MN_GOTO, _("Start Game"),0,load_game_menu, MNID_STARTGAME);
97 main_menu->additem(MN_GOTO, _("Contrib Levels"),0,contrib_menu, MNID_LEVELS_CONTRIB);
98 main_menu->additem(MN_GOTO, _("Options"),0,options_menu, MNID_OPTIONMENU);
99 main_menu->additem(MN_ACTION, _("Level Editor"),0,0, MNID_LEVELEDITOR);
100 main_menu->additem(MN_ACTION, _("Credits"),0,0, MNID_CREDITS);
101 main_menu->additem(MN_ACTION, _("Quit"),0,0, MNID_QUITMAINMENU);
103 options_menu->additem(MN_LABEL,_("Options"),0,0);
104 options_menu->additem(MN_HL,"",0,0);
106 options_menu->additem(MN_TOGGLE,_("OpenGL "),use_gl,0, MNID_OPENGL);
108 options_menu->additem(MN_DEACTIVE,_("OpenGL (not supported)"),use_gl, 0, MNID_OPENGL);
110 options_menu->additem(MN_TOGGLE,_("Fullscreen"),use_fullscreen,0, MNID_FULLSCREEN);
111 if(SoundManager::get()->audio_device_available())
113 options_menu->additem(MN_TOGGLE,_("Sound "), SoundManager::get()->sound_enabled(),0, MNID_SOUND);
114 options_menu->additem(MN_TOGGLE,_("Music "), SoundManager::get()->music_enabled(),0, MNID_MUSIC);
118 options_menu->additem(MN_DEACTIVE,_("Sound "), false,0, MNID_SOUND);
119 options_menu->additem(MN_DEACTIVE,_("Music "), false,0, MNID_MUSIC);
121 options_menu->additem(MN_TOGGLE,_("Show FPS "),show_fps,0, MNID_SHOWFPS);
122 options_menu->additem(MN_GOTO,_("Setup Keys"),0,options_keys_menu);
125 options_menu->additem(MN_GOTO,_("Setup Joystick"),0,options_joystick_menu);
127 options_menu->additem(MN_HL,"",0,0);
128 options_menu->additem(MN_BACK,_("Back"),0,0);
130 options_keys_menu->additem(MN_LABEL,_("Keyboard Setup"),0,0);
131 options_keys_menu->additem(MN_HL,"",0,0);
132 options_keys_menu->additem(MN_CONTROLFIELD_KB,_("Left move"), 0,0, 0,&keymap.left);
133 options_keys_menu->additem(MN_CONTROLFIELD_KB,_("Right move"), 0,0, 0,&keymap.right);
134 options_keys_menu->additem(MN_CONTROLFIELD_KB,_("Up/Activate"), 0,0, 0,&keymap.up);
135 options_keys_menu->additem(MN_CONTROLFIELD_KB,_("Down/Duck"), 0,0, 0,&keymap.down);
136 options_keys_menu->additem(MN_CONTROLFIELD_KB,_("Jump"), 0,0, 0,&keymap.jump);
137 options_keys_menu->additem(MN_CONTROLFIELD_KB,_("Power/Run"), 0,0, 0,&keymap.power);
138 options_keys_menu->additem(MN_HL,"",0,0);
139 options_keys_menu->additem(MN_BACK,_("Back"),0,0);
143 options_joystick_menu->additem(MN_LABEL,_("Joystick Setup"),0,0);
144 options_joystick_menu->additem(MN_HL,"",0,0);
145 //options_joystick_menu->additem(MN_CONTROLFIELD_JS,"X axis", 0,0, 0,&joystick_keymap.x_axis);
146 //options_joystick_menu->additem(MN_CONTROLFIELD_JS,"Y axis", 0,0, 0,&joystick_keymap.y_axis);
147 options_joystick_menu->additem(MN_CONTROLFIELD_JS,_("A button"), 0,0, 0,&joystick_keymap.a_button);
148 options_joystick_menu->additem(MN_CONTROLFIELD_JS,_("B button"), 0,0, 0,&joystick_keymap.b_button);
149 //options_joystick_menu->additem(MN_CONTROLFIELD_JS,"Start", 0,0, 0,&joystick_keymap.start_button);
150 //options_joystick_menu->additem(MN_CONTROLFIELD_JS,"DeadZone", 0,0, 0,&joystick_keymap.dead_zone);
151 options_joystick_menu->additem(MN_HL,"",0,0);
152 options_joystick_menu->additem(MN_BACK,_("Back"),0,0);
155 load_game_menu->additem(MN_LABEL,_("Start Game"),0,0);
156 load_game_menu->additem(MN_HL,"",0,0);
157 load_game_menu->additem(MN_DEACTIVE,"Slot 1",0,0, 1);
158 load_game_menu->additem(MN_DEACTIVE,"Slot 2",0,0, 2);
159 load_game_menu->additem(MN_DEACTIVE,"Slot 3",0,0, 3);
160 load_game_menu->additem(MN_DEACTIVE,"Slot 4",0,0, 4);
161 load_game_menu->additem(MN_DEACTIVE,"Slot 5",0,0, 5);
162 load_game_menu->additem(MN_HL,"",0,0);
163 load_game_menu->additem(MN_BACK,_("Back"),0,0);
165 save_game_menu->additem(MN_LABEL,_("Save Game"),0,0);
166 save_game_menu->additem(MN_HL,"",0,0);
167 save_game_menu->additem(MN_DEACTIVE,"Slot 1",0,0, 1);
168 save_game_menu->additem(MN_DEACTIVE,"Slot 2",0,0, 2);
169 save_game_menu->additem(MN_DEACTIVE,"Slot 3",0,0, 3);
170 save_game_menu->additem(MN_DEACTIVE,"Slot 4",0,0, 4);
171 save_game_menu->additem(MN_DEACTIVE,"Slot 5",0,0, 5);
172 save_game_menu->additem(MN_HL,"",0,0);
173 save_game_menu->additem(MN_BACK,"Back",0,0);
175 game_menu->additem(MN_LABEL,_("Pause"),0,0);
176 game_menu->additem(MN_HL,"",0,0);
177 game_menu->additem(MN_ACTION,_("Continue"),0,0,MNID_CONTINUE);
178 game_menu->additem(MN_GOTO,_("Options"),0,options_menu);
179 game_menu->additem(MN_HL,"",0,0);
180 game_menu->additem(MN_ACTION,_("Abort Level"),0,0,MNID_ABORTLEVEL);
182 worldmap_menu->additem(MN_LABEL,_("Pause"),0,0);
183 worldmap_menu->additem(MN_HL,"",0,0);
184 worldmap_menu->additem(MN_ACTION,_("Continue"),0,0, WorldMapNS::MNID_RETURNWORLDMAP);
185 worldmap_menu->additem(MN_GOTO,_("Options"),0, options_menu);
186 worldmap_menu->additem(MN_HL,"",0,0);
187 worldmap_menu->additem(MN_ACTION,_("Quit Game"),0,0, WorldMapNS::MNID_QUITWORLDMAP);
189 highscore_menu->additem(MN_TEXTFIELD,_("Enter your name:"),0,0);
195 delete worldmap_menu;
199 delete options_keys_menu;
200 delete options_joystick_menu;
201 delete highscore_menu;
203 delete contrib_subset_menu;
204 delete save_game_menu;
205 delete load_game_menu;