CAT - Quick reference 
======================

<The following tokens are available to define objects:

   @OBJ name
   @OBJACT
   @OBJCMD
   @OBJDOOR roomname1,roomname2
   @OBJDRINK val
   @OBJEAT val
   @OBJHIDE
   @OBJINRM roomname
   @OBJKEY objname
   @OBJLCK open/closed/locked
   @OBJLGT
   @OBJLIT
   @OBJLNG text
   @OBJNGT
   @OBJPLR
   @OBJPNT val
   @OBJPORTAL roomname
   @OBJREAD msgname
   @OBJROOM roomname
   @OBJSHT text
   @OBJSTR val
   @OBJSYN synname..
   @OBJVAL val
   @OBJWEAR
   @OBJWGT val
   @OBJWORN
   @ENDOBJ

<The following tokens are available to define rooms:

   @ROOM name
   @ROOMDRK
   @ROOMLNG text
   @ROOMPNT val
   @ROOMPTH verbname,roomname..
   @ROOMSHT text
   @ENDROOM

<The following tokens are available to define verbs:

   @VERB name
   @VERBCHK type
   @VERBLGT
   @VERBPREP
   @VERBSYN synname..
   @ENDVERB

<The following tokens are available to define strings:

   @STR name
   @STRSIZE val
   @STRTXT
   @ENDSTR

<The following tokens can be used in conjuction with logic comparison tokens to 
 affect the flow of CAT logic.

   @INIT
   @LOW
   @HIGH
   @IF
   @ELSE
   @ENDIF
   @WHILE
   @WEND
   @DO
   @LC

<The following tokens can be used to return values to CAT logic:

   Available in any logic mode
   ---------------------------
   @CARRIED_WEIGHT(obj)
   @COUNT(cnt)
   @CPLAYER 
   @FIRSTOB(room)
   @LASTOB(room)
   @LOCKTYPE(obj)
   @MSGNO(msg)
   @OBJINRM(obj)
   @OBJKEY(obj)
   @OBJLCK(obj)
   @OBJNO(obj)
   @OBJRM(obj)
   @PLAYER
   @POINTS(obj)
   @RANDOM(x)
   @ROOMNO(room)
   @SCORE 
   @SIZE(obj)
   @STRASC(str)
   @STRCMP(str1,str2)
   @STRFCHR(str,c)
   @STRFSTR(str,str)
   @STRENGTH(obj)
   @STRLEN(str)
   @STRNO(str)
   @STRNUM(str)
   @THISROOM
   @TURNS 
   @VALUE(obj)
   @VERBPATH(verb)
   @WEIGHT(obj)
   
   Low priority logic only
   -----------------------
   @THISCOBJ 
   @THISCVERB
   @THISOBJ 
   @THISVERB

<The following tokens can be used to perform TRUE/FALSE tests in CAT logic.

   Available in any logic mode
   ---------------------------
   @CHECK(C,L,obj)
   @CONFIRM
   @CPLAYERIS(obj)
   @ISACTIVE(obj)
   @ISAVAIL(obj)
   @ISBOX(obj)
   @ISCARRIED(obj)
   @ISCARRIEDANY(obj)
   @ISCARRIEDBY(obja,objb)
   @ISCLOSED(obj)
   @ISCOMMANDABLE(obj)
   @ISDARK
   @ISDRINKABLE(obj)
   @ISEDIBLE(obj)
   @ISEXIT(obj)
   @ISHERE(obj)
   @ISHIDDEN(obj)
   @ISIN(obja,objb)
   @ISLIGHT(obj)
   @ISLIT(obj)
   @ISLOCKED(obj)
   @ISMOVABLE(obj)
   @ISOPEN(obj)
   @ISPATH(verb)
   @ISPLAYER(obj)
   @ISREADABLE(obj)
   @ISWEARABLE(obj)
   @ISWITH(obja,objb)
   @ISWORN(obj)
   @ISWORNANY(obj)
   @ISWORNBY(obja,objb)
   @OBJHASL(obj)
   @OBJROOMIS(room,obj)
   @PLAYERIS(obj)
   @ROOMIS(room)
   
   Low priority logic only
   -----------------------
   @CNOUNIS("text")
   @CNOUNNOIS(obj)
   @CVERBIS("text")
   @CVERBNOIS(verb)
   @ISCOMPOUND
   @NOUNIS("text")
   @NOUNNOIS(obj)
   @VERBIS("text")
   @VERBNOIS(verb)

