X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fintroscr.c;h=170cab4618a0ecf4bfd629aa234e05172b4345c1;hb=d54a3962dcb42f9921be75cf3754525ecef2bab6;hp=16567ffd6de891df5c80dc86416534959b37286b;hpb=046fa888e4df754a20736303c27f497163edf4db;p=eradicate diff --git a/src/introscr.c b/src/introscr.c index 16567ff..170cab4 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; @@ -13,7 +13,7 @@ static long start_time; int intro_init(void) { - if(!(logo = img_load_pixels("data/msglogo.jpg", &logo_width, &logo_height, IMG_FMT_RGB24))) { + if(!(logo = img_load_pixels("data/msglogo.jpg", &logo_width, &logo_height, IMG_FMT_BGRA32))) { fprintf(stderr, "failed to load logo image\n"); return -1; } @@ -27,6 +27,9 @@ void intro_cleanup(void) void intro_start(void) { + draw = intro_draw; + key_event = intro_keyb; + start_time = time_msec; } @@ -34,27 +37,49 @@ void intro_stop(void) { } +void fade_image(void *dest, void *src, uint16_t fade); + 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 { + fade = 0; + menu_start(); + return; + } - for(i=0; i