/*******************************************************************\
	Doom Builder Script highlighting definitions for BCS
\*******************************************************************/

// Compiler settings
compiler = "zt-bcc";
parameters = "-I \"%PT\" -I \"%PS\" %FI %FO";
resultlump = "BEHAVIOR";

// Editor settings
description = "BCS (zt-bcc)";
codepage = 0;
extensions = "bcs";
casesensitive = false;
insertcase = 0;				// 0=Normal, 1=Lowercase, 2=Uppercase
lexer = 35;					// CPP-style, case-insensitive
functionopen = "(";
functionclose = ")";
codeblockopen = "{";
codeblockclose = "}";
arrayopen = "[";
arrayclose = "]";
argumentdelimiter = ",";
terminator = ";";
keywordhelp = "http://www.zdoom.org/wiki/index.php?title=%K";
snippetsdir = "acs";
scripttype = "ACS";

keywords
{
	enum = "Enumeration";
  struct = "Structure";
  region = "A code region block";
  goto = "Goto statement";
  upmost = "The upmost region";
  #Define = "#Define identifier expression";
	#EncryptStrings = "#EncryptStrings";
	#Import = "#Import";
	#Include = "#Include";
	#LibDefine = "#LibDefine identifier expression";
	#Library = "#Library";
	#NoCompact = "#NoCompact";
	#NoWadAuthor = "#NoWadAuthor";
	#WadAuthor = "#WadAuthor";
	ACS_Execute = "ACS_Execute(script, map, arg1, arg2, arg3)";
	ACS_ExecuteAlways = "ACS_ExecuteAlways(script, map, arg1, arg2, arg3)";
	ACS_ExecuteWait = "void ACS_ExecuteWait(int script, int unused, int arg1, int arg2, int arg3)";
	ACS_ExecuteWithResult = "ACS_ExecuteWithResult(script, arg1, arg2, arg3)";
	ACS_LockedExecute = "ACS_LockedExecute(script, map, arg1, arg2, lock)";
	ACS_LockedExecuteDoor = "ACS_LockedExecuteDoor(script, map, arg1, arg2, lock)";
	ACS_NamedExecute = "bool ACS_NamedExecute(str script, int map, int arg1, int arg2, int arg3)";
	ACS_NamedExecuteAlways = "bool ACS_NamedExecuteAlways(str script, int map, int arg1, int arg2, int arg3)";
	ACS_NamedExecuteWait = "void ACS_NamedExecuteWait(str script, int unused, int arg1, int arg2, int arg3)";
	ACS_NamedExecuteWithResult = "int ACS_NamedExecuteWithResult(str script, int arg1, int arg2, int arg3, int arg4)";
	ACS_NamedLockedExecute = "bool ACS_NamedLockedExecute(str script, int map, int arg1, int arg2, int lock)";
	ACS_NamedLockedExecuteDoor = "bool ACS_NamedLockedExecuteDoor(str script, int map, int arg1, int arg2, int lock)";
	ACS_NamedSuspend = "bool ACS_NamedSuspend(str script, int map)";
	ACS_NamedTerminate = "bool ACS_NamedTerminate(str script, int map)";
	ACS_Suspend = "ACS_Suspend(script, map)";
	ACS_Terminate = "ACS_Terminate(script, map)";
	ActivatorSound = "void ActivatorSound(str sound, int volume)";
	ActivatorTID = "int ActivatorTID(void)";
	AmbientSound = "void AmbientSound(str sound, int volume)";
	AnnouncerSound = "void AnnouncerSound(str sound, int flags)";
	Autosave = "Autosave()";
	BlueCount = "BlueCount()";
	BlueReturn = "Script expression BlueReturn";
	BlueScore = "BlueScore()";
	BlueTeamCount = "BlueTeamCount()";
	BlueTeamScore = "BlueTeamScore()";
	Bool = "Bool expression";
	Break = "Break";
	CancelFade = "void CancelFade(void)\nIf either FadeTo or FadeRange is currently in progress,\nCancelFade stops it and turns off the palette flash.";
	Case = "Case expression";
	Ceiling_CrushAndRaise = "Ceiling_CrushAndRaise(tag, speed, crush, crushmode)";
	Ceiling_CrushAndRaiseA = "Ceiling_CrushAndRaiseA(tag, dspeed, uspeed, crush, crushmode)";
	Ceiling_CrushAndRaiseDist = "Ceiling_CrushAndRaiseDist(tag, dist, speed, damage, crushmode)";
	Ceiling_CrushAndRaiseSilentA = "Ceiling_CrushAndRaiseSilentA(tag, dspeed, uspeed, crush, crushmode)";
	Ceiling_CrushRaiseAndStay = "Ceiling_CrushRaiseAndStay(tag, speed, crush, crushmode)";
	Ceiling_CrushRaiseAndStayA = "Ceiling_CrushRaiseAndStayA(tag, dspeed, uspeed, crush, crushmode)";
	Ceiling_CrushRaiseAndStaySilA = "Ceiling_CrushRaiseAndStaySilA(tag, dspeed, uspeed, crush, crushmode)";
	Ceiling_CrushStop = "Ceiling_CrushStop(tag)";
	Ceiling_LowerAndCrush = "Ceiling_LowerAndCrush(tag, speed, crush, crushmode)";
	Ceiling_LowerAndCrushDist = "Ceiling_LowerAndCrushDist(tag, speed, crush, dist, crushmode)";
	Ceiling_LowerByValue = "Ceiling_LowerByValue(tag, speed, height)";
	Ceiling_LowerByValueTimes8 = "Ceiling_LowerByValueTimes8(tag, speed, height)";
	Ceiling_LowerInstant = "Ceiling_LowerInstant(tag, unused, height)";
	Ceiling_LowerToFloor = "Ceiling_LowerToFloor(tag, speed)";
	Ceiling_LowerToHighestFloor = "Ceiling_LowerToHighestFloor(tag, speed)";
	Ceiling_LowerToLowest = "Ceiling_LowerToLowest(tag, speed)";
	Ceiling_MoveToValue = "Ceiling_MoveToValue(tag, speed, height, neg)";
	Ceiling_MoveToValueTimes8 = "Ceiling_MoveToValueTimes8(tag, speed, height, neg)";
	Ceiling_RaiseByValue = "Ceiling_RaiseByValue(tag, speed, height)";
	Ceiling_RaiseByValueTimes8 = "Ceiling_RaiseByValueTimes8(tag, speed, height)";
	Ceiling_RaiseInstant = "Ceiling_RaiseInstant(tag, unused, height)";
	Ceiling_RaiseToNearest = "Ceiling_RaiseToNearest(tag, speed)";
	Ceiling_Waggle = "Ceiling_Waggle(tag, amp, freq, offset, time)";
	ChangeActorAngle = "ChangeActorAngle(int tid, fixed angle [, bool interpolate = false])\nSets the angle for the actors with the specified tid.\nIf tid is 0, it sets the angle for the activator of the script.\nangle: a fixed point angle in the range of 0.0 to 1.0 (N = 0.25, W = 0.5, S = 0.75, E = 1.0).";
	ChangeActorPitch = "ChangeActorPitch(int tid, fixed pitch [, bool interpolate = false])\nSets the pitch for the actors with the specified tid. If tid is 0, it sets the pitch for the activator of the script.\npitch: a fixed point angle in the range of 0.0 to 1.0.";
	ChangeCamera = "ChangeCamera(tid, who, revert)";
	ChangeCeiling = "void ChangeCeiling(int tag, str flatname)";
	ChangeFloor = "void ChangeFloor(int tag, str flatname)";
	ChangeLevel = "void ChangeLevel(str mapname, int position, int flags [, int skill])\nChanges to a new map, places the player at the specified start spot, and optionally changes the skill level at the same time.";
	ChangeSkill = "ChangeSkill(skill)";
	ChangeSky = "void ChangeSky(str sky1, str sky2)\nChanges the sky texture to sky1 and the second sky texture to sky2.\nBoth textures must be the same height if doublesky is enabled.\nYou may also use any flat, pname, sprite or internal graphic (such as TITLEPIC) in place of an actual texture.\nUseful in conjunction with SetSkyScrollSpeed.";
	CheckActorCeilingTexture = "bool CheckActorCeilingTexture(int tid, str texture)";
	CheckActorClass = "bool CheckActorClass(int tid, str class)";
	CheckActorFloorTexture = "bool CheckActorFloorTexture(int tid, str texture)";
	CheckActorInventory = "int CheckActorInventory(int tid, str inventory_item)\nChecks the given actor's inventory for the item specified by inventory_item";
	CheckActorProperty = "bool CheckActorProperty(int tid, int property, [int|float|str] value)";
	CheckFlag = "bool CheckFlag(int tid, str flag)\nChecks to see if the actor with the matching tid has the specified actor flag set.\nIf tid is 0, the check is performed on the activator of the script.";
	CheckFont = "bool CheckFont(str fontname)";
	CheckInventory = "int CheckInventory(str inventory_item)\nChecks the inventory of the actor who activated the script for the item specified by inventory_item";
	CheckPlayerCamera = "int CheckPlayerCamera(int player)";
	CheckSight = "bool CheckSight(int source, int dest, int flags)";
	CheckWeapon = "bool CheckWeapon(str weapon)\nChecks if player's active weapon is the weapon with specified class name.";
	ClassifyActor = "int ClassifyActor(int tid)";
	ClearActorInventory = "void ClearActorInventory(int tid)\nThis function clears the specified actor's inventory.";
	ClearForceField = "ClearForceField(tag)";
	ClearInventory = "void ClearInventory(void)\nClears the player's inventory of weapons, ammo, armor and usable items.";
	ClearLineSpecial = "void ClearLineSpecial(void)\nClears the special of the line that activated the script.";
	ConsoleCommand = "void ConsoleCommand (str command)";
	Const = "Const";
	Continue = "Continue";
	cos = "fixed Cos(int angle)";
	CreateTranslation = "void CreateTranslation(int transnumber, a:b=c:d, ...)";
	DamageThing = "DamageThing(amount, mod)";
	Death = "Script expression Death";
	Default = "Default:";
	Delay = "void Delay(int tics)";
	Disconnect = "Disconnect script expression";
	Do = "Do";
	Door_Animated = "Door_Animated(tag, speed, delay, lock)";
	Door_Close = "Door_Close(tag, speed, lighttag)";
	Door_CloseWaitOpen = "Door_CloseWaitOpen(tag, speed, delay, lighttag)";
	Door_LockedRaise = "Door_LockedRaise(tag, speed, delay, lock, lighttag)";
	Door_Open = "Door_Open(tag, speed, lighttag)";
	Door_Raise = "Door_Raise(tag, speed, delay, lighttag)";
	DropItem = "int DropItem(int tid, str item [, int dropamount = -1 [, int chance = 256]])\nCauses actors with the matching tid to drop the specified item.\nIf tid is 0, the activator of the script is considered to be the dropper of the item.\nThis works in a similar way to the DropItem actor property.\nThe return value of the function is the number of dropped items.";
	Elevator_LowerToNearest = "Elevator_LowerToNearest(tag, speed)";
	Elevator_MoveToFloor = "Elevator_MoveToFloor(tag, speed)";
	Elevator_RaiseToNearest = "Elevator_RaiseToNearest(tag, speed)";
	Else = "Else";
	Enter = "Script expression Enter";
	Exit_Normal = "Exit_Normal(pos)";
	Exit_Secret = "Exit_Secret(pos)";
	FadeRange = "void FadeRange (int red1, int green1, int blue1, fixed amount1, int red2, int green2, int blue2, fixed amount2, fixed seconds)\nSets the current flash to the first color set and then fades it to the second color set over the specified number of seconds.";
	FadeTo = "void FadeTo (int red, int green, int blue, fixed amount, fixed seconds)\nFades the activator's view from the current palette flash to another one.\nThis will also work if the activator is looking through another viewpoint (using a camera, etc.).";
	FixedDiv = "fixed FixedDiv(int a, int b)";
	FixedMul = "fixed FixedMul(int a, int b)";
	FixedSqrt = "fixed FixedSqrt(fixed number)";
	Floor_CrushStop = "Floor_CrushStop(tag)";
	Floor_Donut = "Floor_Donut(ptag, pspeed, sspeed)";
	Floor_LowerByValue = "Floor_LowerByValue(tag, speed, height)";
	Floor_LowerByValueTimes8 = "Floor_LowerByValueTimes8(tag, speed, height)";
	Floor_LowerInstant = "Floor_LowerInstant(tag, unused, height)";
	Floor_LowerToHighest = "Floor_LowerToHighest(tag, speed, adjust, force_adjust)";
	Floor_LowerToLowest = "Floor_LowerToLowest(tag, speed)";
	Floor_LowerToLowestTxTy = "Floor_LowerToLowestTxTy(tag, speed)";
	Floor_LowerToNearest = "Floor_LowerToNearest(tag, speed)";
	Floor_MoveToValue = "Floor_MoveToValue(tag, speed, height, neg)";
	Floor_MoveToValueTimes8 = "Floor_MoveToValueTimes8(tag, speed, height, neg)";
	Floor_RaiseAndCrush = "Floor_RaiseAndCrush(tag, speed, crush, crushmode)";
	Floor_RaiseAndCrushDoom = "Floor_RaiseAndCrushDoom(tag, speed, crush, crushmode)";
	Floor_RaiseByTexture = "Floor_RaiseByTexture(tag, speed)";
	Floor_RaiseByValue = "Floor_RaiseByValue(tag, speed, height)";
	Floor_RaiseByValueTimes8 = "Floor_RaiseByValueTimes8(tag, speed, height)";
	Floor_RaiseByValueTxTy = "Floor_RaiseByValueTxTy(tag, speed, height)";
	Floor_RaiseInstant = "Floor_RaiseInstant(tag, unused, height)";
	Floor_RaiseToHighest = "Floor_RaiseToHighest(tag, speed)";
	Floor_RaiseToLowestCeiling = "Floor_RaiseToLowestCeiling(tag, speed)";
	Floor_RaiseToNearest = "Floor_RaiseToNearest(tag, speed)";
	Floor_TransferNumeric = "Floor_TransferNumeric(tag)";
	Floor_TransferTrigger = "Floor_TransferTrigger(tag)";
	Floor_Waggle = "Floor_Waggle(tag, amp, freq, offset, time)";
	FloorAndCeiling_LowerByValue = "FloorAndCeiling_LowerByValue(tag, speed, height)";
	FloorAndCeiling_LowerRaise = "FloorAndCeiling_LowerRaise(tag, fspeed, cspeed, boomemu)";
	FloorAndCeiling_RaiseByValue = "FloorAndCeiling_RaiseByValue(tag, speed, height)";
	For = "For(initialization, condition, iteration)";
	ForceField = "ForceField()";
	FS_Execute = "FS_Execute(script, side, keynum, message)";
	Function = "Function Void expression (Void)";
	GameSkill = "int GameSkill(void)";
	GameType = "int GameType(void)";
	Generic_Ceiling = "Generic_Ceiling(tag, speed, height, target, flag)";
	Generic_Crusher = "Generic_Crusher(tag, dspeed, uspeed, silent, crush)";
	Generic_Crusher2 = "Generic_Crusher2(tag, dspeed, uspeed, silent, crush)";
	Generic_Door = "Generic_Door(tag, speed, kind, delay, lock)";
	Generic_Floor = "Generic_Floor(tag, speed, height, target, flags)";
	Generic_Lift = "Generic_Lift(tag, speed, delay, type, height)";
	Generic_Stairs = "Generic_Stairs(tag, speed, height, flags, reset)";
	GetActorAngle = "fixed GetActorAngle(int tid)";
	GetActorCeilingZ = "fixed GetActorCeilingZ(int tid)";
	GetActorClass = "str GetActorClass(int tid)";
	GetActorFloorZ = "fixed GetActorFloorZ(int tid)";
	GetActorLightLevel = "int GetActorLightLevel(int tid)";
	GetActorPitch = "fixed GetActorPitch(int tid)";
	GetActorPowerupTics = "int GetActorPowerupTics(int tid, str powerup)";
	GetActorProperty = "int GetActorProperty(int tid, int property)";
	GetActorVelX = "fixed GetActorVelX(int tid)";
	GetActorVelY = "fixed GetActorVelY(int tid)";
	GetActorVelZ = "fixed GetActorVelZ(int tid)";
	GetActorViewHeight = "fixed GetActorViewHeight(int tid)";
	GetActorX = "fixed GetActorX(int tid)";
	GetActorY = "fixed GetActorY(int tid)";
	GetActorZ = "fixed GetActorZ(int tid)";
	GetAirSupply = "int GetAirSupply(int playernum)";
	GetAmmoCapacity = "int GetAmmoCapacity(str classname)";
	GetArmorType = "int GetArmorType(str armortype, int playernum)";
	GetChar = "int GetChar(str string, int index)";
	GetCVar = "int GetCVar(str cvar)";
	GetCVarString = "str GetCVarString(str cvar)";
	GetInvasionState = "GetInvasionState()";
	GetInvasionWave = "GetInvasionWave()";
	GetLevelInfo = "int GetLevelInfo(int levelinfo)";
	GetLineActivation = "int GetLineActivation(int lineid)\nlineid: The id of the line of which to get the activation flags.\nReturns SPAC flags as a bitfield";
	GetLineRowOffset = "int GetLineRowOffset(void)";
	GetLineUDMFFixed = "fixed GetLineUDMFFixed(int lineid, str key)";
	GetLineUDMFInt = "int GetLineUDMFInt(int lineid, str key)";
	GetPlayerInfo = "int GetPlayerInfo(int playernumber, int playerinfo)";
	GetPlayerInput = "int GetPlayerInput(int player, int input)";
	GetPolyobjX = "fixed GetPolyobjX(int polyid)";
	GetPolyobjY = "fixed GetPolyobjY(int polyid)";
	GetScreenHeight = "int GetScreenHeight(void)";
	GetScreenWidth = "int GetScreenWidth(void)";
	GetSectorCeilingZ = "int GetSectorCeilingZ(int tag, int x, int y)";
	GetSectorFloorZ = "fixed GetSectorFloorZ(int tag, int x, int y)";
	GetSectorLightLevel = "int GetSectorLightLevel(int tag)";
	GetSectorUDMFFixed = "fixed GetSectorUDMFFixed(int tag, str key)";
	GetSectorUDMFInt = "int GetSectorUDMFInt(int tag, str key)";
	GetSideUDMFFixed = "fixed GetSideUDMFFixed(int lineid, bool side, str key)";
	GetSideUDMFInt = "int GetSideUDMFInt(int lineid, bool side, str key)";
	GetSigilPieces = "int GetSigilPieces (void)\nReturns the number of Sigil pieces that are held by the player";
	GetThingUDMFFixed = "fixed GetThingUDMFFixed(int thingid, str key)";
	GetThingUDMFInt = "int GetThingUDMFInt(int thingid, str key)";
	GetUserArray = "void GetUserArray(int tid, str name, int pos)";
	GetUserCVar = "int GetUserCVar(int playernumber, str cvar)";
	GetUserCVarString = "str GetUserCVarString(int playernumber, str cvar)";
	GetUserVariable = "int GetUserVariable(int tid, str name)";
	GetWeapon = "str GetWeapon (void)\nReturns the class name of the weapon currently equipped by the player as a string";
	GiveActorInventory = "void GiveActorInventory(int tid, str inventory_item, int amount)\nThis function will give the amount of items to the specifed actor.\nThis function does not treat tid 0 as the activator of the script";
	GiveInventory = "void GiveInventory(str inventory_item, int amount)\nThis function will give the number of items specified to the activator.";
	GlassBreak = "GlassBreak(dontspawnjunk)";
	Global = "Global Int expression:identifier";
	HealThing = "HealThing(amount)";
	HudMessage = "void hudmessage(text; int type, int id, int color, fixed x, fixed y, fixed holdTime)";
	HudMessageBold = "void HudMessageBold(text; int type, int id, int color, fixed x, fixed y, fixed holdTime)";
	If = "If(expression)";
	Int = "Int expression";
	IsMultiplayer = "int IsMultiplayer(void)";
	IsOneFlagCTF = "int IsOneFlagCTF(void)";
	IsTIDUsed = "bool IsTIDUsed (int tid)";
	Light_ChangeToValue = "Light_ChangeToValue(tag, value)";
	Light_Fade = "Light_Fade(tag, value, tics)";
	Light_Flicker = "Light_Flicker(tag, upper, lower)";
	Light_ForceLightning = "Light_ForceLightning(mode)";
	Light_Glow = "Light_Glow(tag, upper, lower, tics)";
	Light_LowerByValue = "Light_LowerByValue(tag, value)";
	Light_MaxNeighbor = "Light_MaxNeighbor(tag)";
	Light_MinNeighbor = "Light_MinNeighbor(tag)";
	Light_RaiseByValue = "Light_RaiseByValue(tag, value)";
	Light_Stop = "Light_Stop(tag)";
	Light_Strobe = "Light_Strobe(tag, upper, lower, u-tics, l-tics)";
	Light_StrobeDoom = "Light_StrobeDoom(tag, u-tics, l-tics)";
	Lightning = "Script expression Lightning";
	LineAttack = "LineAttack(int tid, fixed angle, fixed pitch, int damage [, str pufftype = 'BulletPuff' [, str damagetype = 'None' [, fixed range = 2048 [, int flags = 0]]]])\nFires a hitscan attack. If tid is 0, the activator of the script is the source of the attack.";
	Line_AlignCeiling = "Line_AlignCeiling(lineid, side)";
	Line_AlignFloor = "Line_AlignFloor(lineid, side)";
	Line_SetBlocking = "Line_SetBlocking(lineid, setflags, clearflags)";
	Line_SetTextureOffset = "Line_SetTextureOffset(lineid, x, y, side, flags)";
	Line_SetTextureScale = "Line_SetTextureScale(lineid, x, y, side, flags)";
	LineSide = "int LineSide(void)";
	LocalAmbientSound = "void LocalAmbientSound(str sound, int volume)";
	LocalSetMusic = "void LocalSetMusic (str song [, int order [, int unused]])";
	Log = "void Log(type:expression)\nLog will print something in the log area of the screen (top left), as well as logging it to the console.\nIt uses the same parameter format as the Print function.";
	MorphActor = "int MorphActor(int tid, [str playerclass, [str monsterclass, [int duration, [int style, [str morphflash, [str unmorphflash]]]]]])";
	Music_Change = "void Music_Change(str music, int pattern)";
	NamedScriptWait = "void NamedScriptWait(str script)";
	Net = "Script expression Net";
	NoiseAlert = "NoiseAlert(target_tid, emiter_tid)";
	Open = "Script expression Open";
	Pickup = "Script expression Pickup";
	Pillar_Build = "Pillar_Build(tag, speed, height)";
	Pillar_BuildAndCrush = "Pillar_BuildAndCrush(tag, speed, height, crush, crushmode)";
	Pillar_Open = "Pillar_Open(tag, speed, fdist, cdist)";
	Plat_DownByValue = "Plat_DownByValue(tag, speed, delay, height)";
	Plat_DownWaitUpStay = "Plat_DownWaitUpStay(tag, speed, delay)";
	Plat_DownWaitUpStayLip = "Plat_DownWaitUpStayLip(tag, speed, delay, lip, sound)";
	Plat_PerpetualRaise = "Plat_PerpetualRaise(tag, speed, delay)";
	Plat_PerpetualRaiseLip = "Plat_PerpetualRaiseLip(tag, speed, delay, lip)";
	Plat_RaiseAndStayTx0 = "Plat_RaiseAndStayTx0(tag, speed, lockout)";
	Plat_Stop = "Plat_Stop(tag)";
	Plat_ToggleCeiling = "Plat_ToggleCeiling(tag)";
	Plat_UpByValue = "Plat_UpByValue(tag, speed, delay, height)";
	Plat_UpByValueStayTx = "Plat_UpByValueStayTx(tag, speed, height)";
	Plat_UpNearestWaitDownStay = "Plat_UpNearestWaitDownStay(tag, speed, delay)";
	Plat_UpWaitDownStay = "Plat_UpWaitDownStay(tag, speed, delay)";
	PlayActorSound = "void PlayActorSound(int tid, int sound, int channel, fixed volume, bool looping, fixed attenuation)";
	Player_SetTeam = "Player_SetTeam(team)";
	PlayerArmorpoints = "int PlayerArmorpoints(void)";
	PlayerClass = "int PlayerClass(int playernumber)";
	PlayerCount = "int PlayerCount(void)\nReturns the number of players currently in the game";
	PlayerFrags = "int PlayerFrags(void)";
	PlayerHealth = "int PlayerHealth(void)";
	PlayerInGame = "bool PlayerInGame(int playernumber)\nReturns true if the player [0..7] is in the game";
	PlayerIsBot = "bool PlayerIsBot(int playernumber)\nReturns TRUE if the player [0..7] is a bot and FALSE if not";
	PlayerNumber = "int PlayerNumber(void)\nReturns the player number for the player who activated the script, starting at 0.\nFor scripts that were not activated by a player, PlayerNumber will return -1.";
	PlayerTeam = "int PlayerTeam(void)";
	PlayMovie = "PlayMovie(moviename)";
	PlaySound = "void PlaySound(int tid, str sound, int channel, fixed volume, bool looping, fixed attenuation)";
	Polyobj_DoorSlide = "Polyobj_DoorSlide(po, speed, angle, dist, delay)";
	Polyobj_DoorSwing = "Polyobj_DoorSwing(po, speed, angle, delay)";
	Polyobj_Move = "Polyobj_Move(po, speed, angle, dist)";
	Polyobj_MoveTimes8 = "Polyobj_MoveTimes8(po, speed, angle, dist)";
	Polyobj_MoveTo = "Polyobj_MoveTo(po, speed, pos_x, pos_y)";
	Polyobj_MoveToSpot = "Polyobj_MoveToSpot(po, speed, target)";
	Polyobj_OR_Move = "Polyobj_OR_Move(po, speed, angle, distance)";
	Polyobj_OR_MoveTimes8 = "Polyobj_OR_MoveTimes8(po, speed, angle, distance)";
	Polyobj_OR_MoveTo = "Polyobj_OR_MoveTo(po, speed, pos_x, pos_y)";
	Polyobj_OR_MoveToSpot = "Polyobj_OR_MoveToSpot(po, speed, target)";
	Polyobj_OR_RotateLeft = "Polyobj_OR_RotateLeft(po, speed, angle)";
	Polyobj_OR_RotateRight = "Polyobj_OR_RotateRight(po, speed, angle)";
	Polyobj_RotateLeft = "Polyobj_RotateLeft(po, speed, angle)";
	Polyobj_RotateRight = "Polyobj_RotateRight(po, speed, angle)";
	Polyobj_Stop = "Polyobj_Stop(po)";
	PolyWait = "void PolyWait(int polyid)";
	Print = "void Print(type:expression)\nPrint will print something to the screen.\nPrint will only display for the activator of the script\nFor printing to all players, use PrintBold.";
	PrintBold = "void PrintBold(type:expression)\nThis is exactly the same as Print, except all players will see the printed text\non the screen instead of just the activator of the script.";
	Radius_Quake = "Radius_Quake(intensity, duration, damrad, tremrad, tid)";
	Radius_Quake2 = "void Radius_Quake2(int tid, int intensity, int duration, int damrad, int tremrad, str sound)";
	Random = "int Random(int min, int max)";
	RedCount = "RedCount()";
	RedReturn = "Script expression RedReturn";
	RedScore = "RedScore()";
	RedTeamCount = "RedTeamCount()";
	RedTeamScore = "RedTeamScore()";
	ReplaceTextures = "void ReplaceTextures(str oldtexturename, str newtexturename [, int flags])\nReplaces all occurences of oldtexturename with newtexturename.\nNOT_ flags can be used.";
	Respawn = "Script expression Respawn";
	Restart = "Restart";
	Return = "Return";
	Script = "Script expression";
	ScriptWait = "void ScriptWait(int script)";
	Scroll_Ceiling = "Scroll_Ceiling(tag, x-move, y-move, unused)";
	Scroll_Floor = "Scroll_Floor(tag, x-move, y-move, type)";
	Scroll_Texture_Both = "Scroll_Texture_Both(lineid, left, right, down, up)";
	Scroll_Wall = "Scroll_Wall(lineid, x, y, side, flags)";
	Sector_ChangeFlags = "Sector_ChangeFlags(tag, setflags, clearflags)";
	Sector_ChangeSound = "Sector_ChangeSound(tag, newsequence)";
	Sector_SetCeilingPanning = "Sector_SetCeilingPanning(tag, u-int, u-frac, v-int, v-frac)";
	Sector_SetCeilingScale = "Sector_SetCeilingScale(tag, u-int, u-frac, v-int, v-frac)";
	Sector_SetCeilingScale2 = "Sector_SetCeilingScale2(tag, u-fixed, v-fixed)";
	Sector_SetColor = "Sector_SetColor(tag, red, green, blue, desaturation)";
	Sector_SetCurrent = "Sector_SetCurrent(tag, amount, angle, useline)";
	Sector_SetDamage = "Sector_SetDamage(tag, amount, mod)";
	Sector_SetFade = "Sector_SetFade(tag, red, green, blue)";
	Sector_SetFloorPanning = "Sector_SetFloorPanning(tag, u-int, u-frac, v-int, v-frac)";
	Sector_SetFloorScale = "Sector_SetFloorScale(tag, u-int, u-frac, v-int, v-frac)";
	Sector_SetFloorScale2 = "Sector_SetFloorScale2(tag, u-fixed, v-fixed)";
	Sector_SetFriction = "Sector_SetFriction(tag, amount)";
	Sector_SetGravity = "Sector_SetGravity(tag, ipart, fpart)";
	Sector_SetLink = "Sector_SetLink(controltag, tag, surface, movetype)";
	Sector_SetPlaneReflection = "Sector_SetPlaneReflection(tag, floor, ceiling)";
	Sector_SetRotation = "Sector_SetRotation(tag, floor-angle, ceiling-angle)";
	Sector_SetTranslucent = "Sector_SetTranslucent(tag, plane, amount, type)";
	Sector_SetWind = "Sector_SetWind(tag, amount, angle, useline)";
	SectorDamage = "void SectorDamage(int tag, int amount, str type, str protection_item, int flags)\nDoes the damage only when the function is called,\nand damages everything in the tagged sector.\nUses DAMAGE_ flags.";
	SectorSound = "void SectorSound(str sound, int volume)";
	SendToCommunicator = "SendToCommunicator(voc_id, front_only, indentify, nolog)";
	SetActivator = "int SetActivator(int tid[, int pointer_selector])\nThis changes the activator of the script to the first actor found with the specified tid.\ntid: TID of the new activator.\npointer_selector: the pointer of the TID to set as the new activator (use AAPTR_ flags).";
	SetActivatorToTarget = "bool SetActivatorToTarget(int tid)\nThis changes the activator of the script to the current target\nof the first actor found with the specified tid.\nUsing a tid of 0 uses the current activator's target.";
	SetActorAngle = "void SetActorAngle(int tid, fixed angle)\nSets the actor's angle.\nangle: a fixed point angle in the range of 0.0 to 1.0 (N = 0.25, W = 0.5, S = 0.75, E = 1.0).";
	SetActorPitch = "void SetActorPitch(int tid, int pitch)\nSets the actor's Pitch.\npitch: a fixed point angle in the range of 0.0 to 1.0.";
	SetActorPosition = "bool SetActorPosition(int tid, fixed x, fixed y, fixed z, bool fog)\nThis function sets the x, y, and z coordinates of the specified actor, with or without teleport fog.\nReturns TRUE if the actor position was changed successfully.";
	SetActorProperty = "void SetActorProperty(int tid, int property, [int|float|str] value)\nproperty: one of the APROP_ properties.";
	SetActorState = "int SetActorState(int tid, str statename [, bool exact])\nForces the actor(s) with the matching tid into the specified state, as defined in Decorate.\nIf tid is 0, the activator is affected.\nThe exact parameter specifies whether or not partial state name matches are accepted.";
	SetActorVelocity = "bool SetActorVelocity(int tid, fixed velx, fixed vely, fixed velz, bool add, bool setbob)\nChanges actor velocity.\ntid: TID of things to affect. If 0, the activator is used.\nvelx, vely, velz: The desired velocity for the affected things.\nadd: If true, each affected actor's velocity is modified by the velx, vely\nand velz parameters, rather than replaced by them.\nsetbob: If true, the speed adjustment influences the bobbing of any concerned player actor.";
	SetAirControl = "void SetAirControl(fixed amount)\nSets how well the player can move while in the air.\nThe default amount is 0.00390625.";
	SetAirSupply = "bool SetAirSupply(int playernum, int tics)\nSets the amount of tics remaining in a player's air supply.";
	SetAmmoCapacity = "void SetAmmoCapacity(str typename, int maxamount)\nSets the maximum amount of a type of ammo the player can carry.";
	SetCameraToTexture = "void SetCameraToTexture(int cameratid, str texturename, int fov)\nBinds the named texture to the specified camera\n(which does not have to be an actual camera thing).\nThe texture used must be defined as a “cameratexture” in the ANIMDEFS lump.";
	SetCeilingTrigger = "void SetCeilingTrigger(int tag, int height, int special [, int arg1 [, int arg2 [, int arg3 [, int arg4 [, int arg5]]]]])\nWhen the ceiling specified by tag moves the specified height,\nspecial(arg1, arg2, arg3, arg4, arg5) will be activated.";
	SetCVar = "bool SetCVar(str cvar, int value)\nSets the value of a particular console variable.\nOnly mod-defined console variables through CVARINFO can be changed by using this function.\nReturns FALSE if cvar is invalid, or it is not writable.";
	SetCVarString = "bool SetCVarString(str cvar, str value)\nSets the value of a particular console variable.\nOnly mod-defined console variables through CVARINFO can be changed by using this function.\nReturns FALSE if cvar is invalid, or it is not writable.";
	SetFloorTrigger = "SetFloorTrigger(tag, height, special, arg1, arg2, arg3, arg4, arg5)";
	SetFont = "void SetFont(str fontlump)\nSets the current font (only within the script) to fontlump";
	SetGlobalFogParameter = "SetGlobalFogParameter(property, value)";
	SetGravity = "void SetGravity(fixed amount)\nThis function sets the global gravity of an entire level.\nDefault is 800.0";
	SetHUDClipRect = "void SetHUDClipRect(int x, int y, int width, int height [, int wrapwidth])\nSets the clipping rectangle for future HUD messages.";
	SetHudSize = "void SetHudSize(int width, int height, bool statusbar)\nCauses text messages to be stretched or shrunk to match the size\nthey would appear if the user's resolution was width by height.";
	SetHUDWrapWidth = "void SetHudWrapWidth(int wrapwidth)\nSets the wrapping width for future HUD messages without altering the clipping rectangle.\nIf you set the wrapping width to 0, messages will wrap\nto the full width of the HUD, as normal.";
	SetLineActivation = "void SetLineActivation(int lineid, int activation)\nSets the line activation flags of the line with the specified id.\nlineid: The id of the line of which to set the activation flags\nactivation: SPAC_ flags to set. Multiple flags can be set by using the pipe character | between the constant names.";
	SetLineBlocking = "void SetLineBlocking (int lineid, int setting)\nDEPRECATED!\nUse Line_SetBlocking instead!";
	SetLineMonsterBlocking = "void SetLineMonsterBlocking(int lineid, int setting)\nDEPRECATED!\nUse Line_SetBlocking instead!";
	SetLineSpecial = "void SetLineSpecial(int lineid, int special [, int arg0 [, int arg1 [, int arg2 [, int arg3 [, int arg4]]]]])\nSetLineSpecial will change the special on all lines with the line id number specified.";
	SetLineTexture = "void SetLineTexture(int lineid, int line_side, int sidedef_texture, str texturename)\nSetLineTexture will change the specified texture on all lines with the line id number specified\nline_side: SIDE_ flags can be used.\nsidedef_texture: TEXTURE_ flags can be used.\ntexturename: the texture that will be set on the line. Use '-' to remove a texture.";
	SetMarineSprite = "void SetMarineSprite(int tid, str actorclass)\nChanges a Scripted Marine's sprite to match the sprite\nused in the specified actor's spawn state.";
	SetMarineWeapon = "void SetMarineWeapon(int tid, int weapon)\nSets a Scripted Marine's weapon on the fly.\nweapon: one of MARINEWEAPON_ flags";
	SetMugShotState = "void SetMugShotState(str state)\nSets the state of the mug shot in SBARINFO status bars.\nThe state you set will only be interrupted by damage or if the player\npicks up a weapon, provided the mugshot supports it.";
	SetMusic = "void SetMusic(str song [, int order [, int unused]])";
	SetPlayerProperty = "SetPlayerProperty(who, set, which)";
	SetPointer = "bool SetPointer(int assign_slot, int tid[, int pointer_selector[, int flags]])\nSet the value of one of the caller's stored pointers.";
	SetResultValue = "void SetResultValue(int value)";
	SetSkyScrollSpeed = "void SetSkyScrollSpeed(int sky, fixed skyspeed)\nChanges the scrolling speed of a sky.\nThis is useful in conjunction with ChangeSky.\nsky: either 1 or 2.\nskyspeed: the desired scrolling speed.";
	SetThingSpecial = "void SetThingSpecial(int tid, int special [, int arg0 [, int arg1 [, int arg2 [, int arg3 [, int arg4]]]]])\nSets the special for any things with the same TID.\nThis is similar to Thing_SetSpecial, except it can only be used from ACS,\nand it can set all of a thing's special arguments.\nIf tid is 0, then the activator is used.";
	SetUserArray = "void SetUserArray(int tid, str name, int pos, int value)\nSets one of the affected actor's user array-bound variables.";
	SetUserCVar = "bool SetUserCVar(int playernumber, str cvar, int value)\nSets the console variable of a particular player.\nOnly mod-defined console variables through CVARINFO can be changed by using this function.\nReturns FALSE if cvar is invalid, it is not writable, or the player doesn't exist.";
	SetUserCVarString = "bool SetUserCVarString(int playernumber, str cvar, str value)\nSets the console variable of a particular player.\nOnly mod-defined console variables through CVARINFO can be changed by using this function.\nReturns FALSE if cvar is invalid, it is not writable, or the player doesn't exist.";
	SetUserVariable = "void SetUserVariable(int tid, str name, int value)\nSets one of the affected actor's user variables.";
	SetWeapon = "bool SetWeapon(str weaponname)\nSets the player's current weapon to weaponname.\nReturns TRUE if the weapon was set successfully, and FALSE if not.";
	sin = "fixed Sin(int angle)";
	SinglePlayer = "int SinglePlayer(void)";
	SoundSequence = "void SoundSequence(str sndseq)\nPlays a sound sequence defined in SNDSEQ lump.";
	SoundSequenceOnActor = "void SoundSequenceOnActor(int tid, str sndseq)\nPlays a sound sequence defined in SNDSEQ lump.";
	SoundSequenceOnPolyObj = "void SoundSequenceOnPolyobj(int polynum, str sndseq)\nPlays a sound sequence defined in SNDSEQ lump.";
	SoundSequenceOnSector = "void SoundSequenceOnSector(int tag, str sndseq, int location)\nPlays a sound sequence defined in SNDSEQ lump.";
	SoundVolume = "void SoundVolume(int tid, int channel, fixed volume)\nChanges the volume of the currently playing sound by the actor(s) with the specified tid.\nIf tid is 0, the sound volume change is done to the sound being played by the activator of the script.";
	Spawn = "int Spawn(str classname, fixed x, fixed y, fixed z [, int tid [, int angle]])\nSpawns an actor at the given X, Y and Z coordinates.\nOptionally a TID and a byte angle can be specified.";
	SpawnForced = "int SpawnForced(str classname, fixed x, fixed y, fixed z [, int tid [, int angle]])\nForces the actor to spawn, even in conditions where the spawning would normally fail.\nThe return value is the number of things spawned.";
	SpawnDecal = "int SpawnDecal(int tid, str decalname, int flags [, fixed angle = 0.0 [, fixed zoffset = 0.0 [, fixed distance = 64.0]]])\nCreates a decal on a wall by tracing a line from the actor with the\nspecified tid until hitting said wall, on which the decal is then created.\nIf tid is 0, the tracing is done from the activator of the script.\ndecalname: The name of the decal to create, as defined in DECALDEF.\nflags: use SDF_ flags\nThe return value of the function is the number of decals spawned.";
	SpawnProjectile = "void SpawnProjectile(int tid, string type, int angle, int speed, int vspeed, int gravity, int newtid)";
	SpawnSpot = "int SpawnSpot(str classname, int spottid [, int tid [, int angle]])\nRequires a MapSpot at the location where you want the Actor to spawn.\nThe return value is the number of things spawned.";
	SpawnSpotFacing = "int SpawnSpotFacing(str classname, int spottid [, int tid])\nRequires a MapSpot at the location where you want the Actor to spawn.\nThe thing will assume the angle of the mapspot it is spawned to.\nThe return value is the number of things spawned.";
	SpawnSpotFacingForced = "int SpawnSpotFacingForced(str classname, int spottid [, int tid])\nRequires a MapSpot at the location where you want the Actor to spawn.\nForces the actor to spawn, even in conditions where the spawning would normally fail.\nThe thing will assume the angle of the mapspot it is spawned to.\nThe return value is the number of things spawned.";
	SpawnSpotForced = "int SpawnSpotForced(str classname, int spottid [, int tid [, int angle]])\nRequires a MapSpot at the location where you want the Actor to spawn.\nForces the actor to spawn, even in conditions where the spawning would normally fail.\nThe return value is the number of things spawned.";
	Special = "Special";
	Sqrt = "int Sqrt(int number)";
	Stairs_BuildDown = "Stairs_BuildDown(tag, speed, height, delay, reset)";
	Stairs_BuildDownSync = "Stairs_BuildDownSync(tag, speed, height, reset)";
	Stairs_BuildUp = "Stairs_BuildUp(tag, speed, height, delay, reset)";
	Stairs_BuildUpDoom = "Stairs_BuildUpDoom(tag, speed, height, delay, reset)";
	Stairs_BuildUpSync = "Stairs_BuildUpSync(tag, speed, height, reset)";
	StartConversation = "StartConversation(talker_tid, facetalker)";
	StopSound = "void StopSound(int tid, int channel)\nStops the sound currently playing on the specified channel for the actor with matching tid";
	str = "Str expression";
	StrCmp = "int StrCmp(str string1, str string2 [, int maxcomparenum])\nCompares the two strings passed in arguments string1 and string2 character by character.\nIf maxcomparenum is specified, it only compares up to maxcomparenum characters of each string.";
	StrCpy = "bool StrCpy(a:destination, string source [, int source_index])\nCopy a source string to a destination array as a series of characters.\nOptionally, the copy can start from a given index in the source string.\nReturns TRUE if the entire string (or substring) was successfully copied to the array;\nFALSE if the copy ran out of room or if a negative source_index was given.";
	StrIcmp = "int StrCmp(str string1, str string2 [, int maxcomparenum])\nStrIcmp is case-insensitive version of StrCmp";
	StrLeft = "str StrLeft(str string, int length)\nCreates a new string containing the length first characters of string.\nIf string does not exist, an empty string is returned.\nIf string is shorter than length characters, the entire string is returned."; 
	StrLen = "int StrLen(str string)";
	StrMid = "str StrMid(str string, int start, int length)\nCreates a new string containing the length characters of string starting from the one at position start.\nIf string does not exist or is shorter than start characters, an empty string is returned. \nIf string is shorter than start + length characters, the entire substring beginning at start is returned."; 
	StrParam = "int StrParam(type:expression)\nStrParam will create a new string formatted based upon the same method for Print or Log.\nThe return value is the string table index of the new string.";
	StrRight = "str StrRight(str string, int length)\nCreates a new string containing the length last characters of string.\nIf string does not exist, an empty string is returned.\nIf string is shorter than length characters, the entire string is returned."; 
	Suspend = "Suspend";
	Switch = "Switch(expression)";
	TagWait = "void TagWait(int tag)";
	TakeActorInventory = "void TakeActorInventory(int tid, str inventory_item, int amount)\nThis function will take the amount of items from the specified actor.\nTakeActorInventory can remove items that are flagged as undroppable.";
	TakeInventory = "void TakeInventory(str inventory_item, int amount)\nThis function will take the number of items specified from the activator.\nTakeInventory can remove items that are flagged as undroppable.";
	Team_GivePoints = "Team_GivePoints(team, points, announce)";
	Team_Score = "Team_Score(points, nogrin)";
	Teleport = "Teleport(tid, tag, nosourcefog)";
	Teleport_EndGame = "Teleport_EndGame()";
	Teleport_NewMap = "Teleport_NewMap(map, pos, face)";
	Teleport_NoFog = "Teleport_NoFog(tid, useangle, tag)";
	Teleport_NoStop = "Teleport_NoStop(tid, tag, nofog)";
	Teleport_ZombieChanger = "Teleport_ZombieChanger(tid, tag)";
	TeleportGroup = "TeleportGroup(groupid, sourceid, destinationid, movesource, fog)";
	TeleportInSector = "TeleportInSector(tag, sourceid, destinationid, fog, groupid)";
	TeleportOther = "TeleportOther(tid, destinationid, fog)";
	Terminate = "Terminate";
	Thing_Activate = "Thing_Activate(tid)";
	Thing_ChangeTID = "Thing_ChangeTID(oldtid, newtid)";
	Thing_Damage = "Thing_Damage(tid, amount, mod)";
	Thing_Damage2 = "int Thing_Damage2 (int tid, int amount, str type)\nDamages the specified actor.\nDamage type is specified by name.";
	Thing_Deactivate = "Thing_Deactivate(tid)";
	Thing_Destroy = "Thing_Destroy(tid, extreme, tag)";
	Thing_Hate = "Thing_Hate(hater, hatee, type)";
	Thing_Move = "Thing_Move(tid, destid, nofog)";
	Thing_Projectile = "Thing_Projectile(tid, type, angle, speed, vspeed)";
	Thing_Projectile2 = "void Thing_Projectile2(int tid, int type, int angle, int speed, int vspeed, int gravity, int newtid)";
	Thing_ProjectileAimed = "Thing_ProjectileAimed(tid, type, speed, target, newtid)";
	Thing_ProjectileGravity = "Thing_ProjectileGravity(tid, type, angle, speed, vspeed)";
	Thing_ProjectileIntercept = "Thing_ProjectileIntercept(tid, type, speed, target, newtid)";
	Thing_Raise = "Thing_Raise(tid)";
	Thing_Remove = "Thing_Remove(tid)";
	Thing_SetConversation = "Thing_SetConversation(tid, conversationid)";
	Thing_SetGoal = "Thing_SetGoal(tid, goal, delay, dontchasetarget)";
	Thing_SetSpecial = "Thing_SetSpecial(tid, special, arg1, arg2, arg3)";
	Thing_SetTranslation = "Thing_SetTranslation(tid, translation)";
	Thing_Spawn = "Thing_Spawn(tid, type, angle, newtid)";
	Thing_SpawnFacing = "Thing_SpawnFacing(tid, type, nofog, newtid)";
	Thing_SpawnNoFog = "Thing_SpawnNoFog(tid, type, angle, newtid)";
	Thing_Stop = "Thing_Stop(tid)";
	ThingCount = "int ThingCount(int type, int tid)";
	ThingCountName = "int ThingCountName(str classname, int tid)";
	ThingCountNameSector = "int ThingCountNameSector(str classname, int tid, int tag)";
	ThingCountSector = "int ThingCountSector(int type, int tid, int tag)";
	ThingSound = "void ThingSound(int tid, str sound, int volume)\nPlays a sound at a thing.\nThis is a point sound, so anyone far away will not hear it as loudly";
	ThrustThing = "ThrustThing(angle, force, nolimit, tid)";
	ThrustThingZ = "ThrustThingZ(tid, speed, up_or_down, add_or_set)";
	Timer = "int Timer(void)";
	TranslucentLine = "TranslucentLine(lineid, amount, additive, moreflags)";
	UniqueTID = "int UniqueTID([int tid [, int limit]])";
	Unloading = "Script expression Unloading";
	UnMorphActor = "int UnMorphActor (int tid[, bool force])";
	Until = "Until(expression)";
	UseActorInventory = "int UseActorInventory (int tid, str classname)\nForces the actor(s) with the specified tid to use an item from their inventory, if they have one.\nReturns TRUE if the item was used successfully.";
	UseInventory = "int UseInventory (str classname)\nForces the activator to use the specified inventory item, if he has it.\nReturns TRUE if the item was used successfully.";
	UsePuzzleItem = "UsePuzzleItem(item, script, arg1, arg2, arg3)";
	VectorAngle = "fixed VectorAngle(int x, int y)";
	VectorLength = "int VectorLength(int x, int y)";
	Void = "Void";
	While = "While(expression)";
	WhiteReturn = "Script expression WhiteReturn";
	World = "World Int expression:identifier";
}

