]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/race.qc
Bots: define the API boundaries
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / race.qc
index c83f5252fe4c4a99e67c099d0f5c0ee0b0f30b79..4c451caa7393959f5db6249d3af379358e83b7c1 100644 (file)
@@ -5,8 +5,6 @@
 #include "portals.qh"
 #include "scores.qh"
 #include "spawnpoints.qh"
-#include "bot/waypoints.qh"
-#include "bot/navigation.qh"
 #include "command/getreplies.qh"
 #include "../common/deathtypes.qh"
 #include "../common/notifications.qh"
@@ -86,7 +84,7 @@ string race_readName(string map, float pos)
 
 const float MAX_CHECKPOINTS = 255;
 
-void spawnfunc_target_checkpoint();
+spawnfunc(target_checkpoint);
 
 .float race_penalty;
 .float race_penalty_accumulator;
@@ -929,8 +927,8 @@ vector trigger_race_checkpoint_spawn_evalfunc(entity player, entity spot, vector
        return current;
 }
 
-void spawnfunc_trigger_race_checkpoint()
-{SELFPARAM();
+spawnfunc(trigger_race_checkpoint)
+{
        vector o;
        if(!g_race && !g_cts) { remove(self); return; }
 
@@ -977,8 +975,8 @@ void spawnfunc_trigger_race_checkpoint()
        InitializeEntity(self, trigger_race_checkpoint_verify, INITPRIO_FINDTARGET);
 }
 
-void spawnfunc_target_checkpoint() // defrag entity
-{SELFPARAM();
+spawnfunc(target_checkpoint) // defrag entity
+{
        vector o;
        if(!g_race && !g_cts) { remove(self); return; }
        defrag_ents = 1;
@@ -1018,8 +1016,8 @@ void spawnfunc_target_checkpoint() // defrag entity
        InitializeEntity(self, trigger_race_checkpoint_verify, INITPRIO_FINDTARGET);
 }
 
-void spawnfunc_target_startTimer() { spawnfunc_target_checkpoint(); }
-void spawnfunc_target_stopTimer() { spawnfunc_target_checkpoint(); }
+spawnfunc(target_startTimer) { spawnfunc_target_checkpoint(this); }
+spawnfunc(target_stopTimer) { spawnfunc_target_checkpoint(this); }
 
 void race_AbandonRaceCheck(entity p)
 {
@@ -1059,11 +1057,11 @@ void race_RetractPlayer()
        self.race_checkpoint = self.race_respawn_checkpoint;
 }
 
-void spawnfunc_info_player_race (void)
-{SELFPARAM();
+spawnfunc(info_player_race)
+{
        if(!g_race && !g_cts) { remove(self); return; }
        ++race_spawns;
-       spawnfunc_info_player_deathmatch();
+       spawnfunc_info_player_deathmatch(this);
 
        if(self.race_place > race_highest_place_spawn)
                race_highest_place_spawn = self.race_place;
@@ -1087,8 +1085,7 @@ void race_ClearRecords()
        FOR_EACH_CLIENT(e)
        {
                float p = e.race_place;
-               SELFCALL(e, race_PreparePlayer());
-               SELFCALL_DONE();
+               WITH(entity, self, e, race_PreparePlayer());
                e.race_place = p;
        }
 }
@@ -1142,8 +1139,8 @@ void penalty_use()
        race_ImposePenaltyTime(activator, self.race_penalty, self.race_penalty_reason);
 }
 
-void spawnfunc_trigger_race_penalty()
-{SELFPARAM();
+spawnfunc(trigger_race_penalty)
+{
        EXACTTRIGGER_INIT;
 
        self.use = penalty_use;