/
Greed088/
Greed088/archive/
Greed088/backup/
Greed088/clans/
Greed088/classes/
Greed088/dict/
Greed088/doc/MSP/
Greed088/doc/MobProg2.1/
Greed088/doc/OLC11/
Greed088/doc/OLC11/doc/
Greed088/doc/OLC11/options/
Greed088/log/
Greed088/mobprogs/
Greed088/player/
Greed088/player/t/
GreedMud Release 0.88a9 (NON PUBLIC INTERNAL RELEASE)
Wednesday, 25th February 1998

Zen             vasc@camoes.rnl.ist.utl.pt

:::: Internal subversion 9

=== What's new in this patch Release 0.88a9

Zen:		TheIsles style area format.  This one's actually readable :-)
		  It is marginally slower to load though.
		Added NEWS for deaths and levelings.
		Changed do_give() so mobs don't receive items from people
		  they're hating; if they're affraid (paranoid); if it's a pill
		  (to stop player cheating).
		Removed checks for player cheating in use_magical_item() for a
		  new more subtle one.
		'mclone' and 'oclone' imm commands.
		Fixed gizmo do_slay() options.
		Cleaned up Hunt, Hate & Fear code a wee bit.
		Added info for ITEM_RANGED_WEAPON & value[4] field to identify
		  spell.
		Added loads of spells based on SMAUG:
		  Blazeward, Blazebane, InnerWarmth, WinterMist, EtherealFunnel,
		  AntimagicShell, ShadowForm, EldritchSphere, SwordBait,
		  Demonskin, RazorBait, DragonSkin, DragonWit, Sagacity, Slink,
		  TrollishVigor.
		Now skills have class dependent max % like SMAUG.
		Made code for Poses, Titles a bit safer.
		New binary search method for skill_lookup() like in SMAUG.
		New look for do_practice().
		Cleaned up comm.c in loads of places.
		Replaced WIN32 for _WIN32.
		Added room specials.
		Added ASSHOLE.LST ala SillyMUD.
		MOBPrograms load from area files again.
		  Also made a nicer new format and cleaner load/save routines.
		Teachers code is on.
		Added new affect bitvector format and new area bitvector look.
		Added Note field in #AREADATA so builders can insert comments.
		Removed all useless calls to spec_mob_lookup().
		  Thanks to that i found a bug in Envy 2.2: spec_breath_cold
		  doesn't exist.
		Radically improved OLC help.  -- STILL IN PROGRESS --
		Changed do_dirt() and do_whirlwind() as per Sektor's suggestion.
		Started language support.  Dictionaries and transliteration
		  routines are now done.
		Added 'dot' log loading style.
		Added do_speak(), know_language() and language info to score.
		New 'verbose logs' mudconfig flag.
		Changed the look of the mud.
		Removed clookup immskll.
		New immsklls: cslist, cinfo, cpose, ctitle.
		Cleaned up list_update().
		Changed update_handler(), room_update().
		------
		Changed MAX_LEVEL to 60.
		Changed EXP_PER_LEVEL to 2000.  Players are leveling too fast..
		Added some info to skill_table and cleaned up caracter
		  generation.
		Added IDENT protocol support.  Uses getpeername and getsockname.
		Changed do_users to use IDENT info and be more readable.
		Removed small niggle in mclone, now act isn't copied on PC's.
		Scrapped ROM like character generation.
		Added MUD_AUTOPARDON flag.
		Added SECT_DUNNO 11 type because it seems like there are rooms
		  on the bog standard areas in Envy2.2 with this type number!
		Added vzero(), vcopy() functions for bitvectors. 
		Added fread_vect(), fread_flag() because non-settable flags
		  wheren't being read by the server sorry...
		Added vect_strings() and flag_strings().
		Changed type of bitvector arrays to 'unsigned char' i was
		  having problems with signed vs unsigned aritmetic.
		Changed MAX_VECTOR to have bitvectors >= 64 bits.
		Changed alloc_mem(), free_mem() to ROM like MAGIC stuff to find
		  a weird bug.
		I forgot a free_mem() in free_char() from an older code version
		  which was attempting to free non existant memory, causing
		  weird crashes along the way.  Thanx ROM code!
		Changed area file format to be even more readable.
		Changed pfile format a bit also.
		Changed look of character generation.
		Changed look of do_score().
		Multiclassing is in.  Limited to 2 classes for now, but is easy
		  to add more.
		Classes are now stored in a single linked list instead of in
		  an array.
		Eliminated pose_table[], title_table[].  That data is now stored
		  in the CLASS_TYPE structures.
		Moved all class related data from skill_table[] to the
		  CLASS_TYPE structures.
		Eliminated all MAX_CLASS related stuff.
		Tweaked xp_compute() so ch now gets "xp /= number_classes".
		New Punch skill.
		New Unravel Defense spell.
		Changed scan skill.
		Changed Chameleon Power and Shadow Form.
		Changed move_char() for mountable mobs only.
		Changed mount skill.
		Added learn() so players only need to practice one time, and
		  then they can learn for themselves.
		  Players can still waste practices to learn more like in Envy.
		Added missing titles for all classes.
		Added Ranger class.


