From: Mircea Kitsune Date: Sun, 4 Dec 2011 15:26:04 +0000 (+0200) Subject: Merge branch 'master' into mirceakitsune/sandbox X-Git-Tag: xonotic-v0.6.0~35^2~15^2~14 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=6fefb38d7618ba85d7ec2484d18231a76373f313;p=xonotic%2Fxonotic-data.pk3dir.git Merge branch 'master' into mirceakitsune/sandbox --- 6fefb38d7618ba85d7ec2484d18231a76373f313 diff --cc qcsrc/server/miscfunctions.qc index 87fa4d627,f9a9990a4..0e98a5671 --- a/qcsrc/server/miscfunctions.qc +++ b/qcsrc/server/miscfunctions.qc @@@ -1101,8 -1086,8 +1101,10 @@@ void readlevelcvars(void MUTATOR_ADD(mutator_rocketflying); if(cvar("g_vampire")) MUTATOR_ADD(mutator_vampire); + if(cvar("g_spawn_near_teammate")) + MUTATOR_ADD(mutator_spawn_near_teammate); + if(cvar("g_sandbox")) + MUTATOR_ADD(sandbox); if(cvar("sv_allow_fullbright")) serverflags |= SERVERFLAG_ALLOW_FULLBRIGHT; diff --cc qcsrc/server/mutators/base.qh index 621e4db6c,e668c1da1..174c10235 --- a/qcsrc/server/mutators/base.qh +++ b/qcsrc/server/mutators/base.qh @@@ -189,5 -190,11 +190,13 @@@ MUTATOR_HOOKABLE(SV_ParseClientCommand) } */ +MUTATOR_HOOKABLE(SV_StartFrame); + // runs globally each server frame + MUTATOR_HOOKABLE(Spawn_Score); + // called when a spawnpoint is being evaluated + // return 1 to make the spawnpoint unusable + // INPUT + entity self; // player wanting to spawn + entity spawn_spot; // spot to be evaluated + // IN+OUT + vector spawn_score; // _x is priority, _y is "distance" diff --cc qcsrc/server/mutators/mutators.qh index 349d945df,ba7edaeec..1cd07929e --- a/qcsrc/server/mutators/mutators.qh +++ b/qcsrc/server/mutators/mutators.qh @@@ -8,4 -8,4 +8,5 @@@ MUTATOR_DECLARATION(mutator_dodging) MUTATOR_DECLARATION(mutator_rocketflying); MUTATOR_DECLARATION(mutator_vampire); +MUTATOR_DECLARATION(sandbox); + MUTATOR_DECLARATION(mutator_spawn_near_teammate); diff --cc qcsrc/server/progs.src index c69c54f46,30a6d2783..6dd08bb1b --- a/qcsrc/server/progs.src +++ b/qcsrc/server/progs.src @@@ -195,7 -195,7 +195,8 @@@ mutators/mutator_nix.q mutators/mutator_dodging.qc mutators/mutator_rocketflying.qc mutators/mutator_vampire.qc + mutators/mutator_spawn_near_teammate.qc +mutators/sandbox.qc ../warpzonelib/anglestransform.qc ../warpzonelib/mathlib.qc diff --cc qcsrc/server/sv_main.qc index e0722e7ed,c4cc090c3..7ec4b49d6 --- a/qcsrc/server/sv_main.qc +++ b/qcsrc/server/sv_main.qc @@@ -231,19 -231,8 +231,10 @@@ void StartFrame (void RuneMatchGivePoints(); bot_serverframe(); - if(autocvar_spawn_debugview) - { - RandomSelection_Init(); - for(self = world; (self = find(self, classname, "player")); ) - RandomSelection_Add(self, 0, string_null, 1, 0); - self = RandomSelection_chosen_ent; - SelectSpawnPoint(0); - } - FOR_EACH_PLAYER(self) self.porto_forbidden = max(0, self.porto_forbidden - 1); + + MUTATOR_CALLHOOK(SV_StartFrame); } .vector originjitter;