]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/sv_main.qc
Add an intrusive list for entities that save their team, and don't loop through pure...
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / sv_main.qc
index 0c36a77c5b7689665d101e1d676efe67af567e21..7ba19dafd5fcfe61489e3124f388869579877c38 100644 (file)
@@ -99,7 +99,17 @@ void CreatureFrame_FallDamage(entity this)
        {
                // check for falling damage
                float velocity_len = vlen(this.velocity);
-               if(!this.hook.state)
+               bool have_hook = false;
+               for(int slot = 0; slot < MAX_WEAPONSLOTS; ++slot)
+           {
+               .entity weaponentity = weaponentities[slot];
+               if(this.(weaponentity).hook && this.(weaponentity).hook.state)
+               {
+                       have_hook = true;
+                       break;
+               }
+           }
+               if(!have_hook)
                {
                        float dm = vlen(this.oldvelocity) - velocity_len; // dm is now the velocity DECREASE. Velocity INCREASE should never cause a sound or any damage.
                        if (IS_DEAD(this))
@@ -150,8 +160,7 @@ Called before each frame by the server
 =============
 */
 
-float game_delay;
-float game_delay_last;
+bool game_delay_last;
 
 bool autocvar_sv_autopause = false;
 float RedirectionThink();
@@ -210,17 +219,15 @@ void StartFrame()
        skill = autocvar_skill;
 
        // detect when the pre-game countdown (if any) has ended and the game has started
-       game_delay = (time < game_starttime);
-
+       bool game_delay = (time < game_starttime);
        if (autocvar_sv_eventlog && game_delay_last && !game_delay)
                GameLogEcho(":startdelay_ended");
-
        game_delay_last = game_delay;
 
        CreatureFrame_All();
        CheckRules_World();
 
-       if (warmup_stage && !gameover && warmup_limit > 0 && time >= warmup_limit) {
+       if (warmup_stage && !game_stopped && warmup_limit > 0 && time >= warmup_limit) {
                ReadyRestart();
                return;
        }