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,233 @@
function trigger_slot_20() /* entry=469 class_id=0x0A17 slot=0x20 */
{
entry:
set_info(0x021B, 0);
local_10 = 0;
local_12 = 0;
local_14 = 0;
spawn FREE.slot_3B(pid, 1, 0x00000000);
suspend;
local_0E = arg_0A;
if (arg_0C != 0x00FE) goto block_0161;
block_0154:
local_10 = 0x00FE;
arg_0C = 0x0080;
goto block_018D;
block_0161:
local_06 = Item.getQHi(local_0E);
local_10 = Item.getQLo(local_0E);
local_0A = Item.getMapNum(local_0E);
local_08 = Item.getNpcNum(local_0E);
block_018D:
local_12 = local_10;
/* pop_global global_id=0x22 size=0x2 */
if (arg_0C < 0x0080) goto block_03A6;
block_01A0:
local_14 = (((local_0A & 0x00E0) * 8) + local_08);
if (local_0A != 0) goto block_01B9;
block_01B6:
goto block_0485;
block_01B9:
if (local_10 != 0) goto block_01C4;
block_01C1:
goto block_0485;
block_01C4:
local_04 = 0;
if (local_0A & 8) goto block_01D4;
block_01D0:
local_04 = 1;
block_01D4:
if (arg_0C != local_04) goto block_03A6;
block_01DC:
if (local_0A & 4) goto block_0306;
block_01E4:
if Item.isCrusTypeNPC(local_14) goto block_0275;
block_01F0:
if (local_10 != 0x00FF) goto block_0222;
block_01F9:
if (local_14 != 0) goto block_021F;
block_0201:
spawn TRIGGER.slot_2A(pid, local_14, local_10, local_0A, local_08, local_06, arg_0A, arg_06);
suspend;
block_021F:
goto block_0272;
block_0222:
if (local_14 != 0x07FE) goto block_024C;
block_022B:
spawn TRIGGER.slot_2B(pid, local_14, local_10, local_0A, local_08, local_06, arg_0A, arg_06);
suspend;
goto block_0272;
block_024C:
if (local_14 != 0) goto block_0272;
block_0254:
spawn TRIGGER.slot_29(pid, local_14, local_10, local_0A, local_08, local_06, arg_0A, arg_06);
suspend;
block_0272:
goto block_0303;
block_0275:
if (local_10 != 0x00FF) goto block_02AB;
block_027E:
if (local_14 != 0) goto block_02A8;
block_0286:
spawn TRIGGER.slot_25(pid, local_14, local_10, local_0A, local_08, local_06, arg_0A, arg_06);
suspend;
/* dword_to_word */
local_10 = process_result;
block_02A8:
goto block_0303;
block_02AB:
if (local_14 != 0x07FF) goto block_02D9;
block_02B4:
spawn TRIGGER.slot_24(pid, local_14, local_10, local_0A, local_08, local_06, arg_0A, arg_06);
suspend;
/* dword_to_word */
local_10 = process_result;
goto block_0303;
block_02D9:
if (local_14 != 0) goto block_0303;
block_02E1:
spawn TRIGGER.slot_23(pid, local_14, local_10, local_0A, local_08, local_06, arg_0A, arg_06);
suspend;
/* dword_to_word */
local_10 = process_result;
block_0303:
goto block_0394;
block_0306:
if (local_10 != 0x00FF) goto block_033C;
block_030F:
if (local_14 != 0) goto block_0339;
block_0317:
spawn TRIGGER.slot_28(pid, local_14, local_10, local_0A, local_08, local_06, arg_0A, arg_06);
suspend;
/* dword_to_word */
local_10 = process_result;
block_0339:
goto block_0394;
block_033C:
if (local_14 != 0x07FF) goto block_036A;
block_0345:
spawn TRIGGER.slot_27(pid, local_14, local_10, local_0A, local_08, local_06, arg_0A, arg_06);
suspend;
/* dword_to_word */
local_10 = process_result;
goto block_0394;
block_036A:
if (local_14 != 0) goto block_0394;
block_0372:
spawn TRIGGER.slot_26(pid, local_14, local_10, local_0A, local_08, local_06, arg_0A, arg_06);
suspend;
/* dword_to_word */
local_10 = process_result;
block_0394:
if (local_0A & 16) goto block_03A6;
block_039C:
block_03A6:
local_16 = (arg_0C & 1);
block_03AD:
if 1 goto block_0485;
block_03B2:
for local_0C in nearby_items(shape=0x04B1, origin=local_0E) {
if (Item.getQLo(local_0C) == local_10) {
local_0A = Item.getMapNum(local_0C);
local_04 = 0;
if (!(local_0A & 8)) {
local_04 = 1;
}
if (local_16 == local_04) {
if (!(local_0A & 16)) {
spawn TRIGGER.slot_21(pid, local_0C, arg_06);
suspend;
/* dword_to_word */
local_12 = process_result;
}
else {
/* create_list element_size=0x2 count=0x1 */
/* append_list */
/* free_local_list bp_offset=0xFE target=[BP-02h] */
local_02 = local_0C;
}
}
}
/* loopnext */
}
block_0431:
block_0439:
foreach_list local_0C -> block_0473;
block_043E:
spawn TRIGGER.slot_21(pid, local_0C, arg_06);
suspend;
/* dword_to_word */
local_18 = process_result;
/* create_list element_size=0x2 count=0x1 */
/* remove_matching_inline element_size=0x2 */
/* free_local_list bp_offset=0xFE target=[BP-02h] */
local_02 = local_0C;
if (local_18 != local_10) goto block_0470;
block_046C:
local_12 = local_18;
block_0470:
goto block_0439;
block_0473:
if (local_12 != local_10) goto block_047E;
block_047B:
goto block_0485;
block_047E:
local_10 = local_12;
goto block_03AD;
block_0485:
/* free_local_list bp_offset=0xFE target=[BP-02h] */
return;
}

