This document contains a list of What's New since the last official release, 0.20e

Version 0.23f released July 8, 2013
  Dan's change log:
	Sorting:
	-Sped up generation of player lists. (The shellsort Jakob used is fine but inefficient. I optimized the shellsort in one place but there are tons of duplicated copies of the code that should be fixed too.)

	Text:
	-Minor cleanup and spelling

	Marriages:
	-No more unrequited marriages created by maintenance. I think this is a bug I (Dan) introduced in my optimizations. NPCs will now never marry a human automatically; NPCs only marry other NPCs. Human-involved marriages will never happen automatically. (Thanks Brittany)
	-No more getting tons of 'feelings' messages from NPCs every day.

	Experience:
	-Reduced default intimacy acts/day from 10 to 2. 10 is kinda ridiculous.
	-Halved experience earned from beer stealing, since it gave way too much. (Thanks Alex)

	Mail:
	-No more receiving mail out-of-order. The upshot is that sending mail (including the reams of auto-generated mail) is much faster, but scanning for new mail will be slower toward the end of the day on busy systems. Mail is now automatically packed at the start of maintenance. (Thanks Rick)

	Cosmetics:
	-Depositing/withdrawing in the treasury doesn't accept values if you have no gold to deposit/withdraw (i.e. it works like the bank now)
	-Cleaner level-raising text when you have the experience to raise multiple levels
	-Some races/professions listed fake abilities that were never implemented (songs, dodge expert, immune to immortal gods). Removed. (I may implement some of these later, but for now they are just misleading.)

	Inn player fights:
	-Fight is now deducted if you die against doorguards
	-Doorguards stayed dead if you killed some but died against doorguards, but all stayed alive if you killed doorguards and died against player. Fixed (dead doorguards stay dead)
  
  Rick's change log:
    - No changes in this release
  
