X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fdemosys.c;h=06aa8c2141d609dd1681ce7fb5a2a5b372df00fa;hb=86b5ef7c43c2a3485850b8a4f58c33aaf6ca2566;hp=12c7a153b280ac8e515c3565dc089c30cf231bfc;hpb=295b86a1a8efdfe4fb0d9dba6152eb956441603c;p=andemo diff --git a/src/demosys.c b/src/demosys.c index 12c7a15..06aa8c2 100644 --- a/src/demosys.c +++ b/src/demosys.c @@ -154,6 +154,18 @@ void dsys_update(void) dsys.tmsec = time_msec; + /* evaluate tracks */ + for(i=0; ivis = 1; + if(scr->update) scr->update(dsys.tmsec); + return; + } + dsys.num_act = 0; for(i=0; idraw(); + return; + } + for(i=0; idraw(); } @@ -244,16 +257,22 @@ void dsys_run_screen(struct demoscreen *scr) { int i; - if(!scr) return; - if(dsys.num_act == 1 && dsys.act[0] == scr) return; + if(!scr) { + if(dsys.scr_override) { + scr = dsys.scr_override; + if(scr->stop) scr->stop(); + } + dsys.scr_override = 0; + return; + } for(i=0; istop) dsys.act[i]->stop(); dsys.act[i]->active = 0; } + dsys.num_act = 0; - dsys.act[0] = scr; - dsys.num_act = 1; + dsys.scr_override = scr; if(scr->start) scr->start(); scr->active = 1;