src/newgrf.cpp
branchNewGRF_ports
changeset 6865 2b39c3ca4fda
parent 6863 13335bf10adb
child 6868 7eb395287b3d
--- a/src/newgrf.cpp	Mon Aug 27 00:40:59 2007 +0000
+++ b/src/newgrf.cpp	Mon Aug 27 00:42:30 2007 +0000
@@ -2065,20 +2065,27 @@
 	byte *blocklist = MallocT<byte>(1);
 	byte numblocks = 1;
 	byte firstblock = grf_load_byte(buf);
-	if (firstblock == 0x7E) {
-		/* read multiblock */
-		numblocks = 0;
-		byte nextblock = grf_load_byte(buf);
-		while (nextblock != 0x7F) {
-			numblocks++;
-			blocklist = ReallocT(blocklist, numblocks);
-			blocklist[numblocks - 1] = nextblock;
-			nextblock = grf_load_byte(buf);
-		}
-	} else {
+	switch (firstblock) {
+	case 0x7E:
+		{
+			/* read multiblock */
+			numblocks = 0;
+			byte nextblock = grf_load_byte(buf);
+			while (nextblock != 0x7F) {
+				numblocks++;
+				blocklist = ReallocT(blocklist, numblocks);
+				blocklist[numblocks - 1] = nextblock;
+				nextblock = grf_load_byte(buf);
+			}
+			block->Initialise(blocklist, numblocks);
+		} break;
+	case 0xFF:
+		block->SetAll();
+		break;
+	default:
 		blocklist[0] = firstblock;
+		block->Initialise(blocklist, numblocks);
 	}
-	block->Initialise(blocklist, numblocks);
 }