
return, ret, finish

Parameters:
	return

Function:
	Exits the current function and returns to the calling function, or
	the game engine.



callvrm, call_vrm

Parameters:
	callvrm <string>
	callvrm <integer>

Function:
	Calls a SEER script function.  The parameter is the function to be
	called, and it can either be the name of the function or an integer.

	You should always call the function as a string, unless you are
	writing system code that uses the function table in an object
	(e.g. callvrm player.funcs.hcache )

Example:
	callvrm "display_stuff"



call

Parameters:
	call <function name>
	call <integer>

Function:
	Calls another function.  The parameter is the function to be
	called, and it can either be the name of the function or an integer.

	You should always call the function by name, unless you are
	writing system code that uses the function table in an object
	(e.g. callvrm player.funcs.kcache )

Example:
	call now_you_die
	call player.funcs.kcache



print

Parameters:
	print <string>
	print <integer>

Function:
	Prints the string or number on the console.

Example:
	print "Health = "
	print player.stats.hp
	printcr



printx

Parameters:
	printx <integer>
	printx <object>

Function:
	Prints the number on the console in hexadecimal.  If passed an object,
	it will print the address of the object in hexadecimal.  Used almost
	exclusively for debugging.

Example:
	print "Player address = "
	printx player
	printcr



printcr, newline

Parameters:
	printcr

Function:
	Starts a new line.

Example:
	print "This is on line 1."
	printcr
	print "This is on line 2."
	printcr



if object is called

Parameters:
	if <object> is called <string>

Function:
	The code inside the IF block is only executed if the object's name is
	equal to the given string.  Not case-sensitive.

Example:
	if current is called "player"
		print "Cannot delete the player!"
		printcr
	endif



create

Parameters:
	create <object> = <string>

Function:
	Creates a new object of type <string>.  The first parameter (object)
	will point to the newly-created object.

Example:
	create newobj = "bread"
	move_object newobj to oven.x oven.y



move_object

Parameters:
	move_object <object> to <integer> <integer>

Function:
	Moves the object from its current position to the X and Y coordinates
	given in the last two parameters.  Collision detection is handled and
	nothing will happen if the object cannot be moved to the new position.
	If you need to override this, use transfer_object instead.

Example:
	move_object bread to x y




                    {"ret",PEVM_Return,"",PE_generic,NULL,0},
                    {"return",PEVM_Return,"",PE_generic,NULL,0},
                    {"finish",PEVM_Return,"",PE_generic,NULL,0},
                    {"callvrm",PEVM_CallVRM,"i",PE_generic,NULL,1},
                    {"callvrm",PEVM_CallVRM,"I",PE_generic,NULL,1},
                    {"callvrm",PEVM_CallVRM,"a",PE_generic,NULL,1},
                    {"callvrm",PEVM_CallVRM,"v",PE_generic,NULL,1},
                    {"call_vrm",PEVM_CallVRM,"i",PE_generic,NULL,1},
                    {"call_vrm",PEVM_CallVRM,"I",PE_generic,NULL,1},
                    {"call_vrm",PEVM_CallVRM,"a",PE_generic,NULL,1},
                    {"call_vrm",PEVM_CallVRM,"v",PE_generic,NULL,1},
                    {"print",PEVM_Printstr,"s",PE_generic,NULL,1},
                    {"print",PEVM_Printstr,"S",PE_generic,NULL,1},
                    {"print",PEVM_Printstr,"P",PE_generic,NULL,1},
                    {"print",PEVM_Printint,"n",PE_generic,NULL,1},
                    {"print",PEVM_Printint,"i",PE_generic,NULL,1},
                    {"print",PEVM_Printint,"I",PE_generic,NULL,1},
                    {"print",PEVM_Printint,"a",PE_generic,NULL,1},
                    {"printx",PEVM_PrintXint,"i",PE_generic,NULL,1},
                    {"printx",PEVM_PrintXint,"I",PE_generic,NULL,1},
                    {"printx",PEVM_PrintXint,"a",PE_generic,NULL,1},
                    {"printx",PEVM_PrintXint,"o",PE_generic,NULL,1},
                    {"printx",PEVM_PrintXint,"O",PE_generic,NULL,1},
                    {"printx",PEVM_PrintXint,"t",PE_generic,NULL,1},
                    {"printcr",PEVM_PrintCR,"",PE_generic,NULL,0},
                    {"newline",PEVM_PrintCR,"",PE_generic,NULL,0},

                    {"clear",PEVM_ClearLine,"",PE_generic,NULL,0},
                    {"clearline",PEVM_ClearLine,"",PE_generic,NULL,0},

                    {"call",PEVM_Callfunc,"f",PE_generic,NULL,1},
                    {"call",PEVM_Callfunc,"a",PE_generic,NULL,1},
                    {"call",PEVM_Callfunc,"i",PE_generic,NULL,1},
                    {"call",PEVM_Callfunc,"I",PE_generic,NULL,1},

                    {"function",0,"l",PE_newfunc,PEP_newfunc,0},
                    {"end",0,"",PE_endfunc,PEP_endfunc,0},
                    {"local",0,"",PE_declare,PEP_StartLocal},
                    {"endlocal",0,"",PE_declare,PEP_EndLocal},
                    {"constant",0,"l=n",PE_declare,PEP_const,0},
                    {"integer",0,"l",PE_declare,PEP_integer,0},
                    {"integer",0,"l=n",PE_declare,PEP_integer,0},
                    {"integer_array",0,"a",PE_declare,PEP_intarray,0},
                    {"string",0,"l",PE_declare,PEP_string,0},
                    {"string_array",0,"b",PE_declare,PEP_strarray,0},
                    {"int",0,"l",PE_declare,PEP_integer,0},
                    {"int",0,"l=n",PE_declare,PEP_integer,0},
                    {"int_array",0,"a",PE_declare,PEP_intarray,0},
                    {"object",0,"o",PE_declare,PEP_object,0},
                    {"object_array",0,"c",PE_declare,PEP_objarray,0},
                    {"tile",0,"t",PE_declare,PEP_tile,0},

                    {"let",PEVM_Let_iei,"i=n",PE_generic,NULL,2},
                    {"let",PEVM_Let_iei,"I=n",PE_generic,NULL,2},
                    {"let",PEVM_Let_iei,"i=i",PE_generic,NULL,2},
                    {"let",PEVM_Let_iei,"i=I",PE_generic,NULL,2},
                    {"let",PEVM_Let_iei,"I=i",PE_generic,NULL,2},
                    {"let",PEVM_Let_iei,"I=I",PE_generic,NULL,2},
                    {"let",PEVM_Let_iei,"a=n",PE_generic,NULL,2},
