;
;	Creation Functions
;
makeroom $ANY $ANY ARCH !ME EQ 1 -1 MSGCR {Unknown noun.} DONE
makeroom $ANY $ANY ARCH !ME LENGTH U2 64 EQ 64 0 MSGCR {You must give a system name.} DONE
makeroom $ANY $ANY ARCH !ME MKROOM U2 64 SETVOCAB !64 !4 !1 OK DONE
setname $ANY $ANY ARCH !ME -EQ 9 -1 LD 13 !9
setname $ANY $ANY ARCH !ME -EQ 13 -1 SETNAME !13 U2 OK DONE
setlong $ANY $ANY ARCH !ME -EQ 9 -1 LD 13 !9
setlong $ANY $ANY ARCH !ME -EQ 13 -1 IS !13 IROOM SETLONG !13 U2 OK DONE
addnoun $ANY $ANY ARCH !ME LENGTH U1 64 EQ 64 0 MSGCR {Addnoun requires a word name.} DONE
		  ARCH !ME FINDSTR U1 { 	.,*} 0 64 MSGCR {Illegal character in word text} DONE
		  ARCH !ME ADDWORD U1 3 !FWORD MSG {Word '} MSG U1 MSGCR {' added.} ADD FWORD 1 DONE
addadj $ANY $ANY  ARCH !ME LENGTH U1 64 EQ 64 0 MSGCR {Addadj requires a word name.} DONE
		  ARCH !ME FINDSTR U1 { 	.,*} 0 64 MSGCR {Illegal character in word text} DONE
		  ARCH !ME ADDWORD U1 2 !FWORD MSG {Word '} MSG U1 MSGCR {' added.} ADD FWORD 1 DONE
delnoun $ANY $ANY ARCH !ME DELWORD U1 3 OK DONE
deladj  $ANY $ANY ARCH !ME DELWORD U1 2 OK DONE
makeobject $ANY $ANY 	ARCH !ME EQ 1 -1 MSGCR {Unknown noun.} DONE
			ARCH !ME LENGTH U2 64 EQ 64 0 MSGCR {You must give a system name.} DONE
			ARCH !ME MKOBJECT U2 64 SETMAXSTATE !64 1 SETVOCAB !64 !4 !1 PLACE !64 !ME OK DONE
setmaxstate $ANY $ANY 	-ARCH !0 MSGCR {Pardon ?} DONE
			ARCH !0 -EQ 9 -1 LD 13 !9
			EQ 13 -1 MSGCR {What is that ?} DONE
			-IS !13 IOBJECT PCNAME !13 MSGCR { is not an object.} DONE
			NUMOF U2 64 OBIT !13 %opens LT 64 2 MSGCR {Opening items must have maxstate of 2+} DONE
			OBIT !13 %weapon LT 64 3 MSGCR {Weapons must have maxstate of 3+} DONE
			LT 64 1  MSGCR {Invalid max state.} DONE
			GT 64 15 MSGCR {Invalid max state.} DONE
			SETMAXSTATE !13 !64 OK DONE
setdesc $ANY $ANY 	-ARCH !ME MSGCR {Pardon ?} DONE
			-EQ 9 -1 LD 13 !9
			EQ 13 -1 MSGCR {What is that ?} DONE
			-IS !13 IOBJECT PCNAME !13 MSGCR { is not an object.} DONE
			LDO 64 !13 OSTATES LD 65 !64 DIV 65 16 MUL 65 16 SUB 64 !65 SETDESC !13 !64 U2 OK DONE
makeplayer $ANY $ANY 	ARCH !ME EQ 1 -1 MSGCR {Unknown noun.} DONE
			ARCH !ME LENGTH U2 64 EQ 64 0 MSGCR {You must give a system name.} DONE
		 	ARCH !ME MKPLAYER U2 64 SETVOCAB !64 !4 !1 OK DONE
