ORB - Offline Room Builder Version 2.1

Contents
--------
1.  What is ORB?
2.  System Requirements?
3.  How often is ORB updated?
4.  How do I use ORB?
5.  Work in progress
6.  Revision History
7.  FAQ's
8.  Contact Information


1.  What is ORB?
----------------

ORB is a 32-bit windows program for creating and editing multiuser dungeon (MUD)
area files. The current release of ORB only works with area files created for
SMAUG baed MUDS.  An since SMAUG is a descendant of the Merc and Diku, it is
capable of read their area files.

ORB allows everyone to design areas without needing special privledges and/or
permissions to online builder command and VNUMS.  ORB also gives an option to
MUD administrators who are concered about giving out access to unknown people
who want to build for their MUD.

ORB's graphical interface allows you to quickly navigate through items such as
rooms, mobiles, objects, and resets.  Since all area editing in done locally
there are no delays due to lag, player interruptions, and/or system crashes.

In addition to designing areas, ORB may be used to preview, renumber, and
convert areas.  The preview mode allows you to walk through your areas and
interact as if you were building online.  The renumber feature will quickly
renumber all rooms, mobiles, objects, doors, keys, and their assiciated resets.
ORB is capable of converting areas designed for MERC and ROM.

********************************************************************************
NOTE: This is a perpetual project.  You are encouraged to use and distribute
ORB.  BUT, please report all problems back to me.  I can be reached by e-mail
(jfroman@earthlink.net).
********************************************************************************


2.  System Requirements?
------------------------

ORB will only run with Windows 95 and Window NT 4.x.  I have used some controls
in ORB that are native to those operating systems.  If you get it working on any
other platform, share your success with me so I may pass it on to others.  I
have some reports that earlier versions of ORB would work on a Windows 3.1
system with WIN32S installed.


3.  How often is ORB updated?
-----------------------------------------------

Depends on my time and motivation.  If I am recieving feedback from the users,
then I will be more encouraged to work more.  I am also married and a father
of two and it affects my free time as well.


4.  How do I use ORB?
---------------------

Most options are available from the application menu or by the right-click menu.
Pressing the right mouse button on list windows, listboxes, and tree windows
will present an options menu.  Some items may also be selected by
double-clicking.  For more information, check out the help file that comes with
ORB.


5.  Work in Progress
--------------------

- SmaugWiz compatability.
- Restructuring memory structures.
- Moving more codes to the ORB.INI file.
- Mapping.
- RSET command in Preview Mode
- Manage resets from the Preview Mode.


6.  Revision History
--------------------
03/03/00   - Updated the compiler to Borland C++ Builder Version 5.
           - Fixed a memory leak from not releasing all of the reset structures.
           - Changed the save routine to only write the HELP header if there are
             help records to write.
           - Cleaned up memory errors in the ROM load routine.
           - Cleaned up a memory leak within MRU update code.
           - Corrected the problem with the room flags not being visible within
             the ORB0229C release or ORB.
           - Corrected the problem with the room not saving the description
             properly in the ORB0229C release of ORB.

02/29/00   - Changed the About window to have hyptetext links.
           - Changed how the Splash window was displayed by the application.
           - Rooms, Objects, and Mobiles can be renumbered individually.
           - Redesigned ROOM structures.
           - NOMOB flag will no longer appear on rooms without exits.
           - Corrected the "Unable to locate room to link the reset." error
             when closing the Exit window.
           - Added Closed and Locked columns to the Room detail display in the
             main area window.
           - Moved Program Types to ORB.INI so they can be customized.
           - Cleaned up the Popup Menu in the Area Window.

09/10/99   - Changed report format.
           - Fixed the error you get when you view an area in Preview mode.

