X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=moving.c;h=13cd543aac0d6b2dec0df779a6e4a5aade8ff213;hb=ecb536f64ce4a4c5b97c78132791b877efb9a6e5;hp=05c3d3ab95761cf83e570d13d7220b3d4aeed39c;hpb=ba71f219a8543b5510a53c59ce793339b84903a7;p=super-star-trek.git diff --git a/moving.c b/moving.c index 05c3d3a..13cd543 100644 --- a/moving.c +++ b/moving.c @@ -1,3 +1,7 @@ +#ifdef SERGEEV +#include +#include "sstlinux.h" +#endif /* SERGEEV */ #include #include "sst.h" @@ -51,7 +55,12 @@ void imove(void) { (iy-game.ky[l])*(double)(iy-game.ky[l])); game.kavgd[l] = 0.5 * (finald+game.kdist[l]); } +#ifdef SERGEEV + 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 */ @@ -89,9 +98,9 @@ void imove(void) { finish(FNEG3); return; } - prout("\nYOU HAVE ATTEMPTED TO CROSS THE NEGATIVE ENERGY BARRIER\n" - "AT THE EDGE OF THE GALAXY. THE THIRD TIME YOU TRY THIS,\n" - "YOU WILL BE DESTROYED.\n"); + prout("\n\rYOU HAVE ATTEMPTED TO CROSS THE NEGATIVE ENERGY BARRIER\n\r" + "AT THE EDGE OF THE GALAXY. THE THIRD TIME YOU TRY THIS,\n\r" + "YOU WILL BE DESTROYED.\n\r"); } /* Compute final position in new quadrant */ if (trbeam) return; /* Don't bother if we are to be beamed */ @@ -377,7 +386,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)); } } @@ -897,7 +906,7 @@ void help(void) { double ddist, xdist, probf; int line = 0, l, ix, iy; #ifdef SERGEEV - int pox, posy; + int posx, posy; #endif /* SERGEEV */ chew(); @@ -946,7 +955,6 @@ void help(void) { proutn(""); crmshp(); prout(" dematerializes."); -#ifdef SERGEEV sectx=0; for (l = 1; l <= 5; l++) { ix = basex+3.0*Rand()-1; @@ -964,7 +972,6 @@ void help(void) { finish(FMATERIALIZE); return; } -#endif /* SERGEEV */ /* Give starbase three chances to rematerialize starship */ probf = pow((1.0 - pow(0.98,ddist)), 0.33333333); for (l = 1; l <= 3; l++) { @@ -976,29 +983,47 @@ void help(void) { proutn(" attempt to re-materialize "); crmshp(); prouts(" . . . . . "); +#ifdef SERGEEV + posx=wherex(); + posy=wherey(); + drawmaps(1); + setwnd(4); + gotoxy(posx,posy); + sound(50); + delay(1000); + nosound(); +#endif /* SERGEEV */ if (Rand() > probf) break; +#ifdef SERGEEV + 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); +#endif /* SERGEEV */ prout("fails."); +#ifdef SERGEEV + delay(500); + textcolor(LIGHTGRAY); +#endif /* SERGEEV */ } 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; +#ifdef SERGEEV + textcolor(WHITE); +#endif /* SERGEEV */ + prout("succeeds."); +#ifdef SERGEEV + textcolor(LIGHTGRAY); +#endif /* SERGEEV */ + dock(0); + skip(1); + prout("Lt. Uhura- \"Captain, we made it!\""); }