Crusader_Decomp/USECODE/REGRET/ROLL_EW.unk

202 lines
4.6 KiB
Text

/* 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;
}