X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=dosdemo;a=blobdiff_plain;f=src%2Fscreen.c;h=baf4ec21c5466dd835d0567c8973da570162a309;hp=8069ce89a92e45ba07ac3dc6ef91dbec2e110153;hb=6c97c0ce46b475901a38393602887912a44a473b;hpb=7e9bdbed1a8cda290cf0ee8af914625f62df2b5e diff --git a/src/screen.c b/src/screen.c index 8069ce8..baf4ec2 100644 --- a/src/screen.c +++ b/src/screen.c @@ -186,10 +186,20 @@ int scr_change(struct screen *s, long trans_time) /* loading screen */ extern uint16_t loading_pixels[]; +static long prev_load_msec; +static long load_delay = 180; void start_loadscr(void) { + char *env; + if((env = getenv("MLAPSE_LOADDELAY"))) { + load_delay = atoi(env); + printf("load delay: %ld ms\n", load_delay); + } + swap_buffers(loading_pixels); + sleep_msec(load_delay * 2); + prev_load_msec = get_msec(); } #define SPLAT_X 288 @@ -204,10 +214,9 @@ void start_loadscr(void) void end_loadscr(void) { blitfb(loading_pixels + SPLAT_Y * 320 + SPLAT_X, loading_pixels + 320 * 240, 32, 72, 32); - blit_key(loading_pixels + FING_Y * 320 + FING_LAST_X, 320, loading_pixels + 247 * 320 + 64, - FING_W, FING_H, FING_W, 0); + blit_key(loading_pixels + FING_Y * 320 + FING_LAST_X, 320, loading_pixels + 247 * 320 + 64, FING_W, FING_H, FING_W, 0); swap_buffers(loading_pixels); - sleep_msec(300); + sleep_msec(load_delay * 4); } void loadscr(int n, int count) @@ -215,6 +224,7 @@ void loadscr(int n, int count) int xoffs = 75 * n / (count - 1); static int prev_xoffs; uint16_t *sptr, *dptr; + long delta; sptr = loading_pixels + 247 * 320 + 64; dptr = loading_pixels + FING_Y * 320 + FING_X + prev_xoffs; @@ -227,5 +237,9 @@ void loadscr(int n, int count) swap_buffers(loading_pixels); - /*sleep_msec(200);*/ + delta = get_msec() - prev_load_msec; + if(delta < load_delay) { + sleep_msec(load_delay - delta); + } + prev_load_msec = get_msec(); }