… | |
… | |
245 | $state->{$name} eq $value |
245 | $state->{$name} eq $value |
246 | or next topic; |
246 | or next topic; |
247 | |
247 | |
248 | } elsif ($cmd eq "trigger") { |
248 | } elsif ($cmd eq "trigger") { |
249 | my $rvalue = \$self->{npc}{dialog_trigger}{$args*1}; |
249 | my $rvalue = \$self->{npc}{dialog_trigger}{$args*1}; |
250 | |
250 | $self->{npc}->map->trigger ($args, $$rvalue = !$$rvalue); |
251 | my $trigger = cf::object::new "magic_ear"; |
|
|
252 | $trigger->set_value ($$rvalue); |
|
|
253 | |
|
|
254 | # needs to be on the map for remove_button_link to work |
|
|
255 | # the same *should* be true for add_button_link.... |
|
|
256 | $self->{npc}->map->insert_object ($trigger, 0, 0); |
|
|
257 | |
|
|
258 | $trigger->add_button_link ($self->{npc}->map, $args); |
|
|
259 | |
|
|
260 | $trigger->use_trigger; |
|
|
261 | |
|
|
262 | $trigger->remove_button_link; |
|
|
263 | $trigger->remove; |
|
|
264 | $trigger->free; |
|
|
265 | |
|
|
266 | $$rvalue = !$$rvalue; |
|
|
267 | |
251 | |
268 | } elsif ($cmd eq "addtopic") { |
252 | } elsif ($cmd eq "addtopic") { |
269 | push @kw, split /\|/, $args; |
253 | push @kw, split /\|/, $args; |
270 | $self->{add_topic}->(split /\s*\|\s*/, $args) if $self->{add_topic}; |
254 | $self->{add_topic}->(split /\s*\|\s*/, $args) if $self->{add_topic}; |
271 | |
255 | |