14 //UWORD *color00=(UWORD *) 0xDFF180;
18 void make_tuntab(float persp
,float po
,float rot
,float ox
,float oy
,float mulx
,float muly
,float tox
,float toy
)
32 vx
=atan2(xx
,yy
)*((256/(2*PI
)));
33 pe
=mulx
+(sin(rot
+(2*PI
*vx
/(256/5)))*po
);
34 mx
=sqrt((xx
*xx
)+(yy
*yy
));
39 blokx
[blk
]=(vx
+ox
+dvx
)*256;
40 bloky
[blk
]=(vy
+oy
)*256;
44 void stampblok(UBYTE
*vmem
,UBYTE
*txt
)
46 int dx1
, dy1
, dx2
, dy2
, dx
, dy
;
47 int tx1
, ty1
, tx2
, ty2
, tx
, ty
;
58 tx2
= blokx
[blk
+1]<<8;
59 ty2
= bloky
[blk
+1]<<8;
61 dx1
= ((blokx
[blk
+41]<<8)-tx1
) >> 3;
62 dy1
= ((bloky
[blk
+41]<<8)-ty1
) >> 3;
63 dx2
= ((blokx
[blk
+42]<<8)-tx2
) >> 3;
64 dy2
= ((bloky
[blk
+42]<<8)-ty2
) >> 3;
67 o
=320*(y2
<<3)+(x2
<<3);
72 dx
= ((tx2
-tx1
)) >> 3;
73 dy
= ((ty2
-ty1
)) >> 3;
75 if (dx
>16*65536) dx
=-(32*65536-dx
);
76 if (dx
<-(16*65536)) dx
=32*65536-dx
;
79 vmem
[o
] = txt
[(((ty
>>8) & 0x0000FF00)+(tx
>> 16)) & 0xFFFF]>>1;
80 //vmem[o] = ltab[ txt[(((ty >>8) & 0x0000FF00)+(tx >> 16)) & 0xFFFF]+(UBYTE)(lx3>>16)];
99 int main(int argc
, char **argv
)
105 float ox
= 0.0,oy
= 0.0;
111 float tox
= 0.0,toy
= 0.0;
113 float qx
= 0.0,qy
= 0.0;
116 text1
=KDPloadFile("raw/tg-1.raw");
117 text2
=KDPloadFile("raw/tg-2.raw");
118 //pal=KDPloadFile("tun-l.pal");
123 //l=(sin(sl)*512)-200;
130 if (KDPopen(&screen
))
138 //KDPsetPal(&pal[0x30]);
141 KDPsetColor(i
,i
,i
/4,i
);
142 KDPsetColor(128+i
,0,i
,i
*2);
151 while(mouse
.button
!=3)
155 mx
+=(float)mouse
.xspeed
/10;
161 ox
+=(float)mouse
.xspeed
/10;
162 doy
+=(float)mouse
.yspeed
/50;
166 //mulx+=(float)mouse.xspeed;
167 //muly+=(float)mouse.yspeed/100;
168 mmx
+=(float)mouse
.xspeed
/100;
169 /*tox-=(float)mouse.xspeed/10;
170 toy-=(float)mouse.yspeed/10;*/
183 //mx=2+sin(rot*2)*1.8;
185 //my+=(float)mouse.yspeed/50;
190 blokx[x][y]=(x-20)*mx;
191 bloky[x][y]=(y-13)*my;
194 make_tuntab(mx
,0,rot
,ox
*-2,oy
,mulx
,muly
,tox
,toy
);
195 stampblok(vmem
,text1
);
196 make_tuntab(mx
,my
,rot
,ox
*5,oy
,mulx
*mmx
,muly
,tox
,toy
);
197 stampblok(vm1
,text2
);
198 make_tuntab(mx
,my
,rot
,ox
*-2,oy
,mulx
*1.3,muly
,tox
,toy
);
199 stampblok(vm2
,text1
);
202 if (vm2
[i
]>mx
) vm1
[i
]=128-ltab
[80+vm1
[i
]];
204 //for(i=0;i<64000;i++)
205 // if (vmem[i]<mx) vmem[i]=vm2[i];
208 if (vmem
[i
]<mx
) vmem
[i
]=vm1
[i
]+128;
210 //KDPsetColor(0,0,0,0);
212 //KDPsetColor(0,255,0,0);