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

@ -25,16 +25,12 @@ function blastpac_use() /* entry=207 class_id=0x039B slot=0x01 */
if Actor.isBusy() goto block_0153;
block_012D:
spawn class_0A0C_slot_32(pid, 2, 0x00000000);
spawn FREE.waitNTimerTicks(pid, 2, 0x00000000);
suspend;
goto block_011D;
block_0153:
/* loopscr value_u8=0x24 */
/* loopscr value_u8=0x3D */
/* loopscr value_u8=0x40 */
/* loopscr value_u8=0x25 */
/* loop current_var=0xF9 string_bytes=0x6 loop_type=0x2 */
/* loop_selector item in nearby_items(shape=0x053A, origin=global[0x003C]) */
block_0171:
if condition goto block_0233;
@ -43,14 +39,14 @@ function blastpac_use() /* entry=207 class_id=0x039B slot=0x01 */
target = item;
block_017B:
class_0A0C_slot_29(target, global[0x003C]);
FREE.slot_29(target, global[0x003C]);
if ((retval > 3) && (counter != 6)) goto block_01FC;
block_019E:
/* global_address global_id=0x3C */
/* global_address global_id=0x3C */
/* global_address global_id=0x3C */
spawn class_0A11_slot_22(Item.getDirFromTo16(Item.getX(pid, 1, Item.getY(Item.getY(target), Item.getX(target)))));
spawn NPC.slot_22(Item.getDirFromTo16(Item.getX(pid, 1, Item.getY(Item.getY(target), Item.getX(target)))));
suspend;
counter = (1 + counter);
goto block_017B;
@ -152,19 +148,19 @@ function blastpac_use() /* entry=207 class_id=0x039B slot=0x01 */
/* global_address global_id=0x3C */
/* global_address global_id=0x3C */
/* global_address global_id=0x3C */
spawn class_039B_slot_20(mine, arg_06);
spawn BLASTPAC.slot_20(mine, arg_06);
block_04C5:
/* global_address global_id=0x3C */
if Actor.isBusy() goto block_04FB;
block_04D5:
spawn class_0A0C_slot_32(pid, 2, 0x00000000);
spawn FREE.waitNTimerTicks(pid, 2, 0x00000000);
suspend;
goto block_04C5;
block_04FB:
spawn class_0A0C_slot_21(pid, 13, 0x00000000);
spawn FREE.slot_21(pid, 13, 0x00000000);
suspend;
if (!InCrouch) goto block_05C5;
@ -186,14 +182,14 @@ function blastpac_use() /* entry=207 class_id=0x039B slot=0x01 */
goto block_061A;
block_05C5:
spawn class_0A0C_slot_21(pid, 0x00B0, 0x00000000);
spawn FREE.slot_21(pid, 0x00B0, 0x00000000);
suspend;
block_061A:
goto block_0672;
block_061D:
spawn class_0A0C_slot_21(pid, 0x00B0, 0x00000000);
spawn FREE.slot_21(pid, 0x00B0, 0x00000000);
suspend;
block_0672:

View file

