]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Merge branch 'master' into terencehill/freezetag_fixes
authorterencehill <piuntn@gmail.com>
Fri, 27 Apr 2012 21:51:33 +0000 (23:51 +0200)
committerterencehill <piuntn@gmail.com>
Fri, 27 Apr 2012 21:51:33 +0000 (23:51 +0200)
1  2 
qcsrc/server/cl_client.qc
qcsrc/server/cl_player.qc

index 5f53c377a7512cc40011a210828c9b30ff592dc5,fcc1cca97914ab03ecb4ff69ee10afc57bf377df..33b763cc3d201d68131adb64f37bab7d4e0eb290
@@@ -485,7 -485,7 +485,7 @@@ void PutObserverInServer (void
        setorigin (self, (spot.origin + PL_VIEW_OFS)); // offset it so that the spectator spawns higher off the ground, looks better this way
        self.prevorigin = self.origin;
        self.items = 0;
-       self.weapons = 0;
+       WEPSET_CLEAR_E(self);
        self.model = "";
        FixPlayermodel();
        setmodel(self, "null");
@@@ -547,11 -547,11 +547,11 @@@ void FixPlayermodel(
        vector m1, m2;
  
        defaultmodel = "";
+       defaultskin = 0;
+       chmdl = FALSE;
  
        if(autocvar_sv_defaultcharacter == 1)
        {
-               defaultskin = 0;
                if(teamplay)
                {
                        string s;
@@@ -735,7 -735,7 +735,7 @@@ void PutClientInServer (void
                        self.ammo_fuel = warmup_start_ammo_fuel;
                        self.health = warmup_start_health;
                        self.armorvalue = warmup_start_armorvalue;
-                       self.weapons = warmup_start_weapons;
+                       WEPSET_COPY_EA(self, warmup_start_weapons);
                }
                else
                {
                        self.ammo_fuel = start_ammo_fuel;
                        self.health = start_health;
                        self.armorvalue = start_armorvalue;
-                       self.weapons = start_weapons;
+                       WEPSET_COPY_EA(self, start_weapons);
                }
  
-               if(self.weapons & WEPBIT_SUPERWEAPONS) // exception for minstagib, as minstanex is a superweapon
+               if(WEPSET_CONTAINS_ANY_EA(self, WEPBIT_SUPERWEAPONS)) // exception for minstagib, as minstanex is a superweapon
                        self.superweapons_finished = time + autocvar_g_balance_superweapons_time;
                else
                        self.superweapons_finished = 0;
                if(g_weaponarena_random)
                {
                        if(g_weaponarena_random_with_laser)
-                               self.weapons &~= WEPBIT_LASER;
-                       self.weapons = randombits(self.weapons, g_weaponarena_random, FALSE);
+                               WEPSET_ANDNOT_EW(self, WEP_LASER);
+                       W_RandomWeapons(self, g_weaponarena_random);
                        if(g_weaponarena_random_with_laser)
-                               self.weapons |= WEPBIT_LASER;
+                               WEPSET_OR_EW(self, WEP_LASER);
                }
  
                self.items = start_items;
                //stuffcmd(self, "chase_active 0");
                //stuffcmd(self, "set viewsize $tmpviewsize \n");
  
-               if (autocvar_g_spawnsound)
-                       sound (self, CH_TRIGGER, "misc/spawn.wav", VOL_BASE, ATTN_NORM);
                if(g_assault) {
                        if(self.team == assault_attacker_team)
                                centerprint(self, "You are attacking!");
                        self.alivetime = time;
  
                antilag_clear(self);
+               if (autocvar_g_spawnsound)
+                       soundat(world, self.origin, CH_TRIGGER, "misc/spawn.wav", VOL_BASE, ATTN_NORM);
        } else if(self.classname == "observer") {
                PutObserverInServer ();
        }
@@@ -1355,7 -1355,7 +1355,7 @@@ void ClientConnect (void
                return;
        }
  
-       if(Ban_MaybeEnforceBan(self))
+       if(Ban_MaybeEnforceBanOnce(self))
                return;
  
        DecodeLevelParms();
  
        if(clienttype(self) == CLIENTTYPE_REAL)
        {
-               if(autocvar_g_bugrigs || g_weaponarena == WEPBIT_TUBA)
+               if(autocvar_g_bugrigs || WEPSET_EQ_AW(g_weaponarena_weapons, WEP_TUBA))
                        stuffcmd(self, "cl_cmd settemp chase_active 1\n");
        }
  
@@@ -1895,9 -1895,7 +1895,7 @@@ void player_powerups (void
                }
                if (self.items & IT_SUPERWEAPON)
                {
-                       //if(W_WeaponBit(self.weapon) & WEPBIT_SUPERWEAPONS)
-                       //      self.effects = self.effects | EF_RED;
-                       if (!(self.weapons & WEPBIT_SUPERWEAPONS))
+                       if (!WEPSET_CONTAINS_ANY_EA(self, WEPBIT_SUPERWEAPONS))
                        {
                                self.superweapons_finished = 0;
                                self.items = self.items - (self.items & IT_SUPERWEAPON);
                                if (time > self.superweapons_finished)
                                {
                                        self.items = self.items - (self.items & IT_SUPERWEAPON);
-                                       self.weapons &~= WEPBIT_SUPERWEAPONS;
+                                       WEPSET_ANDNOT_EA(self, WEPBIT_SUPERWEAPONS);
                                        sprint(self, "^3Superweapons have broken down\n");
                                }
                        }
                }
-               else if(self.weapons & WEPBIT_SUPERWEAPONS)
+               else if(WEPSET_CONTAINS_ANY_EA(self, WEPBIT_SUPERWEAPONS))
                {
                        if (time < self.superweapons_finished || (self.items & IT_UNLIMITED_SUPERWEAPONS))
                        {
                        else
                        {
                                self.superweapons_finished = 0;
-                               self.weapons &~= WEPBIT_SUPERWEAPONS; // just in case
+                               WEPSET_ANDNOT_EA(self, WEPBIT_SUPERWEAPONS);
                        }
                }
                else
@@@ -2155,7 -2153,7 +2153,7 @@@ void SpectateCopy(entity spectatee) 
        self.strength_finished = spectatee.strength_finished;
        self.invincible_finished = spectatee.invincible_finished;
        self.pressedkeys = spectatee.pressedkeys;
-       self.weapons = spectatee.weapons;
+       WEPSET_COPY_EE(self, spectatee);
        self.switchweapon = spectatee.switchweapon;
        self.switchingweapon = spectatee.switchingweapon;
        self.weapon = spectatee.weapon;
@@@ -2379,7 -2377,7 +2377,7 @@@ float nJoinAllowed(entity ignore) 
  
        // TODO simplify this
        entity e;
-       float totalClients;
+       float totalClients = 0;
        FOR_EACH_CLIENT(e)
                if(e != ignore)
                        totalClients += 1;
        if (!autocvar_g_maxplayers)
                return maxclients - totalClients;
  
-       float currentlyPlaying;
+       float currentlyPlaying = 0;
        FOR_EACH_REALPLAYER(e)
                currentlyPlaying += 1;
  
@@@ -2784,7 -2782,7 +2782,7 @@@ void PlayerPreThink (void
  
                self.prevorigin = self.origin;
  
 -              if (((self.BUTTON_CROUCH && !self.hook.state) || self.health <= g_bloodloss) && self.animstate_startframe != self.anim_melee_x) // prevent crouching if using melee attack
 +              if (((self.BUTTON_CROUCH && !self.hook.state) || self.health <= g_bloodloss) && !self.freezetag_frozen && self.animstate_startframe != self.anim_melee_x) // prevent crouching if using melee attack
                {
                        if (!self.crouch)
                        {
index f2a9a7259df124d0d5a420a2a3f4819dfd747d0c,fd14d42b8d9aa4718450f3a68591d0a4a04bfc0c..b03d8aa7d7b4626718c153d4338a0fca0e101051
@@@ -271,9 -271,7 +271,9 @@@ void player_anim (void
  
        if (!self.animstate_override)
        {
 -              if (!(self.flags & FL_ONGROUND) || self.BUTTON_JUMP)
 +              if (self.freezetag_frozen)
 +                      setanim(self, self.anim_idle, TRUE, FALSE, FALSE);
 +              else if (!(self.flags & FL_ONGROUND) || self.BUTTON_JUMP)
                {
                        if (self.crouch)
                        {
@@@ -362,7 -360,7 +362,7 @@@ void SpawnThrownWeapon (vector org, flo
                float j;
                for(j = WEP_FIRST; j <= WEP_LAST; ++j)
                {
-                       if(self.weapons & W_WeaponBit(j))
+                       if(WEPSET_CONTAINS_EW(self, j))
                                if(W_IsWeaponThrowable(j))
                                        W_ThrowNewWeapon(self, j, FALSE, org, randomvec() * 175 + '0 0 325');
                }
@@@ -601,6 -599,8 +601,8 @@@ void PlayerDamage (entity inflictor, en
        vbot = (clienttype(self) == CLIENTTYPE_BOT);
  
        valid_damage_for_weaponstats = 0;
+       awep = 0;
        if(vbot || clienttype(self) == CLIENTTYPE_REAL)
        if(abot || clienttype(attacker) == CLIENTTYPE_REAL)
        if(attacker && self != attacker)
@@@ -807,14 -807,12 +809,12 @@@ float Say(entity source, float teamsay
  //   0 = reject
  //  -1 = fake accept
  {
-       string msgstr, colorstr, cmsgstr, namestr, fullmsgstr, sourcemsgstr, fullcmsgstr, sourcecmsgstr, privatemsgprefix;
-       float flood, privatemsgprefixlen;
+       string msgstr, colorstr, cmsgstr, namestr, fullmsgstr, sourcemsgstr, fullcmsgstr, sourcecmsgstr;
+       float flood;
        var .float flood_field;
        entity head;
        float ret;
-       if(Ban_MaybeEnforceBan(source))
-               return 0;
+       string privatemsgprefix = string_null; float privatemsgprefixlen = 0;
  
        if(!teamsay && !privatesay)
                if(substring(msgin, 0, 1) == " ")
        else if(teamplay)
                colorstr = Team_ColorCode(source.team);
        else
+       {
+               colorstr = "";
                teamsay = FALSE;
+       }
  
        if(intermission_running)
                teamsay = FALSE;
  
        // FLOOD CONTROL
        flood = 0;
+       flood_field = floodcontrol_chat;
        if(floodcontrol)
        {
                float flood_spl;
        if(source.classname != "player")
        {
                if not(intermission_running)
-                       if(teamsay || (autocvar_g_chat_nospectators == 1) || (autocvar_g_chat_nospectators == 2 && !inWarmupStage))
+                       if(teamsay || (autocvar_g_chat_nospectators == 1) || (autocvar_g_chat_nospectators == 2 && !(inWarmupStage || gameover)))
                                teamsay = -1; // spectators
        }