setarrive $ANY $ANY 	PBIT !ME %wizard SETIOH !ME 2 U1 OK DONE
setleave $ANY $ANY 	PBIT !ME %wizard SETIOH !ME 1 U1 OK DONE
sethere $ANY $ANY 	PBIT !ME %wizard SETIOH !ME 0 U1 OK DONE
setfollow $ANY $ANY 	ARCH !ME -EQ 13 -1 -EQ 14 -1 IS !13 IPLAYER IS !14 IPLAYER SETP !13 PFOLLOW !14 OK DONE
setwizard $ANY $ANY 	ARCH !ME -EQ 9 -1 LD 13 !9
			ARCH !ME -EQ 13 -1 IS !13 IPLAYER LDP 64 !13 PFLAGS SET 64 %wizard SETP !13 PFLAGS !64 OK DONE
setpleb $ANY $ANY 	ARCH !ME -EQ 9 -1 LD 13 !9
			ARCH !ME -EQ 13 -1 IS !13 IPLAYER LDP 64 !13 PFLAGS RES 64 %wizmode RES 64 %wizard SETP !13 PFLAGS !64 OK DONE
setweapon $ANY $ANY	-ARCH !ME MSGCR {Pardon ?} DONE
			-EQ 9 -1 LD 13 !9
			EQ 13 -1 MSGCR {What is that ?} DONE
			-IS !13 IOBJECT PCNAME !13 MSGCR { is not an object.} DONE
			LDO 64 !13 OSTATES DIV 64 16 LT 64 3 MSGCR {Not enough states to be a weapon.} DONE
			-NUMOF U2 64 MSGCR {You must specify a damage value.} DONE
			LDO 64 !13 OFLAGS SET 64 %weapon SETO !13 OFLAGS !64 NUMOF U2 64 SETO !13 ODAMAGE !64 OK DONE
setsharp $ANY $ANY 	-ARCH !ME MSGCR {Pardon ?} DONE
			-EQ 9 -1 LD 13 !9
			-IS !13 IOBJECT PCNAME !13 MSGCR { is not an object.} DONE
			NUMOF U2 65 SETO !13 OSHARP !65 OK DONE
setvalue $ANY $ANY 	-ARCH !ME MSGCR {Pardon ?} DONE
			-EQ 9 -1 LD 13 !9
			EQ 13 -1 MSGCR {What is that ?} DONE
			-IS !13 IOBJECT PCNAME !13 MSGCR { is not an object.} DONE
			NUMOF U2 65 SETO !13 OVALUE !65 OK DONE
setseedark $ANY $ANY	-ARCH !ME MSGCR {What?} DONE
			-EQ 9 -1 LD 13 !9
			EQ 13 -1 MSGCR {What is that?} DONE
			-IS !13 IPLAYER PCNAME !13 MSGCR { is not a player.} DONE
			LDP 64 !ME PFLAGS SET 64 %seedark SETP !ME PFLAGS !64 OK DONE
resseedark $ANY $ANY	-ARCH !ME MSGCR {What?} DONE
			-EQ 9 -1 LD 13 !9
			EQ 13 -1 MSGCR {What is that?} DONE
			-IS !13 IPLAYER PCNAME !13 MSGCR { is not a player.} DONE
			LDP 64 !ME PFLAGS RES 64 %seedark SETP !ME PFLAGS !64 OK DONE
resweapon $ANY $ANY	-ARCH !ME MSGCR {Pardon ?} DONE
			-EQ 9 -1 LD 13 !9
			EQ 13 -1 MSGCR {What is that ?} DONE
			-IS !13 IOBJECT PCNAME !13 MSGCR { is not an object.} DONE
			-OBIT !13 %weapon PCNAME !13 MSGCR { is not a weapon.} DONE
			LDO 64 !13 OFLAGS RES 64 %weapon SETO !13 OFLAGS !64 SETO !13 ODAMAGE 0 OK DONE
