
fragglescript : cstyle {
	name = "FraggleScript";
	case_sensitive = false;
	keyword_link = "http://www.doomwiki.org/wiki/FraggleScript";
	constant_link = "http://www.doomwiki.org/wiki/FraggleScript";
	function_link = "http://www.doomwiki.org/wiki/FraggleScript";
	blocks = script;

	keywords = {
		// Level info
		consolecmd, creator, drown, gravity, ignore, interpic,
		levelname, music, nextlevel, nextsecret, partime, skyname,

		// Console commands
		allowjump, gimme, gravity, gr_fogcolor, gr_fogdensity, viewheight, map,

		// Variable types
		string, int, mobj, fixed, float, const, hud,

		// Default variables
		consoleplayer, displayplayer, zoom, fov, trigger
	}

	constants = {
		PLAYER, TROOPER, SHOTGUY, ARCHVILE, VILEFIRE, REVENANT, REVENANTMISL, SMOKE,
		MANCUBUS, MANCUBUSSHOT, CHAINGUY, IMP, DEMON, SPECTRE, CACODEMON, BARONOFHELL,
		BARONSHOT, HELLKNIGHT, LOSTSOUL, SPIDERMASTERMIND, ARACHNOTRON, CYBERDEMON,
		PAINELEMENTAL, WOLFSS, KEEN, BOSSBRAIN, BOSSSPIT, BOSSTARGET, SPAWNSHOT,
		SPAWNFIRE, BARREL, IMPSHOT, CACOSHOT, FLYINGROCKET, FLYINGPLASMA, FLYINGBFG,
		ARACHPLAZ, PUFF, BLOOD, TFOG, IFOG, TELEPORTMAN, EXTRABFG, GREENARMOR,
		BLUEARMOR, HEALTHPOTION, ARMORHELMET, BLUEKEYCARD, REDKEYCARD, YELLOWKEYCARD,
		YELLOWSKULLKEY, REDSKULLKEY, BLUESKULLKEY,STIMPACK, MEDIKIT, SUPERCHARGE,
		INVULNERABILITY, BESERKPACK, INVISIBILITY, RADSUIT, AUTOMAP, LITEAMP,
		MEGASPHERE, CLIP, BULLETBOX, ROCKET, ROCKETBOX, ECELL, ECELLPACK, SHELLS,
		SHELLBOX, BACKPACK, BFG, CHAINGUN, CHAINSAW, RLAUNCHER, PLASMAGUN, SHOTGUN,
		SUPERSHOTGUN, TALLTECHLAMP, SHORTTECHLAMP, FLOORLAMP, TALLGRNPILLAR,
		SHRTGRNPILLAR, TALLREDPILLAR, SHRTREDPILLAR, SKULLCOLUMN, HEARTCOLUMN,
		EVILEYE, SKULLROCK, GRAYTREE, TALLBLUFIRESTICK, TALLGRNFIRESTICK,
		TALLREDFIRESTICK, SHRTBLUFIRESTICK, SHRTGRNFIRESTICK, SHRTREDFIRESTICK,
		STALAGMITE, TALLTECHPILLAR, CANDLE, CANDELABRA, TWITCHCORPSE1, TWITCHCORPSE2,
		HANGINGMAN1, HANGINGMAN2, HANGINGMAN3, HANGINGMAN4, HANGINGMAN5, HANGINGMAN6,
		HANGINGMAN7, HANGINGMAN8, DEADCACO, DEADPLAYER, DEADTROOPER, DEADDEMON,
		DEADLOSTSOUL, DEADIMP, DEADSERGEANT, SLOP, SLOP2, SKULLPOLE1, BLOODPOOL1,
		SKULLPOLE2, SKULLPILE, DEADCORPSE1, TWITCHCORPSE3, TREE, BURNINGBARREL,
		HANGINGMAN9, HANGINGMAN10, HANGINGMAN11, HANGINGMAN12, HANGINGMAN13,
		HANGINGMAN14, BLOODPOOL2, BLOODPOOL3, BLOODPOOL4, PUSH, PULL,

		Armor, Berserk, BFG, Chaingun, Chainsaw, Fullmap, Map, Plasma, Rocket,
		Shotgun, SuperShotgun, Health, Ammo, Keys, Weapons
	}

	functions {
		Abs = "value";
		ACos = "value";
		AmbientSound = "name";
		ASin = "value";
		ATan = "value";
		Beep;
		Break;
		CeilHeight = "tag_number, [set_height], [crush]";
		CeilingHeight = "tag_number, [set_height], [crush]";
		CeilingTexture = "tag_number, [set_tex]";
		CeilText = "tag_number, [set_tex]";
		ChangeHubLevel;
		ChangeMusic = "name";
		ChangeTag = "tag_num, new_tag";
		CheckCVar = "cvar";
		CheckInventory = "player_num, item";
		ClearCamera;
		Clock;
		CloseDoor = "tag_num, [speed]";
		Colormap = "tag_num, color";
		Continue;
		Cos = "value";
		CreatePic = "texture, xpos, ypos";
		DamageObj = "[target], amount";
		DeleteHUPic = "handle";
		ExitLevel;
		ExitSecret;
		Exp = "value";
		FadeLight = "tag_num, level, [speed]";
		FixedValue = "value";
		Floor  = "value";
		FloorHeight = "tag_number, [set_height], [crush]";
		FloorText = "tag_number, [set_tex]";
		FloorTexture = "tag_number, [set_tex]";
		Gamemode;
		Gameskill;
		GiveInventory = "player, item, [count]";
		Goto = "label";
		HealObj = "[target], amount";
		Include = "lumpname";
		Input;
		IntValue = "value";
		IsObjPlayer = "[object]";
		IsPlayerObj = "[object]";
		Kill = "[target]";
		KillInSector = "tag";
		KillObj = "[target]";
		LevelNum;
		LightLevel = "tag_number, [set_level]";
		LineAttack = "shooter, angle, damage";
		LineFlag = "linenum, flag, [set]";
		LineTrigger = "type, [tag]";
		Log = "value";
		Ls = "special, [arg0], [arg1], [arg2], [arg3], [arg4]";
		MapThingNumExist = "number";
		MapThings;
		Max = "value1, value2";
		MaxPlayerAmmo = "player, int/ammo_type, [value]";
		Message = "text";
		Min = "value1, value2";
		MobjHeight = "target, [value]";
		MobjMomx = "target, [value]";
		MobjMomy = "target, [value]";
		MobjMomz = "target, [value]";
		MobjRadius = "target, [value]";
		MobjTarget = "m1, [m2]";
		MobjValue = "value";
		ModifyHUPic = "handle, texture, xpos, ypos";
		ModifyPic = "handle, texture, xpos, ypos";
		MoveCamera = "camera, targetobj, targetheight, movespeed, targetangle, anglespeed";
		MoveCeil = "tag_num, dest_height, [speed], [crush], [silent]";
		MoveCeiling = "tag_num, dest_height, [speed], [crush], [silent]";
		MoveFloor = "tag_num, dest_height, [speed], [crush], [silent]";
		NewHUPic = "texture, xpos, ypos";
		ObjAngle = "[target]";
		ObjAwaken = "[target]";
		ObjDead = "[target]";
		ObjFlag = "[target], flag_num, [set]";
		ObjHealth = "[target]";
		ObjHeight = "target, [value]";
		ObjMomx = "target, [value]";
		ObjMomy = "target, [value]";
		ObjMomz = "target, [value]";
		ObjRadius = "target, [value]";
		ObjReactionTime = "target, [duration]";
		ObjSector = "[target]";
		ObjState = "[target], state_code";
		ObjTarget = "m1, [m2]";
		ObjType = "[target]";
		ObjX = "[target]";
		ObjY = "[target]";
		ObjZ = "[target]";
		OpenDoor = "tag_num, [wait], [speed]";
		PlayDemo = "lump_name";
		Player = "[target]";
		PlayerAddFrag = "player1, [player2]";
		PlayerAmmo = "player, ammo_type, [value]";
		PlayerInGame = "player";
		PlayerKeys = "player, key_code, [givetake]";
		PlayerMsg = "player, message";
		PlayerName = "[player]";
		PlayerObj = "player";
		PlayerSelectedWeapon = "player, [weapon_code]";
		PlayerSelWep = "player, [weapon_code]";
		PlayerTip = "player, message";
		PlayerWeapon = "player, weapon_code";
		PointToAngle = "x1, y1, x2, y2";
		PointToDist = "x1, y1, x2, y2";
		Pow = "value, power";
		Print = "message";
		PRnd;
		PushObj = "target, angle, force";
		PushThing = "target, angle, force";
		RadiusAttack = "spot, source, damage";
		ReactionTime = "target, [duration]";
		RemoveObj = "target";
		Resurrect = "target";
		Return;
		Rnd;
		RunCommand = "command";
		ScriptRunning = "script_num";
		ScriptWait = "script_num";
		ScriptWaitPre = "script_num";
		SectorColormap = "tag_num, color";
		SectorType = "tag_num, [new_type]";
		SetCamera = "target, [angle], [height], [pitch]";
		SetColor = "tag_num, color", "tag_num, r, g, b";
		SetCorona = "corona_num, whattochange, float value";
		SetHUPicDisplay = "handle, visible";
		SetLineBlocking = "num_tag, blocking";
		SetLineMnBlock = "num_tag, blocking";
		SetLineMonsterBlocking = "num_tag, blocking";
		SetLineTexture = "tag, side, position, texture", "tag, texture, side, sections";
		SetLineTrigger = "tag, type";
		SetObjPosition = "target, x, [y], [z]";
		SetPicVisible = "handle, visible";
		SetWeapon = "player, weapon";
		SilentTeleport = "[target], tag";
		Sin = "value";
		SkinColor = "player, [color]";
		Spawn = "type, x, y, [angle], [z], [bool zrel]";
		SpawnExplosion = "type, x, y, [z]";
		SpawnMissile = "source, dest, type";
		SpawnShot2 = "type, source, [zofs]";
		Sqrt = "value";
		StartAmbiantSound = "name"; // Legacy can't spell
		StartScript = "script_num";
		StartSectorSound = "tag_num, sound";
		StartSkill = "skill_level";
		StartSound = "source, sound";
		StringValue = "value";
		TagWait = "tag_num";
		TakeInventory = "player, item, [amount]";
		Tan = "value";
		Teleport = "[target], tag";
		TestLocation = "[target]";
		ThingCount = "type";
		TimedTip = "duration, message";
		Tip = "message";
		Wait = "duration";
		WallGlow;
	}
}
