… | |
… | |
451 | map +{ %$_, ((exists $_->{_virtual}) ? (_virtual => 0+$_->{_virtual}) : ()) }, |
451 | map +{ %$_, ((exists $_->{_virtual}) ? (_virtual => 0+$_->{_virtual}) : ()) }, |
452 | @{ $self->{map}{map}[$x][$y] || [] } |
452 | @{ $self->{map}{map}[$x][$y] || [] } |
453 | ] |
453 | ] |
454 | } |
454 | } |
455 | |
455 | |
|
|
456 | # the caller promises us that he won't, in no circumstances, |
|
|
457 | # change the stack he gets. |
|
|
458 | sub get_ro { |
|
|
459 | my ($self, $x, $y) = @_; |
|
|
460 | |
|
|
461 | return unless $x >= 0 && $x < $self->{map}{width} |
|
|
462 | && $y >= 0 && $y < $self->{map}{height}; |
|
|
463 | |
|
|
464 | [ |
|
|
465 | map +{ %$_, ((exists $_->{_virtual}) ? (_virtual => 0+$_->{_virtual}) : ()) }, |
|
|
466 | @{ $self->{map}{map}[$x][$y] || [] } |
|
|
467 | ] |
|
|
468 | } |
|
|
469 | |
456 | sub set { |
470 | sub set { |
457 | my ($self, $x, $y, $as) = @_; |
471 | my ($self, $x, $y, $as) = @_; |
458 | |
472 | |
459 | my $data = $self->{map}{map}; |
473 | my $data = $self->{map}{map}; |
460 | |
474 | |