|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T l
Length: 1881 (0x759)
Types: TextFile
Names: »leave_at.c«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987
└─⟦this⟧ »EUUGD18/General/Galaxy/src/leave_at.c«
/*
* %W% (mrdch&amnnon) %G%
*/
# include "header"
leaveat (s)
char *s;
{
planet * pp;
int i = 0,
spl;
char cc;
pp = getpl (s); /* get planet id. */
assert_player (pp); /* see if legal + owner */
skipwhite (s);
/* in case of knowledge, no parameter needed */
if (*s == 'k' || (*s == 'K')) {
if (pp -> inventar.know > pp -> to_take.know) {
say ("But sir !!! Why destroy the hard acquired knowledge??");
return ;
}
pp -> inventar.know = pp -> to_take.know;
if (*s == 'K') /* clear moving knowledge */
pp -> to_take.know = 0;
say ("%c-type knowledge was left, sir !!!", 'A' + pp -> inventar.know);
return;
}
i = atoi (s); /* in any other case- numeric parameter
needed */
assert_number (i); /* chek if legal no. */
skipword (s);
cc = *s++; /* take item he wants to leave on planet
*/
assert_end (s); /* does he end gracefully?? */
if (cc == 't') {
if (pp -> to_take.metals < i) {
say ("But you don't have that much metal there !!");
return;
}
/* perform metal transfer */
pp -> to_take.metals -= i;
pp -> inventar.metals += i;
say ("%d A-type material was transferred, sir !!", i);
return;
}
spl = which_class (cc);
assert_occup (spl); /* does it exist?? */
if (pp -> to_take.popul[spl] < i) {
say ("But sir, you don't have that many %s there!!!", ocup_name[spl]);
return;
}
/* perform human transfer */
pp -> to_take.popul[spl] -= i;
pp -> inventar.popul[spl] += i;
say ("%d %s were left on planet, sir.", i, ocup_name[spl]);
return;
}