--- deliantra/Deliantra-Client/DC/MapWidget.pm 2007/07/23 23:52:41 1.114 +++ deliantra/Deliantra-Client/DC/MapWidget.pm 2007/08/28 01:23:47 1.119 @@ -26,11 +26,6 @@ @_ ); - $self->{completer} = new CFPlus::MapWidget::Command:: - command => $self->{command}, - tooltip => "#completer_help", - ; - $self } @@ -49,16 +44,16 @@ $tooltip = "$data\n\n$tooltip"; $tooltip =~ s/\s+$//; - $self->{completer}{command}{$command} = [$data, $tooltip, $widget, $cb, ++$self->{command_id}]; + $::COMPLETER->{command}{$command} = [$data, $tooltip, $widget, $cb, ++$self->{command_id}]; } sub clr_commands { my ($self) = @_; - %{$self->{completer}{command}} = (); + %{$::COMPLETER->{command}} = (); - $self->{completer}->hide - if $self->{completer}; + $::COMPLETER->hide + if $::COMPLETER; } sub server_login { @@ -185,11 +180,7 @@ $y -= CFPlus::floor $::MAP->h * 0.5; if ($::CONN) { - if ($::IN_BUILD_MODE) { - $::CONN->buildat ($::IN_BUILD_MODE, $x, $y); - } else { - $::CONN->lookat ($x, $y) - } + $::CONN->lookat ($x, $y) } } elsif ($ev->{button} == 2) { @@ -331,48 +322,7 @@ $mod &= CFPlus::KMOD_CTRL | CFPlus::KMOD_ALT | CFPlus::KMOD_SHIFT; - if ($sym == 9) { - ($mod & CFPlus::KMOD_SHIFT ? $::MESSAGE_WINDOW : $::PL_WINDOW)->toggle_visibility; - } elsif ($sym == CFPlus::SDLK_F1 && !$mod) { - $::HELP_WINDOW->toggle_visibility; - } elsif ($sym == CFPlus::SDLK_F2 && !$mod) { - ::toggle_player_page ($::STATS_PAGE); - } elsif ($sym == CFPlus::SDLK_F3 && !$mod) { - ::toggle_player_page ($::SKILL_PAGE); - } elsif ($sym == CFPlus::SDLK_F4 && !$mod) { - ::toggle_player_page ($::SPELL_PAGE); - } elsif ($sym == CFPlus::SDLK_F5 && !$mod) { - ::toggle_player_page ($::INVENTORY_PAGE); - } elsif ($sym == CFPlus::SDLK_F9 && !$mod) { - $::SETUP_DIALOG->toggle_visibility; - } elsif (!$::CONN) { - return 0; # bindings further down need a valid connection - - } elsif ($uni == ord ",") { - $::CONN->user_send ("take"); - } elsif ($uni == ord " ") { - $::CONN->user_send ("apply"); - } elsif ($uni == 13) { - $::CONN->user_send ("examine"); - } elsif ($uni == ord ".") { - $::CONN->user_send ($self->{completer}{last_command}) - if exists $self->{completer}{last_command}; - } elsif (my @macros = CFPlus::Macro::match_event $ev) { - $::CONN->macro_send ($_) for @macros; - } elsif (($sym == CFPlus::SDLK_KP_PLUS && !$mod) || $uni == ord "+") { - $::CONN->user_send ("rotateshoottype +"); - } elsif (($sym == CFPlus::SDLK_KP_MINUS && !$mod) || $uni == ord "-") { - $::CONN->user_send ("rotateshoottype -"); - } elsif ($uni == ord '!') { - $self->{completer}->set_prefix ("shout "); - $self->{completer}->show; - } elsif ($uni == ord '"') { - $self->{completer}->set_prefix ("$::CFG->{say_command} "); - $self->{completer}->show; - } elsif ($uni == ord "'") { - $self->{completer}->set_prefix (""); - $self->{completer}->show; - } elsif (my $dir = $DIR{(!!($mod & CFPlus::KMOD_ALT)) . ",$sym"}) { + if ($::CONN && (my $dir = $DIR{(!!($mod & CFPlus::KMOD_ALT)) . ",$sym"})) { if ($mod & CFPlus::KMOD_SHIFT) { $self->{shft}++; if ($dir->[0] != $self->{fire_dir}) { @@ -385,14 +335,11 @@ } else { $::CONN->user_send ("$dir->[1]"); } - } elsif ((ord 'a') <= $uni && $uni <= (ord 'z')) { - $self->{completer}->inject_key_down ($ev); - $self->{completer}->show; - } else { - return 0; + + return 1; } - 1 + 0 } sub invoke_key_up { @@ -450,7 +397,7 @@ sub refresh_hook { my ($self) = @_; - if ($::MAP) { + if ($::MAP && $::CONN) { if (delete $self->{need_update}) { my $tilesize = $self->{ctilesize} = (int $self->{tilesize} * $::CFG->{map_scale}) || 1; @@ -530,7 +477,7 @@ return unless $self->{list}; my $focused = $CFPlus::UI::FOCUS == $self - || $CFPlus::UI::FOCUS == $self->{completer}{entry}; + || $CFPlus::UI::FOCUS == $::COMPLETER{entry}; return unless $focused || !$::FAST;