Author: cazfi
Date: Tue Jun 28 19:14:32 2016
New Revision: 33089

URL: http://svn.gna.org/viewcvs/freeciv?rev=33089&view=rev
Log:
Added lua function create_owned_extra(), and deprecated create_base()

See paych #7316

Modified:
    trunk/server/scripting/api_server_edit.c
    trunk/server/scripting/api_server_edit.h
    trunk/server/scripting/tolua_server.pkg

Modified: trunk/server/scripting/api_server_edit.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/server/scripting/api_server_edit.c?rev=33089&r1=33088&r2=33089&view=diff
==============================================================================
--- trunk/server/scripting/api_server_edit.c    (original)
+++ trunk/server/scripting/api_server_edit.c    Tue Jun 28 19:14:32 2016
@@ -368,9 +368,10 @@
 }
 
 /*****************************************************************************
-  Create a new extra.
-*****************************************************************************/
-void api_edit_create_extra(lua_State *L, Tile *ptile, const char *name)
+  Create a new owned extra.
+*****************************************************************************/
+void api_edit_create_owned_extra(lua_State *L, Tile *ptile, const char *name,
+                                 Player *pplayer)
 {
   struct extra_type *pextra;
 
@@ -384,9 +385,17 @@
   pextra = extra_type_by_rule_name(name);
 
   if (pextra) {
-    create_extra(ptile, pextra, NULL);
+    create_extra(ptile, pextra, pplayer);
     update_tile_knowledge(ptile);
   }
+}
+
+/*****************************************************************************
+  Create a new extra.
+*****************************************************************************/
+void api_edit_create_extra(lua_State *L, Tile *ptile, const char *name)
+{
+  api_edit_create_owned_extra(L, ptile, name, NULL);
 }
 
 /*****************************************************************************
@@ -395,21 +404,7 @@
 void api_edit_create_base(lua_State *L, Tile *ptile, const char *name,
                           Player *pplayer)
 {
-  struct extra_type *pextra;
-
-  LUASCRIPT_CHECK_STATE(L);
-  LUASCRIPT_CHECK_ARG_NIL(L, ptile, 2, Tile);
-
-  if (!name) {
-    return;
-  }
-
-  pextra = extra_type_by_rule_name(name);
-
-  if (pextra != NULL && is_extra_caused_by(pextra, EC_BASE)) {
-    create_extra(ptile, pextra, pplayer);
-    update_tile_knowledge(ptile);
-  }
+  api_edit_create_owned_extra(L, ptile, name, pplayer);
 }
 
 /*****************************************************************************
@@ -417,7 +412,7 @@
 *****************************************************************************/
 void api_edit_create_road(lua_State *L, Tile *ptile, const char *name)
 {
-  api_edit_create_extra(L, ptile, name);
+  api_edit_create_owned_extra(L, ptile, name, NULL);
 }
 
 /*****************************************************************************

Modified: trunk/server/scripting/api_server_edit.h
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/server/scripting/api_server_edit.h?rev=33089&r1=33088&r2=33089&view=diff
==============================================================================
--- trunk/server/scripting/api_server_edit.h    (original)
+++ trunk/server/scripting/api_server_edit.h    Tue Jun 28 19:14:32 2016
@@ -53,6 +53,8 @@
 bool api_edit_trait_mod_set(lua_State *L, Player *pplayer,
                             const char *tname, const int mod);
 
+void api_edit_create_owned_extra(lua_State *L, Tile *ptile, const char *name,
+                                 struct player *pplayer);
 void api_edit_create_extra(lua_State *L, Tile *ptile, const char *name);
 void api_edit_create_base(lua_State *L, Tile *ptile, const char *name,
                           struct player *pplayer);

Modified: trunk/server/scripting/tolua_server.pkg
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/server/scripting/tolua_server.pkg?rev=33089&r1=33088&r2=33089&view=diff
==============================================================================
--- trunk/server/scripting/tolua_server.pkg     (original)
+++ trunk/server/scripting/tolua_server.pkg     Tue Jun 28 19:14:32 2016
@@ -121,9 +121,12 @@
   void api_edit_create_city
     @ create_city (lua_State *L, Player *pplayer, Tile *ptile,
                    const char *name);
+  void api_edit_create_owned_extra
+    @ create_owned_extra (lua_State *L, Tile *ptile,
+                          const char *name, Player *pplayer);
   void api_edit_create_extra
     @ create_extra (lua_State *L, Tile *ptile, const char *name);
-  /* Deprecated; use edit.create_extra() */
+  /* Deprecated; use edit.create_owned_extra() */
   void api_edit_create_base
     @ create_base (lua_State *L, Tile *ptile, const char *name,
                    Player *pplayer);
@@ -202,11 +205,11 @@
   edit.create_city (player, tile, name)
 end
 
--- Deprecated; use edit.create_extra()
+-- Deprecated; use edit.create_owned_extra()
 function create_base(tile, name, player)
   -- Out-of-namespace since 2.4
-  -- edit.create_base() -> edit.create_extra() since 2.6
-  log.deprecation_warning("create_base()", "edit.create_extra()",
+  -- edit.create_base() -> edit.create_owned_extra() since 3.0
+  log.deprecation_warning("create_base()", "edit.create_owned_extra()",
                           "2.4");
   edit.create_base(tile, name, player)
 end
@@ -329,14 +332,18 @@
 end
 
 -- Server functions for Tile module
+function Tile:create_owned_extra(name, player)
+  edit.create_owned_extra(self, name, player)
+end
+
 function Tile:create_extra(name)
   edit.create_extra(self, name)
 end
 
 -- Deprecated; use Tile:create_extra()
 function Tile:create_base(name, player)
-  log.deprecation_warning("Tile:create_base()", "Tile:create_extra()",
-                          "2.6");
+  log.deprecation_warning("Tile:create_base()", "Tile:create_owned_extra()",
+                          "3.0");
   edit.create_base(self, name, player)
 end
 


_______________________________________________
Freeciv-commits mailing list
Freeciv-commits@gna.org
https://mail.gna.org/listinfo/freeciv-commits

Reply via email to