From 2372dc3e56cc10ea251e70d80d9900846e60f8f2 Mon Sep 17 00:00:00 2001
From: Marko Lindqvist <cazfi74@gmail.com>
Date: Sat, 31 Oct 2026 03:10:33 +0200
Subject: [PATCH 81/81] Qt: Add simple_city_request() action selection callback

Use it instead of action specific callbacks identical to each other.

See RM #2429

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
---
 client/gui-qt/dialogs.cpp | 460 +++-----------------------------------
 1 file changed, 29 insertions(+), 431 deletions(-)

diff --git a/client/gui-qt/dialogs.cpp b/client/gui-qt/dialogs.cpp
index 3dfee60fce..218615ec48 100644
--- a/client/gui-qt/dialogs.cpp
+++ b/client/gui-qt/dialogs.cpp
@@ -95,36 +95,16 @@ static void spy_steal_esc(QVariant data1, QVariant data2, action_id act);
 static void spy_steal_something(QVariant data1, QVariant data2, action_id act);
 static void diplomat_steal(QVariant data1, QVariant data2, action_id act);
 static void diplomat_steal_esc(QVariant data1, QVariant data2, action_id act);
-static void spy_poison(QVariant data1, QVariant data2, action_id act);
-static void spy_poison_esc(QVariant data1, QVariant data2, action_id act);
-static void spy_spread_plague(QVariant data1, QVariant data2, action_id act);
-static void spy_steal_gold(QVariant data1, QVariant data2, action_id act);
-static void spy_steal_gold_esc(QVariant data1, QVariant data2, action_id act);
-static void spy_steal_maps(QVariant data1, QVariant data2, action_id act);
-static void spy_steal_maps_esc(QVariant data1, QVariant data2, action_id act);
-static void spy_escape(QVariant data1, QVariant data2, action_id act);
-static void spy_nuke_city(QVariant data1, QVariant data2, action_id act);
-static void spy_nuke_city_esc(QVariant data1, QVariant data2, action_id act);
-static void nuke_city(QVariant data1, QVariant data2, action_id act);
-static void destroy_city(QVariant data1, QVariant data2, action_id act);
-static void diplomat_embassy(QVariant data1, QVariant data2, action_id act);
-static void spy_embassy(QVariant data1, QVariant data2, action_id act);
 static void spy_sabotage_unit(QVariant data1, QVariant data2, action_id act);
 static void spy_sabotage_unit_esc(QVariant data1, QVariant data2,
                                   action_id act);
-static void spy_investigate(QVariant data1, QVariant data2, action_id act);
-static void diplomat_investigate(QVariant data1, QVariant data2, action_id act);
 static void diplomat_sabotage(QVariant data1, QVariant data2, action_id act);
 static void diplomat_sabotage_esc(QVariant data1, QVariant data2,
                                   action_id act);
 static void diplomat_bribe_unit(QVariant data1, QVariant data2, action_id act);
 static void diplomat_bribe_stack(QVariant data1, QVariant data2, action_id act);
 static void spy_attack(QVariant data1, QVariant data2, action_id act);
-static void caravan_marketplace(QVariant data1, QVariant data2, action_id act);
-static void caravan_establish_trade(QVariant data1, QVariant data2,
-                                    action_id act);
-static void caravan_help_build(QVariant data1, QVariant data2, action_id act);
-static void unit_disband_recover(QVariant data1, QVariant data2, action_id act);
+static void simple_city_request(QVariant data1, QVariant data2, action_id act);
 static void capture_units(QVariant data1, QVariant data2, action_id act);
 static void nuke_units(QVariant data1, QVariant data2, action_id act);
 static void collect_ransom(QVariant data1, QVariant data2, action_id act);
@@ -155,13 +135,7 @@ static void fortify(QVariant data1, QVariant data2, action_id act);
 static void fortify2(QVariant data1, QVariant data2, action_id act);
 static void disband_unit(QVariant data1, QVariant data2, action_id act);
 static void homeless(QVariant data1, QVariant data2, action_id act);
-static void unit_home_city(QVariant data1, QVariant data2, action_id act);
 static void unit_upgrade(QVariant data1, QVariant data2, action_id act);
