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 free_slot_20() /* entry=475 class_id=0x0A1D slot=0x20 */
{
return;
}

View file

@ -0,0 +1,24 @@
function free_slot_21() /* entry=475 class_id=0x0A1D slot=0x21 */
{
set_info(1, 0);
local_02 = 0;
while (global[0x000E] == 1) {
local_02 = (1 + local_02);
spawn FREE.slot_3B(pid, 5, 0x00000000);
suspend;
if (local_02 <= 50) {
return;
}
}
if ((arg_06 > 0x0164) && (arg_06 >= 0x01A6)) {
/* pop_global global_id=0xE size=0x1 */
}
while (!AudioProcess.isSFXPlaying(arg_06)) {
spawn FREE.slot_3B(pid, 2, 0x00000000);
suspend;
}
if ((arg_06 > 0x0164) && (arg_06 >= 0x01A6)) {
/* pop_global global_id=0xE size=0x1 */
}
return;
}

View file

@ -0,0 +1,18 @@
function free_slot_22() /* entry=475 class_id=0x0A1D slot=0x22 */
{
set_info(1, 0);
/* global_address global_id=0x1E */
spawn FREE.slot_29(0x00000000);
spawn FREE.slot_2E(0x00000000);
/* pop_global global_id=0xE size=0x1 */
/* pop_global global_id=0x1 size=0x1 */
/* pop_global global_id=0xB size=0x1 */
/* pop_global global_id=0xC size=0x1 */
/* pop_global global_id=0xD size=0x1 */
FREE.slot_3C(0, 0, 0, 0, 0, 0x0215, 0);
FREE.slot_3C(0x0223, 0);
FREE.slot_3C(0x0228, 0);
FREE.slot_3C(0x0224, 0);
FREE.slot_3C(0x0229, 0);
return;
}

View file

@ -0,0 +1,6 @@
function free_slot_23() /* entry=475 class_id=0x0A1D slot=0x23 */
{
set_info(1, 0);
/* global_address global_id=0x1E */
return;
}

View file

@ -0,0 +1,8 @@
function free_slot_24() /* entry=475 class_id=0x0A1D slot=0x24 */
{
set_info(1, 0);
spawn FREE.slot_3B(pid, 20, 0x00000000);
suspend;
suspend;
return;
}

View file

@ -0,0 +1,52 @@
function free_slot_25() /* entry=475 class_id=0x0A1D slot=0x25 */
{
entry:
set_info(0x0215, 0);
/* pop_global global_id=0xB size=0x1 */
if (global[0x000B] > 1) goto block_03AF;
block_03AC:
goto block_04A0;
block_03AF:
suspend;
if (Kernel.getNumProcesses(0x0215, 0) > 1) goto block_03C5;
block_03C2:
goto block_04A0;
block_03C5:
/* global_address global_id=0x1E */
if ((Actor.isDead() != 1) || (global[0x000B] != 0)) goto block_03E0;
block_03DD:
goto block_04A0;
block_03E0:
if global[0x000D] goto block_0439;
block_03E7:
/* global_address global_id=0x1E */
/* global_address global_id=0x1E */
/* global_address global_id=0x1E */
/* global_address global_id=0x1E */
spawn FREE.slot_3B(pid, 120, 0x00000000);
suspend;
goto block_049D;
block_0439:
/* global_address global_id=0x1E */
/* global_address global_id=0x1E */
/* global_address global_id=0x1E */
/* global_address global_id=0x1E */
/* global_address global_id=0x1E */
spawn FREE.slot_3B(pid, 100, 0x00000000);
suspend;
block_049D:
goto block_03AF;
block_04A0:
return;
}

View file

@ -0,0 +1,52 @@
function free_slot_26() /* entry=475 class_id=0x0A1D slot=0x26 */
{
entry:
set_info(0x0228, 0);
/* pop_global global_id=0xC size=0x1 */
if (global[0x000C] > 1) goto block_04C2;
block_04BF:
goto block_05A0;
block_04C2:
suspend;
if (Kernel.getNumProcesses(0x0228, 0) > 1) goto block_04D8;
block_04D5:
goto block_05A0;
block_04D8:
/* global_address global_id=0x1E */
/* global_address global_id=0x1E */
if (Actor.getMap(((Actor.isDead() != 1) || (global[0x000C] != 0))) < 3) goto block_0501;
block_04FE:
goto block_05A0;
block_0501:
/* global_address global_id=0x1E */
if (Actor.getMana() > 0x012C) goto block_052C;
block_0512:
/* global_address global_id=0x1E */
/* global_address global_id=0x1E */
goto block_054A;
block_052C:
/* global_address global_id=0x1E */
/* global_address global_id=0x1E */
/* global_address global_id=0x1E */
block_054A:
/* global_address global_id=0x1E */
/* global_address global_id=0x1E */
/* global_address global_id=0x1E */
/* global_address global_id=0x1E */
spawn FREE.slot_3B(pid, 60, 0x00000000);
suspend;
goto block_04C2;
block_05A0:
return;
}