//                    {"let",PEVM_Let_iei,"i=x",PE_generic,NULL},
                    {"let",PEVM_Let_ieipi,"i=ipn",PE_generic,NULL,4},
                    {"let",PEVM_Let_ieipi,"i=Ipn",PE_generic,NULL,4},
                    {"let",PEVM_Let_ieipi,"I=ipn",PE_generic,NULL,4},
                    {"let",PEVM_Let_ieipi,"I=Ipn",PE_generic,NULL,4},
                    {"let",PEVM_Let_ieipi,"i=npi",PE_generic,NULL,4},
                    {"let",PEVM_Let_ieipi,"i=npI",PE_generic,NULL,4},
                    {"let",PEVM_Let_ieipi,"I=npi",PE_generic,NULL,4},
                    {"let",PEVM_Let_ieipi,"I=npI",PE_generic,NULL,4},
                    {"let",PEVM_Let_ieipi,"i=ipi",PE_generic,NULL,4},
                    {"let",PEVM_Let_ieipi,"i=ipI",PE_generic,NULL,4},
                    {"let",PEVM_Let_ieipi,"i=Ipi",PE_generic,NULL,4},
                    {"let",PEVM_Let_ieipi,"I=ipi",PE_generic,NULL,4},
                    {"let",PEVM_Let_ieipi,"I=ipI",PE_generic,NULL,4},
                    {"let",PEVM_Let_ieipi,"I=Ipi",PE_generic,NULL,4},
                    {"let",PEVM_Let_ieipi,"I=IpI",PE_generic,NULL,4},
                    {"let",PEVM_Let_iei,"o=o",PE_generic,NULL,2},
                    {"let",PEVM_Let_iei,"o=O",PE_generic,NULL,2},
                    {"let",PEVM_Let_iei,"O=o",PE_generic,NULL,2},
                    {"let",PEVM_Let_iei,"O=O",PE_generic,NULL,2},
                    {"let",PEVM_Let_iei,"o=0",PE_generic,NULL,2},
                    {"let",PEVM_Let_iei,"O=0",PE_generic,NULL,2},
                    {"let",PEVM_Let_iei,"P=P",PE_generic,NULL,2},
                    {"let",PEVM_Let_iei,"P=S",PE_generic,NULL,2},
                    {"let",PEVM_Let_iei,"S=P",PE_generic,NULL,2},
                    {"let",PEVM_Let_iei,"t=t",PE_generic,NULL,2},
                    {"let",PEVM_Let_iei,"t=0",PE_generic,NULL,2},
                    {"add",PEVM_Add,"ipn",PE_generic,NULL,3},
                    {"add",PEVM_Add,"ipi",PE_generic,NULL,3},
                    {"add",PEVM_Add,"ipI",PE_generic,NULL,3},
                    {"add",PEVM_Add,"ipa",PE_generic,NULL,3},
                    {"add",PEVM_Add,"Ipn",PE_generic,NULL,3},
                    {"add",PEVM_Add,"Ipi",PE_generic,NULL,3},
                    {"add",PEVM_Add,"IpI",PE_generic,NULL,3},
                    {"add",PEVM_Add,"Ipa",PE_generic,NULL,3},
                    {"add",PEVM_Add,"apn",PE_generic,NULL,3},
                    {"add",PEVM_Add,"api",PE_generic,NULL,3},
                    {"add",PEVM_Add,"apI",PE_generic,NULL,3},
                    {"add",PEVM_Add,"apa",PE_generic,NULL,3},
                    {"p_let",PEVM_Let_iei,"i=o",PE_generic,NULL,2},
                    {"p_let",PEVM_Let_iei,"I=o",PE_generic,NULL,2},
                    {"p_let",PEVM_Let_iei,"i=O",PE_generic,NULL,2},
                    {"p_let",PEVM_Let_iei,"I=O",PE_generic,NULL,2},
                    {"p_let",PEVM_Let_iei,"o=i",PE_generic,NULL,2},
                    {"p_let",PEVM_Let_iei,"o=I",PE_generic,NULL,2},
                    {"p_let",PEVM_Let_iei,"O=i",PE_generic,NULL,2},
                    {"p_let",PEVM_Let_iei,"O=I",PE_generic,NULL,2},
                    {"label",0,"l",PE_label,PEP_label,0},
                    {"goto",PEVM_Goto,"l",PE_goto,NULL,1},
                    {"if",PEVM_If_o,"i",PE_if,PEP_if,2},
                    {"if",PEVM_If_no,"i",PE_if,PEP_if,2},
                    {"if",PEVM_If_o,"I",PE_if,PEP_if,2},
                    {"if",PEVM_If_no,"I",PE_if,PEP_if,2},
                    {"if",PEVM_If_iei,"ipn",PE_if,PEP_if,4},
                    {"if",PEVM_If_iei,"Ipn",PE_if,PEP_if,4},
                    {"if",PEVM_If_iei,"ipi",PE_if,PEP_if,4},
                    {"if",PEVM_If_iei,"ipI",PE_if,PEP_if,4},
                    {"if",PEVM_If_iei,"Ipi",PE_if,PEP_if,4},
                    {"if",PEVM_If_iei,"IpI",PE_if,PEP_if,4},
                    {"if",PEVM_If_oeo,"oeo",PE_if,PEP_if,3},
                    {"if",PEVM_If_oeo,"oeO",PE_if,PEP_if,3},
                    {"if",PEVM_If_oeo,"Oeo",PE_if,PEP_if,3},
                    {"if",PEVM_If_oeo,"OeO",PE_if,PEP_if,3},
                    {"if",PEVM_If_oEo,"oEo",PE_if,PEP_if,3},
                    {"if",PEVM_If_oEo,"oEO",PE_if,PEP_if,3},
                    {"if",PEVM_If_oEo,"OEo",PE_if,PEP_if,3},
                    {"if",PEVM_If_oEo,"OEO",PE_if,PEP_if,3},
                    {"if",PEVM_If_oics,"o??s",PE_if_oics,PEP_if,3},
                    {"if",PEVM_If_oics,"O??s",PE_if_Oics,PEP_if,3},
                    {"if_exist",PEVM_If_o,"o",PE_if,PEP_if,2},
                    {"if_exist",PEVM_If_o,"O",PE_if,PEP_if,2},
                    {"if_exist",PEVM_If_o,"t",PE_if,PEP_if,2},
                    {"if_exist",PEVM_If_o,"c",PE_if,PEP_if,2},
                    {"if_exists",PEVM_If_o,"o",PE_if,PEP_if,2},
                    {"if_exists",PEVM_If_o,"O",PE_if,PEP_if,2},
                    {"if_exists",PEVM_If_o,"t",PE_if,PEP_if,2},
                    {"if_exists",PEVM_If_o,"c",PE_if,PEP_if,2},
                    {"if_not_exist",PEVM_If_no,"o",PE_if,PEP_if,2},
                    {"if_not_exist",PEVM_If_no,"O",PE_if,PEP_if,2},
                    {"if_not_exist",PEVM_If_no,"t",PE_if,PEP_if,2},
                    {"if_not_exist",PEVM_If_no,"c",PE_if,PEP_if,2},
                    {"if_not_exists",PEVM_If_no,"o",PE_if,PEP_if,2},
                    {"if_not_exists",PEVM_If_no,"O",PE_if,PEP_if,2},
                    {"if_not_exists",PEVM_If_no,"t",PE_if,PEP_if,2},
                    {"if_not_exists",PEVM_If_no,"c",PE_if,PEP_if,2},
                    {"else",0,"",PE_else,PEP_else,0},
                    {"endif",0,"",PE_endif,PEP_endif,0},
                    {"for",PEVM_For,"i=n?n",PE_for,PEP_for,5},
                    {"for",PEVM_For,"i=n?i",PE_for,PEP_for,5},
                    {"for",PEVM_For,"i=i?n",PE_for,PEP_for,5},
                    {"for",PEVM_For,"i=i?i",PE_for,PEP_for,5},
                    {"next",0,"",PE_next,PEP_next,0},
                    {"next",0,"?",PE_next,PEP_next,0},
                    {"do",0,"",PE_do,PEP_do,0},
                    {"while",PEVM_While2,"ipn",PE_while2,PEP_while,3},
                    {"while",PEVM_While2,"ipi",PE_while2,PEP_while,3},
                    {"while",PEVM_While2,"ipI",PE_while2,PEP_while,3},
                    {"while",PEVM_While2,"Ipn",PE_while2,PEP_while,3},
                    {"while",PEVM_While2,"Ipi",PE_while2,PEP_while,3},
                    {"while",PEVM_While2,"IpI",PE_while2,PEP_while,3},
                    {"while",PEVM_While1,"n",PE_while1,PEP_while,2},
                    {"while",PEVM_While1,"i",PE_while1,PEP_while,2},
                    {"while",PEVM_While1,"I",PE_while1,PEP_while,2},
                    {"while",PEVM_While1,"a",PE_while1,PEP_while,2},
                    {"while",PEVM_While1,"o",PE_while1,PEP_while,2},
                    {"while",PEVM_While1,"O",PE_while1,PEP_while,2},
                    {"while",PEVM_While1,"c",PE_while1,PEP_while,2},
                    {"continue",PEVM_Goto,"",PE_continue,NULL,1},
                    {"break",PEVM_Break,"",PE_generic,NULL,0},
                    {"search_inside",PEVM_Searchin,"o?f",PE_generic,NULL,2},
                    {"search_inside",PEVM_Searchin,"O?f",PE_generic,NULL,2},
                    {"search_inside",PEVM_Searchin,"c?f",PE_generic,NULL,2},
                    {"list_after",PEVM_Listafter,"o?f",PE_generic,NULL,2},
                    {"list_after",PEVM_Listafter,"O?f",PE_generic,NULL,2},
                    {"list_after",PEVM_Listafter,"c?f",PE_generic,NULL,2},
                    {"create",PEVM_Create,"o=s",PE_oChar,NULL,2},
                    {"create",PEVM_Create,"O=s",PE_OChar,NULL,2},
                    {"create",PEVM_Create,"c=s",PE_OChar,NULL,2},
                    {"create",PEVM_CreateS,"o=S",PE_generic,NULL,2},
                    {"create",PEVM_CreateS,"O=S",PE_generic,NULL,2},
                    {"create",PEVM_CreateS,"c=S",PE_generic,NULL,2},
                    {"create",PEVM_CreateS,"o=P",PE_generic,NULL,2},
                    {"create",PEVM_CreateS,"O=P",PE_generic,NULL,2},
                    {"create",PEVM_CreateS,"c=P",PE_generic,NULL,2},
                    {"destroy",PEVM_Destroy,"o",PE_generic,NULL,1},
                    {"destroy",PEVM_Destroy,"O",PE_generic,NULL,1},
                    {"destroy",PEVM_Destroy,"c",PE_generic,NULL,1},
                    {"set_darkness",PEVM_SetDarkness,"i",PE_generic,NULL,1},
                    {"set_darkness",PEVM_SetDarkness,"I",PE_generic,NULL,1},
                    {"play_music",PEVM_PlayMusic,"s",PE_generic,NULL,1},
                    {"play_sound",PEVM_PlaySound,"s",PE_generic,NULL,1},
                    {"object_sound",PEVM_ObjSound,"so",PE_generic,NULL,2},
                    {"object_sound",PEVM_ObjSound,"sO",PE_generic,NULL,2},
                    {"object_sound",PEVM_ObjSound,"sc",PE_generic,NULL,2},
                    {"object_sound",PEVM_ObjSound,"So",PE_generic,NULL,2},
                    {"object_sound",PEVM_ObjSound,"SO",PE_generic,NULL,2},
                    {"object_sound",PEVM_ObjSound,"Sc",PE_generic,NULL,2},
                    {"object_sound",PEVM_ObjSound,"Po",PE_generic,NULL,2},
                    {"object_sound",PEVM_ObjSound,"PO",PE_generic,NULL,2},
                    {"object_sound",PEVM_ObjSound,"Pc",PE_generic,NULL,2},
                    {"set_flag",PEVM_SetFlag,"on=n",PE_generic,NULL,3},
                    {"set_flag",PEVM_SetFlag,"on=i",PE_generic,NULL,3},
                    {"set_flag",PEVM_SetFlag,"on=I",PE_generic,NULL,3},
                    {"set_flag",PEVM_SetFlag,"On=n",PE_generic,NULL,3},
                    {"set_flag",PEVM_SetFlag,"On=i",PE_generic,NULL,3},
                    {"set_flag",PEVM_SetFlag,"On=I",PE_generic,NULL,3},
                    {"set_flag",PEVM_SetFlag,"cn=n",PE_generic,NULL,3},
                    {"set_flag",PEVM_SetFlag,"cn=i",PE_generic,NULL,3},
                    {"set_flag",PEVM_SetFlag,"cn=I",PE_generic,NULL,3},
                    {"get_flag",PEVM_GetFlag,"i=on",PE_generic,NULL,3},
                    {"get_flag",PEVM_GetFlag,"I=on",PE_generic,NULL,3},
                    {"get_flag",PEVM_GetFlag,"i=On",PE_generic,NULL,3},
                    {"get_flag",PEVM_GetFlag,"I=On",PE_generic,NULL,3},
                    {"get_flag",PEVM_GetFlag,"i=cn",PE_generic,NULL,3},
                    {"get_flag",PEVM_GetFlag,"I=cn",PE_generic,NULL,3},
                    {"reset_flag",PEVM_ResetFlag,"on",PE_generic,NULL,2},
                    {"reset_flag",PEVM_ResetFlag,"On",PE_generic,NULL,2},
                    {"reset_flag",PEVM_ResetFlag,"cn",PE_generic,NULL,2},
                    {"if_flag",PEVM_If_on,"on",PE_if,PEP_if,3},
                    {"if_flag",PEVM_If_on,"On",PE_if,PEP_if,3},
                    {"if_flag",PEVM_If_on,"cn",PE_if,PEP_if,3},
                    {"if_flag",PEVM_If_tn,"tn",PE_if,PEP_if,3},
                    {"if_not_flag",PEVM_If_non,"on",PE_if,PEP_if,3},
                    {"if_not_flag",PEVM_If_non,"On",PE_if,PEP_if,3},
                    {"if_not_flag",PEVM_If_non,"cn",PE_if,PEP_if,3},
                    {"if_not_flag",PEVM_If_ntn,"tn",PE_if,PEP_if,3},
                    {"move_object",PEVM_MoveObject,"o?nn",PE_generic,NULL,3},
                    {"move_object",PEVM_MoveObject,"o?ni",PE_generic,NULL,3},
                    {"move_object",PEVM_MoveObject,"o?nI",PE_generic,NULL,3},
                    {"move_object",PEVM_MoveObject,"o?in",PE_generic,NULL,3},
                    {"move_object",PEVM_MoveObject,"o?In",PE_generic,NULL,3},
                    {"move_object",PEVM_MoveObject,"o?ii",PE_generic,NULL,3},
                    {"move_object",PEVM_MoveObject,"o?iI",PE_generic,NULL,3},
                    {"move_object",PEVM_MoveObject,"o?Ii",PE_generic,NULL,3},
                    {"move_object",PEVM_MoveObject,"o?II",PE_generic,NULL,3},
                    {"move_object",PEVM_MoveObject,"O?nn",PE_generic,NULL,3},
                    {"move_object",PEVM_MoveObject,"O?ni",PE_generic,NULL,3},
                    {"move_object",PEVM_MoveObject,"O?nI",PE_generic,NULL,3},
                    {"move_object",PEVM_MoveObject,"O?in",PE_generic,NULL,3},
                    {"move_object",PEVM_MoveObject,"O?In",PE_generic,NULL,3},
                    {"move_object",PEVM_MoveObject,"O?ii",PE_generic,NULL,3},
                    {"move_object",PEVM_MoveObject,"O?iI",PE_generic,NULL,3},
                    {"move_object",PEVM_MoveObject,"O?Ii",PE_generic,NULL,3},
                    {"move_object",PEVM_MoveObject,"O?II",PE_generic,NULL,3},
                    {"move_object",PEVM_MoveObject,"c?nn",PE_generic,NULL,3},
                    {"move_object",PEVM_MoveObject,"c?ni",PE_generic,NULL,3},
                    {"move_object",PEVM_MoveObject,"c?nI",PE_generic,NULL,3},
                    {"move_object",PEVM_MoveObject,"c?in",PE_generic,NULL,3},
                    {"move_object",PEVM_MoveObject,"c?In",PE_generic,NULL,3},
                    {"move_object",PEVM_MoveObject,"c?ii",PE_generic,NULL,3},
                    {"move_object",PEVM_MoveObject,"c?iI",PE_generic,NULL,3},
                    {"move_object",PEVM_MoveObject,"c?Ii",PE_generic,NULL,3},
                    {"move_object",PEVM_MoveObject,"c?II",PE_generic,NULL,3},
                    {"transfer_object",PEVM_XferObject,"o?nn",PE_generic,NULL,3},
                    {"transfer_object",PEVM_XferObject,"o?ni",PE_generic,NULL,3},
                    {"transfer_object",PEVM_XferObject,"o?nI",PE_generic,NULL,3},
                    {"transfer_object",PEVM_XferObject,"o?in",PE_generic,NULL,3},
                    {"transfer_object",PEVM_XferObject,"o?In",PE_generic,NULL,3},
                    {"transfer_object",PEVM_XferObject,"o?ii",PE_generic,NULL,3},
                    {"transfer_object",PEVM_XferObject,"o?iI",PE_generic,NULL,3},
                    {"transfer_object",PEVM_XferObject,"o?Ii",PE_generic,NULL,3},
                    {"transfer_object",PEVM_XferObject,"o?II",PE_generic,NULL,3},
                    {"transfer_object",PEVM_XferObject,"O?nn",PE_generic,NULL,3},
                    {"transfer_object",PEVM_XferObject,"O?ni",PE_generic,NULL,3},
                    {"transfer_object",PEVM_XferObject,"O?nI",PE_generic,NULL,3},
                    {"transfer_object",PEVM_XferObject,"O?in",PE_generic,NULL,3},
                    {"transfer_object",PEVM_XferObject,"O?In",PE_generic,NULL,3},
                    {"transfer_object",PEVM_XferObject,"O?ii",PE_generic,NULL,3},
                    {"transfer_object",PEVM_XferObject,"O?iI",PE_generic,NULL,3},
                    {"transfer_object",PEVM_XferObject,"O?Ii",PE_generic,NULL,3},
                    {"transfer_object",PEVM_XferObject,"O?II",PE_generic,NULL,3},
                    {"transfer_object",PEVM_XferObject,"c?nn",PE_generic,NULL,3},
                    {"transfer_object",PEVM_XferObject,"c?ni",PE_generic,NULL,3},
                    {"transfer_object",PEVM_XferObject,"c?nI",PE_generic,NULL,3},
                    {"transfer_object",PEVM_XferObject,"c?in",PE_generic,NULL,3},
                    {"transfer_object",PEVM_XferObject,"c?In",PE_generic,NULL,3},
                    {"transfer_object",PEVM_XferObject,"c?ii",PE_generic,NULL,3},
                    {"transfer_object",PEVM_XferObject,"c?iI",PE_generic,NULL,3},
                    {"transfer_object",PEVM_XferObject,"c?Ii",PE_generic,NULL,3},
                    {"transfer_object",PEVM_XferObject,"c?II",PE_generic,NULL,3},
                    {"show_object",PEVM_ShowObject,"onn",PE_generic,NULL,3},
                    {"show_object",PEVM_ShowObject,"oni",PE_generic,NULL,3},
                    {"show_object",PEVM_ShowObject,"onI",PE_generic,NULL,3},
                    {"show_object",PEVM_ShowObject,"oin",PE_generic,NULL,3},
                    {"show_object",PEVM_ShowObject,"oIn",PE_generic,NULL,3},
                    {"show_object",PEVM_ShowObject,"oii",PE_generic,NULL,3},
                    {"show_object",PEVM_ShowObject,"oiI",PE_generic,NULL,3},
                    {"show_object",PEVM_ShowObject,"oIi",PE_generic,NULL,3},
                    {"show_object",PEVM_ShowObject,"oII",PE_generic,NULL,3},
                    {"show_object",PEVM_ShowObject,"Onn",PE_generic,NULL,3},
                    {"show_object",PEVM_ShowObject,"Oni",PE_generic,NULL,3},
                    {"show_object",PEVM_ShowObject,"OnI",PE_generic,NULL,3},
                    {"show_object",PEVM_ShowObject,"Oin",PE_generic,NULL,3},
                    {"show_object",PEVM_ShowObject,"OIn",PE_generic,NULL,3},
                    {"show_object",PEVM_ShowObject,"Oii",PE_generic,NULL,3},
                    {"show_object",PEVM_ShowObject,"OiI",PE_generic,NULL,3},
                    {"show_object",PEVM_ShowObject,"OIi",PE_generic,NULL,3},
                    {"show_object",PEVM_ShowObject,"OII",PE_generic,NULL,3},
                    {"show_object",PEVM_ShowObject,"cnn",PE_generic,NULL,3},
                    {"show_object",PEVM_ShowObject,"cni",PE_generic,NULL,3},
                    {"show_object",PEVM_ShowObject,"cnI",PE_generic,NULL,3},
                    {"show_object",PEVM_ShowObject,"cin",PE_generic,NULL,3},
                    {"show_object",PEVM_ShowObject,"cIn",PE_generic,NULL,3},
                    {"show_object",PEVM_ShowObject,"cii",PE_generic,NULL,3},
                    {"show_object",PEVM_ShowObject,"ciI",PE_generic,NULL,3},
                    {"show_object",PEVM_ShowObject,"cIi",PE_generic,NULL,3},
                    {"show_object",PEVM_ShowObject,"cII",PE_generic,NULL,3},
                    {"gotoxy",PEVM_GotoXY,"nn",PE_generic,NULL,2},
                    {"gotoxy",PEVM_GotoXY,"ni",PE_generic,NULL,2},
                    {"gotoxy",PEVM_GotoXY,"nI",PE_generic,NULL,2},
                    {"gotoxy",PEVM_GotoXY,"in",PE_generic,NULL,2},
                    {"gotoxy",PEVM_GotoXY,"In",PE_generic,NULL,2},
                    {"gotoxy",PEVM_GotoXY,"ii",PE_generic,NULL,2},
                    {"gotoxy",PEVM_GotoXY,"iI",PE_generic,NULL,2},
                    {"gotoxy",PEVM_GotoXY,"Ii",PE_generic,NULL,2},
                    {"gotoxy",PEVM_GotoXY,"II",PE_generic,NULL,2},
                    {"printxy",PEVM_PrintXYs,"s",PE_generic,NULL,1},
                    {"printxy",PEVM_PrintXYs,"S",PE_generic,NULL,1},
                    {"printxy",PEVM_PrintXYs,"P",PE_generic,NULL,1},
                    {"printxy",PEVM_PrintXYi,"n",PE_generic,NULL,1},
                    {"printxy",PEVM_PrintXYi,"i",PE_generic,NULL,1},
                    {"printxy",PEVM_PrintXYi,"I",PE_generic,NULL,1},
                    {"textcolour",PEVM_TextColour,"nnn",PE_generic,NULL,3},
                    {"textcolor",PEVM_TextColour,"nnn",PE_generic,NULL,3},
                    {"text_colour",PEVM_TextColour,"nnn",PE_generic,NULL,3},
                    {"text_color",PEVM_TextColour,"nnn",PE_generic,NULL,3},
                    {"set_sequence",PEVM_SetSequenceN,"os",PE_oSeq,NULL,2},
                    {"set_sequence",PEVM_SetSequenceN,"oi",PE_generic,NULL,2},
                    {"set_sequence",PEVM_SetSequenceN,"oI",PE_generic,NULL,2},
                    {"set_sequence",PEVM_SetSequenceS,"oS",PE_generic,NULL,2},
                    {"set_sequence",PEVM_SetSequenceS,"oP",PE_generic,NULL,2},
                    {"set_sequence",PEVM_SetSequenceN,"Os",PE_OSeq,NULL,2},
                    {"set_sequence",PEVM_SetSequenceN,"Oi",PE_generic,NULL,2},
                    {"set_sequence",PEVM_SetSequenceN,"OI",PE_generic,NULL,2},
                    {"set_sequence",PEVM_SetSequenceS,"OS",PE_generic,NULL,2},
                    {"set_sequence",PEVM_SetSequenceS,"OP",PE_generic,NULL,2},
                    {"set_sequence",PEVM_SetSequenceN,"cs",PE_OSeq,NULL,2},
                    {"set_sequence",PEVM_SetSequenceN,"ci",PE_generic,NULL,2},
                    {"set_sequence",PEVM_SetSequenceN,"cI",PE_generic,NULL,2},
                    {"set_sequence",PEVM_SetSequenceS,"cS",PE_generic,NULL,2},
                    {"set_sequence",PEVM_SetSequenceS,"cP",PE_generic,NULL,2},
                    {"lightning",PEVM_Lightning,"n",PE_dword,NULL,1},
                    {"bestname",PEVM_Bestname,"oP",PE_generic,NULL,2},
                    {"bestname",PEVM_Bestname,"OP",PE_generic,NULL,2},
                    {"bestname",PEVM_Bestname,"cP",PE_generic,NULL,2},
                    {"best_name",PEVM_Bestname,"oP",PE_generic,NULL,2},
                    {"best_name",PEVM_Bestname,"OP",PE_generic,NULL,2},
                    {"best_name",PEVM_Bestname,"cP",PE_generic,NULL,2},
                    {"get_object",PEVM_GetObject,"o?nn",PE_generic,NULL,3},
                    {"get_object",PEVM_GetObject,"o?ni",PE_generic,NULL,3},
                    {"get_object",PEVM_GetObject,"o?in",PE_generic,NULL,3},
                    {"get_object",PEVM_GetObject,"o?ii",PE_generic,NULL,3},
                    {"get_object",PEVM_GetObject,"o?iI",PE_generic,NULL,3},
                    {"get_object",PEVM_GetObject,"o?Ii",PE_generic,NULL,3},
                    {"get_object",PEVM_GetObject,"o?II",PE_generic,NULL,3},
                    {"get_object",PEVM_GetObject,"o?nI",PE_generic,NULL,3},
                    {"get_object",PEVM_GetObject,"o?In",PE_generic,NULL,3},
                    {"get_object",PEVM_GetObject,"O?nn",PE_generic,NULL,3},
                    {"get_object",PEVM_GetObject,"O?ni",PE_generic,NULL,3},
                    {"get_object",PEVM_GetObject,"O?in",PE_generic,NULL,3},
                    {"get_object",PEVM_GetObject,"O?ii",PE_generic,NULL,3},
                    {"get_object",PEVM_GetObject,"O?iI",PE_generic,NULL,3},
                    {"get_object",PEVM_GetObject,"O?Ii",PE_generic,NULL,3},
                    {"get_object",PEVM_GetObject,"O?II",PE_generic,NULL,3},
                    {"get_object",PEVM_GetObject,"O?nI",PE_generic,NULL,3},
                    {"get_object",PEVM_GetObject,"O?In",PE_generic,NULL,3},
                    {"get_object",PEVM_GetObject,"c?nn",PE_generic,NULL,3},
                    {"get_object",PEVM_GetObject,"c?ni",PE_generic,NULL,3},
                    {"get_object",PEVM_GetObject,"c?in",PE_generic,NULL,3},
                    {"get_object",PEVM_GetObject,"c?ii",PE_generic,NULL,3},
                    {"get_object",PEVM_GetObject,"c?iI",PE_generic,NULL,3},
                    {"get_object",PEVM_GetObject,"c?Ii",PE_generic,NULL,3},
                    {"get_object",PEVM_GetObject,"c?II",PE_generic,NULL,3},
                    {"get_object",PEVM_GetObject,"c?nI",PE_generic,NULL,3},
                    {"get_object",PEVM_GetObject,"c?In",PE_generic,NULL,3},
                    {"get_tile",PEVM_GetTile,"t?nn",PE_generic,NULL,3},
                    {"get_tile",PEVM_GetTile,"t?ni",PE_generic,NULL,3},
                    {"get_tile",PEVM_GetTile,"t?in",PE_generic,NULL,3},
                    {"get_tile",PEVM_GetTile,"t?ii",PE_generic,NULL,3},
                    {"get_tile",PEVM_GetTile,"t?iI",PE_generic,NULL,3},
                    {"get_tile",PEVM_GetTile,"t?Ii",PE_generic,NULL,3},
                    {"get_tile",PEVM_GetTile,"t?II",PE_generic,NULL,3},
                    {"get_tile",PEVM_GetTile,"t?nI",PE_generic,NULL,3},
                    {"get_tile",PEVM_GetTile,"t?In",PE_generic,NULL,3},
                    {"get_solid_object",PEVM_GetSolidObject,"o?nn",PE_generic,NULL,3},
                    {"get_solid_object",PEVM_GetSolidObject,"o?ni",PE_generic,NULL,3},
                    {"get_solid_object",PEVM_GetSolidObject,"o?in",PE_generic,NULL,3},
                    {"get_solid_object",PEVM_GetSolidObject,"o?ii",PE_generic,NULL,3},
                    {"get_solid_object",PEVM_GetSolidObject,"o?iI",PE_generic,NULL,3},
                    {"get_solid_object",PEVM_GetSolidObject,"o?Ii",PE_generic,NULL,3},
                    {"get_solid_object",PEVM_GetSolidObject,"o?II",PE_generic,NULL,3},
                    {"get_solid_object",PEVM_GetSolidObject,"o?nI",PE_generic,NULL,3},
                    {"get_solid_object",PEVM_GetSolidObject,"o?In",PE_generic,NULL,3},
                    {"get_solid_object",PEVM_GetSolidObject,"O?nn",PE_generic,NULL,3},
                    {"get_solid_object",PEVM_GetSolidObject,"O?ni",PE_generic,NULL,3},
                    {"get_solid_object",PEVM_GetSolidObject,"O?in",PE_generic,NULL,3},
                    {"get_solid_object",PEVM_GetSolidObject,"O?ii",PE_generic,NULL,3},
                    {"get_solid_object",PEVM_GetSolidObject,"O?iI",PE_generic,NULL,3},
                    {"get_solid_object",PEVM_GetSolidObject,"O?Ii",PE_generic,NULL,3},
                    {"get_solid_object",PEVM_GetSolidObject,"O?II",PE_generic,NULL,3},
                    {"get_solid_object",PEVM_GetSolidObject,"O?nI",PE_generic,NULL,3},
                    {"get_solid_object",PEVM_GetSolidObject,"O?In",PE_generic,NULL,3},
                    {"get_solid_object",PEVM_GetSolidObject,"c?nn",PE_generic,NULL,3},
                    {"get_solid_object",PEVM_GetSolidObject,"c?ni",PE_generic,NULL,3},
                    {"get_solid_object",PEVM_GetSolidObject,"c?in",PE_generic,NULL,3},
                    {"get_solid_object",PEVM_GetSolidObject,"c?ii",PE_generic,NULL,3},
                    {"get_solid_object",PEVM_GetSolidObject,"c?iI",PE_generic,NULL,3},
                    {"get_solid_object",PEVM_GetSolidObject,"c?Ii",PE_generic,NULL,3},
                    {"get_solid_object",PEVM_GetSolidObject,"c?II",PE_generic,NULL,3},
                    {"get_solid_object",PEVM_GetSolidObject,"c?nI",PE_generic,NULL,3},
                    {"get_solid_object",PEVM_GetSolidObject,"c?In",PE_generic,NULL,3},
                    {"get_first_object",PEVM_GetFirstObject,"o?nn",PE_generic,NULL,3},
                    {"get_first_object",PEVM_GetFirstObject,"o?ni",PE_generic,NULL,3},
                    {"get_first_object",PEVM_GetFirstObject,"o?in",PE_generic,NULL,3},
                    {"get_first_object",PEVM_GetFirstObject,"o?ii",PE_generic,NULL,3},
                    {"get_first_object",PEVM_GetFirstObject,"o?iI",PE_generic,NULL,3},
                    {"get_first_object",PEVM_GetFirstObject,"o?Ii",PE_generic,NULL,3},
                    {"get_first_object",PEVM_GetFirstObject,"o?II",PE_generic,NULL,3},
                    {"get_first_object",PEVM_GetFirstObject,"o?nI",PE_generic,NULL,3},
                    {"get_first_object",PEVM_GetFirstObject,"o?In",PE_generic,NULL,3},
                    {"get_first_object",PEVM_GetFirstObject,"O?nn",PE_generic,NULL,3},
                    {"get_first_object",PEVM_GetFirstObject,"O?ni",PE_generic,NULL,3},
                    {"get_first_object",PEVM_GetFirstObject,"O?in",PE_generic,NULL,3},
                    {"get_first_object",PEVM_GetFirstObject,"O?ii",PE_generic,NULL,3},
                    {"get_first_object",PEVM_GetFirstObject,"O?iI",PE_generic,NULL,3},
                    {"get_first_object",PEVM_GetFirstObject,"O?Ii",PE_generic,NULL,3},
                    {"get_first_object",PEVM_GetFirstObject,"O?II",PE_generic,NULL,3},
                    {"get_first_object",PEVM_GetFirstObject,"O?nI",PE_generic,NULL,3},
                    {"get_first_object",PEVM_GetFirstObject,"O?In",PE_generic,NULL,3},
                    {"get_first_object",PEVM_GetFirstObject,"c?nn",PE_generic,NULL,3},
                    {"get_first_object",PEVM_GetFirstObject,"c?ni",PE_generic,NULL,3},
                    {"get_first_object",PEVM_GetFirstObject,"c?in",PE_generic,NULL,3},
                    {"get_first_object",PEVM_GetFirstObject,"c?ii",PE_generic,NULL,3},
                    {"get_first_object",PEVM_GetFirstObject,"c?iI",PE_generic,NULL,3},
                    {"get_first_object",PEVM_GetFirstObject,"c?Ii",PE_generic,NULL,3},
                    {"get_first_object",PEVM_GetFirstObject,"c?II",PE_generic,NULL,3},
                    {"get_first_object",PEVM_GetFirstObject,"c?nI",PE_generic,NULL,3},
                    {"get_first_object",PEVM_GetFirstObject,"c?In",PE_generic,NULL,3},
                    {"get_object_below",PEVM_GetObjectBelow,"o=o",PE_generic,NULL,2},
                    {"get_object_below",PEVM_GetObjectBelow,"o=O",PE_generic,NULL,2},
                    {"get_object_below",PEVM_GetObjectBelow,"o=c",PE_generic,NULL,2},
                    {"get_object_below",PEVM_GetObjectBelow,"O=o",PE_generic,NULL,2},
                    {"get_object_below",PEVM_GetObjectBelow,"O=O",PE_generic,NULL,2},
                    {"get_object_below",PEVM_GetObjectBelow,"O=c",PE_generic,NULL,2},
                    {"get_object_below",PEVM_GetObjectBelow,"c=o",PE_generic,NULL,2},
                    {"get_object_below",PEVM_GetObjectBelow,"c=O",PE_generic,NULL,2},
                    {"get_object_below",PEVM_GetObjectBelow,"c=c",PE_generic,NULL,2},
                    {"change",PEVM_ChangeObject,"o=s",PE_oChar,NULL,2},
                    {"change",PEVM_ChangeObject,"O=s",PE_OChar,NULL,2},
                    {"change",PEVM_ChangeObject,"c=s",PE_OChar,NULL,2},
                    {"change",PEVM_ChangeObjectS,"o=S",PE_generic,NULL,2},
                    {"change",PEVM_ChangeObjectS,"O=S",PE_generic,NULL,2},
                    {"change",PEVM_ChangeObjectS,"c=S",PE_generic,NULL,2},
                    {"change",PEVM_ChangeObject,"o=i",PE_generic,NULL,2},
                    {"change",PEVM_ChangeObject,"O=i",PE_generic,NULL,2},
                    {"change",PEVM_ChangeObject,"x=i",PE_generic,NULL,2},
                    {"change",PEVM_ChangeObject,"o=I",PE_generic,NULL,2},
                    {"change",PEVM_ChangeObject,"O=I",PE_generic,NULL,2},
                    {"change",PEVM_ChangeObject,"c=I",PE_generic,NULL,2},
                    {"replace",PEVM_ReplaceObject,"o=s",PE_oChar,NULL,2},
                    {"replace",PEVM_ReplaceObject,"O=s",PE_OChar,NULL,2},
                    {"replace",PEVM_ReplaceObject,"c=s",PE_OChar,NULL,2},
                    {"replace",PEVM_ReplaceObjectS,"o=S",PE_generic,NULL,2},
                    {"replace",PEVM_ReplaceObjectS,"O=S",PE_generic,NULL,2},
                    {"replace",PEVM_ReplaceObjectS,"c=S",PE_generic,NULL,2},
                    {"replace",PEVM_ReplaceObject,"o=i",PE_generic,NULL,2},
                    {"replace",PEVM_ReplaceObject,"O=i",PE_generic,NULL,2},
                    {"replace",PEVM_ReplaceObject,"c=i",PE_generic,NULL,2},
                    {"replace",PEVM_ReplaceObject,"o=I",PE_generic,NULL,2},
                    {"replace",PEVM_ReplaceObject,"O=I",PE_generic,NULL,2},
                    {"replace",PEVM_ReplaceObject,"c=I",PE_generic,NULL,2},
                    {"set_direction",PEVM_SetDir,"oi",PE_generic,NULL,2},
                    {"set_direction",PEVM_SetDir,"oI",PE_generic,NULL,2},
                    {"set_direction",PEVM_SetDir,"Oi",PE_generic,NULL,2},
                    {"set_direction",PEVM_SetDir,"OI",PE_generic,NULL,2},
                    {"set_direction",PEVM_SetDir,"ci",PE_generic,NULL,2},
                    {"set_direction",PEVM_SetDir,"cI",PE_generic,NULL,2},
                    {"redraw_text",PEVM_RedrawText,"",PE_generic,NULL,0},
                    {"redraw_map",PEVM_RedrawMap,"",PE_generic,NULL,0},
                    {"move_from_pocket",PEVM_MoveFromPocket,"o?o?nn",PE_generic,NULL,4},
                    {"move_from_pocket",PEVM_MoveFromPocket,"o?o?ni",PE_generic,NULL,4},
                    {"move_from_pocket",PEVM_MoveFromPocket,"o?o?in",PE_generic,NULL,4},
                    {"move_from_pocket",PEVM_MoveFromPocket,"o?o?ii",PE_generic,NULL,4},
                    {"move_from_pocket",PEVM_MoveFromPocket,"o?o?iI",PE_generic,NULL,4},
                    {"move_from_pocket",PEVM_MoveFromPocket,"o?o?Ii",PE_generic,NULL,4},
                    {"move_from_pocket",PEVM_MoveFromPocket,"o?o?II",PE_generic,NULL,4},
                    {"move_from_pocket",PEVM_MoveFromPocket,"o?o?nI",PE_generic,NULL,4},
                    {"move_from_pocket",PEVM_MoveFromPocket,"o?o?In",PE_generic,NULL,4},
                    {"move_from_pocket",PEVM_MoveFromPocket,"o?O?nn",PE_generic,NULL,4},
                    {"move_from_pocket",PEVM_MoveFromPocket,"o?O?ni",PE_generic,NULL,4},
                    {"move_from_pocket",PEVM_MoveFromPocket,"o?O?in",PE_generic,NULL,4},
                    {"move_from_pocket",PEVM_MoveFromPocket,"o?O?ii",PE_generic,NULL,4},
                    {"move_from_pocket",PEVM_MoveFromPocket,"o?O?iI",PE_generic,NULL,4},
                    {"move_from_pocket",PEVM_MoveFromPocket,"o?O?Ii",PE_generic,NULL,4},
                    {"move_from_pocket",PEVM_MoveFromPocket,"o?O?II",PE_generic,NULL,4},
                    {"move_from_pocket",PEVM_MoveFromPocket,"o?O?nI",PE_generic,NULL,4},
                    {"move_from_pocket",PEVM_MoveFromPocket,"o?O?In",PE_generic,NULL,4},
                    {"move_from_pocket",PEVM_MoveFromPocket,"O?o?nn",PE_generic,NULL,4},
                    {"move_from_pocket",PEVM_MoveFromPocket,"O?o?ni",PE_generic,NULL,4},
                    {"move_from_pocket",PEVM_MoveFromPocket,"O?o?in",PE_generic,NULL,4},
                    {"move_from_pocket",PEVM_MoveFromPocket,"O?o?ii",PE_generic,NULL,4},
                    {"move_from_pocket",PEVM_MoveFromPocket,"O?o?iI",PE_generic,NULL,4},
                    {"move_from_pocket",PEVM_MoveFromPocket,"O?o?Ii",PE_generic,NULL,4},
                    {"move_from_pocket",PEVM_MoveFromPocket,"O?o?II",PE_generic,NULL,4},
                    {"move_from_pocket",PEVM_MoveFromPocket,"O?o?nI",PE_generic,NULL,4},
                    {"move_from_pocket",PEVM_MoveFromPocket,"O?o?In",PE_generic,NULL,4},
                    {"move_from_pocket",PEVM_MoveFromPocket,"O?O?nn",PE_generic,NULL,4},
                    {"move_from_pocket",PEVM_MoveFromPocket,"O?O?ni",PE_generic,NULL,4},
                    {"move_from_pocket",PEVM_MoveFromPocket,"O?O?in",PE_generic,NULL,4},
                    {"move_from_pocket",PEVM_MoveFromPocket,"O?O?ii",PE_generic,NULL,4},
                    {"move_from_pocket",PEVM_MoveFromPocket,"O?O?iI",PE_generic,NULL,4},
                    {"move_from_pocket",PEVM_MoveFromPocket,"O?O?Ii",PE_generic,NULL,4},
                    {"move_from_pocket",PEVM_MoveFromPocket,"O?O?II",PE_generic,NULL,4},
                    {"move_from_pocket",PEVM_MoveFromPocket,"O?O?nI",PE_generic,NULL,4},
                    {"move_from_pocket",PEVM_MoveFromPocket,"O?O?In",PE_generic,NULL,4},
                    {"force_from_pocket",PEVM_ForceFromPocket,"o?o?nn",PE_generic,NULL,4},
                    {"force_from_pocket",PEVM_ForceFromPocket,"o?o?ni",PE_generic,NULL,4},
                    {"force_from_pocket",PEVM_ForceFromPocket,"o?o?in",PE_generic,NULL,4},
                    {"force_from_pocket",PEVM_ForceFromPocket,"o?o?ii",PE_generic,NULL,4},
                    {"force_from_pocket",PEVM_ForceFromPocket,"o?o?iI",PE_generic,NULL,4},
                    {"force_from_pocket",PEVM_ForceFromPocket,"o?o?Ii",PE_generic,NULL,4},
                    {"force_from_pocket",PEVM_ForceFromPocket,"o?o?II",PE_generic,NULL,4},
                    {"force_from_pocket",PEVM_ForceFromPocket,"o?o?nI",PE_generic,NULL,4},
                    {"force_from_pocket",PEVM_ForceFromPocket,"o?o?In",PE_generic,NULL,4},
                    {"force_from_pocket",PEVM_ForceFromPocket,"o?O?nn",PE_generic,NULL,4},
                    {"force_from_pocket",PEVM_ForceFromPocket,"o?O?ni",PE_generic,NULL,4},
                    {"force_from_pocket",PEVM_ForceFromPocket,"o?O?in",PE_generic,NULL,4},
                    {"force_from_pocket",PEVM_ForceFromPocket,"o?O?ii",PE_generic,NULL,4},
                    {"force_from_pocket",PEVM_ForceFromPocket,"o?O?iI",PE_generic,NULL,4},
                    {"force_from_pocket",PEVM_ForceFromPocket,"o?O?Ii",PE_generic,NULL,4},
                    {"force_from_pocket",PEVM_ForceFromPocket,"o?O?II",PE_generic,NULL,4},
                    {"force_from_pocket",PEVM_ForceFromPocket,"o?O?nI",PE_generic,NULL,4},
                    {"force_from_pocket",PEVM_ForceFromPocket,"o?O?In",PE_generic,NULL,4},
                    {"force_from_pocket",PEVM_ForceFromPocket,"O?o?nn",PE_generic,NULL,4},
                    {"force_from_pocket",PEVM_ForceFromPocket,"O?o?ni",PE_generic,NULL,4},
                    {"force_from_pocket",PEVM_ForceFromPocket,"O?o?in",PE_generic,NULL,4},
                    {"force_from_pocket",PEVM_ForceFromPocket,"O?o?ii",PE_generic,NULL,4},
                    {"force_from_pocket",PEVM_ForceFromPocket,"O?o?iI",PE_generic,NULL,4},
                    {"force_from_pocket",PEVM_ForceFromPocket,"O?o?Ii",PE_generic,NULL,4},
                    {"force_from_pocket",PEVM_ForceFromPocket,"O?o?II",PE_generic,NULL,4},
                    {"force_from_pocket",PEVM_ForceFromPocket,"O?o?nI",PE_generic,NULL,4},
                    {"force_from_pocket",PEVM_ForceFromPocket,"O?o?In",PE_generic,NULL,4},
                    {"force_from_pocket",PEVM_ForceFromPocket,"O?O?nn",PE_generic,NULL,4},
                    {"force_from_pocket",PEVM_ForceFromPocket,"O?O?ni",PE_generic,NULL,4},
                    {"force_from_pocket",PEVM_ForceFromPocket,"O?O?in",PE_generic,NULL,4},
                    {"force_from_pocket",PEVM_ForceFromPocket,"O?O?ii",PE_generic,NULL,4},
                    {"force_from_pocket",PEVM_ForceFromPocket,"O?O?iI",PE_generic,NULL,4},
                    {"force_from_pocket",PEVM_ForceFromPocket,"O?O?Ii",PE_generic,NULL,4},
                    {"force_from_pocket",PEVM_ForceFromPocket,"O?O?II",PE_generic,NULL,4},
                    {"force_from_pocket",PEVM_ForceFromPocket,"O?O?nI",PE_generic,NULL,4},
                    {"force_from_pocket",PEVM_ForceFromPocket,"O?O?In",PE_generic,NULL,4},
                    {"move_to_pocket",PEVM_MoveToPocket,"o?o",PE_generic,NULL,2},
                    {"move_to_pocket",PEVM_MoveToPocket,"o?O",PE_generic,NULL,2},
                    {"move_to_pocket",PEVM_MoveToPocket,"O?o",PE_generic,NULL,2},
                    {"move_to_pocket",PEVM_MoveToPocket,"O?O",PE_generic,NULL,2},
                    {"transfer_to_pocket",PEVM_XferToPocket,"o?o",PE_generic,NULL,2},
                    {"transfer_to_pocket",PEVM_XferToPocket,"o?O",PE_generic,NULL,2},
                    {"transfer_to_pocket",PEVM_XferToPocket,"O?o",PE_generic,NULL,2},
                    {"transfer_to_pocket",PEVM_XferToPocket,"O?O",PE_generic,NULL,2},
                    {"spill",PEVM_Spill,"o",PE_generic,NULL,1},
                    {"spill",PEVM_Spill,"O",PE_generic,NULL,1},
                    {"spill",PEVM_SpillXY,"onn",PE_generic,NULL,3},
                    {"spill",PEVM_SpillXY,"oni",PE_generic,NULL,3},
                    {"spill",PEVM_SpillXY,"oin",PE_generic,NULL,3},
                    {"spill",PEVM_SpillXY,"oii",PE_generic,NULL,3},
                    {"spill",PEVM_SpillXY,"oiI",PE_generic,NULL,3},
                    {"spill",PEVM_SpillXY,"oIi",PE_generic,NULL,3},
                    {"spill",PEVM_SpillXY,"oII",PE_generic,NULL,3},
                    {"spill",PEVM_SpillXY,"Onn",PE_generic,NULL,3},
                    {"spill",PEVM_SpillXY,"Oni",PE_generic,NULL,3},
                    {"spill",PEVM_SpillXY,"Oin",PE_generic,NULL,3},
                    {"spill",PEVM_SpillXY,"Oii",PE_generic,NULL,3},
                    {"spill",PEVM_SpillXY,"OiI",PE_generic,NULL,3},
                    {"spill",PEVM_SpillXY,"OIi",PE_generic,NULL,3},
                    {"spill",PEVM_SpillXY,"OII",PE_generic,NULL,3},
                    {"fade_out",PEVM_FadeOut,"",PE_generic,NULL,0},
                    {"fade_in",PEVM_FadeIn,"",PE_generic,NULL,0},
                    {"move_to_top",PEVM_MoveToTop,"o",PE_generic,NULL,1},
                    {"move_to_top",PEVM_MoveToTop,"O",PE_generic,NULL,1},
                    {"move_to_bottom",PEVM_MoveToFloor,"o",PE_generic,NULL,1},
                    {"move_to_bottom",PEVM_MoveToFloor,"O",PE_generic,NULL,1},
                    {"move_to_floor",PEVM_MoveToFloor,"o",PE_generic,NULL,1},
                    {"move_to_floor",PEVM_MoveToFloor,"O",PE_generic,NULL,1},
                    {"check_hurt",PEVM_CheckHurt,"o",PE_generic,NULL,1},
                    {"check_hurt",PEVM_CheckHurt,"O",PE_generic,NULL,1},
                    {"if_line_of_sight",PEVM_If_LOS,"oo",PE_if,PEP_if,3},
                    {"if_line_of_sight",PEVM_If_LOS,"oO",PE_if,PEP_if,3},
                    {"if_line_of_sight",PEVM_If_LOS,"Oo",PE_if,PEP_if,3},
                    {"if_line_of_sight",PEVM_If_LOS,"OO",PE_if,PEP_if,3},
                    {"if_solid",PEVM_IfSolid,"nn",PE_if,PEP_if,3},
                    {"if_solid",PEVM_IfSolid,"ni",PE_if,PEP_if,3},
                    {"if_solid",PEVM_IfSolid,"in",PE_if,PEP_if,3},
                    {"if_solid",PEVM_IfSolid,"nI",PE_if,PEP_if,3},
                    {"if_solid",PEVM_IfSolid,"In",PE_if,PEP_if,3},
                    {"if_solid",PEVM_IfSolid,"ii",PE_if,PEP_if,3},
                    {"if_solid",PEVM_IfSolid,"iI",PE_if,PEP_if,3},
                    {"if_solid",PEVM_IfSolid,"Ii",PE_if,PEP_if,3},
                    {"if_solid",PEVM_IfSolid,"II",PE_if,PEP_if,3},
                    {"set_pflag",PEVM_SetPFlag,"on=n",PE_generic,NULL,3},
                    {"set_pflag",PEVM_SetPFlag,"on=i",PE_generic,NULL,3},
                    {"set_pflag",PEVM_SetPFlag,"on=I",PE_generic,NULL,3},
                    {"set_pflag",PEVM_SetPFlag,"On=n",PE_generic,NULL,3},
                    {"set_pflag",PEVM_SetPFlag,"On=i",PE_generic,NULL,3},
                    {"set_pflag",PEVM_SetPFlag,"On=I",PE_generic,NULL,3},
                    {"get_pflag",PEVM_GetPFlag,"i=on",PE_generic,NULL,3},
                    {"get_pflag",PEVM_GetPFlag,"I=on",PE_generic,NULL,3},
                    {"get_pflag",PEVM_GetPFlag,"i=On",PE_generic,NULL,3},
                    {"get_pflag",PEVM_GetPFlag,"I=On",PE_generic,NULL,3},
                    {"set_user_flag",PEVM_SetUFlag,"s=n",PE_generic,NULL,2},
                    {"set_user_flag",PEVM_SetUFlag,"s=i",PE_generic,NULL,2},
                    {"set_user_flag",PEVM_SetUFlag,"s=I",PE_generic,NULL,2},
                    {"set_user_flag",PEVM_SetUFlag,"S=n",PE_generic,NULL,2},
                    {"set_user_flag",PEVM_SetUFlag,"S=i",PE_generic,NULL,2},
                    {"set_user_flag",PEVM_SetUFlag,"S=I",PE_generic,NULL,2},
                    {"get_user_flag",PEVM_GetUFlag,"s=n",PE_generic,NULL,2},
                    {"get_user_flag",PEVM_GetUFlag,"s=i",PE_generic,NULL,2},
                    {"get_user_flag",PEVM_GetUFlag,"s=I",PE_generic,NULL,2},
                    {"get_user_flag",PEVM_GetUFlag,"S=n",PE_generic,NULL,2},
                    {"get_user_flag",PEVM_GetUFlag,"S=i",PE_generic,NULL,2},
                    {"get_user_flag",PEVM_GetUFlag,"S=I",PE_generic,NULL,2},
                    {"get_local",PEVM_GetLocal,"i=os",PE_generic,NULL,3},
                    {"get_local",PEVM_GetLocal,"i=oS",PE_generic,NULL,3},
                    {"get_local",PEVM_GetLocal,"i=Os",PE_generic,NULL,3},
                    {"get_local",PEVM_GetLocal,"i=OS",PE_generic,NULL,3},
                    {"get_local",PEVM_GetLocal,"I=os",PE_generic,NULL,3},
                    {"get_local",PEVM_GetLocal,"I=oS",PE_generic,NULL,3},
                    {"get_local",PEVM_GetLocal,"I=Os",PE_generic,NULL,3},
                    {"get_local",PEVM_GetLocal,"I=OS",PE_generic,NULL,3},
                    {"set_local",PEVM_SetLocal,"os=n",PE_generic,NULL,3},
                    {"set_local",PEVM_SetLocal,"os=i",PE_generic,NULL,3},
                    {"set_local",PEVM_SetLocal,"os=I",PE_generic,NULL,3},
                    {"set_local",PEVM_SetLocal,"oS=n",PE_generic,NULL,3},
                    {"set_local",PEVM_SetLocal,"oS=i",PE_generic,NULL,3},
                    {"set_local",PEVM_SetLocal,"oS=I",PE_generic,NULL,3},
                    {"set_local",PEVM_SetLocal,"Os=n",PE_generic,NULL,3},
                    {"set_local",PEVM_SetLocal,"Os=i",PE_generic,NULL,3},
                    {"set_local",PEVM_SetLocal,"Os=I",PE_generic,NULL,3},
                    {"set_local",PEVM_SetLocal,"OS=n",PE_generic,NULL,3},
                    {"set_local",PEVM_SetLocal,"OS=i",PE_generic,NULL,3},
                    {"set_local",PEVM_SetLocal,"OS=I",PE_generic,NULL,3},
                    {"get_weight",PEVM_WeighObject,"i=o",PE_generic,NULL,2},
                    {"get_weight",PEVM_WeighObject,"i=O",PE_generic,NULL,2},
                    {"get_weight",PEVM_WeighObject,"I=o",PE_generic,NULL,2},
                    {"get_weight",PEVM_WeighObject,"I=O",PE_generic,NULL,2},
                    {"get_bulk",PEVM_GetBulk,"i=o",PE_generic,NULL,2},
                    {"get_bulk",PEVM_GetBulk,"i=O",PE_generic,NULL,2},
                    {"get_bulk",PEVM_GetBulk,"I=o",PE_generic,NULL,2},
                    {"get_bulk",PEVM_GetBulk,"I=O",PE_generic,NULL,2},
                    {"get_number",PEVM_GetNumber,"i=o",PE_generic,NULL,2},
                    {"get_number",PEVM_GetNumber,"i=O",PE_generic,NULL,2},
                    {"get_number",PEVM_GetNumber,"I=o",PE_generic,NULL,2},
                    {"get_number",PEVM_GetNumber,"I=O",PE_generic,NULL,2},
                    {"if_in_pocket",PEVM_IfInPocket,"o",PE_if,PEP_if,2},
                    {"if_in_pocket",PEVM_IfInPocket,"O",PE_if,PEP_if,2},
                    {"if_in_pocket",PEVM_IfInPocket,"c",PE_if,PEP_if,2},
                    {"if_not_in_pocket",PEVM_IfNInPocket,"o",PE_if,PEP_if,2},
                    {"if_not_in_pocket",PEVM_IfNInPocket,"O",PE_if,PEP_if,2},
                    {"if_not_in_pocket",PEVM_IfNInPocket,"c",PE_if,PEP_if,2},
                    {"resync_everything",PEVM_ReSyncEverything,"",PE_generic,NULL,0},
                    {"resume_schedule",PEVM_ResumeSchedule,"o",PE_generic,NULL,1},
                    {"resume_schedule",PEVM_ResumeSchedule,"O",PE_generic,NULL,1},
                    {"resume_schedule",PEVM_ResumeSchedule,"c",PE_generic,NULL,1},
                    {"talk_to",PEVM_TalkTo1,"s",PE_generic,NULL,2},
                    {"talk_to",PEVM_TalkTo1,"S",PE_generic,NULL,2},
                    {"talk_to",PEVM_TalkTo2,"ss",PE_generic,NULL,2},
                    {"talk_to",PEVM_TalkTo2,"sS",PE_generic,NULL,2},
                    {"talk_to",PEVM_TalkTo2,"Ss",PE_generic,NULL,2},
                    {"talk_to",PEVM_TalkTo2,"SS",PE_generic,NULL,2},
                    {"random",PEVM_Random,"i?nn",PE_generic,NULL,3},
                    {"random",PEVM_Random,"i?ni",PE_generic,NULL,3},
                    {"random",PEVM_Random,"i?nI",PE_generic,NULL,3},
                    {"random",PEVM_Random,"i?na",PE_generic,NULL,3},
                    {"random",PEVM_Random,"i?in",PE_generic,NULL,3},
                    {"random",PEVM_Random,"i?ii",PE_generic,NULL,3},
                    {"random",PEVM_Random,"i?iI",PE_generic,NULL,3},
                    {"random",PEVM_Random,"i?ia",PE_generic,NULL,3},
                    {"random",PEVM_Random,"i?In",PE_generic,NULL,3},
                    {"random",PEVM_Random,"i?Ii",PE_generic,NULL,3},
                    {"random",PEVM_Random,"i?II",PE_generic,NULL,3},
                    {"random",PEVM_Random,"i?Ia",PE_generic,NULL,3},
                    {"random",PEVM_Random,"i?an",PE_generic,NULL,3},
                    {"random",PEVM_Random,"i?ai",PE_generic,NULL,3},
                    {"random",PEVM_Random,"i?aI",PE_generic,NULL,3},
                    {"random",PEVM_Random,"i?aa",PE_generic,NULL,3},
                    {"random",PEVM_Random,"I?nn",PE_generic,NULL,3},
                    {"random",PEVM_Random,"I?ni",PE_generic,NULL,3},
                    {"random",PEVM_Random,"I?nI",PE_generic,NULL,3},
                    {"random",PEVM_Random,"I?na",PE_generic,NULL,3},
                    {"random",PEVM_Random,"I?in",PE_generic,NULL,3},
                    {"random",PEVM_Random,"I?ii",PE_generic,NULL,3},
                    {"random",PEVM_Random,"I?iI",PE_generic,NULL,3},
                    {"random",PEVM_Random,"I?ia",PE_generic,NULL,3},
                    {"random",PEVM_Random,"I?In",PE_generic,NULL,3},
                    {"random",PEVM_Random,"I?Ii",PE_generic,NULL,3},
                    {"random",PEVM_Random,"I?II",PE_generic,NULL,3},
                    {"random",PEVM_Random,"I?Ia",PE_generic,NULL,3},
                    {"random",PEVM_Random,"I?an",PE_generic,NULL,3},
                    {"random",PEVM_Random,"I?ai",PE_generic,NULL,3},
                    {"random",PEVM_Random,"I?aI",PE_generic,NULL,3},
                    {"random",PEVM_Random,"I?aa",PE_generic,NULL,3},
                    {"random",PEVM_Random,"a?nn",PE_generic,NULL,3},
                    {"random",PEVM_Random,"a?ni",PE_generic,NULL,3},
                    {"random",PEVM_Random,"a?nI",PE_generic,NULL,3},
                    {"random",PEVM_Random,"a?na",PE_generic,NULL,3},
                    {"random",PEVM_Random,"a?in",PE_generic,NULL,3},
                    {"random",PEVM_Random,"a?ii",PE_generic,NULL,3},
                    {"random",PEVM_Random,"a?iI",PE_generic,NULL,3},
                    {"random",PEVM_Random,"a?ia",PE_generic,NULL,3},
                    {"random",PEVM_Random,"a?In",PE_generic,NULL,3},
                    {"random",PEVM_Random,"a?Ii",PE_generic,NULL,3},
                    {"random",PEVM_Random,"a?II",PE_generic,NULL,3},
                    {"random",PEVM_Random,"a?Ia",PE_generic,NULL,3},
                    {"random",PEVM_Random,"a?an",PE_generic,NULL,3},
                    {"random",PEVM_Random,"a?ai",PE_generic,NULL,3},
                    {"random",PEVM_Random,"a?aI",PE_generic,NULL,3},
                    {"random",PEVM_Random,"a?aa",PE_generic,NULL,3},
                    {"if_confirm",PEVM_GetYN,"s",PE_if,PEP_if,2},
                    {"if_confirm",PEVM_GetYN,"S",PE_if,PEP_if,2},
                    {"if_getYN",PEVM_GetYN,"s",PE_if,PEP_if,2},
                    {"if_getYN",PEVM_GetYN,"S",PE_if,PEP_if,2},
                    {"if_not_confirm",PEVM_GetYN,"s",PE_if,PEP_if,2},
                    {"if_not_confirm",PEVM_GetYNN,"S",PE_if,PEP_if,2},
                    {"if_not_getYN",PEVM_GetYN,"s",PE_if,PEP_if,2},
                    {"if_not_getYN",PEVM_GetYNN,"S",PE_if,PEP_if,2},
                    {"restart",PEVM_Restart,"",PE_generic,NULL,0},
                    {"restart_game",PEVM_Restart,"",PE_generic,NULL,0},
                    {"scroll_tile",PEVM_ScrTileN,"nnn",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileN,"nni",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileN,"nnI",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileN,"nin",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileN,"nIn",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileN,"nii",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileN,"niI",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileN,"nIi",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileN,"nII",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileN,"inn",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileN,"ini",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileN,"inI",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileN,"iin",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileN,"iIn",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileN,"iii",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileN,"iiI",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileN,"iIi",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileN,"iII",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileN,"Inn",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileN,"Ini",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileN,"InI",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileN,"Iin",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileN,"IIn",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileN,"Iii",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileN,"IiI",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileN,"IIi",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileN,"III",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileS,"snn",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileS,"sni",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileS,"snI",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileS,"sin",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileS,"sIn",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileS,"sii",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileS,"siI",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileS,"sIi",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileS,"sII",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileS,"Snn",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileS,"Sni",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileS,"SnI",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileS,"Sin",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileS,"SIn",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileS,"Sii",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileS,"SiI",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileS,"SIi",PE_generic,NULL,3},
                    {"scroll_tile",PEVM_ScrTileS,"SII",PE_generic,NULL,3},
                    {"scroll_tile_number",PEVM_ScrTileN,"nnn",PE_generic,NULL,3},
                    {"scroll_tile_number",PEVM_ScrTileN,"nni",PE_generic,NULL,3},
                    {"scroll_tile_number",PEVM_ScrTileN,"nnI",PE_generic,NULL,3},
                    {"scroll_tile_number",PEVM_ScrTileN,"nin",PE_generic,NULL,3},
                    {"scroll_tile_number",PEVM_ScrTileN,"nIn",PE_generic,NULL,3},
                    {"scroll_tile_number",PEVM_ScrTileN,"nii",PE_generic,NULL,3},
                    {"scroll_tile_number",PEVM_ScrTileN,"niI",PE_generic,NULL,3},
                    {"scroll_tile_number",PEVM_ScrTileN,"nIi",PE_generic,NULL,3},
                    {"scroll_tile_number",PEVM_ScrTileN,"nII",PE_generic,NULL,3},
                    {"scroll_tile_number",PEVM_ScrTileN,"inn",PE_generic,NULL,3},
                    {"scroll_tile_number",PEVM_ScrTileN,"ini",PE_generic,NULL,3},
                    {"scroll_tile_number",PEVM_ScrTileN,"inI",PE_generic,NULL,3},
                    {"scroll_tile_number",PEVM_ScrTileN,"iin",PE_generic,NULL,3},
                    {"scroll_tile_number",PEVM_ScrTileN,"iIn",PE_generic,NULL,3},
                    {"scroll_tile_number",PEVM_ScrTileN,"iii",PE_generic,NULL,3},
                    {"scroll_tile_number",PEVM_ScrTileN,"iiI",PE_generic,NULL,3},
                    {"scroll_tile_number",PEVM_ScrTileN,"iIi",PE_generic,NULL,3},
                    {"scroll_tile_number",PEVM_ScrTileN,"iII",PE_generic,NULL,3},
                    {"scroll_tile_number",PEVM_ScrTileN,"Inn",PE_generic,NULL,3},
                    {"scroll_tile_number",PEVM_ScrTileN,"Ini",PE_generic,NULL,3},
                    {"scroll_tile_number",PEVM_ScrTileN,"InI",PE_generic,NULL,3},
                    {"scroll_tile_number",PEVM_ScrTileN,"Iin",PE_generic,NULL,3},
                    {"scroll_tile_number",PEVM_ScrTileN,"IIn",PE_generic,NULL,3},
                    {"scroll_tile_number",PEVM_ScrTileN,"Iii",PE_generic,NULL,3},
                    {"scroll_tile_number",PEVM_ScrTileN,"IiI",PE_generic,NULL,3},
                    {"scroll_tile_number",PEVM_ScrTileN,"IIi",PE_generic,NULL,3},
                    {"scroll_tile_number",PEVM_ScrTileN,"III",PE_generic,NULL,3},
                    {"get_input",PEVM_GetKey,"",PE_generic,NULL,0},
                    {"get_key",PEVM_GetKey,"",PE_generic,NULL,0},
                    {"getkey",PEVM_GetKey,"",PE_generic,NULL,0},
                    {"get_VRMname",PEVM_GetFuncV,"P=i",PE_generic,NULL,2},
                    {"get_VRMname",PEVM_GetFuncV,"P=I",PE_generic,NULL,2},
                    {"get_funcname",PEVM_GetFuncP,"P=i",PE_generic,NULL,2},
                    {"get_funcname",PEVM_GetFuncP,"P=I",PE_generic,NULL,2},
                    {"start_action",PEVM_DoAct,"o?f",PE_generic,NULL,2},
                    {"start_action",PEVM_DoActTo,"o?f?o",PE_generic,NULL,3},
                    {"do_action",PEVM_DoAct,"o?f",PE_generic,NULL,2},
                    {"do_action",PEVM_DoActTo,"o?f?o",PE_generic,NULL,3},
                    {"start_activity",PEVM_DoAct,"o?f",PE_generic,NULL,2},
                    {"start_activity",PEVM_DoActTo,"o?f?o",PE_generic,NULL,3},
                    {"do_activity",PEVM_DoAct,"o?f",PE_generic,NULL,2},
                    {"do_activity",PEVM_DoActTo,"o?f?o",PE_generic,NULL,3},
                    {"stop_action",PEVM_StopAct,"o",PE_generic,NULL,1},
                    {"stop_activity",PEVM_StopAct,"o",PE_generic,NULL,1},
                    {"resume_action",PEVM_ResumeAct,"o",PE_generic,NULL,1},
                    {"resume_activity",PEVM_ResumeAct,"o",PE_generic,NULL,1},
                    {"last_action",PEVM_ResumeAct,"o",PE_generic,NULL,1},
                    {"last_activity",PEVM_ResumeAct,"o",PE_generic,NULL,1},
                    {"find_container",PEVM_GetContainer,"o?o",PE_generic,NULL,2},
                    {"find_container",PEVM_GetContainer,"o??o",PE_generic,NULL,2},
                    {"find_pocket",PEVM_GetContainer,"o?o",PE_generic,NULL,2},
                    {"find_pocket",PEVM_GetContainer,"o??o",PE_generic,NULL,2},
                    {"set_leader",PEVM_SetLeader,"ovv",PE_generic,NULL,3},
                    {"set_leader",PEVM_SetLeader,"ovi",PE_generic,NULL,3},
                    {"set_leader",PEVM_SetLeader,"ovI",PE_generic,NULL,3},
                    {"set_leader",PEVM_SetLeader,"oiv",PE_generic,NULL,3},
                    {"set_leader",PEVM_SetLeader,"oIv",PE_generic,NULL,3},
                    {"set_leader",PEVM_SetLeader,"oii",PE_generic,NULL,3},
                    {"set_leader",PEVM_SetLeader,"oIi",PE_generic,NULL,3},
                    {"set_leader",PEVM_SetLeader,"oiI",PE_generic,NULL,3},
                    {"set_leader",PEVM_SetLeader,"oII",PE_generic,NULL,3},
                    {"set_leader",PEVM_SetLeader,"Ovv",PE_generic,NULL,3},
                    {"set_leader",PEVM_SetLeader,"Ovi",PE_generic,NULL,3},
                    {"set_leader",PEVM_SetLeader,"OvI",PE_generic,NULL,3},
                    {"set_leader",PEVM_SetLeader,"Oiv",PE_generic,NULL,3},
                    {"set_leader",PEVM_SetLeader,"OIv",PE_generic,NULL,3},
                    {"set_leader",PEVM_SetLeader,"Oii",PE_generic,NULL,3},
                    {"set_leader",PEVM_SetLeader,"OIi",PE_generic,NULL,3},
                    {"set_leader",PEVM_SetLeader,"OiI",PE_generic,NULL,3},
                    {"set_leader",PEVM_SetLeader,"OII",PE_generic,NULL,3},
                    {"set_leader",PEVM_SetLeader,"cvv",PE_generic,NULL,3},
                    {"set_leader",PEVM_SetLeader,"cvi",PE_generic,NULL,3},
                    {"set_leader",PEVM_SetLeader,"cvI",PE_generic,NULL,3},
                    {"set_leader",PEVM_SetLeader,"civ",PE_generic,NULL,3},
                    {"set_leader",PEVM_SetLeader,"cIv",PE_generic,NULL,3},
                    {"set_leader",PEVM_SetLeader,"cii",PE_generic,NULL,3},
                    {"set_leader",PEVM_SetLeader,"cIi",PE_generic,NULL,3},
                    {"set_leader",PEVM_SetLeader,"ciI",PE_generic,NULL,3},
                    {"set_leader",PEVM_SetLeader,"cII",PE_generic,NULL,3},
                    {"set_member",PEVM_SetMember,"ov",PE_generic,NULL,2},
                    {"set_member",PEVM_SetMember,"oi",PE_generic,NULL,2},
                    {"set_member",PEVM_SetMember,"oI",PE_generic,NULL,2},
                    {"set_member",PEVM_SetMember,"Ov",PE_generic,NULL,2},
                    {"set_member",PEVM_SetMember,"Oi",PE_generic,NULL,2},
                    {"set_member",PEVM_SetMember,"OI",PE_generic,NULL,2},
                    {"set_member",PEVM_SetMember,"cv",PE_generic,NULL,2},
                    {"set_member",PEVM_SetMember,"ci",PE_generic,NULL,2},
                    {"set_member",PEVM_SetMember,"cI",PE_generic,NULL,2},
                    {"set_player",PEVM_SetMember,"ov",PE_generic,NULL,2},
                    {"set_player",PEVM_SetMember,"oi",PE_generic,NULL,2},
                    {"set_player",PEVM_SetMember,"oI",PE_generic,NULL,2},
                    {"set_player",PEVM_SetMember,"Ov",PE_generic,NULL,2},
                    {"set_player",PEVM_SetMember,"Oi",PE_generic,NULL,2},
                    {"set_player",PEVM_SetMember,"OI",PE_generic,NULL,2},
                    {"set_player",PEVM_SetMember,"cv",PE_generic,NULL,2},
                    {"set_player",PEVM_SetMember,"ci",PE_generic,NULL,2},
                    {"set_player",PEVM_SetMember,"cI",PE_generic,NULL,2},
                    {"add_member",PEVM_AddMember,"o",PE_generic,NULL,1},
                    {"add_member",PEVM_AddMember,"O",PE_generic,NULL,1},
                    {"add_member",PEVM_AddMember,"c",PE_generic,NULL,1},
                    {"del_member",PEVM_DelMember,"o",PE_generic,NULL,1},
                    {"del_member",PEVM_DelMember,"O",PE_generic,NULL,1},
                    {"del_member",PEVM_DelMember,"c",PE_generic,NULL,1},

                    {"printaddr",PEVM_Printaddr,"i",PE_generic,NULL,1},
                    {"printaddr",PEVM_Printaddr,"I",PE_generic,NULL,1},
                    {"dump_vm",PEVM_Dump,"",PE_generic,NULL,0},
                    {"no_operation",PEVM_NOP,"",PE_generic,NULL,0},
                    {"fixup_locals",PEVM_Dofus,"",NULL,NULL,-1},
                    {NULL,NULL,NULL,NULL,NULL}
					// READ AND OBEY
					// OVERLOADED KEYWORDS *MUST* BE CONSECUTIVE IN THE LIST!
               };

// Game API structure definitions
// With overloaded members, e.g. object.enemy, where the member is an Object,
// an Integer and a redirection to another structure definition, the
// Redirection MUST be LAST, i.e. after the Object and Integer entries..
// The Type of the first entry must be set if the structure can exist as
// a separate variable, e.g. a Tile or an Object.  It is used by the
// structure member lookup engine.

STRUCTURE objspec[] =
					{
					{"object",		'o',"",&obj_template,NULL},
					{"name",		's',"R",&obj_template.name,NULL},
					{"flags",		'i',"R",&obj_template.flags,NULL},
					{"w",			'i',"R",&obj_template.w,NULL},
					{"h",			'i',"R",&obj_template.h,NULL},
					{"mw",			'i',"R",&obj_template.mw,NULL},
					{"mh",			'i',"R",&obj_template.mh,NULL},
					{"x",			'i',"R",&obj_template.x,NULL},
					{"y",			'i',"R",&obj_template.y,NULL},
					{"z",			'i',"R",&obj_template.z,NULL},
					{"personalname",'s',"R",&obj_template.personalname,NULL},
					{"schedule",	' ',"",&obj_template.schedule,NULL},
					{"form",		' ',"",&obj_template.form,NULL},
					{"sptr",		'i',"RW",&obj_template.sptr,NULL},
					{"slen",		'i',"R",&obj_template.slen,NULL},
					{"sdir",		'i',"R",&obj_template.sdir,NULL},
					{"maxstats",	'>',"",&obj_template.maxstats,&statspec},
					{"stats",		'>',"",&obj_template.stats,&statspec},
					{"funcs",		'>',"",&obj_template.funcs,&funcspec},
					{"curdir",		'i',"RW",&obj_template.curdir,NULL},
					{"desc",		's',"R",&obj_template.desc,NULL},
					{"shortdesc",	's',"R",&obj_template.shortdesc,NULL},
					{"target",		'o',"RW",&obj_template.target,NULL},
					{"target",		'i',"RW",&obj_template.target,NULL},
					{"target",		'>',"R",&obj_template.target,&objspec},
					{"tag",			'i',"RW",&obj_template.tag,NULL},
					{"activity",	'i',"RW",&obj_template.activity,NULL},
					{"user",		'i',"RW",&obj_template.user,NULL},
					{"user",		'>',"R",&obj_template.user,&userspec},
					{"light",		'i',"RW",&obj_template.light,NULL},
					{"enemy",		'o',"RW",&obj_template.enemy,NULL},
					{"enemy",		'i',"RW",&obj_template.enemy,NULL},
					{"enemy",		'>',"R",&obj_template.enemy,&objspec},
					{"wield",		'i',"RW",&obj_template.wield,&wieldspec},
					{"wield",		'>',"R",&obj_template.wield,&wieldspec},
					{"pocket",		'o',"RW",&obj_template.pocket,NULL},
					{"pocket",		'i',"RW",&obj_template.pocket,NULL},
					{"pocket",		'>',"R",&obj_template.pocket,&objspec},
					{"next",		'o',"RW",&obj_template.next,NULL},
					{"next",		'i',"RW",&obj_template.next,NULL},
					{"next",		'>',"R",&obj_template.next,&objspec},
					{NULL,			NULL,NULL,NULL,NULL},
					};