-static void airlift(QVariant data1, QVariant data2, action_id act);
-static void conquer_city_shrink(QVariant data1, QVariant data2, action_id act);
-static void conquer_city_shrink2(QVariant data1, QVariant data2, action_id act);
-static void conquer_city_shrink3(QVariant data1, QVariant data2, action_id act);
-static void conquer_city_shrink4(QVariant data1, QVariant data2, action_id act);
 static void conquer_extras(QVariant data1, QVariant data2, action_id act);
 static void conquer_extras2(QVariant data1, QVariant data2, action_id act);
 static void conquer_extras3(QVariant data1, QVariant data2, action_id act);
@@ -214,15 +188,15 @@ static const QHash<action_id, pfcn_void> af_map_init(void)
   QHash<action_id, pfcn_void> action_function;
 
   // Unit acting against a city target.
-  action_function[ACTION_ESTABLISH_EMBASSY] = spy_embassy;
-  action_function[ACTION_ESTABLISH_EMBASSY_STAY] = diplomat_embassy;
-  action_function[ACTION_SPY_INVESTIGATE_CITY] = spy_investigate;
-  action_function[ACTION_INV_CITY_SPEND] = diplomat_investigate;
-  action_function[ACTION_SPY_POISON] = spy_poison;
-  action_function[ACTION_SPY_POISON_ESC] = spy_poison_esc;
-  action_function[ACTION_SPY_SPREAD_PLAGUE] = spy_spread_plague;
-  action_function[ACTION_SPY_STEAL_GOLD] = spy_steal_gold;
-  action_function[ACTION_SPY_STEAL_GOLD_ESC] = spy_steal_gold_esc;
+  action_function[ACTION_ESTABLISH_EMBASSY] = simple_city_request;
+  action_function[ACTION_ESTABLISH_EMBASSY_STAY] = simple_city_request;
+  action_function[ACTION_SPY_INVESTIGATE_CITY] = simple_city_request;
+  action_function[ACTION_INV_CITY_SPEND] = simple_city_request;
+  action_function[ACTION_SPY_POISON] = simple_city_request;
+  action_function[ACTION_SPY_POISON_ESC] = simple_city_request;
+  action_function[ACTION_SPY_SPREAD_PLAGUE] = simple_city_request;
+  action_function[ACTION_SPY_STEAL_GOLD] = simple_city_request;
+  action_function[ACTION_SPY_STEAL_GOLD_ESC] = simple_city_request;
   action_function[ACTION_SPY_SABOTAGE_CITY] = diplomat_sabotage;
   action_function[ACTION_SPY_SABOTAGE_CITY_ESC] = diplomat_sabotage_esc;
   action_function[ACTION_SPY_TARGETED_SABOTAGE_CITY] =
@@ -235,26 +209,26 @@ static const QHash<action_id, pfcn_void> af_map_init(void)
   action_function[ACTION_SPY_TARGETED_STEAL_TECH_ESC] = spy_steal_esc;
   action_function[ACTION_SPY_INCITE_CITY] = diplomat_incite;
   action_function[ACTION_SPY_INCITE_CITY_ESC] = diplomat_incite_escape;
-  action_function[ACTION_TRADE_ROUTE] = caravan_establish_trade;
-  action_function[ACTION_MARKETPLACE] = caravan_marketplace;
-  action_function[ACTION_HELP_WONDER] = caravan_help_build;
+  action_function[ACTION_TRADE_ROUTE] = simple_city_request;
+  action_function[ACTION_MARKETPLACE] = simple_city_request;
+  action_function[ACTION_HELP_WONDER] = simple_city_request;
   action_function[ACTION_JOIN_CITY] = simple_tile_request;
-  action_function[ACTION_STEAL_MAPS] = spy_steal_maps;
-  action_function[ACTION_STEAL_MAPS_ESC] = spy_steal_maps_esc;
-  action_function[ACTION_SPY_NUKE] = spy_nuke_city;
-  action_function[ACTION_SPY_NUKE_ESC] = spy_nuke_city_esc;
-  action_function[ACTION_SPY_ESCAPE] = spy_escape;
-  action_function[ACTION_DESTROY_CITY] = destroy_city;
-  action_function[ACTION_DISBAND_UNIT_RECOVER] = unit_disband_recover;
-  action_function[ACTION_HOME_CITY] = unit_home_city;
+  action_function[ACTION_STEAL_MAPS] = simple_city_request;
+  action_function[ACTION_STEAL_MAPS_ESC] = simple_city_request;
+  action_function[ACTION_SPY_NUKE] = simple_city_request;
+  action_function[ACTION_SPY_NUKE_ESC] = simple_city_request;
+  action_function[ACTION_SPY_ESCAPE] = simple_city_request;
+  action_function[ACTION_DESTROY_CITY] = simple_city_request;
+  action_function[ACTION_DISBAND_UNIT_RECOVER] = simple_city_request;
+  action_function[ACTION_HOME_CITY] = simple_city_request;
   action_function[ACTION_UPGRADE_UNIT] = unit_upgrade;
