#include "configfile.h"
#include "scene.h"
#include "worldmap.h"
+#include "resources.h"
+#include "intro.h"
+#include "music_manager.h"
#include "player.h"
+void display_text_file(char *filename);
+
#ifdef WIN32
#define mkdir(dir, mode) mkdir(dir)
// on win32 we typically don't want LFS paths
main_menu->set_pos(screen->w/2, 335);
main_menu->additem(MN_GOTO, "Start Game",0,load_game_menu, MNID_STARTGAME);
main_menu->additem(MN_GOTO, "Contrib Levels",0,contrib_menu, MNID_CONTRIB);
- main_menu->additem(MN_GOTO, "Options",0,options_menu);
+ main_menu->additem(MN_GOTO, "Options",0,options_menu, MNID_OPTIONMENU);
main_menu->additem(MN_ACTION,"Level editor",0,0, MNID_LEVELEDITOR);
main_menu->additem(MN_ACTION,"Credits",0,0, MNID_CREDITS);
main_menu->additem(MN_ACTION,"Quit",0,0, MNID_QUITMAINMENU);
options_menu->additem(MN_TOGGLE,"Fullscreen",use_fullscreen,0, MNID_FULLSCREEN);
if(audio_device)
{
- options_menu->additem(MN_TOGGLE,"Sound ",use_sound,0, MNID_SOUND);
- options_menu->additem(MN_TOGGLE,"Music ",use_music,0, MNID_MUSIC);
+ options_menu->additem(MN_TOGGLE,"Sound ", use_sound,0, MNID_SOUND);
+ options_menu->additem(MN_TOGGLE,"Music ", use_music,0, MNID_MUSIC);
}
else
{
- options_menu->additem(MN_DEACTIVE,"Sound ",use_sound,0, MNID_SOUND);
- options_menu->additem(MN_DEACTIVE,"Music ",use_music,0, MNID_MUSIC);
+ options_menu->additem(MN_DEACTIVE,"Sound ", false,0, MNID_SOUND);
+ options_menu->additem(MN_DEACTIVE,"Music ", false,0, MNID_MUSIC);
}
options_menu->additem(MN_TOGGLE,"Show FPS ",show_fps,0, MNID_SHOWFPS);
options_menu->additem(MN_GOTO,"Key Setup",0,options_keys_menu);
load_game_menu->additem(MN_LABEL,"Start Game",0,0);
load_game_menu->additem(MN_HL,"",0,0);
- load_game_menu->additem(MN_DEACTIVE,"Slot 1",0,0);
- load_game_menu->additem(MN_DEACTIVE,"Slot 2",0,0);
- load_game_menu->additem(MN_DEACTIVE,"Slot 3",0,0);
- load_game_menu->additem(MN_DEACTIVE,"Slot 4",0,0);
- load_game_menu->additem(MN_DEACTIVE,"Slot 5",0,0);
+ load_game_menu->additem(MN_DEACTIVE,"Slot 1",0,0, 1);
+ load_game_menu->additem(MN_DEACTIVE,"Slot 2",0,0, 2);
+ load_game_menu->additem(MN_DEACTIVE,"Slot 3",0,0, 3);
+ load_game_menu->additem(MN_DEACTIVE,"Slot 4",0,0, 4);
+ load_game_menu->additem(MN_DEACTIVE,"Slot 5",0,0, 5);
load_game_menu->additem(MN_HL,"",0,0);
load_game_menu->additem(MN_BACK,"Back",0,0);
save_game_menu->additem(MN_LABEL,"Save Game",0,0);
save_game_menu->additem(MN_HL,"",0,0);
- save_game_menu->additem(MN_DEACTIVE,"Slot 1",0,0);
- save_game_menu->additem(MN_DEACTIVE,"Slot 2",0,0);
- save_game_menu->additem(MN_DEACTIVE,"Slot 3",0,0);
- save_game_menu->additem(MN_DEACTIVE,"Slot 4",0,0);
- save_game_menu->additem(MN_DEACTIVE,"Slot 5",0,0);
+ save_game_menu->additem(MN_DEACTIVE,"Slot 1",0,0, 1);
+ save_game_menu->additem(MN_DEACTIVE,"Slot 2",0,0, 2);
+ save_game_menu->additem(MN_DEACTIVE,"Slot 3",0,0, 3);
+ save_game_menu->additem(MN_DEACTIVE,"Slot 4",0,0, 4);
+ save_game_menu->additem(MN_DEACTIVE,"Slot 5",0,0, 5);
save_game_menu->additem(MN_HL,"",0,0);
save_game_menu->additem(MN_BACK,"Back",0,0);
{
int slot = load_game_menu->check();
- if(slot != -1 && load_game_menu->get_item(slot).kind == MN_ACTION)
+ if(slot != -1 && load_game_menu->get_item_by_id(slot).kind == MN_ACTION)
{
- WorldMapNS::WorldMap worldmap;
-
char slotfile[1024];
- snprintf(slotfile, 1024, "%s/slot%d.stsg", st_save_dir, slot-1);
+ snprintf(slotfile, 1024, "%s/slot%d.stsg", st_save_dir, slot);
+
+ if (access(slotfile, F_OK) != 0)
+ {
+ display_text_file("intro.txt");
+ }
+
+ WorldMapNS::WorldMap worldmap;
// Load the game or at least set the savegame_file variable
worldmap.loadgame(slotfile);
{
case MNID_OPENGL:
#ifndef NOOPENGL
- if(use_gl != options_menu->item[MNID_OPENGL].toggled)
+ if(use_gl != options_menu->isToggled(MNID_OPENGL))
{
use_gl = !use_gl;
st_video_setup();
}
#else
- options_menu->item[MNID_OPENGL].toggled = false;
+ options_menu->get_item_by_id(MNID_OPENGL).toggled = false;
#endif
break;
case MNID_FULLSCREEN:
- if(use_fullscreen != options_menu->item[MNID_FULLSCREEN].toggled)
+ if(use_fullscreen != options_menu->isToggled(MNID_FULLSCREEN))
{
use_fullscreen = !use_fullscreen;
st_video_setup();
}
break;
case MNID_SOUND:
- if(use_sound != options_menu->item[MNID_SOUND].toggled)
+ if(use_sound != options_menu->isToggled(MNID_SOUND))
use_sound = !use_sound;
break;
case MNID_MUSIC:
- if(use_music != options_menu->item[MNID_MUSIC].toggled)
+ if(use_music != options_menu->isToggled(MNID_MUSIC))
{
- enable_music(options_menu->item[MNID_MUSIC].toggled);
+ use_music = !use_music;
+ music_manager->enable_music(use_music);
}
break;
case MNID_SHOWFPS:
- if(show_fps != options_menu->item[MNID_SHOWFPS].toggled)
+ if(show_fps != options_menu->isToggled(MNID_SHOWFPS))
show_fps = !show_fps;
break;
}