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 |
|
|
10 | walk_on |
|
|
11 | walk_off |
|
|
12 | fly_on |
|
|
13 | fly_off |
|
|
14 | flying |
|
|
15 | |
|
|
16 | gender |
30 | gender |
|
|
31 | hintmode |
17 | attack_skill |
32 | attack_skill |
18 | ranged_skill |
33 | ranged_skill |
19 | |
34 | |
20 | ac |
35 | ac |
21 | activate_on_push |
36 | activate_on_push |
… | |
… | |
113 | is_blind |
128 | is_blind |
114 | is_buildable |
129 | is_buildable |
115 | is_cauldron |
130 | is_cauldron |
116 | is_dust |
131 | is_dust |
117 | is_floor |
132 | is_floor |
|
|
133 | is_transparent_floor |
118 | is_hilly |
134 | is_hilly |
119 | is_lightable |
135 | is_lightable |
120 | is_thrown |
136 | is_thrown |
121 | is_turnable |
137 | is_turnable |
122 | is_used_up |
138 | is_used_up |
… | |
… | |
155 | name_pl |
171 | name_pl |
156 | neutral |
172 | neutral |
157 | no_attack |
173 | no_attack |
158 | no_damage |
174 | no_damage |
159 | no_drop |
175 | no_drop |
160 | no_fix_player |
|
|
161 | no_magic |
176 | no_magic |
162 | no_pick |
177 | no_pick |
163 | no_skill_ident |
178 | no_skill_ident |
164 | no_steal |
179 | no_steal |
165 | no_strength |
180 | no_strength |
… | |
… | |
179 | pick_up |
194 | pick_up |
180 | player_sold |
195 | player_sold |
181 | pow |
196 | pow |
182 | precious |
197 | precious |
183 | protected |
198 | protected |
|
|
199 | is_quad |
184 | race |
200 | race |
185 | random_move |
201 | random_move |
186 | random_movement |
202 | random_movement |
|
|
203 | random_speed |
187 | randomitems |
204 | randomitems |
188 | range |
205 | range |
189 | range_modifier |
206 | range_modifier |
190 | reflect_missile |
207 | reflect_missile |
191 | reflect_spell |
208 | reflect_spell |
… | |
… | |
228 | sound_destroy |
245 | sound_destroy |
229 | smoothlevel |
246 | smoothlevel |
230 | sp |
247 | sp |
231 | speed |
248 | speed |
232 | speed_left |
249 | speed_left |
|
|
250 | sl |
233 | splitting |
251 | splitting |
234 | stand_still |
252 | stand_still |
235 | startequip |
253 | startequip |
236 | state |
254 | state |
237 | stealth |
255 | stealth |
238 | str |
256 | str |
239 | subtype |
257 | subtype |
240 | tag |
258 | tag |
241 | tear_down |
259 | tear_down |
242 | title |
260 | title |
243 | tooltype |
|
|
244 | treasure_env |
261 | treasure_env |
245 | type |
262 | type |
246 | unaggressive |
263 | unaggressive |
247 | undead |
264 | undead |
248 | unique |
265 | unique |
… | |
… | |
284 | outdoor |
301 | outdoor |
285 | tile_path_1 |
302 | tile_path_1 |
286 | tile_path_2 |
303 | tile_path_2 |
287 | tile_path_3 |
304 | tile_path_3 |
288 | tile_path_4 |
305 | tile_path_4 |
|
|
306 | tile_path_5 |
|
|
307 | tile_path_6 |
289 | |
308 | |
290 | file_format_version |
309 | file_format_version |
291 | |
|
|
292 | temp |
|
|
293 | pressure |
|
|
294 | humid |
|
|
295 | windspeed |
|
|
296 | winddir |
|
|
297 | sky |
|
|
298 | |
310 | |
299 | map |
311 | map |
300 | savebed_map |
312 | savebed_map |
301 | bed_x |
313 | bed_x |
302 | bed_y |
314 | bed_y |
… | |
… | |
326 | longname |
338 | longname |
327 | jail_map |
339 | jail_map |
328 | jail_x |
340 | jail_x |
329 | jail_y |
341 | jail_y |
330 | portal_map |
342 | portal_map |
331 | portal_x |
|
|
332 | portal_y |
|
|
333 | fallback |
343 | fallback |
334 | nomore |
344 | nomore |
335 | |
345 | |
336 | chance |
346 | chance |
337 | mods |
347 | mods |
… | |
… | |
367 | change_name |
377 | change_name |
368 | change_title |
378 | change_title |
369 | change_slaying |
379 | change_slaying |
370 | yes |
380 | yes |
371 | no |
381 | no |
|
|
382 | |
|
|
383 | max_level |
|
|
384 | |
|
|
385 | authour |
|
|
386 | size |
|
|
387 | index |
372 | ); |
388 | ); |
373 | |
389 | |
374 | open GPERF, "|-", "exec $ARG{GPERF} -m50 >kw_hash.h" |
390 | open GPERF, "|-", "exec $ARG{GPERF} -m50 >include/kw_hash.h" |
375 | or die "$ARGV{GPERF}: $!"; |
391 | or die "$ARGV{GPERF}: $!"; |
376 | |
392 | |
377 | print GPERF <<EOF; |
393 | print GPERF <<EOF; |
378 | %language=C++ |
394 | %language=C++ |
379 | %enum |
395 | %enum |
… | |
… | |
407 | join ", ", map length, @kw; |
423 | join ", ", map length, @kw; |
408 | |
424 | |
409 | close GPERF |
425 | close GPERF |
410 | or die "$ARG{GPERF}: failed to run"; |
426 | or die "$ARG{GPERF}: failed to run"; |
411 | |
427 | |
412 | open KW, ">", "keyword.h"; |
428 | open KW, ">", "include/keyword.h"; |
413 | |
429 | |
414 | print KW <<EOF; |
430 | print KW <<EOF; |
415 | // |
431 | // |
416 | // AUTOGENERATED: this is a generated file |
432 | // AUTOGENERATED: this is a generated file |
417 | // edit include/genkeywords instead |
433 | // edit include/genkeywords instead |