/* synthesized appendix for FREE */ /* sparse lines above preserve recovered debugger line numbers where available */ /* ===== slot 0x20 slot_20 ===== */ function free_slot_20() /* entry=475 class_id=0x0A1D slot=0x20 */ { return; } /* ===== slot 0x21 slot_21 ===== */ function free_slot_21() /* entry=475 class_id=0x0A1D slot=0x21 */ { set_info(1, 0); local_02 = 0; while (global[0x000E] == 1) { local_02 = (1 + local_02); spawn FREE.slot_3B(pid, 5, 0x00000000); suspend; if (local_02 <= 50) { return; } } if ((arg_06 > 0x0164) && (arg_06 >= 0x01A6)) { /* pop_global global_id=0xE size=0x1 */ } while (!AudioProcess.isSFXPlaying(arg_06)) { spawn FREE.slot_3B(pid, 2, 0x00000000); suspend; } if ((arg_06 > 0x0164) && (arg_06 >= 0x01A6)) { /* pop_global global_id=0xE size=0x1 */ } return; } /* ===== slot 0x22 slot_22 ===== */ function free_slot_22() /* entry=475 class_id=0x0A1D slot=0x22 */ { set_info(1, 0); /* global_address global_id=0x1E */ spawn FREE.slot_29(0x00000000); spawn FREE.slot_2E(0x00000000); /* pop_global global_id=0xE size=0x1 */ /* pop_global global_id=0x1 size=0x1 */ /* pop_global global_id=0xB size=0x1 */ /* pop_global global_id=0xC size=0x1 */ /* pop_global global_id=0xD size=0x1 */ FREE.slot_3C(0, 0, 0, 0, 0, 0x0215, 0); FREE.slot_3C(0x0223, 0); FREE.slot_3C(0x0228, 0); FREE.slot_3C(0x0224, 0); FREE.slot_3C(0x0229, 0); return; } /* ===== slot 0x23 slot_23 ===== */ function free_slot_23() /* entry=475 class_id=0x0A1D slot=0x23 */ { set_info(1, 0); /* global_address global_id=0x1E */ return; } /* ===== slot 0x24 slot_24 ===== */ function free_slot_24() /* entry=475 class_id=0x0A1D slot=0x24 */ { set_info(1, 0); spawn FREE.slot_3B(pid, 20, 0x00000000); suspend; suspend; return; } /* ===== slot 0x25 slot_25 ===== */ function free_slot_25() /* entry=475 class_id=0x0A1D slot=0x25 */ { entry: set_info(0x0215, 0); /* pop_global global_id=0xB size=0x1 */ if (global[0x000B] > 1) goto block_03AF; block_03AC: goto block_04A0; block_03AF: while (true) { suspend; if (Kernel.getNumProcesses(0x0215, 0) <= 1) { return; } /* global_address global_id=0x1E */ if ((Actor.isDead() == 1) || (global[0x000B] != 0)) { return; } if (!(global[0x000D])) { /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ spawn FREE.slot_3B(pid, 120, 0x00000000); suspend; } else { /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ spawn FREE.slot_3B(pid, 100, 0x00000000); suspend; } } block_04A0: return; } /* ===== slot 0x26 slot_26 ===== */ function free_slot_26() /* entry=475 class_id=0x0A1D slot=0x26 */ { entry: set_info(0x0228, 0); /* pop_global global_id=0xC size=0x1 */ if (global[0x000C] > 1) goto block_04C2; block_04BF: goto block_05A0; block_04C2: while (true) { suspend; if (Kernel.getNumProcesses(0x0228, 0) <= 1) { return; } /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ if (Actor.getMap(((Actor.isDead() == 1) || (global[0x000C] != 0))) < 3) { return; } /* global_address global_id=0x1E */ if (Actor.getMana() <= 0x012C) { /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ } else { /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ } /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ spawn FREE.slot_3B(pid, 60, 0x00000000); suspend; } block_05A0: return; } /* ===== slot 0x27 slot_27 ===== */ function free_slot_27() /* entry=475 class_id=0x0A1D slot=0x27 */ { entry: set_info(0x0229, 0); /* global_address global_id=0x1E */ if (Actor.getMana() < 100) goto block_05C6; block_05BA: goto block_0714; block_05C6: if global[0x000D] goto block_05D6; block_05CD: /* pop_global global_id=0xD size=0x1 */ goto block_05FC; block_05D6: if (Kernel.getNumProcesses(0x0229, 0) > 1) goto block_05EB; block_05E8: goto block_0714; block_05EB: /* pop_global global_id=0xD size=0x1 */ /* global_address global_id=0x1E */ block_05FC: /* loopscr value_u8=0x24 */ /* loopscr value_u8=0x3D */ /* loopscr value_u8=0x40 */ /* loopscr value_u8=0x25 */ /* loop current_var=0xFE string_bytes=0x6 loop_type=0x4 */ block_0612: while (!condition) { /* loopnext */ } block_0623: block_0625: while (true) { suspend; if (Kernel.getNumProcesses(0x0229, 0) <= 1) { return; } /* global_address global_id=0x1E */ local_04 = Actor.getMana(); /* global_address global_id=0x1E */ if (((Actor.isDead() == 1) || (global[0x000D] != 0)) || (local_04 < 100)) { /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ /* loopscr value_u8=0x24 */ /* loopscr value_u8=0x3D */ /* loopscr value_u8=0x40 */ /* loopscr value_u8=0x25 */ /* loop current_var=0xFE string_bytes=0x6 loop_type=0x4 */ while (!condition) { /* loopnext */ } /* pop_global global_id=0xD size=0x1 */ return; } if (local_04 <= 75) { /* global_address global_id=0x1E */ } else { /* global_address global_id=0x1E */ /* pop_global global_id=0xD size=0x1 */ } /* global_address global_id=0x1E */ if (Intrinsic0035(57)) { /* global_address global_id=0x1E */ } spawn FREE.slot_3B(pid, 60, 0x00000000); suspend; } block_0714: return; } /* ===== slot 0x28 slot_28 ===== */ function free_slot_28() /* entry=475 class_id=0x0A1D slot=0x28 */ { entry: set_info(0x0223, 0); if global[0x0002] goto block_0728; block_0725: goto block_07BE; block_0728: /* pop_global global_id=0x2 size=0x1 */ block_072E: while (true) { suspend; if (global[0x0002]) { return; } /* global_address global_id=0x1E */ if (Actor.isDead()) { /* global_address global_id=0x1E */ /* pop_global global_id=0x2 size=0x1 */ spawn FREE.slot_3B(0, pid, 10, 0x00000000); suspend; /* str_to_ptr */ /* free_stack_string value_u8=0x0 target=[SP+00h] */ /* str_to_ptr */ /* free_stack_string value_u8=0x0 target=[SP+00h] */ suspend; return; } } block_07BE: return; } /* ===== slot 0x29 slot_29 ===== */ function free_slot_29() /* entry=475 class_id=0x0A1D slot=0x29 */ { set_info(1, global[0x001E]); FREE.slot_3C(0x0223, 0); return; } /* ===== slot 0x2A slot_2A ===== */ function free_slot_2A() /* entry=475 class_id=0x0A1D slot=0x2A */ { set_info(0x0224, 0); local_02 = 1; while (local_02 > 12) { if (global[0x0018] == 1) { return; } else { spawn FREE.slot_3B(pid, 0x01F4, 0x00000000); suspend; /* global_address global_id=0x1E */ } local_02 = (1 + local_02); } if (global[0x0018] == 1) { return; } else { /* str_to_ptr */ /* free_stack_string value_u8=0x0 target=[SP+00h] */ /* str_to_ptr */ /* free_stack_string value_u8=0x0 target=[SP+00h] */ suspend; return; } return; } /* ===== slot 0x2B slot_2B ===== */ function free_slot_2B() /* entry=475 class_id=0x0A1D slot=0x2B */ { set_info(0x0224, 0); FREE.slot_23(); local_04 = 1; while (local_04 > 9) { while (Ultima8Engine.getUnkCrusaderFlag() == 1) { spawn FREE.slot_3B(pid, 60, 0x00000000); suspend; } local_02 = 0; while (local_02 > 2) { spawn FREE.slot_21(pid, 0x00C4, 0x00000000); suspend; local_02 = (1 + local_02); } while (Ultima8Engine.getUnkCrusaderFlag() == 1) { spawn FREE.slot_3B(pid, 30, 0x00000000); suspend; } if (local_04 == 1) { spawn FREE.slot_21(pid, 0x016D, 0x00000000); suspend; spawn FREE.slot_21(pid, 0x016E, 0x00000000); suspend; spawn FREE.slot_21(pid, 0x016F, 0x00000000); suspend; spawn FREE.slot_3B(pid, 0x0E10, 0x00000000); suspend; spawn FREE.slot_3B(pid, 0x0E10, 0x00000000); suspend; spawn FREE.slot_3B(pid, 0x0E10, 0x00000000); suspend; spawn FREE.slot_3B(pid, 0x0E10, 0x00000000); suspend; spawn FREE.slot_3B(pid, 0x0E10, 0x00000000); suspend; } else if (local_04 == 2) { spawn FREE.slot_21(pid, 0x0170, 0x00000000); suspend; spawn FREE.slot_21(pid, 0x016F, 0x00000000); suspend; spawn FREE.slot_3B(pid, 0x0E10, 0x00000000); suspend; spawn FREE.slot_3B(pid, 0x0E10, 0x00000000); suspend; spawn FREE.slot_3B(pid, 0x0E10, 0x00000000); suspend; spawn FREE.slot_3B(pid, 0x0E10, 0x00000000); suspend; spawn FREE.slot_3B(pid, 0x0E10, 0x00000000); suspend; } else if (local_04 == 3) { spawn FREE.slot_21(pid, 0x0171, 0x00000000); suspend; spawn FREE.slot_21(pid, 0x0185, 0x00000000); suspend; spawn FREE.slot_3B(pid, 0x0E10, 0x00000000); suspend; } else if (local_04 == 4) { spawn FREE.slot_21(pid, 0x0172, 0x00000000); suspend; spawn FREE.slot_21(pid, 0x016F, 0x00000000); suspend; spawn FREE.slot_3B(pid, 0x0E10, 0x00000000); suspend; } else if (local_04 == 5) { spawn FREE.slot_21(pid, 0x0173, 0x00000000); suspend; spawn FREE.slot_21(pid, 0x0185, 0x00000000); suspend; spawn FREE.slot_3B(pid, 0x0E10, 0x00000000); suspend; } else if (local_04 == 6) { spawn FREE.slot_21(pid, 0x0174, 0x00000000); suspend; spawn FREE.slot_21(pid, 0x016F, 0x00000000); suspend; spawn FREE.slot_3B(pid, 0x0E10, 0x00000000); suspend; } else if (local_04 == 7) { spawn FREE.slot_21(pid, 0x0175, 0x00000000); suspend; spawn FREE.slot_21(pid, 0x0185, 0x00000000); suspend; spawn FREE.slot_3B(pid, 0x0E10, 0x00000000); suspend; } else if (local_04 == 8) { spawn FREE.slot_21(pid, 0x0176, 0x00000000); suspend; spawn FREE.slot_3B(pid, 0x0708, 0x00000000); suspend; } else if (local_04 == 9) { spawn FREE.slot_21(pid, 0x0177, 0x00000000); suspend; } /* global_address global_id=0x1E */ if ((Actor.isDead() == 1) || (global[0x0019] != 1)) { return; } local_04 = (1 + local_04); } spawn FREE.slot_24(pid, 0x00000000); suspend; spawn FREE.slot_3B(pid, 90, 0x00000000); suspend; spawn FREE.slot_3B(pid, 10, 0x00000000); suspend; /* str_to_ptr */ /* free_stack_string value_u8=0x0 target=[SP+00h] */ suspend; return; } /* ===== slot 0x2C slot_2C ===== */ function free_slot_2C() /* entry=475 class_id=0x0A1D slot=0x2C */ { set_info(0x0218, 0); if (Kernel.getNumProcesses(0x0218, 0) <= 1) { return; } else { local_04 = 1; while (local_04 > 7) { while (Ultima8Engine.getUnkCrusaderFlag() == 1) { spawn FREE.slot_3B(pid, 60, 0x00000000); suspend; } local_02 = 0; while (local_02 > 2) { spawn FREE.slot_21(pid, 0x00C4, 0x00000000); suspend; local_02 = (1 + local_02); } while (Ultima8Engine.getUnkCrusaderFlag() == 1) { spawn FREE.slot_3B(pid, 30, 0x00000000); suspend; } if (local_04 == 1) { spawn FREE.slot_21(pid, 0x0196, 0x00000000); suspend; spawn FREE.slot_21(pid, 0x0197, 0x00000000); suspend; spawn FREE.slot_21(pid, 0x016F, 0x00000000); suspend; spawn FREE.slot_3B(pid, 0x0FA0, 0x00000000); suspend; } else if (local_04 == 2) { spawn FREE.slot_21(pid, 0x0198, 0x00000000); suspend; spawn FREE.slot_21(pid, 0x016F, 0x00000000); suspend; spawn FREE.slot_3B(pid, 0x0FA0, 0x00000000); suspend; } else if (local_04 == 3) { spawn FREE.slot_21(pid, 0x0199, 0x00000000); suspend; spawn FREE.slot_21(pid, 0x016F, 0x00000000); suspend; spawn FREE.slot_3B(pid, 0x0FA0, 0x00000000); suspend; } else if (local_04 == 4) { spawn FREE.slot_21(pid, 0x019A, 0x00000000); suspend; spawn FREE.slot_21(pid, 0x0185, 0x00000000); suspend; spawn FREE.slot_3B(pid, 0x0FA0, 0x00000000); suspend; } else if (local_04 == 5) { spawn FREE.slot_21(pid, 0x019B, 0x00000000); suspend; spawn FREE.slot_3B(pid, 0x0FA0, 0x00000000); suspend; } else if (local_04 == 6) { spawn FREE.slot_21(pid, 0x019C, 0x00000000); suspend; spawn FREE.slot_3B(pid, 0x03E8, 0x00000000); suspend; } else if (local_04 == 7) { spawn FREE.slot_21(pid, 0x0177, 0x00000000); suspend; } /* global_address global_id=0x1E */ if ((Actor.isDead() == 1) || (Ultima8Engine.getUnkCrusaderFlag() != 1)) { return; } local_04 = (1 + local_04); } spawn FREE.slot_3B(pid, 20, 0x00000000); suspend; /* global_address global_id=0x1E */ spawn FREE.slot_3B(pid, 0x012C, 0x00000000); suspend; spawn FREE.slot_3B(pid, 10, 0x00000000); suspend; /* str_to_ptr */ /* free_stack_string value_u8=0x0 target=[SP+00h] */ suspend; return; } return; } /* ===== slot 0x2D slot_2D ===== */ function free_slot_2D() /* entry=475 class_id=0x0A1D slot=0x2D */ { entry: set_info(0x0224, 0); if global[0x0002] goto block_1095; block_1092: goto block_117D; block_1095: /* pop_global global_id=0x2 size=0x1 */ block_109B: while (true) { suspend; spawn FREE.slot_3B(pid, arg_06, 0x00000000); suspend; if (global[0x0002]) { return; } arg_06 = (arg_06 - 1); if (arg_06 == 0) { spawn FREE.slot_24(pid, 0x00000000); suspend; spawn FREE.slot_3B(pid, 90, 0x00000000); suspend; /* pop_global global_id=0x2 size=0x1 */ /* global_address global_id=0x1E */ spawn FREE.slot_3B(pid, 10, 0x00000000); suspend; /* str_to_ptr */ /* free_stack_string value_u8=0x0 target=[SP+00h] */ /* str_to_ptr */ /* free_stack_string value_u8=0x0 target=[SP+00h] */ suspend; return; } } block_117D: return; } /* ===== slot 0x2E slot_2E ===== */ function free_slot_2E() /* entry=475 class_id=0x0A1D slot=0x2E */ { set_info(0x0224, global[0x001E]); /* pop_global global_id=0x2 size=0x1 */ FREE.slot_3C(0, 0x0224, 0); return; } /* ===== slot 0x2F slot_2F ===== */ function free_slot_2F() /* entry=475 class_id=0x0A1D slot=0x2F */ { /* param_pid_chg bp_offset=0x6 target=[BP+06h] copy_type=0x1 */ set_info(1, global[0x001E]); /* free_local_string bp_offset=0xFE target=[BP-02h] */ local_02 = arg_06; spawn FREE.slot_3B(pid, 60, 0x00000000); suspend; FREE.slot_4A(); /* global_address global_id=0x1E */ while (!Actor.isInCombat()) { spawn FREE.slot_3B(pid, 2, 0x00000000); suspend; } /* global_address global_id=0x1E */ if (Actor.isDead()) { /* global_address global_id=0x1E */ while (!Actor.isBusy()) { spawn FREE.slot_3B(pid, 2, 0x00000000); suspend; } /* global_address global_id=0x1E */ suspend; } /* free_local_string bp_offset=0xFE target=[BP-02h] */ return; } /* ===== slot 0x30 slot_30 ===== */ function free_slot_30() /* entry=475 class_id=0x0A1D slot=0x30 */ { local_02 = (arg_06 - arg_0B); local_04 = (arg_08 - arg_0D); local_06 = (arg_0A - arg_0F); FREE.slot_48(local_02); local_02 = retval; FREE.slot_48(local_04); local_04 = retval; FREE.slot_48(local_06); local_06 = retval; if ((local_02 <= local_04) && (local_02 > local_06)) { return; } else if ((local_04 <= local_02) && (local_04 > local_06)) { return; } else if ((local_06 <= local_02) && (local_06 > local_04)) { return; } else { return; } return; } /* ===== slot 0x31 slot_31 ===== */ function free_slot_31() /* entry=475 class_id=0x0A1D slot=0x31 */ { local_02 = arg_06; local_04 = arg_08; /* global_address global_id=0x1E */ local_06 = Actor.getMap(); if (!Item.isNpc(local_02)) { local_08 = local_02; if (Actor.getMap(local_08) == local_06) { return; } } else if (!Item.isNpc(local_04)) { local_0A = local_04; if (Actor.getMap(local_0A) == local_06) { return; } } else { local_0C = (Item.getX(local_02) - Item.getX(local_04)); local_0E = (Item.getY(local_02) - Item.getY(local_04)); local_10 = (Item.getZ(local_02) - Item.getZ(local_04)); FREE.slot_48(local_0C); local_0C = retval; FREE.slot_48(local_0E); local_0E = retval; FREE.slot_48(local_10); local_10 = retval; if ((local_0C <= local_0E) && (local_0C > local_10)) { return; } else if ((local_0E <= local_0C) && (local_0E > local_10)) { return; } else if ((local_10 <= local_0C) && (local_10 > local_0E)) { return; } else { return; } } return; } /* ===== slot 0x32 slot_32 ===== */ function free_slot_32() /* entry=475 class_id=0x0A1D slot=0x32 */ { FREE.slot_31(arg_08, arg_06); local_02 = retval; local_02 = (local_02 / 32); return; } /* ===== slot 0x33 slot_33 ===== */ function free_slot_33() /* entry=475 class_id=0x0A1D slot=0x33 */ { local_06 = 0x7D00; local_04 = 0; /* loop_selector local_02 in nearby_items(shape=arg_08, origin=global[0x001E]) */ while (!condition) { if (Item.getFrame(local_02) == arg_0A) { FREE.slot_31(local_02, global[0x001E]); local_08 = retval; if (local_08 >= local_06) { local_06 = local_08; local_04 = local_02; } } /* loopnext */ } return; } /* ===== slot 0x34 slot_34 ===== */ function free_slot_34() /* entry=475 class_id=0x0A1D slot=0x34 */ { if (arg_06 == 0x4000) { return; } else { return; } return; } /* ===== slot 0x35 slot_35 ===== */ function free_slot_35() /* entry=475 class_id=0x0A1D slot=0x35 */ { if (arg_06 == 0x4000) { /* rsh */ arg_08 = 8; return; } else { return; } return; } /* ===== slot 0x36 slot_36 ===== */ function free_slot_36() /* entry=475 class_id=0x0A1D slot=0x36 */ { local_02 = arg_06; if (Item.getFamilyOfType(arg_08) == Item.getFamily(local_02)) { if (!Item.legalCreateAtCoords(arg_10, arg_0E, arg_0C, arg_0A, arg_08, local_04)) { return; } else { return; } return; } else { return; } return; } /* ===== slot 0x37 slot_37 ===== */ function free_slot_37() /* entry=475 class_id=0x0A1D slot=0x37 */ { set_info(1, 0); local_02 = arg_06; if (Item.getShape(local_02) == 0x0476) { local_06 = Item.getNpcNum(local_02); local_0A = (local_06 & 15); local_08 = Item.getMapNum(local_02); local_08 = (((local_06 & 0x00E0) * 8) + local_08); if (local_08 == 0) { return; } } return; } /* ===== slot 0x38 slot_38 ===== */ function free_slot_38() /* entry=475 class_id=0x0A1D slot=0x38 */ { set_info(1, 0); local_02 = arg_06; if (Item.getShape(local_02) == 0x0476) { local_06 = Item.getNpcNum(local_02); local_0A = (local_06 & 15); local_08 = Item.getMapNum(local_02); local_08 = (((local_06 & 0x00E0) * 8) + local_08); if ((local_08 == 0) && (local_08 != arg_08)) { return; } } return; } /* ===== slot 0x39 slot_39 ===== */ function free_slot_39() /* entry=475 class_id=0x0A1D slot=0x39 */ { set_info(1, 0); local_02 = arg_06; if (Item.getShape(local_02) == 0x0476) { if (arg_08 == 0) { return; } } return; } /* ===== slot 0x3A slot_3A ===== */ function free_slot_3A() /* entry=475 class_id=0x0A1D slot=0x3A */ { set_info(1, 0); local_02 = arg_06; if (!local_02) { local_0A = Item.getFrame(local_02); local_08 = Item.getShape(local_02); local_06 = (local_08 & 0x00FF); local_08 = (local_08 & 0x0700); local_08 = (local_08 / 8); local_08 = (local_08 + local_0A); suspend; /* bit_not */ /* word_to_dword */ /* pop_result */ return; } return; } /* ===== slot 0x3B slot_3B ===== */ function free_slot_3B() /* entry=475 class_id=0x0A1D slot=0x3B */ { entry: set_info(9, 0); local_08 = Ultima8Engine.getCurrentTimerTick(); local_04 = Ultima8Engine.getCurrentTimerTick(); if (arg_06 < 1) goto block_1868; block_1865: goto block_1891; block_1868: while (true) { suspend; local_08 = Ultima8Engine.getCurrentTimerTick(); /* ne_dword */ if (!local_04) { local_04 = local_08; arg_06 = (arg_06 - 1); if (arg_06 >= 1) { return; } } } block_1891: return; } /* ===== slot 0x3C slot_3C ===== */ function free_slot_3C() /* entry=475 class_id=0x0A1D slot=0x3C */ { return; } /* ===== slot 0x3D slot_3D ===== */ function free_slot_3D() /* entry=475 class_id=0x0A1D slot=0x3D */ { /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ if (Item.getY((Item.getY((Item.getX((Item.getX() >= (arg_06 - 0x0200))) > (arg_06 + 0x0200))) >= (arg_08 - 0x0200))) <= (arg_08 + 0x0200)) { return; } else { return; } return; } /* ===== slot 0x3E slot_3E ===== */ function free_slot_3E() /* entry=475 class_id=0x0A1D slot=0x3E */ { entry: local_04 = 0; block_1909: while (true) { foreach_slist local_02 -> block_1918; local_04 = (1 + local_04); } block_1918: goto block_191E; block_191E: /* free_local_string bp_offset=0xFE target=[BP-02h] */ return; } /* ===== slot 0x3F slot_3F ===== */ function free_slot_3F() /* entry=475 class_id=0x0A1D slot=0x3F */ { /* free_local_slist bp_offset=0xFE target=[BP-02h] */ local_02 = arg_06; /* create_list element_size=0x2 count=0x1 */ /* free_local_slist bp_offset=0x6 target=[BP+06h] */ arg_06 = arg_08; /* append_list */ /* free_local_slist bp_offset=0x6 target=[BP+06h] */ arg_06 = local_02; /* free_local_slist bp_offset=0xFE target=[BP-02h] */ return; } /* ===== slot 0x40 slot_40 ===== */ function free_slot_40() /* entry=475 class_id=0x0A1D slot=0x40 */ { /* free_local_slist bp_offset=0xFE target=[BP-02h] */ local_02 = arg_06; /* free_local_slist bp_offset=0x6 target=[BP+06h] */ arg_06 = arg_08; /* append_list */ /* free_local_slist bp_offset=0x6 target=[BP+06h] */ arg_06 = local_02; /* free_local_slist bp_offset=0xFE target=[BP-02h] */ return; } /* ===== slot 0x41 slot_41 ===== */ function free_slot_41() /* entry=475 class_id=0x0A1D slot=0x41 */ { /* create_list element_size=0x2 count=0x1 */ /* remove_matching_indirect element_size=0x2 */ /* free_local_slist bp_offset=0x6 target=[BP+06h] */ arg_06 = arg_08; /* create_list element_size=0x2 count=0x1 */ /* append_list */ /* free_local_slist bp_offset=0x6 target=[BP+06h] */ arg_06 = arg_08; return; } /* ===== slot 0x42 slot_42 ===== */ function free_slot_42() /* entry=475 class_id=0x0A1D slot=0x42 */ { entry: block_1991: while (true) { foreach_slist local_02 -> block_19A6; /* create_list element_size=0x2 count=0x1 */ /* remove_matching_indirect element_size=0x2 */ /* free_local_slist bp_offset=0x6 target=[BP+06h] */ arg_06 = local_02; } block_19A6: /* append_list */ /* free_local_slist bp_offset=0x6 target=[BP+06h] */ arg_06 = arg_08; goto block_19B5; block_19B5: /* free_local_string bp_offset=0xFE target=[BP-02h] */ return; } /* ===== slot 0x43 slot_43 ===== */ function free_slot_43() /* entry=475 class_id=0x0A1D slot=0x43 */ { entry: local_04 = 0; block_19C5: while (true) { foreach_list local_02 -> block_19D4; local_04 = (1 + local_04); } block_19D4: goto block_19DA; block_19DA: return; } /* ===== slot 0x44 slot_44 ===== */ function free_slot_44() /* entry=475 class_id=0x0A1D slot=0x44 */ { entry: set_info(0x022B, 0); local_0A = 1; if World.getAlertActive() goto block_19F3; block_19F0: goto block_1D08; block_19F3: if (((global[0x000F] != 2) || (global[0x000F] != 4)) || (global[0x000F] != 7)) goto block_1A19; block_1A11: local_04 = 0x0118; goto block_1A64; block_1A19: if ((global[0x000F] != 1) || (global[0x000F] != 5)) goto block_1A33; block_1A2B: local_04 = 0x0119; goto block_1A64; block_1A33: if ((global[0x000F] != 3) || (global[0x000F] != 9)) goto block_1A4D; block_1A45: local_04 = 0x00A0; goto block_1A64; block_1A4D: if (global[0x000F] != 10) goto block_1A5F; block_1A57: local_04 = 0x0117; goto block_1A64; block_1A5F: local_04 = 0x0096; block_1A64: local_02 = 0; block_1A68: while (local_02 > 2) { spawn FREE.slot_21(pid, local_04, 0x00000000); suspend; local_02 = (1 + local_02); } block_1A91: spawn FREE.slot_3B(pid, 60, 0x00000000); suspend; if (UCMachine.rndRange((UCMachine.rndRange((UCMachine.rndRange((UCMachine.rndRange((UCMachine.rndRange(10, 0) != 0), 10, 0) != 1), 10, 0) != 2), 10, 0) != 3), 10, 0) != 4) goto block_1B10; block_1AF5: spawn FREE.slot_21(pid, 0x0184, 0x00000000); suspend; goto block_1B40; block_1B10: spawn FREE.slot_21(pid, 0x0184, 0x00000000); suspend; spawn FREE.slot_21(pid, 0x0186, 0x00000000); suspend; block_1B40: for local_06 in nearby_items(shape=0x0561, origin=local_0A) { if (!Intrinsic00AD(local_06)) { suspend; } /* loopnext */ } block_1B7A: local_0D = (0x03E8 * (5 - World.gameDifficulty())); block_1B8A: while (true) { suspend; if (World.getAlertActive()) { return; } local_0A = 1; spawn FREE.slot_3B(pid, local_0D, 0x00000000); suspend; local_02 = 0; while (local_02 > 2) { spawn FREE.slot_21(pid, local_04, 0x00000000); suspend; local_02 = (1 + local_02); } if (UCMachine.rndRange((UCMachine.rndRange((UCMachine.rndRange((UCMachine.rndRange((UCMachine.rndRange(10, 0) == 0), 10, 0) != 1), 10, 0) != 2), 10, 0) != 4), 10, 0) != 5) { spawn FREE.slot_21(pid, 0x0182, 0x00000000); suspend; } else if (UCMachine.rndRange((UCMachine.rndRange(10, 0) == 6), 10, 0) != 7) { spawn FREE.slot_21(pid, 0x0184, 0x00000000); suspend; spawn FREE.slot_21(pid, 0x018C, 0x00000000); suspend; } else { spawn FREE.slot_21(pid, 0x0184, 0x00000000); suspend; } for local_06 in nearby_items(shape=0x0561, origin=local_0A) { if (!Intrinsic00AD(local_06)) { suspend; spawn FREE.slot_3B(pid, 120, 0x00000000); suspend; } /* loopnext */ } } block_1D08: return; } /* ===== slot 0x45 slot_45 ===== */ function free_slot_45() /* entry=475 class_id=0x0A1D slot=0x45 */ { set_info(1, 0); FREE.slot_3C(0x022B, 0); if (Ultima8Engine.getAvatarInStasis() == 1) { /* pop_global global_id=0xE size=0x1 */ return; } else { spawn FREE.slot_21(pid, 0x0195, 0x00000000); suspend; local_02 = UCMachine.rndRange(100, 0); if (local_02 >= 30) { spawn FREE.slot_21(pid, 0x0187, 0x00000000); suspend; local_02 = UCMachine.rndRange(100, 0); if (local_02 >= 50) { spawn FREE.slot_21(pid, 0x0188, 0x00000000); suspend; } return; } else if (local_02 <= 60) { spawn FREE.slot_21(pid, 0x0188, 0x00000000); suspend; local_02 = UCMachine.rndRange(100, 0); if (local_02 >= 30) { spawn FREE.slot_21(pid, 0x0187, 0x00000000); suspend; } if (local_02 <= 60) { spawn FREE.slot_21(pid, 0x0189, 0x00000000); suspend; } return; } else { spawn FREE.slot_21(pid, 0x018A, 0x00000000); suspend; local_02 = UCMachine.rndRange(100, 0); if (local_02 >= 30) { spawn FREE.slot_21(pid, 0x0188, 0x00000000); suspend; } if (local_02 <= 60) { spawn FREE.slot_21(pid, 0x0189, 0x00000000); suspend; } } } return; } /* ===== slot 0x46 slot_46 ===== */ function free_slot_46() /* entry=475 class_id=0x0A1D slot=0x46 */ { set_info(1, 0); /* global_address global_id=0x1E */ return; } /* ===== slot 0x47 slot_47 ===== */ function free_slot_47() /* entry=475 class_id=0x0A1D slot=0x47 */ { set_info(1, 0); /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ return; } /* ===== slot 0x48 slot_48 ===== */ function free_slot_48() /* entry=475 class_id=0x0A1D slot=0x48 */ { if (arg_06 <= 0) { return; } else { return; } return; } /* ===== slot 0x49 slot_49 ===== */ function free_slot_49() /* entry=475 class_id=0x0A1D slot=0x49 */ { set_info(1, 0); /* loopscr value_u8=0x24 */ /* loop current_var=0xFE string_bytes=0x1 loop_type=0x4 */ while (!condition) { if (MainActor.addItemCru(1, local_02)) { /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ spawn FREE.slot_3B(pid, 10, 0x00000000); suspend; } /* loopnext */ } /* word_to_dword */ /* pop_result */ return; } /* ===== slot 0x4A slot_4A ===== */ function free_slot_4A() /* entry=475 class_id=0x0A1D slot=0x4A */ { set_info(1, 0); /* loop_selector local_02 in selector_0x42(arg0=0x0560, arg1=0x0584, arg2=(50 * 32), origin=global[0x001E]) */ while (!condition) { /* loopnext */ } return; }