STRUCTURE objarrayhack[] =
					{
					{"object",		'c',"",&obj_template,NULL},
					{"name",		's',"R",&obj_template.name,NULL},
					{"flags",		'i',"R",&obj_template.flags,NULL},
					{"w",			'i',"R",&obj_template.w,NULL},
					{"h",			'i',"R",&obj_template.h,NULL},
					{"mw",			'i',"R",&obj_template.mw,NULL},
					{"mh",			'i',"R",&obj_template.mh,NULL},
					{"x",			'i',"R",&obj_template.x,NULL},
					{"y",			'i',"R",&obj_template.y,NULL},
					{"z",			'i',"R",&obj_template.z,NULL},
					{"personalname",'s',"R",&obj_template.personalname,NULL},
					{"schedule",	' ',"",&obj_template.schedule,NULL},
					{"form",		' ',"",&obj_template.form,NULL},
					{"sptr",		'i',"RW",&obj_template.sptr,NULL},
					{"slen",		'i',"R",&obj_template.slen,NULL},
					{"sdir",		'i',"R",&obj_template.sdir,NULL},
					{"maxstats",	'>',"",&obj_template.maxstats,&statspec},
					{"stats",		'>',"",&obj_template.stats,&statspec},
					{"funcs",		'>',"",&obj_template.funcs,&funcspec},
					{"curdir",		'i',"RW",&obj_template.curdir,NULL},
					{"desc",		's',"R",&obj_template.desc,NULL},
					{"shortdesc",	's',"R",&obj_template.shortdesc,NULL},
//					{"goals",		's',"R",&obj_template.goals,&goalspec},
					{"tag",			'i',"RW",&obj_template.tag,NULL},
//					{"goal",		's',"R",&obj_template.goal,&goalspec},
					{"user",		'i',"RW",&obj_template.user,NULL},
					{"user",		'>',"R",&obj_template.user,&userspec},
					{"light",		'i',"RW",&obj_template.light,NULL},
					{"enemy",		'o',"RW",&obj_template.enemy,NULL},
					{"enemy",		'i',"RW",&obj_template.enemy,NULL},
					{"enemy",		'>',"R",&obj_template.enemy,&objspec},
					{"wield",		'i',"RW",&obj_template.wield,&wieldspec},
					{"wield",		'>',"R",&obj_template.wield,&wieldspec},
					{"pocket",		'o',"RW",&obj_template.pocket,NULL},
					{"pocket",		'i',"RW",&obj_template.pocket,NULL},
					{"pocket",		'>',"R",&obj_template.pocket,&objspec},
					{"next",		'o',"RW",&obj_template.next,NULL},
					{"next",		'i',"RW",&obj_template.next,NULL},
					{"next",		'>',"R",&obj_template.next,&objspec},
					{NULL,			NULL,NULL,NULL,NULL},
					};

