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

# User Rev Content
1 root 1.1 #!/opt/bin/perl
2    
3 root 1.8 my %ARG = @ARGV;
4    
5 root 1.3 use List::Util;
6    
7 root 1.1 # todo: gather dynamically
8     my @kw = qw(
9 root 1.4 no_pass
10     walk_on
11     walk_off
12     fly_on
13     fly_off
14     flying
15    
16 root 1.1 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 root 1.12 destroy_on_death
74 root 1.1 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 root 1.7 has_ready_range
101 root 1.1 hitback
102     hp
103     identified
104     immune
105 root 1.23 inherit
106 root 1.1 int
107     inv_locked
108     invisible
109     is_animated
110     is_blind
111     is_buildable
112     is_cauldron
113 root 1.7 is_dust
114 root 1.1 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 root 1.13 obj_original
165 root 1.1 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 root 1.7 player_sold
177 root 1.1 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 root 1.6 uuid
243 root 1.1 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 root 1.5
256 root 1.9 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 root 1.10
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 root 1.14
314     visibility
315     magicmap
316    
317 root 1.21 match
318 root 1.14 parent
319     longname
320 root 1.15 jail_map
321     jail_x
322     jail_y
323 root 1.14 fallback
324     nomore
325 root 1.16
326     chance
327     mods
328     diff
329     saves
330     description
331     density
332     damage
333 root 1.17
334     anim
335     mina
336     facings
337 root 1.18 player
338 root 1.19
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 root 1.22
354     treasure
355     treasureone
356     list
357     change_name
358     change_title
359     change_slaying
360     yes
361     no
362 root 1.1 );
363    
364 root 1.8 open GPERF, "|-", "exec $ARG{GPERF} -m50 >kw_hash.h"
365     or die "$ARGV{GPERF}: $!";
366 root 1.1
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 root 1.2 struct keyword_idx { const char *name; enum keyword index; };
376 root 1.1 %%
377     EOF
378    
379     for (@kw) {
380 root 1.3 printf GPERF "%s,%s\n", $_, "KW_$_";
381 root 1.1 }
382    
383     print GPERF <<EOF;
384     %%
385 root 1.3 extern const char *const keyword_str [] = {
386 root 1.1 "<EOF>",
387     "<ERROR>",
388     EOF
389    
390     for (@kw) {
391     printf GPERF " \"%s\",\n", $_;
392     }
393    
394 root 1.3 print GPERF "};\n";
395    
396     printf GPERF "\nextern const unsigned char keyword_len [] = { 5, 7, %s };\n\n",
397     join ", ", map length, @kw;
398 root 1.1
399 root 1.8 close GPERF
400     or die "$ARG{GPERF}: failed to run";
401    
402 root 1.1 open KW, ">", "keyword.h";
403    
404     print KW <<EOF;
405     #ifndef KW_H__
406     #define KW_H__
407    
408     enum keyword {
409 root 1.7 KW_NULL = 0,
410     KW_EOF = 0,
411     KW_ERROR,
412 root 1.1 EOF
413    
414     for (@kw) {
415 root 1.3 printf KW " %s,\n", "KW_$_",
416 root 1.1 }
417    
418     print KW <<EOF;
419     NUM_KEYWORD,
420     };
421    
422     extern const char *const keyword_str [];
423 root 1.3 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 root 1.1
431     #endif
432    
433     EOF
434