View file

@ -0,0 +1,76 @@
function trigger_slot_21() /* entry=469 class_id=0x0A17 slot=0x21 */
{
set_info(0x021B, 0);
local_0C = arg_0A;
local_0E = Item.getQLo(local_0C);
local_10 = local_0E;
local_04 = Item.getQHi(local_0C);
local_08 = Item.getMapNum(local_0C);
local_06 = Item.getNpcNum(local_0C);
local_0A = (((local_08 & 0x00E0) * 8) + local_06);
if (local_08 == 0) {
return;
}
else if (!(local_08 & 4)) {
if (!Item.isCrusTypeNPC(local_0A)) {
if (local_0E == 0x00FF) {
if (local_0A == 0) {
spawn TRIGGER.slot_2A(pid, local_0A, local_0E, local_08, local_06, local_04, arg_0A, arg_06);
suspend;
}
}
else if (local_0A == 0x07FE) {
spawn TRIGGER.slot_2B(pid, local_0A, local_0E, local_08, local_06, local_04, arg_0A, arg_06);
suspend;
}
else if (local_0A == 0) {
spawn TRIGGER.slot_29(pid, local_0A, local_0E, local_08, local_06, local_04, arg_0A, arg_06);
suspend;
}
}
else if (local_0E == 0x00FF) {
if (local_0A == 0) {
spawn TRIGGER.slot_25(pid, local_0A, local_0E, local_08, local_06, local_04, arg_0A, arg_06);
suspend;
/* dword_to_word */
local_10 = process_result;
}
}
else if (local_0A == 0x07FF) {
spawn TRIGGER.slot_24(pid, local_0A, local_0E, local_08, local_06, local_04, arg_0A, arg_06);
suspend;
/* dword_to_word */
local_10 = process_result;
}
else if (local_0A == 0) {
spawn TRIGGER.slot_23(pid, local_0A, local_0E, local_08, local_06, local_04, arg_0A, arg_06);
suspend;
/* dword_to_word */
local_10 = process_result;
}
}
else if (local_0E == 0x00FF) {
if (local_0A == 0) {
spawn TRIGGER.slot_28(pid, local_0A, local_0E, local_08, local_06, local_04, arg_0A, arg_06);
suspend;
/* dword_to_word */
local_10 = process_result;
}
}
else if (local_0A == 0x07FF) {
spawn TRIGGER.slot_27(pid, local_0A, local_0E, local_08, local_06, local_04, arg_0A, arg_06);
suspend;
/* dword_to_word */
local_10 = process_result;
}
else if (local_0A == 0) {
spawn TRIGGER.slot_26(pid, local_0A, local_0E, local_08, local_06, local_04, arg_0A, arg_06);
suspend;
/* dword_to_word */
local_10 = process_result;
}
/* word_to_dword */
/* pop_result */
return;
return;
}

View file

@ -0,0 +1,18 @@
function trigger_slot_22() /* entry=469 class_id=0x0A17 slot=0x22 */
{
set_info(0x021B, 0);
local_02 = arg_0A;
while (!(1)) {
if ((Item.getStatus(local_02) & 0x1000) == 0) {
spawn DOOR.slot_21(pid, arg_0C, local_02);
suspend;
/* bit_not */
return;
}
else {
spawn FREE.slot_3B(pid, 10, 0x00000000);
suspend;
}
}
return;
}

View file

