X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fserver%2Frace.qc;h=c83f5252fe4c4a99e67c099d0f5c0ee0b0f30b79;hp=4482fe327901b7e42a4e91da460fc596f6f3d525;hb=f7f97e1cda9e8f5c5e0d044d7768245afc565aa1;hpb=fbb96108e5828a7557694db4469c2d0d7c582846 diff --git a/qcsrc/server/race.qc b/qcsrc/server/race.qc index 4482fe327..c83f5252f 100644 --- a/qcsrc/server/race.qc +++ b/qcsrc/server/race.qc @@ -5,7 +5,6 @@ #include "portals.qh" #include "scores.qh" #include "spawnpoints.qh" -#include "waypointsprites.qh" #include "bot/waypoints.qh" #include "bot/navigation.qh" #include "command/getreplies.qh" @@ -549,28 +548,28 @@ void dumpsurface(entity e) { float n, si, ni; vector norm, vec; - print("Surfaces of ", etos(e), ":\n"); + LOG_INFO("Surfaces of ", etos(e), ":\n"); - print("TEST = ", ftos(getsurfacenearpoint(e, '0 0 0')), "\n"); + LOG_INFO("TEST = ", ftos(getsurfacenearpoint(e, '0 0 0')), "\n"); for(si = 0; ; ++si) { n = getsurfacenumpoints(e, si); if(n <= 0) break; - print(" Surface ", ftos(si), ":\n"); + LOG_INFO(" Surface ", ftos(si), ":\n"); norm = getsurfacenormal(e, si); - print(" Normal = ", vtos(norm), "\n"); + LOG_INFO(" Normal = ", vtos(norm), "\n"); for(ni = 0; ni < n; ++ni) { vec = getsurfacepoint(e, si, ni); - print(" Point ", ftos(ni), " = ", vtos(vec), " (", ftos(norm * vec), ")\n"); + LOG_INFO(" Point ", ftos(ni), " = ", vtos(vec), " (", ftos(norm * vec), ")\n"); } } } void checkpoint_passed() -{ +{SELFPARAM(); string oldmsg; entity cp; @@ -578,7 +577,7 @@ void checkpoint_passed() { // do not allow portalling through checkpoints trace_plane_normal = normalize(-1 * other.velocity); - self = other; + setself(other); W_Porto_Fail(0); return; } @@ -725,7 +724,7 @@ void checkpoint_use() } float race_waypointsprite_visible_for_player(entity e) -{ +{SELFPARAM(); if(e.race_checkpoint == -1 || self.owner.race_checkpoint == -2) return true; else if(e.race_checkpoint == self.owner.race_checkpoint) @@ -736,8 +735,8 @@ float race_waypointsprite_visible_for_player(entity e) float have_verified; void trigger_race_checkpoint_verify() -{ - entity oldself, cp; +{SELFPARAM(); + entity cp; float i, p; float qual; @@ -747,8 +746,7 @@ void trigger_race_checkpoint_verify() qual = g_race_qualifying; - oldself = self; - self = spawn(); + setself(spawn()); self.classname = "player"; if(g_race) @@ -828,9 +826,9 @@ void trigger_race_checkpoint_verify() if(defrag_ents) { for(cp = world; (cp = find(cp, classname, "target_startTimer"));) - WaypointSprite_UpdateSprites(cp.sprite, "race-start", "", ""); + WaypointSprite_UpdateSprites(cp.sprite, WP_RaceStart, WP_Null, WP_Null); for(cp = world; (cp = find(cp, classname, "target_stopTimer"));) - WaypointSprite_UpdateSprites(cp.sprite, "race-finish", "", ""); + WaypointSprite_UpdateSprites(cp.sprite, WP_RaceFinish, WP_Null, WP_Null); for(cp = world; (cp = find(cp, classname, "target_checkpoint"));) { @@ -863,9 +861,9 @@ void trigger_race_checkpoint_verify() if(cp.sprite) { if(cp.race_checkpoint == 0) - WaypointSprite_UpdateSprites(cp.sprite, "race-start", "", ""); + WaypointSprite_UpdateSprites(cp.sprite, WP_RaceStart, WP_Null, WP_Null); else if(cp.race_checkpoint == race_timed_checkpoint) - WaypointSprite_UpdateSprites(cp.sprite, "race-finish", "", ""); + WaypointSprite_UpdateSprites(cp.sprite, WP_RaceFinish, WP_Null, WP_Null); } } } @@ -896,11 +894,11 @@ void trigger_race_checkpoint_verify() } } remove(self); - self = oldself; + setself(this); } vector trigger_race_checkpoint_spawn_evalfunc(entity player, entity spot, vector current) -{ +{SELFPARAM(); if(g_race_qualifying) { // spawn at first @@ -932,7 +930,7 @@ vector trigger_race_checkpoint_spawn_evalfunc(entity player, entity spot, vector } void spawnfunc_trigger_race_checkpoint() -{ +{SELFPARAM(); vector o; if(!g_race && !g_cts) { remove(self); return; } @@ -968,9 +966,9 @@ void spawnfunc_trigger_race_checkpoint() if(!self.race_penalty) { if(self.race_checkpoint) - WaypointSprite_SpawnFixed("race-checkpoint", o, self, sprite, RADARICON_NONE, '1 0.5 0'); + WaypointSprite_SpawnFixed(WP_RaceCheckpoint, o, self, sprite, RADARICON_NONE); else - WaypointSprite_SpawnFixed("race-start-finish", o, self, sprite, RADARICON_NONE, '1 0.5 0'); + WaypointSprite_SpawnFixed(WP_RaceStartFinish, o, self, sprite, RADARICON_NONE); } self.sprite.waypointsprite_visible_for_player = race_waypointsprite_visible_for_player; @@ -980,7 +978,7 @@ void spawnfunc_trigger_race_checkpoint() } void spawnfunc_target_checkpoint() // defrag entity -{ +{SELFPARAM(); vector o; if(!g_race && !g_cts) { remove(self); return; } defrag_ents = 1; @@ -1011,9 +1009,9 @@ void spawnfunc_target_checkpoint() // defrag entity race_timed_checkpoint = 1; if(self.race_checkpoint == 0) - WaypointSprite_SpawnFixed("race-start", o, self, sprite, RADARICON_NONE, '1 0.5 0'); + WaypointSprite_SpawnFixed(WP_RaceStart, o, self, sprite, RADARICON_NONE); else - WaypointSprite_SpawnFixed("race-checkpoint", o, self, sprite, RADARICON_NONE, '1 0.5 0'); + WaypointSprite_SpawnFixed(WP_RaceCheckpoint, o, self, sprite, RADARICON_NONE); self.sprite.waypointsprite_visible_for_player = race_waypointsprite_visible_for_player; @@ -1044,7 +1042,7 @@ void race_StartCompleting() } void race_PreparePlayer() -{ +{SELFPARAM(); race_ClearTime(self); self.race_place = 0; self.race_started = 0; @@ -1053,7 +1051,7 @@ void race_PreparePlayer() } void race_RetractPlayer() -{ +{SELFPARAM(); if(!g_race && !g_cts) return; if(self.race_respawn_checkpoint == 0 || self.race_respawn_checkpoint == race_timed_checkpoint) @@ -1062,7 +1060,7 @@ void race_RetractPlayer() } void spawnfunc_info_player_race (void) -{ +{SELFPARAM(); if(!g_race && !g_cts) { remove(self); return; } ++race_spawns; spawnfunc_info_player_deathmatch(); @@ -1074,9 +1072,8 @@ void spawnfunc_info_player_race (void) } void race_ClearRecords() -{ +{SELFPARAM(); float i; - entity e; for(i = 0; i < MAX_CHECKPOINTS; ++i) { @@ -1086,15 +1083,14 @@ void race_ClearRecords() race_checkpoint_recordholders[i] = string_null; } - e = self; - FOR_EACH_CLIENT(self) + entity e; + FOR_EACH_CLIENT(e) { - float p; - p = self.race_place; - race_PreparePlayer(); - self.race_place = p; + float p = e.race_place; + SELFCALL(e, race_PreparePlayer()); + SELFCALL_DONE(); + e.race_place = p; } - self = e; } void race_ImposePenaltyTime(entity pl, float penalty, string reason) @@ -1132,7 +1128,7 @@ void race_ImposePenaltyTime(entity pl, float penalty, string reason) } void penalty_touch() -{ +{SELFPARAM(); EXACTTRIGGER_TOUCH; if(other.race_lastpenalty != self) { @@ -1142,12 +1138,12 @@ void penalty_touch() } void penalty_use() -{ +{SELFPARAM(); race_ImposePenaltyTime(activator, self.race_penalty, self.race_penalty_reason); } void spawnfunc_trigger_race_penalty() -{ +{SELFPARAM(); EXACTTRIGGER_INIT; self.use = penalty_use;