=== What's new in patch Release 0.87k

		---0.87a---
Zen:		Fixed bug in Envy 2.2 which caused descriptions of objects in
		  player files to have the corrupt string on DEC Alpha.
		Added CHECK_RES(), CHECK_IMM(), CHECK_SUS() macros.

		---0.87b---
		Fixed a couple of mistakes i made on 0.87a.
		Scrolls, potions & pills v4's use finally is as described in
		  area.txt.

Rakot:		Chars damaged by daylight even if they aren't Vampires bug
		  (fixed)

Satan:		Weird value[3] in weapons crashes the mud bug (fixed)

		---0.87c---
		Fixed bug in mprog_translate() which i thought had been
		  completely fixed way back in version 0.85.  I hope it's dead.
		To give you "insufficient security to edit area" messages less
		  often, you aren't allowed to enter the editor unless you
		  have enough security.

		---0.87d---
Zen:		You can use the OLC editors without security to see stats.
		Added a couple of more checks in fread_char().
		OLC aedit without arguments edits the player's area.
		OLC oedit modified to edit new object affect format.
		OLC oedit bad value settings bug fixed.

		---0.87f---
Zen:		Removed several ugly bugs from clan code.
		Removed yet another OLC bug in oedit addaffect.
		It seems UltraEnvy crashed with some old Envy2.2 player files
		  and/or areas because i changed the name of "protection"
		  I'm actually glad this happened because it allowed me to fix
		  one Envy2.2 bug and one memory leak! (fixed)

		---0.87g---
Zen:		If you ordered a charmed mob to suicide himself he would attack
		  you, this one comes from Envy2.2 (fixed)
		No more easy going for players who give offensive pills & stuff
		  to a mob to make it hurt himself.
		No more easy going for players who give scrolls of heal to a
		  mob to make it heal them.
		Added a couple of small enhancements to clan code.
		Changed obj_update() a bit; i think it doesn't quite do what
		  was supposed to but heck!  The mud didn't crash yet...
		Added checks for fpReserve in a lot of places; is this really
		  necessary?
		Cleaned up code.  I hope i didn't introduce any new bug...
		I had forgot to add the security check for the "sober" imm cmd.
		Rset now understands strings besides numbers.		
		Oset now understands strings besides numbers.
		In comm.c getpeername and getsockname aren't used anymore so
		  there is no need to have OS-dependent declarations for them.
		In comm.c bzero isn't called anywhere so i scrapped all related
		  declarations.
		Renamed mob_commands.c to mob_comm.c.
		Added new object_update() loop to introduce object specials.
		Added object specials.
		Added new room_update() loop to make falling things faster.
		"who" command now should have less weird results.

		---0.87h---
Zen:		Solved small bug in saving of object resets.
		Changed "#if defined( linux )" to "#if defined( __linux__ )".
		  Although the former is defined, it is not POSIX compliant.
		Changed OLC and do_astat to work with Sektor's new #AREADATA
		  format.
		Changed load_area() to convert well behaved Envy2.2 area names
		  to Sektor's #AREADATA format.
		Reconverted most areas back from Envy2.2 again.  Fixed up some
		  forgotten resets also.

