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*/