Path: utzoo!attcan!uunet!lll-winken!lll-tis!ames!amdahl!pacbell!att!whuts!homxb!homxc!smile
From: smile@homxc.UUCP (E.BARLOW)
Newsgroups: comp.sources.games.bugs
Subject: conquer v3 - patch 2
Message-ID: <2681@homxc.UUCP>
Date: 13 Jul 88 14:20:37 GMT
Organization: AT&T Bell Laboratories, Holmdel
Lines: 1513
Here is patch 2...
*** oldadmin.c Wed Jul 13 09:55:58 1988
--- admin.c Wed Jul 13 09:56:10 1988
*** oldextcmds.c Wed Jul 13 09:55:59 1988
--- extcmds.c Wed Jul 13 09:56:10 1988
***************
*** 78,83
if (armynum < 0 || armynum >= MAXARM ||
army2 < 0 || army2 >= MAXARM ||
armynum == army2 ||
ASTAT == SCOUT ||
ntn[country].arm[army2].stat == SCOUT ||
ATYPE >= MINMONSTER ||
--- 78,87 -----
if (armynum < 0 || armynum >= MAXARM ||
army2 < 0 || army2 >= MAXARM ||
armynum == army2 ||
+ #ifdef TRADE
+ ASTAT == TRADED ||
+ ntn[country].arm[army2].stat == TRADED ||
+ #endif TRADE
ASTAT == SCOUT ||
ntn[country].arm[army2].stat == SCOUT ||
ATYPE >= MINMONSTER ||
***************
*** 102,107
change_status(armynum,new_stat)
int armynum,new_stat;
{
if (armynum < 0 || armynum >= MAXARM || ASTAT==SCOUT) {
errormsg("Selected army not legal");
return;
--- 106,114 -----
change_status(armynum,new_stat)
int armynum,new_stat;
{
+ #ifdef TRADE
+ if (armynum < 0 || armynum >= MAXARM || ASTAT==SCOUT || ASTAT==TRADED) {
+ #else
if (armynum < 0 || armynum >= MAXARM || ASTAT==SCOUT) {
#endif TRADE
errormsg("Selected army not legal");
***************
*** 103,108
int armynum,new_stat;
{
if (armynum < 0 || armynum >= MAXARM || ASTAT==SCOUT) {
errormsg("Selected army not legal");
return;
}
--- 110,116 -----
if (armynum < 0 || armynum >= MAXARM || ASTAT==SCOUT || ASTAT==TRADED) {
#else
if (armynum < 0 || armynum >= MAXARM || ASTAT==SCOUT) {
+ #endif TRADE
errormsg("Selected army not legal");
return;
}
***************
*** 124,131
errormsg("sorry -- army is monster");
return;
}
!
! if(men<0 || armynum < 0 || armynum >= MAXARM || ASOLD < men+25 ) {
errormsg("Selected army too small or illegal");
return;
}
--- 132,142 -----
errormsg("sorry -- army is monster");
return;
}
! #ifdef TRADE
! if(men<0 || armynum < 0 || armynum >= MAXARM || ASOLD < men+25 || ASTAT==TRADED) {
! #else
! if(men<0 || armynum < 0 || armynum >= MAXARM || ASOLD < men+25) {
! #endif TRADE
errormsg("Selected army too small or illegal");
return;
}
*** oldmakeworld.c Wed Jul 13 09:55:55 1988
--- makeworld.c Wed Jul 13 09:56:11 1988
*** oldrandevent.c Wed Jul 13 09:55:56 1988
--- randevent.c Wed Jul 13 09:56:13 1988
*** oldcexecute.c Wed Jul 13 09:56:02 1988
--- cexecute.c Wed Jul 13 09:56:13 1988
***************
*** 15,21
#include "data.h"
extern long startgold;
extern short country;
! extern FILE *fexe;
int
execute()
--- 15,21 -----
#include "data.h"
extern long startgold;
extern short country;
! extern FILE *fexe,*fison;
int
execute()
***************
*** 36,42
/* initialize i_people */
for(x=0;xNTOTAL) return;
}
armynum=0;
/*new army screen*/
--- 48,54 -----
standend();
refresh();
country = get_number();
! if(country<0||country>NTOTAL) { country=0; return; }
}
armynum=0;
/*new army screen*/
***************
*** 104,110
clrtoeol();
refresh();
armynum = get_number();
! if((armynum<0)||(armynum>MAXARM)) return;
if(ATYPE<99)
mvaddstr(18,0,"1) CHANGE STATUS, 2) TRANSFER / MERGE, 3) SPLIT ARMY, 4) DISBAND ARMY");
else mvaddstr(18,0,"1) CHANGE STATUS, 4) DISBAND ARMY:");
--- 104,120 -----
clrtoeol();
refresh();
armynum = get_number();
! if((armynum<0)||(armynum>MAXARM)) {
! if (isgod==TRUE) country=0;
! return;
! }
! #ifdef TRADE
! if(ASTAT==TRADED) {
! errormsg("May not change traded army");
! if (isgod==TRUE) country=0;
! return;
! #endif TRADe
! }
if(ATYPE<99)
mvaddstr(18,0,"1) CHANGE STATUS, 2) TRANSFER / MERGE, 3) SPLIT ARMY, 4) DISBAND ARMY");
else mvaddstr(18,0,"1) CHANGE STATUS, 4) DISBAND ARMY:");
***************
*** 109,114
mvaddstr(18,0,"1) CHANGE STATUS, 2) TRANSFER / MERGE, 3) SPLIT ARMY, 4) DISBAND ARMY");
else mvaddstr(18,0,"1) CHANGE STATUS, 4) DISBAND ARMY:");
clrtoeol();
if(isgod==TRUE) mvaddstr(20,0,"5) LOCATION, 6) SOLDIERS:");
refresh();
switch(getch()){
--- 119,125 -----
mvaddstr(18,0,"1) CHANGE STATUS, 2) TRANSFER / MERGE, 3) SPLIT ARMY, 4) DISBAND ARMY");
else mvaddstr(18,0,"1) CHANGE STATUS, 4) DISBAND ARMY:");
clrtoeol();
+ #ifdef OGOD
if(isgod==TRUE) mvaddstr(20,0,"5) LOCATION, 6) SOLDIERS:");
refresh();
switch(getch()){
***************
*** 362,367
standend();
done=TRUE;
refresh();
if(isgod==TRUE) country=0;
return;
}
--- 373,379 -----
standend();
done=TRUE;
refresh();
+ getch();
if(isgod==TRUE) country=0;
return;
}
***************
*** 378,384
mvaddstr(4,0, "merchant :");
mvaddstr(5,0, "x location:");
mvaddstr(6,0, "y location:");
! mvaddstr(7,0,"move left :");
position=5;
count=0;
--- 390,397 -----
mvaddstr(4,0, "merchant :");
mvaddstr(5,0, "x location:");
mvaddstr(6,0, "y location:");
! mvaddstr(7,0, "crew:");
! mvaddstr(8,0,"move left :");
position=5;
count=0;
***************
*** 393,399
mvprintw(4,position,"%d",NMER);
mvprintw(5,position,"%d",NXLOC);
mvprintw(6,position,"%d",NYLOC);
! mvprintw(7,position,"%d",NMOVE);
}
nvynum++;
}
--- 406,413 -----
mvprintw(4,position,"%d",NMER);
mvprintw(5,position,"%d",NXLOC);
mvprintw(6,position,"%d",NYLOC);
! mvprintw(7,position,"%d",NCREW/(NWAR+NMER));
! mvprintw(8,position,"%d",NMOVE);
}
nvynum++;
}
***************
*** 409,414
if (navy=='\n'){
mvaddstr(16,0,"WHAT NAVY DO YOU WANT TO CHANGE:");
clrtoeol();
refresh();
nvynum = get_number();
if((nvynum<0)||(nvynum>MAXNAVY)) return;
--- 423,429 -----
if (navy=='\n'){
mvaddstr(16,0,"WHAT NAVY DO YOU WANT TO CHANGE:");
clrtoeol();
+ #endif OGOD
refresh();
nvynum = get_number();
#ifdef TRADE
***************
*** 411,416
clrtoeol();
refresh();
nvynum = get_number();
if((nvynum<0)||(nvynum>MAXNAVY)) return;
mvaddstr(18,0,"1) TRANSFER / MERGE, 2) SPLIT NAVY, 3) DISBAND NAVY:");
clrtoeol();
--- 426,440 -----
#endif OGOD
refresh();
nvynum = get_number();
+ #ifdef TRADE
+ if (ntn[country].nvy[nvynum].armynum==TRADED) {
+ mvaddstr(23,0,"SORRY - THAT NAVY IS UP FOR TRADE");
+ refresh();
+ getch();
+ if (isgod==TRUE) country=0;
+ return;
+ }
+ #endif TRADE
if((nvynum<0)||(nvynum>MAXNAVY)) return;
mvaddstr(18,0,"1) TRANSFER / MERGE, 2) SPLIT NAVY, 3) DISBAND NAVY:");
clrtoeol();
***************
*** 413,418
nvynum = get_number();
if((nvynum<0)||(nvynum>MAXNAVY)) return;
mvaddstr(18,0,"1) TRANSFER / MERGE, 2) SPLIT NAVY, 3) DISBAND NAVY:");
clrtoeol();
refresh();
switch(getch()){
--- 437,445 -----
#endif TRADE
if((nvynum<0)||(nvynum>MAXNAVY)) return;
mvaddstr(18,0,"1) TRANSFER / MERGE, 2) SPLIT NAVY, 3) DISBAND NAVY:");
+ clrtoeol();
+ #ifdef OGOD
+ if(isgod==TRUE) mvaddstr(19,0,"4) ADJUST SHIPS, 5) LOCATION, 6) CREW");
clrtoeol();
#endif OGOD
refresh();
***************
*** 414,419
if((nvynum<0)||(nvynum>MAXNAVY)) return;
mvaddstr(18,0,"1) TRANSFER / MERGE, 2) SPLIT NAVY, 3) DISBAND NAVY:");
clrtoeol();
refresh();
switch(getch()){
case '1':
--- 441,447 -----
#ifdef OGOD
if(isgod==TRUE) mvaddstr(19,0,"4) ADJUST SHIPS, 5) LOCATION, 6) CREW");
clrtoeol();
+ #endif OGOD
refresh();
switch(getch()){
case '1':
***************
*** 424,429
clrtoeol();
refresh();
nvynum = get_number();
if(nvynum==oldnavy) {
mvprintw(23,0,"SORRY -- SAME NAVY (%d,%d)",nvynum,oldnavy);
refresh();
--- 452,464 -----
clrtoeol();
refresh();
nvynum = get_number();
+ #ifdef TRADE
+ if (ntn[country].nvy[nvynum].armynum==TRADED) {
+ mvaddstr(23,0,"SORRY - THAT NAVY IS UP FOR TRADE");
+ refresh();
+ getch();
+ } else
+ #endif TRADE
if(nvynum==oldnavy) {
mvprintw(23,0,"SORRY -- SAME NAVY (%d,%d)",nvynum,oldnavy);
refresh();
***************
*** 505,510
NMER=0;
NADJSHP;
break;
default:
mvaddstr(21,0,"ERROR : HIT ANY CHAR TO CONTINUE");
clrtoeol();
--- 540,589 -----
NMER=0;
NADJSHP;
break;
+ case '4':
+ if (isgod==TRUE) {
+ /* ADJUST SHIPS */
+ mvaddstr(21,0,"HOW MANY WAR SHIPS: ");
+ refresh();
+ wships = get_number();
+ NWAR = wships;
+ mvaddstr(22,0,"HOW MANY MERCHANT SHIPS: ");
+ refresh();
+ mships = get_number();
+ NMER = mships;
+ NADJSHP;
+ }
+ break;
+ #ifdef OGOD
+ case '5':
+ if (isgod==TRUE) {
+ /*X LOCATION*/
+ mvaddstr(21,0,"WHAT IS THE NEW X LOC: ");
+ refresh();
+ wships = get_number();
+ if (wships>=0 && wships=0 && wships=0 && wships<=SHIPCREW)
+ NCREW = wships*(NMER+NWAR);
+ NADJCRW;
+ }
+ break;
+ #endif OGOD
default:
mvaddstr(21,0,"ERROR : HIT ANY CHAR TO CONTINUE");
clrtoeol();
*** oldcombat.c Wed Jul 13 09:55:53 1988
--- combat.c Wed Jul 13 09:56:14 1988
***************
*** 611,617
for(x= xsctr-1; x<=xsctr+1; x++)
for(y= ysctr-1; y<=ysctr+1; y++) if(ONMAP){
! if(tofood(sct[x][y].vegetation,0)==0) continue;
if(((sct[x][y].owner == nation)
||(ntn[sct[x][y].owner].dstatus[nation] < NEUTRAL))
||(solds_in_sector( x, y, sct[x][y].owner) == 0)){
--- 611,618 -----
for(x= xsctr-1; x<=xsctr+1; x++)
for(y= ysctr-1; y<=ysctr+1; y++) if(ONMAP){
! if(tofood(sct[x][y].vegetation,
! sct[x][y].owner == country ? country : 0)==0) continue;
if(((sct[x][y].owner == nation)
||(ntn[sct[x][y].owner].dstatus[nation] < NEUTRAL))
||(solds_in_sector( x, y, sct[x][y].owner) == 0)){
***************
*** 653,658
int sailor;
char tempmsg[15];
int aship=0,dship=0; /*a's and d's total war ships*/
int asunk=0,dsunk=0; /*a's and d's losses for the round*/
int amsunk=0,dmsunk=0; /*a's and d's msunks for the round*/
register int done,i,j,k;
--- 654,660 -----
int sailor;
char tempmsg[15];
int aship=0,dship=0; /*a's and d's total war ships*/
+ int acrew=0,dcrew=0; /*a's and d's warship crew*/
int asunk=0,dsunk=0; /*a's and d's losses for the round*/
int amsunk=0,dmsunk=0; /*a's and d's msunks for the round*/
int amcapt=0,dmcapt=0; /*a's and d's mcaptures the the round*/
***************
*** 655,660
int aship=0,dship=0; /*a's and d's total war ships*/
int asunk=0,dsunk=0; /*a's and d's losses for the round*/
int amsunk=0,dmsunk=0; /*a's and d's msunks for the round*/
register int done,i,j,k;
/* determine who is attacker & who is on defenders side?*/
--- 657,664 -----
int acrew=0,dcrew=0; /*a's and d's warship crew*/
int asunk=0,dsunk=0; /*a's and d's losses for the round*/
int amsunk=0,dmsunk=0; /*a's and d's msunks for the round*/
+ int amcapt=0,dmcapt=0; /*a's and d's mcaptures the the round*/
+ int akcrew=0,dkcrew=0; /*a's and d's crew losses for the round*/
register int done,i,j,k;
/* determine who is attacker & who is on defenders side?*/
***************
*** 676,681
for(j=0;j0)&&(side[i]==ATKR)){
--- 755,771 -----
ntn[owner[0]].nvy[unit[0]].xloc,
ntn[owner[0]].nvy[unit[0]].yloc,max(0,dsunk-dship));
#endif
+ /*calculate crew losses: all on ships sunk plus percentage*/
+ if (asunk > aship) {
+ akcrew = asunk * SHIPCREW + SHIPCREW*(asunk-aship)*asunk/(asunk+dsunk);
+ amsunk = asunk -aship;
+ } else
+ akcrew = aship * SHIPCREW;
+ if (dsunk > dship) {
+ dkcrew = dsunk * SHIPCREW + SHIPCREW*(dsunk-dship)*dsunk/(dsunk+asunk);
+ dmsunk = dsunk -dship;
+ } else
+ dkcrew = dship * SHIPCREW;
/*work warship and crew losses per navy*/
for(i=0;i0)&&(side[i]==ATKR)){
if(asunk > aship ) {
--- 767,773 -----
} else
dkcrew = dship * SHIPCREW;
+ /*work warship and crew losses per navy*/
for(i=0;i0)&&(side[i]==ATKR)){
ntn[owner[i]].nvy[unit[i]].crew -= akcrew * ntn[owner[i]].nvy[unit[i]].warships/aship;
***************
*** 742,747
for(i=0;i0)&&(side[i]==ATKR)){
if(asunk > aship ) {
ntn[owner[i]].nvy[unit[i]].warships=0;
amsunk = asunk - aship;
--- 770,776 -----
/*work warship and crew losses per navy*/
for(i=0;i0)&&(side[i]==ATKR)){
+ ntn[owner[i]].nvy[unit[i]].crew -= akcrew * ntn[owner[i]].nvy[unit[i]].warships/aship;
if(asunk > aship ) {
ntn[owner[i]].nvy[unit[i]].warships=0;
} else {
***************
*** 744,750
if((asunk>0)&&(side[i]==ATKR)){
if(asunk > aship ) {
ntn[owner[i]].nvy[unit[i]].warships=0;
- amsunk = asunk - aship;
} else {
ntn[owner[i]].nvy[unit[i]].warships -= asunk * ntn[owner[i]].nvy[unit[i]].warships/aship;
}
--- 773,778 -----
ntn[owner[i]].nvy[unit[i]].crew -= akcrew * ntn[owner[i]].nvy[unit[i]].warships/aship;
if(asunk > aship ) {
ntn[owner[i]].nvy[unit[i]].warships=0;
} else {
ntn[owner[i]].nvy[unit[i]].warships -= asunk * ntn[owner[i]].nvy[unit[i]].warships/aship;
}
***************
*** 750,755
}
}
else if((dsunk>0)&&(side[i]==DFND)){
if(dsunk > dship ) {
ntn[owner[i]].nvy[unit[i]].warships=0;
dmsunk = dsunk -dship;
--- 778,784 -----
}
}
else if((dsunk>0)&&(side[i]==DFND)){
+ ntn[owner[i]].nvy[unit[i]].crew -= dkcrew * ntn[owner[i]].nvy[unit[i]].warships/dship;
if(dsunk > dship ) {
ntn[owner[i]].nvy[unit[i]].warships=0;
} else {
***************
*** 752,758
else if((dsunk>0)&&(side[i]==DFND)){
if(dsunk > dship ) {
ntn[owner[i]].nvy[unit[i]].warships=0;
- dmsunk = dsunk -dship;
} else {
ntn[owner[i]].nvy[unit[i]].warships -= dsunk * ntn[owner[i]].nvy[unit[i]].warships / dship;
}
--- 781,786 -----
ntn[owner[i]].nvy[unit[i]].crew -= dkcrew * ntn[owner[i]].nvy[unit[i]].warships/dship;
if(dsunk > dship ) {
ntn[owner[i]].nvy[unit[i]].warships=0;
} else {
ntn[owner[i]].nvy[unit[i]].warships -= dsunk * ntn[owner[i]].nvy[unit[i]].warships / dship;
}
***************
*** 763,768
if((amsunk>0)&&(side[i]==ATKR)){
if(amsunk >= ntn[owner[i]].nvy[unit[i]].merchant ) {
amsunk -= ntn[owner[i]].nvy[unit[i]].merchant;
ntn[owner[i]].nvy[unit[i]].merchant=0;
} else {
ntn[owner[i]].nvy[unit[i]].merchant-=amsunk;
--- 791,797 -----
if((amsunk>0)&&(side[i]==ATKR)){
if(amsunk >= ntn[owner[i]].nvy[unit[i]].merchant ) {
amsunk -= ntn[owner[i]].nvy[unit[i]].merchant;
+ amcapt += ntn[owner[i]].nvy[unit[i]].merchant;
ntn[owner[i]].nvy[unit[i]].merchant=0;
ntn[owner[i]].nvy[unit[i]].crew=0;
} else {
***************
*** 764,769
if(amsunk >= ntn[owner[i]].nvy[unit[i]].merchant ) {
amsunk -= ntn[owner[i]].nvy[unit[i]].merchant;
ntn[owner[i]].nvy[unit[i]].merchant=0;
} else {
ntn[owner[i]].nvy[unit[i]].merchant-=amsunk;
amsunk=0;
--- 793,799 -----
amsunk -= ntn[owner[i]].nvy[unit[i]].merchant;
amcapt += ntn[owner[i]].nvy[unit[i]].merchant;
ntn[owner[i]].nvy[unit[i]].merchant=0;
+ ntn[owner[i]].nvy[unit[i]].crew=0;
} else {
ntn[owner[i]].nvy[unit[i]].crew-=SHIPCREW*amsunk;
ntn[owner[i]].nvy[unit[i]].merchant-=amsunk;
***************
*** 765,770
amsunk -= ntn[owner[i]].nvy[unit[i]].merchant;
ntn[owner[i]].nvy[unit[i]].merchant=0;
} else {
ntn[owner[i]].nvy[unit[i]].merchant-=amsunk;
amsunk=0;
}
--- 795,801 -----
ntn[owner[i]].nvy[unit[i]].merchant=0;
ntn[owner[i]].nvy[unit[i]].crew=0;
} else {
+ ntn[owner[i]].nvy[unit[i]].crew-=SHIPCREW*amsunk;
ntn[owner[i]].nvy[unit[i]].merchant-=amsunk;
amcapt += amsunk;
amsunk=0;
***************
*** 766,771
ntn[owner[i]].nvy[unit[i]].merchant=0;
} else {
ntn[owner[i]].nvy[unit[i]].merchant-=amsunk;
amsunk=0;
}
}
--- 797,803 -----
} else {
ntn[owner[i]].nvy[unit[i]].crew-=SHIPCREW*amsunk;
ntn[owner[i]].nvy[unit[i]].merchant-=amsunk;
+ amcapt += amsunk;
amsunk=0;
}
}
***************
*** 772,777
else if((dmsunk>0)&&(side[i]==DFND)){
if(dmsunk >= ntn[owner[i]].nvy[unit[i]].merchant ) {
dmsunk -= ntn[owner[i]].nvy[unit[i]].merchant;
ntn[owner[i]].nvy[unit[i]].merchant=0;
} else {
ntn[owner[i]].nvy[unit[i]].merchant-=dmsunk;
--- 804,810 -----
else if((dmsunk>0)&&(side[i]==DFND)){
if(dmsunk >= ntn[owner[i]].nvy[unit[i]].merchant ) {
dmsunk -= ntn[owner[i]].nvy[unit[i]].merchant;
+ dmcapt += ntn[owner[i]].nvy[unit[i]].merchant;
ntn[owner[i]].nvy[unit[i]].merchant=0;
ntn[owner[i]].nvy[unit[i]].crew=0;
} else {
***************
*** 773,778
if(dmsunk >= ntn[owner[i]].nvy[unit[i]].merchant ) {
dmsunk -= ntn[owner[i]].nvy[unit[i]].merchant;
ntn[owner[i]].nvy[unit[i]].merchant=0;
} else {
ntn[owner[i]].nvy[unit[i]].merchant-=dmsunk;
dmsunk=0;
--- 806,812 -----
dmsunk -= ntn[owner[i]].nvy[unit[i]].merchant;
dmcapt += ntn[owner[i]].nvy[unit[i]].merchant;
ntn[owner[i]].nvy[unit[i]].merchant=0;
+ ntn[owner[i]].nvy[unit[i]].crew=0;
} else {
ntn[owner[i]].nvy[unit[i]].crew-=SHIPCREW*dmsunk;
ntn[owner[i]].nvy[unit[i]].merchant-=dmsunk;
***************
*** 774,779
dmsunk -= ntn[owner[i]].nvy[unit[i]].merchant;
ntn[owner[i]].nvy[unit[i]].merchant=0;
} else {
ntn[owner[i]].nvy[unit[i]].merchant-=dmsunk;
dmsunk=0;
}
--- 808,814 -----
ntn[owner[i]].nvy[unit[i]].merchant=0;
ntn[owner[i]].nvy[unit[i]].crew=0;
} else {
+ ntn[owner[i]].nvy[unit[i]].crew-=SHIPCREW*dmsunk;
ntn[owner[i]].nvy[unit[i]].merchant-=dmsunk;
dmcapt += dmsunk;
dmsunk=0;
***************
*** 775,780
ntn[owner[i]].nvy[unit[i]].merchant=0;
} else {
ntn[owner[i]].nvy[unit[i]].merchant-=dmsunk;
dmsunk=0;
}
}
--- 810,816 -----
} else {
ntn[owner[i]].nvy[unit[i]].crew-=SHIPCREW*dmsunk;
ntn[owner[i]].nvy[unit[i]].merchant-=dmsunk;
+ dmcapt += dmsunk;
dmsunk=0;
}
}
***************
*** 779,784
}
}
}
/*will round continue; does one side wish to withdraw*/
--- 815,831 -----
}
}
}
+ /*distribute captured ships according to navy sizes*/
+ if (asunk >= aship) dmcapt=0;
+ if (dsunk >= dship) amcapt=0;
+ for (i=0; i0)&&(side[i]==ATKR)){
+ ntn[owner[i]].nvy[unit[i]].merchant += dmcapt * ntn[owner[i]].nvy[unit[i]].warships / (aship - asunk);
+ }
+ if ((amcapt>0)&&(side[i]==DFND)){
+ ntn[owner[i]].nvy[unit[i]].merchant += amcapt * ntn[owner[i]].nvy[unit[i]].warships / (dship - dsunk);
+ }
+ }
/*will round continue; does one side wish to withdraw*/
***************
*** 814,820
}
fprintf(fpmsg,"%s RESULT: Attackers lose %d ships, Defenders lose %d ships\n",ntn[owner[j]].name, asunk,dsunk);
! fprintf(fpmsg,"%s Attackers capture %d merchants, Defenders capture %d merchants\n",ntn[owner[j]].name, dmsunk,amsunk);
fprintf(fpmsg,"END\n");
fclose(fpmsg);
}
--- 861,867 -----
}
fprintf(fpmsg,"%s RESULT: Attackers lose %d ships, Defenders lose %d ships\n",ntn[owner[j]].name, asunk,dsunk);
! fprintf(fpmsg,"%s Attackers capture %d merchants, Defenders capture %d merchants\n",ntn[owner[j]].name, dmcapt,amcapt);
fprintf(fpmsg,"END\n");
fclose(fpmsg);
}
*** oldgetopt.c Wed Jul 13 09:55:58 1988
--- getopt.c Wed Jul 13 09:56:14 1988
*** oldmove.c Wed Jul 13 09:55:58 1988
--- move.c Wed Jul 13 09:56:14 1988
*** oldupdate.c Wed Jul 13 09:55:56 1988
--- update.c Wed Jul 13 09:56:14 1988
***************
*** 33,39
/*run each nation in a random order*/
updexecs();
!
#ifdef LZARD
/* run lizard nations */
updlizards();
--- 33,41 -----
/*run each nation in a random order*/
updexecs();
! #ifdef TRADE
! uptrade();
! #endif
#ifdef LZARD
/* run lizard nations */
updlizards();
***************
*** 714,720
char command[80];
long dead;
! fprintf(fnews,"2\tWORLD FOOD SUPPLY & DECLARATIONS OF WAR\n");
for(country=1;country= 2) return(0L); /*npc nation*/
! else if((newpower==NINJA)
||(newpower==SLAVER)
||(newpower==SAILOR)
||(newpower==DEMOCRACY)
--- 144,152 -----
ntn[country].powers|=BREEDER;
return(BREEDER);
}
! else if(ntn[country].active >= 2) {
! return(0L); /* remaining powers only for pc's */
! } else if((newpower==NINJA)
||(newpower==SLAVER)
||(newpower==SAILOR)
||(newpower==DEMOCRACY)
***************
*** 150,158
||(newpower==SAILOR)
||(newpower==DEMOCRACY)
||(newpower==ROADS)
- ||(newpower==SUMMON)
- ||(newpower==WYZARD)
- ||(newpower==SORCERER)
||(newpower==SAPPER)
||(newpower==ARMOR)
||(newpower==AVIAN)){ /* these powers are only for pc's */
--- 151,156 -----
||(newpower==SAILOR)
||(newpower==DEMOCRACY)
||(newpower==ROADS)
||(newpower==SAPPER)
||(newpower==ARMOR)
||(newpower==AVIAN)){
***************
*** 155,161
||(newpower==SORCERER)
||(newpower==SAPPER)
||(newpower==ARMOR)
! ||(newpower==AVIAN)){ /* these powers are only for pc's */
if(magic(country,newpower)==TRUE) return(0L);
ntn[country].powers|=newpower;
return(newpower);
--- 153,159 -----
||(newpower==ROADS)
||(newpower==SAPPER)
||(newpower==ARMOR)
! ||(newpower==AVIAN)){
if(magic(country,newpower)==TRUE) return(0L);
ntn[country].powers|=newpower;
return(newpower);
***************
*** 160,166
ntn[country].powers|=newpower;
return(newpower);
}
! else return(0L);
}
#ifdef CONQUER
/*form to interactively get a magic power*/
--- 158,175 -----
ntn[country].powers|=newpower;
return(newpower);
}
! else if((newpower==SUMMON)||(newpower==WYZARD)||(newpower==SORCERER)){
! if(magic(country,SUMMON)!=TRUE) {
! ntn[country].powers|=SUMMON;
! return(SUMMON);
! } else if(magic(country,WYZARD)!=TRUE) {
! ntn[country].powers|=WYZARD;
! return(WYZARD);
! } else if(magic(country,SORCERER)!=TRUE) {
! ntn[country].powers|=SORCERER;
! return(SORCERER);
! } else return(0L);
! } else return(0L);
}
#ifdef CONQUER
/*form to interactively get a magic power*/
***************
*** 599,605
orctake(count)
int *count;
{
! int chance=0;
if((*count)>20) {
(*count)=2;
clear();
--- 608,614 -----
orctake(count)
int *count;
{
! int chance=0,done=TRUE,i;
if((*count)>20) {
(*count)=2;
clear();
***************
*** 604,611
(*count)=2;
clear();
}
! if(magic((*count)ry,MA_MONST)==TRUE) {
! mvaddstr((*count)++,0," You have a 10 percent chance for %ld Jewels take over other orcs",TAKEPRICE);
chance=10;
} else if(magic((*count)ry,AV_MONST)==TRUE) {
mvaddstr((*count)++,0," You have a 6 percent chance for %ld Jewels take over other orcs",TAKEPRICE);
--- 613,620 -----
(*count)=2;
clear();
}
! if(magic(country,MA_MONST)==TRUE) {
! mvprintw((*count)++,0," You have a 10 percent chance for %ld Jewels take over other orcs",TAKEPRICE);
chance=10;
} else if(magic(country,AV_MONST)==TRUE) {
mvprintw((*count)++,0," You have a 6 percent chance for %ld Jewels take over other orcs",TAKEPRICE);
***************
*** 607,614
if(magic((*count)ry,MA_MONST)==TRUE) {
mvaddstr((*count)++,0," You have a 10 percent chance for %ld Jewels take over other orcs",TAKEPRICE);
chance=10;
! } else if(magic((*count)ry,AV_MONST)==TRUE) {
! mvaddstr((*count)++,0," You have a 6 percent chance for %ld Jewels take over other orcs",TAKEPRICE);
chance=6;
} else if(magic((*count)ry,MI_MONST)==TRUE){
mvaddstr((*count)++,0," You have a 3 percent chance for %ld Jewels to take over other orcs",TAKEPRICE);
--- 616,623 -----
if(magic(country,MA_MONST)==TRUE) {
mvprintw((*count)++,0," You have a 10 percent chance for %ld Jewels take over other orcs",TAKEPRICE);
chance=10;
! } else if(magic(country,AV_MONST)==TRUE) {
! mvprintw((*count)++,0," You have a 6 percent chance for %ld Jewels take over other orcs",TAKEPRICE);
chance=6;
} else if(magic(country,MI_MONST)==TRUE){
mvprintw((*count)++,0," You have a 3 percent chance for %ld Jewels to take over other orcs",TAKEPRICE);
***************
*** 610,617
} else if(magic((*count)ry,AV_MONST)==TRUE) {
mvaddstr((*count)++,0," You have a 6 percent chance for %ld Jewels take over other orcs",TAKEPRICE);
chance=6;
! } else if(magic((*count)ry,MI_MONST)==TRUE){
! mvaddstr((*count)++,0," You have a 3 percent chance for %ld Jewels to take over other orcs",TAKEPRICE);
chance=3;
}
if(chance==0) return(1);
--- 619,626 -----
} else if(magic(country,AV_MONST)==TRUE) {
mvprintw((*count)++,0," You have a 6 percent chance for %ld Jewels take over other orcs",TAKEPRICE);
chance=6;
! } else if(magic(country,MI_MONST)==TRUE){
! mvprintw((*count)++,0," You have a 3 percent chance for %ld Jewels to take over other orcs",TAKEPRICE);
chance=3;
}
if(chance==0) return(TRUE);
***************
*** 614,620
mvaddstr((*count)++,0," You have a 3 percent chance for %ld Jewels to take over other orcs",TAKEPRICE);
chance=3;
}
! if(chance==0) return(1);
mvprintw((*count)++,0,"DO YOU WISH TO TAKE OVER AN ORC NPC NATION (enter y or n):");
refresh();
--- 623,629 -----
mvprintw((*count)++,0," You have a 3 percent chance for %ld Jewels to take over other orcs",TAKEPRICE);
chance=3;
}
! if(chance==0) return(TRUE);
mvaddstr((*count)++,0,"DO YOU WISH TO TAKE OVER AN ORC NPC NATION (enter y or n):");
refresh();
***************
*** 616,622
}
if(chance==0) return(1);
! mvprintw((*count)++,0,"DO YOU WISH TO TAKE OVER AN ORC NPC NATION (enter y or n):");
refresh();
if(getch()=='y'){
done=FALSE;
--- 625,631 -----
}
if(chance==0) return(TRUE);
! mvaddstr((*count)++,0,"DO YOU WISH TO TAKE OVER AN ORC NPC NATION (enter y or n):");
refresh();
if(getch()=='y'){
done=FALSE;
***************
*** 624,630
refresh();
i=get_number();
if(ntn[i].race==ORC){
! ntn[(*count)ry].jewels-=TAKEPRICE;
if((i=takeover(chance,i))==1)
mvprintw((*count)++,0," Successful: %d",i);
}
--- 633,639 -----
refresh();
i=get_number();
if(ntn[i].race==ORC){
! ntn[country].jewels-=TAKEPRICE;
if((i=takeover(chance,i))==1)
mvprintw((*count)++,0," Successful: %d",i);
}