logo
[eradicate] / src / dos / main.c
index 911781c..8c3096b 100644 (file)
@@ -46,14 +46,24 @@ 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();
@@ -62,6 +72,7 @@ int main(int argc, char **argv)
 
 break_evloop:
        free(fb_buf);
+       cleanup();
        set_text_mode();
        cleanup_video();
        kb_shutdown();