setcanget $ANY $ANY 	-ARCH !ME MSGCR {What ?} DONE
			-EQ 9 -1 LD 13 !9
			-IS !13 IOBJECT PCNAME !13 MSGCR { is not an object.} DONE
			OBIT !13 %canget MSGCR {Canget is already set.} DONE
			LDO 64 !13 OFLAGS SET 64 %canget SETO !13 OFLAGS !64 OK DONE
setflannel $ANY $ANY 	-ARCH !ME MSGCR {What ?} DONE
			-EQ 9 -1 LD 13 !9
			EQ 13 -1 MSGCR {What is that ?} DONE
			-IS !13 IOBJECT PCNAME !13 MSGCR { is not an object.} DONE
			OBIT !13 %flannel MSGCR {Flannel is already set.} DONE
			LDO 64 !13 OFLAGS SET 64 %flannel SETO !13 OFLAGS !64 OK DONE
setlitall $ANY $ANY 	-ARCH !ME MSGCR {What ?} DONE
			-EQ 9 -1 LD 13 !9
			EQ 13 -1 MSGCR {What is that ?} DONE
			-IS !13 IOBJECT PCNAME !13 MSGCR { is not an object.} DONE
			OBIT !13 %litall MSGCR {Litall is already set.} DONE
			LDO 64 !13 OFLAGS SET 64 %flannel SETO !13 OFLAGS !64 OK DONE
setlit0 $ANY $ANY 	-ARCH !ME MSGCR {What ?} DONE
			-EQ 9 -1 LD 13 !9
			EQ 13 -1 MSGCR {What is that ?} DONE
			-IS !13 IOBJECT PCNAME !13 MSGCR { is not an object.} DONE
			OBIT !13 %lit0 MSGCR {Lit0 is already set.} DONE
			LDO 64 !13 OFLAGS SET 64 %lit0 SETO !13 OFLAGS !64 OK DONE
setcontainer $ANY $ANY 	-ARCH !ME MSGCR {What ?} DONE
			-EQ 9 -1 LD 13 !9
			EQ 13 -1 MSGCR {What is that ?} DONE
			-IS !13 IOBJECT PCNAME !13 MSGCR { is not an object.} DONE
			OBIT !13 %container MSGCR {Container is already set.} DONE
			LDO 64 !13 OFLAGS SET 64 %container SETO !13 OFLAGS !64 OK DONE
setsize $ANY $ANY   	-ARCH !ME MSGCR {Pardon} DONE
			-EQ 9 -1 LD 13 !9
			EQ 13 -1 MSGCR {What is that ?} DONE
		        -IS !13 IOBJECT PCNAME !13 MSGCR { is not an object.} DONE
			NUMOF U2 64 SETO !13 OSIZE !64 OK DONE
setweight $ANY $ANY   	-ARCH !ME MSGCR {Pardon} DONE
			-EQ 9 -1 LD 13 !9
			EQ 13 -1 MSGCR {What is that ?} DONE
		        -IS !13 IOBJECT PCNAME !13 MSGCR { is not an object.} DONE
			NUMOF U2 64 SETO !13 OWEIGHT !64 OK DONE
setopens $ANY $ANY	-ARCH !ME MSGCR {What ?} DONE
			-EQ 9 -1 LD 13 !9
			EQ 13 -1 MSGCR {What is that ?} DONE
			-IS !13 IOBJECT PCNAME !13 MSGCR { is not an object.} DONE
			LDO 64 !13 OSTATES DIV 64 16 LT 16 2 MSGCR {Opens needs at least 2 states.} DONE
			LDO 64 !13 OFLAGS SET 64 %opens SETO !13 OFLAGS !64 OK DONE
setdeath $ANY $ANY	-ARCH !ME MSGCR {What ?} DONE
			-EQ 9 -1 LD 13 !9
			EQ 13 -1 MSGCR {What is that ?} DONE
			-IS !13 IROOM PCNAME !13 MSGCR { is not a room.} DONE
			LDR 64 !13 PFLAGS SET 64 %death SETR !13 RFLAGS !64 OK DONE
