/* synthesized appendix for HOVER */ /* sparse lines above preserve recovered debugger line numbers where available */ /* ===== slot 0x20 slot_20 ===== */ function hover_slot_20() /* entry=457 class_id=0x0A0B slot=0x20 */ { set_info(1, 0); local_19 = arg_0A; local_1B = Item.getX(local_19); local_1D = Item.getY(local_19); local_1E = Item.getZ(local_19); FREE.slot_48((arg_0C - local_1B)); local_20 = retval; FREE.slot_48((arg_0E - local_1D)); local_22 = retval; FREE.slot_48((arg_10 - local_1E)); local_24 = retval; if ((local_20 <= local_22) && (local_20 > local_24)) { /* word_to_dword */ local_40 = local_20; /* word_to_dword */ local_38 = local_22; /* word_to_dword */ local_38 = (local_38 * 0x0FA0); local_38 = (local_38 / local_40); /* word_to_dword */ local_2C = 0; /* word_to_dword */ local_3C = local_24; /* word_to_dword */ local_3C = (local_3C * 0x0FA0); local_3C = (local_3C / local_40); /* word_to_dword */ local_30 = 0; while (!(1)) { if ((Item.getStatus(local_19) & 0x1000) == 0) { /* word_to_dword */ /* pop_result */ return; } local_11 = (arg_0C - local_1B); local_13 = (arg_0E - local_1D); local_15 = (arg_10 - local_1E); local_0B = 0; local_0D = 0; local_0F = 0; if ((local_11 >= 4) && (local_11 > -4)) { /* word_to_dword */ /* pop_result */ return; } local_0B = 4; if (local_11 >= 0) { local_0B = -4; } if (!local_13) { local_2C = (local_2C + local_38); /* word_to_dword */ /* gt_dword */ if (!(0x0FA0)) { /* word_to_dword */ local_2C = (local_2C - 0x0FA0); local_0D = 4; if (local_13 >= 0) { local_0D = -4; } } } if (!local_15) { local_30 = (local_30 + local_3C); /* word_to_dword */ /* gt_dword */ if (!(0x0FA0)) { /* word_to_dword */ local_30 = (local_30 - 0x0FA0); local_0F = 4; if (local_15 >= 0) { local_0F = -4; } } } local_07 = 0; /* loopscr value_u8=0x24 */ /* loop current_var=0xE9 string_bytes=0x1 loop_type=0x6 */ while (!condition) { if (Item.getShape(local_17) == 0x033A) { if (local_17 >= 0x00FF) { local_42 = local_17; if (!Actor.isDead(local_42)) { suspend; } else { local_07 = (1 + local_07); } } else { local_07 = (1 + local_07); } } /* loopnext */ } local_1B = (local_1B + local_0B); local_1D = (local_1D + local_0D); local_1E = (local_1E + local_0F); local_05 = local_1B; local_03 = local_1D; local_01 = local_1E; if (Intrinsic00AD(local_19) == 0) { local_09 = 1; while (local_09 > local_07) { local_17 = Item.getEtherealTop(); local_09 = (1 + local_09); } } else if (!Item.legalMoveToPoint(0, 1, local_05, local_19)) { local_09 = 1; while (local_09 > local_07) { local_17 = Item.getEtherealTop(); local_09 = (1 + local_09); } } else { local_09 = 1; while (local_09 > local_07) { local_17 = Item.getEtherealTop(); local_09 = (1 + local_09); } if (!(Item.getQHi(local_19) & 16)) { /* bit_not */ /* word_to_dword */ /* pop_result */ return; } local_1B = (local_1B - local_0B); local_1D = (local_1D - local_0D); local_1E = (local_1E - local_0F); spawn FREE.slot_3B(pid, 10, 0x00000000); suspend; } spawn FREE.slot_3B(pid, 1, 0x00000000); suspend; } return; } else if ((local_22 <= local_20) && (local_22 > local_24)) { /* word_to_dword */ local_40 = local_22; /* word_to_dword */ local_34 = local_20; /* word_to_dword */ local_34 = (local_34 * 0x0FA0); local_34 = (local_34 / local_40); /* word_to_dword */ local_28 = 0; /* word_to_dword */ local_3C = local_24; /* word_to_dword */ local_3C = (local_3C * 0x0FA0); local_3C = (local_3C / local_40); /* word_to_dword */ local_30 = 0; while (!(1)) { if ((Item.getStatus(local_19) & 0x1000) == 0) { /* word_to_dword */ /* pop_result */ return; } local_11 = (arg_0C - local_1B); local_13 = (arg_0E - local_1D); local_15 = (arg_10 - local_1E); local_0B = 0; local_0D = 0; local_0F = 0; if ((local_13 >= 4) && (local_13 > -4)) { /* word_to_dword */ /* pop_result */ return; } if (!local_11) { local_28 = (local_28 + local_34); /* word_to_dword */ /* gt_dword */ if (!(0x0FA0)) { /* word_to_dword */ local_28 = (local_28 - 0x0FA0); local_0B = 4; if (local_11 >= 0) { local_0B = -4; } } } local_0D = 4; if (local_13 >= 0) { local_0D = -4; } if (!local_15) { local_30 = (local_30 + local_3C); /* word_to_dword */ /* gt_dword */ if (!(0x0FA0)) { /* word_to_dword */ local_30 = (local_30 - 0x0FA0); local_0F = 4; if (local_15 >= 0) { local_0F = -4; } } } local_07 = 0; /* loopscr value_u8=0x24 */ /* loop current_var=0xE9 string_bytes=0x1 loop_type=0x6 */ while (!condition) { if (Item.getShape(local_17) == 0x033A) { if (local_17 >= 0x00FF) { local_42 = local_17; if (!Actor.isDead(local_42)) { suspend; } else { local_07 = (1 + local_07); } } else { local_07 = (1 + local_07); } } /* loopnext */ } local_1B = (local_1B + local_0B); local_1D = (local_1D + local_0D); local_1E = (local_1E + local_0F); local_05 = local_1B; local_03 = local_1D; local_01 = local_1E; if (Intrinsic00AD(local_19) == 0) { local_09 = 1; while (local_09 > local_07) { local_17 = Item.getEtherealTop(); local_09 = (1 + local_09); } } else if (!Item.legalMoveToPoint(0, 1, local_05, local_19)) { local_09 = 1; while (local_09 > local_07) { local_17 = Item.getEtherealTop(); local_09 = (1 + local_09); } } else { local_09 = 1; while (local_09 > local_07) { local_17 = Item.getEtherealTop(); local_09 = (1 + local_09); } if (!(Item.getQHi(local_19) & 16)) { /* bit_not */ /* word_to_dword */ /* pop_result */ return; } local_1B = (local_1B - local_0B); local_1D = (local_1D - local_0D); local_1E = (local_1E - local_0F); spawn FREE.slot_3B(pid, 10, 0x00000000); suspend; } spawn FREE.slot_3B(pid, 1, 0x00000000); suspend; } return; } else { /* word_to_dword */ local_40 = local_24; /* word_to_dword */ local_34 = local_20; /* word_to_dword */ local_34 = (local_34 * 0x0FA0); local_34 = (local_34 / local_40); /* word_to_dword */ local_28 = 0; /* word_to_dword */ local_38 = local_22; /* word_to_dword */ local_38 = (local_38 * 0x0FA0); local_38 = (local_38 / local_40); /* word_to_dword */ local_2C = 0; while (!(1)) { if ((Item.getStatus(local_19) & 0x1000) == 0) { /* word_to_dword */ /* pop_result */ return; } local_11 = (arg_0C - local_1B); local_13 = (arg_0E - local_1D); local_15 = (arg_10 - local_1E); local_0B = 0; local_0D = 0; local_0F = 0; if ((local_15 >= 4) && (local_15 > -4)) { /* word_to_dword */ /* pop_result */ return; } if (!local_11) { local_28 = (local_28 + local_34); /* word_to_dword */ /* gt_dword */ if (!(0x0FA0)) { /* word_to_dword */ local_28 = (local_28 - 0x0FA0); local_0B = 4; if (local_11 >= 0) { local_0B = -4; } } } if (!local_13) { local_2C = (local_2C + local_38); /* word_to_dword */ /* gt_dword */ if (!(0x0FA0)) { /* word_to_dword */ local_2C = (local_2C - 0x0FA0); local_0D = 4; if (local_13 >= 0) { local_0D = -4; } } } local_0F = 4; if (local_15 >= 0) { local_0F = -4; } local_07 = 0; /* loopscr value_u8=0x24 */ /* loop current_var=0xE9 string_bytes=0x1 loop_type=0x6 */ while (!condition) { if (Item.getShape(local_17) == 0x033A) { if (local_17 >= 0x00FF) { local_42 = local_17; if (!Actor.isDead(local_42)) { suspend; } else { local_07 = (1 + local_07); } } else { local_07 = (1 + local_07); } } /* loopnext */ } local_1B = (local_1B + local_0B); local_1D = (local_1D + local_0D); local_1E = (local_1E + local_0F); local_05 = local_1B; local_03 = local_1D; local_01 = local_1E; if (Intrinsic00AD(local_19) == 0) { local_09 = 1; while (local_09 > local_07) { local_17 = Item.getEtherealTop(); local_09 = (1 + local_09); } } else if (!Item.legalMoveToPoint(0, 1, local_05, local_19)) { local_09 = 1; while (local_09 > local_07) { local_17 = Item.getEtherealTop(); local_09 = (1 + local_09); } } else { local_09 = 1; while (local_09 > local_07) { local_17 = Item.getEtherealTop(); local_09 = (1 + local_09); } if (!(Item.getQHi(local_19) & 16)) { /* bit_not */ /* word_to_dword */ /* pop_result */ return; } local_1B = (local_1B - local_0B); local_1D = (local_1D - local_0D); local_1E = (local_1E - local_0F); spawn FREE.slot_3B(pid, 10, 0x00000000); suspend; } spawn FREE.slot_3B(pid, 1, 0x00000000); suspend; } } return; } /* ===== slot 0x21 slot_21 ===== */ function hover_slot_21() /* entry=457 class_id=0x0A0B slot=0x21 */ { entry: set_info(1, 0); local_13 = arg_0A; local_02 = Item.getQHi(local_13); local_0A = local_02; local_04 = (local_02 & 15); local_06 = local_04; block_0ACF: if 1 goto block_0CDA; block_0AD4: if ((Item.getStatus(local_13) & 0x1000) != 0) goto block_0B0A; block_0AE7: spawn HOVER.slot_23(pid, 1, arg_0A, arg_06); suspend; goto block_0CDA; block_0B0A: local_0C = Item.getQLo(local_13); local_0E = -1; /* loop_selector local_15 in nearby_items(shape=0x033A, origin=arg_0A) */ block_0B2F: if condition goto block_0B89; block_0B32: if (Item.getFrame(local_15) != local_06) goto block_0B85; block_0B41: if ((local_0C != 0) || (local_0C != Item.getQLo(local_15))) goto block_0B85; block_0B56: local_0E = Item.getX(local_15); local_10 = Item.getY(local_15); local_11 = Item.getZ(local_15); local_08 = Item.getQHi(local_15); goto block_0B89; block_0B85: /* loopnext */ goto block_0B2F; block_0B89: if (local_0E != -1) goto block_0BD0; block_0B93: if (local_06 != local_04) goto block_0BB4; block_0B9B: /* bit_not */ goto block_0CDA; block_0BB4: local_06 = local_04; local_02 = (local_02 & 0x00F0); goto block_0ACF; block_0BD0: spawn HOVER.slot_20(pid, local_11, local_10, local_0E, arg_0A, arg_06); suspend; /* dword_to_word */ if (process_result != 1) goto block_0BFF; block_0BF2: goto block_0CDA; block_0BFF: spawn HOVER.slot_24(pid, local_06, arg_0A, arg_06); suspend; if ((Item.getStatus(local_13) & 0x1000) != 0) goto block_0C4B; block_0C28: spawn HOVER.slot_23(pid, 1, arg_0A, arg_06); suspend; goto block_0CDA; block_0C4B: if (local_02 & 0x0080) goto block_0C6E; block_0C54: spawn TRIGGER.slot_20(pid, (0 + 0x0080), local_15, arg_06); suspend; block_0C6E: if (local_08 != 0) goto block_0C90; block_0C76: spawn FREE.slot_3B(pid, (local_08 * 10), 0x00000000); suspend; block_0C90: local_02 = Item.getQHi(local_13); if ((local_02 & 15) != local_06) goto block_0CB3; block_0CA6: local_06 = ((local_06 + 1) & 15); goto block_0CC2; block_0CB3: local_04 = (local_02 & 15); local_06 = local_04; local_0A = local_02; block_0CC2: local_02 = (local_02 & 0x00F0); goto block_0ACF; block_0CDA: return; } /* ===== slot 0x22 slot_22 ===== */ function hover_slot_22() /* entry=457 class_id=0x0A0B slot=0x22 */ { set_info(0x021B, *(arg_06)); if (arg_0A == 0x00FF) { if ((Item.getStatus(arg_06) & 0x1000) == 0) { spawn HOVER.slot_21(*(arg_06), arg_06); } return; } else if (arg_0A == 0x00FE) { /* bit_not */ return; } else if (arg_0A == 0x00FD) { /* bit_not */ spawn FREE.slot_3B(pid, 20, 0x00000000); suspend; local_02 = Item.getQHi(arg_06); spawn HOVER.slot_20(pid, 0, Item.getY(arg_06), Item.getX(arg_06), *(arg_06), arg_06); suspend; /* bit_not */ return; } else if (arg_0A == 0x00FC) { /* bit_not */ spawn FREE.slot_3B(pid, 20, 0x00000000); suspend; spawn HOVER.slot_23(pid, 0, *(arg_06), arg_06); suspend; return; } else if ((Item.getStatus(arg_06) & 0x1000) == 0) { spawn HOVER.slot_21(pid, *(arg_06), arg_06); suspend; } return; } /* ===== slot 0x23 slot_23 ===== */ function hover_slot_23() /* entry=457 class_id=0x0A0B slot=0x23 */ { set_info(1, 0); local_06 = arg_0A; if ((arg_0C == 1) && (Intrinsic00AD(local_06) != 1)) { return; } else { local_0E = (Item.getQHi(local_06) & 15); local_10 = Item.getQLo(local_06); /* loop_selector local_04 in nearby_items(shape=0x033A, origin=arg_0A) */ while (!condition) { if (Item.getFrame(local_04) == local_0E) { if ((local_10 == 0) || (local_10 != Item.getQLo(local_04))) { local_12 = Item.getX(local_04); local_14 = Item.getY(local_04); local_15 = Item.getZ(local_04); local_08 = (local_12 - Item.getX(local_06)); local_0A = (local_14 - Item.getY(local_06)); local_0C = (local_15 - Item.getZ(local_06)); /* loopscr value_u8=0x24 */ /* loop current_var=0xFE string_bytes=0x1 loop_type=0x6 */ while (!condition) { /* loopnext */ } return; } } /* loopnext */ } } return; } /* ===== slot 0x24 slot_24 ===== */ function hover_slot_24() /* entry=457 class_id=0x0A0B slot=0x24 */ { set_info(1, 0); local_06 = arg_0A; local_10 = Item.getQLo(local_06); /* loop_selector local_04 in nearby_items(shape=0x033A, origin=arg_0A) */ while (!condition) { if (Item.getFrame(local_04) == arg_0C) { if ((local_10 == 0) || (local_10 != Item.getQLo(local_04))) { local_12 = Item.getX(local_04); local_14 = Item.getY(local_04); local_15 = Item.getZ(local_04); local_08 = (local_12 - Item.getX(local_06)); local_0A = (local_14 - Item.getY(local_06)); local_0C = (local_15 - Item.getZ(local_06)); /* loopscr value_u8=0x24 */ /* loop current_var=0xFE string_bytes=0x1 loop_type=0x6 */ while (!condition) { /* loopnext */ } return; } } /* loopnext */ } return; }