changeset 17991:ba8f20e7b16d draft

(svn r22800) -Fix (r22796): don't run the scanning threaded when there is no reason to do so (no UI to update)
author rubidium <rubidium@openttd.org>
date Sun, 21 Aug 2011 13:19:06 +0000
parents 470c1caa3d43
children 05ecda28efc6
files src/newgrf_config.cpp
diffstat 1 files changed, 5 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/newgrf_config.cpp
+++ b/src/newgrf_config.cpp
@@ -19,6 +19,8 @@
 #include "window_func.h"
 #include "progress.h"
 #include "thread/thread.h"
+#include "blitter/factory.hpp"
+#include "network/network.h"
 
 #include "fileio_func.h"
 #include "fios.h"
@@ -694,9 +696,11 @@
  */
 void ScanNewGRFFiles(NewGRFScanCallback *callback)
 {
-	if (!ThreadObject::New(&DoScanNewGRFFiles, callback, NULL)) {
+	if (BlitterFactoryBase::GetCurrentBlitter()->GetScreenDepth() == 0 || _network_dedicated || !ThreadObject::New(&DoScanNewGRFFiles, callback, NULL)) {
 		_modal_progress_work_mutex->EndCritical();
+		_modal_progress_paint_mutex->EndCritical();
 		DoScanNewGRFFiles(callback);
+		_modal_progress_paint_mutex->BeginCritical();
 		_modal_progress_work_mutex->BeginCritical();
 	}
 }