08/31/99   - Program renumbering is fixed.  Return characters will now longer
             disappear.
           - Mobile classes will now display and save properly.
           - When closing the Room window, I check to make sure the last
             character in the desctription is a return character (\n).
           - The MOBILE read routine will no longer crash when the race is
             set to a value higher that 10.
           - Search added to Text Edit window.
           - Scroll bars added to Text Edit window.
           - Objects will now display reset information in the Area window.
           - You may now insert a reset into a room from when the MOBILE or
             OBJECT items are selected in the area window.
           - You may now delete a reset when the MOBILE or OBJECT items are
             selected in the area window.
           - You may now duplicate a reset when the MOBILE or OBJECT items are
             selected in the area window.
           - Printing has now been written.
           - Resets can be added by double-clicking on the first node in the
             tree view.
           - Popup insert window now allows you to double-click on your selection.
           - The help file has been expanded to more fully cover how ORB works.

03/12/99   - Programs are renumbered (except for the if checks).
           - Fixed some memory leaks.
           - The Room, Object, and Mobile edit windows now validate the VNUM.
             Zero VNUMs are no longer allowed.
           - Mobile races will now convert correctly from ROM.
           - Fixed some errors associated with reading flags from ROM area files.
           - Added a status window before the Preview window to get rid of all
             the message boxes.
           - Direction abbreviations may now be used with the DIG command.

10/15/98   - When the area window switched to the last room in the Preview mode,
             the room will scroll into view.
           - The help file has had some more work done to it.  It now has some
             how to use ORB topics in it.  I also added some descriptions for
             helps, shops, resets, and specials.
           - Added a command to the Preview mode called DIG.  It will allow you
             to create an exit while still in Preview mode.  The syntax is:
             DIG <vnum> | <direction>.  DIG <vnum> will create a new room with
             a VNUM of <vnum>.  DIG <direction> will create a room in the
             <direction> specified along with an exit to that room.
           - Added a EDIT command to the Preview mode.  EDIT will popup the edit
             window for the Room you are currently in at the time.
           - Added scripting to Preview mode.  The syntax is @<script filename>.
             An example would be @myscript.txt.

9/28/98    - All flags can be set to extended from the ORB.INI file.
           - Positions will now convert properly when saving to the 1.2 format.
           - Positions will no longer change in the editor after saving to the
             1.2 format.
           - Flag reads have been corrected on lines with a variable number of
             values.
           - Traps will now be included in the Renumber correctly.
           - Insert Exits from the main area window with a reverse exit will no
             longer cause an exception.
           - The Preview mode will start from the current room selected in the
             Area window.  If no room is selected, then the Preview mode will
             start with the first room in the area.
           - The focus in the Area window will change to the current room
             displayed in the preview mode.  This may be turned off from the
             Option window.
           - An option was added to allow you to control if the Area windows
             focus changes after leaving the Preview mode.
           - Cleaned out obsolete structures and code.
           - Moved the NPC Race declarations to the ORB.INI file.
           - Moved the NPC Class declarations to the ORB.INI file.
           - Moved the Sector Type declarations to the ORB.INI file.
           - Moved the Apply Type declarations to the ORB.INI file.
           - Programs with a type of PULL_PROG will now display correctly.
           - Mobiles will now have a position and defposition if standing for a
             default.
           - The help file that comes with ORB now has a little substance.  It
             is a long way from  being finished, but it is getting better.
           - The Reset section of the Area window will now display the rooms
             where the Mobile has been set as a reset.
           - Affects will no longer cause bit errors when starting the Preview
             mode.

9/4/98     - ORB can now read the SKILLS.DAT file from SMAUG 1.4.

9/2/98     - Slot Numbers were not saving correctly when using the SMAUG 1.4
             format.

9/1/98     - Object extra flags were saving incorrectly.  I was trying to save a
             string as a number.  Oops.
           - You can now create the reverse exit to the current exit from the
             EXIT window.
           - Find has been added for the area window.
           - Object value fields were not being read correctly.

8/31/98    - The Affects were not listing the apply types correctly for affects.  I messed
             them up when I was changing around the bit vectors.
           - The exits flags will now load properly.
           - The Affects will now display properly in the Area window.

8/30/98    - Cleared up the problems with slot number not saving correctly.
           - The GOTO option has been readded to the exit listbox in the ROOM window.
           - ORB now supports the new SMAUG 1.4 area formats.  
           - A setting was added to the Options window to allow areas to be saved as
             either SMAUG 1.2 or 1.4.
           - The Most Recently Used (MRU) file list was readded.
           - Removed some fields from the windows that were not being used.
           - All bit vectors have been made completely configurable through the ORB.INI. 

