deltax /= bigger;\r
\r
/* If tractor beam is to occur, don't move full distance */\r
- if (d.date+Time >= future[FTBEAM]) {\r
+ if (state.date+Time >= future[FTBEAM]) {\r
trbeam = 1;\r
condit = IHRED;\r
- dist = dist*(future[FTBEAM]-d.date)/Time + 0.1;\r
- Time = future[FTBEAM] - d.date + 1e-5;\r
+ dist = dist*(future[FTBEAM]-state.date)/Time + 0.1;\r
+ Time = future[FTBEAM] - state.date + 1e-5;\r
}\r
/* Move within the quadrant */\r
quad[sectx][secty] = IHDOT;\r
(iy-ky[l])*(double)(iy-ky[l]));\r
kavgd[l] = 0.5 * (finald+kdist[l]);\r
}\r
- if (d.galaxy[quadx][quady] != 1000) attack(0);\r
+ if (state.galaxy[quadx][quady] != 1000) attack(0);\r
if (alldone) return;\r
}\r
/* compute final position -- new quadrant and sector */\r
kdist[l] = finald;\r
}\r
sortkl();\r
- if (d.galaxy[quadx][quady] != 1000 && iattak == 0)\r
+ if (state.galaxy[quadx][quady] != 1000 && iattak == 0)\r
attack(0);\r
for (l = 1 ; l <= nenhere; l++) kavgd[l] = kdist[l];\r
}\r
}\r
/* Make sure enough time is left for the trip */\r
Time = dist/0.095;\r
- if (Time >= d.remtime) {\r
+ if (Time >= state.remtime) {\r
prout("First Officer Spock- \"Captain, our speed under impulse");\r
prout("power is only 0.95 sectors per stardate. Are you sure");\r
prout("we dare spend the time?\"");\r
\r
/* Make sure enough time is left for the trip */\r
Time = 10.0*dist/wfacsq;\r
- if (Time >= 0.8*d.remtime) {\r
+ if (Time >= 0.8*state.remtime) {\r
skip(1);\r
prout("First Officer Spock- \"Captain, I compute that such");\r
proutn(" a trip would require approximately ");\r
- cramf(100.0*Time/d.remtime, 0, 2);\r
+ cramf(100.0*Time/state.remtime, 0, 2);\r
prout(" percent of our");\r
prout(" remaining time. Are you sure this is wise?\"");\r
if (ja() == 0) { ididit = 0; return;}\r
crmshp();\r
skip(1);\r
prout("safely out of quadrant.");\r
- starch[quadx][quady] = damage[DRADIO] > 0.0 ? d.galaxy[quadx][quady]+1000:1;\r
+ starch[quadx][quady] = damage[DRADIO] > 0.0 ? state.galaxy[quadx][quady]+1000:1;\r
\r
/* Try to use warp engines */\r
if (damage[DWARPEN]) {\r
return;\r
}\r
/* Repeat if another snova */\r
- } while (d.galaxy[quadx][quady] == 1000);\r
- if (d.remkl==0) finish(FWON); /* Snova killed remaining enemy. */\r
+ } while (state.galaxy[quadx][quady] == 1000);\r
+ if (state.remkl==0) finish(FWON); /* Snova killed remaining enemy. */\r
}\r
\r
void timwrp() {\r
int l, ll, gotit;\r
prout("***TIME WARP ENTERED.");\r
- if (d.snap && Rand() < 0.5) {\r
+ if (state.snap && Rand() < 0.5) {\r
/* Go back in time */\r
proutn("You are traveling backwards in time ");\r
- cramf(d.date-snapsht.date, 0, 2);\r
+ cramf(state.date-snapsht.date, 0, 2);\r
prout(" stardates.");\r
- d = snapsht;\r
- d.snap = 0;\r
- if (d.remcom) {\r
- future[FTBEAM] = d.date + expran(intime/d.remcom);\r
- future[FBATTAK] = d.date + expran(0.3*intime);\r
- }\r
- future[FSNOVA] = d.date + expran(0.5*intime);\r
- future[FSNAP] = d.date +expran(0.25*d.remtime); /* next snapshot will\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
+ }\r
+ future[FSNOVA] = state.date + expran(0.5*intime);\r
+ future[FSNAP] = state.date +expran(0.25*state.remtime); /* next snapshot will\r
be sooner */\r
- if (d.nscrem) future[FSCMOVE] = 0.2777;\r
+ if (state.nscrem) future[FSCMOVE] = 0.2777;\r
isatb = 0;\r
future[FCDBAS] = future[FSCDBAS] = 1e30;\r
batx = baty = 0;\r
when on planet, which would give us two Galileos! */\r
gotit = 0;\r
for (l = 1; l <= inplan; l++) {\r
- if (d.plnets[l].known == 2) {\r
+ if (state.plnets[l].known == 2) {\r
gotit = 1;\r
if (iscraft==1 && ship==IHE) {\r
prout("Checkov- \"Security reports the Galileo has disappeared, Sir!");\r
}\r
\r
/* Revert star chart to earlier era, if it was known then*/\r
- if (damage[DRADIO]==0.0 || stdamtim > d.date) {\r
+ if (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 ? d.galaxy[l][ll]+1000 :1;\r
+ starch[l][ll]=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 = d.date;\r
+ if (damage[DRADIO] > 0.0) stdamtim = state.date;\r
}\r
}\r
else {\r
probey = quady*10 + secty - 1;\r
probecx = quadx;\r
probecy = quady;\r
- future[FDSPROB] = d.date + 0.01; // Time to move one sector\r
+ 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("Subspace radio damaged.");\r
return;\r
}\r
- if (d.rembase==0) {\r
+ if (state.rembase==0) {\r
prout("Lt. Uhura- \"Captain, I'm not getting any response from Starbase.\"");\r
return;\r
}\r
}\r
else {\r
ddist = 1e30;\r
- for (l = 1; l <= d.rembase; l++) {\r
- xdist=10.0*sqrt(square(d.baseqx[l]-quadx)+square(d.baseqy[l]-quady));\r
+ for (l = 1; l <= state.rembase; l++) {\r
+ xdist=10.0*sqrt(square(state.baseqx[l]-quadx)+square(state.baseqy[l]-quady));\r
if (xdist < ddist) {\r
ddist = xdist;\r
line = l;\r
}\r
}\r
/* Since starbase not in quadrant, set up new quadrant */\r
- quadx = d.baseqx[line];\r
- quady = d.baseqy[line];\r
+ quadx = state.baseqx[line];\r
+ quady = state.baseqy[line];\r
newqad(1);\r
}\r
/* dematerialize starship */\r