[comp.sources.bugs] Conquest bugs - the saga continues...

saponara@batcomputer.tn.cornell.edu (John Saponara) (11/12/87)

References:


BUG REPORT FOR CONQUEST:			Nov 10, 1987

On lines 151-156 in combat.c it reads:
				}
!				unit[count]=armynum ;
				owner[count]=country;
				count++;
			}
			if(valid==1) navalcbt();
This should change to:
				}
!				unit[count]=nvynum ;
				owner[count]=country;
				count++;
			}
			if(valid==1) navalcbt();
----------------------------------------------------

CONQUEST BUGS, #2			Eric Haines

Error on line 594 of reports.c:
Fleets could not be split if there were not both warships and merchants in a
fleet.  The old code:
				scanw("%hd",&mships);
				noecho();
!				if((wships<NWAR)&&(mships<NMER)){
					NWAR-=wships;
					NMER-=mships;
Should be:
				scanw("%hd",&mships);
				noecho();
!				if((wships<=NWAR)&&(mships<=NMER)){
					NWAR-=wships;
					NMER-=mships;
-----------------------------------------------------------------------------

move.c on line 121:
"TOO MANY PEOPLE" error given when trying to load a boat, when in fact the boat
could hold exactly that many people.  Old code:
			refresh();
			scanw("%d",&ctransport);
!			if(ctransport>0&&ctransport<=sct[XREAL][YREAL].people&&(ctransport<capacity)){
				startx=XREAL;
				starty=YREAL;
fixed code:
			refresh();
			scanw("%d",&ctransport);
!			if(ctransport>0&&ctransport<=sct[XREAL][YREAL].people&&(ctransport<=capacity)){
				startx=XREAL;
				starty=YREAL;
-----------------------------------------------------------------------------
main.c line 216:
When the cursor is in the 0 row or column bad things happen - control-L doesn't
work, for example.  The old code:
	while (done==0)
	{
		/* check if cursor is out of bounds*/
!		if((xcurs<1)||(ycurs<1)||(xcurs>=(COLS-21)/2)||((ycurs>=LINES-5))||((XREAL)>=MAPX)||((YREAL)>=MAPY)) offmap();

		/*update map*/

the fixed code:
	while (done==0)
	{
		/* check if cursor is out of bounds*/
!		if((xcurs<0)||(ycurs<0)||(xcurs>=(COLS-21)/2)||((ycurs>=LINES-5))||((XREAL)>=MAPX)||((YREAL)>=MAPY)) offmap();

		/*update map*/
-----------------------------------------------------------------------------
move.c, line 295:
Every time an army with location x = 0 or y = 0 is moved the screen is updated.
The old code:
		/*if moved and not done*/
		if((valid==1)&&(done==0)){
			/*check if offmap and correct*/
!			if((xcurs<1)||(ycurs<1)||(xcurs>=(COLS-21)/2)||((ycurs>=LINES-5))||((XREAL)>=MAPX)||((YREAL)>=MAPY)) {
				clear();
				offmap();
The fixed code:
		/*if moved and not done*/
		if((valid==1)&&(done==0)){
			/*check if offmap and correct*/
!			if((xcurs<0)||(ycurs<0)||(xcurs>=(COLS-21)/2)||((ycurs>=LINES-5))||((XREAL)>=MAPX)||((YREAL)>=MAPY)) {
				clear();
				offmap();
-----------------------------------------------------------------------------

That's it for now,

Eric