STRUCTURE tilespec[] =
					{
					{"tile",		't',"",&tile_template,NULL},
					{"name",		's',"R",&tile_template.name,NULL},
					{"flags",		'i',"R",&tile_template.flags,NULL},
					{"form",		' ',"",&tile_template.form,NULL},
					{"seqname",		' ',"",&tile_template.seqname,NULL},
					{"sptr",		'i',"R",&tile_template.sptr,NULL},
					{"slen",		'i',"R",&tile_template.slen,NULL},
					{"sdir",		'i',"R",&tile_template.sdir,NULL},
					{"tick",		'i',"R",&tile_template.tick,NULL},
					{"sdx",			'i',"R",&tile_template.sdx,NULL},
					{"sdy",			'i',"R",&tile_template.sdy,NULL},
					{"sx",			'i',"R",&tile_template.sx,NULL},
					{"sy",			'i',"R",&tile_template.sy,NULL},
//					{"funcs",		'>',"",&tile_template.funcs,&funcspec},
					{"desc",		's',"R",&tile_template.desc,NULL},
					{NULL,			NULL,NULL,NULL,NULL},
					};

STRUCTURE statspec[] =
					{
					{"stats",		' ',"",&stats_template,NULL},
					{"hp",			'i',"RW",&stats_template.hp,NULL},
					{"dex",			'i',"RW",&stats_template.dex,NULL},
					{"dexterity",	'i',"RW",&stats_template.dex,NULL},
					{"str",			'i',"RW",&stats_template.str,NULL},
					{"strength",	'i',"RW",&stats_template.str,NULL},
					{"intel",		'i',"RW",&stats_template.intel,NULL},
					{"intelligence",'i',"RW",&stats_template.intel,NULL},
					{"weight",		'i',"RW",&stats_template.weight,NULL},
					{"quantity",	'i',"RW",&stats_template.quantity,NULL},
					{"damage",		'i',"RW",&stats_template.damage,NULL},
					{"oldhp",		'i',"RW",&stats_template.oldhp,NULL},
					{"owner",		'o',"RW",&stats_template.owner,NULL},
					{"owner",		'>',"",&stats_template.owner,&objspec},
					{"karma",		'i',"RW",&stats_template.karma,NULL},
					{"bulk",		'i',"RW",&stats_template.bulk,NULL},
					{NULL,			NULL,NULL,NULL,NULL},
					};

