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.93 by root, Thu Nov 16 19:42:45 2006 UTC vs.
Revision 1.97 by root, Sat Dec 9 22:28:11 2006 UTC

6use List::Util qw(min max); 6use List::Util qw(min max);
7 7
8use CFPlus; 8use CFPlus;
9use CFPlus::OpenGL; 9use CFPlus::OpenGL;
10use CFPlus::UI; 10use CFPlus::UI;
11use CFPlus::Macro;
11 12
12our @ISA = CFPlus::UI::Base::; 13our @ISA = CFPlus::UI::Base::;
13 14
14my $magicmap_tex = 15my $magicmap_tex =
15 new_from_file CFPlus::Texture CFPlus::find_rcfile "magicmap.png", 16 new_from_file CFPlus::Texture CFPlus::find_rcfile "magicmap.png",
182 my $y = $self->{dy} + CFPlus::floor +($ev->{y} - $self->{sy0}) / $self->{tilesize}; 183 my $y = $self->{dy} + CFPlus::floor +($ev->{y} - $self->{sy0}) / $self->{tilesize};
183 184
184 $x -= CFPlus::floor $::MAP->w * 0.5; 185 $x -= CFPlus::floor $::MAP->w * 0.5;
185 $y -= CFPlus::floor $::MAP->h * 0.5; 186 $y -= CFPlus::floor $::MAP->h * 0.5;
186 187
188 if ($::CONN) {
189 if ($::IN_BUILD_MODE) {
190 $::CONN->buildat ($::IN_BUILD_MODE, $x, $y);
191 } else {
187 $::CONN->lookat ($x, $y) 192 $::CONN->lookat ($x, $y)
188 if $::CONN; 193 }
194 }
189 195
190 } elsif ($ev->{button} == 2) { 196 } elsif ($ev->{button} == 2) {
191 $self->grab_focus; 197 $self->grab_focus;
192 return unless $::CONN; 198 return unless $::CONN;
193 199
331 ::toggle_player_page ($::SPELL_PAGE); 337 ::toggle_player_page ($::SPELL_PAGE);
332 } elsif ($sym == CFPlus::SDLK_F5 && !$mod) { 338 } elsif ($sym == CFPlus::SDLK_F5 && !$mod) {
333 ::toggle_player_page ($::INVENTORY_PAGE); 339 ::toggle_player_page ($::INVENTORY_PAGE);
334 } elsif ($sym == CFPlus::SDLK_F9 && !$mod) { 340 } elsif ($sym == CFPlus::SDLK_F9 && !$mod) {
335 $::SETUP_DIALOG->toggle_visibility; 341 $::SETUP_DIALOG->toggle_visibility;
336 } elsif ($sym == CFPlus::SDLK_INSERT && $mod & CFPlus::KMOD_CTRL) {
337 $::BIND_EDITOR->set_binding (undef, undef, [],
338 sub {
339 my ($mod, $sym, $cmds) = @_;
340 $::BIND_EDITOR->cfg_bind ($mod, $sym, $cmds);
341 });
342 $::BIND_EDITOR->start;
343 $::BIND_EDITOR->show;
344#TODO: elmex, what was this supposed to do? it currently crashes the client.
345# } elsif ($sym == CFPlus::SDLK_INSERT && not ($mod & CFPlus::KMOD_CTRL)) {
346# $::BIND_EDITOR->stop;
347# $::BIND_EDITOR->ask_for_bind_and_commit;
348# $::BIND_EDITOR->hide;
349 } elsif (!$::CONN) { 342 } elsif (!$::CONN) {
350 return 0; # bindings further down need a valid connection 343 return 0; # bindings further down need a valid connection
351 344
352 } elsif ($sym == CFPlus::SDLK_KP5 && !$mod) { 345 } elsif ($sym == CFPlus::SDLK_KP5 && !$mod) {
353 $::CONN->user_send ("stay fire"); 346 $::CONN->user_send ("stay fire");
358 } elsif ($uni == 13) { 351 } elsif ($uni == 13) {
359 $::CONN->user_send ("examine"); 352 $::CONN->user_send ("examine");
360 } elsif ($uni == ord ".") { 353 } elsif ($uni == ord ".") {
361 $::CONN->user_send ($self->{completer}{last_command}) 354 $::CONN->user_send ($self->{completer}{last_command})
362 if exists $self->{completer}{last_command}; 355 if exists $self->{completer}{last_command};
363 } elsif (my $bind_cmd = $::PROFILE->{bindings}{$mod}{$sym}) { 356 } elsif (my @macros = CFPlus::Macro::match_event $ev) {
357 warn "<@macros>\n";#d#
364 $::CONN->user_send ($_) for @$bind_cmd; 358 $::CONN->macro_send ($_) for @macros;
365 } elsif (($sym == CFPlus::SDLK_KP_PLUS && !$mod) || $uni == ord "+") { 359 } elsif (($sym == CFPlus::SDLK_KP_PLUS && !$mod) || $uni == ord "+") {
366 $::CONN->user_send ("rotateshoottype +"); 360 $::CONN->user_send ("rotateshoottype +");
367 } elsif (($sym == CFPlus::SDLK_KP_MINUS && !$mod) || $uni == ord "-") { 361 } elsif (($sym == CFPlus::SDLK_KP_MINUS && !$mod) || $uni == ord "-") {
368 $::CONN->user_send ("rotateshoottype -"); 362 $::CONN->user_send ("rotateshoottype -");
369 } elsif ($uni == ord '"') { 363 } elsif ($uni == ord '"') {
670 664
671 if ($ev->{button} == 3) { 665 if ($ev->{button} == 3) {
672 (new CFPlus::UI::Menu 666 (new CFPlus::UI::Menu
673 items => [ 667 items => [
674 ["bind <i>" . (CFPlus::asxml $self->{select}) . "</i> to a key" 668 ["bind <i>" . (CFPlus::asxml $self->{select}) . "</i> to a key"
675 => sub { $::BIND_EDITOR->do_quick_binding ([$self->{select}], sub { $entry->grab_focus }) }] 669 => sub { CFPlus::Macro::quick_macro [$self->{select}], sub { $entry->grab_focus } }]
676 ], 670 ],
677 )->popup ($ev); 671 )->popup ($ev);
678 return 1; 672 return 1;
679 } 673 }
680 0 674 0

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines