<URL: http://bugs.freeciv.org/Ticket/Display.html?id=39669 >

 - Updated comments
 - Updated list of event sound tags in stdsound.soundspec
 - Corrected some variable types from int to enum event_type
 - Trunk only: Marked format used in description building for translation
 - Trunk only: Function used in outputting soundspec entries added,
but commented out


 - ML

diff -Nurd -X.diff_ignore freeciv/common/events.c freeciv/common/events.c
--- freeciv/common/events.c	2007-08-04 18:38:32.000000000 +0300
+++ freeciv/common/events.c	2007-09-04 21:52:32.000000000 +0300
@@ -153,8 +153,22 @@
  */
 static int event_to_index[E_LAST];
 
-int sorted_events[E_LAST];
+enum event_type sorted_events[E_LAST];
+
+/**************************************************************************
+  This inserts empty soundspec entries to buffer.
+**************************************************************************/
+#if 0
+static void output_soundspec_events(char *buf, size_t bufsz)
+{
+  enum event_type et;
 
+  for (et = 0; et < E_LAST; et++) {
+    cat_snprintf(buf, bufsz, ";%s = \"\"\n",
+                 events[event_to_index[sorted_events[et]]].tag_name);
+  }
+}
+#endif
 
 /**************************************************************************
   Returns the translated description of the given event.
@@ -166,8 +180,10 @@
   if (events[event_to_index[event]].event == event) {
     return events[event_to_index[event]].full_descr;
   }
+
   freelog(LOG_ERROR, "unknown event %d", event);
-  return "UNKNOWN EVENT";
+  return "UNKNOWN EVENT"; /* FIXME: Should be marked for translation?
+                           * we get non-translated in log message. */
 }
 
 /**************************************************************************
@@ -176,8 +192,8 @@
 **************************************************************************/
 static int compar_event_message_texts(const void *i1, const void *i2)
 {
-  const int *j1 = i1;
-  const int *j2 = i2;
+  const enum event_type *j1 = i1;
+  const enum event_type *j2 = i2;
   
   return mystrcasecmp(get_event_message_text(*j1),
 		      get_event_message_text(*j2));
@@ -254,10 +270,14 @@
     int j;
 
     if (events[i].section_orig) {
+      /* TRANS: Most event descriptions come in two parts "Civ: Transfer"
+       *        This format is their glue. */
+      const char *event_format = Q_("?eventdescr:%s: %s");
+
       events[i].full_descr = fc_malloc(strlen(_(events[i].descr_orig))
                                        + strlen(_(events[i].section_orig))
-                                       + strlen(": ") + 1);
-      sprintf(events[i].full_descr, "%s: %s",
+                                       + strlen(event_format) + 1);
+      sprintf(events[i].full_descr, event_format,
               _(events[i].section_orig),
               _(events[i].descr_orig));
     } else {
diff -Nurd -X.diff_ignore freeciv/common/events.h freeciv/common/events.h
--- freeciv/common/events.h	2007-08-05 16:40:58.000000000 +0300
+++ freeciv/common/events.h	2007-09-04 21:33:26.000000000 +0300
@@ -17,7 +17,10 @@
 
 /* Add new event types to the end. Client saves message settings by
  * type number and installing new event type in between would cause
- * erronous loading of existing .civclientrc */
+ * erronous loading of existing .civclientrc
+ * When adding events to stable branch, there is risk that TRUNK
+ * already has allocated next slot for something else (and has
+ * new event in upper slot) */
 enum event_type {
   E_CITY_CANTBUILD,
   E_CITY_LOST,
@@ -124,13 +127,13 @@
   /* 
    * Note: If you add a new event, make sure you make a similar change
    * to the events array in common/events.c using GEN_EV and to
-   * data/stdsounds.spec.
+   * data/stdsounds.soundspec.
    */
   E_LAST
 };
 
-extern int sorted_events[];	        /* [E_LAST], sorted by the
-					   translated message text */
+extern enum event_type sorted_events[];	   /* [E_LAST], sorted by the
+					    * translated message text */
 
 const char *get_event_message_text(enum event_type event);
 const char *get_event_sound_tag(enum event_type event);
@@ -158,4 +161,3 @@
 }
 
 #endif /* FC__EVENTS_H */
-
diff -Nurd -X.diff_ignore freeciv/data/stdsounds.soundspec freeciv/data/stdsounds.soundspec
--- freeciv/data/stdsounds.soundspec	2007-08-04 18:37:57.000000000 +0300
+++ freeciv/data/stdsounds.soundspec	2007-09-04 21:49:47.000000000 +0300
@@ -191,73 +191,114 @@
 ;w_united_nations = ""
 ;w_womens_suffrage = ""
 
-;e_anarchy = ""
+
+; This list contains all events up to E_TECH_GOAL
+; (as numbered in common/events.h), in the sorted order.
+; Alphabetical sorting is based on event descriptions,
+; not to these tag names. These have been sorted using
+; Freeciv internal language (en_US)
+
+;e_ai_debug = ""
 ;e_broadcast_report = ""
-;e_cancel_pact = ""
-;e_city_aq_building = ""
-;e_city_aqueduct = ""
-;e_city_build = ""
+;e_caravan_action = ""
+;e_chat_error = ""
+;e_chat_msg = ""
 ;e_city_cantbuild = ""
-;e_city_cma_release = ""
+;e_city_lost = ""
+;e_city_love = ""
 ;e_city_disorder = ""
 ;e_city_famine = ""
 ;e_city_famine_feared = ""
-;e_city_gran_throttle = ""
 ;e_city_growth = ""
-;e_city_lost = ""
-;e_city_love = ""
 ;e_city_may_soon_grow = ""
+;e_city_aqueduct = ""
+;e_city_aq_building = ""
 ;e_city_normal = ""
 ;e_city_nuked = ""
-;e_city_wonder_will_be_built = ""
-;e_destroyed = ""
-;e_dipl_incident = ""
-;e_diplomated = ""
+;e_city_production_changed = ""
+;e_city_cma_release = ""
+;e_city_gran_throttle = ""
+;e_city_transfer = ""
+;e_city_build = ""
+;e_worklist = ""
+;e_uprising = ""
+;e_civil_war = ""
+;e_anarchy = ""
 ;e_first_contact = ""
+;e_new_government = ""
+;e_low_on_funds = ""
+;e_pollution = ""
+;e_revolt_done = ""
+;e_revolt_start = ""
+;e_spaceship = ""
+;e_connection = ""
+;e_my_diplomat_bribe = ""
+;e_diplomatic_incident = ""
+;e_my_diplomat_embassy = ""
+;e_my_diplomat_escape = ""
+;e_my_diplomat_failed = ""
+;e_my_diplomat_incite = ""
+;e_my_diplomat_poison = ""
+;e_my_diplomat_sabotage = ""
+;e_my_diplomat_theft = ""
+;e_diplomacy = ""
+;e_enemy_diplomat_bribe = ""
+;e_enemy_diplomat_embassy = ""
+;e_enemy_diplomat_failed = ""
+;e_enemy_diplomat_incite = ""
+;e_enemy_diplomat_poison = ""
+;e_enemy_diplomat_sabotage = ""
+;e_enemy_diplomat_theft = ""
+;e_bad_command = ""
 ;e_game_end = ""
 ;e_game_start = ""
 ;e_global_eco = ""
+;e_nuke = ""
 ;e_hut_barb = ""
-;e_hut_barb_city_near = ""
-;e_hut_barb_killed = ""
 ;e_hut_city = ""
 ;e_hut_gold = ""
+;e_hut_barb_killed = ""
 ;e_hut_merc = ""
 ;e_hut_settler = ""
 ;e_hut_tech = ""
+;e_hut_barb_city_near = ""
+;e_imp_buy = ""
+;e_imp_build = ""
 ;e_imp_auctioned = ""
 ;e_imp_auto = ""
-;e_imp_build = ""
-;e_imp_buy = ""
 e_imp_sold = "stdsounds/metbrk.ogg" ; [pox]
-;e_low_on_funds = ""
 ;e_message_wall = ""
-;e_my_diplomat = ""
 ;e_nation_selected = ""
-;e_new_government = ""
-;e_next_year = ""
-;e_nuke = ""
-;e_pollution = ""
+;e_destroyed = ""
+;e_player_settings = ""
 ;e_report = ""
-;e_revolt_done = ""
-;e_revolt_start = ""
-;e_spaceship = ""
+;e_setting = ""
 ;e_tech_gain = ""
 ;e_tech_learned = ""
+;e_tech_goal = ""
+;e_treaty_alliance = ""
+;e_treaty_broken = ""
+;e_treaty_ceasefire = ""
+;e_treaty_embassy = ""
+;e_treaty_peace = ""
+;e_treaty_shared_vision = ""
 ;e_turn_bell = ""
-;e_unit_build = ""
+;e_tutorial = ""
+;e_unit_lost_att = ""
+;e_unit_win_att = ""
+;e_unit_became_vet = ""
 ;e_unit_buy = ""
+;e_unit_built = ""
 ;e_unit_lost = ""
-;e_unit_lost_att = ""
-;e_unit_upgraded = ""
 ;e_unit_win = ""
-;e_unit_win_att = ""
-;e_uprising = ""
+;e_unit_orders = ""
+;e_unit_upgraded = ""
+;e_unit_relocated = ""
 ;e_wonder_build = ""
 ;e_wonder_obsolete = ""
 ;e_wonder_started = ""
 ;e_wonder_stopped = ""
-;e_worklist = ""
-;e_player_settings = ""
+;e_wonder_will_be_built = ""
+;e_next_year = ""
 
 ;music_start = ""
diff -Nurd -X.diff_ignore freeciv/server/scripting/api.pkg freeciv/server/scripting/api.pkg
--- freeciv/server/scripting/api.pkg	2007-08-13 20:51:02.000000000 +0300
+++ freeciv/server/scripting/api.pkg	2007-09-04 21:33:26.000000000 +0300
@@ -472,8 +472,8 @@
     E_CHAT_ERROR @ CHAT_ERROR,
     /* 
      * Note: If you add a new event, make sure you make a similar change
-     * to the events array in client/options.c using GEN_EV and to
-     * data/stdsounds.spec.
+     * to the events array in common/events.c using GEN_EV and to
+     * data/stdsounds.soundspec.
      */
     E_LAST @ LAST
   };
