89 lines
2.2 KiB
Plaintext
89 lines
2.2 KiB
Plaintext
/*
|
|
* Copyright (c) 2016-2022 Vera Visions LLC.
|
|
*
|
|
* Permission to use, copy, modify, and distribute this software for any
|
|
* purpose with or without fee is hereby granted, provided that the above
|
|
* copyright notice and this permission notice appear in all copies.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
* WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
|
|
* IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
|
|
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
*/
|
|
|
|
enum
|
|
{
|
|
INTRO_START,
|
|
INTRO_FADETOWHITE,
|
|
INTRO_FADETOMENU,
|
|
INTRO_DONE
|
|
};
|
|
|
|
#define INTRO_TIME 8
|
|
var float g_intro_progress = 0.0f;
|
|
int g_intro_stage;
|
|
|
|
void
|
|
m_intro_skip(void)
|
|
{
|
|
g_intro_progress = INTRO_TIME;
|
|
g_intro_stage = INTRO_DONE;
|
|
}
|
|
|
|
void
|
|
m_intro_draw(void)
|
|
{
|
|
float alpha;
|
|
|
|
if (clientstate() == 2) {
|
|
g_intro_progress = INTRO_TIME;
|
|
g_intro_stage = INTRO_DONE;
|
|
}
|
|
|
|
if (g_intro_progress > 7.0f) {
|
|
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) {
|
|
alpha = (6 - g_intro_progress);
|
|
drawpic([g_menuofs[0],g_menuofs[1]], g_bmp[SPLASH8BIT],
|
|
[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("menu_musicloop 3\n");
|
|
g_intro_stage = INTRO_FADETOWHITE;
|
|
}
|
|
} else {
|
|
drawpic([g_menuofs[0],g_menuofs[1]], g_bmp[SPLASH8BIT],
|
|
[640,480], [1,1,1], 1.0f);
|
|
}
|
|
|
|
if (g_intro_progress < 2.0f) {
|
|
drawfill([0,0], [g_vidsize[0],g_vidsize[1]], [0,0,0], 2-g_intro_progress);
|
|
}
|
|
|
|
g_intro_progress += frametime;
|
|
}
|
|
|
|
void
|
|
m_intro_input(float evtype, float scanx, float chary, float devid)
|
|
{
|
|
if (evtype == IE_KEYDOWN) {
|
|
if (scanx == K_ESCAPE) {
|
|
m_intro_skip();
|
|
} else if (scanx == K_ENTER) {
|
|
m_intro_skip();
|
|
} else if (scanx == K_SPACE) {
|
|
m_intro_skip();
|
|
}
|
|
}
|
|
}
|