diff --git a/src/menu-fn/defs.h b/src/menu-fn/defs.h index 472d644e..279b23ee 100644 --- a/src/menu-fn/defs.h +++ b/src/menu-fn/defs.h @@ -14,7 +14,7 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -var int autocvar_menu_intro = FALSE; +var int autocvar_menu_intro = TRUE; #define KEY_UNKNOWN -1 #define KEY_GAME 0 diff --git a/src/menu-fn/entry.cpp b/src/menu-fn/entry.cpp index c7d5de31..51088dcc 100644 --- a/src/menu-fn/entry.cpp +++ b/src/menu-fn/entry.cpp @@ -81,6 +81,10 @@ void m_init(void) Colors_Init(); Strings_Init(); g_initialized = TRUE; + + if (cvar_string("game") != "valve") { + m_intro_skip(); + } } void m_shutdown(void) @@ -206,6 +210,7 @@ float m_consolecommand(string cmd) switch (argv(0)) { case "menu_customgame": g_menupage = PAGE_CUSTOMGAME; + m_intro_skip(); break; case "togglemenu": m_display(); diff --git a/src/menu-fn/m_creategame.cpp b/src/menu-fn/m_creategame.cpp index 656b4c2f..6a24fde7 100644 --- a/src/menu-fn/m_creategame.cpp +++ b/src/menu-fn/m_creategame.cpp @@ -35,6 +35,7 @@ void create_btnok_start(void) { static string startmap; static void create_btnok_end(void) { + localcmd("stopmusic\n"); localcmd(sprintf("hostname %s\n", create_tbHostname.m_text)); localcmd(sprintf("sv_playerslots %s\n", create_tbMaxplayers.m_text)); localcmd(sprintf("password %s\n", create_tbPassword.m_text)); diff --git a/src/menu-fn/m_creategame_inet.cpp b/src/menu-fn/m_creategame_inet.cpp index d9e013b0..3b216866 100644 --- a/src/menu-fn/m_creategame_inet.cpp +++ b/src/menu-fn/m_creategame_inet.cpp @@ -23,6 +23,7 @@ void createinet_btnok_start(void) { static string startmap; static void createinet_btnok_end(void) { + localcmd("stopmusic\n"); localcmd(sprintf("hostname %s\n", create_tbHostname.m_text)); localcmd(sprintf("sv_playerslots %s\n", create_tbMaxplayers.m_text)); localcmd(sprintf("password %s\n", create_tbPassword.m_text)); diff --git a/src/menu-fn/m_intro.cpp b/src/menu-fn/m_intro.cpp index dc8e2a6b..3e2263a2 100644 --- a/src/menu-fn/m_intro.cpp +++ b/src/menu-fn/m_intro.cpp @@ -14,20 +14,47 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -#define INTRO_TIME 6 +enum { + INTRO_START, + INTRO_FADETOWHITE, + INTRO_FADETOMENU, + INTRO_DONE +}; + +#define INTRO_TIME 8 float g_intro_progress; +int g_intro_stage; + +void m_intro_skip(void) +{ + g_intro_progress = INTRO_TIME; +} void m_intro_draw(void) { - if (clientstate() == 2) { g_intro_progress = INTRO_TIME; + g_intro_stage = INTRO_DONE; } - if (g_intro_progress > 5.0f) { + if (g_intro_progress > 7.0f) { + float alpha = (8 - g_intro_progress); + drawfill([0,0], [g_vidsize[0],g_vidsize[1]], [1,1,1], alpha); + + if (g_intro_stage != INTRO_FADETOMENU) { + g_intro_stage = INTRO_FADETOMENU; + } + } else if (g_intro_progress > 5.0f) { float alpha = (6 - g_intro_progress); drawpic([g_menuofs[0],g_menuofs[1]], g_bmp[SPLASH8BIT], - [640,480], [1,1,1], alpha, 0); + [640,480], [1,1,1], 1.0f, 0); + drawfill([0,0], [g_vidsize[0],g_vidsize[1]], [1,1,1], 1.0 - alpha); + + if (g_intro_stage != INTRO_FADETOWHITE) { + localcmd("play debris/beamstart5.wav\n"); + localcmd("music music/track03.flac\n"); + g_intro_stage = INTRO_FADETOWHITE; + } } else { drawpic([g_menuofs[0],g_menuofs[1]], g_bmp[SPLASH8BIT], [640,480], [1,1,1], 1.0f); @@ -40,14 +67,15 @@ void m_intro_draw(void) g_intro_progress += frametime; } - void m_intro_input(float evtype, float scanx, float chary, float devid) -{ +{ if (evtype == IE_KEYDOWN) { if (scanx == K_ESCAPE) { - g_intro_progress = INTRO_TIME; + m_intro_skip(); } else if (scanx == K_ENTER) { - g_intro_progress = INTRO_TIME; + m_intro_skip(); + } else if (scanx == K_SPACE) { + m_intro_skip(); } } } diff --git a/src/menu-fn/m_main.cpp b/src/menu-fn/m_main.cpp index 344deeb2..6ef915d4 100644 --- a/src/menu-fn/m_main.cpp +++ b/src/menu-fn/m_main.cpp @@ -71,6 +71,7 @@ void btn_newgame_start(void) } void btn_training(void) { + localcmd("stopmusic\n"); localcmd("maxplayers 1\n"); localcmd(sprintf("map %s\n", games[gameinfo_current].trainingmap)); } diff --git a/src/menu-fn/m_newgame.cpp b/src/menu-fn/m_newgame.cpp index 5bfde65c..90d0db03 100644 --- a/src/menu-fn/m_newgame.cpp +++ b/src/menu-fn/m_newgame.cpp @@ -25,6 +25,7 @@ void ng_btneasy_start(void) { static void ng_btneasy_end(void) { g_menupage = PAGE_MAIN; + localcmd("stopmusic\n"); localcmd("set skill 1; maxplayers 1\n"); localcmd(sprintf("map %s\n", games[gameinfo_current].startmap)); } @@ -40,6 +41,7 @@ void ng_btnnormal_start(void) { static void ng_btnnormal_end(void) { g_menupage = PAGE_MAIN; + localcmd("stopmusic\n"); localcmd("set skill 2; maxplayers 1\n"); localcmd(sprintf("map %s\n", games[gameinfo_current].startmap)); } @@ -55,6 +57,7 @@ void ng_btnhard_start(void) { static void ng_btnhard_end(void) { g_menupage = PAGE_MAIN; + localcmd("stopmusic\n"); localcmd("set skill 3; maxplayers 1\n"); localcmd(sprintf("map %s\n", games[gameinfo_current].startmap)); }