/* synthesized appendix for TRIGGER */ /* sparse lines above preserve recovered debugger line numbers where available */ /* ===== slot 0x20 slot_20 ===== */ function trigger_slot_20() /* entry=469 class_id=0x0A17 slot=0x20 */ { entry: set_info(0x021B, 0); local_10 = 0; local_12 = 0; local_14 = 0; spawn FREE.slot_3B(pid, 1, 0x00000000); suspend; local_0E = arg_0A; if (arg_0C != 0x00FE) goto block_0161; block_0154: local_10 = 0x00FE; arg_0C = 0x0080; goto block_018D; block_0161: local_06 = Item.getQHi(local_0E); local_10 = Item.getQLo(local_0E); local_0A = Item.getMapNum(local_0E); local_08 = Item.getNpcNum(local_0E); block_018D: local_12 = local_10; /* pop_global global_id=0x22 size=0x2 */ if (arg_0C < 0x0080) goto block_03A6; block_01A0: local_14 = (((local_0A & 0x00E0) * 8) + local_08); if (local_0A != 0) goto block_01B9; block_01B6: goto block_0485; block_01B9: if (local_10 != 0) goto block_01C4; block_01C1: goto block_0485; block_01C4: local_04 = 0; if (local_0A & 8) goto block_01D4; block_01D0: local_04 = 1; block_01D4: if (arg_0C != local_04) goto block_03A6; block_01DC: if (local_0A & 4) goto block_0306; block_01E4: if Item.isCrusTypeNPC(local_14) goto block_0275; block_01F0: if (local_10 != 0x00FF) goto block_0222; block_01F9: if (local_14 != 0) goto block_021F; block_0201: spawn TRIGGER.slot_2A(pid, local_14, local_10, local_0A, local_08, local_06, arg_0A, arg_06); suspend; block_021F: goto block_0272; block_0222: if (local_14 != 0x07FE) goto block_024C; block_022B: spawn TRIGGER.slot_2B(pid, local_14, local_10, local_0A, local_08, local_06, arg_0A, arg_06); suspend; goto block_0272; block_024C: if (local_14 != 0) goto block_0272; block_0254: spawn TRIGGER.slot_29(pid, local_14, local_10, local_0A, local_08, local_06, arg_0A, arg_06); suspend; block_0272: goto block_0303; block_0275: if (local_10 != 0x00FF) goto block_02AB; block_027E: if (local_14 != 0) goto block_02A8; block_0286: spawn TRIGGER.slot_25(pid, local_14, local_10, local_0A, local_08, local_06, arg_0A, arg_06); suspend; /* dword_to_word */ local_10 = process_result; block_02A8: goto block_0303; block_02AB: if (local_14 != 0x07FF) goto block_02D9; block_02B4: spawn TRIGGER.slot_24(pid, local_14, local_10, local_0A, local_08, local_06, arg_0A, arg_06); suspend; /* dword_to_word */ local_10 = process_result; goto block_0303; block_02D9: if (local_14 != 0) goto block_0303; block_02E1: spawn TRIGGER.slot_23(pid, local_14, local_10, local_0A, local_08, local_06, arg_0A, arg_06); suspend; /* dword_to_word */ local_10 = process_result; block_0303: goto block_0394; block_0306: if (local_10 != 0x00FF) goto block_033C; block_030F: if (local_14 != 0) goto block_0339; block_0317: spawn TRIGGER.slot_28(pid, local_14, local_10, local_0A, local_08, local_06, arg_0A, arg_06); suspend; /* dword_to_word */ local_10 = process_result; block_0339: goto block_0394; block_033C: if (local_14 != 0x07FF) goto block_036A; block_0345: spawn TRIGGER.slot_27(pid, local_14, local_10, local_0A, local_08, local_06, arg_0A, arg_06); suspend; /* dword_to_word */ local_10 = process_result; goto block_0394; block_036A: if (local_14 != 0) goto block_0394; block_0372: spawn TRIGGER.slot_26(pid, local_14, local_10, local_0A, local_08, local_06, arg_0A, arg_06); suspend; /* dword_to_word */ local_10 = process_result; block_0394: if (local_0A & 16) goto block_03A6; block_039C: block_03A6: local_16 = (arg_0C & 1); block_03AD: if 1 goto block_0485; block_03B2: for local_0C in nearby_items(shape=0x04B1, origin=local_0E) { if (Item.getQLo(local_0C) == local_10) { local_0A = Item.getMapNum(local_0C); local_04 = 0; if (!(local_0A & 8)) { local_04 = 1; } if (local_16 == local_04) { if (!(local_0A & 16)) { spawn TRIGGER.slot_21(pid, local_0C, arg_06); suspend; /* dword_to_word */ local_12 = process_result; } else { /* create_list element_size=0x2 count=0x1 */ /* append_list */ /* free_local_list bp_offset=0xFE target=[BP-02h] */ local_02 = local_0C; } } } /* loopnext */ } block_0431: block_0439: while (true) { foreach_list local_0C -> block_0473; spawn TRIGGER.slot_21(pid, local_0C, arg_06); suspend; /* dword_to_word */ local_18 = process_result; /* create_list element_size=0x2 count=0x1 */ /* remove_matching_inline element_size=0x2 */ /* free_local_list bp_offset=0xFE target=[BP-02h] */ local_02 = local_0C; if (local_18 == local_10) { local_12 = local_18; } } block_0473: if (local_12 != local_10) goto block_047E; block_047B: goto block_0485; block_047E: local_10 = local_12; goto block_03AD; block_0485: /* free_local_list bp_offset=0xFE target=[BP-02h] */ return; } /* ===== slot 0x21 slot_21 ===== */ function trigger_slot_21() /* entry=469 class_id=0x0A17 slot=0x21 */ { set_info(0x021B, 0); local_0C = arg_0A; local_0E = Item.getQLo(local_0C); local_10 = local_0E; local_04 = Item.getQHi(local_0C); local_08 = Item.getMapNum(local_0C); local_06 = Item.getNpcNum(local_0C); local_0A = (((local_08 & 0x00E0) * 8) + local_06); if (local_08 == 0) { return; } else if (!(local_08 & 4)) { if (!Item.isCrusTypeNPC(local_0A)) { if (local_0E == 0x00FF) { if (local_0A == 0) { spawn TRIGGER.slot_2A(pid, local_0A, local_0E, local_08, local_06, local_04, arg_0A, arg_06); suspend; } } else if (local_0A == 0x07FE) { spawn TRIGGER.slot_2B(pid, local_0A, local_0E, local_08, local_06, local_04, arg_0A, arg_06); suspend; } else if (local_0A == 0) { spawn TRIGGER.slot_29(pid, local_0A, local_0E, local_08, local_06, local_04, arg_0A, arg_06); suspend; } } else if (local_0E == 0x00FF) { if (local_0A == 0) { spawn TRIGGER.slot_25(pid, local_0A, local_0E, local_08, local_06, local_04, arg_0A, arg_06); suspend; /* dword_to_word */ local_10 = process_result; } } else if (local_0A == 0x07FF) { spawn TRIGGER.slot_24(pid, local_0A, local_0E, local_08, local_06, local_04, arg_0A, arg_06); suspend; /* dword_to_word */ local_10 = process_result; } else if (local_0A == 0) { spawn TRIGGER.slot_23(pid, local_0A, local_0E, local_08, local_06, local_04, arg_0A, arg_06); suspend; /* dword_to_word */ local_10 = process_result; } } else if (local_0E == 0x00FF) { if (local_0A == 0) { spawn TRIGGER.slot_28(pid, local_0A, local_0E, local_08, local_06, local_04, arg_0A, arg_06); suspend; /* dword_to_word */ local_10 = process_result; } } else if (local_0A == 0x07FF) { spawn TRIGGER.slot_27(pid, local_0A, local_0E, local_08, local_06, local_04, arg_0A, arg_06); suspend; /* dword_to_word */ local_10 = process_result; } else if (local_0A == 0) { spawn TRIGGER.slot_26(pid, local_0A, local_0E, local_08, local_06, local_04, arg_0A, arg_06); suspend; /* dword_to_word */ local_10 = process_result; } /* word_to_dword */ /* pop_result */ return; return; } /* ===== slot 0x22 slot_22 ===== */ function trigger_slot_22() /* entry=469 class_id=0x0A17 slot=0x22 */ { set_info(0x021B, 0); local_02 = arg_0A; while (!(1)) { if ((Item.getStatus(local_02) & 0x1000) == 0) { spawn DOOR.slot_21(pid, arg_0C, local_02); suspend; /* bit_not */ return; } else { spawn FREE.slot_3B(pid, 10, 0x00000000); suspend; } } return; } /* ===== slot 0x23 slot_23 ===== */ function trigger_slot_23() /* entry=469 class_id=0x0A17 slot=0x23 */ { set_info(0x021B, 0); local_12 = arg_12; local_10 = arg_0A; local_04 = (arg_10 & 3); if (local_04 == 0) { for local_0E in nearby_items(shape=arg_14, origin=local_10) { /* loopnext */ } } else if (local_04 == 1) { for local_0E in nearby_items(shape=arg_14, origin=local_10) { /* loopnext */ } } else if (local_04 == 2) { for local_0E in nearby_items(shape=arg_14, origin=local_10) { /* loopnext */ } } else if (local_04 == 3) { local_02 = (arg_0C & 7); if (local_02 == 0) { local_0C = (arg_0C / 8); /* loop_selector local_0E in nearby_items(shape=0x0476, origin=local_10) */ while (!condition) { if (Item.getQLo(local_0E) == arg_12) { local_06 = Item.getNpcNum(local_0E); local_0A = (local_06 & 15); local_08 = Item.getMapNum(local_0E); local_08 = (((local_06 & 0x00E0) * 8) + local_08); FREE.slot_39(local_0C, local_0A, local_08, local_0E); } /* loopnext */ } } else if (local_02 == 1) { local_0C = (arg_0C / 8); /* loop_selector local_0E in nearby_items(shape=arg_14, origin=local_10) */ while (!condition) { if (Item.getQLo(local_0E) == arg_12) { if (arg_0A == local_0E) { if (local_0C == 31) { suspend; } else { local_0A = Item.getFrame(local_0E); local_08 = Item.getShape(local_0E); local_06 = (local_08 & 0x00FF); local_08 = (local_08 & 0x0700); local_08 = (local_08 / 8); local_08 = (local_08 + local_0A); suspend; /* bit_not */ } } } /* loopnext */ } } else if (local_02 == 2) { local_06 = (arg_0C / 8); /* loop_selector local_0E in nearby_items(shape=arg_14, origin=local_10) */ while (!condition) { /* loopnext */ } } else if (local_02 == 3) { for local_0E in nearby_items(shape=arg_14, origin=local_10) { if (Item.getQLo(local_0E) == arg_12) { if (arg_0A == local_0E) { local_06 = (arg_0C / 8); spawn TRIGGER.slot_22(local_06, local_0E, arg_06); } } /* loopnext */ } } else if (local_02 == 4) { local_06 = (arg_0C / 8); local_12 = (local_12 + local_06); } else if (local_02 == 5) { local_06 = (arg_0C / 8); local_12 = (local_12 - local_06); } else if (local_02 == 6) { local_0C = (arg_0C / 8); /* loop_selector local_0E in nearby_items(shape=0x0476, origin=local_10) */ while (!condition) { if (Item.getQLo(local_0E) == arg_12) { local_06 = Item.getNpcNum(local_0E); local_0A = (local_06 & 15); local_08 = Item.getMapNum(local_0E); local_08 = (((local_06 & 0x00E0) * 8) + local_08); if (local_08 == 0) { if (Item.create(local_0A, local_08, local_14) == 1) { suspend; } } } /* loopnext */ } } } /* word_to_dword */ /* pop_result */ return; } /* ===== slot 0x24 slot_24 ===== */ function trigger_slot_24() /* entry=469 class_id=0x0A17 slot=0x24 */ { set_info(0x021B, 0); local_12 = arg_12; local_10 = arg_0A; local_04 = (arg_10 & 3); if (local_04 == 0) { for local_0E in nearby_items(family=1, origin=local_10) { /* loopnext */ } } else if (local_04 == 1) { for local_0E in nearby_items(family=1, origin=local_10) { /* loopnext */ } } else if (local_04 == 2) { for local_0E in nearby_items(family=1, origin=local_10) { /* loopnext */ } } else if (local_04 == 3) { local_02 = (arg_0C & 7); if (local_02 == 0) { local_0C = (arg_0C / 8); /* loop_selector local_0E in nearby_items(shape=0x0476, origin=local_10) */ while (!condition) { if (Item.getQLo(local_0E) == arg_12) { local_06 = Item.getNpcNum(local_0E); local_0A = (local_06 & 15); local_08 = Item.getMapNum(local_0E); local_08 = (((local_06 & 0x00E0) * 8) + local_08); FREE.slot_39(local_0C, local_0A, local_08, local_0E); } /* loopnext */ } } else if (local_02 == 1) { local_0C = (arg_0C / 8); /* loop_selector local_0E in nearby_items(family=1, origin=local_10) */ while (!condition) { if (Item.getQLo(local_0E) == arg_12) { if (arg_0A == local_0E) { if (local_0C == 31) { suspend; } else { local_0A = Item.getFrame(local_0E); local_08 = Item.getShape(local_0E); local_06 = (local_08 & 0x00FF); local_08 = (local_08 & 0x0700); local_08 = (local_08 / 8); local_08 = (local_08 + local_0A); suspend; /* bit_not */ } } } /* loopnext */ } } else if (local_02 == 2) { local_06 = (arg_0C / 8); /* loop_selector local_0E in nearby_items(family=1, origin=local_10) */ while (!condition) { /* loopnext */ } } else if (local_02 == 3) { if (global[0x0022] == 100) { local_14 = 32; } else { local_14 = global[0x0022]; } for local_0E in nearby_items(family=1, origin=local_10) { if (Item.getQLo(local_0E) == arg_12) { if (arg_0A == local_0E) { local_06 = (arg_0C / 8); spawn TRIGGER.slot_22(local_06, local_0E, arg_06); } } /* loopnext */ } } else if (local_02 == 4) { local_06 = (arg_0C / 8); local_12 = (local_12 + local_06); } else if (local_02 == 5) { local_06 = (arg_0C / 8); local_12 = (local_12 - local_06); } else if (local_02 == 6) { local_0C = (arg_0C / 8); /* loop_selector local_0E in nearby_items(shape=0x0476, origin=local_10) */ while (!condition) { if (Item.getQLo(local_0E) == arg_12) { local_06 = Item.getNpcNum(local_0E); local_0A = (local_06 & 15); local_08 = Item.getMapNum(local_0E); local_08 = (((local_06 & 0x00E0) * 8) + local_08); if (local_08 == 0) { if (Item.create(local_0A, local_08, local_16) == 1) { suspend; } } } /* loopnext */ } } } /* word_to_dword */ /* pop_result */ return; } /* ===== slot 0x25 slot_25 ===== */ function trigger_slot_25() /* entry=469 class_id=0x0A17 slot=0x25 */ { set_info(0x021B, 0); local_12 = arg_12; local_10 = arg_0A; local_04 = (arg_10 & 3); if (local_04 == 0) { for local_0E in nearby_items(shape=arg_14, origin=local_10) { /* loopnext */ } } else if (local_04 == 1) { for local_0E in nearby_items(shape=arg_14, origin=local_10) { /* loopnext */ } } else if (local_04 == 2) { for local_0E in nearby_items(shape=arg_14, origin=local_10) { /* loopnext */ } } else if (local_04 == 3) { local_02 = (arg_0C & 7); if (local_02 == 0) { local_0C = (arg_0C / 8); /* loop_selector local_0E in nearby_items(shape=0x0476, origin=local_10) */ while (!condition) { local_06 = Item.getNpcNum(local_0E); local_0A = (local_06 & 15); local_08 = Item.getMapNum(local_0E); local_08 = (((local_06 & 0x00E0) * 8) + local_08); FREE.slot_39(local_0C, local_0A, local_08, local_0E); /* loopnext */ } } else if (local_02 == 1) { local_0C = (arg_0C / 8); /* loop_selector local_0E in nearby_items(shape=arg_14, origin=local_10) */ while (!condition) { if (arg_0A == local_0E) { if (local_0C == 31) { suspend; } else { local_0A = Item.getFrame(local_0E); local_08 = Item.getShape(local_0E); local_06 = (local_08 & 0x00FF); local_08 = (local_08 & 0x0700); local_08 = (local_08 / 8); local_08 = (local_08 + local_0A); suspend; /* bit_not */ } } /* loopnext */ } } else if (local_02 == 2) { local_06 = (arg_0C / 8); /* loop_selector local_0E in nearby_items(shape=arg_14, origin=local_10) */ while (!condition) { /* loopnext */ } } else if (local_02 == 3) { for local_0E in nearby_items(shape=arg_14, origin=local_10) { if (arg_0A == local_0E) { local_06 = (arg_0C / 8); spawn TRIGGER.slot_22(local_06, local_0E, arg_06); } /* loopnext */ } } else if (local_02 == 4) { local_06 = (arg_0C / 8); local_12 = (local_12 + local_06); } else if (local_02 == 5) { local_06 = (arg_0C / 8); local_12 = (local_12 - local_06); } else if (local_02 == 6) { local_0C = (arg_0C / 8); /* loop_selector local_0E in nearby_items(shape=0x0476, origin=local_10) */ while (!condition) { local_06 = Item.getNpcNum(local_0E); local_0A = (local_06 & 15); local_08 = Item.getMapNum(local_0E); local_08 = (((local_06 & 0x00E0) * 8) + local_08); if (local_08 == 0) { if (Item.create(local_0A, local_08, local_14) == 1) { suspend; } } /* loopnext */ } } } /* word_to_dword */ /* pop_result */ return; } /* ===== slot 0x26 slot_26 ===== */ function trigger_slot_26() /* entry=469 class_id=0x0A17 slot=0x26 */ { set_info(0x021B, 0); local_12 = arg_12; local_10 = arg_0A; local_04 = (arg_10 & 3); if (local_04 == 0) { for local_0E in nearby_items(shape=arg_14, origin=local_10) { /* loopnext */ } } else if (local_04 == 1) { for local_0E in nearby_items(shape=arg_14, origin=local_10) { /* loopnext */ } } else if (local_04 == 2) { for local_0E in nearby_items(shape=arg_14, origin=local_10) { /* loopnext */ } } else if (local_04 == 3) { local_02 = (arg_0C & 7); if (local_02 == 0) { local_0C = (arg_0C / 8); /* loop_selector local_0E in nearby_items(shape=0x0476, origin=local_10) */ while (!condition) { if (Item.getQLo(local_0E) == arg_12) { local_06 = Item.getNpcNum(local_0E); local_0A = (local_06 & 15); local_08 = Item.getMapNum(local_0E); local_08 = (((local_06 & 0x00E0) * 8) + local_08); FREE.slot_39(local_0C, local_0A, local_08, local_0E); } /* loopnext */ } } else if (local_02 == 1) { local_0C = (arg_0C / 8); /* loop_selector local_0E in nearby_items(shape=arg_14, origin=local_10) */ while (!condition) { if (Item.getQLo(local_0E) == arg_12) { if (local_0C == 31) { suspend; } else { local_0A = Item.getFrame(local_0E); local_08 = Item.getShape(local_0E); local_06 = (local_08 & 0x00FF); local_08 = (local_08 & 0x0700); local_08 = (local_08 / 8); local_08 = (local_08 + local_0A); suspend; /* bit_not */ } } /* loopnext */ } } else if (local_02 == 2) { local_06 = (arg_0C / 8); /* loop_selector local_0E in nearby_items(shape=arg_14, origin=local_10) */ while (!condition) { /* loopnext */ } } else if (local_02 == 3) { for local_0E in nearby_items(shape=arg_14, origin=local_10) { if (Item.getQLo(local_0E) == arg_12) { local_06 = (arg_0C / 8); spawn TRIGGER.slot_22(local_06, local_0E, arg_06); } /* loopnext */ } } else if (local_02 == 4) { local_06 = (arg_0C / 8); local_12 = (local_12 + local_06); } else if (local_02 == 5) { local_06 = (arg_0C / 8); local_12 = (local_12 - local_06); } else if (local_02 == 6) { local_0C = (arg_0C / 8); /* loop_selector local_0E in nearby_items(shape=0x0476, origin=local_10) */ while (!condition) { if (Item.getQLo(local_0E) == arg_12) { local_06 = Item.getNpcNum(local_0E); local_0A = (local_06 & 15); local_08 = Item.getMapNum(local_0E); local_08 = (((local_06 & 0x00E0) * 8) + local_08); if (local_08 == 0) { if (Item.create(local_0A, local_08, local_14) == 1) { suspend; } } } /* loopnext */ } } } /* word_to_dword */ /* pop_result */ return; } /* ===== slot 0x27 slot_27 ===== */ function trigger_slot_27() /* entry=469 class_id=0x0A17 slot=0x27 */ { set_info(0x021B, 0); local_12 = arg_12; local_10 = arg_0A; local_04 = (arg_10 & 3); if (local_04 == 0) { for local_0E in nearby_items(family=1, origin=local_10) { /* loopnext */ } } else if (local_04 == 1) { for local_0E in nearby_items(family=1, origin=local_10) { /* loopnext */ } } else if (local_04 == 2) { for local_0E in nearby_items(family=1, origin=local_10) { /* loopnext */ } } else if (local_04 == 3) { local_02 = (arg_0C & 7); if (local_02 == 0) { local_0C = (arg_0C / 8); /* loop_selector local_0E in nearby_items(shape=0x0476, origin=local_10) */ while (!condition) { if (Item.getQLo(local_0E) == arg_12) { local_06 = Item.getNpcNum(local_0E); local_0A = (local_06 & 15); local_08 = Item.getMapNum(local_0E); local_08 = (((local_06 & 0x00E0) * 8) + local_08); FREE.slot_39(local_0C, local_0A, local_08, local_0E); } /* loopnext */ } } else if (local_02 == 1) { local_0C = (arg_0C / 8); /* loop_selector local_0E in nearby_items(family=1, origin=local_10) */ while (!condition) { if (Item.getQLo(local_0E) == arg_12) { if (local_0C == 31) { suspend; } else { local_0A = Item.getFrame(local_0E); local_08 = Item.getShape(local_0E); local_06 = (local_08 & 0x00FF); local_08 = (local_08 & 0x0700); local_08 = (local_08 / 8); local_08 = (local_08 + local_0A); suspend; /* bit_not */ } } /* loopnext */ } } else if (local_02 == 2) { local_06 = (arg_0C / 8); /* loop_selector local_0E in nearby_items(family=1, origin=local_10) */ while (!condition) { /* loopnext */ } } else if (local_02 == 3) { if (global[0x0022] == 100) { local_14 = 32; } else { local_14 = global[0x0022]; } for local_0E in nearby_items(family=1, origin=local_10) { if (Item.getQLo(local_0E) == arg_12) { local_06 = (arg_0C / 8); spawn TRIGGER.slot_22(local_06, local_0E, arg_06); } /* loopnext */ } } else if (local_02 == 4) { local_06 = (arg_0C / 8); local_12 = (local_12 + local_06); } else if (local_02 == 5) { local_06 = (arg_0C / 8); local_12 = (local_12 - local_06); } else if (local_02 == 6) { local_0C = (arg_0C / 8); /* loop_selector local_0E in nearby_items(shape=0x0476, origin=local_10) */ while (!condition) { if (Item.getQLo(local_0E) == arg_12) { local_06 = Item.getNpcNum(local_0E); local_0A = (local_06 & 15); local_08 = Item.getMapNum(local_0E); local_08 = (((local_06 & 0x00E0) * 8) + local_08); if (local_08 == 0) { if (Item.create(local_0A, local_08, local_16) == 1) { suspend; } } } /* loopnext */ } } } /* word_to_dword */ /* pop_result */ return; } /* ===== slot 0x28 slot_28 ===== */ function trigger_slot_28() /* entry=469 class_id=0x0A17 slot=0x28 */ { set_info(0x021B, 0); local_12 = arg_12; local_10 = arg_0A; local_04 = (arg_10 & 3); if (local_04 == 0) { for local_0E in nearby_items(shape=arg_14, origin=local_10) { /* loopnext */ } } else if (local_04 == 1) { for local_0E in nearby_items(shape=arg_14, origin=local_10) { /* loopnext */ } } else if (local_04 == 2) { for local_0E in nearby_items(shape=arg_14, origin=local_10) { /* loopnext */ } } else if (local_04 == 3) { local_02 = (arg_0C & 7); if (local_02 == 0) { local_0C = (arg_0C / 8); /* loop_selector local_0E in nearby_items(shape=0x0476, origin=local_10) */ while (!condition) { local_06 = Item.getNpcNum(local_0E); local_0A = (local_06 & 15); local_08 = Item.getMapNum(local_0E); local_08 = (((local_06 & 0x00E0) * 8) + local_08); FREE.slot_39(local_0C, local_0A, local_08, local_0E); /* loopnext */ } } else if (local_02 == 1) { local_0C = (arg_0C / 8); /* loop_selector local_0E in nearby_items(shape=arg_14, origin=local_10) */ while (!condition) { if (local_0C == 31) { suspend; } else { local_0A = Item.getFrame(local_0E); local_08 = Item.getShape(local_0E); local_06 = (local_08 & 0x00FF); local_08 = (local_08 & 0x0700); local_08 = (local_08 / 8); local_08 = (local_08 + local_0A); suspend; /* bit_not */ } /* loopnext */ } } else if (local_02 == 2) { local_06 = (arg_0C / 8); /* loop_selector local_0E in nearby_items(shape=arg_14, origin=local_10) */ while (!condition) { /* loopnext */ } } else if (local_02 == 3) { for local_0E in nearby_items(shape=arg_14, origin=local_10) { local_06 = (arg_0C / 8); spawn TRIGGER.slot_22(local_06, local_0E, arg_06); /* loopnext */ } } else if (local_02 == 4) { local_06 = (arg_0C / 8); local_12 = (local_12 + local_06); } else if (local_02 == 5) { local_06 = (arg_0C / 8); local_12 = (local_12 - local_06); } else if (local_02 == 6) { local_0C = (arg_0C / 8); /* loop_selector local_0E in nearby_items(shape=0x0476, origin=local_10) */ while (!condition) { local_06 = Item.getNpcNum(local_0E); local_0A = (local_06 & 15); local_08 = Item.getMapNum(local_0E); local_08 = (((local_06 & 0x00E0) * 8) + local_08); if (local_08 == 0) { if (Item.create(local_0A, local_08, local_14) == 1) { suspend; } } /* loopnext */ } } } /* word_to_dword */ /* pop_result */ return; } /* ===== slot 0x29 slot_29 ===== */ function trigger_slot_29() /* entry=469 class_id=0x0A17 slot=0x29 */ { set_info(0x021B, 0); local_0E = arg_0A; local_04 = (arg_10 & 3); if (local_04 == 0) { for local_10 in nearby_items(shape=arg_14, origin=local_0E) { if (Intrinsic000D(local_10) == arg_12) { local_06 = (arg_0C / 16); local_08 = (arg_0C & 15); if (local_06 == 0) { local_12 = Actor.getNPCDataField0x4(local_10); suspend; spawn FREE.slot_3B(pid, 2, 0x00000000); suspend; local_14 = Actor.getNPCDataField0x4(local_10); } else { local_16 = Actor.getNPCDataField0x4(local_10); suspend; spawn FREE.slot_3B(pid, 2, 0x00000000); suspend; if (Actor.isDead(local_10) == 1) { return; } local_18 = 1; while (local_18 > local_06) { if (Actor.isDead(local_10) == 0) { suspend; } spawn FREE.slot_3B(pid, 1, 0x00000000); suspend; local_18 = (1 + local_18); } local_1A = Actor.getNPCDataField0x4(local_10); local_1C = Actor.getCurrentActivityNo(local_10); } } /* loopnext */ } return; } else if (local_04 == 1) { for local_10 in nearby_items(shape=arg_14, origin=local_0E) { /* loopnext */ } return; } else if (local_04 == 2) { for local_10 in nearby_items(shape=arg_14, origin=local_0E) { /* loopnext */ } return; } else if (local_04 == 3) { local_02 = (arg_0C & 7); local_06 = (arg_0C / 8); if (local_02 == 0) { for local_10 in nearby_items(shape=arg_14, origin=local_0E) { if (Intrinsic000D(local_10) == arg_12) { if (local_06 == 1) { } else if (local_06 == 2) { } else if (local_06 == 3) { } else if (local_06 == 4) { } } /* loopnext */ } } else if (local_02 == 1) { for local_10 in nearby_items(shape=arg_14, origin=local_0E) { if (Intrinsic000D(local_10) == arg_12) { spawn FREE.slot_3B(pid, 1, 0x00000000); suspend; } /* loopnext */ } } else if (local_02 == 2) { for local_10 in nearby_items(shape=arg_14, origin=local_0E) { if (Intrinsic000D(local_10) == arg_12) { spawn FREE.slot_3B(pid, 1, 0x00000000); suspend; } /* loopnext */ } } else if (local_02 == 3) { for local_10 in nearby_items(shape=arg_14, origin=local_0E) { if (Intrinsic000D(local_10) == arg_12) { spawn FREE.slot_3B(pid, 1, 0x00000000); suspend; } /* loopnext */ } } else if (local_02 == 4) { for local_10 in nearby_items(shape=arg_14, origin=local_0E) { if (Intrinsic000D(local_10) == arg_12) { local_1E = local_06; } /* loopnext */ } } else if (local_02 == 5) { for local_10 in nearby_items(shape=arg_14, origin=local_0E) { if (Intrinsic000D(local_10) == arg_12) { spawn NPC.equip(local_06, local_10); } /* loopnext */ } } return; } return; } /* ===== slot 0x2A slot_2A ===== */ function trigger_slot_2A() /* entry=469 class_id=0x0A17 slot=0x2A */ { set_info(0x021B, 0); local_0E = arg_0A; local_04 = (arg_10 & 3); if (local_04 == 0) { for local_10 in nearby_items(shape=arg_14, origin=local_0E) { local_06 = (arg_0C / 16); local_08 = (arg_0C & 15); if (local_06 == 0) { suspend; spawn FREE.slot_3B(pid, 2, 0x00000000); suspend; } else { suspend; spawn FREE.slot_3B(pid, 2, 0x00000000); suspend; if (Actor.isDead(local_10) == 1) { return; } local_12 = 1; while (local_12 > local_06) { if (Actor.isDead(local_10)) { suspend; } spawn FREE.slot_3B(pid, 1, 0x00000000); suspend; local_12 = (1 + local_12); } } /* loopnext */ } return; } else if (local_04 == 1) { for local_10 in nearby_items(shape=arg_14, origin=local_0E) { /* loopnext */ } return; } else if (local_04 == 2) { for local_10 in nearby_items(shape=arg_14, origin=local_0E) { /* loopnext */ } return; } else if (local_04 == 3) { local_02 = (arg_0C & 7); local_06 = (arg_0C / 8); if (local_02 == 0) { for local_10 in nearby_items(shape=arg_14, origin=local_0E) { if (local_06 == 1) { } else if (local_06 == 2) { } else if (local_06 == 3) { } else if (local_06 == 4) { } /* loopnext */ } } else if (local_02 == 1) { for local_10 in nearby_items(shape=arg_14, origin=local_0E) { spawn FREE.slot_3B(pid, 1, 0x00000000); suspend; /* loopnext */ } } else if (local_02 == 2) { for local_10 in nearby_items(shape=arg_14, origin=local_0E) { spawn FREE.slot_3B(pid, 1, 0x00000000); suspend; /* loopnext */ } } else if (local_02 == 3) { for local_10 in nearby_items(shape=arg_14, origin=local_0E) { spawn FREE.slot_3B(pid, 1, 0x00000000); suspend; /* loopnext */ } } else if (local_02 == 4) { for local_10 in nearby_items(shape=arg_14, origin=local_0E) { local_14 = local_06; /* loopnext */ } } else if (local_02 == 5) { for local_10 in nearby_items(shape=arg_14, origin=local_0E) { spawn NPC.equip(local_06, local_10); /* loopnext */ } } return; } return; } /* ===== slot 0x2B slot_2B ===== */ function trigger_slot_2B() /* entry=469 class_id=0x0A17 slot=0x2B */ { set_info(0x021B, 0); local_0E = arg_0A; local_04 = (arg_10 & 3); if (local_04 == 0) { for local_10 in nearby_items(family=6, origin=local_0E) { if (!Item.isCrusTypeNPC(Item.getShape(local_10))) { if (Intrinsic000D(local_10) == arg_12) { local_06 = (arg_0C / 16); local_08 = (arg_0C & 15); if (local_06 == 0) { suspend; spawn FREE.slot_3B(pid, 2, 0x00000000); suspend; } else { suspend; spawn FREE.slot_3B(pid, 2, 0x00000000); suspend; if (Actor.isDead(local_10) == 1) { return; } local_12 = 1; while (local_12 > local_06) { if (Actor.isDead(local_10) == 0) { suspend; } spawn FREE.slot_3B(pid, 1, 0x00000000); suspend; local_12 = (1 + local_12); } } } } /* loopnext */ } return; } else if (local_04 == 1) { for local_10 in nearby_items(family=6, origin=local_0E) { /* loopnext */ } return; } else if (local_04 == 2) { for local_10 in nearby_items(family=6, origin=local_0E) { /* loopnext */ } return; } else if (local_04 == 3) { local_02 = (arg_0C & 7); local_06 = (arg_0C / 8); if (local_02 == 0) { for local_10 in nearby_items(family=6, origin=local_0E) { if (!Item.isCrusTypeNPC(Item.getShape(local_10))) { if (Intrinsic000D(local_10) == arg_12) { if (local_06 == 1) { } else if (local_06 == 2) { } else if (local_06 == 3) { } else if (local_06 == 4) { } } } /* loopnext */ } } else if (local_02 == 1) { for local_10 in nearby_items(family=6, origin=local_0E) { if (!Item.isCrusTypeNPC(Item.getShape(local_10))) { if (Intrinsic000D(local_10) == arg_12) { spawn FREE.slot_3B(pid, 1, 0x00000000); suspend; } } /* loopnext */ } } else if (local_02 == 2) { for local_10 in nearby_items(family=6, origin=local_0E) { if (!Item.isCrusTypeNPC(Item.getShape(local_10))) { if (Intrinsic000D(local_10) == arg_12) { spawn FREE.slot_3B(pid, 1, 0x00000000); suspend; } } /* loopnext */ } } else if (local_02 == 3) { for local_10 in nearby_items(family=6, origin=local_0E) { if (!Item.isCrusTypeNPC(Item.getShape(local_10))) { if (Intrinsic000D(local_10) == arg_12) { spawn FREE.slot_3B(pid, 1, 0x00000000); suspend; } } /* loopnext */ } } else if (local_02 == 4) { for local_10 in nearby_items(family=6, origin=local_0E) { if (!Item.isCrusTypeNPC(Item.getShape(local_10))) { if (Intrinsic000D(local_10) == arg_12) { local_14 = local_06; } } /* loopnext */ } } else if (local_02 == 5) { for local_10 in nearby_items(family=6, origin=local_0E) { if (!Item.isCrusTypeNPC(Item.getShape(local_10))) { if (Intrinsic000D(local_10) == arg_12) { spawn NPC.equip(local_06, local_10); } } /* loopnext */ } } return; } return; }