[comp.sources.games.bugs] conquer v3 - repost of patch1

smile@homxc.UUCP (E.BARLOW) (07/13/88)

Here is a reposting of patch 1 for conquer v3.  Lots of people have
mailed to me - claiming to have missed it.  patch 2 and the shell
archive patch2.sh are to follow.

The Ed
------------------------ Cut Here ------------------------
*** oldcexecute.c	Fri Jun 17 09:40:20 1988
--- cexecute.c	Fri Jun 17 09:40:39 1988
***************
*** 83,88
  			ntn[country].nvy[armynum].xloc=x;
  			ntn[country].nvy[armynum].yloc=y;
  			break;
  		case XNASHP: /*nadjshp*/
  			ntn[country].nvy[armynum].merchant=x;
  			ntn[country].nvy[armynum].warships=y;

--- 83,92 -----
  			ntn[country].nvy[armynum].xloc=x;
  			ntn[country].nvy[armynum].yloc=y;
  			break;
+ 		case XNACREW: 
+ 			ntn[country].nvy[armynum].crew=x;
+ 			ntn[country].nvy[armynum].armynum=y;
+ 			break;
  		case XNASHP: /*nadjshp*/
  			ntn[country].nvy[armynum].merchant=x;
  			ntn[country].nvy[armynum].warships=y;
*** oldcommands.c	Fri Jun 17 09:40:09 1988
--- commands.c	Fri Jun 17 09:40:41 1988
***************
*** 345,351
  			return;
  		}
  
! 		if( sct[XREAL][YREAL].people < (wnumber+mnumber) * mnumber ){
  			errormsg("NOT ENOUGH CIVILIANS IN SECTOR");
  			if(isgod==TRUE) country=0;
  			return;

--- 345,351 -----
  			return;
  		}
  
! 		if( sct[XREAL][YREAL].people < (wnumber+mnumber) * SHIPCREW ){
  			errormsg("NOT ENOUGH CIVILIANS IN SECTOR");
  			if(isgod==TRUE) country=0;
  			return;
***************
*** 353,360
  
  		if((nvynum>=0)&&(nvynum<MAXNAVY)) {
  			clear_bottom(0);
- 			mvprintw(LINES-4,0,"constructing %hd warships and %hd merchant",wnumber,mnumber);
- 
  			NCREW += (wnumber+mnumber) * SHIPCREW;
  			sct[XREAL][YREAL].people -= (wnumber+mnumber)*SHIPCREW;
  

--- 353,358 -----
  
  		if((nvynum>=0)&&(nvynum<MAXNAVY)) {
  			clear_bottom(0);
  			NCREW += (wnumber+mnumber) * SHIPCREW;
  			mvprintw(LINES-4,0,"constructing %hd warships and %hd merchants (crew now %d)",wnumber,mnumber,NCREW);
  
***************
*** 356,361
  			mvprintw(LINES-4,0,"constructing %hd warships and %hd merchant",wnumber,mnumber);
  
  			NCREW += (wnumber+mnumber) * SHIPCREW;
  			sct[XREAL][YREAL].people -= (wnumber+mnumber)*SHIPCREW;
  
  			ntn[country].tgold -= cost;

--- 354,361 -----
  		if((nvynum>=0)&&(nvynum<MAXNAVY)) {
  			clear_bottom(0);
  			NCREW += (wnumber+mnumber) * SHIPCREW;
+ 			mvprintw(LINES-4,0,"constructing %hd warships and %hd merchants (crew now %d)",wnumber,mnumber,NCREW);
+ 
  			sct[XREAL][YREAL].people -= (wnumber+mnumber)*SHIPCREW;
  
  			ntn[country].tgold -= cost;
***************
*** 365,370
  			NWAR+=wnumber;
  			NMER+=mnumber;
  			NMOVE=0;
  			NADJSHP;
  			NADJLOC;
  			NADJMOV;

--- 365,372 -----
  			NWAR+=wnumber;
  			NMER+=mnumber;
  			NMOVE=0;
+ 			SADJCIV;
+ 			NADJCRW;
  			NADJSHP;
  			NADJLOC;
  			NADJMOV;
*** oldmain.c	Fri Jun 17 09:40:18 1988
--- main.c	Fri Jun 17 09:41:05 1988
***************
*** 679,686
  				/*print a navy*/
  				mvaddch((nfound%5)*2,COLS-21,'>');
  				if(selector==(nfound%5)*2) standout();
! 				mvprintw((nfound%5)*2,COLS-20,"navy %d: move %d",nvynum,NMOVE);
! 				mvprintw((nfound%5)*2+1,COLS-20," war:%d mer:%d",NWAR,NMER);
  				standend();
  			}
  			nfound++;

--- 679,686 -----
  				/*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++;
*** oldnpc.c	Fri Jun 17 09:40:08 1988
--- npc.c	Fri Jun 17 09:41:05 1988
***************
*** 254,259
  	}
  	ntn[country].tmil -= militia;
  
  	/*make sure enough men in army 0 -- garrison duty in capitol*/
  	armynum=0;
  	ASTAT=GARRISON;

--- 254,262 -----
  	}
  	ntn[country].tmil -= militia;
  
+ 	for(armynum=1;armynum<MAXARM;armynum++)
+ 	if((ASOLD>0)&&(ATYPE==A_INFANTRY)) ASTAT = DEFEND;
+ 
  	/*make sure enough men in army 0 -- garrison duty in capitol*/
  	armynum=0;
  	ASTAT=GARRISON;
***************
*** 441,447
  				&&(i!=armynum)&&(free==0)){
  					free=1;
  					ntn[country].arm[i].sold += ASOLD;
- 					ntn[country].arm[i].unittyp=A_INFANTRY;
  					ASOLD=0;
  				}
  			}