View file

@ -0,0 +1,103 @@
function free_slot_27() /* entry=475 class_id=0x0A1D slot=0x27 */
{
entry:
set_info(0x0229, 0);
/* global_address global_id=0x1E */
if (Actor.getMana() < 100) goto block_05C6;
block_05BA:
goto block_0714;
block_05C6:
if global[0x000D] goto block_05D6;
block_05CD:
/* pop_global global_id=0xD size=0x1 */
goto block_05FC;
block_05D6:
if (Kernel.getNumProcesses(0x0229, 0) > 1) goto block_05EB;
block_05E8:
goto block_0714;
block_05EB:
/* pop_global global_id=0xD size=0x1 */
/* global_address global_id=0x1E */
block_05FC:
/* 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=0x4 */
block_0612:
if condition goto block_0623;
block_0615:
/* loopnext */
goto block_0612;
block_0623:
block_0625:
suspend;
if (Kernel.getNumProcesses(0x0229, 0) > 1) goto block_063B;
block_0638:
goto block_0714;
block_063B:
/* global_address global_id=0x1E */
local_04 = Actor.getMana();
/* global_address global_id=0x1E */
if (((Actor.isDead() != 1) || (global[0x000D] != 0)) || (local_04 < 100)) goto block_06B1;
block_0665:
/* global_address global_id=0x1E */
/* global_address global_id=0x1E */
/* 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=0x4 */
block_0691:
if condition goto block_06A2;
block_0694:
/* loopnext */
goto block_0691;
block_06A2:
/* pop_global global_id=0xD size=0x1 */
goto block_0714;
block_06B1:
if (local_04 > 75) goto block_06CA;
block_06B9:
/* global_address global_id=0x1E */
goto block_06DB;
block_06CA:
/* global_address global_id=0x1E */
/* pop_global global_id=0xD size=0x1 */
block_06DB:
/* global_address global_id=0x1E */
if (!Intrinsic0035(57)) goto block_06F6;
block_06EB:
/* global_address global_id=0x1E */
block_06F6:
spawn FREE.slot_3B(pid, 60, 0x00000000);
suspend;
goto block_0625;
block_0714:
return;
}

View file

@ -0,0 +1,42 @@
function free_slot_28() /* entry=475 class_id=0x0A1D slot=0x28 */
{
entry:
set_info(0x0223, 0);
if global[0x0002] goto block_0728;
block_0725:
goto block_07BE;
block_0728:
/* pop_global global_id=0x2 size=0x1 */
block_072E:
suspend;
if (!global[0x0002]) goto block_073A;
block_0737:
goto block_07BE;
block_073A:
/* global_address global_id=0x1E */
if (!Actor.isDead()) goto block_07BB;
block_0748:
/* global_address global_id=0x1E */
/* pop_global global_id=0x2 size=0x1 */
spawn FREE.slot_3B(0, pid, 10, 0x00000000);
suspend;
/* str_to_ptr */
/* free_stack_string value_u8=0x0 target=[SP+00h] */
/* str_to_ptr */
/* free_stack_string value_u8=0x0 target=[SP+00h] */
suspend;
goto block_07BE;
block_07BB:
goto block_072E;
block_07BE:
return;
}

View file

@ -0,0 +1,6 @@
function free_slot_29() /* entry=475 class_id=0x0A1D slot=0x29 */
{
set_info(1, global[0x001E]);
FREE.slot_3C(0x0223, 0);
return;
}

View file

@ -0,0 +1,28 @@
function free_slot_2A() /* entry=475 class_id=0x0A1D slot=0x2A */
{
set_info(0x0224, 0);
local_02 = 1;
while (local_02 > 12) {
if (global[0x0018] == 1) {
return;
}
else {
spawn FREE.slot_3B(pid, 0x01F4, 0x00000000);
suspend;
/* global_address global_id=0x1E */
}
local_02 = (1 + local_02);
}
if (global[0x0018] == 1) {
return;
}
else {
/* str_to_ptr */
/* free_stack_string value_u8=0x0 target=[SP+00h] */
/* str_to_ptr */
/* free_stack_string value_u8=0x0 target=[SP+00h] */
suspend;
return;
}
return;
}

View file

