X-Git-Url: https://git.cameronkatri.com/bsdgames-darwin.git/blobdiff_plain/47c4a13aeb96fe1fe49bddec4fb90e77c81cf366..cd13042d23065cae90a02dae4f7602a2b4eb7ce0:/atc/update.c diff --git a/atc/update.c b/atc/update.c index a1b8aa77..4396aaba 100644 --- a/atc/update.c +++ b/atc/update.c @@ -1,4 +1,4 @@ -/* $NetBSD: update.c,v 1.9 1999/07/24 23:58:15 hubertf Exp $ */ +/* $NetBSD: update.c,v 1.25 2014/03/22 22:58:56 dholland Exp $ */ /*- * Copyright (c) 1990, 1993 @@ -15,11 +15,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors + * 3. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * @@ -50,17 +46,22 @@ #if 0 static char sccsid[] = "@(#)update.c 8.1 (Berkeley) 5/31/93"; #else -__RCSID("$NetBSD: update.c,v 1.9 1999/07/24 23:58:15 hubertf Exp $"); +__RCSID("$NetBSD: update.c,v 1.25 2014/03/22 22:58:56 dholland Exp $"); #endif -#endif not lint +#endif /* not lint */ #include "include.h" +static int next_plane(void); +static int too_close(const PLANE *p1, const PLANE *p2, int); +static int dir_deg(int); + +/* ARGSUSED */ void -update(dummy) - int dummy; +update(int dummy __unused) { - int i, dir_diff, unclean; + int dir_diff, unclean; + unsigned i; PLANE *pp, *p1, *p2; #ifdef SYSV @@ -123,7 +124,7 @@ update(dummy) if (pp->delayd && pp->xpos == sp->beacon[pp->delayd_no].x && pp->ypos == sp->beacon[pp->delayd_no].y) { - pp->delayd = 0; + pp->delayd = false; if (pp->status == S_UNMARKED) pp->status = S_MARKED; } @@ -157,7 +158,7 @@ update(dummy) } if (pp->altitude > 9) /* "this is impossible" */ - loser(pp, "exceded flight ceiling."); + loser(pp, "exceeded flight ceiling."); if (pp->altitude <= 0) { for (i = 0; i < sp->num_airports; i++) if (pp->xpos == sp->airport[i].x && @@ -205,7 +206,8 @@ update(dummy) if (too_close(p1, p2, 1)) { static char buf[80]; - (void)sprintf(buf, "collided with plane '%c'.", + (void)snprintf(buf, sizeof(buf), + "collided with plane '%c'.", name(p2)); loser(p1, buf); } @@ -223,39 +225,42 @@ update(dummy) } const char * -command(pp) - const PLANE *pp; +command(const PLANE *pp) { static char buf[50], *bp, *comm_start; + size_t bpsize; buf[0] = '\0'; bp = buf; - (void)sprintf(bp, "%c%d%c%c%d: ", name(pp), pp->altitude, + bpsize = sizeof(buf); + (void)snprintf(bp, bpsize, "%c%d%c%c%u: ", name(pp), pp->altitude, (pp->fuel < LOWFUEL) ? '*' : ' ', (pp->dest_type == T_AIRPORT) ? 'A' : 'E', pp->dest_no); comm_start = bp = strchr(buf, '\0'); + bpsize = buf + sizeof(buf) - bp; if (pp->altitude == 0) - (void)sprintf(bp, "Holding @ A%d", pp->orig_no); + (void)snprintf(bp, bpsize, "Holding @ A%u", pp->orig_no); else if (pp->new_dir >= MAXDIR || pp->new_dir < 0) - strcpy(bp, "Circle"); + (void)snprintf(bp, bpsize, "Circle"); else if (pp->new_dir != pp->dir) - (void)sprintf(bp, "%d", dir_deg(pp->new_dir)); + (void)snprintf(bp, bpsize, "%d", dir_deg(pp->new_dir)); bp = strchr(buf, '\0'); + bpsize = buf + sizeof(buf) - bp; if (pp->delayd) - (void)sprintf(bp, " @ B%d", pp->delayd_no); + (void)snprintf(bp, bpsize, " @ B%u", pp->delayd_no); bp = strchr(buf, '\0'); + bpsize = buf + sizeof(buf) - bp; if (*comm_start == '\0' && (pp->status == S_UNMARKED || pp->status == S_IGNORED)) - strcpy(bp, "---------"); + (void)snprintf(bp, bpsize, "---------"); return (buf); } char -name(p) - const PLANE *p; +name(const PLANE *p) { if (p->plane_type == 0) return ('A' + p->plane_no); @@ -264,19 +269,18 @@ name(p) } int -number(l) - char l; +number(int l) { - if (l < 'a' && l > 'z' && l < 'A' && l > 'Z') - return (-1); - else if (l >= 'a' && l <= 'z') + if (islower((unsigned char)l)) return (l - 'a'); - else + else if (isupper((unsigned char)l)) return (l - 'A'); + else + return (-1); } -int -next_plane() +static int +next_plane(void) { static int last_plane = -1; PLANE *pp; @@ -299,18 +303,19 @@ next_plane() break; } } while (found && last_plane != start_plane); - if (last_plane == start_plane) + if (found) return (-1); return (last_plane); } -int -addplane() +void +addplane(void) { PLANE p, *pp, *p1; - int i, num_starts, close, rnd, rnd2, pnum; + int isclose, pnum; + unsigned num_starts, rnd, rnd2, i; - memset(&p, 0, sizeof (p)); + (void)memset(&p, 0, sizeof (p)); p.status = S_MARKED; p.plane_type = random() % 2; @@ -338,13 +343,13 @@ addplane() p.ypos = sp->exit[rnd2].y; p.new_dir = p.dir = sp->exit[rnd2].dir; p.altitude = p.new_altitude = 7; - close = 0; + isclose = 0; for (p1 = air.head; p1 != NULL; p1 = p1->next) if (too_close(p1, &p, 4)) { - close++; + isclose++; break; } - if (close) + if (isclose) continue; } else { p.orig_type = T_AIRPORT; @@ -358,28 +363,25 @@ addplane() break; } if (i >= num_starts) - return (-1); + return; pnum = next_plane(); if (pnum < 0) - return (-1); + return; p.plane_no = pnum; pp = newplane(); if (pp == NULL) loser(NULL, "Out of memory!"); - memcpy(pp, &p, sizeof (p)); + (void)memcpy(pp, &p, sizeof (p)); if (pp->orig_type == T_AIRPORT) append(&ground, pp); else append(&air, pp); - - return (pp->dest_type); } -PLANE * -findplane(n) - int n; +PLANE * +findplane(int n) { PLANE *pp; @@ -392,21 +394,19 @@ findplane(n) return (NULL); } -int -too_close(p1, p2, dist) - const PLANE *p1, *p2; - int dist; +static int +too_close(const PLANE *p1, const PLANE *p2, int dist) { if (ABS(p1->altitude - p2->altitude) <= dist && - ABS(p1->xpos - p2->xpos) <= dist && ABS(p1->ypos - p2->ypos) <= dist) + ABS(p1->xpos - p2->xpos) <= dist && + ABS(p1->ypos - p2->ypos) <= dist) return (1); else return (0); } -int -dir_deg(d) - int d; +static int +dir_deg(int d) { switch (d) { case 0: return (0);