/* synthesized appendix for FADE */ /* sparse lines above preserve recovered debugger line numbers where available */ /* ===== slot 0x0A equip ===== */ function fade_equip() /* entry=296 class_id=0x04FC slot=0x0A */ { set_info(0x0211, *(arg_06)); process_exclude(); local_1B = Item.getQLo(arg_06); if (arg_0A == 1) { spawn FREE.slot_44(0x00000000); spawn FREE.slot_3B(pid, 0x03E8, 0x00000000); suspend; spawn FADE.slot_20(0x00000000); return; } else if (arg_0A == 3) { /* str_to_ptr */ /* free_stack_string value_u8=0x0 target=[SP+00h] */ /* str_to_ptr */ /* free_stack_string value_u8=0x0 target=[SP+00h] */ /* pop_global global_id=0x13 size=0x1 */ spawn FREE.slot_3B(1, pid, 60, 0x00000000); suspend; spawn TRIGGER.slot_20(pid, 0, *(arg_06), arg_06); suspend; return; } else if (arg_0A == 5) { /* str_to_ptr */ /* free_stack_string value_u8=0x0 target=[SP+00h] */ /* str_to_ptr */ /* free_stack_string value_u8=0x0 target=[SP+00h] */ /* global_address global_id=0x1E */ spawn FREE.slot_3B(pid, 5, 0x00000000); suspend; spawn FREE.slot_44(0x00000000); spawn TRIGGER.slot_20(pid, 0, *(arg_06), arg_06); suspend; spawn FREE.slot_3B(pid, 120, 0x00000000); suspend; /* pop_global global_id=0x14 size=0x1 */ spawn FREE.slot_3B(1, pid, 2, 0x00000000); suspend; /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ spawn FREE.slot_3B(pid, 5, 0x00000000); suspend; return; } else if (arg_0A == 8) { /* pop_global global_id=0x18 size=0x1 */ spawn FREE.slot_21(1, pid, 0x017A, 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] */ spawn TRIGGER.slot_20(pid, 0, *(arg_06), arg_06); suspend; return; } else if (arg_0A == 0x00D2) { /* global_address global_id=0x1E */ if (!Intrinsic0061()) { /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ suspend; } /* global_address global_id=0x1E */ suspend; /* global_address global_id=0x1E */ suspend; /* global_address global_id=0x1E */ suspend; /* loop_selector local_02 in nearby_items(shape=0x053A, origin=arg_06) */ while (!condition) { if (Item.getQLo(local_02) == 1) { FREE.slot_32(local_02, global[0x001E]); while ((retval > 3) && (local_0F == 10)) { /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ spawn NPC.slot_22(Item.getDirFromTo16(Item.getX(pid, 1, Item.getY((Item.getY(local_02) - 32), (Item.getX(local_02) - 16))))); suspend; local_0F = (1 + local_0F); } } /* loopnext */ } /* global_address global_id=0x1E */ suspend; /* loop_selector local_02 in selector_0x42(arg0=0x04D9, arg1=0x03AC, arg2=(32 * 32), origin=arg_06) */ while (!condition) { if (Item.getShape(local_02) == 0x04D9) { local_27 = local_02; } if (Item.getShape(local_02) == 0x03AC) { local_29 = local_02; } /* loopnext */ } if (!local_27) { suspend; suspend; suspend; suspend; suspend; } if (!local_29) { suspend; suspend; suspend; suspend; suspend; } spawn FREE.slot_3B(pid, 60, 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] */ /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ /* loop_selector local_02 in nearby_items(shape=0x01DB, origin=arg_06) */ while (!condition) { /* loopnext */ } return; } else if (arg_0A == 0x00D3) { spawn FREE.slot_3B(pid, 0x00C8, 0x00000000); suspend; /* loop_selector local_02 in selector_0x42(arg0=0x04D9, arg1=0x03AC, arg2=(32 * 32), origin=arg_06) */ while (!condition) { if (Item.getShape(local_02) == 0x04D9) { local_27 = local_02; } if (Item.getShape(local_02) == 0x03AC) { local_29 = local_02; } /* loopnext */ } if (!local_27) { suspend; suspend; suspend; suspend; suspend; suspend; spawn NPC.slot_24(pid, local_27); suspend; } if (!local_29) { suspend; suspend; suspend; suspend; suspend; suspend; suspend; suspend; suspend; spawn NPC.slot_24(pid, local_29); suspend; } for local_02 in nearby_items(shape=0x03AD, origin=arg_06) { if (Item.getQLo(local_02) == 78) { local_08 = local_02; spawn DOOR.slot_21(pid, 0, local_08); suspend; } /* loopnext */ } for local_02 in nearby_items(shape=0x01EE, origin=arg_06) { if (Item.getQLo(local_02) == 0x0084) { local_08 = local_02; spawn DOOR.slot_21(pid, 0, local_08); suspend; } /* loopnext */ } spawn FREE.slot_3B(pid, 60, 0x00000000); suspend; /* pop_global global_id=0x15 size=0x1 */ spawn TRIGGER.slot_20(1, pid, (0 + 0x0080), *(arg_06), arg_06); suspend; spawn FREE.slot_44(0x00000000); return; } else if (arg_0A == 0x00DE) { /* global_address global_id=0x1E */ if (!Intrinsic0061()) { /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ suspend; } for local_02 in nearby_items(shape=0x053A, origin=arg_06) { if (Item.getQLo(local_02) == 1) { FREE.slot_32(local_02, global[0x001E]); while ((retval > 3) && (local_0F == 10)) { /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ spawn NPC.slot_22(Item.getDirFromTo16(Item.getX(pid, 1, Item.getY((Item.getY(local_02) - 32), (Item.getX(local_02) - 16))))); suspend; local_0F = (1 + local_0F); } } /* loopnext */ } /* global_address global_id=0x1E */ suspend; /* loop_selector local_08 in nearby_items(shape=0x05A4, origin=arg_06) */ while (!condition) { if (Item.getQLo(local_08) == 2) { spawn DOOR.slot_21(pid, 2, local_08); suspend; } /* loopnext */ } spawn FREE.slot_3B(pid, 60, 0x00000000); suspend; spawn FREE.slot_21(pid, 0x01E5, 0x00000000); suspend; spawn FREE.slot_21(pid, 0x01E6, 0x00000000); suspend; /* loop_selector local_19 in nearby_items(shape=0x05B1, origin=arg_06) */ while (!condition) { /* loopnext */ } /* global_address global_id=0x1E */ suspend; return; } return; } /* ===== slot 0x20 slot_20 ===== */ function fade_slot_20() /* entry=296 class_id=0x04FC slot=0x20 */ { set_info(0x0223, 0); while (!(1)) { while (!(global[0x000E])) { spawn FREE.slot_3B(pid, 100, 0x00000000); suspend; } local_02 = 1; while (local_02 > 3) { while (!AudioProcess.isSFXPlaying(0x0118)) { spawn FREE.slot_3B(pid, 5, 0x00000000); suspend; } local_02 = (1 + local_02); } while (!(global[0x000E])) { spawn FREE.slot_3B(pid, 100, 0x00000000); suspend; } spawn FREE.slot_3B(pid, 0x0320, 0x00000000); suspend; } return; }