From 6df927d3b24c539edd3b7dc6e8717333678c6ff3 Mon Sep 17 00:00:00 2001
From: ellensp <ellensp@hotmail.com>
Date: Sun, 5 Jul 2020 13:04:31 +1200
Subject: [PATCH] Fix thermistors exist-for-reading tests (#18533)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
---
 Marlin/src/module/temperature.cpp | 103 ++++++++++++------------------
 1 file changed, 41 insertions(+), 62 deletions(-)

diff --git a/Marlin/src/module/temperature.cpp b/Marlin/src/module/temperature.cpp
index 1ca988e5d7..74af973f19 100644
--- a/Marlin/src/module/temperature.cpp
+++ b/Marlin/src/module/temperature.cpp
@@ -1804,76 +1804,55 @@ void Temperature::init() {
         temp_range[NR].raw_max -= TEMPDIR(NR) * (OVERSAMPLENR); \
     }while(0)
 
-    #if THERMISTOR_HEATER_0
-      #ifdef HEATER_0_MINTEMP
+    #define _MINMAX_TEST(N,M) (HOTENDS > N && THERMISTOR_HEATER_##N && THERMISTOR_HEATER_##N != 998 && THERMISTOR_HEATER_##N != 999 && defined(HEATER_##N##_##M##TEMP))
+  
+    #if _MINMAX_TEST(0, MIN)
       _TEMP_MIN_E(0);
-      #endif
-      #ifdef HEATER_0_MAXTEMP
-        _TEMP_MAX_E(0);
-      #endif
     #endif
-
-    #if HAS_MULTI_HOTEND && THERMISTOR_HEATER_1
-      #ifdef HEATER_1_MINTEMP
-        _TEMP_MIN_E(1);
-      #endif
-      #ifdef HEATER_1_MAXTEMP
-        _TEMP_MAX_E(1);
-      #endif
+    #if _MINMAX_TEST(0, MAX)
+      _TEMP_MAX_E(0); 
     #endif
-
-    #if HOTENDS > 2 && THERMISTOR_HEATER_2
-      #ifdef HEATER_2_MINTEMP
-        _TEMP_MIN_E(2);
-      #endif
-      #ifdef HEATER_2_MAXTEMP
-        _TEMP_MAX_E(2);
-      #endif
+    #if _MINMAX_TEST(1, MIN)
+      _TEMP_MIN_E(1);
     #endif
-
-    #if HOTENDS > 3 && THERMISTOR_HEATER_3
-      #ifdef HEATER_3_MINTEMP
-        _TEMP_MIN_E(3);
-      #endif
-      #ifdef HEATER_3_MAXTEMP
-        _TEMP_MAX_E(3);
-      #endif
+    #if _MINMAX_TEST(1, MAX)
+      _TEMP_MAX_E(1);
     #endif
-
-    #if HOTENDS > 4 && THERMISTOR_HEATER_4
-      #ifdef HEATER_4_MINTEMP
-        _TEMP_MIN_E(4);
-      #endif
-      #ifdef HEATER_4_MAXTEMP
-        _TEMP_MAX_E(4);
-      #endif
+    #if _MINMAX_TEST(2, MIN)
+      _TEMP_MIN_E(2);
     #endif
-
-    #if HOTENDS > 5 && THERMISTOR_HEATER_5
-      #ifdef HEATER_5_MINTEMP
-        _TEMP_MIN_E(5);
-      #endif
-      #ifdef HEATER_5_MAXTEMP
-        _TEMP_MAX_E(5);
-      #endif
+    #if _MINMAX_TEST(2, MAX)
+      _TEMP_MAX_E(2);
     #endif
-
-    #if HOTENDS > 6 && THERMISTOR_HEATER_6
-      #ifdef HEATER_6_MINTEMP
-        _TEMP_MIN_E(6);
-      #endif
-      #ifdef HEATER_6_MAXTEMP
-        _TEMP_MAX_E(6);
-      #endif
+    #if _MINMAX_TEST(3, MIN)
+      _TEMP_MIN_E(3);
     #endif
-
-    #if HOTENDS > 7 && THERMISTOR_HEATER_7
-      #ifdef HEATER_7_MINTEMP
-        _TEMP_MIN_E(7);
-      #endif
-      #ifdef HEATER_7_MAXTEMP
-        _TEMP_MAX_E(7);
-      #endif
+    #if _MINMAX_TEST(3, MAX)
+      _TEMP_MAX_E(3);
+    #endif
+    #if _MINMAX_TEST(4, MIN)
+      _TEMP_MIN_E(4);
+    #endif
+    #if _MINMAX_TEST(4, MAX)
+      _TEMP_MAX_E(4);
+    #endif
+    #if _MINMAX_TEST(5, MIN)
+      _TEMP_MIN_E(5);
+    #endif
+    #if _MINMAX_TEST(5, MAX)
+      _TEMP_MAX_E(5);
+    #endif
+    #if _MINMAX_TEST(6, MIN)
+      _TEMP_MIN_E(6);
+    #endif
+    #if _MINMAX_TEST(6, MAX)
+      _TEMP_MAX_E(6);
+    #endif
+    #if _MINMAX_TEST(7, MIN)
+      _TEMP_MIN_E(7);
+    #endif
+    #if _MINMAX_TEST(7, MAX)
+      _TEMP_MAX_E(7);
     #endif
 
   #endif // HAS_HOTEND
-- 
GitLab