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.1 by root, Thu Aug 31 06:23:19 2006 UTC vs.
Revision 1.17 by root, Fri Feb 9 01:52:10 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
344
345 anim
346 mina
347 facings
238); 348);
239 349
240open GPERF, "|-", "gperf -m50 >kw_hash.h" 350open GPERF, "|-", "exec $ARG{GPERF} -m50 >kw_hash.h"
241 or die "gperf: $!"; 351 or die "$ARGV{GPERF}: $!";
242 352
243print GPERF <<EOF; 353print GPERF <<EOF;
244%language=C++ 354%language=C++
245%enum 355%enum
246%define class-name kw_lex 356%define class-name kw_lex
247%define lookup-function-name match 357%define lookup-function-name match
248%struct-type 358%struct-type
249%compare-strncmp 359%compare-strncmp
250%delimiters=, 360%delimiters=,
251struct kw { const char *name; enum kw index; }; 361struct keyword_idx { const char *name; enum keyword index; };
252%% 362%%
253EOF 363EOF
254 364
255for (@kw) { 365for (@kw) {
256 printf GPERF "%s,%s\n", $_, "KW_" . uc; 366 printf GPERF "%s,%s\n", $_, "KW_$_";
257} 367}
258 368
259print GPERF <<EOF; 369print GPERF <<EOF;
260%% 370%%
261const char *const keyword_str [] = { 371extern const char *const keyword_str [] = {
262 "<EOF>", 372 "<EOF>",
263 "<ERROR>", 373 "<ERROR>",
264EOF 374EOF
265 375
266for (@kw) { 376for (@kw) {
267 printf GPERF " \"%s\",\n", $_; 377 printf GPERF " \"%s\",\n", $_;
268} 378}
269 379
270print GPERF "};\n\n"; 380print GPERF "};\n";
381
382printf GPERF "\nextern const unsigned char keyword_len [] = { 5, 7, %s };\n\n",
383 join ", ", map length, @kw;
384
385close GPERF
386 or die "$ARG{GPERF}: failed to run";
271 387
272open KW, ">", "keyword.h"; 388open KW, ">", "keyword.h";
273 389
274print KW <<EOF; 390print KW <<EOF;
275#ifndef KW_H__ 391#ifndef KW_H__
276#define KW_H__ 392#define KW_H__
277 393
278enum keyword { 394enum keyword {
279 KW_eof, KW_error, 395 KW_NULL = 0,
396 KW_EOF = 0,
397 KW_ERROR,
280EOF 398EOF
281 399
282for (@kw) { 400for (@kw) {
283 printf KW " %s,\n", "KW_" . uc; 401 printf KW " %s,\n", "KW_$_",
284} 402}
285 403
286print KW <<EOF; 404print KW <<EOF;
287 NUM_KEYWORD, 405 NUM_KEYWORD,
288}; 406};
289 407
290extern const char *const keyword_str []; 408extern const char *const keyword_str [];
409extern const unsigned char keyword_len [];
410
411EOF
412
413printf KW "#define MAX_KEYWORD_LEN %d\n", List::Util::max map length, @kw;
414
415print KW <<EOF;
291 416
292#endif 417#endif
293 418
294EOF 419EOF
295 420

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines