]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Use the player's color for Vortex charging instead of predefined colors
authorMario <mario.mario@y7mail.com>
Sun, 27 Nov 2022 01:52:10 +0000 (01:52 +0000)
committerMario <mario.mario@y7mail.com>
Sun, 27 Nov 2022 01:52:10 +0000 (01:52 +0000)
qcsrc/client/view.qc
qcsrc/common/mutators/mutator/overkill/oknex.qc
qcsrc/common/weapons/all.qh
qcsrc/common/weapons/weapon.qh
qcsrc/common/weapons/weapon/vortex.qc
qcsrc/server/weapons/weaponsystem.qc
xonotic-common.cfg

index fce90d7bf67f5f11f63fdbb6e21ff9a4fd79d824..8f919b556ca7d90d54c430cd25d20f758e28588f 100644 (file)
@@ -287,7 +287,7 @@ void viewmodel_draw(entity this)
        if (invehicle) a = -1;
        Weapon wep = this.activeweapon;
        int c = entcs_GetClientColors(current_player);
-       vector g = weaponentity_glowmod(wep, NULL, c, this);
+       vector g = weaponentity_glowmod(wep, c, this);
        entity me = CSQCModel_server2csqc(player_localentnum - 1);
        int fx = ((me.csqcmodel_effects & EFMASK_CHEAP)
                | EF_NODEPTHTEST)
index 4e001a65caff82f20594a097866aec95091e8b90..85f33714054e1560f40c0ccf28a12a83b1b0c048 100644 (file)
@@ -7,22 +7,18 @@
 
 #if defined(GAMEQC)
 