7/30/98    - The sex for mobiles was always being set to neuter.
           - Right-clicking on a listbox will give the listbox focus.
           - Somewhere is listed in the exit directions.
           - All listboxes are now sorted.
           - A couple of options have been added to control how the area is saved.
           - A dialog will now be displayed after an area has been saved.
           - The Ctrl-S hotkey has been removed from the Sort menu option.
           - Default values have been added to the area header when a new area is created.

7/29/98    - The Sector Types were missing from the drop down in the ROOM window.
           - I have done some coding to eliminate some of the reported exception errors.

7/28/98    - Updated the MERC conversion routines.  User can now specify the type of file
             to open by using the 'Open As' menu option.
           - Using the 'Open As Merc' menu option will interprete wear positions cirrectly.
           - ORB can now read ROM area files.
           - A text editor has been added.
           - The NPC flag is now defaulted for all mobiles.
           - The Preview mode has been cleaned up.
           - More hot keys have been added.
           - The duplicate option now works for resets.
           - The description fields now used a fixed font and a ruler has been placed above 
             the field.
           - The description fields no longer wrap.  You do have to press return at the end
             of the line.
           - Hide, Randomize, and Trap resets have been added to ORB.
           - An options window has been added to allow the user to turn off backups and set
             the area directory.
           - ORB can now load an unlimited number of skills.
           - A status window is now dislpayed when an area is read into ORB.
           - When a VNUM is defaulted, it will use the lowest unused number.
           - HELPS will now save.
           - ORB was totally redesigned with Borland C++Builder.

6/24/98    - Corrected the crash that occured when a new room is created from the exit 
             validation routine.
           - ORB will no longer crash when you press <Enter> immediately after opening
             a MOBILE window.
           - More accelerators have been added to the menus (Open, Save, Preview, Renumber).
           - Skills with a slot number of 0 will no longer show up in the lookup window.
           - It is now possible to sort the Skills in the slot lookup window by 
             clicking on the column heading.
           - Pressing the <Esc> key in the MOBILE window will no longer affect the display.

6/16/98    - ORB won't crash when it can not find the associated mobile for a special.
           - SKILLS.DAT is now being loaded to validate spells for affects, scrolls and 
             objects.
           - The OBJECT window now provides labels for values 0 - 5 based on the item type.
           - A button has been added to the OBJECT window so you can lookup slot numbers.

5/28/98    - The duplicate function in now working again.
           - The edit windows will no longer crash ORB when a flag is used that is not 
             defined.

5/20/98    - The Alignment and saving throw fields on the MOBILE window will now accept 
             negative numbers.
           - The flags window is now responsible for updating the calling list control.
           - Some extra code was removed.
           - Fixed a memory error when deleting SHOPS and REPAIRS.

5/11/98    - Fixed a memory access problem in the FLAGS module.

4/29/98    - When an exit is deleted, it will take its associated resets with it.

4/27/98    - Object affects and values will now accept negative values.

4/24/98    - It is now possible to add resets to new rooms or rooms without prior resets.

4/17/98    - Corrected the problem with the flags now showing up in the insert window.
           - Changed the linking method for MUDPROGS.
           - Consolidated duplicate routines to call the same functions.
           - It is now possible to create and edit mud progs, exits, and affects of the same 
             type or direction.
           - Object affects have been added to the list of subitems on the main window.

4/15/98    - The Defense list will now contain values.
           - Changed the main area window to show more information.
           - The PREVIEW mode will now interperet color strings based on what the color symbol 
             is set to in the ORB.INI file. (I do not have the background colors done yet.)
           - The status bar will now be updated when an item is select from the list controls.
           - Resets are now created, edited, and deleted from the main area window.
           - It is now possible to edit exits, extra descriptions, and mud programs from the 
             main area window.
           - Corrected the problems with the Speaking listbox in the MOBILES window.
           - Removed extra code from the routines for inserting and deleting flags.

