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.11 by root, Sun Jan 7 02:39:14 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
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 shoottype
305 bowtype
306 petmode
307 gen_hp
308 gen_sp
309 gen_grace
310 listening
311 peaceful
312 digestion
313 pickup
314 outputs_sync
315 outputs_count
316 usekeys
317 unapply
318 weapon_sp
319 lev_array
320 endplst
238); 321);
239 322
240open GPERF, "|-", "gperf -m50 >kw_hash.h" 323open GPERF, "|-", "exec $ARG{GPERF} -m50 >kw_hash.h"
241 or die "gperf: $!"; 324 or die "$ARGV{GPERF}: $!";
242 325
243print GPERF <<EOF; 326print GPERF <<EOF;
244%language=C++ 327%language=C++
245%enum 328%enum
246%define class-name kw_lex 329%define class-name kw_lex
251struct keyword_idx { const char *name; enum keyword index; }; 334struct keyword_idx { const char *name; enum keyword index; };
252%% 335%%
253EOF 336EOF
254 337
255for (@kw) { 338for (@kw) {
256 printf GPERF "%s,%s\n", $_, "KW_" . uc; 339 printf GPERF "%s,%s\n", $_, "KW_$_";
257} 340}
258 341
259print GPERF <<EOF; 342print GPERF <<EOF;
260%% 343%%
261const char *const keyword_str [] = { 344extern const char *const keyword_str [] = {
262 "<EOF>", 345 "<EOF>",
263 "<ERROR>", 346 "<ERROR>",
264EOF 347EOF
265 348
266for (@kw) { 349for (@kw) {
267 printf GPERF " \"%s\",\n", $_; 350 printf GPERF " \"%s\",\n", $_;
268} 351}
269 352
270print GPERF "};\n\n"; 353print GPERF "};\n";
354
355printf GPERF "\nextern const unsigned char keyword_len [] = { 5, 7, %s };\n\n",
356 join ", ", map length, @kw;
357
358close GPERF
359 or die "$ARG{GPERF}: failed to run";
271 360
272open KW, ">", "keyword.h"; 361open KW, ">", "keyword.h";
273 362
274print KW <<EOF; 363print KW <<EOF;
275#ifndef KW_H__ 364#ifndef KW_H__
276#define KW_H__ 365#define KW_H__
277 366
278enum keyword { 367enum keyword {
279 KW_eof, KW_error, 368 KW_NULL = 0,
369 KW_EOF = 0,
370 KW_ERROR,
280EOF 371EOF
281 372
282for (@kw) { 373for (@kw) {
283 printf KW " %s,\n", "KW_" . uc; 374 printf KW " %s,\n", "KW_$_",
284} 375}
285 376
286print KW <<EOF; 377print KW <<EOF;
287 NUM_KEYWORD, 378 NUM_KEYWORD,
288}; 379};
289 380
290extern const char *const keyword_str []; 381extern const char *const keyword_str [];
382extern const unsigned char keyword_len [];
383
384EOF
385
386printf KW "#define MAX_KEYWORD_LEN %d\n", List::Util::max map length, @kw;
387
388print KW <<EOF;
291 389
292#endif 390#endif
293 391
294EOF 392EOF
295 393

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines