X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fserver%2Fspawnpoints.qh;h=39b5492c5e2aab8cfad6b48f0655d0abf4a83139;hp=e697001c18145e96233de28a8bfba1e436f59503;hb=76afe6b4bb64b3f349bcf8aeadd04d0b319a7d01;hpb=688276421e89bb47394a765b2b242f81da1d4228 diff --git a/qcsrc/server/spawnpoints.qh b/qcsrc/server/spawnpoints.qh index e697001c1..39b5492c5 100644 --- a/qcsrc/server/spawnpoints.qh +++ b/qcsrc/server/spawnpoints.qh @@ -1,11 +1,27 @@ -#ifndef SPAWNPOINTS_H -#define SPAWNPOINTS_H +#pragma once + +// spawnpoint prios +const int SPAWN_PRIO_NEAR_TEAMMATE_FOUND = 200; +const int SPAWN_PRIO_NEAR_TEAMMATE_SAMETEAM = 100; +const int SPAWN_PRIO_RACE_PREVIOUS_SPAWN = 50; +const int SPAWN_PRIO_GOOD_DISTANCE = 10; + +bool some_spawn_has_been_used; +int have_team_spawns; // 0 = no team spawns requested, -1 = team spawns requested but none found, 1 = team spawns requested and found +int have_team_spawns_forteams; // if Xth bit is 1 then team X has spawns else it has no spawns; team 0 is the "no-team" .vector spawnpoint_score; float spawnpoint_nag; -float SpawnEvent_Send(entity to, int sf); -entity Spawn_FilterOutBadSpots(entity firstspot, float mindist, float teamcheck); -entity SelectSpawnPoint (float anypoint); -void spawnfunc_info_player_deathmatch(); -void spawnpoint_use(); -#endif +bool SpawnEvent_Send(entity this, entity to, int sf); +entity Spawn_FilterOutBadSpots(entity this, entity firstspot, float mindist, float teamcheck, bool targetcheck); +entity SelectSpawnPoint(entity this, bool anypoint); +spawnfunc(info_player_deathmatch); +void spawnpoint_use(entity this, entity actor, entity trigger); + +USING(spawn_evalfunc_t, vector(entity this, entity player, entity spot, vector current)); +.spawn_evalfunc_t spawn_evalfunc; + +.int restriction; + +IntrusiveList g_spawnpoints; +STATIC_INIT(g_spawnpoints) { g_spawnpoints = IL_NEW(); }