--- deliantra/Deliantra-Client/DC/MapWidget.pm 2007/08/28 16:26:13 1.121 +++ deliantra/Deliantra-Client/DC/MapWidget.pm 2007/12/26 11:42:58 1.123 @@ -122,7 +122,7 @@ File::Path::mkpath (File::Basename::dirname ($mappath)); open my $fh, ">:raw:perlio", "$mappath.meta" or die "$mappath.meta: $!\n"; - print $fh CFPlus::to_json $meta; + print $fh CFPlus::encode_json $meta; close $fh; open my $fh, ">:raw:perlio:utf8", $mappath or die "$mappath: $!\n"; @@ -328,7 +328,7 @@ if ($dir->[0] != $self->{fire_dir}) { $::CONN->user_send ("fire $dir->[0]"); } - $self->{fire_dir} = $DIR{$sym}[0]; + $self->{fire_dir} = $dir->[0]; } elsif ($mod & CFPlus::KMOD_CTRL) { $self->{ctrl}++; $::CONN->user_send ("run $dir->[0]"); @@ -356,11 +356,12 @@ $res = 1; } } else { - if (exists $DIR{$sym} && delete $self->{shft}) { + if (exists $DIR{(!!($mod & CFPlus::KMOD_ALT)) . ",$sym"} && delete $self->{shft}) { $::CONN->user_send ("fire_stop"); delete $self->{fire_dir}; $res = 1; - } elsif (($sym == CFPlus::SDLK_LSHIFT || $sym == CFPlus::SDLK_RSHIFT) && delete $self->{shft}) { # XXX: is RSHIFT ok? + } elsif (($sym == CFPlus::SDLK_LSHIFT || $sym == CFPlus::SDLK_RSHIFT) + && delete $self->{shft}) { # XXX: is RSHIFT ok? $::CONN->user_send ("fire_stop"); delete $self->{fire_dir}; $res = 1;