/* synthesized appendix for CRU_SPID */ /* sparse lines above preserve recovered debugger line numbers where available */ /* ===== slot 0x01 use ===== */ function cru_spid_use() /* entry=324 class_id=0x0560 slot=0x01 */ { set_info(0x0207, *(arg_06)); process_exclude(); /* global_address global_id=0x1E */ if (Actor.getMap() == 25) { return; } else { local_05 = *(arg_06); set_info(0x00F0, 0); /* global_address global_id=0x1E */ local_0D = Actor.getLastAnimSet(); /* global_address global_id=0x1E */ while (!Actor.isBusy()) { spawn FREE.slot_3B(pid, 2, 0x00000000); suspend; } /* global_address global_id=0x1E */ if (Actor.getDir() == 0) { local_0F = -1; local_11 = -3; } else if (Actor.getDir() == 1) { local_0F = 0; local_11 = -3; } else if (Actor.getDir() == 2) { local_0F = 1; local_11 = -3; } else if (Actor.getDir() == 3) { local_0F = 2; local_11 = -2; } else if (Actor.getDir() == 4) { local_0F = 2; local_11 = -1; } else if (Actor.getDir() == 5) { local_0F = 2; local_11 = 0; } else if (Actor.getDir() == 6) { local_0F = 2; local_11 = 2; } else if (Actor.getDir() == 7) { local_0F = 0; local_11 = 2; } else if (Actor.getDir() == 8) { local_0F = -1; local_11 = 2; } else if (Actor.getDir() == 9) { local_0F = -2; local_11 = 2; } else if (Actor.getDir() == 10) { local_0F = -3; local_11 = 2; } else if (Actor.getDir() == 11) { local_0F = -3; local_11 = 1; } else if (Actor.getDir() == 12) { local_0F = -3; local_11 = 0; } else if (Actor.getDir() == 13) { local_0F = -3; local_11 = -1; } else if (Actor.getDir() == 14) { local_0F = -3; local_11 = -3; } else if (Actor.getDir() == 15) { local_0F = -3; local_11 = -3; } /* global_address global_id=0x1E */ if (!Intrinsic0061()) { local_03 = 1; } else { local_03 = 0; /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ suspend; } /* global_address global_id=0x1E */ local_16 = (Item.getX() + (local_0F * 16)); /* global_address global_id=0x1E */ local_14 = (Item.getY() + (local_11 * 16)); /* global_address global_id=0x1E */ local_12 = (Item.getZ() + 2); if (Item.legalCreateAtPoint(local_16, 0, 0x0560, local_02)) { if (local_03) { /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ suspend; } return; } else { local_0B = 1; while (local_0B > 9) { spawn FREE.slot_3B(pid, 3, 0x00000000); suspend; local_0B = (1 + local_0B); } spawn CRU_SPID.slot_20(local_02, arg_06); } } return; } /* ===== slot 0x05 hit ===== */ function cru_spid_hit() /* entry=324 class_id=0x0560 slot=0x05 */ { set_info(0x020B, *(arg_06)); process_exclude(); return; } /* ===== slot 0x20 slot_20 ===== */ function cru_spid_slot_20() /* entry=324 class_id=0x0560 slot=0x20 */ { set_info(0x00F0, *(arg_06)); local_0F = arg_0A; set_info(0x00F0, local_11); while (local_02 >= 0x01F4) { /* global_address global_id=0x1E */ if (!Intrinsic0061()) { /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ if (Actor.getDir((Actor.getDir() == 0)) != 1) { local_04 = 0; local_06 = -1; } else if (Actor.getDir((Actor.getDir() == 2)) != 3) { local_04 = 1; local_06 = -1; } else if (Actor.getDir((Actor.getDir() == 4)) != 5) { local_04 = 1; local_06 = 0; } else if (Actor.getDir((Actor.getDir() == 6)) != 7) { local_04 = 1; local_06 = 1; } else if (Actor.getDir((Actor.getDir() == 8)) != 9) { local_04 = 0; local_06 = 1; } else if (Actor.getDir((Actor.getDir() == 10)) != 11) { local_04 = -1; local_06 = 1; } else if (Actor.getDir((Actor.getDir() == 12)) != 13) { local_04 = -1; local_06 = 0; } else if (Actor.getDir((Actor.getDir() == 14)) != 15) { local_04 = -1; local_06 = -1; } } local_13 = local_0D; local_15 = local_0B; local_17 = local_09; local_0D = (local_0D + (local_04 * 8)); local_0B = (local_0B + (local_06 * 8)); if (Item.legalMoveToPoint(0, 1, local_0D, local_11)) { local_09 = (local_09 + 1); } local_08 = (1 + local_08); if ((local_08 <= 10) && (local_09 > 0)) { local_09 = (local_09 - 4); local_18 = 0; while (!Item.legalMoveToPoint(0, 1, local_0D, local_11)) { local_09 = (local_09 - 4); spawn FREE.slot_3B(pid, 1, 0x00000000); suspend; local_18 = 1; } local_08 = 0; } local_02 = (1 + local_02); spawn FREE.slot_3B(pid, 5, 0x00000000); suspend; } return; }