<snip>
Also, I'd like to remind that generally I'm against using overrides for things that can be done in raws, like replacing colours for some materials and so on. Mostly because of performance issues of course, especially when overriding widely used tiles and/or using many overrides for single tile (so that it needs to check them all). If raw editing is undesirable, I can think of some commands to change raws in memory instead.
Obviously overrides by tile colour are easy too (obviously - because I already have tile colour when processing a tile), but I need to think of a better way to configure overrides - OVERRIDE command becomes too long and complicated.
I've mostly been looking for material based overrides to have entirely different tiles based on the material, which, sadly, I can't do through raws.
With OVERRIDE getting too long, would it be possible to break it down into multiple tags? Like this:
[OVERRIDE:tile]
[TYPE:type][SUBTYPE:subtype][NEWTILE:tileset:new tile][NEWCOLOR:new foreground:newbackground:new brightness]
That is, it would group each tile override together, then set the new tiles, colors, etc if it meets certain criteria. For instance
[OVERRIDE:210]
[KIND:I][TYPE:CHAIR][MATERIAL:WOOD][NEWTILE:2:0]
[KIND:I][TYPE:CHAIR][MATERIAL:INORGANIC:IRON][NEWTILE:2:1]
Would replace all Wood chairs (Material token may be incorrect, I'm not at a computer with DF) with the first tile in tileset 2, and all Iron chairs with the second tile in tileset 2.