X-Git-Url: https://deadsoftware.ru/gitweb?p=flatwaifu.git;a=blobdiff_plain;f=src%2Fsmoke.c;h=8512e482c6c3e8cca001d8436cd0cd44654517e2;hp=6b012610b2eb64487d85602e9dc595bf65a50e19;hb=563dffaf02ff36da4054f937fcc9f99a072e15bf;hpb=da79be9b6a4134aa9cd19e6f5909fedb20d318cb diff --git a/src/smoke.c b/src/smoke.c index 6b01261..8512e48 100644 --- a/src/smoke.c +++ b/src/smoke.c @@ -22,73 +22,25 @@ #include "glob.h" #include -#include "vga.h" #include "view.h" #include "smoke.h" +#include "game.h" #include "fx.h" #include "misc.h" +#include "my.h" +#include "monster.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) { - if (sm[i].t) { - ++n; - } - } - myfwrite32(n, h); - for (i = 0; i < MAXSMOK; ++i) { - if (sm[i].t) { - myfwrite32(sm[i].x, h); - myfwrite32(sm[i].y, h); - myfwrite32(sm[i].xv, h); - myfwrite32(sm[i].xv, h); - myfwrite8(sm[i].t, h); - myfwrite8(sm[i].s, h); - myfwrite16(sm[i].o, h); - } - } -} - -void SMK_loadgame (FILE *h) { - int i, n; - myfread32(&n, 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); - } -} - -void SMK_init(void) { +void SMK_init (void) { int i; for(i=0;i=MAXSMOK) lsm=0; } -void SMK_act(void) { +void SMK_act (void) { int i,ox,oy; static obj_t o; @@ -157,22 +106,7 @@ void SMK_act(void) { } } -void SMK_draw(void) { - int i,s; - - 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) { +static void SMK_add (int x, int y, int xv, int yv, byte t, byte s, short o) { int i; if(!Z_canfit(x>>8,(y>>8)+3,3,7)) return; @@ -185,7 +119,7 @@ void SMK_add(int x,int y,int xv,int yv,byte t,byte s,short o) { inclast(); } -void SMK_gas(int x0,int y0,int xr,int yr,int xv,int yv,int k) { +void SMK_gas (int x0, int y0, int xr, int yr, int xv, int yv, int k) { int i,x,y; static int sxv,syv; @@ -201,7 +135,7 @@ void SMK_gas(int x0,int y0,int xr,int yr,int xv,int yv,int k) { } } -void SMK_flame(int x0,int y0,int ox,int oy,int xr,int yr,int xv,int yv,int k,int o) { +void SMK_flame (int x0, int y0, int ox, int oy, int xr, int yr, int xv, int yv, int k, int o) { int i,x,y; static int sxv,syv;