circle30bpl19/bin/
circle30bpl19/cnf/
circle30bpl19/lib/
circle30bpl19/lib/etc/
circle30bpl19/lib/house/
circle30bpl19/lib/misc/
circle30bpl19/lib/plralias/A-E/
circle30bpl19/lib/plralias/F-J/
circle30bpl19/lib/plralias/K-O/
circle30bpl19/lib/plralias/P-T/
circle30bpl19/lib/plralias/U-Z/
circle30bpl19/lib/plralias/ZZZ/
circle30bpl19/lib/plrobjs/
circle30bpl19/lib/plrobjs/A-E/
circle30bpl19/lib/plrobjs/F-J/
circle30bpl19/lib/plrobjs/K-O/
circle30bpl19/lib/plrobjs/P-T/
circle30bpl19/lib/plrobjs/U-Z/
circle30bpl19/lib/plrobjs/ZZZ/
circle30bpl19/lib/text/
circle30bpl19/lib/text/help/
circle30bpl19/lib/world/
circle30bpl19/lib/world/shp/
circle30bpl19/log/
circle30bpl19/src/doc/
NOTE: Read OasisOLC.html instead.  This is only here for historical interest.
	-gg 4/16/99

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
                           - OasisOLC - 
                Rv's Circle 3 On-Line Creation System
		Harvey Gilpin	v1.2 (12/5/96) release
		George Greer	v1.5 (10/5/97) release
                George Greer    v1.6  11/16/1997 release
                George Greer    v1.6a 11/17/1997 release
                George Greer    v1.6b  2/17/1998 release
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Contents:

   1  -  Introduction
   2  -  What is OasisOLC?
   3  -  Conditions of use
   4  -  Installing OasisOLC
   5  -  Upgrading to v1.2
   5.5-  Upgrading to v1.5
   6  -  Configuring OasisOLC
   7  -  Using OasisOLC
   8  -  Fixed bugs since v1.0
   9  -  Known bugs
   10 -  Credits


-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
1  -  Introduction

	Congratulations on reading this.  If you are anything like me then
you've got hold of your new toy and the last thing you want to do is read
through heaps of junk telling you how to get it working.  However most of
the information in this file is important so I urge you to read it all
before installing anything.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
2  -  What is OasisOLC?

First off, the three big "it's" :

  It's written by Rv, a.k.a. Harvey Gilpin.

  It's a menu based OnLine Creation system for CircleMUD 3.0.
  CircleMUD was created and is maintained by Jermey Elson.

  It is based on an earlier OLC system that just included 'iedit' and
  'redit'.  I have been informed the original author goes by the
  handle of "Levork".

Rv cleaned up and semi-reorganised the redit/iedit code, renamed iedit
to oedit and wrote the medit/zedit/sedit and olc modules.  

The code was futher cleaned up and debugged by George Greer
(greerga@circlemud.org) and a group of helpful volunteers from the CircleMUD
mailing list (see credits).

IMPORTANT: It is not intended as an all singing, all dancing OLC, but
rather as a very good starting point.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
3  -  Conditions of use

1)  If you use this code you must e-mail me to let me know at:

    rv@twylite.demon.co.uk

    (It's not asking much is it?  I'd like to know how many
     people use it)

    Just a quick message saying: "It's crap!  You suck!"
    would do.

2)  You must not use the code to make a profit in ANY way.
    Refer to the CircleMUD license for more detail.

3)  Any derivative works must give credit to the original author, 
    Levork, and are subject to the same conditions of use.

4)  You accept any damage caused by the use of this software to be
    your own fault. (i.e. Don't sue me :) 

Harvey Gilpin

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
4  -  Installing OasisOLC

Although desgined in Circle3.0pl9, this version has been released to
work with pl10 and I've been told it works fine with pl11.  Beyond that,
who can tell?  Anyways, here's how you install it:

OasisOLC version 1.5 was based on CircleMUD bpl11.
OasisOLC version 2.0 is based on CircleMUD bpl13.

FIRST BACK UP YOUR WORLD FILES !  - This system (like all others)  WILL
have bugs and WILL destroy your world files from time to time.  Be ready
for it.  Although the v1.5 edition of Oasis will write to a temporary file
before removing the old world file, there is still a minute possibility
that your world files could be damaged.

To backup your world files go into the 'lib' directory and type:
 tar cvf world.tar world
To restore them again, go into the 'lib' directory and type:
 tar xvf world.tar
It is also recommended to gzip your 'tar' file as such:
 gzip -9 world.tar

Most of the code for the OLC system is held in files seperate files
but some circle files do need modifying so that the MUD knows that
it has the OLC attached to it.  Basically, you just untar the files
into your 'src' directory and then apply the patch files by doing this:

patch < OasisOLC.patch

These are some of the files the patch will affect:
  Makefile, structs.h, comm.c, modify.c, interpreter.h, interpreter.c,
  act.wizard.c, constants.c, shop.h & shop.c 

IMPORTANT: All the changes made to the code are required by the OLC
engine, so if any of them do not work automatically, you will have
to look through the rejected files and change the code manually.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
5  -  Upgrading to v1.2

This is just a bugfix version; there are no new features.  So if  you are
upgrading to it from the earlier version of Oasis, all you need do is copy
the new files over the old.  The patch file hasn't changed (much) so you
can more or less ignore that.

However, if you have changed a lot of the original Oasis code and don't
want to write over them with this version, then at least go through the
bugfix list found later in this file so you know what needs fixing.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5.1 -  Upgrading to v1.5

This version is a reformat and bug fix release.  The new features will
wait until version 2.0.  There is an upgrade patch from v1.3 to v1.5 at
http://www.van.ml.org/CircleMUD/OasisOLC/.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
6  -  Configuring OasisOLC

Rv have tried to make this system as reliant as possible on the tables that
already exist in the Circle code,  so that when the mud changes, the OLC
will be able to deal with it.  However, the system does need to know some
information about the tables sizes, and those that are not already defined
in structs.h have been placed in olc.h.

If you want the OLC to react to changes you make to tables within your mud
you must update the defines in the top of olc.h.

Also, the system uses colours for the menus, if the player has a colour level
of 'normal' or 'complete'.  If you don't like the colour scheme used,
you can edit the function get_char_cols() in olc.c, and this will
change the colours for the entire OLC system.

If you want to add new features to the OLC, for pointers on how to go about
it, look at the commented out code for object level flags in oedit.c.

There is a new flag called CLEAR_SCREEN in olc.h, if you don't like Oasis
clearing your screen, go look there to change it. 

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
7  -  Using OasisOLC

To understand what all the fields in the menus mean, refer to the 
building.doc file that is found in the 'doc' directory of the 
Circle3.0 distribution.

Here's how all the commands for the OLC system are used:

redit				- edit the room you are standing in
redit <virtual room num>	- edit/create room
redit save <zone>		- save all the rooms in zone to disk

zedit				- edit the zone info for the room you are
				   standing in
zedit <virtual room num>	- edit the zone info for that room
zedit save <zone>		- save all the zone info for that zone to disk
zedit new <one>			- IMPLs only - create a new zone.

oedit <virtual obj num>		- edit/create object
oedit save <zone>		- save all the objects in zone to disk

medit <virtual mob num>		- edit/create mobile
medit save <zone>		- save all the mobiles in zone to disk

sedit <virtual shop num>	- edit/create shop
sedit save <zone>		- save all shops in zone to disk.

set <player name> olc <zone>	- IMPLs only - allow player to edit zone.

olc				- List all the things that have been edited
				   but not yet saved.

WARNING:  This OLC will let you set values to values that shouldn't be
set.  For example, it'll let you set a mobile with a GROUP flag.  This
is good in the sense that it allows you to test anything you please,
but bad in the sense that builders can crash the mud with ease.
(Hey, that rymes!).  In short: only allow builders you trust to use it.



-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
8  -  Fixed bugs since v1.0

The original release was pretty stable, and only has a few major bugs.
Most of the fixes are just sanity checks, but for those that are
interested, here's what's been changed:

Major bug fixes:

o  ALL the save_internally routines had a fence post bug in that goes
   one step to far each time, and corrupts memory at the end of the
   new table it is creating.  On strict systems this caused protection
   faults, and no doubt caused weired errors on others.  This fix missed
   the medit_save_internally function, unfortunately.

o  medit_save_internally didn't check to see if the chars in the
   character_list it was updating were mobiles.  Hence, the IMPL
   could get overwritten with Puff's strings.  *snicker*

o  ALL the save_to_disk functions needed to check for NULL values
   in all the strings the saved but somehow it didn't. :)

Minor bug fixes:

o  Default position for mobs defaults to 'standing'.

o  sedit, types list needed to be extended to 15 characters make room
   for LIQ_CONTAINER flag name.

o  zedit, changing 'top' of zone did not flag the zone as being changed.

o  ALL string edits that use more than one line didn't flag what was
   being edited as being changed.

o  sedit, the compact rooms list would not return to the long rooms list.

o  zedit_disp_arg3, type of 'container'

o  zedit, pressing command after choosing 'New Command' bailed  out.

o  sedit, namelist for buy types was screwy for non-Linux systems.

o  oedit, object values needed clearing before editing as old values
   from previous edits were being left there.

o  oedit, scrolls an potions didn't allow NULL spells.

o  Added a LVL_BUILDER setting for easy configuration.

o  zedit_disp_menu function needed to check for a NULL zone name.

o  Changed strdup() to use Circle's own str_dup throughout

o  Changed "== IMPL" comparisons to ">= IMPL" for muds with more levels
   than just IMPL.

o  Changed the typo of "db.c" to "db.h" in the Makefile for the *edit.c
   dependencies.

o  olc.c, strip_string() optimised.

o  Some other stuff I never bothered to write down...



-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
9  -  Known bugs.

Like most software, this system has bugs.
Here are those that I know of:


Access to zone 0 bug

Initially, all your GODs will have edit access to zone 0 (limbo).
You may want to set thier olc flags to -1 by default.


Extended mob bug.

Due to the way Extended mobs are implemented it is impossible to
know what individual MUDs do with them.  So when medit writes the
mob files out to disk it can only deal with those it knows about.
Any other one that were there get _erased_.  If you want to use extended
mobs in your mud you MUST edit the medit_save_to_disk() function in
medit.c so that it knows how to save them.


Zone header info

If two builders change the zone header information (zone name,
reset type, etc) at the same time, one of the changes will be lost.
No big deal.


Object weight:

Objects that have there weight changed will mess up with the weight that
players currently in the game owning that object can carry, until they
rent.


Add new zone:

This seems to be buggy for some users, but I can't find what's wrong with
it.  Also, it doesn't check to see if it will overwrite any existing
files, only that the zone does not already exist in -MEMORY-.  Be careful
with this command.  The memory problem is fixed in version 1.5. 

Flying monitor bug:

Throwing your monitor out of the window while using Oasis will break it,
unless you are on the ground floor and have several matresses carefully
positioned outside the window.


-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
10 -  Credits

Finally, thanks to the following for their bug reports, ideas and
feedback: 

  Adam Days
  Chris A. Epler
  Edward Almasy
  Paul Jones
  Con (a.k.a Rasmus)
  Sean P. Mouncastle
  Trevor Man
  Ryan A. J. Biggs
  Andrew Helm
  Desmond Daignault
  Robert Sinland
  Patrick J. Dughi
  Spooge
  Adam Beytin
  David Klasinc
  Crimson Wizard
  
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-