… | |
… | |
13 | use strict; |
13 | use strict; |
14 | |
14 | |
15 | sub has_dialogue($) { |
15 | sub has_dialogue($) { |
16 | my ($ob) = @_; |
16 | my ($ob) = @_; |
17 | |
17 | |
18 | $ob->get_message =~ /^\@match /; |
18 | $ob->msg =~ /^\@match /; |
19 | } |
19 | } |
20 | |
20 | |
21 | sub parse_message($) { |
21 | sub parse_message($) { |
22 | map [split /\n/, $_, 2], |
22 | map [split /\n/, $_, 2], |
23 | grep length, |
23 | grep length, |
… | |
… | |
30 | |
30 | |
31 | my $self = bless { |
31 | my $self = bless { |
32 | %arg, |
32 | %arg, |
33 | }, $class; |
33 | }, $class; |
34 | |
34 | |
35 | $self->{match} ||= [parse_message $self->{npc}->get_message]; |
35 | $self->{match} ||= [parse_message $self->{npc}->msg]; |
36 | |
36 | |
37 | $self; |
37 | $self; |
38 | } |
38 | } |
39 | |
39 | |
40 | sub greet { |
40 | sub greet { |
… | |
… | |
256 | } elsif ($cmd eq "deltopic") { |
256 | } elsif ($cmd eq "deltopic") { |
257 | # not yet implemented, do it out-of-band |
257 | # not yet implemented, do it out-of-band |
258 | $self->{del_topic}->(split /\s*\|\s*/, $args) if $self->{del_topic}; |
258 | $self->{del_topic}->(split /\s*\|\s*/, $args) if $self->{del_topic}; |
259 | |
259 | |
260 | } else { |
260 | } else { |
261 | warn "unknown dialogue command <$cmd,$args> used (from " . $self->{npc}->get_message . ")"; |
261 | warn "unknown dialogue command <$cmd,$args> used (from " . $self->{npc}->msg . ")"; |
262 | } |
262 | } |
263 | } |
263 | } |
264 | |
264 | |
265 | delete $self->{npc}{$self->{ob}->name}{dialog_state} unless %$state; |
265 | delete $self->{npc}{$self->{ob}->name}{dialog_state} unless %$state; |
266 | delete $self->{ob}{dialog_flag} unless %$flag; |
266 | delete $self->{ob}{dialog_flag} unless %$flag; |