Files
Arquivotheca.SunOS-4.1.4/games/trek/autover.c
seta75D ff309bfe1c Init
2021-10-11 18:37:13 -03:00

45 lines
1.3 KiB
C
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#ifndef lint
static char sccsid[] = "@(#)autover.c 1.1 94/10/31 SMI"; /* from UCB 4.2 05/27/83 */
#endif
# include "trek.h"
/*
** Automatic Override
**
** If we should be so unlucky as to be caught in a quadrant
** with a supernova in it, this routine is called. It is
** called from checkcond().
**
** It sets you to a random warp (guaranteed to be over 6.0)
** and starts sending you off "somewhere" (whereever that is).
**
** Please note that it is VERY important that you reset your
** warp speed after the automatic override is called. The new
** warp factor does not stay in effect for just this routine.
**
** This routine will never try to send you more than sqrt(2)
** quadrants, since that is all that is needed.
*/
autover()
{
double dist;
register int course;
printf("RED ALERT: The %s is in a supernova quadrant\n", Ship.shipname);
printf("*** Emergency override attempts to hurl %s to safety\n", Ship.shipname);
/* let's get our ass out of here */
Ship.warp = 6.0 + 2.0 * franf();
Ship.warp2 = Ship.warp * Ship.warp;
Ship.warp3 = Ship.warp2 * Ship.warp;
dist = 0.75 * Ship.energy / (Ship.warp3 * (Ship.shldup + 1));
if (dist > 1.4142)
dist = 1.4142;
course = ranf(360);
Etc.nkling = -1;
Ship.cond = RED;
warp(-1, course, dist);
attack(0);
}