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