diff -Nurd -X.diff_ignore freeciv/common/events.c freeciv/common/events.c
--- freeciv/common/events.c	2007-03-05 19:14:29.000000000 +0200
+++ freeciv/common/events.c	2007-09-04 21:50:32.000000000 +0300
@@ -149,8 +149,7 @@
  */
 static int event_to_index[E_LAST];
 
-int sorted_events[E_LAST];
-
+enum event_type sorted_events[E_LAST];
 
 /**************************************************************************
   Returns the translated description of the given event.
@@ -162,8 +161,10 @@
   if (events[event_to_index[event]].event == event) {
     return events[event_to_index[event]].descr;
   }
+
   freelog(LOG_ERROR, "unknown event %d", event);
-  return "UNKNOWN EVENT";
+  return "UNKNOWN EVENT"; /* FIXME: Should be marked for translation?
+                           * we get non-translated in log message. */
 }
 
 /**************************************************************************
@@ -172,8 +173,8 @@
 **************************************************************************/
 static int compar_event_message_texts(const void *i1, const void *i2)
 {
-  const int *j1 = i1;
-  const int *j2 = i2;
+  const enum event_type *j1 = i1;
+  const enum event_type *j2 = i2;
   
   return mystrcasecmp(get_event_message_text(*j1),
 		      get_event_message_text(*j2));
diff -Nurd -X.diff_ignore freeciv/common/events.h freeciv/common/events.h
--- freeciv/common/events.h	2007-03-05 19:14:29.000000000 +0200
+++ freeciv/common/events.h	2007-09-04 21:46:19.000000000 +0300
@@ -15,6 +15,12 @@
 
 #include "shared.h"          /* bool type */
 
+/* Add new event types to the end. Client saves message settings by
+ * type number and installing new event type in between would cause
+ * erronous loading of existing .civclientrc
+ * When adding events to stable branch, there is risk that TRUNK
+ * already has allocated next slot for something else (and has
+ * new event in upper slot) */
 enum event_type {
   E_CITY_CANTBUILD,
   E_CITY_LOST,
@@ -118,13 +124,13 @@
   E_AI_DEBUG, /* AI debugging messages */
   /* 
    * Note: If you add a new event, make sure you make a similar change
-   * to the events array in client/options.c using GEN_EV and to
-   * data/stdsounds.spec.
+   * to the events array in common/events.c using GEN_EV and to
+   * data/stdsounds.soundspec.
    */
   E_LAST
 };
 
-extern int sorted_events[];	        /* [E_LAST], sorted by the
+extern enum event_type sorted_events[]; /* [E_LAST], sorted by the
 					   translated message text */
 
 const char *get_event_message_text(enum event_type event);
@@ -150,4 +156,3 @@
 }
 
 #endif /* FC__EVENTS_H */
