X-Git-Url: https://jxself.org/git/?p=super-star-trek.git;a=blobdiff_plain;f=moving.c;h=17f3a2282767a738921a6a98fb3b1cc1ee5dca68;hp=c8947fe7590c95d5dc59e4cf262a4537326cfb61;hb=7453bc4027cf9dcf29ebae79341070c3bfb30aed;hpb=ac3672c23b0cc0edf11061af58bf214e0d8c339e diff --git a/moving.c b/moving.c index c8947fe..17f3a22 100644 --- a/moving.c +++ b/moving.c @@ -1,8 +1,6 @@ -#ifdef SERGEEV -#include -#include "sstlinux.h" -#endif /* SERGEEV */ #include +#include "sstlinux.h" +#include "conio.h" #include "sst.h" static void getcd(int, int); @@ -55,12 +53,13 @@ void imove(void) { (iy-game.ky[l])*(double)(iy-game.ky[l])); game.kavgd[l] = 0.5 * (finald+game.kdist[l]); } -#ifdef SERGEEV + /* + * Stas Sergeev added the condition + * that attacks only happen if Klingons + * are present and your skill is > 3. + */ if (skill > 3 && klhere > 0 && game.state.galaxy[quadx][quady] != 1000) attack(0); -#else - if (game.state.galaxy[quadx][quady] != 1000) attack(0); -#endif /* SERGEEV */ if (alldone) return; } /* compute final position -- new quadrant and sector */ @@ -108,7 +107,7 @@ void imove(void) { quady = (iy+9)/10; sectx = ix - 10*(quadx-1); secty = iy - 10*(quady-1); - proutn("\n\rEntering %s.", + prout("\n\rEntering %s.", cramlc(quadrant, quadx, quady)); game.quad[sectx][secty] = ship; newqad(0); @@ -210,9 +209,7 @@ label100: } newcnd(); iattak = 0; -#ifdef SERGEEV drawmaps(0); -#endif /* SERGEEV */ return; } @@ -386,7 +383,7 @@ static void getcd(int isprobe, int akey) { if (!isprobe) { if (itemp) { if (iprompt) { - proutn("Helmsman Sulu- \"Course locked in for %s.\"", + prout("Helmsman Sulu- \"Course locked in for %s.\"", cramlc(sector, irows, icols)); } } @@ -824,9 +821,7 @@ void timwrp() { game.damage[DRADIO] += Time; } newqad(0); -#ifdef SERGEEV - events(); -#endif /* SERGEEV */ + events(); /* Stas Sergeev added this -- do pending events */ } void probe(void) { @@ -905,9 +900,6 @@ void help(void) { /* There's more than one way to move in this game! */ double ddist, xdist, probf; int line = 0, l, ix, iy; -#ifdef SERGEEV - int posx, posy; -#endif /* SERGEEV */ chew(); /* Test for conditions which prevent calling for help */ @@ -982,30 +974,30 @@ void help(void) { } proutn(" attempt to re-materialize "); crmshp(); - prouts(" . . . . . "); + warble(); if (Rand() > probf) break; + switch (l){ + case 1: game.quad[ix][iy]=IHMATER1; + break; + case 2: game.quad[ix][iy]=IHMATER2; + break; + case 3: game.quad[ix][iy]=IHQUEST; + break; + } + textcolor(RED); prout("fails."); + delay(500); + textcolor(LIGHTGRAY); } if (l > 3) { finish(FMATERIALIZE); return; } - /* Rematerialization attempt should succeed if can get adj to base */ - for (l = 1; l <= 5; l++) { - ix = basex+3.0*Rand()-1; - iy = basey+3.0*Rand()-1; - if (ix>=1 && ix<=10 && iy>=1 && iy<=10 && game.quad[ix][iy]==IHDOT) { - /* found one -- finish up */ - prout("succeeds."); - sectx=ix; - secty=iy; - game.quad[ix][iy]=ship; - dock(0); - skip(1); - prout("Lt. Uhura- \"Captain, we made it!\""); - return; - } - } - finish(FMATERIALIZE); - return; + game.quad[ix][iy]=ship; + textcolor(WHITE); + prout("succeeds."); + textcolor(LIGHTGRAY); + dock(0); + skip(1); + prout("Lt. Uhura- \"Captain, we made it!\""); }