function motion_enterFastArea() /* entry=89 class_id=0x01B7 slot=0x0F */ { var referent, /* [BP+00h] type=0x69 */ trackedEnough, /* [BP-02h] type=0x69 */ fram, /* [BP-04h] type=0x69 */ movement, /* [BP-06h] type=0x69 */ foundTarget, /* [BP-07h] type=0x62 */ delay, /* [BP-09h] type=0x69 */ iSeeYou, /* [BP-0Bh] type=0x69 */ dir; /* [BP-0Dh] type=0x69 */ entry: set_info(0x021B, *(arg_06)); process_exclude(); movement = 1; delay = ((5 - Game.getDifficultyLevel()) * 2); iSeeYou = ((5 - Game.getDifficultyLevel()) * 5); block_0112: suspend; spawn FREE.waitNTimerTicks(pid, delay, 0x00000000); suspend; /* global_address global_id=0x3C */ /* global_address global_id=0x3C */ dir = getClosestDirectionInRange(Item.getX(Item.getY(16, 0, 16)), Item.getY(arg_06), Item.getX(arg_06)); fram = Item.getFrame(arg_06); if (dir != fram) goto block_01DA; block_019C: trackedEnough = (1 + trackedEnough); if ((trackedEnough > iSeeYou) && (foundTarget != 0)) goto block_01D7; block_01BA: foundTarget = 1; spawn TRIGGER.slot_20(0, *(arg_06), arg_06); block_01D7: goto block_02A1; block_01DA: if trackedEnough goto block_0207; block_01E2: if ((12 - dir) > fram) goto block_0200; block_01F6: movement = 1; goto block_0207; block_0200: movement = -1; block_0207: trackedEnough = 0; foundTarget = 0; if ((fram + movement) < 0) goto block_0253; block_0223: movement = 1; spawn FREE.waitNTimerTicks(pid, 30, 0x00000000); suspend; goto block_0291; block_0253: if ((fram + movement) > 15) goto block_0291; block_0261: movement = -1; spawn FREE.waitNTimerTicks(pid, 30, 0x00000000); suspend; goto block_0291; block_0291: block_02A1: goto block_0112; block_02A4: return; }