@ -0,0 +1,110 @@
function trigger_slot_23() /* entry=469 class_id=0x0A17 slot=0x23 */
{
set_info(0x021B, 0);
local_12 = arg_12;
local_10 = arg_0A;
local_04 = (arg_10 & 3);
if (local_04 == 0) {
for local_0E in nearby_items(shape=arg_14, origin=local_10) {
/* loopnext */
}
}
else if (local_04 == 1) {
for local_0E in nearby_items(shape=arg_14, origin=local_10) {
/* loopnext */
}
}
else if (local_04 == 2) {
for local_0E in nearby_items(shape=arg_14, origin=local_10) {
/* loopnext */
}
}
else if (local_04 == 3) {
local_02 = (arg_0C & 7);
if (local_02 == 0) {
local_0C = (arg_0C / 8);
/* loop_selector local_0E in nearby_items(shape=0x0476, origin=local_10) */
while (!condition) {
if (Item.getQLo(local_0E) == arg_12) {
local_06 = Item.getNpcNum(local_0E);
local_0A = (local_06 & 15);
local_08 = Item.getMapNum(local_0E);
local_08 = (((local_06 & 0x00E0) * 8) + local_08);
FREE.slot_39(local_0C, local_0A, local_08, local_0E);
}
/* loopnext */
}
}
else if (local_02 == 1) {
local_0C = (arg_0C / 8);
/* loop_selector local_0E in nearby_items(shape=arg_14, origin=local_10) */
while (!condition) {
if (Item.getQLo(local_0E) == arg_12) {
if (arg_0A == local_0E) {
if (local_0C == 31) {
suspend;
}
else {
local_0A = Item.getFrame(local_0E);
local_08 = Item.getShape(local_0E);
local_06 = (local_08 & 0x00FF);
local_08 = (local_08 & 0x0700);
local_08 = (local_08 / 8);
local_08 = (local_08 + local_0A);
suspend;
/* bit_not */
}
}
}
/* loopnext */
}
}
else if (local_02 == 2) {
local_06 = (arg_0C / 8);
/* loop_selector local_0E in nearby_items(shape=arg_14, origin=local_10) */
while (!condition) {
/* loopnext */
}
}
else if (local_02 == 3) {
for local_0E in nearby_items(shape=arg_14, origin=local_10) {
if (Item.getQLo(local_0E) == arg_12) {
if (arg_0A == local_0E) {
local_06 = (arg_0C / 8);
spawn TRIGGER.slot_22(local_06, local_0E, arg_06);
}
}
/* loopnext */
}
}
else if (local_02 == 4) {
local_06 = (arg_0C / 8);
local_12 = (local_12 + local_06);
}
else if (local_02 == 5) {
local_06 = (arg_0C / 8);
local_12 = (local_12 - local_06);
}
else if (local_02 == 6) {
local_0C = (arg_0C / 8);
/* loop_selector local_0E in nearby_items(shape=0x0476, origin=local_10) */
while (!condition) {
if (Item.getQLo(local_0E) == arg_12) {
local_06 = Item.getNpcNum(local_0E);
local_0A = (local_06 & 15);
local_08 = Item.getMapNum(local_0E);
local_08 = (((local_06 & 0x00E0) * 8) + local_08);
if (local_08 == 0) {
if (Item.create(local_0A, local_08, local_14) == 1) {
suspend;
}
}
}
/* loopnext */
}
}
}
/* word_to_dword */
/* pop_result */
return;
}

View file

@ -0,0 +1,116 @@
function trigger_slot_24() /* entry=469 class_id=0x0A17 slot=0x24 */
{
set_info(0x021B, 0);
local_12 = arg_12;
local_10 = arg_0A;
local_04 = (arg_10 & 3);
if (local_04 == 0) {
for local_0E in nearby_items(family=1, origin=local_10) {
/* loopnext */
}
}
else if (local_04 == 1) {
for local_0E in nearby_items(family=1, origin=local_10) {
/* loopnext */
}
}
else if (local_04 == 2) {
for local_0E in nearby_items(family=1, origin=local_10) {
/* loopnext */
}
}
else if (local_04 == 3) {
local_02 = (arg_0C & 7);
if (local_02 == 0) {
local_0C = (arg_0C / 8);
/* loop_selector local_0E in nearby_items(shape=0x0476, origin=local_10) */
while (!condition) {
if (Item.getQLo(local_0E) == arg_12) {
local_06 = Item.getNpcNum(local_0E);
local_0A = (local_06 & 15);
local_08 = Item.getMapNum(local_0E);
local_08 = (((local_06 & 0x00E0) * 8) + local_08);
FREE.slot_39(local_0C, local_0A, local_08, local_0E);
}
/* loopnext */
}
}
else if (local_02 == 1) {
local_0C = (arg_0C / 8);
/* loop_selector local_0E in nearby_items(family=1, origin=local_10) */
while (!condition) {
if (Item.getQLo(local_0E) == arg_12) {
if (arg_0A == local_0E) {
if (local_0C == 31) {
suspend;
}
else {
local_0A = Item.getFrame(local_0E);
local_08 = Item.getShape(local_0E);
local_06 = (local_08 & 0x00FF);
local_08 = (local_08 & 0x0700);
local_08 = (local_08 / 8);
local_08 = (local_08 + local_0A);
suspend;
/* bit_not */
}
}
}
/* loopnext */
}
}
else if (local_02 == 2) {
local_06 = (arg_0C / 8);
/* loop_selector local_0E in nearby_items(family=1, origin=local_10) */
while (!condition) {
/* loopnext */
}
}
else if (local_02 == 3) {
if (global[0x0022] == 100) {
local_14 = 32;
}
else {
local_14 = global[0x0022];
}
for local_0E in nearby_items(family=1, origin=local_10) {
if (Item.getQLo(local_0E) == arg_12) {
if (arg_0A == local_0E) {
local_06 = (arg_0C / 8);
spawn TRIGGER.slot_22(local_06, local_0E, arg_06);
}
}
/* loopnext */
}
}
else if (local_02 == 4) {
local_06 = (arg_0C / 8);
local_12 = (local_12 + local_06);
}
else if (local_02 == 5) {
local_06 = (arg_0C / 8);
local_12 = (local_12 - local_06);
}
else if (local_02 == 6) {
local_0C = (arg_0C / 8);
/* loop_selector local_0E in nearby_items(shape=0x0476, origin=local_10) */
while (!condition) {
if (Item.getQLo(local_0E) == arg_12) {
local_06 = Item.getNpcNum(local_0E);
local_0A = (local_06 & 15);
local_08 = Item.getMapNum(local_0E);
local_08 = (((local_06 & 0x00E0) * 8) + local_08);
if (local_08 == 0) {
if (Item.create(local_0A, local_08, local_16) == 1) {
suspend;
}
}
}
/* loopnext */
}
}
}
/* word_to_dword */
/* pop_result */
return;
}

