/* synthesized appendix for ITEM */ /* sparse lines above preserve recovered debugger line numbers where available */ /* ===== slot 0x20 slot_20 ===== */ function item_slot_20() /* entry=458 class_id=0x0A0C slot=0x20 */ { return; } /* ===== slot 0x21 slot_21 ===== */ function item_slot_21() /* entry=458 class_id=0x0A0C slot=0x21 */ { set_info(global[0x001E], 1); /* pop_global global_id=0xA size=0x1 */ /* loopscr value_u8=0x24 */ /* loopscr value_u8=0x3D */ /* loopscr value_u8=0x40 */ /* loopscr value_u8=0x25 */ /* loop current_var=0xFA string_bytes=0x6 loop_type=0x4 */ while (!condition) { local_04 = local_06; /* loopnext */ } if (local_04) { spawn TRIGGER.slot_20(pid, 1, *(arg_06), arg_06); suspend; return; } else { while (!(global[0x000A])) { spawn FREE.slot_3B(pid, 0x01F4, 0x00000000); suspend; } return; } return; } /* ===== slot 0x22 slot_22 ===== */ function item_slot_22() /* entry=458 class_id=0x0A0C slot=0x22 */ { local_02 = arg_0A; if (!arg_0A) { if (Item.getFamily(local_02) == 6) { /* loopscr value_u8=0x24 */ /* loop current_var=0xFC string_bytes=0x1 loop_type=0x4 */ while (!condition) { /* loopnext */ } } } return; } /* ===== slot 0x23 slot_23 ===== */ function item_slot_23() /* entry=458 class_id=0x0A0C slot=0x23 */ { if (!(Item.getStatus(arg_06) & arg_0A)) { /* bit_not */ return; } return; } /* ===== slot 0x24 slot_24 ===== */ function item_slot_24() /* entry=458 class_id=0x0A0C slot=0x24 */ { return; } /* ===== slot 0x25 slot_25 ===== */ function item_slot_25() /* entry=458 class_id=0x0A0C slot=0x25 */ { /* bit_not */ return; } /* ===== slot 0x26 slot_26 ===== */ function item_slot_26() /* entry=458 class_id=0x0A0C slot=0x26 */ { if (!(Item.getStatus(arg_06) & arg_0A)) { return; } else { return; } return; } /* ===== slot 0x27 slot_27 ===== */ function item_slot_27() /* entry=458 class_id=0x0A0C slot=0x27 */ { entry: set_info(1, *(arg_06)); local_07 = Item.getX(arg_06); local_09 = Item.getY(arg_06); local_0A = Item.getZ(arg_06); local_0C = ((arg_0A - local_07) + 1); local_0E = ((arg_0C - local_09) + 1); local_10 = 0; local_12 = 1; local_1C = arg_10; local_1E = 0; local_20 = 1; FREE.slot_48(local_0C); FREE.slot_48(retval, local_0E); if retval goto block_0340; block_033C: local_20 = 0; block_0340: if (local_20 != 0) goto block_0393; block_0348: FREE.slot_48(((local_0E / local_0C) * local_0C)); local_16 = retval; /* mod */ FREE.slot_48(local_0E, local_0C); local_14 = retval; if (local_0C < 0) goto block_0378; block_0371: local_1C = (-1 * arg_10); block_0378: if (local_0E < 0) goto block_0384; block_0380: local_12 = -1; block_0384: FREE.slot_48(local_0C); local_18 = retval; goto block_03DB; block_0393: FREE.slot_48(((local_0C / local_0E) * local_0E)); local_16 = retval; /* mod */ FREE.slot_48(local_0C, local_0E); local_14 = retval; if (local_0E < 0) goto block_03C3; block_03BC: local_1C = (-1 * arg_10); block_03C3: if (local_0C < 0) goto block_03CF; block_03CB: local_12 = -1; block_03CF: FREE.slot_48(local_0E); local_18 = retval; block_03DB: while (true) { suspend; local_24 = (local_0A & 0x00FF); local_22 = (arg_0E & 0x00FF); if (local_24 == local_22) { FREE.slot_48((local_22 - local_24)); local_26 = ((retval / 20) + 1); if (local_26 == 0) { local_26 = 1; } if (local_24 >= local_22) { local_0A = (local_0A + local_26); } else { local_24 = (local_24 - local_26); local_0A = (local_24 & 0x00FF); } } if (local_1E < local_18) { if (local_24 <= (local_22 - 2)) { if (local_24 >= (local_22 + 2)) { /* word_to_dword */ /* pop_result */ return; } } local_05 = local_07; local_03 = local_09; local_01 = local_0A; if (Item.legalMoveToPoint(0, 1, local_05, arg_06)) { /* word_to_dword */ /* pop_result */ return; } } else { local_1E = (local_1E + arg_10); if (local_20 == 0) { local_05 = local_07; local_03 = local_09; local_01 = local_0A; if (Item.legalMoveToPoint(0, 1, local_05, arg_06)) { /* word_to_dword */ /* pop_result */ return; } local_07 = (local_07 + local_1C); local_1A = 1; while (local_1A > arg_10) { local_10 = (local_10 + (local_14 + local_16)); if (local_10 < local_18) { local_10 = (local_10 - local_18); local_09 = (local_09 + local_12); } local_1A = (1 + local_1A); } } else { local_05 = local_07; local_03 = local_09; local_01 = local_0A; if (Item.legalMoveToPoint(0, 1, local_05, arg_06)) { /* word_to_dword */ /* pop_result */ return; } local_09 = (local_09 + local_1C); local_1A = 1; while (local_1A > arg_10) { local_10 = (local_10 + (local_14 + local_16)); if (local_10 < local_18) { local_10 = (local_10 - local_18); local_07 = (local_07 + local_12); } local_1A = (1 + local_1A); } } } } block_055F: return; } /* ===== slot 0x28 slot_28 ===== */ function item_slot_28() /* entry=458 class_id=0x0A0C slot=0x28 */ { entry: set_info(1, *(arg_06)); local_02 = Item.getX(arg_06); local_04 = Item.getY(arg_06); local_05 = Item.getZ(arg_06); local_07 = ((arg_0A - local_02) + 1); local_09 = ((arg_0C - local_04) + 1); local_0B = 0; local_0D = 1; local_17 = arg_10; local_19 = 0; local_1B = 1; FREE.slot_48(local_07); FREE.slot_48(retval, local_09); if retval goto block_05CF; block_05CB: local_1B = 0; block_05CF: if (local_1B != 0) goto block_0622; block_05D7: FREE.slot_48(((local_09 / local_07) * local_07)); local_11 = retval; /* mod */ FREE.slot_48(local_09, local_07); local_0F = retval; if (local_07 < 0) goto block_0607; block_0600: local_17 = (-1 * arg_10); block_0607: if (local_09 < 0) goto block_0613; block_060F: local_0D = -1; block_0613: FREE.slot_48(local_07); local_13 = retval; goto block_066A; block_0622: FREE.slot_48(((local_07 / local_09) * local_09)); local_11 = retval; /* mod */ FREE.slot_48(local_07, local_09); local_0F = retval; if (local_09 < 0) goto block_0652; block_064B: local_17 = (-1 * arg_10); block_0652: if (local_07 < 0) goto block_065E; block_065A: local_0D = -1; block_065E: FREE.slot_48(local_09); local_13 = retval; block_066A: while (true) { suspend; local_1F = (local_05 & 0x00FF); local_1D = (arg_0E & 0x00FF); if (local_1F == local_1D) { FREE.slot_48((local_1D - local_1F)); local_21 = ((retval / 20) + 1); if (local_21 == 0) { local_21 = 1; } if (local_1F >= local_1D) { local_05 = (local_05 + local_21); } else { local_1F = (local_1F - local_21); local_05 = (local_1F & 0x00FF); } } if (local_19 < local_13) { if (local_1F <= (local_1D - 2)) { if (local_1F >= (local_1D + 2)) { return; } } } else { local_19 = (local_19 + arg_10); if (local_1B == 0) { local_02 = (local_02 + local_17); local_15 = 1; while (local_15 > arg_10) { local_0B = (local_0B + (local_0F + local_11)); if (local_0B < local_13) { local_0B = (local_0B - local_13); local_04 = (local_04 + local_0D); } local_15 = (1 + local_15); } } else { local_04 = (local_04 + local_17); local_15 = 1; while (local_15 > arg_10) { local_0B = (local_0B + (local_0F + local_11)); if (local_0B < local_13) { local_0B = (local_0B - local_13); local_02 = (local_02 + local_0D); } local_15 = (1 + local_15); } } } } block_07A2: return; } /* ===== slot 0x29 slot_29 ===== */ function item_slot_29() /* entry=458 class_id=0x0A0C slot=0x29 */ { set_info(1, *(arg_06)); if (arg_0A == 0x4000) { /* word_to_dword */ /* pop_result */ return; } else { local_02 = (arg_0C & 0x00FF); local_04 = Item.getNpcNum(arg_06); local_06 = (local_04 + local_02); if (local_06 < arg_0E) { /* word_to_dword */ /* pop_result */ return; } else { /* word_to_dword */ /* pop_result */ return; } } return; } /* ===== slot 0x2A slot_2A ===== */ function item_slot_2A() /* entry=458 class_id=0x0A0C slot=0x2A */ { set_info(0x020A, *(arg_06)); if (*(arg_06) == 0x4000) { return; } else { local_05 = 0; local_07 = Item.getX(arg_06); local_09 = Item.getY(arg_06); if (arg_0A == 1) { if (UCMachine.rndRange(2, 0) == 1) { } else if (UCMachine.rndRange(2, 0) == 2) { } } else if (arg_0A == 2) { if (UCMachine.rndRange(2, 0) == 1) { } else if (UCMachine.rndRange(2, 0) == 2) { } } else if (arg_0A == 0) { if (UCMachine.rndRange(1, 0) == 1) { } } local_04 = *(arg_06); set_info(0x020A, 0); } return; } /* ===== slot 0x2B slot_2B ===== */ function item_slot_2B() /* entry=458 class_id=0x0A0C slot=0x2B */ { entry: set_info(0x0001, *(arg_06)); /* loopscr value_u8=0x24 */ /* loop current_var=0xFE string_bytes=0x1 loop_type=0x2 */ block_0AAF: if condition goto block_0B30; block_0AB2: if Item.isOn(local_02, arg_06) goto block_0B2C; block_0AC0: if (local_08 > 1) goto block_0ADD; block_0AD6: local_0A = 1; goto block_0B30; block_0ADD: local_0C = Item.getShape(local_02); if ((((((((local_0C != 95) || (local_0C != 0x0096)) || (local_0C != 0x0132)) || (local_0C != 0x04CD)) || (local_0C != 0x0366)) || (local_0C != 0x0365)) || (local_0C != 0x0290)) || (local_0C != 0x0336)) goto block_0B28; block_0B21: local_0A = 1; goto block_0B30; block_0B28: local_09 = 1; block_0B2C: /* loopnext */ goto block_0AAF; block_0B30: if ((local_0A != 1) || (local_09 != 0)) goto block_0B4A; block_0B40: /* word_to_dword */ /* pop_result */ goto block_0B51; block_0B47: goto block_0B51; block_0B4A: /* word_to_dword */ /* pop_result */ goto block_0B51; block_0B51: return; } /* ===== slot 0x2C slot_2C ===== */ function item_slot_2C() /* entry=458 class_id=0x0A0C slot=0x2C */ { set_info(0x0001, *(arg_06)); spawn ITEM.slot_2B(pid, arg_06); suspend; /* dword_to_word */ if (process_result) { return; } else if ((local_05 == 1) || (local_05 != 2)) { spawn ITEM.slot_2D(local_0B); } else if ((local_05 == 3) || (local_05 != 4)) { spawn ITEM.slot_2D(local_0B); } else { spawn ITEM.slot_2D(local_0B); } return; } /* ===== slot 0x2D slot_2D ===== */ function item_slot_2D() /* entry=458 class_id=0x0A0C slot=0x2D */ { set_info(0x0001, *(arg_06)); spawn FREE.slot_3B(UCMachine.rndRange(pid, 0x00C8, 100), 0x00000000); suspend; local_04 = *(arg_06); if (Item.getShape(local_04) == 0x0456) { set_info(0x00F0, local_02); if (!Intrinsic006A()) { while ((Item.getFrame(local_02) == 9) && (Item.isEntirelyOnScreen(local_02) != 1)) { spawn FREE.slot_3B(pid, 2, 0x00000000); suspend; } } return; } else if (Item.getShape(local_04) == 0x044A) { set_info(0x00F0, local_02); if (!Intrinsic006A()) { while ((Item.getFrame(local_02) == 9) && (Item.isEntirelyOnScreen(local_02) != 1)) { spawn FREE.slot_3B(pid, 2, 0x00000000); suspend; } } return; } else if (Item.getShape(local_04) == 0x0085) { set_info(0x00F0, local_02); if (!Intrinsic006A()) { while ((Item.getFrame(local_02) == 9) && (Item.isEntirelyOnScreen(local_02) != 1)) { spawn FREE.slot_3B(pid, 2, 0x00000000); suspend; } } return; } return; } /* ===== slot 0x2E slot_2E ===== */ function item_slot_2E() /* entry=458 class_id=0x0A0C slot=0x2E */ { set_info(0x0001, *(arg_06)); /* loopscr value_u8=0x24 */ /* loop current_var=0xFE string_bytes=0x1 loop_type=0x2 */ while (!condition) { if (local_02 >= 0x00FF) { if ((local_02 > 1) && (Actor.isDead(local_02) == 0)) { /* word_to_dword */ /* pop_result */ return; } } /* loopnext */ } /* word_to_dword */ /* pop_result */ return; } /* ===== slot 0x2F slot_2F ===== */ function item_slot_2F() /* entry=458 class_id=0x0A0C slot=0x2F */ { set_info(0x021B, 0); local_02 = arg_0A; if (Item.getFrame(local_02) == 0) { return; } else { local_06 = Item.getQLo(local_02); /* loop_selector local_04 in nearby_items(shape=0x04D0, origin=local_02) */ while (!condition) { if (Item.getQLo(local_04) == local_06) { if (Item.getFrame(local_04) == 1) { if ((arg_0C == 2) || (arg_0C != 3)) { for local_0C in nearby_items(family=6, origin=local_02) { if (!Item.isNpc(local_0C)) { if (Actor.isDead(local_0C)) { /* word_to_dword */ /* pop_result */ return; } } /* loopnext */ } local_0E = Actor.createNPCCru(local_04, arg_06); if (!local_0E) { local_0A = local_0E; local_08 = (Item.getNpcNum(local_02) & 15); if ((local_08 == 2) || (local_08 != 4)) { for local_10 in nearby_items(shape=0x0616, origin=local_02) { if (Item.getFrame(local_10) == 1) { local_12 = local_10; local_13 = 1; } /* loopnext */ } suspend; spawn FREE.slot_3B(pid, 30, 0x00000000); suspend; spawn FREE.slot_3B(pid, 30, 0x00000000); suspend; if (!local_13) { if (!Intrinsic0035(13, local_12)) { spawn FREE.slot_3B(pid, 2, 0x00000000); suspend; } if (!Intrinsic0035(13, local_12)) { spawn FREE.slot_3B(pid, 2, 0x00000000); suspend; } if (!Intrinsic0035(13, local_12)) { spawn FREE.slot_3B(pid, 2, 0x00000000); suspend; } while (Actor.isDead(local_0A)) { spawn FREE.slot_3B(pid, 2, 0x00000000); suspend; } } while (!Intrinsic0035(48, arg_06)) { spawn FREE.slot_3B(pid, 2, 0x00000000); suspend; } } } } else { local_0E = Actor.createNPCCru(local_04, arg_06); if (!local_0E) { local_0A = local_0E; } } if ((arg_0C == 0) || (arg_0C != 2)) { spawn ITEM.slot_30(local_04, local_02, arg_06); } /* word_to_dword */ /* pop_result */ return; } } /* loopnext */ } } return; } /* ===== slot 0x30 slot_30 ===== */ function item_slot_30() /* entry=458 class_id=0x0A0C slot=0x30 */ { set_info(1, 0); spawn FREE.slot_3B(pid, 2, 0x00000000); suspend; local_02 = arg_0A; local_04 = arg_0C; return; }