]> 4ch.mooo.com Git - plz.git/blobdiff - plzpart/plz.c
i dunot know why it dose not work wwww
[plz.git] / plzpart / plz.c
index 085fa8d39f52273405b244e6347ab32b8bda58dd..e6a2b9cd222022f7ac1de5f324b4fb74e5d5cf0c 100755 (executable)
@@ -1,17 +1,12 @@
 #include <stdio.h>\r
-#include <stdlib.h>\r
-#include <string.h>\r
 #include <math.h>\r
-//#include <conio.h>\r
-//#include <dos.h>\r
-#include "tweak.h"\r
-#include "../dis/dis.h"\r
-#include "opengl.h"\r
-#include "graphics.h"\r
-#include "common.h"\r
+#include <conio.h>\r
+#include <dos.h>\r
+#include "plz.h"\r
+//#include "tweak.h"\r
 \r
-#define DO_TABLES\r
-#define DPII (3.1415926535*2.0)\r
+//#define DO_TABLES\r
+//#define DPII (3.1415926535*2.0)\r
 \r
 #define LINELEN 41\r
 #define MAXY 280\r
 #define SINMASK 4095\r
 #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;\r
 \r
-extern int init_copper();\r
-extern int close_copper();\r
-extern int far frame_count;\r
+// extern int init_copper();\r
+// extern int close_copper();\r
+//extern int far frame_count;\r
+int far frame_count;\r
 extern int far cop_drop;\r
 extern int far cop_plz;\r
 extern int far cop_start;\r
-extern char far * far cop_fadepal;\r
-extern char far fadepal[768];\r
-extern  far char * far cop_pal;\r
-extern  far int do_pal;\r
-\r
-extern int plzline(int y, int vseg);\r
-extern int setplzparas(int c1, int c2, int c3, int c4);\r
-extern int set_plzstart(int y);\r
-//extern char far psini[16384];\r
-//extern int far lsini4[8192];\r
-//extern int far lsini16[8192];\r
-\r
-unsigned char *psini;\r
-short *lsini4;\r
-short *lsini16;\r
+extern char far * cop_fadepal;\r
+extern char fadepal[768];\r
+extern char far *cop_pal;\r
+extern int  do_pal;\r
+\r
+//extern int plzline(int y, int vseg);\r
+//extern int setplzparas(int c1, int c2, int c3, int c4);\r
+//extern int set_plzstart(int y);\r
+extern char far psini[16384];\r
+extern int far lsini4[8192];\r
+extern int far lsini16[8192];\r
 \r
 //int (* vmem)[LINELEN]=MK_FP(0x0a000,0);\r
 //char psini[16384]=\r
@@ -48,12 +40,10 @@ short *lsini16;
 //char lsini[16384]=\r
 //#include "lsini.pre"\r
 \r
-void init_plz(void);\r
-\r
 char   ptau[256]=\r
 #include "ptau.pre"\r
 \r
-int16_t        pals[6][768];\r
+int    pals[6][768];\r
 int    curpal=0;\r
 int    timetable[10]={64*6*2-45,64*6*4-45,64*6*5-45,64*6*6-45,64*6*7+90,0};\r
 int    ttptr=0;\r
@@ -71,35 +61,28 @@ int inittable[10][8]={{1000,2000,3000,4000,3500,2300,3900,3670},
                          {1000,2000,3000,4000,3500,2300,3900,3670},\r
                          {1000,2000,3000,4000,3500,2300,3900,3670}};\r
 \r