-METHOD(OverkillNex, wr_glow, vector(OverkillNex this, entity actor, entity wepent))
+METHOD(OverkillNex, wr_glow, vector(OverkillNex this, int actor_colors, entity wepent))
 {
        if (!WEP_CVAR(oknex, charge)) return '0 0 0';
-       float charge = wepent.oknex_charge;
+       float charge = max(0.25, wepent.oknex_charge);
        float animlimit = WEP_CVAR(oknex, charge_animlimit);
-       float f = autocvar_g_weapon_charge_colormod_hdrmultiplier * min(1, charge / animlimit);
-       vector g;
-       g.x = f * autocvar_g_weapon_charge_colormod_red_half;
-       g.y = f * autocvar_g_weapon_charge_colormod_green_half;
-       g.z = f * autocvar_g_weapon_charge_colormod_blue_half;
+       float f = min(1, charge / animlimit);
+       vector mycolors = colormapPaletteColor(actor_colors & 0x0F, true);
+       vector g = f * (mycolors * 0.3);
        if (charge > animlimit)
        {
-               f = autocvar_g_weapon_charge_colormod_hdrmultiplier * (charge - animlimit) / (1 - animlimit);
-               g.x += f * autocvar_g_weapon_charge_colormod_red_full;
-               g.y += f * autocvar_g_weapon_charge_colormod_green_full;
-               g.z += f * autocvar_g_weapon_charge_colormod_blue_full;
+               f = (charge - animlimit) / (1 - animlimit);
+               g += f * (mycolors * 0.7);
        }
        // transition color can't be '0 0 0' as it defaults to player model glow color
        if (g == '0 0 0')
index 286b7a3d3dbfdde33e21975131c2214a691082c6..acf4366593e62d3a1b72ba012b30e9121d6777e9 100644 (file)
@@ -344,10 +344,10 @@ STATIC_INIT(register_weapons_done)
 
 .entity weaponchild;
 .entity exteriorweaponentity;
-vector weaponentity_glowmod(Weapon wep, entity actor, int c, entity wepent)
+vector weaponentity_glowmod(Weapon wep, int c, entity wepent)
 {
     vector g;
-    if (!(g = wep.wr_glow(wep, actor, wepent))) g = colormapPaletteColor(c & 0x0F, true);
+    if (!(g = wep.wr_glow(wep, c, wepent))) g = colormapPaletteColor(c & 0x0F, true);
     return g;
 }
 
index ec6e14eb668d8ef63e33cb6aaf2577fc464033cb..70009b15ffc32152ddf3a1c769e534146aebc4b7 100644 (file)
@@ -117,7 +117,7 @@ CLASS(Weapon, Object)
     /** (CLIENT) weapon specific view model */
     METHOD(Weapon, wr_viewmodel, string(Weapon this, entity wep)) { return string_null; }
     /** (BOTH) weapon specific glow */
-    METHOD(Weapon, wr_glow, vector(Weapon this, entity actor, entity wepent)) { return '0 0 0'; }
+    METHOD(Weapon, wr_glow, vector(Weapon this, int actor_colors, entity wepent)) { return '0 0 0'; }
     /** (SERVER) the weapon is dropped */
     METHOD(Weapon, wr_drop, void(Weapon this, entity actor, .entity weaponentity)) {}
     /** (SERVER) a weapon is picked up */
index 98762a03e13f4fe1c96a7a187348fdc069e1d81f..5c9ae23a1806d6b4b04801b61a16f8c8ea0c1534 100644 (file)
@@ -4,30 +4,18 @@
 //REGISTER_STAT(WEP_CVAR_vortex_charge_animlimit, float, WEP_CVAR(vortex, charge_animlimit))
 
 #if defined(GAMEQC)
-float autocvar_g_weapon_charge_colormod_red_full;
-float autocvar_g_weapon_charge_colormod_red_half;
-float autocvar_g_weapon_charge_colormod_green_full;
-float autocvar_g_weapon_charge_colormod_blue_full;
-float autocvar_g_weapon_charge_colormod_blue_half;
-float autocvar_g_weapon_charge_colormod_green_half;
-float autocvar_g_weapon_charge_colormod_hdrmultiplier;
-
-METHOD(Vortex, wr_glow, vector(Vortex this, entity actor, entity wepent))
+METHOD(Vortex, wr_glow, vector(Vortex this, int actor_colors, entity wepent))
 {
        if (!WEP_CVAR(vortex, charge)) return '0 0 0';
-       float charge = wepent.vortex_charge;
+       float charge = max(0.25, wepent.vortex_charge);
        float animlimit = WEP_CVAR(vortex, charge_animlimit);
-       float f = autocvar_g_weapon_charge_colormod_hdrmultiplier * min(1, charge / animlimit);
-       vector g;
-       g.x = f * autocvar_g_weapon_charge_colormod_red_half;
-       g.y = f * autocvar_g_weapon_charge_colormod_green_half;
-       g.z = f * autocvar_g_weapon_charge_colormod_blue_half;
+       float f = min(1, charge / animlimit);
+       vector mycolors = colormapPaletteColor(actor_colors & 0x0F, true);
+       vector g = f * (mycolors * 0.3);
        if (charge > animlimit)
        {
-               f = autocvar_g_weapon_charge_colormod_hdrmultiplier * (charge - animlimit) / (1 - animlimit);
-               g.x += f * autocvar_g_weapon_charge_colormod_red_full;
-               g.y += f * autocvar_g_weapon_charge_colormod_green_full;
-               g.z += f * autocvar_g_weapon_charge_colormod_blue_full;
+               f = (charge - animlimit) / (1 - animlimit);
+               g += f * (mycolors * 0.7);
        }
        // transition color can't be '0 0 0' as it defaults to player model glow color
        if (g == '0 0 0')
@@ -78,26 +66,26 @@ REGISTER_MUTATOR(vortex_charge, true);
 
 MUTATOR_HOOKFUNCTION(vortex_charge, GetPressedKeys)
 {
-    entity player = M_ARGV(0, entity);
+       entity player = M_ARGV(0, entity);
 
        // WEAPONTODO
-    if(!WEP_CVAR(vortex, charge) || !WEP_CVAR(vortex, charge_velocity_rate))
-        return;
-
-    for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
-    {
-        .entity weaponentity = weaponentities[slot];
-
-       if (player.(weaponentity).m_weapon == WEP_VORTEX && WEP_CVAR(vortex, charge) && WEP_CVAR(vortex, charge_velocity_rate) && vdist(vec2(player.velocity), >, WEP_CVAR(vortex, charge_minspeed)))
-       {
-            float xyspeed = vlen(vec2(player.velocity));
-               // add a maximum of charge_velocity_rate when going fast (f = 1), gradually increasing from minspeed (f = 0) to maxspeed
-               xyspeed = min(xyspeed, WEP_CVAR(vortex, charge_maxspeed));
-               float f = (xyspeed - WEP_CVAR(vortex, charge_minspeed)) / (WEP_CVAR(vortex, charge_maxspeed) - WEP_CVAR(vortex, charge_minspeed));
-               // add the extra charge
-               player.(weaponentity).vortex_charge = min(1, player.(weaponentity).vortex_charge + WEP_CVAR(vortex, charge_velocity_rate) * f * PHYS_INPUT_TIMELENGTH);
-       }
-    }
+       if(!WEP_CVAR(vortex, charge) || !WEP_CVAR(vortex, charge_velocity_rate))
+               return;
+
+       for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
+       {
+               .entity weaponentity = weaponentities[slot];
+
+               if (player.(weaponentity).m_weapon == WEP_VORTEX && WEP_CVAR(vortex, charge) && WEP_CVAR(vortex, charge_velocity_rate) && vdist(vec2(player.velocity), >, WEP_CVAR(vortex, charge_minspeed)))
+               {
+                       float xyspeed = vlen(vec2(player.velocity));
+                       // add a maximum of charge_velocity_rate when going fast (f = 1), gradually increasing from minspeed (f = 0) to maxspeed
+                               xyspeed = min(xyspeed, WEP_CVAR(vortex, charge_maxspeed));
+                       float f = (xyspeed - WEP_CVAR(vortex, charge_minspeed)) / (WEP_CVAR(vortex, charge_maxspeed) - WEP_CVAR(vortex, charge_minspeed));
+                       // add the extra charge
+                       player.(weaponentity).vortex_charge = min(1, player.(weaponentity).vortex_charge + WEP_CVAR(vortex, charge_velocity_rate) * f * PHYS_INPUT_TIMELENGTH);
+               }
+       }
 }
 
 void W_Vortex_Attack(Weapon thiswep, entity actor, .entity weaponentity, float issecondary)
@@ -163,168 +151,168 @@ void W_Vortex_Attack(Weapon thiswep, entity actor, .entity weaponentity, float i
 
 void W_Vortex_Charge(entity actor, .entity weaponentity, float dt)
 {
-    if(WEP_CVAR(vortex, charge) && actor.(weaponentity).vortex_charge < WEP_CVAR(vortex, charge_limit))
-        actor.(weaponentity).vortex_charge = min(1, actor.(weaponentity).vortex_charge + WEP_CVAR(vortex, charge_rate) * dt);
+       if(WEP_CVAR(vortex, charge) && actor.(weaponentity).vortex_charge < WEP_CVAR(vortex, charge_limit))
+               actor.(weaponentity).vortex_charge = min(1, actor.(weaponentity).vortex_charge + WEP_CVAR(vortex, charge_rate) * dt);
 }
 
 METHOD(Vortex, wr_aim, void(entity thiswep, entity actor, .entity weaponentity))
 {
-    if(bot_aim(actor, weaponentity, 1000000, 0, 1, false, true))
-        PHYS_INPUT_BUTTON_ATCK(actor) = true;
+       if(bot_aim(actor, weaponentity, 1000000, 0, 1, false, true))
+               PHYS_INPUT_BUTTON_ATCK(actor) = true;
 }
 METHOD(Vortex, wr_think, void(entity thiswep, entity actor, .entity weaponentity, int fire))
 {
-    if(!WEP_CVAR(vortex, charge_always))
-        W_Vortex_Charge(actor, weaponentity, frametime / W_TICSPERFRAME);
-
-    if(WEP_CVAR_SEC(vortex, chargepool))
-        if(actor.(weaponentity).vortex_chargepool_ammo < 1)
-        {
-            if(actor.vortex_chargepool_pauseregen_finished < time)
-                actor.(weaponentity).vortex_chargepool_ammo = min(1, actor.(weaponentity).vortex_chargepool_ammo + WEP_CVAR_SEC(vortex, chargepool_regen) * frametime / W_TICSPERFRAME);
-            actor.pauseregen_finished = max(actor.pauseregen_finished, time + WEP_CVAR_SEC(vortex, chargepool_pause_regen));
-        }
-
-    if(autocvar_g_balance_vortex_reload_ammo && actor.(weaponentity).clip_load < min(WEP_CVAR_PRI(vortex, ammo), WEP_CVAR_SEC(vortex, ammo))) { // forced reload
-        thiswep.wr_reload(thiswep, actor, weaponentity);
-    } else
-    {
-        if(fire & 1)
-        {
-            if(weapon_prepareattack(thiswep, actor, weaponentity, false, WEP_CVAR_PRI(vortex, refire)))
-            {
-                W_Vortex_Attack(thiswep, actor, weaponentity, 0);
-                weapon_thinkf(actor, weaponentity, WFRAME_FIRE1, WEP_CVAR_PRI(vortex, animtime), w_ready);
-            }
-        }
-        if((WEP_CVAR(vortex, charge) && !WEP_CVAR(vortex, secondary)) ? (PHYS_INPUT_BUTTON_ZOOM(actor) | PHYS_INPUT_BUTTON_ZOOMSCRIPT(actor)) : (fire & 2))
-        {
-            if(WEP_CVAR(vortex, charge))
-            {
-                actor.(weaponentity).vortex_charge_rottime = time + WEP_CVAR(vortex, charge_rot_pause);
-                float dt = frametime / W_TICSPERFRAME;
-
-                if(actor.(weaponentity).vortex_charge < 1)
-                {
-                    if(WEP_CVAR_SEC(vortex, chargepool))
-                    {
-                        if(WEP_CVAR_SEC(vortex, ammo))
-                        {
-                            // always deplete if secondary is held
-                            actor.(weaponentity).vortex_chargepool_ammo = max(0, actor.(weaponentity).vortex_chargepool_ammo - WEP_CVAR_SEC(vortex, ammo) * dt);
-
-                            dt = min(dt, (1 - actor.(weaponentity).vortex_charge) / WEP_CVAR(vortex, charge_rate));
-                            actor.vortex_chargepool_pauseregen_finished = time + WEP_CVAR_SEC(vortex, chargepool_pause_regen);
-                            dt = min(dt, actor.(weaponentity).vortex_chargepool_ammo);
-                            dt = max(0, dt);
-
-                            actor.(weaponentity).vortex_charge += dt * WEP_CVAR(vortex, charge_rate);
-                        }
-                    }
-
-                    else if(WEP_CVAR_SEC(vortex, ammo))
-                    {
-                        if(fire & 2) // only eat ammo when the button is pressed
-                        {
-                            dt = min(dt, (1 - actor.(weaponentity).vortex_charge) / WEP_CVAR(vortex, charge_rate));
-                            if(!(actor.items & IT_UNLIMITED_AMMO))
-                            {
-                                // if this weapon is reloadable, decrease its load. Else decrease the player's ammo
-                                if(autocvar_g_balance_vortex_reload_ammo)
-                                {
-                                    dt = min(dt, (actor.(weaponentity).clip_load - WEP_CVAR_PRI(vortex, ammo)) / WEP_CVAR_SEC(vortex, ammo));
-                                    dt = max(0, dt);
-                                    if(dt > 0)
-                                    {
-                                        actor.(weaponentity).clip_load = max(WEP_CVAR_SEC(vortex, ammo), actor.(weaponentity).clip_load - WEP_CVAR_SEC(vortex, ammo) * dt);
-                                    }
-                                    actor.(weaponentity).(weapon_load[thiswep.m_id]) = actor.(weaponentity).clip_load;
-                                }
-                                else
-                                {
-                                    dt = min(dt, (GetResource(actor, thiswep.ammo_type) - WEP_CVAR_PRI(vortex, ammo)) / WEP_CVAR_SEC(vortex, ammo));
-                                    dt = max(0, dt);
-                                    if(dt > 0)
-                                    {
-                                        SetResource(actor, thiswep.ammo_type, max(WEP_CVAR_SEC(vortex, ammo), GetResource(actor, thiswep.ammo_type) - WEP_CVAR_SEC(vortex, ammo) * dt));
-                                    }
-                                }
-                            }
-                            actor.(weaponentity).vortex_charge += dt * WEP_CVAR(vortex, charge_rate);
-                        }
-                    }
-
-                    else
-                    {
-                        dt = min(dt, (1 - actor.(weaponentity).vortex_charge) / WEP_CVAR(vortex, charge_rate));
-                        actor.(weaponentity).vortex_charge += dt * WEP_CVAR(vortex, charge_rate);
-                    }
-                }
-            }
-            else if(WEP_CVAR(vortex, secondary))
-            {
-                if(weapon_prepareattack(thiswep, actor, weaponentity, false, WEP_CVAR_SEC(vortex, refire)))
-                {
-                    W_Vortex_Attack(thiswep, actor, weaponentity, 1);
-                    weapon_thinkf(actor, weaponentity, WFRAME_FIRE1, WEP_CVAR_SEC(vortex, animtime), w_ready);
-                }
-            }
-        }
-    }
+       if(!WEP_CVAR(vortex, charge_always))
+               W_Vortex_Charge(actor, weaponentity, frametime / W_TICSPERFRAME);
+
+       if(WEP_CVAR_SEC(vortex, chargepool))
+               if(actor.(weaponentity).vortex_chargepool_ammo < 1)
+               {
+                       if(actor.vortex_chargepool_pauseregen_finished < time)
+                               actor.(weaponentity).vortex_chargepool_ammo = min(1, actor.(weaponentity).vortex_chargepool_ammo + WEP_CVAR_SEC(vortex, chargepool_regen) * frametime / W_TICSPERFRAME);
+                       actor.pauseregen_finished = max(actor.pauseregen_finished, time + WEP_CVAR_SEC(vortex, chargepool_pause_regen));
+               }
+
+       if(autocvar_g_balance_vortex_reload_ammo && actor.(weaponentity).clip_load < min(WEP_CVAR_PRI(vortex, ammo), WEP_CVAR_SEC(vortex, ammo))) { // forced reload
+               thiswep.wr_reload(thiswep, actor, weaponentity);
+       } else
+       {
+               if(fire & 1)
+               {
+                       if(weapon_prepareattack(thiswep, actor, weaponentity, false, WEP_CVAR_PRI(vortex, refire)))
+                       {
+                               W_Vortex_Attack(thiswep, actor, weaponentity, 0);
+                               weapon_thinkf(actor, weaponentity, WFRAME_FIRE1, WEP_CVAR_PRI(vortex, animtime), w_ready);
+                       }
+               }
+               if((WEP_CVAR(vortex, charge) && !WEP_CVAR(vortex, secondary)) ? (PHYS_INPUT_BUTTON_ZOOM(actor) | PHYS_INPUT_BUTTON_ZOOMSCRIPT(actor)) : (fire & 2))
+               {
+                       if(WEP_CVAR(vortex, charge))
+                       {
+                               actor.(weaponentity).vortex_charge_rottime = time + WEP_CVAR(vortex, charge_rot_pause);
+                               float dt = frametime / W_TICSPERFRAME;
+
+                               if(actor.(weaponentity).vortex_charge < 1)
+                               {
+                                       if(WEP_CVAR_SEC(vortex, chargepool))
+                                       {
+                                               if(WEP_CVAR_SEC(vortex, ammo))
+                                               {
+                                                       // always deplete if secondary is held
+                                                       actor.(weaponentity).vortex_chargepool_ammo = max(0, actor.(weaponentity).vortex_chargepool_ammo - WEP_CVAR_SEC(vortex, ammo) * dt);
+
+                                                       dt = min(dt, (1 - actor.(weaponentity).vortex_charge) / WEP_CVAR(vortex, charge_rate));
+                                                       actor.vortex_chargepool_pauseregen_finished = time + WEP_CVAR_SEC(vortex, chargepool_pause_regen);
+                                                       dt = min(dt, actor.(weaponentity).vortex_chargepool_ammo);
+                                                       dt = max(0, dt);
+
+                                                       actor.(weaponentity).vortex_charge += dt * WEP_CVAR(vortex, charge_rate);
+                                               }
+                                       }
+
+                                       else if(WEP_CVAR_SEC(vortex, ammo))
+                                       {
+                                               if(fire & 2) // only eat ammo when the button is pressed
+                                               {
+                                                       dt = min(dt, (1 - actor.(weaponentity).vortex_charge) / WEP_CVAR(vortex, charge_rate));
+                                                       if(!(actor.items & IT_UNLIMITED_AMMO))
+                                                       {
+                                                               // if this weapon is reloadable, decrease its load. Else decrease the player's ammo
+                                                               if(autocvar_g_balance_vortex_reload_ammo)
+                                                               {
+                                                                       dt = min(dt, (actor.(weaponentity).clip_load - WEP_CVAR_PRI(vortex, ammo)) / WEP_CVAR_SEC(vortex, ammo));
+                                                                       dt = max(0, dt);
+                                                                       if(dt > 0)
+                                                                       {
+                                                                               actor.(weaponentity).clip_load = max(WEP_CVAR_SEC(vortex, ammo), actor.(weaponentity).clip_load - WEP_CVAR_SEC(vortex, ammo) * dt);
+                                                                       }
+                                                                       actor.(weaponentity).(weapon_load[thiswep.m_id]) = actor.(weaponentity).clip_load;
+                                                               }
+                                                               else
+                                                               {
+                                                                       dt = min(dt, (GetResource(actor, thiswep.ammo_type) - WEP_CVAR_PRI(vortex, ammo)) / WEP_CVAR_SEC(vortex, ammo));
+                                                                       dt = max(0, dt);
+                                                                       if(dt > 0)
+                                                                       {
+                                                                               SetResource(actor, thiswep.ammo_type, max(WEP_CVAR_SEC(vortex, ammo), GetResource(actor, thiswep.ammo_type) - WEP_CVAR_SEC(vortex, ammo) * dt));
+                                                                       }
+                                                               }
+                                                       }
+                                                       actor.(weaponentity).vortex_charge += dt * WEP_CVAR(vortex, charge_rate);
+                                               }
+                                       }
+
+                                       else
+                                       {
+                                               dt = min(dt, (1 - actor.(weaponentity).vortex_charge) / WEP_CVAR(vortex, charge_rate));
+                                               actor.(weaponentity).vortex_charge += dt * WEP_CVAR(vortex, charge_rate);
+                                       }
+                               }
+                       }
+                       else if(WEP_CVAR(vortex, secondary))
+                       {
+                               if(weapon_prepareattack(thiswep, actor, weaponentity, false, WEP_CVAR_SEC(vortex, refire)))
+                               {
+                                       W_Vortex_Attack(thiswep, actor, weaponentity, 1);
+                                       weapon_thinkf(actor, weaponentity, WFRAME_FIRE1, WEP_CVAR_SEC(vortex, animtime), w_ready);
+                               }
+                       }
+               }
+       }
 }
 METHOD(Vortex, wr_setup, void(entity thiswep, entity actor, .entity weaponentity))
 {
-    actor.vortex_lasthit = 0;
+       actor.vortex_lasthit = 0;
 }
 METHOD(Vortex, wr_checkammo1, bool(entity thiswep, entity actor, .entity weaponentity))
 {
-    float ammo_amount = GetResource(actor, thiswep.ammo_type) >= WEP_CVAR_PRI(vortex, ammo);
-    ammo_amount += (autocvar_g_balance_vortex_reload_ammo && actor.(weaponentity).(weapon_load[thiswep.m_id]) >= WEP_CVAR_PRI(vortex, ammo));
-    return ammo_amount;
+       float ammo_amount = GetResource(actor, thiswep.ammo_type) >= WEP_CVAR_PRI(vortex, ammo);
+       ammo_amount += (autocvar_g_balance_vortex_reload_ammo && actor.(weaponentity).(weapon_load[thiswep.m_id]) >= WEP_CVAR_PRI(vortex, ammo));
+       return ammo_amount;
 }
 METHOD(Vortex, wr_checkammo2, bool(entity thiswep, entity actor, .entity weaponentity))
 {
-    if(WEP_CVAR(vortex, secondary))
-    {
-        // don't allow charging if we don't have enough ammo
-        float ammo_amount = GetResource(actor, thiswep.ammo_type) >= WEP_CVAR_SEC(vortex, ammo);
-        ammo_amount += actor.(weaponentity).(weapon_load[thiswep.m_id]) >= WEP_CVAR_SEC(vortex, ammo);
-        return ammo_amount;
-    }
-    else
-    {
-        return false; // zoom is not a fire mode
-    }
+       if(WEP_CVAR(vortex, secondary))
+       {
+               // don't allow charging if we don't have enough ammo
+               float ammo_amount = GetResource(actor, thiswep.ammo_type) >= WEP_CVAR_SEC(vortex, ammo);
+               ammo_amount += actor.(weaponentity).(weapon_load[thiswep.m_id]) >= WEP_CVAR_SEC(vortex, ammo);
+               return ammo_amount;
+       }
+       else
+       {
+               return false; // zoom is not a fire mode
+       }
 }
 METHOD(Vortex, wr_resetplayer, void(entity thiswep, entity actor))
 {
-    if (WEP_CVAR(vortex, charge)) {
-        for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
-        {
-            .entity weaponentity = weaponentities[slot];
-            actor.(weaponentity).vortex_charge = WEP_CVAR(vortex, charge_start);
-
-            if (WEP_CVAR_SEC(vortex, chargepool))
-                actor.(weaponentity).vortex_chargepool_ammo = 1;
-        }
-    }
-    actor.vortex_lasthit = 0;
+       if (WEP_CVAR(vortex, charge)) {
+               for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
+               {
+                       .entity weaponentity = weaponentities[slot];
+                       actor.(weaponentity).vortex_charge = WEP_CVAR(vortex, charge_start);
+
+                       if (WEP_CVAR_SEC(vortex, chargepool))
+                               actor.(weaponentity).vortex_chargepool_ammo = 1;
+               }
+       }
+       actor.vortex_lasthit = 0;
 }
 METHOD(Vortex, wr_reload, void(entity thiswep, entity actor, .entity weaponentity))
 {
-    W_Reload(actor, weaponentity, min(WEP_CVAR_PRI(vortex, ammo), WEP_CVAR_SEC(vortex, ammo)), SND_RELOAD);
+       W_Reload(actor, weaponentity, min(WEP_CVAR_PRI(vortex, ammo), WEP_CVAR_SEC(vortex, ammo)), SND_RELOAD);
 }
 METHOD(Vortex, wr_suicidemessage, Notification(entity thiswep))
 {
-    return WEAPON_THINKING_WITH_PORTALS;
+       return WEAPON_THINKING_WITH_PORTALS;
 }
 METHOD(Vortex, wr_killmessage, Notification(entity thiswep))
 {
-    return WEAPON_VORTEX_MURDER;
+       return WEAPON_VORTEX_MURDER;
 }
 METHOD(Vortex, wr_zoom, bool(entity thiswep, entity actor))
 {
-    return PHYS_INPUT_BUTTON_ATCK2(actor) && !WEP_CVAR(vortex, secondary);
+       return PHYS_INPUT_BUTTON_ATCK2(actor) && !WEP_CVAR(vortex, secondary);
 }
 
 #endif
@@ -332,34 +320,34 @@ METHOD(Vortex, wr_zoom, bool(entity thiswep, entity actor))
 
 METHOD(Vortex, wr_impacteffect, void(entity thiswep, entity actor))
 {
-    entity this = actor;
-    vector org2 = w_org + w_backoff * 6;
-    pointparticles(EFFECT_VORTEX_IMPACT, org2, '0 0 0', 1);
-    if(!w_issilent)
-        sound(this, CH_SHOTS, SND_NEXIMPACT, VOL_BASE, ATTN_NORM);
+       entity this = actor;
+       vector org2 = w_org + w_backoff * 6;
+       pointparticles(EFFECT_VORTEX_IMPACT, org2, '0 0 0', 1);
+       if(!w_issilent)
+               sound(this, CH_SHOTS, SND_NEXIMPACT, VOL_BASE, ATTN_NORM);
 }
 METHOD(Vortex, wr_init, void(entity thiswep))
 {
-    if(autocvar_cl_reticle && autocvar_cl_reticle_weapon)
-    {
-        precache_pic("gfx/reticle_nex");
-    }
+       if(autocvar_cl_reticle && autocvar_cl_reticle_weapon)
+       {
+               precache_pic("gfx/reticle_nex");
+       }
 }
 METHOD(Vortex, wr_zoom, bool(entity thiswep, entity actor))
 {
-    if(button_zoom || zoomscript_caught || (!WEP_CVAR(vortex, secondary) && button_attack2))
-    {
-        return true;
-    }
-    else
-    {
-        // no weapon specific image for this weapon
-        return false;
-    }
+       if(button_zoom || zoomscript_caught || (!WEP_CVAR(vortex, secondary) && button_attack2))
+       {
+               return true;
+       }
+       else
+       {
+               // no weapon specific image for this weapon
+               return false;
+       }
 }
 METHOD(Vortex, wr_zoomdir, bool(entity thiswep))
 {
-    return button_attack2 && !WEP_CVAR(vortex, secondary);
+       return button_attack2 && !WEP_CVAR(vortex, secondary);
 }
 
 #endif
index fcce2a23d7a3c2427ae03a31c0b15efcfe57ce0b..fc2c3979c2b15226d5242fc95fdc641ad658b53e 100644 (file)
@@ -165,7 +165,7 @@ void CL_ExteriorWeaponentity_Think(entity this)
        else this.alpha = 1;
 
        Weapon wep = this.owner.(weaponentity).m_weapon;
-       if (wep) this.glowmod = weaponentity_glowmod(wep, this.owner, this.owner.clientcolors, this.owner.(weaponentity));
+       if (wep) this.glowmod = weaponentity_glowmod(wep, this.owner.clientcolors, this.owner.(weaponentity));
        this.colormap = this.owner.colormap;
        this.skin = w_ent.skin;
 
index 651cd1503acdb5dd889885b454166e809ac2a878..58f057e20c70f8bc061b425fc4a30f22e816bbd7 100644 (file)
@@ -123,15 +123,6 @@ utf8_enable 1
 mod_q3shader_default_polygonoffset -14
 mod_q3shader_default_polygonfactor 0
 
-// random charge stuff :P
-set g_weapon_charge_colormod_hdrmultiplier 4 "how much to multiply the colors by in the colormod vector"
-set g_weapon_charge_colormod_red_half 0
-set g_weapon_charge_colormod_green_half 0.5
-set g_weapon_charge_colormod_blue_half 1
-set g_weapon_charge_colormod_red_full 1
-set g_weapon_charge_colormod_green_full -0.5
-set g_weapon_charge_colormod_blue_full -1
-
 // session locking
 locksession 1