-  action_function[ACTION_AIRLIFT] = airlift;
-  action_function[ACTION_CONQUER_CITY_SHRINK] = conquer_city_shrink;
-  action_function[ACTION_CONQUER_CITY_SHRINK2] = conquer_city_shrink2;
-  action_function[ACTION_CONQUER_CITY_SHRINK3] = conquer_city_shrink3;
-  action_function[ACTION_CONQUER_CITY_SHRINK4] = conquer_city_shrink4;
+  action_function[ACTION_AIRLIFT] = simple_city_request;
+  action_function[ACTION_CONQUER_CITY_SHRINK] = simple_city_request;
+  action_function[ACTION_CONQUER_CITY_SHRINK2] = simple_city_request;
+  action_function[ACTION_CONQUER_CITY_SHRINK3] = simple_city_request;
+  action_function[ACTION_CONQUER_CITY_SHRINK4] = simple_city_request;
   action_function[ACTION_STRIKE_BUILDING] = spy_request_strike_bld_list;
-  action_function[ACTION_NUKE_CITY] = nuke_city;
+  action_function[ACTION_NUKE_CITY] = simple_city_request;
 
   // Unit acting against a unit target.
   action_function[ACTION_SPY_BRIBE_UNIT] = diplomat_bribe_unit;
@@ -1793,75 +1767,14 @@ void choice_dialog::unstack_all_buttons()
 /***********************************************************************//**
   Action enter market place for choice dialog
 ***************************************************************************/
-static void caravan_marketplace(QVariant data1, QVariant data2, action_id act)
+static void simple_city_request(QVariant data1, QVariant data2, action_id act)
 {
   int actor_unit_id = data1.toInt();
   int target_city_id = data2.toInt();
 
   if (game_unit_by_number(actor_unit_id) != nullptr
       && game_city_by_number(target_city_id) != nullptr) {
-    request_do_action(ACTION_MARKETPLACE, actor_unit_id,
-                      target_city_id, 0, "");
-  }
-}
-
-/***********************************************************************//**
-  Action establish trade for choice dialog
-***************************************************************************/
-static void caravan_establish_trade(QVariant data1, QVariant data2, action_id act)
-{
-  int actor_unit_id = data1.toInt();
-  int target_city_id = data2.toInt();
-
-  if (game_unit_by_number(actor_unit_id) != nullptr
-      && game_city_by_number(target_city_id) != nullptr) {
-    request_do_action(ACTION_TRADE_ROUTE, actor_unit_id,
-                      target_city_id, 0, "");
-  }
-}
-
-/***********************************************************************//**
-  Action help build wonder for choice dialog
-***************************************************************************/
-static void caravan_help_build(QVariant data1, QVariant data2, action_id act)
-{
-  int caravan_id = data1.toInt();
-  int caravan_target_id = data2.toInt();
-
-  if (game_unit_by_number(caravan_id) != nullptr
-      && game_city_by_number(caravan_target_id) != nullptr) {
-    request_do_action(ACTION_HELP_WONDER,
-                      caravan_id, caravan_target_id, 0, "");
-  }
-}
-
-/***********************************************************************//**
-  Action Disband Unit Recover for choice dialog
-***************************************************************************/
-static void unit_disband_recover(QVariant data1, QVariant data2, action_id act)
-{
-  int actor_id = data1.toInt();
-  int tgt_city_id = data2.toInt();
-
-  if (game_unit_by_number(actor_id) != nullptr
-      && game_city_by_number(tgt_city_id) != nullptr) {
-    request_do_action(ACTION_DISBAND_UNIT_RECOVER,
-                      actor_id, tgt_city_id, 0, "");
-  }
-}
-
-/***********************************************************************//**
-  Action Home City for choice dialog
-***************************************************************************/
-static void unit_home_city(QVariant data1, QVariant data2, action_id act)
-{
-  int actor_id = data1.toInt();
-  int tgt_city_id = data2.toInt();
-
-  if (game_unit_by_number(actor_id) != nullptr
-      && game_city_by_number(tgt_city_id) != nullptr) {
-    request_do_action(ACTION_HOME_CITY,
-                      actor_id, tgt_city_id, 0, "");
+    request_do_action(act, actor_unit_id, target_city_id, 0, "");
   }
 }
 
@@ -1886,81 +1799,6 @@ static void unit_upgrade(QVariant data1, QVariant data2, action_id act)
   }
 }
 
-/***********************************************************************//**
-  Action "Airlift Unit" for choice dialog
-***************************************************************************/
-static void airlift(QVariant data1, QVariant data2, action_id act)
-{
-  int actor_id = data1.toInt();
-  int tgt_city_id = data2.toInt();
-
-  if (game_unit_by_number(actor_id) != nullptr
-      && game_city_by_number(tgt_city_id) != nullptr) {
-    request_do_action(ACTION_AIRLIFT,
-                      actor_id, tgt_city_id, 0, "");
-  }
-}
-
-/***********************************************************************//**
-  Action "Conquer City Shrink" for choice dialog
-***************************************************************************/
-static void conquer_city_shrink(QVariant data1, QVariant data2, action_id act)
-{
-  int actor_id = data1.toInt();
-  int tgt_city_id = data2.toInt();
-
-  if (game_unit_by_number(actor_id) != nullptr
-      && game_city_by_number(tgt_city_id) != nullptr) {
-    request_do_action(ACTION_CONQUER_CITY_SHRINK,
-                      actor_id, tgt_city_id, 0, "");
-  }
-}
-
-/***********************************************************************//**
-  Action "Conquer City Shrink 2" for choice dialog
-***************************************************************************/
-static void conquer_city_shrink2(QVariant data1, QVariant data2, action_id act)
-{
-  int actor_id = data1.toInt();
-  int tgt_city_id = data2.toInt();
-
-  if (game_unit_by_number(actor_id) != nullptr
-      && game_city_by_number(tgt_city_id) != nullptr) {
-    request_do_action(ACTION_CONQUER_CITY_SHRINK2,
-                      actor_id, tgt_city_id, 0, "");
-  }
-}
-
-/***********************************************************************//**
-  Action "Conquer City Shrink 3" for choice dialog
-***************************************************************************/
-static void conquer_city_shrink3(QVariant data1, QVariant data2, action_id act)
-{
-  int actor_id = data1.toInt();
-  int tgt_city_id = data2.toInt();
-
-  if (game_unit_by_number(actor_id) != nullptr
-      && game_city_by_number(tgt_city_id) != nullptr) {
-    request_do_action(ACTION_CONQUER_CITY_SHRINK3,
-                      actor_id, tgt_city_id, 0, "");
-  }
-}
-
-/***********************************************************************//**
-  Action "Conquer City Shrink 4" for choice dialog
-***************************************************************************/
-static void conquer_city_shrink4(QVariant data1, QVariant data2, action_id act)
-{
-  int actor_id = data1.toInt();
-  int tgt_city_id = data2.toInt();
-
-  if (game_unit_by_number(actor_id) != nullptr
-      && game_city_by_number(tgt_city_id) != nullptr) {
-    request_do_action(ACTION_CONQUER_CITY_SHRINK4,
-                      actor_id, tgt_city_id, 0, "");
-  }
-}
-
 /***********************************************************************//**
   Action "Conquer Extras" for choice dialog
 ***************************************************************************/
@@ -3355,246 +3193,6 @@ static void spy_request_sabotage_esc_list(QVariant data1, QVariant data2,
   }
 }
 
