Indy walks and talks, but that's not enough. At specific moments, the character must perform a special movement.
ROOM main
{
IMAGE { "gr/idol.jpg" }
WALK { "gr/idol_bm.gif" }
ITEM Indy // My hero :)
{
ANIMATION
{
// --- standby images ---
0 0 "gr/indy_d.gif" 1 // Looking South
0 1 "gr/indy_r.gif" 1 // Looking West
0 2 "gr/indy_u.gif" 1 // Looking North
0 3 "gr/indy_l.gif" 1 // Looking East
// --- walking animation ---
1 0 "gr/indy_wd.gif" 4 // Looking South
1 1 "gr/indy_wr.gif" 6 // Looking West
1 2 "gr/indy_wu.gif" 4 // Looking North
1 3 "gr/indy_wl.gif" 6 // Looking East
// --- talking animation ---
2 0 "gr/indy_td.gif" 7 // Looking South
2 1 "gr/indy_tr.gif" 4 // Looking West
2 2 "gr/indy_tu.gif" 1 // Looking North
2 3 "gr/indy_tl.gif" 4 // Looking East
}
POSITION { 170 170 0 }
}
ITEM Idol
{
IMAGE { 0 0 "gr/idol.gif" }
POSITION { 155 135 0 }
COMMAND push idol
{
SETANIMATION indy 3 0 "gr/indy_su.gif" 1 // Define image #0 for attitude #3
ATTITUDE indy 3 // Switch to that mode
SAY indy "hummmmpppfff..."
WAIT indy
ATTITUDE indy 0 // Back to normal animation (standby)
SAY indy "That doesn't work."
}
}
}
Attitude #3 is reserved by the system for custom animations.
Notice how an image that wasn't included in the initial ANIMATION block for this item is
defined inside a COMMAND block, and loaded on the fly.
It is also possible to load images for any other attitude with the same instruction.