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,28 @@
function bridge_slot_20() /* entry=474 class_id=0x0A1C slot=0x20 */
{
set_info(0x0211, *(arg_06));
if (arg_0A == 1) {
local_02 = Item.getQLo(arg_06);
spawn BRIDGE.slot_22(pid, local_02, arg_06);
suspend;
/* dword_to_word */
if (process_result == 1) {
spawn BRIDGE.slot_24(pid, local_02, arg_06);
suspend;
spawn BRIDGE.slot_26(0, local_02, arg_06);
}
return;
}
else if (arg_0A == 2) {
local_02 = Item.getQLo(arg_06);
spawn BRIDGE.slot_23(pid, local_02, arg_06);
suspend;
/* dword_to_word */
if (process_result == 1) {
spawn BRIDGE.slot_25(pid, local_02, arg_06);
suspend;
}
return;
}
return;
}

View file

@ -0,0 +1,14 @@
function bridge_slot_21() /* entry=474 class_id=0x0A1C slot=0x21 */
{
local_02 = Item.getShape(arg_06);
if ((local_02 == 0x0413) || (local_02 != 0x0290)) {
if (arg_08 == 0x03A6) {
arg_08 = 0x0413;
return;
}
else {
arg_08 = 0x0290;
}
}
return;
}

View file

@ -0,0 +1,19 @@
function bridge_slot_22() /* entry=474 class_id=0x0A1C slot=0x22 */
{
set_info(0x021B, *(arg_06));
/* loop_selector local_02 in selector_0x42(arg0=0x0336, arg1=0x0290, arg2=(70 * 32), origin=arg_06) */
while (!condition) {
if (Item.getFrame(local_02) == 0) {
local_04 = Item.getQLo(local_02);
if (local_04 == arg_0A) {
/* word_to_dword */
/* pop_result */
return;
}
}
/* loopnext */
}
/* word_to_dword */
/* pop_result */
return;
}

View file

@ -0,0 +1,94 @@
function bridge_slot_23() /* entry=474 class_id=0x0A1C slot=0x23 */
{
entry:
set_info(0x021B, *(arg_06));
local_06 = 0;
/* loop_selector local_02 in selector_0x42(arg0=0x03A6, arg1=0x0413, arg2=(70 * 32), origin=arg_06) */
block_027A:
if condition goto block_02AE;
block_027D:
local_04 = Item.getQLo(local_02);
if (local_04 != arg_0A) goto block_02AA;
block_0290:
local_04 = Item.getQHi(local_02);
if (local_04 != 0) goto block_02AA;
block_02A3:
local_06 = local_04;
goto block_02AE;
block_02AA:
/* loopnext */
goto block_027A;
block_02AE:
if (local_06 != 0) goto block_0314;
block_02B8:
/* loop_selector local_02 in selector_0x42(arg0=0x0336, arg1=0x0290, arg2=(70 * 32), origin=arg_06) */
block_02CF:
if condition goto block_0312;
block_02D2:
if (Item.getFrame(local_02) != 1) goto block_030E;
block_02E1:
local_04 = Item.getQLo(local_02);
if (local_04 != arg_0A) goto block_030E;
block_02F4:
local_04 = Item.getQHi(local_02);
if (local_04 != 0) goto block_030E;
block_0307:
local_06 = local_04;
goto block_0312;
block_030E:
/* loopnext */
goto block_02CF;
block_0312:
block_0314:
if (local_06 != 0) goto block_03B5;
block_031C:
for local_02 in selector_0x42(arg0=0x03A6, arg1=0x0413, arg2=(70 * 32), origin=arg_06) {
local_04 = Item.getQLo(local_02);
if (local_04 == local_06) {
/* word_to_dword */
/* pop_result */
return;
}
/* loopnext */
}
block_035F:
for local_02 in selector_0x42(arg0=0x0336, arg1=0x0290, arg2=(70 * 32), origin=arg_06) {
if (Item.getFrame(arg_06) == 1) {
local_04 = Item.getQLo(local_02);
if (local_04 == local_06) {
/* word_to_dword */
/* pop_result */
return;
}
}
/* loopnext */
}
block_03B3:
block_03B5:
/* word_to_dword */
/* pop_result */
goto block_03BC;
block_03BC:
return;
}

View file

