[comp.sources.games.bugs] conquer version 3 - patch number 1

smile@homxc.UUCP (E.BARLOW) (06/17/88)

Hi again... Conquer version 3 was just posted to the world.  Have a small
patch below that I decided to post now as it requires recompiliation of the
whole code.  Lots of new features in the new code (magical monsters, new
magic powers...).  Hope you have fun with it.

As with previous versions, I dont know where discussion of the game should
go, so I am cross posting to rec.games.empire (after all, conquer is kind
of like empire).  Hope the empire purists dont get too annoyed.

If you want to be on a mailing list, send your email address to 
{ihnp4,mtune}!homxc!smile.

Enjoy
The Ed

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
*** 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")