<action> statements may give different results under Infix
than when called normally by the game. Here is an example: The Infix command ;< ATTACK BOMB is supposedly identical to the
<Attack bomb> statement; both should lead to the same outcome as the HIT DEVICE command.
Here, the Attack action triggered by HIT DEVICE is trapped by the bomb's before property,
causing it to explode; this is the correct behaviour.
However, the same action when executed from Infix is not intercepted by the bomb's before property,
and so the default "Violence isn't the answer" message is displayed. It's because the 'meta' flag has been set for the Infix command.
That stops InformLibrary.begin_action() from running BeforeRoutines().
I can't immediately see any way of fixing it.
A workaround would be to set meta=0 before calling the <action>.
In the long term we might want the meta flag to attach to actions rather than verbs.
About Patches
Issue L61117 [previous patch]
Problem with <action> statements in Infix
Submitted by: Nathan Summers
Appeared in: Library 6/11 or before
Fixed in: -
Problem
Object theRoom "The room"
with description "A bare space.",
has light;
Object -> bomb "dangerous device"
with name 'dangerous' 'device',
before [; Attack: deadflag = 1; "The bomb explodes."; ];
#### At runtime ####
The room
A bare space.
You can see a dangerous device here.
>;< ATTACK BOMB
; <Attack (the dangerous device)>
Violence isn't the answer to this one.
>HIT DEVICE
The bomb explodes.
*** You have died ***
Workaround (by Cedric Knight)
Last updated 17 April 2013.
This site is no longer supported; information may be out of date.
Maintained as a historical archive by the Interactive Fiction Technology Foundation.
Copyright 1993-2018 IFTF, CC-BY-SA unless otherwise noted.
This page was originally managed by Roger Firth.