X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fdos%2Fmain.c;h=8c3096b331243d4bdfccbb207fa063f2540663f8;hb=fdf6f2783b2f528f4d6d377ac046aafc5fed3f01;hp=6031b6adf6a0a0cd909dceed7085378859735d4c;hpb=0e19f91320d17dc2df1fa0aeaa270b80eef545a9;p=eradicate diff --git a/src/dos/main.c b/src/dos/main.c index 6031b6a..8c3096b 100644 --- a/src/dos/main.c +++ b/src/dos/main.c @@ -8,10 +8,8 @@ #include "logger.h" #include "cdpmi.h" -static void draw(void); - static struct video_mode *vmode; - +static int quit; int main(int argc, char **argv) { @@ -48,13 +46,25 @@ int main(int argc, char **argv) } fb_pixels = (char*)fb_buf + vmode->pitch; + if(init(argc, argv) == -1) { + status = -1; + goto break_evloop; + } + reset_timer(); for(;;) { int key; - while((key = kb_getkey()) != -1) { - if(key == 27) goto break_evloop; + if(key_event) { + while((key = kb_getkey()) != -1) { + key_event(key, 1); + } + } else { + while((key = kb_getkey()) != -1) { + if(key == 27) goto break_evloop; + } } + if(quit) goto break_evloop; time_msec = get_msec(); draw(); @@ -62,23 +72,14 @@ int main(int argc, char **argv) break_evloop: free(fb_buf); + cleanup(); set_text_mode(); cleanup_video(); kb_shutdown(); return status; } -static void draw(void) +void game_quit(void) { - int i, j; - uint16_t *pptr = fb_pixels; - - for(i=0; i> 4) & 1) == ((j >> 4) & 1); - *pptr++ = chess ? 0xff00 : 0x00ff; - } - } - - blit_frame(fb_pixels, 1); + quit = 1; }