/* synthesized appendix for TELEPAD */ /* sparse lines above preserve recovered debugger line numbers where available */ /* ===== slot 0x06 gotHit ===== */ function telepad_gotHit() /* entry=118 class_id=0x01DB slot=0x06 */ { set_info(0x020C, *(arg_06)); process_exclude(); local_02 = arg_0A; local_04 = *(arg_06); local_08 = Item.getQLo(local_04); set_info(1, 0); spawn FREE.slot_3B(pid, 1, 0x00000000); suspend; FREE.slot_35(arg_0C, arg_0A); if ((retval <= 0) || (Item.getFrame(local_04) > 1)) { return; } else if (Ultima8Engine.getUnkCrusaderFlag() == 1) { /* loopscr value_u8=0x24 */ /* loopscr value_u8=0x3D */ /* loopscr value_u8=0x3A */ /* loopscr value_u8=0x25 */ /* loop current_var=0xF6 string_bytes=0x6 loop_type=0x6 */ while (!condition) { /* loopnext */ } return; } else if (Item.isCentreOn(*(arg_06), local_02)) { return; } else { /* global_address global_id=0x1E */ if (Item.getShape((local_02 == 1)) != 1) { if (local_08 == 0x00FF) { return; } else { /* pop_global global_id=0x9 size=0x1 */ if ((local_08 > 0) && (local_08 >= 100)) { /* global_address global_id=0x1E */ spawn TELEPAD.slot_20(Actor.getMap(local_08), arg_06); return; } else if (local_08 == 109) { spawn TELEPAD.slot_20(109, 20, arg_06); return; } else if (local_08 == 110) { spawn TELEPAD.slot_20(111, 21, arg_06); return; } else if (local_08 == 111) { spawn TELEPAD.slot_20(65, 20, arg_06); return; } else if (local_08 == 112) { spawn TELEPAD.slot_20(66, 20, arg_06); return; } else if (local_08 == 113) { spawn TELEPAD.slot_20(30, 3, arg_06); return; } else if (local_08 == 114) { spawn TELEPAD.slot_20(30, 22, arg_06); return; } else if (local_08 == 115) { spawn TELEPAD.slot_20(115, 20, arg_06); return; } else { /* str_to_ptr */ /* free_stack_string value_u8=0x4 target=[SP+04h] */ suspend; return; } } } } return; } /* ===== slot 0x09 release ===== */ function telepad_release() /* entry=118 class_id=0x01DB slot=0x09 */ { set_info(0x020D, *(arg_06)); process_exclude(); /* loopscr value_u8=0x24 */ /* loopscr value_u8=0x3D */ /* loopscr value_u8=0x3A */ /* loopscr value_u8=0x25 */ /* loop current_var=0xFE string_bytes=0x6 loop_type=0x6 */ while (!condition) { if (local_02 == 1) { local_03 = 1; } /* loopnext */ } return; } /* ===== slot 0x0F enterFastArea ===== */ function telepad_enterFastArea() /* entry=118 class_id=0x01DB slot=0x0F */ { set_info(0x021B, *(arg_06)); process_exclude(); return; } /* ===== slot 0x20 slot_20 ===== */ function telepad_slot_20() /* entry=118 class_id=0x01DB slot=0x20 */ { set_info(1, 0); /* global_address global_id=0x1E */ if (!Actor.isDead()) { return; } else { /* global_address global_id=0x1E */ /* pop_global global_id=0xB size=0x1 */ /* pop_global global_id=0xC size=0x1 */ spawn FREE.slot_3B(0, 0, pid, 0, 0x00000000); suspend; FREE.slot_3C(0x0215, 0); FREE.slot_3C(0x0228, 0); /* global_address global_id=0x1E */ while (!Actor.isBusy()) { spawn FREE.slot_3B(pid, 2, 0x00000000); suspend; } /* global_address global_id=0x1E */ if (!Intrinsic0061()) { /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ suspend; } /* global_address global_id=0x1E */ spawn NPC.slot_24(pid); suspend; /* global_address global_id=0x1E */ if (Actor.getMap() == arg_0A) { suspend; FREE.slot_22(); if (arg_0A == 3) { spawn FREE.slot_3B(pid, 120, 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] */ return; } if (!arg_0A) { suspend; } FREE.slot_23(); /* global_address global_id=0x1E */ /* global_address global_id=0x1E */ suspend; } else { suspend; } /* global_address global_id=0x1E */ spawn NPC.slot_23(pid); suspend; /* global_address global_id=0x1E */ } return; }