ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/include/preprocess
(Generate patch)

Comparing deliantra/server/include/preprocess (file contents):
Revision 1.2 by root, Thu Aug 31 09:19:34 2006 UTC vs.
Revision 1.16 by root, Tue Feb 6 13:21:29 2007 UTC

1#!/opt/bin/perl 1#!/opt/bin/perl
2
3my %ARG = @ARGV;
4
5use List::Util;
2 6
3# todo: gather dynamically 7# todo: gather dynamically
4my @kw = qw( 8my @kw = qw(
9 no_pass
10 walk_on
11 walk_off
12 fly_on
13 fly_off
14 flying
15
5 ac 16 ac
6 activate_on_push 17 activate_on_push
7 activate_on_release 18 activate_on_release
8 alive 19 alive
9 anim_speed 20 anim_speed
57 cursed 68 cursed
58 custom_name 69 custom_name
59 dam 70 dam
60 dam_modifier 71 dam_modifier
61 damned 72 damned
73 destroy_on_death
62 dex 74 dex
63 direction 75 direction
64 duration 76 duration
65 duration_modifier 77 duration_modifier
66 editable 78 editable
83 has_ready_rod 95 has_ready_rod
84 has_ready_scroll 96 has_ready_scroll
85 has_ready_skill 97 has_ready_skill
86 has_ready_wand 98 has_ready_wand
87 has_ready_weapon 99 has_ready_weapon
100 has_ready_range
88 hitback 101 hitback
89 hp 102 hp
90 identified 103 identified
91 immune 104 immune
92 int 105 int
94 invisible 107 invisible
95 is_animated 108 is_animated
96 is_blind 109 is_blind
97 is_buildable 110 is_buildable
98 is_cauldron 111 is_cauldron
112 is_dust
99 is_floor 113 is_floor
100 is_hilly 114 is_hilly
101 is_lightable 115 is_lightable
102 is_thrown 116 is_thrown
103 is_turnable 117 is_turnable
144 no_pick 158 no_pick
145 no_skill_ident 159 no_skill_ident
146 no_steal 160 no_steal
147 no_strength 161 no_strength
148 nrof 162 nrof
163 obj_original
149 object 164 object
150 oid 165 oid
151 one_hit 166 one_hit
152 only_attack 167 only_attack
153 other_arch 168 other_arch
155 path_attuned 170 path_attuned
156 path_denied 171 path_denied
157 path_repelled 172 path_repelled
158 perm_exp 173 perm_exp
159 pick_up 174 pick_up
175 player_sold
160 pow 176 pow
161 protected 177 protected
162 race 178 race
163 random_move 179 random_move
164 random_movement 180 random_movement
221 unaggressive 237 unaggressive
222 undead 238 undead
223 unique 239 unique
224 unpaid 240 unpaid
225 use_content_on_gen 241 use_content_on_gen
242 uuid
226 value 243 value
227 vulnerable 244 vulnerable
228 was_wiz 245 was_wiz
229 wc 246 wc
230 weapontype 247 weapontype
233 wis 250 wis
234 wiz 251 wiz
235 x 252 x
236 xrays 253 xrays
237 y 254 y
255
256 Object
257 Str
258 Dex
259 Con
260 Wis
261 Cha
262 Int
263 Pow
264 More
265
266 maplore
267 endmaplore
268 enter_x
269 enter_y
270 width
271 height
272 reset_timeout
273 reset_time
274 swap_time
275 difficulty
276 darkness
277 fixed_resettime
278 per_player
279 per_party
280 region
281 shopitems
282 shopgreed
283 shopmin
284 shopmax
285 shoprace
286 outdoor
287 tile_path_1
288 tile_path_2
289 tile_path_3
290 tile_path_4
291
292 file_format_version
293
294 temp
295 pressure
296 humid
297 windspeed
298 winddir
299 sky
300
301 map
302 savebed_map
303 bed_x
304 bed_y
305 password
306 shoottype
307 bowtype
308 petmode
309 gen_hp
310 gen_sp
311 gen_grace
312 listening
313 peaceful
314 digestion
315 pickup
316 outputs_sync
317 outputs_count
318 usekeys
319 unapply
320 weapon_sp
321 lev_array
322 endplst
323
324 color_fg
325 color_bg
326 visibility
327 magicmap
328
329 parent
330 longname
331 jail_map
332 jail_x
333 jail_y
334 fallback
335 nomore
336
337 chance
338 mods
339 diff
340 saves
341 description
342 density
343 damage
238); 344);
239 345
240open GPERF, "|-", "gperf -m50 >kw_hash.h" 346open GPERF, "|-", "exec $ARG{GPERF} -m50 >kw_hash.h"
241 or die "gperf: $!"; 347 or die "$ARGV{GPERF}: $!";
242 348
243print GPERF <<EOF; 349print GPERF <<EOF;
244%language=C++ 350%language=C++
245%enum 351%enum
246%define class-name kw_lex 352%define class-name kw_lex
251struct keyword_idx { const char *name; enum keyword index; }; 357struct keyword_idx { const char *name; enum keyword index; };
252%% 358%%
253EOF 359EOF
254 360
255for (@kw) { 361for (@kw) {
256 printf GPERF "%s,%s\n", $_, "KW_" . uc; 362 printf GPERF "%s,%s\n", $_, "KW_$_";
257} 363}
258 364
259print GPERF <<EOF; 365print GPERF <<EOF;
260%% 366%%
261const char *const keyword_str [] = { 367extern const char *const keyword_str [] = {
262 "<EOF>", 368 "<EOF>",
263 "<ERROR>", 369 "<ERROR>",
264EOF 370EOF
265 371
266for (@kw) { 372for (@kw) {
267 printf GPERF " \"%s\",\n", $_; 373 printf GPERF " \"%s\",\n", $_;
268} 374}
269 375
270print GPERF "};\n\n"; 376print GPERF "};\n";
377
378printf GPERF "\nextern const unsigned char keyword_len [] = { 5, 7, %s };\n\n",
379 join ", ", map length, @kw;
380
381close GPERF
382 or die "$ARG{GPERF}: failed to run";
271 383
272open KW, ">", "keyword.h"; 384open KW, ">", "keyword.h";
273 385
274print KW <<EOF; 386print KW <<EOF;
275#ifndef KW_H__ 387#ifndef KW_H__
276#define KW_H__ 388#define KW_H__
277 389
278enum keyword { 390enum keyword {
279 KW_eof, KW_error, 391 KW_NULL = 0,
392 KW_EOF = 0,
393 KW_ERROR,
280EOF 394EOF
281 395
282for (@kw) { 396for (@kw) {
283 printf KW " %s,\n", "KW_" . uc; 397 printf KW " %s,\n", "KW_$_",
284} 398}
285 399
286print KW <<EOF; 400print KW <<EOF;
287 NUM_KEYWORD, 401 NUM_KEYWORD,
288}; 402};
289 403
290extern const char *const keyword_str []; 404extern const char *const keyword_str [];
405extern const unsigned char keyword_len [];
406
407EOF
408
409printf KW "#define MAX_KEYWORD_LEN %d\n", List::Util::max map length, @kw;
410
411print KW <<EOF;
291 412
292#endif 413#endif
293 414
294EOF 415EOF
295 416

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines