void (*motion)(int x, int y);
struct anm_track track;
- int active, prio;
+ long start_time;
+ int prio;
float vis;
};
-/* global demo state */
-int dsys_running; /* run/stop state */
-int dsys_eof; /* end of demo flag, seek back to reset */
-long dsys_time; /* demo time in milliseconds */
+struct demoevent {
+ char *name;
+ struct anm_track track;
+ float value;
+ struct demoscreen *scr;
+};
#define MAX_DSYS_SCREENS 64
-struct demoscreen *dsys_screens[MAX_DSYS_SCREENS];
-int dsys_num_screens;
-struct demoscreen *dsys_act[MAX_DSYS_SCREENS];
-int dsys_num_act;
+struct demosystem {
+ int running; /* run/stop state */
+ int eof; /* end of demo flag, seek back to reset */
+ long tmsec;
+
+ struct demoscreen *screens[MAX_DSYS_SCREENS];
+ int num_screens;
+ struct demoscreen *act[MAX_DSYS_SCREENS];
+ int num_act;
+
+ struct demoscreen *scr_override;
+
+ void *trackmap;
+ struct demoevent *ev;
+ int num_ev;
+};
+
+struct demosystem dsys;
int dsys_init(const char *fname);
int dsys_add_screen(struct demoscreen *scr);
+/* demo event tracks */
+int dsys_add_event(const char *name);
+int dsys_find_event(const char *name);
+float dsys_value(const char *name);
+
#endif /* DEMOSYS_H_ */