From 10c8647c1b4d902dfa15bbe02a4a0ba990406f50 Mon Sep 17 00:00:00 2001
From: Jason Smith <jason.inet@gmail.com>
Date: Thu, 5 Nov 2020 16:15:29 -0800
Subject: [PATCH] Fix 0 extruders & bed compile (#20030)

---
 Marlin/src/lcd/dogm/status_screen_DOGM.cpp |  3 +++
 Marlin/src/lcd/menu/menu_temperature.cpp   |  9 ++-------
 buildroot/tests/rambo-tests                | 10 ++++++++++
 3 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/Marlin/src/lcd/dogm/status_screen_DOGM.cpp b/Marlin/src/lcd/dogm/status_screen_DOGM.cpp
index d07474d810e..85654b9189b 100644
--- a/Marlin/src/lcd/dogm/status_screen_DOGM.cpp
+++ b/Marlin/src/lcd/dogm/status_screen_DOGM.cpp
@@ -104,6 +104,9 @@
 
 #if DO_DRAW_HOTENDS
   #define MAX_HOTEND_DRAW _MIN(HOTENDS, ((LCD_PIXEL_WIDTH - (STATUS_LOGO_BYTEWIDTH + STATUS_FAN_BYTEWIDTH) * 8) / (STATUS_HEATERS_XSPACE)))
+#endif
+
+#if EITHER(DO_DRAW_BED, DO_DRAW_HOTENDS)
   #define STATUS_HEATERS_BOT (STATUS_HEATERS_Y + STATUS_HEATERS_HEIGHT - 1)
 #endif
 
diff --git a/Marlin/src/lcd/menu/menu_temperature.cpp b/Marlin/src/lcd/menu/menu_temperature.cpp
index 28ea54efbab..f9143013283 100644
--- a/Marlin/src/lcd/menu/menu_temperature.cpp
+++ b/Marlin/src/lcd/menu/menu_temperature.cpp
@@ -63,15 +63,14 @@ void Temperature::lcd_preheat(const int16_t e, const int8_t indh, const int8_t i
 
   #if HAS_TEMP_HOTEND
     inline void _preheat_end(const uint8_t m, const uint8_t e) { thermalManager.lcd_preheat(e, m, -1); }
-    #if HAS_HEATED_BED
-      inline void _preheat_both(const uint8_t m, const uint8_t e) { thermalManager.lcd_preheat(e, m, m); }
-    #endif
+    void do_preheat_end_m() { _preheat_end(editable.int8, 0); }
   #endif
   #if HAS_HEATED_BED
     inline void _preheat_bed(const uint8_t m) { thermalManager.lcd_preheat(-1, -1, m); }
   #endif
 
   #if HAS_TEMP_HOTEND && HAS_HEATED_BED
+    inline void _preheat_both(const uint8_t m, const uint8_t e) { thermalManager.lcd_preheat(e, m, m); }
 
     // Indexed "Preheat ABC" and "Heat Bed" items
     #define PREHEAT_ITEMS(M,E) do{ \
@@ -86,10 +85,6 @@ void Temperature::lcd_preheat(const int16_t e, const int8_t indh, const int8_t i
 
   #endif
 
-  void do_preheat_end_m() {
-    _preheat_end(editable.int8, 0);
-  }
-
   #if HAS_MULTI_HOTEND || HAS_HEATED_BED
 
     // Set editable.int8 to the Material index before entering this menu
diff --git a/buildroot/tests/rambo-tests b/buildroot/tests/rambo-tests
index ec8af16c23b..6fc720d1e14 100644
--- a/buildroot/tests/rambo-tests
+++ b/buildroot/tests/rambo-tests
@@ -60,6 +60,16 @@ opt_enable USE_XMAX_PLUG USE_YMAX_PLUG USE_ZMAX_PLUG \
 opt_disable MIN_SOFTWARE_ENDSTOP_Z MAX_SOFTWARE_ENDSTOPS
 exec_test $1 $2 "Rambo CNC Configuration"
 
+#
+# Rambo heated bed only
+#
+restore_configs
+opt_set MOTHERBOARD BOARD_RAMBO
+opt_set EXTRUDERS 0
+opt_set TEMP_SENSOR_BED 1
+opt_enable REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
+exec_test $1 $2 "Rambo heated bed only"
+
 #
 # Build with the default configurations
 #