1 | #!/opt/bin/perl |
1 | #!/opt/bin/perl |
|
|
2 | |
|
|
3 | my %ARG = @ARGV; |
2 | |
4 | |
3 | use List::Util; |
5 | use List::Util; |
4 | |
6 | |
5 | # todo: gather dynamically |
7 | # todo: gather dynamically |
6 | my @kw = qw( |
8 | my @kw = qw( |
… | |
… | |
66 | cursed |
68 | cursed |
67 | custom_name |
69 | custom_name |
68 | dam |
70 | dam |
69 | dam_modifier |
71 | dam_modifier |
70 | damned |
72 | damned |
|
|
73 | destroy_on_death |
71 | dex |
74 | dex |
72 | direction |
75 | direction |
73 | duration |
76 | duration |
74 | duration_modifier |
77 | duration_modifier |
75 | editable |
78 | editable |
… | |
… | |
155 | no_pick |
158 | no_pick |
156 | no_skill_ident |
159 | no_skill_ident |
157 | no_steal |
160 | no_steal |
158 | no_strength |
161 | no_strength |
159 | nrof |
162 | nrof |
|
|
163 | obj_original |
160 | object |
164 | object |
161 | oid |
165 | oid |
162 | one_hit |
166 | one_hit |
163 | only_attack |
167 | only_attack |
164 | other_arch |
168 | other_arch |
… | |
… | |
256 | Wis |
260 | Wis |
257 | Cha |
261 | Cha |
258 | Int |
262 | Int |
259 | Pow |
263 | Pow |
260 | More |
264 | More |
|
|
265 | |
|
|
266 | maplore |
|
|
267 | endmaplore |
|
|
268 | enter_x |
|
|
269 | enter_y |
|
|
270 | width |
|
|
271 | height |
|
|
272 | reset_timeout |
|
|
273 | reset_time |
|
|
274 | swap_time |
|
|
275 | difficulty |
|
|
276 | darkness |
|
|
277 | fixed_resettime |
|
|
278 | per_player |
|
|
279 | per_party |
|
|
280 | region |
|
|
281 | shopitems |
|
|
282 | shopgreed |
|
|
283 | shopmin |
|
|
284 | shopmax |
|
|
285 | shoprace |
|
|
286 | outdoor |
|
|
287 | tile_path_1 |
|
|
288 | tile_path_2 |
|
|
289 | tile_path_3 |
|
|
290 | tile_path_4 |
|
|
291 | |
|
|
292 | file_format_version |
|
|
293 | |
|
|
294 | temp |
|
|
295 | pressure |
|
|
296 | humid |
|
|
297 | windspeed |
|
|
298 | winddir |
|
|
299 | sky |
|
|
300 | |
|
|
301 | map |
|
|
302 | savebed_map |
|
|
303 | bed_x |
|
|
304 | bed_y |
|
|
305 | password |
|
|
306 | shoottype |
|
|
307 | bowtype |
|
|
308 | petmode |
|
|
309 | gen_hp |
|
|
310 | gen_sp |
|
|
311 | gen_grace |
|
|
312 | listening |
|
|
313 | peaceful |
|
|
314 | digestion |
|
|
315 | pickup |
|
|
316 | outputs_sync |
|
|
317 | outputs_count |
|
|
318 | usekeys |
|
|
319 | unapply |
|
|
320 | weapon_sp |
|
|
321 | lev_array |
|
|
322 | endplst |
261 | ); |
323 | ); |
262 | |
324 | |
263 | open GPERF, "|-", "gperf -m50 >kw_hash.h" |
325 | open GPERF, "|-", "exec $ARG{GPERF} -m50 >kw_hash.h" |
264 | or die "gperf: $!"; |
326 | or die "$ARGV{GPERF}: $!"; |
265 | |
327 | |
266 | print GPERF <<EOF; |
328 | print GPERF <<EOF; |
267 | %language=C++ |
329 | %language=C++ |
268 | %enum |
330 | %enum |
269 | %define class-name kw_lex |
331 | %define class-name kw_lex |
… | |
… | |
293 | print GPERF "};\n"; |
355 | print GPERF "};\n"; |
294 | |
356 | |
295 | printf GPERF "\nextern const unsigned char keyword_len [] = { 5, 7, %s };\n\n", |
357 | printf GPERF "\nextern const unsigned char keyword_len [] = { 5, 7, %s };\n\n", |
296 | join ", ", map length, @kw; |
358 | join ", ", map length, @kw; |
297 | |
359 | |
|
|
360 | close GPERF |
|
|
361 | or die "$ARG{GPERF}: failed to run"; |
|
|
362 | |
298 | open KW, ">", "keyword.h"; |
363 | open KW, ">", "keyword.h"; |
299 | |
364 | |
300 | print KW <<EOF; |
365 | print KW <<EOF; |
301 | #ifndef KW_H__ |
366 | #ifndef KW_H__ |
302 | #define KW_H__ |
367 | #define KW_H__ |