<The following can be used to compare values returned by CAT logic, in 
 conjunction with logic control tokens:

 	Equals				EQ		==
     	Does not equal			NE		!=
	Is less than 			LT		<
 	Is less than or equal to 	LE		<=
	Is greater than			GT		>
	Is greater than or equal to 	GE		>=
	Or				OR		||
	And				AND		&&
	Not				NOT		!

 Whenever you use NOT, you should protect the condition with ( and ).
 i.e. @IF (NOT @PLAYERIS(BOB)) @DO

<The following tokens can be used to instruct CAT logic to perform a task:

   Available in any logic mode
   ---------------------------
   @ADDCOMMAND(obj)
   @ADDCOUNT(cnt,val)
   @ADDPLAYER(obj)
   @ADDPOINTS(obj,val)
   @ADDSTRENGTH(obj,val)
   @ADDVALUE(obj,val)
   @ADDWEIGHT(obj,val)
   @BECOME(obj)
   @BRIEF
   @CLOSE(obj)
   @CONTROL(obj)
   @DRINK(obj)
   @DROP(obj)
   @EAT(obj)
   @ENDCHAR('c')
   @ENDGAME
   @ENTER(obj)
   @GET(obj)
   @GETSTR(str,size,sep)
   @GOTO(room)
   @HIDE(obj)
   @INVENTORY
   @KILL(obj)
   @LF
   @LIGHT(obj)
   @LOAD
   @LOCK(obj)
   @LOOK
   @MAKEDARK(room)
   @MAKELIGHT(room)
   @MSGTOSTR(msg,str)
   @NUMTOSTR(val,str)
   @OLTOSTR(obj,str)
   @OSTOSTR(obj,str)
   @RSTOSTR(room,str)
   @RLTOSTR(room,str)
   @NEWLINE
   @OPEN(obj)
   @PAUSE(sec)
   @PCONTENTS(obj)
   @PEXITS
   @PMSG(msg)
   @PNUM(val)
   @POBJL(obj)
   @POBJS(obj)
   @PROOML(room)
   @PROOMS(room)
   @PSTR(str)
   @RAMLOAD
   @RAMSAVE
   @READ(obj)
   @REMOVE(obj)
   @REMOVECOMMAND(obj)
   @REMOVEPLAYER(obj)
   @REVIVE(obj)
   @SAVE
   @SCRIPT
   @SETCOUNT(cnt,val)
   @SETPOINTS(obj,val)
   @SETSTRENGTH(obj,val)
   @SETVALUE(obj,val)
   @SETWEIGHT(obj,val)
   @SUBCOUNT(cnt,val)
   @SUBPOINTS(obj,val)
   @STRADDC(str,c)
   @STRCAP(str)
   @STRCAT(str1,str2)
   @STRCLR(str)
   @STRCPY(str1,str2)
   @STRLOW(str)
   @STRPCPY(str1,str2,start,len)
   @STRUPP(str)
   @SUBSTRENGTH(obj,val)
   @SUBVALUE(obj,val)
   @SUBWEIGHT(obj,val)
   @SWAP(obja,objb)
   @TOROOM(room,obj)
   @UNHIDE(obj)
   @UNLIGHT(obj)
   @UNLOCK(obj)
   @UNSCRIPT
   @VERBOSE
   @VOCAB
   @WAITKEY
   @WEAR(obj)
   @WHOAMI

   Low priority logic only
   -----------------------
   @CONT
   @FVERB("text")
   @STOP


