Author: cazfi Date: Tue Dec 30 05:34:39 2014 New Revision: 27448 URL: http://svn.gna.org/viewcvs/freeciv?rev=27448&view=rev Log: Moved printing the message about how city survived a disaster without any serious effects to the default.lua script, so lua scripts can suppress it if scripts themself implement some effect.
Requested by Jacob Nevins <jtn> See bug #22082 Modified: trunk/data/default/default.lua trunk/server/cityturn.c trunk/server/scripting/script_server.c Modified: trunk/data/default/default.lua URL: http://svn.gna.org/viewcvs/freeciv/trunk/data/default/default.lua?rev=27448&r1=27447&r2=27448&view=diff ============================================================================== --- trunk/data/default/default.lua (original) +++ trunk/data/default/default.lua Tue Dec 30 05:34:39 2014 @@ -188,3 +188,15 @@ end signal.connect("city_lost", "default_make_partisans_callback") + + +-- Notify player about the fact that disaster had no effect if that's +-- the case +function harmless_disaster_message(disaster, city, had_internal_effect) + if not had_internal_effect then + notify.event(city.owner, city.tile, E.DISASTER, + _("We survived the disaster without serious damages.")) + end +end + +signal.connect("disaster", "harmless_disaster_message") Modified: trunk/server/cityturn.c URL: http://svn.gna.org/viewcvs/freeciv/trunk/server/cityturn.c?rev=27448&r1=27447&r2=27448&view=diff ============================================================================== --- trunk/server/cityturn.c (original) +++ trunk/server/cityturn.c Tue Dec 30 05:34:39 2014 @@ -3403,7 +3403,7 @@ { struct player *pplayer = city_owner(pcity); struct tile *ptile = city_tile(pcity); - bool had_effect = FALSE; + bool had_internal_effect = FALSE; log_debug("%s at %s", disaster_rule_name(pdis), city_name(pcity)); @@ -3417,7 +3417,7 @@ if (place_pollution(pcity, EC_POLLUTION)) { notify_player(pplayer, ptile, E_DISASTER, ftc_server, _("Tile polluted")); - had_effect = TRUE; + had_internal_effect = TRUE; } } @@ -3425,7 +3425,7 @@ if (place_pollution(pcity, EC_FALLOUT)) { notify_player(pplayer, ptile, E_DISASTER, ftc_server, _("Fallout contaminated tile.")); - had_effect = TRUE; + had_internal_effect = TRUE; } } @@ -3441,7 +3441,7 @@ _("Some population lost.")); } - had_effect = TRUE; + had_internal_effect = TRUE; } if (pcity && disaster_has_effect(pdis, DE_DESTROY_BUILDING)) { @@ -3463,7 +3463,7 @@ _("%s destroyed."), improvement_name_translation(imprs[num])); - had_effect = TRUE; + had_internal_effect = TRUE; } } @@ -3474,7 +3474,7 @@ notify_player(pplayer, ptile, E_DISASTER, ftc_server, _("Foodbox emptied.")); - had_effect = TRUE; + had_internal_effect = TRUE; } } @@ -3485,19 +3485,15 @@ notify_player(pplayer, ptile, E_DISASTER, ftc_server, _("Production box emptied.")); - had_effect = TRUE; - - } - } - - if (!had_effect) { - notify_player(pplayer, ptile, E_DISASTER, ftc_server, - _("We survived the disaster without serious damages.")); - } - - script_server_signal_emit("disaster", 2, + had_internal_effect = TRUE; + + } + } + + script_server_signal_emit("disaster", 3, API_TYPE_DISASTER, pdis, - API_TYPE_CITY, pcity); + API_TYPE_CITY, pcity, + API_TYPE_BOOL, had_internal_effect); } /************************************************************************** Modified: trunk/server/scripting/script_server.c URL: http://svn.gna.org/viewcvs/freeciv/trunk/server/scripting/script_server.c?rev=27448&r1=27447&r2=27448&view=diff ============================================================================== --- trunk/server/scripting/script_server.c (original) +++ trunk/server/scripting/script_server.c Tue Dec 30 05:34:39 2014 @@ -387,8 +387,8 @@ luascript_signal_create(fcl, "unit_lost", 3, API_TYPE_UNIT, API_TYPE_PLAYER, API_TYPE_STRING); - luascript_signal_create(fcl, "disaster", 2, - API_TYPE_DISASTER, API_TYPE_CITY); + luascript_signal_create(fcl, "disaster", 3, + API_TYPE_DISASTER, API_TYPE_CITY, API_TYPE_BOOL); luascript_signal_create(fcl, "achievement_gained", 3, API_TYPE_ACHIEVEMENT, API_TYPE_PLAYER, _______________________________________________ Freeciv-commits mailing list Freeciv-commits@gna.org https://mail.gna.org/listinfo/freeciv-commits