Satan:		Shopkeeper's ITEM_FURNITURE objects get level 0 (fixed)

Sektor:		Suggested new directory structure.
		'invis', 'mass invis' and 'polymorph other' didn't have realms.
		New area loading routines: new_load_area(), fread_area().

		---0.87j---
Zen:		Removed ridable mobs bug.
                Scraped old aliases for Sektor's code.  MUCH better.
                Made noticeable changes to alias code including I/O routines.

Sektor:         Much improved alias code.
		---0.87k---
Zen:		Removed loading alias bug.
		'Speedwalk' with ';' thingie.
		Support for '^' thingie.
		Pose tables are read from the class files.
		Fixed small problem with title loading from class files.
		Changed alias code quite a bit.


=== What's new in patch Release 0.87

Zen:		Now HomeCooked should be compatible with old Envy2.2 player
		  files. However, it's now incompatible with previous HomeCooked
		  version's player files...
		Updated help files so you now have helps for all <= v0.85
		  features...
		Added Erwin's printf_to_char(), bugf() and logf() functions.
		Implemented NiMUD hit types. Including hit FUN's.
		Removed mobs sleepwalking bug.
		Added ranged weapons support. NiMUD style. Still primitive.
		Changed startupSH a bit. Only tested on bash.
		Changed color scheme, unfortunately it is now partially
		  incompatible with the previous version. However, now it also
		  allows you to change the background color of text.
		Changed score command to have a new SMAUG based look.
		Added Mythran's WIZNET code.
		Changed process_output() slightly to show the user the percent
		  of lines displayed so far.
		Changed restore so that restore with no arguments will restore
		  the whole room (Mythran style).
		Implemented NiMUD weather system improvements. Including:
		  temperature, windspeed, snowing.
		Added SMAUG's BVXX defines.
		Cleaned up code a bit.
		Plague spell for Clerics and Mages (Mythran)
		Cure disease spell for Clerics (Mythran)
		Flower social (Mythran)
		Added WIZNET WIZ_DEBUG info.
		Changed tracking algorithms: SMAUG's tracking module was
		  actually graph.c with a couple more things (or so it seems).
		  I replaced it for the SillyMUD hunt.c algorithm since it seems
		  it's faster (at least this was mentioned on the merc
		  mailing-list). Mythran uses this also. The code is almost
		  twice the size of SMAUG's tracking module. But if it's faster
		  this is no problem. Does anyone know the speeds for sure?
		  One funny thing: hunt.c source is bigger but the object file
		  size is 10k smaller compared to track.c (at least on Linux)
		Changed verbose area saving a bit to look nicer.
		Full #GAMES support added.
		Upper Lower Triple dice game (coded by Thelonius)
		Seven dice game (coded by Maniac)
		High dice game (coded by Maniac)
		Added Mythran's casino area. It was very empty so i had to do
		  50% of the work to make it usable. Also made helps for the
		  dice games. Some were already in gamehelp.are.
		Added damages types ex: DAM_FIRE, DAM_COLD, etc.
		  Also: Resistances, Immunities and Susceptibilities (RIS).
		  The system is mostly based on ROM's IRV system (as i call it).
		  Also took some ideas for the system from SMAUG. The problem i
		  have is on some code in fight.c and magic.c (i can't make my
		  mind to what damage types to use). Also i'm not sure which
		  RIS to put on each race. Look at const.c and see for yourself.
		  Testing of immunity was done on mob Captain Vader - Undead.
		  Vader and the other Undeads are now immune to gas breath :-)
		  (gas breath is DAM_POISON and Undeads can't be poisoned).
		Weapon proficiencies, NiMUD/SMAUG/ROM style (mean hybrid :-) )
		  (see attack_table in const.c)
		Changed password and retire, they now use a longwinded routine
		  in comm.c nanny() to do their stuff; done by yours truly :-)
		Minimum level for OLC commands is now L_SEN.
		Removed aedit, redit and replaced them for NiMUD style versions.
		  All that source with command tables, OLC_FUN's and stuff was
		  making code harder to read, it was spread all over the place.
		  The inconvenience is that "commands" no longer works for OLC.
		Changed player "description" command to use sedit.
		Changed look of sedit's string_append() & string_add().
		Ridable mobs (got most code from NiMUD)
		Several code changes in update.c and MobProgs in attempt to
		  improve performance (not much impact though).
		Removed a couple of bugs.
		Added command history, finally no more need for endless typing!
		Enhanced spell system: now spells have mana types, and you
		  can use special mana charged gems to boost your inner mana.
		  Inner mana is automagically convertible into any of the mana
		  types. Got idea from NiMUD but most code was changed to allow
		  spell casting without gems.
		Nearly finished on new clan code. Now it only needs testing and
		  steady refinement.
		Solved bug in MobProgs; act_prog wasn't working...
		Fixed warnings of 'cast from pointer to integer of different
		  size' on Alpha machines from Envy22.  Caused a segmentation
		  fault.
		Added name prefixes.  Example: kill fido & kill fi both work.
		Fixed a LOT of bugs introduced from all the code changes i made.
		  Thanks to the staff and players of DragonMud which found
		  countless bugs which i promptly fixed.
		Fixed bug in old HC versions which caused descriptions of
		  objects in player files to become corrupt.
		Changed new tracking module to compile cleanly on DEC Alpha and
		  replaced bzero(), bcopy() for memset(), memmove().
		It seems Envy2.2's mana cost of remove alignment was right all
		  along...  Changed it back to 10.  Sorry.
		Following Erwin's letter to the Merc mailing list regarding int
		  vs char and EOF handling i changed a lot of chars to ints.
		Changed source so it would compile without warnings on Visual
		  C++ 4.0.  Also removed a couple of type casts here and there.
		Changed startupWNT.cmd and startupW95.bat a bit.
		Changed select() calls in comm.c to not trap ERRINTR as per
		  Erwin's suggestion in a letter to the Merc mailing list so i
		  could profile code.
		Included more accurate string hashing function by Erwin S.A.
		Removed a lot of wasteful calls to race_lookup() in fight.c
		  like:
		    -> if ( ch->race == race_lookup( "Snake" ) )
		  for:
		    -> if ( !str_cmp( race_table[ch->race].name, "Snake" ) )

