Make sure I  (rhaksi @ sirius.uvic.ca) am kept informed of all changes
(I've done all the coding so far its only fair.... ;-) ) just a note
I eventually intend to make all the code public domain... soon as its
better than all the other variations... heh heh... might be awhile
if you make any fixes make a note (in a comment of course) of the date
and who you are... so we know whow to kill later.... also revise this
file so others know what needss to be done...

* and this is only the beginning, more to come as people think of them

* someone should fix all those warnings someday...

* whoops, weapon flags are also loaded as bonus to hit... fix db.c

* make sure Kai (Paladin) Drahkkar(Anti-Paladin) EKnight and Dknight aligns
  are reset whent cahr dies

* all chars should start with straight 17's or 18's until first reroll at
  level 3

* the basic skill system is going to remain pretty much unchanged (also the
 combat system...) with one exception: right now the dodge skill is applied
 as a bonus to AC what should happen is if the char is affected by dodge
 his AC is lowered by Dodge/10 and he loses an extra 10 mv or so
 (this is why I gave thieves lots of mv points)

* I will write some semblance of online creating in September when I have
the time... at least the ability to modify existing mobs and objects for
tweaking purposes

* all mobs need appropriate mob flags set ditto for objects, mages and 
 dragonkin will unbalance the game until they can't wear armor...
 (mages should be able to wear non-metal armor only) (dragon kin cant wear
 any armor that doesnt fit over wings (body) horns (head) or clawed feet
 (feet) maybe hands too... this is why they have the scales skill and their
 hp is so high)

* all the help files need to be done.... see warrior.skills for an example
 of help on classes...

* utility.c? or wherever it is needs to have the light procedure rewritten
 so that 1) all areas are dark when it is night out except for SECT_CITY
 which presumably has street lamps. 2) Gods can allways see and 3) if
 the char can see in the dark (ie Darksight) they can actually see...
 not to mention Darksight spell needs to be written...

* pray routine should randomly: recall up to 10th level chars, randomly
 teleport the char somewhere, Harm the char.., Heal the char, give them
 a thing of pastry, give them a cup of water, and if they are completely
 devoid of equipment give them a newbie dagger, newbie shield etc..
  note that this is random.. maybe good or maybe bad bout 55% good 45% bad
 or so...

* newbie equipment needs to be added to the item file, should have a rent
 of 1 and a value of 0. 

* rent should max out at 1 day...

* score should show you ability, hit bonus, dam bonus etc once you are
 35th level or so..

* gtel would be handy, the group xp routine should scale xp to the average
 level of the party (mmm maybe the max level in the party) and group
 should show the hp, mv, mana and xp to level of the group. Report would
 be handy too...

* the North/south/East road needs to be split into its own zone , it
 really shouldnt be part of Moria

* all mobs in SilverDale should really have more hp's

* I rewrote the align gain / loss how playable is it now? ie for paladin/apals

* a few new areas would be nice, someone is supposedly writing a caverns of
  Ice.... but I aint hear from 'em in awhile...

* make sure you read area_guide.doc

* multiple attack display messages need to be written ie 
  JoeChar gets in 5 quick slashes hurting the goblin pretty bad
  copy and paste the existing routine and call it if only one att succeeds
 the new one if more than one... or whatever

* memory command to check on memory size of mud would be nice , it would
 be especially convenient when someone tries to debug malloc remalloc etc

* all instances of byte need to be replaced with signed char due to 
  general weirdness of SiG machine.
  - Okay all bytes are no sbytes (signed bytes) or ubytes (unsigned bytes)
    or signed char... someone should go through in the future and double
    check what should be what.. e.g. especially skill levels, as now they
    are signed bytes.. limit of 127, which could be bad for some skills...
  - Cryogen 7/30/93
    
* Who command needs to be rewrittern to show levels and first two or three
 letters of class.

* who should accept args to show those near in lev or of a particular class

* Need to write a deposit, withdraw, balance routine to xfer gold from gold
 to bank field of char.

* need to write a int SolvedQuest(*theCharacter,int affect, int questnumber)
  routine. which will check the appropriate quest bit (possible 1 to 64)
  this is what the extra1 and extra2 fields are earmarked for.  If bit number
 of quest is not set, set it (only solve a quest once) then apply affect
 number to each char grouped to theCharacter ... put this in spec_procs.c
 which I am reserving for general purpose spec procs...

* all the SilverDale procs need to be written... see last room in area

* if you look at spells.h? quite a few spell constants are declared but
  not implemented due to time constraints

* pottential bug exists to pour fountain out.... check pour code...
  make sure it supports infinite sources and you cant empty them

* where should displya all players not mobs in zone if passed no args.

* practice should show a list of nonzero skills when not in the guild, also
  spell cost if applicable

* need to right a cleanplayfile routine amalgamating list.c and delplay.c
  to rid the player file of blank entries and players who havent logged on
  in quite a while.

* look at the reception.c code, as far as I can tell its a-ok but doesnt
 save items of the first char, adds a return to his name or something,
 I think its something to do with the aforementioned SiG problem 
 (this is one strange machine) oh and make limit of 20 items or so..

