From: Martin Taibr Date: Thu, 26 Mar 2020 14:19:14 +0000 (+0100) Subject: Merge branch 'master' into martin-t/limit X-Git-Tag: xonotic-v0.8.5~1133^2~8 X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=commitdiff_plain;h=016835f8f51aff29719995f8d080d9c1b19392c4;hp=71ca250560647dc35300f560a2cb1ac933c7826a Merge branch 'master' into martin-t/limit --- diff --git a/qcsrc/server/defs.qh b/qcsrc/server/defs.qh index 9036ee2221..3b5acfbd0d 100644 --- a/qcsrc/server/defs.qh +++ b/qcsrc/server/defs.qh @@ -141,7 +141,6 @@ float blockSpectators; //if set, new or existing spectators or observers will be .float spectatortime; //point in time since the client is spectating or observing void checkSpectatorBlock(entity this); -float game_completion_ratio; // 0 at start, 1 near end .float winning; .float jointime; // time of connecting .float startplaytime; // time of switching from spectator to player diff --git a/qcsrc/server/g_world.qc b/qcsrc/server/g_world.qc index fd8631f31a..bf6fddf5cf 100644 --- a/qcsrc/server/g_world.qc +++ b/qcsrc/server/g_world.qc @@ -1710,8 +1710,6 @@ float secondscore; int fragsleft_last; float WinningCondition_Scores(float limit, float leadlimit) { - float limitreached; - // TODO make everything use THIS winning condition (except LMS) WinningConditionHelper(NULL); @@ -1783,24 +1781,17 @@ float WinningCondition_Scores(float limit, float leadlimit) } } - limitreached = false; - if (limit && WinningConditionHelper_topscore >= limit) - limitreached = true; - if(leadlimit) - { - float leadlimitreached; - leadlimitreached = (WinningConditionHelper_topscore - WinningConditionHelper_secondscore >= leadlimit); - if(autocvar_leadlimit_and_fraglimit) - limitreached = (limitreached && leadlimitreached); - else - limitreached = (limitreached || leadlimitreached); - } + bool fraglimit_reached = (limit && WinningConditionHelper_topscore >= limit); + bool leadlimit_reached = (WinningConditionHelper_topscore - WinningConditionHelper_secondscore >= leadlimit); - if(limit) - game_completion_ratio = max(game_completion_ratio, bound(0, WinningConditionHelper_topscore / limit, 1)); + bool limit_reached; + if(autocvar_leadlimit_and_fraglimit) + limit_reached = (fraglimit_reached && leadlimit_reached); + else + limit_reached = (fraglimit_reached || leadlimit_reached); return GetWinningCode( - WinningConditionHelper_topscore && limitreached, + WinningConditionHelper_topscore && limit_reached, WinningConditionHelper_equality ); } @@ -1891,10 +1882,6 @@ Exit deathmatch games upon conditions */ void CheckRules_World() { - float timelimit; - float fraglimit; - float leadlimit; - VoteThink(); MapVote_Think(); @@ -1909,9 +1896,10 @@ void CheckRules_World() return; } - timelimit = autocvar_timelimit * 60; - fraglimit = autocvar_fraglimit; - leadlimit = autocvar_leadlimit; + float timelimit = autocvar_timelimit * 60; + float fraglimit = autocvar_fraglimit; + float leadlimit = autocvar_leadlimit; + if (leadlimit < 0) leadlimit = 0; if(warmup_stage || time <= game_starttime) // NOTE: this is <= to prevent problems in the very tic where the game starts { @@ -1936,11 +1924,6 @@ void CheckRules_World() float wantovertime; wantovertime = 0; - if(timelimit > game_starttime) - game_completion_ratio = (time - game_starttime) / (timelimit - game_starttime); - else - game_completion_ratio = 0; - if(checkrules_suddendeathend) { if(!checkrules_suddendeathwarning)