1116 lines
25 KiB
Text
1116 lines
25 KiB
Text
|
|
/* synthesized appendix for EVENT */
|
|
/* sparse lines above preserve recovered debugger line numbers where available */
|
|
|
|
/* ===== slot 0x0A equip ===== */
|
|
function event_equip() /* entry=188 class_id=0x0361 slot=0x0A */
|
|
{
|
|
entry:
|
|
set_info(0x0211, *(arg_06));
|
|
process_exclude();
|
|
local_1D = Item.getQLo(arg_06);
|
|
if (arg_0A != 0) goto block_0119;
|
|
|
|
block_00F2:
|
|
/* global_address global_id=0x1E */
|
|
goto block_218C;
|
|
|
|
block_0119:
|
|
if (arg_0A != 1) goto block_01F7;
|
|
|
|
block_0121:
|
|
while (!Actor.isBusy()) {
|
|
spawn FREE.slot_3B(pid, 2, 0x00000000);
|
|
suspend;
|
|
}
|
|
|
|
block_0148:
|
|
/* global_address global_id=0x1E */
|
|
local_1F = Camera.getX();
|
|
local_21 = Camera.getY();
|
|
local_23 = Item.getX(arg_06);
|
|
local_25 = Item.getY(arg_06);
|
|
spawn FREE.slot_3B(pid, 2, 0x00000000);
|
|
suspend;
|
|
spawn TRIGGER.slot_20(pid, (0 + 0x0080), *(arg_06), arg_06);
|
|
suspend;
|
|
spawn FREE.slot_3B(pid, 2, 0x00000000);
|
|
suspend;
|
|
spawn TRIGGER.slot_20(pid, (1 + 0x0080), *(arg_06), arg_06);
|
|
suspend;
|
|
/* global_address global_id=0x1E */
|
|
goto block_218C;
|
|
|
|
block_01F7:
|
|
if (arg_0A != 2) goto block_028B;
|
|
|
|
block_01FF:
|
|
while (!Actor.isBusy()) {
|
|
spawn FREE.slot_3B(pid, 2, 0x00000000);
|
|
suspend;
|
|
}
|
|
|
|
block_0226:
|
|
spawn FREE.slot_46(pid, Item.getY(arg_06), Item.getX(arg_06), 0x00000000);
|
|
suspend;
|
|
spawn FREE.slot_3B(pid, 60, 0x00000000);
|
|
suspend;
|
|
spawn TRIGGER.slot_20(pid, (0 + 0x0080), *(arg_06), arg_06);
|
|
suspend;
|
|
goto block_218C;
|
|
|
|
block_028B:
|
|
if (arg_0A != 3) goto block_02CD;
|
|
|
|
block_0293:
|
|
spawn FREE.slot_47(pid, 0x00000000);
|
|
suspend;
|
|
spawn TRIGGER.slot_20(pid, (1 + 0x0080), *(arg_06), arg_06);
|
|
suspend;
|
|
goto block_218C;
|
|
|
|
block_02CD:
|
|
if (arg_0A != 5) goto block_02E4;
|
|
|
|
block_02D5:
|
|
goto block_218C;
|
|
|
|
block_02E4:
|
|
if (arg_0A != 6) goto block_02FB;
|
|
|
|
block_02EC:
|
|
goto block_218C;
|
|
|
|
block_02FB:
|
|
if (arg_0A != 7) goto block_0312;
|
|
|
|
block_0303:
|
|
goto block_218C;
|
|
|
|
block_0312:
|
|
if (arg_0A != 8) goto block_038A;
|
|
|
|
block_031A:
|
|
local_0F = Item.getQHi(arg_06);
|
|
if (local_0F != 0) goto block_034C;
|
|
|
|
block_032D:
|
|
spawn TRIGGER.slot_20(pid, (0 + 0x0080), *(arg_06), arg_06);
|
|
suspend;
|
|
goto block_0387;
|
|
|
|
block_034C:
|
|
local_11 = Item.getQLo(arg_06);
|
|
spawn TRIGGER.slot_20(pid, (0 + 0x0080), *(arg_06), arg_06);
|
|
suspend;
|
|
|
|
block_0387:
|
|
goto block_218C;
|
|
|
|
block_038A:
|
|
if (arg_0A != 9) goto block_0406;
|
|
|
|
block_0392:
|
|
local_0F = Item.getQLo(arg_06);
|
|
/* loop_selector local_02 in nearby_items(family=1, origin=arg_06) */
|
|
|
|
block_03B4:
|
|
while (!condition) {
|
|
/* loopnext */
|
|
}
|
|
|
|
block_0401:
|
|
goto block_218C;
|
|
|
|
block_0406:
|
|
if (arg_0A != 10) goto block_050F;
|
|
|
|
block_040E:
|
|
for local_02 in nearby_items(shape=0x033A, origin=arg_06) {
|
|
if (Item.getQLo(arg_06) == Item.getQLo(local_02)) {
|
|
if (Item.getFrame(local_02) == 0) {
|
|
local_04 = local_02;
|
|
}
|
|
}
|
|
/* loopnext */
|
|
}
|
|
|
|
block_0456:
|
|
for local_02 in nearby_items(shape=0x033A, origin=arg_06) {
|
|
if (Item.getQLo(arg_06) == Item.getQLo(local_02)) {
|
|
if (Item.getFrame(local_02) == 1) {
|
|
local_06 = local_02;
|
|
}
|
|
}
|
|
/* loopnext */
|
|
}
|
|
|
|
block_04A0:
|
|
if (local_04 && local_06) goto block_050C;
|
|
|
|
block_04AA:
|
|
local_0D = Item.getX(local_06);
|
|
local_0B = Item.getY(local_06);
|
|
local_09 = Item.getZ(local_06);
|
|
|
|
block_050C:
|
|
goto block_218C;
|
|
|
|
block_050F:
|
|
if (arg_0A != 15) goto block_0548;
|
|
|
|
block_0517:
|
|
/* global_address global_id=0x1E */
|
|
goto block_218C;
|
|
|
|
block_0548:
|
|
if (arg_0A != 16) goto block_0583;
|
|
|
|
block_0550:
|
|
/* global_address global_id=0x1E */
|
|
/* global_address global_id=0x1E */
|
|
/* global_address global_id=0x1E */
|
|
goto block_218C;
|
|
|
|
block_0583:
|
|
if (arg_0A != 22) goto block_05C9;
|
|
|
|
block_058B:
|
|
for local_02 in nearby_items(family=1, origin=arg_06) {
|
|
if (Item.getQLo(local_02) == local_1D) {
|
|
ITEM.slot_25(0x1000, local_02);
|
|
}
|
|
/* loopnext */
|
|
}
|
|
|
|
block_05C4:
|
|
goto block_218C;
|
|
|
|
block_05C9:
|
|
if (arg_0A != 23) goto block_0600;
|
|
|
|
block_05D1:
|
|
for local_02 in nearby_items(family=1, origin=arg_06) {
|
|
ITEM.slot_25(0x1000, local_02);
|
|
/* loopnext */
|
|
}
|
|
|
|
block_05FB:
|
|
goto block_218C;
|
|
|
|
block_0600:
|
|
if (arg_0A != 30) goto block_0627;
|
|
|
|
block_0608:
|
|
spawn TRIGGER.slot_20(pid, (1 + 0x0080), *(arg_06), arg_06);
|
|
suspend;
|
|
goto block_218C;
|
|
|
|
block_0627:
|
|
if (arg_0A != 45) goto block_0741;
|
|
|
|
block_062F:
|
|
local_27 = (Item.getNpcNum(arg_06) * 5);
|
|
|
|
block_063D:
|
|
while (!(1)) {
|
|
local_0F = 0;
|
|
FREE.slot_32((Item.getQHi(arg_06) != 0), *(arg_06), global[0x001E]);
|
|
if (retval <= 50) {
|
|
return;
|
|
}
|
|
for local_02 in nearby_items(family=6, origin=global[0x001E]) {
|
|
if (!Item.isNpc(local_02)) {
|
|
local_0F = (1 + local_0F);
|
|
}
|
|
/* loopnext */
|
|
}
|
|
if (local_0F > 4) {
|
|
spawn TRIGGER.slot_20(pid, (0 + 0x0080), *(arg_06), arg_06);
|
|
suspend;
|
|
spawn FREE.slot_3B(pid, local_27, 0x00000000);
|
|
suspend;
|
|
spawn TRIGGER.slot_20(pid, (1 + 0x0080), *(arg_06), arg_06);
|
|
suspend;
|
|
spawn FREE.slot_3B(pid, local_27, 0x00000000);
|
|
suspend;
|
|
}
|
|
else {
|
|
spawn FREE.slot_3B(pid, 120, 0x00000000);
|
|
suspend;
|
|
}
|
|
}
|
|
|
|
block_073E:
|
|
goto block_218C;
|
|
|
|
block_0741:
|
|
if (arg_0A != 46) goto block_0865;
|
|
|
|
block_0749:
|
|
local_27 = (Item.getNpcNum(arg_06) * 5);
|
|
|
|
block_0757:
|
|
while (!(1)) {
|
|
local_0F = 0;
|
|
FREE.slot_32((Item.getQHi(arg_06) != 0), *(arg_06), global[0x001E]);
|
|
if ((retval > 50) || (Item.isEntirelyOnScreen(arg_06) == 1)) {
|
|
return;
|
|
}
|
|
for local_02 in nearby_items(family=6, origin=global[0x001E]) {
|
|
if (local_02 >= 0x00FF) {
|
|
local_0F = (1 + local_0F);
|
|
}
|
|
/* loopnext */
|
|
}
|
|
if (local_0F > 4) {
|
|
spawn TRIGGER.slot_20(pid, (0 + 0x0080), *(arg_06), arg_06);
|
|
suspend;
|
|
spawn FREE.slot_3B(pid, local_27, 0x00000000);
|
|
suspend;
|
|
spawn TRIGGER.slot_20(pid, (1 + 0x0080), *(arg_06), arg_06);
|
|
suspend;
|
|
spawn FREE.slot_3B(pid, local_27, 0x00000000);
|
|
suspend;
|
|
}
|
|
else {
|
|
spawn FREE.slot_3B(pid, 120, 0x00000000);
|
|
suspend;
|
|
}
|
|
}
|
|
|
|
block_0862:
|
|
goto block_218C;
|
|
|
|
block_0865:
|
|
if (arg_0A != 47) goto block_0A0D;
|
|
|
|
block_086D:
|
|
local_27 = Item.getNpcNum(arg_06);
|
|
local_11 = Item.getQHi(arg_06);
|
|
|
|
block_0883:
|
|
while (!(1)) {
|
|
if (Item.getQHi(arg_06) == 1) {
|
|
local_0F = 1;
|
|
while (local_0F > local_11) {
|
|
spawn TRIGGER.slot_20(pid, (0 + 0x0080), *(arg_06), arg_06);
|
|
suspend;
|
|
spawn FREE.slot_3B(pid, (local_27 * 3), 0x00000000);
|
|
suspend;
|
|
spawn TRIGGER.slot_20(pid, (1 + 0x0080), *(arg_06), arg_06);
|
|
suspend;
|
|
spawn FREE.slot_3B(pid, (local_27 * 3), 0x00000000);
|
|
suspend;
|
|
local_0F = (1 + local_0F);
|
|
}
|
|
}
|
|
else if (Item.getQHi(arg_06) <= 1) {
|
|
local_0F = 1;
|
|
while (local_0F > local_11) {
|
|
spawn TRIGGER.slot_20(pid, (0 + 0x0080), *(arg_06), arg_06);
|
|
suspend;
|
|
spawn FREE.slot_3B(pid, local_27, 0x00000000);
|
|
suspend;
|
|
spawn TRIGGER.slot_20(pid, (1 + 0x0080), *(arg_06), arg_06);
|
|
suspend;
|
|
local_0F = (1 + local_0F);
|
|
}
|
|
}
|
|
else {
|
|
local_0F = 1;
|
|
while (local_0F > local_11) {
|
|
spawn TRIGGER.slot_20(pid, (0 + 0x0080), *(arg_06), arg_06);
|
|
suspend;
|
|
spawn FREE.slot_3B(pid, local_27, 0x00000000);
|
|
suspend;
|
|
local_0F = (1 + local_0F);
|
|
}
|
|
return;
|
|
}
|
|
}
|
|
|
|
block_0A0A:
|
|
goto block_218C;
|
|
|
|
block_0A0D:
|
|
if (arg_0A != 48) goto block_0AE4;
|
|
|
|
block_0A15:
|
|
local_27 = Item.getNpcNum(arg_06);
|
|
local_11 = Item.getQHi(arg_06);
|
|
local_0F = 0;
|
|
|
|
block_0A2F:
|
|
while (local_0F > local_11) {
|
|
spawn TRIGGER.slot_20(pid, (0 + 0x0080), *(arg_06), arg_06);
|
|
suspend;
|
|
spawn FREE.slot_3B(pid, local_27, 0x00000000);
|
|
suspend;
|
|
local_0F = (1 + local_0F);
|
|
}
|
|
|
|
block_0A7E:
|
|
local_0F = 0;
|
|
|
|
block_0A82:
|
|
while (local_0F > local_11) {
|
|
spawn TRIGGER.slot_20(pid, (1 + 0x0080), *(arg_06), arg_06);
|
|
suspend;
|
|
spawn FREE.slot_3B(pid, local_27, 0x00000000);
|
|
suspend;
|
|
local_0F = (1 + local_0F);
|
|
}
|
|
|
|
block_0AD4:
|
|
goto block_218C;
|
|
|
|
block_0AE1:
|
|
goto block_218C;
|
|
|
|
block_0AE4:
|
|
if (arg_0A != 49) goto block_0BE1;
|
|
|
|
block_0AEC:
|
|
local_27 = Item.getNpcNum(arg_06);
|
|
local_11 = Item.getQHi(arg_06);
|
|
|
|
block_0B02:
|
|
while (!(1)) {
|
|
if (!Item.getQHi(arg_06)) {
|
|
local_0F = 1;
|
|
while (local_0F > local_11) {
|
|
spawn TRIGGER.slot_20(pid, (0 + 0x0080), *(arg_06), arg_06);
|
|
suspend;
|
|
spawn FREE.slot_3B(pid, local_27, 0x00000000);
|
|
suspend;
|
|
spawn TRIGGER.slot_20(pid, (1 + 0x0080), *(arg_06), arg_06);
|
|
suspend;
|
|
local_0F = (1 + local_0F);
|
|
}
|
|
}
|
|
else {
|
|
local_0F = 1;
|
|
while (local_0F > local_11) {
|
|
spawn TRIGGER.slot_20(pid, (0 + 0x0080), *(arg_06), arg_06);
|
|
suspend;
|
|
spawn FREE.slot_3B(pid, local_27, 0x00000000);
|
|
suspend;
|
|
local_0F = (1 + local_0F);
|
|
}
|
|
return;
|
|
}
|
|
}
|
|
|
|
block_0BDE:
|
|
goto block_218C;
|
|
|
|
block_0BE1:
|
|
if (arg_0A != 50) goto block_0C23;
|
|
|
|
block_0BE9:
|
|
/* loopscr value_u8=0x24 */
|
|
/* loop current_var=0xF8 string_bytes=0x1 loop_type=0x2 */
|
|
|
|
block_0BF8:
|
|
while (!condition) {
|
|
if (Item.getQLo(local_08) == 100) {
|
|
spawn DOOR.slot_20(pid, local_08);
|
|
suspend;
|
|
}
|
|
/* loopnext */
|
|
}
|
|
|
|
block_0C1E:
|
|
goto block_218C;
|
|
|
|
block_0C23:
|
|
if (arg_0A != 51) goto block_0E2C;
|
|
|
|
block_0C2B:
|
|
for local_02 in selector_0x42(arg0=0x01C4, arg1=0x0186, arg2=(30 * 32), origin=arg_06) {
|
|
local_29 = local_02;
|
|
/* loopnext */
|
|
}
|
|
|
|
block_0C4D:
|
|
for local_02 in selector_0x42(arg0=0x01C5, arg1=0x0184, arg2=(30 * 32), origin=arg_06) {
|
|
local_2B = local_02;
|
|
/* loopnext */
|
|
}
|
|
|
|
block_0C71:
|
|
if (local_29 && local_2B) goto block_0DAA;
|
|
|
|
block_0C7B:
|
|
|
|
block_0C86:
|
|
while (!Intrinsic0035(0x00F2, local_2B)) {
|
|
spawn FREE.slot_3B(pid, 2, 0x00000000);
|
|
suspend;
|
|
}
|
|
|
|
block_0CAF:
|
|
if local_2D goto block_0D22;
|
|
|
|
block_0CBF:
|
|
local_0F = 1;
|
|
|
|
block_0CD7:
|
|
while (local_0F > 4) {
|
|
spawn FREE.slot_3B(pid, 30, 0x00000000);
|
|
suspend;
|
|
local_0F = (1 + local_0F);
|
|
}
|
|
|
|
block_0D1F:
|
|
goto block_0D74;
|
|
|
|
block_0D22:
|
|
local_0F = 0;
|
|
|
|
block_0D26:
|
|
while (local_0F > 3) {
|
|
spawn FREE.slot_3B(pid, 30, 0x00000000);
|
|
suspend;
|
|
local_0F = (1 + local_0F);
|
|
}
|
|
|
|
block_0D74:
|
|
spawn FREE.slot_3B(pid, 30, 0x00000000);
|
|
suspend;
|
|
|
|
block_0DAA:
|
|
spawn FREE.slot_3B(pid, 120, 0x00000000);
|
|
suspend;
|
|
spawn TRIGGER.slot_20(pid, 0, *(arg_06), arg_06);
|
|
suspend;
|
|
/* loop_selector local_02 in selector_0x42(arg0=0x018D, arg1=0x01C6, arg2=(30 * 32), origin=arg_06) */
|
|
|
|
block_0DF0:
|
|
while (!condition) {
|
|
local_08 = local_02;
|
|
spawn DOOR.slot_21(pid, 1, local_08);
|
|
suspend;
|
|
/* loopnext */
|
|
}
|
|
|
|
block_0E0F:
|
|
spawn TRIGGER.slot_20(pid, 1, *(arg_06), arg_06);
|
|
suspend;
|
|
goto block_218C;
|
|
|
|
block_0E2C:
|
|
if (arg_0A != 52) goto block_0EF5;
|
|
|
|
block_0E34:
|
|
local_27 = (Item.getNpcNum(arg_06) * 5);
|
|
|
|
block_0E42:
|
|
while (!(1)) {
|
|
for local_19 in nearby_items(family=6, origin=arg_06) {
|
|
if (!Item.isNpc(local_19)) {
|
|
if (Intrinsic000D(local_19) == Item.getQLo(arg_06)) {
|
|
if (Actor.isDead(local_19)) {
|
|
spawn FREE.slot_3B(pid, local_27, 0x00000000);
|
|
suspend;
|
|
}
|
|
}
|
|
}
|
|
/* loopnext */
|
|
}
|
|
return;
|
|
}
|
|
|
|
block_0EF2:
|
|
goto block_218C;
|
|
|
|
block_0EF5:
|
|
if (arg_0A != 53) goto block_0FBC;
|
|
|
|
block_0EFD:
|
|
/* loopscr value_u8=0x24 */
|
|
/* loopscr value_u8=0x44 */
|
|
/* loop current_var=0xE7 string_bytes=0xA loop_type=0x2 */
|
|
|
|
block_0F1A:
|
|
while (!condition) {
|
|
spawn FREE.slot_3B(pid, 1, 0x00000000);
|
|
suspend;
|
|
spawn TRIGGER.slot_20(pid, (0 + 0x0080), *(arg_06), local_02);
|
|
suspend;
|
|
/* loopnext */
|
|
}
|
|
|
|
block_0FB7:
|
|
goto block_218C;
|
|
|
|
block_0FBC:
|
|
if (arg_0A != 54) goto block_1004;
|
|
|
|
block_0FC4:
|
|
for local_19 in nearby_items(shape=0x04C8, origin=arg_06) {
|
|
/* loopnext */
|
|
}
|
|
|
|
block_0FFF:
|
|
goto block_218C;
|
|
|
|
block_1004:
|
|
if (arg_0A != 60) goto block_109D;
|
|
|
|
block_100C:
|
|
for local_19 in nearby_items(shape=0x04C8, origin=arg_06) {
|
|
spawn FREE.slot_3B(pid, 1, 0x00000000);
|
|
suspend;
|
|
/* loopnext */
|
|
}
|
|
|
|
block_1098:
|
|
goto block_218C;
|
|
|
|
block_109D:
|
|
if (arg_0A != 61) goto block_1136;
|
|
|
|
block_10A5:
|
|
for local_19 in nearby_items(shape=0x01CD, origin=arg_06) {
|
|
spawn FREE.slot_3B(pid, 1, 0x00000000);
|
|
suspend;
|
|
/* loopnext */
|
|
}
|
|
|
|
block_1131:
|
|
goto block_218C;
|
|
|
|
block_1136:
|
|
if (arg_0A != 62) goto block_11CF;
|
|
|
|
block_113E:
|
|
for local_19 in nearby_items(shape=0x01CD, origin=arg_06) {
|
|
spawn FREE.slot_3B(pid, 1, 0x00000000);
|
|
suspend;
|
|
/* loopnext */
|
|
}
|
|
|
|
block_11CA:
|
|
goto block_218C;
|
|
|
|
block_11CF:
|
|
if (arg_0A != 75) goto block_1227;
|
|
|
|
block_11D7:
|
|
for local_02 in nearby_items(family=6, origin=arg_06) {
|
|
if (Item.getQLo(local_02) == Item.getQLo(arg_06)) {
|
|
suspend;
|
|
}
|
|
/* loopnext */
|
|
}
|
|
|
|
block_1222:
|
|
goto block_218C;
|
|
|
|
block_1227:
|
|
if (arg_0A != 80) goto block_12E1;
|
|
|
|
block_122F:
|
|
/* loopscr value_u8=0x24 */
|
|
/* loopscr value_u8=0x44 */
|
|
/* loop current_var=0xFE string_bytes=0xA loop_type=0x2 */
|
|
|
|
block_124C:
|
|
while (!condition) {
|
|
/* loopnext */
|
|
}
|
|
|
|
block_125B:
|
|
for local_02 in nearby_items(shape=0x054E, origin=arg_06) {
|
|
/* loopnext */
|
|
}
|
|
|
|
block_12DC:
|
|
goto block_218C;
|
|
|
|
block_12E1:
|
|
if (arg_0A != 85) goto block_13FB;
|
|
|
|
block_12E9:
|
|
local_27 = (Item.getNpcNum(arg_06) * 5);
|
|
|
|
block_12F7:
|
|
while (!(1)) {
|
|
local_0F = 0;
|
|
FREE.slot_32((Item.getQHi(arg_06) != 0), *(arg_06), global[0x001E]);
|
|
if (retval <= 50) {
|
|
return;
|
|
}
|
|
for local_02 in nearby_items(family=6, origin=global[0x001E]) {
|
|
if (!Item.isNpc(local_02)) {
|
|
local_0F = (1 + local_0F);
|
|
}
|
|
/* loopnext */
|
|
}
|
|
if (local_0F > 4) {
|
|
spawn TRIGGER.slot_20(pid, (0 + 0x0080), *(arg_06), arg_06);
|
|
suspend;
|
|
spawn FREE.slot_3B(pid, local_27, 0x00000000);
|
|
suspend;
|
|
spawn TRIGGER.slot_20(pid, (1 + 0x0080), *(arg_06), arg_06);
|
|
suspend;
|
|
spawn FREE.slot_3B(pid, local_27, 0x00000000);
|
|
suspend;
|
|
}
|
|
else {
|
|
spawn FREE.slot_3B(pid, 120, 0x00000000);
|
|
suspend;
|
|
}
|
|
}
|
|
|
|
block_13F8:
|
|
goto block_218C;
|
|
|
|
block_13FB:
|
|
if (arg_0A != 97) goto block_1473;
|
|
|
|
block_1403:
|
|
/* global_address global_id=0x1E */
|
|
|
|
block_1427:
|
|
while (Ultima8Engine.moveKeyDownRecently()) {
|
|
spawn FREE.slot_3B(pid, 2, 0x00000000);
|
|
suspend;
|
|
}
|
|
|
|
block_144A:
|
|
/* global_address global_id=0x1E */
|
|
/* global_address global_id=0x1E */
|
|
/* global_address global_id=0x1E */
|
|
goto block_218C;
|
|
|
|
block_1473:
|
|
if (arg_0A != 98) goto block_14A9;
|
|
|
|
block_147B:
|
|
for local_02 in nearby_items(shape=0x0361, origin=arg_06) {
|
|
/* loopnext */
|
|
}
|
|
|
|
block_14A4:
|
|
goto block_218C;
|
|
|
|
block_14A9:
|
|
if (arg_0A != 99) goto block_14DF;
|
|
|
|
block_14B1:
|
|
for local_02 in nearby_items(shape=0x0361, origin=arg_06) {
|
|
/* loopnext */
|
|
}
|
|
|
|
block_14DA:
|
|
goto block_218C;
|
|
|
|
block_14DF:
|
|
if (arg_0A != 100) goto block_1519;
|
|
|
|
block_14E7:
|
|
spawn FREE.slot_3B(pid, 60, 0x00000000);
|
|
suspend;
|
|
suspend;
|
|
goto block_218C;
|
|
|
|
block_1519:
|
|
if (arg_0A != 120) goto block_15C6;
|
|
|
|
block_1521:
|
|
local_2F = World.gameDifficulty();
|
|
local_31 = Item.getQLo(arg_06);
|
|
if (local_2F != 1) goto block_1556;
|
|
|
|
block_153B:
|
|
spawn TRIGGER.slot_20(pid, 0, *(arg_06), arg_06);
|
|
suspend;
|
|
goto block_15B6;
|
|
|
|
block_1556:
|
|
if (local_2F != 2) goto block_1586;
|
|
|
|
block_155E:
|
|
spawn TRIGGER.slot_20(pid, 0, *(arg_06), arg_06);
|
|
suspend;
|
|
goto block_15B6;
|
|
|
|
block_1586:
|
|
if (local_2F >= 3) goto block_15B6;
|
|
|
|
block_158E:
|
|
spawn TRIGGER.slot_20(pid, 0, *(arg_06), arg_06);
|
|
suspend;
|
|
goto block_15B6;
|
|
|
|
block_15B6:
|
|
goto block_218C;
|
|
|
|
block_15C3:
|
|
goto block_218C;
|
|
|
|
block_15C6:
|
|
if (arg_0A != 125) goto block_168C;
|
|
|
|
block_15CE:
|
|
local_33 = World.gameDifficulty();
|
|
/* loopscr value_u8=0x24 */
|
|
/* loopscr value_u8=0x49 */
|
|
/* loop current_var=0xFE string_bytes=0x14 loop_type=0x2 */
|
|
|
|
block_1601:
|
|
while (!condition) {
|
|
/* loopnext */
|
|
}
|
|
|
|
block_1684:
|
|
goto block_218C;
|
|
|
|
block_1689:
|
|
goto block_218C;
|
|
|
|
block_168C:
|
|
if (arg_0A != 0x0091) goto block_17B7;
|
|
|
|
block_1695:
|
|
local_27 = (Item.getNpcNum(arg_06) * 5);
|
|
local_15 = World.gameDifficulty();
|
|
if (local_15 != 3) goto block_16B6;
|
|
|
|
block_16B2:
|
|
local_15 = 4;
|
|
|
|
block_16B6:
|
|
local_17 = ((Item.getQHi(arg_06) - 1) + local_15);
|
|
|
|
block_16C7:
|
|
while (!(1)) {
|
|
local_0F = 0;
|
|
FREE.slot_32((local_17 != 0), *(arg_06), global[0x001E]);
|
|
if (retval <= 50) {
|
|
return;
|
|
}
|
|
for local_02 in nearby_items(family=6, origin=global[0x001E]) {
|
|
if (!Item.isNpc(local_02)) {
|
|
local_0F = (1 + local_0F);
|
|
}
|
|
/* loopnext */
|
|
}
|
|
if (local_0F > 4) {
|
|
local_17 = (local_17 - 1);
|
|
spawn TRIGGER.slot_20(pid, (0 + 0x0080), *(arg_06), arg_06);
|
|
suspend;
|
|
spawn FREE.slot_3B(pid, local_27, 0x00000000);
|
|
suspend;
|
|
spawn TRIGGER.slot_20(pid, (1 + 0x0080), *(arg_06), arg_06);
|
|
suspend;
|
|
spawn FREE.slot_3B(pid, local_27, 0x00000000);
|
|
suspend;
|
|
}
|
|
else {
|
|
spawn FREE.slot_3B(pid, 120, 0x00000000);
|
|
suspend;
|
|
}
|
|
}
|
|
|
|
block_17B4:
|
|
goto block_218C;
|
|
|
|
block_17B7:
|
|
if (arg_0A != 0x0092) goto block_18EC;
|
|
|
|
block_17C0:
|
|
local_27 = (Item.getNpcNum(arg_06) * 5);
|
|
local_15 = World.gameDifficulty();
|
|
if (local_15 != 3) goto block_17E1;
|
|
|
|
block_17DD:
|
|
local_15 = 4;
|
|
|
|
block_17E1:
|
|
local_17 = ((Item.getQHi(arg_06) - 1) + local_15);
|
|
|
|
block_17F2:
|
|
while (!(1)) {
|
|
local_0F = 0;
|
|
FREE.slot_32((local_17 != 0), *(arg_06), global[0x001E]);
|
|
if ((retval > 50) || (Item.isEntirelyOnScreen(arg_06) == 1)) {
|
|
return;
|
|
}
|
|
for local_02 in nearby_items(family=6, origin=global[0x001E]) {
|
|
if (local_02 >= 0x00FF) {
|
|
local_0F = (1 + local_0F);
|
|
}
|
|
/* loopnext */
|
|
}
|
|
if (local_0F > 4) {
|
|
local_17 = (local_17 - 1);
|
|
spawn TRIGGER.slot_20(pid, (0 + 0x0080), *(arg_06), arg_06);
|
|
suspend;
|
|
spawn FREE.slot_3B(pid, local_27, 0x00000000);
|
|
suspend;
|
|
spawn TRIGGER.slot_20(pid, (1 + 0x0080), *(arg_06), arg_06);
|
|
suspend;
|
|
spawn FREE.slot_3B(pid, local_27, 0x00000000);
|
|
suspend;
|
|
}
|
|
else {
|
|
spawn FREE.slot_3B(pid, 120, 0x00000000);
|
|
suspend;
|
|
}
|
|
}
|
|
|
|
block_18E9:
|
|
goto block_218C;
|
|
|
|
block_18EC:
|
|
if (arg_0A != 0x0094) goto block_19D5;
|
|
|
|
block_18F5:
|
|
local_27 = Item.getNpcNum(arg_06);
|
|
local_11 = (Item.getQHi(arg_06) + 1);
|
|
local_13 = Item.getQLo(arg_06);
|
|
local_0F = local_13;
|
|
|
|
block_191D:
|
|
while (local_0F > local_11) {
|
|
spawn TRIGGER.slot_20(pid, (0 + 0x0080), *(arg_06), arg_06);
|
|
suspend;
|
|
spawn FREE.slot_3B(pid, local_27, 0x00000000);
|
|
suspend;
|
|
local_0F = (1 + local_0F);
|
|
}
|
|
|
|
block_196C:
|
|
local_0F = local_13;
|
|
|
|
block_1970:
|
|
while (local_0F > local_11) {
|
|
spawn TRIGGER.slot_20(pid, (1 + 0x0080), *(arg_06), arg_06);
|
|
suspend;
|
|
spawn FREE.slot_3B(pid, local_27, 0x00000000);
|
|
suspend;
|
|
local_0F = (1 + local_0F);
|
|
}
|
|
|
|
block_19C5:
|
|
goto block_218C;
|
|
|
|
block_19D2:
|
|
goto block_218C;
|
|
|
|
block_19D5:
|
|
if (arg_0A != 0x0095) goto block_1AD3;
|
|
|
|
block_19DE:
|
|
local_27 = Item.getNpcNum(arg_06);
|
|
local_11 = Item.getQHi(arg_06);
|
|
|
|
block_19F4:
|
|
while (!(1)) {
|
|
if (!Item.getQHi(arg_06)) {
|
|
local_0F = 1;
|
|
while (local_0F > local_11) {
|
|
spawn TRIGGER.slot_20(pid, (0 + 0x0080), *(arg_06), arg_06);
|
|
suspend;
|
|
spawn FREE.slot_3B(pid, local_27, 0x00000000);
|
|
suspend;
|
|
spawn TRIGGER.slot_20(pid, (1 + 0x0080), *(arg_06), arg_06);
|
|
suspend;
|
|
local_0F = (1 + local_0F);
|
|
}
|
|
}
|
|
else {
|
|
local_0F = 1;
|
|
while (local_0F > local_11) {
|
|
spawn TRIGGER.slot_20(pid, (0 + 0x0080), *(arg_06), arg_06);
|
|
suspend;
|
|
spawn FREE.slot_3B(pid, local_27, 0x00000000);
|
|
suspend;
|
|
local_0F = (1 + local_0F);
|
|
}
|
|
return;
|
|
}
|
|
}
|
|
|
|
block_1AD0:
|
|
goto block_218C;
|
|
|
|
block_1AD3:
|
|
if (arg_0A != 0x0096) goto block_1AF7;
|
|
|
|
block_1ADC:
|
|
suspend;
|
|
goto block_218C;
|
|
|
|
block_1AF7:
|
|
if (arg_0A != 0x00C8) goto block_1F2E;
|
|
|
|
block_1B00:
|
|
for local_02 in selector_0x42(arg0=0x028C, arg1=0x05AC, arg2=(32 * 32), origin=arg_06) {
|
|
if (Item.getQLo(local_02) == Item.getQLo(arg_06)) {
|
|
if (Item.getQHi(local_02) <= 99) {
|
|
spawn FREE.slot_3B(pid, 10, 0x00000000);
|
|
suspend;
|
|
}
|
|
}
|
|
/* loopnext */
|
|
}
|
|
|
|
block_1BCD:
|
|
/* loopscr value_u8=0x24 */
|
|
/* loopscr value_u8=0x4B */
|
|
/* loop current_var=0xFE string_bytes=0x18 loop_type=0x2 */
|
|
|
|
block_1C01:
|
|
while (!condition) {
|
|
if (Item.getQLo(local_02) == Item.getQLo(arg_06)) {
|
|
if (Item.getQHi(local_02) <= 99) {
|
|
spawn FREE.slot_3B(pid, 10, 0x00000000);
|
|
suspend;
|
|
}
|
|
}
|
|
/* loopnext */
|
|
}
|
|
|
|
block_1CB7:
|
|
/* loopscr value_u8=0x24 */
|
|
/* loopscr value_u8=0x48 */
|
|
/* loop current_var=0xFE string_bytes=0x12 loop_type=0x2 */
|
|
|
|
block_1CE2:
|
|
while (!condition) {
|
|
if (Item.getQLo(local_02) == Item.getQLo(arg_06)) {
|
|
if (Item.getQHi(local_02) <= 99) {
|
|
spawn FREE.slot_3B(pid, 10, 0x00000000);
|
|
suspend;
|
|
}
|
|
}
|
|
/* loopnext */
|
|
}
|
|
|
|
block_1D6E:
|
|
/* loopscr value_u8=0x24 */
|
|
/* loopscr value_u8=0x44 */
|
|
/* loop current_var=0xFE string_bytes=0xA loop_type=0x2 */
|
|
|
|
block_1D8D:
|
|
while (!condition) {
|
|
if (Item.getQLo(local_02) == Item.getQLo(arg_06)) {
|
|
ITEM.slot_26(0x1000, local_02);
|
|
if (!retval) {
|
|
ITEM.slot_25(0x1000, local_02);
|
|
spawn FREE.slot_3B(pid, 10, 0x00000000);
|
|
suspend;
|
|
}
|
|
}
|
|
/* loopnext */
|
|
}
|
|
|
|
block_1E3C:
|
|
for local_02 in selector_0x42(arg0=0x019A, arg1=0x0196, arg2=(32 * 32), origin=arg_06) {
|
|
if (Item.getQLo(local_02) == Item.getQLo(arg_06)) {
|
|
if (Item.getQHi(local_02) <= 99) {
|
|
spawn FREE.slot_3B(pid, 10, 0x00000000);
|
|
suspend;
|
|
}
|
|
}
|
|
/* loopnext */
|
|
}
|
|
|
|
block_1F29:
|
|
goto block_218C;
|
|
|
|
block_1F2E:
|
|
if (arg_0A != 0x00C9) goto block_1F7D;
|
|
|
|
block_1F37:
|
|
local_35 = Item.getQHi(arg_06);
|
|
if (local_35 < 4) goto block_1F5E;
|
|
|
|
block_1F4A:
|
|
local_35 = (1 + local_35);
|
|
goto block_1F7A;
|
|
|
|
block_1F5E:
|
|
spawn TRIGGER.slot_20(pid, (1 + 0x0080), *(arg_06), arg_06);
|
|
suspend;
|
|
|
|
block_1F7A:
|
|
goto block_218C;
|
|
|
|
block_1F7D:
|
|
if (arg_0A != 0x00CA) goto block_1FCB;
|
|
|
|
block_1F86:
|
|
for local_02 in nearby_items(family=1, origin=arg_06) {
|
|
if (Item.getQLo(local_02) == Item.getQLo(arg_06)) {
|
|
ITEM.slot_25(0x1000, local_02);
|
|
}
|
|
/* loopnext */
|
|
}
|
|
|
|
block_1FC6:
|
|
goto block_218C;
|
|
|
|
block_1FCB:
|
|
if (arg_0A != 0x00CF) goto block_2081;
|
|
|
|
block_1FD4:
|
|
for local_02 in nearby_items(family=6, origin=arg_06) {
|
|
if (local_02 >= 0x0100) {
|
|
local_1B = local_02;
|
|
if ((local_1B == World.getControlledNPCNum()) && (local_1B != 1)) {
|
|
spawn TRIGGER.slot_20(pid, 0, *(arg_06), arg_06);
|
|
suspend;
|
|
spawn FREE.slot_3B(pid, 60, 0x00000000);
|
|
suspend;
|
|
spawn ITEM.slot_2A(pid, 0, 2, local_1B);
|
|
suspend;
|
|
while (Actor.isDead(local_1B)) {
|
|
}
|
|
}
|
|
}
|
|
/* loopnext */
|
|
}
|
|
|
|
block_207C:
|
|
goto block_218C;
|
|
|
|
block_2081:
|
|
if (arg_0A != 0x00D2) goto block_218C;
|
|
|
|
block_208A:
|
|
/* loop_selector local_02 in selector_0x42(arg0=0x05BA, arg1=0x05E6, arg2=(5 * 32), origin=arg_06) */
|
|
|
|
block_20A1:
|
|
if condition goto block_2187;
|
|
|
|
block_20A4:
|
|
ITEM.slot_24(2, local_1B);
|
|
spawn FREE.slot_3B(pid, 5, 0x00000000);
|
|
suspend;
|
|
|
|
block_2153:
|
|
while (World.getControlledNPCNum() == 1) {
|
|
spawn FREE.slot_3B(pid, 2, 0x00000000);
|
|
suspend;
|
|
}
|
|
|
|
block_2178:
|
|
goto block_2187;
|
|
|
|
block_2183:
|
|
/* loopnext */
|
|
goto block_20A1;
|
|
|
|
block_2187:
|
|
goto block_218C;
|
|
|
|
block_218C:
|
|
return;
|
|
|
|
}
|