static void partikel( int i, int onoff ) { Sprite *s; unsigned char c[]={ 22,24,26 }; int x1; int x2; int y2; s=lemm[i]; if ( !s ) return; for( i=0; i<3; i++ ) { x1=s->x+s->width; x2=part_x[s->counter1]+i; y2=s->y-part_y[s->counter1]-((i==1)?1:0); if ( onoff ) { dblCopyImage(oneoftwo(x1+x2)-main_x,oneoftwo(y2),1,1,c+i); dblCopyImage(oneoftwo(x1-x2)-main_x,oneoftwo(y2),1,1,c+i); } else { CopyBg2Screen( oneoftwo(x1+x2), oneoftwo(y2), 1, 1); CopyBg2Screen( oneoftwo(x1-x2), oneoftwo(y2), 1, 1); } } }
static void DrawSimpleNumber( int x, int y, int num, int trans ) { if ( trans ) dblCopyImage( x,y,3,5,pnums_2[ num ] ); else FB2CopyImage( x, y, 3, 5, pnums_1[ num ], 1 ); }
static void CopyBg2Screen( int srcx, int srcy, int dx, int dy ) { int y; unsigned char *p; if ( srcx-main_x+dx < 0 ) return; if ( srcx-main_x >= 328 ) return; if ( srcy+dy < 0 ) return; if ( srcy >= 160 ) return; p = bgImage+(srcy*stride)+srcx; /* line per line ! - because stride */ for( y=0; (y<dy) && (srcy < 160); srcy++, y++, p += stride ) dblCopyImage( srcx-main_x, srcy, dx, 1, p ); }
void DrawSprite( Sprite *s ) { dblCopyImage( s->x-main_x, s->y, s->width, s->height,s->data+s->ani*s->sz); }