Mercurial > hg > forks > pwpunix
view oldchsool/main.c @ 71:a87eb778f225
Improvements to the MinGW crossbuild. Should now build with default tools
from Debian mingw packages, though you need Win32 version of libSDL with the
necessary headers and so on in addition. 64-bit builds not tested and
probably won't work. Tested on Debian 7.0, earlier won't work.
binutils-mingw-w64-i686 gcc-mingw-w64-i686 mingw-w64-i686-dev
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Tue, 14 Aug 2012 03:08:10 +0300 |
parents | acb5694e93d9 |
children | 475342949dcd |
line wrap: on
line source
#if 0 # include <stdio.h> # include <stdlib.h> # include <string.h> # include <unistd.h> #endif #include "pwplib.h" #define MAX(a,b) ((a)<(b)?(b):(a)) #define MIN(a,b) ((a)>(b)?(b):(a)) struct { int dsgtime; int flagz; int planemode; int enctime,enckode,enczoom,encspeed; int endfxt; int metsaemode; int bouncemode; }demovar; #define Z 128 #define z 128 #define K 19 u8 pwplogofield[16*16] = { 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, 3,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z, 3,3,3,3,11,3,z,0,z,3,3,11,11,11,3,3, z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z, 2,2,2,2,z,2,z,z,z,2,z,2,2,11,2,z, 2,z,z,2,z,2,z,2,z,2,z,2,z,z,2,z, 2,z,z,2,z,2,z,2,z,2,z,2,z,z,2,z, 2,2,2,2,z,2,z,2,z,2,z,2,2,2,2,z, 2,z,z,z,11,2,0,2,0,2,z,2,z,z,z,z, 2,z,z,z,z,2,2,2,2,2,z,2,z,z,z,z, z,1,z,z,1,z,1,z,z,z,1,z,z,1,1,z, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, 3,z,z,z,z,z,z,z,z,z,z,z,z,z,z,3, 3,z,z,z,z,z,3,1,3,1,z,1,1,z,z,3, 3,z,1,z,z,z,3,1,3,z,z,z,z,z,z,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 }; u8 pwpendfield[16*16] = { z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z, z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z, z,z,z,z,z,3,z,z,z,3,z,z,z,z,z,z, z,z,z,z,1,3,z,z,z,3,z,z,z,z,z,z, z,z,z,z,z,3,z,z,z,3,z,z,z,z,z,z, z,3,3,3,z,3,z,3,z,3,z,3,3,3,z,z, z,3,z,3,z,3,z,3,1,3,z,3,z,3,z,z, z,3,3,3,z,3,1,3,z,3,1,3,3,3,z,z, z,3,z,z,1,3,3,3,3,3,z,3,z,z,z,z, z,3,z,z,z,z,z,z,z,z,1,3,z,z,z,z, z,3,1,z,z,z,z,z,z,z,z,3,z,z,z,z, z,3,z,z,z,z,z,z,z,z,z,3,z,z,z,z, z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z, z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z, z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z, z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z }; u8 bartyblasefield[16*16] = { 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,z, 3,1,1,z,z,z,z,z,z,z,z,z,z,z,z,3, 3,z,z,1,z,z,z,z,z,z,z,z,z,z,z,3, 3,z,z,z,z,z,z,1,z,1,z,1,z,1,z,3, 3,1,K,z,K,z,K,z,K,z,K,z,K,z,z,3, 3,z,2,1,2,z,2,z,2,z,2,z,2,1,z,3, 3,z,2,z,2,z,2,1,2,1,2,1,2,z,z,3, 3,1,K,z,K,z,K,z,K,z,K,z,K,z,z,3, 3,z,2,z,2,z,2,1,2,z,2,z,2,z,z,z, 3,1,2,1,2,z,2,z,2,1,2,z,2,z,z,3, 3,z,K,1,K,z,K,z,K,z,K,1,K,1,z,3, 3,z,2,z,2,z,2,1,2,z,2,z,2,1,z,3, 3,z,2,1,2,z,2,z,2,1,2,z,2,z,z,3, 3,z,K,z,K,z,K,z,K,z,K,z,K,1,z,3, 3,z,1,1,z,1,z,z,1,z,1,z,z,z,z,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,z,3,3, }; u8 bdashfield[16*16]; /* u8 bdashfield[16*16] = { 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,Z,Z,Z,2,Z,Z,1,Z,Z,Z,2,Z,Z,Z,2, 2,Z,Z,Z,2,Z,Z,1,Z,Z,Z,2,Z,Z,Z,2, 2,Z,Z,Z,2,Z,Z,1,Z,Z,Z,2,Z,Z,Z,2, 2,Z,Z,Z,2,2,2,2,2,2,2,2,Z,Z,Z,2, 2,Z,Z,Z,Z,Z,3,Z,3,Z,Z,Z,Z,Z,Z,2, 2,Z,Z,Z,Z,Z,3,Z,3,Z,Z,Z,Z,Z,Z,2, 2,Z,Z,Z,Z,Z,0,Z,3,Z,Z,Z,Z,Z,Z,2, 2,Z,Z,Z,Z,Z,3,Z,3,Z,Z,Z,Z,Z,Z,2, 2,Z,Z,Z,Z,Z,3,Z,3,Z,Z,Z,Z,Z,Z,2, 2,Z,Z,Z,2,2,2,2,2,2,2,2,Z,Z,Z,2, 2,Z,Z,Z,2,Z,Z,1,Z,Z,Z,2,Z,Z,Z,2, 2,Z,Z,Z,2,Z,Z,1,Z,Z,Z,2,Z,Z,Z,2, 2,Z,Z,Z,2,Z,Z,1,Z,Z,Z,2,Z,Z,Z,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 }; */ #undef Z void rundemo() { int quit=0,clrfx=0,fx=0,subfx=0; pwplib_startup(); decompress_allbmp(); bwpals(); pwplib_buf= malloc(sizeof(u8)*pwplib_bufw*pwplib_bufh); if(!pwplib_setup(NOSOUND)) initplayer(); pwplib_prep_attr(); demovar.flagz=8|16; {demovar.dsgtime=0; demovar.endfxt=1<<30; demovar.metsaemode=0; while(!quit) { int t=pwplib_timer(); while(demovar.dsgtime<=t) { if(0==(demovar.dsgtime&15)) { simulate_bdash(bdashfield); } switch((int)demovar.dsgtime) { case(0): fx=8; subfx=0; memcpy(bdashfield,pwplogofield,256*sizeof(u8)); break; case(384): newtext(384,"OLDCHSOOL",0xff); break; case(256): fx=8; break; case(512-64): clrfx=1; subfx=fx=0; break; case(512-48): subfx++; break; case(512-16): subfx++; break; case(512-8): subfx++; break; case(512): fx=0;clrfx=5;subfx=0+16; newtext(512,"OLDCHSOOL\nTARKOTTAA",0xff);break; case(512+128): newtext(512+128,"SEMMOSTA\n TYYPPII\nJOKA OLI",0xff);break; case(512+256):newtext(512+256,"EKALLA\nASSENPLY\nMESSULLA",0xff);break; case(512+384): newtext(512+384,"JO ENNEN\n VUOTTA\n ZOOO",0xff); break; case(512+512):newtext(512+512,"OLDCHSOOL\n HEMMOT\n ON",0xff); break; case(1024+128): newtext(1024+128," HIRVE[N\nISOJA JA\n RUMIA",0xff); fx|=2; break; case(1024+256): newtext(1024+256,"NIILL[ ON\n TYTT\\\n YST[V[",0xff); break; /* case(1024+384-8): fadeoldsk(1024+384-32); break; */ case(1024+384): newtext(1024+384,"JA NE ON\n AMATTI\n KOLUSSA",0xff); break; case(1024+512): fx=2; subfx=17; clrfx=0; break; case(1024+512+128+64): fx=8|2;subfx=1; memcpy(bdashfield,bartyblasefield,256*sizeof(u8)); break; case(1024+512+256+64): fx=4|8;break; case(2048-128): fx=5; break; case(2048): newtext(2048,"OLDCHSOOL\nHEMMOILLA\n ON",0xff);break; case(2048+128): newtext(2048+128,"GOMONDORE\n NIMINEN\n TIETSKA",0xff);break; case(2048+256): newtext(2048+256,"SILL[ EI\nVOI EES\n PELATA",0xff);break; case(2048+384): newtext(2048+384,"MUUTA KU\n CUAKE\nYKK\\ST[",0xff);break; case(2048+512): newtext(2048+512,"OLDCHSOOL\nHEMMOILLE\n ON",0xff);fx=1;break; case(2048+512+128): newtext (2048+512+128, "ASEMPLY\nMESSUILLA\nOMA ALUE", 0xff); break; case(2048+512+256): newtext(2048+512+256,"JOSSA NE\nPIIKITT[[\nCANABISTA",0xff);fx=0;break; case(2048+512+384-16): fadeoldsk(2048+512+384-16); break; case(2048+512+384): newtext(2048+512+384,"JA PELAA\n CUACE\n YKK\\ST[",0xff);break; case(2048+1024): fx=8;subfx=2; break; case(2048+1024+139): case(2048+1024+128): case(2048+1024+80): case(2048+1024+109): case(2048+1024+137): case(2048+1024+112): case(2048+1024+99): case(2048+1024+140): case(2048+1024+200): case(2048+1024+220): case(2048+1024+190): bdashfield[16+11]=11; bdashfield[16+5]=11; bdashfield[16+9]=11; bdashfield[16+7]=11; bdashfield[64+11]=11; bdashfield[32+5]=11; bdashfield[96+9]=11; bdashfield[64+7]=11; break; case(2048+1024+512-64): fx=10; break; case(2048+1024+512): fx=2; newtext(2048+1024+512,"M[ HALUUN\n OLLA\nOLDCHSOOL",0xff); break; /* case(2048+1024+512+128): newtext(2048+1024+512+128,"MUN [ITIKI\nHALUU JA\n KOIRA",0xff); break; */ case(2048+1024+512+256): newtext(2048+1024+512+256,"OLDCHSOOL\nON SUURI\nPELASTUS",0xff); break; case(2048+1024+512+384): newtext(2048+1024+512+384,"JA AVAIN\nIKUISEEN\nEL[M[[N",0xff);break; case(2048+2048):fx=0;break; case(2048+2048+128):memcpy(bdashfield,pwpendfield,sizeof(u8)*256); fx=8;subfx=3;break; case(2048+2048+256): newtext(2048+2048+256," PWP\n STILL\nOVERRULES",0xff);break; case(2048+2048+512): newtext(2048+2048+512," DESIGN\nCODE ETC\nBY VIZNUT",0xff);break; case(2048+2048+768): newtext(2048+2048+768,"GREETZ TO\nALL THE\nELITEZ",0xff);break; case(2048+2048+1024): newtext(2048+2048+1024," PWP\nPRODUCTION\n ZOOI",0xff);break; case(2048+2048+1024-64): {int i=80;for(;i;i--){bdashfield[rand()&255]=11; bdashfield[rand()&255]=1;}}break; case(2048+2048+1024+256):quit=1;fx=0;break; /* ----- OLDCHSOOL HEMMOILLA ON GOMONDORE NIMINEN TIETSKA SILLÄ EI VOI EES PELATA MUUTA KU CUAKE YKKÖSTÄ -- OLDCHSOOL HEMMOILLE ON ASSEMPLY MESSUILLA OMA ALUE JOSSA NE PIIKITTÄÄ CANABISTA JA PELAA CUAKE YKKÖSTÄ ------ KAIKKI OLDCHSOOL TYYPIT KUULUU RIKOLLIS JENGIIN JOSSA NE SYÖ VAUVOJA JA PIIKITTÄÄ CANABISTA -- MINÄKIN HALUAN ISONA KOVAX OLDCHSOOL JÄBÄX ... ------ */ } demovar.dsgtime++; } /* clrscr */ if(clrfx==1) { int fg=0x11,bord=0x99; int y0=pwplib_bufh/8,y1=pwplib_bufh-y0, xmar=pwplib_bufw/8; if(subfx>0) bord=rand()&255; if(subfx>1) fg=bord; if(subfx>2) fg=bord=0x77; memset(pwplib_buf,bord,pwplib_bufw*pwplib_bufh*sizeof(u8)); for(;y0<y1;y0++) memset(pwplib_buf+pwplib_bufw*y0+xmar,fg,sizeof(u8)*pwplib_bufw-xmar*2); } else if(clrfx==5) planes_do(t,subfx); else memset(pwplib_buf,0,pwplib_bufw*pwplib_bufh*sizeof(u8)); # undef G /* OLCHSOOL HEMMOT ON HIRVEÄN ISOJA JA VANHOJA NIILLON TYTTÖ YSTÄVÄ JA NE ON AMATTI KOLUSSA ---- ENNEN VUOTTA ZOOO OLI EKOIL ASSENPL MESSUIL OLDCHSOOL TARKOTTAA SEMMOSTA TYYPPII JOKA */ /********/ if(fx&1) scroller_do(t,pwplib.videobuf.height/2); if(fx&8) { /* bdashfield[rand()&255]=0; */ if(subfx==0) bdash_do(bdashfield,8*256,8*256,(128+abs(1024-((t<<4)&2047)))*2/3,t>>4); else if(subfx==1) bdash_do(bdashfield,8*256,8*256,384,t>>4); else if(subfx==2) bdash_do(bdashfield,8*256,8*256,640,t>>4); else bdash_do(bdashfield,abs(8*256-((16*256-1)&(t<<4)))+102*8,8*256,640,t>>4); } /* 768 */ if(fx&4) pelubounce0(t); if(fx&2) oldskzooms(t); zoomer_do(t); /* addtext(64+((t>>1)&63)); */ /* +(t&127)); */ /***********************/ pwplib_dump_rast(); if(!quit)pwplib_loopflush(); } } pwplib_shutdown(); } int main(int argc,char**argv) { if(!pwplib_init(argc,argv))return 1; initzoomers(); rundemo(); pwplib_shutdown(); return 0; }