Path: uunet!convex!killer!ames!mailrus!cornell!uw-beaver!tektronix!tekgen!tekred!games From: games@tekred.TEK.COM Newsgroups: comp.sources.games Subject: v05i053: conquer3 - middle earth multi-player game (V3), Patch4 Message-ID: <2891@tekred.TEK.COM> Date: 29 Jul 88 16:08:31 GMT Sender: billr@tekred.TEK.COM Lines: 1592 Approved: billr@saab.CNA.TEK.COM Submitted by: ihnp4!homxc!smile Comp.sources.games: Volume 5, Issue 53 Archive-name: conquer3/Patch4 [Unshar and feed to patch, or feed to patch directly if you have the latest version. -br] #! /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 'patches04' <<'END_OF_FILE' X*** omakeworld.c Thu Jul 28 09:09:48 1988 X--- makeworld.c Thu Jul 28 09:10:58 1988 X*************** X*** 746,752 X ntn[NNOMAD].arm[army2num].yloc=y; X ntn[NNOMAD].arm[army2num].stat=ATTACK; X ntn[NNOMAD].arm[army2num].sold=100+100*(rand()%15); X! ntn[NNOMAD].arm[army2num].unittyp=A_CAVALRY; X if(army2num0) X+ done=TRUE; X+ if (!done && !isupper(tmpchr)) X+ done=TRUE; X+ if (tmpchr=='Z') X+ done=FALSE; X+ } X+ return(tmpchr); X+ } X+ X /* disolve a certain percent of a nation */ X /*returns value of new nation */ X int X*************** X*** 88,95 X int split; /* number of sectors split */ X int defaultx=(-1), defaulty=(-1), realx=(-1), realy=(-1), dist; X int i,j,armynum,narmynum,posi,posj; X- int notdone=1; X- char tmpchr; X X split = ntn[target].tsctrs * percent / 100; X if (split==0) { X X--- 112,117 ----- X int split; /* number of sectors split */ X int defaultx=(-1), defaulty=(-1), realx=(-1), realy=(-1), dist; X int i,j,armynum,narmynum,posi,posj; X X split = ntn[target].tsctrs * percent / 100; X if (split==0) { X*************** X*** 127,139 X return(0); X } X X! strcpy(ntn[new].name,"r-"); X! strncat(ntn[new].name,ntn[target].name,min(NAMELTH-2,strlen(ntn[target].name))); X! for (armynum=0;armynum0) X! notdone=1; X! if (!notdone && !isalpha(tmpchr)) X! notdone=1; X! if (tmpchr=='Z') X! notdone=0; X! } X! ntn[new].mark= tmpchr; X for ( dist=2 ; dist < 10; dist++) if (split > 0) X for (i=defaultx-dist; i 0) X for (i=defaultx-dist; i 1 ){ X+ done = TRUE; X+ for (count=0;countgets magic power number %ld\n", ntn[country].name,newpower); X exenewmgk(newpower); X } X else done=FALSE; X X--- 578,587 ----- X case 30: /*new magician + RANDOM POWER*/ X /*buy new powers and/or new weapons*/ X if((newpower=getmagic(M_CIV))!=0L){ X! for(i=S_CIV;i<=E_CIV;i++) if(powers[i]==newpower){ X! printf("\tnation %s gets power %s\n",ntn[country].name,pwrname[newpower]); X! fprintf(fnews,"1. \tevent in %s->gets power %s\n", ntn[country].name,pwrname[newpower]); X! } X exenewmgk(newpower); X } X else done=FALSE; X*************** X*** 552,559 X case 31: /*new magic item + RANDOM POWER*/ X /*buy new powers and/or new weapons*/ X if((newpower=getmagic(M_MIL))!=0){ X! printf("\tnation %s gets magic power number %ld\n",ntn[country].name,newpower); X! fprintf(fnews,"1. \tevent in %s->gets magic power number %ld\n", ntn[country].name,newpower); X exenewmgk(newpower); X } X else done=FALSE; X X--- 589,598 ----- X case 31: /*new magic item + RANDOM POWER*/ X /*buy new powers and/or new weapons*/ X if((newpower=getmagic(M_MIL))!=0){ X! for(i=S_MIL;i<=E_MIL;i++) if(powers[i]==newpower){ X! printf("\tnation %s gets power %s\n",ntn[country].name,pwrname[newpower]); X! fprintf(fnews,"1. \tevent in %s->gets power %s\n", ntn[country].name,pwrname[newpower]); X! } X exenewmgk(newpower); X } X else done=FALSE; X*** oforms.c Thu Jul 28 09:10:25 1988 X--- forms.c Thu Jul 28 09:10:58 1988 X*************** X*** 257,262 X short armynum; X char passwd[8]; X short isgod=FALSE; X X if(country==0) { X isgod=TRUE; X X--- 257,266 ----- X short armynum; X char passwd[8]; X short isgod=FALSE; X+ #ifdef OGOD X+ FILE *ftmp; X+ char filename[80]; X+ #endif OGOD X X if(country==0) { X isgod=TRUE; X*************** X*** 305,311 X else mvaddstr(21,(COLS/2)-17,"( VAMPIRES MAY NOT ADD TO COMBAT BONUS )"); X X #ifdef OGOD X! if(isgod==TRUE) mvaddstr(22,(COLS/2)-21,"HIT 4 TO DESTROY NATION OR 5 TO CHANGE TREASURY"); X #else OGOD X if(isgod==TRUE) mvaddstr(22,(COLS/2)-9,"HIT 4 TO DESTROY NATION"); X #endif OGOD X X--- 309,315 ----- X else mvaddstr(21,(COLS/2)-17,"( VAMPIRES MAY NOT ADD TO COMBAT BONUS )"); X X #ifdef OGOD X! if(isgod==TRUE) mvaddstr(22,(COLS/2)-23,"HIT 4 TO DESTROY NATION OR 5 TO CHANGE COMMODITY"); X #else OGOD X if(isgod==TRUE) mvaddstr(22,(COLS/2)-9,"HIT 4 TO DESTROY NATION"); X #endif OGOD X*************** X*** 456,463 X #ifdef OGOD X case '5': X if (isgod==TRUE) { X! /* adjust treasury */ X! mvaddstr(0,0,"WHAT IS NEW TOTAL OF TREASURY?"); X refresh(); X i = get_number(); X /* as god it will be saved nothing else needed */ X X--- 460,475 ----- X #ifdef OGOD X case '5': X if (isgod==TRUE) { X! /* open the target country's files */ X! sprintf(filename,"%s%d",exefile,country); X! if ((ftmp=fopen(filename,"a"))==NULL) { X! beep(); X! errormsg("error opening country's file"); X! return; X! } X! /* adjust commodities */ X! mvaddstr(0,0,"CHANGE: 1) Gold 2) Jewels 3) Iron 4) Food ?"); X! clrtoeol(); X refresh(); X switch(getch()) { X case '1': X*************** X*** 459,467 X /* adjust treasury */ X mvaddstr(0,0,"WHAT IS NEW TOTAL OF TREASURY?"); X refresh(); X! i = get_number(); X! /* as god it will be saved nothing else needed */ X! ntn[country].tgold = (long) i; X } X break; X #endif OGOD X X--- 471,504 ----- X mvaddstr(0,0,"CHANGE: 1) Gold 2) Jewels 3) Iron 4) Food ?"); X clrtoeol(); X refresh(); X! switch(getch()) { X! case '1': X! mvaddstr(1,0,"WHAT IS NEW VALUE FOR TREASURY? "); X! refresh(); X! ntn[country].tgold = (long) get_number(); X! fprintf(ftmp,"L_NGOLD\t%d \t%d \t%ld \t0 \t0 \t%s\n", XNAGOLD ,country,ntn[country].tgold,"null"); X! break; X! case '2': X! mvaddstr(1,0,"WHAT IS NEW AMOUNT OF JEWELS? "); X! refresh(); X! ntn[country].jewels = (long) get_number(); X! fprintf(ftmp,"L_NJWLS\t%d \t%d \t%ld \t0 \t0 \t%s\n", XNARGOLD ,country,ntn[country].jewels,"null"); X! break; X! case '3': X! mvaddstr(1,0,"WHAT IS NEW AMOUNT OF IRON? "); X! refresh(); X! ntn[country].tiron = (long) get_number(); X! fprintf(ftmp,"L_NIRON\t%d \t%d \t%ld \t0 \t0 \t%s\n", XNAIRON ,country,ntn[country].tiron,"null"); X! break; X! case '4': X! mvaddstr(1,0,"WHAT IS NEW AMOUNT OF FOOD? "); X! refresh(); X! ntn[country].tfood = (long) get_number(); X! break; X! default: X! break; X! } X! fclose(ftmp); X } X break; X #endif OGOD X*** oreports.c Thu Jul 28 09:10:26 1988 X--- reports.c Thu Jul 28 09:11:00 1988 X*************** X*** 281,287 X void X produce() X { X! short armynum; X int military=0; X int isgod=FALSE; X X X--- 281,287 ----- X void X produce() X { X! short armynum,multiplier=1; X int military=0; X int isgod=FALSE; X X*************** X*** 308,314 X mvaddstr(8,0, "FOOD PRODUCTION"); X mvprintw(9,0, "granary now holds.........%8ld tons",ntn[country].tfood); X mvprintw(10,0, "%8d people in farms..%8ld tons",spread.infarm,spread.food-ntn[country].tfood); X! mvprintw(12,0, "%8d civilians eat....%8d tons",spread.civilians,spread.civilians); X mvprintw(13,0, "%8d soldiers eat....%8d tons",military,military*2); X mvprintw(15,0, "TOTAL NET FOOD............%8d tons",spread.food-ntn[country].tfood-spread.civilians-military*2); X if(spread.food-spread.civilians-military*2ntn[country].nvy[oldnavy].smove) X NMOVE=ntn[country].nvy[oldnavy].smove; X X--- 474,480 ----- X else if((oldx==NXLOC)&&(oldy==NYLOC)) { X NWAR+=ntn[country].nvy[oldnavy].warships; X NMER+=ntn[country].nvy[oldnavy].merchant; X+ NCREW += ntn[country].nvy[oldnavy].crew; X NADJSHP; X NADJCRW; X if(NMOVE>ntn[country].nvy[oldnavy].smove) X*************** X*** 473,478 X NWAR+=ntn[country].nvy[oldnavy].warships; X NMER+=ntn[country].nvy[oldnavy].merchant; X NADJSHP; X if(NMOVE>ntn[country].nvy[oldnavy].smove) X NMOVE=ntn[country].nvy[oldnavy].smove; X NADJMOV; X X--- 476,482 ----- X NMER+=ntn[country].nvy[oldnavy].merchant; X NCREW += ntn[country].nvy[oldnavy].crew; X NADJSHP; X+ NADJCRW; X if(NMOVE>ntn[country].nvy[oldnavy].smove) X NMOVE=ntn[country].nvy[oldnavy].smove; X NADJMOV; X*************** X*** 479,484 X nvynum=oldnavy; X NWAR=0; X NMER=0; X NADJSHP; X } X else { X X--- 483,489 ----- X nvynum=oldnavy; X NWAR=0; X NMER=0; X+ NCREW=0; X NADJSHP; X NADJCRW; X } X*************** X*** 480,485 X NWAR=0; X NMER=0; X NADJSHP; X } X else { X mvaddstr(23,0,"Navies not together (hit any key) "); X X--- 485,491 ----- X NMER=0; X NCREW=0; X NADJSHP; X+ NADJCRW; X } X else { X mvaddstr(23,0,"Navies not together (hit any key) "); X*************** X*** 501,506 X if((wships<=NWAR)&&(mships<=NMER)){ X NWAR-=wships; X NMER-=mships; X NADJSHP; X oldnavy=nvynum; X oldx=NXLOC; X X--- 507,515 ----- X if((wships<=NWAR)&&(mships<=NMER)){ X NWAR-=wships; X NMER-=mships; X+ crew = NCREW * (wships+mships) / (NWAR+NMER); X+ NCREW -= crew; X+ NADJCRW; X NADJSHP; X oldnavy=nvynum; X oldx=NXLOC; X*************** X*** 517,522 X NWAR+=wships; X NMER+=mships; X NADJSHP; X } X else { X NMOVE=ntn[country].nvy[oldnavy].smove; X X--- 526,533 ----- X NWAR+=wships; X NMER+=mships; X NADJSHP; X+ NCREW+=crew; X+ NADJCRW; X } X else { X NMOVE=ntn[country].nvy[oldnavy].smove; X*************** X*** 524,529 X NYLOC=oldy; X NWAR=wships; X NMER=mships; X NADJSHP; X NADJLOC; X NADJMOV; X X--- 535,542 ----- X NYLOC=oldy; X NWAR=wships; X NMER=mships; X+ NCREW=crew; X+ NADJCRW; X NADJSHP; X NADJLOC; X NADJMOV; X*************** X*** 536,541 X } X break; X case '3': X NWAR=0; X NMER=0; X NADJSHP; X X--- 549,561 ----- X } X break; X case '3': X+ /* DISBAND NAVY */ X+ i=NXLOC; X+ j=NYLOC; X+ if(sct[i][j].altitude == WATER) { X+ errormsg("Ships need to be on land or in harbor"); X+ break; X+ } X NWAR=0; X NMER=0; X sct[i][j].people+=NCREW; X*************** X*** 538,543 X case '3': X NWAR=0; X NMER=0; X NADJSHP; X break; X case '4': X X--- 558,567 ----- X } X NWAR=0; X NMER=0; X+ sct[i][j].people+=NCREW; X+ NCREW=0; X+ SADJCIV2; X+ NADJCRW; X NADJSHP; X break; X case '4': X*** ocombat.c Thu Jul 28 09:10:27 1988 X--- combat.c Thu Jul 28 09:11:01 1988 X*************** X*** 348,354 X retreatside = 0; X X if((PDloss > 2* PAloss) X- &&(PDloss>=50) X &&(odds>150) X &&(rand()%4==0)) retreatside=DFND; X X X--- 348,353 ----- X retreatside = 0; X X if((PDloss > 2* PAloss) X &&(odds>150) X &&(((PDloss>=50)&&(rand()%4==0)) X ||(rand()%8))) retreatside=DFND; X*************** X*** 350,356 X if((PDloss > 2* PAloss) X &&(PDloss>=50) X &&(odds>150) X! &&(rand()%4==0)) retreatside=DFND; X X if((PAloss > 2* PDloss) X &&(PAloss>=50) X X--- 349,356 ----- X X if((PDloss > 2* PAloss) X &&(odds>150) X! &&(((PDloss>=50)&&(rand()%4==0)) X! ||(rand()%8))) retreatside=DFND; X X if((PAloss > 2* PDloss) X &&(odds<150) X*************** X*** 353,359 X &&(rand()%4==0)) retreatside=DFND; X X if((PAloss > 2* PDloss) X- &&(PAloss>=50) X &&(odds<150) X &&(rand()%2==0)) retreatside=ATKR; X X X--- 353,358 ----- X ||(rand()%8))) retreatside=DFND; X X if((PAloss > 2* PDloss) X &&(odds<150) X &&(((PAloss>=50)&&(rand()%2==0)) X ||(rand()%6))) retreatside=ATKR; X*************** X*** 355,361 X if((PAloss > 2* PDloss) X &&(PAloss>=50) X &&(odds<150) X! &&(rand()%2==0)) retreatside=ATKR; X X if(retreatside!=0) { X fdxyretreat(); X X--- 354,361 ----- X X if((PAloss > 2* PDloss) X &&(odds<150) X! &&(((PAloss>=50)&&(rand()%2==0)) X! ||(rand()%6))) retreatside=ATKR; X X if(retreatside!=0) { X fdxyretreat(); X*************** X*** 697,704 X /*no bonus currently included in this combat*/ X X /*calculate ability of crew*/ X! acrew = 100*acrew/aship*SHIPCREW; X! dcrew = 100*dcrew/dship*SHIPCREW; X X /*each warship can do damage 40%; once all warships sunk then all*/ X /*sunk are captured merchant*/ X X--- 697,704 ----- X /*no bonus currently included in this combat*/ X X /*calculate ability of crew*/ X! acrew = 100*acrew/(aship*SHIPCREW); X! dcrew = 100*dcrew/(dship*SHIPCREW); X X /*each warship can do damage 40%; once all warships sunk then all*/ X /*sunk are captured merchant*/ X*** omove.c Thu Jul 28 09:10:07 1988 X--- move.c Thu Jul 28 09:11:03 1988 X*************** X*** 108,114 X armornvy=AORN; X return; X } X! else if(AMOVE==0){ X errormsg("SORRY: ARMY HAS NO MOVEMENT POINTS"); X armornvy=AORN; X return; X X--- 108,114 ----- X armornvy=AORN; X return; X } X! else if((AMOVE==0)&&(ATYPE!=A_MARINES)){ X errormsg("SORRY: ARMY HAS NO MOVEMENT POINTS"); X armornvy=AORN; X return; X*************** X*** 290,295 X valid=FALSE; X xcurs=oldxcurs; X ycurs=oldycurs; X } X } else { X move(3,0); X X--- 290,297 ----- X valid=FALSE; X xcurs=oldxcurs; X ycurs=oldycurs; X+ move(ycurs,xcurs*2); X+ refresh(); X } X } else { X move(3,0); X*** oupdate.c Thu Jul 28 09:10:28 1988 X--- update.c Thu Jul 28 09:11:05 1988 X*************** X*** 360,365 X #ifdef CMOVE X printf("\tthe computer will move for %s\n",ntn[country].name); X fprintf(fnews,"1.\tthe computer will move for %s\n",ntn[country].name); X nationrun(); X #endif X } X X--- 360,368 ----- X #ifdef CMOVE X printf("\tthe computer will move for %s\n",ntn[country].name); X fprintf(fnews,"1.\tthe computer will move for %s\n",ntn[country].name); X+ #ifdef TRADE X+ checktrade(); X+ #endif TRADE X nationrun(); X #endif X } X*************** X*** 363,368 X nationrun(); X #endif X } X #ifdef NPC X /* run npc nations */ X if(ntn[country].active>=2) { X X--- 366,374 ----- X nationrun(); X #endif X } X+ #ifdef TRADE X+ else checktrade(); X+ #endif TRADE X #ifdef NPC X /* run npc nations */ X if(ntn[country].active>=2) { X*************** X*** 672,677 X for(nvynum=0;nvynum 0 ) { X if(sct[NXLOC][NYLOC].altitude==WATER) { X #ifdef STORMS X /* X X--- 678,684 ----- X for(nvynum=0;nvynum 0 ) { X+ int holdval; X if(sct[NXLOC][NYLOC].altitude==WATER) { X #ifdef STORMS X /* X*************** X*** 694,701 X } X #endif X } X! NMOVE = 3 * ntn[country].maxmove * NCREW; X! NMOVE /= ((NWAR+NMER)*SHIPCREW); X ntn[country].tships += NWAR + NMER; X ntn[country].tgold -= (NWAR + NMER) * SHIPMAINT; X } else { X X--- 701,709 ----- X } X #endif X } X! holdval = 3 * ntn[country].maxmove * NCREW; X! holdval /= ((NWAR+NMER)*SHIPCREW); X! NMOVE = (short)holdval; X ntn[country].tships += NWAR + NMER; X ntn[country].tgold -= (NWAR + NMER) * SHIPMAINT; X } else { X*************** X*** 722,727 X ntn[country].tfood-=ntn[country].tmil*2; X /*civilians eat 1*/ X ntn[country].tfood-=ntn[country].tciv; X X /*starve people*/ X if(ntn[country].tfood<0) for(x=0;x=0)&&(nvynum=0)&&(nvynum=500) X /* can only go into debt as much as the nation has jewels */ X if ((ntn[country].tgold - cost) > ((-1)*10*ntn[country].jewels)) { X mvprintw(LINES-3,25,"you build +%d%% fort points for %ld gold",armbonus,cost); X X--- 388,393 ----- X } X /* construct fortification points*/ X else if(type=='f'){ X /* can only go into debt as much as the nation has jewels */ X if ((ntn[country].tgold - cost) > ((-1)*10*ntn[country].jewels)) { X mvprintw(LINES-3,25,"you build +%d%% fort points for %ld gold",armbonus,cost); X*************** X*** 389,396 X sct[XREAL][YREAL].fortress++; X INCFORT; X errormsg(""); X! } X! else errormsg("need 500 people or you are broke"); X } X else errormsg("invalid input error"); X X X--- 395,401 ----- X sct[XREAL][YREAL].fortress++; X INCFORT; X errormsg(""); X! } else errormsg("you are broke"); X } X else errormsg("invalid input error"); X X*** oio.c Thu Jul 28 09:10:30 1988 X--- io.c Thu Jul 28 09:11:06 1988 X*************** X*** 203,209 X int i; X int nationid; /*current nation id */ X X! printf("id race class score gold military people sectors name\n"); X for (nationid=1; nationid=2) printf(" NPC"); X! else printf(" %s",*(Class+ntn[nationid].class)); X! printf(" %ld %ld %ld %ld %d", X ntn[nationid].score ,ntn[nationid].tgold X ,ntn[nationid].tmil ,ntn[nationid].tciv X ,ntn[nationid].tsctrs ); X X--- 210,219 ----- X printf("%9s ",ntn[nationid].name); X for(i=1;i<8;i++) X if(ntn[nationid].race==*(races+i)[0]) X! printf("%6s ",*(races+i)); X! if(ntn[nationid].active>=2) printf(" NPC "); X! else printf("%8s ",*(Class+ntn[nationid].class)); X! printf("%6ld %8ld %8ld %8ld %5d\n", X ntn[nationid].score ,ntn[nationid].tgold X ,ntn[nationid].tmil ,ntn[nationid].tciv X ,ntn[nationid].tsctrs ); X*************** X*** 217,223 X ntn[nationid].score ,ntn[nationid].tgold X ,ntn[nationid].tmil ,ntn[nationid].tciv X ,ntn[nationid].tsctrs ); X- printf(" %s\n",ntn[nationid].name); X } X } X #endif CONQUER X X--- 217,222 ----- X ntn[nationid].score ,ntn[nationid].tgold X ,ntn[nationid].tmil ,ntn[nationid].tciv X ,ntn[nationid].tsctrs ); X } X } X #endif CONQUER X*** omagic.c Thu Jul 28 09:10:31 1988 X--- magic.c Thu Jul 28 09:11:09 1988 X*************** X*** 206,211 X price = getmgkcost(M_CIV,country); X if(price > getmgkcost(M_MGK,country)) X price = getmgkcost(M_MGK,country); X X standend(); X count=3; X X--- 206,214 ----- X price = getmgkcost(M_CIV,country); X if(price > getmgkcost(M_MGK,country)) X price = getmgkcost(M_MGK,country); X+ #ifdef OGOD X+ if (isgod==TRUE) price=0; X+ #endif OGOD X X standend(); X count=3; X*************** X*** 433,438 X return(0L); X } X if(newpower==DEMOCRACY){ X ntn[country].repro+=1; X ntn[country].dplus+=10; X ntn[country].aplus+=10; X X--- 436,442 ----- X return(0L); X } X if(newpower==DEMOCRACY){ X+ ntn[country].maxmove+=1; X ntn[country].repro+=1; X ntn[country].dplus+=10; X ntn[country].aplus+=10; X*************** X*** 545,550 X newtype=DRAGON; X break; X default: X break; X } X X X--- 549,555 ----- X newtype=DRAGON; X break; X default: X+ newtype=MAXMONSTER+1; X break; X } X X*************** X*** 555,560 X sleep(2); X return(done); X } X X e_cost= (long) *(u_encost+(newtype%200)) * *(unitminsth+(newtype%200)); X s_cost= *(u_encost+(newtype%200)); X X--- 560,569 ----- X sleep(2); X return(done); X } X+ if (newtype==MAXMONSTER+1) { X+ /* quick exit */ X+ return(done); X+ } X X e_cost= (long) *(u_encost+(newtype%200)) * *(unitminsth+(newtype%200)); X s_cost= *(u_encost+(newtype%200)); X*************** X*** 784,789 X return(0L); X } X if(oldpower==DEMOCRACY){ X ntn[country].repro-=1; X ntn[country].dplus-=10; X ntn[country].aplus-=10; X X--- 793,799 ----- X return(0L); X } X if(oldpower==DEMOCRACY){ X+ ntn[country].maxmove-=1; X ntn[country].repro-=1; X ntn[country].dplus-=10; X ntn[country].aplus-=10; X*** onewlogin.c Thu Jul 28 09:10:32 1988 X--- newlogin.c Thu Jul 28 09:11:09 1988 X*************** X*** 225,231 X X ntn[country].mark= (*ntn[country].name); X if (islower(ntn[country].mark)!=FALSE) X! ntn[country].mark= toupper(ntn[country].mark); X printf("\ntesting first letter of name (%c) for nation mark...",ntn[country].mark); X valid=TRUE; X while(valid==TRUE) { X X--- 225,231 ----- X X ntn[country].mark= (*ntn[country].name); X if (islower(ntn[country].mark)!=FALSE) X! ntn[country].mark= toupper(ntn[country].mark); X printf("\ntesting first letter of name (%c) for nation mark...",ntn[country].mark); X valid=TRUE; X while(valid==TRUE) { X*** odisplay.c Thu Jul 28 09:09:40 1988 X--- display.c Thu Jul 28 09:11:10 1988 X*************** X*** 47,53 X /*can you see all?*/ X if((magic(country,KNOWALL)==1)||(country==0)) { X for(x=0;xCOLS-21)||(y>=LINES-4)) return; X if(((y+yoffset)=SCREEN_X_SIZE)||(y>=SCREEN_Y_SIZE)) return; X if(((y+yoffset)=1000) X mvaddch(y,2*x,'+'); X else if (sct[x+xoffset][y+yoffset].people>=450) X mvaddch(y,2*x,'>'); X X--- 264,270 ----- X case DI_PEOP: /*People*/ X if (sct[x+xoffset][y+yoffset].altitude==WATER) X mvaddch(y,2*x,WATER); X! else if (sct[x+xoffset][y+yoffset].people>=4950) X mvaddch(y,2*x,'+'); X else if (sct[x+xoffset][y+yoffset].people>=950) X mvaddch(y,2*x,'>'); X*************** X*** 267,273 X mvaddch(y,2*x,WATER); X else if (sct[x+xoffset][y+yoffset].people>=1000) X mvaddch(y,2*x,'+'); X! else if (sct[x+xoffset][y+yoffset].people>=450) X mvaddch(y,2*x,'>'); X else if (sct[x+xoffset][y+yoffset].people==0) X mvaddch(y,2*x,'0'); X X--- 266,272 ----- X mvaddch(y,2*x,WATER); X else if (sct[x+xoffset][y+yoffset].people>=4950) X mvaddch(y,2*x,'+'); X! else if (sct[x+xoffset][y+yoffset].people>=950) X mvaddch(y,2*x,'>'); X else X mvprintw(y,2*x,"%d",(50+sct[x+xoffset][y+yoffset].people)/100); X*************** X*** 269,276 X mvaddch(y,2*x,'+'); X else if (sct[x+xoffset][y+yoffset].people>=450) X mvaddch(y,2*x,'>'); X- else if (sct[x+xoffset][y+yoffset].people==0) X- mvaddch(y,2*x,'0'); X else X mvprintw(y,2*x,"%d",1+sct[x+xoffset][y+yoffset].people/50); X break; X X--- 268,273 ----- X mvaddch(y,2*x,'+'); X else if (sct[x+xoffset][y+yoffset].people>=950) X mvaddch(y,2*x,'>'); X else X mvprintw(y,2*x,"%d",(50+sct[x+xoffset][y+yoffset].people)/100); X break; X*************** X*** 272,278 X else if (sct[x+xoffset][y+yoffset].people==0) X mvaddch(y,2*x,'0'); X else X! mvprintw(y,2*x,"%d",1+sct[x+xoffset][y+yoffset].people/50); X break; X case DI_GOLD: /*Gold*/ X if (sct[x+xoffset][y+yoffset].altitude==WATER) X X--- 269,275 ----- X else if (sct[x+xoffset][y+yoffset].people>=950) X mvaddch(y,2*x,'>'); X else X! mvprintw(y,2*x,"%d",(50+sct[x+xoffset][y+yoffset].people)/100); X break; X case DI_GOLD: /*Gold*/ X if (sct[x+xoffset][y+yoffset].altitude==WATER) X*************** X*** 339,345 X void X coffmap() X { X! if((xcurs<1)||(ycurs<1)||(xcurs>=SCREEN_X_SIZE) X ||((ycurs>=SCREEN_Y_SIZE))||((XREAL)>=MAPX) X ||((YREAL)>=MAPY)) offmap(); X X X--- 336,342 ----- X void X coffmap() X { X! if((xcurs<0)||(ycurs<0)||(xcurs>=SCREEN_X_SIZE) X ||((ycurs>=SCREEN_Y_SIZE))||((XREAL)>=MAPX) X ||((YREAL)>=MAPY)) offmap(); X X*** omain.c Thu Jul 28 09:10:32 1988 X--- main.c Thu Jul 28 09:11:10 1988 X*************** X*** 208,214 X } X execute(); X #ifdef TRADE X! uptrade(); X #endif TRADE X if(ntn[country].capx>15) { X xcurs=15; X X--- 208,214 ----- X } X execute(); X #ifdef TRADE X! checktrade(); X #endif TRADE X if(ntn[country].capx>15) { X xcurs=15; X*************** X*** 661,669 X /*print that army to nfound%5*/ X mvaddch((nfound%5)*2,COLS-21,'>'); X if(selector==(nfound%5)*2) standout(); X- /*the mv,for gets the highlighting pretty*/ X- move((nfound%5)*2,COLS-10); X- for(i=0;i<9;i++) addch(' '); X X mvprintw((nfound%5)*2,COLS-20,"army %d: %d (%s)",armynum,ASOLD,*(shunittype+(ATYPE%100))); X /*the mv,for gets the highlighting pretty*/ X X--- 661,666 ----- X /*print that army to nfound%5*/ X mvaddch((nfound%5)*2,COLS-21,'>'); X if(selector==(nfound%5)*2) standout(); X X mvprintw((nfound%5)*2,COLS-20,"army %d: %d (%s)",armynum,ASOLD,*(shunittype+(ATYPE%100))); X X*************** X*** 666,674 X for(i=0;i<9;i++) addch(' '); X X mvprintw((nfound%5)*2,COLS-20,"army %d: %d (%s)",armynum,ASOLD,*(shunittype+(ATYPE%100))); X- /*the mv,for gets the highlighting pretty*/ X- move((nfound%5)*2+1,COLS-10); X- for(i=0;i<9;i++) addch(' '); X X mvprintw((nfound%5)*2+1,COLS-20," mv:%d st:%s",AMOVE,*(soldname+ASTAT)); X standend(); X X--- 663,668 ----- X if(selector==(nfound%5)*2) standout(); X X mvprintw((nfound%5)*2,COLS-20,"army %d: %d (%s)",armynum,ASOLD,*(shunittype+(ATYPE%100))); X X mvprintw((nfound%5)*2+1,COLS-20," mv:%d st:%s",AMOVE,*(soldname+ASTAT)); X standend(); X*************** X*** 688,695 X /*print a navy*/ X mvaddch((nfound%5)*2,COLS-21,'>'); X if(selector==(nfound%5)*2) standout(); X! mvprintw((nfound%5)*2,COLS-20,"nvy %d: war:%d mv:%d",nvynum,NWAR,NMOVE); X! mvprintw((nfound%5)*2+1,COLS-20," mer %d crew %d",NMER,NCREW); X standend(); X } X nfound++; X X--- 682,689 ----- X /*print a navy*/ X mvaddch((nfound%5)*2,COLS-21,'>'); X if(selector==(nfound%5)*2) standout(); X! mvprintw((nfound%5)*2,COLS-20,"nvy %d: war:%d mer:%d",nvynum,NWAR,NMER); X! mvprintw((nfound%5)*2+1,COLS-20," mv:%d crew:%d",NMOVE,NCREW/(NWAR+NMER)); X standend(); X } X nfound++; X*** opatchlevel.h Thu Jul 28 09:10:14 1988 X--- patchlevel.h Thu Jul 28 09:11:13 1988 X*************** X*** 1,1 X! #define PATCHLEVEL 3 X X--- 1,1 ----- X! #define PATCHLEVEL 4 X X END_OF_FILE if test 40959 -ne `wc -c <'patches04'`; then echo shar: \"'patches04'\" unpacked with wrong size! fi # end of 'patches04' fi echo shar: End of shell archive. exit 0