});
}
-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)
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",
{
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)