]> git.pond.sub.org Git - empserver/commitdiff
(item_prewrite): New.
authorMarkus Armbruster <armbru@pond.sub.org>
Sun, 19 Sep 2004 07:56:57 +0000 (07:56 +0000)
committerMarkus Armbruster <armbru@pond.sub.org>
Sun, 19 Sep 2004 07:56:57 +0000 (07:56 +0000)
(checksect, shp_prewrite, lnd_prewrite): Use it.

include/prototypes.h
src/lib/subs/land.c
src/lib/subs/sect.c
src/lib/subs/ship.c

index 7c4fffb43d84065dfc5d1b6190cb0388fad68b9c..04aeecbcbc83b2956deff14792dcfd3b2fc5893a 100644 (file)
@@ -467,6 +467,7 @@ extern void sathead(void);
 /* sect.c */
 extern int sct_postread(int, s_char *);
 extern int sct_prewrite(int, s_char *);
+extern void item_prewrite(short *);
 extern int issector(s_char *);
 extern void sct_init(coord, coord, s_char *);
 /* ship.c */
index 1fbc81b20cf6da7b183c51617b50369d8a1d9740..d8b9409f0f83b90999d03fd59e5c47f000922810 100644 (file)
@@ -155,8 +155,10 @@ lnd_prewrite(int n, s_char *ptr)
                putplane(pp->pln_uid, pp);
            }
        }
-    } else
+    } else {
+       item_prewrite(llp->lnd_item);
        getland(n, &land);
+    }
 
     return 1;
 }
index 32a3a7d9152fe98150da8ab812b99fcdc885c17c..ece3955fb0f3c1bf5768a315963f29c56a38dd21 100644 (file)
@@ -75,11 +75,26 @@ sct_prewrite(int id, s_char *ptr)
     return 1;
 }
 
+void
+item_prewrite(short *item)
+{
+    int i;
+
+    for (i = 0; i <= I_MAX; ++i) {
+       if (CANT_HAPPEN(item[i] < 0))
+           item[i] = 0;
+       else if (CANT_HAPPEN(item[i] > ITEM_MAX))
+           item[i] = ITEM_MAX;
+    }
+}
+
 static int
 checksect(struct sctstr *sp)
 {
     int mil, civs, loyalcivs;
 
+    item_prewrite(sp->sct_item);
+
     /* shouldn't happen, but... */
     if (sp->sct_mobil > 127)
        sp->sct_mobil = 0;
index f27d490a798951faa3cf9e698b4c4d144e229d40..08125c63f748213218715ae6a38be7bbb418d4c5 100644 (file)
@@ -108,8 +108,10 @@ shp_prewrite(int n, s_char *ptr)
                putplane(pp->pln_uid, pp);
            }
        }
-    } else
+    } else {
+       item_prewrite(sp->shp_item);
        getship(n, &ship);
+    }
 
     return 1;
 }