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
|
/* GravityWars 1.1, (C) Sami Niemi -95 */
#include "memory.h"
/*----------------------------------------------------------------watermask */
/* Raterize the ship when in the water, and only to a certain height.. */
void watermask(short x, short y, uchar type, char *back_adr) {
static short xx,yy,n;
static uchar *mix_adr;
static uchar *ship_adr;
static uchar col;
static short m,start;
y-=9;
if (type==E_WATER)
start=0;
else {
start=(y & 65504)+32-y;
if (start>25) start=0;
}
m=(x^y);
mix_adr=shipmix;
ship_adr=ship[1+(g_flag & 1)][sa[0] >> 5];
n=0;
for(yy=0; yy<=31; yy++) {
for(xx=0; xx<=31; xx++,n++) {
col=ship_adr[n];
if (col!=0) {
if ( (((xx^yy)^m)&1) && (yy>start)) {
col=WATERCOLOR;
}
}
else {
col=back_adr[n];
}
mix_adr[n]=col;
}
}
}
|