-
diff -Nurd -X.diff_ignore freeciv/data/stdsounds.soundspec freeciv/data/stdsounds.soundspec
--- freeciv/data/stdsounds.soundspec	2007-03-05 19:14:04.000000000 +0200
+++ freeciv/data/stdsounds.soundspec	2007-09-04 21:49:50.000000000 +0300
@@ -191,72 +191,112 @@
 ;w_united_nations = ""
 ;w_womens_suffrage = ""
 
-;e_anarchy = ""
+
+; This list contains all events up to E_AI_DEBUG
+; (as numbered in common/events.h), in the sorted order.
+; Alphabetical sorting is based on event descriptions,
+; not to these tag names. These have been sorted using
+; Freeciv internal language (en_US)
+
 ;e_broadcast_report = ""
-;e_cancel_pact = ""
-;e_city_aq_building = ""
-;e_city_aqueduct = ""
-;e_city_build = ""
+;e_caravan_action = ""
+;e_chat_error = ""
+;e_chat_msg = ""
 ;e_city_cantbuild = ""
-;e_city_cma_release = ""
+;e_city_lost = ""
+;e_city_love = ""
 ;e_city_disorder = ""
 ;e_city_famine = ""
 ;e_city_famine_feared = ""
-;e_city_gran_throttle = ""
 ;e_city_growth = ""