View file

@ -0,0 +1,102 @@
function trigger_slot_25() /* entry=469 class_id=0x0A17 slot=0x25 */
{
set_info(0x021B, 0);
local_12 = arg_12;
local_10 = arg_0A;
local_04 = (arg_10 & 3);
if (local_04 == 0) {
for local_0E in nearby_items(shape=arg_14, origin=local_10) {
/* loopnext */
}
}
else if (local_04 == 1) {
for local_0E in nearby_items(shape=arg_14, origin=local_10) {
/* loopnext */
}
}
else if (local_04 == 2) {
for local_0E in nearby_items(shape=arg_14, origin=local_10) {
/* loopnext */
}
}
else if (local_04 == 3) {
local_02 = (arg_0C & 7);
if (local_02 == 0) {
local_0C = (arg_0C / 8);
/* loop_selector local_0E in nearby_items(shape=0x0476, origin=local_10) */
while (!condition) {
local_06 = Item.getNpcNum(local_0E);
local_0A = (local_06 & 15);
local_08 = Item.getMapNum(local_0E);
local_08 = (((local_06 & 0x00E0) * 8) + local_08);
FREE.slot_39(local_0C, local_0A, local_08, local_0E);
/* loopnext */
}
}
else if (local_02 == 1) {
local_0C = (arg_0C / 8);
/* loop_selector local_0E in nearby_items(shape=arg_14, origin=local_10) */
while (!condition) {
if (arg_0A == local_0E) {
if (local_0C == 31) {
suspend;
}
else {
local_0A = Item.getFrame(local_0E);
local_08 = Item.getShape(local_0E);
local_06 = (local_08 & 0x00FF);
local_08 = (local_08 & 0x0700);
local_08 = (local_08 / 8);
local_08 = (local_08 + local_0A);
suspend;
/* bit_not */
}
}
/* loopnext */
}
}
else if (local_02 == 2) {
local_06 = (arg_0C / 8);
/* loop_selector local_0E in nearby_items(shape=arg_14, origin=local_10) */
while (!condition) {
/* loopnext */
}
}
else if (local_02 == 3) {
for local_0E in nearby_items(shape=arg_14, origin=local_10) {
if (arg_0A == local_0E) {
local_06 = (arg_0C / 8);
spawn TRIGGER.slot_22(local_06, local_0E, arg_06);
}
/* loopnext */
}
}
else if (local_02 == 4) {
local_06 = (arg_0C / 8);
local_12 = (local_12 + local_06);
}
else if (local_02 == 5) {
local_06 = (arg_0C / 8);
local_12 = (local_12 - local_06);
}
else if (local_02 == 6) {
local_0C = (arg_0C / 8);
/* loop_selector local_0E in nearby_items(shape=0x0476, origin=local_10) */
while (!condition) {
local_06 = Item.getNpcNum(local_0E);
local_0A = (local_06 & 15);
local_08 = Item.getMapNum(local_0E);
local_08 = (((local_06 & 0x00E0) * 8) + local_08);
if (local_08 == 0) {
if (Item.create(local_0A, local_08, local_14) == 1) {
suspend;
}
}
/* loopnext */
}
}
}
/* word_to_dword */
/* pop_result */
return;
}

View file

