|
|
1.1 root 1: #include <CC/jerq.h>
2: #include "frame.pri"
3: #include "clock.pub"
4:
5: Movie *m;
6: Clock *clock;
7: extern char *genfn(int);
8: extern void sprintf(char *s ...);
9: extern int getn();
10: Menu menu = { (char **)0, &genfn };
11:
12: main()
13: {
14: int n, done;
15:
16: request(RCV|SEND|MOUSE|KBD);
17: clock = new Clock();
18: m = new Movie();
19: m->read();
20:
21: done = 0;
22: while(done == 0)
23: {
24: if(own()&MOUSE)
25: {
26: if(button1())
27: if(hitpot(1))
28: {
29: m->adjust();
30: m->show();
31: }
32: if(button2())
33: helppot(2);
34: if(button3())
35: switch(n = menuhit(&menu, 3))
36: {
37: case -1:
38: break;
39: case 1:
40: done = confirm(3);
41: break;
42: default:
43: n -= 2;
44: m->showframe(n);
45: break;
46: }
47: }
48: if(m->run->val)
49: {
50: clock->set();
51: m->show();
52: m->advance();
53: wait(CPU);
54: clock->synch();
55: }
56: else
57: sleep(2);
58: }
59: sendnchars(2, "x\n");
60: sleep(500);
61: }
62:
63: char buf[128];
64:
65: char *
66: genfn(int i)
67: {
68: switch(i)
69: {
70: case 0:
71: sprintf(buf, "%d frames t=%d", m->maxframe, m->maxtime);
72: break;
73: case 1:
74: sprintf(buf, "exit");
75: break;
76: default:
77: i -= 2;
78: if(i >= m->maxframe)
79: return((char *)0);
80: else
81: sprintf(buf, "frame %d t=%s", i, m->ft(i));
82: break;
83: }
84: return(buf);
85: }
86:
87: extern int
88: nrand(int n)
89: {
90: extern rand();
91:
92: return(muldiv(rand(), n, 32767));
93: }
94:
95: getch()
96: {
97: register i;
98:
99: if((i = rcvchar()) == -1)
100: {
101: wait(RCV);
102: i = rcvchar();
103: }
104: return(i);
105: }
106:
107: getn()
108: {
109: register i, j;
110:
111: i = getch();
112: i <<= 8;
113: j = 0xFF & getch();
114: return((i|j)&0xffff);
115: }
116:
117: extern void
118: gets(register char *s)
119: {
120: while(*s++ = getch());
121: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.