#include #include #include #include #include "tweak.h" //#define DO_TABLES //#define DPII (3.1415926535*2.0) #define LINELEN 41 #define MAXY 280 #define YADD 0 #define XADD 0 #define SINMASK 4095 #define PLZSINI(p1,p2,p3,p4) *ptr++ = (psini[x*32+lsini[y*2+p2]*16+p1] + psini[y*4+lsini[x*64+p4]*4+p3]) + (psini[x*32+16+lsini[y*2+p2]*16+p1] + psini[y*4+lsini[x*64+32+p4]*4+p3])*256; extern int init_copper(); extern int close_copper(); extern int far frame_count; extern int far cop_drop; extern int far cop_plz; extern int far cop_start; extern char far * far cop_fadepal; extern char far fadepal[768]; extern far char * far cop_pal; extern far int do_pal; extern int plzline(int y, int vseg); extern int setplzparas(int c1, int c2, int c3, int c4); extern int set_plzstart(int y); extern char far psini[16384]; extern int far lsini4[8192]; extern int far lsini16[8192]; //int (* vmem)[LINELEN]=MK_FP(0x0a000,0); //char psini[16384]= //#include "psini.pre" //char lsini[16384]= //#include "lsini.pre" char ptau[256]= #include "ptau.pre" int pals[6][768]; int curpal=0; int timetable[10]={64*6*2-45,64*6*4-45,64*6*5-45,64*6*6-45,64*6*7+90,0}; int ttptr=0; int l1=1000, l2=2000, l3=3000, l4=4000; int k1=3500, k2=2300, k3=3900, k4=3670; int il1=1000, il2=2000, il3=3000, il4=4000; int ik1=3500, ik2=2300, ik3=3900, ik4=3670; int inittable[10][8]={{1000,2000,3000,4000,3500,2300,3900,3670}, {1000,2000,4000,4000,1500,2300,3900,1670}, {3500,1000,3000,1000,3500,3300,2900,2670}, {1000,2000,3000,4000,3500,2300,3900,3670}, {1000,2000,3000,4000,3500,2300,3900,3670}, {1000,2000,3000,4000,3500,2300,3900,3670}}; plz(){ register int x,y; int *ptr; long tim=0,count=0; int ch=0,sync=2; while(dis_musplus()<0 && !dis_exit()); dis_setmframe(0); init_plz(); cop_drop=128; cop_fadepal=pals[curpal++]; frame_count=0; while(!dis_exit()) { tim+=frame_count; frame_count=0; count++; if(dis_getmframe()>timetable[ttptr]) { memset(fadepal,0,768); cop_drop=1; cop_fadepal=pals[curpal++]; ttptr++; il1=inittable[ttptr][0]; il2=inittable[ttptr][1]; il3=inittable[ttptr][2]; il4=inittable[ttptr][3]; ik1=inittable[ttptr][4]; ik2=inittable[ttptr][5]; ik3=inittable[ttptr][6]; ik4=inittable[ttptr][7]; } if(curpal==5 && cop_drop>64) break; asm mov dx, 3c4h asm mov ax, 0a02h asm out dx, ax setplzparas(k1,k2,k3,k4); for(y=0;y