@ -0,0 +1,106 @@
function trigger_slot_26() /* entry=469 class_id=0x0A17 slot=0x26 */
{
set_info(0x021B, 0);
local_12 = arg_12;
local_10 = arg_0A;
local_04 = (arg_10 & 3);
if (local_04 == 0) {
for local_0E in nearby_items(shape=arg_14, origin=local_10) {
/* loopnext */
}
}
else if (local_04 == 1) {
for local_0E in nearby_items(shape=arg_14, origin=local_10) {
/* loopnext */
}
}
else if (local_04 == 2) {
for local_0E in nearby_items(shape=arg_14, origin=local_10) {
/* loopnext */
}
}
else if (local_04 == 3) {
local_02 = (arg_0C & 7);
if (local_02 == 0) {
local_0C = (arg_0C / 8);
/* loop_selector local_0E in nearby_items(shape=0x0476, origin=local_10) */
while (!condition) {
if (Item.getQLo(local_0E) == arg_12) {
local_06 = Item.getNpcNum(local_0E);
local_0A = (local_06 & 15);
local_08 = Item.getMapNum(local_0E);
local_08 = (((local_06 & 0x00E0) * 8) + local_08);
FREE.slot_39(local_0C, local_0A, local_08, local_0E);
}
/* loopnext */
}
}
else if (local_02 == 1) {
local_0C = (arg_0C / 8);
/* loop_selector local_0E in nearby_items(shape=arg_14, origin=local_10) */
while (!condition) {
if (Item.getQLo(local_0E) == arg_12) {
if (local_0C == 31) {
suspend;
}
else {
local_0A = Item.getFrame(local_0E);
local_08 = Item.getShape(local_0E);
local_06 = (local_08 & 0x00FF);
local_08 = (local_08 & 0x0700);
local_08 = (local_08 / 8);
local_08 = (local_08 + local_0A);
suspend;
/* bit_not */
}
}
/* loopnext */
}
}
else if (local_02 == 2) {
local_06 = (arg_0C / 8);
/* loop_selector local_0E in nearby_items(shape=arg_14, origin=local_10) */
while (!condition) {
/* loopnext */
}
}
else if (local_02 == 3) {
for local_0E in nearby_items(shape=arg_14, origin=local_10) {
if (Item.getQLo(local_0E) == arg_12) {
local_06 = (arg_0C / 8);
spawn TRIGGER.slot_22(local_06, local_0E, arg_06);
}
/* loopnext */
}
}
else if (local_02 == 4) {
local_06 = (arg_0C / 8);
local_12 = (local_12 + local_06);
}
else if (local_02 == 5) {
local_06 = (arg_0C / 8);
local_12 = (local_12 - local_06);
}
else if (local_02 == 6) {
local_0C = (arg_0C / 8);
/* loop_selector local_0E in nearby_items(shape=0x0476, origin=local_10) */
while (!condition) {
if (Item.getQLo(local_0E) == arg_12) {
local_06 = Item.getNpcNum(local_0E);
local_0A = (local_06 & 15);
local_08 = Item.getMapNum(local_0E);
local_08 = (((local_06 & 0x00E0) * 8) + local_08);
if (local_08 == 0) {
if (Item.create(local_0A, local_08, local_14) == 1) {
suspend;
}
}
}
/* loopnext */
}
}
}
/* word_to_dword */
/* pop_result */
return;
}

View file

