From a24b980cb99318302f85d2bedb86b5ca7ba69233 Mon Sep 17 00:00:00 2001 From: Marko Lindqvist Date: Fri, 3 May 2024 16:49:41 +0300 Subject: [PATCH 32/32] Add sound tags for governments Requested by ihnatus See osdn #46600 Signed-off-by: Marko Lindqvist --- client/packhand.c | 8 ++++++++ common/government.h | 2 ++ common/networking/packets.def | 2 ++ data/alien/governments.ruleset | 15 +++++++++++++++ data/civ1/governments.ruleset | 15 +++++++++++++++ data/civ2/governments.ruleset | 17 +++++++++++++++++ data/civ2civ3/governments.ruleset | 21 +++++++++++++++++++++ data/classic/governments.ruleset | 15 +++++++++++++++ data/goldkeep/governments.ruleset | 15 +++++++++++++++ data/granularity/governments.ruleset | 7 +++++++ data/multiplayer/governments.ruleset | 17 +++++++++++++++++ data/ruledit/comments-3.2.txt | 3 +++ data/sandbox/governments.ruleset | 21 +++++++++++++++++++++ data/stdsounds.soundspec | 8 ++++++++ data/stub/governments.ruleset | 7 +++++++ data/webperimental/governments.ruleset | 15 +++++++++++++++ server/ruleset.c | 24 +++++++++++++++--------- tools/ruleutil/rulesave.c | 2 ++ 18 files changed, 205 insertions(+), 9 deletions(-) diff --git a/client/packhand.c b/client/packhand.c index aaef1bf17b..2647a671a1 100644 --- a/client/packhand.c +++ b/client/packhand.c @@ -2434,6 +2434,7 @@ void handle_player_info(const struct packet_player_info *pinfo) struct government *pgov, *ptarget_gov; struct player_slot *pslot; struct team_slot *tslot; + bool gov_change; /* Player. */ pslot = player_slot_by_number(pinfo->playerno); @@ -2500,6 +2501,7 @@ void handle_player_info(const struct packet_player_info *pinfo) pplayer->economic.science = pinfo->science; pplayer->economic.luxury = pinfo->luxury; pplayer->client.tech_upkeep = pinfo->tech_upkeep; + gov_change = (!new_player && pgov != pplayer->government); pplayer->government = pgov; pplayer->target_government = ptarget_gov; pplayer->real_embassy = pinfo->real_embassy; @@ -2522,6 +2524,10 @@ void handle_player_info(const struct packet_player_info *pinfo) if (music_change) { start_style_music(); } + + if (gov_change) { + audio_play_sound(pgov->sound_str, pgov->sound_alt, NULL); + } } pplayer->history = pinfo->history; @@ -3983,6 +3989,8 @@ void handle_ruleset_government(const struct packet_ruleset_government *p) names_set(&gov->name, NULL, p->name, p->rule_name); sz_strlcpy(gov->graphic_str, p->graphic_str); sz_strlcpy(gov->graphic_alt, p->graphic_alt); + sz_strlcpy(gov->sound_str, p->sound_str); + sz_strlcpy(gov->sound_alt, p->sound_alt); PACKET_STRVEC_EXTRACT(gov->helptext, p->helptext); diff --git a/common/government.h b/common/government.h index 1386c18fb5..68fdfcb5eb 100644 --- a/common/government.h +++ b/common/government.h @@ -55,6 +55,8 @@ struct government { bool ruledit_disabled; char graphic_str[MAX_LEN_NAME]; char graphic_alt[MAX_LEN_NAME]; + char sound_str[MAX_LEN_NAME]; + char sound_alt[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 03b7dee197..6d3e8416c5 100644 --- a/common/networking/packets.def +++ b/common/networking/packets.def @@ -1560,6 +1560,8 @@ PACKET_RULESET_GOVERNMENT = 145; sc, lsend STRING rule_name[MAX_LEN_NAME]; STRING graphic_str[MAX_LEN_NAME]; STRING graphic_alt[MAX_LEN_NAME]; + STRING sound_str[MAX_LEN_NAME]; + STRING sound_alt[MAX_LEN_NAME]; STRVEC helptext[MAX_LEN_PACKET]; end diff --git a/data/alien/governments.ruleset b/data/alien/governments.ruleset index b418180c38..6551dedd82 100644 --- a/data/alien/governments.ruleset +++ b/data/alien/governments.ruleset @@ -45,6 +45,9 @@ during_revolution = "Anarchy" ; graphic_alt = alternate graphics tag if preferred is not found; ; should be a standard tag if preferred is not; ; otherwise may be "-" +; 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. ; 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. @@ -66,6 +69,8 @@ name = _("Anarchy") ; No reqs graphic = "gov.anarchy" graphic_alt = "-" +sound = "g_anarchy" +sound_alt = "-" ruler_male_title = _("Usurper %s") ruler_female_title = _("?female:Usurper %s") @@ -84,6 +89,8 @@ reqs = } graphic = "gov.despotism" graphic_alt = "-" +sound = "g_despotism" +sound_alt = "-" ruler_male_title = _("Leader %s") ruler_female_title = _("?female:Leader %s") @@ -104,6 +111,8 @@ reqs = } graphic = "gov.communism" graphic_alt = "-" +sound = "g_communism" +sound_alt = "-" ruler_male_title = _("Comrade %s") ruler_female_title = _("?female:Comrade %s") @@ -125,6 +134,8 @@ reqs = } graphic = "gov.democracy" graphic_alt = "-" +sound = "g_democracy" +sound_alt = "-" ruler_male_title = _("President %s") ruler_female_title = _("?female:President %s") @@ -146,6 +157,8 @@ reqs = } graphic = "gov.dual_communism" graphic_alt = "gov.monarchy" +sound = "g_dual_communism" +sound_alt = "g_monarchy" ruler_male_title = _("Comrade %s") ruler_female_title = _("?female:Comrade %s") @@ -167,6 +180,8 @@ reqs = } graphic = "gov.dual_democracy" graphic_alt = "gov.republic" +sound = "g_dual_democracy" +sound_alt = "g_republic" ruler_male_title = _("President %s") ruler_female_title = _("?female:President %s") diff --git a/data/civ1/governments.ruleset b/data/civ1/governments.ruleset index 6e4df390bb..85016f5e28 100644 --- a/data/civ1/governments.ruleset +++ b/data/civ1/governments.ruleset @@ -46,6 +46,9 @@ during_revolution = "Anarchy" ; graphic_alt = alternate graphics tag if preferred is not found; ; should be a standard tag if preferred is not; ; otherwise may be "-" +; 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. ; 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. @@ -67,6 +70,8 @@ name = _("Anarchy") ; No reqs graphic = "gov.anarchy" graphic_alt = "-" +sound = "g_anarchy" +sound_alt = "-" ruler_male_title = _("Warlord %s") ruler_female_title = _("Warlady %s") @@ -88,6 +93,8 @@ name = _("Despotism") ; No reqs graphic = "gov.despotism" graphic_alt = "-" +sound = "g_despotism" +sound_alt = "-" ai_better = "Monarchy" ruler_male_title = _("Chief %s") @@ -110,6 +117,8 @@ reqs = { "type", "name", "range" } graphic = "gov.monarchy" graphic_alt = "-" +sound = "g_monarchy" +sound_alt = "-" ai_better = "Communism" ruler_male_title = _("King %s") @@ -132,6 +141,8 @@ reqs = { "type", "name", "range" } graphic = "gov.communism" graphic_alt = "-" +sound = "g_communism" +sound_alt = "-" ruler_male_title = _("Comrade %s") ruler_female_title = _("?female:Comrade %s") @@ -156,6 +167,8 @@ reqs = { "type", "name", "range" } graphic = "gov.republic" graphic_alt = "-" +sound = "g_republic" +sound_alt = "-" ruler_male_title = _("Consul %s") ruler_female_title = _("?female:Consul %s") @@ -178,6 +191,8 @@ reqs = { "type", "name", "range" } graphic = "gov.democracy" graphic_alt = "-" +sound = "g_democracy" +sound_alt = "-" ruler_male_title = _("President %s") ruler_female_title = _("?female:President %s") diff --git a/data/civ2/governments.ruleset b/data/civ2/governments.ruleset index 2b43b53138..a9a0300519 100644 --- a/data/civ2/governments.ruleset +++ b/data/civ2/governments.ruleset @@ -44,6 +44,9 @@ during_revolution = "Anarchy" ; graphic_alt = alternate graphics tag if preferred is not found; ; should be a standard tag if preferred is not; ; otherwise may be "-" +; 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. ; 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. @@ -65,6 +68,8 @@ name = _("Anarchy") ; No reqs graphic = "gov.anarchy" graphic_alt = "-" +sound = "g_anarchy" +sound_alt = "-" ruler_male_title = _("Warlord %s") ruler_female_title = _("Warlady %s") @@ -86,6 +91,8 @@ name = _("Despotism") ; No reqs graphic = "gov.despotism" graphic_alt = "-" +sound = "g_despotism" +sound_alt = "-" ai_better = "Monarchy" ruler_male_title = _("Chief %s") @@ -108,6 +115,8 @@ reqs = { "type", "name", "range" } graphic = "gov.monarchy" graphic_alt = "-" +sound = "g_monarchy" +sound_alt = "-" ai_better = "Communism" ruler_male_title = _("King %s") @@ -130,6 +139,8 @@ reqs = { "type", "name", "range" } graphic = "gov.communism" graphic_alt = "-" +sound = "g_communism" +sound_alt = "-" ruler_male_title = _("Comrade %s") ruler_female_title = _("?female:Comrade %s") @@ -154,6 +165,8 @@ reqs = { "type", "name", "range" } graphic = "gov.fundamentalism" graphic_alt = "-" +sound = "g_fundamentalism" +sound_alt = "-" ruler_male_title = _("High Priest %s") ruler_female_title = _("High Priestess %s") @@ -182,6 +195,8 @@ reqs = { "type", "name", "range" } graphic = "gov.republic" graphic_alt = "-" +sound = "g_republic" +sound_alt = "-" ruler_male_title = _("Consul %s") ruler_female_title = _("?female:Consul %s") @@ -204,6 +219,8 @@ reqs = { "type", "name", "range" } graphic = "gov.democracy" graphic_alt = "-" +sound = "g_democracy" +sound_alt = "-" ruler_male_title = _("President %s") ruler_female_title = _("?female:President %s") diff --git a/data/civ2civ3/governments.ruleset b/data/civ2civ3/governments.ruleset index a6c1893cf3..4446343f4a 100644 --- a/data/civ2civ3/governments.ruleset +++ b/data/civ2civ3/governments.ruleset @@ -44,6 +44,9 @@ during_revolution = "Anarchy" ; graphic_alt = alternate graphics tag if preferred is not found; ; should be a standard tag if preferred is not; ; otherwise may be "-" +; 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. ; 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. @@ -65,6 +68,8 @@ name = _("Anarchy") ; No reqs graphic = "gov.anarchy" graphic_alt = "-" +sound = "g_anarchy" +sound_alt = "-" ruler_male_title = _("Warlord %s") ruler_female_title = _("Warlady %s") @@ -103,6 +108,8 @@ name = _("Tribal") ; No reqs graphic = "gov.tribal" graphic_alt = "s.tax_luxury" +sound = "g_tribal" +sound_alt = "-" ai_better = "Republic" ruler_male_title = _("Warlord %s") @@ -142,6 +149,8 @@ name = _("Despotism") ; No reqs graphic = "gov.despotism" graphic_alt = "-" +sound = "g_despotism" +sound_alt = "-" ai_better = "Monarchy" ruler_male_title = _("Chief %s") @@ -181,6 +190,8 @@ reqs = { "type", "name", "range" } graphic = "gov.monarchy" graphic_alt = "-" +sound = "g_monarchy" +sound_alt = "-" ruler_male_title = _("King %s") ruler_female_title = _("Queen %s") @@ -218,6 +229,8 @@ reqs = { "type", "name", "range" } graphic = "gov.communism" graphic_alt = "-" +sound = "g_communism" +sound_alt = "-" ruler_male_title = _("Comrade %s") ruler_female_title = _("?female:Comrade %s") @@ -256,6 +269,8 @@ reqs = { "type", "name", "range" } graphic = "gov.fundamentalism" graphic_alt = "-" +sound = "g_fundamentalism" +sound_alt = "-" ruler_male_title = _("High Priest %s") ruler_female_title = _("High Priestess %s") @@ -302,6 +317,8 @@ reqs = { "type", "name", "range" } graphic = "gov.federation" graphic_alt = "s.tax_gold" +sound = "g_federation" +sound_alt = "-" ruler_male_title = _("Consul %s") ruler_female_title = _("?female:Consul %s") @@ -338,6 +355,8 @@ reqs = { "type", "name", "range" } graphic = "gov.republic" graphic_alt = "-" +sound = "g_republic" +sound_alt = "-" ruler_male_title = _("President %s") ruler_female_title = _("?female:President %s") @@ -376,6 +395,8 @@ reqs = { "type", "name", "range" } graphic = "gov.democracy" graphic_alt = "-" +sound = "g_democracy" +sound_alt = "-" 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 a8a65d3c75..c4ad495fb5 100644 --- a/data/classic/governments.ruleset +++ b/data/classic/governments.ruleset @@ -44,6 +44,9 @@ during_revolution = "Anarchy" ; graphic_alt = alternate graphics tag if preferred is not found; ; should be a standard tag if preferred is not; ; otherwise may be "-" +; 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. ; 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. @@ -65,6 +68,8 @@ name = _("Anarchy") ; No reqs graphic = "gov.anarchy" graphic_alt = "-" +sound = "g_anarchy" +sound_alt = "-" ruler_male_title = _("Warlord %s") ruler_female_title = _("Warlady %s") @@ -86,6 +91,8 @@ name = _("Despotism") ; No reqs graphic = "gov.despotism" graphic_alt = "-" +sound = "g_despotism" +sound_alt = "-" ai_better = "Monarchy" ruler_male_title = _("Chief %s") @@ -108,6 +115,8 @@ reqs = { "type", "name", "range" } graphic = "gov.monarchy" graphic_alt = "-" +sound = "g_monarchy" +sound_alt = "-" ai_better = "Communism" ruler_male_title = _("King %s") @@ -130,6 +139,8 @@ reqs = { "type", "name", "range" } graphic = "gov.communism" graphic_alt = "-" +sound = "g_communism" +sound_alt = "-" ruler_male_title = _("Comrade %s") ruler_female_title = _("?female:Comrade %s") @@ -154,6 +165,8 @@ reqs = { "type", "name", "range" } graphic = "gov.republic" graphic_alt = "-" +sound = "g_republic" +sound_alt = "-" ruler_male_title = _("President %s") ruler_female_title = _("?female:President %s") @@ -176,6 +189,8 @@ reqs = { "type", "name", "range" } graphic = "gov.democracy" graphic_alt = "-" +sound = "g_democracy" +sound_alt = "-" 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 5b0ed5c7af..7afb6874d6 100644 --- a/data/goldkeep/governments.ruleset +++ b/data/goldkeep/governments.ruleset @@ -46,6 +46,9 @@ during_revolution = "Anarchy" ; graphic_alt = alternate graphics tag if preferred is not found; ; should be a standard tag if preferred is not; ; otherwise may be "-" +; 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. ; 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. @@ -67,6 +70,8 @@ name = _("Anarchy") ; No reqs graphic = "gov.anarchy" graphic_alt = "-" +sound = "g_anarchy" +sound_alt = "-" ruler_male_title = _("Warlord %s") ruler_female_title = _("Warlady %s") @@ -90,6 +95,8 @@ name = _("Despotism") ; No reqs graphic = "gov.despotism" graphic_alt = "-" +sound = "g_despotism" +sound_alt = "-" ai_better = "Monarchy" ruler_male_title = _("Chief %s") @@ -112,6 +119,8 @@ reqs = { "type", "name", "range" } graphic = "gov.monarchy" graphic_alt = "-" +sound = "g_monarchy" +sound_alt = "-" ai_better = "Communism" ruler_male_title = _("King %s") @@ -134,6 +143,8 @@ reqs = { "type", "name", "range" } graphic = "gov.communism" graphic_alt = "-" +sound = "g_communism" +sound_alt = "-" ruler_male_title = _("Comrade %s") ruler_female_title = _("?female:Comrade %s") @@ -158,6 +169,8 @@ reqs = { "type", "name", "range" } graphic = "gov.republic" graphic_alt = "-" +sound = "g_republic" +sound_alt = "-" ruler_male_title = _("President %s") ruler_female_title = _("?female:President %s") @@ -180,6 +193,8 @@ reqs = { "type", "name", "range" } graphic = "gov.democracy" graphic_alt = "-" +sound = "g_democracy" +sound_alt = "-" 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 7fc4f80832..295e393d28 100644 --- a/data/granularity/governments.ruleset +++ b/data/granularity/governments.ruleset @@ -44,6 +44,9 @@ during_revolution = "Anarchy" ; graphic_alt = alternate graphics tag if preferred is not found; ; should be a standard tag if preferred is not; ; otherwise may be "-" +; 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. ; 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. @@ -65,6 +68,8 @@ name = _("Anarchy") ; No reqs graphic = "gov.anarchy" graphic_alt = "-" +sound = "g_anarchy" +sound_alt = "-" ruler_male_title = _("Usurper %s") ruler_female_title = _("?female:Usurper %s") @@ -83,6 +88,8 @@ reqs = } graphic = "gov.tribal" graphic_alt = "-" +sound = "g_tribal" +sound_alt = "-" ruler_male_title = _("Warlord %s") ruler_female_title = _("Warlady %s") diff --git a/data/multiplayer/governments.ruleset b/data/multiplayer/governments.ruleset index fd554b4b3f..b6c40ab227 100644 --- a/data/multiplayer/governments.ruleset +++ b/data/multiplayer/governments.ruleset @@ -44,6 +44,9 @@ during_revolution = "Anarchy" ; graphic_alt = alternate graphics tag if preferred is not found; ; should be a standard tag if preferred is not; ; otherwise may be "-" +; 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. ; 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. @@ -65,6 +68,8 @@ name = _("Anarchy") ; No reqs graphic = "gov.anarchy" graphic_alt = "-" +sound = "g_anarchy" +sound_alt = "-" ruler_male_title = _("Warlord %s") ruler_female_title = _("Warlady %s") @@ -86,6 +91,8 @@ name = _("Despotism") ; No reqs graphic = "gov.despotism" graphic_alt = "-" +sound = "g_despotism" +sound_alt = "-" ai_better = "Monarchy" ruler_male_title = _("Chief %s") @@ -108,6 +115,8 @@ reqs = { "type", "name", "range" } graphic = "gov.monarchy" graphic_alt = "-" +sound = "g_monarchy" +sound_alt = "-" ai_better = "Communism" ruler_male_title = _("King %s") @@ -130,6 +139,8 @@ reqs = { "type", "name", "range" } graphic = "gov.communism" graphic_alt = "-" +sound = "g_communism" +sound_alt = "-" ruler_male_title = _("Comrade %s") ruler_female_title = _("?female:Comrade %s") @@ -154,6 +165,8 @@ reqs = { "type", "name", "range" } graphic = "gov.republic" graphic_alt = "-" +sound = "g_republic" +sound_alt = "-" ruler_male_title = _("President %s") ruler_female_title = _("?female:President %s") @@ -176,6 +189,8 @@ reqs = { "type", "name", "range" } graphic = "gov.democracy" graphic_alt = "-" +sound = "g_democracy" +sound_alt = "-" ruler_male_title = _("Prime Minister %s") ruler_female_title = _("?female:Prime Minister %s") @@ -197,6 +212,8 @@ reqs = { "type", "name", "range" } graphic = "gov.fundamentalism" graphic_alt = "-" +sound = "g_fundamentalism" +sound_alt = "-" 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 7a68b23786..a2fee72f94 100644 --- a/data/ruledit/comments-3.2.txt +++ b/data/ruledit/comments-3.2.txt @@ -195,6 +195,9 @@ governments = "\ ; graphic_alt = alternate graphics tag if preferred is not found;\n\ ; should be a standard tag if preferred is not;\n\ ; otherwise may be \"-\"\n\ +; 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\ ; 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 02401cd03a..42d96c9201 100644 --- a/data/sandbox/governments.ruleset +++ b/data/sandbox/governments.ruleset @@ -44,6 +44,9 @@ during_revolution = "Anarchy" ; graphic_alt = alternate graphics tag if preferred is not found; ; should be a standard tag if preferred is not; ; otherwise may be "-" +; 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. ; 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. @@ -65,6 +68,8 @@ name = _("Anarchy") ; No reqs graphic = "gov.anarchy" graphic_alt = "-" +sound = "g_anarchy" +sound_alt = "-" ruler_male_title = _("Warlord %s") ruler_female_title = _("Warlady %s") @@ -103,6 +108,8 @@ name = _("Tribal") ; No reqs graphic = "gov.tribal" graphic_alt = "s.tax_luxury" +sound = "g_tribal" +sound_alt = "-" ai_better = "Republic" ruler_male_title = _("Warlord %s") @@ -142,6 +149,8 @@ name = _("Despotism") ; No reqs graphic = "gov.despotism" graphic_alt = "-" +sound = "g_despotism" +sound_alt = "-" ai_better = "Monarchy" ruler_male_title = _("Chief %s") @@ -181,6 +190,8 @@ reqs = { "type", "name", "range" } graphic = "gov.monarchy" graphic_alt = "-" +sound = "g_monarchy" +sound_alt = "-" ruler_male_title = _("King %s") ruler_female_title = _("Queen %s") @@ -218,6 +229,8 @@ reqs = { "type", "name", "range" } graphic = "gov.communism" graphic_alt = "-" +sound = "g_communism" +sound_alt = "-" ruler_male_title = _("Comrade %s") ruler_female_title = _("?female:Comrade %s") @@ -257,6 +270,8 @@ reqs = { "type", "name", "range" } graphic = "gov.fundamentalism" graphic_alt = "-" +sound = "g_fundamentalism" +sound_alt = "-" ruler_male_title = _("High Priest %s") ruler_female_title = _("High Priestess %s") @@ -303,6 +318,8 @@ reqs = { "type", "name", "range" } graphic = "gov.federation" graphic_alt = "s.tax_gold" +sound = "g_federation" +sound_alt = "-" ruler_male_title = _("Consul %s") ruler_female_title = _("?female:Consul %s") @@ -339,6 +356,8 @@ reqs = { "type", "name", "range" } graphic = "gov.republic" graphic_alt = "-" +sound = "g_republic" +sound_alt = "-" ruler_male_title = _("President %s") ruler_female_title = _("?female:President %s") @@ -378,6 +397,8 @@ reqs = { "type", "name", "range" } graphic = "gov.democracy" graphic_alt = "-" +sound = "g_democracy" +sound_alt = "-" ruler_male_title = _("Prime Minister %s") ruler_female_title = _("?female:Prime Minister %s") diff --git a/data/stdsounds.soundspec b/data/stdsounds.soundspec index 82db82d6ee..455fd31124 100644 --- a/data/stdsounds.soundspec +++ b/data/stdsounds.soundspec @@ -194,6 +194,14 @@ m_trireme = "stdsounds/inh2o.ogg" ; [pox] ;w_united_nations = "" ;w_womens_suffrage = "" +;g_anarchy = "" +;g_despotism = "" +;g_tribal = "" +;g_monarchy = "" +;g_republic = "" +;g_democracy = "" +;g_federation = "" +;g_fundamentalism = "" ; This list contains all events up to E_DEPRECATION_WARNING ; (as numbered in common/events.h), in the sorted order. diff --git a/data/stub/governments.ruleset b/data/stub/governments.ruleset index 8f69737c9a..efd8b1c524 100644 --- a/data/stub/governments.ruleset +++ b/data/stub/governments.ruleset @@ -35,6 +35,9 @@ during_revolution = "Anarchy" ; graphic_alt = alternate graphics tag if preferred is not found; ; should be a standard tag if preferred is not; ; otherwise may be "-" +; 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. ; 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. @@ -56,6 +59,8 @@ name = _("Anarchy") ; No reqs graphic = "gov.anarchy" graphic_alt = "-" +sound = "g_anarchy" +sound_alt = "-" ruler_male_title = _("Usurper %s") ruler_female_title = _("?female:Usurper %s") @@ -74,6 +79,8 @@ reqs = } graphic = "gov.despotism" graphic_alt = "-" +sound = "g_despotism" +sound_alt = "-" ruler_male_title = _("Leader %s") ruler_female_title = _("Leader %s") diff --git a/data/webperimental/governments.ruleset b/data/webperimental/governments.ruleset index aff04035c7..a8b65ecd71 100644 --- a/data/webperimental/governments.ruleset +++ b/data/webperimental/governments.ruleset @@ -44,6 +44,9 @@ during_revolution = "Anarchy" ; graphic_alt = alternate graphics tag if preferred is not found; ; should be a standard tag if preferred is not; ; otherwise may be "-" +; 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. ; 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. @@ -65,6 +68,8 @@ name = _("Anarchy") ; No reqs graphic = "gov.anarchy" graphic_alt = "-" +sound = "g_anarchy" +sound_alt = "-" ruler_male_title = _("Warlord %s") ruler_female_title = _("Warlady %s") @@ -86,6 +91,8 @@ name = _("Despotism") ; No reqs graphic = "gov.despotism" graphic_alt = "-" +sound = "g_despotism" +sound_alt = "-" ai_better = "Monarchy" ruler_male_title = _("Chief %s") @@ -108,6 +115,8 @@ reqs = { "type", "name", "range" } graphic = "gov.monarchy" graphic_alt = "-" +sound = "g_monarchy" +sound_alt = "-" ai_better = "Communism" ruler_male_title = _("King %s") @@ -130,6 +139,8 @@ reqs = { "type", "name", "range" } graphic = "gov.communism" graphic_alt = "-" +sound = "g_communism" +sound_alt = "-" ruler_male_title = _("Comrade %s") ruler_female_title = _("?female:Comrade %s") @@ -154,6 +165,8 @@ reqs = { "type", "name", "range" } graphic = "gov.republic" graphic_alt = "-" +sound = "g_republic" +sound_alt = "-" ruler_male_title = _("President %s") ruler_female_title = _("?female:President %s") @@ -176,6 +189,8 @@ reqs = { "type", "name", "range" } graphic = "gov.democracy" graphic_alt = "-" +sound = "g_democracy" +sound_alt = "-" ruler_male_title = _("Prime Minister %s") ruler_female_title = _("?female:Prime Minister %s") diff --git a/server/ruleset.c b/server/ruleset.c index d177140ffc..f312d9d06a 100644 --- a/server/ruleset.c +++ b/server/ruleset.c @@ -4492,15 +4492,15 @@ static bool load_ruleset_governments(struct section_file *file, } if (ok) { - game.info.government_during_revolution_id = - government_number(game.government_during_revolution); + game.info.government_during_revolution_id + = government_number(game.government_during_revolution); - /* easy ones: */ + /* Easy ones: */ governments_iterate(g) { const int i = government_index(g); const char *sec_name = section_name(section_list_get(sec, i)); - struct requirement_vector *reqs = - lookup_req_list(file, compat, sec_name, "reqs", government_rule_name(g)); + struct requirement_vector *reqs + = lookup_req_list(file, compat, sec_name, "reqs", government_rule_name(g)); if (reqs == NULL) { ok = FALSE; @@ -4525,6 +4525,10 @@ static bool load_ruleset_governments(struct section_file *file, secfile_lookup_str(file, "%s.graphic", sec_name)); sz_strlcpy(g->graphic_alt, secfile_lookup_str(file, "%s.graphic_alt", sec_name)); + sz_strlcpy(g->sound_str, + secfile_lookup_str_default(file, "-", "%s.sound", sec_name)); + sz_strlcpy(g->sound_alt, + secfile_lookup_str_default(file, "-", "%s.sound_alt", sec_name)); g->helptext = lookup_strvec(file, sec_name, "helptext"); } governments_iterate_end; @@ -4532,10 +4536,10 @@ static bool load_ruleset_governments(struct section_file *file, if (ok) { - /* titles */ + /* Titles */ governments_iterate(g) { - const char *sec_name = - section_name(section_list_get(sec, government_index(g))); + const char *sec_name + = section_name(section_list_get(sec, government_index(g))); const char *male, *female; if (!(male = secfile_lookup_str(file, "%s.ruler_male_title", sec_name)) @@ -8987,7 +8991,7 @@ static void send_ruleset_governments(struct conn_list *dest) int j; governments_iterate(g) { - /* send one packet_government */ + /* Send one packet_government */ gov.id = government_number(g); j = 0; @@ -9000,6 +9004,8 @@ static void send_ruleset_governments(struct conn_list *dest) sz_strlcpy(gov.rule_name, rule_name_get(&g->name)); sz_strlcpy(gov.graphic_str, g->graphic_str); sz_strlcpy(gov.graphic_alt, g->graphic_alt); + sz_strlcpy(gov.sound_str, g->sound_str); + sz_strlcpy(gov.sound_alt, g->sound_alt); PACKET_STRVEC_COMPUTE(gov.helptext, g->helptext); lsend_packet_ruleset_government(dest, &gov); diff --git a/tools/ruleutil/rulesave.c b/tools/ruleutil/rulesave.c index d465582e2e..3c670c88eb 100644 --- a/tools/ruleutil/rulesave.c +++ b/tools/ruleutil/rulesave.c @@ -1902,6 +1902,8 @@ static bool save_governments_ruleset(const char *filename, const char *name) secfile_insert_str(sfile, pg->graphic_str, "%s.graphic", path); secfile_insert_str(sfile, pg->graphic_alt, "%s.graphic_alt", path); + secfile_insert_str(sfile, pg->sound_str, "%s.sound", path); + secfile_insert_str(sfile, pg->sound_alt, "%s.sound_alt", path); save_reqs_vector(sfile, &(pg->reqs), path, "reqs"); -- 2.43.0