Author: sveinung
Date: Fri Aug 12 20:38:06 2016
New Revision: 33582

URL: http://svn.gna.org/viewcvs/freeciv?rev=33582&view=rev
Log:
Gtk clients: act sel dlg paradrop and airlift.

Support the actions "Paradrop Unit" and "Airlift Unit" in the action
selection dialog.

See patch #7574

Modified:
    trunk/client/gui-gtk-2.0/action_dialog.c
    trunk/client/gui-gtk-3.0/action_dialog.c
    trunk/client/gui-gtk-3.x/action_dialog.c

Modified: trunk/client/gui-gtk-2.0/action_dialog.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-gtk-2.0/action_dialog.c?rev=33582&r1=33581&r2=33582&view=diff
==============================================================================
--- trunk/client/gui-gtk-2.0/action_dialog.c    (original)
+++ trunk/client/gui-gtk-2.0/action_dialog.c    Fri Aug 12 20:38:06 2016
@@ -184,6 +184,23 @@
 }
 
 /****************************************************************
+  User selected "Paradrop Unit" from the choice dialog
+*****************************************************************/
+static void paradrop_callback(GtkWidget *w, gpointer data)
+{
+  struct action_data *args = (struct action_data *)data;
+
+  if (NULL != game_unit_by_number(args->actor_unit_id)
+      && NULL != index_to_tile(args->target_tile_id)) {
+    request_do_action(ACTION_PARADROP, args->actor_unit_id,
+                      args->target_tile_id, 0, "");
+  }
+
+  gtk_widget_destroy(act_sel_dialog);
+  free(args);
+}
+
+/****************************************************************
   User selected "Attack" from the choice dialog
 *****************************************************************/
 static void attack_callback(GtkWidget *w, gpointer data)
@@ -292,6 +309,23 @@
   if (NULL != game_unit_by_number(args->actor_unit_id)
       && NULL != game_city_by_number(args->target_city_id)) {
     request_do_action(ACTION_HOME_CITY, args->actor_unit_id,
+                      args->target_city_id, 0, "");
+  }
+
+  gtk_widget_destroy(act_sel_dialog);
+  free(args);
+}
+
+/****************************************************************
+  User selected "Airlift Unit" from choice dialog.
+*****************************************************************/
+static void airlift_callback(GtkWidget *w, gpointer data)
+{
+  struct action_data *args = (struct action_data *)data;
+
+  if (NULL != game_unit_by_number(args->actor_unit_id)
+      && NULL != game_city_by_number(args->target_city_id)) {
+    request_do_action(ACTION_AIRLIFT, args->actor_unit_id,
                       args->target_city_id, 0, "");
   }
 
@@ -1220,6 +1254,7 @@
   [ACTION_DESTROY_CITY] = (GCallback)destroy_city_callback,
   [ACTION_RECYCLE_UNIT] = (GCallback)recycle_unit_callback,
   [ACTION_HOME_CITY] = (GCallback)home_city_callback,
+  [ACTION_AIRLIFT] = (GCallback)airlift_callback,
 
   /* Unit acting against a unit target. */
   [ACTION_SPY_BRIBE_UNIT] = (GCallback)diplomat_bribe_callback,
@@ -1233,6 +1268,7 @@
   /* Unit acting against a tile. */
   [ACTION_FOUND_CITY] = (GCallback)found_city_callback,
   [ACTION_NUKE] = (GCallback)nuke_callback,
+  [ACTION_PARADROP] = (GCallback)paradrop_callback,
   [ACTION_ATTACK] = (GCallback)attack_callback,
 
   /* Unit acting with no target except itself. */

Modified: trunk/client/gui-gtk-3.0/action_dialog.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-gtk-3.0/action_dialog.c?rev=33582&r1=33581&r2=33582&view=diff
==============================================================================
--- trunk/client/gui-gtk-3.0/action_dialog.c    (original)
+++ trunk/client/gui-gtk-3.0/action_dialog.c    Fri Aug 12 20:38:06 2016
@@ -194,6 +194,23 @@
 }
 
 /****************************************************************
+  User selected "Paradrop Unit" from the choice dialog
+*****************************************************************/
+static void paradrop_callback(GtkWidget *w, gpointer data)
+{
+  struct action_data *args = (struct action_data *)data;
+
+  if (NULL != game_unit_by_number(args->actor_unit_id)
+      && NULL != index_to_tile(args->target_tile_id)) {
+    request_do_action(ACTION_PARADROP, args->actor_unit_id,
+                      args->target_tile_id, 0, "");
+  }
+
+  gtk_widget_destroy(act_sel_dialog);
+  free(args);
+}
+
+/****************************************************************
   User selected "Attack" from the choice dialog
 *****************************************************************/
 static void attack_callback(GtkWidget *w, gpointer data)
