… | |
… | |
28 | (version => 2) |
28 | (version => 2) |
29 | }; |
29 | }; |
30 | |
30 | |
31 | my %dialog; # currently active dialogs |
31 | my %dialog; # currently active dialogs |
32 | |
32 | |
33 | my $timer = Event->timer (interval => 0.2, parked => 1, cb => sub { |
33 | my $timer = Event->timer (interval => 0.2, parked => 1, data => cf::WF_AUTOCANCEL, cb => sub { |
34 | while (my ($id, $dialog) = each %dialog) { |
34 | while (my ($id, $dialog) = each %dialog) { |
35 | my (undef, $dx, $dy) = $dialog->{ob}->rangevector ($dialog->{npc}); |
35 | my (undef, $dx, $dy) = $dialog->{ob}->rangevector ($dialog->{npc}); |
36 | next if (abs $dx) <= 2 && (abs $dy) <= 2; |
36 | next if (abs $dx) <= 2 && (abs $dy) <= 2; |
37 | |
37 | |
38 | $dialog->{ob}->contr->ext_reply ($id => msgtype => "error", msg => "out of range"); |
38 | $dialog->{ob}->contr->ext_reply ($id => msgtype => "error", msg => "out of range"); |