(getcontact,putcontact): Generalize the interface back to an int.

Add range checks to prevent unexpected results.
This commit is contained in:
Ron Koenderink 2005-11-19 14:55:03 +00:00
parent 4e317e3999
commit 3fd64ccb48
2 changed files with 10 additions and 5 deletions

View file

@ -167,11 +167,10 @@ extern s_char *rejectname(struct natstr *np, natid other);
extern s_char *natstate(struct natstr *np); extern s_char *natstate(struct natstr *np);
extern int getrel(struct natstr *np, natid them); extern int getrel(struct natstr *np, natid them);
extern int getrejects(natid them, struct natstr *np); extern int getrejects(natid them, struct natstr *np);
extern unsigned char getcontact(struct natstr *np, natid them); extern int getcontact(struct natstr *np, natid them);
extern void putrel(struct natstr *np, natid them, int relate); extern void putrel(struct natstr *np, natid them, int relate);
extern void putreject(struct natstr *np, natid them, int how, int what); extern void putreject(struct natstr *np, natid them, int how, int what);
extern void putcontact(struct natstr *np, natid them, extern void putcontact(struct natstr *np, natid them, int contact);
unsigned char contact);
extern void agecontact(struct natstr *np); extern void agecontact(struct natstr *np);
/* nation flags */ /* nation flags */

View file

@ -31,6 +31,7 @@
* Dave Pare, 1989 * Dave Pare, 1989
*/ */
#include "prototypes.h"
#include "misc.h" #include "misc.h"
#include "nat.h" #include "nat.h"
#include "file.h" #include "file.h"
@ -128,7 +129,7 @@ agecontact(struct natstr *np)
} }
} }
unsigned char int
getcontact(struct natstr *np, natid them) getcontact(struct natstr *np, natid them)
{ {
return np->nat_contact[them]; return np->nat_contact[them];
@ -159,8 +160,13 @@ putreject(struct natstr *np, natid them, int how, int what)
} }
void void
putcontact(struct natstr *np, natid them, unsigned char contact) putcontact(struct natstr *np, natid them, int contact)
{ {
if (CANT_HAPPEN(contact < 0))
contact = 0;
if (CANT_HAPPEN(contact > 255))
contact = 255;
if (np->nat_contact[them] < contact) if (np->nat_contact[them] < contact)
np->nat_contact[them] = contact; np->nat_contact[them] = contact;
} }