X-Git-Url: https://jxself.org/git/?p=super-star-trek.git;a=blobdiff_plain;f=src%2Freports.c;h=665701e0abaa0d85a6b24f3487a9df9bc74bedd7;hp=f0dc134eb88d29d975e7cb753952030d2882ef97;hb=e3730bb826efe601fe51626aab064d395733d4c3;hpb=f21d3481583b5cf877fc7b6efd6f2e08a1ade4b9 diff --git a/src/reports.c b/src/reports.c index f0dc134..665701e 100644 --- a/src/reports.c +++ b/src/reports.c @@ -8,11 +8,11 @@ void attakreport(int curt) if (!curt) { if (game.future[FCDBAS] < FOREVER) { prout("Starbase in %s is currently under Commander attack.", - cramlc(quadrant, batx, baty)); + cramlc(quadrant, game.batx, game.baty)); prout("It can hold out until Stardate %d.", (int)game.future[FCDBAS]); } - if (isatb == 1) { + if (game.isatb == 1) { prout("Starbase in %s is under Super-commander attack.", cramlc(quadrant, game.state.isx, game.state.isy)); prout("It can hold out until Stardate %d.", @@ -20,8 +20,8 @@ void attakreport(int curt) } } else { if (game.future[FCDBAS] < FOREVER) - proutn("Base in %i - %i attacked by C. Alive until %.1f", batx, baty, game.future[FCDBAS]); - if (isatb == 1) + proutn("Base in %i - %i attacked by C. Alive until %.1f", game.batx, game.baty, game.future[FCDBAS]); + if (game.isatb == 1) proutn("Base in %i - %i attacked by S. Alive until %.1f", game.state.isx, game.state.isy, game.future[FSCDBAS]); } clreol(); @@ -33,14 +33,14 @@ void report(void) char *s1,*s2,*s3; chew(); - s1 = (thawed?"thawed ":""); - switch (length) { + s1 = (game.thawed?"game.thawed ":""); + switch (game.length) { case 1: s2="short"; break; case 2: s2="medium"; break; case 4: s2="long"; break; default: s2="unknown length"; break; } - switch (skill) { + switch (game.skill) { case SKILL_NOVICE: s3="novice"; break; case SKILL_FAIR: s3="fair"; break; case SKILL_GOOD: s3="good"; break; @@ -50,59 +50,59 @@ void report(void) } prout(""); prout("You %s playing a %s%s %s game.", - alldone? "were": "are now", s1, s2, s3); - if (skill>SKILL_GOOD && thawed && !alldone) prout("No plaque is allowed."); - if (tourn) prout("This is tournament game %d.", tourn); + game.alldone? "were": "are now", s1, s2, s3); + if (game.skill>SKILL_GOOD && game.thawed && !game.alldone) prout("No plaque is allowed."); + if (game.tourn) prout("This is tournament game %d.", game.tourn); prout("Your secret password is \"%s\"",game.passwd); proutn("%d of %d Klingons have been killed", KLINGKILLED, INKLINGTOT); if (NKILLC) prout(", including %d Commander%s.", NKILLC, NKILLC==1?"":"s"); else if (NKILLK + NKILLSC > 0) prout(", but no Commanders."); else prout("."); - if (skill > SKILL_FAIR) prout("The Super Commander has %sbeen destroyed.", + if (game.skill > SKILL_FAIR) prout("The Super Commander has %sbeen destroyed.", game.state.nscrem?"not ":""); - if (game.state.rembase != inbase) { + if (game.state.rembase != game.inbase) { proutn("There "); - if (inbase-game.state.rembase==1) proutn("has been 1 base"); + if (game.inbase-game.state.rembase==1) proutn("has been 1 base"); else { - proutn("have been %d bases", inbase-game.state.rembase); + proutn("have been %d bases", game.inbase-game.state.rembase); } prout(" destroyed, %d remaining.", game.state.rembase); } - else prout("There are %d bases.", inbase); - if (game.damage[DRADIO] == 0.0 || condit == IHDOCKED || iseenit) { + else prout("There are %d bases.", game.inbase); + if (game.damage[DRADIO] == 0.0 || game.condit == IHDOCKED || game.iseenit) { /* Don't report this if not seen and either the radio is dead or not at base! */ attakreport(0); - iseenit = 1; + game.iseenit = 1; } - if (casual) prout("%d casualt%s suffered so far.", - casual, casual==1? "y" : "ies"); - if (nhelp) prout("There were %d call%s for help.", - nhelp, nhelp==1 ? "" : "s"); - if (ship == IHE) { + if (game.casual) prout("%d casualt%s suffered so far.", + game.casual, game.casual==1? "y" : "ies"); + if (game.nhelp) prout("There were %d call%s for help.", + game.nhelp, game.nhelp==1 ? "" : "s"); + if (game.ship == IHE) { proutn("You have "); - if (nprobes) proutn("%d", nprobes); + if (game.nprobes) proutn("%d", game.nprobes); else proutn("no"); proutn(" deep space probe"); - if (nprobes!=1) proutn("s"); + if (game.nprobes!=1) proutn("s"); prout("."); } - if ((game.damage[DRADIO] == 0.0 || condit == IHDOCKED)&& + if ((game.damage[DRADIO] == 0.0 || game.condit == IHDOCKED)&& game.future[FDSPROB] != FOREVER) { - if (isarmed) + if (game.isarmed) proutn("An armed deep space probe is in"); else proutn("A deep space probe is in"); - proutn(cramlc(quadrant, probecx, probecy)); + proutn(cramlc(quadrant, game.probecx, game.probecy)); prout("."); } - if (icrystl) { - if (cryprob <= .05) + if (game.icrystl) { + if (game.cryprob <= .05) prout("Dilithium crystals aboard ship... not yet used."); else { int i=0; double ai = 0.05; - while (cryprob > ai) { + while (game.cryprob > ai) { ai *= 2.0; i++; } @@ -119,7 +119,7 @@ void lrscan(void) chew(); if (game.damage[DLRSENS] != 0.0) { /* Now allow base's sensors if docked */ - if (condit != IHDOCKED) { + if (game.condit != IHDOCKED) { prout("LONG-RANGE SENSORS DAMAGED."); return; } @@ -128,9 +128,9 @@ void lrscan(void) else { prout("Long-range scan"); } - for (x = quadx-1; x <= quadx+1; x++) { + for (x = game.quadx-1; x <= game.quadx+1; x++) { proutn(" "); - for (y = quady-1; y <= quady+1; y++) { + for (y = game.quady-1; y <= game.quady+1; y++) { if (!VALID_QUADRANT(x, y)) proutn(" -1"); else { @@ -164,7 +164,7 @@ void dreprt(void) prout(" %16s %8.2f %8.2f", device[i], game.damage[i]+0.05, - docfac*game.damage[i]+0.005); + game.docfac*game.damage[i]+0.005); } } if (!jdam) prout("All devices functional."); @@ -174,7 +174,7 @@ void rechart(void) /* update the chart in the Enterprise's computer from galaxy data */ { int i, j; - lastchart = game.state.date; + game.lastchart = game.state.date; for_quadrants(i) for_quadrants(j) if (game.state.galaxy[i][j].charted) { @@ -192,21 +192,21 @@ void chart(int nn) if (game.damage[DRADIO] == 0.0) rechart(); - if (lastchart < game.state.date && condit == IHDOCKED) { + if (game.lastchart < game.state.date && game.condit == IHDOCKED) { prout("Spock- \"I revised the Star Chart from the starbase's records.\""); rechart(); } if (nn == 0) prout(" STAR CHART FOR THE KNOWN GALAXY"); - if (game.state.date > lastchart) + if (game.state.date > game.lastchart) prout("(Last surveillance update %d stardates ago).", - (int)(game.state.date-lastchart)); + (int)(game.state.date-game.lastchart)); prout(" 1 2 3 4 5 6 7 8"); for_quadrants(i) { proutn("%d |", i); for_quadrants(j) { char buf[4]; - if ((game.options & OPTION_SHOWME) && i == quadx && j == quady) + if ((game.options & OPTION_SHOWME) && i == game.quadx && j == game.quady) proutn("<"); else proutn(" "); @@ -219,7 +219,7 @@ void chart(int nn) else strcpy(buf, "..."); proutn(buf); - if ((game.options & OPTION_SHOWME) && i == quadx && j == quady) + if ((game.options & OPTION_SHOWME) && i == game.quadx && j == game.quady) proutn(">"); else proutn(" "); @@ -231,16 +231,16 @@ void chart(int nn) static void sectscan(int goodScan, int i, int j) { - if (goodScan || (abs(i-sectx)<= 1 && abs(j-secty) <= 1)){ + if (goodScan || (abs(i-game.sectx)<= 1 && abs(j-game.secty) <= 1)){ if ((game.quad[i][j]==IHMATER0)||(game.quad[i][j]==IHMATER1)||(game.quad[i][j]==IHMATER2)||(game.quad[i][j]==IHE)||(game.quad[i][j]==IHF)){ - switch (condit) { + switch (game.condit) { case IHRED: textcolor(RED); break; case IHGREEN: textcolor(GREEN); break; case IHYELLOW: textcolor(YELLOW); break; case IHDOCKED: textcolor(CYAN); break; case IHDEAD: textcolor(BROWN); } - if (game.quad[i][j] != ship) + if (game.quad[i][j] != game.ship) highvideo(); } proutn("%c ",game.quad[i][j]); @@ -259,8 +259,8 @@ static void status(int req) proutn("Stardate %.1f, Time Left %.2f", game.state.date, game.state.remtime); break; case 2: - if (condit != IHDOCKED) newcnd(); - switch (condit) { + if (game.condit != IHDOCKED) newcnd(); + switch (game.condit) { case IHRED: cp = "RED"; break; case IHGREEN: cp = "GREEN"; break; case IHYELLOW: cp = "YELLOW"; break; @@ -274,40 +274,40 @@ static void status(int req) break; case 3: proutn("Position %d - %d , %d - %d", - quadx, quady, sectx, secty); + game.quadx, game.quady, game.sectx, game.secty); break; case 4: proutn("Life Support "); if (game.damage[DLIFSUP] != 0.0) { - if (condit == IHDOCKED) + if (game.condit == IHDOCKED) proutn("DAMAGED, Base provides"); else - proutn("DAMAGED, reserves=%4.2f", lsupres); + proutn("DAMAGED, reserves=%4.2f", game.lsupres); } else proutn("ACTIVE"); break; case 5: - proutn("Warp Factor %.1f", warpfac); + proutn("Warp Factor %.1f", game.warpfac); break; case 6: - proutn("Energy %.2f", energy); - if (icrystl && (game.options & OPTION_SHOWME)) /* ESR */ + proutn("Energy %.2f", game.energy); + if (game.icrystl && (game.options & OPTION_SHOWME)) /* ESR */ proutn(" (have crystals)"); break; case 7: - proutn("Torpedoes %d", torps); + proutn("Torpedoes %d", game.torps); break; case 8: proutn("Shields "); if (game.damage[DSHIELD] != 0) proutn("DAMAGED,"); - else if (shldup) + else if (game.shldup) proutn("UP,"); else proutn("DOWN,"); proutn(" %d%% %.1f units", - (int)((100.0*shield)/inshld + 0.5), shield); + (int)((100.0*game.shield)/game.inshld + 0.5), game.shield); break; case 9: proutn("Klingons Left %d", KLINGREM); @@ -328,7 +328,7 @@ int srscan(int l) case SCAN_FULL: // SRSCAN if (game.damage[DSRSENS] != 0) { /* Allow base's sensors if docked */ - if (condit != IHDOCKED) { + if (game.condit != IHDOCKED) { prout(" S.R. SENSORS DAMAGED!"); goodScan=FALSE; } @@ -337,10 +337,10 @@ int srscan(int l) } else prout(" Short-range scan"); if (goodScan && !game.damage[DRADIO]) { - game.state.chart[quadx][quady].klingons = game.state.galaxy[quadx][quady].klingons; - game.state.chart[quadx][quady].starbase = game.state.galaxy[quadx][quady].starbase; - game.state.chart[quadx][quady].stars = game.state.galaxy[quadx][quady].stars; - game.state.galaxy[quadx][quady].charted = TRUE; + game.state.chart[game.quadx][game.quady].klingons = game.state.galaxy[game.quadx][game.quady].klingons; + game.state.chart[game.quadx][game.quady].starbase = game.state.galaxy[game.quadx][game.quady].starbase; + game.state.chart[game.quadx][game.quady].stars = game.state.galaxy[game.quadx][game.quady].stars; + game.state.galaxy[game.quadx][game.quady].charted = TRUE; } scan(); if (isit("chart")) nn = TRUE; @@ -357,7 +357,7 @@ int srscan(int l) break; if (req > sizeof(requests)/sizeof(requests[0])) { prout("UNRECOGNIZED REQUEST. Legal requests are:"); - prout(" date, condition, position, lsupport, warpfactor,"); + prout(" date, game.condition, position, lsupport, game.warpfactor,"); prout(" energy, torpedoes, shields, klingons, time, bases."); return FALSE; } @@ -371,7 +371,7 @@ int srscan(int l) leftside=FALSE; break; } - if (condit != IHDOCKED) newcnd(); + if (game.condit != IHDOCKED) newcnd(); for (i = 1; i <= max(QUADSIZE, sizeof(requests)/sizeof(requests[0])); i++) { jj = (req!=0 ? req : i); if (leftside && i <= QUADSIZE) { @@ -425,9 +425,9 @@ void eta(void) ix2 = aaitem + 0.5; } else { - if (quady>ix1) ix2 = 1; + if (game.quady>ix1) ix2 = 1; else ix2=QUADSIZE; - if (quadx>iy1) iy2 = 1; + if (game.quadx>iy1) iy2 = 1; else iy2=QUADSIZE; } @@ -435,8 +435,8 @@ void eta(void) huh(); return; } - dist = sqrt(square(iy1-quadx+0.1*(iy2-sectx))+ - square(ix1-quady+0.1*(ix2-secty))); + game.dist = sqrt(square(iy1-game.quadx+0.1*(iy2-game.sectx))+ + square(ix1-game.quady+0.1*(ix2-game.secty))); wfl = FALSE; if (prompt) prout("Answer \"no\" if you don't know the value:"); @@ -447,7 +447,7 @@ void eta(void) ttime = aaitem; if (ttime > game.state.date) ttime -= game.state.date; // Actually a star date if (ttime <= 1e-10 || - (twarp=(floor(sqrt((10.0*dist)/ttime)*10.0)+1.0)/10.0) > 10) { + (twarp=(floor(sqrt((10.0*game.dist)/ttime)*10.0)+1.0)/10.0) > 10) { prout("We'll never make it, sir."); chew(); return; @@ -470,11 +470,11 @@ void eta(void) } while (TRUE) { chew(); - ttime = (10.0*dist)/square(twarp); - tpower = dist*twarp*twarp*twarp*(shldup+1); - if (tpower >= energy) { + ttime = (10.0*game.dist)/square(twarp); + tpower = game.dist*twarp*twarp*twarp*(game.shldup+1); + if (tpower >= game.energy) { prout("Insufficient energy, sir."); - if (shldup==0 || tpower > energy*2.0) { + if (game.shldup==0 || tpower > game.energy*2.0) { if (!wfl) return; proutn("New warp factor to try? "); if (scan() == IHREAL) { @@ -498,7 +498,7 @@ void eta(void) } else proutn("Remaining"); - prout(" energy will be %.2f.", energy-tpower); + prout(" game.energy will be %.2f.", game.energy-tpower); if (wfl) { prout("And we will arrive at stardate %.2f.", game.state.date+ttime); @@ -514,9 +514,9 @@ void eta(void) prout("Unfortunately, the Federation will be destroyed by then."); if (twarp > 6.0) prout("You'll be taking risks at that speed, Captain"); - if ((isatb==1 && game.state.isy == ix1 && game.state.isx == iy1 && + if ((game.isatb==1 && game.state.isy == ix1 && game.state.isx == iy1 && game.future[FSCDBAS]< ttime+game.state.date)|| - (game.future[FCDBAS]