1 | #!/opt/bin/perl |
1 | #!/opt/bin/perl |
|
|
2 | # |
|
|
3 | # This file is part of Deliantra, the Roguelike Realtime MMORPG. |
|
|
4 | # |
|
|
5 | # Copyright (©) 2005,2006,2007,2008,2009,2016 Marc Alexander Lehmann / Robin Redeker / the Deliantra team |
|
|
6 | # |
|
|
7 | # Deliantra is free software: you can redistribute it and/or modify it under |
|
|
8 | # the terms of the Affero GNU General Public License as published by the |
|
|
9 | # Free Software Foundation, either version 3 of the License, or (at your |
|
|
10 | # option) any later version. |
|
|
11 | # |
|
|
12 | # This program is distributed in the hope that it will be useful, |
|
|
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
|
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
|
15 | # GNU General Public License for more details. |
|
|
16 | # |
|
|
17 | # You should have received a copy of the Affero GNU General Public License |
|
|
18 | # and the GNU General Public License along with this program. If not, see |
|
|
19 | # <http://www.gnu.org/licenses/>. |
|
|
20 | # |
|
|
21 | # The authors can be reached via e-mail to <support@deliantra.net> |
|
|
22 | # |
2 | |
23 | |
3 | my %ARG = @ARGV; |
24 | my %ARG = @ARGV; |
4 | |
25 | |
5 | use List::Util; |
26 | use List::Util; |
6 | |
27 | |
7 | # todo: gather dynamically |
28 | # todo: gather dynamically |
8 | my @kw = qw( |
29 | my @kw = qw( |
9 | no_pass |
30 | gender |
10 | walk_on |
31 | hintmode |
11 | walk_off |
|
|
12 | fly_on |
|
|
13 | fly_off |
|
|
14 | flying |
|
|
15 | |
|
|
16 | attack_skill |
32 | attack_skill |
17 | ranged_skill |
33 | ranged_skill |
18 | |
34 | |
19 | ac |
35 | ac |
20 | activate_on_push |
36 | activate_on_push |
… | |
… | |
112 | is_blind |
128 | is_blind |
113 | is_buildable |
129 | is_buildable |
114 | is_cauldron |
130 | is_cauldron |
115 | is_dust |
131 | is_dust |
116 | is_floor |
132 | is_floor |
|
|
133 | is_transparent_floor |
117 | is_hilly |
134 | is_hilly |
118 | is_lightable |
135 | is_lightable |
119 | is_thrown |
136 | is_thrown |
120 | is_turnable |
137 | is_turnable |
121 | is_used_up |
138 | is_used_up |
… | |
… | |
154 | name_pl |
171 | name_pl |
155 | neutral |
172 | neutral |
156 | no_attack |
173 | no_attack |
157 | no_damage |
174 | no_damage |
158 | no_drop |
175 | no_drop |
159 | no_fix_player |
|
|
160 | no_magic |
176 | no_magic |
161 | no_pick |
177 | no_pick |
162 | no_skill_ident |
178 | no_skill_ident |
163 | no_steal |
179 | no_steal |
164 | no_strength |
180 | no_strength |
… | |
… | |
168 | oid |
184 | oid |
169 | one_hit |
185 | one_hit |
170 | only_attack |
186 | only_attack |
171 | other_arch |
187 | other_arch |
172 | overlay_floor |
188 | overlay_floor |
|
|
189 | owner |
173 | path_attuned |
190 | path_attuned |
174 | path_denied |
191 | path_denied |
175 | path_repelled |
192 | path_repelled |
176 | perm_exp |
193 | perm_exp |
177 | pick_up |
194 | pick_up |
178 | player_sold |
195 | player_sold |
179 | pow |
196 | pow |
180 | precious |
197 | precious |
181 | protected |
198 | protected |
|
|
199 | is_quad |
182 | race |
200 | race |
183 | random_move |
201 | random_move |
184 | random_movement |
202 | random_movement |
|
|
203 | random_speed |
185 | randomitems |
204 | randomitems |
186 | range |
205 | range |
187 | range_modifier |
206 | range_modifier |
188 | reflect_missile |
207 | reflect_missile |
189 | reflect_spell |
208 | reflect_spell |
… | |
… | |
220 | see_invisible |
239 | see_invisible |
221 | skill |
240 | skill |
222 | slaying |
241 | slaying |
223 | sleep |
242 | sleep |
224 | slow_move |
243 | slow_move |
|
|
244 | sound |
|
|
245 | sound_destroy |
225 | smoothlevel |
246 | smoothlevel |
226 | sp |
247 | sp |
227 | speed |
248 | speed |
228 | speed_left |
249 | speed_left |
|
|
250 | sl |
229 | splitting |
251 | splitting |
230 | stand_still |
252 | stand_still |
231 | startequip |
253 | startequip |
232 | state |
254 | state |
233 | stealth |
255 | stealth |
234 | str |
256 | str |
235 | subtype |
257 | subtype |
|
|
258 | tag |
236 | tear_down |
259 | tear_down |
237 | title |
260 | title |
238 | tooltype |
|
|
239 | treasure_env |
261 | treasure_env |
240 | type |
262 | type |
241 | unaggressive |
263 | unaggressive |
242 | undead |
264 | undead |
243 | unique |
265 | unique |
… | |
… | |
267 | difficulty |
289 | difficulty |
268 | darkness |
290 | darkness |
269 | fixed_resettime |
291 | fixed_resettime |
270 | per_player |
292 | per_player |
271 | per_party |
293 | per_party |
|
|
294 | no_reset |
272 | region |
295 | region |
273 | shopitems |
296 | shopitems |
274 | shopgreed |
297 | shopgreed |
275 | shopmin |
298 | shopmin |
276 | shopmax |
299 | shopmax |
… | |
… | |
278 | outdoor |
301 | outdoor |
279 | tile_path_1 |
302 | tile_path_1 |
280 | tile_path_2 |
303 | tile_path_2 |
281 | tile_path_3 |
304 | tile_path_3 |
282 | tile_path_4 |
305 | tile_path_4 |
|
|
306 | tile_path_5 |
|
|
307 | tile_path_6 |
283 | |
308 | |
284 | file_format_version |
309 | file_format_version |
285 | |
|
|
286 | temp |
|
|
287 | pressure |
|
|
288 | humid |
|
|
289 | windspeed |
|
|
290 | winddir |
|
|
291 | sky |
|
|
292 | |
310 | |
293 | map |
311 | map |
294 | savebed_map |
312 | savebed_map |
295 | bed_x |
313 | bed_x |
296 | bed_y |
314 | bed_y |
… | |
… | |
314 | endplst |
332 | endplst |
315 | |
333 | |
316 | visibility |
334 | visibility |
317 | magicmap |
335 | magicmap |
318 | |
336 | |
319 | match |
|
|
320 | parent |
337 | parent |
321 | longname |
338 | longname |
322 | jail_map |
339 | jail_map |
323 | jail_x |
340 | jail_x |
324 | jail_y |
341 | jail_y |
325 | portal_map |
342 | portal_map |
326 | portal_x |
|
|
327 | portal_y |
|
|
328 | fallback |
343 | fallback |
329 | nomore |
344 | nomore |
330 | |
345 | |
331 | chance |
346 | chance |
332 | mods |
347 | mods |
… | |
… | |
362 | change_name |
377 | change_name |
363 | change_title |
378 | change_title |
364 | change_slaying |
379 | change_slaying |
365 | yes |
380 | yes |
366 | no |
381 | no |
|
|
382 | |
|
|
383 | max_level |
|
|
384 | |
|
|
385 | authour |
|
|
386 | size |
|
|
387 | index |
367 | ); |
388 | ); |
368 | |
389 | |
369 | open GPERF, "|-", "exec $ARG{GPERF} -m50 >kw_hash.h" |
390 | open GPERF, "|-", "exec $ARG{GPERF} -m50 >include/kw_hash.h" |
370 | or die "$ARGV{GPERF}: $!"; |
391 | or die "$ARGV{GPERF}: $!"; |
371 | |
392 | |
372 | print GPERF <<EOF; |
393 | print GPERF <<EOF; |
373 | %language=C++ |
394 | %language=C++ |
374 | %enum |
395 | %enum |
… | |
… | |
402 | join ", ", map length, @kw; |
423 | join ", ", map length, @kw; |
403 | |
424 | |
404 | close GPERF |
425 | close GPERF |
405 | or die "$ARG{GPERF}: failed to run"; |
426 | or die "$ARG{GPERF}: failed to run"; |
406 | |
427 | |
407 | open KW, ">", "keyword.h"; |
428 | open KW, ">", "include/keyword.h"; |
408 | |
429 | |
409 | print KW <<EOF; |
430 | print KW <<EOF; |
410 | // |
431 | // |
411 | // AUTOGENERATED: this is a generated file |
432 | // AUTOGENERATED: this is a generated file |
412 | // edit include/genkeywords instead |
433 | // edit include/genkeywords instead |