… | |
… | |
70 | my $sh = int $::HEIGHT / (32 * $::CFG->{map_scale}) + 0.99; |
70 | my $sh = int $::HEIGHT / (32 * $::CFG->{map_scale}) + 0.99; |
71 | |
71 | |
72 | my $fx = int +($ev->{x} - $::CFG->{map_shift_x}) / (32 * $::CFG->{map_scale}) - 0.5 * $sw + 0.99; |
72 | my $fx = int +($ev->{x} - $::CFG->{map_shift_x}) / (32 * $::CFG->{map_scale}) - 0.5 * $sw + 0.99; |
73 | my $fy = int +($ev->{y} - $::CFG->{map_shift_y}) / (32 * $::CFG->{map_scale}) - 0.5 * $sh + 0.99; |
73 | my $fy = int +($ev->{y} - $::CFG->{map_shift_y}) / (32 * $::CFG->{map_scale}) - 0.5 * $sh + 0.99; |
74 | |
74 | |
75 | $::CONN->send (sprintf "lookat %d %d", $fx, $fy); |
75 | $::CONN->send (sprintf "lookat %d %d", $fx, $fy) |
|
|
76 | if $::CONN; |
76 | |
77 | |
77 | } elsif ($ev->{button} == 2) { |
78 | } elsif ($ev->{button} == 2) { |
78 | my ($ox, $oy) = ($ev->{x}, $ev->{y}); |
79 | my ($ox, $oy) = ($ev->{x}, $ev->{y}); |
79 | my ($bw, $bh) = ($::CFG->{map_shift_x}, $::CFG->{map_shift_y}); |
80 | my ($bw, $bh) = ($::CFG->{map_shift_x}, $::CFG->{map_shift_y}); |
80 | |
81 | |
… | |
… | |
463 | |
464 | |
464 | if ($ev->{sym} == 13) { |
465 | if ($ev->{sym} == 13) { |
465 | if (exists $self->{select}) { |
466 | if (exists $self->{select}) { |
466 | $self->{last_command} = $self->{select}; |
467 | $self->{last_command} = $self->{select}; |
467 | $::CONN->user_send ($self->{select}); |
468 | $::CONN->user_send ($self->{select}); |
|
|
469 | |
|
|
470 | unshift @{$self->{history}}, $self->{select}; |
|
|
471 | $self->{hist_ptr} = 0; |
|
|
472 | |
468 | $self->hide; |
473 | $self->hide; |
469 | } |
474 | } |
470 | } elsif ($ev->{sym} == 27) { |
475 | } elsif ($ev->{sym} == 27) { |
|
|
476 | $self->{hist_ptr} = 0; |
471 | $self->hide; |
477 | $self->hide; |
472 | return; |
478 | return; |
473 | } elsif ($ev->{sym} == CFClient::SDLK_DOWN) { |
479 | } elsif ($ev->{sym} == CFClient::SDLK_DOWN) { |
|
|
480 | if ($self->{hist_ptr} > 1) { |
|
|
481 | $self->{hist_ptr}--; |
|
|
482 | $self->{entry}->set_text ($self->{history}->[$self->{hist_ptr} - 1]); |
|
|
483 | } elsif ($self->{hist_ptr} > 0) { |
|
|
484 | $self->{hist_ptr}--; |
|
|
485 | $self->{entry}->set_text ($self->{hist_saveback}); |
|
|
486 | } else { |
474 | ++$self->{select_offset} |
487 | ++$self->{select_offset} |
475 | if $self->{select_offset} < $#{ $self->{last_match} || [] }; |
488 | if $self->{select_offset} < $#{ $self->{last_match} || [] }; |
|
|
489 | } |
476 | $self->update_labels; |
490 | $self->update_labels; |
477 | } elsif ($ev->{sym} == CFClient::SDLK_UP) { |
491 | } elsif ($ev->{sym} == CFClient::SDLK_UP) { |
|
|
492 | if ($self->{select_offset}) { |
478 | --$self->{select_offset} |
493 | --$self->{select_offset} |
|
|
494 | } else { |
|
|
495 | unless ($self->{hist_ptr}) { |
|
|
496 | $self->{hist_saveback} = $self->{entry}->get_text; |
|
|
497 | } |
|
|
498 | if ($self->{hist_ptr} <= $#{$self->{history}}) { |
479 | if $self->{select_offset}; |
499 | $self->{hist_ptr}++; |
|
|
500 | } |
|
|
501 | $self->{entry}->set_text ($self->{history}->[$self->{hist_ptr} - 1]) |
|
|
502 | if exists $self->{history}->[$self->{hist_ptr} - 1]; |
|
|
503 | } |
480 | $self->update_labels; |
504 | $self->update_labels; |
481 | } else { |
505 | } else { |
482 | return 0; |
506 | return 0; |
483 | } |
507 | } |
484 | |
508 | |