Author: cazfi
Date: Mon Jul 18 21:07:19 2016
New Revision: 33261

URL: http://svn.gna.org/viewcvs/freeciv?rev=33261&view=rev
Log:
Added tech_class network packet

See patch #7415

Modified:
    trunk/client/packhand.c
    trunk/common/networking/packets.def
    trunk/fc_version
    trunk/server/ruleset.c

Modified: trunk/client/packhand.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/client/packhand.c?rev=33261&r1=33260&r2=33261&view=diff
==============================================================================
--- trunk/client/packhand.c     (original)
+++ trunk/client/packhand.c     Mon Jul 18 21:07:19 2016
@@ -3467,6 +3467,18 @@
   PACKET_STRVEC_EXTRACT(a->helptext, p->helptext);
 
   tileset_setup_tech_type(tileset, a);
+}
+
+/****************************************************************************
+  Packet ruleset_tech_class handler.
+****************************************************************************/
+void handle_ruleset_tech_class(const struct packet_ruleset_tech_class *p)
+{
+  struct tech_class *ptclass = tech_class_by_number(p->id);
+
+  fc_assert_ret_msg(NULL != ptclass, "Bad tech_class %d.", p->id);
+
+  names_set(&ptclass->name, NULL, p->name, p->rule_name);
 }
 
 /****************************************************************************

Modified: trunk/common/networking/packets.def
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/common/networking/packets.def?rev=33261&r1=33260&r2=33261&view=diff
==============================================================================
--- trunk/common/networking/packets.def (original)
+++ trunk/common/networking/packets.def Mon Jul 18 21:07:19 2016
@@ -1418,6 +1418,12 @@
   STRING graphic_alt[MAX_LEN_NAME];
 end
 
+PACKET_RULESET_TECH_CLASS = 9; sc, lsend
+  UINT16 id;
+  STRING name[MAX_LEN_NAME];
+  STRING rule_name[MAX_LEN_NAME];
+end
+
 PACKET_RULESET_TECH_FLAG = 234; sc, lsend
   UINT8       id;
   STRING      name[MAX_LEN_NAME];

Modified: trunk/fc_version
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/fc_version?rev=33261&r1=33260&r2=33261&view=diff
==============================================================================
--- trunk/fc_version    (original)
+++ trunk/fc_version    Mon Jul 18 21:07:19 2016
@@ -56,7 +56,7 @@
 #   - Avoid adding a new mandatory capability to the development branch for
 #     as long as possible.  We want to maintain network compatibility with
 #     the stable branch for as long as possible.
-NETWORK_CAPSTRING_MANDATORY="+Freeciv.Devel-3.0-2016.Jul.15"
+NETWORK_CAPSTRING_MANDATORY="+Freeciv.Devel-3.0-2016.Jul.18"
 NETWORK_CAPSTRING_OPTIONAL=""
 
 FREECIV_DISTRIBUTOR=""

Modified: trunk/server/ruleset.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/server/ruleset.c?rev=33261&r1=33260&r2=33261&view=diff
==============================================================================
--- trunk/server/ruleset.c      (original)
+++ trunk/server/ruleset.c      Mon Jul 18 21:07:19 2016
@@ -169,6 +169,7 @@
 static bool load_ruleset_game(struct section_file *file, bool act,
                               struct rscompat_info *compat);
 
+static void send_ruleset_tech_classes(struct conn_list *dest);
 static void send_ruleset_techs(struct conn_list *dest);
 static void send_ruleset_unit_classes(struct conn_list *dest);
 static void send_ruleset_units(struct conn_list *dest);
@@ -6682,6 +6683,21 @@
     lsend_packet_ruleset_specialist(dest, &packet);
   } specialist_type_iterate_end;
 }
+/**************************************************************************
+  Send the techs class information to the specified connections.
+**************************************************************************/
+static void send_ruleset_tech_classes(struct conn_list *dest)
+{
+  struct packet_ruleset_tech_class packet;
+
+  tech_class_iterate(ptclass) {
+    packet.id = ptclass->idx;
+    sz_strlcpy(packet.name, untranslated_name(&ptclass->name));
+    sz_strlcpy(packet.rule_name, rule_name_get(&ptclass->name));
+
+    lsend_packet_ruleset_tech_class(dest, &packet);
+  } tech_class_iterate_end;
+}
 
 /**************************************************************************
   Send the techs ruleset information (all individual advances) to the
@@ -6720,7 +6736,7 @@
     packet.id = advance_number(a);
     packet.removed = !valid_advance(a);
     if (a->tclass == NULL) {
-      packet.tclass = -1;
+      packet.tclass = 0;
     } else {
       packet.tclass = a->tclass->idx;
     }
@@ -7889,6 +7905,7 @@
   send_ruleset_actions(dest);
   send_ruleset_action_enablers(dest);
   send_ruleset_action_auto_performers(dest);
+  send_ruleset_tech_classes(dest);
   send_ruleset_techs(dest);
   send_ruleset_governments(dest);
   send_ruleset_unit_classes(dest);


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

Reply via email to