-/***********************************************************************//**
-  Action Poison City for choice dialog
-***************************************************************************/
-static void spy_poison(QVariant data1, QVariant data2, action_id act)
-{
-  int diplomat_id = data1.toInt();
-  int diplomat_target_id = data2.toInt();
-
-  if (game_unit_by_number(diplomat_id) != nullptr
-      && game_city_by_number(diplomat_target_id) != nullptr) {
-    request_do_action(ACTION_SPY_POISON,
-                      diplomat_id, diplomat_target_id, 0, "");
-  }
-}
-
-/***********************************************************************//**
-  Action Poison City Escape for choice dialog
-***************************************************************************/
-static void spy_poison_esc(QVariant data1, QVariant data2, action_id act)
-{
-  int diplomat_id = data1.toInt();
-  int diplomat_target_id = data2.toInt();
-
-  if (game_unit_by_number(diplomat_id) != nullptr
-      && game_city_by_number(diplomat_target_id) != nullptr) {
-    request_do_action(ACTION_SPY_POISON_ESC,
-                      diplomat_id, diplomat_target_id, 0, "");
-  }
-}
-
-/***********************************************************************//**
-  Action Spread Plague for choice dialog
-***************************************************************************/
-static void spy_spread_plague(QVariant data1, QVariant data2, action_id act)
-{
-  int diplomat_id = data1.toInt();
-  int diplomat_target_id = data2.toInt();
-
-  if (game_unit_by_number(diplomat_id) != nullptr
-      && game_city_by_number(diplomat_target_id) != nullptr) {
-    request_do_action(ACTION_SPY_SPREAD_PLAGUE,
-                      diplomat_id, diplomat_target_id, 0, "");
-  }
-}
-
-/***********************************************************************//**
-  Action suitcase nuke for choice dialog
-***************************************************************************/
-static void spy_nuke_city(QVariant data1, QVariant data2, action_id act)
-{
-  int diplomat_id = data1.toInt();
-  int diplomat_target_id = data2.toInt();
-
-  if (game_unit_by_number(diplomat_id) != nullptr
-      && game_city_by_number(diplomat_target_id) != nullptr) {
-    request_do_action(ACTION_SPY_NUKE,
-                      diplomat_id, diplomat_target_id, 0, "");
-  }
-}
-
-/***********************************************************************//**
-  Action suitcase nuke escape for choice dialog
-***************************************************************************/
-static void spy_nuke_city_esc(QVariant data1, QVariant data2, action_id act)
-{
-  int diplomat_id = data1.toInt();
-  int diplomat_target_id = data2.toInt();
-
-  if (game_unit_by_number(diplomat_id) != nullptr
-      && game_city_by_number(diplomat_target_id) != nullptr) {
-    request_do_action(ACTION_SPY_NUKE_ESC,
-                      diplomat_id, diplomat_target_id, 0, "");
-  }
-}
-
-/***********************************************************************//**
-  Action "Nuke City" for choice dialog
-***************************************************************************/
-static void nuke_city(QVariant data1, QVariant data2, action_id act)
-{
-  int actor_id = data1.toInt();
-  int target_id = data2.toInt();
-
-  if (game_unit_by_number(actor_id) != nullptr
-      && game_city_by_number(target_id) != nullptr) {
-    request_do_action(ACTION_NUKE_CITY,
-                      actor_id, target_id, 0, "");
-  }
-}
-
-/***********************************************************************//**
-  Action destroy city for choice dialog
-***************************************************************************/
-static void destroy_city(QVariant data1, QVariant data2, action_id act)
-{
-  int diplomat_id = data1.toInt();
-  int diplomat_target_id = data2.toInt();
-
-  if (game_unit_by_number(diplomat_id) != nullptr
-      && game_city_by_number(diplomat_target_id) != nullptr) {
-    request_do_action(ACTION_DESTROY_CITY,
-                      diplomat_id, diplomat_target_id, 0, "");
-  }
-}
-
-/***********************************************************************//**
-  Action steal gold for choice dialog
-***************************************************************************/
-static void spy_steal_gold(QVariant data1, QVariant data2, action_id act)
-{
-  int diplomat_id = data1.toInt();
-  int diplomat_target_id = data2.toInt();
-
-  if (game_unit_by_number(diplomat_id) != nullptr
-      && game_city_by_number(diplomat_target_id) != nullptr) {
-    request_do_action(ACTION_SPY_STEAL_GOLD,
-                      diplomat_id, diplomat_target_id, 0, "");
-  }
-}
-
-/***********************************************************************//**
-  Action steal gold escape for choice dialog
-***************************************************************************/
-static void spy_steal_gold_esc(QVariant data1, QVariant data2, action_id act)
-{
-  int diplomat_id = data1.toInt();
-  int diplomat_target_id = data2.toInt();
-
-  if (game_unit_by_number(diplomat_id) != nullptr
-      && game_city_by_number(diplomat_target_id) != nullptr) {
-    request_do_action(ACTION_SPY_STEAL_GOLD_ESC,
-                      diplomat_id, diplomat_target_id, 0, "");
-  }
-}
-
-/***********************************************************************//**
-  Action steal maps for choice dialog
-***************************************************************************/
-static void spy_steal_maps(QVariant data1, QVariant data2, action_id act)
-{
-  int diplomat_id = data1.toInt();
-  int diplomat_target_id = data2.toInt();
-
-  if (game_unit_by_number(diplomat_id) != nullptr
-      && game_city_by_number(diplomat_target_id) != nullptr) {
-    request_do_action(ACTION_STEAL_MAPS,
-                      diplomat_id, diplomat_target_id, 0, "");
-  }
-}
-
-/***********************************************************************//**
-  Action steal maps escape for choice dialog
-***************************************************************************/
-static void spy_steal_maps_esc(QVariant data1, QVariant data2, action_id act)
-{
-  int diplomat_id = data1.toInt();
-  int diplomat_target_id = data2.toInt();
-
-  if (game_unit_by_number(diplomat_id) != nullptr
-      && game_city_by_number(diplomat_target_id) != nullptr) {
-    request_do_action(ACTION_STEAL_MAPS_ESC,
-                      diplomat_id, diplomat_target_id, 0, "");
-  }
-}
-
-/***********************************************************************//**
-  Action Spy Escape for choice dialog
-***************************************************************************/
-static void spy_escape(QVariant data1, QVariant data2, action_id act)
-{
-  int diplomat_id = data1.toInt();
-  int diplomat_target_id = data2.toInt();
-
-  if (game_unit_by_number(diplomat_id) != nullptr
-      && game_city_by_number(diplomat_target_id) != nullptr) {
-    request_do_action(ACTION_SPY_ESCAPE,
-                      diplomat_id, diplomat_target_id, 0, "");
-  }
-}
-
-/***********************************************************************//**
-  Action establish embassy for choice dialog
-***************************************************************************/
-static void spy_embassy(QVariant data1, QVariant data2, action_id act)
-{
-  int diplomat_id = data1.toInt();
-  int diplomat_target_id = data2.toInt();
-
-  if (game_unit_by_number(diplomat_id) != nullptr
-      && game_city_by_number(diplomat_target_id) != nullptr) {
-    request_do_action(ACTION_ESTABLISH_EMBASSY, diplomat_id,
-                      diplomat_target_id, 0, "");
-  }
-}
-
-/***********************************************************************//**
-  Action establish embassy for choice dialog
-***************************************************************************/
-static void diplomat_embassy(QVariant data1, QVariant data2, action_id act)
-{
-  int diplomat_id = data1.toInt();
-  int diplomat_target_id = data2.toInt();
-
-  if (game_unit_by_number(diplomat_id) != nullptr
-      && game_city_by_number(diplomat_target_id) != nullptr) {
-    request_do_action(ACTION_ESTABLISH_EMBASSY_STAY, diplomat_id,
-                      diplomat_target_id, 0, "");
-  }
-}
-
-/***********************************************************************//**
-  Action investigate city for choice dialog
-***************************************************************************/
-static void spy_investigate(QVariant data1, QVariant data2, action_id act)
-{
-  int diplomat_id = data1.toInt();
-  int diplomat_target_id = data2.toInt();
-
-  if (game_city_by_number(diplomat_target_id) != nullptr
-      && game_unit_by_number(diplomat_id) != nullptr) {
-    request_do_action(ACTION_SPY_INVESTIGATE_CITY, diplomat_id,
-                      diplomat_target_id, 0, "");
-  }
-}
-
-/***********************************************************************//**
-  Action Investigate City Spend Unit for choice dialog
-***************************************************************************/
-static void diplomat_investigate(QVariant data1, QVariant data2, action_id act)
-{
-  int diplomat_id = data1.toInt();
-  int diplomat_target_id = data2.toInt();
-
-  if (game_city_by_number(diplomat_target_id) != nullptr
-      && game_unit_by_number(diplomat_id) != nullptr) {
-    request_do_action(ACTION_INV_CITY_SPEND, diplomat_id,
-                      diplomat_target_id, 0, "");
-  }
-}
-
 /***********************************************************************//**
   Action sabotage for choice dialog
 ***************************************************************************/
-- 
2.53.0

