From 8f0f6c1ac117bff0b5f2c2140479b93ea9cd138b Mon Sep 17 00:00:00 2001
From: Scott Lahteine <thinkyhead@users.noreply.github.com>
Date: Thu, 20 May 2021 21:47:05 -0500
Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Fix=20compile=20with=20PREVENT?=
 =?UTF-8?q?=5FCOLD=5FEXTRUSION=20off?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../src/lcd/extui/dgus/mks/DGUSDisplayDef.cpp | 11 ++++++++--
 .../lcd/extui/dgus/mks/DGUSScreenHandler.cpp  | 22 +++++++++++--------
 .../lcd/extui/dgus/mks/DGUSScreenHandler.h    |  4 +++-
 3 files changed, 25 insertions(+), 12 deletions(-)

diff --git a/Marlin/src/lcd/extui/dgus/mks/DGUSDisplayDef.cpp b/Marlin/src/lcd/extui/dgus/mks/DGUSDisplayDef.cpp
index 525b781599..3d68df7b7f 100644
--- a/Marlin/src/lcd/extui/dgus/mks/DGUSDisplayDef.cpp
+++ b/Marlin/src/lcd/extui/dgus/mks/DGUSDisplayDef.cpp
@@ -691,7 +691,10 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
   VPHELPER(VP_X_PARK_POS, &mks_park_pos.x, ScreenHandler.GetParkPos_MKS, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
   VPHELPER(VP_Y_PARK_POS, &mks_park_pos.y, ScreenHandler.GetParkPos_MKS, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
   VPHELPER(VP_Z_PARK_POS, &mks_park_pos.z, ScreenHandler.GetParkPos_MKS, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
-  VPHELPER(VP_MIN_EX_T, &thermalManager.extrude_min_temp, ScreenHandler.HandleGetExMinTemp_MKS, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
+
+  #if ENABLED(PREVENT_COLD_EXTRUSION)
+    VPHELPER(VP_MIN_EX_T, &thermalManager.extrude_min_temp, ScreenHandler.HandleGetExMinTemp_MKS, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
+  #endif
 
   #if ENABLED(SENSORLESS_HOMING)  // TMC SENSORLESS Setting
     #if AXIS_HAS_STEALTHCHOP(X)
@@ -743,7 +746,11 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
   VPHELPER(VP_ZOffset_Distance,nullptr ,ScreenHandler.GetZoffsetDistance, nullptr),
   VPHELPER(VP_MESH_LEVEL_ADJUST, nullptr, ScreenHandler.MeshLevelDistanceConfig, nullptr),
   VPHELPER(VP_MESH_LEVEL_POINT,nullptr, ScreenHandler.MeshLevel,nullptr),
-  VPHELPER(VP_Min_EX_T_E, &thermalManager.extrude_min_temp, &ScreenHandler.GetMinExtrudeTemp, &ScreenHandler.DGUSLCD_SendWordValueToDisplay),
+
+  #if ENABLED(PREVENT_COLD_EXTRUSION)
+    VPHELPER(VP_Min_EX_T_E, &thermalManager.extrude_min_temp, &ScreenHandler.GetMinExtrudeTemp, &ScreenHandler.DGUSLCD_SendWordValueToDisplay),
+  #endif
+
   VPHELPER(VP_AutoTurnOffSw, nullptr, &ScreenHandler.GetTurnOffCtrl, nullptr),
 
   #if HOTENDS >= 1
diff --git a/Marlin/src/lcd/extui/dgus/mks/DGUSScreenHandler.cpp b/Marlin/src/lcd/extui/dgus/mks/DGUSScreenHandler.cpp
index c0b3b60a16..6d12d529a9 100644
--- a/Marlin/src/lcd/extui/dgus/mks/DGUSScreenHandler.cpp
+++ b/Marlin/src/lcd/extui/dgus/mks/DGUSScreenHandler.cpp
@@ -342,7 +342,7 @@ void DGUSScreenHandler::GetTurnOffCtrl(DGUS_VP_Variable &var, void *val_ptr) {
 void DGUSScreenHandler::GetMinExtrudeTemp(DGUS_VP_Variable &var, void *val_ptr) {
   DEBUG_ECHOLNPGM("GetMinExtrudeTemp");
   const uint16_t value = swap16(*(uint16_t *)val_ptr);
-  thermalManager.extrude_min_temp = value;
+  TERN_(PREVENT_COLD_EXTRUSION, thermalManager.extrude_min_temp = value);
   mks_min_extrusion_temp = value;
   settings.save();
 }
@@ -1083,11 +1083,13 @@ void DGUSScreenHandler::HandleAccChange_MKS(DGUS_VP_Variable &var, void *val_ptr
   skipVP = var.VP; // don't overwrite value the next update time as the display might autoincrement in parallel
 }
 
-void DGUSScreenHandler::HandleGetExMinTemp_MKS(DGUS_VP_Variable &var, void *val_ptr) {
-  const uint16_t value_ex_min_temp = swap16(*(uint16_t*)val_ptr);
-  thermalManager.extrude_min_temp = value_ex_min_temp;
-  skipVP = var.VP; // don't overwrite value the next update time as the display might autoincrement in parallel
-}
+#if ENABLED(PREVENT_COLD_EXTRUSION)
+  void DGUSScreenHandler::HandleGetExMinTemp_MKS(DGUS_VP_Variable &var, void *val_ptr) {
+    const uint16_t value_ex_min_temp = swap16(*(uint16_t*)val_ptr);
+    thermalManager.extrude_min_temp = value_ex_min_temp;
+    skipVP = var.VP; // don't overwrite value the next update time as the display might autoincrement in parallel
+  }
+#endif
 
 #if HAS_PID_HEATING
   void DGUSScreenHandler::HandleTemperaturePIDChanged(DGUS_VP_Variable &var, void *val_ptr) {
@@ -1231,7 +1233,7 @@ void DGUSScreenHandler::MKS_FilamentLoadUnload(DGUS_VP_Variable &var, void *val_
       break;
   }
 
-  #if HAS_HOTEND
+  #if BOTH(HAS_HOTEND, PREVENT_COLD_EXTRUSION)
     if (hotend_too_cold) {
       if (thermalManager.targetTooColdToExtrude(hotend_too_cold - 1)) thermalManager.setTargetHotend(thermalManager.extrude_min_temp, hotend_too_cold - 1);
       sendinfoscreen(PSTR("NOTICE"), nullptr, PSTR("Please wait."), PSTR("Nozzle heating!"), true, true, true, true);
@@ -1428,8 +1430,10 @@ bool DGUSScreenHandler::loop() {
         #endif
       #endif
 
-      if (mks_min_extrusion_temp != 0)
-        thermalManager.extrude_min_temp = mks_min_extrusion_temp;
+      #if ENABLED(PREVENT_COLD_EXTRUSION)
+        if (mks_min_extrusion_temp != 0)
+          thermalManager.extrude_min_temp = mks_min_extrusion_temp;
+      #endif
 
       DGUS_ExtrudeLoadInit();
 
diff --git a/Marlin/src/lcd/extui/dgus/mks/DGUSScreenHandler.h b/Marlin/src/lcd/extui/dgus/mks/DGUSScreenHandler.h
index 6713debd83..4a67b4afda 100644
--- a/Marlin/src/lcd/extui/dgus/mks/DGUSScreenHandler.h
+++ b/Marlin/src/lcd/extui/dgus/mks/DGUSScreenHandler.h
@@ -82,7 +82,9 @@ public:
   static void GetZoffsetDistance(DGUS_VP_Variable &var, void *val_ptr);
   static void GetMinExtrudeTemp(DGUS_VP_Variable &var, void *val_ptr);
   static void GetParkPos_MKS(DGUS_VP_Variable &var, void *val_ptr);
-  static void HandleGetExMinTemp_MKS(DGUS_VP_Variable &var, void *val_ptr);
+  #if ENABLED(PREVENT_COLD_EXTRUSION)
+    static void HandleGetExMinTemp_MKS(DGUS_VP_Variable &var, void *val_ptr);
+  #endif
   static void DGUS_LanguageDisplay(uint8_t var);
   static void TMC_ChangeConfig(DGUS_VP_Variable &var, void *val_ptr);
   static void GetTurnOffCtrl(DGUS_VP_Variable &var, void *val_ptr);