DEADSOFTWARE

fix some warnings
[flatwaifu.git] / src / monster.c
index 98b909ebf803eea40342235b1c98770727e85c84..749ef785039ace9fa4aeb0b7a73faceccbc95834 100644 (file)
@@ -36,6 +36,7 @@
 #include "misc.h"
 #include "fx.h"
 #include "smoke.h"
+#include "my.h"
 
 #define MANCOLOR 0xD0
 
@@ -137,27 +138,82 @@ static mnsz_t mnsz[MN_TN+1]={
     8, 26,  400,   70, 8,10,   30,   50                // man
 };
 
-void MN_savegame(FILE* h) {
-  int n;
-
-  for(n=MAXMN;--n;) if(mn[n].t) break;
-  ++n;myfwrite(&n,1,4,h);
-  myfwrite(mn,1,n*sizeof(mn[0]),h);
-  myfwrite(&mnum,1,4,h);myfwrite(&gsndt,1,4,h);
+void MN_savegame (FILE *h) {
+  int i, n;
+  for (n = MAXMN - 1; n >= 0 && mn[n].t == 0; n--) {
+    // empty
+  }
+  n += 1;
+  myfwrite32(n, h);
+  for (i = 0; i < n; i++) {
+    myfwrite32(mn[i].o.x, h);
+    myfwrite32(mn[i].o.y, h);
+    myfwrite32(mn[i].o.xv, h);
+    myfwrite32(mn[i].o.yv, h);
+    myfwrite32(mn[i].o.vx, h);
+    myfwrite32(mn[i].o.vy, h);
+    myfwrite32(mn[i].o.r, h);
+    myfwrite32(mn[i].o.h, h);
+    myfwrite8(mn[i].t, h);
+    myfwrite8(mn[i].d, h);
+    myfwrite8(mn[i].st, h);
+    myfwrite8(mn[i].ftime, h);
+    myfwrite32(mn[i].fobj, h);
+    myfwrite32(mn[i].s, h);
+    myfwrite32(0, h); // mn[i].ap useless, changed after load
+    myfwrite32(mn[i].aim, h);
+    myfwrite32(mn[i].life, h);
+    myfwrite32(mn[i].pain, h);
+    myfwrite32(mn[i].ac, h);
+    myfwrite32(mn[i].tx, h);
+    myfwrite32(mn[i].ty, h);
+    myfwrite32(mn[i].ammo, h);
+    myfwrite16(mn[i].atm, h);
+  }
+  myfwrite32(mnum, h);
+  myfwrite32(gsndt, h);
 }
 
 static void setst(int,int);
 
 static int MN_hit(int n,int d,int o,int t);
 
-void MN_loadgame(FILE* h) {
-  int n,c;
-
-  myfread(&n,1,4,h);
-  myfread(mn,1,n*sizeof(mn[0]),h);
-  myfread(&mnum,1,4,h);myfread(&gsndt,1,4,h);
-  for(n=0;n<MAXMN;++n) if(mn[n].t) {
-    c=mn[n].ac;setst(n,mn[n].st);mn[n].ac=c;
+void MN_loadgame (FILE *h) {
+  int i, n, c;
+  n = myfread32(h);
+  for (i = 0; i < n; i++) {
+    mn[i].o.x = myfread32(h);
+    mn[i].o.y = myfread32(h);
+    mn[i].o.xv = myfread32(h);
+    mn[i].o.yv = myfread32(h);
+    mn[i].o.vx = myfread32(h);
+    mn[i].o.vy = myfread32(h);
+    mn[i].o.r = myfread32(h);
+    mn[i].o.h = myfread32(h);
+    mn[i].t = myfread8(h);
+    mn[i].d = myfread8(h);
+    mn[i].st = myfread8(h);
+    mn[i].ftime = myfread8(h);
+    mn[i].fobj = myfread32(h);
+    mn[i].s = myfread32(h);
+    mn[i].ap = NULL; myfread32(h); // useless, changed after loading
+    mn[i].aim = myfread32(h);
+    mn[i].life = myfread32(h);
+    mn[i].pain = myfread32(h);
+    mn[i].ac = myfread32(h);
+    mn[i].tx = myfread32(h);
+    mn[i].ty = myfread32(h);
+    mn[i].ammo = myfread32(h);
+    mn[i].atm = myfread16(h);
+  }
+  mnum = myfread32(h);
+  gsndt = myfread32(h);
+  for (n = 0; n < MAXMN; ++n) {
+    if (mn[n].t) {
+      c = mn[n].ac;
+      setst(n, mn[n].st);
+      mn[n].ac = c;
+    }
   }
 }