diff --git a/src/vehicle_base.h b/src/vehicle_base.h index 59584da788..f923c2d791 100644 --- a/src/vehicle_base.h +++ b/src/vehicle_base.h @@ -23,6 +23,7 @@ #include "transport_type.h" #include "group_type.h" #include "base_consist.h" +#include "network/network.h" #include #include @@ -1072,6 +1073,9 @@ struct SpecializedVehicle : public Vehicle { */ inline void UpdateViewport(bool force_update, bool update_delta) { + /* Skip updating sprites on dedicated servers without screen */ + if (_network_dedicated) return; + /* Explicitly choose method to call to prevent vtable dereference - * it gives ~3% runtime improvements in games with many vehicles */ if (update_delta) ((T *)this)->T::UpdateDeltaXY(this->direction); diff --git a/src/window.cpp b/src/window.cpp index 1fce1f3a8d..bc92416b62 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -3031,6 +3031,10 @@ void UpdateWindows() w->ProcessHighlightedInvalidations(); } + /* Skip the actual drawing on dedicated servers without screen. + * But still empty the invalidation queues above. */ + if (_network_dedicated) return; + static int we4_timer = 0; int t = we4_timer + 1;