Clean up some weapon-specific references
authorMario <mario.mario@y7mail.com>
Mon, 27 Jan 2025 22:27:53 +0000 (22:27 +0000)
committerterencehill <piuntn@gmail.com>
Mon, 27 Jan 2025 22:27:53 +0000 (22:27 +0000)
73 files changed:
qcsrc/client/hud/crosshair.qc
qcsrc/client/main.qh
qcsrc/client/weapons/projectile.qc
qcsrc/common/effects/all.inc
qcsrc/common/effects/qc/damageeffects.qc
qcsrc/common/gamemodes/gamemode/keepaway/sv_keepaway.qc
qcsrc/common/gamemodes/gamemode/onslaught/cl_generator.qc
qcsrc/common/gamemodes/gamemode/onslaught/sv_onslaught.qc
qcsrc/common/gamemodes/gamemode/tka/sv_tka.qc
qcsrc/common/models/all.inc
qcsrc/common/monsters/monster/golem.qc
qcsrc/common/monsters/monster/mage.qc
qcsrc/common/monsters/monster/spider.qc
qcsrc/common/mutators/mutator/nades/cl_nades.qc
qcsrc/common/mutators/mutator/nades/nade/napalm.qc
qcsrc/common/mutators/mutator/overkill/okhmg.qc
qcsrc/common/mutators/mutator/overkill/okhmg.qh
qcsrc/common/mutators/mutator/overkill/okmachinegun.qc
qcsrc/common/mutators/mutator/overkill/okmachinegun.qh
qcsrc/common/mutators/mutator/overkill/oknex.qc
qcsrc/common/mutators/mutator/overkill/oknex.qh
qcsrc/common/mutators/mutator/overkill/okrpc.qc
qcsrc/common/mutators/mutator/overkill/okrpc.qh
qcsrc/common/mutators/mutator/overkill/okshotgun.qh
qcsrc/common/mutators/mutator/touchexplode/sv_touchexplode.qc
qcsrc/common/sounds/all.inc
qcsrc/common/turrets/turret/ewheel_weapon.qc
qcsrc/common/turrets/turret/flac_weapon.qc
qcsrc/common/turrets/turret/hellion_weapon.qc
qcsrc/common/turrets/turret/hk_weapon.qc
qcsrc/common/turrets/turret/mlrs_weapon.qc
qcsrc/common/turrets/turret/phaser_weapon.qc
qcsrc/common/turrets/turret/plasma_weapon.qc
qcsrc/common/turrets/turret/tesla_weapon.qc
qcsrc/common/turrets/turret/walker.qc
qcsrc/common/turrets/turret/walker_weapon.qc
qcsrc/common/vehicles/vehicle/racer_weapon.qc
qcsrc/common/vehicles/vehicle/raptor_weapons.qc
qcsrc/common/vehicles/vehicle/spiderbot.qc
qcsrc/common/vehicles/vehicle/spiderbot_weapons.qc
qcsrc/common/weapons/weapon/arc.qc
qcsrc/common/weapons/weapon/arc.qh
qcsrc/common/weapons/weapon/blaster.qc
qcsrc/common/weapons/weapon/blaster.qh
qcsrc/common/weapons/weapon/crylink.qh
qcsrc/common/weapons/weapon/devastator.qc
qcsrc/common/weapons/weapon/devastator.qh
qcsrc/common/weapons/weapon/electro.qh
qcsrc/common/weapons/weapon/fireball.qh
qcsrc/common/weapons/weapon/hagar.qc
qcsrc/common/weapons/weapon/hagar.qh
qcsrc/common/weapons/weapon/hlac.qc
qcsrc/common/weapons/weapon/hlac.qh
qcsrc/common/weapons/weapon/hook.qc
qcsrc/common/weapons/weapon/hook.qh
qcsrc/common/weapons/weapon/machinegun.qc
qcsrc/common/weapons/weapon/machinegun.qh
qcsrc/common/weapons/weapon/minelayer.qh
qcsrc/common/weapons/weapon/mortar.qc
qcsrc/common/weapons/weapon/mortar.qh
qcsrc/common/weapons/weapon/porto.qh
qcsrc/common/weapons/weapon/rifle.qc
qcsrc/common/weapons/weapon/rifle.qh
qcsrc/common/weapons/weapon/seeker.qc
qcsrc/common/weapons/weapon/seeker.qh
qcsrc/common/weapons/weapon/shockwave.qc
qcsrc/common/weapons/weapon/shockwave.qh
qcsrc/common/weapons/weapon/shotgun.qh
qcsrc/common/weapons/weapon/tuba.qh
qcsrc/common/weapons/weapon/vaporizer.qc
qcsrc/common/weapons/weapon/vaporizer.qh
qcsrc/common/weapons/weapon/vortex.qc
qcsrc/common/weapons/weapon/vortex.qh

index ec83736e8689dd0a20eff3bdee9825324763850d..38c3d813d114b061d6e560b05a45d28c618b65d9 100644 (file)
@@ -47,7 +47,7 @@ void TrueAim_Init()
        (trueaim_rifle = new_pure(trueaim_rifle)).dphitcontentsmask = DPCONTENTS_BODY | DPCONTENTS_CORPSE;
 }
 
-float EnemyHitCheck()
+int EnemyHitCheck()
 {
        float t, n;
        wcross_origin = project_3d_to_2d(trace_endpos);
@@ -68,7 +68,7 @@ float EnemyHitCheck()
        return SHOTTYPE_HITENEMY;
 }
 
-float TrueAimCheck(entity wepent)
+int TrueAimCheck(entity wepent)
 {
        if(wepent.activeweapon.spawnflags & WEP_FLAG_NOTRUEAIM)
                return SHOTTYPE_HITWORLD;
index f32ec230ed6692e641682fd4819a5fc30fa5a04e..9a80347dc832911600b6697df452081a3b3f4616 100644 (file)
@@ -201,7 +201,6 @@ float spectatee_status_changed_time;
 int tempdb;
 int ClientProgsDB;
 vector hook_shotorigin[4]; // WEAPONTODO
-vector lightning_shotorigin[4]; // TODO: unused
 
 float serverprevtime, serverdeltatime;
 
index ed53e585b2dfb15d1126700572c659c65d454d2a..6d8b0f20cd9158e3ac7be1c7c0d4a615d66191a3 100644 (file)
@@ -407,7 +407,7 @@ NET_HANDLE(ENT_CLIENT_PROJECTILE, bool isnew)
                                break;
                        case PROJECTILE_RPC:
                        case PROJECTILE_ROCKET:
-                               loopsound(this, CH_SHOTS_SINGLE, SND_ROCKET_FLY, VOL_BASE, ATTEN_NORM);
+                               loopsound(this, CH_SHOTS_SINGLE, SND_DEVASTATOR_FLY, VOL_BASE, ATTEN_NORM);
                                this.mins = '-3 -3 -3';
                                this.maxs = '3 3 3';
                                break;
@@ -474,7 +474,7 @@ NET_HANDLE(ENT_CLIENT_PROJECTILE, bool isnew)
                                this.maxs = '2 2 2';
                                break;
                        case PROJECTILE_SEEKER:
-                               loopsound(this, CH_SHOTS_SINGLE, SND_TAG_ROCKET_FLY, VOL_BASE, ATTEN_NORM);
+                               loopsound(this, CH_SHOTS_SINGLE, SND_SEEKER_ROCKET_FLY, VOL_BASE, ATTEN_NORM);
                                this.mins = '-4 -4 -4';
                                this.maxs = '4 4 4';
                                break;
@@ -491,29 +491,15 @@ NET_HANDLE(ENT_CLIENT_PROJECTILE, bool isnew)
                        case PROJECTILE_RAPTORCANNON:
                                break;
                        case PROJECTILE_SPIDERROCKET:
-                               loopsound(this, CH_SHOTS_SINGLE, SND_TAG_ROCKET_FLY, VOL_BASE, ATTEN_NORM);
+                               loopsound(this, CH_SHOTS_SINGLE, SND_VEH_SPIDERBOT_ROCKET_FLY, VOL_BASE, ATTEN_NORM);
                                break;
                        case PROJECTILE_WAKIROCKET:
-                               loopsound(this, CH_SHOTS_SINGLE, SND_TAG_ROCKET_FLY, VOL_BASE, ATTEN_NORM);
+                               loopsound(this, CH_SHOTS_SINGLE, SND_VEH_RACER_ROCKET_FLY, VOL_BASE, ATTEN_NORM);
                                break;
                        case PROJECTILE_ROCKETMINSTA_LASER:
                                if(this.colormap > 0)
                                        this.colormod = colormapPaletteColor(this.colormap & 0x0F, true);
                                break;
-                       /*
-                       case PROJECTILE_WAKICANNON:
-                           break;
-                       case PROJECTILE_BUMBLE_GUN:
-                           // only new engines support sound moving with object
-                           loopsound(this, CH_SHOTS_SINGLE, SND_ELECTRO_FLY, VOL_BASE, ATTEN_NORM);
-                           this.mins = '0 0 -4';
-                           this.maxs = '0 0 -4';
-                           this.move_movetype = MOVETYPE_BOUNCE;
-                           settouch(this, func_null);
-                           this.bouncefactor = WEP_CVAR_SEC(WEP_ELECTRO, bouncefactor);
-                           this.bouncestop = WEP_CVAR_SEC(WEP_ELECTRO, bouncestop);
-                           break;
-                       */
                        default:
                                break;
                }
index f5db08298cb07bc2bbf58a0058fce11e6d7cb444..969ad1f1123f74f9544b608e7592ab0331b3b67a 100644 (file)
@@ -31,7 +31,7 @@ EFFECT(0, ARC_OVERHEAT,             "arc_overheat")
 EFFECT(0, ARC_OVERHEAT_FIRE,        "arc_overheat_fire")
 EFFECT(0, ARC_SMOKE,                "arc_smoke")
 EFFECT(0, ARC_LIGHTNING,            "arc_lightning")
-EFFECT(0, ARC_LIGHTNING2,           "electro_lightning")
+//EFFECT(0, ARC_LIGHTNING2,           "electro_lightning")
 
 EFFECT(0, MACHINEGUN_IMPACT,        "machinegun_impact")
 EFFECT(0, MACHINEGUN_MUZZLEFLASH,   "uzi_muzzleflash")
@@ -204,11 +204,17 @@ EFFECT(0, ITEM_PICKUP,              "item_pickup")
 EFFECT(0, ITEM_RESPAWN,             "item_respawn")
 EFFECT(0, ITEM_DESPAWN,             "item_despawn")
 
+// FIXME: needs custom effect
+EFFECT(0, ONS_ELECTRICITY_EXPLODE,  "electro_ballexplode")
 EFFECT(0, ONS_GENERATOR_DAMAGED,    "torch_small")
 EFFECT(0, ONS_GENERATOR_GIB,        "onslaught_generator_gib_explode")
 EFFECT(0, ONS_GENERATOR_EXPLODE,    "onslaught_generator_smallexplosion")
 EFFECT(0, ONS_GENERATOR_EXPLODE2,   "onslaught_generator_finalexplosion")
+// FIXME: needs custom effect
+EFFECT(0, ONS_SHOCKWAVE,            "electro_combo")
 
+// FIXME: needs custom effect
+EFFECT(0, KA_BALL_RESPAWN,          "electro_combo")
 
 
 EFFECT(0, LASER_DEADLY,             "laser_deadly")
index bcaaa8ac43c131357ff5efdca6580c1f3dff2968..618820aa2a8b36895fcdb94e215f2b360c504a96 100644 (file)
@@ -350,11 +350,11 @@ NET_HANDLE(ENT_CLIENT_DAMAGEINFO, bool isNew)
                                pointparticles(EFFECT_RAPTOR_BOMB_IMPACT, this.origin, w_backoff * 1000, 1);
                                break;
                        case DEATH_VH_RAPT_DEATH:
-                               sound(this, CH_SHOTS, SND_LASERIMPACT, VOL_BASE, ATTEN_LOW);
+                               sound(this, CH_SHOTS, SND_ROCKET_IMPACT, VOL_BASE, ATTEN_LOW);
                                pointparticles(EFFECT_EXPLOSION_BIG, this.origin, w_backoff * 1000, 1);
                                break;
                        case DEATH_VH_BUMB_GUN:
-                               sound(this, CH_SHOTS, SND_FIREBALL_IMPACT2, VOL_BASE, ATTEN_NORM);
+                               sound(this, CH_SHOTS, SND_VEH_BUMBLEBEE_IMPACT, VOL_BASE, ATTEN_NORM);
                                pointparticles(EFFECT_BIGPLASMA_IMPACT, this.origin, w_backoff * 1000, 1);
                                break;
                }
@@ -381,7 +381,7 @@ NET_HANDLE(ENT_CLIENT_DAMAGEINFO, bool isNew)
 
                        case DEATH_TURRET_FLAC:
                                pointparticles(EFFECT_HAGAR_EXPLODE, w_org, '0 0 0', 1);
-                               sound(this, CH_SHOTS, SND_HAGEXP_RANDOM(), VOL_BASE, ATTEN_NORM);
+                               sound(this, CH_SHOTS, SND_FLACEXP_RANDOM(), VOL_BASE, ATTEN_NORM);
                                break;
 
                        case DEATH_TURRET_MLRS:
@@ -399,7 +399,7 @@ NET_HANDLE(ENT_CLIENT_DAMAGEINFO, bool isNew)
                                break;
 
                        case DEATH_TURRET_PLASMA:
-                               sound(this, CH_SHOTS, SND_ELECTRO_IMPACT, VOL_BASE, ATTEN_LOW);
+                               sound(this, CH_SHOTS, SND_TUR_PLASMA_IMPACT, VOL_BASE, ATTEN_LOW);
                                pointparticles(EFFECT_ELECTRO_IMPACT, this.origin, w_backoff * 1000, 1);
                                break;
 
index 32be3c74da34fd97d42add24f6d59162f35cffc4..ee159358d2379e4d3c00e313124ea63dca42bbd7 100644 (file)
@@ -65,8 +65,8 @@ void ka_RespawnBall(entity this) // runs whenever the ball needs to be relocated
        this.nextthink = time + autocvar_g_keepawayball_respawntime;
        navigation_dynamicgoal_set(this, NULL);
 
-       Send_Effect(EFFECT_ELECTRO_COMBO, oldballorigin, '0 0 0', 1);
-       Send_Effect(EFFECT_ELECTRO_COMBO, this.origin, '0 0 0', 1);
+       Send_Effect(EFFECT_KA_BALL_RESPAWN, oldballorigin, '0 0 0', 1);
+       Send_Effect(EFFECT_KA_BALL_RESPAWN, this.origin, '0 0 0', 1);
 
        WaypointSprite_Spawn(WP_KaBall, 0, 0, this, '0 0 64', NULL, this.team, this, waypointsprite_attachedforcarrier, false, RADARICON_FLAGCARRIER);
        WaypointSprite_Ping(this.waypointsprite_attachedforcarrier);
index d8d28488abff4064c58969bc126b4b6f01d107b9..784d785cbb6f6bc355d50eda7af05d140f130341 100644 (file)
@@ -54,7 +54,7 @@ void generator_draw(entity this)
                if(random() < 0.9 - GetResource(this, RES_HEALTH) / this.max_health)
                if(random() < 0.01)
                {
-                       pointparticles(EFFECT_ELECTRO_BALLEXPLODE, this.origin + randompos('-50 -50 -20', '50 50 50'), '0 0 0', 1);
+                       pointparticles(EFFECT_ONS_ELECTRICITY_EXPLODE, this.origin + randompos('-50 -50 -20', '50 50 50'), '0 0 0', 1);
                        sound(this, CH_TRIGGER, SND_ONS_ELECTRICITY_EXPLODE, VOL_BASE, ATTEN_NORM);
                }
                else
@@ -75,7 +75,7 @@ void generator_draw(entity this)
        if(this.count==40||this.count==20)
        {
                sound(this, CH_TRIGGER, SND_ONS_SHOCKWAVE, VOL_BASE, ATTEN_NORM);
-               pointparticles(EFFECT_ELECTRO_COMBO, this.origin, '0 0 0', 6);
+               pointparticles(EFFECT_ONS_SHOCKWAVE, this.origin, '0 0 0', 6);
        }
 
        // rays
@@ -95,7 +95,7 @@ void generator_draw(entity this)
        if(random() < 0.25)
        {
                te_explosion(this.origin);
-               sound(this, CH_TRIGGER, SND_GRENADE_IMPACT, VOL_BASE, ATTEN_NORM);
+               sound(this, CH_TRIGGER, SND_ONS_GENERATOR_EXPLODE, VOL_BASE, ATTEN_NORM);
        }
 
        // Particles
