summaryrefslogtreecommitdiff
path: root/src/game
diff options
context:
space:
mode:
Diffstat (limited to 'src/game')
-rw-r--r--src/game/bg_misc.c1429
-rw-r--r--src/game/bg_pmove.c71
-rw-r--r--src/game/bg_public.h99
-rw-r--r--src/game/g_active.c10
-rw-r--r--src/game/g_cmds.c9
-rw-r--r--src/game/g_combat.c7
-rw-r--r--src/game/g_misc.c6
-rw-r--r--src/game/g_missile.c8
-rw-r--r--src/game/g_weapon.c56
9 files changed, 349 insertions, 1346 deletions
diff --git a/src/game/bg_misc.c b/src/game/bg_misc.c
index 071ceb7f..f2b132a8 100644
--- a/src/game/bg_misc.c
+++ b/src/game/bg_misc.c
@@ -18,940 +18,6 @@
#include "q_shared.h"
#include "bg_public.h"
-/*QUAKED item_***** ( 0 0 0 ) (-16 -16 -16) (16 16 16) suspended
-DO NOT USE THIS CLASS, IT JUST HOLDS GENERAL INFORMATION.
-The suspended flag will allow items to hang in the air, otherwise they are dropped to the next surface.
-
-If an item is the target of another entity, it will not spawn in until fired.
-
-An item fires all of its targets when it is picked up. If the toucher can't carry it, the targets won't be fired.
-
-"notfree" if set to 1, don't spawn in free for all games
-"notteam" if set to 1, don't spawn in team games
-"notsingle" if set to 1, don't spawn in single player games
-"wait" override the default wait before respawning. -1 = never respawn automatically, which can be used with targeted spawning.
-"random" random number of plus or minus seconds varied from the respawn time
-"count" override quantity or duration on most items.
-*/
-
-gitem_t bg_itemlist[] =
-{
- {
- NULL,
- NULL,
- { NULL,
- NULL,
- 0, 0} ,
-/* icon */ NULL,
-/* pickup */ NULL,
- 0,
- 0,
- 0,
-/* precache */ "",
-/* sounds */ ""
- }, // leave index 0 alone
-
- //
- // ARMOR
- //
-
-/*QUAKED item_armor_shard (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- /*{
- "item_armor_shard",
- "sound/misc/ar1_pkup.wav",
- { "models/powerups/armor/shard.md3",
- "models/powerups/armor/shard_sphere.md3",
- 0, 0} ,
- "icons/iconr_shard",
- "Armor Shard",
- 5,
- IT_ARMOR,
- 0,
- "",
- ""
- },*/
-
-/*QUAKED item_armor_combat (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- /*{
- "item_armor_combat",
- "sound/misc/ar2_pkup.wav",
- { "models/powerups/armor/armor_yel.md3",
- 0, 0, 0},
- "icons/iconr_yellow",
- "Armor",
- 50,
- IT_ARMOR,
- 0,
- "",
- ""
- },*/
-
-/*QUAKED item_armor_body (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- /*{
- "item_armor_body",
- "sound/misc/ar3_pkup.wav",
- { "models/powerups/armor/armor_red.md3",
- 0, 0, 0},
- "icons/iconr_red",
- "Heavy Armor",
- 100,
- IT_ARMOR,
- 0,
- "",
- ""
- },*/
-
- //
- // health
- //
-/*QUAKED item_health_small (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- /*{
- "item_health_small",
- "sound/items/s_health.wav",
- { "models/powerups/health/small_cross.md3",
- "models/powerups/health/small_sphere.md3",
- 0, 0 },
- "icons/iconh_green",
- "5 Health",
- 5,
- IT_HEALTH,
- 0,
- "",
- ""
- },*/
-
-/*QUAKED item_health (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- /*{
- "item_health",
- "sound/items/n_health.wav",
- { "models/powerups/health/medium_cross.md3",
- "models/powerups/health/medium_sphere.md3",
- 0, 0 },
- "icons/iconh_yellow",
- "25 Health",
- 25,
- IT_HEALTH,
- 0,
- "",
- ""
- },*/
-
-/*QUAKED item_health_large (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- /*{
- "item_health_large",
- "sound/items/l_health.wav",
- { "models/powerups/health/large_cross.md3",
- "models/powerups/health/large_sphere.md3",
- 0, 0 },
- "icons/iconh_red",
- "50 Health",
- 50,
- IT_HEALTH,
- 0,
- "",
- ""
- },*/
-
-/*QUAKED item_health_mega (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- /*{
- "item_health_mega",
- "sound/items/m_health.wav",
- { "models/powerups/health/mega_cross.md3",
- "models/powerups/health/mega_sphere.md3",
- 0, 0 },
- "icons/iconh_mega",
- "Mega Health",
- 100,
- IT_HEALTH,
- 0,
- "",
- ""
- },*/
-
-
- //
- // WEAPONS
- //
-
-/*QUAKED weapon_gauntlet (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
-
-//TA:FIXME: must keep gauntlet and machinegun for now or bots have a fit and prevent game working
-
- {
- "weapon_gauntlet",
- "sound/misc/w_pkup.wav",
- { "models/weapons2/gauntlet/gauntlet.md3",
- 0, 0, 0},
- "icons/iconw_gauntlet",
- "Gauntlet",
- 0,
- IT_WEAPON,
- WP_GAUNTLET,
- "",
- ""
- },
-
-/*QUAKED weapon_venom (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- {
- "weapon_venom",
- "sound/misc/w_pkup.wav",
- { "models/weapons2/gauntlet/gauntlet.md3",
- 0, 0, 0},
- "icons/iconw_gauntlet",
- "Venom",
- 0,
- IT_WEAPON,
- WP_VENOM,
- "",
- ""
- },
-
-/*QUAKED weapon_grabandcsaw (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- {
- "weapon_grabandcsaw",
- "sound/misc/w_pkup.wav",
- { "models/weapons2/gauntlet/gauntlet.md3",
- 0, 0, 0},
- "icons/iconw_gauntlet",
- "Circular Saw",
- 0,
- IT_WEAPON,
- WP_GRABANDCSAW,
- "",
- ""
- },
-
-/*QUAKED weapon_pounce (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- {
- "weapon_pounce",
- "sound/misc/w_pkup.wav",
- { "models/weapons2/gauntlet/gauntlet.md3",
- 0, 0, 0},
- "icons/iconw_gauntlet",
- "Claw and Pounce",
- 0,
- IT_WEAPON,
- WP_POUNCE,
- "",
- ""
- },
-
-/*QUAKED weapon_dbuild (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- {
- "weapon_dbuild",
- "sound/misc/w_pkup.wav",
- { "models/weapons2/gauntlet/gauntlet.md3",
- 0, 0, 0},
- "icons/iconw_gauntlet",
- "Alien Build",
- 0,
- IT_WEAPON,
- WP_ABUILD,
- "",
- ""
- },
-
-/*QUAKED weapon_dbuild2 (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- {
- "weapon_dbuild2",
- "sound/misc/w_pkup.wav",
- { "models/weapons2/gauntlet/gauntlet.md3",
- 0, 0, 0},
- "icons/iconw_gauntlet",
- "Alien Build 2",
- 0,
- IT_WEAPON,
- WP_ABUILD2,
- "",
- ""
- },
-
-/*QUAKED weapon_hbuild (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- {
- "weapon_hbuild",
- "sound/misc/w_pkup.wav",
- { "models/weapons2/gauntlet/gauntlet.md3",
- 0, 0, 0},
- "icons/iconw_gauntlet",
- "HBuild",
- 0,
- IT_WEAPON,
- WP_HBUILD,
- "",
- ""
- },
-
-/*QUAKED weapon_hbuild2 (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- {
- "weapon_hbuild2",
- "sound/misc/w_pkup.wav",
- { "models/weapons2/gauntlet/gauntlet.md3",
- 0, 0, 0},
- "icons/iconw_gauntlet",
- "Human Build 2",
- 0,
- IT_WEAPON,
- WP_HBUILD2,
- "",
- ""
- },
-
-/*QUAKED weapon_shotgun (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- /*{
- "weapon_shotgun",
- "sound/misc/w_pkup.wav",
- { "models/weapons2/shotgun/shotgun.md3",
- 0, 0, 0},
- "icons/iconw_shotgun",
- "Shotgun",
- 10,
- IT_WEAPON,
- WP_SHOTGUN,
- "",
- ""
- },*/
-
-/*QUAKED weapon_machinegun (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- {
- "weapon_machinegun",
- "sound/misc/w_pkup.wav",
- { "models/weapons2/machinegun/machinegun.md3",
- 0, 0, 0},
- "icons/iconw_machinegun",
- "Machinegun",
- 40,
- IT_WEAPON,
- WP_MACHINEGUN,
- "",
- ""
- },
-
-/*QUAKED weapon_chaingun (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- {
- "weapon_chaingun",
- "sound/misc/w_pkup.wav",
- { "models/weapons2/machinegun/machinegun.md3",
- 0, 0, 0},
- "icons/iconw_machinegun",
- "Chaingun",
- 40,
- IT_WEAPON,
- WP_CHAINGUN,
- "",
- ""
- },
-
-/*QUAKED weapon_massdriver (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- {
- "weapon_massdriver",
- "sound/misc/w_pkup.wav",
- { "models/weapons2/bfg/bfg.md3",
- 0, 0, 0},
- "icons/iconw_bfg",
- "Mass Driver",
- 40,
- IT_WEAPON,
- WP_MASS_DRIVER,
- "",
- ""
- },
-
-/*QUAKED weapon_pulserifle (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- {
- "weapon_pulserifle",
- "sound/misc/w_pkup.wav",
- { "models/weapons2/plasma/plasma.md3",
- 0, 0, 0},
- "icons/iconw_gauntlet",
- "Pulse Rifle",
- 40,
- IT_WEAPON,
- WP_PULSE_RIFLE,
- "",
- ""
- },
-
-/*QUAKED weapon_ggrenade (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- {
- "weapon_ggrenade",
- "sound/misc/w_pkup.wav",
- { "models/weapons2/gauntlet/gauntlet.md3",
- 0, 0, 0},
- "icons/iconw_gauntlet",
- "Gas Grenade",
- 0,
- IT_WEAPON,
- WP_GGRENADE,
- "",
- ""
- },
-
-/*QUAKED weapon_grenadelauncher (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- /*{
- "weapon_grenadelauncher",
- "sound/misc/w_pkup.wav",
- { "models/weapons2/grenadel/grenadel.md3",
- 0, 0, 0},
- "icons/iconw_grenade",
- "Grenade Launcher",
- 10,
- IT_WEAPON,
- WP_GRENADE_LAUNCHER,
- "",
- "sound/weapons/grenade/hgrenb1a.wav sound/weapons/grenade/hgrenb2a.wav"
- },*/
-
-/*QUAKED weapon_rocketlauncher (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- /*{
- "weapon_rocketlauncher",
- "sound/misc/w_pkup.wav",
- { "models/weapons2/rocketl/rocketl.md3",
- 0, 0, 0},
- "icons/iconw_rocket",
- "Rocket Launcher",
- 10,
- IT_WEAPON,
- WP_ROCKET_LAUNCHER,
- "",
- ""
- },*/
-
-/*QUAKED weapon_teslagen (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- {
- "weapon_teslagen",
- "sound/misc/w_pkup.wav",
- { 0, 0, 0, 0},
- "icons/iconw_lightning",
- "Tesla Generator",
- 100,
- IT_WEAPON,
- WP_TESLAGEN,
- "",
- ""
- },
-
-/*QUAKED weapon_railgun (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- {
- "weapon_railgun",
- "sound/misc/w_pkup.wav",
- { 0, 0, 0, 0},
- "icons/iconw_railgun",
- "Railgun",
- 10,
- IT_WEAPON,
- WP_RAILGUN,
- "",
- ""
- },
-
-/*QUAKED weapon_sawbladelauncher (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- {
- "weapon_lockbloblauncher",
- "sound/misc/w_pkup.wav",
- { 0, 0, 0, 0},
- "icons/iconw_rocket",
- "Lockblob Launcher",
- 10,
- IT_WEAPON,
- WP_LOCKBLOB_LAUNCHER,
- "",
- ""
- },
-
-/*QUAKED weapon_plasmagun (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- {
- "weapon_plasmagun",
- "sound/misc/w_pkup.wav",
- { "models/weapons2/plasma/plasma.md3",
- 0, 0, 0},
- "icons/iconw_plasma",
- "Plasma Gun",
- 50,
- IT_WEAPON,
- WP_PLASMAGUN,
- "",
- ""
- },
-
-/*QUAKED weapon_flamer (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- {
- "weapon_flamer",
- "sound/misc/w_pkup.wav",
- { "models/weapons2/plasma/plasma.md3",
- 0, 0, 0},
- "icons/iconw_plasma",
- "Flame Thrower",
- 50,
- IT_WEAPON,
- WP_FLAMER,
- "",
- ""
- },
-
-/*QUAKED weapon_bfg (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- {
- "weapon_bfg",
- "sound/misc/w_pkup.wav",
- { "models/weapons2/bfg/bfg.md3",
- 0, 0, 0},
- "icons/iconw_bfg",
- "Dual BFG",
- 0,
- IT_WEAPON,
- WP_BFG,
- "",
- ""
- },
-
-/*QUAKED weapon_grapplinghook (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- /*{
- "weapon_grapplinghook",
- "sound/misc/w_pkup.wav",
- { "models/weapons2/grapple/grapple.md3",
- 0, 0, 0},
- "Grappling Hook",
- 0,
- IT_WEAPON,
- WP_GRAPPLING_HOOK,
- "",
- ""
- },*/
-
- //
- // AMMO ITEMS
- //
-
-/*QUAKED ammo_shells (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- /*{
- "ammo_shells",
- "sound/misc/am_pkup.wav",
- { "models/powerups/ammo/shotgunam.md3",
- 0, 0, 0},
- "icons/icona_shotgun",
- "Shells",
- 10,
- IT_AMMO,
- WP_SHOTGUN,
- "",
- ""
- },*/
-
-/*QUAKED ammo_bullets (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- /*{
- "ammo_bullets",
- "sound/misc/am_pkup.wav",
- { "models/powerups/ammo/machinegunam.md3",
- 0, 0, 0},
- "icons/icona_machinegun",
- "Bullets",
- 50,
- IT_AMMO,
- WP_MACHINEGUN,
- "",
- ""
- },*/
-
-/*QUAKED ammo_grenades (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- /*{
- "ammo_grenades",
- "sound/misc/am_pkup.wav",
- { "models/powerups/ammo/grenadeam.md3",
- 0, 0, 0},
- "icons/icona_grenade",
- "Grenades",
- 5,
- IT_AMMO,
- WP_GRENADE_LAUNCHER,
- "",
- ""
- },*/
-
-/*QUAKED ammo_cells (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- /*{
- "ammo_cells",
- "sound/misc/am_pkup.wav",
- { "models/powerups/ammo/plasmaam.md3",
- 0, 0, 0},
- "icons/icona_plasma",
- "Cells",
- 30,
- IT_AMMO,
- WP_PLASMAGUN,
- "",
- ""
- },*/
-
-/*QUAKED ammo_lightning (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- /*{
- "ammo_lightning",
- "sound/misc/am_pkup.wav",
- { "models/powerups/ammo/lightningam.md3",
- 0, 0, 0},
- "icons/icona_lightning",
- "Lightning",
- 60,
- IT_AMMO,
- WP_LIGHTNING,
- "",
- ""
- },*/
-
-/*QUAKED ammo_rockets (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- /*{
- "ammo_rockets",
- "sound/misc/am_pkup.wav",
- { "models/powerups/ammo/rocketam.md3",
- 0, 0, 0},
- "icons/icona_rocket",
- "Rockets",
- 5,
- IT_AMMO,
- WP_ROCKET_LAUNCHER,
- "",
- ""
- },*/
-
-/*QUAKED ammo_slugs (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- /*{
- "ammo_slugs",
- "sound/misc/am_pkup.wav",
- { "models/powerups/ammo/railgunam.md3",
- 0, 0, 0},
- "icons/icona_railgun",
- "Slugs",
- 10,
- IT_AMMO,
- WP_RAILGUN,
- "",
- ""
- },*/
-
-/*QUAKED ammo_bfg (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- /*{
- "ammo_bfg",
- "sound/misc/am_pkup.wav",
- { "models/powerups/ammo/bfgam.md3",
- 0, 0, 0},
- "icons/icona_bfg",
- "Bfg Ammo",
- 15,
- IT_AMMO,
- WP_BFG,
- "",
- ""
- },*/
-
- //
- // HOLDABLE ITEMS
- //
-/*QUAKED holdable_teleporter (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- /*{
- "holdable_teleporter",
- "sound/items/holdable.wav",
- { "models/powerups/holdable/teleporter.md3",
- 0, 0, 0},
- "icons/teleporter",
- "Personal Teleporter",
- 60,
- IT_HOLDABLE,
- HI_TELEPORTER,
- "",
- ""
- },*/
-
-/*QUAKED holdable_medkit (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- /*{
- "holdable_medkit",
- "sound/items/holdable.wav",
- { "models/powerups/holdable/medkit.md3",
- "models/powerups/holdable/medkit_sphere.md3",
- 0, 0},
- "icons/medkit",
- "Medkit",
- 60,
- IT_HOLDABLE,
- HI_MEDKIT,
- "",
- "sound/items/use_medkit.wav"
- },*/
-
- //
- // POWERUP ITEMS
- //
-/*QUAKED item_quad (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- /*{
- "item_quad",
- "sound/items/quaddamage.wav",
- { "models/powerups/instant/quad.md3",
- "models/powerups/instant/quad_ring.md3",
- 0, 0 },
- "icons/quad",
- "Quad Damage",
- 30,
- IT_POWERUP,
- PW_QUAD,
- "",
- "sound/items/damage2.wav sound/items/damage3.wav"
- },*/
-
-/*QUAKED item_enviro (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- /*{
- "item_enviro",
- "sound/items/protect.wav",
- { "models/powerups/instant/enviro.md3",
- "models/powerups/instant/enviro_ring.md3",
- 0, 0 },
- "icons/envirosuit",
- "Battle Suit",
- 30,
- IT_POWERUP,
- PW_BATTLESUIT,
- "",
- "sound/items/airout.wav sound/items/protect3.wav"
- },*/
-
-/*QUAKED item_haste (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- /*{
- "item_haste",
- "sound/items/haste.wav",
- { "models/powerups/instant/haste.md3",
- "models/powerups/instant/haste_ring.md3",
- 0, 0 },
- "icons/haste",
- "Speed",
- 30,
- IT_POWERUP,
- PW_HASTE,
- "",
- ""
- },*/
-
-/*QUAKED item_invis (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- /*{
- "item_invis",
- "sound/items/invisibility.wav",
- { "models/powerups/instant/invis.md3",
- "models/powerups/instant/invis_ring.md3",
- 0, 0 },
- "icons/invis",
- "Invisibility",
- 30,
- IT_POWERUP,
- PW_INVIS,
- "",
- ""
- },*/
-
-/*QUAKED item_regen (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- /*{
- "item_regen",
- "sound/items/regeneration.wav",
- { "models/powerups/instant/regen.md3",
- "models/powerups/instant/regen_ring.md3",
- 0, 0 },
- "icons/regen",
- "Regeneration",
- 30,
- IT_POWERUP,
- PW_REGEN,
- "",
- "sound/items/regen.wav"
- },*/
-
-/*QUAKED item_flight (.3 .3 1) (-16 -16 -16) (16 16 16) suspended
-*/
- /*{
- "item_flight",
- "sound/items/flight.wav",
- { "models/powerups/instant/flight.md3",
- "models/powerups/instant/flight_ring.md3",
- 0, 0 },
- "icons/flight",
- "Flight",
- 60,
- IT_POWERUP,
- PW_FLIGHT,
- "",
- "sound/items/flight.wav"
- },*/
-
-/*QUAKED upgrade_torch (0 0 1) (-16 -16 -16) (16 16 16)
-*/
- {
- "upgrade_torch",
- "sound/items/holdable.wav",
- { 0, 0, 0, 0 },
- "icons/teleporter", //icon
- "Torch", //pickup
- 0,
- IT_UPGRADE,
- UP_TORCH,
- "", //precache
- "" //sounds
- },
-
-/*QUAKED upgrade_nvg (0 0 1) (-16 -16 -16) (16 16 16)
-*/
- {
- "upgrade_nvg",
- "sound/items/holdable.wav",
- { 0, 0, 0, 0 },
- "icons/teleporter", //icon
- "NVG", //pickup
- 0,
- IT_UPGRADE,
- UP_NVG,
- "", //precache
- "" //sounds
- },
-
-/*QUAKED upgrade_carmour (0 0 1) (-16 -16 -16) (16 16 16)
-*/
- {
- "upgrade_carmour",
- "sound/items/holdable.wav",
- { 0, 0, 0, 0 },
- "icons/teleporter", //icon
- "Chest Armour", //pickup
- 0,
- IT_UPGRADE,
- UP_CHESTARMOUR,
- "", //precache
- "" //sounds
- },
-
-/*QUAKED upgrade_larmour (0 0 1) (-16 -16 -16) (16 16 16)
-*/
- {
- "upgrade_larmour",
- "sound/items/holdable.wav",
- { 0, 0, 0, 0 },
- "icons/teleporter", //icon
- "Limb Armour", //pickup
- 0,
- IT_UPGRADE,
- UP_LIMBARMOUR,
- "", //precache
- "" //sounds
- },
-
-/*QUAKED upgrade_helmet (0 0 1) (-16 -16 -16) (16 16 16)
-*/
- {
- "upgrade_helmet",
- "sound/items/holdable.wav",
- { 0, 0, 0, 0 },
- "icons/teleporter", //icon
- "Helmet", //pickup
- 0,
- IT_UPGRADE,
- UP_HELMET,
- "", //precache
- "" //sounds
- },
-
-/*QUAKED upgrade_bsuit (0 0 1) (-16 -16 -16) (16 16 16)
-*/
- {
- "upgrade_bsuit",
- "sound/items/holdable.wav",
- { 0, 0, 0, 0 },
- "icons/teleporter", //icon
- "Battle Suit", //pickup
- 0,
- IT_UPGRADE,
- UP_BATTLESUIT,
- "", //precache
- "" //sounds
- },
-
-/*QUAKED team_CTF_redflag (1 0 0) (-16 -16 -16) (16 16 16)
-Only in CTF games
-*/
- /*{
- "team_CTF_redflag",
- "sound/teamplay/flagtk_red.wav",
- { "models/flags/r_flag.md3",
- 0, 0, 0 },
- "icons/iconf_red1",
- "Red Flag",
- 0,
- IT_TEAM,
- PW_REDFLAG,
- "",
- "sound/teamplay/flagcap_red.wav sound/teamplay/flagtk_red.wav sound/teamplay/flagret_red.wav"
- },*/
-
-/*QUAKED team_CTF_blueflag (0 0 1) (-16 -16 -16) (16 16 16)
-Only in CTF games
-*/
- /*{
- "team_CTF_blueflag",
- "sound/teamplay/flagtk_blu.wav",
- { "models/flags/b_flag.md3",
- 0, 0, 0 },
- "icons/iconf_blu1",
- "Blue Flag",
- 0,
- IT_TEAM,
- PW_BLUEFLAG,
- "",
- "sound/teamplay/flagcap_blu.wav sound/teamplay/flagtk_blu.wav sound/teamplay/flagret_blu.wav"
- },*/
-
- // end of list marker
- {NULL}
-};
-
-int bg_numItems = sizeof(bg_itemlist) / sizeof(bg_itemlist[0]) - 1;
-
-////////////////////////////////////////////////////////////////////////////////
-
buildableAttributes_t bg_buildableList[ ] =
{
{
@@ -1536,7 +602,7 @@ char *BG_FindNameForBuildable( int bclass )
}
//wimp out
- return "";
+ return 0;
}
/*
@@ -1555,7 +621,7 @@ char *BG_FindHumanNameForBuildable( int bclass )
}
//wimp out
- return "";
+ return 0;
}
/*
@@ -1574,7 +640,7 @@ char *BG_FindEntityNameForBuildable( int bclass )
}
//wimp out
- return "";
+ return 0;
}
/*
@@ -1593,7 +659,7 @@ char *BG_FindModelsForBuildable( int bclass, int modelNum )
}
//wimp out
- return "";
+ return 0;
}
/*
@@ -2344,7 +1410,7 @@ char *BG_FindNameForClassNum( int pclass )
}
//wimp out
- return "";
+ return 0;
}
/*
@@ -2363,7 +1429,7 @@ char *BG_FindHumanNameForClassNum( int pclass )
}
//wimp out
- return "";
+ return 0;
}
/*
@@ -2723,11 +1789,16 @@ weaponAttributes_t bg_weapons[ ] =
SLOT_WEAPON, //int slots;
"rifle", //char *weaponName;
"Rifle", //char *weaponHumanName;
+ { "models/weapons2/machinegun/machinegun.md3", 0, 0, 0 },
+ "icons/iconw_machinegun",
30, //int quan;
3, //int clips;
3, //int maxClips;
+ qfalse, //int infiniteAmmo;
+ 100, //int repeatRate;
qfalse, //qboolean hasAltMode;
qfalse, //qboolean synced;
+ qtrue, //qboolean purchasable;
WUT_HUMANS //WUTeam_t team;
},
{
@@ -2736,11 +1807,16 @@ weaponAttributes_t bg_weapons[ ] =
SLOT_WEAPON, //int slots;
"flamer", //char *weaponName;
"Flame Thrower", //char *weaponHumanName;
+ { "models/weapons2/plasma/plasma.md3", 0, 0, 0 },
+ "icons/iconw_plasma",
400, //int quan;
0, //int clips;
0, //int maxClips;
+ qfalse, //int infiniteAmmo;
+ 40, //int repeatRate;
qfalse, //qboolean hasAltMode;
qfalse, //qboolean synced;
+ qtrue, //qboolean purchasable;
WUT_HUMANS //WUTeam_t team;
},
{
@@ -2749,11 +1825,16 @@ weaponAttributes_t bg_weapons[ ] =
SLOT_WEAPON, //int slots;
"chaingun", //char *weaponName;
"Chaingun", //char *weaponHumanName;
+ { "models/weapons2/machinegun/machinegun.md3", 0, 0, 0 },
+ "icons/iconw_machinegun",
300, //int quan;
0, //int clips;
0, //int maxClips;
+ qfalse, //int infiniteAmmo;
+ 50, //int repeatRate;
qfalse, //qboolean hasAltMode;
qfalse, //qboolean synced;
+ qtrue, //qboolean purchasable;
WUT_HUMANS //WUTeam_t team;
},
{
@@ -2762,11 +1843,16 @@ weaponAttributes_t bg_weapons[ ] =
SLOT_WEAPON, //int slots;
"mdriver", //char *weaponName;
"Mass Driver", //char *weaponHumanName;
+ { "models/weapons2/bfg/bfg.md3", 0, 0, 0 },
+ "icons/iconw_bfg",
5, //int quan;
2, //int clips;
3, //int maxClips;
+ qfalse, //int infiniteAmmo;
+ 1000, //int repeatRate;
qfalse, //qboolean hasAltMode;
qfalse, //qboolean synced;
+ qtrue, //qboolean purchasable;
WUT_HUMANS //WUTeam_t team;
},
{
@@ -2775,11 +1861,16 @@ weaponAttributes_t bg_weapons[ ] =
SLOT_WEAPON, //int slots;
"prifle", //char *weaponName;
"Pulse Rifle", //char *weaponHumanName;
+ { "models/weapons2/plasma/plasma.md3", 0, 0, 0 },
+ "icons/iconw_plasma",
50, //int quan;
3, //int clips;
3, //int maxClips;
+ qfalse, //int infiniteAmmo;
+ 50, //int repeatRate;
qfalse, //qboolean hasAltMode;
qfalse, //qboolean synced;
+ qtrue, //qboolean purchasable;
WUT_HUMANS //WUTeam_t team;
},
{
@@ -2788,11 +1879,16 @@ weaponAttributes_t bg_weapons[ ] =
SLOT_WEAPON, //int slots;
"ckit", //char *weaponName;
"Construction Kit", //char *weaponHumanName;
+ { "models/weapons2/gauntlet/gauntlet.md3", 0, 0, 0 },
+ "icons/iconw_gauntlet",
0, //int quan;
0, //int clips;
0, //int maxClips;
+ qtrue, //int infiniteAmmo;
+ 1000, //int repeatRate;
qtrue, //qboolean hasAltMode;
qfalse, //qboolean synced;
+ qtrue, //qboolean purchasable;
WUT_HUMANS //WUTeam_t team;
},
{
@@ -2801,11 +1897,16 @@ weaponAttributes_t bg_weapons[ ] =
SLOT_WEAPON, //int slots;
"ackit", //char *weaponName;
"Adv Construction Kit",//char *weaponHumanName;
+ { "models/weapons2/gauntlet/gauntlet.md3", 0, 0, 0 },
+ "icons/iconw_gauntlet",
0, //int quan;
0, //int clips;
0, //int maxClips;
+ qtrue, //int infiniteAmmo;
+ 1000, //int repeatRate;
qtrue, //qboolean hasAltMode;
qfalse, //qboolean synced;
+ qtrue, //qboolean purchasable;
WUT_HUMANS //WUTeam_t team;
},
{
@@ -2814,11 +1915,16 @@ weaponAttributes_t bg_weapons[ ] =
SLOT_WEAPON, //int slots;
"dbuild", //char *weaponName;
"Alien build weapon", //char *weaponHumanName;
+ { "models/weapons2/gauntlet/gauntlet.md3", 0, 0, 0 },
+ "icons/iconw_gauntlet",
0, //int quan;
0, //int clips;
0, //int maxClips;
+ qtrue, //int infiniteAmmo;
+ 1000, //int repeatRate;
qtrue, //qboolean hasAltMode;
qfalse, //qboolean synced;
+ qfalse, //qboolean purchasable;
WUT_ALIENS //WUTeam_t team;
},
{
@@ -2827,11 +1933,16 @@ weaponAttributes_t bg_weapons[ ] =
SLOT_WEAPON, //int slots;
"dbuild2", //char *weaponName;
"Alien build weapon2",//char *weaponHumanName;
+ { "models/weapons2/gauntlet/gauntlet.md3", 0, 0, 0 },
+ "icons/iconw_gauntlet",
0, //int quan;
0, //int clips;
0, //int maxClips;
+ qtrue, //int infiniteAmmo;
+ 1000, //int repeatRate;
qtrue, //qboolean hasAltMode;
qfalse, //qboolean synced;
+ qfalse, //qboolean purchasable;
WUT_ALIENS //WUTeam_t team;
},
{
@@ -2840,11 +1951,16 @@ weaponAttributes_t bg_weapons[ ] =
SLOT_WEAPON, //int slots;
"venom", //char *weaponName;
"Venom", //char *weaponHumanName;
+ { "models/weapons2/gauntlet/gauntlet.md3", 0, 0, 0 },
+ "icons/iconw_gauntlet",
0, //int quan;
0, //int clips;
0, //int maxClips;
+ qtrue, //int infiniteAmmo;
+ 500, //int repeatRate;
qfalse, //qboolean hasAltMode;
qfalse, //qboolean synced;
+ qfalse, //qboolean purchasable;
WUT_ALIENS //WUTeam_t team;
},
{
@@ -2853,11 +1969,16 @@ weaponAttributes_t bg_weapons[ ] =
SLOT_WEAPON, //int slots;
"grabandcsaw", //char *weaponName;
"Circular Saw", //char *weaponHumanName;
+ { "models/weapons2/gauntlet/gauntlet.md3", 0, 0, 0 },
+ "icons/iconw_gauntlet",
0, //int quan;
0, //int clips;
0, //int maxClips;
+ qtrue, //int infiniteAmmo;
+ 500, //int repeatRate;
qtrue, //qboolean hasAltMode;
qtrue, //qboolean synced;
+ qfalse, //qboolean purchasable;
WUT_ALIENS //WUTeam_t team;
},
{
@@ -2866,12 +1987,71 @@ weaponAttributes_t bg_weapons[ ] =
SLOT_WEAPON, //int slots;
"pounce", //char *weaponName;
"Claw and pounce", //char *weaponHumanName;
+ { "models/weapons2/gauntlet/gauntlet.md3", 0, 0, 0 },
+ "icons/iconw_gauntlet",
0, //int quan;
0, //int clips;
0, //int maxClips;
+ qtrue, //int infiniteAmmo;
+ 750, //int repeatRate;
qfalse, //qboolean hasAltMode;
qfalse, //qboolean synced;
+ qfalse, //qboolean purchasable;
WUT_ALIENS //WUTeam_t team;
+ },
+ {
+ WP_LOCKBLOB_LAUNCHER, //int weaponNum;
+ 100, //int price;
+ SLOT_WEAPON, //int slots;
+ "lockblob", //char *weaponName;
+ "Lock Blob", //char *weaponHumanName;
+ { "models/weapons2/gauntlet/gauntlet.md3", 0, 0, 0 },
+ "icons/iconw_gauntlet",
+ 0, //int quan;
+ 0, //int clips;
+ 0, //int maxClips;
+ qtrue, //int infiniteAmmo;
+ 500, //int repeatRate;
+ qfalse, //qboolean hasAltMode;
+ qfalse, //qboolean synced;
+ qfalse, //qboolean purchasable;
+ WUT_ALIENS //WUTeam_t team;
+ },
+ {
+ WP_TESLAGEN, //int weaponNum;
+ 100, //int price;
+ SLOT_WEAPON, //int slots;
+ "teslagen", //char *weaponName;
+ "Tesla Generator", //char *weaponHumanName;
+ { "models/weapons2/gauntlet/gauntlet.md3", 0, 0, 0 },
+ "icons/iconw_gauntlet",
+ 0, //int quan;
+ 0, //int clips;
+ 0, //int maxClips;
+ qtrue, //int infiniteAmmo;
+ 500, //int repeatRate;
+ qfalse, //qboolean hasAltMode;
+ qfalse, //qboolean synced;
+ qfalse, //qboolean purchasable;
+ WUT_HUMANS //WUTeam_t team;
+ },
+ {
+ WP_PLASMAGUN, //int weaponNum;
+ 100, //int price;
+ SLOT_WEAPON, //int slots;
+ "plasmagun", //char *weaponName;
+ "Plasma Gun", //char *weaponHumanName;
+ { "models/weapons2/gauntlet/gauntlet.md3", 0, 0, 0 },
+ "icons/iconw_gauntlet",
+ 0, //int quan;
+ 0, //int clips;
+ 0, //int maxClips;
+ qtrue, //int infiniteAmmo;
+ 500, //int repeatRate;
+ qfalse, //qboolean hasAltMode;
+ qfalse, //qboolean synced;
+ qfalse, //qboolean purchasable;
+ WUT_HUMANS //WUTeam_t team;
}
};
@@ -2933,7 +2113,7 @@ char *BG_FindNameForWeapon( int weapon )
}
//wimp out
- return "";
+ return 0;
}
/*
@@ -2971,7 +2151,45 @@ char *BG_FindHumanNameForWeapon( int weapon )
}
//wimp out
- return "";
+ return 0;
+}
+
+/*
+==============
+BG_FindModelsForWeapon
+==============
+*/
+char *BG_FindModelsForWeapon( int weapon, int modelNum )
+{
+ int i;
+
+ for( i = 0; i < bg_numWeapons; i++ )
+ {
+ if( bg_weapons[ i ].weaponNum == weapon )
+ return bg_weapons[ i ].models[ modelNum ];
+ }
+
+ //wimp out
+ return 0;
+}
+
+/*
+==============
+BG_FindIconForWeapon
+==============
+*/
+char *BG_FindIconForWeapon( int weapon )
+{
+ int i;
+
+ for( i = 0; i < bg_numWeapons; i++ )
+ {
+ if( bg_weapons[ i ].weaponNum == weapon )
+ return bg_weapons[ i ].icon;
+ }
+
+ //wimp out
+ return 0;
}
/*
@@ -3002,6 +2220,46 @@ void BG_FindAmmoForWeapon( int weapon, int *quan, int *clips, int *maxClips )
/*
==============
+BG_FindInfinteAmmoForWeapon
+==============
+*/
+qboolean BG_FindInfinteAmmoForWeapon( int weapon )
+{
+ int i;
+
+ for( i = 0; i < bg_numWeapons; i++ )
+ {
+ if( bg_weapons[ i ].weaponNum == weapon )
+ {
+ return bg_weapons[ i ].infiniteAmmo;
+ }
+ }
+
+ return qfalse;
+}
+
+/*
+==============
+BG_FindRepeatRateForWeapon
+==============
+*/
+int BG_FindRepeatRateForWeapon( int weapon )
+{
+ int i;
+
+ for( i = 0; i < bg_numWeapons; i++ )
+ {
+ if( bg_weapons[ i ].weaponNum == weapon )
+ {
+ return bg_weapons[ i ].repeatRate;
+ }
+ }
+
+ return 1000;
+}
+
+/*
+==============
BG_WeaponHasAltMode
==============
*/
@@ -3042,6 +2300,26 @@ qboolean BG_WeaponModesAreSynced( int weapon )
/*
==============
+BG_FindPurchasableForWeapon
+==============
+*/
+qboolean BG_FindPurchasableForWeapon( int weapon )
+{
+ int i;
+
+ for( i = 0; i < bg_numWeapons; i++ )
+ {
+ if( bg_weapons[ i ].weaponNum == weapon )
+ {
+ return bg_weapons[ i ].purchasable;
+ }
+ }
+
+ return qfalse;
+}
+
+/*
+==============
BG_FindTeamForWeapon
==============
*/
@@ -3070,6 +2348,7 @@ upgradeAttributes_t bg_upgrades[ ] =
SLOT_NONE, //int slots;
"torch", //char *upgradeName;
"Torch", //char *upgradeHumanName;
+ "icons/iconw_gauntlet",
WUT_HUMANS //WUTeam_t team;
},
{
@@ -3078,6 +2357,7 @@ upgradeAttributes_t bg_upgrades[ ] =
SLOT_HEAD, //int slots;
"nvg", //char *upgradeName;
"NVG", //char *upgradeHumanName;
+ "icons/iconw_gauntlet",
WUT_HUMANS //WUTeam_t team;
},
{
@@ -3086,6 +2366,7 @@ upgradeAttributes_t bg_upgrades[ ] =
SLOT_TORSO, //int slots;
"carmour", //char *upgradeName;
"Chest Armour", //char *upgradeHumanName;
+ "icons/iconw_gauntlet",
WUT_HUMANS //WUTeam_t team;
},
{
@@ -3094,6 +2375,7 @@ upgradeAttributes_t bg_upgrades[ ] =
SLOT_ARMS|SLOT_LEGS, //int slots;
"larmour", //char *upgradeName;
"Limb Armour", //char *upgradeHumanName;
+ "icons/iconw_gauntlet",
WUT_HUMANS //WUTeam_t team;
},
{
@@ -3102,6 +2384,7 @@ upgradeAttributes_t bg_upgrades[ ] =
SLOT_HEAD, //int slots;
"helmet", //char *upgradeName;
"Helmet", //char *upgradeHumanName;
+ "icons/iconw_gauntlet",
WUT_HUMANS //WUTeam_t team;
},
{
@@ -3110,6 +2393,7 @@ upgradeAttributes_t bg_upgrades[ ] =
SLOT_NONE, //int slots;
"atoxin", //char *upgradeName;
"Anti-toxin", //char *upgradeHumanName;
+ "icons/iconw_gauntlet",
WUT_HUMANS //WUTeam_t team;
},
{
@@ -3118,6 +2402,7 @@ upgradeAttributes_t bg_upgrades[ ] =
SLOT_BACKPACK, //int slots;
"battpack", //char *upgradeName;
"Battery Pack", //char *upgradeHumanName;
+ "icons/iconw_gauntlet",
WUT_HUMANS //WUTeam_t team;
},
{
@@ -3126,6 +2411,7 @@ upgradeAttributes_t bg_upgrades[ ] =
SLOT_BACKPACK, //int slots;
"jetpack", //char *upgradeName;
"Jet Pack", //char *upgradeHumanName;
+ "icons/iconw_gauntlet",
WUT_HUMANS //WUTeam_t team;
},
{
@@ -3134,6 +2420,7 @@ upgradeAttributes_t bg_upgrades[ ] =
SLOT_HEAD|SLOT_TORSO|SLOT_ARMS|SLOT_LEGS, //int slots;
"bsuit", //char *upgradeName;
"Battlesuit", //char *upgradeHumanName;
+ "icons/iconw_gauntlet",
WUT_HUMANS //WUTeam_t team;
}
};
@@ -3196,7 +2483,7 @@ char *BG_FindNameForUpgrade( int upgrade )
}
//wimp out
- return "";
+ return 0;
}
/*
@@ -3234,249 +2521,49 @@ char *BG_FindHumanNameForUpgrade( int upgrade )
}
//wimp out
- return "";
+ return 0;
}
/*
==============
-BG_FindTeamForUpgrade
+BG_FindIconForUpgrade
==============
*/
-WUTeam_t BG_FindTeamForUpgrade( int upgrade )
+char *BG_FindIconForUpgrade( int upgrade )
{
int i;
for( i = 0; i < bg_numUpgrades; i++ )
{
if( bg_upgrades[ i ].upgradeNum == upgrade )
- {
- return bg_upgrades[ i ].team;
- }
+ return bg_upgrades[ i ].icon;
}
- return WUT_NONE;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-
-/*
-==============
-BG_FindItemForPowerup
-==============
-*/
-gitem_t *BG_FindItemForPowerup( powerup_t pw ) {
- int i;
-
- for ( i = 0 ; i < bg_numItems ; i++ ) {
- if ( (bg_itemlist[i].giType == IT_POWERUP /*||
- bg_itemlist[i].giType == IT_TEAM ||
- bg_itemlist[i].giType == IT_PERSISTANT_POWERUP*/) &&
- bg_itemlist[i].giTag == pw ) {
- return &bg_itemlist[i];
- }
- }
-
- return NULL;
+ //wimp out
+ return 0;
}
-
/*
==============
-BG_FindItemForHoldable
+BG_FindTeamForUpgrade
==============
*/
-gitem_t *BG_FindItemForHoldable( holdable_t pw ) {
- int i;
-
- for ( i = 0 ; i < bg_numItems ; i++ ) {
- if ( bg_itemlist[i].giType == IT_HOLDABLE && bg_itemlist[i].giTag == pw ) {
- return &bg_itemlist[i];
- }
- }
-
- Com_Error( ERR_DROP, "HoldableItem not found" );
-
- return NULL;
-}
-
-
-/*
-===============
-BG_FindItemForWeapon
-
-===============
-*/
-gitem_t *BG_FindItemForWeapon( weapon_t weapon ) {
- gitem_t *it;
-
- for ( it = bg_itemlist + 1 ; it->classname ; it++) {
- if ( it->giType == IT_WEAPON && it->giTag == weapon ) {
- return it;
- }
- }
-
- Com_Error( ERR_DROP, "Couldn't find item for weapon %i", weapon);
- return NULL;
-}
-
-
-/*
-===============
-BG_FindItemForUpgrade
-
-TA: new function for finding upgrade items
-===============
-*/
-gitem_t *BG_FindItemForUpgrade( upgrade_t upgrade ) {
- gitem_t *it;
-
- for ( it = bg_itemlist + 1 ; it->classname ; it++) {
- if ( it->giType == IT_UPGRADE && it->giTag == upgrade ) {
- return it;
- }
- }
-
- Com_Error( ERR_DROP, "Couldn't find item for upgrade %i", upgrade);
- return NULL;
-}
-
-
-/*
-===============
-BG_FindItem
-
-===============
-*/
-gitem_t *BG_FindItem( const char *pickupName ) {
- gitem_t *it;
-
- for ( it = bg_itemlist + 1 ; it->classname ; it++ ) {
- if ( !Q_stricmp( it->pickup_name, pickupName ) )
- return it;
- }
-
- return NULL;
-}
-
-/*
-============
-BG_PlayerTouchesItem
-
-Items can be picked up without actually touching their physical bounds to make
-grabbing them easier
-============
-*/
-qboolean BG_PlayerTouchesItem( playerState_t *ps, entityState_t *item, int atTime ) {
- vec3_t origin;
-
- BG_EvaluateTrajectory( &item->pos, atTime, origin );
-
- // we are ignoring ducked differences here
- if ( ps->origin[0] - origin[0] > 44
- || ps->origin[0] - origin[0] < -50
- || ps->origin[1] - origin[1] > 36
- || ps->origin[1] - origin[1] < -36
- || ps->origin[2] - origin[2] > 36
- || ps->origin[2] - origin[2] < -36 ) {
- return qfalse;
- }
-
- return qtrue;
-}
-
-/*
-================
-BG_CanItemBeGrabbed
-
-Returns false if the item should not be picked up.
-This needs to be the same for client side prediction and server use.
-================
-*/
-qboolean BG_CanItemBeGrabbed( int gametype, const entityState_t *ent, const playerState_t *ps ) {
- gitem_t *item;
-
- if ( ent->modelindex < 1 || ent->modelindex >= bg_numItems ) {
- Com_Error( ERR_DROP, "BG_CanItemBeGrabbed: index out of range" );
- }
-
- item = &bg_itemlist[ent->modelindex];
-
- switch( item->giType ) {
- case IT_WEAPON:
- return qtrue; // weapons are always picked up
-
- case IT_AMMO:
- if ( ps->ammo[ item->giTag ] >= 200 ) {
- return qfalse; // can't hold any more
- }
- return qtrue;
-
- case IT_ARMOR:
- if ( ps->stats[STAT_ARMOR] >= ps->stats[STAT_MAX_HEALTH] * 2 ) {
- return qfalse;
- }
- return qtrue;
-
- case IT_HEALTH:
- // small and mega healths will go over the max, otherwise
- // don't pick up if already at max
- if ( item->quantity == 5 || item->quantity == 100 ) {
- if ( ps->stats[STAT_HEALTH] >= ps->stats[STAT_MAX_HEALTH] * 2 ) {
- return qfalse;
- }
- return qtrue;
- }
-
- if ( ps->stats[STAT_HEALTH] >= ps->stats[STAT_MAX_HEALTH] ) {
- return qfalse;
- }
- return qtrue;
-
- case IT_POWERUP:
- return qtrue; // powerups are always picked up
-
- case IT_TEAM: // team items, such as flags
- // ent->modelindex2 is non-zero on items if they are dropped
- // we need to know this because we can pick up our dropped flag (and return it)
- // but we can't pick up our flag at base
- if (ps->persistant[PERS_TEAM] == TEAM_HUMANS) {
- //TA: remove powerups
- /*if (item->giTag == PW_BLUEFLAG ||
- (item->giTag == PW_REDFLAG && ent->modelindex2) ||
- (item->giTag == PW_REDFLAG && ps->powerups[PW_BLUEFLAG]))
- return qtrue;*/
- } else if (ps->persistant[PERS_TEAM] == TEAM_ALIENS) {
- /*if (item->giTag == PW_REDFLAG ||
- (item->giTag == PW_BLUEFLAG && ent->modelindex2) ||
- (item->giTag == PW_BLUEFLAG && ps->powerups[PW_REDFLAG]))
- return qtrue;*/
- }
- return qfalse;
+WUTeam_t BG_FindTeamForUpgrade( int upgrade )
+{
+ int i;
- //TA: not using the q3 holdable items code
- /*case IT_HOLDABLE:
- // can only hold one item at a time
- if ( ps->stats[STAT_HOLDABLE_ITEM] ) {
- return qfalse;
+ for( i = 0; i < bg_numUpgrades; i++ )
+ {
+ if( bg_upgrades[ i ].upgradeNum == upgrade )
+ {
+ return bg_upgrades[ i ].team;
}
- return qtrue;*/
-
- case IT_BAD:
- Com_Error( ERR_DROP, "BG_CanItemBeGrabbed: IT_BAD" );
-
- default:
-#ifndef Q3_VM
-#ifndef NDEBUG // bk0001204
- Com_Printf("BG_CanItemBeGrabbed: unknown enum %d\n", item->giType );
-#endif
-#endif
- break;
}
- return qfalse;
+ return WUT_NONE;
}
-//======================================================================
+////////////////////////////////////////////////////////////////////////////////
/*
================
@@ -3969,28 +3056,6 @@ void BG_packAmmoArray( int weapon, int ammo[ ], int ammo2[ ], int quan, int clip
ammo2[ weapon - 16 ] = weaponvalue;
}
-//TA: check whether infinite ammo
-qboolean BG_infiniteAmmo( int weapon )
-{
- switch( weapon )
- {
- case WP_VENOM:
- case WP_GRABANDCSAW:
- case WP_POUNCE:
- case WP_ABUILD:
- case WP_ABUILD2:
- case WP_HBUILD:
- case WP_HBUILD2:
- return qtrue;
- break;
-
- //nothing else has infinite ammo
- default:
- return qfalse;
- break;
- }
-}
-
//TA: pack weapons into the array
void BG_packWeapon( int weapon, int stats[ ] )
{
diff --git a/src/game/bg_pmove.c b/src/game/bg_pmove.c
index 9d570cb9..da3809fc 100644
--- a/src/game/bg_pmove.c
+++ b/src/game/bg_pmove.c
@@ -2159,7 +2159,7 @@ static void PM_Weapon( void )
BG_unpackAmmoArray( pm->ps->weapon, pm->ps->ammo, pm->ps->powerups, &ammo, &clips, &maxclips );
// check for out of ammo
- if ( !ammo && !clips && !BG_infiniteAmmo( pm->ps->weapon ) )
+ if ( !ammo && !clips && !BG_FindInfinteAmmoForWeapon( pm->ps->weapon ) )
{
PM_AddEvent( EV_NOAMMO );
pm->ps->weaponTime += 200;
@@ -2306,74 +2306,15 @@ static void PM_Weapon( void )
pm->ps->weaponstate = WEAPON_FIRING;
// take an ammo away if not infinite
- if( !BG_infiniteAmmo( pm->ps->weapon ) )
+ if( !BG_FindInfinteAmmoForWeapon( pm->ps->weapon ) )
{
ammo--;
BG_packAmmoArray( pm->ps->weapon, pm->ps->ammo, pm->ps->powerups, ammo, clips, maxclips );
}
- switch( pm->ps->weapon )
- {
- default:
- case WP_GAUNTLET:
- addTime = 400;
- break;
- case WP_TESLAGEN:
- addTime = 50;
- break;
- case WP_SHOTGUN:
- addTime = 1000;
- break;
- case WP_MACHINEGUN:
- addTime = 100;
- break;
- case WP_CHAINGUN:
- addTime = 50;
- break;
- case WP_GRENADE_LAUNCHER:
- addTime = 800;
- break;
- case WP_ROCKET_LAUNCHER:
- addTime = 800;
- break;
- case WP_FLAMER:
- addTime = 40;
- break;
- case WP_RAILGUN:
- addTime = 1500;
- break;
- case WP_LOCKBLOB_LAUNCHER:
- addTime = 1000;
- break;
- case WP_BFG:
- addTime = 200;
- break;
- case WP_GRAPPLING_HOOK:
- addTime = 400;
- break;
- case WP_VENOM:
- addTime = 500;
- break;
- case WP_GRABANDCSAW:
- addTime = 500;
- break;
- case WP_POUNCE:
- addTime = 750;
- break;
- case WP_MASS_DRIVER:
- addTime = 1000;
- break;
- case WP_PULSE_RIFLE:
- addTime = 50;
- break;
- case WP_ABUILD:
- case WP_ABUILD2:
- case WP_HBUILD:
- case WP_HBUILD2:
- addTime = 1000; //abritutary since doesn't "fire"
- break;
- }
+ addTime = BG_FindRepeatRateForWeapon( pm->ps->weapon );
+ //FIXME: predicted angles miss a problem??
if( pm->ps->weapon == WP_CHAINGUN )
{
if( pm->ps->pm_flags & PMF_DUCKED )
@@ -2611,7 +2552,7 @@ void PmoveSingle (pmove_t *pmove)
// set the firing flag for continuous beam weapons
if ( !(pm->ps->pm_flags & PMF_RESPAWNED) && pm->ps->pm_type != PM_INTERMISSION
&& ( pm->cmd.buttons & BUTTON_ATTACK )
- && ( ( ammo > 0 || clips > 0 ) || BG_infiniteAmmo( pm->ps->weapon ) ) )
+ && ( ( ammo > 0 || clips > 0 ) || BG_FindInfinteAmmoForWeapon( pm->ps->weapon ) ) )
pm->ps->eFlags |= EF_FIRING;
else
pm->ps->eFlags &= ~EF_FIRING;
@@ -2619,7 +2560,7 @@ void PmoveSingle (pmove_t *pmove)
// set the firing flag for continuous beam weapons
if ( !(pm->ps->pm_flags & PMF_RESPAWNED) && pm->ps->pm_type != PM_INTERMISSION
&& ( pm->cmd.buttons & BUTTON_ATTACK2 )
- && ( ( ammo > 0 || clips > 0 ) || BG_infiniteAmmo( pm->ps->weapon ) ) )
+ && ( ( ammo > 0 || clips > 0 ) || BG_FindInfinteAmmoForWeapon( pm->ps->weapon ) ) )
pm->ps->eFlags |= EF_FIRING2;
else
pm->ps->eFlags &= ~EF_FIRING2;
diff --git a/src/game/bg_public.h b/src/game/bg_public.h
index a6b152b0..3be0a0a4 100644
--- a/src/game/bg_public.h
+++ b/src/game/bg_public.h
@@ -327,19 +327,12 @@ typedef enum
{
WP_NONE,
- WP_GAUNTLET,
WP_MACHINEGUN,
WP_CHAINGUN,
- WP_SHOTGUN,
- WP_GRENADE_LAUNCHER,
- WP_ROCKET_LAUNCHER,
WP_LOCKBLOB_LAUNCHER,
WP_TESLAGEN,
- WP_RAILGUN,
WP_FLAMER,
WP_PLASMAGUN,
- WP_BFG,
- WP_GRAPPLING_HOOK,
WP_VENOM,
WP_GRABANDCSAW,
WP_POUNCE,
@@ -352,8 +345,6 @@ typedef enum
WP_HBUILD2,
WP_HBUILD,
//ok?
-
- WP_GGRENADE,
WP_NUM_WEAPONS
} weapon_t;
@@ -911,14 +902,22 @@ typedef struct
char *weaponName;
char *weaponHumanName;
+
+ char *models[ MAX_ITEM_MODELS ];
+ char *icon;
int quan;
int clips;
int maxClips;
+ qboolean infiniteAmmo;
+
+ int repeatRate;
qboolean hasAltMode;
qboolean synced;
+ qboolean purchasable;
+
WUTeam_t team;
} weaponAttributes_t;
@@ -933,48 +932,40 @@ typedef struct
char *upgradeName;
char *upgradeHumanName;
+
+ char *icon;
WUTeam_t team;
} upgradeAttributes_t;
-// included in both the game dll and the client
-extern gitem_t bg_itemlist[];
-extern int bg_numItems;
-
-gitem_t *BG_FindItem( const char *pickupName );
-gitem_t *BG_FindItemForWeapon( weapon_t weapon );
-gitem_t *BG_FindItemForUpgrade( upgrade_t upgrade );
-gitem_t *BG_FindItemForPowerup( powerup_t pw );
-gitem_t *BG_FindItemForHoldable( holdable_t pw );
-
//TA:
-int BG_FindBuildNumForName( char *name );
-int BG_FindBuildNumForEntityName( char *name );
-char *BG_FindNameForBuildable( int bclass );
-char *BG_FindHumanNameForBuildable( int bclass );
-char *BG_FindEntityNameForBuildable( int bclass );
-char *BG_FindModelsForBuildable( int bclass, int modelNum );
-void BG_FindBBoxForBuildable( int bclass, vec3_t mins, vec3_t maxs );
-int BG_FindHealthForBuildable( int bclass );
-trType_t BG_FindTrajectoryForBuildable( int bclass );
-float BG_FindBounceForBuildable( int bclass );
-int BG_FindBuildPointsForBuildable( int bclass );
-int BG_FindDamageForBuildable( int bclass );
-int BG_FindSplashDamageForBuildable( int bclass );
-int BG_FindSplashRadiusForBuildable( int bclass );
-int BG_FindMODForBuildable( int bclass );
-int BG_FindTeamForBuildable( int bclass );
-weapon_t BG_FindBuildWeaponForBuildable( int bclass );
-int BG_FindAnimForBuildable( int bclass );
-int BG_FindNextThinkForBuildable( int bclass );
-int BG_FindFireSpeedForBuildable( int bclass );
-int BG_FindRangeForBuildable( int bclass );
-weapon_t BG_FindProjTypeForBuildable( int bclass );
-float BG_FindMinNormalForBuildable( int bclass );
-qboolean BG_FindInvertNormalForBuildable( int bclass );
-int BG_FindCreepTestForBuildable( int bclass );
-int BG_FindCreepSizeForBuildable( int bclass );
-int BG_FindUniqueTestForBuildable( int bclass );
+int BG_FindBuildNumForName( char *name );
+int BG_FindBuildNumForEntityName( char *name );
+char *BG_FindNameForBuildable( int bclass );
+char *BG_FindHumanNameForBuildable( int bclass );
+char *BG_FindEntityNameForBuildable( int bclass );
+char *BG_FindModelsForBuildable( int bclass, int modelNum );
+void BG_FindBBoxForBuildable( int bclass, vec3_t mins, vec3_t maxs );
+int BG_FindHealthForBuildable( int bclass );
+trType_t BG_FindTrajectoryForBuildable( int bclass );
+float BG_FindBounceForBuildable( int bclass );
+int BG_FindBuildPointsForBuildable( int bclass );
+int BG_FindDamageForBuildable( int bclass );
+int BG_FindSplashDamageForBuildable( int bclass );
+int BG_FindSplashRadiusForBuildable( int bclass );
+int BG_FindMODForBuildable( int bclass );
+int BG_FindTeamForBuildable( int bclass );
+weapon_t BG_FindBuildWeaponForBuildable( int bclass );
+int BG_FindAnimForBuildable( int bclass );
+int BG_FindNextThinkForBuildable( int bclass );
+int BG_FindFireSpeedForBuildable( int bclass );
+int BG_FindRangeForBuildable( int bclass );
+weapon_t BG_FindProjTypeForBuildable( int bclass );
+float BG_FindMinNormalForBuildable( int bclass );
+qboolean BG_FindInvertNormalForBuildable( int bclass );
+int BG_FindCreepTestForBuildable( int bclass );
+int BG_FindCreepSizeForBuildable( int bclass );
+int BG_FindUniqueTestForBuildable( int bclass );
int BG_FindClassNumForName( char *name );
char *BG_FindNameForClassNum( int pclass );
@@ -1000,9 +991,14 @@ int BG_FindSlotsForWeapon( int weapon );
char *BG_FindNameForWeapon( int weapon );
int BG_FindWeaponNumForName( char *name );
char *BG_FindHumanNameForWeapon( int weapon );
+char *BG_FindModelsForWeapon( int weapon, int modelNum );
+char *BG_FindIconForWeapon( int weapon );
void BG_FindAmmoForWeapon( int weapon, int *quan, int *clips, int *maxClips );
+qboolean BG_FindInfinteAmmoForWeapon( int weapon );
+int BG_FindRepeatRateForWeapon( int weapon );
qboolean BG_WeaponHasAltMode( int weapon );
qboolean BG_WeaponModesAreSynced( int weapon );
+qboolean BG_FindPurchasableForWeapon( int weapon );
WUTeam_t BG_FindTeamForWeapon( int weapon );
int BG_FindPriceForUpgrade( int upgrade );
@@ -1010,13 +1006,9 @@ int BG_FindSlotsForUpgrade( int upgrade );
char *BG_FindNameForUpgrade( int upgrade );
int BG_FindUpgradeNumForName( char *name );
char *BG_FindHumanNameForUpgrade( int upgrade );
+char *BG_FindIconForUpgrade( int upgrade );
WUTeam_t BG_FindTeamForUpgrade( int upgrade );
-#define ITEM_INDEX(x) ((x)-bg_itemlist)
-
-qboolean BG_CanItemBeGrabbed( int gametype, const entityState_t *ent, const playerState_t *ps );
-
-
// g_dmflags->integer flags
#define DF_NO_FALLING 8
#define DF_FIXED_FOV 16
@@ -1077,11 +1069,10 @@ void BG_PlayerStateToEntityStateExtraPolate( playerState_t *ps, entityState_t *
qboolean BG_PlayerTouchesItem( playerState_t *ps, entityState_t *item, int atTime );
//TA: extra bits: (which I apparently dont need)
-/*void BG_unpackAmmoArray( int weapon, int ammo[ ], int ammo2[ ], int *quan, int *clips, int *maxclips );
+void BG_unpackAmmoArray( int weapon, int ammo[ ], int ammo2[ ], int *quan, int *clips, int *maxclips );
void BG_packAmmoArray( int weapon, int ammo[ ], int ammo2[ ], int quan, int clips, int maxclips );
-qboolean BG_infiniteAmmo( int weapon );
void BG_packWeapon( int weapon, int stats[ ] );
-qboolean BG_gotWeapon( int weapon, int stats[ ] );*/
+qboolean BG_gotWeapon( int weapon, int stats[ ] );
#define CREEP_BASESIZE 120
#define REACTOR_BASESIZE 1000
diff --git a/src/game/g_active.c b/src/game/g_active.c
index b9a6712c..7982ecac 100644
--- a/src/game/g_active.c
+++ b/src/game/g_active.c
@@ -278,15 +278,15 @@ void G_TouchTriggers( gentity_t *ent ) {
// use seperate code for determining if an item is picked up
// so you don't have to actually contact its bounding box
- if ( hit->s.eType == ET_ITEM || hit->s.eType == ET_BUILDABLE ) {
+/* if ( hit->s.eType == ET_ITEM || hit->s.eType == ET_BUILDABLE ) {
if ( !BG_PlayerTouchesItem( &ent->client->ps, &hit->s, level.time ) ) {
continue;
}
- } else {
+ } else {*/
if ( !trap_EntityContact( mins, maxs, hit ) ) {
continue;
}
- }
+ /*}*/
memset( &trace, 0, sizeof(trace) );
@@ -893,10 +893,10 @@ void ClientThink_real( gentity_t *ent ) {
}*/
// Let go of the hook if we aren't firing
- if ( client->ps.weapon == WP_GRAPPLING_HOOK &&
+/* if ( client->ps.weapon == WP_GRAPPLING_HOOK &&
client->hook && !( ucmd->buttons & BUTTON_ATTACK ) ) {
Weapon_HookFree(client->hook);
- }
+ }*/
//TA: torch stuff
if( client->torch == NULL &&
diff --git a/src/game/g_cmds.c b/src/game/g_cmds.c
index 8c5be1a4..a79de6c8 100644
--- a/src/game/g_cmds.c
+++ b/src/game/g_cmds.c
@@ -235,7 +235,7 @@ void Cmd_Give_f (gentity_t *ent)
if (give_all || Q_stricmp(name, "weapons") == 0)
{
- BG_packWeapon( (1 << WP_NUM_WEAPONS) - 1 - ( 1 << WP_GRAPPLING_HOOK ) - ( 1 << WP_NONE ), ent->client->ps.stats );
+ BG_packWeapon( (1 << WP_NUM_WEAPONS) - 1 - ( 1 << WP_NONE ), ent->client->ps.stats );
if (!give_all)
return;
}
@@ -1875,6 +1875,13 @@ void Cmd_Buy_f( gentity_t *ent )
return;
}
+ //are we /allowed/ to buy this?
+ if( !BG_FindPurchasableForWeapon( weapon ) )
+ {
+ trap_SendServerCommand( ent-g_entities, va("print \"You can't buy this item\n\"" ) );
+ return;
+ }
+
//add to inventory
BG_packWeapon( weapon, ent->client->ps.stats );
BG_FindAmmoForWeapon( weapon, &quan, &clips, &maxClips );
diff --git a/src/game/g_combat.c b/src/game/g_combat.c
index 5ac3126b..2d7fafce 100644
--- a/src/game/g_combat.c
+++ b/src/game/g_combat.c
@@ -113,7 +113,7 @@ void TossClientItems( gentity_t *self ) {
// weapon that isn't the mg or gauntlet. Without this, a client
// can pick up a weapon, be killed, and not drop the weapon because
// their weapon change hasn't completed yet and they are still holding the MG.
- if ( weapon == WP_MACHINEGUN || weapon == WP_GRAPPLING_HOOK ) {
+ if( weapon == WP_MACHINEGUN ) {
if ( self->client->ps.weaponstate == WEAPON_DROPPING ) {
weapon = self->client->pers.cmd.weapon;
}
@@ -122,10 +122,9 @@ void TossClientItems( gentity_t *self ) {
}
}
- if( weapon > WP_MACHINEGUN && weapon != WP_GRAPPLING_HOOK &&
- ( ammo > 0 || clips > 0 ) ) {
+ if( weapon > WP_MACHINEGUN && ( ammo > 0 || clips > 0 ) ) {
// find the item type for this weapon
- item = BG_FindItemForWeapon( weapon );
+ /*item = BG_FindItemForWeapon( weapon );*/
//TA: never drop weapons...
// spawn the item
diff --git a/src/game/g_misc.c b/src/game/g_misc.c
index 29583b64..77960646 100644
--- a/src/game/g_misc.c
+++ b/src/game/g_misc.c
@@ -264,14 +264,14 @@ void Use_Shooter( gentity_t *ent, gentity_t *other, gentity_t *activator ) {
VectorNormalize( dir );
- switch ( ent->s.weapon ) {
+/* switch ( ent->s.weapon ) {
case WP_GRENADE_LAUNCHER:
fire_grenade( ent, ent->s.origin, dir );
break;
case WP_ROCKET_LAUNCHER:
fire_rocket( ent, ent->s.origin, dir );
break;
- }
+ }*/
G_AddEvent( ent, EV_FIRE_WEAPON, 0 );
}
@@ -287,7 +287,7 @@ void InitShooter( gentity_t *ent, int weapon ) {
ent->use = Use_Shooter;
ent->s.weapon = weapon;
- RegisterItem( BG_FindItemForWeapon( weapon ) );
+ /*RegisterItem( BG_FindItemForWeapon( weapon ) );*/
G_SetMovedir( ent->s.angles, ent->movedir );
diff --git a/src/game/g_missile.c b/src/game/g_missile.c
index c92edc17..84a64741 100644
--- a/src/game/g_missile.c
+++ b/src/game/g_missile.c
@@ -425,7 +425,7 @@ gentity_t *fire_grenade (gentity_t *self, vec3_t start, vec3_t dir) {
bolt->think = G_ExplodeMissile;
bolt->s.eType = ET_MISSILE;
bolt->r.svFlags = SVF_USE_CURRENT_ORIGIN;
- bolt->s.weapon = WP_GRENADE_LAUNCHER;
+ /*bolt->s.weapon = WP_GRENADE_LAUNCHER;*/
bolt->s.eFlags = EF_BOUNCE_HALF;
bolt->r.ownerNum = self->s.number;
bolt->parent = self;
@@ -467,7 +467,7 @@ gentity_t *fire_bfg (gentity_t *self, vec3_t start, vec3_t dir) {
bolt->think = G_ExplodeMissile;
bolt->s.eType = ET_MISSILE;
bolt->r.svFlags = SVF_USE_CURRENT_ORIGIN;
- bolt->s.weapon = WP_BFG;
+ /*bolt->s.weapon = WP_BFG;*/
bolt->r.ownerNum = self->s.number;
bolt->parent = self;
bolt->damage = 100;
@@ -507,7 +507,7 @@ gentity_t *fire_rocket (gentity_t *self, vec3_t start, vec3_t dir) {
bolt->think = G_ExplodeMissile;
bolt->s.eType = ET_MISSILE;
bolt->r.svFlags = SVF_USE_CURRENT_ORIGIN;
- bolt->s.weapon = WP_ROCKET_LAUNCHER;
+ /*bolt->s.weapon = WP_ROCKET_LAUNCHER;*/
bolt->r.ownerNum = self->s.number;
bolt->parent = self;
bolt->damage = 100;
@@ -582,7 +582,7 @@ gentity_t *fire_grapple (gentity_t *self, vec3_t start, vec3_t dir) {
hook->think = Weapon_HookFree;
hook->s.eType = ET_MISSILE;
hook->r.svFlags = SVF_USE_CURRENT_ORIGIN;
- hook->s.weapon = WP_GRAPPLING_HOOK;
+ /*hook->s.weapon = WP_GRAPPLING_HOOK;*/
hook->r.ownerNum = self->s.number;
hook->methodOfDeath = MOD_GRAPPLE;
hook->clipmask = MASK_SHOT;
diff --git a/src/game/g_weapon.c b/src/game/g_weapon.c
index ab91f40c..a347e513 100644
--- a/src/game/g_weapon.c
+++ b/src/game/g_weapon.c
@@ -1022,27 +1022,27 @@ void FireWeapon2( gentity_t *ent )
// fire the specific weapon
switch( ent->s.weapon )
{
- case WP_GAUNTLET:
+/* case WP_GAUNTLET:
Weapon_Gauntlet( ent );
- break;
+ break;*/
case WP_TESLAGEN:
Weapon_TeslaFire( ent );
break;
- case WP_SHOTGUN:
+/* case WP_SHOTGUN:
weapon_supershotgun_fire( ent );
- break;
+ break;*/
case WP_MACHINEGUN:
Bullet_Fire( ent, MACHINEGUN_SPREAD, MACHINEGUN_DAMAGE, MOD_MACHINEGUN );
break;
case WP_CHAINGUN:
Bullet_Fire( ent, CHAINGUN_SPREAD, CHAINGUN_DAMAGE, MOD_CHAINGUN );
break;
- case WP_GRENADE_LAUNCHER:
+/* case WP_GRENADE_LAUNCHER:
weapon_grenadelauncher_fire( ent );
- break;
- case WP_ROCKET_LAUNCHER:
+ break;*/
+/* case WP_ROCKET_LAUNCHER:
Weapon_RocketLauncher_Fire( ent );
- break;
+ break;*/
case WP_FLAMER:
Weapon_Flamer_Fire( ent );
break;
@@ -1052,20 +1052,20 @@ void FireWeapon2( gentity_t *ent )
case WP_PULSE_RIFLE:
Weapon_PulseRifle_Fire( ent );
break;
- case WP_RAILGUN:
+/* case WP_RAILGUN:
weapon_railgun_fire( ent );
- break;
+ break;*/
case WP_MASS_DRIVER:
massDriverFire( ent );
break;
case WP_LOCKBLOB_LAUNCHER:
break;
- case WP_BFG:
+/* case WP_BFG:
BFG_Fire( ent );
- break;
- case WP_GRAPPLING_HOOK:
+ break;*/
+/* case WP_GRAPPLING_HOOK:
Weapon_GrapplingHook_Fire( ent );
- break;
+ break;*/
case WP_VENOM:
Weapon_Venom_Fire( ent );
break;
@@ -1115,27 +1115,27 @@ void FireWeapon( gentity_t *ent )
// fire the specific weapon
switch( ent->s.weapon )
{
- case WP_GAUNTLET:
+/* case WP_GAUNTLET:
Weapon_Gauntlet( ent );
- break;
+ break;*/
case WP_TESLAGEN:
Weapon_TeslaFire( ent );
break;
- case WP_SHOTGUN:
+/* case WP_SHOTGUN:
weapon_supershotgun_fire( ent );
- break;
+ break;*/
case WP_MACHINEGUN:
Bullet_Fire( ent, MACHINEGUN_SPREAD, MACHINEGUN_DAMAGE, MOD_MACHINEGUN );
break;
case WP_CHAINGUN:
Bullet_Fire( ent, CHAINGUN_SPREAD, CHAINGUN_DAMAGE, MOD_CHAINGUN );
break;
- case WP_GRENADE_LAUNCHER:
+/* case WP_GRENADE_LAUNCHER:
weapon_grenadelauncher_fire( ent );
- break;
- case WP_ROCKET_LAUNCHER:
+ break;*/
+/* case WP_ROCKET_LAUNCHER:
Weapon_RocketLauncher_Fire( ent );
- break;
+ break;*/
case WP_FLAMER:
Weapon_Flamer_Fire( ent );
break;
@@ -1145,21 +1145,21 @@ void FireWeapon( gentity_t *ent )
case WP_PULSE_RIFLE:
Weapon_PulseRifle_Fire( ent );
break;
- case WP_RAILGUN:
+/* case WP_RAILGUN:
weapon_railgun_fire( ent );
- break;
+ break;*/
case WP_MASS_DRIVER:
massDriverFire( ent );
break;
case WP_LOCKBLOB_LAUNCHER:
Weapon_LockBlobLauncher_Fire( ent );
break;
- case WP_BFG:
+/* case WP_BFG:
BFG_Fire( ent );
- break;
- case WP_GRAPPLING_HOOK:
+ break;*/
+/* case WP_GRAPPLING_HOOK:
Weapon_GrapplingHook_Fire( ent );
- break;
+ break;*/
case WP_VENOM:
Weapon_Venom_Fire( ent );
break;