setoutside $ANY $ANY	-ARCH !ME MSGCR {What ?} DONE
			-EQ 9 -1 LD 13 !9
			EQ 13 -1 MSGCR {What is that ?} DONE
			-IS !13 IROOM PCNAME !13 MSGCR { is not a room.} DONE
			LDR 64 !13 PFLAGS SET 64 %outside SETR !13 RFLAGS !64 OK DONE
setdark $ANY $ANY	-ARCH !ME MSGCR {What ?} DONE
			-EQ 9 -1 LD 13 !9
			EQ 13 -1 MSGCR {What is that ?} DONE
			-IS !13 IROOM PCNAME !13 MSGCR { is not a room.} DONE
			LDR 64 !13 PFLAGS SET 64 %dark SETR !13 RFLAGS !64 OK DONE
setnomobile $ANY $ANY	-ARCH !ME MSGCR {What ?} DONE
			-EQ 9 -1 LD 13 !9
			EQ 13 -1 MSGCR {What is that ?} DONE
			-IS !13 IROOM PCNAME !13 MSGCR { is not a room.} DONE
			LDR 64 !13 PFLAGS SET 64 %nomobile SETR !13 RFLAGS !64 OK DONE
settdrop $ANY $ANY	-ARCH !ME MSGCR {What ?} DONE
			-EQ 9 -1 LD 13 !9
			EQ 13 -1 MSGCR {What is that ?} DONE
			-IS !13 IROOM PCNAME !13 MSGCR { is not a room.} DONE
			LDR 64 !13 PFLAGS SET 64 %tdrop SETR !13 RFLAGS !64 OK DONE
resdeath $ANY $ANY	-ARCH !ME MSGCR {What ?} DONE
			-EQ 9 -1 LD 13 !9
			EQ 13 -1 MSGCR {What is that ?} DONE
			-IS !13 IROOM PCNAME !13 MSGCR { is not a room.} DONE
			LDR 64 !13 PFLAGS RES 64 %death SETR !13 RFLAGS !64 OK DONE
resoutside $ANY $ANY	-ARCH !ME MSGCR {What ?} DONE
			-EQ 9 -1 LD 13 !9
			EQ 13 -1 MSGCR {What is that ?} DONE
			-IS !13 IROOM PCNAME !13 MSGCR { is not a room.} DONE
			LDR 64 !13 PFLAGS RES 64 %outside SETR !13 RFLAGS !64 OK DONE
resdark $ANY $ANY	-ARCH !ME MSGCR {What ?} DONE
			-EQ 9 -1 LD 13 !9
			EQ 13 -1 MSGCR {What is that ?} DONE
			-IS !13 IROOM PCNAME !13 MSGCR { is not a room.} DONE
			LDR 64 !13 PFLAGS RES 64 %dark SETR !13 RFLAGS !64 OK DONE
resnomobile $ANY $ANY	-ARCH !ME MSGCR {What ?} DONE
			-EQ 9 -1 LD 13 !9
			EQ 13 -1 MSGCR {What is that ?} DONE
			-IS !13 IROOM PCNAME !13 MSGCR { is not a room.} DONE
			LDR 64 !13 PFLAGS RES 64 %nomobile SETR !13 RFLAGS !64 OK DONE
restdrop $ANY $ANY	-ARCH !ME MSGCR {What ?} DONE
			-EQ 9 -1 LD 13 !9
			EQ 13 -1 MSGCR {What is that ?} DONE
			-IS !13 IROOM PCNAME !13 MSGCR { is not a room.} DONE
			LDR 64 !13 PFLAGS RES 64 %tdrop SETR !13 RFLAGS !64 OK DONE