@@ -302,6 +319,23 @@
   if (NULL != game_unit_by_number(args->actor_unit_id)
       && NULL != game_city_by_number(args->target_city_id)) {
     request_do_action(ACTION_HOME_CITY, args->actor_unit_id,
+                      args->target_city_id, 0, "");
+  }
+
+  gtk_widget_destroy(act_sel_dialog);
+  free(args);
+}
+
+/****************************************************************
+  User selected "Airlift Unit" from choice dialog.
+*****************************************************************/
+static void airlift_callback(GtkWidget *w, gpointer data)
+{
+  struct action_data *args = (struct action_data *)data;
+
+  if (NULL != game_unit_by_number(args->actor_unit_id)
+      && NULL != game_city_by_number(args->target_city_id)) {
+    request_do_action(ACTION_AIRLIFT, args->actor_unit_id,
                       args->target_city_id, 0, "");
   }
 
@@ -1312,6 +1346,7 @@
   [ACTION_DESTROY_CITY] = (GCallback)destroy_city_callback,
   [ACTION_RECYCLE_UNIT] = (GCallback)recycle_unit_callback,
   [ACTION_HOME_CITY] = (GCallback)home_city_callback,
+  [ACTION_AIRLIFT] = (GCallback)airlift_callback,
 
   /* Unit acting against a unit target. */
   [ACTION_SPY_BRIBE_UNIT] = (GCallback)diplomat_bribe_callback,
@@ -1325,6 +1360,7 @@
   /* Unit acting against a tile. */
   [ACTION_FOUND_CITY] = (GCallback)found_city_callback,
   [ACTION_NUKE] = (GCallback)nuke_callback,
+  [ACTION_PARADROP] = (GCallback)paradrop_callback,
   [ACTION_ATTACK] = (GCallback)attack_callback,
 
   /* Unit acting with no target except itself. */

Modified: trunk/client/gui-gtk-3.x/action_dialog.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-gtk-3.x/action_dialog.c?rev=33582&r1=33581&r2=33582&view=diff
==============================================================================
--- trunk/client/gui-gtk-3.x/action_dialog.c    (original)
+++ trunk/client/gui-gtk-3.x/action_dialog.c    Fri Aug 12 20:38:06 2016
@@ -194,6 +194,23 @@
 }
 
 /****************************************************************
+  User selected "Paradrop Unit" from the choice dialog
+*****************************************************************/
+static void paradrop_callback(GtkWidget *w, gpointer data)
+{
+  struct action_data *args = (struct action_data *)data;
+
+  if (NULL != game_unit_by_number(args->actor_unit_id)
+      && NULL != index_to_tile(args->target_tile_id)) {
+    request_do_action(ACTION_PARADROP, args->actor_unit_id,
+                      args->target_tile_id, 0, "");
+  }
+
+  gtk_widget_destroy(act_sel_dialog);
+  free(args);
+}
+
+/****************************************************************
   User selected "Attack" from the choice dialog
 *****************************************************************/
 static void attack_callback(GtkWidget *w, gpointer data)
@@ -302,6 +319,23 @@
   if (NULL != game_unit_by_number(args->actor_unit_id)
       && NULL != game_city_by_number(args->target_city_id)) {
     request_do_action(ACTION_HOME_CITY, args->actor_unit_id,
+                      args->target_city_id, 0, "");
+  }
+
+  gtk_widget_destroy(act_sel_dialog);
+  free(args);
+}
+
+/****************************************************************
+  User selected "Airlift Unit" from choice dialog.
+*****************************************************************/
+static void airlift_callback(GtkWidget *w, gpointer data)
+{
+  struct action_data *args = (struct action_data *)data;
+
+  if (NULL != game_unit_by_number(args->actor_unit_id)
+      && NULL != game_city_by_number(args->target_city_id)) {
+    request_do_action(ACTION_AIRLIFT, args->actor_unit_id,
                       args->target_city_id, 0, "");
   }
 
@@ -1306,6 +1340,7 @@
   [ACTION_DESTROY_CITY] = (GCallback)destroy_city_callback,
   [ACTION_RECYCLE_UNIT] = (GCallback)recycle_unit_callback,
   [ACTION_HOME_CITY] = (GCallback)home_city_callback,
+  [ACTION_AIRLIFT] = (GCallback)airlift_callback,
 
   /* Unit acting against a unit target. */
   [ACTION_SPY_BRIBE_UNIT] = (GCallback)diplomat_bribe_callback,
@@ -1319,6 +1354,7 @@
   /* Unit acting against a tile. */
   [ACTION_FOUND_CITY] = (GCallback)found_city_callback,
   [ACTION_NUKE] = (GCallback)nuke_callback,
+  [ACTION_PARADROP] = (GCallback)paradrop_callback,
   [ACTION_ATTACK] = (GCallback)attack_callback,
 
   /* Unit acting with no target except itself. */


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

Reply via email to