From f2a3abca937f775684defe4b6fa93d3e4514ffde Mon Sep 17 00:00:00 2001
From: Marko Lindqvist <cazfi74@gmail.com>
Date: Mon, 13 May 2024 00:44:48 +0300
Subject: [PATCH 66/66] Add support for second alternative sound tag for
 governments

See RM #606

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
---
 client/packhand.c                      |  3 ++-
 common/government.h                    |  1 +
 common/networking/packets.def          |  1 +
 data/alien/governments.ruleset         |  8 ++++++++
 data/civ1/governments.ruleset          |  8 ++++++++
 data/civ2/governments.ruleset          |  9 +++++++++
 data/civ2civ3/governments.ruleset      | 11 +++++++++++
 data/classic/governments.ruleset       |  8 ++++++++
 data/goldkeep/governments.ruleset      |  8 ++++++++
 data/granularity/governments.ruleset   |  4 ++++
 data/multiplayer/governments.ruleset   |  9 +++++++++
 data/ruledit/comments-3.2.txt          |  2 ++
 data/sandbox/governments.ruleset       | 11 +++++++++++
 data/stub/governments.ruleset          |  4 ++++
 data/webperimental/governments.ruleset |  8 ++++++++
 server/ruleset.c                       |  3 +++
 16 files changed, 97 insertions(+), 1 deletion(-)

diff --git a/client/packhand.c b/client/packhand.c
index 5ab282bcab..bf29673aff 100644
--- a/client/packhand.c
+++ b/client/packhand.c
@@ -2526,7 +2526,7 @@ void handle_player_info(const struct packet_player_info *pinfo)
     }
 
     if (gov_change) {
-      audio_play_sound(pgov->sound_str, pgov->sound_alt, NULL);
+      audio_play_sound(pgov->sound_str, pgov->sound_alt, pgov->sound_alt2);
     }
   }
 
@@ -3991,6 +3991,7 @@ void handle_ruleset_government(const struct packet_ruleset_government *p)
   sz_strlcpy(gov->graphic_alt, p->graphic_alt);
   sz_strlcpy(gov->sound_str, p->sound_str);
   sz_strlcpy(gov->sound_alt, p->sound_alt);
+  sz_strlcpy(gov->sound_alt2, p->sound_alt2);
 
   PACKET_STRVEC_EXTRACT(gov->helptext, p->helptext);
 
