--- deliantra/Deliantra-Client/DC/Protocol.pm 2006/12/06 00:15:12 1.90 +++ deliantra/Deliantra-Client/DC/Protocol.pm 2006/12/09 02:21:25 1.91 @@ -8,6 +8,8 @@ use CFPlus; use CFPlus::UI; use CFPlus::Pod; +use CFPlus::Macro; +use CFPlus::Item; use Crossfire::Protocol::Base 0.95; @@ -293,8 +295,8 @@ my $shortname = CFPlus::shorten $name, 14; (new CFPlus::UI::Menu items => [ - ["bind ready_skill $shortname to a key" => sub { $::BIND_EDITOR->do_quick_binding (["ready_skill $name"]) }], - ["bind use_skill $shortname to a key" => sub { $::BIND_EDITOR->do_quick_binding (["use_skill $name"]) }], + ["bind ready_skill $shortname to a key" => sub { CFPlus::Macro::quick_macro ["ready_skill $name"] }], + ["bind use_skill $shortname to a key" => sub { CFPlus::Macro::quick_macro ["use_skill $name"] }], ], )->popup ($ev); } else { @@ -321,10 +323,18 @@ } } +sub macro_send { + my ($self, $macro) = @_; + + for my $cmd (@{ $macro->{action} }) { + $self->send_command ($cmd); + } +} + sub user_send { my ($self, $command) = @_; - push @{$self->{record}}, $command + $self->{record}->($command) if $self->{record}; $self->logprint ("send: ", $command); @@ -332,15 +342,10 @@ ::status ($command); } -sub start_record { - my ($self) = @_; - - $self->{record} = []; -} +sub record { + my ($self, $cb) = @_; -sub stop_record { - my ($self) = @_; - return delete $self->{record}; + $self->{record} = $cb; } sub map_scroll {