|
|
1.1 root 1: #include <stdio.h>
2: #include <math.h>
3: #include <ctype.h>
4: #include "pico.h"
5:
6: extern struct SRC src[MANY];
7: extern short CURSCRATCH, CUROLD;
8: extern char frameb, metheus;
9: extern int DEF_LL, DEF_NL;
10: extern float fsqrt();
11:
12: println(s, aa)
13: char *s;
14: long aa;
15: {
16: char c, *t = s;
17: int argc=1;
18: long *aaa = &aa;
19:
20: for (;;)
21: switch (c = *t++) {
22: case '\0': return argc;
23: case '%': switch (c = *t++) {
24: case '\0': putc('%', stderr); return argc;
25: case 'd': fprintf(stderr, "%d", (int)*aaa);
26: aaa++; argc++; break;
27: case 's': fprintf(stderr, "%s", (char *)*aaa);
28: aaa++; argc++; break;
29: case '%': putc('%', stderr); break;
30: default : putc('%', stderr); putc(c, stderr); break;
31: }
32: break;
33: default : putc(c, stderr); break;
34: }
35: }
36:
37: Clamp(a){ return ((a < 0)?0:((a>=DEF_LL)?(DEF_LL-1):a)); }
38: Abs(a) { return ((a<0)?(-a):a); }
39:
40: int Midx = 256, Midy = 256;
41:
42: setmid()
43: {
44: Midx = (Old->sx + (Old->ex - Old->sx)/2);
45: Midy = (Old->sy + (Old->ey - Old->sy)/2);
46: }
47:
48: r_polar(x, y)
49: { register float dx = (float) (x - Midx);
50: register float dy = (float) (y - Midy);
51:
52: return (int) fsqrt(dx*dx + dy*dy);
53: }
54:
55: a_polar(x, y)
56: {
57: return patan2(x-Midx, y-Midy);
58: }
59: A_polar(x, y)
60: {
61: return Patan2(x-Midx, y-Midy);
62: }
63:
64: Y_cart(r, a)
65: {
66: return Midy+(r*Psin(a)/10000);
67: }
68: y_cart(r, a)
69: { int b = Midy+(r*psin(a)/10000);
70: return (b >= 0 && b < DEF_NL)?b:0;
71: }
72:
73: X_cart(r, a)
74: {
75: return Midx+(r*Pcos(a)/10000);
76: }
77: x_cart(r, a)
78: { int b = Midx+(r*pcos(a)/10000);
79: return (b >= 0 && b < DEF_LL)?b:0;
80: }
81:
82: setzmap(i, z)
83: {
84: redcmap(i, z);
85: grncmap(i, z);
86: blucmap(i, z);
87: return z;
88: }
89:
90: setcmap(i, r,g,b)
91: {
92: redcmap(i, r);
93: grncmap(i, g);
94: blucmap(i, b);
95: return r;
96: }
97:
98: putframe(n)
99: { char nr[128];
100: int i;
101:
102: sprintf(nr, "frame.%6d", n);
103: for (i = 11; i > 5; i--)
104: if (nr[i] == ' ') nr[i] = '0';
105: i = CUROLD; CUROLD = CURSCRATCH; CURSCRATCH = i;
106: putdpix(nr, 0);
107: i = CUROLD; CUROLD = CURSCRATCH; CURSCRATCH = i;
108: return 1;
109: }
110:
111: swap()
112: {
113: setscratch(Scratch, Old);
114: return 1;
115: }
116:
117: getframe(n)
118: { char nr[128];
119: int i;
120:
121: sprintf(nr, "frame.%6d", n);
122: for (i = 11; i > 5; i--)
123: if (nr[i] == ' ') nr[i] = '0';
124: return newscreen(nr);
125: }
126:
127: yank(x, y)
128: { if (frameb) fbyank(x, y);
129: else if (metheus) metyank(x,y);
130: }
131:
132: intexp(a) int a; { return (int) exp((double) a); }
133: intlog(a) int a; { return (int) 1024*log((double) a); }
134: intlog10(a) int a; { return (int) 1024*log10((double) a); }
135: intsqrt(a) int a; { return (int) sqrt((double) a); }
136: intpow(a, b) int a,b; { return (int) pow((double) a, (double) b); }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.