SecondReality/CREDITS/MAIN.C
2017-09-24 01:45:36 +02:00

318 lines
6.9 KiB
C

#include <conio.h>
#include <mem.h>
#include "h:\u2\dis\dis.h"
char *prtc(int x,int y,char *txt);
extern char pic1[];
extern char pic2[];
extern char pic3[];
extern char pic4[];
extern char pic5[];
extern char pic5b[];
extern char pic6[];
extern char pic7[];
extern char pic8[];
extern char pic9[];
extern char pic10[];
extern char pic10b[];
extern char pic11[];
extern char pic12[];
extern char pic13[];
extern char pic14[];
extern char pic14b[];
extern char pic15[];
extern char pic16[];
extern char pic17[];
extern char pic18[];
#define FONAY 32
extern char far font[FONAY][1500];
char *fonaorder="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789/?!:,.\"()+-";
int fonap[256];
int fonaw[256];
main() {
dis_partstart();
init();
tw_opengraph();
tw_setstart(160*200);
if(!dis_exit()) screenin(pic1,
"GRAPHICS - MARVEL\0"
"MUSIC - SKAVEN\0"
"CODE - WILDFIRE\0"
);
if(!dis_exit()) screenin(pic2,
"GRAPHICS - MARVEL\0"
"MUSIC - SKAVEN\0"
"CODE - PSI\0"
);
if(!dis_exit()) screenin(pic3,
"GRAPHICS - MARVEL\0"
"MUSIC - SKAVEN\0"
"CODE - WILDFIRE\0"
"ANIMATION - TRUG\0"
);
if(!dis_exit()) screenin(pic4,
"\0GRAPHICS - PIXEL\0"
);
if(!dis_exit()) screenin(pic5,
"GRAPHICS - PIXEL\0"
"MUSIC - PURPLE MOTION\0"
"CODE - PSI\0"
);
if(!dis_exit()) screenin(pic5b,
"\0MUSIC - PURPLE MOTION\0"
"CODE - TRUG\0"
);
if(!dis_exit()) screenin(pic6,
"\0MUSIC - PURPLE MOTION\0"
"CODE - PSI\0"
);
if(!dis_exit()) screenin(pic7,
"\0MUSIC - PURPLE MOTION\0"
"CODE - PSI\0"
);
if(!dis_exit()) screenin(pic8,
"\0GRAPHICS - PIXEL\0"
"MUSIC - PURPLE MOTION\0"
);
if(!dis_exit()) screenin(pic9,
"GRAPHICS - PIXEL\0"
"MUSIC - PURPLE MOTION\0"
"CODE - TRUG\0"
"RENDERING - TRUG\0"
);
if(!dis_exit()) screenin(pic10,
"GRAPHICS - PIXEL, SKAVEN\0"
"MUSIC - PURPLE MOTION\0"
"CODE - PSI\0"
);
if(!dis_exit()) screenin(pic10b,
"GRAPHICS - PIXEL, SKAVEN\0"
"MUSIC - PURPLE MOTION\0"
"CODE - PSI\0"
);
if(!dis_exit()) screenin(pic11,
"\0MUSIC - PURPLE MOTION\0"
"CODE - WILDFIRE\0"
);
if(!dis_exit()) screenin(pic12,
"\0MUSIC - PURPLE MOTION\0"
"CODE - WILDFIRE\0"
);
if(!dis_exit()) screenin(pic13,
"\0MUSIC - PURPLE MOTION\0"
"CODE - PSI\0"
);
if(!dis_exit()) screenin(pic14,
"GRAPHICS - PIXEL\0"
"MUSIC - PURPLE MOTION\0"
"CODE - TRUG\0"
"RENDERING - TRUG\0"
);
if(!dis_exit()) screenin(pic14b,
"\0MUSIC - PURPLE MOTION\0"
"CODE - PSI\0"
);
if(!dis_exit()) screenin(pic15,
"GRAPHICS - MARVEL\0"
"MUSIC - PURPLE MOTION\0"
"CODE - PSI\0"
);
if(!dis_exit()) screenin(pic16,
"\0MUSIC - SKAVEN\0"
"CODE - PSI\0"
);
if(!dis_exit()) screenin(pic17,
"\0GRAPHICS - PIXEL\0"
"MUSIC - PURPLE MOTION\0"
);
if(!dis_exit()) screenin(pic18,
"GRAPHICS - PIXEL\0"
"MUSIC - PURPLE MOTION\0"
"CODE - WILDFIRE\0"
);
//tw_closegraph();
}
screenin(char (* pic)[160], char *text)
{
int a,x,y,yy,v;
tw_setsplit(400);
tw_clrscr();
tw_setstart(160*200);
dis_waitb();
tw_setpalette(&pic[0][16]);
pic=&pic[0][784];
y=16;while(*(text=prtc(160,y,text))) y+=FONAY+10;
for(x=0;x<160;x++) for(y=0;y<100;y++) tw_putpixel(400+x,400+y*2,pic[y][x]+16);
for(y=200*128;y>0;y=y*12L/13)
{
dis_waitb();
tw_setsplit(y/128+200);
yy=320-y/80;
for(a=0;a<10000;a++);
tw_setstart(160*200+(yy/4));
asm {
mov dx, 0x3c0
mov al, 0x33
out dx, al
mov ax, yy
and ax, 3
shl ax, 1
out dx, al
}
}
for(a=0;a<200 && !dis_exit();a++) dis_waitb();
for(y=0,v=0;y<128*200;y=y+v,v+=15)
{
dis_waitb();
tw_setsplit(y/128+200);
yy=320+y/80;
for(a=0;a<10000;a++);
tw_setstart(160*200+(yy/4));
asm {
mov dx, 0x3c0
mov al, 0x33
out dx, al
mov ax, yy
and ax, 3
shl ax, 1
out dx, al
}
}
}
prt(int x,int y,char *txt)
{
int x2w,x2,y2,y2w=y+FONAY,sx,d;
while(*txt)
{
x2w=fonaw[*txt]+x;
sx=fonap[*txt];
for(x2=x;x2<x2w;x2++)
{
for(y2=y;y2<y2w;y2++)
{
d=font[y2-y][sx];
tw_putpixel(x2,y2,d);
}
sx++;
}
x=x2+2;
txt++;
}
}
char *prtc(int x,int y,char *txt)
{
int w=0;
char *t=txt;
while(*t) w+=fonaw[*t++]+2;
prt(x-w/2,y,txt);
return(t+1);
}
init()
{
int x,y,a,b;
for(x=0;x<1500 && *fonaorder;)
{
while(x<1500)
{
for(y=0;y<FONAY;y++) if(font[y][x]) break;
if(y!=FONAY) break;
x++;
}
b=x;
while(x<1500)
{
for(y=0;y<FONAY;y++) if(font[y][x]) break;
if(y==FONAY) break;
x++;
}
//printf("%c: %i %i\n",*fonaorder,b,x-b);
fonap[*fonaorder]=b;
fonaw[*fonaorder]=x-b;
fonaorder++;
}
fonap[32]=1500-32;
fonaw[32]=8;
memmove(&pic1[16*3+16],&pic1[16],768-16*3);
memmove(&pic2[16*3+16],&pic2[16],768-16*3);
memmove(&pic3[16*3+16],&pic3[16],768-16*3);
memmove(&pic4[16*3+16],&pic4[16],768-16*3);
memmove(&pic5[16*3+16],&pic5[16],768-16*3);
memmove(&pic5b[16*3+16],&pic5b[16],768-16*3);
memmove(&pic6[16*3+16],&pic6[16],768-16*3);
memmove(&pic7[16*3+16],&pic7[16],768-16*3);
memmove(&pic8[16*3+16],&pic8[16],768-16*3);
memmove(&pic9[16*3+16],&pic9[16],768-16*3);
memmove(&pic10[16*3+16],&pic10[16],768-16*3);
memmove(&pic10b[16*3+16],&pic10b[16],768-16*3);
memmove(&pic11[16*3+16],&pic11[16],768-16*3);
memmove(&pic12[16*3+16],&pic12[16],768-16*3);
memmove(&pic13[16*3+16],&pic13[16],768-16*3);
memmove(&pic14[16*3+16],&pic14[16],768-16*3);
memmove(&pic14b[16*3+16],&pic14b[16],768-16*3);
memmove(&pic15[16*3+16],&pic15[16],768-16*3);
memmove(&pic16[16*3+16],&pic16[16],768-16*3);
memmove(&pic17[16*3+16],&pic17[16],768-16*3);
memmove(&pic18[16*3+16],&pic18[16],768-16*3);
for(a=0;a<10;a++)
{
pic1[a*3+0+16]=pic1[a*3+1+16]=pic1[a*3+2+16]=7*a;
pic2[a*3+0+16]=pic2[a*3+1+16]=pic2[a*3+2+16]=7*a;
pic3[a*3+0+16]=pic3[a*3+1+16]=pic3[a*3+2+16]=7*a;
pic4[a*3+0+16]=pic4[a*3+1+16]=pic4[a*3+2+16]=7*a;
pic5[a*3+0+16]=pic5[a*3+1+16]=pic5[a*3+2+16]=7*a;
pic5b[a*3+0+16]=pic5b[a*3+1+16]=pic5b[a*3+2+16]=7*a;
pic6[a*3+0+16]=pic6[a*3+1+16]=pic6[a*3+2+16]=7*a;
pic7[a*3+0+16]=pic7[a*3+1+16]=pic7[a*3+2+16]=7*a;
pic8[a*3+0+16]=pic8[a*3+1+16]=pic8[a*3+2+16]=7*a;
pic9[a*3+0+16]=pic9[a*3+1+16]=pic9[a*3+2+16]=7*a;
pic10[a*3+0+16]=pic10[a*3+1+16]=pic10[a*3+2+16]=7*a;
pic10b[a*3+0+16]=pic10b[a*3+1+16]=pic10b[a*3+2+16]=7*a;
pic11[a*3+0+16]=pic11[a*3+1+16]=pic11[a*3+2+16]=7*a;
pic12[a*3+0+16]=pic12[a*3+1+16]=pic12[a*3+2+16]=7*a;
pic13[a*3+0+16]=pic13[a*3+1+16]=pic13[a*3+2+16]=7*a;
pic14[a*3+0+16]=pic14[a*3+1+16]=pic14[a*3+2+16]=7*a;
pic14b[a*3+0+16]=pic14b[a*3+1+16]=pic14b[a*3+2+16]=7*a;
pic15[a*3+0+16]=pic15[a*3+1+16]=pic15[a*3+2+16]=7*a;
pic16[a*3+0+16]=pic16[a*3+1+16]=pic16[a*3+2+16]=7*a;
pic17[a*3+0+16]=pic17[a*3+1+16]=pic17[a*3+2+16]=7*a;
pic18[a*3+0+16]=pic18[a*3+1+16]=pic18[a*3+2+16]=7*a;
}
}