diff --git a/src/weapons.c b/src/weapons.c
index 4ccc73b28ef61c7d127977105267c1cc2cbefbd7..c05f45692bb59d3299126f179286b207f2e1ab2d 100644 (file)
--- a/src/weapons.c
+++ b/src/weapons.c
#include "glob.h"
#include <stdlib.h>
-//#include <io.h>
-#include "vga.h"
-#include "error.h"
-#include "sound.h"
#include "view.h"
#include "bmap.h"
#include "dots.h"
#include "smoke.h"
#include "weapons.h"
#include "misc.h"
+#include "my.h"
extern int hit_xv,hit_yv;
static void throw(int,int,int,int,int,int,int,int);
-void WP_savegame(FILE* h) {
- int n;
-
- for(n=MAXWPN;--n;) if(wp[n].t) break;
- ++n;myfwrite(&n,1,4,h);myfwrite(wp,1,n*sizeof(wp[0]),h);
+void WP_savegame (FILE *h) {
+ int i, n;
+ for (n = MAXWPN - 1; n >= 0 && wp[n].t == 0; n--) {
+ // empty
+ }
+ n += 1;
+ myfwrite32(n, h);
+ for (i = 0; i < n; i++) {
+ myfwrite32(wp[i].o.x, h);
+ myfwrite32(wp[i].o.y, h);
+ myfwrite32(wp[i].o.xv, h);
+ myfwrite32(wp[i].o.yv, h);
+ myfwrite32(wp[i].o.vx, h);
+ myfwrite32(wp[i].o.vy, h);
+ myfwrite32(wp[i].o.r, h);
+ myfwrite32(wp[i].o.h, h);
+ myfwrite8(wp[i].t, h);
+ myfwrite8(wp[i].s, h);
+ myfwrite32(wp[i].own, h);
+ myfwrite16(wp[i].target, h);
+ }
}
-void WP_loadgame(FILE* h) {
- int n;
-
- myfread(&n,1,4,h);myfread(wp,1,n*sizeof(wp[0]),h);
+void WP_loadgame (FILE *h) {
+ int i, n;
+ n = myfread32(h);
+ for (i = 0; i < n; i++) {
+ wp[i].o.x = myfread32(h);
+ wp[i].o.y = myfread32(h);
+ wp[i].o.xv = myfread32(h);
+ wp[i].o.yv = myfread32(h);
+ wp[i].o.vx = myfread32(h);
+ wp[i].o.vy = myfread32(h);
+ wp[i].o.r = myfread32(h);
+ wp[i].o.h = myfread32(h);
+ wp[i].t = myfread8(h);
+ wp[i].s = myfread8(h);
+ wp[i].own = myfread32(h);
+ wp[i].target = myfread16(h);
+ }
}
void WP_alloc(void) {