* Write programs that will silly_to_diku or merc_to_diku areas... so
  we can snarf the merc and silly servers and steal their areas...

* Fix the following stock bugs:

	  Unfortunatly, all code will have bugs, here are some of
	the more well known bugs that should be looked at when
        starting your own bugs. (NOTE: These are all fixes that require
	knowledge of C..told you you needed to know C ;) )

	 --Problem with realloc() in db.c with the world, and to a
            lesser extent mob_index and obj_index.

	 --Problem in do_pour. This bug allows players to preform
	   'pour cup cup' and have an infinite water supply.

	 --Problem on do_taste. A player can taste the bread, but when
	    he tastes the bread, it will apply the breads fill value 
            without actually eatting the bread, thus having an infinite
	    bread supply.

	 --Problem in nanny(). In nanny(), if a player answers 'no' to
            the 'is that really your name?', but the name pointer is 
	    never set to NULL. So, when you drop link, the same pointer 
	    will be free [using free()] again inside free_char().

         --Problem in generic_find(). Uses str_cmp() instead of isname() 
	    in FIND_OBJ_EQUIP.

	 --Probelm in affect_from_char(). The variable hjp is given the
	    value hjp->next. 

	 --Problem in shop.c. A has the scroll 'a tattered scroll' he wishes
	    to sell. Upon selling the item, a check is made for the keyword
            scroll in the shopkeeper's inventory. Since scrolls of identify
            and scrolls of recall are produced by the shop and have the
	    keywords 'scroll', the games assumes that the first scroll is one
	    of these items and destroys the item and never places back for 
	    resale.

	 --Problem in the init_socket. The ports do not seem to clear freely, 
	    so you end up with a lot of port binds. Here is a patch provided
	    by Dean@Arctic. 

int init_socket(int port)
{
     	int s, sbuf, opt;
     	struct sockaddr_in sa;
     	struct linger ld;

     	memset(&sa, 0, sizeof(struct sockaddr_in));
     	sa.sin_family = AF_INET;
     	sa.sin_port = htons(port);

     	if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
     		log( "init_socket: socket(): %s", strerror( errno ) );
     		exit(0);
	}

	opt = 1;
	if (setsockopt(s,SOL_SOCKET,SO_REUSEADDR, (char *)&opt, sizeof(opt)) < 0) {
		log( "init_socket: setsockopt(REUSEADDR): %s", strerror( errno ) );
		exit(1);
	}
	ld.l_onoff = 0;	/* let's make sure this isn't on */
	ld.l_linger = 1000; /* who cares what this is */

	if (setsockopt(s, SOL_SOCKET, SO_LINGER, (char *)&ld, sizeof(ld)) < 0) {
		log( "init_socket: setsockopt(LINGER): %s", strerror( errno ) );
		exit(1);
	}

	 /* unless you've written an 'intelligent' process_output, you don't need
		this setsockopt */
	sbuf = MAX_SOCKET_WRITE;
	if (setsockopt(s, SOL_SOCKET, SO_SNDBUF, (char *)&sbuf, sizeof(sbuf)) < 0) {
		log( "init_socket: setsockopt(SNDBUF): %s", strerror( errno ) );
		exit(1);
	}
	if (bind(s, (struct sockaddr *)&sa, sizeof(sa)) < 0) {
		log( "init_socket: bind(): %s", strerror( errno ) );
		if( close(s) ) {
			log("init_socket: error closing socket: %s", strerror(errno));
			exit(1);
		}
		exit(0);
    	}
    	if( listen(s, 5) < 0 ) {
		log( "init_socket: listen(): %s", strerror( errno ) );
		exit(1);
    	}
    	return(s);
}

##FTP##
	
	  Below is a list of commonly used sites for DikuMud related
	items. All sites/contents are subject to change.

	ucbvax.berkeley.edu-- pub/games/dikumud
		contains-
			Source- MERC (most recent), Copper2, 
				and SillyMud.
			Patches-oset, whod, and alias.
			Worlds-arachnos, dwarven kingdom, and
				mage tower, rome.
			Editors-mudiotor v.5, DIKUedit.
			Clients-TINTIN v.2 and v.3.
	ferkel.ucsb.edu--  pub/DikuMUD
		Contents vary. Most stuff is usually
		found in the incoming directory. As of 
		this posting, this site contains MERC and
		TINTIN.
	ftp.math.okstate.edu-- pub/muds
		Contents vary. Has Merc v1.0, Rome, and TINTIN v.2.
	147.226.112.94-- pub/reni/dikumud
		Archive site for this FAQ and the Diku List.
		Older SillyMud
		Accepting uploads.
	coyote.cs.wmich.edu-- pub/Games/Diku
		Contents include Arachnos, Dwarven, and Drow areas.
		ZoneMaker v1.2, TINTIN, and standard documentation.
	ftp.lysator.liu.se-- pub/lpmud/clients
		Has pmf, another commonly (but less) used client
		program. 
        ftp.cis.ufl.edu-- pub/games/mud
		Offical site for SillyMud
