293 lines
7.1 KiB
Text
293 lines
7.1 KiB
Text
|
|
/* 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;
|
|
}
|