@ -0,0 +1,112 @@
function trigger_slot_27() /* entry=469 class_id=0x0A17 slot=0x27 */
{
set_info(0x021B, 0);
local_12 = arg_12;
local_10 = arg_0A;
local_04 = (arg_10 & 3);
if (local_04 == 0) {
for local_0E in nearby_items(family=1, origin=local_10) {
/* loopnext */
}
}
else if (local_04 == 1) {
for local_0E in nearby_items(family=1, origin=local_10) {
/* loopnext */
}
}
else if (local_04 == 2) {
for local_0E in nearby_items(family=1, origin=local_10) {
/* loopnext */
}
}
else if (local_04 == 3) {
local_02 = (arg_0C & 7);
if (local_02 == 0) {
local_0C = (arg_0C / 8);
/* loop_selector local_0E in nearby_items(shape=0x0476, origin=local_10) */
while (!condition) {
if (Item.getQLo(local_0E) == arg_12) {
local_06 = Item.getNpcNum(local_0E);
local_0A = (local_06 & 15);
local_08 = Item.getMapNum(local_0E);
local_08 = (((local_06 & 0x00E0) * 8) + local_08);
FREE.slot_39(local_0C, local_0A, local_08, local_0E);
}
/* loopnext */
}
}
else if (local_02 == 1) {
local_0C = (arg_0C / 8);
/* loop_selector local_0E in nearby_items(family=1, origin=local_10) */
while (!condition) {
if (Item.getQLo(local_0E) == arg_12) {
if (local_0C == 31) {
suspend;
}
else {
local_0A = Item.getFrame(local_0E);
local_08 = Item.getShape(local_0E);
local_06 = (local_08 & 0x00FF);
local_08 = (local_08 & 0x0700);
local_08 = (local_08 / 8);
local_08 = (local_08 + local_0A);
suspend;
/* bit_not */
}
}
/* loopnext */
}
}
else if (local_02 == 2) {
local_06 = (arg_0C / 8);
/* loop_selector local_0E in nearby_items(family=1, origin=local_10) */
while (!condition) {
/* loopnext */
}
}
else if (local_02 == 3) {
if (global[0x0022] == 100) {
local_14 = 32;
}
else {
local_14 = global[0x0022];
}
for local_0E in nearby_items(family=1, origin=local_10) {
if (Item.getQLo(local_0E) == arg_12) {
local_06 = (arg_0C / 8);
spawn TRIGGER.slot_22(local_06, local_0E, arg_06);
}
/* loopnext */
}
}
else if (local_02 == 4) {
local_06 = (arg_0C / 8);
local_12 = (local_12 + local_06);
}
else if (local_02 == 5) {
local_06 = (arg_0C / 8);
local_12 = (local_12 - local_06);
}
else if (local_02 == 6) {
local_0C = (arg_0C / 8);
/* loop_selector local_0E in nearby_items(shape=0x0476, origin=local_10) */
while (!condition) {
if (Item.getQLo(local_0E) == arg_12) {
local_06 = Item.getNpcNum(local_0E);
local_0A = (local_06 & 15);
local_08 = Item.getMapNum(local_0E);
local_08 = (((local_06 & 0x00E0) * 8) + local_08);
if (local_08 == 0) {
if (Item.create(local_0A, local_08, local_16) == 1) {
suspend;
}
}
}
/* loopnext */
}
}
}
/* word_to_dword */
/* pop_result */
return;
}

View file

@ -0,0 +1,98 @@
function trigger_slot_28() /* entry=469 class_id=0x0A17 slot=0x28 */
{
set_info(0x021B, 0);
local_12 = arg_12;
local_10 = arg_0A;
local_04 = (arg_10 & 3);
if (local_04 == 0) {
for local_0E in nearby_items(shape=arg_14, origin=local_10) {
/* loopnext */
}
}
else if (local_04 == 1) {
for local_0E in nearby_items(shape=arg_14, origin=local_10) {
/* loopnext */
}
}
else if (local_04 == 2) {
for local_0E in nearby_items(shape=arg_14, origin=local_10) {
/* loopnext */
}
}
else if (local_04 == 3) {
local_02 = (arg_0C & 7);
if (local_02 == 0) {
local_0C = (arg_0C / 8);
/* loop_selector local_0E in nearby_items(shape=0x0476, origin=local_10) */
while (!condition) {
local_06 = Item.getNpcNum(local_0E);
local_0A = (local_06 & 15);
local_08 = Item.getMapNum(local_0E);
local_08 = (((local_06 & 0x00E0) * 8) + local_08);
FREE.slot_39(local_0C, local_0A, local_08, local_0E);
/* loopnext */
}
}
else if (local_02 == 1) {
local_0C = (arg_0C / 8);
/* loop_selector local_0E in nearby_items(shape=arg_14, origin=local_10) */
while (!condition) {
if (local_0C == 31) {
suspend;
}
else {
local_0A = Item.getFrame(local_0E);
local_08 = Item.getShape(local_0E);
local_06 = (local_08 & 0x00FF);
local_08 = (local_08 & 0x0700);
local_08 = (local_08 / 8);
local_08 = (local_08 + local_0A);
suspend;
/* bit_not */
}
/* loopnext */
}
}
else if (local_02 == 2) {
local_06 = (arg_0C / 8);
/* loop_selector local_0E in nearby_items(shape=arg_14, origin=local_10) */
while (!condition) {
/* loopnext */
}
}
else if (local_02 == 3) {
for local_0E in nearby_items(shape=arg_14, origin=local_10) {
local_06 = (arg_0C / 8);
spawn TRIGGER.slot_22(local_06, local_0E, arg_06);
/* loopnext */
}
}
else if (local_02 == 4) {
local_06 = (arg_0C / 8);
local_12 = (local_12 + local_06);
}
else if (local_02 == 5) {
local_06 = (arg_0C / 8);
local_12 = (local_12 - local_06);
}
else if (local_02 == 6) {
local_0C = (arg_0C / 8);
/* loop_selector local_0E in nearby_items(shape=0x0476, origin=local_10) */
while (!condition) {
local_06 = Item.getNpcNum(local_0E);
local_0A = (local_06 & 15);
local_08 = Item.getMapNum(local_0E);
local_08 = (((local_06 & 0x00E0) * 8) + local_08);
if (local_08 == 0) {
if (Item.create(local_0A, local_08, local_14) == 1) {
suspend;
}
}
/* loopnext */
}
}
}
/* word_to_dword */
/* pop_result */
return;
}

View file

