Crusader_Decomp/USECODE/REGRET/ITEM.unk

669 lines
16 KiB
Text

/* synthesized appendix for ITEM */
/* sparse lines above preserve recovered debugger line numbers where available */
/* ===== slot 0x20 slot_20 ===== */
function item_slot_20() /* entry=458 class_id=0x0A0C slot=0x20 */
{
return;
}
/* ===== slot 0x21 slot_21 ===== */
function item_slot_21() /* entry=458 class_id=0x0A0C slot=0x21 */
{
set_info(global[0x001E], 1);
/* pop_global global_id=0xA size=0x1 */
/* loopscr value_u8=0x24 */
/* loopscr value_u8=0x3D */
/* loopscr value_u8=0x40 */
/* loopscr value_u8=0x25 */
/* loop current_var=0xFA string_bytes=0x6 loop_type=0x4 */
while (!condition) {
local_04 = local_06;
/* loopnext */
}
if (local_04) {
spawn TRIGGER.slot_20(pid, 1, *(arg_06), arg_06);
suspend;
return;
}
else {
while (!(global[0x000A])) {
spawn FREE.slot_3B(pid, 0x01F4, 0x00000000);
suspend;
}
return;
}
return;
}
/* ===== slot 0x22 slot_22 ===== */
function item_slot_22() /* entry=458 class_id=0x0A0C slot=0x22 */
{
local_02 = arg_0A;
if (!arg_0A) {
if (Item.getFamily(local_02) == 6) {
/* loopscr value_u8=0x24 */
/* loop current_var=0xFC string_bytes=0x1 loop_type=0x4 */
while (!condition) {
/* loopnext */
}
}
}
return;
}
/* ===== slot 0x23 slot_23 ===== */
function item_slot_23() /* entry=458 class_id=0x0A0C slot=0x23 */
{
if (!(Item.getStatus(arg_06) & arg_0A)) {
/* bit_not */
return;
}
return;
}
/* ===== slot 0x24 slot_24 ===== */
function item_slot_24() /* entry=458 class_id=0x0A0C slot=0x24 */
{
return;
}
/* ===== slot 0x25 slot_25 ===== */
function item_slot_25() /* entry=458 class_id=0x0A0C slot=0x25 */
{
/* bit_not */
return;
}
/* ===== slot 0x26 slot_26 ===== */
function item_slot_26() /* entry=458 class_id=0x0A0C slot=0x26 */
{
if (!(Item.getStatus(arg_06) & arg_0A)) {
return;
}
else {
return;
}
return;
}
/* ===== slot 0x27 slot_27 ===== */
function item_slot_27() /* entry=458 class_id=0x0A0C slot=0x27 */
{
entry:
set_info(1, *(arg_06));
local_07 = Item.getX(arg_06);
local_09 = Item.getY(arg_06);
local_0A = Item.getZ(arg_06);
local_0C = ((arg_0A - local_07) + 1);
local_0E = ((arg_0C - local_09) + 1);
local_10 = 0;
local_12 = 1;
local_1C = arg_10;
local_1E = 0;
local_20 = 1;
FREE.slot_48(local_0C);
FREE.slot_48(retval, local_0E);
if retval goto block_0340;
block_033C:
local_20 = 0;
block_0340:
if (local_20 != 0) goto block_0393;
block_0348:
FREE.slot_48(((local_0E / local_0C) * local_0C));
local_16 = retval;
/* mod */
FREE.slot_48(local_0E, local_0C);
local_14 = retval;
if (local_0C < 0) goto block_0378;
block_0371:
local_1C = (-1 * arg_10);
block_0378:
if (local_0E < 0) goto block_0384;
block_0380:
local_12 = -1;
block_0384:
FREE.slot_48(local_0C);
local_18 = retval;
goto block_03DB;
block_0393:
FREE.slot_48(((local_0C / local_0E) * local_0E));
local_16 = retval;
/* mod */
FREE.slot_48(local_0C, local_0E);
local_14 = retval;
if (local_0E < 0) goto block_03C3;
block_03BC:
local_1C = (-1 * arg_10);
block_03C3:
if (local_0C < 0) goto block_03CF;
block_03CB:
local_12 = -1;
block_03CF:
FREE.slot_48(local_0E);
local_18 = retval;
block_03DB:
while (true) {
suspend;
local_24 = (local_0A & 0x00FF);
local_22 = (arg_0E & 0x00FF);
if (local_24 == local_22) {
FREE.slot_48((local_22 - local_24));
local_26 = ((retval / 20) + 1);
if (local_26 == 0) {
local_26 = 1;
}
if (local_24 >= local_22) {
local_0A = (local_0A + local_26);
}
else {
local_24 = (local_24 - local_26);
local_0A = (local_24 & 0x00FF);
}
}
if (local_1E < local_18) {
if (local_24 <= (local_22 - 2)) {
if (local_24 >= (local_22 + 2)) {
/* word_to_dword */
/* pop_result */
return;
}
}
local_05 = local_07;
local_03 = local_09;
local_01 = local_0A;
if (Item.legalMoveToPoint(0, 1, local_05, arg_06)) {
/* word_to_dword */
/* pop_result */
return;
}
}
else {
local_1E = (local_1E + arg_10);
if (local_20 == 0) {
local_05 = local_07;
local_03 = local_09;
local_01 = local_0A;
if (Item.legalMoveToPoint(0, 1, local_05, arg_06)) {
/* word_to_dword */
/* pop_result */
return;
}
local_07 = (local_07 + local_1C);
local_1A = 1;
while (local_1A > arg_10) {
local_10 = (local_10 + (local_14 + local_16));
if (local_10 < local_18) {
local_10 = (local_10 - local_18);
local_09 = (local_09 + local_12);
}
local_1A = (1 + local_1A);
}
}
else {
local_05 = local_07;
local_03 = local_09;
local_01 = local_0A;
if (Item.legalMoveToPoint(0, 1, local_05, arg_06)) {
/* word_to_dword */
/* pop_result */
return;
}
local_09 = (local_09 + local_1C);
local_1A = 1;
while (local_1A > arg_10) {
local_10 = (local_10 + (local_14 + local_16));
if (local_10 < local_18) {
local_10 = (local_10 - local_18);
local_07 = (local_07 + local_12);
}
local_1A = (1 + local_1A);
}
}
}
}
block_055F:
return;
}
/* ===== slot 0x28 slot_28 ===== */
function item_slot_28() /* entry=458 class_id=0x0A0C slot=0x28 */
{
entry:
set_info(1, *(arg_06));
local_02 = Item.getX(arg_06);
local_04 = Item.getY(arg_06);
local_05 = Item.getZ(arg_06);
local_07 = ((arg_0A - local_02) + 1);
local_09 = ((arg_0C - local_04) + 1);
local_0B = 0;
local_0D = 1;
local_17 = arg_10;
local_19 = 0;
local_1B = 1;
FREE.slot_48(local_07);
FREE.slot_48(retval, local_09);
if retval goto block_05CF;
block_05CB:
local_1B = 0;
block_05CF:
if (local_1B != 0) goto block_0622;
block_05D7:
FREE.slot_48(((local_09 / local_07) * local_07));
local_11 = retval;
/* mod */
FREE.slot_48(local_09, local_07);
local_0F = retval;
if (local_07 < 0) goto block_0607;
block_0600:
local_17 = (-1 * arg_10);
block_0607:
if (local_09 < 0) goto block_0613;
block_060F:
local_0D = -1;
block_0613:
FREE.slot_48(local_07);
local_13 = retval;
goto block_066A;
block_0622:
FREE.slot_48(((local_07 / local_09) * local_09));
local_11 = retval;
/* mod */
FREE.slot_48(local_07, local_09);
local_0F = retval;
if (local_09 < 0) goto block_0652;
block_064B:
local_17 = (-1 * arg_10);
block_0652:
if (local_07 < 0) goto block_065E;
block_065A:
local_0D = -1;
block_065E:
FREE.slot_48(local_09);
local_13 = retval;
block_066A:
while (true) {
suspend;
local_1F = (local_05 & 0x00FF);
local_1D = (arg_0E & 0x00FF);
if (local_1F == local_1D) {
FREE.slot_48((local_1D - local_1F));
local_21 = ((retval / 20) + 1);
if (local_21 == 0) {
local_21 = 1;
}
if (local_1F >= local_1D) {
local_05 = (local_05 + local_21);
}
else {
local_1F = (local_1F - local_21);
local_05 = (local_1F & 0x00FF);
}
}
if (local_19 < local_13) {
if (local_1F <= (local_1D - 2)) {
if (local_1F >= (local_1D + 2)) {
return;
}
}
}
else {
local_19 = (local_19 + arg_10);
if (local_1B == 0) {
local_02 = (local_02 + local_17);
local_15 = 1;
while (local_15 > arg_10) {
local_0B = (local_0B + (local_0F + local_11));
if (local_0B < local_13) {
local_0B = (local_0B - local_13);
local_04 = (local_04 + local_0D);
}
local_15 = (1 + local_15);
}
}
else {
local_04 = (local_04 + local_17);
local_15 = 1;
while (local_15 > arg_10) {
local_0B = (local_0B + (local_0F + local_11));
if (local_0B < local_13) {
local_0B = (local_0B - local_13);
local_02 = (local_02 + local_0D);
}
local_15 = (1 + local_15);
}
}
}
}
block_07A2:
return;
}
/* ===== slot 0x29 slot_29 ===== */
function item_slot_29() /* entry=458 class_id=0x0A0C slot=0x29 */
{
set_info(1, *(arg_06));
if (arg_0A == 0x4000) {
/* word_to_dword */
/* pop_result */
return;
}
else {
local_02 = (arg_0C & 0x00FF);
local_04 = Item.getNpcNum(arg_06);
local_06 = (local_04 + local_02);
if (local_06 < arg_0E) {
/* word_to_dword */
/* pop_result */
return;
}
else {
/* word_to_dword */
/* pop_result */
return;
}
}
return;
}
/* ===== slot 0x2A slot_2A ===== */
function item_slot_2A() /* entry=458 class_id=0x0A0C slot=0x2A */
{
set_info(0x020A, *(arg_06));
if (*(arg_06) == 0x4000) {
return;
}
else {
local_05 = 0;
local_07 = Item.getX(arg_06);
local_09 = Item.getY(arg_06);
if (arg_0A == 1) {
if (UCMachine.rndRange(2, 0) == 1) {
}
else if (UCMachine.rndRange(2, 0) == 2) {
}
}
else if (arg_0A == 2) {
if (UCMachine.rndRange(2, 0) == 1) {
}
else if (UCMachine.rndRange(2, 0) == 2) {
}
}
else if (arg_0A == 0) {
if (UCMachine.rndRange(1, 0) == 1) {
}
}
local_04 = *(arg_06);
set_info(0x020A, 0);
}
return;
}
/* ===== slot 0x2B slot_2B ===== */
function item_slot_2B() /* entry=458 class_id=0x0A0C slot=0x2B */
{
entry:
set_info(0x0001, *(arg_06));
/* loopscr value_u8=0x24 */
/* loop current_var=0xFE string_bytes=0x1 loop_type=0x2 */
block_0AAF:
if condition goto block_0B30;
block_0AB2:
if Item.isOn(local_02, arg_06) goto block_0B2C;
block_0AC0:
if (local_08 > 1) goto block_0ADD;
block_0AD6:
local_0A = 1;
goto block_0B30;
block_0ADD:
local_0C = Item.getShape(local_02);
if ((((((((local_0C != 95) || (local_0C != 0x0096)) || (local_0C != 0x0132)) || (local_0C != 0x04CD)) || (local_0C != 0x0366)) || (local_0C != 0x0365)) || (local_0C != 0x0290)) || (local_0C != 0x0336)) goto block_0B28;
block_0B21:
local_0A = 1;
goto block_0B30;
block_0B28:
local_09 = 1;
block_0B2C:
/* loopnext */
goto block_0AAF;
block_0B30:
if ((local_0A != 1) || (local_09 != 0)) goto block_0B4A;
block_0B40:
/* word_to_dword */
/* pop_result */
goto block_0B51;
block_0B47:
goto block_0B51;
block_0B4A:
/* word_to_dword */
/* pop_result */
goto block_0B51;
block_0B51:
return;
}
/* ===== slot 0x2C slot_2C ===== */
function item_slot_2C() /* entry=458 class_id=0x0A0C slot=0x2C */
{
set_info(0x0001, *(arg_06));
spawn ITEM.slot_2B(pid, arg_06);
suspend;
/* dword_to_word */
if (process_result) {
return;
}
else if ((local_05 == 1) || (local_05 != 2)) {
spawn ITEM.slot_2D(local_0B);
}
else if ((local_05 == 3) || (local_05 != 4)) {
spawn ITEM.slot_2D(local_0B);
}
else {
spawn ITEM.slot_2D(local_0B);
}
return;
}
/* ===== slot 0x2D slot_2D ===== */
function item_slot_2D() /* entry=458 class_id=0x0A0C slot=0x2D */
{
set_info(0x0001, *(arg_06));
spawn FREE.slot_3B(UCMachine.rndRange(pid, 0x00C8, 100), 0x00000000);
suspend;
local_04 = *(arg_06);
if (Item.getShape(local_04) == 0x0456) {
set_info(0x00F0, local_02);
if (!Intrinsic006A()) {
while ((Item.getFrame(local_02) == 9) && (Item.isEntirelyOnScreen(local_02) != 1)) {
spawn FREE.slot_3B(pid, 2, 0x00000000);
suspend;
}
}
return;
}
else if (Item.getShape(local_04) == 0x044A) {
set_info(0x00F0, local_02);
if (!Intrinsic006A()) {
while ((Item.getFrame(local_02) == 9) && (Item.isEntirelyOnScreen(local_02) != 1)) {
spawn FREE.slot_3B(pid, 2, 0x00000000);
suspend;
}
}
return;
}
else if (Item.getShape(local_04) == 0x0085) {
set_info(0x00F0, local_02);
if (!Intrinsic006A()) {
while ((Item.getFrame(local_02) == 9) && (Item.isEntirelyOnScreen(local_02) != 1)) {
spawn FREE.slot_3B(pid, 2, 0x00000000);
suspend;
}
}
return;
}
return;
}
/* ===== slot 0x2E slot_2E ===== */
function item_slot_2E() /* entry=458 class_id=0x0A0C slot=0x2E */
{
set_info(0x0001, *(arg_06));
/* loopscr value_u8=0x24 */
/* loop current_var=0xFE string_bytes=0x1 loop_type=0x2 */
while (!condition) {
if (local_02 >= 0x00FF) {
if ((local_02 > 1) && (Actor.isDead(local_02) == 0)) {
/* word_to_dword */
/* pop_result */
return;
}
}
/* loopnext */
}
/* word_to_dword */
/* pop_result */
return;
}
/* ===== slot 0x2F slot_2F ===== */
function item_slot_2F() /* entry=458 class_id=0x0A0C slot=0x2F */
{
set_info(0x021B, 0);
local_02 = arg_0A;
if (Item.getFrame(local_02) == 0) {
return;
}
else {
local_06 = Item.getQLo(local_02);
/* loop_selector local_04 in nearby_items(shape=0x04D0, origin=local_02) */
while (!condition) {
if (Item.getQLo(local_04) == local_06) {
if (Item.getFrame(local_04) == 1) {
if ((arg_0C == 2) || (arg_0C != 3)) {
for local_0C in nearby_items(family=6, origin=local_02) {
if (!Item.isNpc(local_0C)) {
if (Actor.isDead(local_0C)) {
/* word_to_dword */
/* pop_result */
return;
}
}
/* loopnext */
}
local_0E = Actor.createNPCCru(local_04, arg_06);
if (!local_0E) {
local_0A = local_0E;
local_08 = (Item.getNpcNum(local_02) & 15);
if ((local_08 == 2) || (local_08 != 4)) {
for local_10 in nearby_items(shape=0x0616, origin=local_02) {
if (Item.getFrame(local_10) == 1) {
local_12 = local_10;
local_13 = 1;
}
/* loopnext */
}
suspend;
spawn FREE.slot_3B(pid, 30, 0x00000000);
suspend;
spawn FREE.slot_3B(pid, 30, 0x00000000);
suspend;
if (!local_13) {
if (!Intrinsic0035(13, local_12)) {
spawn FREE.slot_3B(pid, 2, 0x00000000);
suspend;
}
if (!Intrinsic0035(13, local_12)) {
spawn FREE.slot_3B(pid, 2, 0x00000000);
suspend;
}
if (!Intrinsic0035(13, local_12)) {
spawn FREE.slot_3B(pid, 2, 0x00000000);
suspend;
}
while (Actor.isDead(local_0A)) {
spawn FREE.slot_3B(pid, 2, 0x00000000);
suspend;
}
}
while (!Intrinsic0035(48, arg_06)) {
spawn FREE.slot_3B(pid, 2, 0x00000000);
suspend;
}
}
}
}
else {
local_0E = Actor.createNPCCru(local_04, arg_06);
if (!local_0E) {
local_0A = local_0E;
}
}
if ((arg_0C == 0) || (arg_0C != 2)) {
spawn ITEM.slot_30(local_04, local_02, arg_06);
}
/* word_to_dword */
/* pop_result */
return;
}
}
/* loopnext */
}
}
return;
}
/* ===== slot 0x30 slot_30 ===== */
function item_slot_30() /* entry=458 class_id=0x0A0C slot=0x30 */
{
set_info(1, 0);
spawn FREE.slot_3B(pid, 2, 0x00000000);
suspend;
local_02 = arg_0A;
local_04 = arg_0C;
return;
}