---- 2.1 --- - Fixed relative include problem in QCS. - Fixed memcheck. - Added vis and invis to list of customizable messages with the message command. - Fixed bug in ls command with the -b flag. - Fixed index problems in chat.c with class channels. - Fixed a problem when looking at dummy items (e.g. buttons and doors). - Fixed color code problem in the arch room screen. - Fixed problem in look verb that caused problems looking at objects that inherit LIB_DUMMY. Tons of thanks to Daelas for this save. - Unused debug lines removed, general cleanup of ugly or unnecessary comments. - Miscellaneous tightening up of domain objects such as lowering the max health of newts, etc. - Miscellaneous tidying up of lib logic, such as preventing the fly command to commence flight whether already flying or not. - KNOWN ISSUES: o The blackjack table is officially on the "I'm not fixing it" list. It is left as an example of game code, but you are warned that it contains some subtle and not-so-subtle errors in its calculations. o addr_server.exe win32 binary removed, due to bugginess. Since it hasn't been working for a while, and it was only noticed by a bugtester, it's going away until post-2.1 o A peculiarity in grammar with multiple corpses can be seen. This is partly due to a MudOS idiosyncracy which will be addressed in the future. o In some cases combat events appear slighly out of order. This will be addressed in a rewrite of combat objects in the future. ---- 2.0r29 --- - Fixed finger daemon to not display ip addresses to players. - The verb copy now handles relative paths more gracefully. - LIB_TEACHER can now know all languages with SetAllLanguages(1) - Standard chairs and beds can no longer be taken when someone is using them. - Fixed church elevator buttons. - Fixed problem with "look at pile". - Fixed problem with examining objects on surfaces. - It is now also possible to look at things carried by others, e.g. "look at shirt on fighter". - Remote finger no longer betrays invisible people. - Added sefun: alpha_strip - Room descriptions now indicate which piece of furniture a creature is resting on, if applicable. - Objects on surfaces than can be sat or lain in are not visible or accessible if someone is lying or sitting on that surface. e.g., you can't examine or get the glasses under your butt on the chair. - SetMaxHealthPoints now works as one would expect. The kitchen rat is invincible no more. - Look at <container> problem fixed. - Bank tellers (Zoe) now do a better job of retaining the correct surcharge on currency withdrawals. - Added /secure/obj/glasses.c as a creation object. Since you wear them, it's hard to lose them accidentally. Since few things are called "glasses", they won't get in the way of creating objects. New creators will have them automatically added to the table in their sample room. - One may now have a smiley in front of a channel message without it turning into an emote. - Fixed a conflict in the parsing system. - Verbified "force". - Fixed vendor bugs: appraising at zero, confusion with similar items. - Beefed up the answers_to sefun, to handle adjectives. - Fixed a couple of bugs in the lead/follow system. - Fixed null error when selling to non-vendors. - Fixed a channel log bug that logged to one of two files for some channels, depending on whether someone was logged on (!!). - Fixed bug in meals that prevented empty bottles replacing full ones. - Fixed a bug in the MudOS parser that screwed up things with apostrophes. ---- 2.0r28 --- - Fixed minor bug in body.c that interfered with collapsing. - Fixed message boards. - Added command: snoopreport - Fixed bug that caused players to be essentially immortal. - Player death history is now accurately recorded. - The command mudlist now ignores colors. ---- 2.0r27 --- - Fixed currency problem in dying NPC's. - Added commands: env, polyglottize - Fixed "about" verb. - Tweaked snoop daemon and snoop objects. - Added pay-for-lessons feature in language teachers. - Fixed bug in LIB_EXITS that hosed various things, including wandering NPC's. - mv command no longer overwrites an existing destination file. - Fixed campus rooms with hosed CanReceive()'s that horked logins. - Turned "move" command into "transfer", to address a conflict with the "move" verb. - Fixed bug in admintool that prevented assistant admins from using it. - Fixed bug in eval that prevented assistant admins from using it. - i3router: dynamic channel data is now persistent (newly created channels won't disappear when the router resets). - i3router: fixed a bug in chanlist-reply that stopped the channel list being sent to LPUni lib muds. - Modified install process to handle compiling on Wolfpaw servers. - Added code example domain that was donated by Daelas @ Moraelinost. - Added new podium, conference room, and margins command that were donated by Daelas @ Moraelinost. - i3router: correct password is now honored. - Fixed help daemon bug that displayed race help twice. - QCS: creating an enter no longer wipes exits from an existing target room. - Fixed bug in rescue login (Thanks, Nulvect). - Fixed bug in tell command that mishandled mud name ambiguity. - Fixed bug in CHAT_D that failed to return remote channel listeners. - i3router: fixed bug that incorrectly rejected targeted emotes. - Killing a creature super-ultra-extremely fast no longer generates multiple corpses. - QCS: Fixed some money problems with both how much things cost and how much money they have. - Modified encumbrance to be rather less cumbersome. - Mailer default behavior now is to notify you when you receive new mail. Already created characters do not have this default. - Fixed opacity problem in worn storage. - Fixed message board in arch room. ---- 2.0r26 --- - Plugged some serious security holes ( http://dead-souls.net/news.html#16jun06 ) - Cleaned up some unnecessary call_outs in lib objects. - Added LIB_PULL. - Added Virtual Campus domain. - Fixed qcs problem that screwed LIB_DUMMY. - Fixed local channel emote problem in RESTRICTED_INTERMUD mode. - Added sefun: alpha_crypt. - Added conference room east of the Adventurer's Hall. - admintool no longer lets you remove the last currency. - COMPAT BUSTER: UNIX version now uses MD5 crypt, like the Windows version. Character files created prior to using this driver will not work with this driver. - rwho no longer cares if the issuer of the command is invisible. ---- 2.0r25 --- - r24 had some unfortunate licensing problems attached. r25 includes a Win32 native binary that does not depend on any GPL code to run. - This release is hereby dedicated to Saquivor, who was instrumental in getting this binary compiled. - r25 lib does not differ from r24 or r23. Unless you need the native Win32 binary, you should skip this release if you have r23 or r24. ---- 2.0r24 --- - Ran into some trouble when releasing r23. For technical reasons, it's being re-released as r24. ---- 2.0r23 --- - Fixed a bug that sent local channel data to the i3 router. Sorry about this, guys. As soon as I found this, I killed it. It appears to have affected r22 only. - Fixed a conflict between room SetActions and LIB_FISHING. - It is no longer possible to fish while asleep. - Admins can no longer decre themselves. - Modified MudOS source to compile on IRIX using Nekoware. - Fixed PK bug. Added PLAYER_KILL to config.h . - Fixed problem with monitor failures and runaway snooper generation. - Fixed gate command, renamed it stargate.c. - Added Administrator's Guidebook. Initial draft available at http://dead-souls.net/guide/ - Added downloads.html to doc pages. - Added verbs.html to doc pages. - Added i3who command to list who data on all muds. - Fixed a germ bug that triggered a combat message. - Fixed an invalid index bug in STARGATE_D and in LIB_STARGATE. ---- 2.0r22 --- - Changed UNIX config and start scripts to assume Bourne shell rather than bash. - Fixed "look in" bug in transparent containers. - Added stargate lab east of the Creators' Hall. - Added sefun: compare_array. - Fixed divide-by-zero bug in net worth calculator. - Fixed "look in" bug in opaque containers. - Fixed snoop and monitoring bugs. - Added SetAction to rooms, for time-based events. See /domains/town/room/shore.c for an example. - Fixed plural limb problem in RACES_D help. - Worn/wielded items must be removed/unwielded before they can be dropped with "drop all". - Worn/wielded items must be removed/unwielded before they can be sold with "sell all". - Consolidated Windows and UNIX distributions into a single download file. - Converted class variables in STARGATE_D to mappings, and fixed "inbound/idle gate" bug, as well as room message bug. - Updated FAQs and miscellaneous documentation. - Fixed bug in RESTRICTED_CHANNELS. - Cleaned up odd function names in LIB_LEAD. - Tightened up earmuffing, added muffing of entire muds. - Fixed a bug in look verb that prevented looking at dummy items. - Fixed a few bugs in trainers. Added a SetNoSpells() lfun to control whether a trainer automatically can teach the spells she knows. - Fixed noisy index error in LIB_GERM. - Fixed CHAT_D bug that prevented talking on some channels. - Fixed problem in LIB_FISHING that made one's catch disappear. - Fixed opacity for containers. If an item's opacity is about 33 or below, its contents are visible on casual examination. Otherwise, you have to "look in" it. ---- 2.0r21 --- - Fixed a bug in "following" code. - Fixed a bug in trainer code. - Fixed latent SNOOP_D bugs. - Lowered log rotation threshold. - Corrected stat distortion problem in races.o. - Added the domaincreate command. - General minor typo/bugfixes. - Tidied up interaction between rid, suicide, and PLAYERS_D. - Updated FAQs. - Fixed bug in scan when providing all of the flags: -e -d -i - Fixed put.c. - Fixed unusually generous vendors. - Fixed bug in objects() sefun that interfered with resets. - Removed clan inheritance from gstaff.c. ---- 2.0r20 --- - "put all in <thing>" now ignores worn and wielded items. - Added commands: switchrouter, domainadmin, monitor, unmonitor. - (hopefully) Fixed rare and peculiar bug that hosed up logins unpredictably. - Added the Jonez stargate system. - Container bug fixed. It is now possible to put amounts of money into containers and onto surfaces. - Daemonized snoop system. This permits the logging of snoop data, unmanned snoop logs, and snooping multiple players at once. Still slightly buggy, so please report any problems with it. - The encre and decre of non-logged-on users now behaves properly. - Furnaces now destroy objects almost immediately. - Fixed voting system. - LIB_GUILD changed to LIB_CLAN. It works, but is not actually useful. Proper clan functionality is planned post-2.1. - Heal command now fixes individual limbs as well. - Added ENABLE_ENCUMBRANCE define to config.h to toggle the encumbrance combat modifier. - Modified combat so it's difficult to fight while carrying stuff. Anything worn or wielded doesn't affect combat capability. NPC's are unaffected by this. - Fixed horrendous carry-capacity leak in all containers. - Added "every" token to reload verb, enabling the reload of all loaded objects that inherit the specified library object, eg "reload every npc". - Fixed bugs in invisibility. - Enabled QCS to work in /domains directories for creators set as domain admins with the domainadmin command. - Fixed error in RACES_D that dramatically distorted stats. - Added sefun: domain_admin. - Fixed mudlist cache problem. - Added command: switchrouter, domainadmin. - Added set_heart_beat to QCS. - Fixed bugs in commands: banish, anglicize. - Integrated most packet data with network room. - Added router room for I3 router debugging. - Integrated most I3 packets with router room. ---- 2.0r19 --- - Fixed menu item bug in LIB_BARKEEP. - Fixed Ylsrim pub. - Added keepalive pinger tool to wiz chest. - Added commands: anglicize, debug, expel, resetpasswd. - Fixed first boot problem with /secure/daemon/letters.c. - Driver: set heart_beat to approximately one per second. - Driver: added locale workaround to startmud script. - Added Brodbane's New and Improved cp command. - Added Brodbane's sefuns: wild_card, remove_dots. - Elision bug in pager.c fixed by Brodbane. - Added network troubleshooting room. - Fixed bug in invisibility. - Made tricorder and remote control emit warnings, logs, and errors when used by a non-creator who does not have a visitor pass. - Added colon emote behavior to channels, eg, "ds :smile" works the same as "dsemote smile". - Tim's I3 router integrated into the lib. Fixes forthcoming. - Object Properties map variable now persists as well. - Added Brodbane's dsversion command. - Fixed bug in LIB_SENTIENT eventReceiveEmote. - Added Shadyman's fix to the imc2 daemon. - Added language teacher and schoolhouse to /domains/town. - Added LIB_TEACHER. - Tweaked interactive.c to omit null obvious exits. - Fixed "list" conflict with restricted channels and shops. - Added SetNativeLanguage to QCS. - Added PINGING_MUDS, ENGLISH_ONLY and HUMANS_ONLY defines to config.h. - Added commands: anglicize, debug, expel. - Added SetNativeLanguage() to LIB_LANGUAGE. - Added GetEquippedLimbs() to LIB_BODY. - Visitor's pass now suppresses autosave messages. - Full cardinal direction aliases added to players (eg "north"). - Added direction aliases to 'peer' command. - Player Properties map variable now persists across quits and boots. This may or may not be a good thing, and could change in future releases. - Added sefuns debug(), tell_creators(); - Fixed socket_address(). - Added AUTOEXEC_D. ---- 2.0r18 --- - Changed default intermud router to 149.152.218.102 port 23 - Added a sanity check in telnet room. - Fixed bug in Newbie Mansion Quest (thx Jonez). - Added verb: pulsecheck. - Fixed bug in delete verb that broke when deleting an item with a relative include defined. - Fixed a wielding bug that let you wield a two-handed weapon AND a one-handed weapon. - Added more damage types. - Fixed month bug in timestamp.c. - Fixed light bug in ROOM_VOID. ---- 2.0r17 --- - Fixed bug that prevented assistant admins from shutting down. - Added Shadyman's emote doc. - Tweaked timestamp() (thx, Jonez). - Tweaked "dest" code (thx, Cecil). - Added convert_ascii() sefun to stringify ascii codes. - Added get_random_living() sefun. - QCS now sanely stops when the target is virtual. - Players can no longer be hosed by being initfixed. - Fixed bug that returned conflicting messages if an intermud tell was received while invis with voicemail enabled. - timezone.cfg can now be set to blank with admintool. - Fixed problem in CHAT_D that restricted local channel emotes when intermud was set to be restricted. - Fixed a bug in null currency addition in admintool. - Smushed another apostrophe problem. This is really ridiculous, I should just fix the real problem, but it's such a dumb bug, it's easier to pretend it doesn't exist. - Added SetCustomXP to /lib/combat so that NPC's can have expee value independent of that calculated from their level. - Added SetCustomXP to QCS. - Wrapped users() efun in a sefun to exclude users without an environment. - Removed old, counterproductive intermud update event. - Added log rotation daemon in /secure/daemon/log.c - Added a log rotation check every 2 hours. - Format of timestamp() sefun changed to prevent screwing the mud when running on Windows and logs rotate. - Fixed bug in update() sefun. - Prettified devel mud welcome file and added warning about submitted code being automatically GPL. - The title and chfn commands now automatically update finger info with current data. - *COMPAT BUSTER* RACES_D re-written (Thanks, Ashon). If you've added your own races, you'll need to re-add them using the new format. - /www FAQ material updated. - Fixed Radagast's training skills, fixed QCS trainer creation. - Modified telnet room to not permit recursive logins on the development Dead Souls mud. - Removed nonexistent boards from boards command. - Added commands: addraces, removeraces, ascii, resetall, flushobs. ---- 2.0r16 --- - Admin email specified at login now gets sent to config.h. - New FAQ material added to /www - If a file exists in /doc/help/races for a specified race, help <race> will display that file instead of the autogenerated race body data. ---- 2.0r15 --- - Intermud can be disabled entirely by toggling DISABLE_INTERMUD in /secure/include/config.h. - *COMPAT BUSTER* Basic framework for race-based skills in place. Old races.o files will not work with the new race data file format expected by RACES_D. - Fleas and lice examples now unbroken. - Peer command unbroken. - Fixed miscellaneous i3 services bugs. - Tweaked the apostrophe workaround. - "cd here" now works. - Added intermud link failure/restoration announcement to arch room. - Fixed LIB_READ so that receiving a string for a functional's return of a GetRead makes that string the text to be read. - Fixed read bug in /lib/bboard.c. - Fixed a problem with eval that puked on ASSIST members. - Fixes and updates made to answering machine. Intermud tell support added. - Intermud tells now reach the player if she is invisible. The tell sender's mud receives an "unknown user" error, and the player receives an "unknowingly tells you" message. - Intermud channels can be disabled by toggling RESTRICTED_INTERMUD in /secure/include/config.h. Exceptions to this restriction can be made by adding users to the INTERMUD group using admintool. - Automatic promotion of new characters to creator status can be enabled by editing /secure/include/config.h and toggling AUTO_WIZ. - Update and runtime errors now attempt to display more helpful messages to the user, if the user is a creator (Thx, Brodbane). - Error logs now include timestamps. - Added trainers to QCS. - *COMPAT BUSTER*: Trainer skills now have to be specified with an array, not just a series of strings: RIGHT: AddTrainingSkills( ({ "alpha", "bravo", "charlie" }) ); WRONG: AddTrainingSkills( "alpha", "bravo", "charlie" ); - Fixed error message bug in /lib/trainer.c. - Fixed chat.c bug that allowed emotes from earmuffed players to be printed. - Added languages to say verb. - Added languages to reading. - Added commands: language, ping. - Updated/added various help files. - Added FAQs (/doc/faq...accessed with the faq command). - Updated Player's Handbook. - Miscellaneous header fixes. - Fixed issues in description.c and look.c that interfered with having multiple Item elements in objects and having arrays for keys in Item elements in objects. - Added IDLE_TIMEOUT to /secure/include/config.h - Added sefuns: imud_privp, find_inheritors, find_deep_inheritors, securep. - Overhauled limb and corpse decay. DECAY_D now handles the callouts, reducing the number of decaying callouts to 1, regardless of the number of limbs and corpses lying about. - Limb ID bug fixed. - Added tweaks to read verb and faq command submitted by Manchi. ---- 2.0r14 --- - Added barkeeps to QCS. - Added vendors to QCS. - Barkeeps now properly handle array keys in menu items. See Lars. - Updated www directory. - Abbreviated RELEASE_NOTES: dropped pre-v2 data. - Added commands: consider, whomuffed. - Fixed QCS bug that hosed room paths. See "room filenames" notes in chapter 35 of the Creator's Manual. - Fixed problem with hobbling 4-legged NPC's. - Additional docs, helpfiles, updated faqs and expanded QCS chapters. ---- 2.0r13 --- - Numerous minor fixes to commands and lib objects. - Keepalive daemon implemented to detect when the intermud connection is down and attempts to restart it. - Intermud services now supports "auth" packets, somewhat. - The bk command now also works on objects. - Added commands: kills, chanban, chanunban, earmuff, unmuff. - Fixed duplicate handbook bug in encre. - New cres are no longer forced to quit. - Fixed parser bug when dealing with identical items in different containers. - Added sefuns: query_names, answers_to, add_event, remove_event, update, local_ctime. - Fixed events system (see *_event sefuns). - Non-admins now can't use the dest or trans commands on admins. Note that if a creator really wants to, she could get around using the commands and trans or dest you anyway. However, now they can't do it "accidentally". - The bull shark is no longer drinkable. - Applied workaround to an apostrophe bug. Full fix pending. - More sefun documentation. ---- 2.0r12 --- - Fixed function conflict that made "scan -i" fail. - Tightened up "get" lib code. - Verbified "zap". - Added atoi sefun. - Added LIB_WORN_STORAGE to more gracefully handle wearable containers like backpacks and such, also added it to QCS. - QCS: fixed a bug that hosed up armor protection settings. ---- 2.0r11 --- - Added findobs sefun and findobj command. - Fixed "no steal" item property so thieves can't steal such things. - Android corpses and severed limbs now decay in their own special way. - Fixed up the sample flu and cold so they don't permanently affect a a player's stats. Added a very nasty rage virus. - Ftpd and httpd now work (Thanks to Duuk @ Haven). To enable them, uncomment inet in /secure/cfg/preload.cfg. They are UNSUPPORTED, and if they ruin your life, it's not my problem. System security is on you. - Added valid_link() to master.c so that link() efun works. An interactive, privileged, nonforced object is required in the previous_object() stack to avoid abuse. Do NOT use this functionality unless you know EXACTLY what you're doing. It probably doesn't work the way you think it does. Be especially careful not to link privileged files to directories that unprivileged users have write access to. Windows users should just forget they read any of this. - Verbified dest command. Peculiar "desting of nonexistent things" bug should be dead at long last. - Golems can have their composition specified. As an example, the combat dummy is now a wood golem. - Creatures born without limbs are now able to fight while in their natural prone position. Creatures who used to have limbs and no longer do have more limited options. - SetUnique() now does what common sense requires. ---- 2.0r10 --- - Fixed a problem in the death system that allowed creators to be undead without quite realizing it. - Fixed miscellaneous minor gotchas in the sample town. - Added commands: lightme, quests. - Tweaked miscellaneous commands. - Fixed germs, added germ testing lab east of the wiz hall. ---- 2.0r9 --- - Added a <death> channel for kills notices. - Miscellaneous fixes, tweak, etc. - Fixed channels bug that changed lognames if someone was listening to a channel. Now both log. - Encre now forces the new creator to quit. This is necessary in order to enable certain characteristics of their new body. - Fixed a truly vile room bug that leaked objects and memory. - Added reaper daemon to clean up junk from memory. - Fixed multiple bugs in lighting system. - Added light meter to creators' chest. - Removed roommaker from creators' chest. - Fixed remaining goto command problem. - Set EXTRA_TIME_OFFSET in /secure/include/config.h to 0. - Fixed bug in rescue login. Creators now can use it. - Reorganized efun man pages and added missing efun and sefun docs. - Added flying system. - QCS feature add: you can now add includes and inherits. - QCS fix: modify <thing> delete <directive> now works properly. - Added numerous new directives to QCS. - Added lib object check and NoModify checks to QCS verbs. - Fixed object manipulation: creatures without prehensile appendages can no longer accept or manipulate objects. If a creator somehow manages to lose both hands they can use the "heal" command to fully restore themselves. - Fixed a variety of body related issues with races, created a menagerie of sample npc's for testing. - Fixed stealing system, added thief class. - Miscellaneous lib object fixes and additions (eg SetAction now takes mixed arrays, new SetPermitLoad lfun on npc's, some npc move messages fixed, etc). ---- 2.0r8 --- - Added intermud announcements to arch room (/secure/room/arch). - Fixed bug in targeted intermud emotes. - Channels now log without needing to have a player listening. - Admin channel now logs to /secure/log - Fixed lib/std/book.c bug that failed horribly if there was a hidden file in the text source directory. - Extensive code cleanup of unused variables. - Miscellaneous tweaks to sample domain. - Added tighter restriction to "no teleport" property in rooms. - Miscellaneous fixes of verb code. - Modified wrap() sefun to output truncated text rather than just error out when buffer overflows. - Added arch command. - Added EXTRA_TIME_OFFSET parameter to /secure/include/config.h to accommodate OS'es with peculiar timekeeping. - Changed local_options to avoid excessive warning messages in /log/errors. This is only useful if doing a new install of Dead Souls, or if you copy local_options from the full distribution and recompile the driver. For the Windows version, all that is needed is to copy the new driver.exe over the old one, if you're doing an upgrade. - Rescue login feature added. If when you try to log in, everything goes to hell, try logging in adding "_rescue" to your name, which in my case is: cratylus_rescue - For admins, eval now writes the temp file to /secure, to avoid annoying /realms dir permission conflicts. - Cleaned up goto and dest command ugliness. - Modified reload command and reload() sefun not to perform recursive updates by default. This should speed up QCS response time and cut down on mud-wide lag. - Added some directives to QCS. ---- 2.0r7 --- - Added sample virtual forest to town area. - Added intermud list of Dead Souls muds to arch room ("read screen"). - Added mudtime and ticktock commands, and tweaked the time system. - Updated documentation. - Added Tim's imc2 client. Doesn't quite work yet. Suggestions welcome. - Created ds intermud channels ds and ds_test. Enabled ds for cres by default (i3 names: dead_souls, dead_test4). - Balanced/fixed attack spells a bit. - Fixed QCS bug that prevented barkeeps from having stuff added to their inventories. - Made it harder to join the mages (The game is too hard for a first level mage). - Fixed a bug that made Herkimer a cheat. - Applied workaround for a bug in Clepius. ---- 2.0r6 --- - Added manuals and such to first admin logon. - Cleaned up miscellaneous login quirks. - Got rid of that pesky elog message at startup. - Updated news files. ---- 2.0r5 --- - Fixed problem with loading a working handbook on first login. - Fixed QCS bug of reloading files instead of objects. - Added CREDITS file. ---- 2.0r4 --- - Nailed down nasty bug that overwrote rooms when creating an enter. - Fixed a bug in "give" code that prevented giving of money. - Fixed door bug that prevented proper setting of SetLocked and SetClosed. - Updated some minor documentation unclarities. - Modified reload() sefun and update command, as well as LastLocation settings to avoid unnecesary teleportation when reloading objects. - Modified donate verb and lib object to behave more sanely. - QCS code cleanup and tightening, also added inits to templates. - Tightened up sample town code. - Added Players Handbook ---- 2.0r3 --- - Added workaround for Windows time-of-day problem. - Fixed minor QCS issues. ---- 2.0r2 --- - Many QCS fixes and updates. - Added doors and meals to QCS. - Added thorough QCS documentation: /doc/manual/chapter31 and above. ---- 2.0r1 --- - Fixed peculiar "multiple doors in a room" bug.