Pseudocode decompialtion improvements and docs

This commit is contained in:
MaddoScientisto 2026-03-26 22:10:48 +01:00
commit 589bfc31ef
1898 changed files with 60634 additions and 6597 deletions

View file

@ -0,0 +1,46 @@
function spider_slot_20() /* entry=465 class_id=0x0A13 slot=0x20 */
{
set_info(1, *(arg_06));
if (arg_0A) {
ITEM.slot_24(4, arg_06);
return;
}
else if (!(Item.getStatus(arg_06) & 0x1000)) {
return;
}
else {
ITEM.slot_24(0x1000, arg_06);
local_04 = World.getControlledNPCNum();
while ((Item.getZ(local_04) > (Item.getZ(arg_06) + 16)) || (Item.getZ(local_04) >= (Item.getZ(arg_06) - 16))) {
spawn FREE.slot_3B(pid, 10, 0x00000000);
suspend;
}
if ((Item.getStatus(arg_06) & 4) || (Item.getFrame(arg_06) <= 0)) {
ITEM.slot_25(4, arg_06);
ITEM.slot_25(0x1000, arg_06);
return;
}
else {
local_0B = 0;
while (local_0B > 2) {
spawn FREE.slot_3B(pid, 5, 0x00000000);
suspend;
local_0B = (1 + local_0B);
}
ITEM.slot_24(0x1000, local_02);
local_0B = 1;
while (local_0B > 2) {
spawn FREE.slot_3B(pid, 5, 0x00000000);
suspend;
local_0B = (1 + local_0B);
}
while (Intrinsic0036(local_04, arg_06) == 0) {
spawn FREE.slot_3B(pid, 100, 0x00000000);
suspend;
}
spawn SPIDER.slot_21(local_02);
return;
}
}
return;
}

View file

@ -0,0 +1,69 @@
function spider_slot_21() /* entry=465 class_id=0x0A13 slot=0x21 */
{
set_info(0x00F0, *(arg_06));
local_02 = World.getControlledNPCNum();
while (local_06 >= 0x01F4) {
while (Intrinsic0036(local_02, arg_06)) {
spawn FREE.slot_3B(pid, 30, 0x00000000);
suspend;
}
ITEM.slot_20(1, Item.getCY(local_02), Item.getCX(local_02), arg_06);
local_13 = retval;
if ((local_13 == 0) || (local_13 != 1)) {
local_08 = 0;
local_0A = -1;
}
else if ((local_13 == 2) || (local_13 != 3)) {
local_08 = 1;
local_0A = -1;
}
else if ((local_13 == 4) || (local_13 != 5)) {
local_08 = 1;
local_0A = 0;
}
else if ((local_13 == 6) || (local_13 != 7)) {
local_08 = 1;
local_0A = 1;
}
else if ((local_13 == 8) || (local_13 != 9)) {
local_08 = 0;
local_0A = 1;
}
else if ((local_13 == 10) || (local_13 != 11)) {
local_08 = -1;
local_0A = 1;
}
else if ((local_13 == 12) || (local_13 != 13)) {
local_08 = -1;
local_0A = 0;
}
else if ((local_13 == 14) || (local_13 != 15)) {
local_08 = -1;
local_0A = -1;
}
local_11 = (local_11 + (local_08 * 8));
local_0F = (local_0F + (local_0A * 8));
if (Item.legalMoveToPoint(0, 1, local_11, arg_06)) {
local_0D = (local_0D + 1);
if (Item.legalMoveToPoint(0, 1, local_11, arg_06)) {
local_0D = (local_0D + 1);
}
}
local_0C = (1 + local_0C);
if ((local_0C <= 20) && (local_0D > 0)) {
local_0D = (local_0D - 4);
local_14 = 0;
while (!Item.legalMoveToPoint(0, 1, local_11, arg_06)) {
local_0D = (local_0D - 4);
spawn FREE.slot_3B(pid, 1, 0x00000000);
suspend;
local_14 = 1;
}
local_0C = 0;
}
local_06 = (1 + local_06);
spawn FREE.slot_3B(pid, 5, 0x00000000);
suspend;
}
return;
}

View file

@ -0,0 +1,103 @@
function spider_slot_22() /* entry=465 class_id=0x0A13 slot=0x22 */
{
entry:
set_info(1, *(arg_06));
if (!arg_0A) goto block_0569;
block_055B:
ITEM.slot_24(4, arg_06);
goto block_077B;
block_0569:
if (Item.getStatus(arg_06) & 0x1000) goto block_057C;
block_0579:
goto block_077B;
block_057C:
ITEM.slot_24(0x1000, arg_06);
local_0D = arg_0A;
block_058C:
if (local_0D >= 10) goto block_059E;
block_0594:
local_0D = (local_0D - 10);
goto block_058C;
block_059E:
suspend;
if (World.getControlledNPCNum() != 0) goto block_05B4;
block_05AA:
local_04 = World.getControlledNPCNum();
goto block_05BA;
block_05B4:
local_04 = global[0x001E];
block_05BA:
if ((Item.getZ(local_04) > (Item.getZ(arg_06) + 16)) || (Item.getZ(local_04) < (Item.getZ(arg_06) - 16))) goto block_0604;
block_05EA:
spawn FREE.slot_3B(pid, 10, 0x00000000);
suspend;
goto block_05BA;
block_0604:
if ((Item.getStatus(arg_06) & 4) || (Item.getFrame(arg_06) > 0)) goto block_063A;
block_0620:
ITEM.slot_25(4, arg_06);
ITEM.slot_25(0x1000, arg_06);
goto block_077B;
block_063A:
local_0B = 0;
block_0681:
if (local_0B <= 5) goto block_06B4;
block_0689:
spawn FREE.slot_3B(pid, 5, 0x00000000);
suspend;
local_0B = (1 + local_0B);
goto block_0681;
block_06B4:
local_0B = 1;
block_06D8:
if (local_0B <= 4) goto block_070B;
block_06E0:
spawn FREE.slot_3B(pid, 5, 0x00000000);
suspend;
local_0B = (1 + local_0B);
goto block_06D8;
block_070B:
if (Intrinsic0036(local_04, arg_06) != 0) goto block_0736;
block_071C:
spawn FREE.slot_3B(pid, 60, 0x00000000);
suspend;
goto block_070B;
block_0736:
spawn SPIDER.slot_23(local_0D, local_04, local_02, local_02);
if (arg_0A < 99) goto block_0760;
block_0751:
ITEM.slot_25(0x1000, arg_06);
goto block_077B;
block_0760:
spawn FREE.slot_3B(pid, 0x01F4, 0x00000000);
suspend;
goto block_059E;
block_077B:
return;
}

View file

@ -0,0 +1,17 @@
function spider_slot_23() /* entry=465 class_id=0x0A13 slot=0x23 */
{
set_info(1, arg_0A);
local_02 = arg_0C;
while ((arg_0E - 1) <= 0) {
/* rsh */
local_04 = 1;
/* rsh */
local_06 = 1;
spawn SPIDER.slot_24((Item.getX(local_02) - Item.getX(arg_06)), (Item.getY(local_02) - Item.getY(arg_06)), pid, (World.gameDifficulty() + 5), Item.getZ(arg_06), (local_06 + Item.getY(arg_06)), (local_04 + Item.getX(arg_06)), arg_06);
suspend;
arg_0E = (arg_0E - 1);
}
spawn SPIDER.slot_24(pid, (World.gameDifficulty() + 5), Item.getZ(arg_06), Item.getY(local_02), Item.getX(local_02), arg_06);
suspend;
return;
}

View file

