mike@cimcor.UUCP (Michael Grenier) (01/31/88)
These patches are for patching conquer to run under Microport System V/AT. The main problems were the 16 bit integers (32 bit numbers not allowed in switch statements, sizeof(char *)!= sizeof(int). There is also a compiler bug resulting in the message compiler error - segment overwrite, get help. Some statements had to be broken up a bit. -Mike {rutgers, amdahl, ihnp4}!bungia!cimcor!mike *** header.h Thu Jan 28 22:10:49 1988 --- ../conquer/header.h Fri Jan 29 16:42:10 1988 *************** *** 35,41 /* directory where default data files will be stored */ /* SO ONE GAME CAN EXIST IN DEFAULTDIR, OTHER GAMES IN OTHER DIRECTORIES */ ! #define DEFAULTDIR "/usr/game" /*-------------------MODIFICATION IS OPTIONAL ON THE FOLLOWING-------------*/ #define SYSV /*comment this line out if on a BSD machine*/ --- 35,41 ----- /* directory where default data files will be stored */ /* SO ONE GAME CAN EXIST IN DEFAULTDIR, OTHER GAMES IN OTHER DIRECTORIES */ ! #define DEFAULTDIR "/usr/games" /*-------------------MODIFICATION IS OPTIONAL ON THE FOLLOWING-------------*/ #define SYSV /*comment this line out if on a BSD machine*/ *** io.c Sun Jan 24 20:33:31 1988 --- ../conquer/io.c Sat Jan 30 01:11:11 1988 *************** *** 496,502 printf(" %s",*(races+i)); if(ntn[nationid].active>=2) printf(" NPC"); else printf(" %s",*(Class+ntn[nationid].class)); ! printf(" %d %d %d %d %d", ntn[nationid].score ,ntn[nationid].tgold ,ntn[nationid].tmil ,ntn[nationid].tciv ,ntn[nationid].tsctrs ); --- 496,502 ----- printf(" %s",*(races+i)); if(ntn[nationid].active>=2) printf(" NPC"); else printf(" %s",*(Class+ntn[nationid].class)); ! printf(" %d %ld %ld %ld %d", ntn[nationid].score ,ntn[nationid].tgold ,ntn[nationid].tmil ,ntn[nationid].tciv ,ntn[nationid].tsctrs ); *** magic.c Sun Jan 24 20:32:10 1988 --- ../conquer/magic.c Fri Jan 29 14:47:09 1988 *************** *** 26,32 getmagic() { ! int newpower; newpower=1<<rand()%MAXPOWER; switch(newpower){ case WARRIOR: --- 26,32 ----- getmagic() { ! long int newpower; newpower=1<<rand()%MAXPOWER; if ((newpower==WARRIOR)|| (newpower==CAPTAIN) || (newpower==WARLORD)){ if(magic(country,WARRIOR)!=1){ *************** *** 28,37 { int newpower; newpower=1<<rand()%MAXPOWER; ! switch(newpower){ ! case WARRIOR: ! case CAPTAIN: ! case WARLORD: if(magic(country,WARRIOR)!=1){ ntn[country].powers|=WARRIOR; return(WARRIOR); --- 28,34 ----- { long int newpower; newpower=1<<rand()%MAXPOWER; ! if ((newpower==WARRIOR)|| (newpower==CAPTAIN) || (newpower==WARLORD)){ if(magic(country,WARRIOR)!=1){ ntn[country].powers|=WARRIOR; return(WARRIOR); *************** *** 44,53 ntn[country].powers|=WARLORD; return(WARLORD); } ! break; ! case MI_MONST: ! case AV_MONST: ! case MA_MONST: if(ntn[country].race!=ORC) return(0); if(magic(country,MI_MONST)!=1){ ntn[country].powers|=MI_MONST; --- 41,50 ----- ntn[country].powers|=WARLORD; return(WARLORD); } ! return(0); ! }; ! if ((newpower==MI_MONST)||(newpower==AV_MONST)||(newpower==MA_MONST)) ! { if(ntn[country].race!=ORC) return(0); if(magic(country,MI_MONST)!=1){ ntn[country].powers|=MI_MONST; *************** *** 61,77 ntn[country].powers|=MA_MONST; return(MA_MONST); } ! break; ! case SPY: ! case KNOWALL: ! case DERVISH: ! case HIDDEN: ! case ARCHITECT: ! case URBAN: ! case THE_VOID: ! case HEALER: ! case ARCHER: ! case CAVALRY: if(magic(country,newpower)==1) return(0); ntn[country].powers|=newpower; return(newpower); --- 58,70 ----- ntn[country].powers|=MA_MONST; return(MA_MONST); } ! return(0); ! }; ! if ((newpower==SPY)||(newpower==KNOWALL)||(newpower==DERVISH)|| ! (newpower==HIDDEN)||(newpower==ARCHITECT)||(newpower==URBAN)|| ! (newpower==THE_VOID)||(newpower==HEALER)||(newpower==ARCHER)|| ! (newpower==CAVALRY)) ! { if(magic(country,newpower)==1) return(0); ntn[country].powers|=newpower; return(newpower); *************** *** 75,81 if(magic(country,newpower)==1) return(0); ntn[country].powers|=newpower; return(newpower); ! case DESTROYER: if((ntn[country].race!=ELF)&&(magic(country,DESTROYER)!=1)){ ntn[country].powers|=DESTROYER; return(DESTROYER); --- 68,76 ----- if(magic(country,newpower)==1) return(0); ntn[country].powers|=newpower; return(newpower); ! }; ! if(newpower==DESTROYER) ! { if((ntn[country].race!=ELF)&&(magic(country,DESTROYER)!=1)){ ntn[country].powers|=DESTROYER; return(DESTROYER); *************** *** 80,87 ntn[country].powers|=DESTROYER; return(DESTROYER); } ! break; ! case VAMPIRE: if((ntn[country].race!=ELF)&&(magic(country,VAMPIRE)!=1)){ ntn[country].powers|=VAMPIRE; return(VAMPIRE); --- 75,84 ----- ntn[country].powers|=DESTROYER; return(DESTROYER); } ! return(0); ! }; ! if(newpower==VAMPIRE) ! { if((ntn[country].race!=ELF)&&(magic(country,VAMPIRE)!=1)){ ntn[country].powers|=VAMPIRE; return(VAMPIRE); *************** *** 86,93 ntn[country].powers|=VAMPIRE; return(VAMPIRE); } ! break; ! case MINER: if((ntn[country].race!=ELF)&&(ntn[country].race!=DWARF)&&(magic(country,MINER)!=1)){ ntn[country].powers|=MINER; return(MINER); --- 83,92 ----- ntn[country].powers|=VAMPIRE; return(VAMPIRE); } ! return(0); ! }; ! if(newpower==MINER) ! { if((ntn[country].race!=ELF)&&(ntn[country].race!=DWARF)&&(magic(country,MINER)!=1)){ ntn[country].powers|=MINER; return(MINER); *************** *** 92,99 ntn[country].powers|=MINER; return(MINER); } ! break; ! case STEEL: if(magic(country,STEEL)==1) return(0); if(magic(country,MINER)!=1) return(0); ntn[country].powers|=STEEL; --- 91,100 ----- ntn[country].powers|=MINER; return(MINER); } ! return(0); ! }; ! if(newpower==STEEL) ! { if(magic(country,STEEL)==1) return(0); if(magic(country,MINER)!=1) return(0); ntn[country].powers|=STEEL; *************** *** 98,104 if(magic(country,MINER)!=1) return(0); ntn[country].powers|=STEEL; return(STEEL); ! case BREEDER: if(magic(country,BREEDER)==1) return(0); if(ntn[country].race!=ORC) return(0); ntn[country].powers|=BREEDER; --- 99,107 ----- if(magic(country,MINER)!=1) return(0); ntn[country].powers|=STEEL; return(STEEL); ! }; ! if(newpower==BREEDER) ! { if(magic(country,BREEDER)==1) return(0); if(ntn[country].race!=ORC) return(0); ntn[country].powers|=BREEDER; *************** *** 103,109 if(ntn[country].race!=ORC) return(0); ntn[country].powers|=BREEDER; return(BREEDER); ! } return(0); } --- 106,112 ----- if(ntn[country].race!=ORC) return(0); ntn[country].powers|=BREEDER; return(BREEDER); ! }; return(0); } *************** *** 285,292 exenewmgk(newpower) { short x,y; ! switch(newpower){ ! case WARRIOR: ntn[country].aplus+=10; ntn[country].dplus+=10; break; --- 288,295 ----- exenewmgk(newpower) { short x,y; ! if(newpower==WARRIOR) ! { ntn[country].aplus+=10; ntn[country].dplus+=10; return(0); *************** *** 289,296 case WARRIOR: ntn[country].aplus+=10; ntn[country].dplus+=10; ! break; ! case CAPTAIN: ntn[country].aplus+=10; ntn[country].dplus+=10; break; --- 292,301 ----- { ntn[country].aplus+=10; ntn[country].dplus+=10; ! return(0); ! }; ! if(newpower==CAPTAIN) ! { ntn[country].aplus+=10; ntn[country].dplus+=10; return(0); *************** *** 293,300 case CAPTAIN: ntn[country].aplus+=10; ntn[country].dplus+=10; ! break; ! case WARLORD: ntn[country].aplus+=10; ntn[country].dplus+=10; break; --- 298,307 ----- { ntn[country].aplus+=10; ntn[country].dplus+=10; ! return(0); ! }; ! if(newpower==WARLORD) ! { ntn[country].aplus+=10; ntn[country].dplus+=10; return(0); *************** *** 297,304 case WARLORD: ntn[country].aplus+=10; ntn[country].dplus+=10; ! break; ! case HEALER: if(ntn[country].race==ORC) { if(ntn[country].repro<=11) ntn[country].repro+=2; --- 304,313 ----- { ntn[country].aplus+=10; ntn[country].dplus+=10; ! return(0); ! }; ! if(newpower==HEALER) ! { if(ntn[country].race==ORC) { if(ntn[country].repro<=11) ntn[country].repro+=2; *************** *** 314,321 else if(ntn[country].repro>=10){ ntn[country].dplus+=10; } ! break; ! case DESTROYER: for(x=ntn[country].capx-3;x<=ntn[country].capx+3;x++) { for(y=ntn[country].capy-3;y<=ntn[country].capy+3;y++){ if((ONMAP) --- 323,332 ----- else if(ntn[country].repro>=10){ ntn[country].dplus+=10; } ! return(0); ! }; ! if(newpower==DESTROYER) ! { for(x=ntn[country].capx-3;x<=ntn[country].capx+3;x++) { for(y=ntn[country].capy-3;y<=ntn[country].capy+3;y++){ if((ONMAP) *************** *** 327,334 } } updmove(ntn[country].race); ! break; ! case DERVISH: updmove(ntn[country].race); break; case MI_MONST: --- 338,347 ----- } } updmove(ntn[country].race); ! return(0); ! }; ! if(newpower==DERVISH) ! { updmove(ntn[country].race); return(0); }; *************** *** 330,347 break; case DERVISH: updmove(ntn[country].race); ! break; ! case MI_MONST: ! case AV_MONST: ! case MA_MONST: ! case SPY: ! case KNOWALL: ! case HIDDEN: ! case THE_VOID: ! case ARCHITECT: ! case MINER: ! break; ! case VAMPIRE: ntn[country].aplus-=35; ntn[country].dplus-=35; ntn[country].maxmove-=2; --- 343,358 ----- if(newpower==DERVISH) { updmove(ntn[country].race); ! return(0); ! }; ! if((newpower==MI_MONST) || (newpower==AV_MONST) || ! (newpower==MA_MONST) || (newpower==SPY) || ! (newpower==KNOWALL) || (newpower==HIDDEN) || ! (newpower==THE_VOID) || (newpower==ARCHITECT) || ! (newpower==MINER)) ! return(0); ! if(newpower==VAMPIRE) ! { ntn[country].aplus-=35; ntn[country].dplus-=35; ntn[country].maxmove-=2; *************** *** 345,352 ntn[country].aplus-=35; ntn[country].dplus-=35; ntn[country].maxmove-=2; ! break; ! case URBAN: if(ntn[country].race==ORC) { ntn[country].repro+=3; if(ntn[country].repro>=13){ --- 356,365 ----- ntn[country].aplus-=35; ntn[country].dplus-=35; ntn[country].maxmove-=2; ! return(0); ! }; ! if(newpower==URBAN) ! { if(ntn[country].race==ORC) { ntn[country].repro+=3; if(ntn[country].repro>=13){ *************** *** 361,370 ntn[country].maxmove+=2*(ntn[country].repro-9); ntn[country].repro=12; } ! break; ! case STEEL: ! break; ! case ARCHER: ntn[country].dplus+=10; break; case CAVALRY: --- 374,385 ----- ntn[country].maxmove+=2*(ntn[country].repro-9); ntn[country].repro=12; } ! return(0); ! }; ! if(newpower==STEEL) ! return(0); ! if(newpower==ARCHER) ! { ntn[country].dplus+=10; return(0); }; *************** *** 366,373 break; case ARCHER: ntn[country].dplus+=10; ! break; ! case CAVALRY: ntn[country].aplus+=10; ntn[country].maxmove+=6; break; --- 381,390 ----- if(newpower==ARCHER) { ntn[country].dplus+=10; ! return(0); ! }; ! if(newpower==CAVALRY) ! { ntn[country].aplus+=10; ntn[country].maxmove+=6; return(0); *************** *** 370,377 case CAVALRY: ntn[country].aplus+=10; ntn[country].maxmove+=6; ! break; ! case BREEDER: ntn[country].repro+=3; ntn[country].dplus-=10; ntn[country].dplus-=10; --- 387,396 ----- { ntn[country].aplus+=10; ntn[country].maxmove+=6; ! return(0); ! }; ! if(newpower==BREEDER) ! { ntn[country].repro+=3; ntn[country].dplus-=10; ntn[country].dplus-=10; *************** *** 375,380 ntn[country].repro+=3; ntn[country].dplus-=10; ntn[country].dplus-=10; ! break; } } --- 394,399 ----- ntn[country].repro+=3; ntn[country].dplus-=10; ntn[country].dplus-=10; ! return(0); } } *** main.c Sun Jan 24 20:32:15 1988 --- ../conquer/main.c Sat Jan 30 00:47:35 1988 *************** *** 17,23 #include <signal.h> #include <fcntl.h> #include <pwd.h> ! /*initialization data*/ /*Movement costs*/ char *ele= "#^%-~"; --- 17,23 ----- #include <signal.h> #include <fcntl.h> #include <pwd.h> ! extern char * getpass(); /* got to declare this on 16bit machines, MWG */ /*initialization data*/ /*Movement costs*/ char *ele= "#^%-~"; *************** *** 167,173 newlogin(); exit(1); } else if (pflag) { /* print a map of the game */ ! if(strncmp(crypt(getpass("\nwhat is super user password:"),SALT),ntn[0].passwd,PASSLTH)!=0) { printf("sorry, must be super user to get map\n"); exit(1); } --- 167,174 ----- newlogin(); exit(1); } else if (pflag) { /* print a map of the game */ ! if(strncmp(crypt(getpass("\nwhat is super user password:"),SALT),ntn[0].passwd,PASSLTH)!=0) ! { printf("sorry, must be super user to get map\n"); exit(1); } *** makeworld.c Sun Jan 24 20:31:51 1988 --- ../conquer/makeworld.c Fri Jan 29 23:54:03 1988 *************** *** 580,586 AXLOC=x; AYLOC=y; ASTAT=GARRISON; ! ASOLD=750+100*rand()%10; armynum++; AMOVE=8; AXLOC=x; --- 580,586 ----- AXLOC=x; AYLOC=y; ASTAT=GARRISON; ! ASOLD=750+100*(rand() % 10); armynum++; AMOVE=8; AXLOC=x; *************** *** 586,592 AXLOC=x; AYLOC=y; ASTAT=ATTACK; ! ASOLD=750+100*rand()%10; armynum++; } } --- 586,592 ----- AXLOC=x; AYLOC=y; ASTAT=ATTACK; ! ASOLD=750+100*(rand()%10); armynum++; } } *************** *** 676,682 AXLOC=x; AYLOC=y; ASTAT=ATTACK; ! ASOLD=200+100*rand()%10; if(armynum<MAXARM-1) armynum++; } else { --- 676,682 ----- AXLOC=x; AYLOC=y; ASTAT=ATTACK; ! ASOLD=200+100*(rand()%10); if(armynum<MAXARM-1) armynum++; } else { *************** *** 680,685 if(armynum<MAXARM-1) armynum++; } else { sct[x][y].owner = NNOMAD; ntn[NNOMAD].arm[army2num].xloc=x; ntn[NNOMAD].arm[army2num].yloc=y; --- 680,687 ----- if(armynum<MAXARM-1) armynum++; } else { + int itest,itest1; + itest1=NNOMAD; sct[x][y].owner = NNOMAD; ntn[NNOMAD].arm[army2num].xloc=x; ntn[NNOMAD].arm[army2num].yloc=y; *************** *** 684,690 ntn[NNOMAD].arm[army2num].xloc=x; ntn[NNOMAD].arm[army2num].yloc=y; ntn[NNOMAD].arm[army2num].stat=ATTACK; ! ntn[NNOMAD].arm[army2num].sold=100+100*rand()%15; if(army2num<MAXARM-1) army2num++; } } --- 686,693 ----- ntn[NNOMAD].arm[army2num].xloc=x; ntn[NNOMAD].arm[army2num].yloc=y; ntn[NNOMAD].arm[army2num].stat=ATTACK; ! itest=100*(rand() %15); ! ntn[NNOMAD].arm[army2num].sold=100+itest; if(army2num<MAXARM-1) army2num++; } } *************** *** 692,698 country=NPIRATE; NXLOC=x; NYLOC=y; ! NWAR=2*(1+rand()%10); nvynum++; } } --- 695,701 ----- country=NPIRATE; NXLOC=x; NYLOC=y; ! NWAR=2*(1+(rand()%10)); nvynum++; } } *** move.c Sun Jan 24 20:32:34 1988 --- ../conquer/move.c Fri Jan 29 12:57:33 1988 *************** *** 42,47 short nvynum; int done=0; /*done is 1 if done with this move*/ int capacity; armornvy=AORN; /*get selected army or navy*/ --- 42,48 ----- short nvynum; int done=0; /*done is 1 if done with this move*/ int capacity; + short uport_dummy; /* added MWG 1/29/88 for broken microport */ armornvy=AORN; /*get selected army or navy*/ *************** *** 247,253 ycurs=oldycurs; } else { ! AMOVE-=movecost[XREAL][YREAL]; if(AMOVE<=0) done=1; } } --- 248,255 ----- ycurs=oldycurs; } else { ! uport_dummy =movecost[XREAL][YREAL]; ! ntn[country].arm[armynum].smove -= uport_dummy; if(AMOVE<=0) done=1; } } *************** *** 284,290 refresh(); } } ! else NMOVE+=movecost[XREAL][YREAL]; if(NMOVE<=0) done=1; } else if(armornvy==AORN){ --- 286,295 ----- refresh(); } } ! else { ! uport_dummy=movecost[XREAL][YREAL]; ! NMOVE+=uport_dummy; ! }; if(NMOVE<=0) done=1; } else if(armornvy==AORN){ *** npc.c Sun Jan 24 20:31:58 1988 --- ../conquer/npc.c Sat Jan 30 00:15:50 1988 *************** *** 244,249 /*defend your capital if occupied, +50 more if with their army*/ for(armie=1;armie<MAXARM;armie++){ if(ntn[nation].arm[armie].sold > 0) { attr[ntn[nation].arm[armie].xloc][ntn[nation].arm[armie].yloc]+=ntn[nation].arm[armie].sold/10; --- 244,252 ----- /*defend your capital if occupied, +50 more if with their army*/ for(armie=1;armie<MAXARM;armie++){ if(ntn[nation].arm[armie].sold > 0) { + int uport_dummy; + uport_dummy=ntn[nation].arm[armie].sold/10; + attr[ntn[nation].arm[armie].xloc][ntn[nation].arm[armie].yloc]+=uport_dummy; if((ntn[nation].arm[armie].xloc<=ntn[country].capx+2) &&(ntn[nation].arm[armie].yloc<=ntn[country].capy+2) *************** *** 245,252 for(armie=1;armie<MAXARM;armie++){ if(ntn[nation].arm[armie].sold > 0) { - attr[ntn[nation].arm[armie].xloc][ntn[nation].arm[armie].yloc]+=ntn[nation].arm[armie].sold/10; - if((ntn[nation].arm[armie].xloc<=ntn[country].capx+2) &&(ntn[nation].arm[armie].yloc<=ntn[country].capy+2) &&(ntn[nation].arm[armie].xloc>=ntn[country].capx-2) --- 248,253 ----- uport_dummy=ntn[nation].arm[armie].sold/10; attr[ntn[nation].arm[armie].xloc][ntn[nation].arm[armie].yloc]+=uport_dummy; if((ntn[nation].arm[armie].xloc<=ntn[country].capx+2) &&(ntn[nation].arm[armie].yloc<=ntn[country].capy+2) &&(ntn[nation].arm[armie].xloc>=ntn[country].capx-2) *************** *** 251,257 &&(ntn[nation].arm[armie].yloc<=ntn[country].capy+2) &&(ntn[nation].arm[armie].xloc>=ntn[country].capx-2) &&(ntn[nation].arm[armie].yloc>=ntn[country].capy-2)){ ! attr[ntn[nation].arm[armie].xloc][ntn[nation].arm[armie].yloc]+=ntn[nation].arm[armie].sold/5; if((rand()%3==0) &&(ntn[country].dstatus[nation]<WAR)) ntn[country].dstatus[nation]++; --- 252,260 ----- &&(ntn[nation].arm[armie].yloc<=ntn[country].capy+2) &&(ntn[nation].arm[armie].xloc>=ntn[country].capx-2) &&(ntn[nation].arm[armie].yloc>=ntn[country].capy-2)){ ! int uport_d1; ! uport_d1=ntn[nation].arm[armie].sold/5; ! attr[ntn[nation].arm[armie].xloc][ntn[nation].arm[armie].yloc]+=uport_d1; if((rand()%3==0) &&(ntn[country].dstatus[nation]<WAR)) ntn[country].dstatus[nation]++; *************** *** 260,266 if(ntn[country].dstatus[nation]==WAR) ntn[country].dstatus[nation]=JIHAD; if(ntn[nation].arm[armie].sold>2*ntn[country].arm[0].sold){ ! attr[ntn[nation].arm[armie].xloc][ntn[nation].arm[armie].yloc]+=ntn[nation].arm[armie].sold/2; } else attr[ntn[nation].arm[armie].xloc][ntn[nation].arm[armie].yloc]+=ntn[nation].arm[armie].sold/5; } --- 263,271 ----- if(ntn[country].dstatus[nation]==WAR) ntn[country].dstatus[nation]=JIHAD; if(ntn[nation].arm[armie].sold>2*ntn[country].arm[0].sold){ ! int uport_d2; ! uport_d2=ntn[nation].arm[armie].sold/2; ! attr[ntn[nation].arm[armie].xloc][ntn[nation].arm[armie].yloc]+=uport_d2; } else { int uport_d3; *************** *** 262,268 if(ntn[nation].arm[armie].sold>2*ntn[country].arm[0].sold){ attr[ntn[nation].arm[armie].xloc][ntn[nation].arm[armie].yloc]+=ntn[nation].arm[armie].sold/2; } ! else attr[ntn[nation].arm[armie].xloc][ntn[nation].arm[armie].yloc]+=ntn[nation].arm[armie].sold/5; } } } --- 267,276 ----- uport_d2=ntn[nation].arm[armie].sold/2; attr[ntn[nation].arm[armie].xloc][ntn[nation].arm[armie].yloc]+=uport_d2; } ! else { ! int uport_d3; ! uport_d3=ntn[nation].arm[armie].sold/5; ! attr[ntn[nation].arm[armie].xloc][ntn[nation].arm[armie].yloc]+=uport_d3; } } } } *************** *** 336,341 /*plus 60 if with their army*/ for(armie=1;armie<MAXARM;armie++) if(ntn[nation].arm[armie].sold > 0) { attr[ntn[nation].arm[armie].xloc][ntn[nation].arm[armie].yloc]+=ntn[nation].arm[armie].sold/10; --- 344,352 ----- /*plus 60 if with their army*/ for(armie=1;armie<MAXARM;armie++) if(ntn[nation].arm[armie].sold > 0) { + int uport_d5; + uport_d5=ntn[nation].arm[armie].sold/10; + attr[ntn[nation].arm[armie].xloc][ntn[nation].arm[armie].yloc]+=uport_d5; if((ntn[nation].arm[armie].xloc<=ntn[country].capx+2) &&(ntn[nation].arm[armie].yloc<=ntn[country].capy+2) *************** *** 337,344 for(armie=1;armie<MAXARM;armie++) if(ntn[nation].arm[armie].sold > 0) { - attr[ntn[nation].arm[armie].xloc][ntn[nation].arm[armie].yloc]+=ntn[nation].arm[armie].sold/10; - if((ntn[nation].arm[armie].xloc<=ntn[country].capx+2) &&(ntn[nation].arm[armie].yloc<=ntn[country].capy+2) &&(ntn[nation].arm[armie].xloc>=ntn[country].capx-2) --- 348,353 ----- uport_d5=ntn[nation].arm[armie].sold/10; attr[ntn[nation].arm[armie].xloc][ntn[nation].arm[armie].yloc]+=uport_d5; if((ntn[nation].arm[armie].xloc<=ntn[country].capx+2) &&(ntn[nation].arm[armie].yloc<=ntn[country].capy+2) &&(ntn[nation].arm[armie].xloc>=ntn[country].capx-2) *************** *** 343,349 &&(ntn[nation].arm[armie].yloc<=ntn[country].capy+2) &&(ntn[nation].arm[armie].xloc>=ntn[country].capx-2) &&(ntn[nation].arm[armie].yloc>=ntn[country].capy-2)){ ! attr[ntn[nation].arm[armie].xloc][ntn[nation].arm[armie].yloc]+=ntn[nation].arm[armie].sold/5; if((rand()%3==0) &&(ntn[country].dstatus[nation]<WAR)) ntn[country].dstatus[nation]++; --- 352,360 ----- &&(ntn[nation].arm[armie].yloc<=ntn[country].capy+2) &&(ntn[nation].arm[armie].xloc>=ntn[country].capx-2) &&(ntn[nation].arm[armie].yloc>=ntn[country].capy-2)){ ! int uport_d6; ! uport_d6=ntn[nation].arm[armie].sold/5; ! attr[ntn[nation].arm[armie].xloc][ntn[nation].arm[armie].yloc]+=uport_d6; if((rand()%3==0) &&(ntn[country].dstatus[nation]<WAR)) ntn[country].dstatus[nation]++; *************** *** 352,358 if(ntn[country].dstatus[nation]==WAR) ntn[country].dstatus[nation]=JIHAD; if(ntn[nation].arm[armie].sold>2*ntn[country].arm[0].sold){ ! attr[ntn[nation].arm[armie].xloc][ntn[nation].arm[armie].yloc]+=ntn[nation].arm[armie].sold/2; } else attr[ntn[nation].arm[armie].xloc][ntn[nation].arm[armie].yloc]+=ntn[nation].arm[armie].sold/5; } --- 363,371 ----- if(ntn[country].dstatus[nation]==WAR) ntn[country].dstatus[nation]=JIHAD; if(ntn[nation].arm[armie].sold>2*ntn[country].arm[0].sold){ ! int uport_d7; ! uport_d7=ntn[nation].arm[armie].sold/2; ! attr[ntn[nation].arm[armie].xloc][ntn[nation].arm[armie].yloc]+=uport_d7; } else { int uport_d8; *************** *** 354,360 if(ntn[nation].arm[armie].sold>2*ntn[country].arm[0].sold){ attr[ntn[nation].arm[armie].xloc][ntn[nation].arm[armie].yloc]+=ntn[nation].arm[armie].sold/2; } ! else attr[ntn[nation].arm[armie].xloc][ntn[nation].arm[armie].yloc]+=ntn[nation].arm[armie].sold/5; } } } --- 367,377 ----- uport_d7=ntn[nation].arm[armie].sold/2; attr[ntn[nation].arm[armie].xloc][ntn[nation].arm[armie].yloc]+=uport_d7; } ! else { ! int uport_d8; ! uport_d8=ntn[nation].arm[armie].sold/5; ! attr[ntn[nation].arm[armie].xloc][ntn[nation].arm[armie].yloc]+=uport_d8; ! } } } } *************** *** 504,510 ntn[country].active=0; for(armynum=0;armynum<MAXARM;armynum++) if(ASOLD>0) { if(ntn[sct[AXLOC][AYLOC].owner].race==ntn[country].race) ! sct[AXLOC][AYLOC].people+=ASOLD; ASOLD=0; } for(nvynum=0;nvynum<MAXNAVY;nvynum++) { --- 521,531 ----- ntn[country].active=0; for(armynum=0;armynum<MAXARM;armynum++) if(ASOLD>0) { if(ntn[sct[AXLOC][AYLOC].owner].race==ntn[country].race) ! { ! int uport_d8; ! uport_d8=ASOLD; ! sct[AXLOC][AYLOC].people+=uport_d8; ! }; ASOLD=0; } for(nvynum=0;nvynum<MAXNAVY;nvynum++) { *************** *** 518,527 /*if take them you get their gold*/ if(country!=sct[ntn[country].capx][ntn[country].capy].owner){ ! if(ntn[country].tgold>0) ntn[sct[ntn[country].capx][ntn[country].capy].owner].tgold+=ntn[country].tgold; ! if(ntn[country].jewels>0) ntn[sct[ntn[country].capx][ntn[country].capy].owner].jewels+=ntn[country].jewels; ! if(ntn[country].tiron>0) ntn[sct[ntn[country].capx][ntn[country].capy].owner].tiron+=ntn[country].tiron; ! if(ntn[country].tfood>0) ntn[sct[ntn[country].capx][ntn[country].capy].owner].tfood+=ntn[country].tfood; } /*if god destroys then kill all population*/ --- 539,568 ----- /*if take them you get their gold*/ if(country!=sct[ntn[country].capx][ntn[country].capy].owner){ ! if(ntn[country].tgold>0) ! { ! long uport_d9; ! uport_d9=ntn[country].tgold; ! ntn[sct[ntn[country].capx][ntn[country].capy].owner].tgold+=uport_d9; ! }; ! if(ntn[country].jewels>0) ! { ! long uport_d9; ! uport_d9=ntn[country].jewels; ! ntn[sct[ntn[country].capx][ntn[country].capy].owner].jewels+=uport_d9; ! }; ! if(ntn[country].tiron>0) ! { ! long uport_d9; ! uport_d9=ntn[country].tiron; ! ntn[sct[ntn[country].capx][ntn[country].capy].owner].tiron+=uport_d9; ! }; ! if(ntn[country].tfood>0) ! { ! long uport_d9; ! uport_d9=ntn[country].tfood; ! ntn[sct[ntn[country].capx][ntn[country].capy].owner].tfood+=uport_d9; ! }; } /*if god destroys then kill all population*/ *************** *** 566,573 /*move nomads randomly until within 2 of city then attack*/ country=NNOMAD; for(armynum=0;armynum<MAXARM;armynum++) if(ASOLD>0){ ! x=AXLOC+rand()%4-2; ! y=AYLOC+rand()%4-2; if(ONMAP&&(is_habitable(x,y)) &&(land_reachp(AXLOC,AYLOC,x,y,ntn[country].arm[armynum].smove,country))){ AXLOC=x; --- 607,614 ----- /*move nomads randomly until within 2 of city then attack*/ country=NNOMAD; for(armynum=0;armynum<MAXARM;armynum++) if(ASOLD>0){ ! x=AXLOC+(rand()%4)-2; ! y=AYLOC+(rand()%4)-2; if(ONMAP&&(is_habitable(x,y)) &&(land_reachp(AXLOC,AYLOC,x,y,ntn[country].arm[armynum].smove,country))){ AXLOC=x; *************** *** 590,596 if((rand()%4==0)&&(is_habitable(x,y))) { AXLOC=x; AYLOC=y; ! ASOLD=100+100*rand()%10; ASTAT=ATTACK; } } --- 631,637 ----- if((rand()%4==0)&&(is_habitable(x,y))) { AXLOC=x; AYLOC=y; ! ASOLD=100+100*(rand()%10); ASTAT=ATTACK; } } *************** *** 735,740 ASOLD = min (ASOLD,sct[ntn[country].capx][ntn[country].capy].people/2); ASOLD = min (ASOLD, (int) (ntn[country].tgold/ENLISTCOST)); if(ASOLD>0){ /*printf(" build army %d to %d men",armynum,ASOLD);*/ ntn[country].tiron-=ASOLD*10; AXLOC= ntn[country].capx; --- 776,782 ----- ASOLD = min (ASOLD,sct[ntn[country].capx][ntn[country].capy].people/2); ASOLD = min (ASOLD, (int) (ntn[country].tgold/ENLISTCOST)); if(ASOLD>0){ + int uport_d10; /*printf(" build army %d to %d men",armynum,ASOLD);*/ ntn[country].tiron-=ASOLD*10; AXLOC= ntn[country].capx; *************** *** 742,748 ntn[country].tmil += ASOLD; ntn[country].tciv -= ASOLD; ntn[country].tgold-=ASOLD*ENLISTCOST; ! sct[AXLOC][AYLOC].people-=ASOLD; ASTAT= DEFEND; AMOVE=0; } --- 784,791 ----- ntn[country].tmil += ASOLD; ntn[country].tciv -= ASOLD; ntn[country].tgold-=ASOLD*ENLISTCOST; ! uport_d10=ASOLD; ! sct[AXLOC][AYLOC].people-=uport_d10; ASTAT= DEFEND; AMOVE=0; } *************** *** 758,763 &&((sct[AXLOC][AYLOC].gold>5) ||(sct[AXLOC][AYLOC].iron>5)) &&(rand()%5==0)&&(ASOLD<diff)){ /*printf(" eliminate army %d",armynum);*/ diff-=ASOLD; sct[AXLOC][AYLOC].people+=ASOLD; --- 801,807 ----- &&((sct[AXLOC][AYLOC].gold>5) ||(sct[AXLOC][AYLOC].iron>5)) &&(rand()%5==0)&&(ASOLD<diff)){ + int uport_d11; /*printf(" eliminate army %d",armynum);*/ diff-=ASOLD; uport_d11=ASOLD; *************** *** 760,766 &&(rand()%5==0)&&(ASOLD<diff)){ /*printf(" eliminate army %d",armynum);*/ diff-=ASOLD; ! sct[AXLOC][AYLOC].people+=ASOLD; ntn[country].tmil -= ASOLD; ntn[country].tciv += ASOLD; ASOLD=0; --- 804,811 ----- int uport_d11; /*printf(" eliminate army %d",armynum);*/ diff-=ASOLD; ! uport_d11=ASOLD; ! sct[AXLOC][AYLOC].people+=uport_d11; ntn[country].tmil -= ASOLD; ntn[country].tciv += ASOLD; ASOLD=0; *** randevent.c Sun Jan 24 20:33:03 1988 --- ../conquer/randevent.c Sat Jan 30 00:15:44 1988 *************** *** 329,335 if((is_habitable(i,j)) && ( sct[i][j].owner == country)) { ntn[NNOMAD].arm[armynum].xloc =i; ntn[NNOMAD].arm[armynum].yloc =j; ! ntn[NNOMAD].arm[armynum].sold =300+200*rand()%10; ntn[NNOMAD].arm[armynum].stat =ATTACK; count = 100; } --- 329,335 ----- if((is_habitable(i,j)) && ( sct[i][j].owner == country)) { ntn[NNOMAD].arm[armynum].xloc =i; ntn[NNOMAD].arm[armynum].yloc =j; ! ntn[NNOMAD].arm[armynum].sold =300+200*(rand()%10); ntn[NNOMAD].arm[armynum].stat =ATTACK; count = 100; } *************** *** 387,393 for (i=0; i<MAPX; i++) for (j=0; j<MAPY; j++) if(( sct[i][j].owner == country) && (sct[i][j].iron != 0)) ! sct[i][j].iron += rand()%7 + 4; break; case 35: /*new leader sets up peace*/ --- 387,393 ----- for (i=0; i<MAPX; i++) for (j=0; j<MAPY; j++) if(( sct[i][j].owner == country) && (sct[i][j].iron != 0)) ! sct[i][j].iron += (rand()%7) + 4; break; case 35: /*new leader sets up peace*/