--- /dev/null
+#pragma once
+
+//-----------
+// SPAWNFLAGS
+//-----------
+const int START_ENABLED = BIT(0);
+const int START_DISABLED = BIT(0);
+const int ALL_ENTITIES = BIT(1);
+const int ON_MAPLOAD = BIT(1);
+const int INVERT_TEAMS = BIT(2);
+const int CRUSH = BIT(2);
+const int NOSPLASH = BIT(8); // generic anti-splashdamage spawnflag
+const int ONLY_PLAYERS = BIT(14);
+
+// triggers
+const int SPAWNFLAG_NOMESSAGE = BIT(0);
+const int SPAWNFLAG_NOTOUCH = BIT(0);
+
+//----------
+// SENDFLAGS
+//----------
+const int SF_TRIGGER_INIT = BIT(0);
+const int SF_TRIGGER_UPDATE = BIT(1);
+const int SF_TRIGGER_RESET = BIT(2);
+
+//----------------
+// STATES & ACTIVE
+//----------------
+#ifdef CSQC
+// this stuff is defined in the server side engine VM, so we must define it separately here
+const int STATE_TOP = 0;
+const int STATE_BOTTOM = 1;
+const int STATE_UP = 2;
+const int STATE_DOWN = 3;
+
+const int ACTIVE_NOT = 0;
+const int ACTIVE_ACTIVE = 1;
+const int ACTIVE_IDLE = 2;
+const int ACTIVE_BUSY = 2;
+const int ACTIVE_TOGGLE = 3;
+#endif
#pragma once
-#include "../spawnflags.qh"
+
+
+const int BOBBING_XAXIS = BIT(0);
+const int BOBBING_YAXIS = BIT(1);
#pragma once
-#include "../spawnflags.qh"
-#include "../states.qh"
+const int BREAKABLE_INDICATE_DAMAGE = BIT(1);
+const int BREAKABLE_NODAMAGE = BIT(2);
+
+const int STATE_ALIVE = 0;
+const int STATE_BROKEN = 1;
+
#ifdef SVQC
spawnfunc(func_breakable);
#endif
#pragma once
-#include "../spawnflags.qh"
+
+
+const int BUTTON_DONTACCUMULATEDMG = BIT(7);
#pragma once
-#include "../spawnflags.qh"
-#include "../states.qh"
+#include "../defs.qh"
IntrusiveList g_conveyed;
STATIC_INIT(g_conveyed) { g_conveyed = IL_NEW(); }
#pragma once
-#include "../spawnflags.qh"
+
+
+const int DOOR_START_OPEN = BIT(0);
+const int DOOR_DONT_LINK = BIT(2);
+const int SPAWNFLAGS_GOLD_KEY = BIT(3); // Quake 1 compat, can only be used with func_door!
+const int SPAWNFLAGS_SILVER_KEY = BIT(4); // Quake 1 compat, can only be used with func_door!
+const int DOOR_TOGGLE = BIT(5);
+
+const int DOOR_NONSOLID = BIT(10);
+const int DOOR_CRUSH = BIT(11); // can't use CRUSH cause that is the same as DOOR_DONT_LINK
#ifdef CSQC
#pragma once
+const int DOOR_ROTATING_BIDIR = BIT(1);
+const int DOOR_ROTATING_BIDIR_IN_DOWN = BIT(3);
+
+const int DOOR_ROTATING_XAXIS = BIT(6);
+const int DOOR_ROTATING_YAXIS = BIT(7);
+
+
#ifdef GAMEQC
void door_rotating_go_down(entity this);
void door_rotating_go_up(entity this, entity oth);
#pragma once
-#include "../spawnflags.qh"
+
+
+const int DOOR_SECRET_OPEN_ONCE = BIT(0); // stays open - LEGACY, set wait to -1 instead
+const int DOOR_SECRET_1ST_LEFT = BIT(1); // 1st move is left of arrow
+const int DOOR_SECRET_1ST_DOWN = BIT(2); // 1st move is down from arrow
+const int DOOR_SECRET_NO_SHOOT = BIT(3); // only opened by trigger
+const int DOOR_SECRET_YES_SHOOT = BIT(4); // shootable even if targeted
spawnfunc(func_plat)
{
- if (this.spawnflags & PLAT_CRUSH)
+ if (this.spawnflags & CRUSH)
{
this.dmg = 10000;
}
#pragma once
+
+// spawnflags
+const int PARTICLES_IMPULSE = BIT(1);
+const int PARTICLES_VISCULLING = BIT(2);
+
+// sendflags
+const int SF_POINTPARTICLES_IMPULSE = BIT(4);
+const int SF_POINTPARTICLES_MOVING = BIT(5); // Send velocity and movedir
+const int SF_POINTPARTICLES_JITTER_AND_COUNT = BIT(6); // Send waterlevel (=jitter) and count
+const int SF_POINTPARTICLES_BOUNDS = BIT(7); // Send min and max of the brush
#pragma once
-#include "../spawnflags.qh"
+
+
+const int FUNC_ROTATING_XAXIS = BIT(2);
+const int FUNC_ROTATING_YAXIS = BIT(3);
+const int FUNC_ROTATING_STARTOFF = BIT(4);
#pragma once
-#include "../spawnflags.qh"
+
+
+const int TRAIN_CURVE = BIT(0);
+const int TRAIN_TURN = BIT(1);
+const int TRAIN_NEEDACTIVATION = BIT(2);
#ifdef CSQC
.float dmgtime;
#pragma once
-#include "../spawnflags.qh"
+const int PROJECT_ON_TARGETNORMAL = BIT(0);
+const int PROJECT_ON_TARGET2NORMAL = BIT(1);
+const int PROJECT_ON_TARGET3NORMAL = BIT(2);
+const int PROJECT_ON_TARGET4NORMAL = BIT(3);
+
const float vectormamamam_timestep = 0.1;
#pragma once
-#include "../spawnflags.qh"
+
+
+const int FOLLOW_ATTACH = BIT(0);
+const int FOLLOW_LOCAL = BIT(1);
#pragma once
-#include "../spawnflags.qh"
+const int LASER_FINITE = BIT(1);
+const int LASER_NOTRACE = BIT(2);
+const int LASER_INVERT_TEAM = BIT(3);
+
+const int SF_LASER_UPDATE_ORIGIN = BIT(0);
+const int SF_LASER_UPDATE_TARGET = BIT(1);
+const int SF_LASER_UPDATE_ACTIVE = BIT(2);
+const int SF_LASER_UPDATE_EFFECT = BIT(3);
+
+const int SF_LASER_NOTRACE = BIT(4);
+const int SF_LASER_SCALE = BIT(5);
+const int SF_LASER_ALPHA = BIT(6);
+const int SF_LASER_FINITE = BIT(7);
+
.vector beam_color;
const float LASER_BEAM_MAXLENGTH = 32768; // maximum length of a beam trace
void plat_crush(entity this, entity blocker)
{
- if((this.spawnflags & PLAT_CRUSH) && (blocker.takedamage != DAMAGE_NO))
+ if((this.spawnflags & CRUSH) && (blocker.takedamage != DAMAGE_NO))
{ // KIll Kill Kill!!
#ifdef SVQC
Damage (blocker, this, this, 10000, DEATH_HURTTRIGGER.m_id, DMG_NOWEP, blocker.origin, '0 0 0');
#pragma once
-#include "spawnflags.qh"
+
+
+const int PLAT_LOW_TRIGGER = BIT(0);
.float dmgtime2;
+++ /dev/null
-#pragma once
-
-// generic usage
-const int START_ENABLED = BIT(0);
-const int START_DISABLED = BIT(0);
-const int ALL_ENTITIES = BIT(1);
-const int ON_MAPLOAD = BIT(1);
-const int INVERT_TEAMS = BIT(2);
-const int NOSPLASH = BIT(8); // generic anti-splashdamage spawnflag
-const int ONLY_PLAYERS = BIT(14);
-
-// triggers
-const int SPAWNFLAG_NOMESSAGE = BIT(0);
-const int SPAWNFLAG_NOTOUCH = BIT(0); // why are these the same?
-
-// bobbing
-const int BOBBING_XAXIS = BIT(0);
-const int BOBBING_YAXIS = BIT(1);
-
-// breakable
-const int BREAKABLE_INDICATE_DAMAGE = BIT(1);
-const int BREAKABLE_NODAMAGE = BIT(2);
-
-// button
-const int BUTTON_DONTACCUMULATEDMG = BIT(7);
-
-// door, door_rotating and door_secret
-const int DOOR_START_OPEN = BIT(0);
-const int DOOR_DONT_LINK = BIT(2);
-const int SPAWNFLAGS_GOLD_KEY = BIT(3); // Quake 1 compat, can only be used with func_door!
-const int SPAWNFLAGS_SILVER_KEY = BIT(4); // Quake 1 compat, can only be used with func_door!
-const int DOOR_TOGGLE = BIT(5);
-
-const int DOOR_NONSOLID = BIT(10);
-const int DOOR_CRUSH = BIT(11); // can't use PLAT_CRUSH cause that is the same as DOOR_DONT_LINK
-
-const int DOOR_ROTATING_BIDIR = BIT(1);
-const int DOOR_ROTATING_BIDIR_IN_DOWN = BIT(3);
-
-const int DOOR_ROTATING_XAXIS = BIT(6);
-const int DOOR_ROTATING_YAXIS = BIT(7);
-
-const int DOOR_SECRET_OPEN_ONCE = BIT(0); // stays open - LEGACY, set wait to -1 instead
-const int DOOR_SECRET_1ST_LEFT = BIT(1); // 1st move is left of arrow
-const int DOOR_SECRET_1ST_DOWN = BIT(2); // 1st move is down from arrow
-const int DOOR_SECRET_NO_SHOOT = BIT(3); // only opened by trigger
-const int DOOR_SECRET_YES_SHOOT = BIT(4); // shootable even if targeted
-
-// particles
-const int PARTICLES_IMPULSE = BIT(1);
-const int PARTICLES_VISCULLING = BIT(2);
-
-// rotating
-const int FUNC_ROTATING_XAXIS = BIT(2);
-const int FUNC_ROTATING_YAXIS = BIT(3);
-const int FUNC_ROTATING_STARTOFF = BIT(4);
-
-// train
-const int TRAIN_CURVE = BIT(0);
-const int TRAIN_TURN = BIT(1);
-const int TRAIN_NEEDACTIVATION = BIT(2);
-
-// jumppads
-const int PUSH_ONCE = BIT(0); // legacy, deactivate with relay instead
-const int PUSH_SILENT = BIT(1); // not used?
-
-// viewloc
-const int VIEWLOC_NOSIDESCROLL = BIT(0); // NOTE: currently unimplemented
-const int VIEWLOC_FREEAIM = BIT(1);
-const int VIEWLOC_FREEMOVE = BIT(2);
-
-// vectormamamam
-const int PROJECT_ON_TARGETNORMAL = BIT(0);
-const int PROJECT_ON_TARGET2NORMAL = BIT(1);
-const int PROJECT_ON_TARGET3NORMAL = BIT(2);
-const int PROJECT_ON_TARGET4NORMAL = BIT(3);
-
-// follow
-const int FOLLOW_ATTACH = BIT(0);
-const int FOLLOW_LOCAL = BIT(1);
-
-// laser
-const int LASER_FINITE = BIT(1);
-const int LASER_NOTRACE = BIT(2);
-const int LASER_INVERT_TEAM = BIT(3);
-
-// platforms
-const int PLAT_LOW_TRIGGER = BIT(0);
-const int PLAT_CRUSH = BIT(2);
-
-// changelevel
-const int CHANGELEVEL_MULTIPLAYER = BIT(1);
-
-// speaker
-const int SPEAKER_LOOPED_ON = BIT(0);
-const int SPEAKER_LOOPED_OFF = BIT(1);
-const int SPEAKER_GLOBAL = BIT(2); // legacy, set speaker atten to -1 instead
-const int SPEAKER_ACTIVATOR = BIT(3);
-
-// teleport
-const int TELEPORT_FLAG_SOUND = BIT(0);
-const int TELEPORT_FLAG_PARTICLES = BIT(1);
-const int TELEPORT_FLAG_TDEATH = BIT(2);
-const int TELEPORT_FLAG_FORCE_TDEATH = BIT(3);
-
-// counter
-const int COUNTER_FIRE_AT_COUNT = BIT(2);
-
-// gravity
-const int GRAVITY_STICKY = BIT(0); // keep gravity multiplier even after exiting the trigger_gravity
-const int GRAVITY_START_DISABLED = BIT(1);
-
-// heal
-const int HEAL_SOUND_ALWAYS = BIT(2);
-
-// impulse
-const int IMPULSE_DIRECTIONAL_SPEEDTARGET = BIT(6);
-
-// magicear
-const int MAGICEAR_IGNORE_SAY = BIT(0);
-const int MAGICEAR_IGNORE_TEAMSAY = BIT(1);
-const int MAGICEAR_IGNORE_TELL = BIT(2);
-const int MAGICEAR_IGNORE_INVALIDTELL = BIT(3);
-const int MAGICEAR_REPLACE_WHOLE_MESSAGE = BIT(4);
-const int MAGICEAR_REPLACE_OUTSIDE = BIT(5);
-const int MAGICEAR_CONTINUE = BIT(6);
-const int MAGICEAR_NODECOLORIZE = BIT(7);
-const int MAGICEAR_TUBA = BIT(8);
-const int MAGICEAR_TUBA_EXACTPITCH = BIT(9);
-
-// monoflop
-const int MONOFLOP_FIXED = BIT(0);
-
-// relay_if
-const int RELAYIF_NEGATE = BIT(0);
-
-// relay_teamcheck
-const int RELAYTEAMCHECK_NOTEAM = BIT(0);
-const int RELAYTEAMCHECK_INVERT = BIT(1);
-
-//----------
-// SENDFLAGS
-//----------
-const int SF_TRIGGER_INIT = BIT(0);
-const int SF_TRIGGER_UPDATE = BIT(1);
-const int SF_TRIGGER_RESET = BIT(2);
-
-// pointparticles
-const int SF_POINTPARTICLES_IMPULSE = BIT(4);
-const int SF_POINTPARTICLES_MOVING = BIT(5); // Send velocity and movedir
-const int SF_POINTPARTICLES_JITTER_AND_COUNT = BIT(6); // Send waterlevel (=jitter) and count
-const int SF_POINTPARTICLES_BOUNDS = BIT(7); // Send min and max of the brush
-
-// laser
-const int SF_LASER_UPDATE_ORIGIN = BIT(0);
-const int SF_LASER_UPDATE_TARGET = BIT(1);
-const int SF_LASER_UPDATE_ACTIVE = BIT(2);
-const int SF_LASER_UPDATE_EFFECT = BIT(3);
-
-const int SF_LASER_NOTRACE = BIT(4);
-const int SF_LASER_SCALE = BIT(5);
-const int SF_LASER_ALPHA = BIT(6);
-const int SF_LASER_FINITE = BIT(7);
-
-// music
-const int SF_MUSIC_ORIGIN = BIT(2);
+++ /dev/null
-#pragma once
-
-#ifdef CSQC
-// this stuff is defined in the server side engine VM, so we must define it separately here
-const int STATE_TOP = 0;
-const int STATE_BOTTOM = 1;
-const int STATE_UP = 2;
-const int STATE_DOWN = 3;
-#endif
-
-// breakable
-const int STATE_ALIVE = 0;
-const int STATE_BROKEN = 1;
#pragma once
-#include "states.qh"
+#include "defs.qh"
void SUB_SetFade (entity ent, float when, float fading_time);
void SUB_VanishOrRemove (entity ent);
#pragma once
+
+
+const int CHANGELEVEL_MULTIPLAYER = BIT(1);
.float lifetime;
+const int SF_MUSIC_ORIGIN = BIT(2);
+
#ifdef CSQC
float music_disabled;
entity music_default;
#pragma once
+
+
+const int SPEAKER_LOOPED_ON = BIT(0);
+const int SPEAKER_LOOPED_OFF = BIT(1);
+const int SPEAKER_GLOBAL = BIT(2); // legacy, set speaker atten to -1 instead
+const int SPEAKER_ACTIVATOR = BIT(3);
#pragma once
-#include "spawnflags.qh"
+#include "defs.qh"
IntrusiveList g_teleporters;
STATIC_INIT(g_teleporters) { g_teleporters = IL_NEW(); }
.entity pusher;
+const int TELEPORT_FLAG_SOUND = BIT(0);
+const int TELEPORT_FLAG_PARTICLES = BIT(1);
+const int TELEPORT_FLAG_TDEATH = BIT(2);
+const int TELEPORT_FLAG_FORCE_TDEATH = BIT(3);
+
#define TELEPORT_FLAGS_WARPZONE 0
#define TELEPORT_FLAGS_PORTAL (TELEPORT_FLAG_SOUND | TELEPORT_FLAG_PARTICLES | TELEPORT_FLAG_TDEATH | TELEPORT_FLAG_FORCE_TDEATH)
#define TELEPORT_FLAGS_TELEPORTER (TELEPORT_FLAG_SOUND | TELEPORT_FLAG_PARTICLES | TELEPORT_FLAG_TDEATH)
// types for .teleportable entity setting
-const float TELEPORT_NORMAL = 1; // play sounds/effects etc
-const float TELEPORT_SIMPLE = 2; // only do teleport, nothing special
+const int TELEPORT_NORMAL = 1; // play sounds/effects etc
+const int TELEPORT_SIMPLE = 2; // only do teleport, nothing special
entity Simple_TeleportPlayer(entity teleporter, entity player);
#pragma once
+
+
+const int COUNTER_FIRE_AT_COUNT = BIT(2);
#pragma once
+
+
+const int GRAVITY_STICKY = BIT(0); // keep gravity multiplier even after exiting the trigger_gravity
+const int GRAVITY_START_DISABLED = BIT(1);
#pragma once
+
+
+const int HEAL_SOUND_ALWAYS = BIT(2);
const int FALLOFF_LINEAR = 1;
const int FALLOFF_LINEAR_INV = 2;
+const int IMPULSE_DIRECTIONAL_SPEEDTARGET = BIT(6);
+
const float IMPULSE_DEFAULT_RADIAL_STRENGTH = 2000;
const float IMPULSE_DEFAULT_DIRECTIONAL_STRENGTH = 950;
const float IMPULSE_DEFAULT_ACCEL_STRENGTH = 0.9;
#pragma once
-#include "../spawnflags.qh"
+
+
+const int PUSH_ONCE = BIT(0); // legacy, deactivate with relay instead
+const int PUSH_SILENT = BIT(1); // not used?
IntrusiveList g_jumppads;
STATIC_INIT(g_jumppads) { g_jumppads = IL_NEW(); }
#pragma once
+
+
+const int MAGICEAR_IGNORE_SAY = BIT(0);
+const int MAGICEAR_IGNORE_TEAMSAY = BIT(1);
+const int MAGICEAR_IGNORE_TELL = BIT(2);
+const int MAGICEAR_IGNORE_INVALIDTELL = BIT(3);
+const int MAGICEAR_REPLACE_WHOLE_MESSAGE = BIT(4);
+const int MAGICEAR_REPLACE_OUTSIDE = BIT(5);
+const int MAGICEAR_CONTINUE = BIT(6);
+const int MAGICEAR_NODECOLORIZE = BIT(7);
+const int MAGICEAR_TUBA = BIT(8);
+const int MAGICEAR_TUBA_EXACTPITCH = BIT(9);
#pragma once
+
+
+const int MONOFLOP_FIXED = BIT(0);
#pragma once
+
+
+const int RELAYIF_NEGATE = BIT(0);
#pragma once
+
+
+const int RELAYTEAMCHECK_NOTEAM = BIT(0);
+const int RELAYTEAMCHECK_INVERT = BIT(1);
#pragma once
-#include "../spawnflags.qh"
+
+
+const int VIEWLOC_NOSIDESCROLL = BIT(0); // NOTE: currently unimplemented
+const int VIEWLOC_FREEAIM = BIT(1);
+const int VIEWLOC_FREEMOVE = BIT(2);
.entity viewloc;
#pragma once
-#include "spawnflags.qh"
+#include "defs.qh"
.bool pushable;
.float active;
.string target;
.string targetname;
-
-const int ACTIVE_NOT = 0;
-const int ACTIVE_ACTIVE = 1;
-const int ACTIVE_IDLE = 2;
-const int ACTIVE_BUSY = 2;
-const int ACTIVE_TOGGLE = 3;
#endif