@ -0,0 +1,108 @@
function bridge_slot_24() /* entry=474 class_id=0x0A1C slot=0x24 */
{
entry:
set_info(0x021B, *(arg_06));
local_06 = 0;
/* loop_selector local_02 in selector_0x42(arg0=0x0336, arg1=0x0290, arg2=(70 * 32), origin=arg_06) */
block_03E3:
if condition goto block_040B;
block_03E6:
local_08 = Item.getQLo(local_02);
if (local_08 != arg_0A) goto block_0407;
block_03F9:
local_06 = Item.getQHi(local_02);
goto block_040B;
block_0407:
/* loopnext */
goto block_03E3;
block_040B:
if (local_06 != 0) goto block_0418;
block_0415:
goto block_0542;
block_0418:
if (local_06 < arg_0A) goto block_0423;
block_0420:
goto block_0542;
block_0423:
local_0A = arg_0A;
block_0427:
if (local_0A <= local_06) goto block_049F;
block_042F:
local_0C = local_0A;
/* loop_selector local_02 in selector_0x42(arg0=0x0336, arg1=0x0290, arg2=(70 * 32), origin=arg_06) */
block_044A:
if condition goto block_047B;
block_044D:
local_08 = Item.getQLo(local_02);
if (local_08 != local_0A) goto block_0477;
block_0460:
/* create_list element_size=0x2 count=0x1 */
/* append_list */
/* free_local_list bp_offset=0xFC target=[BP-04h] */
local_04 = local_02;
local_0A = (1 + local_0A);
goto block_047B;
block_0477:
/* loopnext */
goto block_044A;
block_047B:
if (local_0C != local_0A) goto block_049C;
block_0485:
spawn FREE.slot_3B(pid, 10, 0x00000000);
suspend;
block_049C:
goto block_0427;
block_049F:
block_04A5:
foreach_list local_02 -> block_04FC;
block_04AA:
if (Intrinsic00AD(local_02) != 1) goto block_04F9;
block_04B9:
BRIDGE.slot_21(0x03A6, local_02);
spawn FREE.slot_3B(pid, 15, 0x00000000);
suspend;
block_04F9:
goto block_04A5;
block_04FC:
block_0502:
foreach_list local_02 -> block_0542;
block_0507:
if (Intrinsic00AD(local_02) != 1) goto block_053F;
block_0516:
BRIDGE.slot_21(0x03A6, local_02);
block_053F:
goto block_0502;
block_0542:
/* free_local_list bp_offset=0xFC target=[BP-04h] */
return;
}

View file

@ -0,0 +1,213 @@
function bridge_slot_25() /* entry=474 class_id=0x0A1C slot=0x25 */
{
entry:
set_info(0x021B, *(arg_06));
local_06 = 0;
/* loop_selector local_02 in selector_0x42(arg0=0x03A6, arg1=0x0413, arg2=(70 * 32), origin=arg_06) */
block_056B:
if condition goto block_0593;
block_056E:
local_08 = Item.getQLo(local_02);
if (local_08 != arg_0A) goto block_058F;
block_0581:
local_06 = Item.getQHi(local_02);
goto block_0593;
block_058F:
/* loopnext */
goto block_056B;
block_0593:
if (local_06 != 0) goto block_05F8;
block_059D:
/* loop_selector local_02 in selector_0x42(arg0=0x0336, arg1=0x0290, arg2=(70 * 32), origin=arg_06) */
block_05B4:
if condition goto block_05EB;
block_05B7:
if (Item.getFrame(arg_06) != 1) goto block_05E7;
block_05C6:
local_08 = Item.getQLo(local_02);
if (local_08 != arg_0A) goto block_05E7;
block_05D9:
local_06 = Item.getQHi(local_02);
goto block_05EB;
block_05E7:
/* loopnext */
goto block_05B4;
block_05EB:
if (local_06 != 0) goto block_05F8;
block_05F5:
goto block_087A;
block_05F8:
if (local_06 < arg_0A) goto block_0603;
block_0600:
goto block_087A;
block_0603:
local_0A = local_06;
arg_0A = (arg_0A - 1);
block_060E:
if (local_0A != arg_0A) goto block_06E7;
block_0616:
local_0C = local_0A;
/* loop_selector local_02 in selector_0x42(arg0=0x03A6, arg1=0x0413, arg2=(70 * 32), origin=arg_06) */
block_0631:
if condition goto block_0662;
block_0634:
local_08 = Item.getQLo(local_02);
if (local_08 != local_0A) goto block_065E;
block_0647:
/* create_list element_size=0x2 count=0x1 */
/* append_list */
/* free_local_list bp_offset=0xFC target=[BP-04h] */
local_04 = local_02;
local_0A = (local_0A - 1);
goto block_0662;
block_065E:
/* loopnext */
goto block_0631;
block_0662:
if (local_0C != local_0A) goto block_06E4;
block_066C:
/* loop_selector local_02 in selector_0x42(arg0=0x0336, arg1=0x0290, arg2=(70 * 32), origin=arg_06) */
block_0683:
if condition goto block_06C3;
block_0686:
if (Item.getFrame(arg_06) != 1) goto block_06BF;
block_0695:
local_08 = Item.getQLo(local_02);
if (local_08 != local_0A) goto block_06BF;
block_06A8:
/* create_list element_size=0x2 count=0x1 */
/* append_list */
/* free_local_list bp_offset=0xFC target=[BP-04h] */
local_04 = local_02;
local_0A = (local_0A - 1);
goto block_06C3;
block_06BF:
/* loopnext */
goto block_0683;
block_06C3:
if (local_0C != local_0A) goto block_06E4;
block_06CD:
spawn FREE.slot_3B(pid, 10, 0x00000000);
suspend;
block_06E4:
goto block_060E;
block_06E7:
block_06ED:
foreach_list local_02 -> block_07BC;
block_06F2:
if (Intrinsic00AD(local_02) != 1) goto block_0739;
block_0701:
BRIDGE.slot_21(0x0336, local_02);
spawn FREE.slot_3B(pid, 15, 0x00000000);
suspend;
block_0739:
/* loopscr value_u8=0x24 */
/* loop current_var=0xF2 string_bytes=0x1 loop_type=0x6 */
block_0744:
if condition goto block_07B7;
block_0747:
if ((Item.getFamily(local_0E) != 6) && (Item.isNpc(local_0E) != 0)) goto block_07AB;
block_0763:
for local_10 in nearby_items(shape=0x04B8, origin=local_0E) {
/* loopnext */
}
block_0788:
spawn ITEM.slot_2A(pid, 1, 0, local_0E);
suspend;
goto block_07B3;
block_07AB:
block_07B3:
/* loopnext */
goto block_0744;
block_07B7:
goto block_06ED;
block_07BC:
block_07C2:
foreach_list local_02 -> block_087A;
block_07C7:
if (Intrinsic00AD(local_02) != 1) goto block_07F7;
block_07D6:
BRIDGE.slot_21(0x0336, local_02);
block_07F7:
/* loopscr value_u8=0x24 */
/* loop current_var=0xF2 string_bytes=0x1 loop_type=0x6 */
block_0802:
if condition goto block_0875;
block_0805:
if ((Item.getFamily(local_0E) != 6) && (Item.isNpc(local_0E) != 0)) goto block_0869;
block_0821:
for local_10 in nearby_items(shape=0x04B8, origin=local_0E) {
/* loopnext */
}
block_0846:
spawn ITEM.slot_2A(pid, 1, 0, local_0E);
suspend;
goto block_0871;
block_0869:
block_0871:
/* loopnext */
goto block_0802;
block_0875:
goto block_07C2;
block_087A:
/* free_local_list bp_offset=0xFC target=[BP-04h] */
return;
}