Version 0.23e released April 27, 2013
  Dan's change log:
	Pregnancy:
	-Two mails could be received for a pregnancy (telling you that you and then your partner were pregnant). Fixed.

	Scores:
	-In the score ratings (equipment, weapon, armor, player killers, monster killers), deleted players caused gaps in numbering. Fixed. 

	Status line:
	-STATUS OFF in usurp.ctl to disable the status bar did not work. Fixed.
	-Disabling the status bar screwed up inter-node processing (probably because status bar couldn't actually be disabled until my change above). Fixed.
	-f1 toggle did not work when status bar was disabled. Fixed.

	Maintenance:
	-NPCs never bought around-body armour. Fixed.
	-The NPC king could be recruited to an NPC team (so that he was king and in a team at the same time). Fixed.

	Quests:
	-When creating a quest, monsters would be listed multiple times (not aggregated like in the dungeons). Fixed.

	Chest Items:
	-Stealing items should not be available in classic mode. Fixed.
	-Unimplemented (e)xamine chest option. Removed.
	- 50% chance that home-owner sees you and initiates a fight, rather than 100% (a Jakob cheat that was left in by mistake). Fixed.
	-Stealing should reduce dark deeds. Fixed.
	-Player should only see you if alive and at home. Fixed.
	-Should not be able to beg for mercy when seen stealing. Fixed.
	-Stolen chest items show up as still available for stealing, but with *unknown* owner. Fixed.
	-Player-owned items listed as owned by Pogo. Fixed.

	Spells:
	-Active spells were not reset before player fights. Fixed.
	-Many spells did not work in player fights. Fixed, but I think this unbalances things (sage can use 'escape' spell and make the opponent miss for the rest of the fight). This is what Jakob intended (based on the code), but we'll work on balancing once I scrub all of the bugs.
	-Angel caused dropped carrier in dungeon fights. Fixed. (Thanks Alex G)

	Uman cave:
	-Result of last-allowed indian wrestling was cleared before it could be read. Fixed. (Thanks Alex G)
	-In Indian Wrestling, players started with strange power like 4/48. Fixed so that initial power and maximum are both the same initial power

	Fake players:
	-Garbage occasionally produced when checking (^w)ho is online. Fixed. (Thanks Alex G)

  Rick's change log:
    - No changes in this release
    
Version 0.23d released March 30, 2013
  Dan's change log:
	***************RESET MONSTER DATAFILES***************

	When upgrading to this release, you must use the editor to reset the monster datafiles. Choose Reset, then check the Monsters checkbox. The game will crash if you don't do this. Further details on why this happened below.

	Maintenance:
	-Maintenance with option #153 was slow. Fixed (wicked-fast now)

	Monsters:
	-For 20 years, monsters' defense was ignored, regardless of its value in the monster editor. I've now activated monster defense, but to keep the game the same I have explicitly set all default monsters' defense to 0. This means that this change does not affect anything unless you want to run a custom game where monsters have defense (since now the defense values in the monster editor will be honoured if you change them from 0).

	Experience:
	-Terrible bug where 10% of experience could be lost when both you and your opponent die in a teamfight. Fixed.
	+Editor now allows float experience losses (e.g. 3.5%)
	+Between 0 and 90% of experience can be lost now, as per the help text in the editor (before only 0-25% was accepted)

	Prison:
	-Players were told that they were imprisoned when failing to thieve in Bob's, but they were not. Fixed.
	-When (e)scaping from prison, you were kicked out of the game instead of put on Main Street. Fixed. (I think Jakob did this because he was worried that the player would not be initialized correctly. I tried to fix that.)
	-No more resurrecting players that are in prison

	Home:
	-(g)oing to sleep in home put you at main street on next entrance. Fixed.

	Dungeon fights:
	-Disease text was printed after player was dead. Fixed.

	Gym:
	-Dead or imprisoned players should not be able to defend the gym. Fixed.

	Birthday:
	-Infinite loop with (l)ove reward. Fixed.

	Gangwars:
	-Gangfights available should not be decremented when no one in rival gang is around to fight. Fixed.

	Inventory:
	-Trying to drop neck2 caused neck1 to be dropped. Fixed.
	-Equipping a ring when both ring fingers were occupied always used the right finger. Fixed. (Neck is still messed up though.)
	-Invalid numbers in the (s)top Using menu caused things to be dropped or inaccurate messages to be printed. Fixed.
	-"decreased by +-5" ridiculousness fixed

	Team Corner:
	-Using invalid teamnames in certain places let you send messages to nonexistent teams, join nonexistent teams, etc. Fixed.

	Online trading/dueling:
	-These were mostly broken because fake player movement would break the initiation process. Fixed.

	Marrying:
	-Saying 'y' to paying for marriage when it was not a love-love relationship caused money to be wasted. Fixed (now it costs money only when marriage actually happens.) Found this one on an old Usurper forum.

	Gods:
	-Fixed horrendous bug that caused a player's god to be deleted if they simultaneously log-in on two nodes
  
  Rick's change log:
    - No changes in this release
	
Version 0.23c released March 03, 2013

  Dan's change log:
	***************RESET MONSTER DATAFILES***************

	When upgrading to this release, you must use the editor to reset the monster datafiles. Choose Reset, then check the Monsters checkbox. The game will crash if you don't do this. Further details on why this happened below.

	Groggo's:
	-When it was 'unfair' to cast a disease on someone, it was possible that follow-up questions would be asked anyway. Fixed.

	ctrl+w:
	-Fixed spurious "press return to continue" after checking who's online

	Casting Spells:
	-Reworking magic system to fix many bugs in player fights

	Statistics:
	-Pick-pocket attempts not shown in new mode. Fixed.
	-Spurious options shown when viewing stats of other players. Fixed.
	+Added player fights to statistics, and clarified "Fights" to mean "Dungeon fights"

	Gym:
	-Disabled dumb-bells option; Jakob wrote no code for this
	+Gym now shows the owning team

	Dorm:
	-(p)ickpocket -> (p)otions -> kill opponent could result in a "you took 0 healing potions" message if your kill caused the opponent to waste all potions. Fixed.
	-When (w)aking up the guests, you had a 2/3 chance of hitting an opponent, regardless of which move you selected (and independent of your close-combat skills). This, in combination with being able to choose the same move every time in Bob's, made it completely pointless to train anything besides knifehand. Fixed (now the chance of hitting in the dorm depends on close-combat skill).

	Quests:
	-NPC-created quests caused exception violation and fatal exit. Fixed.
	-NPC quests could be created so that a "reward" is 0. Fixed.

	Teams:
	-Two different team rankings were being used: one in the team corner and one in the gangwars menu. Fixed to use the one that does not cause overflow (and hence huge positive and negative integer scores in the team score files).

	Monsters:
	-Of interest here is two monster attributes: hitpoints and strength. Strength is supposed to be the attack power, and hitpoints is the starting hitpoints. Unfortunately, Jakob did something so that hitpoints was always calculated as a monster's strength * 3. So regardless of hitpoint setting, it was ignored and set to strength*3. This severely limited the usefulness of the monster editor, since strength was in effect used to calculate strength and hitpoints. I have now changed the code so that it honours the hitpoints setting. The monsters that ship with Usurper have now been modified so that their hitpoints are strength*3, instead of 0 (but of course we know that the 0 was meaningless since strength*3 was hard-coded). This is why the monster datafiles must be reset. In other places in the code (such as dungeon events, joining alchemist order, fighting demon), Jakob's hitpoint values will now be honoured (rather than just using strength*3). I do not know the outfall of my changes in these circumstances, and will continue to test.

	Dungeon:
	-Removed duplicate "your share is..." messages when fighting alone in the dungeon
	-When trying to join the orcs instead of saving the girl, you unintentionally saved the girl anyway. Fixed.

	Bob's:
	-Fixed loop in drinking competition when inviting new participants
	-In drinking competition, if the initiating player lost then the "favourite" always won the competition and the competition ended with no further rounds. Fixed.

	Supreme Being:
	-Fixed crashes with too many hitpoints

  Rick's change log:	
    -Fixed a problem where the statusbar was still drawn at certain points even if it had been disabled.
    -Fixed problem that caused Usurper to use an insane number of file handles on Win32 (and caused lockups on Linux, which is how it was discovered).
    -Fixed some screen display issues when running in a console window with a buffer size larger than the screen size (possibly introduced after the last release, so maybe nobody experienced this)
    -Added support for native versions of Usurper on Linux and OS/2
	  -Linux was only quickly tested on Ubuntu 12.10 under Synchronet (latest from CVS).  It's important you enable STDIO and use the uppercase DOOR32.SYS.  The command I used was USURPER /P%n
	  -I have no method for testing OS/2, so if you try it out and run into problems feel free to contact me and I'll try to get things working.
	-Fixed a nasty bug that affected the DOS version of Usurper.  I made a typo when porting to Win32 that caused seemingly random crashes (which were stack overflows).  Typo is now fixed, so if you were experiencing problems with DOS Usurper 0.23 and newer, hopefully that's fixed now.
	-Added a help file for EDITOR32 (previously hitting F1 in EDITOR32 just gave an error message saying help was unavailable)
	-Changed delay routine since the old "Super Delay" routine would:
	 1) Use 100% CPU (or 100% of 1 core if on a multi-core processor)
	 2) Cause Usurper to intermitently crash with a run-time error 207 at startup

