projects
/
andemo
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
screen-relative events
[andemo]
/
src
/
demo.c
diff --git
a/src/demo.c
b/src/demo.c
index
e17d7ec
..
f51dcc1
100644
(file)
--- 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(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;
}
return 0;
}
@@
-115,6
+123,12
@@
void demo_keyboard(int key, int pressed)
} else {
int i;
} else {
int i;
+
+ if(dsys.scr_override && dsys.scr_override->keyboard) {
+ dsys.scr_override->keyboard(key, pressed);
+ break;
+ }
+
for(i=0; i<dsys.num_act; i++) {
struct demoscreen *scr = dsys.act[i];
if(scr->keyboard) scr->keyboard(key, pressed);
for(i=0; i<dsys.num_act; i++) {
struct demoscreen *scr = dsys.act[i];
if(scr->keyboard) 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;
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; i<dsys.num_act; i++) {
struct demoscreen *scr = dsys.act[i];
if(scr->mouse) scr->mouse(bn, pressed, x, y);
for(i=0; i<dsys.num_act; i++) {
struct demoscreen *scr = dsys.act[i];
if(scr->mouse) 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;
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; i<dsys.num_act; i++) {
struct demoscreen *scr = dsys.act[i];
if(scr->motion) scr->motion(x, y);
for(i=0; i<dsys.num_act; i++) {
struct demoscreen *scr = dsys.act[i];
if(scr->motion) scr->motion(x, y);