… | |
… | |
458 | if (delete $self->{need_update}) { |
458 | if (delete $self->{need_update}) { |
459 | $self->movement_update; |
459 | $self->movement_update; |
460 | |
460 | |
461 | my $tilesize = $self->{ctilesize} = (int $self->{tilesize} * $::CFG->{map_scale}) || 1; |
461 | my $tilesize = $self->{ctilesize} = (int $self->{tilesize} * $::CFG->{map_scale}) || 1; |
462 | |
462 | |
463 | my $sdx_t = DC::ceil $self->{sdx} / $tilesize; |
463 | my $sdx_t = DC::ceilabs $self->{sdx} / $tilesize; |
464 | my $sdy_t = DC::ceil $self->{sdy} / $tilesize; |
464 | my $sdy_t = DC::ceilabs $self->{sdy} / $tilesize; |
465 | |
465 | |
466 | # width/height of map, in tiles |
466 | # width/height of map, in tiles |
467 | my $sw = $self->{sw} = 1 + DC::ceil $self->{w} / $tilesize; |
467 | my $sw = $self->{sw} = 2 + DC::ceil $self->{w} / $tilesize; |
468 | my $sh = $self->{sh} = 1 + DC::ceil $self->{h} / $tilesize; |
468 | my $sh = $self->{sh} = 2 + DC::ceil $self->{h} / $tilesize; |
469 | |
469 | |
470 | # the map displacement, in tiles |
470 | # the map displacement, in tiles |
471 | my $sx = DC::ceil $::CFG->{map_shift_x} / $tilesize + $sdx_t; |
471 | my $sx = DC::ceil $::CFG->{map_shift_x} / $tilesize + $sdx_t; |
472 | my $sy = DC::ceil $::CFG->{map_shift_y} / $tilesize + $sdy_t; |
472 | my $sy = DC::ceil $::CFG->{map_shift_y} / $tilesize + $sdy_t; |
473 | |
473 | |