games@tekred.TEK.COM (07/29/88)
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 <file", e.g.. If this archive is complete, you # will see the following message at the end: # "End of shell archive." # Contents: patches04 # Wrapped by billr@saab on Fri Jul 29 09:06:24 1988 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f 'patches04' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'patches04'\" else echo shar: Extracting \"'patches04'\" \(40959 characters\) sed "s/^X//" >'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(army2num<MAXARM-1) army2num++; X } X } 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_LT_CAV; X if(army2num<MAXARM-1) army2num++; X } X } X*** orandevent.c Thu Jul 28 09:09:50 1988 X--- randevent.c Thu Jul 28 09:10:58 1988 X*************** X*** 5,10 X #include "data.h" X #ifdef RANEVENT X #ifdef ADMIN X X extern FILE *fnews; X extern short country; X X--- 5,14 ----- X #include "data.h" X #ifdef RANEVENT X #ifdef ADMIN X+ char *names[] = { /* must end in single character name */ X+ "groo","brok","vul","poin","srop","hoga","nobi","bonz","gail", X+ "lynn","zorb","theed","urda","X" X+ }; X X extern FILE *fnews; X extern short country; X*************** X*** 77,82 X return(newntn); X } X X /* disolve a certain percent of a nation */ X /*returns value of new nation */ X int X X--- 81,106 ----- X return(newntn); X } X X+ char X+ getnewmark() X+ { X+ char tmpchr; X+ int done=TRUE,i; X+ tmpchr='A'-1; X+ while (done) { X+ tmpchr++; X+ done=FALSE; X+ for (i=0;i<MAXNTN;i++) X+ if (ntn[i].mark==tmpchr && ntn[i].active>0) 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;armynum<MAXNAVY;armynum++) X! if(strcmp(ntn[armynum].name, ntn[new].name)==0) { X! strcpy(eventstr,"no nations available"); X! return(0); X! } X #ifdef HIDELOC X sprintf(eventstr,"new nation created"); X #else X X--- 149,156 ----- X return(0); X } X X! if(getnewname(new) == 0) return(0); X! X #ifdef HIDELOC X sprintf(eventstr,"new nation created"); X #else X*************** X*** 163,168 X ntn[new].dplus= ntn[target].dplus; X ntn[new].location= ntn[target].location; X ntn[new].powers= ntn[target].powers; X /* make the rebellion's mark some unused uppercase letter */ X tmpchr='A'-1; X while (notdone) { X X--- 180,188 ----- X ntn[new].dplus= ntn[target].dplus; X ntn[new].location= ntn[target].location; X ntn[new].powers= ntn[target].powers; X+ ntn[new].tships= 0; X+ ntn[new].tsctrs = split; X+ X /* make the rebellion's mark some unused uppercase letter */ X ntn[new].mark = getnewmark(); X X*************** X*** 164,182 X ntn[new].location= ntn[target].location; X ntn[new].powers= ntn[target].powers; X /* make the rebellion's mark some unused uppercase letter */ X! tmpchr='A'-1; X! while (notdone) { X! tmpchr++; X! notdone=0; X! for (i=0;i<MAXNTN;i++) X! if (ntn[i].mark==tmpchr && ntn[i].active>0) 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<defaultx+dist; i++) X for (j=defaulty-dist; j<defaulty+dist; j++){ X X--- 184,191 ----- X ntn[new].tsctrs = split; X X /* make the rebellion's mark some unused uppercase letter */ X! ntn[new].mark = getnewmark(); X! X for ( dist=2 ; dist < 10; dist++) if (split > 0) X for (i=defaultx-dist; i<defaultx+dist; i++) X for (j=defaulty-dist; j<defaulty+dist; j++){ X*************** X*** 246,251 X return(new); X } X X int X randomevent() X { X X--- 255,280 ----- X return(new); X } X X+ getnewname(new) X+ int new; X+ { X+ int done,count,i=0; X+ X+ while( strlen(*(names+i)) > 1 ){ X+ done = TRUE; X+ for (count=0;count<NTOTAL;count++) X+ if(strcmp(ntn[count].name, *(names+i))==0) X+ done = FALSE; X+ if(done==TRUE) break; X+ i++; X+ } X+ X+ strcpy(ntn[new].name,*(names+i)); X+ if(done ==TRUE) return(1); X+ strcpy(eventstr,"no nations available"); X+ return(0); X+ } X+ X int X randomevent() X { X*************** X*** 319,324 X if(ASOLD == 0) { X ASOLD = sct[i][j].people/4; X ASTAT = A_MILITIA; X sct[i][j].people -= ASOLD; X break; X } X X--- 348,355 ----- X if(ASOLD == 0) { X ASOLD = sct[i][j].people/4; X ASTAT = A_MILITIA; X+ AXLOC = i; X+ AYLOC = j; X sct[i][j].people -= ASOLD; X break; X } X*************** X*** 388,394 X break; X case 14: X /*royal wedding (absorb neighbor nation)*/ X! /* takeover ( 100, 0 ); */ done=FALSE; X /* something not right.... */ X break; X case 15: X X--- 419,425 ----- X break; X case 14: X /*royal wedding (absorb neighbor nation)*/ X! /* takeover ( 100, 0 ); */ X /* something not right.... */ X done=FALSE; X break; X*************** X*** 390,395 X /*royal wedding (absorb neighbor nation)*/ X /* takeover ( 100, 0 ); */ done=FALSE; X /* something not right.... */ X break; X case 15: X /*new alloy +10% combat (WARRIOR...)*/ X X--- 421,427 ----- X /*royal wedding (absorb neighbor nation)*/ X /* takeover ( 100, 0 ); */ X /* something not right.... */ X+ done=FALSE; X break; X case 15: X /*new alloy +10% combat (WARRIOR...)*/ X*************** X*** 405,410 X ntn[country].powers|=WARLORD; X exenewmgk(WARLORD); X } X break; X case 16: X /*royal advisor is spy -- lose power*/ X X--- 437,445 ----- X ntn[country].powers|=WARLORD; X exenewmgk(WARLORD); X } X+ else { /* have all three powers... oh well */ X+ done=FALSE; X+ } X break; X case 16: X /*royal advisor is spy -- lose power*/ X*************** X*** 501,507 X ntn[NNOMAD].arm[armynum].sold =400+20*(rand()%50); X else /* 200-600 */ X ntn[NNOMAD].arm[armynum].sold =200+20*(rand()%20); X! ntn[NNOMAD].arm[armynum].unittyp = A_CAVALRY; X ntn[NNOMAD].arm[armynum].stat =ATTACK; X done++; X } X X--- 536,542 ----- X ntn[NNOMAD].arm[armynum].sold =400+20*(rand()%50); X else /* 200-600 */ X ntn[NNOMAD].arm[armynum].sold =200+20*(rand()%20); X! ntn[NNOMAD].arm[armynum].unittyp = A_LT_CAV; X ntn[NNOMAD].arm[armynum].stat =ATTACK; X done++; X } X*************** X*** 543,550 X case 30: /*new magician + RANDOM POWER*/ X /*buy new powers and/or new weapons*/ X if((newpower=getmagic(M_CIV))!=0L){ 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--- 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*2<FOODTHRESH*(100+ntn[country].repro)*spread.civilians/100){ X X--- 308,315 ----- 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! if(magic(country,DEMOCRACY)==1) multiplier=2; X! mvprintw(12,0, "%8d civilians eat....%8d tons",spread.civilians,multiplier*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-multiplier*spread.civilians-military*2); X if(spread.food-multiplier*spread.civilians-military*2<FOODTHRESH*(100+ntn[country].repro)*spread.civilians/100){ X*************** X*** 310,318 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*2<FOODTHRESH*(100+ntn[country].repro)*spread.civilians/100){ X! mvprintw(16,0, "TOTAL NEXT YEARS FOOD.....%8ld tons",spread.food-spread.civilians-military*2); X } X else{ X mvprintw(16,0, "TOTAL NEXT YEARS FOOD.....%8ld tons",FOODTHRESH*(100+ntn[country].repro)*spread.civilians/100); X X--- 311,319 ----- X if(magic(country,DEMOCRACY)==1) multiplier=2; X mvprintw(12,0, "%8d civilians eat....%8d tons",spread.civilians,multiplier*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-multiplier*spread.civilians-military*2); X! if(spread.food-multiplier*spread.civilians-military*2<FOODTHRESH*(100+ntn[country].repro)*spread.civilians/100){ X! mvprintw(16,0, "TOTAL NEXT YEARS FOOD.....%8ld tons",spread.food-multiplier*spread.civilians-military*2); X } X else{ X mvprintw(16,0, "TOTAL NEXT YEARS FOOD.....%8ld tons",FOODTHRESH*(100+ntn[country].repro)*spread.civilians/100); X*************** X*** 316,322 X } X else{ X mvprintw(16,0, "TOTAL NEXT YEARS FOOD.....%8ld tons",FOODTHRESH*(100+ntn[country].repro)*spread.civilians/100); X! mvprintw(17,0, "REVENUE FROM EXCESS.......%8ld gold",spread.food-spread.civilians-military*2-FOODTHRESH*(100+ntn[country].repro)*spread.civilians/100); X } X X mvaddstr(8,41, "OTHER PRODUCTION"); X X--- 317,323 ----- X } X else{ X mvprintw(16,0, "TOTAL NEXT YEARS FOOD.....%8ld tons",FOODTHRESH*(100+ntn[country].repro)*spread.civilians/100); X! mvprintw(17,0, "REVENUE FROM EXCESS.......%8ld gold",spread.food-multiplier*spread.civilians-military*2-FOODTHRESH*(100+ntn[country].repro)*spread.civilians/100); X } X X mvaddstr(8,41, "OTHER PRODUCTION"); X*************** X*** 346,352 X short navy; X short oldx,oldy,oldnavy; X short done=FALSE; X! int position; X int count; /*screen number */ X short nvynum=0; /*current ship id */ X short wships,mships; X X--- 347,354 ----- X short navy; X short oldx,oldy,oldnavy; X short done=FALSE; X! int i,j; X! int position,crew; X int count; /*screen number */ X short nvynum=0; /*current ship id */ X short wships,mships; X*************** X*** 472,477 X else if((oldx==NXLOC)&&(oldy==NYLOC)) { 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 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<MAXNAVY;nvynum++) { X /*update sea sectors*/ X if( NMER + NWAR > 0 ) { X if(sct[NXLOC][NYLOC].altitude==WATER) { X #ifdef STORMS X /* X X--- 678,684 ----- X for(nvynum=0;nvynum<MAXNAVY;nvynum++) { X /*update sea sectors*/ X if( NMER + NWAR > 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<MAPX;x++) for(y=0;y<MAPY;y++) { X X--- 730,738 ----- X ntn[country].tfood-=ntn[country].tmil*2; X /*civilians eat 1*/ X ntn[country].tfood-=ntn[country].tciv; X+ if(magic(country,DEMOCRACY)==TRUE) { /* eat 2x as much */ X+ ntn[country].tfood-=ntn[country].tciv; X+ } X X /*starve people*/ X if(ntn[country].tfood<0) for(x=0;x<MAPX;x++) for(y=0;y<MAPY;y++) { X*** ocommands.c Thu Jul 28 09:10:29 1988 X--- commands.c Thu Jul 28 09:11:06 1988 X*************** X*** 205,210 X if(isgod==TRUE) country=0; X return; X } X X if((isgod==FALSE) && (ntn[country].tgold < 0 )) { X errormsg("You are broke"); X X--- 205,214 ----- X if(isgod==TRUE) country=0; X return; X } X+ if((isgod==FALSE)&&(sct[XREAL][YREAL].people<=500)) { X+ errormsg("You need over 500 people to construct"); X+ return; X+ } X X if((isgod==FALSE) && (ntn[country].tgold < 0 )) { X errormsg("You are broke"); X*************** X*** 271,277 X clrtoeol(); X refresh(); X mnumber = get_number(); X! cost = (long) mnumber*WARSHPCOST*NWAR + (long) mnumber*MERSHPCOST*NMER; X if( ntn[country].tgold < cost ) { X errormsg("NOT ENOUGH GOLD"); X if(isgod==TRUE) country=0; X X--- 275,282 ----- X clrtoeol(); X refresh(); X mnumber = get_number(); X! cost = (long) WARSHPCOST*NWAR + (long) MERSHPCOST*NMER; X! cost *= mnumber / SHIPCREW; X if( ntn[country].tgold < cost ) { X errormsg("NOT ENOUGH GOLD"); X if(isgod==TRUE) country=0; X*************** X*** 308,313 X x=nvynum; X NWAR=0; X NMER=0; X NADJSHP; X } X nvynum++; X X--- 313,319 ----- X x=nvynum; X NWAR=0; X NMER=0; X+ NCREW=0; X NADJSHP; X } X nvynum++; X*************** X*** 321,327 X } X else mvprintw(LINES-2,30,"raising new fleet %d",nvynum); X X! X mvprintw(LINES-3,0,"how many merchants:"); X refresh(); X mnumber = get_number(); X X--- 327,334 ----- X } X else mvprintw(LINES-2,30,"raising new fleet %d",nvynum); X X! move(LINES-3,0); X! clrtoeol(); X mvprintw(LINES-3,0,"how many merchants:"); X refresh(); X mnumber = get_number(); X*************** X*** 355,362 X if((nvynum>=0)&&(nvynum<MAXNAVY)) { X clear_bottom(0); X NCREW += (wnumber+mnumber) * SHIPCREW; X- mvprintw(LINES-4,0,"constructing %hd warships and %hd merchants (crew now %d)",wnumber,mnumber,NCREW); X- X sct[XREAL][YREAL].people -= (wnumber+mnumber)*SHIPCREW; X X ntn[country].tgold -= cost; X X--- 362,367 ----- X if((nvynum>=0)&&(nvynum<MAXNAVY)) { X clear_bottom(0); X NCREW += (wnumber+mnumber) * SHIPCREW; X sct[XREAL][YREAL].people -= (wnumber+mnumber)*SHIPCREW; X X ntn[country].tgold -= cost; X*************** X*** 366,371 X NWAR+=wnumber; X NMER+=mnumber; X NMOVE=0; X SADJCIV; X NADJCRW; X NADJSHP; X X--- 371,378 ----- X NWAR+=wnumber; X NMER+=mnumber; X NMOVE=0; X+ mvprintw(LINES-4,0,"fleet %d: warships=%hd (total %hd) merchants=%hd (total %hd) (crew=%d)",nvynum,wnumber,NWAR,mnumber,NMER,NCREW); X+ X SADJCIV; X NADJCRW; X NADJSHP; X*************** X*** 381,387 X } X /* construct fortification points*/ X else if(type=='f'){ X- if(sct[XREAL][YREAL].people>=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<MAXNTN; nationid++) { X X if(ntn[nationid].active==0) continue; X X--- 203,209 ----- X int i; X int nationid; /*current nation id */ X X! printf("id name race class score gold military civilians sectors\n"); X for (nationid=1; nationid<MAXNTN; nationid++) { X if(ntn[nationid].active==0) continue; X printf("%2d ",nationid); X*************** X*** 205,211 X X printf("id race class score gold military people sectors name\n"); X for (nationid=1; nationid<MAXNTN; nationid++) { X- X if(ntn[nationid].active==0) continue; X printf("%d",nationid); X for(i=1;i<8;i++) X X--- 205,210 ----- X X printf("id name race class score gold military civilians sectors\n"); X for (nationid=1; nationid<MAXNTN; nationid++) { X if(ntn[nationid].active==0) continue; X printf("%2d ",nationid); X printf("%9s ",ntn[nationid].name); X*************** X*** 207,213 X for (nationid=1; nationid<MAXNTN; nationid++) { X X if(ntn[nationid].active==0) continue; X! printf("%d",nationid); X for(i=1;i<8;i++) X if(ntn[nationid].race==*(races+i)[0]) X printf(" %s",*(races+i)); X X--- 206,213 ----- X printf("id name race class score gold military civilians sectors\n"); X for (nationid=1; nationid<MAXNTN; nationid++) { X if(ntn[nationid].active==0) continue; X! printf("%2d ",nationid); 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*************** X*** 210,219 X printf("%d",nationid); X for(i=1;i<8;i++) X if(ntn[nationid].race==*(races+i)[0]) X! printf(" %s",*(races+i)); X! if(ntn[nationid].active>=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;x<SCREEN_X_SIZE;x++) { X! for(y=0;y<(LINES-4);y++) { X highlight(x,y); X see(x,y); X } X X--- 47,53 ----- X /*can you see all?*/ X if((magic(country,KNOWALL)==1)||(country==0)) { X for(x=0;x<SCREEN_X_SIZE;x++) { X! for(y=0;y<SCREEN_Y_SIZE;y++) { X highlight(x,y); X see(x,y); X } X*************** X*** 62,68 X } X /*see as appropriate?*/ X else { X! for(x=0;x<SCREEN_X_SIZE;x++) for(y=0;y<(LINES-4);y++) { X if(sct[x+xoffset][y+yoffset].owner==country){ X for(i=x-LANDSEE;i<=x+LANDSEE;i++){ X for(j=y-LANDSEE;j<=y+LANDSEE;j++) { X X--- 62,69 ----- X } X /*see as appropriate?*/ X else { X! for(x=(-LANDSEE);(x<SCREEN_X_SIZE+LANDSEE)&&(x+xoffset<MAPX);x++) X! for(y=(-LANDSEE);(y<SCREEN_Y_SIZE+LANDSEE)&&(y+yoffset<MAPY);y++) { X if(sct[x+xoffset][y+yoffset].owner==country){ X for(i=x-LANDSEE;i<=x+LANDSEE;i++){ X for(j=y-LANDSEE;j<=y+LANDSEE;j++) { X*************** X*** 181,187 X see(x,y) X { X int armbonus; X! if((x<0)||(y<0)||(x>COLS-21)||(y>=LINES-4)) return; X if(((y+yoffset)<MAPY)&&((x+xoffset)<MAPX)) { X X if((magic(sct[x+xoffset][y+yoffset].owner,THE_VOID)==TRUE) X X--- 182,188 ----- X see(x,y) X { X int armbonus; X! if((x<0)||(y<0)||(x>=SCREEN_X_SIZE)||(y>=SCREEN_Y_SIZE)) return; X if(((y+yoffset)<MAPY)&&((x+xoffset)<MAPX)) { X X if((magic(sct[x+xoffset][y+yoffset].owner,THE_VOID)==TRUE) X*************** X*** 189,197 X ||(dismode==DI_PEOP)||(dismode==DI_FOOD)) X &&(country!=sct[x+xoffset][y+yoffset].owner) X &&(country!=0)) { X! standout(); X! mvaddch(y,2*x,' '); X! standend(); X } else { X switch(dismode){ X case DI_FOOD: /*food */ X X--- 190,196 ----- X ||(dismode==DI_PEOP)||(dismode==DI_FOOD)) X &&(country!=sct[x+xoffset][y+yoffset].owner) X &&(country!=0)) { X! mvaddch(y,2*x,'?'); X } else { X switch(dismode){ X case DI_FOOD: /*food */ X*************** X*** 265,271 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>=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