/* synthesized appendix for ROLLB_EW */ /* sparse lines above preserve recovered debugger line numbers where available */ /* ===== slot 0x05 hit ===== */ function rollb_ew_hit() /* entry=345 class_id=0x058B slot=0x05 */ { set_info(0x020B, *(arg_06)); process_exclude(); if ((Item.getStatus(arg_06) & 0x1000) == 0) { spawn ROLLB_EW.slot_21(arg_06); } return; } /* ===== slot 0x06 gotHit ===== */ function rollb_ew_gotHit() /* entry=345 class_id=0x058B slot=0x06 */ { set_info(0x020C, *(arg_06)); process_exclude(); if ((Item.getStatus(arg_06) & 0x1000) == 0) { spawn ROLLB_EW.slot_21(arg_06); return; } else { spawn ITEM.slot_29(pid, 100, arg_0C, arg_0A, arg_06); suspend; /* dword_to_word */ if (process_result) { FREE.slot_20(1); if (!retval) { } return; } else { spawn ROLLB_EW.slot_20(pid, arg_06); suspend; } } return; } /* ===== slot 0x0A equip ===== */ function rollb_ew_equip() /* entry=345 class_id=0x058B slot=0x0A */ { set_info(0x0211, *(arg_06)); process_exclude(); if (arg_0A == 1) { if ((Item.getStatus(arg_06) & 0x1000) == 0) { spawn ROLLB_EW.slot_21(arg_06); } return; } else if (arg_0A == 2) { if (!(Item.getStatus(arg_06) & 0x1000)) { /* bit_not */ } return; } return; } /* ===== slot 0x0B unequip ===== */ function rollb_ew_unequip() /* entry=345 class_id=0x058B slot=0x0B */ { set_info(0x0212, *(arg_06)); process_exclude(); spawn ROLLB_EW.equip(pid, arg_0A, arg_06); suspend; return; } /* ===== slot 0x20 slot_20 ===== */ function rollb_ew_slot_20() /* entry=345 class_id=0x058B slot=0x20 */ { entry: set_info(1, *(arg_06)); spawn FREE.slot_3B(pid, 2, 0x00000000); suspend; local_0C = Item.getQHi(arg_06); if (local_0C & 32) goto block_01C1; block_019E: /* loopscr value_u8=0x24 */ /* loop current_var=0xFC string_bytes=0x1 loop_type=0x6 */ block_01AB: while (!condition) { /* create_list element_size=0x2 count=0x1 */ /* append_list */ /* free_local_list bp_offset=0xFA target=[BP-06h] */ local_06 = local_04; /* loopnext */ } block_01BF: block_01C1: if (local_0C & 64) goto block_01EA; block_01C9: /* bit_not */ local_04 = *(arg_06); goto block_0292; block_01EA: FREE.slot_20(5); local_08 = retval; block_01F6: if 1 goto block_0215; block_01FB: FREE.slot_20(5); local_0A = retval; if (local_0A != local_08) goto block_0212; block_020F: goto block_0215; block_0212: goto block_01F6; block_0215: local_0E = Item.getX(arg_06); local_10 = Item.getY(arg_06); local_11 = Item.getZ(arg_06); local_13 = Item.getQLo(arg_06); spawn ITEM.slot_2C(pid, arg_06); suspend; block_0292: set_info(1, 0); /* free_local_list bp_offset=0xFA target=[BP-06h] */ return; } /* ===== slot 0x21 slot_21 ===== */ function rollb_ew_slot_21() /* entry=345 class_id=0x058B 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); if (!(local_06 & 32)) { if (local_06 >= 0x0080) { while (!(1)) { local_04 = (local_04 - 1); if (local_04 >= 0) { local_04 = 4; } local_08 = 0; /* loopscr value_u8=0x24 */ /* loop current_var=0xEB string_bytes=0x1 loop_type=0x6 */ while (!condition) { local_08 = (1 + local_08); /* loopnext */ } local_13 = (local_13 + 8); if (Item.legalMoveToPoint(0, 0, local_13, arg_06) == 0) { local_0A = 1; while (local_0A > local_08) { local_15 = Item.getEtherealTop(); local_0A = (1 + local_0A); } spawn ROLLB_EW.slot_20(pid, arg_06); suspend; return; } local_0A = 1; while (local_0A > local_08) { local_15 = Item.getEtherealTop(); local_0A = (1 + local_0A); } spawn FREE.slot_3B(pid, local_02, 0x00000000); suspend; } } else { while (!(1)) { local_04 = (1 + local_04); if (local_04 <= 4) { local_04 = 0; } local_08 = 0; /* loopscr value_u8=0x24 */ /* loop current_var=0xEB string_bytes=0x1 loop_type=0x6 */ while (!condition) { local_08 = (1 + local_08); /* loopnext */ } local_13 = (local_13 - 8); if (Item.legalMoveToPoint(0, 0, local_13, arg_06) == 0) { local_0A = 1; while (local_0A > local_08) { local_15 = Item.getEtherealTop(); local_0A = (1 + local_0A); } spawn ROLLB_EW.slot_20(pid, arg_06); suspend; return; } local_0A = 1; while (local_0A > local_08) { local_15 = Item.getEtherealTop(); local_0A = (1 + local_0A); } spawn FREE.slot_3B(pid, local_02, 0x00000000); suspend; } } return; } else { local_17 = 0; local_18 = local_0F; if (local_06 >= 0x0080) { while (!(1)) { local_04 = (local_04 - 1); if (local_04 >= 0) { local_04 = 4; } 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 ROLLB_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 ROLLB_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 <= 4) { 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 ROLLB_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 ROLLB_EW.slot_20(pid, arg_06); suspend; return; } spawn FREE.slot_3B(pid, local_02, 0x00000000); suspend; } } } return; }