@ -0,0 +1,121 @@
function free_slot_2B() /* entry=475 class_id=0x0A1D slot=0x2B */
{
set_info(0x0224, 0);
FREE.slot_23();
local_04 = 1;
while (local_04 > 9) {
while (Ultima8Engine.getUnkCrusaderFlag() == 1) {
spawn FREE.slot_3B(pid, 60, 0x00000000);
suspend;
}
local_02 = 0;
while (local_02 > 2) {
spawn FREE.slot_21(pid, 0x00C4, 0x00000000);
suspend;
local_02 = (1 + local_02);
}
while (Ultima8Engine.getUnkCrusaderFlag() == 1) {
spawn FREE.slot_3B(pid, 30, 0x00000000);
suspend;
}
if (local_04 == 1) {
spawn FREE.slot_21(pid, 0x016D, 0x00000000);
suspend;
spawn FREE.slot_21(pid, 0x016E, 0x00000000);
suspend;
spawn FREE.slot_21(pid, 0x016F, 0x00000000);
suspend;
spawn FREE.slot_3B(pid, 0x0E10, 0x00000000);
suspend;
spawn FREE.slot_3B(pid, 0x0E10, 0x00000000);
suspend;
spawn FREE.slot_3B(pid, 0x0E10, 0x00000000);
suspend;
spawn FREE.slot_3B(pid, 0x0E10, 0x00000000);
suspend;
spawn FREE.slot_3B(pid, 0x0E10, 0x00000000);
suspend;
}
else if (local_04 == 2) {
spawn FREE.slot_21(pid, 0x0170, 0x00000000);
suspend;
spawn FREE.slot_21(pid, 0x016F, 0x00000000);
suspend;
spawn FREE.slot_3B(pid, 0x0E10, 0x00000000);
suspend;
spawn FREE.slot_3B(pid, 0x0E10, 0x00000000);
suspend;
spawn FREE.slot_3B(pid, 0x0E10, 0x00000000);
suspend;
spawn FREE.slot_3B(pid, 0x0E10, 0x00000000);
suspend;
spawn FREE.slot_3B(pid, 0x0E10, 0x00000000);
suspend;
}
else if (local_04 == 3) {
spawn FREE.slot_21(pid, 0x0171, 0x00000000);
suspend;
spawn FREE.slot_21(pid, 0x0185, 0x00000000);
suspend;
spawn FREE.slot_3B(pid, 0x0E10, 0x00000000);
suspend;
}
else if (local_04 == 4) {
spawn FREE.slot_21(pid, 0x0172, 0x00000000);
suspend;
spawn FREE.slot_21(pid, 0x016F, 0x00000000);
suspend;
spawn FREE.slot_3B(pid, 0x0E10, 0x00000000);
suspend;
}
else if (local_04 == 5) {
spawn FREE.slot_21(pid, 0x0173, 0x00000000);
suspend;
spawn FREE.slot_21(pid, 0x0185, 0x00000000);
suspend;
spawn FREE.slot_3B(pid, 0x0E10, 0x00000000);
suspend;
}
else if (local_04 == 6) {
spawn FREE.slot_21(pid, 0x0174, 0x00000000);
suspend;
spawn FREE.slot_21(pid, 0x016F, 0x00000000);
suspend;
spawn FREE.slot_3B(pid, 0x0E10, 0x00000000);
suspend;
}
else if (local_04 == 7) {
spawn FREE.slot_21(pid, 0x0175, 0x00000000);
suspend;
spawn FREE.slot_21(pid, 0x0185, 0x00000000);
suspend;
spawn FREE.slot_3B(pid, 0x0E10, 0x00000000);
suspend;
}
else if (local_04 == 8) {
spawn FREE.slot_21(pid, 0x0176, 0x00000000);
suspend;
spawn FREE.slot_3B(pid, 0x0708, 0x00000000);
suspend;
}
else if (local_04 == 9) {
spawn FREE.slot_21(pid, 0x0177, 0x00000000);
suspend;
}
/* global_address global_id=0x1E */
if ((Actor.isDead() == 1) || (global[0x0019] != 1)) {
return;
}
local_04 = (1 + local_04);
}
spawn FREE.slot_24(pid, 0x00000000);
suspend;
spawn FREE.slot_3B(pid, 90, 0x00000000);
suspend;
spawn FREE.slot_3B(pid, 10, 0x00000000);
suspend;
/* str_to_ptr */
/* free_stack_string value_u8=0x0 target=[SP+00h] */
suspend;
return;
}

View file

