|
|
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.