File: feuer.c

package info (click to toggle)
lockvc 4.0.5-6
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 492 kB
  • ctags: 183
  • sloc: ansic: 1,242; makefile: 105
file content (77 lines) | stat: -rw-r--r-- 1,591 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
/* LOCKVC Version 3.6 (c) 1994,1995,1997 by Matthias Straub */
/* shadow-password option added by Ed Beaumont */
/* this file was released under GPL */
/* see COPYING for details */

#include <vga.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>

#include "lockvc.h"

unsigned char *screen;
unsigned char *rscreen;
unsigned char *escreen;

unsigned short zuf=1777;
unsigned short zufm=31317;

void draw_feuer()
     {
	unsigned char *lscreen;
	
	for(lscreen=screen+200*320;lscreen<(screen+201*320);lscreen++)
	  {
	     if((zuf*=zufm)<17000) *lscreen=191;
	     else *lscreen=0;
	  }
	
	for(lscreen=screen+80*320;lscreen<escreen;lscreen++)
	  {
	     *lscreen=(*lscreen+*(lscreen+321)+*(lscreen+319)+*(lscreen+640))/4;
	  }
	memcpy(rscreen+80*320,screen+80*320,120*320);
	if(vga_getkey()!=0 && vga_getkey()!=-1)authenticate();
	vga_waitretrace(); 

     }

void feuer()
{
   int i;

   if (vga_init() < 0) {
	   fprintf(stderr, "vga_init failed\n");
	   exit(-1);
   }
   if (vga_setmode(G320x200x256) < 0) {
	   fprintf(stderr, "vga_setmode failed\n");
	   fflush(stderr);
	   exit(-1);
   }
   signals();
   if (!(screen=(unsigned char *)malloc(64320)))
   {
	   fprintf(stderr, "Cannot allocate memory\n");
	   exit(-1);
   }
   
   rscreen=vga_getgraphmem();
   
   for(i=0;i<32;i++)
     {
	vga_setpalette(i    ,   i*2,0     ,0);
	vga_setpalette(i+32 ,63,20+i/2  ,0);
	vga_setpalette(i+64 ,63,36+i/2  ,0);
	vga_setpalette(i+96 ,63 , 55 ,i);
	vga_setpalette(i+128,63, 63, i);
     }
   escreen=screen+320*200;
   while(1)
     {
	draw_feuer();
     }
}