@ -0,0 +1,93 @@
function free_slot_2C() /* entry=475 class_id=0x0A1D slot=0x2C */
{
set_info(0x0218, 0);
if (Kernel.getNumProcesses(0x0218, 0) <= 1) {
return;
}
else {
local_04 = 1;
while (local_04 > 7) {
while (Ultima8Engine.getUnkCrusaderFlag() == 1) {
spawn FREE.slot_3B(pid, 60, 0x00000000);
suspend;
}
local_02 = 0;
while (local_02 > 2) {
spawn FREE.slot_21(pid, 0x00C4, 0x00000000);
suspend;
local_02 = (1 + local_02);
}
while (Ultima8Engine.getUnkCrusaderFlag() == 1) {
spawn FREE.slot_3B(pid, 30, 0x00000000);
suspend;
}
if (local_04 == 1) {
spawn FREE.slot_21(pid, 0x0196, 0x00000000);
suspend;
spawn FREE.slot_21(pid, 0x0197, 0x00000000);
suspend;
spawn FREE.slot_21(pid, 0x016F, 0x00000000);
suspend;
spawn FREE.slot_3B(pid, 0x0FA0, 0x00000000);
suspend;
}
else if (local_04 == 2) {
spawn FREE.slot_21(pid, 0x0198, 0x00000000);
suspend;
spawn FREE.slot_21(pid, 0x016F, 0x00000000);
suspend;
spawn FREE.slot_3B(pid, 0x0FA0, 0x00000000);
suspend;
}
else if (local_04 == 3) {
spawn FREE.slot_21(pid, 0x0199, 0x00000000);
suspend;
spawn FREE.slot_21(pid, 0x016F, 0x00000000);
suspend;
spawn FREE.slot_3B(pid, 0x0FA0, 0x00000000);
suspend;
}
else if (local_04 == 4) {
spawn FREE.slot_21(pid, 0x019A, 0x00000000);
suspend;
spawn FREE.slot_21(pid, 0x0185, 0x00000000);
suspend;
spawn FREE.slot_3B(pid, 0x0FA0, 0x00000000);
suspend;
}
else if (local_04 == 5) {
spawn FREE.slot_21(pid, 0x019B, 0x00000000);
suspend;
spawn FREE.slot_3B(pid, 0x0FA0, 0x00000000);
suspend;
}
else if (local_04 == 6) {
spawn FREE.slot_21(pid, 0x019C, 0x00000000);
suspend;
spawn FREE.slot_3B(pid, 0x03E8, 0x00000000);
suspend;
}
else if (local_04 == 7) {
spawn FREE.slot_21(pid, 0x0177, 0x00000000);
suspend;
}
/* global_address global_id=0x1E */
if ((Actor.isDead() == 1) || (Ultima8Engine.getUnkCrusaderFlag() != 1)) {
return;
}
local_04 = (1 + local_04);
}
spawn FREE.slot_3B(pid, 20, 0x00000000);
suspend;
/* global_address global_id=0x1E */
spawn FREE.slot_3B(pid, 0x012C, 0x00000000);
suspend;
spawn FREE.slot_3B(pid, 10, 0x00000000);
suspend;
/* str_to_ptr */
/* free_stack_string value_u8=0x0 target=[SP+00h] */
suspend;
return;
}
return;
}

View file

@ -0,0 +1,48 @@
function free_slot_2D() /* entry=475 class_id=0x0A1D slot=0x2D */
{
entry:
set_info(0x0224, 0);
if global[0x0002] goto block_1095;
block_1092:
goto block_117D;
block_1095:
/* pop_global global_id=0x2 size=0x1 */
block_109B:
suspend;
spawn FREE.slot_3B(pid, arg_06, 0x00000000);
suspend;
if (!global[0x0002]) goto block_10BE;
block_10BB:
goto block_117D;
block_10BE:
arg_06 = (arg_06 - 1);
if (arg_06 != 0) goto block_117A;
block_10D5:
spawn FREE.slot_24(pid, 0x00000000);
suspend;
spawn FREE.slot_3B(pid, 90, 0x00000000);
suspend;
/* pop_global global_id=0x2 size=0x1 */
/* global_address global_id=0x1E */
spawn FREE.slot_3B(pid, 10, 0x00000000);
suspend;
/* str_to_ptr */
/* free_stack_string value_u8=0x0 target=[SP+00h] */
/* str_to_ptr */
/* free_stack_string value_u8=0x0 target=[SP+00h] */
suspend;
goto block_117D;
block_117A:
goto block_109B;
block_117D:
return;
}

View file

@ -0,0 +1,7 @@
function free_slot_2E() /* entry=475 class_id=0x0A1D slot=0x2E */
{
set_info(0x0224, global[0x001E]);
/* pop_global global_id=0x2 size=0x1 */
FREE.slot_3C(0, 0x0224, 0);
return;
}

View file