@ -13,43 +13,34 @@ function blastpac_slot_20() /* entry=207 class_id=0x039B slot=0x20 */
y, /* [BP-10h] type=0x69 */
z; /* [BP-12h] type=0x69 */
spawn class_0A0C_slot_32(pid, 60, 0x00000000);
spawn FREE.waitNTimerTicks(pid, 60, 0x00000000);
suspend;
set_info(0x00F0, 0);
counter = 1;
while (counter > 5) {
spawn class_0A0C_slot_32(pid, 60, 0x00000000);
spawn FREE.waitNTimerTicks(pid, 60, 0x00000000);
suspend;
counter = (1 + counter);
}
spawn class_0A1E_slot_28(pid, 1, 2, pac);
spawn ITEM.slot_28(pid, 1, 2, pac);
suspend;
/* global_address global_id=0x3C */
if (Actor.getMap() == 1) {
spawn class_0A0C_slot_32(pid, 10, 0x00000000);
spawn FREE.waitNTimerTicks(pid, 10, 0x00000000);
suspend;
/* pop_global global_id=0x20 size=0x1 */
/* loopscr value_u8=0x24 */
/* loopscr value_u8=0x3D */
/* loopscr value_u8=0x40 */
/* loopscr value_u8=0x25 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
/* loop_selector item in nearby_items(shape=REACTOR, origin=global[0x003C]) */
while (!condition) {
spawn class_0A1E_slot_28(pid, 0, 2, item);
spawn ITEM.slot_28(pid, 0, 2, item);
suspend;
therm = item;
/* loopnext */
}
/* loopscr value_u8=0x24 */
/* loopscr value_u8=0x3D */
/* loopscr value_u8=0x40 */
/* loopscr value_u8=0x25 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
while (!condition) {
spawn class_0A1E_slot_28(pid, 1, 0, item);
for item in nearby_items(shape=REACTOR_CELL, origin=therm) {
spawn ITEM.slot_28(pid, 1, 0, item);
suspend;
thermTop = item;
spawn class_0A0C_slot_32(pid, 30, 0x00000000);
spawn FREE.waitNTimerTicks(pid, 30, 0x00000000);
suspend;
/* loopnext */
}
@ -57,46 +48,35 @@ function blastpac_slot_20() /* entry=207 class_id=0x039B slot=0x20 */
if (!Actor.isDead()) {
return;
}
/* loopscr value_u8=0x24 */
/* loopscr value_u8=0x3D */
/* loopscr value_u8=0x40 */
/* loopscr value_u8=0x25 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
while (!condition) {
spawn class_0A0C_slot_32(UCMachine.rndRange(pid, 20, 10), 0x00000000);
for item in nearby_items(shape=NUMBERS, origin=therm) {
spawn FREE.waitNTimerTicks(UCMachine.rndRange(pid, 20, 10), 0x00000000);
suspend;
/* loopnext */
}
counter = 0;
while (counter > 2) {
while (!AudioProcess.isSFXPlayingForObject(22, thermTop)) {
spawn class_0A0C_slot_32(pid, 2, 0x00000000);
spawn FREE.waitNTimerTicks(pid, 2, 0x00000000);
suspend;
}
counter = (1 + counter);
}
spawn class_0A0C_slot_32(pid, 30, 0x00000000);
spawn FREE.waitNTimerTicks(pid, 30, 0x00000000);
suspend;
/* loopscr value_u8=0x24 */
/* loopscr value_u8=0x3D */
/* loopscr value_u8=0x40 */
/* loopscr value_u8=0x25 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
/* loop_selector item in nearby_items(shape=ELECTRODE, origin=therm) */
while (!condition) {
spawn class_0A1E_slot_28(pid, 0, 0, item);
spawn ITEM.slot_28(pid, 0, 0, item);
suspend;
spawn class_0A0C_slot_32(UCMachine.rndRange(pid, 10, 5), 0x00000000);
spawn FREE.waitNTimerTicks(UCMachine.rndRange(pid, 10, 5), 0x00000000);
suspend;
/* loopnext */
}
spawn class_0A0C_slot_32(pid, 0x00C8, 0x00000000);
spawn FREE.waitNTimerTicks(pid, 0x00C8, 0x00000000);
suspend;
spawn class_0A0C_slot_26(pid, "1c", 0x00000000);
spawn FREE.slot_26(pid, "1c", 0x00000000);
/* free_stack_string value_u8=0x0 target=[SP+00h] */
suspend;
/* loopscr value_u8=0x24 */
/* loopscr value_u8=0x42 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
/* loop_selector item in selector_0x42(arg0=0x032A, arg1=0x0329, arg2=(50 * 32), origin=global[0x003C]) */
while (!condition) {
/* loopnext */
}
@ -104,127 +84,89 @@ function blastpac_slot_20() /* entry=207 class_id=0x039B slot=0x20 */
}
else if (Actor.getMap() == 7) {
/* pop_global global_id=0x23 size=0x1 */
spawn class_0A0C_slot_32(1, pid, 10, 0x00000000);
spawn FREE.waitNTimerTicks(1, pid, 10, 0x00000000);
suspend;
/* loopscr value_u8=0x24 */
/* loopscr value_u8=0x3D */
/* loopscr value_u8=0x40 */
/* loopscr value_u8=0x25 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
/* loop_selector item in nearby_items(shape=COMM_CONSOLE, origin=global[0x003C]) */
while (!condition) {
radar = item;
/* loopnext */
}
/* loopscr value_u8=0x24 */
/* loopscr value_u8=0x3D */
/* loopscr value_u8=0x40 */
/* loopscr value_u8=0x25 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
while (!condition) {
spawn class_0A0C_slot_32(pid, 30, 0x00000000);
for item in nearby_items(shape=RADAR_DISH, origin=radar) {
spawn FREE.waitNTimerTicks(pid, 30, 0x00000000);
suspend;
x = Item.getX(item);
y = Item.getY(item);
z = Item.getZ(item);
/* loopnext */
}
/* loopscr value_u8=0x24 */
/* loopscr value_u8=0x42 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
while (!condition) {
spawn class_0A0C_slot_32(pid, 30, 0x00000000);
for item in selector_0x42(arg0=0x01A5, arg1=0x01A4, arg2=(50 * 32), origin=radar) {
spawn FREE.waitNTimerTicks(pid, 30, 0x00000000);
suspend;
/* loopnext */
}
spawn class_0A0C_slot_32(pid, 60, 0x00000000);
spawn FREE.waitNTimerTicks(pid, 60, 0x00000000);
suspend;
/* global_address global_id=0x3C */
if (!Actor.isDead()) {
return;
}
/* loopscr value_u8=0x24 */
/* loopscr value_u8=0x3D */
/* loopscr value_u8=0x40 */
/* loopscr value_u8=0x25 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
while (!condition) {
spawn class_0A0C_slot_32(UCMachine.rndRange(pid, 20, 10), 0x00000000);
for item in nearby_items(shape=NUMBERS, origin=radar) {
spawn FREE.waitNTimerTicks(UCMachine.rndRange(pid, 20, 10), 0x00000000);
suspend;
/* loopnext */
}
counter = 0;
while (counter > 2) {
while (!AudioProcess.isSFXPlayingForObject(0x0096, radar)) {
spawn class_0A0C_slot_32(pid, 2, 0x00000000);
spawn FREE.waitNTimerTicks(pid, 2, 0x00000000);
suspend;
}
counter = (1 + counter);
}
spawn class_0A0C_slot_32(pid, 0x00C8, 0x00000000);
spawn FREE.waitNTimerTicks(pid, 0x00C8, 0x00000000);
suspend;
spawn class_0A0C_slot_26(pid, "4g", 0x00000000);
spawn FREE.slot_26(pid, "4g", 0x00000000);
/* free_stack_string value_u8=0x0 target=[SP+00h] */
suspend;
/* loopscr value_u8=0x24 */
/* loopscr value_u8=0x42 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
/* loop_selector item in selector_0x42(arg0=0x032A, arg1=0x0329, arg2=(50 * 32), origin=radar) */
while (!condition) {
/* loopnext */
}
return;
}
else if (Actor.getMap() == 29) {
spawn class_0A0C_slot_32(pid, 10, 0x00000000);
spawn FREE.waitNTimerTicks(pid, 10, 0x00000000);
suspend;
/* pop_global global_id=0x2E size=0x1 */
/* loopscr value_u8=0x24 */
/* loopscr value_u8=0x3D */
/* loopscr value_u8=0x40 */
/* loopscr value_u8=0x25 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
/* loop_selector item in nearby_items(shape=LIGHT_TUBE, origin=global[0x003C]) */
while (!condition) {
spawn class_0A1E_slot_28(pid, 0, 2, item);
spawn ITEM.slot_28(pid, 0, 2, item);
suspend;
/* loopnext */
}
/* loopscr value_u8=0x24 */
/* loopscr value_u8=0x3D */
/* loopscr value_u8=0x40 */
/* loopscr value_u8=0x25 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
while (!condition) {
for item in nearby_items(shape=TUBE_PLATFORM, origin=global[0x003C]) {
/* loopnext */
}
spawn class_0A0C_slot_32(pid, 60, 0x00000000);
spawn FREE.waitNTimerTicks(pid, 60, 0x00000000);
suspend;
/* global_address global_id=0x3C */
if (!Actor.isDead()) {
return;
}
else {
/* loopscr value_u8=0x24 */
/* loopscr value_u8=0x3D */
/* loopscr value_u8=0x40 */
/* loopscr value_u8=0x25 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
while (!condition) {
for item in nearby_items(shape=NUMBERS, origin=global[0x003C]) {
if (Item.getQLo(item) == 0) {
spawn class_0A0C_slot_32(UCMachine.rndRange(pid, 30, 20), 0x00000000);
spawn FREE.waitNTimerTicks(UCMachine.rndRange(pid, 30, 20), 0x00000000);
suspend;
}
/* loopnext */
}
/* loopscr value_u8=0x24 */
/* loopscr value_u8=0x3D */
/* loopscr value_u8=0x40 */
/* loopscr value_u8=0x25 */
/* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */
while (!condition) {
spawn class_0A0C_slot_32(pid, 20, 0x00000000);
for item in nearby_items(shape=0x03B0, origin=global[0x003C]) {
spawn FREE.waitNTimerTicks(pid, 20, 0x00000000);
suspend;
/* loopnext */
}
spawn class_0A0C_slot_22(0x00000000);
spawn FREE.slot_22(0x00000000);
return;
}
}