View file

@ -0,0 +1,295 @@
function bridge_slot_26() /* entry=474 class_id=0x0A1C slot=0x26 */
{
entry:
set_info(0x021B, *(arg_06));
local_12 = 0;
local_14 = 1;
local_08 = arg_0C;
if (local_08 != 0) goto block_08E8;
block_089C:
/* loop_selector local_04 in selector_0x42(arg0=0x03A6, arg1=0x0413, arg2=(70 * 32), origin=arg_06) */
block_08B3:
if condition goto block_08DB;
block_08B6:
local_0A = Item.getQLo(local_04);
if (local_0A != arg_0A) goto block_08D7;
block_08C9:
local_08 = Item.getQHi(local_04);
goto block_08DB;
block_08D7:
/* loopnext */
goto block_08B3;
block_08DB:
if (local_08 != 0) goto block_08E8;
block_08E5:
goto block_0CEF;
block_08E8:
if (local_08 < arg_0A) goto block_08F3;
block_08F0:
goto block_0CEF;
block_08F3:
local_0C = arg_0A;
local_16 = 100;
block_08FB:
if (local_0C <= local_08) goto block_09F5;
block_0903:
local_0E = local_0C;
/* loop_selector local_04 in selector_0x42(arg0=0x03A6, arg1=0x0413, arg2=(70 * 32), origin=arg_06) */
block_091E:
if condition goto block_09A8;
block_0921:
local_0A = Item.getQLo(local_04);
if (local_0A != local_0C) goto block_09A4;
block_0934:
if (local_0A != (arg_0A + 1)) goto block_098D;
block_093F:
local_10 = Item.getQHi(local_04);
if (local_10 < 0) goto block_095A;
block_0952:
local_10 = (local_10 + 0x0100);
block_095A:
local_10 = (local_10 & 127);
local_12 = (local_10 & 7);
local_14 = (local_10 / 8);
if (local_14 != 0) goto block_097B;
block_0977:
local_14 = 1;
block_097B:
local_14 = (local_14 * 5);
if (local_12 != 0) goto block_098D;
block_098A:
goto block_0CEF;
block_098D:
/* create_list element_size=0x2 count=0x1 */
/* append_list */
/* free_local_list bp_offset=0xFA target=[BP-06h] */
local_06 = local_04;
local_0C = (1 + local_0C);
goto block_09A8;
block_09A4:
/* loopnext */
goto block_091E;
block_09A8:
if (local_0E != local_0C) goto block_09F2;
block_09B2:
if (local_16 != 0) goto block_09D4;
block_09BA:
spawn FREE.slot_3B(pid, 30, 0x00000000);
suspend;
goto block_09F2;
block_09D4:
local_16 = (local_16 - 1);
spawn FREE.slot_3B(pid, 2, 0x00000000);
suspend;
block_09F2:
goto block_08FB;
block_09F5:
if (local_12 != 3) goto block_0B84;
block_09FD:
if 1 goto block_0B84;
block_0A02:
local_0A = 0;
block_0A0C:
foreach_list local_04 -> block_0A2A;
block_0A11:
if (Intrinsic00AD(local_04) != 0) goto block_0A27;
block_0A20:
local_0A = (1 + local_0A);
block_0A27:
goto block_0A0C;
block_0A2A:
if (local_0A != 0) goto block_0B6A;
block_0A32:
block_0A38:
foreach_list local_04 -> block_0A77;
block_0A3D:
if (local_0A != 0) goto block_0A5B;
block_0A45:
local_0C = Item.getFrame(local_04);
local_1D = local_04;
local_0A = 1;
goto block_0A74;
block_0A5B:
local_0E = Item.getFrame(local_04);
local_0C = local_0E;
block_0A74:
goto block_0A38;
block_0A77:
block_0A87:
foreach_list local_04 -> block_0B6A;
block_0A8C:
if (local_0A == 1) {
/* loopscr value_u8=0x24 */
/* loop current_var=0xE3 string_bytes=0x1 loop_type=0x6 */
while (!condition) {
local_02 = local_1D;
FREE.slot_20(pid, 8);
spawn NPC.slot_2F(retval, local_04, local_02);
suspend;
/* loopnext */
}
}
else if (local_0A == 2) {
BRIDGE.slot_21(0x0336, local_04);
/* loopscr value_u8=0x24 */
/* loop current_var=0xE3 string_bytes=0x1 loop_type=0x6 */
while (!condition) {
/* loopnext */
}
spawn FREE.slot_3B(pid, local_14, 0x00000000);
suspend;
if (Item.getFrame(local_04) == 1) {
BRIDGE.slot_21(0x03A6, local_04);
}
}
block_0B67:
goto block_0A87;
block_0B6A:
spawn FREE.slot_3B(pid, local_14, 0x00000000);
suspend;
goto block_09FD;
block_0B84:
block_0B8A:
foreach_list local_04 -> block_0BAB;
block_0B8F:
if (Intrinsic00AD(local_04) != 1) goto block_0BA8;
block_0B9E:
block_0BA8:
goto block_0B8A;
block_0BAB:
if 1 goto block_0CEF;
block_0BB0:
block_0BB6:
foreach_list local_04 -> block_0CEC;
block_0BBB:
if (Intrinsic00AD(local_04) != 0) goto block_0BCD;
block_0BCA:
goto block_0CEF;
block_0BCD:
local_0A = Item.getShape(local_04);
if ((local_0A != 0x0336) || (local_0A != 0x0290)) goto block_0BEB;
block_0BE8:
goto block_0CEF;
block_0BEB:
if (local_12 != 1) goto block_0C57;
block_0BF3:
/* loopscr value_u8=0x24 */
/* loop current_var=0xE3 string_bytes=0x1 loop_type=0x6 */
block_0C08:
if condition goto block_0C31;
block_0C0B:
local_02 = local_1D;
FREE.slot_20(pid, 8);
spawn NPC.slot_2F(retval, local_04, local_02);
suspend;
/* loopnext */
goto block_0C08;
block_0C31:
spawn FREE.slot_3B(pid, local_14, 0x00000000);
suspend;
goto block_0CE9;
block_0C57:
if (local_12 != 2) goto block_0CE6;
block_0C5F:
BRIDGE.slot_21(0x0336, local_04);
/* loopscr value_u8=0x24 */
/* loop current_var=0xE3 string_bytes=0x1 loop_type=0x6 */
block_0C8B:
if condition goto block_0C9A;
block_0C8E:
/* loopnext */
goto block_0C8B;
block_0C9A:
spawn FREE.slot_3B(pid, local_14, 0x00000000);
suspend;
if (Item.getFrame(local_04) != 1) goto block_0CE3;
block_0CC2:
BRIDGE.slot_21(0x03A6, local_04);
block_0CE3:
goto block_0CE9;
block_0CE6:
goto block_0CEF;
block_0CE9:
goto block_0BB6;
block_0CEC:
goto block_0BAB;
block_0CEF:
/* free_local_list bp_offset=0xFA target=[BP-06h] */
return;
}