Satan:		Bug in comm.c act() sometimes made a segmentation fault.
		  originated from Envy2.2 (fixed)


=== What's new in patch Release 0.85

Zen:		It seems like i forgot to update load_helps() in db.c.
		Added SMAUG's track code.
		Smarter mobs.
		Track skill for Thieves (SMAUG code)
		Whirlwind skill for Warriors.
		Removed olc_envy20's ROOM_TEMP_CONE_OF_SILENCE and replaced it
		  with a new field orig_room_flags in room_index_data. This
		  field is saved by OLC instead of room_flags.
		Added more detailed boot log ala SMAUG.
		Object affects, now you can have a One Ring which renders you
		  invisible with AFF_INVIS, or sanctuary with AFF_SANCTUARY,
		  etc...
		Renamed spell 'Scry' to 'Wizard Eye'.
		Updated help.are just a little
		Changed layout of aedit_show(), medit_show().
		Added preliminary parts support, like the one in ROM.
		Cleaned up send_to_char (color version)
		Now redit_show uses do_rstat for all output.
		It seems that when loading files from stdin, if AREA.LST had
		  "-limbo.are" for example; when saving, it was saved it with
		  the name "-limbo.are" instead of "limbo.are"...
		Added new "editinfo" mode.
		Added medit_copy.
		Added oedit_copy.
		Envy2.2 didn't have Irix defined in the top Makefile...
		Changed Flee code a bit to make mobs look smarter and slightly
		  more aggressive.
		Fixed bug in mprog_translate.
		Cleaned up some code.
		Improved look and feel of OLC.
		Renamed clookup to clist, and showclass do clookup.
		Now immortals may pass all doors.
		Fixed security loophole in mob_commands.
		Fixed bug in mptransfer().

Stimpy:		WhirlWind skill for Warriors.