-;e_city_lost = ""
-;e_city_love = ""
 ;e_city_may_soon_grow = ""
+;e_city_aqueduct = ""
+;e_city_aq_building = ""
 ;e_city_normal = ""
 ;e_city_nuked = ""
-;e_city_wonder_will_be_built = ""
-;e_destroyed = ""
-;e_dipl_incident = ""
-;e_diplomated = ""
+;e_city_production_changed = ""
+;e_city_cma_release = ""
+;e_city_gran_throttle = ""
+;e_city_transfer = ""
+;e_city_build = ""
+;e_worklist = ""
+;e_uprising = ""
+;e_civil_war = ""
+;e_anarchy = ""
 ;e_first_contact = ""
+;e_new_government = ""
+;e_low_on_funds = ""
+;e_pollution = ""
+;e_revolt_done = ""
+;e_revolt_start = ""
+;e_spaceship = ""
+;e_connection = ""
+;e_my_diplomat_bribe = ""
+;e_diplomatic_incident = ""
+;e_my_diplomat_embassy = ""
+;e_my_diplomat_escape = ""
+;e_my_diplomat_failed = ""
+;e_my_diplomat_incite = ""
+;e_my_diplomat_poison = ""
+;e_my_diplomat_sabotage = ""
+;e_my_diplomat_theft = ""
+;e_diplomacy = ""
+;e_enemy_diplomat_bribe = ""
+;e_enemy_diplomat_embassy = ""
+;e_enemy_diplomat_failed = ""
+;e_enemy_diplomat_incite = ""
+;e_enemy_diplomat_poison = ""
+;e_enemy_diplomat_sabotage = ""
+;e_enemy_diplomat_theft = ""
+;e_bad_command = ""
 ;e_game_end = ""
 ;e_game_start = ""
 ;e_global_eco = ""