STRUCTURE funcspec[] =
					{
					{"funcs",		' ',"",&funcs_template,NULL},
					{"use",			's',"R",&funcs_template.use,NULL},
					{"ucache",		'i',"RW",&funcs_template.ucache,NULL},
					{"talk",		's',"R",&funcs_template.talk,NULL},
					{"tcache",		'i',"RW",&funcs_template.tcache,NULL},
					{"kill",		's',"R",&funcs_template.kill,NULL},
					{"kcache",		'i',"RW",&funcs_template.kcache,NULL},
					{"look",		's',"R",&funcs_template.look,NULL},
					{"lcache",		'i',"RW",&funcs_template.lcache,NULL},
					{"stand",		's',"R",&funcs_template.stand,NULL},
					{"scache",		'i',"RW",&funcs_template.scache,NULL},
					{"hurt",		's',"R",&funcs_template.hurt,NULL},
					{"hcache",		'i',"RW",&funcs_template.hcache,NULL},
					{"init",		's',"R",&funcs_template.init,NULL},
					{"icache",		'i',"RW",&funcs_template.icache,NULL},
					{"wield",		's',"R",&funcs_template.wield,NULL},
					{"wcache",		'i',"RW",&funcs_template.wcache,NULL},
					{"resurrect",	's',"R",&funcs_template.resurrect,NULL},
					{NULL,			NULL,NULL,NULL,NULL},
					};

