#include "sst.h"\r
\r
-void sheild(int i) {\r
+void doshield(int i) {\r
int key;\r
enum {NONE, SHUP, SHDN, NRG} action = NONE;\r
\r
damage[l] += Time + extradm; /* Damage for at least time of travel! */\r
}\r
shldup = 0;\r
- if (d.remkl) {\r
+ if (state.remkl) {\r
pause(2);\r
dreprt();\r
}\r
case IHB: /* Hit a base */\r
prout("***STARBASE DESTROYED..");\r
if (starch[quadx][quady] < 0) starch[quadx][quady] = 0;\r
- for (ll=1; ll<=d.rembase; ll++) {\r
- if (d.baseqx[ll]==quadx && d.baseqy[ll]==quady) {\r
- d.baseqx[ll]=d.baseqx[d.rembase];\r
- d.baseqy[ll]=d.baseqy[d.rembase];\r
+ for (ll=1; ll<=state.rembase; ll++) {\r
+ if (state.baseqx[ll]==quadx && state.baseqy[ll]==quady) {\r
+ state.baseqx[ll]=state.baseqx[state.rembase];\r
+ state.baseqy[ll]=state.baseqy[state.rembase];\r
break;\r
}\r
}\r
quad[ix][iy]=IHDOT;\r
- d.rembase--;\r
+ state.rembase--;\r
basex=basey=0;\r
- d.galaxy[quadx][quady] -= 10;\r
- d.basekl++;\r
+ state.galaxy[quadx][quady] -= 10;\r
+ state.basekl++;\r
newcnd();\r
return;\r
case IHP: /* Hit a planet */\r
crmena(1, iquad, 2, ix, iy);\r
prout(" destroyed.");\r
- d.nplankl++;\r
- d.newstuf[quadx][quady] -= 1;\r
- d.plnets[iplnet] = nulplanet;\r
+ state.nplankl++;\r
+ state.newstuf[quadx][quady] -= 1;\r
+ state.plnets[iplnet] = nulplanet;\r
iplnet = 0;\r
plnetx = plnety = 0;\r
quad[ix][iy] = IHDOT;\r
r = (Rand()+Rand())*0.5 -0.5;\r
r += 0.002*kpower[l]*r;\r
torpedo(course, r, jx, jy, &hit);\r
- if (d.remkl==0) finish(FWON); /* Klingons did themselves in! */\r
- if (d.galaxy[quadx][quady] == 1000 ||\r
+ if (state.remkl==0) finish(FWON); /* Klingons did themselves in! */\r
+ if (state.galaxy[quadx][quady] == 1000 ||\r
alldone) return; /* Supernova or finished */\r
if (hit == 0) continue;\r
}\r
/* Decide what kind of enemy it is and update approriately */\r
if (type == IHR) {\r
/* chalk up a Romulan */\r
- d.newstuf[quadx][quady] -= 10;\r
+ state.newstuf[quadx][quady] -= 10;\r
irhere--;\r
- d.nromkl++;\r
- d.nromrem--;\r
+ state.nromkl++;\r
+ state.nromrem--;\r
}\r
else if (type == IHT) {\r
- /* Killed a Tholean */\r
+ /* Killed a Tholian */\r
ithere = 0;\r
}\r
else {\r
/* Some type of a Klingon */\r
- d.galaxy[quadx][quady] -= 100;\r
+ state.galaxy[quadx][quady] -= 100;\r
klhere--;\r
- d.remkl--;\r
+ state.remkl--;\r
switch (type) {\r
case IHC:\r
comhere = 0;\r
- for (i=1; i<=d.remcom; i++)\r
- if (d.cx[i]==quadx && d.cy[i]==quady) break;\r
- d.cx[i] = d.cx[d.remcom];\r
- d.cy[i] = d.cy[d.remcom];\r
- d.cx[d.remcom] = 0;\r
- d.cy[d.remcom] = 0;\r
- d.remcom--;\r
+ for (i=1; i<=state.remcom; i++)\r
+ if (state.cx[i]==quadx && state.cy[i]==quady) break;\r
+ state.cx[i] = state.cx[state.remcom];\r
+ state.cy[i] = state.cy[state.remcom];\r
+ state.cx[state.remcom] = 0;\r
+ state.cy[state.remcom] = 0;\r
+ state.remcom--;\r
future[FTBEAM] = 1e30;\r
- if (d.remcom != 0)\r
- future[FTBEAM] = d.date + expran(1.0*incom/d.remcom);\r
- d.killc++;\r
+ if (state.remcom != 0)\r
+ future[FTBEAM] = state.date + expran(1.0*incom/state.remcom);\r
+ state.killc++;\r
break;\r
case IHK:\r
- d.killk++;\r
+ state.killk++;\r
break;\r
case IHS:\r
- d.nscrem = ishere = d.isx = d.isy = isatb = iscate = 0;\r
- d.nsckill = 1;\r
+ state.nscrem = ishere = state.isx = state.isy = isatb = iscate = 0;\r
+ state.nsckill = 1;\r
future[FSCMOVE] = future[FSCDBAS] = 1e30;\r
break;\r
}\r
}\r
\r
/* For each kind of enemy, finish message to player */\r
- prout(" destroyed.");\r
+ prout(" destroyestate.");\r
quad[ix][iy] = IHDOT;\r
- if (d.remkl==0) return;\r
+ if (state.remkl==0) return;\r
\r
- d.remtime = d.remres/(d.remkl + 4*d.remcom);\r
+ state.remtime = state.remres/(state.remkl + 4*state.remcom);\r
\r
if (type == IHT) return;\r
\r
proutn("Torpedo track- ");\r
}\r
torpedo(course[i], r, sectx, secty, &dummy);\r
- if (alldone || d.galaxy[quadx][quady]==1000) return;\r
+ if (alldone || state.galaxy[quadx][quady]==1000) return;\r
}\r
- if (d.remkl==0) finish(FWON);\r
+ if (state.remkl==0) finish(FWON);\r
}\r
\r
\r
skip(1);\r
if (kpow == 0) {\r
deadkl(ii, jj, ienm, ii, jj);\r
- if (d.remkl==0) finish(FWON);\r
+ if (state.remkl==0) finish(FWON);\r
if (alldone) return;\r
kk--; /* don't do the increment */\r
}\r