4/6/98     - The load routine will now handle comments in the SPECIALS section now.
           - IN_FILE MOB programs will now be read correctly.  ORB will look for them in the
             'MOBProgs' directory under the area's directory.
           - Corrected the GPF that occured when putting items into a container.

4/2/98     - The DELETE right-click menu option is now working for the EXIT flags.
           - All flags can now be assigned.  ORB was excluding the first flags.
           - The AC and MOBTHAC0 fields in the MOBILES window will now accept a negative.
           - The FLAG insert windows can now be used to select more than one flag at a time.
           - Code was added to read, save, and delete RANDOM, TRAP, HIDE, and BIT resets.

3/31/98    - Number fields will no longer accept anything other that numbers as input.
           - The bit fields not showing up correctly in all the listboxes has been fixed.
           - Fixed a the SplashWindow setting to not disable the rest of the load process.
           - Got rid if all the DAT files and moved the BIT settings to the ORB.INI file.

3/27/98    - Corrected the validation of the put 'P' resets.
           - Corrected the ResetArea function.  It was falling into an infinite loop when
             an unreferenced vnum was encountered.
           - Compiled the bitmap for the SplashWindow into the ORB exe.  This caused a minor
             increase in the executable size but not ORB's memory requirements.
           - ORB will now accept a file name as a command-line parameter.
           - The LIST command has been added to the PREVIEW mode.

3/20/98    - Made sure all description and name fields would scroll horizontally.
           - Made sure all multiline fields would except return and scroll vertically.
           - Updated the MOBILE Long Description field to make sure the last character is a 
             return (\n).
           - Changed the storage structure for the resets to speed up ORB and made it easier
             for me to perform error checking.  The functions for saving, renumbering, setting, 
             and editing resets were all reworked for this change.
           - Changed the RESET window in the TOOLBOX menu to a TreeView instead of a ListView.
           - Fixed the problem with resets getting out of alignment when you add a mobile and
             give it objects and equipment at the same time.
           - When a ROOM is deleted, it will take all the associated resets with it.
           - It is now possible to delete mobile (M) and object (O) resets.  When they are 
             deleted, they will take all their associated resets with them.
           - It is now possible to delete equipment (E) and give (G) resets.  When they are 
             deleted, they will take all their associated resets with them.
           - It is now possible to delete put (P) resets.  When they are deleted, they will 
             take all their associated resets with them.

3/17/98    - Moved the flags to DAT files.  This is so flags can be edited and additional flags 
             can be defined up to the 32 bit limit.  Right now ORB is still using the constants
             for validation.  This will be changed in the future but for now it is not a good
             idea to reassign the flags that already exist.
           - Corrected an error with the save routine where it was trying to translate a NULL
             string.
           - The accelerators (hot keys) now work properly from the list window.  I also added
             accelerators for Duplicate (Alt-D) and Sort (Alt-S).
           - Invalid exits are no longer deleted.
           - The IN_FILE_PROG type was removed from the available choices for program types.

3/12/98    - The MOBILE window had a problem with not properly linking in new programs.
           - Changed the scheme for saving backup files when saving.  The backup files will 
             now get a number for an extension and will not overwrite one another.
           - Removed the BALANCE menu option.  Balance is a very subjective thing and I can
             not come up with a method that will be accurate.  It may return to the menu at
             a later time.
           - Streamlined some of the code.

3/9/98     - Fixed the problem with the MOBILE window not saving changes.
           - Added a completion message to the RENUMBER function.

3/5/98     - Fixed a GPF by initializing the pVnum and pKeeper pointers to NULL in the base 
             class.  The GPF occured every so ofthen when opening a window where the pointers 
             are used.
           - I have started to add color to the PREVIEW mode.  It is not done yet, but you
             will start to see some differences in the PREVIEW window.

3/4/98     - You can no longer edit the identifing vnums for MOBILES, ROOMS, or OBJECTS.
           - Restructured MOBILE window to inherit from TBase like all the other windows.
           - You can no longer change the keeper for SHOPS and REPAIRS.
           - Updated the InsertFlag and DeleteFlag routines to take care of some problems.
           - Changed all list boxes to force the scroll bar to be visible to take case of
             the flash when scrolling through windows.

