From 75d680d001a90dcf5a3f5901cf0d458785cd5ac4 Mon Sep 17 00:00:00 2001 From: div0 Date: Fri, 19 Sep 2008 08:22:07 +0000 Subject: [PATCH] fix winning condiiton.. git-svn-id: svn://svn.icculus.org/nexuiz/trunk@4470 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/qcsrc/server/g_world.qc | 3 --- data/qcsrc/server/scores.qc | 38 ++++++++++++++++++++++++++++-------- 2 files changed, 30 insertions(+), 11 deletions(-) diff --git a/data/qcsrc/server/g_world.qc b/data/qcsrc/server/g_world.qc index ea704214a..1cd7e180f 100644 --- a/data/qcsrc/server/g_world.qc +++ b/data/qcsrc/server/g_world.qc @@ -1404,9 +1404,6 @@ float WinningCondition_Scores(float limit) if(WinningConditionHelper_winnerteam >= 0) SetWinners(team, WinningConditionHelper_winnerteam); - if(WinningConditionHelper_topscore == 0) - WinningConditionHelper_equality = 0; - if(WinningConditionHelper_lowerisbetter) { WinningConditionHelper_topscore = -WinningConditionHelper_topscore; diff --git a/data/qcsrc/server/scores.qc b/data/qcsrc/server/scores.qc index 1dba693b7..72152cc8d 100644 --- a/data/qcsrc/server/scores.qc +++ b/data/qcsrc/server/scores.qc @@ -363,14 +363,30 @@ void WinningConditionHelper() WinningConditionHelper_topscore = teamscorekeepers[WinningConditionHelper_winnerteam].teamscores_primary; WinningConditionHelper_lowerisbetter = (teamscores_flags_primary & SFL_LOWER_IS_BETTER); WinningConditionHelper_zeroisworst = (teamscores_flags_primary & SFL_ZERO_IS_WORST); + if(teamscores_flags_primary & SFL_TIME) WinningConditionHelper_topscore /= 10; + if(WinningConditionHelper_equality) + WinningConditionHelper_winnerteam = -1; + WinningConditionHelper_winner = world; if(WinningConditionHelper_equality) WinningConditionHelper_winnerteam = -1; else ++WinningConditionHelper_winnerteam; // map to Nexuiz team numbers (as opposed to colors) + + if(WinningConditionHelper_topscore == 0) + { + if(scores_flags_primary & SFL_ZERO_IS_WORST) + { + if(WinningConditionHelper_lowerisbetter) + WinningConditionHelper_topscore = 999999999; + else + WinningConditionHelper_topscore = -999999999; + } + WinningConditionHelper_equality = 0; + } } else { @@ -390,20 +406,26 @@ void WinningConditionHelper() WinningConditionHelper_topscore = WinningConditionHelper_winner.scorekeeper.scores_primary; WinningConditionHelper_lowerisbetter = (scores_flags_primary & SFL_LOWER_IS_BETTER); - if(scores_flags_primary & SFL_ZERO_IS_WORST) - if(WinningConditionHelper_topscore == 0) + WinningConditionHelper_zeroisworst = (teamscores_flags_primary & SFL_ZERO_IS_WORST); + + if(teamscores_flags_primary & SFL_TIME) + WinningConditionHelper_topscore /= 10; + + WinningConditionHelper_winnerteam = -1; + if(WinningConditionHelper_equality) + WinningConditionHelper_winner = world; + + if(WinningConditionHelper_topscore == 0) + { + if(scores_flags_primary & SFL_ZERO_IS_WORST) { if(WinningConditionHelper_lowerisbetter) WinningConditionHelper_topscore = 999999999; else WinningConditionHelper_topscore = -999999999; } - if(teamscores_flags_primary & SFL_TIME) - WinningConditionHelper_topscore /= 10; - - if(WinningConditionHelper_equality) - WinningConditionHelper_winner = world; - WinningConditionHelper_winnerteam = -1; + WinningConditionHelper_equality = 0; + } } if(worldstatus) -- 2.39.2