FilterMaps File Format

The most annoying .dat file.

FilterMaps.dat contains 17 rhombus tiles, each mostly 49 rows high, with each row having a stride of columns as pixels, similar to Blendomatic tiles. Each pixel contains a reference to an ICM which uses corresponding LightMaps for shading.

struct filter_maps {

	struct filter_map {

		long header_length;                // number of bytes to read this filter map
		long tile_size_y;                  // seems to be 49, 25, or 73

		while (tile_size_y--) {
			uint8 crap1;                   // read 1 byte
			int remaining = crap1 & 0xFF;  // bitwise for reading more crap
			do {
				uint16 crap2;              // read 2 bytes
				int check2 = crap2 & 0x0F; // bitwise for reading further crap
				do {
					uint24 crap3;          // read 3 bytes
					// some of this crap is then loaded into the graphics rendering
					check2--;
				} while (check2);
				check1--;
			} while (check1);
		}
	}
}[17];