--- 444,449 -----
  				&&(i!=armynum)&&(free==0)){
  					free=1;
  					ntn[country].arm[i].sold += ASOLD;
  					ASOLD=0;
  				}
  			}
***************
*** 485,491
  		}
  		if(free==FALSE) {	 /* draft a new militia army */
  			for(armynum=0;armynum<MAXARM;armynum++) if(ASOLD==0){
- 				ATYPE=A_MILITIA;
  				AXLOC=x;
  				AYLOC=y;
  				free=TRUE;

--- 487,492 -----
  		}
  		if(free==FALSE) {	 /* draft a new militia army */
  			for(armynum=0;armynum<MAXARM;armynum++) if(ASOLD==0){
  				AXLOC=x;
  				AYLOC=y;
  				free=TRUE;
***************
*** 506,511
  			}
  			}
  			ASOLD+=ideal;
  			ASTAT=GARRISON;
  #ifdef DEBUG
  		if(ATYPE!=A_MILITIA) printf("ERROR - NOT MILITIA\n");

--- 507,513 -----
  			}
  			}
  			ASOLD+=ideal;
+ 			ATYPE=A_MILITIA;
  			ASTAT=GARRISON;
  #ifdef DEBUG
  		printf("\tadding %d troops to %s army %d (now %d men - populace %d)\n",ideal,unittype[ATYPE],armynum,ASOLD,sct[x][y].people);
***************
*** 508,514
  			ASOLD+=ideal;
  			ASTAT=GARRISON;
  #ifdef DEBUG
- 		if(ATYPE!=A_MILITIA) printf("ERROR - NOT MILITIA\n");
  		printf("\tadding %d troops to %s army %d (now %d men - populace %d)\n",ideal,unittype[ATYPE],armynum,ASOLD,sct[x][y].people);
  #endif DEBUG
  		}

--- 510,515 -----
  			ATYPE=A_MILITIA;
  			ASTAT=GARRISON;
  #ifdef DEBUG
  		printf("\tadding %d troops to %s army %d (now %d men - populace %d)\n",ideal,unittype[ATYPE],armynum,ASOLD,sct[x][y].people);
  #endif DEBUG
  		}
