723 lines
15 KiB
Text
723 lines
15 KiB
Text
|
|
/* synthesized appendix for BRIDGE */
|
|
/* sparse lines above preserve recovered debugger line numbers where available */
|
|
|
|
/* ===== slot 0x20 slot_20 ===== */
|
|
function bridge_slot_20() /* entry=474 class_id=0x0A1C slot=0x20 */
|
|
{
|
|
set_info(0x0211, *(arg_06));
|
|
if (arg_0A == 1) {
|
|
local_02 = Item.getQLo(arg_06);
|
|
spawn BRIDGE.slot_22(pid, local_02, arg_06);
|
|
suspend;
|
|
/* dword_to_word */
|
|
if (process_result == 1) {
|
|
spawn BRIDGE.slot_24(pid, local_02, arg_06);
|
|
suspend;
|
|
spawn BRIDGE.slot_26(0, local_02, arg_06);
|
|
}
|
|
return;
|
|
}
|
|
else if (arg_0A == 2) {
|
|
local_02 = Item.getQLo(arg_06);
|
|
spawn BRIDGE.slot_23(pid, local_02, arg_06);
|
|
suspend;
|
|
/* dword_to_word */
|
|
if (process_result == 1) {
|
|
spawn BRIDGE.slot_25(pid, local_02, arg_06);
|
|
suspend;
|
|
}
|
|
return;
|
|
}
|
|
return;
|
|
}
|
|
|
|
/* ===== slot 0x21 slot_21 ===== */
|
|
function bridge_slot_21() /* entry=474 class_id=0x0A1C slot=0x21 */
|
|
{
|
|
local_02 = Item.getShape(arg_06);
|
|
if ((local_02 == 0x0413) || (local_02 != 0x0290)) {
|
|
if (arg_08 == 0x03A6) {
|
|
arg_08 = 0x0413;
|
|
return;
|
|
}
|
|
else {
|
|
arg_08 = 0x0290;
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
/* ===== slot 0x22 slot_22 ===== */
|
|
function bridge_slot_22() /* entry=474 class_id=0x0A1C slot=0x22 */
|
|
{
|
|
set_info(0x021B, *(arg_06));
|
|
/* loop_selector local_02 in selector_0x42(arg0=0x0336, arg1=0x0290, arg2=(70 * 32), origin=arg_06) */
|
|
while (!condition) {
|
|
if (Item.getFrame(local_02) == 0) {
|
|
local_04 = Item.getQLo(local_02);
|
|
if (local_04 == arg_0A) {
|
|
/* word_to_dword */
|
|
/* pop_result */
|
|
return;
|
|
}
|
|
}
|
|
/* loopnext */
|
|
}
|
|
/* word_to_dword */
|
|
/* pop_result */
|
|
return;
|
|
}
|
|
|
|
/* ===== slot 0x23 slot_23 ===== */
|
|
function bridge_slot_23() /* entry=474 class_id=0x0A1C slot=0x23 */
|
|
{
|
|
entry:
|
|
set_info(0x021B, *(arg_06));
|
|
local_06 = 0;
|
|
/* loop_selector local_02 in selector_0x42(arg0=0x03A6, arg1=0x0413, arg2=(70 * 32), origin=arg_06) */
|
|
|
|
block_027A:
|
|
if condition goto block_02AE;
|
|
|
|
block_027D:
|
|
local_04 = Item.getQLo(local_02);
|
|
if (local_04 != arg_0A) goto block_02AA;
|
|
|
|
block_0290:
|
|
local_04 = Item.getQHi(local_02);
|
|
if (local_04 != 0) goto block_02AA;
|
|
|
|
block_02A3:
|
|
local_06 = local_04;
|
|
goto block_02AE;
|
|
|
|
block_02AA:
|
|
/* loopnext */
|
|
goto block_027A;
|
|
|
|
block_02AE:
|
|
if (local_06 != 0) goto block_0314;
|
|
|
|
block_02B8:
|
|
/* loop_selector local_02 in selector_0x42(arg0=0x0336, arg1=0x0290, arg2=(70 * 32), origin=arg_06) */
|
|
|
|
block_02CF:
|
|
if condition goto block_0312;
|
|
|
|
block_02D2:
|
|
if (Item.getFrame(local_02) != 1) goto block_030E;
|
|
|
|
block_02E1:
|
|
local_04 = Item.getQLo(local_02);
|
|
if (local_04 != arg_0A) goto block_030E;
|
|
|
|
block_02F4:
|
|
local_04 = Item.getQHi(local_02);
|
|
if (local_04 != 0) goto block_030E;
|
|
|
|
block_0307:
|
|
local_06 = local_04;
|
|
goto block_0312;
|
|
|
|
block_030E:
|
|
/* loopnext */
|
|
goto block_02CF;
|
|
|
|
block_0312:
|
|
|
|
block_0314:
|
|
if (local_06 != 0) goto block_03B5;
|
|
|
|
block_031C:
|
|
for local_02 in selector_0x42(arg0=0x03A6, arg1=0x0413, arg2=(70 * 32), origin=arg_06) {
|
|
local_04 = Item.getQLo(local_02);
|
|
if (local_04 == local_06) {
|
|
/* word_to_dword */
|
|
/* pop_result */
|
|
return;
|
|
}
|
|
/* loopnext */
|
|
}
|
|
|
|
block_035F:
|
|
for local_02 in selector_0x42(arg0=0x0336, arg1=0x0290, arg2=(70 * 32), origin=arg_06) {
|
|
if (Item.getFrame(arg_06) == 1) {
|
|
local_04 = Item.getQLo(local_02);
|
|
if (local_04 == local_06) {
|
|
/* word_to_dword */
|
|
/* pop_result */
|
|
return;
|
|
}
|
|
}
|
|
/* loopnext */
|
|
}
|
|
|
|
block_03B3:
|
|
|
|
block_03B5:
|
|
/* word_to_dword */
|
|
/* pop_result */
|
|
goto block_03BC;
|
|
|
|
block_03BC:
|
|
return;
|
|
|
|
}
|
|
|
|
/* ===== slot 0x24 slot_24 ===== */
|
|
function bridge_slot_24() /* entry=474 class_id=0x0A1C slot=0x24 */
|
|
{
|
|
entry:
|
|
set_info(0x021B, *(arg_06));
|
|
local_06 = 0;
|
|
/* loop_selector local_02 in selector_0x42(arg0=0x0336, arg1=0x0290, arg2=(70 * 32), origin=arg_06) */
|
|
|
|
block_03E3:
|
|
if condition goto block_040B;
|
|
|
|
block_03E6:
|
|
local_08 = Item.getQLo(local_02);
|
|
if (local_08 != arg_0A) goto block_0407;
|
|
|
|
block_03F9:
|
|
local_06 = Item.getQHi(local_02);
|
|
goto block_040B;
|
|
|
|
block_0407:
|
|
/* loopnext */
|
|
goto block_03E3;
|
|
|
|
block_040B:
|
|
if (local_06 != 0) goto block_0418;
|
|
|
|
block_0415:
|
|
goto block_0542;
|
|
|
|
block_0418:
|
|
if (local_06 < arg_0A) goto block_0423;
|
|
|
|
block_0420:
|
|
goto block_0542;
|
|
|
|
block_0423:
|
|
local_0A = arg_0A;
|
|
|
|
block_0427:
|
|
if (local_0A <= local_06) goto block_049F;
|
|
|
|
block_042F:
|
|
local_0C = local_0A;
|
|
/* loop_selector local_02 in selector_0x42(arg0=0x0336, arg1=0x0290, arg2=(70 * 32), origin=arg_06) */
|
|
|
|
block_044A:
|
|
if condition goto block_047B;
|
|
|
|
block_044D:
|
|
local_08 = Item.getQLo(local_02);
|
|
if (local_08 != local_0A) goto block_0477;
|
|
|
|
block_0460:
|
|
/* create_list element_size=0x2 count=0x1 */
|
|
/* append_list */
|
|
/* free_local_list bp_offset=0xFC target=[BP-04h] */
|
|
local_04 = local_02;
|
|
local_0A = (1 + local_0A);
|
|
goto block_047B;
|
|
|
|
block_0477:
|
|
/* loopnext */
|
|
goto block_044A;
|
|
|
|
block_047B:
|
|
if (local_0C != local_0A) goto block_049C;
|
|
|
|
block_0485:
|
|
spawn FREE.slot_3B(pid, 10, 0x00000000);
|
|
suspend;
|
|
|
|
block_049C:
|
|
goto block_0427;
|
|
|
|
block_049F:
|
|
|
|
block_04A5:
|
|
while (true) {
|
|
foreach_list local_02 -> block_04FC;
|
|
if (Intrinsic00AD(local_02) == 1) {
|
|
BRIDGE.slot_21(0x03A6, local_02);
|
|
spawn FREE.slot_3B(pid, 15, 0x00000000);
|
|
suspend;
|
|
}
|
|
}
|
|
|
|
block_04FC:
|
|
|
|
block_0502:
|
|
while (true) {
|
|
foreach_list local_02 -> block_0542;
|
|
if (Intrinsic00AD(local_02) == 1) {
|
|
BRIDGE.slot_21(0x03A6, local_02);
|
|
}
|
|
}
|
|
|
|
block_0542:
|
|
/* free_local_list bp_offset=0xFC target=[BP-04h] */
|
|
return;
|
|
|
|
}
|
|
|
|
/* ===== slot 0x25 slot_25 ===== */
|
|
function bridge_slot_25() /* entry=474 class_id=0x0A1C slot=0x25 */
|
|
{
|
|
entry:
|
|
set_info(0x021B, *(arg_06));
|
|
local_06 = 0;
|
|
/* loop_selector local_02 in selector_0x42(arg0=0x03A6, arg1=0x0413, arg2=(70 * 32), origin=arg_06) */
|
|
|
|
block_056B:
|
|
if condition goto block_0593;
|
|
|
|
block_056E:
|
|
local_08 = Item.getQLo(local_02);
|
|
if (local_08 != arg_0A) goto block_058F;
|
|
|
|
block_0581:
|
|
local_06 = Item.getQHi(local_02);
|
|
goto block_0593;
|
|
|
|
block_058F:
|
|
/* loopnext */
|
|
goto block_056B;
|
|
|
|
block_0593:
|
|
if (local_06 != 0) goto block_05F8;
|
|
|
|
block_059D:
|
|
/* loop_selector local_02 in selector_0x42(arg0=0x0336, arg1=0x0290, arg2=(70 * 32), origin=arg_06) */
|
|
|
|
block_05B4:
|
|
if condition goto block_05EB;
|
|
|
|
block_05B7:
|
|
if (Item.getFrame(arg_06) != 1) goto block_05E7;
|
|
|
|
block_05C6:
|
|
local_08 = Item.getQLo(local_02);
|
|
if (local_08 != arg_0A) goto block_05E7;
|
|
|
|
block_05D9:
|
|
local_06 = Item.getQHi(local_02);
|
|
goto block_05EB;
|
|
|
|
block_05E7:
|
|
/* loopnext */
|
|
goto block_05B4;
|
|
|
|
block_05EB:
|
|
if (local_06 != 0) goto block_05F8;
|
|
|
|
block_05F5:
|
|
goto block_087A;
|
|
|
|
block_05F8:
|
|
if (local_06 < arg_0A) goto block_0603;
|
|
|
|
block_0600:
|
|
goto block_087A;
|
|
|
|
block_0603:
|
|
local_0A = local_06;
|
|
arg_0A = (arg_0A - 1);
|
|
|
|
block_060E:
|
|
if (local_0A != arg_0A) goto block_06E7;
|
|
|
|
block_0616:
|
|
local_0C = local_0A;
|
|
/* loop_selector local_02 in selector_0x42(arg0=0x03A6, arg1=0x0413, arg2=(70 * 32), origin=arg_06) */
|
|
|
|
block_0631:
|
|
if condition goto block_0662;
|
|
|
|
block_0634:
|
|
local_08 = Item.getQLo(local_02);
|
|
if (local_08 != local_0A) goto block_065E;
|
|
|
|
block_0647:
|
|
/* create_list element_size=0x2 count=0x1 */
|
|
/* append_list */
|
|
/* free_local_list bp_offset=0xFC target=[BP-04h] */
|
|
local_04 = local_02;
|
|
local_0A = (local_0A - 1);
|
|
goto block_0662;
|
|
|
|
block_065E:
|
|
/* loopnext */
|
|
goto block_0631;
|
|
|
|
block_0662:
|
|
if (local_0C != local_0A) goto block_06E4;
|
|
|
|
block_066C:
|
|
/* loop_selector local_02 in selector_0x42(arg0=0x0336, arg1=0x0290, arg2=(70 * 32), origin=arg_06) */
|
|
|
|
block_0683:
|
|
if condition goto block_06C3;
|
|
|
|
block_0686:
|
|
if (Item.getFrame(arg_06) != 1) goto block_06BF;
|
|
|
|
block_0695:
|
|
local_08 = Item.getQLo(local_02);
|
|
if (local_08 != local_0A) goto block_06BF;
|
|
|
|
block_06A8:
|
|
/* create_list element_size=0x2 count=0x1 */
|
|
/* append_list */
|
|
/* free_local_list bp_offset=0xFC target=[BP-04h] */
|
|
local_04 = local_02;
|
|
local_0A = (local_0A - 1);
|
|
goto block_06C3;
|
|
|
|
block_06BF:
|
|
/* loopnext */
|
|
goto block_0683;
|
|
|
|
block_06C3:
|
|
if (local_0C != local_0A) goto block_06E4;
|
|
|
|
block_06CD:
|
|
spawn FREE.slot_3B(pid, 10, 0x00000000);
|
|
suspend;
|
|
|
|
block_06E4:
|
|
goto block_060E;
|
|
|
|
block_06E7:
|
|
|
|
block_06ED:
|
|
while (true) {
|
|
foreach_list local_02 -> block_07BC;
|
|
if (Intrinsic00AD(local_02) == 1) {
|
|
BRIDGE.slot_21(0x0336, local_02);
|
|
spawn FREE.slot_3B(pid, 15, 0x00000000);
|
|
suspend;
|
|
}
|
|
/* loopscr value_u8=0x24 */
|
|
/* loop current_var=0xF2 string_bytes=0x1 loop_type=0x6 */
|
|
while (!condition) {
|
|
if ((Item.getFamily(local_0E) == 6) && (Item.isNpc(local_0E) != 0)) {
|
|
for local_10 in nearby_items(shape=0x04B8, origin=local_0E) {
|
|
/* loopnext */
|
|
}
|
|
spawn ITEM.slot_2A(pid, 1, 0, local_0E);
|
|
suspend;
|
|
}
|
|
/* loopnext */
|
|
}
|
|
}
|
|
|
|
block_07BC:
|
|
|
|
block_07C2:
|
|
while (true) {
|
|
foreach_list local_02 -> block_087A;
|
|
if (Intrinsic00AD(local_02) == 1) {
|
|
BRIDGE.slot_21(0x0336, local_02);
|
|
}
|
|
/* loopscr value_u8=0x24 */
|
|
/* loop current_var=0xF2 string_bytes=0x1 loop_type=0x6 */
|
|
while (!condition) {
|
|
if ((Item.getFamily(local_0E) == 6) && (Item.isNpc(local_0E) != 0)) {
|
|
for local_10 in nearby_items(shape=0x04B8, origin=local_0E) {
|
|
/* loopnext */
|
|
}
|
|
spawn ITEM.slot_2A(pid, 1, 0, local_0E);
|
|
suspend;
|
|
}
|
|
/* loopnext */
|
|
}
|
|
}
|
|
|
|
block_087A:
|
|
/* free_local_list bp_offset=0xFC target=[BP-04h] */
|
|
return;
|
|
|
|
}
|
|
|
|
/* ===== slot 0x26 slot_26 ===== */
|
|
function bridge_slot_26() /* entry=474 class_id=0x0A1C slot=0x26 */
|
|
{
|
|
entry:
|
|
set_info(0x021B, *(arg_06));
|
|
local_12 = 0;
|
|
local_14 = 1;
|
|
local_08 = arg_0C;
|
|
if (local_08 != 0) goto block_08E8;
|
|
|
|
block_089C:
|
|
/* loop_selector local_04 in selector_0x42(arg0=0x03A6, arg1=0x0413, arg2=(70 * 32), origin=arg_06) */
|
|
|
|
block_08B3:
|
|
if condition goto block_08DB;
|
|
|
|
block_08B6:
|
|
local_0A = Item.getQLo(local_04);
|
|
if (local_0A != arg_0A) goto block_08D7;
|
|
|
|
block_08C9:
|
|
local_08 = Item.getQHi(local_04);
|
|
goto block_08DB;
|
|
|
|
block_08D7:
|
|
/* loopnext */
|
|
goto block_08B3;
|
|
|
|
block_08DB:
|
|
if (local_08 != 0) goto block_08E8;
|
|
|
|
block_08E5:
|
|
goto block_0CEF;
|
|
|
|
block_08E8:
|
|
if (local_08 < arg_0A) goto block_08F3;
|
|
|
|
block_08F0:
|
|
goto block_0CEF;
|
|
|
|
block_08F3:
|
|
local_0C = arg_0A;
|
|
local_16 = 100;
|
|
|
|
block_08FB:
|
|
if (local_0C <= local_08) goto block_09F5;
|
|
|
|
block_0903:
|
|
local_0E = local_0C;
|
|
/* loop_selector local_04 in selector_0x42(arg0=0x03A6, arg1=0x0413, arg2=(70 * 32), origin=arg_06) */
|
|
|
|
block_091E:
|
|
if condition goto block_09A8;
|
|
|
|
block_0921:
|
|
local_0A = Item.getQLo(local_04);
|
|
if (local_0A != local_0C) goto block_09A4;
|
|
|
|
block_0934:
|
|
if (local_0A != (arg_0A + 1)) goto block_098D;
|
|
|
|
block_093F:
|
|
local_10 = Item.getQHi(local_04);
|
|
if (local_10 < 0) goto block_095A;
|
|
|
|
block_0952:
|
|
local_10 = (local_10 + 0x0100);
|
|
|
|
block_095A:
|
|
local_10 = (local_10 & 127);
|
|
local_12 = (local_10 & 7);
|
|
local_14 = (local_10 / 8);
|
|
if (local_14 != 0) goto block_097B;
|
|
|
|
block_0977:
|
|
local_14 = 1;
|
|
|
|
block_097B:
|
|
local_14 = (local_14 * 5);
|
|
if (local_12 != 0) goto block_098D;
|
|
|
|
block_098A:
|
|
goto block_0CEF;
|
|
|
|
block_098D:
|
|
/* create_list element_size=0x2 count=0x1 */
|
|
/* append_list */
|
|
/* free_local_list bp_offset=0xFA target=[BP-06h] */
|
|
local_06 = local_04;
|
|
local_0C = (1 + local_0C);
|
|
goto block_09A8;
|
|
|
|
block_09A4:
|
|
/* loopnext */
|
|
goto block_091E;
|
|
|
|
block_09A8:
|
|
if (local_0E != local_0C) goto block_09F2;
|
|
|
|
block_09B2:
|
|
if (local_16 != 0) goto block_09D4;
|
|
|
|
block_09BA:
|
|
spawn FREE.slot_3B(pid, 30, 0x00000000);
|
|
suspend;
|
|
goto block_09F2;
|
|
|
|
block_09D4:
|
|
local_16 = (local_16 - 1);
|
|
spawn FREE.slot_3B(pid, 2, 0x00000000);
|
|
suspend;
|
|
|
|
block_09F2:
|
|
goto block_08FB;
|
|
|
|
block_09F5:
|
|
if (local_12 != 3) goto block_0B84;
|
|
|
|
block_09FD:
|
|
if 1 goto block_0B84;
|
|
|
|
block_0A02:
|
|
local_0A = 0;
|
|
|
|
block_0A0C:
|
|
while (true) {
|
|
foreach_list local_04 -> block_0A2A;
|
|
if (Intrinsic00AD(local_04) == 0) {
|
|
local_0A = (1 + local_0A);
|
|
}
|
|
}
|
|
|
|
block_0A2A:
|
|
if (local_0A != 0) goto block_0B6A;
|
|
|
|
block_0A32:
|
|
|
|
block_0A38:
|
|
while (true) {
|
|
foreach_list local_04 -> block_0A77;
|
|
if (local_0A == 0) {
|
|
local_0C = Item.getFrame(local_04);
|
|
local_1D = local_04;
|
|
local_0A = 1;
|
|
}
|
|
else {
|
|
local_0E = Item.getFrame(local_04);
|
|
local_0C = local_0E;
|
|
}
|
|
}
|
|
|
|
block_0A77:
|
|
|
|
block_0A87:
|
|
while (true) {
|
|
foreach_list local_04 -> block_0B6A;
|
|
local_0A = Item.getFrame(local_04);
|
|
if (local_0A == 1) {
|
|
/* loopscr value_u8=0x24 */
|
|
/* loop current_var=0xE3 string_bytes=0x1 loop_type=0x6 */
|
|
while (!condition) {
|
|
local_02 = local_1D;
|
|
FREE.slot_20(pid, 8);
|
|
spawn NPC.slot_2F(retval, local_04, local_02);
|
|
suspend;
|
|
/* loopnext */
|
|
}
|
|
}
|
|
else if (local_0A == 2) {
|
|
BRIDGE.slot_21(0x0336, local_04);
|
|
/* loopscr value_u8=0x24 */
|
|
/* loop current_var=0xE3 string_bytes=0x1 loop_type=0x6 */
|
|
while (!condition) {
|
|
/* loopnext */
|
|
}
|
|
spawn FREE.slot_3B(pid, local_14, 0x00000000);
|
|
suspend;
|
|
if (Item.getFrame(local_04) == 1) {
|
|
BRIDGE.slot_21(0x03A6, local_04);
|
|
}
|
|
}
|
|
}
|
|
|
|
block_0B6A:
|
|
spawn FREE.slot_3B(pid, local_14, 0x00000000);
|
|
suspend;
|
|
goto block_09FD;
|
|
|
|
block_0B84:
|
|
|
|
block_0B8A:
|
|
while (true) {
|
|
foreach_list local_04 -> block_0BAB;
|
|
}
|
|
|
|
block_0BAB:
|
|
if 1 goto block_0CEF;
|
|
|
|
block_0BB0:
|
|
|
|
block_0BB6:
|
|
foreach_list local_04 -> block_0CEC;
|
|
|
|
block_0BBB:
|
|
if (Intrinsic00AD(local_04) != 0) goto block_0BCD;
|
|
|
|
block_0BCA:
|
|
goto block_0CEF;
|
|
|
|
block_0BCD:
|
|
local_0A = Item.getShape(local_04);
|
|
if ((local_0A != 0x0336) || (local_0A != 0x0290)) goto block_0BEB;
|
|
|
|
block_0BE8:
|
|
goto block_0CEF;
|
|
|
|
block_0BEB:
|
|
if (local_12 != 1) goto block_0C57;
|
|
|
|
block_0BF3:
|
|
/* loopscr value_u8=0x24 */
|
|
/* loop current_var=0xE3 string_bytes=0x1 loop_type=0x6 */
|
|
|
|
block_0C08:
|
|
while (!condition) {
|
|
local_02 = local_1D;
|
|
FREE.slot_20(pid, 8);
|
|
spawn NPC.slot_2F(retval, local_04, local_02);
|
|
suspend;
|
|
/* loopnext */
|
|
}
|
|
|
|
block_0C31:
|
|
spawn FREE.slot_3B(pid, local_14, 0x00000000);
|
|
suspend;
|
|
goto block_0CE9;
|
|
|
|
block_0C57:
|
|
if (local_12 != 2) goto block_0CE6;
|
|
|
|
block_0C5F:
|
|
BRIDGE.slot_21(0x0336, local_04);
|
|
/* loopscr value_u8=0x24 */
|
|
/* loop current_var=0xE3 string_bytes=0x1 loop_type=0x6 */
|
|
|
|
block_0C8B:
|
|
while (!condition) {
|
|
/* loopnext */
|
|
}
|
|
|
|
block_0C9A:
|
|
spawn FREE.slot_3B(pid, local_14, 0x00000000);
|
|
suspend;
|
|
if (Item.getFrame(local_04) != 1) goto block_0CE3;
|
|
|
|
block_0CC2:
|
|
BRIDGE.slot_21(0x03A6, local_04);
|
|
|
|
block_0CE3:
|
|
goto block_0CE9;
|
|
|
|
block_0CE6:
|
|
goto block_0CEF;
|
|
|
|
block_0CE9:
|
|
goto block_0BB6;
|
|
|
|
block_0CEC:
|
|
goto block_0BAB;
|
|
|
|
block_0CEF:
|
|
/* free_local_list bp_offset=0xFA target=[BP-06h] */
|
|
return;
|
|
|
|
}
|