202 lines
4.6 KiB
Text
202 lines
4.6 KiB
Text
|
|
/* synthesized appendix for ROLL_NS */
|
|
/* sparse lines above preserve recovered debugger line numbers where available */
|
|
|
|
/* ===== slot 0x05 hit ===== */
|
|
function roll_ns_hit() /* entry=183 class_id=0x0346 slot=0x05 */
|
|
{
|
|
set_info(0x020B, *(arg_06));
|
|
process_exclude();
|
|
if ((Item.getStatus(arg_06) & 4) == 0) {
|
|
spawn ROLL_NS.slot_21(arg_06);
|
|
}
|
|
return;
|
|
}
|
|
|
|
/* ===== slot 0x06 gotHit ===== */
|
|
function roll_ns_gotHit() /* entry=183 class_id=0x0346 slot=0x06 */
|
|
{
|
|
set_info(0x020C, *(arg_06));
|
|
process_exclude();
|
|
if ((Item.getStatus(arg_06) & 4) == 0) {
|
|
spawn ROLL_NS.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_NS.slot_20(pid, arg_06);
|
|
suspend;
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
/* ===== slot 0x0A equip ===== */
|
|
function roll_ns_equip() /* entry=183 class_id=0x0346 slot=0x0A */
|
|
{
|
|
set_info(0x0211, *(arg_06));
|
|
process_exclude();
|
|
if (arg_0A == 1) {
|
|
if ((Item.getStatus(arg_06) & 4) == 0) {
|
|
spawn ROLL_NS.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_ns_unequip() /* entry=183 class_id=0x0346 slot=0x0B */
|
|
{
|
|
set_info(0x0212, *(arg_06));
|
|
process_exclude();
|
|
spawn ROLL_NS.equip(pid, arg_0A, arg_06);
|
|
suspend;
|
|
return;
|
|
}
|
|
|
|
/* ===== slot 0x20 slot_20 ===== */
|
|
function roll_ns_slot_20() /* entry=183 class_id=0x0346 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_ns_slot_21() /* entry=183 class_id=0x0346 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_11 = (local_11 + 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_NS.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_NS.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_11 = (local_11 - 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_NS.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_NS.slot_20(pid, arg_06);
|
|
suspend;
|
|
return;
|
|
}
|
|
spawn FREE.slot_3B(pid, local_02, 0x00000000);
|
|
suspend;
|
|
}
|
|
}
|
|
return;
|
|
}
|