Crusader_Decomp/USECODE/REGRET/FREE.unk

1243 lines
30 KiB
Text

/* 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;
}