Version 0.23b released February 19, 2013
	Text:
	-Fixed dozens of spelling mistakes. There are certainly many more.

	Dungeon:
	-Fixed backstab command in classic mode (R)
	-Fixed index error in monster defense code (R)
	-Wishing well could give 0 strength. Fixed.
	-L)ook could result in nothing (no fight and no event). Fixed.
	-An event could follow the wishing well without having to do another look. Fixed.
	-Optimized l)ook code

	Steroids shop:
	-Bad error causing steroid 10 to add very little strength and remove very little mental stability

	Beer stealing:
	-Experience was not properly split with teammate. Fixed.
	-After stealing is complete, experience gained and number of dogs/sons killed was not reported accurately. Fixed.
	-Dark deed was used up even when 0)abort was chosen. Fixed. (Now you can use the bones option to determine number of dogs without wasting a dark deed, but I think this is better than penalizing for aborting.)
	-Son stamina was not reset when stealing again. Fixed.
	-Dog order was only randomized when you r)eturned and then b)eer stealing. Fixed (now it randomizes every time you g)o)
	-More exp is given now for knocking out sons (previously they yielded the same exp as dogs, but sons are much harder to kill)
	-Number of dogs and sons killed is reported separately now

	Dorm:
	-If you had no dark deeds left, you could not pickpocket regardless of number of remaining pickpocket attempts. The strategy was then to pickpocket first, then use dark deeds later (since pickpocketting did not reduce dark deeds). Fixed (pickpocketting does not count as a dark deed)

	Player fights:
	-Alchemist poison was not included in the "You hit x for y damage" messages, even though it was correctly applied. Fixed.
	-The player fight code is a mess, with duplicate copies of code all over. This has to be fixed.

	Groggo's:
	-Magicians, sages, clerics, and alchemists were supposed to be less susceptible to demons and diseases, but a nasty bug caused them to be _most_ susceptible. Fixed.

	Maintenance:
	-Fixed the "could not find street-talk files" message that began every maintenance session
	-Sped up maintenance by reducing NPC marriage attempts

	Daily News:
	-Sometimes, the daily news would glitch and produces messages like
	 Rugwash,male,troll,barbarian
	 Fixed.

	Bob's Beer:
	+Added Man in Robes event. It was in the source, but not accessible.
	-Apologizing to an 'insulted!' event resulted in getting kicked back to Shady Shops. Fixed.
	-Brawls produced way too much stuff in the daily news. Fixed.
	-It was impossible to have the best two thief statuses when trying (T)hievery. Fixed (now an assassin can eventually become a 'master thief')
	-In the drinking competition, choice of drink did not influence anything. Fixed (now stronger drinks lead to shorter competitions)
	-In the drinking competition, messages for out-of-competition participants were not shown. Also, 'glug' messages for participants were sometimes not shown. Fixed.

	New Player Sequence:
	-No more y/n on each behavior line entered. It was way too many questions for a new user, and they can change this behavior easily from the status screen.
	-Stats was displayed twice for a new user. Fixed.
	-New users were asked their opinion of the king, even though they can't possibly know anything yet. Fixed.

	Mail:
	-When you were not allowed to play further (0 res.), each (p)lay would read one remaining letter from the mail and then exit without giving you time to read the mail. Fixed.

Version 0.23a released February 12, 2013
  - Rolled back the monster defence calculation fix.  The monsters definitely did get
    to be too hard to kill, so it's better to leave the calculation commented out
    until someone comes along that wants to re-enable it, and also rebalance all
    the monster defence attributes accordingly.

Version 0.23 released January 29, 2013

  - Ported (properly!) to Win32!
  - Fixed broken chest looting
  - Fixed 3 player vs monster bugs:
    - Assassin backstab wouldn't work correctly in classic mode
    - Monster defence calculation was using incorrect values in its calculation
    - Result of monster defence calculation was being ignored
      - This means monsters should now absorb more damage than they used to.  Let me know
        if they're too hard to kill as a result (maybe Jakob compensated for it elsewhere
        or something, so they'll be immortal now!)
  - Fixed the statusbar that gets displayed when the guards are reset (wasn't a visible
    problem in DOS, but was in the Win32 port)

Versions 0.21, 0.21a and 0.22 were my previous attempts at porting Usurper to Win32.
They all had flaws, so please don't bother trying to use any of them.  0.23 is a combination
of the good parts of each previous attempt at porting, and so you should only use it.