0
|
1 #if 0
|
|
2 # include <stdio.h>
|
|
3 # include <stdlib.h>
|
|
4 # include <string.h>
|
|
5 # include <unistd.h>
|
|
6 #endif
|
|
7
|
|
8 #include "pwplib.h"
|
|
9
|
|
10 #define MAX(a,b) ((a)<(b)?(b):(a))
|
|
11 #define MIN(a,b) ((a)>(b)?(b):(a))
|
|
12
|
|
13 struct
|
|
14 {
|
|
15 int dsgtime;
|
|
16
|
|
17 int flagz;
|
|
18 int planemode;
|
|
19
|
|
20 int enctime,enckode,enczoom,encspeed;
|
|
21
|
|
22 int endfxt;
|
|
23
|
|
24 int metsaemode;
|
|
25 int bouncemode;
|
|
26 }demovar;
|
|
27
|
|
28 #define Z 128
|
|
29 #define z 128
|
|
30 #define K 19
|
|
31
|
|
32 u8 pwplogofield[16*16] = {
|
|
33 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
|
|
34 3,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,
|
|
35 3,3,3,3,11,3,z,0,z,3,3,11,11,11,3,3,
|
|
36 z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,
|
|
37 2,2,2,2,z,2,z,z,z,2,z,2,2,11,2,z,
|
|
38 2,z,z,2,z,2,z,2,z,2,z,2,z,z,2,z,
|
|
39 2,z,z,2,z,2,z,2,z,2,z,2,z,z,2,z,
|
|
40 2,2,2,2,z,2,z,2,z,2,z,2,2,2,2,z,
|
|
41 2,z,z,z,11,2,0,2,0,2,z,2,z,z,z,z,
|
|
42 2,z,z,z,z,2,2,2,2,2,z,2,z,z,z,z,
|
|
43 z,1,z,z,1,z,1,z,z,z,1,z,z,1,1,z,
|
|
44 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
|
|
45 3,z,z,z,z,z,z,z,z,z,z,z,z,z,z,3,
|
|
46 3,z,z,z,z,z,3,1,3,1,z,1,1,z,z,3,
|
|
47 3,z,1,z,z,z,3,1,3,z,z,z,z,z,z,3,
|
|
48 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3
|
|
49 };
|
|
50
|
|
51 u8 pwpendfield[16*16] = {
|
|
52 z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,
|
|
53 z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,
|
|
54 z,z,z,z,z,3,z,z,z,3,z,z,z,z,z,z,
|
|
55 z,z,z,z,1,3,z,z,z,3,z,z,z,z,z,z,
|
|
56 z,z,z,z,z,3,z,z,z,3,z,z,z,z,z,z,
|
|
57 z,3,3,3,z,3,z,3,z,3,z,3,3,3,z,z,
|
|
58 z,3,z,3,z,3,z,3,1,3,z,3,z,3,z,z,
|
|
59 z,3,3,3,z,3,1,3,z,3,1,3,3,3,z,z,
|
|
60 z,3,z,z,1,3,3,3,3,3,z,3,z,z,z,z,
|
|
61 z,3,z,z,z,z,z,z,z,z,1,3,z,z,z,z,
|
|
62 z,3,1,z,z,z,z,z,z,z,z,3,z,z,z,z,
|
|
63 z,3,z,z,z,z,z,z,z,z,z,3,z,z,z,z,
|
|
64 z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,
|
|
65 z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,
|
|
66 z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,
|
|
67 z,z,z,z,z,z,z,z,z,z,z,z,z,z,z,z
|
|
68 };
|
|
69
|
|
70 u8 bartyblasefield[16*16] = {
|
|
71 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,z,
|
|
72 3,1,1,z,z,z,z,z,z,z,z,z,z,z,z,3,
|
|
73 3,z,z,1,z,z,z,z,z,z,z,z,z,z,z,3,
|
|
74 3,z,z,z,z,z,z,1,z,1,z,1,z,1,z,3,
|
|
75 3,1,K,z,K,z,K,z,K,z,K,z,K,z,z,3,
|
|
76 3,z,2,1,2,z,2,z,2,z,2,z,2,1,z,3,
|
|
77 3,z,2,z,2,z,2,1,2,1,2,1,2,z,z,3,
|
|
78 3,1,K,z,K,z,K,z,K,z,K,z,K,z,z,3,
|
|
79 3,z,2,z,2,z,2,1,2,z,2,z,2,z,z,z,
|
|
80 3,1,2,1,2,z,2,z,2,1,2,z,2,z,z,3,
|
|
81 3,z,K,1,K,z,K,z,K,z,K,1,K,1,z,3,
|
|
82 3,z,2,z,2,z,2,1,2,z,2,z,2,1,z,3,
|
|
83 3,z,2,1,2,z,2,z,2,1,2,z,2,z,z,3,
|
|
84 3,z,K,z,K,z,K,z,K,z,K,z,K,1,z,3,
|
|
85 3,z,1,1,z,1,z,z,1,z,1,z,z,z,z,3,
|
|
86 3,3,3,3,3,3,3,3,3,3,3,3,3,z,3,3,
|
|
87 };
|
|
88
|
|
89
|
|
90 u8 bdashfield[16*16];
|
|
91
|
|
92 /*
|
|
93 u8 bdashfield[16*16] = {
|
|
94 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
|
|
95 2,Z,Z,Z,2,Z,Z,1,Z,Z,Z,2,Z,Z,Z,2,
|
|
96 2,Z,Z,Z,2,Z,Z,1,Z,Z,Z,2,Z,Z,Z,2,
|
|
97 2,Z,Z,Z,2,Z,Z,1,Z,Z,Z,2,Z,Z,Z,2,
|
|
98 2,Z,Z,Z,2,2,2,2,2,2,2,2,Z,Z,Z,2,
|
|
99 2,Z,Z,Z,Z,Z,3,Z,3,Z,Z,Z,Z,Z,Z,2,
|
|
100 2,Z,Z,Z,Z,Z,3,Z,3,Z,Z,Z,Z,Z,Z,2,
|
|
101 2,Z,Z,Z,Z,Z,0,Z,3,Z,Z,Z,Z,Z,Z,2,
|
|
102 2,Z,Z,Z,Z,Z,3,Z,3,Z,Z,Z,Z,Z,Z,2,
|
|
103 2,Z,Z,Z,Z,Z,3,Z,3,Z,Z,Z,Z,Z,Z,2,
|
|
104 2,Z,Z,Z,2,2,2,2,2,2,2,2,Z,Z,Z,2,
|
|
105 2,Z,Z,Z,2,Z,Z,1,Z,Z,Z,2,Z,Z,Z,2,
|
|
106 2,Z,Z,Z,2,Z,Z,1,Z,Z,Z,2,Z,Z,Z,2,
|
|
107 2,Z,Z,Z,2,Z,Z,1,Z,Z,Z,2,Z,Z,Z,2,
|
|
108 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
|
|
109 };
|
|
110 */
|
|
111 #undef Z
|
|
112
|
|
113 void rundemo()
|
|
114 {
|
|
115 int quit=0,clrfx=0,fx=0,subfx=0;
|
|
116
|
|
117 pwplib_startup();
|
|
118
|
|
119 decompress_allbmp();
|
|
120 bwpals();
|
|
121
|
|
122 pwplib_buf=
|
|
123 malloc(sizeof(u8)*pwplib_bufw*pwplib_bufh);
|
|
124
|
|
125 if(!pwplib_setup(NOSOUND))
|
|
126 initplayer();
|
|
127
|
|
128 pwplib_prep_attr();
|
|
129
|
|
130 demovar.flagz=8|16;
|
|
131
|
|
132 {demovar.dsgtime=0;
|
|
133 demovar.endfxt=1<<30;
|
|
134 demovar.metsaemode=0;
|
|
135 while(!quit)
|
|
136 {
|
|
137 int t=pwplib_timer();
|
|
138
|
|
139 while(demovar.dsgtime<=t)
|
|
140 {
|
|
141 if(0==(demovar.dsgtime&15))
|
|
142 { simulate_bdash(bdashfield); }
|
|
143
|
|
144 switch((int)demovar.dsgtime)
|
|
145 {
|
|
146 case(0): fx=8; subfx=0; memcpy(bdashfield,pwplogofield,256*sizeof(u8)); break;
|
|
147
|
|
148 case(384): newtext(384,"OLDCHSOOL",0xff); break;
|
|
149
|
|
150 case(256): fx=8; break;
|
|
151
|
|
152 case(512-64): clrfx=1; subfx=fx=0; break;
|
|
153 case(512-48): subfx++; break;
|
|
154 case(512-16): subfx++; break;
|
|
155 case(512-8): subfx++; break;
|
|
156
|
|
157 case(512): fx=0;clrfx=5;subfx=0+16;
|
|
158 newtext(512,"OLDCHSOOL\nTARKOTTAA",0xff);break;
|
|
159
|
|
160 case(512+128):
|
|
161 newtext(512+128,"SEMMOSTA\n TYYPPII\nJOKA OLI",0xff);break;
|
|
162
|
|
163 case(512+256):newtext(512+256,"EKALLA\nASSENPLY\nMESSULLA",0xff);break;
|
|
164
|
|
165 case(512+384): newtext(512+384,"JO ENNEN\n VUOTTA\n ZOOO",0xff); break;
|
|
166
|
|
167 case(512+512):newtext(512+512,"OLDCHSOOL\n HEMMOT\n ON",0xff); break;
|
|
168
|
|
169 case(1024+128): newtext(1024+128," HIRVE[N\nISOJA JA\n RUMIA",0xff); fx|=2; break;
|
|
170
|
|
171 case(1024+256): newtext(1024+256,"NIILL[ ON\n TYTT\\\n YST[V[",0xff); break;
|
|
172
|
|
173 /* case(1024+384-8): fadeoldsk(1024+384-32); break;
|
|
174 */
|
|
175 case(1024+384):
|
|
176 newtext(1024+384,"JA NE ON\n AMATTI\n KOLUSSA",0xff); break;
|
|
177
|
|
178 case(1024+512): fx=2; subfx=17; clrfx=0; break;
|
|
179
|
|
180 case(1024+512+128+64): fx=8|2;subfx=1;
|
|
181 memcpy(bdashfield,bartyblasefield,256*sizeof(u8));
|
|
182 break;
|
|
183
|
|
184 case(1024+512+256+64): fx=4|8;break;
|
|
185
|
|
186 case(2048-128): fx=5; break;
|
|
187
|
|
188 case(2048): newtext(2048,"OLDCHSOOL\nHEMMOILLA\n ON",0xff);break;
|
|
189
|
|
190 case(2048+128): newtext(2048+128,"GOMONDORE\n NIMINEN\n TIETSKA",0xff);break;
|
|
191
|
|
192 case(2048+256): newtext(2048+256,"SILL[ EI\nVOI EES\n PELATA",0xff);break;
|
|
193
|
|
194 case(2048+384): newtext(2048+384,"MUUTA KU\n CUAKE\nYKK\\ST[",0xff);break;
|
|
195
|
|
196 case(2048+512): newtext(2048+512,"OLDCHSOOL\nHEMMOILLE\n ON",0xff);fx=1;break;
|
|
197
|
|
198 case(2048+512+128):
|
|
199 newtext (2048+512+128, "ASEMPLY\nMESSUILLA\nOMA ALUE", 0xff);
|
|
200 break;
|
|
201
|
|
202 case(2048+512+256): newtext(2048+512+256,"JOSSA NE\nPIIKITT[[\nCANABISTA",0xff);fx=0;break;
|
|
203
|
|
204 case(2048+512+384-16): fadeoldsk(2048+512+384-16); break;
|
|
205
|
|
206 case(2048+512+384): newtext(2048+512+384,"JA PELAA\n CUACE\n YKK\\ST[",0xff);break;
|
|
207
|
|
208 case(2048+1024): fx=8;subfx=2; break;
|
|
209
|
|
210 case(2048+1024+139):
|
|
211 case(2048+1024+128):
|
|
212 case(2048+1024+80):
|
|
213 case(2048+1024+109):
|
|
214 case(2048+1024+137):
|
|
215 case(2048+1024+112):
|
|
216 case(2048+1024+99):
|
|
217 case(2048+1024+140):
|
|
218 case(2048+1024+200):
|
|
219 case(2048+1024+220):
|
|
220 case(2048+1024+190):
|
|
221 bdashfield[16+11]=11;
|
|
222 bdashfield[16+5]=11;
|
|
223 bdashfield[16+9]=11;
|
|
224 bdashfield[16+7]=11;
|
|
225 bdashfield[64+11]=11;
|
|
226 bdashfield[32+5]=11;
|
|
227 bdashfield[96+9]=11;
|
|
228 bdashfield[64+7]=11; break;
|
|
229
|
|
230 case(2048+1024+512-64): fx=10; break;
|
|
231
|
|
232 case(2048+1024+512):
|
|
233 fx=2;
|
|
234 newtext(2048+1024+512,"M[ HALUUN\n OLLA\nOLDCHSOOL",0xff);
|
|
235 break;
|
|
236 /*
|
|
237 case(2048+1024+512+128):
|
|
238 newtext(2048+1024+512+128,"MUN [ITIKI\nHALUU JA\n KOIRA",0xff);
|
|
239 break;
|
|
240 */
|
|
241 case(2048+1024+512+256):
|
|
242 newtext(2048+1024+512+256,"OLDCHSOOL\nON SUURI\nPELASTUS",0xff);
|
|
243 break;
|
|
244
|
|
245 case(2048+1024+512+384):
|
|
246 newtext(2048+1024+512+384,"JA AVAIN\nIKUISEEN\nEL[M[[N",0xff);break;
|
|
247
|
|
248 case(2048+2048):fx=0;break;
|
|
249
|
|
250 case(2048+2048+128):memcpy(bdashfield,pwpendfield,sizeof(u8)*256);
|
|
251 fx=8;subfx=3;break;
|
|
252
|
|
253 case(2048+2048+256):
|
|
254 newtext(2048+2048+256," PWP\n STILL\nOVERRULES",0xff);break;
|
|
255 case(2048+2048+512):
|
|
256 newtext(2048+2048+512," DESIGN\nCODE ETC\nBY VIZNUT",0xff);break;
|
|
257 case(2048+2048+768):
|
|
258 newtext(2048+2048+768,"GREETZ TO\nALL THE\nELITEZ",0xff);break;
|
|
259 case(2048+2048+1024):
|
|
260 newtext(2048+2048+1024," PWP\nPRODUCTION\n ZOOI",0xff);break;
|
|
261
|
|
262 case(2048+2048+1024-64):
|
|
263 {int i=80;for(;i;i--){bdashfield[rand()&255]=11;
|
|
264 bdashfield[rand()&255]=1;}}break;
|
|
265
|
|
266
|
|
267 case(2048+2048+1024+256):quit=1;fx=0;break;
|
|
268 /*
|
|
269
|
|
270 -----
|
|
271
|
|
272 OLDCHSOOL
|
|
273 HEMMOILLA
|
|
274 ON
|
|
275
|
|
276 GOMONDORE
|
|
277 NIMINEN
|
|
278 TIETSKA
|
|
279
|
|
280 SILLÄ EI
|
|
281 VOI EES
|
|
282 PELATA
|
|
283
|
|
284 MUUTA KU
|
|
285 CUAKE
|
|
286 YKKÖSTÄ
|
|
287
|
|
288 --
|
|
289
|
|
290 OLDCHSOOL
|
|
291 HEMMOILLE
|
|
292 ON
|
|
293
|
|
294 ASSEMPLY
|
|
295 MESSUILLA
|
|
296 OMA ALUE
|
|
297
|
|
298 JOSSA NE
|
|
299 PIIKITTÄÄ
|
|
300 CANABISTA
|
|
301
|
|
302 JA PELAA
|
|
303 CUAKE
|
|
304 YKKÖSTÄ
|
|
305
|
|
306 ------
|
|
307
|
|
308 KAIKKI
|
|
309 OLDCHSOOL
|
|
310 TYYPIT
|
|
311
|
|
312 KUULUU
|
|
313 RIKOLLIS
|
|
314 JENGIIN
|
|
315
|
|
316 JOSSA NE
|
|
317 SYÖ
|
|
318 VAUVOJA
|
|
319
|
|
320 JA
|
|
321 PIIKITTÄÄ
|
|
322 CANABISTA
|
|
323
|
|
324 --
|
|
325
|
|
326 MINÄKIN
|
|
327 HALUAN
|
|
328 ISONA
|
|
329
|
|
330 KOVAX
|
|
331 OLDCHSOOL
|
|
332 JÄBÄX
|
|
333
|
|
334
|
|
335
|
|
336
|
|
337 ...
|
|
338
|
|
339 ------
|
|
340
|
|
341
|
|
342
|
|
343 */
|
|
344
|
|
345 }
|
|
346 demovar.dsgtime++;
|
|
347 }
|
|
348
|
|
349 /* clrscr */
|
|
350
|
|
351 if(clrfx==1)
|
|
352 {
|
|
353 int fg=0x11,bord=0x99;
|
|
354
|
|
355 int y0=pwplib_bufh/8,y1=pwplib_bufh-y0,
|
|
356 xmar=pwplib_bufw/8;
|
|
357
|
|
358 if(subfx>0) bord=rand()&255;
|
|
359
|
|
360 if(subfx>1) fg=bord;
|
|
361
|
|
362 if(subfx>2) fg=bord=0x77;
|
|
363
|
|
364 memset(pwplib_buf,bord,pwplib_bufw*pwplib_bufh*sizeof(u8));
|
|
365
|
|
366 for(;y0<y1;y0++)
|
|
367 memset(pwplib_buf+pwplib_bufw*y0+xmar,fg,sizeof(u8)*pwplib_bufw-xmar*2);
|
|
368 }
|
|
369 else
|
|
370
|
|
371 if(clrfx==5) planes_do(t,subfx);
|
|
372 else
|
|
373 memset(pwplib_buf,0,pwplib_bufw*pwplib_bufh*sizeof(u8));
|
|
374
|
|
375 # undef G
|
|
376
|
|
377
|
|
378
|
|
379 /*
|
|
380 OLCHSOOL
|
|
381 HEMMOT
|
|
382 ON
|
|
383
|
|
384 HIRVEÄN
|
|
385 ISOJA JA
|
|
386 VANHOJA
|
|
387
|
|
388 NIILLON
|
|
389 TYTTÖ
|
|
390 YSTÄVÄ
|
|
391
|
|
392 JA NE ON
|
|
393 AMATTI
|
|
394 KOLUSSA
|
|
395
|
|
396 ----
|
|
397
|
|
398 ENNEN
|
|
399 VUOTTA
|
|
400 ZOOO
|
|
401
|
|
402 OLI EKOIL
|
|
403 ASSENPL
|
|
404 MESSUIL
|
|
405
|
|
406 OLDCHSOOL
|
|
407 TARKOTTAA
|
|
408 SEMMOSTA
|
|
409 TYYPPII
|
|
410 JOKA
|
|
411
|
|
412 */
|
|
413
|
|
414 /********/
|
|
415
|
|
416 if(fx&1) scroller_do(t,pwplib.videobuf.height/2);
|
|
417 if(fx&8)
|
|
418 {
|
|
419 /* bdashfield[rand()&255]=0;
|
|
420 */
|
|
421 if(subfx==0)
|
|
422 bdash_do(bdashfield,8*256,8*256,(128+abs(1024-((t<<4)&2047)))*2/3,t>>4);
|
|
423 else
|
|
424 if(subfx==1)
|
|
425 bdash_do(bdashfield,8*256,8*256,384,t>>4);
|
|
426 else
|
|
427 if(subfx==2)
|
|
428 bdash_do(bdashfield,8*256,8*256,640,t>>4);
|
|
429 else
|
|
430 bdash_do(bdashfield,abs(8*256-((16*256-1)&(t<<4)))+102*8,8*256,640,t>>4);
|
|
431 }
|
|
432
|
|
433 /* 768 */
|
|
434
|
|
435 if(fx&4) pelubounce0(t);
|
|
436 if(fx&2) oldskzooms(t);
|
|
437
|
|
438 zoomer_do(t);
|
|
439
|
|
440 /* addtext(64+((t>>1)&63)); */ /* +(t&127)); */
|
|
441
|
|
442 /***********************/
|
|
443
|
|
444 pwplib_dump_rast();
|
|
445 if(!quit)pwplib_loopflush();
|
|
446 }
|
|
447 }
|
|
448
|
|
449 pwplib_shutdown();
|
|
450 }
|
|
451
|
|
452 int main(int argc,char**argv)
|
|
453 {
|
|
454 if(!pwplib_init(argc,argv))return 1;
|
|
455
|
|
456 initzoomers();
|
|
457
|
|
458 rundemo();
|
|
459
|
|
460 pwplib_shutdown();
|
|
461
|
|
462 return 0;
|
|
463 }
|