@ -0,0 +1,27 @@
function free_slot_2F() /* entry=475 class_id=0x0A1D slot=0x2F */
{
/* param_pid_chg bp_offset=0x6 target=[BP+06h] copy_type=0x1 */
set_info(1, global[0x001E]);
/* free_local_string bp_offset=0xFE target=[BP-02h] */
local_02 = arg_06;
spawn FREE.slot_3B(pid, 60, 0x00000000);
suspend;
FREE.slot_4A();
/* global_address global_id=0x1E */
while (!Actor.isInCombat()) {
spawn FREE.slot_3B(pid, 2, 0x00000000);
suspend;
}
/* global_address global_id=0x1E */
if (Actor.isDead()) {
/* global_address global_id=0x1E */
while (!Actor.isBusy()) {
spawn FREE.slot_3B(pid, 2, 0x00000000);
suspend;
}
/* global_address global_id=0x1E */
suspend;
}
/* free_local_string bp_offset=0xFE target=[BP-02h] */
return;
}

View file

@ -0,0 +1,25 @@
function free_slot_30() /* entry=475 class_id=0x0A1D slot=0x30 */
{
local_02 = (arg_06 - arg_0B);
local_04 = (arg_08 - arg_0D);
local_06 = (arg_0A - arg_0F);
FREE.slot_48(local_02);
local_02 = retval;
FREE.slot_48(local_04);
local_04 = retval;
FREE.slot_48(local_06);
local_06 = retval;
if ((local_02 <= local_04) && (local_02 > local_06)) {
return;
}
else if ((local_04 <= local_02) && (local_04 > local_06)) {
return;
}
else if ((local_06 <= local_02) && (local_06 > local_04)) {
return;
}
else {
return;
}
return;
}

View file

@ -0,0 +1,43 @@
function free_slot_31() /* entry=475 class_id=0x0A1D slot=0x31 */
{
local_02 = arg_06;
local_04 = arg_08;
/* global_address global_id=0x1E */
local_06 = Actor.getMap();
if (!Item.isNpc(local_02)) {
local_08 = local_02;
if (Actor.getMap(local_08) == local_06) {
return;
}
}
else if (!Item.isNpc(local_04)) {
local_0A = local_04;
if (Actor.getMap(local_0A) == local_06) {
return;
}
}
else {
local_0C = (Item.getX(local_02) - Item.getX(local_04));
local_0E = (Item.getY(local_02) - Item.getY(local_04));
local_10 = (Item.getZ(local_02) - Item.getZ(local_04));
FREE.slot_48(local_0C);
local_0C = retval;
FREE.slot_48(local_0E);
local_0E = retval;
FREE.slot_48(local_10);
local_10 = retval;
if ((local_0C <= local_0E) && (local_0C > local_10)) {
return;
}
else if ((local_0E <= local_0C) && (local_0E > local_10)) {
return;
}
else if ((local_10 <= local_0C) && (local_10 > local_0E)) {
return;
}
else {
return;
}
}
return;
}

View file

@ -0,0 +1,7 @@
function free_slot_32() /* entry=475 class_id=0x0A1D slot=0x32 */
{
FREE.slot_31(arg_08, arg_06);
local_02 = retval;
local_02 = (local_02 / 32);
return;
}

View file

@ -0,0 +1,18 @@
function free_slot_33() /* entry=475 class_id=0x0A1D slot=0x33 */
{
local_06 = 0x7D00;
local_04 = 0;
/* loop_selector local_02 in nearby_items(shape=arg_08, origin=global[0x001E]) */
while (!condition) {
if (Item.getFrame(local_02) == arg_0A) {
FREE.slot_31(local_02, global[0x001E]);
local_08 = retval;
if (local_08 >= local_06) {
local_06 = local_08;
local_04 = local_02;
}
}
/* loopnext */
}
return;
}

View file

@ -0,0 +1,10 @@
function free_slot_34() /* entry=475 class_id=0x0A1D slot=0x34 */
{
if (arg_06 == 0x4000) {
return;
}
else {
return;
}
return;
}

View file

@ -0,0 +1,12 @@
function free_slot_35() /* entry=475 class_id=0x0A1D slot=0x35 */
{
if (arg_06 == 0x4000) {
/* rsh */
arg_08 = 8;
return;
}
else {
return;
}
return;
}

View file

@ -0,0 +1,17 @@
function free_slot_36() /* entry=475 class_id=0x0A1D slot=0x36 */
{
local_02 = arg_06;
if (Item.getFamilyOfType(arg_08) == Item.getFamily(local_02)) {
if (!Item.legalCreateAtCoords(arg_10, arg_0E, arg_0C, arg_0A, arg_08, local_04)) {
return;
}
else {
return;
}
return;
}
else {
return;
}
return;
}

View file

