deltax /= bigger;\r
\r
/* If tractor beam is to occur, don't move full distance */\r
- if (state.date+Time >= future[FTBEAM]) {\r
+ if (state.date+Time >= frozen.future[FTBEAM]) {\r
trbeam = 1;\r
condit = IHRED;\r
- dist = dist*(future[FTBEAM]-state.date)/Time + 0.1;\r
- Time = future[FTBEAM] - state.date + 1e-5;\r
+ dist = dist*(frozen.future[FTBEAM]-state.date)/Time + 0.1;\r
+ Time = frozen.future[FTBEAM] - state.date + 1e-5;\r
}\r
/* Move within the quadrant */\r
- quad[sectx][secty] = IHDOT;\r
+ frozen.quad[sectx][secty] = IHDOT;\r
x = sectx;\r
y = secty;\r
n = 10.0*dist*bigger+0.5;\r
if (nenhere != 0 && iattak != 2) {\r
newcnd();\r
for (l = 1; l <= nenhere; l++) {\r
- finald = sqrt((ix-kx[l])*(double)(ix-kx[l]) +\r
- (iy-ky[l])*(double)(iy-ky[l]));\r
- kavgd[l] = 0.5 * (finald+kdist[l]);\r
+ finald = sqrt((ix-frozen.kx[l])*(double)(ix-frozen.kx[l]) +\r
+ (iy-frozen.ky[l])*(double)(iy-frozen.ky[l]));\r
+ frozen.kavgd[l] = 0.5 * (finald+frozen.kdist[l]);\r
}\r
if (state.galaxy[quadx][quady] != 1000) attack(0);\r
if (alldone) return;\r
proutn("\nEntering");\r
cramlc(1, quadx, quady);\r
skip(1);\r
- quad[sectx][secty] = ship;\r
+ frozen.quad[sectx][secty] = ship;\r
newqad(0);\r
return;\r
}\r
- iquad = quad[ix][iy];\r
+ iquad = frozen.quad[ix][iy];\r
if (iquad != IHDOT) {\r
/* object encountered in flight path */\r
stopegy = 50.0*dist/Time;\r
finaly = secty;\r
label100:\r
/* No quadrant change -- compute new avg enemy distances */\r
- quad[sectx][secty] = ship;\r
+ frozen.quad[sectx][secty] = ship;\r
if (nenhere) {\r
for (l = 1; l <= nenhere; l++) {\r
- finald = sqrt((ix-kx[l])*(double)(ix-kx[l]) +\r
- (iy-ky[l])*(double)(iy-ky[l]));\r
- kavgd[l] = 0.5 * (finald+kdist[l]);\r
- kdist[l] = finald;\r
+ finald = sqrt((ix-frozen.kx[l])*(double)(ix-frozen.kx[l]) +\r
+ (iy-frozen.ky[l])*(double)(iy-frozen.ky[l]));\r
+ frozen.kavgd[l] = 0.5 * (finald+frozen.kdist[l]);\r
+ frozen.kdist[l] = finald;\r
}\r
sortkl();\r
if (state.galaxy[quadx][quady] != 1000 && iattak == 0)\r
attack(0);\r
- for (l = 1 ; l <= nenhere; l++) kavgd[l] = kdist[l];\r
+ for (l = 1 ; l <= nenhere; l++) frozen.kavgd[l] = frozen.kdist[l];\r
}\r
newcnd();\r
iattak = 0;\r
torps = intorps;\r
lsupres = inlsr;\r
if (stdamtim != 1e30 &&\r
- (future[FCDBAS] < 1e30 || isatb == 1) && iseenit == 0) {\r
+ (frozen.future[FCDBAS] < 1e30 || isatb == 1) && iseenit == 0) {\r
/* get attack report from base */\r
prout("Lt. Uhura- \"Captain, an important message from the starbase:\"");\r
attakreport();\r
return;\r
}\r
while (automatic == -1) {\r
- if (damage[DCOMPTR]) {\r
+ if (frozen.damage[DCOMPTR]) {\r
if (isprobe)\r
prout("Computer damaged; manual navigation only");\r
else\r
double power;\r
\r
ididit = 0;\r
- if (damage[DIMPULS]) {\r
+ if (frozen.damage[DIMPULS]) {\r
chew();\r
skip(1);\r
prout("Engineer Scott- \"The impulse engines are damaged, Sir.\"");\r
\r
if (i!=2) { /* Not WARPX entry */\r
ididit = 0;\r
- if (damage[DWARPEN] > 10.0) {\r
+ if (frozen.damage[DWARPEN] > 10.0) {\r
chew();\r
skip(1);\r
prout("Engineer Scott- \"The impulse engines are damaged, Sir.\"");\r
return;\r
}\r
- if (damage[DWARPEN] > 0.0 && warpfac > 4.0) {\r
+ if (frozen.damage[DWARPEN] > 0.0 && warpfac > 4.0) {\r
chew();\r
skip(1);\r
prout("Engineer Scott- \"Sorry, Captain. Until this damage");\r
y += deltay;\r
iy = y +0.5;\r
if (iy < 1 || iy > 10) break;\r
- if (quad[ix][iy] != IHDOT) {\r
+ if (frozen.quad[ix][iy] != IHDOT) {\r
blooey = 0;\r
twarp = 0;\r
}\r
Time = 10.0*dist/wfacsq;\r
if (twarp) timwrp();\r
if (blooey) {\r
- damage[DWARPEN] = damfac*(3.0*Rand()+1.0);\r
+ frozen.damage[DWARPEN] = damfac*(3.0*Rand()+1.0);\r
skip(1);\r
prout("Engineering to bridge--");\r
prout(" Scott here. The warp engines are damaged.");\r
huh();\r
return;\r
}\r
- if (damage[DWARPEN] > 10.0) {\r
+ if (frozen.damage[DWARPEN] > 10.0) {\r
prout("Warp engines inoperative.");\r
return;\r
}\r
- if (damage[DWARPEN] > 0.0 && aaitem > 4.0) {\r
+ if (frozen.damage[DWARPEN] > 0.0 && aaitem > 4.0) {\r
prout("Engineer Scott- \"I'm doing my best, Captain,\n"\r
" but right now we can only go warp 4.\"");\r
return;\r
chew();\r
/* is captain on planet? */\r
if (landed==1) {\r
- if (damage[DTRANSP]) {\r
+ if (frozen.damage[DTRANSP]) {\r
finish(FPNOVA);\r
return;\r
}\r
crmshp();\r
skip(1);\r
prout("safely out of quadrant.");\r
- starch[quadx][quady] = damage[DRADIO] > 0.0 ? state.galaxy[quadx][quady]+1000:1;\r
+ frozen.starch[quadx][quady] = frozen.damage[DRADIO] > 0.0 ? state.galaxy[quadx][quady]+1000:1;\r
\r
/* Try to use warp engines */\r
- if (damage[DWARPEN]) {\r
+ if (frozen.damage[DWARPEN]) {\r
skip(1);\r
prout("Warp engines damaged.");\r
finish(FSNOVAED);\r
state = snapsht;\r
state.snap = 0;\r
if (state.remcom) {\r
- future[FTBEAM] = state.date + expran(intime/state.remcom);\r
- future[FBATTAK] = state.date + expran(0.3*intime);\r
+ frozen.future[FTBEAM] = state.date + expran(intime/state.remcom);\r
+ frozen.future[FBATTAK] = state.date + expran(0.3*intime);\r
}\r
- future[FSNOVA] = state.date + expran(0.5*intime);\r
- future[FSNAP] = state.date +expran(0.25*state.remtime); /* next snapshot will\r
+ frozen.future[FSNOVA] = state.date + expran(0.5*intime);\r
+ frozen.future[FSNAP] = state.date +expran(0.25*state.remtime); /* next snapshot will\r
be sooner */\r
- if (state.nscrem) future[FSCMOVE] = 0.2777;\r
+ if (state.nscrem) frozen.future[FSCMOVE] = 0.2777;\r
isatb = 0;\r
- future[FCDBAS] = future[FSCDBAS] = 1e30;\r
+ frozen.future[FCDBAS] = frozen.future[FSCDBAS] = 1e30;\r
batx = baty = 0;\r
\r
/* Make sure Galileo is consistant -- Snapshot may have been taken\r
}\r
/* Likewise, if in the original time the Galileo was abandoned, but\r
was on ship earlier, it would have vanished -- lets restore it */\r
- if (iscraft==0 && gotit==0 && damage[DSHUTTL] >= 0.0) {\r
+ if (iscraft==0 && gotit==0 && frozen.damage[DSHUTTL] >= 0.0) {\r
prout("Checkov- \"Security reports the Galileo has reappeared in the dock!\"");\r
iscraft = 1;\r
}\r
\r
/* Revert star chart to earlier era, if it was known then*/\r
- if (damage[DRADIO]==0.0 || stdamtim > state.date) {\r
+ if (frozen.damage[DRADIO]==0.0 || stdamtim > state.date) {\r
for (l = 1; l <= 8; l++)\r
for (ll = 1; ll <= 8; ll++)\r
- if (starch[l][ll] > 1)\r
- starch[l][ll]=damage[DRADIO]>0.0 ? state.galaxy[l][ll]+1000 :1;\r
+ if (frozen.starch[l][ll] > 1)\r
+ frozen.starch[l][ll]=frozen.damage[DRADIO]>0.0 ? state.galaxy[l][ll]+1000 :1;\r
prout("Spock has reconstructed a correct star chart from memory");\r
- if (damage[DRADIO] > 0.0) stdamtim = state.date;\r
+ if (frozen.damage[DRADIO] > 0.0) stdamtim = state.date;\r
}\r
}\r
else {\r
cramf(Time, 1, 2);\r
prout(" stardates.");\r
/* cheat to make sure no tractor beams occur during time warp */\r
- future[FTBEAM] += Time;\r
- damage[DRADIO] += Time;\r
+ frozen.future[FTBEAM] += Time;\r
+ frozen.damage[DRADIO] += Time;\r
}\r
newqad(0);\r
}\r
prout("Ye Faerie Queene has no deep space probes.");\r
return;\r
}\r
- if (damage[DDSP] != 0.0) {\r
+ if (frozen.damage[DDSP] != 0.0) {\r
chew();\r
skip(1);\r
prout("Engineer Scott- \"The probe launcher is damaged, Sir.\"");\r
return;\r
}\r
- if (future[FDSPROB] != 1e30) {\r
+ if (frozen.future[FDSPROB] != 1e30) {\r
chew();\r
skip(1);\r
- if (damage[DRADIO] != 0 && condit != IHDOCKED) {\r
+ if (frozen.damage[DRADIO] != 0 && condit != IHDOCKED) {\r
prout("Spock- \"Records show the previous probe has not yet");\r
prout(" reached its destination.\"");\r
}\r
probey = quady*10 + secty - 1;\r
probecx = quadx;\r
probecy = quady;\r
- future[FDSPROB] = state.date + 0.01; // Time to move one sector\r
+ frozen.future[FDSPROB] = state.date + 0.01; // Time to move one sector\r
prout("Ensign Chekov- \"The deep space probe is launched, Captain.\"");\r
return;\r
}\r
prout("Lt. Uhura- \"But Captain, we're already docked.\"");\r
return;\r
}\r
- if (damage[DRADIO] != 0) {\r
+ if (frozen.damage[DRADIO] != 0) {\r
prout("Subspace radio damaged.");\r
return;\r
}\r
newqad(1);\r
}\r
/* dematerialize starship */\r
- quad[sectx][secty]=IHDOT;\r
+ frozen.quad[sectx][secty]=IHDOT;\r
proutn("Starbase in");\r
cramlc(1, quadx, quady);\r
proutn(" responds--");\r
for (l = 1; l <= 5; l++) {\r
ix = basex+3.0*Rand()-1;\r
iy = basey+3.0*Rand()-1;\r
- if (ix>=1 && ix<=10 && iy>=1 && iy<=10 && quad[ix][iy]==IHDOT) {\r
+ if (ix>=1 && ix<=10 && iy>=1 && iy<=10 && frozen.quad[ix][iy]==IHDOT) {\r
/* found one -- finish up */\r
prout("succeeds.");\r
sectx=ix;\r
secty=iy;\r
- quad[ix][iy]=ship;\r
+ frozen.quad[ix][iy]=ship;\r
dock();\r
skip(1);\r
prout("Lt. Uhura- \"Captain, we made it!\"");\r