ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/include/preprocess
Revision: 1.22
Committed: Mon Apr 16 10:14:25 2007 UTC (17 years, 1 month ago) by root
Branch: MAIN
Changes since 1.21: +9 -1 lines
Log Message:
- rewrite treasure parser to new framework just for fun.
- actually call load_treasures again.
- fix bugs.

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     int
106     inv_locked
107     invisible
108     is_animated
109     is_blind
110     is_buildable
111     is_cauldron
112 root 1.7 is_dust
113 root 1.1 is_floor
114     is_hilly
115     is_lightable
116     is_thrown
117     is_turnable
118     is_used_up
119     is_water
120     is_wooded
121     item_power
122     known_cursed
123     known_magical
124     last_eat
125     last_grace
126     last_heal
127     last_sp
128     level
129     lifesave
130     lore
131     luck
132     magic
133     make_invisible
134     material
135     materialname
136     maxgrace
137     maxhp
138     maxsp
139     monster
140     more
141     move_allow
142     move_block
143     move_off
144     move_on
145     move_slow
146     move_slow_penalty
147     move_state
148     move_type
149     msg
150     name
151     name_pl
152     neutral
153     no_attack
154     no_damage
155     no_drop
156     no_fix_player
157     no_magic
158     no_pick
159     no_skill_ident
160     no_steal
161     no_strength
162     nrof
163 root 1.13 obj_original
164 root 1.1 object
165     oid
166     one_hit
167     only_attack
168     other_arch
169     overlay_floor
170     path_attuned
171     path_denied
172     path_repelled
173     perm_exp
174     pick_up
175 root 1.7 player_sold
176 root 1.1 pow
177     protected
178     race
179     random_move
180     random_movement
181     randomitems
182     range
183     range_modifier
184     reflect_missile
185     reflect_spell
186     reflecting
187     resist_acid
188     resist_blind
189     resist_cancellation
190     resist_chaos
191     resist_cold
192     resist_confusion
193     resist_counterspell
194     resist_death
195     resist_deplete
196     resist_disease
197     resist_drain
198     resist_electricity
199     resist_fear
200     resist_fire
201     resist_ghosthit
202     resist_godpower
203     resist_holyword
204     resist_internal
205     resist_life_stealing
206     resist_magic
207     resist_paralyze
208     resist_physical
209     resist_poison
210     resist_slow
211     resist_turn_undead
212     resist_weaponmagic
213     run_away
214     scared
215     see_anywhere
216     see_invisible
217     skill
218     slaying
219     sleep
220     slow_move
221     smoothlevel
222     sp
223     speed
224     speed_left
225     splitting
226     stand_still
227     startequip
228     state
229     stealth
230     str
231     subtype
232     tear_down
233     title
234     tooltype
235     type
236     unaggressive
237     undead
238     unique
239     unpaid
240     use_content_on_gen
241 root 1.6 uuid
242 root 1.1 value
243     vulnerable
244     was_wiz
245     wc
246     weapontype
247     weight
248     will_apply
249     wis
250     wiz
251     x
252     xrays
253     y
254 root 1.5
255 root 1.9 maplore
256     endmaplore
257     enter_x
258     enter_y
259     width
260     height
261     reset_timeout
262     reset_time
263     swap_time
264     difficulty
265     darkness
266     fixed_resettime
267     per_player
268     per_party
269     region
270     shopitems
271     shopgreed
272     shopmin
273     shopmax
274     shoprace
275     outdoor
276     tile_path_1
277     tile_path_2
278     tile_path_3
279     tile_path_4
280    
281     file_format_version
282    
283     temp
284     pressure
285     humid
286     windspeed
287     winddir
288     sky
289 root 1.10
290     map
291     savebed_map
292     bed_x
293     bed_y
294     password
295     shoottype
296     bowtype
297     petmode
298     gen_hp
299     gen_sp
300     gen_grace
301     listening
302     peaceful
303     digestion
304     pickup
305     outputs_sync
306     outputs_count
307     usekeys
308     unapply
309     weapon_sp
310     lev_array
311     endplst
312 root 1.14
313     visibility
314     magicmap
315    
316 root 1.21 match
317 root 1.14 parent
318     longname
319 root 1.15 jail_map
320     jail_x
321     jail_y
322 root 1.14 fallback
323     nomore
324 root 1.16
325     chance
326     mods
327     diff
328     saves
329     description
330     density
331     damage
332 root 1.17
333     anim
334     mina
335     facings
336 root 1.18 player
337 root 1.19
338     allowed
339     keycode
340     trans
341     yield
342     ingred
343     cauldron
344    
345     Str
346     Dex
347     Con
348     Wis
349     Cha
350     Int
351     Pow
352 root 1.22
353     treasure
354     treasureone
355     list
356     change_name
357     change_title
358     change_slaying
359     yes
360     no
361 root 1.1 );
362    
363 root 1.8 open GPERF, "|-", "exec $ARG{GPERF} -m50 >kw_hash.h"
364     or die "$ARGV{GPERF}: $!";
365 root 1.1
366     print GPERF <<EOF;
367     %language=C++
368     %enum
369     %define class-name kw_lex
370     %define lookup-function-name match
371     %struct-type
372     %compare-strncmp
373     %delimiters=,
374 root 1.2 struct keyword_idx { const char *name; enum keyword index; };
375 root 1.1 %%
376     EOF
377    
378     for (@kw) {
379 root 1.3 printf GPERF "%s,%s\n", $_, "KW_$_";
380 root 1.1 }
381    
382     print GPERF <<EOF;
383     %%
384 root 1.3 extern const char *const keyword_str [] = {
385 root 1.1 "<EOF>",
386     "<ERROR>",
387     EOF
388    
389     for (@kw) {
390     printf GPERF " \"%s\",\n", $_;
391     }
392    
393 root 1.3 print GPERF "};\n";
394    
395     printf GPERF "\nextern const unsigned char keyword_len [] = { 5, 7, %s };\n\n",
396     join ", ", map length, @kw;
397 root 1.1
398 root 1.8 close GPERF
399     or die "$ARG{GPERF}: failed to run";
400    
401 root 1.1 open KW, ">", "keyword.h";
402    
403     print KW <<EOF;
404     #ifndef KW_H__
405     #define KW_H__
406    
407     enum keyword {
408 root 1.7 KW_NULL = 0,
409     KW_EOF = 0,
410     KW_ERROR,
411 root 1.1 EOF
412    
413     for (@kw) {
414 root 1.3 printf KW " %s,\n", "KW_$_",
415 root 1.1 }
416    
417     print KW <<EOF;
418     NUM_KEYWORD,
419     };
420    
421     extern const char *const keyword_str [];
422 root 1.3 extern const unsigned char keyword_len [];
423    
424     EOF
425    
426     printf KW "#define MAX_KEYWORD_LEN %d\n", List::Util::max map length, @kw;
427    
428     print KW <<EOF;
429 root 1.1
430     #endif
431    
432     EOF
433