X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fdemo.c;h=f51dcc1b6fe13301bf327e7ebd71669a5bfec0bc;hb=6bdfcf4ad3daddcd9d689deb15798403c89ce42b;hp=e17d7ec4ca3e05e894b25042bebf6c80adfba634;hpb=8779bb586efd94381dacd5ffd8de35e62531a540;p=andemo diff --git a/src/demo.c b/src/demo.c index e17d7ec..f51dcc1 100644 --- a/src/demo.c +++ b/src/demo.c @@ -37,6 +37,14 @@ int demo_init(void) if(dsys_init("data/demoscript") == -1) { return -1; } + if(opt.scrname) { + struct demoscreen *scr = dsys_find_screen(opt.scrname); + if(scr) { + dsys_run_screen(scr); + } else { + fprintf(stderr, "ignoring screen option, no such screen: %s\n", opt.scrname); + } + } return 0; } @@ -115,6 +123,12 @@ void demo_keyboard(int key, int pressed) } else { int i; + + if(dsys.scr_override && dsys.scr_override->keyboard) { + dsys.scr_override->keyboard(key, pressed); + break; + } + for(i=0; ikeyboard) scr->keyboard(key, pressed); @@ -126,6 +140,12 @@ void demo_keyboard(int key, int pressed) void demo_mouse(int bn, int pressed, int x, int y) { int i; + + if(dsys.scr_override && dsys.scr_override->mouse) { + dsys.scr_override->mouse(bn, pressed, x, y); + return; + } + for(i=0; imouse) scr->mouse(bn, pressed, x, y); @@ -135,6 +155,11 @@ void demo_mouse(int bn, int pressed, int x, int y) void demo_motion(int x, int y) { int i; + + if(dsys.scr_override && dsys.scr_override->motion) { + dsys.scr_override->motion(x, y); + } + for(i=0; imotion) scr->motion(x, y);