X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Fsmoke.c;h=6ccb15a11511c6ad9297cd09d67cdd821ce3e927;hb=584adc9c1911a6941ef07443a6fc6ff922d7c8ea;hp=6b012610b2eb64487d85602e9dc595bf65a50e19;hpb=da79be9b6a4134aa9cd19e6f5909fedb20d318cb;p=flatwaifu.git diff --git a/src/smoke.c b/src/smoke.c index 6b01261..6ccb15a 100644 --- a/src/smoke.c +++ b/src/smoke.c @@ -22,37 +22,22 @@ #include "glob.h" #include -#include "vga.h" #include "view.h" #include "smoke.h" #include "fx.h" #include "misc.h" +#include "my.h" #define MAXSR 20 -#define SMSN 10 -#define FLSN 8 +smoke_t sm[MAXSMOK]; -#pragma pack(1) -typedef struct{ - int x,y,xv,yv; - byte t,s; - short o; -}smoke_t; -#pragma pack() - -static smoke_t sm[MAXSMOK]; static int sr_r,sxr[MAXSR],syr[MAXSR]; static int lsm; -static void *spr[SMSN],*fspr[FLSN]; static void *burnsnd; static int burntm=0; -byte flametab[16]={ -0xBC,0xBA,0xB8,0xB6,0xB4,0xB2,0xB0,0xD5,0xD6,0xD7,0xA1,0xA0,0xE3,0xE2,0xE1,0xE0 -}; - void SMK_savegame (FILE *h) { int i, n; for (i = n = 0; i < MAXSMOK; ++i) { @@ -76,15 +61,15 @@ void SMK_savegame (FILE *h) { void SMK_loadgame (FILE *h) { int i, n; - myfread32(&n, h); + n = myfread32(h); for (i = 0; i < n; ++i) { - myfread32(&sm[i].x, h); - myfread32(&sm[i].y, h); - myfread32(&sm[i].xv, h); - myfread32(&sm[i].xv, h); - myfread8(&sm[i].t, h); - myfread8(&sm[i].s, h); - myfread16(&sm[i].o, h); + sm[i].x = myfread32(h); + sm[i].y = myfread32(h); + sm[i].xv = myfread32(h); + sm[i].xv = myfread32(h); + sm[i].t = myfread8(h); + sm[i].s = myfread8(h); + sm[i].o = myfread16(h); } } @@ -98,10 +83,7 @@ void SMK_init(void) { void SMK_alloc(void) { int i; - burnsnd=Z_getsnd("BURN"); - for(i=0;i=(SMSN-1)*3) s=0; else s=SMSN-1-s/3; - V_sprf((sm[i].x>>8)-w_x+WD/2,(sm[i].y>>8)-w_y+HT/2+1+w_o,spr[s],&smoke_sprf);//V_sprf((sm[i].x>>8)-w_x+100,(sm[i].y>>8)-w_y+50+w_o,spr[s],&smoke_sprf); - break; - case 1: - if((s=sm[i].t)>=(FLSN-1)) s=0; else s=FLSN-1-s; - V_sprf((sm[i].x>>8)-w_x+WD/2,(sm[i].y>>8)-w_y+HT/2+1+w_o,fspr[s],&flame_sprf);//V_sprf((sm[i].x>>8)-w_x+100,(sm[i].y>>8)-w_y+50+w_o,fspr[s],&flame_sprf); - break; - } -} - void SMK_add(int x,int y,int xv,int yv,byte t,byte s,short o) { int i;