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