constants
{
	AAPTR_DEFAULT;
	AAPTR_FRIENDPLAYER;
	AAPTR_MASTER;
	AAPTR_NULL;
	AAPTR_PLAYER_GETCONVERSATION;
	AAPTR_PLAYER_GETTARGET;
	AAPTR_PLAYER1;
	AAPTR_PLAYER2;
	AAPTR_PLAYER3;
	AAPTR_PLAYER4;
	AAPTR_PLAYER5;
	AAPTR_PLAYER6;
	AAPTR_PLAYER7;
	AAPTR_PLAYER8;
	AAPTR_TARGET;
	AAPTR_TRACER;
	ACTOR_ALIVE;
	ACTOR_BOT;
	ACTOR_DEAD;
	ACTOR_GENERIC;
	ACTOR_MISSILE;
	ACTOR_MONSTER;
	ACTOR_NONE;
	ACTOR_PLAYER;
	ACTOR_VOODOODOLL;
	ACTOR_WORLD;
	APROP_Accuracy;
	APROP_ActiveSound;
	APROP_Alpha;
	APROP_Ambush;
	APROP_AttackSound;
	APROP_AttackZOffset;
	APROP_ChaseGoal;
	APROP_Damage;
	APROP_DamageFactor;
	APROP_DeathSound;
	APROP_Dormant;
	APROP_Dropped;
	APROP_Friendly;
	APROP_Frightened;
	APROP_Gravity;
	APROP_Health;
	APROP_Height;
	APROP_Invulnerable;
	APROP_JumpZ;
	APROP_Mass;
	APROP_MasterTID;
	APROP_MeleeRange;
	APROP_NameTag;
	APROP_NoTarget;
	APROP_NoTrigger;
	APROP_PainSound;
	APROP_Radius;
	APROP_RenderStyle;
	APROP_ScaleX;
	APROP_ScaleY;
	APROP_Score;
	APROP_SeeSound;
	APROP_SpawnHealth;
	APROP_Species;
	APROP_Speed;
	APROP_Stamina;
	APROP_TargetTID;
	APROP_TracerTID;
	APROP_ViewHeight;
	APROP_Waterlevel;
	ATTN_IDLE;
	ATTN_NONE;
	ATTN_NORM;
	ATTN_STATIC;
	BLOCK_CREATURES;
	BLOCK_EVERYTHING;
	BLOCK_NOTHING;
	BLOCK_PLAYERS;
	BLOCK_RAILING;
	BLOCKF_CREATURES;
	BLOCKF_EVERYTHING;
	BLOCKF_FLOATERS;
	BLOCKF_HITSCAN;
	BLOCKF_MONSTERS;
	BLOCKF_PLAYERS;
	BLOCKF_PROJECTILES;
	BLOCKF_RAILING;
	BLOCKF_SIGHT;
	BLOCKF_USE;
	BT_ALTATTACK;
	BT_ATTACK;
	BT_BACK;
	BT_CROUCH;
	BT_FORWARD;
	BT_JUMP;
	BT_LEFT;
	BT_LOOKDOWN;
	BT_LOOKUP;
	BT_MOVEDOWN;
	BT_MOVELEFT;
	BT_MOVERIGHT;
	BT_MOVEUP;
	BT_RELOAD;
	BT_RIGHT;
	BT_SHOWSCORES;
	BT_SPEED;
	BT_STRAFE;
	BT_TURN180;
	BT_USE;
	BT_USER1;
	BT_USER2;
	BT_USER3;
	BT_USER4;
	BT_ZOOM;
	CARRY;
	CHAN_AUTO;
	CHAN_BODY;
	CHAN_ITEM;
	CHAN_LISTENERZ;
	CHAN_MAYBE_LOCAL;
	CHAN_NOPAUSE;
	CHAN_UI;
	CHAN_VOICE;
	CHAN_WEAPON;
	CHANGELEVEL_KEEPFACING;
	CHANGELEVEL_NOINTERMISSION;
	CHANGELEVEL_NOMONSTERS;
	CHANGELEVEL_PRERAISEWEAPON;
	CHANGELEVEL_RESETHEALTH;
	CHANGELEVEL_RESETINVENTORY;
	CLASS_CLERIC;
	CLASS_FIGHTER;
	CLASS_MAGE;
	CR_BLACK;
	CR_BLUE;
	CR_BRICK;
	CR_BROWN;
	CR_CREAM;
	CR_CYAN;
	CR_DARKBROWN;
	CR_DARKGRAY;
	CR_DARKGREEN;
	CR_DARKGREY;
	CR_DARKRED;
	CR_GOLD;
	CR_GRAY;
	CR_GREEN;
	CR_GREY;
	CR_LIGHTBLUE;
	CR_OLIVE;
	CR_ORANGE;
	CR_PURPLE;
	CR_RED;
	CR_TAN;
	CR_UNTRANSLATED;
	CR_WHITE;
	CR_YELLOW;
	CSF_NOBLOCKALL;
	CSF_NOFAKEFLOORS;
	DAMAGE_IN_AIR;
	DAMAGE_NONPLAYERS;
	DAMAGE_PLAYERS;
	DAMAGE_SUBCLASSES_PROTECT;
	FALSE;
	FHF_NORANDOMPUFFZ;
	FOGP_DENSITY;
	FOGP_OUTSIDEDENSITY;
	FOGP_SKYFOG;
	GAME_NET_COOPERATIVE;
	GAME_NET_DEATHMATCH;
	GAME_SINGLE_PLAYER;
	GAME_TITLE_MAP;
	HUDMSG_ADDBLEND;
	HUDMSG_ALPHA;
	HUDMSG_COLORSTRING;
	HUDMSG_FADEINOUT;
	HUDMSG_FADEOUT;
	HUDMSG_LAYER_OVERHUD;
	HUDMSG_LAYER_OVERMAP;
	HUDMSG_LAYER_UNDERHUD;
	HUDMSG_LOG;
	HUDMSG_NOTWITH3DVIEW;
	HUDMSG_NOTWITHFULLMAP;
	HUDMSG_NOTWITHOVERLAYMAP;
	HUDMSG_NOWRAP;
	HUDMSG_PLAIN;
	HUDMSG_TYPEON;
	INPUT_BUTTONS;
	INPUT_FORWARDMOVE;
	INPUT_OLDBUTTONS;
	INPUT_PITCH;
	INPUT_ROLL;
	INPUT_SIDEMOVE;
	INPUT_UPMOVE;
	INPUT_YAW;
	IS_BOSSFIGHT;
	IS_COUNTDOWN;
	IS_FIRSTCOUNTDOWN;
	IS_INPROGRESS;
	IS_WAITINGFORPLAYERS;
	IS_WAVECOMPLETE;
	LEVELINFO_CLUSTERNUM;
	LEVELINFO_FOUND_ITEMS;
	LEVELINFO_FOUND_SECRETS;
	LEVELINFO_KILLED_MONSTERS;
	LEVELINFO_LEVELNUM;
	LEVELINFO_PAR_TIME;
	LEVELINFO_SUCK_TIME;
	LEVELINFO_TOTAL_ITEMS;
	LEVELINFO_TOTAL_MONSTERS;
	LEVELINFO_TOTAL_SECRETS;
	LINE_BACK;
	LINE_FRONT;
	MARINEWEAPON_BerserkFist;
	MARINEWEAPON_BFG;
	MARINEWEAPON_Chaingun;
	MARINEWEAPON_Chainsaw;
	MARINEWEAPON_Dummy;
	MARINEWEAPON_Fist;
	MARINEWEAPON_Pistol;
	MARINEWEAPON_PlasmaRifle;
	MARINEWEAPON_Railgun;
	MARINEWEAPON_RocketLauncher;
	MARINEWEAPON_Shotgun;
	MARINEWEAPON_SuperShotgun;
	MOD_BFG_SPLASH;
	MOD_CRUSH;
	MOD_DISINTEGRATE;
	MOD_ELECTRIC;
	MOD_EXIT;
	MOD_FALLING;
	MOD_HIT;
	MOD_ICE;
	MOD_LAVA;
	MOD_POISON;
	MOD_RAILGUN;
	MOD_SLIME;
	MOD_SUICIDE;
	MOD_TELEFRAG;
	MOD_UNKNOWN;
	MOD_WATER;
	MODINPUT_BUTTONS;
	MODINPUT_FORWARDMOVE;
	MODINPUT_OLDBUTTONS;
	MODINPUT_PITCH;
	MODINPUT_ROLL;
	MODINPUT_SIDEMOVE;
	MODINPUT_UPMOVE;
	MODINPUT_YAW;
	MOVIE_Failed;
	MOVIE_Played;
	MOVIE_Played_Aborted;
	MOVIE_Played_NoVideo;
	MRF_ADDSTAMINA;
	MRF_FAILNOLAUGH;
	MRF_FAILNOTELEFRAG;
	MRF_FULLHEALTH;
	MRF_LOSEACTUALWEAPON;
	MRF_NEWTIDBEHAVIOUR;
	MRF_OLDEFFECTS;
	MRF_UNDOBYCHAOSDEVICE;
	MRF_UNDOBYDEATH;
	MRF_UNDOBYDEATHFORCED;
	MRF_UNDOBYDEATHSAVES;
	MRF_UNDOBYTOMEOFPOWER;
	MRF_WHENINVULNERABLE;
	NO;
	NO_CHANGE;
	NO_TEAM;
	NOT_BOTTOM;
	NOT_CEILING;
	NOT_FLOOR;
	NOT_MIDDLE;
	NOT_TOP;
	OFF;
	ON;
	PLAYERINFO_AIMDIST;
	PLAYERINFO_COLOR;
	PLAYERINFO_DESIREDFOV;
	PLAYERINFO_FOV;
	PLAYERINFO_GENDER;
	PLAYERINFO_MOVEBOB;
	PLAYERINFO_NEVERSWITCH;
	PLAYERINFO_PLAYERCLASS;
	PLAYERINFO_STILLBOB;
	PLAYERINFO_TEAM;
	PRINTNAME_LEVEL;
	PRINTNAME_LEVELNAME;
	PRINTNAME_SKILL;
	PROP_ALLMAP;
	PROP_BUDDHA;
	PROP_FLIGHT;
	PROP_FLY;
	PROP_FROZEN;
	PROP_INFRARED;
	PROP_INSTANTWEAPONSWITCH;
	PROP_INVISIBILITY;
	PROP_INVULNERABILITY;
	PROP_NOTARGET;
	PROP_RADIATIONSUIT;
	PROP_SPEED;
	PROP_STRENGTH;
	PROP_TOTALLYFROZEN;
	PROP_WEAPONLEVEL2;
	PTROP_NOSAFEGUARDS;
	PTROP_UNSAFEMASTER;
	PTROP_UNSAFETARGET;
	SCROLL;
	SCROLL_AND_CARRY;
	SDF_ABSANGLE;
	SDF_PERMANENT;
	SECF_FLOORDROP;
	SECF_NOFALLINGDAMAGE;
	SECF_NORESPAWN;
	SECF_SILENT;
	SECSEQ_CEILING;
	SECSEQ_FLOOR;
	SECSEQ_FULLHEIGHT;
	SECSEQ_INTERIOR;
	SIDE_BACK;
	SIDE_FRONT;
	SKILL_EASY;
	SKILL_HARD;
	SKILL_NORMAL;
	SKILL_VERY_EASY;
	SKILL_VERY_HARD;
	SPAC_None;
	SPAC_Cross;
	SPAC_Use;
	SPAC_MCross;
	SPAC_Impact;
	SPAC_Push;
	SPAC_PCross;
	SPAC_UseThrough;
	SPAC_AnyCross;
	SPAC_MUse;
	SPAC_MPush;
	SPAC_UseBack;
	STYLE_Add;
	STYLE_Fuzzy;
	STYLE_None;
	STYLE_Normal;
	STYLE_OptFuzzy;
	STYLE_Shaded;
	STYLE_SoulTrans;
	STYLE_Stencil;
	STYLE_Translucent;
	STYLE_TranslucentStencil;
	T_ABADDON;
	T_ABADDONSHOT;
	T_AMMOBOX;
	T_AMULETOFWARDING;
	T_ANTIGRAVBELT;
	T_ARACHNOTRON;
	T_ARACHNOTRONPLASMA;
	T_ARMORBONUS;
	T_ARROW;
	T_AXEKEY;
	T_BACKPACK;
	T_BARON;
	T_BARONBALL;
	T_BARREL;
	T_BATTERY;
	T_BEAST;
	T_BEASTBALL;
	T_BELPHEGOR;
	T_BERSERK;
	T_BFG;
	T_BFG10000;
	T_BFG10KSHOT;
	T_BFGSHOT;
	T_BISHOP;
	T_BLADE;
	T_BLASTER;
	T_BLOOD;
	T_BLOODDEMON;
	T_BLOODPOOL;
	T_BLOODPOOL1;
	T_BLOODPOOL2;
	T_BLUEARMOR;
	T_BLUEFLAG;
	T_BLUEKEY;
	T_BLUEKEYCARD;
	T_BLUESKULLKEY;
	T_BLUETELEGLITTER;
	T_BOUNCYMACEBALL;
	T_BRAINS;
	T_BRIDGE;
	T_CACODEMON;
	T_CACODEMONSHOT;
	T_CACOLANTERN;
	T_CACOLANTERNSHOT;
	T_CELL;
	T_CENTAUR;
	T_CENTAUR_MASH;
	T_CENTAURLEADER;
	T_CHAINGUN;
	T_CHAINGUY;
	T_CHAINSAW;
	T_CHICKEN;
  T_CLERICHOLY1;
  T_CLERICHOLY2;
  T_CLERICHOLY3;
  T_CLERICSTAFF;
  T_CLINK;
  T_CLIP;
  T_COMPUTERMAP;
  T_CROSSBOW;
  T_CROSSBOWMAINBLAST;
  T_CROSSBOWMINIBLAST;
  T_CROSSBOWPOWERBLAST;
  T_CYBERDEMON;
  T_DARKIMP;
  T_DARKIMPFIREBALL;
  T_DART;
  T_DEATHBALL;
  T_DEMON;
  T_DEMON_MASH;
  T_DEMON1;
  T_DEMON2_MASH;
  T_DIRT1;
  T_DIRT2;
  T_DIRT3;
  T_DIRT4;
  T_DIRT5;
  T_DIRT6;
  T_DOOMSPHERE;
  T_DRAGONSKINBRACERS;
  T_DRAIN;
  T_DSPARILALONE;
  T_DSPARILBLUESHOT;
  T_DSPARILONSERPENT;
  T_DSPARILTELEPORTDEST;
  T_DSPARILWIZARDSPAWNER;
  T_EMERALDKEY;
  T_ETTIN;
  T_ETTIN_MASH;
  T_FALCONSHIELD;
  T_FEATHER;
  T_FIGHTERAXE;
  T_FIGHTERHAMMER;
  T_FIGHTERSWORD1;
  T_FIGHTERSWORD2;
  T_FIGHTERSWORD3;
  T_FIREBALL1;
  T_FIREGARGOYLE;
  T_FIREKEY;
  T_FLAME_LARGE;
  T_FLAME_SMALL;
  T_FLAMINGBARREL;
  T_FLESH_DRIP1;
  T_FLESH_DRIP2;
  T_GAUNTLETS;
  T_GREENARMOR;
  T_GREENKEY;
  T_GRENADE;
  T_GRENADELAUNCHER;
  T_GUTS;
  T_HASTE;
  T_HEALTHBONUS;
  T_HEAVYMACEBALL;
  T_HECTEBUS;
  T_HEFTYBLASTERAMMO;
  T_HEFTYCROSSBOWAMMO;
  T_HEFTYMACEAMMO;
  T_HEFTYPHOENIXRODAMMO;
  T_HEFTYSKULLRODAMMO;
  T_HEFTYWANDAMMO;
  T_HELLKNIGHT;
  T_HIGHJUMP;
  T_HORNKEY;
  T_ICEGOLEM;
  T_ICESHARD;
  T_IMP;
  T_IMPFIREBALL;
  T_IMPLEADER;
  T_INFRAGOGGLES;
  T_INFRATRACKER;
  T_INVISIBILITY;
  T_INVULNERABILITY;
  T_IRONFEET;
  T_IRONLICH;
  T_IRONLICHBLUESHOT;
  T_ITEMALLMAP;
  T_ITEMBAGOFHOLDING;
  T_ITEMBOOSTMANA;
  T_ITEMBOOTS;
  T_ITEMEGG;
  T_ITEMFLECHETTE;
  T_ITEMFLIGHT;
  T_ITEMHEALTHFLASH;
  T_ITEMHEALTHFLASK;
  T_ITEMHEALTHFULL;
  T_ITEMHEALTHPOTION;
  T_ITEMINVISIBILITY;
  T_ITEMINVULNERABILITY;
  T_ITEMPORK;
  T_ITEMREPULSION;
  T_ITEMSUMMON;
  T_ITEMTELEPORT;
  T_ITEMTIMEBOMB;
  T_ITEMTOME;
  T_ITEMTORCH;
  T_ITEMTPORTOTHER;
  T_KNIGHT;
  T_KNIGHTAXE;
  T_KNIGHTBLOODAXE;
  T_KNIGHTGHOST;
  T_LIGHTAMP;
  T_LOSTSOUL;
  T_MACE;
  T_MACEKEY;
  T_MAGESHARDS;
  T_MAGESTAFF1;
  T_MAGESTAFF2;
  T_MAGESTAFF3;
  T_MANA1;
  T_MANA2;
  T_MANA3;
  T_MANCUBUS;
  T_MANCUBUSSHOT;
  T_MAXARMORBONUS;
  T_MAXHEALTHBONUS;
  T_MEDKIT;
  T_MEGASPHERE;
  T_MESHARMOR;
  T_METALKEY;
  T_MINIGUN;
  T_MORPHBLAST;
  T_MUMMY;
  T_MUMMYGHOST;
  T_MUMMYHEAD;
  T_MUMMYLEADER;
  T_MUMMYLEADERGHOST;
  T_NOGRAVITYMACEBALL;
  T_NONE;
  T_PAINELEMENTAL;
  T_PERMLARGEFLAME;
  T_PERMSMALLFLAME;
  T_PHOENIXROD;
  T_PHOENIXSHOT;
  T_PISTOL;
  T_PLASMABOLT;
  T_PLASMAGUN;
  T_PLATINUMHELM;
  T_POD;
  T_PODGENERATOR;
  T_POISONDART;
  T_POWERWANDBIGGERBLAST;
  T_POWERWANDMINIBLAST;
  T_PROSPERITY;
  T_PUFF;
  T_PUZZBOOK1;
  T_PUZZBOOK2;
  T_PUZZGEMBIG;
  T_PUZZGEMBLUE1;
  T_PUZZGEMBLUE2;
  T_PUZZGEMGREEN1;
  T_PUZZGEMGREEN2;
  T_PUZZGEMRED;
  T_PUZZSKULL;
  T_RAGE;
  T_RAILGUN;
  T_RANDOMPOWERUP;
  T_REDARMOR;
  T_REDFLAG;
  T_REDKEYCARD;
  T_REDSKULLKEY;
  T_REDTELEGLITTER;
  T_REFLECTION;
  T_REGENERATION;
  T_RESISTANCE;
  T_REVENANT;
  T_RIPPER;
  T_RIPPERBALL;
  T_ROCK1;
  T_ROCK2;
  T_ROCK3;
  T_ROCKET;
  T_ROCKETAMMO;
  T_ROCKETBOX;
  T_ROCKETLAUNCHER;
  T_RUSTYKEY;
  T_SCRIPTEDMARINE;
  T_SERPENTFIREBALL;
  T_SERPENTKEY;
  T_SHELLBOX;
  T_SHELLS;
  T_SHIELD1;
  T_SHIELD2;
  T_SHOTGUN;
  T_SHOTGUY;
  T_SILVERKEY;
  T_SKULLROD;
  T_SKULLRODBLAST;
  T_SMALLMETALKEY;
  T_SNAKE;
  T_SNAKEPROJECTILE;
  T_SNAKEPROJECTILEBIG;
  T_SOULSPHERE;
  T_SOUND_WATERFALL;
  T_SOUND_WIND;
  T_SPARK_DRIP;
  T_SPECTRE;
  T_SPIDERMASTERMIND;
  T_SPREAD;
  T_SSGGUY;
  T_STAINEDGLASS0;
  T_STAINEDGLASS1;
  T_STAINEDGLASS2;
  T_STAINEDGLASS3;
  T_STAINEDGLASS4;
  T_STAINEDGLASS5;
  T_STAINEDGLASS6;
  T_STAINEDGLASS7;
  T_STAINEDGLASS8;
  T_STAINEDGLASS9;
  T_STEALTHARACHNOTRON;
  T_STEALTHBARON;
  T_STEALTHCACODEMON;
  T_STEALTHCHAINGUY;
  T_STEALTHIMP;
  T_STEALTHKNIGHT;
  T_STEALTHMANCUBUS;
  T_STEALTHREVENANT;
  T_STEALTHSERGEANT;
  T_STEALTHSHOTGUY;
  T_STEALTHVILE;
  T_STEALTHZOMBIE;
  T_STIMPACK;
  T_STRENGTH;
  T_SUPERSHOTGUN;
  T_TEMPLARGEFLAME;
  T_TEMPSMALLFLAME;
	T_THRUSTSPIKEDOWN;
	T_THRUSTSPIKEUP;
	T_TIMEFREEZER;
	T_TINYVOLCANOBALL;
	T_TRACER;
	T_TRANSLUCENCY;
	T_TURBOSPHERE;
	T_VILE;
	T_VOLCANO;
	T_VOLCANOBALL;
	T_WATERDRIP;
	T_WATERLURKER;
	T_WATERLURKERLEADER;
	T_WHIRLWIND;
	T_WHITEFLAG;
	T_WIMPYBLASTERAMMO;
	T_WIMPYCROSSBOWAMMO;
	T_WIMPYMACEAMMO;
	T_WIMPYPHOENIXRODAMMO;
	T_WIMPYSKULLRODAMMO;
	T_WIMPYWANDAMMO;
	T_WIZARD;
	T_WIZARDSHOT;
	T_WOLFSS;
	T_WRAITH;
	T_WRAITHBURIED;
	T_YELLOWKEY;
	T_YELLOWKEYCARD;
	T_YELLOWSKULLKEY;
	T_ZOMBIE;
	TEAM_BLUE;
	TEAM_RED;
	TEXFLAG_ADDOFFSET;
	TEXFLAG_BOTTOM;
	TEXFLAG_MIDDLE;
	TEXFLAG_TOP;
	TEXTURE_BOTTOM;
	TEXTURE_MIDDLE;
	TEXTURE_TOP;
	TRUE;
	YES;
}