1) materials get assigned to a "material graphics class"
I was just thinking how this release would make making visualisations harder if materials are no longer classed as 'metal' 'wood' etc. Really all you need are 'material' (maybe a few texture tags like you say) and a color or three.
I think "weeks" is a little crazy. Seriously, I don't think it would take Toady several dozen man-hours just to do the busywork portion of it, and the more important parts pale in comparison to what he's doing now.
I mean, this release has taken a lot of tedious busywork as well, I'm sure, like material properties. I just think you're very seriously overestimating the amount of time requiring.
Let's extrapolate from known data.
Tiles require their own raw file. (-)
Toady has a parser for graphics raws. (+)
Toady does not have potential for arbitrary tokens (maybe- position rewrite might fix this by wayside)
Toady can leave all graphics as is using current tile/graphics system(+/-)
(that is, can just leave all things 'unreplaced' with an empty graphics set)
main reqs: trees t(ore and item), minerals t (ore and item), plants t vermin t status icons f workshop tiles f(probably t after custom wkshps) all buildings/constructions f all mid-construction buildings f flying projectiles f colocation animation f items f vapors f wagons f
x:unused char
n: no change needed
o: font character (can get away with leaving. Only one allowed per.)
t: tilesupport needed (has switchable character)
f: full revamp needed (has no possible config)
0-15:
0:n
1:n
2:n
3:t
4:ff(1,2)
5:ttttttt(8,2)
6:tttttt(14,2)
7:tf?ff(15,5+)
8:fff(15,8+)
9:ffffff(15,14+)
10:x
11:of(1,15,15+)
12:of(1,15,16+)
13:x
14:f(1,15,17+)
15:toffttff(2,18,21)
16-31
16:tf(2,19,22)
17:f(2,19,23)
18:x?
19:fff(2,19,26)
20:tff(2,20,28)
21:tf(2,21,29)
22:f 30
23:t+ (2,22,30)
24:ott(3,24,30)
25:offff(3,24,34)
26:o
27:o
28:x
29:x? (5,24,34)
30:ff
31:ff (5,24,36)
32-47
32:o
33:o, f+(7,24,37)
34:otff(8 25 39
35:ffftttt(8 29 42)
36:f
37:fff t14(8 43 45)
38:n
39:ffttt(8 46 48)
40:oof(10 43 46)
41:oo(12 46 48)
42:t* foff(13 47 51)
43:fffff(13 47 56)
44:ftfo(14 48 58)
45:fffo(15 48 61)
46:ftof(16 49 63)
47:fffo(17 49 66)
48-63
48:fo
49o
50o
51o
52o
53o
54o
55o
56o
57o(27 49 67)
58: ttttf (27 53 68)
59: f+ (27 53 69)
60: f
61: fttttt(27 58 71)
62: f
63: f? (27 58 73)
64-79
64:n
65:on
66:on
67:on
68:on
69:on
70:on
71:on
72:on
73:ofn
74:on(37 58 74)
75:on
76:on
77:on
78:on
79:offff(42 58 78)
80-95
80:o
81:on
82:on
83:on
84:on
85:on
86:on
87:on
88:f11 o (51 58 89)
89:on
90:of(53 58 90)
91: f*oo(55 58 91)
92: ff(55 58 93)
93: ffoo(57 58 95)
94: f*t(57 59 96)
95: fo (58 59 97)
96-111
96: fftttt(58 63 99)
97: on
98:on
99:on
100:on
101:on
102:on
103:on
104:on
105:on
106:on
107:on
108:on
109:ofn
110:on
111:ffffo(73,63,101)
112-127
112on
113on
114on
115on
116on
117on
118ottn(80,65,101)
119on
120tn(82,66,101)
121on
122on
123o
124tff(85 67 103)
125o
126:f9(86 67 112)
127:fff(86 67 115)
128-143
128f
129o
130o
131o
132o
133o
134o
135f(92 67 117)
136o
137o
138o
139o
140of(97 67 118)
141 o
142o
143of(100 67 119)
144o
145offff(102 67 123)
146offf(103 67 126)
147o
148o
149ofn(106 67 127)
150of
151o
152of(109 67 128
153:o
154:o
155:f(111 67 129)
156:t*f(111 68 130)
157:t
158x
159:t (111 70 130)
160-175
160o
161o
162of
163o
164o
165o
166x (117 70 131)
167 f*
168 f*
169 f*
170x (117 70 134)
171x
172x
173 fff (117 70 137)
174 fo
175 fo (119 70 139)
176-191
176: f7 tttt*(119 74 146)
177: f15 t3* (119 77 161)
178: f7 t5+ (119 82 168)
179: ffff
180: ffffft (119 83 177)
181: fff 180
182:?
183: f
184:f
185:ff
186:fffffff 189
187:fff
188: fff
189:f
190:f
191:ff 198
192-207
192:ff
193:ff
194:ff
195:fff
196:fff (119 83 210)
197:ffff
198:fff
199:x
200:ff(223)
201:fff
202:ff
203:ff
204:ff
205:f7(239)
206:f7(119 83 246)
207:f
208-223
208:ff
209:ff(251)
210:ffff(255)
211:f
212:f
213:f
214:f (259)
215:fff
216:f
217:ff
218:ff (277)
219:f
220:ff
221:f
222:f
223:f (283)
224-239 (119 83 283)
224:tff
225:f
226:o t6(120 90 286)
227:ff(120 90 288)
228:f* (120 90 289)
229:fff (120 90 292)
230: tff(120 90 294)
231: f t8 (120 98 295)
232: ttt (120 101 295)
233: ft (120 102 296)
234: fft (120 103 298)
235: ff (120 103 300)
236: ffff tt (120 105 304)
237: fff (120 105 307)
238: f
239: f(120 105 309)
240-255
240:fffff (120 105 314)
241: f
242: ffff (120 105 319)
243: ffff (120 105 324)
243: t
245:x
246:ffftt (120 108 327)
247:f17 (120 108 344)
248:ff (120 108 346)
249:t*f (120 109 347)
250:fft (120 110 349)
251:ffo (121 110 351)
252: f (121 110 352)
253:f7 (121 110 359)
254: ff (121 110 361)
255:x
So, 471+ objects to add graphical support for, 361+ of which need basic tile support.
This is just based on the
wiki's estimate, there are definitely more than that (it said "some workshop tiles" I was likely to count it as one only)
And (though not for all) he'd need to add a token so the game can figure out where it goes, possibly expand the graphics parser so it can get multi-tile coordinates (butcher 0 0, butcher 0 1, etc), and load it up.
Also likely for the 361, potentially ha'ing to hunt down mid-code where the hard-coded character is and substitute 'tile-and-graphic' implementation for it. It would probably be easier to rip up the undergraphics engine again than to do this. And, then, again, needs to create a token set or summat to know which character's what, etc.
I think "several dozen man-hours" is certainly a good estimate of what would be required, and why Toady does not look forward to it. (There are also 121 characters that I'd class as 'font' which could easily be left alone in their uses- ex 'g' as 'g', check marks, quality tags, punctuation)