MUTATOR_HOOKFUNCTION(rc, ClientConnect)
{SELFPARAM();
- race_PreparePlayer();
+ race_PreparePlayer(this);
self.race_checkpoint = -1;
string rr = RACE_RECORD;
else
self.frags = FRAGS_SPECTATOR;
- race_PreparePlayer();
+ race_PreparePlayer(this);
self.race_checkpoint = -1;
return false;
}
MUTATOR_HOOKFUNCTION(rc, PlayerSpawn)
-{SELFPARAM();
+{
+ entity player = M_ARGV(0, entity);
+ entity spawn_spot = M_ARGV(1, entity);
+
if(spawn_spot.target == "")
// Emergency: this wasn't a real spawnpoint. Can this ever happen?
- race_PreparePlayer();
+ race_PreparePlayer(player);
// if we need to respawn, do it right
- self.race_respawn_checkpoint = self.race_checkpoint;
- self.race_respawn_spotref = spawn_spot;
+ player.race_respawn_checkpoint = player.race_checkpoint;
+ player.race_respawn_spotref = spawn_spot;
- self.race_place = 0;
+ player.race_place = 0;
return false;
}
MUTATOR_HOOKFUNCTION(rc, PutClientInServer)
-{SELFPARAM();
- if(IS_PLAYER(self))
+{
+ entity player = M_ARGV(0, entity);
+
+ if(IS_PLAYER(player))
if(!gameover)
{
- if(self.killcount == FRAGS_SPECTATOR /* initial spawn */ || g_race_qualifying) // spawn
- race_PreparePlayer();
+ if(player.killcount == FRAGS_SPECTATOR /* initial spawn */ || g_race_qualifying) // spawn
+ race_PreparePlayer(player);
else // respawn
- race_RetractPlayer();
+ race_RetractPlayer(player);
- race_AbandonRaceCheck(self);
+ race_AbandonRaceCheck(player);
}
return false;
}
MUTATOR_HOOKFUNCTION(rc, PlayerDies)
{
+ entity frag_target = M_ARGV(2, entity);
+
frag_target.respawn_flags |= RESPAWN_FORCE;
race_AbandonRaceCheck(frag_target);
return false;