DEADSOFTWARE

fully move highter level rendering code in separate file
[flatwaifu.git] / src / smoke.c
index 577e402b58c794f8356eca0871e44d22b9d1ad0a..15961599ebbe65185f948a3b331efa06fdbc97e3 100644 (file)
 
 #include "glob.h"
 #include <stdlib.h>
-#include "files.h"
-#include "memory.h"
 #include "vga.h"
-#include "error.h"
-#include "sound.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;
 
@@ -57,19 +43,39 @@ 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;
-  myfwrite(&n,1,4,h);
-  for(i=0;i<MAXSMOK;++i) if(sm[i].t) myfwrite(&sm[i],1,sizeof(sm[0]),h);
+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 n;
-
-  myfread(&n,1,4,h);
-  myfread(sm,1,n*sizeof(sm[0]),h);
+void SMK_loadgame (FILE *h) {
+  int i, n;
+  n = myfread32(h);
+  for (i = 0; i < n; ++i) {
+    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);
+  }
 }
 
 void SMK_init(void) {
@@ -82,10 +88,7 @@ void SMK_init(void) {
 
 void SMK_alloc(void) {
   int i;
-
   burnsnd=Z_getsnd("BURN");
-  for(i=0;i<SMSN;++i) spr[i]=Z_getspr("SMOK",i,0,NULL);
-  for(i=0;i<FLSN;++i) fspr[i]=Z_getspr("FLAM",i,0,NULL);
   for(i=0;i<MAXSR;++i) {
     sxr[i]=myrand(256*2+1)-256;
     syr[i]=myrand(256*2+1)-256;
@@ -141,21 +144,6 @@ void SMK_act(void) {
   }
 }
 
-void SMK_draw(void) {
-  int i,s;
-
-  for(i=0;i<MAXSMOK;++i) if(sm[i].t) switch(sm[i].s) {
-    case 0:
-      if((s=sm[i].t)>=(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;