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,4 @@
function item_slot_20() /* entry=458 class_id=0x0A0C slot=0x20 */
{
return;
}

View file

@ -0,0 +1,27 @@
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;
}

View file

@ -0,0 +1,14 @@
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;
}

View file

@ -0,0 +1,8 @@
function item_slot_23() /* entry=458 class_id=0x0A0C slot=0x23 */
{
if (!(Item.getStatus(arg_06) & arg_0A)) {
/* bit_not */
return;
}
return;
}

View file

@ -0,0 +1,4 @@
function item_slot_24() /* entry=458 class_id=0x0A0C slot=0x24 */
{
return;
}

View file

@ -0,0 +1,5 @@
function item_slot_25() /* entry=458 class_id=0x0A0C slot=0x25 */
{
/* bit_not */
return;
}

View file

@ -0,0 +1,10 @@
function item_slot_26() /* entry=458 class_id=0x0A0C slot=0x26 */
{
if (!(Item.getStatus(arg_06) & arg_0A)) {
return;
}
else {
return;
}
return;
}

View file

@ -0,0 +1,194 @@
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:
suspend;
local_24 = (local_0A & 0x00FF);
local_22 = (arg_0E & 0x00FF);
if (local_24 != local_22) goto block_0436;
block_03F4:
FREE.slot_48((local_22 - local_24));
local_26 = ((retval / 20) + 1);
if (local_26 != 0) goto block_0415;
block_0411:
local_26 = 1;
block_0415:
if (local_24 < local_22) goto block_0427;
block_041D:
local_0A = (local_0A + local_26);
goto block_0436;
block_0427:
local_24 = (local_24 - local_26);
local_0A = (local_24 & 0x00FF);
block_0436:
if (local_1E >= local_18) goto block_0484;
block_043E:
if (local_24 > (local_22 - 2)) goto block_045B;
block_0449:
if (local_24 < (local_22 + 2)) goto block_045B;
block_0454:
/* word_to_dword */
/* pop_result */
goto block_055F;
block_045B:
local_05 = local_07;
local_03 = local_09;
local_01 = local_0A;
if (!Item.legalMoveToPoint(0, 1, local_05, arg_06)) goto block_0481;
block_047A:
/* word_to_dword */
/* pop_result */
goto block_055F;
block_0481:
goto block_055C;
block_0484:
local_1E = (local_1E + arg_10);
if (local_20 != 0) goto block_04F9;
block_0493:
local_05 = local_07;
local_03 = local_09;
local_01 = local_0A;
if (!Item.legalMoveToPoint(0, 1, local_05, arg_06)) goto block_04B9;
block_04B2:
/* word_to_dword */
/* pop_result */
goto block_055F;
block_04B9:
local_07 = (local_07 + local_1C);
local_1A = 1;
block_04C4:
if (local_1A <= arg_10) goto block_04F6;
block_04CC:
local_10 = (local_10 + (local_14 + local_16));
if (local_10 >= local_18) goto block_04EC;
block_04DE:
local_10 = (local_10 - local_18);
local_09 = (local_09 + local_12);
block_04EC:
local_1A = (1 + local_1A);
goto block_04C4;
block_04F6:
goto block_055C;
block_04F9:
local_05 = local_07;
local_03 = local_09;
local_01 = local_0A;
if (!Item.legalMoveToPoint(0, 1, local_05, arg_06)) goto block_051F;
block_0518:
/* word_to_dword */
/* pop_result */
goto block_055F;
block_051F:
local_09 = (local_09 + local_1C);
local_1A = 1;
block_052A:
if (local_1A <= arg_10) goto block_055C;
block_0532:
local_10 = (local_10 + (local_14 + local_16));
if (local_10 >= local_18) goto block_0552;
block_0544:
local_10 = (local_10 - local_18);
local_07 = (local_07 + local_12);
block_0552:
local_1A = (1 + local_1A);
goto block_052A;
block_055C:
goto block_03DB;
block_055F:
return;
}

View file

@ -0,0 +1,159 @@
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:
suspend;
local_1F = (local_05 & 0x00FF);
local_1D = (arg_0E & 0x00FF);
if (local_1F != local_1D) goto block_06C5;
block_0683:
FREE.slot_48((local_1D - local_1F));
local_21 = ((retval / 20) + 1);
if (local_21 != 0) goto block_06A4;
block_06A0:
local_21 = 1;
block_06A4:
if (local_1F < local_1D) goto block_06B6;
block_06AC:
local_05 = (local_05 + local_21);
goto block_06C5;
block_06B6:
local_1F = (local_1F - local_21);
local_05 = (local_1F & 0x00FF);
block_06C5:
if (local_19 >= local_13) goto block_06F7;
block_06CD:
if (local_1F > (local_1D - 2)) goto block_06E6;
block_06D8:
if (local_1F < (local_1D + 2)) goto block_06E6;
block_06E3:
goto block_07A2;
block_06E6:
goto block_079F;
block_06F7:
local_19 = (local_19 + arg_10);
if (local_1B != 0) goto block_0754;
block_0706:
local_02 = (local_02 + local_17);
local_15 = 1;
block_071F:
if (local_15 <= arg_10) goto block_0751;
block_0727:
local_0B = (local_0B + (local_0F + local_11));
if (local_0B >= local_13) goto block_0747;
block_0739:
local_0B = (local_0B - local_13);
local_04 = (local_04 + local_0D);
block_0747:
local_15 = (1 + local_15);
goto block_071F;
block_0751:
goto block_079F;
block_0754:
local_04 = (local_04 + local_17);
local_15 = 1;
block_076D:
if (local_15 <= arg_10) goto block_079F;
block_0775:
local_0B = (local_0B + (local_0F + local_11));
if (local_0B >= local_13) goto block_0795;
block_0787:
local_0B = (local_0B - local_13);
local_02 = (local_02 + local_0D);
block_0795:
local_15 = (1 + local_15);
goto block_076D;
block_079F:
goto block_066A;
block_07A2:
return;
}

View file

@ -0,0 +1,25 @@
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;
}

View file

@ -0,0 +1,31 @@
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;
}

View file

@ -0,0 +1,55 @@
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;
}

View file

@ -0,0 +1,20 @@
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;
}

View file

@ -0,0 +1,38 @@
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;
}

View file

@ -0,0 +1,19 @@
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;
}

View file

@ -0,0 +1,85 @@
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;
}

View file

@ -0,0 +1,9 @@
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;
}