action = NRG;\r
else {\r
chew();\r
- if (damage[DSHIELD]) {\r
+ if (game.damage[DSHIELD]) {\r
prout("Shields damaged and down.");\r
return;\r
}\r
proutn("Energy to transfer to shields- ");\r
action = NRG;\r
}\r
- else if (damage[DSHIELD]) {\r
+ else if (game.damage[DSHIELD]) {\r
prout("Shields damaged and down.");\r
return;\r
}\r
crmshp();\r
prout(" heavily damaged.");\r
icas = 10.0+20.0*Rand();\r
- proutn("***Sickbay reports ");\r
- crami(icas, 1);\r
- prout(" casualties.");\r
+ prout("***Sickbay reports %d casualties", icas);\r
casual += icas;\r
- for (l=1; l <= ndevice; l++) {\r
+ for (l=1; l <= NDEVICES; l++) {\r
if (l == DDRAY) continue; // Don't damage deathray \r
- if (damage[l] < 0) continue;\r
+ if (game.damage[l] < 0) continue;\r
extradm = (10.0*type*Rand()+1.0)*damfac;\r
- damage[l] += Time + extradm; /* Damage for at least time of travel! */\r
+ game.damage[l] += Time + extradm; /* Damage for at least time of travel! */\r
}\r
shldup = 0;\r
- if (state.remkl) {\r
+ if (game.state.remkl) {\r
pause(2);\r
dreprt();\r
}\r
iy = y + 0.5;\r
if (iy < 1 || iy > 10) break;\r
if (l==4 || l==9) skip(1);\r
- cramf(x, 0, 1);\r
- proutn(" - ");\r
- cramf(y, 0, 1);\r
- proutn(" ");\r
- iquad=frozen.quad[ix][iy];\r
+ proutn("%d - %d ", (int)x, (int)y);\r
+ iquad=game.quad[ix][iy];\r
if (iquad==IHDOT) continue;\r
/* hit something */\r
skip(1);\r
jx=ix+xx+0.5;\r
jy=iy+yy+0.5;\r
if (jx<1 || jx>10 || jy<1 ||jy > 10) return;\r
- if (frozen.quad[jx][jy]==IHBLANK) {\r
+ if (game.quad[jx][jy]==IHBLANK) {\r
finish(FHOLE);\r
return;\r
}\r
- if (frozen.quad[jx][jy]!=IHDOT) {\r
+ if (game.quad[jx][jy]!=IHDOT) {\r
/* can't move into object */\r
return;\r
}\r
case IHK:\r
/* find the enemy */\r
for (ll=1; ll <= nenhere; ll++)\r
- if (ix==kx[ll] && iy==ky[ll]) break;\r
- kp = fabs(kpower[ll]);\r
+ if (ix==game.kx[ll] && iy==game.ky[ll]) break;\r
+ kp = fabs(game.kpower[ll]);\r
h1 = 700.0 + 100.0*Rand() -\r
1000.0*sqrt(square(ix-inx)+square(iy-iny))*\r
fabs(sin(bullseye-angle));\r
h1 = fabs(h1);\r
if (kp < h1) h1 = kp;\r
- kpower[ll] -= (kpower[ll]<0 ? -h1 : h1);\r
- if (kpower[ll] == 0) {\r
+ game.kpower[ll] -= (game.kpower[ll]<0 ? -h1 : h1);\r
+ if (game.kpower[ll] == 0) {\r
deadkl(ix, iy, iquad, ix, iy);\r
return;\r
}\r
prout(" damaged but not destroyed.");\r
return;\r
}\r
- if (frozen.quad[jx][jy]==IHBLANK) {\r
+ if (game.quad[jx][jy]==IHBLANK) {\r
prout(" buffeted into black hole.");\r
deadkl(ix, iy, iquad, jx, jy);\r
return;\r
}\r
- if (frozen.quad[jx][jy]!=IHDOT) {\r
+ if (game.quad[jx][jy]!=IHDOT) {\r
/* can't move into object */\r
prout(" damaged but not destroyed.");\r
return;\r
}\r
prout(" damaged--");\r
- kx[ll] = jx;\r
- ky[ll] = jy;\r
+ game.kx[ll] = jx;\r
+ game.ky[ll] = jy;\r
shoved = 1;\r
break;\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<=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
+ if (game.starch[quadx][quady] < 0) game.starch[quadx][quady] = 0;\r
+ for (ll=1; ll<=game.state.rembase; ll++) {\r
+ if (game.state.baseqx[ll]==quadx && game.state.baseqy[ll]==quady) {\r
+ game.state.baseqx[ll]=game.state.baseqx[game.state.rembase];\r
+ game.state.baseqy[ll]=game.state.baseqy[game.state.rembase];\r
break;\r
}\r
}\r
- frozen.quad[ix][iy]=IHDOT;\r
- state.rembase--;\r
+ game.quad[ix][iy]=IHDOT;\r
+ game.state.rembase--;\r
basex=basey=0;\r
- state.galaxy[quadx][quady] -= 10;\r
- state.basekl++;\r
+ game.state.galaxy[quadx][quady] -= 10;\r
+ game.state.basekl++;\r
newcnd();\r
return;\r
case IHP: /* Hit a planet */\r
crmena(1, iquad, 2, ix, iy);\r
prout(" destroyed.");\r
- state.nplankl++;\r
- state.newstuf[quadx][quady] -= 1;\r
- state.plnets[iplnet] = nulplanet;\r
+ game.state.nplankl++;\r
+ game.state.newstuf[quadx][quady] -= 1;\r
+ DESTROY(&game.state.plnets[iplnet]);\r
iplnet = 0;\r
plnetx = plnety = 0;\r
- frozen.quad[ix][iy] = IHDOT;\r
+ game.quad[ix][iy] = IHDOT;\r
if (landed==1) {\r
/* captain parishes on planet */\r
finish(FDPLANET);\r
proutn("Mr. Spock-");\r
prouts(" \"Facinating!\"");\r
skip(1);\r
- frozen.quad[ix][iy] = IHDOT;\r
+ game.quad[ix][iy] = IHDOT;\r
return;\r
case IHBLANK: /* Black hole */\r
skip(1);\r
h1 = fabs(h1);\r
if (h1 >= 600) {\r
prout(" destroyed.");\r
- frozen.quad[ix][iy] = IHDOT;\r
+ game.quad[ix][iy] = IHDOT;\r
ithere = 0;\r
ithx = ithy = 0;\r
return;\r
return;\r
}\r
prout(" disappears.");\r
- frozen.quad[ix][iy] = IHWEB;\r
+ game.quad[ix][iy] = IHWEB;\r
ithere = ithx = ithy = 0;\r
{\r
int dum, my;\r
break;\r
}\r
if (shoved) {\r
- frozen.quad[jx][jy]=iquad;\r
- frozen.quad[ix][iy]=IHDOT;\r
- proutn(" displaced by blast to");\r
- cramlc(2, jx, jy);\r
- skip(1);\r
+ game.quad[jx][jy]=iquad;\r
+ game.quad[ix][iy]=IHDOT;\r
+ prout(" displaced by blast to %s ", cramlc(sector, jx, jy));\r
for (ll=1; ll<=nenhere; ll++)\r
- kdist[ll] = kavgd[ll] = sqrt(square(sectx-kx[ll])+square(secty-ky[ll]));\r
+ game.kdist[ll] = game.kavgd[ll] = sqrt(square(sectx-game.kx[ll])+square(secty-game.ky[ll]));\r
sortkl();\r
return;\r
}\r
/* Select devices and cause damage */\r
for (l = 1; l <= ncrit; l++) {\r
do {\r
- j = ndevice*Rand()+1.0;\r
+ j = NDEVICES*Rand()+1.0;\r
/* Cheat to prevent shuttle damage unless on ship */\r
- } while (damage[j] < 0.0 || (j == DSHUTTL && iscraft != 1) ||\r
+ } while (game.damage[j] < 0.0 || (j == DSHUTTL && iscraft != 1) ||\r
j == DDRAY);\r
cdam[l] = j;\r
extradm = (hit*damfac)/(ncrit*(75.0+25.0*Rand()));\r
- damage[j] += extradm;\r
+ game.damage[j] += extradm;\r
if (l > 1) {\r
for (ll=2; ll<=l && j != cdam[ll-1]; ll++) ;\r
if (ll<=l) continue;\r
proutn(device[j]);\r
}\r
prout(" damaged.");\r
- if (damage[DSHIELD] && shldup) {\r
+ if (game.damage[DSHIELD] && shldup) {\r
prout("***Shields knocked down.");\r
shldup=0;\r
}\r
skip(1);\r
if (skill <= 2) i = 2;\r
for (l=1; l <= nenhere; l++) {\r
- if (kpower[l] < 0) continue; /* too weak to attack */\r
+ if (game.kpower[l] < 0) continue; /* too weak to attack */\r
/* compute hit strength and diminsh shield power */\r
r = Rand();\r
/* Increase chance of photon torpedos if docked or enemy energy low */\r
if (condit == IHDOCKED) r *= 0.25;\r
- if (kpower[l] < 500) r *= 0.25; \r
- jx = kx[l];\r
- jy = ky[l];\r
- iquad = frozen.quad[jx][jy];\r
+ if (game.kpower[l] < 500) r *= 0.25; \r
+ jx = game.kx[l];\r
+ jy = game.ky[l];\r
+ iquad = game.quad[jx][jy];\r
itflag = (iquad == IHK && r > 0.0005) || k == 0 ||\r
(iquad==IHC && r > 0.015) ||\r
(iquad==IHR && r > 0.3) ||\r
if (condit == IHDOCKED) continue; /* Don't waste the effort! */\r
attempt = 1; /* Attempt to attack */\r
dustfac = 0.8+0.05*Rand();\r
- hit = kpower[l]*pow(dustfac,kavgd[l]);\r
- kpower[l] *= 0.75;\r
+ hit = game.kpower[l]*pow(dustfac,game.kavgd[l]);\r
+ game.kpower[l] *= 0.75;\r
}\r
else { /* Enemy used photon torpedo */\r
double course = 1.90985*atan2((double)secty-jy, (double)jx-sectx);\r
hit = 0;\r
proutn("***TORPEDO INCOMING");\r
- if (damage[DSRSENS] <= 0.0) {\r
+ if (game.damage[DSRSENS] <= 0.0) {\r
proutn(" From ");\r
crmena(0, iquad, i, jx, jy);\r
}\r
attempt = 1;\r
prout("--");\r
r = (Rand()+Rand())*0.5 -0.5;\r
- r += 0.002*kpower[l]*r;\r
+ r += 0.002*game.kpower[l]*r;\r
torpedo(course, r, jx, jy, &hit);\r
- if (state.remkl==0) finish(FWON); /* Klingons did themselves in! */\r
- if (state.galaxy[quadx][quady] == 1000 ||\r
+ if (game.state.remkl==0) finish(FWON); /* Klingons did themselves in! */\r
+ if (game.state.galaxy[quadx][quady] == 1000 ||\r
alldone) return; /* Supernova or finished */\r
if (hit == 0) continue;\r
}\r
shields were down for some strange reason. This\r
doesn't make any sense, so I've fixed it */\r
ihurt = 1;\r
- cramf(hit, 0, 2);\r
- proutn(" unit hit");\r
- if ((damage[DSRSENS] > 0 && itflag) || skill <= 2) {\r
+ proutn("%d unit hit", (int)hit);\r
+ if ((game.damage[DSRSENS] > 0 && itflag) || skill <= 2) {\r
proutn(" on the ");\r
crmshp();\r
}\r
- if (damage[DSRSENS] <= 0.0 && itflag) {\r
+ if (game.damage[DSRSENS] <= 0.0 && itflag) {\r
proutn(" from ");\r
crmena(0, iquad, i, jx, jy);\r
}\r
if (hit > hitmax) hitmax = hit;\r
hittot += hit;\r
fry(hit);\r
- printf("Hit %g energy %g\n", hit, energy);\r
+ prout("Hit %g energy %g", hit, energy);\r
energy -= hit;\r
}\r
if (energy <= 0) {\r
else {\r
/* Print message if starship suffered hit(s) */\r
skip(1);\r
- proutn("Energy left ");\r
- cramf(energy, 0, 2);\r
- proutn(" shields ");\r
- if (shldup) proutn("up, ");\r
- else if (damage[DSHIELD] == 0) proutn("down, ");\r
+ proutn("Energy left %2d shields ", (int)energy);\r
+ if (shldup) proutn("up ");\r
+ else if (game.damage[DSHIELD] == 0) proutn("down ");\r
else proutn("damaged, ");\r
}\r
- crami(percent, 1);\r
- proutn("% torpedoes left ");\r
- crami(torps, 1);\r
- skip(1);\r
+ prout("%d%%, torpedoes left %d", percent, torps);\r
/* Check if anyone was hurt */\r
if (hitmax >= 200 || hittot >= 500) {\r
int icas= hittot*Rand()*0.015;\r
if (icas >= 2) {\r
skip(1);\r
- proutn("Mc Coy- \"Sickbay to bridge. We suffered ");\r
- crami(icas, 1);\r
- prout(" casualties");\r
+ prout("Mc Coy- \"Sickbay to bridge. We suffered %d casualties", icas);\r
prout(" in that last attack.\"");\r
casual += icas;\r
}\r
}\r
/* After attack, reset average distance to enemies */\r
for (l = 1; l <= nenhere; l++)\r
- kavgd[l] = kdist[l];\r
+ game.kavgd[l] = game.kdist[l];\r
sortkl();\r
return;\r
}\r
/* Decide what kind of enemy it is and update approriately */\r
if (type == IHR) {\r
/* chalk up a Romulan */\r
- state.newstuf[quadx][quady] -= 10;\r
+ game.state.newstuf[quadx][quady] -= 10;\r
irhere--;\r
- state.nromkl++;\r
- state.nromrem--;\r
+ game.state.nromkl++;\r
+ game.state.nromrem--;\r
}\r
else if (type == IHT) {\r
/* Killed a Tholian */\r
}\r
else {\r
/* Some type of a Klingon */\r
- state.galaxy[quadx][quady] -= 100;\r
+ game.state.galaxy[quadx][quady] -= 100;\r
klhere--;\r
- state.remkl--;\r
+ game.state.remkl--;\r
switch (type) {\r
case IHC:\r
comhere = 0;\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 (state.remcom != 0)\r
- future[FTBEAM] = state.date + expran(1.0*incom/state.remcom);\r
- state.killc++;\r
+ for (i=1; i<=game.state.remcom; i++)\r
+ if (game.state.cx[i]==quadx && game.state.cy[i]==quady) break;\r
+ game.state.cx[i] = game.state.cx[game.state.remcom];\r
+ game.state.cy[i] = game.state.cy[game.state.remcom];\r
+ game.state.cx[game.state.remcom] = 0;\r
+ game.state.cy[game.state.remcom] = 0;\r
+ game.state.remcom--;\r
+ game.future[FTBEAM] = 1e30;\r
+ if (game.state.remcom != 0)\r
+ game.future[FTBEAM] = game.state.date + expran(1.0*incom/game.state.remcom);\r
+ game.state.killc++;\r
break;\r
case IHK:\r
- state.killk++;\r
+ game.state.killk++;\r
break;\r
case IHS:\r
- state.nscrem = ishere = state.isx = state.isy = isatb = iscate = 0;\r
- state.nsckill = 1;\r
- future[FSCMOVE] = future[FSCDBAS] = 1e30;\r
+ game.state.nscrem = ishere = game.state.isx = game.state.isy = isatb = iscate = 0;\r
+ game.state.nsckill = 1;\r
+ game.future[FSCMOVE] = game.future[FSCDBAS] = 1e30;\r
break;\r
}\r
}\r
\r
/* For each kind of enemy, finish message to player */\r
- prout(" destroyestate.");\r
- frozen.quad[ix][iy] = IHDOT;\r
- if (state.remkl==0) return;\r
+ prout(" destroyed.");\r
+ game.quad[ix][iy] = IHDOT;\r
+ if (game.state.remkl==0) return;\r
\r
- state.remtime = state.remres/(state.remkl + 4*state.remcom);\r
+ game.state.remtime = game.state.remres/(game.state.remkl + 4*game.state.remcom);\r
\r
if (type == IHT) return;\r
\r
/* Remove enemy ship from arrays describing local conditions */\r
\r
for (i=1; i<=nenhere; i++)\r
- if (kx[i]==ix && ky[i]==iy) break;\r
+ if (game.kx[i]==ix && game.ky[i]==iy) break;\r
nenhere--;\r
if (i <= nenhere) {\r
for (j=i; j<=nenhere; j++) {\r
- kx[j] = kx[j+1];\r
- ky[j] = ky[j+1];\r
- kpower[j] = kpower[j+1];\r
- kavgd[j] = kdist[j] = kdist[j+1];\r
+ game.kx[j] = game.kx[j+1];\r
+ game.ky[j] = game.ky[j+1];\r
+ game.kpower[j] = game.kpower[j+1];\r
+ game.kavgd[j] = game.kdist[j] = game.kdist[j+1];\r
}\r
}\r
- kx[nenhere+1] = 0;\r
- ky[nenhere+1] = 0;\r
- kdist[nenhere+1] = 0;\r
- kavgd[nenhere+1] = 0;\r
- kpower[nenhere+1] = 0;\r
+ game.kx[nenhere+1] = 0;\r
+ game.ky[nenhere+1] = 0;\r
+ game.kdist[nenhere+1] = 0;\r
+ game.kavgd[nenhere+1] = 0;\r
+ game.kpower[nenhere+1] = 0;\r
return;\r
}\r
\r
\r
ididit = 0;\r
\r
- if (damage[DPHOTON]) {\r
+ if (game.damage[DPHOTON]) {\r
prout("Photon tubes damaged.");\r
chew();\r
return;\r
return;\r
}\r
else if (key == IHEOL) {\r
- crami(torps,1);\r
- prout(" torpedoes left.");\r
+ prout("%d torpedoes left.", torps);\r
proutn("Number of torpedoes to fire- ");\r
key = scan();\r
}\r
if (i == 1 && key == IHEOL) {\r
/* prompt for each one */\r
for (i = 1; i <= n; i++) {\r
- proutn("Target sector for torpedo number");\r
- crami(i, 2);\r
- proutn("- ");\r
+ proutn("Target sector for torpedo number %d- ", i);\r
key = scan();\r
if (key != IHREAL) {\r
huh();\r
/* misfire! */\r
r = (Rand()+1.2) * r;\r
if (n>1) {\r
- prouts("***TORPEDO NUMBER");\r
- crami(i, 2);\r
- prouts(" MISFIRES.");\r
+ prouts("***TORPEDO NUMBER %d MISFIRES", i);\r
}\r
else prouts("***TORPEDO MISFIRES.");\r
skip(1);\r
osuabor=1;\r
if (Rand() <= 0.2) {\r
prout("***Photon tubes damaged by misfire.");\r
- damage[DPHOTON] = damfac*(1.0+2.0*Rand());\r
+ game.damage[DPHOTON] = damfac*(1.0+2.0*Rand());\r
break;\r
}\r
}\r
if (shldup != 0 || condit == IHDOCKED) r *= 1.0 + 0.0001*shield;\r
if (n != 1) {\r
skip(1);\r
- proutn("Track for torpedo number");\r
- crami(i, 2);\r
- proutn("- ");\r
+ proutn("Track for torpedo number %d- ", i);\r
}\r
else {\r
skip(1);\r
proutn("Torpedo track- ");\r
}\r
torpedo(course[i], r, sectx, secty, &dummy);\r
- if (alldone || state.galaxy[quadx][quady]==1000) return;\r
+ if (alldone || game.state.galaxy[quadx][quady]==1000) return;\r
}\r
- if (state.remkl==0) finish(FWON);\r
+ if (game.state.remkl==0) finish(FWON);\r
}\r
\r
\r
double chekbrn = (rpow-1500.)*0.00038;\r
if (Rand() <= chekbrn) {\r
prout("Weapons officer Sulu- \"Phasers overheated, sir.\"");\r
- damage[DPHASER] = damfac*(1.0 + Rand()) * (1.0+chekbrn);\r
+ game.damage[DPHASER] = damfac*(1.0 + Rand()) * (1.0+chekbrn);\r
}\r
}\r
}\r
if (icas) {\r
skip(1);\r
prout("McCoy to bridge- \"Severe radiation burns, Jim.");\r
- proutn(" ");\r
- crami(icas, 1);\r
- prout(" casualties so far.\"");\r
+ prout(" %d casualties so far.\"", icas);\r
casual -= icas;\r
}\r
skip(1);\r
\r
skip(1);\r
/* SR sensors and Computer */\r
- if (damage[DSRSENS]+damage[DCOMPTR] > 0) ipoop = 0;\r
+ if (game.damage[DSRSENS]+game.damage[DCOMPTR] > 0) ipoop = 0;\r
if (condit == IHDOCKED) {\r
prout("Phasers can't be fired through base shields.");\r
chew();\r
return;\r
}\r
- if (damage[DPHASER] != 0) {\r
+ if (game.damage[DPHASER] != 0) {\r
prout("Phaser control damaged.");\r
chew();\r
return;\r
}\r
if (shldup) {\r
- if (damage[DSHCTRL]) {\r
+ if (game.damage[DSHCTRL]) {\r
prout("High speed shield control damaged.");\r
chew();\r
return;\r
key = scan();\r
}\r
if (key != IHREAL && nenhere != 0) {\r
- proutn("Phasers locked on target. Energy available =");\r
- cramf(ifast?energy-200.0:energy,1,2);\r
- skip(1);\r
+ prout("Phasers locked on target. Energy available = %.2f", ifast?energy-200.0:energy);\r
}\r
do {\r
while (key != IHREAL) {\r
}\r
rpow = aaitem;\r
if (rpow >= (ifast?energy-200:energy)) {\r
- proutn("Energy available= ");\r
- cramf(ifast?energy-200:energy, 1,2);\r
+ proutn("Energy available= %.2f",\r
+ ifast?energy-200:energy);\r
skip(1);\r
key = IHEOL;\r
}\r
for (i = 1; i <= nenhere; i++) {\r
hits[i] = 0.0;\r
if (powrem <= 0) continue;\r
- hits[i] = fabs(kpower[i])/(phasefac*pow(0.90,kdist[i]));\r
+ hits[i] = fabs(game.kpower[i])/(PHASEFAC*pow(0.90,game.kdist[i]));\r
over = (0.01 + 0.05*Rand())*hits[i];\r
temp = powrem;\r
powrem -= hits[i] + over;\r
prout("phaser energy.");\r
}\r
else {\r
- cramf(extra, 0, 2);\r
- prout(" expended on empty space.");\r
+ prout("%d expended on empty space.", (int)extra);\r
}\r
}\r
break;\r
case FORCEMAN:\r
chew();\r
key = IHEOL;\r
- if (damage[DCOMPTR]!=0)\r
+ if (game.damage[DCOMPTR]!=0)\r
prout("Battle comuter damaged, manual file only.");\r
else {\r
skip(1);\r
case MANUAL:\r
rpow = 0.0;\r
for (k = 1; k <= nenhere;) {\r
- int ii = kx[k], jj = ky[k];\r
- int ienm = frozen.quad[ii][jj];\r
+ int ii = game.kx[k], jj = game.ky[k];\r
+ int ienm = game.quad[ii][jj];\r
if (msgflag) {\r
- proutn("Energy available= ");\r
- cramf(energy-.006-(ifast?200:0), 0, 2);\r
+ proutn("Energy available= %.2f",\r
+ energy-.006-(ifast?200:0));\r
skip(1);\r
msgflag = 0;\r
rpow = 0.0;\r
}\r
- if (damage[DSRSENS] && !(abs(sectx-ii) < 2 && abs(secty-jj) < 2) &&\r
+ if (game.damage[DSRSENS] && !(abs(sectx-ii) < 2 && abs(secty-jj) < 2) &&\r
(ienm == IHC || ienm == IHS)) {\r
cramen(ienm);\r
prout(" can't be located without short range scan.");\r
if (key == IHEOL) {\r
chew();\r
if (ipoop && k > kz) {\r
- int irec=(fabs(kpower[k])/(phasefac*pow(0.9,kdist[k])))*\r
+ int irec=(fabs(game.kpower[k])/(PHASEFAC*pow(0.9,game.kdist[k])))*\r
(1.01+0.05*Rand()) + 1.0;\r
kz = k;\r
- proutn("(");\r
- crami(irec, 1);\r
- proutn(") ");\r
+ proutn("(%d)", irec);\r
}\r
proutn("units to fire at ");\r
crmena(0, ienm, 2, ii, jj);\r
for (; k <= nenhr2; k++, kk++) {\r
if ((wham = hits[k])==0) continue;\r
dustfac = 0.9 + 0.01*Rand();\r
- hit = wham*pow(dustfac,kdist[kk]);\r
- kpini = kpower[kk];\r
+ hit = wham*pow(dustfac,game.kdist[kk]);\r
+ kpini = game.kpower[kk];\r
kp = fabs(kpini);\r
- if (phasefac*hit < kp) kp = phasefac*hit;\r
- kpower[kk] -= (kpower[kk] < 0 ? -kp: kp);\r
- kpow = kpower[kk];\r
- ii = kx[kk];\r
- jj = ky[kk];\r
+ if (PHASEFAC*hit < kp) kp = PHASEFAC*hit;\r
+ game.kpower[kk] -= (game.kpower[kk] < 0 ? -kp: kp);\r
+ kpow = game.kpower[kk];\r
+ ii = game.kx[kk];\r
+ jj = game.ky[kk];\r
if (hit > 0.005) {\r
- cramf(hit, 0, 2);\r
- proutn(" unit hit on ");\r
+ proutn("%d unit hit on ", (int)hit);\r
}\r
else\r
proutn("Very small hit on ");\r
- ienm = frozen.quad[ii][jj];\r
+ ienm = game.quad[ii][jj];\r
crmena(0,ienm,2,ii,jj);\r
skip(1);\r
if (kpow == 0) {\r
deadkl(ii, jj, ienm, ii, jj);\r
- if (state.remkl==0) finish(FWON);\r
+ if (game.state.remkl==0) finish(FWON);\r
if (alldone) return;\r
kk--; /* don't do the increment */\r
}\r
else /* decide whether or not to emasculate klingon */\r
if (kpow > 0 && Rand() >= 0.9 &&\r
kpow <= ((0.4 + 0.4*Rand())*kpini)) {\r
- proutn("***Mr. Spock- \"Captain, the vessel at");\r
- cramlc(2,ii,jj);\r
- skip(1);\r
+ prout("***Mr. Spock- \"Captain, the vessel at ",\r
+ cramlc(sector,ii,jj));\r
prout(" has just lost its firepower.\"");\r
- kpower[kk] = -kpow;\r
+ game.kpower[kk] = -kpow;\r
}\r
}\r
return;\r