X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=eradicate;a=blobdiff_plain;f=src%2Fintroscr.c;fp=src%2Fintroscr.c;h=610db90c74c5c4ae9d838f485dc9d818c0ea3bdb;hp=16567ffd6de891df5c80dc86416534959b37286b;hb=fdf6f2783b2f528f4d6d377ac046aafc5fed3f01;hpb=046fa888e4df754a20736303c27f497163edf4db diff --git a/src/introscr.c b/src/introscr.c index 16567ff..610db90 100644 --- a/src/introscr.c +++ b/src/introscr.c @@ -5,7 +5,7 @@ #include "gfxutil.h" #include "game.h" -#define FADE_DUR 1024 +#define FADE_DUR 800 static void *logo; static int logo_width, logo_height; @@ -27,6 +27,9 @@ void intro_cleanup(void) void intro_start(void) { + draw = intro_draw; + key_event = intro_keyb; + start_time = time_msec; } @@ -37,12 +40,22 @@ void intro_stop(void) void intro_draw(void) { int i, j; + long tm; uint16_t fade; unsigned char *src = logo; uint16_t *dest = fb_pixels; - fade = (time_msec - start_time) * 256 / FADE_DUR; - if(fade > 256) fade = 256; + tm = time_msec - start_time; + if(tm < FADE_DUR) { + fade = tm * 256 / FADE_DUR; + } else if(tm < FADE_DUR * 2) { + fade = 256; + } else if(tm < FADE_DUR * 3) { + fade = 256 - (tm - 2 * FADE_DUR) * 256 / FADE_DUR; + } else { + menu_start(); + return; + } for(i=0; i