]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Disable vehicles in tower defense
authorMario <mario.mario@y7mail.com>
Sun, 27 Jan 2013 15:55:13 +0000 (02:55 +1100)
committerMario <mario.mario@y7mail.com>
Sun, 27 Jan 2013 15:55:13 +0000 (02:55 +1100)
qcsrc/server/mutators/base.qh
qcsrc/server/mutators/gamemode_td.qc
qcsrc/server/vehicles/vehicles.qc

index 90b376884f60787a16f62c740215c9cd22f953d7..0029fb9d7bda1ae8c33f2f6979a9377094c9271e 100644 (file)
@@ -260,6 +260,9 @@ MUTATOR_HOOKABLE(HelpMePing);
        // INPUT
        entity self; // the player who pressed impulse 33
        
+MUTATOR_HOOKABLE(VehicleSpawn);
+       // called when a vehicle spawns
+       
 MUTATOR_HOOKABLE(VehicleEnter);
        // called when a player enters a vehicle
        // allows mutators to set special settings in this event
index f442067d6323b98001a4bed2a908a3f53e586e0d..e37b72ecd0552c5e67ada58b6c27bea81df020dd 100644 (file)
@@ -887,6 +887,12 @@ MUTATOR_HOOKFUNCTION(td_TurretSpawn)
        return FALSE;
 }
 
+MUTATOR_HOOKFUNCTION(td_DisableVehicles)
+{
+       // you shall not spawn!
+       return TRUE;
+}
+
 MUTATOR_HOOKFUNCTION(td_PlayerCommand)
 {
        if(MUTATOR_RETURNVALUE) { return FALSE; } // command was already handled?
@@ -1033,6 +1039,7 @@ MUTATOR_DEFINITION(gamemode_td)
        MUTATOR_HOOK(PlayerDies, td_PlayerDies, CBC_ORDER_ANY);
        MUTATOR_HOOK(PlayerDamage_Calculate, td_PlayerDamage_Calculate, CBC_ORDER_ANY);
        MUTATOR_HOOK(PlayerSpawn, td_PlayerSpawn, CBC_ORDER_ANY);
+       MUTATOR_HOOK(VehicleSpawn, td_DisableVehicles, CBC_ORDER_ANY);
        MUTATOR_HOOK(SV_ParseClientCommand, td_PlayerCommand, CBC_ORDER_ANY);
        
        MUTATOR_ONADD
index b7b168eebcb57a3d5409b43f3df29831847a61e7..de4e2f71df43ca9adb2d6b77e898fe6a8a54b14f 100644 (file)
@@ -1315,6 +1315,9 @@ float vehicle_initialize(string  net_name,
     self.pos1 = self.origin;
     self.pos2 = self.angles;
     self.tur_head.team = self.team;
+       
+       if(MUTATOR_CALLHOOK(VehicleSpawn))
+               return FALSE;
 
     return TRUE;
 }