From 8c1e4ae5b2f881ad4b60867eb106274230355047 Mon Sep 17 00:00:00 2001
From: Marko Lindqvist <cazfi74@gmail.com>
Date: Fri, 3 Jul 2026 23:43:19 +0300
Subject: [PATCH 36/36] Move city.server.aarea to city.aarea

See RM #2067

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
---
 common/city.c         |  2 ++
 common/city.h         |  4 ++--
 common/requirements.c | 16 ++++++++--------
 server/aahand.c       | 10 +++++-----
 4 files changed, 17 insertions(+), 15 deletions(-)

diff --git a/common/city.c b/common/city.c
index 04e26af40e..f730370792 100644
--- a/common/city.c
+++ b/common/city.c
@@ -3600,6 +3600,8 @@ struct city *create_city_virtual(struct player *pplayer,
   pcity->routes = trade_route_list_new();
   pcity->task_reqs = worker_task_list_new();
 
+  pcity->aarea = nullptr;
+
   if (is_server()) {
     pcity->server.mgr_score_calc_turn = -1; /* -1 = never */
 
diff --git a/common/city.h b/common/city.h
index 836c0683ef..22a3ea7298 100644
--- a/common/city.h
+++ b/common/city.h
@@ -422,6 +422,8 @@ struct city {
 
   struct cm_parameter *cm_parameter;
 
+  struct access_area *aarea;
+
   union {
     struct {
       /* Only used in the server (./ai/ and ./server/). */
@@ -451,8 +453,6 @@ struct city {
       void *ais[FREECIV_AI_MOD_LAST];
 
       struct vision *vision;
-
-      struct access_area *aarea;
     } server;
 
     struct {
diff --git a/common/requirements.c b/common/requirements.c
index be22b256fc..d8a29fceab 100644
--- a/common/requirements.c
+++ b/common/requirements.c
@@ -3391,11 +3391,11 @@ is_tiledef_conn_req_active(const struct civ_map *nmap,
 
   if (req->range == REQ_RANGE_CITY) {
     if (context->city == nullptr
-        || context->city->server.aarea == nullptr) {
+        || context->city->aarea == nullptr) {
       return TRI_MAYBE;
     }
 
-    if (BV_ISSET(context->city->server.aarea->tiledefs,
+    if (BV_ISSET(context->city->aarea->tiledefs,
                  tiledef_index(req->source.value.tiledef))) {
       return TRI_YES;
     }
@@ -6175,14 +6175,14 @@ is_citystatus_req_active(const struct civ_map *nmap,
 
     switch (req->range) {
     case REQ_RANGE_CITY:
-      return BOOL_TO_TRISTATE(context->city->server.aarea != nullptr
-                              && context->city->server.aarea->capital);
+      return BOOL_TO_TRISTATE(context->city->aarea != nullptr
+                              && context->city->aarea->capital);
     case REQ_RANGE_TRADE_ROUTE:
       {
         enum fc_tristate ret;
 
-        if (context->city->server.aarea != nullptr
-            && context->city->server.aarea->capital) {
+        if (context->city->aarea != nullptr
+            && context->city->aarea->capital) {
           return TRI_YES;
         }
 
@@ -6190,8 +6190,8 @@ is_citystatus_req_active(const struct civ_map *nmap,
         trade_partners_iterate(context->city, trade_partner) {
           if (trade_partner == nullptr) {
             ret = TRI_MAYBE;
-          } else if (trade_partner->server.aarea != nullptr
-                     && trade_partner->server.aarea->capital) {
+          } else if (trade_partner->aarea != nullptr
+                     && trade_partner->aarea->capital) {
             return TRI_YES;
           }
         } trade_partners_iterate_end;
diff --git a/server/aahand.c b/server/aahand.c
index 062ee15a16..ad3817cb2e 100644
--- a/server/aahand.c
+++ b/server/aahand.c
@@ -46,7 +46,7 @@ void access_areas_refresh(struct civ_map *nmap, struct player *plr)
     area_list_for_player_set(plr, alist);
 
     city_list_iterate(plr->cities, pcity) {
-      pcity->server.aarea = nullptr;
+      pcity->aarea = nullptr;
     } city_list_iterate_end;
 
     access_unit = unit_virtual_create(plr, nullptr,
@@ -55,7 +55,7 @@ void access_areas_refresh(struct civ_map *nmap, struct player *plr)
     packet.player = player_number(plr);
 
     city_list_iterate(plr->cities, pcity) {
-      if (pcity->server.aarea == nullptr) {
+      if (pcity->aarea == nullptr) {
         struct access_area *aarea = fc_malloc(sizeof(struct access_area));
         struct pf_parameter parameter;
         struct pf_map *pfm;
@@ -64,7 +64,7 @@ void access_areas_refresh(struct civ_map *nmap, struct player *plr)
         aarea->cities = city_list_new();
         aarea->capital = is_capital(pcity);
 
-        pcity->server.aarea = aarea;
+        pcity->aarea = aarea;
         city_list_append(aarea->cities, pcity);
         aarea_list_append(alist, aarea);
 
@@ -73,12 +73,12 @@ void access_areas_refresh(struct civ_map *nmap, struct player *plr)
         pfm = pf_map_new(&parameter);
 
         city_list_iterate(plr->cities, pcity2) {
-          if (pcity2->server.aarea == nullptr) {
+          if (pcity2->aarea == nullptr) {
             struct pf_path *path;
 
             path = pf_map_path(pfm, city_tile(pcity2));
             if (path != nullptr) {
-              pcity2->server.aarea = aarea;
+              pcity2->aarea = aarea;
               city_list_append(aarea->cities, pcity2);
 
               if (!aarea->capital && is_capital(pcity2)) {
-- 
2.53.0

