Author: cazfi Date: Tue Nov 17 22:57:58 2015 New Revision: 30657 URL: http://svn.gna.org/viewcvs/freeciv?rev=30657&view=rev Log: Added notify.research_embassies() functionality to lua scripting API.
See bug #24056 Modified: trunk/server/notify.c trunk/server/scripting/api_server_notify.c trunk/server/scripting/api_server_notify.h trunk/server/scripting/tolua_server.pkg Modified: trunk/server/notify.c URL: http://svn.gna.org/viewcvs/freeciv/trunk/server/notify.c?rev=30657&r1=30656&r2=30657&view=diff ============================================================================== --- trunk/server/notify.c (original) +++ trunk/server/notify.c Tue Nov 17 22:57:58 2015 @@ -385,10 +385,19 @@ } /**************************************************************************** - Sends a message to all players that share research. + Sends a message to all players that have embassies with someone who + shares research. Unlike other notify functions this one does not take a tile argument. We assume no research message will have a tile associated. + + Exclude parameter excludes everyone who has embassy (only) with that + player. + + FIXME: Should not send multiple messages if one has embassy with multiple + members of the research group, should really exclude ones having + embassy with the exclude -one as the use-case for exclusion is that + different message is being sent to those excluded here. ****************************************************************************/ void notify_research_embassies(const struct research *presearch, const struct player *exclude, Modified: trunk/server/scripting/api_server_notify.c URL: http://svn.gna.org/viewcvs/freeciv/trunk/server/scripting/api_server_notify.c?rev=30657&r1=30656&r2=30657&view=diff ============================================================================== --- trunk/server/scripting/api_server_notify.c (original) +++ trunk/server/scripting/api_server_notify.c Tue Nov 17 22:57:58 2015 @@ -65,3 +65,18 @@ notify_research(pres, include_plr ? NULL : pplayer, event, ftc_any, "%s", message); } + +/***************************************************************************** + Notify players sharing research with the player. +*****************************************************************************/ +void api_notify_research_embassies_msg(lua_State *L, Player *pplayer, + int event, const char *message) +{ + struct research *pres; + + LUASCRIPT_CHECK_STATE(L); + + pres = research_get(pplayer); + + notify_research_embassies(pres, NULL, event, ftc_any, "%s", message); +} Modified: trunk/server/scripting/api_server_notify.h URL: http://svn.gna.org/viewcvs/freeciv/trunk/server/scripting/api_server_notify.h?rev=30657&r1=30656&r2=30657&view=diff ============================================================================== --- trunk/server/scripting/api_server_notify.h (original) +++ trunk/server/scripting/api_server_notify.h Tue Nov 17 22:57:58 2015 @@ -25,5 +25,7 @@ int event, const char *message); void api_notify_research_msg(lua_State *L, Player *pplayer, bool include_plr, int event, const char *message); +void api_notify_research_embassies_msg(lua_State *L, Player *pplayer, + int event, const char *message); #endif /* API_SERVER_NOTIFY */ Modified: trunk/server/scripting/tolua_server.pkg URL: http://svn.gna.org/viewcvs/freeciv/trunk/server/scripting/tolua_server.pkg?rev=30657&r1=30656&r2=30657&view=diff ============================================================================== --- trunk/server/scripting/tolua_server.pkg (original) +++ trunk/server/scripting/tolua_server.pkg Tue Nov 17 22:57:58 2015 @@ -61,6 +61,9 @@ void api_notify_research_msg @ research_msg (lua_State *L, Player *pplayer, bool include_plr, int event, const char *message); + void api_notify_research_embassies_msg + @ research_embassies_msg (lua_State *L, Player *pplayer, int event, + const char *message); void api_notify_event_msg @ event_msg (lua_State *L, Player *pplayer, Tile *ptile, int event, const char *message); @@ -92,6 +95,11 @@ function notify.research(player, selfmsg, event, ...) local arg = table.pack(...); notify.research_msg(player, selfmsg, event, string.format(table.unpack(arg))) +end + +function notify.research_embassies(player, event, ...) + local arg = table.pack(...); + notify.research_embassies_msg(player, event, string.format(table.unpack(arg))) end $] _______________________________________________ Freeciv-commits mailing list Freeciv-commits@gna.org https://mail.gna.org/listinfo/freeciv-commits