Author: cazfi
Date: Tue Nov 17 22:58:04 2015
New Revision: 30658

URL: http://svn.gna.org/viewcvs/freeciv?rev=30658&view=rev
Log:
Added notify.research_embassies() functionality to lua scripting API.

See bug #24056

Modified:
    branches/S2_6/server/notify.c
    branches/S2_6/server/scripting/api_server_notify.c
    branches/S2_6/server/scripting/api_server_notify.h
    branches/S2_6/server/scripting/tolua_server.pkg

Modified: branches/S2_6/server/notify.c
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/server/notify.c?rev=30658&r1=30657&r2=30658&view=diff
==============================================================================
--- branches/S2_6/server/notify.c       (original)
+++ branches/S2_6/server/notify.c       Tue Nov 17 22:58:04 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: branches/S2_6/server/scripting/api_server_notify.c
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/server/scripting/api_server_notify.c?rev=30658&r1=30657&r2=30658&view=diff
==============================================================================
--- branches/S2_6/server/scripting/api_server_notify.c  (original)
+++ branches/S2_6/server/scripting/api_server_notify.c  Tue Nov 17 22:58:04 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: branches/S2_6/server/scripting/api_server_notify.h
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/server/scripting/api_server_notify.h?rev=30658&r1=30657&r2=30658&view=diff
==============================================================================
--- branches/S2_6/server/scripting/api_server_notify.h  (original)
+++ branches/S2_6/server/scripting/api_server_notify.h  Tue Nov 17 22:58:04 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: branches/S2_6/server/scripting/tolua_server.pkg
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S2_6/server/scripting/tolua_server.pkg?rev=30658&r1=30657&r2=30658&view=diff
==============================================================================
--- branches/S2_6/server/scripting/tolua_server.pkg     (original)
+++ branches/S2_6/server/scripting/tolua_server.pkg     Tue Nov 17 22:58:04 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

Reply via email to