install approved copyright notice
[unix-history] / usr / src / games / trek / impulse.c
/*
* Copyright (c) 1980 Regents of the University of California.
* All rights reserved.
*
* Redistribution and use in source and binary forms are permitted
* provided that the above copyright notice and this paragraph are
* duplicated in all such forms and that any documentation,
* advertising materials, and other materials related to such
* distribution and use acknowledge that the software was developed
* by the University of California, Berkeley. The name of the
* University may not be used to endorse or promote products derived
* from this software without specific prior written permission.
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
#ifndef lint
static char sccsid[] = "@(#)impulse.c 5.3 (Berkeley) %G%";
#endif /* not lint */
# include "trek.h"
/**
** move under impulse power
**/
impulse()
{
int course;
register int power;
double dist, time;
register int percent;
extern double move();
if (Ship.cond == DOCKED)
return (printf("Scotty: Sorry captain, but we are still docked.\n"));
if (damaged(IMPULSE))
return (out(IMPULSE));
if (getcodi(&course, &dist))
return;
power = 20 + 100 * dist;
percent = 100 * power / Ship.energy + 0.5;
if (percent >= 85)
{
printf("Scotty: That would consume %d%% of our remaining energy.\n",
percent);
if (!getynpar("Are you sure that is wise"))
return;
printf("Aye aye, sir\n");
}
time = dist / 0.095;
percent = 100 * time / Now.time + 0.5;
if (percent >= 85)
{
printf("Spock: That would take %d%% of our remaining time.\n",
percent);
if (!getynpar("Are you sure that is wise"))
return;
printf("(He's finally gone mad)\n");
}
Move.time = move(0, course, time, 0.095);
Ship.energy -= 20 + 100 * Move.time * 0.095;
}