Crusader_Decomp/USECODE/REGRET/ELEVAT.unk

198 lines
5 KiB
Text

/* synthesized appendix for ELEVAT */
/* sparse lines above preserve recovered debugger line numbers where available */
/* ===== slot 0x20 slot_20 ===== */
function elevat_slot_20() /* entry=454 class_id=0x0A08 slot=0x20 */
{
set_info(0x0001, *(arg_06));
if (!(Item.getStatus(arg_06) & 0x1000)) {
return;
}
else if (Item.getNpcNum(arg_06)) {
return;
}
else {
ELEVAT.slot_22(Item.getZ(arg_06), arg_06);
if (!retval) {
spawn ELEVAT.slot_23(pid, arg_06);
suspend;
return;
}
else {
spawn ELEVAT.slot_24(pid, arg_06);
suspend;
}
}
return;
}
/* ===== slot 0x21 slot_21 ===== */
function elevat_slot_21() /* entry=454 class_id=0x0A08 slot=0x21 */
{
return;
}
/* ===== slot 0x22 slot_22 ===== */
function elevat_slot_22() /* entry=454 class_id=0x0A08 slot=0x22 */
{
return;
}
/* ===== slot 0x23 slot_23 ===== */
function elevat_slot_23() /* entry=454 class_id=0x0A08 slot=0x23 */
{
set_info(0x0001, *(arg_06));
local_06 = Item.getZ(arg_06);
local_08 = Item.getQHi(arg_06);
local_0A = ((Item.getQHi(arg_06) - local_06) / 2);
local_05 = 1;
while (local_05 > local_0A) {
/* loopscr value_u8=0x24 */
/* loop current_var=0xFE string_bytes=0x1 loop_type=0x6 */
while (!condition) {
if (Item.getShape(local_02) == 0x04FE) {
local_0E = (1 + local_0E);
}
/* loopnext */
}
local_0C = 1;
while (local_0C > local_0E) {
local_02 = Item.getEtherealTop();
local_0C = (1 + local_0C);
}
local_0E = 0;
spawn FREE.slot_3B(pid, 1, 0x00000000);
suspend;
local_05 = (1 + local_05);
}
if (!((local_08 - local_06) & 1)) {
/* loopscr value_u8=0x24 */
/* loop current_var=0xFE string_bytes=0x1 loop_type=0x6 */
while (!condition) {
local_0E = (1 + local_0E);
/* loopnext */
}
local_0C = 1;
while (local_0C > local_0E) {
local_02 = Item.getEtherealTop();
local_0C = (1 + local_0C);
}
}
/* bit_not */
return;
}
/* ===== slot 0x24 slot_24 ===== */
function elevat_slot_24() /* entry=454 class_id=0x0A08 slot=0x24 */
{
set_info(0x0001, *(arg_06));
local_05 = Item.getZ(arg_06);
ELEVAT.slot_21(arg_06);
local_07 = retval;
local_09 = ((local_05 - local_07) / 2);
local_02 = 1;
while (local_02 > local_09) {
local_10 = Item.getX(arg_06);
local_0E = Item.getY(arg_06);
local_0C = (Item.getZ(arg_06) - 2);
local_18 = 0;
/* loopscr value_u8=0x24 */
/* loop current_var=0xF5 string_bytes=0x1 loop_type=0x6 */
while (!condition) {
if (!Item.isCentreOn(*(arg_06), local_0B)) {
if (local_0B >= 0x0100) {
if (!Item.isCompletelyOn(*(arg_06), local_0B)) {
local_18 = (1 + local_18);
}
else {
local_18 = (1 + local_18);
}
}
else {
local_18 = (1 + local_18);
}
}
/* loopnext */
}
if (!Item.legalMoveToPoint(0, 0, local_10, arg_06)) {
local_04 = 1;
while (local_04 > local_18) {
local_0B = Item.getEtherealTop();
local_04 = (1 + local_04);
}
spawn FREE.slot_3B(pid, 1, 0x00000000);
suspend;
}
else {
local_04 = 1;
while (local_04 > local_18) {
local_0B = Item.getEtherealTop();
local_04 = (1 + local_04);
}
spawn FREE.slot_3B(pid, 60, 0x00000000);
suspend;
spawn ELEVAT.slot_23(pid, arg_06);
suspend;
return;
}
local_18 = 0;
local_02 = (1 + local_02);
}
if (!((local_05 - local_07) & 1)) {
/* loopscr value_u8=0x24 */
/* loop current_var=0xF5 string_bytes=0x1 loop_type=0x6 */
while (!condition) {
if (!Item.isCentreOn(*(arg_06), local_0B)) {
local_18 = (1 + local_18);
}
/* loopnext */
}
local_04 = 1;
while (local_04 > local_18) {
local_0B = Item.getEtherealTop();
local_04 = (1 + local_04);
}
}
/* bit_not */
return;
}
/* ===== slot 0x25 slot_25 ===== */
function elevat_slot_25() /* entry=454 class_id=0x0A08 slot=0x25 */
{
set_info(0x0001, *(arg_06));
local_04 = 5;
/* loop_selector local_02 in nearby_items(shape=0x02DE, origin=arg_06) */
while (!condition) {
FREE.slot_48((Item.getX(arg_06) - Item.getX(local_02)));
local_06 = retval;
FREE.slot_48((Item.getY(arg_06) - Item.getY(local_02)));
local_08 = retval;
if ((local_06 >= 2) && (local_08 < 2)) {
if ((Item.getStatus(local_02) & 0x1000) == 0) {
if (Item.getFrame(local_02) == 0) {
local_03 = 1;
while (local_03 > local_04) {
spawn FREE.slot_3B(pid, 1, 0x00000000);
suspend;
local_03 = (1 + local_03);
}
}
else {
local_03 = local_04;
while (local_03 <= 0) {
spawn FREE.slot_3B(pid, 1, 0x00000000);
suspend;
local_03 = (local_03 - 1);
}
spawn FREE.slot_3B(pid, 2, 0x00000000);
suspend;
}
/* bit_not */
}
}
/* loopnext */
}
return;
}