@ -0,0 +1,119 @@
function trigger_slot_29() /* entry=469 class_id=0x0A17 slot=0x29 */
{
set_info(0x021B, 0);
local_0E = arg_0A;
local_04 = (arg_10 & 3);
if (local_04 == 0) {
for local_10 in nearby_items(shape=arg_14, origin=local_0E) {
if (Intrinsic000D(local_10) == arg_12) {
local_06 = (arg_0C / 16);
local_08 = (arg_0C & 15);
if (local_06 == 0) {
local_12 = Actor.getNPCDataField0x4(local_10);
suspend;
spawn FREE.slot_3B(pid, 2, 0x00000000);
suspend;
local_14 = Actor.getNPCDataField0x4(local_10);
}
else {
local_16 = Actor.getNPCDataField0x4(local_10);
suspend;
spawn FREE.slot_3B(pid, 2, 0x00000000);
suspend;
if (Actor.isDead(local_10) == 1) {
return;
}
local_18 = 1;
while (local_18 > local_06) {
if (Actor.isDead(local_10) == 0) {
suspend;
}
spawn FREE.slot_3B(pid, 1, 0x00000000);
suspend;
local_18 = (1 + local_18);
}
local_1A = Actor.getNPCDataField0x4(local_10);
local_1C = Actor.getCurrentActivityNo(local_10);
}
}
/* loopnext */
}
return;
}
else if (local_04 == 1) {
for local_10 in nearby_items(shape=arg_14, origin=local_0E) {
/* loopnext */
}
return;
}
else if (local_04 == 2) {
for local_10 in nearby_items(shape=arg_14, origin=local_0E) {
/* loopnext */
}
return;
}
else if (local_04 == 3) {
local_02 = (arg_0C & 7);
local_06 = (arg_0C / 8);
if (local_02 == 0) {
for local_10 in nearby_items(shape=arg_14, origin=local_0E) {
if (Intrinsic000D(local_10) == arg_12) {
if (local_06 == 1) {
}
else if (local_06 == 2) {
}
else if (local_06 == 3) {
}
else if (local_06 == 4) {
}
}
/* loopnext */
}
}
else if (local_02 == 1) {
for local_10 in nearby_items(shape=arg_14, origin=local_0E) {
if (Intrinsic000D(local_10) == arg_12) {
spawn FREE.slot_3B(pid, 1, 0x00000000);
suspend;
}
/* loopnext */
}
}
else if (local_02 == 2) {
for local_10 in nearby_items(shape=arg_14, origin=local_0E) {
if (Intrinsic000D(local_10) == arg_12) {
spawn FREE.slot_3B(pid, 1, 0x00000000);
suspend;
}
/* loopnext */
}
}
else if (local_02 == 3) {
for local_10 in nearby_items(shape=arg_14, origin=local_0E) {
if (Intrinsic000D(local_10) == arg_12) {
spawn FREE.slot_3B(pid, 1, 0x00000000);
suspend;
}
/* loopnext */
}
}
else if (local_02 == 4) {
for local_10 in nearby_items(shape=arg_14, origin=local_0E) {
if (Intrinsic000D(local_10) == arg_12) {
local_1E = local_06;
}
/* loopnext */
}
}
else if (local_02 == 5) {
for local_10 in nearby_items(shape=arg_14, origin=local_0E) {
if (Intrinsic000D(local_10) == arg_12) {
spawn NPC.equip(local_06, local_10);
}
/* loopnext */
}
}
return;
}
return;
}

View file

@ -0,0 +1,100 @@
function trigger_slot_2A() /* entry=469 class_id=0x0A17 slot=0x2A */
{
set_info(0x021B, 0);
local_0E = arg_0A;
local_04 = (arg_10 & 3);
if (local_04 == 0) {
for local_10 in nearby_items(shape=arg_14, origin=local_0E) {
local_06 = (arg_0C / 16);
local_08 = (arg_0C & 15);
if (local_06 == 0) {
suspend;
spawn FREE.slot_3B(pid, 2, 0x00000000);
suspend;
}
else {
suspend;
spawn FREE.slot_3B(pid, 2, 0x00000000);
suspend;
if (Actor.isDead(local_10) == 1) {
return;
}
local_12 = 1;
while (local_12 > local_06) {
if (Actor.isDead(local_10)) {
suspend;
}
spawn FREE.slot_3B(pid, 1, 0x00000000);
suspend;
local_12 = (1 + local_12);
}
}
/* loopnext */
}
return;
}
else if (local_04 == 1) {
for local_10 in nearby_items(shape=arg_14, origin=local_0E) {
/* loopnext */
}
return;
}
else if (local_04 == 2) {
for local_10 in nearby_items(shape=arg_14, origin=local_0E) {
/* loopnext */
}
return;
}
else if (local_04 == 3) {
local_02 = (arg_0C & 7);
local_06 = (arg_0C / 8);
if (local_02 == 0) {
for local_10 in nearby_items(shape=arg_14, origin=local_0E) {
if (local_06 == 1) {
}
else if (local_06 == 2) {
}
else if (local_06 == 3) {
}
else if (local_06 == 4) {
}
/* loopnext */
}
}
else if (local_02 == 1) {
for local_10 in nearby_items(shape=arg_14, origin=local_0E) {
spawn FREE.slot_3B(pid, 1, 0x00000000);
suspend;
/* loopnext */
}
}
else if (local_02 == 2) {
for local_10 in nearby_items(shape=arg_14, origin=local_0E) {
spawn FREE.slot_3B(pid, 1, 0x00000000);
suspend;
/* loopnext */
}
}
else if (local_02 == 3) {
for local_10 in nearby_items(shape=arg_14, origin=local_0E) {
spawn FREE.slot_3B(pid, 1, 0x00000000);
suspend;
/* loopnext */
}
}
else if (local_02 == 4) {
for local_10 in nearby_items(shape=arg_14, origin=local_0E) {
local_14 = local_06;
/* loopnext */
}
}
else if (local_02 == 5) {
for local_10 in nearby_items(shape=arg_14, origin=local_0E) {
spawn NPC.equip(local_06, local_10);
/* loopnext */
}
}
return;
}
return;
}