3/2/98     - Only mobiles with spec_funs will save in the #SPECIALS section of the area.
           - Prev and Next are now disabled for all inserts.
           - HELP window has been expanded a bit.
           - The functions for loading help have now been adjusted to allow the controls
             to handle sorting instead of the load process.
           - The MOBILE window will now correctly keep track of itself when the next and 
             prev buttons are used.
           - Errors with the next and prev buttons have been resolved.  (I hate typos)
           - Next and prev buttons have been added to the HELP window.

2/26/98    - Corrected the problems with new Shops and Repairs not saving.
           - Changed the storage method for Shop and Repair nodes.
           - Spec_funs will now save properly.
           - Multiline fields will now accept returns.
           - Mobile window will know move between fields correctly.
	   - Added previous and next buttons to the room, mobile, and object windows.

2/23/98    - Updated the sort option.
           - Removed the Cut, Copy, Past, and Undo menu options since they are not needed.
           - Removed the Filter menu option until the next version of ORB.
           - Deleted some old code that was no longer needed by the interface.
           - Doubleclicking on an item in a listbox will now edit the record.
           - The Renumber option is now fully functional.

2/19/98    - Resets can now be created to give objects to mobiles and place objects inside
             those objects.
           - Nested object resets will now get placed into the reset list so they are placed
             in the proper container.
           - Resets can now be create to equip mobiles with objects.
           - A listbox has been added to make editing exit flags easier.
           - A checkboxes were added for the closed and locked states in the exit window.
           - Added a popup menu option from the EXIT listbox in the ROOM window to GOTO 
             a connected room if it exists.
           - The EXIT window will now validate the VNUM.  If the VNUM does not exist a
             window will appear giving the option to create the room.
           - Reworked the popup menu interface to get rid of some osolete functions.
           - Reorganized the program structure to make the base code more reusable.
           - Sort option now works by selecting the menu option or by clicking on the 
             column headings in the listview.
             
2/11/98    - Got rid of a lot of excess code.
           - The area title will display when a file is opened with File | Open menu option.
           - The application will no longer close when an area file is closed after it has
             been previewed.  This error was causing some of the logger messages to appear.
           - Fixed a lot of memory errors associated with the preview mode and sub windows
             such as exits.

2/10/98    - Corrected a memory error when inserting a new item in a new area file.

2/9/98     - Added support information to the About window.
           - Changed all splashwindow settings so they are read from ORB.INI.
           - Changed the bitmap for the splashwindow.  It is now called ORB256.BMP.
           - SplashWindow will now display (without exception errors) when video resolution
             has 256 or more colors.
           - VNUMs will now default based on the values in the Header.  The VNUMs will not 
             default if the DefaultVNUM setting in ORB.INI is set to 0.
           - The INS and DEL accelerators will now work from the object list.     
           - An option was added to the right click menu to allow items in the list window
             to be duplicated.
           - Validation was added to make sure there are rooms defined before allowing
             the preview mode to be selected.

2/6/98     - Updated the menu and toolbar to reflect the direction of my development.
           - Made changes to the application as an attempt to address the GDI errors
             that have been reported by a few users.
           - Added an exception handler to the splashwindow to capture and ignore any
             errors caused by video resolution.
           - I now check the numbers of colors before I display the spashwindow.  If there
             are more than 256 colors, then I display the splashwindow.

2/4/98     - Updated the description fields to scroll horizontally or vertically as 
             needed.

1/30/98    - Added a setting to the ORB.INI file to allow the user to disable the spalsh
             screen.  (0 = Off, 1 = On)

1/28/98    - Reworked the splash window.  Added a statusbar and changed the place in the
             code where it was being created to avoid errors.
           - Finished making corrections to application data transfer mechanisms.
           - Expanded the size of the hit plus and damage plus fields in the MOBILE window.
           - OPEN and CLOSE commands were added to the preview mode.
           - LOCK and UNLOCK commands were added to the preview mode.
           - The page fault that occured when the Preview mode was opened more than once
             has been solved.
           - The room name field now will scroll horizontally when the text exceeds the size
             of the text area.

