From 952c5c128f9efaea89d41d882c4ea3ade7df4591 Mon Sep 17 00:00:00 2001 From: zakk Date: Fri, 26 Aug 2005 04:48:05 +0000 Subject: Itsa me, quake3io! git-svn-id: svn://svn.icculus.org/quake3/trunk@2 edf5b092-35ff-0310-97b2-ce42778d08ea --- q3radiant/EPAIRS.H | 1402 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1402 insertions(+) create mode 100755 q3radiant/EPAIRS.H (limited to 'q3radiant/EPAIRS.H') diff --git a/q3radiant/EPAIRS.H b/q3radiant/EPAIRS.H new file mode 100755 index 0000000..378cd31 --- /dev/null +++ b/q3radiant/EPAIRS.H @@ -0,0 +1,1402 @@ +/* +=========================================================================== +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 \ No newline at end of file -- cgit v1.2.3