blankart/extras/ACS/BlanKart_ACS.cfg
2025-03-10 17:19:45 -04:00

1393 lines
55 KiB
INI

/*******************************************************************\
Doom Builder Script highlighting definitions for ACS
\*******************************************************************/
// Compiler settings
compiler = "gdcc-acc-blan";
parameters = "--error-file \"acs.err\"
--bc-zdacs-scripti-param 9
--bc-zdacs-scripts-param 9
--bc-zdacs-script-type lap 5
--bc-zdacs-script-type position 6
--bc-zdacs-script-type overtime 7
--bc-zdacs-script-type ufo 8
--bc-zdacs-script-type emerald 9
--bc-zdacs-script-type gameover 10
--bc-zdacs-script-type finish 11
--include \"%PT\" --include \"%PS\" --output %FO %FI";
resultlump = "BEHAVIOR";
// Editor settings
description = "BlanKart ACS script";
codepage = 0;
extensions = "acs";
casesensitive = false;
insertcase = 0; // 0=Normal, 1=Lowercase, 2=Uppercase
lexer = 35; // CPP-style, case-insensitive
functionopen = "(";
functionclose = ")";
codeblockopen = "{";
codeblockclose = "}";
arrayopen = "[";
arrayclose = "]";
argumentdelimiter = ",";
terminator = ";";
extrawordchars = "#"; // Extra characters to be treated as a part of a word by the Script Editor
//keywordhelp = "http://www.zdoom.org/wiki/index.php?title=%K";
snippetsdir = "acs";
scripttype = "ACS";
keywords
{
// Directives
#define = "#define [identifier] [expression]\n
Defines a preprocessor macro. Defines can be\n
used to create a constant variable which can't\n
be changed during run-time, or for automation.";
#include = "#include [file]\n
Defines a preprocessor macro. Defines can be\n
used to create a constant variable which can't\n
be changed during run-time.";
#library = "#library [name]\n
Defines this file as a library. Other files can\n
use #import to include all of this file's scripts,\n
functions, and libdefines, without needing to\n
compile it into their file.";
#import = "#import [file]\n
Adds the scripts, functions, and libdefines from\n
an ACS library. Unlike #include, libraries do not\n
get compiled directly into your file.";
#libdefine = "#libdefine [identifier] [expression]\n
Defines a preprocessor macro for a library.\n
Unlike normal defines, other files can access this value\n
if they import this file as a library.";
#encryptstrings = "#encryptstrings\n
Strings will be scrambled when compiling, so that\n
they aren't directly readable in a hex editor.";
#nocompact = "#nocompact\n
Disables compression when compiling this file.";
#region = "#region\n
Starts a collaspable text region for the Script Editor.\n
Ignored by the compiler.";
#endregion = "#endregion\n
Ends a collaspable text region. See also: #region\n
Ignored by the compiler.";
// Specials
Sector_CopyHeights = "void Sector_CopyHeights(int tag1, int tag2, int plane, [bool texture])\n
Sets the plane heights of the tagged sectors to match another sector.\n
- tag1: The sector tag to copy from. 0 copies from the activating line's front sector.\n
- tag2: The sector tag to copy to.\n
- plane: Which planes to copy; can be PLANE_FLOOR, PLANE_CEILING, or PLANE_BOTH.\n
- texture: If true, the textures will also be copied.";
Light_Copy = "void Light_Copy(int tag1, int tag2, [int flags])\n
Sets the light levels of the tagged sectors to match another sector.\n
Any existing light fade effects will be canceled.\n
- tag1: The sector tag to copy from. 0 copies from the activating line's front sector.\n
- tag2: The sector tag to copy to.\n
- flags: Behavior bit flags:\n
- LIGHT_COPY_NOSECTOR: Don't copy base light level.\n
- LIGHT_COPY_NOFLOOR: Don't copy floor lighting effects.\n
- LIGHT_COPY_NOCEILING: Don't copy ceiling lighting effects.";
Sector_CopyHeightsMove = "void Sector_CopyHeightsMove(int tag1, int tag2, int plane, int speed, [bool texture])\n
Moves the plane heights of the tagged sectors to match another sector.\n
- tag1: The sector tag to copy from. 0 copies from the activating line's front sector.\n
- tag2: The sector tag to copy to.\n
- plane: Which planes to copy; can be PLANE_FLOOR, PLANE_CEILING, or PLANE_BOTH.\n
- speed: How fast to move the planes.\n
- texture: If true, the textures will also be copied when the planes reach the destination.";
Sector_MovePlanes = "void Sector_MovePlanes(int tag, int plane, int distance, int speed, [bool instant, bool texture])\n
Moves the planes of the tagged sectors.\n
- tag: The sector tag to move.\n
- plane: Which planes to move; can be PLANE_FLOOR, PLANE_CEILING, or PLANE_BOTH.\n
- distance: How far to move the planes.\n
- speed: How fast to move the planes.\n
- instant: If true, the planes will be moved to the new position instantly.";
Sector_CopyTextures = "void Sector_CopyTextures(int tag1, int tag2, int plane)\n
Sets the textures of the tagged sectors to match another sector.\n
- tag1: The sector tag to copy from. 0 copies from the activating line's front sector.\n
- tag2: The sector tag to copy to.\n
- plane: Which planes to copy; can be PLANE_FLOOR, PLANE_CEILING, or PLANE_BOTH.";
Sector_ChangeTag = "void Sector_ChangeTag(int oldtag, int newtag, [int option])\n
Changes the tag of the tagged sectors.\n
- oldtag: The sector tag to modify.\n
- newtag: The tag to give the sector.\n
- option: Determines what to do with the tag.\n
- TAG_REPLACEFIRST: The tag replaces the first tag. The default option.\n
- TAG_ADD: Adds the tag to the tag list.\n
- TAG_REMOVE: Removes the tag from the tag list.";
Line_ChangeFrontSectorTag = "void Line_ChangeFrontSectorTag(int linetag, int newtag, [int option])\n
Changes the tag of the tagged lines' front sectors.\n
- linetag: The line tag to modify. 0 modifies the activating line.\n
- newtag: The tag to give the sector.\n
- option: Determines what to do with the tag.\n
- TAG_REPLACEFIRST: The tag replaces the first tag. The default option.\n
- TAG_ADD: Adds the tag to the tag list.\n
- TAG_REMOVE: Removes the tag from the tag list.";
Sector_StopMovement = "void Sector_StopMovement(int tag)\n
Stops the the tagged sectors' planes from moving.\n
- tag: The sector tag to stop.";
Thing_Teleport = "void Thing_Teleport(int tag, [int flags, int x, int y, int z])\n
Teleports the activating object.\n
If there was no activator, then this does nothing.\n
- tag: The tag of the teleport destination object.\n
- flags: Behavior bit flags:\n
- TELEPORT_SILENT: The teleport won't make a sound.\n
- TELEPORT_KEEPANGLE: The object will keep its angle after the teleport.\n
- TELEPORT_KEEPMOMENTUM: The object will keep its momentum after the teleport.\n
- TELEPORT_RELATIVE: Tag and all other flags are ignored, and instead the object will be translated by x, y, and z.\n
- x: X position translation when using TELEPORT_RELATIVE.\n
- y: Y position translation when using TELEPORT_RELATIVE.\n
- z: Z position translation when using TELEPORT_RELATIVE.";
PlaySFX = "void PlaySFX(str sound, [int source, int listener, int tag])\n
Plays a sound effect.\n
- sound: The name of the sound effect.\n
- source: Determines where the sound plays from:\n
- SFX_SOURCE_TRIGGERMOBJ: Plays from the activating object. Default value.\n
- SFX_SOURCE_TRIGGERSECTOR: Plays from the activating sector.\n
- SFX_SOURCE_NOWHERE: Plays the sound globally.\n
- SFX_SOURCE_TAGGEDSECTOR: Plays the sound from another tagged sector.\n
- listener: Determines who is able to hear the sound:\n
- SFX_LISTEN_EVERYONE: Can be heard by everyone. Default value.\n
- SFX_LISTEN_TRIGGERER: Can only be heard by the activator.\n
- SFX_LISTEN_TAGGEDSECTOR: Can only be heard by everyone inside of another tagged sector.\n
- tag: The sector tag used by SFX_SOURCE_TAGGEDSECTOR and/or SFX_LISTEN_TAGGEDSECTOR.";
Console_Execute = "void Console_Execute(str lump)\n
Runs a console command script.\n
- lump: The name of the console command script's lump.";
Light_Flicker = "void Light_Flicker(int tag, int length, int light1, bool usetarget, int light2)\n
Makes the light level in the tagged sectors flicker randomly, in a range between two different light levels.\n
- tag: The sector tag to flicker the lights of.\n
- length: How long between each light flicker.\n
- light1: The first light level to flicker at.\n
- usetarget: If true, the sector's existing light level will be used for the second light level.\n
- light2: The second light level to flicker at, if usetarget is false.";
Light_Glow = "void Light_Glow(int tag, int length, int light1, bool usetarget, int light2)\n
Makes the light level in the tagged sectors pulse up and down, in a range between two different light levels.\n
- tag: The sector tag to glow the lights of.\n
- speed: How fast the light level pulses.\n
- light1: The first light level to pulse at.\n
- usetarget: If true, the sector's existing light level will be used for the second light level.\n
- light2: The second light level to pulse at, if usetarget is false.";
Light_Blink = "void Light_Blink(int tag, int darktime, int brighttime, int light1, int flags, int light2)\n
Makes the light level in the tagged sectors blink, in a range between two different light levels.\n
- tag: The sector tag to glow the lights of.\n
- darktime: How long it stays at the darker of the two light levels.\n
- brighttime: How long it stays at the brighter of the two light levels.\n
- light1: The first light level to blink at.\n
- flags: Behavior bit flags:\n
- LIGHT_BLINK_USETARGET: If set, the sector's existing light level will be used for the second light level.\n
- LIGHT_BLINK_SYNC: If not set, then the blink will start at a random point for each sector.\n
- light2: The second light level to pulse at, if BLINK_USETARGET wasn't set.";
Light_Fade = "void Light_Fade(int tag, int light, int speed, [int flags])\n
Fades the light levels of the tagged sectors to a new value.\n
- tag: The sector tag to fade the lights of.\n
- light: The new light level.\n
- speed: How fast to fade the light level.\n
- flags: Behavior bit flags:\n
- LIGHT_FADE_TICBASED: Use the speed value as a duration instead.\n
- LIGHT_FADE_OVERRIDE: If another Light_Fade is running for a sector,\n
then it will be stopped and replaced with this one.\n
- LIGHT_FADE_RELATIVE: Use the light value as an offset instead of absolute.";
Light_Stop = "void Light_Stop(int tag)\n
Stops any currently running light effects in the tagged sectors.\n
- tag: The sector tag to stop the lighting effects in.";
Camera_CutAwayView = "void Camera_CutAwayView(int tag, int tics, [int follow, int waypoint, int time])\n
Changes the viewpoint of the activating player.\n
If in a titlemap, then it will always work.\n
- tag: The tag of the cut-away camera thing.\n
- tics: How long to remain on this camera. Ignored for title or podium maps.\n
- follow: The thing ID that the camera will track. Has these additional values:\n
- CAM_FOLLOW_FIRST: Follows whoever is currently in 1st place.\n
- CAM_FOLLOW_SECOND: Follows whoever is currently in 2nd place.\n
- CAM_FOLLOW_THIRD: Follows whoever is currently in 3rd place.\n
- CAM_FOLLOW_CONSOLE: Follows the first local player.\n
- waypoint: Zoom tube waypoint sequence to follow. 0 will stay in place.\n
- time: If using waypoints, this is how long the camera takes to move between each one.";
Level_SetSky = "void Level_SetSky(str texture, [bool global])\n
Changes the current sky texture.\n
- texture: The new sky texture.\n
- global: If true, then the sky texture is applied to everyone.\n
Otherwise, it is only applied to the activator.";
Level_SetWeather = "void Level_SetWeather(int id, [bool global])\n
Changes the current weather effect.\n
- id: The new weather ID.\n
- global: If true, then the weather effect is applied to everyone.\n
Otherwise, it is only applied to the activator.";
Thing_SetState = "void Thing_SetState(str state, [int tid])\n
Changes the state of the tagged objects.\n
Does not work for players.\n
- state: The name of the state.\n
- tid: The thing tag to change the state of. Leaving as 0 will use the activating thing.";
Thing_Stop = "void Thing_Stop([bool center])\n
Completely stops the activator object.\n
- center: If true, the object will be moved to\n
the center of the sector it was in.";
Player_AddScore = "void Player_AddScore(int points)\n
Gives score to the activating player.\n
- points: Number of points to give.";
Sector_PlatformMovement = "void Sector_PlatformMovement(int tag, int speed, int startdelay, int switchdelay, bool up)\n
Starts moving the tagged sectors up and down continously, between\n
the sector's two highest and lowest surrounding sectors.\n
- tag: The sector tag to start moving.\n
- speed: How fast to move the sector planes.\n
- startdelay: How long to wait before the sectors start moving.\n
- switchdelay: How long to wait before changing directions.\n
- up: If true, start moving upwards first. Otherwise, it will move down first.";
Sector_Crush = "void Sector_Crush(int tag, int plane, int speed)\n
Makes the tagged sectors' plane crush towards the other one.\n
- tag: The sector tag to start moving.\n
- plane: Which planes to crush; can be PLANE_FLOOR, PLANE_CEILING, or PLANE_BOTH.\n
- speed: How fast to crush the sector planes.";
Thing_SetFlip = "void Thing_SetFlip(bool normal)\n
Sets the gravity flip for the activating object.\n
- normal: true to set the object to normal gravity, and false for flipped gravity.";
Sector_ChangeScroll = "void Sector_ChangeScroll(int tag, int speed, int angle)\n
Changes the speed and direction of the tagged sectors.\n
Only works on sectors with scrolling already applied.\n
- tag: The sector tag to change the scrolling of.\n
- speed: Speed of the new scrolling.\n
- angle: Direction of the new scrolling.";
FOF_Shatter = "void FOF_Shatter(int sectag, int foftag)\n
Destroys the tagged FOFs within the tagged sectors.\n
- sectag: The sector tag that the FOFs are in.\n
- foftag: The FOF tag to shatter.";
Player_ToggleControl = "void Player_ToggleControl(bool enable)\n
Enables or disables the activating player's controls.\n
- enable: If true, enable the player's controls. Otherwise, disable them.";
Thing_SetScale = "void Thing_SetScale(int scale)\n
Changes the activating object's scale.\n
- scale: The new object scale, where 100 is normal scale.";
Line_CopyTextures = "void Line_CopyTextures(int tag1, int tag2, int side, [bool onlyexisting])\n
Copies the textures from a tagged line to other tagged lines.\n
- tag1: The line tag to copy the textures from.\n
- tag2: The line tag to copy the textures to.\n
- side: Which side to copy the textures to. Can be SIDE_FRONT, SIDE_BACK, or SIDE_BOTH.\n
- onlyexisting: Only copy textures if they exist on the other line.";
Level_StartMetalSonicRace = "void Level_StartMetalSonicRace(void)\n
Starts the Metal Sonic race demo.";
SetUnlockableTrigger = "void SetUnlockableTrigger(int id)\n
Activates a special unlockable trigger.\n
The behavior of each ID depends on the gamedata.\n
- id: Trigger ID, from 0 to 31.";
Sector_ChangeThingStates = "void Sector_ChangeThingStates(str type, str state, int tag, [bool nextstate])\n
Changes the states of every object in the tagged sectors by their type.\n
- type: The object type to change the states of.\n
- state: The state to set the objects to.\n
- tag: The sector tag to search for objects in.\n
- nextstate: If true, then state is ignored, and every object will be\n
set to their next state instead.";
Lua_Execute = "void Lua_Execute(str name, [int args, ...])\n
Calls a Lua function via the 'SpecialExecute' hook.\n
- name: The function name, given to SpecialExecute.\n
- args: Up to 10 arguments can be provided to the Lua hook.";
Earthquake = "void Earthquake(int time, [int intensity, int radius])\n
Starts a screen shake effect.\n
- time: How long the shaking lasts.\n
- intensity: The strength of the shaking.\n
- radius: Currently unused.";
FOF_SetExists = "void FOF_SetExists(int sectag, int foftag, bool exists)\n
Makes the tagged FOFs within the tagged sectors disappear or reappear.\n
- sectag: The sector tag that the FOFs are in.\n
- foftag: The FOF tag to shatter.\n
- exists: true to make it exist, false to remove it.";
FOF_Crumble = "void FOF_Crumble(int sectag, int foftag, [int flags])\n
Makes the tagged FOFs within the tagged sectors fall down and collaspe.\n
- sectag: The sector tag that the FOFs are in.\n
- foftag: The FOF tag to shatter.\n
- flags: Behavior bit flags:\n
- CRUMBLE_NORETURN: Prevents the FOF from respawning after some time.\n
- CRUMBLE_CHECKFLAG: Uses the FOF's flags to determine respawning.\n
Inverts against CRUMBLE_NORETURN.";
Sector_SetColormap = "void Sector_SetColormap(int tag1, int tag2, [int flags])\n
Sets the colormap of the tagged sectors, based on the colormap from another sector.\n
- tag1: The sector tag to replace the colormap of.\n
- tag2: The sector tag to copy the colormap from.\n
- flags: Behavior bit flags:\n
- COLORMAP_RELATIVE: Combines the two colormaps together.\n
- COLORMAP_SUBLIGHT[R/G/B/A]: Subtracts the R/G/B/A component to the copied colormap instead of adding. Requires COLORMAP_RELATIVE.\n
- COLORMAP_SUBFADE[R/G/B/A]: Subtracts the R/G/B/A component to the new colormap instead of adding. Requires COLORMAP_RELATIVE.\n
- COLORMAP_SUBFADE[START/END]: Subtracts the fade start/end points instead of adding. Requires COLORMAP_RELATIVE.\n
- COLORMAP_IGNOREFLAGS: Don't copy over the colormap flags. Requires COLORMAP_RELATIVE.";
Level_SetSkyboxViewpoints = "void Level_SetSkyboxViewpoints(int view, int center, int which, [bool global])\n
Changes the current skybox.\n
- view: New skybox viewpoint ID.\n
- center: New skybox centerpoint ID.\n
- which: Determines which viewpoints to modify. Options are:\n
- SKYBOX_VIEWPOINT: Use the new view.\n
- SKYBOX_CENTERPOINT: Use the new center.\n
- SKYBOX_BOTH: Use both view and center.\n
- global: If true, then the skybox is applied to everyone.\n
Otherwise, it is only applied to the activator.";
Level_SetBossDisabled = "void Level_SetBossDisabled(int id, bool disable)\n
Disables / enables a boss's thinker.\n
- id: The object's boss ID.\n
- disable: true to turn the boss off, otherwise true.";
Line_Execute = "void Line_Execute(int tag)\n
Activates a line executor by its tag.\n
- tag: The tag of the line executor.";
Line_ExecuteRandom = "void Line_ExecuteRandom(int low, int high)\n
Activates a random line executor within a range.\n
- low: The lowest tag in the range.\n
- high: The highest tag in the range.";
FOF_SetAlpha = "void FOF_SetAlpha(int sectag, int foftag, int alpha, [int flags])\n
Sets the alpha of the tagged FOFs within the tagged sectors.\n
- sectag: The sector tag that the FOFs are in.\n
- foftag: The FOF tag to set the alpha of.\n
- alpha: The new translucency value of the FOF.\n
- flags: Behavior bit flags:\n
- ALPHA_SET_RELATIVE: Uses alpha as an offset instead of absolute.\n
- ALPHA_SET_DONTDOTRANSLUCENT: Don't modify the FOF's visibility flags.";
FOF_Fade = "void FOF_Fade(int sectag, int foftag, int alpha, int speed, [int flags])\n
Fades the alpha of the tagged FOFs within the tagged sectors over time.\n
- sectag: The sector tag that the FOFs are in.\n
- foftag: The FOF tag to fade.\n
- alpha: The new translucency value of the FOF.\n
- speed: How fast to fade the FOF.\n
- flags: Behavior bit flags:\n
- ALPHA_FADE_RELATIVE: Uses alpha as an offset instead of absolute.\n
- ALPHA_FADE_OVERRIDE: If another FOF_Fade is running for an FOF,\n
then it will be stopped and replaced with this one.\n
- ALPHA_FADE_TICBASED: Use the speed value as a duration instead.\n
- ALPHA_FADE_IGNORECOLLISION: Don't change the FOF's solidity flags\n
whenever it appears or disappears.\n
- ALPHA_FADE_GHOSTFADE: No collision when it's fading.\n
- ALPHA_FADE_DONTDOTRANSLUCENT: Don't modify the FOF's visibility flags.\n
- ALPHA_FADE_DONTDOEXISTS: Don't modify the FOF's existance flags.\n
- ALPHA_FADE_DONTDOLIGHTING: Don't modify the FOF's lighting.\n
- ALPHA_FADE_DONTDOCOLORMAP: Don't modify the FOF's colormap.\n
- ALPHA_FADE_USEEXACTALPHA: Use precise alpha in OpenGL.";
FOF_StopFade = "void FOF_StopFade(int sectag, int foftag, [bool dontfinalize])\n
Stops the tagged FOFs within the tagged sectors from fading.\n
- sectag: The sector tag that the FOFs are in.\n
- foftag: The FOF tag to stop fading.\n
- dontfinalize: Keep the FOF's collision flags as they are.";
Sector_FadeColormap = "void Sector_FadeColormap(int tag1, int tag2, int duration, [int flags])\n
Fades the colormap of the tagged sectors over time, based on the colormap from another sector.\n
- tag1: The sector tag to replace the colormap of.\n
- tag2: The sector tag to copy the colormap from.\n
- duration: How long to fade the colormap for.
- flags: Behavior bit flags:\n
- COLORMAP_FROMBLACK: Fade the colormap from black.\n
- COLORMAP_OVERRIDE: If another Sector_FadeColormap is running for a sector,\n
then it will be stopped and replaced with this one.\n
- COLORMAP_RELATIVE: Combines the two colormaps together.\n
- COLORMAP_SUBLIGHT[R/G/B/A]: Subtracts the R/G/B/A component to the copied colormap instead of adding. Requires COLORMAP_RELATIVE.\n
- COLORMAP_SUBFADE[R/G/B/A]: Subtracts the R/G/B/A component to the new colormap instead of adding. Requires COLORMAP_RELATIVE.\n
- COLORMAP_SUBFADE[START/END]: Subtracts the fade start/end points instead of adding. Requires COLORMAP_RELATIVE.\n
- COLORMAP_IGNOREFLAGS: Don't copy over the colormap flags. Requires COLORMAP_RELATIVE.";
Sector_StopColormapFade = "void Sector_FadeColormap(int tag)\n
Stops colormap fading in the tagged sectors.\n
- tag: The sector tag to stop colormap fades in.";
Thing_StartTracking = "void Thing_StartTracking(int tag, int angle, int leniency, int failure, bool persist)\n
Start tracking if the activating object's angle is facing towards an anchor point object.\n
- tag: The tag of the angle manager thing.\n
- angle: Angle difference to consider failing.\n
- leniency: How many tics in a row failing before activating failure.\n
- failure: Line tag to execute upon failure.\n
- persist: If true, then tracking doesn't stop automatically on failure.";
Thing_StopTracking = "void Thing_StopTracking(void)\n
Stops the tracking effect started by Thing_StartTracking.";
Player_AddRings = "void Player_AddRings(int rings, [int frequency, bool overload])\n
Gives rings to the activating player.\n
- rings: How many rings to add to the player.\n
- frequency: How often this can give rings, if continously called.\n
- overload: If true, then give rings to players with full rings.";
Thing_Spawn = "void Thing_Spawn(str type, int x, int y, int z, int angle, [bool random, int rx, int ry, int rz])\n
Creates a new object at an arbritrary position and angle.\n
- type: The type of the new object.\n
- x: The X spawn coordinate. If using random, this should be the low X.\n
- y: The Y spawn coordinate. If using random, this should be the low Y.\n
- z: The Z spawn coordinate. If using random, this should be the low Z.\n
- angle: The angle to give the object on spawn.\n
- random: Randomize the spawn position, using the following coordinates:\n
- rx: The high X spawn coordinate, if using random.\n
- ry: The high Y spawn coordinate, if using random.\n
- rz: The high Z spawn coordinate, if using random.";
Level_StopClock = "void Level_StopClock(void)\n
Stops the in-game timer. If playing Time Attack, then\n
the level will also end immediately.";
Thing_Dye = "void Thing_Dye(str color)\n
Colorizes the activating object.\n
- color: The color to give the object.\n
A blank string will remove the dye effect.";
Level_TriggerEggCapsule = "void Level_TriggerEggCapsule(int tag, [bool dontexit])\n
Spawns flickies from the Egg Capsule center object, and\n
(optionally) ends the level.\n
- tag: The tag of the Egg Capsule center object.\n
- dontexit: If true, then the level won't end.";
Level_SetFailed = "void Level_SetFailed(bool success)\n
Set whenever or not the level was failed.\n
- success: If false, the level has been failed.";
Sector_SetLight = "void Sector_SetLight(int tag, int light, [int area, bool relative])\n
Sets the light level of the tagged sectors.\n
- tag: The sector tag to modify.\n
- light: The new light level to give the sectors.\n
- area: Which light level to edit. Can be either LIGHT_AREA_SECTOR, LIGHT_AREA_FLOOR, or LIGHT_AREA_CEILING.\n
- relative: If true, then light is used as an offset instead of absolute.";
Line_SetArg = "void Line_SetArg(int tag, int which, int value, [bool relative])\n
Sets an argument of the tagged lines.\n
- tag: The line tag to modify.\n
- which: Which line argument to change, from 0 to 9.\n
- value: The new value to give the argument.\n
- relative: If true, then value is used as an offset instead of absolute.";
Sector_SetGravity = "void Sector_SetGravity(str gravity, int tag, [bool multiply, int flip])\n
Changes the gravity tagged sectors.\n
- gravity: The new gravity, given as a string.\n
- tag: The sector tag to modify.\n
- multiply: If true, then gravity is used as a multiplier of the level's gravity.\n
- flip: Change gravity flip of this sector. Can be either FLAG_NOCHANGE, FLAG_ADD, or FLAG_REMOVE.";
Polyobj_DoorSlide = "void Polyobj_DoorSlide(int po, int speed, int angle, int distance, int delay)\n
Slides a PolyObject, waits, and then moves it back.\n
- po: The PolyObject's ID.\n
- speed: How fast to move the PolyObject.\n
- angle: The direction to move the PolyObject.\n
- distance: How far the PolyObject moves.\n
- delay: How long to wait before the PolyObject moves back.";
Polyobj_DoorSwing = "void Polyobj_DoorSwing(int po, int speed, int distance, int delay)\n
Rotates a PolyObject, waits, and then rotates it back.\n
- po: The PolyObject's ID.\n
- speed: How fast to rotate the PolyObject.\n
- distance: How far the PolyObject rotates.\n
- delay: How long to wait before the PolyObject rotates back.";
Polyobj_Move = "void Polyobj_Move(int po, int speed, int angle, int distance, [bool override])\n
Moves a PolyObject in an arbritrary direction.\n
- po: The PolyObject's ID.\n
- speed: How fast to move the PolyObject.\n
- angle: The direction to move the PolyObject.\n
- distance: How far the PolyObject moves.\n
- override: If true, stop the PolyObject's current action to ensure this activates.";
Polyobj_Rotate = "void Polyobj_Rotate(int po, int speed, int angle, [int flags])\n
Moves a PolyObject in an arbritrary direction.\n
- po: The PolyObject's ID.\n
- speed: How fast to rotate the PolyObject.\n
- angle: How far the PolyObject rotates.\n
- flags: Behavior bit flags:\n
- PO_ROTATE_DONTROTATEOTHERS: Doesn't rotate regular objects.\n
- PO_ROTATE_DONTROTATEPLAYERS: Doesn't rotate players.\n
- PO_ROTATE_CONTINUOUS: Never stops rotating.\n
- PO_ROTATE_OVERRIDE: If true, stop the PolyObject's current action to ensure this activates.";
Polyobj_MoveByWaypoints = "void Polyobj_MoveByWaypoints(int po, int speed, int sequence, [int return, int flags])\n
Makes a PolyObject follow Zoom Tube Waypoint objects.\n
- po: The PolyObject's ID.\n
- speed: How fast to move the PolyObject.\n
- sequence: The Zoom Tube Waypoint sequence the PolyObject should follow.\n
- return: Determines behavior when it reaches the end of the sequence:\n
- PO_WP_RETURN_STOP: Stop entirely.\n
- PO_WP_RETURN_WRAP: Go to the first waypoint and do it again.\n
- PO_WP_RETURN_COMEBACK: Go backwards until reaching the first waypoint again.\n
- flags: Behavior bit flags:\n
- PO_WP_REVERSE: Go through the waypoints in reverse order.\n
- PO_WP_LOOP: Loop the movement instead of stopping when it's done.";
Polyobj_SetVisibilityTangibility = "void Polyobj_SetVisibilityTangibility(int po, int visibility, int tangibility)\n
Makes a PolyObject follow Zoom Tube Waypoint objects.\n
- po: The PolyObject's ID.\n
- visibility: Sets visibility. Can be either FLAG_NOCHANGE, FLAG_ADD, or FLAG_REMOVE.\n
- tangibility: Sets tangibility. Can be either FLAG_NOCHANGE, FLAG_ADD, or FLAG_REMOVE.";
Polyobj_SetAlpha = "void Polyobj_SetAlpha(int po, int alpha, [bool relative])\n
Makes a PolyObject follow Zoom Tube Waypoint objects.\n
- po: The PolyObject's ID.\n
- alpha: The new translucency of the PolyObject.\n
- relative: If true, use alpha as an offset instead of absolute.";
Polyobj_FadeAlpha = "void Polyobj_FadeAlpha(int po, int alpha, int speed, [int flags])\n
Makes a PolyObject follow Zoom Tube Waypoint objects.\n
- po: The PolyObject's ID.\n
- alpha: The new translucency of the PolyObject.\n
- speed: How fast to fade the translucency.\n
- flags: Behavior bit flags:\n
- PO_FADE_RELATIVE: Uses alpha as an offset instead of absolute.\n
- PO_FADE_OVERRIDE: Stop the PolyObject's current action to ensure this activates.\n
- PO_FADE_TICBASED: Use the speed value as a duration instead.\n
- PO_FADE_IGNORECOLLISION: Don't change the PolyObject's solidity flags\n
whenever it appears or disappears.\n
- PO_FADE_GHOSTFADE: No collision when it's fading.";
Sector_ToggleWaypoints = "void Sector_ToggleWaypoints(int tag, bool enable)\n
Enables / disables the waypoints in the tagged sectors.\n
- tag: The sector tag to search for waypoints in.\n
- enable: If true, enable the waypoints. Otherwise, disable the waypoints.";
// Functions
Delay = "void Delay(int tics)\n
Pauses the current script.\n
Does not work in functions.\n
- tics: How long to pause the script for, where TICRATE is one second.";
TagWait = "void TagWait(int tag)\n
Pauses the current script until the tagged sectors finish moving.\n
Does not work in functions.\n
- tag: The sector tag to wait for.";
PolyWait = "void PolyWait(int polyID)\n
Pauses the current script until a PolyObject finishes moving.\n
Does not work in functions.\n
- polyID: The PolyObject ID to wait for.";
CameraWait = "void CameraWait(int tag)\n
Pauses the current script until the tagged camera thing is done moving through waypoints.\n
Does not work in functions.\n
- tag: The camera thing tag to wait for.";
ScriptWait = "void ScriptWait(str script)\n
Pauses the current script until another script is finished running.\n
Does not work in functions.\n
- script: The name of the script to wait for.";
ACS_Execute = "void ACS_Execute(str script, [int args, ...])\n
Run another script. If that script is running and has not finished, it will not be run again.\n
- script: The name of the script to run.\n
- args: Up to 10 arguments can be provided to the script.";
ACS_ExecuteAlways = "void ACS_ExecuteAlways(str script, [int args, ...])\n
Run another script. Unlike ACS_Execute, multiple copies of the script can be run,\n
but in return ACS_Suspend and ACS_Terminate cannot be used on it.\n
- script: The name of the script to run.\n
- args: Up to 10 arguments can be provided to the script.";
ACS_ExecuteWait = "void ACS_ExecuteWait(str script, [int args, ...])\n
Run another script, and then pause the current script until it has finished running.\n
- script: The name of the script to run.\n
- args: Up to 10 arguments can be provided to the script.";
ACS_ExecuteWithResult = "int ACS_ExecuteWithResult(str script, [int args, ...])\n
Run another script, and then returns its special result value.\n
The special result value can be set by the script if it uses SetResultValue().\n
- script: The name of the script to run.\n
- args: Up to 10 arguments can be provided to the script.";
ACS_Suspend = "void ACS_Suspend(str script)\n
Pauses another script. It can be resumed by executing the same script again.\n
- script: The name of the script to pause.";
ACS_Terminate = "void ACS_Terminate(str script)\n
Ends another script early.\n
- script: The name of the script to stop.";
Random = "int Random(int min, int max)\n
Generates a random number within a range.\n
- min: The minimum value of the range.\n
- max: The maximum value of the range.";
ThingCount = "int ThingCount(str type, [int thingTag, int sectorTag])\n
Returns the number of objects of the specified type in the map.\n
- type: The name of object type.\n
- thingTag: The tag of the objects to count. If 0, then it counts any objects.\n
- sectorTag: The sector tag to search in. If 0, then it counts objects from the entire map.";
ChangeFloor = "void ChangeFloor(int tag, str texture)\n
Changes the floor texture of the tagged sectors.\n
- tag: The sector tag to modify.\n
- texture: The new floor texture.";
ChangeCeiling = "void ChangeCeiling(int tag, str texture)\n
Changes the ceiling texture of the tagged sectors.\n
- tag: The sector tag to modify.\n
- texture: The new ceiling texture.";
LineSide = "bool LineSide(void)\n
Returns either SIDE_FRONT or SIDE_BACK depending on the\n
side of the line that activated the script.\n
Always returns SIDE_FRONT if a line didn't activate the script.";
ClearLineSpecial = "void ClearLineSpecial(void)\n
Sets the activating line's special to 0, for one-time effects.\n
Does nothing if a line didn't activate the script.";
PlayerCount = "int PlayerCount(void)\n
Returns the number of players currently playing.";
GameType = "int GameType(void)\n
Returns the current gametype's ID.";
GameSpeed = "int GameSpeed(void)\n
Returns the current game speed.";
Timer = "int Timer(void)\n
Returns the number of tics elapsed since the level started.";
SectorSound = "void SectorSound(str sound, int volume)\n
Plays a sound effect in the activating sector.\n
- sound: The name of the sound effect.\n
- volume: The volume to play it at, from 0 to 255.";
AmbientSound = "void AmbientSound(str sound, int volume)\n
Plays a sound effect globally.\n
- sound: The name of the sound effect.\n
- volume: The volume to play it at, from 0 to 255.";
SetLineTexture = "void SetLineTexture(int tag, bool side, int part, str texture)\n
Changes a texture for the tagged lines.\n
- tag: The line tag to modify.\n
- side: The line side to modify. Can be either SIDE_FRONT or SIDE_BACK.\n
- part: The line texture part to modify. Can be either TEXTURE_TOP, TEXTURE_MIDDLE, or TEXTURE_BOTTOM.\n
- texture: The name of the texture to set.";
SetLineSpecial = "void SetLineSpecial(int tag, int special, [int args, ...])\n
Changes the special and arguments for the tagged lines.\n
- tag: The line tag to modify.\n
- special: The special function to use.\n
- args: Up to 10 arguments can be provided. Any args not provided will be set to 0.";
ThingSound = "void ThingSound(int tag, str sound, int volume)\n
Plays a sound effect on the tagged objects.\n
- tag: The tag of the object to play the sound for.\n
- sound: The name of the sound effect.\n
- volume: The volume to play it at, from 0 to 255.";
IsNetworkGame = "bool IsNetworkGame(void)\n
Returns whether the current session is a netgame.";
PlayerTeam = "int PlayerTeam(void)\n
Returns the activating player's team ID.\n
Returns 0 if there was no activating player.";
PlayerRings = "int PlayerRings(void)\n
Returns the activating player's ring count.\n
Returns 0 if there was no activating player.";
PlayerScore = "int PlayerScore(void)\n
Returns the activating player's score for the current round.\n
Returns 0 if there was no activating player.";
CountEnemies = "int CountEnemies([int sectorTag, int thingTag])\n
Counts the number of enemies within the tagged sectors.\n
- sectorTag: The sector tag to search in. 0 to use the activating sector.\n
- thingTag: The thing tag to search for. 0 to allow any tag.";
CountPushables = "int CountPushables([int sectorTag, int thingTag])\n
Counts the number of pushable objects within the tagged sectors.\n
- sectorTag: The sector tag to search in. 0 to use the activating sector.\n
- thingTag: The thing tag to search for. 0 to allow any tag.";
HaveUnlockableTrigger = "bool HaveUnlockableTrigger(int id)\n
Returns true if the specified special unlockable trigger has been activated.\n
- id: ID of the unlockable trigger, from 0 to 31.";
HaveUnlockable = "bool HaveUnlockableTrigger(int id)\n
Returns true if the server host has unlocked the specified unlockable.\n
- id: ID of the unlockable, from 0 to 255.";
PlayerSkin = "str PlayerSkin(void)\n
Returns the activating player's skin, as a string.\n
Returns a blank string if there was no activating player.";
GetObjectDye = "str GetObjectDye(void)\n
Returns the activating object's dye color, as a string.\n
Returns a blank string if there was no activating object.";
PlayerEmeralds = "int PlayerEmeralds(void)\n
Returns how many Chaos Emeralds the activating player has.\n
Returns 0 if there was no activating player.";
PlayerLap = "int PlayerLap(void)\n
Returns which lap the activating player is on.\n
Returns 0 if there was no activating player.";
LowestLap = "int LowestLap(void)\n
Returns the lap that the farthest behind player is on.";
EncoreMode = "bool EncoreMode(void)\n
Returns true if the current map is being played in Encore mode.";
PrisonBreak = "bool PrisonBreak(void)\n
Returns true if the current map is being played in Prison Break mode.";
TimeAttack = "bool TimeAttack(void)\n
Returns true if the current map is being played in a Time Attack session.";
GrandPrix = "bool GrandPrix(void)\n
Returns true if the current map is being played in a Grand Prix session.";
GetGrabbedSprayCan = "str GetGrabbedSprayCan(void)\n
Returns the current map's grabbed Spray Can color, as a string.\n
Returns a blank string in netgames, or if no Spray Can has been grabbed for this map.\n
Returns \"_Completed\" if no Spray Can has been grabbed, and it's impossible to do so.";
PlayerBot = "bool PlayerBot(void)\n
Returns the activating player's bot status.\n
Returns false if there was no activating player.";
PlayerLosing = "bool PlayerLosing(void)\n
Returns whether the activating player is losing.";
PlayerExiting = "bool PlayerExiting(void)\n
Returns whether the activating player is ready to exit the round.";
PositionStart = "bool PositionStart(void)\n
Returns true if POSITION!! is active.";
FreePlay = "bool FreePlay(void)\n
Returns true if the current map is being played in Free Play.";
CheckTutorialChallenge = "str CheckTutorialChallenge(void)\n
Returns the status of the tutorial challenge, as a string.\n
Returns a blank string in netgames, or if none of the following are true.\n
Returns \"Active\" if the skip is in progress.\n
Returns \"Failed\" if the skip was just failed.\n
Returns \"Locked\" if not available with this gamedata.";
PodiumPosition = "int PodiumPosition(void)\n
Returns the best position of all non-CPU players.\n
Intended for branching camera movement in podium maps.";
SetLineRenderStyle = "void SetLineRenderStyle(int tag, int blend, fixed alpha)\n
Changes the rendering of the tagged linedefs' middle textures.\n
- tag: The linedef tag to change.\n
- blend: The blend mode to use. Possible values are:\n
- BLEND_TRANSLUCENT: Regular translucency.\n
- BLEND_ADD: Additive blending.\n
- BLEND_SUBTRACT: Subtractive blending.\n
- BLEND_REVERSESUBTRACT: Reversed subtractive blending.\n
- BLEND_MODULATE: Multiplicative blending.\n
- alpha: The new alpha value, as a fixed point value between 0.0 and 1.0.";
MapWarp = "void MapWarp(str mapname, bool showintermission)\n
Immediately warps to the specified level.\n
- mapname: The internal name of the level. Some special names exist (remember to quote these!):\n
- NEXTMAP_EVALUATION: Go to the post credits scene.\n
- NEXTMAP_CREDITS: Go to the credits.\n
- NEXTMAP_CEREMONY: Go to the Podium.\n
- NEXTMAP_TITLE: Go to the title screen.\n
- showintermission: Whether to include an intermission.";
AddBot = "int AddBot([str skin, int difficulty, int style])\n
Adds a bot to the current level. Returns the player slot said bot takes up, or -1 if there wasn't room to add them.\n
- skin: The name of the skin to give the bot. If omitted, or the skin doesn't exist, it will default to Eggrobo.\n
- difficulty: Difficulty level, from a range of 1 to MAXBOTDIFFICULTY. Doesn't matter for some bot styles.\n
- style: The bot style mode to use. Possible values are:\n
- BOT_STYLE_NORMAL: Default behavior. Works however the gametype has its bots programmed.\n
- BOT_STYLE_STAY: Bot does nothing.";
PlayerNumber = "int PlayerNumber(void)\n
Returns the player ID of the activator, starting from 0.\n
If the script was activated by a non-player, then this returns -1.";
ActivatorTID = "int ActivatorTID(void)\n
Returns the thing tag of the activator.";
StopLevelExit = "void StopLevelExit(void)\n
Halts the level exit if it's happening. Can be called from a GAMEOVER script.";
ExitLevel = "void ExitLevel([bool showintermission])\n
Ends the level.
- showintermission: Whether to show the results screen. If omitted, use the default behavior.";
Music_Play = "void Music_Play(str song, [bool onlyforactivator])\n
Play a song. If it's already playing, restarting from the beginning.\n
- song: The name of the song lump, without 'O_' at the beginning and without a file extension.\n
- onlyforactivator: Only play the song for the activator (if activator is a player).";
Music_StopAll = "void Music_StopAll([bool onlyforactivator])\n
Stop the music that is currently playing.\n
- onlyforactivator: Only stop for the activator (if activator is a player).";
Music_Remap = "void Music_Remap(str song, [bool onlyforactivator])\n
Change the song thats playing while keeping its position.\n
- song: The name of the song lump, without 'O_' at the beginning and without a file extension.\n
- onlyforactivator: Only remap for the activator (if activator is a player).";
Music_Dim = "void Music_Dim(int fade, [int duration])\n
Fade level music into or out of silence.\n
- fade: Time (tics) to fade between full volume and silence.\n
- duration: Silent duration (tics) (not including fade in and fade out), -1 = infinite (default if omitted).";
FinishLine = "void FinishLine([bool flip])\n
Increments the current lap of the activating player, like when crossing the finish line.\n
If called from an activating line and from the wrong side, then it will decrement a lap instead.\n
- flip: Switches the side required for lap increment and decrement.";
RespawnLine = "void RespawnLine([bool frontonly])\n
Respawns the activating player immediately.\n
- frontonly: If set to true, and if activated from a line, then it will only respawn from the front side.";
UpdateBotController = "void UpdateBotController(int tag, int trick, int flags, [int forcedir])\n
Override bot behavior in the tagged sectors.\n
- tag: Sector tag to modify.\n
- trick: Make bots trick when entering this sector. Possible values are:\n
- BOT_CONTROLLER_TRICK_NONE: Bots won't trick. Default behavior.\n
- BOT_CONTROLLER_TRICK_LEFT: Bots does a left trick.\n
- BOT_CONTROLLER_TRICK_RIGHT: Bots does a right trick.\n
- BOT_CONTROLLER_TRICK_UP: Bots does an up trick.\n
- BOT_CONTROLLER_TRICK_DOWN: Bots does a down trick.\n
- flags: Behavior bit flags:\n
- BOT_CONTROLLER_NORUBBERBAND: Bots will be at their base speed.\n
- BOT_CONTROLLER_NOCONTROL: Bots will stop moving entirely.\n
- BOT_CONTROLLER_FORCEDIR: Bots will drive in an exact angle, set by 'forcedir'.\n
- BOT_CONTROLLER_FASTFALL: Bots will try to fastfall when they're in the air.\n
- forcedir: Force the bots to drive in an exact angle. Requires BOT_CONTROLLER_FORCEDIR to be set.";
GetLineProperty = "any GetLineProperty(int tag, int property)\n
Gets the value of a line property directly.\n
- tag: The line tag to retrieve the property from. 0 uses the activating line, if it exists.\n
- property: Which property to retrieve.";
SetLineProperty = "void SetLineProperty(int tag, int property, any value)\n
Sets the value of all of the tagged lines' properties directly.\n
- tag: The line tag to change the properties of. 0 uses the activating line, if it exists.\n
- property: Which property to change.\n
- value: The property's new value.";
GetLineUserProperty = "any GetLineUserProperty(int tag, str property)\n
Gets the value of a line's custom user_ prefixed property.\n
- tag: The line tag to retrieve the property from. 0 uses the activating line, if it exists.\n
- property: Custom property name, excluding the user_ prefix.";
GetSideProperty = "any GetSideProperty(int tag, bool side, int property)\n
Gets the value of a line side's property directly.\n
- tag: The line tag to retrieve the property from. 0 uses the activating line, if it exists.\n
- side: Which side to retrieve the property from, either SIDE_FRONT or SIDE_BACK.\n
- property: Which property to retrieve.";
SetSideProperty = "void SetSideProperty(int tag, bool side, int property, any value)\n
Sets the value of all of the tagged lines' sides' properties directly.\n
- tag: The line tag to change the side of. 0 uses the activating line, if it exists.\n
- side: Which side to change the property of, either SIDE_FRONT or SIDE_BACK.\n
- property: Which property to change.\n
- value: The property's new value.";
GetSideUserProperty = "any GetSideUserProperty(int tag, bool side, str property)\n
Gets the value of a line side's custom user_ prefixed property.\n
- tag: The line tag to retrieve the property from. 0 uses the activating line, if it exists.\n
- side: Which side to change the property of, either SIDE_FRONT or SIDE_BACK.\n
- property: Custom property name, excluding the user_ prefix.";
GetSectorUserProperty = "any GetSectorUserProperty(int tag, str property)\n
Gets the value of a sector's custom user_ prefixed property.\n
- tag: The sector tag to retrieve the property from. 0 uses the activating sector, if it exists.\n
- property: Custom property name, excluding the user_ prefix.";
GetSectorProperty = "any GetSectorProperty(int tag, int property)\n
Gets the value of a sector property directly.\n
- tag: The sector tag to retrieve the property from. 0 uses the activating sector, if it exists.\n
- property: Which property to retrieve.";
SetSectorProperty = "void SetSectorProperty(int tag, int property, any value)\n
Sets the value of all of the tagged sectors' properties directly.\n
- tag: The sector tag to change the properties of. 0 uses the activating sector, if it exists.\n
- property: Which property to change.\n
- value: The property's new value.";
GetThingProperty = "any GetThingProperty(int tag, int property)\n
Gets the value of a thing property directly.\n
- tag: The thing tag to retrieve the property from. 0 uses the activating thing, if it exists.\n
- property: Which property to retrieve.";
SetThingProperty = "void SetThingProperty(int tag, int property, any value)\n
Sets the value of all of the tagged things' properties directly.\n
- tag: The thing tag to change the properties of. 0 uses the activating thing, if it exists.\n
- property: Which property to change.\n
- value: The property's new value.";
GetThingUserProperty = "any GetThingUserProperty(int tag, str property)\n
Gets the value of a thing's custom user_ prefixed property.\n
- tag: The sector tag to retrieve the property from. 0 uses the activating thing, if it exists.\n
- property: Custom property name, excluding the user_ prefix.";
Print = "void Print(<type>:<expression>, [...])\n
Displays a message to the center of the screen.\n
Expression types are as follows:\n
- i or d: Prints an integer as decimal (i:64)\n
- x: Prints an integer as hexadecimal (x:0x40)\n
- b: Prints an integer as binary (b:1)\n
- f: Prints an integer as fixed point (f:1.0)\n
- s: Prints a string (s:\"This is a string\")\n
- c: Prints a character (c:'A')\n
This will only display for the activator of the script.\n
For printing to all players, use PrintBold.";
PrintBold = "void PrintBold([type]:[expression], [...])\n
Displays a message to the center of the screen.\n
Expression types are as follows:\n
- i or d: Prints an integer as decimal (i:64)\n
- x: Prints an integer as hexadecimal (x:0x40)\n
- b: Prints an integer as binary (b:1)\n
- f: Prints an integer as fixed point (f:1.0)\n
- s: Prints a string (s:\"This is a string\")\n
- c: Prints a character (c:'A')\n
This will display for all players in the game.\n
For printing to only the activator, use Print.";
Log = "void Log([type]:[expression], [...])\n
Displays a message in the console.\n
Expression types are as follows:\n
- i or d: Prints an integer as decimal (i:64)\n
- x: Prints an integer as hexadecimal (x:0x40)\n
- b: Prints an integer as binary (b:1)\n
- f: Prints an integer as fixed point (f:1.0)\n
- s: Prints a string (s:\"This is a string\")\n
- c: Prints a character (c:'A')";
strcmp = "int strcmp(str a, str b)\n
Compares two strings; returns 0 if they are the same string.\n
Case-sensitive.";
stricmp = "int stricmp(str a, str b)\n
Compares two strings; returns 0 if they are the same string.\n
Case-insensitive.";
strcasecmp = "int strcasecmp(str a, str b)\n
Compares two strings; returns 0 if they are the same string.\n
Case-insensitive.";
}
properties
{
// Keywords
if;
else;
for;
do;
while;
until;
break;
continue;
switch;
case;
default;
const;
function;
script;
return;
restart;
suspend;
terminate;
world;
global;
special;
// Types
void;
bool;
int;
str;
fixed;
// Script modifiers
OPEN;
ENTER;
RESPAWN;
DEATH;
LAP;
POSITION;
OVERTIME;
UFO;
EMERALD;
GAMEOVER;
FINISH;
}
constants
{
TRUE;
FALSE;
ON;
OFF;
YES;
NO;
FLAG_NOCHANGE;
FLAG_ADD;
FLAG_REMOVE;
PLANE_FLOOR;
PLANE_CEILING;
PLANE_BOTH;
SIDE_FRONT;
SIDE_BACK;
SIDE_BOTH;
TEXTURE_TOP;
TEXTURE_MIDDLE;
TEXTURE_BOTTOM;
TAG_REPLACEFIRST;
TAG_ADD;
TAG_REMOVE;
LIGHT_COPY_NOSECTOR;
LIGHT_COPY_NOFLOOR;
LIGHT_COPY_NOCEILING;
LIGHT_BLINK_USETARGET;
LIGHT_BLINK_SYNC;
LIGHT_FADE_TICBASED;
LIGHT_FADE_OVERRIDE;
LIGHT_FADE_RELATIVE;
LIGHT_AREA_SECTOR;
LIGHT_AREA_FLOOR;
LIGHT_AREA_CEILING;
TELEPORT_SILENT;
TELEPORT_KEEPANGLE;
TELEPORT_KEEPMOMENTUM;
TELEPORT_RELATIVE;
MUSIC_ALLPLAYERS;
MUSIC_NOLOOP;
MUSIC_NOCREDIT;
MUSIC_NORELOAD;
MUSIC_FORCERESET;
MUSIC_OFFSET;
MUSIC_FADE;
SFX_SOURCE_TRIGGERMOBJ;
SFX_SOURCE_TRIGGERSECTOR;
SFX_SOURCE_NOWHERE;
SFX_SOURCE_TAGGEDSECTOR;
SFX_LISTEN_EVERYONE;
SFX_LISTEN_TRIGGERER;
SFX_LISTEN_TAGGEDSECTOR;
CRUMBLE_NORETURN;
CRUMBLE_CHECKFLAG;
COLORMAP_RELATIVE;
COLORMAP_SUBLIGHTR;
COLORMAP_SUBLIGHTG;
COLORMAP_SUBLIGHTB;
COLORMAP_SUBLIGHTA;
COLORMAP_SUBFADER;
COLORMAP_SUBFADEG;
COLORMAP_SUBFADEB;
COLORMAP_SUBFADEA;
COLORMAP_SUBFADESTART;
COLORMAP_SUBFADEEND;
COLORMAP_IGNOREFLAGS;
COLORMAP_FROMBLACK;
COLORMAP_OVERRIDE;
SKYBOX_VIEWPOINT;
SKYBOX_CENTERPOINT;
SKYBOX_BOTH;
ALPHA_SET_RELATIVE;
ALPHA_SET_DONTDOTRANSLUCENT;
ALPHA_FADE_RELATIVE;
ALPHA_FADE_OVERRIDE;
ALPHA_FADE_TICBASED;
ALPHA_FADE_IGNORECOLLISION;
ALPHA_FADE_GHOSTFADE;
ALPHA_FADE_DONTDOTRANSLUCENT;
ALPHA_FADE_DONTDOEXISTS;
ALPHA_FADE_DONTDOLIGHTING;
ALPHA_FADE_DONTDOCOLORMAP;
ALPHA_FADE_USEEXACTALPHA;
PO_ROTATE_DONTROTATEOTHERS;
PO_ROTATE_DONTROTATEPLAYERS;
PO_ROTATE_CONTINUOUS;
PO_ROTATE_OVERRIDE;
PO_WP_RETURN_STOP;
PO_WP_RETURN_WRAP;
PO_WP_RETURN_COMEBACK;
PO_WP_REVERSE;
PO_WP_LOOP;
PO_FADE_RELATIVE;
PO_FADE_OVERRIDE;
PO_FADE_TICBASED;
PO_FADE_IGNORECOLLISION;
PO_FADE_GHOSTFADE;
TICRATE;
FRACBITS;
FRACUNIT;
MAXPLAYERS;
MAXBOTDIFFICULTY;
GAMETYPE_RACE;
GAMETYPE_BATTLE;
GAMESPEED_EASY;
GAMESPEED_NORMAL;
GAMESPEED_HARD;
TAG_ALL;
CAM_FOLLOW_FIRST;
CAM_FOLLOW_SECOND;
CAM_FOLLOW_THIRD;
CAM_FOLLOW_CONSOLE;
BLEND_TRANSLUCENT;
BLEND_ADD;
BLEND_SUBTRACT;
BLEND_REVERSESUBTRACT;
BLEND_MODULATE;
BOT_STYLE_NORMAL;
BOT_STYLE_STAY;
BOT_STYLE__MAX;
LINE_PROP_FLAGS;
LINE_PROP_ALPHA;
LINE_PROP_BLENDMODE;
LINE_PROP_ACTIVATION;
LINE_PROP_ACTION;
LINE_PROP_ARG0;
LINE_PROP_ARG1;
LINE_PROP_ARG2;
LINE_PROP_ARG3;
LINE_PROP_ARG4;
LINE_PROP_ARG5;
LINE_PROP_ARG6;
LINE_PROP_ARG7;
LINE_PROP_ARG8;
LINE_PROP_ARG9;
LINE_PROP_ARG0STR;
LINE_PROP_ARG1STR;
ML_IMPASSABLE;
ML_BLOCKMONSTERS;
ML_TWOSIDED;
ML_DONTPEGTOP;
ML_DONTPEGBOTTOM;
ML_SKEWTD;
ML_NOCLIMB;
ML_NOSKEW;
ML_MIDPEG;
ML_MIDSOLID;
ML_WRAPMIDTEX;
ML_NETONLY;
ML_NONET;
ML_EFFECT6;
ML_NOTBOUNCY;
ML_TFERLINE;
SPAC_REPEATSPECIAL;
SPAC_CROSS;
SPAC_CROSSMONSTER;
SPAC_CROSSMISSILE;
SPAC_PUSH;
SPAC_PUSHMONSTER;
SPAC_IMPACT;
SIDE_PROP_XOFFSET;
SIDE_PROP_YOFFSET;
SIDE_PROP_TOPTEXTURE;
SIDE_PROP_BOTTOMTEXTURE;
SIDE_PROP_MIDTEXTURE;
SIDE_PROP_REPEATCOUNT;
SECTOR_PROP_FLOORHEIGHT;
SECTOR_PROP_CEILINGHEIGHT;
SECTOR_PROP_FLOORPIC;
SECTOR_PROP_CEILINGPIC;
SECTOR_PROP_LIGHTLEVEL;
SECTOR_PROP_FLOORLIGHTLEVEL;
SECTOR_PROP_CEILINGLIGHTLEVEL;
SECTOR_PROP_FLOORLIGHTABSOLUTE;
SECTOR_PROP_CEILINGLIGHTABSOLUTE;
SECTOR_PROP_FLAGS;
SECTOR_PROP_SPECIALFLAGS;
SECTOR_PROP_GRAVITY;
SECTOR_PROP_ACTIVATION;
SECTOR_PROP_ACTION;
SECTOR_PROP_ARG0;
SECTOR_PROP_ARG1;
SECTOR_PROP_ARG2;
SECTOR_PROP_ARG3;
SECTOR_PROP_ARG4;
SECTOR_PROP_ARG5;
SECTOR_PROP_ARG6;
SECTOR_PROP_ARG7;
SECTOR_PROP_ARG8;
SECTOR_PROP_ARG9;
SECTOR_PROP_ARG0STR;
SECTOR_PROP_ARG1STR;
MSF_FLIPSPECIAL_FLOOR;
MSF_FLIPSPECIAL_CEILING;
MSF_FLIPSPECIAL_BOTH;
MSF_TRIGGERSPECIAL_TOUCH;
MSF_TRIGGERSPECIAL_HEADBUMP;
MSF_TRIGGERLINE_PLANE;
MSF_TRIGGERLINE_MOBJ;
MSF_INVERTPRECIP;
MSF_GRAVITYFLIP;
MSF_HEATWAVE;
MSF_NOCLIPCAMERA;
MSF_RIPPLE_FLOOR;
MSF_RIPPLE_CEILING;
MSF_INVERTENCORE;
SSF_NOSTEPUP;
SSF_DOUBLESTEPUP;
SSF_NOSTEPDOWN;
SSF_WINDCURRENT;
SSF_CONVEYOR;
SSF_SPEEDPAD;
SSF_STARPOSTACTIVATOR;
SSF_EXIT;
SSF_DELETEITEMS;
SSF_SNEAKERPANEL;
SSF_WATERPANEL;
SSF_REDPOGOSPRING;
SSF_YELLOWPOGOSPRING;
SSF_FAN;
SSF_FINISHLINE;
SSF_ZOOMTUBESTART;
SSF_ZOOMTUBEEND;
SECSPAC_TRIGGERMASK;
SECSPAC_ONCESPECIAL;
SECSPAC_REPEATSPECIAL;
SECSPAC_CONTINUOUSSPECIAL;
SECSPAC_ENTER;
SECSPAC_FLOOR;
SECSPAC_CEILING;
SECSPAC_ENTERMONSTER;
SECSPAC_FLOORMONSTER;
SECSPAC_CEILINGMONSTER;
SECSPAC_ENTERMISSILE;
SECSPAC_FLOORMISSILE;
SECSPAC_CEILINGMISSILE;
THING_PROP_X;
THING_PROP_Y;
THING_PROP_Z;
THING_PROP_TYPE;
THING_PROP_ANGLE;
THING_PROP_PITCH;
THING_PROP_ROLL;
THING_PROP_SPRITEROLL;
THING_PROP_FRAME;
THING_PROP_SPRITE;
THING_PROP_SPRITE2;
THING_PROP_RENDERFLAGS;
THING_PROP_SPRITEXSCALE;
THING_PROP_SPRITEYSCALE;
THING_PROP_SPRITEXOFFSET;
THING_PROP_SPRITEYOFFSET;
THING_PROP_FLOORZ;
THING_PROP_CEILINGZ;
THING_PROP_RADIUS;
THING_PROP_HEIGHT;
THING_PROP_MOMX;
THING_PROP_MOMY;
THING_PROP_MOMZ;
THING_PROP_TICS;
THING_PROP_STATE;
THING_PROP_FLAGS;
THING_PROP_FLAGS2;
THING_PROP_EFLAGS;
THING_PROP_SKIN;
THING_PROP_COLOR;
THING_PROP_HEALTH;
THING_PROP_MOVEDIR;
THING_PROP_MOVECOUNT;
THING_PROP_REACTIONTIME;
THING_PROP_THRESHOLD;
THING_PROP_LASTLOOK;
THING_PROP_FRICTION;
THING_PROP_MOVEFACTOR;
THING_PROP_FUSE;
THING_PROP_WATERTOP;
THING_PROP_WATERBOTTOM;
THING_PROP_SCALE;
THING_PROP_DESTSCALE;
THING_PROP_SCALESPEED;
THING_PROP_EXTRAVALUE1;
THING_PROP_EXTRAVALUE2;
THING_PROP_CUSVAL;
THING_PROP_CVMEM;
THING_PROP_COLORIZED;
THING_PROP_MIRRORED;
THING_PROP_SHADOWSCALE;
THING_PROP_WHITESHADOW;
THING_PROP_WORLDXOFFSET;
THING_PROP_WORLDYOFFSET;
THING_PROP_WORLDZOFFSET;
THING_PROP_HITLAG;
THING_PROP_WATERSKIP;
THING_PROP_DISPOFFSET;
THING_PROP_TARGET;
THING_PROP_TRACER;
THING_PROP_HNEXT;
THING_PROP_HPREV;
THING_PROP_ITNEXT;
}