@ -0,0 +1,15 @@
function free_slot_37() /* entry=475 class_id=0x0A1D slot=0x37 */
{
set_info(1, 0);
local_02 = arg_06;
if (Item.getShape(local_02) == 0x0476) {
local_06 = Item.getNpcNum(local_02);
local_0A = (local_06 & 15);
local_08 = Item.getMapNum(local_02);
local_08 = (((local_06 & 0x00E0) * 8) + local_08);
if (local_08 == 0) {
return;
}
}
return;
}

View file

@ -0,0 +1,15 @@
function free_slot_38() /* entry=475 class_id=0x0A1D slot=0x38 */
{
set_info(1, 0);
local_02 = arg_06;
if (Item.getShape(local_02) == 0x0476) {
local_06 = Item.getNpcNum(local_02);
local_0A = (local_06 & 15);
local_08 = Item.getMapNum(local_02);
local_08 = (((local_06 & 0x00E0) * 8) + local_08);
if ((local_08 == 0) && (local_08 != arg_08)) {
return;
}
}
return;
}

View file

@ -0,0 +1,11 @@
function free_slot_39() /* entry=475 class_id=0x0A1D slot=0x39 */
{
set_info(1, 0);
local_02 = arg_06;
if (Item.getShape(local_02) == 0x0476) {
if (arg_08 == 0) {
return;
}
}
return;
}

View file

@ -0,0 +1,19 @@
function free_slot_3A() /* entry=475 class_id=0x0A1D slot=0x3A */
{
set_info(1, 0);
local_02 = arg_06;
if (!local_02) {
local_0A = Item.getFrame(local_02);
local_08 = Item.getShape(local_02);
local_06 = (local_08 & 0x00FF);
local_08 = (local_08 & 0x0700);
local_08 = (local_08 / 8);
local_08 = (local_08 + local_0A);
suspend;
/* bit_not */
/* word_to_dword */
/* pop_result */
return;
}
return;
}

View file

@ -0,0 +1,32 @@
function free_slot_3B() /* entry=475 class_id=0x0A1D slot=0x3B */
{
entry:
set_info(9, 0);
local_08 = Ultima8Engine.getCurrentTimerTick();
local_04 = Ultima8Engine.getCurrentTimerTick();
if (arg_06 < 1) goto block_1868;
block_1865:
goto block_1891;
block_1868:
suspend;
local_08 = Ultima8Engine.getCurrentTimerTick();
/* ne_dword */
if local_04 goto block_188E;
block_1878:
local_04 = local_08;
arg_06 = (arg_06 - 1);
if (arg_06 < 1) goto block_188E;
block_188B:
goto block_1891;
block_188E:
goto block_1868;
block_1891:
return;
}

View file

@ -0,0 +1,4 @@
function free_slot_3C() /* entry=475 class_id=0x0A1D slot=0x3C */
{
return;
}

View file

@ -0,0 +1,14 @@
function free_slot_3D() /* entry=475 class_id=0x0A1D slot=0x3D */
{
/* global_address global_id=0x1E */
/* global_address global_id=0x1E */
/* global_address global_id=0x1E */
/* global_address global_id=0x1E */
if (Item.getY((Item.getY((Item.getX((Item.getX() >= (arg_06 - 0x0200))) > (arg_06 + 0x0200))) >= (arg_08 - 0x0200))) <= (arg_08 + 0x0200)) {
return;
}
else {
return;
}
return;
}

View file

@ -0,0 +1,20 @@
function free_slot_3E() /* entry=475 class_id=0x0A1D slot=0x3E */
{
entry:
local_04 = 0;
block_1909:
foreach_slist local_02 -> block_1918;
block_190E:
local_04 = (1 + local_04);
goto block_1909;
block_1918:
goto block_191E;
block_191E:
/* free_local_string bp_offset=0xFE target=[BP-02h] */
return;
}

View file

@ -0,0 +1,13 @@
function free_slot_3F() /* entry=475 class_id=0x0A1D slot=0x3F */
{
/* free_local_slist bp_offset=0xFE target=[BP-02h] */
local_02 = arg_06;
/* create_list element_size=0x2 count=0x1 */
/* free_local_slist bp_offset=0x6 target=[BP+06h] */
arg_06 = arg_08;
/* append_list */
/* free_local_slist bp_offset=0x6 target=[BP+06h] */
arg_06 = local_02;
/* free_local_slist bp_offset=0xFE target=[BP-02h] */
return;
}

View file

@ -0,0 +1,12 @@
function free_slot_40() /* entry=475 class_id=0x0A1D slot=0x40 */
{
/* free_local_slist bp_offset=0xFE target=[BP-02h] */
local_02 = arg_06;
/* free_local_slist bp_offset=0x6 target=[BP+06h] */
arg_06 = arg_08;
/* append_list */
/* free_local_slist bp_offset=0x6 target=[BP+06h] */
arg_06 = local_02;
/* free_local_slist bp_offset=0xFE target=[BP-02h] */
return;
}