setnexit $ANY $ANY	-ARCH !ME MSGCR {What ?} DONE
			-EQ 9 -1 LD 13 !9
			EQ 13 -1 MSGCR {What is that ?} DONE
			-EQ 12 -1 LD 14 !12
			EQ 14 -1 MSGCR {Where to ?} DONE
			-IS !13 IROOM PCNAME !13 MSGCR { is not a room.} DONE
			IS !14 IPLAYER PCNAME !14 MSGCR { is a player.} DONE
			SETR !13 ENORTH !14 OK DONE
seteexit $ANY $ANY	-ARCH !ME MSGCR {What ?} DONE
			-EQ 9 -1 LD 13 !9
			EQ 13 -1 MSGCR {What is that ?} DONE
			-EQ 12 -1 LD 14 !12
			EQ 14 -1 MSGCR {Where to ?} DONE
			-IS !13 IROOM PCNAME !13 MSGCR { is not a room.} DONE
			IS !14 IPLAYER PCNAME !14 MSGCR { is a player.} DONE
			SETR !13 EEAST !14 OK DONE
setsexit $ANY $ANY	-ARCH !ME MSGCR {What ?} DONE
			-EQ 9 -1 LD 13 !9
			EQ 13 -1 MSGCR {What is that ?} DONE
			-EQ 12 -1 LD 14 !12
			EQ 14 -1 MSGCR {Where to ?} DONE
			-IS !13 IROOM PCNAME !13 MSGCR { is not a room.} DONE
			IS !14 IPLAYER PCNAME !14 MSGCR { is a player.} DONE
			SETR !13 ESOUTH !14 OK DONE
setwexit $ANY $ANY	-ARCH !ME MSGCR {What ?} DONE
			-EQ 9 -1 LD 13 !9
			EQ 13 -1 MSGCR {What is that ?} DONE
			-EQ 12 -1 LD 14 !12
			EQ 14 -1 MSGCR {Where to ?} DONE
			-IS !13 IROOM PCNAME !13 MSGCR { is not a room.} DONE
			IS !14 IPLAYER PCNAME !14 MSGCR { is a player.} DONE
			SETR !13 EWEST !14 OK DONE
setuexit $ANY $ANY	-ARCH !ME MSGCR {What ?} DONE
			-EQ 9 -1 LD 13 !9
			EQ 13 -1 MSGCR {What is that ?} DONE
			-EQ 12 -1 LD 14 !12
			EQ 14 -1 MSGCR {Where to ?} DONE
			-IS !13 IROOM PCNAME !13 MSGCR { is not a room.} DONE
			IS !14 IPLAYER PCNAME !14 MSGCR { is a player.} DONE
			SETR !13 EUP !14 OK DONE
setdexit $ANY $ANY	-ARCH !ME MSGCR {What ?} DONE
			-EQ 9 -1 LD 13 !9
			EQ 13 -1 MSGCR {What is that ?} DONE
			-EQ 12 -1 LD 14 !12
			EQ 14 -1 MSGCR {Where to ?} DONE
			-IS !13 IROOM PCNAME !13 MSGCR { is not a room.} DONE
			IS !14 IPLAYER PCNAME !14 MSGCR { is a player.} DONE
			SETR !13 EDOWN !14 OK DONE
resnexit $ANY $ANY	-ARCH !ME MSGCR {What ?} DONE
			-EQ 9 -1 LD 13 !9
			EQ 13 -1 MSGCR {What is that ?} DONE
			-IS !13 IROOM PCNAME !13 MSGCR { is not a room.} DONE
			SETR !13 ENORTH -1 OK DONE
reseexit $ANY $ANY	-ARCH !ME MSGCR {What ?} DONE
			-EQ 9 -1 LD 13 !9
			EQ 13 -1 MSGCR {What is that ?} DONE
			-IS !13 IROOM PCNAME !13 MSGCR { is not a room.} DONE
			SETR !13 EEAST -1 OK DONE