diff --git a/common/government.h b/common/government.h
index 68fdfcb5eb..ec2bae001b 100644
--- a/common/government.h
+++ b/common/government.h
@@ -57,6 +57,7 @@ struct government {
   char graphic_alt[MAX_LEN_NAME];
   char sound_str[MAX_LEN_NAME];
   char sound_alt[MAX_LEN_NAME];
+  char sound_alt2[MAX_LEN_NAME];
   struct requirement_vector reqs;
   struct ruler_title_hash *ruler_titles;
   int changed_to_times;
diff --git a/common/networking/packets.def b/common/networking/packets.def
index feb842c218..4fc04a5aa7 100644
--- a/common/networking/packets.def
+++ b/common/networking/packets.def
@@ -1562,6 +1562,7 @@ PACKET_RULESET_GOVERNMENT = 145; sc, lsend
   STRING graphic_alt[MAX_LEN_NAME];
   STRING sound_str[MAX_LEN_NAME];
   STRING sound_alt[MAX_LEN_NAME];
+  STRING sound_alt2[MAX_LEN_NAME];
   STRVEC helptext[MAX_LEN_PACKET];
 end
 
diff --git a/data/alien/governments.ruleset b/data/alien/governments.ruleset
index b41c82385d..92df1216dc 100644
--- a/data/alien/governments.ruleset
+++ b/data/alien/governments.ruleset
@@ -48,6 +48,8 @@ during_revolution = "Anarchy"
 ; sound        = Sound tag for the audio to play when palyer switch
 ;                to government.
 ; sound_alt    = Alternative sound tag, in case primary one is not found.
+; sound_alt2   = Second alternative sound tag, in case neither primary tag
+;                nor the first alt tag is found.
 ; ai_better    = AI will not consider this government for use if the
 ;                government listed here is available
 ; ruler_male_title   = The default male ruler title for the government type.
@@ -71,6 +73,7 @@ graphic     = "gov.anarchy"
 graphic_alt = "-"
 sound       = "g_anarchy"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("Usurper %s")
 ruler_female_title = _("?female:Usurper %s")
@@ -91,6 +94,7 @@ graphic     = "gov.despotism"
 graphic_alt = "-"
 sound       = "g_despotism"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("Leader %s")
 ruler_female_title = _("?female:Leader %s")
@@ -113,6 +117,7 @@ graphic     = "gov.communism"
 graphic_alt = "-"
 sound       = "g_communism"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("Comrade %s")
 ruler_female_title = _("?female:Comrade %s")
@@ -136,6 +141,7 @@ graphic     = "gov.democracy"
 graphic_alt = "-"
 sound       = "g_democracy"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("President %s")
 ruler_female_title = _("?female:President %s")
@@ -159,6 +165,7 @@ graphic     = "gov.dual_communism"
 graphic_alt = "gov.monarchy"
 sound       = "g_dual_communism"
 sound_alt   = "g_monarchy"
+sound_alt2  = "-"
 
 ruler_male_title = _("Comrade %s")
 ruler_female_title = _("?female:Comrade %s")
@@ -182,6 +189,7 @@ graphic     = "gov.dual_democracy"
 graphic_alt = "gov.republic"
 sound       = "g_dual_democracy"
 sound_alt   = "g_republic"
+sound_alt2  = "-"
 
 ruler_male_title = _("President %s")
 ruler_female_title = _("?female:President %s")
diff --git a/data/civ1/governments.ruleset b/data/civ1/governments.ruleset
index 54b37122ff..d6754d1447 100644
--- a/data/civ1/governments.ruleset
+++ b/data/civ1/governments.ruleset
@@ -49,6 +49,8 @@ during_revolution = "Anarchy"
 ; sound        = Sound tag for the audio to play when palyer switch
 ;                to government.
 ; sound_alt    = Alternative sound tag, in case primary one is not found.
+; sound_alt2   = Second alternative sound tag, in case neither primary tag
+;                nor the first alt tag is found.
 ; ai_better    = AI will not consider this government for use if the
 ;                government listed here is available
 ; ruler_male_title   = The default male ruler title for the government type.
@@ -72,6 +74,7 @@ graphic     = "gov.anarchy"
 graphic_alt = "-"
 sound       = "g_anarchy"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("Warlord %s")
 ruler_female_title = _("Warlady %s")
@@ -95,6 +98,7 @@ graphic     = "gov.despotism"
 graphic_alt = "-"
 sound       = "g_despotism"
 sound_alt   = "-"
+sound_alt2  = "-"
 ai_better   = "Monarchy"
 
 ruler_male_title = _("Chief %s")
@@ -119,6 +123,7 @@ graphic     = "gov.monarchy"
 graphic_alt = "-"
 sound       = "g_monarchy"
 sound_alt   = "-"
+sound_alt2  = "-"
 ai_better   = "Communism"
 
 ruler_male_title = _("King %s")
@@ -143,6 +148,7 @@ graphic     = "gov.communism"
 graphic_alt = "-"
 sound       = "g_communism"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("Comrade %s")
 ruler_female_title = _("?female:Comrade %s")
@@ -169,6 +175,7 @@ graphic     = "gov.republic"
 graphic_alt = "-"
 sound       = "g_republic"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("Consul %s")
 ruler_female_title = _("?female:Consul %s")
@@ -193,6 +200,7 @@ graphic     = "gov.democracy"
 graphic_alt = "-"
 sound       = "g_democracy"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("President %s")
 ruler_female_title = _("?female:President %s")
diff --git a/data/civ2/governments.ruleset b/data/civ2/governments.ruleset
index 42bffb1712..183251b884 100644
--- a/data/civ2/governments.ruleset
+++ b/data/civ2/governments.ruleset
@@ -47,6 +47,8 @@ during_revolution = "Anarchy"
 ; sound        = Sound tag for the audio to play when palyer switch
 ;                to government.
 ; sound_alt    = Alternative sound tag, in case primary one is not found.
+; sound_alt2   = Second alternative sound tag, in case neither primary tag
+;                nor the first alt tag is found.
 ; ai_better    = AI will not consider this government for use if the
 ;                government listed here is available
 ; ruler_male_title   = The default male ruler title for the government type.
@@ -70,6 +72,7 @@ graphic     = "gov.anarchy"
 graphic_alt = "-"
 sound       = "g_anarchy"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("Warlord %s")
 ruler_female_title = _("Warlady %s")
@@ -93,6 +96,7 @@ graphic     = "gov.despotism"
 graphic_alt = "-"
 sound       = "g_despotism"
 sound_alt   = "-"
+sound_alt2  = "-"
 ai_better   = "Monarchy"
 
 ruler_male_title = _("Chief %s")
@@ -117,6 +121,7 @@ graphic     = "gov.monarchy"
 graphic_alt = "-"
 sound       = "g_monarchy"
 sound_alt   = "-"
+sound_alt2  = "-"
 ai_better   = "Communism"
 
 ruler_male_title = _("King %s")
@@ -141,6 +146,7 @@ graphic     = "gov.communism"
 graphic_alt = "-"
 sound       = "g_communism"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("Comrade %s")
 ruler_female_title = _("?female:Comrade %s")
@@ -167,6 +173,7 @@ graphic     = "gov.fundamentalism"
 graphic_alt = "-"
 sound       = "g_fundamentalism"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("High Priest %s")
 ruler_female_title = _("High Priestess %s")
@@ -197,6 +204,7 @@ graphic     = "gov.republic"
 graphic_alt = "-"
 sound       = "g_republic"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("Consul %s")
 ruler_female_title = _("?female:Consul %s")
@@ -221,6 +229,7 @@ graphic     = "gov.democracy"
 graphic_alt = "-"
 sound       = "g_democracy"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("President %s")
 ruler_female_title = _("?female:President %s")
diff --git a/data/civ2civ3/governments.ruleset b/data/civ2civ3/governments.ruleset
index 42e02367c0..23b9c2f1cc 100644
--- a/data/civ2civ3/governments.ruleset
+++ b/data/civ2civ3/governments.ruleset
@@ -47,6 +47,8 @@ during_revolution = "Anarchy"
 ; sound        = Sound tag for the audio to play when palyer switch
 ;                to government.
 ; sound_alt    = Alternative sound tag, in case primary one is not found.
+; sound_alt2   = Second alternative sound tag, in case neither primary tag
+;                nor the first alt tag is found.
 ; ai_better    = AI will not consider this government for use if the
 ;                government listed here is available
 ; ruler_male_title   = The default male ruler title for the government type.
@@ -70,6 +72,7 @@ graphic     = "gov.anarchy"
 graphic_alt = "-"
 sound       = "g_anarchy"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("Warlord %s")
 ruler_female_title = _("Warlady %s")
@@ -110,6 +113,7 @@ graphic     = "gov.tribal"
 graphic_alt = "s.tax_luxury"
 sound       = "g_tribal"
 sound_alt   = "-"
+sound_alt2  = "-"
 ai_better   = "Republic"
 
 ruler_male_title = _("Warlord %s")
@@ -151,6 +155,7 @@ graphic     = "gov.despotism"
 graphic_alt = "-"
 sound       = "g_despotism"
 sound_alt   = "-"
+sound_alt2  = "-"
 ai_better   = "Monarchy"
 
 ruler_male_title = _("Chief %s")
@@ -192,6 +197,7 @@ graphic     = "gov.monarchy"
 graphic_alt = "-"
 sound       = "g_monarchy"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("King %s")
 ruler_female_title = _("Queen %s")
@@ -231,6 +237,7 @@ graphic     = "gov.communism"
 graphic_alt = "-"
 sound       = "g_communism"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("Comrade %s")
 ruler_female_title = _("?female:Comrade %s")
@@ -271,6 +278,7 @@ graphic     = "gov.fundamentalism"
 graphic_alt = "-"
 sound       = "g_fundamentalism"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("High Priest %s")
 ruler_female_title = _("High Priestess %s")
@@ -319,6 +327,7 @@ graphic     = "gov.federation"
 graphic_alt = "s.tax_gold"
 sound       = "g_federation"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("Consul %s")
 ruler_female_title = _("?female:Consul %s")
@@ -357,6 +366,7 @@ graphic     = "gov.republic"
 graphic_alt = "-"
 sound       = "g_republic"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("President %s")
 ruler_female_title = _("?female:President %s")
@@ -397,6 +407,7 @@ graphic     = "gov.democracy"
 graphic_alt = "-"
 sound       = "g_democracy"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("Prime Minister %s")
 ruler_female_title = _("?female:Prime Minister %s")
diff --git a/data/classic/governments.ruleset b/data/classic/governments.ruleset
index 725fb0bf45..d193f5d263 100644
--- a/data/classic/governments.ruleset
+++ b/data/classic/governments.ruleset
@@ -47,6 +47,8 @@ during_revolution = "Anarchy"
 ; sound        = Sound tag for the audio to play when palyer switch
 ;                to government.
 ; sound_alt    = Alternative sound tag, in case primary one is not found.
+; sound_alt2   = Second alternative sound tag, in case neither primary tag
+;                nor the first alt tag is found.
 ; ai_better    = AI will not consider this government for use if the
 ;                government listed here is available
 ; ruler_male_title   = The default male ruler title for the government type.
@@ -70,6 +72,7 @@ graphic     = "gov.anarchy"
 graphic_alt = "-"
 sound       = "g_anarchy"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("Warlord %s")
 ruler_female_title = _("Warlady %s")
@@ -93,6 +96,7 @@ graphic     = "gov.despotism"
 graphic_alt = "-"
 sound       = "g_despotism"
 sound_alt   = "-"
+sound_alt2  = "-"
 ai_better   = "Monarchy"
 
 ruler_male_title = _("Chief %s")
@@ -117,6 +121,7 @@ graphic     = "gov.monarchy"
 graphic_alt = "-"
 sound       = "g_monarchy"
 sound_alt   = "-"
+sound_alt2  = "-"
 ai_better   = "Communism"
 
 ruler_male_title = _("King %s")
@@ -141,6 +146,7 @@ graphic     = "gov.communism"
 graphic_alt = "-"
 sound       = "g_communism"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("Comrade %s")
 ruler_female_title = _("?female:Comrade %s")
@@ -167,6 +173,7 @@ graphic     = "gov.republic"
 graphic_alt = "-"
 sound       = "g_republic"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("President %s")
 ruler_female_title = _("?female:President %s")
@@ -191,6 +198,7 @@ graphic     = "gov.democracy"
 graphic_alt = "-"
 sound       = "g_democracy"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("Prime Minister %s")
 ruler_female_title = _("?female:Prime Minister %s")
diff --git a/data/goldkeep/governments.ruleset b/data/goldkeep/governments.ruleset
index 979a9cf8b3..5fb73070ee 100644
--- a/data/goldkeep/governments.ruleset
+++ b/data/goldkeep/governments.ruleset
@@ -49,6 +49,8 @@ during_revolution = "Anarchy"
 ; sound        = Sound tag for the audio to play when palyer switch
 ;                to government.
 ; sound_alt    = Alternative sound tag, in case primary one is not found.
+; sound_alt2   = Second alternative sound tag, in case neither primary tag
+;                nor the first alt tag is found.
 ; ai_better    = AI will not consider this government for use if the
 ;                government listed here is available
 ; ruler_male_title   = The default male ruler title for the government type.
@@ -72,6 +74,7 @@ graphic     = "gov.anarchy"
 graphic_alt = "-"
 sound       = "g_anarchy"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("Warlord %s")
 ruler_female_title = _("Warlady %s")
@@ -97,6 +100,7 @@ graphic     = "gov.despotism"
 graphic_alt = "-"
 sound       = "g_despotism"
 sound_alt   = "-"
+sound_alt2  = "-"
 ai_better   = "Monarchy"
 
 ruler_male_title = _("Chief %s")
@@ -121,6 +125,7 @@ graphic     = "gov.monarchy"
 graphic_alt = "-"
 sound       = "g_monarchy"
 sound_alt   = "-"
+sound_alt2  = "-"
 ai_better   = "Communism"
 
 ruler_male_title = _("King %s")
@@ -145,6 +150,7 @@ graphic     = "gov.communism"
 graphic_alt = "-"
 sound       = "g_communism"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("Comrade %s")
 ruler_female_title = _("?female:Comrade %s")
@@ -171,6 +177,7 @@ graphic     = "gov.republic"
 graphic_alt = "-"
 sound       = "g_republic"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("President %s")
 ruler_female_title = _("?female:President %s")
@@ -195,6 +202,7 @@ graphic     = "gov.democracy"
 graphic_alt = "-"
 sound       = "g_democracy"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("Prime Minister %s")
 ruler_female_title = _("?female:Prime Minister %s")
diff --git a/data/granularity/governments.ruleset b/data/granularity/governments.ruleset
index b774eae919..8017ed9ace 100644
--- a/data/granularity/governments.ruleset
+++ b/data/granularity/governments.ruleset
@@ -47,6 +47,8 @@ during_revolution = "Anarchy"
 ; sound        = Sound tag for the audio to play when palyer switch
 ;                to government.
 ; sound_alt    = Alternative sound tag, in case primary one is not found.
+; sound_alt2   = Second alternative sound tag, in case neither primary tag
+;                nor the first alt tag is found.
 ; ai_better    = AI will not consider this government for use if the
 ;                government listed here is available
 ; ruler_male_title   = The default male ruler title for the government type.
@@ -70,6 +72,7 @@ graphic     = "gov.anarchy"
 graphic_alt = "-"
 sound       = "g_anarchy"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("Usurper %s")
 ruler_female_title = _("?female:Usurper %s")
@@ -90,6 +93,7 @@ graphic     = "gov.tribal"
 graphic_alt = "-"
 sound       = "g_tribal"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("Warlord %s")
 ruler_female_title = _("Warlady %s")
diff --git a/data/multiplayer/governments.ruleset b/data/multiplayer/governments.ruleset
index a9d02aa6a2..7e1569cd1e 100644
--- a/data/multiplayer/governments.ruleset
+++ b/data/multiplayer/governments.ruleset
@@ -47,6 +47,8 @@ during_revolution = "Anarchy"
 ; sound        = Sound tag for the audio to play when palyer switch
 ;                to government.
 ; sound_alt    = Alternative sound tag, in case primary one is not found.
+; sound_alt2   = Second alternative sound tag, in case neither primary tag
+;                nor the first alt tag is found.
 ; ai_better    = AI will not consider this government for use if the
 ;                government listed here is available
 ; ruler_male_title   = The default male ruler title for the government type.
@@ -70,6 +72,7 @@ graphic     = "gov.anarchy"
 graphic_alt = "-"
 sound       = "g_anarchy"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("Warlord %s")
 ruler_female_title = _("Warlady %s")
@@ -93,6 +96,7 @@ graphic     = "gov.despotism"
 graphic_alt = "-"
 sound       = "g_despotism"
 sound_alt   = "-"
+sound_alt2  = "-"
 ai_better   = "Monarchy"
 
 ruler_male_title = _("Chief %s")
@@ -117,6 +121,7 @@ graphic     = "gov.monarchy"
 graphic_alt = "-"
 sound       = "g_monarchy"
 sound_alt   = "-"
+sound_alt2  = "-"
 ai_better   = "Communism"
 
 ruler_male_title = _("King %s")
@@ -141,6 +146,7 @@ graphic     = "gov.communism"
 graphic_alt = "-"
 sound       = "g_communism"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("Comrade %s")
 ruler_female_title = _("?female:Comrade %s")
@@ -167,6 +173,7 @@ graphic     = "gov.republic"
 graphic_alt = "-"
 sound       = "g_republic"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("President %s")
 ruler_female_title = _("?female:President %s")
@@ -191,6 +198,7 @@ graphic     = "gov.democracy"
 graphic_alt = "-"
 sound       = "g_democracy"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("Prime Minister %s")
 ruler_female_title = _("?female:Prime Minister %s")
@@ -214,6 +222,7 @@ graphic     = "gov.fundamentalism"
 graphic_alt = "-"
 sound       = "g_fundamentalism"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("High Priest %s")
 ruler_female_title = _("High Priestess %s")
diff --git a/data/ruledit/comments-3.2.txt b/data/ruledit/comments-3.2.txt
index 676bf88f99..14dc9f2b07 100644
--- a/data/ruledit/comments-3.2.txt
+++ b/data/ruledit/comments-3.2.txt
@@ -198,6 +198,8 @@ governments = "\
 ; sound        = Sound tag for the audio to play when palyer switch\n\
 ;                to government.\n\
 ; sound_alt    = Alternative sound tag, in case primary one is not found.\n\
+; sound_alt2   = Second alternative sound tag, in case neither primary tag\n\
+;                nor the first alt tag is found.\n\
 ; ai_better    = AI will not consider this government for use if the\n\
 ;                government listed here is available\n\
 ; ruler_male_title   = The default male ruler title for the government type.\n\
diff --git a/data/sandbox/governments.ruleset b/data/sandbox/governments.ruleset
index 6ccfa6cae7..43c62d0fb5 100644
--- a/data/sandbox/governments.ruleset
+++ b/data/sandbox/governments.ruleset
@@ -47,6 +47,8 @@ during_revolution = "Anarchy"
 ; sound        = Sound tag for the audio to play when palyer switch
 ;                to government.
 ; sound_alt    = Alternative sound tag, in case primary one is not found.
+; sound_alt2   = Second alternative sound tag, in case neither primary tag
+;                nor the first alt tag is found.
 ; ai_better    = AI will not consider this government for use if the
 ;                government listed here is available
 ; ruler_male_title   = The default male ruler title for the government type.
@@ -70,6 +72,7 @@ graphic     = "gov.anarchy"
 graphic_alt = "-"
 sound       = "g_anarchy"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("Warlord %s")
 ruler_female_title = _("Warlady %s")
@@ -110,6 +113,7 @@ graphic     = "gov.tribal"
 graphic_alt = "s.tax_luxury"
 sound       = "g_tribal"
 sound_alt   = "-"
+sound_alt2  = "-"
 ai_better   = "Republic"
 
 ruler_male_title = _("Warlord %s")
@@ -151,6 +155,7 @@ graphic     = "gov.despotism"
 graphic_alt = "-"
 sound       = "g_despotism"
 sound_alt   = "-"
+sound_alt2  = "-"
 ai_better   = "Monarchy"
 
 ruler_male_title = _("Chief %s")
@@ -192,6 +197,7 @@ graphic     = "gov.monarchy"
 graphic_alt = "-"
 sound       = "g_monarchy"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("King %s")
 ruler_female_title = _("Queen %s")
@@ -231,6 +237,7 @@ graphic     = "gov.communism"
 graphic_alt = "-"
 sound       = "g_communism"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("Comrade %s")
 ruler_female_title = _("?female:Comrade %s")
@@ -272,6 +279,7 @@ graphic     = "gov.fundamentalism"
 graphic_alt = "-"
 sound       = "g_fundamentalism"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("High Priest %s")
 ruler_female_title = _("High Priestess %s")
@@ -320,6 +328,7 @@ graphic     = "gov.federation"
 graphic_alt = "s.tax_gold"
 sound       = "g_federation"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("Consul %s")
 ruler_female_title = _("?female:Consul %s")
@@ -358,6 +367,7 @@ graphic     = "gov.republic"
 graphic_alt = "-"
 sound       = "g_republic"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("President %s")
 ruler_female_title = _("?female:President %s")
@@ -399,6 +409,7 @@ graphic     = "gov.democracy"
 graphic_alt = "-"
 sound       = "g_democracy"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("Prime Minister %s")
 ruler_female_title = _("?female:Prime Minister %s")
diff --git a/data/stub/governments.ruleset b/data/stub/governments.ruleset
index 15b06a07a4..d6af7d7783 100644
--- a/data/stub/governments.ruleset
+++ b/data/stub/governments.ruleset
@@ -38,6 +38,8 @@ during_revolution = "Anarchy"
 ; sound        = Sound tag for the audio to play when palyer switch
 ;                to government.
 ; sound_alt    = Alternative sound tag, in case primary one is not found.
+; sound_alt2   = Second alternative sound tag, in case neither primary tag
+;                nor the first alt tag is found.
 ; ai_better    = AI will not consider this government for use if the
 ;                government listed here is available
 ; ruler_male_title   = The default male ruler title for the government type.
@@ -61,6 +63,7 @@ graphic     = "gov.anarchy"
 graphic_alt = "-"
 sound       = "g_anarchy"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("Usurper %s")
 ruler_female_title = _("?female:Usurper %s")
@@ -81,6 +84,7 @@ graphic     = "gov.despotism"
 graphic_alt = "-"
 sound       = "g_despotism"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("Leader %s")
 ruler_female_title = _("Leader %s")
diff --git a/data/webperimental/governments.ruleset b/data/webperimental/governments.ruleset
index 3d520a640d..5bc07d27c2 100644
--- a/data/webperimental/governments.ruleset
+++ b/data/webperimental/governments.ruleset
@@ -47,6 +47,8 @@ during_revolution = "Anarchy"
 ; sound        = Sound tag for the audio to play when palyer switch
 ;                to government.
 ; sound_alt    = Alternative sound tag, in case primary one is not found.
+; sound_alt2   = Second alternative sound tag, in case neither primary tag
+;                nor the first alt tag is found.
 ; ai_better    = AI will not consider this government for use if the
 ;                government listed here is available
 ; ruler_male_title   = The default male ruler title for the government type.
@@ -70,6 +72,7 @@ graphic     = "gov.anarchy"
 graphic_alt = "-"
 sound       = "g_anarchy"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("Warlord %s")
 ruler_female_title = _("Warlady %s")
@@ -93,6 +96,7 @@ graphic     = "gov.despotism"
 graphic_alt = "-"
 sound       = "g_despotism"
 sound_alt   = "-"
+sound_alt2  = "-"
 ai_better   = "Monarchy"
 
 ruler_male_title = _("Chief %s")
@@ -117,6 +121,7 @@ graphic     = "gov.monarchy"
 graphic_alt = "-"
 sound       = "g_monarchy"
 sound_alt   = "-"
+sound_alt2  = "-"
 ai_better   = "Communism"
 
 ruler_male_title = _("King %s")
@@ -141,6 +146,7 @@ graphic     = "gov.communism"
 graphic_alt = "-"
 sound       = "g_communism"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("Comrade %s")
 ruler_female_title = _("?female:Comrade %s")
@@ -167,6 +173,7 @@ graphic     = "gov.republic"
 graphic_alt = "-"
 sound       = "g_republic"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("President %s")
 ruler_female_title = _("?female:President %s")
@@ -191,6 +198,7 @@ graphic     = "gov.democracy"
 graphic_alt = "-"
 sound       = "g_democracy"
 sound_alt   = "-"
+sound_alt2  = "-"
 
 ruler_male_title = _("Prime Minister %s")
 ruler_female_title = _("?female:Prime Minister %s")
diff --git a/server/ruleset.c b/server/ruleset.c
index f312d9d06a..f25d89fdd4 100644
--- a/server/ruleset.c
+++ b/server/ruleset.c
@@ -4529,6 +4529,8 @@ static bool load_ruleset_governments(struct section_file *file,
                  secfile_lookup_str_default(file, "-", "%s.sound", sec_name));
       sz_strlcpy(g->sound_alt,
                  secfile_lookup_str_default(file, "-", "%s.sound_alt", sec_name));
+      sz_strlcpy(g->sound_alt2,
+                 secfile_lookup_str_default(file, "-", "%s.sound_alt2", sec_name));
 
       g->helptext = lookup_strvec(file, sec_name, "helptext");
     } governments_iterate_end;
@@ -9006,6 +9008,7 @@ static void send_ruleset_governments(struct conn_list *dest)
     sz_strlcpy(gov.graphic_alt, g->graphic_alt);
     sz_strlcpy(gov.sound_str, g->sound_str);
     sz_strlcpy(gov.sound_alt, g->sound_alt);
+    sz_strlcpy(gov.sound_alt2, g->sound_alt2);
     PACKET_STRVEC_COMPUTE(gov.helptext, g->helptext);
 
     lsend_packet_ruleset_government(dest, &gov);
-- 
2.43.0