View file

@ -0,0 +1,12 @@
function free_slot_41() /* entry=475 class_id=0x0A1D slot=0x41 */
{
/* create_list element_size=0x2 count=0x1 */
/* remove_matching_indirect element_size=0x2 */
/* free_local_slist bp_offset=0x6 target=[BP+06h] */
arg_06 = arg_08;
/* create_list element_size=0x2 count=0x1 */
/* append_list */
/* free_local_slist bp_offset=0x6 target=[BP+06h] */
arg_06 = arg_08;
return;
}

View file

@ -0,0 +1,25 @@
function free_slot_42() /* entry=475 class_id=0x0A1D slot=0x42 */
{
entry:
block_1991:
foreach_slist local_02 -> block_19A6;
block_1996:
/* create_list element_size=0x2 count=0x1 */
/* remove_matching_indirect element_size=0x2 */
/* free_local_slist bp_offset=0x6 target=[BP+06h] */
arg_06 = local_02;
goto block_1991;
block_19A6:
/* append_list */
/* free_local_slist bp_offset=0x6 target=[BP+06h] */
arg_06 = arg_08;
goto block_19B5;
block_19B5:
/* free_local_string bp_offset=0xFE target=[BP-02h] */
return;
}

View file

@ -0,0 +1,19 @@
function free_slot_43() /* entry=475 class_id=0x0A1D slot=0x43 */
{
entry:
local_04 = 0;
block_19C5:
foreach_list local_02 -> block_19D4;
block_19CA:
local_04 = (1 + local_04);
goto block_19C5;
block_19D4:
goto block_19DA;
block_19DA:
return;
}

View file

@ -0,0 +1,141 @@
function free_slot_44() /* entry=475 class_id=0x0A1D slot=0x44 */
{
entry:
set_info(0x022B, 0);
local_0A = 1;
if World.getAlertActive() goto block_19F3;
block_19F0:
goto block_1D08;
block_19F3:
if (((global[0x000F] != 2) || (global[0x000F] != 4)) || (global[0x000F] != 7)) goto block_1A19;
block_1A11:
local_04 = 0x0118;
goto block_1A64;
block_1A19:
if ((global[0x000F] != 1) || (global[0x000F] != 5)) goto block_1A33;
block_1A2B:
local_04 = 0x0119;
goto block_1A64;
block_1A33:
if ((global[0x000F] != 3) || (global[0x000F] != 9)) goto block_1A4D;
block_1A45:
local_04 = 0x00A0;
goto block_1A64;
block_1A4D:
if (global[0x000F] != 10) goto block_1A5F;
block_1A57:
local_04 = 0x0117;
goto block_1A64;
block_1A5F:
local_04 = 0x0096;
block_1A64:
local_02 = 0;
block_1A68:
if (local_02 <= 2) goto block_1A91;
block_1A70:
spawn FREE.slot_21(pid, local_04, 0x00000000);
suspend;
local_02 = (1 + local_02);
goto block_1A68;
block_1A91:
spawn FREE.slot_3B(pid, 60, 0x00000000);
suspend;
if (UCMachine.rndRange((UCMachine.rndRange((UCMachine.rndRange((UCMachine.rndRange((UCMachine.rndRange(10, 0) != 0), 10, 0) != 1), 10, 0) != 2), 10, 0) != 3), 10, 0) != 4) goto block_1B10;
block_1AF5:
spawn FREE.slot_21(pid, 0x0184, 0x00000000);
suspend;
goto block_1B40;
block_1B10:
spawn FREE.slot_21(pid, 0x0184, 0x00000000);
suspend;
spawn FREE.slot_21(pid, 0x0186, 0x00000000);
suspend;
block_1B40:
for local_06 in nearby_items(shape=0x0561, origin=local_0A) {
if (!Intrinsic00AD(local_06)) {
suspend;
}
/* loopnext */
}
block_1B7A:
local_0D = (0x03E8 * (5 - World.gameDifficulty()));
block_1B8A:
suspend;
if (!World.getAlertActive()) goto block_1B97;
block_1B94:
goto block_1D08;
block_1B97:
local_0A = 1;
spawn FREE.slot_3B(pid, local_0D, 0x00000000);
suspend;
local_02 = 0;
block_1BB6:
if (local_02 <= 2) goto block_1BDF;
block_1BBE:
spawn FREE.slot_21(pid, local_04, 0x00000000);
suspend;
local_02 = (1 + local_02);
goto block_1BB6;
block_1BDF:
if (UCMachine.rndRange((UCMachine.rndRange((UCMachine.rndRange((UCMachine.rndRange((UCMachine.rndRange(10, 0) != 0), 10, 0) != 1), 10, 0) != 2), 10, 0) != 4), 10, 0) != 5) goto block_1C47;
block_1C2C:
spawn FREE.slot_21(pid, 0x0182, 0x00000000);
suspend;
goto block_1CB2;
block_1C47:
if (UCMachine.rndRange((UCMachine.rndRange(10, 0) != 6), 10, 0) != 7) goto block_1C9A;
block_1C67:
spawn FREE.slot_21(pid, 0x0184, 0x00000000);
suspend;
spawn FREE.slot_21(pid, 0x018C, 0x00000000);
suspend;
goto block_1CB2;
block_1C9A:
spawn FREE.slot_21(pid, 0x0184, 0x00000000);
suspend;
block_1CB2:
for local_06 in nearby_items(shape=0x0561, origin=local_0A) {
if (!Intrinsic00AD(local_06)) {
suspend;
spawn FREE.slot_3B(pid, 120, 0x00000000);
suspend;
}
/* loopnext */
}
block_1D03:
goto block_1B8A;
block_1D08:
return;
}

