… | |
… | |
23 | |
23 | |
24 | # determine level required for the given map/position |
24 | # determine level required for the given map/position |
25 | sub map_level { |
25 | sub map_level { |
26 | my ($map, $x, $y) = @_; |
26 | my ($map, $x, $y) = @_; |
27 | |
27 | |
28 | my $path = $map->path; |
|
|
29 | my $player = sprintf "%s/%s/", cf::localdir, cf::playerdir; |
|
|
30 | |
|
|
31 | for my $x (0 .. $map->width - 1) { |
28 | for my $x (0 .. $map->width - 1) { |
32 | for my $y (0 .. $map->height - 1) { |
29 | for my $y (0 .. $map->height - 1) { |
33 | return 4 |
30 | return 4 |
34 | if grep $_->flag (cf::FLAG_MONSTER), |
31 | if grep $_->flag (cf::FLAG_MONSTER), |
35 | $map->at ($x, $y); |
32 | $map->at ($x, $y); |
36 | } |
33 | } |
37 | } |
34 | } |
38 | |
35 | |
|
|
36 | my $path = $map->path; |
|
|
37 | my $player = sprintf "%s/%s/", cf::localdir, cf::playerdir; |
|
|
38 | |
39 | if ($player eq substr $path, 0, length $player) { |
39 | if ($player eq substr $path, 0, length $player) { |
40 | 1 |
40 | 1 |
41 | } elsif (grep $_->flag (cf::FLAG_UNIQUE) && $_->flag (cf::FLAG_IS_FLOOR), |
41 | } elsif (grep $_->flag (cf::FLAG_UNIQUE) && $_->flag (cf::FLAG_IS_FLOOR), |
42 | $map->at ($x, $y)) { |
42 | $map->at ($x, $y)) { |
43 | 2 |
43 | 2 |