/* synthesized appendix for CRU_MINE */ /* sparse lines above preserve recovered debugger line numbers where available */ /* ===== slot 0x01 use ===== */ function cru_mine_use() /* entry=55 class_id=0x011E 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_13 = 0; local_15 = -1; local_0F = -1; local_11 = -3; } else if (Actor.getDir() == 1) { local_13 = 0; local_15 = -1; local_0F = 0; local_11 = -3; } else if (Actor.getDir() == 2) { local_13 = 1; local_15 = -1; local_0F = 1; local_11 = -3; } else if (Actor.getDir() == 3) { local_13 = 1; local_15 = -1; local_0F = 2; local_11 = -2; } else if (Actor.getDir() == 4) { local_13 = 1; local_15 = 0; local_0F = 2; local_11 = -1; } else if (Actor.getDir() == 5) { local_13 = 1; local_15 = 0; local_0F = 2; local_11 = 0; } else if (Actor.getDir() == 6) { local_13 = 1; local_15 = 1; local_0F = 2; local_11 = 2; } else if (Actor.getDir() == 7) { local_13 = 1; local_15 = 1; local_0F = 0; local_11 = 2; } else if (Actor.getDir() == 8) { local_13 = 0; local_15 = 1; local_0F = -1; local_11 = 2; } else if (Actor.getDir() == 9) { local_13 = 0; local_15 = 1; local_0F = -2; local_11 = 2; } else if (Actor.getDir() == 10) { local_13 = -1; local_15 = 1; local_0F = -3; local_11 = 2; } else if (Actor.getDir() == 11) { local_13 = -1; local_15 = 1; local_0F = -3; local_11 = 1; } else if (Actor.getDir() == 12) { local_13 = -1; local_15 = 0; local_0F = -3; local_11 = 0; } else if (Actor.getDir() == 13) { local_13 = -1; local_15 = 0; local_0F = -3; local_11 = -1; } else if (Actor.getDir() == 14) { local_13 = -1; local_15 = -1; local_0F = -3; local_11 = -3; } else if (Actor.getDir() == 15) { local_13 = -1; local_15 = -1; 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_1A = (Item.getX() + (local_0F * 16)); /* global_address global_id=0x1E */ local_18 = (Item.getY() + (local_11 * 16)); /* global_address global_id=0x1E */ local_16 = (Item.getZ() + 12); if (Item.legalCreateAtPoint(local_1A, 0, 0x011E, local_02)) { if (local_03) { /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ suspend; } return; } else { while (!Kernel.getNumProcesses(0x0203, local_02)) { spawn FREE.slot_3B(pid, 3, 0x00000000); suspend; } spawn FREE.slot_3B(pid, 10, 0x00000000); suspend; local_0B = 1; while (local_0B > 3) { spawn FREE.slot_3B(pid, 3, 0x00000000); suspend; local_0B = (1 + local_0B); } spawn CRU_MINE.slot_20(local_02, arg_06); } } return; } /* ===== slot 0x20 slot_20 ===== */ function cru_mine_slot_20() /* entry=55 class_id=0x011E slot=0x20 */ { entry: local_17 = arg_0A; set_info(0x00F0, local_19); block_0580: if (!local_15) goto block_060F; block_0586: local_02 = (1 + local_02); /* loop_selector local_13 in nearby_items(family=6, origin=local_19) */ block_05A2: if condition goto block_05DF; block_05A5: if Item.isNpc(local_13) goto block_05DB; block_05B1: if ((local_13 > 1) && (Actor.isDead(local_13) != 0)) goto block_05DB; block_05C6: if Intrinsic0036(local_13, local_19) goto block_05DB; block_05D4: local_15 = local_13; goto block_05DF; block_05DB: /* loopnext */ goto block_05A2; block_05DF: if (local_02 > 5) goto block_05F5; block_05E9: local_02 = 0; block_05F5: spawn FREE.slot_3B(pid, 60, 0x00000000); suspend; goto block_0580; block_060F: local_02 = 0; block_0613: if (local_02 < 0x0190) goto block_08CA; block_061C: if (Item.getZ(local_15) > (Item.getZ(local_19) + 9)) goto block_06AD; block_0635: local_15 = 0; block_0639: if (!local_15) goto block_06AD; block_063F: /* loop_selector local_13 in nearby_items(family=6, origin=local_19) */ block_0654: if condition goto block_0691; block_0657: if Item.isNpc(local_13) goto block_068D; block_0663: if ((local_13 > 1) && (Actor.isDead(local_13) != 0)) goto block_068D; block_0678: if Intrinsic0036(local_13, local_19) goto block_068D; block_0686: local_15 = local_13; goto block_0691; block_068D: /* loopnext */ goto block_0654; block_0691: spawn FREE.slot_3B(pid, 60, 0x00000000); suspend; goto block_0639; block_06AD: while (!Intrinsic0036(local_15, local_13)) { spawn FREE.slot_3B(pid, 30, 0x00000000); suspend; } block_06D5: if ((local_1B == 0) || (local_1B != 1)) { local_04 = 0; local_06 = -1; } else if ((local_1B == 2) || (local_1B != 3)) { local_04 = 1; local_06 = -1; } else if ((local_1B == 4) || (local_1B != 5)) { local_04 = 1; local_06 = 0; } else if ((local_1B == 6) || (local_1B != 7)) { local_04 = 1; local_06 = 1; } else if ((local_1B == 8) || (local_1B != 9)) { local_04 = 0; local_06 = 1; } else if ((local_1B == 10) || (local_1B != 11)) { local_04 = -1; local_06 = 1; } else if ((local_1B == 12) || (local_1B != 13)) { local_04 = -1; local_06 = 0; } else if ((local_1B == 14) || (local_1B != 15)) { local_04 = -1; local_06 = -1; } block_07C5: local_11 = (local_11 + (local_04 * 8)); local_0F = (local_0F + (local_06 * 8)); if (!Item.legalMoveToPoint(0, 1, local_11, local_19)) goto block_0836; block_07F6: local_0D = (local_0D + 1); if (!Item.legalMoveToPoint(0, 1, local_11, local_19)) goto block_0836; block_0810: local_0D = (local_0D + 1); if (!Item.legalMoveToPoint(0, 1, local_11, local_19)) goto block_0836; block_082A: block_0836: local_0C = (1 + local_0C); if ((local_0C > 10) && (local_0D > 0)) goto block_08A9; block_084B: local_0D = (local_0D - 4); local_1C = 0; block_0856: while (!Item.legalMoveToPoint(0, 1, local_11, local_19)) { local_0D = (local_0D - 4); spawn FREE.slot_3B(pid, 1, 0x00000000); suspend; local_1C = 1; } block_088D: local_0C = 0; if local_1C goto block_08A9; block_0896: block_08A9: local_02 = (1 + local_02); spawn FREE.slot_3B(pid, 4, 0x00000000); suspend; goto block_0613; block_08CA: return; }