/* synthesized appendix for BRIDGE */ /* sparse lines above preserve recovered debugger line numbers where available */ /* ===== slot 0x20 slot_20 ===== */ function bridge_slot_20() /* entry=474 class_id=0x0A1C slot=0x20 */ { set_info(0x0211, *(arg_06)); if (arg_0A == 1) { local_02 = Item.getQLo(arg_06); spawn BRIDGE.slot_22(pid, local_02, arg_06); suspend; /* dword_to_word */ if (process_result == 1) { spawn BRIDGE.slot_24(pid, local_02, arg_06); suspend; spawn BRIDGE.slot_26(0, local_02, arg_06); } return; } else if (arg_0A == 2) { local_02 = Item.getQLo(arg_06); spawn BRIDGE.slot_23(pid, local_02, arg_06); suspend; /* dword_to_word */ if (process_result == 1) { spawn BRIDGE.slot_25(pid, local_02, arg_06); suspend; } return; } return; } /* ===== slot 0x21 slot_21 ===== */ function bridge_slot_21() /* entry=474 class_id=0x0A1C slot=0x21 */ { local_02 = Item.getShape(arg_06); if ((local_02 == 0x0413) || (local_02 != 0x0290)) { if (arg_08 == 0x03A6) { arg_08 = 0x0413; return; } else { arg_08 = 0x0290; } } return; } /* ===== slot 0x22 slot_22 ===== */ function bridge_slot_22() /* entry=474 class_id=0x0A1C slot=0x22 */ { set_info(0x021B, *(arg_06)); /* loop_selector local_02 in selector_0x42(arg0=0x0336, arg1=0x0290, arg2=(70 * 32), origin=arg_06) */ while (!condition) { if (Item.getFrame(local_02) == 0) { local_04 = Item.getQLo(local_02); if (local_04 == arg_0A) { /* word_to_dword */ /* pop_result */ return; } } /* loopnext */ } /* word_to_dword */ /* pop_result */ return; } /* ===== slot 0x23 slot_23 ===== */ function bridge_slot_23() /* entry=474 class_id=0x0A1C slot=0x23 */ { entry: set_info(0x021B, *(arg_06)); local_06 = 0; /* loop_selector local_02 in selector_0x42(arg0=0x03A6, arg1=0x0413, arg2=(70 * 32), origin=arg_06) */ block_027A: if condition goto block_02AE; block_027D: local_04 = Item.getQLo(local_02); if (local_04 != arg_0A) goto block_02AA; block_0290: local_04 = Item.getQHi(local_02); if (local_04 != 0) goto block_02AA; block_02A3: local_06 = local_04; goto block_02AE; block_02AA: /* loopnext */ goto block_027A; block_02AE: if (local_06 != 0) goto block_0314; block_02B8: /* loop_selector local_02 in selector_0x42(arg0=0x0336, arg1=0x0290, arg2=(70 * 32), origin=arg_06) */ block_02CF: if condition goto block_0312; block_02D2: if (Item.getFrame(local_02) != 1) goto block_030E; block_02E1: local_04 = Item.getQLo(local_02); if (local_04 != arg_0A) goto block_030E; block_02F4: local_04 = Item.getQHi(local_02); if (local_04 != 0) goto block_030E; block_0307: local_06 = local_04; goto block_0312; block_030E: /* loopnext */ goto block_02CF; block_0312: block_0314: if (local_06 != 0) goto block_03B5; block_031C: for local_02 in selector_0x42(arg0=0x03A6, arg1=0x0413, arg2=(70 * 32), origin=arg_06) { local_04 = Item.getQLo(local_02); if (local_04 == local_06) { /* word_to_dword */ /* pop_result */ return; } /* loopnext */ } block_035F: for local_02 in selector_0x42(arg0=0x0336, arg1=0x0290, arg2=(70 * 32), origin=arg_06) { if (Item.getFrame(arg_06) == 1) { local_04 = Item.getQLo(local_02); if (local_04 == local_06) { /* word_to_dword */ /* pop_result */ return; } } /* loopnext */ } block_03B3: block_03B5: /* word_to_dword */ /* pop_result */ goto block_03BC; block_03BC: return; } /* ===== slot 0x24 slot_24 ===== */ function bridge_slot_24() /* entry=474 class_id=0x0A1C slot=0x24 */ { entry: set_info(0x021B, *(arg_06)); local_06 = 0; /* loop_selector local_02 in selector_0x42(arg0=0x0336, arg1=0x0290, arg2=(70 * 32), origin=arg_06) */ block_03E3: if condition goto block_040B; block_03E6: local_08 = Item.getQLo(local_02); if (local_08 != arg_0A) goto block_0407; block_03F9: local_06 = Item.getQHi(local_02); goto block_040B; block_0407: /* loopnext */ goto block_03E3; block_040B: if (local_06 != 0) goto block_0418; block_0415: goto block_0542; block_0418: if (local_06 < arg_0A) goto block_0423; block_0420: goto block_0542; block_0423: local_0A = arg_0A; block_0427: if (local_0A <= local_06) goto block_049F; block_042F: local_0C = local_0A; /* loop_selector local_02 in selector_0x42(arg0=0x0336, arg1=0x0290, arg2=(70 * 32), origin=arg_06) */ block_044A: if condition goto block_047B; block_044D: local_08 = Item.getQLo(local_02); if (local_08 != local_0A) goto block_0477; block_0460: /* create_list element_size=0x2 count=0x1 */ /* append_list */ /* free_local_list bp_offset=0xFC target=[BP-04h] */ local_04 = local_02; local_0A = (1 + local_0A); goto block_047B; block_0477: /* loopnext */ goto block_044A; block_047B: if (local_0C != local_0A) goto block_049C; block_0485: spawn FREE.slot_3B(pid, 10, 0x00000000); suspend; block_049C: goto block_0427; block_049F: block_04A5: while (true) { foreach_list local_02 -> block_04FC; if (Intrinsic00AD(local_02) == 1) { BRIDGE.slot_21(0x03A6, local_02); spawn FREE.slot_3B(pid, 15, 0x00000000); suspend; } } block_04FC: block_0502: while (true) { foreach_list local_02 -> block_0542; if (Intrinsic00AD(local_02) == 1) { BRIDGE.slot_21(0x03A6, local_02); } } block_0542: /* free_local_list bp_offset=0xFC target=[BP-04h] */ return; } /* ===== slot 0x25 slot_25 ===== */ function bridge_slot_25() /* entry=474 class_id=0x0A1C slot=0x25 */ { entry: set_info(0x021B, *(arg_06)); local_06 = 0; /* loop_selector local_02 in selector_0x42(arg0=0x03A6, arg1=0x0413, arg2=(70 * 32), origin=arg_06) */ block_056B: if condition goto block_0593; block_056E: local_08 = Item.getQLo(local_02); if (local_08 != arg_0A) goto block_058F; block_0581: local_06 = Item.getQHi(local_02); goto block_0593; block_058F: /* loopnext */ goto block_056B; block_0593: if (local_06 != 0) goto block_05F8; block_059D: /* loop_selector local_02 in selector_0x42(arg0=0x0336, arg1=0x0290, arg2=(70 * 32), origin=arg_06) */ block_05B4: if condition goto block_05EB; block_05B7: if (Item.getFrame(arg_06) != 1) goto block_05E7; block_05C6: local_08 = Item.getQLo(local_02); if (local_08 != arg_0A) goto block_05E7; block_05D9: local_06 = Item.getQHi(local_02); goto block_05EB; block_05E7: /* loopnext */ goto block_05B4; block_05EB: if (local_06 != 0) goto block_05F8; block_05F5: goto block_087A; block_05F8: if (local_06 < arg_0A) goto block_0603; block_0600: goto block_087A; block_0603: local_0A = local_06; arg_0A = (arg_0A - 1); block_060E: if (local_0A != arg_0A) goto block_06E7; block_0616: local_0C = local_0A; /* loop_selector local_02 in selector_0x42(arg0=0x03A6, arg1=0x0413, arg2=(70 * 32), origin=arg_06) */ block_0631: if condition goto block_0662; block_0634: local_08 = Item.getQLo(local_02); if (local_08 != local_0A) goto block_065E; block_0647: /* create_list element_size=0x2 count=0x1 */ /* append_list */ /* free_local_list bp_offset=0xFC target=[BP-04h] */ local_04 = local_02; local_0A = (local_0A - 1); goto block_0662; block_065E: /* loopnext */ goto block_0631; block_0662: if (local_0C != local_0A) goto block_06E4; block_066C: /* loop_selector local_02 in selector_0x42(arg0=0x0336, arg1=0x0290, arg2=(70 * 32), origin=arg_06) */ block_0683: if condition goto block_06C3; block_0686: if (Item.getFrame(arg_06) != 1) goto block_06BF; block_0695: local_08 = Item.getQLo(local_02); if (local_08 != local_0A) goto block_06BF; block_06A8: /* create_list element_size=0x2 count=0x1 */ /* append_list */ /* free_local_list bp_offset=0xFC target=[BP-04h] */ local_04 = local_02; local_0A = (local_0A - 1); goto block_06C3; block_06BF: /* loopnext */ goto block_0683; block_06C3: if (local_0C != local_0A) goto block_06E4; block_06CD: spawn FREE.slot_3B(pid, 10, 0x00000000); suspend; block_06E4: goto block_060E; block_06E7: block_06ED: while (true) { foreach_list local_02 -> block_07BC; if (Intrinsic00AD(local_02) == 1) { BRIDGE.slot_21(0x0336, local_02); spawn FREE.slot_3B(pid, 15, 0x00000000); suspend; } /* loopscr value_u8=0x24 */ /* loop current_var=0xF2 string_bytes=0x1 loop_type=0x6 */ while (!condition) { if ((Item.getFamily(local_0E) == 6) && (Item.isNpc(local_0E) != 0)) { for local_10 in nearby_items(shape=0x04B8, origin=local_0E) { /* loopnext */ } spawn ITEM.slot_2A(pid, 1, 0, local_0E); suspend; } /* loopnext */ } } block_07BC: block_07C2: while (true) { foreach_list local_02 -> block_087A; if (Intrinsic00AD(local_02) == 1) { BRIDGE.slot_21(0x0336, local_02); } /* loopscr value_u8=0x24 */ /* loop current_var=0xF2 string_bytes=0x1 loop_type=0x6 */ while (!condition) { if ((Item.getFamily(local_0E) == 6) && (Item.isNpc(local_0E) != 0)) { for local_10 in nearby_items(shape=0x04B8, origin=local_0E) { /* loopnext */ } spawn ITEM.slot_2A(pid, 1, 0, local_0E); suspend; } /* loopnext */ } } block_087A: /* free_local_list bp_offset=0xFC target=[BP-04h] */ return; } /* ===== slot 0x26 slot_26 ===== */ function bridge_slot_26() /* entry=474 class_id=0x0A1C slot=0x26 */ { entry: set_info(0x021B, *(arg_06)); local_12 = 0; local_14 = 1; local_08 = arg_0C; if (local_08 != 0) goto block_08E8; block_089C: /* loop_selector local_04 in selector_0x42(arg0=0x03A6, arg1=0x0413, arg2=(70 * 32), origin=arg_06) */ block_08B3: if condition goto block_08DB; block_08B6: local_0A = Item.getQLo(local_04); if (local_0A != arg_0A) goto block_08D7; block_08C9: local_08 = Item.getQHi(local_04); goto block_08DB; block_08D7: /* loopnext */ goto block_08B3; block_08DB: if (local_08 != 0) goto block_08E8; block_08E5: goto block_0CEF; block_08E8: if (local_08 < arg_0A) goto block_08F3; block_08F0: goto block_0CEF; block_08F3: local_0C = arg_0A; local_16 = 100; block_08FB: if (local_0C <= local_08) goto block_09F5; block_0903: local_0E = local_0C; /* loop_selector local_04 in selector_0x42(arg0=0x03A6, arg1=0x0413, arg2=(70 * 32), origin=arg_06) */ block_091E: if condition goto block_09A8; block_0921: local_0A = Item.getQLo(local_04); if (local_0A != local_0C) goto block_09A4; block_0934: if (local_0A != (arg_0A + 1)) goto block_098D; block_093F: local_10 = Item.getQHi(local_04); if (local_10 < 0) goto block_095A; block_0952: local_10 = (local_10 + 0x0100); block_095A: local_10 = (local_10 & 127); local_12 = (local_10 & 7); local_14 = (local_10 / 8); if (local_14 != 0) goto block_097B; block_0977: local_14 = 1; block_097B: local_14 = (local_14 * 5); if (local_12 != 0) goto block_098D; block_098A: goto block_0CEF; block_098D: /* create_list element_size=0x2 count=0x1 */ /* append_list */ /* free_local_list bp_offset=0xFA target=[BP-06h] */ local_06 = local_04; local_0C = (1 + local_0C); goto block_09A8; block_09A4: /* loopnext */ goto block_091E; block_09A8: if (local_0E != local_0C) goto block_09F2; block_09B2: if (local_16 != 0) goto block_09D4; block_09BA: spawn FREE.slot_3B(pid, 30, 0x00000000); suspend; goto block_09F2; block_09D4: local_16 = (local_16 - 1); spawn FREE.slot_3B(pid, 2, 0x00000000); suspend; block_09F2: goto block_08FB; block_09F5: if (local_12 != 3) goto block_0B84; block_09FD: if 1 goto block_0B84; block_0A02: local_0A = 0; block_0A0C: while (true) { foreach_list local_04 -> block_0A2A; if (Intrinsic00AD(local_04) == 0) { local_0A = (1 + local_0A); } } block_0A2A: if (local_0A != 0) goto block_0B6A; block_0A32: block_0A38: while (true) { foreach_list local_04 -> block_0A77; if (local_0A == 0) { local_0C = Item.getFrame(local_04); local_1D = local_04; local_0A = 1; } else { local_0E = Item.getFrame(local_04); local_0C = local_0E; } } block_0A77: block_0A87: while (true) { foreach_list local_04 -> block_0B6A; local_0A = Item.getFrame(local_04); if (local_0A == 1) { /* loopscr value_u8=0x24 */ /* loop current_var=0xE3 string_bytes=0x1 loop_type=0x6 */ while (!condition) { local_02 = local_1D; FREE.slot_20(pid, 8); spawn NPC.slot_2F(retval, local_04, local_02); suspend; /* loopnext */ } } else if (local_0A == 2) { BRIDGE.slot_21(0x0336, local_04); /* loopscr value_u8=0x24 */ /* loop current_var=0xE3 string_bytes=0x1 loop_type=0x6 */ while (!condition) { /* loopnext */ } spawn FREE.slot_3B(pid, local_14, 0x00000000); suspend; if (Item.getFrame(local_04) == 1) { BRIDGE.slot_21(0x03A6, local_04); } } } block_0B6A: spawn FREE.slot_3B(pid, local_14, 0x00000000); suspend; goto block_09FD; block_0B84: block_0B8A: while (true) { foreach_list local_04 -> block_0BAB; } block_0BAB: if 1 goto block_0CEF; block_0BB0: block_0BB6: foreach_list local_04 -> block_0CEC; block_0BBB: if (Intrinsic00AD(local_04) != 0) goto block_0BCD; block_0BCA: goto block_0CEF; block_0BCD: local_0A = Item.getShape(local_04); if ((local_0A != 0x0336) || (local_0A != 0x0290)) goto block_0BEB; block_0BE8: goto block_0CEF; block_0BEB: if (local_12 != 1) goto block_0C57; block_0BF3: /* loopscr value_u8=0x24 */ /* loop current_var=0xE3 string_bytes=0x1 loop_type=0x6 */ block_0C08: while (!condition) { local_02 = local_1D; FREE.slot_20(pid, 8); spawn NPC.slot_2F(retval, local_04, local_02); suspend; /* loopnext */ } block_0C31: spawn FREE.slot_3B(pid, local_14, 0x00000000); suspend; goto block_0CE9; block_0C57: if (local_12 != 2) goto block_0CE6; block_0C5F: BRIDGE.slot_21(0x0336, local_04); /* loopscr value_u8=0x24 */ /* loop current_var=0xE3 string_bytes=0x1 loop_type=0x6 */ block_0C8B: while (!condition) { /* loopnext */ } block_0C9A: spawn FREE.slot_3B(pid, local_14, 0x00000000); suspend; if (Item.getFrame(local_04) != 1) goto block_0CE3; block_0CC2: BRIDGE.slot_21(0x03A6, local_04); block_0CE3: goto block_0CE9; block_0CE6: goto block_0CEF; block_0CE9: goto block_0BB6; block_0CEC: goto block_0BAB; block_0CEF: /* free_local_list bp_offset=0xFA target=[BP-06h] */ return; }