From 9af2d090316100022bef15c44a279b7613895097 Mon Sep 17 00:00:00 2001 From: terencehill Date: Wed, 31 Jan 2018 16:10:15 +0100 Subject: [PATCH] Simplify / clean up WinningCondition_LMS --- qcsrc/server/mutators/mutator/gamemode_lms.qc | 30 ++++++++----------- 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/qcsrc/server/mutators/mutator/gamemode_lms.qc b/qcsrc/server/mutators/mutator/gamemode_lms.qc index cd8fb390d..c281424a0 100644 --- a/qcsrc/server/mutators/mutator/gamemode_lms.qc +++ b/qcsrc/server/mutators/mutator/gamemode_lms.qc @@ -35,23 +35,17 @@ void ClearWinners(); // limit. int WinningCondition_LMS() { - entity head, head2; - bool have_player = false; - bool have_players = false; - - int l = LMS_NewPlayerLives(); - - head = find(NULL, classname, STR_PLAYER); - if(head) - have_player = true; - head2 = find(head, classname, STR_PLAYER); - if(head2) - have_players = true; + entity first_player = NULL; + int total_players = 0; + FOREACH_CLIENT(IS_PLAYER(it), { + if (!total_players) + first_player = it; + ++total_players; + }); - if(have_player) + if (total_players) { - // we have at least one player - if(have_players) + if (total_players > 1) { // two or more active players - continue with the game } @@ -62,7 +56,7 @@ int WinningCondition_LMS() ClearWinners(); SetWinners(winning, 0); // NOTE: exactly one player is still "player", so this works out - if(l) + if (LMS_NewPlayerLives()) { // game still running (that is, nobody got removed from the game by a frag yet)? then continue return WINNING_NO; @@ -71,7 +65,7 @@ int WinningCondition_LMS() { // a winner! // and assign him his first place - GameRules_scoring_add(head, LMS_RANK, 1); + GameRules_scoring_add(first_player, LMS_RANK, 1); if(warmup_stage) return WINNING_NO; else @@ -82,7 +76,7 @@ int WinningCondition_LMS() else { // nobody is playing at all... - if(l) + if (LMS_NewPlayerLives()) { // wait for players... } -- 2.39.2