-int fixme_dis_getmframe()\r
-{\r
-        static int s_nResult = 0;\r
-        s_nResult++;\r
-        return s_nResult;\r
-}\r
-\r
 void plz(){\r
-       register int /*x,*/y;\r
-       //int   *ptr;\r
+       register int x,y;\r
+       int     *ptr;\r
        long    tim=0,count=0;\r
-       //int   ch=0,sync=2;\r
+       int     ch=0,sync=2;\r
 \r
-       while(dis_musplus()<0 && !dis_exit());\r
-       dis_setmframe(0);\r
+       //while(dis_musplus()<0 && !dis_exit());\r
+       //dis_setmframe(0);\r
 \r
        init_plz();\r
        cop_drop=128;\r
-       cop_fadepal=(char *)pals[curpal++];\r
+       cop_fadepal=(char far *)pals[curpal++];\r
 \r
        frame_count=0;\r
-       while(!dis_exit())\r
+       while(!kbhit())\r
                {\r
                tim+=frame_count; frame_count=0; count++;\r
-               if(fixme_dis_getmframe()>timetable[ttptr])\r
-                       {\r
+               //if(dis_getmframe()>timetable[ttptr])\r
+               //      {\r
                        memset(fadepal,0,768);\r
                        cop_drop=1;\r
-                       cop_fadepal=(char *)pals[curpal++];\r
+                       cop_fadepal=(char far *)pals[curpal++];\r
                        ttptr++;\r
                        il1=inittable[ttptr][0];\r
                        il2=inittable[ttptr][1];\r
@@ -109,40 +92,37 @@ void plz(){
                        ik2=inittable[ttptr][5];\r
                        ik3=inittable[ttptr][6];\r
                        ik4=inittable[ttptr][7];\r
-                       }\r
+               //      }\r
                if(curpal==5 && cop_drop>64) break;\r
 \r
-               // [nk] VGA: select bit planes 0,2 (?)\r
-               //asm   mov dx, 3c4h\r
-               //asm   mov ax, 0a02h\r
-               //asm   out dx, ax\r
-\r
-               vga_select_bitplanes_02();\r
+               __asm\r
+               {\r
+                       mov dx, 3c4h\r
+                       mov ax, 0a02h\r
+                       out dx, ax\r
+               }\r
 \r
                setplzparas(k1,k2,k3,k4);\r
                for(y=0;y<MAXY;y+=2)\r
-                       plzline(y,y*6+YADD*6);\r
+                       plzline(y,0x0a000+y*6+YADD*6);\r
                setplzparas(l1,l2,l3,l4);\r
                for(y=1;y<MAXY;y+=2)\r
-                       plzline(y,y*6+YADD*6);\r
+                       plzline(y,0x0a000+y*6+YADD*6);\r
 \r
-               // [nk] VGA: select bit planes 1,3 (?)\r
-               //asm   mov dx, 3c4h\r
-               //asm   mov ax, 0502h\r
-               //asm   out dx, ax\r
 \r
-               vga_select_bitplanes_13();\r
+               __asm\r
+               {\r
+                       mov dx, 3c4h\r
+                       mov ax, 0502h\r
+                       out dx, ax\r
+               }\r
 \r
                setplzparas(k1,k2,k3,k4);\r
                for(y=1;y<MAXY;y+=2)\r
-                       plzline(y,y*6+YADD*6);\r
+                       plzline(y,0x0a000+y*6+YADD*6);\r
                setplzparas(l1,l2,l3,l4);\r
                for(y=0;y<MAXY;y+=2)\r
-                       plzline(y,y*6+YADD*6);\r
-\r
-               vga_show_framebuffer();\r
-               draw_bg();\r
-               swap_buffers();\r
+                       plzline(y,0x0a000+y*6+YADD*6);\r
                }\r
        cop_drop=0; frame_count=0; //while(frame_count==0);\r
        set_plzstart(500);\r
@@ -151,14 +131,17 @@ void plz(){
 \r
 void init_plz()\r
        {\r
-       int     a/*,b,c,z*/;\r
-       int16_t *pptr=(int16_t *)pals;\r
+       int     a,b,c,z;\r
+       int     *pptr=pals;\r
 \r
-       psini = malloc(16384 + 2 * 8192 + 2 * 8192);\r
-       lsini4 = (short *)psini + 8192;\r
-       lsini16 = lsini4 + 8192;\r
-       \r
 #ifdef DO_TABLES\r
+       {\r
+       FILE    *f1,*f2,*f3,*f4;\r
+       f1=fopen("lsini4.inc","wb");\r
+       f2=fopen("lsini16.inc","wb");\r
+       f3=fopen("psini.inc","wb");\r
+       f4=fopen("ptau.inc","wb");\r
+\r
        for(a=0;a<1024*16;a++)\r
                {\r
                if(a<1024*8)\r
@@ -167,14 +150,36 @@ void init_plz()
                        lsini16[a]=(sin(a*DPII/4096)*55+sin(a*DPII/4096*4)*5+sin(a*DPII/4096*17)*3+64)*16;\r
                        }\r
                psini[a]=sin(a*DPII/4096)*55+sin(a*DPII/4096*6)*5+sin(a*DPII/4096*21)*4+64;\r
-       }\r
+               if((a&15)==0)\r
+                       {\r
+                       if(a<1024*8)\r
+                               {\r
+                               fprintf(f1,"\ndw        %4d",lsini4[a]);\r
+                               fprintf(f2,"\ndw        %4d",lsini16[a]);\r
+                               }\r
+                       fprintf(f3,"\ndb        %4d",psini[a]);\r
+                       }\r
+               else    {\r
+                       if(a<1024*8)\r
+                               {\r
+                               fprintf(f1,",%4d",lsini4[a]);\r
+                               fprintf(f2,",%4d",lsini16[a]);\r
+                               }\r
+                       fprintf(f3,",%4d",psini[a]);\r
+                       }\r
+               }\r
 \r
+       fprintf(f4,"{\n%d",ptau[0]=0);\r
        for(a=1;a<=128;a++)\r
-       {\r
-               ptau[a]=cos(a*DPII/128+3.1415926535)*31+32;\r
+               {\r
+               fprintf(f4,",%3d",ptau[a]=cos(a*DPII/128+3.1415926535)*31+32);\r
+               if(!(a&15)) fputc('\n',f4);\r
+               }\r
+       fputc('}',f4); fputc(';',f4);\r
+\r
+       fclose(f1); fclose(f2); fclose(f3); fclose(f4);\r
        }\r
 #endif\r
-\r
        tw_opengraph2();\r
        cop_start=96*(682-400);\r
        set_plzstart(60);\r
@@ -215,7 +220,7 @@ void init_plz()
        for(a=0;a<106;a++)*pptr++=0,*pptr++=0,*pptr++=0;\r
        for(a=0;a<75;a++) *pptr++=ptau[a*64/75]*8/10,*pptr++=ptau[a*64/75]*9/10,*pptr++=ptau[a*64/75];\r
 \r
-       pptr=&pals[0][0];\r
+       pptr=pals;\r
        for(a=0;a<768;a++,pptr++) *pptr=(*pptr-63)*2;\r
        for(a=768;a<768*5;a++,pptr++) *pptr*=8;\r
        }\r