if (batx==quadx && baty==quady) return 0;\r
}\r
/* don't leave if over 1000 units of energy */\r
- if (kpower[loccom] > 1000.) return 0;\r
+ if (frozen.kpower[loccom] > 1000.) return 0;\r
}\r
/* print escape message and move out of quadrant.\r
We know this if either short or long range sensors are working */\r
- if (damage[DSRSENS] == 0.0 || damage[DLRSENS] == 0.0 ||\r
+ if (frozen.damage[DSRSENS] == 0.0 || frozen.damage[DLRSENS] == 0.0 ||\r
condit == IHDOCKED) {\r
proutn("***");\r
cramen(ienm);\r
prout(" (and regains strength).");\r
}\r
/* handle local matters related to escape */\r
- kx[loccom] = kx[nenhere];\r
- ky[loccom] = ky[nenhere];\r
- kavgd[loccom] = kavgd[nenhere];\r
- kpower[loccom] = kpower[nenhere];\r
- kdist[loccom] = kdist[nenhere];\r
+ frozen.kx[loccom] = frozen.kx[nenhere];\r
+ frozen.ky[loccom] = frozen.ky[nenhere];\r
+ frozen.kavgd[loccom] = frozen.kavgd[nenhere];\r
+ frozen.kpower[loccom] = frozen.kpower[nenhere];\r
+ frozen.kdist[loccom] = frozen.kdist[nenhere];\r
klhere--;\r
nenhere--;\r
if (condit != IHDOCKED) newcnd();\r
iscate=0;\r
ientesc=0;\r
isatb=0;\r
- future[FSCMOVE]=0.2777+state.date;\r
- future[FSCDBAS]=1e30;\r
+ frozen.future[FSCMOVE]=0.2777+state.date;\r
+ frozen.future[FSCDBAS]=1e30;\r
state.isx=iqx;\r
state.isy=iqy;\r
}\r
(comhere + ishere);\r
double dist1, forces;\r
\r
- dist1 = kdist[loccom];\r
+ dist1 = frozen.kdist[loccom];\r
mdist = dist1 + 0.5; /* Nearest integer distance */\r
\r
/* If SC, check with spy to see if should hi-tail it */\r
if (ienm==IHS &&\r
- (kpower[loccom] <= 500.0 || (condit==IHDOCKED && damage[DPHOTON]==0))) {\r
+ (frozen.kpower[loccom] <= 500.0 || (condit==IHDOCKED && frozen.damage[DPHOTON]==0))) {\r
irun = 1;\r
motion = -10;\r
}\r
* Motion is limited to skill level, except for SC hi-tailing it out.\r
*/\r
\r
- forces = kpower[loccom]+100.0*nenhere+400*(nbaddys-1);\r
+ forces = frozen.kpower[loccom]+100.0*nenhere+400*(nbaddys-1);\r
if (shldup==0) forces += 1000; /* Good for enemy if shield is down! */\r
- if (damage[DPHASER] == 0.0 || damage[DPHOTON] == 0.0) {\r
- if (damage[DPHASER] != 0) /* phasers damaged */\r
+ if (frozen.damage[DPHASER] == 0.0 || frozen.damage[DPHOTON] == 0.0) {\r
+ if (frozen.damage[DPHASER] != 0) /* phasers damaged */\r
forces += 300.0;\r
else\r
forces -= 0.2*(energy - 2500.0);\r
- if (damage[DPHOTON] != 0) /* photon torpedoes damaged */\r
+ if (frozen.damage[DPHOTON] != 0) /* photon torpedoes damaged */\r
forces += 300.0;\r
else\r
forces -= 50.0*torps;\r
frozen.quad[nextx][nexty] = ienm;\r
if (nextx != comx || nexty != comy) {\r
/* it moved */\r
- kx[loccom] = nextx;\r
- ky[loccom] = nexty;\r
- kdist[loccom] = kavgd[loccom] =\r
+ frozen.kx[loccom] = nextx;\r
+ frozen.ky[loccom] = nexty;\r
+ frozen.kdist[loccom] = frozen.kavgd[loccom] =\r
sqrt(square(sectx-nextx)+square(secty-nexty));\r
- if (damage[DSRSENS] == 0 || condit == IHDOCKED) {\r
+ if (frozen.damage[DSRSENS] == 0 || condit == IHDOCKED) {\r
proutn("***");\r
cramen(ienm);\r
- if (kdist[loccom] < dist1) proutn(" advances to");\r
+ if (frozen.kdist[loccom] < dist1) proutn(" advances to");\r
else proutn(" retreats to");\r
cramlc(2, nextx, nexty);\r
skip(1);\r
/* Figure out which Klingon is the commander (or Supercommander)\r
and do move */\r
if (comhere) for (i = 1; i <= nenhere; i++) {\r
- ix = kx[i];\r
- iy = ky[i];\r
+ ix = frozen.kx[i];\r
+ iy = frozen.ky[i];\r
if (frozen.quad[ix][iy] == IHC) {\r
movebaddy(ix, iy, i, IHC);\r
break;\r
}\r
}\r
if (ishere) for (i = 1; i <= nenhere; i++) {\r
- ix = kx[i];\r
- iy = ky[i];\r
+ ix = frozen.kx[i];\r
+ iy = frozen.ky[i];\r
if (frozen.quad[ix][iy] == IHS) {\r
movebaddy(ix, iy, i, IHS);\r
break;\r
Move these last so they can base their actions on what the\r
commander(s) do. */\r
if (skill > 3) for (i = 1; i <= nenhere; i++) {\r
- ix = kx[i];\r
- iy = ky[i];\r
+ ix = frozen.kx[i];\r
+ iy = frozen.ky[i];\r
if (frozen.quad[ix][iy] == IHK || frozen.quad[ix][iy] == IHR)\r
movebaddy(ix, iy, i, frozen.quad[ix][iy]);\r
}\r
isatb=0;\r
ishere=0;\r
ientesc=0;\r
- future[FSCDBAS]=1e30;\r
+ frozen.future[FSCDBAS]=1e30;\r
for (i = 1; i <= nenhere; i++) \r
- if (frozen.quad[kx[i]][ky[i]] == IHS) break;\r
- frozen.quad[kx[i]][ky[i]] = IHDOT;\r
- kx[i] = kx[nenhere];\r
- ky[i] = ky[nenhere];\r
- kdist[i] = kdist[nenhere];\r
- kavgd[i] = kavgd[nenhere];\r
- kpower[i] = kpower[nenhere];\r
+ if (frozen.quad[frozen.kx[i]][frozen.ky[i]] == IHS) break;\r
+ frozen.quad[frozen.kx[i]][frozen.ky[i]] = IHDOT;\r
+ frozen.kx[i] = frozen.kx[nenhere];\r
+ frozen.ky[i] = frozen.ky[nenhere];\r
+ frozen.kdist[i] = frozen.kdist[nenhere];\r
+ frozen.kavgd[i] = frozen.kavgd[nenhere];\r
+ frozen.kpower[i] = frozen.kpower[nenhere];\r
klhere--;\r
nenhere--;\r
if (condit!=IHDOCKED) newcnd();\r
/* destroy the planet */\r
state.plnets[i] = nulplanet;\r
state.newstuf[state.isx][state.isy] -= 1;\r
- if (damage[DRADIO] == 0.0 || condit == IHDOCKED) {\r
+ if (frozen.damage[DRADIO] == 0.0 || condit == IHDOCKED) {\r
if (*ipage==0) pause(1);\r
*ipage = 1;\r
prout("Lt. Uhura- \"Captain, Starfleet Intelligence reports");\r
/* compute distances to starbases */\r
if (state.rembase <= 0) {\r
/* nothing left to do */\r
- future[FSCMOVE] = 1e30;\r
+ frozen.future[FSCMOVE] = 1e30;\r
return;\r
}\r
sx = state.isx;\r
}\r
/* check for a base */\r
if (state.rembase == 0) {\r
- future[FSCMOVE] = 1e30;\r
+ frozen.future[FSCMOVE] = 1e30;\r
}\r
else for (i=1; i<=state.rembase; i++) {\r
ibqx = state.baseqx[i];\r
if (flag) return; /* no, don't attack base! */\r
iseenit = 0;\r
isatb=1;\r
- future[FSCDBAS] = state.date + 1.0 +2.0*Rand();\r
- if (batx != 0) future[FSCDBAS] += future[FCDBAS]-state.date;\r
- if (damage[DRADIO] > 0 && condit != IHDOCKED)\r
+ frozen.future[FSCDBAS] = state.date + 1.0 +2.0*Rand();\r
+ if (batx != 0) frozen.future[FSCDBAS] += frozen.future[FCDBAS]-state.date;\r
+ if (frozen.damage[DRADIO] > 0 && condit != IHDOCKED)\r
return; /* no warning */\r
iseenit = 1;\r
if (*ipage == 0) pause(1);\r
skip(1);\r
prout(" reports that it is under attack from the Klingon Super-commander.");\r
proutn(" It can survive until stardate ");\r
- cramf(future[FSCDBAS], 0, 1);\r
+ cramf(frozen.future[FSCDBAS], 0, 1);\r
prout(" .\"");\r
if (resting==0) return;\r
prout("Mr. Spock- \"Captain, shall we cancel the rest period?\"");\r
idebug==0 &&\r
#endif\r
(Rand() > 0.2 ||\r
- (damage[DRADIO] > 0.0 && condit != IHDOCKED) ||\r
- starch[state.isx][state.isy] > 0))\r
+ (frozen.damage[DRADIO] > 0.0 && condit != IHDOCKED) ||\r
+ frozen.starch[state.isx][state.isy] > 0))\r
return;\r
if (*ipage==0) pause(1);\r
*ipage = 1;\r