From 308019f3714d7f6480b7a2197629d7adbc74d799 Mon Sep 17 00:00:00 2001 From: Marko Lindqvist Date: Mon, 8 Apr 2024 20:55:31 +0300 Subject: [PATCH] Update to Freeciv server freeciv/freeciv@d30edc5109 Signed-off-by: Marko Lindqvist --- freeciv/apply_patches.sh | 12 -- ...02-Fix-allied-victory-of-all-players.patch | 109 ------------------ ...023-Fix-activity2char-assert-failure.patch | 36 ------ ...tems-with-unfulfilled-local-range-im.patch | 47 -------- freeciv/version.txt | 4 +- 5 files changed, 2 insertions(+), 206 deletions(-) delete mode 100644 freeciv/patches/backports/0002-Fix-allied-victory-of-all-players.patch delete mode 100644 freeciv/patches/backports/0023-Fix-activity2char-assert-failure.patch delete mode 100644 freeciv/patches/backports/0025-Purge-worklist-items-with-unfulfilled-local-range-im.patch diff --git a/freeciv/apply_patches.sh b/freeciv/apply_patches.sh index 9a888596d..6cab73093 100755 --- a/freeciv/apply_patches.sh +++ b/freeciv/apply_patches.sh @@ -6,15 +6,6 @@ # https://osdn.net/projects/freeciv/ticket/????? # https://redmine.freeciv.org/issues/??? # -# 0023-Fix-activity2char-assert-failure.patch -# Savegame loading fix -# RM #305 -# 0025-Purge-worklist-items-with-unfulfilled-local-range-im.patch -# Worklist handling fix -# osdn #48773 -# 0002-Fix-allied-victory-of-all-players.patch -# Victory conditions fix -# RM #324 # 0041-Stop-sending-hidden-resources-to-the-client.patch # Extra visibility fix # RM #350 @@ -50,9 +41,6 @@ declare -a GIT_PATCHLIST=( ) declare -a PATCHLIST=( - "backports/0023-Fix-activity2char-assert-failure" - "backports/0025-Purge-worklist-items-with-unfulfilled-local-range-im" - "backports/0002-Fix-allied-victory-of-all-players" "backports/0041-Stop-sending-hidden-resources-to-the-client" "backports/0051-Adjust-nationality-of-remaining-units-after-player-r" "backports/0038-AI-Delay-war-declaration-until-really-revolted" diff --git a/freeciv/patches/backports/0002-Fix-allied-victory-of-all-players.patch b/freeciv/patches/backports/0002-Fix-allied-victory-of-all-players.patch deleted file mode 100644 index 9077e4f3f..000000000 --- a/freeciv/patches/backports/0002-Fix-allied-victory-of-all-players.patch +++ /dev/null @@ -1,109 +0,0 @@ -From 012bd29227e9ac423ac84e5956fca208f0347cda Mon Sep 17 00:00:00 2001 -From: Marko Lindqvist -Date: Thu, 21 Mar 2024 20:20:24 +0200 -Subject: [PATCH 02/57] Fix allied victory of all players - -Allied victory was not occurring if nobody had been defeated -beforehand, i.e., if all the players just got in to the same alliance. - -See RM #324 - -Signed-off-by: Marko Lindqvist ---- - server/srv_main.c | 76 ++++++++++++++++++++++++----------------------- - 1 file changed, 39 insertions(+), 37 deletions(-) - -diff --git a/server/srv_main.c b/server/srv_main.c -index 7edf693839..7538a17181 100644 ---- a/server/srv_main.c -+++ b/server/srv_main.c -@@ -424,47 +424,49 @@ bool check_for_game_over(void) - _("Game is over.")); - log_normal(_("Game is over.")); - return TRUE; -- } else if (0 < defeated) { -- /* If nobody conceded the game, it mays be a solo game or a single team -- * game. */ -- fc_assert(NULL != victor); -- -- /* Quit if we have team victory. */ -- if (1 < team_count()) { -- teams_iterate(pteam) { -- const struct player_list *members = team_members(pteam); -- int team_candidates = 0, team_defeated = 0; -- -- if (1 == player_list_size(members)) { -- /* This is not really a team, single players are handled below. */ -- continue; -- } -- -- player_list_iterate(members, pplayer) { -- if (pplayer->is_alive -- && !player_status_check((pplayer), PSTATUS_SURRENDER)) { -- team_candidates++; -- } else { -- team_defeated++; -+ } else { -+ if (0 < defeated) { -+ /* If nobody conceded the game, it mays be a solo game or a single team -+ * game. */ -+ fc_assert(NULL != victor); -+ -+ /* Quit if we have team victory. */ -+ if (1 < team_count()) { -+ teams_iterate(pteam) { -+ const struct player_list *members = team_members(pteam); -+ int team_candidates = 0, team_defeated = 0; -+ -+ if (1 == player_list_size(members)) { -+ /* This is not really a team, single players are handled below. */ -+ continue; - } -- } player_list_iterate_end; - -- fc_assert(team_candidates + team_defeated -- == player_list_size(members)); -- -- if (team_candidates == candidates && team_defeated < defeated) { -- /* We need a player in a other team to conced the game here. */ -- notify_conn(game.est_connections, NULL, E_GAME_END, ftc_server, -- _("Team victory to %s."), -- team_name_translation(pteam)); -- log_normal(_("Team victory to %s."), team_name_translation(pteam)); -- /* All players of the team win, even dead and surrended ones. */ - player_list_iterate(members, pplayer) { -- pplayer->is_winner = TRUE; -+ if (pplayer->is_alive -+ && !player_status_check((pplayer), PSTATUS_SURRENDER)) { -+ team_candidates++; -+ } else { -+ team_defeated++; -+ } - } player_list_iterate_end; -- return TRUE; -- } -- } teams_iterate_end; -+ -+ fc_assert(team_candidates + team_defeated -+ == player_list_size(members)); -+ -+ if (team_candidates == candidates && team_defeated < defeated) { -+ /* We need a player in a other team to conced the game here. */ -+ notify_conn(game.est_connections, NULL, E_GAME_END, ftc_server, -+ _("Team victory to %s."), -+ team_name_translation(pteam)); -+ log_normal(_("Team victory to %s."), team_name_translation(pteam)); -+ /* All players of the team win, even dead and surrended ones. */ -+ player_list_iterate(members, pplayer) { -+ pplayer->is_winner = TRUE; -+ } player_list_iterate_end; -+ return TRUE; -+ } -+ } teams_iterate_end; -+ } - } - - /* Check for allied victory. */ --- -2.43.0 - diff --git a/freeciv/patches/backports/0023-Fix-activity2char-assert-failure.patch b/freeciv/patches/backports/0023-Fix-activity2char-assert-failure.patch deleted file mode 100644 index 54dbe855e..000000000 --- a/freeciv/patches/backports/0023-Fix-activity2char-assert-failure.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 8b63f65072bfe597db1d44db32728611c0b7a1a0 Mon Sep 17 00:00:00 2001 -From: Marko Lindqvist -Date: Wed, 13 Mar 2024 02:48:32 +0200 -Subject: [PATCH 23/24] Fix activity2char() assert failure - -See RM #305 - -Signed-off-by: Marko Lindqvist ---- - server/savegame/savegame3.c | 9 ++++++--- - 1 file changed, 6 insertions(+), 3 deletions(-) - -diff --git a/server/savegame/savegame3.c b/server/savegame/savegame3.c -index e7d633419b..a3aefeeb49 100644 ---- a/server/savegame/savegame3.c -+++ b/server/savegame/savegame3.c -@@ -876,10 +876,13 @@ static enum unit_activity char2activity(char activity) - enum unit_activity a; - - for (a = 0; a < ACTIVITY_LAST_SAVEGAME3; a++) { -- char achar = activity2char(a); -+ /* Skip ACTIVITY_LAST. The SAVEGAME3 specific values are after it. */ -+ if (a != ACTIVITY_LAST) { -+ char achar = activity2char(a); - -- if (activity == achar) { -- return a; -+ if (activity == achar) { -+ return a; -+ } - } - } - --- -2.43.0 - diff --git a/freeciv/patches/backports/0025-Purge-worklist-items-with-unfulfilled-local-range-im.patch b/freeciv/patches/backports/0025-Purge-worklist-items-with-unfulfilled-local-range-im.patch deleted file mode 100644 index d90a987ca..000000000 --- a/freeciv/patches/backports/0025-Purge-worklist-items-with-unfulfilled-local-range-im.patch +++ /dev/null @@ -1,47 +0,0 @@ -From a612446f31fa2a4e281fc6943fda755af3f34e42 Mon Sep 17 00:00:00 2001 -From: Marko Lindqvist -Date: Wed, 13 Mar 2024 19:32:41 +0200 -Subject: [PATCH 25/25] Purge worklist items with unfulfilled local range impr - reqs - -See osdn #48773 - -Signed-off-by: Marko Lindqvist ---- - server/cityturn.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/server/cityturn.c b/server/cityturn.c -index a05034ba97..da0f5e3ee6 100644 ---- a/server/cityturn.c -+++ b/server/cityturn.c -@@ -1260,7 +1260,7 @@ static bool worklist_item_postpone_req_vec(struct universal *target, - case VUT_IMPROVEMENT: - if (preq->range == REQ_RANGE_LOCAL) { - /* Building itself is never going to change */ -- purge = FALSE; -+ purge = TRUE; - } else { - if (preq->present) { - notify_player(pplayer, city_tile(pcity), -@@ -1290,7 +1290,7 @@ static bool worklist_item_postpone_req_vec(struct universal *target, - case VUT_IMPR_GENUS: - if (preq->range == REQ_RANGE_LOCAL) { - /* Building's own genus is never going to change */ -- purge = FALSE; -+ purge = TRUE; - } else { - if (preq->present) { - notify_player(pplayer, city_tile(pcity), -@@ -1320,7 +1320,7 @@ static bool worklist_item_postpone_req_vec(struct universal *target, - case VUT_IMPR_FLAG: - if (preq->range == REQ_RANGE_LOCAL) { - /* Building's own flags are never going to change */ -- purge = FALSE; -+ purge = TRUE; - } else { - if (preq->present) { - notify_player(pplayer, city_tile(pcity), --- -2.43.0 - diff --git a/freeciv/version.txt b/freeciv/version.txt index e0eb39f4a..c98361c7a 100644 --- a/freeciv/version.txt +++ b/freeciv/version.txt @@ -1,9 +1,9 @@ # The Git SHA hash for the commit to checkout from # https://github.com/freeciv/freeciv -FCREV=5d3d7f1af11bb6703784b957447017507df82774 +FCREV=d30edc5109a4394a1eb6ed14906dff191d1efc38 -ORIGCAPSTR="+Freeciv.Devel-\${MAIN_VERSION}-2024.Mar.08" +ORIGCAPSTR="+Freeciv.Devel-\${MAIN_VERSION}-2024.Mar.22" # There's no need to bump this constantly as current freeciv-web # makes no connections to outside world - all connections are