]> 4ch.mooo.com Git - plz.git/blobdiff - PLZPART/PLZ.C
wwww
[plz.git] / PLZPART / PLZ.C
index 420736d32d490610fcf7764192ec4ca44ee1d617..085fa8d39f52273405b244e6347ab32b8bda58dd 100755 (executable)
@@ -1,11 +1,17 @@
 #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 <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
 \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
@@ -28,9 +34,13 @@ extern  far int do_pal;
 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
+//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
 \r
 //int (* vmem)[LINELEN]=MK_FP(0x0a000,0);\r
 //char psini[16384]=\r
@@ -38,10 +48,12 @@ extern int far lsini16[8192];
 //char lsini[16384]=\r
 //#include "lsini.pre"\r
 \r
+void init_plz(void);\r
+\r
 char   ptau[256]=\r
 #include "ptau.pre"\r
 \r
-int    pals[6][768];\r
+int16_t        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
@@ -59,28 +71,35 @@ 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
-plz(){\r
-       register int x,y;\r
-       int     *ptr;\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
        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
 \r
        init_plz();\r
        cop_drop=128;\r
-       cop_fadepal=pals[curpal++];\r
+       cop_fadepal=(char *)pals[curpal++];\r
 \r
        frame_count=0;\r
        while(!dis_exit())\r
                {\r
                tim+=frame_count; frame_count=0; count++;\r
-               if(dis_getmframe()>timetable[ttptr])\r
+               if(fixme_dis_getmframe()>timetable[ttptr])\r
                        {\r
                        memset(fadepal,0,768);\r
                        cop_drop=1;\r
-                       cop_fadepal=pals[curpal++];\r
+                       cop_fadepal=(char *)pals[curpal++];\r
                        ttptr++;\r
                        il1=inittable[ttptr][0];\r
                        il2=inittable[ttptr][1];\r
@@ -93,47 +112,53 @@ plz(){
                        }\r
                if(curpal==5 && cop_drop>64) break;\r
 \r
-               asm     mov dx, 3c4h\r
-               asm     mov ax, 0a02h\r
-               asm     out dx, ax\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
 \r
                setplzparas(k1,k2,k3,k4);\r
                for(y=0;y<MAXY;y+=2)\r
-                       plzline(y,0x0a000+y*6+YADD*6);\r
+                       plzline(y,y*6+YADD*6);\r
                setplzparas(l1,l2,l3,l4);\r
                for(y=1;y<MAXY;y+=2)\r
-                       plzline(y,0x0a000+y*6+YADD*6);\r
+                       plzline(y,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
-               asm     mov dx, 3c4h\r
-               asm     mov ax, 0502h\r
-               asm     out dx, ax\r
+               vga_select_bitplanes_13();\r
 \r
                setplzparas(k1,k2,k3,k4);\r
                for(y=1;y<MAXY;y+=2)\r
-                       plzline(y,0x0a000+y*6+YADD*6);\r
+                       plzline(y,y*6+YADD*6);\r
                setplzparas(l1,l2,l3,l4);\r
                for(y=0;y<MAXY;y+=2)\r
-                       plzline(y,0x0a000+y*6+YADD*6);\r
+                       plzline(y,y*6+YADD*6);\r
+\r
+               vga_show_framebuffer();\r
+               draw_bg();\r
+               swap_buffers();\r
                }\r
-       cop_drop=0; frame_count=0; while(frame_count==0);\r
+       cop_drop=0; frame_count=0; //while(frame_count==0);\r
        set_plzstart(500);\r
        cop_plz=0;\r
        }\r
 \r
-init_plz()\r
+void init_plz()\r
        {\r
-       int     a,b,c,z;\r
-       int     *pptr=pals;\r
+       int     a/*,b,c,z*/;\r
+       int16_t *pptr=(int16_t *)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
@@ -142,36 +167,14 @@ 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
-               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
 \r
-       fprintf(f4,"{\n%d",ptau[0]=0);\r
        for(a=1;a<=128;a++)\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
+               ptau[a]=cos(a*DPII/128+3.1415926535)*31+32;\r
        }\r
 #endif\r
+\r
        tw_opengraph2();\r
        cop_start=96*(682-400);\r
        set_plzstart(60);\r
@@ -212,7 +215,7 @@ 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;\r
+       pptr=&pals[0][0];\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