From 1e1f8088a8c7303c31de19249c9337be7c721a4e Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Sun, 19 Sep 2004 07:56:57 +0000 Subject: [PATCH] (item_prewrite): New. (checksect, shp_prewrite, lnd_prewrite): Use it. --- include/prototypes.h | 1 + src/lib/subs/land.c | 4 +++- src/lib/subs/sect.c | 15 +++++++++++++++ src/lib/subs/ship.c | 4 +++- 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/include/prototypes.h b/include/prototypes.h index 7c4fffb4..04aeecbc 100644 --- a/include/prototypes.h +++ b/include/prototypes.h @@ -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 */ diff --git a/src/lib/subs/land.c b/src/lib/subs/land.c index 1fbc81b2..d8b9409f 100644 --- a/src/lib/subs/land.c +++ b/src/lib/subs/land.c @@ -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; } diff --git a/src/lib/subs/sect.c b/src/lib/subs/sect.c index 32a3a7d9..ece3955f 100644 --- a/src/lib/subs/sect.c +++ b/src/lib/subs/sect.c @@ -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; diff --git a/src/lib/subs/ship.c b/src/lib/subs/ship.c index f27d490a..08125c63 100644 --- a/src/lib/subs/ship.c +++ b/src/lib/subs/ship.c @@ -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; }