ressexit $ANY $ANY	-ARCH !ME MSGCR {What ?} DONE
			-EQ 9 -1 LD 13 !9
			EQ 13 -1 MSGCR {What is that ?} DONE
			-IS !13 IROOM PCNAME !13 MSGCR { is not a room.} DONE
			SETR !13 ESOUTH -1 OK DONE
reswexit $ANY $ANY	-ARCH !ME MSGCR {What ?} DONE
			-EQ 9 -1 LD 13 !9
			EQ 13 -1 MSGCR {What is that ?} DONE
			-IS !13 IROOM PCNAME !13 MSGCR { is not a room.} DONE
			SETR !13 EWEST -1 OK DONE
resuexit $ANY $ANY	-ARCH !ME MSGCR {What ?} DONE
			-EQ 9 -1 LD 13 !9
			EQ 13 -1 MSGCR {What is that ?} DONE
			-IS !13 IROOM PCNAME !13 MSGCR { is not a room.} DONE
			SETR !13 EUP -1 OK DONE
resdexit $ANY $ANY	-ARCH !ME MSGCR {What ?} DONE
			-EQ 9 -1 LD 13 !9
			EQ 13 -1 MSGCR {What is that ?} DONE
			-IS !13 IROOM PCNAME !13 MSGCR { is not a room.} DONE
			SETR !13 EDOWN -1 OK DONE
;
;	The rest of this set want tidying up to be neater like the above
;			
setfood $ANY $ANY ARCH !ME -EQ 9 -1 LD 13 !9
setfood $ANY $ANY ARCH !ME -EQ 13 -1 IS !13 IOBJECT LDO 64 !13 OFLAGS SET 64 %food SETO !13 OFLAGS !64 NUMOF U2 64 SETO !13 OFOOD !64 OK DONE
rescanget $ANY $ANY ARCH !ME -EQ 9 -1 LD 13 !9
rescanget $ANY $ANY ARCH !ME -EQ 13 -1 IS !13 IOBJECT LDO 64 !13 OFLAGS RES 64 %canget SETO !13 OFLAGS !64 OK DONE
resflannel $ANY $ANY ARCH !ME -EQ 9 -1 LD 13 !9
resflannel $ANY $ANY ARCH !ME -EQ 13 -1 IS !13 IOBJECT LDO 64 !13 OFLAGS RES 64 %flannel SETO !13 OFLAGS !64 DONE
reslitall $ANY $ANY ARCH !ME -EQ 9 -1 LD 13 !9
reslitall $ANY $ANY ARCH !ME -EQ 13 -1 IS !13 IOBJECT LDO 64 !13 OFLAGS RES 64 %litall SETO !13 OFLAGS !64 OK DONE
reslit0 $ANY $ANY ARCH !ME -EQ 9 -1 LD 13 !9
reslit0 $ANY $ANY ARCH !ME -EQ 13 -1 IS !13 IOBJECT LDO 64 !13 OFLAGS RES 64 %lit0 SETO !13 OFLAGS !64 OK DONE
rescontainer $ANY $ANY ARCH !ME -EQ 9 -1 LD 13 !9
rescontainer $ANY $ANY ARCH !ME -EQ 13 -1 IS !13 IOBJECT LDO 64 !13 OFLAGS RES 64 %container SETO !13 OFLAGS !64 OK DONE
resopens $ANY $ANY ARCH !ME -EQ 9 -1 LD 13 !9
resopens $ANY $ANY ARCH !ME -EQ 13 -1 IS !13 IOBJECT LDO 64 !13 OFLAGS RES 64 %opens SETO !13 OFLAGS !64 OK DONE
resfood $ANY $ANY ARCH !ME -EQ 9 -1 LD 13 !9
resfood $ANY $ANY ARCH !ME -EQ 13 -1 IS !13 IOBJECT LDO 64 !13 OFLAGS RES 64 %food SETO !13 OFLAGS !64 SETO !13 OFOOD 0 OK DONE