ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/Deliantra-Client/DC/MapWidget.pm
(Generate patch)

Comparing deliantra/Deliantra-Client/DC/MapWidget.pm (file contents):
Revision 1.54 by root, Sun Jun 11 20:05:55 2006 UTC vs.
Revision 1.58 by elmex, Tue Jun 13 14:35:17 2006 UTC

76 $y -= int 0.5 * $::MAP->h; 76 $y -= int 0.5 * $::MAP->h;
77 77
78 $x += 1; 78 $x += 1;
79 $y += 1; 79 $y += 1;
80 80
81 $::CONN->send (sprintf "lookat %d %d", $x, $y) 81 $::CONN->lookat ($x, $y)
82 if $::CONN; 82 if $::CONN;
83 83
84 } elsif ($ev->{button} == 2) { 84 } elsif ($ev->{button} == 2) {
85 my ($ox, $oy) = ($ev->{x}, $ev->{y}); 85 my ($ox, $oy) = ($ev->{x}, $ev->{y});
86 my ($bw, $bh) = ($::CFG->{map_shift_x}, $::CFG->{map_shift_y}); 86 my ($bw, $bh) = ($::CFG->{map_shift_x}, $::CFG->{map_shift_y});
181 $self->{completer}->set_prefix (""); 181 $self->{completer}->set_prefix ("");
182 $self->{completer}->show; 182 $self->{completer}->show;
183 } elsif (exists $DIR{$sym}) { 183 } elsif (exists $DIR{$sym}) {
184 if ($mod & CFClient::KMOD_SHIFT) { 184 if ($mod & CFClient::KMOD_SHIFT) {
185 $self->{shft}++; 185 $self->{shft}++;
186 if ($DIR{$sym}[0] != $self->{fire_dir}) {
186 $::CONN->user_send ("fire $DIR{$sym}[0]"); 187 $::CONN->user_send ("fire $DIR{$sym}[0]");
188 }
189 $self->{fire_dir} = $DIR{$sym}[0];
187 } elsif ($mod & CFClient::KMOD_CTRL) { 190 } elsif ($mod & CFClient::KMOD_CTRL) {
188 $self->{ctrl}++; 191 $self->{ctrl}++;
189 $::CONN->user_send ("run $DIR{$sym}[0]"); 192 $::CONN->user_send ("run $DIR{$sym}[0]");
190 } else { 193 } else {
191 $::CONN->user_send ("$DIR{$sym}[1]"); 194 $::CONN->user_send ("$DIR{$sym}[1]");
219 222
220 my $res = 0; 223 my $res = 0;
221 my $mod = $ev->{mod}; 224 my $mod = $ev->{mod};
222 my $sym = $ev->{sym}; 225 my $sym = $ev->{sym};
223 226
227 if ($::CFG->{shift_fire_stop}) {
224 if (!($mod & CFClient::KMOD_SHIFT) && delete $self->{shft}) { 228 if (!($mod & CFClient::KMOD_SHIFT) && delete $self->{shft}) {
225 $::CONN->user_send ("fire_stop"); 229 $::CONN->user_send ("fire_stop");
230 delete $self->{fire_dir};
226 $res = 1; 231 $res = 1;
232 }
233 } else {
234 if (exists $DIR{$sym} && delete $self->{shft}) {
235 $::CONN->user_send ("fire_stop");
236 delete $self->{fire_dir};
237 $res = 1;
238 } elsif (($sym == CFClient::SDLK_LSHIFT || $sym == CFClient::SDLK_RSHIFT) && delete $self->{shft}) { # XXX: is RSHIFT ok?
239 $::CONN->user_send ("fire_stop");
240 delete $self->{fire_dir};
241 $res = 1;
242 }
227 } 243 }
228 244
229 if (!($mod & CFClient::KMOD_CTRL ) && delete $self->{ctrl}) { 245 if (!($mod & CFClient::KMOD_CTRL ) && delete $self->{ctrl}) {
230 $::CONN->user_send ("run_stop"); 246 $::CONN->user_send ("run_stop");
231 $res = 1; 247 $res = 1;
462 ]; 478 ];
463 479
464 $self->{entry} = new CFClient::UI::Entry 480 $self->{entry} = new CFClient::UI::Entry
465 on_changed => sub { 481 on_changed => sub {
466 $self->update_labels; 482 $self->update_labels;
483 },
484 on_button_down => sub {
485 my ($entry, $ev, $x, $y) = @_;
486
487 if ($ev->{button} == 3) {
488 (new CFClient::UI::Menu
489 items => [
490 ["bind to a key" => sub { $::BIND_EDITOR->do_quick_binding ([$self->{select}], sub { $entry->focus_in }) }]
491 ],
492 )->popup ($ev);
493 return 1;
494 }
495 0
467 }, 496 },
468 on_key_down => sub { 497 on_key_down => sub {
469 my ($entry, $ev) = @_; 498 my ($entry, $ev) = @_;
470 499
471 my $self = $entry->{parent}{parent}; 500 my $self = $entry->{parent}{parent};

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines