… | |
… | |
4 | |
4 | |
5 | =cut |
5 | =cut |
6 | |
6 | |
7 | package Crossfire; |
7 | package Crossfire; |
8 | |
8 | |
9 | our $VERSION = '0.1'; |
9 | our $VERSION = '0.8'; |
10 | |
10 | |
11 | use strict; |
11 | use strict; |
12 | |
12 | |
13 | use base 'Exporter'; |
13 | use base 'Exporter'; |
14 | |
14 | |
… | |
… | |
199 | if (defined (my $v = delete $ob->{slow_move})) { |
199 | if (defined (my $v = delete $ob->{slow_move})) { |
200 | $ob->{move_slow} |= MOVE_WALK; |
200 | $ob->{move_slow} |= MOVE_WALK; |
201 | $ob->{move_slow_penalty} = $v; |
201 | $ob->{move_slow_penalty} = $v; |
202 | } |
202 | } |
203 | if (defined (my $v = delete $ob->{walk_on})) { |
203 | if (defined (my $v = delete $ob->{walk_on})) { |
|
|
204 | $ob->{move_on} = MOVE_ALL unless exists $ob->{move_on}; |
204 | $ob->{move_on} = $v ? $ob->{move_on} | MOVE_WALK |
205 | $ob->{move_on} = $v ? $ob->{move_on} | MOVE_WALK |
205 | : $ob->{move_on} & ~MOVE_WALK; |
206 | : $ob->{move_on} & ~MOVE_WALK; |
206 | } |
207 | } |
207 | if (defined (my $v = delete $ob->{walk_off})) { |
208 | if (defined (my $v = delete $ob->{walk_off})) { |
|
|
209 | $ob->{move_off} = MOVE_ALL unless exists $ob->{move_off}; |
208 | $ob->{move_off} = $v ? $ob->{move_off} | MOVE_WALK |
210 | $ob->{move_off} = $v ? $ob->{move_off} | MOVE_WALK |
209 | : $ob->{move_off} & ~MOVE_WALK; |
211 | : $ob->{move_off} & ~MOVE_WALK; |
210 | } |
212 | } |
211 | if (defined (my $v = delete $ob->{fly_on})) { |
213 | if (defined (my $v = delete $ob->{fly_on})) { |
|
|
214 | $ob->{move_on} = MOVE_ALL unless exists $ob->{move_on}; |
212 | $ob->{move_on} = $v ? $ob->{move_on} | MOVE_FLY_LOW |
215 | $ob->{move_on} = $v ? $ob->{move_on} | MOVE_FLY_LOW |
213 | : $ob->{move_on} & ~MOVE_FLY_LOW; |
216 | : $ob->{move_on} & ~MOVE_FLY_LOW; |
214 | } |
217 | } |
215 | if (defined (my $v = delete $ob->{fly_off})) { |
218 | if (defined (my $v = delete $ob->{fly_off})) { |
|
|
219 | $ob->{move_off} = MOVE_ALL unless exists $ob->{move_off}; |
216 | $ob->{move_off} = $v ? $ob->{move_off} | MOVE_FLY_LOW |
220 | $ob->{move_off} = $v ? $ob->{move_off} | MOVE_FLY_LOW |
217 | : $ob->{move_off} & ~MOVE_FLY_LOW; |
221 | : $ob->{move_off} & ~MOVE_FLY_LOW; |
218 | } |
222 | } |
219 | if (defined (my $v = delete $ob->{flying})) { |
223 | if (defined (my $v = delete $ob->{flying})) { |
|
|
224 | $ob->{move_type} = MOVE_ALL unless exists $ob->{move_type}; |
220 | $ob->{move_type} = $v ? $ob->{move_type} | MOVE_FLY_LOW |
225 | $ob->{move_type} = $v ? $ob->{move_type} | MOVE_FLY_LOW |
221 | : $ob->{move_type} & ~MOVE_FLY_LOW; |
226 | : $ob->{move_type} & ~MOVE_FLY_LOW; |
222 | } |
227 | } |
223 | |
228 | |
224 | # convert idiotic event_xxx things into objects |
229 | # convert idiotic event_xxx things into objects |
… | |
… | |
327 | } |
332 | } |
328 | } elsif (/^msg$/i) { |
333 | } elsif (/^msg$/i) { |
329 | while (<$fh>) { |
334 | while (<$fh>) { |
330 | last if /^endmsg\s*$/i; |
335 | last if /^endmsg\s*$/i; |
331 | $arc{msg} .= $_; |
336 | $arc{msg} .= $_; |
|
|
337 | } |
|
|
338 | } elsif (/^anim$/i) { |
|
|
339 | while (<$fh>) { |
|
|
340 | last if /^mina\s*$/i; |
|
|
341 | chomp; |
|
|
342 | push @{ $arc{anim} }, $_; |
332 | } |
343 | } |
333 | } elsif (/^(\S+)\s*(.*)$/) { |
344 | } elsif (/^(\S+)\s*(.*)$/) { |
334 | $arc{lc $1} = $2; |
345 | $arc{lc $1} = $2; |
335 | } elsif (/^\s*($|#)/) { |
346 | } elsif (/^\s*($|#)/) { |
336 | # |
347 | # |