/
Crimson2/alias/
Crimson2/area.tmp/
Crimson2/area.tmp/AnomalySpaceDock/
Crimson2/area.tmp/AnomalyStation/
Crimson2/area.tmp/AntHill/
Crimson2/area.tmp/ArcticTerrarium/
Crimson2/area.tmp/BuilderCity/
Crimson2/area.tmp/Dungeon/
Crimson2/area.tmp/MiningDock/
Crimson2/area.tmp/PipeSystem/
Crimson2/area.tmp/RattArea/
Crimson2/area.tmp/RobotFactory/
Crimson2/area.tmp/SilverDale/
Crimson2/area.tmp/StarshipFearless/
Crimson2/area.tmp/StationConduits/
Crimson2/area.tmp/TerrariumAlpha/
Crimson2/area.tmp/TerrariumBeta/
Crimson2/area.tmp/TestArea/
Crimson2/area.tmp/Void/
Crimson2/area/
Crimson2/area/AnomalySpaceDock/
Crimson2/area/AnomalyStation/
Crimson2/area/MiningDock/
Crimson2/area/PipeSystem/
Crimson2/area/SilverDale/
Crimson2/area/StationConduits/
Crimson2/area/Void/
Crimson2/board/
Crimson2/clone/
Crimson2/lib/
Crimson2/mole/
Crimson2/mole/mole_src/HELP/
Crimson2/player/
Crimson2/util/
Crimson2/wldedit/
Crimson2/wldedit/res/
/* Crimson2 Mud Server
 * All source written/copyright Ryan Haksi 1995 *
 * This source code is proprietary, if you are using it without my express
 * permission you are violating the copyright act and can potentially be
 * sued.
 * That said, if you would like to use it, I'm not an ogre, gimme a call
 * and maybe we can work something out.
 *
 * Current email addresses: cryogen@unix.infoserve.net
                            rhaksi@freenet.vancouver.bc.ca
 * Phone number: (604) 591-9746
 */

struct WldType {
   THING      wThing;

   LWORD      wVirtual;
   WORD       wArea;
   FLAG       wFlag;
   WORD       wType;
   WORD       wLight;  /* this is the *EXTRA* light added by internal objs */
   EXIT      *wExit;
};

#define WT_INDOORS        0
#define WT_CITY           1
#define WT_FIELD          2
#define WT_FOREST         3
#define WT_HILLS          4
#define WT_MOUNTAIN       5
#define WT_WATERSWIM      6
#define WT_WATERNOSWIM    7
#define WT_UNDERWATER     8
#define WT_VACUUM         9
#define WT_DESERT         10
#define WT_ARCTIC         11
#define WT_ROAD           12
#define WT_TRAIL          13

#define WF_DARK           1<<0
#define WF_DEATHTRAP      1<<1
#define WF_NOMOB          1<<2
#define WF_NOWEATHER      1<<3
#define WF_NOGOOD         1<<4
#define WF_NONEUTRAL      1<<5
#define WF_NOEVIL         1<<6
#define WF_NOPSIONIC      1<<7
#define WF_SMALL          1<<8 /* only 3 people max */
#define WF_PRIVATE        1<<9 /* no snooping, cant teleport in etc */
#define WF_DRAINPOWER     1<<10
#define WF_VACUUM         1<<11
#define WF_NOTELEPORTOUT  1<<12
#define WF_NOTELEPORTIN   1<<13

#define WVIRTUAL_VEHICLE  -2

typedef struct WType {
  BYTE *wTName;
  WORD  wTMoveCost;
} WTYPE;
extern WTYPE  wTypeList[];
extern BYTE  *wFlagList[];

extern LWORD worldNum;
extern BYTE  worldReadLog; /* blow-by-blow */
extern BYTE  worldOfLog; /* blow-by-blow */

#define Wld(x) ((WLD*)(x))

extern void   WorldInit(void);
extern void   WorldRead(WORD area);
extern THING *WorldOf(LWORD virtual);
extern void   WorldReIndex(void);
extern void   WorldWrite(WORD area);
extern        INDEXPROC(WorldCompareProc);
extern        INDEXFINDPROC(WorldFindProc);

#define WORLD_ALLOC_SIZE 8192