]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/race.qc
Merge branch 'master' into terencehill/bot_waypoints
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / race.qc
index 2668c3c896d0ffb7fbd2984035d425b54bc700bb..ef82cc3d603c6751f6811bcdab5a75353ade2268 100644 (file)
@@ -548,30 +548,6 @@ void race_ClearTime(entity e)
        });
 }
 
-void dumpsurface(entity e)
-{
-       float n, si, ni;
-       vector norm, vec;
-       LOG_INFO("Surfaces of ", etos(e), ":\n");
-
-       LOG_INFO("TEST = ", ftos(getsurfacenearpoint(e, '0 0 0')), "\n");
-
-       for(si = 0; ; ++si)
-       {
-               n = getsurfacenumpoints(e, si);
-               if(n <= 0)
-                       break;
-               LOG_INFO("  Surface ", ftos(si), ":\n");
-               norm = getsurfacenormal(e, si);
-               LOG_INFO("    Normal = ", vtos(norm), "\n");
-               for(ni = 0; ni < n; ++ni)
-               {
-                       vec = getsurfacepoint(e, si, ni);
-                       LOG_INFO("    Point ", ftos(ni), " = ", vtos(vec), " (", ftos(norm * vec), ")\n");
-               }
-       }
-}
-
 void checkpoint_passed(entity this, entity player)
 {
        if(player.personal && autocvar_g_allow_checkpoints)
@@ -621,6 +597,15 @@ void checkpoint_passed(entity this, entity player)
                        cp_amount += 1;
                        if(it.race_checkpoint > largest_cp_id) // update the finish id if someone hit a new checkpoint
                        {
+                               if(!largest_cp_id)
+                               {
+                                       IL_EACH(g_race_targets, it.classname == "target_checkpoint",
+                                       {
+                                               if(it.race_checkpoint == -2) // set defragcpexists to -1 so that the cp id file will be rewritten when someone finishes
+                                                       defragcpexists = -1;
+                                       });
+                               }
+
                                largest_cp_id = it.race_checkpoint;
                                IL_EACH(g_race_targets, it.classname == "target_stopTimer",
                                {
@@ -629,9 +614,6 @@ void checkpoint_passed(entity this, entity player)
                                race_highest_checkpoint = largest_cp_id + 1;
                                race_timed_checkpoint = largest_cp_id + 1;
                        }
-
-                       if(it.race_checkpoint == -2) // set defragcpexists to -1 so that the cp id file will be rewritten when someone finishes
-                               defragcpexists = -1;
                });
 
                if(!cp_amount)