… | |
… | |
46 | my ($self) = @_; |
46 | my ($self) = @_; |
47 | |
47 | |
48 | my ($x, $y, $z) = @$self{qw(x y z)} = ($1, $2, $3+0); |
48 | my ($x, $y, $z) = @$self{qw(x y z)} = ($1, $2, $3+0); |
49 | |
49 | |
50 | # find handler for this area |
50 | # find handler for this area |
51 | for (@AREAS) { |
51 | for my $meta (@AREAS) { |
52 | if ( $_->{x0} <= $x && $x <= $_->{x1} |
52 | if ( $meta->{x0} <= $x && $x <= $meta->{x1} |
53 | && $_->{y0} <= $y && $y <= $_->{y1} |
53 | && $meta->{y0} <= $y && $y <= $meta->{y1} |
54 | && $_->{z0} <= $z && $z <= $_->{z1} |
54 | && $meta->{z0} <= $z && $z <= $meta->{z1} |
55 | ) { |
55 | ) { |
56 | $self->{ox} = $x - $_->{x0}; |
56 | $self->{ox} = $x - $meta->{x0}; |
57 | $self->{oy} = $y - $_->{y0}; |
57 | $self->{oy} = $y - $meta->{y0}; |
58 | $self->{oz} = $z - $_->{z0}; |
58 | $self->{oz} = $z - $meta->{z0}; |
59 | |
59 | |
60 | bless $self, $_->{pkg}; |
60 | bless $self, $meta->{pkg}; |
61 | |
61 | |
62 | $self->init_worldmap; |
62 | $self->init_worldmap ($meta); |
63 | |
63 | |
64 | last; |
64 | last; |
65 | } |
65 | } |
66 | |
66 | |
67 | } |
67 | } |