if (my != 0) my = my*motion < 0 ? -1 : 1;\r
nextx = comx;\r
nexty = comy;\r
- quad[comx][comy] = IHDOT;\r
+ frozen.quad[comx][comy] = IHDOT;\r
/* main move loop */\r
for (ll = 1; ll <= nsteps; ll++) {\r
#ifdef DEBUG\r
looky = nexty + krawly;\r
krawly = -krawly;\r
}\r
- else if (quad[lookx][looky] != IHDOT) {\r
+ else if (frozen.quad[lookx][looky] != IHDOT) {\r
/* See if we should ram ship */\r
- if (quad[lookx][looky] == ship &&\r
+ if (frozen.quad[lookx][looky] == ship &&\r
(ienm == IHC || ienm == IHS)) {\r
ram(1, ienm, comx, comy);\r
return;\r
else break; /* done early */\r
}\r
/* Put commander in place within same quadrant */\r
- quad[nextx][nexty] = ienm;\r
+ frozen.quad[nextx][nexty] = ienm;\r
if (nextx != comx || nexty != comy) {\r
/* it moved */\r
kx[loccom] = nextx;\r
if (comhere) for (i = 1; i <= nenhere; i++) {\r
ix = kx[i];\r
iy = ky[i];\r
- if (quad[ix][iy] == IHC) {\r
+ if (frozen.quad[ix][iy] == IHC) {\r
movebaddy(ix, iy, i, IHC);\r
break;\r
}\r
if (ishere) for (i = 1; i <= nenhere; i++) {\r
ix = kx[i];\r
iy = ky[i];\r
- if (quad[ix][iy] == IHS) {\r
+ if (frozen.quad[ix][iy] == IHS) {\r
movebaddy(ix, iy, i, IHS);\r
break;\r
}\r
if (skill > 3) for (i = 1; i <= nenhere; i++) {\r
ix = kx[i];\r
iy = ky[i];\r
- if (quad[ix][iy] == IHK || quad[ix][iy] == IHR)\r
- movebaddy(ix, iy, i, quad[ix][iy]);\r
+ if (frozen.quad[ix][iy] == IHK || frozen.quad[ix][iy] == IHR)\r
+ movebaddy(ix, iy, i, frozen.quad[ix][iy]);\r
}\r
\r
sortkl();\r
ientesc=0;\r
future[FSCDBAS]=1e30;\r
for (i = 1; i <= nenhere; i++) \r
- if (quad[kx[i]][ky[i]] == IHS) break;\r
- quad[kx[i]][ky[i]] = IHDOT;\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
}\r
\r
/* Do nothing if we are blocked */\r
- if (quad[idx][idy]!= IHDOT && quad[idx][idy]!= IHWEB) return;\r
- quad[ithx][ithy] = IHWEB;\r
+ if (frozen.quad[idx][idy]!= IHDOT && frozen.quad[idx][idy]!= IHWEB) return;\r
+ frozen.quad[ithx][ithy] = IHWEB;\r
\r
if (ithx != idx) {\r
/* move in x axis */\r
im = fabs((double)idx - ithx)/((double)idx - ithx);\r
while (ithx != idx) {\r
ithx += im;\r
- if (quad[ithx][ithy]==IHDOT) quad[ithx][ithy] = IHWEB;\r
+ if (frozen.quad[ithx][ithy]==IHDOT) frozen.quad[ithx][ithy] = IHWEB;\r
}\r
}\r
else if (ithy != idy) {\r
im = fabs((double)idy - ithy)/((double)idy - ithy);\r
while (ithy != idy) {\r
ithy += im;\r
- if (quad[ithx][ithy]==IHDOT) quad[ithx][ithy] = IHWEB;\r
+ if (frozen.quad[ithx][ithy]==IHDOT) frozen.quad[ithx][ithy] = IHWEB;\r
}\r
}\r
- quad[ithx][ithy] = IHT;\r
+ frozen.quad[ithx][ithy] = IHT;\r
\r
/* check to see if all holes plugged */\r
for (i = 1; i < 11; i++) {\r
- if (quad[1][i]!=IHWEB && quad[1][i]!=IHT) return;\r
- if (quad[10][i]!=IHWEB && quad[10][i]!=IHT) return;\r
- if (quad[i][1]!=IHWEB && quad[i][1]!=IHT) return;\r
- if (quad[i][10]!=IHWEB && quad[i][10]!=IHT) return;\r
+ if (frozen.quad[1][i]!=IHWEB && frozen.quad[1][i]!=IHT) return;\r
+ if (frozen.quad[10][i]!=IHWEB && frozen.quad[10][i]!=IHT) return;\r
+ if (frozen.quad[i][1]!=IHWEB && frozen.quad[i][1]!=IHT) return;\r
+ if (frozen.quad[i][10]!=IHWEB && frozen.quad[i][10]!=IHT) return;\r
}\r
/* All plugged up -- Tholian splits */\r
- quad[ithx][ithy]=IHWEB;\r
+ frozen.quad[ithx][ithy]=IHWEB;\r
dropin(IHBLANK, &dum, &my);\r
crmena(1,IHT, 2, ithx, ithy);\r
prout(" completes web.");\r