Menu: Switched mod switching to be fully manifest oriented, fixed menu music playback.

This commit is contained in:
Marco Cawthorne 2020-10-06 14:27:44 +02:00
parent 9f30a2b897
commit 5810da8069
3 changed files with 17 additions and 8 deletions

View file

@ -96,6 +96,8 @@ m_init(void)
registercommand("menu_customgame"); registercommand("menu_customgame");
registercommand("map_background"); registercommand("map_background");
registercommand("menu_musicstart");
font_console = loadfont("font", "", "12", -1); font_console = loadfont("font", "", "12", -1);
font_label = loadfont("label", "gfx/shell/mssansserif.ttf", "10 12 14", -1); font_label = loadfont("label", "gfx/shell/mssansserif.ttf", "10 12 14", -1);
font_arial = loadfont("label", "gfx/shell/arial.ttf", "14 11 12", -1); font_arial = loadfont("label", "gfx/shell/arial.ttf", "14 11 12", -1);
@ -307,6 +309,9 @@ m_consolecommand(string cmd)
{ {
tokenize(cmd); tokenize(cmd);
switch (argv(0)) { switch (argv(0)) {
case "menu_musicstart":
Music_MenuStart();
break;
case "menu_musictrack": case "menu_musictrack":
Music_ParseTrack(argv(1)); Music_ParseTrack(argv(1));
break; break;

View file

@ -228,9 +228,6 @@ games_init(void)
case "gameinfo_trainingmap": case "gameinfo_trainingmap":
games[id].trainingmap = argv(i+1); games[id].trainingmap = argv(i+1);
break; break;
case "gameinfo_menutrack":
cvar_set("gameinfo_menutrack", argv(i+1));
break;
case "gameinfo_pkgname": case "gameinfo_pkgname":
games[id].pkgname = argv(i+1); games[id].pkgname = argv(i+1);
games[id].pkgid = game_getpackageid(games[id].pkgname); games[id].pkgid = game_getpackageid(games[id].pkgname);
@ -245,7 +242,7 @@ games_init(void)
break; break;
} }
} }
if (games[id].gamedir == cvar_string("game")) { if (games[id].gamedir == cvar_string("gameinfo_gamedir")) {
games_set(id); games_set(id);
} }
} }
@ -355,8 +352,8 @@ customgame_btnactivate_start(void)
games_set(nextgame); games_set(nextgame);
#if 0 #if 1
localcmd(sprintf("fs_changegame %s.fmf\n", games[nextgame].gamedir)); localcmd(sprintf("fs_changegame %s %s.fmf\n", games[nextgame].gamedir, games[nextgame].gamedir));
#else #else
/* some games/mods inherit other directories */ /* some games/mods inherit other directories */
if (games[nextgame].fallback_dir) { if (games[nextgame].fallback_dir) {
@ -366,7 +363,10 @@ customgame_btnactivate_start(void)
} }
#endif #endif
localcmd("stopmusic\nsnd_restart\nwait\nvid_reload\nmenu_restart\nmenu_customgame\n"); localcmd("stopmusic\nsnd_restart\nwait\nvid_reload\n");
localcmd("menu_restart\n");
localcmd("menu_customgame\n");
localcmd("menu_musicstart\n");
cvar_init(); cvar_init();
} }
@ -393,10 +393,11 @@ customgame_btninstall_start(void)
void void
customgame_btndeactivate_start(void) customgame_btndeactivate_start(void)
{ {
localcmd("gamedir \"\"\n"); localcmd(sprintf("fs_changegame %s %s.fmf\n", GAME_DIR, GAME_DIR));
localcmd("stopmusic\nsnd_restart\nwait\nvid_reload\n"); localcmd("stopmusic\nsnd_restart\nwait\nvid_reload\n");
localcmd("menu_restart\n"); localcmd("menu_restart\n");
localcmd("menu_customgame\n"); localcmd("menu_customgame\n");
localcmd("menu_musicstart\n");
} }
void void

View file

@ -101,6 +101,9 @@ void
Music_MenuStart(void) Music_MenuStart(void)
{ {
string tinfo = cvar_string("gameinfo_menutrack"); string tinfo = cvar_string("gameinfo_menutrack");
print(tinfo);
print("\n");
if (tinfo) { if (tinfo) {
localcmd(sprintf("music %s\n", tinfo)); localcmd(sprintf("music %s\n", tinfo));
} }