/* =========================================================================== Copyright (C) 1999-2005 Id Software, Inc. This file is part of Quake III Arena source code. Quake III Arena source code is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Quake III Arena source code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Foobar; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA =========================================================================== */ #ifndef EPAIRS_H_ #define EPAIRS_H_ typedef struct { char *key; char *value; } userEpair_t; userEpair_t eclassStr[] = { ////////////////////////////// // Worldspawn ////////////////////////////// {"classname", "worldspawn"}, {"color", "0 0 0"}, {"rem", "Only used for the world entity."}, {"rem", "cdtrack - number of CD track to play when level starts"}, {"rem", "fog_value - level of fog for this map"}, ////////////////////////////// // Light ////////////////////////////// {"classname", "light"}, {"size", "-8 -8 -8 8 8 8"}, {"color", "0 1 0"}, {"flag", "START_OFF"}, {"rem", "style - number of style to use, 0-63"}, {"rem", "nelnosmama - string to define lightstyle"}, ////////////////////////////// // light_walltorch ////////////////////////////// {"classname", "light_walltorch"}, {"size", "-8 -8 -8 8 8 8"}, {"color", "0 1 0"}, {"flag", "START_ON"}, {"rem", "style - number of style to use, 0-63"}, {"rem", "nelnosmama - string to define lightstyle"}, ////////////////////////////// // light_spot ////////////////////////////// {"classname", "light_spot"}, {"size", "-8 -8 -8 8 8 8"}, {"color", "0 1 0"}, {"flag", "START_ON"}, {"rem", "Used to make a spotlight. If it is targeted at another entity,"}, {"rem", "the spotlight will point directly at it, otherwise it will point"}, {"rem", "in the direction of its 'angle' field"}, {"rem", ""}, {"rem", "style - number of style to use, 0-63"}, {"rem", "nelnosmama - string to define lightstyle"}, ////////////////////////////// // light_strobe ////////////////////////////// {"classname", "light_strobe"}, {"size", "-8 -8 -8 8 8 8"}, {"color", "0 1 0"}, {"flag", "START_ON"}, {"rem", "style - number of style to use, 0-63"}, {"rem", "nelnosmama - string to define lightstyle"}, ////////////////////////////// // effect_fog ////////////////////////////// {"classname", "effect_fog"}, {"color", "0 1 0"}, {"rem", "Duh, fog."}, {"rem", ""}, ////////////////////////////// // effect_snow ////////////////////////////// {"classname", "effect_snow"}, {"color", "1 1 1"}, {"height", "10"}, {"rem", "Snow!"}, {"rem", "Do you realize the entire street value of this mountain?"}, ////////////////////////////// // effect_rain ////////////////////////////// {"classname", "effect_rain"}, {"height", "10"}, {"color", "0 0.5 0.8"}, {"rem", "Rain!"}, {"rem", "Yellow rain?"}, ////////////////////////////// // func_door ////////////////////////////// {"classname", "func_door"}, {"color", "0 0.5 0.8"}, {"health", "0"}, {"speed", "100"}, {"wait", "3"}, {"lip", "8"}, {"dmg", "2"}, {"angle", "0 0 0"}, {"message", "you suck"}, {"targetname", ""}, {"flag", "START_OPEN"}, {"flag", "REVERSE"}, {"flag", "DOOR_DONT_LINK"}, {"flag", "TOGGLE"}, {"flag", "AUTO_OPEN"}, {"flag", "USE_TO_CLOSE"}, {"rem", "Doors that touch are linked together to operate as one."}, {"rem", " "}, {"rem", "message - printed when the door is touched if it is a trigger door and it hasn't been fired yet"}, {"rem", "angle - determines the opening direction"}, {"rem", "targetname - if set, no touch field will be spawned and a remote button or trigger field activates the door."}, {"rem", "health - if set, door must be shot open"}, {"rem", "speed - movement speed (100 default)"}, {"rem", "wait - time to wait before returning (3 default, -1 = never return)"}, {"rem", "lip - amount of door visible remaining at end of move (8 default)"}, {"rem", "dmg - damage to inflict when blocked (2 default)"}, {"rem", "sound_opening - name of the sound to play during opening, ie. doors/creek.wav"}, {"rem", "sound_open_finish - name of the sound to play when opening completes, ie. doors/slam.wav"}, {"rem", "sound_closing - name of the sound to play when closing starts, ie. doors/creek.wav"}, {"rem", "sound_close_finish - name of the sound to play when closing completes, ie. doors/slam.wav"}, {"rem", " "}, {"rem", "Spawnflags:"}, {"rem", "TOGGLE causes the door to wait in both the start and end states for a"}, {"rem", "trigger event."}, {"rem", " "}, {"rem", "START_OPEN causes the door to move to its destination when spawned, and"}, {"rem", "operate in reverse. It is used to temporarily or permanently close off an"}, {"rem", "area when triggered (not usefull for touch or takedamage doors)."}, {"rem", "AUTO_OPEN will spawn a trigger field around the door that can open it without"}, {"rem", "its being used."}, {"rem", "DOOR_DONT_LINK will stop a door from being automatically linked to other doors"}, {"rem", "that it touches."}, ////////////////////////////// // func_plat ////////////////////////////// {"classname", "func_plat"}, {"color", "0 0.5 0.8"}, {"flag", "PLAT_START_UP"}, {"flag", ""}, {"flag", ""}, {"flag", "PLAT_TOGGLE"}, {"rem", "Plats should be drawn in the up position to spawn correctly"}, {"rem", " "}, {"rem", "message - printed when the door is touched if it is a trigger door and it hasn't been fired yet"}, {"rem", "angle - determines the opening direction"}, {"rem", "targetname - if set, no touch field will be spawned and a remote button or trigger field activates the door."}, {"rem", "health - if set, door must be shot open"}, {"rem", "speed - movement speed (100 default)"}, {"rem", "wait - time to wait before returning (3 default, -1 = never return)"}, {"rem", "height - number of units to move the platform up from spawn position. If height is"}, {"rem", "not specified, then the movement distance is determined based on the vertical size of the platform."}, {"rem", "dmg - damage to inflict when blocked (2 default)"}, {"rem", "sound_up - name of the sound to play when going up, ie. doors/creek.wav"}, {"rem", "sound_top - name of the sound to play when plat hits top, ie. doors/slam.wav"}, {"rem", "sound_down - name of the sound to play when going down, ie. doors/creek.wav"}, {"rem", "sound_bottom - name of the sound to play when plat hits bottom, ie. doors/slam.wav"}, {"rem", " "}, {"rem", "Spawnflags:"}, {"rem", "PLAT_START_UP starts the platform in the up (drawn) position"}, {"rem", "(height added to drawn position)"}, {"rem", "TOGGLE causes the platform to wait in both the start and end states for a"}, {"rem", "trigger event."}, ////////////////////////////// // func_door_rotate ////////////////////////////// {"classname", "func_door_rotate"}, {"distance", "90.0"}, {"color", "0 0.5 0.8"}, {"message", "they suck"}, {"flag", "START_OPEN"}, {"flag", "REVERSE"}, {"flag", "DOOR_DONT_LINK"}, {"flag", "TOGGLE"}, {"flag", "X_AXIS"}, {"flag", "Y_AXIS"}, {"flag", "AUTO_OPEN"}, {"flag", "USE_TO_CLOSE"}, // {"flag", "X_AXIS"}, // {"flag", "Y_AXIS"}, {"rem", "if two doors touch, they are assumed to be connected and operate as a unit."}, {"rem", " "}, {"rem", "TOGGLE causes the door to wait in both the start and end states for a"}, {"rem", "trigger event."}, {"rem", " "}, {"rem", "START_OPEN causes the door to move to its destination when spawned, and"}, {"rem", "operate in reverse. It is used to temporarily or permanently close off an"}, {"rem", "area when triggered (not usefull for touch or takedamage doors)."}, {"rem", " "}, {"rem", "Key doors are allways wait -1."}, {"rem", " "}, {"rem", "You need to have an origin brush as part of this entity. The center of"}, {"rem", "that brush will be"}, {"rem", "the point around which it is rotated. It will rotate around the Z axis by"}, {"rem", "default. You can"}, {"rem", "check either the X_AXIS or Y_AXIS box to change that."}, {"rem", " "}, {"rem", "'distance' is how many degrees the door will be rotated."}, {"rem", "'speed' determines how fast the door moves; default value is 100."}, {"rem", " "}, {"rem", "REVERSE will cause the door to rotate in the opposite direction."}, {"rem", " "}, {"rem", "'message' is printed when the door is touched if it is a trigger door and"}, {"rem", " it hasn't been fired yet."}, {"rem", "'targetname' if set, no touch field will be spawned and a remote button or"}, {"rem", " trigger field activates the door."}, {"rem", "'health' if set, door must be shot open"}, {"rem", "'wait' wait before returning (3 default, -1 = never return)"}, {"rem", "'dmg' damage to inflict when blocked (2 default)"}, {"rem", "sound_opening - name of the sound to play during opening, ie. doors/creek.wav"}, {"rem", "sound_open_finish - name of the sound to play when opening completes, ie. doors/slam.wav"}, {"rem", "sound_closing - name of the sound to play when closing starts, ie. doors/creek.wav"}, {"rem", "sound_close_finish - name of the sound to play when closing completes, ie. doors/slam.wav"}, {"rem", "AUTO_OPEN will spawn a trigger field around the door that can open it without"}, {"rem", "its being used."}, {"rem", "DOOR_DONT_LINK will stop a door from being automatically linked to other doors"}, {"rem", "that it touches."}, ////////////////////////////// // func_rotate ////////////////////////////// {"classname", "func_rotate"}, {"color", "0.0 0.5 0.8"}, {"flag", "START_ON"}, {"flag", "REVERSE"}, {"flag", "X_AXIS"}, {"flag", "Y_AXIS"}, {"rem", "You need to have an origin brush as part of this entity."}, {"rem", "The center of that brush will be"}, {"rem", "the point around which it is rotated. It will rotate around the Z axis by"}, {"rem", "default. You can"}, {"rem", "check either the X_AXIS or Y_AXIS box to change that."}, {"rem", " "}, {"rem", "'speed' determines how fast it moves; default value is 100."}, {"rem", "'dmg' damage to inflict when blocked (2 default)"}, {"rem", " "}, {"rem", "REVERSE will cause the it to rotate in the opposite direction."}, ////////////////////////////// // trigger_multiple ////////////////////////////// {"classname", "trigger_multiple"}, {"color", "0.5 0.5 0.5"}, {"health", "0"}, {"delay", "0"}, {"wait", "0.2"}, {"sound", ""}, {"targetname", ""}, {"target", ""}, {"killtarget", ""}, {"message", ""}, {"flag", "NOTOUCH"}, {"rem", "a repeatable trigger, targetted at the entity with the name"}, {"rem", "targetname."}, {"rem", ""}, {"rem", "health - if set the trigger must be killed to activate"}, {"rem", "delay - time to wait after activation before firing target"}, {"rem", "wait - time to wait between retriggering (default = 0.2 seconds)"}, {"rem", ""}, {"rem", "Spawnflags:"}, {"rem", "NOTOUCH - if set the trigger is only fired by other entities and"}, {"rem", "not by touching."}, ////////////////////////////// // trigger_console ////////////////////////////// {"classname", "trigger_console"}, {"color", "0.5 0.5 0.5"}, {"wait", "0.2"}, {"command", ""}, {"rem", ""}, {"rem", "command - the command to send to the console when triggered"}, ////////////////////////////// // trigger_once ////////////////////////////// {"classname", "trigger_once"}, {"color", "0.5 0.5 0.5"}, {"angle", "0 0 0"}, {"health", "0"}, {"delay", "0"}, {"sound", ""}, {"targetname", ""}, {"killtarget", ""}, {"message", ""}, {"flag", "NOTOUCH"}, {"rem", "triggers once, then removes itself"}, {"rem", " "}, {"rem", "health - if set the trigger must be killed to activate"}, {"rem", "delay - time to wait after activation before firing target"}, {"rem", "wait - time to wait between retriggering (default = 0.2 seconds)"}, {"rem", "sound - name of sound to play upon firing"}, {"rem", " "}, {"rem", "Spawnflags:"}, {"rem", "NOTOUCH - if set the trigger is only fired by other entities and"}, {"rem", "not by touching."}, ////////////////////////////// // trigger_relay ////////////////////////////// {"classname", "trigger_relay"}, {"color", "0.5 0.5 0.5"}, {"delay", "0"}, {"sound", ""}, {"targetname", ""}, {"killtarget", ""}, {"message", ""}, {"rem", "sound - name of sound to play upon firing"}, ////////////////////////////// // trigger_teleport ////////////////////////////// {"classname", "trigger_teleport"}, {"color", "0.5 0.5 0.5"}, {"sound", ""}, {"targetname", ""}, {"killtarget", ""}, {"message", ""}, {"flag", "PLAYER_ONLY"}, {"flag", "NO_FLASH"}, {"flag", "NO_ANGLE_ADJUST"}, {"rem", "sound - name of sound to play upon firing, if not specified, then no"}, {"rem", "sound will be played"}, {"rem", "fog_value - sets fog_value to this when a teleporter is used"}, {"rem", ""}, {"rem", "Spawnflags:"}, {"rem", "PLAYER_ONLY - will only teleport players (NOT bots)"}, {"rem", "NO_FLASH - no spawn fog will be generated when an object teleports"}, {"rem", "NO_ANGLE_ADJUST - the object's angle will not be adjusted when it is"}, {"rem", "teleported."}, ////////////////////////////// // info_teleport_destination ////////////////////////////// {"classname", "info_teleport_destination"}, {"color", "0.5 0.5 0.5"}, {"size", "-8.0 -8.0 -8.0 8.0 8.0 8.0"}, ////////////////////////////// // trigger_warp ////////////////////////////// {"classname", "trigger_warp"}, {"color", "0.5 0.5 0.5"}, {"sound", ""}, {"targetname", ""}, {"killtarget", ""}, {"message", ""}, {"flag", "PLAYER_ONLY"}, {"flag", "NO_FLASH"}, {"flag", "NO_ANGLE_ADJUST"}, {"rem", "sound - name of sound to play upon firing, if not specified, then no"}, {"rem", "sound will be played"}, {"rem", "fog_value - sets fog_value to this when a warp is used"}, {"rem", "speed - speed from this path point to the next"}, {"rem", ""}, {"rem", "Spawnflags:"}, {"rem", "PLAYER_ONLY - will only teleport players (NOT bots)"}, {"rem", "NO_FLASH - no spawn fog will be generated when an object teleports"}, {"rem", "NO_ANGLE_ADJUST - the object's angle will not be adjusted when it is"}, {"rem", "teleported."}, ////////////////////////////// // tele_cylinder ////////////////////////////// {"classname", "warp_cylinder"}, {"color", "0.5 0.5 0.5"}, {"color", "1 0 1"}, {"size", "-16 -16 -24 16 16 32"}, {"rem", "Location player starts in deathmatch"}, ////////////////////////////// // info_warp_destination ////////////////////////////// {"classname", "info_warp_destination"}, {"color", "0.5 0.5 0.5"}, {"size", "-8.0 -8.0 -8.0 8.0 8.0 8.0"}, {"rem", "target - next target to warp to"}, {"rem", "speed - speed from this path point to the next"}, ////////////////////////////// // trigger_onlyregistered ////////////////////////////// {"classname", "trigger_onlyregistered"}, {"color", "0.5 0.5 0.5"}, {"sound", ""}, {"wait", "2.0"}, {"message", ""}, {"rem", "sound - name of sound to play upon firing"}, {"rem", "wait - the number of seconds between triggerings and"}, {"rem", "the length of time the message will be displayed"}, ////////////////////////////// // trigger_hurt ////////////////////////////// {"classname", "trigger_hurt"}, {"color", "0.5 0.5 0.5"}, {"sound", ""}, {"dmg", "2.0"}, {"wait", "2.0"}, {"message", ""}, {"rem", "sound - name of sound to play upon firing"}, {"rem", "dmg - the amount of damage the trigger will do to an object"}, {"rem", "wait - the number of seconds between triggerings and"}, ////////////////////////////// // trigger_push ////////////////////////////// {"classname", "trigger_push"}, {"color", "0.5 0.5 0.5"}, {"sound", ""}, {"message", ""}, {"speed", "1000.0"}, {"flag", "PUSH_ONCE"}, {"rem", "speed - the velocity to give the object"}, {"rem", "speed - the velocity to give the object"}, ////////////////////////////// // trigger_counter ////////////////////////////// {"classname", "trigger_counter"}, {"color", "0.5 0.5 0.5"}, {"sound", ""}, {"flag", "NO_MESSAGE"}, {"rem", "sound - name of sound to play upon firing"}, {"rem", "message - message to display upon last triggering"}, {"rem", "when NO_MESSAGE is set, no messages are displayed upon triggering"}, ////////////////////////////// // trigger_changelevel ////////////////////////////// {"classname", "trigger_changelevel"}, {"color", "0.5 0.5 0.5"}, {"sound", ""}, {"map", ""}, {"flag", "NO_INTERMISSION"}, {"rem", "sound - name of sound to play upon firing"}, {"rem", "message - message to display upon last triggering"}, ////////////////////////////// // func_wall ////////////////////////////// {"classname", "func_wall"}, {"color", "0 0.5 0.8"}, {"health", "0"}, {"message", ""}, {"targetname", ""}, {"target", ""}, {"killtarget", ""}, {"rem", "targetname - the name of this wall if it is a target"}, {"rem", "target - the next entity to trigger when this one is triggered"}, {"rem", "killtarget - the targetname of the entity to remove when triggered"}, ////////////////////////////// // func_button ////////////////////////////// {"classname", "func_button"}, {"color", "0 0.5 0.8"}, {"health", "0"}, {"targetname", ""}, {"target", ""}, {"killtarget", ""}, {"speed", ""}, {"wait", ""}, {"angle", ""}, {"lip", ""}, {"flag", "PUSH_TOUCH"}, {"rem", "targetname - the name of this wall if it is a target"}, {"rem", "target - the next entity to trigger when this one is triggered"}, {"rem", "killtarget - the targetname of the entity to remove when triggered"}, {"rem", "sound_use - the sound to play when the button is used (defaults to none)"}, {"rem", "sound_return - the sound to play when the button returns (defaults to none)"}, {"rem", "speed - rate of travel when button moves"}, {"rem", "wait - seconds to wait befor returning to useable (-1 = never return)"}, {"rem", "angle - direction of travel"}, {"rem", "lip - amount of button left sticking out after being pushed (default 4)"}, {"rem", "health - when > 0 the button must be killed in order to fire"}, {"rem", "PUSH_TOUCH will allow the button to be pushed by running into it, Quake style"}, ////////////////////////////// // func_multi_button ////////////////////////////// {"classname", "func_multi_button"}, {"color", "0 0.5 0.8"}, {"health", "0"}, {"targetname", ""}, {"target", ""}, {"killtarget", ""}, {"speed", ""}, {"wait", ""}, {"angle", ""}, {"lip", ""}, {"flag", "PUSH_TOUCH"}, {"flag", "CYCLE"}, {"rem", "targetname - the name of this wall if it is a target"}, {"rem", "target - the next entity to trigger when this one is triggered"}, {"rem", "killtarget - the targetname of the entity to remove when triggered"}, {"rem", "sound_use - the sound to play when the button is used (defaults to none)"}, {"rem", "sound_return - the sound to play when the button returns (defaults to none)"}, {"rem", "speed - rate of travel when button moves"}, {"rem", "wait - seconds to wait befor returning to useable (-1 = never return)"}, {"rem", "angle - direction of travel"}, {"rem", "health - when > 0 the button must be killed in order to fire"}, {"rem", "distance - distance button travels on each push"}, {"rem", "count - number of positions this button has"}, {"rem", "PUSH_TOUCH will allow the button to be pushed by running into it, Quake style"}, {"rem", "CYCLE - button will not return to top from last position, but will go back through all positions"}, ////////////////////////////// // func_train ////////////////////////////// {"classname", "func_train"}, {"distance", "90.0"}, {"color", "0 0.5 0.8"}, {"rem", "targetname - the name of this train"}, {"rem", "target - the path_corner that the train will spawn at"}, {"rem", "killtarget - the targetname of the entity to remove when triggered"}, ////////////////////////////// // func_train ////////////////////////////// {"classname", "func_train2"}, {"distance", "90.0"}, {"color", "0 0.5 0.8"}, {"rem", "targetname - the name of this train"}, {"rem", "target - the path_corner that the train will spawn at"}, {"rem", "killtarget - the targetname of the entity to remove when triggered"}, ////////////////////////////// // path_corner_train ////////////////////////////// {"classname", "path_corner_train"}, {"distance", "90.0"}, {"color", "0.5 0.3 0"}, {"size", "-8 -8 -8 8 8 8"}, {"flag", "X_AXIS"}, {"flag", "Y_AXIS"}, {"flag", "Z_AXIS"}, {"flag", "TRIGWAIT"}, {"rem", "killtarget - the targetname of the entity to remove when this"}, {"rem", "path_corner is reached"}, {"rem", "speed - rate of travel from this path_corner to the next"}, {"rem", "wait - seconds to wait after the actions on this path_corner are complete"}, {"rem", "sound - sound to play at this path corner"}, {"rem", "x_distance - distance in degrees to rotate around x axis"}, {"rem", "y_distance - distance in degrees to rotate around y axis"}, {"rem", "z_distance - distance in degrees to rotate around z axis"}, {"rem", "x_speed - speed to rotate along x axis in degrees per second"}, {"rem", "y_speed - speed to rotate along y axis in degrees per second"}, {"rem", "z_speed - speed to rotate along z axis in degrees per second"}, {"rem", "health - if health is set, the train will wait at this path corner"}, {"rem", "until it is killed."}, {"rem", "Spawnflags:"}, {"rem", "X_AXIS - when checked train will rotate continually around "}, {"rem", "x axis at x_speed degrees per second"}, {"rem", "Y_AXIS - when checked train will rotate continually around "}, {"rem", "y axis at y_speed degrees per second"}, {"rem", "Z_AXIS - when checked train will rotate continually around "}, {"rem", "z axis at z_speed degrees per second"}, {"rem", "TRIGWAIT - wait here until triggered"}, ////////////////////////////// // info_player_start ////////////////////////////// {"classname", "info_player_start"}, {"color", "1 0 0"}, {"size", "-16 -16 -24 16 16 32"}, {"rem", "Location player starts in single play."}, ////////////////////////////// // info_mikiko_start ////////////////////////////// {"classname", "info_mikiko_start"}, {"color", "1 0 0"}, {"size", "-16 -16 -24 16 16 32"}, {"rem", "Location Mikiko starts in single play."}, ////////////////////////////// // info_superfly_start ////////////////////////////// {"classname", "info_superfly_start"}, {"color", "1 0 0"}, {"size", "-16 -16 -24 16 16 32"}, {"rem", "Location Superfly starts in single play."}, ////////////////////////////// // info_null ////////////////////////////// {"classname", "info_null"}, {"color", "1 0 0"}, {"size", "-8 -8 -8 8 8 8"}, {"rem", "You can point anything to this as a target"}, ////////////////////////////// // info_player_deathmatch ////////////////////////////// {"classname", "info_player_deathmatch"}, {"color", "1 0 1"}, {"size", "-16 -16 -24 16 16 32"}, {"rem", "Location player starts in deathmatch"}, ////////////////////////////// // info_player_coop ////////////////////////////// {"classname", "info_player_coop"}, {"color", "1 0 1"}, {"size", "-16 -16 -24 16 16 32"}, {"rem", "Location player starts in coop"}, ////////////////////////////// // func_door_secret ////////////////////////////// {"classname", "func_door_secret"}, {"color", "0 0.5 0.8"}, {"health", "0"}, {"speed", "100"}, {"wait", "3"}, {"lip", "8"}, {"dmg", "2"}, {"angle", "0 0 0"}, {"message", "we all suck"}, {"targetname", ""}, {"flag", "OPEN_ONCE"}, {"flag", "1ST_LEFT"}, {"flag", "1ST_DOWN"}, {"flag", "NO_SHOOT"}, {"flag", "YES_SHOOT"}, {"rem", "message - printed when the door is touched if it is a trigger door and it hasn't been fired yet"}, {"rem", "angle - determines the opening direction"}, {"rem", "targetname - if set, no touch field will be spawned and a remote button or trigger field activates the door."}, {"rem", "health - if set, door must be shot open"}, {"rem", "speed - movement speed (100 default)"}, {"rem", "wait - time to wait before returning (3 default, -1 = never return)"}, {"rem", "dmg - damage to inflict when blocked (2 default)"}, {"rem", "sound_opening - name of the sound to play during opening, ie. doors/creek.wav"}, {"rem", "sound_open_finish - name of the sound to play when opening completes, ie. doors/slam.wav"}, {"rem", "sound_closing - name of the sound to play when closing starts, ie. doors/creek.wav"}, {"rem", "sound_close_finish - name of the sound to play when closing completes, ie. doors/slam.wav"}, {"rem", " "}, {"rem", "Spawnflags:"}, {"rem", "SECRET_OPEN_ONCE - door stays open (imagine that...)"}, {"rem", "SECRET_1ST_LEFT - first move is left of move direction"}, {"rem", "SECRET_1ST_DOWN - first move is down from move direction"}, {"rem", "SECRET_NO_SHOOT - only opened by a trigger"}, {"rem", "SECRET_YES_SHOOT - shootable even if targeted"}, ////////////////////////////// // func_wall_explode ////////////////////////////// {"classname", "func_wall_explode"}, {"color", "0 0.5 0.8"}, {"health", "0"}, {"message", ""}, {"targetname", ""}, {"target", ""}, {"killtarget", ""}, {"model_1", ""}, {"model_2", ""}, {"model_3", ""}, {"flag", "ROCK_CHUNKS"}, {"flag", "WOOD_CHUNKS"}, {"flag", "EXTRA_CHUNKS"}, {"flag", "EXTRA_VELOCITY"}, {"flag", "NO_CHUNKS"}, {"flag", "NO_SOUND"}, {"rem", "targetname - the name of this wall if it is a target"}, {"rem", "target - the next entity to trigger when this one is triggered"}, {"rem", "killtarget - the targetname of the entity to remove when triggered"}, {"rem", "health - ummm... this would be the health of the wall, if it is 0 then"}, {"rem", "the wall can only be exploded by targetting it"}, {"rem", "message - this prints out when wall go boom"}, {"rem", "model_1 - the specific pathname of the first model to throw when killed"}, {"rem", "if model_1 is set then spawnflags ROCK_CHUNKS and WOOD_CHUNKS are overridden"}, {"rem", "model_2 - the pathname of the second model"}, {"rem", "model_3 - I wouldn't bet on it, but this is probably the name of the 3rd model"}, {"rem", " "}, {"rem", "Spawnflags:"}, {"rem", "ROCK_CHUNKS - makes rock chunk wall-gibs fly"}, {"rem", "WOOD_CHUNKS - makes wood chunk wall-gibs fly"}, {"rem", "EXTRA_CHUNKS - makes up to 3 chunks per explosion, instead of just one"}, {"rem", "EXTRA_VELOCITY - gives chunks a higher velocity (good for underwater)"}, {"rem", "NO_CHUNKS - um, no chunks"}, {"rem", "NO_SOUND - no sound, use when lots of func walls are activated simultaneously to keep the"}, {"rem", "Quake engine from choking with too many sounds at once."}, ////////////////////////////// // func_anim ////////////////////////////// {"classname", "func_anim"}, {"color", "0.0 1.0 0.1"}, {"flag", "VISIBLE"}, {"rem", "Spawnflags:"}, {"rem", "VISIBLE - start visible"}, ////////////////////////////// // func_floater ////////////////////////////// {"classname", "func_floater"}, {"color", "0 0.5 0.8"}, {"size", "-16 -16 -16 16 16 16"}, {"model", ""}, {"rem", "model - pathname to model (ie. models/floater.mdl)"}, {"rem", "velocity_cap - maximum up/down velocity"}, {"rem", "dissipate - how fast velocity degrades to velocity_cap (default = 0.99)"}, {"rem", "object_mass - mass of object (mass / volume = density)"}, {"rem", "object_volume - volume of object (mass / volume = density)"}, ////////////////////////////// // func_debris ////////////////////////////// {"classname", "func_debris"}, {"color", "0 0.5 0.8"}, {"target", ""}, {"flag", "GO_TO_ACTIVATOR"}, {"flag", "NO_ROTATE"}, {"flag", "MOMENTUM_DAMAGE"}, {"flag", "NO_ROTATION_ADJUST"}, {"flag", "DROP_ONLY"}, {"flag", "QUARTER_SIZE"}, {"rem", "target - debris will fly towards targeted entity"}, {"rem", "fly_sound - sound to play while the entity flies through the air"}, {"rem", "hit_sound - sound to play when the entity hits something"}, {"rem", "damage - amount of damage to do when hitting another object"}, {"rem", "if MOMENTUM_DAMAGE is selected, then damage will be based on the"}, {"rem", "speed of the debris when it impacts the object and damage becomes"}, {"rem", "the divisor, so if speed at impact = 300 and damge = 3, then damage done"}, {"rem", "while 300 / 3 = 100 points. If damage is not set, then momentum damage"}, {"rem", "will be the default with a damage divisor of 3."}, {"rem", "Spawnflags:"}, {"rem", "GO_TO_ACTIVATOR - debris will fly at whoever activated it"}, {"rem", "NO_ROTATE - don't give this debris any random rotation"}, {"rem", "MOMENTUM_DAMAGE - damage based on velocity"}, {"rem", "DROP_ONLY - no upward velocity, debris just falls"}, {"rem", "QUARTER_SIZE - shrink bounding box by 1/4"}, {"rem", "Notes:"}, {"rem", "A func debris entity must have an origin brush contained in it,"}, {"rem", "otherwise it will rotate around the center of the level, not"}, {"rem", "its own center. That is bad."}, ////////////////////////////// // func_debris_visible ////////////////////////////// {"classname", "func_debris_visible"}, {"color", "0 0.5 0.8"}, {"target", ""}, {"flag", "GO_TO_ACTIVATOR"}, {"flag", "NO_ROTATE"}, {"flag", "MOMENTUM_DAMAGE"}, {"flag", "NO_ROTATION_ADJUST"}, {"flag", "DROP_ONLY"}, {"flag", "QUARTER_SIZE"}, {"rem", "SAME AS FUNC_DEBRIS EXCEPT DEBRIS IS VISIBLE BEFORE TARGETTING"}, {"rem", "target - debris will fly towards targeted entity"}, {"rem", "fly_sound - sound to play while the entity flies through the air"}, {"rem", "hit_sound - sound to play when the entity hits something"}, {"rem", "damage - amount of damage to do when hitting another object"}, {"rem", "if MOMENTUM_DAMAGE is selected, then damage will be based on the"}, {"rem", "speed of the debris when it impacts the object and damage becomes"}, {"rem", "the divisor, so if speed at impact = 300 and damge = 3, then damage done"}, {"rem", "while 300 / 3 = 100 points. If damage is not set, then momentum damage"}, {"rem", "will be the default with a damage divisor of 3."}, {"rem", "Spawnflags:"}, {"rem", "GO_TO_ACTIVATOR - debris will fly at whoever activated it"}, {"rem", "NO_ROTATE - don't give this debris any random rotation"}, {"rem", "MOMENTUM_DAMAGE - damage based on velocity"}, {"rem", "DROP_ONLY - no upward velocity, debris just falls"}, {"rem", "QUARTER_SIZE - shrink bounding box by 1/4"}, {"rem", "Notes:"}, {"rem", "A func debris entity must have an origin brush contained in it,"}, {"rem", "otherwise it will rotate around the center of the level, not"}, {"rem", "its own center. That is bad."}, ////////////////////////////// // func_particlefield ////////////////////////////// {"classname", "func_particlefield"}, {"color", "0 0.5 0.8"}, {"flag", "USE_COUNT"}, {"rem", "count - number of times to trigger before activated"}, {"rem", "color - color of particles use:"}, {"rem", "black, blue, green, cyan, red, "}, {"rem", "purple, brown, ltgray, dkgray, "}, {"rem", "ltblue, ltgreen, ltcyan, ltpurple,"}, {"rem", "yellow, white"}, ////////////////////////////// // func_monitor ////////////////////////////// {"classname", "func_monitor"}, {"color", "0 0.5 0.8"}, {"rem", "target - the info_camera that the view will be from"}, {"rem", "fov - the field of view when looking through this camera"}, ////////////////////////////// // info_camera ////////////////////////////// {"classname", "info_camera"}, {"color", "1 0 0"}, {"size", "-8 -8 -8 8 8 8"}, ////////////////////////////// // misc_lavaball_drop ////////////////////////////// {"classname", "misc_lavaball_drop"}, {"size", "-8 -8 -8 8 8 8"}, {"color", "1.0 0.5 0.0"}, ////////////////////////////// // misc_lavaball_toss ////////////////////////////// {"classname", "misc_lavaball_toss"}, {"size", "-8 -8 -8 8 8 8"}, {"color", "1.0 0.5 0.0"}, {"rem", "target = can be triggered"}, {"rem", "mintime = minimum time between tosses (default = 4.0 seconds)"}, {"rem", "maxtime = maximum time between tosses (default = 12.0 seconds)"}, {"rem", "damage = damage to do when an hitting something"}, {"rem", "upmin = minimum upward velocity (default = 200)"}, {"rem", "upmax = maximum upward velocity (default = 800)"}, ////////////////////////////// // sound_ambient ////////////////////////////// {"classname", "sound_ambient"}, {"size", "-8 -8 -8 8 8 8"}, {"color", "1 0 1"}, {"rem", "sound - path to ambient sound (ie. ambience/sound.wav."}, {"rem", "fade - distance multiplier to make sounds fade in further away from source."}, {"rem", "1.0 is normal, 2.0 is twice as far."}, {"rem", "volume - 0 through 255. 255 is max."}, ////////////////////////////// // sound_ambient ////////////////////////////// {"classname", "trigger_fog_value"}, {"color", "0 1 0"}, {"rem", "fog_value - the value for fog density 0 - 4. 0 is off, ie. r_drawfog 0"}, ////////////////////////////// // node_node ////////////////////////////// {"classname", "node_node"}, {"color", "0.5 0.5 1"}, {"size", "-8 -8 -8 8 8 8"}, {"flag", "NODE_DOOR"}, {"rem", "number - the number of this node"}, {"rem", "link - the number of the node linked to (can be up to four link fields)"}, ////////////////////////////////////////////////////////////////////////////////////////////////////// // // Monsters // ////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////// // Episode 1 monsters //////////////////////////////////////// {"classname", "monster_froginator"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"flag", "WANDER"}, {"rem", "A light and refreshing monster."}, {"rem", "One day I will read the spec and know what this"}, {"rem", "monster does."}, {"rem", "radius - wander radius"}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "monster_crox"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"flag", "WANDER"}, {"rem", "A realistic representation of your mother"}, {"rem", "radius - wander radius"}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "monster_slaughterskeet"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"flag", "WANDER"}, {"rem", "A big thing with a big beak."}, {"rem", "radius - wander radius"}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "monster_thunderskeet"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"flag", "WANDER"}, {"rem", "A big thing with a big beak."}, {"rem", "radius - wander radius"}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "monster_venomvermin"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"flag", "WANDER"}, {"rem", "A big thing with a big beak."}, {"rem", "radius - wander radius"}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "monster_tentaclor"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"flag", "WANDER"}, {"rem", "A big thing with a big beak."}, {"rem", "radius - wander radius"}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "monster_sludgeminion"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"flag", "WANDER"}, {"flag", "PATHFOLLOW"}, {"rem", "A big thing with a big beak."}, {"rem", "radius - wander radius"}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "monster_prisoner"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"flag", "WANDER"}, {"rem", "gib him."}, {"rem", "radius - wander radius"}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "func_prisoner_respawn"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"rem", "time - seconds until a new prisoner is spawned"}, {"classname", "monster_inmater"}, {"color", "1.0 0.0 0.0"}, {"size", "-32 -32 -24 32 32 64"}, {"flag", "WANDER"}, {"flag", "PATHFOLLOW"}, {"rem", "A big thing with a big beak."}, {"rem", "radius - wander radius"}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"rem", "PATH_FOLLOW - begin following a monster path"}, {"classname", "monster_squid"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"flag", "WANDER"}, {"rem", "A big thing with a big beak."}, {"rem", "radius - wander radius"}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "monster_trackattack"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"rem", "Track turrets need to have a target"}, {"rem", "which is the path_corner_track at which"}, {"rem", "they will start."}, {"rem", "Spawn about 16 units below the track to"}, {"classname", "monster_trackdaddy"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"rem", "Track turrets need to have a target"}, {"rem", "which is the path_corner_track at which"}, {"rem", "they will start."}, {"classname", "monster_lasergat"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"rem", "Track turrets need to have a target"}, {"rem", "which is the path_corner_track at which"}, {"rem", "they will start."}, {"classname", "monster_psyclaw"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"flag", "WANDER"}, {"rem", "A big dog without a head and a"}, {"rem", "brain for a back. Cool, eh?"}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "monster_labworker"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"flag", "WANDER"}, {"rem", "Lab worker. Your momma."}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "monster_battleboar"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"flag", "WANDER"}, {"rem", "A motorized, cybernetic pig, of course."}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, ////////////////////////////// // path_corner_track // // path corners for tracked turrets only! ////////////////////////////// {"classname", "path_corner_track"}, {"distance", "90.0"}, {"color", "0.5 0.3 0"}, {"size", "-8 -8 -8 8 8 8"}, //////////////////////////////////////// // Episode 2 monsters //////////////////////////////////////// {"classname", "monster_skeleton"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"flag", "WANDER"}, {"rem", "Where's he at? Ahh! He's in me!"}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "monster_spider"}, {"color", "1.0 0.0 0.0"}, {"size", "-32 -32 -24 32 32 32"}, {"flag", "WANDER"}, {"rem", "Dumbass."}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "monster_tarantula"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"flag", "WANDER"}, {"rem", "Dumbass."}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "monster_griffon"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"flag", "WANDER"}, {"rem", "A big thing with a big beak."}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "monster_harpy"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"flag", "WANDER"}, {"rem", "A big thing with a big beak."}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "monster_centurion"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"flag", "WANDER"}, {"rem", "A big thing with a big beak."}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "monster_siren"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"flag", "WANDER"}, {"rem", "A big thing with a big beak."}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "monster_ferryman"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"flag", "WANDER"}, {"rem", "A big thing with a big beak."}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "monster_satyr"}, {"color", "1.0 0.0 0.0"}, {"size", "-32 -32 -24 32 32 64"}, {"flag", "WANDER"}, {"rem", "This thing will beat you down."}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "monster_column"}, {"color", "1.0 0.0 0.0"}, {"size", "-32 -32 -24 32 32 64"}, {"flag", "WANDER"}, {"rem", "Look at the tits on that statue!!"}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, //////////////////////////////////////// // Episode 3 monsters //////////////////////////////////////// {"classname", "monster_plague_rat"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"rem", "I broke you!"}, {"flag", "WANDER"}, {"rem", "I broke you!"}, {"rem", "radius - wander radius"}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "monster_rotworm"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"flag", "WANDER"}, {"rem", "I beat the dictionary out of your filthy mouth!"}, {"rem", "radius - wander radius"}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "monster_buboid"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"flag", "WANDER"}, {"rem", "Dumbass."}, {"rem", "radius - wander radius"}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "monster_priest"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"flag", "WANDER"}, {"rem", "A big thing with a big beak."}, {"rem", "radius - wander radius"}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "monster_doombat"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"flag", "WANDER"}, {"rem", "A big thing with a big beak."}, {"rem", "radius - wander radius"}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "monster_lycanthir"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"flag", "WANDER"}, {"rem", "A big thing with a big beak."}, {"rem", "radius - wander radius"}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "monster_fletcher"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"flag", "WANDER"}, {"rem", "A big thing with a big beak."}, {"rem", "radius - wander radius"}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "monster_dwarf"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"flag", "WANDER"}, {"rem", "A big thing with a big beak."}, {"rem", "radius - wander radius"}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "monster_dragonegg"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"flag", "WANDER"}, {"rem", "A big thing with a big beak."}, {"rem", "radius - wander radius"}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "monster_babydragon"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"flag", "WANDER"}, {"rem", "A big thing with a big beak."}, {"rem", "radius - wander radius"}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, //////////////////////////////////////// // Episode 4 monsters //////////////////////////////////////// {"classname", "monster_gang1"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"flag", "WANDER"}, {"rem", "Less than half a fucking man."}, {"rem", "radius - wander radius"}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "monster_gang2"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"flag", "WANDER"}, {"rem", "You're fucking dumb! Suck it down."}, {"rem", "radius - wander radius"}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "monster_blackprisoner"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"flag", "WANDER"}, {"rem", "A big thing with a big beak."}, {"rem", "radius - wander radius"}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "monster_whiteprisoner"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"flag", "WANDER"}, {"rem", "A big thing with a big beak."}, {"rem", "radius - wander radius"}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "monster_femgang"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"flag", "WANDER"}, {"rem", "A big thing with a big beak."}, {"rem", "radius - wander radius"}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "monster_rocketdude"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"flag", "WANDER"}, {"rem", "A big thing with a big beak."}, {"rem", "radius - wander radius"}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "monster_chaingang"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"flag", "WANDER"}, {"rem", "A big thing with a big beak."}, {"rem", "radius - wander radius"}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "monster_labmonkey"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 32"}, {"flag", "WANDER"}, {"rem", "Lab monkey. This thing will crack your skull."}, {"rem", "Spawnflags:"}, {"rem", "WANDER - monster will wander around"}, {"classname", "monkey_message"}, {"color", "1.0 0.0 0.0"}, {"size", "-8 -8 -8 8 8 8"}, {"rem", "Target this from the monkey switch to display current monkey state."}, ////////////////////////////////////////////////////////////////// // monster AI markers ////////////////////////////////////////////////////////////////// {"classname", "monster_path_corner"}, {"distance", "90.0"}, {"color", "0.5 0.3 0"}, {"size", "-8 -8 -8 8 8 8"}, {"rem", "A path corner for a monster to travel along"}, {"rem" "target1 - target4: "}, {"rem", "Can have up to 4 targets for the monster"}, {"rem", "to travel to. If there is more than one target"}, {"rem", "the monster will randomly choose the next target"}, {"rem", "from those available."}, {"rem", "action1 - action4: "}, {"rem", "Use the action field to make a monster perform a"}, {"rem", "specific action at the path corner. For example"}, {"rem", "'action scoop' will make a sludge minion scoop"}, {"rem", "sludge at that path corner (other monsters will"}, {"rem", "ignore the scoop command. You can have multiple"}, {"rem", "actions on a path corner, for instance:"}, {"rem", " action1 scoop"}, {"rem", " action2 interrogate"}, {"rem", "Sludge minions reaching this path corner will scoop"}, {"rem", "while Inmaters will search out nearest prisoner"}, ////////////////////////////////////////////////////////////////// // decorations ////////////////////////////////////////////////////////////////// {"classname", "deco_e1"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 0"}, {"flag", "DECO_EXPLODE"}, {"flag", "DECO_NO_EXPLODE"}, {"flag", "DECO_PUSHABLE"}, {"rem", "model - choose model # -- see list."}, {"classname", "deco_e2"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 0"}, {"flag", "DECO_EXPLODE"}, {"flag", "DECO_NO_EXPLODE"}, {"flag", "DECO_PUSHABLE"}, {"rem", "model - choose model # -- see list."}, {"classname", "deco_e3"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 0"}, {"flag", "DECO_EXPLODE"}, {"flag", "DECO_NO_EXPLODE"}, {"flag", "DECO_PUSHABLE"}, {"rem", "model - choose model # -- see list."}, {"classname", "deco_e4"}, {"color", "1.0 0.0 0.0"}, {"size", "-16 -16 -24 16 16 0"}, {"flag", "DECO_EXPLODE"}, {"flag", "DECO_NO_EXPLODE"}, {"flag", "DECO_PUSHABLE"}, {"rem", "model - choose model # -- see list."}, {NULL, NULL}, }; #endif