STRUCTURE userspec[] =
					{
					{"usedata",		' ',"",&usedata_template,NULL},
					{"user0",		'i',"RW",&usedata_template.user[0],NULL},
					{"user1",		'i',"RW",&usedata_template.user[1],NULL},
					{"user2",		'i',"RW",&usedata_template.user[2],NULL},
					{"user3",		'i',"RW",&usedata_template.user[3],NULL},
					{"user4",		'i',"RW",&usedata_template.user[4],NULL},
					{"user5",		'i',"RW",&usedata_template.user[5],NULL},
					{"user6",		'i',"RW",&usedata_template.user[6],NULL},
					{"user7",		'i',"RW",&usedata_template.user[7],NULL},
					{"user8",		'i',"RW",&usedata_template.user[8],NULL},
					{"user9",		'i',"RW",&usedata_template.user[9],NULL},
					{"user10",	'i',"RW",&usedata_template.user[10],NULL},
					{"user11",	'i',"RW",&usedata_template.user[11],NULL},
					{"user12",	'i',"RW",&usedata_template.user[12],NULL},
					{"user13",	'i',"RW",&usedata_template.user[13],NULL},
					{"user14",	'i',"RW",&usedata_template.user[14],NULL},
					{"user15",	'i',"RW",&usedata_template.user[15],NULL},
					{"user16",	'i',"RW",&usedata_template.user[16],NULL},
					{"user17",	'i',"RW",&usedata_template.user[17],NULL},
					{"user18",	'i',"RW",&usedata_template.user[18],NULL},
					{"user19",	'i',"RW",&usedata_template.user[19],NULL},
					{"poison",		'i',"RW",&usedata_template.poison,NULL},
					{"unconscious",	'i',"RW",&usedata_template.unconscious,NULL},
					{"potion0",		'i',"RW",&usedata_template.potion[0],NULL},
					{NULL,			NULL,NULL,NULL,NULL},
					};

