--- deliantra/Deliantra-Client/DC/MapWidget.pm 2007/04/04 02:43:29 1.104 +++ deliantra/Deliantra-Client/DC/MapWidget.pm 2007/04/14 06:51:45 1.107 @@ -186,8 +186,8 @@ $self->grab_focus; return unless $::CONN; - my $x = $self->{dx} + CFPlus::floor +($ev->{x} - $self->{sx0}) / $self->{tilesize}; - my $y = $self->{dy} + CFPlus::floor +($ev->{y} - $self->{sy0}) / $self->{tilesize}; + my $x = $self->{dx} + CFPlus::floor +($ev->{x} - $self->{sx0}) / $self->{ctilesize}; + my $y = $self->{dy} + CFPlus::floor +($ev->{y} - $self->{sy0}) / $self->{ctilesize}; $x -= CFPlus::floor $::MAP->w * 0.5; $y -= CFPlus::floor $::MAP->h * 0.5; @@ -351,7 +351,7 @@ } elsif (!$::CONN) { return 0; # bindings further down need a valid connection - } elsif ($sym == CFPlus::SDLK_KP5 && !$mod) { + } elsif ($sym == CFPlus::SDLK_KP5 && !($mod & ~CFPlus::KMOD_SHIFT)) { $::CONN->user_send ("stay fire"); } elsif ($uni == ord ",") { $::CONN->user_send ("take"); @@ -456,7 +456,7 @@ unless $focused || !$::FAST; if (delete $self->{need_update}) { - my $tilesize = $self->{tilesize} = int $self->{tilesize} * $::CFG->{map_scale}; + my $tilesize = $self->{ctilesize} = (int $self->{tilesize} * $::CFG->{map_scale}) || 1; my $sw = $self->{sw} = 1 + CFPlus::ceil $self->{w} / $tilesize; my $sh = $self->{sh} = 1 + CFPlus::ceil $self->{h} / $tilesize; @@ -559,6 +559,9 @@ package CFPlus::MapWidget::MapMap; +use strict; +use utf8; + our @ISA = CFPlus::UI::Base::; use Time::HiRes qw(time);