home *** CD-ROM | disk | FTP | other *** search
- Path: uunet!zephyr.ens.tek.com!tekred!saab!billr
- From: billr@saab.CNA.TEK.COM (Bill Randle)
- Newsgroups: comp.sources.games
- Subject: v11i040: gb3 - Galactic Bloodshed, an empire-like war game [Ver. 2.0], Patch2b
- Message-ID: <6227@tekred.CNA.TEK.COM>
- Date: 28 Aug 90 19:34:58 GMT
- Sender: news@tekred.CNA.TEK.COM
- Lines: 2081
- Approved: billr@saab.CNA.TEK.COM
-
- Submitted-by: VANCLEEF@mps.ohio-state.edu
- Posting-number: Volume 11, Issue 40
- Archive-name: gb3/Patch2b
- Patch-To: gb3: Volume 10, Issue 1-14
-
-
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 2 (of 9)."
- # Contents: patches02b server/patchlevel.h
- # Wrapped by billr@saab on Tue Aug 28 08:54:53 1990
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'patches02b' -a "${1}" != "-c" ; then
- echo shar: Renaming existing file \"'patches02b'\" to \"'patches02b.orig'\"
- mv -f 'patches02b' 'patches02b.orig'
- fi
- echo shar: Extracting \"'patches02b'\" \(56321 characters\)
- sed "s/^X//" >'patches02b' <<'END_OF_FILE'
- X*** /usr/cna/billr/games/gb3/server/dosector.c Wed May 30 15:13:03 1990
- X--- server/dosector.c Thu Aug 23 16:54:49 1990
- X***************
- X*** 31,41 ****
- X reg struct plinfo *pinf;
- X reg int new;
- X
- X- if(s->resource < 0)
- X- s->resource = -s->resource;
- X-
- X check(planet,20);
- X! factor = .4 * log10(1.0+(double)s->eff) * s->resource
- X * races[s->owner-1]->metabolism;
- X pinf = &planet->info[s->owner-1];
- X
- X--- 31,38 ----
- X reg struct plinfo *pinf;
- X reg int new;
- X
- X check(planet,20);
- X! factor = .4 * log10(1.0+(double)s->eff) * s->resource * (1+(planet->type==TYPE_EARTH))
- X * races[s->owner-1]->metabolism;
- X pinf = &planet->info[s->owner-1];
- X
- X***************
- X*** 51,56 ****
- X--- 48,61 ----
- X pdes = round_rand( factor * DEST_PRODUCTION
- X * s->mobilization );
- X prod_destruct[s->owner-1] += pdes;
- X+
- X+
- X+ /* try to find crystals */
- X+ /* chance of digging out a crystal depends on efficiency */
- X+ if(s->crystals && int_rand(1,100) < s->eff) {
- X+ prod_crystals[s->owner-1]++;
- X+ s->crystals--;
- X+ }
- X
- X /* increase mobilization to planetary quota */
- X if (s->mobilization < pinf->mob_set) {
- X*** /usr/cna/billr/games/gb3/server/enrol.c Wed May 30 15:13:07 1990
- X--- server/enrol.c Fri Aug 24 15:10:01 1990
- X***************
- X*** 19,24 ****
- X--- 19,25 ----
- X #include "buffers.h"
- X extern int errno;
- X char desshow();
- X+ racetype *Race;
- X
- X struct stype {
- X char here;
- X***************
- X*** 29,44 ****
- X
- X /* racial types (10 racial types ) */
- X int Thing[RACIAL_TYPES] = {1, 1, 1, 0, 0, 0, 0, 0, 0, 0};
- X! float db_Mass[RACIAL_TYPES] = {1.0, 1.5, 2.0, 1.25, 1.25, 1.25, 1.25, 1.25, 1.25, 1.25};
- X float db_Birthrate[RACIAL_TYPES] = {0.8, 0.8, 0.9, 0.4, 0.4, 0.4, 0.4, 0.5, 0.5, 0.5};
- X int db_Fighters[RACIAL_TYPES] = {6, 7, 8, 2, 3, 3, 4, 4, 5, 5};
- X int db_Intelligence[RACIAL_TYPES] = {80, 70, 60, 190, 180, 170, 160, 150, 140, 130};
- X! float db_Adventurism[RACIAL_TYPES] = {0.89, 0.89, 0.89, .5, .5, .5, .6, .6, .7, .8};
- X int Min_Sexes[RACIAL_TYPES] = {1, 1, 1, 2, 2, 2, 2, 2, 2, 2};
- X int Max_Sexes[RACIAL_TYPES] = {1, 1, 1, 2, 2, 4, 4, 4, 4, 4};
- X float db_Metabolism[RACIAL_TYPES] = {1.3, 1.3, 1.3, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0};
- X
- X! #define RMass(x) (db_Mass[(x)] + .01*(float)int_rand(-25, 25))
- X #define Birthrate(x) (db_Birthrate[(x)] + .01*(float)int_rand(-10, 10))
- X #define Fighters(x) (db_Fighters[(x)] + int_rand(-1, 1))
- X #define Intelligence(x) (db_Intelligence[(x)] + int_rand(-10, 10))
- X--- 30,45 ----
- X
- X /* racial types (10 racial types ) */
- X int Thing[RACIAL_TYPES] = {1, 1, 1, 0, 0, 0, 0, 0, 0, 0};
- X! float db_Mass[RACIAL_TYPES] = {.1,.15,.2,.125,.125,.125,.125,.125,.125,.125};
- X float db_Birthrate[RACIAL_TYPES] = {0.8, 0.8, 0.9, 0.4, 0.4, 0.4, 0.4, 0.5, 0.5, 0.5};
- X int db_Fighters[RACIAL_TYPES] = {6, 7, 8, 2, 3, 3, 4, 4, 5, 5};
- X int db_Intelligence[RACIAL_TYPES] = {80, 70, 60, 190, 180, 170, 160, 150, 140, 130};
- X! float db_Adventurism[RACIAL_TYPES] = {0.89, 0.89, 0.89, .6, .65, .7, .7, .75, .75, .8};
- X int Min_Sexes[RACIAL_TYPES] = {1, 1, 1, 2, 2, 2, 2, 2, 2, 2};
- X int Max_Sexes[RACIAL_TYPES] = {1, 1, 1, 2, 2, 4, 4, 4, 4, 4};
- X float db_Metabolism[RACIAL_TYPES] = {1.3, 1.3, 1.3, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0};
- X
- X! #define RMass(x) (db_Mass[(x)] + .001*(float)int_rand(-25, 25))
- X #define Birthrate(x) (db_Birthrate[(x)] + .01*(float)int_rand(-10, 10))
- X #define Fighters(x) (db_Fighters[(x)] + int_rand(-1, 1))
- X #define Intelligence(x) (db_Intelligence[(x)] + int_rand(-10, 10))
- X***************
- X*** 90,107 ****
- X Two[i]=2*Two[i-1];
- X
- X if ( (Playernum=Numraces()+1) >= MAXPLAYERS) {
- X! printf("There are already %d players; No more allowed.\n",MAXPLAYERS);
- X exit(-1);
- X }
- X
- X /*printf("Enter racial type to be created (1-%d):", RACIAL_TYPES);
- X scanf("%d", &idx);
- X getchr();
- X idx -= 1;
- X */
- X! idx = int_rand(3,10);
- X
- X! if(idx < 0 || idx > RACIAL_TYPES-1) {
- X printf("Bad racial index.\n");
- X exit(1);
- X }
- X--- 91,109 ----
- X Two[i]=2*Two[i-1];
- X
- X if ( (Playernum=Numraces()+1) >= MAXPLAYERS) {
- X! printf("There are already %d players; No more allowed.\n",MAXPLAYERS-1);
- X exit(-1);
- X }
- X
- X+
- X /*printf("Enter racial type to be created (1-%d):", RACIAL_TYPES);
- X scanf("%d", &idx);
- X getchr();
- X idx -= 1;
- X */
- X! idx = int_rand(3,9);
- X
- X! if(idx < 0 || idx >= RACIAL_TYPES) {
- X printf("Bad racial index.\n");
- X exit(1);
- X }
- X***************
- X*** 134,140 ****
- X
- X bzero((char *)not_found, sizeof(not_found));
- X do {
- X- /*
- X printf("\nLive on what type planet:(e)arth, (g)asgiant, (a)irless, (i)ce, (w)ater? ");
- X c=getchr();
- X getchr();
- X--- 136,141 ----
- X***************
- X*** 154,162 ****
- X exit(-1);
- X break;
- X }
- X- */
- X
- X! switch(int_rand(1,4)) {
- X case 1 : ppref = TYPE_EARTH; break;
- X case 2 : ppref = TYPE_AIRLESS; break;
- X case 3 : ppref = TYPE_ICEBALL; break;
- X--- 155,162 ----
- X exit(-1);
- X break;
- X }
- X
- X! /* switch(int_rand(1,4)) {
- X case 1 : ppref = TYPE_EARTH; break;
- X case 2 : ppref = TYPE_AIRLESS; break;
- X case 3 : ppref = TYPE_ICEBALL; break;
- X***************
- X*** 165,171 ****
- X exit(-1);
- X break;
- X }
- X!
- X printf("Looking for type %d planet...\n", ppref);
- X
- X /* find first planet of right type */
- X--- 165,172 ----
- X exit(-1);
- X break;
- X }
- X! */
- X!
- X printf("Looking for type %d planet...\n", ppref);
- X
- X /* find first planet of right type */
- X***************
- X*** 175,185 ****
- X for (star=0; star<Sdata.numstars && !found && count < 100; ) {
- X
- X check = 1;
- X! /* skip over uninhabited stars */
- X if (Stars[star]->inhabited)
- X check = 0;
- X
- X! /* look for unihabited planets */
- X if (check) {
- X pnum = 0;
- X while (!found && pnum<Stars[star]->numplanets) {
- X--- 176,186 ----
- X for (star=0; star<Sdata.numstars && !found && count < 100; ) {
- X
- X check = 1;
- X! /* skip over inhabited stars */
- X if (Stars[star]->inhabited)
- X check = 0;
- X
- X! /* look for uninhabited planets */
- X if (check) {
- X pnum = 0;
- X while (!found && pnum<Stars[star]->numplanets) {
- X***************
- X*** 238,248 ****
- X c=getchr();
- X getchr();
- X
- X- if (c=='y')
- X- Race->God=1;
- X- else
- X- Race->God=0;
- X
- X
- X printf("\n\nEnter a name for your race:");
- X dots(RNAMESIZE);
- X--- 239,246 ----
- X c=getchr();
- X getchr();
- X
- X
- X+ Race->God = (c=='y');
- X
- X printf("\n\nEnter a name for your race:");
- X dots(RNAMESIZE);
- X***************
- X*** 254,259 ****
- X--- 252,258 ----
- X Race->homelevel = Race->deflevel = LEVEL_PLAN;
- X Race->homesystem = Race->defsystem = star;
- X Race->homeplanetnum = Race->defplanetnum = pnum;
- X+ Race->highlight = Playernum;
- X
- X /* make conditions preferred by your people set to (more or less)
- X those of the planet : higher the concentration of gas, the higher
- X***************
- X*** 274,279 ****
- X--- 273,279 ----
- X /* assign racial characteristics */
- X
- X Race->tech = 0;
- X+ do {
- X Race->overbirthrate = float_rand() * 0.01;
- X /* your race is like "the Thing" */
- X Race->Thing = Thing[idx];
- X***************
- X*** 294,299 ****
- X--- 294,304 ----
- X printf(" Mass: %.2f\n",Race->mass);
- X printf(" Number of sexes: %d (min req'd for colonization)\n",Race->number_sexes);
- X
- X+ printf("\n\nLook OK(y/n)\?");
- X+ if(gets(str)==NULL)
- X+ exit(1);
- X+ } while (str[0] != 'y');
- X+
- X bzero((char *)secttypes, sizeof(secttypes));
- X
- X opensectdata(&enroll_sectdata);
- X***************
- X*** 369,375 ****
- X s.build_type = OTYPE_GOV;
- X s.armor = Shipdata[OTYPE_GOV][ABIL_ARMOR];
- X s.guns = Shipdata[OTYPE_GOV][ABIL_GUNS];
- X- s.size = Shipdata[OTYPE_GOV][ABIL_TARGET];
- X s.max_crew = Shipdata[OTYPE_GOV][ABIL_MAXCREW];
- X s.max_destruct = Shipdata[OTYPE_GOV][ABIL_DESTCAP];
- X s.max_resource = Shipdata[OTYPE_GOV][ABIL_CARGO];
- X--- 374,379 ----
- X***************
- X*** 376,381 ****
- X--- 380,388 ----
- X s.max_fuel = Shipdata[OTYPE_GOV][ABIL_FUELCAP];
- X s.max_speed = Shipdata[OTYPE_GOV][ABIL_SPEED];
- X s.build_cost = Shipdata[OTYPE_GOV][ABIL_COST];
- X+ s.size = 0.1*s.guns + .1*s.max_crew + .03*s.max_resource + .03*s.max_fuel
- X+ + .03*s.max_destruct;
- X+ ;
- X s.base_mass = MAX(1.0, (float)s.armor + (float)s.size/10.0 + (float)s.guns/10.0);
- X sprintf(s.class, "Standard");
- X
- X***************
- X*** 401,407 ****
- X s.rad = 0;
- X s.damage = 0; /*Shipdata[s.type][ABIL_DAMAGE];*/
- X /* (first capitol is 100% efficient */
- X!
- X s.object.number = 0;
- X s.object.number2 = 0;
- X s.object.number3 = 0;
- X--- 408,415 ----
- X s.rad = 0;
- X s.damage = 0; /*Shipdata[s.type][ABIL_DAMAGE];*/
- X /* (first capitol is 100% efficient */
- X! s.retaliate = 0;
- X!
- X s.object.number = 0;
- X s.object.number2 = 0;
- X s.object.number3 = 0;
- X***************
- X*** 410,416 ****
- X s.on = 1;
- X
- X s.name[0] = '\0';
- X!
- X putship(enroll_shdata, &s, shipno);
- X close_file(enroll_shdata);
- X
- X--- 418,425 ----
- X s.on = 1;
- X
- X s.name[0] = '\0';
- X! s.mission[0] = '\0';
- X!
- X putship(enroll_shdata, &s, shipno);
- X close_file(enroll_shdata);
- X
- X***************
- X*** 487,492 ****
- X--- 496,508 ----
- X
- X void notify(who, msg)
- X int who;
- X+ char *msg;
- X+ {
- X+ /* this is a dummy routine */
- X+ }
- X+
- X+ void push_message(what, who, msg)
- X+ int what, who;
- X char *msg;
- X {
- X /* this is a dummy routine */
- X*** /usr/cna/billr/games/gb3/server/enslave.c Wed May 30 15:13:08 1990
- X--- server/enslave.c Thu Aug 23 16:54:54 1990
- X***************
- X*** 25,30 ****
- X--- 25,31 ----
- X planettype *p;
- X int sh,shipno,i,mask,aliens=0,def=0,attack=0;
- X double Dist;
- X+ racetype *Race;
- X
- X enslave_shdata = enslave_pdata = NEUTRAL_FD;
- X
- X***************
- X*** 39,48 ****
- X--- 40,51 ----
- X
- X if (s->owner!=Playernum) {
- X DontOwnErr(Playernum,shipno);
- X+ free(s);
- X return;
- X }
- X
- X if (testship(Playernum,s, shipno)) {
- X+ free(s);
- X return;
- X }
- X
- X***************
- X*** 49,77 ****
- X if (s->type != STYPE_ASS) {
- X sprintf(buf,"This ship is not an %s.\n", Shipnames[STYPE_ASS]);
- X notify(Playernum, buf);
- X return;
- X }
- X if (s->whatorbits!=LEVEL_PLAN) {
- X sprintf(buf,"%s #%d doesn't orbit a planet.\n", Shipnames[s->type],shipno);
- X notify(Playernum, buf);
- X return;
- X }
- X
- X if (!enufAP(Playernum,Stars[s->storbits]->AP[Playernum-1], APcount)) {
- X! return;
- X }
- X
- X! free(Race);
- X! openracedata(&enslave_racedata);
- X! getrace(enslave_racedata, &Race, Playernum);
- X! close_file(enslave_racedata);
- X
- X- openpdata(&enslave_pdata);
- X- getplanet(enslave_pdata,&p,Stars[s->storbits]->planetpos[s->pnumorbits]);
- X- close_file(enslave_pdata);
- X if (p->info[Playernum-1].numsectsowned==0) {
- X sprintf(buf,"You don't have a garrison on the planet.\n");
- X notify(Playernum, buf);
- X return;
- X }
- X
- X--- 52,82 ----
- X if (s->type != STYPE_ASS) {
- X sprintf(buf,"This ship is not an %s.\n", Shipnames[STYPE_ASS]);
- X notify(Playernum, buf);
- X+ free(s);
- X return;
- X }
- X+
- X if (s->whatorbits!=LEVEL_PLAN) {
- X sprintf(buf,"%s #%d doesn't orbit a planet.\n", Shipnames[s->type],shipno);
- X notify(Playernum, buf);
- X+ free(s);
- X return;
- X }
- X
- X if (!enufAP(Playernum,Stars[s->storbits]->AP[Playernum-1], APcount)) {
- X! free(s);
- X! return;
- X }
- X
- X! openpdata(&enslave_pdata);
- X! getplanet(enslave_pdata,&p,Stars[s->storbits]->planetpos[s->pnumorbits]);
- X! close_file(enslave_pdata);
- X
- X if (p->info[Playernum-1].numsectsowned==0) {
- X sprintf(buf,"You don't have a garrison on the planet.\n");
- X notify(Playernum, buf);
- X+ free(s);
- X+ free(p);
- X return;
- X }
- X
- X***************
- X*** 86,94 ****
- X--- 91,105 ----
- X if (!aliens) {
- X sprintf(buf,"There is no one else on this planet to enslave!\n");
- X notify(Playernum, buf);
- X+ free(s);
- X+ free(p);
- X return;
- X }
- X
- X+ openracedata(&enslave_racedata);
- X+ getrace(enslave_racedata, &Race, Playernum);
- X+ close_file(enslave_racedata);
- X+
- X sh = p->ships;
- X openshdata(&enslave_shdata);
- X while (sh) {
- X***************
- X*** 164,171 ****
- X if (p->info[i-1].numsectsowned && i!=Playernum)
- X notify(i, telegram_buf);
- X
- X! free(p);
- X!
- X }
- X
- X
- X--- 175,183 ----
- X if (p->info[i-1].numsectsowned && i!=Playernum)
- X notify(i, telegram_buf);
- X
- X! free(p);
- X! free(s);
- X! free(Race);
- X }
- X
- X
- X*** /usr/cna/billr/games/gb3/server/examine.c Wed May 30 15:13:09 1990
- X--- server/examine.c Thu Aug 23 16:54:55 1990
- X***************
- X*** 41,51 ****
- X--- 41,53 ----
- X if (ship->whatorbits==LEVEL_UNIV || isclr(Stars[ship->storbits]->inhabited, Playernum)) {
- X sprintf(buf,"That ship it not visible to you.\n");
- X notify(Playernum, buf);
- X+ free(ship);
- X return;
- X }
- X
- X if ((fd=fopen(EXAM_FL, "r"))==NULL) {
- X perror(EXAM_FL);
- X+ free(ship);
- X return;
- X }
- X
- X*** /usr/cna/billr/games/gb3/server/explore.c Wed May 30 15:13:10 1990
- X--- server/explore.c Thu Aug 23 16:54:56 1990
- X***************
- X*** 25,34 ****
- X int inhab = 0;
- X int stardata,pdata;
- X char str[200];
- X
- X Num_races = Numraces();
- X
- X- free(Race);
- X openracedata(&explore_racedata);
- X getrace(explore_racedata, &Race, Playernum);
- X close_file(explore_racedata);
- X--- 25,34 ----
- X int inhab = 0;
- X int stardata,pdata;
- X char str[200];
- X+ racetype *Race;
- X
- X Num_races = Numraces();
- X
- X openracedata(&explore_racedata);
- X getrace(explore_racedata, &Race, Playernum);
- X close_file(explore_racedata);
- X***************
- X*** 38,47 ****
- X openpdata(&pdata);
- X sprintf(buf," ========== Colonization Report ==========\n\n");
- X notify(Playernum, buf);
- X! sprintf(buf," Planet res des fuel tox sects tech mob Type Aliens\n");
- X notify(Playernum, buf);
- X for (star=0; star<Sdata.numstars; star++) {
- X! getstar(stardata, &(Stars[star]), star);
- X if (isset(Stars[star]->explored,Playernum)) {
- X for (i=0; i<Stars[star]->numplanets; i++) {
- X getplanet(pdata,&pl,Stars[star]->planetpos[i]);
- X--- 38,48 ----
- X openpdata(&pdata);
- X sprintf(buf," ========== Colonization Report ==========\n\n");
- X notify(Playernum, buf);
- X! sprintf(buf," Planet xtl res des fuel tox sects tech mob Type Aliens\n");
- X notify(Playernum, buf);
- X for (star=0; star<Sdata.numstars; star++) {
- X! free(Stars[star]);
- X! getstar(stardata, &(Stars[star]), star);
- X if (isset(Stars[star]->explored,Playernum)) {
- X for (i=0; i<Stars[star]->numplanets; i++) {
- X getplanet(pdata,&pl,Stars[star]->planetpos[i]);
- X***************
- X*** 54,61 ****
- X Stars[star]->pnames[i],
- X (pl->info[Playernum-1].autorep ? "*" : ""));
- X
- X! sprintf(buf,"%19s%5d%5d%5d %3d%% %4d %3d %2d(%2d)",
- X! str,pl->info[Playernum-1].resource,
- X pl->info[Playernum-1].destruct,
- X pl->info[Playernum-1].fuel,pl->conditions[TOXIC],
- X pl->info[Playernum-1].numsectsowned,
- X--- 55,64 ----
- X Stars[star]->pnames[i],
- X (pl->info[Playernum-1].autorep ? "*" : ""));
- X
- X! sprintf(buf,"%16.16s %2d%5d%5d%5d %3d%% %4d %3d %2d(%2d)",
- X! str,
- X! pl->info[Playernum-1].crystals,
- X! pl->info[Playernum-1].resource,
- X pl->info[Playernum-1].destruct,
- X pl->info[Playernum-1].fuel,pl->conditions[TOXIC],
- X pl->info[Playernum-1].numsectsowned,
- X***************
- X*** 92,97 ****
- X--- 95,101 ----
- X }
- X close_file(stardata);
- X close_file(pdata);
- X+ free(Race);
- X }
- X
- X
- X***************
- X*** 105,114 ****
- X placetype where;
- X int inhab = 0;
- X int stardata,pdata;
- X
- X Num_races = Numraces();
- X
- X! starq = 0;
- X
- X if(argn==2) {
- X where = Getplace(Playernum,args[1],0);
- X--- 109,119 ----
- X placetype where;
- X int inhab = 0;
- X int stardata,pdata;
- X+ racetype *Race;
- X
- X Num_races = Numraces();
- X
- X! starq = -1;
- X
- X if(argn==2) {
- X where = Getplace(Playernum,args[1],0);
- X***************
- X*** 120,126 ****
- X starq = where.snum;
- X }
- X
- X- free(Race);
- X openracedata(&explore_racedata);
- X getrace(explore_racedata, &Race, Playernum);
- X close_file(explore_racedata);
- X--- 125,130 ----
- X***************
- X*** 135,141 ****
- X sprintf(buf," Star (stability)[AP] # Planet [Attributes] Type (Compatibility)\n");
- X notify(Playernum, buf);
- X for (star=0; star<Sdata.numstars; star++)
- X! if((starq ==0) || (starq && starq == star)) {
- X getstar(stardata, &(Stars[star]), star);
- X if (isset(Stars[star]->explored,Playernum)) {
- X for (i=0; i<Stars[star]->numplanets; i++) {
- X--- 139,146 ----
- X sprintf(buf," Star (stability)[AP] # Planet [Attributes] Type (Compatibility)\n");
- X notify(Playernum, buf);
- X for (star=0; star<Sdata.numstars; star++)
- X! if((starq == -1) || (starq == star)) {
- X! free(Stars[star]);
- X getstar(stardata, &(Stars[star]), star);
- X if (isset(Stars[star]->explored,Playernum)) {
- X for (i=0; i<Stars[star]->numplanets; i++) {
- X***************
- X*** 142,163 ****
- X getplanet(pdata,&pl,Stars[star]->planetpos[i]);
- X if (i == 0)
- X if (Race->tech >= TECH_SEE_STABILITY){
- X! sprintf(buf,"\n%13s (%2d)[%2d]",Stars[star]->name,Stars[star]->stability,Stars[star]->AP[Playernum-1]);
- X notify(Playernum, buf);
- X } else {
- X! sprintf(buf,"\n%13s (??)[%2d]",Stars[star]->name,Stars[star]->stability,Stars[star]->AP[Playernum-1]);
- X notify(Playernum, buf);
- X! } else {
- X! sprintf(buf,"\t\t ");
- X! notify(Playernum, buf);
- X! }
- X sprintf(buf," #%d. %-15s [ ",i+1,Stars[star]->pnames[i]);
- X notify(Playernum, buf);
- X if (pl->info[Playernum-1].explored) {
- X! sprintf(buf,"Expl ");
- X notify(Playernum, buf);
- X if (pl->info[Playernum-1].autorep) {
- X! sprintf(buf,"Report ");
- X notify(Playernum, buf);
- X }
- X if (pl->info[Playernum-1].numsectsowned) {
- X--- 147,169 ----
- X getplanet(pdata,&pl,Stars[star]->planetpos[i]);
- X if (i == 0)
- X if (Race->tech >= TECH_SEE_STABILITY){
- X! sprintf(buf,"\n%13s (%2d)[%2d]\n",Stars[star]->name,Stars[star]->stability,Stars[star]->AP[Playernum-1]);
- X notify(Playernum, buf);
- X } else {
- X! sprintf(buf,"\n%13s (??)[%2d]\n",Stars[star]->name,Stars[star]->stability,Stars[star]->AP[Playernum-1]);
- X notify(Playernum, buf);
- X! }
- X!
- X! sprintf(buf,"\t\t ");
- X! notify(Playernum, buf);
- X!
- X sprintf(buf," #%d. %-15s [ ",i+1,Stars[star]->pnames[i]);
- X notify(Playernum, buf);
- X if (pl->info[Playernum-1].explored) {
- X! sprintf(buf,"Ex ");
- X notify(Playernum, buf);
- X if (pl->info[Playernum-1].autorep) {
- X! sprintf(buf,"Rep ");
- X notify(Playernum, buf);
- X }
- X if (pl->info[Playernum-1].numsectsowned) {
- X***************
- X*** 197,204 ****
- X free(pl);
- X }
- X }
- X! }
- X close_file(stardata);
- X close_file(pdata);
- X }
- X
- X--- 203,212 ----
- X free(pl);
- X }
- X }
- X! }
- X close_file(stardata);
- X close_file(pdata);
- X+ free(Race);
- X }
- X+
- X
- X*** /usr/cna/billr/games/gb3/server/files.c Wed May 30 15:13:10 1990
- X--- server/files.c Thu Aug 23 16:54:56 1990
- X***************
- X*** 27,31 ****
- X DFILE(Tele),
- X DFILE(Tele/tele),
- X DFILE(power),
- X! DFILE(LOCK)
- X! };
- X--- 27,36 ----
- X DFILE(Tele),
- X DFILE(Tele/tele),
- X DFILE(power),
- X! DFILE(LOCK),
- X! DFILE(News),
- X! DFILE(News/declaration),
- X! DFILE(News/transfer),
- X! DFILE(News/combat),
- X! DFILE(News/announce)
- X! };
- X*** /usr/cna/billr/games/gb3/server/files_rw.c Wed May 30 15:13:11 1990
- X--- server/files_rw.c Thu Aug 23 16:54:57 1990
- X***************
- X*** 65,75 ****
- X int n2;
- X int i;
- X
- X- Num_races=Numraces();
- X-
- X-
- X- /* printf(" fd =%d writing %d bytes to %s posn %d.\n",fd,num,file,posn); */
- X-
- X if (lseek(fd, posn, L_SET) < 0) {
- X char buf[100];
- X sprintf(buf,"%s: err %d",file,errno);
- X--- 65,70 ----
- X*** /usr/cna/billr/games/gb3/server/files_shl.c Wed May 30 15:13:13 1990
- X--- server/files_shl.c Fri Aug 24 15:14:32 1990
- X***************
- X*** 37,42 ****
- X--- 37,43 ----
- X #include "ships.h"
- X #include "races.h"
- X #include "power.h"
- X+ #include "buffers.h"
- X #include <strings.h>
- X #include <sys/stat.h>
- X #include <signal.h>
- X***************
- X*** 109,119 ****
- X }
- X
- X
- X! getrace(fd, r,rnum)
- X int fd;
- X racetype **r;
- X int rnum;
- X {
- X *r = (racetype *)malloc(sizeof(racetype));
- X Fileread(fd, (char *)*r, sizeof(racetype), RACEDATAFL,
- X (rnum-1)*sizeof(racetype) );
- X--- 110,121 ----
- X }
- X
- X
- X! getrace(fd, r, rnum)
- X int fd;
- X racetype **r;
- X int rnum;
- X {
- X+
- X *r = (racetype *)malloc(sizeof(racetype));
- X Fileread(fd, (char *)*r, sizeof(racetype), RACEDATAFL,
- X (rnum-1)*sizeof(racetype) );
- X***************
- X*** 295,302 ****
- X struct stat buf;
- X
- X fstat(fd,&buf);
- X-
- X- /* printf("numships %d\n",(int)(buf.st_size / sizeof(shiptype)) ); */
- X return( (int)(buf.st_size / sizeof(shiptype)) );
- X }
- X
- X--- 297,302 ----
- X*** /usr/cna/billr/games/gb3/server/fix.c Wed May 30 15:13:16 1990
- X--- server/fix.c Fri Aug 24 15:15:15 1990
- X***************
- X*** 29,36 ****
- X #include <signal.h>
- X int fix_stardata,fix_shdata,fix_pdata,fix_sectdata, fix_racedata;
- X char s[40];
- X!
- X! boolean fix_mod;
- X int Playernum;
- X
- X main(argc, argv)
- X--- 29,37 ----
- X #include <signal.h>
- X int fix_stardata,fix_shdata,fix_pdata,fix_sectdata, fix_racedata;
- X char s[40];
- X! char z; /*nicgj3*/
- X! racetype *Race;
- X! int fix_mod;
- X int Playernum;
- X
- X main(argc, argv)
- X***************
- X*** 45,65 ****
- X sectortype *sect;
- X shiptype *sh;
- X int fix_handler();
- X
- X fix_mod = 0;
- X fix_stardata = fix_shdata = fix_pdata = fix_sectdata = NEUTRAL_FD;
- X /* so closure does not cause wanted files to close (like stdin
- X or stdout) -- should not cause probs most vers. of UNIX */
- X-
- X printf("Enter race number: ");
- X scanf("%d", &Playernum);
- X
- X! openracedata(&fix_racedata);
- X! free(Race);
- X! getrace(fix_racedata, &Race, Playernum);
- X! close_file(fix_racedata);
- X
- X! if (!strcmp(argv[1], "race", strlen(argv[1]))) {
- X query(FLOAT,"tech",&Race->tech,0,0,0,0);
- X query(FLOAT,"birthrate",&Race->birthrate,0,0,0,0);
- X query(FLOAT,"mass",&Race->mass,0,0,0,0);
- X--- 46,80 ----
- X sectortype *sect;
- X shiptype *sh;
- X int fix_handler();
- X+ int numraces; /*nicgj3*/
- X
- X fix_mod = 0;
- X fix_stardata = fix_shdata = fix_pdata = fix_sectdata = NEUTRAL_FD;
- X /* so closure does not cause wanted files to close (like stdin
- X or stdout) -- should not cause probs most vers. of UNIX */
- X printf("Enter race number: ");
- X scanf("%d", &Playernum);
- X
- X! openracedata(&fix_racedata); /*nicgj3*/
- X! /*free(Race); (freeing a pointer never allocated??) */
- X! getrace(fix_racedata, &Race, Playernum); /*nicgj3*/
- X! close_file(fix_racedata); /*nicgj3*/
- X! numraces=Numraces(); /*nicgj3*/
- X
- X! if(argc < 2) {
- X! printf("You have to do 'fix <what>'!\n");
- X! exit(0);
- X! }
- X!
- X! if ((argc==2) && (!strcmp(argv[1], "race"))) { /*nicgj3*/
- X! getchr(); /*nicgj3*/
- X! for(i=1;i<=numraces;i++){ /*nicgj3*/
- X! if (i!=Playernum) { /*nicgj3*/
- X! printf("Player %d ",i); /*nicgj3*/
- X! query(CHAR,"Relations",0,0,&Race->translate[i-1],0,0); /*nicgj3*/
- X! }
- X! }
- X! query(SHORT,"God",0,0,0,&Race->God,0); /*nicgj3*/
- X query(FLOAT,"tech",&Race->tech,0,0,0,0);
- X query(FLOAT,"birthrate",&Race->birthrate,0,0,0,0);
- X query(FLOAT,"mass",&Race->mass,0,0,0,0);
- X***************
- X*** 90,101 ****
- X query(CHAR, "Sulfur",0,0,&Race->conditions[SULFUR],0,0);
- X query(CHAR, "Helium",0,0,&Race->conditions[HELIUM],0,0);
- X query(CHAR, "Other",0,0,&Race->conditions[OTHER],0,0);
- X! if (fix_mod){
- X printf("saving");
- X! putrace(Race);}
- X } else {
- X! where = Getplace(Playernum,argv[1],0); /* do not ignore the fact that you've not
- X! explored the place */
- X if (where.err) {
- X sprintf(buf,"cs: bad scope.\n");
- X notify(Playernum, buf);
- X--- 105,125 ----
- X query(CHAR, "Sulfur",0,0,&Race->conditions[SULFUR],0,0);
- X query(CHAR, "Helium",0,0,&Race->conditions[HELIUM],0,0);
- X query(CHAR, "Other",0,0,&Race->conditions[OTHER],0,0);
- X! if (fix_mod!=0){
- X printf("saving");
- X! openracedata(&fix_racedata); /*nicgj3*/
- X! putrace(fix_racedata,Race); /*nicgj3*/
- X! close_file(fix_racedata); /*nicgj3*/
- X! }
- X } else {
- X! openstardata(&fix_stardata); /*nicgj3*/
- X! getsdata(fix_stardata, &Sdata); /*nicgj3*/
- X! for (z=0; z<Sdata.numstars; z++) { /*nicgj3*/
- X! getstar(fix_stardata,&(Stars[z]),z); /*nicgj3*/
- X! } /*nicgj3*/
- X! close(fix_stardata); /*nicgj3*/
- X!
- X! where = Getplace(Playernum,argv[1],1);
- X if (where.err) {
- X sprintf(buf,"cs: bad scope.\n");
- X notify(Playernum, buf);
- X***************
- X*** 106,112 ****
- X case LEVEL_UNIV:
- X openstardata(&fix_stardata);
- X getsdata(fix_stardata, &Sdata);
- X!
- X query(CHAR, "ActionPoints",0,0,&Sdata.AP[Playernum-1],0,0);
- X query(SHORT, "shiplist start",0,0,0,&Sdata.ships,0);
- X /*for (ch=MAXUSHIPS-1; ch>1 && Sdata.shipnums[ch]; ch--) ;
- X--- 130,136 ----
- X case LEVEL_UNIV:
- X openstardata(&fix_stardata);
- X getsdata(fix_stardata, &Sdata);
- X! getchr(); /*nicgj3*/
- X query(CHAR, "ActionPoints",0,0,&Sdata.AP[Playernum-1],0,0);
- X query(SHORT, "shiplist start",0,0,0,&Sdata.ships,0);
- X /*for (ch=MAXUSHIPS-1; ch>1 && Sdata.shipnums[ch]; ch--) ;
- X***************
- X*** 128,133 ****
- X--- 152,158 ----
- X
- X printf("Star #%d : %s\n\n", where.snum, Stars[where.snum]->name );
- X
- X+ getchr(); /*nicgj3*/
- X query(SHORT, "shiplist start",0,0,0,&Stars[where.snum]->ships,0);
- X query(CHAR, "ActionPoints",0,0,&Stars[where.snum]->AP[Playernum-1],0,0);
- X
- X***************
- X*** 146,152 ****
- X ch = Stars[where.snum]->nova_stage;
- X query(CHAR, "nova stage",0,0,&ch,0,0);
- X Stars[where.snum]->nova_stage = ch;
- X! printf("(limit %d) ",MAXPLANETS);
- X query(CHAR, "# planets",0,0,&Stars[where.snum]->numplanets,0,0);
- X for (i=0; i<Stars[where.snum]->numplanets; i++) {
- X printf("Planet #%d (%s) ", i, Stars[where.snum]->pnames[i]);
- X--- 171,177 ----
- X ch = Stars[where.snum]->nova_stage;
- X query(CHAR, "nova stage",0,0,&ch,0,0);
- X Stars[where.snum]->nova_stage = ch;
- X! printf("(limit %d) ",MAXPLANETS);
- X query(CHAR, "# planets",0,0,&Stars[where.snum]->numplanets,0,0);
- X for (i=0; i<Stars[where.snum]->numplanets; i++) {
- X printf("Planet #%d (%s) ", i, Stars[where.snum]->pnames[i]);
- X***************
- X*** 170,175 ****
- X--- 195,201 ----
- X printf("\nPlanet / %s / %s\n", Stars[where.snum]->name,
- X Stars[where.snum]->pnames[where.pnum]);
- X unl = p->info[Playernum-1].resource;
- X+ getchr(); /*nicgj3*/
- X query(LONG, "\nstockpile resources",0,0,0,0,&unl);
- X p->info[Playernum-1].resource = unl;
- X unl = p->info[Playernum-1].destruct;
- X***************
- X*** 287,293 ****
- X query(CHAR, "owner",0,0,&ch,0,0);
- X sh->owner = ch;
- X
- X! unl = sh->type;
- X query(LONG, "type",0,0,0,0,&unl);
- X sh->type = unl;
- X query(FLOAT,"technology",&sh->tech,0,0,0,0);
- X--- 313,320 ----
- X query(CHAR, "owner",0,0,&ch,0,0);
- X sh->owner = ch;
- X
- X! unl = sh->type;
- X! getchr(); /*nicgj3*/
- X query(LONG, "type",0,0,0,0,&unl);
- X sh->type = unl;
- X query(FLOAT,"technology",&sh->tech,0,0,0,0);
- X***************
- X*** 297,314 ****
- X
- X query(FLOAT,"fuel",&sh->fuel,0,0,0,0);
- X unl = sh->destruct;
- X! query(LONG, "destruct cap",0,0,0,0,&unl);
- X sh->destruct = unl;
- X unl = sh->resource;
- X! query(LONG, "resource",0,0,0,0,&unl);
- X sh->resource = unl;
- X unl = sh->popn;
- X query(LONG, "crew",0,0,0,0,&unl);
- X sh->popn = unl;
- X
- X unl = sh->rad;
- X query(LONG, "irradiated",0,0,0,0,&unl);
- X sh->rad = unl;
- X
- X unl = sh->damage;
- X query(LONG, "damage",0,0,0,0,&unl);
- X--- 324,366 ----
- X
- X query(FLOAT,"fuel",&sh->fuel,0,0,0,0);
- X unl = sh->destruct;
- X! query(LONG, "destruct",0,0,0,0,&unl);
- X sh->destruct = unl;
- X unl = sh->resource;
- X! query(LONG, "resources",0,0,0,0,&unl);
- X sh->resource = unl;
- X unl = sh->popn;
- X query(LONG, "crew",0,0,0,0,&unl);
- X sh->popn = unl;
- X+ unl = sh->crystals;
- X+ query(LONG, "crystals",0,0,0,0,&unl);
- X+ sh->crystals = unl;
- X+ unl = sh->hyper_drive.has;
- X+ query(LONG, "hyper drive?",0,0,0,0,&unl);
- X+ sh->hyper_drive.has = unl;
- X
- X+ unl = sh->max_destruct;
- X+ query(LONG, "max destruct",0,0,0,0,&unl);
- X+ sh->max_destruct = unl;
- X+ unl = sh->max_fuel;
- X+ query(LONG, "max fuel",0,0,0,0,&unl);
- X+ sh->max_fuel = unl;
- X+ unl = sh->max_resource;
- X+ query(LONG, "max resources",0,0,0,0,&unl);
- X+ sh->max_resource = unl;
- X+ unl = sh->max_crew;
- X+ query(LONG, "max crew",0,0,0,0,&unl);
- X+ sh->max_crew = unl;
- X+ unl = sh->build_cost;
- X+ query(LONG, "build cost",0,0,0,0,&unl);
- X+ sh->build_cost = unl;
- X+
- X unl = sh->rad;
- X query(LONG, "irradiated",0,0,0,0,&unl);
- X sh->rad = unl;
- X+ unl = sh->active;
- X+ query(LONG, "active",0,0,0,0,&unl);
- X+ sh->active = unl;
- X
- X unl = sh->damage;
- X query(LONG, "damage",0,0,0,0,&unl);
- X***************
- X*** 351,360 ****
- X query(SHORT, "abil_max crew",0,0,0,&sh->abils[ABIL_MAXCREW],0);
- X query(SHORT, "abil_armor",0,0,0,&sh->abils[ABIL_ARMOR],0);*/
- X
- X! query(SHORT, "object:number",0,0,0,&sh->object.number,0);
- X! query(SHORT, "object:number2",0,0,0,&sh->object.number2,0);
- X! query(SHORT, "object:number3",0,0,0,&sh->object.number3,0);
- X! query(SHORT, "object:number4",0,0,0,&sh->object.number4,0);
- X
- X
- X if (fix_mod) {
- X--- 403,412 ----
- X query(SHORT, "abil_max crew",0,0,0,&sh->abils[ABIL_MAXCREW],0);
- X query(SHORT, "abil_armor",0,0,0,&sh->abils[ABIL_ARMOR],0);*/
- X
- X! query(SHORT, "object:number1",0,0,0,&sh->object.number,0);
- X! query(SHORT, "object:number2",0,0,0,&sh->object.number2,0);
- X! query(SHORT, "object:number3",0,0,0,&sh->object.number3,0);
- X! query(SHORT, "object:number4",0,0,0,&sh->object.number4,0);
- X
- X
- X if (fix_mod) {
- X***************
- X*** 365,377 ****
- X break;
- X
- X
- X }
- X }
- X
- X
- X- }
- X-
- X-
- X query( kind, quest, fprev, iprev, cprev, sprev, lprev)
- X int kind;
- X char *quest;
- X--- 417,427 ----
- X break;
- X
- X
- X+ }
- X }
- X }
- X
- X
- X query( kind, quest, fprev, iprev, cprev, sprev, lprev)
- X int kind;
- X char *quest;
- X***************
- X*** 441,446 ****
- X--- 491,504 ----
- X printf("%s\n", temp);
- X }
- X
- X+ void push_message(what, who, msg, type)
- X+ int what, who;
- X+ char *msg;
- X+ int type;
- X+ {
- X+ /* this is a dummy routine */
- X+ }
- X+
- X fix_handler()
- X {
- X close_file(fix_stardata);
- X***************
- X*** 448,454 ****
- X close_file(fix_pdata);
- X close_file(fix_sectdata);
- X }
- X-
- X-
- X-
- X
- X--- 506,509 ----
- X*** /usr/cna/billr/games/gb3/server/getplace.c Wed May 30 15:13:18 1990
- X--- server/getplace.c Thu Aug 23 16:55:04 1990
- X***************
- X*** 29,42 ****
- X boolean error;
- X int getplace_shdata;
- X placetype where; /* return value */
- X!
- X Bzero(where);
- X
- X! free(Race);
- X openracedata(&getplace_racedata);
- X getrace(getplace_racedata, &Race, Playernum);
- X close_file(getplace_racedata);
- X!
- X where.err = 0;
- X
- X switch (*string) {
- X--- 29,46 ----
- X boolean error;
- X int getplace_shdata;
- X placetype where; /* return value */
- X! racetype *Race;
- X! int God;
- X!
- X Bzero(where);
- X
- X!
- X openracedata(&getplace_racedata);
- X getrace(getplace_racedata, &Race, Playernum);
- X close_file(getplace_racedata);
- X! God = Race->God;
- X! free(Race);
- X!
- X where.err = 0;
- X
- X switch (*string) {
- X***************
- X*** 44,50 ****
- X where.level=LEVEL_UNIV; /* scope = root (universe) */
- X where.snum=0;
- X where.pnum= where.shipno=0;
- X! return(Getplace2(Playernum, string+1,&where,ignoreexpl,Race->God));
- X case '#':
- X sscanf(++string,"%hd",&where.shipno);
- X openshdata(&getplace_shdata);
- X--- 48,54 ----
- X where.level=LEVEL_UNIV; /* scope = root (universe) */
- X where.snum=0;
- X where.pnum= where.shipno=0;
- X! return(Getplace2(Playernum, string+1,&where,ignoreexpl,God));
- X case '#':
- X sscanf(++string,"%hd",&where.shipno);
- X openshdata(&getplace_shdata);
- X***************
- X*** 55,62 ****
- X return where;
- X }
- X close_file(getplace_shdata);
- X! if ( (where.shipptr->owner==Playernum || ignoreexpl || Race->God)
- X! && (where.shipptr->is_alive || Race->God)) {
- X /* if (!where.shipptr->is_alive)
- X printf("Ship is dead.\n"); */
- X where.level = LEVEL_SHIP;
- X--- 59,67 ----
- X return where;
- X }
- X close_file(getplace_shdata);
- X! if ( (where.shipptr->owner==Playernum || ignoreexpl
- X! || God)
- X! && (where.shipptr->is_alive || God)) {
- X /* if (!where.shipptr->is_alive)
- X printf("Ship is dead.\n"); */
- X where.level = LEVEL_SHIP;
- X***************
- X*** 65,79 ****
- X /* where.shipno already taken care of */
- X while (isdigit(*string))
- X string++;
- X! if (*string=='/')
- X! return Getplace2(Playernum, string+1,&where, ignoreexpl,Race->God);
- X! else
- X! return where;
- X! } else {
- X where.err = 1;
- X if (where.shipptr->is_alive)
- X DontOwnErr(Playernum,where.shipno);
- X-
- X return where;
- X }
- X
- X--- 70,84 ----
- X /* where.shipno already taken care of */
- X while (isdigit(*string))
- X string++;
- X! if (*string=='/') {
- X! return Getplace2(Playernum, string+1,&where, ignoreexpl,God);
- X! } else {
- X! return where;
- X! }
- X! } else {
- X where.err = 1;
- X if (where.shipptr->is_alive)
- X DontOwnErr(Playernum,where.shipno);
- X return where;
- X }
- X
- X***************
- X*** 80,86 ****
- X case '-':
- X /* no destination */
- X where.level = LEVEL_UNIV;
- X! return where;
- X
- X default:
- X /* copy current scope to scope */
- X--- 85,91 ----
- X case '-':
- X /* no destination */
- X where.level = LEVEL_UNIV;
- X! return where;
- X
- X default:
- X /* copy current scope to scope */
- X***************
- X*** 93,104 ****
- X getship(getplace_shdata,&(where.shipptr),where.shipno);
- X close_file(getplace_shdata);
- X }
- X! if (*string==CHAR_CURR_SCOPE)
- X! return where;
- X! else
- X! return Getplace2(Playernum, string,&where, ignoreexpl,Race->God);
- X! }
- X!
- X }
- X
- X
- X--- 98,109 ----
- X getship(getplace_shdata,&(where.shipptr),where.shipno);
- X close_file(getplace_shdata);
- X }
- X! if (*string==CHAR_CURR_SCOPE) {
- X! return where;
- X! } else {
- X! return Getplace2(Playernum, string,&where, ignoreexpl,God);
- X! }
- X! }
- X }
- X
- X
- X***************
- X*** 117,124 ****
- X int shdata,tick;
- X int getplace2_pdata;
- X
- X- /* printf("getplace2:looking for '%s'\n",string); */
- X-
- X if (where->err || *string=='\0' || *string=='\n')
- X return(*where); /* base cases */
- X
- X--- 122,127 ----
- X***************
- X*** 139,147 ****
- X }
- X } else {
- X /* is a char string, name of something */
- X! /*printf("before scanf str=`%s`\n",string);*/
- X! sscanf(string,"%[^/ \n]",substr);
- X! /*printf("after scanf sub=`%s`\n",substr);*/
- X
- X do {
- X /*if (isupper(*string) )
- X--- 142,148 ----
- X }
- X } else {
- X /* is a char string, name of something */
- X! sscanf(string,"%[^/ \n]",substr);
- X
- X do {
- X /*if (isupper(*string) )
- X***************
- X*** 155,161 ****
- X if (!strncmp(substr,Stars[i]->name,l)) {
- X where->level=LEVEL_STAR;
- X where->snum = i;
- X! if (ignoreexpl || isset(Stars[where->snum]->explored, Playernum) || God) {
- X tick = (*string=='/');
- X return(Getplace2(Playernum, string+tick, where, ignoreexpl, God));
- X }
- X--- 156,163 ----
- X if (!strncmp(substr,Stars[i]->name,l)) {
- X where->level=LEVEL_STAR;
- X where->snum = i;
- X! if (ignoreexpl ||
- X! isset(Stars[where->snum]->explored, Playernum) || God) {
- X tick = (*string=='/');
- X return(Getplace2(Playernum, string+tick, where, ignoreexpl, God));
- X }
- X***************
- X*** 196,202 ****
- X where->err=1;
- X return(*where);
- X }
- X! } else if (where->level==LEVEL_PLAN) {
- X sprintf(buf,"Can't descend to %s.\n",substr);
- X notify(Playernum, buf);
- X where->err=1;
- X--- 198,204 ----
- X where->err=1;
- X return(*where);
- X }
- X! } else {
- X sprintf(buf,"Can't descend to %s.\n",substr);
- X notify(Playernum, buf);
- X where->err=1;
- X***************
- X*** 256,262 ****
- X notify(Playernum, buf);
- X r = 1;
- X }
- X! if (!s->popn && Max_crew(s)) {
- X sprintf(buf,"%s #%d %s has no crew and is not a robotic ship.\n",
- X Shipnames[s->type], n, s->name );
- X notify(Playernum, buf);
- X--- 258,264 ----
- X notify(Playernum, buf);
- X r = 1;
- X }
- X! if (!s->popn && s->max_crew) {
- X sprintf(buf,"%s #%d %s has no crew and is not a robotic ship.\n",
- X Shipnames[s->type], n, s->name );
- X notify(Playernum, buf);
- X*** /usr/cna/billr/games/gb3/server/makeplanet.c Wed May 30 15:13:26 1990
- X--- server/makeplanet.c Thu Aug 23 16:55:10 1990
- X***************
- X*** 334,339 ****
- X--- 334,349 ----
- X
- X }
- X
- X+ /* make crystal deposits */
- X+ for (y=0; y<planet.Maxy; y++)
- X+ for (x=0; x<planet.Maxx; x++) {
- X+ s = &Sector(planet,x,y);
- X+ if(!int_rand(0, 200))
- X+ s->crystals=int_rand(1,5);
- X+ else
- X+ s->crystals = 0;
- X+ }
- X+
- X return planet;
- X
- X }
- X*** /usr/cna/billr/games/gb3/server/orbit.c Wed May 30 15:13:38 1990
- X--- server/orbit.c Thu Aug 23 16:55:20 1990
- X***************
- X*** 27,32 ****
- X--- 27,33 ----
- X float Lastx, Lasty, Zoom;
- X int SCALE = 100;
- X int orbit_racedata;
- X+ racetype *Race;
- X
- X orbit(Playernum, APcount, argn, args)
- X int Playernum;
- X***************
- X*** 47,57 ****
- X
- X DontDispPlanets = DontDispShips = DontDispStars = 0;
- X
- X- free(Race);
- X- openracedata(&orbit_racedata);
- X- getrace(orbit_racedata, &Race, Playernum);
- X- close_file(orbit_racedata);
- X-
- X /* find options, set flags accordingly */
- X for (flag=1; flag<=argn-1; flag++)
- X if (*args[flag]=='-') {
- X--- 48,53 ----
- X***************
- X*** 93,98 ****
- X--- 89,98 ----
- X /* orbit type of map */
- X sprintf(output, "#");
- X
- X+ openracedata(&orbit_racedata);
- X+ getrace(orbit_racedata, &Race, Playernum);
- X+ close_file(orbit_racedata);
- X+
- X switch (where.level) {
- X case LEVEL_UNIV:
- X for (i=0; i<Sdata.numstars; i++)
- X***************
- X*** 123,130 ****
- X str_cat(output, buf);
- X
- X openpdata(&orbit_pdata);
- X-
- X-
- X for (i=0; i<Stars[where.snum]->numplanets; i++)
- X if (DontDispNum!=i) {
- X getplanet(orbit_pdata,&p,Stars[where.snum]->planetpos[i]);
- X--- 123,128 ----
- X***************
- X*** 133,140 ****
- X str_cat(output, buf);
- X free(p);
- X }
- X!
- X! close_file(orbit_pdata);
- X
- X /* check to see if you have ships at orbiting the star, if so you can
- X see enemy ships */
- X--- 131,137 ----
- X str_cat(output, buf);
- X free(p);
- X }
- X! close_file(orbit_pdata);
- X
- X /* check to see if you have ships at orbiting the star, if so you can
- X see enemy ships */
- X***************
- X*** 143,149 ****
- X openshdata(&orbit_shdata);
- X while (sh && !iq) {
- X (void)getship(orbit_shdata, &s, sh);
- X! if(s->owner == Playernum && Shipdata[s->type][ABIL_SIGHT])
- X iq = 1; /* you are there to sight, need a crew */
- X sh = s->nextship;
- X free(s);
- X--- 140,146 ----
- X openshdata(&orbit_shdata);
- X while (sh && !iq) {
- X (void)getship(orbit_shdata, &s, sh);
- X! if(s->owner == Playernum && Sight(s))
- X iq = 1; /* you are there to sight, need a crew */
- X sh = s->nextship;
- X free(s);
- X***************
- X*** 188,194 ****
- X openshdata(&orbit_shdata);
- X while (sh && !iq) {
- X (void)getship(orbit_shdata, &s, sh);
- X! if(s->owner == Playernum && Shipdata[s->type][ABIL_SIGHT])
- X iq = 1; /* you are there to sight, need a crew */
- X sh = s->nextship;
- X free(s);
- X--- 185,191 ----
- X openshdata(&orbit_shdata);
- X while (sh && !iq) {
- X (void)getship(orbit_shdata, &s, sh);
- X! if(s->owner == Playernum && Sight(s))
- X iq = 1; /* you are there to sight, need a crew */
- X sh = s->nextship;
- X free(s);
- X***************
- X*** 220,229 ****
- X
- X default:
- X notify(Playernum,"Bad scope.\n");
- X! return;
- X }
- X
- X notify(Playernum, output);
- X }
- X
- X
- X--- 217,229 ----
- X
- X default:
- X notify(Playernum,"Bad scope.\n");
- X! free(Race);
- X! return;
- X! break;
- X }
- X
- X notify(Playernum, output);
- X+ free(Race);
- X }
- X
- X
- X***************
- X*** 285,291 ****
- X /* check to see if the any planets are populated here. If so,
- X standout() the name of it */
- X
- X! sprintf(temp, "%d %s ;",isset(star->inhabited, Playernum), star->name);
- X str_cat(string, temp);
- X }
- X }
- X--- 285,291 ----
- X /* check to see if the any planets are populated here. If so,
- X standout() the name of it */
- X
- X! sprintf(temp, "%d %s ;",!!isset(star->inhabited, Playernum), star->name);
- X str_cat(string, temp);
- X }
- X }
- X***************
- X*** 436,445 ****
- X
- X /* (magnification) */
- X if (x>=0 && y>=0) {
- X! if(ship->owner==Playernum)stand=1;
- X else stand = 0;
- X
- X sprintf(string, "%d %d %d %d %c %d %d;",stand,x,y,wm,Shipltrs[ship->type],stand,shipno);
- X }
- X break;
- X
- X--- 436,451 ----
- X
- X /* (magnification) */
- X if (x>=0 && y>=0) {
- X!
- X! if(Race->color) {
- X! sprintf(string, "%c %d %d %d %c %c %d;",(char)(ship->owner+48),x,y,wm,
- X! Shipltrs[ship->type],(char)(ship->owner+48),shipno);
- X! } else {
- X! if(ship->owner==Race->highlight)stand=1;
- X else stand = 0;
- X
- X sprintf(string, "%d %d %d %d %c %d %d;",stand,x,y,wm,Shipltrs[ship->type],stand,shipno);
- X+ }
- X }
- X break;
- X
- X***************
- X*** 459,469 ****
- X xa = int_rand(x - (int)fac, x + (int)fac);
- X ya = int_rand(y - (int)fac, y + (int)fac);
- X if (xa>=0 && ya>=0) {
- X! if(ship->owner==Playernum)stand=1;
- X else stand = 0;
- X sprintf(temp, "%d %d %d %d %c %d %d;",stand,xa,ya,wm,Shipltrs[ship->type],
- X stand,shipno);
- X!
- X str_cat(string, temp);
- X }
- X }
- X--- 465,480 ----
- X xa = int_rand(x - (int)fac, x + (int)fac);
- X ya = int_rand(y - (int)fac, y + (int)fac);
- X if (xa>=0 && ya>=0) {
- X!
- X! if(Race->color) {
- X! sprintf(temp, "%c %d %d %d %c %c %d;",(char)(ship->owner+48),xa,ya,wm,
- X! Shipltrs[ship->type], (char)(ship->owner+48),shipno);
- X! } else {
- X! if(ship->owner==Race->highlight)stand=1;
- X else stand = 0;
- X sprintf(temp, "%d %d %d %d %c %d %d;",stand,xa,ya,wm,Shipltrs[ship->type],
- X stand,shipno);
- X! }
- X str_cat(string, temp);
- X }
- X }
- X***************
- X*** 476,485 ****
- X wm=0;
- X if (ship->whatorbits!=LEVEL_UNIV || (ship->owner == Playernum || God))
- X if (x>=0 && y>=0) {
- X! if(ship->owner==Playernum)stand=1;
- X else stand = 0;
- X sprintf(string, "%d %d %d %d %c %d %d;",stand,x,y,wm,Shipltrs[ship->type],stand,shipno);
- X!
- X }
- X break;
- X }
- X--- 487,501 ----
- X wm=0;
- X if (ship->whatorbits!=LEVEL_UNIV || (ship->owner == Playernum || God))
- X if (x>=0 && y>=0) {
- X!
- X! if(Race->color) {
- X! sprintf(string, "%c %d %d %d %c %c %d;",(char)(ship->owner+48),x,y,wm,
- X! Shipltrs[ship->type],(char)(ship->owner+48),shipno);
- X! } else {
- X! if(ship->owner==Race->highlight)stand=1;
- X else stand = 0;
- X sprintf(string, "%d %d %d %d %c %d %d;",stand,x,y,wm,Shipltrs[ship->type],stand,shipno);
- X! }
- X }
- X break;
- X }
- X*** /usr/cna/billr/games/gb3/server/order.c Wed May 30 15:13:40 1990
- X--- server/order.c Thu Aug 23 16:55:22 1990
- X***************
- X*** 115,121 ****
- X Stars[Dir[Playernum-1].snum]->planetpos[Dir[Playernum-1].pnum]);
- X close_file(pdata);
- X shipno = p->ships;
- X! break;
- X case LEVEL_STAR:
- X shipno = Stars[Dir[Playernum-1].snum]->ships;
- X break;
- X--- 115,122 ----
- X Stars[Dir[Playernum-1].snum]->planetpos[Dir[Playernum-1].pnum]);
- X close_file(pdata);
- X shipno = p->ships;
- X! free(p);
- X! break;
- X case LEVEL_STAR:
- X shipno = Stars[Dir[Playernum-1].snum]->ships;
- X break;
- X***************
- X*** 204,210 ****
- X i=strlen(args[2]);
- X
- X if (!strncmp(args[2],"defense",i)) {
- X! if (can_bombard(ship) || ship->type == OTYPE_GR) {
- X if(!strncmp(args[3],"off", strlen(args[3]))) {
- X ship->protect.planet = 0;
- X notify(Playernum, "Planetary defense canceled.\n");
- X--- 205,211 ----
- X i=strlen(args[2]);
- X
- X if (!strncmp(args[2],"defense",i)) {
- X! if (can_bombard(ship)) {
- X if(!strncmp(args[3],"off", strlen(args[3]))) {
- X ship->protect.planet = 0;
- X notify(Playernum, "Planetary defense canceled.\n");
- X***************
- X*** 218,224 ****
- X return;
- X }
- X } else if (!strncmp(args[2],"jump",i)) {
- X! if(Shipdata[ship->type][ABIL_JUMP]) {
- X if(!strncmp(args[3],"off", strlen(args[3]))) {
- X ship->hyper_drive.on = 0;
- X notify(Playernum, "Hyper drive turned off.\n");
- X--- 219,225 ----
- X return;
- X }
- X } else if (!strncmp(args[2],"jump",i)) {
- X! if(ship->hyper_drive.has) {
- X if(!strncmp(args[3],"off", strlen(args[3]))) {
- X ship->hyper_drive.on = 0;
- X notify(Playernum, "Hyper drive turned off.\n");
- X***************
- X*** 230,235 ****
- X--- 231,242 ----
- X }
- X ship->hyper_drive.on = 1;
- X ship->navigate.on = 0;
- X+
- X+ if(ship->hyper_drive.mounted) {
- X+ ship->hyper_drive.charge = 1;
- X+ ship->hyper_drive.ready = 1;
- X+ }
- X+
- X notify(Playernum, "Hyper drive engine's activated.\n");
- X /* estimate how much fuel it will cost for this ship to get there */
- X }
- X***************
- X*** 241,247 ****
- X
- X } else if (!strncmp(args[2],"protect",i)) {
- X
- X! sscanf(args[3]+(args[3][0]=='#'),"%d",&j);
- X
- X if(j < 0 || j > n_ships || j==shipno) {
- X notify(Playernum, "You can't protect that!\n");
- X--- 248,257 ----
- X
- X } else if (!strncmp(args[2],"protect",i)) {
- X
- X! if(argn>3)
- X! sscanf(args[3]+(args[3][0]=='#'),"%d",&j);
- X! else
- X! j = 0;
- X
- X if(j < 0 || j > n_ships || j==shipno) {
- X notify(Playernum, "You can't protect that!\n");
- X***************
- X*** 248,254 ****
- X free(ship);
- X return;
- X }
- X! if (can_bombard(ship) || ship->type==OTYPE_GR) {
- X if(!j) {
- X ship->protect.on = 0;
- X notify(Playernum, "Protection orders halted.\n");
- X--- 258,264 ----
- X free(ship);
- X return;
- X }
- X! if (can_bombard(ship)) {
- X if(!j) {
- X ship->protect.on = 0;
- X notify(Playernum, "Protection orders halted.\n");
- X***************
- X*** 324,329 ****
- X--- 334,347 ----
- X ship->destshipno = where.shipno;
- X ship->whatdest = LEVEL_SHIP;
- X } else {
- X+ /* to foil cheaters */
- X+ if(((ship->storbits != where.snum) && where.level != LEVEL_STAR)
- X+ && isclr(Stars[where.snum]->explored, ship->owner)){
- X+ notify(Playernum, "You haven't explored this system.\n");
- X+ free(ship);
- X+ return;
- X+ }
- X+
- X ship->whatdest = where.level;
- X ship->deststar = where.snum;
- X ship->destpnum = where.pnum;
- X***************
- X*** 375,381 ****
- X }
- X } else if (!strncmp(args[2],"retaliate",i)) {
- X if (ship->type!=OTYPE_OMCL) {
- X! if (can_bombard(ship) || ship->type==OTYPE_GR) {
- X if(!strncmp(args[3],"off",strlen(args[3]))) {
- X ship->protect.self = 0;
- X notify(Playernum, "Retaliation option turned off.\n");
- X--- 393,399 ----
- X }
- X } else if (!strncmp(args[2],"retaliate",i)) {
- X if (ship->type!=OTYPE_OMCL) {
- X! if (can_bombard(ship)) {
- X if(!strncmp(args[3],"off",strlen(args[3]))) {
- X ship->protect.self = 0;
- X notify(Playernum, "Retaliation option turned off.\n");
- X***************
- X*** 388,393 ****
- X--- 406,430 ----
- X notify(Playernum, "This type of ship cannot be set to retaliate.\n");
- X }
- X }
- X+ } else if (!strncmp(args[2],"laser",i)) {
- X+ if(ship->laser) {
- X+ if (can_bombard(ship)) {
- X+ if(ship->hyper_drive.mounted) {
- X+ if(!strncmp(args[3],"on",strlen(args[3]))) {
- X+ ship->fire_laser = atoi(args[4]);
- X+ sprintf(buf, "Combat lasers activated to attack with strength %d\n",
- X+ ship->fire_laser);
- X+ notify(Playernum, buf);
- X+ } else {
- X+ ship->fire_laser = 0;
- X+ notify(Playernum, "Combat lasers deactivated.\n");
- X+ }
- X+ } else
- X+ notify(Playernum, "You do not have a crystal mounted.\n");
- X+ } else
- X+ notify(Playernum, "This type of ship cannot be set to retaliate.\n");
- X+ } else
- X+ notify(Playernum, "This ship is not equipped with combat lasers.\n");
- X } else if (!strncmp(args[2],"speed",i)) {
- X if (speed_rating(ship)) {
- X j = atoi(args[3]);
- X***************
- X*** 408,431 ****
- X return;
- X }
- X
- X! } else if(!strncmp(args[2], "explosive", i)) {
- X! if(ship->type==STYPE_MINE) {
- X! ship->mine.mode = 1;
- X! notify(Playernum, "This mine is set for explosive mode.\n");
- X } else {
- X! notify(Playernum, "This ship cannot be set for this.\n");
- X free(ship);
- X return;
- X }
- X } else if(!strncmp(args[2], "radiative", i)) {
- X! if(ship->type==STYPE_MINE) {
- X! ship->mine.mode = 0;
- X! notify(Playernum, "This mine is set for radiation mode.\n");
- X! } else {
- X! notify(Playernum, "This ship cannot be set for this.\n");
- X! free(ship);
- X! return;
- X! }
- X } else if(!strncmp(args[2], "move", i)) {
- X if (ship->type==OTYPE_TERRA) {
- X ship->object.number = atoi(args[3]);
- X--- 445,500 ----
- X return;
- X }
- X
- X! } else if(!strncmp(args[2], "salvo", i)) {
- X! if (can_bombard(ship)) {
- X! j = atoi(args[3]);
- X! if(j < 0) {
- X! notify(Playernum, "Specify a positive number of guns.\n");
- X! free(ship);
- X! return;
- X! } else {
- X! if(j > ship->guns) j = ship->guns;
- X! ship->retaliate = j;
- X! sprintf(buf, "Retaliation strength set at %d.\n", j);
- X! notify(Playernum, buf);
- X! }
- X!
- X } else {
- X! notify(Playernum, "This ship cannot be set to retaliate.\n");
- X free(ship);
- X return;
- X }
- X+
- X+ } else if(!strncmp(args[2], "explosive", i)) {
- X+ switch(ship->type) {
- X+ case STYPE_MINE:
- X+ ship->mode = 1;
- X+ notify(Playernum, "This mine is set for explosive mode.\n");
- X+ break;
- X+ case OTYPE_GR:
- X+ ship->mode = 1;
- X+ notify(Playernum, "Will inflict structural damage.\n");
- X+ break;
- X+ default:
- X+ notify(Playernum, "This ship cannot be set for this.\n");
- X+ free(ship);
- X+ return;
- X+ }
- X } else if(!strncmp(args[2], "radiative", i)) {
- X! switch(ship->type) {
- X! case STYPE_MINE:
- X! ship->mode = 0;
- X! notify(Playernum, "This mine is set for radiative mode.\n");
- X! break;
- X! case OTYPE_GR:
- X! ship->mode = 0;
- X! notify(Playernum, "Will inflict radiation damage.\n");
- X! break;
- X! default:
- X! notify(Playernum, "This ship cannot be set for this.\n");
- X! free(ship);
- X! return;
- X! }
- X } else if(!strncmp(args[2], "move", i)) {
- X if (ship->type==OTYPE_TERRA) {
- X ship->object.number = atoi(args[3]);
- X***************
- X*** 534,540 ****
- X close_file(order_pdata);
- X
- X if(planet->info[Playernum-1].resource < 2*ship->build_cost) {
- X! sprintf(buf, "You don't have %s resources on the planet to activate this factory.\n",
- X 2*ship->build_cost);
- X notify(Playernum, buf);
- X free(ship);
- X--- 603,609 ----
- X close_file(order_pdata);
- X
- X if(planet->info[Playernum-1].resource < 2*ship->build_cost) {
- X! sprintf(buf, "You don't have %d resources on the planet to activate this factory.\n",
- X 2*ship->build_cost);
- X notify(Playernum, buf);
- X free(ship);
- X***************
- X*** 655,661 ****
- X close_file(sdata); /* don't need to care about Stars */
- X sprintf(buf, "Surveyed, distance %g.\n",dist);
- X notify(Playernum, buf);
- X! } else {
- X sprintf(buf, "Too far to see (%g, max %g).\n",
- X dist, tele_range(s->type, s->tech) );
- X notify(Playernum, buf);
- X--- 724,731 ----
- X close_file(sdata); /* don't need to care about Stars */
- X sprintf(buf, "Surveyed, distance %g.\n",dist);
- X notify(Playernum, buf);
- X! free(str);
- X! } else {
- X sprintf(buf, "Too far to see (%g, max %g).\n",
- X dist, tele_range(s->type, s->tech) );
- X notify(Playernum, buf);
- X***************
- X*** 672,679 ****
- X p->info[Playernum-1].explored = 1;
- X openpdata(&pdata);
- X putplanet(pdata, p, str->planetpos[s->aimed_at.pnum]);
- X! close_file(pdata);
- X! free(p);
- X sprintf(buf, "Surveyed, distance %g.\n", dist);
- X notify(Playernum, buf);
- X } else {
- X--- 742,748 ----
- X p->info[Playernum-1].explored = 1;
- X openpdata(&pdata);
- X putplanet(pdata, p, str->planetpos[s->aimed_at.pnum]);
- X! close_file(pdata);
- X sprintf(buf, "Surveyed, distance %g.\n", dist);
- X notify(Playernum, buf);
- X } else {
- X***************
- X*** 681,686 ****
- X--- 750,756 ----
- X dist, tele_range(s->type, s->tech) );
- X notify(Playernum, buf);
- X }
- X+ free(p);
- X break;
- X case LEVEL_SHIP:
- X sprintf(buf, "You can't see anything of use there.\n");
- X***************
- X*** 692,698 ****
- X DispOrdersHeader(Playernum)
- X int Playernum;
- X {
- X! notify(Playernum, " name destination orbits spd options\n");
- X }
- X
- X DispOrders(Playernum, sh, next, check)
- X--- 762,768 ----
- X DispOrdersHeader(Playernum)
- X int Playernum;
- X {
- X! notify(Playernum, " name orbits destination spd options\n");
- X }
- X
- X DispOrders(Playernum, sh, next, check)
- X***************
- X*** 703,708 ****
- X--- 773,779 ----
- X {
- X int order_shdata, in_list;
- X shiptype *ship;
- X+ float distfac;
- X char temp[128];
- X
- X openshdata(&order_shdata);
- X***************
- X*** 732,739 ****
- X }
- X }
- X
- X! sprintf(buf, "%4d %c %14s %15s %15s %1d ", sh, Shipltrs[ship->type], ship->name,
- X! prin_ship_dest(Playernum, ship), prin_ship_orbits(ship), ship->speed);
- X
- X if(ship->hyper_drive.on) {
- X sprintf(temp, "/jump %s %d", (ship->hyper_drive.ready ? "ready" : "charging"),
- X--- 803,810 ----
- X }
- X }
- X
- X! sprintf(buf, "%4d %c %14.14s %15.15s %15.15s %1d ", sh, Shipltrs[ship->type], ship->name,
- X! prin_ship_orbits(ship), prin_ship_dest(Playernum, ship), ship->speed);
- X
- X if(ship->hyper_drive.on) {
- X sprintf(temp, "/jump %s %d", (ship->hyper_drive.ready ? "ready" : "charging"),
- X***************
- X*** 740,746 ****
- X ship->hyper_drive.charge);
- X strcat(buf, temp);
- X }
- X! if(ship->protect.self) strcat(buf, "/retal");
- X if(ship->protect.planet) strcat(buf, "/defense");
- X if(ship->protect.on) {
- X sprintf(temp, "/prot %d", ship->protect.ship);
- X--- 811,830 ----
- X ship->hyper_drive.charge);
- X strcat(buf, temp);
- X }
- X! if(ship->protect.self) {
- X! sprintf(temp, "/retal");
- X! strcat(buf, temp);
- X! }
- X!
- X! if(ship->fire_laser) {
- X! sprintf(temp, "/laser %d", ship->fire_laser);
- X! strcat(buf, temp);
- X! }
- X!
- X! if(ship->retaliate) {
- X! sprintf(temp, "/salvo %d", ship->retaliate);
- X! strcat(buf, temp);
- X! }
- X if(ship->protect.planet) strcat(buf, "/defense");
- X if(ship->protect.on) {
- X sprintf(temp, "/prot %d", ship->protect.ship);
- X***************
- X*** 756,763 ****
- X }
- X if(ship->protect.evade) strcat(buf, "/evade");
- X if(ship->bombard) strcat(buf, "/bomb");
- X! if(ship->type==STYPE_MINE) {
- X! if(ship->mine.mode) strcat(buf, "/explode");
- X else strcat(buf, "/radiate");
- X }
- X if(ship->type==OTYPE_TERRA) {
- X--- 840,847 ----
- X }
- X if(ship->protect.evade) strcat(buf, "/evade");
- X if(ship->bombard) strcat(buf, "/bomb");
- X! if(ship->type==STYPE_MINE || ship->type==OTYPE_GR) {
- X! if(ship->mode) strcat(buf, "/explode");
- X else strcat(buf, "/radiate");
- X }
- X if(ship->type==OTYPE_TERRA) {
- X***************
- X*** 781,793 ****
- X notify(Playernum, buf);
- X /* if hyper space is on estimate how much fuel it will cost to get to the destination */
- X if(ship->hyper_drive.on) {
- X! double dist, fuse;
- X
- X dist = sqrt( Distsq(ship->xpos, ship->ypos, Stars[ship->deststar]->xpos,
- X Stars[ship->deststar]->ypos));
- X! fuse = HYPER_DRIVE_FUEL_USE * ship->mass
- X! * (dist/HYPER_DIST_FACTOR) * (dist/HYPER_DIST_FACTOR);
- X! sprintf(buf, " *** jump will cost %.1ff ***\n", fuse);
- X notify(Playernum, buf);
- X if(ship->max_fuel < fuse)
- X notify(Playernum, "Your ship cannot carry enough fuel to do this jump.\n");
- X--- 865,884 ----
- X notify(Playernum, buf);
- X /* if hyper space is on estimate how much fuel it will cost to get to the destination */
- X if(ship->hyper_drive.on) {
- X! float dist, fuse;
- X
- X dist = sqrt( Distsq(ship->xpos, ship->ypos, Stars[ship->deststar]->xpos,
- X Stars[ship->deststar]->ypos));
- X! distfac = HYPER_DIST_FACTOR * (ship->tech + 100.0);
- X! if(ship->hyper_drive.mounted && dist > distfac) {
- X! fuse = HYPER_DRIVE_FUEL_USE * sqrt(ship->mass)
- X! * (dist/distfac);
- X! } else {
- X! fuse = HYPER_DRIVE_FUEL_USE * sqrt(ship->mass)
- X! * (dist/distfac) * (dist/distfac);
- X! }
- X!
- X! sprintf(buf, " *** distance %.0f - jump will cost %.1ff ***\n", dist, fuse);
- X notify(Playernum, buf);
- X if(ship->max_fuel < fuse)
- X notify(Playernum, "Your ship cannot carry enough fuel to do this jump.\n");
- END_OF_FILE
- if test 56321 -ne `wc -c <'patches02b'`; then
- echo shar: \"'patches02b'\" unpacked with wrong size!
- fi
- # end of 'patches02b'
- if test -f 'server/patchlevel.h' -a "${1}" != "-c" ; then
- echo shar: Renaming existing file \"'server/patchlevel.h'\" to \"'server/patchlevel.h.orig'\"
- mv -f 'server/patchlevel.h' 'server/patchlevel.h.orig'
- fi
- echo shar: Extracting \"'server/patchlevel.h'\" \(21 characters\)
- sed "s/^X//" >'server/patchlevel.h' <<'END_OF_FILE'
- X#define PATCHLEVEL 2
- END_OF_FILE
- if test 21 -ne `wc -c <'server/patchlevel.h'`; then
- echo shar: \"'server/patchlevel.h'\" unpacked with wrong size!
- fi
- # end of 'server/patchlevel.h'
- echo shar: End of archive 2 \(of 9\).
- cp /dev/null ark2isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 9 archives.
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-