projects
/
eradicate
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
logo
[eradicate]
/
src
/
dos
/
main.c
diff --git
a/src/dos/main.c
b/src/dos/main.c
index
6031b6a
..
8c3096b
100644
(file)
--- a/
src/dos/main.c
+++ b/
src/dos/main.c
@@
-8,10
+8,8
@@
#include "logger.h"
#include "cdpmi.h"
#include "logger.h"
#include "cdpmi.h"
-static void draw(void);
-
static struct video_mode *vmode;
static struct video_mode *vmode;
-
+static int quit;
int main(int argc, char **argv)
{
int main(int argc, char **argv)
{
@@
-48,13
+46,25
@@
int main(int argc, char **argv)
}
fb_pixels = (char*)fb_buf + vmode->pitch;
}
fb_pixels = (char*)fb_buf + vmode->pitch;
+ if(init(argc, argv) == -1) {
+ status = -1;
+ goto break_evloop;
+ }
+
reset_timer();
for(;;) {
int key;
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();
time_msec = get_msec();
draw();
@@
-62,23
+72,14
@@
int main(int argc, char **argv)
break_evloop:
free(fb_buf);
break_evloop:
free(fb_buf);
+ cleanup();
set_text_mode();
cleanup_video();
kb_shutdown();
return status;
}
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<fb_height; i++) {
- for(j=0; j<fb_width; j++) {
- int chess = ((i >> 4) & 1) == ((j >> 4) & 1);
- *pptr++ = chess ? 0xff00 : 0x00ff;
- }
- }
-
- blit_frame(fb_pixels, 1);
+ quit = 1;
}
}