[comp.sources.games] v06i084: conquer4 - middle earth multi-player game

billr@saab.CNA.TEK.COM (Bill Randle) (06/24/89)

Submitted-by: adb@bu-it.bu.edu (Adam Bryant)
Posting-number: Volume 6, Issue 84
Archive-name: conquer4/Part02
Superseeds: conquer3; Volume 4, Issue 42-49



#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of archive 2 (of 14)."
# Contents:  extcmds.c notes.v4
# Wrapped by billr@saab on Thu Jun 15 15:20:09 1989
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'extcmds.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'extcmds.c'\"
else
echo shar: Extracting \"'extcmds.c'\" \(8668 characters\)
sed "s/^X//" >'extcmds.c' <<'END_OF_FILE'
X/*
X* additions made in tut.fi (winter 1987 and spring 1988)
X* for more information ask from mta@tut.fi or esc@tut.fi
X*/
X
X/* THESE COMMANDS are neat and I have used them throughout my code. 
X			- The Ed */
X
X/* ext_cmd()			run extended commands	*/
X/* clear_bottom(i)		clear bottom min(i,4) lines of the map */
X/* errormsg(str)		print error message to bottom line */
X/* splitarmy(army)		split ? men from army */
X/* reducearmy(army,men)		subtract men from army */
X/* change_status(army,stat)	change army stat to integer status */
X/* combinearmies(army1,army2)	add army2 to army1 */
X
X#include <stdio.h>
X#include "header.h"
X#include "data.h"
X
Xextern FILE *fexe;
Xextern short selector;
Xextern short country;
Xextern short xcurs, ycurs, xoffset, yoffset;
X
Xvoid
Xext_cmd(armie)
Xint	armie;
X{
X	int stat=0,armynum,army2,men;
X
X	clear_bottom(0);
X
X	if( armie == -1 ) armynum = getselunit();
X	else armynum=armie;
X
X	mvaddstr(LINES-2, 0,
X	" (+) combine, (-) split n men, (/) divide by 2, (G)roup");
X	mvaddstr(LINES-3, 0,
X	" (a)ttack, (d)efend, (s)cout, (m)arch, (g)arrison");
X	if(fort_val(&sct[P_AXLOC][P_AYLOC]) > 0) {
X		if (sct[P_AXLOC][P_AYLOC].owner==country) addstr(", (S)ortie");
X		else addstr(", (S)iege");
X		if (P_ATYPE>=MINLEADER && P_ATYPE<MINMONSTER &&
X		ISCITY(sct[P_AXLOC][P_AYLOC].designation)) addstr(", (R)ule");
X	}
X	mvprintw(LINES-4, 0, "Extended command:");
X	refresh();
X
X	switch(getch()) {
X	case '-':		/* split army */
X		splitarmy(armynum);
X		break;
X	case '/':		/* divide army */
X		men = P_ASOLD/2;
X		reducearmy(armynum,men);
X		break;
X	case '+':		/* combine armies */
X		selector +=2;
X		army2 = getselunit();
X		selector -=2;
X		combinearmies(armynum,army2);
X		break;
X	case 'G':
X		addgroup(armynum);
X		break;
X	case 'a': if(stat==0) stat=ATTACK;
X	case 'd': if(stat==0) stat=DEFEND;
X	case 'm': if(stat==0) stat=MARCH;
X	case 's': if(stat==0) stat=SCOUT;
X	case 'g': if(stat==0) stat=GARRISON;
X	case 'R': if(stat==0) stat=RULE;
X	case 'S':
X		if(stat==0) {
X			if(sct[P_AXLOC][P_AYLOC].owner==country) stat=SORTIE;
X			else stat=SIEGE;
X		}
X		change_status(armynum,stat);
X		break;
X	default:		/* unimplemented? */
X		errormsg("Unimplemented extended command");
X	}
X	makebottom();
X	refresh();
X}
X
Xvoid
Xcombinearmies(armynum,army2)
Xint armynum, army2;
X{
X	if (armynum < 0 || armynum >= MAXARM ||
X		army2 < 0 || army2 >= MAXARM ||
X		armynum == army2 ||
X#ifdef TRADE
X		P_ASTAT == TRADED ||
X		curntn->arm[army2].stat == TRADED ||
X#endif TRADE
X		P_ASTAT == FLIGHT ||
X		curntn->arm[army2].stat == FLIGHT ||
X		P_ASTAT == MAGATT ||
X		curntn->arm[army2].stat == MAGATT ||
X		P_ASTAT == MAGDEF ||
X		curntn->arm[army2].stat == MAGDEF ||
X		P_ASTAT == SCOUT ||
X		curntn->arm[army2].stat == SCOUT ||
X		P_ASTAT == ONBOARD ||
X		curntn->arm[army2].stat == ONBOARD ||
X		curntn->arm[army2].stat == SIEGE ||    /* may not jump out  */
X		curntn->arm[army2].stat == SORTIE ||   /* of these statuses */
X		P_ATYPE >= MINLEADER ||
X		P_ATYPE!=curntn->arm[army2].unittyp) {
X			errormsg("Selected armies not legal");
X			return;
X	}
X	if((curntn->arm[army2].xloc!=P_AXLOC)
X	||(curntn->arm[army2].yloc!=P_AYLOC)) {
X		errormsg("Selected armies not together");
X		return;
X	}
X	P_ASOLD += curntn->arm[army2].sold;
X	curntn->arm[army2].sold = 0;
X	P_AMOVE=min(P_AMOVE,curntn->arm[army2].smove);
X	AADJMEN;
X	AADJMOV;
X	if (P_ASTAT>NUMSTATUS) {
X		curntn->arm[P_ASTAT-NUMSTATUS].smove=P_AMOVE;
X		armynum = P_ASTAT-NUMSTATUS;
X		AADJMOV;
X	}
X	armynum = army2;
X	AADJMEN;
X}
X
Xvoid
Xchange_status(armynum,new_stat)
Xint armynum,new_stat;
X{
X	int	i;
X	if(armynum<0 || armynum >= MAXARM || P_ASTAT==SCOUT ||
X		P_ASTAT==TRADED || P_ASTAT==ONBOARD || P_ASTAT==SORTIE){
X		errormsg("Can't change status on that army");
X		return;
X	}
X	if( P_ATYPE == A_MILITIA && new_stat!=MILITIA ) {
X		errormsg("Militia is all you get");
X		return;
X	}
X	if( P_ATYPE == A_ZOMBIE && new_stat==MARCH ) {
X		errormsg("Duh?  Your Zombies just lumber about.");
X		return;
X	}
X	if(P_ASTAT == SIEGED && new_stat != SORTIE && new_stat != RULE) {
X		errormsg("Sieged troops may only switch to sortie");
X		return;
X	}
X	if(P_ASTAT == new_stat) {
X		errormsg("Uh, sir.  Aren't we doing that already?");
X		return;
X	}
X	/* eliminate half starting movement if start out on march */
X	if( P_ASTAT==MARCH && new_stat!=MARCH ) {
X		if(P_AMOVE<(curntn->maxmove * *(unitmove+(P_ATYPE%UTYPE)))/5){
X			errormsg("That troop has gone too far to stop marching");
X			return;
X		}
X		P_AMOVE-=(curntn->maxmove * *(unitmove+(P_ATYPE%UTYPE)))/5;
X		AADJMOV;
X	}
X	if(new_stat == SCOUT) {
X		if(( P_ATYPE != A_SCOUT )&&( P_ASOLD >= 25)) {
X			errormsg("Need less than 25 men to scout");
X			return;
X		} else {
X			P_ATYPE=A_SCOUT;
X			AADJMEN;
X		}
X	}
X	if(P_ASTAT == GENERAL ){
X		i=armynum;
X		for(armynum=0;armynum<MAXARM;armynum++){
X			if(( P_ASOLD>0) && (P_ASTAT==i+NUMSTATUS)){
X				P_ASTAT = ATTACK;
X				AADJSTAT;
X			}
X		}
X		armynum=i;
X	}
X	if(new_stat == GARRISON) {
X		if((sct[P_AXLOC][P_AYLOC].owner!=country)
X		||(fort_val(&sct[P_AXLOC][P_AYLOC])==0)) {
X			errormsg("Just how do you want to garrison that?");
X			return;
X		}
X	} else if(new_stat == SORTIE) {
X		if((sct[P_AXLOC][P_AYLOC].owner!=country)
X		||(fort_val(&sct[P_AXLOC][P_AYLOC])==0)) {
X			errormsg("Hmmm... How do you figure to sortie from there?");
X			return;
X		}
X	} else if(new_stat == SIEGE) {
X		if((sct[P_AXLOC][P_AYLOC].owner==country)
X		||(fort_val(&sct[P_AXLOC][P_AYLOC])==0)) {
X			errormsg("You want to lay seige to this??");
X			return;
X		}
X	} else if(new_stat == RULE) {
X		if((sct[P_AXLOC][P_AYLOC].owner!=country)
X		||(!ISCITY(sct[P_AXLOC][P_AYLOC].designation))
X		||(P_ATYPE<MINLEADER)
X		||(P_ATYPE>=MINMONSTER)) {
X			errormsg("Sorry, but you can't rule in that sector");
X			return;
X		}
X	}
X
X	/* location dependent statuses make armies stay in place */
X	if((new_stat==RULE)||(new_stat==SORTIE)
X	||(new_stat==SIEGE)||(new_stat==GARRISON)) {
X		P_AMOVE=0;
X		AADJMOV;
X	}
X	P_ASTAT = new_stat;
X	AADJSTAT;
X	if( P_AMOVE>0 ) P_AMOVE--;
X	AADJMOV;
X}
X
Xvoid
Xreducearmy(armynum,men)
Xint armynum,men;
X{
X	int army2;
X	int oldx, oldy, army;
X
X	if(P_ATYPE>=MINMONSTER){
X		errormsg("sorry -- army is monster");
X		return;
X	}
X	if(P_ATYPE>=MINLEADER){
X		errormsg("sorry -- army is leader");
X		return;
X	}
X#ifdef TRADE
X	if(men<25 || armynum < 0 || armynum >= MAXARM || P_ASOLD < men+25 || P_ASTAT==ONBOARD || P_ASTAT==TRADED) {
X#else
X	if(men<25 || armynum < 0 || armynum >= MAXARM || P_ASOLD < men+25 || P_ASTAT==ONBOARD) {
X#endif TRADE
X		errormsg("Selected army too small or illegal");
X		return;
X	}
X
X	if(P_ASOLD < men) {
X		errormsg("Too many men to split from army");
X		return;
X	}
X
X	oldx=P_AXLOC;
X	oldy=P_AYLOC;
X	army2=armynum;
X
X	armynum=(-1);
X	for(army=0;army<MAXARM;army++)
X		if(curntn->arm[army].sold==0){
X			if(armynum==(-1)) armynum=army;
X		}
X	/*overflow*/
X	if(armynum==(-1)) {
X		errormsg("TOO MANY ARMIES");
X		return;
X	} else {
X		P_AMOVE=curntn->arm[army2].smove;
X		P_ATYPE=curntn->arm[army2].unittyp;
X		P_ASTAT=curntn->arm[army2].stat;
X		P_AXLOC=oldx;
X		P_AYLOC=oldy;
X		P_ASOLD=men;
X		curntn->arm[army2].sold-=P_ASOLD;
X		AADJSTAT;
X		AADJMEN;
X		AADJLOC;
X		AADJMOV;
X		armynum=army2;
X		AADJMEN;
X	}
X}
X
Xvoid
Xsplitarmy(armynum)
Xint armynum;
X{
X	int men;
X	clear_bottom(2);
X	mvaddstr(LINES-2, 0, "How many men to split? ");
X	refresh();
X	men = get_number();
X	reducearmy(armynum,men);
X}
X
Xvoid
Xerrormsg(str)
Xchar *str;
X{
X	mvaddstr(LINES-1, 0, str);
X	clrtoeol();
X	mvaddstr(LINES-1, 60, "PRESS ANY KEY");
X	beep();
X	refresh();
X	getch();
X}
X
Xvoid
Xclear_bottom(i)
Xint i;
X{
X	if(i==0) i=4;
X	for (; i>0 ; i--) {
X		move( LINES-i, 0);
X		clrtoeol();
X	}
X}
X
X/* add army to a group */
Xvoid
Xaddgroup(armynum)
Xint	armynum;
X{
X	int	moverate,group;
X
X	if((P_ATYPE>=MINLEADER)&&(P_ATYPE<MINMONSTER)){
X		errormsg("Can't add leader to group");
X		return;
X	}
X	if(P_ATYPE==A_ZOMBIE) {
X		errormsg("Your Zombies just don't seem inspired");
X		return;
X	}
X	if(armynum<0 || armynum >= MAXARM || P_ASTAT==SCOUT ||
X		P_ASTAT==TRADED || P_ASTAT==ONBOARD || P_ATYPE==A_MILITIA ){
X		errormsg("Selected army not groupable");
X		return;
X	}
X	mvaddstr(LINES-4,0,"enter a valid leader unit/army group id: ");
X	refresh();
X	group = get_number();
X	if( group < 0 || group > MAXARM || curntn->arm[group].sold <=0){
X		errormsg("invalid unit number");
X		return;
X	}
X	if((P_AXLOC != curntn->arm[group].xloc)
X	&&(P_AXLOC != curntn->arm[group].xloc)){
X		errormsg("units are not in same sector");
X		return;
X	}
X	if((curntn->arm[group].unittyp <MINLEADER)
X	||( curntn->arm[group].unittyp >=MINMONSTER)){
X		errormsg("Group leader not a leader unit");
X		return;
X	} else if(curntn->arm[group].stat==ONBOARD){
X		errormsg("Cannot group onto a transport");
X		return;
X	}
X
X	P_ASTAT=group+NUMSTATUS;
X	moverate = P_AMOVE;
X	AADJSTAT;
X	armynum = group;
X	P_ASTAT=GENERAL;
X	AADJSTAT;
X	if( P_AMOVE > moverate ){
X		P_AMOVE = moverate;
X		AADJMOV;
X	}
X}
END_OF_FILE
if test 8668 -ne `wc -c <'extcmds.c'`; then
    echo shar: \"'extcmds.c'\" unpacked with wrong size!
fi
# end of 'extcmds.c'
fi
if test -f 'notes.v4' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'notes.v4'\"
else
echo shar: Extracting \"'notes.v4'\" \(45675 characters\)
sed "s/^X//" >'notes.v4' <<'END_OF_FILE'
X------------------------------------------------------------------------------
X| THIS FILE CONTAINS RELEASE NOTES FOR CONQUER V4.0 			     |
X| It is broken into 3 sections.  Section 1 reflects changes from v3.5 to v4. |
X| Section 2 reflects bugs in v4.0.  Section 3 reflects. Future ideas.        |
X------------------------------------------------------------------------------
X
X-------------------------------------------------------------------------
X| 1.0 POSSIBLE SHORT-TERM ENHANCEMENTS/FIXES FOR CONQUER V4		|
X-------------------------------------------------------------------------
Xo fix the helpfiles to reflect current changes in game as noted later in this
X	file.
Xo there is some overflow somewhere, which creates a huge amount of gold
X	sometimes when your treasury is negative...
Xo wizard/others should get an additional bonus for knowledge (extra spell pts?)
Xo work on reputation and other nation attributes... they might not work as
X	advertised
Xo adjust spew.c and write new rules files for
X	1) random npc mail
X	2) npc delcarations of war
Xo Treaty war delcarations only last one turn ????  It seems to revert sometimes.
Xo reward for killing monsters 10K Gold and 1K Jewels per 50 men-equivalent.
Xo implement sacking of capitol instead of destruction of nation.  This
X	should award all iron, gold and jewels to the successor, but leave
X	food (or a good portion of it) with the nation owner.  This should
X	be implemented on all nations, including pcs.
Xo implement new method for detection of captured lands.  if any allies of
X	sector owner in sector, prevent taking of sector;  otherwise, award
X	sector to nation with more troops if troops are twice the remaining
X	troops in sector.
Xo provide a way for displaying monster nations properly... must also assure
X	accurate information in tmil and tciv.
X--------------------------------------------------------------------------
X| 2) The Following are Good Ideas, But are not going to be done soon	 |
X--------------------------------------------------------------------------
Xo Ruling leaders can ruthlesly supress revolts... 
X
X	Gorbag (leader 1) ruthlessly kill off the revolt.
X	1000 civilian rebel leaders and their wives and children exterminated.
X	Gorbag get experience for stopping revolt.
X
Xo Ruling leaders work to the benefit of the nation.  Each leader in ruling
X  in a city will have a 50% (+5% for added leader) chance of stopping a bad 
X  event.
Xo All units should have loyalty ratings, and can revolt.  
Xo Newlogin setup should be revamped to use curses display.  Better control.
Xo Revamp user help interface to allow searching through help files.
Xo leader experience.  mail to nation if happen.  This has untold impacts on
X	combat... and i dont want to touch it yet. sorry.
Xo You should not be able to use captured sectors right away. 
Xo Religions. Evil nations could serve Baal by sacrificing people 
Xo Add Halfling, Gnome, Hobgoblin npc nations.  Would be under elf restrictions
X  but would print differently.
Xo Add expertise level for players.  Set yourself when YOU LOG IN.
X		novice	      +5 points at beginning
X		learner	      	
X		skilled	
X		expert	      10% chance of met NPC going to war per turn
X		guru	      only get 30% of civilians in captured sctr.
Xo Some npcs should have insane rulers
Xo nomad generator (from nations file - place in given turn)  This will simulate
X	random attack by nomad nations.  nomad nations should have teritorial
X	objectives (a hex id), and will move as straight as possible towards
X	that objective, blowing anybody in their path away.  Nomad NATIONS
X	will exist, and they will never designatie to towns/cities and can
X	never be destroyed.   Nomads should have civilians, but their race
X	is nomad so these civilians can not be captured. 
Xo Diplomatic ability could be an atribute of leaders.
X	Perhaps a player could have several different types of leaders. 
X	Minor ones (appointees, and real ones).  Leaders could have stats
X	as GENERAL/LIEUTENANT, AMBASADOR/EMMISARIES, RULER/SPY, WIZARD/MAGI
X	a group leader is a general/lieutenant.  Diplomats can be
X	use against any nation, and they add
X	to chance of friendliness.  They are same cost... as spys!  
X	can disband minor leaders... and can recruit them as you would spys.
X	you can use diplomat/ambassador/emmisary/courier to alter diplomacy 
X	with nations.  They might be killed by the enemy nation if war is
X	declared or on a random chance (and your reputation is reduced if you
X	dont declare war back)... might be ambassadors give +20% on diplomacy
X	emmisaries +5%.  Must have an ambasador to get a treaty signed.
Xo ADDITIONAL SPELLS THAT COULD BE CAST
XSpell Id	Description					    Spell Pts
X1		Kill 50% of civilians in non city sector		10
X2		Kill all civilians in non city sector			20
X3		Kill 50% of civilians in city sector			20
X4		Kill all civilians in city sector			36
X5		Kill all military in any sector				40
X6		Kill 50% of military in any sector			15
X7		Freeze movement of 1 npc nation for turn		36
X9		Slow movement of 1 npc nation for turn (-2 move) 	7
X10		Slow movement of 1 pc nation for turn (-2 move)		10
X11		Strengthen fort walls 10% (any sector)			4
X12		Destroy fort walls 5% (any sector)			8
X13		Destroy forts walls (any sector)			7
X14		Summon undead army (VAMPIRE ONLY, 500 skeletons) 	8
X15		Summon undead legion (VAMPIRE ONLY, 1500 skeletons)	13
X16		Warm Permanently  (+1 vegitation to sector)		12
X17		Freeze Permanently (-1 vegitation to sector)		12
X18		Teleport one army (up to 100 men)			6
X19		Teleport one army (up to 1000 men)			10
X20		Teleport one army (any # men)				14
X21		Transmute iron to jewels (per 1000)			1
X21		Transmute gold to jewels (per 1000)			3
X21		Transmute gold to iron (per 1000)			3
X22		Cause fear (route 1 oposing army to home capitol)	2
X
Xo Rewrite weather() routine (randevent.c) and make more seasonal effects.
Xo Possible idea for future designations:
X	have lower order bits represent number ( 0 - 2*n-1 ) for 2*n-1
X	possible MAJOR designations.  The remaining 16-n bits are used
X        for MINOR designations. This is an increase in size.  Worth it?
XMAJOR DESIGNATIONS:				<new ones>
X	capitol		mine
X	city		goldmine
X	town		stockade
X	fort		special
X	nodesig		farm
X	ruin		devastated		[total bits: 4 bits]
XMINOR DESIGNATIONS:	[ THESE REPRESENT PRODUCTS OF THE PLACE ]
X	church		university		harbor
X	roads		blacksmith		traded
X	mill		granary			
X	lumberyard	trading post
X						seiged
X	[total bits: 12 bits]			[overal bits: 16 bits]
Xo HAVE ONLY PARTIALLY IMPLEMENT TREATIES.  THEY SHOULD END AT END OF TURN IF
X BOTH SIDES DONT HAVE.  NPC's should be given an option to accept treaty.
X PC's should get mail - forcing them to make a decision then and there.
X	p_requesttreaty(), n_requesttreaty(), breaktreaty()
X	Offer treaty, Accept Treaty... Bribe only one level per turn.  Variable
X	bribe costs.
Xo spies should give you more details than normal troops
Xo scouts should have a chance of being captured when going into occupied areas
Xo experience for leaders
Xo names for leaders, cities, regions
Xo Modem wars - remote login supported
Xo Scenarios  - napoleonic, roman, middle earth
Xo Clocked Turns - updates when clock runs out
Xo Screen Front End
Xo Auto Generated Graphics Front End
Xo Reduce Sector Datacount by improving looping and going to more pointers
Xo Add nomad objectives - to capture their capx,capy.  Any nation that has
X	the right types tries to capture a given sector.
Xo Change trading to have an open market for prices (ie. Market price
X	of iron is 20 gold up from 18 last turn, (you can sell it for 10 
X	percent less).  
X
X-----------------------------------------------------------------
X| 3) Release notes for V4.0.  Changes from v3.5			|
X-----------------------------------------------------------------
X1) gave god NINJA power to see troops on the map
X2) fixed message bug (printed blanks).
X3) changed ONMAP to onmap(x,y) (in data.h). Used it several new places.
X4) fixed fact that i_people (being short) broke if you had too many people
X	by having i_people store 1/256th of the people in the sector.
X5) changed 'R' message when nation has no messages
X6) changed password not to echo
X7) changed 'Z' command to not redraw whole screen
X8) added absolute maximum people per sector
X9) changed trade.c
X10) fixed peasant rebellion bug
X11) changed 'Z' command
X13) conquer -s prints version & patchlevel: version number is now v3.patchlevel
X14) changed lrand48 to extern long
X15) turn is now displayed next to version number
X17) placed standend() in hilight... so random sectors are no longer lit
X18) modified help file code into 4 sections
X19) added fix to updcapture for randomly taken land.
X20) added fix so destroyer power only impacts in an update
X21) changed update procedure so it only tries each nation once (faster)
X22) Change combat: The rolls can go from -30 to 130. (I add 30 to
Xmake the calculations based on 0 to 160, and therefore easier)
Xremoved the "combat table" array and changed to a simple formula.
Xtake the roll from 0 to 100 and add the average attackers bonus and subtract
Xthe defenders average bonus. calculate for the losses based on a 1:1 battle.
X
X PAloss = (160 - roll) * MAXLOSS / 160
X PDloss = roll * MAXLOSS / 160
X
XWhere MAXLOSS is #defined as 60. The odds then increase the damage
Xto the weaker opponent by 10% per ratio.
X
Xif(odds>100) PDloss += odds / 10 - 10;
Xelse PAloss += 1000 / odds - 10;
X
XSo, a roll of 50 for two evenly matched armys will result in a 30%
Xloss for each army. (I found this a more reasonable method than your
Xproposal that each army lose 50%). And, an adjusted roll of -30 for
Xa battle with 2:1 odds will result in an attacker loss of 60% and a
Xdefender loss of 10%.
Xformulas over arrays will result
Xin % values that vary by 1% increments as opposed to 5 or 10 like the
Xarray system, and the percentages are much more in line with actual
Xbattle styles, ie, it would take luck and a large army to totally
Xerradicate a side with no losses. But, as this system is setup, an
Xarmy will be totally wiped out if the odds are 11:1. (most likely
Xwith odds a little lower since it would take great defense to obtain
Xthat)
X23) eliminated leading tabs from reports
X24) Forts are now damaged by combat
X25) Fix for catapult additions to combat
X26) Change mercenary code: 15% of disbanded become mercenaries. Mercenaries
X	have global average bonus based on disband type. Each nation can draft
X	#mercenaries/MAXNTN each turn, and every time an army is disbanded
X	15% of the troops will join the mercenaries
X27) keep backups of news files. Allow reading them.
X28) Added flight army status
X29) to summon a CENTAUR, need CAVALRY power.
X30) added new command called 'w'izardy where the following
X	spells are possible: summon (moved from magic board), flight (give
X	flight to a unit), enhance attack and enhance defense (enhance the
X	combat by 30% if attacking or defending respectively).
X31) fixed misdeclaration of fison (didn't matter much)
X32) made input of adjust army status quicker.
X33) makes sure that an UNMET nation isn't bribed.
X34) adjusted mail reader ( 'R' command ) to take longer than screen
X	length messages
X35) changed reading of helpfile to take place from DEFAULTDIR
X	changed checking of helpfile to just making sure it was installed in
X	DEFAULTDIR... no longer moves it into the current working directory.
X36) Change attractiveness ratios for civilians into #defines
X37) changed the army and navy reports so that it doesn't fill whole screen
X	for no armies or navies, errormsg in bottom.
X38) repro now on a yearly basis (ie divided everything by 4)
X39) made newlogin.c be insensitive to changes in values in newlogin.h
X40) allowed redesignation to devastated, stockades, castles, and ruins
X41) fixed bugs with gods removal of magic
X42) fixed display to avoid random characters shown in lower right of screen
X43) added standend() to makebottom so it will always be unhighlighted
X	[still need to find the loose standout()]
X44) separated out the "SUPER USER; WHAT NATION..." into a subroutine that
X	checks that the nation is valid and returns a 1 if it isn't
X45) altered the data structures for future enhancements; must look later
X46) adjusted the combat routines for navies; will upgrade with new
X	ship types later
X47) adjusted randomevents to fix bugs with peasant revolt
X48) adjusted randomevents to make selection of iron and gold mines random
X49) added check for users if the game is being updated
X50) added check for update if users are logged in. #ifdef RUNSTOP
X	not recommeded for use with automatic updates.
X51) fixed some problems with the help.txt1 documentation. Especially
X	since the & is used by sed as a command.
X52) made major changes to the Makefile; note that ln or ln -s will not
X	work properly on this system.
X53) added whatever ONMAP(x,y) calls I could find.
X54) fixed scrolling bug. Now scrolls one sector from edge.
X55) fixed misdefinition of WINTER, SPRING, SUMMER and FALL.
X56) fixed integer division bug in mercenary code; would lose a point
X	in attack and defense if entered values were less. Now it
X	will only recalculate to increase the attack or defense.
X57) changed requirements to take sector to be based on minimum of
X	75 and tciv/250.
X58) changed ntn[country] to curptr-> in many places.
X58) shortened code which reads in unit types from case statemtnt to for loop
X59) added leader units -> just like monsters only born.
X60) changed startup code for NPC's to use points from newlogin.h
X61) fixed combat code so that odds also effect %loss of side favored
X	by odds to decrease by %4 for each odds level.  Note that
X	there is a limit of roll/10 as a minimum for decrease.
X62) fixed bug in magic.c (#ifdef HIDLOC -> #ifdef HIDELOC)
X63) fixed bug in update.c resulting from non-assignment of curntn->.
X64) fixed bug in SEASON and PSEASON #defines (x%4 != (x)%4).
X65) accounted for integer division in reproduction calculation.
X66) made sure to exclude LEADER and MONSTER troops from vampire
X	calculations in combat.c.
X67) made sure that vampires collect dead NON-vampire men not dead vampire men.
X68) add dates to mail messages and battle reports.
X69) reduces fortification values due to change in combat; fort/town ->
X	10 + 5 * fort, and city -> 10+ 8 * fort.  Double for Architect;
X70) changed code to allow for multiple cities.
X71) added TURN to output of conquer -s option.
X72) added trade items of iron, jewels, and food available for gold put
X	up for sale by the game itself.
X73) set the fortification values to be #define in the header.h file
X74) added exotic trade goods.  added special sector designation.  changed
X	structures to accommodate national abilities.
X75) detoned leaders by a factor of 2.  reduced starting # by 1/3;
X76) changed screen layout for trade goods
X77) put conditional on "unable to take sector" message so only <MINLEADER.
X78) fixed spelling errors with tradegoods
X79) made lizard fortifications relative to gold value.
X80) made destroying a nation possible on 1st turn.
X81) added nation attributes.  
X82) added # leaders as a purchasable option at the beginning of the game.
X83) made move /=2 for normal units if leader more than communications/50 range
X84) added LATESTART bonus... if you start the game late
X85) made npc leaders/monsters move based on their soldiers in the sector
X86) added mail subroutines to send 1 line mail messages.  changed mail method.
X87) added #defines for npc activity level
X88) changed npc algorithm to go to war.  much less likely now if they have
X	a place to expand into.  Added mail to pc's when npc's go to war
X	with them.  NPC_2FREE... value in active is determinant.
X	+10% to hostility if differing races.
X89) lowered maintenance and enlistment costs of expensive army units...
X	they were too costly and were not effective.
X90) added ability to break jihad for a $cost
X91) documented diplomacy.  
X92) fixed bribery. adds correctly to enemy gold & has a 50% chance of working
X	CHANGED THIS 11/11 - variable chance of working & only in update.
X93) added storerate and eatrate to picture.
X94) made cities and capitols consistent (i think)
X95) moved stuff from bugs file to help.txtX file
X96) added #defines for a nations class
X97) changes sct.gold to sct.jewels to make things consistent.
X98) added random monsters... created at setup as barbarian units.  fixed update
X	of barbarians.  changed display of monsters.
X99) made initial status of npc nations vs anybody be close to neutral.
X100) fixed printf problems and floating point problems due to integer division
X	of reproduction, eatrate...
X101) changed vampire power -> now have zombie units.  changed democracy
X	eat rate.  made elite units require armor power.  made monster power
X	give you monsters each spring.
X102) redesignate as ? converts to appropriate trade good type.
X103) reordered the random events file
X104) black plague only effects your cities/towns/forts and capitol
X105) added npc and pc allignments.  changed diplomacy again.  added macros
X	for npc types.
X106) added (killed) in combat mail for leaders and monsters
X107) eliminated combat divisor.  added rand%11*rand%11 / 25 (average = 1)
X	multiplier to all combat losses.  NEED TO DOCUMENT THIS.
X108) eliminated bug that allowed bribing unmet nations
X109) eliminated printing of extraneous revolts and events.  added revolt
X	percent in case formulae are not adequate (PREVOLT).
X110) improved npc algorithm to attack cities towns and capitols - they
X	now only go in if armed to the teeth.  They now defend also based
X	on population.  npc nations now act more aggressively if you are
X	next to their capitol.  never defend in your own capitol.  
X110) can only be garrison in your own city/town/fort sector
X111) add -r<scenario> option to conqrun. This option allows you to
X	read in mapfile at create time.  It will read in as follows:     
X	scene.veg - vegetation, scene.ele - elevation, scene.nat - nation marks
X	Also permitted the addition of x,y locations to nations file.  
X	if -1, dont use, else place capitol there if not water.  The order
X	the files are read in is elevation, followed by veg, followed by
X	marks.  The only error detection is that veg must be ~ in ele ~
X	sectors, and mark must be ~ in ele ~ sectors.  NEED TO ADD READ
X	NATION MARKS STUFF!!!  NEED TO ALLOW CHANGING FROM NPC TO PC.
X112) made magic costs #defines.  modified rates so mines run out quicker.
X	make new magic dependent on both jewels and magic ability. 
X	changed healer power to religion power.  magic screens auto regen.
X113) Must be at war to enter sector. added errormsg in move.c.  prevented
X	npc nations from tresspassing too.
X114) added initial screen, fixed bug with cursor placement when starting as 
X	god/nomad...
X115) BIG BUG FIX - Some monsters would not fit in unsigned char... changed
X	divisor for unit type throughtout (to 75 from 100) this seems to
X	have fixed the problem.
X116) ARMY GROUPS.  All units in group move together.  Break out of group
X	if you move by yourself.  Will check this!  +20% to combat if in
X	group.  +2 move in group but all move at speed of slowest unit.
X	Moved leaders to low numbered units!!!
X117) put some error correction into execute() - cant take others land
X	like you used to be able to do. Added adjustable tax rate (0-20).
X	made spreadsheet() to taxes right
X118) made combat more bloody in cities.  loss increased 20%, so 40% loss
X	converts to 48% loss.
X119) increased leader birth rate.  decreased lizard repro to 8% per year, 
X	and nomad repro to 12% per year.
X120) PORTED TO MY EPSON PC...
X	FIXED UP MAKEWORLD
X	anybody can add nation if turn <= 5
X	added to makefile structure to make it redundant
X	tested & played with graphics & history routines. made directory.
X	played with new fractal algorithm
X121) Mercenaries should run away from battles 
X	1) if odds are worse than 2:1
X	2) 15% of the time
X  	for npc types.
X122) npc nations now efficiently utilize unit types.  fixed bug so that
X	npcs now get appropriate numbers of leaders.
X123) added checks to make sure report screens for army, navy and nations do
X	not print out a blank page.
X124) added check to make sure "Battle occurs, defender, attacker...."
X	does not overflow screen.
X125) added fix to allow newspaper function to access last paper (MAXNEWS)
X126) if you lose your main leader - you freeze your move for the turn 
X	works for npcs too (no armies move).  There is now a 30% chance per 
X	turn that you get your leader back per turn. NPC armies with 0
X	move cant move now (used to be only militia).
X127) added spy and scout unit types.  drafted on 1 or 2.  spys put in
X	particular nations capitol. removed magic roll. changed a bunch
X	of minor bugs. added status MILITIA.  changed printf for population
X	(IVXL... roman numerals).  must draft in multiples of 10 men (but
X	scout and spy units).  basically eliminated scout status. fixed
X	some printing stuff in makeside.  made npc types not use goods in
X	areas they cant use.
X128) made sure all returns from subroutines in GODMODE are performed correctly
X129) fixed bug in detection of lowercase/uppercase characters for
X	country mark.
X130) fixed highlighting of helpfile topic so leading spaces are dark.
X131) fixed killmagk routine so displayed magic numbers are correct.
X132) fixed up the help files so they were up to date and properly formatted.
X133) made number of pirates, etc. created more consistant with map size.
X134) changed naval code throughout... still have to fix loading and combat
X135) fixed loading and movement for ships
X136) fixed a bug which caused nations food to be multiplied by 100.
X137) switched ships around so that galleys hold armies and merchants
X	hold people... warships just fight (still not done, *sigh*)
X138) fixed bug which caused npc's to change all statuses (even TRADED)
X	to DEFEND.
X139) made sure that statuses like TRADED/ONBOARD remain.
X140) added attrition for naval transportation of civilians.
X141) improved npc redesignation algorithm.  Fixed food*=100 bug.  Fixed
X	tradegood not allowing redesignation bug.  Fixed random metals
X	and jewels showing up bug. Playtested some more.  Putzed around.
X	Changed several calculations for nation attributes.  Happiness.
X142) made it so that towns could no longer build heavy ships.
X143) made it so that only MARINE units could be unloading in unowned sectors.
X144) made corrections to man.page
X145) changed format for attack/defense bonus to %+4d%% so that +/- is right.
X146) fixed overflow chances in att_bonus routine
X147) changed wealth calculation to be based on percentage of positive wealth
X148) changed calculation for spoilrate and eatrate to match help screen.
X149) minepts too harshly treated... adjusted to allow any mining at all.
X150) made cities and capitols contain university if proper tradegood.
X151) fixed bug with tradegoods and DESFOOD sectors not working.
X152) made sure that armies with zero soldiers where not used in movement
X	calculations for groups.
X153) SCOUT status units no longer get "cannot take sector" message.
X154) made sure that HIDELOC was in effect for volcano eruptions
X155) fixed bug in print statement "30% die" should be "30%% die".
X156) fixed bug in pwrname array reference in randeven.c
X157) fixed bug which did not set militia status to MILITIA
X158) fixed modulus by zero bug for movement of ships
X159) adjusted 'r'edesignation command to only display possible designations
X160) added new help file for designations only
X161) if have destroyer, cant get dervish power
X	made light cavlry better than dragoons.  Made dragoons weaker and not
X	require cavalry power. allowed god to change sectors tradegoods.
X	allowed players to add themselves.
X162) reordered metals. 
X163) change orctake to only vs neutral+.  orctake now
X	takes 10 spell points, and if you fail, nation goes one spot more
X	hostile.  Major monster gives 2 spell pts per turn.  Average gives 1,
X	Minor gives 1/2. 
X164) added move mode for display purposes.  
X165) moved spot to change taxes. added inflation rate and charity as a 
X	percent of taxes.  inflation is 0-2% if tax rate is 10% about +1 
X	per tax rate increase. 
X	it will devalue your currency & lower your nations popularity
X166) changed random event method to be % chance per nation (modified)
X	tradegoods no longer modify eatrate, but now modify food value of
X	a sector.  changed tofood to take tradegoods into account.
X	added a few food trade goods.  eliminated a few magic ones
X167) made tradegoods, gold and metals hidden if wealth and mining
X	ability are too low.
X168) made sure retreat message is only displayed during actual retreat
X169) made sure report for new leader being made was correct
X170) added ability to toggle from PC to npc nation.  Added NPC nations
X	having classes (with associated abilities at start of game).
X171) fixed godmode display of mercenary information in file forms.c
X172) made sure dwarves cannot become wizards... dwarves are anti-magical.
X173) made sure that MINOR_MONSTERS/Orc nations could not get Infantry.
X174) fixed bug in god redesignation to allow normal designations.
X175) fixed bugs with NAMELTH in get_nname and scenario declaration.
X176) adjusted display of budget and production reports.
X177) adjusted wizardry to allow MI_MONST power to cast spells.
X178) changed formula for eatrate to prior eatrate/2 + tfood/5*tciv.
X179) made get_nname() void and fixed it to not overstep NAMELTH.
X180) made magics for classes cost same as purchased magic in making new nation.
X181) fixed armyrpt so it would not print out blank pages.
X182) fixed charity calculation and effect.
X183) fixed major bug in spreadsheet; would break out for all !tg_ok(),
X	including even farm designations.
X184) added alignment to 's'core display of nations. (not yet in conquer -s)
X185) added alignment to 'conquer -s' display.... (may need more touch up)
X186) changed cost of 'trader' and 'theocracy' for 2*NLMAGIC to 1*NLMAGIC
X	to make them more attractive.
X187) reduced MILITIA defense but gave them GARRISON protection for realism.
X188) FINISHED NAVAL COMBAT!!!!!  (debug time)
X189) fixed bug in SPY request for null spy name.
X190) fixed division by zero bug in fleetrpt join option.
X191) fixed other bugs in fleetrpt section.
X192) fixed bugs in naval combat... especially with battle tracking.
X193) fixed bugs in npc routines which unset TRADED or ON_BOARD status.
X194) made sure update destroys ships without crew.
X195) fixed many possible overflows on password entries.
X196) you can only get infantry units if that is your default unit type now.
X197) changed people distribution slightly (away from farms to cities).
X198) fixed problem with inflation rate.
X199) changed budget report to only show actual troops
X200) changed display options to remove (i)ron item.
X201) added hilight trade good sectors option
X202) added ability of people to want to move to non mine/city... sectors
X203) added npcs in army groups
X204) changed tax rates - added tax other
X205) eliminated charity multiplier - it is done wrong
X206) civilians to farms changed - was based on eatrate - it always thought
X	your nation was starving though
X207) road and special had the same names
X208) couldnt use any good with mine required - couldnt redecignate to mines 
X209) added some road stuff - two max per turn.  Cant des to mine/gold if
X	not enough metals in sector
X210) Changed hasseen to be dynamically allocated 
X211) Changed diplomacy screen so that it pages between 2 screens worth
X212) Raised max no of nations (I notice you've already done the bit about
Xhaving more nation marks).
X213) Added a trap for SIGTERM as well as SIGHUP. to stop cheating
X214) Set a umask in main.c if the game is running setuid. This is to
Xensure people can't access the data file etc 
X215) Fixed what seems to me to be a bug in mailing PCs when NPCs go to war
Xor whatever with them. 
X216) Changed the reading mail bit so that now pressing any key EXCEPT for
Xreturn saves the message. This was after complaints from people on noisy
Xmodem lines, where spurious characters made the messages flash past and
Xget lost. Also it makes the user interface a bit more consistent with
Xthe news reader, say.
X217) Added a facility for people to post messages to the news board. To do
Xthis they write a message to "news" which gets appended to the news
Xfile. These messages can then be read using the 'N' command. I think
Xthis is great fun.
X218) Added ability for the NPC's to mail players from time to time, based
Xon the "spew" program I told you about. If an NPC is HOSTILE or worse
Xtowards a player, then on a 25% chance it will send a random message to
Xthat player. These messages are composed using the "rules" file. This
Xfile is obviously open to amendment; at the moment it contains one or
Xtwo things specific to QMC and possibly the UK which you wouldn't want!
XA couple of example messages:
X
XWhat a paltry nation of street-cleaners you have! 
XYour puny peasants are only good at sleeping. 
XEven Dickie Davies could make a better job of controlling your nation! 
XIf I were you I'd give up. 
XEven Edwina Currie could make a better job of running your nation! 
XYour nation should be holding a free rock festival. 
XGo stick your private parts up a large purple elephant 
XWhat a useless nation of tiolet-cleaners you have! 
X
X219) Finally I have the "-z" option;
Xallows a player to ignore their lock file and play regardless
X(dangerous, I know, perhaps it should be an #ifdef). This is essential
Xfor us since we have people dotted all over the place using workstations
Xthat go down a lot.
X220) changed news reader... does not read blank pages!
X221) 	elimiated TRADEGOOD compiler option
X	changed attractiveness some more
X	takeover - must be at least met
X	Eliminate Orc-take if <HOSTILE or UNMET (for npc's too)
X	eliminated dwarven traders.
X222) removed highlighted blanks at end of nation names in forms.c.
X223) fixed bug with birth of monsters for MONSTER POWER nations.
X224) made it so that only troops explicitely attacking will attack.
X225) fixed bug with display of treaties.
X226) made it so that unmet nations could not have status changed. Must
X	meet with nation first.  This prevents trading between unknown
X	nations and moving into a nation too quickly.
X227) fixed up newspaper function for better display and no blank pages.
X228) fixed old bug (see #125) about not being able to read newspaper MAXNEWS.
X229) fixed bug so that mail is sent to owners of scaredy-cat mercs and orcs.
X230) made it so that people are less attracted to ROAD, NODESIG and DEVASTATED.
X231) fixed bug with randevents (world.nations was always zero).
X232) added temp routine to move savages (what happened?? why was it gone??).
X233) fixed bug with having no cargo spaces available during load.
X234) fixed some bugs in trade.c; probably still buggy though.
X235) made it so that only SUMMON power allows summoning.
X236) minor mods to magic.c: for destroyer food<=6 is desert; #ifdef ordering.
X237) rewrote removemgk and added a magic remover to random events.
X238) changed the sub[wmg]ships routines to be voids.
X239) made sure that random monsters (savages) do not reproduce.
X240) fixed redesignate tradegood option in god mode.  no longer seg faults.
X241) made general npc army status redo; npcs and lizards will no longer
X	attack from own city/fort.  lizards will attempt to relieve a siege.
X	routines changed: redomil(), nationrun(), armymove() and updlizard().
X	slightly uncertain about changes in armymove() and nationrun().
X242) made sure void usage of functions was cast as such.
X243) removed Check() from npc.c (now checkout() in check.c; only my version?)
X244) changed TRADEGOOD to TRADEGOODS in update.c should now work.
X245) made it so that anyone with spellpoints could cast all but summon spell.
X246) changed food production to be seasonal.
X247) made units in army groups not run away from combat due to leader presence.
X248) fixed display for ship landing messages.
X249) added the magic power costs to the helpfile building program.
X250) switched display (M)etal and (m)ove cost to (m)etal and (M)ove cost.
X	[due to metal display being more important than move cost display.]
X251) added a "Disband your X?" question to the disband option.
X252) adjust calculation methods for monster costs and also added to reports.
X	Also added monster disbanding if not enough jewels.
X253) fixed bug with 'dissarray' in updmil() routine.
X254) fixed bug that prevented NPC's from receiving magics... but still cost
X	them points.  race magics were given via = instead of |=.  Should
X	now receive them because they may be toggled to PCs.
X255) adjusted scoring for countries and fixed txt5 to match.
X256) fixed bug with error check for XSAOWN, people in sect, and SLAVER power.
X257) adjusted attractiveness of mines and goldmines to be based on sect values.
X258) fixed bugs with giving spell point to AVG and MINOR monsters.
X259) made sure that cities can become capitals.
X260) made get_god() recognize names and numbers. [later changed with #215]
X261) fixed bug with new password setup.  should now work properly.
X262) wrote SORTIE, RULE and SEIGED into combat routines. need to add elsewhere.
X263) added above to helpfiles and everywhere but in NPCs.  DEBUG time.
X264) fixed possible division by zeros when tciv or tmil becomes zero.
X265) wrote get_country() that accepts either numbers or names as a country
X	and then returns an integer.  used for input on a number of routines.
X266) fixed 'z' redisplay [since I was doing get_country... I figured, why not!]
X267) fixed 's'pecial tradegood display to make sure nation could see tradegood.
X268) made display 'd'esignation make movmode ('/') false... now 'd''d'
X	resets default display.
X269) made routine for password in forms.c accept up to PASSLTH length.
X270) added check in desg_ok() for redesignation to same sector.
X271) fix to make sure that no attempt is made to redesignate unowned capitol.
X272) added "elsewhere" to budget report.  (How did I miss this???)
X273) decreased combat bonuses for marines, should not fight that well on land.
X274) made it so that sailors and marines could only be raised in harbors.
X275) fixed major bugs in newspaper function and made sure to ignore blanks.
X276) changed 'W'rite to news function so that it did not create multiple pages.
X277) added (d)isplay (i)tems to display the designation needed for (i)tems.
X278) changed (d)isplay special so it did not hilight the VOIDED sectors.
X279) extracted fort_val() [fortification bonus value] into a subroutine.
X280) changed many ISCITY() to fort_val() > 0 to allow GARRISON in stockades.
X281) changed TAXCAP to TAXCITY and TAXCITY to TAXTOWN for accuracy in names.
X282) rewrote diplomacy screen to support all screen sizes; fixed paging.
X283) fixed various bugs throughout.  (many caused by bad patching).
X284) adjusted the wmessage() function slightly. (don't go into zero column)
X285) adjusted various displays to match side.  (Ie., only voids show '?')
X286) fixed bug with RULE in battle alone that caused exit from battle.
X287) implemented file locks on all lock files so players may ignore if
X	the process is dead.
X288) removed zflag stuff since it is not neccesary and a definite cheat.
X289) added check to make sure that there was only one capitol per nation.
X290) added "chicken" armies to battle report.  only sends full report
X	to that nation if others units actually participate.
X	[Made sure that army leaves sector... unfair to leave army there]
X291) added check in wmessage() for GOD writing to news.
X292) fixed bug with vegetation display not being show for VOID owners.
X293) fixed bug with sending to non-pcs in siege notification.  (woops)
X294) did the above for losing monsters. (double woops)
X295) switched space bar from toggle to exit in the diplomacy screen.
X	[To be consistant with all of the other displays]
X296) fixed % in string error for lack of leader message.
X297) wrote conqsort program to implement sorting only on 1st two characters.
X298) fixed misalignment of displaying of output for magic removal.
X299) cleared bottom after selection of troop type to remove unwanted display.
X300) fixed promblems with information being kept with chicken orcs/mercs.
X301) fixed hard coded lines in diplomacy display.
X302) raised min strgth for WARLORD & LORD since they should be better soldiers.
X303) fixed error with 'else' on SIEGED status that removed fort_bonus().
X304) changed variable 'cbonus' to 'intval' to avoid confusion with cbonus().
X305) restructured armyrpt() to be independent of screen size.
X306) added check that terminal size was at least 80x24.
X307) added mail checking routine to watch conquer and system mail.
X	system mail is checked only given that SYSMAIL is defined.
X308) changed 'treasury' displays to show initial (startgold) value.
X309) added malloc for sector read and write
X310) added 1 sector range for npc nations
X311) putzed a little - added adams name to copyscreen, moved conqsort in,
X	added bits here and there
X312) worked on poverty and charity
X313) redid classs limits (who can be whom)
X314) people limit raised so you can start with all people in one sector
X315) modified some stuff for HP-UX
X316) add nation attribute - poverty & charity - MUST CHANGE 
X	TO CHARACTERS (from shorts) PRIOR TO RELEASE
X317) Added nation ability bonus as per txt5.
X318) Slow you down to change status (1MPs)
X319) Cant go from march to other so easilly - costs unit march bonus
X320) Overrun not work - eliminated it.
X321) Increased garrison for npc nations.
X322) Made payment for mercenaries that are drowned.
X323) add variable pwater - entered at world creation time not compile time.
X324) made fleetrpt() independent of screen size.
X325) fixed error in calculation of NET INCOME in budget().
X326) restructured change() routine to be variable with screensize.
X327) restructured makeside() routine to be variable with screensize.
X328) fixed bug in movement routine that subtracted move on unmet movement.
X329) changed combat routine:
X	- moved bonus adjustment from roll to odds.
X	- fixed bug in tracking neutral troops.
X330) fixed little display bugs in form.c file.
X331) fixed charity display in budget. (should be percent of income not
X	percent of treasury).  Also, charity is >= 0.
X332) placed FINDLOCK #ifdefs in for support of BSD flock.  Must investigate
X	system V and also PC before doing anything else with it.
X333) added camp_info() routine to display some statistics to users.
X334) adjusted calculation of 50% mercenaries in commands.c
X335) changed fight() and navalcbt() "rolls" to be yield 0 to 100 with
X	a bell curve probability.
X336) removed limitation on drafting only multiples of 10 men and instead added
X	a limitation that armies must be greater than 25 unless scout or spy.
X337) added checks on changing of terror.  imposed the 5% limit and may
X	use once per turn only.
X338) fixed major bug in clearing of magic before finishing with it in newlogin.
X339) fixed magic stones
X340) made slightly more likely that only 1 npc army ends in spot in their
X	own nation (unless city...)
X341) repair now an option from construct... not a suboption
X342) fixed bribery - based on number of 1000 troops in the nation now.
X343) add to attractiveness of owned sectors based on people/4.  Subtract
X	this number before leaders move.
X344) changed routines to add monsters to world.  Must check them.
X345) tidied up many of the screen display functions in a number of files.
X346) fixed bug with P_ATYPE==MARCH instead of P_ASTAT==MARCH.
X347) changed limitation on deep water from warships to light ships.
X348) fixed major bugs in MONSTER creation code.  should work properly now.
X349) AAAARRRRGGGGHHH!!!! I had a big error in my code.  never gave any gold
X	from spreadsheets if the charity was zero.  Sorry about that Ed.
X350) fixed bug with calling of prep() with country value improperly set.
X351) redid prep routine for speedup sake and for sake of bug catching.
X352) fixed one (hopely final) bug in combat... adjustment for attacker odds
X	bonus was wrong.  It was accidently only 2% adjustment.
X353) fixed some bugs in the rebuilding code and changed some messages.
X354) added two new constant definitions MEETNTN and PRTZONE.  see header.h.
X355) added prevention of god overwriting data file during player addition.
X356) separated out locking routine into a subroutine check_lock and placed
X	it in check.c.  Now all FILELOCKing is done in just this routine.
X357) leaders no longer have size consideration in loading onto ships.
X358) big fix of npc nations.  THEY DIDNT KNOW HOW VALUABLE THEIR OWN LAND
X	REALLY WAS!  It was a massive oversite!!!  If you wish to work
X	on the npc code, there are come commented out printf statements
X	in npc.c around line 793.  They will print attractivenss of sctrs
X	around your capitol, so you can see if npcs are working right.
X359) gave wandering pirate fleets a base of operations... now stay around that.
X360) fixed navy movement core dump.
X361) allowed sailors to disembark from a fleet in unowned land.  changed msgs.
X362) corrected display of move cost in "MOVESCREEN" for flight.
X363) putzed around with status messages.  now prevent setting of same status.
X364) reduced odds bonuses in fight().  will test with 8% and 6%.
X365) fixed bug with fison instead of filename in check_lock() for non FLOCK.
X366) altered movement to allow scouts into unmet land.
X367) allow spys to disband anywhere, but they now must be payed twice the
X	enlistment cost to be encouraged to remain quiet.
X368) added query for creation of NPC nations in makeworl.c.
X369) changed wizardry() function to work on characters instead of numbers.
X370) wrote routine compass() to return compass direction given from and to.
X371) used compass() routine in new starting routine for spys.
X372) implemented capturing of scouts:   PFINDSCOUT now set to 50%.
X	- alone with a hostile army     [PFINDSCOUT% chance]
X	- alone in someone else's territory with one of
X	   their armies (non-allied)    [(PFINDSCOUT/5)% chance]
X373) in draft() made it so both spys and scouts are assumed to be separate
X	armies of 1 man each.  Useless for nations to have otherwise.
X374) implemented mills.  farm may only be effected by one mill.
X	MILLSIZE people needed in a mill to have it function.
X375) no fix
X376) added mail information display to make_bottom() routine. should
X	work fine from now on.
X377) made it cost no metal to redesignate a capitol from a city.
X	[This makes sense, since no increase in fortification is needed]
X378) implemented sackem() routine for loss of Capitol.  Must add info in txt4.
X379) implemented deplete() routine for nations without Capitol.
X380) doubled movement rate of scouts and spys.  (usually not near leaders)
X381) fixed bug in check_lock(); would accidently remove locks after checking.
X382) Zones of control: slow you down - inverse ratio 100 men through 50 - lose 
X  1/2 starting movement points
X383) Fixed GOLDTHRESH conversion of gold to jewels - automatic now at current
X	tradgood rate.
X384) sailor nations dont get hit by storms.
X385) fixed getnewname in randevent.c
X386) performance enhancements to tofood, prep, is_habitable.
X387) added EXEDIR to compile time definitions
X388) reduced power of zombies.  may not longer MARCH or follow a
X	leader.  This is realistic since they should be braindead.
X389) fixed a bug with drowning flyers taking land in move.c.
X390) removed the restriction on the number of men drafted being > 25.  The
X	battle calculations now handle that properly.
X391) fixed a division by zero bug for tciv in npc.c
X392) TRADING BUNGED.... suspended trading for food, land, and ships.  Will
X	probably restore ship and food trading in the future, but for now
X	they are broken in such a way to damage nations.  Trading as a whole
X	also sucks.  Will fix for 5.0 when actual carrying of goods is needed.
X393) made mail messages being read wrap at LINES-3 instead of the constant 21.
X394) draft: made subtraction of population take place after spy verification.
X395) revamped combat once again.  should be all fixed except for the
X	one bug with retreat of monsters being reported.
X396) gave ability to draft dragoons without any magic requirments as per txt2.
X397) made sure zombie losses do not add to 1/3 zombie additions.
X398) made many fixes to patch as I put it in place:
X	- little bug fixes throughout.
X	- fixed curntn misassignment during monster placement in makeworl.c.
X	- fixed diplomacy screen detection of monsters.
X399) made it so that any grouped army that gets drafted into is set to ATTACK.
X400) changed Spy and Scout to singular in *unittype[], file data.c.
X401) fixed bug with isactive(country) != isactive(curntn->active) in sackem().
X402) only give half bonus to zombies for fortification; too stupid to use well.
X403) made sure that zombies only earned dead if they survived.
X	(all of my zombie changes are because zombies would never die)
X404) had to change "Guards" back into "Elite" because "Goblin" and "griffon"
X	could not fit into a non-'g' name while Elite was viable.
X405) added season to conquer -s output.
X406) added a line telling what nation the peasant rebellions join if it doesn't
X	form a new nation.
X407) added weighting of prior eatrate and seasonal variation to eatrate.
X408) added change to budget/production flip flop
X409) make NPCRANGE create start_x,y end_x,y for n_ routine speedup
X410) everybody on your side can participate in battle.  This permits
X	defense even if have general in sector.
X411) higher number nations now are the default attackers... means nomads...
X	atacking
X412) The order of combat is high nation to low.  This is very disadvantageous
X	to PCs.  The owner of land is now defender.  If that isnt clear,
X	it is 50/50;
X413) orcs are a little weaker... they got too many initial points.
X414) played with code a little in newlogin... cleaned it up a touch.
X415) cleaned up location adding in newlogin.c  
X416) can now go to war with peasants.
X417) added revolt percent chance to change screen
X
END_OF_FILE
if test 45675 -ne `wc -c <'notes.v4'`; then
    echo shar: \"'notes.v4'\" unpacked with wrong size!
fi
# end of 'notes.v4'
fi
echo shar: End of archive 2 \(of 14\).
cp /dev/null ark2isdone
MISSING=""
for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 14 archives.
    rm -f ark[1-9]isdone ark[1-9][0-9]isdone
else
    echo You still need to unpack the following archives:
    echo "        " ${MISSING}
fi
##  End of shell archive.
exit 0