index 827aa0f5ccd35fa0290c183c59e6882eda9205f4..5838c6242dcccfbb60eee047e6112f9fe6ef6eec 100644 (file)
@@ -403,7 +403,7 @@ void ons_ControlPoint_Icon_Damage(entity this, entity inflictor, entity attacker
 
        if (GetResource(this, RES_HEALTH) < 0)
        {
-               sound(this, CH_TRIGGER, SND_GRENADE_IMPACT, VOL_BASE, ATTEN_NORM);
+               sound(this, CH_TRIGGER, SND_ONS_GENERATOR_EXPLODE, VOL_BASE, ATTEN_NORM);
                pointparticles(EFFECT_ROCKET_EXPLODE, this.origin, '0 0 0', 1);
                if (this.owner.message != "")
                        Send_Notification(NOTIF_ALL, NULL, MSG_INFO, APP_TEAM_NUM(this.team, INFO_ONSLAUGHT_CPDESTROYED), this.owner.message, attacker.netname);
index 43685ca06b00d98f7390c23c5e5e1040896ef256..dd3c8ea082275b703806d355bcf3f5e25bbffc42 100644 (file)
@@ -62,8 +62,8 @@ void tka_RespawnBall(entity this) // runs whenever the ball needs to be relocate
        this.nextthink = time + autocvar_g_tkaball_respawntime;
        navigation_dynamicgoal_set(this, NULL);
 
-       Send_Effect(EFFECT_ELECTRO_COMBO, oldballorigin, '0 0 0', 1);
-       Send_Effect(EFFECT_ELECTRO_COMBO, this.origin, '0 0 0', 1);
+       Send_Effect(EFFECT_KA_BALL_RESPAWN, oldballorigin, '0 0 0', 1);
+       Send_Effect(EFFECT_KA_BALL_RESPAWN, this.origin, '0 0 0', 1);
 
        WaypointSprite_Spawn(WP_KaBall, 0, 0, this, '0 0 64', NULL, this.team, this, waypointsprite_attachedforcarrier, false, RADARICON_FLAGCARRIER);
        WaypointSprite_Ping(this.waypointsprite_attachedforcarrier);
index b8fc08f388144d328b101b1c60e5557a92027187..a20e3d12a65b6843ef48e0b7497e21f900ce33a6 100644 (file)
@@ -20,22 +20,6 @@ MODEL(KH_KEY,                           "models/keyhunt/key.md3");
 MODEL(KH_KEY_CARRIED,                   "models/keyhunt/key-carried.md3");
 #endif
 
-MODEL(OK_HMG,                           W_Model("g_ok_hmg.md3"));
-
-MODEL(OK_RPC,                           W_Model("g_ok_rl.md3"));
-
-MODEL(OK_MG_VIEW,                       W_Model("h_ok_mg.iqm"));
-MODEL(OK_MG_WORLD,                      W_Model("v_ok_mg.md3"));
-MODEL(OK_MG_ITEM,                       W_Model("g_ok_mg.md3"));
-
-MODEL(OK_SHOTGUN_VIEW,                  W_Model("h_ok_shotgun.iqm"));
-MODEL(OK_SHOTGUN_WORLD,                 W_Model("v_ok_shotgun.md3"));
-MODEL(OK_SHOTGUN_ITEM,                  W_Model("g_ok_shotgun.md3"));
-
-MODEL(OK_SNIPER_VIEW,                   W_Model("h_ok_sniper.iqm"));
-MODEL(OK_SNIPER_WORLD,                  W_Model("v_ok_sniper.md3"));
-MODEL(OK_SNIPER_ITEM,                   W_Model("g_ok_sniper.md3"));
-
 MODEL(ONS_CP,                           "models/onslaught/controlpoint_icon.md3");
 MODEL(ONS_CP_SHIELD,                    "models/onslaught/controlpoint_shield.md3");
 MODEL(ONS_CP_PAD1,                      "models/onslaught/controlpoint_pad.md3");
@@ -155,112 +139,6 @@ MODEL(CASING_BULLET,                    "models/casing_bronze.iqm");
 
 MODEL(BUFF,                             "models/relics/relic.md3");
 
-MODEL(BLASTER_VIEW,                     W_Model("h_laser.iqm"));
-MODEL(BLASTER_WORLD,                    W_Model("v_laser.md3"));
-MODEL(BLASTER_ITEM,                     W_Model("g_laser.md3"));
-
-MODEL(SHOTGUN_MUZZLEFLASH,              "models/uziflash.md3");
-MODEL(SHOTGUN_VIEW,                     W_Model("h_shotgun.iqm"));
-MODEL(SHOTGUN_WORLD,                    W_Model("v_shotgun.md3"));
-MODEL(SHOTGUN_ITEM,                     W_Model("g_shotgun.md3"));
-
-MODEL(MACHINEGUN_MUZZLEFLASH,           "models/uziflash.md3");
-MODEL(MACHINEGUN_VIEW,                  W_Model("h_uzi.iqm"));
-MODEL(MACHINEGUN_WORLD,                 W_Model("v_uzi.md3"));
-MODEL(MACHINEGUN_ITEM,                  W_Model("g_uzi.md3"));
-
-MODEL(MORTAR_VIEW,                      W_Model("h_gl.iqm"));
-MODEL(MORTAR_WORLD,                     W_Model("v_gl.md3"));
-MODEL(MORTAR_ITEM,                      W_Model("g_gl.md3"));
-
-MODEL(MINELAYER_MUZZLEFLASH,            "models/flash.md3");
-MODEL(MINELAYER_MINE,                   "models/mine.md3");
-MODEL(MINELAYER_VIEW,                   W_Model("h_minelayer.iqm"));
-MODEL(MINELAYER_WORLD,                  W_Model("v_minelayer.md3"));
-MODEL(MINELAYER_ITEM,                   W_Model("g_minelayer.md3"));
-
-MODEL(ELECTRO_VIEW,                     W_Model("h_electro.iqm"));
-MODEL(ELECTRO_WORLD,                    W_Model("v_electro.md3"));
-MODEL(ELECTRO_ITEM,                     W_Model("g_electro.md3"));
-
-MODEL(CRYLINK_VIEW,                     W_Model("h_crylink.iqm"));
-MODEL(CRYLINK_WORLD,                    W_Model("v_crylink.md3"));
-MODEL(CRYLINK_ITEM,                     W_Model("g_crylink.md3"));
-
-MODEL(VORTEX_MUZZLEFLASH,               "models/nexflash.md3");
-MODEL(VORTEX_VIEW,                      W_Model("h_nex.iqm"));
-MODEL(VORTEX_WORLD,                     W_Model("v_nex.md3"));
-MODEL(VORTEX_ITEM,                      W_Model("g_nex.md3"));
-
-MODEL(HAGAR_VIEW,                       W_Model("h_hagar.iqm"));
-MODEL(HAGAR_WORLD,                      W_Model("v_hagar.md3"));
-MODEL(HAGAR_ITEM,                       W_Model("g_hagar.md3"));
-
-MODEL(DEVASTATOR_MUZZLEFLASH,           "models/flash.md3");
-MODEL(DEVASTATOR_VIEW,                  W_Model("h_rl.iqm"));
-MODEL(DEVASTATOR_WORLD,                 W_Model("v_rl.md3"));
-MODEL(DEVASTATOR_ITEM,                  W_Model("g_rl.md3"));
-
-MODEL(PORTAL,                           "models/portal.md3");
-MODEL(PORTO_VIEW,                       W_Model("h_porto.iqm"));
-MODEL(PORTO_WORLD,                      W_Model("v_porto.md3"));
-MODEL(PORTO_ITEM,                       W_Model("g_porto.md3"));
-
-MODEL(VAPORIZER_MUZZLEFLASH,            "models/nexflash.md3");
-MODEL(VAPORIZER_VIEW,                   W_Model("h_minstanex.iqm"));
-MODEL(VAPORIZER_WORLD,                  W_Model("v_minstanex.md3"));
-MODEL(VAPORIZER_ITEM,                   W_Model("g_minstanex.md3"));
-
-MODEL(HOOK,                             "models/hook.md3");
-MODEL(HOOK_VIEW,                        W_Model("h_hookgun.iqm"));
-MODEL(HOOK_WORLD,                       W_Model("v_hookgun.md3"));
-MODEL(HOOK_ITEM,                        W_Model("g_hookgun.md3"));
-
-MODEL(HLAC_VIEW,                        W_Model("h_hlac.iqm"));
-MODEL(HLAC_WORLD,                       W_Model("v_hlac.md3"));
-MODEL(HLAC_ITEM,                        W_Model("g_hlac.md3"));
-
-MODEL(TUBA_VIEW,                        W_Model("h_tuba.iqm"));
-MODEL(TUBA_WORLD,                       W_Model("v_tuba.md3"));
-MODEL(TUBA_ITEM,                        W_Model("g_tuba.md3"));
-MODEL(ACCORDION_VIEW,                   W_Model("h_akordeon.iqm"));
-MODEL(ACCORDION_WORLD,                  W_Model("v_akordeon.md3"));
-MODEL(KLEINBOTTLE_VIEW,                 W_Model("h_kleinbottle.iqm"));
-MODEL(KLEINBOTTLE_WORLD,                W_Model("v_kleinbottle.md3"));
-
-MODEL(RIFLE_VIEW,                       W_Model("h_campingrifle.iqm"));
-MODEL(RIFLE_WORLD,                      W_Model("v_campingrifle.md3"));
-MODEL(RIFLE_ITEM,                       W_Model("g_campingrifle.md3"));
-
-MODEL(FIREBALL_SPHERE,                  "models/sphere/sphere.md3");
-MODEL(FIREBALL_VIEW,                    W_Model("h_fireball.iqm"));
-MODEL(FIREBALL_WORLD,                   W_Model("v_fireball.md3"));
-MODEL(FIREBALL_ITEM,                    W_Model("g_fireball.md3"));
-
-MODEL(SEEKER_VIEW,                      W_Model("h_seeker.iqm"));
-MODEL(SEEKER_WORLD,                     W_Model("v_seeker.md3"));
-MODEL(SEEKER_ITEM,                      W_Model("g_seeker.md3"));
-
-MODEL(SHOCKWAVE_MUZZLEFLASH,            "models/uziflash.md3");
-MODEL(SHOCKWAVE_VIEW,                   W_Model("h_shotgun.iqm"));
-MODEL(SHOCKWAVE_WORLD,                  W_Model("v_shotgun.md3"));
-MODEL(SHOCKWAVE_ITEM,                   W_Model("g_shotgun.md3"));
-
-MODEL(ARC_MUZZLEFLASH,                  "models/flash.md3");
-MODEL(ARC_VIEW,                         W_Model("h_arc.iqm"));
-MODEL(ARC_WORLD,                        W_Model("v_arc.md3"));
-MODEL(ARC_ITEM,                         W_Model("g_arc.md3"));
-
-MODEL(HMG_MUZZLEFLASH,                  "models/uziflash.md3");
-MODEL(HMG_VIEW,                         W_Model("h_ok_hmg.iqm"));
-MODEL(HMG_WORLD,                        W_Model("v_ok_hmg.md3"));
-MODEL(HMG_ITEM,                         W_Model("g_ok_hmg.md3"));
-
-MODEL(RPC_MUZZLEFLASH,                  "models/flash.md3");
-MODEL(RPC_VIEW,                         W_Model("h_ok_rl.iqm"));
-MODEL(RPC_WORLD,                        W_Model("v_ok_rl.md3"));
-MODEL(RPC_ITEM,                         W_Model("g_ok_rl.md3"));
-
 MODEL(TUR_GIB_BASE1,                    "models/turrets/base-gib1.md3");
 MODEL(TUR_GIB_BASE2,                    "models/turrets/base-gib2.md3");
 MODEL(TUR_GIB_BASE3,                    "models/turrets/base-gib3.md3");
index 8762dd9e4253ce2a28e5792a82cc67f0331ccaeb..e98aa3e458d1d6dedb92e69388d6a95f2b37339e 100644 (file)
@@ -45,7 +45,7 @@ void M_Golem_Attack_Swing(entity this)
 
 void M_Golem_Attack_Lightning_Explode(entity this, entity directhitentity)
 {
-       sound(this, CH_SHOTS, SND_ELECTRO_IMPACT, VOL_BASE, ATTEN_NORM);
+       sound(this, CH_SHOTS, SND_MON_GOLEM_LIGHTNING_IMPACT, VOL_BASE, ATTEN_NORM);
        Send_Effect(EFFECT_ELECTRO_IMPACT, this.origin, '0 0 0', 1);
 
        this.event_damage = func_null;
index b34ffdfb64734135ef2822dfe0a534fe1740f3f7..13a9c513dc9421c8686f844de01876d17f545b0b 100644 (file)
@@ -36,6 +36,8 @@ float autocvar_g_monster_mage_speed_run;
 float autocvar_g_monster_mage_speed_walk;
 
 SOUND(MageSpike_FIRE, W_Sound("electro_fire"));
+SOUND(MageSpike_IMPACT, W_Sound("grenade_impact"));
+SOUND(MageSpike_PUSH, W_Sound("tagexp1"));
 void M_Mage_Attack_Spike(entity this, vector dir);
 void M_Mage_Attack_Push(entity this);
 METHOD(MageSpike, wr_think, void(MageSpike thiswep, entity actor, .entity weaponentity, int fire))
@@ -115,7 +117,7 @@ void M_Mage_Attack_Spike_Explode(entity this, entity directhitentity)
 {
        this.event_damage = func_null;
 
-       sound(this, CH_SHOTS, SND_GRENADE_IMPACT, VOL_BASE, ATTEN_NORM);
+       sound(this, CH_SHOTS, SND_MageSpike_IMPACT, VOL_BASE, ATTEN_NORM);
 
        this.realowner.mage_spike = NULL;
 
@@ -274,7 +276,7 @@ void M_Mage_Defend_Heal(entity this)
 
 void M_Mage_Attack_Push(entity this)
 {
-       sound(this, CH_SHOTS, SND_TAGEXP1, 1, ATTEN_NORM);
+       sound(this, CH_SHOTS, SND_MageSpike_PUSH, 1, ATTEN_NORM);
        RadiusDamage (this, this, (autocvar_g_monster_mage_attack_push_damage), (autocvar_g_monster_mage_attack_push_damage), (autocvar_g_monster_mage_attack_push_radius),
                                                NULL, NULL, (autocvar_g_monster_mage_attack_push_force), DEATH_MONSTER_MAGE.m_id, DMG_NOWEP, this.enemy);
        Send_Effect(EFFECT_TE_EXPLOSION, this.origin, '0 0 0', 1);
index 0d0936eabb530a298930a56e830514f0a41e66b7..90929f5a4829eb0afb6bb7f7ce8ca2baef2df614 100644 (file)
@@ -43,7 +43,7 @@ MUTATOR_HOOKFUNCTION(spiderweb, MonsterMove)
        }
 }
 
-SOUND(SpiderAttack_FIRE, W_Sound("electro_fire"));
+SOUND(SpiderAttack_FIRE, W_Sound("electro_fire2"));
 METHOD(SpiderAttack, wr_think, void(SpiderAttack thiswep, entity actor, .entity weaponentity, int fire))
 {
     TC(SpiderAttack, thiswep);
@@ -108,7 +108,7 @@ void M_Spider_Attack_Web_Touch(entity this, entity toucher)
 
 void M_Spider_Attack_Web(entity this)
 {
-       sound(this, CH_SHOTS, SND_ELECTRO_FIRE2, VOL_BASE, ATTEN_NORM);
+       sound(this, CH_SHOTS, SND_SpiderAttack_FIRE, VOL_BASE, ATTEN_NORM);
 
        entity proj = new(plasma);
        proj.owner = proj.realowner = this;
index 7cfabe9a8964ecea9e6b16b589d3480cb0644307..2587e9cced67c6e1b0ced9bd00966175dc939d9b 100644 (file)
@@ -31,7 +31,7 @@ MUTATOR_HOOKFUNCTION(cl_nades, EditProjectile)
 
        if (proj.cnt == PROJECTILE_NAPALM_FOUNTAIN)
        {
-               loopsound(proj, CH_SHOTS_SINGLE, SND_FIREBALL_FLY2, VOL_BASE, ATTEN_NORM);
+               loopsound(proj, CH_SHOTS_SINGLE, SND_NADE_NAPALM_FLY, VOL_BASE, ATTEN_NORM);
                proj.mins = '-16 -16 -16';
                proj.maxs = '16 16 16';
        }
index 9a299ed76186deddc864072f5b88519df8ec45b3..ed0aecb9c3b52845942ca447487a81435fc5ab77 100644 (file)
@@ -75,7 +75,7 @@ void nade_napalm_ball(entity this)
        entity proj;
        vector kick;
 
-       spamsound(this, CH_SHOTS, SND_FIREBALL_FIRE, VOL_BASE, ATTEN_NORM);
+       spamsound(this, CH_SHOTS, SND_NADE_NAPALM_FIRE, VOL_BASE, ATTEN_NORM);
 
        proj = new(grenade);
        proj.owner = this.owner;
index 199c86e576902cc3f0a9b46829aaed2637e6a011..e3ce8f07f32375655b54caf21ee12b0fc532bb21 100644 (file)
@@ -27,7 +27,7 @@ void W_OverkillHeavyMachineGun_Attack_Auto(Weapon thiswep, entity actor, .entity
 
        W_DecreaseAmmo(WEP_OVERKILL_HMG, actor, WEP_CVAR_PRI(WEP_OVERKILL_HMG, ammo), weaponentity);
 
-       W_SetupShot(actor, weaponentity, true, 0, SND_UZI_FIRE, CH_WEAPON_A, WEP_CVAR_PRI(WEP_OVERKILL_HMG, damage), WEP_OVERKILL_HMG.m_id);
+       W_SetupShot(actor, weaponentity, true, 0, SND_HMG_FIRE, CH_WEAPON_A, WEP_CVAR_PRI(WEP_OVERKILL_HMG, damage), WEP_OVERKILL_HMG.m_id);
 
        if(!autocvar_g_norecoil)
        {
index 34c2bb0fd4460134d4129909c5e9ee95501a55bd..2b168b8bb56a969d9bd6bb81c557282804b155d4 100644 (file)
@@ -2,6 +2,15 @@
 
 #include <common/weapons/all.qh>
 
+#ifdef GAMEQC
+MODEL(HMG_MUZZLEFLASH, "models/uziflash.md3");
+MODEL(HMG_VIEW, W_Model("h_ok_hmg.iqm"));
+MODEL(HMG_WORLD, W_Model("v_ok_hmg.md3"));
+MODEL(HMG_ITEM, W_Model("g_ok_hmg.md3"));
+
+SOUND(HMG_FIRE, W_Sound("uzi_fire"));
+#endif
+
 CLASS(OverkillHeavyMachineGun, Weapon)
 /* spawnfunc */ ATTRIB(OverkillHeavyMachineGun, m_canonical_spawnfunc, string, "weapon_okhmg");
 /* ammotype  */ ATTRIB(OverkillHeavyMachineGun, ammo_type, Resource, RES_BULLETS);
@@ -12,7 +21,7 @@ CLASS(OverkillHeavyMachineGun, Weapon)
 /* modelname */ ATTRIB(OverkillHeavyMachineGun, mdl, string, "ok_hmg");
 #ifdef GAMEQC
 /* model     */ ATTRIB(OverkillHeavyMachineGun, m_model, Model, MDL_HMG_ITEM);
-/* flash mdl */ ATTRIB(OverkillHeavyMachineGun, m_muzzlemodel, Model, MDL_MACHINEGUN_MUZZLEFLASH);
+/* flash mdl */ ATTRIB(OverkillHeavyMachineGun, m_muzzlemodel, Model, MDL_HMG_MUZZLEFLASH);
 /* flash eff */ ATTRIB(OverkillHeavyMachineGun, m_muzzleeffect, entity, EFFECT_MACHINEGUN_MUZZLEFLASH);
 #endif
 /* crosshair */ ATTRIB(OverkillHeavyMachineGun, w_crosshair, string, "gfx/crosshairuzi");
index 041ea0b5d4385ca6acc1f0155d785aef63be8d37..1c6a76734925973f172cc3d86b26ca278ee5ebb3 100644 (file)
@@ -22,7 +22,7 @@ void W_OverkillMachineGun_Attack_Auto(Weapon thiswep, entity actor, .entity weap
 
        W_DecreaseAmmo(WEP_OVERKILL_MACHINEGUN, actor, WEP_CVAR_PRI(WEP_OVERKILL_MACHINEGUN, ammo), weaponentity);
 
-       W_SetupShot(actor, weaponentity, true, 0, SND_UZI_FIRE, CH_WEAPON_A, WEP_CVAR_PRI(WEP_OVERKILL_MACHINEGUN, damage), WEP_OVERKILL_MACHINEGUN.m_id);
+       W_SetupShot(actor, weaponentity, true, 0, SND_OK_MG_FIRE, CH_WEAPON_A, WEP_CVAR_PRI(WEP_OVERKILL_MACHINEGUN, damage), WEP_OVERKILL_MACHINEGUN.m_id);
        if(!autocvar_g_norecoil)
        {
                actor.punchangle_x = random() - 0.5;
index b51c2fb69ac4182e5b78b76dbad03e607556bd1b..2c5eb35bf90ac077aa4e4b926977d557188f75e1 100644 (file)
@@ -1,5 +1,13 @@
 #pragma once
 
+#ifdef GAMEQC
+MODEL(OK_MG_VIEW, W_Model("h_ok_mg.iqm"));
+MODEL(OK_MG_WORLD, W_Model("v_ok_mg.md3"));
+MODEL(OK_MG_ITEM, W_Model("g_ok_mg.md3"));
+
+SOUND(OK_MG_FIRE, W_Sound("uzi_fire"));
+#endif
+
 CLASS(OverkillMachineGun, Weapon)
 /* spawnfunc */ ATTRIB(OverkillMachineGun, m_canonical_spawnfunc, string, "weapon_okmachinegun");
 /* ammotype  */ ATTRIB(OverkillMachineGun, ammo_type, Resource, RES_BULLETS);
index a805854acec6596bc6d48e5910e5860c56802589..60871a044e3220ee586e82110a61f56b66f0c17d 100644 (file)
@@ -83,10 +83,10 @@ void W_OverkillNex_Attack(Weapon thiswep, entity actor, .entity weaponentity, fl
        mydmg *= charge;
        myforce *= charge;
 
-       W_SetupShot(actor, weaponentity, true, 5, SND_NEXFIRE, CH_WEAPON_A, mydmg, thiswep.m_id);
+       W_SetupShot(actor, weaponentity, true, 5, SND_OK_NEX_FIRE, CH_WEAPON_A, mydmg, thiswep.m_id);
        if(charge > WEP_CVAR(WEP_OVERKILL_NEX, charge_animlimit) && WEP_CVAR(WEP_OVERKILL_NEX, charge_animlimit)) // if the OverkillNex is overcharged, we play an extra sound
        {
-               sound(actor, CH_WEAPON_B, SND_NEXCHARGE, VOL_BASE * (charge - 0.5 * WEP_CVAR(WEP_OVERKILL_NEX, charge_animlimit)) / (1 - 0.5 * WEP_CVAR(WEP_OVERKILL_NEX, charge_animlimit)), ATTN_NORM);
+               sound(actor, CH_WEAPON_B, SND_OK_NEX_CHARGE, VOL_BASE * (charge - 0.5 * WEP_CVAR(WEP_OVERKILL_NEX, charge_animlimit)) / (1 - 0.5 * WEP_CVAR(WEP_OVERKILL_NEX, charge_animlimit)), ATTN_NORM);
        }
 
        yoda = 0;
@@ -332,7 +332,7 @@ METHOD(OverkillNex, wr_impacteffect, void(entity thiswep, entity actor))
        vector org2 = w_org + w_backoff * 2;
        pointparticles(EFFECT_VORTEX_IMPACT, org2, '0 0 0', 1);
        if(!w_issilent)
-               sound(this, CH_SHOTS, SND_NEXIMPACT, VOL_BASE, ATTN_NORM);
+               sound(this, CH_SHOTS, SND_OK_NEX_IMPACT, VOL_BASE, ATTN_NORM);
 }
 
 METHOD(OverkillNex, wr_init, void(entity thiswep))
index 6dfe2fc5f16e5393a417fbd90da37fd33922049d..ce45c0556e79250bcc16f58070aa085923190572 100644 (file)
@@ -1,5 +1,15 @@
 #pragma once
 
+#ifdef GAMEQC
+MODEL(OK_NEX_VIEW, W_Model("h_ok_sniper.iqm"));
+MODEL(OK_NEX_WORLD, W_Model("v_ok_sniper.md3"));
+MODEL(OK_NEX_ITEM, W_Model("g_ok_sniper.md3"));
+
+SOUND(OK_NEX_CHARGE, W_Sound("nexcharge"));
+SOUND(OK_NEX_FIRE, W_Sound("nexfire"));
+SOUND(OK_NEX_IMPACT, W_Sound("neximpact"));
+#endif
+
 CLASS(OverkillNex, Weapon)
 /* spawnfunc */ ATTRIB(OverkillNex, m_canonical_spawnfunc, string, "weapon_oknex");
 /* ammotype  */ ATTRIB(OverkillNex, ammo_type, Resource, RES_CELLS);
@@ -9,7 +19,7 @@ CLASS(OverkillNex, Weapon)
 /* color     */ ATTRIB(OverkillNex, m_color, vector, '0.459 0.765 0.835');
 /* modelname */ ATTRIB(OverkillNex, mdl, string, "ok_sniper");
 #ifdef GAMEQC
-/* model     */ ATTRIB(OverkillNex, m_model, Model, MDL_OK_SNIPER_ITEM);
+/* model     */ ATTRIB(OverkillNex, m_model, Model, MDL_OK_NEX_ITEM);
 #endif
 /* crosshair */ ATTRIB(OverkillNex, w_crosshair, string, "gfx/crosshairnex");
 /* crosshair */ ATTRIB(OverkillNex, w_crosshair_size, float, 0.65);
index 734c1d25b5036c4ad0b6435231e80602a9cb10a4..99aa495d498a87aa339b45b90294ca9591bf921c 100644 (file)
@@ -89,7 +89,7 @@ void W_OverkillRocketPropelledChainsaw_Attack(Weapon thiswep, entity actor, .ent
        entity missile = spawn(); //WarpZone_RefSys_SpawnSameRefSys(actor);
 
        W_DecreaseAmmo(thiswep, actor, WEP_CVAR_PRI(WEP_OVERKILL_RPC, ammo), weaponentity);
-       W_SetupShot_ProjectileSize(actor, weaponentity, '-3 -3 -3', '3 3 3', false, 5, SND_ROCKET_FIRE, CH_WEAPON_A, WEP_CVAR_PRI(WEP_OVERKILL_RPC, damage), thiswep.m_id);
+       W_SetupShot_ProjectileSize(actor, weaponentity, '-3 -3 -3', '3 3 3', false, 5, SND_RPC_FIRE, CH_WEAPON_A, WEP_CVAR_PRI(WEP_OVERKILL_RPC, damage), thiswep.m_id);
        W_MuzzleFlash(thiswep, actor, weaponentity, w_shotorg, w_shotdir);
        PROJECTILE_MAKETRIGGER(missile);
 
index 64ec5a5e8f256791a0ee3e84651b6b80d34bec77..058ecfcf51eb07cc70e5aeb3aaf35d05fb6635a7 100644 (file)
@@ -2,6 +2,15 @@
 
 #include <common/weapons/all.qh>
 
+#ifdef GAMEQC
+MODEL(RPC_MUZZLEFLASH, "models/flash.md3");
+MODEL(RPC_VIEW, W_Model("h_ok_rl.iqm"));
+MODEL(RPC_WORLD, W_Model("v_ok_rl.md3"));
+MODEL(RPC_ITEM, W_Model("g_ok_rl.md3"));
+
+SOUND(RPC_FIRE, W_Sound("rocket_fire"));
+#endif
+
 CLASS(OverkillRocketPropelledChainsaw, Weapon)
 /* spawnfunc */ ATTRIB(OverkillRocketPropelledChainsaw, m_canonical_spawnfunc, string, "weapon_okrpc");
 /* ammotype  */ ATTRIB(OverkillRocketPropelledChainsaw, ammo_type, Resource, RES_ROCKETS);
index 4f57b986f033097f7a6991512a49307eef54ca54..c837425c652ba4d1fb309a45d9b87c97a8d83396 100644 (file)
@@ -1,5 +1,11 @@
 #pragma once
 
+#ifdef GAMEQC
+MODEL(OK_SHOTGUN_VIEW, W_Model("h_ok_shotgun.iqm"));
+MODEL(OK_SHOTGUN_WORLD, W_Model("v_ok_shotgun.md3"));
+MODEL(OK_SHOTGUN_ITEM, W_Model("g_ok_shotgun.md3"));
+#endif
+
 CLASS(OverkillShotgun, Weapon)
 /* spawnfunc */ ATTRIB(OverkillShotgun, m_canonical_spawnfunc, string, "weapon_okshotgun");
 /* ammotype  */ ATTRIB(OverkillShotgun, ammo_type, Resource, RES_SHELLS);
index 5d46a9edf0d0f732ca49373acdbc2feed4245512..2a00246bc5c97e88b0a0720cb5f4d4f5f051e534 100644 (file)
@@ -6,6 +6,8 @@ float autocvar_g_touchexplode_damage;
 float autocvar_g_touchexplode_edgedamage;
 float autocvar_g_touchexplode_force;
 
+SOUND(TOUCHEXPLODE, W_Sound("grenade_impact"));
+
 REGISTER_MUTATOR(touchexplode, expr_evaluate(autocvar_g_touchexplode));
 
 .float touchexplode_time;
@@ -15,7 +17,7 @@ void PlayerTouchExplode(entity p1, entity p2)
        vector org = (p1.origin + p2.origin) * 0.5;
        org.z += (p1.mins.z + p2.mins.z) * 0.5;
 
-       sound(p1, CH_TRIGGER, SND_GRENADE_IMPACT, VOL_BASE, ATTEN_NORM);
+       sound(p1, CH_TRIGGER, SND_TOUCHEXPLODE, VOL_BASE, ATTEN_NORM);
        Send_Effect(EFFECT_EXPLOSION_SMALL, org, '0 0 0', 1);
 
        entity e = spawn();
index f4277a666d33192cb53f82d9873e02d5624a2b72..de5bb6d359765ed9aa1aef6597001c91d304f3e4 100644 (file)
@@ -7,31 +7,7 @@
 string W_Sound(string w_snd);
 string Item_Sound(string it_snd);
 
-SOUND(ARC_FIRE, W_Sound("arc_fire"));
-SOUND(ARC_LOOP, W_Sound("arc_loop"));
-SOUND(ARC_LOOP_OVERHEAT, W_Sound("arc_loop_overheat"));
-SOUND(ARC_STOP, W_Sound("arc_stop"));
-SOUND(CAMPINGRIFLE_FIRE2, W_Sound("campingrifle_fire2"));
-SOUND(CAMPINGRIFLE_FIRE, W_Sound("campingrifle_fire"));
-SOUND(CRYLINK_FIRE2, W_Sound("crylink_fire2"));
-SOUND(CRYLINK_FIRE, W_Sound("crylink_fire"));
-SOUND(CRYLINK_IMPACT2, W_Sound("crylink_impact2"));
-SOUND(CRYLINK_IMPACT, W_Sound("crylink_impact"));
-SOUND(CRYLINK_LINKJOIN, W_Sound("crylink_linkjoin"));
 SOUND(DRYFIRE, W_Sound("dryfire"));
-SOUND(ELECTRO_BOUNCE, W_Sound("electro_bounce"));
-SOUND(ELECTRO_FIRE2, W_Sound("electro_fire2"));
-SOUND(ELECTRO_FIRE, W_Sound("electro_fire"));
-SOUND(ELECTRO_FLY, W_Sound("electro_fly"));
-SOUND(ELECTRO_IMPACT, W_Sound("electro_impact"));
-SOUND(ELECTRO_IMPACT_COMBO, W_Sound("electro_impact_combo"));
-SOUND(FIREBALL_FIRE2, W_Sound("fireball_fire2"));
-SOUND(FIREBALL_FIRE, W_Sound("fireball_fire"));
-SOUND(FIREBALL_FLY2, W_Sound("fireball_fly2"));
-SOUND(FIREBALL_FLY, W_Sound("fireball_fly"));
-SOUND(FIREBALL_IMPACT2, W_Sound("fireball_impact2"));
-SOUND(FIREBALL_PREFIRE2, W_Sound("fireball_prefire2"));
-SOUND(FLAC_FIRE, W_Sound("flac_fire"));
 SOUND(GRENADE_BOUNCE1, W_Sound("grenade_bounce1"));
 SOUND(GRENADE_BOUNCE2, W_Sound("grenade_bounce2"));
 SOUND(GRENADE_BOUNCE3, W_Sound("grenade_bounce3"));
@@ -41,35 +17,8 @@ SOUND(GRENADE_BOUNCE6, W_Sound("grenade_bounce6"));
 Sound SND_GRENADE_BOUNCE_RANDOM() {
     return REGISTRY_GET(Sounds, SND_GRENADE_BOUNCE1.m_id + rint(random() * 5));
 }
-SOUND(GRENADE_FIRE, W_Sound("grenade_fire"));
-SOUND(GRENADE_IMPACT, W_Sound("grenade_impact"));
-SOUND(GRENADE_STICK, W_Sound("grenade_stick"));
-SOUND(HAGAR_BEEP, W_Sound("hagar_beep"));
-SOUND(HAGAR_FIRE, W_Sound("hagar_fire"));
-SOUND(HAGAR_LOAD, W_Sound("hagar_load"));
-SOUND(HAGEXP1, W_Sound("hagexp1"));
-SOUND(HAGEXP2, W_Sound("hagexp2"));
-SOUND(HAGEXP3, W_Sound("hagexp3"));
-Sound SND_HAGEXP_RANDOM() {
-    return REGISTRY_GET(Sounds, SND_HAGEXP1.m_id + rint(random() * 2));
-}
 
-SOUND(HOOKBOMB_FIRE, W_Sound("hookbomb_fire"));
-SOUND(HOOKBOMB_IMPACT, W_Sound("hookbomb_impact"));
-SOUND(HOOK_FIRE, W_Sound("hook_fire"));
-SOUND(HOOK_IMPACT, W_Sound("hook_impact"));
-SOUND(LASERGUN_FIRE, W_Sound("lasergun_fire"));
 SOUND(LASERIMPACT, W_Sound("laserimpact"));
-SOUND(LGBEAM_FLY, W_Sound("lgbeam_fly"));
-SOUND(MINE_DET, W_Sound("mine_det"));
-SOUND(MINE_EXP, W_Sound("mine_exp"));
-SOUND(MINE_FIRE, W_Sound("mine_fire"));
-SOUND(MINE_STICK, W_Sound("mine_stick"));
-SOUND(MINE_TRIGGER, W_Sound("mine_trigger"));
-SOUND(MINSTANEXFIRE, W_Sound("minstanexfire"));
-SOUND(NEXCHARGE, W_Sound("nexcharge"));
-SOUND(NEXFIRE, W_Sound("nexfire"));
-SOUND(NEXIMPACT, W_Sound("neximpact"));
 SOUND(NEXWHOOSH1, W_Sound("nexwhoosh1"));
 SOUND(NEXWHOOSH2, W_Sound("nexwhoosh2"));
 SOUND(NEXWHOOSH3, W_Sound("nexwhoosh3"));
@@ -85,26 +34,9 @@ Sound SND_RIC_RANDOM() {
     return REGISTRY_GET(Sounds, SND_RIC1.m_id + rint(random() * 2));
 }
 
-SOUND(ROCKET_DET, W_Sound("rocket_det"));
-SOUND(ROCKET_FIRE, W_Sound("rocket_fire"));
-SOUND(ROCKET_FLY, W_Sound("rocket_fly"));
-SOUND(ROCKET_IMPACT, W_Sound("rocket_impact"));
-SOUND(ROCKET_MODE, W_Sound("rocket_mode"));
-SOUND(SEEKEREXP1, W_Sound("seekerexp1"));
-SOUND(SEEKEREXP2, W_Sound("seekerexp2"));
-SOUND(SEEKEREXP3, W_Sound("seekerexp3"));
-SOUND(SEEKER_FIRE, W_Sound("seeker_fire"));
-SOUND(SHOTGUN_FIRE, W_Sound("shotgun_fire"));
-SOUND(SHOTGUN_MELEE, W_Sound("shotgun_melee"));
+SOUND(ROCKET_IMPACT, W_Sound("rocket_impact")); // heavily used as a generic explosion sound
 SOUND(STRENGTH_FIRE, W_Sound("strength_fire"));
-SOUND(TAGEXP1, W_Sound("tagexp1"));
-SOUND(TAGEXP2, W_Sound("tagexp2"));
-SOUND(TAGEXP3, W_Sound("tagexp3"));
-SOUND(TAG_FIRE, W_Sound("tag_fire"));
-SOUND(TAG_IMPACT, W_Sound("tag_impact"));
-SOUND(TAG_ROCKET_FLY, W_Sound("tag_rocket_fly"));
 SOUND(UNAVAILABLE, W_Sound("unavailable"));
-SOUND(UZI_FIRE, W_Sound("uzi_fire"));
 SOUND(WEAPONPICKUP, W_Sound("weaponpickup"));
 SOUND(WEAPONPICKUP_NEW_TOYS, W_Sound("weaponpickup_new_toys"));
 SOUND(WEAPON_SWITCH, W_Sound("weapon_switch"));
@@ -202,30 +134,36 @@ SOUND(ONS_ELECTRICITY_EXPLODE, "onslaught/electricity_explode");
 //SOUND(ONS_GENERATOR_ALARM, "kh/alarm"); // FIXME: unique sound
 SOUND(ONS_GENERATOR_DECAY, "onslaught/generator_decay");
 SOUND(ONS_GENERATOR_UNDERATTACK, "onslaught/generator_underattack");
+SOUND(ONS_GENERATOR_EXPLODE, W_Sound("grenade_impact"));
 SOUND(ONS_HIT1, "onslaught/ons_hit1");
 SOUND(ONS_HIT2, "onslaught/ons_hit2");
 SOUND(ONS_SPARK1, "onslaught/ons_spark1");
 SOUND(ONS_SPARK2, "onslaught/ons_spark2");
 SOUND(ONS_SHOCKWAVE, "onslaught/shockwave");
 
-SOUND(PORTO_BOUNCE, "porto/bounce");
-SOUND(PORTO_CREATE, "porto/create");
-SOUND(PORTO_EXPIRE, "porto/expire");
-SOUND(PORTO_EXPLODE, "porto/explode");
-SOUND(PORTO_FIRE, "porto/fire");
-SOUND(PORTO_UNSUPPORTED, "porto/unsupported");
+SOUND(MON_GOLEM_LIGHTNING_IMPACT, W_Sound("electro_impact"));
 
+SOUND(FLACEXP1, W_Sound("hagexp1"));
+SOUND(FLACEXP2, W_Sound("hagexp2"));
+SOUND(FLACEXP3, W_Sound("hagexp3"));
+Sound SND_FLACEXP_RANDOM() {
+    return REGISTRY_GET(Sounds, SND_FLACEXP1.m_id + rint(random() * 2));
+}
 SOUND(TUR_PHASER, "turrets/phaser");
+SOUND(TUR_PLASMA_IMPACT, W_Sound("electro_impact"));
+SOUND(TUR_WALKER_FIRE, W_Sound("hagar_fire"));
 
 SOUND(VEH_ALARM, "vehicles/alarm");
 SOUND(VEH_ALARM_SHIELD, "vehicles/alarm_shield");
 SOUND(VEH_MISSILE_ALARM, "vehicles/missile_alarm");
 
 SOUND(VEH_BUMBLEBEE_FIRE, W_Sound("flacexp3"));
+SOUND(VEH_BUMBLEBEE_IMPACT, W_Sound("fireball_impact2"));
 
 SOUND(VEH_RACER_BOOST, "vehicles/racer_boost");
 SOUND(VEH_RACER_IDLE, "vehicles/racer_idle");
 SOUND(VEH_RACER_MOVE, "vehicles/racer_move");
+SOUND(VEH_RACER_ROCKET_FLY, W_Sound("tag_rocket_fly"));
 
 SOUND(VEH_RAPTOR_FLY, "vehicles/raptor_fly");
 SOUND(VEH_RAPTOR_SPEED, "vehicles/raptor_speed");
@@ -236,10 +174,18 @@ SOUND(VEH_SPIDERBOT_JUMP, "vehicles/spiderbot_jump");
 SOUND(VEH_SPIDERBOT_LAND, "vehicles/spiderbot_land");
 SOUND(VEH_SPIDERBOT_STRAFE, "vehicles/spiderbot_strafe");
 SOUND(VEH_SPIDERBOT_WALK, "vehicles/spiderbot_walk");
+SOUND(VEH_SPIDERBOT_MINIGUN_FIRE, W_Sound("uzi_fire"));
+SOUND(VEH_SPIDERBOT_ROCKET_FLY, W_Sound("tag_rocket_fly"));
+SOUND(VEH_SPIDERBOT_ROCKET_FIRE, W_Sound("rocket_fire"));
 
 SOUND(NADE_BEEP, "overkill/grenadebip");
+ // FIXME: unique sounds
 #define SND_NADE_BONUS SND_KH_ALARM
-//SOUND(NADE_BONUS, "kh/alarm"); // FIXME: unique sound
+//SOUND(NADE_BONUS, "kh/alarm");
+#define SND_NADE_NAPALM_FIRE SND_FIREBALL_FIRE
+//SOUND(NADE_NAPALM_FIRE, W_Sound("fireball_fire"));
+#define SND_NADE_NAPALM_FLY SND_FIREBALL_FLY2
+//SOUND(NADE_NAPALM_FLY, W_Sound("fireball_fly2"));
 
 SOUND(BUFF_LOST, "relics/relic_effect");
 
index 924e23d0c889507a827332e661bd1d2904a7048e..86dcc8e1c791c05bd80cb73501cc16310e6a9d48 100644 (file)
@@ -3,23 +3,23 @@
 #ifdef SVQC
 
 void turret_initparams(entity);
-SOUND(EWheelAttack_FIRE, W_Sound("electro_fire"));
+SOUND(EWheelAttack_FIRE, W_Sound("lasergun_fire"));
 METHOD(EWheelAttack, wr_think, void(entity thiswep, entity actor, .entity weaponentity, int fire)) {
     bool isPlayer = IS_PLAYER(actor);
     if (fire & 1)
-    if (!isPlayer || weapon_prepareattack(thiswep, actor, weaponentity, false, WEP_CVAR_PRI(WEP_ELECTRO, refire))) {
+    if (!isPlayer || weapon_prepareattack(thiswep, actor, weaponentity, false, 1)) {
         if (isPlayer) {
             turret_initparams(actor);
             W_SetupShot_Dir(actor, weaponentity, v_forward, false, 0, SND_EWheelAttack_FIRE, CH_WEAPON_B, 0, DEATH_TURRET_EWHEEL.m_id);
             actor.tur_shotdir_updated = w_shotdir;
             actor.tur_shotorg = w_shotorg;
             actor.tur_head = actor;
-            weapon_thinkf(actor, weaponentity, WFRAME_FIRE1, WEP_CVAR_PRI(WEP_ELECTRO, animtime), w_ready);
+            weapon_thinkf(actor, weaponentity, WFRAME_FIRE1, 0.5, w_ready);
         }
 
         turret_do_updates(actor);
 
-        entity missile = turret_projectile(actor, SND_LASERGUN_FIRE, 1, 0, DEATH_TURRET_EWHEEL.m_id, PROJECTILE_BLASTER, true, true);
+        entity missile = turret_projectile(actor, SND_EWheelAttack_FIRE, 1, 0, DEATH_TURRET_EWHEEL.m_id, PROJECTILE_BLASTER, true, true);
         missile.missile_flags = MIF_SPLASH;
 
         Send_Effect(EFFECT_BLASTER_MUZZLEFLASH, actor.tur_shotorg, actor.tur_shotdir_updated * 1000, 1);
index c1940ad7f65838cffb09dab15466a974a177dad7..ae0130c9073c5249aef3d9518b5c87c81f564a38 100644 (file)
@@ -3,11 +3,11 @@
 #ifdef SVQC
 
 void turret_flac_projectile_think_explode(entity this);
-SOUND(FlacAttack_FIRE, W_Sound("electro_fire"));
+SOUND(FlacAttack_FIRE, W_Sound("hagar_fire"));
 METHOD(FlacAttack, wr_think, void(entity thiswep, entity actor, .entity weaponentity, int fire)) {
     bool isPlayer = IS_PLAYER(actor);
     if (fire & 1)
-    if (!isPlayer || weapon_prepareattack(thiswep, actor, weaponentity, false, WEP_CVAR_PRI(WEP_ELECTRO, refire))) {
+    if (!isPlayer || weapon_prepareattack(thiswep, actor, weaponentity, false, 1)) {
         if (isPlayer) {
             turret_initparams(actor);
             W_SetupShot_Dir(actor, weaponentity, v_forward, false, 0, SND_FlacAttack_FIRE, CH_WEAPON_B, 0, DEATH_TURRET_FLAC.m_id);
@@ -15,12 +15,12 @@ METHOD(FlacAttack, wr_think, void(entity thiswep, entity actor, .entity weaponen
             actor.tur_shotorg = w_shotorg;
             actor.tur_head = actor;
             actor.tur_impacttime = 10;
-            weapon_thinkf(actor, weaponentity, WFRAME_FIRE1, WEP_CVAR_PRI(WEP_ELECTRO, animtime), w_ready);
+            weapon_thinkf(actor, weaponentity, WFRAME_FIRE1, 0.5, w_ready);
         }
 
         turret_tag_fire_update(actor);
 
-        entity proj = turret_projectile(actor, SND_HAGAR_FIRE, 5, 0, DEATH_TURRET_FLAC.m_id, PROJECTILE_HAGAR, true, true);
+        entity proj = turret_projectile(actor, SND_FlacAttack_FIRE, 5, 0, DEATH_TURRET_FLAC.m_id, PROJECTILE_HAGAR, true, true);
         proj.missile_flags = MIF_SPLASH | MIF_PROXY;
         setthink(proj, turret_flac_projectile_think_explode);
         proj.nextthink  = time + actor.tur_impacttime + (random() * 0.01 - random() * 0.01);
index 0fc190a2cb8c4c7b95b357bb69b21dcd6d6d5fc6..1d30f308ef9228fd5e2c821e94197dc4bd423581 100644 (file)
@@ -6,11 +6,11 @@ float autocvar_g_turrets_unit_hellion_shot_speed_gain;
 float autocvar_g_turrets_unit_hellion_shot_speed_max;
 
 void turret_hellion_missile_think(entity this);
-SOUND(HellionAttack_FIRE, W_Sound("electro_fire"));
+SOUND(HellionAttack_FIRE, W_Sound("rocket_fire"));
 METHOD(HellionAttack, wr_think, void(entity thiswep, entity actor, .entity weaponentity, int fire)) {
     bool isPlayer = IS_PLAYER(actor);
     if (fire & 1)
-    if (!isPlayer || weapon_prepareattack(thiswep, actor, weaponentity, false, WEP_CVAR_PRI(WEP_ELECTRO, refire))) {
+    if (!isPlayer || weapon_prepareattack(thiswep, actor, weaponentity, false, 1)) {
         if (isPlayer) {
             turret_initparams(actor);
             W_SetupShot_Dir(actor, weaponentity, v_forward, false, 0, SND_HellionAttack_FIRE, CH_WEAPON_B, 0, DEATH_TURRET_HELLION.m_id);
@@ -18,7 +18,7 @@ METHOD(HellionAttack, wr_think, void(entity thiswep, entity actor, .entity weapo
             actor.tur_shotorg = w_shotorg;
             actor.tur_head = actor;
             actor.shot_radius = 500;
-            weapon_thinkf(actor, weaponentity, WFRAME_FIRE1, WEP_CVAR_PRI(WEP_ELECTRO, animtime), w_ready);
+            weapon_thinkf(actor, weaponentity, WFRAME_FIRE1, 0.5, w_ready);
         }
         if (!isPlayer) {
             if (actor.tur_head.frame != 0)
@@ -27,7 +27,7 @@ METHOD(HellionAttack, wr_think, void(entity thiswep, entity actor, .entity weapo
                 actor.tur_shotorg = gettaginfo(actor.tur_head, gettagindex(actor.tur_head, "tag_fire2"));
         }
 
-        entity missile = turret_projectile(actor, SND_ROCKET_FIRE, 6, 10, DEATH_TURRET_HELLION.m_id, PROJECTILE_ROCKET, false, false);
+        entity missile = turret_projectile(actor, SND_HellionAttack_FIRE, 6, 10, DEATH_TURRET_HELLION.m_id, PROJECTILE_ROCKET, false, false);
         te_explosion (missile.origin);
         setthink(missile, turret_hellion_missile_think);
         missile.nextthink      = time;
index 8a66d098ee9ba30f5637d889a23a602292b9aedf..47220d35c758df8f0d813cd02dd9909221f39334 100644 (file)
@@ -10,21 +10,21 @@ float autocvar_g_turrets_unit_hk_shot_speed_max;
 float autocvar_g_turrets_unit_hk_shot_speed_turnrate;
 
 void turret_hk_missile_think(entity this);
-SOUND(HunterKillerAttack_FIRE, W_Sound("electro_fire"));
+SOUND(HunterKillerAttack_FIRE, W_Sound("rocket_fire"));
 METHOD(HunterKillerAttack, wr_think, void(entity thiswep, entity actor, .entity weaponentity, int fire))
 {
        bool isPlayer = IS_PLAYER(actor);
        if (fire & 1)
-       if (!isPlayer || weapon_prepareattack(thiswep, actor, weaponentity, false, WEP_CVAR_PRI(WEP_ELECTRO, refire))) {
+       if (!isPlayer || weapon_prepareattack(thiswep, actor, weaponentity, false, 1)) {
                if (isPlayer) {
             turret_initparams(actor);
             W_SetupShot_Dir(actor, weaponentity, v_forward, false, 0, SND_HunterKillerAttack_FIRE, CH_WEAPON_B, 0, DEATH_TURRET_HK.m_id);
             actor.tur_shotdir_updated = w_shotdir;
             actor.tur_shotorg = w_shotorg;
             actor.tur_head = actor;
-            weapon_thinkf(actor, weaponentity, WFRAME_FIRE1, WEP_CVAR_PRI(WEP_ELECTRO, animtime), w_ready);
+            weapon_thinkf(actor, weaponentity, WFRAME_FIRE1, 0.5, w_ready);
         }
-        entity missile = turret_projectile(actor, SND_ROCKET_FIRE, 6, 10, DEATH_TURRET_HK.m_id, PROJECTILE_ROCKET, false, false);
+        entity missile = turret_projectile(actor, SND_HunterKillerAttack_FIRE, 6, 10, DEATH_TURRET_HK.m_id, PROJECTILE_ROCKET, false, false);
         te_explosion (missile.origin);
 
         setthink(missile, turret_hk_missile_think);
index 526caccdd7a276b84c57bf37149ddb9a18547947..e40b888b9bd1eb7b053de8380f402860360c1333 100644 (file)
@@ -1,7 +1,7 @@
 #include "mlrs_weapon.qh"
 
 #ifdef SVQC
-SOUND(MLRSTurretAttack_FIRE, W_Sound("electro_fire"));
+SOUND(MLRSTurretAttack_FIRE, W_Sound("rocket_fire"));
 METHOD(MLRSTurretAttack, wr_think, void(entity thiswep, entity actor, .entity weaponentity, int fire))
 {
     bool isPlayer = IS_PLAYER(actor);
@@ -17,7 +17,7 @@ METHOD(MLRSTurretAttack, wr_think, void(entity thiswep, entity actor, .entity we
             weapon_thinkf(actor, weaponentity, WFRAME_FIRE1, 0, w_ready);
         }
         turret_tag_fire_update(actor);
-        entity missile = turret_projectile(actor, SND_ROCKET_FIRE, 6, 10, DEATH_TURRET_MLRS.m_id, PROJECTILE_ROCKET, true, true);
+        entity missile = turret_projectile(actor, SND_MLRSTurretAttack_FIRE, 6, 10, DEATH_TURRET_MLRS.m_id, PROJECTILE_ROCKET, true, true);
         missile.nextthink = time + max(actor.tur_impacttime,(actor.shot_radius * 2) / actor.shot_speed);
         missile.missile_flags = MIF_SPLASH;
         te_explosion (missile.origin);
index be08f4b17c39793c2d4b3085a499ec4f109cdf8d..d24fb0099f0c30aeb1dc2979bfdabdca25cf44d5 100644 (file)
@@ -5,11 +5,12 @@ void beam_think(entity this);
 
 .int fireflag;
 SOUND(PhaserTurretAttack_FIRE, W_Sound("electro_fire"));
+SOUND(PhaserTurretAttack_IMPACT, W_Sound("neximpact"));
 METHOD(PhaserTurretAttack, wr_think, void(entity thiswep, entity actor, .entity weaponentity, int fire))
 {
     bool isPlayer = IS_PLAYER(actor);
     if (fire & 1)
-    if (!isPlayer || weapon_prepareattack(thiswep, actor, weaponentity, false, WEP_CVAR_PRI(WEP_ELECTRO, refire))) {
+    if (!isPlayer || weapon_prepareattack(thiswep, actor, weaponentity, false, 1)) {
         if (isPlayer) {
             turret_initparams(actor);
             W_SetupShot_Dir(actor, weaponentity, v_forward, false, 0, SND_PhaserTurretAttack_FIRE, CH_WEAPON_B, 0, DEATH_TURRET_PHASER.m_id);
@@ -17,7 +18,7 @@ METHOD(PhaserTurretAttack, wr_think, void(entity thiswep, entity actor, .entity
             actor.tur_shotorg = w_shotorg;
             actor.tur_head = actor;
             actor.shot_speed = 1;
-            weapon_thinkf(actor, weaponentity, WFRAME_FIRE1, WEP_CVAR_PRI(WEP_ELECTRO, animtime), w_ready);
+            weapon_thinkf(actor, weaponentity, WFRAME_FIRE1, 0.5, w_ready);
         }
         entity beam = new(PhaserTurret_beam);
         setmodel(beam, MDL_TUR_PHASER_BEAM);
@@ -43,7 +44,7 @@ METHOD(PhaserTurretAttack, wr_think, void(entity thiswep, entity actor, .entity
 
         setattachment(beam, actor.tur_head, "tag_fire");
 
-        soundat (actor, trace_endpos, CH_SHOTS, SND(NEXIMPACT), VOL_BASE, ATTEN_NORM);
+        soundat (actor, trace_endpos, CH_SHOTS, SND(PhaserTurretAttack_IMPACT), VOL_BASE, ATTEN_NORM);
         if (!isPlayer)
         if (actor.tur_head.frame == 0)
             actor.tur_head.frame = 1;
index 5dd6f1e3b4dbb7e42f5ea610e958b32778e374dc..6dc97f75b2348f7341830f18472479e7b1d9e185 100644 (file)
@@ -1,20 +1,20 @@
 #include "plasma_weapon.qh"
 
 #ifdef SVQC
-SOUND(PlasmaAttack_FIRE, W_Sound("electro_fire"));
+SOUND(PlasmaAttack_FIRE, W_Sound("hagar_fire"));
 METHOD(PlasmaAttack, wr_think, void(entity thiswep, entity actor, .entity weaponentity, int fire)) {
        bool isPlayer = IS_PLAYER(actor);
        if (fire & 1)
-       if (!isPlayer || weapon_prepareattack(thiswep, actor, weaponentity, false, WEP_CVAR_PRI(WEP_ELECTRO, refire))) {
+       if (!isPlayer || weapon_prepareattack(thiswep, actor, weaponentity, false, 1)) {
                if (isPlayer) {
             turret_initparams(actor);
             W_SetupShot_Dir(actor, weaponentity, v_forward, false, 0, SND_PlasmaAttack_FIRE, CH_WEAPON_B, 0, DEATH_TURRET_PLASMA.m_id);
             actor.tur_shotdir_updated = w_shotdir;
             actor.tur_shotorg = w_shotorg;
             actor.tur_head = actor;
-            weapon_thinkf(actor, weaponentity, WFRAME_FIRE1, WEP_CVAR_PRI(WEP_ELECTRO, animtime), w_ready);
+            weapon_thinkf(actor, weaponentity, WFRAME_FIRE1, 0.5, w_ready);
         }
-        entity missile = turret_projectile(actor, SND_HAGAR_FIRE, 1, 0, DEATH_TURRET_PLASMA.m_id, PROJECTILE_ELECTRO_BEAM, true, true);
+        entity missile = turret_projectile(actor, SND_PlasmaAttack_FIRE, 1, 0, DEATH_TURRET_PLASMA.m_id, PROJECTILE_ELECTRO_BEAM, true, true);
         missile.missile_flags = MIF_SPLASH;
         Send_Effect(EFFECT_BLASTER_MUZZLEFLASH, actor.tur_shotorg, actor.tur_shotdir_updated * 1000, 1);
        }
index e877ce247e773cc7eb5cd039317d2d95cf5adf18..195b523bc3e6f027ac5f980f0c1e758cddc67a3e 100644 (file)
@@ -7,14 +7,14 @@ SOUND(TeslaCoilTurretAttack_FIRE, W_Sound("electro_fire"));
 METHOD(TeslaCoilTurretAttack, wr_think, void(entity thiswep, entity actor, .entity weaponentity, int fire)) {
     bool isPlayer = IS_PLAYER(actor);
     if (fire & 1)
-    if (!isPlayer || weapon_prepareattack(thiswep, actor, weaponentity, false, WEP_CVAR_PRI(WEP_ELECTRO, refire))) {
+    if (!isPlayer || weapon_prepareattack(thiswep, actor, weaponentity, false, 1)) {
         if (isPlayer) {
             turret_initparams(actor);
             W_SetupShot_Dir(actor, weaponentity, v_forward, false, 0, SND_TeslaCoilTurretAttack_FIRE, CH_WEAPON_B, 0, DEATH_TURRET_TESLA.m_id);
             actor.tur_shotdir_updated = w_shotdir;
             actor.tur_shotorg = w_shotorg;
             actor.tur_head = actor;
-            weapon_thinkf(actor, weaponentity, WFRAME_FIRE1, WEP_CVAR_PRI(WEP_ELECTRO, animtime), w_ready);
+            weapon_thinkf(actor, weaponentity, WFRAME_FIRE1, 0.5, w_ready);
         }
 
         float d = actor.shot_dmg;
index 8e347f962c2cedbd4cd8cefbe22c6368b668a5a1..2b9864bcf8b1d9b7cacef5ccf031ebd8902f9731 100644 (file)
@@ -210,7 +210,7 @@ void walker_fire_rocket(entity this, vector org)
     entity rocket = new(walker_rocket);
     setorigin(rocket, org);
     rocket.solid                         = SOLID_BBOX; // before setsize so it will be linked to the area grid
-    sound (this, CH_WEAPON_A, SND_HAGAR_FIRE, VOL_BASE, ATTEN_NORM);
+    sound (this, CH_WEAPON_A, SND_TUR_WALKER_FIRE, VOL_BASE, ATTEN_NORM);
     setsize (rocket, '-3 -3 -3', '3 3 3'); // give it some size so it can be shot
 
     rocket.owner                         = this;
index 320118c86a60a5132577a22b066cfc0dca771be1..cc565dee271013c774d0d15a9738f592bdb56269 100644 (file)
@@ -2,20 +2,20 @@
 
 #ifdef SVQC
 
-SOUND(WalkerTurretAttack_FIRE, W_Sound("electro_fire"));
+SOUND(WalkerTurretAttack_FIRE, W_Sound("uzi_fire"));
 METHOD(WalkerTurretAttack, wr_think, void(entity thiswep, entity actor, .entity weaponentity, int fire)) {
     bool isPlayer = IS_PLAYER(actor);
     if (fire & 1)
-    if (!isPlayer || weapon_prepareattack(thiswep, actor, weaponentity, false, WEP_CVAR_PRI(WEP_ELECTRO, refire))) {
+    if (!isPlayer || weapon_prepareattack(thiswep, actor, weaponentity, false, 1)) {
         if (isPlayer) {
             turret_initparams(actor);
             W_SetupShot_Dir(actor, weaponentity, v_forward, false, 0, SND_WalkerTurretAttack_FIRE, CH_WEAPON_B, 0, DEATH_TURRET_WALK_GUN.m_id);
             actor.tur_shotdir_updated = w_shotdir;
             actor.tur_shotorg = w_shotorg;
             actor.tur_head = actor;
-            weapon_thinkf(actor, weaponentity, WFRAME_FIRE1, WEP_CVAR_PRI(WEP_ELECTRO, animtime), w_ready);
+            weapon_thinkf(actor, weaponentity, WFRAME_FIRE1, 0.5, w_ready);
         }
-        sound (actor, CH_WEAPON_A, SND_UZI_FIRE, VOL_BASE, ATTEN_NORM);
+        sound (actor, CH_WEAPON_A, SND_WalkerTurretAttack_FIRE, VOL_BASE, ATTEN_NORM);
         fireBullet(actor, weaponentity, actor.tur_shotorg, actor.tur_shotdir_updated, actor.shot_spread, 0, actor.shot_dmg, 0, actor.shot_force, DEATH_TURRET_WALK_GUN.m_id, EFFECT_BULLET);
         Send_Effect(EFFECT_BLASTER_MUZZLEFLASH, actor.tur_shotorg, actor.tur_shotdir_updated * 1000, 1);
     }
index e8c18ed2d5d4a9c514db2d07939860d3c1793f7b..784102d13f85b8fb356bc0fafa1cde5e0f54632c 100644 (file)
@@ -3,6 +3,8 @@
 #ifdef SVQC
 
 void racer_fire_rocket(entity this, entity player, vector org, vector dir, entity trg);
+SOUND(RacerAttack_LASER_FIRE, W_Sound("lasergun_fire"));
+SOUND(RacerAttack_ROCKET_FIRE, W_Sound("rocket_fire"));
 METHOD(RacerAttack, wr_think, void(entity thiswep, entity actor, .entity weaponentity, int fire))
 {
     bool isPlayer = IS_PLAYER(actor);
@@ -30,7 +32,7 @@ METHOD(RacerAttack, wr_think, void(entity thiswep, entity actor, .entity weapone
         if (isPlayer) W_SetupShot_Dir(player, weaponentity, v_forward, false, 0, SND_Null, CH_WEAPON_B, 0, DEATH_VH_WAKI_GUN.m_id);
         vector org = w_shotorg;
         vector dir = w_shotdir;
-        entity bolt = vehicles_projectile(((veh) ? veh : player), EFFECT_RACER_MUZZLEFLASH, SND_LASERGUN_FIRE,
+        entity bolt = vehicles_projectile(((veh) ? veh : player), EFFECT_RACER_MUZZLEFLASH, SND_RacerAttack_LASER_FIRE,
                                org, normalize(v_forward + randomvec() * autocvar_g_vehicle_racer_cannon_spread) * autocvar_g_vehicle_racer_cannon_speed,
                                autocvar_g_vehicle_racer_cannon_damage, autocvar_g_vehicle_racer_cannon_radius, autocvar_g_vehicle_racer_cannon_force,  0,
                                DEATH_VH_WAKI_GUN.m_id, PROJECTILE_WAKICANNON, 0, true, true, player);
@@ -58,7 +60,7 @@ void racer_rocket_groundhugger(entity this);
 
 void racer_fire_rocket(entity this, entity player, vector org, vector dir, entity trg)
 {
-    entity rocket = vehicles_projectile(this, EFFECT_RACER_ROCKETLAUNCH, SND_ROCKET_FIRE,
+    entity rocket = vehicles_projectile(this, EFFECT_RACER_ROCKETLAUNCH, SND_RacerAttack_ROCKET_FIRE,
                            org, dir * autocvar_g_vehicle_racer_rocket_speed,
                            autocvar_g_vehicle_racer_rocket_damage, autocvar_g_vehicle_racer_rocket_radius, autocvar_g_vehicle_racer_rocket_force, 3,
                            DEATH_VH_WAKI_ROCKET.m_id, PROJECTILE_WAKIROCKET, 20, false, false, player);
index dc2f293d65fd533e0582bee09e38b0cf8aea3939..aaf171ba7c200f60ba75749cc5fbfe1a5bc3468c 100644 (file)
@@ -2,6 +2,7 @@
 
 #ifdef SVQC
 
+SOUND(RaptorCannon_FIRE, W_Sound("lasergun_fire"));
 METHOD(RaptorCannon, wr_think, void(entity thiswep, entity actor, .entity weaponentity, int fire)) {
     bool isPlayer = IS_PLAYER(actor);
     entity player = isPlayer ? actor : actor.owner;
@@ -21,14 +22,14 @@ METHOD(RaptorCannon, wr_think, void(entity thiswep, entity actor, .entity weapon
             veh.vehicle_energy -= autocvar_g_vehicle_raptor_cannon_cost;
             actor.cnt = time;
         }
-        vehicles_projectile(veh, EFFECT_RAPTOR_MUZZLEFLASH, SND_LASERGUN_FIRE,
+        vehicles_projectile(veh, EFFECT_RAPTOR_MUZZLEFLASH, SND_RaptorCannon_FIRE,
                                org, normalize(dir + randomvec() * autocvar_g_vehicle_raptor_cannon_spread) * autocvar_g_vehicle_raptor_cannon_speed,
                                autocvar_g_vehicle_raptor_cannon_damage, autocvar_g_vehicle_raptor_cannon_radius, autocvar_g_vehicle_raptor_cannon_force,  0,
                                DEATH_VH_RAPT_CANNON.m_id, PROJECTILE_RAPTORCANNON, 0, true, true, player);
         weapon_thinkf(player, weaponentity, WFRAME_FIRE1, 0, w_ready);
     }
 }
-METHOD(RaptorCannon, wr_checkammo1, bool(RacerAttack thiswep, entity actor, .entity weaponentity)) {
+METHOD(RaptorCannon, wr_checkammo1, bool(RaptorCannon thiswep, entity actor, .entity weaponentity)) {
     bool isPlayer = IS_PLAYER(actor);
     entity player = isPlayer ? actor : actor.owner;
     entity veh = player.vehicle;
index be1229da29faa290854d1c8cfd7617db3feb3813..b61c116697e51091aa050b6afadca6b0126565ef 100644 (file)
@@ -271,7 +271,7 @@ bool spiderbot_frame(entity this, float dt)
                        fireBullet(this, weaponentity, v, v_forward, autocvar_g_vehicle_spiderbot_minigun_spread, autocvar_g_vehicle_spiderbot_minigun_solidpenetration,
                                autocvar_g_vehicle_spiderbot_minigun_damage, 0, autocvar_g_vehicle_spiderbot_minigun_force, DEATH_VH_SPID_MINIGUN.m_id, EFFECT_BULLET);
 
-                       sound (gun, CH_WEAPON_A, SND_UZI_FIRE, VOL_BASE, ATTEN_NORM);
+                       sound (gun, CH_WEAPON_A, SND_VEH_SPIDERBOT_MINIGUN_FIRE, VOL_BASE, ATTEN_NORM);
                        //trailparticles(this, _particleeffectnum("spiderbot_minigun_trail"), v, trace_endpos);
                        Send_Effect(EFFECT_SPIDERBOT_MINIGUN_MUZZLEFLASH, v, v_forward * 2500, 1);
 
index fdeddc47bfbcb5d2956d7fa7c6125c94aa64130d..6ef76f5d3b37a411dde79c4631c80d76bd538bb8 100644 (file)
@@ -183,7 +183,7 @@ void spiderbot_rocket_do(entity this)
     switch(STAT(VEHICLESTAT_W2MODE, this))
     {
         case SBRM_VOLLY:
-            rocket = vehicles_projectile(this, EFFECT_SPIDERBOT_ROCKETLAUNCH, SND_ROCKET_FIRE,
+            rocket = vehicles_projectile(this, EFFECT_SPIDERBOT_ROCKETLAUNCH, SND_VEH_SPIDERBOT_ROCKET_FIRE,
                                    v, normalize(randomvec() * autocvar_g_vehicle_spiderbot_rocket_spread + v_forward) * autocvar_g_vehicle_spiderbot_rocket_speed,
                                    autocvar_g_vehicle_spiderbot_rocket_damage, autocvar_g_vehicle_spiderbot_rocket_radius, autocvar_g_vehicle_spiderbot_rocket_force, 1,
                                    DEATH_VH_SPID_ROCKET.m_id, PROJECTILE_SPIDERROCKET, autocvar_g_vehicle_spiderbot_rocket_health, false, true, this.owner);
@@ -197,7 +197,7 @@ void spiderbot_rocket_do(entity this)
                 this.wait = -10;
             break;
         case SBRM_GUIDE:
-            rocket = vehicles_projectile(this, EFFECT_SPIDERBOT_ROCKETLAUNCH, SND_ROCKET_FIRE,
+            rocket = vehicles_projectile(this, EFFECT_SPIDERBOT_ROCKETLAUNCH, SND_VEH_SPIDERBOT_ROCKET_FIRE,
                                    v, normalize(v_forward) * autocvar_g_vehicle_spiderbot_rocket_speed,
                                    autocvar_g_vehicle_spiderbot_rocket_damage, autocvar_g_vehicle_spiderbot_rocket_radius, autocvar_g_vehicle_spiderbot_rocket_force, 1,
                                    DEATH_VH_SPID_ROCKET.m_id, PROJECTILE_SPIDERROCKET, autocvar_g_vehicle_spiderbot_rocket_health, false, false, this.owner);
@@ -209,7 +209,7 @@ void spiderbot_rocket_do(entity this)
 
         break;
         case SBRM_ARTILLERY:
-            rocket = vehicles_projectile(this, EFFECT_SPIDERBOT_ROCKETLAUNCH, SND_ROCKET_FIRE,
+            rocket = vehicles_projectile(this, EFFECT_SPIDERBOT_ROCKETLAUNCH, SND_VEH_SPIDERBOT_ROCKET_FIRE,
                                    v, normalize(v_forward) * autocvar_g_vehicle_spiderbot_rocket_speed,
                                    autocvar_g_vehicle_spiderbot_rocket_damage, autocvar_g_vehicle_spiderbot_rocket_radius, autocvar_g_vehicle_spiderbot_rocket_force, 1,
                                    DEATH_VH_SPID_ROCKET.m_id, PROJECTILE_SPIDERROCKET, autocvar_g_vehicle_spiderbot_rocket_health, false, true, this.owner);
index 5e139a6b2b80c2351feaa695c17e5ed01979921b..5e2d31188c8c7949deb99c374018085261d9fa22 100644 (file)
@@ -136,7 +136,7 @@ void W_Arc_Bolt_Touch(entity this, entity toucher)
 
 void W_Arc_Attack_Bolt(Weapon thiswep, entity actor, .entity weaponentity, int fire)
 {
-       W_SetupShot(actor, weaponentity, false, 2, SND_ELECTRO_FIRE2, CH_WEAPON_A, WEP_CVAR(WEP_ARC, bolt_damage), thiswep.m_id | HITTYPE_SECONDARY);
+       W_SetupShot(actor, weaponentity, false, 2, SND_ARC_BOLT_FIRE, CH_WEAPON_A, WEP_CVAR(WEP_ARC, bolt_damage), thiswep.m_id | HITTYPE_SECONDARY);
 
        W_MuzzleFlash(thiswep, actor, weaponentity, w_shotorg, w_shotdir);
 
@@ -762,7 +762,7 @@ METHOD(Arc, wr_impacteffect, void(entity thiswep, entity actor))
        {
                vector org2 = w_org + w_backoff * 2;
                pointparticles(EFFECT_ELECTRO_IMPACT, org2, w_backoff * 1000, 1);
-               if(!w_issilent) { sound(actor, CH_SHOTS, SND_ELECTRO_IMPACT, VOL_BASE, ATTN_NORM); }
+               if(!w_issilent) { sound(actor, CH_SHOTS, SND_ARC_BOLT_IMPACT, VOL_BASE, ATTN_NORM); }
        }
 }
 
index c8dc3159211bad85e72e6ac3ebec4b9562dc70de..f6e8d9757e507744f2bb1941a2c46c696ecf6b04 100644 (file)
@@ -1,5 +1,19 @@
 #pragma once
 
+#ifdef GAMEQC
+MODEL(ARC_MUZZLEFLASH, "models/flash.md3");
+MODEL(ARC_VIEW, W_Model("h_arc.iqm"));
+MODEL(ARC_WORLD, W_Model("v_arc.md3"));
+MODEL(ARC_ITEM, W_Model("g_arc.md3"));
+
+SOUND(ARC_BOLT_FIRE, W_Sound("electro_fire2"));
+SOUND(ARC_BOLT_IMPACT, W_Sound("electro_impact"));
+SOUND(ARC_FIRE, W_Sound("arc_fire"));
+SOUND(ARC_LOOP, W_Sound("arc_loop"));
+SOUND(ARC_LOOP_OVERHEAT, W_Sound("arc_loop_overheat"));
+SOUND(ARC_STOP, W_Sound("arc_stop"));
+#endif
+
 CLASS(Arc, Weapon)
 /* spawnfunc */ ATTRIB(Arc, m_canonical_spawnfunc, string, "weapon_arc");
 /* ammotype  */ ATTRIB(Arc, ammo_type, Resource, RES_CELLS);
index 63e735b3b15cd158182475f3715f89526dc910a6..d426ae51e971b97ddc22aea65bfa1f36668368aa 100644 (file)
@@ -47,7 +47,7 @@ void W_Blaster_Attack(entity actor, .entity weaponentity)
        vector s_forward = v_forward * cos(atk_shotangle) + v_up * sin(atk_shotangle);
        int atk_deathtype = WEP_BLASTER.m_id;
 
-       W_SetupShot_Dir(actor, weaponentity, s_forward, false, 3, SND_LASERGUN_FIRE, CH_WEAPON_B, atk_damage, atk_deathtype);
+       W_SetupShot_Dir(actor, weaponentity, s_forward, false, 3, SND_BLASTER_FIRE, CH_WEAPON_B, atk_damage, atk_deathtype);
        W_MuzzleFlash(WEP_BLASTER, actor, weaponentity, w_shotorg, w_shotdir);
 
        entity missile = new(blasterbolt);
index 74c1fcedccb987fd7f2e8569546b10bd8e4a46d0..1bbb8d5369686ef488688676fa8b07deab176fae 100644 (file)
@@ -1,5 +1,13 @@
 #pragma once
 
+#ifdef GAMEQC
+MODEL(BLASTER_VIEW, W_Model("h_laser.iqm"));
+MODEL(BLASTER_WORLD, W_Model("v_laser.md3"));
+MODEL(BLASTER_ITEM, W_Model("g_laser.md3"));
+
+SOUND(BLASTER_FIRE, W_Sound("lasergun_fire"));
+#endif
+
 CLASS(Blaster, Weapon)
 /* spawnfunc */ ATTRIB(Blaster, m_canonical_spawnfunc, string, "weapon_blaster");
 /* ammotype  */ //ATTRIB(Blaster, ammo_type, Resource, RES_NONE);
index c082ac02daad6b3633a7ce54e866c2cfa97eb032..d75418981305de9bd64e25463b162fd3ebb565b0 100644 (file)
@@ -1,5 +1,17 @@
 #pragma once
 
+#ifdef GAMEQC
+MODEL(CRYLINK_VIEW, W_Model("h_crylink.iqm"));
+MODEL(CRYLINK_WORLD, W_Model("v_crylink.md3"));
+MODEL(CRYLINK_ITEM, W_Model("g_crylink.md3"));
+
+SOUND(CRYLINK_FIRE2, W_Sound("crylink_fire2"));
+SOUND(CRYLINK_FIRE, W_Sound("crylink_fire"));
+SOUND(CRYLINK_IMPACT2, W_Sound("crylink_impact2"));
+SOUND(CRYLINK_IMPACT, W_Sound("crylink_impact"));
+SOUND(CRYLINK_LINKJOIN, W_Sound("crylink_linkjoin"));
+#endif
+
 CLASS(Crylink, Weapon)
 /* spawnfunc */ ATTRIB(Crylink, m_canonical_spawnfunc, string, "weapon_crylink");
 /* ammotype  */ ATTRIB(Crylink, ammo_type, Resource, RES_CELLS);
index d85cd46349438435b85490144af1b26ce96834a5..d2c95fde5a65c835de685f11740a7abd34577eff 100644 (file)
@@ -269,7 +269,7 @@ void W_Devastator_Think(entity this)
                        {
                                Send_Effect(EFFECT_ROCKET_GUIDE, this.origin, this.velocity, 1);
                                // TODO add a better sound here
-                               sound(this.realowner, CH_WEAPON_B, SND_ROCKET_MODE, VOL_BASE, ATTN_NORM);
+                               sound(this.realowner, CH_WEAPON_B, SND_DEVASTATOR_MODE, VOL_BASE, ATTN_NORM);
                                this.count = 1;
                        }
                }
@@ -313,7 +313,7 @@ void W_Devastator_Attack(Weapon thiswep, entity actor, .entity weaponentity, int
 {
        W_DecreaseAmmo(thiswep, actor, WEP_CVAR(WEP_DEVASTATOR, ammo), weaponentity);
 
-       W_SetupShot_ProjectileSize(actor, weaponentity, '-3 -3 -3', '3 3 3', false, 5, SND_ROCKET_FIRE, CH_WEAPON_A, WEP_CVAR(WEP_DEVASTATOR, damage), thiswep.m_id);
+       W_SetupShot_ProjectileSize(actor, weaponentity, '-3 -3 -3', '3 3 3', false, 5, SND_DEVASTATOR_FIRE, CH_WEAPON_A, WEP_CVAR(WEP_DEVASTATOR, damage), thiswep.m_id);
        W_MuzzleFlash(thiswep, actor, weaponentity, w_shotorg, w_shotdir);
 
        entity missile = WarpZone_RefSys_SpawnSameRefSys(actor);
@@ -514,7 +514,7 @@ METHOD(Devastator, wr_think, void(entity thiswep, entity actor, .entity weaponen
                                }
                        });
                        if(rockfound)
-                               sound(actor, CH_WEAPON_B, SND_ROCKET_DET, VOL_BASE, ATTN_NORM);
+                               sound(actor, CH_WEAPON_B, SND_DEVASTATOR_DET, VOL_BASE, ATTN_NORM);
                }
        }
 }
index 2d69ae0dac623f00c0970b9ede8a7637765784df..3d3c4893e1229b5ef374988dec2a702794448568 100644 (file)
@@ -1,5 +1,17 @@
 #pragma once
 
+#ifdef GAMEQC
+MODEL(DEVASTATOR_MUZZLEFLASH, "models/flash.md3");
+MODEL(DEVASTATOR_VIEW, W_Model("h_rl.iqm"));
+MODEL(DEVASTATOR_WORLD, W_Model("v_rl.md3"));
+MODEL(DEVASTATOR_ITEM, W_Model("g_rl.md3"));
+
+SOUND(DEVASTATOR_DET, W_Sound("rocket_det"));
+SOUND(DEVASTATOR_FIRE, W_Sound("rocket_fire"));
+SOUND(DEVASTATOR_FLY, W_Sound("rocket_fly"));
+SOUND(DEVASTATOR_MODE, W_Sound("rocket_mode"));
+#endif
+
 CLASS(Devastator, Weapon)
 /* spawnfunc */ ATTRIB(Devastator, m_canonical_spawnfunc, string, "weapon_devastator");
 /* ammotype  */ ATTRIB(Devastator, ammo_type, Resource, RES_ROCKETS);
index 4b79c5889083b1550926438103640dc196cc5188..72d946e4b4f1c8e6e84bdf4c70b262b524c71116 100644 (file)
@@ -1,5 +1,18 @@
 #pragma once
 
+#ifdef GAMEQC
+MODEL(ELECTRO_VIEW, W_Model("h_electro.iqm"));
+MODEL(ELECTRO_WORLD, W_Model("v_electro.md3"));
+MODEL(ELECTRO_ITEM, W_Model("g_electro.md3"));
+
+SOUND(ELECTRO_BOUNCE, W_Sound("electro_bounce"));
+SOUND(ELECTRO_FIRE2, W_Sound("electro_fire2"));
+SOUND(ELECTRO_FIRE, W_Sound("electro_fire"));
+SOUND(ELECTRO_FLY, W_Sound("electro_fly"));
+SOUND(ELECTRO_IMPACT, W_Sound("electro_impact"));
+SOUND(ELECTRO_IMPACT_COMBO, W_Sound("electro_impact_combo"));
+#endif
+
 CLASS(Electro, Weapon)
 /* spawnfunc */ ATTRIB(Electro, m_canonical_spawnfunc, string, "weapon_electro");
 /* ammotype  */ ATTRIB(Electro, ammo_type, Resource, RES_CELLS);
index 216791dd641d308d78ac2db97c011f0273fd53f7..018629f858a5d55b92738403a80e53791aa3d8ea 100644 (file)
@@ -1,5 +1,19 @@
 #pragma once
 
+#ifdef GAMEQC
+MODEL(FIREBALL_SPHERE, "models/sphere/sphere.md3");
+MODEL(FIREBALL_VIEW, W_Model("h_fireball.iqm"));
+MODEL(FIREBALL_WORLD, W_Model("v_fireball.md3"));
+MODEL(FIREBALL_ITEM, W_Model("g_fireball.md3"));
+
+SOUND(FIREBALL_FIRE2, W_Sound("fireball_fire2"));
+SOUND(FIREBALL_FIRE, W_Sound("fireball_fire"));
+SOUND(FIREBALL_FLY2, W_Sound("fireball_fly2"));
+SOUND(FIREBALL_FLY, W_Sound("fireball_fly"));
+SOUND(FIREBALL_IMPACT2, W_Sound("fireball_impact2"));
+SOUND(FIREBALL_PREFIRE2, W_Sound("fireball_prefire2"));
+#endif
+
 CLASS(Fireball, Weapon)
 /* spawnfunc */ ATTRIB(Fireball, m_canonical_spawnfunc, string, "weapon_fireball");
 /* ammotype  */ //ATTRIB(Fireball, ammo_type, Resource, RES_NONE);
index 15d8203d891f325e6db0b95d8af57908934c2726..9b588fef61b0920bf7221f95df6a57b4e5677efd 100644 (file)
@@ -485,14 +485,7 @@ METHOD(Hagar, wr_impacteffect, void(entity thiswep, entity actor))
        vector org2 = w_org + w_backoff * 2;
        pointparticles(EFFECT_HAGAR_EXPLODE, org2, '0 0 0', 1);
        if(!w_issilent)
-       {
-               if(w_random<0.15)
-                       sound(actor, CH_SHOTS, SND_HAGEXP1, VOL_BASE, ATTN_NORM);
-               else if(w_random<0.7)
-                       sound(actor, CH_SHOTS, SND_HAGEXP2, VOL_BASE, ATTN_NORM);
-               else
-                       sound(actor, CH_SHOTS, SND_HAGEXP3, VOL_BASE, ATTN_NORM);
-       }
+               sound(actor, CH_SHOTS, SND_HAGEXP_RANDOM(w_random), VOL_BASE, ATTN_NORM);
 }
 
 #endif
index b460958d9eb5a9e0bb6018e078b24ef890e60a42..2917adebd54ae4c859dda7735f4d769f1c6e52b6 100644 (file)
@@ -1,5 +1,21 @@
 #pragma once
 
+#ifdef GAMEQC
+MODEL(HAGAR_VIEW, W_Model("h_hagar.iqm"));
+MODEL(HAGAR_WORLD, W_Model("v_hagar.md3"));
+MODEL(HAGAR_ITEM, W_Model("g_hagar.md3"));
+
+SOUND(HAGAR_BEEP, W_Sound("hagar_beep"));
+SOUND(HAGAR_FIRE, W_Sound("hagar_fire"));
+SOUND(HAGAR_LOAD, W_Sound("hagar_load"));
+SOUND(HAGEXP1, W_Sound("hagexp1"));
+SOUND(HAGEXP2, W_Sound("hagexp2"));
+SOUND(HAGEXP3, W_Sound("hagexp3"));
+Sound SND_HAGEXP_RANDOM(float rnd) {
+    return REGISTRY_GET(Sounds, SND_HAGEXP1.m_id + rint(rnd * 2));
+}
+#endif
+
 CLASS(Hagar, Weapon)
 /* spawnfunc */ ATTRIB(Hagar, m_canonical_spawnfunc, string, "weapon_hagar");
 /* ammotype  */ ATTRIB(Hagar, ammo_type, Resource, RES_ROCKETS);
index 0b30d037f907f429c087e02d48ebeb7d6e69ca8b..f1024748ac4e96a44782b024aef530cd188673a7 100644 (file)
@@ -34,7 +34,7 @@ void W_HLAC_Attack(Weapon thiswep, entity actor, .entity weaponentity)
        if(IS_DUCKED(actor))
                spread = spread * WEP_CVAR_PRI(WEP_HLAC, spread_crouchmod);
 
-       W_SetupShot(actor, weaponentity, false, 3, SND_LASERGUN_FIRE, CH_WEAPON_A, WEP_CVAR_PRI(WEP_HLAC, damage), thiswep.m_id);
+       W_SetupShot(actor, weaponentity, false, 3, SND_HLAC_FIRE, CH_WEAPON_A, WEP_CVAR_PRI(WEP_HLAC, damage), thiswep.m_id);
        W_MuzzleFlash(thiswep, actor, weaponentity, w_shotorg, w_shotdir);
        if(!autocvar_g_norecoil)
        {
@@ -81,7 +81,7 @@ void W_HLAC_Attack2(Weapon thiswep, entity actor, .entity weaponentity)
        if(IS_DUCKED(actor))
                spread = spread * WEP_CVAR_SEC(WEP_HLAC, spread_crouchmod);
 
-       W_SetupShot(actor, weaponentity, false, 3, SND_LASERGUN_FIRE, CH_WEAPON_A, WEP_CVAR_SEC(WEP_HLAC, damage) * WEP_CVAR_SEC(WEP_HLAC, shots), thiswep.m_id | HITTYPE_SECONDARY);
+       W_SetupShot(actor, weaponentity, false, 3, SND_HLAC_FIRE, CH_WEAPON_A, WEP_CVAR_SEC(WEP_HLAC, damage) * WEP_CVAR_SEC(WEP_HLAC, shots), thiswep.m_id | HITTYPE_SECONDARY);
        W_MuzzleFlash(thiswep, actor, weaponentity, w_shotorg, w_shotdir);
        W_DecreaseAmmo(thiswep, actor, WEP_CVAR_SEC(WEP_HLAC, ammo), weaponentity);
 
index e5b25c91b1f3ea87329d58e56fa5721ce9379120..5e1753e21318e486f03759c24f06a3bd1641dcaa 100644 (file)
@@ -1,5 +1,13 @@
 #pragma once
 
+#ifdef GAMEQC
+MODEL(HLAC_VIEW, W_Model("h_hlac.iqm"));
+MODEL(HLAC_WORLD, W_Model("v_hlac.md3"));
+MODEL(HLAC_ITEM, W_Model("g_hlac.md3"));
+
+SOUND(HLAC_FIRE, W_Sound("lasergun_fire"));
+#endif
+
 CLASS(HLAC, Weapon)
 /* spawnfunc */ ATTRIB(HLAC, m_canonical_spawnfunc, string, "weapon_hlac");
 /* ammotype  */ ATTRIB(HLAC, ammo_type, Resource, RES_CELLS);
index a5d2dc69e01dac21316bbc4ee2a815d1960a1bdc..b0c7a0c1c32d78b87622d9e7d9e52faeec883edc 100644 (file)
@@ -269,7 +269,6 @@ float autocvar_cl_grapplehook_alpha = 1;
 void Draw_CylindricLine(vector from, vector to, float thickness, string texture, float aspect, float shift, vector rgb, float theAlpha, float drawflag, vector vieworg);
 
 entityclass(Hook);
-classfield(Hook) .entity HookType; // ENT_CLIENT_*
 classfield(Hook) .vector origin;
 classfield(Hook) .vector velocity;
 classfield(Hook) .float HookSilent;
@@ -292,12 +291,9 @@ void Draw_GrapplingHook_trace_callback(vector start, vector hit, vector end)
 classfield(Hook) .float teleport_time;
 void Draw_GrapplingHook(entity this)
 {
-       vector a, b, atrans;
+       vector a, b;
        string tex;
        vector rgb;
-       float t;
-       vector vs;
-       float intensity, offset;
 
        if(this.teleport_time)
        if(time > this.teleport_time)
@@ -309,80 +305,33 @@ void Draw_GrapplingHook(entity this)
        InterpolateOrigin_Do(this);
 
        int s = W_GunAlign(viewmodels[this.cnt], STAT(GUNALIGN)) - 1;
-
-       switch(this.HookType)
-       {
-               default:
-               case NET_ENT_CLIENT_HOOK:
-                       vs = hook_shotorigin[s];
-                       break;
-               case NET_ENT_CLIENT_ARC_BEAM:
-                       vs = lightning_shotorigin[s];
-                       break;
-       }
+       vector vs = hook_shotorigin[s];
 
        if((this.owner.sv_entnum == player_localentnum - 1))
        {
-               switch(this.HookType)
-               {
-                       default:
-                       case NET_ENT_CLIENT_HOOK:
-                               if(autocvar_chase_active)
-                                       a = csqcplayer.origin + csqcplayer.view_ofs;
-                               else
-                                       a = view_origin + view_forward * vs.x + view_right * -vs.y + view_up * vs.z;
-                               b = this.origin;
-                               break;
-                       case NET_ENT_CLIENT_ARC_BEAM:
-                               if(this.HookRange)
-                                       b = view_origin + view_forward * this.HookRange;
-                               else
-                                       b = view_origin + view_forward * vlen(this.velocity - this.origin); // honor original length of beam!
-                               WarpZone_TraceLine(view_origin, b, MOVE_NORMAL, NULL);
-                               b = WarpZone_UnTransformOrigin(WarpZone_trace_transform, trace_endpos);
-                               a = view_origin + view_forward * vs.x + view_right * -vs.y + view_up * vs.z;
-                               break;
-               }
+               if(autocvar_chase_active)
+                       a = csqcplayer.origin + csqcplayer.view_ofs;
+               else
+                       a = view_origin + view_forward * vs.x + view_right * -vs.y + view_up * vs.z;
+               b = this.origin;
        }
        else
        {
-               switch(this.HookType)
-               {
-                       default:
-                       case NET_ENT_CLIENT_HOOK:
-                               a = this.velocity;
-                               b = this.origin;
-                               break;
-                       case NET_ENT_CLIENT_ARC_BEAM:
-                               a = this.origin;
-                               b = this.velocity;
-                               break;
-               }
+               a = this.velocity;
+               b = this.origin;
        }
 
-       t = entcs_GetTeamColor(this.owner.sv_entnum);
+       int t = entcs_GetTeamColor(this.owner.sv_entnum);
 
-       switch(this.HookType)
+       float intensity = autocvar_cl_grapplehook_alpha;
+       float offset = 0;
+       switch(t)
        {
-               default:
-               case NET_ENT_CLIENT_HOOK:
-                       intensity = autocvar_cl_grapplehook_alpha;
-                       offset = 0;
-                       switch(t)
-                       {
-                               case NUM_TEAM_1: tex = "particles/hook_red"; rgb = '1 0.3 0.3'; break;
-                               case NUM_TEAM_2: tex = "particles/hook_blue"; rgb = '0.3 0.3 1'; break;
-                               case NUM_TEAM_3: tex = "particles/hook_yellow"; rgb = '1 1 0.3'; break;
-                               case NUM_TEAM_4: tex = "particles/hook_pink"; rgb = '1 0.3 1'; break;
-                               default: tex = "particles/hook_white"; rgb = entcs_GetColor(this.sv_entnum - 1); break;
-                       }
-                       break;
-               case NET_ENT_CLIENT_ARC_BEAM: // todo
-                       intensity = bound(0.2, 1 + Noise_Pink(this, frametime) * 1 + Noise_Burst(this, frametime, 0.03) * 0.3, 2);
-                       offset = Noise_Brown(this, frametime) * 10;
-                       tex = "particles/lgbeam";
-                       rgb = '1 1 1';
-                       break;
+               case NUM_TEAM_1: tex = "particles/hook_red"; rgb = '1 0.3 0.3'; break;
+               case NUM_TEAM_2: tex = "particles/hook_blue"; rgb = '0.3 0.3 1'; break;
+               case NUM_TEAM_3: tex = "particles/hook_yellow"; rgb = '1 1 0.3'; break;
+               case NUM_TEAM_4: tex = "particles/hook_pink"; rgb = '1 0.3 1'; break;
+               default: tex = "particles/hook_white"; rgb = entcs_GetColor(this.sv_entnum - 1); break;
        }
 
        MUTATOR_CALLHOOK(DrawGrapplingHook, this, tex, rgb, t);
@@ -393,39 +342,20 @@ void Draw_GrapplingHook(entity this)
        Draw_GrapplingHook_trace_callback_rnd = offset;
        Draw_GrapplingHook_trace_callback_rgb = rgb;
        Draw_GrapplingHook_trace_callback_a = intensity;
-       WarpZone_TraceBox_ThroughZone(a, '0 0 0', '0 0 0', b, ((this.HookType == NET_ENT_CLIENT_HOOK) ? MOVE_NOTHING : MOVE_NORMAL), NULL, NULL, Draw_GrapplingHook_trace_callback);
+       WarpZone_TraceBox_ThroughZone(a, '0 0 0', '0 0 0', b, MOVE_NOTHING, NULL, NULL, Draw_GrapplingHook_trace_callback);
        Draw_GrapplingHook_trace_callback_tex = string_null;
 
-       atrans = WarpZone_TransformOrigin(WarpZone_trace_transform, a);
+       vector atrans = WarpZone_TransformOrigin(WarpZone_trace_transform, a);
 
-       switch(this.HookType)
+       if(vdist(trace_endpos - atrans, >, 0.5))
        {
-               default:
-               case NET_ENT_CLIENT_HOOK:
-                       if(vdist(trace_endpos - atrans, >, 0.5))
-                       {
-                               setorigin(this, trace_endpos); // hook endpoint!
-                               this.angles = vectoangles(trace_endpos - atrans);
-                               this.drawmask = MASK_NORMAL;
-                       }
-                       else
-                       {
-                               this.drawmask = 0;
-                       }
-                       break;
-               case NET_ENT_CLIENT_ARC_BEAM:
-                       setorigin(this, a); // beam origin!
-                       break;
+               setorigin(this, trace_endpos); // hook endpoint!
+               this.angles = vectoangles(trace_endpos - atrans);
+               this.drawmask = MASK_NORMAL;
        }
-
-       switch(this.HookType)
+       else
        {
-               default:
-               case NET_ENT_CLIENT_HOOK:
-                       break;
-               case NET_ENT_CLIENT_ARC_BEAM:
-                       pointparticles(EFFECT_ARC_LIGHTNING2, trace_endpos, normalize(atrans - trace_endpos), frametime * intensity); // todo: new effect
-                       break;
+               this.drawmask = 0;
        }
 }
 
@@ -443,8 +373,6 @@ void Remove_GrapplingHook(entity this)
 
 NET_HANDLE(ENT_CLIENT_HOOK, bool bIsNew)
 {
-       this.HookType = NET_ENT_CLIENT_HOOK;
-
        int sf = ReadByte();
 
        this.HookSilent = (sf & 0x80);
@@ -461,16 +389,7 @@ NET_HANDLE(ENT_CLIENT_HOOK, bool bIsNew)
                if(myowner == player_localentnum)
                        viewmodels[slot].hook = this;
                this.cnt = slot;
-               switch(this.HookType)
-               {
-                       default:
-                       case NET_ENT_CLIENT_HOOK:
-                               this.HookRange = 0;
-                               break;
-                       case NET_ENT_CLIENT_ARC_BEAM:
-                               this.HookRange = ReadCoord();
-                               break;
-               }
+               this.HookRange = 0;
        }
        if(sf & 2)
        {
@@ -490,18 +409,8 @@ NET_HANDLE(ENT_CLIENT_HOOK, bool bIsNew)
                IL_PUSH(g_drawables, this);
                this.entremove = Remove_GrapplingHook;
 
-               switch(this.HookType)
-               {
-                       default:
-                       case NET_ENT_CLIENT_HOOK:
-                               // for the model
-                               setmodel(this, MDL_HOOK);
-                               this.drawmask = MASK_NORMAL;
-                               break;
-                       case NET_ENT_CLIENT_ARC_BEAM:
-                               sound (this, CH_SHOTS_SINGLE, SND_LGBEAM_FLY, VOL_BASE, ATTEN_NORM);
-                               break;
-               }
+               setmodel(this, MDL_HOOK);
+               this.drawmask = MASK_NORMAL;
        }
 
        this.teleport_time = time + 10;
index 5ca68d1fa972ff346fa434376acc24bf5c7c98c1..2786c664267c496ebd40d55dd5cb1027d7a20d0a 100644 (file)
@@ -1,5 +1,17 @@
 #pragma once
 
+#ifdef GAMEQC
+MODEL(HOOK, "models/hook.md3");
+MODEL(HOOK_VIEW, W_Model("h_hookgun.iqm"));
+MODEL(HOOK_WORLD, W_Model("v_hookgun.md3"));
+MODEL(HOOK_ITEM, W_Model("g_hookgun.md3"));
+
+SOUND(HOOKBOMB_FIRE, W_Sound("hookbomb_fire"));
+SOUND(HOOKBOMB_IMPACT, W_Sound("hookbomb_impact"));
+SOUND(HOOK_FIRE, W_Sound("hook_fire"));
+SOUND(HOOK_IMPACT, W_Sound("hook_impact"));
+#endif
+
 CLASS(Hook, Weapon)
 /* spawnfunc */ ATTRIB(Hook, m_canonical_spawnfunc, string, "weapon_hook");
 /* ammotype  */ ATTRIB(Hook, ammo_type, Resource, RES_FUEL);
index b9d45931345a72f926f1643e24f5f1908601b188..0adda6d9db37ca82797cdc95ec8b74c4898e7ae1 100644 (file)
@@ -58,7 +58,7 @@ float MachineGun_Heat(float spread_accum)
 
 void W_MachineGun_Attack(Weapon thiswep, int deathtype, entity actor, .entity weaponentity)
 {
-       W_SetupShot(actor, weaponentity, true, 0, SND_UZI_FIRE, CH_WEAPON_A, ((actor.(weaponentity).misc_bulletcounter == 1) ? WEP_CVAR(WEP_MACHINEGUN, first_damage) : WEP_CVAR(WEP_MACHINEGUN, sustained_damage)), deathtype);
+       W_SetupShot(actor, weaponentity, true, 0, SND_MACHINEGUN_FIRE, CH_WEAPON_A, ((actor.(weaponentity).misc_bulletcounter == 1) ? WEP_CVAR(WEP_MACHINEGUN, first_damage) : WEP_CVAR(WEP_MACHINEGUN, sustained_damage)), deathtype);
 
        if(!autocvar_g_norecoil)
        {
@@ -153,7 +153,7 @@ void W_MachineGun_Attack_Auto(Weapon thiswep, entity actor, .entity weaponentity
 
        W_DecreaseAmmo(thiswep, actor, WEP_CVAR(WEP_MACHINEGUN, sustained_ammo), weaponentity);
 
-       W_SetupShot(actor, weaponentity, true, 0, SND_UZI_FIRE, CH_WEAPON_A, WEP_CVAR(WEP_MACHINEGUN, sustained_damage), thiswep.m_id);
+       W_SetupShot(actor, weaponentity, true, 0, SND_MACHINEGUN_FIRE, CH_WEAPON_A, WEP_CVAR(WEP_MACHINEGUN, sustained_damage), thiswep.m_id);
        if(!autocvar_g_norecoil)
        {
                actor.punchangle_x = random() - 0.5;
@@ -204,7 +204,7 @@ void W_MachineGun_Attack_Auto(Weapon thiswep, entity actor, .entity weaponentity
 
 void W_MachineGun_Attack_Burst(Weapon thiswep, entity actor, .entity weaponentity, int fire)
 {
-       W_SetupShot(actor, weaponentity, true, 0, SND_UZI_FIRE, CH_WEAPON_A, WEP_CVAR(WEP_MACHINEGUN, sustained_damage), thiswep.m_id);
+       W_SetupShot(actor, weaponentity, true, 0, SND_MACHINEGUN_FIRE, CH_WEAPON_A, WEP_CVAR(WEP_MACHINEGUN, sustained_damage), thiswep.m_id);
        if(!autocvar_g_norecoil)
        {
                actor.punchangle_x = random() - 0.5;
index 89b014d148de54bd6af2b2bea70d846f84956189..453635fbdfa17a3b442c1103d226756962e6da07 100644 (file)
@@ -1,5 +1,14 @@
 #pragma once
 
+#ifdef GAMEQC
+MODEL(MACHINEGUN_MUZZLEFLASH, "models/uziflash.md3");
+MODEL(MACHINEGUN_VIEW, W_Model("h_uzi.iqm"));
+MODEL(MACHINEGUN_WORLD, W_Model("v_uzi.md3"));
+MODEL(MACHINEGUN_ITEM, W_Model("g_uzi.md3"));
+
+SOUND(MACHINEGUN_FIRE, W_Sound("uzi_fire"));
+#endif
+
 CLASS(MachineGun, Weapon)
 /* spawnfunc */ ATTRIB(MachineGun, m_canonical_spawnfunc, string, "weapon_machinegun");
 /* ammotype  */ ATTRIB(MachineGun, ammo_type, Resource, RES_BULLETS);
index 6b6976a2b21aece2a1ca7389dde3317c227a3170..4e65d58a080d747ba67bebbcc8613d5f95c59c97 100644 (file)
@@ -1,5 +1,19 @@
 #pragma once
 
+#ifdef GAMEQC
+MODEL(MINELAYER_MUZZLEFLASH, "models/flash.md3");
+MODEL(MINELAYER_MINE, "models/mine.md3");
+MODEL(MINELAYER_VIEW, W_Model("h_minelayer.iqm"));
+MODEL(MINELAYER_WORLD, W_Model("v_minelayer.md3"));
+MODEL(MINELAYER_ITEM, W_Model("g_minelayer.md3"));
+
+SOUND(MINE_DET, W_Sound("mine_det"));
+SOUND(MINE_EXP, W_Sound("mine_exp"));
+SOUND(MINE_FIRE, W_Sound("mine_fire"));
+SOUND(MINE_STICK, W_Sound("mine_stick"));
+SOUND(MINE_TRIGGER, W_Sound("mine_trigger"));
+#endif
+
 CLASS(MineLayer, Weapon)
 /* spawnfunc */ ATTRIB(MineLayer, m_canonical_spawnfunc, string, "weapon_minelayer");
 /* ammotype  */ ATTRIB(MineLayer, ammo_type, Resource, RES_ROCKETS);
index 1801617957db3bc00252769be6f2982d52fab55d..8f89368837700072cbf56430f3ba355bad7385fe 100644 (file)
@@ -95,7 +95,7 @@ void W_Mortar_Grenade_Touch1(entity this, entity toucher)
        }
        else if(WEP_CVAR_PRI(WEP_MORTAR, type) == 2 && (!toucher || (toucher.takedamage != DAMAGE_AIM && toucher.move_movetype == MOVETYPE_NONE))) // stick
        {
-               spamsound(this, CH_SHOTS, SND_GRENADE_STICK, VOL_BASE, ATTN_NORM);
+               spamsound(this, CH_SHOTS, SND_MORTAR_STICK, VOL_BASE, ATTN_NORM);
 
                // let it stick whereever it is
                this.movedir = this.velocity; // save to this temporary field, will be restored on explosion
@@ -131,7 +131,7 @@ void W_Mortar_Grenade_Touch2(entity this, entity toucher)
        }
        else if(WEP_CVAR_SEC(WEP_MORTAR, type) == 2 && (!toucher || (toucher.takedamage != DAMAGE_AIM && toucher.move_movetype == MOVETYPE_NONE))) // stick
        {
-               spamsound(this, CH_SHOTS, SND_GRENADE_STICK, VOL_BASE, ATTN_NORM);
+               spamsound(this, CH_SHOTS, SND_MORTAR_STICK, VOL_BASE, ATTN_NORM);
 
                // let it stick whereever it is
                this.movedir = this.velocity; // save to this temporary field, will be restored on explosion
@@ -151,7 +151,7 @@ void W_Mortar_Attack(Weapon thiswep, entity actor, .entity weaponentity)
 {
        W_DecreaseAmmo(thiswep, actor, WEP_CVAR_PRI(WEP_MORTAR, ammo), weaponentity);
 
-       W_SetupShot_ProjectileSize(actor, weaponentity, '-3 -3 -3', '3 3 3', false, 4, SND_GRENADE_FIRE, CH_WEAPON_A, WEP_CVAR_PRI(WEP_MORTAR, damage), thiswep.m_id);
+       W_SetupShot_ProjectileSize(actor, weaponentity, '-3 -3 -3', '3 3 3', false, 4, SND_MORTAR_FIRE, CH_WEAPON_A, WEP_CVAR_PRI(WEP_MORTAR, damage), thiswep.m_id);
        w_shotdir = v_forward; // no TrueAim for grenades please
 
        W_MuzzleFlash(thiswep, actor, weaponentity, w_shotorg, w_shotdir);
@@ -203,7 +203,7 @@ void W_Mortar_Attack2(Weapon thiswep, entity actor, .entity weaponentity)
 
        W_DecreaseAmmo(thiswep, actor, WEP_CVAR_SEC(WEP_MORTAR, ammo), weaponentity);
 
-       W_SetupShot_ProjectileSize(actor, weaponentity, '-3 -3 -3', '3 3 3', false, 4, SND_GRENADE_FIRE, CH_WEAPON_A, WEP_CVAR_SEC(WEP_MORTAR, damage), thiswep.m_id | HITTYPE_SECONDARY);
+       W_SetupShot_ProjectileSize(actor, weaponentity, '-3 -3 -3', '3 3 3', false, 4, SND_MORTAR_FIRE, CH_WEAPON_A, WEP_CVAR_SEC(WEP_MORTAR, damage), thiswep.m_id | HITTYPE_SECONDARY);
        w_shotdir = v_forward; // no TrueAim for grenades please
 
        W_MuzzleFlash(thiswep, actor, weaponentity, w_shotorg, w_shotdir);
@@ -315,7 +315,7 @@ METHOD(Mortar, wr_think, void(entity thiswep, entity actor, .entity weaponentity
                                }
                        });
                        if(nadefound)
-                               sound(actor, CH_WEAPON_B, SND_ROCKET_DET, VOL_BASE, ATTN_NORM);
+                               sound(actor, CH_WEAPON_B, SND_MORTAR_DET, VOL_BASE, ATTN_NORM);
                }
                else if(weapon_prepareattack(thiswep, actor, weaponentity, true, WEP_CVAR_SEC(WEP_MORTAR, refire)))
                {
@@ -368,7 +368,7 @@ METHOD(Mortar, wr_impacteffect, void(entity thiswep, entity actor))
        vector org2 = w_org + w_backoff * 2;
        pointparticles(EFFECT_GRENADE_EXPLODE, org2, '0 0 0', 1);
        if(!w_issilent)
-               sound(actor, CH_SHOTS, SND_GRENADE_IMPACT, VOL_BASE, ATTN_NORM);
+               sound(actor, CH_SHOTS, SND_MORTAR_IMPACT, VOL_BASE, ATTN_NORM);
 }
 
 #endif
index bce9e437313f1d4d75628614fc11353d58a898dc..f35f277c51cdc2459f07c283b179a3eb7a055a57 100644 (file)
@@ -1,5 +1,16 @@
 #pragma once
 
+#ifdef GAMEQC
+MODEL(MORTAR_VIEW, W_Model("h_gl.iqm"));
+MODEL(MORTAR_WORLD, W_Model("v_gl.md3"));
+MODEL(MORTAR_ITEM, W_Model("g_gl.md3"));
+
+SOUND(MORTAR_DET, W_Sound("rocket_det"));
+SOUND(MORTAR_FIRE, W_Sound("grenade_fire"));
+SOUND(MORTAR_IMPACT, W_Sound("grenade_impact"));
+SOUND(MORTAR_STICK, W_Sound("grenade_stick"));
+#endif
+
 CLASS(Mortar, Weapon)
 /* spawnfunc */ ATTRIB(Mortar, m_canonical_spawnfunc, string, "weapon_mortar");
 /* ammotype  */ ATTRIB(Mortar, ammo_type, Resource, RES_ROCKETS);
index 0b9557d0bed12f4d70c5c8a6c6c7b45662df1b5c..c1e2d141200fef8b7fec3198e6a7bc487858ce43 100644 (file)
@@ -1,5 +1,19 @@
 #pragma once
 
+#ifdef GAMEQC
+MODEL(PORTAL, "models/portal.md3");
+MODEL(PORTO_VIEW, W_Model("h_porto.iqm"));
+MODEL(PORTO_WORLD, W_Model("v_porto.md3"));
+MODEL(PORTO_ITEM, W_Model("g_porto.md3"));
+
+SOUND(PORTO_BOUNCE, "porto/bounce");
+SOUND(PORTO_CREATE, "porto/create");
+SOUND(PORTO_EXPIRE, "porto/expire");
+SOUND(PORTO_EXPLODE, "porto/explode");
+SOUND(PORTO_FIRE, "porto/fire");
+SOUND(PORTO_UNSUPPORTED, "porto/unsupported");
+#endif
+
 CLASS(PortoLaunch, Weapon)
 /* spawnfunc */ ATTRIB(PortoLaunch, m_canonical_spawnfunc, string, "weapon_porto");
 /* ammotype  */ ATTRIB(PortoLaunch, ammo_type, Resource, RES_NONE);
index 7a1fb2cfaf9181b5a6c0bf4b897c817e4b36e8b5..29794f415952b7e42eb71710e46880bef4220196 100644 (file)
@@ -44,12 +44,12 @@ void W_Rifle_FireBullet(Weapon thiswep, .entity weaponentity, int deathtype, Sou
 
 void W_Rifle_Attack(Weapon thiswep, entity actor, .entity weaponentity)
 {
-       W_Rifle_FireBullet(thiswep, weaponentity, thiswep.m_id, SND_CAMPINGRIFLE_FIRE, actor, true);
+       W_Rifle_FireBullet(thiswep, weaponentity, thiswep.m_id, SND_RIFLE_FIRE, actor, true);
 }
 
 void W_Rifle_Attack2(Weapon thiswep, entity actor, .entity weaponentity)
 {
-       W_Rifle_FireBullet(thiswep, weaponentity, thiswep.m_id | HITTYPE_SECONDARY, SND_CAMPINGRIFLE_FIRE2, actor, false);
+       W_Rifle_FireBullet(thiswep, weaponentity, thiswep.m_id | HITTYPE_SECONDARY, SND_RIFLE_FIRE2, actor, false);
 }
 
 .void(Weapon thiswep, entity actor, .entity weaponentity) rifle_bullethail_attackfunc;
index c5cc4e8f497182a8c86fcc6a422b374e18d14a8b..148f7fea91b044d8abfdf6a79a19dc69b3c31b82 100644 (file)
@@ -1,5 +1,14 @@
 #pragma once
 
+#ifdef GAMEQC
+MODEL(RIFLE_VIEW, W_Model("h_campingrifle.iqm"));
+MODEL(RIFLE_WORLD, W_Model("v_campingrifle.md3"));
+MODEL(RIFLE_ITEM, W_Model("g_campingrifle.md3"));
+
+SOUND(RIFLE_FIRE2, W_Sound("campingrifle_fire2"));
+SOUND(RIFLE_FIRE, W_Sound("campingrifle_fire"));
+#endif
+
 CLASS(Rifle, Weapon)
 /* spawnfunc */ ATTRIB(Rifle, m_canonical_spawnfunc, string, "weapon_rifle");
 /* ammotype  */ ATTRIB(Rifle, ammo_type, Resource, RES_BULLETS);
index 0f439716bb67b6eeb450a2b5d8fe5ef84c738c05..84281e4797fa348f5072698cc82261e928b55ab8 100644 (file)
@@ -266,7 +266,7 @@ void W_Seeker_Fire_Flac(Weapon thiswep, entity actor, .entity weaponentity)
                        f_diff = '+1.25 +3.75 0';
                        break;
        }
-       W_SetupShot_ProjectileSize(actor, weaponentity, '-2 -2 -2', '2 2 2', false, 2, SND_FLAC_FIRE, CH_WEAPON_A, WEP_CVAR(WEP_SEEKER, flac_damage), thiswep.m_id | HITTYPE_SECONDARY);
+       W_SetupShot_ProjectileSize(actor, weaponentity, '-2 -2 -2', '2 2 2', false, 2, SND_SEEKER_FLAC_FIRE, CH_WEAPON_A, WEP_CVAR(WEP_SEEKER, flac_damage), thiswep.m_id | HITTYPE_SECONDARY);
        w_shotorg += f_diff;
 
        // uses hagar effects!
@@ -653,28 +653,14 @@ METHOD(Seeker, wr_impacteffect, void(entity thiswep, entity actor))
                {
                        pointparticles(EFFECT_HAGAR_EXPLODE, org2, '0 0 0', 1);
                        if(!w_issilent)
-                       {
-                               if(w_random<0.15)
-                                       sound(actor, CH_SHOTS, SND_TAGEXP1, 1, ATTEN_NORM);
-                               else if(w_random<0.7)
-                                       sound(actor, CH_SHOTS, SND_TAGEXP2, 1, ATTEN_NORM);
-                               else
-                                       sound(actor, CH_SHOTS, SND_TAGEXP3, 1, ATTEN_NORM);
-                       }
+                               sound(actor, CH_SHOTS, SND_TAGEXP_RANDOM(w_random), 1, ATTEN_NORM);
                }
        }
        else
        {
                pointparticles(EFFECT_HAGAR_EXPLODE, org2, '0 0 0', 1);
                if(!w_issilent)
-               {
-                       if(w_random<0.15)
-                               sound(actor, CH_SHOTS, SND_SEEKEREXP1, 1, ATTEN_NORM);
-                       else if(w_random<0.7)
-                               sound(actor, CH_SHOTS, SND_SEEKEREXP2, 1, ATTEN_NORM);
-                       else
-                               sound(actor, CH_SHOTS, SND_SEEKEREXP3, 1, ATTEN_NORM);
-               }
+                       sound(actor, CH_SHOTS, SND_SEEKEREXP_RANDOM(w_random), 1, ATTEN_NORM);
        }
 }
 
index f6a006df67dea7c1bdcbf795bf4c4413aa6aef30..d349a8d1d716d975707e03237f44a56c4b194389 100644 (file)
@@ -1,5 +1,29 @@
 #pragma once
 
+#ifdef GAMEQC
+MODEL(SEEKER_VIEW, W_Model("h_seeker.iqm"));
+MODEL(SEEKER_WORLD, W_Model("v_seeker.md3"));
+MODEL(SEEKER_ITEM, W_Model("g_seeker.md3"));
+
+SOUND(SEEKER_FLAC_FIRE, W_Sound("flac_fire"));
+SOUND(TAGEXP1, W_Sound("tagexp1"));
+SOUND(TAGEXP2, W_Sound("tagexp2"));
+SOUND(TAGEXP3, W_Sound("tagexp3"));
+Sound SND_TAGEXP_RANDOM(float rnd) {
+    return REGISTRY_GET(Sounds, SND_TAGEXP1.m_id + rint(rnd * 2));
+}
+SOUND(TAG_FIRE, W_Sound("tag_fire"));
+SOUND(TAG_IMPACT, W_Sound("tag_impact"));
+SOUND(SEEKEREXP1, W_Sound("seekerexp1"));
+SOUND(SEEKEREXP2, W_Sound("seekerexp2"));
+SOUND(SEEKEREXP3, W_Sound("seekerexp3"));
+Sound SND_SEEKEREXP_RANDOM(float rnd) {
+    return REGISTRY_GET(Sounds, SND_SEEKEREXP1.m_id + rint(rnd * 2));
+}
+SOUND(SEEKER_FIRE, W_Sound("seeker_fire"));
+SOUND(SEEKER_ROCKET_FLY, W_Sound("tag_rocket_fly"));
+#endif
+
 CLASS(Seeker, Weapon)
 /* spawnfunc */ ATTRIB(Seeker, m_canonical_spawnfunc, string, "weapon_seeker");
 /* ammotype  */ ATTRIB(Seeker, ammo_type, Resource, RES_ROCKETS);
index 605dbd7da59ce55caa4671c55cbdaa109ddbfb80..6e67d525e87d476018ea6ecdd746e314068df3db 100644 (file)
@@ -142,7 +142,7 @@ void W_Shockwave_Melee_Think(entity this)
 
 void W_Shockwave_Melee(Weapon thiswep, entity actor, .entity weaponentity, int fire)
 {
-       sound(actor, CH_WEAPON_A, SND_SHOTGUN_MELEE, VOL_BASE, ATTN_NORM);
+       sound(actor, CH_WEAPON_A, SND_SHOCKWAVE_MELEE, VOL_BASE, ATTN_NORM);
        weapon_thinkf(actor, weaponentity, WFRAME_FIRE2, WEP_CVAR(WEP_SHOCKWAVE, melee_animtime), w_ready);
 
        entity meleetemp = new_pure(meleetemp);
@@ -269,7 +269,7 @@ void W_Shockwave_Attack(Weapon thiswep, entity actor, .entity weaponentity)
        float i, queue = 0;
 
        // set up the shot direction
-       W_SetupShot(actor, weaponentity, true, 3, SND_LASERGUN_FIRE, CH_WEAPON_B, WEP_CVAR(WEP_SHOCKWAVE, blast_damage), thiswep.m_id);
+       W_SetupShot(actor, weaponentity, true, 3, SND_SHOCKWAVE_FIRE, CH_WEAPON_B, WEP_CVAR(WEP_SHOCKWAVE, blast_damage), thiswep.m_id);
        vector attack_endpos = (w_shotorg + (w_shotdir * WEP_CVAR(WEP_SHOCKWAVE, blast_distance)));
        WarpZone_TraceLine(w_shotorg, attack_endpos, MOVE_NOMONSTERS, actor);
        vector attack_hitpos = trace_endpos;
index d0ea5329abc577291730b19c09a3b382c9004f6d..6141396559dda6f16f889479d140e0ea7e0fdf09 100644 (file)
@@ -1,5 +1,15 @@
 #pragma once
 
+#ifdef GAMEQC
+MODEL(SHOCKWAVE_MUZZLEFLASH, "models/uziflash.md3");
+MODEL(SHOCKWAVE_VIEW, W_Model("h_shotgun.iqm"));
+MODEL(SHOCKWAVE_WORLD, W_Model("v_shotgun.md3"));
+MODEL(SHOCKWAVE_ITEM, W_Model("g_shotgun.md3"));
+
+SOUND(SHOCKWAVE_FIRE, W_Sound("lasergun_fire"));
+SOUND(SHOCKWAVE_MELEE, W_Sound("shotgun_melee"));
+#endif
+
 CLASS(Shockwave, Weapon)
 /* spawnfunc */ ATTRIB(Shockwave, m_canonical_spawnfunc, string, "weapon_shockwave");
 /* ammotype  */ //ATTRIB(Shockwave, ammo_type, Resource, RES_NONE);
index 7bc6e3dee1409f0152b268d9f7c66e569a65ca5d..1c34dbca68af6e39c538d8f49bc784b3d3e113b0 100644 (file)
@@ -1,5 +1,15 @@
 #pragma once
 
+#ifdef GAMEQC
+MODEL(SHOTGUN_MUZZLEFLASH, "models/uziflash.md3");
+MODEL(SHOTGUN_VIEW, W_Model("h_shotgun.iqm"));
+MODEL(SHOTGUN_WORLD, W_Model("v_shotgun.md3"));
+MODEL(SHOTGUN_ITEM, W_Model("g_shotgun.md3"));
+
+SOUND(SHOTGUN_FIRE, W_Sound("shotgun_fire"));
+SOUND(SHOTGUN_MELEE, W_Sound("shotgun_melee"));
+#endif
+
 CLASS(Shotgun, Weapon)
 /* spawnfunc */ ATTRIB(Shotgun, m_canonical_spawnfunc, string, "weapon_shotgun");
 /* ammotype  */ ATTRIB(Shotgun, ammo_type, Resource, RES_SHELLS);
index 31a569d7bb601f9c0768679435376f24010b2564..ecf4ec5df7429b678f85d2e5daff47922767b3ff 100644 (file)
@@ -1,5 +1,15 @@
 #pragma once
 
+#ifdef GAMEQC
+MODEL(TUBA_VIEW, W_Model("h_tuba.iqm"));
+MODEL(TUBA_WORLD, W_Model("v_tuba.md3"));
+MODEL(TUBA_ITEM, W_Model("g_tuba.md3"));
+MODEL(ACCORDION_VIEW, W_Model("h_akordeon.iqm"));
+MODEL(ACCORDION_WORLD, W_Model("v_akordeon.md3"));
+MODEL(KLEINBOTTLE_VIEW, W_Model("h_kleinbottle.iqm"));
+MODEL(KLEINBOTTLE_WORLD, W_Model("v_kleinbottle.md3"));
+#endif
+
 CLASS(Tuba, Weapon)
 /* spawnfunc */ ATTRIB(Tuba, m_canonical_spawnfunc, string, "weapon_tuba");
 /* impulse   */ ATTRIB(Tuba, impulse, int, 1);
index b5cdddb2dac517a8dfdd8efb59cbb71cc57f45fb..57d8488598aff1d3543ce9da471e05f183fbc509 100644 (file)
@@ -122,7 +122,7 @@ void W_Vaporizer_Attack(Weapon thiswep, entity actor, .entity weaponentity)
        W_SetupShot(actor, weaponentity, true, 0, SND_Null, CH_WEAPON_A, vaporizer_damage, thiswep.m_id);
        // handle sound separately so we can change the volume
        // added bonus: no longer plays the strength sound (strength gives no bonus to instakill anyway)
-       sound (actor, CH_WEAPON_A, SND_MINSTANEXFIRE, VOL_BASE * 0.8, ATTEN_NORM);
+       sound (actor, CH_WEAPON_A, SND_VAPORIZER_FIRE, VOL_BASE * 0.8, ATTEN_NORM);
 
        yoda = 0;
        impressive_hits = 0;
@@ -195,7 +195,7 @@ void W_RocketMinsta_Attack(entity actor, .entity weaponentity, int mode)
        entity proj;
        int laser_count = max(1, autocvar_g_rm_laser_count);
        int total = (mode == 0) ? laser_count : 1;
-       Sound snd = (mode == 0) ? SND_CRYLINK_FIRE : SND_ELECTRO_FIRE2;
+       Sound snd = (mode == 0) ? SND_CRYLINK_FIRE : SND_ELECTRO_FIRE2; // WEAPONTODO multiple references to other weapons here!
        W_SetupShot_ProjectileSize(actor, weaponentity, '0 0 -3', '0 0 -3', false, 2, snd, CH_WEAPON_A, autocvar_g_rm_laser_damage, WEP_ELECTRO.m_id);
 
        // uses electro effects
@@ -381,7 +381,7 @@ METHOD(Vaporizer, wr_impacteffect, void(entity thiswep, entity actor))
        vector org2 = w_org + w_backoff * 2;
        pointparticles(EFFECT_VORTEX_IMPACT, org2, '0 0 0', 1);
        if(!w_issilent)
-               sound(actor, CH_SHOTS, SND_NEXIMPACT, VOL_BASE, ATTN_NORM);
+               sound(actor, CH_SHOTS, SND_VAPORIZER_IMPACT, VOL_BASE, ATTN_NORM);
 }
 
 METHOD(Vaporizer, wr_init, void(entity thiswep))
index 5a91d4ff952c0dc4ebe0314cc222575022e02554..1a8a75cd35a2b7df9eb5a9eecea988f1a9b90402 100644 (file)
@@ -1,5 +1,15 @@
 #pragma once
 
+#ifdef GAMEQC
+MODEL(VAPORIZER_MUZZLEFLASH, "models/nexflash.md3");
+MODEL(VAPORIZER_VIEW, W_Model("h_minstanex.iqm"));
+MODEL(VAPORIZER_WORLD, W_Model("v_minstanex.md3"));
+MODEL(VAPORIZER_ITEM, W_Model("g_minstanex.md3"));
+
+SOUND(VAPORIZER_FIRE, W_Sound("minstanexfire"));
+SOUND(VAPORIZER_IMPACT, W_Sound("neximpact"));
+#endif
+
 CLASS(Vaporizer, Weapon)
 /* spawnfunc */ ATTRIB(Vaporizer, m_canonical_spawnfunc, string, "weapon_vaporizer");
 /* ammotype  */ ATTRIB(Vaporizer, ammo_type, Resource, RES_CELLS);
index 151ea4d23027ea1be3c975ba5be6ab5cc6eaf8f7..41517c5e58cb76523a00d9d7b1fde3e2d3e61e3b 100644 (file)
@@ -140,10 +140,10 @@ void W_Vortex_Attack(Weapon thiswep, entity actor, .entity weaponentity, float i
        mydmg *= charge;
        myforce *= charge;
 
-       W_SetupShot(actor, weaponentity, true, 5, SND_NEXFIRE, CH_WEAPON_A, mydmg, dtype);
+       W_SetupShot(actor, weaponentity, true, 5, SND_VORTEX_FIRE, CH_WEAPON_A, mydmg, dtype);
        if(charge > WEP_CVAR(WEP_VORTEX, charge_animlimit) && WEP_CVAR(WEP_VORTEX, charge_animlimit)) // if the Vortex is overcharged, we play an extra sound
        {
-               sound(actor, CH_WEAPON_B, SND_NEXCHARGE, VOL_BASE * (charge - 0.5 * WEP_CVAR(WEP_VORTEX, charge_animlimit)) / (1 - 0.5 * WEP_CVAR(WEP_VORTEX, charge_animlimit)), ATTN_NORM);
+               sound(actor, CH_WEAPON_B, SND_VORTEX_CHARGE, VOL_BASE * (charge - 0.5 * WEP_CVAR(WEP_VORTEX, charge_animlimit)) / (1 - 0.5 * WEP_CVAR(WEP_VORTEX, charge_animlimit)), ATTN_NORM);
        }
 
        yoda = 0;
@@ -346,7 +346,7 @@ METHOD(Vortex, wr_impacteffect, void(entity thiswep, entity actor))
        bool usecolor = ((teamplay && autocvar_cl_tracers_teamcolor == 1) || autocvar_cl_tracers_teamcolor == 2);
        boxparticles(particleeffectnum(EFFECT_VORTEX_IMPACT), NULL, org2, org2, '0 0 0', '0 0 0', 1, ((usecolor) ? PARTICLES_USECOLOR : 0));
        if(!w_issilent)
-               sound(this, CH_SHOTS, SND_NEXIMPACT, VOL_BASE, ATTN_NORM);
+               sound(this, CH_SHOTS, SND_VORTEX_IMPACT, VOL_BASE, ATTN_NORM);
 }
 METHOD(Vortex, wr_init, void(entity thiswep))
 {
index 8c988fa81b4b8d424c0ede6c4e486604d3448ac6..4b7e853df5f231b5aa418cc33f7cbe838db93832 100644 (file)
@@ -1,5 +1,16 @@
 #pragma once
 
+#ifdef GAMEQC
+MODEL(VORTEX_MUZZLEFLASH, "models/nexflash.md3");
+MODEL(VORTEX_VIEW, W_Model("h_nex.iqm"));
+MODEL(VORTEX_WORLD, W_Model("v_nex.md3"));
+MODEL(VORTEX_ITEM, W_Model("g_nex.md3"));
+
+SOUND(VORTEX_CHARGE, W_Sound("nexcharge"));
+SOUND(VORTEX_FIRE, W_Sound("nexfire"));
+SOUND(VORTEX_IMPACT, W_Sound("neximpact"));
+#endif
+
 CLASS(Vortex, Weapon)
 /* spawnfunc */ ATTRIB(Vortex, m_canonical_spawnfunc, string, "weapon_vortex");
 /* ammotype  */ ATTRIB(Vortex, ammo_type, Resource, RES_CELLS);