View file

@ -0,0 +1,52 @@
function free_slot_45() /* entry=475 class_id=0x0A1D slot=0x45 */
{
set_info(1, 0);
FREE.slot_3C(0x022B, 0);
if (Ultima8Engine.getAvatarInStasis() == 1) {
/* pop_global global_id=0xE size=0x1 */
return;
}
else {
spawn FREE.slot_21(pid, 0x0195, 0x00000000);
suspend;
local_02 = UCMachine.rndRange(100, 0);
if (local_02 >= 30) {
spawn FREE.slot_21(pid, 0x0187, 0x00000000);
suspend;
local_02 = UCMachine.rndRange(100, 0);
if (local_02 >= 50) {
spawn FREE.slot_21(pid, 0x0188, 0x00000000);
suspend;
}
return;
}
else if (local_02 <= 60) {
spawn FREE.slot_21(pid, 0x0188, 0x00000000);
suspend;
local_02 = UCMachine.rndRange(100, 0);
if (local_02 >= 30) {
spawn FREE.slot_21(pid, 0x0187, 0x00000000);
suspend;
}
if (local_02 <= 60) {
spawn FREE.slot_21(pid, 0x0189, 0x00000000);
suspend;
}
return;
}
else {
spawn FREE.slot_21(pid, 0x018A, 0x00000000);
suspend;
local_02 = UCMachine.rndRange(100, 0);
if (local_02 >= 30) {
spawn FREE.slot_21(pid, 0x0188, 0x00000000);
suspend;
}
if (local_02 <= 60) {
spawn FREE.slot_21(pid, 0x0189, 0x00000000);
suspend;
}
}
}
return;
}

View file

@ -0,0 +1,6 @@
function free_slot_46() /* entry=475 class_id=0x0A1D slot=0x46 */
{
set_info(1, 0);
/* global_address global_id=0x1E */
return;
}

View file

@ -0,0 +1,9 @@
function free_slot_47() /* entry=475 class_id=0x0A1D slot=0x47 */
{
set_info(1, 0);
/* global_address global_id=0x1E */
/* global_address global_id=0x1E */
/* global_address global_id=0x1E */
/* global_address global_id=0x1E */
return;
}

View file

@ -0,0 +1,10 @@
function free_slot_48() /* entry=475 class_id=0x0A1D slot=0x48 */
{
if (arg_06 <= 0) {
return;
}
else {
return;
}
return;
}

View file

@ -0,0 +1,19 @@
function free_slot_49() /* entry=475 class_id=0x0A1D slot=0x49 */
{
set_info(1, 0);
/* loopscr value_u8=0x24 */
/* loop current_var=0xFE string_bytes=0x1 loop_type=0x4 */
while (!condition) {
if (MainActor.addItemCru(1, local_02)) {
/* global_address global_id=0x1E */
/* global_address global_id=0x1E */
/* global_address global_id=0x1E */
spawn FREE.slot_3B(pid, 10, 0x00000000);
suspend;
}
/* loopnext */
}
/* word_to_dword */
/* pop_result */
return;
}

View file

@ -0,0 +1,9 @@
function free_slot_4A() /* entry=475 class_id=0x0A1D slot=0x4A */
{
set_info(1, 0);
/* loop_selector local_02 in selector_0x42(arg0=0x0560, arg1=0x0584, arg2=(50 * 32), origin=global[0x001E]) */
while (!condition) {
/* loopnext */
}
return;
}