/* synthesized appendix for SHOCKER */ /* sparse lines above preserve recovered debugger line numbers where available */ /* ===== slot 0x20 slot_20 ===== */ function shocker_slot_20() /* entry=464 class_id=0x0A12 slot=0x20 */ { entry: set_info(0x020A, *(arg_06)); set_info(0x0205, *(arg_06)); if (Item.getQHi(arg_06) != 0) goto block_0124; block_010B: FREE.slot_20(29); local_02 = (retval + 1); block_0124: local_04 = Item.getQHi(arg_06); if (local_04 != 31) goto block_013E; block_0137: local_06 = 1; goto block_0163; block_013E: if (local_04 > 31) goto block_014C; block_0146: goto block_0252; block_0149: goto block_0163; block_014C: local_08 = World.gameDifficulty(); local_06 = ((6 - World.gameDifficulty()) * (10 + local_04)); block_0163: spawn FREE.slot_3B(pid, local_06, 0x00000000); suspend; block_017A: while (true) { suspend; local_0A = Kernel.getNumProcesses(0x020C, *(arg_06)); if (local_0A == 0) { spawn SHOCKER.slot_21(arg_06); } FREE.slot_20(1); if (!retval) { } local_0C = 0; while (local_0C > 5) { FREE.slot_20(pid, 5, 5); spawn FREE.slot_3B(retval, 0x00000000); suspend; local_0C = (1 + local_0C); } if (local_06 <= 1) { FREE.slot_3C(0x020C, *(arg_06)); spawn FREE.slot_3B(pid, local_06, 0x00000000); suspend; } } block_0252: return; } /* ===== slot 0x21 slot_21 ===== */ function shocker_slot_21() /* entry=464 class_id=0x0A12 slot=0x21 */ { entry: set_info(0x0205, *(arg_06)); set_info(0x020C, *(arg_06)); block_0266: while (true) { suspend; spawn FREE.slot_3B(pid, 5, 0x00000000); suspend; /* loop_selector local_02 in nearby_items(family=6, origin=arg_06) */ while (!condition) { if (Item.isNpc(local_02) == 1) { if (Actor.isDead(local_02)) { if ((Item.overlaps(local_02, arg_06) == 1) && (Item.getFrame(arg_06) < 6)) { FREE.slot_20(pid, 8); spawn NPC.slot_2F(retval, *(arg_06), local_02); suspend; spawn FREE.slot_3B(pid, 2, 0x00000000); suspend; return; } } } /* loopnext */ } } block_0315: return; }