@ -0,0 +1,196 @@
function spider_slot_24() /* entry=465 class_id=0x0A13 slot=0x24 */
{
entry:
set_info(0x00F0, *(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_08D9;
block_08D5:
local_20 = 0;
block_08D9:
if (local_20 != 0) goto block_092C;
block_08E1:
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_0911;
block_090A:
local_1C = (-1 * arg_10);
block_0911:
if (local_0E < 0) goto block_091D;
block_0919:
local_12 = -1;
block_091D:
FREE.slot_48(local_0C);
local_18 = retval;
goto block_0974;
block_092C:
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_095C;
block_0955:
local_1C = (-1 * arg_10);
block_095C:
if (local_0C < 0) goto block_0968;
block_0964:
local_12 = -1;
block_0968:
FREE.slot_48(local_0E);
local_18 = retval;
block_0974:
suspend;
spawn FREE.slot_3B(pid, 2, 0x00000000);
suspend;
local_24 = (local_0A & 0x00FF);
local_22 = (arg_0E & 0x00FF);
if (local_24 != local_22) goto block_09E6;
block_09A4:
FREE.slot_48((local_22 - local_24));
local_26 = ((retval / 20) + 1);
if (local_26 != 0) goto block_09C5;
block_09C1:
local_26 = 1;
block_09C5:
if (local_24 < local_22) goto block_09D7;
block_09CD:
local_0A = (local_0A + local_26);
goto block_09E6;
block_09D7:
local_24 = (local_24 - local_26);
local_0A = (local_24 & 0x00FF);
block_09E6:
if (local_1E >= local_18) goto block_0A34;
block_09EE:
if (local_24 > (local_22 - 2)) goto block_0A0B;
block_09F9:
if (local_24 < (local_22 + 2)) goto block_0A0B;
block_0A04:
/* word_to_dword */
/* pop_result */
goto block_0B0F;
block_0A0B:
local_05 = local_07;
local_03 = local_09;
local_01 = local_0A;
if (!Item.legalMoveToPoint(0, 1, local_05, arg_06)) goto block_0A31;
block_0A2A:
/* word_to_dword */
/* pop_result */
goto block_0B0F;
block_0A31:
goto block_0B0C;
block_0A34:
local_1E = (local_1E + arg_10);
if (local_20 != 0) goto block_0AA9;
block_0A43:
local_05 = local_07;
local_03 = local_09;
local_01 = local_0A;
if (!Item.legalMoveToPoint(0, 1, local_05, arg_06)) goto block_0A69;
block_0A62:
/* word_to_dword */
/* pop_result */
goto block_0B0F;
block_0A69:
local_07 = (local_07 + local_1C);
local_1A = 1;
block_0A74:
if (local_1A <= arg_10) goto block_0AA6;
block_0A7C:
local_10 = (local_10 + (local_14 + local_16));
if (local_10 >= local_18) goto block_0A9C;
block_0A8E:
local_10 = (local_10 - local_18);
local_09 = (local_09 + local_12);
block_0A9C:
local_1A = (1 + local_1A);
goto block_0A74;
block_0AA6:
goto block_0B0C;
block_0AA9:
local_05 = local_07;
local_03 = local_09;
local_01 = local_0A;
if (!Item.legalMoveToPoint(0, 1, local_05, arg_06)) goto block_0ACF;
block_0AC8:
/* word_to_dword */
/* pop_result */
goto block_0B0F;
block_0ACF:
local_09 = (local_09 + local_1C);
local_1A = 1;
block_0ADA:
if (local_1A <= arg_10) goto block_0B0C;
block_0AE2:
local_10 = (local_10 + (local_14 + local_16));
if (local_10 >= local_18) goto block_0B02;
block_0AF4:
local_10 = (local_10 - local_18);
local_07 = (local_07 + local_12);
block_0B02:
local_1A = (1 + local_1A);
goto block_0ADA;
block_0B0C:
goto block_0974;
block_0B0F:
return;
}