ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/maps/perl/eval.ext
(Generate patch)

Comparing deliantra/maps/perl/eval.ext (file contents):
Revision 1.3 by elmex, Fri Mar 31 22:18:39 2006 UTC vs.
Revision 1.7 by root, Fri Aug 25 17:08:20 2006 UTC

1#! perl 1#! perl
2#CONVERSION: BROKEN, MISSING ON_APPLY
2 3
3# generic perl code evaluator 4# generic perl code evaluator
4 5
5sub eval_event { 6sub eval_event {
6 my ($event, $args, @args) = @_; 7 my ($event, %vars) = @_;
7 8
8 my $code = $event->message; 9 my $code = $event->message;
9 my $who = eval { $event->environment->name } || "<unknown>"; 10 my $who = eval { $event->environment->name } || "<unknown>";
10 11
11 my $rv = eval "my ($args) = \@args;\n" 12 my $rv = cf::safe_eval $code, %vars;
12 . "#line 1 \"$who\"\n"
13 . $code;
14 13
15 warn $@ if $@; 14 warn $@ if $@;
16 15
17 $rv 16 $rv
18} 17}
19 18
20# currently say only
21sub on_say { 19sub on_say {
22 my ($event) = @_; 20 my ($event, $ob, $who, $msg) = @_;
23 my ($event, $ob, $who, $msg, $options) = @$event{qw(event who activator message options)};
24 21
25 local $_ = $msg; 22 local $_ = $msg;
26 23
27 eval_event $event, '$ob, $who, $msg, $options', $ob, $who, $msg, $options 24 eval_event $event, ob => $ob, who => $who, msg => $msg
28} 25}
26
27sub on_apply {
28 my ($event, $ob, $who) = @_;
29
30 eval_event $event, ob => $ob, who => $who
31}

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines