From 45f14a6de311b5ebb4d8f592ccd39d44a05c7594 Mon Sep 17 00:00:00 2001
From: Marko Lindqvist <cazfi74@gmail.com>
Date: Thu, 30 Sep 2021 17:04:50 +0300
Subject: [PATCH 42/43] Apply square tileset setting changes to current game
 also if map topo is iso

Reported by log65536

See osdn #42956

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
---
 client/tilespec.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/client/tilespec.c b/client/tilespec.c
index 10256828ce..d29022c30d 100644
--- a/client/tilespec.c
+++ b/client/tilespec.c
@@ -1446,10 +1446,15 @@ void tilespec_reread_callback(struct option *poption)
   const char *tileset_name;
   enum client_states state = client_state();
 
-  if ((state == C_S_RUNNING || state == C_S_OVER)
-      && option_get_cb_data(poption) != (wld.map.topology_id & (TF_ISO | TF_HEX))) {
-    /* Changed option was not for current topology */
-    return;
+  if (state == C_S_RUNNING || state == C_S_OVER) {
+    int opt = option_get_cb_data(poption);
+
+    /* Also iso map topology counts as 'square' tileset topology */
+    if (opt != (wld.map.topology_id & (TF_ISO | TF_HEX))
+        && (opt != 0 || ((wld.map.topology_id & TF_HEX) == TF_HEX))) {
+      /* Changed option was not for current topology */
+      return;
+    }
   }
 
   tileset_name = option_str_get(poption);
-- 
2.33.0