|
|
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 a
Length: 2512 (0x9d0)
Types: TextFile
Names: »autoshoot.c«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987
└─⟦this⟧ »EUUGD18/General/Gb/autoshoot.c«
/*
* Galactic Bloodshed (Robert Chansky, smq@b)
* autoshoot() -- shoot <-> retaliate routine
* Bombard() -- ship bombards planet
*/
#include "vars.h"
#include "ships.h"
#include "races.h"
extern int Shipdata[NUMSTYPES][NUMABILS];
extern bool Nuked[MAXPLAYERS]; /* who was nuked on the planet/ship */
extern char telegram_buf[];
extern racetype *races[];
/* ship #shipno bombards planet, then sends telegrams alerting whom it
* may concern.
*/
Bombard(ship,shipno,planet)
shiptype *ship;
planettype *planet;
{
int x,y,oldown,radius,found=0;
char buf[200];
/* look for someone to bombard-check for war */
Getxysect(planet,0,0,1); /* reset */
while (Getxysect(planet,&x,&y,0) && !found)
if (isset(races[ship->owner]->atwar, Sector(*planet,x,y).owner))
found=1;
if (!found) {
/* no one we are at war with. find someone neutral
(owner 0 will work, too, but not already bombed)*/
Getxysect(planet,0,0,1); /* reset */
while (Getxysect(planet,&x,&y,0) && !found)
if (isclr(races[ship->owner]->allied, Sector(*planet,x,y).owner) && Sector(*planet,x,y).owner!=ship->owner && Sector(*planet,x,y).popn>0)
found=1;
}
if (found) {
oldown = Sector(*planet,x,y).owner;
/* do some bombarding here... */
teleg_add("",telegram_buf);
sprintf(buf,"REPORT: ship #%d\n",shipno);
teleg_add(buf,telegram_buf);
sprintf(buf,"%s #%d reports bombing of planet /%s/%s,\n",Shipnames[ship->type],x,Stars[ship->storbits]->name,Stars[ship->storbits]->pnames[ship->pnumorbits]);
teleg_add(buf,telegram_buf);
sprintf(buf,"sector %d,%d (owner %d) for a blast radius of %d.\n",x,y,oldown,radius);
teleg_add(buf,telegram_buf);
teleg_send(TELEG_PLAYER_AUTO, ship->owner, telegram_buf);
teleg_add("",telegram_buf);
sprintf(buf,"ALERT from planet /%s/%s\n",Stars[ship->storbits]->name,Stars[ship->storbits]->pnames[ship->pnumorbits]);
teleg_add(buf,telegram_buf);
sprintf(buf,"%s #%d Bombarded sector %d,%d for a blast radius of %d.\n",Shipnames[ship->type],shipno,x,y,radius);
teleg_add(buf,telegram_buf);
teleg_send(TELEG_PLAYER_AUTO, oldown, telegram_buf);
} else {
teleg_add("",telegram_buf);
sprintf(buf,"Report from %s #%d\n",Shipnames[ship->type],shipno);
teleg_add(buf,telegram_buf);
sprintf(buf,"Planet /%s/%s has been saturation bombed.\n",Stars[ship->storbits]->name,Stars[ship->storbits]->pnames[ship->pnumorbits]);
teleg_add(buf,telegram_buf);
teleg_send(TELEG_PLAYER_AUTO, ship->owner, telegram_buf);
}
}