/
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/
/* MOLE Protocol header file */

#ifndef _MOLEDEFS_H_
#define _MOLEDEFS_H_

/* Version Information */
#define MOLE_MAJOR_VERSION 3
#define MOLE_MINOR_VERSION 0

/* MOLE protocol constants */
/* If you change any of these, you may have to change them all */
#define MOLE_HDR        "##MOLE"
#define MOLE_HDR_SIZE    6         /* # bytes of MOLE_CMD */
#define MOLE_DELIM      "##"
#define MOLE_DELIM_CHAR '#'
#define MOLE_PKT_MAX     30        /* max # data bytes in a single msg */
                                   /* This leave our total packet size */
                                   /* maxing out at around 124 - under */
                                   /* 128 with a bit of room to play.  */
                                   /* Remember - each byte=2 chars.    */
#define MOLE_PKT_START  0x03       /* sent from server to client -     */
                                   /* start of MOLE packet!            */
#define MOLE_PKT_STOP   0x02       /* sent from server to client -     */
                                   /* end of MOLE packet!              */

/* MOLE Packet ID constants */
#define MOLE_PKID_NULL        0x00L /* invalid packet number */
#define MOLE_PKID_UNSOLICITED 0x01L /* unsolicited info from server to client */
#define MOLE_PKID_START       0x02L /* start of available packet numbers */

/* MOLE command constants */
#define MOLE_CMD_IDRQ 0x49445251L /* IDRQ - ID request  */
#define MOLE_CMD_IDEN 0x4944454EL /* IDEN - ID response */
#define MOLE_CMD_SYSR 0x53595352L /* SYSR - System Info Request (weapon types, world types, etc. - the lists ) */
#define MOLE_CMD_SYSD 0x53595344L /* SYSD - System Info Detail (weapon types, world types, etc. - the lists ) */
#define MOLE_CMD_MORE 0x4D4F5245L /* MORE - part of a multi-part msg */
#define MOLE_CMD_PLRQ 0x504C5251L /* PLRQ - on-line player request */
#define MOLE_CMD_PLST 0x504C5354L /* PLST - on-line player list */
#define MOLE_CMD_ALRQ 0x414C5251L /* ALRQ - area list request */
#define MOLE_CMD_ALST 0x414C5354L /* ALST - area list */
#define MOLE_CMD_ADRQ 0x41445251L /* ADRQ - request details on specified area */
#define MOLE_CMD_ADTL 0x4144544CL /* ADTL - provide details on specified area */
#define MOLE_CMD_ACPY 0x41435059L /* ACPY - area details copy to another area */
#define MOLE_CMD_RLRQ 0x524C5251L /* RLRQ - Reset list request */
#define MOLE_CMD_RLST 0x524C5354L /* RLST - Reset list */
#define MOLE_CMD_WLRQ 0x574C5251L /* WLRQ - World list (for an area) request */
#define MOLE_CMD_WLST 0x574C5354L /* WLST - World list (for an area) */
#define MOLE_CMD_WDRQ 0x57445251L /* WDRQ - World detail request */
#define MOLE_CMD_WDTL 0x5744544CL /* WDTL - World detail */
#define MOLE_CMD_WCPY 0x57435059L /* WCPY - World details copy to another world */
#define MOLE_CMD_MLRQ 0x4D4C5251L /* MLRQ - Mobile list (for an area) request */
#define MOLE_CMD_MLST 0x4D4C5354L /* MLST - Mobile list (for an area) */
#define MOLE_CMD_MDRQ 0x4D445251L /* MDRQ - Mobile detail request */
#define MOLE_CMD_MDTL 0x4D44544CL /* MDTL - Mobile detail */
#define MOLE_CMD_MCPY 0x4D435059L /* MCPY - Mobile details copy to another mobile */
#define MOLE_CMD_OLRQ 0x4F4C5251L /* OLRQ - Object list (for an area) request */
#define MOLE_CMD_OLST 0x4F4C5354L /* OLST - Object list (for an area) */
#define MOLE_CMD_ODRQ 0x4F445251L /* ODRQ - Object detail request */
#define MOLE_CMD_ODTL 0x4F44544CL /* ODTL - Object detail */
#define MOLE_CMD_OCPY 0x4F435059L /* OCPY - Object details copy to another object */
#define MOLE_CMD_NACK 0x4E41434BL /* NACK - specified command was not processed - error specified */
#define MOLE_CMD_ACKP 0x41434B50L /* ACKP - specified command was successfully processed */

/* MOLE NACK codes */
#define MOLE_NACK_NOTIMPLEMENTED 0x00000001L /* command not implemented */
#define MOLE_NACK_RESEND         0x00000002L /* garbled packet - please resend */
#define MOLE_NACK_AUTHORIZATION  0x00000003L /* you don't have the authorization (level) for the command */
#define MOLE_NACK_NODATA         0x00000004L /* area/wld/obj/mob doesn't exist */
#define MOLE_NACK_PROTECTION     0x00000005L /* access/protection violation - they don't have permission to do this to this area! */
#define MOLE_NACK_POSITION       0x00000006L /* They're not in position to do that command! (ie: sitting/sleeping/etc) */

/* List types */
#define MOLE_LISTTYPE_INVALID   0
#define MOLE_LISTTYPE_TYPE      1
#define MOLE_LISTTYPE_FLAG      2

/* LIST order - MUST CORRESPOND to IDRQ/IDEN messages */
#define MOLE_LIST_MTYPE         0
#define MOLE_LIST_SEX           1
#define MOLE_LIST_POS           2  
#define MOLE_LIST_MACT          3
#define MOLE_LIST_AFFECT        4
#define MOLE_LIST_WTYPE         5
#define MOLE_LIST_WFLAG         6
#define MOLE_LIST_OACT          7
#define MOLE_LIST_OSFLAG        8
#define MOLE_LIST_OWFLAG        9
#define MOLE_LIST_OAMMO        10
#define MOLE_LIST_OCFLAG       11
#define MOLE_LIST_OLIQUID      12
#define MOLE_LIST_APPLY        13
#define MOLE_LIST_RFLAG        14
#define MOLE_LIST_WEAR         15
#define MOLE_LIST_DIR          16
#define MOLE_LIST_EFLAG        17
#define MOLE_LIST_OTYPE        18
#define MOLE_LIST_RESIST       19
#define MOLE_LIST_WEAPON       20
#define MOLE_LIST_NUMLISTS     21 /* # items (1 + last list) */
#define MOLE_LIST_INVALID   32000 /* invalid list number */

#endif /* _MOLEDEFS_H_ */