View file

@ -0,0 +1,128 @@
function trigger_slot_2B() /* entry=469 class_id=0x0A17 slot=0x2B */
{
set_info(0x021B, 0);
local_0E = arg_0A;
local_04 = (arg_10 & 3);
if (local_04 == 0) {
for local_10 in nearby_items(family=6, origin=local_0E) {
if (!Item.isCrusTypeNPC(Item.getShape(local_10))) {
if (Intrinsic000D(local_10) == arg_12) {
local_06 = (arg_0C / 16);
local_08 = (arg_0C & 15);
if (local_06 == 0) {
suspend;
spawn FREE.slot_3B(pid, 2, 0x00000000);
suspend;
}
else {
suspend;
spawn FREE.slot_3B(pid, 2, 0x00000000);
suspend;
if (Actor.isDead(local_10) == 1) {
return;
}
local_12 = 1;
while (local_12 > local_06) {
if (Actor.isDead(local_10) == 0) {
suspend;
}
spawn FREE.slot_3B(pid, 1, 0x00000000);
suspend;
local_12 = (1 + local_12);
}
}
}
}
/* loopnext */
}
return;
}
else if (local_04 == 1) {
for local_10 in nearby_items(family=6, origin=local_0E) {
/* loopnext */
}
return;
}
else if (local_04 == 2) {
for local_10 in nearby_items(family=6, origin=local_0E) {
/* loopnext */
}
return;
}
else if (local_04 == 3) {
local_02 = (arg_0C & 7);
local_06 = (arg_0C / 8);
if (local_02 == 0) {
for local_10 in nearby_items(family=6, origin=local_0E) {
if (!Item.isCrusTypeNPC(Item.getShape(local_10))) {
if (Intrinsic000D(local_10) == arg_12) {
if (local_06 == 1) {
}
else if (local_06 == 2) {
}
else if (local_06 == 3) {
}
else if (local_06 == 4) {
}
}
}
/* loopnext */
}
}
else if (local_02 == 1) {
for local_10 in nearby_items(family=6, origin=local_0E) {
if (!Item.isCrusTypeNPC(Item.getShape(local_10))) {
if (Intrinsic000D(local_10) == arg_12) {
spawn FREE.slot_3B(pid, 1, 0x00000000);
suspend;
}
}
/* loopnext */
}
}
else if (local_02 == 2) {
for local_10 in nearby_items(family=6, origin=local_0E) {
if (!Item.isCrusTypeNPC(Item.getShape(local_10))) {
if (Intrinsic000D(local_10) == arg_12) {
spawn FREE.slot_3B(pid, 1, 0x00000000);
suspend;
}
}
/* loopnext */
}
}
else if (local_02 == 3) {
for local_10 in nearby_items(family=6, origin=local_0E) {
if (!Item.isCrusTypeNPC(Item.getShape(local_10))) {
if (Intrinsic000D(local_10) == arg_12) {
spawn FREE.slot_3B(pid, 1, 0x00000000);
suspend;
}
}
/* loopnext */
}
}
else if (local_02 == 4) {
for local_10 in nearby_items(family=6, origin=local_0E) {
if (!Item.isCrusTypeNPC(Item.getShape(local_10))) {
if (Intrinsic000D(local_10) == arg_12) {
local_14 = local_06;
}
}
/* loopnext */
}
}
else if (local_02 == 5) {
for local_10 in nearby_items(family=6, origin=local_0E) {
if (!Item.isCrusTypeNPC(Item.getShape(local_10))) {
if (Intrinsic000D(local_10) == arg_12) {
spawn NPC.equip(local_06, local_10);
}
}
/* loopnext */
}
}
return;
}
return;
}