1/26/98    - Southwest was missing.  It has been found.
	   - When inserting a susceptible flag it was showing up in the immune listbox.
           - When you right click on a listbox it will also give the listbox focus.
           - The page fault error has been corrected.  (At least the corrections I made
             have eliminated the error in my testing.)

1/22/98    - The OBJECT and ROOM windows have been finished as well as the FLAGS
             interface.  
           - It is now possible to add object resets from the ROOM window and put
             objects inside those objects.
           - The delete menu selection is now fully active for all listboxes.

1/21/98    - Some major memory problems were resolved.  
           - The MOBILE window has been reworked to make room for the attributes 
             associated with complex mobiles.
           - The MOBILE window has been finished.
           - The flags interface is finished in the ROOM and MOBILE window.

1/15/98    - A new DEMO release with some delete and reset functionality.

1/13/98    - DEMO release for selected evaluation. 


7.  FAQ's
---------

- What are all the Unknown flags when I edit a room, mobile, object, header, or exit?

    They are there because the flag number listed in not defined in the ORB.INI file.

- What are all the files in the current version of ORB?

    ORB.EXE	- The Application
    ORB.INI	- The initialization parameters.  (Bits are in this file)
    ORB.HLP	- Windows help file
    README.TXT	- This document
    TEST.ARE  	- A test area file
    LICENSE.TXT - ORB's license
    LICENSE.DKU	- Diku's license for the mud code base
    LICENSE.MRC	- Merc's license for the mud code base
    LICENSE.SMG	- Smaug's license for the mud code base
    CREDITS.TXT	- The credits for all who have contributed to ORB's development

- What are the 'Logger' and 'Possible memory leak' errors?

    These are not really errors.  The messages are informational and allow me to debug
    the code while ORB is in development.  What happens is the application terminates
    when it was not supposed to and the memory check is performed before the clean-up
    events have been run.

- How can I report an error?

    When an error is encountered while running ORB, please e-mail me with as much detail
    as possible about the error.  This detail should consist of the steps to reproduce 
    the error.  See the contact information listed below for my e-mail address.
    
- I keep getting GPF's and page faults.  What is wrong?

    ORB is still a work in progress and there will be some memory errors.  The best thing
    to do is tell me about the error and I will work on fixing it.  I added a large amount
    of memory validation functions, and already reduced a lot of the errors.

- When starting ORB, I get a GDI Error.

    I have been working on this error and have found out the following.  If I run in a 
    video resolution with 256 or less colors, I get the GDI error.  As a work around to
    this problem I have done the following:  I have provided a setting in the ORB.INI
    file so you may disable the SplashWindow (see below) and I have written some error 
    checking into ORB to try and bypass the error.  You can also try to set your video
    driver to display more colors.  (NOTE: This was fixed in the 2/6/98 release of ORB)

- How do I disable the SplashWindow?

    Open the ORB.INI file and change the Splash setting under the Program heading from 
    1 to 0.  

- What commands are available in the Preview Mode?

    [Directions]
    quit
    goto <vnum>
    open
    close
    lock
    unlock
    list

- No matter where I right-click I always get the same popup. 

    You must select the item before you right-click on it.  For example, if you want to 
    insert an exit in the ROOMS window, you must select a record in the listbox.  If
    there are no records in the list box then select the area where the first record 
    should be.  You will see an outline if the blank record is selected.  (NOTE:  This
    was fixed in the 1/26/98 release or ORB.)

- What happened with version 1.x?

    The first version of ORB was written to work with a modified version of the MERC code
    base.  When our MUD switched formats, ORB followed suit.  The first version was neither
    completed nor released.  I eventually converted this first version of ORB into a utility
    to convert our old area files into the SMAUG format.

- In what language is ORB written?

    Borland C++ Builder Version 3


9.  Contact Information
-----------------------

Who:		Jay Roman (Altair/Famine)
E-mail: 	jfroman@earthlink.net
ORB Home Page:	http://www.shadow-lands.com/orb.html
Home MUD:	www.shadow-lands.com : 4000