+;e_nuke = ""
 ;e_hut_barb = ""
-;e_hut_barb_city_near = ""
-;e_hut_barb_killed = ""
 ;e_hut_city = ""
 ;e_hut_gold = ""
+;e_hut_barb_killed = ""
 ;e_hut_merc = ""
 ;e_hut_settler = ""
 ;e_hut_tech = ""
+;e_hut_barb_city_near = ""
+;e_imp_buy = ""
+;e_imp_build = ""
 ;e_imp_auctioned = ""
 ;e_imp_auto = ""
-;e_imp_build = ""
-;e_imp_buy = ""
 e_imp_sold = "stdsounds/metbrk.ogg" ; [pox]
-;e_low_on_funds = ""
 ;e_message_wall = ""
-;e_my_diplomat = ""
 ;e_nation_selected = ""
-;e_new_government = ""
-;e_next_year = ""
-;e_nuke = ""
-;e_pollution = ""
+;e_destroyed = ""
 ;e_report = ""
-;e_revolt_done = ""
-;e_revolt_start = ""
-;e_spaceship = ""
+;e_setting = ""
 ;e_tech_gain = ""
 ;e_tech_learned = ""
+;e_treaty_alliance = ""
+;e_treaty_broken = ""
+;e_treaty_ceasefire = ""
+;e_treaty_embassy = ""
+;e_treaty_peace = ""
+;e_treaty_shared_vision = ""
 ;e_turn_bell = ""
-;e_unit_build = ""
+;e_tutorial = ""
+;e_unit_lost_att = ""
+;e_unit_win_att = ""
+;e_unit_became_vet = ""
 ;e_unit_buy = ""
+;e_unit_built = ""
 ;e_unit_lost = ""
-;e_unit_lost_att = ""
-;e_unit_upgraded = ""
 ;e_unit_win = ""
-;e_unit_win_att = ""
-;e_uprising = ""
+;e_unit_orders = ""
+;e_unit_upgraded = ""
+;e_unit_relocated = ""
 ;e_wonder_build = ""
 ;e_wonder_obsolete = ""
 ;e_wonder_started = ""
 ;e_wonder_stopped = ""
-;e_worklist = ""
+;e_wonder_will_be_built = ""
+;e_next_year = ""
+
 
 ;music_start = ""
diff -Nurd -X.diff_ignore freeciv/server/scripting/api.pkg freeciv/server/scripting/api.pkg
--- freeciv/server/scripting/api.pkg	2007-07-04 14:04:16.000000000 +0300
+++ freeciv/server/scripting/api.pkg	2007-09-04 21:46:19.000000000 +0300
@@ -362,8 +362,8 @@
     E_CHAT_ERROR @ CHAT_ERROR,
     /* 
      * Note: If you add a new event, make sure you make a similar change
-     * to the events array in client/options.c using GEN_EV and to
-     * data/stdsounds.spec.
+     * to the events array in common/events.c using GEN_EV and to
+     * data/stdsounds.soundspec.
      */
     E_LAST @ LAST
   };
_______________________________________________
Freeciv-dev mailing list
Freeciv-dev@gna.org
https://mail.gna.org/listinfo/freeciv-dev

Reply via email to