]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Clean up some slot 0 cases on client (fixes reticles)
authorMario <mario@smbclan.net>
Wed, 5 Oct 2016 11:48:09 +0000 (21:48 +1000)
committerMario <mario@smbclan.net>
Wed, 5 Oct 2016 11:48:09 +0000 (21:48 +1000)
qcsrc/client/hud/hud.qh
qcsrc/client/view.qc

index 4cd0ee88e32e0a1e50ae67920994b277dfb0feae..58e6a1b7d8bfe56db29384455cdca7db4df0fb7b 100644 (file)
@@ -90,8 +90,8 @@ float complain_weapon_time;
 PlayerScoreField ps_primary, ps_secondary;
 int ts_primary, ts_secondary;
 
-Weapon last_switchweapon;
-Weapon last_activeweapon;
+.Weapon last_switchweapon;
+.Weapon last_activeweapon;
 float weapontime;
 float weaponprevtime;
 
index def064d499e6fca7979c2e150e674e4c49a590c4..93c632e70fe250c34971c21f8d6fbad491becd41 100644 (file)
@@ -1782,33 +1782,36 @@ void CSQC_UpdateView(entity this, float w, float h)
 
        ColorTranslateMode = autocvar_cl_stripcolorcodes;
 
-       entity wepent = viewmodels[0]; // TODO: unhardcode
-
-       if(last_switchweapon != wepent.switchweapon)
+       for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
        {
-               weapontime = time;
-               last_switchweapon = wepent.switchweapon;
-               if(button_zoom && autocvar_cl_unpress_zoom_on_weapon_switch)
+               entity wepent = viewmodels[slot];
+
+               if(wepent.last_switchweapon != wepent.switchweapon)
                {
-                       localcmd("-zoom\n");
-                       button_zoom = false;
+                       weapontime = time;
+                       wepent.last_switchweapon = wepent.switchweapon;
+                       if(slot == 0 && button_zoom && autocvar_cl_unpress_zoom_on_weapon_switch)
+                       {
+                               localcmd("-zoom\n");
+                               button_zoom = false;
+                       }
+                       if(slot == 0 && autocvar_cl_unpress_attack_on_weapon_switch)
+                       {
+                               localcmd("-fire\n");
+                               localcmd("-fire2\n");
+                               button_attack2 = false;
+                       }
                }
-               if(autocvar_cl_unpress_attack_on_weapon_switch)
+               if(wepent.last_activeweapon != wepent.activeweapon)
                {
-                       localcmd("-fire\n");
-                       localcmd("-fire2\n");
-                       button_attack2 = false;
-               }
-       }
-       if(last_activeweapon != wepent.activeweapon)
-       {
-               last_activeweapon = wepent.activeweapon;
+                       wepent.last_activeweapon = wepent.activeweapon;
 
-               e = wepent.activeweapon;
-               if(e.netname != "")
-                       localcmd(strcat("\ncl_hook_activeweapon ", e.netname), "\n");
-               else
-                       localcmd("\ncl_hook_activeweapon none\n");
+                       e = wepent.activeweapon;
+                       if(e.netname != "")
+                               localcmd(strcat("\ncl_hook_activeweapon ", e.netname), "\n");
+                       else if(slot == 0)
+                               localcmd("\ncl_hook_activeweapon none\n");
+               }
        }
 
        // ALWAYS Clear Current Scene First
@@ -1936,7 +1939,7 @@ void CSQC_UpdateView(entity this, float w, float h)
 
        if(autocvar_cl_reticle)
        {
-               string reticle_image = wepent.activeweapon.w_reticle;
+               string reticle_image = "";
                bool wep_zoomed = false;
                for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
                {
@@ -1945,7 +1948,8 @@ void CSQC_UpdateView(entity this, float w, float h)
                        if(wep != WEP_Null && wep.wr_zoom)
                        {
                                bool do_zoom = wep.wr_zoom(wep, NULL);
-                               reticle_image = wep.w_reticle;
+                               if(wep.w_reticle && wep.w_reticle != "")
+                                       reticle_image = wep.w_reticle;
                                wep_zoomed += do_zoom;
                        }
                }