]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Fix monsters still being selected after changing teams
authorMario <mario.mario@y7mail.com>
Thu, 7 Feb 2013 05:23:29 +0000 (16:23 +1100)
committerMario <mario.mario@y7mail.com>
Thu, 7 Feb 2013 05:23:29 +0000 (16:23 +1100)
qcsrc/server/mutators/gamemode_rts.qc

index 003534f8e518c1427e21a7dfce3caf82a8d98513..cd815b991da02bbf7ed4b46e0c4510dc0068df03 100644 (file)
@@ -264,6 +264,25 @@ MUTATOR_HOOKFUNCTION(rts_PlayerPhysics)
        return FALSE;
 }
 
+MUTATOR_HOOKFUNCTION(rts_PlayerDies)
+{
+       // prevent changing teams with selected monsters
+       entity head;
+       FOR_EACH_MONSTER(head)
+       {
+               if(head.owner != self) continue;
+               if(!head.selected) continue;
+               
+               if(IsDifferentTeam(self, head))
+               {
+                       head.selected = FALSE;
+                       head.owner = world;
+               }
+       }
+       
+       return FALSE;
+}
+
 void rts_ScoreRules()
 {
        ScoreRules_basics(2, SFL_SORT_PRIO_PRIMARY, 0, TRUE);
@@ -294,6 +313,7 @@ MUTATOR_DEFINITION(gamemode_rts)
        MUTATOR_HOOK(MonsterRespawn, rts_MonsterRespawn, CBC_ORDER_ANY);
        MUTATOR_HOOK(MonsterCheckBossFlag, rts_MonsterBossFlag, CBC_ORDER_ANY);
        MUTATOR_HOOK(PlayerDamage_Calculate, rts_PlayerDamage, CBC_ORDER_ANY);
+       MUTATOR_HOOK(PlayerDies, rts_PlayerDies, CBC_ORDER_ANY);
        
        MUTATOR_ONADD
        {