ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/include/preprocess
Revision: 1.23
Committed: Tue Apr 17 18:59:06 2007 UTC (17 years, 1 month ago) by root
Branch: MAIN
Changes since 1.22: +1 -0 lines
Log Message:
parse_kv now behaves like other parse functions

File Contents

# Content
1 #!/opt/bin/perl
2
3 my %ARG = @ARGV;
4
5 use List::Util;
6
7 # todo: gather dynamically
8 my @kw = qw(
9 no_pass
10 walk_on
11 walk_off
12 fly_on
13 fly_off
14 flying
15
16 ac
17 activate_on_push
18 activate_on_release
19 alive
20 anim_speed
21 animation
22 applied
23 arch
24 armour
25 attach
26 attack_movement
27 attacktype
28 auto_apply
29 been_applied
30 berserk
31 blocksview
32 body_range
33 body_arm
34 body_torso
35 body_head
36 body_neck
37 body_skill
38 body_finger
39 body_shoulder
40 body_foot
41 body_hand
42 body_wrist
43 body_waist
44 can_apply
45 can_cast_spell
46 can_roll
47 can_see_in_dark
48 can_use_armour
49 can_use_bow
50 can_use_horn
51 can_use_range
52 can_use_ring
53 can_use_rod
54 can_use_scroll
55 can_use_shield
56 can_use_skill
57 can_use_wand
58 can_use_weapon
59 carrying
60 casting_time
61 cha
62 changing
63 client_type
64 con
65 confused
66 connected
67 container
68 cursed
69 custom_name
70 dam
71 dam_modifier
72 damned
73 destroy_on_death
74 dex
75 direction
76 duration
77 duration_modifier
78 editable
79 editor_folder
80 elevation
81 end
82 endlore
83 endmsg
84 exp
85 expmul
86 face
87 food
88 friendly
89 gen_sp_armour
90 generator
91 glow_radius
92 grace
93 has_ready_bow
94 has_ready_horn
95 has_ready_rod
96 has_ready_scroll
97 has_ready_skill
98 has_ready_wand
99 has_ready_weapon
100 has_ready_range
101 hitback
102 hp
103 identified
104 immune
105 inherit
106 int
107 inv_locked
108 invisible
109 is_animated
110 is_blind
111 is_buildable
112 is_cauldron
113 is_dust
114 is_floor
115 is_hilly
116 is_lightable
117 is_thrown
118 is_turnable
119 is_used_up
120 is_water
121 is_wooded
122 item_power
123 known_cursed
124 known_magical
125 last_eat
126 last_grace
127 last_heal
128 last_sp
129 level
130 lifesave
131 lore
132 luck
133 magic
134 make_invisible
135 material
136 materialname
137 maxgrace
138 maxhp
139 maxsp
140 monster
141 more
142 move_allow
143 move_block
144 move_off
145 move_on
146 move_slow
147 move_slow_penalty
148 move_state
149 move_type
150 msg
151 name
152 name_pl
153 neutral
154 no_attack
155 no_damage
156 no_drop
157 no_fix_player
158 no_magic
159 no_pick
160 no_skill_ident
161 no_steal
162 no_strength
163 nrof
164 obj_original
165 object
166 oid
167 one_hit
168 only_attack
169 other_arch
170 overlay_floor
171 path_attuned
172 path_denied
173 path_repelled
174 perm_exp
175 pick_up
176 player_sold
177 pow
178 protected
179 race
180 random_move
181 random_movement
182 randomitems
183 range
184 range_modifier
185 reflect_missile
186 reflect_spell
187 reflecting
188 resist_acid
189 resist_blind
190 resist_cancellation
191 resist_chaos
192 resist_cold
193 resist_confusion
194 resist_counterspell
195 resist_death
196 resist_deplete
197 resist_disease
198 resist_drain
199 resist_electricity
200 resist_fear
201 resist_fire
202 resist_ghosthit
203 resist_godpower
204 resist_holyword
205 resist_internal
206 resist_life_stealing
207 resist_magic
208 resist_paralyze
209 resist_physical
210 resist_poison
211 resist_slow
212 resist_turn_undead
213 resist_weaponmagic
214 run_away
215 scared
216 see_anywhere
217 see_invisible
218 skill
219 slaying
220 sleep
221 slow_move
222 smoothlevel
223 sp
224 speed
225 speed_left
226 splitting
227 stand_still
228 startequip
229 state
230 stealth
231 str
232 subtype
233 tear_down
234 title
235 tooltype
236 type
237 unaggressive
238 undead
239 unique
240 unpaid
241 use_content_on_gen
242 uuid
243 value
244 vulnerable
245 was_wiz
246 wc
247 weapontype
248 weight
249 will_apply
250 wis
251 wiz
252 x
253 xrays
254 y
255
256 maplore
257 endmaplore
258 enter_x
259 enter_y
260 width
261 height
262 reset_timeout
263 reset_time
264 swap_time
265 difficulty
266 darkness
267 fixed_resettime
268 per_player
269 per_party
270 region
271 shopitems
272 shopgreed
273 shopmin
274 shopmax
275 shoprace
276 outdoor
277 tile_path_1
278 tile_path_2
279 tile_path_3
280 tile_path_4
281
282 file_format_version
283
284 temp
285 pressure
286 humid
287 windspeed
288 winddir
289 sky
290
291 map
292 savebed_map
293 bed_x
294 bed_y
295 password
296 shoottype
297 bowtype
298 petmode
299 gen_hp
300 gen_sp
301 gen_grace
302 listening
303 peaceful
304 digestion
305 pickup
306 outputs_sync
307 outputs_count
308 usekeys
309 unapply
310 weapon_sp
311 lev_array
312 endplst
313
314 visibility
315 magicmap
316
317 match
318 parent
319 longname
320 jail_map
321 jail_x
322 jail_y
323 fallback
324 nomore
325
326 chance
327 mods
328 diff
329 saves
330 description
331 density
332 damage
333
334 anim
335 mina
336 facings
337 player
338
339 allowed
340 keycode
341 trans
342 yield
343 ingred
344 cauldron
345
346 Str
347 Dex
348 Con
349 Wis
350 Cha
351 Int
352 Pow
353
354 treasure
355 treasureone
356 list
357 change_name
358 change_title
359 change_slaying
360 yes
361 no
362 );
363
364 open GPERF, "|-", "exec $ARG{GPERF} -m50 >kw_hash.h"
365 or die "$ARGV{GPERF}: $!";
366
367 print GPERF <<EOF;
368 %language=C++
369 %enum
370 %define class-name kw_lex
371 %define lookup-function-name match
372 %struct-type
373 %compare-strncmp
374 %delimiters=,
375 struct keyword_idx { const char *name; enum keyword index; };
376 %%
377 EOF
378
379 for (@kw) {
380 printf GPERF "%s,%s\n", $_, "KW_$_";
381 }
382
383 print GPERF <<EOF;
384 %%
385 extern const char *const keyword_str [] = {
386 "<EOF>",
387 "<ERROR>",
388 EOF
389
390 for (@kw) {
391 printf GPERF " \"%s\",\n", $_;
392 }
393
394 print GPERF "};\n";
395
396 printf GPERF "\nextern const unsigned char keyword_len [] = { 5, 7, %s };\n\n",
397 join ", ", map length, @kw;
398
399 close GPERF
400 or die "$ARG{GPERF}: failed to run";
401
402 open KW, ">", "keyword.h";
403
404 print KW <<EOF;
405 #ifndef KW_H__
406 #define KW_H__
407
408 enum keyword {
409 KW_NULL = 0,
410 KW_EOF = 0,
411 KW_ERROR,
412 EOF
413
414 for (@kw) {
415 printf KW " %s,\n", "KW_$_",
416 }
417
418 print KW <<EOF;
419 NUM_KEYWORD,
420 };
421
422 extern const char *const keyword_str [];
423 extern const unsigned char keyword_len [];
424
425 EOF
426
427 printf KW "#define MAX_KEYWORD_LEN %d\n", List::Util::max map length, @kw;
428
429 print KW <<EOF;
430
431 #endif
432
433 EOF
434