#pragma once // generic usage const int START_ENABLED = BIT(0); const int ON_MAPLOAD = BIT(1); const int NOSPLASH = BIT(8); // generic anti-splashdamage spawnflag // bobbing const int BOBBING_XAXIS = BIT(0); const int BOBBING_YAXIS = BIT(1); // breakable const int BREAKABLE_START_DISABLED = BIT(0); 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); 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); // 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); // triggers const int SPAWNFLAG_NOMESSAGE = BIT(0); const int SPAWNFLAG_NOTOUCH = BIT(0); // why are these the same? //---------- // 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);