/* synthesized appendix for ROLL_EW */ /* sparse lines above preserve recovered debugger line numbers where available */ /* ===== slot 0x05 hit ===== */ function roll_ew_hit() /* entry=331 class_id=0x056C slot=0x05 */ { set_info(0x020B, *(arg_06)); process_exclude(); if ((Item.getStatus(arg_06) & 4) == 0) { spawn ROLL_EW.slot_21(arg_06); } return; } /* ===== slot 0x06 gotHit ===== */ function roll_ew_gotHit() /* entry=331 class_id=0x056C slot=0x06 */ { set_info(0x020C, *(arg_06)); process_exclude(); if ((Item.getStatus(arg_06) & 4) == 0) { spawn ROLL_EW.slot_21(arg_06); return; } else { spawn ITEM.slot_29(pid, 0x0096, arg_0C, arg_0A, arg_06); suspend; /* dword_to_word */ if (process_result) { FREE.slot_20(1); if (!retval) { } return; } else { spawn ROLL_EW.slot_20(pid, arg_06); suspend; } } return; } /* ===== slot 0x0A equip ===== */ function roll_ew_equip() /* entry=331 class_id=0x056C slot=0x0A */ { set_info(0x0211, *(arg_06)); process_exclude(); if (arg_0A == 1) { if ((Item.getStatus(arg_06) & 4) == 0) { spawn ROLL_EW.slot_21(arg_06); } return; } else if (arg_0A == 2) { if (!(Item.getStatus(arg_06) & 4)) { /* bit_not */ } return; } return; } /* ===== slot 0x0B unequip ===== */ function roll_ew_unequip() /* entry=331 class_id=0x056C slot=0x0B */ { set_info(0x0212, *(arg_06)); process_exclude(); spawn ROLL_EW.equip(pid, arg_0A, arg_06); suspend; return; } /* ===== slot 0x20 slot_20 ===== */ function roll_ew_slot_20() /* entry=331 class_id=0x056C slot=0x20 */ { entry: set_info(1, *(arg_06)); spawn FREE.slot_3B(pid, 2, 0x00000000); suspend; local_0A = Item.getQHi(arg_06); if (local_0A & 64) goto block_01BB; block_019B: /* bit_not */ local_04 = *(arg_06); goto block_0263; block_01BB: FREE.slot_20(3); local_06 = retval; block_01C7: if 1 goto block_01E6; block_01CC: FREE.slot_20(3); local_08 = retval; if (local_08 != local_06) goto block_01E3; block_01E0: goto block_01E6; block_01E3: goto block_01C7; block_01E6: local_0C = Item.getX(arg_06); local_0E = Item.getY(arg_06); local_0F = Item.getZ(arg_06); local_11 = Item.getQLo(arg_06); spawn ITEM.slot_2C(pid, arg_06); suspend; block_0263: return; } /* ===== slot 0x21 slot_21 ===== */ function roll_ew_slot_21() /* entry=331 class_id=0x056C slot=0x21 */ { set_info(0x0001, *(arg_06)); local_06 = Item.getQHi(arg_06); local_02 = (local_06 & 31); if (local_02 == 0) { local_02 = 1; } local_04 = Item.getFrame(arg_06); local_13 = Item.getX(arg_06); local_11 = Item.getY(arg_06); local_0F = Item.getZ(arg_06); local_17 = 0; local_18 = local_0F; if (local_06 >= 0x0080) { while (!(1)) { local_04 = (local_04 - 1); if (local_04 >= 0) { local_04 = 3; } local_13 = (local_13 + 8); if (Item.legalMoveToPoint(0, 0, local_13, arg_06) == 0) { local_0F = (1 + local_0F); if (Item.legalMoveToPoint(0, 0, local_13, arg_06) == 0) { spawn ROLL_EW.slot_20(pid, arg_06); suspend; return; } } if (local_0F <= 1) { local_0F = (local_0F - 4); if (Item.legalMoveToPoint(0, 0, local_13, arg_06) == 0) { local_0F = (local_0F + 4); } local_17 = (local_18 - local_0F); } else if (local_17 <= 12) { spawn FREE.slot_3B(pid, 6, 0x00000000); suspend; spawn ROLL_EW.slot_20(pid, arg_06); suspend; return; } spawn FREE.slot_3B(pid, local_02, 0x00000000); suspend; } return; } else { while (!(1)) { local_04 = (1 + local_04); if (local_04 <= 3) { local_04 = 0; } local_13 = (local_13 - 8); if (Item.legalMoveToPoint(0, 0, local_13, arg_06) == 0) { local_0F = (1 + local_0F); if (Item.legalMoveToPoint(0, 0, local_13, arg_06) == 0) { spawn ROLL_EW.slot_20(pid, arg_06); suspend; return; } } if (local_0F <= 1) { local_0F = (local_0F - 4); if (Item.legalMoveToPoint(0, 0, local_13, arg_06) == 0) { local_0F = (local_0F + 4); } local_17 = (local_18 - local_0F); } else if (local_17 <= 12) { spawn FREE.slot_3B(pid, 6, 0x00000000); suspend; spawn ROLL_EW.slot_20(pid, arg_06); suspend; return; } spawn FREE.slot_3B(pid, local_02, 0x00000000); suspend; } } return; }