Upload
This commit is contained in:
commit
43352ff262
1291 changed files with 220976 additions and 0 deletions
219
PLZPART/PLZ.C
Normal file
219
PLZPART/PLZ.C
Normal file
|
|
@ -0,0 +1,219 @@
|
|||
#include <stdio.h>
|
||||
#include <math.h>
|
||||
#include <conio.h>
|
||||
#include <dos.h>
|
||||
#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<MAXY;y+=2)
|
||||
plzline(y,0x0a000+y*6+YADD*6);
|
||||
setplzparas(l1,l2,l3,l4);
|
||||
for(y=1;y<MAXY;y+=2)
|
||||
plzline(y,0x0a000+y*6+YADD*6);
|
||||
|
||||
|
||||
asm mov dx, 3c4h
|
||||
asm mov ax, 0502h
|
||||
asm out dx, ax
|
||||
|
||||
setplzparas(k1,k2,k3,k4);
|
||||
for(y=1;y<MAXY;y+=2)
|
||||
plzline(y,0x0a000+y*6+YADD*6);
|
||||
setplzparas(l1,l2,l3,l4);
|
||||
for(y=0;y<MAXY;y+=2)
|
||||
plzline(y,0x0a000+y*6+YADD*6);
|
||||
}
|
||||
cop_drop=0; frame_count=0; while(frame_count==0);
|
||||
set_plzstart(500);
|
||||
cop_plz=0;
|
||||
}
|
||||
|
||||
init_plz()
|
||||
{
|
||||
int a,b,c,z;
|
||||
int *pptr=pals;
|
||||
|
||||
#ifdef DO_TABLES
|
||||
{
|
||||
FILE *f1,*f2,*f3,*f4;
|
||||
f1=fopen("lsini4.inc","wb");
|
||||
f2=fopen("lsini16.inc","wb");
|
||||
f3=fopen("psini.inc","wb");
|
||||
f4=fopen("ptau.inc","wb");
|
||||
|
||||
for(a=0;a<1024*16;a++)
|
||||
{
|
||||
if(a<1024*8)
|
||||
{
|
||||
lsini4[a]=(sin(a*DPII/4096)*55+sin(a*DPII/4096*5)*8+sin(a*DPII/4096*15)*2+64)*8;
|
||||
lsini16[a]=(sin(a*DPII/4096)*55+sin(a*DPII/4096*4)*5+sin(a*DPII/4096*17)*3+64)*16;
|
||||
}
|
||||
psini[a]=sin(a*DPII/4096)*55+sin(a*DPII/4096*6)*5+sin(a*DPII/4096*21)*4+64;
|
||||
if((a&15)==0)
|
||||
{
|
||||
if(a<1024*8)
|
||||
{
|
||||
fprintf(f1,"\ndw %4d",lsini4[a]);
|
||||
fprintf(f2,"\ndw %4d",lsini16[a]);
|
||||
}
|
||||
fprintf(f3,"\ndb %4d",psini[a]);
|
||||
}
|
||||
else {
|
||||
if(a<1024*8)
|
||||
{
|
||||
fprintf(f1,",%4d",lsini4[a]);
|
||||
fprintf(f2,",%4d",lsini16[a]);
|
||||
}
|
||||
fprintf(f3,",%4d",psini[a]);
|
||||
}
|
||||
}
|
||||
|
||||
fprintf(f4,"{\n%d",ptau[0]=0);
|
||||
for(a=1;a<=128;a++)
|
||||
{
|
||||
fprintf(f4,",%3d",ptau[a]=cos(a*DPII/128+3.1415926535)*31+32);
|
||||
if(!(a&15)) fputc('\n',f4);
|
||||
}
|
||||
fputc('}',f4); fputc(';',f4);
|
||||
|
||||
fclose(f1); fclose(f2); fclose(f3); fclose(f4);
|
||||
}
|
||||
#endif
|
||||
tw_opengraph2();
|
||||
cop_start=96*(682-400);
|
||||
set_plzstart(60);
|
||||
init_copper();
|
||||
for(a=0;a<256;a++) tw_setrgbpalette(a,63,63,63);
|
||||
|
||||
// RGB
|
||||
pptr=&pals[0][3];
|
||||
for(a=1;a<64;a++) *pptr++=ptau[a ],*pptr++=ptau[0 ],*pptr++=ptau[0 ];
|
||||
for(a=0;a<64;a++) *pptr++=ptau[63-a],*pptr++=ptau[0 ],*pptr++=ptau[0 ];
|
||||
for(a=0;a<64;a++) *pptr++=ptau[0 ],*pptr++=ptau[0 ],*pptr++=ptau[a];
|
||||
for(a=0;a<64;a++) *pptr++=ptau[a ],*pptr++=ptau[0 ],*pptr++=ptau[63-a];
|
||||
|
||||
// RB-black
|
||||
pptr=&pals[1][3];
|
||||
for(a=1;a<64;a++) *pptr++=ptau[a ],*pptr++=ptau[0 ],*pptr++=ptau[0 ];
|
||||
for(a=0;a<64;a++) *pptr++=ptau[63-a],*pptr++=ptau[0 ],*pptr++=ptau[a ];
|
||||
for(a=0;a<64;a++) *pptr++=ptau[0 ],*pptr++=ptau[a ],*pptr++=ptau[63-a];
|
||||
for(a=0;a<64;a++) *pptr++=ptau[a ],*pptr++=ptau[63 ],*pptr++=ptau[a ];
|
||||
|
||||
// RB-white
|
||||
pptr=&pals[3][3];
|
||||
for(a=1;a<64;a++) *pptr++=ptau[a ],*pptr++=ptau[0 ],*pptr++=ptau[0 ];
|
||||
for(a=0;a<64;a++) *pptr++=ptau[63 ],*pptr++=ptau[a ],*pptr++=ptau[a ];
|
||||
for(a=0;a<64;a++) *pptr++=ptau[63-a],*pptr++=ptau[63-a],*pptr++=ptau[63 ];
|
||||
for(a=0;a<64;a++) *pptr++=ptau[0 ],*pptr++=ptau[0 ],*pptr++=ptau[63 ];
|
||||
|
||||
// white
|
||||
pptr=&pals[2][3];
|
||||
for(a=1;a<64;a++) *pptr++=ptau[0 ]/2,*pptr++=ptau[0 ]/2,*pptr++=ptau[0 ]/2;
|
||||
for(a=0;a<64;a++) *pptr++=ptau[a ]/2,*pptr++=ptau[a ]/2,*pptr++=ptau[a ]/2;
|
||||
for(a=0;a<64;a++) *pptr++=ptau[63-a]/2,*pptr++=ptau[63-a]/2,*pptr++=ptau[63-a]/2;
|
||||
for(a=0;a<64;a++) *pptr++=ptau[0 ]/2,*pptr++=ptau[0 ]/2,*pptr++=ptau[0 ]/2;
|
||||
|
||||
// white II
|
||||
pptr=&pals[4][3];
|
||||
for(a=1;a<75;a++) *pptr++=ptau[63-a*64/75],*pptr++=ptau[63-a*64/75],*pptr++=ptau[63-a*64/75];
|
||||
for(a=0;a<106;a++)*pptr++=0,*pptr++=0,*pptr++=0;
|
||||
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];
|
||||
|
||||
pptr=pals;
|
||||
for(a=0;a<768;a++,pptr++) *pptr=(*pptr-63)*2;
|
||||
for(a=768;a<768*5;a++,pptr++) *pptr*=8;
|
||||
}
|
||||
|
||||
Loading…
Reference in a new issue