SMAUG team:	Most Hunt/Track code - 95% i think :-)
		Track skill for Thieves.
		Mobile memory. ROM2.4 mobs have better memory but i don't want
		  a mob with a huge linked memory list...

ROM 2.4:	Parts support idea, SMAUG also features this.


=== What's new in patch Release 0.84

Zen:		Quick fix, i think nobody even got 0.83 since i only left it on
		  ftp.game.org for 2 days. Alias code was using bzero and it
		  seems not all platforms have this... Oops!


=== What's new in patch Release 0.83

Zen:		Fixed bug in "imtlset" when using the '-' option with only one
		immskill. Sometimes it made a segmentation fault...
		Now you can see the OLC prompt options while switched.
		Removed several other minor bugs.
		Added a couple of new text attributes to colorconv().
		Updated all Makefiles.
		Added Slash's "falling" code.
		All class info in a text file.
		Socials table is now in a text file also...
		Now the immortal command "delete" merely moves player files to
		  the backup directory instead of erasing them.
		Fixed bug in OLC when using redit_mlist() "all".
		  It would list many mobs not in the area, but in the area's
		  vnum range! It would overflow the buffer for output and cause
		  a segmentation fault.
		Fixed much the same bug in OLC's redit_olist() "all". It now
		  simply checks if the object belongs in the area or not.
		Changed alias code a little...
		Changed "sset" so immortals may "sset all" other immortals to
		  ALL spells/skills, even those not of their class.


=== What's new in patch Release 0.82

Zen:		Converted skills from src/Contributions.
		ANSI color support using ColoUr_V1.2.
		Scry spell for all caster classes
		Mass Vortex Lift spell for Clerics
		Vortex Lift spell for Mages and Psionicists
		Meteor Swarm (Drool Co design) spell for Mages
		Meditate skill for all caster classes
		Added Arena Code using ROOM_ARENA flag, could be better.
		Swim skill for all classes
		Steal bug fixed.
		Retire command.
		new Director command "Delete" NUKES player on the fly!
		Increased mana cost of remove alignment to 100 as in Envy2.0
		Primitive CLANS code support.
		do_remove now allows things as: "remove #.ring"
		do_sacrifice now allows things as: "sacrifice #.something"
		  where # is the word "all" or a number.
		Added MOBPrograms 2.1.
		Brew skill (creates potions).
		Scribe skill (creates scrolls).
		All ch's >= LEVEL_IMMORTAL may enter in any guild room.
		Added "show" bit to cmd_type.
		Killing charmed mob without master bug fixed.
		Chain Lightning (Drool Co design) spell for Mages
		Detect Good spell for Clerics
		Dispel Good spell for Clerics
		Dirt Kicking skill for Warriors and Thieves
		Added several new liquid types
		Added ITEM_PORTAL, ITEM_WARP_STONE
		Added do_enter, so you can enter a portal and teleport.
		Added Online Editing using ILAB OLC Beta 1.1.
		Changed object format slightly. Will still load old Envy areas.
		Added alias, and unalias commands.
		Added CHANNEL_GRATS and "grats" command.
		Added CHANNEL_CLANTALK and "clantalk" command.
		Protection Good spell for Clerics.
		Fixed colorconv() bug when player was switched.
		Fixed bug in OLC when switched.

Joguel:		race Fish should breathe in SECT_WATER/SECT_WATER_NOSWIM


=== What can i do to help?

  Please make suggestions, contribute with code or whatever. Whatever i do i
will try to make it available to everyone. And pass it to the EnvyMud staff.
  PLEASE do not make code which requests who uses it to put your name on the
title screen as i have seen some code (like quest.c in ftp.solace.mh.se) i hate
this! If everyone were like this soon we would have pages and pages of names in
the title screen... If you want put your name in the help of the skill or
whatever. To fight this i will include NO code which requests the author's name
in the title screen unless it's a MAJOR code change. I have included some
ROM/SMAUG/NiMud code and i put a reference to ROM/SMAUG/NiMud in the code as
well as in here.

  Btw i'm in need of help sections for most of the new skills/spells as i hack
code but usually forget to make the relevant help or it's very outdated...
I would apreciate very much if some kind soul did this for me.


- Zen