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.4 by root, Sun Sep 3 22:45:56 2006 UTC vs.
Revision 1.13 by root, Mon Jan 8 12:45:10 2007 UTC

1#!/opt/bin/perl 1#!/opt/bin/perl
2
3my %ARG = @ARGV;
2 4
3use List::Util; 5use List::Util;
4 6
5# todo: gather dynamically 7# todo: gather dynamically
6my @kw = qw( 8my @kw = qw(
66 cursed 68 cursed
67 custom_name 69 custom_name
68 dam 70 dam
69 dam_modifier 71 dam_modifier
70 damned 72 damned
73 destroy_on_death
71 dex 74 dex
72 direction 75 direction
73 duration 76 duration
74 duration_modifier 77 duration_modifier
75 editable 78 editable
92 has_ready_rod 95 has_ready_rod
93 has_ready_scroll 96 has_ready_scroll
94 has_ready_skill 97 has_ready_skill
95 has_ready_wand 98 has_ready_wand
96 has_ready_weapon 99 has_ready_weapon
100 has_ready_range
97 hitback 101 hitback
98 hp 102 hp
99 identified 103 identified
100 immune 104 immune
101 int 105 int
103 invisible 107 invisible
104 is_animated 108 is_animated
105 is_blind 109 is_blind
106 is_buildable 110 is_buildable
107 is_cauldron 111 is_cauldron
112 is_dust
108 is_floor 113 is_floor
109 is_hilly 114 is_hilly
110 is_lightable 115 is_lightable
111 is_thrown 116 is_thrown
112 is_turnable 117 is_turnable
153 no_pick 158 no_pick
154 no_skill_ident 159 no_skill_ident
155 no_steal 160 no_steal
156 no_strength 161 no_strength
157 nrof 162 nrof
163 obj_original
158 object 164 object
159 oid 165 oid
160 one_hit 166 one_hit
161 only_attack 167 only_attack
162 other_arch 168 other_arch
164 path_attuned 170 path_attuned
165 path_denied 171 path_denied
166 path_repelled 172 path_repelled
167 perm_exp 173 perm_exp
168 pick_up 174 pick_up
175 player_sold
169 pow 176 pow
170 protected 177 protected
171 race 178 race
172 random_move 179 random_move
173 random_movement 180 random_movement
230 unaggressive 237 unaggressive
231 undead 238 undead
232 unique 239 unique
233 unpaid 240 unpaid
234 use_content_on_gen 241 use_content_on_gen
242 uuid
235 value 243 value
236 vulnerable 244 vulnerable
237 was_wiz 245 was_wiz
238 wc 246 wc
239 weapontype 247 weapontype
242 wis 250 wis
243 wiz 251 wiz
244 x 252 x
245 xrays 253 xrays
246 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
247); 323);
248 324
249open GPERF, "|-", "gperf -m50 >kw_hash.h" 325open GPERF, "|-", "exec $ARG{GPERF} -m50 >kw_hash.h"
250 or die "gperf: $!"; 326 or die "$ARGV{GPERF}: $!";
251 327
252print GPERF <<EOF; 328print GPERF <<EOF;
253%language=C++ 329%language=C++
254%enum 330%enum
255%define class-name kw_lex 331%define class-name kw_lex
256%define lookup-function-name match 332%define lookup-function-name match
257%struct-type 333%struct-type
258%compare-strncmp 334%compare-strncmp
259%ignore-case
260%delimiters=, 335%delimiters=,
261struct keyword_idx { const char *name; enum keyword index; }; 336struct keyword_idx { const char *name; enum keyword index; };
262%% 337%%
263EOF 338EOF
264 339
280print GPERF "};\n"; 355print GPERF "};\n";
281 356
282printf GPERF "\nextern const unsigned char keyword_len [] = { 5, 7, %s };\n\n", 357printf GPERF "\nextern const unsigned char keyword_len [] = { 5, 7, %s };\n\n",
283 join ", ", map length, @kw; 358 join ", ", map length, @kw;
284 359
360close GPERF
361 or die "$ARG{GPERF}: failed to run";
362
285open KW, ">", "keyword.h"; 363open KW, ">", "keyword.h";
286 364
287print KW <<EOF; 365print KW <<EOF;
288#ifndef KW_H__ 366#ifndef KW_H__
289#define KW_H__ 367#define KW_H__
290 368
291enum keyword { 369enum keyword {
292 KW_EOF, KW_ERROR, 370 KW_NULL = 0,
371 KW_EOF = 0,
372 KW_ERROR,
293EOF 373EOF
294 374
295for (@kw) { 375for (@kw) {
296 printf KW " %s,\n", "KW_$_", 376 printf KW " %s,\n", "KW_$_",
297} 377}

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines