changeset 17962:6b826bfa6e1e draft

(svn r22771) -Codechange: unify some NewGRFScan calling code
author rubidium <rubidium@openttd.org>
date Sat, 20 Aug 2011 17:46:03 +0000
parents 24b3d023e3f5
children 4edb402ebe0e
files src/console_cmds.cpp src/network/network_content_gui.cpp src/newgrf_config.cpp src/newgrf_gui.cpp
diffstat 4 files changed, 24 insertions(+), 26 deletions(-) [+]
line wrap: on
line diff
--- a/src/console_cmds.cpp
+++ b/src/console_cmds.cpp
@@ -1269,7 +1269,6 @@
 
 	TarScanner::DoScan();
 	ScanNewGRFFiles();
-	InvalidateWindowData(WC_GAME_OPTIONS, 0, GOID_NEWGRF_RESCANNED);
 
 	return true;
 }
--- a/src/network/network_content_gui.cpp
+++ b/src/network/network_content_gui.cpp
@@ -115,9 +115,6 @@
 
 				case CONTENT_TYPE_NEWGRF:
 					ScanNewGRFFiles();
-					/* Yes... these are the NewGRF windows */
-					InvalidateWindowClassesData(WC_SAVELOAD);
-					InvalidateWindowData(WC_GAME_OPTIONS, 0, GOID_NEWGRF_RESCANNED);
 					break;
 
 				case CONTENT_TYPE_SCENARIO:
--- a/src/newgrf_config.cpp
+++ b/src/newgrf_config.cpp
@@ -605,33 +605,37 @@
 	uint num = GRFFileScanner::DoScan();
 
 	DEBUG(grf, 1, "Scan complete, found %d files", num);
-	if (num == 0 || _all_grfs == NULL) return;
-
-	/* Sort the linked list using quicksort.
-	 * For that we first have to make an array, then sort and
-	 * then remake the linked list. */
-	GRFConfig **to_sort = MallocT<GRFConfig*>(num);
+	if (num != 0 && _all_grfs != NULL) {
+		/* Sort the linked list using quicksort.
+		* For that we first have to make an array, then sort and
+		* then remake the linked list. */
+		GRFConfig **to_sort = MallocT<GRFConfig*>(num);
 
-	uint i = 0;
-	for (GRFConfig *p = _all_grfs; p != NULL; p = p->next, i++) {
-		to_sort[i] = p;
-	}
-	/* Number of files is not necessarily right */
-	num = i;
+		uint i = 0;
+		for (GRFConfig *p = _all_grfs; p != NULL; p = p->next, i++) {
+			to_sort[i] = p;
+		}
+		/* Number of files is not necessarily right */
+		num = i;
 
-	QSortT(to_sort, num, &GRFSorter);
+		QSortT(to_sort, num, &GRFSorter);
 
-	for (i = 1; i < num; i++) {
-		to_sort[i - 1]->next = to_sort[i];
-	}
-	to_sort[num - 1]->next = NULL;
-	_all_grfs = to_sort[0];
+		for (i = 1; i < num; i++) {
+			to_sort[i - 1]->next = to_sort[i];
+		}
+		to_sort[num - 1]->next = NULL;
+		_all_grfs = to_sort[0];
 
-	free(to_sort);
+		free(to_sort);
 
 #ifdef ENABLE_NETWORK
-	NetworkAfterNewGRFScan();
+		NetworkAfterNewGRFScan();
 #endif
+	}
+
+	/* Yes... these are the NewGRF windows */
+	InvalidateWindowClassesData(WC_SAVELOAD);
+	InvalidateWindowData(WC_GAME_OPTIONS, 0, GOID_NEWGRF_RESCANNED);
 }
 
 
--- a/src/newgrf_gui.cpp
+++ b/src/newgrf_gui.cpp
@@ -989,9 +989,7 @@
 				this->avail_sel = NULL;
 				this->avail_pos = -1;
 				this->avails.ForceRebuild();
-				this->InvalidateData(GOID_NEWGRF_RESCANNED);
 				this->DeleteChildWindows(WC_QUERY_STRING); // Remove the parameter query window
-				InvalidateWindowClassesData(WC_SAVELOAD);
 				break;
 		}
 	}