*** olddata.h	Fri Jun 17 09:40:13 1988
--- data.h	Fri Jun 17 09:41:05 1988
***************
*** 252,257
  #define	XALOC		4
  #define	XNLOC		5
  #define	XNASHP		6
  #define	XECNAME		8
  #define	XECPAS		9
  #define EDSPL		10

--- 252,258 -----
  #define	XALOC		4
  #define	XNLOC		5
  #define	XNASHP		6
+ #define	XNACREW		7
  #define	XECNAME		8
  #define	XECPAS		9
  #define EDSPL		10
***************
*** 276,281
  #define	I_DPLUS fprintf(fexe,"INC_DPLUS \t%d \t%hd \t0 \t0 \t0 \t%s\n",INCDPLUS,country,"null")
  #define	AADJSTAT fprintf(fexe,"A_STAT \t%d \t%hd \t%d \t%d \t0 \t%s\n",XASTAT,country,armynum,ntn[country].arm[armynum].stat,"null")
  #define	AADJMEN	fprintf(fexe,"L_ADJMEN \t%d \t%hd \t%d \t%d \t%d \t%s\n",XAMEN ,country,armynum,ASOLD,ATYPE,"null")
  #define	NADJSHP	fprintf(fexe,"N_ASHP \t%d \t%hd \t%d \t%d \t%d \t%s\n",XNASHP ,country,nvynum,ntn[country].nvy[nvynum].merchant,ntn[country].nvy[nvynum].warships,"null" )
  #define	AADJLOC	fprintf(fexe,"A_LOC \t%d \t%hd \t%d \t%d \t%d \t%s\n",XALOC ,country,armynum,ntn[country].arm[armynum].xloc,ntn[country].arm[armynum].yloc,"null")
  #define	NADJLOC	fprintf(fexe,"N_LOC \t%d \t%hd \t%d \t%d \t%d \t%s\n",XNLOC ,country,nvynum,ntn[country].nvy[nvynum].xloc,ntn[country].nvy[nvynum].yloc ,"null")

--- 277,283 -----
  #define	I_DPLUS fprintf(fexe,"INC_DPLUS \t%d \t%hd \t0 \t0 \t0 \t%s\n",INCDPLUS,country,"null")
  #define	AADJSTAT fprintf(fexe,"A_STAT \t%d \t%hd \t%d \t%d \t0 \t%s\n",XASTAT,country,armynum,ntn[country].arm[armynum].stat,"null")
  #define	AADJMEN	fprintf(fexe,"L_ADJMEN \t%d \t%hd \t%d \t%d \t%d \t%s\n",XAMEN ,country,armynum,ASOLD,ATYPE,"null")
+ #define	NADJCRW	fprintf(fexe,"N_ASHP \t%d \t%hd \t%d \t%d \t%d \t%s\n",XNACREW,country,nvynum,ntn[country].nvy[nvynum].crew,ntn[country].nvy[nvynum].armynum,"null" )
  #define	NADJSHP	fprintf(fexe,"N_ASHP \t%d \t%hd \t%d \t%d \t%d \t%s\n",XNASHP ,country,nvynum,ntn[country].nvy[nvynum].merchant,ntn[country].nvy[nvynum].warships,"null" )
  #define	AADJLOC	fprintf(fexe,"A_LOC \t%d \t%hd \t%d \t%d \t%d \t%s\n",XALOC ,country,armynum,ntn[country].arm[armynum].xloc,ntn[country].arm[armynum].yloc,"null")
  #define	NADJLOC	fprintf(fexe,"N_LOC \t%d \t%hd \t%d \t%d \t%d \t%s\n",XNLOC ,country,nvynum,ntn[country].nvy[nvynum].xloc,ntn[country].nvy[nvynum].yloc ,"null")