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.10 by root, Sun Dec 31 21:26:18 2006 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
83 has_ready_rod 94 has_ready_rod
84 has_ready_scroll 95 has_ready_scroll
85 has_ready_skill 96 has_ready_skill
86 has_ready_wand 97 has_ready_wand
87 has_ready_weapon 98 has_ready_weapon
99 has_ready_range
88 hitback 100 hitback
89 hp 101 hp
90 identified 102 identified
91 immune 103 immune
92 int 104 int
94 invisible 106 invisible
95 is_animated 107 is_animated
96 is_blind 108 is_blind
97 is_buildable 109 is_buildable
98 is_cauldron 110 is_cauldron
111 is_dust
99 is_floor 112 is_floor
100 is_hilly 113 is_hilly
101 is_lightable 114 is_lightable
102 is_thrown 115 is_thrown
103 is_turnable 116 is_turnable
155 path_attuned 168 path_attuned
156 path_denied 169 path_denied
157 path_repelled 170 path_repelled
158 perm_exp 171 perm_exp
159 pick_up 172 pick_up
173 player_sold
160 pow 174 pow
161 protected 175 protected
162 race 176 race
163 random_move 177 random_move
164 random_movement 178 random_movement
221 unaggressive 235 unaggressive
222 undead 236 undead
223 unique 237 unique
224 unpaid 238 unpaid
225 use_content_on_gen 239 use_content_on_gen
240 uuid
226 value 241 value
227 vulnerable 242 vulnerable
228 was_wiz 243 was_wiz
229 wc 244 wc
230 weapontype 245 weapontype
233 wis 248 wis
234 wiz 249 wiz
235 x 250 x
236 xrays 251 xrays
237 y 252 y
253
254 Object
255 Str
256 Dex
257 Con
258 Wis
259 Cha
260 Int
261 Pow
262 More
263
264 maplore
265 endmaplore
266 enter_x
267 enter_y
268 width
269 height
270 reset_timeout
271 reset_time
272 swap_time
273 difficulty
274 darkness
275 fixed_resettime
276 per_player
277 per_party
278 region
279 shopitems
280 shopgreed
281 shopmin
282 shopmax
283 shoprace
284 outdoor
285 tile_path_1
286 tile_path_2
287 tile_path_3
288 tile_path_4
289
290 file_format_version
291
292 temp
293 pressure
294 humid
295 windspeed
296 winddir
297 sky
298
299 map
300 savebed_map
301 bed_x
302 bed_y
303 password
304 explore
305 shoottype
306 bowtype
307 petmode
308 gen_hp
309 gen_sp
310 gen_grace
311 listening
312 peaceful
313 digestion
314 pickup
315 outputs_sync
316 outputs_count
317 usekeys
318 unapply
319 weapon_sp
320 lev_array
321 endplst
238); 322);
239 323
240open GPERF, "|-", "gperf -m50 >kw_hash.h" 324open GPERF, "|-", "exec $ARG{GPERF} -m50 >kw_hash.h"
241 or die "gperf: $!"; 325 or die "$ARGV{GPERF}: $!";
242 326
243print GPERF <<EOF; 327print GPERF <<EOF;
244%language=C++ 328%language=C++
245%enum 329%enum
246%define class-name kw_lex 330%define class-name kw_lex
247%define lookup-function-name match 331%define lookup-function-name match
248%struct-type 332%struct-type
249%compare-strncmp 333%compare-strncmp
250%delimiters=, 334%delimiters=,
251struct kw { const char *name; enum kw index; }; 335struct keyword_idx { const char *name; enum keyword index; };
252%% 336%%
253EOF 337EOF
254 338
255for (@kw) { 339for (@kw) {
256 printf GPERF "%s,%s\n", $_, "KW_" . uc; 340 printf GPERF "%s,%s\n", $_, "KW_$_";
257} 341}
258 342
259print GPERF <<EOF; 343print GPERF <<EOF;
260%% 344%%
261const char *const keyword_str [] = { 345extern const char *const keyword_str [] = {
262 "<EOF>", 346 "<EOF>",
263 "<ERROR>", 347 "<ERROR>",
264EOF 348EOF
265 349
266for (@kw) { 350for (@kw) {
267 printf GPERF " \"%s\",\n", $_; 351 printf GPERF " \"%s\",\n", $_;
268} 352}
269 353
270print GPERF "};\n\n"; 354print GPERF "};\n";
355
356printf GPERF "\nextern const unsigned char keyword_len [] = { 5, 7, %s };\n\n",
357 join ", ", map length, @kw;
358
359close GPERF
360 or die "$ARG{GPERF}: failed to run";
271 361
272open KW, ">", "keyword.h"; 362open KW, ">", "keyword.h";
273 363
274print KW <<EOF; 364print KW <<EOF;
275#ifndef KW_H__ 365#ifndef KW_H__
276#define KW_H__ 366#define KW_H__
277 367
278enum keyword { 368enum keyword {
279 KW_eof, KW_error, 369 KW_NULL = 0,
370 KW_EOF = 0,
371 KW_ERROR,
280EOF 372EOF
281 373
282for (@kw) { 374for (@kw) {
283 printf KW " %s,\n", "KW_" . uc; 375 printf KW " %s,\n", "KW_$_",
284} 376}
285 377
286print KW <<EOF; 378print KW <<EOF;
287 NUM_KEYWORD, 379 NUM_KEYWORD,
288}; 380};
289 381
290extern const char *const keyword_str []; 382extern const char *const keyword_str [];
383extern const unsigned char keyword_len [];
384
385EOF
386
387printf KW "#define MAX_KEYWORD_LEN %d\n", List::Util::max map length, @kw;
388
389print KW <<EOF;
291 390
292#endif 391#endif
293 392
294EOF 393EOF
295 394

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines