From 2ccb7454b190cd1eddaa9721df1cb81086ccbfb0 Mon Sep 17 00:00:00 2001
From: Marko Lindqvist <cazfi74@gmail.com>
Date: Mon, 25 Mar 2024 06:11:42 +0200
Subject: [PATCH 41/41] Unhardcode wld.map from caravan_find_best_destination()

See RM #361

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
---
 ai/default/daiunit.c    | 5 +++--
 common/aicore/caravan.c | 5 ++---
 common/aicore/caravan.h | 3 ++-
 3 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/ai/default/daiunit.c b/ai/default/daiunit.c
index 25f3868487..c01d014f04 100644
--- a/ai/default/daiunit.c
+++ b/ai/default/daiunit.c
@@ -2381,9 +2381,10 @@ static void dai_manage_caravan(struct ai_type *ait, struct player *pplayer,
       parameter.allow_foreign_trade = FTL_NATIONAL_ONLY;
       parameter.ignore_transit_time = FALSE;
     }
-    caravan_find_best_destination(punit, &parameter, &result, !has_handicap(pplayer, H_MAP));
+    caravan_find_best_destination(nmap, punit, &parameter, &result,
+                                  !has_handicap(pplayer, H_MAP));
     if (result.dest != NULL) {
-      /* we did find a new destination for the unit */
+      /* We did find a new destination for the unit */
       dest = result.dest;
       help_wonder = result.help_wonder;
       required_boat = uclass_need_trans_between(pclass, unit_tile(punit), dest->tile);
diff --git a/common/aicore/caravan.c b/common/aicore/caravan.c
index 76609455bb..1b126d8ec7 100644
--- a/common/aicore/caravan.c
+++ b/common/aicore/caravan.c
@@ -745,12 +745,11 @@ static void caravan_find_best_destination_withtransit(
   Store it in *destout (if destout is non-null); return the value of the
   trade route.
 ****************************************************************************/
-void caravan_find_best_destination(const struct unit *caravan,
+void caravan_find_best_destination(const struct civ_map *nmap,
+                                   const struct unit *caravan,
                                    const struct caravan_parameter *parameter,
                                    struct caravan_result *result, bool omniscient)
 {
-  const struct civ_map *nmap = &(wld.map);
-
   if (parameter->ignore_transit_time) {
     caravan_find_best_destination_notransit(caravan, parameter, result);
   } else {
diff --git a/common/aicore/caravan.h b/common/aicore/caravan.h
index 7557869cc8..548a6f80dc 100644
--- a/common/aicore/caravan.h
+++ b/common/aicore/caravan.h
@@ -147,7 +147,8 @@ void caravan_evaluate(const struct unit *caravan, const struct city *dest,
                       const struct caravan_parameter *parameter,
                       struct caravan_result *result, bool omniscient);
 
-void caravan_find_best_destination(const struct unit *caravan,
+void caravan_find_best_destination(const struct civ_map *nmap,
+                                   const struct unit *caravan,
                                    const struct caravan_parameter *parameter,
                                    struct caravan_result *result, bool omniscient);
 
-- 
2.43.0

