From f4ced97ad07a15d74aca1fbc0d2cc538371082b1 Mon Sep 17 00:00:00 2001 From: Marco Hladik Date: Sat, 7 Sep 2019 05:37:06 +0200 Subject: [PATCH] Started documenting map entities via QUAKED style comments. Use the mk_mapdef.sh script to generate a radiant compatible entities.def file. --- src/gs-entbase/client/env_cubemap.cpp | 9 ++-- src/gs-entbase/client/env_glow.cpp | 10 ++++ src/gs-entbase/client/env_sound.cpp | 43 +++++++++++++++ src/gs-entbase/client/sky_camera.cpp | 10 +++- src/gs-entbase/server/ambient_generic.cpp | 14 +++++ src/gs-entbase/server/cycler.cpp | 25 ++++----- src/gs-entbase/server/cycler_sprite.cpp | 10 +++- src/gs-entbase/server/env_beam.cpp | 6 +++ src/gs-entbase/server/env_beverage.cpp | 13 ++++- src/gs-entbase/server/env_explosion.cpp | 9 ++++ src/gs-entbase/server/env_fade.cpp | 13 +++++ src/gs-entbase/server/env_global.cpp | 13 +++++ src/gs-entbase/server/env_message.cpp | 13 +++++ src/gs-entbase/server/env_render.cpp | 11 ++++ src/gs-entbase/server/env_shake.cpp | 17 +++++- src/gs-entbase/server/env_shooter.cpp | 17 ++++++ src/gs-entbase/server/env_spark.cpp | 10 ++++ src/gs-entbase/server/env_sprite.cpp | 16 +++++- src/gs-entbase/server/func_breakable.cpp | 24 +++++++-- src/gs-entbase/server/func_button.cpp | 8 +++ src/gs-entbase/server/func_conveyor.cpp | 10 +++- src/gs-entbase/server/func_door.cpp | 12 ++++- src/gs-entbase/server/func_door_rotating.cpp | 8 +++ src/gs-entbase/server/func_guntarget.cpp | 10 ++++ src/gs-entbase/server/func_healthcharger.cpp | 53 +++++++++++++++---- src/gs-entbase/server/func_illusionary.cpp | 11 +++- src/gs-entbase/server/func_ladder.cpp | 6 +++ src/gs-entbase/server/func_pushable.cpp | 8 +++ src/gs-entbase/server/func_recharge.cpp | 46 +++++++++++++--- src/gs-entbase/server/func_rotating.cpp | 11 ++++ src/gs-entbase/server/func_tracktrain.cpp | 9 ++++ src/gs-entbase/server/func_train.cpp | 9 ++++ src/gs-entbase/server/func_wall.cpp | 7 +++ src/gs-entbase/server/func_wall_toggle.cpp | 8 +++ src/gs-entbase/server/game_text.cpp | 27 ++++++++++ src/gs-entbase/server/infodecal.cpp | 9 ++++ src/gs-entbase/server/item_food.cpp | 8 +++ src/gs-entbase/server/light.cpp | 39 ++++++++++++++ src/gs-entbase/server/monster_furniture.cpp | 8 +++ src/gs-entbase/server/monster_generic.cpp | 8 +++ src/gs-entbase/server/monstermaker.cpp | 9 ++++ src/gs-entbase/server/multi_manager.cpp | 11 ++++ src/gs-entbase/server/multisource.cpp | 8 +++ src/gs-entbase/server/path_corner.cpp | 8 +++ src/gs-entbase/server/path_track.cpp | 8 +++ src/gs-entbase/server/scripted_sentence.cpp | 14 +++++ src/gs-entbase/server/scripted_sequence.cpp | 23 ++++++++ src/gs-entbase/server/trigger_auto.cpp | 11 ++++ src/gs-entbase/server/trigger_autosave.cpp | 7 +++ src/gs-entbase/server/trigger_camera.cpp | 9 ++++ src/gs-entbase/server/trigger_cdaudio.cpp | 7 +++ src/gs-entbase/server/trigger_changelevel.cpp | 17 ++++++ src/gs-entbase/server/trigger_endsection.cpp | 7 +++ src/gs-entbase/server/trigger_gravity.cpp | 7 +++ src/gs-entbase/server/trigger_hurt.cpp | 23 ++++++-- src/gs-entbase/server/trigger_multiple.cpp | 12 +++++ src/gs-entbase/server/trigger_once.cpp | 11 ++++ src/gs-entbase/server/trigger_push.cpp | 11 ++++ src/gs-entbase/server/trigger_relay.cpp | 8 +++ src/gs-entbase/server/trigger_teleport.cpp | 13 +++++ src/gs-entbase/server/trigger_transition.cpp | 7 +++ src/shared/scihunt/w_cannon.c | 42 +++++++-------- src/shared/scihunt/w_chainsaw.c | 42 +++++++-------- src/shared/scihunt/w_hammer.c | 42 +++++++-------- src/shared/spraylogo.cpp | 2 +- 65 files changed, 839 insertions(+), 118 deletions(-) diff --git a/src/gs-entbase/client/env_cubemap.cpp b/src/gs-entbase/client/env_cubemap.cpp index 6dfbb2bf..2882f7c4 100644 --- a/src/gs-entbase/client/env_cubemap.cpp +++ b/src/gs-entbase/client/env_cubemap.cpp @@ -14,12 +14,11 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* -=============================================================================== +/*QUAKED env_cubemap (1 0 0) (-8 -8 -8) (8 8 8) +"scale" Texture dimension at which to render the cubemap. Default is '32'. - Cubemap Entity Development Functions - -=============================================================================== +Specifies a location for which a cubemap will be generated when the +buildcubemaps console command is executed. */ int g_iCubeProcess; diff --git a/src/gs-entbase/client/env_glow.cpp b/src/gs-entbase/client/env_glow.cpp index 674034b7..e5e60eda 100644 --- a/src/gs-entbase/client/env_glow.cpp +++ b/src/gs-entbase/client/env_glow.cpp @@ -14,6 +14,16 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED env_glow (1 0 0) (-8 -8 -8) (8 8 8) +"shader" Material to use for the glare/glow effect. +"model" Sprite model to use for the glare/glow (idTech 2 BSPs only) +"scale" Scale multiplier. +"rendercolor" Material color override in RGB8. +"renderamt" Material alpha override in A8. + +Client-side glare/glow orb effect like the flares in 1997's Unreal. +*/ + class env_glow:CBaseEntity { vector m_vecColor; diff --git a/src/gs-entbase/client/env_sound.cpp b/src/gs-entbase/client/env_sound.cpp index 8a830c4d..60d2b273 100644 --- a/src/gs-entbase/client/env_sound.cpp +++ b/src/gs-entbase/client/env_sound.cpp @@ -14,6 +14,49 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED env_sound (1 0 0) (-8 -8 -8) (8 8 8) +"radius" Radius in units. +"roomtype" Roomtype value: + 0 = DEFAULT + 1 = PADDEDCELL + 2 = ROOM + 3 = BATHROOM + 4 = LIVINGROOM + 5 = STONEROOM + 6 = AUDITORIUM + 7 = CONCERTHALL + 8 = CAVE + 9 = ARENA + 10 = HANGAR + 11 = CARPETEDHALLWAY + 12 = HALLWAY + 13 = STONECORRIDOR + 14 = ALLEY + 15 = FOREST + 16 = CITY + 17 = MOUNTAINS + 18 = QUARRY + 19 = PLAIN + 20 = PARKINGLOT + 21 = SEWERPIPE + 22 = UNDERWATER + 23 = DRUGGED + 24 = DIZZY + 25 = PSYCHOTIC + 26 = CITYSTREETS + 27 = SUBWAY + 28 = MUSEUM + 29 = LIBRARY + 30 = UNDERPASS + 31 = ABANDONED + 32 = DUSTYROOM + 33 = CHAPEL + 34 = SMALLWATERROOM + +Client-side environmental reverb modifier. +This works only with the OpenAL sound backend. +*/ + int g_iDSP; float g_flDSPCheck; diff --git a/src/gs-entbase/client/sky_camera.cpp b/src/gs-entbase/client/sky_camera.cpp index 6ee60955..79699276 100644 --- a/src/gs-entbase/client/sky_camera.cpp +++ b/src/gs-entbase/client/sky_camera.cpp @@ -14,8 +14,16 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -var int autocvar_dev_skyscale = 0; +/*QUAKED sky_camera (1 0 0) (-8 -8 -8) (8 8 8) +"scale" Scale modifier. Default is '16'. +Defines the position of a skyroom camera. +You want to put this into a dedicated room that contains a 3D skybox. +The scale modifier is more like a divider. You want to keep these +divisable by 2 to avoid any precision funkyness. +*/ + +var int autocvar_dev_skyscale = 0; var vector g_skypos; var int g_skyscale; diff --git a/src/gs-entbase/server/ambient_generic.cpp b/src/gs-entbase/server/ambient_generic.cpp index 6c634bc9..9794e58a 100644 --- a/src/gs-entbase/server/ambient_generic.cpp +++ b/src/gs-entbase/server/ambient_generic.cpp @@ -14,6 +14,20 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED ambient_generic (1 0 0) (-8 -8 -8) (8 8 8) AS_SRADIUS AS_MRADIUS AS_LRADIUS AS_SILENT AS_NOTTOGGLED +"targetname" Name +"target" Target when triggered. +"killtarget" Target to kill when triggered. +"message" Sound file to play +"volume" Playback volume from 0.0 to 1.0 +"pitch" Playback pitch from 0.0 to 2.0 + +Plays a sound sample of whatever format the engine is configured to support. +If you want it to loop, you have to give the file itself a loop flag. + +TODO: Add a forced loop flag for non .wav samples? +*/ + enumflags { AS_ARADIUS, AS_SRADIUS, diff --git a/src/gs-entbase/server/cycler.cpp b/src/gs-entbase/server/cycler.cpp index d1922860..747a96f0 100644 --- a/src/gs-entbase/server/cycler.cpp +++ b/src/gs-entbase/server/cycler.cpp @@ -14,23 +14,16 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -// TODO: Complete this once damage is done +/*QUAKED cycler (1 0 0) (-8 -8 -8) (8 8 8) +"targetname" Name +"target" Target when triggered. +"killtarget" Target to kill when triggered. +"angles" Sets the pitch, yaw and roll angles of the model. +"sequence" Sets the animation the model should start in. +"model" Model file that will be displayed by the entity. -/* - * cycler - Point Entity -The cycler entity is a model viewer of sorts. It places a model within the map which, when attacked, will cycle its animation. -Attributes -Name (targetname) - Name is a general attribute used to identify entities. -Pitch Yaw Roll (Y Z X) (angles) - Sets the pitch, yaw and roll angles of the model. -Animation Sequence (editor) (sequence) - Sets the animation the model should start in. Setting this to anything other than 0 seems to place the cycler into its triggered mode (see notes). -Model (model) - This defines which model file will be displayed by the entity. This accepts an input of the form "path/filename.mdl" (starting from the root folder). (Example: "models/scientist.mdl"). -Render FX (renderfx) - Gives the model certain visual effects depending on Render Mode. -Render Mode (rendermode) - Allows special rendering modes to be applied to the given entity. -FX Amount (1 - 255) (renderamt) - In all but "Normal" Render Mode, alters how transparent the model is. Scales from 0 (invisible) to 255 (solid, normal). -FX Color (R G B) (rendercolour) - Seemingly unused. -Notes - Triggering or pressing use on the cycler will freeze the model in its current animation. In this state, shooting the cycler will have it step through frames of the animation it was in. Triggering it or using it again will return it to its normal function. - Given the way this entity behaves, there is little practical use for this entity beyond viewing animations (for which there are programs that are far more convenient). +Upon damage, the cycler will switch between all available animation +sequences. This is really for test-maps and showroom entities. */ class cycler:CBaseTrigger diff --git a/src/gs-entbase/server/cycler_sprite.cpp b/src/gs-entbase/server/cycler_sprite.cpp index fd9bc653..1af64777 100644 --- a/src/gs-entbase/server/cycler_sprite.cpp +++ b/src/gs-entbase/server/cycler_sprite.cpp @@ -14,7 +14,15 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* https://twhl.info/wiki/page/cycler_sprite_(Half-Life) */ +/*QUAKED cycler_sprite (1 0 0) (-8 -8 -8) (8 8 8) +"targetname" Name +"target" Target when triggered. +"killtarget" Target to kill when triggered. +"angles" Sets the pitch, yaw and roll angles of the model. +"model" Model file that will be displayed by the entity. + +Decorative, does nothing yet. +*/ class cycler_sprite:CBaseTrigger { diff --git a/src/gs-entbase/server/env_beam.cpp b/src/gs-entbase/server/env_beam.cpp index 7f1352f8..218b42d3 100644 --- a/src/gs-entbase/server/env_beam.cpp +++ b/src/gs-entbase/server/env_beam.cpp @@ -14,6 +14,12 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED env_beam (1 0 0) (-8 -8 -8) (8 8 8) +"targetname" Name + +This entity is incomplete. Purely stub. +*/ + class env_beam { void() env_beam; }; diff --git a/src/gs-entbase/server/env_beverage.cpp b/src/gs-entbase/server/env_beverage.cpp index 5e07db34..1dbfd399 100644 --- a/src/gs-entbase/server/env_beverage.cpp +++ b/src/gs-entbase/server/env_beverage.cpp @@ -14,7 +14,18 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -// Dependency from item_food.cpp +/*QUAKED env_beverage (1 0 0) (-8 -8 -8) (8 8 8) +"targetname" Name +"target" Target when triggered. +"killtarget" Target to kill when triggered. +"health" Amount of soda-cans that can be dispensed at maximum +"angles" Sets the pitch, yaw and roll angles of the soda + +Upon triggered, the entity will spawn item_food in its place in +the shape of a soda can. +*/ + +/* dependency from item_food.cpp */ void item_sodacan( void ); // TODO: Implement support for skins diff --git a/src/gs-entbase/server/env_explosion.cpp b/src/gs-entbase/server/env_explosion.cpp index 4189b638..08886e8a 100644 --- a/src/gs-entbase/server/env_explosion.cpp +++ b/src/gs-entbase/server/env_explosion.cpp @@ -14,6 +14,15 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED env_explosion (1 0 0) (-8 -8 -8) (8 8 8) ENVEXPLO_NODAMAGE ENVEXPLO_REPEATABLE ENVEXPLO_NOBALL ENVEXPLO_NOSMOKE ENVEXPLO_NODECAL ENVEXPLO_NOSPARKS +"targetname" Name +"target" Target when triggered. +"killtarget" Target to kill when triggered. +"iMagnitude" Magnitude of the explosion. + +When triggered, creates an explosion at its location. +*/ + enumflags { ENVEXPLO_NODAMAGE, ENVEXPLO_REPEATABLE, diff --git a/src/gs-entbase/server/env_fade.cpp b/src/gs-entbase/server/env_fade.cpp index c310a3c5..e69db0e9 100644 --- a/src/gs-entbase/server/env_fade.cpp +++ b/src/gs-entbase/server/env_fade.cpp @@ -14,6 +14,19 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED env_fade (1 0 0) (-8 -8 -8) (8 8 8) EVF_FADEDROM EVF_MODULATE EVF_ONLYUSER +"targetname" Name +"target" Target when triggered. +"killtarget" Target to kill when triggered. +"rendercolor" RGB8 Color of the fade effect. +"renderamt" A8 alpha value we'll hit at max. +"duration" Duration of the effect in seconds. +"holdtime" How long we'll hold on the max color/alpha. + +When triggered, creates a colored overlay that blinds all players, or just +the one who triggered it if EVF_ONLYUSER is set. +*/ + enumflags { EVF_FADEDROM, diff --git a/src/gs-entbase/server/env_global.cpp b/src/gs-entbase/server/env_global.cpp index bd0a8a6a..eeeabf42 100644 --- a/src/gs-entbase/server/env_global.cpp +++ b/src/gs-entbase/server/env_global.cpp @@ -14,6 +14,19 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED env_global (1 0 0) (-8 -8 -8) (8 8 8) GLOBAL_SETSPAWN +"targetname" Name +"target" Target when triggered. +"killtarget" Target to kill when triggered. +"globalstate" The variable name in which we hold information in. +"initialstate" Initial mode: 0 = off, 1 = on, 2 = dead +"triggermode" Mode when triggered: 0 = off, 1 = on, 2 = dead + +Sets/kills a global variable that carries across levels. +Without GLOBAL_SETSPAWN set, it'll only modify existing +values when triggered. +*/ + #define GLOBAL_SETSPAWN 1 enum diff --git a/src/gs-entbase/server/env_message.cpp b/src/gs-entbase/server/env_message.cpp index 9964f132..45e94ee6 100644 --- a/src/gs-entbase/server/env_message.cpp +++ b/src/gs-entbase/server/env_message.cpp @@ -14,6 +14,19 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED env_message (1 0 0) (-8 -8 -8) (8 8 8) EMF_ONCE EMF_ALLPLAYERS +"targetname" Name +"target" Target when triggered. +"killtarget" Target to kill when triggered. +"message" Message to send to players +"messagesound" PCM sample to play when triggered +"messagevolume" PCM sample volume +"messageattenuation" PCM sample attenuation + +Sends a message to either one or all players, depending on if EMF_ALLPLAYERS +is set. An optional sound effect can be supplied as well. +*/ + enumflags { EMF_ONCE, diff --git a/src/gs-entbase/server/env_render.cpp b/src/gs-entbase/server/env_render.cpp index df0f463a..88061c22 100644 --- a/src/gs-entbase/server/env_render.cpp +++ b/src/gs-entbase/server/env_render.cpp @@ -14,6 +14,17 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED env_render (1 0 0) (-8 -8 -8) (8 8 8) SF_NORENDERFX SF_NORENDERAMT SF_NORENDERMODE SF_NORENDERCOLOR +"targetname" Name +"target" Target when triggered. +"killtarget" Target to kill when triggered. +"rendermode" Render-Mode the target changes to +"renderamt" Render-Alpha the target changes to +"rendercolor" Render-Color the target changes to + +Changes the visual appearance of a target. +*/ + enumflags { SF_NORENDERFX, SF_NORENDERAMT, diff --git a/src/gs-entbase/server/env_shake.cpp b/src/gs-entbase/server/env_shake.cpp index e5784f59..165538cd 100644 --- a/src/gs-entbase/server/env_shake.cpp +++ b/src/gs-entbase/server/env_shake.cpp @@ -14,6 +14,19 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED env_shake (1 0 0) (-8 -8 -8) (8 8 8) EVS_GLOBAL +"targetname" Name +"target" Target when triggered. +"killtarget" Target to kill when triggered. +"radius" Radius of the quake/shake effect. +"amplitude" Amplitude of the effect. +"duration" Duration of the effect in seconds. +"frequency" The frequency of the shake. + +Causes an earthquake/shaking effect when triggered. +Affects all clients (radius ignored) when EVS_GLOBAL is set. +*/ + #define EVS_GLOBAL 1 class env_shake : CBaseTrigger @@ -29,14 +42,14 @@ class env_shake : CBaseTrigger void env_shake :: Trigger (void) { - for (entity eClients = world; (eClients = find(eClients, ::classname, "Player"));) { + for (entity e = world; (e = find(e, ::classname, "Player"));) { WriteByte(MSG_MULTICAST, SVC_CGAMEPACKET); WriteByte(MSG_MULTICAST, EV_SHAKE); WriteFloat(MSG_MULTICAST, m_flRadius); WriteFloat(MSG_MULTICAST, m_flAmplitude); WriteFloat(MSG_MULTICAST, m_flDuration); WriteFloat(MSG_MULTICAST, m_flFrequency); - msg_entity = eClients; + msg_entity = e; multicast('0 0 0', MULTICAST_ONE_R); } } diff --git a/src/gs-entbase/server/env_shooter.cpp b/src/gs-entbase/server/env_shooter.cpp index 357fb215..a6baed51 100644 --- a/src/gs-entbase/server/env_shooter.cpp +++ b/src/gs-entbase/server/env_shooter.cpp @@ -14,6 +14,23 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED env_shooter (1 0 0) (-8 -8 -8) (8 8 8) +"targetname" Name +"target" Target when triggered. +"killtarget" Target to kill when triggered. +"angles" Sets the pitch, yaw and roll direction of the shooter. +"shootmodel" Model file to shoot. +"shootsounds" PCM sample to play whenever a piece shoots out. +"m_iGibs" Amount of models shot in total. +"m_flDelay" Delay before being able to be fired again. +"m_flVelocity" Speed of the models in units per second. +"m_flVariance" Delay between shots. +"m_flGibLife" Life of the individual model piece. +"scale" Scale modifier of the model pieces. + +Shoots model entities from its location. +*/ + class env_shooter : CBaseTrigger { int m_iGibs; diff --git a/src/gs-entbase/server/env_spark.cpp b/src/gs-entbase/server/env_spark.cpp index 8acccfdb..56430226 100644 --- a/src/gs-entbase/server/env_spark.cpp +++ b/src/gs-entbase/server/env_spark.cpp @@ -14,6 +14,16 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED env_spark (1 0 0) (-8 -8 -8) (8 8 8) x x x x x EVSPARK_TOGGLE EVSPARK_STARTON +"targetname" Name +"target" Target when triggered. +"killtarget" Target to kill when triggered. +"angles" Sets the pitch, yaw and roll angles of the spark. +"MaxDelay" Delay between sparks when start-on (or toggle) is set + +Creates a series (or just one) spark effect with sound when triggered. +*/ + enumflags { EVSPARK_UNUSED1, diff --git a/src/gs-entbase/server/env_sprite.cpp b/src/gs-entbase/server/env_sprite.cpp index 5a3c2f4f..95e53793 100644 --- a/src/gs-entbase/server/env_sprite.cpp +++ b/src/gs-entbase/server/env_sprite.cpp @@ -14,7 +14,21 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* https://twhl.info/wiki/page/env_sprite_(Half-Life) */ +/*QUAKED env_sprite (1 0 0) (-8 -8 -8) (8 8 8) ENVS_STARTON ENVS_PLAYONCE +"targetname" Name +"target" Target when triggered. +"killtarget" Target to kill when triggered. +"angles" Sets the pitch, yaw and roll angles of the sprite. +"model" Path to the sprite in question. +"rendercolor" Color modifier of the sprite. +"renderamt" Alpha modifier of the sprite. +"rendermode" Render mode of the sprite. +"framerate" Rate between frames in seconds. +"scale" Scale modifier of the sprite. + +A sprite entity manager with fancy overrides. +Only used with an external sprite format, like SPR, SPRHL and SPR32. +*/ enumflags { diff --git a/src/gs-entbase/server/func_breakable.cpp b/src/gs-entbase/server/func_breakable.cpp index 5aad6604..5ea698a4 100755 --- a/src/gs-entbase/server/func_breakable.cpp +++ b/src/gs-entbase/server/func_breakable.cpp @@ -14,11 +14,25 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* - Flags - Only Trigger (1) - Entity can only be activated (broken) by being triggered. - Touch (2) - Brush will break on touch. - Pressure (4) - Brush will break when pressured (e.g. player walking on it). +/*QUAKED func_breakable (0 .5 .8) ? SF_TRIGGER SF_TOUCH SF_PRESSURE +"targetname" Name +"target" Target when triggered. +"killtarget" Target to kill when triggered. +"material" Material it's made of. +"delay" Delay in seconds of when it breaks under pressure. +"explodemagnitude" Strength of the explosion. + +Brush volume that can break into lots of little pieces. + +When SF_TOUCH is set, it'll break when an entity runs into it at high +velocities (damage is speed in units * 0.01). + +When SF_PRESSURE is set, it'll collapse once someone is standing on top of it. +At that point the "delay" key will decide after how many seconds the object +breaks. + +The strength of the explosion decides the radius (magnitude * 2.5) and the +maximum damage the explosion will do (you have to stand in the center for that). */ enumflags diff --git a/src/gs-entbase/server/func_button.cpp b/src/gs-entbase/server/func_button.cpp index c8b69aeb..f0b01d8b 100644 --- a/src/gs-entbase/server/func_button.cpp +++ b/src/gs-entbase/server/func_button.cpp @@ -14,6 +14,14 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED func_button (0 .5 .8) ? +"targetname" Name +"target" Target when triggered. +"killtarget" Target to kill when triggered. + +STUB! +*/ + #define SF_BTT_NOMOVE 1 #define SF_BTT_TOGGLE 32 #define SF_BTT_SPARKS 64 diff --git a/src/gs-entbase/server/func_conveyor.cpp b/src/gs-entbase/server/func_conveyor.cpp index 6147c0e6..0f9db030 100644 --- a/src/gs-entbase/server/func_conveyor.cpp +++ b/src/gs-entbase/server/func_conveyor.cpp @@ -14,7 +14,15 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -#define SF_CONVEYOR_VISUAL 1 +/*QUAKED func_conveyor (0 .5 .8) ? +"targetname" Name +"target" Target when triggered. +"killtarget" Target to kill when triggered. + +STUB! +*/ + +#define SF_CONVEYOR_VISUAL 1 #define SF_CONVEYOR_NOTSOLID 2 class func_conveyor : func_wall diff --git a/src/gs-entbase/server/func_door.cpp b/src/gs-entbase/server/func_door.cpp index e9a8b4a4..598bb109 100644 --- a/src/gs-entbase/server/func_door.cpp +++ b/src/gs-entbase/server/func_door.cpp @@ -14,12 +14,20 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED func_door (0 .5 .8) ? +"targetname" Name +"target" Target when triggered. +"killtarget" Target to kill when triggered. + +STUB! +*/ + // TODO: Finish these #define SF_MOV_OPEN 1 #define SF_MOV_UNLINK 4 -#define SF_MOV_PASSABLE 8 +#define SF_MOV_PASSABLE 8 #define SF_MOV_TOGGLE 32 -#define SF_MOV_USE 256 +#define SF_MOV_USE 256 enum { diff --git a/src/gs-entbase/server/func_door_rotating.cpp b/src/gs-entbase/server/func_door_rotating.cpp index 91bbd8c2..63d234e3 100644 --- a/src/gs-entbase/server/func_door_rotating.cpp +++ b/src/gs-entbase/server/func_door_rotating.cpp @@ -14,6 +14,14 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED func_door_rotating (0 .5 .8) ? +"targetname" Name +"target" Target when triggered. +"killtarget" Target to kill when triggered. + +STUB! +*/ + enumflags { SF_ROT_OPEN, diff --git a/src/gs-entbase/server/func_guntarget.cpp b/src/gs-entbase/server/func_guntarget.cpp index 2d6a4265..4f48bf59 100644 --- a/src/gs-entbase/server/func_guntarget.cpp +++ b/src/gs-entbase/server/func_guntarget.cpp @@ -14,6 +14,16 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED func_guntarget (0 .5 .8) ? +"targetname" Name +"target" Target when triggered. +"killtarget" Target to kill when triggered. +"health" Health until it stops and triggers its targets. +"speed" Speed in units per second at which it moves. + +Gun targets brushes that trigger a target once they 'die'. +*/ + #define SF_GUNTARGET_ON 1 class func_guntarget:CBaseTrigger diff --git a/src/gs-entbase/server/func_healthcharger.cpp b/src/gs-entbase/server/func_healthcharger.cpp index 339dc0ce..78a25e7c 100644 --- a/src/gs-entbase/server/func_healthcharger.cpp +++ b/src/gs-entbase/server/func_healthcharger.cpp @@ -14,12 +14,27 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED func_healthcharger (0 .5 .8) ? +"targetname" Name +"target" Target when triggered. +"killtarget" Target to kill when triggered. +"snd_first" Sound to play when first used. +"snd_charging" Sound to play when first charging. +"snd_done" Sound to play when first finished charging. + +Brush that fills up your health when used, to a maximum of 100 HP. +*/ + class func_healthcharger:CBaseTrigger { entity m_eUser; float m_flDelay; float m_flCheck; + string m_strSndFirst; + string m_strSndCharging; + string m_strSndDone; + void() func_healthcharger; virtual void() customphysics; virtual void() PlayerUse; @@ -28,7 +43,7 @@ class func_healthcharger:CBaseTrigger void func_healthcharger::PlayerUse(void) { eActivator.gflags |= GF_USE_RELEASED; - + /* First come first serve */ if (m_eUser && eActivator != m_eUser) { return; @@ -36,19 +51,19 @@ void func_healthcharger::PlayerUse(void) /* First time */ if (m_eUser == world) { - sound(this, CHAN_VOICE, "items/medshot4.wav", 1.0, ATTN_NORM); + sound(this, CHAN_VOICE, m_strSndFirst, 1.0, ATTN_NORM); } - + if (m_flDelay > time) { return; } if (eActivator.health >= 100) { eActivator.gflags &= ~GF_USE_RELEASED; - sound(this, CHAN_VOICE, "items/medshotno1.wav", 1.0, ATTN_NORM); + sound(this, CHAN_VOICE, m_strSndDone, 1.0, ATTN_NORM); } else { if (m_eUser == world) { - sound(this, CHAN_ITEM, "items/medcharge4.wav", 1.0, ATTN_NORM); + sound(this, CHAN_ITEM, m_strSndCharging, 1.0, ATTN_NORM); } eActivator.health = bound(0, eActivator.health += 1, 100); } @@ -63,6 +78,7 @@ void func_healthcharger::customphysics(void) if (m_flCheck > time) { return; } + if (m_eUser) { sound(this, CHAN_ITEM, "misc/null.wav", 1.0, ATTN_NORM); m_eUser = world; @@ -71,10 +87,29 @@ void func_healthcharger::customphysics(void) void func_healthcharger::func_healthcharger(void) { - - precache_sound("items/medshot4.wav"); - precache_sound("items/medshotno1.wav"); - precache_sound("items/medcharge4.wav"); + m_strSndFirst = "items/medshot4.wav"; + m_strSndCharging = "items/medcharge4.wav"; + m_strSndDone = "items/medshotno1.wav"; + + for (int i = 1; i < (tokenize(__fullspawndata) - 1); i += 2) { + switch (argv(i)) { + case "snd_first": + m_strSndFirst = argv(i+1); + break; + case "snd_charging": + m_strSndCharging = argv(i+1); + break; + case "snd_done": + m_strSndDone = argv(i+1); + break; + default: + break; + } + } + + precache_sound(m_strSndFirst); + precache_sound(m_strSndCharging); + precache_sound(m_strSndDone); solid = SOLID_BSP; movetype = MOVETYPE_PUSH; diff --git a/src/gs-entbase/server/func_illusionary.cpp b/src/gs-entbase/server/func_illusionary.cpp index acdb5119..1bd39641 100644 --- a/src/gs-entbase/server/func_illusionary.cpp +++ b/src/gs-entbase/server/func_illusionary.cpp @@ -14,8 +14,17 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED func_illusionary (0 .5 .8) ? +"targetname" Name + +Brush that lets light to pass through it and is non-solid. +On idTech 2 BSPs, it will change texture variants when triggered. +*/ + class func_illusionary : CBaseEntity { + void() func_illusionary; + virtual void() Use; }; @@ -28,7 +37,7 @@ void func_illusionary :: func_illusionary ( void ) solid = SOLID_NOT; setmodel( this, model ); - // FIXME: Add support for (skin) -1 = Empty, -7 = Volumetric light + // TODO: Add support for (skin) -1 = Empty, -7 = Volumetric light if (skin < 0 ) { skin = 0; } diff --git a/src/gs-entbase/server/func_ladder.cpp b/src/gs-entbase/server/func_ladder.cpp index 379d4afc..69c3cd50 100644 --- a/src/gs-entbase/server/func_ladder.cpp +++ b/src/gs-entbase/server/func_ladder.cpp @@ -14,6 +14,12 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED func_ladder (0 .5 .8) ? +"targetname" Name + +Ladder volume. Climb up ladders with this one simple brush. +*/ + string g_laddersnd[] = { "player/pl_ladder1.wav", "player/pl_ladder2.wav", diff --git a/src/gs-entbase/server/func_pushable.cpp b/src/gs-entbase/server/func_pushable.cpp index 5d6e849a..bfa5bb52 100644 --- a/src/gs-entbase/server/func_pushable.cpp +++ b/src/gs-entbase/server/func_pushable.cpp @@ -14,6 +14,14 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED func_pushable (0 .5 .8) ? SF_TRIGGER SF_TOUCH SF_PRESSURE +"targetname" Name +"target" Target when triggered. +"killtarget" Target to kill when triggered. + +STUB! +*/ + class func_pushable:func_breakable { diff --git a/src/gs-entbase/server/func_recharge.cpp b/src/gs-entbase/server/func_recharge.cpp index 7da67c8f..b5821976 100644 --- a/src/gs-entbase/server/func_recharge.cpp +++ b/src/gs-entbase/server/func_recharge.cpp @@ -14,12 +14,27 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED func_recharge (0 .5 .8) ? +"targetname" Name +"target" Target when triggered. +"killtarget" Target to kill when triggered. +"snd_first" Sound to play when first used. +"snd_charging" Sound to play when first charging. +"snd_done" Sound to play when first finished charging. + +Brush that fills up your armor when used, to a maximum of 100 points. +*/ + class func_recharge:CBaseTrigger { entity m_eUser; float m_flDelay; float m_flCheck; + string m_strSndFirst; + string m_strSndCharging; + string m_strSndDone; + void() func_recharge; virtual void() customphysics; virtual void() PlayerUse; @@ -36,7 +51,7 @@ void func_recharge::PlayerUse(void) /* First time */ if (m_eUser == world) { - sound(this, CHAN_VOICE, "items/suitchargeok1.wav", 1.0, ATTN_NORM); + sound(this, CHAN_VOICE, m_strSndFirst, 1.0, ATTN_NORM); } if (m_flDelay > time) { @@ -45,10 +60,10 @@ void func_recharge::PlayerUse(void) if (eActivator.armor >= 100) { eActivator.gflags &= ~GF_USE_RELEASED; - sound(this, CHAN_VOICE, "items/suitchargeno1.wav", 1.0, ATTN_NORM); + sound(this, CHAN_VOICE, m_strSndDone, 1.0, ATTN_NORM); } else { if (m_eUser == world) { - sound(this, CHAN_ITEM, "items/suitcharge1.wav", 1.0, ATTN_NORM); + sound(this, CHAN_ITEM, m_strSndCharging, 1.0, ATTN_NORM); } eActivator.armor = bound(0, eActivator.armor += 1, 100); } @@ -71,10 +86,29 @@ void func_recharge::customphysics(void) void func_recharge::func_recharge(void) { - precache_sound("items/suitchargeok1.wav"); - precache_sound("items/suitchargeno1.wav"); - precache_sound("items/suitcharge1.wav"); + m_strSndFirst = "items/suitchargeok1.wav"; + m_strSndCharging = "items/suitcharge1.wav"; + m_strSndDone = "items/suitchargeno1.wav"; + for (int i = 1; i < (tokenize(__fullspawndata) - 1); i += 2) { + switch (argv(i)) { + case "snd_first": + m_strSndFirst = argv(i+1); + break; + case "snd_charging": + m_strSndCharging = argv(i+1); + break; + case "snd_done": + m_strSndDone = argv(i+1); + break; + default: + break; + } + } + + precache_sound(m_strSndFirst); + precache_sound(m_strSndCharging); + precache_sound(m_strSndDone); solid = SOLID_BSP; movetype = MOVETYPE_PUSH; diff --git a/src/gs-entbase/server/func_rotating.cpp b/src/gs-entbase/server/func_rotating.cpp index 6b128db5..bed15a2a 100644 --- a/src/gs-entbase/server/func_rotating.cpp +++ b/src/gs-entbase/server/func_rotating.cpp @@ -14,6 +14,16 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED func_rotating (0 .5 .8) ? FR_STARTON FR_REVERSE FR_ZAXIS FR_XAXIS FR_ACCDCC FR_FANPAIN FR_NOTSOLID FR_SMALLRADIUS FR_MRADIUS FR_LRADIUS +"targetname" Name +"target" Target when triggered. +"killtarget" Target to kill when triggered. +"speed" Speed in units per second. +"dmg" Damage applied to entity blocking its rotational path. + +Rotating brush object. Useful for fans, etc. +*/ + enumflags { FR_STARTON, @@ -45,6 +55,7 @@ void func_rotating :: Rotate( void ) { nextthink = ltime + 10.0f; } + void func_rotating :: Trigger ( void ) { if ( vlen( avelocity ) ) { diff --git a/src/gs-entbase/server/func_tracktrain.cpp b/src/gs-entbase/server/func_tracktrain.cpp index 931bb7b5..7ae353ce 100644 --- a/src/gs-entbase/server/func_tracktrain.cpp +++ b/src/gs-entbase/server/func_tracktrain.cpp @@ -14,6 +14,15 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED func_tracktrain (0 .5 .8) ? +"targetname" Name +"target" Target when triggered. +"killtarget" Target to kill when triggered. + +Moving platform following along path_* entities that's fully user controlled. +Very unfinished. +*/ + class func_tracktrain:CBaseTrigger { float m_flSpeed; diff --git a/src/gs-entbase/server/func_train.cpp b/src/gs-entbase/server/func_train.cpp index 1bc842e2..08efd163 100644 --- a/src/gs-entbase/server/func_train.cpp +++ b/src/gs-entbase/server/func_train.cpp @@ -14,6 +14,15 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED func_train (0 .5 .8) ? +"targetname" Name +"target" Target when triggered. +"killtarget" Target to kill when triggered. + +Moving platform following along path_* entities. +Very unfinished. +*/ + class func_train:CBaseTrigger { float m_flSpeed; diff --git a/src/gs-entbase/server/func_wall.cpp b/src/gs-entbase/server/func_wall.cpp index 9788716a..0e350952 100644 --- a/src/gs-entbase/server/func_wall.cpp +++ b/src/gs-entbase/server/func_wall.cpp @@ -14,6 +14,13 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED func_wall (0 .5 .8) ? +"targetname" Name + +Brush that lets light to pass through it. +On idTech 2 BSPs, it will change texture variants when triggered. +*/ + class func_wall : CBaseTrigger { void() func_wall; diff --git a/src/gs-entbase/server/func_wall_toggle.cpp b/src/gs-entbase/server/func_wall_toggle.cpp index 37c0395c..567ac304 100644 --- a/src/gs-entbase/server/func_wall_toggle.cpp +++ b/src/gs-entbase/server/func_wall_toggle.cpp @@ -14,6 +14,14 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED func_wall_toggle (0 .5 .8) ? FTW_STARTHIDDEN +"targetname" Name + +Brush that can be hidden and reappear when triggered. + +If FTW_STARTHIDDEN is set, it'll start hidden. +*/ + enumflags { FTW_STARTHIDDEN diff --git a/src/gs-entbase/server/game_text.cpp b/src/gs-entbase/server/game_text.cpp index e4d858d1..0162b47e 100644 --- a/src/gs-entbase/server/game_text.cpp +++ b/src/gs-entbase/server/game_text.cpp @@ -14,6 +14,33 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED game_text (1 0 0) (-8 -8 -8) (8 8 8) GTF_ALLPLAYERS +"targetname" Name +"x" Horizontal position of text. + (0 - 1.0 = left to right, -1 = center) +"y" Vertical position of text. + (0 - 1.0 = top to bottom, -1 = center) +"effect" Effect to apply to the text. + Valid values: + 0 = Fade In/Out + 1 = Credits + 2 = Scan Out +"color" The main colour in RGB8. +"color2" The highlight colour in RGB8. +"fadein" Time taken to fade in each character. +"fadeout" Time taken to fade out message. +"holdtime" Length of time to hold message on screen after fading in. +"fxtime" Time the highlight lags behind the leading edge of the text in + seconds. +"channel" Message channel to use. Meant for overriding messages. + +This entity displays a message of your choice on-screen. +Line breaks can be added with a \n character. + +If GTF_ALLPLAYERS is set, it'll display the message to not just the activator, +but all players on the level. +*/ + enumflags { GTF_ALLPLAYERS diff --git a/src/gs-entbase/server/infodecal.cpp b/src/gs-entbase/server/infodecal.cpp index 8d57bf9d..c1f09ea0 100644 --- a/src/gs-entbase/server/infodecal.cpp +++ b/src/gs-entbase/server/infodecal.cpp @@ -14,6 +14,15 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED infodecal (1 0 0) (-8 -8 -8) (8 8 8) +"texture" Name of the texture inside decals.wad it projects onto a surface. + +This entity only works on BSP version 30 levels. +Projects a decals.wad texture onto the nearest surface. +It'll automatically figure out the surface based on distance. +The texture will be aligned along the surface texture normals. +*/ + /* We need to save trace infos temporarily in order to figure out what to * project the decal against. Half-Life's infodecal entity only stores origin, * but not angles. So we have to figure them out ourselves. */ diff --git a/src/gs-entbase/server/item_food.cpp b/src/gs-entbase/server/item_food.cpp index cbfd2da3..e4f26f8e 100644 --- a/src/gs-entbase/server/item_food.cpp +++ b/src/gs-entbase/server/item_food.cpp @@ -14,6 +14,14 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED item_food (1 0 0) (-8 -8 -8) (8 8 8) +"targetname" Name +"angles" Sets the pitch, yaw and roll angles of the model. +"model" Model file that will be displayed by the entity. + +This is a food item that will give the user 1 health when touched. +*/ + class item_food { int m_iIsCan; diff --git a/src/gs-entbase/server/light.cpp b/src/gs-entbase/server/light.cpp index 0b35015d..14b923f2 100644 --- a/src/gs-entbase/server/light.cpp +++ b/src/gs-entbase/server/light.cpp @@ -14,6 +14,45 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED light (1 0 0) (-8 -8 -8) (8 8 8) OFF_OR_LINEAR +"targetname" Name + +Infinitely small point of light illuminating the scene. + +idTech 3 BSP relevant keys: +"light" Light intensity value. Default is '300'. +"_color" Normalized RGB color value. Default is '1 1 1'. +"radius" Sets the light cone radius. Default is '64'. +"target" When set, targets an enity instead, becoming a spotlight. + +If OFF_OR_LINEAR is set, the light will be cast with a linear falloff instead +of inverse square. This is useful for bright lights that'll travel long +distances. + +idTech 2 BSP relevant keys: +"light" Defines the brightness of the light. +"style" Light style ID. 0-11 are defined, 12-32 are reserved for switched + lights. List of pre-defined styles: + 0 = Normal + 1 = Flicker A + 2 = Slow strong pulse + 3 = Candle A + 4 = Fast strobe + 5 = Gentle pulse + 6 = Flicker B + 7 = Candle B + 8 = Candle C + 9 = Slow strobe + 10 = Fluorescent flicker + 11 = Slow pulse, no black +"pattern" Custom light style pattern. Needs unique light style ID. + Patterns are defined with letters of the alphabet. + 'a' being dark. 'z' being fully lit. Can be a string of characters + that'll interpolate between at 10 FPS ingame. + +If OFF_OR_LINEAR is set, it starts off/disabled. +*/ + class light:CBaseTrigger { int m_iEnabled; diff --git a/src/gs-entbase/server/monster_furniture.cpp b/src/gs-entbase/server/monster_furniture.cpp index 1258ea0b..c9edab08 100644 --- a/src/gs-entbase/server/monster_furniture.cpp +++ b/src/gs-entbase/server/monster_furniture.cpp @@ -14,6 +14,14 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED monster_furniture (1 0 0) (-8 -8 -8) (8 8 8) +"targetname" Name +"angles" Sets the pitch, yaw and roll angles of the model. +"model" Model file that will be displayed by the entity. + +Decorative, does nothing yet. +*/ + enumflags { MF_WAITTILSEEN, diff --git a/src/gs-entbase/server/monster_generic.cpp b/src/gs-entbase/server/monster_generic.cpp index 2a356212..38abbdf8 100644 --- a/src/gs-entbase/server/monster_generic.cpp +++ b/src/gs-entbase/server/monster_generic.cpp @@ -14,6 +14,14 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED monster_generic (1 0 0) (-8 -8 -8) (8 8 8) +"targetname" Name +"angles" Sets the pitch, yaw and roll angles of the model. +"model" Model file that will be displayed by the entity. + +Decorative, does nothing yet. +*/ + enumflags { MF_WAITTILLSEEN, diff --git a/src/gs-entbase/server/monstermaker.cpp b/src/gs-entbase/server/monstermaker.cpp index 8437f46a..4eb58e89 100644 --- a/src/gs-entbase/server/monstermaker.cpp +++ b/src/gs-entbase/server/monstermaker.cpp @@ -14,6 +14,15 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED monstermaker (1 0 0) (-8 -8 -8) (8 8 8) +"targetname" Name +"target" Target when triggered. +"killtarget" Target to kill when triggered. + +All it does right now is spawn snarks, regardless of what monster you want to +spawn. +*/ + #ifdef VALVE void() w_snark_deploy; #endif diff --git a/src/gs-entbase/server/multi_manager.cpp b/src/gs-entbase/server/multi_manager.cpp index 780cdf9f..f53ea2fe 100644 --- a/src/gs-entbase/server/multi_manager.cpp +++ b/src/gs-entbase/server/multi_manager.cpp @@ -14,6 +14,17 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED multi_manager (1 0 0) (-8 -8 -8) (8 8 8) MM_MULTITHREADED +"targetname" Name + +Triggers a maximum of 16 user defined entities with additonal timers. +Add a target's name as an entity key, with the value set to the time in seconds +that'll pass before the entity will be triggered. + +If MM_MULTITHREADED is set, it'll allow the multi_manager to be triggered +again before it has finished triggering it's previous list of entities. +*/ + #define MM_MULTITHREADED 1 class multi_manager : CBaseTrigger diff --git a/src/gs-entbase/server/multisource.cpp b/src/gs-entbase/server/multisource.cpp index b0b5de85..63289b28 100644 --- a/src/gs-entbase/server/multisource.cpp +++ b/src/gs-entbase/server/multisource.cpp @@ -14,6 +14,14 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED multisource (1 0 0) (-8 -8 -8) (8 8 8) +"targetname" Name +"target" Target when triggered. +"killtarget" Target to kill when triggered. + +STUB! +*/ + class multisource : CBaseTrigger { void() multisource; diff --git a/src/gs-entbase/server/path_corner.cpp b/src/gs-entbase/server/path_corner.cpp index ff0ba0d5..b33fa13a 100644 --- a/src/gs-entbase/server/path_corner.cpp +++ b/src/gs-entbase/server/path_corner.cpp @@ -14,6 +14,14 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED path_corner (1 0 0) (-8 -8 -8) (8 8 8) +"targetname" Name +"target" Target when triggered. +"killtarget" Target to kill when triggered. + +STUB! +*/ + class path_corner:CBaseTrigger { float m_flSpeed; diff --git a/src/gs-entbase/server/path_track.cpp b/src/gs-entbase/server/path_track.cpp index 3e4195d6..92b57718 100644 --- a/src/gs-entbase/server/path_track.cpp +++ b/src/gs-entbase/server/path_track.cpp @@ -14,6 +14,14 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED path_track (1 0 0) (-8 -8 -8) (8 8 8) +"targetname" Name +"target" Target when triggered. +"killtarget" Target to kill when triggered. + +STUB! +*/ + class path_track:CBaseTrigger { float m_flSpeed; diff --git a/src/gs-entbase/server/scripted_sentence.cpp b/src/gs-entbase/server/scripted_sentence.cpp index 9ee751ec..eba3864b 100644 --- a/src/gs-entbase/server/scripted_sentence.cpp +++ b/src/gs-entbase/server/scripted_sentence.cpp @@ -14,6 +14,20 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED scripted_sentence (1 0 0) (-8 -8 -8) (8 8 8) +"targetname" Name +"target" Target when triggered. +"killtarget" Target to kill when triggered. +"entity" Name of the entity that'll speak the sentence. +"sentence" Name of sentence from titles.txt. +"pitch" Desired sound pitch. May be overridden in the titles.txt entry. +"delay" Delay before it'll be triggered? UNUSED RIGHT NOW. +"wait" Delay before it can be triggered again? UNUSED RIGHT NOW. + +Triggers a sound event on the client side associated with an entity in the +world. It'll enable mouth flapping and all sorts of other cool effects. +*/ + class scripted_sentence:CBaseTrigger { string m_strSpeaker; diff --git a/src/gs-entbase/server/scripted_sequence.cpp b/src/gs-entbase/server/scripted_sequence.cpp index 5c2b290c..41095cf4 100644 --- a/src/gs-entbase/server/scripted_sequence.cpp +++ b/src/gs-entbase/server/scripted_sequence.cpp @@ -14,6 +14,29 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED scripted_sequence (1 0 0) (-8 -8 -8) (8 8 8) x x SSFL_REPEATABLE SSFL_LEAVECORPSE x SSFL_NOINTERRUPT SSFL_OVERRIDEAI SSFL_NOSCRIPTMOVE +"targetname" Name +"target" Target when triggered. +"killtarget" Target to kill when triggered. +"m_iszEntity" Entity targetname OR classname description to target +"m_iszPlay" After the monster has moved to the action point, play this animation +"m_iszIdle" Animation to play until the scripted_sequence is triggered +"m_flRadius" Search radius for m_targetMonster if a classname is specified +"m_flRepeat" Loop? Unused. +"m_fMoveTo" How we move to perform m_iActionAnim + +f_fMoveTo values: + 0 = Don't move or turn + 1 = Walk to the scripted_sequence + 2 = Run to the scripted_sequence + 3 = Unused/Not defined. Do not use this. + 4 = Warp to the location of the scripted_sequence and perform the animation. + 5 = Turn to the scripted_sequence's angle before performing the animation. + +Allow a monster to be selected and given an action to perform. +This is done in the form of olaying an animation. +*/ + /* * Scripted Sequences * ================== diff --git a/src/gs-entbase/server/trigger_auto.cpp b/src/gs-entbase/server/trigger_auto.cpp index f0bf2987..08aa2764 100644 --- a/src/gs-entbase/server/trigger_auto.cpp +++ b/src/gs-entbase/server/trigger_auto.cpp @@ -14,6 +14,17 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED trigger_auto (1 0 0) (-8 -8 -8) (8 8 8) TA_USEONCE +"targetname" Name +"target" Target when triggered. +"killtarget" Target to kill when triggered. +"delay" Time in seconds until it triggers its target. + +Will automatically start working when the level has spawned. +If TA_USEONCE is set, it'll remove itself from the level permanently. +It will not survive round respawns, etc. +*/ + class trigger_auto:CBaseTrigger { float m_flDelay; diff --git a/src/gs-entbase/server/trigger_autosave.cpp b/src/gs-entbase/server/trigger_autosave.cpp index 57cdd0a2..4e328024 100644 --- a/src/gs-entbase/server/trigger_autosave.cpp +++ b/src/gs-entbase/server/trigger_autosave.cpp @@ -14,6 +14,13 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED trigger_autosave (0 .5 .8) ? +"targetname" Name + +Volume that'll save the current game when a client enters its bounds. +This entity does not work in multiplayer. +*/ + class trigger_autosave:CBaseTrigger { float m_flDelay; diff --git a/src/gs-entbase/server/trigger_camera.cpp b/src/gs-entbase/server/trigger_camera.cpp index 24538cc5..25ca632e 100644 --- a/src/gs-entbase/server/trigger_camera.cpp +++ b/src/gs-entbase/server/trigger_camera.cpp @@ -14,6 +14,15 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED trigger_camera (1 0 0) (-8 -8 -8) (8 8 8) +"targetname" Name +"angles" Sets the pitch, yaw and roll angles of the camera +"target" Which entity we're aiming at. Overrides angles. +"wait" How long to hold onto the target. + +Causes the activators first-person camera to switch to the view of this entity. +*/ + class trigger_camera:CBaseTrigger { float m_flWait; diff --git a/src/gs-entbase/server/trigger_cdaudio.cpp b/src/gs-entbase/server/trigger_cdaudio.cpp index d99d98db..e0becaac 100644 --- a/src/gs-entbase/server/trigger_cdaudio.cpp +++ b/src/gs-entbase/server/trigger_cdaudio.cpp @@ -14,6 +14,13 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED trigger_cdaudio (0 .5 .8) ? +"targetname" Name +"health" Music track to play. + +Switches the background music track when triggered. +*/ + class trigger_cdaudio : CBaseTrigger { int m_iCDTrack; diff --git a/src/gs-entbase/server/trigger_changelevel.cpp b/src/gs-entbase/server/trigger_changelevel.cpp index 0c479cab..20dfcc05 100644 --- a/src/gs-entbase/server/trigger_changelevel.cpp +++ b/src/gs-entbase/server/trigger_changelevel.cpp @@ -14,6 +14,23 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED trigger_changelevel (0 .5 .8) ? LC_NOINTERMISSION LC_USEONLY +"targetname" Name +"map" Next .bsp file name to transition to. +"landmark" Landmark name to target. +"changedelay" Time in seconds until the transition happens. + +When a Landmark is specified, you will have to position two info_landmark +entities across your two levels with the same name. They'll mark a translation +point for the coordinates in your levels. + +When LC_NOINTERMISSION is set, there'll be no stats screen at the end of the +level. + +When LC_USEONLY is set, it will not act as a trigger volume people can step in. +It'll have to be triggered by another entity. +*/ + vector g_landmarkpos; enumflags diff --git a/src/gs-entbase/server/trigger_endsection.cpp b/src/gs-entbase/server/trigger_endsection.cpp index ef453070..9475f0fb 100644 --- a/src/gs-entbase/server/trigger_endsection.cpp +++ b/src/gs-entbase/server/trigger_endsection.cpp @@ -14,6 +14,13 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED trigger_endsection (0 .5 .8) ? +"targetname" Name + +This trigger shuts down the server. +Useful for when a singleplayer game ends, as it takes you to the main menu. +*/ + class trigger_endsection:CBaseTrigger { void() trigger_endsection; diff --git a/src/gs-entbase/server/trigger_gravity.cpp b/src/gs-entbase/server/trigger_gravity.cpp index fbe49058..2a4a770a 100644 --- a/src/gs-entbase/server/trigger_gravity.cpp +++ b/src/gs-entbase/server/trigger_gravity.cpp @@ -14,6 +14,13 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED trigger_gravity (0 .5 .8) ? +"targetname" Name +"gravity" Gravity multiplier. + +Volume that permanently adds a multiplier that affects an entities' gravity. +*/ + #ifdef CSQC class trigger_gravity:CBaseEntity #else diff --git a/src/gs-entbase/server/trigger_hurt.cpp b/src/gs-entbase/server/trigger_hurt.cpp index eb4bcfbe..e5a670d0 100644 --- a/src/gs-entbase/server/trigger_hurt.cpp +++ b/src/gs-entbase/server/trigger_hurt.cpp @@ -14,9 +14,26 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -#define SF_HURT_ONCE 1 // Turn off once it fired the first time -#define SF_HURT_OFF 2 // Needs to be triggered in order to work again -#define SF_HURT_NOPLAYERS 8 // Don't hurt players +/*QUAKED trigger_hurt (0 .5 .8) ? SF_HURT_ONCE SF_HURT_OFF x SF_HURT_NOPLAYERS SF_HURT_FIREONPLAYER SF_HURT_TOUCHPLAYER +"targetname" Name +"target" Target when triggered. +"delay" Delay until target is triggered. +"killtarget" Target to kill when triggered. +"dmg" Damage inflicted. + +Trigger volume that damages everything it touches. + +If SF_HURT_ONCE is set, it'll stop once it's been triggered the first time. +If SF_HURT_OFF is set, it needs to be triggered in order to work again. +If SF_HURT_NOPLAYERS is set, it will only NPCs. +If SF_HURT_TOUCHPLAYER is set, it'll only hurt players. +If SF_HURT_FIREONPLAYER is set, it'll only trigger a target if a player +activates it. +*/ + +#define SF_HURT_ONCE 1 // Turn off once it fired the first time +#define SF_HURT_OFF 2 // Needs to be triggered in order to work again +#define SF_HURT_NOPLAYERS 8 // Don't hurt players #define SF_HURT_FIREONPLAYER 16 // Only call UseTarget functions when it's a player #define SF_HURT_TOUCHPLAYER 32 // Only hurt players diff --git a/src/gs-entbase/server/trigger_multiple.cpp b/src/gs-entbase/server/trigger_multiple.cpp index 9237e512..d271942b 100644 --- a/src/gs-entbase/server/trigger_multiple.cpp +++ b/src/gs-entbase/server/trigger_multiple.cpp @@ -14,6 +14,18 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED trigger_multiple (0 .5 .8) ? TM_MONSTERS TM_NOCLIENTS TM_PUSHABLES +"targetname" Name +"target" Target when triggered. +"killtarget" Target to kill when triggered. +"delay" Delay until target is triggered. +"wait" Time until this entity can trigger again + +A trigger volume which works more than once. + +None of the spawnflags are implemented yet. +*/ + // TODO: These are missing enumflags { diff --git a/src/gs-entbase/server/trigger_once.cpp b/src/gs-entbase/server/trigger_once.cpp index f8900d25..ec122f0c 100644 --- a/src/gs-entbase/server/trigger_once.cpp +++ b/src/gs-entbase/server/trigger_once.cpp @@ -14,6 +14,17 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED trigger_once (0 .5 .8) ? TO_MONSTERS TO_NOCLIENTS TO_PUSHABLES +"targetname" Name +"target" Target when triggered. +"killtarget" Target to kill when triggered. +"delay" Delay until target is triggered. + +A trigger volume which works only once. + +None of the spawnflags are implemented yet. +*/ + // TODO: These are missing enumflags { diff --git a/src/gs-entbase/server/trigger_push.cpp b/src/gs-entbase/server/trigger_push.cpp index 1629cede..a1416e5e 100644 --- a/src/gs-entbase/server/trigger_push.cpp +++ b/src/gs-entbase/server/trigger_push.cpp @@ -14,6 +14,17 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED trigger_push (0 .5 .8) ? TP_ONCE TP_STARTOFF +"targetname" Name +"speed" The speed (units per second) it'll apply to touchers. +"angles" Sets the direction of the push. + +Pushes anything in its volume into a direction of your choosing. + +If TP_ONCE is set, It'll only emit a single push once before disabling itself. +If TP_STARTOFF is set, it needs to be triggered first in order to function. +*/ + #define TP_ONCE 1 #define TP_STARTOFF 2 #define TP_AAAA 4 diff --git a/src/gs-entbase/server/trigger_relay.cpp b/src/gs-entbase/server/trigger_relay.cpp index f5ad07e4..c938da1d 100644 --- a/src/gs-entbase/server/trigger_relay.cpp +++ b/src/gs-entbase/server/trigger_relay.cpp @@ -14,4 +14,12 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED trigger_relay (0 .5 .8) ? +"targetname" Name +"target" Target when triggered. +"killtarget" Target to kill when triggered. + +See trigger_once. +*/ + CLASSEXPORT(trigger_relay, trigger_once) diff --git a/src/gs-entbase/server/trigger_teleport.cpp b/src/gs-entbase/server/trigger_teleport.cpp index 541b4b66..263680a5 100644 --- a/src/gs-entbase/server/trigger_teleport.cpp +++ b/src/gs-entbase/server/trigger_teleport.cpp @@ -14,6 +14,14 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED trigger_teleport (0 .5 .8) ? +"targetname" Name +"target" Which target to teleport to. + +Teleportation volume. Teleports anything it touches to the position of +any entity set as the "target". Works best with info_teleport_destination. +*/ + class trigger_teleport:CBaseTrigger { void() trigger_teleport; @@ -48,4 +56,9 @@ void trigger_teleport::trigger_teleport(void) CBaseTrigger::InitBrushTrigger(); } +/*QUAKED info_teleport_destination (1 0 0) (-8 -8 -8) (8 8 8) +"targetname" Name + +Entity designed to designate a destination for a trigger_teleport. +*/ CLASSEXPORT(info_teleport_destination, info_notnull) diff --git a/src/gs-entbase/server/trigger_transition.cpp b/src/gs-entbase/server/trigger_transition.cpp index 316ebd21..197f555d 100644 --- a/src/gs-entbase/server/trigger_transition.cpp +++ b/src/gs-entbase/server/trigger_transition.cpp @@ -14,6 +14,13 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/*QUAKED trigger_transition (0 .5 .8) ? +"targetname" Name + +Currently unused. This is meant for defining level transition regions. +All entities touching this volume would carry across to the next level. +*/ + class trigger_transition { void() trigger_transition; diff --git a/src/shared/scihunt/w_cannon.c b/src/shared/scihunt/w_cannon.c index 718b748a..8e3e9130 100644 --- a/src/shared/scihunt/w_cannon.c +++ b/src/shared/scihunt/w_cannon.c @@ -220,25 +220,25 @@ void w_cannon_hudpic(int s, vector pos) weapon_t w_cannon = { - ITEM_CANNON, - 2, - 3, - "sprites/w_cannon.spr_0.tga", - [48,16], - [192,0], - w_cannon_draw, - w_cannon_holster, - w_cannon_primary, - w_cannon_secondary, - w_cannon_reload, - w_cannon_release, - w_cannon_crosshair, - w_cannon_precache, - w_cannon_pickup, - w_cannon_updateammo, - __NULL__, - w_cannon_pmodel, - w_cannon_deathmsg, - w_cannon_aimanim, - w_cannon_hudpic + .id = ITEM_CANNON, + .slot = 2, + .slot_pos = 3, + .ki_spr = "sprites/w_cannon.spr_0.tga", + .ki_size = [48,16], + .ki_xy = [192,0], + .draw = w_cannon_draw, + .holster = w_cannon_holster, + .primary = w_cannon_primary, + .secondary = w_cannon_secondary, + .reload = w_cannon_reload, + .release = w_cannon_release, + .crosshair = w_cannon_crosshair, + .precache = w_cannon_precache, + .pickup = w_cannon_pickup, + .updateammo = w_cannon_updateammo, + .wmodel = __NULL__, + .pmodel = w_cannon_pmodel, + .deathmsg = w_cannon_deathmsg, + .aimanim = w_cannon_aimanim, + .hudpic = w_cannon_hudpic }; diff --git a/src/shared/scihunt/w_chainsaw.c b/src/shared/scihunt/w_chainsaw.c index 0d30a425..390e3658 100644 --- a/src/shared/scihunt/w_chainsaw.c +++ b/src/shared/scihunt/w_chainsaw.c @@ -153,25 +153,25 @@ void w_chainsaw_hudpic(int s, vector pos) weapon_t w_chainsaw = { - ITEM_CHAINSAW, - 0, - 2, - "sprites/chainsaw.spr_0.tga", - [48,16], - [192,0], - w_chainsaw_draw, - w_chainsaw_holster, - w_chainsaw_primary, - w_chainsaw_release, - w_chainsaw_release, - w_chainsaw_release, - __NULL__, - w_chainsaw_precache, - __NULL__, - w_chainsaw_updateammo, - __NULL__, - w_chainsaw_pmodel, - w_chainsaw_deathmsg, - w_chainsaw_aimanim, - w_chainsaw_hudpic + .id = ITEM_CHAINSAW, + .slot = 0, + .slot_pos = 2, + .ki_spr = "sprites/chainsaw.spr_0.tga", + .ki_size = [48,16], + .ki_xy = [192,0], + .draw = w_chainsaw_draw, + .holster = w_chainsaw_holster, + .primary = w_chainsaw_primary, + .secondary = w_chainsaw_release, + .reload = w_chainsaw_release, + .release = w_chainsaw_release, + .crosshair = __NULL__, + .precache = w_chainsaw_precache, + .pickup = __NULL__, + .updateammo = w_chainsaw_updateammo, + .wmodel = __NULL__, + .pmodel = w_chainsaw_pmodel, + .deathmsg = w_chainsaw_deathmsg, + .aimanim = w_chainsaw_aimanim, + .hudpic = w_chainsaw_hudpic }; diff --git a/src/shared/scihunt/w_hammer.c b/src/shared/scihunt/w_hammer.c index 37c59577..9e26b0f9 100644 --- a/src/shared/scihunt/w_hammer.c +++ b/src/shared/scihunt/w_hammer.c @@ -215,25 +215,25 @@ void w_hammer_hudpic(int s, vector pos) weapon_t w_hammer = { - ITEM_HAMMER, - 0, - 1, - "sprites/hammer.spr_0.tga", - [48,16], - [192,0], - w_hammer_draw, - w_hammer_holster, - w_hammer_primary, - w_hammer_secondary, - w_hammer_reload, - w_hammer_release, - __NULL__, - w_hammer_precache, - __NULL__, - w_hammer_updateammo, - __NULL__, - w_hammer_pmodel, - w_hammer_deathmsg, - w_hammer_aimanim, - w_hammer_hudpic + .id = ITEM_HAMMER, + .slot = 0, + .slot_pos = 1, + .ki_spr = "sprites/hammer.spr_0.tga", + .ki_size = [48,16], + .ki_xy = [192,0], + .draw = w_hammer_draw, + .holster = w_hammer_holster, + .primary = w_hammer_primary, + .secondary = w_hammer_secondary, + .reload = w_hammer_reload, + .release = w_hammer_release, + .crosshair = __NULL__, + .precache = w_hammer_precache, + .pickup = __NULL__, + .updateammo = w_hammer_updateammo, + .wmodel = __NULL__, + .pmodel = w_hammer_pmodel, + .deathmsg = w_hammer_deathmsg, + .aimanim = w_hammer_aimanim, + .hudpic = w_hammer_hudpic }; diff --git a/src/shared/spraylogo.cpp b/src/shared/spraylogo.cpp index ae380e8e..27163ec5 100644 --- a/src/shared/spraylogo.cpp +++ b/src/shared/spraylogo.cpp @@ -36,7 +36,7 @@ float Spray_SendEntity(entity ePVSEnt, float fChanged) WriteCoord(MSG_ENTITY, self.angles[2]); WriteEntity(MSG_ENTITY, self.owner); return TRUE; -} +} void CSEv_Spraylogo(void) {