]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Merge branch 'master' into mirceakitsune/weapon_hagar_secondary_load
authorMircea Kitsune <sonichedgehog_hyperblast00@yahoo.com>
Fri, 13 May 2011 20:03:00 +0000 (23:03 +0300)
committerMircea Kitsune <sonichedgehog_hyperblast00@yahoo.com>
Fri, 13 May 2011 20:03:00 +0000 (23:03 +0300)
1  2 
qcsrc/server/cl_client.qc
qcsrc/server/cl_weapons.qc

index 4856f54ba5ad72240f3fefc8163d5aec49920382,04e22bb46ef9268bb9a18cbf2a333aed4e042b4c..3ba9b3f8907b26488069d8dc7c9fc7d20761c463
@@@ -1079,7 -1079,6 +1079,7 @@@ void PutClientInServer (void
                        if(e.spawnflags & WEP_FLAG_RELOADABLE) // prevent accessing undefined cvars
                                self.weapon_load[j] = cvar(strcat("g_balance_", e.netname, "_reload_ammo"));
                }
 +              self.weapon_forbidchange = FALSE;
  
                oldself = self;
                self = spot;
@@@ -1137,7 -1136,6 +1137,7 @@@ float ClientInit_SendEntity(entity to, 
        WriteByte(MSG_ENTITY, autocvar_g_balance_sniperrifle_secondary); // client has to know if it should zoom or not
        WriteByte(MSG_ENTITY, serverflags); // client has to know if it should zoom or not
        WriteByte(MSG_ENTITY, autocvar_g_balance_minelayer_limit); // minelayer max mines
 +      WriteByte(MSG_ENTITY, autocvar_g_balance_hagar_secondary_load_max); // hagar max loadable rockets
        WriteCoord(MSG_ENTITY, autocvar_g_trueaim_minrange);
        return TRUE;
  }
@@@ -2386,7 -2384,6 +2386,7 @@@ void SpectateCopy(entity spectatee) 
        self.weapon = spectatee.weapon;
        self.nex_charge = spectatee.nex_charge;
        self.nex_chargepool_ammo = spectatee.nex_chargepool_ammo;
 +      self.hagar_load = spectatee.hagar_load;
        self.minelayer_mines = spectatee.minelayer_mines;
        self.punchangle = spectatee.punchangle;
        self.view_ofs = spectatee.view_ofs;
@@@ -2746,7 -2743,26 +2746,26 @@@ void PlayerPreThink (void
                                        self.glowmod_z = -1;
                        }
                        else
+                       {
+                               // set weapon and player glowmod
                                self.glowmod = colormapPaletteColor(self.clientcolors & 0x0F, TRUE) * 2;
+                               if(self.weapon == WEP_NEX && autocvar_g_balance_nex_charge)
+                               {
+                                       self.weaponentity_glowmod_x = autocvar_g_weapon_charge_colormod_hdrmultiplier * autocvar_g_weapon_charge_colormod_red_half * min(1, self.nex_charge / autocvar_g_balance_nex_charge_animlimit);
+                                       self.weaponentity_glowmod_y = autocvar_g_weapon_charge_colormod_hdrmultiplier * autocvar_g_weapon_charge_colormod_green_half * min(1, self.nex_charge / autocvar_g_balance_nex_charge_animlimit);
+                                       self.weaponentity_glowmod_z = autocvar_g_weapon_charge_colormod_hdrmultiplier * autocvar_g_weapon_charge_colormod_blue_half * min(1, self.nex_charge / autocvar_g_balance_nex_charge_animlimit);
+                                       if(self.nex_charge > autocvar_g_balance_nex_charge_animlimit)
+                                       {
+                                               self.weaponentity_glowmod_x = self.weaponentity_glowmod_x + autocvar_g_weapon_charge_colormod_hdrmultiplier * autocvar_g_weapon_charge_colormod_red_full * (self.nex_charge - autocvar_g_balance_nex_charge_animlimit) / (1 - autocvar_g_balance_nex_charge_animlimit);
+                                               self.weaponentity_glowmod_y = self.weaponentity_glowmod_y + autocvar_g_weapon_charge_colormod_hdrmultiplier * autocvar_g_weapon_charge_colormod_green_full * (self.nex_charge - autocvar_g_balance_nex_charge_animlimit) / (1 - autocvar_g_balance_nex_charge_animlimit);
+                                               self.weaponentity_glowmod_z = self.weaponentity_glowmod_z + autocvar_g_weapon_charge_colormod_hdrmultiplier * autocvar_g_weapon_charge_colormod_blue_full * (self.nex_charge - autocvar_g_balance_nex_charge_animlimit) / (1 - autocvar_g_balance_nex_charge_animlimit);
+                                       }
+                               }
+                               else
+                                       self.weaponentity_glowmod = self.glowmod;
+                       }
                        player_powerups();
                }
  
index 548f7d76525c15a535bd24d3d459ebaa4fa7ced9,077d839a5fe6bfee654832b687917992a6f44cf6..ace69efbec371611a95e109a4e4fe90002468253
@@@ -197,6 -197,7 +197,7 @@@ string W_ThrowNewWeapon(entity own, flo
                self = oldself;
                if(startitem_failed)
                        return string_null;
+               wep.glowmod = own.weaponentity_glowmod;
                wep.think = thrown_wep_think;
                wep.nextthink = time + 0.5;
                return "";
                        }
                        s = substring(s, 5, -1);
                }
+               wep.glowmod = own.weaponentity_glowmod;
                wep.think = thrown_wep_think;
                wep.nextthink = time + 0.5;
                return s;
@@@ -282,8 -284,6 +284,8 @@@ void W_ThrowWeapon(vector velo, vector 
        w = self.weapon;
        if (w == 0)
                return; // just in case
 +      if(self.weapon_forbidchange)
 +              return;
        if(MUTATOR_CALLHOOK(ForbidThrowCurrentWeapon))
                return;
        if(!autocvar_g_weapon_throwable)
@@@ -409,7 -409,6 +411,6 @@@ void W_WeaponFrame(
                        v_forward = fo;
                        v_right = ri;
                        v_up = up;
-                       self.weaponentity_glowmod = '0 0 0'; // reset glowmod, weapon think function only *might* set it
                        weapon_action(self.weapon, WR_THINK);
                }
                if (time + self.weapon_frametime * 0.5 >= self.weapon_nextthink)