1 enum 2 { 3 W_CLAW = 0, W_PISTOL, W_OFFSET, // end of unselectable weapon set 4 W_SWORD = W_OFFSET, W_SHOTGUN, W_SMG, W_FLAMER, W_PLASMA, W_ZAPPER, W_RIFLE, W_ITEM, 5 W_GRENADE = W_ITEM, W_MINE, W_ROCKET, W_ALL, // end of item weapon set 6 W_MELEE = W_ALL, W_MAX, W_LOADOUT = W_ITEM-W_OFFSET // if you add to this at all, check all arrays with W_MAX 7 }; 8 #define isweap(a) (a >= 0 && a < W_MAX) 9 10 enum { W_F_NONE = 0, W_F_FORCED = 1<<0 }; 11 enum { 12 W_C_SCALE = 1<<0, W_C_SCALEN = 1<<1, W_C_LIFE = 1<<2, W_C_LIFEN = 1<<3, 13 W_C_SPEED = 1<<4, W_C_SPEEDN = 1<<5, W_C_RAYS = 1<<6, W_C_ZOOM = 1<<7, W_C_KEEP = 1<<8, 14 W_C_ALL = W_C_SCALE|W_C_SCALEN|W_C_LIFE|W_C_LIFEN|W_C_SPEED|W_C_SPEEDN|W_C_RAYS|W_C_ZOOM|W_C_KEEP, 15 W_C_SS = W_C_SCALE|W_C_SPEED, W_C_SZ = W_C_SCALE|W_C_ZOOM|W_C_KEEP 16 }; 17 enum { 18 W_N_STADD = 1<<0, W_N_GRADD = 1<<1, W_N_STIMM = 1<<2, W_N_GRIMM = 1<<3, W_N_SLIDE = 1<<4, 19 W_N_ADD = W_N_STADD|W_N_GRADD, W_N_IMM = W_N_STIMM|W_N_GRIMM, 20 W_N_ST = W_N_STADD|W_N_STIMM, W_N_GR = W_N_GRADD|W_N_GRIMM, 21 W_N_AI = W_N_STADD|W_N_GRADD|W_N_STIMM|W_N_GRIMM, 22 W_N_ALL = W_N_STADD|W_N_GRADD|W_N_STIMM|W_N_GRIMM|W_N_SLIDE 23 }; 24 enum { 25 W_S_IDLE = 0, W_S_PRIMARY, W_S_SECONDARY, W_S_RELOAD, W_S_SWITCH, W_S_USE, W_S_POWER, W_S_ZOOM, W_S_WAIT, W_S_MAX, 26 W_S_EXCLUDE = (1<<W_S_IDLE)|(1<<W_S_POWER)|(1<<W_S_ZOOM) 27 }; 28 29 enum 30 { 31 S_W_PRIMARY = 0, S_W_SECONDARY, 32 S_W_POWER, S_W_POWER2, S_W_ZOOM, 33 S_W_SWITCH, S_W_RELOAD, S_W_NOTIFY, 34 S_W_EXPLODE, S_W_EXPLODE2, 35 S_W_DESTROY, S_W_DESTROY2, 36 S_W_IMPACT, S_W_IMPACT2, 37 S_W_EXTINGUISH, S_W_EXTINGUISH2, 38 S_W_TRANSIT, S_W_TRANSIT2, 39 S_W_BOUNCE, S_W_BOUNCE2, 40 S_W_OFFSET, S_W_USE = S_W_OFFSET, S_W_SPAWN, 41 S_W_MAX 42 }; 43 44 enum 45 { 46 S_WEAPONS = S_GAME, 47 S_CLAW = S_WEAPONS, 48 S_PISTOL = S_CLAW+S_W_OFFSET, 49 S_SWORD = S_PISTOL+S_W_OFFSET, 50 S_SHOTGUN = S_SWORD+S_W_MAX, 51 S_SMG = S_SHOTGUN+S_W_MAX, 52 S_FLAMER = S_SMG+S_W_MAX, 53 S_PLASMA = S_FLAMER+S_W_MAX, 54 S_ZAPPER = S_PLASMA+S_W_MAX, 55 S_RIFLE = S_ZAPPER+S_W_MAX, 56 S_GRENADE = S_RIFLE+S_W_MAX, 57 S_MINE = S_GRENADE+S_W_MAX, 58 S_ROCKET = S_MINE+S_W_MAX, 59 S_MELEE = S_ROCKET+S_W_MAX, 60 S_MAX = S_MELEE+S_W_OFFSET 61 }; 62 63 enum 64 { 65 COLLIDE_TRACE = 1<<0, COLLIDE_PROJ = 1<<1, COLLIDE_OWNER = 1<<2, 66 IMPACT_GEOM = 1<<3, IMPACT_PLAYER = 1<<4, IMPACT_SHOTS = 1<<5, 67 BOUNCE_GEOM = 1<<6, BOUNCE_PLAYER = 1<<7, BOUNCE_SHOTS = 1<<8, 68 DRILL_GEOM = 1<<9, DRILL_PLAYER = 1<<10, DRILL_SHOTS = 1<<11, 69 STICK_GEOM = 1<<12, STICK_PLAYER = 1<<13, COLLIDE_HITSCAN = 1<<14, 70 COLLIDE_GEOM = IMPACT_GEOM|BOUNCE_GEOM, 71 COLLIDE_PLAYER = IMPACT_PLAYER|BOUNCE_PLAYER, 72 COLLIDE_SHOTS = IMPACT_SHOTS|BOUNCE_SHOTS, 73 COLLIDE_DYNENT = COLLIDE_PLAYER|COLLIDE_SHOTS, 74 COLLIDE_ALL = COLLIDE_TRACE|COLLIDE_PROJ|COLLIDE_OWNER|IMPACT_GEOM|IMPACT_PLAYER|IMPACT_SHOTS|BOUNCE_GEOM|BOUNCE_PLAYER|BOUNCE_SHOTS|DRILL_GEOM|DRILL_PLAYER|DRILL_SHOTS|STICK_GEOM|STICK_PLAYER|COLLIDE_HITSCAN 75 }; 76 77 enum 78 { 79 HIT_NONE = 0, HIT_ALT = 1<<0, HIT_LEGS = 1<<1, HIT_TORSO = 1<<2, HIT_WHIPLASH = 1<<3, HIT_HEAD = 1<<4, 80 HIT_WAVE = 1<<5, HIT_PROJ = 1<<6, HIT_EXPLODE = 1<<7, HIT_BURN = 1<<8, HIT_BLEED = 1<<9, HIT_SHOCK = 1<<10, 81 HIT_MATERIAL = 1<<11, HIT_SPAWN = 1<<12, HIT_LOST = 1<<13, HIT_KILL = 1<<14, HIT_FLAK = 1<<15, HIT_SPEC = 1<<16, 82 HIT_CLEAR = HIT_PROJ|HIT_EXPLODE|HIT_BURN|HIT_BLEED|HIT_MATERIAL|HIT_SPAWN|HIT_LOST, 83 HIT_SFLAGS = HIT_KILL 84 }; 85 86 enum { WR_BURN = 0, WR_BLEED, WR_SHOCK, WR_MAX, WR_ALL = (1<<WR_BURN)|(1<<WR_BLEED)|(1<<WR_SHOCK) }; 87 88 struct shotmsg { int id; ivec pos; }; 89 struct hitmsg { int flags, proj, target, dist; ivec dir, vel; }; 90 91 #define hithead(x) (x&HIT_WHIPLASH || x&HIT_HEAD) 92 #define hitdealt(x) (x&HIT_BURN || x&HIT_BLEED || x&HIT_SHOCK || x&HIT_EXPLODE || x&HIT_PROJ || x&HIT_MATERIAL) 93 #define WR(x) (1<<(WR_##x)) 94 #define wr_burn(x,y) (isweap(x) && (WF(WK(y), x, residual, WS(y))&WR(BURN))) 95 #define wr_burns(x,y) (G(burntime) && hitdealt(y) && ((x == -1 && y&HIT_BURN) || wr_burn(x, y))) 96 #define wr_burning(x,y) (G(burntime) && hitdealt(y) && ((x == -1 && y&HIT_MATERIAL && y&HIT_BURN) || wr_burn(x, y))) 97 #define wr_bleed(x,y) (isweap(x) && (WF(WK(y), x, residual, WS(y))&WR(BLEED))) 98 #define wr_bleeds(x,y) (G(bleedtime) && hitdealt(y) && ((x == -1 && y&HIT_BLEED) || wr_bleed(x, y))) 99 #define wr_bleeding(x,y) (G(bleedtime) && hitdealt(y) && ((x == -1 && y&HIT_MATERIAL && y&HIT_BLEED) || wr_bleed(x, y))) 100 #define wr_shock(x,y) (isweap(x) && (WF(WK(y), x, residual, WS(y))&WR(SHOCK))) 101 #define wr_shocks(x,y) (G(shocktime) && hitdealt(y) && ((x == -1 && y&HIT_SHOCK) || wr_shock(x, y))) 102 #define wr_shocking(x,y) (G(shocktime) && hitdealt(y) && ((x == -1 && y&HIT_MATERIAL && y&HIT_SHOCK) || wr_shock(x, y))) 103 #define WZ(x) (W_MAX+(W_##x)) 104 105 #include "weapdef.h" 106 107 WPSVAR(IDF_GAMEMOD, longname, // shown for weapon pickups and loadout menu 108 "claw-attack", 109 "sidearm-pistol", 110 "energy-sword", 111 "super-shotgun", 112 "submachine-gun", 113 "flame-thrower", 114 "plasma-inductor", 115 "electro-zapper", 116 "laser-rifle", 117 "frag-grenade", 118 "shock-mine", 119 "rocket-launcher", 120 "melee-attack" 121 ); 122 123 WPSVARM(IDF_GAMEMOD, desc, 124 "basic, horizontal claw slash, best used in conjunction with an impulse kick", 125 "long-range, low-damage bullets with a high rate of fire.", 126 "horizontal slice, low-damage, can be swung at short intervals, causes bleed residual damage.", 127 "fires a lot of pellets, causes mass destruction at short range, useless at long range.", 128 "rapid-fire bullets that bounce off walls and knock back the victim.", 129 "short-ranged rapid-fire flamethrower, causes burn residual damage.", 130 "fires plasma balls at a high rate with high damage, but relatively low accuracy and velocity.", 131 "a rapid-fire electric attack that hits almost instantly, great to finish off a wounded foe.", 132 "fires a non-charged laser shot that deals damage in a small area.", 133 "a simple explosion device, can be cooked to control detonation delay, causes burn residual damage", 134 "explodes and discharges electricity when someone comes too close, slowing them down greatly and causing shock residual damage.", 135 "a fast, highly explosive rocket with a large shockwave, causes burn residual damage.", 136 "use parkour and kick moves as melee attacks.", 137 // begin secondary 138 "slower and weaker claw attack that pulls you towards the enemy or performs low impulse cost wall grabs.", 139 "slower rate of fire than the primary attack, but does more damage.", 140 "a slower vertical slice with much more power, causes bleed residual damage.", 141 "shoots a slug that explodes and disintegrates into shavings, causes bleed residual damage.", 142 "long-range projectiles that stick to surfaces and players before exploding into fragments for additional damage.", 143 "a versatile air blast, can be used after jumping to travel great distances or to blast foes off their feet. extinguishes flame residual damage.", 144 "a charged, quickly-expanding ball of plasma that quickly sucks players in, causing great damage.", 145 "a rapid-fire electric discharge with multiple rays that will also cause shock residual damage and greatly slow down a foe.", 146 "a charged and focused laser shot with great precision and adjustable zoom, ideal for long range.", 147 "sticks to whatever it hits, but has a smaller area of effect than the primary mode, causes burn residual damage", 148 "emits an endless distance laser trap that detonates when tripped, in addition causing shock residual damage which can slow down a foe.", 149 "a guided rocket that moves significantly slower than the primary fire mode, causes burn residual damage.", 150 "use slide moves as melee attacks." 151 ); 152 153 WPSVAR(IDF_GAMEMOD, name, // keep this incase longname is too long 154 "claw", "pistol", "sword", "shotgun", "smg", "flamer", "plasma", "zapper", "rifle", "grenade", "mine", "rocket", "melee" 155 ); 156 157 WPFVARM(IDF_GAMEMOD, aidist, 0, FVAR_MAX, 158 16.0f, 512.0f, 48.0f, 64.0f, 512.0f, 64.0f, 512.0f, 512.f, 768.0f, 384.0f, 128.0f, 1024.0f, 16.0f, 159 16.0f, 256.0f, 48.0f, 128.0f, 128.0f, 64.0f, 64.0f, 512.f, 2048.0f, 256.0f, 128.0f, 512.0f, 16.0f 160 ); 161 WPVARM(IDF_GAMEMOD, aiskew, 0, VAR_MAX, 162 1, 2, 1, 3, 5, 3, 5, 3, 5, 1, 1, 5, 1, 163 1, 2, 1, 3, 5, 3, 5, 3, 5, 1, 1, 5, 1 164 ); 165 WPVAR(IDF_GAMEMOD, ammoadd, 1, VAR_MAX, 166 1, 10, 1, 2, 40, 50, 30, 48, 6, 1, 1, 1, 1 167 ); 168 WPVAR(IDF_GAMEMOD, ammomax, 1, VAR_MAX, 169 1, 10, 1, 8, 40, 50, 30, 48, 6, 2, 2, 1, 1 170 ); 171 WPVARM(IDF_GAMEMOD, ammosub, 0, VAR_MAX, 172 0, 1, 0, 1, 1, 1, 2, 1, 1, 1, 1, 1, 0, 173 0, 1, 0, 2, 4, 10, 30, 8, 1, 1, 1, 1, 0 174 ); 175 WPFVARK(IDF_GAMEMOD, blend, 0, 1, 176 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 177 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 178 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 179 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f 180 ); 181 WPVARK(IDF_GAMEMOD, collide, 0, COLLIDE_ALL, 182 IMPACT_GEOM|IMPACT_PLAYER|COLLIDE_TRACE|COLLIDE_HITSCAN, 183 IMPACT_GEOM|IMPACT_PLAYER|IMPACT_SHOTS|COLLIDE_OWNER|COLLIDE_TRACE, 184 BOUNCE_GEOM|IMPACT_PLAYER|COLLIDE_TRACE|IMPACT_SHOTS|COLLIDE_HITSCAN, 185 BOUNCE_GEOM|IMPACT_PLAYER|IMPACT_SHOTS|COLLIDE_TRACE|COLLIDE_OWNER|DRILL_GEOM, 186 BOUNCE_GEOM|IMPACT_PLAYER|IMPACT_SHOTS|COLLIDE_TRACE|COLLIDE_OWNER|DRILL_GEOM, 187 BOUNCE_GEOM|IMPACT_PLAYER|COLLIDE_OWNER, 188 IMPACT_GEOM|IMPACT_PLAYER|IMPACT_SHOTS|COLLIDE_OWNER, 189 IMPACT_GEOM|IMPACT_PLAYER|IMPACT_SHOTS|COLLIDE_OWNER|COLLIDE_TRACE, 190 IMPACT_GEOM|IMPACT_PLAYER|IMPACT_SHOTS|COLLIDE_OWNER|COLLIDE_TRACE|DRILL_GEOM, 191 BOUNCE_GEOM|BOUNCE_PLAYER|IMPACT_SHOTS|COLLIDE_OWNER|COLLIDE_PROJ, 192 IMPACT_GEOM|IMPACT_PLAYER|IMPACT_SHOTS|COLLIDE_OWNER|STICK_GEOM|STICK_PLAYER|COLLIDE_PROJ, 193 IMPACT_GEOM|IMPACT_PLAYER|IMPACT_SHOTS|COLLIDE_OWNER|COLLIDE_PROJ, 194 IMPACT_PLAYER|COLLIDE_TRACE|COLLIDE_HITSCAN, 195 196 IMPACT_GEOM|IMPACT_PLAYER|COLLIDE_TRACE|COLLIDE_HITSCAN, 197 IMPACT_GEOM|IMPACT_PLAYER|IMPACT_SHOTS|COLLIDE_OWNER|COLLIDE_TRACE, 198 BOUNCE_GEOM|IMPACT_PLAYER|COLLIDE_TRACE|IMPACT_SHOTS|COLLIDE_HITSCAN, 199 IMPACT_GEOM|IMPACT_PLAYER|IMPACT_SHOTS|COLLIDE_TRACE|COLLIDE_OWNER, 200 IMPACT_GEOM|IMPACT_PLAYER|IMPACT_SHOTS|COLLIDE_TRACE|COLLIDE_OWNER|STICK_GEOM|STICK_PLAYER, 201 BOUNCE_GEOM|IMPACT_PLAYER|IMPACT_SHOTS|COLLIDE_OWNER, 202 IMPACT_GEOM|IMPACT_SHOTS|COLLIDE_OWNER|STICK_GEOM, 203 IMPACT_GEOM|IMPACT_PLAYER|IMPACT_SHOTS|COLLIDE_OWNER|COLLIDE_TRACE|DRILL_PLAYER, 204 IMPACT_GEOM|IMPACT_PLAYER|IMPACT_SHOTS|COLLIDE_OWNER|COLLIDE_TRACE|DRILL_GEOM|DRILL_PLAYER, 205 IMPACT_GEOM|IMPACT_PLAYER|IMPACT_SHOTS|COLLIDE_OWNER|STICK_GEOM|STICK_PLAYER|COLLIDE_PROJ, 206 IMPACT_GEOM|IMPACT_PLAYER|IMPACT_SHOTS|COLLIDE_OWNER|STICK_GEOM|STICK_PLAYER|COLLIDE_PROJ, 207 IMPACT_GEOM|IMPACT_PLAYER|IMPACT_SHOTS|COLLIDE_OWNER|COLLIDE_PROJ, 208 IMPACT_PLAYER|COLLIDE_TRACE|COLLIDE_HITSCAN, 209 210 IMPACT_PLAYER|COLLIDE_TRACE|COLLIDE_OWNER, 211 IMPACT_GEOM|IMPACT_PLAYER|IMPACT_SHOTS|COLLIDE_TRACE|COLLIDE_OWNER, 212 BOUNCE_GEOM|IMPACT_PLAYER|COLLIDE_TRACE|IMPACT_SHOTS|COLLIDE_OWNER, 213 BOUNCE_GEOM|IMPACT_PLAYER|IMPACT_SHOTS|COLLIDE_TRACE|COLLIDE_OWNER, 214 BOUNCE_GEOM|IMPACT_PLAYER|IMPACT_SHOTS|COLLIDE_TRACE|COLLIDE_OWNER, 215 BOUNCE_GEOM|IMPACT_PLAYER|COLLIDE_OWNER, 216 IMPACT_GEOM|IMPACT_PLAYER|IMPACT_SHOTS|COLLIDE_OWNER, 217 IMPACT_GEOM|IMPACT_PLAYER|IMPACT_SHOTS|COLLIDE_OWNER|COLLIDE_TRACE, 218 IMPACT_GEOM|IMPACT_PLAYER|IMPACT_SHOTS|COLLIDE_OWNER|COLLIDE_TRACE, 219 IMPACT_GEOM|IMPACT_PLAYER|IMPACT_SHOTS|COLLIDE_OWNER|COLLIDE_PROJ, 220 IMPACT_GEOM|IMPACT_PLAYER|IMPACT_SHOTS|COLLIDE_OWNER|STICK_GEOM|STICK_PLAYER|COLLIDE_PROJ, 221 IMPACT_GEOM|IMPACT_PLAYER|IMPACT_SHOTS|COLLIDE_OWNER|COLLIDE_PROJ, 222 IMPACT_PLAYER|COLLIDE_TRACE|COLLIDE_OWNER, 223 224 IMPACT_PLAYER|COLLIDE_TRACE|COLLIDE_OWNER, 225 IMPACT_GEOM|IMPACT_PLAYER|IMPACT_SHOTS|COLLIDE_TRACE|COLLIDE_OWNER, 226 BOUNCE_GEOM|IMPACT_PLAYER|COLLIDE_TRACE|IMPACT_SHOTS|COLLIDE_OWNER, 227 BOUNCE_GEOM|IMPACT_PLAYER|IMPACT_SHOTS|COLLIDE_TRACE|COLLIDE_OWNER, 228 BOUNCE_GEOM|IMPACT_PLAYER|IMPACT_SHOTS|COLLIDE_TRACE|COLLIDE_OWNER, 229 BOUNCE_GEOM|IMPACT_PLAYER|IMPACT_SHOTS|COLLIDE_OWNER, 230 IMPACT_GEOM|IMPACT_SHOTS|COLLIDE_OWNER|STICK_GEOM|STICK_PLAYER, 231 IMPACT_GEOM|IMPACT_PLAYER|IMPACT_SHOTS|COLLIDE_TRACE|DRILL_PLAYER|COLLIDE_OWNER, 232 IMPACT_GEOM|IMPACT_PLAYER|IMPACT_SHOTS|COLLIDE_TRACE|DRILL_PLAYER|COLLIDE_OWNER, 233 IMPACT_GEOM|IMPACT_PLAYER|IMPACT_SHOTS|COLLIDE_OWNER|STICK_GEOM|STICK_PLAYER|COLLIDE_PROJ, 234 IMPACT_GEOM|IMPACT_PLAYER|IMPACT_SHOTS|COLLIDE_OWNER|STICK_GEOM|STICK_PLAYER|COLLIDE_PROJ, 235 IMPACT_GEOM|IMPACT_PLAYER|IMPACT_SHOTS|COLLIDE_OWNER|COLLIDE_PROJ, 236 IMPACT_PLAYER|COLLIDE_TRACE|COLLIDE_OWNER 237 ); 238 WPVAR(IDF_GAMEMOD|IDF_HEX, colour, 0, 0xFFFFFF, 239 0x907020, 0xD0D0D0, 0x4040F0, 0xF0F020, 0xF05820, 0xF02020, 0x40F0C8, 0xC090F0, 0xA020F0, 0x40F000, 0x00F068, 0x803000, 0x606060 240 ); 241 WPVARM(IDF_GAMEMOD, cooked, 0, W_C_ALL, 242 0, 0, 0, 0, 0, 0, 0, 0, 0, W_C_LIFEN, 0, 0, 0, 243 0, 0, 0, 0, 0, 0, W_C_SS, 0, W_C_SZ, W_C_LIFEN, 0, 0, 0 244 ); 245 WPVARM(IDF_GAMEMOD, cooktime, 0, VAR_MAX, 246 0, 0, 0, 0, 0, 0, 0, 0, 0, 3000, 0, 0, 0, 247 0, 0, 0, 0, 0, 0, 2000, 0, 650, 3000, 0, 0, 0 248 ); 249 WPVAR(IDF_GAMEMOD, cookzoom, 0, VAR_MAX, 250 0, 0, 0, 0, 0, 0, 0, 0, 650, 0, 0, 0, 0 251 ); 252 WPFVAR(IDF_GAMEMOD, cookzoommin, 1, 150, 253 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10 254 ); 255 WPFVAR(IDF_GAMEMOD, cookzoommax, 1, 150, 256 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60 257 ); 258 WPVARK(IDF_GAMEMOD, damage, VAR_MIN, VAR_MAX, 259 25, 25, 30, 6, 16, 6, 18, 5, 33, 100, 100, 200, 30, 260 10, 35, 65, 6, 16, 10, 10, 12, 120, 100, 100, 200, 40, 261 25, 25, 30, 6, 16, 6, 18, 5, 10, 100, 100, 200, 30, 262 10, 35, 65, 6, 4, 10, 10, 12, 10, 100, 100, 200, 40 263 ); 264 WPFVARK(IDF_GAMEMOD, damagehead, FVAR_MIN, FVAR_MAX, 265 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 266 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.85f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 267 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 268 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f 269 ); 270 WPFVARK(IDF_GAMEMOD, damagelegs, FVAR_MIN, FVAR_MAX, 271 0.3f, 0.3f, 0.3f, 0.3f, 0.3f, 0.3f, 0.3f, 0.3f, 0.3f, 0.3f, 0.3f, 0.3f, 0.3f, 272 0.5f, 0.3f, 0.5f, 0.3f, 0.3f, 1.0f, 0.3f, 0.3f, 0.3f, 0.3f, 0.3f, 0.3f, 0.5f, 273 0.35f, 0.35f, 0.35f, 0.35f, 0.35f, 0.35f, 0.35f, 0.35f, 0.3f, 0.3f, 0.35f, 0.35f, 0.35f, 274 0.5f, 0.35f, 0.5f, 0.35f, 0.35f, 0.35f, 0.35f, 0.35f, 0.35f, 0.3f, 0.35f, 0.35f, 0.5f 275 ); 276 WPFVARK(IDF_GAMEMOD, damageself, FVAR_MIN, FVAR_MAX, 277 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 278 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 279 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 280 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f 281 ); 282 WPFVARK(IDF_GAMEMOD, damageteam, FVAR_MIN, FVAR_MAX, 283 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 284 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 285 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 286 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f 287 ); 288 WPFVARK(IDF_GAMEMOD, damagetorso, FVAR_MIN, FVAR_MAX, 289 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 290 0.6f, 0.5f, 0.6f, 0.5f, 0.5f, 1.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.6f, 291 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 292 0.6f, 0.5f, 0.6f, 0.5f, 0.5f, 1.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.6f 293 ); 294 WPFVARK(IDF_GAMEMOD, damagepenalty, 0, 1, 295 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 296 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 297 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 298 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 299 ); 300 WPFVARK(IDF_GAMEMOD, damagewhiplash, FVAR_MIN, FVAR_MAX, 301 0.8f, 0.8f, 0.8f, 0.8f, 0.8f, 0.65f, 0.6f, 0.6f, 0.6f, 0.6f, 0.6f, 0.6f, 0.8f, 302 0.8f, 0.8f, 0.8f, 0.8f, 0.8f, 0.75f, 0.6f, 0.6f, 0.6f, 0.6f, 0.6f, 0.6f, 0.8f, 303 0.8f, 0.8f, 0.8f, 0.8f, 0.8f, 0.65f, 0.6f, 0.6f, 0.6f, 0.6f, 0.6f, 0.6f, 0.8f, 304 0.8f, 0.8f, 0.8f, 0.8f, 0.8f, 0.75f, 0.6f, 0.6f, 0.6f, 0.6f, 0.6f, 0.6f, 0.8f 305 ); 306 WPVARM(IDF_GAMEMOD, delayattack, 1, VAR_MAX, 307 500, 130, 500, 750, 90, 90, 350, 90, 750, 750, 500, 1500, 500, 308 800, 200, 800, 1250, 350, 1250, 1800, 1800, 1250, 750, 500, 1500, 500 309 ); 310 WPVAR(IDF_GAMEMOD, delayreload, 0, VAR_MAX, 311 50, 1000, 50, 1000, 1200, 1700, 1700, 2000, 2500, 1000, 1500, 2500, 50 312 ); 313 WPVAR(IDF_GAMEMOD, disabled, 0, 1, 314 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 315 ); 316 WPVARK(IDF_GAMEMOD, drill, 0, VAR_MAX, 317 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 318 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 319 0, 0, 0, 0, 2, 0, 0, 2, 2, 0, 0, 0, 0, 320 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0 321 ); 322 WPFVARK(IDF_GAMEMOD, elasticity, 0, FVAR_MAX, 323 0.5f, 0.5f, 0.5f, 0.5f, 0.65f, 0.35f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 324 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 325 0.5f, 0.5f, 0.5f, 0.5f, 0.65f, 0.35f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 326 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f 327 ); 328 WPVARM(IDF_GAMEMOD, escapedelay, 0, VAR_MAX, 329 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 330 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200 331 ); 332 WPVARK(IDF_GAMEMOD|IDF_HEX, explcol, PC(LAST), 0xFFFFFF, 333 PC(FIRE), PC(FIRE), 0x4040F0, 0xF0F020, 0xF05820, PC(FIRE), 0x40F0C8, PC(SHOCK), 0xA020F0, PC(FIRE), PC(SHOCK), PC(FIRE), PC(FIRE), 334 PC(FIRE), PC(FIRE), 0x4040F0, 0xF0F020, 0xF05820, 0x808080, 0x40F0C8, PC(SHOCK), 0xA020F0, PC(FIRE), PC(SHOCK), PC(FIRE), PC(FIRE), 335 PC(FIRE), PC(FIRE), 0x4040F0, 0xF0F020, 0xF05820, PC(FIRE), 0x40F0C8, PC(SHOCK), 0xA020F0, PC(FIRE), PC(SHOCK), PC(FIRE), PC(FIRE), 336 PC(FIRE), PC(FIRE), 0x4040F0, 0xF0F020, 0xF05820, 0x808080, 0x40F0C8, PC(SHOCK), 0xA020F0, PC(FIRE), PC(SHOCK), PC(FIRE), PC(FIRE) 337 ); 338 WPFVARK(IDF_GAMEMOD, explode, 0, FVAR_MAX, 339 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 6.0f, 10.0f, 3.0f, 4.0f, 64.0f, 32.0f, 96.0f, 0.0f, 340 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 12.0f, 44.0f, 6.0f, 0.0f, 52.0f, 32.0f, 96.0f, 0.0f, 341 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 6.0f, 10.0f, 3.0f, 4.0f, 64.0f, 32.0f, 96.0f, 0.0f, 342 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 12.0f, 44.0f, 6.0f, 4.0f, 52.0f, 32.0f, 96.0f, 0.0f 343 ); 344 WPVARK(IDF_GAMEMOD, extinguish, 0, 7, 345 0, 2, 2, 2, 2, 3, 1, 1, 2, 2, 2, 2, 0, 346 0, 2, 2, 2, 2, 2, 0, 1, 2, 2, 2, 2, 0, 347 0, 2, 2, 2, 2, 3, 1, 1, 2, 2, 2, 2, 0, 348 0, 2, 2, 2, 2, 2, 0, 1, 2, 2, 2, 2, 0 349 ); 350 WPVARK(IDF_GAMEMOD, fade, 0, 3, 351 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 352 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 353 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 354 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 355 ); 356 WPFVARK(IDF_GAMEMOD, fadeat, 0, FVAR_MAX, 357 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 358 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 359 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 360 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f 361 ); 362 WPFVARK(IDF_GAMEMOD, fadecut, 0, FVAR_MAX, 363 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 364 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 365 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 366 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f 367 ); 368 WPVARK(IDF_GAMEMOD, fadetime, 0, VAR_MAX, 369 0, 0, 0, 0, 0, 40, 40, 0, 0, 0, 0, 0, 0, 370 0, 0, 0, 0, 0, 40, 40, 0, 0, 0, 0, 0, 0, 371 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 372 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 373 ); 374 WPFVARM(IDF_GAMEMOD, fragjump, 0, 1, 375 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 376 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f 377 ); 378 WPFVARM(IDF_GAMEMOD, fragoffset, 0, FVAR_MAX, 379 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 1.0f, 1.0f, 4.0f, 1.0f, 2.0f, 4.0f, 380 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 4.0f, 1.0f, 1.0f, 4.0f, 1.0f, 2.0f, 4.0f 381 ); 382 WPVARM(IDF_GAMEMOD, fragrays, 1, MAXPARAMS, 383 5, 5, 5, 5, 5, 5, 5, 5, 5, 25, 30, 35, 5, 384 5, 5, 5, 24, 40, 5, 5, 5, 5, 25, 10, 35, 5 385 ); 386 WPFVARM(IDF_GAMEMOD, fragrel, FVAR_MIN, FVAR_MAX, 387 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, 388 1.0f, 1.0f, 1.0f, 1.5f, 0.1f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f 389 ); 390 WPFVARM(IDF_GAMEMOD, fragscale, FVAR_NONZERO, FVAR_MAX, 391 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.5f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 392 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.5f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f 393 ); 394 WPFVARM(IDF_GAMEMOD, fragskew, 0, FVAR_MAX, 395 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.5f, 1.0f, 1.0f, 396 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f 397 ); 398 WPVARM(IDF_GAMEMOD, fragspeed, 0, VAR_MAX, 399 0, 0, 0, 0, 0, 200, 0, 0, 0, 250, 750, 400, 0, 400 0, 0, 0, 0, 350, 250, 0, 0, 0, 250, 7500, 400, 0 401 ); 402 WPFVARM(IDF_GAMEMOD, fragspeedmin, 0, FVAR_MAX, 403 50.0f, 50.0f, 50.0f, 50.0f, 50.0f, 1.0f, 50.0f, 50.0f, 50.0f, 50.0f, 50.0f, 50.0f, 50.0f, 404 50.0f, 50.0f, 50.0f, 50.0f, 50.0f, 1.0f, 50.0f, 50.0f, 50.0f, 50.0f, 50.0f, 50.0f, 50.0f 405 ); 406 WPFVARM(IDF_GAMEMOD, fragspeedmax, 0, FVAR_MAX, 407 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 408 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f 409 ); 410 WPFVARM(IDF_GAMEMOD, fragspread, 0, FVAR_MAX, 411 1.0f, 1.0f, 1.0f, 1.0f, 0.2f, 0.1f, 1.0f, 0.25f, 0.25f, 1.0f, 0.5f, 1.0f, 1.0f, 412 1.0f, 1.0f, 1.0f, 0.2f, 0.75f, 0.1f, 1.0f, 0.25f, 0.25f, 1.0f, 0.1f, 1.0f, 1.0f 413 ); 414 WPVARM(IDF_GAMEMOD, fragtime, 1, VAR_MAX, 415 500, 500, 500, 250, 500, 1000, 500, 500, 500, 1000, 1000, 1000, 500, 416 500, 500, 500, 2000, 1000, 3000, 500, 500, 500, 1000, 5000, 1000, 500 417 ); 418 WPVARM(IDF_GAMEMOD, fragtimedelay, 0, VAR_MAX, 419 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 420 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 421 ); 422 WPVARM(IDF_GAMEMOD, fragtimeiter, 0, VAR_MAX, 423 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 3, 0, 424 0, 0, 0, 0, 3, 0, 0, 0, 0, 3, 100, 3, 0 425 ); 426 WPVARM(IDF_GAMEMOD, fragweap, -1, W_MAX*2-1, 427 -1, -1, -1, -1, -1, -1, -1, -1, -1, W_SHOTGUN, W_ZAPPER, W_SMG, -1, 428 -1, -1, -1, WZ(SHOTGUN),WZ(SMG), -1, -1, -1, -1, W_SHOTGUN, WZ(ZAPPER), W_SMG, -1 429 ); 430 WPFVAR(IDF_GAMEMOD, frequency, 0, FVAR_MAX, 431 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 2.0f, 2.0f, 4.0f, 0.0f 432 ); 433 WPVARM(IDF_GAMEMOD, fullauto, 0, 1, 434 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 435 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1 436 ); 437 WPVARK(IDF_GAMEMOD, grab, 0, 3, 438 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 439 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 440 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 441 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 442 ); 443 WPVARK(IDF_GAMEMOD, guided, 0, 6, 444 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 445 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 446 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 447 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 448 ); 449 WPVARK(IDF_GAMEMOD, guideddelay, 0, VAR_MAX, 450 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 451 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 0, 452 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 0 454 ); 455 WPFVARK(IDF_GAMEMOD, headmin, 0, FVAR_MAX, 456 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 4.0f, 4.0f, 4.0f, 4.0f, 8.0f, 8.0f, 8.0f, 0.0f, 457 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 4.0f, 4.0f, 4.0f, 4.0f, 8.0f, 8.0f, 8.0f, 0.0f, 458 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 4.0f, 4.0f, 4.0f, 4.0f, 8.0f, 8.0f, 8.0f, 0.0f, 459 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 4.0f, 4.0f, 4.0f, 4.0f, 8.0f, 8.0f, 8.0f, 0.0f 460 ); 461 WPFVARK(IDF_GAMEMOD, hitpush, FVAR_MIN, FVAR_MAX, 462 50.0f, 20.0f, 25.0f, 10.0f, 25.0f, 5.0f, 10.0f, 10.0f, 25.0f, 60.0f, 0.0f, 125.0f, 50.0f, 463 100.0f, 20.0f, 50.0f, 15.0f, 10.0f, 25.0f, -50.0f, 10.0f , 50.0f, 60.0f, 0.0f, 125.0f, 100.0f, 464 50.0f, 20.0f, 25.0f, 10.0f, 25.0f, 5.0f, 10.0f, 10.0f, 10.0f, 60.0f, 0.0f, 125.0f, 50.0f, 465 100.0f, 20.0f, 50.0f, 15.0f, 10.0f, 25.0f, -50.0f, 10.0f, 10.0f, 60.0f, 0.0f, 125.0f, 100.0f 466 ); 467 WPFVARK(IDF_GAMEMOD, hitvel, FVAR_MIN, FVAR_MAX, 468 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 469 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 470 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 471 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 472 ); 473 WPVARK(IDF_GAMEMOD, interacts, 0, 3, 474 0, 1, 0, 1, 1, 1, 1, 1, 1, 3, 3, 1, 0, 475 0, 1, 0, 3, 3, 1, 1, 1, 1, 3, 3, 1, 0, 476 0, 1, 0, 1, 1, 1, 1, 1, 1, 3, 3, 1, 0, 477 0, 1, 0, 3, 3, 1, 1, 1, 1, 3, 3, 1, 0 478 ); 479 WPFVARM(IDF_GAMEMOD, kickpush, FVAR_MIN, FVAR_MAX, 480 0.0f, 4.0f, -15.0f, 50.0f, 5.0f, 1.0f, 20.0f, 5.0f, 35.0f, 5.0f, 5.0f, 150.0f, 0.0f, 481 0.0f, 6.0f, -30.0f, 75.0f, 25.0f, 50.0f, 150.0f, 50.0f, 50.0f, 5.0f, 5.0f, 150.0f, 0.0f 482 ); 483 WPVAR(IDF_GAMEMOD, laser, 0, 1, 484 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 485 ); 486 WPVARK(IDF_GAMEMOD|IDF_HEX, lightcol, PC(LAST), 0xFFFFFF, 487 0x907020, 0xD0D0D0, 0x4040F0, 0xF0F020, 0xF05820, PC(FIRE), 0x40F0C8, PC(SHOCK), 0xA020F0, PC(FIRE), 0x00F068, PC(FIRE), 0xEEEE22, 488 0x907020, 0xD0D0D0, 0x4040F0, 0xF0F020, 0xF05820, 0xF0F0F0, 0x40F0C8, PC(SHOCK), 0xA020F0, PC(FIRE), 0x00F068, PC(FIRE), 0xEEEE22, 489 0x907020, 0xD0D0D0, 0x4040F0, 0xF0F020, 0xF05820, PC(FIRE), 0x40F0C8, PC(SHOCK), 0xA020F0, PC(FIRE), 0x00F068, PC(FIRE), 0xEEEE22, 490 0x907020, 0xD0D0D0, 0x4040F0, 0xF0F020, 0xF05820, 0xF0F0F0, 0x40F0C8, PC(SHOCK), 0xA020F0, PC(FIRE), 0x00F068, PC(FIRE), 0xEEEE22 491 ); 492 WPVAR(IDF_GAMEMOD, lightpersist, 0, 15, 493 0, 0, 1, 0, 0, 1, 0, 1, 0, 8, 0, 6, 0 494 ); 495 WPFVAR(IDF_GAMEMOD, lightradius, 0, FVAR_MAX, 496 0, 8, 8, 8, 8, 8, 16, 4, 16, 16, 16, 16, 0 497 ); 498 WPFVARK(IDF_GAMEMOD, liquidcoast, 0, FVAR_MAX, 499 0.0f, 2.0f, 0.0f, 2.0f, 2.0f, 1.0f, 1.0f, 1.0f, 2.0f, 2.0f, 2.0f, 2.0f, 0.0f, 500 0.0f, 2.0f, 0.0f, 2.0f, 2.0f, 1.0f, 1.0f, 1.0f, 2.0f, 2.0f, 2.0f, 2.0f, 0.0f, 501 0.0f, 2.0f, 0.0f, 2.0f, 2.0f, 1.0f, 1.0f, 1.0f, 2.0f, 2.0f, 2.0f, 2.0f, 0.0f, 502 0.0f, 2.0f, 0.0f, 2.0f, 2.0f, 1.0f, 1.0f, 1.0f, 2.0f, 2.0f, 2.0f, 2.0f, 0.0f 503 ); 504 WPVAR(IDF_GAMEMOD, modes, -G_ALL, G_ALL, 505 0, -G_SW, -G_SW, -G_SW, -G_SW, -G_SW, -G_SW, -G_SW, -G_SW, -G_SW, -G_SW, -G_SW, 0 506 ); 507 WPVAR(IDF_GAMEMOD, muts, -G_M_ALL, G_M_ALL, 508 0, -G_M_SW, -G_M_SW, -G_M_SW, -G_M_SW, -G_M_SW, -G_M_SW, -G_M_SW, -G_M_SW, 0, -G_M_IM, -G_M_DK, 0 509 ); 510 WPSVARR(IDF_GAMEMOD, obitsuicide, 511 "hit themself", 512 "ate a bullet", 513 "created too much torsional stress", 514 "tested the effectiveness of their own shrapnel", 515 "fell victim to their own crossfire", 516 "spontaneously combusted", 517 "was caught up in their own plasma-filled mayhem", 518 "tried to use themself as a circuit breaker", 519 "got a good shock", 520 "kicked it, kamikaze style", 521 "kicked it, kamikaze style", 522 "exploded with style", 523 "kicked themself" 524 ); 525 WPSVARR(IDF_GAMEMOD, obitobliterated, 526 "clawed and mauled", 527 "skewered", 528 "sliced in half", 529 "turned into little chunks", 530 "swiss-cheesed", 531 "barbequed", 532 "reduced to ooze", 533 "shocked relentlessly", 534 "given laser shock treatment", 535 "turned into shrapnel", 536 "turned into shrapnel", 537 "obliterated", 538 "given kung-fu lessons" 539 ); 540 WPSVARR(IDF_GAMEMOD, obitheadless, 541 "clawed and mauled", 542 "capped", 543 "sliced in half", 544 "scrambled", 545 "air conditioned", 546 "char-grilled", 547 "plasmafied", 548 "electrocuted", 549 "expertly sniped", 550 "blown to pieces", 551 "blown to pieces", 552 "exploded", 553 "given kung-fu lessons" 554 ); 555 WPSVARK(IDF_GAMEMOD, obituary, 556 "clawed", 557 "pierced", 558 "impaled", 559 "sprayed with buckshot", 560 "riddled with holes", 561 "char-grilled", 562 "plasmified", 563 "electrocuted", 564 "laser shocked", 565 "blown to pieces", 566 "blown to pieces", 567 "exploded", 568 "kicked", 569 570 "clawed", 571 "pierced", 572 "impaled", 573 "filled with lead", 574 "spliced apart", 575 "snuffed out", 576 "shown the light", 577 "shocked into submission", 578 "given laser burn", 579 "blown to pieces", 580 "blown to pieces", 581 "exploded", 582 "kicked", 583 584 "clawed and mauled", 585 "picked to pieces", 586 "melted in half", 587 "filled with shrapnel", 588 "air-conditioned", 589 "cooked alive", 590 "melted alive", 591 "turned into a lightning rod", 592 "shocked to pieces", 593 "turned into shrapnel", 594 "turned into shrapnel", 595 "obliterated", 596 "given kung-fu lessons", 597 598 "clawed and mauled", 599 "picked to pieces", 600 "melted in half", 601 "filled with shrapnel", 602 "air-conditioned", 603 "cooked alive", 604 "melted alive", 605 "turned into a lightning rod", 606 "shocked to pieces", 607 "turned into shrapnel", 608 "turned into shrapnel", 609 "obliterated", 610 "given kung-fu lessons" 611 ); 612 WPFVARK(IDF_GAMEMOD, partblend, 0, 1, 613 1.0f, 0.3f, 1.0f, 1.0f, 1.0f, 0.8f, 0.8f, 1.0f, 1.0f, 1.0f, 0.75f, 1.0f, 1.0f, 614 1.0f, 0.6f, 1.0f, 1.0f, 1.0f, 0.15f, 1.0f, 1.0f, 1.0f, 1.0f, 0.75f, 1.0f, 1.0f, 615 1.0f, 0.3f, 1.0f, 1.0f, 1.0f, 0.8f, 0.8f, 1.0f, 1.0f, 1.0f, 0.75f, 1.0f, 1.0f, 616 1.0f, 0.6f, 1.0f, 1.0f, 1.0f, 0.15f, 1.0f, 1.0f, 1.0f, 1.0f, 0.75f, 1.0f, 1.0f 617 ); 618 WPVARK(IDF_GAMEMOD|IDF_HEX, partcol, PC(LAST), 0xFFFFFF, 619 0x907020, 0xD0D0D0, 0x4040F0, 0xF0F020, 0xF05820, PC(FIRE), 0x40F0C8, PC(SHOCK), 0xA020F0, PC(FIRE), 0x00F068, PC(FIRE), 0xEEEE22, 620 0x907020, 0xD0D0D0, 0x4040F0, 0xF0F020, 0xF05820, 0xF0F0F0, 0x40F0C8, PC(SHOCK), 0xA020F0, PC(FIRE), 0x00F068, PC(FIRE), 0xEEEE22, 621 0x907020, 0xD0D0D0, 0x4040F0, 0xF0F020, 0xF05820, PC(FIRE), 0x40F0C8, PC(SHOCK), 0xA020F0, PC(FIRE), 0x00F068, PC(FIRE), 0xEEEE22, 622 0x907020, 0xD0D0D0, 0x4040F0, 0xF0F020, 0xF05820, 0xF0F0F0, 0x40F0C8, PC(SHOCK), 0xA020F0, PC(FIRE), 0x00F068, PC(FIRE), 0xEEEE22 623 ); 624 WPVARK(IDF_GAMEMOD, partfade, 1, VAR_MAX, 625 500, 250, 500, 250, 250, 200, 500, 100, 500, 500, 500, 750, 500, 626 500, 250, 500, 250, 250, 500, 500, 200, 950, 500, 500, 750, 500, 627 500, 250, 500, 250, 250, 200, 500, 250, 500, 500, 500, 750, 500, 628 500, 250, 500, 250, 250, 500, 500, 500, 750, 500, 500, 750, 500 629 ); 630 WPFVARK(IDF_GAMEMOD, partlen, 0, FVAR_MAX, 631 0.0f, 8.0f, 0.0f, 30.0f, 20.0f, 0.0f, 0.0f, 1024.f, 256.0f, 0.0f, 4.0f, 0.0f, 0.0f, 632 0.0f, 16.0f, 0.0f, 15.0f, 15.0f, 0.0f, 0.0f, 1024.f, 1024.0f, 0.0f, 4.0f, 0.0f, 0.0f, 633 0.0f, 8.0f, 0.0f, 7.5f, 7.5f, 0.0f, 0.0f, 1024.f, 256.0f, 0.0f, 4.0f, 0.0f, 0.0f, 634 0.0f, 16.0f, 0.0f, 7.5f, 7.5f, 0.0f, 0.0f, 1024.f, 512.0f, 0.0f, 4.0f, 0.0f, 0.0f 635 ); 636 WPFVARK(IDF_GAMEMOD, partsize, 0, FVAR_MAX, 637 1.0f, 0.125f, 1.0f, 0.75f, 0.6f, 6.0f, 8.0f, 2.0f, 1.5f, 1.0f, 2.0f, 2.0f, 0.5f, 638 2.0f, 0.25f, 1.25f, 0.45f, 0.4f, 12.0f, 28.0f, 3.0f, 3.0f, 1.0f, 2.0f, 2.0f, 1.0f, 639 1.0f, 0.125f, 1.0f, 0.45f, 0.4f, 6.0f, 8.0f, 3.0f, 1.5f, 1.0f, 2.0f, 2.0f, 0.5f, 640 2.0f, 0.25f, 1.25f, 0.45f, 0.4f, 12.0f, 28.0f, 5.0f, 3.0f, 1.0f, 2.0f, 2.0f, 1.0f 641 ); 642 WPVARK(IDF_GAMEMOD, parttype, 0, W_MAX-1, 643 W_CLAW, W_PISTOL, W_SWORD, W_SHOTGUN, W_SMG, W_FLAMER, W_PLASMA, W_ZAPPER, W_RIFLE, W_GRENADE, W_MINE, W_ROCKET, W_MELEE, 644 W_CLAW, W_PISTOL, W_SWORD, W_SHOTGUN, W_SMG, W_FLAMER, W_PLASMA, W_ZAPPER, W_RIFLE, W_GRENADE, W_MINE, W_ROCKET, W_MELEE, 645 W_CLAW, W_PISTOL, W_SWORD, W_SHOTGUN, W_SMG, W_FLAMER, W_PLASMA, W_ZAPPER, W_RIFLE, W_GRENADE, W_MINE, W_ROCKET, W_MELEE, 646 W_CLAW, W_PISTOL, W_SWORD, W_SHOTGUN, W_SMG, W_FLAMER, W_PLASMA, W_ZAPPER, W_RIFLE, W_GRENADE, W_MINE, W_ROCKET, W_MELEE 647 ); 648 WPVARK(IDF_GAMEMOD, proxdelay, 0, VAR_MAX, 649 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3000, 0, 0, 650 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1500000, 0, 0, 651 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3000, 0, 0, 652 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1500000, 0, 0 653 ); 654 WPFVARK(IDF_GAMEMOD, proxdist, 0, FVAR_MAX, 655 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 32.0f, 0.0f, 0.0f, 656 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, FVAR_MAX, 0.0f, 0.0f, 657 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 32.0f, 0.0f, 0.0f, 658 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, FVAR_MAX, 0.0f, 0.0f 659 ); 660 WPVARK(IDF_GAMEMOD, proxtime, 0, VAR_MAX, 661 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 662 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 663 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 664 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 665 ); 666 WPVARK(IDF_GAMEMOD, proxtype, 0, 2, 667 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 668 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 669 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 670 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0 671 ); 672 WPVARK(IDF_GAMEMOD, radial, 0, VAR_MAX, 673 0, 0, 0, 0, 0, 50, 50, 0, 0, 0, 0, 0, 0, 674 0, 0, 0, 0, 0, 50, 100, 0, 0, 0, 0, 0, 0, 675 0, 0, 0, 0, 0, 50, 50, 0, 0, 0, 0, 0, 0, 676 0, 0, 0, 0, 0, 50, 100, 0, 0, 0, 0, 0, 0 677 ); 678 WPFVARK(IDF_GAMEMOD, radius, FVAR_NONZERO, FVAR_MAX, 679 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 680 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 681 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 682 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f 683 ); 684 WPVARM(IDF_GAMEMOD, rays, 0, MAXPARAMS, 685 1, 1, 1, 20, 1, 1, 1, 1, 1, 1, 1, 1, 1, 686 1, 1, 1, 1, 1, 1, 1, 6, 1, 1, 1, 1, 1 687 ); 688 WPFVARK(IDF_GAMEMOD, reflectivity, 0, FVAR_MAX, 689 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 690 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 691 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 692 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f 693 ); 694 WPFVARM(IDF_GAMEMOD, relativity, 0, FVAR_MAX, 695 0.0f, 0.05f, 0.0f, 0.15f, 0.15f, 0.95f, 0.15f, 0.0f, 0.5f, 0.75f, 0.5f, 0.0f, 0.0f, 696 0.0f, 0.05f, 0.0f, 0.35f, 0.25f, 0.15f, 0.15f, 0.0f, 0.1f, 0.75f, 0.5f, 0.0f, 0.0f 697 ); 698 WPVARK(IDF_GAMEMOD, residual, 0, WR_ALL, 699 0, 0, WR(BLEED), 0, 0, WR(BURN), 0, 0, 0, WR(BURN), WR(SHOCK), WR(BURN), 0, 700 0, 0, WR(BLEED), WR(BLEED), 0, 0, 0, WR(SHOCK), 0, WR(BURN), WR(SHOCK), WR(BURN), 0, 701 0, 0, WR(BLEED), 0, 0, WR(BURN), 0, 0, 0, WR(BURN), WR(SHOCK), WR(BURN), 0, 702 0, 0, WR(BLEED), WR(BLEED), 0, 0, 0, WR(SHOCK), 0, WR(BURN), WR(SHOCK), WR(BURN), 0 703 ); 704 WPVARK(IDF_GAMEMOD, residualundo, 0, WR_ALL, 705 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 706 0, 0, 0, 0, 0, WR(BURN), 0, 0, 0, 0, 0, 0, 0, 707 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 708 0, 0, 0, 0, 0, WR(BURN), 0, 0, 0, 0, 0, 0, 0 709 ); 710 WPVARM(IDF_GAMEMOD, speed, 0, VAR_MAX, 711 0, 1500, 0, 1000, 2000, 400, 1250, 10000, 10000, 200, 100, 1000, 0, 712 0, 1000, 0, 250, 500, 750, 85, 50000, 100000, 200, 100, 250, 0 713 ); 714 WPFVARK(IDF_GAMEMOD, speeddelta, 0, FVAR_MAX, 715 10.0f, 10.0f, 10.0f, 10.0f, 10.0f, 10.0f, 10.0f, 10.0f, 10.0f, 10.0f, 10.0f, 10.0f, 10.0f, 716 10.0f, 10.0f, 10.0f, 10.0f, 1000.0f, 10.0f, 10.0f, 10.0f, 10.0f, 10.0f, 10.0f, 10.0f, 10.0f, 717 10.0f, 10.0f, 10.0f, 10.0f, 10.0f, 10.0f, 10.0f, 10.0f, 10.0f, 10.0f, 10.0f, 10.0f, 10.0f, 718 10.0f, 10.0f, 10.0f, 10.0f, 1000.0f, 10.0f, 10.0f, 10.0f, 10.0f, 10.0f, 10.0f, 10.0f, 10.0f 719 ); 720 WPVARM(IDF_GAMEMOD, speedlimit, 0, VAR_MAX, 721 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 722 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0 723 ); 724 WPFVARK(IDF_GAMEMOD, speedmin, 0, FVAR_MAX, 725 0.0f, 0.0f, 0.0f, 25.0f, 25.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 726 0.0f, 0.0f, 0.0f, 25.0f, 25.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 727 50.0f, 50.0f, 50.0f, 50.0f, 50.0f, 1.0f, 50.0f, 0.0f, 50.0f, 50.0f, 50.0f, 50.0f, 50.0f, 728 50.0f, 50.0f, 50.0f, 50.0f, 50.0f, 1.0f, 50.0f, 0.0f, 50.0f, 50.0f, 50.0f, 50.0f, 50.0f 729 ); 730 WPFVARK(IDF_GAMEMOD, speedmax, 0, FVAR_MAX, 731 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 732 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 733 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 734 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f 735 ); 736 WPFVARM(IDF_GAMEMOD, spread, 0, FVAR_MAX, 737 1.0f, 1.0f, 1.0f, 12.5f, 2.5f, 5.0f, 2.0f, 2.5f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 738 1.0f, 2.0f, 1.0f, 2.0f, 2.0f, 1.0f, 1.0f, 3.0f, 0.5f, 1.0f, 1.0f, 1.0f, 1.0f 739 ); 740 WPFVARM(IDF_GAMEMOD, spreadmax, 0, FVAR_MAX, 741 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 742 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f 743 ); 744 WPFVARM(IDF_GAMEMOD, spreadmin, 0, FVAR_MAX, 745 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 746 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f 747 ); 748 WPFVARM(IDF_GAMEMOD, spreadz, 0, FVAR_MAX, 749 1.0f, 2.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 2.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 750 1.0f, 2.0f, 1.0f, 4.0f, 2.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f 751 ); 752 WPVARK(IDF_GAMEMOD, stun, 0, W_N_ALL, 753 W_N_ADD, W_N_ADD, W_N_AI, W_N_ADD, W_N_ADD, W_N_ADD, W_N_ADD, W_N_ADD, W_N_ADD, W_N_ADD, W_N_ADD, W_N_ADD, W_N_ADD, 754 W_N_ADD, W_N_ADD, W_N_AI, W_N_ADD, W_N_ADD, W_N_ALL, W_N_ADD, W_N_ADD, W_N_ADD, W_N_ADD, W_N_ADD, W_N_ADD, W_N_ADD, 755 W_N_ADD, W_N_ADD, W_N_AI, W_N_ADD, W_N_ADD, W_N_ADD, W_N_AI, W_N_ADD, W_N_ADD, W_N_ADD, W_N_ADD, W_N_ADD, W_N_ADD, 756 W_N_ADD, W_N_ADD, W_N_AI, W_N_ADD, W_N_ADD, W_N_ALL, W_N_AI, W_N_AI, W_N_ADD, W_N_ADD, W_N_ADD, W_N_ADD, W_N_ADD 757 ); 758 WPFVARK(IDF_GAMEMOD, stunfall, 0, FVAR_MAX, 759 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.1f, 0.01f, 0.1f, 0.0f, 8.0f, 0.2f, 0.0f, 760 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 1.5f, 0.5f, 0.01f, 1.0f, 0.0f, 16.0f, 0.1f, 0.0f, 761 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.1f, 8.0f, 8.0f, 0.0f, 8.0f, 0.2f, 0.0f, 762 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 1.5f, 0.5f, 16.0f, 16.0f, 0.0f, 16.0f, 0.1f, 0.0f 763 ); 764 WPFVARK(IDF_GAMEMOD, stunscale, 0, FVAR_MAX, 765 0.5f, 0.25f, 2.0f, 0.25f, 0.5f, 0.0f, 0.2f, 0.5f, 0.75f, 2.0f, 8.0f, 16.0f, 0.5f, 766 1.0f, 0.25f, 4.0f, 0.35f, 1.0f, 0.15f, 0.5f, 0.5f, 2.0f, 2.0f, 16.0f, 8.0f, 1.0f, 767 0.5f, 0.25f, 2.0f, 0.25f, 0.5f, 0.0f, 0.2f, 8.0f, 8.0f, 2.0f, 8.0f, 16.0f, 0.5f, 768 1.0f, 0.25f, 4.0f, 0.35f, 1.0f, 0.15f, 0.5f, 16.0f, 16.0f, 2.0f, 16.0f, 8.0f, 1.0f 769 ); 770 WPVARK(IDF_GAMEMOD, stuntime, 0, VAR_MAX, 771 100, 25, 300, 75, 75, 0, 0, 500, 100, 200, 500, 750, 100, 772 200, 25, 500, 150, 150, 500, 200, 250, 250, 200, 750, 500, 200, 773 100, 25, 300, 75, 75, 0, 0, 500, 500, 200, 500, 750, 100, 774 200, 25, 500, 150, 150, 500, 200, 750, 750, 200, 750, 500, 200 775 ); 776 WPVARK(IDF_GAMEMOD, taper, 0, 6, 777 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 778 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 779 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 780 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0 781 ); 782 WPFVARK(IDF_GAMEMOD, taperin, 0, FVAR_MAX, 783 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 784 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 785 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 786 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f 787 ); 788 WPFVARK(IDF_GAMEMOD, taperout, 0, FVAR_MAX, 789 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.01f, 0.01f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 790 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 791 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.01f, 0.01f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 792 0.0f, 0.0f, 0.0f, 0.01f, 0.01f, 0.01f, 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f 793 ); 794 WPFVARK(IDF_GAMEMOD, tapermin, 0, 1, 795 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 796 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 797 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 798 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f 799 ); 800 WPFVARK(IDF_GAMEMOD, tapermax, 0, 1, 801 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 802 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 803 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 804 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f 805 ); 806 WPVARM(IDF_GAMEMOD, time, 1, VAR_MAX, 807 100, 2000, 350, 250, 510, 200, 350, 100, 5000, 3000, 60000, 5000, 100, 808 350, 1000, 500, 700, 1000, 100, 3500, 100, 5000, 3000, 30000, 5000, 350 809 ); 810 WPVARM(IDF_GAMEMOD, timedelay, 0, VAR_MAX, 811 0, 0, 10, 0, 0, 0, 0, 0, 0, 175, 50, 0, 0, 812 0, 0, 10, 0, 0, 0, 75, 0, 0, 175, 50, 0, 0 813 ); 814 WPVARM(IDF_GAMEMOD, timeiter, 0, VAR_MAX, 815 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 816 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0 817 ); 818 WPVARK(IDF_GAMEMOD, timestick, 0, VAR_MAX, 819 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 820 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 821 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 822 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 823 ); 824 WPFVARM(IDF_GAMEMOD, trace, 0, FVAR_MAX, 825 4.0f, 1.0f, 1.5f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 4.0f, 826 4.0f, 1.0f, 1.5f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 4.0f 827 ); 828 WPFVARK(IDF_GAMEMOD, visfade, 0, 1, 829 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 830 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 831 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 832 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f 833 ); 834 WPVARK(IDF_GAMEMOD, vistime, 0, VAR_MAX, 835 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 836 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 837 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 838 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 839 ); 840 WPFVARK(IDF_GAMEMOD, wavepush, 0, FVAR_MAX, 841 1.5f, 1.5f, 1.5f, 1.5f, 1.5f, 0.0f, 1.5f, 2.5f, 2.5f, 2.0f, 2.0f, 3.0f, 1.5f, 842 1.5f, 1.5f, 1.5f, 1.5f, 1.5f, 3.0f, 2.5f, 2.5f, 1.5f, 2.0f, 2.0f, 3.0f, 1.5f, 843 1.5f, 1.5f, 1.5f, 1.5f, 1.5f, 0.0f, 1.5f, 1.5f, 1.5f, 2.0f, 2.0f, 3.0f, 1.5f, 844 1.5f, 1.5f, 1.5f, 1.5f, 1.5f, 3.0f, 2.5f, 2.5f, 2.5f, 2.0f, 2.0f, 3.0f, 1.5f 845 ); 846 WPFVARK(IDF_GAMEMOD, weight, FVAR_MIN, FVAR_MAX, 847 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, -25.0f, 0.0f, 0.0f, 0.0f, 75.0f, 150.0f, 0.0f, 0.0f, 848 0.0f, 0.0f, 0.0f, 250.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 75.0f, 150.0f, 0.0f, 0.0f, 849 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, -25.0f, 0.0f, 0.0f, 0.0f, 75.0f, 150.0f, 0.0f, 0.0f, 850 0.0f, 0.0f, 0.0f, 250.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 75.0f, 150.0f, 0.0f, 0.0f 851 ); 852 853 #define WRS(a,b,c,d) ((a)*(m_dm_gladiator(c, d) ? G(gladiator##b##scale) : G(b##scale)*(m_sweaps(c, d) ? G(b##limited) : 1.f))) 854 #define WX(k,a,b,c,d,e,f) (!m_insta(d, e) || (a) != W_RIFLE ? WRS(WF(k, a, b, c)*f, radial, d, e) : 0) 855 #define WSP(a,b,c,d,e) (!m_insta(c, d) || (a) != W_RIFLE ? clamp(W2(a, spread, b)*(e), W2(a, spreadmin, b), W2(a, spreadmax, b) > 0 ? W2(a, spreadmax, b) : FVAR_MAX) : 0.f) 856 #define WSND(a,b) (weaptype[a].sound+(b)) 857 #define WSNDF(a,b) (weaptype[a].sound+((b) ? S_W_SECONDARY : S_W_PRIMARY)) 858 #define WSND2(a,b,c) (weaptype[a].sound+((b) ? (c)+1 : (c))) 859 #define WUSE(a) (a < W_ITEM ? W(a, ammomax) : W(a, ammoadd)) 860 #define WHCOL(d,a,b,c) (W2(a, b, c) >= 0 ? W2(a, b, c) : game::hexpulsecolour(d, clamp(INVPULSE(W2(a, b, c)), 0, int(PULSE_LAST)), 50)) 861 #define WPCOL(d,a,b,c) (W2(a, b, c) >= 0 ? vec::hexcolor(W2(a, b, c)) : game::pulsecolour(d, clamp(INVPULSE(W2(a, b, c)), 0, int(PULSE_LAST)), 50)) 862 863 struct weaptypes 864 { 865 int anim, sound, espeed; 866 bool muzzle, eject, tape; 867 float thrown[2], halo, esize; 868 const char *name, *item, *vwep, *hwep, *proj, *eprj; 869 }; 870 #ifdef GAMESERVER 871 weaptypes weaptype[] = 872 { 873 { 874 ANIM_CLAW, S_CLAW, 1, 875 true, false, true, 876 { 0, 0 }, 14, 0, 877 "claw", "weapons/claw/item", "weapons/claw/vwep", "weapons/claw/hwep", "", "" 878 }, 879 { 880 ANIM_PISTOL, S_PISTOL, 10, 881 true, true, false, 882 { 0, 0 }, 8, 0.35f, 883 "pistol", "weapons/pistol/item", "weapons/pistol/vwep", "weapons/pistol/hwep", "weapons/pistol/proj", "projectiles/cartridge" 884 }, 885 { 886 ANIM_SWORD, S_SWORD, 1, 887 true, false, true, 888 { 0, 0 }, 14, 0, 889 "sword", "weapons/sword/item", "weapons/sword/vwep", "weapons/sword/hwep", "", "" 890 }, 891 { 892 ANIM_SHOTGUN, S_SHOTGUN, 10, 893 true, true, false, 894 { 0, 0 }, 12, 0.45f, 895 "shotgun", "weapons/shotgun/item", "weapons/shotgun/vwep", "weapons/shotgun/hwep", "", "projectiles/shell" 896 }, 897 { 898 ANIM_SMG, S_SMG, 20, 899 true, true, false, 900 { 0, 0 }, 10, 0.35f, 901 "smg", "weapons/smg/item", "weapons/smg/vwep", "weapons/smg/hwep", "", "projectiles/cartridge" 902 }, 903 { 904 ANIM_FLAMER, S_FLAMER, 1, 905 true, true, false, 906 { 0, 0 }, 12, 0, 907 "flamer", "weapons/flamer/item", "weapons/flamer/vwep", "weapons/flamer/hwep", "", "" 908 }, 909 { 910 ANIM_PLASMA, S_PLASMA, 1, 911 true, false, false, 912 { 0, 0 }, 8, 0, 913 "plasma", "weapons/plasma/item", "weapons/plasma/vwep", "weapons/plasma/hwep", "", "" 914 }, 915 { 916 ANIM_ZAPPER, S_ZAPPER, 1, 917 true, false, true, 918 { 0, 0 }, 10, 0, 919 "zapper", "weapons/zapper/item", "weapons/zapper/vwep", "weapons/zapper/hwep", "", "" 920 }, 921 { 922 ANIM_RIFLE, S_RIFLE, 1, 923 true, false, false, 924 { 0, 0 }, 12, 0, 925 "rifle", "weapons/rifle/item", "weapons/rifle/vwep", "weapons/rifle/hwep", "", "" 926 }, 927 { 928 ANIM_GRENADE, S_GRENADE, 1, 929 false, false, false, 930 { 0.0625f, 0.0625f }, 6, 0, 931 "grenade", "weapons/grenade/item", "weapons/grenade/vwep", "weapons/grenade/hwep", "weapons/grenade/proj", "" 932 }, 933 { 934 ANIM_MINE, S_MINE, 1, 935 false, false, false, 936 { 0.0625f, 0.0625f }, 6, 0, 937 "mine", "weapons/mine/item", "weapons/mine/vwep", "weapons/mine/hwep", "weapons/mine/proj", "" 938 }, 939 { 940 ANIM_ROCKET, S_ROCKET, 1, 941 true, false, false, 942 { 0, 0 }, 10, 0, 943 "rocket", "weapons/rocket/item", "weapons/rocket/vwep", "weapons/rocket/hwep", "weapons/rocket/proj", "" 944 }, 945 { 946 0, S_MELEE, 1, 947 false, false, false, 948 { 0, 0 }, 1, 0, 949 "melee", "", "", "", "", "" 950 } 951 }; 952 SVAR(0, weapname, "claw pistol sword shotgun smg flamer plasma zapper rifle grenade mine rocket melee"); 953 VAR(0, weapidxclaw, 1, W_CLAW, -1); 954 VAR(0, weapidxpistol, 1, W_PISTOL, -1); 955 VAR(0, weapidxsword, 1, W_SWORD, -1); 956 VAR(0, weapidxshotgun, 1, W_SHOTGUN, -1); 957 VAR(0, weapidxsmg, 1, W_SMG, -1); 958 VAR(0, weapidxflamer, 1, W_FLAMER, -1); 959 VAR(0, weapidxplasma, 1, W_PLASMA, -1); 960 VAR(0, weapidxzapper, 1, W_ZAPPER, -1); 961 VAR(0, weapidxrifle, 1, W_RIFLE, -1); 962 VAR(0, weapidxgrenade, 1, W_GRENADE, -1); 963 VAR(0, weapidxmine, 1, W_MINE, -1); 964 VAR(0, weapidxrocket, 1, W_ROCKET, -1); 965 VAR(0, weapidxmelee, 1, W_MELEE, -1); 966 VAR(0, weapidxoffset, 1, W_OFFSET, -1); 967 VAR(0, weapidxitem, 1, W_ITEM, -1); 968 VAR(0, weapidxhidden, 1, W_ALL, -1); 969 VAR(0, weapidxloadout, 1, W_LOADOUT, -1); 970 VAR(0, weapidxnum, 1, W_MAX, -1); 971 #else 972 extern weaptypes weaptype[]; 973 #endif 974