STRUCTURE wieldspec[] =
					{
					{"wield",		' ',"",&wield_template,NULL},
					{"head",		'S',"RW",&wield_template.head,NULL},
					{NULL,			NULL,NULL,NULL,NULL},
					};


add_symbol_ptr("player",'o',&player);
add_symbol_ptr("current",'o',&current_object);
add_symbol_ptr("curtile",'t',&current_tile);
add_symbol_ptr("victim",'o',&victim);
add_symbol_ptr("syspocket",'o',&syspocket);

ptr = add_symbol_ptr("party",'c',&party);
ptr->arraysize=MAX_MEMBERS;

add_symbol_ptr("game_minute",'i',&game_minute);
add_symbol_ptr("game_hour",'i',&game_hour);
add_symbol_ptr("game_day",'i',&game_day);
add_symbol_ptr("game_month",'i',&game_month);
add_symbol_ptr("game_year",'i',&game_year);
add_symbol_ptr("window_left",'i',&mapx);
add_symbol_ptr("window_right",'i',&mapx2);
add_symbol_ptr("window_top",'i',&mapy);
add_symbol_ptr("window_bottom",'i',&mapy2);

add_symbol_ptr("ok",'i',&pe_result_ok);
add_symbol_ptr("success",'i',&pe_result_ok);

add_symbol_ptr("key",'i',&irekey);

// These are the supported math operators

add_symbol_val("+",'p',1);
add_symbol_val("-",'p',2);
add_symbol_val("/",'p',3);
add_symbol_val("*",'p',4);
add_symbol_val("=",'p',5);
add_symbol_val("==",'p',5);
add_symbol_val("!=",'p',6);
add_symbol_val("<>",'p',6);
add_symbol_val("<",'p',7);
add_symbol_val("<=",'p',8);
add_symbol_val(">",'p',9);
add_symbol_val(">=",'p',10);

// constants (defined in opcodes.h)
// ADD_CONST is a macro to quote the symbol name.  Constants are type 'n'

ADD_CONST(UP);
ADD_CONST(DOWN);
ADD_CONST(LEFT);
ADD_CONST(RIGHT);

ADD_CONST(CHAR_U);
ADD_CONST(CHAR_D);
ADD_CONST(CHAR_L);
ADD_CONST(CHAR_R);

// Object Flags

ADD_CONST(IS_ON);
ADD_CONST(CAN_OPEN);
ADD_CONST(IS_OVERLAY);
ADD_CONST(IS_SOLID);
ADD_CONST(IS_FRAGILE);
ADD_CONST(IS_TRIGGER);
ADD_CONST(IS_INVISIBLE);
ADD_CONST(IS_PARTY);
ADD_CONST(IS_FIXED);
ADD_CONST(IS_CONTAINER);
ADD_CONST(IS_TRANSLUCENT);
ADD_CONST(IS_LARGE);
ADD_CONST(IS_SPIKEPROOF);
ADD_CONST(CAN_WIELD);
ADD_CONST(DID_STEPUPDATE);
ADD_CONST(IS_RANGED);
ADD_CONST(DOES_BLOCKLIGHT);
ADD_CONST(IS_TABLETOP);
ADD_CONST(DID_INIT);
ADD_CONST(DID_UPDATE);
ADD_CONST(IS_PERSON);
ADD_CONST(IN_POCKET);
ADD_CONST(IS_QUANTITY);
ADD_CONST(IS_BOAT);
ADD_CONST(IS_SHADOW);
ADD_CONST(IS_WATER);

// NPC Flags

ADD_CONST(IS_FEMALE);
ADD_CONST(KNOW_NAME);
ADD_CONST(IS_HERO);
ADD_CONST(CANT_EAT);
ADD_CONST(CANT_DRINK);
ADD_CONST(IS_CRITICAL);
ADD_CONST(NOT_CLOSE_DOOR);
ADD_CONST(NOT_CLOSE_DOORS);
ADD_CONST(IS_SYMLINK);

// Keys

ADD_CONST(KEY_A);
ADD_CONST(KEY_B);
ADD_CONST(KEY_C);
ADD_CONST(KEY_D);
ADD_CONST(KEY_E);
ADD_CONST(KEY_F);
ADD_CONST(KEY_G);
ADD_CONST(KEY_H);
ADD_CONST(KEY_I);
ADD_CONST(KEY_J);
ADD_CONST(KEY_K);
ADD_CONST(KEY_L);
ADD_CONST(KEY_M);
ADD_CONST(KEY_N);
ADD_CONST(KEY_O);
ADD_CONST(KEY_P);
ADD_CONST(KEY_Q);
ADD_CONST(KEY_R);
ADD_CONST(KEY_S);
ADD_CONST(KEY_T);
ADD_CONST(KEY_U);
ADD_CONST(KEY_V);
ADD_CONST(KEY_W);
ADD_CONST(KEY_X);
ADD_CONST(KEY_Y);
ADD_CONST(KEY_Z);
ADD_CONST(KEY_0);
ADD_CONST(KEY_1);
ADD_CONST(KEY_2);
ADD_CONST(KEY_3);
ADD_CONST(KEY_4);
ADD_CONST(KEY_5);
ADD_CONST(KEY_6);
ADD_CONST(KEY_7);
ADD_CONST(KEY_8);
ADD_CONST(KEY_9);
ADD_CONST(KEY_0_PAD);
ADD_CONST(KEY_1_PAD);
ADD_CONST(KEY_2_PAD);
ADD_CONST(KEY_3_PAD);
ADD_CONST(KEY_4_PAD);
ADD_CONST(KEY_5_PAD);
ADD_CONST(KEY_6_PAD);
ADD_CONST(KEY_7_PAD);
ADD_CONST(KEY_8_PAD);
ADD_CONST(KEY_9_PAD);
ADD_CONST(KEY_F1);
ADD_CONST(KEY_F2);
ADD_CONST(KEY_F3);
ADD_CONST(KEY_F4);
ADD_CONST(KEY_F5);
ADD_CONST(KEY_F6);
ADD_CONST(KEY_F7);
ADD_CONST(KEY_F8);
ADD_CONST(KEY_F9);
ADD_CONST(KEY_F10);
ADD_CONST(KEY_F11);
ADD_CONST(KEY_F12);
ADD_CONST(KEY_ESC);
ADD_CONST(KEY_TILDE);
ADD_CONST(KEY_MINUS);
ADD_CONST(KEY_EQUALS);
ADD_CONST(KEY_BACKSPACE);
ADD_CONST(KEY_TAB);
ADD_CONST(KEY_OPENBRACE);
ADD_CONST(KEY_CLOSEBRACE);
ADD_CONST(KEY_ENTER);
ADD_CONST(KEY_COLON);
ADD_CONST(KEY_QUOTE);
ADD_CONST(KEY_BACKSLASH);
ADD_CONST(KEY_BACKSLASH2);
ADD_CONST(KEY_COMMA);
ADD_CONST(KEY_STOP);
//ADD_CONST(KEY_DOT);
ADD_CONST(KEY_SLASH);
ADD_CONST(KEY_SPACE);
ADD_CONST(KEY_INSERT);
ADD_CONST(KEY_DEL);
ADD_CONST(KEY_HOME);
ADD_CONST(KEY_END);
ADD_CONST(KEY_PGUP);
ADD_CONST(KEY_PGDN);
ADD_CONST(KEY_LEFT);
ADD_CONST(KEY_RIGHT);
ADD_CONST(KEY_UP);
ADD_CONST(KEY_DOWN);
ADD_CONST(KEY_SLASH_PAD);
ADD_CONST(KEY_ASTERISK);
ADD_CONST(KEY_MINUS_PAD);
ADD_CONST(KEY_DEL_PAD);
ADD_CONST(KEY_ENTER_PAD);
ADD_CONST(KEY_PRTSCR);
ADD_CONST(KEY_PAUSE);
ADD_CONST(KEY_YEN);
ADD_CONST(KEY_YEN2);
ADD_CONST(KEY_MODIFIERS);
ADD_CONST(KEY_LSHIFT);
ADD_CONST(KEY_RSHIFT);
ADD_CONST(KEY_LCONTROL);
ADD_CONST(KEY_RCONTROL);
ADD_CONST(KEY_ALT);
ADD_CONST(KEY_ALTGR);
ADD_CONST(KEY_LWIN);
ADD_CONST(KEY_RWIN);
ADD_CONST(KEY_MENU);
ADD_CONST(KEY_SCRLOCK);
ADD_CONST(KEY_NUMLOCK);
ADD_CONST(KEY_CAPSLOCK);

ADD_CONST(MAX_MEMBERS);

add_symbol_val("null",'0',0);
add_symbol_val("null",'n',0);

