pdp11v/usr/src/games/trk/srscan.c

Compare this file to the similar file:
Show the results in this format:

static char ID[] = "@(#)srscan.c	1.1";

# include	"trek.h"

/**
 **	short range sensor scan
 **/

srscan()
{
	scansys(0);
}

status()
{
	scansys(-1);
}

scansys(f)
int f;
{
	register int		i, j;
	register int		statinfo;
	QUAD			*q;
	static int		savestat;
	int	scrups = 0;
	int	ret;
	char	c;

	if(f >= 0)
		switch(Damage[SRSCAN]) {
			case 0:
				break;

			case 1:
				if(!f)
					printf("Scotty: S. R. Scanners out\n");
				if(Status.cond == DOCKED)
					printf("; using Starbase scanners.\n");
				else {
					printf("\n");
					return;
				}
				break;

			default:
				if(!rmsgs[SRSC])
					if(randmsg("Scotty: May I remind you that S. R. scanners cannot be fully trusted\nin their present condition", 3))
						rmsgs[SRSC] = 1;
				scrups = Damage[SRSCAN];
				break;
		}
	if (f)
		statinfo = 1;
	else
	{
		if (lineended()==0)
			savestat = getynpar("Status report: ");
		statinfo = savestat;
	}
	if (f > 0)
		savestat = 1;
	if (f >= 0)
	{
		q = &Quad[Quadx][Quady];
		q->scanned = q->qkling * 100 + q->bases * 10 + q->stars;
		printf("  ");
		for (i = 0; i < NSECTS; i++)
		{
			printf("%d ", i);
		}
		printf("\tS.R. sensor scan for quadrant %d,%d\n", Quadx, Quady);
	}

	for (i=0; i<NSECTS && mkfault==0; i++)
	{
		if (f >= 0)
		{
			printf("%d ", i);
			for (j = 0; j < NSECTS; j++) {
				c = Sect[i][j];
				if(scrups) {
					ret = ranf(Damage[SRSCAN] - 1);
					if(ret)
						c = things[ret];
					scrups--;
				}
				printf("%c ", c);
			}
			printf("%d", i);
			if (statinfo)
				printf("   ");
		}
		if (statinfo)
			getinfo(i);
		else	printf("\n");
	}
	if (f < 0)
	{
		printf("current crew  %d\n", Status.crew);
		printf("brig space    %d\n", Status.brigfree);
		return;
	}
	printf("  ");
	for (i = 0; i < NSECTS; i++)
		printf("%d ", i);
	if (q->systemname&Q_DISTRESS)
		printf("\tDistressed starsystem %s",
				Systemname[Event[q->systemname&Q_STARNAME].evdata]);
	else
		if (q->systemname&Q_GHOST)
			printf("\tGhost starsystem %s",
					Systemname[q->systemname&Q_STARNAME]);
		else	if(q->systemname)
			printf("\tStarsystem %s", Systemname[q->systemname]);
	printf("\n");
}

effshld()
{
	return(100.0 * Status.shield / Initial.shield);
}