… | |
… | |
15 | use Storable; |
15 | use Storable; |
16 | use List::Util qw(min max); |
16 | use List::Util qw(min max); |
17 | |
17 | |
18 | use Crossfire; |
18 | use Crossfire; |
19 | use Crossfire::MapWidget; |
19 | use Crossfire::MapWidget; |
|
|
20 | use File::Spec::Functions; |
20 | |
21 | |
21 | our @EXPORT = qw(insert_arch_stack_layer replace_arch_stack_layer new_arch_pb fill_pb_from_arch arch_is_floor stack_find_floor stack_find_wall stack_find arch_is_wall arch_is_monster add_table_widget quick_msg def arch_is_exit); |
22 | our @EXPORT = qw(insert_arch_stack_layer replace_arch_stack_layer new_arch_pb fill_pb_from_arch arch_is_floor stack_find_floor stack_find_wall stack_find arch_is_wall arch_is_monster add_table_widget quick_msg def arch_is_exit map2abs); |
|
|
23 | |
|
|
24 | sub map2abs { |
|
|
25 | my ($dest, $mape) = @_; |
|
|
26 | |
|
|
27 | my $dir; |
|
|
28 | if (File::Spec->file_name_is_absolute($dest)) { |
|
|
29 | $dir = catdir ($Crossfire::LIB, 'maps', $dest); |
|
|
30 | } else { |
|
|
31 | my ($v, $p, $f) = File::Spec->splitpath ($mape->{path}); |
|
|
32 | $dir = File::Spec->rel2abs ($dest, File::Spec->catpath ($v, $p)); |
|
|
33 | } |
|
|
34 | return $dir; |
|
|
35 | } |
22 | |
36 | |
23 | sub def($$) { |
37 | sub def($$) { |
24 | return defined ($_[0]) ? $_[0] : $_[1]; |
38 | return defined ($_[0]) ? $_[0] : $_[1]; |
25 | } |
39 | } |
26 | |
40 | |