diff --git a/Crusader.rep/idata/01/00000015.prp b/Crusader.rep/idata/01/00000015.prp index 90165f7..04a0922 100644 --- a/Crusader.rep/idata/01/00000015.prp +++ b/Crusader.rep/idata/01/00000015.prp @@ -2,12 +2,12 @@ - + - + diff --git a/Crusader.rep/idata/01/~00000015.db/change.data.gbf b/Crusader.rep/idata/01/~00000015.db/change.data.gbf index 5f31ba0..69a1053 100644 Binary files a/Crusader.rep/idata/01/~00000015.db/change.data.gbf and b/Crusader.rep/idata/01/~00000015.db/change.data.gbf differ diff --git a/Crusader.rep/idata/01/~00000015.db/change.map.gbf b/Crusader.rep/idata/01/~00000015.db/change.map.gbf index aa53ba2..f80d267 100644 Binary files a/Crusader.rep/idata/01/~00000015.db/change.map.gbf and b/Crusader.rep/idata/01/~00000015.db/change.map.gbf differ diff --git a/Crusader.rep/idata/01/~00000015.db/db.17.gbf b/Crusader.rep/idata/01/~00000015.db/db.25.gbf similarity index 99% rename from Crusader.rep/idata/01/~00000015.db/db.17.gbf rename to Crusader.rep/idata/01/~00000015.db/db.25.gbf index fb078a7..df95275 100644 Binary files a/Crusader.rep/idata/01/~00000015.db/db.17.gbf and b/Crusader.rep/idata/01/~00000015.db/db.25.gbf differ diff --git a/Crusader.rep/versioned/00/~00000000.db/db.2.gbf b/Crusader.rep/idata/01/~00000015.db/db.26.gbf similarity index 98% rename from Crusader.rep/versioned/00/~00000000.db/db.2.gbf rename to Crusader.rep/idata/01/~00000015.db/db.26.gbf index 4821392..d4ff470 100644 Binary files a/Crusader.rep/versioned/00/~00000000.db/db.2.gbf and b/Crusader.rep/idata/01/~00000015.db/db.26.gbf differ diff --git a/Crusader.rep/user/00/~00000008.db/db.12.gbf b/Crusader.rep/user/00/~00000008.db/db.14.gbf similarity index 99% rename from Crusader.rep/user/00/~00000008.db/db.12.gbf rename to Crusader.rep/user/00/~00000008.db/db.14.gbf index 82ff047..254d9e4 100644 Binary files a/Crusader.rep/user/00/~00000008.db/db.12.gbf and b/Crusader.rep/user/00/~00000008.db/db.14.gbf differ diff --git a/Crusader.rep/versioned/00/~00000000.db/change.2.gbf b/Crusader.rep/versioned/00/~00000000.db/change.2.gbf new file mode 100644 index 0000000..5e6ff35 Binary files /dev/null and b/Crusader.rep/versioned/00/~00000000.db/change.2.gbf differ diff --git a/Crusader.rep/versioned/00/~00000000.db/checkout.dat b/Crusader.rep/versioned/00/~00000000.db/checkout.dat index 68672b5..b7d7d85 100644 --- a/Crusader.rep/versioned/00/~00000000.db/checkout.dat +++ b/Crusader.rep/versioned/00/~00000000.db/checkout.dat @@ -1,5 +1,5 @@ - + diff --git a/Crusader.rep/idata/01/~00000015.db/db.16.gbf b/Crusader.rep/versioned/00/~00000000.db/db.3.gbf similarity index 99% rename from Crusader.rep/idata/01/~00000015.db/db.16.gbf rename to Crusader.rep/versioned/00/~00000000.db/db.3.gbf index bd678cf..bc56208 100644 Binary files a/Crusader.rep/idata/01/~00000015.db/db.16.gbf and b/Crusader.rep/versioned/00/~00000000.db/db.3.gbf differ diff --git a/Crusader.rep/versioned/00/~00000000.db/history.dat b/Crusader.rep/versioned/00/~00000000.db/history.dat index ec0209b..07a020e 100644 --- a/Crusader.rep/versioned/00/~00000000.db/history.dat +++ b/Crusader.rep/versioned/00/~00000000.db/history.dat @@ -1,2 +1,3 @@ 1;Maddo;1774376667876;Base before edits 2;Maddo;1774389005800;Computer Gump +3;Maddo;1774476736765;Big disasm pass diff --git a/Crusader.rep/versioned/00/~00000000.db/ver.2.gbf b/Crusader.rep/versioned/00/~00000000.db/ver.2.gbf new file mode 100644 index 0000000..6b80c2f Binary files /dev/null and b/Crusader.rep/versioned/00/~00000000.db/ver.2.gbf differ diff --git a/USECODE/EUSECODE_extracted/pseudocode/ALARMBOX/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/ALARMBOX/slot_01_use.txt new file mode 100644 index 0000000..6f1b455 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ALARMBOX/slot_01_use.txt @@ -0,0 +1,35 @@ +function alarmbox_use() /* entry=256 class_id=0x0477 slot=0x01 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if Intrinsic0000() goto block_0232; + + block_01AA: + if (Item.getFrame(arg_06) != 2) goto block_01C9; + + block_01B9: + goto block_01E8; + + block_01C9: + if (Item.getFrame(arg_06) != 3) goto block_01E8; + + block_01D8: + goto block_01E8; + + block_01E8: + spawn class_0A0C_slot_3C(0x00000000); + if (Item.getMapNum(arg_06) != 0) goto block_0232; + + block_020B: + spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); + suspend; + + block_0232: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ALARMBOX/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/ALARMBOX/slot_0A_equip.txt new file mode 100644 index 0000000..3edc195 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ALARMBOX/slot_0A_equip.txt @@ -0,0 +1,32 @@ +function alarmbox_equip() /* entry=256 class_id=0x0477 slot=0x0A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + var, /* [BP+0Ah] type=0x69 */ + a; /* [BP-02h] type=0x69 */ + + set_info(0x0211, *(arg_06)); + process_exclude(); + if (!var) { + if (Intrinsic0000()) { + spawn class_0A0C_slot_3B(0x00000000); + } + a = Item.getStatus(arg_06); + if ((a & 4) == 0) { + if (Item.getMapNum(arg_06) == 0) { + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + } + } + return; + } + if (!Intrinsic0000()) { + spawn class_0A0C_slot_3C(0x00000000); + if (Item.getMapNum(arg_06) == 0) { + spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); + suspend; + } + } + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ALARMBOX/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/ALARMBOX/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..5ba50ac --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ALARMBOX/slot_0F_enterFastArea.txt @@ -0,0 +1,38 @@ +function alarmbox_enterFastArea() /* entry=256 class_id=0x0477 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if Intrinsic0000() goto block_0137; + + block_00F6: + if (Item.getFrame(arg_06) != 0) goto block_0115; + + block_0105: + goto block_0134; + + block_0115: + if (Item.getFrame(arg_06) != 1) goto block_0134; + + block_0124: + goto block_0134; + + block_0134: + goto block_0175; + + block_0137: + if (Item.getFrame(arg_06) != 2) goto block_0156; + + block_0146: + goto block_0175; + + block_0156: + if (Item.getFrame(arg_06) != 3) goto block_0175; + + block_0165: + goto block_0175; + + block_0175: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ALARMHAT/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/ALARMHAT/slot_0A_equip.txt new file mode 100644 index 0000000..8d82a16 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ALARMHAT/slot_0A_equip.txt @@ -0,0 +1,88 @@ +function alarmhat_equip() /* entry=321 class_id=0x0561 slot=0x0A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + var, /* [BP+0Ah] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + npc; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if Item.getFrame(arg_06) goto block_0156; + + block_00FA: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0118: + if condition goto block_0151; + + block_011B: + if (Item.getFrame(item) != 0) goto block_014D; + + block_012D: + suspend; + + block_014D: + /* loopnext */ + goto block_0118; + + block_0151: + goto block_0233; + + block_0156: + if (!Intrinsic0007(arg_06)) goto block_0233; + + block_0169: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_0186: + if condition goto block_01D8; + + block_0189: + if Item.isNpc(npc) goto block_01D4; + + block_0198: + if ((Item.getZ(npc) > (Item.getZ(arg_06) - 10)) && (Item.getZ(npc) < (Item.getZ(arg_06) + 10))) goto block_01D4; + + block_01CE: + goto block_0233; + + block_01D4: + /* loopnext */ + goto block_0186; + + block_01D8: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_01F8: + if condition goto block_0231; + + block_01FB: + if (Item.getFrame(item) != 0) goto block_022D; + + block_020D: + suspend; + + block_022D: + /* loopnext */ + goto block_01F8; + + block_0231: + + block_0233: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ALARM_EW/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/ALARM_EW/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..145b4d1 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ALARM_EW/slot_0F_enterFastArea.txt @@ -0,0 +1,16 @@ +function alarm_ew_enterFastArea() /* entry=4 class_id=0x0021 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if Intrinsic0000() goto block_0106; + + block_00F6: + goto block_0113; + + block_0106: + + block_0113: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ALARM_NS/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/ALARM_NS/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..effef1a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ALARM_NS/slot_0F_enterFastArea.txt @@ -0,0 +1,16 @@ +function alarm_ns_enterFastArea() /* entry=8 class_id=0x0049 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if Intrinsic0000() goto block_0106; + + block_00F6: + goto block_0113; + + block_0106: + + block_0113: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ALRMTRIG/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/ALRMTRIG/slot_0A_equip.txt new file mode 100644 index 0000000..f690ab0 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ALRMTRIG/slot_0A_equip.txt @@ -0,0 +1,43 @@ +function alrmtrig_equip() /* entry=328 class_id=0x0581 slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (Item.getMapNum(arg_06) != 0) goto block_015C; + + block_00FD: + if Intrinsic0000() goto block_0132; + + block_0108: + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + goto block_0159; + + block_0132: + spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); + suspend; + + block_0159: + goto block_01C0; + + block_015C: + if Intrinsic0000() goto block_0195; + + block_0167: + spawn class_0A18_slot_20(pid, (0 + 0x0080), *(arg_06), arg_06); + suspend; + goto block_01C0; + + block_0195: + spawn class_0A18_slot_20(pid, (1 + 0x0080), *(arg_06), arg_06); + suspend; + + block_01C0: + if (arg_0A != 1) goto block_01D9; + + block_01CE: + + block_01D9: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ANDROID/slot_0E_calledFromAnim.txt b/USECODE/EUSECODE_extracted/pseudocode/ANDROID/slot_0E_calledFromAnim.txt new file mode 100644 index 0000000..b704ecf --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ANDROID/slot_0E_calledFromAnim.txt @@ -0,0 +1,9 @@ +function android_calledFromAnim() /* entry=200 class_id=0x0383 slot=0x0E */ +{ + entry: + set_info(0x021A, *(arg_06)); + process_exclude(); + spawn class_0A1C_slot_20(Item.getQLo(arg_06), *(arg_06), arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/AND_BOOT/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/AND_BOOT/slot_0A_equip.txt new file mode 100644 index 0000000..88ab0f8 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/AND_BOOT/slot_0A_equip.txt @@ -0,0 +1,81 @@ +function and_boot_equip() /* entry=171 class_id=0x0314 slot=0x0A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + event, /* [BP+0Ah] type=0x69 */ + counter; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (Item.getFrame(arg_06) != 12) goto block_0106; + + block_0100: + goto block_02FE; + + block_0106: + class_0A0C_slot_33(0x021B, *(arg_06)); + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + + block_0140: + if (Item.getFrame(arg_06) != 11) goto block_0192; + + block_0152: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + goto block_0140; + + block_0192: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + if (global[0x001F] != 2) goto block_01F2; + + block_01C2: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_0293; + + block_01F2: + if (global[0x001F] != 3) goto block_022C; + + block_01FC: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_0293; + + block_022C: + if (global[0x001F] != 4) goto block_0266; + + block_0236: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_0293; + + block_0266: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + + block_0293: + counter = 0; + + block_029A: + if (counter <= 11) goto block_02E5; + + block_02A2: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_029A; + + block_02E5: + spawn class_0314_enterFastArea(arg_06); + + block_02FE: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/AND_BOOT/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/AND_BOOT/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..9f83a67 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/AND_BOOT/slot_0F_enterFastArea.txt @@ -0,0 +1,96 @@ +function and_boot_enterFastArea() /* entry=171 class_id=0x0314 slot=0x0F */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + counter; /* [BP-04h] type=0x69 */ + + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (((global[0x001F] != 2) || (global[0x001F] != 3)) || (global[0x001F] != 4)) goto block_03BA; + + block_0358: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0376: + if condition goto block_03A8; + + block_0379: + if (Intrinsic0010(item) != Intrinsic0010(arg_06)) goto block_03A4; + + block_0395: + class_0A1E_slot_24(0x1000, item); + + block_03A4: + /* loopnext */ + goto block_0376; + + block_03A8: + goto block_041F; + + block_03BA: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_03D8: + if condition goto block_040A; + + block_03DB: + if (Intrinsic0010(item) != Intrinsic0010(arg_06)) goto block_0406; + + block_03F7: + class_0A1E_slot_23(0x1000, item); + + block_0406: + /* loopnext */ + goto block_03D8; + + block_040A: + goto block_0536; + + block_041F: + suspend; + class_0A0C_slot_20(pid, 0x00C8); + spawn class_0A0C_slot_32((retval + 0x00C8), 0x00000000); + suspend; + counter = 0; + + block_0466: + if (counter <= 6) goto block_04AE; + + block_046E: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0466; + + block_04AE: + class_0A0C_slot_20(pid, 0x00C8); + spawn class_0A0C_slot_32((retval + 0x00C8), 0x00000000); + suspend; + counter = 0; + + block_04E8: + if (counter <= 6) goto block_0533; + + block_04F0: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_04E8; + + block_0533: + goto block_041F; + + block_0536: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/AND_BOOT/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/AND_BOOT/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..5984b51 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/AND_BOOT/slot_10_leaveFastArea.txt @@ -0,0 +1,9 @@ +function and_boot_leaveFastArea() /* entry=171 class_id=0x0314 slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + class_0A0C_slot_33(0x021B, *(arg_06)); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ART/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/ART/slot_06_gotHit.txt new file mode 100644 index 0000000..754f93b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ART/slot_06_gotHit.txt @@ -0,0 +1,31 @@ +function art_gotHit() /* entry=234 class_id=0x0435 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + fram; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + fram = Item.getFrame(arg_06); + class_0A0C_slot_2C(vel, ref); + if retval goto block_0176; + + block_010B: + if (fram > 7) goto block_0141; + + block_0119: + spawn class_0A1E_slot_28(pid, 1, 0, arg_06); + suspend; + goto block_0176; + + block_0141: + spawn class_0A1E_slot_28(pid, 0, 0, arg_06); + suspend; + + block_0176: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/AVATAR/slot_00_look.txt b/USECODE/EUSECODE_extracted/pseudocode/AVATAR/slot_00_look.txt new file mode 100644 index 0000000..57cc215 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/AVATAR/slot_00_look.txt @@ -0,0 +1,8 @@ +function avatar_look() /* entry=339 class_id=0x0801 slot=0x00 */ +{ + entry: + set_info(0x0208, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/AVATAR/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/AVATAR/slot_01_use.txt new file mode 100644 index 0000000..c9589f6 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/AVATAR/slot_01_use.txt @@ -0,0 +1,8 @@ +function avatar_use() /* entry=339 class_id=0x0801 slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/AVATAR/slot_04_cachein.txt b/USECODE/EUSECODE_extracted/pseudocode/AVATAR/slot_04_cachein.txt new file mode 100644 index 0000000..3cea014 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/AVATAR/slot_04_cachein.txt @@ -0,0 +1,15 @@ +function avatar_cachein() /* entry=339 class_id=0x0801 slot=0x04 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + slot, /* [BP-04h] type=0x69 */ + counter; /* [BP-06h] type=0x69 */ + + entry: + set_info(0x0213, *(arg_06)); + process_exclude(); + spawn class_0801_cast(0, arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/AVATAR/slot_11_cast.txt b/USECODE/EUSECODE_extracted/pseudocode/AVATAR/slot_11_cast.txt new file mode 100644 index 0000000..a380aef --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/AVATAR/slot_11_cast.txt @@ -0,0 +1,46 @@ +function avatar_cast() /* entry=339 class_id=0x0801 slot=0x11 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + n; /* [BP-02h] type=0x69 */ + + set_info(0x021D, *(arg_06)); + process_exclude(); + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + /* global_address global_id=0x3C */ + n = Item.getType(); + if ((Item.getType(arg_06) != 1)) { + if (Item.getType(arg_06) == 3) { + } + else if (Item.getType(arg_06) == 5) { + } + else if (Item.getType(arg_06) == 7) { + } + else if (Item.getType(arg_06) == 9) { + } + else if (Item.getType(arg_06) == 11) { + } + else if (Item.getType(arg_06) == 13) { + } + else if (Item.getType(arg_06) == 15) { + } + else if (Item.getType(arg_06) == 17) { + } + else if (Item.getType(arg_06) == 19) { + } + else if (Item.getType(arg_06) == 21) { + } + else if (Item.getType(arg_06) == 23) { + } + else if (Item.getType(arg_06) == 25) { + } + else if (Item.getType(arg_06) == 27) { + } + else if (Item.getType(arg_06) == 29) { + } + return; + } + return; +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BARDUDES/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/BARDUDES/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..2347c85 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BARDUDES/slot_0F_enterFastArea.txt @@ -0,0 +1,91 @@ +function bardudes_enterFastArea() /* entry=199 class_id=0x0382 slot=0x0F */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if ((((global[0x001F] != 1) || (global[0x001F] != 2)) || (global[0x001F] != 3)) || (global[0x001F] != 14)) goto block_0123; + + block_010D: + goto block_032E; + + block_0120: + goto block_0130; + + block_0123: + + block_0130: + suspend; + class_0A0C_slot_20(pid, 100); + spawn class_0A0C_slot_32((retval + 60), 0x00000000); + suspend; + class_0A0C_slot_20(100); + if (retval > 50) goto block_0259; + + block_0184: + counter = 0; + + block_018B: + if (counter <= 7) goto block_01D3; + + block_0193: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_018B; + + block_01D3: + class_0A0C_slot_20(pid, 100); + spawn class_0A0C_slot_32((retval + 60), 0x00000000); + suspend; + counter = 0; + + block_020B: + if (counter <= 7) goto block_0256; + + block_0213: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_020B; + + block_0256: + goto block_032B; + + block_0259: + counter = 8; + + block_0260: + if (counter <= 13) goto block_02A8; + + block_0268: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0260; + + block_02A8: + class_0A0C_slot_20(pid, 100); + spawn class_0A0C_slot_32((retval + 60), 0x00000000); + suspend; + counter = 0; + + block_02E0: + if (counter <= 5) goto block_032B; + + block_02E8: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_02E0; + + block_032B: + goto block_0130; + + block_032E: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BARREL/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/BARREL/slot_20_slot_20.txt new file mode 100644 index 0000000..f5984a4 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BARREL/slot_20_slot_20.txt @@ -0,0 +1,168 @@ +function barrel_slot_20() /* entry=370 class_id=0x0A00 slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + barrel, /* [BP-02h] type=0x24 */ + item2, /* [BP-04h] type=0x24 */ + isYellowBarrel, /* [BP-05h] type=0x62 */ + isStandingBarrel, /* [BP-06h] type=0x62 */ + link, /* [BP-08h] type=0x69 */ + x, /* [BP-0Ah] type=0x69 */ + y, /* [BP-0Ch] type=0x69 */ + z; /* [BP-0Eh] type=0x69 */ + + entry: + set_info(0x0001, *(arg_06)); + barrel = *(arg_06); + x = Intrinsic0013(arg_06); + y = Item.legal_create(arg_06); + z = Item.getZ(arg_06); + class_0A0C_slot_2C(vel, ref); + if (!retval) goto block_013F; + + block_0139: + goto block_04FA; + + block_013F: + spawn class_0A1E_slot_27(pid, 100, vel, ref, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_01A2; + + block_016F: + class_0A0C_slot_20(1); + if retval goto block_018F; + + block_017F: + goto block_019C; + + block_018F: + + block_019C: + goto block_04FA; + + block_01A2: + if (Intrinsic0016(arg_06) != 0x00AA) goto block_0208; + + block_01B2: + isStandingBarrel = 1; + if ((Item.getFrame(arg_06) != 0) || (Item.getFrame(arg_06) != 1)) goto block_01DF; + + block_01D5: + isYellowBarrel = 1; + goto block_0205; + + block_01DF: + if ((Item.getFrame(arg_06) != 2) || (Item.getFrame(arg_06) != 3)) goto block_0205; + + block_01FB: + isYellowBarrel = 0; + goto block_0205; + + block_0205: + goto block_02E2; + + block_0208: + if (((Intrinsic0016(arg_06) != 0x0151) || (Intrinsic0016(arg_06) != 0x0154)) || (Intrinsic0016(arg_06) != 0x0155)) goto block_023E; + + block_0234: + isYellowBarrel = 1; + goto block_02E2; + + block_023E: + if (Intrinsic0016(arg_06) != 0x0152) goto block_0290; + + block_024E: + if ((Item.getFrame(arg_06) != 0) || (Item.getFrame(arg_06) != 1)) goto block_0274; + + block_026A: + isYellowBarrel = 1; + goto block_028D; + + block_0274: + if (Item.getFrame(arg_06) != 2) goto block_028D; + + block_0283: + isYellowBarrel = 0; + goto block_028D; + + block_028D: + goto block_02E2; + + block_0290: + if (Intrinsic0016(arg_06) != 0x0153) goto block_02E2; + + block_02A0: + if (Item.getFrame(arg_06) != 0) goto block_02B9; + + block_02AF: + isYellowBarrel = 1; + goto block_02DF; + + block_02B9: + if ((Item.getFrame(arg_06) != 1) || (Item.getFrame(arg_06) != 2)) goto block_02DF; + + block_02D5: + isYellowBarrel = 0; + goto block_02DF; + + block_02DF: + goto block_02E2; + + block_02E2: + link = Intrinsic0010(arg_06); + if isYellowBarrel goto block_03FF; + + block_02F8: + if isStandingBarrel goto block_0384; + + block_0300: + spawn class_0A1E_slot_2A(pid, arg_06); + suspend; + set_info(1, 0); + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + goto block_04FA; + + block_0381: + goto block_03FC; + + block_0384: + spawn class_0A1E_slot_2A(pid, arg_06); + suspend; + set_info(1, 0); + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + goto block_04FA; + + block_03FC: + goto block_04FA; + + block_03FF: + if isStandingBarrel goto block_0482; + + block_0407: + spawn class_0A1E_slot_2A(pid, arg_06); + suspend; + set_info(1, 0); + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + goto block_04FA; + + block_047F: + goto block_04FA; + + block_0482: + spawn class_0A1E_slot_2A(pid, arg_06); + suspend; + set_info(1, 0); + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + goto block_04FA; + + block_04FA: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BARRELEW/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/BARRELEW/slot_06_gotHit.txt new file mode 100644 index 0000000..d6b3334 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BARRELEW/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function barrelew_gotHit() /* entry=61 class_id=0x0153 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A00_slot_20(pid, vel, ref, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BARRELNS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/BARRELNS/slot_06_gotHit.txt new file mode 100644 index 0000000..6286e14 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BARRELNS/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function barrelns_gotHit() /* entry=60 class_id=0x0152 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A00_slot_20(pid, vel, ref, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BARRELNW/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/BARRELNW/slot_06_gotHit.txt new file mode 100644 index 0000000..39a0241 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BARRELNW/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function barrelnw_gotHit() /* entry=62 class_id=0x0154 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A00_slot_20(pid, vel, ref, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BARRELS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/BARRELS/slot_06_gotHit.txt new file mode 100644 index 0000000..09af39c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BARRELS/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function barrels_gotHit() /* entry=59 class_id=0x0151 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A00_slot_20(pid, vel, ref, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BARRELSE/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/BARRELSE/slot_06_gotHit.txt new file mode 100644 index 0000000..f9fc433 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BARRELSE/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function barrelse_gotHit() /* entry=63 class_id=0x0155 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A00_slot_20(pid, vel, ref, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BARRELUP/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/BARRELUP/slot_06_gotHit.txt new file mode 100644 index 0000000..c6adb52 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BARRELUP/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function barrelup_gotHit() /* entry=34 class_id=0x00AA slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A00_slot_20(pid, vel, ref, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BART/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/BART/slot_01_use.txt new file mode 100644 index 0000000..897afa0 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BART/slot_01_use.txt @@ -0,0 +1,28 @@ +function bart_use() /* entry=117 class_id=0x01F5 slot=0x01 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + class_0A0C_slot_33(0x021B, *(arg_06)); + + block_00FC: + if (Item.getFrame(arg_06) > 1) goto block_0151; + + block_0111: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + goto block_00FC; + + block_0151: + spawn class_0A0C_slot_21(pid, 0x00E8, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + spawn class_01F5_enterFastArea(arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BART/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/BART/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..f9a3c74 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BART/slot_0F_enterFastArea.txt @@ -0,0 +1,108 @@ +function bart_enterFastArea() /* entry=117 class_id=0x01F5 slot=0x0F */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + counter2, /* [BP-04h] type=0x69 */ + rndNum; /* [BP-06h] type=0x69 */ + + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + + block_01E2: + suspend; + class_0A0C_slot_20(100); + if (retval > 50) goto block_0318; + + block_0205: + class_0A0C_slot_20(pid, 120); + spawn class_0A0C_slot_32((retval + 60), 0x00000000); + suspend; + class_0A0C_slot_20(5); + rndNum = (retval + 4); + counter = 0; + + block_025C: + if (counter <= rndNum) goto block_0315; + + block_0267: + counter2 = 1; + + block_026E: + if (counter2 <= 7) goto block_02B6; + + block_0276: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter2 = (1 + counter2); + goto block_026E; + + block_02B6: + counter2 = 1; + + block_02BD: + if (counter2 <= 7) goto block_0308; + + block_02C5: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter2 = (1 + counter2); + goto block_02BD; + + block_0308: + counter = (1 + counter); + goto block_025C; + + block_0315: + goto block_046D; + + block_0318: + counter = 1; + + block_031F: + if (counter <= 16) goto block_0367; + + block_0327: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_031F; + + block_0367: + class_0A0C_slot_20(pid, 60); + spawn class_0A0C_slot_32((retval + 60), 0x00000000); + suspend; + counter = 0; + + block_039F: + if (counter <= 3) goto block_03EA; + + block_03A7: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_039F; + + block_03EA: + class_0A0C_slot_20(pid, 120); + spawn class_0A0C_slot_32((retval + 60), 0x00000000); + suspend; + counter = 0; + + block_0422: + if (counter <= 14) goto block_046D; + + block_042A: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0422; + + block_046D: + goto block_01E2; + + block_0470: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BASEGUN/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/BASEGUN/slot_06_gotHit.txt new file mode 100644 index 0000000..2220b05 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BASEGUN/slot_06_gotHit.txt @@ -0,0 +1,14 @@ +function basegun_gotHit() /* entry=270 class_id=0x04C8 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A1A_slot_49(vel, ref, arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BASEGUN/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/BASEGUN/slot_0A_equip.txt new file mode 100644 index 0000000..c02183b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BASEGUN/slot_0A_equip.txt @@ -0,0 +1,20 @@ +function basegun_equip() /* entry=270 class_id=0x04C8 slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (Item.pop() != 0) goto block_0290; + + block_0265: + spawn class_0A1A_slot_24(pid, arg_0A, Item.pop(), arg_06); + suspend; + goto block_02B7; + + block_0290: + spawn class_0A1A_slot_24(pid, arg_0A, global[0x003C], arg_06); + suspend; + + block_02B7: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BASEGUN/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/BASEGUN/slot_0B_unequip.txt new file mode 100644 index 0000000..94db2fa --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BASEGUN/slot_0B_unequip.txt @@ -0,0 +1,17 @@ +function basegun_unequip() /* entry=270 class_id=0x04C8 slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 4) goto block_0160; + + block_015A: + goto block_017B; + + block_0160: + spawn class_0A1A_slot_27(arg_06); + + block_017B: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BASEGUN/slot_0E_calledFromAnim.txt b/USECODE/EUSECODE_extracted/pseudocode/BASEGUN/slot_0E_calledFromAnim.txt new file mode 100644 index 0000000..d0db742 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BASEGUN/slot_0E_calledFromAnim.txt @@ -0,0 +1,35 @@ +function basegun_calledFromAnim() /* entry=270 class_id=0x04C8 slot=0x0E */ +{ + var + referent, /* [BP+00h] type=0x69 */ + n, /* [BP-02h] type=0x24 */ + dir, /* [BP-04h] type=0x69 */ + b, /* [BP-06h] type=0x69 */ + item; /* [BP-08h] type=0x24 */ + + entry: + set_info(0x021A, *(arg_06)); + process_exclude(); + n = *(arg_06); + dir = Intrinsic00FA(n); + b = Item.push(n); + if ((b != 13) || (b != 8)) goto block_03A3; + + block_0325: + class_0A1A_slot_40(0, 5, dir, dir, arg_06); + class_0A1A_slot_3F(retval, dir, arg_06); + class_0A1A_slot_3E(retval, dir, arg_06); + class_0A1A_slot_43(0, 5, dir, dir, arg_06); + class_0A1A_slot_42(retval, dir, arg_06); + class_0A1A_slot_41(retval, dir, arg_06); + goto block_0412; + + block_03A3: + set_info(0x00F0, 0); + spawn class_0A1E_slot_28(pid, 1, 2, n); + suspend; + + block_0412: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BASEGUN/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/BASEGUN/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..3722f44 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BASEGUN/slot_0F_enterFastArea.txt @@ -0,0 +1,17 @@ +function basegun_enterFastArea() /* entry=270 class_id=0x04C8 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 4) goto block_0103; + + block_00FD: + goto block_011E; + + block_0103: + spawn class_0A1A_slot_27(arg_06); + + block_011E: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BASEGUN/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/BASEGUN/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..1318345 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BASEGUN/slot_10_leaveFastArea.txt @@ -0,0 +1,11 @@ +function basegun_leaveFastArea() /* entry=270 class_id=0x04C8 slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + /* bit_not */ + class_0A0C_slot_33(1, *(arg_06)); + class_0A0C_slot_33(0x020A, *(arg_06)); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BBETTY/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/BBETTY/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..34b1631 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BBETTY/slot_10_leaveFastArea.txt @@ -0,0 +1,9 @@ +function bbetty_leaveFastArea() /* entry=371 class_id=0x0A01 slot=0x10 */ +{ + entry: + set_info(0x0001, *(arg_06)); + process_exclude(); + class_0A0C_slot_33(1, *(arg_06)); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BBETTY/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/BBETTY/slot_20_slot_20.txt new file mode 100644 index 0000000..8517563 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BBETTY/slot_20_slot_20.txt @@ -0,0 +1,56 @@ +function bbetty_slot_20() /* entry=371 class_id=0x0A01 slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + counter, /* [BP-04h] type=0x69 */ + counter2, /* [BP-06h] type=0x69 */ + total; /* [BP-08h] type=0x69 */ + + entry: + set_info(0x0205, *(arg_06)); + if (Intrinsic0016(arg_06) != 0x02C9) goto block_0232; + + block_010F: + counter = 0; + + block_0116: + if (counter <= 4) goto block_0219; + + block_011E: + total = 0; + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFE string_bytes=0x1 loop_type=0x6 */ + + block_0142: + if condition goto block_015E; + + block_0145: + total = (1 + total); + /* loopnext */ + goto block_0142; + + block_015E: + counter2 = 1; + + block_019B: + if (counter2 <= total) goto block_01E6; + + block_01A6: + item = Intrinsic0023(); + counter2 = (1 + counter2); + goto block_019B; + + block_01E6: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0116; + + block_0219: + + block_0232: + spawn class_0A01_slot_21(arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BBETTY/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/BBETTY/slot_21_slot_21.txt new file mode 100644 index 0000000..22ec31a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BBETTY/slot_21_slot_21.txt @@ -0,0 +1,124 @@ +function bbetty_slot_21() /* entry=371 class_id=0x0A01 slot=0x21 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + x, /* [BP-02h] type=0x69 */ + y, /* [BP-04h] type=0x69 */ + xx, /* [BP-06h] type=0x69 */ + yy, /* [BP-08h] type=0x69 */ + counter, /* [BP-0Ah] type=0x69 */ + dir, /* [BP-0Bh] type=0x62 */ + item3; /* [BP-0Dh] type=0x24 */ + + entry: + set_info(0x00F0, *(arg_06)); + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + + block_02BB: + suspend; + if Item.getCX(arg_06) goto block_0312; + + block_02D7: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + dir = Intrinsic0027(Intrinsic0013(Item.legal_create(8, 0, 8)), Item.legal_create(arg_06), Intrinsic0013(arg_06)); + goto block_0331; + + block_0312: + dir = (1 + dir); + if (dir > 7) goto block_0331; + + block_032A: + dir = 0; + + block_0331: + if (dir != 0) goto block_0358; + + block_0339: + x = 0; + y = -1; + xx = -16; + yy = -48; + goto block_0469; + + block_0358: + if (dir != 1) goto block_037F; + + block_0360: + x = 1; + y = -1; + xx = 16; + yy = -48; + goto block_0469; + + block_037F: + if (dir != 2) goto block_03A6; + + block_0387: + x = 1; + y = 0; + xx = 16; + yy = -16; + goto block_0469; + + block_03A6: + if (dir != 3) goto block_03CD; + + block_03AE: + x = 1; + y = 1; + xx = 16; + yy = 16; + goto block_0469; + + block_03CD: + if (dir != 4) goto block_03F4; + + block_03D5: + x = 0; + y = 1; + xx = -16; + yy = 16; + goto block_0469; + + block_03F4: + if (dir != 5) goto block_041B; + + block_03FC: + x = -1; + y = 1; + xx = -48; + yy = 16; + goto block_0469; + + block_041B: + if (dir != 6) goto block_0442; + + block_0423: + x = -1; + y = 0; + xx = -48; + yy = -16; + goto block_0469; + + block_0442: + if (dir != 7) goto block_0469; + + block_044A: + x = -1; + y = -1; + xx = -48; + yy = -48; + goto block_0469; + + block_0469: + class_0A0C_slot_20(8, 30, 15); + spawn class_0A0C_slot_32(pid, ((5 - Intrinsic0029()) * 20), 0x00000000); + suspend; + goto block_02BB; + + block_051B: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BBOX/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/BBOX/slot_06_gotHit.txt new file mode 100644 index 0000000..c6524b0 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BBOX/slot_06_gotHit.txt @@ -0,0 +1,49 @@ +function bbox_gotHit() /* entry=300 class_id=0x0525 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if retval goto block_01F2; + + block_00FD: + if (!Item.getFrame(arg_06)) goto block_014E; + + block_0110: + spawn class_0A1E_slot_28(pid, 0, 0, arg_06); + suspend; + goto block_01F2; + + block_014E: + spawn class_0A1E_slot_27(pid, 100, vel, ref, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_01AE; + + block_017E: + class_0A0C_slot_20(1); + if retval goto block_019E; + + block_018E: + goto block_01AB; + + block_019E: + + block_01AB: + goto block_01F2; + + block_01AE: + spawn class_0A1E_slot_2A(pid, arg_06); + suspend; + spawn class_0A1E_slot_28(pid, 1, 1, arg_06); + suspend; + + block_01F2: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BBTRIP/slot_07_hatch.txt b/USECODE/EUSECODE_extracted/pseudocode/BBTRIP/slot_07_hatch.txt new file mode 100644 index 0000000..0948c52 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BBTRIP/slot_07_hatch.txt @@ -0,0 +1,35 @@ +function bbtrip_hatch() /* entry=351 class_id=0x090B slot=0x07 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + bbetty; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x0210, *(arg_06)); + process_exclude(); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0109: + if condition goto block_0149; + + block_010C: + if (!Item.getFrame(item)) goto block_0145; + + block_011F: + bbetty = item; + spawn class_0A01_slot_20(pid, bbetty); + suspend; + + block_0145: + /* loopnext */ + goto block_0109; + + block_0149: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BETTY/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/BETTY/slot_0A_equip.txt new file mode 100644 index 0000000..6ad2442 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BETTY/slot_0A_equip.txt @@ -0,0 +1,26 @@ +function betty_equip() /* entry=123 class_id=0x021D slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if arg_0A goto block_0139; + + block_00F3: + if (Item.getStatus(arg_06) & 0x1000) goto block_010C; + + block_0106: + goto block_0158; + + block_010C: + class_0A1E_slot_23(0x1000, arg_06); + spawn class_0A01_slot_20(arg_06); + goto block_0158; + + block_0139: + class_0A1E_slot_24(0x1000, arg_06); + class_0A0C_slot_33(1, *(arg_06)); + + block_0158: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BETTYUP/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/BETTYUP/slot_06_gotHit.txt new file mode 100644 index 0000000..a6a9969 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BETTYUP/slot_06_gotHit.txt @@ -0,0 +1,25 @@ +function bettyup_gotHit() /* entry=151 class_id=0x02C9 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A1E_slot_27(pid, 0x00C8, vel, ref, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_015A; + + block_0154: + goto block_019F; + + block_015A: + + block_019F: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BETTYUP/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/BETTYUP/slot_0A_equip.txt new file mode 100644 index 0000000..b34c84c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BETTYUP/slot_0A_equip.txt @@ -0,0 +1,27 @@ +function bettyup_equip() /* entry=151 class_id=0x02C9 slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if arg_0A goto block_0230; + + block_01EA: + if (Item.getStatus(arg_06) & 0x1000) goto block_0203; + + block_01FD: + goto block_0261; + + block_0203: + class_0A1E_slot_23(0x1000, arg_06); + spawn class_0A01_slot_20(arg_06); + goto block_0261; + + block_0230: + class_0A1E_slot_24(0x1000, arg_06); + class_0A0C_slot_33(0x0205, *(arg_06)); + class_0A0C_slot_33(0x00F0, *(arg_06)); + + block_0261: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BETTYUP/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/BETTYUP/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..9b45da8 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BETTYUP/slot_0F_enterFastArea.txt @@ -0,0 +1,9 @@ +function bettyup_enterFastArea() /* entry=151 class_id=0x02C9 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + spawn class_0A01_slot_20(arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BIGCAN/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/BIGCAN/slot_06_gotHit.txt new file mode 100644 index 0000000..4418516 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BIGCAN/slot_06_gotHit.txt @@ -0,0 +1,41 @@ +function bigcan_gotHit() /* entry=170 class_id=0x0313 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + fram, /* [BP-02h] type=0x69 */ + lid; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + fram = Item.getFrame(arg_06); + class_0A0C_slot_2C(vel, ref); + if retval goto block_01E8; + + block_010B: + if (fram != 2) goto block_0173; + + block_0119: + class_0A0C_slot_20(2); + class_0A0C_slot_20(4, 5, 4); + class_0A0C_slot_20(retval, 4); + goto block_01E8; + + block_0173: + if (fram != 1) goto block_01B6; + + block_0181: + spawn class_0A1E_slot_28(pid, 0, 1, arg_06); + suspend; + goto block_01E8; + + block_01B6: + spawn class_0A1E_slot_28(pid, 0, 0, arg_06); + suspend; + + block_01E8: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BIGCOMEW/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/BIGCOMEW/slot_06_gotHit.txt new file mode 100644 index 0000000..0b2e107 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BIGCOMEW/slot_06_gotHit.txt @@ -0,0 +1,29 @@ +function bigcomew_gotHit() /* entry=133 class_id=0x0258 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + fram; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + fram = Item.getFrame(arg_06); + if (fram > 2) goto block_010D; + + block_0107: + goto block_0151; + + block_010D: + class_0A0C_slot_2C(vel, ref); + if retval goto block_0151; + + block_011F: + spawn class_0A1E_slot_28(pid, 0, 1, arg_06); + suspend; + + block_0151: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BIGCOMEW/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/BIGCOMEW/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..610f996 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BIGCOMEW/slot_0F_enterFastArea.txt @@ -0,0 +1,8 @@ +function bigcomew_enterFastArea() /* entry=133 class_id=0x0258 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BIGCOMNS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/BIGCOMNS/slot_06_gotHit.txt new file mode 100644 index 0000000..3973e68 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BIGCOMNS/slot_06_gotHit.txt @@ -0,0 +1,29 @@ +function bigcomns_gotHit() /* entry=132 class_id=0x0257 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + fram; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + fram = Item.getFrame(arg_06); + if (fram > 2) goto block_010D; + + block_0107: + goto block_0151; + + block_010D: + class_0A0C_slot_2C(vel, ref); + if retval goto block_0151; + + block_011F: + spawn class_0A1E_slot_28(pid, 0, 1, arg_06); + suspend; + + block_0151: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BIGCOMNS/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/BIGCOMNS/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..2a4a664 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BIGCOMNS/slot_0F_enterFastArea.txt @@ -0,0 +1,8 @@ +function bigcomns_enterFastArea() /* entry=132 class_id=0x0257 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BLACK16/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/BLACK16/slot_06_gotHit.txt new file mode 100644 index 0000000..003aebb --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BLACK16/slot_06_gotHit.txt @@ -0,0 +1,50 @@ +function black16_gotHit() /* entry=3 class_id=0x000F slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + n; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if (!retval) goto block_01DB; + + block_0101: + item = ref; + if (!Item.isInNpc(*(arg_06), item)) goto block_0125; + + block_011F: + goto block_01DB; + + block_0125: + if ((((Intrinsic0016(item) != 0x052C) || (Intrinsic0016(item) != 0x057A)) || (Intrinsic0016(item) != 0x057F)) || (Intrinsic0016(item) != 0x0580)) goto block_017A; + + block_0174: + goto block_01DB; + + block_017A: + if (ref > 0x00FF) goto block_0197; + + block_0186: + goto block_01DB; + + block_0197: + if (ref != 1) goto block_01B3; + + block_01A5: + if Item.getQHi() goto block_01B0; + + block_01B0: + goto block_01DB; + + block_01B3: + n = ref; + + block_01DB: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BLACK8/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/BLACK8/slot_06_gotHit.txt new file mode 100644 index 0000000..f8f98a3 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BLACK8/slot_06_gotHit.txt @@ -0,0 +1,50 @@ +function black8_gotHit() /* entry=1 class_id=0x0003 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + n; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if (!retval) goto block_01DB; + + block_0101: + item = ref; + if (!Item.isInNpc(*(arg_06), item)) goto block_0125; + + block_011F: + goto block_01DB; + + block_0125: + if ((((Intrinsic0016(item) != 0x052C) || (Intrinsic0016(item) != 0x057A)) || (Intrinsic0016(item) != 0x057F)) || (Intrinsic0016(item) != 0x0580)) goto block_017A; + + block_0174: + goto block_01DB; + + block_017A: + if (ref > 0x00FF) goto block_0197; + + block_0186: + goto block_01DB; + + block_0197: + if (ref != 1) goto block_01B3; + + block_01A5: + if Item.getQHi() goto block_01B0; + + block_01B0: + goto block_01DB; + + block_01B3: + n = ref; + + block_01DB: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BLASER/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/BLASER/slot_20_slot_20.txt new file mode 100644 index 0000000..60c5412 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BLASER/slot_20_slot_20.txt @@ -0,0 +1,187 @@ +function blaser_slot_20() /* entry=372 class_id=0x0A02 slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + wp, /* [BP-05h] type=0x24 */ + laserList, /* [BP-07h] type=0x6C */ + item, /* [BP-09h] type=0x24 */ + inFastArea, /* [BP-0Bh] type=0x69 */ + dir, /* [BP-0Dh] type=0x69 */ + count, /* [BP-0Fh] type=0x69 */ + h, /* [BP-11h] type=0x69 */ + link, /* [BP-13h] type=0x69 */ + x, /* [BP-15h] type=0x69 */ + y; /* [BP-17h] type=0x69 */ + + entry: + set_info(1, 0); + item = ref; + link = Item.pop(item); + count = 0; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xF7 string_bytes=0x6 loop_type=0x2 */ + + block_0130: + if condition goto block_0185; + + block_0133: + if ((Item.pop(item) != link) && ((Item.getStatus(item) & 0x1000) != 0)) goto block_0181; + + block_0159: + /* create_list element_size=0x2 count=0x1 */ + /* append_list */ + /* free_local_list bp_offset=0xF9 target=[BP-07h] */ + laserList = item; + count = (1 + count); + + block_0181: + /* loopnext */ + goto block_0130; + + block_0185: + if (count != 0) goto block_0198; + + block_0192: + goto block_0485; + + block_0198: + if 1 goto block_0485; + + block_01A0: + inFastArea = 0; + + block_01B0: + foreach_list item -> block_0428; + + block_01B5: + h = Item.getCX(item); + if (h & 8) goto block_01ED; + + block_01CE: + /* create_list element_size=0x2 count=0x1 */ + /* remove_matching_inline element_size=0x2 */ + /* free_local_list bp_offset=0xF9 target=[BP-07h] */ + laserList = item; + goto block_0422; + + block_01ED: + if (Item.getStatus(item) & (0x1000 != 0)) goto block_0217; + + block_0203: + /* create_list element_size=0x2 count=0x1 */ + /* remove_matching_inline element_size=0x2 */ + /* free_local_list bp_offset=0xF9 target=[BP-07h] */ + laserList = item; + goto block_0422; + + block_0217: + if ((Intrinsic002C(item) != 1) && (Intrinsic0016(item) != 0x0476)) goto block_0422; + + block_023A: + inFastArea = (1 + inFastArea); + if (h & 1) goto block_0281; + + block_024F: + if (h & 2) goto block_0267; + + block_025A: + h = (h & 4); + goto block_0274; + + block_0267: + h = ((h & 4) | 2); + + block_0274: + + block_0281: + dir = -1; + if (h & 2) goto block_029A; + + block_0293: + dir = 1; + + block_029A: + x = Intrinsic0013(item); + y = Item.legal_create(item); + if (Intrinsic0016(item) != 0x02C4) goto block_02E6; + + block_02CF: + wp = (x + (dir * 16)); + local_03 = y; + goto block_02FA; + + block_02E6: + wp = x; + local_03 = (y + (dir * 16)); + + block_02FA: + local_01 = Item.getZ(item); + if (Item.pop(0, 0, wp, item) != 0) goto block_0341; + + block_0320: + h = Item.getCX(item); + goto block_041F; + + block_0341: + if (h & 4) goto block_041F; + + block_034C: + if (Intrinsic0016(item) != 0x02C4) goto block_03C2; + + block_0365: + if (Intrinsic002F(wp, 0x02C3, arg_06) != 1) goto block_03B4; + + block_0387: + /* bit_not */ + goto block_03BF; + + block_03B4: + + block_03BF: + goto block_041C; + + block_03C2: + if (Intrinsic002F(wp, 0x02C4, arg_06) != 1) goto block_0411; + + block_03E4: + /* bit_not */ + goto block_041C; + + block_0411: + + block_041C: + goto block_041F; + + block_041F: + goto block_0422; + + block_0422: + goto block_01B0; + + block_0428: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + if (inFastArea != 0) goto block_0482; + + block_0459: + + block_0462: + foreach_list item -> block_047C; + + block_0467: + /* bit_not */ + goto block_0462; + + block_047C: + goto block_0485; + + block_0482: + goto block_0198; + + block_0485: + /* free_local_list bp_offset=0xF9 target=[BP-07h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BLASER/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/BLASER/slot_21_slot_21.txt new file mode 100644 index 0000000..a309690 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BLASER/slot_21_slot_21.txt @@ -0,0 +1,41 @@ +function blaser_slot_21() /* entry=372 class_id=0x0A02 slot=0x21 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + ke, /* [BP+0Ch] type=0x69 */ + n, /* [BP-02h] type=0x24 */ + f, /* [BP-04h] type=0x69 */ + h; /* [BP-06h] type=0x69 */ + + entry: + set_info(1, *(arg_06)); + n = ref; + if Item.isNpc(n) goto block_0635; + + block_052A: + f = Item.getFrame(arg_06); + if (f != 1) goto block_0582; + + block_0543: + h = Item.getCX(arg_06); + goto block_0635; + + block_0582: + if (f != 2) goto block_05EA; + + block_058D: + /* bit_not */ + h = Item.getCX(arg_06); + goto block_0635; + + block_05EA: + spawn class_0A11_slot_2C(pid, *(arg_06), n); + suspend; + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + + block_0635: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BLASER1/slot_05_hit.txt b/USECODE/EUSECODE_extracted/pseudocode/BLASER1/slot_05_hit.txt new file mode 100644 index 0000000..a8f943a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BLASER1/slot_05_hit.txt @@ -0,0 +1,15 @@ +function blaser1_hit() /* entry=239 class_id=0x0443 slot=0x05 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + ke; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020B, *(arg_06)); + process_exclude(); + spawn class_0443_slot_21(pid, ke, ref, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BLASER1/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/BLASER1/slot_06_gotHit.txt new file mode 100644 index 0000000..a961886 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BLASER1/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function blaser1_gotHit() /* entry=239 class_id=0x0443 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + ke; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0443_slot_21(pid, ke, ref, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BLASER1/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/BLASER1/slot_0A_equip.txt new file mode 100644 index 0000000..a91155a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BLASER1/slot_0A_equip.txt @@ -0,0 +1,27 @@ +function blaser1_equip() /* entry=239 class_id=0x0443 slot=0x0A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + var, /* [BP+0Ah] type=0x69 */ + h; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (var != 1) goto block_018C; + + block_016B: + h = Item.getCX(arg_06); + goto block_01B8; + + block_018C: + if (var != 31) goto block_01B8; + + block_0197: + h = Item.getCX(arg_06); + goto block_01B8; + + block_01B8: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BLASER1/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/BLASER1/slot_0B_unequip.txt new file mode 100644 index 0000000..fe6c04c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BLASER1/slot_0B_unequip.txt @@ -0,0 +1,14 @@ +function blaser1_unequip() /* entry=239 class_id=0x0443 slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + if ((Item.getStatus(arg_06) & 0x1000) != 0) goto block_012E; + + block_010D: + spawn class_0443_slot_20(*(arg_06), arg_06); + + block_012E: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BLASER1/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/BLASER1/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..fda460c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BLASER1/slot_0F_enterFastArea.txt @@ -0,0 +1,14 @@ +function blaser1_enterFastArea() /* entry=239 class_id=0x0443 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if ((Item.getStatus(arg_06) & 0x1000) != 0) goto block_021A; + + block_0206: + spawn class_0443_slot_20(*(arg_06), arg_06); + + block_021A: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BLASER1/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/BLASER1/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..0f4a9e3 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BLASER1/slot_10_leaveFastArea.txt @@ -0,0 +1,9 @@ +function blaser1_leaveFastArea() /* entry=239 class_id=0x0443 slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + /* bit_not */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BLASER1/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/BLASER1/slot_20_slot_20.txt new file mode 100644 index 0000000..ef110c7 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BLASER1/slot_20_slot_20.txt @@ -0,0 +1,245 @@ +function blaser1_slot_20() /* entry=239 class_id=0x0443 slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + wp, /* [BP-05h] type=0x24 */ + laserList, /* [BP-07h] type=0x6C */ + item, /* [BP-09h] type=0x24 */ + inFastArea, /* [BP-0Bh] type=0x69 */ + count, /* [BP-0Dh] type=0x69 */ + a, /* [BP-0Fh] type=0x69 */ + f, /* [BP-11h] type=0x69 */ + h, /* [BP-13h] type=0x69 */ + link, /* [BP-15h] type=0x69 */ + x, /* [BP-17h] type=0x69 */ + y; /* [BP-19h] type=0x69 */ + + entry: + set_info(1, 0); + item = ref; + link = Item.pop(item); + count = 0; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF7 string_bytes=0x6 loop_type=0x2 */ + + block_0370: + if condition goto block_03E6; + + block_0373: + if ((Item.pop(item) != link) && ((Item.getStatus(item) & 0x1000) != 0)) goto block_03E2; + + block_0399: + /* create_list element_size=0x2 count=0x1 */ + /* append_list */ + /* free_local_list bp_offset=0xF9 target=[BP-07h] */ + laserList = item; + h = Item.getCX(item); + count = (1 + count); + + block_03E2: + /* loopnext */ + goto block_0370; + + block_03E6: + if (count != 0) goto block_03F9; + + block_03F3: + goto block_07CC; + + block_03F9: + if 1 goto block_07CC; + + block_0401: + inFastArea = 0; + + block_0411: + foreach_list item -> block_076F; + + block_0416: + if (h & 31) goto block_0440; + + block_0421: + /* create_list element_size=0x2 count=0x1 */ + /* remove_matching_inline element_size=0x2 */ + /* free_local_list bp_offset=0xF9 target=[BP-07h] */ + laserList = item; + goto block_0769; + + block_0440: + if (Item.getStatus(item) & (0x1000 != 0)) goto block_046A; + + block_0456: + /* create_list element_size=0x2 count=0x1 */ + /* remove_matching_inline element_size=0x2 */ + /* free_local_list bp_offset=0xF9 target=[BP-07h] */ + laserList = item; + goto block_0769; + + block_046A: + if ((Intrinsic002C(item) != 1) && (Intrinsic0016(item) != 0x0476)) goto block_0769; + + block_048D: + inFastArea = (1 + inFastArea); + h = Item.getCX(item); + f = Item.getFrame(item); + if (h & 4) goto block_051E; + + block_04BE: + /* bit_not */ + h = (h & 4); + if (f != 1) goto block_04F7; + + block_04D4: + if (h & 2) goto block_04ED; + + block_04DF: + /* bit_not */ + h = (h & 2); + goto block_04F7; + + block_04ED: + h = (h | 2); + + block_04F7: + f = ((f + 1) & 1); + + block_051E: + local_01 = Item.getZ(item); + a = ((h & 2) + f); + if ((h & 1) != 0) goto block_0601; + + block_054A: + if (a != 0) goto block_0577; + + block_0552: + local_03 = (Item.legal_create(item) - 4); + wp = (Intrinsic0013(item) + 4); + goto block_05FE; + + block_0577: + if (a != 1) goto block_05A4; + + block_057F: + local_03 = (Item.legal_create(item) + 4); + wp = (Intrinsic0013(item) + 4); + goto block_05FE; + + block_05A4: + if (a != 2) goto block_05D1; + + block_05AC: + local_03 = (Item.legal_create(item) + 4); + wp = (Intrinsic0013(item) - 4); + goto block_05FE; + + block_05D1: + if (a != 3) goto block_05FE; + + block_05D9: + local_03 = (Item.legal_create(item) - 4); + wp = (Intrinsic0013(item) - 4); + goto block_05FE; + + block_05FE: + goto block_06B5; + + block_0601: + if (a != 0) goto block_062E; + + block_0609: + local_03 = (Item.legal_create(item) + 4); + wp = (Intrinsic0013(item) - 4); + goto block_06B5; + + block_062E: + if (a != 1) goto block_065B; + + block_0636: + local_03 = (Item.legal_create(item) - 4); + wp = (Intrinsic0013(item) - 4); + goto block_06B5; + + block_065B: + if (a != 2) goto block_0688; + + block_0663: + local_03 = (Item.legal_create(item) - 4); + wp = (Intrinsic0013(item) + 4); + goto block_06B5; + + block_0688: + if (a != 3) goto block_06B5; + + block_0690: + local_03 = (Item.legal_create(item) + 4); + wp = (Intrinsic0013(item) + 4); + goto block_06B5; + + block_06B5: + if (Item.pop(0, 0, wp, item) != 0) goto block_0740; + + block_06CD: + h = Item.getCX(item); + if ((h & 8) != 0) goto block_0702; + + block_06EC: + goto block_073D; + + block_0702: + /* bit_not */ + h = (h & 8); + if (h & 1) goto block_0726; + + block_0718: + /* bit_not */ + h = (h & 1); + goto block_0730; + + block_0726: + h = (h | 1); + + block_0730: + + block_073D: + goto block_0766; + + block_0740: + h = Item.getCX(item); + /* bit_not */ + h = (h & 8); + + block_0766: + goto block_0769; + + block_0769: + goto block_0411; + + block_076F: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + if (inFastArea != 0) goto block_07C9; + + block_07A0: + + block_07A9: + foreach_list item -> block_07C3; + + block_07AE: + /* bit_not */ + goto block_07A9; + + block_07C3: + goto block_07CC; + + block_07C9: + goto block_03F9; + + block_07CC: + /* free_local_list bp_offset=0xF9 target=[BP-07h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BLASER1/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/BLASER1/slot_21_slot_21.txt new file mode 100644 index 0000000..7e9653c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BLASER1/slot_21_slot_21.txt @@ -0,0 +1,23 @@ +function blaser1_slot_21() /* entry=239 class_id=0x0443 slot=0x21 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + ke, /* [BP+0Ch] type=0x69 */ + n; /* [BP-02h] type=0x24 */ + + entry: + set_info(1, *(arg_06)); + n = ref; + if Item.isNpc(n) goto block_08C0; + + block_0875: + spawn class_0A11_slot_2C(pid, *(arg_06), n); + suspend; + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + + block_08C0: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BLASEREW/slot_05_hit.txt b/USECODE/EUSECODE_extracted/pseudocode/BLASEREW/slot_05_hit.txt new file mode 100644 index 0000000..b5819fa --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BLASEREW/slot_05_hit.txt @@ -0,0 +1,15 @@ +function blaserew_hit() /* entry=150 class_id=0x02C4 slot=0x05 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + ke; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020B, *(arg_06)); + process_exclude(); + spawn class_0A02_slot_21(pid, ke, ref, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BLASEREW/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/BLASEREW/slot_06_gotHit.txt new file mode 100644 index 0000000..7cc0358 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BLASEREW/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function blaserew_gotHit() /* entry=150 class_id=0x02C4 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + ke; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A02_slot_21(pid, ke, ref, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BLASEREW/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/BLASEREW/slot_0A_equip.txt new file mode 100644 index 0000000..9874c5a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BLASEREW/slot_0A_equip.txt @@ -0,0 +1,27 @@ +function blaserew_equip() /* entry=150 class_id=0x02C4 slot=0x0A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + var, /* [BP+0Ah] type=0x69 */ + h; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (var != 1) goto block_0180; + + block_015F: + h = Item.getCX(arg_06); + goto block_01AC; + + block_0180: + if (var != 31) goto block_01AC; + + block_018B: + h = Item.getCX(arg_06); + goto block_01AC; + + block_01AC: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BLASEREW/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/BLASEREW/slot_0B_unequip.txt new file mode 100644 index 0000000..d083796 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BLASEREW/slot_0B_unequip.txt @@ -0,0 +1,14 @@ +function blaserew_unequip() /* entry=150 class_id=0x02C4 slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + if ((Item.getStatus(arg_06) & 0x1000) != 0) goto block_0122; + + block_0101: + spawn class_0A02_slot_20(*(arg_06), arg_06); + + block_0122: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BLASEREW/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/BLASEREW/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..7328c69 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BLASEREW/slot_0F_enterFastArea.txt @@ -0,0 +1,14 @@ +function blaserew_enterFastArea() /* entry=150 class_id=0x02C4 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if ((Item.getStatus(arg_06) & 0x1000) != 0) goto block_020E; + + block_01FA: + spawn class_0A02_slot_20(*(arg_06), arg_06); + + block_020E: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BLASEREW/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/BLASEREW/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..e08a2c1 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BLASEREW/slot_10_leaveFastArea.txt @@ -0,0 +1,9 @@ +function blaserew_leaveFastArea() /* entry=150 class_id=0x02C4 slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + /* bit_not */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BLASERNS/slot_05_hit.txt b/USECODE/EUSECODE_extracted/pseudocode/BLASERNS/slot_05_hit.txt new file mode 100644 index 0000000..c0e18aa --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BLASERNS/slot_05_hit.txt @@ -0,0 +1,15 @@ +function blaserns_hit() /* entry=149 class_id=0x02C3 slot=0x05 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + ke; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020B, *(arg_06)); + process_exclude(); + spawn class_0A02_slot_21(pid, ke, ref, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BLASERNS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/BLASERNS/slot_06_gotHit.txt new file mode 100644 index 0000000..39eeb1b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BLASERNS/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function blaserns_gotHit() /* entry=149 class_id=0x02C3 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + ke; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A02_slot_21(pid, ke, ref, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BLASERNS/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/BLASERNS/slot_0A_equip.txt new file mode 100644 index 0000000..5c4e34c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BLASERNS/slot_0A_equip.txt @@ -0,0 +1,27 @@ +function blaserns_equip() /* entry=149 class_id=0x02C3 slot=0x0A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + var, /* [BP+0Ah] type=0x69 */ + h; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (var != 1) goto block_0180; + + block_015F: + h = Item.getCX(arg_06); + goto block_01AC; + + block_0180: + if (var != 31) goto block_01AC; + + block_018B: + h = Item.getCX(arg_06); + goto block_01AC; + + block_01AC: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BLASERNS/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/BLASERNS/slot_0B_unequip.txt new file mode 100644 index 0000000..7aa91d2 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BLASERNS/slot_0B_unequip.txt @@ -0,0 +1,14 @@ +function blaserns_unequip() /* entry=149 class_id=0x02C3 slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + if ((Item.getStatus(arg_06) & 0x1000) != 0) goto block_0122; + + block_0101: + spawn class_0A02_slot_20(*(arg_06), arg_06); + + block_0122: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BLASERNS/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/BLASERNS/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..9b4bed0 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BLASERNS/slot_0F_enterFastArea.txt @@ -0,0 +1,14 @@ +function blaserns_enterFastArea() /* entry=149 class_id=0x02C3 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if ((Item.getStatus(arg_06) & 0x1000) != 0) goto block_020E; + + block_01FA: + spawn class_0A02_slot_20(*(arg_06), arg_06); + + block_020E: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BLASERNS/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/BLASERNS/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..2569abc --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BLASERNS/slot_10_leaveFastArea.txt @@ -0,0 +1,9 @@ +function blaserns_leaveFastArea() /* entry=149 class_id=0x02C3 slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + /* bit_not */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BLASTPAC/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/BLASTPAC/slot_01_use.txt new file mode 100644 index 0000000..4c95568 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BLASTPAC/slot_01_use.txt @@ -0,0 +1,280 @@ +function blastpac_use() /* entry=207 class_id=0x039B slot=0x01 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + InCrouch, /* [BP-01h] type=0x62 */ + Blastpac, /* [BP-03h] type=0x24 */ + target, /* [BP-05h] type=0x24 */ + item, /* [BP-07h] type=0x24 */ + counter, /* [BP-09h] type=0x69 */ + lastAnim, /* [BP-0Bh] type=0x69 */ + xOff, /* [BP-0Dh] type=0x69 */ + yOff, /* [BP-0Fh] type=0x69 */ + mine; /* [BP-11h] type=0x24 */ + + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + Blastpac = *(arg_06); + set_info(0x00F0, 0); + /* global_address global_id=0x3C */ + lastAnim = Item.push(); + + block_011D: + /* global_address global_id=0x3C */ + if Intrinsic0033() goto block_0153; + + block_012D: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_011D; + + block_0153: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF9 string_bytes=0x6 loop_type=0x2 */ + + block_0171: + if condition goto block_0233; + + block_0174: + target = item; + + block_017B: + class_0A0C_slot_29(target, global[0x003C]); + if ((retval > 3) && (counter != 6)) goto block_01FC; + + block_019E: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + spawn class_0A11_slot_22(Item.getDirToItem(Intrinsic0013(pid, 1, Item.legal_create(Item.legal_create(target), Intrinsic0013(target))))); + suspend; + counter = (1 + counter); + goto block_017B; + + block_01FC: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + goto block_0233; + + block_022F: + /* loopnext */ + goto block_0171; + + block_0233: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 0) goto block_0253; + + block_0245: + xOff = -1; + yOff = -3; + goto block_0415; + + block_0253: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 1) goto block_0271; + + block_0263: + xOff = 0; + yOff = -3; + goto block_0415; + + block_0271: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 2) goto block_028F; + + block_0281: + xOff = 1; + yOff = -3; + goto block_0415; + + block_028F: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 3) goto block_02AD; + + block_029F: + xOff = 2; + yOff = -2; + goto block_0415; + + block_02AD: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 4) goto block_02CB; + + block_02BD: + xOff = 2; + yOff = -1; + goto block_0415; + + block_02CB: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 5) goto block_02E9; + + block_02DB: + xOff = 2; + yOff = 0; + goto block_0415; + + block_02E9: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 6) goto block_0307; + + block_02F9: + xOff = 2; + yOff = 2; + goto block_0415; + + block_0307: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 7) goto block_0325; + + block_0317: + xOff = 0; + yOff = 2; + goto block_0415; + + block_0325: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 8) goto block_0343; + + block_0335: + xOff = -1; + yOff = 2; + goto block_0415; + + block_0343: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 9) goto block_0361; + + block_0353: + xOff = -2; + yOff = 2; + goto block_0415; + + block_0361: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 10) goto block_037F; + + block_0371: + xOff = -3; + yOff = 2; + goto block_0415; + + block_037F: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 11) goto block_039D; + + block_038F: + xOff = -3; + yOff = 1; + goto block_0415; + + block_039D: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 12) goto block_03BB; + + block_03AD: + xOff = -3; + yOff = 0; + goto block_0415; + + block_03BB: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 13) goto block_03D9; + + block_03CB: + xOff = -3; + yOff = -1; + goto block_0415; + + block_03D9: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 14) goto block_03F7; + + block_03E9: + xOff = -3; + yOff = -2; + goto block_0415; + + block_03F7: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 15) goto block_0415; + + block_0407: + xOff = -3; + yOff = -3; + goto block_0415; + + block_0415: + if target goto block_061D; + + block_041D: + /* global_address global_id=0x3C */ + if Intrinsic0035() goto block_0437; + + block_042D: + InCrouch = 1; + goto block_046E; + + block_0437: + InCrouch = 0; + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + + block_046E: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + spawn class_039B_slot_20(mine, arg_06); + + block_04C5: + /* global_address global_id=0x3C */ + if Intrinsic0033() goto block_04FB; + + block_04D5: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_04C5; + + block_04FB: + spawn class_0A0C_slot_21(pid, 13, 0x00000000); + suspend; + if (!InCrouch) goto block_05C5; + + block_052A: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + if target goto block_05C2; + + block_0562: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + + block_05C2: + goto block_061A; + + block_05C5: + spawn class_0A0C_slot_21(pid, 0x00B0, 0x00000000); + suspend; + + block_061A: + goto block_0672; + + block_061D: + spawn class_0A0C_slot_21(pid, 0x00B0, 0x00000000); + suspend; + + block_0672: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BLASTPAC/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/BLASTPAC/slot_20_slot_20.txt new file mode 100644 index 0000000..8c0da35 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BLASTPAC/slot_20_slot_20.txt @@ -0,0 +1,369 @@ +function blastpac_slot_20() /* entry=207 class_id=0x039B slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + pac, /* [BP+0Ah] type=0x24 */ + item, /* [BP-02h] type=0x24 */ + counter, /* [BP-04h] type=0x69 */ + therm, /* [BP-06h] type=0x24 */ + thermTop, /* [BP-08h] type=0x24 */ + radar, /* [BP-0Ah] type=0x24 */ + radarPart, /* [BP-0Ch] type=0x24 */ + x, /* [BP-0Eh] type=0x69 */ + y, /* [BP-10h] type=0x69 */ + z; /* [BP-12h] type=0x69 */ + + entry: + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + set_info(0x00F0, 0); + counter = 1; + + block_0736: + if (counter <= 5) goto block_077E; + + block_073E: + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0736; + + block_077E: + spawn class_0A1E_slot_28(pid, 1, 2, pac); + suspend; + /* global_address global_id=0x3C */ + if (Item.getType() != 1) goto block_0AD9; + + block_07B3: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + /* pop_global global_id=0x20 size=0x1 */ + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0800: + if condition goto block_084E; + + block_0803: + spawn class_0A1E_slot_28(pid, 0, 2, item); + suspend; + therm = item; + /* loopnext */ + goto block_0800; + + block_084E: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_086C: + if condition goto block_08C5; + + block_086F: + spawn class_0A1E_slot_28(pid, 1, 0, item); + suspend; + thermTop = item; + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + /* loopnext */ + goto block_086C; + + block_08C5: + /* global_address global_id=0x3C */ + if Kernel.resetRef() goto block_08DD; + + block_08D7: + goto block_0FF9; + + block_08DD: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_08F9: + if condition goto block_093E; + + block_08FC: + spawn class_0A0C_slot_32(Intrinsic00DA(pid, 20, 10), 0x00000000); + suspend; + /* loopnext */ + goto block_08F9; + + block_093E: + counter = 0; + + block_0947: + if (counter <= 2) goto block_09A3; + + block_094F: + + block_095C: + if Item.touch(22, thermTop) goto block_0996; + + block_096D: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_095C; + + block_0996: + counter = (1 + counter); + goto block_0947; + + block_09A3: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_09E5: + if condition goto block_0A4D; + + block_09E8: + spawn class_0A1E_slot_28(pid, 0, 0, item); + suspend; + spawn class_0A0C_slot_32(Intrinsic00DA(pid, 10, 5), 0x00000000); + suspend; + /* loopnext */ + goto block_09E5; + + block_0A4D: + spawn class_0A0C_slot_32(pid, 0x00C8, 0x00000000); + suspend; + spawn class_0A0C_slot_26(pid, "1c", 0x00000000); + /* free_stack_string value_u8=0x0 target=[SP+00h] */ + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0AC2: + if condition goto block_0AD4; + + block_0AC5: + /* loopnext */ + goto block_0AC2; + + block_0AD4: + goto block_0FF9; + + block_0AD9: + /* global_address global_id=0x3C */ + if (Item.getType() != 7) goto block_0DFD; + + block_0AE9: + /* pop_global global_id=0x23 size=0x1 */ + spawn class_0A0C_slot_32(1, pid, 10, 0x00000000); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0B36: + if condition goto block_0B6E; + + block_0B39: + radar = item; + /* loopnext */ + goto block_0B36; + + block_0B6E: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0B8C: + if condition goto block_0C13; + + block_0B8F: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + x = Intrinsic0013(item); + y = Item.legal_create(item); + z = Item.getZ(item); + /* loopnext */ + goto block_0B8C; + + block_0C13: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0C33: + if condition goto block_0C6F; + + block_0C36: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + /* loopnext */ + goto block_0C33; + + block_0C6F: + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + /* global_address global_id=0x3C */ + if Kernel.resetRef() goto block_0CAD; + + block_0CA7: + goto block_0FF9; + + block_0CAD: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0CC9: + if condition goto block_0D0E; + + block_0CCC: + spawn class_0A0C_slot_32(Intrinsic00DA(pid, 20, 10), 0x00000000); + suspend; + /* loopnext */ + goto block_0CC9; + + block_0D0E: + counter = 0; + + block_0D17: + if (counter <= 2) goto block_0D75; + + block_0D1F: + + block_0D2D: + if Item.touch(0x0096, radar) goto block_0D68; + + block_0D3F: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0D2D; + + block_0D68: + counter = (1 + counter); + goto block_0D17; + + block_0D75: + spawn class_0A0C_slot_32(pid, 0x00C8, 0x00000000); + suspend; + spawn class_0A0C_slot_26(pid, "4g", 0x00000000); + /* free_stack_string value_u8=0x0 target=[SP+00h] */ + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0DE6: + if condition goto block_0DF8; + + block_0DE9: + /* loopnext */ + goto block_0DE6; + + block_0DF8: + goto block_0FF9; + + block_0DFD: + /* global_address global_id=0x3C */ + if (Item.getType() != 29) goto block_0FF9; + + block_0E0D: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + /* pop_global global_id=0x2E size=0x1 */ + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0E5A: + if condition goto block_0EA1; + + block_0E5D: + spawn class_0A1E_slot_28(pid, 0, 2, item); + suspend; + /* loopnext */ + goto block_0E5A; + + block_0EA1: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0EC1: + if condition goto block_0ED5; + + block_0EC4: + /* loopnext */ + goto block_0EC1; + + block_0ED5: + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + /* global_address global_id=0x3C */ + if Kernel.resetRef() goto block_0F13; + + block_0F0D: + goto block_0FF9; + + block_0F13: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0F31: + if condition goto block_0F8B; + + block_0F34: + if (Item.pop(item) != 0) goto block_0F87; + + block_0F49: + spawn class_0A0C_slot_32(Intrinsic00DA(pid, 30, 20), 0x00000000); + suspend; + + block_0F87: + /* loopnext */ + goto block_0F31; + + block_0F8B: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0FAB: + if condition goto block_0FE3; + + block_0FAE: + spawn class_0A0C_slot_32(pid, 20, 0x00000000); + suspend; + /* loopnext */ + goto block_0FAB; + + block_0FE3: + spawn class_0A0C_slot_22(0x00000000); + goto block_0FF9; + + block_0FF9: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BLOOD/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/BLOOD/slot_06_gotHit.txt new file mode 100644 index 0000000..e529d86 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BLOOD/slot_06_gotHit.txt @@ -0,0 +1,24 @@ +function blood_gotHit() /* entry=257 class_id=0x04B8 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if (retval != 4) goto block_0166; + + block_0106: + if (((Item.getFrame(arg_06) != 9) || (Item.getFrame(arg_06) != 19)) || (Item.getFrame(arg_06) != 29)) goto block_0166; + + block_0135: + spawn class_0A0C_slot_32(pid, 15, 0x00000000); + suspend; + + block_0166: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BOUNCBOX/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/BOUNCBOX/slot_06_gotHit.txt new file mode 100644 index 0000000..28ba114 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BOUNCBOX/slot_06_gotHit.txt @@ -0,0 +1,146 @@ +function bouncbox_gotHit() /* entry=291 class_id=0x04EF slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + dir, /* [BP-02h] type=0x69 */ + qHi, /* [BP-04h] type=0x69 */ + qLo, /* [BP-06h] type=0x69 */ + item, /* [BP-08h] type=0x24 */ + item2, /* [BP-0Ah] type=0x24 */ + x1, /* [BP-0Ch] type=0x69 */ + y1, /* [BP-0Eh] type=0x69 */ + ammo; /* [BP-10h] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + dir = Item.getCX(arg_06); + item = ref; + if (ref != 0x4000) goto block_02D1; + + block_010F: + class_0A0C_slot_2C(vel, ref); + class_0A0C_slot_2C((retval != 4), vel, ref); + if (retval != 3) goto block_014B; + + block_0145: + goto block_0479; + + block_014B: + if ((dir > 15) && (dir < 32)) goto block_018B; + + block_015F: + dir = (dir + 2); + if (dir > 31) goto block_017E; + + block_0174: + dir = (dir - 16); + + block_017E: + + block_018B: + if (Item.getStatus(arg_06) & 4) goto block_01A8; + + block_019D: + dir = 0x00FF; + goto block_02CE; + + block_01A8: + class_0A0C_slot_2C(vel, ref); + ammo = retval; + if (dir != 0x00FF) goto block_01D7; + + block_01C5: + class_0A0C_slot_20(15); + dir = retval; + goto block_0216; + + block_01D7: + if (dir != 0x00FE) goto block_0216; + + block_01E3: + suspend; + goto block_0479; + + block_0213: + goto block_0216; + + block_0216: + dir = (dir & 15); + if ((dir > 13) || (dir < 3)) goto block_0241; + + block_0234: + y1 = (y1 - 32); + goto block_02A4; + + block_0241: + if ((dir > 1) && (dir < 7)) goto block_0262; + + block_0255: + x1 = (x1 + 32); + goto block_02A4; + + block_0262: + if ((dir > 5) && (dir < 11)) goto block_0283; + + block_0276: + y1 = (y1 + 32); + goto block_02A4; + + block_0283: + if ((dir > 9) && (dir < 15)) goto block_02A4; + + block_0297: + x1 = (x1 - 32); + goto block_02A4; + + block_02A4: + suspend; + + block_02CE: + goto block_0479; + + block_02D1: + if (Intrinsic0016(item) != 0x02C3) goto block_03A5; + + block_02E4: + qHi = Item.getCX(item); + qLo = Item.pop(item); + if Item.getQLo(0, 0x02C4, item2) goto block_03A2; + + block_031F: + if qHi goto block_0373; + + block_0334: + goto block_03A2; + + block_0373: + + block_03A2: + goto block_0479; + + block_03A5: + if (Intrinsic0016(item) != 0x02C4) goto block_0479; + + block_03B8: + qHi = Item.getCX(item); + qLo = Item.pop(item); + if Item.getQLo(0, 0x02C3, item2) goto block_0476; + + block_03F3: + if qHi goto block_0447; + + block_0408: + goto block_0476; + + block_0447: + + block_0476: + goto block_0479; + + block_0479: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BOUNCBOX/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/BOUNCBOX/slot_0A_equip.txt new file mode 100644 index 0000000..84fdc5e --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BOUNCBOX/slot_0A_equip.txt @@ -0,0 +1,8 @@ +function bouncbox_equip() /* entry=291 class_id=0x04EF slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BOX_EW/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/BOX_EW/slot_01_use.txt new file mode 100644 index 0000000..2209a97 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BOX_EW/slot_01_use.txt @@ -0,0 +1,80 @@ +function box_ew_use() /* entry=15 class_id=0x0080 slot=0x01 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if Item.getFrame(arg_06) goto block_0198; + + block_00FA: + + block_0108: + if Item.touch(0x00A7, arg_06) goto block_0143; + + block_011A: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0108; + + block_0143: + counter = 0; + + block_014A: + if (counter <= 5) goto block_0195; + + block_0152: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_014A; + + block_0195: + goto block_0230; + + block_0198: + + block_01A6: + if Item.touch(0x00A5, arg_06) goto block_01E1; + + block_01B8: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_01A6; + + block_01E1: + counter = 0; + + block_01E8: + if (counter <= 5) goto block_0230; + + block_01F0: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_01E8; + + block_0230: + if (Item.getMapNum(arg_06) != 0) goto block_02AB; + + block_0242: + if (Item.getFrame(arg_06) != 0) goto block_027E; + + block_0254: + spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); + suspend; + goto block_02A5; + + block_027E: + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + + block_02A5: + goto block_02AB; + + block_02AB: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BOX_NS/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/BOX_NS/slot_01_use.txt new file mode 100644 index 0000000..8e600e4 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BOX_NS/slot_01_use.txt @@ -0,0 +1,80 @@ +function box_ns_use() /* entry=16 class_id=0x0081 slot=0x01 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if Item.getFrame(arg_06) goto block_0198; + + block_00FA: + + block_0108: + if Item.touch(0x00A7, arg_06) goto block_0143; + + block_011A: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0108; + + block_0143: + counter = 0; + + block_014A: + if (counter <= 5) goto block_0195; + + block_0152: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_014A; + + block_0195: + goto block_0230; + + block_0198: + + block_01A6: + if Item.touch(0x00A5, arg_06) goto block_01E1; + + block_01B8: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_01A6; + + block_01E1: + counter = 0; + + block_01E8: + if (counter <= 5) goto block_0230; + + block_01F0: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_01E8; + + block_0230: + if (Item.getMapNum(arg_06) != 0) goto block_02AB; + + block_0242: + if (Item.getFrame(arg_06) != 0) goto block_027E; + + block_0254: + spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); + suspend; + goto block_02A5; + + block_027E: + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + + block_02A5: + goto block_02AB; + + block_02AB: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BRIDGE/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/BRIDGE/slot_20_slot_20.txt new file mode 100644 index 0000000..64e2e72 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BRIDGE/slot_20_slot_20.txt @@ -0,0 +1,47 @@ +function bridge_slot_20() /* entry=373 class_id=0x0A03 slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + var, /* [BP+0Ah] type=0x69 */ + q; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x0211, *(arg_06)); + if (var != 1) goto block_0195; + + block_0122: + q = Item.pop(arg_06); + spawn class_0A03_slot_22(pid, q, arg_06); + suspend; + /* dword_to_word */ + if (process_result != 1) goto block_0192; + + block_015B: + spawn class_0A03_slot_24(pid, q, arg_06); + suspend; + spawn class_0A03_slot_26(0, q, arg_06); + + block_0192: + goto block_01FF; + + block_0195: + if (var != 2) goto block_01FF; + + block_01A0: + q = Item.pop(arg_06); + spawn class_0A03_slot_23(pid, q, arg_06); + suspend; + /* dword_to_word */ + if (process_result != 1) goto block_01FC; + + block_01D9: + spawn class_0A03_slot_25(pid, q, arg_06); + suspend; + + block_01FC: + goto block_01FF; + + block_01FF: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BRIDGE/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/BRIDGE/slot_21_slot_21.txt new file mode 100644 index 0000000..1bfa895 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BRIDGE/slot_21_slot_21.txt @@ -0,0 +1,26 @@ +function bridge_slot_21() /* entry=373 class_id=0x0A03 slot=0x21 */ +{ + var + item, /* [BP+06h] type=0x24 */ + newtype, /* [BP+08h] type=0x69 */ + x, /* [BP-02h] type=0x69 */ + item2; /* [BP-04h] type=0x24 */ + + entry: + x = Intrinsic0016(item); + if ((x != 0x0413) || (x != 0x0290)) goto block_026E; + + block_024F: + if (newtype != 0x03A6) goto block_0266; + + block_025B: + newtype = 0x0413; + goto block_026E; + + block_0266: + newtype = 0x0290; + + block_026E: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BRIDGE/slot_22_slot_22.txt b/USECODE/EUSECODE_extracted/pseudocode/BRIDGE/slot_22_slot_22.txt new file mode 100644 index 0000000..4fd58d8 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BRIDGE/slot_22_slot_22.txt @@ -0,0 +1,42 @@ +function bridge_slot_22() /* entry=373 class_id=0x0A03 slot=0x22 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + start, /* [BP+0Ah] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + x; /* [BP-04h] type=0x69 */ + + entry: + set_info(0x021B, *(arg_06)); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_02EA: + if condition goto block_0334; + + block_02ED: + if (Item.getFrame(item) != 0) goto block_0330; + + block_02FF: + x = Item.pop(item); + if (x != start) goto block_0330; + + block_0318: + /* word_to_dword */ + /* pop_result */ + goto block_0340; + + block_0330: + /* loopnext */ + goto block_02EA; + + block_0334: + /* word_to_dword */ + /* pop_result */ + goto block_0340; + + block_0340: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BRIDGE/slot_23_slot_23.txt b/USECODE/EUSECODE_extracted/pseudocode/BRIDGE/slot_23_slot_23.txt new file mode 100644 index 0000000..1c5cf00 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BRIDGE/slot_23_slot_23.txt @@ -0,0 +1,126 @@ +function bridge_slot_23() /* entry=373 class_id=0x0A03 slot=0x23 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + start, /* [BP+0Ah] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + x, /* [BP-04h] type=0x69 */ + end; /* [BP-06h] type=0x69 */ + + entry: + set_info(0x021B, *(arg_06)); + end = 0; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_03AC: + if condition goto block_03F2; + + block_03AF: + x = Item.pop(item); + if (x != start) goto block_03EE; + + block_03C8: + x = Item.getCX(item); + if (x != 0) goto block_03EE; + + block_03E1: + end = x; + goto block_03F2; + + block_03EE: + /* loopnext */ + goto block_03AC; + + block_03F2: + if (end != 0) goto block_0479; + + block_03FF: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_041F: + if condition goto block_0477; + + block_0422: + if (Item.getFrame(item) != 1) goto block_0473; + + block_0434: + x = Item.pop(item); + if (x != start) goto block_0473; + + block_044D: + x = Item.getCX(item); + if (x != 0) goto block_0473; + + block_0466: + end = x; + goto block_0477; + + block_0473: + /* loopnext */ + goto block_041F; + + block_0477: + + block_0479: + if (end != 0) goto block_054A; + + block_0484: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_04A4: + if condition goto block_04DC; + + block_04A7: + x = Item.pop(item); + if (x != end) goto block_04D8; + + block_04C0: + /* word_to_dword */ + /* pop_result */ + goto block_0554; + + block_04D8: + /* loopnext */ + goto block_04A4; + + block_04DC: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_04FE: + if condition goto block_0548; + + block_0501: + if (Item.getFrame(arg_06) != 1) goto block_0544; + + block_0513: + x = Item.pop(item); + if (x != end) goto block_0544; + + block_052C: + /* word_to_dword */ + /* pop_result */ + goto block_0554; + + block_0544: + /* loopnext */ + goto block_04FE; + + block_0548: + + block_054A: + /* word_to_dword */ + /* pop_result */ + goto block_0554; + + block_0554: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BRIDGE/slot_24_slot_24.txt b/USECODE/EUSECODE_extracted/pseudocode/BRIDGE/slot_24_slot_24.txt new file mode 100644 index 0000000..69801d5 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BRIDGE/slot_24_slot_24.txt @@ -0,0 +1,122 @@ +function bridge_slot_24() /* entry=373 class_id=0x0A03 slot=0x24 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + start, /* [BP+0Ah] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + bridgeitems, /* [BP-04h] type=0x6C */ + bridgemax, /* [BP-06h] type=0x69 */ + x, /* [BP-08h] type=0x69 */ + y, /* [BP-0Ah] type=0x69 */ + z; /* [BP-0Ch] type=0x69 */ + + entry: + set_info(0x021B, *(arg_06)); + bridgemax = 0; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_05C8: + if condition goto block_05FC; + + block_05CB: + x = Item.pop(item); + if (x != start) goto block_05F8; + + block_05E4: + bridgemax = Item.getCX(item); + goto block_05FC; + + block_05F8: + /* loopnext */ + goto block_05C8; + + block_05FC: + if (bridgemax != 0) goto block_060F; + + block_0609: + goto block_07AB; + + block_060F: + if (bridgemax < start) goto block_0620; + + block_061A: + goto block_07AB; + + block_0620: + y = start; + + block_0627: + if (y <= bridgemax) goto block_06CF; + + block_0632: + z = y; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0659: + if condition goto block_0699; + + block_065C: + x = Item.pop(item); + if (x != y) goto block_0695; + + block_0675: + /* create_list element_size=0x2 count=0x1 */ + /* append_list */ + /* free_local_list bp_offset=0xFC target=[BP-04h] */ + bridgeitems = item; + y = (1 + y); + goto block_0699; + + block_0695: + /* loopnext */ + goto block_0659; + + block_0699: + if (z != y) goto block_06CC; + + block_06A6: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + + block_06CC: + goto block_0627; + + block_06CF: + + block_06D8: + foreach_list item -> block_0750; + + block_06DD: + if (Intrinsic002C(item) != 1) goto block_074A; + + block_06EF: + class_0A03_slot_21(0x03A6, item); + spawn class_0A0C_slot_32(pid, 15, 0x00000000); + suspend; + + block_074A: + goto block_06D8; + + block_0750: + + block_0759: + foreach_list item -> block_07AB; + + block_075E: + if (Intrinsic002C(item) != 1) goto block_07A5; + + block_0770: + class_0A03_slot_21(0x03A6, item); + + block_07A5: + goto block_0759; + + block_07AB: + /* free_local_list bp_offset=0xFC target=[BP-04h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BRIDGE/slot_25_slot_25.txt b/USECODE/EUSECODE_extracted/pseudocode/BRIDGE/slot_25_slot_25.txt new file mode 100644 index 0000000..c8e0b33 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BRIDGE/slot_25_slot_25.txt @@ -0,0 +1,251 @@ +function bridge_slot_25() /* entry=373 class_id=0x0A03 slot=0x25 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + start, /* [BP+0Ah] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + bridgeitems, /* [BP-04h] type=0x6C */ + bridgemax, /* [BP-06h] type=0x69 */ + x, /* [BP-08h] type=0x69 */ + y, /* [BP-0Ah] type=0x69 */ + z, /* [BP-0Ch] type=0x69 */ + item2, /* [BP-0Eh] type=0x24 */ + item3; /* [BP-10h] type=0x24 */ + + entry: + set_info(0x021B, *(arg_06)); + bridgemax = 0; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0843: + if condition goto block_0877; + + block_0846: + x = Item.pop(item); + if (x != start) goto block_0873; + + block_085F: + bridgemax = Item.getCX(item); + goto block_0877; + + block_0873: + /* loopnext */ + goto block_0843; + + block_0877: + if (bridgemax != 0) goto block_08FD; + + block_0884: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_08A4: + if condition goto block_08EA; + + block_08A7: + if (Item.getFrame(arg_06) != 1) goto block_08E6; + + block_08B9: + x = Item.pop(item); + if (x != start) goto block_08E6; + + block_08D2: + bridgemax = Item.getCX(item); + goto block_08EA; + + block_08E6: + /* loopnext */ + goto block_08A4; + + block_08EA: + if (bridgemax != 0) goto block_08FD; + + block_08F7: + goto block_0C5A; + + block_08FD: + if (bridgemax < start) goto block_090E; + + block_0908: + goto block_0C5A; + + block_090E: + y = bridgemax; + start = (start - 1); + + block_091F: + if (y != start) goto block_0A46; + + block_092A: + z = y; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0951: + if condition goto block_0991; + + block_0954: + x = Item.pop(item); + if (x != y) goto block_098D; + + block_096D: + /* create_list element_size=0x2 count=0x1 */ + /* append_list */ + /* free_local_list bp_offset=0xFC target=[BP-04h] */ + bridgeitems = item; + y = (y - 1); + goto block_0991; + + block_098D: + /* loopnext */ + goto block_0951; + + block_0991: + if (z != y) goto block_0A43; + + block_099E: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_09BE: + if condition goto block_0A10; + + block_09C1: + if (Item.getFrame(arg_06) != 1) goto block_0A0C; + + block_09D3: + x = Item.pop(item); + if (x != y) goto block_0A0C; + + block_09EC: + /* create_list element_size=0x2 count=0x1 */ + /* append_list */ + /* free_local_list bp_offset=0xFC target=[BP-04h] */ + bridgeitems = item; + y = (y - 1); + goto block_0A10; + + block_0A0C: + /* loopnext */ + goto block_09BE; + + block_0A10: + if (z != y) goto block_0A43; + + block_0A1D: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + + block_0A43: + goto block_091F; + + block_0A46: + + block_0A4F: + foreach_list item -> block_0B63; + + block_0A54: + if (Intrinsic002C(item) != 1) goto block_0AB6; + + block_0A66: + class_0A03_slot_21(0x0336, item); + spawn class_0A0C_slot_32(pid, 15, 0x00000000); + suspend; + + block_0AB6: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xF2 string_bytes=0x1 loop_type=0x6 */ + + block_0AC4: + if condition goto block_0B5B; + + block_0AC7: + if ((Intrinsic003C(item2) != 6) && (Item.isNpc(item2) != 0)) goto block_0B4C; + + block_0AE9: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */ + + block_0B05: + if condition goto block_0B17; + + block_0B08: + /* loopnext */ + goto block_0B05; + + block_0B17: + spawn class_0A1E_slot_28(pid, 1, 0, item2); + suspend; + goto block_0B57; + + block_0B4C: + + block_0B57: + /* loopnext */ + goto block_0AC4; + + block_0B5B: + goto block_0A4F; + + block_0B63: + + block_0B6C: + foreach_list item -> block_0C5A; + + block_0B71: + if (Intrinsic002C(item) != 1) goto block_0BAD; + + block_0B83: + class_0A03_slot_21(0x0336, item); + + block_0BAD: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xF2 string_bytes=0x1 loop_type=0x6 */ + + block_0BBB: + if condition goto block_0C52; + + block_0BBE: + if ((Intrinsic003C(item2) != 6) && (Item.isNpc(item2) != 0)) goto block_0C43; + + block_0BE0: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */ + + block_0BFC: + if condition goto block_0C0E; + + block_0BFF: + /* loopnext */ + goto block_0BFC; + + block_0C0E: + spawn class_0A1E_slot_28(pid, 1, 0, item2); + suspend; + goto block_0C4E; + + block_0C43: + + block_0C4E: + /* loopnext */ + goto block_0BBB; + + block_0C52: + goto block_0B6C; + + block_0C5A: + /* free_local_list bp_offset=0xFC target=[BP-04h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BRIDGE/slot_26_slot_26.txt b/USECODE/EUSECODE_extracted/pseudocode/BRIDGE/slot_26_slot_26.txt new file mode 100644 index 0000000..68f7b55 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BRIDGE/slot_26_slot_26.txt @@ -0,0 +1,339 @@ +function bridge_slot_26() /* entry=373 class_id=0x0A03 slot=0x26 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + start, /* [BP+0Ah] type=0x69 */ + end, /* [BP+0Ch] type=0x69 */ + n, /* [BP-02h] type=0x24 */ + item, /* [BP-04h] type=0x24 */ + bridgeitems, /* [BP-06h] type=0x6C */ + bridgemax, /* [BP-08h] type=0x69 */ + x, /* [BP-0Ah] type=0x69 */ + y, /* [BP-0Ch] type=0x69 */ + z, /* [BP-0Eh] type=0x69 */ + a, /* [BP-10h] type=0x69 */ + cycletype, /* [BP-12h] type=0x69 */ + delay, /* [BP-14h] type=0x69 */ + retry, /* [BP-16h] type=0x69 */ + wp, /* [BP-1Bh] type=0x24 */ + item2; /* [BP-1Dh] type=0x24 */ + + entry: + set_info(0x021B, *(arg_06)); + cycletype = 0; + delay = 1; + bridgemax = end; + if (bridgemax != 0) goto block_0D66; + + block_0CFF: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_0D1F: + if condition goto block_0D53; + + block_0D22: + x = Item.pop(item); + if (x != start) goto block_0D4F; + + block_0D3B: + bridgemax = Item.getCX(item); + goto block_0D53; + + block_0D4F: + /* loopnext */ + goto block_0D1F; + + block_0D53: + if (bridgemax != 0) goto block_0D66; + + block_0D60: + goto block_12F6; + + block_0D66: + if (bridgemax < start) goto block_0D77; + + block_0D71: + goto block_12F6; + + block_0D77: + y = start; + retry = 100; + + block_0D85: + if (y <= bridgemax) goto block_0EE8; + + block_0D90: + z = y; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_0DB7: + if condition goto block_0E74; + + block_0DBA: + x = Item.pop(item); + if (x != y) goto block_0E70; + + block_0DD3: + if (x != (start + 1)) goto block_0E50; + + block_0DE1: + a = Item.getCX(item); + if (a < 0) goto block_0E05; + + block_0DFA: + a = (a + 0x0100); + + block_0E05: + a = (a & 127); + cycletype = (a & 7); + delay = (a / 8); + if (delay != 0) goto block_0E35; + + block_0E2E: + delay = 1; + + block_0E35: + delay = (delay * 5); + if (cycletype != 0) goto block_0E50; + + block_0E4A: + goto block_12F6; + + block_0E50: + /* create_list element_size=0x2 count=0x1 */ + /* append_list */ + /* free_local_list bp_offset=0xFA target=[BP-06h] */ + bridgeitems = item; + y = (1 + y); + goto block_0E74; + + block_0E70: + /* loopnext */ + goto block_0DB7; + + block_0E74: + if (z != y) goto block_0EE5; + + block_0E81: + if (retry != 0) goto block_0EB5; + + block_0E8C: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + goto block_0EE5; + + block_0EB5: + retry = (retry - 1); + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + + block_0EE5: + goto block_0D85; + + block_0EE8: + if (cycletype != 3) goto block_110A; + + block_0EF3: + if 1 goto block_110A; + + block_0EFB: + x = 0; + + block_0F0B: + foreach_list item -> block_0F32; + + block_0F10: + if (Intrinsic002C(item) != 0) goto block_0F2C; + + block_0F22: + x = (1 + x); + + block_0F2C: + goto block_0F0B; + + block_0F32: + if (x != 0) goto block_10E1; + + block_0F3D: + + block_0F46: + foreach_list item -> block_0F9D; + + block_0F4B: + if (x != 0) goto block_0F75; + + block_0F56: + y = Item.getFrame(item); + item2 = item; + x = 1; + goto block_0F97; + + block_0F75: + z = Item.getFrame(item); + y = z; + + block_0F97: + goto block_0F46; + + block_0F9D: + + block_0FB3: + foreach_list item -> block_10E1; + + block_0FB8: + x = Item.getFrame(item); + if (x != 1) goto block_101F; + + block_0FD1: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xE3 string_bytes=0x1 loop_type=0x6 */ + + block_0FDF: + if condition goto block_101A; + + block_0FE2: + n = item2; + class_0A0C_slot_20(pid, 8); + spawn class_0A11_slot_2D(retval, item, n); + suspend; + /* loopnext */ + goto block_0FDF; + + block_101A: + goto block_10DB; + + block_101F: + if (x != 2) goto block_10DB; + + block_102A: + class_0A03_slot_21(0x0336, item); + /* loopscr value_u8=0x24 */ + /* loop current_var=0xE3 string_bytes=0x1 loop_type=0x6 */ + + block_1062: + if condition goto block_1074; + + block_1065: + /* loopnext */ + goto block_1062; + + block_1074: + spawn class_0A0C_slot_32(pid, delay, 0x00000000); + suspend; + if (Item.getFrame(item) != 1) goto block_10D8; + + block_10AE: + class_0A03_slot_21(0x03A6, item); + + block_10D8: + goto block_10DB; + + block_10DB: + goto block_0FB3; + + block_10E1: + spawn class_0A0C_slot_32(pid, delay, 0x00000000); + suspend; + goto block_0EF3; + + block_110A: + + block_1113: + foreach_list item -> block_113D; + + block_1118: + if (Intrinsic002C(item) != 1) goto block_1137; + + block_112A: + + block_1137: + goto block_1113; + + block_113D: + if 1 goto block_12F6; + + block_1145: + + block_114E: + foreach_list item -> block_12F3; + + block_1153: + if (Intrinsic002C(item) != 0) goto block_116B; + + block_1165: + goto block_12F6; + + block_116B: + x = Intrinsic0016(item); + if ((x != 0x0336) || (x != 0x0290)) goto block_1192; + + block_118C: + goto block_12F6; + + block_1192: + if (cycletype != 1) goto block_122B; + + block_119D: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xE3 string_bytes=0x1 loop_type=0x6 */ + + block_11B8: + if condition goto block_11F3; + + block_11BB: + n = item2; + class_0A0C_slot_20(pid, 8); + spawn class_0A11_slot_2D(retval, item, n); + suspend; + /* loopnext */ + goto block_11B8; + + block_11F3: + spawn class_0A0C_slot_32(pid, delay, 0x00000000); + suspend; + goto block_12ED; + + block_122B: + if (cycletype != 2) goto block_12E7; + + block_1236: + class_0A03_slot_21(0x0336, item); + /* loopscr value_u8=0x24 */ + /* loop current_var=0xE3 string_bytes=0x1 loop_type=0x6 */ + + block_126E: + if condition goto block_1280; + + block_1271: + /* loopnext */ + goto block_126E; + + block_1280: + spawn class_0A0C_slot_32(pid, delay, 0x00000000); + suspend; + if (Item.getFrame(item) != 1) goto block_12E4; + + block_12BA: + class_0A03_slot_21(0x03A6, item); + + block_12E4: + goto block_12ED; + + block_12E7: + goto block_12F6; + + block_12ED: + goto block_114E; + + block_12F3: + goto block_113D; + + block_12F6: + /* free_local_list bp_offset=0xFA target=[BP-06h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BROKENCW/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/BROKENCW/slot_06_gotHit.txt new file mode 100644 index 0000000..eaf82ef --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BROKENCW/slot_06_gotHit.txt @@ -0,0 +1,39 @@ +function brokencw_gotHit() /* entry=43 class_id=0x00D1 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFE string_bytes=0x1 loop_type=0x2 */ + + block_0100: + if condition goto block_0188; + + block_0103: + if (Intrinsic0016(item) != 0x00D1) goto block_012C; + + block_011C: + goto block_0184; + + block_012C: + if ((Intrinsic003C(item) != 6) && (Item.isNpc(item) != 0)) goto block_0184; + + block_0151: + spawn class_0A1E_slot_28(pid, 1, 0, item); + suspend; + goto block_0184; + + block_0184: + /* loopnext */ + goto block_0100; + + block_0188: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BRO_BOOT/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/BRO_BOOT/slot_0A_equip.txt new file mode 100644 index 0000000..688898d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BRO_BOOT/slot_0A_equip.txt @@ -0,0 +1,103 @@ +function bro_boot_equip() /* entry=172 class_id=0x0316 slot=0x0A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + event, /* [BP+0Ah] type=0x69 */ + counter; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (Item.getFrame(arg_06) != 10) goto block_0106; + + block_0100: + goto block_0380; + + block_0106: + class_0A0C_slot_33(0x021B, *(arg_06)); + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + + block_0140: + if (Item.getFrame(arg_06) != 9) goto block_0192; + + block_0152: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + goto block_0140; + + block_0192: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + if (global[0x001F] != 2) goto block_01F2; + + block_01C2: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_0315; + + block_01F2: + if (global[0x001F] != 3) goto block_022C; + + block_01FC: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_0315; + + block_022C: + if (global[0x001F] != 4) goto block_0266; + + block_0236: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_0315; + + block_0266: + if (global[0x001F] != 5) goto block_02A0; + + block_0270: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_0315; + + block_02A0: + if (global[0x001F] != 9) goto block_02DA; + + block_02AA: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_0315; + + block_02DA: + if (global[0x001F] != 10) goto block_0315; + + block_02E4: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_0315; + + block_0315: + counter = 0; + + block_031C: + if (counter <= 9) goto block_0367; + + block_0324: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_031C; + + block_0367: + spawn class_0316_enterFastArea(arg_06); + + block_0380: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BRO_BOOT/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/BRO_BOOT/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..629a60d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BRO_BOOT/slot_0F_enterFastArea.txt @@ -0,0 +1,96 @@ +function bro_boot_enterFastArea() /* entry=172 class_id=0x0316 slot=0x0F */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + counter; /* [BP-04h] type=0x69 */ + + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if ((((((global[0x001F] != 2) || (global[0x001F] != 3)) || (global[0x001F] != 4)) || (global[0x001F] != 5)) || (global[0x001F] != 9)) || (global[0x001F] != 10)) goto block_0454; + + block_03F2: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0410: + if condition goto block_0442; + + block_0413: + if (Item.pop(item) != Item.pop(arg_06)) goto block_043E; + + block_042F: + class_0A1E_slot_24(0x1000, item); + + block_043E: + /* loopnext */ + goto block_0410; + + block_0442: + goto block_04B9; + + block_0454: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0472: + if condition goto block_04A4; + + block_0475: + if (Item.pop(item) != Item.pop(arg_06)) goto block_04A0; + + block_0491: + class_0A1E_slot_23(0x1000, item); + + block_04A0: + /* loopnext */ + goto block_0472; + + block_04A4: + goto block_05CD; + + block_04B9: + suspend; + class_0A0C_slot_20(pid, 100); + spawn class_0A0C_slot_32((retval + 0x00C8), 0x00000000); + suspend; + counter = 0; + + block_04FF: + if (counter <= 5) goto block_0547; + + block_0507: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_04FF; + + block_0547: + class_0A0C_slot_20(pid, 100); + spawn class_0A0C_slot_32((retval + 100), 0x00000000); + suspend; + counter = 0; + + block_057F: + if (counter <= 5) goto block_05CA; + + block_0587: + spawn class_0A0C_slot_32(pid, 15, 0x00000000); + suspend; + counter = (1 + counter); + goto block_057F; + + block_05CA: + goto block_04B9; + + block_05CD: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BRO_BOOT/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/BRO_BOOT/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..cf9de6a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BRO_BOOT/slot_10_leaveFastArea.txt @@ -0,0 +1,9 @@ +function bro_boot_leaveFastArea() /* entry=172 class_id=0x0316 slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + class_0A0C_slot_33(0x021B, *(arg_06)); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BUBBLE/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/BUBBLE/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..de5f96f --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BUBBLE/slot_0F_enterFastArea.txt @@ -0,0 +1,61 @@ +function bubble_enterFastArea() /* entry=109 class_id=0x01D6 slot=0x0F */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + + block_00EB: + suspend; + class_0A0C_slot_20(pid, 120); + spawn class_0A0C_slot_32((retval + 0x00DC), 0x00000000); + suspend; + if Intrinsic0007(arg_06) goto block_024B; + + block_0139: + counter = 0; + + block_0140: + if (counter <= 11) goto block_01A3; + + block_0148: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + if (counter != 5) goto block_0196; + + block_0189: + + block_0196: + counter = (1 + counter); + goto block_0140; + + block_01A3: + class_0A0C_slot_20(pid, 120); + spawn class_0A0C_slot_32((retval + 120), 0x00000000); + suspend; + counter = 12; + + block_01E8: + if (counter <= 24) goto block_024B; + + block_01F0: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + if (counter != 17) goto block_023E; + + block_0231: + + block_023E: + counter = (1 + counter); + goto block_01E8; + + block_024B: + goto block_00EB; + + block_024E: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/BUBBLE/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/BUBBLE/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..75b2f76 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/BUBBLE/slot_10_leaveFastArea.txt @@ -0,0 +1,9 @@ +function bubble_leaveFastArea() /* entry=109 class_id=0x01D6 slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + class_0A0C_slot_33(0x021B, *(arg_06)); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CAMERA/slot_07_hatch.txt b/USECODE/EUSECODE_extracted/pseudocode/CAMERA/slot_07_hatch.txt new file mode 100644 index 0000000..59bf734 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CAMERA/slot_07_hatch.txt @@ -0,0 +1,54 @@ +function camera_hatch() /* entry=345 class_id=0x0905 slot=0x07 */ +{ + entry: + set_info(0x0210, *(arg_06)); + process_exclude(); + if ((Intrinsic003F(arg_06) & 127) != 1) goto block_012F; + + block_00FD: + /* global_address global_id=0x3C */ + goto block_0269; + + block_012F: + if ((Intrinsic003F(arg_06) & 127) != 2) goto block_016F; + + block_0141: + /* global_address global_id=0x3C */ + goto block_0269; + + block_016F: + if ((Intrinsic003F(arg_06) & 127) != 3) goto block_01B3; + + block_0181: + /* global_address global_id=0x3C */ + goto block_0269; + + block_01B3: + if ((Intrinsic003F(arg_06) & 127) != 4) goto block_01F3; + + block_01C5: + /* global_address global_id=0x3C */ + goto block_0269; + + block_01F3: + if ((Intrinsic003F(arg_06) & 127) != 5) goto block_0242; + + block_0205: + /* global_address global_id=0x3C */ + goto block_028B; + + block_023F: + goto block_0269; + + block_0242: + /* global_address global_id=0x3C */ + + block_0269: + if (!(Intrinsic003F(arg_06) & 0x0080)) goto block_028B; + + block_0280: + + block_028B: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CAMERA/slot_15_unhatch.txt b/USECODE/EUSECODE_extracted/pseudocode/CAMERA/slot_15_unhatch.txt new file mode 100644 index 0000000..251694f --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CAMERA/slot_15_unhatch.txt @@ -0,0 +1,17 @@ +function camera_unhatch() /* entry=345 class_id=0x0905 slot=0x15 */ +{ + entry: + set_info(0x0239, *(arg_06)); + process_exclude(); + if ((Intrinsic003F(arg_06) & 127) != 5) goto block_0300; + + block_02C7: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + goto block_0300; + + block_0300: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CAMERACO/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/CAMERACO/slot_06_gotHit.txt new file mode 100644 index 0000000..4ea47f3 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CAMERACO/slot_06_gotHit.txt @@ -0,0 +1,24 @@ +function cameraco_gotHit() /* entry=88 class_id=0x01B6 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2B(vel, ref); + if (retval && (Item.getFrame(arg_06) != 5)) goto block_0624; + + block_05BA: + class_0A0C_slot_33(0x021B, *(arg_06)); + spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); + suspend; + spawn class_0A1E_slot_28(pid, 0, 0, arg_06); + suspend; + + block_0624: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CAMERACO/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/CAMERACO/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..e4b5fe1 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CAMERACO/slot_0F_enterFastArea.txt @@ -0,0 +1,157 @@ +function cameraco_enterFastArea() /* entry=88 class_id=0x01B6 slot=0x0F */ +{ + var + referent, /* [BP+00h] type=0x69 */ + delay, /* [BP-02h] type=0x69 */ + iSeeYou, /* [BP-04h] type=0x69 */ + trackedEnough, /* [BP-06h] type=0x69 */ + fram, /* [BP-08h] type=0x69 */ + counter, /* [BP-0Ah] type=0x69 */ + sawCrusader, /* [BP-0Ch] type=0x69 */ + movement, /* [BP-0Eh] type=0x69 */ + target, /* [BP-10h] type=0x24 */ + range, /* [BP-12h] type=0x69 */ + dir; /* [BP-14h] type=0x69 */ + + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + delay = ((5 - Intrinsic0029()) * 15); + iSeeYou = (5 - (Intrinsic0029() * 15)); + if (Item.getFrame(arg_06) != 5) goto block_0126; + + block_0120: + goto block_04AD; + + block_0126: + if (!Intrinsic0007(arg_06)) goto block_0162; + + block_0139: + spawn class_0A0C_slot_32(pid, delay, 0x00000000); + suspend; + goto block_0126; + + block_0162: + sawCrusader = 0; + movement = 1; + + block_0170: + suspend; + range = 0; + + block_0184: + if (!Intrinsic0007(arg_06)) goto block_01C0; + + block_0197: + spawn class_0A0C_slot_32(pid, delay, 0x00000000); + suspend; + goto block_0184; + + block_01C0: + spawn class_0A0C_slot_32(pid, delay, 0x00000000); + suspend; + if (Item.pop() != 0) goto block_0204; + + block_01F7: + target = Item.pop(); + goto block_020B; + + block_0204: + target = 1; + + block_020B: + dir = Intrinsic0027(15, 0, 16, Item.legal_create(target), Intrinsic0013(target), Item.legal_create(arg_06), Intrinsic0013(arg_06)); + fram = Item.getFrame(arg_06); + if (((dir / 2) - 1) != fram) goto block_03B7; + + block_0260: + range = Item.getQHi(target, arg_06); + if range goto block_0313; + + block_0278: + sawCrusader = 1; + trackedEnough = (1 + trackedEnough); + if ((trackedEnough > iSeeYou) && (!(Item.getStatus(arg_06) & 0x1000))) goto block_0310; + + block_02A6: + spawn class_0A0C_slot_32(pid, delay, 0x00000000); + suspend; + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + class_0A1E_slot_23(0x1000, arg_06); + + block_0310: + goto block_03B4; + + block_0313: + sawCrusader = 0; + if ((fram + movement) < 0) goto block_0358; + + block_0328: + movement = 1; + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + goto block_0396; + + block_0358: + if ((fram + movement) > 4) goto block_0396; + + block_0366: + movement = -1; + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + goto block_0396; + + block_0396: + + block_03B4: + goto block_04AA; + + block_03B7: + if (trackedEnough && sawCrusader) goto block_03F3; + + block_03C8: + if (((dir / 2) - 1) > fram) goto block_03E9; + + block_03DF: + movement = 1; + goto block_03F0; + + block_03E9: + movement = -1; + + block_03F0: + goto block_0410; + + block_03F3: + trackedEnough = 0; + sawCrusader = 0; + /* bit_not */ + + block_0410: + if ((fram + movement) < 0) goto block_044E; + + block_041E: + movement = 1; + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + goto block_048C; + + block_044E: + if ((fram + movement) > 4) goto block_048C; + + block_045C: + movement = -1; + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + goto block_048C; + + block_048C: + + block_04AA: + goto block_0170; + + block_04AD: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CAMERACO/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/CAMERACO/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..756ac3c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CAMERACO/slot_10_leaveFastArea.txt @@ -0,0 +1,10 @@ +function cameraco_leaveFastArea() /* entry=88 class_id=0x01B6 slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + class_0A0C_slot_33(0x021B, *(arg_06)); + /* bit_not */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CAMERAEW/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/CAMERAEW/slot_06_gotHit.txt new file mode 100644 index 0000000..7336c96 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CAMERAEW/slot_06_gotHit.txt @@ -0,0 +1,24 @@ +function cameraew_gotHit() /* entry=110 class_id=0x01D7 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2B(vel, ref); + if (retval && (Item.getFrame(arg_06) != 9)) goto block_061E; + + block_05B4: + class_0A0C_slot_33(0x021B, *(arg_06)); + spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); + suspend; + spawn class_0A1E_slot_28(pid, 0, 0, arg_06); + suspend; + + block_061E: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CAMERAEW/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/CAMERAEW/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..3ea7d3c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CAMERAEW/slot_0F_enterFastArea.txt @@ -0,0 +1,157 @@ +function cameraew_enterFastArea() /* entry=110 class_id=0x01D7 slot=0x0F */ +{ + var + referent, /* [BP+00h] type=0x69 */ + delay, /* [BP-02h] type=0x69 */ + iSeeYou, /* [BP-04h] type=0x69 */ + trackedEnough, /* [BP-06h] type=0x69 */ + fram, /* [BP-08h] type=0x69 */ + counter, /* [BP-0Ah] type=0x69 */ + sawCrusader, /* [BP-0Ch] type=0x69 */ + movement, /* [BP-0Eh] type=0x69 */ + target, /* [BP-10h] type=0x24 */ + range, /* [BP-12h] type=0x69 */ + dir; /* [BP-14h] type=0x69 */ + + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + delay = ((5 - Intrinsic0029()) * 5); + iSeeYou = (5 - (Intrinsic0029() * 5)); + if (Item.getFrame(arg_06) != 9) goto block_0126; + + block_0120: + goto block_04A7; + + block_0126: + if (!Intrinsic0007(arg_06)) goto block_0162; + + block_0139: + spawn class_0A0C_slot_32(pid, delay, 0x00000000); + suspend; + goto block_0126; + + block_0162: + sawCrusader = 0; + movement = 1; + + block_0170: + suspend; + range = 0; + + block_0184: + if (!Intrinsic0007(arg_06)) goto block_01C0; + + block_0197: + spawn class_0A0C_slot_32(pid, delay, 0x00000000); + suspend; + goto block_0184; + + block_01C0: + spawn class_0A0C_slot_32(pid, delay, 0x00000000); + suspend; + if (Item.pop() != 0) goto block_0204; + + block_01F7: + target = Item.pop(); + goto block_020B; + + block_0204: + target = 1; + + block_020B: + dir = Intrinsic0027(15, 0, 16, Item.legal_create(target), Intrinsic0013(target), Item.legal_create(arg_06), Intrinsic0013(arg_06)); + fram = Item.getFrame(arg_06); + if ((8 - dir) != fram) goto block_03B4; + + block_025D: + range = Item.getQHi(target, arg_06); + if range goto block_0310; + + block_0275: + sawCrusader = 1; + trackedEnough = (1 + trackedEnough); + if ((trackedEnough > iSeeYou) && (!(Item.getStatus(arg_06) & 0x1000))) goto block_030D; + + block_02A3: + spawn class_0A0C_slot_32(pid, delay, 0x00000000); + suspend; + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + class_0A1E_slot_23(0x1000, arg_06); + + block_030D: + goto block_03B1; + + block_0310: + sawCrusader = 0; + if ((fram + movement) < 0) goto block_0355; + + block_0325: + movement = 1; + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + goto block_0393; + + block_0355: + if ((fram + movement) > 8) goto block_0393; + + block_0363: + movement = -1; + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + goto block_0393; + + block_0393: + + block_03B1: + goto block_04A4; + + block_03B4: + if (trackedEnough && sawCrusader) goto block_03ED; + + block_03C5: + if ((8 - dir) > fram) goto block_03E3; + + block_03D9: + movement = 1; + goto block_03EA; + + block_03E3: + movement = -1; + + block_03EA: + goto block_040A; + + block_03ED: + trackedEnough = 0; + sawCrusader = 0; + /* bit_not */ + + block_040A: + if ((fram + movement) < 0) goto block_0448; + + block_0418: + movement = 1; + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + goto block_0486; + + block_0448: + if ((fram + movement) > 8) goto block_0486; + + block_0456: + movement = -1; + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + goto block_0486; + + block_0486: + + block_04A4: + goto block_0170; + + block_04A7: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CAMERAEW/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/CAMERAEW/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..d1484f9 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CAMERAEW/slot_10_leaveFastArea.txt @@ -0,0 +1,10 @@ +function cameraew_leaveFastArea() /* entry=110 class_id=0x01D7 slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + class_0A0C_slot_33(0x021B, *(arg_06)); + /* bit_not */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CAMERANS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/CAMERANS/slot_06_gotHit.txt new file mode 100644 index 0000000..6535cfd --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CAMERANS/slot_06_gotHit.txt @@ -0,0 +1,24 @@ +function camerans_gotHit() /* entry=90 class_id=0x01B8 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2B(vel, ref); + if (retval && (Item.getFrame(arg_06) != 9)) goto block_061E; + + block_05B4: + class_0A0C_slot_33(0x021B, *(arg_06)); + spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); + suspend; + spawn class_0A1E_slot_28(pid, 0, 0, arg_06); + suspend; + + block_061E: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CAMERANS/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/CAMERANS/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..c58b777 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CAMERANS/slot_0F_enterFastArea.txt @@ -0,0 +1,157 @@ +function camerans_enterFastArea() /* entry=90 class_id=0x01B8 slot=0x0F */ +{ + var + referent, /* [BP+00h] type=0x69 */ + delay, /* [BP-02h] type=0x69 */ + iSeeYou, /* [BP-04h] type=0x69 */ + trackedEnough, /* [BP-06h] type=0x69 */ + fram, /* [BP-08h] type=0x69 */ + counter, /* [BP-0Ah] type=0x69 */ + sawCrusader, /* [BP-0Ch] type=0x69 */ + movement, /* [BP-0Eh] type=0x69 */ + target, /* [BP-10h] type=0x24 */ + range, /* [BP-12h] type=0x69 */ + dir; /* [BP-14h] type=0x69 */ + + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + delay = ((5 - Intrinsic0029()) * 5); + iSeeYou = (5 - (Intrinsic0029() * 5)); + if (Item.getFrame(arg_06) != 9) goto block_0126; + + block_0120: + goto block_04A7; + + block_0126: + if (!Intrinsic0007(arg_06)) goto block_0162; + + block_0139: + spawn class_0A0C_slot_32(pid, delay, 0x00000000); + suspend; + goto block_0126; + + block_0162: + sawCrusader = 0; + movement = 1; + + block_0170: + suspend; + range = 0; + + block_0184: + if (!Intrinsic0007(arg_06)) goto block_01C0; + + block_0197: + spawn class_0A0C_slot_32(pid, delay, 0x00000000); + suspend; + goto block_0184; + + block_01C0: + spawn class_0A0C_slot_32(pid, delay, 0x00000000); + suspend; + if (Item.pop() != 0) goto block_0204; + + block_01F7: + target = Item.pop(); + goto block_020B; + + block_0204: + target = 1; + + block_020B: + dir = Intrinsic0027(13, 3, 16, Item.legal_create(target), Intrinsic0013(target), Item.legal_create(arg_06), Intrinsic0013(arg_06)); + fram = Item.getFrame(arg_06); + if ((12 - dir) != fram) goto block_03B4; + + block_025D: + range = Item.getQHi(target, arg_06); + if range goto block_0310; + + block_0275: + sawCrusader = 1; + trackedEnough = (1 + trackedEnough); + if ((trackedEnough > iSeeYou) && (!(Item.getStatus(arg_06) & 0x1000))) goto block_030D; + + block_02A3: + spawn class_0A0C_slot_32(pid, delay, 0x00000000); + suspend; + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + class_0A1E_slot_23(0x1000, arg_06); + + block_030D: + goto block_03B1; + + block_0310: + sawCrusader = 0; + if ((fram + movement) < 0) goto block_0355; + + block_0325: + movement = 1; + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + goto block_0393; + + block_0355: + if ((fram + movement) > 8) goto block_0393; + + block_0363: + movement = -1; + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + goto block_0393; + + block_0393: + + block_03B1: + goto block_04A4; + + block_03B4: + if (trackedEnough && sawCrusader) goto block_03ED; + + block_03C5: + if ((12 - dir) > fram) goto block_03E3; + + block_03D9: + movement = 1; + goto block_03EA; + + block_03E3: + movement = -1; + + block_03EA: + goto block_040A; + + block_03ED: + trackedEnough = 0; + sawCrusader = 0; + /* bit_not */ + + block_040A: + if ((fram + movement) < 0) goto block_0448; + + block_0418: + movement = 1; + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + goto block_0486; + + block_0448: + if ((fram + movement) > 8) goto block_0486; + + block_0456: + movement = -1; + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + goto block_0486; + + block_0486: + + block_04A4: + goto block_0170; + + block_04A7: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CAMERANS/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/CAMERANS/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..db9f697 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CAMERANS/slot_10_leaveFastArea.txt @@ -0,0 +1,10 @@ +function camerans_leaveFastArea() /* entry=90 class_id=0x01B8 slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + class_0A0C_slot_33(0x021B, *(arg_06)); + /* bit_not */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CAM_EW/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/CAM_EW/slot_06_gotHit.txt new file mode 100644 index 0000000..da4ffbf --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CAM_EW/slot_06_gotHit.txt @@ -0,0 +1,14 @@ +function cam_ew_gotHit() /* entry=91 class_id=0x01B9 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A1A_slot_49(vel, ref, arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CAM_EW/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/CAM_EW/slot_0A_equip.txt new file mode 100644 index 0000000..4dc791b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CAM_EW/slot_0A_equip.txt @@ -0,0 +1,20 @@ +function cam_ew_equip() /* entry=91 class_id=0x01B9 slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (Item.pop() != 0) goto block_0290; + + block_0265: + spawn class_0A1A_slot_24(pid, arg_0A, Item.pop(), arg_06); + suspend; + goto block_02B7; + + block_0290: + spawn class_0A1A_slot_24(pid, arg_0A, global[0x003C], arg_06); + suspend; + + block_02B7: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CAM_EW/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/CAM_EW/slot_0B_unequip.txt new file mode 100644 index 0000000..063c02f --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CAM_EW/slot_0B_unequip.txt @@ -0,0 +1,17 @@ +function cam_ew_unequip() /* entry=91 class_id=0x01B9 slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 4) goto block_0160; + + block_015A: + goto block_017B; + + block_0160: + spawn class_0A1A_slot_27(arg_06); + + block_017B: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CAM_EW/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/CAM_EW/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..8a9385e --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CAM_EW/slot_0F_enterFastArea.txt @@ -0,0 +1,17 @@ +function cam_ew_enterFastArea() /* entry=91 class_id=0x01B9 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 4) goto block_0103; + + block_00FD: + goto block_011E; + + block_0103: + spawn class_0A1A_slot_27(arg_06); + + block_011E: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CAM_EW/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/CAM_EW/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..2e8c9fa --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CAM_EW/slot_10_leaveFastArea.txt @@ -0,0 +1,11 @@ +function cam_ew_leaveFastArea() /* entry=91 class_id=0x01B9 slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + /* bit_not */ + class_0A0C_slot_33(1, *(arg_06)); + class_0A0C_slot_33(0x020A, *(arg_06)); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CAM_NS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/CAM_NS/slot_06_gotHit.txt new file mode 100644 index 0000000..7f9811e --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CAM_NS/slot_06_gotHit.txt @@ -0,0 +1,14 @@ +function cam_ns_gotHit() /* entry=92 class_id=0x01BA slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A1A_slot_49(vel, ref, arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CAM_NS/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/CAM_NS/slot_0A_equip.txt new file mode 100644 index 0000000..50776be --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CAM_NS/slot_0A_equip.txt @@ -0,0 +1,20 @@ +function cam_ns_equip() /* entry=92 class_id=0x01BA slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (Item.pop() != 0) goto block_0290; + + block_0265: + spawn class_0A1A_slot_24(pid, arg_0A, Item.pop(), arg_06); + suspend; + goto block_02B7; + + block_0290: + spawn class_0A1A_slot_24(pid, arg_0A, global[0x003C], arg_06); + suspend; + + block_02B7: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CAM_NS/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/CAM_NS/slot_0B_unequip.txt new file mode 100644 index 0000000..85834fc --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CAM_NS/slot_0B_unequip.txt @@ -0,0 +1,17 @@ +function cam_ns_unequip() /* entry=92 class_id=0x01BA slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 4) goto block_0160; + + block_015A: + goto block_017B; + + block_0160: + spawn class_0A1A_slot_27(arg_06); + + block_017B: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CAM_NS/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/CAM_NS/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..d8aa942 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CAM_NS/slot_0F_enterFastArea.txt @@ -0,0 +1,17 @@ +function cam_ns_enterFastArea() /* entry=92 class_id=0x01BA slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 4) goto block_0103; + + block_00FD: + goto block_011E; + + block_0103: + spawn class_0A1A_slot_27(arg_06); + + block_011E: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CAM_NS/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/CAM_NS/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..597a99f --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CAM_NS/slot_10_leaveFastArea.txt @@ -0,0 +1,11 @@ +function cam_ns_leaveFastArea() /* entry=92 class_id=0x01BA slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + /* bit_not */ + class_0A0C_slot_33(1, *(arg_06)); + class_0A0C_slot_33(0x020A, *(arg_06)); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CARD_EW/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/CARD_EW/slot_01_use.txt new file mode 100644 index 0000000..238636b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CARD_EW/slot_01_use.txt @@ -0,0 +1,9 @@ +function card_ew_use() /* entry=176 class_id=0x031E slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + spawn class_0A16_slot_21(arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CARD_NS/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/CARD_NS/slot_01_use.txt new file mode 100644 index 0000000..536637d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CARD_NS/slot_01_use.txt @@ -0,0 +1,9 @@ +function card_ns_use() /* entry=175 class_id=0x031D slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + spawn class_0A16_slot_21(arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CATWALK1/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/CATWALK1/slot_06_gotHit.txt new file mode 100644 index 0000000..f13bb1c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CATWALK1/slot_06_gotHit.txt @@ -0,0 +1,24 @@ +function catwalk1_gotHit() /* entry=28 class_id=0x0096 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if (retval != 4) goto block_010C; + + block_0106: + goto block_014B; + + block_010C: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + + block_014B: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CATWALK2/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/CATWALK2/slot_06_gotHit.txt new file mode 100644 index 0000000..0e6e0a7 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CATWALK2/slot_06_gotHit.txt @@ -0,0 +1,25 @@ +function catwalk2_gotHit() /* entry=51 class_id=0x0132 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if (retval != 4) goto block_010C; + + block_0106: + goto block_01F9; + + block_010C: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + + block_01F9: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CHANGER/slot_07_hatch.txt b/USECODE/EUSECODE_extracted/pseudocode/CHANGER/slot_07_hatch.txt new file mode 100644 index 0000000..e82988d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CHANGER/slot_07_hatch.txt @@ -0,0 +1,40 @@ +function changer_hatch() /* entry=344 class_id=0x0904 slot=0x07 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + roof, /* [BP-02h] type=0x24 */ + doorQuality, /* [BP-04h] type=0x69 */ + roofQuality, /* [BP-06h] type=0x69 */ + eggNum; /* [BP-08h] type=0x69 */ + + entry: + set_info(0x0210, *(arg_06)); + process_exclude(); + doorQuality = Item.pop(arg_06); + eggNum = Intrinsic003F(arg_06); + if eggNum goto block_016E; + + block_010F: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x46 */ + /* loop current_var=0xFE string_bytes=0xE loop_type=0x2 */ + + block_0141: + if condition goto block_016C; + + block_0144: + roofQuality = Item.pop(roof); + if (roofQuality != eggNum) goto block_0168; + + block_015D: + + block_0168: + /* loopnext */ + goto block_0141; + + block_016C: + + block_016E: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CHEDITRO/slot_0E_calledFromAnim.txt b/USECODE/EUSECODE_extracted/pseudocode/CHEDITRO/slot_0E_calledFromAnim.txt new file mode 100644 index 0000000..eed3bdf --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CHEDITRO/slot_0E_calledFromAnim.txt @@ -0,0 +1,14 @@ +function cheditro_calledFromAnim() /* entry=202 class_id=0x0385 slot=0x0E */ +{ + var + referent, /* [BP+00h] type=0x69 */ + n; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x021A, *(arg_06)); + process_exclude(); + n = *(arg_06); + spawn class_0A1C_slot_20(Item.getQLo(arg_06), *(arg_06), n); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CHEMSUIT/slot_0E_calledFromAnim.txt b/USECODE/EUSECODE_extracted/pseudocode/CHEMSUIT/slot_0E_calledFromAnim.txt new file mode 100644 index 0000000..120ed28 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CHEMSUIT/slot_0E_calledFromAnim.txt @@ -0,0 +1,9 @@ +function chemsuit_calledFromAnim() /* entry=165 class_id=0x02F6 slot=0x0E */ +{ + entry: + set_info(0x021A, *(arg_06)); + process_exclude(); + spawn class_0A1C_slot_20(Item.getQLo(arg_06), *(arg_06), arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CHEST_EW/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/CHEST_EW/slot_01_use.txt new file mode 100644 index 0000000..a250175 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CHEST_EW/slot_01_use.txt @@ -0,0 +1,118 @@ +function chest_ew_use() /* entry=317 class_id=0x0550 slot=0x01 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + item2, /* [BP-04h] type=0x24 */ + counter; /* [BP-06h] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if (Item.getFrame(arg_06) > 1) goto block_0228; + + block_0222: + goto block_0511; + + block_0228: + if (Item.getFrame(arg_06) != 1) goto block_02E6; + + block_023D: + class_0A0C_slot_2D(Item.getZ(arg_06), Item.legal_create(arg_06), Intrinsic0013(arg_06), 5, 0x054B, *(arg_06)); + if retval goto block_02CF; + + block_026F: + counter = 5; + + block_0284: + if (counter <= 9) goto block_02CC; + + block_028C: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0284; + + block_02CC: + goto block_02E3; + + block_02CF: + goto block_0511; + + block_02E3: + goto block_038B; + + block_02E6: + class_0A0C_slot_2D(Item.getZ(arg_06), Item.legal_create(arg_06), Intrinsic0013(arg_06), 0, 0x054B, *(arg_06)); + if retval goto block_0378; + + block_0318: + counter = 0; + + block_032D: + if (counter <= 4) goto block_0375; + + block_0335: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_032D; + + block_0375: + goto block_038B; + + block_0378: + goto block_0511; + + block_038B: + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_03D0: + if condition goto block_050F; + + block_03D3: + if (Item.pop(arg_06) != Item.pop(item)) goto block_050B; + + block_03EF: + class_0A0C_slot_2E(item); + item2 = retval; + if ((((Intrinsic003C(item2) != 10) || (Intrinsic003C(item2) != 11)) || (Intrinsic003C(item2) != 12)) || (Intrinsic003C(item2) != 13)) goto block_04E5; + + block_0449: + if (!Intrinsic0037(1, item2)) goto block_04E2; + + block_045E: + /* global_address global_id=0x3C */ + if (Item.getType() != 40) goto block_04B9; + + block_0490: + goto block_04E2; + + block_04B9: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + + block_04E2: + goto block_050B; + + block_04E5: + spawn class_0A0C_slot_31(pid, item2, 0x00000000); + suspend; + + block_050B: + /* loopnext */ + goto block_03D0; + + block_050F: + + block_0511: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CHEST_EW/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/CHEST_EW/slot_06_gotHit.txt new file mode 100644 index 0000000..9bf2815 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CHEST_EW/slot_06_gotHit.txt @@ -0,0 +1,48 @@ +function chest_ew_gotHit() /* entry=317 class_id=0x0550 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + fram; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if (!retval) goto block_0107; + + block_0101: + goto block_01CA; + + block_0107: + fram = Item.getFrame(arg_06); + if (fram < 2) goto block_01CA; + + block_0123: + spawn class_0A1E_slot_27(pid, 40, vel, ref, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_0186; + + block_0153: + class_0A0C_slot_20(1); + if retval goto block_0173; + + block_0163: + goto block_0180; + + block_0173: + + block_0180: + goto block_01CA; + + block_0186: + spawn class_0A1E_slot_28(pid, 0, 0, arg_06); + suspend; + class_0A1E_slot_23(0x1000, arg_06); + + block_01CA: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CHEST_NS/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/CHEST_NS/slot_01_use.txt new file mode 100644 index 0000000..97fd64a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CHEST_NS/slot_01_use.txt @@ -0,0 +1,123 @@ +function chest_ns_use() /* entry=316 class_id=0x054F slot=0x01 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + item2, /* [BP-04h] type=0x24 */ + counter, /* [BP-06h] type=0x69 */ + x, /* [BP-08h] type=0x69 */ + y; /* [BP-0Ah] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if (Item.getFrame(arg_06) > 1) goto block_0228; + + block_0222: + goto block_052F; + + block_0228: + if (Item.getFrame(arg_06) != 1) goto block_02E6; + + block_023D: + class_0A0C_slot_2D(Item.getZ(arg_06), Item.legal_create(arg_06), Intrinsic0013(arg_06), 5, 0x054A, *(arg_06)); + if retval goto block_02CF; + + block_026F: + counter = 5; + + block_0284: + if (counter <= 9) goto block_02CC; + + block_028C: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0284; + + block_02CC: + goto block_02E3; + + block_02CF: + goto block_052F; + + block_02E3: + goto block_038B; + + block_02E6: + class_0A0C_slot_2D(Item.getZ(arg_06), Item.legal_create(arg_06), Intrinsic0013(arg_06), 0, 0x054A, *(arg_06)); + if retval goto block_0378; + + block_0318: + counter = 0; + + block_032D: + if (counter <= 4) goto block_0375; + + block_0335: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_032D; + + block_0375: + goto block_038B; + + block_0378: + goto block_052F; + + block_038B: + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + x = (Intrinsic0013(arg_06) + 56); + y = (Item.legal_create(arg_06) + 64); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_03F2: + if condition goto block_052D; + + block_03F5: + if (Item.pop(arg_06) != Item.pop(item)) goto block_0529; + + block_0411: + class_0A0C_slot_2E(item); + item2 = retval; + if ((((Intrinsic003C(item2) != 10) || (Intrinsic003C(item2) != 11)) || (Intrinsic003C(item2) != 12)) || (Intrinsic003C(item2) != 13)) goto block_0503; + + block_046B: + if (!Intrinsic0037(1, item2)) goto block_0500; + + block_0480: + /* global_address global_id=0x3C */ + if (Item.getType() != 40) goto block_04D7; + + block_04B2: + x = (x - 32); + goto block_0500; + + block_04D7: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + + block_0500: + goto block_0529; + + block_0503: + spawn class_0A0C_slot_31(pid, item2, 0x00000000); + suspend; + + block_0529: + /* loopnext */ + goto block_03F2; + + block_052D: + + block_052F: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CHEST_NS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/CHEST_NS/slot_06_gotHit.txt new file mode 100644 index 0000000..f91d970 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CHEST_NS/slot_06_gotHit.txt @@ -0,0 +1,48 @@ +function chest_ns_gotHit() /* entry=316 class_id=0x054F slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + fram; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if (!retval) goto block_0107; + + block_0101: + goto block_01CA; + + block_0107: + fram = Item.getFrame(arg_06); + if (fram < 2) goto block_01CA; + + block_0123: + spawn class_0A1E_slot_27(pid, 40, vel, ref, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_0186; + + block_0153: + class_0A0C_slot_20(1); + if retval goto block_0173; + + block_0163: + goto block_0180; + + block_0173: + + block_0180: + goto block_01CA; + + block_0186: + spawn class_0A1E_slot_28(pid, 0, 0, arg_06); + suspend; + class_0A1E_slot_23(0x1000, arg_06); + + block_01CA: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CHEST_OE/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/CHEST_OE/slot_01_use.txt new file mode 100644 index 0000000..a5c7fb7 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CHEST_OE/slot_01_use.txt @@ -0,0 +1,21 @@ +function chest_oe_use() /* entry=314 class_id=0x054B slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if (Item.getFrame(arg_06) > 9) goto block_01BE; + + block_01B8: + goto block_01DF; + + block_01BE: + class_0A0C_slot_40(*(arg_06)); + if retval goto block_01DF; + + block_01D0: + class_0A1E_slot_23(0x1000, arg_06); + + block_01DF: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CHEST_OE/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/CHEST_OE/slot_06_gotHit.txt new file mode 100644 index 0000000..c5e6c1a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CHEST_OE/slot_06_gotHit.txt @@ -0,0 +1,33 @@ +function chest_oe_gotHit() /* entry=314 class_id=0x054B slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if (!retval) goto block_0107; + + block_0101: + goto block_0169; + + block_0107: + if (Item.getFrame(arg_06) < 10) goto block_0169; + + block_011C: + class_0A0C_slot_2C(vel, ref); + if retval goto block_0153; + + block_012E: + spawn class_0A1E_slot_28(pid, 0, 0, arg_06); + suspend; + + block_0153: + + block_0169: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CHEST_ON/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/CHEST_ON/slot_01_use.txt new file mode 100644 index 0000000..26f3dd7 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CHEST_ON/slot_01_use.txt @@ -0,0 +1,21 @@ +function chest_on_use() /* entry=313 class_id=0x054A slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if (Item.getFrame(arg_06) > 9) goto block_01BE; + + block_01B8: + goto block_01DF; + + block_01BE: + class_0A0C_slot_40(*(arg_06)); + if retval goto block_01DF; + + block_01D0: + class_0A1E_slot_23(0x1000, arg_06); + + block_01DF: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CHEST_ON/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/CHEST_ON/slot_06_gotHit.txt new file mode 100644 index 0000000..4f1137b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CHEST_ON/slot_06_gotHit.txt @@ -0,0 +1,33 @@ +function chest_on_gotHit() /* entry=313 class_id=0x054A slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if (!retval) goto block_0107; + + block_0101: + goto block_0169; + + block_0107: + if (Item.getFrame(arg_06) < 10) goto block_0169; + + block_011C: + class_0A0C_slot_2C(vel, ref); + if retval goto block_0153; + + block_012E: + spawn class_0A1E_slot_28(pid, 0, 0, arg_06); + suspend; + + block_0153: + + block_0169: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CONGRESS/slot_0E_calledFromAnim.txt b/USECODE/EUSECODE_extracted/pseudocode/CONGRESS/slot_0E_calledFromAnim.txt new file mode 100644 index 0000000..4486b8b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CONGRESS/slot_0E_calledFromAnim.txt @@ -0,0 +1,9 @@ +function congress_calledFromAnim() /* entry=156 class_id=0x02DF slot=0x0E */ +{ + entry: + set_info(0x021A, *(arg_06)); + process_exclude(); + spawn class_0A1C_slot_20(Item.getQLo(arg_06), *(arg_06), arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CONVEYOR/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/CONVEYOR/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..5fc157b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CONVEYOR/slot_10_leaveFastArea.txt @@ -0,0 +1,9 @@ +function conveyor_leaveFastArea() /* entry=374 class_id=0x0A04 slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + class_0A0C_slot_33(0x0205, *(arg_06)); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CONVEYOR/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/CONVEYOR/slot_20_slot_20.txt new file mode 100644 index 0000000..7d4e826 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CONVEYOR/slot_20_slot_20.txt @@ -0,0 +1,120 @@ +function conveyor_slot_20() /* entry=374 class_id=0x0A04 slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + xdir, /* [BP+0Ah] type=0x62 */ + ydir, /* [BP+0Ch] type=0x62 */ + counter, /* [BP-02h] type=0x69 */ + areThereItems, /* [BP-03h] type=0x62 */ + cargo_item, /* [BP-05h] type=0x24 */ + a, /* [BP-06h] type=0x62 */ + b, /* [BP-07h] type=0x62 */ + t, /* [BP-09h] type=0x69 */ + wp; /* [BP-0Eh] type=0x24 */ + + entry: + set_info(0x0205, *(arg_06)); + set_info(0x0205, *(arg_06)); + counter = 0; + counter = Item.getFrame(arg_06); + if (Item.touch(115, arg_06) != 0) goto block_013E; + + block_0131: + + block_013E: + suspend; + areThereItems = 0; + if Item.getCX(arg_06) goto block_019E; + + block_0161: + counter = (counter - 1); + if (xdir < 0) goto block_0183; + + block_0179: + xdir = (xdir * -1); + + block_0183: + if (ydir < 0) goto block_019B; + + block_0191: + ydir = (ydir * -1); + + block_019B: + goto block_01D8; + + block_019E: + counter = (1 + counter); + if (xdir > 0) goto block_01C0; + + block_01B6: + xdir = (xdir * -1); + + block_01C0: + if (ydir > 0) goto block_01D8; + + block_01CE: + ydir = (ydir * -1); + + block_01D8: + if (counter > 2) goto block_01ED; + + block_01E6: + counter = 0; + + block_01ED: + if (counter < 0) goto block_0202; + + block_01FB: + counter = 2; + + block_0202: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFB string_bytes=0x1 loop_type=0x6 */ + + block_0212: + if condition goto block_0304; + + block_0215: + t = Intrinsic0016(cargo_item); + if ((t != 0x0476) && (t != 0x04D0)) goto block_0300; + + block_0239: + a = Item.getQHi(*(arg_06), cargo_item); + wp = (Intrinsic0013(cargo_item) + xdir); + local_0C = (Item.legal_create(cargo_item) + ydir); + local_0A = Item.getZ(cargo_item); + if (!Item.pop(0, 1, wp, cargo_item)) goto block_02CB; + + block_029F: + + block_02CB: + b = Item.getQHi(*(arg_06), cargo_item); + areThereItems = 1; + if ((a != 1) && (b != 0)) goto block_0300; + + block_02F5: + + block_0300: + /* loopnext */ + goto block_0212; + + block_0304: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + if (!areThereItems) goto block_0355; + + block_0335: + goto block_0386; + + block_0355: + if (Item.touch(115, arg_06) != 0) goto block_0376; + + block_0369: + + block_0376: + goto block_013E; + + block_0386: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CONVEY_E/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/CONVEY_E/slot_06_gotHit.txt new file mode 100644 index 0000000..911c931 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CONVEY_E/slot_06_gotHit.txt @@ -0,0 +1,49 @@ +function convey_e_gotHit() /* entry=53 class_id=0x0134 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + v, /* [BP+0Ch] type=0x69 */ + xdir, /* [BP-01h] type=0x62 */ + ydir, /* [BP-02h] type=0x62 */ + item, /* [BP-04h] type=0x24 */ + a, /* [BP-05h] type=0x62 */ + b; /* [BP-06h] type=0x62 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + xdir = 0; + ydir = -3; + if Item.isOn(arg_06) goto block_0211; + + block_020A: + ydir = 3; + + block_0211: + class_0A0C_slot_2C(v, ref); + if retval goto block_0229; + + block_0223: + goto block_029C; + + block_0229: + item = ref; + a = Item.getQHi(*(arg_06), item); + b = 1; + if (Item.isOn(arg_06) != 0x00FF) goto block_0266; + + block_025F: + b = 0; + + block_0266: + if (a && b) goto block_029C; + + block_0277: + spawn class_0A04_slot_20(pid, ydir, xdir, arg_06); + suspend; + + block_029C: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CONVEY_E/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/CONVEY_E/slot_0A_equip.txt new file mode 100644 index 0000000..781f760 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CONVEY_E/slot_0A_equip.txt @@ -0,0 +1,31 @@ +function convey_e_equip() /* entry=53 class_id=0x0134 slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (arg_0A != 0) goto block_0135; + + block_00F9: + class_0A0C_slot_33(0x0205, *(arg_06)); + goto block_01BB; + + block_0135: + if (arg_0A != 1) goto block_0178; + + block_0143: + class_0A0C_slot_33(0x0205, *(arg_06)); + spawn class_0A04_slot_20(-3, 0, arg_06); + goto block_01BB; + + block_0178: + if (arg_0A != 2) goto block_01BB; + + block_0186: + class_0A0C_slot_33(0x0205, *(arg_06)); + spawn class_0A04_slot_20(3, 0, arg_06); + goto block_01BB; + + block_01BB: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CONVEY_N/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/CONVEY_N/slot_06_gotHit.txt new file mode 100644 index 0000000..e3b7573 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CONVEY_N/slot_06_gotHit.txt @@ -0,0 +1,49 @@ +function convey_n_gotHit() /* entry=12 class_id=0x006B slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + v, /* [BP+0Ch] type=0x69 */ + xdir, /* [BP-01h] type=0x62 */ + ydir, /* [BP-02h] type=0x62 */ + item, /* [BP-04h] type=0x24 */ + a, /* [BP-05h] type=0x62 */ + b; /* [BP-06h] type=0x62 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + xdir = -3; + ydir = 0; + if Item.isOn(arg_06) goto block_0211; + + block_020A: + xdir = 3; + + block_0211: + class_0A0C_slot_2C(v, ref); + if retval goto block_0229; + + block_0223: + goto block_029C; + + block_0229: + item = ref; + a = Item.getQHi(*(arg_06), item); + b = 1; + if (Item.isOn(arg_06) != 0x00FF) goto block_0266; + + block_025F: + b = 0; + + block_0266: + if (a && b) goto block_029C; + + block_0277: + spawn class_0A04_slot_20(pid, ydir, xdir, arg_06); + suspend; + + block_029C: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CONVEY_N/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/CONVEY_N/slot_0A_equip.txt new file mode 100644 index 0000000..35b984e --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CONVEY_N/slot_0A_equip.txt @@ -0,0 +1,31 @@ +function convey_n_equip() /* entry=12 class_id=0x006B slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (arg_0A != 0) goto block_0135; + + block_00F9: + class_0A0C_slot_33(0x0205, *(arg_06)); + goto block_01BB; + + block_0135: + if (arg_0A != 1) goto block_0178; + + block_0143: + class_0A0C_slot_33(0x0205, *(arg_06)); + spawn class_0A04_slot_20(0, -3, arg_06); + goto block_01BB; + + block_0178: + if (arg_0A != 2) goto block_01BB; + + block_0186: + class_0A0C_slot_33(0x0205, *(arg_06)); + spawn class_0A04_slot_20(0, 3, arg_06); + goto block_01BB; + + block_01BB: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CONVFLR/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/CONVFLR/slot_06_gotHit.txt new file mode 100644 index 0000000..41724bb --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CONVFLR/slot_06_gotHit.txt @@ -0,0 +1,49 @@ +function convflr_gotHit() /* entry=128 class_id=0x022C slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + v, /* [BP+0Ch] type=0x69 */ + xdir, /* [BP-01h] type=0x62 */ + ydir, /* [BP-02h] type=0x62 */ + item, /* [BP-04h] type=0x24 */ + a, /* [BP-05h] type=0x62 */ + b; /* [BP-06h] type=0x62 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + xdir = 0; + ydir = -3; + if Item.isOn(arg_06) goto block_0211; + + block_020A: + ydir = 3; + + block_0211: + class_0A0C_slot_2C(v, ref); + if retval goto block_0229; + + block_0223: + goto block_029C; + + block_0229: + item = ref; + a = Item.getQHi(*(arg_06), item); + b = 1; + if (Item.isOn(arg_06) != 0x00FF) goto block_0266; + + block_025F: + b = 0; + + block_0266: + if (a && b) goto block_029C; + + block_0277: + spawn class_0A04_slot_20(pid, ydir, xdir, arg_06); + suspend; + + block_029C: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CONVFLR/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/CONVFLR/slot_0A_equip.txt new file mode 100644 index 0000000..d6e6704 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CONVFLR/slot_0A_equip.txt @@ -0,0 +1,31 @@ +function convflr_equip() /* entry=128 class_id=0x022C slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (arg_0A != 0) goto block_0135; + + block_00F9: + class_0A0C_slot_33(0x0205, *(arg_06)); + goto block_01BB; + + block_0135: + if (arg_0A != 1) goto block_0178; + + block_0143: + class_0A0C_slot_33(0x0205, *(arg_06)); + spawn class_0A04_slot_20(-3, 0, arg_06); + goto block_01BB; + + block_0178: + if (arg_0A != 2) goto block_01BB; + + block_0186: + class_0A0C_slot_33(0x0205, *(arg_06)); + spawn class_0A04_slot_20(3, 0, arg_06); + goto block_01BB; + + block_01BB: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CONV_EL/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/CONV_EL/slot_06_gotHit.txt new file mode 100644 index 0000000..073afbb --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CONV_EL/slot_06_gotHit.txt @@ -0,0 +1,49 @@ +function conv_el_gotHit() /* entry=140 class_id=0x0293 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + v, /* [BP+0Ch] type=0x69 */ + xdir, /* [BP-01h] type=0x62 */ + ydir, /* [BP-02h] type=0x62 */ + item, /* [BP-04h] type=0x24 */ + a, /* [BP-05h] type=0x62 */ + b; /* [BP-06h] type=0x62 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + xdir = 0; + ydir = -3; + if Item.isOn(arg_06) goto block_0211; + + block_020A: + ydir = 3; + + block_0211: + class_0A0C_slot_2C(v, ref); + if retval goto block_0229; + + block_0223: + goto block_029C; + + block_0229: + item = ref; + a = Item.getQHi(*(arg_06), item); + b = 1; + if (Intrinsic004D(arg_06) != 0x00FF) goto block_0266; + + block_025F: + b = 0; + + block_0266: + if (a && b) goto block_029C; + + block_0277: + spawn class_0A04_slot_20(pid, ydir, xdir, arg_06); + suspend; + + block_029C: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CONV_EL/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/CONV_EL/slot_0A_equip.txt new file mode 100644 index 0000000..6aecd82 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CONV_EL/slot_0A_equip.txt @@ -0,0 +1,31 @@ +function conv_el_equip() /* entry=140 class_id=0x0293 slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (arg_0A != 0) goto block_0135; + + block_00F9: + class_0A0C_slot_33(0x0205, *(arg_06)); + goto block_01BB; + + block_0135: + if (arg_0A != 1) goto block_0178; + + block_0143: + class_0A0C_slot_33(0x0205, *(arg_06)); + spawn class_0A04_slot_20(-3, 0, arg_06); + goto block_01BB; + + block_0178: + if (arg_0A != 2) goto block_01BB; + + block_0186: + class_0A0C_slot_33(0x0205, *(arg_06)); + spawn class_0A04_slot_20(3, 0, arg_06); + goto block_01BB; + + block_01BB: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CONV_NL/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/CONV_NL/slot_06_gotHit.txt new file mode 100644 index 0000000..37d3a9e --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CONV_NL/slot_06_gotHit.txt @@ -0,0 +1,49 @@ +function conv_nl_gotHit() /* entry=139 class_id=0x0292 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + v, /* [BP+0Ch] type=0x69 */ + xdir, /* [BP-01h] type=0x62 */ + ydir, /* [BP-02h] type=0x62 */ + item, /* [BP-04h] type=0x24 */ + a, /* [BP-05h] type=0x62 */ + b; /* [BP-06h] type=0x62 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + xdir = -3; + ydir = 0; + if Intrinsic004D(arg_06) goto block_0211; + + block_020A: + xdir = 3; + + block_0211: + class_0A0C_slot_2C(v, ref); + if retval goto block_0229; + + block_0223: + goto block_029C; + + block_0229: + item = ref; + a = Npc.isDead(*(arg_06), item); + b = 1; + if (Intrinsic009C(arg_06) != 0x00FF) goto block_0266; + + block_025F: + b = 0; + + block_0266: + if (a && b) goto block_029C; + + block_0277: + spawn class_0A04_slot_20(pid, ydir, xdir, arg_06); + suspend; + + block_029C: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CONV_NL/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/CONV_NL/slot_0A_equip.txt new file mode 100644 index 0000000..64f968b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CONV_NL/slot_0A_equip.txt @@ -0,0 +1,31 @@ +function conv_nl_equip() /* entry=139 class_id=0x0292 slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (arg_0A != 0) goto block_0135; + + block_00F9: + class_0A0C_slot_33(0x0205, *(arg_06)); + goto block_01BB; + + block_0135: + if (arg_0A != 1) goto block_0178; + + block_0143: + class_0A0C_slot_33(0x0205, *(arg_06)); + spawn class_0A04_slot_20(0, -3, arg_06); + goto block_01BB; + + block_0178: + if (arg_0A != 2) goto block_01BB; + + block_0186: + class_0A0C_slot_33(0x0205, *(arg_06)); + spawn class_0A04_slot_20(0, 3, arg_06); + goto block_01BB; + + block_01BB: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/COPY_EW/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/COPY_EW/slot_06_gotHit.txt new file mode 100644 index 0000000..05d26eb --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/COPY_EW/slot_06_gotHit.txt @@ -0,0 +1,36 @@ +function copy_ew_gotHit() /* entry=232 class_id=0x0433 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + fram, /* [BP-02h] type=0x69 */ + coolfram; /* [BP-04h] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + fram = Item.getFrame(arg_06); + coolfram = 2; + if (fram > 1) goto block_0114; + + block_010E: + goto block_0186; + + block_0114: + class_0A0C_slot_2C(vel, ref); + if retval goto block_0186; + + block_0126: + spawn class_0A1E_slot_28(pid, 0, 1, arg_06); + suspend; + class_0A0C_slot_20(1); + class_0A0C_slot_20(coolfram, 10); + if retval goto block_0186; + + block_0179: + + block_0186: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/COPY_NS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/COPY_NS/slot_06_gotHit.txt new file mode 100644 index 0000000..628c61e --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/COPY_NS/slot_06_gotHit.txt @@ -0,0 +1,36 @@ +function copy_ns_gotHit() /* entry=233 class_id=0x0434 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + fram, /* [BP-02h] type=0x69 */ + coolfram; /* [BP-04h] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + fram = Item.getFrame(arg_06); + coolfram = 2; + if (fram > 1) goto block_0114; + + block_010E: + goto block_0186; + + block_0114: + class_0A0C_slot_2C(vel, ref); + if retval goto block_0186; + + block_0126: + spawn class_0A1E_slot_28(pid, 0, 1, arg_06); + suspend; + class_0A0C_slot_20(1); + class_0A0C_slot_20(coolfram, 10); + if retval goto block_0186; + + block_0179: + + block_0186: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/COR_BOOT/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/COR_BOOT/slot_0A_equip.txt new file mode 100644 index 0000000..adefc97 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/COR_BOOT/slot_0A_equip.txt @@ -0,0 +1,76 @@ +function cor_boot_equip() /* entry=189 class_id=0x0360 slot=0x0A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + event, /* [BP+0Ah] type=0x69 */ + counter; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (Item.getFrame(arg_06) != 10) goto block_0106; + + block_0100: + goto block_02D2; + + block_0106: + class_0A0C_slot_33(0x021B, *(arg_06)); + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + + block_0140: + if (Item.getFrame(arg_06) != 9) goto block_0192; + + block_0152: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + goto block_0140; + + block_0192: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + if (global[0x001F] != 2) goto block_01F2; + + block_01C2: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_0267; + + block_01F2: + if (global[0x001F] != 8) goto block_022C; + + block_01FC: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_0267; + + block_022C: + if (global[0x001F] != 12) goto block_0267; + + block_0236: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_0267; + + block_0267: + counter = 0; + + block_026E: + if (counter <= 9) goto block_02B9; + + block_0276: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_026E; + + block_02B9: + spawn class_0360_enterFastArea(arg_06); + + block_02D2: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/COR_BOOT/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/COR_BOOT/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..9edacd1 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/COR_BOOT/slot_0F_enterFastArea.txt @@ -0,0 +1,96 @@ +function cor_boot_enterFastArea() /* entry=189 class_id=0x0360 slot=0x0F */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + counter; /* [BP-04h] type=0x69 */ + + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (((global[0x001F] != 2) || (global[0x001F] != 8)) || (global[0x001F] != 12)) goto block_038E; + + block_032C: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_034A: + if condition goto block_037C; + + block_034D: + if (Item.pop(item) != Item.pop(arg_06)) goto block_0378; + + block_0369: + class_0A1E_slot_24(0x1000, item); + + block_0378: + /* loopnext */ + goto block_034A; + + block_037C: + goto block_03F3; + + block_038E: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_03AC: + if condition goto block_03DE; + + block_03AF: + if (Item.pop(item) != Item.pop(arg_06)) goto block_03DA; + + block_03CB: + class_0A1E_slot_23(0x1000, item); + + block_03DA: + /* loopnext */ + goto block_03AC; + + block_03DE: + goto block_0507; + + block_03F3: + suspend; + class_0A0C_slot_20(pid, 120); + spawn class_0A0C_slot_32((retval + 0x00DC), 0x00000000); + suspend; + counter = 0; + + block_0439: + if (counter <= 5) goto block_0481; + + block_0441: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0439; + + block_0481: + class_0A0C_slot_20(pid, 120); + spawn class_0A0C_slot_32((retval + 120), 0x00000000); + suspend; + counter = 0; + + block_04B9: + if (counter <= 5) goto block_0504; + + block_04C1: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_04B9; + + block_0504: + goto block_03F3; + + block_0507: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/COR_BOOT/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/COR_BOOT/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..159b7ee --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/COR_BOOT/slot_10_leaveFastArea.txt @@ -0,0 +1,9 @@ +function cor_boot_leaveFastArea() /* entry=189 class_id=0x0360 slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + class_0A0C_slot_33(0x021B, *(arg_06)); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/COURIER/slot_0E_calledFromAnim.txt b/USECODE/EUSECODE_extracted/pseudocode/COURIER/slot_0E_calledFromAnim.txt new file mode 100644 index 0000000..0563bb2 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/COURIER/slot_0E_calledFromAnim.txt @@ -0,0 +1,15 @@ +function courier_calledFromAnim() /* entry=253 class_id=0x045D slot=0x0E */ +{ + var + referent, /* [BP+00h] type=0x69 */ + n; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x021A, *(arg_06)); + process_exclude(); + n = *(arg_06); + set_info(1, 0); + spawn class_0A1C_slot_20(Item.getQLo(arg_06), *(arg_06), arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CRUMORPH/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/CRUMORPH/slot_0A_equip.txt new file mode 100644 index 0000000..b5627d3 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CRUMORPH/slot_0A_equip.txt @@ -0,0 +1,76 @@ +function crumorph_equip() /* entry=173 class_id=0x0318 slot=0x0A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + var, /* [BP+0Ah] type=0x69 */ + n, /* [BP-02h] type=0x24 */ + lastAct; /* [BP-04h] type=0x69 */ + + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0109: + if condition goto block_02AF; + + block_010C: + if Item.isNpc(n) goto block_02AB; + + block_011B: + if (Item.getQLo(n) != Item.pop(arg_06)) goto block_02AB; + + block_0137: + if (Kernel.resetRef(n) != 0) goto block_02AB; + + block_0149: + class_0A11_slot_2B(n); + if (!retval) goto block_0163; + + block_015D: + goto block_02B1; + + block_0163: + lastAct = Intrinsic0050(n); + spawn class_0A0C_slot_32(pid, 3, 0x00000000); + suspend; + spawn class_0A11_slot_28(pid, n); + suspend; + + block_020B: + if (Item.pop() > 1) goto block_0242; + + block_0219: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_020B; + + block_0242: + if (Kernel.resetRef(n) != 0) goto block_027E; + + block_0254: + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + goto block_02A5; + + block_027E: + spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); + suspend; + + block_02A5: + goto block_02B1; + + block_02AB: + /* loopnext */ + goto block_0109; + + block_02AF: + + block_02B1: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CRUZTRIG/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/CRUZTRIG/slot_06_gotHit.txt new file mode 100644 index 0000000..f2f1a6b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CRUZTRIG/slot_06_gotHit.txt @@ -0,0 +1,93 @@ +function cruztrig_gotHit() /* entry=193 class_id=0x0365 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + elev; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + if (ref != Item.pop()) goto block_00FF; + + block_00F9: + goto block_0316; + + block_00FF: + if (Item.getMapNum(arg_06) != 0) goto block_0316; + + block_0111: + item = ref; + if ((Intrinsic0057(arg_06) != 0) || (Item.use(*(arg_06), item) != 0)) goto block_0144; + + block_013E: + goto block_0316; + + block_0144: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + + block_019E: + if 1 goto block_0316; + + block_01A6: + if (Intrinsic0057(arg_06) != 0) goto block_01E1; + + block_01B8: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0313; + + block_01E1: + spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); + suspend; + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x6 */ + + block_0257: + if condition goto block_030B; + + block_025A: + if (Item.getStatus(elev) & 0x1000) goto block_0296; + + block_026D: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_025A; + + block_0296: + spawn class_0A0C_slot_32(pid, 120, 0x00000000); + suspend; + /* global_address global_id=0x3C */ + if (Item.getZ() < (Item.getZ(elev) - 5)) goto block_0307; + + block_02DC: + class_0A09_slot_21(Item.getZ(elev), elev); + if retval goto block_0307; + + block_02F9: + spawn class_0A09_slot_20(elev); + + block_0307: + /* loopnext */ + goto block_0257; + + block_030B: + goto block_0316; + + block_0313: + goto block_019E; + + block_0316: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CRU_SPID/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/CRU_SPID/slot_01_use.txt new file mode 100644 index 0000000..fd6a7b7 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CRU_SPID/slot_01_use.txt @@ -0,0 +1,236 @@ +function cru_spid_use() /* entry=320 class_id=0x0560 slot=0x01 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + mine, /* [BP-02h] type=0x24 */ + InCrouch, /* [BP-03h] type=0x62 */ + Cru_Spider, /* [BP-05h] type=0x24 */ + target, /* [BP-07h] type=0x24 */ + item, /* [BP-09h] type=0x24 */ + counter, /* [BP-0Bh] type=0x69 */ + lastAnim, /* [BP-0Dh] type=0x69 */ + xOff, /* [BP-0Fh] type=0x69 */ + yOff, /* [BP-11h] type=0x69 */ + wp; /* [BP-16h] type=0x24 */ + + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + /* global_address global_id=0x3C */ + if (Item.getType() != 40) goto block_0184; + + block_0150: + goto block_055B; + + block_0184: + Cru_Spider = *(arg_06); + set_info(0x00F0, 0); + /* global_address global_id=0x3C */ + lastAnim = Intrinsic005A(); + + block_01B0: + /* global_address global_id=0x3C */ + if Intrinsic0033() goto block_01E6; + + block_01C0: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_01B0; + + block_01E6: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 0) goto block_0204; + + block_01F6: + xOff = -1; + yOff = -3; + goto block_03C6; + + block_0204: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 1) goto block_0222; + + block_0214: + xOff = 0; + yOff = -3; + goto block_03C6; + + block_0222: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 2) goto block_0240; + + block_0232: + xOff = 1; + yOff = -3; + goto block_03C6; + + block_0240: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 3) goto block_025E; + + block_0250: + xOff = 2; + yOff = -2; + goto block_03C6; + + block_025E: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 4) goto block_027C; + + block_026E: + xOff = 2; + yOff = -1; + goto block_03C6; + + block_027C: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 5) goto block_029A; + + block_028C: + xOff = 2; + yOff = 0; + goto block_03C6; + + block_029A: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 6) goto block_02B8; + + block_02AA: + xOff = 2; + yOff = 2; + goto block_03C6; + + block_02B8: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 7) goto block_02D6; + + block_02C8: + xOff = 0; + yOff = 2; + goto block_03C6; + + block_02D6: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 8) goto block_02F4; + + block_02E6: + xOff = -1; + yOff = 2; + goto block_03C6; + + block_02F4: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 9) goto block_0312; + + block_0304: + xOff = -2; + yOff = 2; + goto block_03C6; + + block_0312: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 10) goto block_0330; + + block_0322: + xOff = -3; + yOff = 2; + goto block_03C6; + + block_0330: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 11) goto block_034E; + + block_0340: + xOff = -3; + yOff = 1; + goto block_03C6; + + block_034E: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 12) goto block_036C; + + block_035E: + xOff = -3; + yOff = 0; + goto block_03C6; + + block_036C: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 13) goto block_038A; + + block_037C: + xOff = -3; + yOff = -1; + goto block_03C6; + + block_038A: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 14) goto block_03A8; + + block_039A: + xOff = -3; + yOff = -2; + goto block_03C6; + + block_03A8: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 15) goto block_03C6; + + block_03B8: + xOff = -3; + yOff = -3; + goto block_03C6; + + block_03C6: + /* global_address global_id=0x3C */ + if Intrinsic0035() goto block_03E0; + + block_03D6: + InCrouch = 1; + goto block_0417; + + block_03E0: + InCrouch = 0; + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + + block_0417: + /* global_address global_id=0x3C */ + wp = (Intrinsic0013() + (xOff * 16)); + /* global_address global_id=0x3C */ + local_14 = (Item.legal_create() + (yOff * 16)); + /* global_address global_id=0x3C */ + local_12 = Item.getZ(); + if (!Item.getSurfaceWeight(wp, 0, 0x0560, mine)) goto block_04E2; + + block_046A: + if (!InCrouch) goto block_04D1; + + block_04A1: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + + block_04D1: + goto block_055B; + + block_04E2: + counter = 1; + + block_04F6: + if (counter <= 9) goto block_053E; + + block_04FE: + spawn class_0A0C_slot_32(pid, 3, 0x00000000); + suspend; + counter = (1 + counter); + goto block_04F6; + + block_053E: + spawn class_0560_slot_20(mine, arg_06); + + block_055B: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CRU_SPID/slot_05_hit.txt b/USECODE/EUSECODE_extracted/pseudocode/CRU_SPID/slot_05_hit.txt new file mode 100644 index 0000000..3b68c21 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CRU_SPID/slot_05_hit.txt @@ -0,0 +1,13 @@ +function cru_spid_hit() /* entry=320 class_id=0x0560 slot=0x05 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020B, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/CRU_SPID/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/CRU_SPID/slot_20_slot_20.txt new file mode 100644 index 0000000..3b1e78f --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/CRU_SPID/slot_20_slot_20.txt @@ -0,0 +1,140 @@ +function cru_spid_slot_20() /* entry=320 class_id=0x0560 slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + xOff, /* [BP-04h] type=0x69 */ + yOff, /* [BP-06h] type=0x69 */ + counter2, /* [BP-08h] type=0x69 */ + wp, /* [BP-0Dh] type=0x24 */ + item, /* [BP-0Fh] type=0x24 */ + spider; /* [BP-11h] type=0x24 */ + + entry: + set_info(0x00F0, *(arg_06)); + item = ref; + set_info(0x00F0, spider); + + block_065B: + if (counter < 0x01F4) goto block_08FD; + + block_066A: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + if (Intrinsic00FA((Intrinsic00FA() != 0)) != 1) goto block_0696; + + block_0688: + xOff = 0; + yOff = -1; + goto block_07CA; + + block_0696: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + if (Intrinsic00FA((Intrinsic00FA() != 2)) != 3) goto block_06C2; + + block_06B4: + xOff = 1; + yOff = -1; + goto block_07CA; + + block_06C2: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + if (Intrinsic00FA((Intrinsic00FA() != 4)) != 5) goto block_06EE; + + block_06E0: + xOff = 1; + yOff = 0; + goto block_07CA; + + block_06EE: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + if (Intrinsic00FA((Intrinsic00FA() != 6)) != 7) goto block_071A; + + block_070C: + xOff = 1; + yOff = 1; + goto block_07CA; + + block_071A: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + if (Intrinsic00FA((Intrinsic00FA() != 8)) != 9) goto block_0746; + + block_0738: + xOff = 0; + yOff = 1; + goto block_07CA; + + block_0746: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + if (Intrinsic00FA((Intrinsic00FA() != 10)) != 11) goto block_0772; + + block_0764: + xOff = -1; + yOff = 1; + goto block_07CA; + + block_0772: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + if (Intrinsic00FA((Intrinsic00FA() != 12)) != 13) goto block_079E; + + block_0790: + xOff = -1; + yOff = 0; + goto block_07CA; + + block_079E: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + if (Intrinsic00FA((Intrinsic00FA() != 14)) != 15) goto block_07CA; + + block_07BC: + xOff = -1; + yOff = -1; + goto block_07CA; + + block_07CA: + wp = (wp + (xOff * 8)); + local_0B = (local_0B + (yOff * 8)); + if (!Item.pop(0, 1, wp, spider)) goto block_0855; + + block_080A: + local_09 = (local_09 + 1); + if (!Item.pop(0, 1, wp, spider)) goto block_0855; + + block_082D: + if (!Item.pop(0, 1, wp, spider)) goto block_0855; + + block_0846: + + block_0855: + counter2 = (1 + counter2); + if ((counter2 != 20) && (local_09 > 4)) goto block_08CA; + + block_0873: + local_09 = (local_09 - 4); + if Item.pop(0, 1, wp, spider) goto block_08C3; + + block_0892: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + + block_08C3: + counter2 = 0; + + block_08CA: + counter = (1 + counter); + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + goto block_065B; + + block_08FD: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DAMNLUGG/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/DAMNLUGG/slot_06_gotHit.txt new file mode 100644 index 0000000..3a74438 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DAMNLUGG/slot_06_gotHit.txt @@ -0,0 +1,41 @@ +function damnlugg_gotHit() /* entry=336 class_id=0x059F slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if retval goto block_01A1; + + block_00FD: + spawn class_0A1E_slot_27(pid, 100, vel, ref, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_015D; + + block_012D: + class_0A0C_slot_20(1); + if retval goto block_014D; + + block_013D: + goto block_015A; + + block_014D: + + block_015A: + goto block_01A1; + + block_015D: + spawn class_0A1E_slot_2A(pid, arg_06); + suspend; + spawn class_0A1E_slot_28(pid, 1, 0, arg_06); + suspend; + + block_01A1: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DAMNMCR8/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/DAMNMCR8/slot_06_gotHit.txt new file mode 100644 index 0000000..5af2c19 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DAMNMCR8/slot_06_gotHit.txt @@ -0,0 +1,41 @@ +function damnmcr8_gotHit() /* entry=337 class_id=0x05A0 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if retval goto block_01A1; + + block_00FD: + spawn class_0A1E_slot_27(pid, 100, vel, ref, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_015D; + + block_012D: + class_0A0C_slot_20(1); + if retval goto block_014D; + + block_013D: + goto block_015A; + + block_014D: + + block_015A: + goto block_01A1; + + block_015D: + spawn class_0A1E_slot_2A(pid, arg_06); + suspend; + spawn class_0A1E_slot_28(pid, 1, 0, arg_06); + suspend; + + block_01A1: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DATALINK/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/DATALINK/slot_01_use.txt new file mode 100644 index 0000000..558c4a5 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DATALINK/slot_01_use.txt @@ -0,0 +1,566 @@ +function datalink_use() /* entry=278 class_id=0x04D4 slot=0x01 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + textFile; /* [BP-02h] type=0x73 */ + + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "MISSION OBJECTIVES:^*"; + /* global_address global_id=0x3C */ + if (Item.getType() > 30) goto block_012E; + + block_0128: + goto block_1466; + + block_012E: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + if (Item.getType((Item.getType() != 1)) != 2) goto block_0287; + + block_014C: + if (!global[0x0020]) goto block_0186; + + block_0157: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + + block_0186: + if (!global[0x002F]) goto block_01C3; + + block_0191: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^)Gain keycard from rebel informant."; + + block_01C3: + if (!global[0x0020]) goto block_0227; + + block_01CE: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^)Locate Thermal Coupler on level four and destroy objective with BlastPac."; + + block_0227: + if (global[0x002F] && global[0x0020]) goto block_0284; + + block_023C: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^)Locate telepad on fourth level and return to rebel base."; + + block_0284: + goto block_143A; + + block_0287: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + if (Item.getType((Item.getType() != 3)) != 4) goto block_040D; + + block_02A5: + if (!global[0x0021]) goto block_02B0; + + block_02B0: + if (!global[0x0030]) goto block_0315; + + block_02BB: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^)PFC. Andrews to confirm coordinates before teleportation into prison area."; + + block_0315: + if (!global[0x0021]) goto block_03AD; + + block_0320: + /* concat */ + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "in Dr. Hoffman's lab."; + + block_03AD: + if (global[0x0030] && global[0x0021]) goto block_040A; + + block_03C2: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^)Locate telepad on prison level and return to rebel base."; + + block_040A: + goto block_143A; + + block_040D: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + if (Item.getType((Item.getType() != 5)) != 6) goto block_0583; + + block_042B: + if (!global[0x0022]) goto block_0466; + + block_0436: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + + block_0466: + if (!global[0x0031]) goto block_04D2; + + block_0471: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^)PFC. Cardova to confirm coordinates before teleportation into industrial complex."; + + block_04D2: + if (!global[0x0022]) goto block_0528; + + block_04DD: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^)Locate PHIR computer and download latest prototypes' plans."; + + block_0528: + if (global[0x0031] && global[0x0022]) goto block_0580; + + block_053D: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^)Locate telepad on level 1 and return to rebel base."; + + block_0580: + goto block_143A; + + block_0583: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + if (Item.getType((Item.getType() != 7)) != 8) goto block_06F6; + + block_05A1: + if (!global[0x0023]) goto block_05DB; + + block_05AC: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + + block_05DB: + if (!global[0x0032]) goto block_0641; + + block_05E6: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^)PFC. Andrews to bring down defense screens before objective can be reached."; + + block_0641: + if (!global[0x0023]) goto block_069B; + + block_064C: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^)Locate SORC computer on level 3 and destroy it with a BlastPac."; + + block_069B: + if (global[0x0032] && global[0x0023]) goto block_06F3; + + block_06B0: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^)Locate telepad on level 4 and return to rebel base."; + + block_06F3: + goto block_143A; + + block_06F6: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + if (Item.getType((Item.getType() != 9)) != 10) goto block_085D; + + block_0714: + if (!global[0x0024]) goto block_074F; + + block_071F: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + + block_074F: + if (!global[0x0033]) goto block_078C; + + block_075A: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^)Gain keycard from rebel informant."; + + block_078C: + if (!global[0x0024]) goto block_07F4; + + block_0797: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^)Locate MELF computer in Science Wing, level 5 and download Cypher chip plans."; + + block_07F4: + if (global[0x0033] && global[0x0024]) goto block_085A; + + block_0809: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^)Locate telepad in Science Wing, level 4 and return to rebel base."; + + block_085A: + goto block_143A; + + block_085D: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + if (Item.getType((Item.getType() != 11)) != 12) goto block_09E4; + + block_087B: + if (!global[0x0025]) goto block_08B5; + + block_0886: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + + block_08B5: + if (!global[0x0034]) goto block_0919; + + block_08C0: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^)Sgt. Brooks to confirm teleportation coordinates into government complex."; + + block_0919: + if (!global[0x0025]) goto block_09A7; + + block_0924: + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Transport the senator back to Central for questioning."; + + block_09A7: + if (global[0x0034] && global[0x0025]) goto block_09E1; + + block_09BC: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^)Return to rebel base."; + + block_09E1: + goto block_143A; + + block_09E4: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + if (Item.getType((Item.getType() != 13)) != 14) goto block_0B08; + + block_0A02: + if (!global[0x0026]) goto block_0A3C; + + block_0A0D: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + + block_0A3C: + if (!global[0x0026]) goto block_0AB5; + + block_0A47: + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Destroy objective with FusionPac."; + + block_0AB5: + if global[0x0026] goto block_0B05; + + block_0ABF: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^)Locate teleporter on level 7 and return to rebel base."; + + block_0B05: + goto block_143A; + + block_0B08: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + if (Item.getType((Item.getType() != 15)) != 16) goto block_0BF2; + + block_0B26: + if (!global[0x0027]) goto block_0B60; + + block_0B31: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + + block_0B60: + if (!global[0x0027]) goto block_0BA9; + + block_0B6B: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^)Liberate Professor Willmar from WEC prison."; + goto block_0BEF; + + block_0BA9: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^)Locate teleporter on level 3 and return to rebel base."; + + block_0BEF: + goto block_143A; + + block_0BF2: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + if (Item.getType((Item.getType() != 17)) != 18) goto block_0D04; + + block_0C10: + if (!global[0x0028]) goto block_0C4A; + + block_0C1B: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + + block_0C4A: + if (!global[0x0028]) goto block_0CA5; + + block_0C55: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^)Infiltrate governement complex and spy on congressional meeting."; + + block_0CA5: + if global[0x0028] goto block_0D01; + + block_0CAF: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^)Return to your original telepad for extraction back to rebel base."; + + block_0D01: + goto block_143A; + + block_0D04: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + if (Item.getType((Item.getType() != 19)) != 20) goto block_0E55; + + block_0D22: + if (!global[0x0029]) goto block_0D5D; + + block_0D2D: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + + block_0D5D: + if (!global[0x0029]) goto block_0DB6; + + block_0D68: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^)Locate plans for new experimental weapon in Dr. Hoffman's lab."; + + block_0DB6: + if global[0x0029] goto block_0E52; + + block_0DC0: + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^Locate telepad on level 3 to return to rebel base."; + + block_0E52: + goto block_143A; + + block_0E55: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + if (Item.getType((Item.getType() != 21)) != 22) goto block_0FAE; + + block_0E73: + if (!global[0x002A]) goto block_0EAF; + + block_0E7E: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + + block_0EAF: + if (!global[0x0035]) goto block_0EFE; + + block_0EBA: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^)PFC. Cardova to bring down teleport defense screens."; + + block_0EFE: + if (!global[0x002A]) goto block_0F5B; + + block_0F09: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^)Locate OPTS computer and download plans to the Vigilance Platform."; + + block_0F5B: + if global[0x002A] goto block_0FAB; + + block_0F65: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^)Locate teleporter on level 4 and return to rebel base."; + + block_0FAB: + goto block_143A; + + block_0FAE: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + if (Item.getType((Item.getType() != 23)) != 24) goto block_10B0; + + block_0FCC: + if (!global[0x002B]) goto block_1008; + + block_0FD7: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + + block_1008: + if (!global[0x002B]) goto block_105D; + + block_1013: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^)Locate OPC computer and upload new targeting coordinates. "; + + block_105D: + if global[0x002B] goto block_10AD; + + block_1067: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^)Locate teleporter on level 3 and return to rebel base."; + + block_10AD: + goto block_143A; + + block_10B0: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + if (Item.getType((Item.getType() != 25)) != 26) goto block_1185; + + block_10CE: + if (!global[0x002C]) goto block_1109; + + block_10D9: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + + block_1109: + if (!global[0x002C]) goto block_1147; + + block_1114: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^)Rescue Col. Ely from WEC prison."; + goto block_1182; + + block_1147: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^)Locate teleporter and return to rebel base."; + + block_1182: + goto block_143A; + + block_1185: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + if (Item.getType((Item.getType() != 27)) != 28) goto block_128A; + + block_11A3: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + if (!global[0x002D]) goto block_1254; + + block_11DE: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^)Locate shuttle to Vigilance Platform.^)Await troop transfer.^)Lead hit squad to Vigilance Platform."; + goto block_1287; + + block_1254: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^)Take shuttle to Vigilance Platform."; + + block_1287: + goto block_143A; + + block_128A: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + if (Item.getType((Item.getType() != 29)) != 30) goto block_142D; + + block_12A8: + if (!global[0x0038]) goto block_1347; + + block_12B3: + if (!global[0x0038]) goto block_12EF; + + block_12BE: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + + block_12EF: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^)Locate and deactivate SATARG system, then destroy weapon control system."; + + block_1347: + if ((global[0x0038] != 1) && (global[0x002E] != 0)) goto block_13D4; + + block_135F: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^)Locate and destroy Lithium Power Core with BlastPac."; + + block_13D4: + if global[0x002E] goto block_142A; + + block_13DE: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^)Locate escape pod on level 10 and escape Vigilance Platform."; + + block_142A: + goto block_143A; + + block_142D: + goto block_1466; + + block_143A: + spawn class_0A17_slot_20(pid, textFile, arg_06); + /* free_stack_string value_u8=0x0 target=[SP+00h] */ + suspend; + + block_1466: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DEATHBOX/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/DEATHBOX/slot_0A_equip.txt new file mode 100644 index 0000000..3b40162 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DEATHBOX/slot_0A_equip.txt @@ -0,0 +1,78 @@ +function deathbox_equip() /* entry=289 class_id=0x04E7 slot=0x0A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + var, /* [BP+0Ah] type=0x69 */ + sswitch, /* [BP-02h] type=0x24 */ + a, /* [BP-03h] type=0x62 */ + b, /* [BP-04h] type=0x62 */ + c, /* [BP-05h] type=0x62 */ + counter; /* [BP-07h] type=0x69 */ + + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + if (Item.getStatus(arg_06) & 0x1000) goto block_012D; + + block_0124: + goto block_025A; + + block_012A: + goto block_025A; + + block_012D: + spawn class_0A0C_slot_32(pid, 12, 0x00000000); + suspend; + class_0A1E_slot_23(0x1000, arg_06); + if (var != 2) goto block_024B; + + block_016A: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0187: + if condition goto block_01E4; + + block_018A: + if (Item.pop(sswitch) != 10) goto block_01B0; + + block_019F: + a = Item.getFrame(sswitch); + goto block_01D6; + + block_01B0: + if (Item.pop(sswitch) != 11) goto block_01D6; + + block_01C5: + b = Item.getFrame(sswitch); + goto block_01D6; + + block_01D6: + counter = (1 + counter); + /* loopnext */ + goto block_0187; + + block_01E4: + if ((b != 4) && (a != 0)) goto block_0248; + + block_01FA: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + spawn class_0A18_slot_20(pid, 0x0080, *(arg_06), arg_06); + suspend; + + block_0248: + goto block_024B; + + block_024B: + class_0A1E_slot_24(0x1000, arg_06); + + block_025A: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DEATHFL/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/DEATHFL/slot_20_slot_20.txt new file mode 100644 index 0000000..21aed91 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DEATHFL/slot_20_slot_20.txt @@ -0,0 +1,27 @@ +function deathfl_slot_20() /* entry=375 class_id=0x0A05 slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + item2, /* [BP-04h] type=0x24 */ + counter, /* [BP-06h] type=0x69 */ + n, /* [BP-08h] type=0x24 */ + n2, /* [BP-0Ah] type=0x24 */ + dir, /* [BP-0Ch] type=0x69 */ + x, /* [BP-0Eh] type=0x69 */ + y, /* [BP-10h] type=0x69 */ + z, /* [BP-12h] type=0x69 */ + spoogeType; /* [BP-14h] type=0x69 */ + + set_info(0x0001, *(arg_06)); + item = ref; + class_0A0C_slot_2C(vel, ref); + if (retval) { + if (Item.use(*(arg_06), item) == 0) { + } + return; + } + return; +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DEATHFL1/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/DEATHFL1/slot_06_gotHit.txt new file mode 100644 index 0000000..8ff58fc --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DEATHFL1/slot_06_gotHit.txt @@ -0,0 +1,14 @@ +function deathfl1_gotHit() /* entry=125 class_id=0x0227 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A05_slot_20(vel, ref, arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DEATHFL1/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/DEATHFL1/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..684a64c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DEATHFL1/slot_0F_enterFastArea.txt @@ -0,0 +1,8 @@ +function deathfl1_enterFastArea() /* entry=125 class_id=0x0227 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DEATHFL2/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/DEATHFL2/slot_06_gotHit.txt new file mode 100644 index 0000000..8d4a9ef --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DEATHFL2/slot_06_gotHit.txt @@ -0,0 +1,14 @@ +function deathfl2_gotHit() /* entry=126 class_id=0x0228 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A05_slot_20(vel, ref, arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DEATHFL2/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/DEATHFL2/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..0bcc731 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DEATHFL2/slot_0F_enterFastArea.txt @@ -0,0 +1,8 @@ +function deathfl2_enterFastArea() /* entry=126 class_id=0x0228 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DEATHFL3/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/DEATHFL3/slot_06_gotHit.txt new file mode 100644 index 0000000..4c5b1e3 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DEATHFL3/slot_06_gotHit.txt @@ -0,0 +1,14 @@ +function deathfl3_gotHit() /* entry=58 class_id=0x0150 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A05_slot_20(vel, ref, arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DEATHFL3/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/DEATHFL3/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..c06d0d1 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DEATHFL3/slot_0F_enterFastArea.txt @@ -0,0 +1,8 @@ +function deathfl3_enterFastArea() /* entry=58 class_id=0x0150 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DEATHFL4/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/DEATHFL4/slot_06_gotHit.txt new file mode 100644 index 0000000..7d57021 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DEATHFL4/slot_06_gotHit.txt @@ -0,0 +1,14 @@ +function deathfl4_gotHit() /* entry=335 class_id=0x059E slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A05_slot_20(vel, ref, arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DEATHFL4/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/DEATHFL4/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..c9186a3 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DEATHFL4/slot_0F_enterFastArea.txt @@ -0,0 +1,8 @@ +function deathfl4_enterFastArea() /* entry=335 class_id=0x059E slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DEATHFL5/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/DEATHFL5/slot_06_gotHit.txt new file mode 100644 index 0000000..1f75079 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DEATHFL5/slot_06_gotHit.txt @@ -0,0 +1,14 @@ +function deathfl5_gotHit() /* entry=338 class_id=0x05A2 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A05_slot_20(vel, ref, arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DEATHFL5/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/DEATHFL5/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..78c3c2d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DEATHFL5/slot_0F_enterFastArea.txt @@ -0,0 +1,8 @@ +function deathfl5_enterFastArea() /* entry=338 class_id=0x05A2 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DETPAC/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/DETPAC/slot_01_use.txt new file mode 100644 index 0000000..26b121a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DETPAC/slot_01_use.txt @@ -0,0 +1,216 @@ +function detpac_use() /* entry=319 class_id=0x055F slot=0x01 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + InCrouch, /* [BP-01h] type=0x62 */ + Bomb, /* [BP-03h] type=0x24 */ + item, /* [BP-05h] type=0x24 */ + lastAnim, /* [BP-07h] type=0x69 */ + xOff, /* [BP-09h] type=0x69 */ + yOff, /* [BP-0Bh] type=0x69 */ + mine; /* [BP-0Dh] type=0x24 */ + + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + Bomb = *(arg_06); + if Item.legal_move(arg_06) goto block_045B; + + block_0103: + /* global_address global_id=0x3C */ + if (Item.getType() != 40) goto block_014D; + + block_0119: + goto block_046A; + + block_014D: + set_info(0x00F0, 0); + lastAnim = 0; + + block_0168: + /* global_address global_id=0x3C */ + if Intrinsic0033() goto block_019E; + + block_0178: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0168; + + block_019E: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 0) goto block_01BC; + + block_01AE: + xOff = -1; + yOff = -3; + goto block_037E; + + block_01BC: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 1) goto block_01DA; + + block_01CC: + xOff = 0; + yOff = -3; + goto block_037E; + + block_01DA: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 2) goto block_01F8; + + block_01EA: + xOff = 1; + yOff = -3; + goto block_037E; + + block_01F8: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 3) goto block_0216; + + block_0208: + xOff = 2; + yOff = -2; + goto block_037E; + + block_0216: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 4) goto block_0234; + + block_0226: + xOff = 2; + yOff = -1; + goto block_037E; + + block_0234: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 5) goto block_0252; + + block_0244: + xOff = 2; + yOff = 0; + goto block_037E; + + block_0252: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 6) goto block_0270; + + block_0262: + xOff = 2; + yOff = 2; + goto block_037E; + + block_0270: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 7) goto block_028E; + + block_0280: + xOff = 0; + yOff = 2; + goto block_037E; + + block_028E: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 8) goto block_02AC; + + block_029E: + xOff = -1; + yOff = 2; + goto block_037E; + + block_02AC: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 9) goto block_02CA; + + block_02BC: + xOff = -2; + yOff = 2; + goto block_037E; + + block_02CA: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 10) goto block_02E8; + + block_02DA: + xOff = -3; + yOff = 2; + goto block_037E; + + block_02E8: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 11) goto block_0306; + + block_02F8: + xOff = -3; + yOff = 1; + goto block_037E; + + block_0306: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 12) goto block_0324; + + block_0316: + xOff = -3; + yOff = 0; + goto block_037E; + + block_0324: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 13) goto block_0342; + + block_0334: + xOff = -3; + yOff = -1; + goto block_037E; + + block_0342: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 14) goto block_0360; + + block_0352: + xOff = -3; + yOff = -2; + goto block_037E; + + block_0360: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 15) goto block_037E; + + block_0370: + xOff = -3; + yOff = -3; + goto block_037E; + + block_037E: + /* global_address global_id=0x3C */ + if Intrinsic0035() goto block_0398; + + block_038E: + InCrouch = 1; + goto block_03CF; + + block_0398: + InCrouch = 0; + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + + block_03CF: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + if (!InCrouch) goto block_044D; + + block_041D: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + + block_044D: + goto block_046A; + + block_045B: + + block_046A: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR/slot_20_slot_20.txt new file mode 100644 index 0000000..cfdda18 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR/slot_20_slot_20.txt @@ -0,0 +1,30 @@ +function door_slot_20() /* entry=376 class_id=0x0A06 slot=0x20 */ +{ + entry: + set_info(0x0207, *(arg_06)); + spawn class_0A06_slot_21(pid, 0, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_0137; + + block_012A: + /* word_to_dword */ + /* pop_result */ + goto block_0167; + + block_0134: + goto block_0141; + + block_0137: + /* word_to_dword */ + /* pop_result */ + goto block_0167; + + block_0141: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + + block_0167: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR/slot_21_slot_21.txt new file mode 100644 index 0000000..be3f4d1 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR/slot_21_slot_21.txt @@ -0,0 +1,1542 @@ +function door_slot_21() /* entry=376 class_id=0x0A06 slot=0x21 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + num, /* [BP+0Ah] type=0x69 */ + doorType, /* [BP-02h] type=0x69 */ + ewall; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x0207, *(arg_06)); + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + doorType = Intrinsic0016(arg_06); + if (doorType != 0x00A9) goto block_0293; + + block_01CD: + if (num != 2) goto block_01E8; + + block_01DE: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_01E8: + spawn class_0A07_slot_20(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_0290; + + block_020C: + if (num != 1) goto block_0286; + + block_021D: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_023B: + if condition goto block_0284; + + block_023E: + if (Item.fall(ewall) != Item.fall(arg_06)) goto block_0280; + + block_025A: + spawn class_0A0C_slot_31(pid, ewall, 0x00000000); + suspend; + + block_0280: + /* loopnext */ + goto block_023B; + + block_0284: + + block_0286: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0290: + goto block_1687; + + block_0293: + if (doorType != 0x00D0) goto block_02E8; + + block_029C: + if (num != 1) goto block_02B7; + + block_02AD: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_02B7: + spawn class_0A07_slot_21(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_02E5; + + block_02DB: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_02E5: + goto block_1687; + + block_02E8: + if (doorType != 70) goto block_03B6; + + block_02F0: + if (num != 2) goto block_030B; + + block_0301: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_030B: + spawn class_0A07_slot_22(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_03B3; + + block_032F: + if (num != 1) goto block_03A9; + + block_0340: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_035E: + if condition goto block_03A7; + + block_0361: + if (Item.fall(ewall) != Item.fall(arg_06)) goto block_03A3; + + block_037D: + spawn class_0A0C_slot_31(pid, ewall, 0x00000000); + suspend; + + block_03A3: + /* loopnext */ + goto block_035E; + + block_03A7: + + block_03A9: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_03B3: + goto block_1687; + + block_03B6: + if (doorType != 0x0107) goto block_040B; + + block_03BF: + if (num != 1) goto block_03DA; + + block_03D0: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_03DA: + spawn class_0A07_slot_23(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_0408; + + block_03FE: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0408: + goto block_1687; + + block_040B: + if (doorType != 0x02D6) goto block_0460; + + block_0414: + if (num != 2) goto block_042F; + + block_0425: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_042F: + spawn class_0A07_slot_24(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_045D; + + block_0453: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_045D: + goto block_1687; + + block_0460: + if (doorType != 0x02DB) goto block_04B5; + + block_0469: + if (num != 1) goto block_0484; + + block_047A: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0484: + spawn class_0A07_slot_25(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_04B2; + + block_04A8: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_04B2: + goto block_1687; + + block_04B5: + if (doorType != 0x02D5) goto block_050A; + + block_04BE: + if (num != 2) goto block_04D9; + + block_04CF: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_04D9: + spawn class_0A07_slot_26(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_0507; + + block_04FD: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0507: + goto block_1687; + + block_050A: + if (doorType != 0x02DA) goto block_055F; + + block_0513: + if (num != 1) goto block_052E; + + block_0524: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_052E: + spawn class_0A07_slot_27(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_055C; + + block_0552: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_055C: + goto block_1687; + + block_055F: + if (doorType != 5) goto block_062D; + + block_0567: + if (num != 2) goto block_0582; + + block_0578: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0582: + spawn class_0A07_slot_28(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_062A; + + block_05A6: + if (num != 1) goto block_0620; + + block_05B7: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_05D5: + if condition goto block_061E; + + block_05D8: + if (Item.fall(ewall) != Item.fall(arg_06)) goto block_061A; + + block_05F4: + spawn class_0A0C_slot_31(pid, ewall, 0x00000000); + suspend; + + block_061A: + /* loopnext */ + goto block_05D5; + + block_061E: + + block_0620: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_062A: + goto block_1687; + + block_062D: + if (doorType != 0x00C2) goto block_0682; + + block_0636: + if (num != 1) goto block_0651; + + block_0647: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0651: + spawn class_0A07_slot_29(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_067F; + + block_0675: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_067F: + goto block_1687; + + block_0682: + if (doorType != 123) goto block_0750; + + block_068A: + if (num != 2) goto block_06A5; + + block_069B: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_06A5: + spawn class_0A07_slot_2A(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_074D; + + block_06C9: + if (num != 1) goto block_0743; + + block_06DA: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_06F8: + if condition goto block_0741; + + block_06FB: + if (Item.fall(ewall) != Item.fall(arg_06)) goto block_073D; + + block_0717: + spawn class_0A0C_slot_31(pid, ewall, 0x00000000); + suspend; + + block_073D: + /* loopnext */ + goto block_06F8; + + block_0741: + + block_0743: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_074D: + goto block_1687; + + block_0750: + if (doorType != 0x00CB) goto block_07A5; + + block_0759: + if (num != 1) goto block_0774; + + block_076A: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0774: + spawn class_0A07_slot_2B(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_07A2; + + block_0798: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_07A2: + goto block_1687; + + block_07A5: + if (doorType != 0x01AB) goto block_07FA; + + block_07AE: + if (num != 2) goto block_07C9; + + block_07BF: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_07C9: + spawn class_0A07_slot_2C(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_07F7; + + block_07ED: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_07F7: + goto block_1687; + + block_07FA: + if (doorType != 0x0215) goto block_084F; + + block_0803: + if (num != 1) goto block_081E; + + block_0814: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_081E: + spawn class_0A07_slot_2D(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_084C; + + block_0842: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_084C: + goto block_1687; + + block_084F: + if (doorType != 0x0393) goto block_08A4; + + block_0858: + if (num != 2) goto block_0873; + + block_0869: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0873: + spawn class_0A07_slot_2E(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_08A1; + + block_0897: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_08A1: + goto block_1687; + + block_08A4: + if (doorType != 0x0394) goto block_08F9; + + block_08AD: + if (num != 1) goto block_08C8; + + block_08BE: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_08C8: + spawn class_0A07_slot_2F(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_08F6; + + block_08EC: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_08F6: + goto block_1687; + + block_08F9: + if (doorType != 0x0193) goto block_094E; + + block_0902: + if (num != 2) goto block_091D; + + block_0913: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_091D: + spawn class_0A07_slot_30(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_094B; + + block_0941: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_094B: + goto block_1687; + + block_094E: + if (doorType != 0x0189) goto block_09A3; + + block_0957: + if (num != 1) goto block_0972; + + block_0968: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0972: + spawn class_0A07_slot_31(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_09A0; + + block_0996: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_09A0: + goto block_1687; + + block_09A3: + if (doorType != 0x01C7) goto block_09F8; + + block_09AC: + if (num != 2) goto block_09C7; + + block_09BD: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_09C7: + spawn class_0A07_slot_32(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_09F5; + + block_09EB: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_09F5: + goto block_1687; + + block_09F8: + if (doorType != 0x0289) goto block_0A4D; + + block_0A01: + if (num != 1) goto block_0A1C; + + block_0A12: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0A1C: + spawn class_0A07_slot_33(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_0A4A; + + block_0A40: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0A4A: + goto block_1687; + + block_0A4D: + if (doorType != 0x030A) goto block_0AA2; + + block_0A56: + if (num != 2) goto block_0A71; + + block_0A67: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0A71: + spawn class_0A08_slot_20(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_0A9F; + + block_0A95: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0A9F: + goto block_1687; + + block_0AA2: + if (doorType != 0x036B) goto block_0AF7; + + block_0AAB: + if (num != 1) goto block_0AC6; + + block_0ABC: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0AC6: + spawn class_0A08_slot_21(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_0AF4; + + block_0AEA: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0AF4: + goto block_1687; + + block_0AF7: + if (doorType != 0x030B) goto block_0B4C; + + block_0B00: + if (num != 2) goto block_0B1B; + + block_0B11: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0B1B: + spawn class_0A08_slot_22(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_0B49; + + block_0B3F: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0B49: + goto block_1687; + + block_0B4C: + if (doorType != 0x0368) goto block_0BA1; + + block_0B55: + if (num != 1) goto block_0B70; + + block_0B66: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0B70: + spawn class_0A08_slot_23(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_0B9E; + + block_0B94: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0B9E: + goto block_1687; + + block_0BA1: + if (doorType != 0x0095) goto block_0BF6; + + block_0BAA: + if (num != 2) goto block_0BC5; + + block_0BBB: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0BC5: + spawn class_0A08_slot_24(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_0BF3; + + block_0BE9: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0BF3: + goto block_1687; + + block_0BF6: + if (doorType != 0x030E) goto block_0C4B; + + block_0BFF: + if (num != 1) goto block_0C1A; + + block_0C10: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0C1A: + spawn class_0A08_slot_25(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_0C48; + + block_0C3E: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0C48: + goto block_1687; + + block_0C4B: + if (doorType != 0x0099) goto block_0CA0; + + block_0C54: + if (num != 2) goto block_0C6F; + + block_0C65: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0C6F: + spawn class_0A08_slot_26(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_0C9D; + + block_0C93: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0C9D: + goto block_1687; + + block_0CA0: + if (doorType != 0x0100) goto block_0CF5; + + block_0CA9: + if (num != 1) goto block_0CC4; + + block_0CBA: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0CC4: + spawn class_0A08_slot_27(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_0CF2; + + block_0CE8: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0CF2: + goto block_1687; + + block_0CF5: + if (doorType != 0x053D) goto block_0D4A; + + block_0CFE: + if (num != 2) goto block_0D19; + + block_0D0F: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0D19: + spawn class_0A08_slot_28(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_0D47; + + block_0D3D: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0D47: + goto block_1687; + + block_0D4A: + if (doorType != 0x053E) goto block_0D9F; + + block_0D53: + if (num != 1) goto block_0D6E; + + block_0D64: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0D6E: + spawn class_0A08_slot_29(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_0D9C; + + block_0D92: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0D9C: + goto block_1687; + + block_0D9F: + if (doorType != 0x053B) goto block_0DF4; + + block_0DA8: + if (num != 2) goto block_0DC3; + + block_0DB9: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0DC3: + spawn class_0A08_slot_2A(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_0DF1; + + block_0DE7: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0DF1: + goto block_1687; + + block_0DF4: + if (doorType != 0x053C) goto block_0E49; + + block_0DFD: + if (num != 1) goto block_0E18; + + block_0E0E: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0E18: + spawn class_0A08_slot_2B(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_0E46; + + block_0E3C: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0E46: + goto block_1687; + + block_0E49: + if (doorType != 0x01EE) goto block_0E9E; + + block_0E52: + if (num != 2) goto block_0E6D; + + block_0E63: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0E6D: + spawn class_0A07_slot_34(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_0E9B; + + block_0E91: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0E9B: + goto block_1687; + + block_0E9E: + if (doorType != 0x01ED) goto block_0EF3; + + block_0EA7: + if (num != 1) goto block_0EC2; + + block_0EB8: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0EC2: + spawn class_0A07_slot_35(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_0EF0; + + block_0EE6: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0EF0: + goto block_1687; + + block_0EF3: + if (doorType != 0x03AD) goto block_0F48; + + block_0EFC: + if (num != 2) goto block_0F17; + + block_0F0D: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0F17: + spawn class_0A07_slot_36(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_0F45; + + block_0F3B: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0F45: + goto block_1687; + + block_0F48: + if (doorType != 0x03C7) goto block_0F9D; + + block_0F51: + if (num != 1) goto block_0F6C; + + block_0F62: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0F6C: + spawn class_0A07_slot_37(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_0F9A; + + block_0F90: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0F9A: + goto block_1687; + + block_0F9D: + if (doorType != 0x03B9) goto block_0FF2; + + block_0FA6: + if (num != 2) goto block_0FC1; + + block_0FB7: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0FC1: + spawn class_0A07_slot_41(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_0FEF; + + block_0FE5: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_0FEF: + goto block_1687; + + block_0FF2: + if (doorType != 0x03BD) goto block_1047; + + block_0FFB: + if (num != 1) goto block_1016; + + block_100C: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_1016: + spawn class_0A07_slot_42(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_1044; + + block_103A: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_1044: + goto block_1687; + + block_1047: + if (doorType != 0x03BA) goto block_109C; + + block_1050: + if (num != 2) goto block_106B; + + block_1061: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_106B: + spawn class_0A07_slot_43(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_1099; + + block_108F: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_1099: + goto block_1687; + + block_109C: + if (doorType != 0x03BE) goto block_10F1; + + block_10A5: + if (num != 1) goto block_10C0; + + block_10B6: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_10C0: + spawn class_0A07_slot_44(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_10EE; + + block_10E4: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_10EE: + goto block_1687; + + block_10F1: + if (doorType != 0x046A) goto block_1146; + + block_10FA: + if (num != 2) goto block_1115; + + block_110B: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_1115: + spawn class_0A07_slot_45(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_1143; + + block_1139: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_1143: + goto block_1687; + + block_1146: + if (doorType != 0x046C) goto block_119B; + + block_114F: + if (num != 1) goto block_116A; + + block_1160: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_116A: + spawn class_0A07_slot_46(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_1198; + + block_118E: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_1198: + goto block_1687; + + block_119B: + if (doorType != 0x03C6) goto block_11F0; + + block_11A4: + if (num != 2) goto block_11BF; + + block_11B5: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_11BF: + spawn class_0A07_slot_47(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_11ED; + + block_11E3: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_11ED: + goto block_1687; + + block_11F0: + if (doorType != 0x046B) goto block_1245; + + block_11F9: + if (num != 1) goto block_1214; + + block_120A: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_1214: + spawn class_0A07_slot_48(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_1242; + + block_1238: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_1242: + goto block_1687; + + block_1245: + if (doorType != 0x028F) goto block_129A; + + block_124E: + if (num != 2) goto block_1269; + + block_125F: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_1269: + spawn class_0A07_slot_38(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_1297; + + block_128D: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_1297: + goto block_1687; + + block_129A: + if (doorType != 0x0428) goto block_12EF; + + block_12A3: + if (num != 1) goto block_12BE; + + block_12B4: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_12BE: + spawn class_0A07_slot_39(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_12EC; + + block_12E2: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_12EC: + goto block_1687; + + block_12EF: + if (doorType != 0x0312) goto block_1344; + + block_12F8: + if (num != 2) goto block_1313; + + block_1309: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_1313: + spawn class_0A07_slot_3A(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_1341; + + block_1337: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_1341: + goto block_1687; + + block_1344: + if (doorType != 0x0415) goto block_1399; + + block_134D: + if (num != 1) goto block_1368; + + block_135E: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_1368: + spawn class_0A07_slot_3B(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_1396; + + block_138C: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_1396: + goto block_1687; + + block_1399: + if (doorType != 0x04D8) goto block_13D7; + + block_13A2: + spawn class_0A07_slot_3C(pid, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_13D4; + + block_13CA: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_13D4: + goto block_1687; + + block_13D7: + if (doorType != 0x03FF) goto block_142C; + + block_13E0: + if (num != 2) goto block_13FB; + + block_13F1: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_13FB: + spawn class_0A07_slot_3D(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_1429; + + block_141F: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_1429: + goto block_1687; + + block_142C: + if (doorType != 0x0440) goto block_1481; + + block_1435: + if (num != 1) goto block_1450; + + block_1446: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_1450: + spawn class_0A07_slot_3E(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_147E; + + block_1474: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_147E: + goto block_1687; + + block_1481: + if (doorType != 0x03F8) goto block_14D6; + + block_148A: + if (num != 2) goto block_14A5; + + block_149B: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_14A5: + spawn class_0A07_slot_3F(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_14D3; + + block_14C9: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_14D3: + goto block_1687; + + block_14D6: + if (doorType != 0x043F) goto block_152B; + + block_14DF: + if (num != 1) goto block_14FA; + + block_14F0: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_14FA: + spawn class_0A07_slot_40(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_1528; + + block_151E: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_1528: + goto block_1687; + + block_152B: + if (doorType != 51) goto block_157F; + + block_1533: + if (num != 2) goto block_154E; + + block_1544: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_154E: + spawn class_0A07_slot_3D(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_157C; + + block_1572: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_157C: + goto block_1687; + + block_157F: + if (doorType != 0x009C) goto block_15D4; + + block_1588: + if (num != 1) goto block_15A3; + + block_1599: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_15A3: + spawn class_0A07_slot_3E(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_15D1; + + block_15C7: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_15D1: + goto block_1687; + + block_15D4: + if (doorType != 108) goto block_1628; + + block_15DC: + if (num != 2) goto block_15F7; + + block_15ED: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_15F7: + spawn class_0A07_slot_3F(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_1625; + + block_161B: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_1625: + goto block_1687; + + block_1628: + if (doorType != 0x0400) goto block_167D; + + block_1631: + if (num != 1) goto block_164C; + + block_1642: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_164C: + spawn class_0A07_slot_40(pid, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_167A; + + block_1670: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_167A: + goto block_1687; + + block_167D: + /* word_to_dword */ + /* pop_result */ + goto block_1687; + + block_1687: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR/slot_22_slot_22.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR/slot_22_slot_22.txt new file mode 100644 index 0000000..e68fc0c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR/slot_22_slot_22.txt @@ -0,0 +1,57 @@ +function door_slot_22() /* entry=376 class_id=0x0A06 slot=0x22 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + roof, /* [BP-02h] type=0x24 */ + count, /* [BP-04h] type=0x69 */ + doorParam, /* [BP-06h] type=0x69 */ + doorQuality, /* [BP-08h] type=0x69 */ + roofQuality; /* [BP-0Ah] type=0x69 */ + + entry: + set_info(0x0001, *(arg_06)); + count = 0; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x46 */ + /* loop current_var=0xFE string_bytes=0xE loop_type=0x2 */ + + block_1708: + if condition goto block_171F; + + block_170B: + count = (1 + count); + goto block_171F; + + block_171B: + /* loopnext */ + goto block_1708; + + block_171F: + doorQuality = Item.fall(arg_06); + doorParam = Intrinsic009C(arg_06); + if count goto block_17AD; + + block_1745: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x46 */ + /* loop current_var=0xFE string_bytes=0xE loop_type=0x2 */ + + block_1777: + if condition goto block_17AB; + + block_177A: + roofQuality = Item.fall(roof); + if ((roofQuality != doorQuality) || (roofQuality != doorParam)) goto block_17A7; + + block_179C: + + block_17A7: + /* loopnext */ + goto block_1777; + + block_17AB: + + block_17AD: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR/slot_23_slot_23.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR/slot_23_slot_23.txt new file mode 100644 index 0000000..8834199 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR/slot_23_slot_23.txt @@ -0,0 +1,184 @@ +function door_slot_23() /* entry=376 class_id=0x0A06 slot=0x23 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + deathBox, /* [BP-02h] type=0x24 */ + item, /* [BP-04h] type=0x24 */ + item2, /* [BP-06h] type=0x24 */ + hitMe, /* [BP-08h] type=0x69 */ + damagePoints; /* [BP-0Ah] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + class_0A0C_slot_2C(vel, ref); + hitMe = retval; + if (((hitMe != 3) || (hitMe != 4)) || (hitMe != 10)) goto block_185F; + + block_184B: + class_0A0C_slot_2B(vel, ref); + damagePoints = retval; + goto block_1865; + + block_185F: + goto block_20CA; + + block_1865: + spawn class_0A1E_slot_27(pid, 0x00C8, vel, ref, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_18E9; + + block_1896: + class_0A0C_slot_20(10); + if (retval > 5) goto block_18D6; + + block_18C6: + goto block_18E3; + + block_18D6: + + block_18E3: + goto block_20CA; + + block_18E9: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_1914: + if condition goto block_199D; + + block_1917: + if (Item.fall(deathBox) != Item.fall(arg_06)) goto block_1999; + + block_1933: + if (Item.getMapNum(deathBox) != 0) goto block_1970; + + block_1948: + spawn class_0A18_slot_20(pid, 0, deathBox, arg_06); + suspend; + goto block_1999; + + block_1970: + spawn class_0A18_slot_20(pid, (0 + 0x0080), deathBox, arg_06); + suspend; + + block_1999: + /* loopnext */ + goto block_1914; + + block_199D: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + if (Intrinsic0000() != 0) goto block_19E4; + + block_19D3: + spawn class_0A0C_slot_3B(0x00000000); + + block_19E4: + if (Intrinsic0016(arg_06) != 123) goto block_1AB9; + + block_19F3: + if Item.getFrame(arg_06) goto block_1A25; + + block_1A02: + goto block_1A45; + + block_1A25: + + block_1A45: + spawn class_0A06_slot_22(pid, arg_06); + suspend; + goto block_20AD; + + block_1AB9: + if (Intrinsic0016(arg_06) != 0x03FF) goto block_1B5D; + + block_1AC9: + spawn class_0A06_slot_22(pid, arg_06); + suspend; + goto block_20AD; + + block_1B5D: + if (Intrinsic0016(arg_06) != 70) goto block_1C00; + + block_1B6C: + spawn class_0A06_slot_22(pid, arg_06); + suspend; + goto block_20AD; + + block_1C00: + if (Intrinsic0016(arg_06) != 0x030B) goto block_1CA4; + + block_1C10: + spawn class_0A06_slot_22(pid, arg_06); + suspend; + goto block_20AD; + + block_1CA4: + if (Intrinsic0016(arg_06) != 0x0099) goto block_1D48; + + block_1CB4: + spawn class_0A06_slot_22(pid, arg_06); + suspend; + goto block_20AD; + + block_1D48: + if (Intrinsic0016(arg_06) != 5) goto block_1E1D; + + block_1D57: + if Item.getFrame(arg_06) goto block_1D89; + + block_1D66: + goto block_1DA9; + + block_1D89: + + block_1DA9: + spawn class_0A06_slot_22(pid, arg_06); + suspend; + goto block_20AD; + + block_1E1D: + if (Intrinsic0016(arg_06) != 0x03F8) goto block_1EC1; + + block_1E2D: + spawn class_0A06_slot_22(pid, arg_06); + suspend; + goto block_20AD; + + block_1EC1: + if (Intrinsic0016(arg_06) != 0x00A9) goto block_1F65; + + block_1ED1: + spawn class_0A06_slot_22(pid, arg_06); + suspend; + goto block_20AD; + + block_1F65: + if (Intrinsic0016(arg_06) != 0x030A) goto block_2009; + + block_1F75: + spawn class_0A06_slot_22(pid, arg_06); + suspend; + goto block_20AD; + + block_2009: + if (Intrinsic0016(arg_06) != 0x0095) goto block_20AD; + + block_2019: + spawn class_0A06_slot_22(pid, arg_06); + suspend; + goto block_20AD; + + block_20AD: + /* bit_not */ + + block_20CA: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_20_slot_20.txt new file mode 100644 index 0000000..3db6520 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_20_slot_20.txt @@ -0,0 +1,45 @@ +function door2_slot_20() /* entry=377 class_id=0x0A07 slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + doorList, /* [BP-02h] type=0x6C */ + counter, /* [BP-04h] type=0x69 */ + maxFrame; /* [BP-06h] type=0x69 */ + + entry: + set_info(0x021B, 0); + if (Item.getStatus(arg_06) & 4) goto block_01F9; + + block_01F3: + goto block_0306; + + block_01F9: + spawn class_0A06_slot_22(pid, arg_06); + suspend; + /* create_list element_size=0x2 count=0xC */ + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + doorList = 0x00D0; + class_0A0C_slot_3A(0x00A9, 0x00AB, 0x00AC, 0x00AF, 0x00B2, 0x00B3, 0x00B4, 0x00B6, 0x00B7, 0x00B8, 0x00B9, doorList); + /* free_stack_list value_u8=0x0 target=[SP+00h] */ + maxFrame = retval; + counter = 2; + + block_0278: + if (counter <= maxFrame) goto block_02FC; + + block_0283: + spawn class_0A0C_slot_32(doorList, counter, pid, 2, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0278; + + block_02FC: + /* word_to_dword */ + /* pop_result */ + goto block_0306; + + block_0306: + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_21_slot_21.txt new file mode 100644 index 0000000..b26c10b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_21_slot_21.txt @@ -0,0 +1,73 @@ +function door2_slot_21() /* entry=377 class_id=0x0A07 slot=0x21 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + doorList, /* [BP-02h] type=0x6C */ + counter, /* [BP-04h] type=0x69 */ + maxFrame; /* [BP-06h] type=0x69 */ + + entry: + set_info(0x021B, 0); + if (Item.getStatus(arg_06) & 4) goto block_0370; + + block_036A: + goto block_052A; + + block_0370: + /* create_list element_size=0x2 count=0xC */ + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + doorList = 0x00D0; + class_0A0C_slot_3A(0x00A9, 0x00AB, 0x00AC, 0x00AF, 0x00B2, 0x00B3, 0x00B4, 0x00B6, 0x00B7, 0x00B8, 0x00B9, doorList); + /* free_stack_list value_u8=0x0 target=[SP+00h] */ + maxFrame = retval; + counter = (maxFrame - 1); + + block_03D3: + if (counter != 0) goto block_0520; + + block_03DB: + class_0A0C_slot_2D((Item.getZ(arg_06) - 8), Item.legal_create(arg_06), Intrinsic0013(arg_06), Item.getFrame(arg_06), doorList, counter, list_element(size=0x2), *(arg_06)); + if retval goto block_0444; + + block_041B: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0510; + + block_0444: + counter = (1 + counter); + counter = (1 + counter); + + block_0472: + if (counter < (maxFrame + 1)) goto block_0506; + + block_0483: + spawn class_0A0C_slot_32(doorList, counter, pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + /* word_to_dword */ + /* pop_result */ + goto block_052A; + + block_0503: + goto block_0472; + + block_0506: + /* word_to_dword */ + /* pop_result */ + goto block_052A; + + block_0510: + counter = (counter - 1); + goto block_03D3; + + block_0520: + /* word_to_dword */ + /* pop_result */ + goto block_052A; + + block_052A: + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_22_slot_22.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_22_slot_22.txt new file mode 100644 index 0000000..4319964 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_22_slot_22.txt @@ -0,0 +1,45 @@ +function door2_slot_22() /* entry=377 class_id=0x0A07 slot=0x22 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + doorList, /* [BP-02h] type=0x6C */ + counter, /* [BP-04h] type=0x69 */ + maxFrame; /* [BP-06h] type=0x69 */ + + entry: + set_info(0x021B, 0); + if (Item.getStatus(arg_06) & 4) goto block_0594; + + block_058E: + goto block_069A; + + block_0594: + spawn class_0A06_slot_22(pid, arg_06); + suspend; + /* create_list element_size=0x2 count=0xC */ + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + doorList = 0x0107; + class_0A0C_slot_3A(70, 85, 88, 101, 100, 99, 89, 0x0103, 0x0104, 0x0105, 0x0106, doorList); + /* free_stack_list value_u8=0x0 target=[SP+00h] */ + maxFrame = retval; + counter = 2; + + block_060C: + if (counter <= maxFrame) goto block_0690; + + block_0617: + spawn class_0A0C_slot_32(doorList, counter, pid, 2, 0x00000000); + suspend; + counter = (1 + counter); + goto block_060C; + + block_0690: + /* word_to_dword */ + /* pop_result */ + goto block_069A; + + block_069A: + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_23_slot_23.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_23_slot_23.txt new file mode 100644 index 0000000..b428076 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_23_slot_23.txt @@ -0,0 +1,69 @@ +function door2_slot_23() /* entry=377 class_id=0x0A07 slot=0x23 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + doorList, /* [BP-02h] type=0x6C */ + counter, /* [BP-04h] type=0x69 */ + counter2, /* [BP-06h] type=0x69 */ + maxFrame; /* [BP-08h] type=0x69 */ + + entry: + set_info(0x021B, 0); + if (Item.getStatus(arg_06) & 4) goto block_0704; + + block_06FE: + goto block_08AD; + + block_0704: + /* create_list element_size=0x2 count=0xC */ + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + doorList = 0x0107; + class_0A0C_slot_3A(70, 85, 88, 101, 100, 99, 89, 0x0103, 0x0104, 0x0105, 0x0106, doorList); + /* free_stack_list value_u8=0x0 target=[SP+00h] */ + maxFrame = retval; + counter = (maxFrame - 1); + + block_0760: + if (counter != 0) goto block_08A3; + + block_0768: + class_0A0C_slot_2D((Item.getZ(arg_06) - 8), Item.legal_create(arg_06), Intrinsic0013(arg_06), Item.getFrame(arg_06), doorList, counter, list_element(size=0x2), *(arg_06)); + if retval goto block_07D1; + + block_07A8: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0893; + + block_07D1: + counter = (1 + counter); + counter = (1 + counter); + + block_07FF: + if (counter < (maxFrame + 1)) goto block_0889; + + block_0810: + spawn class_0A0C_slot_32(doorList, counter, pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_07FF; + + block_0889: + /* word_to_dword */ + /* pop_result */ + goto block_08AD; + + block_0893: + counter = (counter - 1); + goto block_0760; + + block_08A3: + /* word_to_dword */ + /* pop_result */ + goto block_08AD; + + block_08AD: + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_24_slot_24.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_24_slot_24.txt new file mode 100644 index 0000000..b27d866 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_24_slot_24.txt @@ -0,0 +1,32 @@ +function door2_slot_24() /* entry=377 class_id=0x0A07 slot=0x24 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + maxFrame; /* [BP-04h] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + spawn class_0A06_slot_22(pid, arg_06); + suspend; + maxFrame = 8; + counter = 1; + + block_0945: + if (counter <= maxFrame) goto block_0990; + + block_0950: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0945; + + block_0990: + /* word_to_dword */ + /* pop_result */ + goto block_09EC; + + block_09EC: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_25_slot_25.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_25_slot_25.txt new file mode 100644 index 0000000..75ae9dd --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_25_slot_25.txt @@ -0,0 +1,45 @@ +function door2_slot_25() /* entry=377 class_id=0x0A07 slot=0x25 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + counter2, /* [BP-04h] type=0x69 */ + maxFrame; /* [BP-06h] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + maxFrame = 8; + class_0A0C_slot_2D((Item.getZ(arg_06) - (8 * 10)), Item.legal_create(arg_06), Intrinsic0013(arg_06), maxFrame, 0x02D6, *(arg_06)); + if retval goto block_0AA6; + + block_0A70: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + goto block_0AB0; + + block_0AA6: + /* word_to_dword */ + /* pop_result */ + goto block_0B1C; + + block_0AB0: + counter = (maxFrame - 1); + + block_0ABA: + if (counter > 0) goto block_0B05; + + block_0AC2: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (counter - 1); + goto block_0ABA; + + block_0B05: + /* word_to_dword */ + /* pop_result */ + goto block_0B1C; + + block_0B1C: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_26_slot_26.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_26_slot_26.txt new file mode 100644 index 0000000..826eec6 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_26_slot_26.txt @@ -0,0 +1,32 @@ +function door2_slot_26() /* entry=377 class_id=0x0A07 slot=0x26 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + maxFrame; /* [BP-04h] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + spawn class_0A06_slot_22(pid, arg_06); + suspend; + maxFrame = 8; + counter = 1; + + block_0BA5: + if (counter <= maxFrame) goto block_0BF0; + + block_0BB0: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0BA5; + + block_0BF0: + /* word_to_dword */ + /* pop_result */ + goto block_0C4C; + + block_0C4C: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_27_slot_27.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_27_slot_27.txt new file mode 100644 index 0000000..8a12599 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_27_slot_27.txt @@ -0,0 +1,45 @@ +function door2_slot_27() /* entry=377 class_id=0x0A07 slot=0x27 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + counter2, /* [BP-04h] type=0x69 */ + maxFrame; /* [BP-06h] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + maxFrame = 8; + class_0A0C_slot_2D((Item.getZ(arg_06) - (8 * 10)), Item.legal_create(arg_06), Intrinsic0013(arg_06), maxFrame, 0x02D5, *(arg_06)); + if retval goto block_0D06; + + block_0CD0: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + goto block_0D10; + + block_0D06: + /* word_to_dword */ + /* pop_result */ + goto block_0D7C; + + block_0D10: + counter = (maxFrame - 1); + + block_0D1A: + if (counter > 0) goto block_0D65; + + block_0D22: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (counter - 1); + goto block_0D1A; + + block_0D65: + /* word_to_dword */ + /* pop_result */ + goto block_0D7C; + + block_0D7C: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_28_slot_28.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_28_slot_28.txt new file mode 100644 index 0000000..1d09de2 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_28_slot_28.txt @@ -0,0 +1,45 @@ +function door2_slot_28() /* entry=377 class_id=0x0A07 slot=0x28 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + doorList, /* [BP-02h] type=0x6C */ + counter, /* [BP-04h] type=0x69 */ + maxFrame; /* [BP-06h] type=0x69 */ + + entry: + set_info(0x021B, 0); + if (Item.getStatus(arg_06) & 4) goto block_0DE4; + + block_0DDE: + goto block_0EE1; + + block_0DE4: + spawn class_0A06_slot_22(pid, arg_06); + suspend; + /* create_list element_size=0x2 count=0x7 */ + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + doorList = 0x00C2; + class_0A0C_slot_3A(5, 0x00BE, 0x00BF, 0x00C0, 0x00C1, 0x00CA, doorList); + /* free_stack_list value_u8=0x0 target=[SP+00h] */ + maxFrame = retval; + counter = 2; + + block_0E53: + if (counter <= maxFrame) goto block_0ED7; + + block_0E5E: + spawn class_0A0C_slot_32(doorList, pid, 3, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0E53; + + block_0ED7: + /* word_to_dword */ + /* pop_result */ + goto block_0EE1; + + block_0EE1: + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_29_slot_29.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_29_slot_29.txt new file mode 100644 index 0000000..5779202 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_29_slot_29.txt @@ -0,0 +1,68 @@ +function door2_slot_29() /* entry=377 class_id=0x0A07 slot=0x29 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + doorList, /* [BP-02h] type=0x6C */ + counter, /* [BP-04h] type=0x69 */ + maxFrame; /* [BP-06h] type=0x69 */ + + entry: + set_info(0x021B, 0); + if (Item.getStatus(arg_06) & 4) goto block_0F4B; + + block_0F45: + goto block_10DE; + + block_0F4B: + /* create_list element_size=0x2 count=0x7 */ + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + doorList = 0x00C2; + class_0A0C_slot_3A(5, 0x00BE, 0x00BF, 0x00C0, 0x00C1, 0x00CA, doorList); + /* free_stack_list value_u8=0x0 target=[SP+00h] */ + maxFrame = retval; + counter = (maxFrame - 1); + + block_0F9E: + if (counter != 0) goto block_10D4; + + block_0FA6: + class_0A0C_slot_2D(Item.getZ(arg_06), Item.legal_create(arg_06), (Intrinsic0013(arg_06) + 16), Item.getFrame(arg_06), doorList, counter, list_element(size=0x2), *(arg_06)); + if retval goto block_100F; + + block_0FE6: + spawn class_0A0C_slot_32(pid, 3, 0x00000000); + suspend; + goto block_10C4; + + block_100F: + counter = (1 + counter); + counter = (1 + counter); + + block_1030: + if (counter < (maxFrame + 1)) goto block_10BA; + + block_1041: + spawn class_0A0C_slot_32(doorList, pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_1030; + + block_10BA: + /* word_to_dword */ + /* pop_result */ + goto block_10DE; + + block_10C4: + counter = (counter - 1); + goto block_0F9E; + + block_10D4: + /* word_to_dword */ + /* pop_result */ + goto block_10DE; + + block_10DE: + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_2A_slot_2A.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_2A_slot_2A.txt new file mode 100644 index 0000000..8c6a7aa --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_2A_slot_2A.txt @@ -0,0 +1,45 @@ +function door2_slot_2A() /* entry=377 class_id=0x0A07 slot=0x2A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + doorList, /* [BP-02h] type=0x6C */ + counter, /* [BP-04h] type=0x69 */ + maxFrame; /* [BP-06h] type=0x69 */ + + entry: + set_info(0x021B, 0); + if (Item.getStatus(arg_06) & 4) goto block_1148; + + block_1142: + goto block_123A; + + block_1148: + spawn class_0A06_slot_22(pid, arg_06); + suspend; + /* create_list element_size=0x2 count=0x7 */ + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + doorList = 0x00CB; + class_0A0C_slot_3A(123, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, doorList); + /* free_stack_list value_u8=0x0 target=[SP+00h] */ + maxFrame = retval; + counter = 2; + + block_11B7: + if (counter <= maxFrame) goto block_1230; + + block_11C2: + spawn class_0A0C_slot_32(doorList, pid, 3, 0x00000000); + suspend; + counter = (1 + counter); + goto block_11B7; + + block_1230: + /* word_to_dword */ + /* pop_result */ + goto block_123A; + + block_123A: + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_2B_slot_2B.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_2B_slot_2B.txt new file mode 100644 index 0000000..cf1fc20 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_2B_slot_2B.txt @@ -0,0 +1,68 @@ +function door2_slot_2B() /* entry=377 class_id=0x0A07 slot=0x2B */ +{ + var + referent, /* [BP+00h] type=0x69 */ + doorList, /* [BP-02h] type=0x6C */ + counter, /* [BP-04h] type=0x69 */ + maxFrame; /* [BP-06h] type=0x69 */ + + entry: + set_info(0x021B, 0); + if (Item.getStatus(arg_06) & 4) goto block_12A4; + + block_129E: + goto block_1437; + + block_12A4: + /* create_list element_size=0x2 count=0x7 */ + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + doorList = 0x00CB; + class_0A0C_slot_3A(123, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, doorList); + /* free_stack_list value_u8=0x0 target=[SP+00h] */ + maxFrame = retval; + counter = (maxFrame - 1); + + block_12F7: + if (counter != 0) goto block_142D; + + block_12FF: + class_0A0C_slot_2D(Item.getZ(arg_06), (Item.legal_create(arg_06) + 16), Intrinsic0013(arg_06), Item.getFrame(arg_06), doorList, counter, list_element(size=0x2), *(arg_06)); + if retval goto block_1368; + + block_133F: + spawn class_0A0C_slot_32(pid, 3, 0x00000000); + suspend; + goto block_141D; + + block_1368: + counter = (1 + counter); + counter = (1 + counter); + + block_1389: + if (counter < (maxFrame + 1)) goto block_1413; + + block_139A: + spawn class_0A0C_slot_32(doorList, pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_1389; + + block_1413: + /* word_to_dword */ + /* pop_result */ + goto block_1437; + + block_141D: + counter = (counter - 1); + goto block_12F7; + + block_142D: + /* word_to_dword */ + /* pop_result */ + goto block_1437; + + block_1437: + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_2C_slot_2C.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_2C_slot_2C.txt new file mode 100644 index 0000000..ea7fd38 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_2C_slot_2C.txt @@ -0,0 +1,40 @@ +function door2_slot_2C() /* entry=377 class_id=0x0A07 slot=0x2C */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + maxFrame; /* [BP-04h] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + if (Item.getFrame(arg_06) > 0) goto block_14A7; + + block_149D: + /* word_to_dword */ + /* pop_result */ + goto block_155C; + + block_14A7: + spawn class_0A06_slot_22(pid, arg_06); + suspend; + maxFrame = 11; + counter = 1; + + block_14E1: + if (counter <= maxFrame) goto block_152C; + + block_14EC: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_14E1; + + block_152C: + /* word_to_dword */ + /* pop_result */ + goto block_155C; + + block_155C: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_2D_slot_2D.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_2D_slot_2D.txt new file mode 100644 index 0000000..78f5bae --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_2D_slot_2D.txt @@ -0,0 +1,44 @@ +function door2_slot_2D() /* entry=377 class_id=0x0A07 slot=0x2D */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + maxFrame; /* [BP-04h] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + maxFrame = 11; + class_0A0C_slot_2D(Item.getZ(arg_06), Item.legal_create(arg_06), Intrinsic0013(arg_06), maxFrame, 0x01AB, *(arg_06)); + if retval goto block_1610; + + block_15DA: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + goto block_161A; + + block_1610: + /* word_to_dword */ + /* pop_result */ + goto block_1679; + + block_161A: + counter = (maxFrame - 1); + + block_1624: + if (counter >= 0) goto block_166F; + + block_162C: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (counter - 1); + goto block_1624; + + block_166F: + /* word_to_dword */ + /* pop_result */ + goto block_1679; + + block_1679: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_2E_slot_2E.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_2E_slot_2E.txt new file mode 100644 index 0000000..587038a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_2E_slot_2E.txt @@ -0,0 +1,32 @@ +function door2_slot_2E() /* entry=377 class_id=0x0A07 slot=0x2E */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + maxFrame; /* [BP-04h] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + spawn class_0A06_slot_22(pid, arg_06); + suspend; + maxFrame = 11; + counter = 1; + + block_16F5: + if (counter <= maxFrame) goto block_1740; + + block_1700: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_16F5; + + block_1740: + /* word_to_dword */ + /* pop_result */ + goto block_1765; + + block_1765: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_2F_slot_2F.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_2F_slot_2F.txt new file mode 100644 index 0000000..da0a23c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_2F_slot_2F.txt @@ -0,0 +1,44 @@ +function door2_slot_2F() /* entry=377 class_id=0x0A07 slot=0x2F */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + maxFrame; /* [BP-04h] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + maxFrame = 11; + class_0A0C_slot_2D(Item.getZ(arg_06), Item.legal_create(arg_06), Intrinsic0013(arg_06), maxFrame, 0x0393, *(arg_06)); + if retval goto block_1819; + + block_17E3: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + goto block_1823; + + block_1819: + /* word_to_dword */ + /* pop_result */ + goto block_1882; + + block_1823: + counter = (maxFrame - 1); + + block_182D: + if (counter >= 0) goto block_1878; + + block_1835: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (counter - 1); + goto block_182D; + + block_1878: + /* word_to_dword */ + /* pop_result */ + goto block_1882; + + block_1882: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_30_slot_30.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_30_slot_30.txt new file mode 100644 index 0000000..39ee442 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_30_slot_30.txt @@ -0,0 +1,87 @@ +function door2_slot_30() /* entry=377 class_id=0x0A07 slot=0x30 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + doorList, /* [BP-02h] type=0x6C */ + doorList2, /* [BP-04h] type=0x6C */ + counter, /* [BP-06h] type=0x69 */ + door1, /* [BP-08h] type=0x24 */ + door2, /* [BP-0Ah] type=0x24 */ + item, /* [BP-0Ch] type=0x24 */ + maxFrame; /* [BP-0Eh] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + spawn class_0A06_slot_22(pid, arg_06); + suspend; + /* create_list element_size=0x2 count=0x5 */ + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + doorList = 0x0189; + /* create_list element_size=0x2 count=0x5 */ + /* free_local_list bp_offset=0xFC target=[BP-04h] */ + doorList2 = 0x0187; + class_0A0C_slot_3A(0x0193, 0x0192, 0x0191, 0x0190, 0x018D, 0x018C, 0x018B, 0x018A, doorList); + /* free_stack_list value_u8=0x0 target=[SP+00h] */ + maxFrame = retval; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF4 string_bytes=0x6 loop_type=0x2 */ + + block_1964: + if condition goto block_1972; + + block_1967: + door1 = item; + /* loopnext */ + goto block_1964; + + block_1972: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF4 string_bytes=0x6 loop_type=0x2 */ + + block_1992: + if condition goto block_19A0; + + block_1995: + door2 = item; + /* loopnext */ + goto block_1992; + + block_19A0: + counter = 2; + + block_19A9: + if (counter <= maxFrame) goto block_1A65; + + block_19B4: + if door1 goto block_19E4; + + block_19BC: + + block_19E4: + if door2 goto block_1A32; + + block_19EC: + + block_1A32: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_19A9; + + block_1A65: + /* word_to_dword */ + /* pop_result */ + goto block_1A6F; + + block_1A6F: + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + /* free_local_list bp_offset=0xFC target=[BP-04h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_31_slot_31.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_31_slot_31.txt new file mode 100644 index 0000000..2f99c81 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_31_slot_31.txt @@ -0,0 +1,140 @@ +function door2_slot_31() /* entry=377 class_id=0x0A07 slot=0x31 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + doorList, /* [BP-02h] type=0x6C */ + doorList2, /* [BP-04h] type=0x6C */ + counter, /* [BP-06h] type=0x69 */ + counter2, /* [BP-08h] type=0x69 */ + door1, /* [BP-0Ah] type=0x24 */ + door2, /* [BP-0Ch] type=0x24 */ + item, /* [BP-0Eh] type=0x24 */ + nonLegalDoor1, /* [BP-0Fh] type=0x62 */ + nonLegalDoor2, /* [BP-10h] type=0x62 */ + bool, /* [BP-11h] type=0x62 */ + maxFrame; /* [BP-13h] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + /* create_list element_size=0x2 count=0x5 */ + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + doorList = 0x0189; + /* create_list element_size=0x2 count=0x5 */ + /* free_local_list bp_offset=0xFC target=[BP-04h] */ + doorList2 = 0x0187; + class_0A0C_slot_3A(0x0193, 0x0192, 0x0191, 0x0190, 0x018D, 0x018C, 0x018B, 0x018A, doorList); + /* free_stack_list value_u8=0x0 target=[SP+00h] */ + maxFrame = retval; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_1B61: + if condition goto block_1B6F; + + block_1B64: + door1 = item; + /* loopnext */ + goto block_1B61; + + block_1B6F: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_1B8F: + if condition goto block_1B9D; + + block_1B92: + door2 = item; + /* loopnext */ + goto block_1B8F; + + block_1B9D: + if (door1 && door2) goto block_1E43; + + block_1BB0: + counter = 1; + + block_1BC4: + if (counter <= (maxFrame - 1)) goto block_1E43; + + block_1BD5: + class_0A0C_slot_2D(Item.getZ(door1), Item.legal_create(door1), Intrinsic0013(door1), 0, doorList, (maxFrame - counter), list_element(size=0x2), door1); + if (!retval) goto block_1C17; + + block_1C10: + nonLegalDoor1 = 1; + + block_1C17: + class_0A0C_slot_2D(Item.getZ(door2), Item.legal_create(door2), (Intrinsic0013(door2) + 16), 0, doorList2, (maxFrame - counter), list_element(size=0x2), door2); + if (!retval) goto block_1C5C; + + block_1C55: + nonLegalDoor2 = 1; + + block_1C5C: + if ((!nonLegalDoor1) && (!nonLegalDoor2)) goto block_1CAB; + + block_1C6C: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + goto block_1E36; + + block_1CAB: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + if nonLegalDoor1 goto block_1D25; + + block_1CD9: + + block_1D25: + if nonLegalDoor2 goto block_1D45; + + block_1D2D: + + block_1D45: + counter2 = ((maxFrame - counter) + 1); + + block_1D52: + if (counter2 <= maxFrame) goto block_1E2C; + + block_1D5D: + if (!bool) goto block_1DD0; + + block_1DA0: + bool = 1; + goto block_1DF9; + + block_1DD0: + + block_1DF9: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter2 = (1 + counter2); + goto block_1D52; + + block_1E2C: + /* word_to_dword */ + /* pop_result */ + goto block_1E4D; + + block_1E36: + counter = (1 + counter); + goto block_1BC4; + + block_1E43: + /* word_to_dword */ + /* pop_result */ + goto block_1E4D; + + block_1E4D: + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + /* free_local_list bp_offset=0xFC target=[BP-04h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_32_slot_32.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_32_slot_32.txt new file mode 100644 index 0000000..2aa9b1e --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_32_slot_32.txt @@ -0,0 +1,87 @@ +function door2_slot_32() /* entry=377 class_id=0x0A07 slot=0x32 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + doorList, /* [BP-02h] type=0x6C */ + doorList2, /* [BP-04h] type=0x6C */ + counter, /* [BP-06h] type=0x69 */ + door1, /* [BP-08h] type=0x24 */ + door2, /* [BP-0Ah] type=0x24 */ + item, /* [BP-0Ch] type=0x24 */ + maxFrame; /* [BP-0Eh] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + spawn class_0A06_slot_22(pid, arg_06); + suspend; + /* create_list element_size=0x2 count=0x5 */ + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + doorList = 0x0289; + /* create_list element_size=0x2 count=0x5 */ + /* free_local_list bp_offset=0xFC target=[BP-04h] */ + doorList2 = 0x028E; + class_0A0C_slot_3A(0x01C7, 0x0288, 0x028C, 0x0287, 0x01C6, 0x028A, 0x028B, 0x028D, doorList); + /* free_stack_list value_u8=0x0 target=[SP+00h] */ + maxFrame = retval; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF4 string_bytes=0x6 loop_type=0x2 */ + + block_1FA5: + if condition goto block_1FB3; + + block_1FA8: + door1 = item; + /* loopnext */ + goto block_1FA5; + + block_1FB3: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF4 string_bytes=0x6 loop_type=0x2 */ + + block_1FD3: + if condition goto block_1FE1; + + block_1FD6: + door2 = item; + /* loopnext */ + goto block_1FD3; + + block_1FE1: + counter = 2; + + block_1FEA: + if (counter <= maxFrame) goto block_20A6; + + block_1FF5: + if door1 goto block_2043; + + block_1FFD: + + block_2043: + if door2 goto block_2073; + + block_204B: + + block_2073: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_1FEA; + + block_20A6: + /* word_to_dword */ + /* pop_result */ + goto block_20B0; + + block_20B0: + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + /* free_local_list bp_offset=0xFC target=[BP-04h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_33_slot_33.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_33_slot_33.txt new file mode 100644 index 0000000..cad7074 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_33_slot_33.txt @@ -0,0 +1,140 @@ +function door2_slot_33() /* entry=377 class_id=0x0A07 slot=0x33 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + doorList, /* [BP-02h] type=0x6C */ + doorList2, /* [BP-04h] type=0x6C */ + counter, /* [BP-06h] type=0x69 */ + counter2, /* [BP-08h] type=0x69 */ + door1, /* [BP-0Ah] type=0x24 */ + door2, /* [BP-0Ch] type=0x24 */ + item, /* [BP-0Eh] type=0x24 */ + nonLegalDoor1, /* [BP-0Fh] type=0x62 */ + nonLegalDoor2, /* [BP-10h] type=0x62 */ + bool, /* [BP-11h] type=0x62 */ + maxFrame; /* [BP-13h] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + /* create_list element_size=0x2 count=0x5 */ + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + doorList = 0x0289; + /* create_list element_size=0x2 count=0x5 */ + /* free_local_list bp_offset=0xFC target=[BP-04h] */ + doorList2 = 0x028E; + class_0A0C_slot_3A(0x01C7, 0x0288, 0x028C, 0x0287, 0x01C6, 0x028A, 0x028B, 0x028D, doorList); + /* free_stack_list value_u8=0x0 target=[SP+00h] */ + maxFrame = retval; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_21A2: + if condition goto block_21B0; + + block_21A5: + door1 = item; + /* loopnext */ + goto block_21A2; + + block_21B0: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_21D0: + if condition goto block_21DE; + + block_21D3: + door2 = item; + /* loopnext */ + goto block_21D0; + + block_21DE: + if (door1 && door2) goto block_24B5; + + block_21F1: + counter = 1; + + block_2205: + if (counter <= (maxFrame - 1)) goto block_24B5; + + block_2216: + class_0A0C_slot_2D(Item.getZ(door2), Item.legal_create(door2), Intrinsic0013(door2), 0, doorList2, (maxFrame - counter), list_element(size=0x2), door2); + if (!retval) goto block_2258; + + block_2251: + nonLegalDoor1 = 1; + + block_2258: + class_0A0C_slot_2D(Item.getZ(door1), (Item.legal_create(door1) + 16), Intrinsic0013(door1), 0, doorList, (maxFrame - counter), list_element(size=0x2), door1); + if (!retval) goto block_229D; + + block_2296: + nonLegalDoor2 = 1; + + block_229D: + if ((!nonLegalDoor1) && (!nonLegalDoor2)) goto block_22EC; + + block_22AD: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + goto block_24A8; + + block_22EC: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + if nonLegalDoor1 goto block_2397; + + block_231A: + + block_2397: + if nonLegalDoor2 goto block_23B7; + + block_239F: + + block_23B7: + counter2 = ((maxFrame - counter) + 1); + + block_23C4: + if (counter2 <= maxFrame) goto block_249E; + + block_23CF: + if (!bool) goto block_2442; + + block_2412: + bool = 1; + goto block_246B; + + block_2442: + + block_246B: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter2 = (1 + counter2); + goto block_23C4; + + block_249E: + /* word_to_dword */ + /* pop_result */ + goto block_24BF; + + block_24A8: + counter = (1 + counter); + goto block_2205; + + block_24B5: + /* word_to_dword */ + /* pop_result */ + goto block_24BF; + + block_24BF: + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + /* free_local_list bp_offset=0xFC target=[BP-04h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_34_slot_34.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_34_slot_34.txt new file mode 100644 index 0000000..1140d82 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_34_slot_34.txt @@ -0,0 +1,47 @@ +function door2_slot_34() /* entry=377 class_id=0x0A07 slot=0x34 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + maxFrame, /* [BP-04h] type=0x69 */ + link, /* [BP-06h] type=0x69 */ + item, /* [BP-08h] type=0x24 */ + item2; /* [BP-0Ah] type=0x24 */ + + entry: + set_info(0x0207, *(arg_06)); + spawn class_0A06_slot_22(pid, arg_06); + suspend; + set_info(1, 0); + maxFrame = 7; + counter = 1; + + block_25AC: + if (counter <= maxFrame) goto block_25F7; + + block_25B7: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_25AC; + + block_25F7: + link = Item.fall(arg_06); + if (Intrinsic0019(Item.getZ(arg_06), (Item.legal_create(arg_06) - 0x00D0), Intrinsic0013(arg_06), 1, 0x0090, item2) != 1) goto block_2670; + + block_2663: + + block_2670: + if (Intrinsic0019((Item.getZ(arg_06) + 80), Item.legal_create(arg_06), Intrinsic0013(arg_06), 0, 0x01ED, item) != 1) goto block_26B2; + + block_26A5: + + block_26B2: + /* word_to_dword */ + /* pop_result */ + goto block_26BC; + + block_26BC: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_35_slot_35.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_35_slot_35.txt new file mode 100644 index 0000000..bdcfbab --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_35_slot_35.txt @@ -0,0 +1,91 @@ +function door2_slot_35() /* entry=377 class_id=0x0A07 slot=0x35 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + item2, /* [BP-04h] type=0x24 */ + item3, /* [BP-06h] type=0x24 */ + prisDoor, /* [BP-08h] type=0x24 */ + counter, /* [BP-0Ah] type=0x69 */ + maxFrame, /* [BP-0Ch] type=0x69 */ + cox, /* [BP-0Eh] type=0x69 */ + coy, /* [BP-10h] type=0x69 */ + coz, /* [BP-12h] type=0x69 */ + x1, /* [BP-14h] type=0x69 */ + y1, /* [BP-16h] type=0x69 */ + x2, /* [BP-18h] type=0x69 */ + y2, /* [BP-1Ah] type=0x69 */ + z1, /* [BP-1Ch] type=0x69 */ + z2, /* [BP-1Eh] type=0x69 */ + link; /* [BP-20h] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + set_info(1, 0); + maxFrame = 7; + prisDoor = *(arg_06); + cox = Intrinsic0013(arg_06); + coy = Item.legal_create(arg_06); + coz = Item.getZ(arg_06); + /* 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=0x6 */ + + block_2778: + if condition goto block_27FE; + + block_277B: + if (Item.getFrame(item) != 0) goto block_27C5; + + block_278D: + x1 = Intrinsic0013(item); + y1 = Item.legal_create(item); + z1 = Item.getZ(item); + goto block_27FA; + + block_27C5: + x2 = Intrinsic0013(item); + y2 = Item.legal_create(item); + z2 = Item.getZ(item); + + block_27FA: + /* loopnext */ + goto block_2778; + + block_27FE: + link = Item.fall(arg_06); + if (Intrinsic0019((coz - 80), coy, cox, 7, 0x01EE, item2) != 1) goto block_28DB; + + block_2839: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = 1; + + block_2880: + if (counter <= maxFrame) goto block_28CE; + + block_288B: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_2880; + + block_28CE: + /* word_to_dword */ + /* pop_result */ + goto block_2948; + + block_28D8: + goto block_2948; + + block_28DB: + /* word_to_dword */ + /* pop_result */ + goto block_2948; + + block_2948: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_36_slot_36.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_36_slot_36.txt new file mode 100644 index 0000000..e3126b3 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_36_slot_36.txt @@ -0,0 +1,47 @@ +function door2_slot_36() /* entry=377 class_id=0x0A07 slot=0x36 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + maxFrame, /* [BP-04h] type=0x69 */ + link, /* [BP-06h] type=0x69 */ + item, /* [BP-08h] type=0x24 */ + item2; /* [BP-0Ah] type=0x24 */ + + entry: + set_info(0x0207, *(arg_06)); + spawn class_0A06_slot_22(pid, arg_06); + suspend; + set_info(1, 0); + maxFrame = 7; + counter = 1; + + block_2A34: + if (counter <= maxFrame) goto block_2A7F; + + block_2A3F: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_2A34; + + block_2A7F: + link = Item.fall(arg_06); + if (Intrinsic0019(Item.getZ(arg_06), Item.legal_create(arg_06), (Intrinsic0013(arg_06) - 0x00D0), 1, 0x0238, item2) != 1) goto block_2AF8; + + block_2AEB: + + block_2AF8: + if (Intrinsic0019((Item.getZ(arg_06) + 80), Item.legal_create(arg_06), Intrinsic0013(arg_06), 0, 0x03C7, item) != 1) goto block_2B3A; + + block_2B2D: + + block_2B3A: + /* word_to_dword */ + /* pop_result */ + goto block_2B44; + + block_2B44: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_37_slot_37.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_37_slot_37.txt new file mode 100644 index 0000000..647151f --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_37_slot_37.txt @@ -0,0 +1,90 @@ +function door2_slot_37() /* entry=377 class_id=0x0A07 slot=0x37 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + item2, /* [BP-04h] type=0x24 */ + prisDoor, /* [BP-06h] type=0x24 */ + counter, /* [BP-08h] type=0x69 */ + maxFrame, /* [BP-0Ah] type=0x69 */ + cox, /* [BP-0Ch] type=0x69 */ + coy, /* [BP-0Eh] type=0x69 */ + coz, /* [BP-10h] type=0x69 */ + x1, /* [BP-12h] type=0x69 */ + y1, /* [BP-14h] type=0x69 */ + x2, /* [BP-16h] type=0x69 */ + y2, /* [BP-18h] type=0x69 */ + z1, /* [BP-1Ah] type=0x69 */ + z2, /* [BP-1Ch] type=0x69 */ + link; /* [BP-1Eh] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + set_info(1, 0); + maxFrame = 7; + prisDoor = *(arg_06); + cox = Intrinsic0013(arg_06); + coy = Item.legal_create(arg_06); + coz = Item.getZ(arg_06); + /* 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=0x6 */ + + block_2C00: + if condition goto block_2C86; + + block_2C03: + if (Item.getFrame(item) != 0) goto block_2C4D; + + block_2C15: + x1 = Intrinsic0013(item); + y1 = Item.legal_create(item); + z1 = Item.getZ(item); + goto block_2C82; + + block_2C4D: + x2 = Intrinsic0013(item); + y2 = Item.legal_create(item); + z2 = Item.getZ(item); + + block_2C82: + /* loopnext */ + goto block_2C00; + + block_2C86: + link = Item.fall(arg_06); + if (Intrinsic0019((coz - 80), coy, cox, maxFrame, 0x03AD, item2) != 1) goto block_2D63; + + block_2CC1: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = 1; + + block_2D08: + if (counter <= maxFrame) goto block_2D56; + + block_2D13: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_2D08; + + block_2D56: + /* word_to_dword */ + /* pop_result */ + goto block_2DD0; + + block_2D60: + goto block_2DD0; + + block_2D63: + /* word_to_dword */ + /* pop_result */ + goto block_2DD0; + + block_2DD0: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_38_slot_38.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_38_slot_38.txt new file mode 100644 index 0000000..7f0659b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_38_slot_38.txt @@ -0,0 +1,30 @@ +function door2_slot_38() /* entry=377 class_id=0x0A07 slot=0x38 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + spawn class_0A06_slot_22(pid, arg_06); + suspend; + counter = 1; + + block_2EB0: + if (counter <= 3) goto block_2EF8; + + block_2EB8: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_2EB0; + + block_2EF8: + /* word_to_dword */ + /* pop_result */ + goto block_2F52; + + block_2F52: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_39_slot_39.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_39_slot_39.txt new file mode 100644 index 0000000..59170b9 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_39_slot_39.txt @@ -0,0 +1,40 @@ +function door2_slot_39() /* entry=377 class_id=0x0A07 slot=0x39 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + class_0A0C_slot_2D(Item.getZ(arg_06), Item.legal_create(arg_06), (Intrinsic0013(arg_06) + 0x0080), 3, 0x028F, *(arg_06)); + if retval goto block_3029; + + block_2FBD: + counter = 0; + + block_2FD1: + if (counter <= 3) goto block_301C; + + block_2FD9: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_2FD1; + + block_301C: + /* word_to_dword */ + /* pop_result */ + goto block_3033; + + block_3026: + goto block_3033; + + block_3029: + /* word_to_dword */ + /* pop_result */ + goto block_3033; + + block_3033: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_3A_slot_3A.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_3A_slot_3A.txt new file mode 100644 index 0000000..6b0d08f --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_3A_slot_3A.txt @@ -0,0 +1,30 @@ +function door2_slot_3A() /* entry=377 class_id=0x0A07 slot=0x3A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + spawn class_0A06_slot_22(pid, arg_06); + suspend; + counter = 1; + + block_309B: + if (counter <= 3) goto block_30E3; + + block_30A3: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_309B; + + block_30E3: + /* word_to_dword */ + /* pop_result */ + goto block_3113; + + block_3113: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_3B_slot_3B.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_3B_slot_3B.txt new file mode 100644 index 0000000..4711ee3 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_3B_slot_3B.txt @@ -0,0 +1,40 @@ +function door2_slot_3B() /* entry=377 class_id=0x0A07 slot=0x3B */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + class_0A0C_slot_2D(Item.getZ(arg_06), Item.legal_create(arg_06), Intrinsic0013(arg_06), 3, 0x0312, *(arg_06)); + if retval goto block_31E6; + + block_317A: + counter = 0; + + block_318E: + if (counter <= 3) goto block_31D9; + + block_3196: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_318E; + + block_31D9: + /* word_to_dword */ + /* pop_result */ + goto block_31F0; + + block_31E3: + goto block_31F0; + + block_31E6: + /* word_to_dword */ + /* pop_result */ + goto block_31F0; + + block_31F0: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_3C_slot_3C.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_3C_slot_3C.txt new file mode 100644 index 0000000..c42c51a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_3C_slot_3C.txt @@ -0,0 +1,60 @@ +function door2_slot_3C() /* entry=377 class_id=0x0A07 slot=0x3C */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + if (!(Item.getStatus(arg_06) & 0x1000)) goto block_323F; + + block_3239: + goto block_339A; + + block_323F: + class_0A1E_slot_23(0x1000, arg_06); + if (Item.getFrame(arg_06) != 0) goto block_32ED; + + block_3270: + counter = 0; + + block_3277: + if (counter <= 9) goto block_32BF; + + block_327F: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_3277; + + block_32BF: + goto block_3381; + + block_32ED: + if (Item.getFrame(arg_06) != 9) goto block_3381; + + block_3302: + counter = 0; + + block_3333: + if (counter <= 9) goto block_337E; + + block_333B: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_3333; + + block_337E: + goto block_3381; + + block_3381: + class_0A1E_slot_24(0x1000, arg_06); + /* word_to_dword */ + /* pop_result */ + goto block_339A; + + block_339A: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_3D_slot_3D.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_3D_slot_3D.txt new file mode 100644 index 0000000..75c5882 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_3D_slot_3D.txt @@ -0,0 +1,39 @@ +function door2_slot_3D() /* entry=377 class_id=0x0A07 slot=0x3D */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + item; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x0207, *(arg_06)); + spawn class_0A06_slot_22(pid, arg_06); + suspend; + counter = 1; + + block_3402: + if (counter <= 4) goto block_344A; + + block_340A: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_3402; + + block_344A: + if (Intrinsic0016(arg_06) != 0x03FF) goto block_3481; + + block_3470: + goto block_34C9; + + block_3481: + + block_34C9: + /* word_to_dword */ + /* pop_result */ + goto block_34DE; + + block_34DE: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_3E_slot_3E.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_3E_slot_3E.txt new file mode 100644 index 0000000..4b3e8c3 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_3E_slot_3E.txt @@ -0,0 +1,67 @@ +function door2_slot_3E() /* entry=377 class_id=0x0A07 slot=0x3E */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + item; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x0207, *(arg_06)); + if (Intrinsic0016(arg_06) != 0x0440) goto block_3578; + + block_3535: + class_0A0C_slot_2D(Item.getZ(arg_06), Item.legal_create(arg_06), Intrinsic0013(arg_06), 4, 0x03FF, *(arg_06)); + if (!retval) goto block_3575; + + block_356B: + /* word_to_dword */ + /* pop_result */ + goto block_368C; + + block_3575: + goto block_3623; + + block_3578: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_3596: + if condition goto block_35A8; + + block_3599: + /* loopnext */ + goto block_3596; + + block_35A8: + class_0A0C_slot_2D(Item.getZ(arg_06), Item.legal_create(arg_06), Intrinsic0013(arg_06), 4, 51, *(arg_06)); + if (!retval) goto block_3623; + + block_35DF: + /* word_to_dword */ + /* pop_result */ + goto block_368C; + + block_3623: + counter = 0; + + block_3637: + if (counter <= 4) goto block_3682; + + block_363F: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_3637; + + block_3682: + /* word_to_dword */ + /* pop_result */ + goto block_368C; + + block_368C: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_3F_slot_3F.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_3F_slot_3F.txt new file mode 100644 index 0000000..dfd1749 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_3F_slot_3F.txt @@ -0,0 +1,39 @@ +function door2_slot_3F() /* entry=377 class_id=0x0A07 slot=0x3F */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + item; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x0207, *(arg_06)); + spawn class_0A06_slot_22(pid, arg_06); + suspend; + counter = 1; + + block_36FD: + if (counter <= 4) goto block_3745; + + block_3705: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_36FD; + + block_3745: + if (Intrinsic0016(arg_06) != 0x03F8) goto block_377C; + + block_376B: + goto block_37C4; + + block_377C: + + block_37C4: + /* word_to_dword */ + /* pop_result */ + goto block_37D9; + + block_37D9: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_40_slot_40.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_40_slot_40.txt new file mode 100644 index 0000000..07d0cf6 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_40_slot_40.txt @@ -0,0 +1,67 @@ +function door2_slot_40() /* entry=377 class_id=0x0A07 slot=0x40 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + item; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x0207, *(arg_06)); + if (Intrinsic0016(arg_06) != 0x043F) goto block_3873; + + block_3830: + class_0A0C_slot_2D(Item.getZ(arg_06), Item.legal_create(arg_06), Intrinsic0013(arg_06), 4, 0x03F8, *(arg_06)); + if (!retval) goto block_3870; + + block_3866: + /* word_to_dword */ + /* pop_result */ + goto block_3987; + + block_3870: + goto block_391E; + + block_3873: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_3891: + if condition goto block_38A3; + + block_3894: + /* loopnext */ + goto block_3891; + + block_38A3: + class_0A0C_slot_2D(Item.getZ(arg_06), Item.legal_create(arg_06), Intrinsic0013(arg_06), 4, 108, *(arg_06)); + if (!retval) goto block_391E; + + block_38DA: + /* word_to_dword */ + /* pop_result */ + goto block_3987; + + block_391E: + counter = 0; + + block_3932: + if (counter <= 4) goto block_397D; + + block_393A: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_3932; + + block_397D: + /* word_to_dword */ + /* pop_result */ + goto block_3987; + + block_3987: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_41_slot_41.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_41_slot_41.txt new file mode 100644 index 0000000..482fef9 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_41_slot_41.txt @@ -0,0 +1,31 @@ +function door2_slot_41() /* entry=377 class_id=0x0A07 slot=0x41 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + item; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x0207, *(arg_06)); + spawn class_0A06_slot_22(pid, arg_06); + suspend; + counter = 1; + + block_39F8: + if (counter <= 6) goto block_3A40; + + block_3A00: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_39F8; + + block_3A40: + /* word_to_dword */ + /* pop_result */ + goto block_3A7B; + + block_3A7B: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_42_slot_42.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_42_slot_42.txt new file mode 100644 index 0000000..6eadac2 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_42_slot_42.txt @@ -0,0 +1,38 @@ +function door2_slot_42() /* entry=377 class_id=0x0A07 slot=0x42 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + item; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x0207, *(arg_06)); + class_0A0C_slot_2D(Item.getZ(arg_06), Item.legal_create(arg_06), Intrinsic0013(arg_06), 6, 0x03B9, *(arg_06)); + if (!retval) goto block_3AF9; + + block_3AEF: + /* word_to_dword */ + /* pop_result */ + goto block_3B62; + + block_3AF9: + counter = 0; + + block_3B0D: + if (counter <= 6) goto block_3B58; + + block_3B15: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_3B0D; + + block_3B58: + /* word_to_dword */ + /* pop_result */ + goto block_3B62; + + block_3B62: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_43_slot_43.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_43_slot_43.txt new file mode 100644 index 0000000..70b4979 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_43_slot_43.txt @@ -0,0 +1,31 @@ +function door2_slot_43() /* entry=377 class_id=0x0A07 slot=0x43 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + item; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x0207, *(arg_06)); + spawn class_0A06_slot_22(pid, arg_06); + suspend; + counter = 1; + + block_3BD3: + if (counter <= 6) goto block_3C1B; + + block_3BDB: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_3BD3; + + block_3C1B: + /* word_to_dword */ + /* pop_result */ + goto block_3C56; + + block_3C56: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_44_slot_44.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_44_slot_44.txt new file mode 100644 index 0000000..c8b7fcf --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_44_slot_44.txt @@ -0,0 +1,38 @@ +function door2_slot_44() /* entry=377 class_id=0x0A07 slot=0x44 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + item; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x0207, *(arg_06)); + class_0A0C_slot_2D(Item.getZ(arg_06), Item.legal_create(arg_06), Intrinsic0013(arg_06), 6, 0x03BA, *(arg_06)); + if (!retval) goto block_3CD4; + + block_3CCA: + /* word_to_dword */ + /* pop_result */ + goto block_3D3D; + + block_3CD4: + counter = 0; + + block_3CE8: + if (counter <= 6) goto block_3D33; + + block_3CF0: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_3CE8; + + block_3D33: + /* word_to_dword */ + /* pop_result */ + goto block_3D3D; + + block_3D3D: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_45_slot_45.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_45_slot_45.txt new file mode 100644 index 0000000..5a419f3 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_45_slot_45.txt @@ -0,0 +1,42 @@ +function door2_slot_45() /* entry=377 class_id=0x0A07 slot=0x45 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + newFrame, /* [BP-04h] type=0x69 */ + item; /* [BP-06h] type=0x24 */ + + entry: + set_info(0x0207, *(arg_06)); + spawn class_0A06_slot_22(pid, arg_06); + suspend; + if (Item.getFrame(arg_06) <= 11) goto block_3DC6; + + block_3DBC: + newFrame = 0; + goto block_3DCD; + + block_3DC6: + newFrame = 1; + + block_3DCD: + counter = 1; + + block_3DD4: + if (counter <= 11) goto block_3E22; + + block_3DDC: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_3DD4; + + block_3E22: + /* word_to_dword */ + /* pop_result */ + goto block_3E5D; + + block_3E5D: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_46_slot_46.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_46_slot_46.txt new file mode 100644 index 0000000..a0f16e9 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_46_slot_46.txt @@ -0,0 +1,49 @@ +function door2_slot_46() /* entry=377 class_id=0x0A07 slot=0x46 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + newFrame, /* [BP-04h] type=0x69 */ + item; /* [BP-06h] type=0x24 */ + + entry: + set_info(0x0207, *(arg_06)); + if (!Item.getFrame(arg_06)) goto block_3EC5; + + block_3EBB: + newFrame = 11; + goto block_3ECC; + + block_3EC5: + newFrame = 26; + + block_3ECC: + class_0A0C_slot_2D(Item.getZ(arg_06), Item.legal_create(arg_06), Intrinsic0013(arg_06), newFrame, 0x046A, *(arg_06)); + if (!retval) goto block_3F0C; + + block_3F02: + /* word_to_dword */ + /* pop_result */ + goto block_3F75; + + block_3F0C: + counter = 0; + + block_3F20: + if (counter <= 11) goto block_3F6B; + + block_3F28: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_3F20; + + block_3F6B: + /* word_to_dword */ + /* pop_result */ + goto block_3F75; + + block_3F75: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_47_slot_47.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_47_slot_47.txt new file mode 100644 index 0000000..651639a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_47_slot_47.txt @@ -0,0 +1,42 @@ +function door2_slot_47() /* entry=377 class_id=0x0A07 slot=0x47 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + newFrame, /* [BP-04h] type=0x69 */ + item; /* [BP-06h] type=0x24 */ + + entry: + set_info(0x0207, *(arg_06)); + spawn class_0A06_slot_22(pid, arg_06); + suspend; + if (Item.getFrame(arg_06) <= 11) goto block_400B; + + block_4001: + newFrame = 0; + goto block_4012; + + block_400B: + newFrame = 1; + + block_4012: + counter = 1; + + block_4019: + if (counter <= 11) goto block_4067; + + block_4021: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_4019; + + block_4067: + /* word_to_dword */ + /* pop_result */ + goto block_40A2; + + block_40A2: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_48_slot_48.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_48_slot_48.txt new file mode 100644 index 0000000..c8537d5 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR2/slot_48_slot_48.txt @@ -0,0 +1,49 @@ +function door2_slot_48() /* entry=377 class_id=0x0A07 slot=0x48 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + newFrame, /* [BP-04h] type=0x69 */ + item; /* [BP-06h] type=0x24 */ + + entry: + set_info(0x0207, *(arg_06)); + if (!Item.getFrame(arg_06)) goto block_410A; + + block_4100: + newFrame = 11; + goto block_4111; + + block_410A: + newFrame = 26; + + block_4111: + class_0A0C_slot_2D(Item.getZ(arg_06), Item.legal_create(arg_06), Intrinsic0013(arg_06), newFrame, 0x03C6, *(arg_06)); + if (!retval) goto block_4151; + + block_4147: + /* word_to_dword */ + /* pop_result */ + goto block_41BA; + + block_4151: + counter = 0; + + block_4165: + if (counter <= 11) goto block_41B0; + + block_416D: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_4165; + + block_41B0: + /* word_to_dword */ + /* pop_result */ + goto block_41BA; + + block_41BA: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR3/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR3/slot_20_slot_20.txt new file mode 100644 index 0000000..0df444c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR3/slot_20_slot_20.txt @@ -0,0 +1,48 @@ +function door3_slot_20() /* entry=378 class_id=0x0A08 slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + doorList, /* [BP-02h] type=0x6C */ + doorList2, /* [BP-04h] type=0x6C */ + counter, /* [BP-06h] type=0x69 */ + door2, /* [BP-08h] type=0x24 */ + maxFrame; /* [BP-0Ah] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + spawn class_0A06_slot_22(pid, arg_06); + suspend; + /* create_list element_size=0x2 count=0x4 */ + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + doorList = 0x036A; + /* create_list element_size=0x2 count=0x4 */ + /* free_local_list bp_offset=0xFC target=[BP-04h] */ + doorList2 = 0x036B; + counter = 0; + class_0A0C_slot_3A(0x0358, 0x035C, 0x035D, 0x0359, 0x035A, 0x035B, doorList); + /* free_stack_list value_u8=0x0 target=[SP+00h] */ + maxFrame = retval; + spawn class_0A0C_slot_32(doorList2, 1, pid, 5, 0x00000000); + suspend; + counter = 2; + + block_0250: + if (counter <= (maxFrame - 1)) goto block_0302; + + block_0261: + spawn class_0A0C_slot_32(doorList2, counter, doorList, pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0250; + + block_0302: + /* word_to_dword */ + /* pop_result */ + goto block_037A; + + block_037A: + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + /* free_local_list bp_offset=0xFC target=[BP-04h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR3/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR3/slot_21_slot_21.txt new file mode 100644 index 0000000..5c9f11a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR3/slot_21_slot_21.txt @@ -0,0 +1,154 @@ +function door3_slot_21() /* entry=378 class_id=0x0A08 slot=0x21 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + doorList2, /* [BP-02h] type=0x6C */ + doorList, /* [BP-04h] type=0x6C */ + counter, /* [BP-06h] type=0x69 */ + counter2, /* [BP-08h] type=0x69 */ + door1, /* [BP-0Ah] type=0x24 */ + door2, /* [BP-0Ch] type=0x24 */ + item, /* [BP-0Eh] type=0x24 */ + nonLegalDoor1, /* [BP-0Fh] type=0x62 */ + nonLegalDoor2, /* [BP-10h] type=0x62 */ + bool, /* [BP-11h] type=0x62 */ + maxFrame; /* [BP-13h] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + /* create_list element_size=0x2 count=0x4 */ + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + doorList2 = 0x036A; + /* create_list element_size=0x2 count=0x4 */ + /* free_local_list bp_offset=0xFC target=[BP-04h] */ + doorList = 0x036B; + class_0A0C_slot_3A(0x0358, 0x035C, 0x035D, 0x0359, 0x035A, 0x035B, doorList); + /* free_stack_list value_u8=0x0 target=[SP+00h] */ + maxFrame = retval; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_0459: + if condition goto block_0467; + + block_045C: + door2 = item; + /* loopnext */ + goto block_0459; + + block_0467: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_0487: + if condition goto block_0495; + + block_048A: + door1 = item; + /* loopnext */ + goto block_0487; + + block_0495: + if (door1 && door2) goto block_0804; + + block_04A8: + counter = 1; + + block_04BC: + if (counter <= (maxFrame - 1)) goto block_0804; + + block_04CD: + class_0A0C_slot_2D(Item.getZ(door1), Item.legal_create(door1), Intrinsic0013(door1), 0, doorList, (maxFrame - counter), list_element(size=0x2), door1); + if (!retval) goto block_050F; + + block_0508: + nonLegalDoor1 = 1; + + block_050F: + if ((!bool) && (!nonLegalDoor1)) goto block_056E; + + block_051F: + class_0A0C_slot_2D(Item.getZ(door2), Item.legal_create(door2), (Intrinsic0013(door2) + 16), 0, doorList2, (maxFrame - counter), list_element(size=0x2), door2); + if (!retval) goto block_0564; + + block_055D: + nonLegalDoor2 = 1; + + block_0564: + bool = 1; + goto block_05B3; + + block_056E: + class_0A0C_slot_2D(Item.getZ(door2), Item.legal_create(door2), (Intrinsic0013(door2) + 16), 0, doorList2, (maxFrame - counter), list_element(size=0x2), door2); + if (!retval) goto block_05B3; + + block_05AC: + nonLegalDoor2 = 1; + + block_05B3: + if ((!nonLegalDoor1) && (!nonLegalDoor2)) goto block_0605; + + block_05C3: + spawn class_0A0C_slot_32(pid, (5 + counter), 0x00000000); + suspend; + goto block_07F7; + + block_0605: + bool = 0; + if nonLegalDoor2 goto block_0646; + + block_062E: + + block_0646: + if ((nonLegalDoor1 != 1) && (nonLegalDoor2 != 0)) goto block_06A6; + + block_065A: + + block_06A6: + counter2 = ((maxFrame - counter) + 1); + + block_06B3: + if (counter2 <= (maxFrame - 1)) goto block_07B3; + + block_06C4: + if (!bool) goto block_073A; + + block_06EA: + bool = 1; + goto block_0780; + + block_073A: + + block_0780: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter2 = (1 + counter2); + goto block_06B3; + + block_07B3: + /* word_to_dword */ + /* pop_result */ + goto block_083A; + + block_07F7: + counter = (1 + counter); + goto block_04BC; + + block_0804: + set_info(1, 0); + /* word_to_dword */ + /* pop_result */ + goto block_083A; + + block_083A: + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + /* free_local_list bp_offset=0xFC target=[BP-04h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR3/slot_22_slot_22.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR3/slot_22_slot_22.txt new file mode 100644 index 0000000..2b3247b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR3/slot_22_slot_22.txt @@ -0,0 +1,48 @@ +function door3_slot_22() /* entry=378 class_id=0x0A08 slot=0x22 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + doorList2, /* [BP-02h] type=0x6C */ + doorList, /* [BP-04h] type=0x6C */ + counter, /* [BP-06h] type=0x69 */ + door2, /* [BP-08h] type=0x24 */ + maxFrame; /* [BP-0Ah] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + spawn class_0A06_slot_22(pid, arg_06); + suspend; + /* create_list element_size=0x2 count=0x4 */ + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + doorList2 = 0x0368; + /* create_list element_size=0x2 count=0x4 */ + /* free_local_list bp_offset=0xFC target=[BP-04h] */ + doorList = 0x0369; + counter = 0; + class_0A0C_slot_3A(0x0352, 0x0354, 0x0355, 0x0353, 0x0356, 0x0357, doorList); + /* free_stack_list value_u8=0x0 target=[SP+00h] */ + maxFrame = retval; + spawn class_0A0C_slot_32(doorList2, 1, pid, 5, 0x00000000); + suspend; + counter = 2; + + block_0A10: + if (counter <= (maxFrame - 1)) goto block_0AC2; + + block_0A21: + spawn class_0A0C_slot_32(doorList2, counter, doorList, pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0A10; + + block_0AC2: + /* word_to_dword */ + /* pop_result */ + goto block_0B3A; + + block_0B3A: + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + /* free_local_list bp_offset=0xFC target=[BP-04h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR3/slot_23_slot_23.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR3/slot_23_slot_23.txt new file mode 100644 index 0000000..dabe83a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR3/slot_23_slot_23.txt @@ -0,0 +1,154 @@ +function door3_slot_23() /* entry=378 class_id=0x0A08 slot=0x23 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + doorList, /* [BP-02h] type=0x6C */ + doorList2, /* [BP-04h] type=0x6C */ + counter, /* [BP-06h] type=0x69 */ + counter2, /* [BP-08h] type=0x69 */ + door1, /* [BP-0Ah] type=0x24 */ + door2, /* [BP-0Ch] type=0x24 */ + item, /* [BP-0Eh] type=0x24 */ + nonLegalDoor1, /* [BP-0Fh] type=0x62 */ + nonLegalDoor2, /* [BP-10h] type=0x62 */ + bool, /* [BP-11h] type=0x62 */ + maxFrame; /* [BP-13h] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + /* create_list element_size=0x2 count=0x4 */ + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + doorList = 0x0368; + /* create_list element_size=0x2 count=0x4 */ + /* free_local_list bp_offset=0xFC target=[BP-04h] */ + doorList2 = 0x0369; + class_0A0C_slot_3A(0x0352, 0x0354, 0x0355, 0x0353, 0x0356, 0x0357, doorList); + /* free_stack_list value_u8=0x0 target=[SP+00h] */ + maxFrame = retval; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_0C19: + if condition goto block_0C27; + + block_0C1C: + door1 = item; + /* loopnext */ + goto block_0C19; + + block_0C27: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_0C47: + if condition goto block_0C55; + + block_0C4A: + door2 = item; + /* loopnext */ + goto block_0C47; + + block_0C55: + if (door1 && door2) goto block_0FC4; + + block_0C68: + counter = 1; + + block_0C7C: + if (counter <= (maxFrame - 1)) goto block_0FC4; + + block_0C8D: + class_0A0C_slot_2D(Item.getZ(door1), Item.legal_create(door1), Intrinsic0013(door1), 0, doorList, (maxFrame - counter), list_element(size=0x2), door1); + if (!retval) goto block_0CCF; + + block_0CC8: + nonLegalDoor1 = 1; + + block_0CCF: + if ((!bool) && (!nonLegalDoor1)) goto block_0D2E; + + block_0CDF: + class_0A0C_slot_2D(Item.getZ(door2), (Item.legal_create(door2) + 16), Intrinsic0013(door2), 0, doorList2, (maxFrame - counter), list_element(size=0x2), door2); + if (!retval) goto block_0D24; + + block_0D1D: + nonLegalDoor2 = 1; + + block_0D24: + bool = 1; + goto block_0D73; + + block_0D2E: + class_0A0C_slot_2D(Item.getZ(door2), (Item.legal_create(door2) + 16), Intrinsic0013(door2), 0, doorList2, (maxFrame - counter), list_element(size=0x2), door2); + if (!retval) goto block_0D73; + + block_0D6C: + nonLegalDoor2 = 1; + + block_0D73: + if ((!nonLegalDoor1) && (!nonLegalDoor2)) goto block_0DC5; + + block_0D83: + spawn class_0A0C_slot_32(pid, (5 + counter), 0x00000000); + suspend; + goto block_0FB7; + + block_0DC5: + bool = 0; + if nonLegalDoor2 goto block_0E06; + + block_0DEE: + + block_0E06: + if ((nonLegalDoor1 != 1) && (nonLegalDoor2 != 0)) goto block_0E66; + + block_0E1A: + + block_0E66: + counter2 = ((maxFrame - counter) + 1); + + block_0E73: + if (counter2 <= (maxFrame - 1)) goto block_0F73; + + block_0E84: + if (!bool) goto block_0EFA; + + block_0EAA: + bool = 1; + goto block_0F40; + + block_0EFA: + + block_0F40: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter2 = (1 + counter2); + goto block_0E73; + + block_0F73: + /* word_to_dword */ + /* pop_result */ + goto block_0FFA; + + block_0FB7: + counter = (1 + counter); + goto block_0C7C; + + block_0FC4: + set_info(1, 0); + /* word_to_dword */ + /* pop_result */ + goto block_0FFA; + + block_0FFA: + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + /* free_local_list bp_offset=0xFC target=[BP-04h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR3/slot_24_slot_24.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR3/slot_24_slot_24.txt new file mode 100644 index 0000000..02374c5 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR3/slot_24_slot_24.txt @@ -0,0 +1,48 @@ +function door3_slot_24() /* entry=378 class_id=0x0A08 slot=0x24 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + doorList, /* [BP-02h] type=0x6C */ + doorList2, /* [BP-04h] type=0x6C */ + counter, /* [BP-06h] type=0x69 */ + door2, /* [BP-08h] type=0x24 */ + maxFrame; /* [BP-0Ah] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + spawn class_0A06_slot_22(pid, arg_06); + suspend; + /* create_list element_size=0x2 count=0x5 */ + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + doorList = 0x030D; + /* create_list element_size=0x2 count=0x5 */ + /* free_local_list bp_offset=0xFC target=[BP-04h] */ + doorList2 = 0x030E; + counter = 0; + class_0A0C_slot_3A(0x00A4, 0x00E1, 0x00D6, 0x00D8, 0x0170, 0x0171, 0x0172, 0x0173, doorList); + /* free_stack_list value_u8=0x0 target=[SP+00h] */ + maxFrame = retval; + spawn class_0A0C_slot_32(doorList2, 1, pid, 5, 0x00000000); + suspend; + counter = 2; + + block_11DC: + if (counter <= (maxFrame - 1)) goto block_128E; + + block_11ED: + spawn class_0A0C_slot_32(doorList2, counter, doorList, pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_11DC; + + block_128E: + /* word_to_dword */ + /* pop_result */ + goto block_12D2; + + block_12D2: + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + /* free_local_list bp_offset=0xFC target=[BP-04h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR3/slot_25_slot_25.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR3/slot_25_slot_25.txt new file mode 100644 index 0000000..8a8a8bb --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR3/slot_25_slot_25.txt @@ -0,0 +1,154 @@ +function door3_slot_25() /* entry=378 class_id=0x0A08 slot=0x25 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + doorList2, /* [BP-02h] type=0x6C */ + doorList, /* [BP-04h] type=0x6C */ + counter, /* [BP-06h] type=0x69 */ + counter2, /* [BP-08h] type=0x69 */ + door1, /* [BP-0Ah] type=0x24 */ + door2, /* [BP-0Ch] type=0x24 */ + item, /* [BP-0Eh] type=0x24 */ + nonLegalDoor1, /* [BP-0Fh] type=0x62 */ + nonLegalDoor2, /* [BP-10h] type=0x62 */ + bool, /* [BP-11h] type=0x62 */ + maxFrame; /* [BP-13h] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + /* create_list element_size=0x2 count=0x5 */ + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + doorList2 = 0x030D; + /* create_list element_size=0x2 count=0x5 */ + /* free_local_list bp_offset=0xFC target=[BP-04h] */ + doorList = 0x030E; + class_0A0C_slot_3A(0x00A4, 0x00E1, 0x00D6, 0x00D8, 0x0170, 0x0171, 0x0172, 0x0173, doorList); + /* free_stack_list value_u8=0x0 target=[SP+00h] */ + maxFrame = retval; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_13BD: + if condition goto block_13CB; + + block_13C0: + door1 = item; + /* loopnext */ + goto block_13BD; + + block_13CB: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_13EB: + if condition goto block_13F9; + + block_13EE: + door2 = item; + /* loopnext */ + goto block_13EB; + + block_13F9: + if (door1 && door2) goto block_1770; + + block_140C: + counter = 1; + + block_142E: + if (counter <= (maxFrame - 1)) goto block_1770; + + block_143F: + class_0A0C_slot_2D(Item.getZ(door1), Item.legal_create(door1), Intrinsic0013(door1), 0, doorList, (maxFrame - counter), list_element(size=0x2), door1); + if (!retval) goto block_1481; + + block_147A: + nonLegalDoor1 = 1; + + block_1481: + if ((!bool) && (!nonLegalDoor1)) goto block_14DD; + + block_1491: + class_0A0C_slot_2D(Item.getZ(door2), Item.legal_create(door2), Intrinsic0013(door2), 0, doorList2, (maxFrame - counter), list_element(size=0x2), door2); + if (!retval) goto block_14D3; + + block_14CC: + nonLegalDoor2 = 1; + + block_14D3: + bool = 1; + goto block_1522; + + block_14DD: + class_0A0C_slot_2D(Item.getZ(door2), Item.legal_create(door2), (Intrinsic0013(door2) + 16), 0, doorList2, (maxFrame - counter), list_element(size=0x2), door2); + if (!retval) goto block_1522; + + block_151B: + nonLegalDoor2 = 1; + + block_1522: + if ((!nonLegalDoor1) && (!nonLegalDoor2)) goto block_1574; + + block_1532: + spawn class_0A0C_slot_32(pid, (5 + counter), 0x00000000); + suspend; + goto block_1763; + + block_1574: + bool = 0; + if nonLegalDoor2 goto block_15B5; + + block_159D: + + block_15B5: + if ((nonLegalDoor1 != 1) && (nonLegalDoor2 != 0)) goto block_1615; + + block_15C9: + + block_1615: + counter2 = ((maxFrame - counter) + 1); + + block_1622: + if (counter2 <= (maxFrame - 1)) goto block_171F; + + block_1633: + if (!bool) goto block_16A6; + + block_1659: + bool = 1; + goto block_16EC; + + block_16A6: + + block_16EC: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter2 = (1 + counter2); + goto block_1622; + + block_171F: + /* word_to_dword */ + /* pop_result */ + goto block_17A6; + + block_1763: + counter = (1 + counter); + goto block_142E; + + block_1770: + set_info(1, 0); + /* word_to_dword */ + /* pop_result */ + goto block_17A6; + + block_17A6: + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + /* free_local_list bp_offset=0xFC target=[BP-04h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR3/slot_26_slot_26.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR3/slot_26_slot_26.txt new file mode 100644 index 0000000..77512ed --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR3/slot_26_slot_26.txt @@ -0,0 +1,48 @@ +function door3_slot_26() /* entry=378 class_id=0x0A08 slot=0x26 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + doorList, /* [BP-02h] type=0x6C */ + doorList2, /* [BP-04h] type=0x6C */ + counter, /* [BP-06h] type=0x69 */ + door2, /* [BP-08h] type=0x24 */ + maxFrame; /* [BP-0Ah] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + spawn class_0A06_slot_22(pid, arg_06); + suspend; + /* create_list element_size=0x2 count=0x5 */ + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + doorList = 0x00A5; + /* create_list element_size=0x2 count=0x5 */ + /* free_local_list bp_offset=0xFC target=[BP-04h] */ + doorList2 = 0x0100; + counter = 0; + class_0A0C_slot_3A(0x016C, 0x016D, 0x016E, 0x016F, 0x009B, 0x00D3, 0x00E4, 0x00DA, doorList); + /* free_stack_list value_u8=0x0 target=[SP+00h] */ + maxFrame = retval; + spawn class_0A0C_slot_32(doorList2, 1, pid, 5, 0x00000000); + suspend; + counter = 2; + + block_1985: + if (counter <= (maxFrame - 1)) goto block_1A37; + + block_1996: + spawn class_0A0C_slot_32(doorList2, counter, doorList, pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_1985; + + block_1A37: + /* word_to_dword */ + /* pop_result */ + goto block_1A7B; + + block_1A7B: + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + /* free_local_list bp_offset=0xFC target=[BP-04h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR3/slot_27_slot_27.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR3/slot_27_slot_27.txt new file mode 100644 index 0000000..25cd683 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR3/slot_27_slot_27.txt @@ -0,0 +1,153 @@ +function door3_slot_27() /* entry=378 class_id=0x0A08 slot=0x27 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + doorList, /* [BP-02h] type=0x6C */ + doorList2, /* [BP-04h] type=0x6C */ + counter, /* [BP-06h] type=0x69 */ + counter2, /* [BP-08h] type=0x69 */ + door1, /* [BP-0Ah] type=0x24 */ + door2, /* [BP-0Ch] type=0x24 */ + item, /* [BP-0Eh] type=0x24 */ + nonLegalDoor1, /* [BP-0Fh] type=0x62 */ + nonLegalDoor2, /* [BP-10h] type=0x62 */ + bool, /* [BP-11h] type=0x62 */ + maxFrame; /* [BP-13h] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + /* create_list element_size=0x2 count=0x5 */ + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + doorList = 0x0100; + /* create_list element_size=0x2 count=0x5 */ + /* free_local_list bp_offset=0xFC target=[BP-04h] */ + doorList2 = 0x00A5; + class_0A0C_slot_3A(0x009B, 0x00D3, 0x00E4, 0x00DA, 0x016C, 0x016D, 0x016E, 0x016F, doorList); + /* free_stack_list value_u8=0x0 target=[SP+00h] */ + maxFrame = retval; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_1B73: + if condition goto block_1B81; + + block_1B76: + door1 = item; + /* loopnext */ + goto block_1B73; + + block_1B81: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_1BA1: + if condition goto block_1BAF; + + block_1BA4: + door2 = item; + /* loopnext */ + goto block_1BA1; + + block_1BAF: + if (door1 && door2) goto block_1F19; + + block_1BC2: + counter = 1; + + block_1BD7: + if (counter <= (maxFrame - 1)) goto block_1F19; + + block_1BE8: + class_0A0C_slot_2D(Item.getZ(door1), Item.legal_create(door1), Intrinsic0013(door1), 0, doorList, (maxFrame - counter), list_element(size=0x2), door1); + if (!retval) goto block_1C2A; + + block_1C23: + nonLegalDoor1 = 1; + + block_1C2A: + if ((!bool) && (!nonLegalDoor1)) goto block_1C86; + + block_1C3A: + class_0A0C_slot_2D(Item.getZ(door2), Item.legal_create(door2), Intrinsic0013(door2), 0, doorList2, (maxFrame - counter), list_element(size=0x2), door2); + if (!retval) goto block_1C7C; + + block_1C75: + nonLegalDoor2 = 1; + + block_1C7C: + bool = 1; + goto block_1CCB; + + block_1C86: + class_0A0C_slot_2D(Item.getZ(door2), (Item.legal_create(door2) + 16), Intrinsic0013(door2), 0, doorList2, (maxFrame - counter), list_element(size=0x2), door2); + if (!retval) goto block_1CCB; + + block_1CC4: + nonLegalDoor2 = 1; + + block_1CCB: + if ((!nonLegalDoor1) && (!nonLegalDoor2)) goto block_1D1D; + + block_1CDB: + spawn class_0A0C_slot_32(pid, (5 + counter), 0x00000000); + suspend; + goto block_1F0C; + + block_1D1D: + bool = 0; + if nonLegalDoor2 goto block_1D5E; + + block_1D46: + + block_1D5E: + if ((nonLegalDoor1 != 1) && (nonLegalDoor2 != 0)) goto block_1DBE; + + block_1D72: + + block_1DBE: + counter2 = ((maxFrame - counter) + 1); + + block_1DCB: + if (counter2 <= (maxFrame - 1)) goto block_1EC8; + + block_1DDC: + if (!bool) goto block_1E4F; + + block_1E02: + bool = 1; + goto block_1E95; + + block_1E4F: + + block_1E95: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter2 = (1 + counter2); + goto block_1DCB; + + block_1EC8: + /* word_to_dword */ + /* pop_result */ + goto block_1F47; + + block_1F0C: + counter = (1 + counter); + goto block_1BD7; + + block_1F19: + /* word_to_dword */ + /* pop_result */ + goto block_1F47; + + block_1F47: + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + /* free_local_list bp_offset=0xFC target=[BP-04h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR3/slot_28_slot_28.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR3/slot_28_slot_28.txt new file mode 100644 index 0000000..5b86168 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR3/slot_28_slot_28.txt @@ -0,0 +1,40 @@ +function door3_slot_28() /* entry=378 class_id=0x0A08 slot=0x28 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + maxFrame; /* [BP-04h] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + if (Item.getFrame(arg_06) > 0) goto block_201E; + + block_2014: + /* word_to_dword */ + /* pop_result */ + goto block_20D3; + + block_201E: + spawn class_0A06_slot_22(pid, arg_06); + suspend; + maxFrame = 9; + counter = 1; + + block_2058: + if (counter <= maxFrame) goto block_20A3; + + block_2063: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_2058; + + block_20A3: + /* word_to_dword */ + /* pop_result */ + goto block_20D3; + + block_20D3: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR3/slot_29_slot_29.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR3/slot_29_slot_29.txt new file mode 100644 index 0000000..c1f8d4d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR3/slot_29_slot_29.txt @@ -0,0 +1,44 @@ +function door3_slot_29() /* entry=378 class_id=0x0A08 slot=0x29 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + maxFrame; /* [BP-04h] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + maxFrame = 9; + class_0A0C_slot_2D(Item.getZ(arg_06), Item.legal_create(arg_06), Intrinsic0013(arg_06), maxFrame, 0x053D, *(arg_06)); + if retval goto block_2187; + + block_2151: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + goto block_2191; + + block_2187: + /* word_to_dword */ + /* pop_result */ + goto block_21F0; + + block_2191: + counter = (maxFrame - 1); + + block_219B: + if (counter >= 0) goto block_21E6; + + block_21A3: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (counter - 1); + goto block_219B; + + block_21E6: + /* word_to_dword */ + /* pop_result */ + goto block_21F0; + + block_21F0: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR3/slot_2A_slot_2A.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR3/slot_2A_slot_2A.txt new file mode 100644 index 0000000..932702e --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR3/slot_2A_slot_2A.txt @@ -0,0 +1,40 @@ +function door3_slot_2A() /* entry=378 class_id=0x0A08 slot=0x2A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + maxFrame; /* [BP-04h] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + if (Item.getFrame(arg_06) > 0) goto block_2251; + + block_2247: + /* word_to_dword */ + /* pop_result */ + goto block_2306; + + block_2251: + spawn class_0A06_slot_22(pid, arg_06); + suspend; + maxFrame = 9; + counter = 1; + + block_228B: + if (counter <= maxFrame) goto block_22D6; + + block_2296: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_228B; + + block_22D6: + /* word_to_dword */ + /* pop_result */ + goto block_2306; + + block_2306: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOR3/slot_2B_slot_2B.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOR3/slot_2B_slot_2B.txt new file mode 100644 index 0000000..e8d248c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOR3/slot_2B_slot_2B.txt @@ -0,0 +1,44 @@ +function door3_slot_2B() /* entry=378 class_id=0x0A08 slot=0x2B */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + maxFrame; /* [BP-04h] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + maxFrame = 9; + class_0A0C_slot_2D(Item.getZ(arg_06), Item.legal_create(arg_06), Intrinsic0013(arg_06), maxFrame, 0x053B, *(arg_06)); + if retval goto block_23BA; + + block_2384: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + goto block_23C4; + + block_23BA: + /* word_to_dword */ + /* pop_result */ + goto block_2423; + + block_23C4: + counter = (maxFrame - 1); + + block_23CE: + if (counter >= 0) goto block_2419; + + block_23D6: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (counter - 1); + goto block_23CE; + + block_2419: + /* word_to_dword */ + /* pop_result */ + goto block_2423; + + block_2423: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOREGG/slot_07_hatch.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOREGG/slot_07_hatch.txt new file mode 100644 index 0000000..c2c31a5 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOREGG/slot_07_hatch.txt @@ -0,0 +1,10 @@ +function dooregg_hatch() /* entry=350 class_id=0x090A slot=0x07 */ +{ + entry: + set_info(0x0210, *(arg_06)); + process_exclude(); + spawn class_090A_slot_20(pid, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOREGG/slot_15_unhatch.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOREGG/slot_15_unhatch.txt new file mode 100644 index 0000000..23689df --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOREGG/slot_15_unhatch.txt @@ -0,0 +1,10 @@ +function dooregg_unhatch() /* entry=350 class_id=0x090A slot=0x15 */ +{ + entry: + set_info(0x0239, *(arg_06)); + process_exclude(); + spawn class_090A_slot_21(pid, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOREGG/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOREGG/slot_20_slot_20.txt new file mode 100644 index 0000000..40ca298 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOREGG/slot_20_slot_20.txt @@ -0,0 +1,31 @@ +function dooregg_slot_20() /* entry=350 class_id=0x090A slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + door; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x0001, *(arg_06)); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_01A5: + if condition goto block_01DA; + + block_01A8: + if (Item.fall(door) != Intrinsic003F(arg_06)) goto block_01D6; + + block_01C4: + spawn class_0A06_slot_21(1, door); + + block_01D6: + /* loopnext */ + goto block_01A5; + + block_01DA: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/DOOREGG/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/DOOREGG/slot_21_slot_21.txt new file mode 100644 index 0000000..58f8ff6 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/DOOREGG/slot_21_slot_21.txt @@ -0,0 +1,31 @@ +function dooregg_slot_21() /* entry=350 class_id=0x090A slot=0x21 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + door; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x0001, *(arg_06)); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_022B: + if condition goto block_0260; + + block_022E: + if (Item.fall(door) != Intrinsic003F(arg_06)) goto block_025C; + + block_024A: + spawn class_0A06_slot_21(2, door); + + block_025C: + /* loopnext */ + goto block_022B; + + block_0260: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/D_BARREL/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/D_BARREL/slot_06_gotHit.txt new file mode 100644 index 0000000..a79ba98 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/D_BARREL/slot_06_gotHit.txt @@ -0,0 +1,30 @@ +function d_barrel_gotHit() /* entry=127 class_id=0x022B slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if retval goto block_014D; + + block_00FD: + class_0A0C_slot_2C(vel, ref); + if (retval != 4) goto block_014D; + + block_0118: + class_0A0C_slot_20(10); + if (retval > 5) goto block_013E; + + block_012E: + goto block_014D; + + block_013E: + + block_014D: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/D_CHEM/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/D_CHEM/slot_01_use.txt new file mode 100644 index 0000000..cf5985d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/D_CHEM/slot_01_use.txt @@ -0,0 +1,21 @@ +function d_chem_use() /* entry=258 class_id=0x04B9 slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 0x1000) goto block_0223; + + block_021D: + goto block_0244; + + block_0223: + class_0A0C_slot_40(*(arg_06)); + if retval goto block_0244; + + block_0235: + class_0A1E_slot_23(0x1000, arg_06); + + block_0244: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/D_CHEM/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/D_CHEM/slot_06_gotHit.txt new file mode 100644 index 0000000..06b45c7 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/D_CHEM/slot_06_gotHit.txt @@ -0,0 +1,47 @@ +function d_chem_gotHit() /* entry=258 class_id=0x04B9 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + goods; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if ((retval != 4) || (Intrinsic006B() != 0)) goto block_0115; + + block_010F: + goto block_01C6; + + block_0115: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFE string_bytes=0x1 loop_type=0x4 */ + + block_0125: + if condition goto block_0184; + + block_0128: + if (Intrinsic0016(goods) != 0x0111) goto block_0175; + + block_0141: + goto block_0180; + + block_0175: + + block_0180: + /* loopnext */ + goto block_0125; + + block_0184: + if (Item.getFrame(arg_06) >= 10) goto block_01B1; + + block_019B: + + block_01B1: + + block_01C6: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/D_CONG/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/D_CONG/slot_01_use.txt new file mode 100644 index 0000000..5e93f59 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/D_CONG/slot_01_use.txt @@ -0,0 +1,21 @@ +function d_cong_use() /* entry=259 class_id=0x04BA slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 0x1000) goto block_0223; + + block_021D: + goto block_0244; + + block_0223: + class_0A0C_slot_40(*(arg_06)); + if retval goto block_0244; + + block_0235: + class_0A1E_slot_23(0x1000, arg_06); + + block_0244: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/D_CONG/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/D_CONG/slot_06_gotHit.txt new file mode 100644 index 0000000..73eb8da --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/D_CONG/slot_06_gotHit.txt @@ -0,0 +1,47 @@ +function d_cong_gotHit() /* entry=259 class_id=0x04BA slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + goods; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if ((retval != 4) || (Intrinsic006B() != 0)) goto block_0115; + + block_010F: + goto block_01C6; + + block_0115: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFE string_bytes=0x1 loop_type=0x4 */ + + block_0125: + if condition goto block_0184; + + block_0128: + if (Intrinsic0016(goods) != 0x0111) goto block_0175; + + block_0141: + goto block_0180; + + block_0175: + + block_0180: + /* loopnext */ + goto block_0125; + + block_0184: + if (Item.getFrame(arg_06) >= 10) goto block_01B1; + + block_019B: + + block_01B1: + + block_01C6: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/D_COUR/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/D_COUR/slot_06_gotHit.txt new file mode 100644 index 0000000..92d808e --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/D_COUR/slot_06_gotHit.txt @@ -0,0 +1,39 @@ +function d_cour_gotHit() /* entry=266 class_id=0x04C2 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + goods; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + if (Intrinsic00DA(100, 0) > 50) goto block_0108; + + block_0102: + goto block_01A1; + + block_0108: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFE string_bytes=0x1 loop_type=0x4 */ + + block_0118: + if condition goto block_016A; + + block_011B: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + spawn class_0A1E_slot_28(pid, 1, 0, goods); + suspend; + /* loopnext */ + goto block_0118; + + block_016A: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + + block_01A1: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/D_EM_GUY/slot_0E_calledFromAnim.txt b/USECODE/EUSECODE_extracted/pseudocode/D_EM_GUY/slot_0E_calledFromAnim.txt new file mode 100644 index 0000000..ca06066 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/D_EM_GUY/slot_0E_calledFromAnim.txt @@ -0,0 +1,9 @@ +function d_em_guy_calledFromAnim() /* entry=334 class_id=0x059C slot=0x0E */ +{ + entry: + set_info(0x021A, *(arg_06)); + process_exclude(); + spawn class_0A1C_slot_20(Item.getQLo(arg_06), *(arg_06), arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/D_EM_GUY/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/D_EM_GUY/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..e3919c1 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/D_EM_GUY/slot_0F_enterFastArea.txt @@ -0,0 +1,11 @@ +function d_em_guy_enterFastArea() /* entry=334 class_id=0x059C slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + spawn class_0A1C_slot_20(Item.getQLo(arg_06), *(arg_06), arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/D_ENFORC/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/D_ENFORC/slot_01_use.txt new file mode 100644 index 0000000..21570be --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/D_ENFORC/slot_01_use.txt @@ -0,0 +1,21 @@ +function d_enforc_use() /* entry=318 class_id=0x055D slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 0x1000) goto block_0223; + + block_021D: + goto block_0244; + + block_0223: + class_0A0C_slot_40(*(arg_06)); + if retval goto block_0244; + + block_0235: + class_0A1E_slot_23(0x1000, arg_06); + + block_0244: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/D_ENFORC/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/D_ENFORC/slot_06_gotHit.txt new file mode 100644 index 0000000..20c9df0 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/D_ENFORC/slot_06_gotHit.txt @@ -0,0 +1,47 @@ +function d_enforc_gotHit() /* entry=318 class_id=0x055D slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + goods; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if ((retval != 4) || (Intrinsic006B() != 0)) goto block_0115; + + block_010F: + goto block_01C6; + + block_0115: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFE string_bytes=0x1 loop_type=0x4 */ + + block_0125: + if condition goto block_0184; + + block_0128: + if (Intrinsic0016(goods) != 0x0111) goto block_0175; + + block_0141: + goto block_0180; + + block_0175: + + block_0180: + /* loopnext */ + goto block_0125; + + block_0184: + if (Item.getFrame(arg_06) >= 10) goto block_01B1; + + block_019B: + + block_01B1: + + block_01C6: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/D_ESTORM/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/D_ESTORM/slot_01_use.txt new file mode 100644 index 0000000..7646c53 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/D_ESTORM/slot_01_use.txt @@ -0,0 +1,21 @@ +function d_estorm_use() /* entry=276 class_id=0x04D2 slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 0x1000) goto block_0223; + + block_021D: + goto block_0244; + + block_0223: + class_0A0C_slot_40(*(arg_06)); + if retval goto block_0244; + + block_0235: + class_0A1E_slot_23(0x1000, arg_06); + + block_0244: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/D_ESTORM/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/D_ESTORM/slot_06_gotHit.txt new file mode 100644 index 0000000..516921d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/D_ESTORM/slot_06_gotHit.txt @@ -0,0 +1,47 @@ +function d_estorm_gotHit() /* entry=276 class_id=0x04D2 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + goods; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if ((retval != 4) || (Intrinsic006B() != 0)) goto block_0115; + + block_010F: + goto block_01C6; + + block_0115: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFE string_bytes=0x1 loop_type=0x4 */ + + block_0125: + if condition goto block_0184; + + block_0128: + if (Intrinsic0016(goods) != 0x0111) goto block_0175; + + block_0141: + goto block_0180; + + block_0175: + + block_0180: + /* loopnext */ + goto block_0125; + + block_0184: + if (Item.getFrame(arg_06) >= 10) goto block_01B1; + + block_019B: + + block_01B1: + + block_01C6: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/D_GRENAD/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/D_GRENAD/slot_01_use.txt new file mode 100644 index 0000000..d95b7eb --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/D_GRENAD/slot_01_use.txt @@ -0,0 +1,21 @@ +function d_grenad_use() /* entry=315 class_id=0x054D slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 0x1000) goto block_0223; + + block_021D: + goto block_0244; + + block_0223: + class_0A0C_slot_40(*(arg_06)); + if retval goto block_0244; + + block_0235: + class_0A1E_slot_23(0x1000, arg_06); + + block_0244: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/D_GRENAD/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/D_GRENAD/slot_06_gotHit.txt new file mode 100644 index 0000000..4c9a8ea --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/D_GRENAD/slot_06_gotHit.txt @@ -0,0 +1,47 @@ +function d_grenad_gotHit() /* entry=315 class_id=0x054D slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + goods; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if ((retval != 4) || (Intrinsic006B() != 0)) goto block_0115; + + block_010F: + goto block_01C6; + + block_0115: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFE string_bytes=0x1 loop_type=0x4 */ + + block_0125: + if condition goto block_0184; + + block_0128: + if (Intrinsic0016(goods) != 0x0111) goto block_0175; + + block_0141: + goto block_0180; + + block_0175: + + block_0180: + /* loopnext */ + goto block_0125; + + block_0184: + if (Item.getFrame(arg_06) >= 10) goto block_01B1; + + block_019B: + + block_01B1: + + block_01C6: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/D_GUARD/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/D_GUARD/slot_01_use.txt new file mode 100644 index 0000000..784fca5 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/D_GUARD/slot_01_use.txt @@ -0,0 +1,21 @@ +function d_guard_use() /* entry=182 class_id=0x0339 slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 0x1000) goto block_021D; + + block_0217: + goto block_023E; + + block_021D: + class_0A0C_slot_40(*(arg_06)); + if retval goto block_023E; + + block_022F: + class_0A1E_slot_23(0x1000, arg_06); + + block_023E: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/D_GUARD/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/D_GUARD/slot_06_gotHit.txt new file mode 100644 index 0000000..e2f0b61 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/D_GUARD/slot_06_gotHit.txt @@ -0,0 +1,47 @@ +function d_guard_gotHit() /* entry=182 class_id=0x0339 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + goods; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if ((retval != 4) || (Intrinsic006B() != 0)) goto block_0115; + + block_010F: + goto block_01C0; + + block_0115: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFE string_bytes=0x1 loop_type=0x4 */ + + block_0125: + if condition goto block_0184; + + block_0128: + if (Intrinsic0016(goods) != 0x0111) goto block_0175; + + block_0141: + goto block_0180; + + block_0175: + + block_0180: + /* loopnext */ + goto block_0125; + + block_0184: + if Item.getFrame(arg_06) goto block_01AB; + + block_0195: + + block_01AB: + + block_01C0: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/D_GURDSQ/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/D_GURDSQ/slot_01_use.txt new file mode 100644 index 0000000..9655fe0 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/D_GURDSQ/slot_01_use.txt @@ -0,0 +1,23 @@ +function d_gurdsq_use() /* entry=287 class_id=0x04E4 slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 0x1000) goto block_0223; + + block_021D: + goto block_026A; + + block_0223: + class_0A0C_slot_40(*(arg_06)); + if retval goto block_026A; + + block_0235: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + class_0A1E_slot_23(0x1000, arg_06); + + block_026A: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/D_GURDSQ/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/D_GURDSQ/slot_06_gotHit.txt new file mode 100644 index 0000000..63accee --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/D_GURDSQ/slot_06_gotHit.txt @@ -0,0 +1,47 @@ +function d_gurdsq_gotHit() /* entry=287 class_id=0x04E4 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + goods; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if ((retval != 4) || (Intrinsic006B() != 0)) goto block_0115; + + block_010F: + goto block_01C6; + + block_0115: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFE string_bytes=0x1 loop_type=0x4 */ + + block_0125: + if condition goto block_0184; + + block_0128: + if (Intrinsic0016(goods) != 0x0111) goto block_0175; + + block_0141: + goto block_0180; + + block_0175: + + block_0180: + /* loopnext */ + goto block_0125; + + block_0184: + if (Item.getFrame(arg_06) > 9) goto block_01B1; + + block_019B: + + block_01B1: + + block_01C6: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/D_HOFFMA/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/D_HOFFMA/slot_01_use.txt new file mode 100644 index 0000000..5e18813 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/D_HOFFMA/slot_01_use.txt @@ -0,0 +1,21 @@ +function d_hoffma_use() /* entry=282 class_id=0x04DA slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 0x1000) goto block_0104; + + block_00FE: + goto block_0125; + + block_0104: + class_0A0C_slot_40(*(arg_06)); + if retval goto block_0125; + + block_0116: + class_0A1E_slot_23(0x1000, arg_06); + + block_0125: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/D_MAINT/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/D_MAINT/slot_01_use.txt new file mode 100644 index 0000000..dda3146 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/D_MAINT/slot_01_use.txt @@ -0,0 +1,21 @@ +function d_maint_use() /* entry=260 class_id=0x04BB slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 0x1000) goto block_0223; + + block_021D: + goto block_0244; + + block_0223: + class_0A0C_slot_40(*(arg_06)); + if retval goto block_0244; + + block_0235: + class_0A1E_slot_23(0x1000, arg_06); + + block_0244: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/D_MAINT/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/D_MAINT/slot_06_gotHit.txt new file mode 100644 index 0000000..8e84787 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/D_MAINT/slot_06_gotHit.txt @@ -0,0 +1,47 @@ +function d_maint_gotHit() /* entry=260 class_id=0x04BB slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + goods; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if ((retval != 4) || (Intrinsic006B() != 0)) goto block_0115; + + block_010F: + goto block_01C6; + + block_0115: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFE string_bytes=0x1 loop_type=0x4 */ + + block_0125: + if condition goto block_0184; + + block_0128: + if (Intrinsic0016(goods) != 0x0111) goto block_0175; + + block_0141: + goto block_0180; + + block_0175: + + block_0180: + /* loopnext */ + goto block_0125; + + block_0184: + if (Item.getFrame(arg_06) > 9) goto block_01B1; + + block_019B: + + block_01B1: + + block_01C6: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/D_OWORK/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/D_OWORK/slot_01_use.txt new file mode 100644 index 0000000..20fe314 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/D_OWORK/slot_01_use.txt @@ -0,0 +1,21 @@ +function d_owork_use() /* entry=261 class_id=0x04BC slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 0x1000) goto block_0223; + + block_021D: + goto block_0244; + + block_0223: + class_0A0C_slot_40(*(arg_06)); + if retval goto block_0244; + + block_0235: + class_0A1E_slot_23(0x1000, arg_06); + + block_0244: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/D_OWORK/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/D_OWORK/slot_06_gotHit.txt new file mode 100644 index 0000000..38918ff --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/D_OWORK/slot_06_gotHit.txt @@ -0,0 +1,47 @@ +function d_owork_gotHit() /* entry=261 class_id=0x04BC slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + goods; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if ((retval != 4) || (Intrinsic006B() != 0)) goto block_0115; + + block_010F: + goto block_01C6; + + block_0115: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFE string_bytes=0x1 loop_type=0x4 */ + + block_0125: + if condition goto block_0184; + + block_0128: + if (Intrinsic0016(goods) != 0x0111) goto block_0175; + + block_0141: + goto block_0180; + + block_0175: + + block_0180: + /* loopnext */ + goto block_0125; + + block_0184: + if (Item.getFrame(arg_06) > 9) goto block_01B1; + + block_019B: + + block_01B1: + + block_01C6: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/D_PLASMA/slot_0E_calledFromAnim.txt b/USECODE/EUSECODE_extracted/pseudocode/D_PLASMA/slot_0E_calledFromAnim.txt new file mode 100644 index 0000000..61d0897 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/D_PLASMA/slot_0E_calledFromAnim.txt @@ -0,0 +1,9 @@ +function d_plasma_calledFromAnim() /* entry=332 class_id=0x058F slot=0x0E */ +{ + entry: + set_info(0x021A, *(arg_06)); + process_exclude(); + spawn class_0A1C_slot_20(Item.getQLo(arg_06), *(arg_06), arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/D_PLASMA/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/D_PLASMA/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..9b9cd89 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/D_PLASMA/slot_0F_enterFastArea.txt @@ -0,0 +1,11 @@ +function d_plasma_enterFastArea() /* entry=332 class_id=0x058F slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + spawn class_0A1C_slot_20(Item.getQLo(arg_06), *(arg_06), arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/D_SCIEN/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/D_SCIEN/slot_01_use.txt new file mode 100644 index 0000000..ce0d156 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/D_SCIEN/slot_01_use.txt @@ -0,0 +1,21 @@ +function d_scien_use() /* entry=262 class_id=0x04BD slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 0x1000) goto block_0223; + + block_021D: + goto block_0244; + + block_0223: + class_0A0C_slot_40(*(arg_06)); + if retval goto block_0244; + + block_0235: + class_0A1E_slot_23(0x1000, arg_06); + + block_0244: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/D_SCIEN/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/D_SCIEN/slot_06_gotHit.txt new file mode 100644 index 0000000..b73d205 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/D_SCIEN/slot_06_gotHit.txt @@ -0,0 +1,47 @@ +function d_scien_gotHit() /* entry=262 class_id=0x04BD slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + goods; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if ((retval != 4) || (Intrinsic006B() != 0)) goto block_0115; + + block_010F: + goto block_01C6; + + block_0115: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFE string_bytes=0x1 loop_type=0x4 */ + + block_0125: + if condition goto block_0184; + + block_0128: + if (Intrinsic0016(goods) != 0x0111) goto block_0175; + + block_0141: + goto block_0180; + + block_0175: + + block_0180: + /* loopnext */ + goto block_0125; + + block_0184: + if (Item.getFrame(arg_06) > 9) goto block_01B1; + + block_019B: + + block_01B1: + + block_01C6: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/D_SKELET/slot_0E_calledFromAnim.txt b/USECODE/EUSECODE_extracted/pseudocode/D_SKELET/slot_0E_calledFromAnim.txt new file mode 100644 index 0000000..39092a0 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/D_SKELET/slot_0E_calledFromAnim.txt @@ -0,0 +1,9 @@ +function d_skelet_calledFromAnim() /* entry=333 class_id=0x0596 slot=0x0E */ +{ + entry: + set_info(0x021A, *(arg_06)); + process_exclude(); + spawn class_0A1C_slot_20(Item.getQLo(arg_06), *(arg_06), arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/D_SKELET/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/D_SKELET/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..93eb6d5 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/D_SKELET/slot_0F_enterFastArea.txt @@ -0,0 +1,11 @@ +function d_skelet_enterFastArea() /* entry=333 class_id=0x0596 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + spawn class_0A1C_slot_20(Item.getQLo(arg_06), *(arg_06), arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/D_SOLD/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/D_SOLD/slot_01_use.txt new file mode 100644 index 0000000..5e7d33b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/D_SOLD/slot_01_use.txt @@ -0,0 +1,21 @@ +function d_sold_use() /* entry=264 class_id=0x04BF slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 0x1000) goto block_0223; + + block_021D: + goto block_0244; + + block_0223: + class_0A0C_slot_40(*(arg_06)); + if retval goto block_0244; + + block_0235: + class_0A1E_slot_23(0x1000, arg_06); + + block_0244: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/D_SOLD/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/D_SOLD/slot_06_gotHit.txt new file mode 100644 index 0000000..5ab8513 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/D_SOLD/slot_06_gotHit.txt @@ -0,0 +1,47 @@ +function d_sold_gotHit() /* entry=264 class_id=0x04BF slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + goods; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if ((retval != 4) || (Intrinsic006B() != 0)) goto block_0115; + + block_010F: + goto block_01C6; + + block_0115: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFE string_bytes=0x1 loop_type=0x4 */ + + block_0125: + if condition goto block_0184; + + block_0128: + if (Intrinsic0016(goods) != 0x0111) goto block_0175; + + block_0141: + goto block_0180; + + block_0175: + + block_0180: + /* loopnext */ + goto block_0125; + + block_0184: + if (Item.getFrame(arg_06) > 9) goto block_01B1; + + block_019B: + + block_01B1: + + block_01C6: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/D_STORM/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/D_STORM/slot_01_use.txt new file mode 100644 index 0000000..a37f116 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/D_STORM/slot_01_use.txt @@ -0,0 +1,21 @@ +function d_storm_use() /* entry=263 class_id=0x04BE slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 0x1000) goto block_0223; + + block_021D: + goto block_0244; + + block_0223: + class_0A0C_slot_40(*(arg_06)); + if retval goto block_0244; + + block_0235: + class_0A1E_slot_23(0x1000, arg_06); + + block_0244: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/D_STORM/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/D_STORM/slot_06_gotHit.txt new file mode 100644 index 0000000..ce9c36e --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/D_STORM/slot_06_gotHit.txt @@ -0,0 +1,47 @@ +function d_storm_gotHit() /* entry=263 class_id=0x04BE slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + goods; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if ((retval != 4) || (Intrinsic006B() != 0)) goto block_0115; + + block_010F: + goto block_01C6; + + block_0115: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFE string_bytes=0x1 loop_type=0x4 */ + + block_0125: + if condition goto block_0184; + + block_0128: + if (Intrinsic0016(goods) != 0x0111) goto block_0175; + + block_0141: + goto block_0180; + + block_0175: + + block_0180: + /* loopnext */ + goto block_0125; + + block_0184: + if (Item.getFrame(arg_06) > 9) goto block_01B1; + + block_019B: + + block_01B1: + + block_01C6: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/D_SUSAN/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/D_SUSAN/slot_06_gotHit.txt new file mode 100644 index 0000000..685b0d3 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/D_SUSAN/slot_06_gotHit.txt @@ -0,0 +1,39 @@ +function d_susan_gotHit() /* entry=267 class_id=0x04C4 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + goods; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + if (Intrinsic00DA(100, 0) > 50) goto block_0108; + + block_0102: + goto block_01A1; + + block_0108: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFE string_bytes=0x1 loop_type=0x4 */ + + block_0118: + if condition goto block_016A; + + block_011B: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + spawn class_0A1E_slot_28(pid, 1, 0, goods); + suspend; + /* loopnext */ + goto block_0118; + + block_016A: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + + block_01A1: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/D_THERM/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/D_THERM/slot_01_use.txt new file mode 100644 index 0000000..e31e4bf --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/D_THERM/slot_01_use.txt @@ -0,0 +1,21 @@ +function d_therm_use() /* entry=268 class_id=0x04C5 slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 0x1000) goto block_0104; + + block_00FE: + goto block_0125; + + block_0104: + class_0A0C_slot_40(*(arg_06)); + if retval goto block_0125; + + block_0116: + class_0A1E_slot_23(0x1000, arg_06); + + block_0125: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/D_VARG/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/D_VARG/slot_01_use.txt new file mode 100644 index 0000000..e6c7af1 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/D_VARG/slot_01_use.txt @@ -0,0 +1,21 @@ +function d_varg_use() /* entry=265 class_id=0x04C0 slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 0x1000) goto block_0104; + + block_00FE: + goto block_0125; + + block_0104: + class_0A0C_slot_40(*(arg_06)); + if retval goto block_0125; + + block_0116: + class_0A1E_slot_23(0x1000, arg_06); + + block_0125: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/EBRIDGE/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/EBRIDGE/slot_0A_equip.txt new file mode 100644 index 0000000..7d8e2a3 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/EBRIDGE/slot_0A_equip.txt @@ -0,0 +1,10 @@ +function ebridge_equip() /* entry=210 class_id=0x03A6 slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + spawn class_0A03_slot_20(pid, arg_0A, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/EBRIDGE/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/EBRIDGE/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..1b3815b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/EBRIDGE/slot_0F_enterFastArea.txt @@ -0,0 +1,31 @@ +function ebridge_enterFastArea() /* entry=210 class_id=0x03A6 slot=0x0F */ +{ + var + referent, /* [BP+00h] type=0x69 */ + x, /* [BP-02h] type=0x69 */ + y; /* [BP-04h] type=0x69 */ + + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + x = Item.fall(arg_06); + if (x != 0) goto block_0117; + + block_0111: + goto block_0161; + + block_0117: + y = Intrinsic009C(arg_06); + if ((y < 1) || (y > 127)) goto block_013C; + + block_0136: + goto block_0161; + + block_013C: + spawn class_0A03_slot_26(pid, y, x, arg_06); + suspend; + + block_0161: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/EBRIDGE2/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/EBRIDGE2/slot_0A_equip.txt new file mode 100644 index 0000000..715926d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/EBRIDGE2/slot_0A_equip.txt @@ -0,0 +1,10 @@ +function ebridge2_equip() /* entry=230 class_id=0x0413 slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + spawn class_0A03_slot_20(pid, arg_0A, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/EBRIDGE2/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/EBRIDGE2/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..f4ed613 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/EBRIDGE2/slot_0F_enterFastArea.txt @@ -0,0 +1,31 @@ +function ebridge2_enterFastArea() /* entry=230 class_id=0x0413 slot=0x0F */ +{ + var + referent, /* [BP+00h] type=0x69 */ + x, /* [BP-02h] type=0x69 */ + y; /* [BP-04h] type=0x69 */ + + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + x = Item.fall(arg_06); + if (x != 0) goto block_0117; + + block_0111: + goto block_0161; + + block_0117: + y = Intrinsic009C(arg_06); + if ((y < 1) || (y > 127)) goto block_013C; + + block_0136: + goto block_0161; + + block_013C: + spawn class_0A03_slot_26(pid, y, x, arg_06); + suspend; + + block_0161: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/EGRENADE/slot_0E_calledFromAnim.txt b/USECODE/EUSECODE_extracted/pseudocode/EGRENADE/slot_0E_calledFromAnim.txt new file mode 100644 index 0000000..76775c2 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/EGRENADE/slot_0E_calledFromAnim.txt @@ -0,0 +1,15 @@ +function egrenade_calledFromAnim() /* entry=303 class_id=0x0528 slot=0x0E */ +{ + var + referent, /* [BP+00h] type=0x69 */ + n; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x021A, *(arg_06)); + process_exclude(); + n = *(arg_06); + set_info(1, 0); + spawn class_0A1C_slot_20(Item.getQLo(arg_06), *(arg_06), n); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ELEVAT/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/ELEVAT/slot_20_slot_20.txt new file mode 100644 index 0000000..781c111 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ELEVAT/slot_20_slot_20.txt @@ -0,0 +1,32 @@ +function elevat_slot_20() /* entry=379 class_id=0x0A09 slot=0x20 */ +{ + entry: + set_info(0x0001, *(arg_06)); + if (Item.getStatus(arg_06) & 0x1000) goto block_0127; + + block_0121: + goto block_019E; + + block_0127: + if (!Intrinsic006D(arg_06)) goto block_0140; + + block_013A: + goto block_019E; + + block_0140: + class_0A09_slot_22(Item.getZ(arg_06), arg_06); + if retval goto block_017F; + + block_015D: + spawn class_0A09_slot_23(pid, arg_06); + suspend; + goto block_019E; + + block_017F: + spawn class_0A09_slot_24(pid, arg_06); + suspend; + + block_019E: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ELEVAT/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/ELEVAT/slot_21_slot_21.txt new file mode 100644 index 0000000..dbe520e --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ELEVAT/slot_21_slot_21.txt @@ -0,0 +1,9 @@ +function elevat_slot_21() /* entry=379 class_id=0x0A09 slot=0x21 */ +{ + entry: + goto block_01CF; + + block_01CF: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ELEVAT/slot_22_slot_22.txt b/USECODE/EUSECODE_extracted/pseudocode/ELEVAT/slot_22_slot_22.txt new file mode 100644 index 0000000..d818e18 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ELEVAT/slot_22_slot_22.txt @@ -0,0 +1,9 @@ +function elevat_slot_22() /* entry=379 class_id=0x0A09 slot=0x22 */ +{ + entry: + goto block_0200; + + block_0200: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ELEVAT/slot_23_slot_23.txt b/USECODE/EUSECODE_extracted/pseudocode/ELEVAT/slot_23_slot_23.txt new file mode 100644 index 0000000..3badb05 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ELEVAT/slot_23_slot_23.txt @@ -0,0 +1,91 @@ +function elevat_slot_23() /* entry=379 class_id=0x0A09 slot=0x23 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + cargoUp, /* [BP-02h] type=0x24 */ + existCargo, /* [BP-03h] type=0x62 */ + counter, /* [BP-05h] type=0x69 */ + height, /* [BP-06h] type=0x62 */ + maxLimit, /* [BP-08h] type=0x69 */ + maxLimitCount, /* [BP-0Ah] type=0x69 */ + counter2, /* [BP-0Ch] type=0x69 */ + total; /* [BP-0Eh] type=0x69 */ + + entry: + set_info(0x0001, *(arg_06)); + height = Item.getZ(arg_06); + maxLimit = Intrinsic009C(arg_06); + maxLimitCount = ((Intrinsic009C(arg_06) - height) / 2); + counter = 1; + + block_0295: + if (counter <= maxLimitCount) goto block_03A1; + + block_02A0: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFE string_bytes=0x1 loop_type=0x6 */ + + block_02B0: + if condition goto block_02DF; + + block_02B3: + if (Intrinsic0016(cargoUp) != 0x04FE) goto block_02DB; + + block_02C6: + total = (1 + total); + + block_02DB: + /* loopnext */ + goto block_02B0; + + block_02DF: + counter2 = 1; + + block_02E8: + if (counter2 <= total) goto block_0333; + + block_02F3: + cargoUp = Intrinsic0023(); + counter2 = (1 + counter2); + goto block_02E8; + + block_0333: + total = 0; + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0295; + + block_03A1: + if ((maxLimit - height) & 1) goto block_0463; + + block_03AF: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFE string_bytes=0x1 loop_type=0x6 */ + + block_03BF: + if condition goto block_03DB; + + block_03C2: + total = (1 + total); + /* loopnext */ + goto block_03BF; + + block_03DB: + counter2 = 1; + + block_03E4: + if (counter2 <= total) goto block_042F; + + block_03EF: + cargoUp = Intrinsic0023(); + counter2 = (1 + counter2); + goto block_03E4; + + block_042F: + + block_0463: + /* bit_not */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ELEVAT/slot_24_slot_24.txt b/USECODE/EUSECODE_extracted/pseudocode/ELEVAT/slot_24_slot_24.txt new file mode 100644 index 0000000..6938f71 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ELEVAT/slot_24_slot_24.txt @@ -0,0 +1,146 @@ +function elevat_slot_24() /* entry=379 class_id=0x0A09 slot=0x24 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + counter2, /* [BP-04h] type=0x69 */ + height, /* [BP-05h] type=0x62 */ + minLimit, /* [BP-07h] type=0x69 */ + minLimitCount, /* [BP-09h] type=0x69 */ + cargoDown, /* [BP-0Bh] type=0x24 */ + wp, /* [BP-10h] type=0x24 */ + x, /* [BP-12h] type=0x69 */ + y, /* [BP-14h] type=0x69 */ + z, /* [BP-16h] type=0x69 */ + total2; /* [BP-18h] type=0x69 */ + + entry: + set_info(0x0001, *(arg_06)); + height = Item.getZ(arg_06); + class_0A09_slot_21(arg_06); + minLimit = retval; + minLimitCount = ((height - minLimit) / 2); + counter = 1; + + block_0590: + if (counter <= minLimitCount) goto block_07F6; + + block_059B: + wp = Intrinsic0013(arg_06); + local_0E = Item.legal_create(arg_06); + local_0C = (Item.getZ(arg_06) - 2); + total2 = 0; + /* loopscr value_u8=0x24 */ + /* loop current_var=0xF5 string_bytes=0x1 loop_type=0x6 */ + + block_05DF: + if condition goto block_068C; + + block_05E2: + if Item.use(*(arg_06), cargoDown) goto block_0688; + + block_05F5: + if (cargoDown < 0x0100) goto block_0673; + + block_0604: + if Item.isInNpc(*(arg_06), cargoDown) goto block_062F; + + block_0617: + total2 = (1 + total2); + goto block_0670; + + block_062F: + total2 = (1 + total2); + + block_0670: + goto block_0688; + + block_0673: + total2 = (1 + total2); + + block_0688: + /* loopnext */ + goto block_05DF; + + block_068C: + if Item.pop(0, 0, wp, arg_06) goto block_071E; + + block_06A3: + counter2 = 1; + + block_06AA: + if (counter2 <= total2) goto block_06F5; + + block_06B5: + cargoDown = Intrinsic0023(); + counter2 = (1 + counter2); + goto block_06AA; + + block_06F5: + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + goto block_07E2; + + block_071E: + counter2 = 1; + + block_0725: + if (counter2 <= total2) goto block_0770; + + block_0730: + cargoDown = Intrinsic0023(); + counter2 = (1 + counter2); + goto block_0725; + + block_0770: + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + spawn class_0A09_slot_23(pid, arg_06); + suspend; + goto block_0901; + + block_07E2: + total2 = 0; + counter = (1 + counter); + goto block_0590; + + block_07F6: + if ((height - minLimit) & 1) goto block_08CB; + + block_0804: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xF5 string_bytes=0x1 loop_type=0x6 */ + + block_0814: + if condition goto block_0843; + + block_0817: + if Item.use(*(arg_06), cargoDown) goto block_083F; + + block_082A: + total2 = (1 + total2); + + block_083F: + /* loopnext */ + goto block_0814; + + block_0843: + counter2 = 1; + + block_084C: + if (counter2 <= total2) goto block_0897; + + block_0857: + cargoDown = Intrinsic0023(); + counter2 = (1 + counter2); + goto block_084C; + + block_0897: + + block_08CB: + /* bit_not */ + + block_0901: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ELEVAT/slot_25_slot_25.txt b/USECODE/EUSECODE_extracted/pseudocode/ELEVAT/slot_25_slot_25.txt new file mode 100644 index 0000000..45af5e6 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ELEVAT/slot_25_slot_25.txt @@ -0,0 +1,77 @@ +function elevat_slot_25() /* entry=379 class_id=0x0A09 slot=0x25 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + liftpit, /* [BP-02h] type=0x24 */ + pitCounter, /* [BP-03h] type=0x62 */ + totFrames, /* [BP-04h] type=0x62 */ + checkX, /* [BP-06h] type=0x69 */ + checkY; /* [BP-08h] type=0x69 */ + + entry: + set_info(0x0001, *(arg_06)); + totFrames = 5; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_09C4: + if condition goto block_0B41; + + block_09C7: + class_0A0C_slot_3F((Intrinsic0013(arg_06) - Intrinsic0013(liftpit))); + checkX = retval; + class_0A0C_slot_3F((Item.legal_create(arg_06) - Item.legal_create(liftpit))); + checkY = retval; + if ((checkX < 2) && (checkY < 2)) goto block_0B3D; + + block_0A1B: + if ((Item.getStatus(liftpit) & 0x1000) != 0) goto block_0B3D; + + block_0A34: + if (Item.getFrame(liftpit) != 0) goto block_0AA9; + + block_0A54: + pitCounter = 1; + + block_0A5B: + if (pitCounter <= totFrames) goto block_0AA6; + + block_0A66: + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + pitCounter = (1 + pitCounter); + goto block_0A5B; + + block_0AA6: + goto block_0B2E; + + block_0AA9: + pitCounter = totFrames; + + block_0AB0: + if (pitCounter > 0) goto block_0AFB; + + block_0AB8: + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + pitCounter = (pitCounter - 1); + goto block_0AB0; + + block_0AFB: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + + block_0B2E: + /* bit_not */ + + block_0B3D: + /* loopnext */ + goto block_09C4; + + block_0B41: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ELEVATOR/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/ELEVATOR/slot_06_gotHit.txt new file mode 100644 index 0000000..094f98c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ELEVATOR/slot_06_gotHit.txt @@ -0,0 +1,136 @@ +function elevator_gotHit() /* entry=124 class_id=0x021E slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + ke, /* [BP+0Ch] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + lowQuality, /* [BP-04h] type=0x69 */ + direction, /* [BP-06h] type=0x69 */ + n, /* [BP-08h] type=0x24 */ + nT; /* [BP-0Ah] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + if ((ref != 1) || (Intrinsic0070() != 1)) goto block_010E; + + block_0108: + goto block_04FA; + + block_010E: + class_0A0C_slot_33(0x0220, 0); + + block_0136: + /* global_address global_id=0x3C */ + if Intrinsic0033() goto block_016F; + + block_0146: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0136; + + block_016F: + /* global_address global_id=0x3C */ + if Intrinsic0035() goto block_01AF; + + block_017F: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + + block_01AF: + item = ref; + lowQuality = Item.fall(arg_06); + direction = Intrinsic009C(arg_06); + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFE string_bytes=0x1 loop_type=0x6 */ + + block_01E2: + if condition goto block_0395; + + block_01E5: + if (item != *(arg_06)) goto block_0391; + + block_01F8: + if Item.isNpc(item) goto block_0235; + + block_0207: + if (item != 1) goto block_0232; + + block_0215: + n = item; + + block_0232: + goto block_0391; + + block_0235: + nT = Intrinsic0016(item); + if (((((((((((((((((((((((((nT != 0x0194) && (nT != 0x04D0)) && (nT != 17)) && (nT != 0x04B1)) && (nT != 0x0476)) && (nT != 0x01C6)) && (nT != 0x018D)) && (nT != 0x0193)) && (nT != 0x01C7)) && (nT != 0x028A)) && (nT != 0x018C)) && (nT != 0x0192)) && (nT != 0x0288)) && (nT != 0x028B)) && (nT != 0x018B)) && (nT != 0x0191)) && (nT != 0x028C)) && (nT != 0x028D)) && (nT != 0x018A)) && (nT != 0x0190)) && (nT != 0x0287)) && (nT != 0x028E)) && (nT != 0x0187)) && (nT != 0x0189)) && (nT != 0x0289)) goto block_0391; + + block_0386: + + block_0391: + /* loopnext */ + goto block_01E2; + + block_0395: + set_info(0x0220, 0); + if (direction != 0) goto block_03B1; + + block_03AE: + goto block_03BB; + + block_03B1: + direction = (direction - 1); + + block_03BB: + if (lowQuality < 16) goto block_03FB; + + block_03C9: + /* global_address global_id=0x3C */ + spawn class_021E_slot_20(Item.getType(pid, lowQuality), direction, arg_06); + suspend; + goto block_0499; + + block_03FB: + if (lowQuality != 16) goto block_0435; + + block_0403: + /* global_address global_id=0x3C */ + spawn class_021E_slot_20(Item.getType(pid, 4), direction, arg_06); + suspend; + goto block_0499; + + block_0435: + if (lowQuality != 17) goto block_0467; + + block_043D: + spawn class_021E_slot_20(pid, 17, 10, direction, arg_06); + suspend; + goto block_0499; + + block_0467: + if (lowQuality != 18) goto block_0499; + + block_046F: + spawn class_021E_slot_20(pid, 18, 24, direction, arg_06); + suspend; + goto block_0499; + + block_0499: + /* global_address global_id=0x3C */ + if Intrinsic0033() goto block_04D2; + + block_04A9: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + goto block_0499; + + block_04D2: + class_0A0C_slot_33(0x0220, 0); + + block_04FA: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ELEVATOR/slot_09_release.txt b/USECODE/EUSECODE_extracted/pseudocode/ELEVATOR/slot_09_release.txt new file mode 100644 index 0000000..aa977d1 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ELEVATOR/slot_09_release.txt @@ -0,0 +1,37 @@ +function elevator_release() /* entry=124 class_id=0x021E slot=0x09 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + w, /* [BP-02h] type=0x69 */ + item, /* [BP-04h] type=0x24 */ + door; /* [BP-06h] type=0x24 */ + + entry: + set_info(0x020D, *(arg_06)); + process_exclude(); + w = Intrinsic0057(arg_06); + if (w != 0) goto block_0FB5; + + block_0F3C: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_0F82: + if condition goto block_0FB3; + + block_0F85: + door = item; + spawn class_0A06_slot_21(pid, 2, door); + suspend; + /* loopnext */ + goto block_0F82; + + block_0FB3: + + block_0FB5: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ELEVATOR/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/ELEVATOR/slot_20_slot_20.txt new file mode 100644 index 0000000..957ae58 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ELEVATOR/slot_20_slot_20.txt @@ -0,0 +1,291 @@ +function elevator_slot_20() /* entry=124 class_id=0x021E slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + dir, /* [BP+0Ah] type=0x69 */ + mapNum, /* [BP+0Ch] type=0x69 */ + eggNum, /* [BP+0Eh] type=0x69 */ + post1, /* [BP-02h] type=0x24 */ + post2, /* [BP-04h] type=0x24 */ + item, /* [BP-06h] type=0x24 */ + counter, /* [BP-08h] type=0x69 */ + door, /* [BP-0Ah] type=0x24 */ + door1; /* [BP-0Ch] type=0x24 */ + + entry: + set_info(1, 0); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */ + + block_0585: + if condition goto block_0593; + + block_0588: + door = item; + /* loopnext */ + goto block_0585; + + block_0593: + if (!door) goto block_05A4; + + block_059E: + goto block_0E9C; + + block_05A4: + if (Intrinsic0016(door) != 0x0189) goto block_0656; + + block_05BD: + /* global_address global_id=0x3C */ + suspend; + /* global_address global_id=0x3C */ + suspend; + /* global_address global_id=0x3C */ + suspend; + /* global_address global_id=0x3C */ + suspend; + goto block_06EC; + + block_0656: + /* global_address global_id=0x3C */ + suspend; + /* global_address global_id=0x3C */ + suspend; + /* global_address global_id=0x3C */ + suspend; + /* global_address global_id=0x3C */ + suspend; + + block_06EC: + /* global_address global_id=0x3C */ + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + spawn class_0A06_slot_21(pid, 2, door); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */ + + block_0782: + if condition goto block_0790; + + block_0785: + post1 = item; + /* loopnext */ + goto block_0782; + + block_0790: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */ + + block_07B2: + if condition goto block_07C0; + + block_07B5: + post2 = item; + /* loopnext */ + goto block_07B2; + + block_07C0: + if (post1 && post2) goto block_09BA; + + block_07D3: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + + block_083C: + /* global_address global_id=0x3C */ + if Item.touch(0x00F4) goto block_0878; + + block_084F: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_083C; + + block_0878: + /* global_address global_id=0x3C */ + if dir goto block_094A; + + block_088F: + counter = 5; + + block_0896: + if (counter <= 7) goto block_08F9; + + block_089E: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0896; + + block_08F9: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + goto block_09BA; + + block_094A: + counter = 1; + + block_0951: + if (counter <= 4) goto block_09BA; + + block_0959: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0951; + + block_09BA: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + suspend; + spawn class_0A0C_slot_3C(pid, 0x00000000); + suspend; + /* global_address global_id=0x3C */ + if Item.getType(mapNum) goto block_0A39; + + block_0A32: + + block_0A39: + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */ + + block_0A79: + if condition goto block_0AEB; + + block_0A7C: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + class_0A0C_slot_33(12, item); + /* loopnext */ + goto block_0A79; + + block_0AEB: + if (eggNum != 18) goto block_0B23; + + block_0AFB: + /* global_address global_id=0x3C */ + suspend; + + block_0B23: + suspend; + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */ + + block_0B83: + if condition goto block_0B91; + + block_0B86: + post1 = item; + /* loopnext */ + goto block_0B83; + + block_0B91: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */ + + block_0BB3: + if condition goto block_0BC1; + + block_0BB6: + post2 = item; + /* loopnext */ + goto block_0BB3; + + block_0BC1: + if (post1 && post2) goto block_0D87; + + block_0BD4: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + + block_0BEF: + /* global_address global_id=0x3C */ + if Item.touch(0x00F2) goto block_0C2B; + + block_0C02: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0BEF; + + block_0C2B: + /* global_address global_id=0x3C */ + if dir goto block_0CC9; + + block_0C42: + counter = 1; + + block_0C63: + if (counter <= 4) goto block_0CC6; + + block_0C6B: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0C63; + + block_0CC6: + goto block_0D39; + + block_0CC9: + counter = 0; + + block_0CD0: + if (counter <= 3) goto block_0D39; + + block_0CD8: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0CD0; + + block_0D39: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + + block_0D87: + spawn class_0A0C_slot_32(pid, 120, 0x00000000); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */ + + block_0DCD: + if condition goto block_0DFE; + + block_0DD0: + door = item; + spawn class_0A06_slot_21(pid, 1, door); + suspend; + /* loopnext */ + goto block_0DCD; + + block_0DFE: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + /* global_address global_id=0x3C */ + + block_0E9C: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ELEVPLAT/slot_05_hit.txt b/USECODE/EUSECODE_extracted/pseudocode/ELEVPLAT/slot_05_hit.txt new file mode 100644 index 0000000..56ef458 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ELEVPLAT/slot_05_hit.txt @@ -0,0 +1,29 @@ +function elevplat_hit() /* entry=50 class_id=0x012F slot=0x05 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + r, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + cargo; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020B, *(arg_06)); + process_exclude(); + if (r != 1) goto block_015E; + + block_00F9: + cargo = r; + if (cargo < 0x0100) goto block_015E; + + block_010C: + if (!Kernel.resetRef(cargo)) goto block_015E; + + block_011F: + if (Item.getZ(cargo) < Item.getZ(arg_06)) goto block_015E; + + block_013B: + + block_015E: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ELEVPLAT/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/ELEVPLAT/slot_0A_equip.txt new file mode 100644 index 0000000..5f01c56 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ELEVPLAT/slot_0A_equip.txt @@ -0,0 +1,95 @@ +function elevplat_equip() /* entry=50 class_id=0x012F slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 0x1000) goto block_01B9; + + block_01B3: + goto block_0375; + + block_01B9: + /* pop_global global_id=0x0 size=0x1 */ + local_02 = Item.getZ(arg_06); + if ((arg_0A >= 0x00A0) && (arg_0A < 0x00FF)) goto block_01FA; + + block_01E6: + /* pop_global global_id=0x0 size=0x1 */ + arg_0A = (arg_0A - 0x00A0); + + block_01FA: + if (arg_0A != 0x00FF) goto block_025C; + + block_0206: + local_04 = Intrinsic009C(arg_06); + if ((local_04 != 88) || ((local_02 + 1) <= local_04)) goto block_023B; + + block_022B: + goto block_0259; + + block_023B: + if (local_04 < 88) goto block_0259; + + block_0246: + goto block_0259; + + block_0259: + goto block_02DF; + + block_025C: + if arg_0A goto block_02C5; + + block_0264: + if (local_02 < arg_0A) goto block_028C; + + block_026F: + goto block_02C2; + + block_028C: + if (local_02 > arg_0A) goto block_02B4; + + block_0297: + goto block_02C2; + + block_02B4: + if (local_02 != arg_0A) goto block_02C2; + + block_02BF: + goto block_02C2; + + block_02C2: + goto block_02DF; + + block_02C5: + + block_02DF: + spawn class_0A09_slot_20(pid, arg_06); + suspend; + if (global[0x0000] != 1) goto block_0375; + + block_0311: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFA string_bytes=0x6 loop_type=0x6 */ + + block_032C: + if condition goto block_0373; + + block_032F: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + /* loopnext */ + goto block_032C; + + block_0373: + + block_0375: + return; + + block_0390: + arg_7A = local_02; + /* end */ + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ELEVPLAT/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/ELEVPLAT/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..4dfaaed --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ELEVPLAT/slot_0F_enterFastArea.txt @@ -0,0 +1,14 @@ +function elevplat_enterFastArea() /* entry=50 class_id=0x012F slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (Intrinsic007E(arg_06) != 101) goto block_0435; + + block_040A: + suspend; + + block_0435: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ELEVPLAT/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/ELEVPLAT/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..0b5da7f --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ELEVPLAT/slot_10_leaveFastArea.txt @@ -0,0 +1,9 @@ +function elevplat_leaveFastArea() /* entry=50 class_id=0x012F slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + /* bit_not */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ELITE/slot_0E_calledFromAnim.txt b/USECODE/EUSECODE_extracted/pseudocode/ELITE/slot_0E_calledFromAnim.txt new file mode 100644 index 0000000..5532d93 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ELITE/slot_0E_calledFromAnim.txt @@ -0,0 +1,15 @@ +function elite_calledFromAnim() /* entry=275 class_id=0x04D1 slot=0x0E */ +{ + var + referent, /* [BP+00h] type=0x69 */ + n; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x021A, *(arg_06)); + process_exclude(); + n = *(arg_06); + set_info(1, 0); + spawn class_0A1C_slot_20(Item.getQLo(arg_06), *(arg_06), arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ELYDESK/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/ELYDESK/slot_01_use.txt new file mode 100644 index 0000000..dc77ee8 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ELYDESK/slot_01_use.txt @@ -0,0 +1,127 @@ +function elydesk_use() /* entry=246 class_id=0x044F slot=0x01 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + item; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + class_0A0C_slot_33(0x021B, *(arg_06)); + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + + block_0125: + if (Item.getFrame(arg_06) < 5) goto block_017A; + + block_013A: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + goto block_0125; + + block_017A: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + if (global[0x001F] != 2) goto block_01DA; + + block_01AA: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_0370; + + block_01DA: + if (global[0x001F] != 3) goto block_0214; + + block_01E4: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_0370; + + block_0214: + if (global[0x001F] != 4) goto block_024E; + + block_021E: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_0370; + + block_024E: + if (global[0x001F] != 5) goto block_0288; + + block_0258: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_0370; + + block_0288: + if (global[0x001F] != 6) goto block_02C2; + + block_0292: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_0370; + + block_02C2: + if (global[0x001F] != 7) goto block_02FC; + + block_02CC: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_0370; + + block_02FC: + if (global[0x001F] != 8) goto block_0336; + + block_0306: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_0370; + + block_0336: + if (global[0x001F] != 9) goto block_0370; + + block_0340: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_0370; + + block_0370: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_038E: + if condition goto block_03B1; + + block_0391: + /* loopnext */ + goto block_038E; + + block_03B1: + counter = 0; + + block_03BA: + if (counter <= 5) goto block_0405; + + block_03C2: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_03BA; + + block_0405: + spawn class_044F_enterFastArea(arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ELYDESK/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/ELYDESK/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..454af30 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ELYDESK/slot_0F_enterFastArea.txt @@ -0,0 +1,86 @@ +function elydesk_enterFastArea() /* entry=246 class_id=0x044F slot=0x0F */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (Item.getFrame(arg_06) != 10) goto block_0478; + + block_0472: + goto block_0658; + + block_0478: + suspend; + class_0A0C_slot_20(pid, 100); + spawn class_0A0C_slot_32((retval + 60), 0x00000000); + suspend; + if (!Item.getFrame(arg_06)) goto block_0518; + + block_04C9: + counter = 0; + + block_04D0: + if (counter <= 5) goto block_0518; + + block_04D8: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_04D0; + + block_0518: + class_0A0C_slot_20(100); + if (retval > 50) goto block_0583; + + block_052E: + counter = 0; + + block_0535: + if (counter <= 5) goto block_0580; + + block_053D: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0535; + + block_0580: + goto block_0655; + + block_0583: + counter = 6; + + block_058A: + if (counter <= 9) goto block_05D2; + + block_0592: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_058A; + + block_05D2: + class_0A0C_slot_20(pid, 60); + spawn class_0A0C_slot_32((retval + 60), 0x00000000); + suspend; + counter = 0; + + block_060A: + if (counter <= 3) goto block_0655; + + block_0612: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_060A; + + block_0655: + goto block_0478; + + block_0658: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ELYDESK/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/ELYDESK/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..edb6ea6 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ELYDESK/slot_10_leaveFastArea.txt @@ -0,0 +1,9 @@ +function elydesk_leaveFastArea() /* entry=246 class_id=0x044F slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + class_0A0C_slot_33(0x021B, *(arg_06)); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ENERGY/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/ENERGY/slot_01_use.txt new file mode 100644 index 0000000..2bebd87 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ENERGY/slot_01_use.txt @@ -0,0 +1,74 @@ +function energy_use() /* entry=329 class_id=0x0582 slot=0x01 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + maxLimit, /* [BP-02h] type=0x69 */ + fule, /* [BP-04h] type=0x69 */ + item; /* [BP-06h] type=0x24 */ + + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + set_info(0x00F0, 0); + /* global_address global_id=0x3C */ + if (Intrinsic0081() != 0x09C4) goto block_0110; + + block_0105: + fule = 0x03E8; + goto block_0157; + + block_0110: + /* global_address global_id=0x3C */ + if (Intrinsic0081() != 0x1388) goto block_012C; + + block_0121: + fule = 0x07D0; + goto block_0157; + + block_012C: + /* global_address global_id=0x3C */ + if (Intrinsic0081() != 0x2710) goto block_0148; + + block_013D: + fule = 0x0BB8; + goto block_0157; + + block_0148: + /* global_address global_id=0x3C */ + + block_0157: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + if Intrinsic0081(Intrinsic0082()) goto block_01D7; + + block_0175: + spawn class_0A0C_slot_21(pid, 0x00B0, 0x00000000); + suspend; + goto block_02AC; + + block_01D7: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + if Intrinsic0081((Intrinsic0082() + fule)) goto block_0242; + + block_01F8: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + spawn class_0A0C_slot_21(pid, 0x010D, 0x00000000); + suspend; + goto block_0286; + + block_0242: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + spawn class_0A0C_slot_21(pid, 0x010D, 0x00000000); + suspend; + + block_0286: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + + block_02AC: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ENFORCER/slot_0E_calledFromAnim.txt b/USECODE/EUSECODE_extracted/pseudocode/ENFORCER/slot_0E_calledFromAnim.txt new file mode 100644 index 0000000..f8e8d55 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ENFORCER/slot_0E_calledFromAnim.txt @@ -0,0 +1,9 @@ +function enforcer_calledFromAnim() /* entry=87 class_id=0x01B4 slot=0x0E */ +{ + entry: + set_info(0x021A, *(arg_06)); + process_exclude(); + spawn class_0A1C_slot_20(Item.getQLo(arg_06), *(arg_06), arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ESPACE/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/ESPACE/slot_0A_equip.txt new file mode 100644 index 0000000..88e8541 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ESPACE/slot_0A_equip.txt @@ -0,0 +1,10 @@ +function espace_equip() /* entry=179 class_id=0x0336 slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + spawn class_0A03_slot_20(pid, arg_0A, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ESPACE/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/ESPACE/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..dc3fa9d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ESPACE/slot_0F_enterFastArea.txt @@ -0,0 +1,17 @@ +function espace_enterFastArea() /* entry=179 class_id=0x0336 slot=0x0F */ +{ + var + referent, /* [BP+00h] type=0x69 */ + x, /* [BP-02h] type=0x69 */ + y; /* [BP-04h] type=0x69 */ + + set_info(0x021B, *(arg_06)); + process_exclude(); + if ((Item.getFrame(arg_06) != 1)) { + x = Intrinsic0084(arg_06); + if (x == 0) { + } + return; + } + return; +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ESPACE2/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/ESPACE2/slot_0A_equip.txt new file mode 100644 index 0000000..54625bb --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ESPACE2/slot_0A_equip.txt @@ -0,0 +1,10 @@ +function espace2_equip() /* entry=138 class_id=0x0290 slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + spawn class_0A03_slot_20(pid, arg_0A, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ESPACE2/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/ESPACE2/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..d664a15 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ESPACE2/slot_0F_enterFastArea.txt @@ -0,0 +1,17 @@ +function espace2_enterFastArea() /* entry=138 class_id=0x0290 slot=0x0F */ +{ + var + referent, /* [BP+00h] type=0x69 */ + x, /* [BP-02h] type=0x69 */ + y; /* [BP-04h] type=0x69 */ + + set_info(0x021B, *(arg_06)); + process_exclude(); + if ((Item.getFrame(arg_06) != 1)) { + x = Intrinsic0084(arg_06); + if (x == 0) { + } + return; + } + return; +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ETWALLEW/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/ETWALLEW/slot_0B_unequip.txt new file mode 100644 index 0000000..a716365 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ETWALLEW/slot_0B_unequip.txt @@ -0,0 +1,8 @@ +function etwallew_unequip() /* entry=323 class_id=0x0565 slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ETWALLEW/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/ETWALLEW/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..97d1057 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ETWALLEW/slot_0F_enterFastArea.txt @@ -0,0 +1,8 @@ +function etwallew_enterFastArea() /* entry=323 class_id=0x0565 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ETWALLEW/slot_13_avatarStoleSomething.txt b/USECODE/EUSECODE_extracted/pseudocode/ETWALLEW/slot_13_avatarStoleSomething.txt new file mode 100644 index 0000000..8b7ce80 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ETWALLEW/slot_13_avatarStoleSomething.txt @@ -0,0 +1,8 @@ +function etwallew_avatarStoleSomething() /* entry=323 class_id=0x0565 slot=0x13 */ +{ + entry: + set_info(0x022E, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ETWALLNS/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/ETWALLNS/slot_0B_unequip.txt new file mode 100644 index 0000000..69a68bc --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ETWALLNS/slot_0B_unequip.txt @@ -0,0 +1,8 @@ +function etwallns_unequip() /* entry=322 class_id=0x0564 slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ETWALLNS/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/ETWALLNS/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..4125975 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ETWALLNS/slot_0F_enterFastArea.txt @@ -0,0 +1,8 @@ +function etwallns_enterFastArea() /* entry=322 class_id=0x0564 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ETWALLNS/slot_13_avatarStoleSomething.txt b/USECODE/EUSECODE_extracted/pseudocode/ETWALLNS/slot_13_avatarStoleSomething.txt new file mode 100644 index 0000000..fc13bb8 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ETWALLNS/slot_13_avatarStoleSomething.txt @@ -0,0 +1,8 @@ +function etwallns_avatarStoleSomething() /* entry=322 class_id=0x0564 slot=0x13 */ +{ + entry: + set_info(0x022E, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/EVENT/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/EVENT/slot_0A_equip.txt new file mode 100644 index 0000000..f211e2e --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/EVENT/slot_0A_equip.txt @@ -0,0 +1,1181 @@ +function event_equip() /* entry=190 class_id=0x0361 slot=0x0A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + event, /* [BP+0Ah] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + source, /* [BP-04h] type=0x24 */ + dest, /* [BP-06h] type=0x24 */ + door, /* [BP-08h] type=0x24 */ + wp, /* [BP-0Dh] type=0x24 */ + counter, /* [BP-0Fh] type=0x69 */ + counter2, /* [BP-11h] type=0x69 */ + n, /* [BP-13h] type=0x24 */ + link, /* [BP-15h] type=0x69 */ + cx, /* [BP-17h] type=0x69 */ + cy, /* [BP-19h] type=0x69 */ + ex, /* [BP-1Bh] type=0x69 */ + ey, /* [BP-1Dh] type=0x69 */ + time, /* [BP-1Fh] type=0x69 */ + op, /* [BP-21h] type=0x69 */ + opp, /* [BP-23h] type=0x69 */ + post1, /* [BP-25h] type=0x24 */ + post2, /* [BP-27h] type=0x24 */ + floor, /* [BP-29h] type=0x24 */ + dir, /* [BP-2Bh] type=0x69 */ + qHi, /* [BP-2Dh] type=0x69 */ + flicMan; /* [BP-2Fh] type=0x24 */ + + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + link = Intrinsic0084(arg_06); + if (event != 0) goto block_012B; + + block_0101: + /* global_address global_id=0x3C */ + goto block_1FCA; + + block_012B: + if (event != 1) goto block_026F; + + block_0133: + /* global_address global_id=0x3C */ + if Intrinsic0033() goto block_016C; + + block_0143: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0133; + + block_016C: + /* global_address global_id=0x3C */ + cx = teleportToEgg(); + cy = Intrinsic0087(); + ex = Intrinsic0013(arg_06); + ey = Item.legal_create(arg_06); + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + spawn class_0A18_slot_20(pid, (0 + 0x0080), *(arg_06), arg_06); + suspend; + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + spawn class_0A18_slot_20(pid, (1 + 0x0080), *(arg_06), arg_06); + suspend; + /* global_address global_id=0x3C */ + goto block_1FCA; + + block_026F: + if (event != 2) goto block_0345; + + block_0277: + /* global_address global_id=0x3C */ + if Intrinsic0033() goto block_02B0; + + block_0287: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0277; + + block_02B0: + spawn class_0A0C_slot_3D(pid, Item.legal_create(arg_06), Intrinsic0013(arg_06), 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + spawn class_0A18_slot_20(pid, (0 + 0x0080), *(arg_06), arg_06); + suspend; + goto block_1FCA; + + block_0345: + if (event != 3) goto block_03A8; + + block_034D: + spawn class_0A0C_slot_3E(pid, 0x00000000); + suspend; + spawn class_0A18_slot_20(pid, (1 + 0x0080), *(arg_06), arg_06); + suspend; + goto block_1FCA; + + block_03A8: + if (event != 5) goto block_03C2; + + block_03B0: + goto block_1FCA; + + block_03C2: + if (event != 6) goto block_03DC; + + block_03CA: + goto block_1FCA; + + block_03DC: + if (event != 7) goto block_03F6; + + block_03E4: + goto block_1FCA; + + block_03F6: + if (event != 8) goto block_049B; + + block_03FE: + counter = Intrinsic009C(arg_06); + if (counter != 0) goto block_0445; + + block_0417: + spawn class_0A18_slot_20(pid, (0 + 0x0080), *(arg_06), arg_06); + suspend; + goto block_0498; + + block_0445: + counter2 = Intrinsic0084(arg_06); + spawn class_0A18_slot_20(pid, (0 + 0x0080), *(arg_06), arg_06); + suspend; + + block_0498: + goto block_1FCA; + + block_049B: + if (event != 9) goto block_0532; + + block_04A3: + counter = Intrinsic0084(arg_06); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_04CE: + if condition goto block_052D; + + block_04D1: + if (((counter != Intrinsic0084(item)) && (Item.getMapNum(item) != 0)) && (*(arg_06) != item)) goto block_0529; + + block_0501: + + block_0529: + /* loopnext */ + goto block_04CE; + + block_052D: + goto block_1FCA; + + block_0532: + if (event != 10) goto block_0677; + + block_053A: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0558: + if condition goto block_0591; + + block_055B: + if (Intrinsic0084(arg_06) != Intrinsic0084(item)) goto block_058D; + + block_0574: + if (Item.getFrame(item) != 0) goto block_058D; + + block_0586: + source = item; + + block_058D: + /* loopnext */ + goto block_0558; + + block_0591: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_05B1: + if condition goto block_05ED; + + block_05B4: + if (Intrinsic0084(arg_06) != Intrinsic0084(item)) goto block_05E9; + + block_05D0: + if (Item.getFrame(item) != 1) goto block_05E9; + + block_05E2: + dest = item; + + block_05E9: + /* loopnext */ + goto block_05B1; + + block_05ED: + if (source && dest) goto block_0674; + + block_0600: + wp = Intrinsic0013(dest); + local_0B = Item.legal_create(dest); + local_09 = Item.getZ(dest); + + block_0674: + goto block_1FCA; + + block_0677: + if (event != 15) goto block_06B6; + + block_067F: + /* global_address global_id=0x3C */ + goto block_1FCA; + + block_06B6: + if (event != 16) goto block_06F7; + + block_06BE: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + goto block_1FCA; + + block_06F7: + if (event != 22) goto block_079D; + + block_06FF: + cx = teleportToEgg(); + cy = Intrinsic0087(); + /* global_address global_id=0x3C */ + + block_0747: + if Item.touch(54, arg_06) goto block_0781; + + block_0758: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0747; + + block_0781: + /* global_address global_id=0x3C */ + goto block_1FCA; + + block_079D: + if (event != 40) goto block_082B; + + block_07A5: + /* global_address global_id=0x3C */ + if (!Kernel.resetRef()) goto block_0828; + + block_07B9: + + block_07C4: + /* global_address global_id=0x3C */ + if Intrinsic0033() goto block_07FA; + + block_07D4: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_07C4; + + block_07FA: + /* global_address global_id=0x3C */ + suspend; + + block_0828: + goto block_1FCA; + + block_082B: + if (event != 41) goto block_0ACB; + + block_0833: + /* global_address global_id=0x3C */ + if (Kernel.resetRef((global[0x0029] != 1)) != 1) goto block_0857; + + block_0851: + goto block_1FCA; + + block_0857: + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + /* global_address global_id=0x3C */ + spawn class_0A11_slot_22(pid, 3, 0); + suspend; + /* global_address global_id=0x3C */ + spawn class_0A11_slot_22(pid, 4, 14); + suspend; + /* global_address global_id=0x3C */ + spawn class_0A11_slot_22(pid, 3, 12); + suspend; + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + /* pop_global global_id=0x29 size=0x1 */ + /* loopscr value_u8=0x24 */ + /* loop current_var=0xF8 string_bytes=0x1 loop_type=0x2 */ + + block_0948: + if condition goto block_0983; + + block_094B: + if (Intrinsic0084(door) != 5) goto block_097F; + + block_0960: + spawn class_0A06_slot_20(pid, door); + suspend; + + block_097F: + /* loopnext */ + goto block_0948; + + block_0983: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF8 string_bytes=0x6 loop_type=0x2 */ + + block_09A3: + if condition goto block_09B1; + + block_09A6: + n = door; + /* loopnext */ + goto block_09A3; + + block_09B1: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + spawn class_0A0C_slot_32(pid, 120, 0x00000000); + suspend; + + block_0A38: + if 1 goto block_0AC8; + + block_0A40: + /* global_address global_id=0x3C */ + op = Kernel.resetRef(); + opp = Kernel.resetRef(n); + if ((op != 1) || (opp != 1)) goto block_0A77; + + block_0A71: + goto block_1FCA; + + block_0A77: + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + spawn class_0A0C_slot_32(pid, 0x012C, 0x00000000); + suspend; + goto block_0A38; + + block_0AC8: + goto block_1FCA; + + block_0ACB: + if (event != 45) goto block_0C57; + + block_0AD3: + time = Intrinsic00BD(arg_06); + + block_0AE1: + if 1 goto block_0C54; + + block_0AE9: + counter = 0; + class_0A0C_slot_29((Intrinsic009C(arg_06) != 0), *(arg_06), global[0x003C]); + if (retval > 50) goto block_0B1F; + + block_0B19: + goto block_1FCA; + + block_0B1F: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0B3C: + if condition goto block_0B5C; + + block_0B3F: + if Item.isNpc(item) goto block_0B58; + + block_0B4E: + counter = (1 + counter); + + block_0B58: + /* loopnext */ + goto block_0B3C; + + block_0B5C: + if (counter <= 4) goto block_0C2B; + + block_0B6F: + spawn class_0A18_slot_20(pid, (0 + 0x0080), *(arg_06), arg_06); + suspend; + spawn class_0A0C_slot_32(pid, time, 0x00000000); + suspend; + spawn class_0A18_slot_20(pid, (1 + 0x0080), *(arg_06), arg_06); + suspend; + spawn class_0A0C_slot_32(pid, time, 0x00000000); + suspend; + goto block_0C51; + + block_0C2B: + spawn class_0A0C_slot_32(pid, 120, 0x00000000); + suspend; + + block_0C51: + goto block_0AE1; + + block_0C54: + goto block_1FCA; + + block_0C57: + if (event != 46) goto block_0DF6; + + block_0C5F: + time = Intrinsic00BD(arg_06); + + block_0C6D: + if 1 goto block_0DF3; + + block_0C75: + counter = 0; + class_0A0C_slot_29((Intrinsic009C(arg_06) != 0), *(arg_06), global[0x003C]); + if ((retval > 50) || (Intrinsic0007(arg_06) != 1)) goto block_0CBE; + + block_0CB8: + goto block_1FCA; + + block_0CBE: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0CDB: + if condition goto block_0CFB; + + block_0CDE: + if (item < 0x00FF) goto block_0CF7; + + block_0CED: + counter = (1 + counter); + + block_0CF7: + /* loopnext */ + goto block_0CDB; + + block_0CFB: + if (counter <= 4) goto block_0DCA; + + block_0D0E: + spawn class_0A18_slot_20(pid, (0 + 0x0080), *(arg_06), arg_06); + suspend; + spawn class_0A0C_slot_32(pid, time, 0x00000000); + suspend; + spawn class_0A18_slot_20(pid, (1 + 0x0080), *(arg_06), arg_06); + suspend; + spawn class_0A0C_slot_32(pid, time, 0x00000000); + suspend; + goto block_0DF0; + + block_0DCA: + spawn class_0A0C_slot_32(pid, 120, 0x00000000); + suspend; + + block_0DF0: + goto block_0C6D; + + block_0DF3: + goto block_1FCA; + + block_0DF6: + if (event != 47) goto block_1064; + + block_0DFE: + time = Intrinsic00BD(arg_06); + counter2 = Intrinsic009C(arg_06); + + block_0E1A: + if 1 goto block_1061; + + block_0E22: + if (Intrinsic009C(arg_06) != 1) goto block_0F1B; + + block_0E37: + counter = 1; + + block_0E3E: + if (counter <= counter2) goto block_0F0B; + + block_0E49: + spawn class_0A18_slot_20(pid, (0 + 0x0080), *(arg_06), arg_06); + suspend; + spawn class_0A0C_slot_32(pid, (time * 3), 0x00000000); + suspend; + spawn class_0A18_slot_20(pid, (1 + 0x0080), *(arg_06), arg_06); + suspend; + spawn class_0A0C_slot_32(pid, (time * 3), 0x00000000); + suspend; + counter = (1 + counter); + goto block_0E3E; + + block_0F0B: + goto block_105E; + + block_0F1B: + if (Intrinsic009C(arg_06) > 1) goto block_0FDB; + + block_0F30: + counter = 1; + + block_0F37: + if (counter <= counter2) goto block_0FD8; + + block_0F42: + spawn class_0A18_slot_20(pid, (0 + 0x0080), *(arg_06), arg_06); + suspend; + spawn class_0A0C_slot_32(pid, time, 0x00000000); + suspend; + spawn class_0A18_slot_20(pid, (1 + 0x0080), *(arg_06), arg_06); + suspend; + counter = (1 + counter); + goto block_0F37; + + block_0FD8: + goto block_105E; + + block_0FDB: + counter = 1; + + block_0FE2: + if (counter <= counter2) goto block_1058; + + block_0FED: + spawn class_0A18_slot_20(pid, (0 + 0x0080), *(arg_06), arg_06); + suspend; + spawn class_0A0C_slot_32(pid, time, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0FE2; + + block_1058: + goto block_1FCA; + + block_105E: + goto block_0E1A; + + block_1061: + goto block_1FCA; + + block_1064: + if (event != 48) goto block_119B; + + block_106C: + time = Intrinsic00BD(arg_06); + counter2 = Intrinsic009C(arg_06); + counter = 1; + + block_108F: + if (counter <= counter2) goto block_1105; + + block_109A: + spawn class_0A18_slot_20(pid, (0 + 0x0080), *(arg_06), arg_06); + suspend; + spawn class_0A0C_slot_32(pid, time, 0x00000000); + suspend; + counter = (1 + counter); + goto block_108F; + + block_1105: + counter = 1; + + block_110C: + if (counter <= counter2) goto block_1185; + + block_1117: + spawn class_0A18_slot_20(pid, (1 + 0x0080), *(arg_06), arg_06); + suspend; + spawn class_0A0C_slot_32(pid, time, 0x00000000); + suspend; + counter = (1 + counter); + goto block_110C; + + block_1185: + goto block_1FCA; + + block_1198: + goto block_1FCA; + + block_119B: + if (event != 49) goto block_130A; + + block_11A3: + time = Intrinsic00BD(arg_06); + counter2 = Intrinsic009C(arg_06); + + block_11BF: + if 1 goto block_1307; + + block_11C7: + if Intrinsic009C(arg_06) goto block_1281; + + block_11D6: + counter = 1; + + block_11DD: + if (counter <= counter2) goto block_127E; + + block_11E8: + spawn class_0A18_slot_20(pid, (0 + 0x0080), *(arg_06), arg_06); + suspend; + spawn class_0A0C_slot_32(pid, time, 0x00000000); + suspend; + spawn class_0A18_slot_20(pid, (1 + 0x0080), *(arg_06), arg_06); + suspend; + counter = (1 + counter); + goto block_11DD; + + block_127E: + goto block_1304; + + block_1281: + counter = 1; + + block_1288: + if (counter <= counter2) goto block_12FE; + + block_1293: + spawn class_0A18_slot_20(pid, (0 + 0x0080), *(arg_06), arg_06); + suspend; + spawn class_0A0C_slot_32(pid, time, 0x00000000); + suspend; + counter = (1 + counter); + goto block_1288; + + block_12FE: + goto block_1FCA; + + block_1304: + goto block_11BF; + + block_1307: + goto block_1FCA; + + block_130A: + if (event != 50) goto block_1367; + + block_1312: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xF8 string_bytes=0x1 loop_type=0x2 */ + + block_1327: + if condition goto block_1362; + + block_132A: + if (Intrinsic0084(door) != 100) goto block_135E; + + block_133F: + spawn class_0A06_slot_20(pid, door); + suspend; + + block_135E: + /* loopnext */ + goto block_1327; + + block_1362: + goto block_1FCA; + + block_1367: + if (event != 51) goto block_166D; + + block_136F: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_138D: + if condition goto block_13A9; + + block_1390: + dir = Intrinsic009C(item); + floor = item; + /* loopnext */ + goto block_138D; + + block_13A9: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_13C9: + if condition goto block_13D7; + + block_13CC: + post1 = item; + /* loopnext */ + goto block_13C9; + + block_13D7: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_13F7: + if condition goto block_1405; + + block_13FA: + post2 = item; + /* loopnext */ + goto block_13F7; + + block_1405: + if (post1 && post2) goto block_15A9; + + block_1418: + /* global_address global_id=0x3C */ + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + /* global_address global_id=0x3C */ + if dir goto block_14EB; + + block_1464: + counter = 1; + + block_1485: + if (counter <= 4) goto block_14E8; + + block_148D: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + counter = (1 + counter); + goto block_1485; + + block_14E8: + goto block_155B; + + block_14EB: + counter = 0; + + block_14F2: + if (counter <= 3) goto block_155B; + + block_14FA: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + counter = (1 + counter); + goto block_14F2; + + block_155B: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + + block_15A9: + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_1614: + if condition goto block_1641; + + block_1617: + door = item; + spawn class_0A06_slot_20(pid, door); + suspend; + /* loopnext */ + goto block_1614; + + block_1641: + spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); + suspend; + goto block_1FCA; + + block_166D: + if (event != 52) goto block_1747; + + block_1675: + time = Intrinsic00BD(arg_06); + counter2 = Intrinsic009C(arg_06); + + block_1691: + if 1 goto block_1744; + + block_1699: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xED string_bytes=0x6 loop_type=0x2 */ + + block_16B6: + if condition goto block_1739; + + block_16B9: + if Item.isNpc(n) goto block_170F; + + block_16C8: + if (Item.getQLo(n) != Intrinsic0084(arg_06)) goto block_170F; + + block_16E1: + if (!Kernel.resetRef(n)) goto block_170F; + + block_16F4: + + block_170F: + spawn class_0A0C_slot_32(pid, time, 0x00000000); + suspend; + /* loopnext */ + goto block_16B6; + + block_1739: + goto block_1FCA; + + block_1741: + goto block_1691; + + block_1744: + goto block_1FCA; + + block_1747: + if (event != 53) goto block_1807; + + block_174F: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xED string_bytes=0x6 loop_type=0x2 */ + + block_176D: + if condition goto block_1802; + + block_1770: + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + /* loopnext */ + goto block_176D; + + block_1802: + goto block_1FCA; + + block_1807: + if (event != 54) goto block_185E; + + block_180F: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xED string_bytes=0x6 loop_type=0x2 */ + + block_182D: + if condition goto block_1859; + + block_1830: + /* loopnext */ + goto block_182D; + + block_1859: + goto block_1FCA; + + block_185E: + if (event != 55) goto block_196E; + + block_1866: + if (!global[0x0038]) goto block_1877; + + block_1871: + goto block_1FCA; + + block_1877: + time = Intrinsic00BD(arg_06); + + block_1885: + if 1 goto block_196B; + + block_188D: + counter = 0; + spawn class_0A18_slot_20(pid, (0 + 0x0080), *(arg_06), arg_06); + suspend; + spawn class_0A0C_slot_32(pid, time, 0x00000000); + suspend; + spawn class_0A18_slot_20(pid, (1 + 0x0080), *(arg_06), arg_06); + suspend; + spawn class_0A0C_slot_32(pid, time, 0x00000000); + suspend; + if (Intrinsic009C(arg_06) != 0) goto block_1968; + + block_1962: + goto block_1FCA; + + block_1968: + goto block_1885; + + block_196B: + goto block_1FCA; + + block_196E: + if (event != 75) goto block_19E1; + + block_1976: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_1993: + if condition goto block_19DC; + + block_1996: + if (Intrinsic0084(item) != Intrinsic0084(arg_06)) goto block_19D8; + + block_19B2: + suspend; + + block_19D8: + /* loopnext */ + goto block_1993; + + block_19DC: + goto block_1FCA; + + block_19E1: + if (event != 85) goto block_1B70; + + block_19E9: + time = (Intrinsic008E(arg_06) * 5); + + block_19FA: + if 1 goto block_1B6D; + + block_1A02: + counter = 0; + class_0A0C_slot_29((Intrinsic009C(arg_06) != 0), *(arg_06), global[0x003C]); + if (retval > 50) goto block_1A38; + + block_1A32: + goto block_1FCA; + + block_1A38: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_1A55: + if condition goto block_1A75; + + block_1A58: + if Item.isNpc(item) goto block_1A71; + + block_1A67: + counter = (1 + counter); + + block_1A71: + /* loopnext */ + goto block_1A55; + + block_1A75: + if (counter <= 4) goto block_1B44; + + block_1A88: + spawn class_0A18_slot_20(pid, (0 + 0x0080), *(arg_06), arg_06); + suspend; + spawn class_0A0C_slot_32(pid, time, 0x00000000); + suspend; + spawn class_0A18_slot_20(pid, (1 + 0x0080), *(arg_06), arg_06); + suspend; + spawn class_0A0C_slot_32(pid, time, 0x00000000); + suspend; + goto block_1B6A; + + block_1B44: + spawn class_0A0C_slot_32(pid, 120, 0x00000000); + suspend; + + block_1B6A: + goto block_19FA; + + block_1B6D: + goto block_1FCA; + + block_1B70: + if (event != 88) goto block_1BFB; + + block_1B78: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_1FCA; + + block_1BFB: + if (event != 97) goto block_1C8E; + + block_1C03: + /* global_address global_id=0x3C */ + + block_1C2A: + if (!Item.enterFastArea()) goto block_1C62; + + block_1C39: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_1C2A; + + block_1C62: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + goto block_1FCA; + + block_1C8E: + if (event != 98) goto block_1CCD; + + block_1C96: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_1CB4: + if condition goto block_1CC8; + + block_1CB7: + /* loopnext */ + goto block_1CB4; + + block_1CC8: + goto block_1FCA; + + block_1CCD: + if (event != 99) goto block_1D0C; + + block_1CD5: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_1CF3: + if condition goto block_1D07; + + block_1CF6: + /* loopnext */ + goto block_1CF3; + + block_1D07: + goto block_1FCA; + + block_1D0C: + if (event != 100) goto block_1D64; + + block_1D14: + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + suspend; + goto block_1FCA; + + block_1D64: + if (event != 0x00C8) goto block_1E0E; + + block_1D6D: + if (global[0x0022] != 0) goto block_1E0B; + + block_1D80: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + spawn class_0A0C_slot_32(pid, 20, 0x00000000); + suspend; + spawn class_0A0C_slot_26(pid, "3h", 0x00000000); + /* free_stack_string value_u8=0x0 target=[SP+00h] */ + suspend; + /* pop_global global_id=0x22 size=0x1 */ + + block_1E0B: + goto block_1FCA; + + block_1E0E: + if (event != 0x00C9) goto block_1E7B; + + block_1E17: + qHi = Intrinsic009C(arg_06); + if (qHi < 4) goto block_1E4D; + + block_1E33: + qHi = (1 + qHi); + goto block_1E78; + + block_1E4D: + spawn class_0A18_slot_20(pid, (1 + 0x0080), *(arg_06), arg_06); + suspend; + + block_1E78: + goto block_1FCA; + + block_1E7B: + if (event != 0x00D4) goto block_1EF6; + + block_1E84: + /* pop_global global_id=0x2C size=0x1 */ + spawn class_0A0C_slot_32(1, pid, 60, 0x00000000); + suspend; + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_1FCA; + + block_1EF6: + if (event != 0x00D5) goto block_1F56; + + block_1EFF: + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_1FCA; + + block_1F56: + if (event != 0x00E6) goto block_1F9F; + + block_1F5F: + qHi = Intrinsic009C(arg_06); + if (qHi < 2) goto block_1F95; + + block_1F7B: + qHi = (1 + qHi); + goto block_1F9C; + + block_1F95: + + block_1F9C: + goto block_1FCA; + + block_1F9F: + if (event != 0x00FA) goto block_1FCA; + + block_1FA8: + spawn class_0A20_slot_20(pid, flicMan); + suspend; + goto block_1FCA; + + block_1FCA: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/EWALLEW/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/EWALLEW/slot_0B_unequip.txt new file mode 100644 index 0000000..7ac203b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/EWALLEW/slot_0B_unequip.txt @@ -0,0 +1,8 @@ +function ewallew_unequip() /* entry=177 class_id=0x0329 slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/EWALLEW/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/EWALLEW/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..9c519c4 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/EWALLEW/slot_0F_enterFastArea.txt @@ -0,0 +1,8 @@ +function ewallew_enterFastArea() /* entry=177 class_id=0x0329 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/EWALLEW/slot_13_avatarStoleSomething.txt b/USECODE/EUSECODE_extracted/pseudocode/EWALLEW/slot_13_avatarStoleSomething.txt new file mode 100644 index 0000000..102f082 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/EWALLEW/slot_13_avatarStoleSomething.txt @@ -0,0 +1,8 @@ +function ewallew_avatarStoleSomething() /* entry=177 class_id=0x0329 slot=0x13 */ +{ + entry: + set_info(0x022E, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/EWALLNS/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/EWALLNS/slot_0B_unequip.txt new file mode 100644 index 0000000..df1a81d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/EWALLNS/slot_0B_unequip.txt @@ -0,0 +1,8 @@ +function ewallns_unequip() /* entry=178 class_id=0x032A slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/EWALLNS/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/EWALLNS/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..f3c2ac5 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/EWALLNS/slot_0F_enterFastArea.txt @@ -0,0 +1,8 @@ +function ewallns_enterFastArea() /* entry=178 class_id=0x032A slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/EWALLNS/slot_13_avatarStoleSomething.txt b/USECODE/EUSECODE_extracted/pseudocode/EWALLNS/slot_13_avatarStoleSomething.txt new file mode 100644 index 0000000..8190b46 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/EWALLNS/slot_13_avatarStoleSomething.txt @@ -0,0 +1,8 @@ +function ewallns_avatarStoleSomething() /* entry=178 class_id=0x032A slot=0x13 */ +{ + entry: + set_info(0x022E, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/EYECAMEW/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/EYECAMEW/slot_06_gotHit.txt new file mode 100644 index 0000000..213c7c4 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/EYECAMEW/slot_06_gotHit.txt @@ -0,0 +1,14 @@ +function eyecamew_gotHit() /* entry=135 class_id=0x0260 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A1A_slot_49(vel, ref, arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/EYECAMEW/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/EYECAMEW/slot_0A_equip.txt new file mode 100644 index 0000000..e7f9a1d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/EYECAMEW/slot_0A_equip.txt @@ -0,0 +1,20 @@ +function eyecamew_equip() /* entry=135 class_id=0x0260 slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (Item.pop() != 0) goto block_0290; + + block_0265: + spawn class_0A1A_slot_24(pid, arg_0A, Item.pop(), arg_06); + suspend; + goto block_02B7; + + block_0290: + spawn class_0A1A_slot_24(pid, arg_0A, global[0x003C], arg_06); + suspend; + + block_02B7: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/EYECAMEW/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/EYECAMEW/slot_0B_unequip.txt new file mode 100644 index 0000000..0dff295 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/EYECAMEW/slot_0B_unequip.txt @@ -0,0 +1,17 @@ +function eyecamew_unequip() /* entry=135 class_id=0x0260 slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 4) goto block_0160; + + block_015A: + goto block_017B; + + block_0160: + spawn class_0A1A_slot_27(arg_06); + + block_017B: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/EYECAMEW/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/EYECAMEW/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..f2e4996 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/EYECAMEW/slot_0F_enterFastArea.txt @@ -0,0 +1,17 @@ +function eyecamew_enterFastArea() /* entry=135 class_id=0x0260 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 4) goto block_0103; + + block_00FD: + goto block_011E; + + block_0103: + spawn class_0A1A_slot_27(arg_06); + + block_011E: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/EYECAMEW/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/EYECAMEW/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..c79dcc9 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/EYECAMEW/slot_10_leaveFastArea.txt @@ -0,0 +1,11 @@ +function eyecamew_leaveFastArea() /* entry=135 class_id=0x0260 slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + /* bit_not */ + class_0A0C_slot_33(1, *(arg_06)); + class_0A0C_slot_33(0x020A, *(arg_06)); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/EYECAMNS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/EYECAMNS/slot_06_gotHit.txt new file mode 100644 index 0000000..f4f7f56 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/EYECAMNS/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function eyecamns_gotHit() /* entry=134 class_id=0x025F slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + /* bit_not */ + spawn class_0A1A_slot_49(vel, ref, arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/EYECAMNS/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/EYECAMNS/slot_0A_equip.txt new file mode 100644 index 0000000..de95a70 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/EYECAMNS/slot_0A_equip.txt @@ -0,0 +1,20 @@ +function eyecamns_equip() /* entry=134 class_id=0x025F slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (Item.pop() != 0) goto block_029F; + + block_0274: + spawn class_0A1A_slot_24(pid, arg_0A, Item.pop(), arg_06); + suspend; + goto block_02C6; + + block_029F: + spawn class_0A1A_slot_24(pid, arg_0A, global[0x003C], arg_06); + suspend; + + block_02C6: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/EYECAMNS/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/EYECAMNS/slot_0B_unequip.txt new file mode 100644 index 0000000..73a9a5c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/EYECAMNS/slot_0B_unequip.txt @@ -0,0 +1,17 @@ +function eyecamns_unequip() /* entry=134 class_id=0x025F slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 4) goto block_0160; + + block_015A: + goto block_017B; + + block_0160: + spawn class_0A1A_slot_27(arg_06); + + block_017B: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/EYECAMNS/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/EYECAMNS/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..dcaccd4 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/EYECAMNS/slot_0F_enterFastArea.txt @@ -0,0 +1,17 @@ +function eyecamns_enterFastArea() /* entry=134 class_id=0x025F slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 4) goto block_0103; + + block_00FD: + goto block_011E; + + block_0103: + spawn class_0A1A_slot_27(arg_06); + + block_011E: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/EYECAMNS/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/EYECAMNS/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..b0ac245 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/EYECAMNS/slot_10_leaveFastArea.txt @@ -0,0 +1,11 @@ +function eyecamns_leaveFastArea() /* entry=134 class_id=0x025F slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + /* bit_not */ + class_0A0C_slot_33(1, *(arg_06)); + class_0A0C_slot_33(0x020A, *(arg_06)); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FADE/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/FADE/slot_0A_equip.txt new file mode 100644 index 0000000..2c84966 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FADE/slot_0A_equip.txt @@ -0,0 +1,41 @@ +function fade_equip() /* entry=294 class_id=0x04FC slot=0x0A */ +{ + set_info(0x0211, *(arg_06)); + process_exclude(); + class_0A1E_slot_23(0x1000, arg_06); + if ((arg_0A != 0)) { + if (arg_0A == 1) { + suspend; + } + else if (arg_0A == 2) { + suspend; + } + else if (arg_0A == 3) { + } + else if (arg_0A == 4) { + } + else if (arg_0A == 5) { + suspend; + } + else if (arg_0A == 6) { + suspend; + } + else if (arg_0A == 7) { + suspend; + } + else if (arg_0A == 8) { + suspend; + } + else if (arg_0A == 9) { + spawn class_04FC_slot_20(arg_06); + class_0A1E_slot_24(0x1000, arg_06); + } + else if (arg_0A == 10) { + /* pop_global global_id=0xA size=0x1 */ + } + class_0A1E_slot_24(0x1000, arg_06); + return; + } + class_0A1E_slot_24(0x1000, arg_06); + return; +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FADE/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/FADE/slot_20_slot_20.txt new file mode 100644 index 0000000..bb9ce7e --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FADE/slot_20_slot_20.txt @@ -0,0 +1,60 @@ +function fade_slot_20() /* entry=294 class_id=0x04FC slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + loop, /* [BP-02h] type=0x69 */ + loop2; /* [BP-04h] type=0x69 */ + + entry: + set_info(0x00F0, *(arg_06)); + if (global[0x000A] != 0) goto block_03EE; + + block_02C6: + /* pop_global global_id=0xA size=0x1 */ + loop = 1; + + block_02D6: + if (loop <= 20) goto block_0382; + + block_02DE: + loop2 = 1; + + block_02E5: + if (loop2 <= 4) goto block_034F; + + block_02ED: + spawn class_0A0C_slot_32(pid, 20, 0x00000000); + suspend; + if (!global[0x000A]) goto block_0342; + + block_031E: + suspend; + goto block_03EE; + + block_0342: + loop2 = (1 + loop2); + goto block_02E5; + + block_034F: + suspend; + loop = (1 + loop); + goto block_02D6; + + block_0382: + /* global_address global_id=0x3C */ + if (!Kernel.resetRef()) goto block_03D9; + + block_0396: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + spawn class_0A0C_slot_32(pid, 0x00C8, 0x00000000); + suspend; + + block_03D9: + /* pop_global global_id=0xA size=0x1 */ + /* global_address global_id=0x3C */ + + block_03EE: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FALLINGC/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/FALLINGC/slot_06_gotHit.txt new file mode 100644 index 0000000..45340d1 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FALLINGC/slot_06_gotHit.txt @@ -0,0 +1,39 @@ +function fallingc_gotHit() /* entry=10 class_id=0x005F slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFE string_bytes=0x1 loop_type=0x6 */ + + block_00FB: + if condition goto block_0180; + + block_00FE: + if (Intrinsic0016(item) != 95) goto block_0124; + + block_0116: + goto block_017C; + + block_0124: + if ((Intrinsic003C(item) != 6) && (Item.isNpc(item) != 0)) goto block_017C; + + block_0149: + spawn class_0A1E_slot_28(pid, 1, 0, item); + suspend; + goto block_017C; + + block_017C: + /* loopnext */ + goto block_00FB; + + block_0180: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FASTSKIL/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/FASTSKIL/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..7e5910c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FASTSKIL/slot_0F_enterFastArea.txt @@ -0,0 +1,64 @@ +function fastskil_enterFastArea() /* entry=49 class_id=0x0120 slot=0x0F */ +{ + var + referent, /* [BP+00h] type=0x69 */ + skill, /* [BP-02h] type=0x69 */ + qLo; /* [BP-04h] type=0x69 */ + + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + if Item.getMapNum(arg_06) goto block_0285; + + block_0120: + skill = Intrinsic0029(); + if (Item.getFrame(arg_06) != 2) goto block_021F; + + block_013F: + qLo = Item.getUnkEggType(arg_06); + if (skill != 1) goto block_0182; + + block_0158: + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + goto block_020C; + + block_0182: + if (skill != 2) goto block_01C7; + + block_018D: + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + goto block_020C; + + block_01C7: + if (skill >= 3) goto block_020C; + + block_01D2: + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + goto block_020C; + + block_020C: + goto block_0292; + + block_021F: + if (skill >= (Item.getFrame(arg_06) + 2)) goto block_025E; + + block_0234: + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + goto block_0285; + + block_025E: + spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); + suspend; + + block_0285: + + block_0292: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FFFLOOR/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/FFFLOOR/slot_06_gotHit.txt new file mode 100644 index 0000000..bfdd843 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FFFLOOR/slot_06_gotHit.txt @@ -0,0 +1,40 @@ +function fffloor_gotHit() /* entry=54 class_id=0x0135 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + n; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + if ((Item.getFrame(arg_06) != 1) || (ref > 0x0100)) goto block_04B8; + + block_04B2: + goto block_0542; + + block_04B8: + n = ref; + + block_04BF: + if Item.isOn(*(arg_06), n) goto block_0542; + + block_04D2: + if (Item.getFrame(arg_06) != 1) goto block_04EA; + + block_04E4: + goto block_0542; + + block_04EA: + class_0A0C_slot_20(pid, 8); + spawn class_0A11_slot_2D(retval, *(arg_06), n); + suspend; + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_04BF; + + block_0542: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FFFLOOR/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/FFFLOOR/slot_0A_equip.txt new file mode 100644 index 0000000..bd14bd2 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FFFLOOR/slot_0A_equip.txt @@ -0,0 +1,157 @@ +function fffloor_equip() /* entry=54 class_id=0x0135 slot=0x0A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + var, /* [BP+0Ah] type=0x69 */ + egg, /* [BP-02h] type=0x24 */ + fffloor; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (var != 0) goto block_0178; + + block_00F6: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0113: + if condition goto block_013F; + + block_0116: + if (Egg.setEggXRange(egg) != 2) goto block_013B; + + block_012E: + + block_013B: + /* loopnext */ + goto block_0113; + + block_013F: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + goto block_0385; + + block_0178: + if (var != 1) goto block_01E0; + + block_0183: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_01A0: + if condition goto block_01CC; + + block_01A3: + if (Egg.setEggXRange(egg) != 2) goto block_01C8; + + block_01BB: + + block_01C8: + /* loopnext */ + goto block_01A0; + + block_01CC: + /* bit_not */ + goto block_0385; + + block_01E0: + if (var != 29) goto block_0248; + + block_01EB: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_022F: + if condition goto block_0243; + + block_0232: + /* loopnext */ + goto block_022F; + + block_0243: + goto block_0385; + + block_0248: + if (var != 30) goto block_032C; + + block_0253: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0296: + if condition goto block_02C2; + + block_0299: + if (Egg.setEggXRange(egg) != 2) goto block_02BE; + + block_02B1: + + block_02BE: + /* loopnext */ + goto block_0296; + + block_02C2: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_0308: + if condition goto block_0327; + + block_030B: + /* loopnext */ + goto block_0308; + + block_0327: + goto block_0385; + + block_032C: + if (var != 31) goto block_0385; + + block_0337: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0354: + if condition goto block_0380; + + block_0357: + if (Egg.setEggXRange(egg) != 2) goto block_037C; + + block_036F: + + block_037C: + /* loopnext */ + goto block_0354; + + block_0380: + goto block_0385; + + block_0385: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FFFLOOR/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/FFFLOOR/slot_0B_unequip.txt new file mode 100644 index 0000000..8ee9862 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FFFLOOR/slot_0B_unequip.txt @@ -0,0 +1,46 @@ +function fffloor_unequip() /* entry=54 class_id=0x0135 slot=0x0B */ +{ + var + referent, /* [BP+00h] type=0x69 */ + var, /* [BP+0Ah] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + if (Item.getFrame(arg_06) != 1) goto block_03E3; + + block_03DD: + goto block_045B; + + block_03E3: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0400: + if condition goto block_0459; + + block_0403: + if (Item.isNpc(item) != 1) goto block_0455; + + block_0415: + if Item.overlaps(item, arg_06) goto block_0455; + + block_0426: + class_0A0C_slot_20(pid, 8); + spawn class_0A11_slot_2D(retval, *(arg_06), item); + suspend; + + block_0455: + /* loopnext */ + goto block_0400; + + block_0459: + + block_045B: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FFFLOOR2/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/FFFLOOR2/slot_06_gotHit.txt new file mode 100644 index 0000000..0f28d85 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FFFLOOR2/slot_06_gotHit.txt @@ -0,0 +1,40 @@ +function fffloor2_gotHit() /* entry=96 class_id=0x01C8 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + n; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + if ((Item.getFrame(arg_06) != 1) || (ref > 0x0100)) goto block_0495; + + block_048F: + goto block_051F; + + block_0495: + n = ref; + + block_049C: + if Item.isOn(*(arg_06), n) goto block_051F; + + block_04AF: + if (Item.getFrame(arg_06) != 1) goto block_04C7; + + block_04C1: + goto block_051F; + + block_04C7: + class_0A0C_slot_20(pid, 8); + spawn class_0A11_slot_2D(retval, *(arg_06), n); + suspend; + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_049C; + + block_051F: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FFFLOOR2/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/FFFLOOR2/slot_0A_equip.txt new file mode 100644 index 0000000..326e979 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FFFLOOR2/slot_0A_equip.txt @@ -0,0 +1,155 @@ +function fffloor2_equip() /* entry=96 class_id=0x01C8 slot=0x0A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + var, /* [BP+0Ah] type=0x69 */ + egg, /* [BP-02h] type=0x24 */ + fffloor; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (var != 0) goto block_0152; + + block_00F6: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0113: + if condition goto block_013F; + + block_0116: + if (Egg.setEggXRange(egg) != 2) goto block_013B; + + block_012E: + + block_013B: + /* loopnext */ + goto block_0113; + + block_013F: + goto block_0362; + + block_0152: + if (var != 1) goto block_01BA; + + block_015D: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_017A: + if condition goto block_01A6; + + block_017D: + if (Egg.setEggXRange(egg) != 2) goto block_01A2; + + block_0195: + + block_01A2: + /* loopnext */ + goto block_017A; + + block_01A6: + /* bit_not */ + goto block_0362; + + block_01BA: + if (var != 29) goto block_0222; + + block_01C5: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_0209: + if condition goto block_021D; + + block_020C: + /* loopnext */ + goto block_0209; + + block_021D: + goto block_0362; + + block_0222: + if (var != 30) goto block_0309; + + block_022D: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_027E: + if condition goto block_02AA; + + block_0281: + if (Egg.setEggXRange(egg) != 2) goto block_02A6; + + block_0299: + + block_02A6: + /* loopnext */ + goto block_027E; + + block_02AA: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_02F0: + if condition goto block_0304; + + block_02F3: + /* loopnext */ + goto block_02F0; + + block_0304: + goto block_0362; + + block_0309: + if (var != 31) goto block_0362; + + block_0314: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0331: + if condition goto block_035D; + + block_0334: + if (Egg.setEggXRange(egg) != 2) goto block_0359; + + block_034C: + + block_0359: + /* loopnext */ + goto block_0331; + + block_035D: + goto block_0362; + + block_0362: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FFFLOOR2/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/FFFLOOR2/slot_0B_unequip.txt new file mode 100644 index 0000000..157a9a8 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FFFLOOR2/slot_0B_unequip.txt @@ -0,0 +1,46 @@ +function fffloor2_unequip() /* entry=96 class_id=0x01C8 slot=0x0B */ +{ + var + referent, /* [BP+00h] type=0x69 */ + var, /* [BP+0Ah] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + if (Item.getFrame(arg_06) != 1) goto block_03C0; + + block_03BA: + goto block_0438; + + block_03C0: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_03DD: + if condition goto block_0436; + + block_03E0: + if (Item.isNpc(item) != 1) goto block_0432; + + block_03F2: + if Item.overlaps(item, arg_06) goto block_0432; + + block_0403: + class_0A0C_slot_20(pid, 8); + spawn class_0A11_slot_2D(retval, *(arg_06), item); + suspend; + + block_0432: + /* loopnext */ + goto block_03DD; + + block_0436: + + block_0438: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FIGHT_E1/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/FIGHT_E1/slot_06_gotHit.txt new file mode 100644 index 0000000..a789a0b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FIGHT_E1/slot_06_gotHit.txt @@ -0,0 +1,71 @@ +function fight_e1_gotHit() /* entry=77 class_id=0x0195 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 0x1000) goto block_010A; + + block_0104: + goto block_0240; + + block_010A: + class_0A0C_slot_2C(vel, ref); + if (!retval) goto block_0126; + + block_0120: + goto block_0240; + + block_0126: + spawn class_0A1E_slot_27(pid, 0x00C8, vel, ref, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_018A; + + block_0157: + class_0A0C_slot_20(1); + if retval goto block_0177; + + block_0167: + goto block_0184; + + block_0177: + + block_0184: + goto block_0240; + + block_018A: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x44 */ + /* loop current_var=0xFE string_bytes=0xA loop_type=0x2 */ + + block_01B3: + if condition goto block_023E; + + block_01B6: + class_0A1E_slot_23(0x1000, item); + if (!Item.getFrame(item)) goto block_023A; + + block_01D8: + if ((Intrinsic0016(item) != 0x0196) || (Intrinsic0016(item) != 0x018F)) goto block_021E; + + block_01FF: + goto block_023A; + + block_021E: + + block_023A: + /* loopnext */ + goto block_01B3; + + block_023E: + + block_0240: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FIGHT_E2/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/FIGHT_E2/slot_06_gotHit.txt new file mode 100644 index 0000000..8b4076d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FIGHT_E2/slot_06_gotHit.txt @@ -0,0 +1,71 @@ +function fight_e2_gotHit() /* entry=78 class_id=0x0196 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 0x1000) goto block_010A; + + block_0104: + goto block_0240; + + block_010A: + class_0A0C_slot_2C(vel, ref); + if (!retval) goto block_0126; + + block_0120: + goto block_0240; + + block_0126: + spawn class_0A1E_slot_27(pid, 0x00C8, vel, ref, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_018A; + + block_0157: + class_0A0C_slot_20(1); + if retval goto block_0177; + + block_0167: + goto block_0184; + + block_0177: + + block_0184: + goto block_0240; + + block_018A: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x44 */ + /* loop current_var=0xFE string_bytes=0xA loop_type=0x2 */ + + block_01B3: + if condition goto block_023E; + + block_01B6: + class_0A1E_slot_23(0x1000, item); + if (!Item.getFrame(item)) goto block_023A; + + block_01D8: + if ((Intrinsic0016(item) != 0x0196) || (Intrinsic0016(item) != 0x018F)) goto block_021E; + + block_01FF: + goto block_023A; + + block_021E: + + block_023A: + /* loopnext */ + goto block_01B3; + + block_023E: + + block_0240: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FIGHT_E3/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/FIGHT_E3/slot_06_gotHit.txt new file mode 100644 index 0000000..74044e8 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FIGHT_E3/slot_06_gotHit.txt @@ -0,0 +1,71 @@ +function fight_e3_gotHit() /* entry=76 class_id=0x018F slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 0x1000) goto block_010A; + + block_0104: + goto block_0240; + + block_010A: + class_0A0C_slot_2C(vel, ref); + if (!retval) goto block_0126; + + block_0120: + goto block_0240; + + block_0126: + spawn class_0A1E_slot_27(pid, 0x00C8, vel, ref, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_018A; + + block_0157: + class_0A0C_slot_20(1); + if retval goto block_0177; + + block_0167: + goto block_0184; + + block_0177: + + block_0184: + goto block_0240; + + block_018A: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x44 */ + /* loop current_var=0xFE string_bytes=0xA loop_type=0x2 */ + + block_01B3: + if condition goto block_023E; + + block_01B6: + class_0A1E_slot_23(0x1000, item); + if (!Item.getFrame(item)) goto block_023A; + + block_01D8: + if ((Intrinsic0016(item) != 0x0196) || (Intrinsic0016(item) != 0x018F)) goto block_021E; + + block_01FF: + goto block_023A; + + block_021E: + + block_023A: + /* loopnext */ + goto block_01B3; + + block_023E: + + block_0240: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FIGHT_EW/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/FIGHT_EW/slot_06_gotHit.txt new file mode 100644 index 0000000..adfc1de --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FIGHT_EW/slot_06_gotHit.txt @@ -0,0 +1,71 @@ +function fight_ew_gotHit() /* entry=81 class_id=0x019A slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 0x1000) goto block_010A; + + block_0104: + goto block_0240; + + block_010A: + class_0A0C_slot_2C(vel, ref); + if (!retval) goto block_0126; + + block_0120: + goto block_0240; + + block_0126: + spawn class_0A1E_slot_27(pid, 0x00C8, vel, ref, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_018A; + + block_0157: + class_0A0C_slot_20(1); + if retval goto block_0177; + + block_0167: + goto block_0184; + + block_0177: + + block_0184: + goto block_0240; + + block_018A: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x44 */ + /* loop current_var=0xFE string_bytes=0xA loop_type=0x2 */ + + block_01B3: + if condition goto block_023E; + + block_01B6: + class_0A1E_slot_23(0x1000, item); + if (!Item.getFrame(item)) goto block_023A; + + block_01D8: + if ((Intrinsic0016(item) != 0x0196) || (Intrinsic0016(item) != 0x018F)) goto block_021E; + + block_01FF: + goto block_023A; + + block_021E: + + block_023A: + /* loopnext */ + goto block_01B3; + + block_023E: + + block_0240: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FIGHT_N1/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/FIGHT_N1/slot_06_gotHit.txt new file mode 100644 index 0000000..5ba5eb0 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FIGHT_N1/slot_06_gotHit.txt @@ -0,0 +1,71 @@ +function fight_n1_gotHit() /* entry=73 class_id=0x0183 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 0x1000) goto block_010A; + + block_0104: + goto block_0240; + + block_010A: + class_0A0C_slot_2C(vel, ref); + if (!retval) goto block_0126; + + block_0120: + goto block_0240; + + block_0126: + spawn class_0A1E_slot_27(pid, 0x00C8, vel, ref, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_018A; + + block_0157: + class_0A0C_slot_20(1); + if retval goto block_0177; + + block_0167: + goto block_0184; + + block_0177: + + block_0184: + goto block_0240; + + block_018A: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x44 */ + /* loop current_var=0xFE string_bytes=0xA loop_type=0x2 */ + + block_01B3: + if condition goto block_023E; + + block_01B6: + class_0A1E_slot_23(0x1000, item); + if (!Item.getFrame(item)) goto block_023A; + + block_01D8: + if ((Intrinsic0016(item) != 0x017F) || (Intrinsic0016(item) != 0x0141)) goto block_021E; + + block_01FF: + goto block_023A; + + block_021E: + + block_023A: + /* loopnext */ + goto block_01B3; + + block_023E: + + block_0240: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FIGHT_N2/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/FIGHT_N2/slot_06_gotHit.txt new file mode 100644 index 0000000..94df57f --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FIGHT_N2/slot_06_gotHit.txt @@ -0,0 +1,71 @@ +function fight_n2_gotHit() /* entry=57 class_id=0x0141 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 0x1000) goto block_010A; + + block_0104: + goto block_0240; + + block_010A: + class_0A0C_slot_2C(vel, ref); + if (!retval) goto block_0126; + + block_0120: + goto block_0240; + + block_0126: + spawn class_0A1E_slot_27(pid, 0x00C8, vel, ref, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_018A; + + block_0157: + class_0A0C_slot_20(1); + if retval goto block_0177; + + block_0167: + goto block_0184; + + block_0177: + + block_0184: + goto block_0240; + + block_018A: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x44 */ + /* loop current_var=0xFE string_bytes=0xA loop_type=0x2 */ + + block_01B3: + if condition goto block_023E; + + block_01B6: + class_0A1E_slot_23(0x1000, item); + if (!Item.getFrame(item)) goto block_023A; + + block_01D8: + if ((Intrinsic0016(item) != 0x017F) || (Intrinsic0016(item) != 0x0141)) goto block_021E; + + block_01FF: + goto block_023A; + + block_021E: + + block_023A: + /* loopnext */ + goto block_01B3; + + block_023E: + + block_0240: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FIGHT_N3/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/FIGHT_N3/slot_06_gotHit.txt new file mode 100644 index 0000000..bf91e9a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FIGHT_N3/slot_06_gotHit.txt @@ -0,0 +1,75 @@ +function fight_n3_gotHit() /* entry=72 class_id=0x0180 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 0x1000) goto block_010A; + + block_0104: + goto block_026C; + + block_010A: + class_0A0C_slot_2C(vel, ref); + if (!retval) goto block_0126; + + block_0120: + goto block_026C; + + block_0126: + spawn class_0A1E_slot_27(pid, 0x00C8, vel, ref, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_018A; + + block_0157: + class_0A0C_slot_20(1); + if retval goto block_0177; + + block_0167: + goto block_0184; + + block_0177: + + block_0184: + goto block_026C; + + block_018A: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x44 */ + /* loop current_var=0xFE string_bytes=0xA loop_type=0x2 */ + + block_01B3: + if condition goto block_026A; + + block_01B6: + class_0A1E_slot_23(0x1000, item); + if (!Item.getFrame(item)) goto block_0266; + + block_01D8: + if ((Intrinsic0016(item) != 0x017F) || (Intrinsic0016(item) != 0x0141)) goto block_0234; + + block_01FF: + spawn class_0A1E_slot_28(pid, 0, 2, item); + suspend; + goto block_0266; + + block_0234: + spawn class_0A1E_slot_28(pid, 0, 1, item); + suspend; + + block_0266: + /* loopnext */ + goto block_01B3; + + block_026A: + + block_026C: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FIGHT_NS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/FIGHT_NS/slot_06_gotHit.txt new file mode 100644 index 0000000..0f6cffb --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FIGHT_NS/slot_06_gotHit.txt @@ -0,0 +1,75 @@ +function fight_ns_gotHit() /* entry=71 class_id=0x017F slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 0x1000) goto block_010A; + + block_0104: + goto block_026C; + + block_010A: + class_0A0C_slot_2C(vel, ref); + if (!retval) goto block_0126; + + block_0120: + goto block_026C; + + block_0126: + spawn class_0A1E_slot_27(pid, 0x00C8, vel, ref, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_018A; + + block_0157: + class_0A0C_slot_20(1); + if retval goto block_0177; + + block_0167: + goto block_0184; + + block_0177: + + block_0184: + goto block_026C; + + block_018A: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x44 */ + /* loop current_var=0xFE string_bytes=0xA loop_type=0x2 */ + + block_01B3: + if condition goto block_026A; + + block_01B6: + class_0A1E_slot_23(0x1000, item); + if (!Item.getFrame(item)) goto block_0266; + + block_01D8: + if ((Intrinsic0016(item) != 0x017F) || (Intrinsic0016(item) != 0x0141)) goto block_0234; + + block_01FF: + spawn class_0A1E_slot_28(pid, 0, 2, item); + suspend; + goto block_0266; + + block_0234: + spawn class_0A1E_slot_28(pid, 0, 1, item); + suspend; + + block_0266: + /* loopnext */ + goto block_01B3; + + block_026A: + + block_026C: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FLAME/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/FLAME/slot_20_slot_20.txt new file mode 100644 index 0000000..e7093bb --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FLAME/slot_20_slot_20.txt @@ -0,0 +1,59 @@ +function flame_slot_20() /* entry=381 class_id=0x0A0B slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + detect, /* [BP-03h] type=0x62 */ + n; /* [BP-05h] type=0x24 */ + + entry: + set_info(0x0001, *(arg_06)); + + block_00F6: + suspend; + detect = 0; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0127: + if condition goto block_018E; + + block_012A: + if Item.isNpc(item) goto block_018A; + + block_0139: + if Item.overlaps(*(arg_06), item) goto block_018A; + + block_014C: + n = item; + class_0A11_slot_2B(n); + if (!retval) goto block_0183; + + block_0167: + + block_0183: + detect = 1; + + block_018A: + /* loopnext */ + goto block_0127; + + block_018E: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + if (!detect) goto block_01D3; + + block_01BF: + class_0A1E_slot_24(4, arg_06); + goto block_01D6; + + block_01D3: + goto block_00F6; + + block_01D6: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FLAME/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/FLAME/slot_21_slot_21.txt new file mode 100644 index 0000000..a494ed1 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FLAME/slot_21_slot_21.txt @@ -0,0 +1,39 @@ +function flame_slot_21() /* entry=381 class_id=0x0A0B slot=0x21 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + n; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x0001, *(arg_06)); + n = ref; + if (Item.getStatus(arg_06) & 4) goto block_023E; + + block_0238: + goto block_02AF; + + block_023E: + class_0A1E_slot_23(4, arg_06); + + block_024C: + suspend; + if (ref < 0x00FF) goto block_02AC; + + block_0268: + class_0A11_slot_2B(n); + if (!retval) goto block_0298; + + block_027C: + + block_0298: + spawn class_0A0B_slot_20(arg_06); + goto block_02AF; + + block_02AC: + goto block_024C; + + block_02AF: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FLAME1/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/FLAME1/slot_06_gotHit.txt new file mode 100644 index 0000000..4ae6522 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FLAME1/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function flame1_gotHit() /* entry=235 class_id=0x043B slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A0B_slot_21(pid, ref, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FLAME1/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/FLAME1/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..6082088 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FLAME1/slot_0F_enterFastArea.txt @@ -0,0 +1,8 @@ +function flame1_enterFastArea() /* entry=235 class_id=0x043B slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FLAME2/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/FLAME2/slot_06_gotHit.txt new file mode 100644 index 0000000..30614f0 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FLAME2/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function flame2_gotHit() /* entry=297 class_id=0x050A slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A0B_slot_21(pid, ref, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FLAME2/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/FLAME2/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..365cd04 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FLAME2/slot_0F_enterFastArea.txt @@ -0,0 +1,8 @@ +function flame2_enterFastArea() /* entry=297 class_id=0x050A slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FLAMEBOX/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/FLAMEBOX/slot_0A_equip.txt new file mode 100644 index 0000000..10f7b4c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FLAMEBOX/slot_0A_equip.txt @@ -0,0 +1,91 @@ +function flamebox_equip() /* entry=229 class_id=0x0403 slot=0x0A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + event, /* [BP+0Ah] type=0x69 */ + flame, /* [BP-02h] type=0x24 */ + flame2, /* [BP-04h] type=0x24 */ + direction; /* [BP-06h] type=0x69 */ + + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (event != 0) goto block_01D0; + + block_00FF: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x44 */ + /* loop current_var=0xFE string_bytes=0xA loop_type=0x2 */ + + block_0128: + if condition goto block_01CB; + + block_012B: + if (Item.getUnkEggType(flame) != Item.getUnkEggType(arg_06)) goto block_01C7; + + block_0147: + if (Item.getStatus(flame) & 0x1000) goto block_015D; + + block_015A: + goto block_01C7; + + block_015D: + if ((Intrinsic0016(flame) != 0x043B) || (Intrinsic0016(flame) != 0x043A)) goto block_0192; + + block_017B: + spawn class_0403_slot_21(0, flame, arg_06); + goto block_01C7; + + block_0192: + if ((Intrinsic0016(flame) != 0x050A) || (Intrinsic0016(flame) != 0x0518)) goto block_01C7; + + block_01B0: + spawn class_0403_slot_21(1, flame, arg_06); + goto block_01C7; + + block_01C7: + /* loopnext */ + goto block_0128; + + block_01CB: + goto block_030A; + + block_01D0: + if (event != 1) goto block_030A; + + block_01D8: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_01F8: + if condition goto block_0305; + + block_01FB: + if (Item.getUnkEggType(flame) != Item.getUnkEggType(arg_06)) goto block_0301; + + block_0217: + if (Intrinsic0016(flame) != 0x0439) goto block_028C; + + block_0227: + spawn class_0403_slot_20(0, flame2, arg_06); + goto block_0301; + + block_028C: + if (Intrinsic0016(flame) != 0x0438) goto block_0301; + + block_029C: + spawn class_0403_slot_20(1, flame2, arg_06); + goto block_0301; + + block_0301: + /* loopnext */ + goto block_01F8; + + block_0305: + goto block_030A; + + block_030A: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FLAMEBOX/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/FLAMEBOX/slot_20_slot_20.txt new file mode 100644 index 0000000..2e80522 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FLAMEBOX/slot_20_slot_20.txt @@ -0,0 +1,57 @@ +function flamebox_slot_20() /* entry=229 class_id=0x0403 slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + flame, /* [BP+0Ah] type=0x24 */ + direction, /* [BP+0Ch] type=0x69 */ + count, /* [BP-02h] type=0x69 */ + flame2; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x00F0, *(arg_06)); + if Item.getQHi() goto block_03B9; + + block_036E: + if ((Item.getFrame(flame) != 5) && (Intrinsic0007(flame) != 1)) goto block_03B9; + + block_0390: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_036E; + + block_03B9: + class_0A1E_slot_23(4, flame); + spawn class_0A0B_slot_20(flame); + if (direction != 0) goto block_040E; + + block_03DD: + if Item.getQHi() goto block_03FB; + + block_03E8: + goto block_040B; + + block_03FB: + + block_040B: + goto block_0447; + + block_040E: + if (direction != 1) goto block_0447; + + block_0416: + if Item.getQHi() goto block_0434; + + block_0421: + goto block_0444; + + block_0434: + + block_0444: + goto block_0447; + + block_0447: + class_0A1E_slot_23(4, flame2); + spawn class_0A0B_slot_20(flame2); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FLAMEBOX/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/FLAMEBOX/slot_21_slot_21.txt new file mode 100644 index 0000000..66f7f37 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FLAMEBOX/slot_21_slot_21.txt @@ -0,0 +1,75 @@ +function flamebox_slot_21() /* entry=229 class_id=0x0403 slot=0x21 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + flame, /* [BP+0Ah] type=0x24 */ + direction, /* [BP+0Ch] type=0x69 */ + count, /* [BP-02h] type=0x69 */ + flame2, /* [BP-04h] type=0x24 */ + newType; /* [BP-06h] type=0x69 */ + + entry: + set_info(1, *(arg_06)); + class_0A1E_slot_23(0x1000, flame); + if Item.getQHi() goto block_05E5; + + block_0528: + if ((Intrinsic0016(flame) != 0x043A) || (Intrinsic0016(flame) != 0x0518)) goto block_059A; + + block_054C: + if ((Item.getFrame(flame) != 5) && (Intrinsic0007(flame) != 1)) goto block_0597; + + block_056E: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_054C; + + block_0597: + goto block_05E5; + + block_059A: + if ((Item.getFrame(flame) != 27) && (Intrinsic0007(flame) != 1)) goto block_05E5; + + block_05BC: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_059A; + + block_05E5: + if (direction != 0) goto block_0608; + + block_05ED: + newType = 0x0439; + goto block_062B; + + block_0608: + if (direction != 1) goto block_062B; + + block_0610: + newType = 0x0438; + goto block_062B; + + block_062B: + class_0A1E_slot_23(0x1000, flame2); + if Item.getQHi() goto block_06F4; + + block_06A6: + if ((Item.getFrame(flame2) != 4) && (Intrinsic0007(flame2) != 1)) goto block_06F1; + + block_06C8: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_06A6; + + block_06F1: + goto block_071B; + + block_06F4: + spawn class_0A0C_slot_32(pid, 0x00C8, 0x00000000); + suspend; + + block_071B: + class_0A1E_slot_24(0x1000, flame2); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FLAMELP/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/FLAMELP/slot_06_gotHit.txt new file mode 100644 index 0000000..b78e105 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FLAMELP/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function flamelp_gotHit() /* entry=299 class_id=0x0516 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A0B_slot_21(pid, ref, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FLAMELP/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/FLAMELP/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..559e697 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FLAMELP/slot_0F_enterFastArea.txt @@ -0,0 +1,8 @@ +function flamelp_enterFastArea() /* entry=299 class_id=0x0516 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FLICTEST/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/FLICTEST/slot_20_slot_20.txt new file mode 100644 index 0000000..ccd41e2 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FLICTEST/slot_20_slot_20.txt @@ -0,0 +1,1551 @@ +function flictest_slot_20() /* entry=402 class_id=0x0A20 slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + keycode; /* [BP-02h] type=0x69 */ + + entry: + set_info(1, *(arg_06)); + keycode = Item.getQHi(0); + if (keycode != 1) goto block_013F; + + block_010E: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_013F: + if (keycode != 2) goto block_0178; + + block_0147: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0178: + if (keycode != 3) goto block_01B1; + + block_0180: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_01B1: + if (keycode != 4) goto block_01EA; + + block_01B9: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_01EA: + if (keycode != 5) goto block_0223; + + block_01F2: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0223: + if (keycode != 6) goto block_025C; + + block_022B: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_025C: + if (keycode != 7) goto block_0295; + + block_0264: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0295: + if (keycode != 8) goto block_02CE; + + block_029D: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_02CE: + if (keycode != 9) goto block_0307; + + block_02D6: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0307: + if (keycode != 10) goto block_0340; + + block_030F: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0340: + if (keycode != 11) goto block_0379; + + block_0348: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0379: + if (keycode != 12) goto block_03B2; + + block_0381: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_03B2: + if (keycode != 13) goto block_03EB; + + block_03BA: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_03EB: + if (keycode != 14) goto block_0424; + + block_03F3: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0424: + if (keycode != 15) goto block_045D; + + block_042C: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_045D: + if (keycode != 16) goto block_0496; + + block_0465: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0496: + if (keycode != 17) goto block_04CF; + + block_049E: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_04CF: + if (keycode != 18) goto block_0508; + + block_04D7: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0508: + if (keycode != 19) goto block_0541; + + block_0510: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0541: + if (keycode != 20) goto block_057A; + + block_0549: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_057A: + if (keycode != 21) goto block_05B3; + + block_0582: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_05B3: + if (keycode != 22) goto block_05EC; + + block_05BB: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_05EC: + if (keycode != 23) goto block_0625; + + block_05F4: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0625: + if (keycode != 24) goto block_065E; + + block_062D: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_065E: + if (keycode != 25) goto block_0697; + + block_0666: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0697: + if (keycode != 26) goto block_06D0; + + block_069F: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_06D0: + if (keycode != 27) goto block_0709; + + block_06D8: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0709: + if (keycode != 28) goto block_0742; + + block_0711: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0742: + if (keycode != 29) goto block_077B; + + block_074A: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_077B: + if (keycode != 30) goto block_07B4; + + block_0783: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_07B4: + if (keycode != 31) goto block_07ED; + + block_07BC: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_07ED: + if (keycode != 32) goto block_0826; + + block_07F5: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0826: + if (keycode != 33) goto block_085F; + + block_082E: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_085F: + if (keycode != 34) goto block_0898; + + block_0867: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0898: + if (keycode != 35) goto block_08D1; + + block_08A0: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_08D1: + if (keycode != 36) goto block_090A; + + block_08D9: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_090A: + if (keycode != 37) goto block_0943; + + block_0912: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0943: + if (keycode != 38) goto block_097C; + + block_094B: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_097C: + if (keycode != 39) goto block_09B5; + + block_0984: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_09B5: + if (keycode != 40) goto block_09EE; + + block_09BD: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_09EE: + if (keycode != 41) goto block_0A27; + + block_09F6: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0A27: + if (keycode != 42) goto block_0A60; + + block_0A2F: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0A60: + if (keycode != 43) goto block_0A99; + + block_0A68: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0A99: + if (keycode != 44) goto block_0AD2; + + block_0AA1: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0AD2: + if (keycode != 45) goto block_0B0B; + + block_0ADA: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0B0B: + if (keycode != 46) goto block_0B44; + + block_0B13: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0B44: + if (keycode != 47) goto block_0B7D; + + block_0B4C: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0B7D: + if (keycode != 48) goto block_0BB6; + + block_0B85: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0BB6: + if (keycode != 49) goto block_0BEF; + + block_0BBE: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0BEF: + if (keycode != 50) goto block_0C28; + + block_0BF7: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0C28: + if (keycode != 51) goto block_0C61; + + block_0C30: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0C61: + if (keycode != 52) goto block_0C9A; + + block_0C69: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0C9A: + if (keycode != 53) goto block_0CD3; + + block_0CA2: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0CD3: + if (keycode != 54) goto block_0D0C; + + block_0CDB: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0D0C: + if (keycode != 55) goto block_0D45; + + block_0D14: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0D45: + if (keycode != 56) goto block_0D7E; + + block_0D4D: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0D7E: + if (keycode != 57) goto block_0DB7; + + block_0D86: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0DB7: + if (keycode != 58) goto block_0DF0; + + block_0DBF: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0DF0: + if (keycode != 59) goto block_0E29; + + block_0DF8: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0E29: + if (keycode != 60) goto block_0E62; + + block_0E31: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0E62: + if (keycode != 61) goto block_0E9B; + + block_0E6A: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0E9B: + if (keycode != 62) goto block_0ED4; + + block_0EA3: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0ED4: + if (keycode != 63) goto block_0F0D; + + block_0EDC: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0F0D: + if (keycode != 64) goto block_0F46; + + block_0F15: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0F46: + if (keycode != 65) goto block_0F7F; + + block_0F4E: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0F7F: + if (keycode != 66) goto block_0FB8; + + block_0F87: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0FB8: + if (keycode != 67) goto block_0FF1; + + block_0FC0: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_0FF1: + if (keycode != 68) goto block_102A; + + block_0FF9: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_102A: + if (keycode != 69) goto block_1063; + + block_1032: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1063: + if (keycode != 70) goto block_109C; + + block_106B: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_109C: + if (keycode != 71) goto block_10D5; + + block_10A4: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_10D5: + if (keycode != 72) goto block_110E; + + block_10DD: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_110E: + if (keycode != 73) goto block_1147; + + block_1116: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1147: + if (keycode != 74) goto block_1180; + + block_114F: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1180: + if (keycode != 75) goto block_11B9; + + block_1188: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_11B9: + if (keycode != 76) goto block_11F2; + + block_11C1: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_11F2: + if (keycode != 77) goto block_122B; + + block_11FA: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_122B: + if (keycode != 78) goto block_1264; + + block_1233: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1264: + if (keycode != 79) goto block_129D; + + block_126C: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_129D: + if (keycode != 80) goto block_12D6; + + block_12A5: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_12D6: + if (keycode != 81) goto block_130F; + + block_12DE: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_130F: + if (keycode != 82) goto block_1348; + + block_1317: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1348: + if (keycode != 83) goto block_1381; + + block_1350: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1381: + if (keycode != 84) goto block_13BA; + + block_1389: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_13BA: + if (keycode != 85) goto block_13F3; + + block_13C2: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_13F3: + if (keycode != 86) goto block_142C; + + block_13FB: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_142C: + if (keycode != 87) goto block_1465; + + block_1434: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1465: + if (keycode != 88) goto block_149E; + + block_146D: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_149E: + if (keycode != 89) goto block_14D7; + + block_14A6: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_14D7: + if (keycode != 90) goto block_1510; + + block_14DF: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1510: + if (keycode != 91) goto block_1549; + + block_1518: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1549: + if (keycode != 92) goto block_1582; + + block_1551: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1582: + if (keycode != 93) goto block_15BB; + + block_158A: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_15BB: + if (keycode != 94) goto block_15F4; + + block_15C3: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_15F4: + if (keycode != 95) goto block_162D; + + block_15FC: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_162D: + if (keycode != 96) goto block_1666; + + block_1635: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1666: + if (keycode != 97) goto block_169F; + + block_166E: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_169F: + if (keycode != 98) goto block_16D8; + + block_16A7: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_16D8: + if (keycode != 99) goto block_1711; + + block_16E0: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1711: + if (keycode != 100) goto block_174A; + + block_1719: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_174A: + if (keycode != 101) goto block_1783; + + block_1752: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1783: + if (keycode != 102) goto block_17BC; + + block_178B: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_17BC: + if (keycode != 103) goto block_17F5; + + block_17C4: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_17F5: + if (keycode != 104) goto block_182E; + + block_17FD: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_182E: + if (keycode != 105) goto block_1867; + + block_1836: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1867: + if (keycode != 106) goto block_18A0; + + block_186F: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_18A0: + if (keycode != 107) goto block_18D9; + + block_18A8: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_18D9: + if (keycode != 108) goto block_1912; + + block_18E1: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1912: + if (keycode != 109) goto block_194B; + + block_191A: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_194B: + if (keycode != 110) goto block_1984; + + block_1953: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1984: + if (keycode != 111) goto block_19BD; + + block_198C: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_19BD: + if (keycode != 112) goto block_19F6; + + block_19C5: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_19F6: + if (keycode != 113) goto block_1A2F; + + block_19FE: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1A2F: + if (keycode != 114) goto block_1A68; + + block_1A37: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1A68: + if (keycode != 115) goto block_1AA1; + + block_1A70: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1AA1: + if (keycode != 116) goto block_1ADA; + + block_1AA9: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1ADA: + if (keycode != 117) goto block_1B13; + + block_1AE2: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1B13: + if (keycode != 118) goto block_1B4C; + + block_1B1B: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1B4C: + if (keycode != 119) goto block_1B85; + + block_1B54: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1B85: + if (keycode != 120) goto block_1BBE; + + block_1B8D: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1BBE: + if (keycode != 121) goto block_1BF7; + + block_1BC6: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1BF7: + if (keycode != 122) goto block_1C30; + + block_1BFF: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1C30: + if (keycode != 123) goto block_1C69; + + block_1C38: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1C69: + if (keycode != 124) goto block_1CA2; + + block_1C71: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1CA2: + if (keycode != 125) goto block_1CDB; + + block_1CAA: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1CDB: + if (keycode != 126) goto block_1D14; + + block_1CE3: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1D14: + if (keycode != 127) goto block_1D4D; + + block_1D1C: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1D4D: + if (keycode != 0x0080) goto block_1D87; + + block_1D56: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1D87: + if (keycode != 0x0081) goto block_1DC1; + + block_1D90: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1DC1: + if (keycode != 0x0082) goto block_1DFB; + + block_1DCA: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1DFB: + if (keycode != 0x0083) goto block_1E35; + + block_1E04: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1E35: + if (keycode != 0x0084) goto block_1E6F; + + block_1E3E: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1E6F: + if (keycode != 0x0085) goto block_1EA9; + + block_1E78: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1EA9: + if (keycode != 0x0086) goto block_1EE3; + + block_1EB2: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1EE3: + if (keycode != 0x0087) goto block_1F1D; + + block_1EEC: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1F1D: + if (keycode != 0x0088) goto block_1F5C; + + block_1F26: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1F5C: + if (keycode != 0x0089) goto block_1F96; + + block_1F65: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1F96: + if (keycode != 0x008A) goto block_1FD0; + + block_1F9F: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_1FD0: + if (keycode != 0x008B) goto block_200C; + + block_1FD9: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_200C: + if (keycode != 0x008C) goto block_2049; + + block_2015: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_2049: + if (keycode != 0x008D) goto block_2086; + + block_2052: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_2086: + if (keycode != 0x008E) goto block_20C2; + + block_208F: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_20C2: + if (keycode != 0x008F) goto block_20FF; + + block_20CB: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_20FF: + if (keycode != 0x0090) goto block_213C; + + block_2108: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_213C: + if (keycode != 0x0091) goto block_2178; + + block_2145: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_2178: + if (keycode != 0x0092) goto block_21B4; + + block_2181: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_21B4: + if (keycode != 0x0093) goto block_21F0; + + block_21BD: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_21F0: + if (keycode != 0x0094) goto block_222C; + + block_21F9: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_222C: + if (keycode != 0x0095) goto block_2268; + + block_2235: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_2268: + if (keycode != 0x0096) goto block_22A5; + + block_2271: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_22A5: + if (keycode != 0x0097) goto block_22E2; + + block_22AE: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_22E2: + if (keycode != 0x0098) goto block_231F; + + block_22EB: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_231F: + if (keycode != 0x0099) goto block_235C; + + block_2328: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_235C: + if (keycode != 0x009A) goto block_2398; + + block_2365: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_2398: + if (keycode != 0x009B) goto block_23D4; + + block_23A1: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_23D4: + if (keycode != 0x009C) goto block_2411; + + block_23DD: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_2411: + if (keycode != 0x009D) goto block_244E; + + block_241A: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_244E: + if (keycode != 0x009E) goto block_248B; + + block_2457: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_248B: + if (keycode != 0x009F) goto block_24C5; + + block_2494: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_24C5: + if (keycode != 0x00A0) goto block_24FF; + + block_24CE: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_24FF: + if (keycode != 0x00A1) goto block_2539; + + block_2508: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_2539: + if (keycode != 0x00A2) goto block_2573; + + block_2542: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_2573: + if (keycode != 0x00A3) goto block_25B2; + + block_257C: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_25B2: + if (keycode != 0x00A4) goto block_25EC; + + block_25BB: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_25EC: + if (keycode != 0x00A5) goto block_2627; + + block_25F5: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_2627: + if (keycode != 0x00A6) goto block_2660; + + block_2630: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_2660: + if (keycode != 0x00A7) goto block_2699; + + block_2669: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_2699: + if (keycode != 0x00A8) goto block_26D2; + + block_26A2: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_26D2: + if (keycode != 0x00A9) goto block_270C; + + block_26DB: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_270C: + if (keycode != 0x00AA) goto block_2746; + + block_2715: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_2746: + if (keycode != 0x00AB) goto block_2780; + + block_274F: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_2780; + + block_2780: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FLICTEST/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/FLICTEST/slot_21_slot_21.txt new file mode 100644 index 0000000..feed10f --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FLICTEST/slot_21_slot_21.txt @@ -0,0 +1,1546 @@ +function flictest_slot_21() /* entry=402 class_id=0x0A20 slot=0x21 */ +{ + entry: + set_info(1, *(arg_06)); + if (arg_0A != 1) goto block_27F0; + + block_27BF: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_27F0: + if (arg_0A != 2) goto block_2829; + + block_27F8: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_2829: + if (arg_0A != 3) goto block_2862; + + block_2831: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_2862: + if (arg_0A != 4) goto block_289B; + + block_286A: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_289B: + if (arg_0A != 5) goto block_28D4; + + block_28A3: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_28D4: + if (arg_0A != 6) goto block_290D; + + block_28DC: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_290D: + if (arg_0A != 7) goto block_2946; + + block_2915: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_2946: + if (arg_0A != 8) goto block_297F; + + block_294E: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_297F: + if (arg_0A != 9) goto block_29B8; + + block_2987: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_29B8: + if (arg_0A != 10) goto block_29F1; + + block_29C0: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_29F1: + if (arg_0A != 11) goto block_2A2A; + + block_29F9: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_2A2A: + if (arg_0A != 12) goto block_2A63; + + block_2A32: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_2A63: + if (arg_0A != 13) goto block_2A9C; + + block_2A6B: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_2A9C: + if (arg_0A != 14) goto block_2AD5; + + block_2AA4: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_2AD5: + if (arg_0A != 15) goto block_2B0E; + + block_2ADD: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_2B0E: + if (arg_0A != 16) goto block_2B47; + + block_2B16: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_2B47: + if (arg_0A != 17) goto block_2B80; + + block_2B4F: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_2B80: + if (arg_0A != 18) goto block_2BB9; + + block_2B88: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_2BB9: + if (arg_0A != 19) goto block_2BF2; + + block_2BC1: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_2BF2: + if (arg_0A != 20) goto block_2C2B; + + block_2BFA: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_2C2B: + if (arg_0A != 21) goto block_2C64; + + block_2C33: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_2C64: + if (arg_0A != 22) goto block_2C9D; + + block_2C6C: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_2C9D: + if (arg_0A != 23) goto block_2CD6; + + block_2CA5: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_2CD6: + if (arg_0A != 24) goto block_2D0F; + + block_2CDE: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_2D0F: + if (arg_0A != 25) goto block_2D48; + + block_2D17: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_2D48: + if (arg_0A != 26) goto block_2D81; + + block_2D50: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_2D81: + if (arg_0A != 27) goto block_2DBA; + + block_2D89: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_2DBA: + if (arg_0A != 28) goto block_2DF3; + + block_2DC2: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_2DF3: + if (arg_0A != 29) goto block_2E2C; + + block_2DFB: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_2E2C: + if (arg_0A != 30) goto block_2E65; + + block_2E34: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_2E65: + if (arg_0A != 31) goto block_2E9E; + + block_2E6D: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_2E9E: + if (arg_0A != 32) goto block_2ED7; + + block_2EA6: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_2ED7: + if (arg_0A != 33) goto block_2F10; + + block_2EDF: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_2F10: + if (arg_0A != 34) goto block_2F49; + + block_2F18: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_2F49: + if (arg_0A != 35) goto block_2F82; + + block_2F51: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_2F82: + if (arg_0A != 36) goto block_2FBB; + + block_2F8A: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_2FBB: + if (arg_0A != 37) goto block_2FF4; + + block_2FC3: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_2FF4: + if (arg_0A != 38) goto block_302D; + + block_2FFC: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_302D: + if (arg_0A != 39) goto block_3066; + + block_3035: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3066: + if (arg_0A != 40) goto block_309F; + + block_306E: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_309F: + if (arg_0A != 41) goto block_30D8; + + block_30A7: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_30D8: + if (arg_0A != 42) goto block_3111; + + block_30E0: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3111: + if (arg_0A != 43) goto block_314A; + + block_3119: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_314A: + if (arg_0A != 44) goto block_3183; + + block_3152: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3183: + if (arg_0A != 45) goto block_31BC; + + block_318B: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_31BC: + if (arg_0A != 46) goto block_31F5; + + block_31C4: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_31F5: + if (arg_0A != 47) goto block_322E; + + block_31FD: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_322E: + if (arg_0A != 48) goto block_3267; + + block_3236: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3267: + if (arg_0A != 59) goto block_32A0; + + block_326F: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_32A0: + if (arg_0A != 50) goto block_32D9; + + block_32A8: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_32D9: + if (arg_0A != 51) goto block_3312; + + block_32E1: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3312: + if (arg_0A != 52) goto block_334B; + + block_331A: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_334B: + if (arg_0A != 53) goto block_3384; + + block_3353: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3384: + if (arg_0A != 54) goto block_33BD; + + block_338C: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_33BD: + if (arg_0A != 55) goto block_33F6; + + block_33C5: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_33F6: + if (arg_0A != 56) goto block_342F; + + block_33FE: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_342F: + if (arg_0A != 57) goto block_3468; + + block_3437: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3468: + if (arg_0A != 58) goto block_34A1; + + block_3470: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_34A1: + if (arg_0A != 59) goto block_34DA; + + block_34A9: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_34DA: + if (arg_0A != 60) goto block_3513; + + block_34E2: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3513: + if (arg_0A != 61) goto block_354C; + + block_351B: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_354C: + if (arg_0A != 62) goto block_3585; + + block_3554: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3585: + if (arg_0A != 63) goto block_35BE; + + block_358D: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_35BE: + if (arg_0A != 64) goto block_35F7; + + block_35C6: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_35F7: + if (arg_0A != 65) goto block_3630; + + block_35FF: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3630: + if (arg_0A != 66) goto block_3669; + + block_3638: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3669: + if (arg_0A != 67) goto block_36A2; + + block_3671: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_36A2: + if (arg_0A != 68) goto block_36DB; + + block_36AA: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_36DB: + if (arg_0A != 69) goto block_3714; + + block_36E3: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3714: + if (arg_0A != 70) goto block_374D; + + block_371C: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_374D: + if (arg_0A != 71) goto block_3786; + + block_3755: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3786: + if (arg_0A != 72) goto block_37BF; + + block_378E: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_37BF: + if (arg_0A != 73) goto block_37F8; + + block_37C7: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_37F8: + if (arg_0A != 74) goto block_3831; + + block_3800: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3831: + if (arg_0A != 75) goto block_386A; + + block_3839: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_386A: + if (arg_0A != 76) goto block_38A3; + + block_3872: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_38A3: + if (arg_0A != 77) goto block_38DC; + + block_38AB: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_38DC: + if (arg_0A != 78) goto block_3915; + + block_38E4: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3915: + if (arg_0A != 79) goto block_394E; + + block_391D: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_394E: + if (arg_0A != 80) goto block_3987; + + block_3956: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3987: + if (arg_0A != 81) goto block_39C0; + + block_398F: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_39C0: + if (arg_0A != 82) goto block_39F9; + + block_39C8: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_39F9: + if (arg_0A != 83) goto block_3A32; + + block_3A01: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3A32: + if (arg_0A != 84) goto block_3A6B; + + block_3A3A: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3A6B: + if (arg_0A != 85) goto block_3AA4; + + block_3A73: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3AA4: + if (arg_0A != 86) goto block_3ADD; + + block_3AAC: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3ADD: + if (arg_0A != 87) goto block_3B16; + + block_3AE5: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3B16: + if (arg_0A != 88) goto block_3B4F; + + block_3B1E: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3B4F: + if (arg_0A != 89) goto block_3B88; + + block_3B57: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3B88: + if (arg_0A != 90) goto block_3BC1; + + block_3B90: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3BC1: + if (arg_0A != 91) goto block_3BFA; + + block_3BC9: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3BFA: + if (arg_0A != 92) goto block_3C33; + + block_3C02: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3C33: + if (arg_0A != 93) goto block_3C6C; + + block_3C3B: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3C6C: + if (arg_0A != 94) goto block_3CA5; + + block_3C74: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3CA5: + if (arg_0A != 95) goto block_3CDE; + + block_3CAD: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3CDE: + if (arg_0A != 96) goto block_3D17; + + block_3CE6: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3D17: + if (arg_0A != 97) goto block_3D50; + + block_3D1F: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3D50: + if (arg_0A != 98) goto block_3D89; + + block_3D58: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3D89: + if (arg_0A != 99) goto block_3DC2; + + block_3D91: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3DC2: + if (arg_0A != 100) goto block_3DFB; + + block_3DCA: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3DFB: + if (arg_0A != 101) goto block_3E34; + + block_3E03: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3E34: + if (arg_0A != 102) goto block_3E6D; + + block_3E3C: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3E6D: + if (arg_0A != 103) goto block_3EA6; + + block_3E75: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3EA6: + if (arg_0A != 104) goto block_3EDF; + + block_3EAE: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3EDF: + if (arg_0A != 105) goto block_3F18; + + block_3EE7: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3F18: + if (arg_0A != 106) goto block_3F51; + + block_3F20: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3F51: + if (arg_0A != 107) goto block_3F8A; + + block_3F59: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3F8A: + if (arg_0A != 108) goto block_3FC3; + + block_3F92: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3FC3: + if (arg_0A != 109) goto block_3FFC; + + block_3FCB: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_3FFC: + if (arg_0A != 110) goto block_4035; + + block_4004: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4035: + if (arg_0A != 111) goto block_406E; + + block_403D: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_406E: + if (arg_0A != 112) goto block_40A7; + + block_4076: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_40A7: + if (arg_0A != 113) goto block_40E0; + + block_40AF: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_40E0: + if (arg_0A != 114) goto block_4119; + + block_40E8: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4119: + if (arg_0A != 115) goto block_4152; + + block_4121: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4152: + if (arg_0A != 116) goto block_418B; + + block_415A: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_418B: + if (arg_0A != 117) goto block_41C4; + + block_4193: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_41C4: + if (arg_0A != 118) goto block_41FD; + + block_41CC: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_41FD: + if (arg_0A != 119) goto block_4236; + + block_4205: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4236: + if (arg_0A != 120) goto block_426F; + + block_423E: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_426F: + if (arg_0A != 121) goto block_42A8; + + block_4277: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_42A8: + if (arg_0A != 122) goto block_42E1; + + block_42B0: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_42E1: + if (arg_0A != 123) goto block_431A; + + block_42E9: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_431A: + if (arg_0A != 124) goto block_4353; + + block_4322: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4353: + if (arg_0A != 125) goto block_438C; + + block_435B: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_438C: + if (arg_0A != 126) goto block_43C5; + + block_4394: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_43C5: + if (arg_0A != 127) goto block_43FE; + + block_43CD: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_43FE: + if (arg_0A != 0x0080) goto block_4438; + + block_4407: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4438: + if (arg_0A != 0x0081) goto block_4472; + + block_4441: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4472: + if (arg_0A != 0x0082) goto block_44AC; + + block_447B: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_44AC: + if (arg_0A != 0x0083) goto block_44E6; + + block_44B5: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_44E6: + if (arg_0A != 0x0084) goto block_4520; + + block_44EF: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4520: + if (arg_0A != 0x0085) goto block_455A; + + block_4529: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_455A: + if (arg_0A != 0x0086) goto block_4594; + + block_4563: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4594: + if (arg_0A != 0x0087) goto block_45CE; + + block_459D: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_45CE: + if (arg_0A != 0x0088) goto block_460D; + + block_45D7: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_460D: + if (arg_0A != 0x0089) goto block_4647; + + block_4616: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4647: + if (arg_0A != 0x008A) goto block_4681; + + block_4650: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4681: + if (arg_0A != 0x008B) goto block_46BD; + + block_468A: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_46BD: + if (arg_0A != 0x008C) goto block_46FA; + + block_46C6: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_46FA: + if (arg_0A != 0x008D) goto block_4737; + + block_4703: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4737: + if (arg_0A != 0x008E) goto block_4773; + + block_4740: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4773: + if (arg_0A != 0x008F) goto block_47B0; + + block_477C: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_47B0: + if (arg_0A != 0x0090) goto block_47ED; + + block_47B9: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_47ED: + if (arg_0A != 0x0091) goto block_4829; + + block_47F6: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4829: + if (arg_0A != 0x0092) goto block_4865; + + block_4832: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4865: + if (arg_0A != 0x0093) goto block_48A1; + + block_486E: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_48A1: + if (arg_0A != 0x0094) goto block_48DD; + + block_48AA: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_48DD: + if (arg_0A != 0x0095) goto block_4919; + + block_48E6: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4919: + if (arg_0A != 0x0096) goto block_4956; + + block_4922: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4956: + if (arg_0A != 0x0097) goto block_4993; + + block_495F: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4993: + if (arg_0A != 0x0098) goto block_49D0; + + block_499C: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_49D0: + if (arg_0A != 0x0099) goto block_4A0D; + + block_49D9: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4A0D: + if (arg_0A != 0x009A) goto block_4A49; + + block_4A16: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4A49: + if (arg_0A != 0x009B) goto block_4A85; + + block_4A52: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4A85: + if (arg_0A != 0x009C) goto block_4AC2; + + block_4A8E: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4AC2: + if (arg_0A != 0x009D) goto block_4AFF; + + block_4ACB: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4AFF: + if (arg_0A != 0x009E) goto block_4B3C; + + block_4B08: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4B3C: + if (arg_0A != 0x009F) goto block_4B76; + + block_4B45: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4B76: + if (arg_0A != 0x00A0) goto block_4BB0; + + block_4B7F: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4BB0: + if (arg_0A != 0x00A1) goto block_4BEA; + + block_4BB9: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4BEA: + if (arg_0A != 0x00A2) goto block_4C24; + + block_4BF3: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4C24: + if (arg_0A != 0x00A3) goto block_4C63; + + block_4C2D: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4C63: + if (arg_0A != 0x00A4) goto block_4C9D; + + block_4C6C: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4C9D: + if (arg_0A != 0x00A5) goto block_4CD8; + + block_4CA6: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4CD8: + if (arg_0A != 0x00A6) goto block_4D11; + + block_4CE1: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4D11: + if (arg_0A != 0x00A7) goto block_4D4A; + + block_4D1A: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4D4A: + if (arg_0A != 0x00A8) goto block_4D83; + + block_4D53: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4D83: + if (arg_0A != 0x00A9) goto block_4DBD; + + block_4D8C: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4DBD: + if (arg_0A != 0x00AA) goto block_4DF7; + + block_4DC6: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4DF7: + if (arg_0A != 0x00AB) goto block_4E31; + + block_4E00: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_4E31; + + block_4E31: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FLOOR1/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/FLOOR1/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..3b2194d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FLOOR1/slot_0F_enterFastArea.txt @@ -0,0 +1,208 @@ +function floor1_enterFastArea() /* entry=342 class_id=0x0902 slot=0x0F */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + item, /* [BP-04h] type=0x24 */ + item2, /* [BP-06h] type=0x24 */ + highNumber, /* [BP-08h] type=0x69 */ + lowNumber, /* [BP-0Ah] type=0x69 */ + tempNumber, /* [BP-0Ch] type=0x69 */ + floorItems, /* [BP-0Eh] type=0x6C */ + wantToStop, /* [BP-10h] type=0x69 */ + foundFloor, /* [BP-12h] type=0x69 */ + onTime, /* [BP-14h] type=0x69 */ + id, /* [BP-16h] type=0x69 */ + n; /* [BP-18h] type=0x24 */ + + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + counter = 0; + highNumber = 0; + lowNumber = 0x0100; + tempNumber = 0; + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + id = Intrinsic003F(arg_06); + onTime = (id * 10); + if (onTime != 0) goto block_015B; + + block_0154: + onTime = 5; + + block_015B: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_017B: + if condition goto block_01F9; + + block_017E: + foundFloor = 1; + tempNumber = Item.getUnkEggType(item); + if ((tempNumber > 0) && (tempNumber < 0x00FA)) goto block_01F5; + + block_01A8: + if (highNumber < tempNumber) goto block_01C0; + + block_01B9: + highNumber = tempNumber; + + block_01C0: + if (lowNumber > tempNumber) goto block_01D8; + + block_01D1: + lowNumber = tempNumber; + + block_01D8: + /* create_list element_size=0x2 count=0x1 */ + /* append_list */ + /* free_local_list bp_offset=0xF2 target=[BP-0Eh] */ + floorItems = item; + + block_01F5: + /* loopnext */ + goto block_017B; + + block_01F9: + if (!foundFloor) goto block_020A; + + block_0204: + goto block_0498; + + block_020A: + if 1 goto block_0498; + + block_0212: + wantToStop = 0; + counter = lowNumber; + + block_0220: + if (counter <= highNumber) goto block_03E5; + + block_022B: + + block_0234: + foreach_list item -> block_02FF; + + block_0239: + if (Item.getStatus(item) & 0x1000) goto block_0259; + + block_024C: + wantToStop = 1; + goto block_03E5; + + block_0259: + if (Item.getUnkEggType(item) != counter) goto block_02F9; + + block_026B: + if (!Item.touch(112, arg_06)) goto block_029A; + + block_028D: + + block_029A: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFA string_bytes=0x1 loop_type=0x6 */ + + block_02A8: + if condition goto block_02F7; + + block_02AB: + if (Item.isNpc(item2) != 1) goto block_02F3; + + block_02BD: + n = item2; + class_0A0C_slot_20(pid, 8); + spawn class_0A11_slot_2D(retval, *(arg_06), n); + suspend; + + block_02F3: + /* loopnext */ + goto block_02A8; + + block_02F7: + + block_02F9: + goto block_0234; + + block_02FF: + if (wantToStop != 1) goto block_0310; + + block_030A: + goto block_03E5; + + block_0310: + spawn class_0A0C_slot_32(pid, onTime, 0x00000000); + suspend; + + block_0336: + if (Intrinsic00DA(arg_06) > 0) goto block_0374; + + block_034B: + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + goto block_0336; + + block_0374: + + block_037D: + foreach_list item -> block_03B2; + + block_0382: + if (Item.getUnkEggType(item) != counter) goto block_03AC; + + block_0394: + + block_03AC: + goto block_037D; + + block_03B2: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0220; + + block_03E5: + if (wantToStop != 1) goto block_0495; + + block_03F0: + + block_03F9: + foreach_list item -> block_0429; + + block_03FE: + goto block_03F9; + + block_0429: + if (wantToStop != 1) goto block_0495; + + block_0437: + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + wantToStop = 0; + + block_046D: + foreach_list item -> block_0492; + + block_0472: + if (Item.getStatus(item) & 0x1000) goto block_048C; + + block_0485: + wantToStop = 1; + + block_048C: + goto block_046D; + + block_0492: + goto block_0429; + + block_0495: + goto block_020A; + + block_0498: + /* free_local_list bp_offset=0xF2 target=[BP-0Eh] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FLOOR1/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/FLOOR1/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..3c97ca1 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FLOOR1/slot_10_leaveFastArea.txt @@ -0,0 +1,9 @@ +function floor1_leaveFastArea() /* entry=342 class_id=0x0902 slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + class_0A0C_slot_33(*(arg_06), 0x021B); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FLORMINE/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/FLORMINE/slot_06_gotHit.txt new file mode 100644 index 0000000..400d2f5 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FLORMINE/slot_06_gotHit.txt @@ -0,0 +1,52 @@ +function flormine_gotHit() /* entry=143 class_id=0x029F slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + hType, /* [BP-02h] type=0x69 */ + item; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + if (Item.getFrame(arg_06) > 1) goto block_0106; + + block_0100: + goto block_01E7; + + block_0106: + class_0A0C_slot_2C(vel, ref); + hType = retval; + if hType goto block_016C; + + block_011F: + if (hType != 4) goto block_0139; + + block_0130: + goto block_01E7; + + block_0136: + goto block_0169; + + block_0139: + + block_0169: + goto block_01E7; + + block_016C: + item = ref; + if Item.isOn(*(arg_06), item) goto block_01E7; + + block_0186: + if (((ref < 0x00FF) && (ref != Item.pop())) && (Intrinsic0007(arg_06) != 0)) goto block_01B7; + + block_01B1: + goto block_01E7; + + block_01B7: + + block_01E7: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_20_slot_20.txt new file mode 100644 index 0000000..1a16aa5 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_20_slot_20.txt @@ -0,0 +1,9 @@ +function free_slot_20() /* entry=382 class_id=0x0A0C slot=0x20 */ +{ + entry: + goto block_01C0; + + block_01C0: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_21_slot_21.txt new file mode 100644 index 0000000..bac2ef0 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_21_slot_21.txt @@ -0,0 +1,19 @@ +function free_slot_21() /* entry=382 class_id=0x0A0C slot=0x21 */ +{ + entry: + set_info(1, 0); + /* global_address global_id=0x3C */ + + block_01F0: + /* global_address global_id=0x3C */ + if Item.touch(arg_06) goto block_022B; + + block_0202: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_01F0; + + block_022B: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_22_slot_22.txt b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_22_slot_22.txt new file mode 100644 index 0000000..85e0b4e --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_22_slot_22.txt @@ -0,0 +1,71 @@ +function free_slot_22() /* entry=382 class_id=0x0A0C slot=0x22 */ +{ + entry: + set_info(0x022B, 0); + if global[0x0006] goto block_025E; + + block_0258: + goto block_0579; + + block_025E: + /* pop_global global_id=0x6 size=0x1 */ + + block_0267: + suspend; + spawn class_0A0C_slot_32(pid, 100, 0x00000000); + suspend; + spawn class_0A0C_slot_21(pid, 0x007F, 0x00000000); + suspend; + spawn class_0A0C_slot_21(pid, 57, 0x00000000); + suspend; + spawn class_0A0C_slot_21(pid, 60, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 0x1770, 0x00000000); + suspend; + spawn class_0A0C_slot_21(pid, 34, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 0x1770, 0x00000000); + suspend; + spawn class_0A0C_slot_21(pid, 33, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 0x1770, 0x00000000); + suspend; + spawn class_0A0C_slot_21(pid, 31, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 0x1770, 0x00000000); + suspend; + spawn class_0A0C_slot_21(pid, 26, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 0x0BB8, 0x00000000); + suspend; + spawn class_0A0C_slot_21(pid, 32, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 0x0708, 0x00000000); + suspend; + if (!global[0x0006]) goto block_04C6; + + block_04C0: + goto block_0579; + + block_04C6: + /* global_address global_id=0x3C */ + if (!Kernel.resetRef()) goto block_0576; + + block_04DA: + /* global_address global_id=0x3C */ + /* pop_global global_id=0x6 size=0x1 */ + spawn class_0A0C_slot_32(0, pid, 10, 0x00000000); + suspend; + /* str_to_ptr */ + /* global_address global_id=0x3C */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_0579; + + block_0576: + goto block_0267; + + block_0579: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_23_slot_23.txt b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_23_slot_23.txt new file mode 100644 index 0000000..b30fad4 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_23_slot_23.txt @@ -0,0 +1,8 @@ +function free_slot_23() /* entry=382 class_id=0x0A0C slot=0x23 */ +{ + entry: + set_info(1, global[0x003C]); + class_0A0C_slot_33(0x0224, 0); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_24_slot_24.txt b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_24_slot_24.txt new file mode 100644 index 0000000..e320aee --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_24_slot_24.txt @@ -0,0 +1,43 @@ +function free_slot_24() /* entry=382 class_id=0x0A0C slot=0x24 */ +{ + entry: + set_info(0x0224, 0); + if global[0x0006] goto block_05D3; + + block_05CD: + goto block_06DF; + + block_05D3: + /* pop_global global_id=0x6 size=0x1 */ + + block_05DC: + suspend; + spawn class_0A0C_slot_32(pid, arg_06, 0x00000000); + suspend; + if (!global[0x0006]) goto block_0620; + + block_061A: + goto block_06DF; + + block_0620: + arg_06 = (arg_06 - 1); + if (arg_06 != 0) goto block_06DC; + + block_0640: + /* pop_global global_id=0x6 size=0x1 */ + /* global_address global_id=0x3C */ + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + /* str_to_ptr */ + /* global_address global_id=0x3C */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_06DF; + + block_06DC: + goto block_05DC; + + block_06DF: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_25_slot_25.txt b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_25_slot_25.txt new file mode 100644 index 0000000..5aeaddd --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_25_slot_25.txt @@ -0,0 +1,9 @@ +function free_slot_25() /* entry=382 class_id=0x0A0C slot=0x25 */ +{ + entry: + set_info(0x0224, global[0x003C]); + /* pop_global global_id=0x6 size=0x1 */ + class_0A0C_slot_33(0, 0x0224, 0); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_26_slot_26.txt b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_26_slot_26.txt new file mode 100644 index 0000000..43efe72 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_26_slot_26.txt @@ -0,0 +1,48 @@ +function free_slot_26() /* entry=382 class_id=0x0A0C slot=0x26 */ +{ + var + flick, /* [BP+06h] type=0x73 */ + localFlick; /* [BP-02h] type=0x73 */ + + entry: + /* param_pid_chg bp_offset=0x6 target=[BP+06h] copy_type=0x1 */ + set_info(1, global[0x003C]); + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + localFlick = flick; + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + class_0A0C_slot_41(); + + block_078D: + /* global_address global_id=0x3C */ + if Npc.isDead() goto block_07C6; + + block_079D: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_078D; + + block_07C6: + /* global_address global_id=0x3C */ + if (!Kernel.resetRef()) goto block_085A; + + block_07DA: + /* global_address global_id=0x3C */ + if Intrinsic0033() goto block_0810; + + block_07EA: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_07DA; + + block_0810: + /* global_address global_id=0x3C */ + suspend; + /* global_address global_id=0x3C */ + suspend; + + block_085A: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_27_slot_27.txt b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_27_slot_27.txt new file mode 100644 index 0000000..d3ed8ac --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_27_slot_27.txt @@ -0,0 +1,36 @@ +function free_slot_27() /* entry=382 class_id=0x0A0C slot=0x27 */ +{ + entry: + local_02 = (arg_06 - arg_0B); + local_04 = (arg_08 - arg_0D); + local_06 = (arg_0A - arg_0F); + class_0A0C_slot_3F(local_02); + local_02 = retval; + class_0A0C_slot_3F(local_04); + local_04 = retval; + class_0A0C_slot_3F(local_06); + local_06 = retval; + if ((local_02 > local_04) && (local_02 > local_06)) goto block_08FC; + + block_08F3: + goto block_093F; + + block_08FC: + if ((local_04 > local_02) && (local_04 > local_06)) goto block_0919; + + block_0910: + goto block_093F; + + block_0919: + if ((local_06 > local_02) && (local_06 > local_04)) goto block_0936; + + block_092D: + goto block_093F; + + block_0936: + goto block_093F; + + block_093F: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_28_slot_28.txt b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_28_slot_28.txt new file mode 100644 index 0000000..2b5d0b6 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_28_slot_28.txt @@ -0,0 +1,72 @@ +function free_slot_28() /* entry=382 class_id=0x0A0C slot=0x28 */ +{ + var + r1, /* [BP+06h] type=0x69 */ + r2, /* [BP+08h] type=0x69 */ + item1, /* [BP-02h] type=0x24 */ + item2, /* [BP-04h] type=0x24 */ + avatarMap, /* [BP-06h] type=0x69 */ + npc1, /* [BP-08h] type=0x24 */ + npc2, /* [BP-0Ah] type=0x24 */ + x, /* [BP-0Ch] type=0x69 */ + y, /* [BP-0Eh] type=0x69 */ + z; /* [BP-10h] type=0x69 */ + + entry: + item1 = r1; + item2 = r2; + /* global_address global_id=0x3C */ + avatarMap = Item.getType(); + if Item.isNpc(item1) goto block_09C7; + + block_099F: + npc1 = item1; + if (Item.getType(npc1) != avatarMap) goto block_09C7; + + block_09BE: + goto block_0AD3; + + block_09C7: + if Item.isNpc(item2) goto block_09FE; + + block_09D6: + npc2 = item2; + if (Item.getType(npc2) != avatarMap) goto block_09FE; + + block_09F5: + goto block_0AD3; + + block_09FE: + x = (Intrinsic0013(item1) - Intrinsic0013(item2)); + y = (Item.legal_create(item1) - Item.legal_create(item2)); + z = (Item.getZ(item1) - Item.getZ(item2)); + class_0A0C_slot_3F(x); + x = retval; + class_0A0C_slot_3F(y); + y = retval; + class_0A0C_slot_3F(z); + z = retval; + if ((x > y) && (x > z)) goto block_0A90; + + block_0A87: + goto block_0AD3; + + block_0A90: + if ((y > x) && (y > z)) goto block_0AAD; + + block_0AA4: + goto block_0AD3; + + block_0AAD: + if ((z > x) && (z > y)) goto block_0ACA; + + block_0AC1: + goto block_0AD3; + + block_0ACA: + goto block_0AD3; + + block_0AD3: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_29_slot_29.txt b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_29_slot_29.txt new file mode 100644 index 0000000..d9610a8 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_29_slot_29.txt @@ -0,0 +1,17 @@ +function free_slot_29() /* entry=382 class_id=0x0A0C slot=0x29 */ +{ + var + ref1, /* [BP+06h] type=0x69 */ + ref2, /* [BP+08h] type=0x69 */ + dist; /* [BP-02h] type=0x69 */ + + entry: + class_0A0C_slot_28(ref2, ref1); + dist = retval; + dist = (dist / 32); + goto block_0B5F; + + block_0B5F: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_2A_slot_2A.txt b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_2A_slot_2A.txt new file mode 100644 index 0000000..1f04601 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_2A_slot_2A.txt @@ -0,0 +1,46 @@ +function free_slot_2A() /* entry=382 class_id=0x0A0C slot=0x2A */ +{ + var + range, /* [BP+06h] type=0x69 */ + t, /* [BP+08h] type=0x69 */ + f, /* [BP+0Ah] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + closestItem, /* [BP-04h] type=0x24 */ + closest, /* [BP-06h] type=0x69 */ + dist; /* [BP-08h] type=0x69 */ + + entry: + closest = 0x7D00; + closestItem = 0; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0BBA: + if condition goto block_0C0B; + + block_0BBD: + if (Item.getFrame(item) != f) goto block_0C07; + + block_0BD5: + class_0A0C_slot_28(item, global[0x003C]); + dist = retval; + if (dist < closest) goto block_0C07; + + block_0BF9: + closest = dist; + closestItem = item; + + block_0C07: + /* loopnext */ + goto block_0BBA; + + block_0C0B: + goto block_0C16; + + block_0C16: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_2B_slot_2B.txt b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_2B_slot_2B.txt new file mode 100644 index 0000000..eec5470 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_2B_slot_2B.txt @@ -0,0 +1,15 @@ +function free_slot_2B() /* entry=382 class_id=0x0A0C slot=0x2B */ +{ + entry: + if (arg_06 != 0x4000) goto block_0C8A; + + block_0C7D: + goto block_0C93; + + block_0C8A: + goto block_0C93; + + block_0C93: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_2C_slot_2C.txt b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_2C_slot_2C.txt new file mode 100644 index 0000000..cbe77d8 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_2C_slot_2C.txt @@ -0,0 +1,17 @@ +function free_slot_2C() /* entry=382 class_id=0x0A0C slot=0x2C */ +{ + entry: + if (arg_06 != 0x4000) goto block_0CD9; + + block_0CC6: + /* rsh */ + arg_08 = 8; + goto block_0CE2; + + block_0CD9: + goto block_0CE2; + + block_0CE2: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_2D_slot_2D.txt b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_2D_slot_2D.txt new file mode 100644 index 0000000..c19f4f4 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_2D_slot_2D.txt @@ -0,0 +1,38 @@ +function free_slot_2D() /* entry=382 class_id=0x0A0C slot=0x2D */ +{ + var + r, /* [BP+06h] type=0x69 */ + t, /* [BP+08h] type=0x69 */ + f, /* [BP+0Ah] type=0x69 */ + x, /* [BP+0Ch] type=0x69 */ + y, /* [BP+0Eh] type=0x69 */ + z, /* [BP+10h] type=0x69 */ + ref, /* [BP-02h] type=0x24 */ + item; /* [BP-04h] type=0x24 */ + + entry: + ref = r; + if (Item.hurl(t) != Intrinsic003C(ref)) goto block_0DBC; + + block_0D29: + if Intrinsic0019(z, y, x, f, t, item) goto block_0DA5; + + block_0D58: + goto block_0DC5; + + block_0DA2: + goto block_0DB9; + + block_0DA5: + goto block_0DC5; + + block_0DB9: + goto block_0DC5; + + block_0DBC: + goto block_0DC5; + + block_0DC5: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_2E_slot_2E.txt b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_2E_slot_2E.txt new file mode 100644 index 0000000..2523bd7 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_2E_slot_2E.txt @@ -0,0 +1,29 @@ +function free_slot_2E() /* entry=382 class_id=0x0A0C slot=0x2E */ +{ + var + ref, /* [BP+06h] type=0x69 */ + phold, /* [BP-02h] type=0x24 */ + item, /* [BP-04h] type=0x24 */ + a, /* [BP-06h] type=0x69 */ + b, /* [BP-08h] type=0x69 */ + c; /* [BP-0Ah] type=0x69 */ + + entry: + set_info(1, 0); + phold = ref; + if (Intrinsic0016(phold) != 0x0476) goto block_0EF2; + + block_0E30: + a = Intrinsic00AD(phold); + c = (a & 15); + b = Item.getMapNum(phold); + b = (((a & 0x00E0) * 8) + b); + if (b != 0) goto block_0EF2; + + block_0E72: + goto block_0EF2; + + block_0EF2: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_2F_slot_2F.txt b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_2F_slot_2F.txt new file mode 100644 index 0000000..08b413c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_2F_slot_2F.txt @@ -0,0 +1,30 @@ +function free_slot_2F() /* entry=382 class_id=0x0A0C slot=0x2F */ +{ + var + ref, /* [BP+06h] type=0x69 */ + addType, /* [BP+08h] type=0x69 */ + phold, /* [BP-02h] type=0x24 */ + item, /* [BP-04h] type=0x24 */ + a, /* [BP-06h] type=0x69 */ + b, /* [BP-08h] type=0x69 */ + c; /* [BP-0Ah] type=0x69 */ + + entry: + set_info(1, 0); + phold = ref; + if (Intrinsic0016(phold) != 0x0476) goto block_1020; + + block_0F55: + a = Intrinsic00AD(phold); + c = (a & 15); + b = Item.getMapNum(phold); + b = (((a & 0x00E0) * 8) + b); + if ((b != 0) && (b != addType)) goto block_1020; + + block_0FA0: + goto block_1020; + + block_1020: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_30_slot_30.txt b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_30_slot_30.txt new file mode 100644 index 0000000..3bb7364 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_30_slot_30.txt @@ -0,0 +1,25 @@ +function free_slot_30() /* entry=382 class_id=0x0A0C slot=0x30 */ +{ + var + ref, /* [BP+06h] type=0x69 */ + addType, /* [BP+08h] type=0x69 */ + fram, /* [BP+0Ah] type=0x69 */ + var, /* [BP+0Ch] type=0x69 */ + phold, /* [BP-02h] type=0x24 */ + item; /* [BP-04h] type=0x24 */ + + entry: + set_info(1, 0); + phold = ref; + if (Intrinsic0016(phold) != 0x0476) goto block_111A; + + block_108F: + if (addType != 0) goto block_111A; + + block_109A: + goto block_111A; + + block_111A: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_31_slot_31.txt b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_31_slot_31.txt new file mode 100644 index 0000000..655cdee --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_31_slot_31.txt @@ -0,0 +1,32 @@ +function free_slot_31() /* entry=382 class_id=0x0A0C slot=0x31 */ +{ + var + ref, /* [BP+06h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + phold, /* [BP-04h] type=0x24 */ + a, /* [BP-06h] type=0x69 */ + b, /* [BP-08h] type=0x69 */ + c; /* [BP-0Ah] type=0x69 */ + + entry: + set_info(1, 0); + item = ref; + if item goto block_12B3; + + block_117D: + c = Item.getFrame(item); + b = Intrinsic0016(item); + a = (b & 0x00FF); + b = (b & 0x0700); + b = (b / 8); + b = (b + c); + suspend; + /* bit_not */ + /* word_to_dword */ + /* pop_result */ + goto block_12B3; + + block_12B3: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_32_slot_32.txt b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_32_slot_32.txt new file mode 100644 index 0000000..528918c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_32_slot_32.txt @@ -0,0 +1,37 @@ +function free_slot_32() /* entry=382 class_id=0x0A0C slot=0x32 */ +{ + var + time, /* [BP+06h] type=0x69 */ + oldTick, /* [BP-04h] type=0x64 */ + newTick; /* [BP-08h] type=0x64 */ + + entry: + set_info(9, 0); + newTick = Item.andStatus(); + oldTick = Item.andStatus(); + if (time < 1) goto block_1324; + + block_131E: + goto block_1374; + + block_1324: + suspend; + newTick = Item.andStatus(); + /* ne_dword */ + if oldTick goto block_1371; + + block_134C: + oldTick = newTick; + time = (time - 1); + if (time < 1) goto block_1371; + + block_136B: + goto block_1374; + + block_1371: + goto block_1324; + + block_1374: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_33_slot_33.txt b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_33_slot_33.txt new file mode 100644 index 0000000..90aa4d2 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_33_slot_33.txt @@ -0,0 +1,6 @@ +function free_slot_33() /* entry=382 class_id=0x0A0C slot=0x33 */ +{ + entry: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_34_slot_34.txt b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_34_slot_34.txt new file mode 100644 index 0000000..e2bfe6d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_34_slot_34.txt @@ -0,0 +1,22 @@ +function free_slot_34() /* entry=382 class_id=0x0A0C slot=0x34 */ +{ + entry: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + if (Item.legal_create((Item.legal_create((Intrinsic0013((Intrinsic0013() >= (arg_06 - 0x0200))) <= (arg_06 + 0x0200))) >= (arg_08 - 0x0200))) <= (arg_08 + 0x0200)) goto block_1439; + + block_142D: + goto block_1442; + + block_1436: + goto block_1442; + + block_1439: + goto block_1442; + + block_1442: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_35_slot_35.txt b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_35_slot_35.txt new file mode 100644 index 0000000..40cb254 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_35_slot_35.txt @@ -0,0 +1,25 @@ +function free_slot_35() /* entry=382 class_id=0x0A0C slot=0x35 */ +{ + var + list, /* [BP+06h] type=0x7A */ + member, /* [BP-02h] type=0x73 */ + count; /* [BP-04h] type=0x69 */ + + entry: + count = 0; + + block_1471: + foreach_slist member -> block_1486; + + block_1476: + count = (1 + count); + goto block_1471; + + block_1486: + goto block_148F; + + block_148F: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_36_slot_36.txt b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_36_slot_36.txt new file mode 100644 index 0000000..cf6ba14 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_36_slot_36.txt @@ -0,0 +1,23 @@ +function free_slot_36() /* entry=382 class_id=0x0A0C slot=0x36 */ +{ + var + list, /* [BP+06h] type=0x7A */ + line, /* [BP+08h] type=0x73 */ + temp; /* [BP-02h] type=0x7A */ + + entry: + /* free_local_slist bp_offset=0xFE target=[BP-02h] */ + temp = list; + /* create_list element_size=0x2 count=0x1 */ + /* free_local_slist bp_offset=0x6 target=[BP+06h] */ + list = line; + /* append_list */ + /* free_local_slist bp_offset=0x6 target=[BP+06h] */ + list = temp; + goto block_14ED; + + block_14ED: + /* free_local_slist bp_offset=0xFE target=[BP-02h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_37_slot_37.txt b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_37_slot_37.txt new file mode 100644 index 0000000..ca3b37a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_37_slot_37.txt @@ -0,0 +1,17 @@ +function free_slot_37() /* entry=382 class_id=0x0A0C slot=0x37 */ +{ + entry: + /* 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; + goto block_1545; + + block_1545: + /* free_local_slist bp_offset=0xFE target=[BP-02h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_38_slot_38.txt b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_38_slot_38.txt new file mode 100644 index 0000000..f521aec --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_38_slot_38.txt @@ -0,0 +1,17 @@ +function free_slot_38() /* entry=382 class_id=0x0A0C slot=0x38 */ +{ + entry: + /* 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; + goto block_159F; + + block_159F: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_39_slot_39.txt b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_39_slot_39.txt new file mode 100644 index 0000000..a758729 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_39_slot_39.txt @@ -0,0 +1,30 @@ +function free_slot_39() /* entry=382 class_id=0x0A0C slot=0x39 */ +{ + var + list, /* [BP+06h] type=0x7A */ + lines, /* [BP+08h] type=0x7A */ + line; /* [BP-02h] type=0x73 */ + + entry: + + block_15CD: + foreach_slist line -> block_15E8; + + block_15D2: + /* create_list element_size=0x2 count=0x1 */ + /* remove_matching_indirect element_size=0x2 */ + /* free_local_slist bp_offset=0x6 target=[BP+06h] */ + list = line; + goto block_15CD; + + block_15E8: + /* append_list */ + /* free_local_slist bp_offset=0x6 target=[BP+06h] */ + list = lines; + goto block_15FD; + + block_15FD: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_3A_slot_3A.txt b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_3A_slot_3A.txt new file mode 100644 index 0000000..48e92bf --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_3A_slot_3A.txt @@ -0,0 +1,24 @@ +function free_slot_3A() /* entry=382 class_id=0x0A0C slot=0x3A */ +{ + var + list, /* [BP+06h] type=0x6C */ + member, /* [BP-02h] type=0x69 */ + count; /* [BP-04h] type=0x69 */ + + entry: + count = 0; + + block_163F: + foreach_list member -> block_1654; + + block_1644: + count = (1 + count); + goto block_163F; + + block_1654: + goto block_165D; + + block_165D: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_3B_slot_3B.txt b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_3B_slot_3B.txt new file mode 100644 index 0000000..84789f4 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_3B_slot_3B.txt @@ -0,0 +1,49 @@ +function free_slot_3B() /* entry=382 class_id=0x0A0C slot=0x3B */ +{ + var + counter, /* [BP-02h] type=0x69 */ + alarm, /* [BP-04h] type=0x69 */ + item, /* [BP-06h] type=0x24 */ + n, /* [BP-08h] type=0x24 */ + ref, /* [BP-0Ah] type=0x69 */ + notAlarmed; /* [BP-0Bh] type=0x62 */ + + set_info(0x022B, 0); + ref = 1; + if (Intrinsic0000()) { + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + if (Item.getType((Item.getType((Item.getType((Item.getType((Item.getType((Item.getType() != 1)) != 5)) != 9)) != 13)) != 23)) == 27) { + alarm = 22; + } + else if (Item.getType((Item.getType((Item.getType() != 3)) != 15)) == 25) { + alarm = 0x0096; + } + else if (Item.getType((Item.getType((Item.getType((Item.getType() != 7)) != 11)) != 17)) == 24) { + alarm = 0x00A0; + } + else if (Item.getType((Item.getType((Item.getType() != 10)) != 19)) == 21) { + alarm = 0x0096; + } + else if (Item.getType() == 29) { + alarm = 0x00C4; + } + counter = 0; + } + return; +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_3C_slot_3C.txt b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_3C_slot_3C.txt new file mode 100644 index 0000000..64a9afa --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_3C_slot_3C.txt @@ -0,0 +1,79 @@ +function free_slot_3C() /* entry=382 class_id=0x0A0C slot=0x3C */ +{ + var + item, /* [BP-02h] type=0x24 */ + ref, /* [BP-04h] type=0x69 */ + rndVoice; /* [BP-06h] type=0x69 */ + + entry: + set_info(1, 0); + class_0A0C_slot_33(0x022B, 0); + ref = 1; + if (Item.getNpcNum() != 1) goto block_1B14; + + block_1B07: + goto block_1D0A; + + block_1B14: + rndVoice = Intrinsic00DA(100, 0); + if (rndVoice < 30) goto block_1BA9; + + block_1B32: + spawn class_0A0C_slot_21(pid, 15, 0x00000000); + suspend; + rndVoice = Intrinsic00DA(100, 0); + if (rndVoice < 50) goto block_1B9C; + + block_1B76: + spawn class_0A0C_slot_21(pid, 14, 0x00000000); + suspend; + + block_1B9C: + goto block_1D0A; + + block_1BA9: + if (rndVoice > 60) goto block_1C63; + + block_1BB7: + spawn class_0A0C_slot_21(pid, 14, 0x00000000); + suspend; + rndVoice = Intrinsic00DA(100, 0); + if (rndVoice < 30) goto block_1C21; + + block_1BFB: + spawn class_0A0C_slot_21(pid, 15, 0x00000000); + suspend; + + block_1C21: + if (rndVoice > 60) goto block_1C56; + + block_1C2F: + spawn class_0A0C_slot_21(pid, 0x00B6, 0x00000000); + suspend; + + block_1C56: + goto block_1D0A; + + block_1C63: + spawn class_0A0C_slot_21(pid, 0x00D2, 0x00000000); + suspend; + rndVoice = Intrinsic00DA(100, 0); + if (rndVoice < 30) goto block_1CCE; + + block_1CA8: + spawn class_0A0C_slot_21(pid, 14, 0x00000000); + suspend; + + block_1CCE: + if (rndVoice > 60) goto block_1D03; + + block_1CDC: + spawn class_0A0C_slot_21(pid, 0x00B6, 0x00000000); + suspend; + + block_1D03: + + block_1D0A: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_3D_slot_3D.txt b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_3D_slot_3D.txt new file mode 100644 index 0000000..14ef141 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_3D_slot_3D.txt @@ -0,0 +1,8 @@ +function free_slot_3D() /* entry=382 class_id=0x0A0C slot=0x3D */ +{ + entry: + set_info(1, 0); + /* global_address global_id=0x3C */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_3E_slot_3E.txt b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_3E_slot_3E.txt new file mode 100644 index 0000000..2dbc6cd --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_3E_slot_3E.txt @@ -0,0 +1,11 @@ +function free_slot_3E() /* entry=382 class_id=0x0A0C slot=0x3E */ +{ + entry: + set_info(1, 0); + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_3F_slot_3F.txt b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_3F_slot_3F.txt new file mode 100644 index 0000000..c3d81a9 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_3F_slot_3F.txt @@ -0,0 +1,15 @@ +function free_slot_3F() /* entry=382 class_id=0x0A0C slot=0x3F */ +{ + entry: + if (arg_06 > 0) goto block_1DE3; + + block_1DDA: + goto block_1DEF; + + block_1DE3: + goto block_1DEF; + + block_1DEF: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_40_slot_40.txt b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_40_slot_40.txt new file mode 100644 index 0000000..d8708a8 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_40_slot_40.txt @@ -0,0 +1,33 @@ +function free_slot_40() /* entry=382 class_id=0x0A0C slot=0x40 */ +{ + var + source, /* [BP+06h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + leftOvers; /* [BP-03h] type=0x62 */ + + entry: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFE string_bytes=0x1 loop_type=0x4 */ + + block_1E17: + if condition goto block_1E76; + + block_1E1A: + if (!Item.getCY(1, item)) goto block_1E72; + + block_1E2F: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + + block_1E72: + /* loopnext */ + goto block_1E17; + + block_1E76: + goto block_1E81; + + block_1E81: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_41_slot_41.txt b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_41_slot_41.txt new file mode 100644 index 0000000..9c20019 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FREE/slot_41_slot_41.txt @@ -0,0 +1,22 @@ +function free_slot_41() /* entry=382 class_id=0x0A0C slot=0x41 */ +{ + var + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(1, 0); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_1EDF: + if condition goto block_1EF1; + + block_1EE2: + /* loopnext */ + goto block_1EDF; + + block_1EF1: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FUSPAC/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/FUSPAC/slot_01_use.txt new file mode 100644 index 0000000..5410778 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FUSPAC/slot_01_use.txt @@ -0,0 +1,361 @@ +function fuspac_use() /* entry=208 class_id=0x039C slot=0x01 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + InCrouch, /* [BP-01h] type=0x62 */ + droppedPac, /* [BP-02h] type=0x62 */ + Fusionpac, /* [BP-04h] type=0x24 */ + target, /* [BP-06h] type=0x24 */ + item, /* [BP-08h] type=0x24 */ + counter, /* [BP-0Ah] type=0x69 */ + lastAnim, /* [BP-0Ch] type=0x69 */ + xOff, /* [BP-0Eh] type=0x69 */ + yOff, /* [BP-10h] type=0x69 */ + mine, /* [BP-12h] type=0x24 */ + door; /* [BP-14h] type=0x24 */ + + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + Fusionpac = *(arg_06); + set_info(0x00F0, 0); + /* global_address global_id=0x3C */ + lastAnim = Item.isOn(); + + block_0117: + /* global_address global_id=0x3C */ + if Intrinsic0033() goto block_014D; + + block_0127: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0117; + + block_014D: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF8 string_bytes=0x6 loop_type=0x2 */ + + block_016B: + if condition goto block_022D; + + block_016E: + target = item; + + block_0175: + class_0A0C_slot_29(target, global[0x003C]); + if ((retval > 3) && (counter != 6)) goto block_01F6; + + block_0198: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + spawn class_0A11_slot_22(Item.getDirToItem(Intrinsic0013(pid, 1, Item.legal_create(Item.legal_create(target), Intrinsic0013(target))))); + suspend; + counter = (1 + counter); + goto block_0175; + + block_01F6: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + goto block_022D; + + block_0229: + /* loopnext */ + goto block_016B; + + block_022D: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 0) goto block_024D; + + block_023F: + xOff = -1; + yOff = -3; + goto block_040F; + + block_024D: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 1) goto block_026B; + + block_025D: + xOff = 0; + yOff = -3; + goto block_040F; + + block_026B: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 2) goto block_0289; + + block_027B: + xOff = 1; + yOff = -3; + goto block_040F; + + block_0289: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 3) goto block_02A7; + + block_0299: + xOff = 2; + yOff = -2; + goto block_040F; + + block_02A7: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 4) goto block_02C5; + + block_02B7: + xOff = 2; + yOff = -1; + goto block_040F; + + block_02C5: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 5) goto block_02E3; + + block_02D5: + xOff = 2; + yOff = 0; + goto block_040F; + + block_02E3: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 6) goto block_0301; + + block_02F3: + xOff = 2; + yOff = 2; + goto block_040F; + + block_0301: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 7) goto block_031F; + + block_0311: + xOff = 0; + yOff = 2; + goto block_040F; + + block_031F: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 8) goto block_033D; + + block_032F: + xOff = -1; + yOff = 2; + goto block_040F; + + block_033D: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 9) goto block_035B; + + block_034D: + xOff = -2; + yOff = 2; + goto block_040F; + + block_035B: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 10) goto block_0379; + + block_036B: + xOff = -3; + yOff = 2; + goto block_040F; + + block_0379: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 11) goto block_0397; + + block_0389: + xOff = -3; + yOff = 1; + goto block_040F; + + block_0397: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 12) goto block_03B5; + + block_03A7: + xOff = -3; + yOff = 0; + goto block_040F; + + block_03B5: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 13) goto block_03D3; + + block_03C5: + xOff = -3; + yOff = -1; + goto block_040F; + + block_03D3: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 14) goto block_03F1; + + block_03E3: + xOff = -3; + yOff = -2; + goto block_040F; + + block_03F1: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 15) goto block_040F; + + block_0401: + xOff = -3; + yOff = -3; + goto block_040F; + + block_040F: + if (!target) goto block_0481; + + block_0418: + spawn class_0A0C_slot_21(pid, 0x00B0, 0x00000000); + suspend; + goto block_0772; + + block_047E: + goto block_0772; + + block_0481: + /* global_address global_id=0x3C */ + if Intrinsic0035() goto block_049B; + + block_0491: + InCrouch = 1; + goto block_04D2; + + block_049B: + InCrouch = 0; + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + + block_04D2: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + droppedPac = 1; + + block_052C: + /* global_address global_id=0x3C */ + if Intrinsic0033() goto block_0562; + + block_053C: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_052C; + + block_0562: + if droppedPac goto block_0772; + + block_056A: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + /* pop_global global_id=0x26 size=0x1 */ + spawn class_0A0C_slot_24(1, 100, 0x00000000); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF8 string_bytes=0x6 loop_type=0x2 */ + + block_05DE: + if condition goto block_0609; + + block_05E1: + if (Item.getQHi(item) != 33) goto block_0605; + + block_05F6: + class_0A0C_slot_2F(0x03B5, item); + + block_0605: + /* loopnext */ + goto block_05DE; + + block_0609: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xF8 string_bytes=0x6 loop_type=0x2 */ + + block_062B: + if condition goto block_0652; + + block_062E: + if (Item.getQHi(item) != 10) goto block_064E; + + block_0643: + + block_064E: + /* loopnext */ + goto block_062B; + + block_0652: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x41 */ + /* loop current_var=0xF8 string_bytes=0x4 loop_type=0x2 */ + + block_0670: + if condition goto block_06B2; + + block_0673: + if (Item.getQHi(item) != 10) goto block_06AE; + + block_0688: + door = item; + spawn class_0A06_slot_20(pid, door); + suspend; + + block_06AE: + /* loopnext */ + goto block_0670; + + block_06B2: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x41 */ + /* loop current_var=0xF8 string_bytes=0x4 loop_type=0x2 */ + + block_06CF: + if condition goto block_0706; + + block_06D2: + if (Item.getQHi(item) != 0x00FB) goto block_0702; + + block_06E8: + + block_0702: + /* loopnext */ + goto block_06CF; + + block_0706: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF8 string_bytes=0x6 loop_type=0x2 */ + + block_0727: + if condition goto block_0770; + + block_072A: + if ((Item.getFrame(item) != 0) && (Item.getQHi(item) != 47)) goto block_076C; + + block_074C: + suspend; + + block_076C: + /* loopnext */ + goto block_0727; + + block_0770: + + block_0772: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/FUSREACT/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/FUSREACT/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..53d50a8 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/FUSREACT/slot_0F_enterFastArea.txt @@ -0,0 +1,8 @@ +function fusreact_enterFastArea() /* entry=93 class_id=0x01BC slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GATGUNEW/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/GATGUNEW/slot_06_gotHit.txt new file mode 100644 index 0000000..ed28c5d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GATGUNEW/slot_06_gotHit.txt @@ -0,0 +1,14 @@ +function gatgunew_gotHit() /* entry=48 class_id=0x0113 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A1A_slot_49(vel, ref, arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GATGUNEW/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/GATGUNEW/slot_0A_equip.txt new file mode 100644 index 0000000..8c9d678 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GATGUNEW/slot_0A_equip.txt @@ -0,0 +1,20 @@ +function gatgunew_equip() /* entry=48 class_id=0x0113 slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (Item.pop() != 0) goto block_0290; + + block_0265: + spawn class_0A1A_slot_24(pid, arg_0A, Item.pop(), arg_06); + suspend; + goto block_02B7; + + block_0290: + spawn class_0A1A_slot_24(pid, arg_0A, global[0x003C], arg_06); + suspend; + + block_02B7: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GATGUNEW/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/GATGUNEW/slot_0B_unequip.txt new file mode 100644 index 0000000..862ace5 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GATGUNEW/slot_0B_unequip.txt @@ -0,0 +1,17 @@ +function gatgunew_unequip() /* entry=48 class_id=0x0113 slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 4) goto block_0160; + + block_015A: + goto block_017B; + + block_0160: + spawn class_0A1A_slot_27(arg_06); + + block_017B: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GATGUNEW/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/GATGUNEW/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..4f69064 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GATGUNEW/slot_0F_enterFastArea.txt @@ -0,0 +1,17 @@ +function gatgunew_enterFastArea() /* entry=48 class_id=0x0113 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 4) goto block_0103; + + block_00FD: + goto block_011E; + + block_0103: + spawn class_0A1A_slot_27(arg_06); + + block_011E: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GATGUNEW/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/GATGUNEW/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..c28b9cf --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GATGUNEW/slot_10_leaveFastArea.txt @@ -0,0 +1,11 @@ +function gatgunew_leaveFastArea() /* entry=48 class_id=0x0113 slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + /* bit_not */ + class_0A0C_slot_33(1, *(arg_06)); + class_0A0C_slot_33(0x020A, *(arg_06)); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GATGUNNS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/GATGUNNS/slot_06_gotHit.txt new file mode 100644 index 0000000..8f2cfea --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GATGUNNS/slot_06_gotHit.txt @@ -0,0 +1,14 @@ +function gatgunns_gotHit() /* entry=46 class_id=0x0108 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A1A_slot_49(vel, ref, arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GATGUNNS/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/GATGUNNS/slot_0A_equip.txt new file mode 100644 index 0000000..3f6505e --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GATGUNNS/slot_0A_equip.txt @@ -0,0 +1,20 @@ +function gatgunns_equip() /* entry=46 class_id=0x0108 slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (Item.pop() != 0) goto block_0290; + + block_0265: + spawn class_0A1A_slot_24(pid, arg_0A, Item.pop(), arg_06); + suspend; + goto block_02B7; + + block_0290: + spawn class_0A1A_slot_24(pid, arg_0A, global[0x003C], arg_06); + suspend; + + block_02B7: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GATGUNNS/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/GATGUNNS/slot_0B_unequip.txt new file mode 100644 index 0000000..38c66b3 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GATGUNNS/slot_0B_unequip.txt @@ -0,0 +1,17 @@ +function gatgunns_unequip() /* entry=46 class_id=0x0108 slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 4) goto block_0160; + + block_015A: + goto block_017B; + + block_0160: + spawn class_0A1A_slot_27(arg_06); + + block_017B: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GATGUNNS/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/GATGUNNS/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..c0767bc --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GATGUNNS/slot_0F_enterFastArea.txt @@ -0,0 +1,17 @@ +function gatgunns_enterFastArea() /* entry=46 class_id=0x0108 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 4) goto block_0103; + + block_00FD: + goto block_011E; + + block_0103: + spawn class_0A1A_slot_27(arg_06); + + block_011E: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GATGUNNS/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/GATGUNNS/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..bac40dd --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GATGUNNS/slot_10_leaveFastArea.txt @@ -0,0 +1,11 @@ +function gatgunns_leaveFastArea() /* entry=46 class_id=0x0108 slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + /* bit_not */ + class_0A0C_slot_33(1, *(arg_06)); + class_0A0C_slot_33(0x020A, *(arg_06)); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GBOX_EW/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/GBOX_EW/slot_06_gotHit.txt new file mode 100644 index 0000000..5cafc95 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GBOX_EW/slot_06_gotHit.txt @@ -0,0 +1,49 @@ +function gbox_ew_gotHit() /* entry=302 class_id=0x0527 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if retval goto block_01F2; + + block_00FD: + if (!Item.getFrame(arg_06)) goto block_014E; + + block_0110: + spawn class_0A1E_slot_28(pid, 0, 0, arg_06); + suspend; + goto block_01F2; + + block_014E: + spawn class_0A1E_slot_27(pid, 100, vel, ref, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_01AE; + + block_017E: + class_0A0C_slot_20(1); + if retval goto block_019E; + + block_018E: + goto block_01AB; + + block_019E: + + block_01AB: + goto block_01F2; + + block_01AE: + spawn class_0A1E_slot_2A(pid, arg_06); + suspend; + spawn class_0A1E_slot_28(pid, 1, 1, arg_06); + suspend; + + block_01F2: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GBOX_NS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/GBOX_NS/slot_06_gotHit.txt new file mode 100644 index 0000000..d1c9e51 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GBOX_NS/slot_06_gotHit.txt @@ -0,0 +1,49 @@ +function gbox_ns_gotHit() /* entry=301 class_id=0x0526 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if retval goto block_01F2; + + block_00FD: + if (!Item.getFrame(arg_06)) goto block_014E; + + block_0110: + spawn class_0A1E_slot_28(pid, 0, 0, arg_06); + suspend; + goto block_01F2; + + block_014E: + spawn class_0A1E_slot_27(pid, 100, vel, ref, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_01AE; + + block_017E: + class_0A0C_slot_20(1); + if retval goto block_019E; + + block_018E: + goto block_01AB; + + block_019E: + + block_01AB: + goto block_01F2; + + block_01AE: + spawn class_0A1E_slot_2A(pid, arg_06); + suspend; + spawn class_0A1E_slot_28(pid, 1, 1, arg_06); + suspend; + + block_01F2: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GDOOR_E/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/GDOOR_E/slot_06_gotHit.txt new file mode 100644 index 0000000..61e2659 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GDOOR_E/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function gdoor_e_gotHit() /* entry=169 class_id=0x030B slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A06_slot_23(pid, vel, ref, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GDOOR_E2/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/GDOOR_E2/slot_06_gotHit.txt new file mode 100644 index 0000000..603321c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GDOOR_E2/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function gdoor_e2_gotHit() /* entry=27 class_id=0x0095 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A06_slot_23(pid, vel, ref, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GDOOR_N/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/GDOOR_N/slot_06_gotHit.txt new file mode 100644 index 0000000..f0e3c8a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GDOOR_N/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function gdoor_n_gotHit() /* entry=168 class_id=0x030A slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A06_slot_23(pid, vel, ref, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GDOOR_N2/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/GDOOR_N2/slot_06_gotHit.txt new file mode 100644 index 0000000..1264a8c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GDOOR_N2/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function gdoor_n2_gotHit() /* entry=29 class_id=0x0099 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A06_slot_23(pid, vel, ref, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GENERATR/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/GENERATR/slot_06_gotHit.txt new file mode 100644 index 0000000..d56b089 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GENERATR/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function generatr_gotHit() /* entry=221 class_id=0x03C1 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GLASS_EW/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/GLASS_EW/slot_06_gotHit.txt new file mode 100644 index 0000000..b0b2533 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GLASS_EW/slot_06_gotHit.txt @@ -0,0 +1,73 @@ +function glass_ew_gotHit() /* entry=137 class_id=0x027B slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + shot, /* [BP-04h] type=0x24 */ + counter, /* [BP-06h] type=0x69 */ + door; /* [BP-08h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + shot = ref; + class_0A0C_slot_2C(vel, ref); + if (!retval) goto block_010E; + + block_0108: + goto block_0307; + + block_010E: + door = *(arg_06); + spawn class_0A1E_slot_27(pid, 1, vel, ref, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_017A; + + block_0147: + class_0A0C_slot_20(1); + if retval goto block_0167; + + block_0157: + goto block_0174; + + block_0167: + + block_0174: + goto block_0307; + + block_017A: + spawn class_0A06_slot_22(pid, door); + suspend; + if (!Item.getFrame(arg_06)) goto block_0307; + + block_01A9: + counter = 1; + + block_01BD: + if (counter <= 3) goto block_0205; + + block_01C5: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_01BD; + + block_0205: + if Npc.isDead((Item.getZ(arg_06) + 1), (Item.legal_create(arg_06) + 32), (Intrinsic0013(arg_06) + 80), 0x0349) goto block_0278; + + block_0239: + + block_0278: + if Npc.isDead((Item.getZ(arg_06) + 1), Item.legal_create(arg_06), (Intrinsic0013(arg_06) - 32), 0x027A) goto block_02E5; + + block_02A9: + + block_02E5: + + block_0307: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GLASS_NS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/GLASS_NS/slot_06_gotHit.txt new file mode 100644 index 0000000..f47a9f0 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GLASS_NS/slot_06_gotHit.txt @@ -0,0 +1,73 @@ +function glass_ns_gotHit() /* entry=163 class_id=0x02F3 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + shot, /* [BP-04h] type=0x24 */ + counter, /* [BP-06h] type=0x69 */ + door; /* [BP-08h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + shot = ref; + class_0A0C_slot_2C(vel, ref); + if (!retval) goto block_010E; + + block_0108: + goto block_0307; + + block_010E: + door = *(arg_06); + spawn class_0A1E_slot_27(pid, 1, vel, ref, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_017A; + + block_0147: + class_0A0C_slot_20(1); + if retval goto block_0167; + + block_0157: + goto block_0174; + + block_0167: + + block_0174: + goto block_0307; + + block_017A: + spawn class_0A06_slot_22(pid, door); + suspend; + if (!Item.getFrame(arg_06)) goto block_0307; + + block_01A9: + counter = 1; + + block_01BD: + if (counter <= 3) goto block_0205; + + block_01C5: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_01BD; + + block_0205: + if Npc.isDead((Item.getZ(arg_06) + 1), (Item.legal_create(arg_06) + 96), (Intrinsic0013(arg_06) + 32), 0x027A) goto block_0278; + + block_0239: + + block_0278: + if Npc.isDead((Item.getZ(arg_06) + 1), (Item.legal_create(arg_06) - 16), Intrinsic0013(arg_06), 0x0349) goto block_02E5; + + block_02A9: + + block_02E5: + + block_0307: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GLDIV_EW/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/GLDIV_EW/slot_06_gotHit.txt new file mode 100644 index 0000000..25d260d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GLDIV_EW/slot_06_gotHit.txt @@ -0,0 +1,73 @@ +function gldiv_ew_gotHit() /* entry=308 class_id=0x0541 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + shot, /* [BP-04h] type=0x24 */ + counter, /* [BP-06h] type=0x69 */ + door; /* [BP-08h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + shot = ref; + class_0A0C_slot_2C(vel, ref); + if (!retval) goto block_010E; + + block_0108: + goto block_0307; + + block_010E: + door = *(arg_06); + spawn class_0A1E_slot_27(pid, 1, vel, ref, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_017A; + + block_0147: + class_0A0C_slot_20(1); + if retval goto block_0167; + + block_0157: + goto block_0174; + + block_0167: + + block_0174: + goto block_0307; + + block_017A: + spawn class_0A06_slot_22(pid, door); + suspend; + if (!Item.getFrame(arg_06)) goto block_0307; + + block_01A9: + counter = 1; + + block_01BD: + if (counter <= 2) goto block_0205; + + block_01C5: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_01BD; + + block_0205: + if Npc.isDead((Item.getZ(arg_06) + 1), (Item.legal_create(arg_06) + 32), (Intrinsic0013(arg_06) + 80), 0x0349) goto block_0278; + + block_0239: + + block_0278: + if Npc.isDead((Item.getZ(arg_06) + 1), Item.legal_create(arg_06), (Intrinsic0013(arg_06) - 32), 0x027A) goto block_02E5; + + block_02A9: + + block_02E5: + + block_0307: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GLDIV_NS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/GLDIV_NS/slot_06_gotHit.txt new file mode 100644 index 0000000..484fd50 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GLDIV_NS/slot_06_gotHit.txt @@ -0,0 +1,73 @@ +function gldiv_ns_gotHit() /* entry=309 class_id=0x0542 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + shot, /* [BP-04h] type=0x24 */ + counter, /* [BP-06h] type=0x69 */ + door; /* [BP-08h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + shot = ref; + class_0A0C_slot_2C(vel, ref); + if (!retval) goto block_010E; + + block_0108: + goto block_0307; + + block_010E: + door = *(arg_06); + spawn class_0A1E_slot_27(pid, 1, vel, ref, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_017A; + + block_0147: + class_0A0C_slot_20(1); + if retval goto block_0167; + + block_0157: + goto block_0174; + + block_0167: + + block_0174: + goto block_0307; + + block_017A: + spawn class_0A06_slot_22(pid, door); + suspend; + if (!Item.getFrame(arg_06)) goto block_0307; + + block_01A9: + counter = 1; + + block_01BD: + if (counter <= 2) goto block_0205; + + block_01C5: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_01BD; + + block_0205: + if Npc.isDead((Item.getZ(arg_06) + 1), (Item.legal_create(arg_06) + 96), (Intrinsic0013(arg_06) + 32), 0x027A) goto block_0278; + + block_0239: + + block_0278: + if Npc.isDead((Item.getZ(arg_06) + 1), (Item.legal_create(arg_06) - 16), Intrinsic0013(arg_06), 0x0349) goto block_02E5; + + block_02A9: + + block_02E5: + + block_0307: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GOVGUNEW/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/GOVGUNEW/slot_06_gotHit.txt new file mode 100644 index 0000000..4f56f2d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GOVGUNEW/slot_06_gotHit.txt @@ -0,0 +1,14 @@ +function govgunew_gotHit() /* entry=209 class_id=0x03A1 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A1A_slot_49(vel, ref, arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GOVGUNEW/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/GOVGUNEW/slot_0A_equip.txt new file mode 100644 index 0000000..ebfe6f7 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GOVGUNEW/slot_0A_equip.txt @@ -0,0 +1,20 @@ +function govgunew_equip() /* entry=209 class_id=0x03A1 slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (Item.pop() != 0) goto block_0290; + + block_0265: + spawn class_0A1A_slot_24(pid, arg_0A, Item.pop(), arg_06); + suspend; + goto block_02B7; + + block_0290: + spawn class_0A1A_slot_24(pid, arg_0A, global[0x003C], arg_06); + suspend; + + block_02B7: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GOVGUNEW/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/GOVGUNEW/slot_0B_unequip.txt new file mode 100644 index 0000000..f3dd541 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GOVGUNEW/slot_0B_unequip.txt @@ -0,0 +1,17 @@ +function govgunew_unequip() /* entry=209 class_id=0x03A1 slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 4) goto block_0160; + + block_015A: + goto block_017B; + + block_0160: + spawn class_0A1A_slot_27(arg_06); + + block_017B: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GOVGUNEW/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/GOVGUNEW/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..35c5988 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GOVGUNEW/slot_0F_enterFastArea.txt @@ -0,0 +1,17 @@ +function govgunew_enterFastArea() /* entry=209 class_id=0x03A1 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 4) goto block_0103; + + block_00FD: + goto block_011E; + + block_0103: + spawn class_0A1A_slot_27(arg_06); + + block_011E: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GOVGUNEW/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/GOVGUNEW/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..c92ccb2 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GOVGUNEW/slot_10_leaveFastArea.txt @@ -0,0 +1,11 @@ +function govgunew_leaveFastArea() /* entry=209 class_id=0x03A1 slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + /* bit_not */ + class_0A0C_slot_33(1, *(arg_06)); + class_0A0C_slot_33(0x020A, *(arg_06)); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GOVGUNNS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/GOVGUNNS/slot_06_gotHit.txt new file mode 100644 index 0000000..5bb11e4 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GOVGUNNS/slot_06_gotHit.txt @@ -0,0 +1,14 @@ +function govgunns_gotHit() /* entry=205 class_id=0x0399 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A1A_slot_49(vel, ref, arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GOVGUNNS/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/GOVGUNNS/slot_0A_equip.txt new file mode 100644 index 0000000..b8e3acb --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GOVGUNNS/slot_0A_equip.txt @@ -0,0 +1,20 @@ +function govgunns_equip() /* entry=205 class_id=0x0399 slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (Item.pop() != 0) goto block_0290; + + block_0265: + spawn class_0A1A_slot_24(pid, arg_0A, Item.pop(), arg_06); + suspend; + goto block_02B7; + + block_0290: + spawn class_0A1A_slot_24(pid, arg_0A, global[0x003C], arg_06); + suspend; + + block_02B7: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GOVGUNNS/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/GOVGUNNS/slot_0B_unequip.txt new file mode 100644 index 0000000..a2c5ddd --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GOVGUNNS/slot_0B_unequip.txt @@ -0,0 +1,17 @@ +function govgunns_unequip() /* entry=205 class_id=0x0399 slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 4) goto block_0160; + + block_015A: + goto block_017B; + + block_0160: + spawn class_0A1A_slot_27(arg_06); + + block_017B: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GOVGUNNS/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/GOVGUNNS/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..bdceff1 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GOVGUNNS/slot_0F_enterFastArea.txt @@ -0,0 +1,17 @@ +function govgunns_enterFastArea() /* entry=205 class_id=0x0399 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 4) goto block_0103; + + block_00FD: + goto block_011E; + + block_0103: + spawn class_0A1A_slot_27(arg_06); + + block_011E: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GOVGUNNS/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/GOVGUNNS/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..fa719f8 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GOVGUNNS/slot_10_leaveFastArea.txt @@ -0,0 +1,11 @@ +function govgunns_leaveFastArea() /* entry=205 class_id=0x0399 slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + /* bit_not */ + class_0A0C_slot_33(1, *(arg_06)); + class_0A0C_slot_33(0x020A, *(arg_06)); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GRAVITON/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/GRAVITON/slot_01_use.txt new file mode 100644 index 0000000..24b6f7f --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GRAVITON/slot_01_use.txt @@ -0,0 +1,8 @@ +function graviton_use() /* entry=307 class_id=0x0530 slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GRENADE/slot_05_hit.txt b/USECODE/EUSECODE_extracted/pseudocode/GRENADE/slot_05_hit.txt new file mode 100644 index 0000000..150e9b7 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GRENADE/slot_05_hit.txt @@ -0,0 +1,13 @@ +function grenade_hit() /* entry=184 class_id=0x0343 slot=0x05 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + ke; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020B, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GRENADE/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/GRENADE/slot_06_gotHit.txt new file mode 100644 index 0000000..cbc2196 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GRENADE/slot_06_gotHit.txt @@ -0,0 +1,13 @@ +function grenade_gotHit() /* entry=184 class_id=0x0343 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + ke; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GRENEGG/slot_07_hatch.txt b/USECODE/EUSECODE_extracted/pseudocode/GRENEGG/slot_07_hatch.txt new file mode 100644 index 0000000..b8f6b27 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GRENEGG/slot_07_hatch.txt @@ -0,0 +1,64 @@ +function grenegg_hatch() /* entry=349 class_id=0x0909 slot=0x07 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + source, /* [BP-04h] type=0x24 */ + dest, /* [BP-06h] type=0x24 */ + counter, /* [BP-08h] type=0x69 */ + wp; /* [BP-0Dh] type=0x24 */ + + entry: + set_info(0x0210, *(arg_06)); + process_exclude(); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0109: + if condition goto block_0129; + + block_010C: + if (Item.getFrame(item) != 0) goto block_0125; + + block_011E: + source = item; + + block_0125: + /* loopnext */ + goto block_0109; + + block_0129: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0149: + if condition goto block_0169; + + block_014C: + if (Item.getFrame(item) != 0) goto block_0165; + + block_015E: + dest = item; + + block_0165: + /* loopnext */ + goto block_0149; + + block_0169: + if (source && dest) goto block_01F0; + + block_017C: + wp = Intrinsic0013(dest); + local_0B = Item.legal_create(dest); + local_09 = Item.getZ(dest); + + block_01F0: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GTELEPAD/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/GTELEPAD/slot_06_gotHit.txt new file mode 100644 index 0000000..2948a10 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GTELEPAD/slot_06_gotHit.txt @@ -0,0 +1,56 @@ +function gtelepad_gotHit() /* entry=47 class_id=0x010D slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + ke, /* [BP+0Ch] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + npc; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + item = ref; + class_0A0C_slot_2C(ke, ref); + if retval goto block_010A; + + block_0104: + goto block_0199; + + block_010A: + if (Item.isNpc(item) != 0) goto block_0127; + + block_011C: + + block_0127: + if (Intrinsic0070() != 1) goto block_0199; + + block_0135: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x6 */ + + block_0150: + if condition goto block_0191; + + block_0153: + if (npc < 0x0100) goto block_018D; + + block_015F: + if (npc != 1) goto block_018D; + + block_016A: + + block_018D: + /* loopnext */ + goto block_0150; + + block_0191: + goto block_0199; + + block_0199: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GTELEPAD/slot_09_release.txt b/USECODE/EUSECODE_extracted/pseudocode/GTELEPAD/slot_09_release.txt new file mode 100644 index 0000000..0917f7a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GTELEPAD/slot_09_release.txt @@ -0,0 +1,65 @@ +function gtelepad_release() /* entry=47 class_id=0x010D slot=0x09 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + tele, /* [BP-02h] type=0x24 */ + npc; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x020D, *(arg_06)); + process_exclude(); + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x6 */ + + block_0225: + if condition goto block_0232; + + block_0228: + goto block_02B0; + + block_022E: + /* loopnext */ + goto block_0225; + + block_0232: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x6 */ + + block_024F: + if condition goto block_02AE; + + block_0252: + if (npc != 1) goto block_02A4; + + block_0260: + /* global_address global_id=0x3C */ + if Intrinsic00BC(*(arg_06)) goto block_029D; + + block_0274: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0260; + + block_029D: + + block_02A4: + goto block_02B0; + + block_02AA: + /* loopnext */ + goto block_024F; + + block_02AE: + + block_02B0: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GUARD/slot_0E_calledFromAnim.txt b/USECODE/EUSECODE_extracted/pseudocode/GUARD/slot_0E_calledFromAnim.txt new file mode 100644 index 0000000..11140ce --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GUARD/slot_0E_calledFromAnim.txt @@ -0,0 +1,9 @@ +function guard_calledFromAnim() /* entry=167 class_id=0x02FD slot=0x0E */ +{ + entry: + set_info(0x021A, *(arg_06)); + process_exclude(); + spawn class_0A1C_slot_20(Item.getQLo(arg_06), *(arg_06), arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/GUARDSQ/slot_0E_calledFromAnim.txt b/USECODE/EUSECODE_extracted/pseudocode/GUARDSQ/slot_0E_calledFromAnim.txt new file mode 100644 index 0000000..73351ec --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/GUARDSQ/slot_0E_calledFromAnim.txt @@ -0,0 +1,9 @@ +function guardsq_calledFromAnim() /* entry=174 class_id=0x0319 slot=0x0E */ +{ + entry: + set_info(0x021A, *(arg_06)); + process_exclude(); + spawn class_0A1C_slot_20(Item.getQLo(arg_06), *(arg_06), arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/G_POOL/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/G_POOL/slot_06_gotHit.txt new file mode 100644 index 0000000..c08c651 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/G_POOL/slot_06_gotHit.txt @@ -0,0 +1,50 @@ +function g_pool_gotHit() /* entry=66 class_id=0x015D slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + item = ref; + class_0A0C_slot_2C(vel, ref); + if (retval != 4) goto block_0132; + + block_010D: + spawn class_0A1E_slot_28(pid, 1, 1, arg_06); + suspend; + + block_0132: + if ((ref <= 0x0100) && (ref != Item.pop())) goto block_0150; + + block_014A: + goto block_01C5; + + block_0150: + if 1 goto block_01C5; + + block_0158: + /* global_address global_id=0x3C */ + if Item.use(*(arg_06)) goto block_01BC; + + block_016C: + class_0A0C_slot_20(8, 20); + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + goto block_01C2; + + block_01BC: + goto block_01C5; + + block_01C2: + goto block_0150; + + block_01C5: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/HOFFMAN/slot_0E_calledFromAnim.txt b/USECODE/EUSECODE_extracted/pseudocode/HOFFMAN/slot_0E_calledFromAnim.txt new file mode 100644 index 0000000..dc18637 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/HOFFMAN/slot_0E_calledFromAnim.txt @@ -0,0 +1,19 @@ +function hoffman_calledFromAnim() /* entry=281 class_id=0x04D9 slot=0x0E */ +{ + var + referent, /* [BP+00h] type=0x69 */ + hoffy, /* [BP-02h] type=0x24 */ + deathBox, /* [BP-04h] type=0x24 */ + deadGuy, /* [BP-06h] type=0x24 */ + item; /* [BP-08h] type=0x24 */ + + entry: + set_info(0x021A, *(arg_06)); + process_exclude(); + hoffy = *(arg_06); + /* pop_global global_id=0x29 size=0x1 */ + /* pop_global global_id=0x37 size=0x1 */ + spawn class_0A1C_slot_20(1, 1, Item.getQLo(arg_06), *(arg_06), arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/HOVER/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/HOVER/slot_20_slot_20.txt new file mode 100644 index 0000000..9764ce2 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/HOVER/slot_20_slot_20.txt @@ -0,0 +1,640 @@ +function hover_slot_20() /* entry=383 class_id=0x0A0D slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + tx, /* [BP+0Ch] type=0x69 */ + ty, /* [BP+0Eh] type=0x69 */ + tz, /* [BP+10h] type=0x69 */ + wp, /* [BP-05h] type=0x24 */ + total, /* [BP-07h] type=0x69 */ + counter, /* [BP-09h] type=0x69 */ + ddx, /* [BP-0Bh] type=0x69 */ + ddy, /* [BP-0Dh] type=0x69 */ + ddz, /* [BP-0Fh] type=0x69 */ + dx, /* [BP-11h] type=0x69 */ + dy, /* [BP-13h] type=0x69 */ + dz, /* [BP-15h] type=0x69 */ + cargo, /* [BP-17h] type=0x24 */ + hover, /* [BP-19h] type=0x24 */ + sx, /* [BP-1Bh] type=0x69 */ + sy, /* [BP-1Dh] type=0x69 */ + sz, /* [BP-1Eh] type=0x62 */ + a, /* [BP-20h] type=0x69 */ + b, /* [BP-22h] type=0x69 */ + c, /* [BP-24h] type=0x69 */ + xacc, /* [BP-28h] type=0x64 */ + yacc, /* [BP-2Ch] type=0x64 */ + zacc, /* [BP-30h] type=0x64 */ + xfract, /* [BP-34h] type=0x64 */ + yfract, /* [BP-38h] type=0x64 */ + zfract, /* [BP-3Ch] type=0x64 */ + l1, /* [BP-40h] type=0x64 */ + n; /* [BP-42h] type=0x24 */ + + entry: + set_info(1, 0); + hover = ref; + sx = Intrinsic0013(hover); + sy = Item.legal_create(hover); + sz = Item.getZ(hover); + class_0A0C_slot_3F((tx - sx)); + a = retval; + class_0A0C_slot_3F((ty - sy)); + b = retval; + class_0A0C_slot_3F((tz - sz)); + c = retval; + if ((a > b) && (a > c)) goto block_05B3; + + block_0183: + /* word_to_dword */ + l1 = a; + /* word_to_dword */ + yfract = b; + /* word_to_dword */ + yfract = (yfract * 0x0FA0); + yfract = (yfract / l1); + /* word_to_dword */ + yacc = 0; + /* word_to_dword */ + zfract = c; + /* word_to_dword */ + zfract = (zfract * 0x0FA0); + zfract = (zfract / l1); + /* word_to_dword */ + zacc = 0; + + block_01D7: + if 1 goto block_05B0; + + block_01DF: + if ((Item.getStatus(hover) & 0x1000) != 0) goto block_01FF; + + block_01F5: + /* word_to_dword */ + /* pop_result */ + goto block_0E24; + + block_01FF: + dx = (tx - sx); + dy = (ty - sy); + dz = (tz - sz); + ddx = 0; + ddy = 0; + ddz = 0; + if ((dx < 4) && (dx > -4)) goto block_0250; + + block_0246: + /* word_to_dword */ + /* pop_result */ + goto block_0E24; + + block_0250: + ddx = 4; + if (dx < 0) goto block_0269; + + block_0262: + ddx = -4; + + block_0269: + if dy goto block_02AD; + + block_0271: + yacc = (yacc + yfract); + /* word_to_dword */ + /* gt_dword */ + if 0x0FA0 goto block_02AD; + + block_0288: + /* word_to_dword */ + yacc = (yacc - 0x0FA0); + ddy = 4; + if (dy < 0) goto block_02AD; + + block_02A6: + ddy = -4; + + block_02AD: + if dz goto block_02F1; + + block_02B5: + zacc = (zacc + zfract); + /* word_to_dword */ + /* gt_dword */ + if 0x0FA0 goto block_02F1; + + block_02CC: + /* word_to_dword */ + zacc = (zacc - 0x0FA0); + ddz = 4; + if (dz < 0) goto block_02F1; + + block_02EA: + ddz = -4; + + block_02F1: + total = 0; + /* loopscr value_u8=0x24 */ + /* loop current_var=0xE9 string_bytes=0x1 loop_type=0x6 */ + + block_0306: + if condition goto block_039B; + + block_0309: + if (Intrinsic0016(cargo) != 0x033A) goto block_0397; + + block_031C: + if (cargo < 0x00FF) goto block_0382; + + block_032B: + n = cargo; + if Kernel.resetRef(n) goto block_036A; + + block_0341: + suspend; + goto block_037F; + + block_036A: + total = (1 + total); + + block_037F: + goto block_0397; + + block_0382: + total = (1 + total); + + block_0397: + /* loopnext */ + goto block_0306; + + block_039B: + sx = (sx + ddx); + sy = (sy + ddy); + sz = (sz + ddz); + wp = sx; + local_03 = sy; + local_01 = sz; + if (Intrinsic002C(hover) != 0) goto block_0459; + + block_03E2: + counter = 1; + + block_0405: + if (counter <= total) goto block_0456; + + block_0410: + cargo = Intrinsic0023(); + counter = (1 + counter); + goto block_0405; + + block_0456: + goto block_0587; + + block_0459: + if Item.pop(0, 1, wp, hover) goto block_04C9; + + block_046E: + counter = 1; + + block_0475: + if (counter <= total) goto block_04C6; + + block_0480: + cargo = Intrinsic0023(); + counter = (1 + counter); + goto block_0475; + + block_04C6: + goto block_0587; + + block_04C9: + counter = 1; + + block_04D0: + if (counter <= total) goto block_0518; + + block_04DB: + cargo = Intrinsic0023(); + counter = (1 + counter); + goto block_04D0; + + block_0518: + if (Intrinsic00BE(hover) & 16) goto block_0543; + + block_052A: + /* bit_not */ + /* word_to_dword */ + /* pop_result */ + goto block_0E24; + + block_0543: + sx = (sx - ddx); + sy = (sy - ddy); + sz = (sz - ddz); + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + + block_0587: + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + goto block_01D7; + + block_05B0: + goto block_0E24; + + block_05B3: + if ((b > a) && (b > c)) goto block_09F7; + + block_05C7: + /* word_to_dword */ + l1 = b; + /* word_to_dword */ + xfract = a; + /* word_to_dword */ + xfract = (xfract * 0x0FA0); + xfract = (xfract / l1); + /* word_to_dword */ + xacc = 0; + /* word_to_dword */ + zfract = c; + /* word_to_dword */ + zfract = (zfract * 0x0FA0); + zfract = (zfract / l1); + /* word_to_dword */ + zacc = 0; + + block_061B: + if 1 goto block_09F4; + + block_0623: + if ((Item.getStatus(hover) & 0x1000) != 0) goto block_0643; + + block_0639: + /* word_to_dword */ + /* pop_result */ + goto block_0E24; + + block_0643: + dx = (tx - sx); + dy = (ty - sy); + dz = (tz - sz); + ddx = 0; + ddy = 0; + ddz = 0; + if ((dy < 4) && (dy > -4)) goto block_0694; + + block_068A: + /* word_to_dword */ + /* pop_result */ + goto block_0E24; + + block_0694: + if dx goto block_06D8; + + block_069C: + xacc = (xacc + xfract); + /* word_to_dword */ + /* gt_dword */ + if 0x0FA0 goto block_06D8; + + block_06B3: + /* word_to_dword */ + xacc = (xacc - 0x0FA0); + ddx = 4; + if (dx < 0) goto block_06D8; + + block_06D1: + ddx = -4; + + block_06D8: + ddy = 4; + if (dy < 0) goto block_06F1; + + block_06EA: + ddy = -4; + + block_06F1: + if dz goto block_0735; + + block_06F9: + zacc = (zacc + zfract); + /* word_to_dword */ + /* gt_dword */ + if 0x0FA0 goto block_0735; + + block_0710: + /* word_to_dword */ + zacc = (zacc - 0x0FA0); + ddz = 4; + if (dz < 0) goto block_0735; + + block_072E: + ddz = -4; + + block_0735: + total = 0; + /* loopscr value_u8=0x24 */ + /* loop current_var=0xE9 string_bytes=0x1 loop_type=0x6 */ + + block_074A: + if condition goto block_07DF; + + block_074D: + if (Intrinsic0016(cargo) != 0x033A) goto block_07DB; + + block_0760: + if (cargo < 0x00FF) goto block_07C6; + + block_076F: + n = cargo; + if Kernel.resetRef(n) goto block_07AE; + + block_0785: + suspend; + goto block_07C3; + + block_07AE: + total = (1 + total); + + block_07C3: + goto block_07DB; + + block_07C6: + total = (1 + total); + + block_07DB: + /* loopnext */ + goto block_074A; + + block_07DF: + sx = (sx + ddx); + sy = (sy + ddy); + sz = (sz + ddz); + wp = sx; + local_03 = sy; + local_01 = sz; + if (Intrinsic002C(hover) != 0) goto block_089D; + + block_0826: + counter = 1; + + block_0849: + if (counter <= total) goto block_089A; + + block_0854: + cargo = Intrinsic0023(); + counter = (1 + counter); + goto block_0849; + + block_089A: + goto block_09CB; + + block_089D: + if Item.pop(0, 1, wp, hover) goto block_090D; + + block_08B2: + counter = 1; + + block_08B9: + if (counter <= total) goto block_090A; + + block_08C4: + cargo = Intrinsic0023(); + counter = (1 + counter); + goto block_08B9; + + block_090A: + goto block_09CB; + + block_090D: + counter = 1; + + block_0914: + if (counter <= total) goto block_095C; + + block_091F: + cargo = Intrinsic0023(); + counter = (1 + counter); + goto block_0914; + + block_095C: + if (Intrinsic00BE(hover) & 16) goto block_0987; + + block_096E: + /* bit_not */ + /* word_to_dword */ + /* pop_result */ + goto block_0E24; + + block_0987: + sx = (sx - ddx); + sy = (sy - ddy); + sz = (sz - ddz); + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + + block_09CB: + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + goto block_061B; + + block_09F4: + goto block_0E24; + + block_09F7: + /* word_to_dword */ + l1 = c; + /* word_to_dword */ + xfract = a; + /* word_to_dword */ + xfract = (xfract * 0x0FA0); + xfract = (xfract / l1); + /* word_to_dword */ + xacc = 0; + /* word_to_dword */ + yfract = b; + /* word_to_dword */ + yfract = (yfract * 0x0FA0); + yfract = (yfract / l1); + /* word_to_dword */ + yacc = 0; + + block_0A4B: + if 1 goto block_0E24; + + block_0A53: + if ((Item.getStatus(hover) & 0x1000) != 0) goto block_0A73; + + block_0A69: + /* word_to_dword */ + /* pop_result */ + goto block_0E24; + + block_0A73: + dx = (tx - sx); + dy = (ty - sy); + dz = (tz - sz); + ddx = 0; + ddy = 0; + ddz = 0; + if ((dz < 4) && (dz > -4)) goto block_0AC4; + + block_0ABA: + /* word_to_dword */ + /* pop_result */ + goto block_0E24; + + block_0AC4: + if dx goto block_0B08; + + block_0ACC: + xacc = (xacc + xfract); + /* word_to_dword */ + /* gt_dword */ + if 0x0FA0 goto block_0B08; + + block_0AE3: + /* word_to_dword */ + xacc = (xacc - 0x0FA0); + ddx = 4; + if (dx < 0) goto block_0B08; + + block_0B01: + ddx = -4; + + block_0B08: + if dy goto block_0B4C; + + block_0B10: + yacc = (yacc + yfract); + /* word_to_dword */ + /* gt_dword */ + if 0x0FA0 goto block_0B4C; + + block_0B27: + /* word_to_dword */ + yacc = (yacc - 0x0FA0); + ddy = 4; + if (dy < 0) goto block_0B4C; + + block_0B45: + ddy = -4; + + block_0B4C: + ddz = 4; + if (dz < 0) goto block_0B65; + + block_0B5E: + ddz = -4; + + block_0B65: + total = 0; + /* loopscr value_u8=0x24 */ + /* loop current_var=0xE9 string_bytes=0x1 loop_type=0x6 */ + + block_0B7A: + if condition goto block_0C0F; + + block_0B7D: + if (Intrinsic0016(cargo) != 0x033A) goto block_0C0B; + + block_0B90: + if (cargo < 0x00FF) goto block_0BF6; + + block_0B9F: + n = cargo; + if Kernel.resetRef(n) goto block_0BDE; + + block_0BB5: + suspend; + goto block_0BF3; + + block_0BDE: + total = (1 + total); + + block_0BF3: + goto block_0C0B; + + block_0BF6: + total = (1 + total); + + block_0C0B: + /* loopnext */ + goto block_0B7A; + + block_0C0F: + sx = (sx + ddx); + sy = (sy + ddy); + sz = (sz + ddz); + wp = sx; + local_03 = sy; + local_01 = sz; + if (Intrinsic002C(hover) != 0) goto block_0CCD; + + block_0C56: + counter = 1; + + block_0C79: + if (counter <= total) goto block_0CCA; + + block_0C84: + cargo = Intrinsic0023(); + counter = (1 + counter); + goto block_0C79; + + block_0CCA: + goto block_0DFB; + + block_0CCD: + if Item.pop(0, 1, wp, hover) goto block_0D3D; + + block_0CE2: + counter = 1; + + block_0CE9: + if (counter <= total) goto block_0D3A; + + block_0CF4: + cargo = Intrinsic0023(); + counter = (1 + counter); + goto block_0CE9; + + block_0D3A: + goto block_0DFB; + + block_0D3D: + counter = 1; + + block_0D44: + if (counter <= total) goto block_0D8C; + + block_0D4F: + cargo = Intrinsic0023(); + counter = (1 + counter); + goto block_0D44; + + block_0D8C: + if (Intrinsic00BE(hover) & 16) goto block_0DB7; + + block_0D9E: + /* bit_not */ + /* word_to_dword */ + /* pop_result */ + goto block_0E24; + + block_0DB7: + sx = (sx - ddx); + sy = (sy - ddy); + sz = (sz - ddz); + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + + block_0DFB: + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + goto block_0A4B; + + block_0E24: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/HOVER/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/HOVER/slot_21_slot_21.txt new file mode 100644 index 0000000..ab178dd --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/HOVER/slot_21_slot_21.txt @@ -0,0 +1,134 @@ +function hover_slot_21() /* entry=383 class_id=0x0A0D slot=0x21 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + h, /* [BP-02h] type=0x69 */ + firstEgg, /* [BP-04h] type=0x69 */ + targetEgg, /* [BP-06h] type=0x69 */ + time, /* [BP-08h] type=0x69 */ + oldqhi, /* [BP-0Ah] type=0x69 */ + link, /* [BP-0Ch] type=0x69 */ + tx, /* [BP-0Eh] type=0x69 */ + ty, /* [BP-10h] type=0x69 */ + tz, /* [BP-11h] type=0x62 */ + hover, /* [BP-13h] type=0x24 */ + item; /* [BP-15h] type=0x24 */ + + entry: + set_info(1, 0); + hover = ref; + h = Intrinsic00BE(hover); + oldqhi = h; + firstEgg = (h & 15); + targetEgg = firstEgg; + + block_0F73: + if 1 goto block_1256; + + block_0F7B: + if ((Item.getStatus(hover) & 0x1000) != 0) goto block_0FC9; + + block_0F91: + spawn class_0A0D_slot_23(pid, 1, ref, arg_06); + suspend; + goto block_1256; + + block_0FC9: + link = Item.getQHi(hover); + tx = -1; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xEB string_bytes=0x6 loop_type=0x2 */ + + block_0FFA: + if condition goto block_106C; + + block_0FFD: + if (Item.getFrame(item) != targetEgg) goto block_1068; + + block_100F: + if ((link != 0) || (link != Item.getQHi(item))) goto block_1068; + + block_102A: + tx = Intrinsic0013(item); + ty = Item.legal_create(item); + tz = Item.getZ(item); + time = Intrinsic00BE(item); + goto block_106C; + + block_1068: + /* loopnext */ + goto block_0FFA; + + block_106C: + if (tx != -1) goto block_10CE; + + block_1079: + if (targetEgg != firstEgg) goto block_10A6; + + block_1084: + /* bit_not */ + goto block_1256; + + block_10A6: + targetEgg = firstEgg; + h = (h & 0x00F0); + goto block_0F73; + + block_10CE: + spawn class_0A0D_slot_20(pid, tz, ty, tx, ref, arg_06); + suspend; + /* dword_to_word */ + if (process_result != 1) goto block_1112; + + block_10FF: + goto block_1256; + + block_1112: + spawn class_0A0D_slot_24(pid, targetEgg, ref, arg_06); + suspend; + if ((Item.getStatus(hover) & 0x1000) != 0) goto block_1185; + + block_114D: + spawn class_0A0D_slot_23(pid, 1, ref, arg_06); + suspend; + goto block_1256; + + block_1185: + if (h & 0x0080) goto block_11BA; + + block_1191: + spawn class_0A18_slot_20(pid, (0 + 0x0080), item, arg_06); + suspend; + + block_11BA: + if (time != 0) goto block_11EE; + + block_11C5: + spawn class_0A0C_slot_32(pid, (time * 10), 0x00000000); + suspend; + + block_11EE: + h = Intrinsic00BE(hover); + if ((h & 15) != targetEgg) goto block_1220; + + block_1210: + targetEgg = ((targetEgg + 1) & 15); + goto block_1238; + + block_1220: + firstEgg = (h & 15); + targetEgg = firstEgg; + oldqhi = h; + + block_1238: + h = (h & 0x00F0); + goto block_0F73; + + block_1256: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/HOVER/slot_22_slot_22.txt b/USECODE/EUSECODE_extracted/pseudocode/HOVER/slot_22_slot_22.txt new file mode 100644 index 0000000..3ce6c7a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/HOVER/slot_22_slot_22.txt @@ -0,0 +1,62 @@ +function hover_slot_22() /* entry=383 class_id=0x0A0D slot=0x22 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + var, /* [BP+0Ah] type=0x69 */ + a; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x021B, *(arg_06)); + if (var != 0x00FF) goto block_132C; + + block_12FC: + if ((Item.getStatus(arg_06) & 0x1000) != 0) goto block_1329; + + block_1315: + spawn class_0A0D_slot_21(*(arg_06), arg_06); + + block_1329: + goto block_14C5; + + block_132C: + if (var != 0x00FE) goto block_134A; + + block_1338: + /* bit_not */ + goto block_14C5; + + block_134A: + if (var != 0x00FD) goto block_140F; + + block_1356: + /* bit_not */ + spawn class_0A0C_slot_32(pid, 20, 0x00000000); + suspend; + a = Intrinsic00BE(arg_06); + spawn class_0A0D_slot_20(pid, 0, Item.legal_create(arg_06), Intrinsic0013(arg_06), *(arg_06), arg_06); + suspend; + /* bit_not */ + goto block_14C5; + + block_140F: + if (var != 0x00FC) goto block_147A; + + block_141B: + /* bit_not */ + spawn class_0A0C_slot_32(pid, 20, 0x00000000); + suspend; + spawn class_0A0D_slot_23(pid, 0, *(arg_06), arg_06); + suspend; + goto block_14C5; + + block_147A: + if ((Item.getStatus(arg_06) & 0x1000) != 0) goto block_14C5; + + block_14A0: + spawn class_0A0D_slot_21(pid, *(arg_06), arg_06); + suspend; + + block_14C5: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/HOVER/slot_23_slot_23.txt b/USECODE/EUSECODE_extracted/pseudocode/HOVER/slot_23_slot_23.txt new file mode 100644 index 0000000..a8e2d7e --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/HOVER/slot_23_slot_23.txt @@ -0,0 +1,79 @@ +function hover_slot_23() /* entry=383 class_id=0x0A0D slot=0x23 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + check, /* [BP+0Ch] type=0x62 */ + cargo, /* [BP-02h] type=0x24 */ + item, /* [BP-04h] type=0x24 */ + hover, /* [BP-06h] type=0x24 */ + dx, /* [BP-08h] type=0x69 */ + dy, /* [BP-0Ah] type=0x69 */ + dz, /* [BP-0Ch] type=0x69 */ + firstEgg, /* [BP-0Eh] type=0x69 */ + link, /* [BP-10h] type=0x69 */ + x, /* [BP-12h] type=0x69 */ + y, /* [BP-14h] type=0x69 */ + z; /* [BP-15h] type=0x62 */ + + entry: + set_info(1, 0); + hover = ref; + if ((check != 1) && (Intrinsic002C(hover) != 1)) goto block_1524; + + block_151E: + goto block_1678; + + block_1524: + firstEgg = (Intrinsic00BE(hover) & 15); + link = Item.getQHi(hover); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_155F: + if condition goto block_1676; + + block_1562: + if (Item.getFrame(item) != firstEgg) goto block_1672; + + block_1574: + if ((link != 0) || (link != Item.getQHi(item))) goto block_1672; + + block_158F: + x = Intrinsic0013(item); + y = Item.legal_create(item); + z = Item.getZ(item); + dx = (x - Intrinsic0013(hover)); + dy = (y - Item.legal_create(hover)); + dz = (z - Item.getZ(hover)); + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFE string_bytes=0x1 loop_type=0x6 */ + + block_15FA: + if condition goto block_164E; + + block_15FD: + if (Intrinsic0016(cargo) != 0x033A) goto block_164A; + + block_1610: + + block_164A: + /* loopnext */ + goto block_15FA; + + block_164E: + goto block_1678; + + block_1672: + /* loopnext */ + goto block_155F; + + block_1676: + + block_1678: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/HOVER/slot_24_slot_24.txt b/USECODE/EUSECODE_extracted/pseudocode/HOVER/slot_24_slot_24.txt new file mode 100644 index 0000000..f6c209a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/HOVER/slot_24_slot_24.txt @@ -0,0 +1,72 @@ +function hover_slot_24() /* entry=383 class_id=0x0A0D slot=0x24 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + egg, /* [BP+0Ch] type=0x69 */ + cargo, /* [BP-02h] type=0x24 */ + item, /* [BP-04h] type=0x24 */ + hover, /* [BP-06h] type=0x24 */ + dx, /* [BP-08h] type=0x69 */ + dy, /* [BP-0Ah] type=0x69 */ + dz, /* [BP-0Ch] type=0x69 */ + firstEgg, /* [BP-0Eh] type=0x69 */ + link, /* [BP-10h] type=0x69 */ + x, /* [BP-12h] type=0x69 */ + y, /* [BP-14h] type=0x69 */ + z; /* [BP-15h] type=0x62 */ + + entry: + set_info(1, 0); + hover = ref; + link = Item.getQHi(hover); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_173E: + if condition goto block_1855; + + block_1741: + if (Item.getFrame(item) != egg) goto block_1851; + + block_1753: + if ((link != 0) || (link != Item.getQHi(item))) goto block_1851; + + block_176E: + x = Intrinsic0013(item); + y = Item.legal_create(item); + z = Item.getZ(item); + dx = (x - Intrinsic0013(hover)); + dy = (y - Item.legal_create(hover)); + dz = (z - Item.getZ(hover)); + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFE string_bytes=0x1 loop_type=0x6 */ + + block_17D9: + if condition goto block_182D; + + block_17DC: + if (Intrinsic0016(cargo) != 0x033A) goto block_1829; + + block_17EF: + + block_1829: + /* loopnext */ + goto block_17D9; + + block_182D: + goto block_1857; + + block_1851: + /* loopnext */ + goto block_173E; + + block_1855: + + block_1857: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/HOVER1/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/HOVER1/slot_0A_equip.txt new file mode 100644 index 0000000..f839c28 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/HOVER1/slot_0A_equip.txt @@ -0,0 +1,10 @@ +function hover1_equip() /* entry=292 class_id=0x04F0 slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + spawn class_0A0D_slot_22(pid, arg_0A, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/HOVER1/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/HOVER1/slot_0B_unequip.txt new file mode 100644 index 0000000..df8dde7 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/HOVER1/slot_0B_unequip.txt @@ -0,0 +1,15 @@ +function hover1_unequip() /* entry=292 class_id=0x04F0 slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + if (arg_0A != 0) goto block_0115; + + block_00F6: + spawn class_04F0_enterFastArea(pid, arg_06); + suspend; + + block_0115: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/HOVER1/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/HOVER1/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..b572e9b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/HOVER1/slot_0F_enterFastArea.txt @@ -0,0 +1,17 @@ +function hover1_enterFastArea() /* entry=292 class_id=0x04F0 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if ((Intrinsic00BE(arg_06) & 32) != 0) goto block_01EF; + + block_01C2: + if ((Item.getStatus(arg_06) & 0x1000) != 0) goto block_01EF; + + block_01DB: + spawn class_0A0D_slot_21(*(arg_06), arg_06); + + block_01EF: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/HOVER1/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/HOVER1/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..437eb80 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/HOVER1/slot_10_leaveFastArea.txt @@ -0,0 +1,14 @@ +function hover1_leaveFastArea() /* entry=292 class_id=0x04F0 slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + if ((Intrinsic00BE(arg_06) & 64) != 0) goto block_0240; + + block_0231: + /* bit_not */ + + block_0240: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/HOVER_EW/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/HOVER_EW/slot_0A_equip.txt new file mode 100644 index 0000000..29f1b87 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/HOVER_EW/slot_0A_equip.txt @@ -0,0 +1,10 @@ +function hover_ew_equip() /* entry=145 class_id=0x02AB slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + spawn class_0A0D_slot_22(pid, arg_0A, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/HOVER_EW/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/HOVER_EW/slot_0B_unequip.txt new file mode 100644 index 0000000..3deb51c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/HOVER_EW/slot_0B_unequip.txt @@ -0,0 +1,15 @@ +function hover_ew_unequip() /* entry=145 class_id=0x02AB slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + if (arg_0A != 0) goto block_0115; + + block_00F6: + spawn class_02AB_enterFastArea(pid, arg_06); + suspend; + + block_0115: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/HOVER_EW/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/HOVER_EW/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..dc11069 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/HOVER_EW/slot_0F_enterFastArea.txt @@ -0,0 +1,17 @@ +function hover_ew_enterFastArea() /* entry=145 class_id=0x02AB slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if ((Intrinsic00BE(arg_06) & 32) != 0) goto block_01EF; + + block_01C2: + if ((Item.getStatus(arg_06) & 0x1000) != 0) goto block_01EF; + + block_01DB: + spawn class_0A0D_slot_21(*(arg_06), arg_06); + + block_01EF: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/HOVER_EW/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/HOVER_EW/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..439963f --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/HOVER_EW/slot_10_leaveFastArea.txt @@ -0,0 +1,14 @@ +function hover_ew_leaveFastArea() /* entry=145 class_id=0x02AB slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + if ((Intrinsic00BE(arg_06) & 64) != 0) goto block_0240; + + block_0231: + /* bit_not */ + + block_0240: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/HOVER_NS/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/HOVER_NS/slot_0A_equip.txt new file mode 100644 index 0000000..dc97707 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/HOVER_NS/slot_0A_equip.txt @@ -0,0 +1,10 @@ +function hover_ns_equip() /* entry=146 class_id=0x02AD slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + spawn class_0A0D_slot_22(pid, arg_0A, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/HOVER_NS/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/HOVER_NS/slot_0B_unequip.txt new file mode 100644 index 0000000..2f09617 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/HOVER_NS/slot_0B_unequip.txt @@ -0,0 +1,15 @@ +function hover_ns_unequip() /* entry=146 class_id=0x02AD slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + if (arg_0A != 0) goto block_0115; + + block_00F6: + spawn class_02AD_enterFastArea(pid, arg_06); + suspend; + + block_0115: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/HOVER_NS/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/HOVER_NS/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..7d49bdc --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/HOVER_NS/slot_0F_enterFastArea.txt @@ -0,0 +1,17 @@ +function hover_ns_enterFastArea() /* entry=146 class_id=0x02AD slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if ((Intrinsic00BE(arg_06) & 32) != 0) goto block_01EF; + + block_01C2: + if ((Item.getStatus(arg_06) & 0x1000) != 0) goto block_01EF; + + block_01DB: + spawn class_0A0D_slot_21(*(arg_06), arg_06); + + block_01EF: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/HOVER_NS/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/HOVER_NS/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..00f6ee9 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/HOVER_NS/slot_10_leaveFastArea.txt @@ -0,0 +1,14 @@ +function hover_ns_leaveFastArea() /* entry=146 class_id=0x02AD slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + if ((Intrinsic00BE(arg_06) & 64) != 0) goto block_0240; + + block_0231: + /* bit_not */ + + block_0240: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/IONIC/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/IONIC/slot_01_use.txt new file mode 100644 index 0000000..811c456 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/IONIC/slot_01_use.txt @@ -0,0 +1,8 @@ +function ionic_use() /* entry=305 class_id=0x052E slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_20_slot_20.txt new file mode 100644 index 0000000..62e6229 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_20_slot_20.txt @@ -0,0 +1,15 @@ +function item_slot_20() /* entry=400 class_id=0x0A1E slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + destx, /* [BP+0Ah] type=0x69 */ + desty, /* [BP+0Ch] type=0x69 */ + truncate; /* [BP+0Eh] type=0x62 */ + + entry: + goto block_0150; + + block_0150: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_21_slot_21.txt new file mode 100644 index 0000000..a89b829 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_21_slot_21.txt @@ -0,0 +1,32 @@ +function item_slot_21() /* entry=400 class_id=0x0A1E slot=0x21 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + targetRef, /* [BP+0Ah] type=0x69 */ + targetItem, /* [BP-02h] type=0x24 */ + item; /* [BP-04h] type=0x24 */ + + entry: + targetItem = targetRef; + if targetRef goto block_01EA; + + block_01A1: + if (Intrinsic003C(targetItem) != 6) goto block_01EA; + + block_01B9: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFC string_bytes=0x1 loop_type=0x4 */ + + block_01C9: + if condition goto block_01E8; + + block_01CC: + /* loopnext */ + goto block_01C9; + + block_01E8: + + block_01EA: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_22_slot_22.txt b/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_22_slot_22.txt new file mode 100644 index 0000000..be936b0 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_22_slot_22.txt @@ -0,0 +1,15 @@ +function item_slot_22() /* entry=400 class_id=0x0A1E slot=0x22 */ +{ + entry: + if (Item.getStatus(arg_06) & arg_0A) goto block_025A; + + block_0249: + /* bit_not */ + goto block_0267; + + block_025A: + + block_0267: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_23_slot_23.txt b/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_23_slot_23.txt new file mode 100644 index 0000000..2e91de5 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_23_slot_23.txt @@ -0,0 +1,6 @@ +function item_slot_23() /* entry=400 class_id=0x0A1E slot=0x23 */ +{ + entry: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_24_slot_24.txt b/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_24_slot_24.txt new file mode 100644 index 0000000..5741667 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_24_slot_24.txt @@ -0,0 +1,7 @@ +function item_slot_24() /* entry=400 class_id=0x0A1E slot=0x24 */ +{ + entry: + /* bit_not */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_25_slot_25.txt b/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_25_slot_25.txt new file mode 100644 index 0000000..a6426dc --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_25_slot_25.txt @@ -0,0 +1,219 @@ +function item_slot_25() /* entry=400 class_id=0x0A1E slot=0x25 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + destX, /* [BP+0Ah] type=0x69 */ + destY, /* [BP+0Ch] type=0x69 */ + destZ, /* [BP+0Eh] type=0x62 */ + vel, /* [BP+10h] type=0x69 */ + currentP, /* [BP-05h] type=0x24 */ + x, /* [BP-07h] type=0x69 */ + y, /* [BP-09h] type=0x69 */ + z, /* [BP-0Ah] type=0x62 */ + w, /* [BP-0Ch] type=0x69 */ + h, /* [BP-0Eh] type=0x69 */ + counter, /* [BP-10h] type=0x69 */ + minor, /* [BP-12h] type=0x69 */ + r, /* [BP-14h] type=0x69 */ + q, /* [BP-16h] type=0x69 */ + oabs, /* [BP-18h] type=0x69 */ + v, /* [BP-1Ah] type=0x69 */ + ovel, /* [BP-1Ch] type=0x69 */ + c, /* [BP-1Eh] type=0x69 */ + axis, /* [BP-20h] type=0x69 */ + ztarg, /* [BP-22h] type=0x69 */ + zcur, /* [BP-24h] type=0x69 */ + dif; /* [BP-26h] type=0x69 */ + + entry: + set_info(1, *(arg_06)); + x = Intrinsic0013(arg_06); + y = Item.legal_create(arg_06); + z = Item.getZ(arg_06); + w = ((destX - x) + 1); + h = ((destY - y) + 1); + counter = 0; + minor = 1; + ovel = vel; + c = 0; + axis = 1; + class_0A0C_slot_3F(w); + class_0A0C_slot_3F(retval, h); + if retval goto block_03A2; + + block_039B: + axis = 0; + + block_03A2: + if (axis != 0) goto block_040D; + + block_03AD: + class_0A0C_slot_3F(((h / w) * w)); + q = retval; + /* mod */ + class_0A0C_slot_3F(h, w); + r = retval; + if (w < 0) goto block_03E9; + + block_03DF: + ovel = (-1 * vel); + + block_03E9: + if (h < 0) goto block_03FB; + + block_03F4: + minor = -1; + + block_03FB: + class_0A0C_slot_3F(w); + oabs = retval; + goto block_046A; + + block_040D: + class_0A0C_slot_3F(((w / h) * h)); + q = retval; + /* mod */ + class_0A0C_slot_3F(w, h); + r = retval; + if (h < 0) goto block_0449; + + block_043F: + ovel = (-1 * vel); + + block_0449: + if (w < 0) goto block_045B; + + block_0454: + minor = -1; + + block_045B: + class_0A0C_slot_3F(h); + oabs = retval; + + block_046A: + suspend; + zcur = (z & 0x00FF); + ztarg = (destZ & 0x00FF); + if (zcur != ztarg) goto block_04EC; + + block_0498: + class_0A0C_slot_3F((ztarg - zcur)); + dif = ((retval / 20) + 1); + if (dif != 0) goto block_04BF; + + block_04BB: + dif = 1; + + block_04BF: + if (zcur < ztarg) goto block_04D7; + + block_04CA: + z = (z + dif); + goto block_04EC; + + block_04D7: + zcur = (zcur - dif); + z = (zcur & 0x00FF); + + block_04EC: + if (c >= oabs) goto block_0555; + + block_04F7: + if (zcur > (ztarg - 2)) goto block_051D; + + block_0505: + if (zcur < (ztarg + 2)) goto block_051D; + + block_0513: + /* word_to_dword */ + /* pop_result */ + goto block_067E; + + block_051D: + currentP = x; + local_03 = y; + local_01 = z; + if (!Item.pop(0, 1, currentP, arg_06)) goto block_0552; + + block_0548: + /* word_to_dword */ + /* pop_result */ + goto block_067E; + + block_0552: + goto block_067B; + + block_0555: + c = (c + vel); + if (axis != 0) goto block_05F4; + + block_056A: + currentP = x; + local_03 = y; + local_01 = z; + if (!Item.pop(0, 1, currentP, arg_06)) goto block_059F; + + block_0595: + /* word_to_dword */ + /* pop_result */ + goto block_067E; + + block_059F: + x = (x + ovel); + v = 1; + + block_05B0: + if (v <= vel) goto block_05F1; + + block_05B8: + counter = (counter + (r + q)); + if (counter >= oabs) goto block_05E4; + + block_05D0: + counter = (counter - oabs); + y = (y + minor); + + block_05E4: + v = (1 + v); + goto block_05B0; + + block_05F1: + goto block_067B; + + block_05F4: + currentP = x; + local_03 = y; + local_01 = z; + if (!Item.pop(0, 1, currentP, arg_06)) goto block_0629; + + block_061F: + /* word_to_dword */ + /* pop_result */ + goto block_067E; + + block_0629: + y = (y + ovel); + v = 1; + + block_063A: + if (v <= vel) goto block_067B; + + block_0642: + counter = (counter + (r + q)); + if (counter >= oabs) goto block_066E; + + block_065A: + counter = (counter - oabs); + x = (x + minor); + + block_066E: + v = (1 + v); + goto block_063A; + + block_067B: + goto block_046A; + + block_067E: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_26_slot_26.txt b/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_26_slot_26.txt new file mode 100644 index 0000000..0e2d917 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_26_slot_26.txt @@ -0,0 +1,183 @@ +function item_slot_26() /* entry=400 class_id=0x0A1E slot=0x26 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + destX, /* [BP+0Ah] type=0x69 */ + destY, /* [BP+0Ch] type=0x69 */ + destZ, /* [BP+0Eh] type=0x62 */ + vel, /* [BP+10h] type=0x69 */ + x, /* [BP-02h] type=0x69 */ + y, /* [BP-04h] type=0x69 */ + z, /* [BP-05h] type=0x62 */ + w, /* [BP-07h] type=0x69 */ + h, /* [BP-09h] type=0x69 */ + counter, /* [BP-0Bh] type=0x69 */ + minor, /* [BP-0Dh] type=0x69 */ + r, /* [BP-0Fh] type=0x69 */ + q, /* [BP-11h] type=0x69 */ + oabs, /* [BP-13h] type=0x69 */ + v, /* [BP-15h] type=0x69 */ + ovel, /* [BP-17h] type=0x69 */ + c, /* [BP-19h] type=0x69 */ + axis, /* [BP-1Bh] type=0x69 */ + ztarg, /* [BP-1Dh] type=0x69 */ + zcur, /* [BP-1Fh] type=0x69 */ + dif; /* [BP-21h] type=0x69 */ + + entry: + set_info(1, *(arg_06)); + x = Intrinsic0013(arg_06); + y = Item.legal_create(arg_06); + z = Item.getZ(arg_06); + w = ((destX - x) + 1); + h = ((destY - y) + 1); + counter = 0; + minor = 1; + ovel = vel; + c = 0; + axis = 1; + class_0A0C_slot_3F(w); + class_0A0C_slot_3F(retval, h); + if retval goto block_07E7; + + block_07E0: + axis = 0; + + block_07E7: + if (axis != 0) goto block_0852; + + block_07F2: + class_0A0C_slot_3F(((h / w) * w)); + q = retval; + /* mod */ + class_0A0C_slot_3F(h, w); + r = retval; + if (w < 0) goto block_082E; + + block_0824: + ovel = (-1 * vel); + + block_082E: + if (h < 0) goto block_0840; + + block_0839: + minor = -1; + + block_0840: + class_0A0C_slot_3F(w); + oabs = retval; + goto block_08AF; + + block_0852: + class_0A0C_slot_3F(((w / h) * h)); + q = retval; + /* mod */ + class_0A0C_slot_3F(w, h); + r = retval; + if (h < 0) goto block_088E; + + block_0884: + ovel = (-1 * vel); + + block_088E: + if (w < 0) goto block_08A0; + + block_0899: + minor = -1; + + block_08A0: + class_0A0C_slot_3F(h); + oabs = retval; + + block_08AF: + suspend; + zcur = (z & 0x00FF); + ztarg = (destZ & 0x00FF); + if (zcur != ztarg) goto block_0931; + + block_08DD: + class_0A0C_slot_3F((ztarg - zcur)); + dif = ((retval / 20) + 1); + if (dif != 0) goto block_0904; + + block_0900: + dif = 1; + + block_0904: + if (zcur < ztarg) goto block_091C; + + block_090F: + z = (z + dif); + goto block_0931; + + block_091C: + zcur = (zcur - dif); + z = (zcur & 0x00FF); + + block_0931: + if (c >= oabs) goto block_0972; + + block_093C: + if (zcur > (ztarg - 2)) goto block_095E; + + block_094A: + if (zcur < (ztarg + 2)) goto block_095E; + + block_0958: + goto block_0A53; + + block_095E: + goto block_0A50; + + block_0972: + c = (c + vel); + if (axis != 0) goto block_09ED; + + block_0987: + x = (x + ovel); + v = 1; + + block_09A9: + if (v <= vel) goto block_09EA; + + block_09B1: + counter = (counter + (r + q)); + if (counter >= oabs) goto block_09DD; + + block_09C9: + counter = (counter - oabs); + y = (y + minor); + + block_09DD: + v = (1 + v); + goto block_09A9; + + block_09EA: + goto block_0A50; + + block_09ED: + y = (y + ovel); + v = 1; + + block_0A0F: + if (v <= vel) goto block_0A50; + + block_0A17: + counter = (counter + (r + q)); + if (counter >= oabs) goto block_0A43; + + block_0A2F: + counter = (counter - oabs); + x = (x + minor); + + block_0A43: + v = (1 + v); + goto block_0A0F; + + block_0A50: + goto block_08AF; + + block_0A53: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_27_slot_27.txt b/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_27_slot_27.txt new file mode 100644 index 0000000..fd78ef5 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_27_slot_27.txt @@ -0,0 +1,43 @@ +function item_slot_27() /* entry=400 class_id=0x0A1E slot=0x27 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + damageRef, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + maxHits, /* [BP+0Eh] type=0x69 */ + damagePoints, /* [BP-02h] type=0x69 */ + currentHits, /* [BP-04h] type=0x69 */ + newHits; /* [BP-06h] type=0x69 */ + + entry: + set_info(1, *(arg_06)); + if (damageRef != 0x4000) goto block_0B3C; + + block_0B32: + /* word_to_dword */ + /* pop_result */ + goto block_0BA1; + + block_0B3C: + damagePoints = (vel & 0x00FF); + currentHits = Item.getNpcNum(arg_06); + newHits = (currentHits + damagePoints); + if (newHits >= maxHits) goto block_0B8A; + + block_0B70: + /* word_to_dword */ + /* pop_result */ + goto block_0BA1; + + block_0B87: + goto block_0BA1; + + block_0B8A: + /* word_to_dword */ + /* pop_result */ + goto block_0BA1; + + block_0BA1: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_28_slot_28.txt b/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_28_slot_28.txt new file mode 100644 index 0000000..6bc6a8f --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_28_slot_28.txt @@ -0,0 +1,90 @@ +function item_slot_28() /* entry=400 class_id=0x0A1E slot=0x28 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + boomType, /* [BP+0Ah] type=0x69 */ + selfDestruct, /* [BP+0Ch] type=0x62 */ + item, /* [BP-02h] type=0x24 */ + origin, /* [BP-04h] type=0x24 */ + bigBomb, /* [BP-05h] type=0x62 */ + x, /* [BP-07h] type=0x69 */ + y; /* [BP-09h] type=0x69 */ + + entry: + set_info(0x020A, *(arg_06)); + if (*(arg_06) != 0x4000) goto block_0C30; + + block_0C2A: + goto block_0EF7; + + block_0C30: + bigBomb = 0; + x = Intrinsic0013(arg_06); + y = Item.legal_create(arg_06); + if (boomType != 1) goto block_0D4D; + + block_0C71: + if (Intrinsic00DA(2, 0) != 1) goto block_0CC0; + + block_0C82: + goto block_0D4A; + + block_0CC0: + if (Intrinsic00DA(2, 0) != 2) goto block_0D0F; + + block_0CD1: + goto block_0D4A; + + block_0D0F: + + block_0D4A: + goto block_0EC3; + + block_0D4D: + if (boomType != 2) goto block_0E2E; + + block_0D55: + if (Intrinsic00DA(2, 0) != 1) goto block_0DA3; + + block_0D66: + goto block_0E2B; + + block_0DA3: + if (Intrinsic00DA(2, 0) != 2) goto block_0DF1; + + block_0DB4: + goto block_0E2B; + + block_0DF1: + + block_0E2B: + goto block_0EC3; + + block_0E2E: + if (boomType != 0) goto block_0EC3; + + block_0E36: + if (Intrinsic00DA(1, 0) != 1) goto block_0E85; + + block_0E47: + goto block_0EC0; + + block_0E85: + + block_0EC0: + goto block_0EC3; + + block_0EC3: + origin = *(arg_06); + set_info(0x020A, 0); + if selfDestruct goto block_0EF7; + + block_0EDD: + if (origin != 0x4000) goto block_0EF7; + + block_0EEC: + + block_0EF7: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_29_slot_29.txt b/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_29_slot_29.txt new file mode 100644 index 0000000..a48bdcf --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_29_slot_29.txt @@ -0,0 +1,65 @@ +function item_slot_29() /* entry=400 class_id=0x0A1E slot=0x29 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + x, /* [BP-04h] type=0x69 */ + y, /* [BP-06h] type=0x69 */ + z, /* [BP-08h] type=0x69 */ + onSomething, /* [BP-09h] type=0x62 */ + failTest, /* [BP-0Ah] type=0x62 */ + theType; /* [BP-0Ch] type=0x69 */ + + entry: + set_info(0x0001, *(arg_06)); + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFE string_bytes=0x1 loop_type=0x2 */ + + block_0F7F: + if condition goto block_1055; + + block_0F82: + if Item.andStatus(item, arg_06) goto block_1051; + + block_0F93: + if (z > 1) goto block_0FBC; + + block_0FAF: + failTest = 1; + goto block_1055; + + block_0FBC: + theType = Intrinsic0016(item); + if (((((((((theType != 95) || (theType != 0x0096)) || (theType != 0x0132)) || (theType != 0x04CD)) || (theType != 0x0366)) || (theType != 0x0365)) || (theType != 0x0290)) || (theType != 0x0336)) || (theType != 0x0150)) goto block_104A; + + block_103D: + failTest = 1; + goto block_1055; + + block_104A: + onSomething = 1; + + block_1051: + /* loopnext */ + goto block_0F7F; + + block_1055: + if ((failTest != 1) || (onSomething != 0)) goto block_1078; + + block_106B: + /* word_to_dword */ + /* pop_result */ + goto block_1082; + + block_1075: + goto block_1082; + + block_1078: + /* word_to_dword */ + /* pop_result */ + goto block_1082; + + block_1082: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_2A_slot_2A.txt b/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_2A_slot_2A.txt new file mode 100644 index 0000000..7b56783 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_2A_slot_2A.txt @@ -0,0 +1,25 @@ +function item_slot_2A() /* entry=400 class_id=0x0A1E slot=0x2A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + onFloor, /* [BP-03h] type=0x62 */ + x, /* [BP-05h] type=0x69 */ + y, /* [BP-07h] type=0x69 */ + z, /* [BP-09h] type=0x69 */ + burn; /* [BP-0Bh] type=0x24 */ + + set_info(0x0001, *(arg_06)); + spawn class_0A1E_slot_29(pid, arg_06); + suspend; + /* dword_to_word */ + if ((!process_result)) { + if ((x != 1) || (x == 2)) { + spawn class_0A1E_slot_2B(burn); + } + else if ((x != 3) || (x == 4)) { + spawn class_0A1E_slot_2B(burn); + } + } + return; +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_2B_slot_2B.txt b/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_2B_slot_2B.txt new file mode 100644 index 0000000..7359e54 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_2B_slot_2B.txt @@ -0,0 +1,69 @@ +function item_slot_2B() /* entry=400 class_id=0x0A1E slot=0x2B */ +{ + var + referent, /* [BP+00h] type=0x69 */ + burn, /* [BP-02h] type=0x24 */ + burn2; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x0001, *(arg_06)); + spawn class_0A0C_slot_32(Intrinsic00DA(pid, 0x00C8, 100), 0x00000000); + suspend; + burn2 = *(arg_06); + if (Intrinsic0016(burn2) != 0x0456) goto block_14DD; + + block_1421: + set_info(0x00F0, burn); + if Item.getQHi() goto block_14CF; + + block_1484: + if ((Item.getFrame(burn) != 9) && (Intrinsic0007(arg_06) != 1)) goto block_14CF; + + block_14A6: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_1484; + + block_14CF: + goto block_1675; + + block_14DD: + if (Intrinsic0016(burn2) != 0x044A) goto block_15A9; + + block_14ED: + set_info(0x00F0, burn); + if Item.getQHi() goto block_159B; + + block_1550: + if ((Item.getFrame(burn) != 9) && (Intrinsic0007(arg_06) != 1)) goto block_159B; + + block_1572: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_1550; + + block_159B: + goto block_1675; + + block_15A9: + if (Intrinsic0016(burn2) != 0x0085) goto block_1675; + + block_15B9: + set_info(0x00F0, burn); + if Item.getQHi() goto block_1667; + + block_161C: + if ((Item.getFrame(burn) != 9) && (Intrinsic0007(arg_06) != 1)) goto block_1667; + + block_163E: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_161C; + + block_1667: + goto block_1675; + + block_1675: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_2C_slot_2C.txt b/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_2C_slot_2C.txt new file mode 100644 index 0000000..d6a4064 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_2C_slot_2C.txt @@ -0,0 +1,38 @@ +function item_slot_2C() /* entry=400 class_id=0x0A1E slot=0x2C */ +{ + var + referent, /* [BP+00h] type=0x69 */ + n; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x0001, *(arg_06)); + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFE string_bytes=0x1 loop_type=0x2 */ + + block_16C6: + if condition goto block_1701; + + block_16C9: + if (n < 0x00FF) goto block_16FD; + + block_16D8: + if ((n > 1) && (Intrinsic00C3(n) != 0)) goto block_16FD; + + block_16F3: + /* word_to_dword */ + /* pop_result */ + goto block_170D; + + block_16FD: + /* loopnext */ + goto block_16C6; + + block_1701: + /* word_to_dword */ + /* pop_result */ + goto block_170D; + + block_170D: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_2D_slot_2D.txt b/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_2D_slot_2D.txt new file mode 100644 index 0000000..4cd866e --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_2D_slot_2D.txt @@ -0,0 +1,118 @@ +function item_slot_2D() /* entry=400 class_id=0x0A1E slot=0x2D */ +{ + var + referent, /* [BP+00h] type=0x69 */ + egg1, /* [BP+0Ah] type=0x69 */ + var, /* [BP+0Ch] type=0x69 */ + monster1, /* [BP-02h] type=0x24 */ + monster2, /* [BP-04h] type=0x24 */ + link, /* [BP-06h] type=0x69 */ + a, /* [BP-08h] type=0x69 */ + newNpc, /* [BP-0Ah] type=0x24 */ + npc, /* [BP-0Ch] type=0x24 */ + ref; /* [BP-0Eh] type=0x69 */ + + entry: + set_info(0x021B, 0); + monster1 = egg1; + if (Item.getFrame(monster1) != 0) goto block_175C; + + block_1756: + goto block_19BA; + + block_175C: + link = Item.getNpcNum(monster1); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_1786: + if condition goto block_19B8; + + block_1789: + if (Item.getNpcNum(monster2) != link) goto block_19B4; + + block_179B: + if (Item.getFrame(monster2) != 1) goto block_19B4; + + block_17AD: + if ((var != 2) || (var != 3)) goto block_193C; + + block_17C1: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF4 string_bytes=0x6 loop_type=0x2 */ + + block_17DC: + if condition goto block_1832; + + block_17DF: + if Item.isNpc(npc) goto block_182E; + + block_17EE: + if ((Item.getZ(npc) > (Item.getZ(arg_06) - 10)) && (Item.getZ(npc) < (Item.getZ(arg_06) + 10))) goto block_182E; + + block_1824: + /* word_to_dword */ + /* pop_result */ + goto block_19BA; + + block_182E: + /* loopnext */ + goto block_17DC; + + block_1832: + ref = Item.andStatus(monster2, arg_06); + if ref goto block_1939; + + block_184C: + newNpc = ref; + a = (Item.getNpcNum(monster1) & 15); + if ((a != 2) || (a != 4)) goto block_1939; + + block_1878: + suspend; + + block_18FF: + if Item.touch(48, arg_06) goto block_1939; + + block_1910: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_18FF; + + block_1939: + goto block_1968; + + block_193C: + ref = Item.andStatus(monster2, arg_06); + if ref goto block_1968; + + block_1954: + newNpc = ref; + + block_1968: + if ((var != 0) || (var != 2)) goto block_19AA; + + block_197C: + spawn class_0A1E_slot_2E(monster2, monster1, arg_06); + + block_19AA: + /* word_to_dword */ + /* pop_result */ + goto block_19BA; + + block_19B4: + /* loopnext */ + goto block_1786; + + block_19B8: + + block_19BA: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_2E_slot_2E.txt b/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_2E_slot_2E.txt new file mode 100644 index 0000000..e8cd256 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ITEM/slot_2E_slot_2E.txt @@ -0,0 +1,18 @@ +function item_slot_2E() /* entry=400 class_id=0x0A1E slot=0x2E */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref1, /* [BP+0Ah] type=0x69 */ + ref2, /* [BP+0Ch] type=0x69 */ + item1, /* [BP-02h] type=0x24 */ + item2; /* [BP-04h] type=0x24 */ + + entry: + set_info(1, 0); + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + item1 = ref1; + item2 = ref2; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/JELYH2/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/JELYH2/slot_01_use.txt new file mode 100644 index 0000000..0587d69 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/JELYH2/slot_01_use.txt @@ -0,0 +1,8 @@ +function jelyh2_use() /* entry=280 class_id=0x04D6 slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/JELYHACK/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/JELYHACK/slot_01_use.txt new file mode 100644 index 0000000..6f69441 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/JELYHACK/slot_01_use.txt @@ -0,0 +1,8 @@ +function jelyhack_use() /* entry=277 class_id=0x04D3 slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/JOHN/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/JOHN/slot_01_use.txt new file mode 100644 index 0000000..765cc8c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/JOHN/slot_01_use.txt @@ -0,0 +1,13 @@ +function john_use() /* entry=86 class_id=0x01AD slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if (Item.getFrame(arg_06) < 2) goto block_010D; + + block_0100: + + block_010D: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/JOHN/slot_04_cachein.txt b/USECODE/EUSECODE_extracted/pseudocode/JOHN/slot_04_cachein.txt new file mode 100644 index 0000000..b1a3ddc --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/JOHN/slot_04_cachein.txt @@ -0,0 +1,19 @@ +function john_cachein() /* entry=86 class_id=0x01AD slot=0x04 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + fram; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x0213, *(arg_06)); + process_exclude(); + fram = Item.getFrame(arg_06); + if (fram > 1) goto block_0162; + + block_0153: + class_0A1E_slot_23(0x1000, arg_06); + + block_0162: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/KEYPAD/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/KEYPAD/slot_20_slot_20.txt new file mode 100644 index 0000000..7e2573e --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/KEYPAD/slot_20_slot_20.txt @@ -0,0 +1,78 @@ +function keypad_slot_20() /* entry=384 class_id=0x0A0E slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + valueBox, /* [BP-02h] type=0x24 */ + boxesInArea, /* [BP-04h] type=0x69 */ + linkedWithSwitch, /* [BP-05h] type=0x62 */ + wrongCode, /* [BP-06h] type=0x62 */ + userInput, /* [BP-08h] type=0x69 */ + boxPasscode, /* [BP-0Ah] type=0x69 */ + keycode; /* [BP-0Ch] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + wrongCode = 0; + userInput = 0; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_011C: + if condition goto block_0163; + + block_011F: + if (Item.getQHi(valueBox) != Item.getQHi(arg_06)) goto block_015F; + + block_013B: + class_0A19_slot_20(valueBox); + boxPasscode = retval; + if (boxPasscode > 0x03E7) goto block_015F; + + block_0159: + goto block_02AB; + + block_015F: + /* loopnext */ + goto block_011C; + + block_0163: + if ((Item.getStatus(arg_06) & 0x1000) != 0) goto block_02AB; + + block_017B: + keycode = Item.getQHi(boxPasscode); + if (keycode != -1) goto block_01BA; + + block_01A5: + /* bit_not */ + goto block_02AB; + + block_01BA: + if (keycode != boxPasscode) goto block_022F; + + block_01C5: + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + goto block_029C; + + block_022F: + spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); + suspend; + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + if (!Intrinsic0000()) goto block_029C; + + block_028B: + spawn class_0A0C_slot_3B(0x00000000); + + block_029C: + /* bit_not */ + + block_02AB: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/KEYPADEW/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/KEYPADEW/slot_01_use.txt new file mode 100644 index 0000000..2ced804 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/KEYPADEW/slot_01_use.txt @@ -0,0 +1,47 @@ +function keypadew_use() /* entry=243 class_id=0x044C slot=0x01 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + alreadyPassed; /* [BP-01h] type=0x62 */ + + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if (Item.getMapNum(arg_06) != 0) goto block_01CA; + + block_00FD: + alreadyPassed = (Item.getStatus(arg_06) & 4); + if (alreadyPassed != 0) goto block_01A0; + + block_0119: + if Intrinsic0000() goto block_017E; + + block_0124: + + block_0131: + if Item.touch(123, arg_06) goto block_016B; + + block_0142: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0131; + + block_016B: + goto block_01CA; + + block_017E: + spawn class_0A0E_slot_20(pid, arg_06); + suspend; + goto block_01C7; + + block_01A0: + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + + block_01C7: + goto block_01CA; + + block_01CA: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/KEYPADNS/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/KEYPADNS/slot_01_use.txt new file mode 100644 index 0000000..cd5377b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/KEYPADNS/slot_01_use.txt @@ -0,0 +1,47 @@ +function keypadns_use() /* entry=242 class_id=0x044B slot=0x01 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + alreadyPassed; /* [BP-01h] type=0x62 */ + + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if (Item.getMapNum(arg_06) != 0) goto block_01CA; + + block_00FD: + alreadyPassed = (Item.getStatus(arg_06) & 4); + if (alreadyPassed != 0) goto block_01A0; + + block_0119: + if Intrinsic0000() goto block_017E; + + block_0124: + + block_0131: + if Item.touch(123, arg_06) goto block_016B; + + block_0142: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0131; + + block_016B: + goto block_01CA; + + block_017E: + spawn class_0A0E_slot_20(pid, arg_06); + suspend; + goto block_01C7; + + block_01A0: + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + + block_01C7: + goto block_01CA; + + block_01CA: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/KORESH/slot_0E_calledFromAnim.txt b/USECODE/EUSECODE_extracted/pseudocode/KORESH/slot_0E_calledFromAnim.txt new file mode 100644 index 0000000..9c7746d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/KORESH/slot_0E_calledFromAnim.txt @@ -0,0 +1,15 @@ +function koresh_calledFromAnim() /* entry=327 class_id=0x0576 slot=0x0E */ +{ + var + referent, /* [BP+00h] type=0x69 */ + n; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x021A, *(arg_06)); + process_exclude(); + n = *(arg_06); + set_info(1, 0); + spawn class_0A1C_slot_20(Item.getQLo(arg_06), *(arg_06), n); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/KORESH/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/KORESH/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..4ff4380 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/KORESH/slot_0F_enterFastArea.txt @@ -0,0 +1,11 @@ +function koresh_enterFastArea() /* entry=327 class_id=0x0576 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + spawn class_0A1C_slot_20(Item.getQLo(arg_06), *(arg_06), arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/LANDMINE/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/LANDMINE/slot_01_use.txt new file mode 100644 index 0000000..90a581c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/LANDMINE/slot_01_use.txt @@ -0,0 +1,232 @@ +function landmine_use() /* entry=206 class_id=0x039A slot=0x01 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + InCrouch, /* [BP-01h] type=0x62 */ + landMine, /* [BP-03h] type=0x24 */ + item, /* [BP-05h] type=0x24 */ + xOff, /* [BP-07h] type=0x69 */ + yOff, /* [BP-09h] type=0x69 */ + mine, /* [BP-0Bh] type=0x24 */ + wp; /* [BP-10h] type=0x24 */ + + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + landMine = *(arg_06); + /* global_address global_id=0x3C */ + if (Item.getType() != 40) goto block_013E; + + block_010A: + goto block_0502; + + block_013E: + set_info(0x00F0, 0); + + block_0152: + /* global_address global_id=0x3C */ + if Intrinsic0033() goto block_0188; + + block_0162: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0152; + + block_0188: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 0) goto block_01A6; + + block_0198: + xOff = -1; + yOff = -3; + goto block_0368; + + block_01A6: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 1) goto block_01C4; + + block_01B6: + xOff = 0; + yOff = -3; + goto block_0368; + + block_01C4: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 2) goto block_01E2; + + block_01D4: + xOff = 2; + yOff = -3; + goto block_0368; + + block_01E2: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 3) goto block_0200; + + block_01F2: + xOff = 2; + yOff = -2; + goto block_0368; + + block_0200: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 4) goto block_021E; + + block_0210: + xOff = 2; + yOff = -1; + goto block_0368; + + block_021E: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 5) goto block_023C; + + block_022E: + xOff = 2; + yOff = 0; + goto block_0368; + + block_023C: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 6) goto block_025A; + + block_024C: + xOff = 2; + yOff = 2; + goto block_0368; + + block_025A: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 7) goto block_0278; + + block_026A: + xOff = 0; + yOff = 2; + goto block_0368; + + block_0278: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 8) goto block_0296; + + block_0288: + xOff = -1; + yOff = 2; + goto block_0368; + + block_0296: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 9) goto block_02B4; + + block_02A6: + xOff = -2; + yOff = 2; + goto block_0368; + + block_02B4: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 10) goto block_02D2; + + block_02C4: + xOff = -3; + yOff = 2; + goto block_0368; + + block_02D2: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 11) goto block_02F0; + + block_02E2: + xOff = -3; + yOff = 1; + goto block_0368; + + block_02F0: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 12) goto block_030E; + + block_0300: + xOff = -3; + yOff = 0; + goto block_0368; + + block_030E: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 13) goto block_032C; + + block_031E: + xOff = -3; + yOff = -1; + goto block_0368; + + block_032C: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 14) goto block_034A; + + block_033C: + xOff = -3; + yOff = -2; + goto block_0368; + + block_034A: + /* global_address global_id=0x3C */ + if (Intrinsic00FA() != 15) goto block_0368; + + block_035A: + xOff = -3; + yOff = -3; + goto block_0368; + + block_0368: + /* global_address global_id=0x3C */ + if Intrinsic0035() goto block_0382; + + block_0378: + InCrouch = 1; + goto block_03B9; + + block_0382: + InCrouch = 0; + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + + block_03B9: + /* global_address global_id=0x3C */ + wp = (Intrinsic0013() + (xOff * 16)); + /* global_address global_id=0x3C */ + local_0E = (Item.legal_create() + (yOff * 16)); + /* global_address global_id=0x3C */ + local_0C = Item.getZ(); + if Item.getSurfaceWeight(wp, 0, 0x039A, mine) goto block_0416; + + block_0408: + goto block_048E; + + block_0416: + if (!InCrouch) goto block_047D; + + block_044D: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + + block_047D: + goto block_0502; + + block_048E: + if (!InCrouch) goto block_04C7; + + block_0497: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + + block_04C7: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + + block_0502: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/LANDMINE/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/LANDMINE/slot_06_gotHit.txt new file mode 100644 index 0000000..4d77ce6 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/LANDMINE/slot_06_gotHit.txt @@ -0,0 +1,46 @@ +function landmine_gotHit() /* entry=206 class_id=0x039A slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + hType, /* [BP-02h] type=0x69 */ + item; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + if (ref != 1) goto block_0585; + + block_057F: + goto block_05F3; + + block_0585: + class_0A0C_slot_2C(vel, ref); + hType = retval; + if hType goto block_05CA; + + block_059E: + if (hType != 4) goto block_05B8; + + block_05AF: + goto block_05F3; + + block_05B5: + goto block_05C7; + + block_05B8: + + block_05C7: + goto block_05F3; + + block_05CA: + item = ref; + if Item.setQuality(*(arg_06), item) goto block_05F3; + + block_05E4: + + block_05F3: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/LASERI/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/LASERI/slot_06_gotHit.txt new file mode 100644 index 0000000..d3b7979 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/LASERI/slot_06_gotHit.txt @@ -0,0 +1,28 @@ +function laseri_gotHit() /* entry=108 class_id=0x01D5 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + laser, /* [BP-02h] type=0x24 */ + hType, /* [BP-04h] type=0x69 */ + QLo, /* [BP-06h] type=0x69 */ + p; /* [BP-08h] type=0x69 */ + + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + hType = retval; + QLo = Item.getQHi(arg_06); + class_0A0C_slot_2C(vel, ref); + if ((!retval)) { + spawn class_0A1E_slot_27(pid, 50, vel, ref, arg_06); + suspend; + /* dword_to_word */ + p = process_result; + if ((hType == 4) && (!p)) { + } + return; + } + return; +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/LAZER/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/LAZER/slot_20_slot_20.txt new file mode 100644 index 0000000..74217b0 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/LAZER/slot_20_slot_20.txt @@ -0,0 +1,107 @@ +function lazer_slot_20() /* entry=385 class_id=0x0A0F slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + monster, /* [BP-04h] type=0x24 */ + dir; /* [BP-06h] type=0x69 */ + + entry: + set_info(0x0205, *(arg_06)); + set_info(0x0205, *(arg_06)); + if ((Item.getStatus(arg_06) & 0x1000) || (Item.getFrame(arg_06) != 0)) goto block_0121; + + block_011B: + goto block_0301; + + block_0121: + class_0A1E_slot_23(0x1000, arg_06); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x48 */ + /* loop current_var=0xFE string_bytes=0x12 loop_type=0x2 */ + + block_016B: + if condition goto block_019D; + + block_016E: + if (Item.getQHi(arg_06) != Item.getQHi(item)) goto block_0199; + + block_018A: + class_0A1E_slot_23(0x1000, item); + + block_0199: + /* loopnext */ + goto block_016B; + + block_019D: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_01BC: + if condition goto block_0281; + + block_01BF: + if (monster <= 0x0100) goto block_027D; + + block_01CE: + if Item.overlaps(monster, arg_06) goto block_027D; + + block_01DF: + if (monster != Item.pop()) goto block_0258; + + block_01F0: + dir = Intrinsic00FA(monster); + if (dir < 8) goto block_0219; + + block_020C: + dir = (dir + 8); + goto block_0223; + + block_0219: + dir = (dir - 8); + + block_0223: + class_0A11_slot_2B(monster); + if (!retval) goto block_0255; + + block_0237: + + block_0255: + goto block_027D; + + block_0258: + spawn class_0A11_slot_2C(pid, *(arg_06), monster); + suspend; + + block_027D: + /* loopnext */ + goto block_01BC; + + block_0281: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x48 */ + /* loop current_var=0xFE string_bytes=0x12 loop_type=0x2 */ + + block_02BE: + if condition goto block_02F0; + + block_02C1: + if (Item.getQHi(arg_06) != Item.getQHi(item)) goto block_02EC; + + block_02DD: + class_0A1E_slot_24(0x1000, item); + + block_02EC: + /* loopnext */ + goto block_02BE; + + block_02F0: + class_0A1E_slot_24(0x1000, arg_06); + + block_0301: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/LAZEREGG/slot_07_hatch.txt b/USECODE/EUSECODE_extracted/pseudocode/LAZEREGG/slot_07_hatch.txt new file mode 100644 index 0000000..511cc4e --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/LAZEREGG/slot_07_hatch.txt @@ -0,0 +1,44 @@ +function lazeregg_hatch() /* entry=352 class_id=0x090C slot=0x07 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + laser, /* [BP-02h] type=0x24 */ + id; /* [BP-04h] type=0x69 */ + + entry: + set_info(0x0210, *(arg_06)); + process_exclude(); + id = 0; + id = Intrinsic003F(arg_06); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_011E: + if condition goto block_0169; + + block_0121: + if (Item.getFrame(laser) != 1) goto block_013F; + + block_0136: + goto block_016B; + + block_013C: + goto block_0165; + + block_013F: + spawn class_0A0C_slot_31(pid, laser, 0x00000000); + suspend; + + block_0165: + /* loopnext */ + goto block_011E; + + block_0169: + + block_016B: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/LAZEREW/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/LAZEREW/slot_0A_equip.txt new file mode 100644 index 0000000..3f09a97 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/LAZEREW/slot_0A_equip.txt @@ -0,0 +1,33 @@ +function lazerew_equip() /* entry=83 class_id=0x019C slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (Item.getFrame(arg_06) < 4) goto block_046D; + + block_03C9: + if (arg_0A != 1) goto block_03E8; + + block_03D7: + spawn class_019C_slot_20(arg_06); + goto block_046D; + + block_03E8: + if (arg_0A > 1) goto block_044D; + + block_03F6: + spawn class_019C_slot_20(arg_06); + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + class_0A1E_slot_24(0x1000, arg_06); + class_0A0C_slot_33(0x0205, *(arg_06)); + goto block_046D; + + block_044D: + class_0A1E_slot_24(0x1000, arg_06); + class_0A0C_slot_33(0x0205, *(arg_06)); + + block_046D: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/LAZEREW/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/LAZEREW/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..d0c4dba --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/LAZEREW/slot_10_leaveFastArea.txt @@ -0,0 +1,10 @@ +function lazerew_leaveFastArea() /* entry=83 class_id=0x019C slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + class_0A1E_slot_24(0x1000, arg_06); + class_0A0C_slot_33(0x0205, *(arg_06)); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/LAZEREW/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/LAZEREW/slot_20_slot_20.txt new file mode 100644 index 0000000..115b7e9 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/LAZEREW/slot_20_slot_20.txt @@ -0,0 +1,52 @@ +function lazerew_slot_20() /* entry=83 class_id=0x019C slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + fram, /* [BP-02h] type=0x69 */ + item, /* [BP-04h] type=0x24 */ + x, /* [BP-06h] type=0x69 */ + y; /* [BP-08h] type=0x69 */ + + entry: + set_info(0x0205, *(arg_06)); + if (Item.getStatus(arg_06) & 0x1000) goto block_010F; + + block_0109: + goto block_0322; + + block_010F: + class_0A1E_slot_23(0x1000, arg_06); + fram = Item.getFrame(arg_06); + + block_012C: + suspend; + if (fram != 1) goto block_01A0; + + block_0141: + goto block_02F0; + + block_01A0: + if (fram != 2) goto block_0207; + + block_01A8: + goto block_02F0; + + block_0207: + if (fram != 3) goto block_0294; + + block_020F: + spawn class_0A0C_slot_32(pid, 100, 0x00000000); + suspend; + goto block_02F0; + + block_0294: + + block_02F0: + spawn class_0A0C_slot_32(pid, ((5 - Intrinsic0029()) * 20), 0x00000000); + suspend; + goto block_012C; + + block_0322: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/LAZERNS/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/LAZERNS/slot_0A_equip.txt new file mode 100644 index 0000000..1da2c9e --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/LAZERNS/slot_0A_equip.txt @@ -0,0 +1,33 @@ +function lazerns_equip() /* entry=82 class_id=0x019B slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (Item.getFrame(arg_06) < 4) goto block_046A; + + block_03C6: + if (arg_0A != 1) goto block_03E5; + + block_03D4: + spawn class_019B_slot_20(arg_06); + goto block_046A; + + block_03E5: + if (arg_0A > 1) goto block_044A; + + block_03F3: + spawn class_019B_slot_20(arg_06); + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + class_0A1E_slot_24(0x1000, arg_06); + class_0A0C_slot_33(0x0205, *(arg_06)); + goto block_046A; + + block_044A: + class_0A1E_slot_24(0x1000, arg_06); + class_0A0C_slot_33(0x0205, *(arg_06)); + + block_046A: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/LAZERNS/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/LAZERNS/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..fadaabf --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/LAZERNS/slot_10_leaveFastArea.txt @@ -0,0 +1,10 @@ +function lazerns_leaveFastArea() /* entry=82 class_id=0x019B slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + class_0A1E_slot_24(0x1000, arg_06); + class_0A0C_slot_33(0x0205, *(arg_06)); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/LAZERNS/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/LAZERNS/slot_20_slot_20.txt new file mode 100644 index 0000000..35e9349 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/LAZERNS/slot_20_slot_20.txt @@ -0,0 +1,52 @@ +function lazerns_slot_20() /* entry=82 class_id=0x019B slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + fram, /* [BP-02h] type=0x69 */ + item, /* [BP-04h] type=0x24 */ + x, /* [BP-06h] type=0x69 */ + y; /* [BP-08h] type=0x69 */ + + entry: + set_info(0x0205, *(arg_06)); + if (Item.getStatus(arg_06) & 0x1000) goto block_010F; + + block_0109: + goto block_031F; + + block_010F: + class_0A1E_slot_23(0x1000, arg_06); + fram = Item.getFrame(arg_06); + + block_012C: + suspend; + if (fram != 1) goto block_01A0; + + block_0141: + goto block_02ED; + + block_01A0: + if (fram != 2) goto block_0207; + + block_01A8: + goto block_02ED; + + block_0207: + if (fram != 3) goto block_0294; + + block_020F: + spawn class_0A0C_slot_32(pid, 100, 0x00000000); + suspend; + goto block_02ED; + + block_0294: + + block_02ED: + spawn class_0A0C_slot_32(pid, ((5 - Intrinsic0029()) * 20), 0x00000000); + suspend; + goto block_012C; + + block_031F: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/LIFT/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/LIFT/slot_01_use.txt new file mode 100644 index 0000000..b59328c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/LIFT/slot_01_use.txt @@ -0,0 +1,26 @@ +function lift_use() /* entry=52 class_id=0x0133 slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if (Intrinsic007E(arg_06) != 10) goto block_0591; + + block_0545: + spawn class_0133_slot_20(pid, arg_06); + suspend; + /* global_address global_id=0x3C */ + suspend; + goto block_05C2; + + block_0591: + if (Intrinsic007E(arg_06) != 20) goto block_05C2; + + block_05A0: + spawn class_0133_slot_20(pid, arg_06); + suspend; + goto block_05C2; + + block_05C2: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/LIFT/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/LIFT/slot_06_gotHit.txt new file mode 100644 index 0000000..da00bd3 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/LIFT/slot_06_gotHit.txt @@ -0,0 +1,19 @@ +function lift_gotHit() /* entry=52 class_id=0x0133 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + set_info(0x020C, *(arg_06)); + process_exclude(); + item = ref; + class_0A0C_slot_2C(vel, ref); + if (retval) { + if (ref == 1) { + } + return; + } + return; +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/LIFT/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/LIFT/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..4dca367 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/LIFT/slot_0F_enterFastArea.txt @@ -0,0 +1,34 @@ +function lift_enterFastArea() /* entry=52 class_id=0x0133 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (Intrinsic007E(arg_06) != 2) goto block_0192; + + block_0100: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + spawn class_0133_slot_20(arg_06); + suspend; + goto block_0233; + + block_0192: + if (Intrinsic007E(arg_06) != 20) goto block_0233; + + block_01A1: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + spawn class_0133_slot_20(arg_06); + suspend; + goto block_0233; + + block_0233: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/LIFT/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/LIFT/slot_20_slot_20.txt new file mode 100644 index 0000000..bcfce22 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/LIFT/slot_20_slot_20.txt @@ -0,0 +1,81 @@ +function lift_slot_20() /* entry=52 class_id=0x0133 slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + total, /* [BP-04h] type=0x69 */ + alt, /* [BP-06h] type=0x69 */ + wp, /* [BP-0Bh] type=0x24 */ + cargo, /* [BP-0Dh] type=0x24 */ + cargoType; /* [BP-0Fh] type=0x69 */ + + entry: + set_info(0x0001, *(arg_06)); + alt = 1; + + block_05F2: + if (alt <= 47) goto block_077A; + + block_05FA: + wp = Intrinsic0013(arg_06); + local_09 = Item.legal_create(arg_06); + local_07 = (Item.getZ(arg_06) - 2); + total = 0; + /* loopscr value_u8=0x24 */ + /* loop current_var=0xF3 string_bytes=0x1 loop_type=0x6 */ + + block_063E: + if condition goto block_067B; + + block_0641: + cargoType = Intrinsic0016(cargo); + if (cargo != *(arg_06)) goto block_0677; + + block_0662: + total = (1 + total); + + block_0677: + /* loopnext */ + goto block_063E; + + block_067B: + if Item.pop(0, 1, wp, arg_06) goto block_070D; + + block_0692: + counter = 1; + + block_0699: + if (counter <= total) goto block_06E4; + + block_06A4: + cargo = Intrinsic0023(); + counter = (1 + counter); + goto block_0699; + + block_06E4: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_076D; + + block_070D: + counter = 1; + + block_071F: + if (counter <= total) goto block_0767; + + block_072A: + cargo = Intrinsic0023(); + counter = (1 + counter); + goto block_071F; + + block_0767: + goto block_077A; + + block_076D: + alt = (1 + alt); + goto block_05F2; + + block_077A: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/LIFTPIT/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/LIFTPIT/slot_06_gotHit.txt new file mode 100644 index 0000000..340e9de --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/LIFTPIT/slot_06_gotHit.txt @@ -0,0 +1,20 @@ +function liftpit_gotHit() /* entry=155 class_id=0x02DE slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + n; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + if ((ref < 0x00FF) && (ref != Item.pop())) goto block_010A; + + block_0103: + n = ref; + + block_010A: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/LITEWALL/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/LITEWALL/slot_20_slot_20.txt new file mode 100644 index 0000000..ced2002 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/LITEWALL/slot_20_slot_20.txt @@ -0,0 +1,75 @@ +function litewall_slot_20() /* entry=386 class_id=0x0A10 slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + r, /* [BP+0Ah] type=0x69 */ + wall, /* [BP-02h] type=0x24 */ + tempType, /* [BP-04h] type=0x69 */ + realType, /* [BP-06h] type=0x69 */ + counter; /* [BP-08h] type=0x69 */ + + entry: + set_info(0x0001, *(arg_06)); + set_info(1, r); + wall = r; + counter = 0; + if (Intrinsic0016(wall) != 0x045E) goto block_012F; + + block_011C: + realType = 0x045E; + tempType = 0x0462; + goto block_0198; + + block_012F: + if (Intrinsic0016(wall) != 0x045F) goto block_0152; + + block_013F: + realType = 0x045F; + tempType = 0x0463; + goto block_0198; + + block_0152: + if (Intrinsic0016(wall) != 0x0460) goto block_0175; + + block_0162: + realType = 0x0460; + tempType = 0x0464; + goto block_0198; + + block_0175: + if (Intrinsic0016(wall) != 0x0461) goto block_0198; + + block_0185: + realType = 0x0461; + tempType = 0x0465; + goto block_0198; + + block_0198: + + block_01A5: + if (counter < 4) goto block_01F3; + + block_01B3: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + counter = (1 + counter); + goto block_01A5; + + block_01F3: + spawn class_0A0C_slot_32(pid, 3, 0x00000000); + suspend; + + block_0219: + if counter goto block_0261; + + block_0221: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + counter = (counter - 1); + goto block_0219; + + block_0261: + /* pop_global global_id=0x5 size=0x1 */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/LITEWALL/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/LITEWALL/slot_21_slot_21.txt new file mode 100644 index 0000000..fb014dc --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/LITEWALL/slot_21_slot_21.txt @@ -0,0 +1,82 @@ +function litewall_slot_21() /* entry=386 class_id=0x0A10 slot=0x21 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + r, /* [BP+0Ah] type=0x69 */ + stepper, /* [BP-02h] type=0x24 */ + item, /* [BP-04h] type=0x24 */ + wall, /* [BP-06h] type=0x24 */ + wallList, /* [BP-08h] type=0x6C */ + x, /* [BP-0Ah] type=0x69 */ + y, /* [BP-0Ch] type=0x69 */ + z, /* [BP-0Dh] type=0x62 */ + dist, /* [BP-0Fh] type=0x69 */ + aSet, /* [BP-11h] type=0x69 */ + aSet1, /* [BP-13h] type=0x69 */ + aSet2, /* [BP-15h] type=0x69 */ + aSet3; /* [BP-17h] type=0x69 */ + + entry: + set_info(0x0001, *(arg_06)); + if global[0x0005] goto block_02ED; + + block_02EA: + goto block_044D; + + block_02ED: + stepper = r; + wall = 0; + dist = 21; + aSet = Item.isOn(stepper); + aSet1 = 3; + aSet2 = 48; + aSet3 = 49; + if (((Item.isOn(stepper) != 3) || (Item.isOn(stepper) != 48)) || (Item.isOn(stepper) != 49)) goto block_044D; + + block_035A: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x44 */ + /* loop current_var=0xFC string_bytes=0xA loop_type=0x2 */ + + block_0383: + if condition goto block_03CD; + + block_0386: + /* create_list element_size=0x2 count=0x1 */ + /* append_list */ + /* free_local_list bp_offset=0xF8 target=[BP-08h] */ + wallList = item; + class_0A0C_slot_29(wallList, stepper, item); + if (retval < dist) goto block_03C9; + + block_03B1: + class_0A0C_slot_29(stepper, item); + dist = retval; + wall = item; + + block_03C9: + /* loopnext */ + goto block_0383; + + block_03CD: + if ((wall != 0) && (dist <= 2)) goto block_044D; + + block_03E3: + /* pop_global global_id=0x5 size=0x1 */ + + block_03F5: + foreach_list item -> block_0412; + + block_03FA: + spawn class_0A10_slot_20(item, arg_06); + goto block_03F5; + + block_0412: + spawn class_0A11_slot_2D(pid, Intrinsic00C7(wall, stepper), wall, stepper); + suspend; + + block_044D: + /* free_local_list bp_offset=0xF8 target=[BP-08h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/LUGGAGE/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/LUGGAGE/slot_06_gotHit.txt new file mode 100644 index 0000000..9004976 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/LUGGAGE/slot_06_gotHit.txt @@ -0,0 +1,60 @@ +function luggage_gotHit() /* entry=22 class_id=0x008F slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if retval goto block_0258; + + block_00FD: + spawn class_0A1E_slot_27(pid, 100, vel, ref, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_015D; + + block_012D: + class_0A0C_slot_20(1); + if retval goto block_014D; + + block_013D: + goto block_015A; + + block_014D: + + block_015A: + goto block_0258; + + block_015D: + spawn class_0A1E_slot_28(pid, 0, 0, arg_06); + suspend; + if (Item.getFrame(arg_06) != 1) goto block_01AD; + + block_0191: + goto block_021C; + + block_01AD: + if (Item.getFrame(arg_06) != 2) goto block_01D8; + + block_01BC: + goto block_021C; + + block_01D8: + if (Item.getFrame(arg_06) != 3) goto block_0203; + + block_01E7: + goto block_021C; + + block_0203: + + block_021C: + + block_0258: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/LWPLATE4/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/LWPLATE4/slot_06_gotHit.txt new file mode 100644 index 0000000..08151a7 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/LWPLATE4/slot_06_gotHit.txt @@ -0,0 +1,29 @@ +function lwplate4_gotHit() /* entry=254 class_id=0x0466 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + r, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, r); + if retval goto block_0103; + + block_00FD: + goto block_013B; + + block_0103: + item = r; + if (r != 1) goto block_013B; + + block_0118: + spawn class_0A10_slot_21(pid, r, arg_06); + suspend; + + block_013B: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/LWPLATE8/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/LWPLATE8/slot_06_gotHit.txt new file mode 100644 index 0000000..72970c1 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/LWPLATE8/slot_06_gotHit.txt @@ -0,0 +1,29 @@ +function lwplate8_gotHit() /* entry=255 class_id=0x0467 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + r, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, r); + if retval goto block_0103; + + block_00FD: + goto block_013B; + + block_0103: + item = r; + if (r != 1) goto block_013B; + + block_0118: + spawn class_0A10_slot_21(pid, r, arg_06); + suspend; + + block_013B: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/L_EW-16/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/L_EW-16/slot_06_gotHit.txt new file mode 100644 index 0000000..6505eed --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/L_EW-16/slot_06_gotHit.txt @@ -0,0 +1,23 @@ +function l_ew_16_gotHit() /* entry=106 class_id=0x01D3 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + if (ref != Item.pop()) goto block_0154; + + block_00F9: + spawn class_0A0F_slot_20(arg_06); + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + + block_0154: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/L_EW-16/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/L_EW-16/slot_0B_unequip.txt new file mode 100644 index 0000000..3f039bf --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/L_EW-16/slot_0B_unequip.txt @@ -0,0 +1,13 @@ +function l_ew_16_unequip() /* entry=106 class_id=0x01D3 slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + if (!Item.getFrame(arg_06)) goto block_01FA; + + block_01EC: + + block_01FA: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/L_EW-16/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/L_EW-16/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..ecc4b06 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/L_EW-16/slot_0F_enterFastArea.txt @@ -0,0 +1,13 @@ +function l_ew_16_enterFastArea() /* entry=106 class_id=0x01D3 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (!Item.getFrame(arg_06)) goto block_01AF; + + block_01A1: + + block_01AF: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/L_EW-16/slot_13_avatarStoleSomething.txt b/USECODE/EUSECODE_extracted/pseudocode/L_EW-16/slot_13_avatarStoleSomething.txt new file mode 100644 index 0000000..dc98508 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/L_EW-16/slot_13_avatarStoleSomething.txt @@ -0,0 +1,8 @@ +function l_ew_16_avatarStoleSomething() /* entry=106 class_id=0x01D3 slot=0x13 */ +{ + entry: + set_info(0x022E, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/L_EW-2/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/L_EW-2/slot_06_gotHit.txt new file mode 100644 index 0000000..a6de796 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/L_EW-2/slot_06_gotHit.txt @@ -0,0 +1,23 @@ +function l_ew_2_gotHit() /* entry=103 class_id=0x01D0 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + if (ref != Item.pop()) goto block_0154; + + block_00F9: + spawn class_0A0F_slot_20(arg_06); + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + + block_0154: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/L_EW-2/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/L_EW-2/slot_0B_unequip.txt new file mode 100644 index 0000000..b5d75fe --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/L_EW-2/slot_0B_unequip.txt @@ -0,0 +1,13 @@ +function l_ew_2_unequip() /* entry=103 class_id=0x01D0 slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + if (!Item.getFrame(arg_06)) goto block_01FA; + + block_01EC: + + block_01FA: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/L_EW-2/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/L_EW-2/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..ccc2909 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/L_EW-2/slot_0F_enterFastArea.txt @@ -0,0 +1,13 @@ +function l_ew_2_enterFastArea() /* entry=103 class_id=0x01D0 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (!Item.getFrame(arg_06)) goto block_01AF; + + block_01A1: + + block_01AF: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/L_EW-2/slot_13_avatarStoleSomething.txt b/USECODE/EUSECODE_extracted/pseudocode/L_EW-2/slot_13_avatarStoleSomething.txt new file mode 100644 index 0000000..32cd864 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/L_EW-2/slot_13_avatarStoleSomething.txt @@ -0,0 +1,8 @@ +function l_ew_2_avatarStoleSomething() /* entry=103 class_id=0x01D0 slot=0x13 */ +{ + entry: + set_info(0x022E, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/L_EW-4/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/L_EW-4/slot_06_gotHit.txt new file mode 100644 index 0000000..32a3826 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/L_EW-4/slot_06_gotHit.txt @@ -0,0 +1,23 @@ +function l_ew_4_gotHit() /* entry=104 class_id=0x01D1 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + if (ref != Item.pop()) goto block_0154; + + block_00F9: + spawn class_0A0F_slot_20(arg_06); + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + + block_0154: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/L_EW-4/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/L_EW-4/slot_0B_unequip.txt new file mode 100644 index 0000000..4541dae --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/L_EW-4/slot_0B_unequip.txt @@ -0,0 +1,13 @@ +function l_ew_4_unequip() /* entry=104 class_id=0x01D1 slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + if (!Item.getFrame(arg_06)) goto block_01FA; + + block_01EC: + + block_01FA: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/L_EW-4/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/L_EW-4/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..b5d32dd --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/L_EW-4/slot_0F_enterFastArea.txt @@ -0,0 +1,13 @@ +function l_ew_4_enterFastArea() /* entry=104 class_id=0x01D1 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (!Item.getFrame(arg_06)) goto block_01AF; + + block_01A1: + + block_01AF: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/L_EW-4/slot_13_avatarStoleSomething.txt b/USECODE/EUSECODE_extracted/pseudocode/L_EW-4/slot_13_avatarStoleSomething.txt new file mode 100644 index 0000000..8fa350a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/L_EW-4/slot_13_avatarStoleSomething.txt @@ -0,0 +1,8 @@ +function l_ew_4_avatarStoleSomething() /* entry=104 class_id=0x01D1 slot=0x13 */ +{ + entry: + set_info(0x022E, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/L_EW-8/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/L_EW-8/slot_06_gotHit.txt new file mode 100644 index 0000000..6d5ef4e --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/L_EW-8/slot_06_gotHit.txt @@ -0,0 +1,23 @@ +function l_ew_8_gotHit() /* entry=105 class_id=0x01D2 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + if (ref != Item.pop()) goto block_0154; + + block_00F9: + spawn class_0A0F_slot_20(arg_06); + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + + block_0154: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/L_EW-8/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/L_EW-8/slot_0B_unequip.txt new file mode 100644 index 0000000..ca018c4 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/L_EW-8/slot_0B_unequip.txt @@ -0,0 +1,13 @@ +function l_ew_8_unequip() /* entry=105 class_id=0x01D2 slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + if (!Item.getFrame(arg_06)) goto block_01FA; + + block_01EC: + + block_01FA: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/L_EW-8/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/L_EW-8/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..a3652c8 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/L_EW-8/slot_0F_enterFastArea.txt @@ -0,0 +1,13 @@ +function l_ew_8_enterFastArea() /* entry=105 class_id=0x01D2 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (!Item.getFrame(arg_06)) goto block_01AF; + + block_01A1: + + block_01AF: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/L_EW-8/slot_13_avatarStoleSomething.txt b/USECODE/EUSECODE_extracted/pseudocode/L_EW-8/slot_13_avatarStoleSomething.txt new file mode 100644 index 0000000..4e14975 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/L_EW-8/slot_13_avatarStoleSomething.txt @@ -0,0 +1,8 @@ +function l_ew_8_avatarStoleSomething() /* entry=105 class_id=0x01D2 slot=0x13 */ +{ + entry: + set_info(0x022E, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/L_NS-16/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/L_NS-16/slot_06_gotHit.txt new file mode 100644 index 0000000..744d3b3 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/L_NS-16/slot_06_gotHit.txt @@ -0,0 +1,23 @@ +function l_ns_16_gotHit() /* entry=102 class_id=0x01CF slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + if (ref != Item.pop()) goto block_0154; + + block_00F9: + spawn class_0A0F_slot_20(arg_06); + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + + block_0154: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/L_NS-16/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/L_NS-16/slot_0B_unequip.txt new file mode 100644 index 0000000..ab7ec07 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/L_NS-16/slot_0B_unequip.txt @@ -0,0 +1,13 @@ +function l_ns_16_unequip() /* entry=102 class_id=0x01CF slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + if (!Item.getFrame(arg_06)) goto block_01FA; + + block_01EC: + + block_01FA: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/L_NS-16/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/L_NS-16/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..101081e --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/L_NS-16/slot_0F_enterFastArea.txt @@ -0,0 +1,13 @@ +function l_ns_16_enterFastArea() /* entry=102 class_id=0x01CF slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (!Item.getFrame(arg_06)) goto block_01AF; + + block_01A1: + + block_01AF: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/L_NS-16/slot_13_avatarStoleSomething.txt b/USECODE/EUSECODE_extracted/pseudocode/L_NS-16/slot_13_avatarStoleSomething.txt new file mode 100644 index 0000000..6bef6df --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/L_NS-16/slot_13_avatarStoleSomething.txt @@ -0,0 +1,8 @@ +function l_ns_16_avatarStoleSomething() /* entry=102 class_id=0x01CF slot=0x13 */ +{ + entry: + set_info(0x022E, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/L_NS-2/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/L_NS-2/slot_06_gotHit.txt new file mode 100644 index 0000000..a2aeea3 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/L_NS-2/slot_06_gotHit.txt @@ -0,0 +1,23 @@ +function l_ns_2_gotHit() /* entry=98 class_id=0x01CB slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + if (ref != Item.pop()) goto block_0154; + + block_00F9: + spawn class_0A0F_slot_20(arg_06); + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + + block_0154: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/L_NS-2/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/L_NS-2/slot_0B_unequip.txt new file mode 100644 index 0000000..1ddaeaa --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/L_NS-2/slot_0B_unequip.txt @@ -0,0 +1,13 @@ +function l_ns_2_unequip() /* entry=98 class_id=0x01CB slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + if (!Item.getFrame(arg_06)) goto block_01FA; + + block_01EC: + + block_01FA: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/L_NS-2/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/L_NS-2/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..ab93842 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/L_NS-2/slot_0F_enterFastArea.txt @@ -0,0 +1,13 @@ +function l_ns_2_enterFastArea() /* entry=98 class_id=0x01CB slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (!Item.getFrame(arg_06)) goto block_01AF; + + block_01A1: + + block_01AF: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/L_NS-2/slot_13_avatarStoleSomething.txt b/USECODE/EUSECODE_extracted/pseudocode/L_NS-2/slot_13_avatarStoleSomething.txt new file mode 100644 index 0000000..ab1a214 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/L_NS-2/slot_13_avatarStoleSomething.txt @@ -0,0 +1,8 @@ +function l_ns_2_avatarStoleSomething() /* entry=98 class_id=0x01CB slot=0x13 */ +{ + entry: + set_info(0x022E, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/L_NS-4/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/L_NS-4/slot_06_gotHit.txt new file mode 100644 index 0000000..8c3346b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/L_NS-4/slot_06_gotHit.txt @@ -0,0 +1,23 @@ +function l_ns_4_gotHit() /* entry=99 class_id=0x01CC slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + if (ref != Item.pop()) goto block_0154; + + block_00F9: + spawn class_0A0F_slot_20(arg_06); + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + + block_0154: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/L_NS-4/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/L_NS-4/slot_0B_unequip.txt new file mode 100644 index 0000000..c95371a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/L_NS-4/slot_0B_unequip.txt @@ -0,0 +1,13 @@ +function l_ns_4_unequip() /* entry=99 class_id=0x01CC slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + if (!Item.getFrame(arg_06)) goto block_01FA; + + block_01EC: + + block_01FA: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/L_NS-4/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/L_NS-4/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..4c99851 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/L_NS-4/slot_0F_enterFastArea.txt @@ -0,0 +1,13 @@ +function l_ns_4_enterFastArea() /* entry=99 class_id=0x01CC slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (!Item.getFrame(arg_06)) goto block_01AF; + + block_01A1: + + block_01AF: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/L_NS-4/slot_13_avatarStoleSomething.txt b/USECODE/EUSECODE_extracted/pseudocode/L_NS-4/slot_13_avatarStoleSomething.txt new file mode 100644 index 0000000..b30f062 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/L_NS-4/slot_13_avatarStoleSomething.txt @@ -0,0 +1,8 @@ +function l_ns_4_avatarStoleSomething() /* entry=99 class_id=0x01CC slot=0x13 */ +{ + entry: + set_info(0x022E, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/L_NS-8/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/L_NS-8/slot_06_gotHit.txt new file mode 100644 index 0000000..cf47377 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/L_NS-8/slot_06_gotHit.txt @@ -0,0 +1,23 @@ +function l_ns_8_gotHit() /* entry=101 class_id=0x01CE slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + if (ref != Item.pop()) goto block_0154; + + block_00F9: + spawn class_0A0F_slot_20(arg_06); + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + + block_0154: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/L_NS-8/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/L_NS-8/slot_0B_unequip.txt new file mode 100644 index 0000000..8c8cb04 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/L_NS-8/slot_0B_unequip.txt @@ -0,0 +1,13 @@ +function l_ns_8_unequip() /* entry=101 class_id=0x01CE slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + if (!Item.getFrame(arg_06)) goto block_01FA; + + block_01EC: + + block_01FA: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/L_NS-8/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/L_NS-8/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..f0dca73 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/L_NS-8/slot_0F_enterFastArea.txt @@ -0,0 +1,13 @@ +function l_ns_8_enterFastArea() /* entry=101 class_id=0x01CE slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (!Item.getFrame(arg_06)) goto block_01AF; + + block_01A1: + + block_01AF: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/L_NS-8/slot_13_avatarStoleSomething.txt b/USECODE/EUSECODE_extracted/pseudocode/L_NS-8/slot_13_avatarStoleSomething.txt new file mode 100644 index 0000000..8d465c2 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/L_NS-8/slot_13_avatarStoleSomething.txt @@ -0,0 +1,8 @@ +function l_ns_8_avatarStoleSomething() /* entry=101 class_id=0x01CE slot=0x13 */ +{ + entry: + set_info(0x022E, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MAINTMAN/slot_0E_calledFromAnim.txt b/USECODE/EUSECODE_extracted/pseudocode/MAINTMAN/slot_0E_calledFromAnim.txt new file mode 100644 index 0000000..85cc5e6 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MAINTMAN/slot_0E_calledFromAnim.txt @@ -0,0 +1,9 @@ +function maintman_calledFromAnim() /* entry=164 class_id=0x02F5 slot=0x0E */ +{ + entry: + set_info(0x021A, *(arg_06)); + process_exclude(); + spawn class_0A1C_slot_20(Item.getQLo(arg_06), *(arg_06), arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MALRM_EW/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/MALRM_EW/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..10ca732 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MALRM_EW/slot_0F_enterFastArea.txt @@ -0,0 +1,16 @@ +function malrm_ew_enterFastArea() /* entry=136 class_id=0x0271 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if Intrinsic0000() goto block_0106; + + block_00F6: + goto block_0113; + + block_0106: + + block_0113: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MALRM_NS/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/MALRM_NS/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..115b9c4 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MALRM_NS/slot_0F_enterFastArea.txt @@ -0,0 +1,16 @@ +function malrm_ns_enterFastArea() /* entry=70 class_id=0x0174 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if Intrinsic0000() goto block_0106; + + block_00F6: + goto block_0113; + + block_0106: + + block_0113: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MBARREL/slot_05_hit.txt b/USECODE/EUSECODE_extracted/pseudocode/MBARREL/slot_05_hit.txt new file mode 100644 index 0000000..14936e3 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MBARREL/slot_05_hit.txt @@ -0,0 +1,30 @@ +function mbarrel_hit() /* entry=113 class_id=0x01DD slot=0x05 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + v, /* [BP-02h] type=0x69 */ + item, /* [BP-04h] type=0x24 */ + item2, /* [BP-06h] type=0x24 */ + r1, /* [BP-08h] type=0x69 */ + r2; /* [BP-0Ah] type=0x69 */ + + entry: + set_info(0x020B, *(arg_06)); + process_exclude(); + v = vel; + if (vel >= 10) goto block_032F; + + block_0280: + class_0A0C_slot_20(3); + r1 = retval; + class_0A0C_slot_20(3); + r2 = retval; + spawn class_0A1E_slot_2A(pid, arg_06); + suspend; + + block_032F: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MBARREL/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/MBARREL/slot_06_gotHit.txt new file mode 100644 index 0000000..7163cc4 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MBARREL/slot_06_gotHit.txt @@ -0,0 +1,49 @@ +function mbarrel_gotHit() /* entry=113 class_id=0x01DD slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + item2, /* [BP-04h] type=0x24 */ + x, /* [BP-06h] type=0x69 */ + y, /* [BP-08h] type=0x69 */ + z, /* [BP-09h] type=0x62 */ + qLo; /* [BP-0Bh] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A1E_slot_27(pid, 100, vel, ref, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_014E; + + block_011B: + class_0A0C_slot_20(1); + if retval goto block_013B; + + block_012B: + goto block_0148; + + block_013B: + + block_0148: + goto block_0207; + + block_014E: + if (Item.getFrame(arg_06) != 0) goto block_0207; + + block_0160: + z = Item.getZ(arg_06); + x = Intrinsic0013(arg_06); + y = Item.legal_create(arg_06); + qLo = Item.getQHi(arg_06); + spawn class_0A1E_slot_2A(pid, arg_06); + suspend; + class_0A0C_slot_20(3); + + block_0207: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MCRATE/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/MCRATE/slot_06_gotHit.txt new file mode 100644 index 0000000..f548bc6 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MCRATE/slot_06_gotHit.txt @@ -0,0 +1,59 @@ +function mcrate_gotHit() /* entry=231 class_id=0x0432 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + x, /* [BP-02h] type=0x69 */ + y, /* [BP-04h] type=0x69 */ + z, /* [BP-05h] type=0x62 */ + item; /* [BP-07h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if retval goto block_0251; + + block_00FD: + spawn class_0A1E_slot_27(pid, 100, vel, ref, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_015D; + + block_012D: + class_0A0C_slot_20(1); + if retval goto block_014D; + + block_013D: + goto block_015A; + + block_014D: + + block_015A: + goto block_0251; + + block_015D: + x = Intrinsic0013(arg_06); + y = Item.legal_create(arg_06); + z = Item.getZ(arg_06); + set_info(1, 0); + if (Item.getFrame(arg_06) != 0) goto block_01F0; + + block_019E: + spawn class_0A1E_slot_28(pid, 1, 0, arg_06); + suspend; + goto block_0251; + + block_01F0: + if (Item.getFrame(arg_06) != 1) goto block_0251; + + block_01FF: + spawn class_0A1E_slot_28(pid, 1, 1, arg_06); + suspend; + goto block_0251; + + block_0251: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MDESKEW/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/MDESKEW/slot_06_gotHit.txt new file mode 100644 index 0000000..b233264 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MDESKEW/slot_06_gotHit.txt @@ -0,0 +1,44 @@ +function mdeskew_gotHit() /* entry=107 class_id=0x01D4 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + fram, /* [BP-02h] type=0x69 */ + item; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + fram = Item.getFrame(arg_06); + if (fram > 1) goto block_010D; + + block_0107: + goto block_01A6; + + block_010D: + class_0A0C_slot_2C(vel, ref); + if (retval != 4) goto block_01A6; + + block_0128: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFC string_bytes=0x1 loop_type=0x6 */ + + block_0138: + if condition goto block_016F; + + block_013B: + class_0A0C_slot_20(1, 10); + class_0A0C_slot_20((retval + 10), 10); + class_0A0C_slot_20(retval, 10); + /* loopnext */ + goto block_0138; + + block_016F: + spawn class_0A1E_slot_28(pid, 0, 1, arg_06); + suspend; + + block_01A6: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MDESKNS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/MDESKNS/slot_06_gotHit.txt new file mode 100644 index 0000000..ca31d15 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MDESKNS/slot_06_gotHit.txt @@ -0,0 +1,44 @@ +function mdeskns_gotHit() /* entry=112 class_id=0x01DC slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + fram, /* [BP-02h] type=0x69 */ + item; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + fram = Item.getFrame(arg_06); + if (fram > 1) goto block_010D; + + block_0107: + goto block_01A6; + + block_010D: + class_0A0C_slot_2C(vel, ref); + if (retval != 4) goto block_01A6; + + block_0128: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFC string_bytes=0x1 loop_type=0x6 */ + + block_0138: + if condition goto block_016F; + + block_013B: + class_0A0C_slot_20(1, 10); + class_0A0C_slot_20((retval + 10), 10); + class_0A0C_slot_20(retval, 10); + /* loopnext */ + goto block_0138; + + block_016F: + spawn class_0A1E_slot_28(pid, 0, 1, arg_06); + suspend; + + block_01A6: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MDOOR_E/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/MDOOR_E/slot_06_gotHit.txt new file mode 100644 index 0000000..0dcd063 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MDOOR_E/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function mdoor_e_gotHit() /* entry=7 class_id=0x0046 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A06_slot_23(pid, vel, ref, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MDOOR_E/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/MDOOR_E/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..aea11a7 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MDOOR_E/slot_0F_enterFastArea.txt @@ -0,0 +1,17 @@ +function mdoor_e_enterFastArea() /* entry=7 class_id=0x0046 slot=0x0F */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (Item.callEvent0A(arg_06) != 0x00FF) goto block_0145; + + block_0101: + + block_0145: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MDOOR_E/slot_13_avatarStoleSomething.txt b/USECODE/EUSECODE_extracted/pseudocode/MDOOR_E/slot_13_avatarStoleSomething.txt new file mode 100644 index 0000000..dc6f28e --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MDOOR_E/slot_13_avatarStoleSomething.txt @@ -0,0 +1,18 @@ +function mdoor_e_avatarStoleSomething() /* entry=7 class_id=0x0046 slot=0x13 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + num, /* [BP+0Ah] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + item2, /* [BP-04h] type=0x24 */ + door; /* [BP-06h] type=0x24 */ + + entry: + set_info(0x022E, *(arg_06)); + process_exclude(); + door = *(arg_06); + spawn class_0A06_slot_22(pid, door); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MDOOR_N/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/MDOOR_N/slot_06_gotHit.txt new file mode 100644 index 0000000..980e495 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MDOOR_N/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function mdoor_n_gotHit() /* entry=33 class_id=0x00A9 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A06_slot_23(pid, vel, ref, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MDOOR_N/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/MDOOR_N/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..a632672 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MDOOR_N/slot_0F_enterFastArea.txt @@ -0,0 +1,17 @@ +function mdoor_n_enterFastArea() /* entry=33 class_id=0x00A9 slot=0x0F */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (Item.callEvent0A(arg_06) != 0x00FF) goto block_0145; + + block_0101: + + block_0145: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MDOOR_N/slot_13_avatarStoleSomething.txt b/USECODE/EUSECODE_extracted/pseudocode/MDOOR_N/slot_13_avatarStoleSomething.txt new file mode 100644 index 0000000..8f44ded --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MDOOR_N/slot_13_avatarStoleSomething.txt @@ -0,0 +1,18 @@ +function mdoor_n_avatarStoleSomething() /* entry=33 class_id=0x00A9 slot=0x13 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + num, /* [BP+0Ah] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + item2, /* [BP-04h] type=0x24 */ + door; /* [BP-06h] type=0x24 */ + + entry: + set_info(0x022E, *(arg_06)); + process_exclude(); + door = *(arg_06); + spawn class_0A06_slot_22(pid, door); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MEDIKIT/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/MEDIKIT/slot_01_use.txt new file mode 100644 index 0000000..329672f --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MEDIKIT/slot_01_use.txt @@ -0,0 +1,36 @@ +function medikit_use() /* entry=188 class_id=0x0351 slot=0x01 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + set_info(0x00F0, 0); + /* global_address global_id=0x3C */ + if (Intrinsic007C() >= 0x0096) goto block_0132; + + block_010B: + spawn class_0A0C_slot_21(pid, 0x00B0, 0x00000000); + suspend; + + block_0132: + /* global_address global_id=0x3C */ + if Intrinsic00CA(80) goto block_016E; + + block_0144: + spawn class_0A0C_slot_21(pid, 0x00DB, 0x00000000); + suspend; + goto block_01C3; + + block_016E: + spawn class_0A0C_slot_21(pid, 0x00B0, 0x00000000); + suspend; + + block_01C3: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MELF/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/MELF/slot_01_use.txt new file mode 100644 index 0000000..5d16578 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MELF/slot_01_use.txt @@ -0,0 +1,49 @@ +function melf_use() /* entry=219 class_id=0x03BB slot=0x01 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if Item.callEvent0A(arg_06) goto block_0100; + + block_00FA: + goto block_0229; + + block_0100: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + /* pop_global global_id=0x24 size=0x1 */ + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x41 */ + /* loop current_var=0xFE string_bytes=0x4 loop_type=0x2 */ + + block_01E6: + if condition goto block_0227; + + block_01E9: + if (Item.getQHi(item) != 34) goto block_0223; + + block_01FE: + + block_0223: + /* loopnext */ + goto block_01E6; + + block_0227: + + block_0229: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MFAN_EW/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/MFAN_EW/slot_06_gotHit.txt new file mode 100644 index 0000000..200a966 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MFAN_EW/slot_06_gotHit.txt @@ -0,0 +1,22 @@ +function mfan_ew_gotHit() /* entry=120 class_id=0x0200 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if retval goto block_0145; + + block_00FD: + class_0A0C_slot_20(1); + spawn class_0A1E_slot_28(pid, 0, 1, arg_06); + suspend; + + block_0145: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MFAN_NS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/MFAN_NS/slot_06_gotHit.txt new file mode 100644 index 0000000..9a8cf71 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MFAN_NS/slot_06_gotHit.txt @@ -0,0 +1,22 @@ +function mfan_ns_gotHit() /* entry=119 class_id=0x01FF slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if retval goto block_0145; + + block_00FD: + class_0A0C_slot_20(1); + spawn class_0A1E_slot_28(pid, 0, 1, arg_06); + suspend; + + block_0145: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MGR_EW/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/MGR_EW/slot_06_gotHit.txt new file mode 100644 index 0000000..c55dc62 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MGR_EW/slot_06_gotHit.txt @@ -0,0 +1,29 @@ +function mgr_ew_gotHit() /* entry=147 class_id=0x02AE slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 0x1000) goto block_0104; + + block_00FE: + goto block_0181; + + block_0104: + class_0A0C_slot_2C(vel, ref); + if retval goto block_0181; + + block_0116: + class_0A1E_slot_23(0x1000, arg_06); + spawn class_0A0C_slot_32(pid, 20, 0x00000000); + suspend; + class_0A1E_slot_24(0x1000, arg_06); + + block_0181: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MGR_NS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/MGR_NS/slot_06_gotHit.txt new file mode 100644 index 0000000..8e27156 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MGR_NS/slot_06_gotHit.txt @@ -0,0 +1,29 @@ +function mgr_ns_gotHit() /* entry=141 class_id=0x0294 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 0x1000) goto block_0104; + + block_00FE: + goto block_0181; + + block_0104: + class_0A0C_slot_2C(vel, ref); + if retval goto block_0181; + + block_0116: + class_0A1E_slot_23(0x1000, arg_06); + spawn class_0A0C_slot_32(pid, 20, 0x00000000); + suspend; + class_0A1E_slot_24(0x1000, arg_06); + + block_0181: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MINELET/slot_05_hit.txt b/USECODE/EUSECODE_extracted/pseudocode/MINELET/slot_05_hit.txt new file mode 100644 index 0000000..5dd5b47 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MINELET/slot_05_hit.txt @@ -0,0 +1,13 @@ +function minelet_hit() /* entry=142 class_id=0x029E slot=0x05 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020B, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MINELET/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/MINELET/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..834248a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MINELET/slot_10_leaveFastArea.txt @@ -0,0 +1,8 @@ +function minelet_leaveFastArea() /* entry=142 class_id=0x029E slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS10/slot_04_cachein.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS10/slot_04_cachein.txt new file mode 100644 index 0000000..4d606c1 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS10/slot_04_cachein.txt @@ -0,0 +1,9 @@ +function miss10_cachein() /* entry=362 class_id=0x0916 slot=0x04 */ +{ + entry: + set_info(0x0213, *(arg_06)); + process_exclude(); + /* pop_global global_id=0x1F size=0x1 */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS10/slot_07_hatch.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS10/slot_07_hatch.txt new file mode 100644 index 0000000..142b244 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS10/slot_07_hatch.txt @@ -0,0 +1,29 @@ +function miss10_hatch() /* entry=362 class_id=0x0916 slot=0x07 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x0210, *(arg_06)); + process_exclude(); + if (Intrinsic003F(arg_06) != 1) goto block_0178; + + block_0133: + if (global[0x0029] != 1) goto block_0178; + + block_0140: + spawn class_0A0C_slot_26(pid, "10g", 0x00000000); + /* free_stack_string value_u8=0x0 target=[SP+00h] */ + suspend; + + block_0178: + if (Intrinsic003F(arg_06) != 2) goto block_0196; + + block_018D: + /* pop_global global_id=0x37 size=0x1 */ + + block_0196: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS11/slot_04_cachein.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS11/slot_04_cachein.txt new file mode 100644 index 0000000..3d844ae --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS11/slot_04_cachein.txt @@ -0,0 +1,9 @@ +function miss11_cachein() /* entry=363 class_id=0x0917 slot=0x04 */ +{ + entry: + set_info(0x0213, *(arg_06)); + process_exclude(); + /* pop_global global_id=0x1F size=0x1 */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS11/slot_07_hatch.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS11/slot_07_hatch.txt new file mode 100644 index 0000000..bd95758 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS11/slot_07_hatch.txt @@ -0,0 +1,32 @@ +function miss11_hatch() /* entry=363 class_id=0x0917 slot=0x07 */ +{ + entry: + set_info(0x0210, *(arg_06)); + process_exclude(); + if (Intrinsic003F(arg_06) != 1) goto block_0171; + + block_012D: + spawn class_0A0C_slot_26(pid, "11f", 0x00000000); + /* free_stack_string value_u8=0x0 target=[SP+00h] */ + suspend; + /* pop_global global_id=0x35 size=0x1 */ + goto block_01C5; + + block_0171: + if (Intrinsic003F(arg_06) != 2) goto block_01C5; + + block_0180: + if global[0x002A] goto block_01C2; + + block_018A: + spawn class_0A0C_slot_26(pid, "11g", 0x00000000); + /* free_stack_string value_u8=0x0 target=[SP+00h] */ + suspend; + + block_01C2: + goto block_01C5; + + block_01C5: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS12/slot_04_cachein.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS12/slot_04_cachein.txt new file mode 100644 index 0000000..aa69f3d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS12/slot_04_cachein.txt @@ -0,0 +1,9 @@ +function miss12_cachein() /* entry=364 class_id=0x0918 slot=0x04 */ +{ + entry: + set_info(0x0213, *(arg_06)); + process_exclude(); + /* pop_global global_id=0x1F size=0x1 */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS12/slot_07_hatch.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS12/slot_07_hatch.txt new file mode 100644 index 0000000..d945b34 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS12/slot_07_hatch.txt @@ -0,0 +1,30 @@ +function miss12_hatch() /* entry=364 class_id=0x0918 slot=0x07 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + id, /* [BP-04h] type=0x69 */ + qlo; /* [BP-06h] type=0x69 */ + + entry: + set_info(0x0210, *(arg_06)); + process_exclude(); + id = Intrinsic003F(arg_06); + if id goto block_01D0; + + block_0134: + if global[0x002B] goto block_01D0; + + block_013E: + spawn class_0A0C_slot_26(pid, "12e", 0x00000000); + /* free_stack_string value_u8=0x0 target=[SP+00h] */ + suspend; + item = *(arg_06); + qlo = Item.getQHi(item); + spawn class_0A18_slot_20(pid, (0 + 0x0080), item, arg_06); + suspend; + + block_01D0: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS13/slot_04_cachein.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS13/slot_04_cachein.txt new file mode 100644 index 0000000..597c03f --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS13/slot_04_cachein.txt @@ -0,0 +1,9 @@ +function miss13_cachein() /* entry=365 class_id=0x0919 slot=0x04 */ +{ + entry: + set_info(0x0213, *(arg_06)); + process_exclude(); + /* pop_global global_id=0x1F size=0x1 */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS13/slot_07_hatch.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS13/slot_07_hatch.txt new file mode 100644 index 0000000..020331c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS13/slot_07_hatch.txt @@ -0,0 +1,23 @@ +function miss13_hatch() /* entry=365 class_id=0x0919 slot=0x07 */ +{ + entry: + set_info(0x0210, *(arg_06)); + process_exclude(); + if (Intrinsic003F(arg_06) != 1) goto block_0136; + + block_0133: + goto block_016F; + + block_0136: + if (Intrinsic003F(arg_06) != 2) goto block_016F; + + block_0145: + class_0A0C_slot_41(); + spawn class_0919_slot_20(pid, arg_06); + suspend; + goto block_016F; + + block_016F: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS13/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS13/slot_20_slot_20.txt new file mode 100644 index 0000000..bd917a4 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS13/slot_20_slot_20.txt @@ -0,0 +1,153 @@ +function miss13_slot_20() /* entry=365 class_id=0x0919 slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + item, /* [BP-04h] type=0x24 */ + egg, /* [BP-06h] type=0x24 */ + wench, /* [BP-08h] type=0x24 */ + npcWench, /* [BP-0Ah] type=0x24 */ + door; /* [BP-0Ch] type=0x24 */ + + entry: + set_info(0x0001, *(arg_06)); + counter = 0; + egg = *(arg_06); + set_info(1, 0); + + block_01BB: + /* global_address global_id=0x3C */ + if Intrinsic0033() goto block_01F1; + + block_01CB: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_01BB; + + block_01F1: + wench = 0; + door = 0; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF6 string_bytes=0x6 loop_type=0x2 */ + + block_021D: + if condition goto block_022B; + + block_0220: + wench = npcWench; + /* loopnext */ + goto block_021D; + + block_022B: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_024B: + if condition goto block_0278; + + block_024E: + if (Item.getQHi(item) != 4) goto block_0274; + + block_0263: + goto block_0640; + + block_0274: + /* loopnext */ + goto block_024B; + + block_0278: + if wench goto block_0635; + + block_0282: + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_02DD: + if condition goto block_038B; + + block_02E0: + class_0A0C_slot_29(item, global[0x003C]); + if ((retval > 3) && (counter != 20)) goto block_0361; + + block_0303: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + spawn class_0A11_slot_22(Item.getDirToItem(Intrinsic0013(pid, 1, Item.legal_create(Item.legal_create(wench), Intrinsic0013(wench))))); + suspend; + counter = (1 + counter); + goto block_02E0; + + block_0361: + door = item; + spawn class_0A06_slot_20(pid, door); + suspend; + /* loopnext */ + goto block_02DD; + + block_038B: + /* global_address global_id=0x3C */ + suspend; + /* global_address global_id=0x3C */ + spawn class_0A11_slot_22(pid, 3, 0); + suspend; + /* global_address global_id=0x3C */ + spawn class_0A11_slot_22(pid, 2, 14); + suspend; + /* global_address global_id=0x3C */ + spawn class_0A11_slot_22(pid, 4, 12); + suspend; + suspend; + /* str_to_ptr */ + /* global_address global_id=0x3C */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + spawn class_0A11_slot_22(pid, 6, 4, wench); + suspend; + spawn class_0A11_slot_22(pid, 3, 4, wench); + suspend; + suspend; + /* global_address global_id=0x3C */ + spawn class_0A11_slot_22(pid, 2, 4); + suspend; + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_0567: + if condition goto block_0579; + + block_056A: + /* loopnext */ + goto block_0567; + + block_0579: + spawn class_0A11_slot_22(pid, 3, 0, wench); + suspend; + /* global_address global_id=0x3C */ + suspend; + suspend; + spawn class_0A11_slot_24(pid, wench); + suspend; + spawn class_0A0C_slot_32(pid, 15, 0x00000000); + suspend; + + block_0635: + + block_0640: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS14/slot_04_cachein.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS14/slot_04_cachein.txt new file mode 100644 index 0000000..6af3a56 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS14/slot_04_cachein.txt @@ -0,0 +1,18 @@ +function miss14_cachein() /* entry=366 class_id=0x091A slot=0x04 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x0213, *(arg_06)); + process_exclude(); + if (Intrinsic003F(arg_06) != 1) goto block_038F; + + block_0358: + /* pop_global global_id=0x1F size=0x1 */ + + block_038F: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS14/slot_07_hatch.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS14/slot_07_hatch.txt new file mode 100644 index 0000000..03ef63a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS14/slot_07_hatch.txt @@ -0,0 +1,81 @@ +function miss14_hatch() /* entry=366 class_id=0x091A slot=0x07 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x0210, *(arg_06)); + process_exclude(); + if (Intrinsic003F(arg_06) != 1) goto block_0270; + + block_00FA: + + block_0105: + /* global_address global_id=0x3C */ + if Intrinsic0033() goto block_013B; + + block_0115: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0105; + + block_013B: + spawn class_0A0C_slot_3C(pid, 0x00000000); + suspend; + class_0A0C_slot_41(); + counter = 1; + + block_016C: + if (counter <= 8) goto block_01A9; + + block_0174: + /* global_address global_id=0x3C */ + suspend; + counter = (1 + counter); + goto block_016C; + + block_01A9: + counter = 1; + + block_01B0: + if (counter <= 3) goto block_01ED; + + block_01B8: + /* global_address global_id=0x3C */ + suspend; + counter = (1 + counter); + goto block_01B0; + + block_01ED: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_030D; + + block_0270: + if (Intrinsic003F(arg_06) != 2) goto block_02C3; + + block_027F: + /* pop_global global_id=0x2D size=0x1 */ + spawn class_0A0C_slot_26(1, pid, "14d", 0x00000000); + /* free_stack_string value_u8=0x0 target=[SP+00h] */ + suspend; + goto block_030D; + + block_02C3: + if (Intrinsic003F(arg_06) != 3) goto block_030D; + + block_02D2: + spawn class_0A0C_slot_26(pid, "14e", 0x00000000); + /* free_stack_string value_u8=0x0 target=[SP+00h] */ + suspend; + goto block_030D; + + block_030D: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS15/slot_04_cachein.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS15/slot_04_cachein.txt new file mode 100644 index 0000000..f75d554 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS15/slot_04_cachein.txt @@ -0,0 +1,18 @@ +function miss15_cachein() /* entry=367 class_id=0x091B slot=0x04 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x0213, *(arg_06)); + process_exclude(); + if (Intrinsic003F(arg_06) != 1) goto block_0137; + + block_0100: + /* pop_global global_id=0x1F size=0x1 */ + + block_0137: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS15/slot_07_hatch.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS15/slot_07_hatch.txt new file mode 100644 index 0000000..c4a2b18 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS15/slot_07_hatch.txt @@ -0,0 +1,105 @@ +function miss15_hatch() /* entry=367 class_id=0x091B slot=0x07 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + counter, /* [BP-04h] type=0x69 */ + door, /* [BP-06h] type=0x24 */ + n; /* [BP-08h] type=0x24 */ + + entry: + set_info(0x0210, *(arg_06)); + process_exclude(); + if (Intrinsic003F(arg_06) != 1) goto block_0386; + + block_0179: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + /* global_address global_id=0x3C */ + suspend; + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */ + + block_024C: + if condition goto block_0276; + + block_024F: + spawn class_0A06_slot_21(pid, 1, door); + suspend; + /* loopnext */ + goto block_024C; + + block_0276: + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + /* global_address global_id=0x3C */ + suspend; + /* global_address global_id=0x3C */ + suspend; + /* global_address global_id=0x3C */ + suspend; + /* global_address global_id=0x3C */ + suspend; + /* global_address global_id=0x3C */ + suspend; + goto block_04F1; + + block_0386: + if (Intrinsic003F(arg_06) != 2) goto block_03D0; + + block_0395: + spawn class_0A0C_slot_26(pid, "15c", 0x00000000); + /* free_stack_string value_u8=0x0 target=[SP+00h] */ + suspend; + goto block_04F1; + + block_03D0: + if (Intrinsic003F(arg_06) != 3) goto block_04F1; + + block_03DF: + + block_03EA: + /* global_address global_id=0x3C */ + if Intrinsic0033() goto block_0420; + + block_03FA: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_03EA; + + block_0420: + class_0A0C_slot_41(); + /* global_address global_id=0x3C */ + suspend; + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF8 string_bytes=0x6 loop_type=0x2 */ + + block_04CD: + if condition goto block_04E1; + + block_04D0: + /* loopnext */ + goto block_04CD; + + block_04E1: + goto block_04F1; + + block_04F1: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS1EGG/slot_04_cachein.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS1EGG/slot_04_cachein.txt new file mode 100644 index 0000000..b5a63a1 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS1EGG/slot_04_cachein.txt @@ -0,0 +1,42 @@ +function miss1egg_cachein() /* entry=353 class_id=0x090D slot=0x04 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + pad2, /* [BP-04h] type=0x24 */ + counter, /* [BP-06h] type=0x69 */ + slot; /* [BP-08h] type=0x69 */ + + entry: + set_info(0x0213, *(arg_06)); + process_exclude(); + if (Intrinsic003F(arg_06) != 30) goto block_1449; + + block_1081: + if (!Item.getQHi()) goto block_121B; + + block_1090: + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + /* pop_global global_id=0x1F size=0x1 */ + /* global_address global_id=0x3C */ + suspend; + goto block_1449; + + block_121B: + /* pop_global global_id=0x1F size=0x1 */ + /* global_address global_id=0x3C */ + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + /* global_address global_id=0x3C */ + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + suspend; + + block_1449: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS1EGG/slot_07_hatch.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS1EGG/slot_07_hatch.txt new file mode 100644 index 0000000..face036 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS1EGG/slot_07_hatch.txt @@ -0,0 +1,71 @@ +function miss1egg_hatch() /* entry=353 class_id=0x090D slot=0x07 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + pad2, /* [BP-04h] type=0x24 */ + buster, /* [BP-06h] type=0x24 */ + slot; /* [BP-08h] type=0x69 */ + + entry: + set_info(0x0210, *(arg_06)); + process_exclude(); + if (Intrinsic003F(arg_06) != 1) goto block_0165; + + block_011E: + spawn class_090D_slot_21(arg_06); + /* global_address global_id=0x3C */ + spawn class_0A11_slot_23(pid); + suspend; + goto block_0265; + + block_0165: + if (Intrinsic003F(arg_06) != 2) goto block_01DD; + + block_0174: + if (!global[0x003B]) goto block_01CF; + + block_017F: + /* pop_global global_id=0x3B size=0x1 */ + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */ + + block_01A6: + if condition goto block_01CD; + + block_01A9: + class_0A1E_slot_23(4, buster); + spawn class_090D_slot_22(buster, arg_06); + /* loopnext */ + goto block_01A6; + + block_01CD: + + block_01CF: + goto block_0265; + + block_01DD: + if (Intrinsic003F(arg_06) != 3) goto block_0221; + + block_01EC: + class_0A0C_slot_41(); + spawn class_090D_slot_23(pid, arg_06); + suspend; + goto block_0265; + + block_0221: + if (Intrinsic003F(arg_06) != 7) goto block_0265; + + block_0230: + class_0A0C_slot_41(); + spawn class_090D_slot_20(pid, arg_06); + suspend; + goto block_0265; + + block_0265: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS1EGG/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS1EGG/slot_20_slot_20.txt new file mode 100644 index 0000000..66fd023 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS1EGG/slot_20_slot_20.txt @@ -0,0 +1,182 @@ +function miss1egg_slot_20() /* entry=353 class_id=0x090D slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + pac, /* [BP-02h] type=0x24 */ + eTrigger, /* [BP-04h] type=0x24 */ + item, /* [BP-06h] type=0x24 */ + counter; /* [BP-08h] type=0x69 */ + + entry: + set_info(0x00F0, *(arg_06)); + + block_02BF: + /* global_address global_id=0x3C */ + if Intrinsic0033() goto block_02F8; + + block_02CF: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_02BF; + + block_02F8: + /* global_address global_id=0x3C */ + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_033E: + if condition goto block_0377; + + block_0341: + /* global_address global_id=0x3C */ + /* loopnext */ + goto block_033E; + + block_0377: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */ + + block_0399: + if condition goto block_03AB; + + block_039C: + /* loopnext */ + goto block_0399; + + block_03AB: + /* global_address global_id=0x3C */ + spawn class_0A11_slot_22(pid, 5, 8); + suspend; + /* global_address global_id=0x3C */ + spawn class_0A11_slot_22(pid, 8, 6); + suspend; + /* global_address global_id=0x3C */ + spawn class_0A11_slot_22(pid, 2, 8); + suspend; + /* global_address global_id=0x3C */ + spawn class_0A11_slot_22(pid, 2, 12); + suspend; + /* global_address global_id=0x3C */ + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFA string_bytes=0x6 loop_type=0x4 */ + + block_04A9: + if condition goto block_04BB; + + block_04AC: + /* loopnext */ + goto block_04A9; + + block_04BB: + /* global_address global_id=0x3C */ + suspend; + /* global_address global_id=0x3C */ + suspend; + /* global_address global_id=0x3C */ + suspend; + /* global_address global_id=0x3C */ + suspend; + counter = 1; + + block_0564: + if (counter <= 5) goto block_05AC; + + block_056C: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0564; + + block_05AC: + spawn class_0A1E_slot_28(pid, 1, 1, pac); + suspend; + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */ + + block_0615: + if condition goto block_065C; + + block_0618: + spawn class_0A1E_slot_28(pid, 0, 2, item); + suspend; + /* loopnext */ + goto block_0615; + + block_065C: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */ + + block_067C: + if condition goto block_06CE; + + block_067F: + spawn class_0A1E_slot_28(pid, 1, 0, item); + suspend; + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + /* loopnext */ + goto block_067C; + + block_06CE: + spawn class_0A0C_slot_3B(0x00000000); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */ + + block_06FF: + if condition goto block_0744; + + block_0702: + spawn class_0A0C_slot_32(Intrinsic00DA(pid, 20, 10), 0x00000000); + suspend; + /* loopnext */ + goto block_06FF; + + block_0744: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */ + + block_078A: + if condition goto block_07F2; + + block_078D: + spawn class_0A1E_slot_28(pid, 0, 0, item); + suspend; + spawn class_0A0C_slot_32(Intrinsic00DA(pid, 10, 5), 0x00000000); + suspend; + /* loopnext */ + goto block_078A; + + block_07F2: + spawn class_0A0C_slot_32(pid, 0x00C8, 0x00000000); + suspend; + spawn class_0A0C_slot_26(pid, "1c", 0x00000000); + /* free_stack_string value_u8=0x0 target=[SP+00h] */ + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS1EGG/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS1EGG/slot_21_slot_21.txt new file mode 100644 index 0000000..54403d1 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS1EGG/slot_21_slot_21.txt @@ -0,0 +1,34 @@ +function miss1egg_slot_21() /* entry=353 class_id=0x090D slot=0x21 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + buster; /* [BP-02h] type=0x24 */ + + entry: + set_info(1, 0); + spawn class_0A0C_slot_32(pid, ((5 - Intrinsic0029()) * 100), 0x00000000); + suspend; + if (!global[0x003B]) goto block_0921; + + block_08DF: + /* pop_global global_id=0x3B size=0x1 */ + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0906: + if condition goto block_091F; + + block_0909: + spawn class_090D_slot_22(buster, arg_06); + /* loopnext */ + goto block_0906; + + block_091F: + + block_0921: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS1EGG/slot_22_slot_22.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS1EGG/slot_22_slot_22.txt new file mode 100644 index 0000000..e941445 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS1EGG/slot_22_slot_22.txt @@ -0,0 +1,67 @@ +function miss1egg_slot_22() /* entry=353 class_id=0x090D slot=0x22 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + buster, /* [BP+0Ah] type=0x69 */ + rubberSuit, /* [BP-02h] type=0x24 */ + counter; /* [BP-04h] type=0x69 */ + + entry: + set_info(1, buster); + class_0A0C_slot_33(buster, 0x0205); + rubberSuit = buster; + if Kernel.resetRef(rubberSuit) goto block_0980; + + block_097A: + goto block_0B61; + + block_0980: + suspend; + spawn class_0A11_slot_2A(pid, 0x00B4, rubberSuit); + suspend; + if Kernel.resetRef(rubberSuit) goto block_09DB; + + block_09D5: + goto block_0B61; + + block_09DB: + suspend; + + block_09FD: + if (((Intrinsic00CC(rubberSuit) != 0) && (Kernel.resetRef(rubberSuit) != 0)) && (counter < 4)) goto block_0A59; + + block_0A25: + suspend; + counter = (1 + counter); + goto block_09FD; + + block_0A59: + if Kernel.resetRef(rubberSuit) goto block_0A6E; + + block_0A68: + goto block_0B61; + + block_0A6E: + suspend; + if ((Intrinsic00CC(rubberSuit) != 0) && (Kernel.resetRef(rubberSuit) != 0)) goto block_0AD9; + + block_0AB2: + suspend; + + block_0AD9: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + if ((Intrinsic00CC(rubberSuit) != 0) || (Kernel.resetRef(rubberSuit) != 0)) goto block_0B32; + + block_0B21: + spawn class_0A0C_slot_3B(0x00000000); + + block_0B32: + if ((Intrinsic00CC(rubberSuit) != 0) || (Kernel.resetRef(rubberSuit) != 0)) goto block_0B61; + + block_0B54: + + block_0B61: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS1EGG/slot_23_slot_23.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS1EGG/slot_23_slot_23.txt new file mode 100644 index 0000000..bc0cedd --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS1EGG/slot_23_slot_23.txt @@ -0,0 +1,86 @@ +function miss1egg_slot_23() /* entry=353 class_id=0x090D slot=0x23 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + pathegg, /* [BP-04h] type=0x24 */ + n, /* [BP-06h] type=0x24 */ + guardBoy, /* [BP-08h] type=0x24 */ + door; /* [BP-0Ah] type=0x24 */ + + entry: + set_info(0x0001, *(arg_06)); + spawn class_090D_slot_25(arg_06); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0BE7: + if condition goto block_0BF5; + + block_0BEA: + n = item; + /* loopnext */ + goto block_0BE7; + + block_0BF5: + if (!n) goto block_0C11; + + block_0C00: + goto block_0DFB; + + block_0C11: + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0C55: + if condition goto block_0C97; + + block_0C58: + if (Item.getQHi(item) != 23) goto block_0C93; + + block_0C6D: + door = item; + spawn class_0A06_slot_20(pid, door); + suspend; + + block_0C93: + /* loopnext */ + goto block_0C55; + + block_0C97: + spawn class_0A11_slot_22(pid, 5, 4, n); + suspend; + suspend; + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + spawn class_0A0C_slot_3B(0x00000000); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF8 string_bytes=0x6 loop_type=0x2 */ + + block_0D87: + if condition goto block_0DC2; + + block_0D8A: + /* loopnext */ + goto block_0D87; + + block_0DC2: + /* pop_global global_id=0x2F size=0x1 */ + spawn class_090D_slot_24(1, pid, n, arg_06); + suspend; + + block_0DFB: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS1EGG/slot_24_slot_24.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS1EGG/slot_24_slot_24.txt new file mode 100644 index 0000000..2bf6284 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS1EGG/slot_24_slot_24.txt @@ -0,0 +1,40 @@ +function miss1egg_slot_24() /* entry=353 class_id=0x090D slot=0x24 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + n, /* [BP+0Ah] type=0x24 */ + door; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x0001, *(arg_06)); + set_info(1, 0); + spawn class_0A11_slot_22(pid, 5, 0, n); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0E9E: + if condition goto block_0ED9; + + block_0EA1: + if (Item.getQHi(door) != 21) goto block_0ED5; + + block_0EB6: + spawn class_0A06_slot_20(pid, door); + suspend; + + block_0ED5: + /* loopnext */ + goto block_0E9E; + + block_0ED9: + spawn class_0A11_slot_21(pid, 3, n); + suspend; + spawn class_0A11_slot_21(pid, 2, n); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS1EGG/slot_25_slot_25.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS1EGG/slot_25_slot_25.txt new file mode 100644 index 0000000..8d833e5 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS1EGG/slot_25_slot_25.txt @@ -0,0 +1,17 @@ +function miss1egg_slot_25() /* entry=353 class_id=0x090D slot=0x25 */ +{ + entry: + set_info(0x0001, *(arg_06)); + /* global_address global_id=0x3C */ + suspend; + /* global_address global_id=0x3C */ + suspend; + /* global_address global_id=0x3C */ + suspend; + /* global_address global_id=0x3C */ + suspend; + /* global_address global_id=0x3C */ + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_04_cachein.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_04_cachein.txt new file mode 100644 index 0000000..e8c2768 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_04_cachein.txt @@ -0,0 +1,9 @@ +function miss2_cachein() /* entry=354 class_id=0x090E slot=0x04 */ +{ + entry: + set_info(0x0213, *(arg_06)); + process_exclude(); + /* pop_global global_id=0x1F size=0x1 */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_07_hatch.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_07_hatch.txt new file mode 100644 index 0000000..8e47002 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_07_hatch.txt @@ -0,0 +1,43 @@ +function miss2_hatch() /* entry=354 class_id=0x090E slot=0x07 */ +{ + entry: + set_info(0x0210, *(arg_06)); + process_exclude(); + if (Intrinsic003F(arg_06) != 1) goto block_01B3; + + block_0175: + class_0A0C_slot_41(); + spawn class_090E_slot_28(pid, arg_06); + suspend; + /* pop_global global_id=0x21 size=0x1 */ + goto block_026F; + + block_01B3: + if (Intrinsic003F(arg_06) != 2) goto block_01F7; + + block_01C2: + class_0A0C_slot_41(); + spawn class_090E_slot_29(pid, arg_06); + suspend; + goto block_026F; + + block_01F7: + if (Intrinsic003F(arg_06) != 3) goto block_0233; + + block_0206: + spawn class_090E_slot_2A(pid, arg_06); + suspend; + goto block_026F; + + block_0233: + if (Intrinsic003F(arg_06) != 4) goto block_026F; + + block_0242: + spawn class_090E_slot_2B(pid, arg_06); + suspend; + goto block_026F; + + block_026F: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_20_slot_20.txt new file mode 100644 index 0000000..e7d59a4 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_20_slot_20.txt @@ -0,0 +1,47 @@ +function miss2_slot_20() /* entry=354 class_id=0x090E slot=0x20 */ +{ + var + up, /* [BP+06h] type=0x62 */ + counter, /* [BP-02h] type=0x69 */ + inc, /* [BP-04h] type=0x69 */ + item; /* [BP-06h] type=0x24 */ + + entry: + set_info(1, 0); + counter = 0; + if up goto block_02AE; + + block_02A7: + inc = 1; + goto block_02B5; + + block_02AE: + inc = -1; + + block_02B5: + if (counter != 2) goto block_0334; + + block_02C3: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */ + + block_02E1: + if condition goto block_02FF; + + block_02E4: + /* loopnext */ + goto block_02E1; + + block_02FF: + spawn class_0A0C_slot_32(pid, 3, 0x00000000); + suspend; + counter = (1 + counter); + goto block_02B5; + + block_0334: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_21_slot_21.txt new file mode 100644 index 0000000..854b520 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_21_slot_21.txt @@ -0,0 +1,10 @@ +function miss2_slot_21() /* entry=354 class_id=0x090E slot=0x21 */ +{ + entry: + set_info(1, 0); + spawn class_0A11_slot_22(pid, 11, 0, arg_06); + suspend; + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_22_slot_22.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_22_slot_22.txt new file mode 100644 index 0000000..d624fa1 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_22_slot_22.txt @@ -0,0 +1,37 @@ +function miss2_slot_22() /* entry=354 class_id=0x090E slot=0x22 */ +{ + entry: + set_info(1, 0); + if (Item.getFrame(arg_06) != 9) goto block_0457; + + block_03FF: + if (Item.getFrame(arg_06) != 9) goto block_0454; + + block_0414: + spawn class_0A0C_slot_32(pid, 8, 0x00000000); + suspend; + goto block_03FF; + + block_0454: + goto block_04AC; + + block_0457: + if (Item.getFrame(arg_06) != 2) goto block_04AC; + + block_046C: + spawn class_0A0C_slot_32(pid, 8, 0x00000000); + suspend; + goto block_0457; + + block_04AC: + if Item.touch(81, arg_06) goto block_04E3; + + block_04BD: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_04AC; + + block_04E3: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_23_slot_23.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_23_slot_23.txt new file mode 100644 index 0000000..a689c90 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_23_slot_23.txt @@ -0,0 +1,95 @@ +function miss2_slot_23() /* entry=354 class_id=0x090E slot=0x23 */ +{ + var + done0, /* [BP-01h] type=0x62 */ + done1, /* [BP-02h] type=0x62 */ + done2, /* [BP-03h] type=0x62 */ + activate, /* [BP-04h] type=0x62 */ + item; /* [BP-06h] type=0x24 */ + + entry: + set_info(1, 0); + done0 = 0; + done1 = 0; + done2 = 0; + + block_051D: + if (((done0 != 0) || (done1 != 0)) || (done2 != 0)) goto block_066A; + + block_0537: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */ + + block_0555: + if condition goto block_0665; + + block_0558: + activate = 0; + if (!done0) goto block_058E; + + block_0568: + if (Item.getQHi(item) != 0) goto block_058B; + + block_057D: + activate = 1; + done0 = 1; + + block_058B: + goto block_05EC; + + block_058E: + if (!done1) goto block_05BD; + + block_0597: + if (Item.getQHi(item) != 1) goto block_05BA; + + block_05AC: + activate = 1; + done1 = 1; + + block_05BA: + goto block_05EC; + + block_05BD: + if (!done2) goto block_05EC; + + block_05C6: + if (Item.getQHi(item) != 2) goto block_05E9; + + block_05DB: + activate = 1; + done2 = 1; + + block_05E9: + goto block_05EC; + + block_05EC: + if activate goto block_0661; + + block_05F4: + if (!done2) goto block_063B; + + block_05FD: + spawn class_090E_slot_22(item, 0x00000000); + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + goto block_0661; + + block_063B: + spawn class_090E_slot_22(pid, item, 0x00000000); + suspend; + + block_0661: + /* loopnext */ + goto block_0555; + + block_0665: + goto block_051D; + + block_066A: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_24_slot_24.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_24_slot_24.txt new file mode 100644 index 0000000..9dba748 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_24_slot_24.txt @@ -0,0 +1,19 @@ +function miss2_slot_24() /* entry=354 class_id=0x090E slot=0x24 */ +{ + entry: + set_info(0x0202, 0); + + block_06BB: + if arg_06 goto block_0704; + + block_06C3: + /* global_address global_id=0x3C */ + arg_06 = (arg_06 - 1); + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_06BB; + + block_0704: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_25_slot_25.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_25_slot_25.txt new file mode 100644 index 0000000..4bdffec --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_25_slot_25.txt @@ -0,0 +1,97 @@ +function miss2_slot_25() /* entry=354 class_id=0x090E slot=0x25 */ +{ + var + up, /* [BP+06h] type=0x62 */ + item, /* [BP-02h] type=0x24 */ + x, /* [BP-04h] type=0x69 */ + y, /* [BP-06h] type=0x69 */ + z, /* [BP-07h] type=0x62 */ + counter, /* [BP-09h] type=0x69 */ + inc, /* [BP-0Bh] type=0x69 */ + itemNum; /* [BP-0Dh] type=0x69 */ + + entry: + set_info(1, 0); + counter = 32; + itemNum = 0; + if up goto block_0749; + + block_0742: + inc = 2; + goto block_0750; + + block_0749: + inc = -2; + + block_0750: + /* global_address global_id=0x3C */ + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + /* global_address global_id=0x3C */ + + block_0792: + if counter goto block_08FF; + + block_079A: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x43 */ + /* loop current_var=0xFE string_bytes=0x8 loop_type=0x2 */ + + block_07BC: + if condition goto block_08FA; + + block_07BF: + x = Intrinsic0013(item); + y = Item.legal_create(item); + z = Item.getZ(item); + itemNum = (1 + itemNum); + if ((counter <= 16) && (Intrinsic0016(item) != 0x04C8)) goto block_08B1; + + block_082E: + if (up != 1) goto block_088B; + + block_083F: + if (Item.getFrame(item) != 12) goto block_0888; + + block_0854: + if (!Item.getFrame(item)) goto block_0871; + + block_0864: + goto block_0888; + + block_0871: + + block_0888: + goto block_08B1; + + block_088B: + if (Item.getFrame(item) != 8) goto block_08B1; + + block_089D: + + block_08B1: + if (itemNum != 5) goto block_08F6; + + block_08BF: + itemNum = 0; + counter = (counter - 2); + spawn class_090E_slot_24(pid, 4, 0x00000000); + suspend; + + block_08F6: + /* loopnext */ + goto block_07BC; + + block_08FA: + goto block_0792; + + block_08FF: + /* global_address global_id=0x3C */ + spawn class_0A0C_slot_32(pid, 15, 0x00000000); + suspend; + /* global_address global_id=0x3C */ + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_26_slot_26.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_26_slot_26.txt new file mode 100644 index 0000000..ec12502 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_26_slot_26.txt @@ -0,0 +1,82 @@ +function miss2_slot_26() /* entry=354 class_id=0x090E slot=0x26 */ +{ + var + position, /* [BP+06h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + x, /* [BP-04h] type=0x69 */ + y, /* [BP-06h] type=0x69 */ + z, /* [BP-07h] type=0x62 */ + counter, /* [BP-09h] type=0x69 */ + itemNum, /* [BP-0Bh] type=0x69 */ + turn; /* [BP-0Dh] type=0x69 */ + + entry: + set_info(1, 0); + if (!position) goto block_09D5; + + block_09CE: + counter = 96; + goto block_09DD; + + block_09D5: + counter = 0x0140; + + block_09DD: + itemNum = 0; + turn = 1; + /* global_address global_id=0x3C */ + + block_09F9: + if counter goto block_0B29; + + block_0A01: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0A21: + if condition goto block_0B24; + + block_0A24: + x = Intrinsic0013(item); + y = Item.legal_create(item); + z = Item.getZ(item); + itemNum = (1 + itemNum); + if ((Intrinsic0016(item) != 0x04C8) && (position != 1)) goto block_0ADB; + + block_0A93: + if (turn != 5) goto block_0AD1; + + block_0AA1: + if (Item.getFrame(item) != 12) goto block_0AC7; + + block_0AB3: + + block_0AC7: + turn = 0; + goto block_0ADB; + + block_0AD1: + turn = (1 + turn); + + block_0ADB: + if (itemNum != 2) goto block_0B20; + + block_0AE9: + itemNum = 0; + counter = (counter - 4); + spawn class_090E_slot_24(pid, 1, 0x00000000); + suspend; + + block_0B20: + /* loopnext */ + goto block_0A21; + + block_0B24: + goto block_09F9; + + block_0B29: + /* global_address global_id=0x3C */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_27_slot_27.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_27_slot_27.txt new file mode 100644 index 0000000..cd0bdfa --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_27_slot_27.txt @@ -0,0 +1,21 @@ +function miss2_slot_27() /* entry=354 class_id=0x090E slot=0x27 */ +{ + var + gun, /* [BP+06h] type=0x24 */ + old, /* [BP-02h] type=0x69 */ + new; /* [BP-04h] type=0x69 */ + + entry: + set_info(1, 0); + old = Item.getFrame(gun); + new = ((Item.getFrame(gun) * 2) + 20); + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + spawn class_0A1A_slot_4B(old, gun); + spawn class_0A0C_slot_32(pid, 3, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 3, 0x00000000); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_28_slot_28.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_28_slot_28.txt new file mode 100644 index 0000000..6c07e8c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_28_slot_28.txt @@ -0,0 +1,459 @@ +function miss2_slot_28() /* entry=354 class_id=0x090E slot=0x28 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + item, /* [BP-04h] type=0x24 */ + body, /* [BP-06h] type=0x24 */ + gun, /* [BP-08h] type=0x24 */ + door, /* [BP-0Ah] type=0x24 */ + door1, /* [BP-0Ch] type=0x24 */ + door2, /* [BP-0Eh] type=0x24 */ + door3, /* [BP-10h] type=0x24 */ + egg, /* [BP-12h] type=0x24 */ + hoffman, /* [BP-14h] type=0x24 */ + x, /* [BP-16h] type=0x69 */ + y, /* [BP-18h] type=0x69 */ + pathEgg; /* [BP-1Ah] type=0x24 */ + + entry: + set_info(0x0001, *(arg_06)); + counter = 0; + egg = *(arg_06); + set_info(1, 0); + + block_0CD5: + /* global_address global_id=0x3C */ + if Intrinsic0033() goto block_0D0B; + + block_0CE5: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0CD5; + + block_0D0B: + /* global_address global_id=0x3C */ + if Intrinsic0035() goto block_0D4B; + + block_0D1B: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + + block_0D4B: + hoffman = 0; + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFC string_bytes=0x1 loop_type=0x2 */ + + block_0D68: + if condition goto block_0E2A; + + block_0D6B: + if ((Item.getZ(item) > 96) && (Item.getZ(item) < 0x0096)) goto block_0E26; + + block_0D8E: + x = Intrinsic0013(item); + y = Item.legal_create(item); + if ((((x > 0x522F) && (x < 0x53BF)) && (y < 0x448E)) && (y > 0x407F)) goto block_0E26; + + block_0DCE: + if (((Intrinsic0016(item) != 17) && (Intrinsic0016(item) != 0x04FE)) && (Intrinsic0016(item) != 0x0135)) goto block_0E26; + + block_0E08: + + block_0E26: + /* loopnext */ + goto block_0D68; + + block_0E2A: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_0E4A: + if condition goto block_0E98; + + block_0E4D: + goto block_0E98; + + block_0E94: + /* loopnext */ + goto block_0E4A; + + block_0E98: + if hoffman goto block_1CED; + + block_0EA2: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_0EBF: + if condition goto block_0F73; + + block_0EC2: + class_0A0C_slot_29(item, global[0x003C]); + if ((retval > 3) && (counter != 10)) goto block_0F49; + + block_0EE5: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + spawn class_0A11_slot_22(Item.getDirToItem(Intrinsic0013(pid, 1, Item.legal_create((Item.legal_create(item) - 32), (Intrinsic0013(item) - 16))))); + suspend; + counter = (1 + counter); + goto block_0EC2; + + block_0F49: + door = item; + spawn class_0A06_slot_20(pid, door); + suspend; + /* loopnext */ + goto block_0EBF; + + block_0F73: + /* global_address global_id=0x3C */ + spawn class_0A11_slot_22(pid, 3, 4); + suspend; + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + spawn class_0A11_slot_22(Item.getDirToItem(Intrinsic0013(pid, 3, Item.legal_create(Item.legal_create(hoffman), Intrinsic0013(hoffman))))); + suspend; + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_103A: + if condition goto block_104E; + + block_103D: + pathEgg = item; + goto block_104E; + + block_104A: + /* loopnext */ + goto block_103A; + + block_104E: + + block_1050: + class_0A0C_slot_29(pathEgg, global[0x003C]); + if ((retval > 2) && (counter != 20)) goto block_10D1; + + block_1073: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + spawn class_0A11_slot_22(Item.getDirToItem(Intrinsic0013(pid, 1, Item.legal_create(Item.legal_create(pathEgg), Intrinsic0013(pathEgg))))); + suspend; + counter = (1 + counter); + goto block_1050; + + block_10D1: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + suspend; + suspend; + suspend; + suspend; + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_123C: + if condition goto block_12A1; + + block_123F: + if (Item.getQHi(item) != 13) goto block_129D; + + block_1254: + suspend; + suspend; + + block_129D: + /* loopnext */ + goto block_123C; + + block_12A1: + suspend; + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_1314: + if condition goto block_1362; + + block_1317: + if (Intrinsic007E(item) != 1) goto block_135E; + + block_132C: + /* global_address global_id=0x3C */ + + block_135E: + /* loopnext */ + goto block_1314; + + block_1362: + spawn class_0A0C_slot_32(pid, 45, 0x00000000); + suspend; + spawn class_090E_slot_20(pid, 1, 0x00000000); + suspend; + spawn class_090E_slot_23(pid, 0x00000000); + suspend; + gun = 0; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_13F7: + if condition goto block_1405; + + block_13FA: + gun = item; + /* loopnext */ + goto block_13F7; + + block_1405: + if gun goto block_1432; + + block_140F: + spawn class_090E_slot_25(pid, 1, 0x00000000); + suspend; + + block_1432: + spawn class_0A0C_slot_32(pid, 15, 0x00000000); + suspend; + door = 0; + door1 = 0; + door2 = 0; + door3 = 0; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_1490: + if condition goto block_14F9; + + block_1493: + if (!Item.getQHi(item)) goto block_14AA; + + block_14A3: + door = item; + goto block_14F5; + + block_14AA: + if (Item.getQHi(item) != 1) goto block_14C3; + + block_14BC: + door1 = item; + goto block_14F5; + + block_14C3: + if (Item.getQHi(item) != 2) goto block_14DC; + + block_14D5: + door2 = item; + goto block_14F5; + + block_14DC: + if (Item.getQHi(item) != 3) goto block_14F5; + + block_14EE: + door3 = item; + goto block_14F5; + + block_14F5: + /* loopnext */ + goto block_1490; + + block_14F9: + if (((door && door1) && door2) && door3) goto block_1A3E; + + block_1515: + spawn class_090E_slot_26(pid, 0, 0x00000000); + suspend; + spawn class_0A06_slot_20(pid, door); + suspend; + spawn class_090E_slot_27(pid, gun, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 3, 0x00000000); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_15C2: + if condition goto block_1645; + + block_15C5: + spawn class_0A0C_slot_32(pid, 15, 0x00000000); + suspend; + /* loopnext */ + goto block_15C2; + + block_1645: + + block_1647: + if (Item.getFrame(gun) != 4) goto block_169C; + + block_165C: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + goto block_1647; + + block_169C: + spawn class_0A06_slot_20(pid, door1); + suspend; + spawn class_090E_slot_27(pid, gun, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 3, 0x00000000); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_1723: + if condition goto block_17A9; + + block_1726: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + /* loopnext */ + goto block_1723; + + block_17A9: + spawn class_090E_slot_26(pid, 1, 0x00000000); + suspend; + spawn class_0A06_slot_20(pid, door2); + suspend; + spawn class_090E_slot_27(pid, gun, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 6, 0x00000000); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_1858: + if condition goto block_18DB; + + block_185B: + spawn class_0A0C_slot_32(pid, 15, 0x00000000); + suspend; + /* loopnext */ + goto block_1858; + + block_18DB: + + block_18DD: + if (Item.getFrame(gun) != 4) goto block_1932; + + block_18F2: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + goto block_18DD; + + block_1932: + spawn class_0A06_slot_20(pid, door3); + suspend; + spawn class_090E_slot_27(pid, gun, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 6, 0x00000000); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_19B9: + if condition goto block_1A3C; + + block_19BC: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + /* loopnext */ + goto block_19B9; + + block_1A3C: + + block_1A3E: + spawn class_090E_slot_25(pid, 0, 0x00000000); + suspend; + spawn class_090E_slot_23(pid, 0x00000000); + suspend; + spawn class_090E_slot_20(pid, 0, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + /* global_address global_id=0x3C */ + suspend; + suspend; + suspend; + suspend; + suspend; + suspend; + suspend; + suspend; + suspend; + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_1C99: + if condition goto block_1CD3; + + block_1C9C: + if (Item.getQHi(item) != 13) goto block_1CCF; + + block_1CB1: + suspend; + + block_1CCF: + /* loopnext */ + goto block_1C99; + + block_1CD3: + + block_1CED: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_29_slot_29.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_29_slot_29.txt new file mode 100644 index 0000000..9329a95 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_29_slot_29.txt @@ -0,0 +1,111 @@ +function miss2_slot_29() /* entry=354 class_id=0x090E slot=0x29 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + item, /* [BP-04h] type=0x24 */ + egg, /* [BP-06h] type=0x24 */ + vargas; /* [BP-08h] type=0x24 */ + + entry: + set_info(0x0001, *(arg_06)); + counter = 0; + egg = *(arg_06); + set_info(1, 0); + + block_1DBD: + /* global_address global_id=0x3C */ + if Intrinsic0033() goto block_1DF3; + + block_1DCD: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_1DBD; + + block_1DF3: + /* global_address global_id=0x3C */ + if Intrinsic0035() goto block_1E33; + + block_1E03: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + + block_1E33: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_1E51: + if condition goto block_1E9F; + + block_1E54: + goto block_1E9F; + + block_1E9B: + /* loopnext */ + goto block_1E51; + + block_1E9F: + if vargas goto block_217F; + + block_1EA9: + /* global_address global_id=0x3C */ + spawn class_0A11_slot_22(pid, 3, 0); + suspend; + /* global_address global_id=0x3C */ + spawn class_0A11_slot_22(pid, 3, 14); + suspend; + suspend; + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 100, 0x00000000); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_1FC8: + if condition goto block_1FDA; + + block_1FCB: + /* loopnext */ + goto block_1FC8; + + block_1FDA: + spawn class_0A0C_slot_32(pid, 100, 0x00000000); + suspend; + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + spawn class_090E_slot_21(vargas, 0x00000000); + /* global_address global_id=0x3C */ + spawn class_0A11_slot_22(pid, 2, 2); + suspend; + /* global_address global_id=0x3C */ + spawn class_0A11_slot_22(pid, 5, 0); + suspend; + /* global_address global_id=0x3C */ + spawn class_0A11_slot_22(pid, 1, 14); + suspend; + /* global_address global_id=0x3C */ + spawn class_0A11_slot_22(pid, 7, 12); + suspend; + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + spawn class_0A0C_slot_32(pid, 100, 0x00000000); + suspend; + spawn class_0A11_slot_24(pid, vargas); + suspend; + /* global_address global_id=0x3C */ + + block_217F: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_2A_slot_2A.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_2A_slot_2A.txt new file mode 100644 index 0000000..a37776d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_2A_slot_2A.txt @@ -0,0 +1,29 @@ +function miss2_slot_2A() /* entry=354 class_id=0x090E slot=0x2A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x0001, *(arg_06)); + /* pop_global global_id=0x30 size=0x1 */ + spawn class_0A0C_slot_26(1, pid, "2g", 0x00000000); + /* free_stack_string value_u8=0x0 target=[SP+00h] */ + suspend; + spawn class_0A0C_slot_32(pid, 100, 0x00000000); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_2256: + if condition goto block_2268; + + block_2259: + /* loopnext */ + goto block_2256; + + block_2268: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_2B_slot_2B.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_2B_slot_2B.txt new file mode 100644 index 0000000..37ad342 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS2/slot_2B_slot_2B.txt @@ -0,0 +1,10 @@ +function miss2_slot_2B() /* entry=354 class_id=0x090E slot=0x2B */ +{ + entry: + set_info(0x0001, *(arg_06)); + spawn class_0A0C_slot_26(pid, "02i", 0x00000000); + /* free_stack_string value_u8=0x0 target=[SP+00h] */ + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS3/slot_04_cachein.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS3/slot_04_cachein.txt new file mode 100644 index 0000000..a07e70f --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS3/slot_04_cachein.txt @@ -0,0 +1,9 @@ +function miss3_cachein() /* entry=355 class_id=0x090F slot=0x04 */ +{ + entry: + set_info(0x0213, *(arg_06)); + process_exclude(); + /* pop_global global_id=0x1F size=0x1 */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS3/slot_07_hatch.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS3/slot_07_hatch.txt new file mode 100644 index 0000000..f388a95 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS3/slot_07_hatch.txt @@ -0,0 +1,46 @@ +function miss3_hatch() /* entry=355 class_id=0x090F slot=0x07 */ +{ + entry: + set_info(0x0210, *(arg_06)); + process_exclude(); + if (Intrinsic003F(arg_06) != 1) goto block_0170; + + block_012D: + /* pop_global global_id=0x31 size=0x1 */ + spawn class_0A0C_slot_26(1, pid, "3g", 0x00000000); + /* free_stack_string value_u8=0x0 target=[SP+00h] */ + suspend; + goto block_020C; + + block_0170: + if (Intrinsic003F(arg_06) != 2) goto block_01B9; + + block_017F: + if (!global[0x0022]) goto block_01B6; + + block_018A: + spawn class_0A0C_slot_26(pid, "3i", 0x00000000); + /* free_stack_string value_u8=0x0 target=[SP+00h] */ + suspend; + + block_01B6: + goto block_020C; + + block_01B9: + if (Intrinsic003F(arg_06) != 3) goto block_020C; + + block_01C8: + if global[0x0022] goto block_0209; + + block_01D2: + spawn class_0A0C_slot_26(pid, "3h", 0x00000000); + /* free_stack_string value_u8=0x0 target=[SP+00h] */ + suspend; + + block_0209: + goto block_020C; + + block_020C: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS4/slot_04_cachein.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS4/slot_04_cachein.txt new file mode 100644 index 0000000..2b933f8 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS4/slot_04_cachein.txt @@ -0,0 +1,15 @@ +function miss4_cachein() /* entry=356 class_id=0x0910 slot=0x04 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x0213, *(arg_06)); + process_exclude(); + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + /* pop_global global_id=0x1F size=0x1 */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS4/slot_07_hatch.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS4/slot_07_hatch.txt new file mode 100644 index 0000000..954a5f4 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS4/slot_07_hatch.txt @@ -0,0 +1,16 @@ +function miss4_hatch() /* entry=356 class_id=0x0910 slot=0x07 */ +{ + entry: + set_info(0x0210, *(arg_06)); + process_exclude(); + if (Intrinsic003F(arg_06) != 1) goto block_012D; + + block_0100: + spawn class_0910_slot_20(pid, arg_06); + suspend; + goto block_012D; + + block_012D: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS4/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS4/slot_20_slot_20.txt new file mode 100644 index 0000000..2e8f92e --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS4/slot_20_slot_20.txt @@ -0,0 +1,30 @@ +function miss4_slot_20() /* entry=356 class_id=0x0910 slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x0001, *(arg_06)); + spawn class_0A0C_slot_26(pid, "4f", 0x00000000); + /* free_stack_string value_u8=0x0 target=[SP+00h] */ + suspend; + spawn class_0A0C_slot_3B(0x00000000); + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + /* pop_global global_id=0x32 size=0x1 */ + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_01E2: + if condition goto block_01F4; + + block_01E5: + /* loopnext */ + goto block_01E2; + + block_01F4: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS5/slot_04_cachein.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS5/slot_04_cachein.txt new file mode 100644 index 0000000..a17df78 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS5/slot_04_cachein.txt @@ -0,0 +1,9 @@ +function miss5_cachein() /* entry=357 class_id=0x0911 slot=0x04 */ +{ + entry: + set_info(0x0213, *(arg_06)); + process_exclude(); + /* pop_global global_id=0x1F size=0x1 */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS5/slot_07_hatch.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS5/slot_07_hatch.txt new file mode 100644 index 0000000..5d74a7a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS5/slot_07_hatch.txt @@ -0,0 +1,18 @@ +function miss5_hatch() /* entry=357 class_id=0x0911 slot=0x07 */ +{ + entry: + set_info(0x0210, *(arg_06)); + process_exclude(); + if (Intrinsic003F(arg_06) != 1) goto block_0166; + + block_0133: + /* pop_global global_id=0x33 size=0x1 */ + class_0A0C_slot_41(1); + spawn class_0911_slot_20(pid, arg_06); + suspend; + goto block_0166; + + block_0166: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS5/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS5/slot_20_slot_20.txt new file mode 100644 index 0000000..dafd28f --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS5/slot_20_slot_20.txt @@ -0,0 +1,258 @@ +function miss5_slot_20() /* entry=357 class_id=0x0911 slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + item, /* [BP-04h] type=0x24 */ + door, /* [BP-06h] type=0x24 */ + egg, /* [BP-08h] type=0x24 */ + willmar, /* [BP-0Ah] type=0x24 */ + post1, /* [BP-0Ch] type=0x24 */ + post2, /* [BP-0Eh] type=0x24 */ + floor, /* [BP-10h] type=0x24 */ + dir; /* [BP-12h] type=0x69 */ + + entry: + set_info(0x0001, *(arg_06)); + egg = *(arg_06); + set_info(1, 0); + + block_01AB: + /* global_address global_id=0x3C */ + if Intrinsic0033() goto block_01E1; + + block_01BB: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_01AB; + + block_01E1: + /* global_address global_id=0x3C */ + suspend; + door = 0; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_022E: + if condition goto block_024E; + + block_0231: + if (Item.getQHi(item) != 1) goto block_024A; + + block_0243: + door = item; + + block_024A: + /* loopnext */ + goto block_022E; + + block_024E: + if door goto block_09EE; + + block_0258: + /* global_address global_id=0x3C */ + if (Intrinsic00D7() != 3) goto block_027D; + + block_0276: + counter = 2; + goto block_0284; + + block_027D: + counter = 3; + + block_0284: + /* global_address global_id=0x3C */ + spawn class_0A11_slot_22(counter, 0); + /* global_address global_id=0x3C */ + suspend; + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_0332: + if condition goto block_0340; + + block_0335: + willmar = item; + /* loopnext */ + goto block_0332; + + block_0340: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_0360: + if condition goto block_037C; + + block_0363: + dir = Item.callEvent0A(item); + floor = item; + /* loopnext */ + goto block_0360; + + block_037C: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_039C: + if condition goto block_03AA; + + block_039F: + post1 = item; + /* loopnext */ + goto block_039C; + + block_03AA: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_03CA: + if condition goto block_03D8; + + block_03CD: + post2 = item; + /* loopnext */ + goto block_03CA; + + block_03D8: + if (post1 && post2) goto block_057B; + + block_03EB: + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + /* global_address global_id=0x3C */ + if dir goto block_04BD; + + block_0436: + counter = 1; + + block_0457: + if (counter <= 4) goto block_04BA; + + block_045F: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0457; + + block_04BA: + goto block_052D; + + block_04BD: + counter = 0; + + block_04C4: + if (counter <= 3) goto block_052D; + + block_04CC: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + counter = (1 + counter); + goto block_04C4; + + block_052D: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + + block_057B: + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_05BF: + if condition goto block_05F0; + + block_05C2: + door = item; + spawn class_0A06_slot_21(pid, 1, door); + suspend; + /* loopnext */ + goto block_05BF; + + block_05F0: + spawn class_0A11_slot_21(pid, 4, willmar); + suspend; + suspend; + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + suspend; + spawn class_0A11_slot_21(pid, 2, willmar); + suspend; + suspend; + spawn class_0A06_slot_21(pid, 1, door); + suspend; + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + spawn class_0A11_slot_21(pid, 2, willmar); + suspend; + suspend; + spawn class_0A06_slot_21(pid, 2, door); + suspend; + if (post1 && post2) goto block_09D8; + + block_0848: + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + if (!dir) goto block_091A; + + block_0893: + counter = 1; + + block_08B4: + if (counter <= 4) goto block_0917; + + block_08BC: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + counter = (1 + counter); + goto block_08B4; + + block_0917: + goto block_098A; + + block_091A: + counter = 0; + + block_0921: + if (counter <= 3) goto block_098A; + + block_0929: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0921; + + block_098A: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + + block_09D8: + + block_09EE: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS6/slot_04_cachein.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS6/slot_04_cachein.txt new file mode 100644 index 0000000..628f3b4 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS6/slot_04_cachein.txt @@ -0,0 +1,9 @@ +function miss6_cachein() /* entry=358 class_id=0x0912 slot=0x04 */ +{ + entry: + set_info(0x0213, *(arg_06)); + process_exclude(); + /* pop_global global_id=0x1F size=0x1 */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS6/slot_07_hatch.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS6/slot_07_hatch.txt new file mode 100644 index 0000000..afde41a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS6/slot_07_hatch.txt @@ -0,0 +1,26 @@ +function miss6_hatch() /* entry=358 class_id=0x0912 slot=0x07 */ +{ + entry: + set_info(0x0210, *(arg_06)); + process_exclude(); + if (Intrinsic003F(arg_06) != 1) goto block_0163; + + block_0139: + class_0A0C_slot_41(); + spawn class_0912_slot_20(pid, arg_06); + suspend; + goto block_019D; + + block_0163: + if (Intrinsic003F(arg_06) != 2) goto block_019D; + + block_0172: + /* pop_global global_id=0x34 size=0x1 */ + spawn class_0912_slot_21(1, pid, arg_06); + suspend; + goto block_019D; + + block_019D: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS6/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS6/slot_20_slot_20.txt new file mode 100644 index 0000000..582351a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS6/slot_20_slot_20.txt @@ -0,0 +1,156 @@ +function miss6_slot_20() /* entry=358 class_id=0x0912 slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + snell, /* [BP-02h] type=0x24 */ + n, /* [BP-04h] type=0x24 */ + item, /* [BP-06h] type=0x24 */ + door, /* [BP-08h] type=0x24 */ + doorX; /* [BP-0Ah] type=0x69 */ + + entry: + set_info(0x0001, *(arg_06)); + + block_01D1: + /* global_address global_id=0x3C */ + if Intrinsic0033() goto block_0207; + + block_01E1: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_01D1; + + block_0207: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_0225: + if condition goto block_026D; + + block_0228: + /* loopnext */ + goto block_0225; + + block_026D: + if snell goto block_0720; + + block_0277: + suspend; + door = 0; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */ + + block_02C3: + if condition goto block_0310; + + block_02C6: + if (Intrinsic00D9(item) != 19) goto block_030C; + + block_02D8: + door = item; + spawn class_0A06_slot_20(pid, door); + suspend; + doorX = Intrinsic0013(door); + + block_030C: + /* loopnext */ + goto block_02C3; + + block_0310: + if (!door) goto block_0376; + + block_031B: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */ + + block_0339: + if condition goto block_0374; + + block_033C: + door = item; + spawn class_0A06_slot_20(pid, door); + suspend; + doorX = Intrinsic0013(door); + /* loopnext */ + goto block_0339; + + block_0374: + + block_0376: + /* global_address global_id=0x3C */ + if (Intrinsic0013() > doorX) goto block_03B8; + + block_038F: + /* global_address global_id=0x3C */ + spawn class_0A11_slot_22(pid, 1, 12); + suspend; + goto block_03FA; + + block_03B8: + /* global_address global_id=0x3C */ + if (Intrinsic0013() < (doorX - 64)) goto block_03FA; + + block_03D1: + /* global_address global_id=0x3C */ + spawn class_0A11_slot_22(pid, 1, 4); + suspend; + goto block_03FA; + + block_03FA: + /* global_address global_id=0x3C */ + spawn class_0A11_slot_22(pid, 4, 0); + suspend; + /* global_address global_id=0x3C */ + spawn class_0A11_slot_22(pid, 2, 14); + suspend; + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + spawn class_0A11_slot_22(pid, 2, 4, snell); + suspend; + spawn class_0A11_slot_22(pid, 1, 6, snell); + suspend; + suspend; + suspend; + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + /* global_address global_id=0x3C */ + suspend; + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + spawn class_0A11_slot_22(pid, 1, 4, snell); + suspend; + spawn class_0A11_slot_22(pid, 1, 2, snell); + suspend; + spawn class_0A11_slot_22(pid, 1, 4, snell); + suspend; + suspend; + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + spawn class_0A11_slot_24(pid, snell); + suspend; + /* global_address global_id=0x3C */ + suspend; + /* pop_global global_id=0x25 size=0x1 */ + + block_0720: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS6/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS6/slot_21_slot_21.txt new file mode 100644 index 0000000..788fb21 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS6/slot_21_slot_21.txt @@ -0,0 +1,10 @@ +function miss6_slot_21() /* entry=358 class_id=0x0912 slot=0x21 */ +{ + entry: + set_info(0x0001, *(arg_06)); + spawn class_0A0C_slot_26(pid, "6f", 0x00000000); + /* free_stack_string value_u8=0x0 target=[SP+00h] */ + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS7/slot_04_cachein.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS7/slot_04_cachein.txt new file mode 100644 index 0000000..2cae0b8 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS7/slot_04_cachein.txt @@ -0,0 +1,13 @@ +function miss7_cachein() /* entry=359 class_id=0x0913 slot=0x04 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x0213, *(arg_06)); + process_exclude(); + /* pop_global global_id=0x1F size=0x1 */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS8/slot_04_cachein.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS8/slot_04_cachein.txt new file mode 100644 index 0000000..49e6f39 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS8/slot_04_cachein.txt @@ -0,0 +1,9 @@ +function miss8_cachein() /* entry=360 class_id=0x0914 slot=0x04 */ +{ + entry: + set_info(0x0213, *(arg_06)); + process_exclude(); + /* pop_global global_id=0x1F size=0x1 */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS8/slot_07_hatch.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS8/slot_07_hatch.txt new file mode 100644 index 0000000..7aba293 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS8/slot_07_hatch.txt @@ -0,0 +1,17 @@ +function miss8_hatch() /* entry=360 class_id=0x0914 slot=0x07 */ +{ + entry: + set_info(0x0210, *(arg_06)); + process_exclude(); + if (Intrinsic003F(arg_06) != 1) goto block_015D; + + block_0133: + class_0A0C_slot_41(); + spawn class_0914_slot_20(pid, arg_06); + suspend; + goto block_015D; + + block_015D: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS8/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS8/slot_20_slot_20.txt new file mode 100644 index 0000000..79bff3d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS8/slot_20_slot_20.txt @@ -0,0 +1,176 @@ +function miss8_slot_20() /* entry=360 class_id=0x0914 slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + willmar, /* [BP-02h] type=0x24 */ + counter, /* [BP-04h] type=0x69 */ + item, /* [BP-06h] type=0x24 */ + cardReader, /* [BP-08h] type=0x24 */ + telebeam, /* [BP-0Ah] type=0x24 */ + telepad, /* [BP-0Ch] type=0x24 */ + egg, /* [BP-0Eh] type=0x24 */ + y; /* [BP-10h] type=0x69 */ + + entry: + set_info(0x0001, *(arg_06)); + /* global_address global_id=0x3C */ + y = Item.legal_create(); + + block_01A0: + /* global_address global_id=0x3C */ + if Intrinsic0033() goto block_01D6; + + block_01B0: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_01A0; + + block_01D6: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */ + + block_01F4: + if condition goto block_023C; + + block_01F7: + /* loopnext */ + goto block_01F4; + + block_023C: + if willmar goto block_07DD; + + block_0246: + counter = 0; + /* pop_global global_id=0x27 size=0x1 */ + /* global_address global_id=0x3C */ + spawn class_0A11_slot_22(1, 2, 0); + spawn class_0A11_slot_22(pid, 2, 12, willmar); + suspend; + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + suspend; + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + suspend; + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + spawn class_0A11_slot_22(pid, 4, 12, willmar); + suspend; + suspend; + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + suspend; + /* global_address global_id=0x3C */ + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + spawn class_0A11_slot_22(pid, 3, 12, willmar); + suspend; + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + spawn class_0A11_slot_22(pid, 2, 0, willmar); + suspend; + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + suspend; + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + counter = 0; + + block_05FD: + if (counter <= 37) goto block_0645; + + block_0605: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_05FD; + + block_0645: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = 0; + + block_06A8: + if (counter <= 37) goto block_06F3; + + block_06B0: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_06A8; + + block_06F3: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = 0; + + block_0795: + if (counter <= 40) goto block_07DD; + + block_079D: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0795; + + block_07DD: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */ + + block_07FC: + if condition goto block_0830; + + block_07FF: + if (Intrinsic00D9(item) != 0x00FF) goto block_082C; + + block_0812: + + block_082C: + /* loopnext */ + goto block_07FC; + + block_0830: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */ + + block_0889: + if condition goto block_08D2; + + block_088C: + if ((Item.getFrame(item) != 0) && (Intrinsic00D9(item) != 20)) goto block_08CE; + + block_08AE: + suspend; + + block_08CE: + /* loopnext */ + goto block_0889; + + block_08D2: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS9/slot_04_cachein.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS9/slot_04_cachein.txt new file mode 100644 index 0000000..1be0f28 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS9/slot_04_cachein.txt @@ -0,0 +1,9 @@ +function miss9_cachein() /* entry=361 class_id=0x0915 slot=0x04 */ +{ + entry: + set_info(0x0213, *(arg_06)); + process_exclude(); + /* pop_global global_id=0x1F size=0x1 */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS9/slot_07_hatch.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS9/slot_07_hatch.txt new file mode 100644 index 0000000..bff8733 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS9/slot_07_hatch.txt @@ -0,0 +1,17 @@ +function miss9_hatch() /* entry=361 class_id=0x0915 slot=0x07 */ +{ + entry: + set_info(0x0210, *(arg_06)); + process_exclude(); + if (Intrinsic003F(arg_06) != 1) goto block_015D; + + block_0133: + class_0A0C_slot_41(); + spawn class_0915_slot_20(pid, arg_06); + suspend; + goto block_015D; + + block_015D: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MISS9/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/MISS9/slot_20_slot_20.txt new file mode 100644 index 0000000..ede3de8 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MISS9/slot_20_slot_20.txt @@ -0,0 +1,161 @@ +function miss9_slot_20() /* entry=361 class_id=0x0915 slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + target, /* [BP-02h] type=0x24 */ + station, /* [BP-04h] type=0x24 */ + screen, /* [BP-06h] type=0x24 */ + item, /* [BP-08h] type=0x24 */ + counter; /* [BP-0Ah] type=0x69 */ + + entry: + set_info(0x0001, *(arg_06)); + /* pop_global global_id=0x28 size=0x1 */ + + block_019A: + /* global_address global_id=0x3C */ + if Intrinsic0033() goto block_01D0; + + block_01AA: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_019A; + + block_01D0: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF8 string_bytes=0x6 loop_type=0x2 */ + + block_021E: + if condition goto block_022C; + + block_0221: + station = item; + /* loopnext */ + goto block_021E; + + block_022C: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF8 string_bytes=0x6 loop_type=0x2 */ + + block_024C: + if condition goto block_026F; + + block_024F: + if (Intrinsic00D9(item) != 99) goto block_026B; + + block_0264: + screen = item; + + block_026B: + /* loopnext */ + goto block_024C; + + block_026F: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF8 string_bytes=0x6 loop_type=0x2 */ + + block_028F: + if condition goto block_029D; + + block_0292: + target = item; + /* loopnext */ + goto block_028F; + + block_029D: + if target goto block_05B3; + + block_02A7: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF8 string_bytes=0x6 loop_type=0x2 */ + + block_02C4: + if condition goto block_02E5; + + block_02C7: + if Intrinsic00D9(item) goto block_02E1; + + block_02D6: + + block_02E1: + /* loopnext */ + goto block_02C4; + + block_02E5: + + block_02E7: + class_0A0C_slot_29(*(arg_06), global[0x003C]); + if ((retval > 2) && (counter != 6)) goto block_036A; + + block_030C: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + spawn class_0A11_slot_22(Item.getDirToItem(Intrinsic0013(pid, 1, Item.legal_create(Item.legal_create(arg_06), Intrinsic0013(arg_06))))); + suspend; + counter = (1 + counter); + goto block_02E7; + + block_036A: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + spawn class_0A0C_slot_32(pid, 120, 0x00000000); + suspend; + spawn class_0A0C_slot_3D(pid, Item.legal_create(target), Intrinsic0013(target), 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 100, 0x00000000); + suspend; + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + spawn class_0A0C_slot_32(pid, 100, 0x00000000); + suspend; + spawn class_0A0C_slot_3E(pid, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 120, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 100, 0x00000000); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF8 string_bytes=0x6 loop_type=0x2 */ + + block_0550: + if condition goto block_057A; + + block_0553: + if (Intrinsic00D9(item) != 0x00FF) goto block_0576; + + block_0569: + + block_0576: + /* loopnext */ + goto block_0550; + + block_057A: + spawn class_0A0C_slot_26(pid, "9f", 0x00000000); + /* free_stack_string value_u8=0x0 target=[SP+00h] */ + suspend; + + block_05B3: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MONITEW/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/MONITEW/slot_01_use.txt new file mode 100644 index 0000000..6de83df --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MONITEW/slot_01_use.txt @@ -0,0 +1,96 @@ +function monitew_use() /* entry=68 class_id=0x0165 slot=0x01 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + textFile, /* [BP-02h] type=0x73 */ + valueBox, /* [BP-04h] type=0x24 */ + passcode, /* [BP-06h] type=0x69 */ + link, /* [BP-08h] type=0x69 */ + boxCounter; /* [BP-0Ah] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if (Item.getFrame(arg_06) > 1) goto block_0106; + + block_0100: + goto block_02E2; + + block_0106: + link = Intrinsic00D9(arg_06); + if (Item.getMapNum(arg_06) != 0) goto block_01EB; + + block_0126: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_0144: + if condition goto block_01BF; + + block_0147: + if ((Intrinsic00D9(valueBox) != link) || (link != 0)) goto block_01BB; + + block_0162: + class_0A19_slot_20(valueBox); + passcode = retval; + class_0A17_slot_23(passcode, Item.callEvent0A(valueBox), Intrinsic00D9(valueBox), arg_06); + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = retval; + spawn class_0A17_slot_20(pid, textFile, arg_06); + /* free_stack_string value_u8=0x0 target=[SP+00h] */ + suspend; + + block_01BB: + /* loopnext */ + goto block_0144; + + block_01BF: + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + goto block_02E2; + + block_01EB: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_0209: + if condition goto block_0241; + + block_020C: + if (Intrinsic00D9(valueBox) != link) goto block_023D; + + block_0224: + class_0A19_slot_20(valueBox); + passcode = retval; + boxCounter = (1 + boxCounter); + + block_023D: + /* loopnext */ + goto block_0209; + + block_0241: + class_0A17_slot_23(passcode, Item.callEvent0A(arg_06), Intrinsic00D9(arg_06), arg_06); + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = retval; + if (boxCounter > 1) goto block_02BD; + + block_0276: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "There is more than one Value box in range with the same link"; + + block_02BD: + spawn class_0A17_slot_20(pid, textFile, arg_06); + /* free_stack_string value_u8=0x0 target=[SP+00h] */ + suspend; + + block_02E2: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MONITEW/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/MONITEW/slot_06_gotHit.txt new file mode 100644 index 0000000..7e629e9 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MONITEW/slot_06_gotHit.txt @@ -0,0 +1,13 @@ +function monitew_gotHit() /* entry=68 class_id=0x0165 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MONITNS/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/MONITNS/slot_01_use.txt new file mode 100644 index 0000000..c4c843d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MONITNS/slot_01_use.txt @@ -0,0 +1,96 @@ +function monitns_use() /* entry=45 class_id=0x0102 slot=0x01 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + textFile, /* [BP-02h] type=0x73 */ + valueBox, /* [BP-04h] type=0x24 */ + passcode, /* [BP-06h] type=0x69 */ + link, /* [BP-08h] type=0x69 */ + boxCounter; /* [BP-0Ah] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if (Item.getFrame(arg_06) > 1) goto block_0106; + + block_0100: + goto block_02E2; + + block_0106: + link = Intrinsic00D9(arg_06); + if (Item.getMapNum(arg_06) != 0) goto block_01EB; + + block_0126: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_0144: + if condition goto block_01BF; + + block_0147: + if ((Intrinsic00D9(valueBox) != link) || (link != 0)) goto block_01BB; + + block_0162: + class_0A19_slot_20(valueBox); + passcode = retval; + class_0A17_slot_23(passcode, Item.callEvent0A(valueBox), Intrinsic00D9(valueBox), arg_06); + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = retval; + spawn class_0A17_slot_20(pid, textFile, arg_06); + /* free_stack_string value_u8=0x0 target=[SP+00h] */ + suspend; + + block_01BB: + /* loopnext */ + goto block_0144; + + block_01BF: + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + goto block_02E2; + + block_01EB: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_0209: + if condition goto block_0241; + + block_020C: + if (Intrinsic00D9(valueBox) != link) goto block_023D; + + block_0224: + class_0A19_slot_20(valueBox); + passcode = retval; + boxCounter = (1 + boxCounter); + + block_023D: + /* loopnext */ + goto block_0209; + + block_0241: + class_0A17_slot_23(passcode, Item.callEvent0A(arg_06), Intrinsic00D9(arg_06), arg_06); + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = retval; + if (boxCounter > 1) goto block_02BD; + + block_0276: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "There is more than one Value box in range with the same link"; + + block_02BD: + spawn class_0A17_slot_20(pid, textFile, arg_06); + /* free_stack_string value_u8=0x0 target=[SP+00h] */ + suspend; + + block_02E2: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MONITNS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/MONITNS/slot_06_gotHit.txt new file mode 100644 index 0000000..b606374 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MONITNS/slot_06_gotHit.txt @@ -0,0 +1,13 @@ +function monitns_gotHit() /* entry=45 class_id=0x0102 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MONSTER/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/MONSTER/slot_0A_equip.txt new file mode 100644 index 0000000..221acdf --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MONSTER/slot_0A_equip.txt @@ -0,0 +1,24 @@ +function monster_equip() /* entry=274 class_id=0x04D0 slot=0x0A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + var, /* [BP+0Ah] type=0x69 */ + monster1, /* [BP-02h] type=0x24 */ + a, /* [BP-04h] type=0x69 */ + npc, /* [BP-06h] type=0x24 */ + door, /* [BP-08h] type=0x24 */ + newNpc; /* [BP-0Ah] type=0x24 */ + + set_info(0x0211, *(arg_06)); + process_exclude(); + if ((Item.getFrame(arg_06) != 0)) { + monster1 = *(arg_06); + set_info(0x021B, 0); + if ((((var != 0) || (var != 1)) || (var != 2)) || (var == 3)) { + spawn class_0A1E_slot_2D(pid, var, monster1, arg_06); + suspend; + } + return; + } + return; +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MONSTER/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/MONSTER/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..b5a222b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MONSTER/slot_0F_enterFastArea.txt @@ -0,0 +1,23 @@ +function monster_enterFastArea() /* entry=274 class_id=0x04D0 slot=0x0F */ +{ + var + referent, /* [BP+00h] type=0x69 */ + a; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (Item.getFrame(arg_06) != 0) goto block_014A; + + block_00FD: + a = Item.getMapNum(arg_06); + if (a & 8) goto block_014A; + + block_0116: + spawn class_04D0_equip(pid, 0, arg_06); + suspend; + + block_014A: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MOTION/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/MOTION/slot_06_gotHit.txt new file mode 100644 index 0000000..35b203d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MOTION/slot_06_gotHit.txt @@ -0,0 +1,26 @@ +function motion_gotHit() /* entry=89 class_id=0x01B7 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + num; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2B(vel, ref); + num = retval; + if (((num != 3) || (num != 6)) && (Item.getFrame(arg_06) != 5)) goto block_0409; + + block_0394: + class_0A0C_slot_33(0x021B, *(arg_06)); + spawn class_0A1E_slot_28(pid, 0, 0, arg_06); + suspend; + spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); + suspend; + + block_0409: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MOTION/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/MOTION/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..1459607 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MOTION/slot_0F_enterFastArea.txt @@ -0,0 +1,82 @@ +function motion_enterFastArea() /* entry=89 class_id=0x01B7 slot=0x0F */ +{ + var + referent, /* [BP+00h] type=0x69 */ + trackedEnough, /* [BP-02h] type=0x69 */ + fram, /* [BP-04h] type=0x69 */ + movement, /* [BP-06h] type=0x69 */ + foundTarget, /* [BP-07h] type=0x62 */ + delay, /* [BP-09h] type=0x69 */ + iSeeYou, /* [BP-0Bh] type=0x69 */ + dir; /* [BP-0Dh] type=0x69 */ + + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + movement = 1; + delay = ((5 - Intrinsic0029()) * 2); + iSeeYou = ((5 - Intrinsic0029()) * 5); + + block_0112: + suspend; + spawn class_0A0C_slot_32(pid, delay, 0x00000000); + suspend; + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + dir = Intrinsic0027(Intrinsic0013(Item.legal_create(16, 0, 16)), Item.legal_create(arg_06), Intrinsic0013(arg_06)); + fram = Item.getFrame(arg_06); + if (dir != fram) goto block_01DA; + + block_019C: + trackedEnough = (1 + trackedEnough); + if ((trackedEnough > iSeeYou) && (foundTarget != 0)) goto block_01D7; + + block_01BA: + foundTarget = 1; + spawn class_0A18_slot_20(0, *(arg_06), arg_06); + + block_01D7: + goto block_02A1; + + block_01DA: + if trackedEnough goto block_0207; + + block_01E2: + if ((12 - dir) > fram) goto block_0200; + + block_01F6: + movement = 1; + goto block_0207; + + block_0200: + movement = -1; + + block_0207: + trackedEnough = 0; + foundTarget = 0; + if ((fram + movement) < 0) goto block_0253; + + block_0223: + movement = 1; + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + goto block_0291; + + block_0253: + if ((fram + movement) > 15) goto block_0291; + + block_0261: + movement = -1; + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + goto block_0291; + + block_0291: + + block_02A1: + goto block_0112; + + block_02A4: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MOTION/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/MOTION/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..866c1b5 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MOTION/slot_10_leaveFastArea.txt @@ -0,0 +1,9 @@ +function motion_leaveFastArea() /* entry=89 class_id=0x01B7 slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + class_0A0C_slot_33(0x021B, *(arg_06)); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MTAREGG/slot_07_hatch.txt b/USECODE/EUSECODE_extracted/pseudocode/MTAREGG/slot_07_hatch.txt new file mode 100644 index 0000000..88be39e --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MTAREGG/slot_07_hatch.txt @@ -0,0 +1,64 @@ +function mtaregg_hatch() /* entry=343 class_id=0x0903 slot=0x07 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + id, /* [BP-04h] type=0x69 */ + hiValue, /* [BP-06h] type=0x69 */ + loValue; /* [BP-08h] type=0x69 */ + + entry: + set_info(0x0210, *(arg_06)); + process_exclude(); + id = 0; + hiValue = 0; + loValue = 0; + id = Intrinsic003F(arg_06); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0131: + if condition goto block_01E9; + + block_0134: + loValue = Intrinsic00D9(item); + if (id != loValue) goto block_01E5; + + block_0153: + hiValue = Item.callEvent0A(item); + if (hiValue != 1) goto block_0182; + + block_0169: + spawn class_0903_slot_20(74, 0, item, arg_06); + goto block_01E5; + + block_0182: + if (hiValue != 2) goto block_01A3; + + block_018A: + spawn class_0903_slot_20(74, 4, item, arg_06); + goto block_01E5; + + block_01A3: + if (hiValue != 3) goto block_01C4; + + block_01AB: + spawn class_0903_slot_20(74, 8, item, arg_06); + goto block_01E5; + + block_01C4: + if (hiValue != 4) goto block_01E5; + + block_01CC: + spawn class_0903_slot_20(74, 12, item, arg_06); + goto block_01E5; + + block_01E5: + /* loopnext */ + goto block_0131; + + block_01E9: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MTAREGG/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/MTAREGG/slot_20_slot_20.txt new file mode 100644 index 0000000..9b87d09 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MTAREGG/slot_20_slot_20.txt @@ -0,0 +1,73 @@ +function mtaregg_slot_20() /* entry=343 class_id=0x0903 slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + dir, /* [BP+0Ch] type=0x62 */ + num, /* [BP+0Eh] type=0x69 */ + me, /* [BP-02h] type=0x24 */ + num, /* [BP-04h] type=0x69 */ + dp, /* [BP-09h] type=0x24 */ + wp; /* [BP-0Eh] type=0x24 */ + + entry: + set_info(0x00F0, ref); + me = ref; + num = num; + if (dir != 0) goto block_0264; + + block_0253: + local_07 = -2; + dp = 0; + goto block_02AF; + + block_0264: + if (dir != 8) goto block_027D; + + block_026C: + local_07 = 2; + dp = 0; + goto block_02AF; + + block_027D: + if (dir != 4) goto block_0296; + + block_0285: + local_07 = 0; + dp = 2; + goto block_02AF; + + block_0296: + if (dir != 12) goto block_02AF; + + block_029E: + local_07 = 0; + dp = -2; + goto block_02AF; + + block_02AF: + suspend; + if (num != 0) goto block_02D0; + + block_02CA: + goto block_033C; + + block_02D0: + num = (num - 1); + wp = Intrinsic0013(me); + local_0C = Item.legal_create(me); + local_0A = Item.getZ(me); + wp = (wp + dp); + local_0C = (local_0C + local_07); + if (Item.pop(0, 1, wp, me) != 0) goto block_0339; + + block_0333: + goto block_033C; + + block_0339: + goto block_02AF; + + block_033C: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MTELEPAD/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/MTELEPAD/slot_06_gotHit.txt new file mode 100644 index 0000000..dd58892 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MTELEPAD/slot_06_gotHit.txt @@ -0,0 +1,56 @@ +function mtelepad_gotHit() /* entry=75 class_id=0x018E slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + ke, /* [BP+0Ch] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + npc; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + item = ref; + class_0A0C_slot_2C(ke, ref); + if retval goto block_010A; + + block_0104: + goto block_0199; + + block_010A: + if (Item.isNpc(item) != 0) goto block_0127; + + block_011C: + + block_0127: + if (Intrinsic0070() != 1) goto block_0199; + + block_0135: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x6 */ + + block_0150: + if condition goto block_0191; + + block_0153: + if (npc < 0x0100) goto block_018D; + + block_015F: + if (npc != 1) goto block_018D; + + block_016A: + + block_018D: + /* loopnext */ + goto block_0150; + + block_0191: + goto block_0199; + + block_0199: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MTELEPAD/slot_09_release.txt b/USECODE/EUSECODE_extracted/pseudocode/MTELEPAD/slot_09_release.txt new file mode 100644 index 0000000..7f168f6 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MTELEPAD/slot_09_release.txt @@ -0,0 +1,65 @@ +function mtelepad_release() /* entry=75 class_id=0x018E slot=0x09 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + tele, /* [BP-02h] type=0x24 */ + npc; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x020D, *(arg_06)); + process_exclude(); + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x6 */ + + block_0225: + if condition goto block_0232; + + block_0228: + goto block_02B0; + + block_022E: + /* loopnext */ + goto block_0225; + + block_0232: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x6 */ + + block_024F: + if condition goto block_02AE; + + block_0252: + if (npc != 1) goto block_02A4; + + block_0260: + /* global_address global_id=0x3C */ + if Item.getQLo(*(arg_06)) goto block_029D; + + block_0274: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0260; + + block_029D: + + block_02A4: + goto block_02B0; + + block_02AA: + /* loopnext */ + goto block_024F; + + block_02AE: + + block_02B0: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/MUSIC/slot_07_hatch.txt b/USECODE/EUSECODE_extracted/pseudocode/MUSIC/slot_07_hatch.txt new file mode 100644 index 0000000..683ad42 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/MUSIC/slot_07_hatch.txt @@ -0,0 +1,8 @@ +function music_hatch() /* entry=368 class_id=0x091C slot=0x07 */ +{ + entry: + set_info(0x0210, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/NOSTRIL/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/NOSTRIL/slot_0A_equip.txt new file mode 100644 index 0000000..4f3774f --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/NOSTRIL/slot_0A_equip.txt @@ -0,0 +1,48 @@ +function nostril_equip() /* entry=237 class_id=0x043E slot=0x0A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + event, /* [BP+0Ah] type=0x69 */ + fire; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (event != 0) goto block_0139; + + block_00FF: + /* 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=0x6 */ + + block_011B: + if condition goto block_0134; + + block_011E: + spawn class_043E_slot_20(fire, arg_06); + /* loopnext */ + goto block_011B; + + block_0134: + goto block_017A; + + block_0139: + if (event != 1) goto block_017A; + + block_0141: + if (Item.getStatus(arg_06) & 0x1000) goto block_015A; + + block_0154: + goto block_017A; + + block_015A: + class_0A1E_slot_23(0x1000, arg_06); + spawn class_043E_slot_21(arg_06); + goto block_017A; + + block_017A: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/NOSTRIL/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/NOSTRIL/slot_20_slot_20.txt new file mode 100644 index 0000000..73b87c5 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/NOSTRIL/slot_20_slot_20.txt @@ -0,0 +1,32 @@ +function nostril_slot_20() /* entry=237 class_id=0x043E slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + fire, /* [BP+0Ah] type=0x24 */ + count, /* [BP-02h] type=0x69 */ + fire2; /* [BP-04h] type=0x24 */ + + entry: + set_info(1, *(arg_06)); + if Item.getQHi() goto block_0259; + + block_0218: + if (Item.getFrame(fire2) != 21) goto block_0256; + + block_022D: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0218; + + block_0256: + goto block_027F; + + block_0259: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + + block_027F: + class_0A1E_slot_24(0x1000, arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/NOSTRIL/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/NOSTRIL/slot_21_slot_21.txt new file mode 100644 index 0000000..33abcb4 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/NOSTRIL/slot_21_slot_21.txt @@ -0,0 +1,41 @@ +function nostril_slot_21() /* entry=237 class_id=0x043E slot=0x21 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + fire, /* [BP-02h] type=0x24 */ + fire2, /* [BP-04h] type=0x24 */ + count; /* [BP-06h] type=0x69 */ + + entry: + set_info(1, *(arg_06)); + spawn class_0A0C_slot_32(Intrinsic00DA(pid, 15, 0), 0x00000000); + suspend; + if Item.getQHi() goto block_03A2; + + block_0364: + if (Item.getFrame(fire) != 10) goto block_039F; + + block_0376: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0364; + + block_039F: + goto block_03C8; + + block_03A2: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + + block_03C8: + if Item.getQHi() goto block_0441; + + block_0428: + goto block_0457; + + block_0441: + + block_0457: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_0A_equip.txt new file mode 100644 index 0000000..a64a528 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_0A_equip.txt @@ -0,0 +1,35 @@ +function npc_equip() /* entry=387 class_id=0x0A11 slot=0x0A */ +{ + set_info(0x0211, *(arg_06)); + process_exclude(); + if (Kernel.resetRef(arg_06)) { + if (arg_0A == 1) { + } + else if (arg_0A == 2) { + } + else if (arg_0A == 3) { + } + else if (arg_0A == 10) { + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + local_02 = teleportToEgg(); + local_04 = Intrinsic0087(); + local_06 = Intrinsic0013(arg_06); + local_08 = Item.legal_create(arg_06); + spawn class_0A11_slot_29(pid, local_08, local_06, local_04, local_02, arg_06); + suspend; + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + } + else if (arg_0A == 30) { + local_0A = Intrinsic00DF(1, arg_06); + local_0C = Intrinsic00DF(2, arg_06); + local_0E = Intrinsic00DF(0, arg_06); + } + else if (arg_0A == 31) { + suspend; + } + return; + } + return; +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_20_slot_20.txt new file mode 100644 index 0000000..8c50155 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_20_slot_20.txt @@ -0,0 +1,28 @@ +function npc_slot_20() /* entry=387 class_id=0x0A11 slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x4E */ + /* loop current_var=0xFE string_bytes=0x1E loop_type=0x2 */ + + block_0191: + if condition goto block_01A1; + + block_0194: + goto block_01AC; + + block_019D: + /* loopnext */ + goto block_0191; + + block_01A1: + goto block_01AC; + + block_01AC: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_21_slot_21.txt new file mode 100644 index 0000000..319729e --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_21_slot_21.txt @@ -0,0 +1,34 @@ +function npc_slot_21() /* entry=387 class_id=0x0A11 slot=0x21 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + x, /* [BP+0Ah] type=0x69 */ + counter; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x020A, *(arg_06)); + if (!x) goto block_01EB; + + block_01E7: + x = 1; + + block_01EB: + counter = 1; + + block_01F2: + if (counter <= x) goto block_025A; + + block_01FD: + if ((Kernel.resetRef(arg_06) != 0) && (Intrinsic00CC(arg_06) != 0)) goto block_024D; + + block_021F: + suspend; + + block_024D: + counter = (1 + counter); + goto block_01F2; + + block_025A: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_22_slot_22.txt b/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_22_slot_22.txt new file mode 100644 index 0000000..530af5c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_22_slot_22.txt @@ -0,0 +1,15 @@ +function npc_slot_22() /* entry=387 class_id=0x0A11 slot=0x22 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + dir, /* [BP+0Ah] type=0x62 */ + x; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020A, *(arg_06)); + suspend; + spawn class_0A11_slot_21(pid, x, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_23_slot_23.txt b/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_23_slot_23.txt new file mode 100644 index 0000000..da39b39 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_23_slot_23.txt @@ -0,0 +1,93 @@ +function npc_slot_23() /* entry=387 class_id=0x0A11 slot=0x23 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + pad, /* [BP-04h] type=0x24 */ + padDir; /* [BP-06h] type=0x69 */ + + entry: + set_info(0x020A, *(arg_06)); + /* global_address global_id=0x3C */ + if (Item.getType((*(arg_06) != 1)) != 40) goto block_0346; + + block_032F: + /* global_address global_id=0x3C */ + + block_0346: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0366: + if condition goto block_0374; + + block_0369: + pad = item; + /* loopnext */ + goto block_0366; + + block_0374: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x44 */ + /* loop current_var=0xFE string_bytes=0xA loop_type=0x2 */ + + block_039F: + if condition goto block_03F2; + + block_03A2: + if (Intrinsic0016(item) != 0x018E) goto block_03D8; + + block_03BB: + if (!Item.getFrame(item)) goto block_03D5; + + block_03CE: + padDir = 1; + + block_03D5: + goto block_03EE; + + block_03D8: + if Item.getFrame(item) goto block_03EE; + + block_03E7: + padDir = 1; + + block_03EE: + /* loopnext */ + goto block_039F; + + block_03F2: + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + /* global_address global_id=0x3C */ + if (!padDir) goto block_0495; + + block_046B: + suspend; + goto block_04BC; + + block_0495: + suspend; + + block_04BC: + /* global_address global_id=0x3C */ + if Item.touch(48) goto block_04F4; + + block_04CE: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + + block_04F4: + if (*(arg_06) != 1) goto block_0529; + + block_0504: + /* global_address global_id=0x3C */ + + block_0529: + goto block_052F; + + block_052F: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_24_slot_24.txt b/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_24_slot_24.txt new file mode 100644 index 0000000..8cf9e57 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_24_slot_24.txt @@ -0,0 +1,90 @@ +function npc_slot_24() /* entry=387 class_id=0x0A11 slot=0x24 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + pad, /* [BP-04h] type=0x24 */ + padDir; /* [BP-06h] type=0x69 */ + + entry: + set_info(0x020A, *(arg_06)); + if (global[0x003C] != *(arg_06)) goto block_0627; + + block_0589: + /* global_address global_id=0x3C */ + + block_05AE: + /* global_address global_id=0x3C */ + if Intrinsic0033() goto block_05E7; + + block_05BE: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_05AE; + + block_05E7: + /* global_address global_id=0x3C */ + if Intrinsic0035() goto block_0627; + + block_05F7: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + + block_0627: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0647: + if condition goto block_0655; + + block_064A: + pad = item; + /* loopnext */ + goto block_0647; + + block_0655: + if pad goto block_08C9; + + block_065F: + if (Item.getFrame(pad) != 1) goto block_0785; + + block_06A9: + /* global_address global_id=0x3C */ + suspend; + suspend; + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + /* global_address global_id=0x3C */ + suspend; + goto block_085E; + + block_0785: + /* global_address global_id=0x3C */ + suspend; + suspend; + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + /* global_address global_id=0x3C */ + suspend; + + block_085E: + /* global_address global_id=0x3C */ + if Item.touch(52) goto block_08A3; + + block_087D: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + + block_08A3: + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + + block_08C9: + goto block_08CF; + + block_08CF: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_25_slot_25.txt b/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_25_slot_25.txt new file mode 100644 index 0000000..482e247 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_25_slot_25.txt @@ -0,0 +1,22 @@ +function npc_slot_25() /* entry=387 class_id=0x0A11 slot=0x25 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + toDir, /* [BP+0Ch] type=0x69 */ + e; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x020A, *(arg_06)); + suspend; + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + e = Item.getQHi(arg_06); + if (!Kernel.resetRef(arg_06)) goto block_099E; + + block_098A: + + block_099E: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_26_slot_26.txt b/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_26_slot_26.txt new file mode 100644 index 0000000..e7d774a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_26_slot_26.txt @@ -0,0 +1,64 @@ +function npc_slot_26() /* entry=387 class_id=0x0A11 slot=0x26 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + toDir, /* [BP+0Ch] type=0x69 */ + stepNum, /* [BP+0Eh] type=0x69 */ + a, /* [BP-02h] type=0x69 */ + b, /* [BP-04h] type=0x69 */ + c, /* [BP-06h] type=0x69 */ + d, /* [BP-08h] type=0x69 */ + e, /* [BP-0Ah] type=0x69 */ + f, /* [BP-0Ch] type=0x69 */ + counter, /* [BP-0Eh] type=0x69 */ + g, /* [BP-10h] type=0x69 */ + h; /* [BP-12h] type=0x69 */ + + entry: + set_info(0x020A, *(arg_06)); + a = Item.getQHi(arg_06); + b = Intrinsic0050(arg_06); + if (!Kernel.resetRef(arg_06)) goto block_0A1B; + + block_0A0E: + + block_0A1B: + c = Item.getQHi(arg_06); + d = Intrinsic0050(arg_06); + if (!Kernel.resetRef(arg_06)) goto block_0A92; + + block_0A4A: + suspend; + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + + block_0A92: + e = Item.getQHi(arg_06); + f = Intrinsic0050(arg_06); + counter = 1; + + block_0AB5: + if (counter <= stepNum) goto block_0B07; + + block_0AC0: + if (!Kernel.resetRef(arg_06)) goto block_0AFA; + + block_0AD3: + suspend; + + block_0AFA: + counter = (1 + counter); + goto block_0AB5; + + block_0B07: + g = Item.getQHi(arg_06); + h = Intrinsic0050(arg_06); + if (!Kernel.resetRef(arg_06)) goto block_0B4A; + + block_0B36: + + block_0B4A: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_27_slot_27.txt b/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_27_slot_27.txt new file mode 100644 index 0000000..d438584 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_27_slot_27.txt @@ -0,0 +1,53 @@ +function npc_slot_27() /* entry=387 class_id=0x0A11 slot=0x27 */ +{ + entry: + set_info(0x020A, *(arg_06)); + + block_0E29: + if Intrinsic0033(arg_06) goto block_0E61; + + block_0E38: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0E29; + + block_0E61: + if Kernel.resetRef(arg_06) goto block_0E76; + + block_0E70: + goto block_0F29; + + block_0E76: + if (arg_0A != 0) goto block_0F1C; + + block_0E7E: + local_02 = Intrinsic0050(arg_06); + local_04 = Intrinsic00FA(arg_06); + local_06 = Item.getQLo(arg_06); + local_08 = Item.getCY(arg_06); + if (local_02 != 112) goto block_0ED7; + + block_0EC7: + goto block_0F19; + + block_0ED7: + if (local_02 != 113) goto block_0EF8; + + block_0EE8: + goto block_0F19; + + block_0EF8: + if (local_02 != 114) goto block_0F19; + + block_0F09: + goto block_0F19; + + block_0F19: + goto block_0F29; + + block_0F1C: + + block_0F29: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_28_slot_28.txt b/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_28_slot_28.txt new file mode 100644 index 0000000..9c696ca --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_28_slot_28.txt @@ -0,0 +1,7 @@ +function npc_slot_28() /* entry=387 class_id=0x0A11 slot=0x28 */ +{ + entry: + set_info(0x021B, *(arg_06)); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_29_slot_29.txt b/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_29_slot_29.txt new file mode 100644 index 0000000..1738d41 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_29_slot_29.txt @@ -0,0 +1,9 @@ +function npc_slot_29() /* entry=387 class_id=0x0A11 slot=0x29 */ +{ + entry: + set_info(0x021B, *(arg_06)); + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_2A_slot_2A.txt b/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_2A_slot_2A.txt new file mode 100644 index 0000000..e1195b3 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_2A_slot_2A.txt @@ -0,0 +1,42 @@ +function npc_slot_2A() /* entry=387 class_id=0x0A11 slot=0x2A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + phrase, /* [BP+0Ah] type=0x69 */ + n; /* [BP-02h] type=0x24 */ + + entry: + n = *(arg_06); + set_info(0x0205, 0); + if ((global[0x0008] != 1) || (Intrinsic002C(n) != 0)) goto block_1051; + + block_104B: + goto block_10F6; + + block_1051: + /* pop_global global_id=0x8 size=0x1 */ + if (Item.getStatus(n) & 4) goto block_1072; + + block_106C: + goto block_10F6; + + block_1072: + class_0A1E_slot_23(4, n); + + block_108D: + if Item.touch(phrase, n) goto block_10C7; + + block_109E: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + goto block_108D; + + block_10C7: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + /* pop_global global_id=0x8 size=0x1 */ + + block_10F6: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_2B_slot_2B.txt b/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_2B_slot_2B.txt new file mode 100644 index 0000000..613574d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_2B_slot_2B.txt @@ -0,0 +1,15 @@ +function npc_slot_2B() /* entry=387 class_id=0x0A11 slot=0x2B */ +{ + entry: + if (((((((Intrinsic0016(arg_06) != 0x02CB) || (Intrinsic0016(arg_06) != 0x033C)) || (Intrinsic0016(arg_06) != 0x045D)) || (Intrinsic0016(arg_06) != 0x0338)) || (Intrinsic0016(arg_06) != 0x0385)) || (Intrinsic0016(arg_06) != 0x04E6)) || (Intrinsic0016(arg_06) != 0x0383)) goto block_11BC; + + block_11B3: + goto block_11C5; + + block_11BC: + goto block_11C5; + + block_11C5: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_2C_slot_2C.txt b/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_2C_slot_2C.txt new file mode 100644 index 0000000..36848aa --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_2C_slot_2C.txt @@ -0,0 +1,13 @@ +function npc_slot_2C() /* entry=387 class_id=0x0A11 slot=0x2C */ +{ + var + referent, /* [BP+00h] type=0x69 */ + damageSource; /* [BP+0Ah] type=0x69 */ + + entry: + set_info(0x020A, *(arg_06)); + spawn class_0A11_slot_2D(pid, 8, damageSource, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_2D_slot_2D.txt b/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_2D_slot_2D.txt new file mode 100644 index 0000000..e353a78 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_2D_slot_2D.txt @@ -0,0 +1,47 @@ +function npc_slot_2D() /* entry=387 class_id=0x0A11 slot=0x2D */ +{ + var + referent, /* [BP+00h] type=0x69 */ + damageSource, /* [BP+0Ah] type=0x69 */ + dir, /* [BP+0Ch] type=0x69 */ + aSet; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x020A, *(arg_06)); + if (*(arg_06) > 0x0100) goto block_126A; + + block_1264: + goto block_1346; + + block_126A: + if (*(arg_06) != 1) goto block_12C5; + + block_1277: + if (global[0x0009] != 1) goto block_128A; + + block_1284: + goto block_1346; + + block_128A: + aSet = Item.getNpcNum(arg_06); + spawn class_0A11_slot_2E(arg_06); + goto block_1346; + + block_12C5: + if (*(arg_06) != Item.pop()) goto block_1346; + + block_12D5: + class_0A11_slot_2B(arg_06); + if ((retval != 0) && (Intrinsic0007(arg_06) != 1)) goto block_131D; + + block_12F8: + + block_131D: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_1346; + + block_1346: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_2E_slot_2E.txt b/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_2E_slot_2E.txt new file mode 100644 index 0000000..3ba2d6c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/NPC/slot_2E_slot_2E.txt @@ -0,0 +1,11 @@ +function npc_slot_2E() /* entry=387 class_id=0x0A11 slot=0x2E */ +{ + entry: + set_info(1, 0); + /* pop_global global_id=0x9 size=0x1 */ + spawn class_0A0C_slot_32(1, pid, (90 - (Intrinsic0029() * 8)), 0x00000000); + suspend; + /* pop_global global_id=0x9 size=0x1 */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/NPCDEATH/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/NPCDEATH/slot_20_slot_20.txt new file mode 100644 index 0000000..4b6ca5a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/NPCDEATH/slot_20_slot_20.txt @@ -0,0 +1,912 @@ +function npcdeath_slot_20() /* entry=398 class_id=0x0A1C slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + link, /* [BP+0Ch] type=0x69 */ + n, /* [BP-02h] type=0x24 */ + NpcContents, /* [BP-03h] type=0x62 */ + deathBox, /* [BP-05h] type=0x24 */ + param, /* [BP-07h] type=0x69 */ + hits, /* [BP-09h] type=0x69 */ + keyCard, /* [BP-0Bh] type=0x24 */ + t, /* [BP-0Dh] type=0x69 */ + item, /* [BP-0Fh] type=0x24 */ + deadGuy, /* [BP-11h] type=0x24 */ + goods, /* [BP-13h] type=0x24 */ + counter, /* [BP-15h] type=0x69 */ + spillBlood, /* [BP-16h] type=0x62 */ + spillOil, /* [BP-17h] type=0x62 */ + spillCoolant, /* [BP-18h] type=0x62 */ + nx, /* [BP-1Ah] type=0x69 */ + ny, /* [BP-1Ch] type=0x69 */ + nz, /* [BP-1Dh] type=0x62 */ + dir, /* [BP-1Fh] type=0x69 */ + newDir, /* [BP-21h] type=0x69 */ + flipIt, /* [BP-22h] type=0x62 */ + newType; /* [BP-24h] type=0x69 */ + + entry: + set_info(0x0205, 0); + if (!Item.getQ(arg_06)) goto block_0116; + + block_0110: + goto block_132F; + + block_0116: + if Npc.isDead(arg_06) goto block_014E; + + block_0125: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0116; + + block_014E: + n = ref; + NpcContents = 0; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFB string_bytes=0x6 loop_type=0x2 */ + + block_0178: + if condition goto block_034F; + + block_017B: + if (link != Item.getNpcNum(deathBox)) goto block_034B; + + block_0190: + if (Item.getMapNum(deathBox) != 0) goto block_01D0; + + block_01A2: + spawn class_0A18_slot_20(pid, 0, deathBox, deathBox); + suspend; + goto block_034F; + + block_01CD: + goto block_034B; + + block_01D0: + param = Intrinsic00FB(deathBox); + hits = Item.setQ(deathBox); + if (param != 0) goto block_01F7; + + block_01F4: + goto block_031C; + + block_01F7: + if ((((param != 1) || (param != 2)) || (param != 3)) || (param != 4)) goto block_031C; + + block_0211: + if hits goto block_023C; + + block_022C: + goto block_0249; + + block_023C: + + block_0249: + t = Intrinsic0016(arg_06); + if ((((((t != 0x0576) || (t != 0x0596)) || (t != 0x058F)) || (t != 0x04D9)) || (t != 0x03AC)) || (t != 0x059C)) goto block_0303; + + block_02B1: + if (t != 0x04D9) goto block_02DA; + + block_02C3: + goto block_0300; + + block_02DA: + + block_0300: + goto block_0312; + + block_0303: + + block_0312: + NpcContents = 1; + goto block_031C; + + block_031C: + spawn class_0A18_slot_20(pid, (0x0080 + 0), deathBox, deathBox); + suspend; + goto block_034F; + + block_034B: + /* loopnext */ + goto block_0178; + + block_034F: + nx = Intrinsic0013(n); + ny = Item.legal_create(n); + nz = Item.getZ(n); + dir = (Item.getNpcNum(n) / 2); + if ((Intrinsic0016(n) != 0x058F) || (Intrinsic0016(n) != 0x059C)) goto block_03BE; + + block_03AA: + goto block_132F; + + block_03BB: + goto block_0F51; + + block_03BE: + if (Intrinsic0016(n) != 0x02FD) goto block_0474; + + block_03CE: + newType = 0x0339; + if (dir != 4) goto block_03EF; + + block_03DE: + newDir = 2; + flipIt = 1; + goto block_043A; + + block_03EF: + if (dir != 5) goto block_0408; + + block_03F7: + newDir = 1; + flipIt = 1; + goto block_043A; + + block_0408: + if (dir != 6) goto block_0421; + + block_0410: + newDir = 0; + flipIt = 1; + goto block_043A; + + block_0421: + if (dir != 7) goto block_0433; + + block_0429: + newDir = 4; + goto block_043A; + + block_0433: + newDir = dir; + + block_043A: + if (Item.andStatus(n) != 20) goto block_045C; + + block_0452: + newDir = (newDir + 10); + + block_045C: + spillBlood = 1; + /* pop_global global_id=0xB size=0x2 */ + goto block_0F51; + + block_0474: + if (Intrinsic0016(n) != 0x0384) goto block_052A; + + block_0484: + newType = 0x04BF; + if (dir != 4) goto block_04A5; + + block_0494: + newDir = 2; + flipIt = 1; + goto block_04F0; + + block_04A5: + if (dir != 5) goto block_04BE; + + block_04AD: + newDir = 1; + flipIt = 1; + goto block_04F0; + + block_04BE: + if (dir != 6) goto block_04D7; + + block_04C6: + newDir = 0; + flipIt = 1; + goto block_04F0; + + block_04D7: + if (dir != 7) goto block_04E9; + + block_04DF: + newDir = 4; + goto block_04F0; + + block_04E9: + newDir = dir; + + block_04F0: + if (Item.andStatus(n) != 18) goto block_0512; + + block_0508: + newDir = (newDir + 10); + + block_0512: + spillBlood = 1; + /* pop_global global_id=0xD size=0x2 */ + goto block_0F51; + + block_052A: + if (Intrinsic0016(n) != 0x0371) goto block_05E0; + + block_053A: + newType = 0x04BE; + if (dir != 4) goto block_055B; + + block_054A: + newDir = 2; + flipIt = 1; + goto block_05A6; + + block_055B: + if (dir != 5) goto block_0574; + + block_0563: + newDir = 1; + flipIt = 1; + goto block_05A6; + + block_0574: + if (dir != 6) goto block_058D; + + block_057C: + newDir = 0; + flipIt = 1; + goto block_05A6; + + block_058D: + if (dir != 7) goto block_059F; + + block_0595: + newDir = 4; + goto block_05A6; + + block_059F: + newDir = dir; + + block_05A6: + if (Item.andStatus(n) != 18) goto block_05C8; + + block_05BE: + newDir = (newDir + 10); + + block_05C8: + spillBlood = 1; + /* pop_global global_id=0xB size=0x2 */ + goto block_0F51; + + block_05E0: + if (Intrinsic0016(n) != 0x04D1) goto block_0617; + + block_05F0: + newType = 0x04D2; + newDir = dir; + spillBlood = 1; + /* pop_global global_id=0x11 size=0x2 */ + goto block_0F51; + + block_0617: + if (Intrinsic0016(n) != 0x0528) goto block_064E; + + block_0627: + newType = 0x054D; + newDir = dir; + spillBlood = 1; + /* pop_global global_id=0x11 size=0x2 */ + goto block_0F51; + + block_064E: + if (Intrinsic0016(n) != 0x0338) goto block_06A7; + + block_065E: + newType = 0x04C5; + newDir = dir; + if (Item.andStatus(n) != 18) goto block_068F; + + block_0685: + newDir = (dir + 10); + + block_068F: + spillOil = 1; + /* pop_global global_id=0x17 size=0x2 */ + goto block_0F51; + + block_06A7: + if (Intrinsic0016(n) != 0x01B4) goto block_075D; + + block_06B7: + newType = 0x055D; + if (dir != 4) goto block_06D8; + + block_06C7: + newDir = 2; + flipIt = 1; + goto block_0723; + + block_06D8: + if (dir != 5) goto block_06F1; + + block_06E0: + newDir = 1; + flipIt = 1; + goto block_0723; + + block_06F1: + if (dir != 6) goto block_070A; + + block_06F9: + newDir = 0; + flipIt = 1; + goto block_0723; + + block_070A: + if (dir != 7) goto block_071C; + + block_0712: + newDir = 4; + goto block_0723; + + block_071C: + newDir = dir; + + block_0723: + if (Item.andStatus(n) != 18) goto block_0745; + + block_073B: + newDir = (newDir + 10); + + block_0745: + spillBlood = 1; + /* pop_global global_id=0x13 size=0x2 */ + goto block_0F51; + + block_075D: + if (Intrinsic0016(n) != 0x02DF) goto block_07A8; + + block_076D: + newType = 0x04BA; + newDir = dir; + if (Item.andStatus(n) != 20) goto block_079E; + + block_0794: + newDir = (dir + 10); + + block_079E: + spillBlood = 1; + goto block_0F51; + + block_07A8: + if (Intrinsic0016(n) != 0x0383) goto block_0857; + + block_07B8: + newType = 0x04C1; + if (dir != 4) goto block_07D9; + + block_07C8: + newDir = 2; + flipIt = 1; + goto block_0824; + + block_07D9: + if (dir != 5) goto block_07F2; + + block_07E1: + newDir = 1; + flipIt = 1; + goto block_0824; + + block_07F2: + if (dir != 6) goto block_080B; + + block_07FA: + newDir = 0; + flipIt = 1; + goto block_0824; + + block_080B: + if (dir != 7) goto block_081D; + + block_0813: + newDir = 4; + goto block_0824; + + block_081D: + newDir = dir; + + block_0824: + if (Item.andStatus(n) != 20) goto block_0846; + + block_083C: + newDir = (newDir + 10); + + block_0846: + /* pop_global global_id=0x15 size=0x2 */ + goto block_0F51; + + block_0857: + if (Intrinsic0016(n) != 0x0385) goto block_08B7; + + block_0867: + /* pop_global global_id=0x1B size=0x2 */ + spawn class_0A1E_slot_2A((1 + global[0x001B]), pid, n); + suspend; + goto block_132F; + + block_08B4: + goto block_0F51; + + block_08B7: + if (Intrinsic0016(n) != 0x02CB) goto block_0960; + + block_08C7: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xED string_bytes=0x1 loop_type=0x4 */ + + block_08D5: + if condition goto block_0901; + + block_08D8: + spawn class_0A1E_slot_28(pid, 1, 0, goods); + suspend; + /* loopnext */ + goto block_08D5; + + block_0901: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + spawn class_0A1E_slot_2A(pid, n); + suspend; + goto block_132F; + + block_095D: + goto block_0F51; + + block_0960: + if (Intrinsic0016(n) != 0x04E6) goto block_0A89; + + block_0970: + if (dir != 4) goto block_0989; + + block_0978: + newDir = 2; + flipIt = 1; + goto block_09D4; + + block_0989: + if (dir != 5) goto block_09A2; + + block_0991: + newDir = 1; + flipIt = 1; + goto block_09D4; + + block_09A2: + if (dir != 6) goto block_09BB; + + block_09AA: + newDir = 0; + flipIt = 1; + goto block_09D4; + + block_09BB: + if (dir != 7) goto block_09CD; + + block_09C3: + newDir = 4; + goto block_09D4; + + block_09CD: + newDir = dir; + + block_09D4: + /* pop_global global_id=0x19 size=0x2 */ + spawn class_0A1E_slot_2A(pid, n); + suspend; + if flipIt goto block_0A4F; + + block_0A41: + class_0A1E_slot_23(32, deadGuy); + + block_0A4F: + goto block_132F; + + block_0A86: + goto block_0F51; + + block_0A89: + if (Intrinsic0016(n) != 0x0576) goto block_0B05; + + block_0A99: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xED string_bytes=0x1 loop_type=0x4 */ + + block_0AA7: + if condition goto block_0AB9; + + block_0AAA: + /* loopnext */ + goto block_0AA7; + + block_0AB9: + goto block_132F; + + block_0B02: + goto block_0F51; + + block_0B05: + if (Intrinsic0016(n) != 0x0596) goto block_0C1D; + + block_0B15: + if (dir != 4) goto block_0B2E; + + block_0B1D: + newDir = 2; + flipIt = 1; + goto block_0B79; + + block_0B2E: + if (dir != 5) goto block_0B47; + + block_0B36: + newDir = 1; + flipIt = 1; + goto block_0B79; + + block_0B47: + if (dir != 6) goto block_0B60; + + block_0B4F: + newDir = 0; + flipIt = 1; + goto block_0B79; + + block_0B60: + if (dir != 7) goto block_0B72; + + block_0B68: + newDir = 4; + goto block_0B79; + + block_0B72: + newDir = dir; + + block_0B79: + if (Item.andStatus(n) != 20) goto block_0B9B; + + block_0B91: + newDir = (newDir + 10); + + block_0B9B: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xED string_bytes=0x1 loop_type=0x4 */ + + block_0BA9: + if condition goto block_0BBB; + + block_0BAC: + /* loopnext */ + goto block_0BA9; + + block_0BBB: + if flipIt goto block_0BE3; + + block_0BD5: + class_0A1E_slot_23(32, deadGuy); + + block_0BE3: + goto block_132F; + + block_0C1A: + goto block_0F51; + + block_0C1D: + if (Intrinsic0016(n) != 0x0319) goto block_0CB1; + + block_0C2D: + newType = 0x04E4; + if (dir != 4) goto block_0C4E; + + block_0C3D: + newDir = 2; + flipIt = 1; + goto block_0C99; + + block_0C4E: + if (dir != 5) goto block_0C67; + + block_0C56: + newDir = 1; + flipIt = 1; + goto block_0C99; + + block_0C67: + if (dir != 6) goto block_0C80; + + block_0C6F: + newDir = 0; + flipIt = 1; + goto block_0C99; + + block_0C80: + if (dir != 7) goto block_0C92; + + block_0C88: + newDir = 4; + goto block_0C99; + + block_0C92: + newDir = dir; + + block_0C99: + spillBlood = 1; + /* pop_global global_id=0xB size=0x2 */ + goto block_0F51; + + block_0CB1: + if (Intrinsic0016(n) != 0x02F6) goto block_0D37; + + block_0CC1: + newType = 0x04B9; + if (dir != 4) goto block_0CE2; + + block_0CD1: + newDir = 2; + flipIt = 1; + goto block_0D2D; + + block_0CE2: + if (dir != 5) goto block_0CFB; + + block_0CEA: + newDir = 1; + flipIt = 1; + goto block_0D2D; + + block_0CFB: + if (dir != 6) goto block_0D14; + + block_0D03: + newDir = 0; + flipIt = 1; + goto block_0D2D; + + block_0D14: + if (dir != 7) goto block_0D26; + + block_0D1C: + newDir = 4; + goto block_0D2D; + + block_0D26: + newDir = dir; + + block_0D2D: + spillBlood = 1; + goto block_0F51; + + block_0D37: + if (Intrinsic0016(n) != 0x02F5) goto block_0DBD; + + block_0D47: + newType = 0x04BB; + if (dir != 4) goto block_0D68; + + block_0D57: + newDir = 2; + flipIt = 1; + goto block_0DB3; + + block_0D68: + if (dir != 5) goto block_0D81; + + block_0D70: + newDir = 1; + flipIt = 1; + goto block_0DB3; + + block_0D81: + if (dir != 6) goto block_0D9A; + + block_0D89: + newDir = 0; + flipIt = 1; + goto block_0DB3; + + block_0D9A: + if (dir != 7) goto block_0DAC; + + block_0DA2: + newDir = 4; + goto block_0DB3; + + block_0DAC: + newDir = dir; + + block_0DB3: + spillBlood = 1; + goto block_0F51; + + block_0DBD: + if (Intrinsic0016(n) != 0x0344) goto block_0DE6; + + block_0DCD: + newType = 0x04BD; + newDir = dir; + spillBlood = 1; + goto block_0F51; + + block_0DE6: + if (Intrinsic0016(n) != 0x02F7) goto block_0E0F; + + block_0DF6: + newType = 0x04BC; + newDir = dir; + spillBlood = 1; + goto block_0F51; + + block_0E0F: + if (Intrinsic0016(n) != 0x045D) goto block_0E42; + + block_0E1F: + goto block_132F; + + block_0E3F: + goto block_0F51; + + block_0E42: + if (Intrinsic0016(n) != 0x03AC) goto block_0E64; + + block_0E52: + newType = 0x04C0; + newDir = dir; + goto block_0F51; + + block_0E64: + if (Intrinsic0016(n) != 0x04D9) goto block_0F51; + + block_0E74: + /* global_address global_id=0x3C */ + if Item.getQ() goto block_0E8A; + + block_0E84: + goto block_132F; + + block_0E8A: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + /* global_address global_id=0x3C */ + spawn class_0A0C_slot_32(pid, 0x012C, 0x00000000); + suspend; + /* global_address global_id=0x3C */ + goto block_0F51; + + block_0F51: + class_0A1C_slot_21(deadGuy, n); + if Npc.isDead(nz, ny, nx, newType) goto block_0FA2; + + block_0F8E: + goto block_112B; + + block_0FA2: + if Npc.isDead(nz, ny, (nx - 16), newType) goto block_0FD1; + + block_0FBA: + goto block_112B; + + block_0FD1: + if Npc.isDead(nz, (ny - 16), nx, newType) goto block_1000; + + block_0FE9: + goto block_112B; + + block_1000: + if Npc.isDead(nz, (ny + 16), nx, newType) goto block_102F; + + block_1018: + goto block_112B; + + block_102F: + if Npc.isDead(nz, ny, (nx + 16), newType) goto block_105E; + + block_1047: + goto block_112B; + + block_105E: + if Npc.isDead(nz, ny, (nx - 32), newType) goto block_108D; + + block_1076: + goto block_112B; + + block_108D: + if Npc.isDead(nz, (ny - 32), nx, newType) goto block_10BC; + + block_10A5: + goto block_112B; + + block_10BC: + if Npc.isDead(nz, (ny + 32), nx, newType) goto block_10EB; + + block_10D4: + goto block_112B; + + block_10EB: + if Npc.isDead(nz, ny, (nx + 32), newType) goto block_111A; + + block_1103: + goto block_112B; + + block_111A: + + block_112B: + if flipIt goto block_1141; + + block_1133: + class_0A1E_slot_23(32, deadGuy); + + block_1141: + class_0A1C_slot_22(deadGuy, arg_06); + if Intrinsic006B() goto block_1299; + + block_116C: + if spillBlood goto block_1299; + + block_1174: + class_0A11_slot_20(arg_06); + if retval goto block_1299; + + block_1184: + class_0A0C_slot_20(100); + if (retval > 50) goto block_121B; + + block_119A: + counter = 0; + + block_11D0: + if (counter <= 9) goto block_1218; + + block_11D8: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_11D0; + + block_1218: + goto block_1299; + + block_121B: + counter = 10; + + block_1251: + if (counter <= 19) goto block_1299; + + block_1259: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_1251; + + block_1299: + if spillOil goto block_132F; + + block_12A1: + class_0A11_slot_20(arg_06); + if retval goto block_132F; + + block_12B1: + counter = 20; + + block_12E7: + if (counter <= 29) goto block_132F; + + block_12EF: + spawn class_0A0C_slot_32(pid, 15, 0x00000000); + suspend; + counter = (1 + counter); + goto block_12E7; + + block_132F: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/NPCDEATH/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/NPCDEATH/slot_21_slot_21.txt new file mode 100644 index 0000000..9d34ee1 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/NPCDEATH/slot_21_slot_21.txt @@ -0,0 +1,30 @@ +function npcdeath_slot_21() /* entry=398 class_id=0x0A1C slot=0x21 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP+0Ah] type=0x24 */ + goods; /* [BP-02h] type=0x24 */ + + entry: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFE string_bytes=0x1 loop_type=0x4 */ + + block_1450: + if condition goto block_1495; + + block_1453: + if (Intrinsic003C(goods) != 10) goto block_1479; + + block_146B: + goto block_1491; + + block_1479: + + block_1491: + /* loopnext */ + goto block_1450; + + block_1495: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/NPCDEATH/slot_22_slot_22.txt b/USECODE/EUSECODE_extracted/pseudocode/NPCDEATH/slot_22_slot_22.txt new file mode 100644 index 0000000..aeb020a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/NPCDEATH/slot_22_slot_22.txt @@ -0,0 +1,331 @@ +function npcdeath_slot_22() /* entry=398 class_id=0x0A1C slot=0x22 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + counter, /* [BP-04h] type=0x69 */ + skill, /* [BP-06h] type=0x69 */ + sLevel, /* [BP-08h] type=0x69 */ + wimp, /* [BP-09h] type=0x62 */ + fullOfShit; /* [BP-0Ah] type=0x62 */ + + entry: + sLevel = Intrinsic0029(); + if (sLevel != 1) goto block_14F2; + + block_14E8: + skill = 50; + goto block_151D; + + block_14F2: + if (sLevel != 2) goto block_1504; + + block_14FA: + skill = 40; + goto block_151D; + + block_1504: + if (sLevel != 3) goto block_1516; + + block_150C: + skill = 20; + goto block_151D; + + block_1516: + skill = 40; + + block_151D: + if (((Intrinsic0016(arg_06) != 0x02FD) || (Intrinsic0016(arg_06) != 0x0319)) || (Intrinsic0016(arg_06) != 0x0384)) goto block_16A3; + + block_1549: + if (Intrinsic00DA(100, 0) > 98) goto block_157D; + + block_1560: + + block_157D: + if (Intrinsic00DA(100, 0) > 98) goto block_15B1; + + block_1594: + + block_15B1: + if (Intrinsic00DA(100, 0) > (80 - skill)) goto block_15EB; + + block_15CB: + goto block_162D; + + block_15EB: + if ((Intrinsic00DA(100, 0) > (80 - skill)) && (global[0x001F] > 1)) goto block_162D; + + block_160D: + goto block_162D; + + block_162D: + if (sLevel < 3) goto block_166F; + + block_163B: + if (Intrinsic00DA(100, 0) > 80) goto block_166C; + + block_164F: + + block_166C: + goto block_16A0; + + block_166F: + if (Intrinsic00DA(100, 0) > 98) goto block_16A0; + + block_1683: + + block_16A0: + goto block_1D76; + + block_16A3: + if (Intrinsic0016(arg_06) != 0x0384) goto block_17AD; + + block_16B3: + if ((Intrinsic00DA(100, 1) > (90 - skill)) && (global[0x001F] > 2)) goto block_16F5; + + block_16D5: + goto block_1737; + + block_16F5: + if ((Intrinsic00DA(100, 1) > (80 - skill)) && (global[0x001F] > 2)) goto block_1737; + + block_1717: + goto block_1737; + + block_1737: + if (sLevel < 3) goto block_1779; + + block_1745: + if (Intrinsic00DA(100, 0) > 90) goto block_1776; + + block_1759: + + block_1776: + goto block_17AA; + + block_1779: + if (Intrinsic00DA(100, 0) > 98) goto block_17AA; + + block_178D: + + block_17AA: + goto block_1D76; + + block_17AD: + if ((Intrinsic0016(arg_06) != 0x0371) || (Intrinsic0016(arg_06) != 0x04D1)) goto block_1957; + + block_17CB: + if (Intrinsic00DA(100, 0) > 98) goto block_17FF; + + block_17E2: + + block_17FF: + if (Intrinsic00DA(100, 0) > 98) goto block_1833; + + block_1816: + + block_1833: + if (Intrinsic00DA(100, 1) > (70 - skill)) goto block_186D; + + block_184D: + goto block_18A7; + + block_186D: + if (Intrinsic00DA(100, 1) > (70 - skill)) goto block_18A7; + + block_1887: + goto block_18A7; + + block_18A7: + if (Intrinsic00DA(100, 1) > (90 - skill)) goto block_18DE; + + block_18C1: + + block_18DE: + if (sLevel < 3) goto block_1920; + + block_18EC: + if (Intrinsic00DA(100, 0) > 80) goto block_191D; + + block_1900: + + block_191D: + goto block_1954; + + block_1920: + if (Intrinsic00DA(100, 0) > 98) goto block_1954; + + block_1934: + goto block_1954; + + block_1954: + goto block_1D76; + + block_1957: + if (Intrinsic0016(arg_06) != 0x04D1) goto block_19A1; + + block_1967: + if (Intrinsic00DA(100, 0) < (70 - skill)) goto block_199E; + + block_1981: + + block_199E: + goto block_1D76; + + block_19A1: + if (Intrinsic0016(arg_06) != 0x0528) goto block_1A3C; + + block_19B1: + if (Intrinsic00DA(100, 0) > 75) goto block_19E5; + + block_19C8: + + block_19E5: + if (Intrinsic00DA(100, 0) > 50) goto block_1A1C; + + block_19FC: + goto block_1A39; + + block_1A1C: + + block_1A39: + goto block_1D76; + + block_1A3C: + if (Intrinsic0016(arg_06) != 0x01B4) goto block_1C31; + + block_1A4C: + if (Intrinsic00DA(100, 0) > 98) goto block_1A80; + + block_1A63: + + block_1A80: + if (Intrinsic00DA(100, 0) > 98) goto block_1AB4; + + block_1A97: + + block_1AB4: + if (Intrinsic00DA(100, 1) > 90) goto block_1AE5; + + block_1AC8: + + block_1AE5: + if (Intrinsic00DA(100, 1) > 95) goto block_1B19; + + block_1AF9: + goto block_1B50; + + block_1B19: + if (Intrinsic00DA(100, 1) > (85 - skill)) goto block_1B50; + + block_1B30: + goto block_1B50; + + block_1B50: + if (Intrinsic00DA(100, 1) > 95) goto block_1B84; + + block_1B64: + goto block_1BBB; + + block_1B84: + if (Intrinsic00DA(100, 1) > (80 - skill)) goto block_1BBB; + + block_1B9B: + goto block_1BBB; + + block_1BBB: + if (sLevel < 3) goto block_1BFD; + + block_1BC9: + if (Intrinsic00DA(100, 0) > 80) goto block_1BFA; + + block_1BDD: + + block_1BFA: + goto block_1C2E; + + block_1BFD: + if (Intrinsic00DA(100, 0) > 98) goto block_1C2E; + + block_1C11: + + block_1C2E: + goto block_1D76; + + block_1C31: + if (Intrinsic0016(arg_06) != 0x02DF) goto block_1CAE; + + block_1C41: + if (Intrinsic00DA(100, 0) > 66) goto block_1CA5; + + block_1C88: + + block_1CA5: + goto block_1E80; + + block_1CAB: + goto block_1D76; + + block_1CAE: + if (((((((Intrinsic0016(arg_06) != 0x045D) || (Intrinsic0016(arg_06) != 0x0338)) || (Intrinsic0016(arg_06) != 0x02CB)) || (Intrinsic0016(arg_06) != 0x04E6)) || (Intrinsic0016(arg_06) != 0x03AC)) || (Intrinsic0016(arg_06) != 0x0385)) || (Intrinsic0016(arg_06) != 0x0383)) goto block_1D2A; + + block_1D12: + class_0A1E_slot_23(0x1000, arg_06); + goto block_1E80; + + block_1D27: + goto block_1D76; + + block_1D2A: + /* global_address global_id=0x3C */ + if (Intrinsic007C((Intrinsic00DA(100, 0) > (60 - skill))) < 50) goto block_1D6F; + + block_1D52: + + block_1D6F: + wimp = 1; + + block_1D76: + class_0A11_slot_2B(arg_06); + if (!retval) goto block_1E48; + + block_1D8A: + if ((Item.hurl() - global[0x001D]) < 0x1194) goto block_1E15; + + block_1DA1: + if wimp goto block_1DDF; + + block_1DA9: + goto block_1E12; + + block_1DDF: + + block_1E12: + goto block_1E48; + + block_1E15: + + block_1E48: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFE string_bytes=0x1 loop_type=0x4 */ + + block_1E58: + if condition goto block_1E66; + + block_1E5B: + fullOfShit = 1; + /* loopnext */ + goto block_1E58; + + block_1E66: + if (!fullOfShit) goto block_1E80; + + block_1E71: + class_0A1E_slot_23(0x1000, arg_06); + + block_1E80: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/NPCTRIG/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/NPCTRIG/slot_0A_equip.txt new file mode 100644 index 0000000..9364ff8 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/NPCTRIG/slot_0A_equip.txt @@ -0,0 +1,37 @@ +function npctrig_equip() /* entry=191 class_id=0x0363 slot=0x0A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + event, /* [BP+0Ah] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + item2, /* [BP-04h] type=0x24 */ + n; /* [BP-06h] type=0x24 */ + + set_info(0x0211, *(arg_06)); + process_exclude(); + if ((Item.getStatus(arg_06) & 0x1000)) { + class_0A1E_slot_23(0x1000, arg_06); + if (event == 1) { + spawn class_0363_slot_20(pid, 0x02FD, arg_06); + suspend; + } + else if (event == 2) { + spawn class_0363_slot_20(pid, 0x0384, arg_06); + suspend; + } + else if (event == 3) { + spawn class_0363_slot_20(pid, 0x0371, arg_06); + suspend; + } + else if (event == 4) { + spawn class_0363_slot_20(pid, 0x04D1, arg_06); + suspend; + } + else if (event == 5) { + spawn class_0363_slot_20(pid, 0x01B4, arg_06); + suspend; + } + class_0A1E_slot_24(0x1000, arg_06); + } + return; +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/NPCTRIG/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/NPCTRIG/slot_20_slot_20.txt new file mode 100644 index 0000000..fc944e6 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/NPCTRIG/slot_20_slot_20.txt @@ -0,0 +1,42 @@ +function npctrig_slot_20() /* entry=191 class_id=0x0363 slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + typeNpc, /* [BP+0Ah] type=0x69 */ + n, /* [BP-02h] type=0x24 */ + item, /* [BP-04h] type=0x24 */ + item2; /* [BP-06h] type=0x24 */ + + entry: + set_info(0x0001, *(arg_06)); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_0283: + if condition goto block_0291; + + block_0286: + item2 = item; + /* loopnext */ + goto block_0283; + + block_0291: + if item2 goto block_0370; + + block_029B: + spawn class_0A11_slot_23(pid, n); + suspend; + if (Item.pop() != 0) goto block_0361; + + block_034E: + goto block_0370; + + block_0361: + + block_0370: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/NPC_ONLY/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/NPC_ONLY/slot_06_gotHit.txt new file mode 100644 index 0000000..6459bf4 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/NPC_ONLY/slot_06_gotHit.txt @@ -0,0 +1,69 @@ +function npc_only_gotHit() /* entry=194 class_id=0x0366 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + l, /* [BP-04h] type=0x69 */ + link; /* [BP-06h] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + if ((ref > 0x0100) || (ref != Item.pop())) goto block_0109; + + block_0103: + goto block_02B0; + + block_0109: + item = ref; + l = Item.getQLo(item); + link = Intrinsic00D9(arg_06); + if (Item.getQLo(item) != Intrinsic00D9(arg_06)) goto block_02B0; + + block_0148: + if (Item.getMapNum(arg_06) != 0) goto block_02B0; + + block_015A: + if ((Intrinsic0057(arg_06) != 0) || (Item.isInNpc(*(arg_06), item) != 0)) goto block_0186; + + block_0180: + goto block_02B0; + + block_0186: + if (link != 0x00FE) goto block_01A3; + + block_0195: + + block_01A3: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + + block_01FD: + if 1 goto block_02B0; + + block_0205: + if ((Intrinsic0057(arg_06) != 0) && (Item.isNpc(item) != 1)) goto block_024D; + + block_0224: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_02AD; + + block_024D: + spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); + suspend; + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + goto block_02B0; + + block_02AD: + goto block_01FD; + + block_02B0: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/OBSERVER/slot_0E_calledFromAnim.txt b/USECODE/EUSECODE_extracted/pseudocode/OBSERVER/slot_0E_calledFromAnim.txt new file mode 100644 index 0000000..ab4a0f0 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/OBSERVER/slot_0E_calledFromAnim.txt @@ -0,0 +1,8 @@ +function observer_calledFromAnim() /* entry=183 class_id=0x033C slot=0x0E */ +{ + entry: + set_info(0x021A, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/OFFWORK/slot_0E_calledFromAnim.txt b/USECODE/EUSECODE_extracted/pseudocode/OFFWORK/slot_0E_calledFromAnim.txt new file mode 100644 index 0000000..40fe1aa --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/OFFWORK/slot_0E_calledFromAnim.txt @@ -0,0 +1,9 @@ +function offwork_calledFromAnim() /* entry=166 class_id=0x02F7 slot=0x0E */ +{ + entry: + set_info(0x021A, *(arg_06)); + process_exclude(); + spawn class_0A1C_slot_20(Item.getQLo(arg_06), *(arg_06), arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ONCEEGG/slot_07_hatch.txt b/USECODE/EUSECODE_extracted/pseudocode/ONCEEGG/slot_07_hatch.txt new file mode 100644 index 0000000..8cbfd85 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ONCEEGG/slot_07_hatch.txt @@ -0,0 +1,19 @@ +function onceegg_hatch() /* entry=341 class_id=0x0901 slot=0x07 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + id, /* [BP-04h] type=0x69 */ + qlo; /* [BP-06h] type=0x69 */ + + entry: + set_info(0x0210, *(arg_06)); + process_exclude(); + id = Intrinsic003F(arg_06); + item = *(arg_06); + qlo = Intrinsic00D9(item); + spawn class_0A18_slot_20(pid, (0 + 0x0080), item, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ONCEEGG/slot_15_unhatch.txt b/USECODE/EUSECODE_extracted/pseudocode/ONCEEGG/slot_15_unhatch.txt new file mode 100644 index 0000000..d4cc23a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ONCEEGG/slot_15_unhatch.txt @@ -0,0 +1,19 @@ +function onceegg_unhatch() /* entry=341 class_id=0x0901 slot=0x15 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + id, /* [BP-04h] type=0x69 */ + qlo; /* [BP-06h] type=0x69 */ + + entry: + set_info(0x0239, *(arg_06)); + process_exclude(); + id = Intrinsic003F(arg_06); + item = *(arg_06); + qlo = Intrinsic00D9(item); + spawn class_0A18_slot_20(pid, (1 + 0x0080), item, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/OPC/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/OPC/slot_01_use.txt new file mode 100644 index 0000000..2a85315 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/OPC/slot_01_use.txt @@ -0,0 +1,93 @@ +function opc_use() /* entry=220 class_id=0x03BC slot=0x01 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + class_0A1E_slot_23(0x1000, arg_06); + /* global_address global_id=0x3C */ + if (Item.getType() != 21) goto block_02AB; + + block_0110: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + /* pop_global global_id=0x2A size=0x1 */ + spawn class_0A0C_slot_32(1, pid, 20, 0x00000000); + suspend; + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + spawn class_0A0C_slot_32(pid, 0x00B4, 0x00000000); + suspend; + /* global_address global_id=0x3C */ + if (!Kernel.resetRef()) goto block_0244; + + block_0217: + spawn class_0A0C_slot_26(pid, "11g", 0x00000000); + /* free_stack_string value_u8=0x0 target=[SP+00h] */ + suspend; + + block_0244: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0263: + if condition goto block_02A6; + + block_0266: + if (Intrinsic00D9(item) != 99) goto block_02A2; + + block_027B: + + block_02A2: + /* loopnext */ + goto block_0263; + + block_02A6: + goto block_03DB; + + block_02AB: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + /* pop_global global_id=0x2B size=0x1 */ + spawn class_0A0C_slot_32(1, pid, 20, 0x00000000); + suspend; + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_038B: + if condition goto block_03CE; + + block_038E: + if (Intrinsic00D9(item) != 2) goto block_03CA; + + block_03A3: + + block_03CA: + /* loopnext */ + goto block_038B; + + block_03CE: + + block_03DB: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/PANELEW/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/PANELEW/slot_01_use.txt new file mode 100644 index 0000000..6102374 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/PANELEW/slot_01_use.txt @@ -0,0 +1,22 @@ +function panelew_use() /* entry=32 class_id=0x00A2 slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if Item.getFrame(arg_06) goto block_0100; + + block_00FA: + goto block_014A; + + block_0100: + if (Item.getMapNum(arg_06) != 0) goto block_014A; + + block_0112: + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + goto block_014A; + + block_014A: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/PANELNS/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/PANELNS/slot_01_use.txt new file mode 100644 index 0000000..b64aa16 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/PANELNS/slot_01_use.txt @@ -0,0 +1,22 @@ +function panelns_use() /* entry=31 class_id=0x00A1 slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if Item.getFrame(arg_06) goto block_0100; + + block_00FA: + goto block_014A; + + block_0100: + if (Item.getMapNum(arg_06) != 0) goto block_014A; + + block_0112: + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + goto block_014A; + + block_014A: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/PEPSIEW/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/PEPSIEW/slot_01_use.txt new file mode 100644 index 0000000..817dad7 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/PEPSIEW/slot_01_use.txt @@ -0,0 +1,60 @@ +function pepsiew_use() /* entry=26 class_id=0x0094 slot=0x01 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + x, /* [BP-04h] type=0x69 */ + y, /* [BP-06h] type=0x69 */ + z, /* [BP-08h] type=0x69 */ + wp; /* [BP-0Dh] type=0x24 */ + + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + x = 1; + y = 0; + wp = (Intrinsic0013(arg_06) + 32); + local_0B = Item.legal_create(arg_06); + local_09 = (Item.getZ(arg_06) + 32); + if (Intrinsic00DA(100, 0) > 50) goto block_01E4; + + block_0140: + if Item.getSurfaceWeight(wp, 0, 0x0343, item) goto block_01E1; + + block_0156: + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_01A0: + if condition goto block_01DF; + + block_01A3: + if (Item.getStatus(item) & 0x0080) goto block_01DB; + + block_01B6: + spawn class_0A1E_slot_28(pid, 1, 0, item); + suspend; + + block_01DB: + /* loopnext */ + goto block_01A0; + + block_01DF: + + block_01E1: + goto block_0240; + + block_01E4: + if Item.getSurfaceWeight(wp, 1, 0x0579, item) goto block_0240; + + block_01FA: + suspend; + + block_0240: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/PEPSIEW/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/PEPSIEW/slot_06_gotHit.txt new file mode 100644 index 0000000..a5ddd77 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/PEPSIEW/slot_06_gotHit.txt @@ -0,0 +1,21 @@ +function pepsiew_gotHit() /* entry=26 class_id=0x0094 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if retval goto block_02DE; + + block_029E: + spawn class_0A1E_slot_28(pid, 0, 1, arg_06); + suspend; + + block_02DE: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/PEPSINS/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/PEPSINS/slot_01_use.txt new file mode 100644 index 0000000..2e840b5 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/PEPSINS/slot_01_use.txt @@ -0,0 +1,60 @@ +function pepsins_use() /* entry=30 class_id=0x009A slot=0x01 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + x, /* [BP-04h] type=0x69 */ + y, /* [BP-06h] type=0x69 */ + z, /* [BP-08h] type=0x69 */ + wp; /* [BP-0Dh] type=0x24 */ + + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + x = 0; + y = 1; + wp = Intrinsic0013(arg_06); + local_0B = (Item.legal_create(arg_06) + 32); + local_09 = (Item.getZ(arg_06) + 32); + if (Intrinsic00DA(100, 0) > 50) goto block_01E4; + + block_0140: + if Item.getSurfaceWeight(wp, 0, 0x0343, item) goto block_01E1; + + block_0156: + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_01A0: + if condition goto block_01DF; + + block_01A3: + if (Item.getStatus(item) & 0x0080) goto block_01DB; + + block_01B6: + spawn class_0A1E_slot_28(pid, 1, 0, item); + suspend; + + block_01DB: + /* loopnext */ + goto block_01A0; + + block_01DF: + + block_01E1: + goto block_0240; + + block_01E4: + if Item.getSurfaceWeight(wp, 0, 0x0579, item) goto block_0240; + + block_01FA: + suspend; + + block_0240: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/PEPSINS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/PEPSINS/slot_06_gotHit.txt new file mode 100644 index 0000000..4bb9770 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/PEPSINS/slot_06_gotHit.txt @@ -0,0 +1,21 @@ +function pepsins_gotHit() /* entry=30 class_id=0x009A slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if retval goto block_02DE; + + block_029E: + spawn class_0A1E_slot_28(pid, 0, 1, arg_06); + suspend; + + block_02DE: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/PHIR/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/PHIR/slot_01_use.txt new file mode 100644 index 0000000..472cee4 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/PHIR/slot_01_use.txt @@ -0,0 +1,24 @@ +function phir_use() /* entry=295 class_id=0x04FF slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if Intrinsic00D9(arg_06) goto block_01A0; + + block_00FA: + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + if (global[0x001F] != 12) goto block_01A0; + + block_0131: + class_0A1E_slot_23(0x1000, arg_06); + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + spawn class_0A0C_slot_26(pid, "12e", 0x00000000); + /* free_stack_string value_u8=0x0 target=[SP+00h] */ + suspend; + + block_01A0: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/PIT/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/PIT/slot_06_gotHit.txt new file mode 100644 index 0000000..039c0c5 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/PIT/slot_06_gotHit.txt @@ -0,0 +1,46 @@ +function pit_gotHit() /* entry=192 class_id=0x0364 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + n; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + item = ref; + class_0A0C_slot_2C(vel, ref); + if retval goto block_010A; + + block_0104: + goto block_01CA; + + block_010A: + if Item.isNpc(item) goto block_01BF; + + block_0119: + n = ref; + if (n != 1) goto block_018B; + + block_012B: + spawn class_0A0C_slot_21(pid, 98, 0x00000000); + suspend; + goto block_01CA; + + block_0188: + goto block_01BC; + + block_018B: + goto block_01CA; + + block_01BC: + goto block_01CA; + + block_01BF: + + block_01CA: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/PLASMA/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/PLASMA/slot_01_use.txt new file mode 100644 index 0000000..a463102 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/PLASMA/slot_01_use.txt @@ -0,0 +1,8 @@ +function plasma_use() /* entry=306 class_id=0x052F slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/PODBOY/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/PODBOY/slot_06_gotHit.txt new file mode 100644 index 0000000..afe38de --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/PODBOY/slot_06_gotHit.txt @@ -0,0 +1,55 @@ +function podboy_gotHit() /* entry=129 class_id=0x022D slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + fram, /* [BP-02h] type=0x69 */ + counter, /* [BP-04h] type=0x69 */ + item; /* [BP-06h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + if (Item.getFrame(arg_06) != 1) goto block_0222; + + block_0218: + fram = 22; + goto block_025B; + + block_0222: + if (Item.getFrame(arg_06) != 2) goto block_023B; + + block_0231: + fram = 11; + goto block_025B; + + block_023B: + if (Item.getFrame(arg_06) != 3) goto block_0254; + + block_024A: + fram = 0; + goto block_025B; + + block_0254: + fram = 34; + + block_025B: + spawn class_022D_slot_20(*(arg_06), 0x00000000); + spawn class_0A1E_slot_28(pid, 0, 1, arg_06); + suspend; + counter = 0; + + block_02FA: + if (counter <= 10) goto block_0348; + + block_0302: + spawn class_0A0C_slot_32(pid, (15 - counter), 0x00000000); + suspend; + counter = (1 + counter); + goto block_02FA; + + block_0348: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/PODBOY/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/PODBOY/slot_20_slot_20.txt new file mode 100644 index 0000000..8b6377d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/PODBOY/slot_20_slot_20.txt @@ -0,0 +1,36 @@ +function podboy_slot_20() /* entry=129 class_id=0x022D slot=0x20 */ +{ + var + ref, /* [BP+06h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + spooge, /* [BP-04h] type=0x24 */ + fram, /* [BP-06h] type=0x69 */ + counter; /* [BP-08h] type=0x69 */ + + entry: + set_info(1, 0); + item = ref; + fram = (Intrinsic00DA(3, 0) * 8); + counter = 0; + + block_0150: + if (counter <= 5) goto block_01BB; + + block_0158: + + block_0173: + if Item.touch(0x0094, spooge) goto block_01AE; + + block_0185: + spawn class_0A0C_slot_32(pid, 4, 0x00000000); + suspend; + goto block_0173; + + block_01AE: + counter = (1 + counter); + goto block_0150; + + block_01BB: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/PPLATE/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/PPLATE/slot_06_gotHit.txt new file mode 100644 index 0000000..da159ce --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/PPLATE/slot_06_gotHit.txt @@ -0,0 +1,59 @@ +function pplate_gotHit() /* entry=79 class_id=0x0198 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if retval goto block_0103; + + block_00FD: + goto block_0238; + + block_0103: + if (Item.getMapNum(arg_06) != 0) goto block_0218; + + block_0115: + item = ref; + if ((Intrinsic0057(arg_06) != 0) || (Item.use(*(arg_06), item) != 0)) goto block_0148; + + block_0142: + goto block_0238; + + block_0148: + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + + block_018A: + if 1 goto block_0218; + + block_0192: + if (Intrinsic0057(arg_06) != 0) goto block_01CD; + + block_01A4: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0215; + + block_01CD: + spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); + suspend; + goto block_0238; + + block_0215: + goto block_018A; + + block_0218: + if (!Item.getFrame(arg_06)) goto block_0238; + + block_022B: + + block_0238: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/PPLATE2/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/PPLATE2/slot_06_gotHit.txt new file mode 100644 index 0000000..2817785 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/PPLATE2/slot_06_gotHit.txt @@ -0,0 +1,82 @@ +function pplate2_gotHit() /* entry=80 class_id=0x0199 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + f, /* [BP-02h] type=0x69 */ + item; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if retval goto block_0212; + + block_020C: + goto block_03B3; + + block_0212: + f = Item.getFrame(arg_06); + if (f & 1) goto block_0231; + + block_022B: + goto block_03B3; + + block_0231: + item = ref; + if ((Intrinsic0057(arg_06) != 0) || (Item.use(*(arg_06), item) != 0)) goto block_0264; + + block_025E: + goto block_03B3; + + block_0264: + if (Item.getMapNum(arg_06) != 0) goto block_034C; + + block_0286: + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + + block_02BB: + if 1 goto block_0349; + + block_02C3: + if (Intrinsic0057(arg_06) != 0) goto block_02FE; + + block_02D5: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0346; + + block_02FE: + spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); + suspend; + goto block_03B3; + + block_0346: + goto block_02BB; + + block_0349: + goto block_03B3; + + block_034C: + if 1 goto block_03B3; + + block_0354: + if (Intrinsic0057(arg_06) != 0) goto block_038F; + + block_0366: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_03B0; + + block_038F: + goto block_03B3; + + block_03B0: + goto block_034C; + + block_03B3: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/PPLATE2/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/PPLATE2/slot_0A_equip.txt new file mode 100644 index 0000000..af77847 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/PPLATE2/slot_0A_equip.txt @@ -0,0 +1,30 @@ +function pplate2_equip() /* entry=80 class_id=0x0199 slot=0x0A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + var, /* [BP+0Ah] type=0x69 */ + ff; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + ff = Item.getFrame(arg_06); + if (ff & 1) goto block_0164; + + block_0104: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); + suspend; + goto block_01C1; + + block_0164: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + + block_01C1: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/PRISBENC/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/PRISBENC/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..ebf85ea --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/PRISBENC/slot_0F_enterFastArea.txt @@ -0,0 +1,83 @@ +function prisbenc_enterFastArea() /* entry=159 class_id=0x02E5 slot=0x0F */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + spawn class_0A0C_slot_32(pid, 100, 0x00000000); + suspend; + + block_0111: + suspend; + class_0A0C_slot_20(pid, 100, 100); + spawn class_0A0C_slot_32(retval, 0x00000000); + suspend; + if (Item.getFrame(arg_06) < 6) goto block_0240; + + block_0164: + counter = Item.getFrame(arg_06); + + block_0172: + if (counter <= 5) goto block_01BA; + + block_017A: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0172; + + block_01BA: + class_0A0C_slot_20(pid, 100, 100); + spawn class_0A0C_slot_32(retval, 0x00000000); + suspend; + counter = 0; + + block_01F2: + if (counter <= 5) goto block_023D; + + block_01FA: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_01F2; + + block_023D: + goto block_0319; + + block_0240: + counter = Item.getFrame(arg_06); + + block_024E: + if (counter <= 12) goto block_0296; + + block_0256: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_024E; + + block_0296: + class_0A0C_slot_20(pid, 100, 100); + spawn class_0A0C_slot_32(retval, 0x00000000); + suspend; + counter = 0; + + block_02CE: + if (counter <= 5) goto block_0319; + + block_02D6: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_02CE; + + block_0319: + goto block_0111; + + block_031C: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/PRISBENC/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/PRISBENC/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..2ca90b6 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/PRISBENC/slot_10_leaveFastArea.txt @@ -0,0 +1,9 @@ +function prisbenc_leaveFastArea() /* entry=159 class_id=0x02E5 slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + class_0A0C_slot_33(0x021B, *(arg_06)); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/PRISLEAN/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/PRISLEAN/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..8616447 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/PRISLEAN/slot_0F_enterFastArea.txt @@ -0,0 +1,83 @@ +function prislean_enterFastArea() /* entry=161 class_id=0x02E8 slot=0x0F */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + spawn class_0A0C_slot_32(pid, 100, 0x00000000); + suspend; + + block_0111: + suspend; + class_0A0C_slot_20(pid, 100, 100); + spawn class_0A0C_slot_32(retval, 0x00000000); + suspend; + if (Item.getFrame(arg_06) < 6) goto block_0240; + + block_0164: + counter = Item.getFrame(arg_06); + + block_0172: + if (counter <= 5) goto block_01BA; + + block_017A: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0172; + + block_01BA: + class_0A0C_slot_20(pid, 100, 100); + spawn class_0A0C_slot_32(retval, 0x00000000); + suspend; + counter = 0; + + block_01F2: + if (counter <= 5) goto block_023D; + + block_01FA: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_01F2; + + block_023D: + goto block_0319; + + block_0240: + counter = Item.getFrame(arg_06); + + block_024E: + if (counter <= 12) goto block_0296; + + block_0256: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_024E; + + block_0296: + class_0A0C_slot_20(pid, 100, 100); + spawn class_0A0C_slot_32(retval, 0x00000000); + suspend; + counter = 0; + + block_02CE: + if (counter <= 5) goto block_0319; + + block_02D6: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_02CE; + + block_0319: + goto block_0111; + + block_031C: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/PRISLEAN/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/PRISLEAN/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..54553c8 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/PRISLEAN/slot_10_leaveFastArea.txt @@ -0,0 +1,9 @@ +function prislean_leaveFastArea() /* entry=161 class_id=0x02E8 slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + class_0A0C_slot_33(0x021B, *(arg_06)); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/PRISSIT/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/PRISSIT/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..138dc96 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/PRISSIT/slot_0F_enterFastArea.txt @@ -0,0 +1,83 @@ +function prissit_enterFastArea() /* entry=160 class_id=0x02E7 slot=0x0F */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + spawn class_0A0C_slot_32(pid, 100, 0x00000000); + suspend; + + block_0111: + suspend; + class_0A0C_slot_20(pid, 100, 100); + spawn class_0A0C_slot_32(retval, 0x00000000); + suspend; + if (Item.getFrame(arg_06) < 6) goto block_0240; + + block_0164: + counter = Item.getFrame(arg_06); + + block_0172: + if (counter <= 5) goto block_01BA; + + block_017A: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0172; + + block_01BA: + class_0A0C_slot_20(pid, 100, 100); + spawn class_0A0C_slot_32(retval, 0x00000000); + suspend; + counter = 0; + + block_01F2: + if (counter <= 5) goto block_023D; + + block_01FA: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_01F2; + + block_023D: + goto block_0319; + + block_0240: + counter = Item.getFrame(arg_06); + + block_024E: + if (counter <= 12) goto block_0296; + + block_0256: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_024E; + + block_0296: + class_0A0C_slot_20(pid, 100, 100); + spawn class_0A0C_slot_32(retval, 0x00000000); + suspend; + counter = 0; + + block_02CE: + if (counter <= 5) goto block_0319; + + block_02D6: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_02CE; + + block_0319: + goto block_0111; + + block_031C: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/PRISSIT/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/PRISSIT/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..733e6de --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/PRISSIT/slot_10_leaveFastArea.txt @@ -0,0 +1,9 @@ +function prissit_leaveFastArea() /* entry=160 class_id=0x02E7 slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + class_0A0C_slot_33(0x021B, *(arg_06)); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/RADAR/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/RADAR/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..47195be --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/RADAR/slot_0F_enterFastArea.txt @@ -0,0 +1,8 @@ +function radar_enterFastArea() /* entry=84 class_id=0x01A2 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/RDOOR1_E/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/RDOOR1_E/slot_06_gotHit.txt new file mode 100644 index 0000000..152d31f --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/RDOOR1_E/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function rdoor1_e_gotHit() /* entry=38 class_id=0x00C3 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A06_slot_23(pid, vel, ref, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/RDOOR1_E/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/RDOOR1_E/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..5ae0b6b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/RDOOR1_E/slot_0F_enterFastArea.txt @@ -0,0 +1,8 @@ +function rdoor1_e_enterFastArea() /* entry=38 class_id=0x00C3 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/RDOOR2_E/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/RDOOR2_E/slot_06_gotHit.txt new file mode 100644 index 0000000..5218395 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/RDOOR2_E/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function rdoor2_e_gotHit() /* entry=39 class_id=0x00C4 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A06_slot_23(pid, vel, ref, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/RDOOR2_E/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/RDOOR2_E/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..127cdda --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/RDOOR2_E/slot_0F_enterFastArea.txt @@ -0,0 +1,8 @@ +function rdoor2_e_enterFastArea() /* entry=39 class_id=0x00C4 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/RDOOR3_E/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/RDOOR3_E/slot_06_gotHit.txt new file mode 100644 index 0000000..e367ff3 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/RDOOR3_E/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function rdoor3_e_gotHit() /* entry=40 class_id=0x00C5 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A06_slot_23(pid, vel, ref, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/RDOOR3_E/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/RDOOR3_E/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..9eb5c22 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/RDOOR3_E/slot_0F_enterFastArea.txt @@ -0,0 +1,8 @@ +function rdoor3_e_enterFastArea() /* entry=40 class_id=0x00C5 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/RDOOR4_E/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/RDOOR4_E/slot_06_gotHit.txt new file mode 100644 index 0000000..a085910 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/RDOOR4_E/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function rdoor4_e_gotHit() /* entry=41 class_id=0x00C6 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A06_slot_23(pid, vel, ref, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/RDOOR4_E/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/RDOOR4_E/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..7e44ec4 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/RDOOR4_E/slot_0F_enterFastArea.txt @@ -0,0 +1,8 @@ +function rdoor4_e_enterFastArea() /* entry=41 class_id=0x00C6 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/RDOOR5_E/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/RDOOR5_E/slot_06_gotHit.txt new file mode 100644 index 0000000..1c17673 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/RDOOR5_E/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function rdoor5_e_gotHit() /* entry=42 class_id=0x00C7 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A06_slot_23(pid, vel, ref, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/RDOOR5_E/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/RDOOR5_E/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..41a760d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/RDOOR5_E/slot_0F_enterFastArea.txt @@ -0,0 +1,8 @@ +function rdoor5_e_enterFastArea() /* entry=42 class_id=0x00C7 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/RDOOR_E/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/RDOOR_E/slot_06_gotHit.txt new file mode 100644 index 0000000..76e4fa5 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/RDOOR_E/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function rdoor_e_gotHit() /* entry=14 class_id=0x007B slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A06_slot_23(pid, vel, ref, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/RDOOR_N/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/RDOOR_N/slot_06_gotHit.txt new file mode 100644 index 0000000..3873e3b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/RDOOR_N/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function rdoor_n_gotHit() /* entry=2 class_id=0x0005 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A06_slot_23(pid, vel, ref, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/README.md b/USECODE/EUSECODE_extracted/pseudocode/README.md new file mode 100644 index 0000000..8a248db --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/README.md @@ -0,0 +1,10 @@ +# USECODE pseudocode export + +Generated pseudocode files: 977 + +This folder is produced by tools/export_usecode_pseudocode.py using the current +pseudocode renderer in tools/poc_crusader_usecode_parser.py. + +- Each class gets its own subfolder. +- Each non-empty decoded slot body is emitted as one text file. +- index.tsv records the body range, op count, end reason, and file path. diff --git a/USECODE/EUSECODE_extracted/pseudocode/REBEL_TV/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/REBEL_TV/slot_01_use.txt new file mode 100644 index 0000000..d04a2dc --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/REBEL_TV/slot_01_use.txt @@ -0,0 +1,71 @@ +function rebel_tv_use() /* entry=226 class_id=0x03ED slot=0x01 */ +{ + set_info(0x0207, *(arg_06)); + process_exclude(); + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + if (Item.getFrame(arg_06)) { + if (global[0x001F] == 2) { + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + } + else if (global[0x001F] == 3) { + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + } + else if (global[0x001F] == 4) { + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + } + else if (global[0x001F] == 5) { + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + } + else if (global[0x001F] == 6) { + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + } + else if (global[0x001F] == 7) { + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + } + else if (global[0x001F] == 8) { + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + } + else if (global[0x001F] == 9) { + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + } + else if (global[0x001F] == 10) { + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + } + else if (global[0x001F] == 11) { + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + } + else if (global[0x001F] == 12) { + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + } + else if (global[0x001F] == 13) { + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + } + return; + } + return; +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/REBSNOR/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/REBSNOR/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..5f5931a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/REBSNOR/slot_0F_enterFastArea.txt @@ -0,0 +1,58 @@ +function rebsnor_enterFastArea() /* entry=310 class_id=0x0544 slot=0x0F */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (global[0x001F] > 3) goto block_0222; + + block_00FB: + if (Intrinsic00DA(10, 1) > 5) goto block_0128; + + block_0112: + goto block_0222; + + block_0125: + goto block_0222; + + block_0128: + if 1 goto block_0222; + + block_0130: + counter = 0; + + block_0137: + if (counter <= 5) goto block_017F; + + block_013F: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0137; + + block_017F: + spawn class_0A0C_slot_32(pid, 0x012C, 0x00000000); + suspend; + counter = 0; + + block_01AD: + if (counter <= 5) goto block_01F8; + + block_01B5: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_01AD; + + block_01F8: + spawn class_0A0C_slot_32(pid, 0x00DC, 0x00000000); + suspend; + goto block_0128; + + block_0222: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/REBSNOR/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/REBSNOR/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..c8269ad --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/REBSNOR/slot_10_leaveFastArea.txt @@ -0,0 +1,9 @@ +function rebsnor_leaveFastArea() /* entry=310 class_id=0x0544 slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + class_0A0C_slot_33(*(arg_06), 0x021B); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/REBWORK/slot_04_cachein.txt b/USECODE/EUSECODE_extracted/pseudocode/REBWORK/slot_04_cachein.txt new file mode 100644 index 0000000..9e72c5a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/REBWORK/slot_04_cachein.txt @@ -0,0 +1,19 @@ +function rebwork_cachein() /* entry=311 class_id=0x0545 slot=0x04 */ +{ + entry: + set_info(0x0213, *(arg_06)); + process_exclude(); + if (global[0x001F] > 3) goto block_012F; + + block_00FB: + if (Intrinsic00DA(10, 1) > 5) goto block_0122; + + block_0112: + goto block_012F; + + block_0122: + + block_012F: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/REB_BOOT/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/REB_BOOT/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..fc2e62b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/REB_BOOT/slot_0F_enterFastArea.txt @@ -0,0 +1,46 @@ +function reb_boot_enterFastArea() /* entry=240 class_id=0x0444 slot=0x0F */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + + block_00EB: + suspend; + counter = 0; + + block_00FF: + if (counter <= 7) goto block_0147; + + block_0107: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_00FF; + + block_0147: + spawn class_0A0C_slot_32(pid, 120, 0x00000000); + suspend; + counter = 0; + + block_0174: + if (counter <= 7) goto block_01BF; + + block_017C: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0174; + + block_01BF: + spawn class_0A0C_slot_32(pid, 0x0190, 0x00000000); + suspend; + goto block_00EB; + + block_01E9: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/REB_COUP/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/REB_COUP/slot_0A_equip.txt new file mode 100644 index 0000000..ab9889a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/REB_COUP/slot_0A_equip.txt @@ -0,0 +1,55 @@ +function reb_coup_equip() /* entry=187 class_id=0x034D slot=0x0A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + val, /* [BP+0Ah] type=0x69 */ + counter; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + class_0A0C_slot_33(0x021B, *(arg_06)); + if val goto block_02D0; + + block_0249: + if (Item.getStatus(arg_06) & 0x1000) goto block_0268; + + block_0262: + goto block_033F; + + block_0268: + class_0A1E_slot_23(0x1000, arg_06); + counter = Item.getFrame(arg_06); + + block_0285: + if (counter <= 9) goto block_02CD; + + block_028D: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0285; + + block_02CD: + goto block_033F; + + block_02D0: + counter = 0; + + block_02D7: + if (counter <= 9) goto block_0322; + + block_02DF: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_02D7; + + block_0322: + class_0A1E_slot_24(0x1000, arg_06); + spawn class_034D_enterFastArea(arg_06); + + block_033F: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/REB_COUP/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/REB_COUP/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..6520886 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/REB_COUP/slot_0F_enterFastArea.txt @@ -0,0 +1,46 @@ +function reb_coup_enterFastArea() /* entry=187 class_id=0x034D slot=0x0F */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + + block_00EB: + suspend; + spawn class_0A0C_slot_32(Intrinsic00DA(pid, 60, 30), 0x00000000); + suspend; + counter = 0; + + block_012E: + if (counter <= 4) goto block_0176; + + block_0136: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_012E; + + block_0176: + spawn class_0A0C_slot_32(Intrinsic00DA(pid, 60, 30), 0x00000000); + suspend; + counter = 0; + + block_01AC: + if (counter <= 4) goto block_01F7; + + block_01B4: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_01AC; + + block_01F7: + goto block_00EB; + + block_01FA: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/REB_EGG/slot_04_cachein.txt b/USECODE/EUSECODE_extracted/pseudocode/REB_EGG/slot_04_cachein.txt new file mode 100644 index 0000000..670eb6a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/REB_EGG/slot_04_cachein.txt @@ -0,0 +1,15 @@ +function reb_egg_cachein() /* entry=347 class_id=0x0907 slot=0x04 */ +{ + entry: + set_info(0x0213, *(arg_06)); + process_exclude(); + if (!global[0x001F]) goto block_010A; + + block_00FC: + /* pop_global global_id=0x1F size=0x1 */ + + block_010A: + /* pop_global global_id=0x1F size=0x1 */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/REB_EGG/slot_07_hatch.txt b/USECODE/EUSECODE_extracted/pseudocode/REB_EGG/slot_07_hatch.txt new file mode 100644 index 0000000..d594ff1 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/REB_EGG/slot_07_hatch.txt @@ -0,0 +1,409 @@ +function reb_egg_hatch() /* entry=347 class_id=0x0907 slot=0x07 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + pad, /* [BP-04h] type=0x24 */ + n, /* [BP-06h] type=0x24 */ + door, /* [BP-08h] type=0x24 */ + moreVideo; /* [BP-09h] type=0x62 */ + + entry: + set_info(0x0210, *(arg_06)); + process_exclude(); + if (Intrinsic0070() != 0) goto block_01EC; + + block_01E6: + goto block_0F59; + + block_01EC: + if (global[0x001F] != 9) goto block_0271; + + block_020A: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + + block_0271: + if (global[0x001F] < 13) goto block_02BB; + + block_0281: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + + block_02BB: + set_info(1, 0); + if (global[0x001F] != 1) goto block_02DC; + + block_02D3: + /* pop_global global_id=0x1F size=0x1 */ + + block_02DC: + /* global_address global_id=0x3C */ + if (Item.getType() != 41) goto block_02FB; + + block_02F2: + /* pop_global global_id=0x1F size=0x1 */ + + block_02FB: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_031A: + if condition goto block_032C; + + block_031D: + /* loopnext */ + goto block_031A; + + block_032C: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_034D: + if condition goto block_0374; + + block_0350: + if (Intrinsic007E(item) != 1) goto block_0370; + + block_0365: + + block_0370: + /* loopnext */ + goto block_034D; + + block_0374: + if ((global[0x001F] > 3) && (global[0x001F] < 13)) goto block_0451; + + block_038E: + if (Intrinsic00DA(9, 0) > 5) goto block_03F6; + + block_03A5: + suspend; + goto block_044E; + + block_03F6: + + block_044E: + goto block_04A9; + + block_0451: + + block_04A9: + if ((global[0x001F] != 2) || (global[0x001F] != 5)) goto block_0556; + + block_04BB: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_04D9: + if condition goto block_04ED; + + block_04DC: + /* loopnext */ + goto block_04D9; + + block_04ED: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_050D: + if condition goto block_054A; + + block_0510: + /* loopnext */ + goto block_050D; + + block_054A: + moreVideo = 1; + goto block_0770; + + block_0556: + if ((global[0x001F] != 10) || (global[0x001F] != 11)) goto block_0656; + + block_0568: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0586: + if condition goto block_05C6; + + block_0589: + /* loopnext */ + goto block_0586; + + block_05C6: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_05E6: + if condition goto block_064A; + + block_05E9: + suspend; + /* loopnext */ + goto block_05E6; + + block_064A: + moreVideo = 1; + goto block_0770; + + block_0656: + if ((global[0x001F] != 12) || (global[0x001F] != 13)) goto block_06D8; + + block_0668: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0686: + if condition goto block_06D3; + + block_0689: + /* loopnext */ + goto block_0686; + + block_06D3: + goto block_0770; + + block_06D8: + if (global[0x001F] != 14) goto block_0770; + + block_06E2: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0700: + if condition goto block_0764; + + block_0703: + suspend; + /* loopnext */ + goto block_0700; + + block_0764: + moreVideo = 1; + goto block_0770; + + block_0770: + /* global_address global_id=0x3C */ + suspend; + spawn class_0A0C_slot_32(pid, 120, 0x00000000); + suspend; + /* global_address global_id=0x3C */ + spawn class_0A11_slot_23(pid); + suspend; + spawn class_0907_slot_20(pid, arg_06); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x45 */ + /* loop current_var=0xFE string_bytes=0xC loop_type=0x2 */ + + block_082C: + if condition goto block_0840; + + block_082F: + /* loopnext */ + goto block_082C; + + block_0840: + if (!moreVideo) goto block_08B0; + + block_084B: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0888: + if condition goto block_08AB; + + block_088B: + /* loopnext */ + goto block_0888; + + block_08AB: + goto block_0F59; + + block_08B0: + /* global_address global_id=0x3C */ + suspend; + /* global_address global_id=0x3C */ + suspend; + if (global[0x001F] != 2) goto block_0A0E; + + block_090A: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + suspend; + /* global_address global_id=0x3C */ + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_09AA: + if condition goto block_09CB; + + block_09AD: + /* loopnext */ + goto block_09AA; + + block_09CB: + suspend; + goto block_0F59; + + block_0A0E: + if (global[0x001F] != 5) goto block_0B7C; + + block_0A18: + if global[0x0023] goto block_0A52; + + block_0A22: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_0A7F; + + block_0A52: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + + block_0A7F: + suspend; + /* global_address global_id=0x3C */ + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0AF2: + if condition goto block_0B13; + + block_0AF5: + /* loopnext */ + goto block_0AF2; + + block_0B13: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + suspend; + goto block_0F59; + + block_0B7C: + if ((global[0x001F] != 10) || (global[0x001F] != 11)) goto block_0D23; + + block_0B8E: + if (global[0x001F] != 10) goto block_0BCF; + + block_0B9E: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_0BFD; + + block_0BCF: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + + block_0BFD: + spawn class_0A0C_slot_32(pid, 120, 0x00000000); + suspend; + suspend; + /* global_address global_id=0x3C */ + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0C99: + if condition goto block_0CBA; + + block_0C9C: + /* loopnext */ + goto block_0C99; + + block_0CBA: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + suspend; + goto block_0F59; + + block_0D23: + if (global[0x001F] != 14) goto block_0F59; + + block_0D2D: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + /* global_address global_id=0x3C */ + suspend; + /* global_address global_id=0x3C */ + suspend; + /* global_address global_id=0x3C */ + suspend; + /* global_address global_id=0x3C */ + suspend; + /* global_address global_id=0x3C */ + suspend; + spawn class_0A11_slot_22(pid, 4, 12, n); + suspend; + suspend; + spawn class_0A11_slot_24(pid, n); + suspend; + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0F21: + if condition goto block_0F42; + + block_0F24: + /* loopnext */ + goto block_0F21; + + block_0F42: + goto block_0F59; + + block_0F59: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/REB_EGG/slot_15_unhatch.txt b/USECODE/EUSECODE_extracted/pseudocode/REB_EGG/slot_15_unhatch.txt new file mode 100644 index 0000000..df3508c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/REB_EGG/slot_15_unhatch.txt @@ -0,0 +1,35 @@ +function reb_egg_unhatch() /* entry=347 class_id=0x0907 slot=0x15 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x0239, *(arg_06)); + process_exclude(); + /* global_address global_id=0x3C */ + if (Item.getType() != 41) goto block_019F; + + block_0158: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0176: + if condition goto block_019D; + + block_0179: + goto block_019F; + + block_0199: + /* loopnext */ + goto block_0176; + + block_019D: + + block_019F: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/REB_EGG/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/REB_EGG/slot_20_slot_20.txt new file mode 100644 index 0000000..ea8d3a9 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/REB_EGG/slot_20_slot_20.txt @@ -0,0 +1,54 @@ +function reb_egg_slot_20() /* entry=347 class_id=0x0907 slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + chest, /* [BP-02h] type=0x24 */ + phold, /* [BP-04h] type=0x24 */ + counter, /* [BP-06h] type=0x69 */ + counter2, /* [BP-08h] type=0x69 */ + x, /* [BP-0Ah] type=0x69 */ + y; /* [BP-0Ch] type=0x69 */ + + entry: + set_info(0x021B, 0); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0FCF: + if condition goto block_1068; + + block_0FD2: + x = (Intrinsic0013(chest) + 48); + y = (Item.legal_create(chest) + 48); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x4 */ + + block_1010: + if condition goto block_105C; + + block_1013: + x = (x - 4); + /* bit_not */ + counter = (1 + counter); + /* loopnext */ + goto block_1010; + + block_105C: + goto block_106A; + + block_1064: + /* loopnext */ + goto block_0FCF; + + block_1068: + + block_106A: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/REB_GAR/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/REB_GAR/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..5ad654c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/REB_GAR/slot_0F_enterFastArea.txt @@ -0,0 +1,50 @@ +function reb_gar_enterFastArea() /* entry=290 class_id=0x04EC slot=0x0F */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (Intrinsic00DA(10, 1) > 5) goto block_0178; + + block_0165: + goto block_02AE; + + block_0178: + suspend; + spawn class_0A0C_slot_32(Intrinsic00DA(pid, 0x00DC, 120), 0x00000000); + suspend; + counter = 1; + + block_01BC: + if (counter <= 7) goto block_020E; + + block_01C4: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_01BC; + + block_020E: + spawn class_0A0C_slot_32(Intrinsic00DA(pid, 0x00DC, 120), 0x00000000); + suspend; + counter = 1; + + block_0245: + if (counter <= 7) goto block_0297; + + block_024D: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0245; + + block_0297: + goto block_0178; + + block_02AE: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/REB_GAR/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/REB_GAR/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..ef92f92 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/REB_GAR/slot_10_leaveFastArea.txt @@ -0,0 +1,9 @@ +function reb_gar_leaveFastArea() /* entry=290 class_id=0x04EC slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + class_0A0C_slot_33(*(arg_06), 0x021B); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/REB_PAD/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/REB_PAD/slot_06_gotHit.txt new file mode 100644 index 0000000..09f5c6c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/REB_PAD/slot_06_gotHit.txt @@ -0,0 +1,25 @@ +function reb_pad_gotHit() /* entry=236 class_id=0x043D slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + ke, /* [BP+0Ch] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + pad, /* [BP-04h] type=0x24 */ + pad2; /* [BP-06h] type=0x24 */ + + set_info(0x020C, *(arg_06)); + process_exclude(); + item = ref; + pad = *(arg_06); + set_info(1, 0); + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + class_0A0C_slot_2C(ke, ref); + if (retval) { + if (((Intrinsic0070() != 1) || (!Item.isInNpc(*(arg_06), item))) || (Item.getNpcNum(arg_06) == 0)) { + } + return; + } + return; +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/REB_PAD/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/REB_PAD/slot_20_slot_20.txt new file mode 100644 index 0000000..0d90cf5 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/REB_PAD/slot_20_slot_20.txt @@ -0,0 +1,39 @@ +function reb_pad_slot_20() /* entry=236 class_id=0x043D slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + mapNum, /* [BP+0Ah] type=0x69 */ + eggNum; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(1, 0); + /* global_address global_id=0x3C */ + spawn class_0A11_slot_24(pid); + suspend; + suspend; + if (!(Item.getStatus(arg_06) & 0x1000)) goto block_049F; + + block_0480: + spawn class_043D_slot_21(pid, arg_06); + suspend; + + block_049F: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + suspend; + if (mapNum != 29) goto block_0505; + + block_04FF: + goto block_055F; + + block_0505: + /* global_address global_id=0x3C */ + suspend; + /* global_address global_id=0x3C */ + spawn class_0A11_slot_23(pid); + suspend; + + block_055F: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/REB_PAD/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/REB_PAD/slot_21_slot_21.txt new file mode 100644 index 0000000..580a44f --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/REB_PAD/slot_21_slot_21.txt @@ -0,0 +1,50 @@ +function reb_pad_slot_21() /* entry=236 class_id=0x043D slot=0x21 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + gun, /* [BP-02h] type=0x24 */ + phold, /* [BP-04h] type=0x24 */ + gunHold, /* [BP-06h] type=0x24 */ + counter, /* [BP-08h] type=0x69 */ + counter2; /* [BP-0Ah] type=0x69 */ + + entry: + set_info(1, 0); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_05CA: + if condition goto block_062C; + + block_05CD: + spawn class_0A0C_slot_31(pid, gun, 0x00000000); + suspend; + /* dword_to_word */ + gunHold = process_result; + counter = (1 + counter); + /* loopnext */ + goto block_05CA; + + block_062C: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_064C: + if condition goto block_0677; + + block_064F: + counter2 = (1 + counter2); + /* loopnext */ + goto block_064C; + + block_0677: + /* bit_not */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/RECHAGEW/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/RECHAGEW/slot_06_gotHit.txt new file mode 100644 index 0000000..0a40a81 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/RECHAGEW/slot_06_gotHit.txt @@ -0,0 +1,100 @@ +function rechagew_gotHit() /* entry=64 class_id=0x0158 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2B(vel, ref); + if (retval && (Item.getFrame(arg_06) < 4)) goto block_02A7; + + block_010D: + spawn class_0A1E_slot_27(pid, 100, vel, ref, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_0143; + + block_013D: + goto block_02A7; + + block_0143: + spawn class_0A1E_slot_28(pid, 0, 1, arg_06); + suspend; + class_0A0C_slot_33(0x0254, global[0x003C]); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0197: + if condition goto block_01FC; + + block_019A: + if (Item.getFrame(item) < 2) goto block_01C9; + + block_01AF: + goto block_01F8; + + block_01C9: + if (Item.getFrame(item) < 4) goto block_01F8; + + block_01DE: + goto block_01F8; + + block_01F8: + /* loopnext */ + goto block_0197; + + block_01FC: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_021C: + if condition goto block_0230; + + block_021F: + /* loopnext */ + goto block_021C; + + block_0230: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0250: + if condition goto block_0264; + + block_0253: + /* loopnext */ + goto block_0250; + + block_0264: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0284: + if condition goto block_0298; + + block_0287: + /* loopnext */ + goto block_0284; + + block_0298: + + block_02A7: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/RECHAGNS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/RECHAGNS/slot_06_gotHit.txt new file mode 100644 index 0000000..ea02b4e --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/RECHAGNS/slot_06_gotHit.txt @@ -0,0 +1,100 @@ +function rechagns_gotHit() /* entry=55 class_id=0x0136 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2B(vel, ref); + if (retval && (Item.getFrame(arg_06) < 4)) goto block_02A7; + + block_010D: + spawn class_0A1E_slot_27(pid, 100, vel, ref, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_0143; + + block_013D: + goto block_02A7; + + block_0143: + spawn class_0A1E_slot_28(pid, 0, 1, arg_06); + suspend; + class_0A0C_slot_33(0x0254, global[0x003C]); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0197: + if condition goto block_01FC; + + block_019A: + if (Item.getFrame(item) < 2) goto block_01C9; + + block_01AF: + goto block_01F8; + + block_01C9: + if (Item.getFrame(item) < 4) goto block_01F8; + + block_01DE: + goto block_01F8; + + block_01F8: + /* loopnext */ + goto block_0197; + + block_01FC: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_021C: + if condition goto block_0230; + + block_021F: + /* loopnext */ + goto block_021C; + + block_0230: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0250: + if condition goto block_0264; + + block_0253: + /* loopnext */ + goto block_0250; + + block_0264: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0284: + if condition goto block_0298; + + block_0287: + /* loopnext */ + goto block_0284; + + block_0298: + + block_02A7: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/RECHFLEW/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/RECHFLEW/slot_06_gotHit.txt new file mode 100644 index 0000000..5f9b9d0 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/RECHFLEW/slot_06_gotHit.txt @@ -0,0 +1,90 @@ +function rechflew_gotHit() /* entry=65 class_id=0x015A slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + item = ref; + if (((ref != 1) && (Item.getFrame(arg_06) != 0)) && (Item.getNpcNum(arg_06) != 0)) goto block_02FD; + + block_011A: + if (!Item.use(*(arg_06), item)) goto block_0137; + + block_0131: + goto block_02FD; + + block_0137: + + block_014F: + /* global_address global_id=0x3C */ + if Intrinsic0033() goto block_0185; + + block_015F: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_014F; + + block_0185: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_01F3: + if condition goto block_0226; + + block_01F6: + if (Item.getFrame(item) < 2) goto block_0222; + + block_020B: + + block_0222: + /* loopnext */ + goto block_01F3; + + block_0226: + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + + block_0260: + if Item.hurl(0x0254, global[0x003C]) goto block_029D; + + block_0274: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0260; + + block_029D: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_02BB: + if condition goto block_02FB; + + block_02BE: + if ((Item.getFrame(item) != 2) || (Item.getFrame(item) != 3)) goto block_02F7; + + block_02E0: + + block_02F7: + /* loopnext */ + goto block_02BB; + + block_02FB: + + block_02FD: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/RECHFLEW/slot_09_release.txt b/USECODE/EUSECODE_extracted/pseudocode/RECHFLEW/slot_09_release.txt new file mode 100644 index 0000000..a071b65 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/RECHFLEW/slot_09_release.txt @@ -0,0 +1,18 @@ +function rechflew_release() /* entry=65 class_id=0x015A slot=0x09 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020D, *(arg_06)); + process_exclude(); + if (Intrinsic0057(arg_06) != 0) goto block_0373; + + block_0355: + class_0A0C_slot_33(0x0254, global[0x003C]); + + block_0373: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/RECHFLNS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/RECHFLNS/slot_06_gotHit.txt new file mode 100644 index 0000000..997cfd7 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/RECHFLNS/slot_06_gotHit.txt @@ -0,0 +1,90 @@ +function rechflns_gotHit() /* entry=56 class_id=0x0138 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + item = ref; + if (((ref != 1) && (Item.getFrame(arg_06) != 0)) && (Item.getNpcNum(arg_06) != 0)) goto block_02FD; + + block_011A: + if (!Item.use(*(arg_06), item)) goto block_0137; + + block_0131: + goto block_02FD; + + block_0137: + + block_014F: + /* global_address global_id=0x3C */ + if Intrinsic0033() goto block_0185; + + block_015F: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_014F; + + block_0185: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_01F3: + if condition goto block_0226; + + block_01F6: + if (Item.getFrame(item) < 2) goto block_0222; + + block_020B: + + block_0222: + /* loopnext */ + goto block_01F3; + + block_0226: + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + + block_0260: + if Item.hurl(0x0254, global[0x003C]) goto block_029D; + + block_0274: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0260; + + block_029D: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_02BB: + if condition goto block_02FB; + + block_02BE: + if ((Item.getFrame(item) != 2) || (Item.getFrame(item) != 3)) goto block_02F7; + + block_02E0: + + block_02F7: + /* loopnext */ + goto block_02BB; + + block_02FB: + + block_02FD: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/RECHFLNS/slot_09_release.txt b/USECODE/EUSECODE_extracted/pseudocode/RECHFLNS/slot_09_release.txt new file mode 100644 index 0000000..e8afff0 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/RECHFLNS/slot_09_release.txt @@ -0,0 +1,18 @@ +function rechflns_release() /* entry=56 class_id=0x0138 slot=0x09 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020D, *(arg_06)); + process_exclude(); + if (Intrinsic0057(arg_06) != 0) goto block_0373; + + block_0355: + class_0A0C_slot_33(0x0254, global[0x003C]); + + block_0373: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/REE_BOOT/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/REE_BOOT/slot_0A_equip.txt new file mode 100644 index 0000000..8b1cc88 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/REE_BOOT/slot_0A_equip.txt @@ -0,0 +1,121 @@ +function ree_boot_equip() /* entry=283 class_id=0x04DB slot=0x0A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + event, /* [BP+0Ah] type=0x69 */ + counter; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (Item.getFrame(arg_06) != 12) goto block_0106; + + block_0100: + goto block_03F6; + + block_0106: + class_0A0C_slot_33(0x021B, *(arg_06)); + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + + block_0140: + if (Item.getFrame(arg_06) != 11) goto block_0192; + + block_0152: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + goto block_0140; + + block_0192: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + if (global[0x001F] != 3) goto block_01F2; + + block_01C2: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_038B; + + block_01F2: + if (global[0x001F] != 6) goto block_022C; + + block_01FC: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_038B; + + block_022C: + if (global[0x001F] != 7) goto block_0266; + + block_0236: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_038B; + + block_0266: + if (global[0x001F] != 8) goto block_02A0; + + block_0270: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_038B; + + block_02A0: + if (global[0x001F] != 9) goto block_02DA; + + block_02AA: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_038B; + + block_02DA: + if (global[0x001F] != 11) goto block_0315; + + block_02E4: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_038B; + + block_0315: + if (global[0x001F] != 12) goto block_0350; + + block_031F: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_038B; + + block_0350: + if (global[0x001F] != 13) goto block_038B; + + block_035A: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_038B; + + block_038B: + counter = 0; + + block_0392: + if (counter <= 11) goto block_03DD; + + block_039A: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0392; + + block_03DD: + spawn class_04DB_enterFastArea(arg_06); + + block_03F6: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/REE_BOOT/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/REE_BOOT/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..4d3b2d6 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/REE_BOOT/slot_0F_enterFastArea.txt @@ -0,0 +1,96 @@ +function ree_boot_enterFastArea() /* entry=283 class_id=0x04DB slot=0x0F */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + counter; /* [BP-04h] type=0x69 */ + + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if ((((((((global[0x001F] != 3) || (global[0x001F] != 6)) || (global[0x001F] != 7)) || (global[0x001F] != 8)) || (global[0x001F] != 9)) || (global[0x001F] != 11)) || (global[0x001F] != 12)) || (global[0x001F] != 13)) goto block_04DA; + + block_0478: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0496: + if condition goto block_04C8; + + block_0499: + if (Item.getNpcNum(item) != Item.getNpcNum(arg_06)) goto block_04C4; + + block_04B5: + class_0A1E_slot_24(0x1000, item); + + block_04C4: + /* loopnext */ + goto block_0496; + + block_04C8: + goto block_053F; + + block_04DA: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_04F8: + if condition goto block_052A; + + block_04FB: + if (Item.getNpcNum(item) != Item.getNpcNum(arg_06)) goto block_0526; + + block_0517: + class_0A1E_slot_23(0x1000, item); + + block_0526: + /* loopnext */ + goto block_04F8; + + block_052A: + goto block_0653; + + block_053F: + suspend; + class_0A0C_slot_20(pid, 120); + spawn class_0A0C_slot_32((retval + 0x00DC), 0x00000000); + suspend; + counter = 0; + + block_0585: + if (counter <= 4) goto block_05CD; + + block_058D: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0585; + + block_05CD: + class_0A0C_slot_20(pid, 120); + spawn class_0A0C_slot_32((retval + 120), 0x00000000); + suspend; + counter = 0; + + block_0605: + if (counter <= 4) goto block_0650; + + block_060D: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0605; + + block_0650: + goto block_053F; + + block_0653: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/REE_BOOT/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/REE_BOOT/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..40637d3 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/REE_BOOT/slot_10_leaveFastArea.txt @@ -0,0 +1,9 @@ +function ree_boot_leaveFastArea() /* entry=283 class_id=0x04DB slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + class_0A0C_slot_33(0x021B, *(arg_06)); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/RFANBADE/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/RFANBADE/slot_06_gotHit.txt new file mode 100644 index 0000000..56fa03f --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/RFANBADE/slot_06_gotHit.txt @@ -0,0 +1,49 @@ +function rfanbade_gotHit() /* entry=222 class_id=0x03CE slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + fart, /* [BP-04h] type=0x69 */ + fart2; /* [BP-06h] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + if (!Item.getFrame(arg_06)) goto block_0104; + + block_00FE: + goto block_01AE; + + block_0104: + class_0A0C_slot_2B(vel, ref); + if (retval && (Item.getFrame(arg_06) > 0)) goto block_01AE; + + block_0126: + fart2 = Item.getNpcNum(arg_06); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_017B: + if condition goto block_01AC; + + block_017E: + fart = Item.getNpcNum(item); + if (fart != fart2) goto block_01A8; + + block_019D: + + block_01A8: + /* loopnext */ + goto block_017B; + + block_01AC: + + block_01AE: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/RFANBADE/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/RFANBADE/slot_0A_equip.txt new file mode 100644 index 0000000..447d11d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/RFANBADE/slot_0A_equip.txt @@ -0,0 +1,82 @@ +function rfanbade_equip() /* entry=222 class_id=0x03CE slot=0x0A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + var, /* [BP+0Ah] type=0x69 */ + fram, /* [BP-02h] type=0x69 */ + counter, /* [BP-04h] type=0x69 */ + counter2, /* [BP-06h] type=0x69 */ + item, /* [BP-08h] type=0x24 */ + wind; /* [BP-0Ah] type=0x24 */ + + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if ((Item.getFrame(arg_06) != 0) || (Item.getStatus(arg_06) & 0x1000)) goto block_022D; + + block_0227: + goto block_03B2; + + block_022D: + if var goto block_03B2; + + block_0235: + class_0A1E_slot_23(0x1000, arg_06); + fram = Item.getFrame(arg_06); + counter2 = 0; + counter = 1; + + block_0260: + if (counter <= 15) goto block_0334; + + block_0268: + fram = (1 + fram); + if (fram > 5) goto block_0287; + + block_0280: + fram = 1; + + block_0287: + counter2 = (counter2 + 2); + spawn class_0A0C_slot_32(pid, (30 - counter2), 0x00000000); + suspend; + if (counter2 != 4) goto block_0327; + + block_02D5: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF6 string_bytes=0x6 loop_type=0x2 */ + + block_02F3: + if condition goto block_0325; + + block_02F6: + if (Item.getNpcNum(wind) != Item.getNpcNum(arg_06)) goto block_0321; + + block_0312: + class_0A0C_slot_2F(0x0337, wind); + + block_0321: + /* loopnext */ + goto block_02F3; + + block_0325: + + block_0327: + counter = (1 + counter); + goto block_0260; + + block_0334: + if (fram > 4) goto block_034F; + + block_0342: + + block_034F: + class_0A1E_slot_24(0x1000, arg_06); + + block_03B2: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/RFANBADN/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/RFANBADN/slot_06_gotHit.txt new file mode 100644 index 0000000..87e1a83 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/RFANBADN/slot_06_gotHit.txt @@ -0,0 +1,49 @@ +function rfanbadn_gotHit() /* entry=223 class_id=0x03D3 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + fart, /* [BP-04h] type=0x69 */ + fart2; /* [BP-06h] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + if (!Item.getFrame(arg_06)) goto block_0104; + + block_00FE: + goto block_01AE; + + block_0104: + class_0A0C_slot_2B(vel, ref); + if (retval && (Item.getFrame(arg_06) > 0)) goto block_01AE; + + block_0126: + fart2 = Item.getNpcNum(arg_06); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_017B: + if condition goto block_01AC; + + block_017E: + fart = Item.getNpcNum(item); + if (fart != fart2) goto block_01A8; + + block_019D: + + block_01A8: + /* loopnext */ + goto block_017B; + + block_01AC: + + block_01AE: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/RFANBADN/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/RFANBADN/slot_0A_equip.txt new file mode 100644 index 0000000..9cfa6ec --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/RFANBADN/slot_0A_equip.txt @@ -0,0 +1,82 @@ +function rfanbadn_equip() /* entry=223 class_id=0x03D3 slot=0x0A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + var, /* [BP+0Ah] type=0x69 */ + fram, /* [BP-02h] type=0x69 */ + counter, /* [BP-04h] type=0x69 */ + counter2, /* [BP-06h] type=0x69 */ + item, /* [BP-08h] type=0x24 */ + wind; /* [BP-0Ah] type=0x24 */ + + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if ((Item.getFrame(arg_06) != 0) || (Item.getStatus(arg_06) & 0x1000)) goto block_022D; + + block_0227: + goto block_03B3; + + block_022D: + if var goto block_03B3; + + block_0235: + class_0A1E_slot_23(0x1000, arg_06); + fram = Item.getFrame(arg_06); + counter2 = 0; + counter = 1; + + block_0260: + if (counter <= 15) goto block_0334; + + block_0268: + fram = (1 + fram); + if (fram > 5) goto block_0287; + + block_0280: + fram = 1; + + block_0287: + counter2 = (counter2 + 2); + spawn class_0A0C_slot_32(pid, (30 - counter2), 0x00000000); + suspend; + if (counter2 != 4) goto block_0327; + + block_02D5: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF6 string_bytes=0x6 loop_type=0x2 */ + + block_02F3: + if condition goto block_0325; + + block_02F6: + if (Item.getNpcNum(wind) != Item.getNpcNum(arg_06)) goto block_0321; + + block_0312: + class_0A0C_slot_2F(0x0337, wind); + + block_0321: + /* loopnext */ + goto block_02F3; + + block_0325: + + block_0327: + counter = (1 + counter); + goto block_0260; + + block_0334: + if (fram > 4) goto block_034F; + + block_0342: + + block_034F: + class_0A1E_slot_24(0x1000, arg_06); + + block_03B3: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/RFANEW/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/RFANEW/slot_06_gotHit.txt new file mode 100644 index 0000000..193e93b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/RFANEW/slot_06_gotHit.txt @@ -0,0 +1,43 @@ +function rfanew_gotHit() /* entry=9 class_id=0x005E slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + fart, /* [BP-04h] type=0x69 */ + fart2; /* [BP-06h] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2B(vel, ref); + if retval goto block_01A0; + + block_0134: + fart2 = Item.getNpcNum(arg_06); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_016D: + if condition goto block_019E; + + block_0170: + fart = Item.getNpcNum(item); + if (fart != fart2) goto block_019A; + + block_018F: + + block_019A: + /* loopnext */ + goto block_016D; + + block_019E: + + block_01A0: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/RFANEW/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/RFANEW/slot_0A_equip.txt new file mode 100644 index 0000000..19f8328 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/RFANEW/slot_0A_equip.txt @@ -0,0 +1,81 @@ +function rfanew_equip() /* entry=9 class_id=0x005E slot=0x0A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + var, /* [BP+0Ah] type=0x69 */ + fram, /* [BP-02h] type=0x69 */ + counter, /* [BP-04h] type=0x69 */ + counter2, /* [BP-06h] type=0x69 */ + item, /* [BP-08h] type=0x24 */ + wind; /* [BP-0Ah] type=0x24 */ + + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 0x1000) goto block_020F; + + block_0209: + goto block_03E3; + + block_020F: + if (var != 0) goto block_03E3; + + block_021A: + class_0A1E_slot_23(0x1000, arg_06); + fram = Item.getFrame(arg_06); + fram = (1 + fram); + counter2 = 1; + spawn class_0A0C_slot_32(pid, counter2, 0x00000000); + suspend; + counter = 1; + + block_0290: + if (counter <= 15) goto block_0378; + + block_0298: + fram = (1 + fram); + if (fram > 5) goto block_02B7; + + block_02B0: + fram = 1; + + block_02B7: + counter2 = (counter2 + 1); + spawn class_0A0C_slot_32(pid, counter2, 0x00000000); + suspend; + if (counter2 != 4) goto block_036B; + + block_0302: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF6 string_bytes=0x6 loop_type=0x2 */ + + block_0320: + if condition goto block_0369; + + block_0323: + if (Item.getNpcNum(wind) != Item.getNpcNum(arg_06)) goto block_0365; + + block_033F: + spawn class_0A0C_slot_31(pid, wind, 0x00000000); + suspend; + + block_0365: + /* loopnext */ + goto block_0320; + + block_0369: + + block_036B: + counter = (1 + counter); + goto block_0290; + + block_0378: + class_0A1E_slot_24(0x1000, arg_06); + + block_03E3: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/RFANEW/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/RFANEW/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..887fe97 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/RFANEW/slot_0F_enterFastArea.txt @@ -0,0 +1,8 @@ +function rfanew_enterFastArea() /* entry=9 class_id=0x005E slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/RFANNS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/RFANNS/slot_06_gotHit.txt new file mode 100644 index 0000000..09084dc --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/RFANNS/slot_06_gotHit.txt @@ -0,0 +1,43 @@ +function rfanns_gotHit() /* entry=37 class_id=0x00BD slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + fart, /* [BP-04h] type=0x69 */ + fart2; /* [BP-06h] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2B(vel, ref); + if retval goto block_01A0; + + block_0134: + fart2 = Item.getNpcNum(arg_06); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_016D: + if condition goto block_019E; + + block_0170: + fart = Item.getNpcNum(item); + if (fart != fart2) goto block_019A; + + block_018F: + + block_019A: + /* loopnext */ + goto block_016D; + + block_019E: + + block_01A0: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/RFANNS/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/RFANNS/slot_0A_equip.txt new file mode 100644 index 0000000..edb8b3c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/RFANNS/slot_0A_equip.txt @@ -0,0 +1,81 @@ +function rfanns_equip() /* entry=37 class_id=0x00BD slot=0x0A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + var, /* [BP+0Ah] type=0x69 */ + fram, /* [BP-02h] type=0x69 */ + counter, /* [BP-04h] type=0x69 */ + counter2, /* [BP-06h] type=0x69 */ + item, /* [BP-08h] type=0x24 */ + wind; /* [BP-0Ah] type=0x24 */ + + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 0x1000) goto block_020F; + + block_0209: + goto block_03E3; + + block_020F: + if (var != 0) goto block_03E3; + + block_021A: + class_0A1E_slot_23(0x1000, arg_06); + fram = Item.getFrame(arg_06); + fram = (1 + fram); + counter2 = 1; + spawn class_0A0C_slot_32(pid, counter2, 0x00000000); + suspend; + counter = 1; + + block_0290: + if (counter <= 15) goto block_0378; + + block_0298: + fram = (1 + fram); + if (fram > 5) goto block_02B7; + + block_02B0: + fram = 1; + + block_02B7: + counter2 = (counter2 + 1); + spawn class_0A0C_slot_32(pid, counter2, 0x00000000); + suspend; + if (counter2 != 4) goto block_036B; + + block_0302: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF6 string_bytes=0x6 loop_type=0x2 */ + + block_0320: + if condition goto block_0369; + + block_0323: + if (Item.getNpcNum(wind) != Item.getNpcNum(arg_06)) goto block_0365; + + block_033F: + spawn class_0A0C_slot_31(pid, wind, 0x00000000); + suspend; + + block_0365: + /* loopnext */ + goto block_0320; + + block_0369: + + block_036B: + counter = (1 + counter); + goto block_0290; + + block_0378: + class_0A1E_slot_24(0x1000, arg_06); + + block_03E3: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/RFANNS/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/RFANNS/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..7b79e24 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/RFANNS/slot_0F_enterFastArea.txt @@ -0,0 +1,8 @@ +function rfanns_enterFastArea() /* entry=37 class_id=0x00BD slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ROAMING/slot_0E_calledFromAnim.txt b/USECODE/EUSECODE_extracted/pseudocode/ROAMING/slot_0E_calledFromAnim.txt new file mode 100644 index 0000000..f9926f5 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ROAMING/slot_0E_calledFromAnim.txt @@ -0,0 +1,15 @@ +function roaming_calledFromAnim() /* entry=153 class_id=0x02CB slot=0x0E */ +{ + var + referent, /* [BP+00h] type=0x69 */ + n; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x021A, *(arg_06)); + process_exclude(); + n = *(arg_06); + set_info(1, 0); + spawn class_0A1C_slot_20(Item.getQLo(arg_06), *(arg_06), arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ROLLB_EW/slot_05_hit.txt b/USECODE/EUSECODE_extracted/pseudocode/ROLLB_EW/slot_05_hit.txt new file mode 100644 index 0000000..b0759bd --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ROLLB_EW/slot_05_hit.txt @@ -0,0 +1,19 @@ +function rollb_ew_hit() /* entry=331 class_id=0x058B slot=0x05 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020B, *(arg_06)); + process_exclude(); + if ((Item.getStatus(arg_06) & 0x1000) != 0) goto block_0C49; + + block_0C3B: + spawn class_058B_slot_21(arg_06); + + block_0C49: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ROLLB_EW/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/ROLLB_EW/slot_06_gotHit.txt new file mode 100644 index 0000000..bec5530 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ROLLB_EW/slot_06_gotHit.txt @@ -0,0 +1,45 @@ +function rollb_ew_gotHit() /* entry=331 class_id=0x058B slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + if ((Item.getStatus(arg_06) & 0x1000) != 0) goto block_0B63; + + block_0B52: + spawn class_058B_slot_21(arg_06); + goto block_0BE8; + + block_0B63: + spawn class_0A1E_slot_27(pid, 100, vel, ref, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_0BC9; + + block_0B93: + class_0A0C_slot_20(1); + if retval goto block_0BB3; + + block_0BA3: + goto block_0BC0; + + block_0BB3: + + block_0BC0: + goto block_0BE8; + + block_0BC6: + goto block_0BE8; + + block_0BC9: + spawn class_058B_slot_20(pid, arg_06); + suspend; + + block_0BE8: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ROLLB_EW/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/ROLLB_EW/slot_0A_equip.txt new file mode 100644 index 0000000..063647d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ROLLB_EW/slot_0A_equip.txt @@ -0,0 +1,32 @@ +function rollb_ew_equip() /* entry=331 class_id=0x058B slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (arg_0A != 1) goto block_0181; + + block_0157: + if ((Item.getStatus(arg_06) & 0x1000) != 0) goto block_017E; + + block_0170: + spawn class_058B_slot_21(arg_06); + + block_017E: + goto block_01C1; + + block_0181: + if (arg_0A != 2) goto block_01C1; + + block_018C: + if (Item.getStatus(arg_06) & 0x1000) goto block_01BE; + + block_019F: + /* bit_not */ + + block_01BE: + goto block_01C1; + + block_01C1: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ROLLB_EW/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/ROLLB_EW/slot_0B_unequip.txt new file mode 100644 index 0000000..55c2ca1 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ROLLB_EW/slot_0B_unequip.txt @@ -0,0 +1,10 @@ +function rollb_ew_unequip() /* entry=331 class_id=0x058B slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + spawn class_058B_equip(pid, arg_0A, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ROLLB_EW/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/ROLLB_EW/slot_20_slot_20.txt new file mode 100644 index 0000000..941f902 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ROLLB_EW/slot_20_slot_20.txt @@ -0,0 +1,79 @@ +function rollb_ew_slot_20() /* entry=331 class_id=0x058B slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + item2, /* [BP-04h] type=0x24 */ + riderList, /* [BP-06h] type=0x6C */ + r1, /* [BP-08h] type=0x69 */ + r2, /* [BP-0Ah] type=0x69 */ + h, /* [BP-0Ch] type=0x69 */ + x, /* [BP-0Eh] type=0x69 */ + y, /* [BP-10h] type=0x69 */ + z, /* [BP-11h] type=0x62 */ + qLo; /* [BP-13h] type=0x69 */ + + entry: + set_info(1, *(arg_06)); + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + h = Item.getNpcNum(arg_06); + if (h & 32) goto block_025C; + + block_0233: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFC string_bytes=0x1 loop_type=0x6 */ + + block_0243: + if condition goto block_025A; + + block_0246: + /* create_list element_size=0x2 count=0x1 */ + /* append_list */ + /* free_local_list bp_offset=0xFA target=[BP-06h] */ + riderList = item2; + /* loopnext */ + goto block_0243; + + block_025A: + + block_025C: + if (h & 64) goto block_0291; + + block_0267: + /* bit_not */ + item2 = *(arg_06); + goto block_0375; + + block_0291: + class_0A0C_slot_20(5); + r1 = retval; + + block_02A0: + if 1 goto block_02CB; + + block_02A8: + class_0A0C_slot_20(5); + r2 = retval; + if (r2 != r1) goto block_02C8; + + block_02C2: + goto block_02CB; + + block_02C8: + goto block_02A0; + + block_02CB: + x = Intrinsic0013(arg_06); + y = Item.legal_create(arg_06); + z = Item.getZ(arg_06); + qLo = Item.getNpcNum(arg_06); + spawn class_0A1E_slot_2A(pid, arg_06); + suspend; + + block_0375: + set_info(1, 0); + /* free_local_list bp_offset=0xFA target=[BP-06h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ROLLB_EW/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/ROLLB_EW/slot_21_slot_21.txt new file mode 100644 index 0000000..588f43a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ROLLB_EW/slot_21_slot_21.txt @@ -0,0 +1,281 @@ +function rollb_ew_slot_21() /* entry=331 class_id=0x058B slot=0x21 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + time, /* [BP-02h] type=0x69 */ + f, /* [BP-04h] type=0x69 */ + a, /* [BP-06h] type=0x69 */ + total, /* [BP-08h] type=0x69 */ + counter, /* [BP-0Ah] type=0x69 */ + dz, /* [BP-0Ch] type=0x69 */ + oldz, /* [BP-0Eh] type=0x69 */ + wp, /* [BP-13h] type=0x24 */ + cargo, /* [BP-15h] type=0x24 */ + zCheck, /* [BP-17h] type=0x69 */ + zMax; /* [BP-18h] type=0x62 */ + + entry: + set_info(0x0001, *(arg_06)); + a = Item.getNpcNum(arg_06); + time = (a & 31); + if (time != 0) goto block_0421; + + block_041A: + time = 1; + + block_0421: + f = Item.getFrame(arg_06); + wp = Intrinsic0013(arg_06); + local_11 = Item.legal_create(arg_06); + local_0F = Item.getZ(arg_06); + if (a & 32) goto block_0792; + + block_0480: + if (a < 0x0080) goto block_060F; + + block_048C: + if 1 goto block_060C; + + block_0494: + f = (f - 1); + if (f < 0) goto block_04B3; + + block_04AC: + f = 4; + + block_04B3: + total = 0; + /* loopscr value_u8=0x24 */ + /* loop current_var=0xEB string_bytes=0x1 loop_type=0x6 */ + + block_04CA: + if condition goto block_04E6; + + block_04CD: + total = (1 + total); + /* loopnext */ + goto block_04CA; + + block_04E6: + wp = (wp + 8); + if (Item.pop(0, 0, wp, arg_06) != 0) goto block_0584; + + block_0510: + counter = 1; + + block_0517: + if (counter <= total) goto block_055F; + + block_0522: + cargo = Intrinsic0023(); + counter = (1 + counter); + goto block_0517; + + block_055F: + spawn class_058B_slot_20(pid, arg_06); + suspend; + goto block_0AAF; + + block_0584: + counter = 1; + + block_058B: + if (counter <= total) goto block_05D6; + + block_0596: + cargo = Intrinsic0023(); + counter = (1 + counter); + goto block_058B; + + block_05D6: + spawn class_0A0C_slot_32(pid, time, 0x00000000); + suspend; + goto block_048C; + + block_060C: + goto block_078F; + + block_060F: + if 1 goto block_078F; + + block_0617: + f = (1 + f); + if (f > 4) goto block_0636; + + block_062F: + f = 0; + + block_0636: + total = 0; + /* loopscr value_u8=0x24 */ + /* loop current_var=0xEB string_bytes=0x1 loop_type=0x6 */ + + block_064D: + if condition goto block_0669; + + block_0650: + total = (1 + total); + /* loopnext */ + goto block_064D; + + block_0669: + wp = (wp - 8); + if (Item.pop(0, 0, wp, arg_06) != 0) goto block_0707; + + block_0693: + counter = 1; + + block_069A: + if (counter <= total) goto block_06E2; + + block_06A5: + cargo = Intrinsic0023(); + counter = (1 + counter); + goto block_069A; + + block_06E2: + spawn class_058B_slot_20(pid, arg_06); + suspend; + goto block_0AAF; + + block_0707: + counter = 1; + + block_070E: + if (counter <= total) goto block_0759; + + block_0719: + cargo = Intrinsic0023(); + counter = (1 + counter); + goto block_070E; + + block_0759: + spawn class_0A0C_slot_32(pid, time, 0x00000000); + suspend; + goto block_060F; + + block_078F: + goto block_0AAF; + + block_0792: + zCheck = 0; + zMax = local_0F; + if (a < 0x0080) goto block_092F; + + block_07AC: + if 1 goto block_092C; + + block_07B4: + f = (f - 1); + if (f < 0) goto block_07D3; + + block_07CC: + f = 4; + + block_07D3: + wp = (wp + 8); + if (Item.pop(0, 0, wp, arg_06) != 0) goto block_0848; + + block_07FB: + local_0F = (1 + local_0F); + if (Item.pop(0, 0, wp, arg_06) != 0) goto block_0848; + + block_0823: + spawn class_058B_slot_20(pid, arg_06); + suspend; + goto block_0AAF; + + block_0848: + if (local_0F > 1) goto block_0892; + + block_0853: + local_0F = (local_0F - 4); + if (Item.pop(0, 0, wp, arg_06) != 0) goto block_0885; + + block_087B: + local_0F = (local_0F + 4); + + block_0885: + zCheck = (zMax - local_0F); + goto block_08F6; + + block_0892: + if (zCheck > 12) goto block_08F6; + + block_089D: + spawn class_0A0C_slot_32(pid, 6, 0x00000000); + suspend; + spawn class_058B_slot_20(pid, arg_06); + suspend; + goto block_0AAF; + + block_08F3: + goto block_08F6; + + block_08F6: + spawn class_0A0C_slot_32(pid, time, 0x00000000); + suspend; + goto block_07AC; + + block_092C: + goto block_0AAF; + + block_092F: + if 1 goto block_0AAF; + + block_0937: + f = (1 + f); + if (f > 4) goto block_0956; + + block_094F: + f = 0; + + block_0956: + wp = (wp - 8); + if (Item.pop(0, 0, wp, arg_06) != 0) goto block_09CB; + + block_097E: + local_0F = (1 + local_0F); + if (Item.pop(0, 0, wp, arg_06) != 0) goto block_09CB; + + block_09A6: + spawn class_058B_slot_20(pid, arg_06); + suspend; + goto block_0AAF; + + block_09CB: + if (local_0F > 1) goto block_0A15; + + block_09D6: + local_0F = (local_0F - 4); + if (Item.pop(0, 0, wp, arg_06) != 0) goto block_0A08; + + block_09FE: + local_0F = (local_0F + 4); + + block_0A08: + zCheck = (zMax - local_0F); + goto block_0A79; + + block_0A15: + if (zCheck > 12) goto block_0A79; + + block_0A20: + spawn class_0A0C_slot_32(pid, 6, 0x00000000); + suspend; + spawn class_058B_slot_20(pid, arg_06); + suspend; + goto block_0AAF; + + block_0A76: + goto block_0A79; + + block_0A79: + spawn class_0A0C_slot_32(pid, time, 0x00000000); + suspend; + goto block_092F; + + block_0AAF: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ROLLB_NS/slot_05_hit.txt b/USECODE/EUSECODE_extracted/pseudocode/ROLLB_NS/slot_05_hit.txt new file mode 100644 index 0000000..3daa412 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ROLLB_NS/slot_05_hit.txt @@ -0,0 +1,19 @@ +function rollb_ns_hit() /* entry=330 class_id=0x0586 slot=0x05 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020B, *(arg_06)); + process_exclude(); + if ((Item.getStatus(arg_06) & 0x1000) != 0) goto block_0C41; + + block_0C33: + spawn class_0586_slot_21(arg_06); + + block_0C41: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ROLLB_NS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/ROLLB_NS/slot_06_gotHit.txt new file mode 100644 index 0000000..0fc319a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ROLLB_NS/slot_06_gotHit.txt @@ -0,0 +1,45 @@ +function rollb_ns_gotHit() /* entry=330 class_id=0x0586 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + if ((Item.getStatus(arg_06) & 0x1000) != 0) goto block_0B5B; + + block_0B4A: + spawn class_0586_slot_21(arg_06); + goto block_0BE0; + + block_0B5B: + spawn class_0A1E_slot_27(pid, 100, vel, ref, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_0BC1; + + block_0B8B: + class_0A0C_slot_20(1); + if retval goto block_0BAB; + + block_0B9B: + goto block_0BB8; + + block_0BAB: + + block_0BB8: + goto block_0BE0; + + block_0BBE: + goto block_0BE0; + + block_0BC1: + spawn class_0586_slot_20(pid, arg_06); + suspend; + + block_0BE0: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ROLLB_NS/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/ROLLB_NS/slot_0A_equip.txt new file mode 100644 index 0000000..be47e51 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ROLLB_NS/slot_0A_equip.txt @@ -0,0 +1,32 @@ +function rollb_ns_equip() /* entry=330 class_id=0x0586 slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (arg_0A != 1) goto block_0181; + + block_0157: + if ((Item.getStatus(arg_06) & 0x1000) != 0) goto block_017E; + + block_0170: + spawn class_0586_slot_21(arg_06); + + block_017E: + goto block_01C1; + + block_0181: + if (arg_0A != 2) goto block_01C1; + + block_018C: + if (Item.getStatus(arg_06) & 0x1000) goto block_01BE; + + block_019F: + /* bit_not */ + + block_01BE: + goto block_01C1; + + block_01C1: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ROLLB_NS/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/ROLLB_NS/slot_0B_unequip.txt new file mode 100644 index 0000000..332f2ed --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ROLLB_NS/slot_0B_unequip.txt @@ -0,0 +1,10 @@ +function rollb_ns_unequip() /* entry=330 class_id=0x0586 slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + spawn class_0586_equip(pid, arg_0A, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ROLLB_NS/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/ROLLB_NS/slot_20_slot_20.txt new file mode 100644 index 0000000..aeda44a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ROLLB_NS/slot_20_slot_20.txt @@ -0,0 +1,78 @@ +function rollb_ns_slot_20() /* entry=330 class_id=0x0586 slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + item2, /* [BP-04h] type=0x24 */ + riderList, /* [BP-06h] type=0x6C */ + r1, /* [BP-08h] type=0x69 */ + r2, /* [BP-0Ah] type=0x69 */ + h, /* [BP-0Ch] type=0x69 */ + x, /* [BP-0Eh] type=0x69 */ + y, /* [BP-10h] type=0x69 */ + z, /* [BP-11h] type=0x62 */ + qLo; /* [BP-13h] type=0x69 */ + + entry: + set_info(1, *(arg_06)); + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + h = Item.getNpcNum(arg_06); + if (h & 32) goto block_025C; + + block_0233: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFC string_bytes=0x1 loop_type=0x6 */ + + block_0243: + if condition goto block_025A; + + block_0246: + /* create_list element_size=0x2 count=0x1 */ + /* append_list */ + /* free_local_list bp_offset=0xFA target=[BP-06h] */ + riderList = item2; + /* loopnext */ + goto block_0243; + + block_025A: + + block_025C: + if (h & 64) goto block_0291; + + block_0267: + /* bit_not */ + item2 = *(arg_06); + goto block_0375; + + block_0291: + class_0A0C_slot_20(5); + r1 = retval; + + block_02A0: + if 1 goto block_02CB; + + block_02A8: + class_0A0C_slot_20(5); + r2 = retval; + if (r2 != r1) goto block_02C8; + + block_02C2: + goto block_02CB; + + block_02C8: + goto block_02A0; + + block_02CB: + x = Intrinsic0013(arg_06); + y = Item.legal_create(arg_06); + z = Item.getZ(arg_06); + qLo = Item.getNpcNum(arg_06); + spawn class_0A1E_slot_2A(pid, arg_06); + suspend; + + block_0375: + /* free_local_list bp_offset=0xFA target=[BP-06h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ROLLB_NS/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/ROLLB_NS/slot_21_slot_21.txt new file mode 100644 index 0000000..5c51720 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ROLLB_NS/slot_21_slot_21.txt @@ -0,0 +1,281 @@ +function rollb_ns_slot_21() /* entry=330 class_id=0x0586 slot=0x21 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + time, /* [BP-02h] type=0x69 */ + f, /* [BP-04h] type=0x69 */ + a, /* [BP-06h] type=0x69 */ + total, /* [BP-08h] type=0x69 */ + counter, /* [BP-0Ah] type=0x69 */ + dz, /* [BP-0Ch] type=0x69 */ + oldz, /* [BP-0Eh] type=0x69 */ + wp, /* [BP-13h] type=0x24 */ + cargo, /* [BP-15h] type=0x24 */ + zCheck, /* [BP-17h] type=0x69 */ + zMax; /* [BP-18h] type=0x62 */ + + entry: + set_info(0x0001, *(arg_06)); + a = Item.getNpcNum(arg_06); + time = (a & 31); + if (time != 0) goto block_0419; + + block_0412: + time = 1; + + block_0419: + f = Item.getFrame(arg_06); + wp = Intrinsic0013(arg_06); + local_11 = Item.legal_create(arg_06); + local_0F = Item.getZ(arg_06); + if (a & 32) goto block_078A; + + block_0478: + if (a < 0x0080) goto block_0607; + + block_0484: + if 1 goto block_0604; + + block_048C: + f = (f - 1); + if (f < 0) goto block_04AB; + + block_04A4: + f = 4; + + block_04AB: + total = 0; + /* loopscr value_u8=0x24 */ + /* loop current_var=0xEB string_bytes=0x1 loop_type=0x6 */ + + block_04C2: + if condition goto block_04DE; + + block_04C5: + total = (1 + total); + /* loopnext */ + goto block_04C2; + + block_04DE: + local_11 = (local_11 + 8); + if (Item.pop(0, 0, wp, arg_06) != 0) goto block_057C; + + block_0508: + counter = 1; + + block_050F: + if (counter <= total) goto block_0557; + + block_051A: + cargo = Intrinsic0023(); + counter = (1 + counter); + goto block_050F; + + block_0557: + spawn class_0586_slot_20(pid, arg_06); + suspend; + goto block_0AA7; + + block_057C: + counter = 1; + + block_0583: + if (counter <= total) goto block_05CE; + + block_058E: + cargo = Intrinsic0023(); + counter = (1 + counter); + goto block_0583; + + block_05CE: + spawn class_0A0C_slot_32(pid, time, 0x00000000); + suspend; + goto block_0484; + + block_0604: + goto block_0787; + + block_0607: + if 1 goto block_0787; + + block_060F: + f = (1 + f); + if (f > 4) goto block_062E; + + block_0627: + f = 0; + + block_062E: + total = 0; + /* loopscr value_u8=0x24 */ + /* loop current_var=0xEB string_bytes=0x1 loop_type=0x6 */ + + block_0645: + if condition goto block_0661; + + block_0648: + total = (1 + total); + /* loopnext */ + goto block_0645; + + block_0661: + local_11 = (local_11 - 8); + if (Item.pop(0, 0, wp, arg_06) != 0) goto block_06FF; + + block_068B: + counter = 1; + + block_0692: + if (counter <= total) goto block_06DA; + + block_069D: + cargo = Intrinsic0023(); + counter = (1 + counter); + goto block_0692; + + block_06DA: + spawn class_0586_slot_20(pid, arg_06); + suspend; + goto block_0AA7; + + block_06FF: + counter = 1; + + block_0706: + if (counter <= total) goto block_0751; + + block_0711: + cargo = Intrinsic0023(); + counter = (1 + counter); + goto block_0706; + + block_0751: + spawn class_0A0C_slot_32(pid, time, 0x00000000); + suspend; + goto block_0607; + + block_0787: + goto block_0AA7; + + block_078A: + zCheck = 0; + zMax = local_0F; + if (a < 0x0080) goto block_0927; + + block_07A4: + if 1 goto block_0924; + + block_07AC: + f = (f - 1); + if (f < 0) goto block_07CB; + + block_07C4: + f = 4; + + block_07CB: + local_11 = (local_11 + 8); + if (Item.pop(0, 0, wp, arg_06) != 0) goto block_0840; + + block_07F3: + local_0F = (1 + local_0F); + if (Item.pop(0, 0, wp, arg_06) != 0) goto block_0840; + + block_081B: + spawn class_0586_slot_20(pid, arg_06); + suspend; + goto block_0AA7; + + block_0840: + if (local_0F > 1) goto block_088A; + + block_084B: + local_0F = (local_0F - 4); + if (Item.pop(0, 0, wp, arg_06) != 0) goto block_087D; + + block_0873: + local_0F = (local_0F + 4); + + block_087D: + zCheck = (zMax - local_0F); + goto block_08EE; + + block_088A: + if (zCheck > 12) goto block_08EE; + + block_0895: + spawn class_0A0C_slot_32(pid, 6, 0x00000000); + suspend; + spawn class_0586_slot_20(pid, arg_06); + suspend; + goto block_0AA7; + + block_08EB: + goto block_08EE; + + block_08EE: + spawn class_0A0C_slot_32(pid, time, 0x00000000); + suspend; + goto block_07A4; + + block_0924: + goto block_0AA7; + + block_0927: + if 1 goto block_0AA7; + + block_092F: + f = (1 + f); + if (f > 4) goto block_094E; + + block_0947: + f = 0; + + block_094E: + local_11 = (local_11 - 8); + if (Item.pop(0, 0, wp, arg_06) != 0) goto block_09C3; + + block_0976: + local_0F = (1 + local_0F); + if (Item.pop(0, 0, wp, arg_06) != 0) goto block_09C3; + + block_099E: + spawn class_0586_slot_20(pid, arg_06); + suspend; + goto block_0AA7; + + block_09C3: + if (local_0F > 1) goto block_0A0D; + + block_09CE: + local_0F = (local_0F - 4); + if (Item.pop(0, 0, wp, arg_06) != 0) goto block_0A00; + + block_09F6: + local_0F = (local_0F + 4); + + block_0A00: + zCheck = (zMax - local_0F); + goto block_0A71; + + block_0A0D: + if (zCheck > 12) goto block_0A71; + + block_0A18: + spawn class_0A0C_slot_32(pid, 6, 0x00000000); + suspend; + spawn class_0586_slot_20(pid, arg_06); + suspend; + goto block_0AA7; + + block_0A6E: + goto block_0A71; + + block_0A71: + spawn class_0A0C_slot_32(pid, time, 0x00000000); + suspend; + goto block_0927; + + block_0AA7: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ROLL_EW/slot_05_hit.txt b/USECODE/EUSECODE_extracted/pseudocode/ROLL_EW/slot_05_hit.txt new file mode 100644 index 0000000..b76ea0d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ROLL_EW/slot_05_hit.txt @@ -0,0 +1,19 @@ +function roll_ew_hit() /* entry=326 class_id=0x056C slot=0x05 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020B, *(arg_06)); + process_exclude(); + if ((Item.getStatus(arg_06) & 0x1000) != 0) goto block_0C41; + + block_0C33: + spawn class_056C_slot_21(arg_06); + + block_0C41: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ROLL_EW/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/ROLL_EW/slot_06_gotHit.txt new file mode 100644 index 0000000..78b33fa --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ROLL_EW/slot_06_gotHit.txt @@ -0,0 +1,45 @@ +function roll_ew_gotHit() /* entry=326 class_id=0x056C slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + if ((Item.getStatus(arg_06) & 0x1000) != 0) goto block_0B5B; + + block_0B4A: + spawn class_056C_slot_21(arg_06); + goto block_0BE0; + + block_0B5B: + spawn class_0A1E_slot_27(pid, 100, vel, ref, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_0BC1; + + block_0B8B: + class_0A0C_slot_20(1); + if retval goto block_0BAB; + + block_0B9B: + goto block_0BB8; + + block_0BAB: + + block_0BB8: + goto block_0BE0; + + block_0BBE: + goto block_0BE0; + + block_0BC1: + spawn class_056C_slot_20(pid, arg_06); + suspend; + + block_0BE0: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ROLL_EW/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/ROLL_EW/slot_0A_equip.txt new file mode 100644 index 0000000..d402739 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ROLL_EW/slot_0A_equip.txt @@ -0,0 +1,32 @@ +function roll_ew_equip() /* entry=326 class_id=0x056C slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (arg_0A != 1) goto block_0181; + + block_0157: + if ((Item.getStatus(arg_06) & 0x1000) != 0) goto block_017E; + + block_0170: + spawn class_056C_slot_21(arg_06); + + block_017E: + goto block_01C1; + + block_0181: + if (arg_0A != 2) goto block_01C1; + + block_018C: + if (Item.getStatus(arg_06) & 0x1000) goto block_01BE; + + block_019F: + /* bit_not */ + + block_01BE: + goto block_01C1; + + block_01C1: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ROLL_EW/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/ROLL_EW/slot_0B_unequip.txt new file mode 100644 index 0000000..1f5909c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ROLL_EW/slot_0B_unequip.txt @@ -0,0 +1,10 @@ +function roll_ew_unequip() /* entry=326 class_id=0x056C slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + spawn class_056C_equip(pid, arg_0A, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ROLL_EW/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/ROLL_EW/slot_20_slot_20.txt new file mode 100644 index 0000000..30c5e08 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ROLL_EW/slot_20_slot_20.txt @@ -0,0 +1,78 @@ +function roll_ew_slot_20() /* entry=326 class_id=0x056C slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + item2, /* [BP-04h] type=0x24 */ + riderList, /* [BP-06h] type=0x6C */ + r1, /* [BP-08h] type=0x69 */ + r2, /* [BP-0Ah] type=0x69 */ + h, /* [BP-0Ch] type=0x69 */ + x, /* [BP-0Eh] type=0x69 */ + y, /* [BP-10h] type=0x69 */ + z, /* [BP-11h] type=0x62 */ + qLo; /* [BP-13h] type=0x69 */ + + entry: + set_info(1, *(arg_06)); + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + h = Item.getNpcNum(arg_06); + if (h & 32) goto block_025C; + + block_0233: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFC string_bytes=0x1 loop_type=0x6 */ + + block_0243: + if condition goto block_025A; + + block_0246: + /* create_list element_size=0x2 count=0x1 */ + /* append_list */ + /* free_local_list bp_offset=0xFA target=[BP-06h] */ + riderList = item2; + /* loopnext */ + goto block_0243; + + block_025A: + + block_025C: + if (h & 64) goto block_0291; + + block_0267: + /* bit_not */ + item2 = *(arg_06); + goto block_0375; + + block_0291: + class_0A0C_slot_20(3); + r1 = retval; + + block_02A0: + if 1 goto block_02CB; + + block_02A8: + class_0A0C_slot_20(3); + r2 = retval; + if (r2 != r1) goto block_02C8; + + block_02C2: + goto block_02CB; + + block_02C8: + goto block_02A0; + + block_02CB: + x = Intrinsic0013(arg_06); + y = Item.legal_create(arg_06); + z = Item.getZ(arg_06); + qLo = Item.getNpcNum(arg_06); + spawn class_0A1E_slot_2A(pid, arg_06); + suspend; + + block_0375: + /* free_local_list bp_offset=0xFA target=[BP-06h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ROLL_EW/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/ROLL_EW/slot_21_slot_21.txt new file mode 100644 index 0000000..1a7422b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ROLL_EW/slot_21_slot_21.txt @@ -0,0 +1,281 @@ +function roll_ew_slot_21() /* entry=326 class_id=0x056C slot=0x21 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + time, /* [BP-02h] type=0x69 */ + f, /* [BP-04h] type=0x69 */ + a, /* [BP-06h] type=0x69 */ + total, /* [BP-08h] type=0x69 */ + counter, /* [BP-0Ah] type=0x69 */ + dz, /* [BP-0Ch] type=0x69 */ + oldz, /* [BP-0Eh] type=0x69 */ + wp, /* [BP-13h] type=0x24 */ + cargo, /* [BP-15h] type=0x24 */ + zCheck, /* [BP-17h] type=0x69 */ + zMax; /* [BP-18h] type=0x62 */ + + entry: + set_info(0x0001, *(arg_06)); + a = Item.getNpcNum(arg_06); + time = (a & 31); + if (time != 0) goto block_0419; + + block_0412: + time = 1; + + block_0419: + f = Item.getFrame(arg_06); + wp = Intrinsic0013(arg_06); + local_11 = Item.legal_create(arg_06); + local_0F = Item.getZ(arg_06); + if (a & 32) goto block_078A; + + block_0478: + if (a < 0x0080) goto block_0607; + + block_0484: + if 1 goto block_0604; + + block_048C: + f = (f - 1); + if (f < 0) goto block_04AB; + + block_04A4: + f = 3; + + block_04AB: + total = 0; + /* loopscr value_u8=0x24 */ + /* loop current_var=0xEB string_bytes=0x1 loop_type=0x6 */ + + block_04C2: + if condition goto block_04DE; + + block_04C5: + total = (1 + total); + /* loopnext */ + goto block_04C2; + + block_04DE: + wp = (wp + 8); + if (Item.pop(0, 0, wp, arg_06) != 0) goto block_057C; + + block_0508: + counter = 1; + + block_050F: + if (counter <= total) goto block_0557; + + block_051A: + cargo = Intrinsic0023(); + counter = (1 + counter); + goto block_050F; + + block_0557: + spawn class_056C_slot_20(pid, arg_06); + suspend; + goto block_0AA7; + + block_057C: + counter = 1; + + block_0583: + if (counter <= total) goto block_05CE; + + block_058E: + cargo = Intrinsic0023(); + counter = (1 + counter); + goto block_0583; + + block_05CE: + spawn class_0A0C_slot_32(pid, time, 0x00000000); + suspend; + goto block_0484; + + block_0604: + goto block_0787; + + block_0607: + if 1 goto block_0787; + + block_060F: + f = (1 + f); + if (f > 3) goto block_062E; + + block_0627: + f = 0; + + block_062E: + total = 0; + /* loopscr value_u8=0x24 */ + /* loop current_var=0xEB string_bytes=0x1 loop_type=0x6 */ + + block_0645: + if condition goto block_0661; + + block_0648: + total = (1 + total); + /* loopnext */ + goto block_0645; + + block_0661: + wp = (wp - 8); + if (Item.pop(0, 0, wp, arg_06) != 0) goto block_06FF; + + block_068B: + counter = 1; + + block_0692: + if (counter <= total) goto block_06DA; + + block_069D: + cargo = Intrinsic0023(); + counter = (1 + counter); + goto block_0692; + + block_06DA: + spawn class_056C_slot_20(pid, arg_06); + suspend; + goto block_0AA7; + + block_06FF: + counter = 1; + + block_0706: + if (counter <= total) goto block_0751; + + block_0711: + cargo = Intrinsic0023(); + counter = (1 + counter); + goto block_0706; + + block_0751: + spawn class_0A0C_slot_32(pid, time, 0x00000000); + suspend; + goto block_0607; + + block_0787: + goto block_0AA7; + + block_078A: + zCheck = 0; + zMax = local_0F; + if (a < 0x0080) goto block_0927; + + block_07A4: + if 1 goto block_0924; + + block_07AC: + f = (f - 1); + if (f < 0) goto block_07CB; + + block_07C4: + f = 3; + + block_07CB: + wp = (wp + 8); + if (Item.pop(0, 0, wp, arg_06) != 0) goto block_0840; + + block_07F3: + local_0F = (1 + local_0F); + if (Item.pop(0, 0, wp, arg_06) != 0) goto block_0840; + + block_081B: + spawn class_056C_slot_20(pid, arg_06); + suspend; + goto block_0AA7; + + block_0840: + if (local_0F > 1) goto block_088A; + + block_084B: + local_0F = (local_0F - 4); + if (Item.pop(0, 0, wp, arg_06) != 0) goto block_087D; + + block_0873: + local_0F = (local_0F + 4); + + block_087D: + zCheck = (zMax - local_0F); + goto block_08EE; + + block_088A: + if (zCheck > 12) goto block_08EE; + + block_0895: + spawn class_0A0C_slot_32(pid, 6, 0x00000000); + suspend; + spawn class_056C_slot_20(pid, arg_06); + suspend; + goto block_0AA7; + + block_08EB: + goto block_08EE; + + block_08EE: + spawn class_0A0C_slot_32(pid, time, 0x00000000); + suspend; + goto block_07A4; + + block_0924: + goto block_0AA7; + + block_0927: + if 1 goto block_0AA7; + + block_092F: + f = (1 + f); + if (f > 3) goto block_094E; + + block_0947: + f = 0; + + block_094E: + wp = (wp - 8); + if (Item.pop(0, 0, wp, arg_06) != 0) goto block_09C3; + + block_0976: + local_0F = (1 + local_0F); + if (Item.pop(0, 0, wp, arg_06) != 0) goto block_09C3; + + block_099E: + spawn class_056C_slot_20(pid, arg_06); + suspend; + goto block_0AA7; + + block_09C3: + if (local_0F > 1) goto block_0A0D; + + block_09CE: + local_0F = (local_0F - 4); + if (Item.pop(0, 0, wp, arg_06) != 0) goto block_0A00; + + block_09F6: + local_0F = (local_0F + 4); + + block_0A00: + zCheck = (zMax - local_0F); + goto block_0A71; + + block_0A0D: + if (zCheck > 12) goto block_0A71; + + block_0A18: + spawn class_0A0C_slot_32(pid, 6, 0x00000000); + suspend; + spawn class_056C_slot_20(pid, arg_06); + suspend; + goto block_0AA7; + + block_0A6E: + goto block_0A71; + + block_0A71: + spawn class_0A0C_slot_32(pid, time, 0x00000000); + suspend; + goto block_0927; + + block_0AA7: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ROLL_NS/slot_05_hit.txt b/USECODE/EUSECODE_extracted/pseudocode/ROLL_NS/slot_05_hit.txt new file mode 100644 index 0000000..a3206df --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ROLL_NS/slot_05_hit.txt @@ -0,0 +1,19 @@ +function roll_ns_hit() /* entry=186 class_id=0x0346 slot=0x05 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020B, *(arg_06)); + process_exclude(); + if ((Item.getStatus(arg_06) & 0x1000) != 0) goto block_0C41; + + block_0C33: + spawn class_0346_slot_21(arg_06); + + block_0C41: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ROLL_NS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/ROLL_NS/slot_06_gotHit.txt new file mode 100644 index 0000000..5aea386 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ROLL_NS/slot_06_gotHit.txt @@ -0,0 +1,45 @@ +function roll_ns_gotHit() /* entry=186 class_id=0x0346 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + if ((Item.getStatus(arg_06) & 0x1000) != 0) goto block_0B5B; + + block_0B4A: + spawn class_0346_slot_21(arg_06); + goto block_0BE0; + + block_0B5B: + spawn class_0A1E_slot_27(pid, 100, vel, ref, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_0BC1; + + block_0B8B: + class_0A0C_slot_20(1); + if retval goto block_0BAB; + + block_0B9B: + goto block_0BB8; + + block_0BAB: + + block_0BB8: + goto block_0BE0; + + block_0BBE: + goto block_0BE0; + + block_0BC1: + spawn class_0346_slot_20(pid, arg_06); + suspend; + + block_0BE0: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ROLL_NS/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/ROLL_NS/slot_0A_equip.txt new file mode 100644 index 0000000..a8f48fe --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ROLL_NS/slot_0A_equip.txt @@ -0,0 +1,32 @@ +function roll_ns_equip() /* entry=186 class_id=0x0346 slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (arg_0A != 1) goto block_0181; + + block_0157: + if ((Item.getStatus(arg_06) & 0x1000) != 0) goto block_017E; + + block_0170: + spawn class_0346_slot_21(arg_06); + + block_017E: + goto block_01C1; + + block_0181: + if (arg_0A != 2) goto block_01C1; + + block_018C: + if (Item.getStatus(arg_06) & 0x1000) goto block_01BE; + + block_019F: + /* bit_not */ + + block_01BE: + goto block_01C1; + + block_01C1: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ROLL_NS/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/ROLL_NS/slot_0B_unequip.txt new file mode 100644 index 0000000..f1a6d32 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ROLL_NS/slot_0B_unequip.txt @@ -0,0 +1,10 @@ +function roll_ns_unequip() /* entry=186 class_id=0x0346 slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + spawn class_0346_equip(pid, arg_0A, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ROLL_NS/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/ROLL_NS/slot_20_slot_20.txt new file mode 100644 index 0000000..3754cf1 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ROLL_NS/slot_20_slot_20.txt @@ -0,0 +1,78 @@ +function roll_ns_slot_20() /* entry=186 class_id=0x0346 slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + item2, /* [BP-04h] type=0x24 */ + riderList, /* [BP-06h] type=0x6C */ + r1, /* [BP-08h] type=0x69 */ + r2, /* [BP-0Ah] type=0x69 */ + h, /* [BP-0Ch] type=0x69 */ + x, /* [BP-0Eh] type=0x69 */ + y, /* [BP-10h] type=0x69 */ + z, /* [BP-11h] type=0x62 */ + qLo; /* [BP-13h] type=0x69 */ + + entry: + set_info(1, *(arg_06)); + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + h = Item.getNpcNum(arg_06); + if (h & 32) goto block_025C; + + block_0233: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFC string_bytes=0x1 loop_type=0x6 */ + + block_0243: + if condition goto block_025A; + + block_0246: + /* create_list element_size=0x2 count=0x1 */ + /* append_list */ + /* free_local_list bp_offset=0xFA target=[BP-06h] */ + riderList = item2; + /* loopnext */ + goto block_0243; + + block_025A: + + block_025C: + if (h & 64) goto block_0291; + + block_0267: + /* bit_not */ + item2 = *(arg_06); + goto block_0375; + + block_0291: + class_0A0C_slot_20(3); + r1 = retval; + + block_02A0: + if 1 goto block_02CB; + + block_02A8: + class_0A0C_slot_20(3); + r2 = retval; + if (r2 != r1) goto block_02C8; + + block_02C2: + goto block_02CB; + + block_02C8: + goto block_02A0; + + block_02CB: + x = Intrinsic0013(arg_06); + y = Item.legal_create(arg_06); + z = Item.getZ(arg_06); + qLo = Item.getNpcNum(arg_06); + spawn class_0A1E_slot_2A(pid, arg_06); + suspend; + + block_0375: + /* free_local_list bp_offset=0xFA target=[BP-06h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/ROLL_NS/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/ROLL_NS/slot_21_slot_21.txt new file mode 100644 index 0000000..e8b5960 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/ROLL_NS/slot_21_slot_21.txt @@ -0,0 +1,281 @@ +function roll_ns_slot_21() /* entry=186 class_id=0x0346 slot=0x21 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + time, /* [BP-02h] type=0x69 */ + f, /* [BP-04h] type=0x69 */ + a, /* [BP-06h] type=0x69 */ + total, /* [BP-08h] type=0x69 */ + counter, /* [BP-0Ah] type=0x69 */ + dz, /* [BP-0Ch] type=0x69 */ + oldz, /* [BP-0Eh] type=0x69 */ + wp, /* [BP-13h] type=0x24 */ + cargo, /* [BP-15h] type=0x24 */ + zCheck, /* [BP-17h] type=0x69 */ + zMax; /* [BP-18h] type=0x62 */ + + entry: + set_info(0x0001, *(arg_06)); + a = Item.getNpcNum(arg_06); + time = (a & 31); + if (time != 0) goto block_0419; + + block_0412: + time = 1; + + block_0419: + f = Item.getFrame(arg_06); + wp = Intrinsic0013(arg_06); + local_11 = Item.legal_create(arg_06); + local_0F = Item.getZ(arg_06); + if (a & 32) goto block_078A; + + block_0478: + if (a < 0x0080) goto block_0607; + + block_0484: + if 1 goto block_0604; + + block_048C: + f = (f - 1); + if (f < 0) goto block_04AB; + + block_04A4: + f = 3; + + block_04AB: + total = 0; + /* loopscr value_u8=0x24 */ + /* loop current_var=0xEB string_bytes=0x1 loop_type=0x6 */ + + block_04C2: + if condition goto block_04DE; + + block_04C5: + total = (1 + total); + /* loopnext */ + goto block_04C2; + + block_04DE: + local_11 = (local_11 + 8); + if (Item.pop(0, 0, wp, arg_06) != 0) goto block_057C; + + block_0508: + counter = 1; + + block_050F: + if (counter <= total) goto block_0557; + + block_051A: + cargo = Intrinsic0023(); + counter = (1 + counter); + goto block_050F; + + block_0557: + spawn class_0346_slot_20(pid, arg_06); + suspend; + goto block_0AA7; + + block_057C: + counter = 1; + + block_0583: + if (counter <= total) goto block_05CE; + + block_058E: + cargo = Intrinsic0023(); + counter = (1 + counter); + goto block_0583; + + block_05CE: + spawn class_0A0C_slot_32(pid, time, 0x00000000); + suspend; + goto block_0484; + + block_0604: + goto block_0787; + + block_0607: + if 1 goto block_0787; + + block_060F: + f = (1 + f); + if (f > 3) goto block_062E; + + block_0627: + f = 0; + + block_062E: + total = 0; + /* loopscr value_u8=0x24 */ + /* loop current_var=0xEB string_bytes=0x1 loop_type=0x6 */ + + block_0645: + if condition goto block_0661; + + block_0648: + total = (1 + total); + /* loopnext */ + goto block_0645; + + block_0661: + local_11 = (local_11 - 8); + if (Item.pop(0, 0, wp, arg_06) != 0) goto block_06FF; + + block_068B: + counter = 1; + + block_0692: + if (counter <= total) goto block_06DA; + + block_069D: + cargo = Intrinsic0023(); + counter = (1 + counter); + goto block_0692; + + block_06DA: + spawn class_0346_slot_20(pid, arg_06); + suspend; + goto block_0AA7; + + block_06FF: + counter = 1; + + block_0706: + if (counter <= total) goto block_0751; + + block_0711: + cargo = Intrinsic0023(); + counter = (1 + counter); + goto block_0706; + + block_0751: + spawn class_0A0C_slot_32(pid, time, 0x00000000); + suspend; + goto block_0607; + + block_0787: + goto block_0AA7; + + block_078A: + zCheck = 0; + zMax = local_0F; + if (a < 0x0080) goto block_0927; + + block_07A4: + if 1 goto block_0924; + + block_07AC: + f = (f - 1); + if (f < 0) goto block_07CB; + + block_07C4: + f = 3; + + block_07CB: + local_11 = (local_11 + 8); + if (Item.pop(0, 0, wp, arg_06) != 0) goto block_0840; + + block_07F3: + local_0F = (1 + local_0F); + if (Item.pop(0, 0, wp, arg_06) != 0) goto block_0840; + + block_081B: + spawn class_0346_slot_20(pid, arg_06); + suspend; + goto block_0AA7; + + block_0840: + if (local_0F > 1) goto block_088A; + + block_084B: + local_0F = (local_0F - 4); + if (Item.pop(0, 0, wp, arg_06) != 0) goto block_087D; + + block_0873: + local_0F = (local_0F + 4); + + block_087D: + zCheck = (zMax - local_0F); + goto block_08EE; + + block_088A: + if (zCheck > 12) goto block_08EE; + + block_0895: + spawn class_0A0C_slot_32(pid, 6, 0x00000000); + suspend; + spawn class_0346_slot_20(pid, arg_06); + suspend; + goto block_0AA7; + + block_08EB: + goto block_08EE; + + block_08EE: + spawn class_0A0C_slot_32(pid, time, 0x00000000); + suspend; + goto block_07A4; + + block_0924: + goto block_0AA7; + + block_0927: + if 1 goto block_0AA7; + + block_092F: + f = (1 + f); + if (f > 3) goto block_094E; + + block_0947: + f = 0; + + block_094E: + local_11 = (local_11 - 8); + if (Item.pop(0, 0, wp, arg_06) != 0) goto block_09C3; + + block_0976: + local_0F = (1 + local_0F); + if (Item.pop(0, 0, wp, arg_06) != 0) goto block_09C3; + + block_099E: + spawn class_0346_slot_20(pid, arg_06); + suspend; + goto block_0AA7; + + block_09C3: + if (local_0F > 1) goto block_0A0D; + + block_09CE: + local_0F = (local_0F - 4); + if (Item.pop(0, 0, wp, arg_06) != 0) goto block_0A00; + + block_09F6: + local_0F = (local_0F + 4); + + block_0A00: + zCheck = (zMax - local_0F); + goto block_0A71; + + block_0A0D: + if (zCheck > 12) goto block_0A71; + + block_0A18: + spawn class_0A0C_slot_32(pid, 6, 0x00000000); + suspend; + spawn class_0346_slot_20(pid, arg_06); + suspend; + goto block_0AA7; + + block_0A6E: + goto block_0A71; + + block_0A71: + spawn class_0A0C_slot_32(pid, time, 0x00000000); + suspend; + goto block_0927; + + block_0AA7: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/RSTATION/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/RSTATION/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..8aedbd7 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/RSTATION/slot_0F_enterFastArea.txt @@ -0,0 +1,13 @@ +function rstation_enterFastArea() /* entry=85 class_id=0x01A6 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (!Item.getFrame(arg_06)) goto block_010C; + + block_00FE: + + block_010C: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/RTELEPAD/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/RTELEPAD/slot_06_gotHit.txt new file mode 100644 index 0000000..2525504 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/RTELEPAD/slot_06_gotHit.txt @@ -0,0 +1,56 @@ +function rtelepad_gotHit() /* entry=74 class_id=0x0188 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + ke, /* [BP+0Ch] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + npc; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + item = ref; + class_0A0C_slot_2C(ke, ref); + if retval goto block_010A; + + block_0104: + goto block_0199; + + block_010A: + if (Item.isNpc(item) != 0) goto block_0127; + + block_011C: + + block_0127: + if (Intrinsic0070() != 1) goto block_0199; + + block_0135: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x6 */ + + block_0150: + if condition goto block_0191; + + block_0153: + if (npc < 0x0100) goto block_018D; + + block_015F: + if (npc != 1) goto block_018D; + + block_016A: + + block_018D: + /* loopnext */ + goto block_0150; + + block_0191: + goto block_0199; + + block_0199: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/RTELEPAD/slot_09_release.txt b/USECODE/EUSECODE_extracted/pseudocode/RTELEPAD/slot_09_release.txt new file mode 100644 index 0000000..568e319 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/RTELEPAD/slot_09_release.txt @@ -0,0 +1,65 @@ +function rtelepad_release() /* entry=74 class_id=0x0188 slot=0x09 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + tele, /* [BP-02h] type=0x24 */ + npc; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x020D, *(arg_06)); + process_exclude(); + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x6 */ + + block_0225: + if condition goto block_0232; + + block_0228: + goto block_02B0; + + block_022E: + /* loopnext */ + goto block_0225; + + block_0232: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x6 */ + + block_024F: + if condition goto block_02AE; + + block_0252: + if (npc != 1) goto block_02A4; + + block_0260: + /* global_address global_id=0x3C */ + if Item.hurl(*(arg_06)) goto block_029D; + + block_0274: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0260; + + block_029D: + + block_02A4: + goto block_02B0; + + block_02AA: + /* loopnext */ + goto block_024F; + + block_02AE: + + block_02B0: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SAFE_EW/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/SAFE_EW/slot_0A_equip.txt new file mode 100644 index 0000000..8e27299 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SAFE_EW/slot_0A_equip.txt @@ -0,0 +1,102 @@ +function safe_ew_equip() /* entry=122 class_id=0x0213 slot=0x0A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + var, /* [BP+0Ah] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + item2, /* [BP-04h] type=0x24 */ + counter; /* [BP-06h] type=0x69 */ + + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if var goto block_0336; + + block_00F3: + counter = 0; + + block_0107: + if (counter <= 16) goto block_014F; + + block_010F: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0107; + + block_014F: + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_01A1: + if condition goto block_029E; + + block_01A4: + if (Item.getNpcNum(arg_06) != Item.getNpcNum(item)) goto block_029A; + + block_01C0: + class_0A0C_slot_2E(item); + item2 = retval; + if ((((Intrinsic003C(item2) != 10) || (Intrinsic003C(item2) != 11)) || (Intrinsic003C(item2) != 12)) || (Intrinsic003C(item2) != 13)) goto block_0274; + + block_021A: + if (!Item.getCY(1, item2)) goto block_0271; + + block_022F: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + + block_0271: + goto block_029A; + + block_0274: + spawn class_0A0C_slot_31(pid, item2, 0x00000000); + suspend; + + block_029A: + /* loopnext */ + goto block_01A1; + + block_029E: + spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); + suspend; + counter = 0; + + block_02DB: + if (counter <= 16) goto block_0326; + + block_02E3: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_02DB; + + block_0326: + goto block_03C9; + + block_0336: + spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); + suspend; + counter = 0; + + block_0371: + if (counter <= 16) goto block_03BC; + + block_0379: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0371; + + block_03BC: + + block_03C9: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SAFE_NS/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/SAFE_NS/slot_0A_equip.txt new file mode 100644 index 0000000..3fce4cb --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SAFE_NS/slot_0A_equip.txt @@ -0,0 +1,102 @@ +function safe_ns_equip() /* entry=121 class_id=0x0212 slot=0x0A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + var, /* [BP+0Ah] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + item2, /* [BP-04h] type=0x24 */ + counter; /* [BP-06h] type=0x69 */ + + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if var goto block_0336; + + block_00F3: + counter = 0; + + block_0107: + if (counter <= 16) goto block_014F; + + block_010F: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0107; + + block_014F: + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_01A1: + if condition goto block_029E; + + block_01A4: + if (Item.getNpcNum(arg_06) != Item.getNpcNum(item)) goto block_029A; + + block_01C0: + class_0A0C_slot_2E(item); + item2 = retval; + if ((((Intrinsic003C(item2) != 10) || (Intrinsic003C(item2) != 11)) || (Intrinsic003C(item2) != 12)) || (Intrinsic003C(item2) != 13)) goto block_0274; + + block_021A: + if (!Item.getCY(1, item2)) goto block_0271; + + block_022F: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + + block_0271: + goto block_029A; + + block_0274: + spawn class_0A0C_slot_31(pid, item2, 0x00000000); + suspend; + + block_029A: + /* loopnext */ + goto block_01A1; + + block_029E: + spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); + suspend; + counter = 0; + + block_02DB: + if (counter <= 16) goto block_0326; + + block_02E3: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_02DB; + + block_0326: + goto block_03C9; + + block_0336: + spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); + suspend; + counter = 0; + + block_0371: + if (counter <= 16) goto block_03BC; + + block_0379: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0371; + + block_03BC: + + block_03C9: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SATARG/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/SATARG/slot_01_use.txt new file mode 100644 index 0000000..2bfe81c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SATARG/slot_01_use.txt @@ -0,0 +1,154 @@ +function satarg_use() /* entry=312 class_id=0x0549 slot=0x01 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + counter; /* [BP-04h] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if Item.getFrame(arg_06) goto block_0100; + + block_00FA: + goto block_05C1; + + block_0100: + + block_010B: + /* global_address global_id=0x3C */ + if Intrinsic0033() goto block_0144; + + block_011B: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_010B; + + block_0144: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + spawn class_0A1E_slot_28(pid, 0, 1, arg_06); + suspend; + spawn class_0A0C_slot_3B(0x00000000); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0290: + if condition goto block_02EA; + + block_0293: + if (Item.getNpcNum(item) != 0) goto block_02E6; + + block_02A8: + spawn class_0A0C_slot_32(Intrinsic00DA(pid, 30, 20), 0x00000000); + suspend; + + block_02E6: + /* loopnext */ + goto block_0290; + + block_02EA: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_030A: + if condition goto block_0390; + + block_030D: + spawn class_0A1E_slot_28(pid, 0, 1, item); + suspend; + if (Item.getFrame(item) < 2) goto block_035D; + + block_0347: + + block_035D: + spawn class_0A0C_slot_32(Intrinsic00DA(pid, 40, 20), 0x00000000); + suspend; + /* loopnext */ + goto block_030A; + + block_0390: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_03B0: + if condition goto block_0437; + + block_03B3: + spawn class_0A1E_slot_28(pid, 0, 1, item); + suspend; + if (Item.getFrame(item) < 4) goto block_0404; + + block_03ED: + + block_0404: + spawn class_0A0C_slot_32(Intrinsic00DA(pid, 50, 30), 0x00000000); + suspend; + /* loopnext */ + goto block_03B0; + + block_0437: + spawn class_0A0C_slot_32(pid, 0x00C8, 0x00000000); + suspend; + spawn class_0A0C_slot_26(pid, "15d", 0x00000000); + /* free_stack_string value_u8=0x0 target=[SP+00h] */ + suspend; + spawn class_0A0C_slot_32(pid, 0x00C8, 0x00000000); + suspend; + /* pop_global global_id=0x38 size=0x1 */ + spawn class_0A18_slot_20(1, pid, 0, *(arg_06), arg_06); + suspend; + spawn class_0A0C_slot_32(pid, 0x00C8, 0x00000000); + suspend; + if (Intrinsic0029() > 1) goto block_0543; + + block_051C: + spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); + suspend; + + block_0543: + spawn class_0A0C_slot_32(pid, 0x00C8, 0x00000000); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0588: + if condition goto block_05BF; + + block_058B: + if (Item.getNpcNum(item) != 0x00FF) goto block_05BB; + + block_05A1: + + block_05BB: + /* loopnext */ + goto block_0588; + + block_05BF: + + block_05C1: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SCANNER/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/SCANNER/slot_01_use.txt new file mode 100644 index 0000000..fce1412 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SCANNER/slot_01_use.txt @@ -0,0 +1,56 @@ +function scanner_use() /* entry=304 class_id=0x052D slot=0x01 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + n; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + set_info(0x00F0, 0); + /* global_address global_id=0x3C */ + if (Intrinsic0082() < 0x03E8) goto block_0164; + + block_0111: + spawn class_0A0C_slot_21(pid, 0x00B0, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 100, 0x00000000); + suspend; + goto block_0238; + + block_0164: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_01A2: + if condition goto block_01E9; + + block_01A5: + if ((Kernel.resetRef(n) != 0) && (n != Item.pop())) goto block_01E5; + + block_01C3: + class_0A11_slot_2B(n); + if retval goto block_01E5; + + block_01D3: + spawn class_052D_slot_20(n, arg_06); + + block_01E5: + /* loopnext */ + goto block_01A2; + + block_01E9: + spawn class_0A0C_slot_21(pid, 0x00BA, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 120, 0x00000000); + suspend; + + block_0238: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SCANNER/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/SCANNER/slot_20_slot_20.txt new file mode 100644 index 0000000..b59ff84 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SCANNER/slot_20_slot_20.txt @@ -0,0 +1,13 @@ +function scanner_slot_20() /* entry=304 class_id=0x052D slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + n; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x00F0, 0); + n = ref; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SCIENTIS/slot_0E_calledFromAnim.txt b/USECODE/EUSECODE_extracted/pseudocode/SCIENTIS/slot_0E_calledFromAnim.txt new file mode 100644 index 0000000..1742ee7 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SCIENTIS/slot_0E_calledFromAnim.txt @@ -0,0 +1,9 @@ +function scientis_calledFromAnim() /* entry=185 class_id=0x0344 slot=0x0E */ +{ + entry: + set_info(0x021A, *(arg_06)); + process_exclude(); + spawn class_0A1C_slot_20(Item.getQLo(arg_06), *(arg_06), arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SDOOR_E/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/SDOOR_E/slot_06_gotHit.txt new file mode 100644 index 0000000..4d62e9d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SDOOR_E/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function sdoor_e_gotHit() /* entry=228 class_id=0x03FF slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A06_slot_23(pid, vel, ref, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SDOOR_N/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/SDOOR_N/slot_06_gotHit.txt new file mode 100644 index 0000000..c4a1bf0 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SDOOR_N/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function sdoor_n_gotHit() /* entry=227 class_id=0x03F8 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A06_slot_23(pid, vel, ref, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SECRTEGG/slot_07_hatch.txt b/USECODE/EUSECODE_extracted/pseudocode/SECRTEGG/slot_07_hatch.txt new file mode 100644 index 0000000..d1cf60c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SECRTEGG/slot_07_hatch.txt @@ -0,0 +1,36 @@ +function secrtegg_hatch() /* entry=346 class_id=0x0906 slot=0x07 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + door, /* [BP-04h] type=0x24 */ + id, /* [BP-06h] type=0x69 */ + range; /* [BP-08h] type=0x69 */ + + entry: + set_info(0x0210, *(arg_06)); + process_exclude(); + id = 0; + range = 32; + id = Intrinsic003F(arg_06); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_0124: + if condition goto block_014E; + + block_0127: + if (id != Item.getNpcNum(door)) goto block_014A; + + block_013C: + spawn class_0A06_slot_20(door); + + block_014A: + /* loopnext */ + goto block_0124; + + block_014E: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SENTRY/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/SENTRY/slot_06_gotHit.txt new file mode 100644 index 0000000..3e98f49 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SENTRY/slot_06_gotHit.txt @@ -0,0 +1,14 @@ +function sentry_gotHit() /* entry=100 class_id=0x01CD slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A1A_slot_49(vel, ref, arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SENTRY/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/SENTRY/slot_0A_equip.txt new file mode 100644 index 0000000..d343b64 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SENTRY/slot_0A_equip.txt @@ -0,0 +1,20 @@ +function sentry_equip() /* entry=100 class_id=0x01CD slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (Item.pop() != 0) goto block_0290; + + block_0265: + spawn class_0A1A_slot_24(pid, arg_0A, Item.pop(), arg_06); + suspend; + goto block_02B7; + + block_0290: + spawn class_0A1A_slot_24(pid, arg_0A, global[0x003C], arg_06); + suspend; + + block_02B7: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SENTRY/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/SENTRY/slot_0B_unequip.txt new file mode 100644 index 0000000..86008c6 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SENTRY/slot_0B_unequip.txt @@ -0,0 +1,17 @@ +function sentry_unequip() /* entry=100 class_id=0x01CD slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 4) goto block_0160; + + block_015A: + goto block_017B; + + block_0160: + spawn class_0A1A_slot_27(arg_06); + + block_017B: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SENTRY/slot_0E_calledFromAnim.txt b/USECODE/EUSECODE_extracted/pseudocode/SENTRY/slot_0E_calledFromAnim.txt new file mode 100644 index 0000000..03d7028 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SENTRY/slot_0E_calledFromAnim.txt @@ -0,0 +1,15 @@ +function sentry_calledFromAnim() /* entry=100 class_id=0x01CD slot=0x0E */ +{ + var + referent, /* [BP+00h] type=0x69 */ + n, /* [BP-02h] type=0x24 */ + dir; /* [BP-04h] type=0x69 */ + + entry: + set_info(0x021A, *(arg_06)); + process_exclude(); + n = *(arg_06); + dir = Intrinsic00FA(n); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SENTRY/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/SENTRY/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..67ace15 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SENTRY/slot_0F_enterFastArea.txt @@ -0,0 +1,17 @@ +function sentry_enterFastArea() /* entry=100 class_id=0x01CD slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 4) goto block_0103; + + block_00FD: + goto block_011E; + + block_0103: + spawn class_0A1A_slot_27(arg_06); + + block_011E: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SENTRY/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/SENTRY/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..2ff480e --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SENTRY/slot_10_leaveFastArea.txt @@ -0,0 +1,11 @@ +function sentry_leaveFastArea() /* entry=100 class_id=0x01CD slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + /* bit_not */ + class_0A0C_slot_33(1, *(arg_06)); + class_0A0C_slot_33(0x020A, *(arg_06)); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SFXTRIG/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/SFXTRIG/slot_0A_equip.txt new file mode 100644 index 0000000..4a2e727 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SFXTRIG/slot_0A_equip.txt @@ -0,0 +1,28 @@ +function sfxtrig_equip() /* entry=285 class_id=0x04E2 slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 0x1000) goto block_010A; + + block_0104: + goto block_016F; + + block_010A: + class_0A1E_slot_23(0x1000, arg_06); + + block_0126: + if Item.touch(arg_0A, arg_06) goto block_0160; + + block_0137: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0126; + + block_0160: + class_0A1E_slot_24(0x1000, arg_06); + + block_016F: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SHOCKER/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/SHOCKER/slot_20_slot_20.txt new file mode 100644 index 0000000..fb522bb --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SHOCKER/slot_20_slot_20.txt @@ -0,0 +1,90 @@ +function shocker_slot_20() /* entry=389 class_id=0x0A13 slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + randNum, /* [BP-02h] type=0x69 */ + var, /* [BP-04h] type=0x69 */ + duration, /* [BP-06h] type=0x69 */ + skill, /* [BP-08h] type=0x69 */ + kernelCheck, /* [BP-0Ah] type=0x69 */ + counter; /* [BP-0Ch] type=0x69 */ + + entry: + set_info(0x020A, *(arg_06)); + set_info(0x0205, *(arg_06)); + if (Item.hurl(arg_06) != 0) goto block_013F; + + block_0120: + class_0A0C_slot_20(29); + randNum = (retval + 1); + + block_013F: + var = Item.hurl(arg_06); + if (var != 31) goto block_0162; + + block_0158: + duration = 1; + goto block_0196; + + block_0162: + if (var > 31) goto block_0179; + + block_0170: + goto block_02EB; + + block_0176: + goto block_0196; + + block_0179: + skill = Intrinsic0029(); + duration = ((6 - Intrinsic0029()) * (10 + var)); + + block_0196: + spawn class_0A0C_slot_32(pid, duration, 0x00000000); + suspend; + + block_01BC: + suspend; + kernelCheck = Item.hurl(0x020C, *(arg_06)); + if (kernelCheck != 0) goto block_01F5; + + block_01E7: + spawn class_0A13_slot_21(arg_06); + + block_01F5: + class_0A0C_slot_20(1); + if retval goto block_0215; + + block_0205: + goto block_0222; + + block_0215: + + block_0222: + counter = 0; + + block_0229: + if (counter <= 5) goto block_027C; + + block_0231: + class_0A0C_slot_20(pid, 5, 5); + spawn class_0A0C_slot_32(retval, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0229; + + block_027C: + if (duration > 1) goto block_02E8; + + block_028A: + class_0A0C_slot_33(0x020C, *(arg_06)); + spawn class_0A0C_slot_32(pid, duration, 0x00000000); + suspend; + + block_02E8: + goto block_01BC; + + block_02EB: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SHOCKER/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/SHOCKER/slot_21_slot_21.txt new file mode 100644 index 0000000..538aebb --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SHOCKER/slot_21_slot_21.txt @@ -0,0 +1,51 @@ +function shocker_slot_21() /* entry=389 class_id=0x0A13 slot=0x21 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + monster; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x0205, *(arg_06)); + set_info(0x020C, *(arg_06)); + + block_0366: + suspend; + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_03B6: + if condition goto block_0461; + + block_03B9: + if (Item.isNpc(monster) != 1) goto block_045D; + + block_03CB: + if (!Kernel.resetRef(monster)) goto block_045D; + + block_03DE: + if ((Item.overlaps(monster, arg_06) != 1) && (Item.getFrame(arg_06) < 6)) goto block_045D; + + block_0402: + class_0A0C_slot_20(pid, 8); + spawn class_0A11_slot_2D(retval, *(arg_06), monster); + suspend; + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0466; + + block_045D: + /* loopnext */ + goto block_03B6; + + block_0461: + goto block_0366; + + block_0466: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SHOCKEW/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/SHOCKEW/slot_0B_unequip.txt new file mode 100644 index 0000000..d6cca03 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SHOCKEW/slot_0B_unequip.txt @@ -0,0 +1,14 @@ +function shockew_unequip() /* entry=95 class_id=0x01C2 slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + if arg_0A goto block_0100; + + block_00F3: + + block_0100: + spawn class_0A13_slot_20(arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SHOCKEW/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/SHOCKEW/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..e7170f2 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SHOCKEW/slot_0F_enterFastArea.txt @@ -0,0 +1,9 @@ +function shockew_enterFastArea() /* entry=95 class_id=0x01C2 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + spawn class_0A13_slot_20(arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SHOCKEW/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/SHOCKEW/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..209d56c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SHOCKEW/slot_10_leaveFastArea.txt @@ -0,0 +1,11 @@ +function shockew_leaveFastArea() /* entry=95 class_id=0x01C2 slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + class_0A0C_slot_33(0x021B, *(arg_06)); + class_0A0C_slot_33(0x020A, *(arg_06)); + class_0A0C_slot_33(0x0205, *(arg_06)); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SHOCKEW1/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/SHOCKEW1/slot_0B_unequip.txt new file mode 100644 index 0000000..49de95d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SHOCKEW1/slot_0B_unequip.txt @@ -0,0 +1,17 @@ +function shockew1_unequip() /* entry=250 class_id=0x045A slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + if arg_0A goto block_0100; + + block_00F3: + + block_0100: + spawn class_0A13_slot_20(arg_06); + class_0A0C_slot_20(pid, 30); + spawn class_0A0C_slot_32((retval + 30), 0x00000000); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SHOCKEW1/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/SHOCKEW1/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..4a8da8c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SHOCKEW1/slot_0F_enterFastArea.txt @@ -0,0 +1,9 @@ +function shockew1_enterFastArea() /* entry=250 class_id=0x045A slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + spawn class_0A13_slot_20(arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SHOCKEW1/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/SHOCKEW1/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..21d5d08 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SHOCKEW1/slot_10_leaveFastArea.txt @@ -0,0 +1,11 @@ +function shockew1_leaveFastArea() /* entry=250 class_id=0x045A slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + class_0A0C_slot_33(0x021B, *(arg_06)); + class_0A0C_slot_33(0x020A, *(arg_06)); + class_0A0C_slot_33(0x0205, *(arg_06)); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SHOCKNS/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/SHOCKNS/slot_0B_unequip.txt new file mode 100644 index 0000000..7084846 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SHOCKNS/slot_0B_unequip.txt @@ -0,0 +1,14 @@ +function shockns_unequip() /* entry=97 class_id=0x01C9 slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + if arg_0A goto block_0100; + + block_00F3: + + block_0100: + spawn class_0A13_slot_20(arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SHOCKNS/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/SHOCKNS/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..5631477 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SHOCKNS/slot_0F_enterFastArea.txt @@ -0,0 +1,9 @@ +function shockns_enterFastArea() /* entry=97 class_id=0x01C9 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + spawn class_0A13_slot_20(arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SHOCKNS/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/SHOCKNS/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..30a9c36 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SHOCKNS/slot_10_leaveFastArea.txt @@ -0,0 +1,11 @@ +function shockns_leaveFastArea() /* entry=97 class_id=0x01C9 slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + class_0A0C_slot_33(0x021B, *(arg_06)); + class_0A0C_slot_33(0x020A, *(arg_06)); + class_0A0C_slot_33(0x0205, *(arg_06)); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SHOCKNS1/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/SHOCKNS1/slot_0B_unequip.txt new file mode 100644 index 0000000..f44ea5f --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SHOCKNS1/slot_0B_unequip.txt @@ -0,0 +1,17 @@ +function shockns1_unequip() /* entry=249 class_id=0x0459 slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + if arg_0A goto block_0100; + + block_00F3: + + block_0100: + spawn class_0A13_slot_20(arg_06); + class_0A0C_slot_20(pid, 30); + spawn class_0A0C_slot_32((retval + 30), 0x00000000); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SHOCKNS1/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/SHOCKNS1/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..3ff8aca --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SHOCKNS1/slot_0F_enterFastArea.txt @@ -0,0 +1,9 @@ +function shockns1_enterFastArea() /* entry=249 class_id=0x0459 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + spawn class_0A13_slot_20(arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SHOCKNS1/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/SHOCKNS1/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..9aaeabb --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SHOCKNS1/slot_10_leaveFastArea.txt @@ -0,0 +1,11 @@ +function shockns1_leaveFastArea() /* entry=249 class_id=0x0459 slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + class_0A0C_slot_33(0x021B, *(arg_06)); + class_0A0C_slot_33(0x020A, *(arg_06)); + class_0A0C_slot_33(0x0205, *(arg_06)); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SICBFLNS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/SICBFLNS/slot_06_gotHit.txt new file mode 100644 index 0000000..82c21a7 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SICBFLNS/slot_06_gotHit.txt @@ -0,0 +1,164 @@ +function sicbflns_gotHit() /* entry=158 class_id=0x02E1 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + item = ref; + if (((ref != 1) && (Item.getFrame(arg_06) != 0)) && (Item.getNpcNum(arg_06) != 0)) goto block_0412; + + block_0123: + if (!Item.use(*(arg_06), item)) goto block_0140; + + block_013A: + goto block_0412; + + block_0140: + + block_014B: + /* global_address global_id=0x3C */ + if Intrinsic0033() goto block_0181; + + block_015B: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_014B; + + block_0181: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_01FC: + if condition goto block_022F; + + block_01FF: + if (Item.getFrame(item) < 2) goto block_022B; + + block_0214: + + block_022B: + /* loopnext */ + goto block_01FC; + + block_022F: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_024F: + if condition goto block_0282; + + block_0252: + if (Item.getFrame(item) < 1) goto block_027E; + + block_0267: + + block_027E: + /* loopnext */ + goto block_024F; + + block_0282: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_02A2: + if condition goto block_02D5; + + block_02A5: + if (Item.getFrame(item) < 1) goto block_02D1; + + block_02BA: + + block_02D1: + /* loopnext */ + goto block_02A2; + + block_02D5: + + block_02E9: + if Item.hurl(0x0254, global[0x003C]) goto block_0326; + + block_02FD: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_02E9; + + block_0326: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0344: + if condition goto block_0384; + + block_0347: + if ((Item.getFrame(item) != 2) || (Item.getFrame(item) != 3)) goto block_0380; + + block_0369: + + block_0380: + /* loopnext */ + goto block_0344; + + block_0384: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_03A4: + if condition goto block_03CA; + + block_03A7: + if (Item.getFrame(item) != 1) goto block_03C6; + + block_03B9: + + block_03C6: + /* loopnext */ + goto block_03A4; + + block_03CA: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_03EA: + if condition goto block_0410; + + block_03ED: + if (Item.getFrame(item) != 1) goto block_040C; + + block_03FF: + + block_040C: + /* loopnext */ + goto block_03EA; + + block_0410: + + block_0412: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SICBFLNS/slot_09_release.txt b/USECODE/EUSECODE_extracted/pseudocode/SICBFLNS/slot_09_release.txt new file mode 100644 index 0000000..e736379 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SICBFLNS/slot_09_release.txt @@ -0,0 +1,18 @@ +function sicbflns_release() /* entry=158 class_id=0x02E1 slot=0x09 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020D, *(arg_06)); + process_exclude(); + if (Intrinsic0057(arg_06) != 0) goto block_0488; + + block_046A: + class_0A0C_slot_33(0x0254, global[0x003C]); + + block_0488: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SICBOXNS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/SICBOXNS/slot_06_gotHit.txt new file mode 100644 index 0000000..65ee285 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SICBOXNS/slot_06_gotHit.txt @@ -0,0 +1,98 @@ +function sicboxns_gotHit() /* entry=157 class_id=0x02E0 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2B(vel, ref); + if (retval && (Item.getFrame(arg_06) < 4)) goto block_0292; + + block_010D: + spawn class_0A1E_slot_27(pid, 100, vel, ref, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_0143; + + block_013D: + goto block_0292; + + block_0143: + class_0A0C_slot_33(0x0254, global[0x003C]); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0172: + if condition goto block_01E5; + + block_0175: + if ((Item.getFrame(item) != 0) || (Item.getFrame(item) != 1)) goto block_01AB; + + block_0191: + goto block_01E1; + + block_01AB: + if ((Item.getFrame(item) != 2) || (Item.getFrame(item) != 3)) goto block_01E1; + + block_01C7: + goto block_01E1; + + block_01E1: + /* loopnext */ + goto block_0172; + + block_01E5: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0205: + if condition goto block_0219; + + block_0208: + /* loopnext */ + goto block_0205; + + block_0219: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0239: + if condition goto block_024D; + + block_023C: + /* loopnext */ + goto block_0239; + + block_024D: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_026D: + if condition goto block_0281; + + block_0270: + /* loopnext */ + goto block_026D; + + block_0281: + + block_0292: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SIGNEW/slot_04_cachein.txt b/USECODE/EUSECODE_extracted/pseudocode/SIGNEW/slot_04_cachein.txt new file mode 100644 index 0000000..10b8a8e --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SIGNEW/slot_04_cachein.txt @@ -0,0 +1,13 @@ +function signew_cachein() /* entry=35 class_id=0x00BA slot=0x04 */ +{ + set_info(0x0213, *(arg_06)); + process_exclude(); + if ((Item.getFrame(arg_06) != 0)) { + if (Item.getFrame(arg_06) == 1) { + } + else if (Item.getFrame(arg_06) == 13) { + } + return; + } + return; +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SIGNNS/slot_04_cachein.txt b/USECODE/EUSECODE_extracted/pseudocode/SIGNNS/slot_04_cachein.txt new file mode 100644 index 0000000..5095820 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SIGNNS/slot_04_cachein.txt @@ -0,0 +1,13 @@ +function signns_cachein() /* entry=36 class_id=0x00BB slot=0x04 */ +{ + set_info(0x0213, *(arg_06)); + process_exclude(); + if ((Item.getFrame(arg_06) != 0)) { + if (Item.getFrame(arg_06) == 1) { + } + else if (Item.getFrame(arg_06) == 11) { + } + return; + } + return; +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SKILLBOX/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/SKILLBOX/slot_0A_equip.txt new file mode 100644 index 0000000..b0b7069 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SKILLBOX/slot_0A_equip.txt @@ -0,0 +1,77 @@ +function skillbox_equip() /* entry=286 class_id=0x04E3 slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + local_02 = Intrinsic0029(); + if (Item.getMapNum(arg_06) != 0) goto block_0265; + + block_0107: + if (Item.getFrame(arg_06) != 2) goto block_01FC; + + block_011C: + local_04 = Item.getNpcNum(arg_06); + if (local_02 != 1) goto block_015F; + + block_0135: + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + goto block_01E9; + + block_015F: + if (local_02 != 2) goto block_01A4; + + block_016A: + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + goto block_01E9; + + block_01A4: + if (local_02 >= 3) goto block_01E9; + + block_01AF: + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + goto block_01E9; + + block_01E9: + goto block_02D3; + + block_01FC: + if (local_02 >= (Item.getFrame(arg_06) + 2)) goto block_023B; + + block_0211: + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + goto block_0262; + + block_023B: + spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); + suspend; + + block_0262: + goto block_02D3; + + block_0265: + if (local_02 >= (Item.getFrame(arg_06) + 2)) goto block_02A8; + + block_027A: + spawn class_0A18_slot_20(pid, (0 + 0x0080), *(arg_06), arg_06); + suspend; + goto block_02D3; + + block_02A8: + spawn class_0A18_slot_20(pid, (1 + 0x0080), *(arg_06), arg_06); + suspend; + + block_02D3: + return; + + block_02EE: + arg_73 = local_02; + /* str_to_ptr */ + /* param_pid_chg bp_offset=0x0 target=[BP+00h] copy_type=0x0 */ + arg_71 = local_04; + arg_7A = *(arg_6C); + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SLIDEFLR/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/SLIDEFLR/slot_0B_unequip.txt new file mode 100644 index 0000000..6786047 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SLIDEFLR/slot_0B_unequip.txt @@ -0,0 +1,27 @@ +function slideflr_unequip() /* entry=279 class_id=0x04D5 slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + if (Item.getFrame(arg_06) != 9) goto block_0162; + + block_010D: + if (Item.getFrame(arg_06) != 2) goto block_0162; + + block_0122: + spawn class_0A0C_slot_32(pid, 4, 0x00000000); + suspend; + goto block_010D; + + block_0162: + if Item.touch(81, arg_06) goto block_0199; + + block_0173: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0162; + + block_0199: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SLIDEFLR/slot_13_avatarStoleSomething.txt b/USECODE/EUSECODE_extracted/pseudocode/SLIDEFLR/slot_13_avatarStoleSomething.txt new file mode 100644 index 0000000..a339909 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SLIDEFLR/slot_13_avatarStoleSomething.txt @@ -0,0 +1,27 @@ +function slideflr_avatarStoleSomething() /* entry=279 class_id=0x04D5 slot=0x13 */ +{ + entry: + set_info(0x022E, *(arg_06)); + process_exclude(); + if (Item.getFrame(arg_06) != 9) goto block_0242; + + block_01ED: + if (Item.getFrame(arg_06) != 9) goto block_0242; + + block_0202: + spawn class_0A0C_slot_32(pid, 4, 0x00000000); + suspend; + goto block_01ED; + + block_0242: + if Item.touch(81, arg_06) goto block_0279; + + block_0253: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0242; + + block_0279: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SL_EW-16/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/SL_EW-16/slot_0B_unequip.txt new file mode 100644 index 0000000..bf30b24 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SL_EW-16/slot_0B_unequip.txt @@ -0,0 +1,8 @@ +function sl_ew_16_unequip() /* entry=218 class_id=0x03B6 slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SL_EW-16/slot_13_avatarStoleSomething.txt b/USECODE/EUSECODE_extracted/pseudocode/SL_EW-16/slot_13_avatarStoleSomething.txt new file mode 100644 index 0000000..8bb6d19 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SL_EW-16/slot_13_avatarStoleSomething.txt @@ -0,0 +1,8 @@ +function sl_ew_16_avatarStoleSomething() /* entry=218 class_id=0x03B6 slot=0x13 */ +{ + entry: + set_info(0x022E, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SL_EW-4/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/SL_EW-4/slot_0B_unequip.txt new file mode 100644 index 0000000..4487ed8 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SL_EW-4/slot_0B_unequip.txt @@ -0,0 +1,8 @@ +function sl_ew_4_unequip() /* entry=216 class_id=0x03B4 slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SL_EW-4/slot_13_avatarStoleSomething.txt b/USECODE/EUSECODE_extracted/pseudocode/SL_EW-4/slot_13_avatarStoleSomething.txt new file mode 100644 index 0000000..f2ea6a4 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SL_EW-4/slot_13_avatarStoleSomething.txt @@ -0,0 +1,8 @@ +function sl_ew_4_avatarStoleSomething() /* entry=216 class_id=0x03B4 slot=0x13 */ +{ + entry: + set_info(0x022E, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SL_EW-8/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/SL_EW-8/slot_0B_unequip.txt new file mode 100644 index 0000000..7b3d237 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SL_EW-8/slot_0B_unequip.txt @@ -0,0 +1,8 @@ +function sl_ew_8_unequip() /* entry=217 class_id=0x03B5 slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SL_EW-8/slot_13_avatarStoleSomething.txt b/USECODE/EUSECODE_extracted/pseudocode/SL_EW-8/slot_13_avatarStoleSomething.txt new file mode 100644 index 0000000..199e876 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SL_EW-8/slot_13_avatarStoleSomething.txt @@ -0,0 +1,8 @@ +function sl_ew_8_avatarStoleSomething() /* entry=217 class_id=0x03B5 slot=0x13 */ +{ + entry: + set_info(0x022E, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SL_NS-16/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/SL_NS-16/slot_0B_unequip.txt new file mode 100644 index 0000000..e31ebcd --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SL_NS-16/slot_0B_unequip.txt @@ -0,0 +1,8 @@ +function sl_ns_16_unequip() /* entry=213 class_id=0x03AF slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SL_NS-16/slot_13_avatarStoleSomething.txt b/USECODE/EUSECODE_extracted/pseudocode/SL_NS-16/slot_13_avatarStoleSomething.txt new file mode 100644 index 0000000..de4bf26 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SL_NS-16/slot_13_avatarStoleSomething.txt @@ -0,0 +1,8 @@ +function sl_ns_16_avatarStoleSomething() /* entry=213 class_id=0x03AF slot=0x13 */ +{ + entry: + set_info(0x022E, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SL_NS-4/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/SL_NS-4/slot_0B_unequip.txt new file mode 100644 index 0000000..ec66473 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SL_NS-4/slot_0B_unequip.txt @@ -0,0 +1,8 @@ +function sl_ns_4_unequip() /* entry=215 class_id=0x03B1 slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SL_NS-4/slot_13_avatarStoleSomething.txt b/USECODE/EUSECODE_extracted/pseudocode/SL_NS-4/slot_13_avatarStoleSomething.txt new file mode 100644 index 0000000..fd554ed --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SL_NS-4/slot_13_avatarStoleSomething.txt @@ -0,0 +1,8 @@ +function sl_ns_4_avatarStoleSomething() /* entry=215 class_id=0x03B1 slot=0x13 */ +{ + entry: + set_info(0x022E, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SL_NS-8/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/SL_NS-8/slot_0B_unequip.txt new file mode 100644 index 0000000..daf750b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SL_NS-8/slot_0B_unequip.txt @@ -0,0 +1,8 @@ +function sl_ns_8_unequip() /* entry=214 class_id=0x03B0 slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SL_NS-8/slot_13_avatarStoleSomething.txt b/USECODE/EUSECODE_extracted/pseudocode/SL_NS-8/slot_13_avatarStoleSomething.txt new file mode 100644 index 0000000..4711ca8 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SL_NS-8/slot_13_avatarStoleSomething.txt @@ -0,0 +1,8 @@ +function sl_ns_8_avatarStoleSomething() /* entry=214 class_id=0x03B0 slot=0x13 */ +{ + entry: + set_info(0x022E, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SMALCHAI/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/SMALCHAI/slot_06_gotHit.txt new file mode 100644 index 0000000..1ee7f53 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SMALCHAI/slot_06_gotHit.txt @@ -0,0 +1,83 @@ +function smalchai_gotHit() /* entry=118 class_id=0x01FB slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + fram, /* [BP-02h] type=0x69 */ + item, /* [BP-04h] type=0x24 */ + count, /* [BP-06h] type=0x69 */ + spin, /* [BP-08h] type=0x69 */ + direction; /* [BP-0Ah] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + fram = Item.getFrame(arg_06); + if (fram > 7) goto block_010D; + + block_0107: + goto block_0254; + + block_010D: + class_0A0C_slot_2C(vel, ref); + if retval goto block_0254; + + block_011F: + class_0A0C_slot_20(10); + spin = (retval + 5); + class_0A0C_slot_20(1); + direction = retval; + if (direction != 0) goto block_01CA; + + block_0148: + count = 1; + + block_014F: + if (count <= spin) goto block_01C7; + + block_015A: + fram = (fram + 1); + if (fram != 8) goto block_0179; + + block_0172: + fram = 0; + + block_0179: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + count = (1 + count); + goto block_014F; + + block_01C7: + goto block_0254; + + block_01CA: + if (direction != 1) goto block_0254; + + block_01D2: + count = 1; + + block_01D9: + if (count <= spin) goto block_0251; + + block_01E4: + fram = (fram - 1); + if (fram != -1) goto block_0203; + + block_01FC: + fram = 7; + + block_0203: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + count = (1 + count); + goto block_01D9; + + block_0251: + goto block_0254; + + block_0254: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SMALLTAB/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/SMALLTAB/slot_06_gotHit.txt new file mode 100644 index 0000000..0b8b45c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SMALLTAB/slot_06_gotHit.txt @@ -0,0 +1,37 @@ +function smalltab_gotHit() /* entry=5 class_id=0x002D slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if retval goto block_018E; + + block_00FD: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFE string_bytes=0x1 loop_type=0x6 */ + + block_010D: + if condition goto block_0144; + + block_0110: + class_0A0C_slot_20(1, 10); + class_0A0C_slot_20((retval + 10), 10); + class_0A0C_slot_20(retval, 10); + /* loopnext */ + goto block_010D; + + block_0144: + class_0A0C_slot_20(1); + spawn class_0A1E_slot_28(pid, 0, 0, arg_06); + suspend; + + block_018E: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SOLDIER/slot_0E_calledFromAnim.txt b/USECODE/EUSECODE_extracted/pseudocode/SOLDIER/slot_0E_calledFromAnim.txt new file mode 100644 index 0000000..1e585fd --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SOLDIER/slot_0E_calledFromAnim.txt @@ -0,0 +1,9 @@ +function soldier_calledFromAnim() /* entry=201 class_id=0x0384 slot=0x0E */ +{ + entry: + set_info(0x021A, *(arg_06)); + process_exclude(); + spawn class_0A1C_slot_20(Item.getQLo(arg_06), *(arg_06), arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SPANEL/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/SPANEL/slot_01_use.txt new file mode 100644 index 0000000..7cbe6bf --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SPANEL/slot_01_use.txt @@ -0,0 +1,21 @@ +function spanel_use() /* entry=211 class_id=0x03AA slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if (Item.getMapNum(arg_06) != 0) goto block_0148; + + block_00FD: + /* global_address global_id=0x3C */ + if (Item.getType() < 40) goto block_0121; + + block_0113: + + block_0121: + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + + block_0148: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SPECIAL/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/SPECIAL/slot_0A_equip.txt new file mode 100644 index 0000000..aab5be3 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SPECIAL/slot_0A_equip.txt @@ -0,0 +1,15 @@ +function special_equip() /* entry=272 class_id=0x04CA slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + class_0A0C_slot_33(0x021B, *(arg_06)); + if arg_0A goto block_012B; + + block_011D: + spawn class_04CA_slot_21(arg_06); + + block_012B: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SPECIAL/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/SPECIAL/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..8cbbd92 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SPECIAL/slot_0F_enterFastArea.txt @@ -0,0 +1,42 @@ +function special_enterFastArea() /* entry=272 class_id=0x04CA slot=0x0F */ +{ + var + referent, /* [BP+00h] type=0x69 */ + mapNum, /* [BP-02h] type=0x69 */ + npcNum; /* [BP-04h] type=0x69 */ + + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if Item.hurl(arg_06) goto block_0732; + + block_063C: + mapNum = Item.getMapNum(arg_06); + npcNum = Intrinsic00FA(arg_06); + if (mapNum != 1) goto block_06B4; + + block_0663: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + spawn class_0A18_slot_20(pid, (0x0080 + 0), *(arg_06), arg_06); + suspend; + + block_06B4: + if (npcNum != 1) goto block_0710; + + block_06BF: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + spawn class_0A18_slot_20(pid, (0x0080 + 1), *(arg_06), arg_06); + suspend; + + block_0710: + if ((mapNum > 2) || (npcNum > 2)) goto block_0732; + + block_0724: + spawn class_04CA_slot_21(arg_06); + + block_0732: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SPECIAL/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/SPECIAL/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..d3e6366 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SPECIAL/slot_10_leaveFastArea.txt @@ -0,0 +1,25 @@ +function special_leaveFastArea() /* entry=272 class_id=0x04CA slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + if Item.hurl(arg_06) goto block_07FB; + + block_0781: + if (Item.getMapNum(arg_06) != 2) goto block_07BE; + + block_0793: + spawn class_0A18_slot_20(pid, (0x0080 + 0), *(arg_06), arg_06); + suspend; + + block_07BE: + if (Intrinsic00FA(arg_06) != 2) goto block_07FB; + + block_07D0: + spawn class_0A18_slot_20(pid, (0x0080 + 1), *(arg_06), arg_06); + suspend; + + block_07FB: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SPECIAL/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/SPECIAL/slot_20_slot_20.txt new file mode 100644 index 0000000..993d0a5 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SPECIAL/slot_20_slot_20.txt @@ -0,0 +1,161 @@ +function special_slot_20() /* entry=272 class_id=0x04CA slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + cmd, /* [BP+0Ah] type=0x69 */ + phase, /* [BP+0Ch] type=0x69 */ + a, /* [BP-02h] type=0x69 */ + npc, /* [BP-04h] type=0x24 */ + q; /* [BP-06h] type=0x69 */ + + entry: + set_info(0x021B, *(arg_06)); + if (cmd != 3) goto block_01B4; + + block_0167: + /* global_address global_id=0x3C */ + a = Intrinsic00FA(); + if ((a <= 4) || (a >= 12)) goto block_01B1; + + block_018A: + spawn class_0A18_slot_20(pid, phase, *(arg_06), arg_06); + suspend; + + block_01B1: + goto block_04A3; + + block_01B4: + if (cmd != 4) goto block_0209; + + block_01BC: + /* global_address global_id=0x3C */ + a = Intrinsic00FA(); + if ((a > 4) && (a < 12)) goto block_0206; + + block_01DF: + spawn class_0A18_slot_20(pid, phase, *(arg_06), arg_06); + suspend; + + block_0206: + goto block_04A3; + + block_0209: + if (cmd != 5) goto block_024E; + + block_0211: + /* global_address global_id=0x3C */ + if (Intrinsic00CC() != 1) goto block_024B; + + block_0224: + spawn class_0A18_slot_20(pid, phase, *(arg_06), arg_06); + suspend; + + block_024B: + goto block_04A3; + + block_024E: + if (cmd != 6) goto block_02CC; + + block_0256: + /* global_address global_id=0x3C */ + if (Intrinsic00CC() != 0) goto block_02C9; + + block_0269: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + /* global_address global_id=0x3C */ + if (Intrinsic00CC() != 0) goto block_02C9; + + block_02A2: + spawn class_0A18_slot_20(pid, phase, *(arg_06), arg_06); + suspend; + + block_02C9: + goto block_04A3; + + block_02CC: + if (cmd != 7) goto block_0385; + + block_02D4: + a = 0; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_02F8: + if condition goto block_0318; + + block_02FB: + if (npc < 0x0100) goto block_0314; + + block_030A: + a = (1 + a); + + block_0314: + /* loopnext */ + goto block_02F8; + + block_0318: + if (a > 4) goto block_0352; + + block_032B: + spawn class_0A18_slot_20(pid, phase, *(arg_06), arg_06); + suspend; + + block_0352: + spawn class_0A0C_slot_32(pid, (Item.hurl(arg_06) * 9), 0x00000000); + suspend; + goto block_04A3; + + block_0385: + if (cmd != 8) goto block_043E; + + block_038D: + a = 0; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_03B1: + if condition goto block_03D1; + + block_03B4: + if (npc < 0x0100) goto block_03CD; + + block_03C3: + a = (1 + a); + + block_03CD: + /* loopnext */ + goto block_03B1; + + block_03D1: + if (a <= 4) goto block_040B; + + block_03E4: + spawn class_0A18_slot_20(pid, phase, *(arg_06), arg_06); + suspend; + + block_040B: + spawn class_0A0C_slot_32(pid, (Item.hurl(arg_06) * 9), 0x00000000); + suspend; + goto block_04A3; + + block_043E: + if (cmd != 9) goto block_04A3; + + block_0446: + q = Item.getNpcNum(arg_06); + class_0A0C_slot_20(q, 3); + spawn class_0A18_slot_20(pid, phase, *(arg_06), arg_06); + suspend; + goto block_04A3; + + block_04A3: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SPECIAL/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/SPECIAL/slot_21_slot_21.txt new file mode 100644 index 0000000..b4c6f88 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SPECIAL/slot_21_slot_21.txt @@ -0,0 +1,42 @@ +function special_slot_21() /* entry=272 class_id=0x04CA slot=0x21 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + time, /* [BP-04h] type=0x69 */ + phase1, /* [BP-06h] type=0x69 */ + phase2; /* [BP-08h] type=0x69 */ + + entry: + set_info(0x021B, *(arg_06)); + counter = 0; + time = Item.hurl(arg_06); + phase1 = Item.getMapNum(arg_06); + phase2 = Intrinsic00FA(arg_06); + + block_0526: + if 1 goto block_05D8; + + block_052E: + spawn class_04CA_slot_20(pid, (0x0080 + 0), phase1, arg_06); + suspend; + spawn class_04CA_slot_20(pid, (0x0080 + 1), phase2, arg_06); + suspend; + spawn class_0A0C_slot_32(pid, time, 0x00000000); + suspend; + counter = (1 + counter); + if ((phase1 != 8) || (phase1 != 7)) goto block_05D5; + + block_05C4: + if (counter >= 4) goto block_05D5; + + block_05CF: + goto block_05D8; + + block_05D5: + goto block_0526; + + block_05D8: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SPIDER/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/SPIDER/slot_20_slot_20.txt new file mode 100644 index 0000000..e2a6924 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SPIDER/slot_20_slot_20.txt @@ -0,0 +1,111 @@ +function spider_slot_20() /* entry=390 class_id=0x0A14 slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + spiderType, /* [BP+0Ah] type=0x69 */ + spider, /* [BP-02h] type=0x24 */ + target, /* [BP-04h] type=0x24 */ + dest, /* [BP-09h] type=0x24 */ + count, /* [BP-0Bh] type=0x69 */ + targetLoop; /* [BP-0Dh] type=0x69 */ + + entry: + set_info(1, *(arg_06)); + if (!spiderType) goto block_011B; + + block_0107: + class_0A1E_slot_23(4, arg_06); + goto block_03D4; + + block_011B: + if (Item.getStatus(arg_06) & 0x1000) goto block_0134; + + block_012E: + goto block_03D4; + + block_0134: + class_0A1E_slot_23(0x1000, arg_06); + targetLoop = spiderType; + + block_014A: + if (targetLoop >= 10) goto block_015F; + + block_0155: + targetLoop = (targetLoop - 10); + goto block_014A; + + block_015F: + suspend; + if (Item.pop() != 0) goto block_018A; + + block_017D: + target = Item.pop(); + goto block_0193; + + block_018A: + target = global[0x003C]; + + block_0193: + if ((Item.getZ(target) > (Item.getZ(arg_06) + 16)) || (Item.getZ(target) < (Item.getZ(arg_06) - 16))) goto block_01F2; + + block_01C9: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + goto block_0193; + + block_01F2: + if ((Item.getStatus(arg_06) & 4) || (Item.getFrame(arg_06) > 0)) goto block_0237; + + block_0214: + class_0A1E_slot_24(4, arg_06); + class_0A1E_slot_24(0x1000, arg_06); + goto block_03D4; + + block_0237: + count = 0; + + block_028A: + if (count <= 5) goto block_02D2; + + block_0292: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + count = (1 + count); + goto block_028A; + + block_02D2: + count = 1; + + block_0302: + if (count <= 9) goto block_034A; + + block_030A: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + count = (1 + count); + goto block_0302; + + block_034A: + if (Item.getQHi(target, arg_06) != 0) goto block_0387; + + block_035E: + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + goto block_034A; + + block_0387: + spawn class_0A14_slot_21(pid, targetLoop, target, spider, spider); + suspend; + if (spiderType < 99) goto block_03D1; + + block_03BC: + class_0A1E_slot_24(0x1000, arg_06); + goto block_03D4; + + block_03D1: + goto block_015F; + + block_03D4: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SPIDER/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/SPIDER/slot_21_slot_21.txt new file mode 100644 index 0000000..603c339 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SPIDER/slot_21_slot_21.txt @@ -0,0 +1,34 @@ +function spider_slot_21() /* entry=390 class_id=0x0A14 slot=0x21 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + spider, /* [BP+0Ah] type=0x69 */ + tar, /* [BP+0Ch] type=0x69 */ + targetLoop, /* [BP+0Eh] type=0x69 */ + target, /* [BP-02h] type=0x24 */ + x, /* [BP-04h] type=0x69 */ + y; /* [BP-06h] type=0x69 */ + + entry: + set_info(1, spider); + target = tar; + + block_0473: + if ((targetLoop - 1) > 0) goto block_0511; + + block_0484: + /* rsh */ + x = 1; + /* rsh */ + y = 1; + spawn class_0A14_slot_22((Intrinsic0013(target) - Intrinsic0013(arg_06)), (Item.legal_create(target) - Item.legal_create(arg_06)), pid, (Intrinsic0029() + 5), Item.getZ(arg_06), (y + Item.legal_create(arg_06)), (x + Intrinsic0013(arg_06)), arg_06); + suspend; + targetLoop = (targetLoop - 1); + goto block_0473; + + block_0511: + spawn class_0A14_slot_22(pid, (Intrinsic0029() + 5), Item.getZ(arg_06), Item.legal_create(target), Intrinsic0013(target), arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SPIDER/slot_22_slot_22.txt b/USECODE/EUSECODE_extracted/pseudocode/SPIDER/slot_22_slot_22.txt new file mode 100644 index 0000000..3d53d30 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SPIDER/slot_22_slot_22.txt @@ -0,0 +1,221 @@ +function spider_slot_22() /* entry=390 class_id=0x0A14 slot=0x22 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + destX, /* [BP+0Ah] type=0x69 */ + destY, /* [BP+0Ch] type=0x69 */ + destZ, /* [BP+0Eh] type=0x62 */ + vel, /* [BP+10h] type=0x69 */ + currentP, /* [BP-05h] type=0x24 */ + x, /* [BP-07h] type=0x69 */ + y, /* [BP-09h] type=0x69 */ + z, /* [BP-0Ah] type=0x62 */ + w, /* [BP-0Ch] type=0x69 */ + h, /* [BP-0Eh] type=0x69 */ + counter, /* [BP-10h] type=0x69 */ + minor, /* [BP-12h] type=0x69 */ + r, /* [BP-14h] type=0x69 */ + q, /* [BP-16h] type=0x69 */ + oabs, /* [BP-18h] type=0x69 */ + v, /* [BP-1Ah] type=0x69 */ + ovel, /* [BP-1Ch] type=0x69 */ + c, /* [BP-1Eh] type=0x69 */ + axis, /* [BP-20h] type=0x69 */ + ztarg, /* [BP-22h] type=0x69 */ + zcur, /* [BP-24h] type=0x69 */ + dif; /* [BP-26h] type=0x69 */ + + entry: + set_info(0x00F0, *(arg_06)); + x = Intrinsic0013(arg_06); + y = Item.legal_create(arg_06); + z = Item.getZ(arg_06); + w = ((destX - x) + 1); + h = ((destY - y) + 1); + counter = 0; + minor = 1; + ovel = vel; + c = 0; + axis = 1; + class_0A0C_slot_3F(w); + class_0A0C_slot_3F(retval, h); + if retval goto block_0652; + + block_064B: + axis = 0; + + block_0652: + if (axis != 0) goto block_06BD; + + block_065D: + class_0A0C_slot_3F(((h / w) * w)); + q = retval; + /* mod */ + class_0A0C_slot_3F(h, w); + r = retval; + if (w < 0) goto block_0699; + + block_068F: + ovel = (-1 * vel); + + block_0699: + if (h < 0) goto block_06AB; + + block_06A4: + minor = -1; + + block_06AB: + class_0A0C_slot_3F(w); + oabs = retval; + goto block_071A; + + block_06BD: + class_0A0C_slot_3F(((w / h) * h)); + q = retval; + /* mod */ + class_0A0C_slot_3F(w, h); + r = retval; + if (h < 0) goto block_06F9; + + block_06EF: + ovel = (-1 * vel); + + block_06F9: + if (w < 0) goto block_070B; + + block_0704: + minor = -1; + + block_070B: + class_0A0C_slot_3F(h); + oabs = retval; + + block_071A: + suspend; + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + zcur = (z & 0x00FF); + ztarg = (destZ & 0x00FF); + if (zcur != ztarg) goto block_07C2; + + block_076E: + class_0A0C_slot_3F((ztarg - zcur)); + dif = ((retval / 20) + 1); + if (dif != 0) goto block_0795; + + block_0791: + dif = 1; + + block_0795: + if (zcur < ztarg) goto block_07AD; + + block_07A0: + z = (z + dif); + goto block_07C2; + + block_07AD: + zcur = (zcur - dif); + z = (zcur & 0x00FF); + + block_07C2: + if (c >= oabs) goto block_083A; + + block_07D3: + if (zcur > (ztarg - 2)) goto block_07FF; + + block_07E4: + if (zcur < (ztarg + 2)) goto block_07FF; + + block_07F5: + /* word_to_dword */ + /* pop_result */ + goto block_096F; + + block_07FF: + currentP = x; + local_03 = y; + local_01 = z; + if (!Item.pop(0, 1, currentP, arg_06)) goto block_0837; + + block_082D: + /* word_to_dword */ + /* pop_result */ + goto block_096F; + + block_0837: + goto block_096C; + + block_083A: + c = (c + vel); + if (axis != 0) goto block_08E2; + + block_0855: + currentP = x; + local_03 = y; + local_01 = z; + if (!Item.pop(0, 1, currentP, arg_06)) goto block_088D; + + block_0883: + /* word_to_dword */ + /* pop_result */ + goto block_096F; + + block_088D: + x = (x + ovel); + v = 1; + + block_089E: + if (v <= vel) goto block_08DF; + + block_08A6: + counter = (counter + (r + q)); + if (counter >= oabs) goto block_08D2; + + block_08BE: + counter = (counter - oabs); + y = (y + minor); + + block_08D2: + v = (1 + v); + goto block_089E; + + block_08DF: + goto block_096C; + + block_08E2: + currentP = x; + local_03 = y; + local_01 = z; + if (!Item.pop(0, 1, currentP, arg_06)) goto block_091A; + + block_0910: + /* word_to_dword */ + /* pop_result */ + goto block_096F; + + block_091A: + y = (y + ovel); + v = 1; + + block_092B: + if (v <= vel) goto block_096C; + + block_0933: + counter = (counter + (r + q)); + if (counter >= oabs) goto block_095F; + + block_094B: + counter = (counter - oabs); + x = (x + minor); + + block_095F: + v = (1 + v); + goto block_092B; + + block_096C: + goto block_071A; + + block_096F: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SPIDPAD/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/SPIDPAD/slot_0A_equip.txt new file mode 100644 index 0000000..5ee6305 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SPIDPAD/slot_0A_equip.txt @@ -0,0 +1,19 @@ +function spidpad_equip() /* entry=204 class_id=0x0397 slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if arg_0A goto block_0151; + + block_013C: + spawn class_0A14_slot_20(arg_0A, arg_06); + goto block_016F; + + block_0151: + class_0A0C_slot_33(*(arg_06), 1); + class_0A1E_slot_23(4, arg_06); + + block_016F: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SPIDPAD/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/SPIDPAD/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..2984a6a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SPIDPAD/slot_10_leaveFastArea.txt @@ -0,0 +1,10 @@ +function spidpad_leaveFastArea() /* entry=204 class_id=0x0397 slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + class_0A0C_slot_33(*(arg_06), 1); + class_0A1E_slot_24(0x1000, arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SPIDWALK/slot_05_hit.txt b/USECODE/EUSECODE_extracted/pseudocode/SPIDWALK/slot_05_hit.txt new file mode 100644 index 0000000..60aa6bb --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SPIDWALK/slot_05_hit.txt @@ -0,0 +1,13 @@ +function spidwalk_hit() /* entry=203 class_id=0x0391 slot=0x05 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020B, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SPIDWALK/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/SPIDWALK/slot_06_gotHit.txt new file mode 100644 index 0000000..e93fd17 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SPIDWALK/slot_06_gotHit.txt @@ -0,0 +1,19 @@ +function spidwalk_gotHit() /* entry=203 class_id=0x0391 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if retval goto block_0141; + + block_0132: + + block_0141: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SPIDWALK/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/SPIDWALK/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..f20a2c6 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SPIDWALK/slot_10_leaveFastArea.txt @@ -0,0 +1,8 @@ +function spidwalk_leaveFastArea() /* entry=203 class_id=0x0391 slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SSBOX_EW/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/SSBOX_EW/slot_06_gotHit.txt new file mode 100644 index 0000000..5742e86 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SSBOX_EW/slot_06_gotHit.txt @@ -0,0 +1,49 @@ +function ssbox_ew_gotHit() /* entry=148 class_id=0x02B3 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if retval goto block_01F2; + + block_00FD: + if (!Item.getFrame(arg_06)) goto block_014E; + + block_0110: + spawn class_0A1E_slot_28(pid, 0, 0, arg_06); + suspend; + goto block_01F2; + + block_014E: + spawn class_0A1E_slot_27(pid, 100, vel, ref, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_01AE; + + block_017E: + class_0A0C_slot_20(1); + if retval goto block_019E; + + block_018E: + goto block_01AB; + + block_019E: + + block_01AB: + goto block_01F2; + + block_01AE: + spawn class_0A1E_slot_2A(pid, arg_06); + suspend; + spawn class_0A1E_slot_28(pid, 1, 1, arg_06); + suspend; + + block_01F2: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SSBOX_NS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/SSBOX_NS/slot_06_gotHit.txt new file mode 100644 index 0000000..b27ff19 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SSBOX_NS/slot_06_gotHit.txt @@ -0,0 +1,49 @@ +function ssbox_ns_gotHit() /* entry=152 class_id=0x02CA slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if retval goto block_01F2; + + block_00FD: + if (!Item.getFrame(arg_06)) goto block_014E; + + block_0110: + spawn class_0A1E_slot_28(pid, 0, 0, arg_06); + suspend; + goto block_01F2; + + block_014E: + spawn class_0A1E_slot_27(pid, 100, vel, ref, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_01AE; + + block_017E: + class_0A0C_slot_20(1); + if retval goto block_019E; + + block_018E: + goto block_01AB; + + block_019E: + + block_01AB: + goto block_01F2; + + block_01AE: + spawn class_0A1E_slot_2A(pid, arg_06); + suspend; + spawn class_0A1E_slot_28(pid, 1, 1, arg_06); + suspend; + + block_01F2: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SSWITCHE/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/SSWITCHE/slot_01_use.txt new file mode 100644 index 0000000..de918c1 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SSWITCHE/slot_01_use.txt @@ -0,0 +1,314 @@ +function sswitche_use() /* entry=248 class_id=0x0457 slot=0x01 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + a, /* [BP-01h] type=0x62 */ + b, /* [BP-02h] type=0x62 */ + a1, /* [BP-03h] type=0x62 */ + b1, /* [BP-04h] type=0x62 */ + c1, /* [BP-05h] type=0x62 */ + sswitch, /* [BP-07h] type=0x24 */ + switch1, /* [BP-09h] type=0x24 */ + switch2, /* [BP-0Bh] type=0x24 */ + switch3, /* [BP-0Dh] type=0x24 */ + timer, /* [BP-0Fh] type=0x24 */ + sswitch2, /* [BP-11h] type=0x24 */ + switch21, /* [BP-13h] type=0x24 */ + switch22, /* [BP-15h] type=0x24 */ + switch23, /* [BP-17h] type=0x24 */ + counter, /* [BP-19h] type=0x69 */ + qLo; /* [BP-1Bh] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + a = Item.getFrame(arg_06); + if (Item.getMapNum(arg_06) != 0) goto block_023C; + + block_0196: + if (a != 2) goto block_01D9; + + block_01A1: + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + goto block_0239; + + block_01D9: + if (a < 2) goto block_0239; + + block_01E7: + b = ((a + 1) & 1); + spawn class_0A18_slot_20(pid, a, *(arg_06), arg_06); + suspend; + goto block_0239; + + block_0239: + goto block_07CC; + + block_023C: + qLo = Item.getNpcNum(arg_06); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF9 string_bytes=0x6 loop_type=0x2 */ + + block_0268: + if condition goto block_0326; + + block_026B: + if (!(sswitch != *(arg_06))) goto block_0318; + + block_027F: + if (Item.getMapNum(sswitch) != 0) goto block_0318; + + block_0291: + if (Item.getNpcNum(sswitch) != 29) goto block_02BE; + + block_02A6: + switch1 = sswitch; + a1 = Item.getFrame(switch1); + goto block_0318; + + block_02BE: + if (Item.getNpcNum(sswitch) != 30) goto block_02EB; + + block_02D3: + switch2 = sswitch; + b1 = Item.getFrame(switch2); + goto block_0318; + + block_02EB: + if (Item.getNpcNum(sswitch) != 31) goto block_0318; + + block_0300: + switch3 = sswitch; + c1 = Item.getFrame(switch3); + goto block_0318; + + block_0318: + counter = (1 + counter); + /* loopnext */ + goto block_0268; + + block_0326: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xEF string_bytes=0x6 loop_type=0x2 */ + + block_0346: + if condition goto block_03BC; + + block_0349: + if (Item.getMapNum(sswitch2) != 0) goto block_03B8; + + block_035B: + if (Item.getNpcNum(sswitch2) != 29) goto block_037A; + + block_0370: + switch21 = sswitch2; + goto block_03B8; + + block_037A: + if (Item.getNpcNum(sswitch2) != 30) goto block_0399; + + block_038F: + switch22 = sswitch2; + goto block_03B8; + + block_0399: + if (Item.getNpcNum(sswitch2) != 31) goto block_03B8; + + block_03AE: + switch23 = sswitch2; + goto block_03B8; + + block_03B8: + /* loopnext */ + goto block_0346; + + block_03BC: + if (qLo != 29) goto block_0480; + + block_03C6: + a1 = Item.getFrame(arg_06); + switch1 = *(arg_06); + if (switch2 && switch3) goto block_047D; + + block_03EE: + if a1 goto block_043B; + + block_03F6: + a1 = 0; + b1 = 1; + goto block_047D; + + block_043B: + a1 = 1; + b1 = 0; + + block_047D: + goto block_0646; + + block_0480: + if (qLo != 30) goto block_0584; + + block_0488: + b1 = Item.getFrame(arg_06); + switch2 = *(arg_06); + if (switch1 && switch3) goto block_0581; + + block_04B0: + if b1 goto block_051E; + + block_04B8: + b1 = 0; + a1 = 1; + c1 = 1; + goto block_0581; + + block_051E: + b1 = 1; + a1 = 0; + c1 = 0; + + block_0581: + goto block_0646; + + block_0584: + if (qLo != 31) goto block_0646; + + block_058C: + c1 = Item.getFrame(arg_06); + switch3 = *(arg_06); + if (switch1 && switch2) goto block_0643; + + block_05B4: + if c1 goto block_0601; + + block_05BC: + c1 = 0; + b1 = 1; + goto block_0643; + + block_0601: + c1 = 1; + b1 = 0; + + block_0643: + goto block_0646; + + block_0646: + if a1 goto block_06C7; + + block_064E: + if (b1 || c1) goto block_0668; + + block_065F: + goto block_07F2; + + block_0665: + goto block_06C4; + + block_0668: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF1 string_bytes=0x6 loop_type=0x2 */ + + block_0686: + if condition goto block_06C2; + + block_0689: + if (Item.getNpcNum(timer) != 29) goto block_06BE; + + block_069E: + suspend; + + block_06BE: + /* loopnext */ + goto block_0686; + + block_06C2: + + block_06C4: + goto block_07A6; + + block_06C7: + if b1 goto block_073F; + + block_06CF: + if c1 goto block_06E0; + + block_06D7: + goto block_07F2; + + block_06DD: + goto block_073C; + + block_06E0: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF1 string_bytes=0x6 loop_type=0x2 */ + + block_06FE: + if condition goto block_073A; + + block_0701: + if (Item.getNpcNum(timer) != 30) goto block_0736; + + block_0716: + suspend; + + block_0736: + /* loopnext */ + goto block_06FE; + + block_073A: + + block_073C: + goto block_07A6; + + block_073F: + if c1 goto block_07A6; + + block_0747: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF1 string_bytes=0x6 loop_type=0x2 */ + + block_0765: + if condition goto block_07A1; + + block_0768: + if (Item.getNpcNum(timer) != 31) goto block_079D; + + block_077D: + suspend; + + block_079D: + /* loopnext */ + goto block_0765; + + block_07A1: + goto block_07A6; + + block_07A6: + spawn class_0A0C_slot_32(pid, 20, 0x00000000); + suspend; + + block_07CC: + spawn class_0A0C_slot_32(pid, 20, 0x00000000); + suspend; + + block_07F2: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SSWITCHE/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/SSWITCHE/slot_06_gotHit.txt new file mode 100644 index 0000000..21b2a2d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SSWITCHE/slot_06_gotHit.txt @@ -0,0 +1,27 @@ +function sswitche_gotHit() /* entry=248 class_id=0x0457 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2B(vel, ref); + if (retval != 4) goto block_0139; + + block_0106: + if (ref != 1) goto block_011A; + + block_0114: + goto block_0139; + + block_011A: + spawn class_0457_use(pid, arg_06); + suspend; + + block_0139: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SSWITCHN/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/SSWITCHN/slot_01_use.txt new file mode 100644 index 0000000..926439b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SSWITCHN/slot_01_use.txt @@ -0,0 +1,314 @@ +function sswitchn_use() /* entry=247 class_id=0x0452 slot=0x01 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + a, /* [BP-01h] type=0x62 */ + b, /* [BP-02h] type=0x62 */ + a1, /* [BP-03h] type=0x62 */ + b1, /* [BP-04h] type=0x62 */ + c1, /* [BP-05h] type=0x62 */ + sswitch, /* [BP-07h] type=0x24 */ + switch1, /* [BP-09h] type=0x24 */ + switch2, /* [BP-0Bh] type=0x24 */ + switch3, /* [BP-0Dh] type=0x24 */ + timer, /* [BP-0Fh] type=0x24 */ + sswitch2, /* [BP-11h] type=0x24 */ + switch21, /* [BP-13h] type=0x24 */ + switch22, /* [BP-15h] type=0x24 */ + switch23, /* [BP-17h] type=0x24 */ + counter, /* [BP-19h] type=0x69 */ + qLo; /* [BP-1Bh] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + a = Item.getFrame(arg_06); + if (Item.getMapNum(arg_06) != 0) goto block_023C; + + block_0196: + if (a != 2) goto block_01D9; + + block_01A1: + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + goto block_0239; + + block_01D9: + if (a < 2) goto block_0239; + + block_01E7: + b = ((a + 1) & 1); + spawn class_0A18_slot_20(pid, a, *(arg_06), arg_06); + suspend; + goto block_0239; + + block_0239: + goto block_07CC; + + block_023C: + qLo = Item.getNpcNum(arg_06); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF9 string_bytes=0x6 loop_type=0x2 */ + + block_0268: + if condition goto block_0326; + + block_026B: + if (!(sswitch != *(arg_06))) goto block_0318; + + block_027F: + if (Item.getMapNum(sswitch) != 0) goto block_0318; + + block_0291: + if (Item.getNpcNum(sswitch) != 29) goto block_02BE; + + block_02A6: + switch1 = sswitch; + a1 = Item.getFrame(switch1); + goto block_0318; + + block_02BE: + if (Item.getNpcNum(sswitch) != 30) goto block_02EB; + + block_02D3: + switch2 = sswitch; + b1 = Item.getFrame(switch2); + goto block_0318; + + block_02EB: + if (Item.getNpcNum(sswitch) != 31) goto block_0318; + + block_0300: + switch3 = sswitch; + c1 = Item.getFrame(switch3); + goto block_0318; + + block_0318: + counter = (1 + counter); + /* loopnext */ + goto block_0268; + + block_0326: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xEF string_bytes=0x6 loop_type=0x2 */ + + block_0346: + if condition goto block_03BC; + + block_0349: + if (Item.getMapNum(sswitch2) != 0) goto block_03B8; + + block_035B: + if (Item.getNpcNum(sswitch2) != 29) goto block_037A; + + block_0370: + switch21 = sswitch2; + goto block_03B8; + + block_037A: + if (Item.getNpcNum(sswitch2) != 30) goto block_0399; + + block_038F: + switch22 = sswitch2; + goto block_03B8; + + block_0399: + if (Item.getNpcNum(sswitch2) != 31) goto block_03B8; + + block_03AE: + switch23 = sswitch2; + goto block_03B8; + + block_03B8: + /* loopnext */ + goto block_0346; + + block_03BC: + if (qLo != 29) goto block_0480; + + block_03C6: + a1 = Item.getFrame(arg_06); + switch1 = *(arg_06); + if (switch2 && switch3) goto block_047D; + + block_03EE: + if a1 goto block_043B; + + block_03F6: + a1 = 0; + b1 = 1; + goto block_047D; + + block_043B: + a1 = 1; + b1 = 0; + + block_047D: + goto block_0646; + + block_0480: + if (qLo != 30) goto block_0584; + + block_0488: + b1 = Item.getFrame(arg_06); + switch2 = *(arg_06); + if (switch1 && switch3) goto block_0581; + + block_04B0: + if b1 goto block_051E; + + block_04B8: + b1 = 0; + a1 = 1; + c1 = 1; + goto block_0581; + + block_051E: + b1 = 1; + a1 = 0; + c1 = 0; + + block_0581: + goto block_0646; + + block_0584: + if (qLo != 31) goto block_0646; + + block_058C: + c1 = Item.getFrame(arg_06); + switch3 = *(arg_06); + if (switch1 && switch2) goto block_0643; + + block_05B4: + if c1 goto block_0601; + + block_05BC: + c1 = 0; + b1 = 1; + goto block_0643; + + block_0601: + c1 = 1; + b1 = 0; + + block_0643: + goto block_0646; + + block_0646: + if a1 goto block_06C7; + + block_064E: + if (b1 || c1) goto block_0668; + + block_065F: + goto block_07F2; + + block_0665: + goto block_06C4; + + block_0668: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF1 string_bytes=0x6 loop_type=0x2 */ + + block_0686: + if condition goto block_06C2; + + block_0689: + if (Item.getNpcNum(timer) != 29) goto block_06BE; + + block_069E: + suspend; + + block_06BE: + /* loopnext */ + goto block_0686; + + block_06C2: + + block_06C4: + goto block_07A6; + + block_06C7: + if b1 goto block_073F; + + block_06CF: + if c1 goto block_06E0; + + block_06D7: + goto block_07F2; + + block_06DD: + goto block_073C; + + block_06E0: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF1 string_bytes=0x6 loop_type=0x2 */ + + block_06FE: + if condition goto block_073A; + + block_0701: + if (Item.getNpcNum(timer) != 30) goto block_0736; + + block_0716: + suspend; + + block_0736: + /* loopnext */ + goto block_06FE; + + block_073A: + + block_073C: + goto block_07A6; + + block_073F: + if c1 goto block_07A6; + + block_0747: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF1 string_bytes=0x6 loop_type=0x2 */ + + block_0765: + if condition goto block_07A1; + + block_0768: + if (Item.getNpcNum(timer) != 31) goto block_079D; + + block_077D: + suspend; + + block_079D: + /* loopnext */ + goto block_0765; + + block_07A1: + goto block_07A6; + + block_07A6: + spawn class_0A0C_slot_32(pid, 20, 0x00000000); + suspend; + + block_07CC: + spawn class_0A0C_slot_32(pid, 20, 0x00000000); + suspend; + + block_07F2: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SSWITCHN/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/SSWITCHN/slot_06_gotHit.txt new file mode 100644 index 0000000..02bc5b4 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SSWITCHN/slot_06_gotHit.txt @@ -0,0 +1,27 @@ +function sswitchn_gotHit() /* entry=247 class_id=0x0452 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2B(vel, ref); + if (retval != 4) goto block_0139; + + block_0106: + if (ref != 1) goto block_011A; + + block_0114: + goto block_0139; + + block_011A: + spawn class_0452_use(pid, arg_06); + suspend; + + block_0139: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/STABLE/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/STABLE/slot_06_gotHit.txt new file mode 100644 index 0000000..fd4fa20 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/STABLE/slot_06_gotHit.txt @@ -0,0 +1,98 @@ +function stable_gotHit() /* entry=154 class_id=0x02DC slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + fram, /* [BP-02h] type=0x69 */ + item, /* [BP-04h] type=0x24 */ + thing; /* [BP-06h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + fram = Item.getFrame(arg_06); + if (fram > 8) goto block_010D; + + block_0107: + goto block_0270; + + block_010D: + class_0A0C_slot_2C(vel, ref); + if retval goto block_0270; + + block_011F: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_013D: + if condition goto block_018B; + + block_0140: + if (Item.getFrame(item) < 1) goto block_0187; + + block_0155: + spawn class_0A1E_slot_28(pid, 0, 1, item); + suspend; + + block_0187: + /* loopnext */ + goto block_013D; + + block_018B: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFC string_bytes=0x1 loop_type=0x6 */ + + block_019D: + if condition goto block_01D4; + + block_01A0: + class_0A0C_slot_20(1, 10); + class_0A0C_slot_20((retval + 10), 10); + class_0A0C_slot_20(retval, 10); + /* loopnext */ + goto block_019D; + + block_01D4: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_01F4: + if condition goto block_026E; + + block_01F7: + fram = Item.getFrame(item); + if (fram < 9) goto block_026A; + + block_0213: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFA string_bytes=0x1 loop_type=0x6 */ + + block_0231: + if condition goto block_0268; + + block_0234: + class_0A0C_slot_20(1, 10); + class_0A0C_slot_20((retval + 10), 10); + class_0A0C_slot_20(retval, 10); + /* loopnext */ + goto block_0231; + + block_0268: + + block_026A: + /* loopnext */ + goto block_01F4; + + block_026E: + + block_0270: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/STATICEW/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/STATICEW/slot_06_gotHit.txt new file mode 100644 index 0000000..5d977fe --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/STATICEW/slot_06_gotHit.txt @@ -0,0 +1,19 @@ +function staticew_gotHit() /* entry=198 class_id=0x037F slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if retval goto block_010C; + + block_00FD: + + block_010C: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/STATICEW/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/STATICEW/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..0a7c963 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/STATICEW/slot_0F_enterFastArea.txt @@ -0,0 +1,8 @@ +function staticew_enterFastArea() /* entry=198 class_id=0x037F slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/STATICNS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/STATICNS/slot_06_gotHit.txt new file mode 100644 index 0000000..133fbeb --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/STATICNS/slot_06_gotHit.txt @@ -0,0 +1,19 @@ +function staticns_gotHit() /* entry=131 class_id=0x0254 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if retval goto block_010C; + + block_00FD: + + block_010C: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/STATICNS/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/STATICNS/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..c840132 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/STATICNS/slot_0F_enterFastArea.txt @@ -0,0 +1,8 @@ +function staticns_enterFastArea() /* entry=131 class_id=0x0254 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/STEAM/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/STEAM/slot_20_slot_20.txt new file mode 100644 index 0000000..50f6122 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/STEAM/slot_20_slot_20.txt @@ -0,0 +1,67 @@ +function steam_slot_20() /* entry=391 class_id=0x0A15 slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + detect, /* [BP-03h] type=0x62 */ + n; /* [BP-05h] type=0x24 */ + + entry: + set_info(0x0001, *(arg_06)); + + block_00F6: + suspend; + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + detect = 0; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_014D: + if condition goto block_01F4; + + block_0150: + if Item.isNpc(item) goto block_01F0; + + block_015F: + if Item.overlaps(*(arg_06), item) goto block_01F0; + + block_0172: + n = item; + if (n != Item.pop()) goto block_01C4; + + block_018A: + class_0A11_slot_2B(n); + if (!retval) goto block_01C1; + + block_019E: + + block_01C1: + goto block_01E9; + + block_01C4: + + block_01E9: + detect = 1; + + block_01F0: + /* loopnext */ + goto block_014D; + + block_01F4: + if (!detect) goto block_0213; + + block_01FF: + class_0A1E_slot_24(4, arg_06); + goto block_0216; + + block_0213: + goto block_00F6; + + block_0216: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/STEAM/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/STEAM/slot_21_slot_21.txt new file mode 100644 index 0000000..46aee3c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/STEAM/slot_21_slot_21.txt @@ -0,0 +1,45 @@ +function steam_slot_21() /* entry=391 class_id=0x0A15 slot=0x21 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + n; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x0001, *(arg_06)); + n = ref; + if (Item.getStatus(arg_06) & 4) goto block_027E; + + block_0278: + goto block_0333; + + block_027E: + class_0A1E_slot_23(4, arg_06); + + block_028C: + suspend; + if (ref < 0x00FF) goto block_0330; + + block_02A8: + if (ref != Item.pop()) goto block_02E3; + + block_02B9: + goto block_031C; + + block_02E3: + class_0A11_slot_2B(n); + if (!retval) goto block_031C; + + block_02F7: + + block_031C: + spawn class_0A15_slot_20(arg_06); + goto block_0333; + + block_0330: + goto block_028C; + + block_0333: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/STEAM1/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/STEAM1/slot_06_gotHit.txt new file mode 100644 index 0000000..4ade4d8 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/STEAM1/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function steam1_gotHit() /* entry=293 class_id=0x04FA slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A15_slot_21(pid, ref, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/STEAM1/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/STEAM1/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..b6ee77e --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/STEAM1/slot_0F_enterFastArea.txt @@ -0,0 +1,8 @@ +function steam1_enterFastArea() /* entry=293 class_id=0x04FA slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/STEAM2/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/STEAM2/slot_06_gotHit.txt new file mode 100644 index 0000000..bbf30db --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/STEAM2/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function steam2_gotHit() /* entry=298 class_id=0x0511 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A15_slot_21(pid, ref, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/STEAM2/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/STEAM2/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..bb33b2a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/STEAM2/slot_0F_enterFastArea.txt @@ -0,0 +1,8 @@ +function steam2_enterFastArea() /* entry=298 class_id=0x0511 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/STEAMBOX/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/STEAMBOX/slot_0A_equip.txt new file mode 100644 index 0000000..535a5c3 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/STEAMBOX/slot_0A_equip.txt @@ -0,0 +1,93 @@ +function steambox_equip() /* entry=296 class_id=0x0500 slot=0x0A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + event, /* [BP+0Ah] type=0x69 */ + steam, /* [BP-02h] type=0x24 */ + steam2, /* [BP-04h] type=0x24 */ + direction; /* [BP-06h] type=0x69 */ + + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (event != 0) goto block_01D0; + + block_00FF: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x44 */ + /* loop current_var=0xFE string_bytes=0xA loop_type=0x2 */ + + block_0128: + if condition goto block_01CB; + + block_012B: + if (Item.getNpcNum(steam) != Item.getNpcNum(arg_06)) goto block_01C7; + + block_0147: + if (Item.getStatus(steam) & 0x1000) goto block_015D; + + block_015A: + goto block_01C7; + + block_015D: + if ((Intrinsic0016(steam) != 0x04FA) || (Intrinsic0016(steam) != 0x04F9)) goto block_0192; + + block_017B: + spawn class_0500_slot_21(0, steam, arg_06); + goto block_01C7; + + block_0192: + if ((Intrinsic0016(steam) != 0x0511) || (Intrinsic0016(steam) != 0x04FD)) goto block_01C7; + + block_01B0: + spawn class_0500_slot_21(1, steam, arg_06); + goto block_01C7; + + block_01C7: + /* loopnext */ + goto block_0128; + + block_01CB: + goto block_0306; + + block_01D0: + if (event != 1) goto block_0306; + + block_01D8: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_01F6: + if condition goto block_0301; + + block_01F9: + if (Item.getNpcNum(steam) != Item.getNpcNum(arg_06)) goto block_02FD; + + block_0215: + if (Item.getFrame(steam) != 0) goto block_0289; + + block_0224: + spawn class_0500_slot_20(0, steam2, arg_06); + goto block_02FD; + + block_0289: + if (Item.getFrame(steam) != 1) goto block_02FD; + + block_0298: + spawn class_0500_slot_20(1, steam2, arg_06); + goto block_02FD; + + block_02FD: + /* loopnext */ + goto block_01F6; + + block_0301: + goto block_0306; + + block_0306: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/STEAMBOX/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/STEAMBOX/slot_20_slot_20.txt new file mode 100644 index 0000000..4ca5bd3 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/STEAMBOX/slot_20_slot_20.txt @@ -0,0 +1,69 @@ +function steambox_slot_20() /* entry=296 class_id=0x0500 slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + steam, /* [BP+0Ah] type=0x24 */ + direction, /* [BP+0Ch] type=0x69 */ + count, /* [BP-02h] type=0x69 */ + steam2; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x00F0, *(arg_06)); + if Item.getQHi() goto block_03F6; + + block_036A: + if ((Item.getFrame(steam) != 39) && (Intrinsic0007(steam) != 1)) goto block_03F3; + + block_038C: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + if (Item.getFrame(steam) != 12) goto block_03F0; + + block_03C7: + class_0A1E_slot_23(4, steam); + spawn class_0A15_slot_20(steam); + + block_03F0: + goto block_036A; + + block_03F3: + goto block_041C; + + block_03F6: + spawn class_0A0C_slot_32(pid, 120, 0x00000000); + suspend; + + block_041C: + if (direction != 0) goto block_0455; + + block_0424: + if Item.getQHi() goto block_0442; + + block_042F: + goto block_0452; + + block_0442: + + block_0452: + goto block_048E; + + block_0455: + if (direction != 1) goto block_048E; + + block_045D: + if Item.getQHi() goto block_047B; + + block_0468: + goto block_048B; + + block_047B: + + block_048B: + goto block_048E; + + block_048E: + class_0A1E_slot_23(4, steam2); + spawn class_0A15_slot_20(steam2); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/STEAMBOX/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/STEAMBOX/slot_21_slot_21.txt new file mode 100644 index 0000000..a2de980 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/STEAMBOX/slot_21_slot_21.txt @@ -0,0 +1,79 @@ +function steambox_slot_21() /* entry=296 class_id=0x0500 slot=0x21 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + steam, /* [BP+0Ah] type=0x24 */ + direction, /* [BP+0Ch] type=0x69 */ + count, /* [BP-02h] type=0x69 */ + steam2; /* [BP-04h] type=0x24 */ + + entry: + set_info(1, *(arg_06)); + class_0A1E_slot_23(0x1000, steam); + if Item.getQHi() goto block_062E; + + block_056E: + if ((Intrinsic0016(steam) != 0x04F9) || (Intrinsic0016(steam) != 0x04FD)) goto block_05E0; + + block_0592: + if ((Item.getFrame(steam) != 39) && (Intrinsic0007(arg_06) != 1)) goto block_05DD; + + block_05B4: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0592; + + block_05DD: + goto block_062B; + + block_05E0: + if ((Item.getFrame(steam) != 23) && (Intrinsic0007(steam) != 1)) goto block_062B; + + block_0602: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_05E0; + + block_062B: + goto block_0655; + + block_062E: + spawn class_0A0C_slot_32(pid, 0x00C8, 0x00000000); + suspend; + + block_0655: + if (direction != 0) goto block_068A; + + block_0677: + goto block_06A5; + + block_068A: + if (direction != 1) goto block_06A5; + + block_0692: + goto block_06A5; + + block_06A5: + class_0A1E_slot_23(0x1000, steam2); + if Item.getQHi() goto block_0752; + + block_0704: + if ((Item.getFrame(steam2) != 29) && (Intrinsic0007(steam2) != 1)) goto block_074F; + + block_0726: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0704; + + block_074F: + goto block_0779; + + block_0752: + spawn class_0A0C_slot_32(pid, 0x00C8, 0x00000000); + suspend; + + block_0779: + class_0A1E_slot_24(0x1000, steam2); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/STEAMEGG/slot_07_hatch.txt b/USECODE/EUSECODE_extracted/pseudocode/STEAMEGG/slot_07_hatch.txt new file mode 100644 index 0000000..6ce1e04 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/STEAMEGG/slot_07_hatch.txt @@ -0,0 +1,37 @@ +function steamegg_hatch() /* entry=369 class_id=0x091D slot=0x07 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + sBox, /* [BP-02h] type=0x24 */ + id; /* [BP-04h] type=0x69 */ + + entry: + set_info(0x0210, *(arg_06)); + process_exclude(); + id = Intrinsic003F(arg_06); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0117: + if condition goto block_01A8; + + block_011A: + if (Item.getNpcNum(sBox) != id) goto block_01A4; + + block_0132: + suspend; + spawn class_0A0C_slot_32(pid, 0x015E, 0x00000000); + suspend; + suspend; + + block_01A4: + /* loopnext */ + goto block_0117; + + block_01A8: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/STELEPAD/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/STELEPAD/slot_06_gotHit.txt new file mode 100644 index 0000000..e674d99 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/STELEPAD/slot_06_gotHit.txt @@ -0,0 +1,56 @@ +function stelepad_gotHit() /* entry=44 class_id=0x00EF slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + ke, /* [BP+0Ch] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + npc; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + item = ref; + class_0A0C_slot_2C(ke, ref); + if retval goto block_010A; + + block_0104: + goto block_0199; + + block_010A: + if (Item.isNpc(item) != 0) goto block_0127; + + block_011C: + + block_0127: + if (Intrinsic0070() != 1) goto block_0199; + + block_0135: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x6 */ + + block_0150: + if condition goto block_0191; + + block_0153: + if (npc < 0x0100) goto block_018D; + + block_015F: + if (npc != 1) goto block_018D; + + block_016A: + + block_018D: + /* loopnext */ + goto block_0150; + + block_0191: + goto block_0199; + + block_0199: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/STELEPAD/slot_09_release.txt b/USECODE/EUSECODE_extracted/pseudocode/STELEPAD/slot_09_release.txt new file mode 100644 index 0000000..b93e0cf --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/STELEPAD/slot_09_release.txt @@ -0,0 +1,65 @@ +function stelepad_release() /* entry=44 class_id=0x00EF slot=0x09 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + tele, /* [BP-02h] type=0x24 */ + npc; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x020D, *(arg_06)); + process_exclude(); + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x6 */ + + block_0225: + if condition goto block_0232; + + block_0228: + goto block_02B0; + + block_022E: + /* loopnext */ + goto block_0225; + + block_0232: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x6 */ + + block_024F: + if condition goto block_02AE; + + block_0252: + if (npc != 1) goto block_02A4; + + block_0260: + /* global_address global_id=0x3C */ + if Intrinsic00FA(*(arg_06)) goto block_029D; + + block_0274: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0260; + + block_029D: + + block_02A4: + goto block_02B0; + + block_02AA: + /* loopnext */ + goto block_024F; + + block_02AE: + + block_02B0: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/STORMTRO/slot_0E_calledFromAnim.txt b/USECODE/EUSECODE_extracted/pseudocode/STORMTRO/slot_0E_calledFromAnim.txt new file mode 100644 index 0000000..fc6236a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/STORMTRO/slot_0E_calledFromAnim.txt @@ -0,0 +1,9 @@ +function stormtro_calledFromAnim() /* entry=196 class_id=0x0371 slot=0x0E */ +{ + entry: + set_info(0x021A, *(arg_06)); + process_exclude(); + spawn class_0A1C_slot_20(Item.getQLo(arg_06), *(arg_06), arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SURCAMEW/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/SURCAMEW/slot_01_use.txt new file mode 100644 index 0000000..75f27bc --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SURCAMEW/slot_01_use.txt @@ -0,0 +1,39 @@ +function surcamew_use() /* entry=284 class_id=0x04DE slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 0x1000) goto block_01E7; + + block_01E1: + goto block_029B; + + block_01E7: + /* global_address global_id=0x3C */ + if (Item.getType((Item.getNpcNum(arg_06) != 4)) != 25) goto block_028D; + + block_020A: + if (global[0x002C] != 0) goto block_0275; + + block_0217: + /* pop_global global_id=0x2C size=0x1 */ + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + + block_0275: + /* bit_not */ + goto block_029B; + + block_028A: + goto block_029B; + + block_028D: + spawn class_04DE_slot_20(arg_06); + + block_029B: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SURCAMEW/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/SURCAMEW/slot_0A_equip.txt new file mode 100644 index 0000000..ca0c63d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SURCAMEW/slot_0A_equip.txt @@ -0,0 +1,13 @@ +function surcamew_equip() /* entry=284 class_id=0x04DE slot=0x0A */ +{ + set_info(0x0211, *(arg_06)); + process_exclude(); + if ((Item.getStatus(arg_06) & 0x1000)) { + if (arg_0A == 0) { + /* global_address global_id=0x3C */ + spawn class_04DE_slot_21(arg_06); + } + return; + } + return; +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SURCAMEW/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/SURCAMEW/slot_20_slot_20.txt new file mode 100644 index 0000000..c5c6864 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SURCAMEW/slot_20_slot_20.txt @@ -0,0 +1,109 @@ +function surcamew_slot_20() /* entry=284 class_id=0x04DE slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + textFile, /* [BP-02h] type=0x73 */ + monit, /* [BP-04h] type=0x24 */ + valueBox, /* [BP-06h] type=0x24 */ + passcode, /* [BP-08h] type=0x69 */ + link, /* [BP-0Ah] type=0x69 */ + code; /* [BP-0Bh] type=0x62 */ + + entry: + set_info(0x021B, 0); + link = Item.getNpcNum(arg_06); + if (Item.getMapNum(arg_06) != 0) goto block_03FC; + + block_02F3: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_0311: + if condition goto block_038A; + + block_0314: + if ((Item.getNpcNum(monit) != link) || (link != 0)) goto block_0386; + + block_032F: + if Item.hurl(monit) goto block_0386; + + block_033E: + class_0A17_slot_21(Item.hurl(monit), Item.getNpcNum(monit), arg_06); + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = retval; + spawn class_0A17_slot_20(pid, textFile, arg_06); + /* free_stack_string value_u8=0x0 target=[SP+00h] */ + suspend; + + block_0386: + /* loopnext */ + goto block_0311; + + block_038A: + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + spawn class_04DE_slot_21(pid, arg_06); + suspend; + spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); + suspend; + goto block_0501; + + block_03FC: + code = 0; + if Item.hurl(arg_06) goto block_04E2; + + block_0412: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */ + + block_0430: + if condition goto block_0468; + + block_0433: + if (Item.getNpcNum(valueBox) != link) goto block_0464; + + block_0445: + class_0A19_slot_20(valueBox); + passcode = retval; + code = (1 + code); + goto block_0468; + + block_0464: + /* loopnext */ + goto block_0430; + + block_0468: + if code goto block_049A; + + block_0472: + class_0A17_slot_23(passcode, Item.hurl(arg_06), Item.getNpcNum(arg_06), arg_06); + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = retval; + goto block_04BD; + + block_049A: + class_0A17_slot_21(Item.hurl(arg_06), Item.getNpcNum(arg_06), arg_06); + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = retval; + + block_04BD: + spawn class_0A17_slot_20(pid, textFile, arg_06); + /* free_stack_string value_u8=0x0 target=[SP+00h] */ + suspend; + + block_04E2: + spawn class_04DE_slot_21(pid, arg_06); + suspend; + + block_0501: + /* bit_not */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SURCAMEW/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/SURCAMEW/slot_21_slot_21.txt new file mode 100644 index 0000000..45174ad --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SURCAMEW/slot_21_slot_21.txt @@ -0,0 +1,183 @@ +function surcamew_slot_21() /* entry=284 class_id=0x04DE slot=0x21 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + screen, /* [BP-02h] type=0x24 */ + cameraEgg, /* [BP-04h] type=0x24 */ + trueRef, /* [BP-06h] type=0x69 */ + npc, /* [BP-08h] type=0x24 */ + therma, /* [BP-0Ah] type=0x24 */ + x1, /* [BP-0Ch] type=0x69 */ + y1, /* [BP-0Eh] type=0x69 */ + z1, /* [BP-0Fh] type=0x62 */ + x, /* [BP-11h] type=0x69 */ + y, /* [BP-13h] type=0x69 */ + z; /* [BP-14h] type=0x62 */ + + entry: + set_info(0x021B, 0); + trueRef = *(arg_06); + if Item.getQLo(0, 0x0470, screen) goto block_05DA; + + block_05AE: + + block_05DA: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_061F: + if condition goto block_0AF7; + + block_0622: + if (Item.getNpcNum(cameraEgg) != Item.getNpcNum(arg_06)) goto block_0AF3; + + block_063E: + if (Item.getNpcNum(arg_06) != 0x00FE) goto block_084F; + + block_0651: + /* global_address global_id=0x3C */ + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF8 string_bytes=0x6 loop_type=0x2 */ + + block_06FC: + if condition goto block_073B; + + block_06FF: + if Item.isNpc(npc) goto block_0737; + + block_070E: + if (Item.getQLo(npc) != Item.getNpcNum(arg_06)) goto block_0737; + + block_072A: + therma = npc; + goto block_073B; + + block_0737: + /* loopnext */ + goto block_06FC; + + block_073B: + if therma goto block_0786; + + block_0745: + spawn class_0A11_slot_28(pid, therma); + suspend; + goto block_0B4B; + + block_0783: + goto block_084C; + + block_0786: + /* global_address global_id=0x3C */ + x1 = Intrinsic0013(); + /* global_address global_id=0x3C */ + y1 = Item.legal_create(); + /* global_address global_id=0x3C */ + z1 = Item.getZ(); + + block_07B3: + if (!Item.enterFastArea()) goto block_07EB; + + block_07C2: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_07B3; + + block_07EB: + /* global_address global_id=0x3C */ + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + goto block_0AF7; + + block_084C: + goto block_0AF3; + + block_084F: + if (Item.getNpcNum(arg_06) != 0x00FD) goto block_08B8; + + block_0862: + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_0AF3; + + block_08B8: + if (Item.getNpcNum(arg_06) > 0x00F9) goto block_0948; + + block_08CB: + /* global_address global_id=0x3C */ + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + spawn class_04DE_slot_22(cameraEgg, arg_06); + goto block_0AF7; + + block_0945: + goto block_0AF3; + + block_0948: + x = Intrinsic0013(cameraEgg); + y = Item.legal_create(cameraEgg); + z = Item.getZ(cameraEgg); + /* global_address global_id=0x3C */ + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + if (Item.getMapNum(cameraEgg) != 0) goto block_0A23; + + block_09FE: + spawn class_0A18_slot_20(pid, 0, cameraEgg, arg_06); + suspend; + + block_0A23: + spawn class_0A0C_slot_32(pid, 120, 0x00000000); + suspend; + + block_0A49: + if (!Item.enterFastArea()) goto block_0A81; + + block_0A58: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0A49; + + block_0A81: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + goto block_0AF7; + + block_0AF3: + /* loopnext */ + goto block_061F; + + block_0AF7: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + if screen goto block_0B32; + + block_0B27: + + block_0B32: + + block_0B4B: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SURCAMEW/slot_22_slot_22.txt b/USECODE/EUSECODE_extracted/pseudocode/SURCAMEW/slot_22_slot_22.txt new file mode 100644 index 0000000..676918b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SURCAMEW/slot_22_slot_22.txt @@ -0,0 +1,56 @@ +function surcamew_slot_22() /* entry=284 class_id=0x04DE slot=0x22 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + eventTrigger, /* [BP+0Ah] type=0x24 */ + n, /* [BP-02h] type=0x24 */ + foundGun; /* [BP-03h] type=0x62 */ + + entry: + set_info(0x00F0, 0); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0BF2: + if condition goto block_0C1A; + + block_0BF5: + if Item.isNpc(n) goto block_0C16; + + block_0C04: + foundGun = 1; + + block_0C16: + /* loopnext */ + goto block_0BF2; + + block_0C1A: + /* global_address global_id=0x3C */ + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + if foundGun goto block_0CBC; + + block_0C7F: + if (Item.pop() != 1) goto block_0CB9; + + block_0C90: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + goto block_0C7F; + + block_0CB9: + goto block_0CE3; + + block_0CBC: + spawn class_0A0C_slot_32(pid, 0x00C8, 0x00000000); + suspend; + + block_0CE3: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SURCAMNS/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/SURCAMNS/slot_01_use.txt new file mode 100644 index 0000000..24426cc --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SURCAMNS/slot_01_use.txt @@ -0,0 +1,17 @@ +function surcamns_use() /* entry=269 class_id=0x04C6 slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 0x1000) goto block_01E7; + + block_01E1: + goto block_01F5; + + block_01E7: + spawn class_04C6_slot_20(arg_06); + + block_01F5: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SURCAMNS/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/SURCAMNS/slot_0A_equip.txt new file mode 100644 index 0000000..bb417de --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SURCAMNS/slot_0A_equip.txt @@ -0,0 +1,13 @@ +function surcamns_equip() /* entry=269 class_id=0x04C6 slot=0x0A */ +{ + set_info(0x0211, *(arg_06)); + process_exclude(); + if ((Item.getStatus(arg_06) & 0x1000)) { + if (arg_0A == 0) { + /* global_address global_id=0x3C */ + spawn class_04C6_slot_21(arg_06); + } + return; + } + return; +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SURCAMNS/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/SURCAMNS/slot_20_slot_20.txt new file mode 100644 index 0000000..11ccb25 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SURCAMNS/slot_20_slot_20.txt @@ -0,0 +1,109 @@ +function surcamns_slot_20() /* entry=269 class_id=0x04C6 slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + textFile, /* [BP-02h] type=0x73 */ + monit, /* [BP-04h] type=0x24 */ + valueBox, /* [BP-06h] type=0x24 */ + passcode, /* [BP-08h] type=0x69 */ + link, /* [BP-0Ah] type=0x69 */ + code; /* [BP-0Bh] type=0x62 */ + + entry: + set_info(0x021B, 0); + link = Item.getNpcNum(arg_06); + if (Item.getMapNum(arg_06) != 0) goto block_0356; + + block_024D: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_026B: + if condition goto block_02E4; + + block_026E: + if ((Item.getNpcNum(monit) != link) || (link != 0)) goto block_02E0; + + block_0289: + if Intrinsic00FB(monit) goto block_02E0; + + block_0298: + class_0A17_slot_21(Intrinsic00FB(monit), Item.getNpcNum(monit), arg_06); + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = retval; + spawn class_0A17_slot_20(pid, textFile, arg_06); + /* free_stack_string value_u8=0x0 target=[SP+00h] */ + suspend; + + block_02E0: + /* loopnext */ + goto block_026B; + + block_02E4: + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + spawn class_04C6_slot_21(pid, arg_06); + suspend; + spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); + suspend; + goto block_045B; + + block_0356: + code = 0; + if Intrinsic00FB(arg_06) goto block_043C; + + block_036C: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */ + + block_038A: + if condition goto block_03C2; + + block_038D: + if (Item.getNpcNum(valueBox) != link) goto block_03BE; + + block_039F: + class_0A19_slot_20(valueBox); + passcode = retval; + code = (1 + code); + goto block_03C2; + + block_03BE: + /* loopnext */ + goto block_038A; + + block_03C2: + if code goto block_03F4; + + block_03CC: + class_0A17_slot_23(passcode, Intrinsic00FB(arg_06), Item.getNpcNum(arg_06), arg_06); + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = retval; + goto block_0417; + + block_03F4: + class_0A17_slot_21(Intrinsic00FB(arg_06), Item.getNpcNum(arg_06), arg_06); + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = retval; + + block_0417: + spawn class_0A17_slot_20(pid, textFile, arg_06); + /* free_stack_string value_u8=0x0 target=[SP+00h] */ + suspend; + + block_043C: + spawn class_04C6_slot_21(pid, arg_06); + suspend; + + block_045B: + /* bit_not */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SURCAMNS/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/SURCAMNS/slot_21_slot_21.txt new file mode 100644 index 0000000..0f813e7 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SURCAMNS/slot_21_slot_21.txt @@ -0,0 +1,200 @@ +function surcamns_slot_21() /* entry=269 class_id=0x04C6 slot=0x21 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + screen, /* [BP-02h] type=0x24 */ + cameraEgg, /* [BP-04h] type=0x24 */ + trueRef, /* [BP-06h] type=0x69 */ + x1, /* [BP-08h] type=0x69 */ + y1, /* [BP-0Ah] type=0x69 */ + z1, /* [BP-0Bh] type=0x62 */ + npc, /* [BP-0Dh] type=0x24 */ + therma, /* [BP-0Fh] type=0x24 */ + x, /* [BP-11h] type=0x69 */ + y, /* [BP-13h] type=0x69 */ + z; /* [BP-14h] type=0x62 */ + + entry: + set_info(0x021B, 0); + trueRef = *(arg_06); + if Item.getQLo(0, 0x0471, screen) goto block_0534; + + block_0508: + + block_0534: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_0579: + if condition goto block_0B05; + + block_057C: + if (Item.getNpcNum(cameraEgg) != Item.getNpcNum(arg_06)) goto block_0B01; + + block_0598: + if (Item.getNpcNum(arg_06) != 0x00FE) goto block_085D; + + block_05AB: + /* global_address global_id=0x3C */ + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF3 string_bytes=0x6 loop_type=0x2 */ + + block_0656: + if condition goto block_0695; + + block_0659: + if Item.isNpc(npc) goto block_0691; + + block_0668: + if (Item.getQLo(npc) != Item.getNpcNum(arg_06)) goto block_0691; + + block_0684: + therma = npc; + goto block_0695; + + block_0691: + /* loopnext */ + goto block_0656; + + block_0695: + if therma goto block_079B; + + block_069F: + /* global_address global_id=0x3C */ + x1 = Intrinsic0013(); + /* global_address global_id=0x3C */ + y1 = Item.legal_create(); + /* global_address global_id=0x3C */ + z1 = Item.getZ(); + spawn class_0A11_slot_28(pid, therma); + suspend; + + block_06FD: + if (Item.pop() != 1) goto block_0737; + + block_070E: + spawn class_0A0C_slot_32(pid, 3, 0x00000000); + suspend; + goto block_06FD; + + block_0737: + /* global_address global_id=0x3C */ + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + goto block_0B05; + + block_0798: + goto block_085A; + + block_079B: + /* global_address global_id=0x3C */ + x1 = Intrinsic0013(); + /* global_address global_id=0x3C */ + y1 = Item.legal_create(); + /* global_address global_id=0x3C */ + z1 = Item.getZ(); + + block_07C8: + if (!Item.enterFastArea()) goto block_0800; + + block_07D7: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_07C8; + + block_0800: + /* global_address global_id=0x3C */ + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + goto block_0B05; + + block_085A: + goto block_0B01; + + block_085D: + if (Item.getNpcNum(arg_06) != 0x00FD) goto block_08C6; + + block_0870: + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_0B01; + + block_08C6: + if (Item.getNpcNum(arg_06) > 0x00F9) goto block_0956; + + block_08D9: + /* global_address global_id=0x3C */ + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + spawn class_04C6_slot_22(cameraEgg, arg_06); + goto block_0B05; + + block_0953: + goto block_0B01; + + block_0956: + x = Intrinsic0013(cameraEgg); + y = Item.legal_create(cameraEgg); + z = Item.getZ(cameraEgg); + /* global_address global_id=0x3C */ + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + if (Item.getMapNum(cameraEgg) != 0) goto block_0A31; + + block_0A0C: + spawn class_0A18_slot_20(pid, 0, cameraEgg, arg_06); + suspend; + + block_0A31: + spawn class_0A0C_slot_32(pid, 120, 0x00000000); + suspend; + + block_0A57: + if (!Item.enterFastArea()) goto block_0A8F; + + block_0A66: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0A57; + + block_0A8F: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + goto block_0B05; + + block_0B01: + /* loopnext */ + goto block_0579; + + block_0B05: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + if screen goto block_0B40; + + block_0B35: + + block_0B40: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SURCAMNS/slot_22_slot_22.txt b/USECODE/EUSECODE_extracted/pseudocode/SURCAMNS/slot_22_slot_22.txt new file mode 100644 index 0000000..4edde9b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SURCAMNS/slot_22_slot_22.txt @@ -0,0 +1,56 @@ +function surcamns_slot_22() /* entry=269 class_id=0x04C6 slot=0x22 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + eventTrigger, /* [BP+0Ah] type=0x24 */ + n, /* [BP-02h] type=0x24 */ + foundGun; /* [BP-03h] type=0x62 */ + + entry: + set_info(0x00F0, 0); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0C00: + if condition goto block_0C28; + + block_0C03: + if Item.isNpc(n) goto block_0C24; + + block_0C12: + foundGun = 1; + + block_0C24: + /* loopnext */ + goto block_0C00; + + block_0C28: + /* global_address global_id=0x3C */ + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + if foundGun goto block_0CCA; + + block_0C8D: + if (Item.pop() != 1) goto block_0CC7; + + block_0C9E: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + goto block_0C8D; + + block_0CC7: + goto block_0CF1; + + block_0CCA: + spawn class_0A0C_slot_32(pid, 0x00C8, 0x00000000); + suspend; + + block_0CF1: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SWITCH/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/SWITCH/slot_20_slot_20.txt new file mode 100644 index 0000000..feadecf --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SWITCH/slot_20_slot_20.txt @@ -0,0 +1,41 @@ +function switch_slot_20() /* entry=392 class_id=0x0A16 slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + if Item.getFrame(arg_06) goto block_0168; + + block_0105: + counter = 0; + + block_011A: + if (counter <= 5) goto block_0165; + + block_0122: + spawn class_0A0C_slot_32(pid, 3, 0x00000000); + suspend; + counter = (1 + counter); + goto block_011A; + + block_0165: + goto block_01C5; + + block_0168: + counter = 0; + + block_017D: + if (counter <= 5) goto block_01C5; + + block_0185: + spawn class_0A0C_slot_32(pid, 3, 0x00000000); + suspend; + counter = (1 + counter); + goto block_017D; + + block_01C5: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SWITCH/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/SWITCH/slot_21_slot_21.txt new file mode 100644 index 0000000..11f6088 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SWITCH/slot_21_slot_21.txt @@ -0,0 +1,69 @@ +function switch_slot_21() /* entry=392 class_id=0x0A16 slot=0x21 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + okay; /* [BP-01h] type=0x62 */ + + entry: + set_info(0x0207, *(arg_06)); + okay = Item.getQLo(Item.getNpcNum(arg_06)); + if (Item.getFrame(arg_06) != 4) goto block_029E; + + block_0221: + spawn class_0A0C_slot_21(pid, 0x00AD, 0x00000000); + suspend; + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + goto block_043B; + + block_029B: + goto block_043B; + + block_029E: + if Intrinsic0000() goto block_030C; + + block_02A9: + spawn class_0A0C_slot_21(pid, 0x0090, 0x00000000); + suspend; + if (Intrinsic00DA(100, 0) > 50) goto block_02F8; + + block_02E7: + goto block_0306; + + block_02F8: + + block_0306: + goto block_043B; + + block_030C: + if okay goto block_038B; + + block_0314: + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + goto block_043B; + + block_038B: + + block_03A6: + if Item.touch(0x0090, arg_06) goto block_03E1; + + block_03B8: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_03A6; + + block_03E1: + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); + suspend; + + block_043B: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SWITCHEW/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/SWITCHEW/slot_01_use.txt new file mode 100644 index 0000000..b79ebad --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SWITCHEW/slot_01_use.txt @@ -0,0 +1,24 @@ +function switchew_use() /* entry=11 class_id=0x0061 slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + spawn class_0A16_slot_20(arg_06); + if (Item.getMapNum(arg_06) != 0) goto block_016E; + + block_010B: + if (Item.getFrame(arg_06) != 0) goto block_0147; + + block_011D: + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + goto block_016E; + + block_0147: + spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); + suspend; + + block_016E: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/SWITCHNS/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/SWITCHNS/slot_01_use.txt new file mode 100644 index 0000000..38b6a25 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/SWITCHNS/slot_01_use.txt @@ -0,0 +1,24 @@ +function switchns_use() /* entry=144 class_id=0x02A3 slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + spawn class_0A16_slot_20(arg_06); + if (Item.getMapNum(arg_06) != 0) goto block_016E; + + block_010B: + if (Item.getFrame(arg_06) != 0) goto block_0147; + + block_011D: + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + goto block_016E; + + block_0147: + spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); + suspend; + + block_016E: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/S_CHAIR/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/S_CHAIR/slot_06_gotHit.txt new file mode 100644 index 0000000..f165e31 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/S_CHAIR/slot_06_gotHit.txt @@ -0,0 +1,83 @@ +function s_chair_gotHit() /* entry=114 class_id=0x01E2 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + fram, /* [BP-02h] type=0x69 */ + item, /* [BP-04h] type=0x24 */ + count, /* [BP-06h] type=0x69 */ + spin, /* [BP-08h] type=0x69 */ + direction; /* [BP-0Ah] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + fram = Item.getFrame(arg_06); + if (fram > 7) goto block_010D; + + block_0107: + goto block_0254; + + block_010D: + class_0A0C_slot_2C(vel, ref); + if retval goto block_0254; + + block_011F: + class_0A0C_slot_20(10); + spin = (retval + 5); + class_0A0C_slot_20(1); + direction = retval; + if (direction != 0) goto block_01CA; + + block_0148: + count = 1; + + block_014F: + if (count <= spin) goto block_01C7; + + block_015A: + fram = (fram + 1); + if (fram != 8) goto block_0179; + + block_0172: + fram = 0; + + block_0179: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + count = (1 + count); + goto block_014F; + + block_01C7: + goto block_0254; + + block_01CA: + if (direction != 1) goto block_0254; + + block_01D2: + count = 1; + + block_01D9: + if (count <= spin) goto block_0251; + + block_01E4: + fram = (fram - 1); + if (fram != -1) goto block_0203; + + block_01FC: + fram = 7; + + block_0203: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + count = (1 + count); + goto block_01D9; + + block_0251: + goto block_0254; + + block_0254: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/TARGETEW/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/TARGETEW/slot_06_gotHit.txt new file mode 100644 index 0000000..1aae60c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/TARGETEW/slot_06_gotHit.txt @@ -0,0 +1,39 @@ +function targetew_gotHit() /* entry=116 class_id=0x01F3 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + item = ref; + class_0A0C_slot_2B(vel, ref); + if retval goto block_0179; + + block_0104: + if (Item.getFrame(arg_06) != 0) goto block_0123; + + block_0113: + goto block_0179; + + block_0123: + if (Item.getFrame(arg_06) != 1) goto block_0142; + + block_0132: + goto block_0179; + + block_0142: + if (Item.getFrame(arg_06) != 2) goto block_0179; + + block_0151: + spawn class_0A1E_slot_28(pid, 1, 1, arg_06); + suspend; + goto block_0179; + + block_0179: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/TARGETNS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/TARGETNS/slot_06_gotHit.txt new file mode 100644 index 0000000..95563a6 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/TARGETNS/slot_06_gotHit.txt @@ -0,0 +1,39 @@ +function targetns_gotHit() /* entry=115 class_id=0x01F2 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + item = ref; + class_0A0C_slot_2B(vel, ref); + if retval goto block_0179; + + block_0104: + if (Item.getFrame(arg_06) != 0) goto block_0123; + + block_0113: + goto block_0179; + + block_0123: + if (Item.getFrame(arg_06) != 1) goto block_0142; + + block_0132: + goto block_0179; + + block_0142: + if (Item.getFrame(arg_06) != 2) goto block_0179; + + block_0151: + spawn class_0A1E_slot_28(pid, 1, 1, arg_06); + suspend; + goto block_0179; + + block_0179: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/TELEPAD/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/TELEPAD/slot_06_gotHit.txt new file mode 100644 index 0000000..ab95efa --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/TELEPAD/slot_06_gotHit.txt @@ -0,0 +1,196 @@ +function telepad_gotHit() /* entry=111 class_id=0x01DB slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + ke, /* [BP+0Ch] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + pad, /* [BP-04h] type=0x24 */ + pad2, /* [BP-06h] type=0x24 */ + theQual, /* [BP-08h] type=0x69 */ + npc; /* [BP-0Ah] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + item = ref; + pad = *(arg_06); + theQual = Intrinsic007E(pad); + set_info(1, 0); + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + class_0A0C_slot_2C(ke, ref); + if retval goto block_01A1; + + block_019B: + goto block_0499; + + block_01A1: + if (Item.isNpc(item) != 0) goto block_01C2; + + block_01B3: + + block_01C2: + if (Intrinsic0070() != 1) goto block_0234; + + block_01D0: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF6 string_bytes=0x6 loop_type=0x6 */ + + block_01EB: + if condition goto block_022C; + + block_01EE: + if (npc < 0x0100) goto block_0228; + + block_01FA: + if (npc != 1) goto block_0228; + + block_0205: + + block_0228: + /* loopnext */ + goto block_01EB; + + block_022C: + goto block_0499; + + block_0234: + if (!Item.use(*(arg_06), item)) goto block_024E; + + block_0248: + goto block_0499; + + block_024E: + /* global_address global_id=0x3C */ + if (Intrinsic0016((item != 1)) != 1) goto block_0499; + + block_026A: + if (theQual != 0x00FF) goto block_027C; + + block_0276: + goto block_0499; + + block_027C: + if ((theQual > 0) && (theQual < 30)) goto block_02B2; + + block_0290: + /* global_address global_id=0x3C */ + spawn class_01DB_slot_20(Item.getType(theQual), arg_06); + goto block_0499; + + block_02B2: + if (theQual != 30) goto block_02D1; + + block_02BA: + spawn class_01DB_slot_20(30, 40, arg_06); + goto block_0499; + + block_02D1: + if (theQual != 31) goto block_02F0; + + block_02D9: + spawn class_01DB_slot_20(69, 69, arg_06); + goto block_0499; + + block_02F0: + if (theQual != 32) goto block_030F; + + block_02F8: + spawn class_01DB_slot_20(16, 4, arg_06); + goto block_0499; + + block_030F: + if (theQual != 33) goto block_032E; + + block_0317: + spawn class_01DB_slot_20(17, 3, arg_06); + goto block_0499; + + block_032E: + if (theQual != 35) goto block_034D; + + block_0336: + spawn class_01DB_slot_20(30, 41, arg_06); + goto block_0499; + + block_034D: + if (theQual != 100) goto block_036C; + + block_0355: + spawn class_01DB_slot_20(100, 5, arg_06); + goto block_0499; + + block_036C: + if (theQual != 101) goto block_038B; + + block_0374: + spawn class_01DB_slot_20(101, 5, arg_06); + goto block_0499; + + block_038B: + if (theQual != 0x0082) goto block_03AC; + + block_0394: + spawn class_01DB_slot_20(0x0082, 25, arg_06); + goto block_0499; + + block_03AC: + if (theQual != 0x0083) goto block_03CD; + + block_03B5: + spawn class_01DB_slot_20(0x0083, 25, arg_06); + goto block_0499; + + block_03CD: + if (theQual != 0x0084) goto block_03EE; + + block_03D6: + spawn class_01DB_slot_20(0x0082, 25, arg_06); + goto block_0499; + + block_03EE: + if (theQual != 0x0085) goto block_040F; + + block_03F7: + spawn class_01DB_slot_20(0x0083, 25, arg_06); + goto block_0499; + + block_040F: + if (theQual != 0x00D7) goto block_0430; + + block_0418: + spawn class_01DB_slot_20(0x00D7, 5, arg_06); + goto block_0499; + + block_0430: + if (theQual != 0x00DA) goto block_0451; + + block_0439: + spawn class_01DB_slot_20(0x00DA, 5, arg_06); + goto block_0499; + + block_0451: + if (theQual != 0x00DB) goto block_0472; + + block_045A: + spawn class_01DB_slot_20(0x00DB, 5, arg_06); + goto block_0499; + + block_0472: + if (theQual != 0x00DC) goto block_0493; + + block_047B: + spawn class_01DB_slot_20(0x00DC, 5, arg_06); + goto block_0499; + + block_0493: + goto block_0499; + + block_0499: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/TELEPAD/slot_09_release.txt b/USECODE/EUSECODE_extracted/pseudocode/TELEPAD/slot_09_release.txt new file mode 100644 index 0000000..42f750f --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/TELEPAD/slot_09_release.txt @@ -0,0 +1,38 @@ +function telepad_release() /* entry=111 class_id=0x01DB slot=0x09 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + npc, /* [BP-02h] type=0x24 */ + onPad; /* [BP-03h] type=0x62 */ + + entry: + set_info(0x020D, *(arg_06)); + process_exclude(); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x6 */ + + block_0B3B: + if condition goto block_0B57; + + block_0B3E: + if (npc != 1) goto block_0B53; + + block_0B4C: + onPad = 1; + + block_0B53: + /* loopnext */ + goto block_0B3B; + + block_0B57: + if (!onPad) goto block_0B69; + + block_0B62: + + block_0B69: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/TELEPAD/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/TELEPAD/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..b874a8b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/TELEPAD/slot_0F_enterFastArea.txt @@ -0,0 +1,13 @@ +function telepad_enterFastArea() /* entry=111 class_id=0x01DB slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (Item.getFrame(arg_06) < 2) goto block_0113; + + block_0106: + + block_0113: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/TELEPAD/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/TELEPAD/slot_20_slot_20.txt new file mode 100644 index 0000000..ccb4a59 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/TELEPAD/slot_20_slot_20.txt @@ -0,0 +1,177 @@ +function telepad_slot_20() /* entry=111 class_id=0x01DB slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + mapNum, /* [BP+0Ah] type=0x69 */ + eggNum, /* [BP+0Ch] type=0x69 */ + newx, /* [BP-02h] type=0x69 */ + newy, /* [BP-04h] type=0x69 */ + newz, /* [BP-05h] type=0x62 */ + counter, /* [BP-07h] type=0x69 */ + floor, /* [BP-09h] type=0x24 */ + item, /* [BP-0Bh] type=0x24 */ + telebeam, /* [BP-0Dh] type=0x24 */ + y; /* [BP-0Fh] type=0x69 */ + + entry: + set_info(1, 0); + /* global_address global_id=0x3C */ + if Intrinsic00C3() goto block_0515; + + block_050F: + goto block_0A93; + + block_0515: + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + spawn class_0A11_slot_24(pid); + suspend; + if (mapNum != 69) goto block_089B; + + block_055A: + /* global_address global_id=0x3C */ + if (Item.getType() != mapNum) goto block_087B; + + block_056D: + suspend; + if (mapNum != 40) goto block_0778; + + block_059C: + spawn class_0A0C_slot_23(pid, 0x00000000); + suspend; + spawn class_0A0C_slot_25(pid, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + /* global_address global_id=0x3C */ + if (Item.getType() != 1) goto block_0672; + + block_0623: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_0767; + + block_0672: + /* global_address global_id=0x3C */ + if (Item.getType() != 13) goto block_06D7; + + block_0688: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_0767; + + block_06D7: + /* global_address global_id=0x3C */ + if (Item.getType() != 5) goto block_0767; + + block_06ED: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_0767; + + block_0767: + goto block_0A93; + + block_0778: + if (mapNum != 41) goto block_0834; + + block_0786: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + goto block_0A93; + + block_0834: + if mapNum goto block_085E; + + block_083C: + suspend; + + block_085E: + suspend; + goto block_089B; + + block_087B: + suspend; + + block_089B: + /* global_address global_id=0x3C */ + spawn class_0A11_slot_23(pid); + suspend; + if (eggNum != 69) goto block_0A7C; + + block_08C9: + /* global_address global_id=0x3C */ + y = Item.legal_create(); + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF7 string_bytes=0x6 loop_type=0x2 */ + + block_093F: + if condition goto block_0970; + + block_0942: + newx = Intrinsic0013(floor); + newy = Item.legal_create(floor); + newz = Item.getZ(floor); + /* loopnext */ + goto block_093F; + + block_0970: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF7 string_bytes=0x6 loop_type=0x2 */ + + block_0990: + if condition goto block_09A2; + + block_0993: + /* loopnext */ + goto block_0990; + + block_09A2: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = 0; + + block_0A07: + if (counter <= 40) goto block_0A6A; + + block_0A0F: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + if (counter != 10) goto block_0A5D; + + block_0A50: + + block_0A5D: + counter = (1 + counter); + goto block_0A07; + + block_0A6A: + /* global_address global_id=0x3C */ + goto block_0A93; + + block_0A7C: + /* global_address global_id=0x3C */ + + block_0A93: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/TEST/slot_07_hatch.txt b/USECODE/EUSECODE_extracted/pseudocode/TEST/slot_07_hatch.txt new file mode 100644 index 0000000..0a64488 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/TEST/slot_07_hatch.txt @@ -0,0 +1,44 @@ +function test_hatch() /* entry=348 class_id=0x0908 slot=0x07 */ +{ + entry: + set_info(0x0210, *(arg_06)); + process_exclude(); + if (Intrinsic003F(arg_06) != 1) goto block_0134; + + block_00FA: + spawn class_0A0C_slot_26(pid, "3f", 0x00000000); + /* free_stack_string value_u8=0x0 target=[SP+00h] */ + suspend; + goto block_020F; + + block_0134: + if (Intrinsic003F(arg_06) != 2) goto block_017D; + + block_0143: + spawn class_0A0C_slot_26(pid, "3h", 0x00000000); + /* free_stack_string value_u8=0x0 target=[SP+00h] */ + suspend; + goto block_020F; + + block_017D: + if (Intrinsic003F(arg_06) != 3) goto block_01C6; + + block_018C: + spawn class_0A0C_slot_26(pid, "3e", 0x00000000); + /* free_stack_string value_u8=0x0 target=[SP+00h] */ + suspend; + goto block_020F; + + block_01C6: + if (Intrinsic003F(arg_06) != 4) goto block_020F; + + block_01D5: + spawn class_0A0C_slot_26(pid, "3i", 0x00000000); + /* free_stack_string value_u8=0x0 target=[SP+00h] */ + suspend; + goto block_020F; + + block_020F: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/TEXTFIL1/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/TEXTFIL1/slot_20_slot_20.txt new file mode 100644 index 0000000..7221546 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/TEXTFIL1/slot_20_slot_20.txt @@ -0,0 +1,551 @@ +function textfil1_slot_20() /* entry=399 class_id=0x0A1D slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + linkNum, /* [BP+0Ah] type=0x69 */ + msgNum, /* [BP+0Ch] type=0x69 */ + passcode, /* [BP+0Eh] type=0x69 */ + textFile; /* [BP-02h] type=0x73 */ + + entry: + if (msgNum != 60) goto block_0227; + + block_00F0: + if (linkNum && passcode) goto block_01FB; + + block_0101: + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = ".^*And Have a Nice Day."; + goto block_0224; + + block_01FB: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Congressional Office Security^"; + + block_0224: + goto block_24CC; + + block_0227: + if (msgNum != 61) goto block_0359; + + block_022F: + if (linkNum && passcode) goto block_032D; + + block_0240: + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = ".^*And Have a Nice Day."; + goto block_0356; + + block_032D: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Congressional Office Security^"; + + block_0356: + goto block_24CC; + + block_0359: + if (msgNum != 62) goto block_04A5; + + block_0361: + if (linkNum && passcode) goto block_0479; + + block_0372: + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^*And ** Have a Nice Day.<"; + goto block_04A2; + + block_0479: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Congressional Office Security^"; + + block_04A2: + goto block_24CC; + + block_04A5: + if (msgNum != 63) goto block_05EE; + + block_04AD: + if (linkNum && passcode) goto block_05C2; + + block_04BE: + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = ".^Have a Nice Day.<"; + goto block_05EB; + + block_05C2: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Congressional Office Security^"; + + block_05EB: + goto block_24CC; + + block_05EE: + if (msgNum != 64) goto block_07E0; + + block_05F6: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "To: all WEC Secretaries, G Level^ From: Senator Snell^ To maintain a high security rating, and to protect all of *YOU* people from spies and saboteurs, we have added a few more security precautions. Vetrons have been added to the usual security forces. They are here only as an added protective measure. Be very careful, and wear your security badges at ALL times.^Moreover, anyone entering a secure area without proper ID will be terminated on the spot.^Have a nice day..."; + goto block_24CC; + + block_07E0: + if (msgNum != 65) goto block_0852; + + block_07E8: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = Item.andStatus(passcode); + goto block_24CC; + + block_0852: + if ((((msgNum != 66) || (msgNum != 67)) || (msgNum != 68)) || (msgNum != 69)) goto block_097E; + + block_086C: + if (linkNum && passcode) goto block_0952; + + block_087D: + /* concat */ + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = ".^*End of Message <"; + goto block_097B; + + block_0952: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Congressional Office Security^"; + + block_097B: + goto block_24CC; + + block_097E: + if (msgNum != 70) goto block_09CF; + + block_0986: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "WEC Security System * EEOD Nerve Gas Storage Facility"; + goto block_24CC; + + block_09CF: + if (msgNum != 71) goto block_0A73; + + block_09D7: + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "?^ Darrin ^*End of Message <"; + goto block_24CC; + + block_0A73: + if (msgNum != 72) goto block_0AA1; + + block_0A7B: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "The Cheese Man Cometh..."; + goto block_24CC; + + block_0AA1: + if (msgNum != 73) goto block_0B4F; + + block_0AA9: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Tony, I've found that standing too close to the EEOD for extended time periods does funny things to my hair. Have you had any problems lately? ^Phil "; + goto block_24CC; + + block_0B4F: + if (msgNum != 75) goto block_0C04; + + block_0B57: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Phil, the only problem I've been having is that my hair is kinda hard and falls off at a certain length. It's sorta like a porcupine,whatever that is. ^Tony"; + goto block_24CC; + + block_0C04: + if (msgNum != 76) goto block_0CB3; + + block_0C0C: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Warning: It has recently been discovered that prolonged exposure to the EEOD may cause bad hair problems. Limit time spent in the area, please. WECHC^"; + goto block_24CC; + + block_0CB3: + if (((msgNum != 77) || (msgNum != 78)) || (msgNum != 79)) goto block_0CD5; + + block_0CC7: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = ""; + goto block_24CC; + + block_0CD5: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Bad command or file name...^Message is out of range."; + if (msgNum != 80) goto block_0D61; + + block_0D1C: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Phase One of Three of Laser Beam deactivation initiated"; + goto block_24CC; + + block_0D61: + if (msgNum != 81) goto block_0DA9; + + block_0D69: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Alarm Deactivated. Security system will now reset."; + goto block_24CC; + + block_0DA9: + if (msgNum != 82) goto block_0DE8; + + block_0DB1: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "All system alarms are currently inactive."; + goto block_24CC; + + block_0DE8: + if (msgNum != 83) goto block_0E40; + + block_0DF0: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Retrieving remote location security access.^* * * ^Access cleared."; + goto block_24CC; + + block_0E40: + if (msgNum != 84) goto block_0E8D; + + block_0E48: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Security camera for level 4 firing range now activated."; + goto block_24CC; + + block_0E8D: + if (msgNum != 85) goto block_0EEC; + + block_0E95: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Security camera for level 2 information and briefing center now activated"; + goto block_24CC; + + block_0EEC: + if (msgNum != 86) goto block_0F27; + + block_0EF4: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Level 1 Security Access now activated"; + goto block_24CC; + + block_0F27: + if (msgNum != 87) goto block_0F74; + + block_0F2F: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Phase Two of Three of Laser Beam deactivation initiated"; + goto block_24CC; + + block_0F74: + if (msgNum != 88) goto block_0FC3; + + block_0F7C: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Phase Three of Three of Laser Beam deactivation initiated"; + goto block_24CC; + + block_0FC3: + if (msgNum != 89) goto block_1002; + + block_0FCB: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Storage Facility Security now deactivated"; + goto block_24CC; + + block_1002: + if (msgNum != 90) goto block_1182; + + block_100A: + if (linkNum && passcode) goto block_1117; + + block_101B: + /* concat */ + /* concat */ + /* concat */ + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^*End of Message <"; + goto block_117F; + + block_1117: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "The WEC T305i is currently off-line, and will not be back on-line until 0300 hours. WECTS^"; + + block_117F: + goto block_24CC; + + block_1182: + if (msgNum != 91) goto block_1279; + + block_118A: + if (linkNum && passcode) goto block_122E; + + block_119B: + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = ". Jassica"; + goto block_1276; + + block_122E: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "WEC SECURITY SYSTEM:^Remote Camera: ACTIVE** Schmooze Room"; + + block_1276: + goto block_24CC; + + block_1279: + if (msgNum != 92) goto block_13C1; + + block_1281: + if (linkNum && passcode) goto block_1370; + + block_1292: + /* concat */ + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "tomorrow or the next day. Ted"; + goto block_13BE; + + block_1370: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "WEC SECURITY SYSTEM:^^Remote Camera: ACTIVE*^*WEC Detention Hall"; + + block_13BE: + goto block_24CC; + + block_13C1: + if (msgNum != 93) goto block_1420; + + block_13C9: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "WEC SECURITY SYSTEM:^^Remote Camera: ACTIVE*^Office of Senator B. Pete"; + goto block_24CC; + + block_1420: + if (msgNum != 94) goto block_1634; + + block_1428: + if (linkNum && passcode) goto block_14EE; + + block_1439: + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = ".^*End of Message <"; + goto block_1631; + + block_14EE: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "To all Departmental Supervisors: According to new WEC Policy #7461, We are now requiring that all teleporters be deactivated during the new 16 hour work schedule. We believe that this will increase productivity, as we will be able to prohibit extraneous teleporting between the hours of 6:00am and 10:00pm. D."; + + block_1631: + goto block_24CC; + + block_1634: + if (msgNum != 95) goto block_1717; + + block_163C: + if (linkNum && passcode) goto block_167B; + + block_164D: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "*Security Shield *DEACTIVATED"; + goto block_1714; + + block_167B: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "To all Supervisors: Please keep in mind that no employees are to leave the building between the hours of 6:00am and 10:00pm Thank you. L.P."; + + block_1714: + goto block_24CC; + + block_1717: + if (msgNum != 96) goto block_1841; + + block_171F: + if (linkNum && passcode) goto block_177D; + + block_1730: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "*Security Shield *DEACTIVATED Please re-activate immediately"; + goto block_183E; + + block_177D: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Maire -^We've got to quit playing that experimental music over the system. It's only causing more troubles in my sector. Do you know if there's anything that can be done? Laura B."; + + block_183E: + goto block_24CC; + + block_1841: + if (msgNum != 97) goto block_1962; + + block_1849: + if (linkNum && passcode) goto block_1888; + + block_185A: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "*Security Shield *DEACTIVATED"; + goto block_195F; + + block_1888: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Laura - No, we can't stop that music. Draygan has made it a mandatory treatment to go along with those new glass barriers. I guess it's just some more of that mind control stuff he likes so much. Maire"; + + block_195F: + goto block_24CC; + + block_1962: + if (msgNum != 98) goto block_1B10; + + block_196A: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "OSI Writer, Ver 121.c^*The Tale of Rancid ^Rancid the swamprat was a big pain and especially fond of his wonderful drain. But rats of this sort should not boast quite like that, for just entering the sewer was a swampcat! With a growl and a hiss, the cat made his leap - and Rancid the swamprat ran back to his keep. A huffing and puffing, the swampcat did blow, but Rancid the swamprat knew where to go! "; + goto block_24CC; + + block_1B10: + if (msgNum != 99) goto block_1CE4; + + block_1B18: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "So up to the gutter, a few feet away, he ran and he ran, as the cat made his play, 'Forget this chasing, it's just not for me, a gun's more my style, and much easier you see,' And as he pulled the trigger, there was a huge flash, that smoked and caught fire, and singed that cats' ass! 'Ha Ha, Ha ha,' laughed swamprat, 'You are so fun! 'Cause not every cat can shoot a capgun!'*^hmmm...this is pretty bad. Maybe I won't send it to everyone..."; + goto block_24CC; + + block_1CE4: + if (msgNum != 100) goto block_1DCE; + + block_1CEC: + if (linkNum && passcode) goto block_1D7E; + + block_1CFD: + /* concat */ + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^ Alec"; + goto block_1DCB; + + block_1D7E: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "WEC SECURITY SYSTEM:^^Remote Camera: ACTIVE*^Cloning Studio #1A"; + + block_1DCB: + goto block_24CC; + + block_1DCE: + if (msgNum != 101) goto block_1E27; + + block_1DD6: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "WEC SECURITY SYSTEM:^^Remote Camera: ACTIVE*^Incubation Room #1A"; + goto block_24CC; + + block_1E27: + if (msgNum != 102) goto block_1F54; + + block_1E2F: + if (linkNum && passcode) goto block_1F06; + + block_1E40: + /* concat */ + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = " ^Alec"; + goto block_1F51; + + block_1F06: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "WEC SECURITY SYSTEM:^^Remote Camera: ACTIVE*^Hatching Chamber"; + + block_1F51: + goto block_24CC; + + block_1F54: + if (msgNum != 103) goto block_1FAC; + + block_1F5C: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "WEC SECURITY SYSTEM:^Remote Camera: ACTIVE*^Incubation Room #2A"; + goto block_24CC; + + block_1FAC: + if (msgNum != 104) goto block_20AB; + + block_1FB4: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Dr. Rosillos,^I have good news about my latest endeavor. I now have several pods in the hatching chamber, and I believe they will soon reach their final term and be ready for testing within days.^^You should come see them. ^Gregor"; + goto block_24CC; + + block_20AB: + if (msgNum != 105) goto block_2182; + + block_20B3: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Guardsman on duty: ^Keep watch over the hatching chambers and Dr. Hoffman. Nothing is to happen to any of the new prototype Enforcers, or to Dr. Hoffman. Monitor him frequently.^Cptn. Quince"; + goto block_24CC; + + block_2182: + if (msgNum != 106) goto block_2256; + + block_218A: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Troopers: ^It is imperative that we maintain security in this area. My new experiment is in a delicate stage of development and simply cannot be disturbed. ^Thank you, ^Dr. Gregor Hoffman"; + goto block_24CC; + + block_2256: + if (msgNum != 107) goto block_23A7; + + block_225E: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Dr. Seiler - ^Greetings! I think our new weapon will prove to be fatal to those nasty rebels. I now have the equivalent to a small army nearing completion, and hope to unleash them very soon. I think they're my greatest creation yet. Isn't it fascinating what one can do with just a few tiny human cells? ^Gregor"; + goto block_24CC; + + block_23A7: + if (msgNum != 108) goto block_2476; + + block_23AF: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Guardsman on Duty: ^We are currently under alert due to suspected rebel activity in the area. Under no circumstance is there to be rebel infiltration of this installation.^Cpt. Ayers"; + goto block_24CC; + + block_2476: + if (msgNum != 109) goto block_24CC; + + block_247E: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "WEC SECURITY SYSTEM:^^Remote Camera: ACTIVE*^Hatching Chamber"; + goto block_24CC; + + block_24CC: + /* strcmp */ + if "" goto block_2518; + + block_24DC: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Bad command or file name...^File is out of range."; + + block_2518: + goto block_2521; + + block_2521: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/TEXTFIL2/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/TEXTFIL2/slot_20_slot_20.txt new file mode 100644 index 0000000..b32084f --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/TEXTFIL2/slot_20_slot_20.txt @@ -0,0 +1,681 @@ +function textfil2_slot_20() /* entry=401 class_id=0x0A1F slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + linkNum, /* [BP+0Ah] type=0x69 */ + msgNum, /* [BP+0Ch] type=0x69 */ + passcode, /* [BP+0Eh] type=0x69 */ + textFile; /* [BP-02h] type=0x73 */ + + entry: + if (msgNum != 110) goto block_0155; + + block_00F0: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "WARNING:^The laser field has been deactivated for thirty seconds. ^*End of Message <"; + goto block_260D; + + block_0155: + if (msgNum != 111) goto block_0237; + + block_015D: + if (linkNum && passcode) goto block_0210; + + block_016E: + /* concat */ + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^*End of Message <"; + goto block_0234; + + block_0210: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Kimball Research Facility"; + + block_0234: + goto block_260D; + + block_0237: + if (msgNum != 112) goto block_0339; + + block_023F: + if (linkNum && passcode) goto block_0312; + + block_0250: + /* concat */ + /* concat */ + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Priority RED alert issued. "; + goto block_0336; + + block_0312: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Kimball Research Facility"; + + block_0336: + goto block_260D; + + block_0339: + if (msgNum != 113) goto block_03DB; + + block_0341: + if (linkNum && passcode) goto block_03B4; + + block_0352: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = Item.andStatus(passcode); + goto block_03D8; + + block_03B4: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Kimball Research Facility"; + + block_03D8: + goto block_260D; + + block_03DB: + if (msgNum != 114) goto block_0464; + + block_03E3: + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = ".^*End of Message <"; + goto block_260D; + + block_0464: + if (msgNum != 115) goto block_04CD; + + block_046C: + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = ".^**Message <"; + goto block_260D; + + block_04CD: + if (msgNum != 116) goto block_0596; + + block_04D5: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = Item.andStatus(passcode); + goto block_260D; + + block_0596: + if ((msgNum != 116) || (msgNum != 117)) goto block_069E; + + block_05A4: + if (linkNum && passcode) goto block_0676; + + block_05B5: + /* concat */ + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = ".^^J.F.S"; + goto block_069B; + + block_0676: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Kimball Research Facility^"; + + block_069B: + goto block_260D; + + block_069E: + if (msgNum != 118) goto block_06F7; + + block_06A6: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Force field^blocking access^to telepad 5 ^has been deactivated. "; + goto block_260D; + + block_06F7: + if (msgNum != 119) goto block_0739; + + block_06FF: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Access to^restricted area^has been granted. "; + goto block_260D; + + block_0739: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Bad command or file name...^File is out of range."; + if (msgNum != 120) goto block_08C7; + + block_077D: + if (linkNum && passcode) goto block_089F; + + block_078E: + /* concat */ + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = ".^*End of Message <"; + goto block_08C4; + + block_089F: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "The OWP Research Facility^"; + + block_08C4: + goto block_260D; + + block_08C7: + if (msgNum != 121) goto block_094F; + + block_08CF: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "OWP Operations:^____________________^Now interfacing with remote service droid...*^Unit ZC90201^^Now *-ONLINE-."; + goto block_260D; + + block_094F: + if (msgNum != 122) goto block_09D7; + + block_0957: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "OWP Operations:^____________________^Now interfacing with remote service droid...*^Unit MXZ2391^^Now *-ONLINE-."; + goto block_260D; + + block_09D7: + if ((msgNum != 123) || (msgNum != 124)) goto block_0A0D; + + block_09E5: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "The OWP Research Facility^"; + goto block_260D; + + block_0A0D: + if (msgNum != 125) goto block_0A48; + + block_0A15: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Maximum Security Systems:^*Activated."; + goto block_260D; + + block_0A48: + if ((((msgNum != 126) || (msgNum != 127)) || (msgNum != 0x0080)) || (msgNum != 0x0081)) goto block_0BAF; + + block_0A64: + if (linkNum && passcode) goto block_0B87; + + block_0A75: + /* concat */ + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = ".*End of Message <"; + goto block_0BAC; + + block_0B87: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "The OWP Research Facility^"; + + block_0BAC: + goto block_260D; + + block_0BAF: + if (msgNum != 0x0082) goto block_0BE7; + + block_0BB8: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Draygan Correctional Institution^"; + goto block_260D; + + block_0BE7: + if (msgNum != 0x0083) goto block_0C13; + + block_0BF0: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Surveillance Central^"; + goto block_260D; + + block_0C13: + if (msgNum != 0x0084) goto block_0C5C; + + block_0C1C: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Maximum Security Surveillance Tower^Open Access"; + goto block_260D; + + block_0C5C: + if (msgNum != 0x0085) goto block_0C93; + + block_0C65: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Enforcer Barracks^Open Access"; + goto block_260D; + + block_0C93: + if (msgNum != 0x0086) goto block_0CEE; + + block_0C9C: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Draygan Correctional Institution^Maximum Security Cell: 1^*Secure"; + goto block_260D; + + block_0CEE: + if (msgNum != 0x0087) goto block_0D17; + + block_0CF7: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Lift: *^ACTIVATED^"; + goto block_260D; + + block_0D17: + if (msgNum != 0x0088) goto block_0D46; + + block_0D20: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Force Wall De-activated^"; + goto block_260D; + + block_0D46: + if (msgNum != 0x0089) goto block_0DAF; + + block_0D4F: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Draygan Correctional Institution^Maximum Security Cell: 1^*Security deactivated"; + goto block_260D; + + block_0DAF: + if (msgNum != 0x008A) goto block_0DFA; + + block_0DB8: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Receiving WEC transmision^Establishing vid-link**"; + goto block_260D; + + block_0DFA: + if (msgNum != 0x008B) goto block_0E32; + + block_0E03: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Draygan Correctional Institution^"; + goto block_260D; + + block_0E32: + if (msgNum != 0x008C) goto block_0E81; + + block_0E3B: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Door is now ajar.^ Have a nice day.^*End of Message <"; + goto block_260D; + + block_0E81: + if (msgNum != 0x008D) goto block_0F1C; + + block_0E8A: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Welcome to:^ The Asylum BBS^^ ///^ o o^ --m--U--m--^ |Your Sysop:|^ | E--- |^ ----------- ^ / &^ ~ ~^"; + goto block_260D; + + block_0F1C: + if (msgNum != 0x008E) goto block_0F5E; + + block_0F25: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "The power to the electric walls is now off."; + goto block_260D; + + block_0F5E: + if (msgNum != 0x008F) goto block_0F91; + + block_0F67: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Electric walls re-activated."; + goto block_260D; + + block_0F91: + if (msgNum != 0x0090) goto block_1021; + + block_0F9A: + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = ".^*End of Message <"; + goto block_260D; + + block_1021: + if (msgNum != 0x0091) goto block_10E6; + + block_102A: + /* concat */ + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^*End of Message <"; + goto block_260D; + + block_10E6: + if (msgNum != 0x0092) goto block_1196; + + block_10EF: + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = ".^*End of Message <"; + goto block_260D; + + block_1196: + if (msgNum != 0x0093) goto block_1210; + + block_119F: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "WARNING:^Computer Security Failure.^Alerting all guards and security systems.^^*End of Message <"; + goto block_260D; + + block_1210: + if (msgNum != 0x0095) goto block_1289; + + block_1219: + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = ".^*End of Message <"; + goto block_260D; + + block_1289: + if (msgNum != 0x0094) goto block_12C7; + + block_1292: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Welcome to Hell.^Here comes the Cheese!"; + goto block_260D; + + block_12C7: + if (msgNum != 0x0096) goto block_13AB; + + block_12D0: + /* concat */ + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "disloyal workers from gaining weapons! ^"; + goto block_260D; + + block_13AB: + if (msgNum != 0x0097) goto block_148C; + + block_13B4: + /* concat */ + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "possible assassins from gaining access!"; + goto block_260D; + + block_148C: + if (msgNum != 0x0098) goto block_151C; + + block_1495: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Security Cartel ^Droid Manual Overide:*^Networking to **Overide of servomech confirmed...^*^*Happy Hunting..."; + goto block_260D; + + block_151C: + if (msgNum != 0x0099) goto block_15F0; + + block_1525: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Security Cartel Network Base:^^Alpha Alarm Overide...Alarms triggered in this area were a result of a substandard networking interface.^Area is secured. No threats or breaches reported.*"; + goto block_260D; + + block_15F0: + if (msgNum != 0x009A) goto block_16B3; + + block_15F9: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Though there is no need for panic, everyone must head for the nearest life pod by which to evacuate the space station.^Obey WEC protocol. Congressmen and Senators first!"; + goto block_260D; + + block_16B3: + if (msgNum != 0x009B) goto block_1777; + + block_16BC: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Security Cartel: ^Auxiliary Command Terminal.^Force field control system.^Field will remain intact, unless auxiliary code is *NOT re-entered via Primary Command terminal."; + goto block_260D; + + block_1777: + if (msgNum != 0x009C) goto block_181F; + + block_1780: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Command Terminal:^Due to Security Level Alpha ^the engineering defenses are now active.^*For safety, keep a 10 meter distance from blast area."; + goto block_260D; + + block_181F: + if (msgNum != 0x009D) goto block_189D; + + block_1828: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^Auxiliary Command Terminal.^*Netlink connected to barracks 1029-B.^*Accessing connecting passage..."; + goto block_260D; + + block_189D: + if (msgNum != 0x009E) goto block_1937; + + block_18A6: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^Auxiliary Command Terminal.^*Netlink connected to Engineering Nine.^*Passcode: 512-555-2788...^*Accessing connecting passage..."; + goto block_260D; + + block_1937: + if (msgNum != 0x009F) goto block_19DA; + + block_1940: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^Auxiliary Command Terminal:^Due to high levels of radioactive output, excessive durations within the containment room are not advisable."; + goto block_260D; + + block_19DA: + if (msgNum != 0x00A0) goto block_1A4B; + + block_19E3: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "WEC SECURITY SYSTEM:^Alternate^Security^System^^Remote Vetron:*.*.*. ALL SYSTEMS ACTIVE"; + goto block_260D; + + block_1A4B: + if (msgNum != 0x00A1) goto block_1B7E; + + block_1A54: + if (linkNum && passcode) goto block_1B2D; + + block_1A65: + /* concat */ + /* concat */ + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Remember, keep it to yourself!"; + goto block_1B7B; + + block_1B2D: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "WEC SECURITY SYSTEM:^^Remote Camera: ACTIVE*^Incubation Room #3A"; + + block_1B7B: + goto block_260D; + + block_1B7E: + if (msgNum != 0x00A2) goto block_1CD0; + + block_1B87: + if (linkNum && passcode) goto block_1C7F; + + block_1B98: + /* concat */ + /* concat */ + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Norma"; + goto block_1CCD; + + block_1C7F: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "WEC SECURITY SYSTEM:^^Remote Camera: ACTIVE*^Incubation Room #4A"; + + block_1CCD: + goto block_260D; + + block_1CD0: + if (msgNum != 0x00A3) goto block_1D32; + + block_1CD9: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "WEC SECURITY SYSTEM:^^Remote Camera: ACTIVE*^BioWaste Reclamation Center"; + goto block_260D; + + block_1D32: + if (msgNum != 0x00A4) goto block_1E4C; + + block_1D3B: + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "."; + goto block_260D; + + block_1E4C: + if (msgNum != 0x00A5) goto block_1EE0; + + block_1E55: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Audrey, Please come to my private chamber. I've got a new, larger specimen to show you. You will be most pleased! - Greggy"; + goto block_260D; + + block_1EE0: + if (msgNum != 0x00A6) goto block_1F59; + + block_1EE9: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Accessing Security Com 2341 ^*Please Wait ^Security Shields Down ^*Chrysalis Chambers Now Open "; + goto block_260D; + + block_1F59: + if (msgNum != 0x00A7) goto block_1FE4; + + block_1F62: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "From: M. Galway^To: R. Renteria^You're not cool enough to to have Sonex panels. Return them immediately! Or else!"; + goto block_260D; + + block_1FE4: + if (msgNum != 0x00AA) goto block_2058; + + block_1FED: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "From: DSNELL^______________^*You're Fired!^*^*^Turn in your badge and collect your things!"; + goto block_260D; + + block_2058: + if (msgNum != 0x00AB) goto block_2136; + + block_2061: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Security Cartel:^______________^Due to a possible infiltrator in the refinery, Alpha level will remain in effect.All high clearance areas will only be accessible via the network. ^"; + goto block_260D; + + block_2136: + if (msgNum != 0x00AC) goto block_221F; + + block_213F: + /* concat */ + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^It would serve them right if the rebels got in here..."; + goto block_260D; + + block_221F: + if (msgNum != 0x00AD) goto block_22D2; + + block_2228: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "WEC Central Co*mma*@^#$%.*.*.*^^RESISTNET: *^Welcome, Rebel...^We have hidden some items for you in the safe.^Keep up the good work...^ The Designers"; + goto block_260D; + + block_22D2: + if (msgNum != 0x00AE) goto block_236B; + + block_22DB: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Refinery Operations:^____________________^Now interfacing with remote service droid...*^^^Unit is now *-ONLINE-."; + goto block_260D; + + block_236B: + if (msgNum != 0x00AF) goto block_23CD; + + block_2374: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Security Operations:^____________________^Lithium Power Core*^Level Nine"; + goto block_260D; + + block_23CD: + if (msgNum != 0x00B0) goto block_2439; + + block_23D6: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "SATELLITE TARGETING:^____________________*^^Weapons Operations^Level Seven"; + goto block_260D; + + block_2439: + if (msgNum != 0x00B4) goto block_2492; + + block_2442: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Security Cartel:^________________^*Production Line^*"; + goto block_260D; + + block_2492: + if (msgNum != 0x00B6) goto block_24FB; + + block_249B: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Security Cartel:^________________^*Production Line Force Barrier^*"; + goto block_260D; + + block_24FB: + if (msgNum != 0x00BE) goto block_258B; + + block_2504: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "NOTICE:^The impassable laser field has been activated. The laser fields must be reactivated after use.^*End of Message"; + goto block_260D; + + block_258B: + if (msgNum != 0x00E2) goto block_25D1; + + block_2594: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "WEC SECURITY SYSTEM:^^Remote Camera: ACTIVE*"; + goto block_260D; + + block_25D1: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Bad command or file name...^File is out of range."; + + block_260D: + /* strcmp */ + if "" goto block_2659; + + block_261D: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Bad command or file name...^File is out of range."; + + block_2659: + goto block_2662; + + block_2662: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/TEXTFILE/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/TEXTFILE/slot_20_slot_20.txt new file mode 100644 index 0000000..842e914 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/TEXTFILE/slot_20_slot_20.txt @@ -0,0 +1,8 @@ +function textfile_slot_20() /* entry=393 class_id=0x0A17 slot=0x20 */ +{ + entry: + /* param_pid_chg bp_offset=0xA target=[BP+0Ah] copy_type=0x1 */ + set_info(0x0001, *(arg_06)); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/TEXTFILE/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/TEXTFILE/slot_21_slot_21.txt new file mode 100644 index 0000000..382d667 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/TEXTFILE/slot_21_slot_21.txt @@ -0,0 +1,35 @@ +function textfile_slot_21() /* entry=393 class_id=0x0A17 slot=0x21 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + linkNum, /* [BP+0Ah] type=0x69 */ + msgNum; /* [BP+0Ch] type=0x69 */ + + entry: + if (msgNum >= 110) goto block_0167; + + block_014D: + class_0A1F_slot_20(0, msgNum, linkNum, arg_06); + goto block_01A6; + + block_0164: + goto block_01A6; + + block_0167: + if (msgNum >= 60) goto block_018F; + + block_0175: + class_0A1D_slot_20(0, msgNum, linkNum, arg_06); + goto block_01A6; + + block_018C: + goto block_01A6; + + block_018F: + class_0A17_slot_23(0, msgNum, linkNum, arg_06); + goto block_01A6; + + block_01A6: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/TEXTFILE/slot_22_slot_22.txt b/USECODE/EUSECODE_extracted/pseudocode/TEXTFILE/slot_22_slot_22.txt new file mode 100644 index 0000000..f00f330 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/TEXTFILE/slot_22_slot_22.txt @@ -0,0 +1,35 @@ +function textfile_slot_22() /* entry=393 class_id=0x0A17 slot=0x22 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x0001, *(arg_06)); + class_0A0C_slot_2B(vel, ref); + if retval goto block_0292; + + block_01F8: + if (Item.getMapNum(arg_06) != 0) goto block_0292; + + block_020A: + if (Item.getFrame(arg_06) != 0) goto block_024E; + + block_0219: + spawn class_0A1E_slot_28(pid, 0, 0, arg_06); + suspend; + goto block_0292; + + block_024E: + if (Item.getFrame(arg_06) != 1) goto block_0292; + + block_025D: + spawn class_0A1E_slot_28(pid, 0, 0, arg_06); + suspend; + goto block_0292; + + block_0292: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/TEXTFILE/slot_23_slot_23.txt b/USECODE/EUSECODE_extracted/pseudocode/TEXTFILE/slot_23_slot_23.txt new file mode 100644 index 0000000..d4ec924 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/TEXTFILE/slot_23_slot_23.txt @@ -0,0 +1,566 @@ +function textfile_slot_23() /* entry=393 class_id=0x0A17 slot=0x23 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + linkNum, /* [BP+0Ah] type=0x69 */ + msgNum, /* [BP+0Ch] type=0x69 */ + passcode, /* [BP+0Eh] type=0x69 */ + textFile, /* [BP-02h] type=0x73 */ + rnge; /* [BP-04h] type=0x69 */ + + entry: + if (msgNum >= 110) goto block_02EB; + + block_02D1: + class_0A1F_slot_20(passcode, msgNum, linkNum, arg_06); + goto block_24DD; + + block_02E8: + goto block_0313; + + block_02EB: + if (msgNum >= 60) goto block_0313; + + block_02F9: + class_0A1D_slot_20(passcode, msgNum, linkNum, arg_06); + goto block_24DD; + + block_0310: + goto block_0313; + + block_0313: + if (msgNum != 0) goto block_0967; + + block_031B: + rnge = Intrinsic00DA(11, 1); + if (rnge != 1) goto block_03C9; + + block_0333: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Due to recent rebel activity, the T-300 lines have failed. *^Do NOT attempt to access the WEC network at this time.^END OF MESSAGE..."; + goto block_0964; + + block_03C9: + if (rnge != 2) goto block_0462; + + block_03D1: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "The use of WEC equipment for playing computerized entertainment software is strictly prohibited!* Return to work IMMEDIATELY!***"; + goto block_0964; + + block_0462: + if (rnge != 3) goto block_04E9; + + block_046A: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "All workers must display their badges at ALL TIMES!* Failure to comply will result in immediate termination!*^"; + goto block_0964; + + block_04E9: + if (rnge != 4) goto block_0591; + + block_04F1: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Report all unauthorized use of WEC equipment immediately! Remember, your co-workers could be rebel sympathizers! Collect big cash rewards too!*"; + goto block_0964; + + block_0591: + if (rnge != 5) goto block_0667; + + block_0599: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Unauthorized access of this terminal constitutes a violation of WEC security code 1701-D. Please report yourself to the nearest WEC security officer for correctional measures IMMEDIATELY.*^"; + goto block_0964; + + block_0667: + if (rnge != 6) goto block_06D8; + + block_066F: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "The WEC network is exp*erien^*cing*^ slight dif^*ficulties.^Please st$#@**%^#@!*)(*^%$#^"; + goto block_0964; + + block_06D8: + if (rnge != 7) goto block_07A0; + + block_06E0: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "The carrying of unregistered radiation detection devices is strictly prohibited by the WEC. Register yours today. Remember, the WEC is just like family, and we care about you!"; + goto block_0964; + + block_07A0: + if (rnge != 8) goto block_07D6; + + block_07A8: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "WEC T-300/SYS out of disk space^"; + goto block_0964; + + block_07D6: + if (rnge != 9) goto block_0865; + + block_07DE: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Consortium-wide meeting tomorrow at 1330. WedgeRoom 1501. This is a mandatory meeting! All Branch Leaders must attend!"; + goto block_0964; + + block_0865: + if (rnge != 10) goto block_090B; + + block_086D: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "The WEC Regulatory Commission requires reports of your daily activities. Failure to submit these reports may result in immediate termination."; + goto block_0964; + + block_090B: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "The WEC network is experiencing slight difficulties.^Please stand by*.*.*.^"; + + block_0964: + goto block_24D4; + + block_0967: + if (msgNum != 1) goto block_0995; + + block_096F: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Doors have been opened.^"; + goto block_24D4; + + block_0995: + if (msgNum != 2) goto block_09C4; + + block_099D: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Force field deactivated.^"; + goto block_24D4; + + block_09C4: + if (msgNum != 3) goto block_09F6; + + block_09CC: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Electronic bridge extended.^"; + goto block_24D4; + + block_09F6: + if (msgNum != 4) goto block_0A28; + + block_09FE: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Security systems activated.^"; + goto block_24D4; + + block_0A28: + if (msgNum != 5) goto block_0A5D; + + block_0A30: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Security systems de-activated.^"; + goto block_24D4; + + block_0A5D: + if ((((msgNum != 6) || (msgNum != 7)) || (msgNum != 8)) || (msgNum != 9)) goto block_0AAF; + + block_0A77: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "All alarm systems have been de-activated.^"; + goto block_24D4; + + block_0AAF: + if (msgNum != 10) goto block_0B7C; + + block_0AB7: + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^Remember, delete this message! Spies are everywhere!"; + goto block_24D4; + + block_0B7C: + if (msgNum != 11) goto block_0BF1; + + block_0B84: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Security Cartel HQD^___________________^*^Accessing system:*.*.*.*^^Thresher Cannon: *ACTIVE"; + goto block_24D4; + + block_0BF1: + if (msgNum != 12) goto block_0CB1; + + block_0BF9: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "To all Refinery Ops^2nd Class Tech Stokes has once again started a fire in the thermalcoupler area.^We ask again that all employees smoke only in the authorized areas."; + goto block_24D4; + + block_0CB1: + if (msgNum != 13) goto block_0D59; + + block_0CB9: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "To all Refinery Ops^3rd Class Tech Brandt has contaminated the fifth level with dangerous^plutonium isotopes again. Be careful where you step.^"; + goto block_24D4; + + block_0D59: + if (msgNum != 14) goto block_0DEA; + + block_0D61: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Security Cartel:^________________^Remote viewing facility.^*Thermal Coupler power system.^^Watch Station: ^*"; + goto block_24D4; + + block_0DEA: + if (msgNum != 15) goto block_0E85; + + block_0DF2: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Refinery Operations:^____________________^Now interfacing with remote service droid...*^Thermatron ZC90201^^Unit is now *-ONLINE-."; + goto block_24D4; + + block_0E85: + if (msgNum != 16) goto block_0F00; + + block_0E8D: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Security Cartel: ^^Remote alarm panel^User ID ^*^Area is secured:*^Stand down from alert."; + goto block_24D4; + + block_0F00: + if (msgNum != 17) goto block_0F6C; + + block_0F08: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Security Cartel:^__________________^Remote Operations^Watch Station: ^*"; + goto block_24D4; + + block_0F6C: + if (msgNum != 18) goto block_10A9; + + block_0F74: + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = " is this week's passcode."; + goto block_24D4; + + block_10A9: + if (msgNum != 19) goto block_118F; + + block_10B1: + /* concat */ + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^This is the last time, Philbert!^"; + goto block_24D4; + + block_118F: + if (msgNum != 20) goto block_1200; + + block_1197: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "NOTICE:^^To: All Personnel^Please remember to keep your keycards with you at all times.^"; + goto block_24D4; + + block_1200: + if (msgNum != 21) goto block_1278; + + block_1208: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Security Cartel: ^Operations Center.^User ID T*Z*1*6*^^Area is secured:*^Stand down from Alert."; + goto block_24D4; + + block_1278: + if (msgNum != 22) goto block_1342; + + block_1280: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Security Cartel: ^Operations Center.*^User ID T*Z*1*6*^^Due to malfunctions within the security grid, the telepad is inoperative. Please use the backup telepad in the west wing."; + goto block_24D4; + + block_1342: + if (msgNum != 25) goto block_1396; + + block_134A: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Phase one of the impassable laser field has been de-activated."; + goto block_24D4; + + block_1396: + if (msgNum != 27) goto block_1425; + + block_139E: + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = ".^*End of Message <"; + goto block_24D4; + + block_1425: + if (((((msgNum != 23) || (msgNum != 24)) || (msgNum != 26)) || (msgNum != 28)) || (msgNum != 29)) goto block_1471; + + block_1445: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Mission 2 Generic Message 0-9^"; + goto block_24D4; + + block_1471: + if (msgNum != 30) goto block_1528; + + block_1479: + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = ".^*End of Message <"; + goto block_24D4; + + block_1528: + if (msgNum != 31) goto block_15BD; + + block_1530: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Thermatron Assembly Line:^_____________^Now interfacing with remote droid *.*.*.^ VTK944^^Unit is now *-ONLINE-."; + goto block_24D4; + + block_15BD: + if (msgNum != 32) goto block_1600; + + block_15C5: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Thermatron Manufacturing Plant:^_____________"; + goto block_24D4; + + block_1600: + if (msgNum != 33) goto block_166F; + + block_1608: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Refinery Operations:^____________^Remote viewing facility.^*Restricted Access*^Granted"; + goto block_24D4; + + block_166F: + if (msgNum != 34) goto block_16E2; + + block_1677: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Security Cartel:^________________^Remote viewing facility.^*Production Line^*"; + goto block_24D4; + + block_16E2: + if (msgNum != 35) goto block_176C; + + block_16EA: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Security Cartel:^________________^*Auxiliary Production Line^*^Shut down requires Security Card Clearance"; + goto block_24D4; + + block_176C: + if (msgNum != 36) goto block_17B0; + + block_1774: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Thermatron Auxiliary Production Line:^________"; + goto block_24D4; + + block_17B0: + if (msgNum != 37) goto block_1806; + + block_17B8: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Security Cartel:^________________^*Laser Field^*"; + goto block_24D4; + + block_1806: + if (msgNum != 38) goto block_18A0; + + block_180E: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Security Cartel:^________________^Remote viewing facility.^*Laser Field^*^Security card clearance required to de-activate"; + goto block_24D4; + + block_18A0: + if (msgNum != 39) goto block_196F; + + block_18A8: + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^Memorize the code and delete this message immediately! <"; + goto block_24D4; + + block_196F: + if (msgNum != 40) goto block_19C5; + + block_1977: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Security Cartel:^________________^*Laser Field^*"; + goto block_24D4; + + block_19C5: + if (msgNum != 41) goto block_1A54; + + block_19CD: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Remote Security Op:^_____________^Now interfacing with remote droid *.*.*.^ ATK656^^Unit is now *-ONLINE-."; + goto block_24D4; + + block_1A54: + if (msgNum != 42) goto block_1AAA; + + block_1A5C: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^Security Control:^_______________^^*Laser Field^*"; + goto block_24D4; + + block_1AAA: + if (msgNum != 43) goto block_1B1F; + + block_1AB2: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Security Cartel HQD^___________________^*^Accessing system:*.*.*.*^^Thresher Cannon: *ACTIVE"; + goto block_24D4; + + block_1B1F: + if (msgNum != 44) goto block_1BB3; + + block_1B27: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Security Cartel HQD^___________________^*^Accessing system:*.*.*.*^^SORC Monitoring station security field:^^*"; + goto block_24D4; + + block_1BB3: + if (msgNum != 45) goto block_1C6F; + + block_1BBB: + /* concat */ + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^^Spies are everywhere so be alert!"; + goto block_24D4; + + block_1C6F: + if (msgNum != 46) goto block_1DFD; + + block_1C77: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^* WEC Email^^To: Prof. Coulson^^From: Sev Dorren,^Security Chief^^Professor, I have installed a force-field at the entrance to the SORC station as you instructed. If there is anything further required please let me know. ^PS: The only way to access the force-field is through the central computer, so I am sure it will be quite safe from any saboteurs. .^*End of Message <"; + goto block_24D4; + + block_1DFD: + if (msgNum != 47) goto block_1EBF; + + block_1E05: + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "^*End of Message <"; + goto block_24D4; + + block_1EBF: + if (msgNum != 48) goto block_1F13; + + block_1EC7: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = Item.hurl(passcode); + goto block_24D4; + + block_1F13: + if (msgNum != 49) goto block_1F62; + + block_1F1B: + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = Item.hurl(passcode); + goto block_24D4; + + block_1F62: + if (msgNum != 50) goto block_2069; + + block_1F6A: + if (linkNum && passcode) goto block_202C; + + block_1F7B: + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = ". J.J."; + goto block_2066; + + block_202C: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "WEC SECURITY SYSTEM:^^Remote Camera: ACTIVE*"; + + block_2066: + goto block_24D4; + + block_2069: + if (msgNum != 52) goto block_217A; + + block_2071: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Dr. Watson:^Since we no longer produce the 37x18 Chip at the Snell Memorial Science Center, you can expect to receive the remaining chips for meltdown this afternoon. See that no chips find their way out of your facility.^L. Probst^End of Message <"; + goto block_24D4; + + block_217A: + if (msgNum != 53) goto block_225D; + + block_2182: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Ms. Ashcraft - *It has come to my attention that you have had problems with your platform elevator. Just put an Out of Order sign on it, and I'll send a maintenance worker out to fix it A.S.A.P. Larson "; + goto block_24D4; + + block_225D: + if (msgNum != 54) goto block_22B3; + + block_2265: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "WEC SECURITY SYSTEM:^^Remote Camera: ACTIVE*^M.E.L.F. Station"; + goto block_24D4; + + block_22B3: + if (msgNum != 56) goto block_2313; + + block_22BB: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "WEC SECURITY SYSTEM:^^Remote Camera: *ACTIVE^Teleporter Room^Level Four"; + goto block_24D4; + + block_2313: + if (msgNum != 57) goto block_2370; + + block_231B: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "WEC SECURITY SYSTEM:^^Remote Camera: ACTIVE*^Security System^*ACTIVE"; + goto block_24D4; + + block_2370: + if (msgNum != 58) goto block_24D4; + + block_2378: + if (linkNum && passcode) goto block_2469; + + block_2389: + /* concat */ + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "Now you can store your very own load!"; + goto block_24D1; + + block_2469: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = "WEC SECURITY SYSTEM:^Remote Camera: ACTIVE*^Security System^*ACTIVE^Forcefield Deactivated"; + + block_24D1: + goto block_24D4; + + block_24D4: + goto block_24DD; + + block_24DD: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/THERM/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/THERM/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..432f62a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/THERM/slot_0F_enterFastArea.txt @@ -0,0 +1,13 @@ +function therm_enterFastArea() /* entry=69 class_id=0x0167 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (!Item.getFrame(arg_06)) goto block_010C; + + block_00FE: + + block_010C: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/THERMATR/slot_0E_calledFromAnim.txt b/USECODE/EUSECODE_extracted/pseudocode/THERMATR/slot_0E_calledFromAnim.txt new file mode 100644 index 0000000..a110a9e --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/THERMATR/slot_0E_calledFromAnim.txt @@ -0,0 +1,15 @@ +function thermatr_calledFromAnim() /* entry=181 class_id=0x0338 slot=0x0E */ +{ + var + referent, /* [BP+00h] type=0x69 */ + n; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x021A, *(arg_06)); + process_exclude(); + n = *(arg_06); + set_info(1, 0); + spawn class_0A1C_slot_20(Item.getQLo(arg_06), *(arg_06), arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/THRMBCKE/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/THRMBCKE/slot_0A_equip.txt new file mode 100644 index 0000000..b4db600 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/THRMBCKE/slot_0A_equip.txt @@ -0,0 +1,96 @@ +function thrmbcke_equip() /* entry=325 class_id=0x0567 slot=0x0A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + var, /* [BP+0Ah] type=0x69 */ + ewall, /* [BP-02h] type=0x24 */ + therma, /* [BP-04h] type=0x24 */ + a, /* [BP-06h] type=0x69 */ + b; /* [BP-08h] type=0x69 */ + + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if var goto block_0344; + + block_00F3: + + block_010D: + if Item.touch(4, arg_06) goto block_0147; + + block_011E: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_010D; + + block_0147: + + block_0154: + if Item.touch(4, arg_06) goto block_018E; + + block_0165: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0154; + + block_018E: + + block_019B: + if Item.touch(4, arg_06) goto block_01D5; + + block_01AC: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_019B; + + block_01D5: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_020F: + if condition goto block_022E; + + block_0212: + /* loopnext */ + goto block_020F; + + block_022E: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x44 */ + /* loop current_var=0xFC string_bytes=0xA loop_type=0x2 */ + + block_0256: + if condition goto block_0342; + + block_0259: + if (Item.getQLo(therma) != Item.getNpcNum(arg_06)) goto block_033E; + + block_0275: + b = 3; + if (Intrinsic0029() > 2) goto block_0297; + + block_028D: + a = 10; + goto block_029E; + + block_0297: + a = 5; + + block_029E: + spawn class_0A0C_slot_32(pid, 40, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0344; + + block_033E: + /* loopnext */ + goto block_0256; + + block_0342: + + block_0344: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/THRMBCKN/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/THRMBCKN/slot_0A_equip.txt new file mode 100644 index 0000000..c829163 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/THRMBCKN/slot_0A_equip.txt @@ -0,0 +1,96 @@ +function thrmbckn_equip() /* entry=324 class_id=0x0566 slot=0x0A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + var, /* [BP+0Ah] type=0x69 */ + ewall, /* [BP-02h] type=0x24 */ + therma, /* [BP-04h] type=0x24 */ + a, /* [BP-06h] type=0x69 */ + b; /* [BP-08h] type=0x69 */ + + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if var goto block_0344; + + block_00F3: + + block_010D: + if Item.touch(4, arg_06) goto block_0147; + + block_011E: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_010D; + + block_0147: + + block_0154: + if Item.touch(4, arg_06) goto block_018E; + + block_0165: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0154; + + block_018E: + + block_019B: + if Item.touch(4, arg_06) goto block_01D5; + + block_01AC: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_019B; + + block_01D5: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_020F: + if condition goto block_022E; + + block_0212: + /* loopnext */ + goto block_020F; + + block_022E: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x44 */ + /* loop current_var=0xFC string_bytes=0xA loop_type=0x2 */ + + block_0256: + if condition goto block_0342; + + block_0259: + if (Item.getQLo(therma) != Item.getNpcNum(arg_06)) goto block_033E; + + block_0275: + b = 3; + if (Intrinsic0029() > 2) goto block_0297; + + block_028D: + a = 10; + goto block_029E; + + block_0297: + a = 5; + + block_029E: + spawn class_0A0C_slot_32(pid, 40, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0344; + + block_033E: + /* loopnext */ + goto block_0256; + + block_0342: + + block_0344: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/TIMER/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/TIMER/slot_0A_equip.txt new file mode 100644 index 0000000..925fa71 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/TIMER/slot_0A_equip.txt @@ -0,0 +1,27 @@ +function timer_equip() /* entry=271 class_id=0x04C9 slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (arg_0A != 1) goto block_01E1; + + block_01BA: + if ((Item.getStatus(arg_06) & 0x1000) != 0) goto block_01DE; + + block_01D0: + spawn class_04C9_slot_20(arg_06); + + block_01DE: + goto block_01FE; + + block_01E1: + if (arg_0A != 0) goto block_01FE; + + block_01EC: + /* bit_not */ + goto block_01FE; + + block_01FE: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/TIMER/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/TIMER/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..266c10c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/TIMER/slot_0F_enterFastArea.txt @@ -0,0 +1,17 @@ +function timer_enterFastArea() /* entry=271 class_id=0x04C9 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (Intrinsic00FB(arg_06) & 2) goto block_0127; + + block_0103: + if ((Item.getStatus(arg_06) & 0x1000) != 0) goto block_0127; + + block_0119: + spawn class_04C9_slot_20(arg_06); + + block_0127: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/TIMER/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/TIMER/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..16409b4 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/TIMER/slot_10_leaveFastArea.txt @@ -0,0 +1,17 @@ +function timer_leaveFastArea() /* entry=271 class_id=0x04C9 slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + if (Intrinsic00FB(arg_06) & 4) goto block_0185; + + block_0163: + if (Item.getStatus(arg_06) & 0x1000) goto block_0185; + + block_0176: + /* bit_not */ + + block_0185: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/TIMER/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/TIMER/slot_20_slot_20.txt new file mode 100644 index 0000000..bce26e1 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/TIMER/slot_20_slot_20.txt @@ -0,0 +1,55 @@ +function timer_slot_20() /* entry=271 class_id=0x04C9 slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + cmd, /* [BP-02h] type=0x69 */ + time, /* [BP-04h] type=0x69 */ + phase2, /* [BP-06h] type=0x69 */ + a, /* [BP-08h] type=0x69 */ + l1, /* [BP-0Ch] type=0x64 */ + l2, /* [BP-10h] type=0x64 */ + l3; /* [BP-14h] type=0x64 */ + + set_info(1, 0); + time = ((Item.getMapNum(arg_06) * 0x0100) + Item.andStatus(arg_06)); + if ((time != 0)) { + cmd = Intrinsic00FB(arg_06); + a = (cmd / 32); + if (a == 0) { + phase2 = 0; + } + else if (a == 1) { + phase2 = 10; + } + else if (a == 2) { + phase2 = 25; + } + else if (a == 3) { + phase2 = 40; + } + else if (a == 4) { + phase2 = 50; + } + else if (a == 5) { + phase2 = 60; + } + else if (a == 6) { + phase2 = 75; + } + else if (a == 7) { + phase2 = 90; + } + /* word_to_dword */ + l1 = time; + /* word_to_dword */ + l2 = phase2; + l1 = (l1 * l2); + /* word_to_dword */ + l3 = 100; + l1 = (l1 / l3); + /* dword_to_word */ + phase2 = l1; + time = (time - phase2); + } + return; +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/TRANSFOR/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/TRANSFOR/slot_06_gotHit.txt new file mode 100644 index 0000000..b38fbf6 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/TRANSFOR/slot_06_gotHit.txt @@ -0,0 +1,67 @@ +function transfor_gotHit() /* entry=94 class_id=0x01BF slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + fram, /* [BP-02h] type=0x69 */ + damagePoints, /* [BP-04h] type=0x69 */ + item; /* [BP-06h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + fram = Item.getFrame(arg_06); + if (fram > 0) goto block_0158; + + block_0152: + goto block_02BA; + + block_0158: + class_0A0C_slot_2B(vel, ref); + damagePoints = retval; + class_0A0C_slot_2B(vel, ref); + if (!retval) goto block_0185; + + block_017F: + goto block_02BA; + + block_0185: + if ((Npc.isDead(arg_06) + damagePoints) < 100) goto block_01F0; + + block_01A0: + class_0A0C_slot_20(10); + if (retval > 5) goto block_01DD; + + block_01CD: + goto block_01EA; + + block_01DD: + + block_01EA: + goto block_02BA; + + block_01F0: + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x42 */ + /* loop current_var=0xFA string_bytes=0x6 loop_type=0x2 */ + + block_026D: + if condition goto block_027F; + + block_0270: + /* loopnext */ + goto block_026D; + + block_027F: + if (Item.getMapNum(arg_06) != 0) goto block_02BA; + + block_0293: + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + + block_02BA: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/TRANSFOR/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/TRANSFOR/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..c1994a7 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/TRANSFOR/slot_0F_enterFastArea.txt @@ -0,0 +1,13 @@ +function transfor_enterFastArea() /* entry=94 class_id=0x01BF slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (!Item.getFrame(arg_06)) goto block_010C; + + block_00FE: + + block_010C: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/TRIGEGG/slot_07_hatch.txt b/USECODE/EUSECODE_extracted/pseudocode/TRIGEGG/slot_07_hatch.txt new file mode 100644 index 0000000..a87cd63 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/TRIGEGG/slot_07_hatch.txt @@ -0,0 +1,19 @@ +function trigegg_hatch() /* entry=340 class_id=0x0900 slot=0x07 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + id, /* [BP-04h] type=0x69 */ + qlo; /* [BP-06h] type=0x69 */ + + entry: + set_info(0x0210, *(arg_06)); + process_exclude(); + id = Intrinsic003F(arg_06); + item = *(arg_06); + qlo = Item.getNpcNum(item); + spawn class_0A18_slot_20(pid, (0 + 0x0080), item, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/TRIGEGG/slot_15_unhatch.txt b/USECODE/EUSECODE_extracted/pseudocode/TRIGEGG/slot_15_unhatch.txt new file mode 100644 index 0000000..59fa5f4 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/TRIGEGG/slot_15_unhatch.txt @@ -0,0 +1,19 @@ +function trigegg_unhatch() /* entry=340 class_id=0x0900 slot=0x15 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + id, /* [BP-04h] type=0x69 */ + qlo; /* [BP-06h] type=0x69 */ + + entry: + set_info(0x0239, *(arg_06)); + process_exclude(); + id = Intrinsic003F(arg_06); + item = *(arg_06); + qlo = Item.getNpcNum(item); + spawn class_0A18_slot_20(pid, (1 + 0x0080), item, arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/TRIGGER/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/TRIGGER/slot_20_slot_20.txt new file mode 100644 index 0000000..8ed486d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/TRIGGER/slot_20_slot_20.txt @@ -0,0 +1,261 @@ +function trigger_slot_20() /* entry=394 class_id=0x0A18 slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + phase, /* [BP+0Ch] type=0x69 */ + lowPriorityTriggers, /* [BP-02h] type=0x6C */ + cmdphase, /* [BP-04h] type=0x69 */ + qHi, /* [BP-06h] type=0x69 */ + npcNum, /* [BP-08h] type=0x69 */ + mapNum, /* [BP-0Ah] type=0x69 */ + item, /* [BP-0Ch] type=0x24 */ + aitem, /* [BP-0Eh] type=0x24 */ + baseLink, /* [BP-10h] type=0x69 */ + newLink, /* [BP-12h] type=0x69 */ + searchtype, /* [BP-14h] type=0x69 */ + newphase; /* [BP-16h] type=0x69 */ + + entry: + set_info(0x021B, 0); + baseLink = 0; + newLink = 0; + searchtype = 0; + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + aitem = ref; + if (phase != 0x00FE) goto block_0194; + + block_0181: + baseLink = 0x00FE; + phase = 0x0080; + goto block_01CC; + + block_0194: + qHi = Intrinsic00FB(aitem); + baseLink = Item.getNpcNum(aitem); + mapNum = Item.getMapNum(aitem); + npcNum = Npc.isDead(aitem); + + block_01CC: + newLink = baseLink; + /* pop_global global_id=0x40 size=0x2 */ + if (phase < 0x0080) goto block_04C0; + + block_01E8: + searchtype = (((mapNum & 0x00E0) * 8) + npcNum); + if (mapNum != 0) goto block_020A; + + block_0204: + goto block_05E7; + + block_020A: + if (baseLink != 0) goto block_021B; + + block_0215: + goto block_05E7; + + block_021B: + cmdphase = 0; + if (mapNum & 8) goto block_0234; + + block_022D: + cmdphase = 1; + + block_0234: + if (phase != cmdphase) goto block_04C0; + + block_023F: + if (mapNum & 4) goto block_03E1; + + block_024A: + if Intrinsic00BD(searchtype) goto block_0317; + + block_0259: + if (baseLink != 0x00FF) goto block_02A0; + + block_0265: + if (searchtype != 0) goto block_029D; + + block_0270: + spawn class_0A18_slot_2A(pid, searchtype, baseLink, mapNum, npcNum, qHi, ref, arg_06); + suspend; + + block_029D: + goto block_0314; + + block_02A0: + if (searchtype != 0x07FE) goto block_02DC; + + block_02AC: + spawn class_0A18_slot_2B(pid, searchtype, baseLink, mapNum, npcNum, qHi, ref, arg_06); + suspend; + goto block_0314; + + block_02DC: + if (searchtype != 0) goto block_0314; + + block_02E7: + spawn class_0A18_slot_29(pid, searchtype, baseLink, mapNum, npcNum, qHi, ref, arg_06); + suspend; + + block_0314: + goto block_03DE; + + block_0317: + if (baseLink != 0x00FF) goto block_0362; + + block_0323: + if (searchtype != 0) goto block_035F; + + block_032E: + spawn class_0A18_slot_25(pid, searchtype, baseLink, mapNum, npcNum, qHi, ref, arg_06); + suspend; + /* dword_to_word */ + baseLink = process_result; + + block_035F: + goto block_03DE; + + block_0362: + if (searchtype != 0x07FF) goto block_03A2; + + block_036E: + spawn class_0A18_slot_24(pid, searchtype, baseLink, mapNum, npcNum, qHi, ref, arg_06); + suspend; + /* dword_to_word */ + baseLink = process_result; + goto block_03DE; + + block_03A2: + if (searchtype != 0) goto block_03DE; + + block_03AD: + spawn class_0A18_slot_23(pid, searchtype, baseLink, mapNum, npcNum, qHi, ref, arg_06); + suspend; + /* dword_to_word */ + baseLink = process_result; + + block_03DE: + goto block_04A8; + + block_03E1: + if (baseLink != 0x00FF) goto block_042C; + + block_03ED: + if (searchtype != 0) goto block_0429; + + block_03F8: + spawn class_0A18_slot_28(pid, searchtype, baseLink, mapNum, npcNum, qHi, ref, arg_06); + suspend; + /* dword_to_word */ + baseLink = process_result; + + block_0429: + goto block_04A8; + + block_042C: + if (searchtype != 0x07FF) goto block_046C; + + block_0438: + spawn class_0A18_slot_27(pid, searchtype, baseLink, mapNum, npcNum, qHi, ref, arg_06); + suspend; + /* dword_to_word */ + baseLink = process_result; + goto block_04A8; + + block_046C: + if (searchtype != 0) goto block_04A8; + + block_0477: + spawn class_0A18_slot_26(pid, searchtype, baseLink, mapNum, npcNum, qHi, ref, arg_06); + suspend; + /* dword_to_word */ + baseLink = process_result; + + block_04A8: + if (mapNum & 16) goto block_04C0; + + block_04B3: + + block_04C0: + newphase = (phase & 1); + + block_04CA: + if 1 goto block_05E7; + + block_04D2: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF4 string_bytes=0x6 loop_type=0x2 */ + + block_04EE: + if condition goto block_057E; + + block_04F1: + if (Item.getNpcNum(item) != baseLink) goto block_057A; + + block_0503: + mapNum = Item.getMapNum(item); + cmdphase = 0; + if (mapNum & 8) goto block_052A; + + block_0523: + cmdphase = 1; + + block_052A: + if (newphase != cmdphase) goto block_057A; + + block_0535: + if (mapNum & 16) goto block_056A; + + block_0540: + spawn class_0A18_slot_21(pid, item, arg_06); + suspend; + /* dword_to_word */ + newLink = process_result; + goto block_057A; + + block_056A: + /* create_list element_size=0x2 count=0x1 */ + /* append_list */ + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + lowPriorityTriggers = item; + + block_057A: + /* loopnext */ + goto block_04EE; + + block_057E: + + block_0589: + foreach_list item -> block_05CC; + + block_058E: + spawn class_0A18_slot_21(pid, item, arg_06); + suspend; + /* dword_to_word */ + newLink = process_result; + /* create_list element_size=0x2 count=0x1 */ + /* remove_matching_inline element_size=0x2 */ + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + lowPriorityTriggers = item; + goto block_0589; + + block_05CC: + if (newLink != baseLink) goto block_05DD; + + block_05D7: + goto block_05E7; + + block_05DD: + baseLink = newLink; + goto block_04CA; + + block_05E7: + /* free_local_list bp_offset=0xFE target=[BP-02h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/TRIGGER/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/TRIGGER/slot_21_slot_21.txt new file mode 100644 index 0000000..fb0f440 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/TRIGGER/slot_21_slot_21.txt @@ -0,0 +1,145 @@ +function trigger_slot_21() /* entry=394 class_id=0x0A18 slot=0x21 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + cmd, /* [BP-02h] type=0x69 */ + qHi, /* [BP-04h] type=0x69 */ + npcNum, /* [BP-06h] type=0x69 */ + mapNum, /* [BP-08h] type=0x69 */ + searchtype, /* [BP-0Ah] type=0x69 */ + aitem, /* [BP-0Ch] type=0x24 */ + baseLink, /* [BP-0Eh] type=0x69 */ + newLink; /* [BP-10h] type=0x69 */ + + entry: + set_info(0x021B, 0); + aitem = ref; + baseLink = Item.getNpcNum(aitem); + newLink = baseLink; + qHi = Intrinsic00FB(aitem); + mapNum = Item.getMapNum(aitem); + npcNum = Npc.isDead(aitem); + searchtype = (((mapNum & 0x00E0) * 8) + npcNum); + if (mapNum != 0) goto block_0718; + + block_0712: + goto block_098B; + + block_0718: + if (mapNum & 4) goto block_08BA; + + block_0723: + if Intrinsic00BD(searchtype) goto block_07F0; + + block_0732: + if (baseLink != 0x00FF) goto block_0779; + + block_073E: + if (searchtype != 0) goto block_0776; + + block_0749: + spawn class_0A18_slot_2A(pid, searchtype, baseLink, mapNum, npcNum, qHi, ref, arg_06); + suspend; + + block_0776: + goto block_07ED; + + block_0779: + if (searchtype != 0x07FE) goto block_07B5; + + block_0785: + spawn class_0A18_slot_2B(pid, searchtype, baseLink, mapNum, npcNum, qHi, ref, arg_06); + suspend; + goto block_07ED; + + block_07B5: + if (searchtype != 0) goto block_07ED; + + block_07C0: + spawn class_0A18_slot_29(pid, searchtype, baseLink, mapNum, npcNum, qHi, ref, arg_06); + suspend; + + block_07ED: + goto block_08B7; + + block_07F0: + if (baseLink != 0x00FF) goto block_083B; + + block_07FC: + if (searchtype != 0) goto block_0838; + + block_0807: + spawn class_0A18_slot_25(pid, searchtype, baseLink, mapNum, npcNum, qHi, ref, arg_06); + suspend; + /* dword_to_word */ + newLink = process_result; + + block_0838: + goto block_08B7; + + block_083B: + if (searchtype != 0x07FF) goto block_087B; + + block_0847: + spawn class_0A18_slot_24(pid, searchtype, baseLink, mapNum, npcNum, qHi, ref, arg_06); + suspend; + /* dword_to_word */ + newLink = process_result; + goto block_08B7; + + block_087B: + if (searchtype != 0) goto block_08B7; + + block_0886: + spawn class_0A18_slot_23(pid, searchtype, baseLink, mapNum, npcNum, qHi, ref, arg_06); + suspend; + /* dword_to_word */ + newLink = process_result; + + block_08B7: + goto block_0981; + + block_08BA: + if (baseLink != 0x00FF) goto block_0905; + + block_08C6: + if (searchtype != 0) goto block_0902; + + block_08D1: + spawn class_0A18_slot_28(pid, searchtype, baseLink, mapNum, npcNum, qHi, ref, arg_06); + suspend; + /* dword_to_word */ + newLink = process_result; + + block_0902: + goto block_0981; + + block_0905: + if (searchtype != 0x07FF) goto block_0945; + + block_0911: + spawn class_0A18_slot_27(pid, searchtype, baseLink, mapNum, npcNum, qHi, ref, arg_06); + suspend; + /* dword_to_word */ + newLink = process_result; + goto block_0981; + + block_0945: + if (searchtype != 0) goto block_0981; + + block_0950: + spawn class_0A18_slot_26(pid, searchtype, baseLink, mapNum, npcNum, qHi, ref, arg_06); + suspend; + /* dword_to_word */ + newLink = process_result; + + block_0981: + /* word_to_dword */ + /* pop_result */ + goto block_098B; + + block_098B: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/TRIGGER/slot_22_slot_22.txt b/USECODE/EUSECODE_extracted/pseudocode/TRIGGER/slot_22_slot_22.txt new file mode 100644 index 0000000..a190476 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/TRIGGER/slot_22_slot_22.txt @@ -0,0 +1,38 @@ +function trigger_slot_22() /* entry=394 class_id=0x0A18 slot=0x22 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + num, /* [BP+0Ch] type=0x69 */ + door; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x021B, 0); + door = ref; + + block_0A1C: + if 1 goto block_0AAC; + + block_0A24: + if ((Item.getStatus(door) & 0x1000) != 0) goto block_0A83; + + block_0A3A: + spawn class_0A06_slot_21(pid, num, door); + suspend; + /* bit_not */ + goto block_0AAC; + + block_0A80: + goto block_0AA9; + + block_0A83: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + + block_0AA9: + goto block_0A1C; + + block_0AAC: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/TRIGGER/slot_23_slot_23.txt b/USECODE/EUSECODE_extracted/pseudocode/TRIGGER/slot_23_slot_23.txt new file mode 100644 index 0000000..02779ba --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/TRIGGER/slot_23_slot_23.txt @@ -0,0 +1,312 @@ +function trigger_slot_23() /* entry=394 class_id=0x0A18 slot=0x23 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + qHi, /* [BP+0Ch] type=0x69 */ + npcNum, /* [BP+0Eh] type=0x69 */ + mapNum, /* [BP+10h] type=0x69 */ + baseLink, /* [BP+12h] type=0x69 */ + searchtype, /* [BP+14h] type=0x69 */ + scmd, /* [BP-02h] type=0x69 */ + cmd, /* [BP-04h] type=0x69 */ + a, /* [BP-06h] type=0x69 */ + b, /* [BP-08h] type=0x69 */ + c, /* [BP-0Ah] type=0x69 */ + d, /* [BP-0Ch] type=0x69 */ + item, /* [BP-0Eh] type=0x24 */ + aitem, /* [BP-10h] type=0x24 */ + newLink, /* [BP-12h] type=0x69 */ + item2; /* [BP-14h] type=0x24 */ + + entry: + set_info(0x021B, 0); + newLink = baseLink; + aitem = ref; + cmd = (mapNum & 3); + if (cmd != 0) goto block_0B62; + + block_0B0F: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_0B2C: + if condition goto block_0B5D; + + block_0B2F: + if (Item.getNpcNum(item) != baseLink) goto block_0B59; + + block_0B41: + if (ref != item) goto block_0B59; + + block_0B4C: + + block_0B59: + /* loopnext */ + goto block_0B2C; + + block_0B5D: + goto block_1056; + + block_0B62: + if (cmd != 1) goto block_0BBD; + + block_0B6A: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_0B87: + if condition goto block_0BB8; + + block_0B8A: + if (Item.getNpcNum(item) != baseLink) goto block_0BB4; + + block_0B9C: + if (ref != item) goto block_0BB4; + + block_0BA7: + + block_0BB4: + /* loopnext */ + goto block_0B87; + + block_0BB8: + goto block_1056; + + block_0BBD: + if (cmd != 2) goto block_0C1A; + + block_0BC5: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_0BE2: + if condition goto block_0C15; + + block_0BE5: + if (Item.getNpcNum(item) != baseLink) goto block_0C11; + + block_0BF7: + if (ref != item) goto block_0C11; + + block_0C02: + + block_0C11: + /* loopnext */ + goto block_0BE2; + + block_0C15: + goto block_1056; + + block_0C1A: + if (cmd != 3) goto block_1056; + + block_0C22: + scmd = (qHi & 7); + if (scmd != 0) goto block_0CC3; + + block_0C34: + d = (qHi / 8); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_0C5C: + if condition goto block_0CBE; + + block_0C5F: + if (Item.getNpcNum(item) != baseLink) goto block_0CBA; + + block_0C71: + a = Intrinsic00DA(item); + c = (a & 15); + b = Item.getMapNum(item); + b = (((a & 0x00E0) * 8) + b); + class_0A0C_slot_30(d, c, b, item); + + block_0CBA: + /* loopnext */ + goto block_0C5C; + + block_0CBE: + goto block_1053; + + block_0CC3: + if (scmd != 1) goto block_0E2E; + + block_0CCB: + d = (qHi / 8); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_0CF2: + if condition goto block_0E29; + + block_0CF5: + if (Item.getNpcNum(item) != baseLink) goto block_0E25; + + block_0D07: + if (ref != item) goto block_0E25; + + block_0D12: + if (d != 31) goto block_0D58; + + block_0D2A: + suspend; + goto block_0E25; + + block_0D58: + c = Item.getFrame(item); + b = Intrinsic0016(item); + a = (b & 0x00FF); + b = (b & 0x0700); + b = (b / 8); + b = (b + c); + suspend; + /* bit_not */ + + block_0E25: + /* loopnext */ + goto block_0CF2; + + block_0E29: + goto block_1053; + + block_0E2E: + if (scmd != 2) goto block_0E93; + + block_0E36: + a = (qHi / 8); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_0E5D: + if condition goto block_0E8E; + + block_0E60: + if (Item.getNpcNum(item) != baseLink) goto block_0E8A; + + block_0E72: + if (ref != item) goto block_0E8A; + + block_0E7D: + + block_0E8A: + /* loopnext */ + goto block_0E5D; + + block_0E8E: + goto block_1053; + + block_0E93: + if (scmd != 3) goto block_0EFF; + + block_0E9B: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_0EB8: + if condition goto block_0EFA; + + block_0EBB: + if (Item.getNpcNum(item) != baseLink) goto block_0EF6; + + block_0ECD: + if (ref != item) goto block_0EF6; + + block_0ED8: + a = (qHi / 8); + spawn class_0A18_slot_22(a, item, arg_06); + + block_0EF6: + /* loopnext */ + goto block_0EB8; + + block_0EFA: + goto block_1053; + + block_0EFF: + if (scmd != 4) goto block_0F1E; + + block_0F07: + a = (qHi / 8); + newLink = (newLink + a); + goto block_1053; + + block_0F1E: + if (scmd != 5) goto block_0F3D; + + block_0F26: + a = (qHi / 8); + newLink = (newLink - a); + goto block_1053; + + block_0F3D: + if (scmd != 6) goto block_1053; + + block_0F45: + d = (qHi / 8); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_0F6D: + if condition goto block_104E; + + block_0F70: + if (Item.getNpcNum(item) != baseLink) goto block_104A; + + block_0F82: + a = Item.getQLo(item); + c = (a & 15); + b = Item.getMapNum(item); + b = (((a & 0x00E0) * 8) + b); + if (b != 0) goto block_104A; + + block_0FC4: + if (Item.getQLo(c, b, item2) != 1) goto block_104A; + + block_0FDA: + suspend; + + block_104A: + /* loopnext */ + goto block_0F6D; + + block_104E: + goto block_1053; + + block_1053: + goto block_1056; + + block_1056: + /* word_to_dword */ + /* pop_result */ + goto block_1060; + + block_1060: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/TRIGGER/slot_24_slot_24.txt b/USECODE/EUSECODE_extracted/pseudocode/TRIGGER/slot_24_slot_24.txt new file mode 100644 index 0000000..dcebf3d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/TRIGGER/slot_24_slot_24.txt @@ -0,0 +1,323 @@ +function trigger_slot_24() /* entry=394 class_id=0x0A18 slot=0x24 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + qHi, /* [BP+0Ch] type=0x69 */ + npcNum, /* [BP+0Eh] type=0x69 */ + mapNum, /* [BP+10h] type=0x69 */ + baseLink, /* [BP+12h] type=0x69 */ + searchtype, /* [BP+14h] type=0x69 */ + scmd, /* [BP-02h] type=0x69 */ + cmd, /* [BP-04h] type=0x69 */ + a, /* [BP-06h] type=0x69 */ + b, /* [BP-08h] type=0x69 */ + c, /* [BP-0Ah] type=0x69 */ + d, /* [BP-0Ch] type=0x69 */ + item, /* [BP-0Eh] type=0x24 */ + aitem, /* [BP-10h] type=0x24 */ + newLink, /* [BP-12h] type=0x69 */ + distance, /* [BP-14h] type=0x69 */ + item2; /* [BP-16h] type=0x24 */ + + entry: + set_info(0x021B, 0); + newLink = baseLink; + aitem = ref; + cmd = (mapNum & 3); + if (cmd != 0) goto block_1191; + + block_113E: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_115B: + if condition goto block_118C; + + block_115E: + if (Item.getNpcNum(item) != baseLink) goto block_1188; + + block_1170: + if (ref != item) goto block_1188; + + block_117B: + + block_1188: + /* loopnext */ + goto block_115B; + + block_118C: + goto block_16A3; + + block_1191: + if (cmd != 1) goto block_11EC; + + block_1199: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_11B6: + if condition goto block_11E7; + + block_11B9: + if (Item.getNpcNum(item) != baseLink) goto block_11E3; + + block_11CB: + if (ref != item) goto block_11E3; + + block_11D6: + + block_11E3: + /* loopnext */ + goto block_11B6; + + block_11E7: + goto block_16A3; + + block_11EC: + if (cmd != 2) goto block_1249; + + block_11F4: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_1211: + if condition goto block_1244; + + block_1214: + if (Item.getNpcNum(item) != baseLink) goto block_1240; + + block_1226: + if (ref != item) goto block_1240; + + block_1231: + + block_1240: + /* loopnext */ + goto block_1211; + + block_1244: + goto block_16A3; + + block_1249: + if (cmd != 3) goto block_16A3; + + block_1251: + scmd = (qHi & 7); + if (scmd != 0) goto block_12F2; + + block_1263: + d = (qHi / 8); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_128B: + if condition goto block_12ED; + + block_128E: + if (Item.getNpcNum(item) != baseLink) goto block_12E9; + + block_12A0: + a = Item.getQLo(item); + c = (a & 15); + b = Item.getMapNum(item); + b = (((a & 0x00E0) * 8) + b); + class_0A0C_slot_30(d, c, b, item); + + block_12E9: + /* loopnext */ + goto block_128B; + + block_12ED: + goto block_16A0; + + block_12F2: + if (scmd != 1) goto block_145D; + + block_12FA: + d = (qHi / 8); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_1321: + if condition goto block_1458; + + block_1324: + if (Item.getNpcNum(item) != baseLink) goto block_1454; + + block_1336: + if (ref != item) goto block_1454; + + block_1341: + if (d != 31) goto block_1387; + + block_1359: + suspend; + goto block_1454; + + block_1387: + c = Item.getFrame(item); + b = Intrinsic0016(item); + a = (b & 0x00FF); + b = (b & 0x0700); + b = (b / 8); + b = (b + c); + suspend; + /* bit_not */ + + block_1454: + /* loopnext */ + goto block_1321; + + block_1458: + goto block_16A0; + + block_145D: + if (scmd != 2) goto block_14C2; + + block_1465: + a = (qHi / 8); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_148C: + if condition goto block_14BD; + + block_148F: + if (Item.getNpcNum(item) != baseLink) goto block_14B9; + + block_14A1: + if (ref != item) goto block_14B9; + + block_14AC: + + block_14B9: + /* loopnext */ + goto block_148C; + + block_14BD: + goto block_16A0; + + block_14C2: + if (scmd != 3) goto block_154C; + + block_14CA: + if (global[0x0040] != 100) goto block_14E1; + + block_14D7: + distance = 32; + goto block_14EA; + + block_14E1: + distance = global[0x0040]; + + block_14EA: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_1505: + if condition goto block_1547; + + block_1508: + if (Item.getNpcNum(item) != baseLink) goto block_1543; + + block_151A: + if (ref != item) goto block_1543; + + block_1525: + a = (qHi / 8); + spawn class_0A18_slot_22(a, item, arg_06); + + block_1543: + /* loopnext */ + goto block_1505; + + block_1547: + goto block_16A0; + + block_154C: + if (scmd != 4) goto block_156B; + + block_1554: + a = (qHi / 8); + newLink = (newLink + a); + goto block_16A0; + + block_156B: + if (scmd != 5) goto block_158A; + + block_1573: + a = (qHi / 8); + newLink = (newLink - a); + goto block_16A0; + + block_158A: + if (scmd != 6) goto block_16A0; + + block_1592: + d = (qHi / 8); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_15BA: + if condition goto block_169B; + + block_15BD: + if (Item.getNpcNum(item) != baseLink) goto block_1697; + + block_15CF: + a = Item.getQHi(item); + c = (a & 15); + b = Item.getMapNum(item); + b = (((a & 0x00E0) * 8) + b); + if (b != 0) goto block_1697; + + block_1611: + if (Item.getQLo(c, b, item2) != 1) goto block_1697; + + block_1627: + suspend; + + block_1697: + /* loopnext */ + goto block_15BA; + + block_169B: + goto block_16A0; + + block_16A0: + goto block_16A3; + + block_16A3: + /* word_to_dword */ + /* pop_result */ + goto block_16AD; + + block_16AD: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/TRIGGER/slot_25_slot_25.txt b/USECODE/EUSECODE_extracted/pseudocode/TRIGGER/slot_25_slot_25.txt new file mode 100644 index 0000000..ee8b9b4 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/TRIGGER/slot_25_slot_25.txt @@ -0,0 +1,286 @@ +function trigger_slot_25() /* entry=394 class_id=0x0A18 slot=0x25 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + qHi, /* [BP+0Ch] type=0x69 */ + npcNum, /* [BP+0Eh] type=0x69 */ + mapNum, /* [BP+10h] type=0x69 */ + baseLink, /* [BP+12h] type=0x69 */ + searchtype, /* [BP+14h] type=0x69 */ + scmd, /* [BP-02h] type=0x69 */ + cmd, /* [BP-04h] type=0x69 */ + a, /* [BP-06h] type=0x69 */ + b, /* [BP-08h] type=0x69 */ + c, /* [BP-0Ah] type=0x69 */ + d, /* [BP-0Ch] type=0x69 */ + item, /* [BP-0Eh] type=0x24 */ + aitem, /* [BP-10h] type=0x24 */ + newLink, /* [BP-12h] type=0x69 */ + item2; /* [BP-14h] type=0x24 */ + + entry: + set_info(0x021B, 0); + newLink = baseLink; + aitem = ref; + cmd = (mapNum & 3); + if (cmd != 0) goto block_17D9; + + block_1798: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_17B5: + if condition goto block_17D4; + + block_17B8: + if (ref != item) goto block_17D0; + + block_17C3: + + block_17D0: + /* loopnext */ + goto block_17B5; + + block_17D4: + goto block_1C4F; + + block_17D9: + if (cmd != 1) goto block_1822; + + block_17E1: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_17FE: + if condition goto block_181D; + + block_1801: + if (ref != item) goto block_1819; + + block_180C: + + block_1819: + /* loopnext */ + goto block_17FE; + + block_181D: + goto block_1C4F; + + block_1822: + if (cmd != 2) goto block_186D; + + block_182A: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_1847: + if condition goto block_1868; + + block_184A: + if (ref != item) goto block_1864; + + block_1855: + + block_1864: + /* loopnext */ + goto block_1847; + + block_1868: + goto block_1C4F; + + block_186D: + if (cmd != 3) goto block_1C4F; + + block_1875: + scmd = (qHi & 7); + if (scmd != 0) goto block_1904; + + block_1887: + d = (qHi / 8); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_18AF: + if condition goto block_18FF; + + block_18B2: + a = Item.getQHi(item); + c = (a & 15); + b = Item.getMapNum(item); + b = (((a & 0x00E0) * 8) + b); + class_0A0C_slot_30(d, c, b, item); + /* loopnext */ + goto block_18AF; + + block_18FF: + goto block_1C4C; + + block_1904: + if (scmd != 1) goto block_1A5D; + + block_190C: + d = (qHi / 8); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_1933: + if condition goto block_1A58; + + block_1936: + if (ref != item) goto block_1A54; + + block_1941: + if (d != 31) goto block_1987; + + block_1959: + suspend; + goto block_1A54; + + block_1987: + c = Item.getFrame(item); + b = Intrinsic0016(item); + a = (b & 0x00FF); + b = (b & 0x0700); + b = (b / 8); + b = (b + c); + suspend; + /* bit_not */ + + block_1A54: + /* loopnext */ + goto block_1933; + + block_1A58: + goto block_1C4C; + + block_1A5D: + if (scmd != 2) goto block_1AB0; + + block_1A65: + a = (qHi / 8); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_1A8C: + if condition goto block_1AAB; + + block_1A8F: + if (ref != item) goto block_1AA7; + + block_1A9A: + + block_1AA7: + /* loopnext */ + goto block_1A8C; + + block_1AAB: + goto block_1C4C; + + block_1AB0: + if (scmd != 3) goto block_1B0A; + + block_1AB8: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_1AD5: + if condition goto block_1B05; + + block_1AD8: + if (ref != item) goto block_1B01; + + block_1AE3: + a = (qHi / 8); + spawn class_0A18_slot_22(a, item, arg_06); + + block_1B01: + /* loopnext */ + goto block_1AD5; + + block_1B05: + goto block_1C4C; + + block_1B0A: + if (scmd != 4) goto block_1B29; + + block_1B12: + a = (qHi / 8); + newLink = (newLink + a); + goto block_1C4C; + + block_1B29: + if (scmd != 5) goto block_1B48; + + block_1B31: + a = (qHi / 8); + newLink = (newLink - a); + goto block_1C4C; + + block_1B48: + if (scmd != 6) goto block_1C4C; + + block_1B50: + d = (qHi / 8); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_1B78: + if condition goto block_1C47; + + block_1B7B: + a = Item.getQHi(item); + c = (a & 15); + b = Item.getMapNum(item); + b = (((a & 0x00E0) * 8) + b); + if (b != 0) goto block_1C43; + + block_1BBD: + if (Item.getQLo(c, b, item2) != 1) goto block_1C43; + + block_1BD3: + suspend; + + block_1C43: + /* loopnext */ + goto block_1B78; + + block_1C47: + goto block_1C4C; + + block_1C4C: + goto block_1C4F; + + block_1C4F: + /* word_to_dword */ + /* pop_result */ + goto block_1C59; + + block_1C59: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/TRIGGER/slot_26_slot_26.txt b/USECODE/EUSECODE_extracted/pseudocode/TRIGGER/slot_26_slot_26.txt new file mode 100644 index 0000000..7d07caf --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/TRIGGER/slot_26_slot_26.txt @@ -0,0 +1,294 @@ +function trigger_slot_26() /* entry=394 class_id=0x0A18 slot=0x26 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + qHi, /* [BP+0Ch] type=0x69 */ + npcNum, /* [BP+0Eh] type=0x69 */ + mapNum, /* [BP+10h] type=0x69 */ + baseLink, /* [BP+12h] type=0x69 */ + searchtype, /* [BP+14h] type=0x69 */ + scmd, /* [BP-02h] type=0x69 */ + cmd, /* [BP-04h] type=0x69 */ + a, /* [BP-06h] type=0x69 */ + b, /* [BP-08h] type=0x69 */ + c, /* [BP-0Ah] type=0x69 */ + d, /* [BP-0Ch] type=0x69 */ + item, /* [BP-0Eh] type=0x24 */ + aitem, /* [BP-10h] type=0x24 */ + newLink, /* [BP-12h] type=0x69 */ + item2; /* [BP-14h] type=0x24 */ + + entry: + set_info(0x021B, 0); + newLink = baseLink; + aitem = ref; + cmd = (mapNum & 3); + if (cmd != 0) goto block_1D7F; + + block_1D37: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_1D54: + if condition goto block_1D7A; + + block_1D57: + if (Item.getNpcNum(item) != baseLink) goto block_1D76; + + block_1D69: + + block_1D76: + /* loopnext */ + goto block_1D54; + + block_1D7A: + goto block_223C; + + block_1D7F: + if (cmd != 1) goto block_1DCF; + + block_1D87: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_1DA4: + if condition goto block_1DCA; + + block_1DA7: + if (Item.getNpcNum(item) != baseLink) goto block_1DC6; + + block_1DB9: + + block_1DC6: + /* loopnext */ + goto block_1DA4; + + block_1DCA: + goto block_223C; + + block_1DCF: + if (cmd != 2) goto block_1E21; + + block_1DD7: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_1DF4: + if condition goto block_1E1C; + + block_1DF7: + if (Item.getNpcNum(item) != baseLink) goto block_1E18; + + block_1E09: + + block_1E18: + /* loopnext */ + goto block_1DF4; + + block_1E1C: + goto block_223C; + + block_1E21: + if (cmd != 3) goto block_223C; + + block_1E29: + scmd = (qHi & 7); + if (scmd != 0) goto block_1ECA; + + block_1E3B: + d = (qHi / 8); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_1E63: + if condition goto block_1EC5; + + block_1E66: + if (Item.getNpcNum(item) != baseLink) goto block_1EC1; + + block_1E78: + a = Item.getQHi(item); + c = (a & 15); + b = Item.getMapNum(item); + b = (((a & 0x00E0) * 8) + b); + class_0A0C_slot_30(d, c, b, item); + + block_1EC1: + /* loopnext */ + goto block_1E63; + + block_1EC5: + goto block_2239; + + block_1ECA: + if (scmd != 1) goto block_202A; + + block_1ED2: + d = (qHi / 8); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_1EF9: + if condition goto block_2025; + + block_1EFC: + if (Item.getNpcNum(item) != baseLink) goto block_2021; + + block_1F0E: + if (d != 31) goto block_1F54; + + block_1F26: + suspend; + goto block_2021; + + block_1F54: + c = Item.getFrame(item); + b = Intrinsic0016(item); + a = (b & 0x00FF); + b = (b & 0x0700); + b = (b / 8); + b = (b + c); + suspend; + /* bit_not */ + + block_2021: + /* loopnext */ + goto block_1EF9; + + block_2025: + goto block_2239; + + block_202A: + if (scmd != 2) goto block_2084; + + block_2032: + a = (qHi / 8); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_2059: + if condition goto block_207F; + + block_205C: + if (Item.getNpcNum(item) != baseLink) goto block_207B; + + block_206E: + + block_207B: + /* loopnext */ + goto block_2059; + + block_207F: + goto block_2239; + + block_2084: + if (scmd != 3) goto block_20E5; + + block_208C: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_20A9: + if condition goto block_20E0; + + block_20AC: + if (Item.getNpcNum(item) != baseLink) goto block_20DC; + + block_20BE: + a = (qHi / 8); + spawn class_0A18_slot_22(a, item, arg_06); + + block_20DC: + /* loopnext */ + goto block_20A9; + + block_20E0: + goto block_2239; + + block_20E5: + if (scmd != 4) goto block_2104; + + block_20ED: + a = (qHi / 8); + newLink = (newLink + a); + goto block_2239; + + block_2104: + if (scmd != 5) goto block_2123; + + block_210C: + a = (qHi / 8); + newLink = (newLink - a); + goto block_2239; + + block_2123: + if (scmd != 6) goto block_2239; + + block_212B: + d = (qHi / 8); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_2153: + if condition goto block_2234; + + block_2156: + if (Item.getNpcNum(item) != baseLink) goto block_2230; + + block_2168: + a = Item.getNpcNum(item); + c = (a & 15); + b = Item.getMapNum(item); + b = (((a & 0x00E0) * 8) + b); + if (b != 0) goto block_2230; + + block_21AA: + if (Item.getQLo(c, b, item2) != 1) goto block_2230; + + block_21C0: + suspend; + + block_2230: + /* loopnext */ + goto block_2153; + + block_2234: + goto block_2239; + + block_2239: + goto block_223C; + + block_223C: + /* word_to_dword */ + /* pop_result */ + goto block_2246; + + block_2246: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/TRIGGER/slot_27_slot_27.txt b/USECODE/EUSECODE_extracted/pseudocode/TRIGGER/slot_27_slot_27.txt new file mode 100644 index 0000000..ee5a2fd --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/TRIGGER/slot_27_slot_27.txt @@ -0,0 +1,305 @@ +function trigger_slot_27() /* entry=394 class_id=0x0A18 slot=0x27 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + qHi, /* [BP+0Ch] type=0x69 */ + npcNum, /* [BP+0Eh] type=0x69 */ + mapNum, /* [BP+10h] type=0x69 */ + baseLink, /* [BP+12h] type=0x69 */ + searchtype, /* [BP+14h] type=0x69 */ + scmd, /* [BP-02h] type=0x69 */ + cmd, /* [BP-04h] type=0x69 */ + a, /* [BP-06h] type=0x69 */ + b, /* [BP-08h] type=0x69 */ + c, /* [BP-0Ah] type=0x69 */ + d, /* [BP-0Ch] type=0x69 */ + item, /* [BP-0Eh] type=0x24 */ + aitem, /* [BP-10h] type=0x24 */ + newLink, /* [BP-12h] type=0x69 */ + distance, /* [BP-14h] type=0x69 */ + item2; /* [BP-16h] type=0x24 */ + + entry: + set_info(0x021B, 0); + newLink = baseLink; + aitem = ref; + cmd = (mapNum & 3); + if (cmd != 0) goto block_236C; + + block_2324: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_2341: + if condition goto block_2367; + + block_2344: + if (Item.getNpcNum(item) != baseLink) goto block_2363; + + block_2356: + + block_2363: + /* loopnext */ + goto block_2341; + + block_2367: + goto block_2847; + + block_236C: + if (cmd != 1) goto block_23BC; + + block_2374: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_2391: + if condition goto block_23B7; + + block_2394: + if (Item.getNpcNum(item) != baseLink) goto block_23B3; + + block_23A6: + + block_23B3: + /* loopnext */ + goto block_2391; + + block_23B7: + goto block_2847; + + block_23BC: + if (cmd != 2) goto block_240E; + + block_23C4: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_23E1: + if condition goto block_2409; + + block_23E4: + if (Item.getNpcNum(item) != baseLink) goto block_2405; + + block_23F6: + + block_2405: + /* loopnext */ + goto block_23E1; + + block_2409: + goto block_2847; + + block_240E: + if (cmd != 3) goto block_2847; + + block_2416: + scmd = (qHi & 7); + if (scmd != 0) goto block_24B7; + + block_2428: + d = (qHi / 8); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_2450: + if condition goto block_24B2; + + block_2453: + if (Item.getNpcNum(item) != baseLink) goto block_24AE; + + block_2465: + a = Item.getNpcNum(item); + c = (a & 15); + b = Item.getMapNum(item); + b = (((a & 0x00E0) * 8) + b); + class_0A0C_slot_30(d, c, b, item); + + block_24AE: + /* loopnext */ + goto block_2450; + + block_24B2: + goto block_2844; + + block_24B7: + if (scmd != 1) goto block_2617; + + block_24BF: + d = (qHi / 8); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_24E6: + if condition goto block_2612; + + block_24E9: + if (Item.getNpcNum(item) != baseLink) goto block_260E; + + block_24FB: + if (d != 31) goto block_2541; + + block_2513: + suspend; + goto block_260E; + + block_2541: + c = Item.getFrame(item); + b = Intrinsic0016(item); + a = (b & 0x00FF); + b = (b & 0x0700); + b = (b / 8); + b = (b + c); + suspend; + /* bit_not */ + + block_260E: + /* loopnext */ + goto block_24E6; + + block_2612: + goto block_2844; + + block_2617: + if (scmd != 2) goto block_2671; + + block_261F: + a = (qHi / 8); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_2646: + if condition goto block_266C; + + block_2649: + if (Item.getNpcNum(item) != baseLink) goto block_2668; + + block_265B: + + block_2668: + /* loopnext */ + goto block_2646; + + block_266C: + goto block_2844; + + block_2671: + if (scmd != 3) goto block_26F0; + + block_2679: + if (global[0x0040] != 100) goto block_2690; + + block_2686: + distance = 32; + goto block_2699; + + block_2690: + distance = global[0x0040]; + + block_2699: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_26B4: + if condition goto block_26EB; + + block_26B7: + if (Item.getNpcNum(item) != baseLink) goto block_26E7; + + block_26C9: + a = (qHi / 8); + spawn class_0A18_slot_22(a, item, arg_06); + + block_26E7: + /* loopnext */ + goto block_26B4; + + block_26EB: + goto block_2844; + + block_26F0: + if (scmd != 4) goto block_270F; + + block_26F8: + a = (qHi / 8); + newLink = (newLink + a); + goto block_2844; + + block_270F: + if (scmd != 5) goto block_272E; + + block_2717: + a = (qHi / 8); + newLink = (newLink - a); + goto block_2844; + + block_272E: + if (scmd != 6) goto block_2844; + + block_2736: + d = (qHi / 8); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_275E: + if condition goto block_283F; + + block_2761: + if (Item.getNpcNum(item) != baseLink) goto block_283B; + + block_2773: + a = Item.hurl(item); + c = (a & 15); + b = Item.getMapNum(item); + b = (((a & 0x00E0) * 8) + b); + if (b != 0) goto block_283B; + + block_27B5: + if (Item.getQLo(c, b, item2) != 1) goto block_283B; + + block_27CB: + suspend; + + block_283B: + /* loopnext */ + goto block_275E; + + block_283F: + goto block_2844; + + block_2844: + goto block_2847; + + block_2847: + /* word_to_dword */ + /* pop_result */ + goto block_2851; + + block_2851: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/TRIGGER/slot_28_slot_28.txt b/USECODE/EUSECODE_extracted/pseudocode/TRIGGER/slot_28_slot_28.txt new file mode 100644 index 0000000..ecd0ae0 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/TRIGGER/slot_28_slot_28.txt @@ -0,0 +1,258 @@ +function trigger_slot_28() /* entry=394 class_id=0x0A18 slot=0x28 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + qHi, /* [BP+0Ch] type=0x69 */ + npcNum, /* [BP+0Eh] type=0x69 */ + mapNum, /* [BP+10h] type=0x69 */ + baseLink, /* [BP+12h] type=0x69 */ + searchtype, /* [BP+14h] type=0x69 */ + scmd, /* [BP-02h] type=0x69 */ + cmd, /* [BP-04h] type=0x69 */ + a, /* [BP-06h] type=0x69 */ + b, /* [BP-08h] type=0x69 */ + c, /* [BP-0Ah] type=0x69 */ + d, /* [BP-0Ch] type=0x69 */ + item, /* [BP-0Eh] type=0x24 */ + aitem, /* [BP-10h] type=0x24 */ + newLink, /* [BP-12h] type=0x69 */ + item2; /* [BP-14h] type=0x24 */ + + entry: + set_info(0x021B, 0); + newLink = baseLink; + aitem = ref; + cmd = (mapNum & 3); + if (cmd != 0) goto block_2972; + + block_293C: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_2959: + if condition goto block_296D; + + block_295C: + /* loopnext */ + goto block_2959; + + block_296D: + goto block_2DB1; + + block_2972: + if (cmd != 1) goto block_29B0; + + block_297A: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_2997: + if condition goto block_29AB; + + block_299A: + /* loopnext */ + goto block_2997; + + block_29AB: + goto block_2DB1; + + block_29B0: + if (cmd != 2) goto block_29F0; + + block_29B8: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_29D5: + if condition goto block_29EB; + + block_29D8: + /* loopnext */ + goto block_29D5; + + block_29EB: + goto block_2DB1; + + block_29F0: + if (cmd != 3) goto block_2DB1; + + block_29F8: + scmd = (qHi & 7); + if (scmd != 0) goto block_2A87; + + block_2A0A: + d = (qHi / 8); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_2A32: + if condition goto block_2A82; + + block_2A35: + a = Item.hurl(item); + c = (a & 15); + b = Item.getMapNum(item); + b = (((a & 0x00E0) * 8) + b); + class_0A0C_slot_30(d, c, b, item); + /* loopnext */ + goto block_2A32; + + block_2A82: + goto block_2DAE; + + block_2A87: + if (scmd != 1) goto block_2BD5; + + block_2A8F: + d = (qHi / 8); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_2AB6: + if condition goto block_2BD0; + + block_2AB9: + if (d != 31) goto block_2AFF; + + block_2AD1: + suspend; + goto block_2BCC; + + block_2AFF: + c = Item.getFrame(item); + b = Intrinsic0016(item); + a = (b & 0x00FF); + b = (b & 0x0700); + b = (b / 8); + b = (b + c); + suspend; + /* bit_not */ + + block_2BCC: + /* loopnext */ + goto block_2AB6; + + block_2BD0: + goto block_2DAE; + + block_2BD5: + if (scmd != 2) goto block_2C1D; + + block_2BDD: + a = (qHi / 8); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_2C04: + if condition goto block_2C18; + + block_2C07: + /* loopnext */ + goto block_2C04; + + block_2C18: + goto block_2DAE; + + block_2C1D: + if (scmd != 3) goto block_2C6C; + + block_2C25: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_2C42: + if condition goto block_2C67; + + block_2C45: + a = (qHi / 8); + spawn class_0A18_slot_22(a, item, arg_06); + /* loopnext */ + goto block_2C42; + + block_2C67: + goto block_2DAE; + + block_2C6C: + if (scmd != 4) goto block_2C8B; + + block_2C74: + a = (qHi / 8); + newLink = (newLink + a); + goto block_2DAE; + + block_2C8B: + if (scmd != 5) goto block_2CAA; + + block_2C93: + a = (qHi / 8); + newLink = (newLink - a); + goto block_2DAE; + + block_2CAA: + if (scmd != 6) goto block_2DAE; + + block_2CB2: + d = (qHi / 8); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF2 string_bytes=0x6 loop_type=0x2 */ + + block_2CDA: + if condition goto block_2DA9; + + block_2CDD: + a = Intrinsic0111(item); + c = (a & 15); + b = Item.getMapNum(item); + b = (((a & 0x00E0) * 8) + b); + if (b != 0) goto block_2DA5; + + block_2D1F: + if (Item.getQLo(c, b, item2) != 1) goto block_2DA5; + + block_2D35: + suspend; + + block_2DA5: + /* loopnext */ + goto block_2CDA; + + block_2DA9: + goto block_2DAE; + + block_2DAE: + goto block_2DB1; + + block_2DB1: + /* word_to_dword */ + /* pop_result */ + goto block_2DBB; + + block_2DBB: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/TRIGGER/slot_29_slot_29.txt b/USECODE/EUSECODE_extracted/pseudocode/TRIGGER/slot_29_slot_29.txt new file mode 100644 index 0000000..3aaf529 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/TRIGGER/slot_29_slot_29.txt @@ -0,0 +1,345 @@ +function trigger_slot_29() /* entry=394 class_id=0x0A18 slot=0x29 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + qHi, /* [BP+0Ch] type=0x69 */ + npcNum, /* [BP+0Eh] type=0x69 */ + mapNum, /* [BP+10h] type=0x69 */ + baseLink, /* [BP+12h] type=0x69 */ + searchtype, /* [BP+14h] type=0x69 */ + scmd, /* [BP-02h] type=0x69 */ + cmd, /* [BP-04h] type=0x69 */ + a, /* [BP-06h] type=0x69 */ + b, /* [BP-08h] type=0x69 */ + c, /* [BP-0Ah] type=0x69 */ + d, /* [BP-0Ch] type=0x69 */ + aitem, /* [BP-0Eh] type=0x24 */ + npc, /* [BP-10h] type=0x24 */ + e, /* [BP-12h] type=0x69 */ + f, /* [BP-14h] type=0x69 */ + g, /* [BP-16h] type=0x69 */ + counter, /* [BP-18h] type=0x69 */ + h, /* [BP-1Ah] type=0x69 */ + i, /* [BP-1Ch] type=0x69 */ + k; /* [BP-1Eh] type=0x69 */ + + entry: + set_info(0x021B, 0); + aitem = ref; + cmd = (mapNum & 3); + if (cmd != 0) goto block_30BA; + + block_2E92: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */ + + block_2EAF: + if condition goto block_30B5; + + block_2EB2: + if (Item.getQLo(npc) != baseLink) goto block_30B1; + + block_2EC4: + a = (qHi / 16); + b = (qHi & 15); + if (a != 0) goto block_2F76; + + block_2EE3: + if (Intrinsic0050(npc) != 1) goto block_2F02; + + block_2EF5: + + block_2F02: + e = Item.getQHi(npc); + suspend; + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + f = Item.getQHi(npc); + goto block_30B1; + + block_2F76: + if (Intrinsic0050(npc) != 1) goto block_2F95; + + block_2F88: + + block_2F95: + g = Item.getQHi(npc); + suspend; + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + if (Kernel.resetRef(npc) != 1) goto block_3003; + + block_2FFD: + goto block_3456; + + block_3003: + counter = 1; + + block_300A: + if (counter <= a) goto block_3081; + + block_3015: + if (Kernel.resetRef(npc) != 0) goto block_304E; + + block_3027: + suspend; + + block_304E: + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + counter = (1 + counter); + goto block_300A; + + block_3081: + h = Item.getQHi(npc); + i = Intrinsic0050(npc); + + block_30B1: + /* loopnext */ + goto block_2EAF; + + block_30B5: + goto block_3456; + + block_30BA: + if (cmd != 1) goto block_310A; + + block_30C2: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */ + + block_30DF: + if condition goto block_3105; + + block_30E2: + if (Item.getQLo(npc) != baseLink) goto block_3101; + + block_30F4: + + block_3101: + /* loopnext */ + goto block_30DF; + + block_3105: + goto block_3456; + + block_310A: + if (cmd != 2) goto block_316A; + + block_3112: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */ + + block_312F: + if condition goto block_3165; + + block_3132: + if (Item.getQLo(npc) != baseLink) goto block_3161; + + block_3144: + + block_3161: + /* loopnext */ + goto block_312F; + + block_3165: + goto block_3456; + + block_316A: + if (cmd != 3) goto block_3456; + + block_3172: + scmd = (qHi & 7); + a = (qHi / 8); + if (scmd != 0) goto block_321E; + + block_318E: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */ + + block_31AB: + if condition goto block_3219; + + block_31AE: + if (Item.getQLo(npc) != baseLink) goto block_3215; + + block_31C0: + if (a != 1) goto block_31D8; + + block_31C8: + goto block_3215; + + block_31D8: + if (a != 2) goto block_31F0; + + block_31E0: + goto block_3215; + + block_31F0: + if (a != 3) goto block_3208; + + block_31F8: + goto block_3215; + + block_3208: + + block_3215: + /* loopnext */ + goto block_31AB; + + block_3219: + goto block_3453; + + block_321E: + if (scmd != 1) goto block_32A1; + + block_3226: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */ + + block_3243: + if condition goto block_329C; + + block_3246: + if (Item.getQLo(npc) != baseLink) goto block_3298; + + block_3258: + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + + block_3298: + /* loopnext */ + goto block_3243; + + block_329C: + goto block_3453; + + block_32A1: + if (scmd != 2) goto block_3324; + + block_32A9: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */ + + block_32C6: + if condition goto block_331F; + + block_32C9: + if (Item.getQLo(npc) != baseLink) goto block_331B; + + block_32DB: + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + + block_331B: + /* loopnext */ + goto block_32C6; + + block_331F: + goto block_3453; + + block_3324: + if (scmd != 3) goto block_33A7; + + block_332C: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */ + + block_3349: + if condition goto block_33A2; + + block_334C: + if (Item.getQLo(npc) != baseLink) goto block_339E; + + block_335E: + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + + block_339E: + /* loopnext */ + goto block_3349; + + block_33A2: + goto block_3453; + + block_33A7: + if (scmd != 4) goto block_33FE; + + block_33AF: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */ + + block_33CC: + if condition goto block_33F9; + + block_33CF: + if (Item.getQLo(npc) != baseLink) goto block_33F5; + + block_33E1: + k = a; + + block_33F5: + /* loopnext */ + goto block_33CC; + + block_33F9: + goto block_3453; + + block_33FE: + if (scmd != 5) goto block_3453; + + block_3406: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */ + + block_3423: + if condition goto block_344E; + + block_3426: + if (Item.getQLo(npc) != baseLink) goto block_344A; + + block_3438: + spawn class_0A11_equip(a, npc); + + block_344A: + /* loopnext */ + goto block_3423; + + block_344E: + goto block_3453; + + block_3453: + goto block_3456; + + block_3456: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/TRIGGER/slot_2A_slot_2A.txt b/USECODE/EUSECODE_extracted/pseudocode/TRIGGER/slot_2A_slot_2A.txt new file mode 100644 index 0000000..a40923a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/TRIGGER/slot_2A_slot_2A.txt @@ -0,0 +1,284 @@ +function trigger_slot_2A() /* entry=394 class_id=0x0A18 slot=0x2A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + qHi, /* [BP+0Ch] type=0x69 */ + npcNum, /* [BP+0Eh] type=0x69 */ + mapNum, /* [BP+10h] type=0x69 */ + baseLink, /* [BP+12h] type=0x69 */ + searchtype, /* [BP+14h] type=0x69 */ + scmd, /* [BP-02h] type=0x69 */ + cmd, /* [BP-04h] type=0x69 */ + a, /* [BP-06h] type=0x69 */ + b, /* [BP-08h] type=0x69 */ + c, /* [BP-0Ah] type=0x69 */ + d, /* [BP-0Ch] type=0x69 */ + aitem, /* [BP-0Eh] type=0x24 */ + npc, /* [BP-10h] type=0x24 */ + counter, /* [BP-12h] type=0x69 */ + k; /* [BP-14h] type=0x69 */ + + entry: + set_info(0x021B, 0); + aitem = ref; + cmd = (mapNum & 3); + if (cmd != 0) goto block_36F9; + + block_3546: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */ + + block_3563: + if condition goto block_36F4; + + block_3566: + a = (qHi / 16); + b = (qHi & 15); + if (a != 0) goto block_35F1; + + block_3585: + suspend; + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_36F0; + + block_35F1: + suspend; + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + if (Kernel.resetRef(npc) != 1) goto block_365E; + + block_3658: + goto block_3A05; + + block_365E: + counter = 1; + + block_3665: + if (counter <= a) goto block_36DC; + + block_3670: + if (Kernel.resetRef(npc) != 0) goto block_36A9; + + block_3682: + suspend; + + block_36A9: + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + counter = (1 + counter); + goto block_3665; + + block_36DC: + + block_36F0: + /* loopnext */ + goto block_3563; + + block_36F4: + goto block_3A05; + + block_36F9: + if (cmd != 1) goto block_3737; + + block_3701: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */ + + block_371E: + if condition goto block_3732; + + block_3721: + /* loopnext */ + goto block_371E; + + block_3732: + goto block_3A05; + + block_3737: + if (cmd != 2) goto block_3785; + + block_373F: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */ + + block_375C: + if condition goto block_3780; + + block_375F: + /* loopnext */ + goto block_375C; + + block_3780: + goto block_3A05; + + block_3785: + if (cmd != 3) goto block_3A05; + + block_378D: + scmd = (qHi & 7); + a = (qHi / 8); + if (scmd != 0) goto block_3827; + + block_37A9: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */ + + block_37C6: + if condition goto block_3822; + + block_37C9: + if (a != 1) goto block_37E1; + + block_37D1: + goto block_381E; + + block_37E1: + if (a != 2) goto block_37F9; + + block_37E9: + goto block_381E; + + block_37F9: + if (a != 3) goto block_3811; + + block_3801: + goto block_381E; + + block_3811: + + block_381E: + /* loopnext */ + goto block_37C6; + + block_3822: + goto block_3A02; + + block_3827: + if (scmd != 1) goto block_3898; + + block_382F: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */ + + block_384C: + if condition goto block_3893; + + block_384F: + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + /* loopnext */ + goto block_384C; + + block_3893: + goto block_3A02; + + block_3898: + if (scmd != 2) goto block_3909; + + block_38A0: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */ + + block_38BD: + if condition goto block_3904; + + block_38C0: + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + /* loopnext */ + goto block_38BD; + + block_3904: + goto block_3A02; + + block_3909: + if (scmd != 3) goto block_397A; + + block_3911: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */ + + block_392E: + if condition goto block_3975; + + block_3931: + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + /* loopnext */ + goto block_392E; + + block_3975: + goto block_3A02; + + block_397A: + if (scmd != 4) goto block_39BF; + + block_3982: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */ + + block_399F: + if condition goto block_39BA; + + block_39A2: + k = a; + /* loopnext */ + goto block_399F; + + block_39BA: + goto block_3A02; + + block_39BF: + if (scmd != 5) goto block_3A02; + + block_39C7: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */ + + block_39E4: + if condition goto block_39FD; + + block_39E7: + spawn class_0A11_equip(a, npc); + /* loopnext */ + goto block_39E4; + + block_39FD: + goto block_3A02; + + block_3A02: + goto block_3A05; + + block_3A05: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/TRIGGER/slot_2B_slot_2B.txt b/USECODE/EUSECODE_extracted/pseudocode/TRIGGER/slot_2B_slot_2B.txt new file mode 100644 index 0000000..80de770 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/TRIGGER/slot_2B_slot_2B.txt @@ -0,0 +1,352 @@ +function trigger_slot_2B() /* entry=394 class_id=0x0A18 slot=0x2B */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + qHi, /* [BP+0Ch] type=0x69 */ + npcNum, /* [BP+0Eh] type=0x69 */ + mapNum, /* [BP+10h] type=0x69 */ + baseLink, /* [BP+12h] type=0x69 */ + searchtype, /* [BP+14h] type=0x69 */ + scmd, /* [BP-02h] type=0x69 */ + cmd, /* [BP-04h] type=0x69 */ + a, /* [BP-06h] type=0x69 */ + b, /* [BP-08h] type=0x69 */ + c, /* [BP-0Ah] type=0x69 */ + d, /* [BP-0Ch] type=0x69 */ + aitem, /* [BP-0Eh] type=0x24 */ + npc, /* [BP-10h] type=0x24 */ + counter, /* [BP-12h] type=0x69 */ + k; /* [BP-14h] type=0x69 */ + + entry: + set_info(0x021B, 0); + aitem = ref; + cmd = (mapNum & 3); + if (cmd != 0) goto block_3CB2; + + block_3AD7: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */ + + block_3AF4: + if condition goto block_3CAD; + + block_3AF7: + if Intrinsic00BD(Intrinsic0016(npc)) goto block_3CA9; + + block_3B0D: + if (Item.getQLo(npc) != baseLink) goto block_3CA9; + + block_3B1F: + a = (qHi / 16); + b = (qHi & 15); + if (a != 0) goto block_3BAA; + + block_3B3E: + suspend; + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_3CA9; + + block_3BAA: + suspend; + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + if (Kernel.resetRef(npc) != 1) goto block_3C17; + + block_3C11: + goto block_40FE; + + block_3C17: + counter = 1; + + block_3C1E: + if (counter <= a) goto block_3C95; + + block_3C29: + if (Kernel.resetRef(npc) != 0) goto block_3C62; + + block_3C3B: + suspend; + + block_3C62: + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + counter = (1 + counter); + goto block_3C1E; + + block_3C95: + + block_3CA9: + /* loopnext */ + goto block_3AF4; + + block_3CAD: + goto block_40FE; + + block_3CB2: + if (cmd != 1) goto block_3D18; + + block_3CBA: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */ + + block_3CD7: + if condition goto block_3D13; + + block_3CDA: + if Intrinsic00BD(Intrinsic0016(npc)) goto block_3D0F; + + block_3CF0: + if (Item.getQLo(npc) != baseLink) goto block_3D0F; + + block_3D02: + + block_3D0F: + /* loopnext */ + goto block_3CD7; + + block_3D13: + goto block_40FE; + + block_3D18: + if (cmd != 2) goto block_3D8E; + + block_3D20: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */ + + block_3D3D: + if condition goto block_3D89; + + block_3D40: + if Intrinsic00BD(Intrinsic0016(npc)) goto block_3D85; + + block_3D56: + if (Item.getQLo(npc) != baseLink) goto block_3D85; + + block_3D68: + + block_3D85: + /* loopnext */ + goto block_3D3D; + + block_3D89: + goto block_40FE; + + block_3D8E: + if (cmd != 3) goto block_40FE; + + block_3D96: + scmd = (qHi & 7); + a = (qHi / 8); + if (scmd != 0) goto block_3E58; + + block_3DB2: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */ + + block_3DCF: + if condition goto block_3E53; + + block_3DD2: + if Intrinsic00BD(Intrinsic0016(npc)) goto block_3E4F; + + block_3DE8: + if (Item.getQLo(npc) != baseLink) goto block_3E4F; + + block_3DFA: + if (a != 1) goto block_3E12; + + block_3E02: + goto block_3E4F; + + block_3E12: + if (a != 2) goto block_3E2A; + + block_3E1A: + goto block_3E4F; + + block_3E2A: + if (a != 3) goto block_3E42; + + block_3E32: + goto block_3E4F; + + block_3E42: + + block_3E4F: + /* loopnext */ + goto block_3DCF; + + block_3E53: + goto block_40FB; + + block_3E58: + if (scmd != 1) goto block_3EF1; + + block_3E60: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */ + + block_3E7D: + if condition goto block_3EEC; + + block_3E80: + if Intrinsic00BD(Intrinsic0016(npc)) goto block_3EE8; + + block_3E96: + if (Item.getQLo(npc) != baseLink) goto block_3EE8; + + block_3EA8: + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + + block_3EE8: + /* loopnext */ + goto block_3E7D; + + block_3EEC: + goto block_40FB; + + block_3EF1: + if (scmd != 2) goto block_3F8A; + + block_3EF9: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */ + + block_3F16: + if condition goto block_3F85; + + block_3F19: + if Intrinsic00BD(Intrinsic0016(npc)) goto block_3F81; + + block_3F2F: + if (Item.getQLo(npc) != baseLink) goto block_3F81; + + block_3F41: + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + + block_3F81: + /* loopnext */ + goto block_3F16; + + block_3F85: + goto block_40FB; + + block_3F8A: + if (scmd != 3) goto block_4023; + + block_3F92: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */ + + block_3FAF: + if condition goto block_401E; + + block_3FB2: + if Intrinsic00BD(Intrinsic0016(npc)) goto block_401A; + + block_3FC8: + if (Item.getQLo(npc) != baseLink) goto block_401A; + + block_3FDA: + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + + block_401A: + /* loopnext */ + goto block_3FAF; + + block_401E: + goto block_40FB; + + block_4023: + if (scmd != 4) goto block_4090; + + block_402B: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */ + + block_4048: + if condition goto block_408B; + + block_404B: + if Intrinsic00BD(Intrinsic0016(npc)) goto block_4087; + + block_4061: + if (Item.getQLo(npc) != baseLink) goto block_4087; + + block_4073: + k = a; + + block_4087: + /* loopnext */ + goto block_4048; + + block_408B: + goto block_40FB; + + block_4090: + if (scmd != 5) goto block_40FB; + + block_4098: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xF0 string_bytes=0x6 loop_type=0x2 */ + + block_40B5: + if condition goto block_40F6; + + block_40B8: + if Intrinsic00BD(Intrinsic0016(npc)) goto block_40F2; + + block_40CE: + if (Item.getQLo(npc) != baseLink) goto block_40F2; + + block_40E0: + spawn class_0A11_equip(a, npc); + + block_40F2: + /* loopnext */ + goto block_40B5; + + block_40F6: + goto block_40FB; + + block_40FB: + goto block_40FE; + + block_40FE: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/TRIGPAD/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/TRIGPAD/slot_06_gotHit.txt new file mode 100644 index 0000000..d28fbcd --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/TRIGPAD/slot_06_gotHit.txt @@ -0,0 +1,96 @@ +function trigpad_gotHit() /* entry=273 class_id=0x04CD slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + a, /* [BP-02h] type=0x69 */ + item, /* [BP-04h] type=0x24 */ + elev; /* [BP-06h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + a = ref; + class_0A0C_slot_2B(vel, ref); + if retval goto block_010A; + + block_0104: + goto block_0321; + + block_010A: + item = ref; + if (Item.getMapNum(arg_06) != 0) goto block_0321; + + block_0123: + if ((Intrinsic0057(arg_06) != 0) || (Item.isInNpc(*(arg_06), item) != 0)) goto block_014F; + + block_0149: + goto block_0321; + + block_014F: + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + + block_01A9: + if 1 goto block_0321; + + block_01B1: + if (Intrinsic0057(arg_06) != 0) goto block_01EC; + + block_01C3: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_031E; + + block_01EC: + spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); + suspend; + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFA string_bytes=0x6 loop_type=0x6 */ + + block_0262: + if condition goto block_0316; + + block_0265: + if (Item.getStatus(elev) & 0x1000) goto block_02A1; + + block_0278: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_0265; + + block_02A1: + spawn class_0A0C_slot_32(pid, 120, 0x00000000); + suspend; + /* global_address global_id=0x3C */ + if (Item.getZ() < (Item.getZ(elev) - 5)) goto block_0312; + + block_02E7: + class_0A09_slot_21(Item.getZ(elev), elev); + if retval goto block_0312; + + block_0304: + spawn class_0A09_slot_20(elev); + + block_0312: + /* loopnext */ + goto block_0262; + + block_0316: + goto block_0321; + + block_031E: + goto block_01A9; + + block_0321: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/UPPLATE/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/UPPLATE/slot_06_gotHit.txt new file mode 100644 index 0000000..44db9df --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/UPPLATE/slot_06_gotHit.txt @@ -0,0 +1,21 @@ +function upplate_gotHit() /* entry=241 class_id=0x0447 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if (retval) { + item = ref; + if (Item.getFrame(arg_06) == 2) { + } + else if ((Intrinsic0057(arg_06) != 0) || (Item.use(*(arg_06), item) == 0)) { + } + return; + } + return; +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/VALBOX/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/VALBOX/slot_20_slot_20.txt new file mode 100644 index 0000000..f983af9 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/VALBOX/slot_20_slot_20.txt @@ -0,0 +1,28 @@ +function valbox_slot_20() /* entry=395 class_id=0x0A19 slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + lowByte, /* [BP-02h] type=0x69 */ + highByte, /* [BP-04h] type=0x69 */ + keypadCode; /* [BP-06h] type=0x69 */ + + entry: + lowByte = (Intrinsic0111(arg_06) & 0x00FF); + /* lsh */ + highByte = 8; + keypadCode = (lowByte + highByte); + if (keypadCode > 0x03E7) goto block_0134; + + block_0127: + goto block_013D; + + block_0131: + goto block_013D; + + block_0134: + goto block_013D; + + block_013D: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/VALUEBOX/slot_04_cachein.txt b/USECODE/EUSECODE_extracted/pseudocode/VALUEBOX/slot_04_cachein.txt new file mode 100644 index 0000000..5ae8b76 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/VALUEBOX/slot_04_cachein.txt @@ -0,0 +1,21 @@ +function valuebox_cachein() /* entry=130 class_id=0x0251 slot=0x04 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + randNum; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x0213, *(arg_06)); + process_exclude(); + class_0A19_slot_20(arg_06); + if (retval != 0) goto block_0125; + + block_0104: + class_0A0C_slot_20(0x0383); + randNum = (retval + 100); + class_0251_slot_20(randNum, arg_06); + + block_0125: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/VALUEBOX/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/VALUEBOX/slot_20_slot_20.txt new file mode 100644 index 0000000..5a9e7ee --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/VALUEBOX/slot_20_slot_20.txt @@ -0,0 +1,15 @@ +function valuebox_slot_20() /* entry=130 class_id=0x0251 slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + rand, /* [BP+0Ah] type=0x69 */ + lowByte, /* [BP-02h] type=0x69 */ + highByte; /* [BP-04h] type=0x69 */ + + entry: + lowByte = (rand & 0x00FF); + /* rsh */ + highByte = (8 & 3); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/VALVE/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/VALVE/slot_01_use.txt new file mode 100644 index 0000000..dbedf8b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/VALVE/slot_01_use.txt @@ -0,0 +1,73 @@ +function valve_use() /* entry=6 class_id=0x0030 slot=0x01 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + item; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + if (Item.getFrame(arg_06) < 4) goto block_01D5; + + block_010D: + counter = 0; + + block_0114: + if (counter <= 4) goto block_015C; + + block_011C: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0114; + + block_015C: + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + counter = 0; + + block_018A: + if (counter <= 4) goto block_01D2; + + block_0192: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_018A; + + block_01D2: + goto block_02A0; + + block_01D5: + counter = 0; + + block_01DC: + if (counter <= 4) goto block_0227; + + block_01E4: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_01DC; + + block_0227: + spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06); + suspend; + counter = 0; + + block_0255: + if (counter <= 4) goto block_02A0; + + block_025D: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0255; + + block_02A0: + spawn class_0A0C_slot_32(pid, 15, 0x00000000); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/VARDESK/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/VARDESK/slot_01_use.txt new file mode 100644 index 0000000..d0946c9 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/VARDESK/slot_01_use.txt @@ -0,0 +1,105 @@ +function vardesk_use() /* entry=238 class_id=0x0442 slot=0x01 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + counter; /* [BP-04h] type=0x69 */ + + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + class_0A0C_slot_33(0x021B, *(arg_06)); + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + + block_0125: + if (Item.getFrame(arg_06) < 4) goto block_017A; + + block_013A: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + goto block_0125; + + block_017A: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + if (global[0x001F] != 9) goto block_01DA; + + block_01AA: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_02F4; + + block_01DA: + if (global[0x001F] != 10) goto block_0215; + + block_01E4: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_02F4; + + block_0215: + if (global[0x001F] != 11) goto block_0250; + + block_021F: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_02F4; + + block_0250: + if (global[0x001F] != 12) goto block_028B; + + block_025A: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_02F4; + + block_028B: + if (global[0x001F] != 13) goto block_02C6; + + block_0295: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_02F4; + + block_02C6: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + + block_02F4: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0312: + if condition goto block_0335; + + block_0315: + /* loopnext */ + goto block_0312; + + block_0335: + counter = 0; + + block_033E: + if (counter <= 4) goto block_0389; + + block_0346: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_033E; + + block_0389: + spawn class_0442_enterFastArea(arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/VARDESK/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/VARDESK/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..fc9aac4 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/VARDESK/slot_0F_enterFastArea.txt @@ -0,0 +1,76 @@ +function vardesk_enterFastArea() /* entry=238 class_id=0x0442 slot=0x0F */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + ran; /* [BP-04h] type=0x69 */ + + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (Item.getFrame(arg_06) != 6) goto block_03FC; + + block_03F6: + goto block_05A1; + + block_03FC: + suspend; + class_0A0C_slot_20(pid, 100); + spawn class_0A0C_slot_32((retval + 60), 0x00000000); + suspend; + if (!Item.getFrame(arg_06)) goto block_049C; + + block_044D: + counter = 0; + + block_0454: + if (counter <= 4) goto block_049C; + + block_045C: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0454; + + block_049C: + class_0A0C_slot_20(100); + if (retval > 50) goto block_0507; + + block_04B2: + counter = 0; + + block_04B9: + if (counter <= 4) goto block_0504; + + block_04C1: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_04B9; + + block_0504: + goto block_059E; + + block_0507: + class_0A0C_slot_20(3); + ran = (retval + 3); + counter = 0; + + block_0520: + if (counter <= ran) goto block_059E; + + block_052B: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0520; + + block_059E: + goto block_03FC; + + block_05A1: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/VARDESK/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/VARDESK/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..bf9eecf --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/VARDESK/slot_10_leaveFastArea.txt @@ -0,0 +1,9 @@ +function vardesk_leaveFastArea() /* entry=238 class_id=0x0442 slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + class_0A0C_slot_33(0x021B, *(arg_06)); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/VARGAS/slot_0E_calledFromAnim.txt b/USECODE/EUSECODE_extracted/pseudocode/VARGAS/slot_0E_calledFromAnim.txt new file mode 100644 index 0000000..c3b9a00 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/VARGAS/slot_0E_calledFromAnim.txt @@ -0,0 +1,10 @@ +function vargas_calledFromAnim() /* entry=212 class_id=0x03AC slot=0x0E */ +{ + entry: + set_info(0x021A, *(arg_06)); + process_exclude(); + set_info(1, 0); + spawn class_0A1C_slot_20(Item.getQLo(arg_06), *(arg_06), arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/VAR_BOOT/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/VAR_BOOT/slot_0A_equip.txt new file mode 100644 index 0000000..ce6d2f3 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/VAR_BOOT/slot_0A_equip.txt @@ -0,0 +1,94 @@ +function var_boot_equip() /* entry=252 class_id=0x045C slot=0x0A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + event, /* [BP+0Ah] type=0x69 */ + counter; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (Item.getFrame(arg_06) != 5) goto block_0106; + + block_0100: + goto block_0345; + + block_0106: + class_0A0C_slot_33(0x021B, *(arg_06)); + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + + block_0140: + if (Item.getFrame(arg_06) != 4) goto block_0192; + + block_0152: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + goto block_0140; + + block_0192: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + if (global[0x001F] != 3) goto block_01F2; + + block_01C2: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_02DA; + + block_01F2: + if (global[0x001F] != 4) goto block_022C; + + block_01FC: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_02DA; + + block_022C: + if (global[0x001F] != 6) goto block_0266; + + block_0236: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_02DA; + + block_0266: + if (global[0x001F] != 7) goto block_02A0; + + block_0270: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_02DA; + + block_02A0: + if (global[0x001F] != 9) goto block_02DA; + + block_02AA: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_02DA; + + block_02DA: + counter = 0; + + block_02E1: + if (counter <= 4) goto block_032C; + + block_02E9: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_02E1; + + block_032C: + spawn class_045C_enterFastArea(arg_06); + + block_0345: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/VAR_BOOT/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/VAR_BOOT/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..59b451b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/VAR_BOOT/slot_0F_enterFastArea.txt @@ -0,0 +1,96 @@ +function var_boot_enterFastArea() /* entry=252 class_id=0x045C slot=0x0F */ +{ + var + referent, /* [BP+00h] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + counter; /* [BP-04h] type=0x69 */ + + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (((((global[0x001F] != 3) || (global[0x001F] != 4)) || (global[0x001F] != 6)) || (global[0x001F] != 7)) || (global[0x001F] != 9)) goto block_0411; + + block_03AF: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_03DA: + if condition goto block_040C; + + block_03DD: + if (Item.getNpcNum(item) != Item.getNpcNum(arg_06)) goto block_0408; + + block_03F9: + class_0A1E_slot_24(0x1000, item); + + block_0408: + /* loopnext */ + goto block_03DA; + + block_040C: + goto block_0476; + + block_0411: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_042F: + if condition goto block_0461; + + block_0432: + if (Item.getNpcNum(item) != Item.getNpcNum(arg_06)) goto block_045D; + + block_044E: + class_0A1E_slot_23(0x1000, item); + + block_045D: + /* loopnext */ + goto block_042F; + + block_0461: + goto block_058A; + + block_0476: + suspend; + class_0A0C_slot_20(pid, 120); + spawn class_0A0C_slot_32((retval + 0x00DC), 0x00000000); + suspend; + counter = 0; + + block_04BC: + if (counter <= 4) goto block_0504; + + block_04C4: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_04BC; + + block_0504: + class_0A0C_slot_20(pid, 120); + spawn class_0A0C_slot_32((retval + 120), 0x00000000); + suspend; + counter = 0; + + block_053C: + if (counter <= 4) goto block_0587; + + block_0544: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_053C; + + block_0587: + goto block_0476; + + block_058A: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/VAR_BOOT/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/VAR_BOOT/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..a456b89 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/VAR_BOOT/slot_10_leaveFastArea.txt @@ -0,0 +1,9 @@ +function var_boot_leaveFastArea() /* entry=252 class_id=0x045C slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + class_0A0C_slot_33(0x021B, *(arg_06)); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/VETRON/slot_0E_calledFromAnim.txt b/USECODE/EUSECODE_extracted/pseudocode/VETRON/slot_0E_calledFromAnim.txt new file mode 100644 index 0000000..1116b45 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/VETRON/slot_0E_calledFromAnim.txt @@ -0,0 +1,14 @@ +function vetron_calledFromAnim() /* entry=288 class_id=0x04E6 slot=0x0E */ +{ + var + referent, /* [BP+00h] type=0x69 */ + n; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x021A, *(arg_06)); + process_exclude(); + n = *(arg_06); + spawn class_0A1C_slot_20(Item.getQLo(arg_06), *(arg_06), n); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/VMAIL/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/VMAIL/slot_0A_equip.txt new file mode 100644 index 0000000..72080c5 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/VMAIL/slot_0A_equip.txt @@ -0,0 +1,103 @@ +function vmail_equip() /* entry=195 class_id=0x0367 slot=0x0A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + var, /* [BP+0Ah] type=0x69 */ + textFile; /* [BP-02h] type=0x73 */ + + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + suspend; + /* concat */ + /* concat */ + /* concat */ + /* concat */ + /* concat */ + /* concat */ + /* concat */ + /* concat */ + /* concat */ + /* concat */ + /* concat */ + /* concat */ + /* concat */ + /* concat */ + /* concat */ + /* concat */ + /* concat */ + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + textFile = Npc.isDead(global[0x001B]); + spawn class_0A0C_slot_32("KILL BOARD:^-----------^Guards: ", Npc.isDead(global[0x000B]), "^Soldiers: ", Npc.isDead(global[0x000D]), "^Storm troopers: ", Npc.isDead(global[0x000F]), "^Elite troopers: ", Npc.isDead(global[0x0011]), "^Enforcers: ", Npc.isDead(global[0x0013]), "^^Androids: ", Npc.isDead(global[0x0015]), "^Thermatrons: ", Npc.isDead(global[0x0017]), "^Vetrons: ", Npc.isDead(global[0x0019]), "^Solartrons: ", pid, 10, 0x00000000); + suspend; + if (global[0x001F] != 4) goto block_02E4; + + block_02B4: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_0450; + + block_02E4: + if (global[0x001F] != 6) goto block_031E; + + block_02EE: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_0450; + + block_031E: + if (global[0x001F] != 7) goto block_0358; + + block_0328: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_0450; + + block_0358: + if (global[0x001F] != 8) goto block_0392; + + block_0362: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_0450; + + block_0392: + if (global[0x001F] != 11) goto block_03CD; + + block_039C: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_0450; + + block_03CD: + if (global[0x001F] != 12) goto block_0408; + + block_03D7: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_0450; + + block_0408: + if (global[0x001F] != 14) goto block_0443; + + block_0412: + /* str_to_ptr */ + /* free_stack_string value_u8=0x4 target=[SP+04h] */ + suspend; + goto block_0450; + + block_0443: + + block_0450: + /* free_local_string bp_offset=0xFE target=[BP-02h] */ + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALGUNEW/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/WALGUNEW/slot_06_gotHit.txt new file mode 100644 index 0000000..7e584c7 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALGUNEW/slot_06_gotHit.txt @@ -0,0 +1,14 @@ +function walgunew_gotHit() /* entry=197 class_id=0x0373 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A1A_slot_49(vel, ref, arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALGUNEW/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/WALGUNEW/slot_0A_equip.txt new file mode 100644 index 0000000..6ce9c9b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALGUNEW/slot_0A_equip.txt @@ -0,0 +1,20 @@ +function walgunew_equip() /* entry=197 class_id=0x0373 slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (Item.pop() != 0) goto block_0290; + + block_0265: + spawn class_0A1A_slot_24(pid, arg_0A, Item.pop(), arg_06); + suspend; + goto block_02B7; + + block_0290: + spawn class_0A1A_slot_24(pid, arg_0A, global[0x003C], arg_06); + suspend; + + block_02B7: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALGUNEW/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/WALGUNEW/slot_0B_unequip.txt new file mode 100644 index 0000000..23e1035 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALGUNEW/slot_0B_unequip.txt @@ -0,0 +1,17 @@ +function walgunew_unequip() /* entry=197 class_id=0x0373 slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 4) goto block_0160; + + block_015A: + goto block_017B; + + block_0160: + spawn class_0A1A_slot_27(arg_06); + + block_017B: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALGUNEW/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/WALGUNEW/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..192b2ec --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALGUNEW/slot_0F_enterFastArea.txt @@ -0,0 +1,17 @@ +function walgunew_enterFastArea() /* entry=197 class_id=0x0373 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 4) goto block_0103; + + block_00FD: + goto block_011E; + + block_0103: + spawn class_0A1A_slot_27(arg_06); + + block_011E: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALGUNEW/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/WALGUNEW/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..b8c0b84 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALGUNEW/slot_10_leaveFastArea.txt @@ -0,0 +1,11 @@ +function walgunew_leaveFastArea() /* entry=197 class_id=0x0373 slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + /* bit_not */ + class_0A0C_slot_33(1, *(arg_06)); + class_0A0C_slot_33(0x020A, *(arg_06)); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALGUNNS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/WALGUNNS/slot_06_gotHit.txt new file mode 100644 index 0000000..4e697cb --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALGUNNS/slot_06_gotHit.txt @@ -0,0 +1,14 @@ +function walgunns_gotHit() /* entry=162 class_id=0x02F0 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A1A_slot_49(vel, ref, arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALGUNNS/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/WALGUNNS/slot_0A_equip.txt new file mode 100644 index 0000000..f333522 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALGUNNS/slot_0A_equip.txt @@ -0,0 +1,20 @@ +function walgunns_equip() /* entry=162 class_id=0x02F0 slot=0x0A */ +{ + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + if (Item.pop() != 0) goto block_0290; + + block_0265: + spawn class_0A1A_slot_24(pid, arg_0A, Item.pop(), arg_06); + suspend; + goto block_02B7; + + block_0290: + spawn class_0A1A_slot_24(pid, arg_0A, global[0x003C], arg_06); + suspend; + + block_02B7: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALGUNNS/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/WALGUNNS/slot_0B_unequip.txt new file mode 100644 index 0000000..d182a29 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALGUNNS/slot_0B_unequip.txt @@ -0,0 +1,17 @@ +function walgunns_unequip() /* entry=162 class_id=0x02F0 slot=0x0B */ +{ + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 4) goto block_0160; + + block_015A: + goto block_017B; + + block_0160: + spawn class_0A1A_slot_27(arg_06); + + block_017B: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALGUNNS/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/WALGUNNS/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..a4fe214 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALGUNNS/slot_0F_enterFastArea.txt @@ -0,0 +1,17 @@ +function walgunns_enterFastArea() /* entry=162 class_id=0x02F0 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + if (Item.getStatus(arg_06) & 4) goto block_0103; + + block_00FD: + goto block_011E; + + block_0103: + spawn class_0A1A_slot_27(arg_06); + + block_011E: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALGUNNS/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/WALGUNNS/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..0ea4cb3 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALGUNNS/slot_10_leaveFastArea.txt @@ -0,0 +1,11 @@ +function walgunns_leaveFastArea() /* entry=162 class_id=0x02F0 slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + /* bit_not */ + class_0A0C_slot_33(1, *(arg_06)); + class_0A0C_slot_33(0x020A, *(arg_06)); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_20_slot_20.txt new file mode 100644 index 0000000..0ea8349 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_20_slot_20.txt @@ -0,0 +1,20 @@ +function wallgun_slot_20() /* entry=396 class_id=0x0A1A slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + num; /* [BP-02h] type=0x69 */ + + entry: + num = Intrinsic00FB(arg_06); + if (num > 99) goto block_020D; + + block_0203: + num = (num - 100); + + block_020D: + goto block_0219; + + block_0219: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_21_slot_21.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_21_slot_21.txt new file mode 100644 index 0000000..16a7b55 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_21_slot_21.txt @@ -0,0 +1,21 @@ +function wallgun_slot_21() /* entry=396 class_id=0x0A1A slot=0x21 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + num; /* [BP-02h] type=0x69 */ + + entry: + num = Intrinsic00FB(arg_06); + if (num > 99) goto block_0265; + + block_025B: + num = (num - 100); + + block_0265: + /* mod */ + goto block_0271; + + block_0271: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_22_slot_22.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_22_slot_22.txt new file mode 100644 index 0000000..d4e47a5 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_22_slot_22.txt @@ -0,0 +1,7 @@ +function wallgun_slot_22() /* entry=396 class_id=0x0A1A slot=0x22 */ +{ + entry: + class_0A1A_slot_21(arg_0A, arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_23_slot_23.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_23_slot_23.txt new file mode 100644 index 0000000..72de22d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_23_slot_23.txt @@ -0,0 +1,7 @@ +function wallgun_slot_23() /* entry=396 class_id=0x0A1A slot=0x23 */ +{ + entry: + class_0A1A_slot_20((arg_0A * 10), arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_24_slot_24.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_24_slot_24.txt new file mode 100644 index 0000000..ffdcad6 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_24_slot_24.txt @@ -0,0 +1,49 @@ +function wallgun_slot_24() /* entry=396 class_id=0x0A1A slot=0x24 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + target, /* [BP+0Ah] type=0x69 */ + var; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x021B, *(arg_06)); + class_0A1A_slot_25(Item.getFrame(arg_06), Intrinsic0016(arg_06), arg_06); + if ((retval != 1) || (Intrinsic002C(arg_06) != 0)) goto block_0365; + + block_035F: + goto block_0409; + + block_0365: + if ((var < 90) || (var > 99)) goto block_03B1; + + block_0379: + class_0A0C_slot_33(1, *(arg_06)); + class_0A0C_slot_33(0x020A, *(arg_06)); + spawn class_0A1A_slot_28(var, target, arg_06); + goto block_0409; + + block_03B1: + if (var != 90) goto block_03CD; + + block_03BC: + spawn class_0A1A_slot_34(arg_06); + goto block_0409; + + block_03CD: + if (var != 91) goto block_03E9; + + block_03D8: + spawn class_0A1A_slot_35(arg_06); + goto block_0409; + + block_03E9: + if (var != 92) goto block_0409; + + block_03F4: + spawn class_0A1A_slot_4A(target, arg_06); + goto block_0409; + + block_0409: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_25_slot_25.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_25_slot_25.txt new file mode 100644 index 0000000..fe89bea --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_25_slot_25.txt @@ -0,0 +1,65 @@ +function wallgun_slot_25() /* entry=396 class_id=0x0A1A slot=0x25 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + t, /* [BP+0Ah] type=0x69 */ + f; /* [BP+0Ch] type=0x69 */ + + entry: + if ((((t != 0x0113) || (t != 0x0108)) || (t != 0x02F0)) || (t != 0x0373)) goto block_048D; + + block_0467: + if (f != 27) goto block_0481; + + block_0475: + goto block_0501; + + block_047E: + goto block_048A; + + block_0481: + goto block_0501; + + block_048A: + goto block_04F8; + + block_048D: + if ((t != 0x0399) || (t != 0x03A1)) goto block_04CF; + + block_04A3: + if ((f != 18) || (f != 19)) goto block_04C3; + + block_04B7: + goto block_0501; + + block_04C0: + goto block_04CC; + + block_04C3: + goto block_0501; + + block_04CC: + goto block_04F8; + + block_04CF: + if (t != 0x04C8) goto block_04E7; + + block_04DB: + goto block_0501; + + block_04E4: + goto block_04F8; + + block_04E7: + if (f != 9) goto block_04F8; + + block_04F2: + goto block_0501; + + block_04F8: + goto block_0501; + + block_0501: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_26_slot_26.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_26_slot_26.txt new file mode 100644 index 0000000..9fa400a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_26_slot_26.txt @@ -0,0 +1,17 @@ +function wallgun_slot_26() /* entry=396 class_id=0x0A1A slot=0x26 */ +{ + entry: + set_info(0x0001, *(arg_06)); + + block_0536: + if (Intrinsic0007(arg_06) != 0) goto block_0577; + + block_054E: + spawn class_0A0C_slot_32(pid, 20, 0x00000000); + suspend; + goto block_0536; + + block_0577: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_27_slot_27.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_27_slot_27.txt new file mode 100644 index 0000000..3eff10e --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_27_slot_27.txt @@ -0,0 +1,43 @@ +function wallgun_slot_27() /* entry=396 class_id=0x0A1A slot=0x27 */ +{ + entry: + set_info(0x0001, *(arg_06)); + class_0A1A_slot_25(Item.getFrame(arg_06), Intrinsic0016(arg_06), arg_06); + if retval goto block_05C8; + + block_05C2: + goto block_06A2; + + block_05C8: + class_0A1A_slot_29(arg_06); + if retval goto block_0606; + + block_05D8: + if (Item.getFrame(arg_06) > 15) goto block_0603; + + block_05ED: + + block_0603: + goto block_0631; + + block_0606: + if (Item.getFrame(arg_06) > 8) goto block_0631; + + block_061B: + + block_0631: + if (Item.pop() != 0) goto block_0674; + + block_0642: + spawn class_0A1A_slot_28(pid, Intrinsic00C1(arg_06), Item.pop(), arg_06); + suspend; + goto block_06A2; + + block_0674: + spawn class_0A1A_slot_28(pid, Intrinsic00C1(arg_06), global[0x003C], arg_06); + suspend; + + block_06A2: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_28_slot_28.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_28_slot_28.txt new file mode 100644 index 0000000..f4c7dcd --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_28_slot_28.txt @@ -0,0 +1,246 @@ +function wallgun_slot_28() /* entry=396 class_id=0x0A1A slot=0x28 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + target, /* [BP+0Ah] type=0x69 */ + brain, /* [BP+0Ch] type=0x69 */ + h, /* [BP-02h] type=0x69 */ + delay; /* [BP-04h] type=0x69 */ + + entry: + set_info(0x020A, *(arg_06)); + if (brain > 99) goto block_06ED; + + block_06E3: + brain = (brain - 100); + + block_06ED: + h = Intrinsic00FB(arg_06); + if (h != 0) goto block_0713; + + block_0706: + + block_0713: + if (((h != 99) || (h != 0x00C7)) || (brain != 6)) goto block_0734; + + block_072E: + goto block_0BFE; + + block_0734: + class_0A1A_slot_25(Item.getFrame(arg_06), Intrinsic0016(arg_06), arg_06); + if (retval != 1) goto block_075F; + + block_0759: + goto block_0BFE; + + block_075F: + if 1 goto block_0BFE; + + block_0767: + spawn class_0A1A_slot_26(pid, arg_06); + suspend; + if (brain != 7) goto block_07B0; + + block_078E: + spawn class_0A1A_slot_36(pid, arg_06); + suspend; + goto block_0BD5; + + block_07B0: + if (brain != 9) goto block_07DA; + + block_07B8: + spawn class_0A1A_slot_37(pid, arg_06); + suspend; + goto block_0BD5; + + block_07DA: + if (brain != 8) goto block_0808; + + block_07E2: + spawn class_0A1A_slot_32(pid, target, arg_06); + suspend; + goto block_0BD5; + + block_0808: + if (brain != 10) goto block_0836; + + block_0810: + spawn class_0A1A_slot_33(pid, target, arg_06); + suspend; + goto block_0BD5; + + block_0836: + if (brain != 11) goto block_0900; + + block_083E: + if 1 goto block_08FD; + + block_0846: + if (Item.pop() != 0) goto block_0864; + + block_0857: + target = Item.pop(); + goto block_086B; + + block_0864: + target = 1; + + block_086B: + spawn class_0A1A_slot_3C(pid, brain, target, arg_06); + suspend; + spawn class_0A1A_slot_2F(pid, brain, target, arg_06); + suspend; + spawn class_0A0C_slot_32(pid, 3, 0x00000000); + suspend; + spawn class_0A1A_slot_26(pid, arg_06); + suspend; + goto block_083E; + + block_08FD: + goto block_0BD5; + + block_0900: + if (brain != 1) goto block_0955; + + block_0908: + if (Item.pop() != 0) goto block_0926; + + block_0919: + target = Item.pop(); + goto block_092D; + + block_0926: + target = 1; + + block_092D: + spawn class_0A1A_slot_3D(pid, brain, target, arg_06); + suspend; + goto block_0BD5; + + block_0955: + if (brain != 2) goto block_0A04; + + block_095D: + if 1 goto block_09DC; + + block_0965: + if (Item.pop() != 0) goto block_0983; + + block_0976: + target = Item.pop(); + goto block_098A; + + block_0983: + target = 1; + + block_098A: + spawn class_0A1A_slot_26(pid, arg_06); + suspend; + spawn class_0A1A_slot_31(pid, brain, target, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_09D9; + + block_09D3: + goto block_09DC; + + block_09D9: + goto block_095D; + + block_09DC: + spawn class_0A1A_slot_3D(pid, brain, target, arg_06); + suspend; + goto block_0BD5; + + block_0A04: + if (brain != 5) goto block_0A35; + + block_0A0C: + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + goto block_0BD5; + + block_0A35: + if (brain != 12) goto block_0A63; + + block_0A3D: + spawn class_0A1A_slot_38(pid, target, arg_06); + suspend; + goto block_0BD5; + + block_0A63: + if (brain != 13) goto block_0A91; + + block_0A6B: + spawn class_0A1A_slot_39(pid, target, arg_06); + suspend; + goto block_0BD5; + + block_0A91: + if (brain != 14) goto block_0ABF; + + block_0A99: + spawn class_0A1A_slot_3A(pid, target, arg_06); + suspend; + goto block_0BD5; + + block_0ABF: + if (brain != 15) goto block_0AED; + + block_0AC7: + spawn class_0A1A_slot_3B(pid, target, arg_06); + suspend; + goto block_0BD5; + + block_0AED: + if (Item.pop() != 0) goto block_0B0B; + + block_0AFE: + target = Item.pop(); + goto block_0B12; + + block_0B0B: + target = 1; + + block_0B12: + spawn class_0A1A_slot_31(pid, brain, target, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_0B64; + + block_0B3C: + spawn class_0A1A_slot_3D(pid, brain, target, arg_06); + suspend; + goto block_0BD5; + + block_0B64: + class_0A1A_slot_20(arg_06); + delay = retval; + if (delay != 0) goto block_0B82; + + block_0B7E: + delay = 3; + + block_0B82: + if (delay > 5) goto block_0B91; + + block_0B8D: + delay = 5; + + block_0B91: + delay = (delay - 1); + delay = (delay * 30); + delay = (delay + 120); + spawn class_0A0C_slot_32(pid, delay, 0x00000000); + suspend; + + block_0BD5: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + goto block_075F; + + block_0BFE: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_29_slot_29.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_29_slot_29.txt new file mode 100644 index 0000000..57d98d9 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_29_slot_29.txt @@ -0,0 +1,20 @@ +function wallgun_slot_29() /* entry=396 class_id=0x0A1A slot=0x29 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + t; /* [BP-02h] type=0x69 */ + + entry: + t = Intrinsic0016(arg_06); + if ((t != 0x04C8) || (t != 0x01CD)) goto block_0C6B; + + block_0C65: + goto block_0C74; + + block_0C6B: + goto block_0C74; + + block_0C74: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_2A_slot_2A.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_2A_slot_2A.txt new file mode 100644 index 0000000..5282411 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_2A_slot_2A.txt @@ -0,0 +1,17 @@ +function wallgun_slot_2A() /* entry=396 class_id=0x0A1A slot=0x2A */ +{ + entry: + /* create_list element_size=0x2 count=0x5 */ + /* in_list element_size=0x2 slist_flag=0x0 */ + if 0x01B9 goto block_0CD1; + + block_0CC8: + goto block_0CDA; + + block_0CD1: + goto block_0CDA; + + block_0CDA: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_2B_slot_2B.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_2B_slot_2B.txt new file mode 100644 index 0000000..41adf2b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_2B_slot_2B.txt @@ -0,0 +1,20 @@ +function wallgun_slot_2B() /* entry=396 class_id=0x0A1A slot=0x2B */ +{ + entry: + /* create_list element_size=0x2 count=0x3 */ + /* in_list element_size=0x2 slist_flag=0x0 */ + if 0x03A1 goto block_0D28; + + block_0D1C: + goto block_0D31; + + block_0D25: + goto block_0D31; + + block_0D28: + goto block_0D31; + + block_0D31: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_2C_slot_2C.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_2C_slot_2C.txt new file mode 100644 index 0000000..ac2628c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_2C_slot_2C.txt @@ -0,0 +1,31 @@ +function wallgun_slot_2C() /* entry=396 class_id=0x0A1A slot=0x2C */ +{ + entry: + class_0A1A_slot_2A(arg_06); + class_0A1A_slot_2B((retval != 1), arg_06); + class_0A1A_slot_29((retval != 1), arg_06); + if (retval != 1) goto block_0D97; + + block_0D84: + goto block_0DD0; + + block_0D94: + goto block_0DD0; + + block_0D97: + class_0A1A_slot_2A(arg_06); + if retval goto block_0DBD; + + block_0DA7: + goto block_0DD0; + + block_0DBA: + goto block_0DD0; + + block_0DBD: + goto block_0DD0; + + block_0DD0: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_2D_slot_2D.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_2D_slot_2D.txt new file mode 100644 index 0000000..429d296 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_2D_slot_2D.txt @@ -0,0 +1,98 @@ +function wallgun_slot_2D() /* entry=396 class_id=0x0A1A slot=0x2D */ +{ + var + referent, /* [BP+00h] type=0x69 */ + target, /* [BP+0Ah] type=0x69 */ + targItem, /* [BP-02h] type=0x24 */ + coordToCoordDir, /* [BP-04h] type=0x69 */ + left, /* [BP-06h] type=0x69 */ + right, /* [BP-08h] type=0x69 */ + dir; /* [BP-0Ah] type=0x69 */ + + entry: + targItem = target; + coordToCoordDir = Item.getDirToItem(Item.legal_create(targItem), Intrinsic0013(targItem), Item.legal_create(arg_06), Intrinsic0013(arg_06)); + class_0A1A_slot_2C(arg_06); + if (retval != coordToCoordDir) goto block_0E41; + + block_0E3B: + goto block_0F58; + + block_0E41: + class_0A1A_slot_29(arg_06); + if retval goto block_0F0B; + + block_0E51: + class_0A1A_slot_2C(arg_06); + dir = retval; + left = 0; + right = 0; + + block_0E6E: + if ((dir != coordToCoordDir) && (left < 15)) goto block_0EAB; + + block_0E82: + left = (1 + left); + if (dir != 0) goto block_0E9E; + + block_0E97: + dir = 15; + goto block_0EA8; + + block_0E9E: + dir = (dir - 1); + + block_0EA8: + goto block_0E6E; + + block_0EAB: + class_0A1A_slot_2C(arg_06); + dir = retval; + + block_0EBA: + if ((dir != coordToCoordDir) && (right < 15)) goto block_0EF7; + + block_0ECE: + right = (1 + right); + if (dir != 15) goto block_0EEA; + + block_0EE3: + dir = 0; + goto block_0EF4; + + block_0EEA: + dir = (1 + dir); + + block_0EF4: + goto block_0EBA; + + block_0EF7: + if (left < right) goto block_0F08; + + block_0F02: + goto block_0F58; + + block_0F08: + goto block_0F4F; + + block_0F0B: + class_0A1A_slot_2A(arg_06); + if (((retval != 1) && (coordToCoordDir >= 13)) && (coordToCoordDir <= 15)) goto block_0F36; + + block_0F30: + goto block_0F58; + + block_0F36: + class_0A1A_slot_2C(arg_06); + if (retval > coordToCoordDir) goto block_0F4F; + + block_0F49: + goto block_0F58; + + block_0F4F: + goto block_0F58; + + block_0F58: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_2E_slot_2E.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_2E_slot_2E.txt new file mode 100644 index 0000000..1ae7220 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_2E_slot_2E.txt @@ -0,0 +1,68 @@ +function wallgun_slot_2E() /* entry=396 class_id=0x0A1A slot=0x2E */ +{ + var + referent, /* [BP+00h] type=0x69 */ + target, /* [BP+0Ah] type=0x69 */ + x1, /* [BP-02h] type=0x69 */ + x2, /* [BP-04h] type=0x69 */ + y1, /* [BP-06h] type=0x69 */ + y2, /* [BP-08h] type=0x69 */ + z1, /* [BP-09h] type=0x62 */ + z2, /* [BP-0Ah] type=0x62 */ + dir, /* [BP-0Bh] type=0x62 */ + targetNpc; /* [BP-0Dh] type=0x24 */ + + entry: + class_0A1A_slot_2C(arg_06); + dir = retval; + class_0A1A_slot_3E(dir, arg_06); + x1 = retval; + class_0A1A_slot_3F(dir, arg_06); + y1 = retval; + class_0A1A_slot_40(dir, arg_06); + z1 = retval; + targetNpc = target; + if Kernel.resetRef(targetNpc) goto block_1021; + + block_1018: + goto block_10DC; + + block_1021: + class_0A1A_slot_2D(target, arg_06); + if (!retval) goto block_10D3; + + block_1037: + if (Intrinsic00C1(arg_06) > 99) goto block_1052; + + block_1049: + goto block_10DC; + + block_1052: + if Item.getQHi(z1, y1, x1, dir, target, arg_06) goto block_1071; + + block_106B: + goto block_10DC; + + block_1071: + class_0A1A_slot_29(arg_06); + if retval goto block_10D3; + + block_1081: + class_0A1A_slot_41(dir, arg_06); + x2 = retval; + class_0A1A_slot_42(dir, arg_06); + y2 = retval; + class_0A1A_slot_43(dir, arg_06); + z2 = retval; + if Item.getQHi(z2, y2, x2, dir, target, arg_06) goto block_10D3; + + block_10CD: + goto block_10DC; + + block_10D3: + goto block_10DC; + + block_10DC: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_2F_slot_2F.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_2F_slot_2F.txt new file mode 100644 index 0000000..f9ea546 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_2F_slot_2F.txt @@ -0,0 +1,59 @@ +function wallgun_slot_2F() /* entry=396 class_id=0x0A1A slot=0x2F */ +{ + var + referent, /* [BP+00h] type=0x69 */ + target, /* [BP+0Ah] type=0x69 */ + brain, /* [BP+0Ch] type=0x69 */ + delay, /* [BP-02h] type=0x69 */ + cs, /* [BP-04h] type=0x69 */ + dist; /* [BP-06h] type=0x69 */ + + entry: + set_info(0x0001, *(arg_06)); + class_0A1A_slot_20(arg_06); + delay = retval; + if (!delay) goto block_116C; + + block_1168: + delay = 3; + + block_116C: + if (delay > 5) goto block_117B; + + block_1177: + delay = 5; + + block_117B: + delay = (delay * 5); + + block_1185: + if delay goto block_121C; + + block_118D: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + class_0A1A_slot_2E(target, arg_06); + cs = retval; + class_0A0C_slot_29(*(arg_06), target); + dist = retval; + if ((((brain != 4) && (cs != 1)) && (dist <= 20)) || (((brain != 4) && (cs != 1)) && (dist <= 46))) goto block_120F; + + block_1206: + goto block_1222; + + block_120C: + goto block_1219; + + block_120F: + delay = (delay - 1); + + block_1219: + goto block_1185; + + block_121C: + goto block_1222; + + block_1222: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_30_slot_30.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_30_slot_30.txt new file mode 100644 index 0000000..21ddae0 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_30_slot_30.txt @@ -0,0 +1,28 @@ +function wallgun_slot_30() /* entry=396 class_id=0x0A1A slot=0x30 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + delay; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x0001, *(arg_06)); + class_0A1A_slot_21(arg_06); + delay = retval; + if (!delay) goto block_1296; + + block_1292: + delay = 3; + + block_1296: + if (delay > 5) goto block_12A5; + + block_12A1: + delay = 5; + + block_12A5: + delay = (delay * 8); + spawn class_0A0C_slot_32(pid, delay, 0x00000000); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_31_slot_31.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_31_slot_31.txt new file mode 100644 index 0000000..d62fff1 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_31_slot_31.txt @@ -0,0 +1,200 @@ +function wallgun_slot_31() /* entry=396 class_id=0x0A1A slot=0x31 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + target, /* [BP+0Ah] type=0x69 */ + brain, /* [BP+0Ch] type=0x69 */ + left, /* [BP-02h] type=0x69 */ + right, /* [BP-04h] type=0x69 */ + inc, /* [BP-06h] type=0x69 */ + f, /* [BP-08h] type=0x69 */ + panRight, /* [BP-09h] type=0x62 */ + panLeft, /* [BP-0Ah] type=0x62 */ + isTurret; /* [BP-0Bh] type=0x62 */ + + entry: + set_info(0x0001, *(arg_06)); + panRight = 1; + panLeft = 1; + class_0A1A_slot_29(arg_06); + isTurret = retval; + if (isTurret != 1) goto block_134E; + + block_1336: + inc = 1; + left = 0; + right = 15; + goto block_138B; + + block_134E: + class_0A1A_slot_2B(arg_06); + if retval goto block_1376; + + block_135E: + inc = 1; + left = 0; + right = 8; + goto block_138B; + + block_1376: + inc = -1; + left = 8; + right = 0; + + block_138B: + class_0A1A_slot_2E(target, arg_06); + if retval goto block_13E5; + + block_139D: + if (brain != 4) goto block_13BB; + + block_13AE: + /* word_to_dword */ + /* pop_result */ + goto block_15FA; + + block_13B8: + goto block_13E5; + + block_13BB: + class_0A0C_slot_29(target, *(arg_06)); + if (retval <= 20) goto block_13E5; + + block_13D8: + /* word_to_dword */ + /* pop_result */ + goto block_15FA; + + block_13E2: + goto block_13E5; + + block_13E5: + if 1 goto block_15FA; + + block_13ED: + spawn class_0A1A_slot_26(pid, arg_06); + suspend; + f = Item.getFrame(arg_06); + if (isTurret != 1) goto block_145F; + + block_1425: + if (f > 19) goto block_145C; + + block_1430: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + goto block_13E5; + + block_145C: + goto block_1499; + + block_145F: + if (f > 8) goto block_1499; + + block_146A: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + goto block_13E5; + + block_1496: + goto block_1499; + + block_1499: + if panRight goto block_14CF; + + block_14A1: + if (f != right) goto block_14C2; + + block_14B2: + panRight = 0; + goto block_13E5; + + block_14BF: + goto block_14CC; + + block_14C2: + f = (f + inc); + + block_14CC: + goto block_155E; + + block_14CF: + if ((panLeft != 1) && (isTurret != 0)) goto block_1511; + + block_14E3: + if (f != left) goto block_1504; + + block_14F4: + panLeft = 0; + goto block_13E5; + + block_1501: + goto block_150E; + + block_1504: + f = (f - inc); + + block_150E: + goto block_155E; + + block_1511: + if (isTurret != 1) goto block_153C; + + block_1522: + /* word_to_dword */ + /* pop_result */ + goto block_15FA; + + block_1539: + goto block_155E; + + block_153C: + if (f != 4) goto block_1554; + + block_1547: + /* word_to_dword */ + /* pop_result */ + goto block_15FA; + + block_1551: + goto block_155E; + + block_1554: + f = (f + inc); + + block_155E: + spawn class_0A1A_slot_2F(pid, brain, target, arg_06); + suspend; + class_0A1A_slot_2E(target, arg_06); + if retval goto block_15F7; + + block_15AF: + if (brain != 4) goto block_15CD; + + block_15C0: + /* word_to_dword */ + /* pop_result */ + goto block_15FA; + + block_15CA: + goto block_15F7; + + block_15CD: + class_0A0C_slot_29(target, *(arg_06)); + if (retval <= 20) goto block_15F7; + + block_15EA: + /* word_to_dword */ + /* pop_result */ + goto block_15FA; + + block_15F4: + goto block_15F7; + + block_15F7: + goto block_13E5; + + block_15FA: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_32_slot_32.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_32_slot_32.txt new file mode 100644 index 0000000..6f23326 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_32_slot_32.txt @@ -0,0 +1,151 @@ +function wallgun_slot_32() /* entry=396 class_id=0x0A1A slot=0x32 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + target, /* [BP+0Ah] type=0x69 */ + left, /* [BP-02h] type=0x69 */ + right, /* [BP-04h] type=0x69 */ + inc, /* [BP-06h] type=0x69 */ + f, /* [BP-08h] type=0x69 */ + panRight, /* [BP-09h] type=0x62 */ + panLeft, /* [BP-0Ah] type=0x62 */ + isTurret, /* [BP-0Bh] type=0x62 */ + delay; /* [BP-0Dh] type=0x69 */ + + entry: + set_info(0x0001, *(arg_06)); + panRight = 1; + panLeft = 1; + class_0A1A_slot_29(arg_06); + isTurret = retval; + if (isTurret != 1) goto block_16C5; + + block_16AD: + inc = 1; + left = 0; + right = 15; + goto block_1702; + + block_16C5: + class_0A1A_slot_2B(arg_06); + if retval goto block_16ED; + + block_16D5: + inc = 1; + left = 0; + right = 8; + goto block_1702; + + block_16ED: + inc = -1; + left = 8; + right = 0; + + block_1702: + class_0A1A_slot_20(arg_06); + delay = (retval * 5); + + block_1714: + if 1 goto block_18F9; + + block_171C: + spawn class_0A1A_slot_26(pid, arg_06); + suspend; + f = Item.getFrame(arg_06); + if (isTurret != 1) goto block_178E; + + block_1754: + if (f > 19) goto block_178B; + + block_175F: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + goto block_1714; + + block_178B: + goto block_17C8; + + block_178E: + if (f > 8) goto block_17C8; + + block_1799: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + goto block_1714; + + block_17C5: + goto block_17C8; + + block_17C8: + if panRight goto block_17FE; + + block_17D0: + if (f != right) goto block_17F1; + + block_17E1: + panRight = 0; + goto block_1714; + + block_17EE: + goto block_17FB; + + block_17F1: + f = (f + inc); + + block_17FB: + goto block_1881; + + block_17FE: + if ((panLeft != 1) && (isTurret != 0)) goto block_1840; + + block_1812: + if (f != left) goto block_1833; + + block_1823: + panLeft = 0; + goto block_1714; + + block_1830: + goto block_183D; + + block_1833: + f = (f - inc); + + block_183D: + goto block_1881; + + block_1840: + if (isTurret != 1) goto block_185B; + + block_1851: + f = left; + goto block_1873; + + block_185B: + if (f != 4) goto block_1873; + + block_1866: + f = (f + inc); + goto block_1873; + + block_1873: + panRight = 1; + panLeft = 1; + + block_1881: + spawn class_0A0C_slot_32(pid, delay, 0x00000000); + suspend; + class_0A1A_slot_2E(target, arg_06); + if retval goto block_18F6; + + block_18D3: + spawn class_0A1A_slot_46(pid, target, arg_06); + suspend; + + block_18F6: + goto block_1714; + + block_18F9: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_33_slot_33.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_33_slot_33.txt new file mode 100644 index 0000000..485c5bd --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_33_slot_33.txt @@ -0,0 +1,149 @@ +function wallgun_slot_33() /* entry=396 class_id=0x0A1A slot=0x33 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + target, /* [BP+0Ah] type=0x69 */ + left, /* [BP-02h] type=0x69 */ + right, /* [BP-04h] type=0x69 */ + inc, /* [BP-06h] type=0x69 */ + f, /* [BP-08h] type=0x69 */ + panRight, /* [BP-09h] type=0x62 */ + panLeft, /* [BP-0Ah] type=0x62 */ + isTurret, /* [BP-0Bh] type=0x62 */ + delay; /* [BP-0Dh] type=0x69 */ + + entry: + set_info(0x0001, *(arg_06)); + panRight = 1; + panLeft = 1; + class_0A1A_slot_29(arg_06); + isTurret = retval; + if (isTurret != 1) goto block_19C4; + + block_19AC: + inc = 1; + left = 0; + right = 15; + goto block_1A01; + + block_19C4: + class_0A1A_slot_2B(arg_06); + if retval goto block_19EC; + + block_19D4: + inc = 1; + left = 0; + right = 8; + goto block_1A01; + + block_19EC: + inc = -1; + left = 8; + right = 0; + + block_1A01: + class_0A1A_slot_20(arg_06); + delay = (retval * 5); + + block_1A13: + if 1 goto block_1BFB; + + block_1A1B: + spawn class_0A1A_slot_26(pid, arg_06); + suspend; + f = Item.getFrame(arg_06); + if (isTurret != 1) goto block_1A8D; + + block_1A53: + if (f > 19) goto block_1A8A; + + block_1A5E: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + goto block_1A13; + + block_1A8A: + goto block_1AC7; + + block_1A8D: + if (f > 8) goto block_1AC7; + + block_1A98: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + goto block_1A13; + + block_1AC4: + goto block_1AC7; + + block_1AC7: + if (panLeft != 1) goto block_1B00; + + block_1AD2: + if (f != left) goto block_1AF3; + + block_1AE3: + panLeft = 0; + goto block_1A13; + + block_1AF0: + goto block_1AFD; + + block_1AF3: + f = (f - inc); + + block_1AFD: + goto block_1B83; + + block_1B00: + if ((panRight != 1) && (isTurret != 0)) goto block_1B42; + + block_1B14: + if (f != right) goto block_1B35; + + block_1B25: + panRight = 0; + goto block_1A13; + + block_1B32: + goto block_1B3F; + + block_1B35: + f = (f + inc); + + block_1B3F: + goto block_1B83; + + block_1B42: + panRight = 1; + panLeft = 1; + if (isTurret != 1) goto block_1B6B; + + block_1B61: + f = right; + goto block_1B83; + + block_1B6B: + if (f != 4) goto block_1B83; + + block_1B76: + f = (f - inc); + goto block_1B83; + + block_1B83: + class_0A1A_slot_2E(target, arg_06); + if retval goto block_1BD2; + + block_1BAF: + spawn class_0A1A_slot_46(pid, target, arg_06); + suspend; + + block_1BD2: + spawn class_0A0C_slot_32(pid, delay, 0x00000000); + suspend; + goto block_1A13; + + block_1BFB: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_34_slot_34.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_34_slot_34.txt new file mode 100644 index 0000000..2e7e16b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_34_slot_34.txt @@ -0,0 +1,118 @@ +function wallgun_slot_34() /* entry=396 class_id=0x0A1A slot=0x34 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + left, /* [BP-02h] type=0x69 */ + right, /* [BP-04h] type=0x69 */ + inc, /* [BP-06h] type=0x69 */ + f, /* [BP-08h] type=0x69 */ + panRight, /* [BP-09h] type=0x62 */ + isTurret, /* [BP-0Ah] type=0x62 */ + delay; /* [BP-0Ch] type=0x69 */ + + entry: + set_info(0x0001, *(arg_06)); + panRight = 1; + class_0A1A_slot_29(arg_06); + isTurret = retval; + if (isTurret != 1) goto block_1CBF; + + block_1CA7: + inc = 1; + left = 0; + right = 15; + goto block_1CFC; + + block_1CBF: + class_0A1A_slot_2B(arg_06); + if retval goto block_1CE7; + + block_1CCF: + inc = 1; + left = 0; + right = 8; + goto block_1CFC; + + block_1CE7: + inc = -1; + left = 8; + right = 0; + + block_1CFC: + class_0A1A_slot_20(arg_06); + delay = (retval * 5); + + block_1D0E: + if 1 goto block_1E5E; + + block_1D16: + f = Item.getFrame(arg_06); + if (isTurret != 1) goto block_1D69; + + block_1D2F: + if (f > 19) goto block_1D66; + + block_1D3A: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + goto block_1D0E; + + block_1D66: + goto block_1DA3; + + block_1D69: + if (f > 8) goto block_1DA3; + + block_1D74: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + goto block_1D0E; + + block_1DA0: + goto block_1DA3; + + block_1DA3: + if panRight goto block_1DD9; + + block_1DAB: + if (f != right) goto block_1DCC; + + block_1DBC: + panRight = 0; + goto block_1D0E; + + block_1DC9: + goto block_1DD6; + + block_1DCC: + f = (f + inc); + + block_1DD6: + goto block_1E15; + + block_1DD9: + if (isTurret != 1) goto block_1DF4; + + block_1DEA: + f = left; + goto block_1E15; + + block_1DF4: + if ((f != 4) && (f != right)) goto block_1E15; + + block_1E08: + f = (f + inc); + goto block_1E15; + + block_1E15: + spawn class_0A0C_slot_32(pid, delay, 0x00000000); + suspend; + goto block_1E5E; + + block_1E5B: + goto block_1D0E; + + block_1E5E: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_35_slot_35.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_35_slot_35.txt new file mode 100644 index 0000000..1a394f8 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_35_slot_35.txt @@ -0,0 +1,118 @@ +function wallgun_slot_35() /* entry=396 class_id=0x0A1A slot=0x35 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + left, /* [BP-02h] type=0x69 */ + right, /* [BP-04h] type=0x69 */ + inc, /* [BP-06h] type=0x69 */ + f, /* [BP-08h] type=0x69 */ + panLeft, /* [BP-09h] type=0x62 */ + isTurret, /* [BP-0Ah] type=0x62 */ + delay; /* [BP-0Ch] type=0x69 */ + + entry: + set_info(0x0001, *(arg_06)); + panLeft = 1; + class_0A1A_slot_29(arg_06); + isTurret = retval; + if (isTurret != 1) goto block_1F0B; + + block_1EF3: + inc = 1; + left = 0; + right = 15; + goto block_1F48; + + block_1F0B: + class_0A1A_slot_2B(arg_06); + if retval goto block_1F33; + + block_1F1B: + inc = 1; + left = 0; + right = 8; + goto block_1F48; + + block_1F33: + inc = -1; + left = 8; + right = 0; + + block_1F48: + class_0A1A_slot_20(arg_06); + delay = (retval * 5); + + block_1F5A: + if 1 goto block_20AD; + + block_1F62: + f = Item.getFrame(arg_06); + if (isTurret != 1) goto block_1FB5; + + block_1F7B: + if (f > 19) goto block_1FB2; + + block_1F86: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + goto block_1F5A; + + block_1FB2: + goto block_1FEF; + + block_1FB5: + if (f > 8) goto block_1FEF; + + block_1FC0: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + goto block_1F5A; + + block_1FEC: + goto block_1FEF; + + block_1FEF: + if (panLeft != 1) goto block_2028; + + block_1FFA: + if (f != left) goto block_201B; + + block_200B: + panLeft = 0; + goto block_1F5A; + + block_2018: + goto block_2025; + + block_201B: + f = (f - inc); + + block_2025: + goto block_2064; + + block_2028: + if (isTurret != 1) goto block_2043; + + block_2039: + f = right; + goto block_2064; + + block_2043: + if ((f != 4) && (f != left)) goto block_2064; + + block_2057: + f = (f - inc); + goto block_2064; + + block_2064: + spawn class_0A0C_slot_32(pid, delay, 0x00000000); + suspend; + goto block_20AD; + + block_20AA: + goto block_1F5A; + + block_20AD: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_36_slot_36.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_36_slot_36.txt new file mode 100644 index 0000000..8929eab --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_36_slot_36.txt @@ -0,0 +1,140 @@ +function wallgun_slot_36() /* entry=396 class_id=0x0A1A slot=0x36 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + left, /* [BP-02h] type=0x69 */ + right, /* [BP-04h] type=0x69 */ + inc, /* [BP-06h] type=0x69 */ + f, /* [BP-08h] type=0x69 */ + panRight, /* [BP-09h] type=0x62 */ + panLeft, /* [BP-0Ah] type=0x62 */ + isTurret, /* [BP-0Bh] type=0x62 */ + delay; /* [BP-0Dh] type=0x69 */ + + entry: + set_info(0x0001, *(arg_06)); + panRight = 1; + panLeft = 1; + class_0A1A_slot_29(arg_06); + isTurret = retval; + if (isTurret != 1) goto block_2160; + + block_2148: + inc = 1; + left = 0; + right = 15; + goto block_219D; + + block_2160: + class_0A1A_slot_2B(arg_06); + if retval goto block_2188; + + block_2170: + inc = 1; + left = 0; + right = 8; + goto block_219D; + + block_2188: + inc = -1; + left = 8; + right = 0; + + block_219D: + class_0A1A_slot_20(arg_06); + delay = (retval * 5); + + block_21AF: + if 1 goto block_235F; + + block_21B7: + spawn class_0A1A_slot_26(pid, arg_06); + suspend; + f = Item.getFrame(arg_06); + if (isTurret != 1) goto block_2229; + + block_21EF: + if (f > 19) goto block_2226; + + block_21FA: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + goto block_21AF; + + block_2226: + goto block_2263; + + block_2229: + if (f > 8) goto block_2263; + + block_2234: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + goto block_21AF; + + block_2260: + goto block_2263; + + block_2263: + if panRight goto block_2299; + + block_226B: + if (f != right) goto block_228C; + + block_227C: + panRight = 0; + goto block_21AF; + + block_2289: + goto block_2296; + + block_228C: + f = (f + inc); + + block_2296: + goto block_231C; + + block_2299: + if ((panLeft != 1) && (isTurret != 0)) goto block_22DB; + + block_22AD: + if (f != left) goto block_22CE; + + block_22BE: + panLeft = 0; + goto block_21AF; + + block_22CB: + goto block_22D8; + + block_22CE: + f = (f - inc); + + block_22D8: + goto block_231C; + + block_22DB: + panRight = 1; + panLeft = 1; + if (isTurret != 1) goto block_2304; + + block_22FA: + f = left; + goto block_231C; + + block_2304: + if (f != 4) goto block_231C; + + block_230F: + f = (f + inc); + goto block_231C; + + block_231C: + spawn class_0A0C_slot_32(pid, delay, 0x00000000); + suspend; + goto block_21AF; + + block_235F: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_37_slot_37.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_37_slot_37.txt new file mode 100644 index 0000000..6143c9c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_37_slot_37.txt @@ -0,0 +1,140 @@ +function wallgun_slot_37() /* entry=396 class_id=0x0A1A slot=0x37 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + left, /* [BP-02h] type=0x69 */ + right, /* [BP-04h] type=0x69 */ + inc, /* [BP-06h] type=0x69 */ + f, /* [BP-08h] type=0x69 */ + panRight, /* [BP-09h] type=0x62 */ + panLeft, /* [BP-0Ah] type=0x62 */ + isTurret, /* [BP-0Bh] type=0x62 */ + delay; /* [BP-0Dh] type=0x69 */ + + entry: + set_info(0x0001, *(arg_06)); + panRight = 1; + panLeft = 1; + class_0A1A_slot_29(arg_06); + isTurret = retval; + if (isTurret != 1) goto block_241F; + + block_2407: + inc = 1; + left = 0; + right = 15; + goto block_245C; + + block_241F: + class_0A1A_slot_2B(arg_06); + if retval goto block_2447; + + block_242F: + inc = 1; + left = 0; + right = 8; + goto block_245C; + + block_2447: + inc = -1; + left = 8; + right = 0; + + block_245C: + class_0A1A_slot_20(arg_06); + delay = (retval * 5); + + block_246E: + if 1 goto block_2621; + + block_2476: + spawn class_0A1A_slot_26(pid, arg_06); + suspend; + f = Item.getFrame(arg_06); + if (isTurret != 1) goto block_24E8; + + block_24AE: + if (f > 19) goto block_24E5; + + block_24B9: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + goto block_246E; + + block_24E5: + goto block_2522; + + block_24E8: + if (f > 8) goto block_2522; + + block_24F3: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + goto block_246E; + + block_251F: + goto block_2522; + + block_2522: + if (panLeft != 1) goto block_255B; + + block_252D: + if (f != left) goto block_254E; + + block_253E: + panLeft = 0; + goto block_246E; + + block_254B: + goto block_2558; + + block_254E: + f = (f - inc); + + block_2558: + goto block_25DE; + + block_255B: + if ((panRight != 1) && (isTurret != 0)) goto block_259D; + + block_256F: + if (f != right) goto block_2590; + + block_2580: + panRight = 0; + goto block_246E; + + block_258D: + goto block_259A; + + block_2590: + f = (f + inc); + + block_259A: + goto block_25DE; + + block_259D: + panRight = 1; + panLeft = 1; + if (isTurret != 1) goto block_25C6; + + block_25BC: + f = right; + goto block_25DE; + + block_25C6: + if (f != 4) goto block_25DE; + + block_25D1: + f = (f - inc); + goto block_25DE; + + block_25DE: + spawn class_0A0C_slot_32(pid, delay, 0x00000000); + suspend; + goto block_246E; + + block_2621: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_38_slot_38.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_38_slot_38.txt new file mode 100644 index 0000000..5ce2674 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_38_slot_38.txt @@ -0,0 +1,143 @@ +function wallgun_slot_38() /* entry=396 class_id=0x0A1A slot=0x38 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + target, /* [BP+0Ah] type=0x69 */ + left, /* [BP-02h] type=0x69 */ + right, /* [BP-04h] type=0x69 */ + inc, /* [BP-06h] type=0x69 */ + f, /* [BP-08h] type=0x69 */ + panRight, /* [BP-09h] type=0x62 */ + panLeft, /* [BP-0Ah] type=0x62 */ + isTurret, /* [BP-0Bh] type=0x62 */ + delay; /* [BP-0Dh] type=0x69 */ + + entry: + set_info(0x0001, *(arg_06)); + panRight = 1; + panLeft = 1; + class_0A1A_slot_29(arg_06); + isTurret = retval; + if (isTurret != 1) goto block_26E1; + + block_26C9: + inc = 1; + left = 4; + right = 12; + goto block_271E; + + block_26E1: + class_0A1A_slot_2B(arg_06); + if retval goto block_2709; + + block_26F1: + inc = 1; + left = 0; + right = 8; + goto block_271E; + + block_2709: + inc = -1; + left = 8; + right = 0; + + block_271E: + class_0A1A_slot_20(arg_06); + delay = (retval * 5); + + block_2730: + if 1 goto block_28EE; + + block_2738: + spawn class_0A1A_slot_26(pid, arg_06); + suspend; + f = Item.getFrame(arg_06); + if (isTurret != 1) goto block_27AA; + + block_2770: + if (f > 19) goto block_27A7; + + block_277B: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + goto block_2730; + + block_27A7: + goto block_27E4; + + block_27AA: + if (f > 8) goto block_27E4; + + block_27B5: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + goto block_2730; + + block_27E1: + goto block_27E4; + + block_27E4: + if panRight goto block_281A; + + block_27EC: + if (f != right) goto block_280D; + + block_27FD: + panRight = 0; + goto block_2730; + + block_280A: + goto block_2817; + + block_280D: + f = (f + inc); + + block_2817: + goto block_2876; + + block_281A: + if (panLeft != 1) goto block_2853; + + block_2825: + if (f != left) goto block_2846; + + block_2836: + panLeft = 0; + goto block_2730; + + block_2843: + goto block_2850; + + block_2846: + f = (f - inc); + + block_2850: + goto block_2876; + + block_2853: + if (f != 4) goto block_2868; + + block_285E: + f = (f + inc); + + block_2868: + panRight = 1; + panLeft = 1; + + block_2876: + spawn class_0A0C_slot_32(pid, delay, 0x00000000); + suspend; + class_0A1A_slot_2E(target, arg_06); + if retval goto block_28EB; + + block_28C8: + spawn class_0A1A_slot_46(pid, target, arg_06); + suspend; + + block_28EB: + goto block_2730; + + block_28EE: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_39_slot_39.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_39_slot_39.txt new file mode 100644 index 0000000..b5fc700 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_39_slot_39.txt @@ -0,0 +1,143 @@ +function wallgun_slot_39() /* entry=396 class_id=0x0A1A slot=0x39 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + target, /* [BP+0Ah] type=0x69 */ + left, /* [BP-02h] type=0x69 */ + right, /* [BP-04h] type=0x69 */ + inc, /* [BP-06h] type=0x69 */ + f, /* [BP-08h] type=0x69 */ + panRight, /* [BP-09h] type=0x62 */ + panLeft, /* [BP-0Ah] type=0x62 */ + isTurret, /* [BP-0Bh] type=0x62 */ + delay; /* [BP-0Dh] type=0x69 */ + + entry: + set_info(0x0001, *(arg_06)); + panRight = 1; + panLeft = 1; + class_0A1A_slot_29(arg_06); + isTurret = retval; + if (isTurret != 1) goto block_29B9; + + block_29A1: + inc = 1; + left = 0; + right = 8; + goto block_29F6; + + block_29B9: + class_0A1A_slot_2B(arg_06); + if retval goto block_29E1; + + block_29C9: + inc = 1; + left = 0; + right = 8; + goto block_29F6; + + block_29E1: + inc = -1; + left = 8; + right = 0; + + block_29F6: + class_0A1A_slot_20(arg_06); + delay = (retval * 5); + + block_2A08: + if 1 goto block_2BC6; + + block_2A10: + spawn class_0A1A_slot_26(pid, arg_06); + suspend; + f = Item.getFrame(arg_06); + if (isTurret != 1) goto block_2A82; + + block_2A48: + if (f > 19) goto block_2A7F; + + block_2A53: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + goto block_2A08; + + block_2A7F: + goto block_2ABC; + + block_2A82: + if (f > 8) goto block_2ABC; + + block_2A8D: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + goto block_2A08; + + block_2AB9: + goto block_2ABC; + + block_2ABC: + if panRight goto block_2AF2; + + block_2AC4: + if (f != right) goto block_2AE5; + + block_2AD5: + panRight = 0; + goto block_2A08; + + block_2AE2: + goto block_2AEF; + + block_2AE5: + f = (f + inc); + + block_2AEF: + goto block_2B4E; + + block_2AF2: + if (panLeft != 1) goto block_2B2B; + + block_2AFD: + if (f != left) goto block_2B1E; + + block_2B0E: + panLeft = 0; + goto block_2A08; + + block_2B1B: + goto block_2B28; + + block_2B1E: + f = (f - inc); + + block_2B28: + goto block_2B4E; + + block_2B2B: + if (f != 4) goto block_2B40; + + block_2B36: + f = (f + inc); + + block_2B40: + panRight = 1; + panLeft = 1; + + block_2B4E: + spawn class_0A0C_slot_32(pid, delay, 0x00000000); + suspend; + class_0A1A_slot_2E(target, arg_06); + if retval goto block_2BC3; + + block_2BA0: + spawn class_0A1A_slot_46(pid, target, arg_06); + suspend; + + block_2BC3: + goto block_2A08; + + block_2BC6: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_3A_slot_3A.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_3A_slot_3A.txt new file mode 100644 index 0000000..caffb49 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_3A_slot_3A.txt @@ -0,0 +1,147 @@ +function wallgun_slot_3A() /* entry=396 class_id=0x0A1A slot=0x3A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + target, /* [BP+0Ah] type=0x69 */ + left, /* [BP-02h] type=0x69 */ + right, /* [BP-04h] type=0x69 */ + inc, /* [BP-06h] type=0x69 */ + f, /* [BP-08h] type=0x69 */ + panRight, /* [BP-09h] type=0x62 */ + panLeft, /* [BP-0Ah] type=0x62 */ + isTurret, /* [BP-0Bh] type=0x62 */ + delay; /* [BP-0Dh] type=0x69 */ + + entry: + set_info(0x0001, *(arg_06)); + panRight = 1; + panLeft = 1; + class_0A1A_slot_29(arg_06); + isTurret = retval; + if (isTurret != 1) goto block_2C91; + + block_2C79: + inc = 1; + left = 8; + right = 12; + goto block_2CCE; + + block_2C91: + class_0A1A_slot_2B(arg_06); + if retval goto block_2CB9; + + block_2CA1: + inc = 1; + left = 0; + right = 8; + goto block_2CCE; + + block_2CB9: + inc = -1; + left = 8; + right = 0; + + block_2CCE: + class_0A1A_slot_20(arg_06); + delay = (retval * 15); + + block_2CE0: + if 1 goto block_2EEA; + + block_2CE8: + spawn class_0A1A_slot_26(pid, arg_06); + suspend; + f = Item.getFrame(arg_06); + if (isTurret != 1) goto block_2D5A; + + block_2D20: + if (f > 19) goto block_2D57; + + block_2D2B: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + goto block_2CE0; + + block_2D57: + goto block_2D94; + + block_2D5A: + if (f > 8) goto block_2D94; + + block_2D65: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + goto block_2CE0; + + block_2D91: + goto block_2D94; + + block_2D94: + if panRight goto block_2DF0; + + block_2D9C: + if (f != right) goto block_2DE3; + + block_2DAD: + panRight = 0; + spawn class_0A0C_slot_32(pid, 20, 0x00000000); + suspend; + goto block_2CE0; + + block_2DE0: + goto block_2DED; + + block_2DE3: + f = (f + inc); + + block_2DED: + goto block_2E72; + + block_2DF0: + if (panLeft != 1) goto block_2E4F; + + block_2DFB: + if (f != left) goto block_2E42; + + block_2E0C: + panLeft = 0; + spawn class_0A0C_slot_32(pid, 20, 0x00000000); + suspend; + goto block_2CE0; + + block_2E3F: + goto block_2E4C; + + block_2E42: + f = (f - inc); + + block_2E4C: + goto block_2E72; + + block_2E4F: + if (f != 4) goto block_2E64; + + block_2E5A: + f = (f + inc); + + block_2E64: + panRight = 1; + panLeft = 1; + + block_2E72: + spawn class_0A0C_slot_32(pid, delay, 0x00000000); + suspend; + class_0A1A_slot_2E(target, arg_06); + if retval goto block_2EE7; + + block_2EC4: + spawn class_0A1A_slot_46(pid, target, arg_06); + suspend; + + block_2EE7: + goto block_2CE0; + + block_2EEA: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_3B_slot_3B.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_3B_slot_3B.txt new file mode 100644 index 0000000..d32e720 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_3B_slot_3B.txt @@ -0,0 +1,147 @@ +function wallgun_slot_3B() /* entry=396 class_id=0x0A1A slot=0x3B */ +{ + var + referent, /* [BP+00h] type=0x69 */ + target, /* [BP+0Ah] type=0x69 */ + left, /* [BP-02h] type=0x69 */ + right, /* [BP-04h] type=0x69 */ + inc, /* [BP-06h] type=0x69 */ + f, /* [BP-08h] type=0x69 */ + panRight, /* [BP-09h] type=0x62 */ + panLeft, /* [BP-0Ah] type=0x62 */ + isTurret, /* [BP-0Bh] type=0x62 */ + delay; /* [BP-0Dh] type=0x69 */ + + entry: + set_info(0x0001, *(arg_06)); + panRight = 1; + panLeft = 1; + class_0A1A_slot_29(arg_06); + isTurret = retval; + if (isTurret != 1) goto block_2FB5; + + block_2F9D: + inc = 1; + left = 4; + right = 8; + goto block_2FF2; + + block_2FB5: + class_0A1A_slot_2B(arg_06); + if retval goto block_2FDD; + + block_2FC5: + inc = 1; + left = 0; + right = 8; + goto block_2FF2; + + block_2FDD: + inc = -1; + left = 8; + right = 0; + + block_2FF2: + class_0A1A_slot_20(arg_06); + delay = (retval * 15); + + block_3004: + if 1 goto block_3214; + + block_300C: + spawn class_0A1A_slot_26(pid, arg_06); + suspend; + f = Item.getFrame(arg_06); + if (isTurret != 1) goto block_307E; + + block_3044: + if (f > 19) goto block_307B; + + block_304F: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + goto block_3004; + + block_307B: + goto block_30B8; + + block_307E: + if (f > 8) goto block_30B8; + + block_3089: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + goto block_3004; + + block_30B5: + goto block_30B8; + + block_30B8: + if panRight goto block_3117; + + block_30C0: + if (f != right) goto block_310A; + + block_30D1: + panRight = 0; + spawn class_0A0C_slot_32(pid, (delay + 20), 0x00000000); + suspend; + goto block_3004; + + block_3107: + goto block_3114; + + block_310A: + f = (f + inc); + + block_3114: + goto block_319C; + + block_3117: + if (panLeft != 1) goto block_3179; + + block_3122: + if (f != left) goto block_316C; + + block_3133: + panLeft = 0; + spawn class_0A0C_slot_32(pid, (delay + 20), 0x00000000); + suspend; + goto block_3004; + + block_3169: + goto block_3176; + + block_316C: + f = (f - inc); + + block_3176: + goto block_319C; + + block_3179: + if (f != 4) goto block_318E; + + block_3184: + f = (f + inc); + + block_318E: + panRight = 1; + panLeft = 1; + + block_319C: + spawn class_0A0C_slot_32(pid, delay, 0x00000000); + suspend; + class_0A1A_slot_2E(target, arg_06); + if retval goto block_3211; + + block_31EE: + spawn class_0A1A_slot_46(pid, target, arg_06); + suspend; + + block_3211: + goto block_3004; + + block_3214: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_3C_slot_3C.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_3C_slot_3C.txt new file mode 100644 index 0000000..afc5d74 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_3C_slot_3C.txt @@ -0,0 +1,147 @@ +function wallgun_slot_3C() /* entry=396 class_id=0x0A1A slot=0x3C */ +{ + var + referent, /* [BP+00h] type=0x69 */ + target, /* [BP+0Ah] type=0x69 */ + brain, /* [BP+0Ch] type=0x69 */ + x, /* [BP-02h] type=0x69 */ + left, /* [BP-04h] type=0x69 */ + right, /* [BP-06h] type=0x69 */ + inc, /* [BP-08h] type=0x69 */ + f, /* [BP-0Ah] type=0x69 */ + isTurret; /* [BP-0Ch] type=0x69 */ + + entry: + set_info(0x0001, *(arg_06)); + class_0A1A_slot_29(arg_06); + isTurret = retval; + if (isTurret != 1) goto block_32D1; + + block_32B9: + inc = -1; + left = 0; + right = 15; + goto block_330E; + + block_32D1: + class_0A1A_slot_2B(arg_06); + if retval goto block_32F9; + + block_32E1: + inc = -1; + left = 0; + right = 8; + goto block_330E; + + block_32F9: + inc = 1; + left = 8; + right = 0; + + block_330E: + class_0A1A_slot_2D(target, arg_06); + if (!retval) goto block_3328; + + block_3321: + /* word_to_dword */ + /* pop_result */ + goto block_34DE; + + block_3328: + if 1 goto block_34DE; + + block_3330: + spawn class_0A1A_slot_26(pid, arg_06); + suspend; + spawn class_0A1A_slot_2F(pid, brain, target, arg_06); + suspend; + f = Item.getFrame(arg_06); + if (isTurret != 1) goto block_33C7; + + block_338D: + if (f > 19) goto block_33C4; + + block_3398: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + goto block_3328; + + block_33C4: + goto block_3401; + + block_33C7: + if (f > 8) goto block_3401; + + block_33D2: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + goto block_3328; + + block_33FE: + goto block_3401; + + block_3401: + class_0A1A_slot_2D(target, arg_06); + x = retval; + if (x != 0) goto block_342A; + + block_3420: + /* word_to_dword */ + /* pop_result */ + goto block_34DE; + + block_342A: + if (x != 1) goto block_347E; + + block_3438: + if (f != left) goto block_3471; + + block_3449: + if (isTurret != 1) goto block_3464; + + block_345A: + f = right; + goto block_346E; + + block_3464: + /* word_to_dword */ + /* pop_result */ + goto block_34DE; + + block_346E: + goto block_347B; + + block_3471: + f = (f + inc); + + block_347B: + goto block_34C1; + + block_347E: + if (f != right) goto block_34B7; + + block_348F: + if (isTurret != 1) goto block_34AA; + + block_34A0: + f = left; + goto block_34B4; + + block_34AA: + /* word_to_dword */ + /* pop_result */ + goto block_34DE; + + block_34B4: + goto block_34C1; + + block_34B7: + f = (f - inc); + + block_34C1: + goto block_3328; + + block_34DE: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_3D_slot_3D.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_3D_slot_3D.txt new file mode 100644 index 0000000..275e215 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_3D_slot_3D.txt @@ -0,0 +1,45 @@ +function wallgun_slot_3D() /* entry=396 class_id=0x0A1A slot=0x3D */ +{ + var + referent, /* [BP+00h] type=0x69 */ + target, /* [BP+0Ah] type=0x69 */ + brain, /* [BP+0Ch] type=0x69 */ + cs, /* [BP-02h] type=0x69 */ + dist; /* [BP-04h] type=0x69 */ + + entry: + set_info(0x0001, *(arg_06)); + + block_3550: + if 1 goto block_3625; + + block_3558: + spawn class_0A1A_slot_26(pid, arg_06); + suspend; + spawn class_0A1A_slot_3C(pid, brain, target, arg_06); + suspend; + /* dword_to_word */ + if process_result goto block_3622; + + block_35A1: + class_0A1A_slot_2E(target, arg_06); + cs = retval; + class_0A0C_slot_29(*(arg_06), target); + dist = retval; + if ((((brain != 4) && (cs != 1)) && (dist <= 20)) || (((brain != 4) && (cs != 1)) && (dist <= 46))) goto block_361C; + + block_35F4: + spawn class_0A1A_slot_45(pid, brain, target, arg_06); + suspend; + goto block_3622; + + block_361C: + goto block_3625; + + block_3622: + goto block_3550; + + block_3625: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_3E_slot_3E.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_3E_slot_3E.txt new file mode 100644 index 0000000..aca1aa1 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_3E_slot_3E.txt @@ -0,0 +1,1015 @@ +function wallgun_slot_3E() /* entry=396 class_id=0x0A1A slot=0x3E */ +{ + var + referent, /* [BP+00h] type=0x69 */ + dir; /* [BP+0Ah] type=0x62 */ + + entry: + if (Intrinsic0016(arg_06) != 0x0108) goto block_3732; + + block_367B: + if (dir != 12) goto block_368F; + + block_3686: + goto block_3F79; + + block_368C: + goto block_372F; + + block_368F: + if (dir != 11) goto block_36A3; + + block_369A: + goto block_3F79; + + block_36A0: + goto block_372F; + + block_36A3: + if (dir != 10) goto block_36B7; + + block_36AE: + goto block_3F79; + + block_36B4: + goto block_372F; + + block_36B7: + if (dir != 9) goto block_36CB; + + block_36C2: + goto block_3F79; + + block_36C8: + goto block_372F; + + block_36CB: + if (dir != 8) goto block_36DF; + + block_36D6: + goto block_3F79; + + block_36DC: + goto block_372F; + + block_36DF: + if (dir != 7) goto block_36F3; + + block_36EA: + goto block_3F79; + + block_36F0: + goto block_372F; + + block_36F3: + if (dir != 6) goto block_3707; + + block_36FE: + goto block_3F79; + + block_3704: + goto block_372F; + + block_3707: + if (dir != 5) goto block_371B; + + block_3712: + goto block_3F79; + + block_3718: + goto block_372F; + + block_371B: + if (dir != 4) goto block_372F; + + block_3726: + goto block_3F79; + + block_372C: + goto block_372F; + + block_372F: + goto block_3F79; + + block_3732: + if (Intrinsic0016(arg_06) != 0x0113) goto block_37F9; + + block_3742: + if (dir != 0) goto block_3756; + + block_374D: + goto block_3F79; + + block_3753: + goto block_37F6; + + block_3756: + if (dir != 1) goto block_376A; + + block_3761: + goto block_3F79; + + block_3767: + goto block_37F6; + + block_376A: + if (dir != 2) goto block_377E; + + block_3775: + goto block_3F79; + + block_377B: + goto block_37F6; + + block_377E: + if (dir != 3) goto block_3792; + + block_3789: + goto block_3F79; + + block_378F: + goto block_37F6; + + block_3792: + if (dir != 4) goto block_37A6; + + block_379D: + goto block_3F79; + + block_37A3: + goto block_37F6; + + block_37A6: + if (dir != 5) goto block_37BA; + + block_37B1: + goto block_3F79; + + block_37B7: + goto block_37F6; + + block_37BA: + if (dir != 6) goto block_37CE; + + block_37C5: + goto block_3F79; + + block_37CB: + goto block_37F6; + + block_37CE: + if (dir != 7) goto block_37E2; + + block_37D9: + goto block_3F79; + + block_37DF: + goto block_37F6; + + block_37E2: + if (dir != 8) goto block_37F6; + + block_37ED: + goto block_3F79; + + block_37F3: + goto block_37F6; + + block_37F6: + goto block_3F79; + + block_37F9: + if (Intrinsic0016(arg_06) != 0x02F0) goto block_38C0; + + block_3809: + if (dir != 12) goto block_381D; + + block_3811: + goto block_3F79; + + block_381A: + goto block_38BD; + + block_381D: + if (dir != 11) goto block_3831; + + block_3825: + goto block_3F79; + + block_382E: + goto block_38BD; + + block_3831: + if (dir != 10) goto block_3845; + + block_3839: + goto block_3F79; + + block_3842: + goto block_38BD; + + block_3845: + if (dir != 9) goto block_3859; + + block_384D: + goto block_3F79; + + block_3856: + goto block_38BD; + + block_3859: + if (dir != 8) goto block_386D; + + block_3861: + goto block_3F79; + + block_386A: + goto block_38BD; + + block_386D: + if (dir != 7) goto block_3881; + + block_3875: + goto block_3F79; + + block_387E: + goto block_38BD; + + block_3881: + if (dir != 6) goto block_3895; + + block_3889: + goto block_3F79; + + block_3892: + goto block_38BD; + + block_3895: + if (dir != 5) goto block_38A9; + + block_389D: + goto block_3F79; + + block_38A6: + goto block_38BD; + + block_38A9: + if (dir != 4) goto block_38BD; + + block_38B1: + goto block_3F79; + + block_38BA: + goto block_38BD; + + block_38BD: + goto block_3F79; + + block_38C0: + if (Intrinsic0016(arg_06) != 0x0373) goto block_399B; + + block_38D0: + if (dir != 0) goto block_38E4; + + block_38D8: + goto block_3F79; + + block_38E1: + goto block_3998; + + block_38E4: + if (dir != 1) goto block_38F8; + + block_38EC: + goto block_3F79; + + block_38F5: + goto block_3998; + + block_38F8: + if (dir != 2) goto block_390C; + + block_3900: + goto block_3F79; + + block_3909: + goto block_3998; + + block_390C: + if (dir != 3) goto block_3920; + + block_3914: + goto block_3F79; + + block_391D: + goto block_3998; + + block_3920: + if (dir != 4) goto block_3934; + + block_3928: + goto block_3F79; + + block_3931: + goto block_3998; + + block_3934: + if (dir != 5) goto block_3948; + + block_393C: + goto block_3F79; + + block_3945: + goto block_3998; + + block_3948: + if (dir != 6) goto block_395C; + + block_3950: + goto block_3F79; + + block_3959: + goto block_3998; + + block_395C: + if (dir != 7) goto block_3970; + + block_3964: + goto block_3F79; + + block_396D: + goto block_3998; + + block_3970: + if (dir != 8) goto block_3984; + + block_3978: + goto block_3F79; + + block_3981: + goto block_3998; + + block_3984: + if (dir != 9) goto block_3998; + + block_398C: + goto block_3F79; + + block_3995: + goto block_3998; + + block_3998: + goto block_3F79; + + block_399B: + if (Intrinsic0016(arg_06) != 0x0399) goto block_3A62; + + block_39AB: + if (dir != 12) goto block_39BF; + + block_39B6: + goto block_3F79; + + block_39BC: + goto block_3A5F; + + block_39BF: + if (dir != 11) goto block_39D3; + + block_39CA: + goto block_3F79; + + block_39D0: + goto block_3A5F; + + block_39D3: + if (dir != 10) goto block_39E7; + + block_39DE: + goto block_3F79; + + block_39E4: + goto block_3A5F; + + block_39E7: + if (dir != 9) goto block_39FB; + + block_39F2: + goto block_3F79; + + block_39F8: + goto block_3A5F; + + block_39FB: + if (dir != 8) goto block_3A0F; + + block_3A06: + goto block_3F79; + + block_3A0C: + goto block_3A5F; + + block_3A0F: + if (dir != 7) goto block_3A23; + + block_3A1A: + goto block_3F79; + + block_3A20: + goto block_3A5F; + + block_3A23: + if (dir != 6) goto block_3A37; + + block_3A2E: + goto block_3F79; + + block_3A34: + goto block_3A5F; + + block_3A37: + if (dir != 5) goto block_3A4B; + + block_3A42: + goto block_3F79; + + block_3A48: + goto block_3A5F; + + block_3A4B: + if (dir != 4) goto block_3A5F; + + block_3A56: + goto block_3F79; + + block_3A5C: + goto block_3A5F; + + block_3A5F: + goto block_3F79; + + block_3A62: + if (Intrinsic0016(arg_06) != 0x03A1) goto block_3B29; + + block_3A72: + if (dir != 0) goto block_3A86; + + block_3A7D: + goto block_3F79; + + block_3A83: + goto block_3B26; + + block_3A86: + if (dir != 1) goto block_3A9A; + + block_3A91: + goto block_3F79; + + block_3A97: + goto block_3B26; + + block_3A9A: + if (dir != 2) goto block_3AAE; + + block_3AA5: + goto block_3F79; + + block_3AAB: + goto block_3B26; + + block_3AAE: + if (dir != 3) goto block_3AC2; + + block_3AB9: + goto block_3F79; + + block_3ABF: + goto block_3B26; + + block_3AC2: + if (dir != 4) goto block_3AD6; + + block_3ACD: + goto block_3F79; + + block_3AD3: + goto block_3B26; + + block_3AD6: + if (dir != 5) goto block_3AEA; + + block_3AE1: + goto block_3F79; + + block_3AE7: + goto block_3B26; + + block_3AEA: + if (dir != 6) goto block_3AFE; + + block_3AF5: + goto block_3F79; + + block_3AFB: + goto block_3B26; + + block_3AFE: + if (dir != 7) goto block_3B12; + + block_3B09: + goto block_3F79; + + block_3B0F: + goto block_3B26; + + block_3B12: + if (dir != 8) goto block_3B26; + + block_3B1D: + goto block_3F79; + + block_3B23: + goto block_3B26; + + block_3B26: + goto block_3F79; + + block_3B29: + if ((Intrinsic0016(arg_06) != 0x01BA) || (Intrinsic0016(arg_06) != 0x025F)) goto block_3BFE; + + block_3B47: + if (dir != 12) goto block_3B5B; + + block_3B52: + goto block_3F79; + + block_3B58: + goto block_3BFB; + + block_3B5B: + if (dir != 11) goto block_3B6F; + + block_3B66: + goto block_3F79; + + block_3B6C: + goto block_3BFB; + + block_3B6F: + if (dir != 10) goto block_3B83; + + block_3B7A: + goto block_3F79; + + block_3B80: + goto block_3BFB; + + block_3B83: + if (dir != 9) goto block_3B97; + + block_3B8E: + goto block_3F79; + + block_3B94: + goto block_3BFB; + + block_3B97: + if (dir != 8) goto block_3BAB; + + block_3BA2: + goto block_3F79; + + block_3BA8: + goto block_3BFB; + + block_3BAB: + if (dir != 7) goto block_3BBF; + + block_3BB6: + goto block_3F79; + + block_3BBC: + goto block_3BFB; + + block_3BBF: + if (dir != 6) goto block_3BD3; + + block_3BCA: + goto block_3F79; + + block_3BD0: + goto block_3BFB; + + block_3BD3: + if (dir != 5) goto block_3BE7; + + block_3BDE: + goto block_3F79; + + block_3BE4: + goto block_3BFB; + + block_3BE7: + if (dir != 4) goto block_3BFB; + + block_3BF2: + goto block_3F79; + + block_3BF8: + goto block_3BFB; + + block_3BFB: + goto block_3F79; + + block_3BFE: + if ((Intrinsic0016(arg_06) != 0x01B9) || (Intrinsic0016(arg_06) != 0x0260)) goto block_3CD3; + + block_3C1C: + if (dir != 8) goto block_3C30; + + block_3C27: + goto block_3F79; + + block_3C2D: + goto block_3CD0; + + block_3C30: + if (dir != 7) goto block_3C44; + + block_3C3B: + goto block_3F79; + + block_3C41: + goto block_3CD0; + + block_3C44: + if (dir != 6) goto block_3C58; + + block_3C4F: + goto block_3F79; + + block_3C55: + goto block_3CD0; + + block_3C58: + if (dir != 5) goto block_3C6C; + + block_3C63: + goto block_3F79; + + block_3C69: + goto block_3CD0; + + block_3C6C: + if (dir != 4) goto block_3C80; + + block_3C77: + goto block_3F79; + + block_3C7D: + goto block_3CD0; + + block_3C80: + if (dir != 3) goto block_3C94; + + block_3C8B: + goto block_3F79; + + block_3C91: + goto block_3CD0; + + block_3C94: + if (dir != 2) goto block_3CA8; + + block_3C9F: + goto block_3F79; + + block_3CA5: + goto block_3CD0; + + block_3CA8: + if (dir != 1) goto block_3CBC; + + block_3CB3: + goto block_3F79; + + block_3CB9: + goto block_3CD0; + + block_3CBC: + if (dir != 0) goto block_3CD0; + + block_3CC7: + goto block_3F79; + + block_3CCD: + goto block_3CD0; + + block_3CD0: + goto block_3F79; + + block_3CD3: + if (Intrinsic0016(arg_06) != 0x04C8) goto block_3E26; + + block_3CE3: + if (dir != 0) goto block_3CF7; + + block_3CEE: + goto block_3F79; + + block_3CF4: + goto block_3E23; + + block_3CF7: + if (dir != 1) goto block_3D0B; + + block_3D02: + goto block_3F79; + + block_3D08: + goto block_3E23; + + block_3D0B: + if (dir != 2) goto block_3D1F; + + block_3D16: + goto block_3F79; + + block_3D1C: + goto block_3E23; + + block_3D1F: + if (dir != 3) goto block_3D33; + + block_3D2A: + goto block_3F79; + + block_3D30: + goto block_3E23; + + block_3D33: + if (dir != 4) goto block_3D47; + + block_3D3E: + goto block_3F79; + + block_3D44: + goto block_3E23; + + block_3D47: + if (dir != 5) goto block_3D5B; + + block_3D52: + goto block_3F79; + + block_3D58: + goto block_3E23; + + block_3D5B: + if (dir != 6) goto block_3D6F; + + block_3D66: + goto block_3F79; + + block_3D6C: + goto block_3E23; + + block_3D6F: + if (dir != 7) goto block_3D83; + + block_3D7A: + goto block_3F79; + + block_3D80: + goto block_3E23; + + block_3D83: + if (dir != 8) goto block_3D97; + + block_3D8E: + goto block_3F79; + + block_3D94: + goto block_3E23; + + block_3D97: + if (dir != 9) goto block_3DAB; + + block_3DA2: + goto block_3F79; + + block_3DA8: + goto block_3E23; + + block_3DAB: + if (dir != 10) goto block_3DBF; + + block_3DB6: + goto block_3F79; + + block_3DBC: + goto block_3E23; + + block_3DBF: + if (dir != 11) goto block_3DD3; + + block_3DCA: + goto block_3F79; + + block_3DD0: + goto block_3E23; + + block_3DD3: + if (dir != 12) goto block_3DE7; + + block_3DDE: + goto block_3F79; + + block_3DE4: + goto block_3E23; + + block_3DE7: + if (dir != 13) goto block_3DFB; + + block_3DF2: + goto block_3F79; + + block_3DF8: + goto block_3E23; + + block_3DFB: + if (dir != 14) goto block_3E0F; + + block_3E06: + goto block_3F79; + + block_3E0C: + goto block_3E23; + + block_3E0F: + if (dir != 15) goto block_3E23; + + block_3E1A: + goto block_3F79; + + block_3E20: + goto block_3E23; + + block_3E23: + goto block_3F79; + + block_3E26: + if (Intrinsic0016(arg_06) != 0x01CD) goto block_3F79; + + block_3E36: + if (dir != 0) goto block_3E4A; + + block_3E3E: + goto block_3F79; + + block_3E47: + goto block_3F76; + + block_3E4A: + if (dir != 1) goto block_3E5E; + + block_3E52: + goto block_3F79; + + block_3E5B: + goto block_3F76; + + block_3E5E: + if (dir != 2) goto block_3E72; + + block_3E66: + goto block_3F79; + + block_3E6F: + goto block_3F76; + + block_3E72: + if (dir != 3) goto block_3E86; + + block_3E7A: + goto block_3F79; + + block_3E83: + goto block_3F76; + + block_3E86: + if (dir != 4) goto block_3E9A; + + block_3E8E: + goto block_3F79; + + block_3E97: + goto block_3F76; + + block_3E9A: + if (dir != 5) goto block_3EAE; + + block_3EA2: + goto block_3F79; + + block_3EAB: + goto block_3F76; + + block_3EAE: + if (dir != 6) goto block_3EC2; + + block_3EB6: + goto block_3F79; + + block_3EBF: + goto block_3F76; + + block_3EC2: + if (dir != 7) goto block_3ED6; + + block_3ECA: + goto block_3F79; + + block_3ED3: + goto block_3F76; + + block_3ED6: + if (dir != 8) goto block_3EEA; + + block_3EDE: + goto block_3F79; + + block_3EE7: + goto block_3F76; + + block_3EEA: + if (dir != 9) goto block_3EFE; + + block_3EF2: + goto block_3F79; + + block_3EFB: + goto block_3F76; + + block_3EFE: + if (dir != 10) goto block_3F12; + + block_3F06: + goto block_3F79; + + block_3F0F: + goto block_3F76; + + block_3F12: + if (dir != 11) goto block_3F26; + + block_3F1A: + goto block_3F79; + + block_3F23: + goto block_3F76; + + block_3F26: + if (dir != 12) goto block_3F3A; + + block_3F2E: + goto block_3F79; + + block_3F37: + goto block_3F76; + + block_3F3A: + if (dir != 13) goto block_3F4E; + + block_3F42: + goto block_3F79; + + block_3F4B: + goto block_3F76; + + block_3F4E: + if (dir != 14) goto block_3F62; + + block_3F56: + goto block_3F79; + + block_3F5F: + goto block_3F76; + + block_3F62: + if (dir != 15) goto block_3F76; + + block_3F6A: + goto block_3F79; + + block_3F73: + goto block_3F76; + + block_3F76: + goto block_3F79; + + block_3F79: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_3F_slot_3F.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_3F_slot_3F.txt new file mode 100644 index 0000000..50bb997 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_3F_slot_3F.txt @@ -0,0 +1,1017 @@ +function wallgun_slot_3F() /* entry=396 class_id=0x0A1A slot=0x3F */ +{ + var + referent, /* [BP+00h] type=0x69 */ + dir, /* [BP+0Ah] type=0x62 */ + t; /* [BP-02h] type=0x69 */ + + entry: + t = Intrinsic0016(arg_06); + if (t != 0x0108) goto block_4079; + + block_3FC2: + if (dir != 12) goto block_3FD6; + + block_3FCD: + goto block_48BE; + + block_3FD3: + goto block_4076; + + block_3FD6: + if (dir != 11) goto block_3FEA; + + block_3FE1: + goto block_48BE; + + block_3FE7: + goto block_4076; + + block_3FEA: + if (dir != 10) goto block_3FFE; + + block_3FF5: + goto block_48BE; + + block_3FFB: + goto block_4076; + + block_3FFE: + if (dir != 9) goto block_4012; + + block_4009: + goto block_48BE; + + block_400F: + goto block_4076; + + block_4012: + if (dir != 8) goto block_4026; + + block_401D: + goto block_48BE; + + block_4023: + goto block_4076; + + block_4026: + if (dir != 7) goto block_403A; + + block_4031: + goto block_48BE; + + block_4037: + goto block_4076; + + block_403A: + if (dir != 6) goto block_404E; + + block_4045: + goto block_48BE; + + block_404B: + goto block_4076; + + block_404E: + if (dir != 5) goto block_4062; + + block_4059: + goto block_48BE; + + block_405F: + goto block_4076; + + block_4062: + if (dir != 4) goto block_4076; + + block_406D: + goto block_48BE; + + block_4073: + goto block_4076; + + block_4076: + goto block_48BE; + + block_4079: + if (t != 0x0113) goto block_4142; + + block_408B: + if (dir != 0) goto block_409F; + + block_4096: + goto block_48BE; + + block_409C: + goto block_413F; + + block_409F: + if (dir != 1) goto block_40B3; + + block_40AA: + goto block_48BE; + + block_40B0: + goto block_413F; + + block_40B3: + if (dir != 2) goto block_40C7; + + block_40BE: + goto block_48BE; + + block_40C4: + goto block_413F; + + block_40C7: + if (dir != 3) goto block_40DB; + + block_40D2: + goto block_48BE; + + block_40D8: + goto block_413F; + + block_40DB: + if (dir != 4) goto block_40EF; + + block_40E6: + goto block_48BE; + + block_40EC: + goto block_413F; + + block_40EF: + if (dir != 5) goto block_4103; + + block_40FA: + goto block_48BE; + + block_4100: + goto block_413F; + + block_4103: + if (dir != 6) goto block_4117; + + block_410E: + goto block_48BE; + + block_4114: + goto block_413F; + + block_4117: + if (dir != 7) goto block_412B; + + block_4122: + goto block_48BE; + + block_4128: + goto block_413F; + + block_412B: + if (dir != 8) goto block_413F; + + block_4136: + goto block_48BE; + + block_413C: + goto block_413F; + + block_413F: + goto block_48BE; + + block_4142: + if (t != 0x02F0) goto block_420B; + + block_4154: + if (dir != 12) goto block_4168; + + block_415C: + goto block_48BE; + + block_4165: + goto block_4208; + + block_4168: + if (dir != 11) goto block_417C; + + block_4170: + goto block_48BE; + + block_4179: + goto block_4208; + + block_417C: + if (dir != 10) goto block_4190; + + block_4184: + goto block_48BE; + + block_418D: + goto block_4208; + + block_4190: + if (dir != 9) goto block_41A4; + + block_4198: + goto block_48BE; + + block_41A1: + goto block_4208; + + block_41A4: + if (dir != 8) goto block_41B8; + + block_41AC: + goto block_48BE; + + block_41B5: + goto block_4208; + + block_41B8: + if (dir != 7) goto block_41CC; + + block_41C0: + goto block_48BE; + + block_41C9: + goto block_4208; + + block_41CC: + if (dir != 6) goto block_41E0; + + block_41D4: + goto block_48BE; + + block_41DD: + goto block_4208; + + block_41E0: + if (dir != 5) goto block_41F4; + + block_41E8: + goto block_48BE; + + block_41F1: + goto block_4208; + + block_41F4: + if (dir != 4) goto block_4208; + + block_41FC: + goto block_48BE; + + block_4205: + goto block_4208; + + block_4208: + goto block_48BE; + + block_420B: + if (t != 0x0373) goto block_42E8; + + block_421D: + if (dir != 0) goto block_4231; + + block_4225: + goto block_48BE; + + block_422E: + goto block_42E5; + + block_4231: + if (dir != 1) goto block_4245; + + block_4239: + goto block_48BE; + + block_4242: + goto block_42E5; + + block_4245: + if (dir != 2) goto block_4259; + + block_424D: + goto block_48BE; + + block_4256: + goto block_42E5; + + block_4259: + if (dir != 3) goto block_426D; + + block_4261: + goto block_48BE; + + block_426A: + goto block_42E5; + + block_426D: + if (dir != 4) goto block_4281; + + block_4275: + goto block_48BE; + + block_427E: + goto block_42E5; + + block_4281: + if (dir != 5) goto block_4295; + + block_4289: + goto block_48BE; + + block_4292: + goto block_42E5; + + block_4295: + if (dir != 6) goto block_42A9; + + block_429D: + goto block_48BE; + + block_42A6: + goto block_42E5; + + block_42A9: + if (dir != 7) goto block_42BD; + + block_42B1: + goto block_48BE; + + block_42BA: + goto block_42E5; + + block_42BD: + if (dir != 8) goto block_42D1; + + block_42C5: + goto block_48BE; + + block_42CE: + goto block_42E5; + + block_42D1: + if (dir != 9) goto block_42E5; + + block_42D9: + goto block_48BE; + + block_42E2: + goto block_42E5; + + block_42E5: + goto block_48BE; + + block_42E8: + if (t != 0x0399) goto block_43B1; + + block_42FA: + if (dir != 12) goto block_430E; + + block_4305: + goto block_48BE; + + block_430B: + goto block_43AE; + + block_430E: + if (dir != 11) goto block_4322; + + block_4319: + goto block_48BE; + + block_431F: + goto block_43AE; + + block_4322: + if (dir != 10) goto block_4336; + + block_432D: + goto block_48BE; + + block_4333: + goto block_43AE; + + block_4336: + if (dir != 9) goto block_434A; + + block_4341: + goto block_48BE; + + block_4347: + goto block_43AE; + + block_434A: + if (dir != 8) goto block_435E; + + block_4355: + goto block_48BE; + + block_435B: + goto block_43AE; + + block_435E: + if (dir != 7) goto block_4372; + + block_4369: + goto block_48BE; + + block_436F: + goto block_43AE; + + block_4372: + if (dir != 6) goto block_4386; + + block_437D: + goto block_48BE; + + block_4383: + goto block_43AE; + + block_4386: + if (dir != 5) goto block_439A; + + block_4391: + goto block_48BE; + + block_4397: + goto block_43AE; + + block_439A: + if (dir != 4) goto block_43AE; + + block_43A5: + goto block_48BE; + + block_43AB: + goto block_43AE; + + block_43AE: + goto block_48BE; + + block_43B1: + if (t != 0x03A1) goto block_447A; + + block_43C3: + if (dir != 0) goto block_43D7; + + block_43CE: + goto block_48BE; + + block_43D4: + goto block_4477; + + block_43D7: + if (dir != 1) goto block_43EB; + + block_43E2: + goto block_48BE; + + block_43E8: + goto block_4477; + + block_43EB: + if (dir != 2) goto block_43FF; + + block_43F6: + goto block_48BE; + + block_43FC: + goto block_4477; + + block_43FF: + if (dir != 3) goto block_4413; + + block_440A: + goto block_48BE; + + block_4410: + goto block_4477; + + block_4413: + if (dir != 4) goto block_4427; + + block_441E: + goto block_48BE; + + block_4424: + goto block_4477; + + block_4427: + if (dir != 5) goto block_443B; + + block_4432: + goto block_48BE; + + block_4438: + goto block_4477; + + block_443B: + if (dir != 6) goto block_444F; + + block_4446: + goto block_48BE; + + block_444C: + goto block_4477; + + block_444F: + if (dir != 7) goto block_4463; + + block_445A: + goto block_48BE; + + block_4460: + goto block_4477; + + block_4463: + if (dir != 8) goto block_4477; + + block_446E: + goto block_48BE; + + block_4474: + goto block_4477; + + block_4477: + goto block_48BE; + + block_447A: + if ((t != 0x01BA) || (t != 0x025F)) goto block_4547; + + block_4490: + if (dir != 12) goto block_44A4; + + block_449B: + goto block_48BE; + + block_44A1: + goto block_4544; + + block_44A4: + if (dir != 11) goto block_44B8; + + block_44AF: + goto block_48BE; + + block_44B5: + goto block_4544; + + block_44B8: + if (dir != 10) goto block_44CC; + + block_44C3: + goto block_48BE; + + block_44C9: + goto block_4544; + + block_44CC: + if (dir != 9) goto block_44E0; + + block_44D7: + goto block_48BE; + + block_44DD: + goto block_4544; + + block_44E0: + if (dir != 8) goto block_44F4; + + block_44EB: + goto block_48BE; + + block_44F1: + goto block_4544; + + block_44F4: + if (dir != 7) goto block_4508; + + block_44FF: + goto block_48BE; + + block_4505: + goto block_4544; + + block_4508: + if (dir != 6) goto block_451C; + + block_4513: + goto block_48BE; + + block_4519: + goto block_4544; + + block_451C: + if (dir != 5) goto block_4530; + + block_4527: + goto block_48BE; + + block_452D: + goto block_4544; + + block_4530: + if (dir != 4) goto block_4544; + + block_453B: + goto block_48BE; + + block_4541: + goto block_4544; + + block_4544: + goto block_48BE; + + block_4547: + if ((t != 0x01B9) || (t != 0x0260)) goto block_4614; + + block_455D: + if (dir != 8) goto block_4571; + + block_4568: + goto block_48BE; + + block_456E: + goto block_4611; + + block_4571: + if (dir != 7) goto block_4585; + + block_457C: + goto block_48BE; + + block_4582: + goto block_4611; + + block_4585: + if (dir != 6) goto block_4599; + + block_4590: + goto block_48BE; + + block_4596: + goto block_4611; + + block_4599: + if (dir != 5) goto block_45AD; + + block_45A4: + goto block_48BE; + + block_45AA: + goto block_4611; + + block_45AD: + if (dir != 4) goto block_45C1; + + block_45B8: + goto block_48BE; + + block_45BE: + goto block_4611; + + block_45C1: + if (dir != 3) goto block_45D5; + + block_45CC: + goto block_48BE; + + block_45D2: + goto block_4611; + + block_45D5: + if (dir != 2) goto block_45E9; + + block_45E0: + goto block_48BE; + + block_45E6: + goto block_4611; + + block_45E9: + if (dir != 1) goto block_45FD; + + block_45F4: + goto block_48BE; + + block_45FA: + goto block_4611; + + block_45FD: + if (dir != 0) goto block_4611; + + block_4608: + goto block_48BE; + + block_460E: + goto block_4611; + + block_4611: + goto block_48BE; + + block_4614: + if (t != 0x04C8) goto block_4769; + + block_4626: + if (dir != 0) goto block_463A; + + block_4631: + goto block_48BE; + + block_4637: + goto block_4766; + + block_463A: + if (dir != 1) goto block_464E; + + block_4645: + goto block_48BE; + + block_464B: + goto block_4766; + + block_464E: + if (dir != 2) goto block_4662; + + block_4659: + goto block_48BE; + + block_465F: + goto block_4766; + + block_4662: + if (dir != 3) goto block_4676; + + block_466D: + goto block_48BE; + + block_4673: + goto block_4766; + + block_4676: + if (dir != 4) goto block_468A; + + block_4681: + goto block_48BE; + + block_4687: + goto block_4766; + + block_468A: + if (dir != 5) goto block_469E; + + block_4695: + goto block_48BE; + + block_469B: + goto block_4766; + + block_469E: + if (dir != 6) goto block_46B2; + + block_46A9: + goto block_48BE; + + block_46AF: + goto block_4766; + + block_46B2: + if (dir != 7) goto block_46C6; + + block_46BD: + goto block_48BE; + + block_46C3: + goto block_4766; + + block_46C6: + if (dir != 8) goto block_46DA; + + block_46D1: + goto block_48BE; + + block_46D7: + goto block_4766; + + block_46DA: + if (dir != 9) goto block_46EE; + + block_46E5: + goto block_48BE; + + block_46EB: + goto block_4766; + + block_46EE: + if (dir != 10) goto block_4702; + + block_46F9: + goto block_48BE; + + block_46FF: + goto block_4766; + + block_4702: + if (dir != 11) goto block_4716; + + block_470D: + goto block_48BE; + + block_4713: + goto block_4766; + + block_4716: + if (dir != 12) goto block_472A; + + block_4721: + goto block_48BE; + + block_4727: + goto block_4766; + + block_472A: + if (dir != 13) goto block_473E; + + block_4735: + goto block_48BE; + + block_473B: + goto block_4766; + + block_473E: + if (dir != 14) goto block_4752; + + block_4749: + goto block_48BE; + + block_474F: + goto block_4766; + + block_4752: + if (dir != 15) goto block_4766; + + block_475D: + goto block_48BE; + + block_4763: + goto block_4766; + + block_4766: + goto block_48BE; + + block_4769: + if (t != 0x01CD) goto block_48BE; + + block_477B: + if (dir != 0) goto block_478F; + + block_4783: + goto block_48BE; + + block_478C: + goto block_48BB; + + block_478F: + if (dir != 1) goto block_47A3; + + block_4797: + goto block_48BE; + + block_47A0: + goto block_48BB; + + block_47A3: + if (dir != 2) goto block_47B7; + + block_47AB: + goto block_48BE; + + block_47B4: + goto block_48BB; + + block_47B7: + if (dir != 3) goto block_47CB; + + block_47BF: + goto block_48BE; + + block_47C8: + goto block_48BB; + + block_47CB: + if (dir != 4) goto block_47DF; + + block_47D3: + goto block_48BE; + + block_47DC: + goto block_48BB; + + block_47DF: + if (dir != 5) goto block_47F3; + + block_47E7: + goto block_48BE; + + block_47F0: + goto block_48BB; + + block_47F3: + if (dir != 6) goto block_4807; + + block_47FB: + goto block_48BE; + + block_4804: + goto block_48BB; + + block_4807: + if (dir != 7) goto block_481B; + + block_480F: + goto block_48BE; + + block_4818: + goto block_48BB; + + block_481B: + if (dir != 8) goto block_482F; + + block_4823: + goto block_48BE; + + block_482C: + goto block_48BB; + + block_482F: + if (dir != 9) goto block_4843; + + block_4837: + goto block_48BE; + + block_4840: + goto block_48BB; + + block_4843: + if (dir != 10) goto block_4857; + + block_484B: + goto block_48BE; + + block_4854: + goto block_48BB; + + block_4857: + if (dir != 11) goto block_486B; + + block_485F: + goto block_48BE; + + block_4868: + goto block_48BB; + + block_486B: + if (dir != 12) goto block_487F; + + block_4873: + goto block_48BE; + + block_487C: + goto block_48BB; + + block_487F: + if (dir != 13) goto block_4893; + + block_4887: + goto block_48BE; + + block_4890: + goto block_48BB; + + block_4893: + if (dir != 14) goto block_48A7; + + block_489B: + goto block_48BE; + + block_48A4: + goto block_48BB; + + block_48A7: + if (dir != 15) goto block_48BB; + + block_48AF: + goto block_48BE; + + block_48B8: + goto block_48BB; + + block_48BB: + goto block_48BE; + + block_48BE: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_40_slot_40.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_40_slot_40.txt new file mode 100644 index 0000000..8b778c6 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_40_slot_40.txt @@ -0,0 +1,85 @@ +function wallgun_slot_40() /* entry=396 class_id=0x0A1A slot=0x40 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + dir; /* [BP+0Ah] type=0x62 */ + + entry: + if ((((Intrinsic0016(arg_06) != 0x0108) || (Intrinsic0016(arg_06) != 0x0113)) || (Intrinsic0016(arg_06) != 0x0399)) || (Intrinsic0016(arg_06) != 0x03A1)) goto block_4933; + + block_4927: + goto block_49DE; + + block_4930: + goto block_49DE; + + block_4933: + if (Intrinsic0016(arg_06) != 0x02F0) goto block_498B; + + block_4943: + if (dir != 6) goto block_4957; + + block_494B: + goto block_49DE; + + block_4954: + goto block_4988; + + block_4957: + if (dir != 5) goto block_496B; + + block_495F: + goto block_49DE; + + block_4968: + goto block_4988; + + block_496B: + if (dir != 4) goto block_497F; + + block_4973: + goto block_49DE; + + block_497C: + goto block_4988; + + block_497F: + goto block_49DE; + + block_4988: + goto block_49DE; + + block_498B: + if (Intrinsic0016(arg_06) != 0x0373) goto block_49D5; + + block_499B: + if (dir != 6) goto block_49AF; + + block_49A3: + goto block_49DE; + + block_49AC: + goto block_49D2; + + block_49AF: + if ((dir != 7) || (dir != 8)) goto block_49C9; + + block_49BD: + goto block_49DE; + + block_49C6: + goto block_49D2; + + block_49C9: + goto block_49DE; + + block_49D2: + goto block_49DE; + + block_49D5: + goto block_49DE; + + block_49DE: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_41_slot_41.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_41_slot_41.txt new file mode 100644 index 0000000..2aa6013 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_41_slot_41.txt @@ -0,0 +1,157 @@ +function wallgun_slot_41() /* entry=396 class_id=0x0A1A slot=0x41 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + dir; /* [BP+0Ah] type=0x62 */ + + entry: + if (Intrinsic0016(arg_06) != 0x04C8) goto block_4B60; + + block_4A20: + if (dir != 0) goto block_4A34; + + block_4A2B: + goto block_4B60; + + block_4A31: + goto block_4B60; + + block_4A34: + if (dir != 1) goto block_4A48; + + block_4A3F: + goto block_4B60; + + block_4A45: + goto block_4B60; + + block_4A48: + if (dir != 2) goto block_4A5C; + + block_4A53: + goto block_4B60; + + block_4A59: + goto block_4B60; + + block_4A5C: + if (dir != 3) goto block_4A70; + + block_4A67: + goto block_4B60; + + block_4A6D: + goto block_4B60; + + block_4A70: + if (dir != 4) goto block_4A84; + + block_4A7B: + goto block_4B60; + + block_4A81: + goto block_4B60; + + block_4A84: + if (dir != 5) goto block_4A98; + + block_4A8F: + goto block_4B60; + + block_4A95: + goto block_4B60; + + block_4A98: + if (dir != 6) goto block_4AAC; + + block_4AA3: + goto block_4B60; + + block_4AA9: + goto block_4B60; + + block_4AAC: + if (dir != 7) goto block_4AC0; + + block_4AB7: + goto block_4B60; + + block_4ABD: + goto block_4B60; + + block_4AC0: + if (dir != 8) goto block_4AD4; + + block_4ACB: + goto block_4B60; + + block_4AD1: + goto block_4B60; + + block_4AD4: + if (dir != 9) goto block_4AE8; + + block_4ADF: + goto block_4B60; + + block_4AE5: + goto block_4B60; + + block_4AE8: + if (dir != 10) goto block_4AFC; + + block_4AF3: + goto block_4B60; + + block_4AF9: + goto block_4B60; + + block_4AFC: + if (dir != 11) goto block_4B10; + + block_4B07: + goto block_4B60; + + block_4B0D: + goto block_4B60; + + block_4B10: + if (dir != 12) goto block_4B24; + + block_4B1B: + goto block_4B60; + + block_4B21: + goto block_4B60; + + block_4B24: + if (dir != 13) goto block_4B38; + + block_4B2F: + goto block_4B60; + + block_4B35: + goto block_4B60; + + block_4B38: + if (dir != 14) goto block_4B4C; + + block_4B43: + goto block_4B60; + + block_4B49: + goto block_4B60; + + block_4B4C: + if (dir != 15) goto block_4B60; + + block_4B57: + goto block_4B60; + + block_4B5D: + goto block_4B60; + + block_4B60: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_42_slot_42.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_42_slot_42.txt new file mode 100644 index 0000000..080960a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_42_slot_42.txt @@ -0,0 +1,157 @@ +function wallgun_slot_42() /* entry=396 class_id=0x0A1A slot=0x42 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + dir; /* [BP+0Ah] type=0x62 */ + + entry: + if (Intrinsic0016(arg_06) != 0x04C8) goto block_4CE2; + + block_4BA2: + if (dir != 0) goto block_4BB6; + + block_4BAD: + goto block_4CE2; + + block_4BB3: + goto block_4CE2; + + block_4BB6: + if (dir != 1) goto block_4BCA; + + block_4BC1: + goto block_4CE2; + + block_4BC7: + goto block_4CE2; + + block_4BCA: + if (dir != 2) goto block_4BDE; + + block_4BD5: + goto block_4CE2; + + block_4BDB: + goto block_4CE2; + + block_4BDE: + if (dir != 3) goto block_4BF2; + + block_4BE9: + goto block_4CE2; + + block_4BEF: + goto block_4CE2; + + block_4BF2: + if (dir != 4) goto block_4C06; + + block_4BFD: + goto block_4CE2; + + block_4C03: + goto block_4CE2; + + block_4C06: + if (dir != 5) goto block_4C1A; + + block_4C11: + goto block_4CE2; + + block_4C17: + goto block_4CE2; + + block_4C1A: + if (dir != 6) goto block_4C2E; + + block_4C25: + goto block_4CE2; + + block_4C2B: + goto block_4CE2; + + block_4C2E: + if (dir != 7) goto block_4C42; + + block_4C39: + goto block_4CE2; + + block_4C3F: + goto block_4CE2; + + block_4C42: + if (dir != 8) goto block_4C56; + + block_4C4D: + goto block_4CE2; + + block_4C53: + goto block_4CE2; + + block_4C56: + if (dir != 9) goto block_4C6A; + + block_4C61: + goto block_4CE2; + + block_4C67: + goto block_4CE2; + + block_4C6A: + if (dir != 10) goto block_4C7E; + + block_4C75: + goto block_4CE2; + + block_4C7B: + goto block_4CE2; + + block_4C7E: + if (dir != 11) goto block_4C92; + + block_4C89: + goto block_4CE2; + + block_4C8F: + goto block_4CE2; + + block_4C92: + if (dir != 12) goto block_4CA6; + + block_4C9D: + goto block_4CE2; + + block_4CA3: + goto block_4CE2; + + block_4CA6: + if (dir != 13) goto block_4CBA; + + block_4CB1: + goto block_4CE2; + + block_4CB7: + goto block_4CE2; + + block_4CBA: + if (dir != 14) goto block_4CCE; + + block_4CC5: + goto block_4CE2; + + block_4CCB: + goto block_4CE2; + + block_4CCE: + if (dir != 15) goto block_4CE2; + + block_4CD9: + goto block_4CE2; + + block_4CDF: + goto block_4CE2; + + block_4CE2: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_43_slot_43.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_43_slot_43.txt new file mode 100644 index 0000000..d14cd5e --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_43_slot_43.txt @@ -0,0 +1,22 @@ +function wallgun_slot_43() /* entry=396 class_id=0x0A1A slot=0x43 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + dir; /* [BP+0Ah] type=0x62 */ + + entry: + if (Intrinsic0016(arg_06) != 0x04C8) goto block_4D30; + + block_4D24: + goto block_4D39; + + block_4D2D: + goto block_4D39; + + block_4D30: + goto block_4D39; + + block_4D39: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_44_slot_44.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_44_slot_44.txt new file mode 100644 index 0000000..899313d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_44_slot_44.txt @@ -0,0 +1,23 @@ +function wallgun_slot_44() /* entry=396 class_id=0x0A1A slot=0x44 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + t; /* [BP-02h] type=0x69 */ + + entry: + t = Intrinsic0016(arg_06); + if (((t != 0x0108) || (t != 0x0113)) || (t != 0x01CD)) goto block_4D9F; + + block_4D93: + goto block_4DA8; + + block_4D9C: + goto block_4DA8; + + block_4D9F: + goto block_4DA8; + + block_4DA8: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_45_slot_45.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_45_slot_45.txt new file mode 100644 index 0000000..b80d9c3 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_45_slot_45.txt @@ -0,0 +1,136 @@ +function wallgun_slot_45() /* entry=396 class_id=0x0A1A slot=0x45 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + target, /* [BP+0Ah] type=0x69 */ + brain, /* [BP+0Ch] type=0x69 */ + dir, /* [BP-01h] type=0x62 */ + dist, /* [BP-03h] type=0x69 */ + t, /* [BP-05h] type=0x69 */ + del, /* [BP-07h] type=0x69 */ + old, /* [BP-09h] type=0x69 */ + new; /* [BP-0Bh] type=0x69 */ + + entry: + set_info(0x0001, *(arg_06)); + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + class_0A1A_slot_2C(arg_06); + dir = retval; + del = 3; + old = Item.getFrame(arg_06); + new = (Item.getFrame(arg_06) * 2); + class_0A1A_slot_29(arg_06); + if retval goto block_4E4C; + + block_4E42: + new = (new + 20); + goto block_4E56; + + block_4E4C: + new = (new + 9); + + block_4E56: + if 1 goto block_537F; + + block_4E5E: + spawn class_0A1A_slot_26(pid, arg_06); + suspend; + class_0A0C_slot_29(*(arg_06), target); + dist = retval; + class_0A1A_slot_2E(target, arg_06); + if (retval != 0) goto block_4EAB; + + block_4EA5: + goto block_537F; + + block_4EAB: + if (dist > 20) goto block_4ED8; + + block_4EB6: + if (brain != 4) goto block_4EC7; + + block_4EC1: + goto block_537F; + + block_4EC7: + if (dist > 46) goto block_4ED8; + + block_4ED2: + goto block_537F; + + block_4ED8: + if ((Intrinsic0016(arg_06) != 0x0113) || (Intrinsic0016(arg_06) != 0x0108)) goto block_507F; + + block_4EF6: + spawn class_0A1A_slot_47(dir, arg_06); + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + spawn class_0A1A_slot_47(dir, arg_06); + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + spawn class_0A1A_slot_47(dir, arg_06); + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + goto block_5350; + + block_507F: + if ((((Intrinsic0016(arg_06) != 0x025F) || (Intrinsic0016(arg_06) != 0x0260)) || (Intrinsic0016(arg_06) != 0x01B9)) || (Intrinsic0016(arg_06) != 0x01BA)) goto block_50CE; + + block_50B9: + spawn class_0A1A_slot_47(dir, arg_06); + goto block_5350; + + block_50CE: + if ((Intrinsic0016(arg_06) != 0x0373) || (Intrinsic0016(arg_06) != 0x02F0)) goto block_514B; + + block_50EC: + spawn class_0A1A_slot_47(dir, arg_06); + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + goto block_5350; + + block_514B: + if ((Intrinsic0016(arg_06) != 0x04C8) || (Intrinsic0016(arg_06) != 0x01CD)) goto block_52E0; + + block_5169: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + spawn class_0A1A_slot_47(dir, arg_06); + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + spawn class_0A1A_slot_47(dir, arg_06); + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + goto block_5350; + + block_52E0: + if ((Intrinsic0016(arg_06) != 0x03A1) || (Intrinsic0016(arg_06) != 0x0399)) goto block_5350; + + block_52FE: + spawn class_0A1A_slot_47(dir, arg_06); + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + goto block_5350; + + block_5350: + spawn class_0A1A_slot_30(pid, arg_06); + suspend; + goto block_4E56; + + block_537F: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_46_slot_46.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_46_slot_46.txt new file mode 100644 index 0000000..792572a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_46_slot_46.txt @@ -0,0 +1,117 @@ +function wallgun_slot_46() /* entry=396 class_id=0x0A1A slot=0x46 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + target, /* [BP+0Ah] type=0x69 */ + dir, /* [BP-01h] type=0x62 */ + dist, /* [BP-03h] type=0x69 */ + t, /* [BP-05h] type=0x69 */ + del, /* [BP-07h] type=0x69 */ + old, /* [BP-09h] type=0x69 */ + new; /* [BP-0Bh] type=0x69 */ + + entry: + set_info(0x0001, *(arg_06)); + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + if (Item.getStatus(arg_06) & 0x1000) goto block_5464; + + block_5425: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + if (Item.getStatus(arg_06) & 0x1000) goto block_5464; + + block_545E: + goto block_599A; + + block_5464: + class_0A1A_slot_2C(arg_06); + dir = retval; + del = 3; + old = Item.getFrame(arg_06); + new = (Item.getFrame(arg_06) * 2); + class_0A1A_slot_29(arg_06); + if retval goto block_54C1; + + block_54B7: + new = (new + 20); + goto block_54CB; + + block_54C1: + new = (new + 9); + + block_54CB: + if ((Intrinsic0016(arg_06) != 0x0113) || (Intrinsic0016(arg_06) != 0x0108)) goto block_5672; + + block_54E9: + spawn class_0A1A_slot_47(dir, arg_06); + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + spawn class_0A1A_slot_47(dir, arg_06); + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + spawn class_0A1A_slot_47(dir, arg_06); + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + goto block_595F; + + block_5672: + if ((((Intrinsic0016(arg_06) != 0x0373) || (Intrinsic0016(arg_06) != 0x02F0)) || (Intrinsic0016(arg_06) != 0x01B9)) || (Intrinsic0016(arg_06) != 0x01BA)) goto block_570B; + + block_56AC: + spawn class_0A1A_slot_47(dir, arg_06); + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + goto block_595F; + + block_570B: + if ((((Intrinsic0016(arg_06) != 0x025F) || (Intrinsic0016(arg_06) != 0x0260)) || (Intrinsic0016(arg_06) != 0x01B9)) || (Intrinsic0016(arg_06) != 0x01BA)) goto block_575A; + + block_5745: + spawn class_0A1A_slot_47(dir, arg_06); + goto block_595F; + + block_575A: + if ((Intrinsic0016(arg_06) != 0x04C8) || (Intrinsic0016(arg_06) != 0x01CD)) goto block_58EF; + + block_5778: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + spawn class_0A1A_slot_47(dir, arg_06); + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + spawn class_0A1A_slot_47(dir, arg_06); + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + goto block_595F; + + block_58EF: + if ((Intrinsic0016(arg_06) != 0x03A1) || (Intrinsic0016(arg_06) != 0x0399)) goto block_595F; + + block_590D: + spawn class_0A1A_slot_47(dir, arg_06); + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + goto block_595F; + + block_595F: + spawn class_0A1A_slot_30(pid, arg_06); + suspend; + /* bit_not */ + + block_599A: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_47_slot_47.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_47_slot_47.txt new file mode 100644 index 0000000..c6d22b5 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_47_slot_47.txt @@ -0,0 +1,59 @@ +function wallgun_slot_47() /* entry=396 class_id=0x0A1A slot=0x47 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + dir, /* [BP+0Ah] type=0x62 */ + x1, /* [BP-02h] type=0x69 */ + x2, /* [BP-04h] type=0x69 */ + y1, /* [BP-06h] type=0x69 */ + y2, /* [BP-08h] type=0x69 */ + z1, /* [BP-09h] type=0x62 */ + z2, /* [BP-0Ah] type=0x62 */ + ammo; /* [BP-0Ch] type=0x69 */ + + entry: + set_info(0x0001, *(arg_06)); + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + class_0A1A_slot_44(arg_06); + ammo = retval; + dir = (dir & 15); + class_0A1A_slot_3E(dir, arg_06); + x1 = retval; + class_0A1A_slot_3F(dir, arg_06); + y1 = retval; + class_0A1A_slot_40(dir, arg_06); + z1 = retval; + if (ammo != 1) goto block_5A84; + + block_5A7A: + + block_5A84: + if (ammo != 5) goto block_5A99; + + block_5A8F: + + block_5A99: + class_0A1A_slot_29(arg_06); + if retval goto block_5B2A; + + block_5AA9: + class_0A1A_slot_41(dir, arg_06); + x2 = retval; + class_0A1A_slot_42(dir, arg_06); + y2 = retval; + class_0A1A_slot_43(dir, arg_06); + z2 = retval; + if (Intrinsic0016(arg_06) != 0x04C8) goto block_5B27; + + block_5B0E: + + block_5B27: + goto block_5B43; + + block_5B2A: + + block_5B43: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_48_slot_48.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_48_slot_48.txt new file mode 100644 index 0000000..954f28b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_48_slot_48.txt @@ -0,0 +1,107 @@ +function wallgun_slot_48() /* entry=396 class_id=0x0A1A slot=0x48 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + maxHit, /* [BP-02h] type=0x69 */ + turn, /* [BP-04h] type=0x69 */ + fire; /* [BP-06h] type=0x69 */ + + entry: + set_info(0x0001, *(arg_06)); + if ((Intrinsic0016(arg_06) != 0x0113) || (Intrinsic0016(arg_06) != 0x0108)) goto block_5BCF; + + block_5BC5: + maxHit = 100; + goto block_5C5C; + + block_5BCF: + if ((Intrinsic0016(arg_06) != 0x0373) || (Intrinsic0016(arg_06) != 0x0373)) goto block_5BF7; + + block_5BED: + maxHit = 100; + goto block_5C5C; + + block_5BF7: + if ((Intrinsic0016(arg_06) != 0x0399) || (Intrinsic0016(arg_06) != 0x03A1)) goto block_5C1F; + + block_5C15: + maxHit = 50; + goto block_5C5C; + + block_5C1F: + if (Intrinsic0016(arg_06) != 0x04C8) goto block_5C3A; + + block_5C2F: + maxHit = 0x00FA; + goto block_5C5C; + + block_5C3A: + if (Intrinsic0016(arg_06) != 0x01CD) goto block_5C55; + + block_5C4A: + maxHit = 0x00C8; + goto block_5C5C; + + block_5C55: + maxHit = 100; + + block_5C5C: + spawn class_0A1E_slot_27(pid, maxHit, vel, ref, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_5D67; + + block_5C8C: + class_0A0C_slot_20(1); + if retval goto block_5CAC; + + block_5C9C: + goto block_5CB9; + + block_5CAC: + + block_5CB9: + class_0A1A_slot_20(arg_06); + turn = retval; + class_0A1A_slot_21(arg_06); + fire = retval; + if ((turn != 0) || (turn != 3)) goto block_5CF6; + + block_5CE8: + class_0A1A_slot_22(4, arg_06); + goto block_5D1A; + + block_5CF6: + if (turn < 5) goto block_5D1A; + + block_5D01: + class_0A1A_slot_20(arg_06); + class_0A1A_slot_22((retval + 1), arg_06); + goto block_5D1A; + + block_5D1A: + if ((fire != 0) || (fire != 3)) goto block_5D39; + + block_5D2B: + class_0A1A_slot_23(4, arg_06); + goto block_5D5D; + + block_5D39: + if (fire < 5) goto block_5D5D; + + block_5D44: + class_0A1A_slot_21(arg_06); + class_0A1A_slot_23((retval + 1), arg_06); + goto block_5D5D; + + block_5D5D: + /* word_to_dword */ + /* pop_result */ + goto block_5D67; + + block_5D67: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_49_slot_49.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_49_slot_49.txt new file mode 100644 index 0000000..b533c8a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_49_slot_49.txt @@ -0,0 +1,162 @@ +function wallgun_slot_49() /* entry=396 class_id=0x0A1A slot=0x49 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + gun, /* [BP-02h] type=0x24 */ + gun2, /* [BP-04h] type=0x24 */ + broken; /* [BP-06h] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + class_0A0C_slot_2C(vel, ref); + if (!retval) goto block_5DD9; + + block_5DD3: + goto block_6509; + + block_5DD9: + if (Intrinsic00FB(arg_06) > 99) goto block_5E2C; + + block_5DEB: + goto block_6509; + + block_5E2C: + spawn class_0A1A_slot_48(pid, vel, ref, arg_06); + suspend; + /* dword_to_word */ + if (!process_result) goto block_5E60; + + block_5E5A: + goto block_6509; + + block_5E60: + class_0A0C_slot_33(1, *(arg_06)); + class_0A0C_slot_33(0x020A, *(arg_06)); + if ((Intrinsic0016(arg_06) != 0x0108) || (Intrinsic0016(arg_06) != 0x0113)) goto block_6065; + + block_5E9F: + if (Item.getFrame(arg_06) != 27) goto block_6062; + + block_5EB4: + spawn class_0A1E_slot_28(pid, 0, 0, arg_06); + suspend; + if (Intrinsic0016(arg_06) != 0x0108) goto block_5FAF; + + block_5EF9: + suspend; + goto block_6062; + + block_5FAF: + suspend; + + block_6062: + goto block_64FE; + + block_6065: + if ((Intrinsic0016(arg_06) != 0x02F0) || (Intrinsic0016(arg_06) != 0x0373)) goto block_6185; + + block_6083: + if (Item.getFrame(arg_06) != 27) goto block_6182; + + block_6098: + spawn class_0A1E_slot_28(pid, 0, 0, arg_06); + suspend; + if (Intrinsic0016(arg_06) != 0x02F0) goto block_6131; + + block_60DD: + goto block_6182; + + block_6131: + + block_6182: + goto block_64FE; + + block_6185: + if ((((Intrinsic0016(arg_06) != 0x01BA) || (Intrinsic0016(arg_06) != 0x01B9)) || (Intrinsic0016(arg_06) != 0x025F)) || (Intrinsic0016(arg_06) != 0x0260)) goto block_62F7; + + block_61BF: + if (Item.getFrame(arg_06) != 9) goto block_62F4; + + block_61D4: + spawn class_0A1E_slot_28(pid, 0, 0, arg_06); + suspend; + if ((Intrinsic0016(arg_06) != 0x01BA) || (Intrinsic0016(arg_06) != 0x025F)) goto block_6292; + + block_622D: + suspend; + goto block_62F4; + + block_6292: + suspend; + + block_62F4: + goto block_64FE; + + block_62F7: + if ((Intrinsic0016(arg_06) != 0x0399) || (Intrinsic0016(arg_06) != 0x03A1)) goto block_636A; + + block_6315: + if (Item.getFrame(arg_06) < 18) goto block_6367; + + block_632A: + spawn class_0A1E_slot_28(pid, 0, 0, arg_06); + suspend; + class_0A0C_slot_20(1); + + block_6367: + goto block_64FE; + + block_636A: + if (Intrinsic0016(arg_06) != 0x04C8) goto block_6445; + + block_637A: + if (Item.getFrame(arg_06) < 52) goto block_6442; + + block_638F: + spawn class_0A1E_slot_28(pid, 0, 1, arg_06); + suspend; + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_63D2: + if condition goto block_63E6; + + block_63D5: + /* loopnext */ + goto block_63D2; + + block_63E6: + gun = *(arg_06); + set_info(1, 0); + class_0A0C_slot_20(2); + + block_6442: + goto block_64FE; + + block_6445: + if ((Intrinsic0016(arg_06) != 0x04C8) || (Intrinsic0016(arg_06) != 0x01CD)) goto block_64FE; + + block_6463: + if (Item.getFrame(arg_06) < 52) goto block_64FB; + + block_6478: + spawn class_0A1E_slot_28(pid, 0, 1, arg_06); + suspend; + gun = *(arg_06); + set_info(1, 0); + class_0A0C_slot_20(3); + + block_64FB: + goto block_64FE; + + block_64FE: + + block_6509: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_4A_slot_4A.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_4A_slot_4A.txt new file mode 100644 index 0000000..241a448 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_4A_slot_4A.txt @@ -0,0 +1,117 @@ +function wallgun_slot_4A() /* entry=396 class_id=0x0A1A slot=0x4A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + target, /* [BP+0Ah] type=0x69 */ + dir, /* [BP-01h] type=0x62 */ + dist, /* [BP-03h] type=0x69 */ + t, /* [BP-05h] type=0x69 */ + del, /* [BP-07h] type=0x69 */ + old, /* [BP-09h] type=0x69 */ + new; /* [BP-0Bh] type=0x69 */ + + entry: + set_info(0x0001, *(arg_06)); + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + if (Item.getStatus(arg_06) & 0x1000) goto block_65D6; + + block_6597: + spawn class_0A0C_slot_32(pid, 30, 0x00000000); + suspend; + if (Item.getStatus(arg_06) & 0x1000) goto block_65D6; + + block_65D0: + goto block_6B0C; + + block_65D6: + class_0A1A_slot_2C(arg_06); + dir = retval; + del = 3; + old = Item.getFrame(arg_06); + new = (Item.getFrame(arg_06) * 2); + class_0A1A_slot_29(arg_06); + if retval goto block_6633; + + block_6629: + new = (new + 20); + goto block_663D; + + block_6633: + new = (new + 9); + + block_663D: + if ((Intrinsic0016(arg_06) != 0x0113) || (Intrinsic0016(arg_06) != 0x0108)) goto block_67E4; + + block_665B: + spawn class_0A1A_slot_4B(dir, arg_06); + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + spawn class_0A1A_slot_4B(dir, arg_06); + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + spawn class_0A1A_slot_4B(dir, arg_06); + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + goto block_6AD1; + + block_67E4: + if ((((Intrinsic0016(arg_06) != 0x0373) || (Intrinsic0016(arg_06) != 0x02F0)) || (Intrinsic0016(arg_06) != 0x01B9)) || (Intrinsic0016(arg_06) != 0x01BA)) goto block_687D; + + block_681E: + spawn class_0A1A_slot_4B(dir, arg_06); + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + goto block_6AD1; + + block_687D: + if ((((Intrinsic0016(arg_06) != 0x025F) || (Intrinsic0016(arg_06) != 0x0260)) || (Intrinsic0016(arg_06) != 0x01B9)) || (Intrinsic0016(arg_06) != 0x01BA)) goto block_68CC; + + block_68B7: + spawn class_0A1A_slot_4B(dir, arg_06); + goto block_6AD1; + + block_68CC: + if ((Intrinsic0016(arg_06) != 0x04C8) || (Intrinsic0016(arg_06) != 0x01CD)) goto block_6A61; + + block_68EA: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + spawn class_0A1A_slot_4B(dir, arg_06); + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + spawn class_0A1A_slot_4B(dir, arg_06); + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + goto block_6AD1; + + block_6A61: + if ((Intrinsic0016(arg_06) != 0x03A1) || (Intrinsic0016(arg_06) != 0x0399)) goto block_6AD1; + + block_6A7F: + spawn class_0A1A_slot_4B(dir, arg_06); + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + goto block_6AD1; + + block_6AD1: + spawn class_0A1A_slot_30(pid, arg_06); + suspend; + /* bit_not */ + + block_6B0C: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_4B_slot_4B.txt b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_4B_slot_4B.txt new file mode 100644 index 0000000..c49b4a6 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WALLGUN/slot_4B_slot_4B.txt @@ -0,0 +1,59 @@ +function wallgun_slot_4B() /* entry=396 class_id=0x0A1A slot=0x4B */ +{ + var + referent, /* [BP+00h] type=0x69 */ + dir, /* [BP+0Ah] type=0x62 */ + x1, /* [BP-02h] type=0x69 */ + x2, /* [BP-04h] type=0x69 */ + y1, /* [BP-06h] type=0x69 */ + y2, /* [BP-08h] type=0x69 */ + z1, /* [BP-09h] type=0x62 */ + z2, /* [BP-0Ah] type=0x62 */ + ammo; /* [BP-0Ch] type=0x69 */ + + entry: + set_info(0x0001, *(arg_06)); + spawn class_0A0C_slot_32(pid, 1, 0x00000000); + suspend; + class_0A1A_slot_44(arg_06); + ammo = retval; + dir = (dir & 15); + class_0A1A_slot_3E(dir, arg_06); + x1 = retval; + class_0A1A_slot_3F(dir, arg_06); + y1 = retval; + class_0A1A_slot_40(dir, arg_06); + z1 = retval; + if (ammo != 1) goto block_6BF6; + + block_6BEC: + + block_6BF6: + if (ammo != 5) goto block_6C0B; + + block_6C01: + + block_6C0B: + class_0A1A_slot_29(arg_06); + if retval goto block_6C9C; + + block_6C1B: + class_0A1A_slot_41(dir, arg_06); + x2 = retval; + class_0A1A_slot_42(dir, arg_06); + y2 = retval; + class_0A1A_slot_43(dir, arg_06); + z2 = retval; + if (Intrinsic0016(arg_06) != 0x04C8) goto block_6C99; + + block_6C80: + + block_6C99: + goto block_6CB5; + + block_6C9C: + + block_6CB5: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WEA_BOOT/slot_01_use.txt b/USECODE/EUSECODE_extracted/pseudocode/WEA_BOOT/slot_01_use.txt new file mode 100644 index 0000000..329929f --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WEA_BOOT/slot_01_use.txt @@ -0,0 +1,8 @@ +function wea_boot_use() /* entry=251 class_id=0x045B slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WEA_BOOT/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/WEA_BOOT/slot_0A_equip.txt new file mode 100644 index 0000000..cf147f5 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WEA_BOOT/slot_0A_equip.txt @@ -0,0 +1,49 @@ +function wea_boot_equip() /* entry=251 class_id=0x045B slot=0x0A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + var, /* [BP+0Ah] type=0x69 */ + counter; /* [BP-02h] type=0x69 */ + + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + class_0A0C_slot_33(0x021B, *(arg_06)); + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + + block_0125: + if (Item.getFrame(arg_06) != 5) goto block_0177; + + block_0137: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + goto block_0125; + + block_0177: + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + if ((global[0x001F] != 0) && (global[0x001F] < 15)) goto block_01C5; + + block_01B5: + goto block_01D0; + + block_01C5: + + block_01D0: + counter = 0; + + block_01D7: + if (counter <= 4) goto block_0222; + + block_01DF: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_01D7; + + block_0222: + spawn class_045B_enterFastArea(arg_06); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WEA_BOOT/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/WEA_BOOT/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..8531a96 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WEA_BOOT/slot_0F_enterFastArea.txt @@ -0,0 +1,73 @@ +function wea_boot_enterFastArea() /* entry=251 class_id=0x045B slot=0x0F */ +{ + var + referent, /* [BP+00h] type=0x69 */ + counter, /* [BP-02h] type=0x69 */ + ran; /* [BP-04h] type=0x69 */ + + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + spawn class_0A0C_slot_32(pid, 0x07D0, 0x00000000); + suspend; + + block_02CA: + suspend; + class_0A0C_slot_20(pid, 100); + spawn class_0A0C_slot_32((retval + 60), 0x00000000); + suspend; + if (!Item.getFrame(arg_06)) goto block_036A; + + block_031B: + counter = 0; + + block_0322: + if (counter <= 4) goto block_036A; + + block_032A: + spawn class_0A0C_slot_32(pid, 10, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0322; + + block_036A: + class_0A0C_slot_20(100); + if (retval > 50) goto block_03FF; + + block_0380: + class_0A0C_slot_20(2); + ran = (retval + 1); + counter = 0; + + block_0399: + if (counter <= ran) goto block_03FC; + + block_03A4: + class_0A0C_slot_20(pid, 10); + spawn class_0A0C_slot_32((retval + 30), 0x00000000); + suspend; + counter = (1 + counter); + goto block_0399; + + block_03FC: + goto block_0451; + + block_03FF: + counter = 0; + + block_0406: + if (counter <= 4) goto block_0451; + + block_040E: + spawn class_0A0C_slot_32(pid, 15, 0x00000000); + suspend; + counter = (1 + counter); + goto block_0406; + + block_0451: + goto block_02CA; + + block_0454: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WEA_BOOT/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/WEA_BOOT/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..7d72bb0 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WEA_BOOT/slot_10_leaveFastArea.txt @@ -0,0 +1,9 @@ +function wea_boot_leaveFastArea() /* entry=251 class_id=0x045B slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + class_0A0C_slot_33(0x021B, *(arg_06)); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WINDSURF/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/WINDSURF/slot_06_gotHit.txt new file mode 100644 index 0000000..d586282 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WINDSURF/slot_06_gotHit.txt @@ -0,0 +1,251 @@ +function windsurf_gotHit() /* entry=180 class_id=0x0337 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + xoff, /* [BP-04h] type=0x69 */ + yoff, /* [BP-06h] type=0x69 */ + speed, /* [BP-08h] type=0x69 */ + dir, /* [BP-0Ah] type=0x69 */ + wp, /* [BP-0Fh] type=0x24 */ + param; /* [BP-11h] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + class_0A0C_slot_2C(vel, ref); + if retval goto block_0255; + + block_024F: + goto block_0626; + + block_0255: + if (Item.getMapNum(arg_06) != 0) goto block_05FF; + + block_026A: + item = ref; + if Item.getNpcNum(0, item) goto block_0288; + + block_0282: + goto block_0626; + + block_0288: + if (Intrinsic0016(item) != 0x01D9) goto block_02A1; + + block_029B: + goto block_0626; + + block_02A1: + if (Item.overlaps(ref, arg_06) != 0) goto block_02BB; + + block_02B5: + goto block_0626; + + block_02BB: + if (Intrinsic00FB(arg_06) != 0x00FF) goto block_02D4; + + block_02CE: + goto block_0626; + + block_02D4: + if (Item.getZ(arg_06) != 0x00FE) goto block_02ED; + + block_02E7: + goto block_0626; + + block_02ED: + if (Intrinsic011C(arg_06) != 0x00FF) goto block_0324; + + block_0300: + if (!Item.isNpc(item)) goto block_031E; + + block_0313: + + block_031E: + goto block_0626; + + block_0324: + xoff = 0; + yoff = 0; + param = Intrinsic00FB(arg_06); + dir = (param & 15); + speed = ((param / 16) & 15); + if (speed != 0) goto block_036C; + + block_0362: + speed = 3; + goto block_038A; + + block_036C: + if (speed != 15) goto block_038A; + + block_0377: + speed = (3 + (Intrinsic0029() * 2)); + goto block_038A; + + block_038A: + if (dir != 0) goto block_039C; + + block_0392: + yoff = -1; + goto block_04FE; + + block_039C: + if (dir != 1) goto block_03B5; + + block_03A4: + yoff = -2; + xoff = 1; + goto block_04FE; + + block_03B5: + if (dir != 2) goto block_03CE; + + block_03BD: + yoff = -1; + xoff = 1; + goto block_04FE; + + block_03CE: + if (dir != 3) goto block_03E7; + + block_03D6: + yoff = -1; + xoff = 2; + goto block_04FE; + + block_03E7: + if (dir != 4) goto block_03F9; + + block_03EF: + xoff = 1; + goto block_04FE; + + block_03F9: + if (dir != 5) goto block_0412; + + block_0401: + xoff = 2; + yoff = 1; + goto block_04FE; + + block_0412: + if (dir != 6) goto block_042B; + + block_041A: + xoff = 1; + yoff = 1; + goto block_04FE; + + block_042B: + if (dir != 7) goto block_0444; + + block_0433: + xoff = 1; + yoff = 2; + goto block_04FE; + + block_0444: + if (dir != 8) goto block_0456; + + block_044C: + yoff = 1; + goto block_04FE; + + block_0456: + if (dir != 9) goto block_046F; + + block_045E: + yoff = 2; + xoff = -1; + goto block_04FE; + + block_046F: + if (dir != 10) goto block_0488; + + block_0477: + yoff = 1; + xoff = -1; + goto block_04FE; + + block_0488: + if (dir != 11) goto block_04A1; + + block_0490: + yoff = 1; + xoff = -2; + goto block_04FE; + + block_04A1: + if (dir != 12) goto block_04B3; + + block_04A9: + xoff = -1; + goto block_04FE; + + block_04B3: + if (dir != 13) goto block_04CC; + + block_04BB: + xoff = -2; + yoff = -1; + goto block_04FE; + + block_04CC: + if (dir != 14) goto block_04E5; + + block_04D4: + xoff = -1; + yoff = -1; + goto block_04FE; + + block_04E5: + if (dir != 15) goto block_04FE; + + block_04ED: + xoff = -1; + yoff = -2; + goto block_04FE; + + block_04FE: + xoff = (xoff * speed); + yoff = (yoff * speed); + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + + block_0538: + if 1 goto block_05C4; + + block_0540: + wp = (Intrinsic0013(item) + xoff); + local_0D = (Item.legal_create(item) + yoff); + local_0B = Item.getZ(item); + spawn class_0A0C_slot_32(pid, 5, 0x00000000); + suspend; + if (Item.overlaps(ref, arg_06) != 0) goto block_05C1; + + block_05BB: + goto block_05C4; + + block_05C1: + goto block_0538; + + block_05C4: + if (Item.getZ(item) > 1) goto block_05FC; + + block_05D6: + suspend; + + block_05FC: + goto block_0626; + + block_05FF: + spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06); + suspend; + + block_0626: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WINDSURF/slot_0A_equip.txt b/USECODE/EUSECODE_extracted/pseudocode/WINDSURF/slot_0A_equip.txt new file mode 100644 index 0000000..a0f5f2a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WINDSURF/slot_0A_equip.txt @@ -0,0 +1,42 @@ +function windsurf_equip() /* entry=180 class_id=0x0337 slot=0x0A */ +{ + var + referent, /* [BP+00h] type=0x69 */ + var, /* [BP+0Ah] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x0211, *(arg_06)); + process_exclude(); + class_0A0C_slot_33(0x020C, *(arg_06)); + if (var != 0x00FF) goto block_011B; + + block_0115: + goto block_0171; + + block_011B: + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFE string_bytes=0x1 loop_type=0x2 */ + + block_0130: + if condition goto block_016F; + + block_0133: + if (item != *(arg_06)) goto block_016B; + + block_0146: + if Item.overlaps(item, arg_06) goto block_016B; + + block_0157: + spawn class_0337_gotHit(0, item, arg_06); + + block_016B: + /* loopnext */ + goto block_0130; + + block_016F: + + block_0171: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WINDSURF/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/WINDSURF/slot_0B_unequip.txt new file mode 100644 index 0000000..0ad0e45 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WINDSURF/slot_0B_unequip.txt @@ -0,0 +1,33 @@ +function windsurf_unequip() /* entry=180 class_id=0x0337 slot=0x0B */ +{ + var + referent, /* [BP+00h] type=0x69 */ + var, /* [BP+0Ah] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + /* loopscr value_u8=0x24 */ + /* loop current_var=0xFE string_bytes=0x1 loop_type=0x2 */ + + block_01C1: + if condition goto block_0200; + + block_01C4: + if (item != *(arg_06)) goto block_01FC; + + block_01D7: + if Item.overlaps(item, arg_06) goto block_01FC; + + block_01E8: + spawn class_0337_gotHit(0, item, arg_06); + + block_01FC: + /* loopnext */ + goto block_01C1; + + block_0200: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WINDSURF/slot_10_leaveFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/WINDSURF/slot_10_leaveFastArea.txt new file mode 100644 index 0000000..004bb04 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WINDSURF/slot_10_leaveFastArea.txt @@ -0,0 +1,9 @@ +function windsurf_leaveFastArea() /* entry=180 class_id=0x0337 slot=0x10 */ +{ + entry: + set_info(0x021C, *(arg_06)); + process_exclude(); + class_0A0C_slot_33(0x020C, *(arg_06)); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WSHOCKEW/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/WSHOCKEW/slot_06_gotHit.txt new file mode 100644 index 0000000..baae030 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WSHOCKEW/slot_06_gotHit.txt @@ -0,0 +1,84 @@ +function wshockew_gotHit() /* entry=245 class_id=0x044E slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + n, /* [BP-04h] type=0x24 */ + x, /* [BP-06h] type=0x69 */ + y, /* [BP-08h] type=0x69 */ + y1, /* [BP-0Ah] type=0x69 */ + z, /* [BP-0Ch] type=0x69 */ + z1, /* [BP-0Eh] type=0x69 */ + shocker, /* [BP-10h] type=0x24 */ + a, /* [BP-12h] type=0x69 */ + b, /* [BP-14h] type=0x69 */ + c, /* [BP-16h] type=0x69 */ + d, /* [BP-18h] type=0x69 */ + e, /* [BP-1Ah] type=0x69 */ + shockCount; /* [BP-1Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + item = ref; + if Item.isNpc(item) goto block_036A; + + block_01B2: + n = item; + + block_01B9: + if (Item.overlaps(ref, arg_06) != 1) goto block_0344; + + block_01CD: + x = Intrinsic0013(arg_06); + y = Item.getNpcNum(arg_06); + y1 = Item.legal_create(arg_06); + z = Item.AvatarStoleSomehting(item); + z1 = Item.getZ(item); + a = (y1 - y); + a = (a * 2); + b = (z - z1); + b = ((b / 2) * 3); + class_0A0C_slot_20(2); + c = (retval + 1); + + block_0250: + if (c != 0) goto block_031B; + + block_025B: + class_0A0C_slot_20(a); + d = retval; + d = (y1 - d); + y = d; + class_0A0C_slot_20(b); + e = retval; + e = (e + z1); + z = e; + if Item.getQLo(0, 0x045A, shocker) goto block_02E0; + + block_02AF: + c = 1; + shockCount = (1 + shockCount); + + block_02E0: + class_0A0C_slot_20(pid, 30); + spawn class_0A0C_slot_32(retval, 0x00000000); + suspend; + c = (c - 1); + goto block_0250; + + block_031B: + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + goto block_01B9; + + block_0344: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + + block_036A: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WSHOCKEW/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/WSHOCKEW/slot_0B_unequip.txt new file mode 100644 index 0000000..faa6a67 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WSHOCKEW/slot_0B_unequip.txt @@ -0,0 +1,39 @@ +function wshockew_unequip() /* entry=245 class_id=0x044E slot=0x0B */ +{ + var + referent, /* [BP+00h] type=0x69 */ + var, /* [BP+0Ah] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0115: + if condition goto block_015F; + + block_0118: + if Item.isNpc(item) goto block_015B; + + block_0127: + if (Item.overlaps(item, arg_06) != 1) goto block_015B; + + block_0141: + spawn class_044E_gotHit(0, item, arg_06); + goto block_0161; + + block_015B: + /* loopnext */ + goto block_0115; + + block_015F: + + block_0161: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WSHOCKEW/slot_13_avatarStoleSomething.txt b/USECODE/EUSECODE_extracted/pseudocode/WSHOCKEW/slot_13_avatarStoleSomething.txt new file mode 100644 index 0000000..9c72be3 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WSHOCKEW/slot_13_avatarStoleSomething.txt @@ -0,0 +1,8 @@ +function wshockew_avatarStoleSomething() /* entry=245 class_id=0x044E slot=0x13 */ +{ + entry: + set_info(0x022E, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WSHOCKNS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/WSHOCKNS/slot_06_gotHit.txt new file mode 100644 index 0000000..f6e0f52 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WSHOCKNS/slot_06_gotHit.txt @@ -0,0 +1,84 @@ +function wshockns_gotHit() /* entry=244 class_id=0x044D slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + n, /* [BP-04h] type=0x24 */ + x, /* [BP-06h] type=0x69 */ + x1, /* [BP-08h] type=0x69 */ + y, /* [BP-0Ah] type=0x69 */ + z, /* [BP-0Ch] type=0x69 */ + z1, /* [BP-0Eh] type=0x69 */ + shocker, /* [BP-10h] type=0x24 */ + a, /* [BP-12h] type=0x69 */ + b, /* [BP-14h] type=0x69 */ + c, /* [BP-16h] type=0x69 */ + d, /* [BP-18h] type=0x69 */ + e, /* [BP-1Ah] type=0x69 */ + shockCount; /* [BP-1Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + item = ref; + if Item.isNpc(item) goto block_036A; + + block_01B2: + n = item; + + block_01B9: + if (Item.overlaps(ref, arg_06) != 1) goto block_0344; + + block_01CD: + x = Item.andStatus(arg_06); + x1 = Intrinsic0013(arg_06); + y = Item.legal_create(arg_06); + z = Item.AvatarStoleSomehting(item); + z1 = Item.getZ(item); + a = (x1 - x); + a = (a * 2); + b = (z - z1); + b = ((b / 2) * 3); + class_0A0C_slot_20(2); + c = (retval + 1); + + block_0250: + if (c != 0) goto block_031B; + + block_025B: + class_0A0C_slot_20(a); + d = retval; + d = (x1 - d); + x = d; + class_0A0C_slot_20(b); + e = retval; + e = (e + z1); + z = e; + if Item.getQLo(0, 0x0459, shocker) goto block_02E0; + + block_02AF: + c = 1; + shockCount = (1 + shockCount); + + block_02E0: + class_0A0C_slot_20(pid, 30); + spawn class_0A0C_slot_32(retval, 0x00000000); + suspend; + c = (c - 1); + goto block_0250; + + block_031B: + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + goto block_01B9; + + block_0344: + spawn class_0A0C_slot_32(pid, 2, 0x00000000); + suspend; + + block_036A: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WSHOCKNS/slot_0B_unequip.txt b/USECODE/EUSECODE_extracted/pseudocode/WSHOCKNS/slot_0B_unequip.txt new file mode 100644 index 0000000..7acde1d --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WSHOCKNS/slot_0B_unequip.txt @@ -0,0 +1,39 @@ +function wshockns_unequip() /* entry=244 class_id=0x044D slot=0x0B */ +{ + var + referent, /* [BP+00h] type=0x69 */ + var, /* [BP+0Ah] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x0212, *(arg_06)); + process_exclude(); + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x3A */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFE string_bytes=0x6 loop_type=0x2 */ + + block_0115: + if condition goto block_015F; + + block_0118: + if Item.isNpc(item) goto block_015B; + + block_0127: + if (Item.overlaps(item, arg_06) != 1) goto block_015B; + + block_0141: + spawn class_044D_gotHit(0, item, arg_06); + goto block_0161; + + block_015B: + /* loopnext */ + goto block_0115; + + block_015F: + + block_0161: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WSHOCKNS/slot_13_avatarStoleSomething.txt b/USECODE/EUSECODE_extracted/pseudocode/WSHOCKNS/slot_13_avatarStoleSomething.txt new file mode 100644 index 0000000..1e6104b --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WSHOCKNS/slot_13_avatarStoleSomething.txt @@ -0,0 +1,8 @@ +function wshockns_avatarStoleSomething() /* entry=244 class_id=0x044D slot=0x13 */ +{ + entry: + set_info(0x022E, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WVENTEW/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/WVENTEW/slot_06_gotHit.txt new file mode 100644 index 0000000..d02f039 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WVENTEW/slot_06_gotHit.txt @@ -0,0 +1,44 @@ +function wventew_gotHit() /* entry=225 class_id=0x03E8 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + fram, /* [BP-02h] type=0x69 */ + windsurf; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + fram = Item.getFrame(arg_06); + class_0A0C_slot_2C(vel, ref); + if retval goto block_01AB; + + block_014F: + if (fram < 1) goto block_01AB; + + block_015A: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_017B: + if condition goto block_01A9; + + block_017E: + if (Item.getNpcNum(arg_06) != Item.getNpcNum(windsurf)) goto block_01A5; + + block_019A: + + block_01A5: + /* loopnext */ + goto block_017B; + + block_01A9: + + block_01AB: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WVENTEW/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/WVENTEW/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..d130b23 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WVENTEW/slot_0F_enterFastArea.txt @@ -0,0 +1,8 @@ +function wventew_enterFastArea() /* entry=225 class_id=0x03E8 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WVENTNS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/WVENTNS/slot_06_gotHit.txt new file mode 100644 index 0000000..2b2d2b7 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WVENTNS/slot_06_gotHit.txt @@ -0,0 +1,44 @@ +function wventns_gotHit() /* entry=224 class_id=0x03E7 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + fram, /* [BP-02h] type=0x69 */ + windsurf; /* [BP-04h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + fram = Item.getFrame(arg_06); + class_0A0C_slot_2C(vel, ref); + if retval goto block_019E; + + block_0142: + if (fram < 1) goto block_019E; + + block_014D: + /* loopscr value_u8=0x24 */ + /* loopscr value_u8=0x3D */ + /* loopscr value_u8=0x40 */ + /* loopscr value_u8=0x25 */ + /* loop current_var=0xFC string_bytes=0x6 loop_type=0x2 */ + + block_016E: + if condition goto block_019C; + + block_0171: + if (Item.getNpcNum(arg_06) != Item.getNpcNum(windsurf)) goto block_0198; + + block_018D: + + block_0198: + /* loopnext */ + goto block_016E; + + block_019C: + + block_019E: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/WVENTNS/slot_0F_enterFastArea.txt b/USECODE/EUSECODE_extracted/pseudocode/WVENTNS/slot_0F_enterFastArea.txt new file mode 100644 index 0000000..14242b9 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/WVENTNS/slot_0F_enterFastArea.txt @@ -0,0 +1,8 @@ +function wventns_enterFastArea() /* entry=224 class_id=0x03E7 slot=0x0F */ +{ + entry: + set_info(0x021B, *(arg_06)); + process_exclude(); + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/YELRAIL/slot_20_slot_20.txt b/USECODE/EUSECODE_extracted/pseudocode/YELRAIL/slot_20_slot_20.txt new file mode 100644 index 0000000..34b69f4 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/YELRAIL/slot_20_slot_20.txt @@ -0,0 +1,182 @@ +function yelrail_slot_20() /* entry=397 class_id=0x0A1B slot=0x20 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + shotRef, /* [BP+0Ch] type=0x69 */ + vel, /* [BP+0Eh] type=0x69 */ + item, /* [BP-02h] type=0x24 */ + damage; /* [BP-04h] type=0x69 */ + + entry: + set_info(0x0001, *(arg_06)); + set_info(1, *(arg_06)); + class_0A0C_slot_2C(vel, shotRef); + damage = retval; + if (!damage) goto block_011A; + + block_0114: + goto block_0449; + + block_011A: + if (((damage != 4) || (damage != 3)) || (damage != 10)) goto block_0449; + + block_013D: + if (Intrinsic00DA(100, 0) > 50) goto block_0165; + + block_0154: + goto block_0173; + + block_0165: + + block_0173: + if ((Intrinsic0016(arg_06) != 0x008A) || (Intrinsic0016(arg_06) != 0x0088)) goto block_01C3; + + block_0191: + if (!Item.getFrame(arg_06)) goto block_01BA; + + block_01A4: + + block_01BA: + goto block_0449; + + block_01C0: + goto block_0449; + + block_01C3: + if ((Intrinsic0016(arg_06) != 0x008B) || (Intrinsic0016(arg_06) != 0x0091)) goto block_0213; + + block_01E1: + if (!Item.getFrame(arg_06)) goto block_020A; + + block_01F4: + + block_020A: + goto block_0449; + + block_0210: + goto block_0449; + + block_0213: + if ((Intrinsic0016(arg_06) != 0x008C) || (Intrinsic0016(arg_06) != 0x0092)) goto block_025A; + + block_0231: + if (!Item.getFrame(arg_06)) goto block_0251; + + block_0244: + + block_0251: + goto block_0449; + + block_0257: + goto block_0449; + + block_025A: + if (Intrinsic0016(arg_06) != 0x008D) goto block_02EF; + + block_026A: + if (Item.getFrame(arg_06) != 0) goto block_0289; + + block_0279: + goto block_02E6; + + block_0289: + if (Item.getFrame(arg_06) != 1) goto block_02A8; + + block_0298: + goto block_02E6; + + block_02A8: + if (Item.getFrame(arg_06) != 2) goto block_02C7; + + block_02B7: + goto block_02E6; + + block_02C7: + if (Item.getFrame(arg_06) != 3) goto block_02E6; + + block_02D6: + goto block_02E6; + + block_02E6: + goto block_0449; + + block_02EC: + goto block_0449; + + block_02EF: + if (Intrinsic0016(arg_06) != 112) goto block_0383; + + block_02FE: + if (Item.getFrame(arg_06) != 0) goto block_031D; + + block_030D: + goto block_037A; + + block_031D: + if (Item.getFrame(arg_06) != 1) goto block_033C; + + block_032C: + goto block_037A; + + block_033C: + if (Item.getFrame(arg_06) != 2) goto block_035B; + + block_034B: + goto block_037A; + + block_035B: + if (Item.getFrame(arg_06) != 3) goto block_037A; + + block_036A: + goto block_037A; + + block_037A: + goto block_0449; + + block_0380: + goto block_0449; + + block_0383: + if (Intrinsic0016(arg_06) != 0x0093) goto block_0449; + + block_0393: + if (Item.getFrame(arg_06) != 0) goto block_03B2; + + block_03A2: + goto block_0440; + + block_03B2: + if (Item.getFrame(arg_06) != 1) goto block_03D1; + + block_03C1: + goto block_0440; + + block_03D1: + if (Item.getFrame(arg_06) != 2) goto block_03F0; + + block_03E0: + goto block_0440; + + block_03F0: + if (Item.getFrame(arg_06) != 3) goto block_0418; + + block_03FF: + goto block_0440; + + block_0418: + if (Item.getFrame(arg_06) != 4) goto block_0440; + + block_0427: + goto block_0440; + + block_0440: + goto block_0449; + + block_0446: + goto block_0449; + + block_0449: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/YR16X6EW/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/YR16X6EW/slot_06_gotHit.txt new file mode 100644 index 0000000..68e88e4 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/YR16X6EW/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function yr16x6ew_gotHit() /* entry=17 class_id=0x0088 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A1B_slot_20(pid, vel, ref, *(arg_06), arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/YR16X6NS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/YR16X6NS/slot_06_gotHit.txt new file mode 100644 index 0000000..e36cf45 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/YR16X6NS/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function yr16x6ns_gotHit() /* entry=18 class_id=0x008A slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A1B_slot_20(pid, vel, ref, *(arg_06), arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/YR1X1/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/YR1X1/slot_06_gotHit.txt new file mode 100644 index 0000000..134af4c --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/YR1X1/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function yr1x1_gotHit() /* entry=25 class_id=0x0093 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A1B_slot_20(pid, vel, ref, *(arg_06), arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/YR2X6EW/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/YR2X6EW/slot_06_gotHit.txt new file mode 100644 index 0000000..a2dde0f --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/YR2X6EW/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function yr2x6ew_gotHit() /* entry=13 class_id=0x0070 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A1B_slot_20(pid, vel, ref, *(arg_06), arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/YR2X6NS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/YR2X6NS/slot_06_gotHit.txt new file mode 100644 index 0000000..f924ac8 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/YR2X6NS/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function yr2x6ns_gotHit() /* entry=21 class_id=0x008D slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A1B_slot_20(pid, vel, ref, *(arg_06), arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/YR4X6EW/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/YR4X6EW/slot_06_gotHit.txt new file mode 100644 index 0000000..7a65529 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/YR4X6EW/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function yr4x6ew_gotHit() /* entry=24 class_id=0x0092 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A1B_slot_20(pid, vel, ref, *(arg_06), arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/YR4X6NS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/YR4X6NS/slot_06_gotHit.txt new file mode 100644 index 0000000..284a7cd --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/YR4X6NS/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function yr4x6ns_gotHit() /* entry=20 class_id=0x008C slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A1B_slot_20(pid, vel, ref, *(arg_06), arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/YR8X6EW/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/YR8X6EW/slot_06_gotHit.txt new file mode 100644 index 0000000..a2ac01a --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/YR8X6EW/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function yr8x6ew_gotHit() /* entry=23 class_id=0x0091 slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A1B_slot_20(pid, vel, ref, *(arg_06), arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/YR8X6NS/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/YR8X6NS/slot_06_gotHit.txt new file mode 100644 index 0000000..73700e9 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/YR8X6NS/slot_06_gotHit.txt @@ -0,0 +1,15 @@ +function yr8x6ns_gotHit() /* entry=19 class_id=0x008B slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel; /* [BP+0Ch] type=0x69 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + spawn class_0A1B_slot_20(pid, vel, ref, *(arg_06), arg_06); + suspend; + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/Y_POOL/slot_06_gotHit.txt b/USECODE/EUSECODE_extracted/pseudocode/Y_POOL/slot_06_gotHit.txt new file mode 100644 index 0000000..6d8d437 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/Y_POOL/slot_06_gotHit.txt @@ -0,0 +1,50 @@ +function y_pool_gotHit() /* entry=67 class_id=0x015E slot=0x06 */ +{ + var + referent, /* [BP+00h] type=0x69 */ + ref, /* [BP+0Ah] type=0x69 */ + vel, /* [BP+0Ch] type=0x69 */ + item; /* [BP-02h] type=0x24 */ + + entry: + set_info(0x020C, *(arg_06)); + process_exclude(); + item = ref; + class_0A0C_slot_2C(vel, ref); + if (retval != 4) goto block_012F; + + block_010A: + spawn class_0A1E_slot_28(pid, 1, 1, arg_06); + suspend; + + block_012F: + if ((ref <= 0x0100) && (ref != Item.pop())) goto block_014D; + + block_0147: + goto block_01C2; + + block_014D: + if 1 goto block_01C2; + + block_0155: + /* global_address global_id=0x3C */ + if Item.use(*(arg_06)) goto block_01B9; + + block_0169: + class_0A0C_slot_20(8, 10); + /* global_address global_id=0x3C */ + /* global_address global_id=0x3C */ + spawn class_0A0C_slot_32(pid, 60, 0x00000000); + suspend; + goto block_01BF; + + block_01B9: + goto block_01C2; + + block_01BF: + goto block_014D; + + block_01C2: + return; + +} diff --git a/USECODE/EUSECODE_extracted/pseudocode/index.tsv b/USECODE/EUSECODE_extracted/pseudocode/index.tsv new file mode 100644 index 0000000..985c8b1 --- /dev/null +++ b/USECODE/EUSECODE_extracted/pseudocode/index.tsv @@ -0,0 +1,978 @@ +entry_index class_name slot event_name_hint derived_body_start derived_body_end derived_body_length decoded_op_count end_reason debug_symbol_count pseudocode_path +1 BLACK8 0x06 gotHit 0x00D4 0x020D 313 107 debug_symbols_then_end 5 pseudocode/BLACK8/slot_06_gotHit.txt +2 RDOOR_N 0x06 gotHit 0x00D4 0x0133 95 21 debug_symbols_then_end 3 pseudocode/RDOOR_N/slot_06_gotHit.txt +3 BLACK16 0x06 gotHit 0x00D4 0x020D 313 107 debug_symbols_then_end 5 pseudocode/BLACK16/slot_06_gotHit.txt +4 ALARM_EW 0x0F enterFastArea 0x00D4 0x0126 82 32 end_opcode 0 pseudocode/ALARM_EW/slot_0F_enterFastArea.txt +5 SMALLTAB 0x06 gotHit 0x00D4 0x01BA 230 72 debug_symbols_then_end 4 pseudocode/SMALLTAB/slot_06_gotHit.txt +6 VALVE 0x01 use 0x00D4 0x02EE 538 181 debug_symbols_then_end 3 pseudocode/VALVE/slot_01_use.txt +7 MDOOR_E 0x06 gotHit 0x0161 0x01C0 95 21 debug_symbols_then_end 3 pseudocode/MDOOR_E/slot_06_gotHit.txt +7 MDOOR_E 0x0F enterFastArea 0x00D4 0x0161 141 46 debug_symbols_then_end 2 pseudocode/MDOOR_E/slot_0F_enterFastArea.txt +7 MDOOR_E 0x13 avatarStoleSomething 0x01C0 0x02A9 233 70 debug_symbols_then_end 5 pseudocode/MDOOR_E/slot_13_avatarStoleSomething.txt +8 ALARM_NS 0x0F enterFastArea 0x00D4 0x0126 82 32 end_opcode 0 pseudocode/ALARM_NS/slot_0F_enterFastArea.txt +9 RFANEW 0x06 gotHit 0x010B 0x01DF 212 61 debug_symbols_then_end 6 pseudocode/RFANEW/slot_06_gotHit.txt +9 RFANEW 0x0A equip 0x01DF 0x0432 595 200 debug_symbols_then_end 7 pseudocode/RFANEW/slot_0A_equip.txt +9 RFANEW 0x0F enterFastArea 0x00D4 0x010B 55 22 end_opcode 0 pseudocode/RFANEW/slot_0F_enterFastArea.txt +10 FALLINGC 0x06 gotHit 0x00D4 0x01B9 229 72 debug_symbols_then_end 4 pseudocode/FALLINGC/slot_06_gotHit.txt +11 SWITCHEW 0x01 use 0x00D4 0x0181 173 65 end_opcode 0 pseudocode/SWITCHEW/slot_01_use.txt +12 CONVEY_N 0x06 gotHit 0x01D6 0x02E4 270 78 debug_symbols_then_end 8 pseudocode/CONVEY_N/slot_06_gotHit.txt +12 CONVEY_N 0x0A equip 0x00D4 0x01D6 258 99 body_exhausted 0 pseudocode/CONVEY_N/slot_0A_equip.txt +13 YR2X6EW 0x06 gotHit 0x00D4 0x0137 99 23 debug_symbols_then_end 3 pseudocode/YR2X6EW/slot_06_gotHit.txt +14 RDOOR_E 0x06 gotHit 0x00D4 0x0133 95 21 debug_symbols_then_end 3 pseudocode/RDOOR_E/slot_06_gotHit.txt +15 BOX_EW 0x01 use 0x00D4 0x02CA 502 169 debug_symbols_then_end 2 pseudocode/BOX_EW/slot_01_use.txt +16 BOX_NS 0x01 use 0x00D4 0x02CA 502 169 debug_symbols_then_end 2 pseudocode/BOX_NS/slot_01_use.txt +17 YR16X6EW 0x06 gotHit 0x00D4 0x0137 99 23 debug_symbols_then_end 3 pseudocode/YR16X6EW/slot_06_gotHit.txt +18 YR16X6NS 0x06 gotHit 0x00D4 0x0137 99 23 debug_symbols_then_end 3 pseudocode/YR16X6NS/slot_06_gotHit.txt +19 YR8X6NS 0x06 gotHit 0x00D4 0x0137 99 23 debug_symbols_then_end 3 pseudocode/YR8X6NS/slot_06_gotHit.txt +20 YR4X6NS 0x06 gotHit 0x00D4 0x0137 99 23 debug_symbols_then_end 3 pseudocode/YR4X6NS/slot_06_gotHit.txt +21 YR2X6NS 0x06 gotHit 0x00D4 0x0137 99 23 debug_symbols_then_end 3 pseudocode/YR2X6NS/slot_06_gotHit.txt +22 LUGGAGE 0x06 gotHit 0x00D4 0x0284 432 152 debug_symbols_then_end 4 pseudocode/LUGGAGE/slot_06_gotHit.txt +23 YR8X6EW 0x06 gotHit 0x00D4 0x0137 99 23 debug_symbols_then_end 3 pseudocode/YR8X6EW/slot_06_gotHit.txt +24 YR4X6EW 0x06 gotHit 0x00D4 0x0137 99 23 debug_symbols_then_end 3 pseudocode/YR4X6EW/slot_06_gotHit.txt +25 YR1X1 0x06 gotHit 0x00D4 0x0137 99 23 debug_symbols_then_end 3 pseudocode/YR1X1/slot_06_gotHit.txt +26 PEPSIEW 0x01 use 0x00D4 0x0275 417 149 debug_symbols_then_end 6 pseudocode/PEPSIEW/slot_01_use.txt +26 PEPSIEW 0x06 gotHit 0x0275 0x0301 140 38 debug_symbols_then_end 3 pseudocode/PEPSIEW/slot_06_gotHit.txt +27 GDOOR_E2 0x06 gotHit 0x00D4 0x0133 95 21 debug_symbols_then_end 3 pseudocode/GDOOR_E2/slot_06_gotHit.txt +28 CATWALK1 0x06 gotHit 0x00D4 0x016E 154 42 debug_symbols_then_end 3 pseudocode/CATWALK1/slot_06_gotHit.txt +29 GDOOR_N2 0x06 gotHit 0x00D4 0x0130 92 20 debug_symbols_then_end 3 pseudocode/GDOOR_N2/slot_06_gotHit.txt +30 PEPSINS 0x01 use 0x00D4 0x0275 417 149 debug_symbols_then_end 6 pseudocode/PEPSINS/slot_01_use.txt +30 PEPSINS 0x06 gotHit 0x0275 0x0301 140 38 debug_symbols_then_end 3 pseudocode/PEPSINS/slot_06_gotHit.txt +31 PANELNS 0x01 use 0x00D4 0x015D 137 52 end_opcode 0 pseudocode/PANELNS/slot_01_use.txt +32 PANELEW 0x01 use 0x00D4 0x015D 137 52 end_opcode 0 pseudocode/PANELEW/slot_01_use.txt +33 MDOOR_N 0x06 gotHit 0x0161 0x01C0 95 21 debug_symbols_then_end 3 pseudocode/MDOOR_N/slot_06_gotHit.txt +33 MDOOR_N 0x0F enterFastArea 0x00D4 0x0161 141 46 debug_symbols_then_end 2 pseudocode/MDOOR_N/slot_0F_enterFastArea.txt +33 MDOOR_N 0x13 avatarStoleSomething 0x01C0 0x02A9 233 70 debug_symbols_then_end 5 pseudocode/MDOOR_N/slot_13_avatarStoleSomething.txt +34 BARRELUP 0x06 gotHit 0x00D4 0x0133 95 21 debug_symbols_then_end 3 pseudocode/BARRELUP/slot_06_gotHit.txt +35 SIGNEW 0x04 cachein 0x00D4 0x0134 96 41 end_opcode 0 pseudocode/SIGNEW/slot_04_cachein.txt +36 SIGNNS 0x04 cachein 0x00D4 0x0134 96 41 end_opcode 0 pseudocode/SIGNNS/slot_04_cachein.txt +37 RFANNS 0x06 gotHit 0x010B 0x01DF 212 61 debug_symbols_then_end 6 pseudocode/RFANNS/slot_06_gotHit.txt +37 RFANNS 0x0A equip 0x01DF 0x0432 595 200 debug_symbols_then_end 7 pseudocode/RFANNS/slot_0A_equip.txt +37 RFANNS 0x0F enterFastArea 0x00D4 0x010B 55 22 end_opcode 0 pseudocode/RFANNS/slot_0F_enterFastArea.txt +38 RDOOR1_E 0x06 gotHit 0x010B 0x016A 95 21 debug_symbols_then_end 3 pseudocode/RDOOR1_E/slot_06_gotHit.txt +38 RDOOR1_E 0x0F enterFastArea 0x00D4 0x010B 55 22 end_opcode 0 pseudocode/RDOOR1_E/slot_0F_enterFastArea.txt +39 RDOOR2_E 0x06 gotHit 0x010B 0x016A 95 21 debug_symbols_then_end 3 pseudocode/RDOOR2_E/slot_06_gotHit.txt +39 RDOOR2_E 0x0F enterFastArea 0x00D4 0x010B 55 22 end_opcode 0 pseudocode/RDOOR2_E/slot_0F_enterFastArea.txt +40 RDOOR3_E 0x06 gotHit 0x010B 0x016A 95 21 debug_symbols_then_end 3 pseudocode/RDOOR3_E/slot_06_gotHit.txt +40 RDOOR3_E 0x0F enterFastArea 0x00D4 0x010B 55 22 end_opcode 0 pseudocode/RDOOR3_E/slot_0F_enterFastArea.txt +41 RDOOR4_E 0x06 gotHit 0x010B 0x016A 95 21 debug_symbols_then_end 3 pseudocode/RDOOR4_E/slot_06_gotHit.txt +41 RDOOR4_E 0x0F enterFastArea 0x00D4 0x010B 55 22 end_opcode 0 pseudocode/RDOOR4_E/slot_0F_enterFastArea.txt +42 RDOOR5_E 0x06 gotHit 0x010B 0x016A 95 21 debug_symbols_then_end 3 pseudocode/RDOOR5_E/slot_06_gotHit.txt +42 RDOOR5_E 0x0F enterFastArea 0x00D4 0x010B 55 22 end_opcode 0 pseudocode/RDOOR5_E/slot_0F_enterFastArea.txt +43 BROKENCW 0x06 gotHit 0x00D4 0x01B6 226 72 debug_symbols_then_end 4 pseudocode/BROKENCW/slot_06_gotHit.txt +44 STELEPAD 0x06 gotHit 0x00D4 0x01CC 248 81 debug_symbols_then_end 5 pseudocode/STELEPAD/slot_06_gotHit.txt +44 STELEPAD 0x09 release 0x01CC 0x02D4 264 82 debug_symbols_then_end 3 pseudocode/STELEPAD/slot_09_release.txt +45 MONITNS 0x01 use 0x00D4 0x0336 610 189 debug_symbols_then_end 6 pseudocode/MONITNS/slot_01_use.txt +45 MONITNS 0x06 gotHit 0x0336 0x0370 58 9 debug_symbols_then_end 3 pseudocode/MONITNS/slot_06_gotHit.txt +46 GATGUNNS 0x06 gotHit 0x01EF 0x023D 78 17 debug_symbols_then_end 3 pseudocode/GATGUNNS/slot_06_gotHit.txt +46 GATGUNNS 0x0A equip 0x023D 0x02D2 149 52 body_exhausted 0 pseudocode/GATGUNNS/slot_0A_equip.txt +46 GATGUNNS 0x0B unequip 0x0131 0x0196 101 39 body_exhausted 0 pseudocode/GATGUNNS/slot_0B_unequip.txt +46 GATGUNNS 0x0F enterFastArea 0x00D4 0x0131 93 37 end_opcode 0 pseudocode/GATGUNNS/slot_0F_enterFastArea.txt +46 GATGUNNS 0x10 leaveFastArea 0x0196 0x01EF 89 35 end_opcode 0 pseudocode/GATGUNNS/slot_10_leaveFastArea.txt +47 GTELEPAD 0x06 gotHit 0x00D4 0x01CC 248 81 debug_symbols_then_end 5 pseudocode/GTELEPAD/slot_06_gotHit.txt +47 GTELEPAD 0x09 release 0x01CC 0x02D4 264 82 debug_symbols_then_end 3 pseudocode/GTELEPAD/slot_09_release.txt +48 GATGUNEW 0x06 gotHit 0x01EF 0x023D 78 17 debug_symbols_then_end 3 pseudocode/GATGUNEW/slot_06_gotHit.txt +48 GATGUNEW 0x0A equip 0x023D 0x02D2 149 52 body_exhausted 0 pseudocode/GATGUNEW/slot_0A_equip.txt +48 GATGUNEW 0x0B unequip 0x0131 0x0196 101 39 body_exhausted 0 pseudocode/GATGUNEW/slot_0B_unequip.txt +48 GATGUNEW 0x0F enterFastArea 0x00D4 0x0131 93 37 end_opcode 0 pseudocode/GATGUNEW/slot_0F_enterFastArea.txt +48 GATGUNEW 0x10 leaveFastArea 0x0196 0x01EF 89 35 end_opcode 0 pseudocode/GATGUNEW/slot_10_leaveFastArea.txt +49 FASTSKIL 0x0F enterFastArea 0x00D4 0x02B7 483 165 debug_symbols_then_end 3 pseudocode/FASTSKIL/slot_0F_enterFastArea.txt +50 ELEVPLAT 0x05 hit 0x00D4 0x0189 181 58 debug_symbols_then_end 4 pseudocode/ELEVPLAT/slot_05_hit.txt +50 ELEVPLAT 0x0A equip 0x0189 0x03A5 540 206 end_opcode 0 pseudocode/ELEVPLAT/slot_0A_equip.txt +50 ELEVPLAT 0x0F enterFastArea 0x03DE 0x0448 106 41 end_opcode 0 pseudocode/ELEVPLAT/slot_0F_enterFastArea.txt +50 ELEVPLAT 0x10 leaveFastArea 0x03A5 0x03DE 57 23 end_opcode 0 pseudocode/ELEVPLAT/slot_10_leaveFastArea.txt +51 CATWALK2 0x06 gotHit 0x00D4 0x0225 337 116 debug_symbols_then_end 4 pseudocode/CATWALK2/slot_06_gotHit.txt +52 LIFT 0x01 use 0x051F 0x05D5 182 66 end_opcode 0 pseudocode/LIFT/slot_01_use.txt +52 LIFT 0x06 gotHit 0x0246 0x051F 729 239 debug_symbols_then_end 4 pseudocode/LIFT/slot_06_gotHit.txt +52 LIFT 0x0F enterFastArea 0x00DA 0x0246 364 131 end_opcode 0 pseudocode/LIFT/slot_0F_enterFastArea.txt +52 LIFT 0x20 0x05D5 0x07CA 501 174 debug_symbols_then_end 7 pseudocode/LIFT/slot_20_slot_20.txt +53 CONVEY_E 0x06 gotHit 0x01D6 0x02E4 270 78 debug_symbols_then_end 8 pseudocode/CONVEY_E/slot_06_gotHit.txt +53 CONVEY_E 0x0A equip 0x00D4 0x01D6 258 99 body_exhausted 0 pseudocode/CONVEY_E/slot_0A_equip.txt +54 FFFLOOR 0x06 gotHit 0x047F 0x056B 236 73 debug_symbols_then_end 4 pseudocode/FFFLOOR/slot_06_gotHit.txt +54 FFFLOOR 0x0A equip 0x00D4 0x03B4 736 270 debug_symbols_then_end 4 pseudocode/FFFLOOR/slot_0A_equip.txt +54 FFFLOOR 0x0B unequip 0x03B4 0x047F 203 67 debug_symbols_then_end 3 pseudocode/FFFLOOR/slot_0B_unequip.txt +55 RECHAGNS 0x06 gotHit 0x00D4 0x02D3 511 189 debug_symbols_then_end 4 pseudocode/RECHAGNS/slot_06_gotHit.txt +56 RECHFLNS 0x06 gotHit 0x00D4 0x0329 597 217 debug_symbols_then_end 4 pseudocode/RECHFLNS/slot_06_gotHit.txt +56 RECHFLNS 0x09 release 0x0329 0x038F 102 28 debug_symbols_then_end 2 pseudocode/RECHFLNS/slot_09_release.txt +57 FIGHT_N2 0x06 gotHit 0x00D4 0x026C 408 142 debug_symbols_then_end 4 pseudocode/FIGHT_N2/slot_06_gotHit.txt +58 DEATHFL3 0x06 gotHit 0x010B 0x0159 78 17 debug_symbols_then_end 3 pseudocode/DEATHFL3/slot_06_gotHit.txt +58 DEATHFL3 0x0F enterFastArea 0x00D4 0x010B 55 22 end_opcode 0 pseudocode/DEATHFL3/slot_0F_enterFastArea.txt +59 BARRELS 0x06 gotHit 0x00D4 0x0133 95 21 debug_symbols_then_end 3 pseudocode/BARRELS/slot_06_gotHit.txt +60 BARRELNS 0x06 gotHit 0x00D4 0x0133 95 21 debug_symbols_then_end 3 pseudocode/BARRELNS/slot_06_gotHit.txt +61 BARRELEW 0x06 gotHit 0x00D4 0x0133 95 21 debug_symbols_then_end 3 pseudocode/BARRELEW/slot_06_gotHit.txt +62 BARRELNW 0x06 gotHit 0x00D4 0x0133 95 21 debug_symbols_then_end 3 pseudocode/BARRELNW/slot_06_gotHit.txt +63 BARRELSE 0x06 gotHit 0x00D4 0x0133 95 21 debug_symbols_then_end 3 pseudocode/BARRELSE/slot_06_gotHit.txt +64 RECHAGEW 0x06 gotHit 0x00D4 0x02D3 511 189 debug_symbols_then_end 4 pseudocode/RECHAGEW/slot_06_gotHit.txt +65 RECHFLEW 0x06 gotHit 0x00D4 0x0329 597 217 debug_symbols_then_end 4 pseudocode/RECHFLEW/slot_06_gotHit.txt +65 RECHFLEW 0x09 release 0x0329 0x038F 102 28 debug_symbols_then_end 2 pseudocode/RECHFLEW/slot_09_release.txt +66 G_POOL 0x06 gotHit 0x00D4 0x01F1 285 90 debug_symbols_then_end 4 pseudocode/G_POOL/slot_06_gotHit.txt +67 Y_POOL 0x06 gotHit 0x00D4 0x01EE 282 89 debug_symbols_then_end 4 pseudocode/Y_POOL/slot_06_gotHit.txt +68 MONITEW 0x01 use 0x00D4 0x0336 610 189 debug_symbols_then_end 6 pseudocode/MONITEW/slot_01_use.txt +68 MONITEW 0x06 gotHit 0x0336 0x0370 58 9 debug_symbols_then_end 3 pseudocode/MONITEW/slot_06_gotHit.txt +69 THERM 0x0F enterFastArea 0x00D4 0x011F 75 30 end_opcode 0 pseudocode/THERM/slot_0F_enterFastArea.txt +70 MALRM_NS 0x0F enterFastArea 0x00D4 0x0126 82 32 end_opcode 0 pseudocode/MALRM_NS/slot_0F_enterFastArea.txt +71 FIGHT_NS 0x06 gotHit 0x00D4 0x0298 452 154 debug_symbols_then_end 4 pseudocode/FIGHT_NS/slot_06_gotHit.txt +72 FIGHT_N3 0x06 gotHit 0x00D4 0x0298 452 154 debug_symbols_then_end 4 pseudocode/FIGHT_N3/slot_06_gotHit.txt +73 FIGHT_N1 0x06 gotHit 0x00D4 0x026C 408 142 debug_symbols_then_end 4 pseudocode/FIGHT_N1/slot_06_gotHit.txt +74 RTELEPAD 0x06 gotHit 0x00D4 0x01CC 248 81 debug_symbols_then_end 5 pseudocode/RTELEPAD/slot_06_gotHit.txt +74 RTELEPAD 0x09 release 0x01CC 0x02D4 264 82 debug_symbols_then_end 3 pseudocode/RTELEPAD/slot_09_release.txt +75 MTELEPAD 0x06 gotHit 0x00D4 0x01CC 248 81 debug_symbols_then_end 5 pseudocode/MTELEPAD/slot_06_gotHit.txt +75 MTELEPAD 0x09 release 0x01CC 0x02D4 264 82 debug_symbols_then_end 3 pseudocode/MTELEPAD/slot_09_release.txt +76 FIGHT_E3 0x06 gotHit 0x00D4 0x026C 408 142 debug_symbols_then_end 4 pseudocode/FIGHT_E3/slot_06_gotHit.txt +77 FIGHT_E1 0x06 gotHit 0x00D4 0x026C 408 142 debug_symbols_then_end 4 pseudocode/FIGHT_E1/slot_06_gotHit.txt +78 FIGHT_E2 0x06 gotHit 0x00D4 0x026C 408 142 debug_symbols_then_end 4 pseudocode/FIGHT_E2/slot_06_gotHit.txt +79 PPLATE 0x06 gotHit 0x00D4 0x0264 400 134 debug_symbols_then_end 4 pseudocode/PPLATE/slot_06_gotHit.txt +80 PPLATE2 0x06 gotHit 0x01E3 0x03E5 514 173 debug_symbols_then_end 5 pseudocode/PPLATE2/slot_06_gotHit.txt +80 PPLATE2 0x0A equip 0x00D4 0x01E3 271 83 debug_symbols_then_end 3 pseudocode/PPLATE2/slot_0A_equip.txt +81 FIGHT_EW 0x06 gotHit 0x00D4 0x026C 408 142 debug_symbols_then_end 4 pseudocode/FIGHT_EW/slot_06_gotHit.txt +82 LAZERNS 0x0A equip 0x039A 0x0485 235 85 body_exhausted 0 pseudocode/LAZERNS/slot_0A_equip.txt +82 LAZERNS 0x10 leaveFastArea 0x0350 0x039A 74 28 end_opcode 0 pseudocode/LAZERNS/slot_10_leaveFastArea.txt +82 LAZERNS 0x20 0x00DA 0x0350 630 242 debug_symbols_then_end 5 pseudocode/LAZERNS/slot_20_slot_20.txt +83 LAZEREW 0x0A equip 0x039D 0x0488 235 85 body_exhausted 0 pseudocode/LAZEREW/slot_0A_equip.txt +83 LAZEREW 0x10 leaveFastArea 0x0353 0x039D 74 28 end_opcode 0 pseudocode/LAZEREW/slot_10_leaveFastArea.txt +83 LAZEREW 0x20 0x00DA 0x0353 633 244 debug_symbols_then_end 5 pseudocode/LAZEREW/slot_20_slot_20.txt +84 RADAR 0x0F enterFastArea 0x00D4 0x010C 56 22 end_opcode 0 pseudocode/RADAR/slot_0F_enterFastArea.txt +85 RSTATION 0x0F enterFastArea 0x00D4 0x011F 75 30 end_opcode 0 pseudocode/RSTATION/slot_0F_enterFastArea.txt +86 JOHN 0x01 use 0x00D4 0x0120 76 31 end_opcode 0 pseudocode/JOHN/slot_01_use.txt +86 JOHN 0x04 cachein 0x0120 0x017E 94 26 debug_symbols_then_end 2 pseudocode/JOHN/slot_04_cachein.txt +87 ENFORCER 0x0E calledFromAnim 0x00D4 0x011B 71 29 end_opcode 0 pseudocode/ENFORCER/slot_0E_calledFromAnim.txt +88 CAMERACO 0x06 gotHit 0x0581 0x0647 198 60 debug_symbols_then_end 3 pseudocode/CAMERACO/slot_06_gotHit.txt +88 CAMERACO 0x0F enterFastArea 0x00D4 0x0537 1123 374 debug_symbols_then_end 11 pseudocode/CAMERACO/slot_0F_enterFastArea.txt +88 CAMERACO 0x10 leaveFastArea 0x0537 0x0581 74 29 end_opcode 0 pseudocode/CAMERACO/slot_10_leaveFastArea.txt +89 MOTION 0x06 gotHit 0x0348 0x0434 236 74 debug_symbols_then_end 4 pseudocode/MOTION/slot_06_gotHit.txt +89 MOTION 0x0F enterFastArea 0x00D4 0x030D 569 183 debug_symbols_then_end 8 pseudocode/MOTION/slot_0F_enterFastArea.txt +89 MOTION 0x10 leaveFastArea 0x030D 0x0348 59 23 end_opcode 0 pseudocode/MOTION/slot_10_leaveFastArea.txt +90 CAMERANS 0x06 gotHit 0x057B 0x0641 198 60 debug_symbols_then_end 3 pseudocode/CAMERANS/slot_06_gotHit.txt +90 CAMERANS 0x0F enterFastArea 0x00D4 0x0531 1117 370 debug_symbols_then_end 11 pseudocode/CAMERANS/slot_0F_enterFastArea.txt +90 CAMERANS 0x10 leaveFastArea 0x0531 0x057B 74 29 end_opcode 0 pseudocode/CAMERANS/slot_10_leaveFastArea.txt +91 CAM_EW 0x06 gotHit 0x01EF 0x023D 78 17 debug_symbols_then_end 3 pseudocode/CAM_EW/slot_06_gotHit.txt +91 CAM_EW 0x0A equip 0x023D 0x02D2 149 52 body_exhausted 0 pseudocode/CAM_EW/slot_0A_equip.txt +91 CAM_EW 0x0B unequip 0x0131 0x0196 101 39 body_exhausted 0 pseudocode/CAM_EW/slot_0B_unequip.txt +91 CAM_EW 0x0F enterFastArea 0x00D4 0x0131 93 37 end_opcode 0 pseudocode/CAM_EW/slot_0F_enterFastArea.txt +91 CAM_EW 0x10 leaveFastArea 0x0196 0x01EF 89 35 end_opcode 0 pseudocode/CAM_EW/slot_10_leaveFastArea.txt +92 CAM_NS 0x06 gotHit 0x01EF 0x023D 78 17 debug_symbols_then_end 3 pseudocode/CAM_NS/slot_06_gotHit.txt +92 CAM_NS 0x0A equip 0x023D 0x02D2 149 52 body_exhausted 0 pseudocode/CAM_NS/slot_0A_equip.txt +92 CAM_NS 0x0B unequip 0x0131 0x0196 101 39 body_exhausted 0 pseudocode/CAM_NS/slot_0B_unequip.txt +92 CAM_NS 0x0F enterFastArea 0x00D4 0x0131 93 37 end_opcode 0 pseudocode/CAM_NS/slot_0F_enterFastArea.txt +92 CAM_NS 0x10 leaveFastArea 0x0196 0x01EF 89 35 end_opcode 0 pseudocode/CAM_NS/slot_10_leaveFastArea.txt +93 FUSREACT 0x0F enterFastArea 0x00D4 0x010C 56 22 end_opcode 0 pseudocode/FUSREACT/slot_0F_enterFastArea.txt +94 TRANSFOR 0x06 gotHit 0x011F 0x0300 481 160 debug_symbols_then_end 6 pseudocode/TRANSFOR/slot_06_gotHit.txt +94 TRANSFOR 0x0F enterFastArea 0x00D4 0x011F 75 30 end_opcode 0 pseudocode/TRANSFOR/slot_0F_enterFastArea.txt +95 SHOCKEW 0x0B unequip 0x00D4 0x0129 85 32 body_exhausted 0 pseudocode/SHOCKEW/slot_0B_unequip.txt +95 SHOCKEW 0x0F enterFastArea 0x0129 0x0161 56 22 end_opcode 0 pseudocode/SHOCKEW/slot_0F_enterFastArea.txt +95 SHOCKEW 0x10 leaveFastArea 0x0161 0x01BE 93 35 end_opcode 0 pseudocode/SHOCKEW/slot_10_leaveFastArea.txt +96 FFFLOOR2 0x06 gotHit 0x045C 0x0548 236 73 debug_symbols_then_end 4 pseudocode/FFFLOOR2/slot_06_gotHit.txt +96 FFFLOOR2 0x0A equip 0x00D4 0x0391 701 260 debug_symbols_then_end 4 pseudocode/FFFLOOR2/slot_0A_equip.txt +96 FFFLOOR2 0x0B unequip 0x0391 0x045C 203 67 debug_symbols_then_end 3 pseudocode/FFFLOOR2/slot_0B_unequip.txt +97 SHOCKNS 0x0B unequip 0x00D4 0x0129 85 32 body_exhausted 0 pseudocode/SHOCKNS/slot_0B_unequip.txt +97 SHOCKNS 0x0F enterFastArea 0x0129 0x0161 56 22 end_opcode 0 pseudocode/SHOCKNS/slot_0F_enterFastArea.txt +97 SHOCKNS 0x10 leaveFastArea 0x0161 0x01BE 93 35 end_opcode 0 pseudocode/SHOCKNS/slot_10_leaveFastArea.txt +98 L_NS-2 0x06 gotHit 0x00D4 0x0177 163 44 debug_symbols_then_end 3 pseudocode/L_NS-2/slot_06_gotHit.txt +98 L_NS-2 0x0B unequip 0x01C2 0x0216 84 35 body_exhausted 0 pseudocode/L_NS-2/slot_0B_unequip.txt +98 L_NS-2 0x0F enterFastArea 0x0177 0x01C2 75 30 end_opcode 0 pseudocode/L_NS-2/slot_0F_enterFastArea.txt +98 L_NS-2 0x13 avatarStoleSomething 0x0216 0x0257 65 27 body_exhausted 0 pseudocode/L_NS-2/slot_13_avatarStoleSomething.txt +99 L_NS-4 0x06 gotHit 0x00D4 0x0177 163 44 debug_symbols_then_end 3 pseudocode/L_NS-4/slot_06_gotHit.txt +99 L_NS-4 0x0B unequip 0x01C2 0x0216 84 35 body_exhausted 0 pseudocode/L_NS-4/slot_0B_unequip.txt +99 L_NS-4 0x0F enterFastArea 0x0177 0x01C2 75 30 end_opcode 0 pseudocode/L_NS-4/slot_0F_enterFastArea.txt +99 L_NS-4 0x13 avatarStoleSomething 0x0216 0x0257 65 27 body_exhausted 0 pseudocode/L_NS-4/slot_13_avatarStoleSomething.txt +100 SENTRY 0x06 gotHit 0x01EF 0x023D 78 17 debug_symbols_then_end 3 pseudocode/SENTRY/slot_06_gotHit.txt +100 SENTRY 0x0A equip 0x023D 0x02D2 149 52 body_exhausted 0 pseudocode/SENTRY/slot_0A_equip.txt +100 SENTRY 0x0B unequip 0x0131 0x0196 101 39 body_exhausted 0 pseudocode/SENTRY/slot_0B_unequip.txt +100 SENTRY 0x0E calledFromAnim 0x02D2 0x032E 92 24 debug_symbols_then_end 3 pseudocode/SENTRY/slot_0E_calledFromAnim.txt +100 SENTRY 0x0F enterFastArea 0x00D4 0x0131 93 37 end_opcode 0 pseudocode/SENTRY/slot_0F_enterFastArea.txt +100 SENTRY 0x10 leaveFastArea 0x0196 0x01EF 89 35 end_opcode 0 pseudocode/SENTRY/slot_10_leaveFastArea.txt +101 L_NS-8 0x06 gotHit 0x00D4 0x0177 163 44 debug_symbols_then_end 3 pseudocode/L_NS-8/slot_06_gotHit.txt +101 L_NS-8 0x0B unequip 0x01C2 0x0216 84 35 body_exhausted 0 pseudocode/L_NS-8/slot_0B_unequip.txt +101 L_NS-8 0x0F enterFastArea 0x0177 0x01C2 75 30 end_opcode 0 pseudocode/L_NS-8/slot_0F_enterFastArea.txt +101 L_NS-8 0x13 avatarStoleSomething 0x0216 0x0257 65 27 body_exhausted 0 pseudocode/L_NS-8/slot_13_avatarStoleSomething.txt +102 L_NS-16 0x06 gotHit 0x00D4 0x0177 163 44 debug_symbols_then_end 3 pseudocode/L_NS-16/slot_06_gotHit.txt +102 L_NS-16 0x0B unequip 0x01C2 0x0216 84 35 body_exhausted 0 pseudocode/L_NS-16/slot_0B_unequip.txt +102 L_NS-16 0x0F enterFastArea 0x0177 0x01C2 75 30 end_opcode 0 pseudocode/L_NS-16/slot_0F_enterFastArea.txt +102 L_NS-16 0x13 avatarStoleSomething 0x0216 0x0257 65 27 body_exhausted 0 pseudocode/L_NS-16/slot_13_avatarStoleSomething.txt +103 L_EW-2 0x06 gotHit 0x00D4 0x0177 163 44 debug_symbols_then_end 3 pseudocode/L_EW-2/slot_06_gotHit.txt +103 L_EW-2 0x0B unequip 0x01C2 0x0216 84 35 body_exhausted 0 pseudocode/L_EW-2/slot_0B_unequip.txt +103 L_EW-2 0x0F enterFastArea 0x0177 0x01C2 75 30 end_opcode 0 pseudocode/L_EW-2/slot_0F_enterFastArea.txt +103 L_EW-2 0x13 avatarStoleSomething 0x0216 0x0257 65 27 body_exhausted 0 pseudocode/L_EW-2/slot_13_avatarStoleSomething.txt +104 L_EW-4 0x06 gotHit 0x00D4 0x0177 163 44 debug_symbols_then_end 3 pseudocode/L_EW-4/slot_06_gotHit.txt +104 L_EW-4 0x0B unequip 0x01C2 0x0216 84 35 body_exhausted 0 pseudocode/L_EW-4/slot_0B_unequip.txt +104 L_EW-4 0x0F enterFastArea 0x0177 0x01C2 75 30 end_opcode 0 pseudocode/L_EW-4/slot_0F_enterFastArea.txt +104 L_EW-4 0x13 avatarStoleSomething 0x0216 0x0257 65 27 body_exhausted 0 pseudocode/L_EW-4/slot_13_avatarStoleSomething.txt +105 L_EW-8 0x06 gotHit 0x00D4 0x0177 163 44 debug_symbols_then_end 3 pseudocode/L_EW-8/slot_06_gotHit.txt +105 L_EW-8 0x0B unequip 0x01C2 0x0216 84 35 body_exhausted 0 pseudocode/L_EW-8/slot_0B_unequip.txt +105 L_EW-8 0x0F enterFastArea 0x0177 0x01C2 75 30 end_opcode 0 pseudocode/L_EW-8/slot_0F_enterFastArea.txt +105 L_EW-8 0x13 avatarStoleSomething 0x0216 0x0257 65 27 body_exhausted 0 pseudocode/L_EW-8/slot_13_avatarStoleSomething.txt +106 L_EW-16 0x06 gotHit 0x00D4 0x0177 163 44 debug_symbols_then_end 3 pseudocode/L_EW-16/slot_06_gotHit.txt +106 L_EW-16 0x0B unequip 0x01C2 0x0216 84 35 body_exhausted 0 pseudocode/L_EW-16/slot_0B_unequip.txt +106 L_EW-16 0x0F enterFastArea 0x0177 0x01C2 75 30 end_opcode 0 pseudocode/L_EW-16/slot_0F_enterFastArea.txt +106 L_EW-16 0x13 avatarStoleSomething 0x0216 0x0257 65 27 body_exhausted 0 pseudocode/L_EW-16/slot_13_avatarStoleSomething.txt +107 MDESKEW 0x06 gotHit 0x00D4 0x01DB 263 84 debug_symbols_then_end 5 pseudocode/MDESKEW/slot_06_gotHit.txt +108 LASERI 0x06 gotHit 0x00D4 0x02CC 504 168 debug_symbols_then_end 7 pseudocode/LASERI/slot_06_gotHit.txt +109 BUBBLE 0x0F enterFastArea 0x00D4 0x026D 409 135 debug_symbols_then_end 2 pseudocode/BUBBLE/slot_0F_enterFastArea.txt +109 BUBBLE 0x10 leaveFastArea 0x026D 0x02A8 59 23 end_opcode 0 pseudocode/BUBBLE/slot_10_leaveFastArea.txt +110 CAMERAEW 0x06 gotHit 0x057B 0x0641 198 60 debug_symbols_then_end 3 pseudocode/CAMERAEW/slot_06_gotHit.txt +110 CAMERAEW 0x0F enterFastArea 0x00D4 0x0531 1117 370 debug_symbols_then_end 11 pseudocode/CAMERAEW/slot_0F_enterFastArea.txt +110 CAMERAEW 0x10 leaveFastArea 0x0531 0x057B 74 29 end_opcode 0 pseudocode/CAMERAEW/slot_10_leaveFastArea.txt +111 TELEPAD 0x06 gotHit 0x0126 0x04E9 963 359 debug_symbols_then_end 8 pseudocode/TELEPAD/slot_06_gotHit.txt +111 TELEPAD 0x09 release 0x0B09 0x0B8E 133 39 debug_symbols_then_end 3 pseudocode/TELEPAD/slot_09_release.txt +111 TELEPAD 0x0F enterFastArea 0x00DA 0x0126 76 31 end_opcode 0 pseudocode/TELEPAD/slot_0F_enterFastArea.txt +111 TELEPAD 0x20 0x04E9 0x0B09 1568 502 debug_symbols_then_end 11 pseudocode/TELEPAD/slot_20_slot_20.txt +112 MDESKNS 0x06 gotHit 0x00D4 0x01DB 263 84 debug_symbols_then_end 5 pseudocode/MDESKNS/slot_06_gotHit.txt +113 MBARREL 0x05 hit 0x0257 0x0379 290 83 debug_symbols_then_end 8 pseudocode/MBARREL/slot_05_hit.txt +113 MBARREL 0x06 gotHit 0x00D4 0x0257 387 118 debug_symbols_then_end 9 pseudocode/MBARREL/slot_06_gotHit.txt +114 S_CHAIR 0x06 gotHit 0x00D4 0x02AA 470 152 debug_symbols_then_end 8 pseudocode/S_CHAIR/slot_06_gotHit.txt +115 TARGETNS 0x06 gotHit 0x00D4 0x01A5 209 65 debug_symbols_then_end 4 pseudocode/TARGETNS/slot_06_gotHit.txt +116 TARGETEW 0x06 gotHit 0x00D4 0x01A5 209 65 debug_symbols_then_end 4 pseudocode/TARGETEW/slot_06_gotHit.txt +117 BART 0x01 use 0x00D4 0x01CB 247 73 debug_symbols_then_end 2 pseudocode/BART/slot_01_use.txt +117 BART 0x0F enterFastArea 0x01CB 0x04A7 732 248 debug_symbols_then_end 4 pseudocode/BART/slot_0F_enterFastArea.txt +118 SMALCHAI 0x06 gotHit 0x00D4 0x02AA 470 152 debug_symbols_then_end 8 pseudocode/SMALCHAI/slot_06_gotHit.txt +119 MFAN_NS 0x06 gotHit 0x00D4 0x0168 148 41 debug_symbols_then_end 3 pseudocode/MFAN_NS/slot_06_gotHit.txt +120 MFAN_EW 0x06 gotHit 0x00D4 0x0168 148 41 debug_symbols_then_end 3 pseudocode/MFAN_EW/slot_06_gotHit.txt +121 SAFE_NS 0x0A equip 0x00D4 0x0403 815 289 debug_symbols_then_end 5 pseudocode/SAFE_NS/slot_0A_equip.txt +122 SAFE_EW 0x0A equip 0x00D4 0x0403 815 289 debug_symbols_then_end 5 pseudocode/SAFE_EW/slot_0A_equip.txt +123 BETTY 0x0A equip 0x00D4 0x0173 159 59 body_exhausted 0 pseudocode/BETTY/slot_0A_equip.txt +124 ELEVATOR 0x06 gotHit 0x00DA 0x054F 1141 419 debug_symbols_then_end 8 pseudocode/ELEVATOR/slot_06_gotHit.txt +124 ELEVATOR 0x09 release 0x0F09 0x0FE0 215 62 debug_symbols_then_end 4 pseudocode/ELEVATOR/slot_09_release.txt +124 ELEVATOR 0x20 0x054F 0x0F09 2490 853 debug_symbols_then_end 10 pseudocode/ELEVATOR/slot_20_slot_20.txt +125 DEATHFL1 0x06 gotHit 0x010B 0x0159 78 17 debug_symbols_then_end 3 pseudocode/DEATHFL1/slot_06_gotHit.txt +125 DEATHFL1 0x0F enterFastArea 0x00D4 0x010B 55 22 end_opcode 0 pseudocode/DEATHFL1/slot_0F_enterFastArea.txt +126 DEATHFL2 0x06 gotHit 0x010B 0x0159 78 17 debug_symbols_then_end 3 pseudocode/DEATHFL2/slot_06_gotHit.txt +126 DEATHFL2 0x0F enterFastArea 0x00D4 0x010B 55 22 end_opcode 0 pseudocode/DEATHFL2/slot_0F_enterFastArea.txt +127 D_BARREL 0x06 gotHit 0x00D4 0x0170 156 48 debug_symbols_then_end 3 pseudocode/D_BARREL/slot_06_gotHit.txt +128 CONVFLR 0x06 gotHit 0x01D6 0x02E4 270 78 debug_symbols_then_end 8 pseudocode/CONVFLR/slot_06_gotHit.txt +128 CONVFLR 0x0A equip 0x00D4 0x01D6 258 99 body_exhausted 0 pseudocode/CONVFLR/slot_0A_equip.txt +129 PODBOY 0x06 gotHit 0x01F2 0x0389 407 135 debug_symbols_then_end 6 pseudocode/PODBOY/slot_06_gotHit.txt +129 PODBOY 0x20 0x00DA 0x01F2 280 90 debug_symbols_then_end 5 pseudocode/PODBOY/slot_20_slot_20.txt +130 VALUEBOX 0x04 cachein 0x00DA 0x0144 106 30 debug_symbols_then_end 2 pseudocode/VALUEBOX/slot_04_cachein.txt +130 VALUEBOX 0x20 0x0144 0x01B9 117 26 debug_symbols_then_end 4 pseudocode/VALUEBOX/slot_20_slot_20.txt +131 STATICNS 0x06 gotHit 0x00D4 0x012F 91 22 debug_symbols_then_end 3 pseudocode/STATICNS/slot_06_gotHit.txt +131 STATICNS 0x0F enterFastArea 0x012F 0x0159 42 17 end_opcode 0 pseudocode/STATICNS/slot_0F_enterFastArea.txt +132 BIGCOMNS 0x06 gotHit 0x00D4 0x017D 169 47 debug_symbols_then_end 4 pseudocode/BIGCOMNS/slot_06_gotHit.txt +132 BIGCOMNS 0x0F enterFastArea 0x017D 0x01B4 55 22 end_opcode 0 pseudocode/BIGCOMNS/slot_0F_enterFastArea.txt +133 BIGCOMEW 0x06 gotHit 0x00D4 0x017D 169 47 debug_symbols_then_end 4 pseudocode/BIGCOMEW/slot_06_gotHit.txt +133 BIGCOMEW 0x0F enterFastArea 0x017D 0x01B4 55 22 end_opcode 0 pseudocode/BIGCOMEW/slot_0F_enterFastArea.txt +134 EYECAMNS 0x06 gotHit 0x01EF 0x024C 93 23 debug_symbols_then_end 3 pseudocode/EYECAMNS/slot_06_gotHit.txt +134 EYECAMNS 0x0A equip 0x024C 0x02E1 149 52 body_exhausted 0 pseudocode/EYECAMNS/slot_0A_equip.txt +134 EYECAMNS 0x0B unequip 0x0131 0x0196 101 39 body_exhausted 0 pseudocode/EYECAMNS/slot_0B_unequip.txt +134 EYECAMNS 0x0F enterFastArea 0x00D4 0x0131 93 37 end_opcode 0 pseudocode/EYECAMNS/slot_0F_enterFastArea.txt +134 EYECAMNS 0x10 leaveFastArea 0x0196 0x01EF 89 35 end_opcode 0 pseudocode/EYECAMNS/slot_10_leaveFastArea.txt +135 EYECAMEW 0x06 gotHit 0x01EF 0x023D 78 17 debug_symbols_then_end 3 pseudocode/EYECAMEW/slot_06_gotHit.txt +135 EYECAMEW 0x0A equip 0x023D 0x02D2 149 52 body_exhausted 0 pseudocode/EYECAMEW/slot_0A_equip.txt +135 EYECAMEW 0x0B unequip 0x0131 0x0196 101 39 body_exhausted 0 pseudocode/EYECAMEW/slot_0B_unequip.txt +135 EYECAMEW 0x0F enterFastArea 0x00D4 0x0131 93 37 end_opcode 0 pseudocode/EYECAMEW/slot_0F_enterFastArea.txt +135 EYECAMEW 0x10 leaveFastArea 0x0196 0x01EF 89 35 end_opcode 0 pseudocode/EYECAMEW/slot_10_leaveFastArea.txt +136 MALRM_EW 0x0F enterFastArea 0x00D4 0x0126 82 32 end_opcode 0 pseudocode/MALRM_EW/slot_0F_enterFastArea.txt +137 GLASS_EW 0x06 gotHit 0x00D4 0x0351 637 226 debug_symbols_then_end 7 pseudocode/GLASS_EW/slot_06_gotHit.txt +138 ESPACE2 0x0A equip 0x01A6 0x01FB 85 30 body_exhausted 0 pseudocode/ESPACE2/slot_0A_equip.txt +138 ESPACE2 0x0F enterFastArea 0x00D4 0x01A6 210 71 debug_symbols_then_end 3 pseudocode/ESPACE2/slot_0F_enterFastArea.txt +139 CONV_NL 0x06 gotHit 0x01D6 0x02E4 270 78 debug_symbols_then_end 8 pseudocode/CONV_NL/slot_06_gotHit.txt +139 CONV_NL 0x0A equip 0x00D4 0x01D6 258 99 body_exhausted 0 pseudocode/CONV_NL/slot_0A_equip.txt +140 CONV_EL 0x06 gotHit 0x01D6 0x02E4 270 78 debug_symbols_then_end 8 pseudocode/CONV_EL/slot_06_gotHit.txt +140 CONV_EL 0x0A equip 0x00D4 0x01D6 258 99 body_exhausted 0 pseudocode/CONV_EL/slot_0A_equip.txt +141 MGR_NS 0x06 gotHit 0x00D4 0x01A4 208 62 debug_symbols_then_end 3 pseudocode/MGR_NS/slot_06_gotHit.txt +142 MINELET 0x05 hit 0x00D4 0x011D 73 15 debug_symbols_then_end 3 pseudocode/MINELET/slot_05_hit.txt +142 MINELET 0x10 leaveFastArea 0x011D 0x0152 53 21 end_opcode 0 pseudocode/MINELET/slot_10_leaveFastArea.txt +143 FLORMINE 0x06 gotHit 0x00D4 0x021D 329 112 debug_symbols_then_end 5 pseudocode/FLORMINE/slot_06_gotHit.txt +144 SWITCHNS 0x01 use 0x00D4 0x0181 173 65 end_opcode 0 pseudocode/SWITCHNS/slot_01_use.txt +145 HOVER_EW 0x0A equip 0x0130 0x0185 85 30 body_exhausted 0 pseudocode/HOVER_EW/slot_0A_equip.txt +145 HOVER_EW 0x0B unequip 0x00D4 0x0130 92 33 body_exhausted 0 pseudocode/HOVER_EW/slot_0B_unequip.txt +145 HOVER_EW 0x0F enterFastArea 0x0185 0x0202 125 52 end_opcode 0 pseudocode/HOVER_EW/slot_0F_enterFastArea.txt +145 HOVER_EW 0x10 leaveFastArea 0x0202 0x0253 81 34 end_opcode 0 pseudocode/HOVER_EW/slot_10_leaveFastArea.txt +146 HOVER_NS 0x0A equip 0x0130 0x0185 85 30 body_exhausted 0 pseudocode/HOVER_NS/slot_0A_equip.txt +146 HOVER_NS 0x0B unequip 0x00D4 0x0130 92 33 body_exhausted 0 pseudocode/HOVER_NS/slot_0B_unequip.txt +146 HOVER_NS 0x0F enterFastArea 0x0185 0x0202 125 52 end_opcode 0 pseudocode/HOVER_NS/slot_0F_enterFastArea.txt +146 HOVER_NS 0x10 leaveFastArea 0x0202 0x0253 81 34 end_opcode 0 pseudocode/HOVER_NS/slot_10_leaveFastArea.txt +147 MGR_EW 0x06 gotHit 0x00D4 0x01A4 208 62 debug_symbols_then_end 3 pseudocode/MGR_EW/slot_06_gotHit.txt +148 SSBOX_EW 0x06 gotHit 0x00D4 0x0215 321 103 debug_symbols_then_end 3 pseudocode/SSBOX_EW/slot_06_gotHit.txt +149 BLASERNS 0x05 hit 0x025A 0x02B8 94 21 debug_symbols_then_end 3 pseudocode/BLASERNS/slot_05_hit.txt +149 BLASERNS 0x06 gotHit 0x02B8 0x0316 94 21 debug_symbols_then_end 3 pseudocode/BLASERNS/slot_06_gotHit.txt +149 BLASERNS 0x0A equip 0x013D 0x01CD 144 47 debug_symbols_then_end 3 pseudocode/BLASERNS/slot_0A_equip.txt +149 BLASERNS 0x0B unequip 0x00D4 0x013D 105 42 body_exhausted 0 pseudocode/BLASERNS/slot_0B_unequip.txt +149 BLASERNS 0x0F enterFastArea 0x01CD 0x0221 84 35 end_opcode 0 pseudocode/BLASERNS/slot_0F_enterFastArea.txt +149 BLASERNS 0x10 leaveFastArea 0x0221 0x025A 57 23 end_opcode 0 pseudocode/BLASERNS/slot_10_leaveFastArea.txt +150 BLASEREW 0x05 hit 0x025A 0x02B8 94 21 debug_symbols_then_end 3 pseudocode/BLASEREW/slot_05_hit.txt +150 BLASEREW 0x06 gotHit 0x02B8 0x0316 94 21 debug_symbols_then_end 3 pseudocode/BLASEREW/slot_06_gotHit.txt +150 BLASEREW 0x0A equip 0x013D 0x01CD 144 47 debug_symbols_then_end 3 pseudocode/BLASEREW/slot_0A_equip.txt +150 BLASEREW 0x0B unequip 0x00D4 0x013D 105 42 body_exhausted 0 pseudocode/BLASEREW/slot_0B_unequip.txt +150 BLASEREW 0x0F enterFastArea 0x01CD 0x0221 84 35 end_opcode 0 pseudocode/BLASEREW/slot_0F_enterFastArea.txt +150 BLASEREW 0x10 leaveFastArea 0x0221 0x025A 57 23 end_opcode 0 pseudocode/BLASEREW/slot_10_leaveFastArea.txt +151 BETTYUP 0x06 gotHit 0x010C 0x01CB 191 57 debug_symbols_then_end 4 pseudocode/BETTYUP/slot_06_gotHit.txt +151 BETTYUP 0x0A equip 0x01CB 0x027C 177 65 body_exhausted 0 pseudocode/BETTYUP/slot_0A_equip.txt +151 BETTYUP 0x0F enterFastArea 0x00D4 0x010C 56 22 end_opcode 0 pseudocode/BETTYUP/slot_0F_enterFastArea.txt +152 SSBOX_NS 0x06 gotHit 0x00D4 0x0215 321 103 debug_symbols_then_end 3 pseudocode/SSBOX_NS/slot_06_gotHit.txt +153 ROAMING 0x0E calledFromAnim 0x00D4 0x013F 107 34 debug_symbols_then_end 2 pseudocode/ROAMING/slot_0E_calledFromAnim.txt +154 STABLE 0x06 gotHit 0x00D4 0x02AF 475 170 debug_symbols_then_end 6 pseudocode/STABLE/slot_06_gotHit.txt +155 LIFTPIT 0x06 gotHit 0x00D4 0x0133 95 23 debug_symbols_then_end 4 pseudocode/LIFTPIT/slot_06_gotHit.txt +156 CONGRESS 0x0E calledFromAnim 0x00D4 0x011B 71 29 end_opcode 0 pseudocode/CONGRESS/slot_0E_calledFromAnim.txt +157 SICBOXNS 0x06 gotHit 0x00D4 0x02BE 490 188 debug_symbols_then_end 4 pseudocode/SICBOXNS/slot_06_gotHit.txt +158 SICBFLNS 0x06 gotHit 0x00D4 0x043E 874 341 debug_symbols_then_end 4 pseudocode/SICBFLNS/slot_06_gotHit.txt +158 SICBFLNS 0x09 release 0x043E 0x04A4 102 28 debug_symbols_then_end 2 pseudocode/SICBFLNS/slot_09_release.txt +159 PRISBENC 0x0F enterFastArea 0x00D4 0x033B 615 207 debug_symbols_then_end 2 pseudocode/PRISBENC/slot_0F_enterFastArea.txt +159 PRISBENC 0x10 leaveFastArea 0x033B 0x0376 59 23 end_opcode 0 pseudocode/PRISBENC/slot_10_leaveFastArea.txt +160 PRISSIT 0x0F enterFastArea 0x00D4 0x033B 615 207 debug_symbols_then_end 2 pseudocode/PRISSIT/slot_0F_enterFastArea.txt +160 PRISSIT 0x10 leaveFastArea 0x033B 0x0376 59 23 end_opcode 0 pseudocode/PRISSIT/slot_10_leaveFastArea.txt +161 PRISLEAN 0x0F enterFastArea 0x00D4 0x033B 615 207 debug_symbols_then_end 2 pseudocode/PRISLEAN/slot_0F_enterFastArea.txt +161 PRISLEAN 0x10 leaveFastArea 0x033B 0x0376 59 23 end_opcode 0 pseudocode/PRISLEAN/slot_10_leaveFastArea.txt +162 WALGUNNS 0x06 gotHit 0x01EF 0x023D 78 17 debug_symbols_then_end 3 pseudocode/WALGUNNS/slot_06_gotHit.txt +162 WALGUNNS 0x0A equip 0x023D 0x02D2 149 52 body_exhausted 0 pseudocode/WALGUNNS/slot_0A_equip.txt +162 WALGUNNS 0x0B unequip 0x0131 0x0196 101 39 body_exhausted 0 pseudocode/WALGUNNS/slot_0B_unequip.txt +162 WALGUNNS 0x0F enterFastArea 0x00D4 0x0131 93 37 end_opcode 0 pseudocode/WALGUNNS/slot_0F_enterFastArea.txt +162 WALGUNNS 0x10 leaveFastArea 0x0196 0x01EF 89 35 end_opcode 0 pseudocode/WALGUNNS/slot_10_leaveFastArea.txt +163 GLASS_NS 0x06 gotHit 0x00D4 0x0351 637 226 debug_symbols_then_end 7 pseudocode/GLASS_NS/slot_06_gotHit.txt +164 MAINTMAN 0x0E calledFromAnim 0x00D4 0x011B 71 29 end_opcode 0 pseudocode/MAINTMAN/slot_0E_calledFromAnim.txt +165 CHEMSUIT 0x0E calledFromAnim 0x00D4 0x011B 71 29 end_opcode 0 pseudocode/CHEMSUIT/slot_0E_calledFromAnim.txt +166 OFFWORK 0x0E calledFromAnim 0x00D4 0x011B 71 29 end_opcode 0 pseudocode/OFFWORK/slot_0E_calledFromAnim.txt +167 GUARD 0x0E calledFromAnim 0x00D4 0x011B 71 29 end_opcode 0 pseudocode/GUARD/slot_0E_calledFromAnim.txt +168 GDOOR_N 0x06 gotHit 0x00D4 0x0133 95 21 debug_symbols_then_end 3 pseudocode/GDOOR_N/slot_06_gotHit.txt +169 GDOOR_E 0x06 gotHit 0x00D4 0x0133 95 21 debug_symbols_then_end 3 pseudocode/GDOOR_E/slot_06_gotHit.txt +170 BIGCAN 0x06 gotHit 0x00D4 0x021C 328 105 debug_symbols_then_end 5 pseudocode/BIGCAN/slot_06_gotHit.txt +171 AND_BOOT 0x0A equip 0x00D4 0x0327 595 199 debug_symbols_then_end 3 pseudocode/AND_BOOT/slot_0A_equip.txt +171 AND_BOOT 0x0F enterFastArea 0x0327 0x055E 567 197 debug_symbols_then_end 3 pseudocode/AND_BOOT/slot_0F_enterFastArea.txt +171 AND_BOOT 0x10 leaveFastArea 0x055E 0x0599 59 23 end_opcode 0 pseudocode/AND_BOOT/slot_10_leaveFastArea.txt +172 BRO_BOOT 0x0A equip 0x00D4 0x03A9 725 244 debug_symbols_then_end 3 pseudocode/BRO_BOOT/slot_0A_equip.txt +172 BRO_BOOT 0x0F enterFastArea 0x03A9 0x05F5 588 209 debug_symbols_then_end 3 pseudocode/BRO_BOOT/slot_0F_enterFastArea.txt +172 BRO_BOOT 0x10 leaveFastArea 0x05F5 0x0630 59 23 end_opcode 0 pseudocode/BRO_BOOT/slot_10_leaveFastArea.txt +173 CRUMORPH 0x0A equip 0x00D4 0x02DE 522 175 debug_symbols_then_end 4 pseudocode/CRUMORPH/slot_0A_equip.txt +174 GUARDSQ 0x0E calledFromAnim 0x00D4 0x011B 71 29 end_opcode 0 pseudocode/GUARDSQ/slot_0E_calledFromAnim.txt +175 CARD_NS 0x01 use 0x00D4 0x010C 56 22 end_opcode 0 pseudocode/CARD_NS/slot_01_use.txt +176 CARD_EW 0x01 use 0x00D4 0x010C 56 22 end_opcode 0 pseudocode/CARD_EW/slot_01_use.txt +177 EWALLEW 0x0B unequip 0x010B 0x0157 76 29 body_exhausted 0 pseudocode/EWALLEW/slot_0B_unequip.txt +177 EWALLEW 0x0F enterFastArea 0x00D4 0x010B 55 22 end_opcode 0 pseudocode/EWALLEW/slot_0F_enterFastArea.txt +177 EWALLEW 0x13 avatarStoleSomething 0x0157 0x01A3 76 29 body_exhausted 0 pseudocode/EWALLEW/slot_13_avatarStoleSomething.txt +178 EWALLNS 0x0B unequip 0x010B 0x0157 76 29 body_exhausted 0 pseudocode/EWALLNS/slot_0B_unequip.txt +178 EWALLNS 0x0F enterFastArea 0x00D4 0x010B 55 22 end_opcode 0 pseudocode/EWALLNS/slot_0F_enterFastArea.txt +178 EWALLNS 0x13 avatarStoleSomething 0x0157 0x01A3 76 29 body_exhausted 0 pseudocode/EWALLNS/slot_13_avatarStoleSomething.txt +179 ESPACE 0x0A equip 0x01A6 0x01FB 85 30 body_exhausted 0 pseudocode/ESPACE/slot_0A_equip.txt +179 ESPACE 0x0F enterFastArea 0x00D4 0x01A6 210 71 debug_symbols_then_end 3 pseudocode/ESPACE/slot_0F_enterFastArea.txt +180 WINDSURF 0x06 gotHit 0x0226 0x0687 1121 425 debug_symbols_then_end 10 pseudocode/WINDSURF/slot_06_gotHit.txt +180 WINDSURF 0x0A equip 0x00D4 0x0195 193 63 debug_symbols_then_end 3 pseudocode/WINDSURF/slot_0A_equip.txt +180 WINDSURF 0x0B unequip 0x0195 0x0226 145 45 debug_symbols_then_end 3 pseudocode/WINDSURF/slot_0B_unequip.txt +180 WINDSURF 0x10 leaveFastArea 0x0687 0x06C2 59 23 end_opcode 0 pseudocode/WINDSURF/slot_10_leaveFastArea.txt +181 THERMATR 0x0E calledFromAnim 0x00D4 0x013F 107 34 debug_symbols_then_end 2 pseudocode/THERMATR/slot_0E_calledFromAnim.txt +182 D_GUARD 0x01 use 0x01ED 0x0251 100 39 end_opcode 0 pseudocode/D_GUARD/slot_01_use.txt +182 D_GUARD 0x06 gotHit 0x00D4 0x01ED 281 94 debug_symbols_then_end 4 pseudocode/D_GUARD/slot_06_gotHit.txt +183 OBSERVER 0x0E calledFromAnim 0x00D4 0x00FE 42 17 end_opcode 0 pseudocode/OBSERVER/slot_0E_calledFromAnim.txt +184 GRENADE 0x05 hit 0x011C 0x0164 72 15 debug_symbols_then_end 3 pseudocode/GRENADE/slot_05_hit.txt +184 GRENADE 0x06 gotHit 0x00D4 0x011C 72 15 debug_symbols_then_end 3 pseudocode/GRENADE/slot_06_gotHit.txt +185 SCIENTIS 0x0E calledFromAnim 0x00D4 0x011B 71 29 end_opcode 0 pseudocode/SCIENTIS/slot_0E_calledFromAnim.txt +186 ROLL_NS 0x05 hit 0x0C03 0x0C64 97 25 debug_symbols_then_end 3 pseudocode/ROLL_NS/slot_05_hit.txt +186 ROLL_NS 0x06 gotHit 0x0B1A 0x0C03 233 73 debug_symbols_then_end 3 pseudocode/ROLL_NS/slot_06_gotHit.txt +186 ROLL_NS 0x0A equip 0x0135 0x01DC 167 67 body_exhausted 0 pseudocode/ROLL_NS/slot_0A_equip.txt +186 ROLL_NS 0x0B unequip 0x00E0 0x0135 85 30 body_exhausted 0 pseudocode/ROLL_NS/slot_0B_unequip.txt +186 ROLL_NS 0x20 0x01DC 0x03D9 509 159 debug_symbols_then_end 11 pseudocode/ROLL_NS/slot_20_slot_20.txt +186 ROLL_NS 0x21 0x03D9 0x0B1A 1857 689 debug_symbols_then_end 12 pseudocode/ROLL_NS/slot_21_slot_21.txt +187 REB_COUP 0x0A equip 0x0219 0x0366 333 109 debug_symbols_then_end 3 pseudocode/REB_COUP/slot_0A_equip.txt +187 REB_COUP 0x0F enterFastArea 0x00D4 0x0219 325 102 debug_symbols_then_end 2 pseudocode/REB_COUP/slot_0F_enterFastArea.txt +188 MEDIKIT 0x01 use 0x00D4 0x020C 312 94 debug_symbols_then_end 2 pseudocode/MEDIKIT/slot_01_use.txt +189 COR_BOOT 0x0A equip 0x00D4 0x02FB 551 184 debug_symbols_then_end 3 pseudocode/COR_BOOT/slot_0A_equip.txt +189 COR_BOOT 0x0F enterFastArea 0x02FB 0x052F 564 197 debug_symbols_then_end 3 pseudocode/COR_BOOT/slot_0F_enterFastArea.txt +189 COR_BOOT 0x10 leaveFastArea 0x052F 0x056A 59 23 end_opcode 0 pseudocode/COR_BOOT/slot_10_leaveFastArea.txt +190 EVENT 0x0A equip 0x00D4 0x20AA 8150 2938 debug_symbols_then_end 24 pseudocode/EVENT/slot_0A_equip.txt +191 NPCTRIG 0x0A equip 0x00DA 0x024F 373 111 debug_symbols_then_end 5 pseudocode/NPCTRIG/slot_0A_equip.txt +191 NPCTRIG 0x20 0x024F 0x03A8 345 111 debug_symbols_then_end 5 pseudocode/NPCTRIG/slot_20_slot_20.txt +192 PIT 0x06 gotHit 0x00D4 0x01FC 296 91 debug_symbols_then_end 5 pseudocode/PIT/slot_06_gotHit.txt +193 CRUZTRIG 0x06 gotHit 0x00D4 0x034B 631 209 debug_symbols_then_end 5 pseudocode/CRUZTRIG/slot_06_gotHit.txt +194 NPC_ONLY 0x06 gotHit 0x00D4 0x02EB 535 179 debug_symbols_then_end 6 pseudocode/NPC_ONLY/slot_06_gotHit.txt +195 VMAIL 0x0A equip 0x00D4 0x047A 934 270 debug_symbols_then_end 3 pseudocode/VMAIL/slot_0A_equip.txt +196 STORMTRO 0x0E calledFromAnim 0x00D4 0x011B 71 29 end_opcode 0 pseudocode/STORMTRO/slot_0E_calledFromAnim.txt +197 WALGUNEW 0x06 gotHit 0x01EF 0x023D 78 17 debug_symbols_then_end 3 pseudocode/WALGUNEW/slot_06_gotHit.txt +197 WALGUNEW 0x0A equip 0x023D 0x02D2 149 52 body_exhausted 0 pseudocode/WALGUNEW/slot_0A_equip.txt +197 WALGUNEW 0x0B unequip 0x0131 0x0196 101 39 body_exhausted 0 pseudocode/WALGUNEW/slot_0B_unequip.txt +197 WALGUNEW 0x0F enterFastArea 0x00D4 0x0131 93 37 end_opcode 0 pseudocode/WALGUNEW/slot_0F_enterFastArea.txt +197 WALGUNEW 0x10 leaveFastArea 0x0196 0x01EF 89 35 end_opcode 0 pseudocode/WALGUNEW/slot_10_leaveFastArea.txt +198 STATICEW 0x06 gotHit 0x00D4 0x012F 91 22 debug_symbols_then_end 3 pseudocode/STATICEW/slot_06_gotHit.txt +198 STATICEW 0x0F enterFastArea 0x012F 0x0159 42 17 end_opcode 0 pseudocode/STATICEW/slot_0F_enterFastArea.txt +199 BARDUDES 0x0F enterFastArea 0x00D4 0x034D 633 219 debug_symbols_then_end 2 pseudocode/BARDUDES/slot_0F_enterFastArea.txt +200 ANDROID 0x0E calledFromAnim 0x00D4 0x011B 71 29 end_opcode 0 pseudocode/ANDROID/slot_0E_calledFromAnim.txt +201 SOLDIER 0x0E calledFromAnim 0x00D4 0x011B 71 29 end_opcode 0 pseudocode/SOLDIER/slot_0E_calledFromAnim.txt +202 CHEDITRO 0x0E calledFromAnim 0x00D4 0x012A 86 25 debug_symbols_then_end 2 pseudocode/CHEDITRO/slot_0E_calledFromAnim.txt +203 SPIDWALK 0x05 hit 0x0164 0x01AD 73 15 debug_symbols_then_end 3 pseudocode/SPIDWALK/slot_05_hit.txt +203 SPIDWALK 0x06 gotHit 0x0109 0x0164 91 22 debug_symbols_then_end 3 pseudocode/SPIDWALK/slot_06_gotHit.txt +203 SPIDWALK 0x10 leaveFastArea 0x00D4 0x0109 53 21 end_opcode 0 pseudocode/SPIDWALK/slot_10_leaveFastArea.txt +204 SPIDPAD 0x0A equip 0x011D 0x018A 109 41 body_exhausted 0 pseudocode/SPIDPAD/slot_0A_equip.txt +204 SPIDPAD 0x10 leaveFastArea 0x00D4 0x011D 73 28 end_opcode 0 pseudocode/SPIDPAD/slot_10_leaveFastArea.txt +205 GOVGUNNS 0x06 gotHit 0x01EF 0x023D 78 17 debug_symbols_then_end 3 pseudocode/GOVGUNNS/slot_06_gotHit.txt +205 GOVGUNNS 0x0A equip 0x023D 0x02D2 149 52 body_exhausted 0 pseudocode/GOVGUNNS/slot_0A_equip.txt +205 GOVGUNNS 0x0B unequip 0x0131 0x0196 101 39 body_exhausted 0 pseudocode/GOVGUNNS/slot_0B_unequip.txt +205 GOVGUNNS 0x0F enterFastArea 0x00D4 0x0131 93 37 end_opcode 0 pseudocode/GOVGUNNS/slot_0F_enterFastArea.txt +205 GOVGUNNS 0x10 leaveFastArea 0x0196 0x01EF 89 35 end_opcode 0 pseudocode/GOVGUNNS/slot_10_leaveFastArea.txt +206 LANDMINE 0x01 use 0x00D4 0x055A 1158 432 debug_symbols_then_end 8 pseudocode/LANDMINE/slot_01_use.txt +206 LANDMINE 0x06 gotHit 0x055A 0x0629 207 61 debug_symbols_then_end 5 pseudocode/LANDMINE/slot_06_gotHit.txt +207 BLASTPAC 0x01 use 0x00DA 0x06F2 1560 560 debug_symbols_then_end 10 pseudocode/BLASTPAC/slot_01_use.txt +207 BLASTPAC 0x20 0x06F2 0x106A 2424 821 debug_symbols_then_end 11 pseudocode/BLASTPAC/slot_20_slot_20.txt +208 FUSPAC 0x01 use 0x00D4 0x0800 1836 669 debug_symbols_then_end 12 pseudocode/FUSPAC/slot_01_use.txt +209 GOVGUNEW 0x06 gotHit 0x01EF 0x023D 78 17 debug_symbols_then_end 3 pseudocode/GOVGUNEW/slot_06_gotHit.txt +209 GOVGUNEW 0x0A equip 0x023D 0x02D2 149 52 body_exhausted 0 pseudocode/GOVGUNEW/slot_0A_equip.txt +209 GOVGUNEW 0x0B unequip 0x0131 0x0196 101 39 body_exhausted 0 pseudocode/GOVGUNEW/slot_0B_unequip.txt +209 GOVGUNEW 0x0F enterFastArea 0x00D4 0x0131 93 37 end_opcode 0 pseudocode/GOVGUNEW/slot_0F_enterFastArea.txt +209 GOVGUNEW 0x10 leaveFastArea 0x0196 0x01EF 89 35 end_opcode 0 pseudocode/GOVGUNEW/slot_10_leaveFastArea.txt +210 EBRIDGE 0x0A equip 0x0180 0x01E2 98 35 body_exhausted 0 pseudocode/EBRIDGE/slot_0A_equip.txt +210 EBRIDGE 0x0F enterFastArea 0x00D4 0x0180 172 56 debug_symbols_then_end 3 pseudocode/EBRIDGE/slot_0F_enterFastArea.txt +211 SPANEL 0x01 use 0x00D4 0x015B 135 52 end_opcode 0 pseudocode/SPANEL/slot_01_use.txt +212 VARGAS 0x0E calledFromAnim 0x00D4 0x0132 94 39 end_opcode 0 pseudocode/VARGAS/slot_0E_calledFromAnim.txt +213 SL_NS-16 0x0B unequip 0x00D4 0x0114 64 27 body_exhausted 0 pseudocode/SL_NS-16/slot_0B_unequip.txt +213 SL_NS-16 0x13 avatarStoleSomething 0x0114 0x0154 64 27 body_exhausted 0 pseudocode/SL_NS-16/slot_13_avatarStoleSomething.txt +214 SL_NS-8 0x0B unequip 0x00D4 0x0114 64 27 body_exhausted 0 pseudocode/SL_NS-8/slot_0B_unequip.txt +214 SL_NS-8 0x13 avatarStoleSomething 0x0114 0x0154 64 27 body_exhausted 0 pseudocode/SL_NS-8/slot_13_avatarStoleSomething.txt +215 SL_NS-4 0x0B unequip 0x00D4 0x0114 64 27 body_exhausted 0 pseudocode/SL_NS-4/slot_0B_unequip.txt +215 SL_NS-4 0x13 avatarStoleSomething 0x0114 0x0154 64 27 body_exhausted 0 pseudocode/SL_NS-4/slot_13_avatarStoleSomething.txt +216 SL_EW-4 0x0B unequip 0x00D4 0x0114 64 27 body_exhausted 0 pseudocode/SL_EW-4/slot_0B_unequip.txt +216 SL_EW-4 0x13 avatarStoleSomething 0x0114 0x0154 64 27 body_exhausted 0 pseudocode/SL_EW-4/slot_13_avatarStoleSomething.txt +217 SL_EW-8 0x0B unequip 0x00D4 0x0114 64 27 body_exhausted 0 pseudocode/SL_EW-8/slot_0B_unequip.txt +217 SL_EW-8 0x13 avatarStoleSomething 0x0114 0x0154 64 27 body_exhausted 0 pseudocode/SL_EW-8/slot_13_avatarStoleSomething.txt +218 SL_EW-16 0x0B unequip 0x00D4 0x0114 64 27 body_exhausted 0 pseudocode/SL_EW-16/slot_0B_unequip.txt +218 SL_EW-16 0x13 avatarStoleSomething 0x0114 0x0154 64 27 body_exhausted 0 pseudocode/SL_EW-16/slot_13_avatarStoleSomething.txt +219 MELF 0x01 use 0x00D4 0x0245 369 123 debug_symbols_then_end 2 pseudocode/MELF/slot_01_use.txt +220 OPC 0x01 use 0x00D4 0x03F7 803 273 debug_symbols_then_end 2 pseudocode/OPC/slot_01_use.txt +221 GENERATR 0x06 gotHit 0x00D4 0x0132 94 21 debug_symbols_then_end 3 pseudocode/GENERATR/slot_06_gotHit.txt +222 RFANBADE 0x06 gotHit 0x00D4 0x01ED 281 90 debug_symbols_then_end 6 pseudocode/RFANBADE/slot_06_gotHit.txt +222 RFANBADE 0x0A equip 0x01ED 0x0401 532 184 debug_symbols_then_end 7 pseudocode/RFANBADE/slot_0A_equip.txt +223 RFANBADN 0x06 gotHit 0x00D4 0x01ED 281 90 debug_symbols_then_end 6 pseudocode/RFANBADN/slot_06_gotHit.txt +223 RFANBADN 0x0A equip 0x01ED 0x0402 533 184 debug_symbols_then_end 7 pseudocode/RFANBADN/slot_0A_equip.txt +224 WVENTNS 0x06 gotHit 0x010B 0x01D7 204 61 debug_symbols_then_end 5 pseudocode/WVENTNS/slot_06_gotHit.txt +224 WVENTNS 0x0F enterFastArea 0x00D4 0x010B 55 22 end_opcode 0 pseudocode/WVENTNS/slot_0F_enterFastArea.txt +225 WVENTEW 0x06 gotHit 0x010B 0x01E4 217 66 debug_symbols_then_end 5 pseudocode/WVENTEW/slot_06_gotHit.txt +225 WVENTEW 0x0F enterFastArea 0x00D4 0x010B 55 22 end_opcode 0 pseudocode/WVENTEW/slot_0F_enterFastArea.txt +226 REBEL_TV 0x01 use 0x00D4 0x041F 843 290 end_opcode 0 pseudocode/REBEL_TV/slot_01_use.txt +227 SDOOR_N 0x06 gotHit 0x00D4 0x0130 92 20 debug_symbols_then_end 3 pseudocode/SDOOR_N/slot_06_gotHit.txt +228 SDOOR_E 0x06 gotHit 0x00D4 0x0130 92 20 debug_symbols_then_end 3 pseudocode/SDOOR_E/slot_06_gotHit.txt +229 FLAMEBOX 0x0A equip 0x00E0 0x034A 618 229 debug_symbols_then_end 5 pseudocode/FLAMEBOX/slot_0A_equip.txt +229 FLAMEBOX 0x20 0x034A 0x04F6 428 138 debug_symbols_then_end 5 pseudocode/FLAMEBOX/slot_20_slot_20.txt +229 FLAMEBOX 0x21 0x04F6 0x0790 666 221 debug_symbols_then_end 6 pseudocode/FLAMEBOX/slot_21_slot_21.txt +230 EBRIDGE2 0x0A equip 0x0180 0x01E2 98 35 body_exhausted 0 pseudocode/EBRIDGE2/slot_0A_equip.txt +230 EBRIDGE2 0x0F enterFastArea 0x00D4 0x0180 172 56 debug_symbols_then_end 3 pseudocode/EBRIDGE2/slot_0F_enterFastArea.txt +231 MCRATE 0x06 gotHit 0x00D4 0x028F 443 148 debug_symbols_then_end 7 pseudocode/MCRATE/slot_06_gotHit.txt +232 COPY_EW 0x06 gotHit 0x00D4 0x01BF 235 69 debug_symbols_then_end 5 pseudocode/COPY_EW/slot_06_gotHit.txt +233 COPY_NS 0x06 gotHit 0x00D4 0x01BF 235 69 debug_symbols_then_end 5 pseudocode/COPY_NS/slot_06_gotHit.txt +234 ART 0x06 gotHit 0x00D4 0x01A2 206 60 debug_symbols_then_end 4 pseudocode/ART/slot_06_gotHit.txt +235 FLAME1 0x06 gotHit 0x010B 0x0168 93 20 debug_symbols_then_end 3 pseudocode/FLAME1/slot_06_gotHit.txt +235 FLAME1 0x0F enterFastArea 0x00D4 0x010B 55 22 end_opcode 0 pseudocode/FLAME1/slot_0F_enterFastArea.txt +236 REB_PAD 0x06 gotHit 0x00E0 0x0416 822 302 debug_symbols_then_end 6 pseudocode/REB_PAD/slot_06_gotHit.txt +236 REB_PAD 0x20 0x0416 0x0588 370 107 debug_symbols_then_end 3 pseudocode/REB_PAD/slot_20_slot_20.txt +236 REB_PAD 0x21 0x0588 0x06D2 330 98 debug_symbols_then_end 6 pseudocode/REB_PAD/slot_21_slot_21.txt +237 NOSTRIL 0x0A equip 0x00E0 0x01A0 192 61 debug_symbols_then_end 3 pseudocode/NOSTRIL/slot_0A_equip.txt +237 NOSTRIL 0x20 0x01A0 0x02C9 297 90 debug_symbols_then_end 4 pseudocode/NOSTRIL/slot_20_slot_20.txt +237 NOSTRIL 0x21 0x02C9 0x0487 446 149 debug_symbols_then_end 4 pseudocode/NOSTRIL/slot_21_slot_21.txt +238 VARDESK 0x01 use 0x00D4 0x03CA 758 256 debug_symbols_then_end 3 pseudocode/VARDESK/slot_01_use.txt +238 VARDESK 0x0F enterFastArea 0x03CA 0x05C8 510 171 debug_symbols_then_end 3 pseudocode/VARDESK/slot_0F_enterFastArea.txt +238 VARDESK 0x10 leaveFastArea 0x05C8 0x0603 59 23 end_opcode 0 pseudocode/VARDESK/slot_10_leaveFastArea.txt +239 BLASER1 0x05 hit 0x0266 0x02C4 94 21 debug_symbols_then_end 3 pseudocode/BLASER1/slot_05_hit.txt +239 BLASER1 0x06 gotHit 0x02C4 0x0322 94 21 debug_symbols_then_end 3 pseudocode/BLASER1/slot_06_gotHit.txt +239 BLASER1 0x0A equip 0x0149 0x01D9 144 47 debug_symbols_then_end 3 pseudocode/BLASER1/slot_0A_equip.txt +239 BLASER1 0x0B unequip 0x00E0 0x0149 105 42 body_exhausted 0 pseudocode/BLASER1/slot_0B_unequip.txt +239 BLASER1 0x0F enterFastArea 0x01D9 0x022D 84 35 end_opcode 0 pseudocode/BLASER1/slot_0F_enterFastArea.txt +239 BLASER1 0x10 leaveFastArea 0x022D 0x0266 57 23 end_opcode 0 pseudocode/BLASER1/slot_10_leaveFastArea.txt +239 BLASER1 0x20 0x0322 0x0847 1317 527 debug_symbols_then_end 13 pseudocode/BLASER1/slot_20_slot_20.txt +239 BLASER1 0x21 0x0847 0x08E8 161 41 debug_symbols_then_end 4 pseudocode/BLASER1/slot_21_slot_21.txt +240 REB_BOOT 0x0F enterFastArea 0x00D4 0x0208 308 94 debug_symbols_then_end 2 pseudocode/REB_BOOT/slot_0F_enterFastArea.txt +241 UPPLATE 0x06 gotHit 0x00D4 0x02A9 469 154 debug_symbols_then_end 4 pseudocode/UPPLATE/slot_06_gotHit.txt +242 KEYPADNS 0x01 use 0x00D4 0x01EF 283 89 debug_symbols_then_end 2 pseudocode/KEYPADNS/slot_01_use.txt +243 KEYPADEW 0x01 use 0x00D4 0x01EF 283 89 debug_symbols_then_end 2 pseudocode/KEYPADEW/slot_01_use.txt +244 WSHOCKNS 0x06 gotHit 0x0185 0x03F5 624 196 debug_symbols_then_end 17 pseudocode/WSHOCKNS/slot_06_gotHit.txt +244 WSHOCKNS 0x0B unequip 0x00D4 0x0185 177 58 debug_symbols_then_end 3 pseudocode/WSHOCKNS/slot_0B_unequip.txt +244 WSHOCKNS 0x13 avatarStoleSomething 0x03F5 0x0435 64 24 body_exhausted 0 pseudocode/WSHOCKNS/slot_13_avatarStoleSomething.txt +245 WSHOCKEW 0x06 gotHit 0x0185 0x03F5 624 196 debug_symbols_then_end 17 pseudocode/WSHOCKEW/slot_06_gotHit.txt +245 WSHOCKEW 0x0B unequip 0x00D4 0x0185 177 58 debug_symbols_then_end 3 pseudocode/WSHOCKEW/slot_0B_unequip.txt +245 WSHOCKEW 0x13 avatarStoleSomething 0x03F5 0x0435 64 24 body_exhausted 0 pseudocode/WSHOCKEW/slot_13_avatarStoleSomething.txt +246 ELYDESK 0x01 use 0x00D4 0x0446 882 301 debug_symbols_then_end 3 pseudocode/ELYDESK/slot_01_use.txt +246 ELYDESK 0x0F enterFastArea 0x0446 0x0677 561 193 debug_symbols_then_end 2 pseudocode/ELYDESK/slot_0F_enterFastArea.txt +246 ELYDESK 0x10 leaveFastArea 0x0677 0x06B2 59 23 end_opcode 0 pseudocode/ELYDESK/slot_10_leaveFastArea.txt +247 SSWITCHN 0x01 use 0x015C 0x08A8 1868 673 debug_symbols_then_end 17 pseudocode/SSWITCHN/slot_01_use.txt +247 SSWITCHN 0x06 gotHit 0x00D4 0x015C 136 37 debug_symbols_then_end 3 pseudocode/SSWITCHN/slot_06_gotHit.txt +248 SSWITCHE 0x01 use 0x015C 0x08A8 1868 673 debug_symbols_then_end 17 pseudocode/SSWITCHE/slot_01_use.txt +248 SSWITCHE 0x06 gotHit 0x00D4 0x015C 136 37 debug_symbols_then_end 3 pseudocode/SSWITCHE/slot_06_gotHit.txt +249 SHOCKNS1 0x0B unequip 0x00D4 0x0165 145 52 body_exhausted 0 pseudocode/SHOCKNS1/slot_0B_unequip.txt +249 SHOCKNS1 0x0F enterFastArea 0x0165 0x019D 56 22 end_opcode 0 pseudocode/SHOCKNS1/slot_0F_enterFastArea.txt +249 SHOCKNS1 0x10 leaveFastArea 0x019D 0x01FA 93 35 end_opcode 0 pseudocode/SHOCKNS1/slot_10_leaveFastArea.txt +250 SHOCKEW1 0x0B unequip 0x00D4 0x0165 145 52 body_exhausted 0 pseudocode/SHOCKEW1/slot_0B_unequip.txt +250 SHOCKEW1 0x0F enterFastArea 0x0165 0x019D 56 22 end_opcode 0 pseudocode/SHOCKEW1/slot_0F_enterFastArea.txt +250 SHOCKEW1 0x10 leaveFastArea 0x019D 0x01FA 93 35 end_opcode 0 pseudocode/SHOCKEW1/slot_10_leaveFastArea.txt +251 WEA_BOOT 0x01 use 0x0262 0x028C 42 17 end_opcode 0 pseudocode/WEA_BOOT/slot_01_use.txt +251 WEA_BOOT 0x0A equip 0x00D4 0x0262 398 132 debug_symbols_then_end 3 pseudocode/WEA_BOOT/slot_0A_equip.txt +251 WEA_BOOT 0x0F enterFastArea 0x028C 0x047B 495 165 debug_symbols_then_end 3 pseudocode/WEA_BOOT/slot_0F_enterFastArea.txt +251 WEA_BOOT 0x10 leaveFastArea 0x047B 0x04B6 59 23 end_opcode 0 pseudocode/WEA_BOOT/slot_10_leaveFastArea.txt +252 VAR_BOOT 0x0A equip 0x00D4 0x036E 666 224 debug_symbols_then_end 3 pseudocode/VAR_BOOT/slot_0A_equip.txt +252 VAR_BOOT 0x0F enterFastArea 0x036E 0x05B2 580 205 debug_symbols_then_end 3 pseudocode/VAR_BOOT/slot_0F_enterFastArea.txt +252 VAR_BOOT 0x10 leaveFastArea 0x05B2 0x05ED 59 23 end_opcode 0 pseudocode/VAR_BOOT/slot_10_leaveFastArea.txt +253 COURIER 0x0E calledFromAnim 0x00D4 0x013F 107 34 debug_symbols_then_end 2 pseudocode/COURIER/slot_0E_calledFromAnim.txt +254 LWPLATE4 0x06 gotHit 0x00D4 0x0165 145 38 debug_symbols_then_end 4 pseudocode/LWPLATE4/slot_06_gotHit.txt +255 LWPLATE8 0x06 gotHit 0x00D4 0x0165 145 38 debug_symbols_then_end 4 pseudocode/LWPLATE8/slot_06_gotHit.txt +256 ALARMBOX 0x01 use 0x0188 0x024E 198 65 debug_symbols_then_end 2 pseudocode/ALARMBOX/slot_01_use.txt +256 ALARMBOX 0x0A equip 0x024E 0x03E4 406 145 debug_symbols_then_end 3 pseudocode/ALARMBOX/slot_0A_equip.txt +256 ALARMBOX 0x0F enterFastArea 0x00D4 0x0188 180 74 end_opcode 0 pseudocode/ALARMBOX/slot_0F_enterFastArea.txt +257 BLOOD 0x06 gotHit 0x00D4 0x0189 181 58 debug_symbols_then_end 3 pseudocode/BLOOD/slot_06_gotHit.txt +258 D_CHEM 0x01 use 0x01F3 0x0257 100 39 end_opcode 0 pseudocode/D_CHEM/slot_01_use.txt +258 D_CHEM 0x06 gotHit 0x00D4 0x01F3 287 97 debug_symbols_then_end 4 pseudocode/D_CHEM/slot_06_gotHit.txt +259 D_CONG 0x01 use 0x01F3 0x0257 100 39 end_opcode 0 pseudocode/D_CONG/slot_01_use.txt +259 D_CONG 0x06 gotHit 0x00D4 0x01F3 287 97 debug_symbols_then_end 4 pseudocode/D_CONG/slot_06_gotHit.txt +260 D_MAINT 0x01 use 0x01F3 0x0257 100 39 end_opcode 0 pseudocode/D_MAINT/slot_01_use.txt +260 D_MAINT 0x06 gotHit 0x00D4 0x01F3 287 97 debug_symbols_then_end 4 pseudocode/D_MAINT/slot_06_gotHit.txt +261 D_OWORK 0x01 use 0x01F3 0x0257 100 39 end_opcode 0 pseudocode/D_OWORK/slot_01_use.txt +261 D_OWORK 0x06 gotHit 0x00D4 0x01F3 287 97 debug_symbols_then_end 4 pseudocode/D_OWORK/slot_06_gotHit.txt +262 D_SCIEN 0x01 use 0x01F3 0x0257 100 39 end_opcode 0 pseudocode/D_SCIEN/slot_01_use.txt +262 D_SCIEN 0x06 gotHit 0x00D4 0x01F3 287 97 debug_symbols_then_end 4 pseudocode/D_SCIEN/slot_06_gotHit.txt +263 D_STORM 0x01 use 0x01F3 0x0257 100 39 end_opcode 0 pseudocode/D_STORM/slot_01_use.txt +263 D_STORM 0x06 gotHit 0x00D4 0x01F3 287 97 debug_symbols_then_end 4 pseudocode/D_STORM/slot_06_gotHit.txt +264 D_SOLD 0x01 use 0x01F3 0x0257 100 39 end_opcode 0 pseudocode/D_SOLD/slot_01_use.txt +264 D_SOLD 0x06 gotHit 0x00D4 0x01F3 287 97 debug_symbols_then_end 4 pseudocode/D_SOLD/slot_06_gotHit.txt +265 D_VARG 0x01 use 0x00D4 0x0138 100 39 end_opcode 0 pseudocode/D_VARG/slot_01_use.txt +266 D_COUR 0x06 gotHit 0x00D4 0x01CE 250 71 debug_symbols_then_end 4 pseudocode/D_COUR/slot_06_gotHit.txt +267 D_SUSAN 0x06 gotHit 0x00D4 0x01CE 250 71 debug_symbols_then_end 4 pseudocode/D_SUSAN/slot_06_gotHit.txt +268 D_THERM 0x01 use 0x00D4 0x0138 100 39 end_opcode 0 pseudocode/D_THERM/slot_01_use.txt +269 SURCAMNS 0x01 use 0x01B7 0x0208 81 32 end_opcode 0 pseudocode/SURCAMNS/slot_01_use.txt +269 SURCAMNS 0x0A equip 0x00E6 0x01B7 209 83 body_exhausted 0 pseudocode/SURCAMNS/slot_0A_equip.txt +269 SURCAMNS 0x20 0x0208 0x04C2 698 236 debug_symbols_then_end 7 pseudocode/SURCAMNS/slot_20_slot_20.txt +269 SURCAMNS 0x21 0x04C2 0x0BCB 1801 589 debug_symbols_then_end 12 pseudocode/SURCAMNS/slot_21_slot_21.txt +269 SURCAMNS 0x22 0x0BCB 0x0D6E 419 128 debug_symbols_then_end 4 pseudocode/SURCAMNS/slot_22_slot_22.txt +270 BASEGUN 0x06 gotHit 0x01EF 0x023D 78 17 debug_symbols_then_end 3 pseudocode/BASEGUN/slot_06_gotHit.txt +270 BASEGUN 0x0A equip 0x023D 0x02D2 149 52 body_exhausted 0 pseudocode/BASEGUN/slot_0A_equip.txt +270 BASEGUN 0x0B unequip 0x0131 0x0196 101 39 body_exhausted 0 pseudocode/BASEGUN/slot_0B_unequip.txt +270 BASEGUN 0x0E calledFromAnim 0x02D2 0x0442 368 132 debug_symbols_then_end 5 pseudocode/BASEGUN/slot_0E_calledFromAnim.txt +270 BASEGUN 0x0F enterFastArea 0x00D4 0x0131 93 37 end_opcode 0 pseudocode/BASEGUN/slot_0F_enterFastArea.txt +270 BASEGUN 0x10 leaveFastArea 0x0196 0x01EF 89 35 end_opcode 0 pseudocode/BASEGUN/slot_10_leaveFastArea.txt +271 TIMER 0x0A equip 0x0198 0x0219 129 52 body_exhausted 0 pseudocode/TIMER/slot_0A_equip.txt +271 TIMER 0x0F enterFastArea 0x00DA 0x013A 96 40 end_opcode 0 pseudocode/TIMER/slot_0F_enterFastArea.txt +271 TIMER 0x10 leaveFastArea 0x013A 0x0198 94 39 end_opcode 0 pseudocode/TIMER/slot_10_leaveFastArea.txt +271 TIMER 0x20 0x0219 0x0552 825 306 debug_symbols_then_end 8 pseudocode/TIMER/slot_20_slot_20.txt +272 SPECIAL 0x0A equip 0x00E0 0x0146 102 38 body_exhausted 0 pseudocode/SPECIAL/slot_0A_equip.txt +272 SPECIAL 0x0F enterFastArea 0x0616 0x075B 325 104 debug_symbols_then_end 3 pseudocode/SPECIAL/slot_0F_enterFastArea.txt +272 SPECIAL 0x10 leaveFastArea 0x075B 0x080E 179 69 end_opcode 0 pseudocode/SPECIAL/slot_10_leaveFastArea.txt +272 SPECIAL 0x20 0x0146 0x04DC 918 329 debug_symbols_then_end 6 pseudocode/SPECIAL/slot_20_slot_20.txt +272 SPECIAL 0x21 0x04DC 0x0616 314 95 debug_symbols_then_end 5 pseudocode/SPECIAL/slot_21_slot_21.txt +273 TRIGPAD 0x06 gotHit 0x00D4 0x035C 648 213 debug_symbols_then_end 6 pseudocode/TRIGPAD/slot_06_gotHit.txt +274 MONSTER 0x0A equip 0x0163 0x05A3 1088 427 debug_symbols_then_end 7 pseudocode/MONSTER/slot_0A_equip.txt +274 MONSTER 0x0F enterFastArea 0x00D4 0x0163 143 46 debug_symbols_then_end 2 pseudocode/MONSTER/slot_0F_enterFastArea.txt +275 ELITE 0x0E calledFromAnim 0x00D4 0x013F 107 34 debug_symbols_then_end 2 pseudocode/ELITE/slot_0E_calledFromAnim.txt +276 D_ESTORM 0x01 use 0x01F3 0x0257 100 39 end_opcode 0 pseudocode/D_ESTORM/slot_01_use.txt +276 D_ESTORM 0x06 gotHit 0x00D4 0x01F3 287 97 debug_symbols_then_end 4 pseudocode/D_ESTORM/slot_06_gotHit.txt +277 JELYHACK 0x01 use 0x00D4 0x00FE 42 17 end_opcode 0 pseudocode/JELYHACK/slot_01_use.txt +278 DATALINK 0x01 use 0x00D4 0x1488 5044 960 debug_symbols_then_end 2 pseudocode/DATALINK/slot_01_use.txt +279 SLIDEFLR 0x0B unequip 0x00D4 0x01B4 224 82 body_exhausted 0 pseudocode/SLIDEFLR/slot_0B_unequip.txt +279 SLIDEFLR 0x13 avatarStoleSomething 0x01B4 0x0294 224 82 body_exhausted 0 pseudocode/SLIDEFLR/slot_13_avatarStoleSomething.txt +280 JELYH2 0x01 use 0x00D4 0x00FE 42 17 end_opcode 0 pseudocode/JELYH2/slot_01_use.txt +281 HOFFMAN 0x0E calledFromAnim 0x00D4 0x0162 142 31 debug_symbols_then_end 5 pseudocode/HOFFMAN/slot_0E_calledFromAnim.txt +282 D_HOFFMA 0x01 use 0x00D4 0x0138 100 39 end_opcode 0 pseudocode/D_HOFFMA/slot_01_use.txt +283 REE_BOOT 0x0A equip 0x00D4 0x041F 843 284 debug_symbols_then_end 3 pseudocode/REE_BOOT/slot_0A_equip.txt +283 REE_BOOT 0x0F enterFastArea 0x041F 0x067B 604 217 debug_symbols_then_end 3 pseudocode/REE_BOOT/slot_0F_enterFastArea.txt +283 REE_BOOT 0x10 leaveFastArea 0x067B 0x06B6 59 23 end_opcode 0 pseudocode/REE_BOOT/slot_10_leaveFastArea.txt +284 SURCAMEW 0x01 use 0x01B7 0x02AE 247 93 end_opcode 0 pseudocode/SURCAMEW/slot_01_use.txt +284 SURCAMEW 0x0A equip 0x00E6 0x01B7 209 83 body_exhausted 0 pseudocode/SURCAMEW/slot_0A_equip.txt +284 SURCAMEW 0x20 0x02AE 0x0568 698 236 debug_symbols_then_end 7 pseudocode/SURCAMEW/slot_20_slot_20.txt +284 SURCAMEW 0x21 0x0568 0x0BBD 1621 527 debug_symbols_then_end 12 pseudocode/SURCAMEW/slot_21_slot_21.txt +284 SURCAMEW 0x22 0x0BBD 0x0D60 419 128 debug_symbols_then_end 4 pseudocode/SURCAMEW/slot_22_slot_22.txt +285 SFXTRIG 0x0A equip 0x00D4 0x018C 184 68 end_opcode 0 pseudocode/SFXTRIG/slot_0A_equip.txt +286 SKILLBOX 0x0A equip 0x00D4 0x0300 556 212 body_exhausted 0 pseudocode/SKILLBOX/slot_0A_equip.txt +287 D_GURDSQ 0x01 use 0x01F3 0x027D 138 50 end_opcode 0 pseudocode/D_GURDSQ/slot_01_use.txt +287 D_GURDSQ 0x06 gotHit 0x00D4 0x01F3 287 97 debug_symbols_then_end 4 pseudocode/D_GURDSQ/slot_06_gotHit.txt +288 VETRON 0x0E calledFromAnim 0x00D4 0x012A 86 25 debug_symbols_then_end 2 pseudocode/VETRON/slot_0E_calledFromAnim.txt +289 DEATHBOX 0x0A equip 0x00D4 0x029F 459 145 debug_symbols_then_end 7 pseudocode/DEATHBOX/slot_0A_equip.txt +290 REB_GAR 0x0F enterFastArea 0x0123 0x02CD 426 143 debug_symbols_then_end 2 pseudocode/REB_GAR/slot_0F_enterFastArea.txt +290 REB_GAR 0x10 leaveFastArea 0x00D4 0x0123 79 31 end_opcode 0 pseudocode/REB_GAR/slot_10_leaveFastArea.txt +291 BOUNCBOX 0x06 gotHit 0x00D4 0x04DE 1034 402 debug_symbols_then_end 11 pseudocode/BOUNCBOX/slot_06_gotHit.txt +291 BOUNCBOX 0x0A equip 0x04DE 0x051D 63 24 body_exhausted 0 pseudocode/BOUNCBOX/slot_0A_equip.txt +292 HOVER1 0x0A equip 0x0130 0x0185 85 30 body_exhausted 0 pseudocode/HOVER1/slot_0A_equip.txt +292 HOVER1 0x0B unequip 0x00D4 0x0130 92 33 body_exhausted 0 pseudocode/HOVER1/slot_0B_unequip.txt +292 HOVER1 0x0F enterFastArea 0x0185 0x0202 125 52 end_opcode 0 pseudocode/HOVER1/slot_0F_enterFastArea.txt +292 HOVER1 0x10 leaveFastArea 0x0202 0x0253 81 34 end_opcode 0 pseudocode/HOVER1/slot_10_leaveFastArea.txt +293 STEAM1 0x06 gotHit 0x010B 0x0168 93 20 debug_symbols_then_end 3 pseudocode/STEAM1/slot_06_gotHit.txt +293 STEAM1 0x0F enterFastArea 0x00D4 0x010B 55 22 end_opcode 0 pseudocode/STEAM1/slot_0F_enterFastArea.txt +294 FADE 0x0A equip 0x00DA 0x029A 448 167 body_exhausted 0 pseudocode/FADE/slot_0A_equip.txt +294 FADE 0x20 0x029A 0x0414 378 123 debug_symbols_then_end 3 pseudocode/FADE/slot_20_slot_20.txt +295 PHIR 0x01 use 0x00D4 0x01B3 223 75 end_opcode 0 pseudocode/PHIR/slot_01_use.txt +296 STEAMBOX 0x0A equip 0x00E0 0x0346 614 229 debug_symbols_then_end 5 pseudocode/STEAMBOX/slot_0A_equip.txt +296 STEAMBOX 0x20 0x0346 0x053C 502 164 debug_symbols_then_end 5 pseudocode/STEAMBOX/slot_20_slot_20.txt +296 STEAMBOX 0x21 0x053C 0x07E3 679 227 debug_symbols_then_end 5 pseudocode/STEAMBOX/slot_21_slot_21.txt +297 FLAME2 0x06 gotHit 0x010B 0x0168 93 20 debug_symbols_then_end 3 pseudocode/FLAME2/slot_06_gotHit.txt +297 FLAME2 0x0F enterFastArea 0x00D4 0x010B 55 22 end_opcode 0 pseudocode/FLAME2/slot_0F_enterFastArea.txt +298 STEAM2 0x06 gotHit 0x010B 0x0168 93 20 debug_symbols_then_end 3 pseudocode/STEAM2/slot_06_gotHit.txt +298 STEAM2 0x0F enterFastArea 0x00D4 0x010B 55 22 end_opcode 0 pseudocode/STEAM2/slot_0F_enterFastArea.txt +299 FLAMELP 0x06 gotHit 0x010B 0x0168 93 20 debug_symbols_then_end 3 pseudocode/FLAMELP/slot_06_gotHit.txt +299 FLAMELP 0x0F enterFastArea 0x00D4 0x010B 55 22 end_opcode 0 pseudocode/FLAMELP/slot_0F_enterFastArea.txt +300 BBOX 0x06 gotHit 0x00D4 0x0215 321 103 debug_symbols_then_end 3 pseudocode/BBOX/slot_06_gotHit.txt +301 GBOX_NS 0x06 gotHit 0x00D4 0x0215 321 103 debug_symbols_then_end 3 pseudocode/GBOX_NS/slot_06_gotHit.txt +302 GBOX_EW 0x06 gotHit 0x00D4 0x0215 321 103 debug_symbols_then_end 3 pseudocode/GBOX_EW/slot_06_gotHit.txt +303 EGRENADE 0x0E calledFromAnim 0x00D4 0x013F 107 34 debug_symbols_then_end 2 pseudocode/EGRENADE/slot_0E_calledFromAnim.txt +304 SCANNER 0x01 use 0x00DA 0x0251 375 123 debug_symbols_then_end 2 pseudocode/SCANNER/slot_01_use.txt +304 SCANNER 0x20 0x0251 0x02D7 134 40 debug_symbols_then_end 3 pseudocode/SCANNER/slot_20_slot_20.txt +305 IONIC 0x01 use 0x00D4 0x00FE 42 17 end_opcode 0 pseudocode/IONIC/slot_01_use.txt +306 PLASMA 0x01 use 0x00D4 0x00FE 42 17 end_opcode 0 pseudocode/PLASMA/slot_01_use.txt +307 GRAVITON 0x01 use 0x00D4 0x00FE 42 17 end_opcode 0 pseudocode/GRAVITON/slot_01_use.txt +308 GLDIV_EW 0x06 gotHit 0x00D4 0x0351 637 226 debug_symbols_then_end 7 pseudocode/GLDIV_EW/slot_06_gotHit.txt +309 GLDIV_NS 0x06 gotHit 0x00D4 0x0351 637 226 debug_symbols_then_end 7 pseudocode/GLDIV_NS/slot_06_gotHit.txt +310 REBSNOR 0x0F enterFastArea 0x00D4 0x0241 365 119 debug_symbols_then_end 2 pseudocode/REBSNOR/slot_0F_enterFastArea.txt +310 REBSNOR 0x10 leaveFastArea 0x0241 0x027C 59 23 end_opcode 0 pseudocode/REBSNOR/slot_10_leaveFastArea.txt +311 REBWORK 0x04 cachein 0x00D4 0x0142 110 44 end_opcode 0 pseudocode/REBWORK/slot_04_cachein.txt +312 SATARG 0x01 use 0x00D4 0x05E9 1301 435 debug_symbols_then_end 3 pseudocode/SATARG/slot_01_use.txt +313 CHEST_ON 0x01 use 0x018C 0x01F2 102 40 end_opcode 0 pseudocode/CHEST_ON/slot_01_use.txt +313 CHEST_ON 0x06 gotHit 0x00D4 0x018C 184 57 debug_symbols_then_end 3 pseudocode/CHEST_ON/slot_06_gotHit.txt +314 CHEST_OE 0x01 use 0x018C 0x01F2 102 40 end_opcode 0 pseudocode/CHEST_OE/slot_01_use.txt +314 CHEST_OE 0x06 gotHit 0x00D4 0x018C 184 57 debug_symbols_then_end 3 pseudocode/CHEST_OE/slot_06_gotHit.txt +315 D_GRENAD 0x01 use 0x01F3 0x0257 100 39 end_opcode 0 pseudocode/D_GRENAD/slot_01_use.txt +315 D_GRENAD 0x06 gotHit 0x00D4 0x01F3 287 97 debug_symbols_then_end 4 pseudocode/D_GRENAD/slot_06_gotHit.txt +316 CHEST_NS 0x01 use 0x01F6 0x056D 887 327 debug_symbols_then_end 6 pseudocode/CHEST_NS/slot_01_use.txt +316 CHEST_NS 0x06 gotHit 0x00D4 0x01F6 290 93 debug_symbols_then_end 4 pseudocode/CHEST_NS/slot_06_gotHit.txt +317 CHEST_EW 0x01 use 0x01F6 0x0543 845 312 debug_symbols_then_end 4 pseudocode/CHEST_EW/slot_01_use.txt +317 CHEST_EW 0x06 gotHit 0x00D4 0x01F6 290 93 debug_symbols_then_end 4 pseudocode/CHEST_EW/slot_06_gotHit.txt +318 D_ENFORC 0x01 use 0x01F3 0x0257 100 39 end_opcode 0 pseudocode/D_ENFORC/slot_01_use.txt +318 D_ENFORC 0x06 gotHit 0x00D4 0x01F3 287 97 debug_symbols_then_end 4 pseudocode/D_ENFORC/slot_06_gotHit.txt +319 DETPAC 0x01 use 0x00D4 0x04C4 1008 376 debug_symbols_then_end 8 pseudocode/DETPAC/slot_01_use.txt +320 CRU_SPID 0x01 use 0x0123 0x05D9 1206 438 debug_symbols_then_end 11 pseudocode/CRU_SPID/slot_01_use.txt +320 CRU_SPID 0x05 hit 0x00DA 0x0123 73 15 debug_symbols_then_end 3 pseudocode/CRU_SPID/slot_05_hit.txt +320 CRU_SPID 0x20 0x05D9 0x096D 916 350 debug_symbols_then_end 9 pseudocode/CRU_SPID/slot_20_slot_20.txt +321 ALARMHAT 0x0A equip 0x00D4 0x025F 395 147 debug_symbols_then_end 4 pseudocode/ALARMHAT/slot_0A_equip.txt +322 ETWALLNS 0x0B unequip 0x00D4 0x0120 76 29 body_exhausted 0 pseudocode/ETWALLNS/slot_0B_unequip.txt +322 ETWALLNS 0x0F enterFastArea 0x015F 0x0196 55 22 end_opcode 0 pseudocode/ETWALLNS/slot_0F_enterFastArea.txt +322 ETWALLNS 0x13 avatarStoleSomething 0x0120 0x015F 63 24 body_exhausted 0 pseudocode/ETWALLNS/slot_13_avatarStoleSomething.txt +323 ETWALLEW 0x0B unequip 0x00D4 0x0120 76 29 body_exhausted 0 pseudocode/ETWALLEW/slot_0B_unequip.txt +323 ETWALLEW 0x0F enterFastArea 0x015F 0x0196 55 22 end_opcode 0 pseudocode/ETWALLEW/slot_0F_enterFastArea.txt +323 ETWALLEW 0x13 avatarStoleSomething 0x0120 0x015F 63 24 body_exhausted 0 pseudocode/ETWALLEW/slot_13_avatarStoleSomething.txt +324 THRMBCKN 0x0A equip 0x00D4 0x0380 684 227 debug_symbols_then_end 6 pseudocode/THRMBCKN/slot_0A_equip.txt +325 THRMBCKE 0x0A equip 0x00D4 0x0380 684 227 debug_symbols_then_end 6 pseudocode/THRMBCKE/slot_0A_equip.txt +326 ROLL_EW 0x05 hit 0x0C03 0x0C64 97 25 debug_symbols_then_end 3 pseudocode/ROLL_EW/slot_05_hit.txt +326 ROLL_EW 0x06 gotHit 0x0B1A 0x0C03 233 73 debug_symbols_then_end 3 pseudocode/ROLL_EW/slot_06_gotHit.txt +326 ROLL_EW 0x0A equip 0x0135 0x01DC 167 67 body_exhausted 0 pseudocode/ROLL_EW/slot_0A_equip.txt +326 ROLL_EW 0x0B unequip 0x00E0 0x0135 85 30 body_exhausted 0 pseudocode/ROLL_EW/slot_0B_unequip.txt +326 ROLL_EW 0x20 0x01DC 0x03D9 509 159 debug_symbols_then_end 11 pseudocode/ROLL_EW/slot_20_slot_20.txt +326 ROLL_EW 0x21 0x03D9 0x0B1A 1857 689 debug_symbols_then_end 12 pseudocode/ROLL_EW/slot_21_slot_21.txt +327 KORESH 0x0E calledFromAnim 0x00D4 0x013F 107 34 debug_symbols_then_end 2 pseudocode/KORESH/slot_0E_calledFromAnim.txt +327 KORESH 0x0F enterFastArea 0x013F 0x01AC 109 40 end_opcode 0 pseudocode/KORESH/slot_0F_enterFastArea.txt +328 ALRMTRIG 0x0A equip 0x00D4 0x01F4 288 104 body_exhausted 0 pseudocode/ALRMTRIG/slot_0A_equip.txt +329 ENERGY 0x01 use 0x00D4 0x02DE 522 166 debug_symbols_then_end 4 pseudocode/ENERGY/slot_01_use.txt +330 ROLLB_NS 0x05 hit 0x0C03 0x0C64 97 25 debug_symbols_then_end 3 pseudocode/ROLLB_NS/slot_05_hit.txt +330 ROLLB_NS 0x06 gotHit 0x0B1A 0x0C03 233 73 debug_symbols_then_end 3 pseudocode/ROLLB_NS/slot_06_gotHit.txt +330 ROLLB_NS 0x0A equip 0x0135 0x01DC 167 67 body_exhausted 0 pseudocode/ROLLB_NS/slot_0A_equip.txt +330 ROLLB_NS 0x0B unequip 0x00E0 0x0135 85 30 body_exhausted 0 pseudocode/ROLLB_NS/slot_0B_unequip.txt +330 ROLLB_NS 0x20 0x01DC 0x03D9 509 159 debug_symbols_then_end 11 pseudocode/ROLLB_NS/slot_20_slot_20.txt +330 ROLLB_NS 0x21 0x03D9 0x0B1A 1857 689 debug_symbols_then_end 12 pseudocode/ROLLB_NS/slot_21_slot_21.txt +331 ROLLB_EW 0x05 hit 0x0C0B 0x0C6C 97 25 debug_symbols_then_end 3 pseudocode/ROLLB_EW/slot_05_hit.txt +331 ROLLB_EW 0x06 gotHit 0x0B22 0x0C0B 233 73 debug_symbols_then_end 3 pseudocode/ROLLB_EW/slot_06_gotHit.txt +331 ROLLB_EW 0x0A equip 0x0135 0x01DC 167 67 body_exhausted 0 pseudocode/ROLLB_EW/slot_0A_equip.txt +331 ROLLB_EW 0x0B unequip 0x00E0 0x0135 85 30 body_exhausted 0 pseudocode/ROLLB_EW/slot_0B_unequip.txt +331 ROLLB_EW 0x20 0x01DC 0x03E1 517 163 debug_symbols_then_end 11 pseudocode/ROLLB_EW/slot_20_slot_20.txt +331 ROLLB_EW 0x21 0x03E1 0x0B22 1857 689 debug_symbols_then_end 12 pseudocode/ROLLB_EW/slot_21_slot_21.txt +332 D_PLASMA 0x0E calledFromAnim 0x00D4 0x011B 71 29 end_opcode 0 pseudocode/D_PLASMA/slot_0E_calledFromAnim.txt +332 D_PLASMA 0x0F enterFastArea 0x011B 0x0188 109 40 end_opcode 0 pseudocode/D_PLASMA/slot_0F_enterFastArea.txt +333 D_SKELET 0x0E calledFromAnim 0x00D4 0x011B 71 29 end_opcode 0 pseudocode/D_SKELET/slot_0E_calledFromAnim.txt +333 D_SKELET 0x0F enterFastArea 0x011B 0x0188 109 40 end_opcode 0 pseudocode/D_SKELET/slot_0F_enterFastArea.txt +334 D_EM_GUY 0x0E calledFromAnim 0x00D4 0x011B 71 29 end_opcode 0 pseudocode/D_EM_GUY/slot_0E_calledFromAnim.txt +334 D_EM_GUY 0x0F enterFastArea 0x011B 0x0188 109 40 end_opcode 0 pseudocode/D_EM_GUY/slot_0F_enterFastArea.txt +335 DEATHFL4 0x06 gotHit 0x010B 0x0159 78 17 debug_symbols_then_end 3 pseudocode/DEATHFL4/slot_06_gotHit.txt +335 DEATHFL4 0x0F enterFastArea 0x00D4 0x010B 55 22 end_opcode 0 pseudocode/DEATHFL4/slot_0F_enterFastArea.txt +336 DAMNLUGG 0x06 gotHit 0x00D4 0x01C4 240 73 debug_symbols_then_end 3 pseudocode/DAMNLUGG/slot_06_gotHit.txt +337 DAMNMCR8 0x06 gotHit 0x00D4 0x01C4 240 73 debug_symbols_then_end 3 pseudocode/DAMNMCR8/slot_06_gotHit.txt +338 DEATHFL5 0x06 gotHit 0x010B 0x0159 78 17 debug_symbols_then_end 3 pseudocode/DEATHFL5/slot_06_gotHit.txt +338 DEATHFL5 0x0F enterFastArea 0x00D4 0x010B 55 22 end_opcode 0 pseudocode/DEATHFL5/slot_0F_enterFastArea.txt +339 AVATAR 0x00 look 0x00FE 0x0128 42 17 end_opcode 0 pseudocode/AVATAR/slot_00_look.txt +339 AVATAR 0x01 use 0x00D4 0x00FE 42 17 end_opcode 0 pseudocode/AVATAR/slot_01_use.txt +339 AVATAR 0x04 cachein 0x0128 0x0182 90 16 debug_symbols_then_end 4 pseudocode/AVATAR/slot_04_cachein.txt +339 AVATAR 0x11 cast 0x0182 0x03A2 544 206 debug_symbols_then_end 3 pseudocode/AVATAR/slot_11_cast.txt +340 TRIGEGG 0x07 hatch 0x00D4 0x017E 170 49 debug_symbols_then_end 4 pseudocode/TRIGEGG/slot_07_hatch.txt +340 TRIGEGG 0x15 unhatch 0x017E 0x0228 170 49 debug_symbols_then_end 4 pseudocode/TRIGEGG/slot_15_unhatch.txt +341 ONCEEGG 0x07 hatch 0x00D4 0x017E 170 49 debug_symbols_then_end 4 pseudocode/ONCEEGG/slot_07_hatch.txt +341 ONCEEGG 0x15 unhatch 0x017E 0x0233 181 53 debug_symbols_then_end 4 pseudocode/ONCEEGG/slot_15_unhatch.txt +342 FLOOR1 0x0F enterFastArea 0x00D4 0x053D 1129 366 debug_symbols_then_end 13 pseudocode/FLOOR1/slot_0F_enterFastArea.txt +342 FLOOR1 0x10 leaveFastArea 0x053D 0x0578 59 23 end_opcode 0 pseudocode/FLOOR1/slot_10_leaveFastArea.txt +343 MTAREGG 0x07 hatch 0x00DA 0x0226 332 115 debug_symbols_then_end 5 pseudocode/MTAREGG/slot_07_hatch.txt +343 MTAREGG 0x20 0x0226 0x0387 353 116 debug_symbols_then_end 8 pseudocode/MTAREGG/slot_20_slot_20.txt +344 CHANGER 0x07 hatch 0x00D4 0x01B5 225 62 debug_symbols_then_end 5 pseudocode/CHANGER/slot_07_hatch.txt +345 CAMERA 0x07 hatch 0x00D4 0x029E 458 196 end_opcode 0 pseudocode/CAMERA/slot_07_hatch.txt +345 CAMERA 0x15 unhatch 0x029E 0x0313 117 47 end_opcode 0 pseudocode/CAMERA/slot_15_unhatch.txt +346 SECRTEGG 0x07 hatch 0x00D4 0x0186 178 51 debug_symbols_then_end 5 pseudocode/SECRTEGG/slot_07_hatch.txt +347 REB_EGG 0x04 cachein 0x00DA 0x012B 81 31 end_opcode 0 pseudocode/REB_EGG/slot_04_cachein.txt +347 REB_EGG 0x07 hatch 0x01BB 0x0F9A 3551 1280 debug_symbols_then_end 6 pseudocode/REB_EGG/slot_07_hatch.txt +347 REB_EGG 0x15 unhatch 0x012B 0x01BB 144 47 debug_symbols_then_end 2 pseudocode/REB_EGG/slot_15_unhatch.txt +347 REB_EGG 0x20 0x0F9A 0x10B6 284 86 debug_symbols_then_end 7 pseudocode/REB_EGG/slot_20_slot_20.txt +348 TEST 0x07 hatch 0x00D4 0x0222 334 113 end_opcode 0 pseudocode/TEST/slot_07_hatch.txt +349 GRENEGG 0x07 hatch 0x00D4 0x0233 351 121 debug_symbols_then_end 6 pseudocode/GRENEGG/slot_07_hatch.txt +350 DOOREGG 0x07 hatch 0x00E0 0x0129 73 26 end_opcode 0 pseudocode/DOOREGG/slot_07_hatch.txt +350 DOOREGG 0x15 unhatch 0x0129 0x0172 73 26 end_opcode 0 pseudocode/DOOREGG/slot_15_unhatch.txt +350 DOOREGG 0x20 0x0172 0x01F8 134 44 debug_symbols_then_end 2 pseudocode/DOOREGG/slot_20_slot_20.txt +350 DOOREGG 0x21 0x01F8 0x027E 134 44 debug_symbols_then_end 2 pseudocode/DOOREGG/slot_21_slot_21.txt +351 BBTRIP 0x07 hatch 0x00D4 0x0172 158 46 debug_symbols_then_end 3 pseudocode/BBTRIP/slot_07_hatch.txt +352 LAZEREGG 0x07 hatch 0x00D4 0x018F 187 58 debug_symbols_then_end 3 pseudocode/LAZEREGG/slot_07_hatch.txt +353 MISS1EGG 0x04 cachein 0x1055 0x1483 1070 369 debug_symbols_then_end 5 pseudocode/MISS1EGG/slot_04_cachein.txt +353 MISS1EGG 0x07 hatch 0x00F8 0x029E 422 133 debug_symbols_then_end 5 pseudocode/MISS1EGG/slot_07_hatch.txt +353 MISS1EGG 0x20 0x029E 0x088F 1521 505 debug_symbols_then_end 5 pseudocode/MISS1EGG/slot_20_slot_20.txt +353 MISS1EGG 0x21 0x088F 0x093F 176 54 debug_symbols_then_end 2 pseudocode/MISS1EGG/slot_21_slot_21.txt +353 MISS1EGG 0x22 0x093F 0x0B9A 603 210 debug_symbols_then_end 4 pseudocode/MISS1EGG/slot_22_slot_22.txt +353 MISS1EGG 0x23 0x0B9A 0x0E3F 677 225 debug_symbols_then_end 6 pseudocode/MISS1EGG/slot_23_slot_23.txt +353 MISS1EGG 0x24 0x0E3F 0x0F64 293 92 debug_symbols_then_end 3 pseudocode/MISS1EGG/slot_24_slot_24.txt +353 MISS1EGG 0x25 0x0F64 0x1055 241 86 end_opcode 0 pseudocode/MISS1EGG/slot_25_slot_25.txt +354 MISS2 0x04 cachein 0x011C 0x014F 51 20 end_opcode 0 pseudocode/MISS2/slot_04_cachein.txt +354 MISS2 0x07 hatch 0x014F 0x0282 307 108 end_opcode 0 pseudocode/MISS2/slot_07_hatch.txt +354 MISS2 0x20 0x0282 0x035E 220 69 debug_symbols_then_end 4 pseudocode/MISS2/slot_20_slot_20.txt +354 MISS2 0x21 0x035E 0x03C7 105 37 end_opcode 0 pseudocode/MISS2/slot_21_slot_21.txt +354 MISS2 0x22 0x03C7 0x04F2 299 109 body_exhausted 0 pseudocode/MISS2/slot_22_slot_22.txt +354 MISS2 0x23 0x04F2 0x06A4 434 148 debug_symbols_then_end 5 pseudocode/MISS2/slot_23_slot_23.txt +354 MISS2 0x24 0x06A4 0x0716 114 40 body_exhausted 0 pseudocode/MISS2/slot_24_slot_24.txt +354 MISS2 0x25 0x0716 0x09AF 665 227 debug_symbols_then_end 8 pseudocode/MISS2/slot_25_slot_25.txt +354 MISS2 0x26 0x09AF 0x0B86 471 160 debug_symbols_then_end 8 pseudocode/MISS2/slot_26_slot_26.txt +354 MISS2 0x27 0x0B86 0x0C9C 278 88 debug_symbols_then_end 3 pseudocode/MISS2/slot_27_slot_27.txt +354 MISS2 0x28 0x0C9C 0x1D84 4328 1528 debug_symbols_then_end 14 pseudocode/MISS2/slot_28_slot_28.txt +354 MISS2 0x29 0x1D84 0x21C5 1089 353 debug_symbols_then_end 5 pseudocode/MISS2/slot_29_slot_29.txt +354 MISS2 0x2A 0x21C5 0x2286 193 55 debug_symbols_then_end 2 pseudocode/MISS2/slot_2A_slot_2A.txt +354 MISS2 0x2B 0x2286 0x22DC 86 28 end_opcode 0 pseudocode/MISS2/slot_2B_slot_2B.txt +355 MISS3 0x04 cachein 0x00D4 0x0107 51 20 end_opcode 0 pseudocode/MISS3/slot_04_cachein.txt +355 MISS3 0x07 hatch 0x0107 0x021F 280 95 end_opcode 0 pseudocode/MISS3/slot_07_hatch.txt +356 MISS4 0x04 cachein 0x0212 0x02A2 144 41 debug_symbols_then_end 2 pseudocode/MISS4/slot_04_cachein.txt +356 MISS4 0x07 hatch 0x00DA 0x0140 102 38 end_opcode 0 pseudocode/MISS4/slot_07_hatch.txt +356 MISS4 0x20 0x0140 0x0212 210 59 debug_symbols_then_end 2 pseudocode/MISS4/slot_20_slot_20.txt +357 MISS5 0x04 cachein 0x00DA 0x010D 51 20 end_opcode 0 pseudocode/MISS5/slot_04_cachein.txt +357 MISS5 0x07 hatch 0x010D 0x0179 108 39 end_opcode 0 pseudocode/MISS5/slot_07_hatch.txt +357 MISS5 0x20 0x0179 0x0A64 2283 788 debug_symbols_then_end 10 pseudocode/MISS5/slot_20_slot_20.txt +358 MISS6 0x04 cachein 0x00E0 0x0113 51 20 end_opcode 0 pseudocode/MISS6/slot_04_cachein.txt +358 MISS6 0x07 hatch 0x0113 0x01B0 157 56 end_opcode 0 pseudocode/MISS6/slot_07_hatch.txt +358 MISS6 0x20 0x01B0 0x0775 1477 494 debug_symbols_then_end 6 pseudocode/MISS6/slot_20_slot_20.txt +358 MISS6 0x21 0x0775 0x07D5 96 32 end_opcode 0 pseudocode/MISS6/slot_21_slot_21.txt +359 MISS7 0x04 cachein 0x00D4 0x013E 106 30 debug_symbols_then_end 2 pseudocode/MISS7/slot_04_cachein.txt +360 MISS8 0x04 cachein 0x00DA 0x010D 51 20 end_opcode 0 pseudocode/MISS8/slot_04_cachein.txt +360 MISS8 0x07 hatch 0x010D 0x0170 99 36 end_opcode 0 pseudocode/MISS8/slot_07_hatch.txt +360 MISS8 0x20 0x0170 0x0949 2009 683 debug_symbols_then_end 9 pseudocode/MISS8/slot_20_slot_20.txt +361 MISS9 0x04 cachein 0x00DA 0x010D 51 20 end_opcode 0 pseudocode/MISS9/slot_04_cachein.txt +361 MISS9 0x07 hatch 0x010D 0x0170 99 36 end_opcode 0 pseudocode/MISS9/slot_07_hatch.txt +361 MISS9 0x20 0x0170 0x05FD 1165 392 debug_symbols_then_end 6 pseudocode/MISS9/slot_20_slot_20.txt +362 MISS10 0x04 cachein 0x00D4 0x0107 51 20 end_opcode 0 pseudocode/MISS10/slot_04_cachein.txt +362 MISS10 0x07 hatch 0x0107 0x01B2 171 51 debug_symbols_then_end 2 pseudocode/MISS10/slot_07_hatch.txt +363 MISS11 0x04 cachein 0x00D4 0x0107 51 20 end_opcode 0 pseudocode/MISS11/slot_04_cachein.txt +363 MISS11 0x07 hatch 0x0107 0x01D8 209 71 end_opcode 0 pseudocode/MISS11/slot_07_hatch.txt +364 MISS12 0x04 cachein 0x00D4 0x0107 51 20 end_opcode 0 pseudocode/MISS12/slot_04_cachein.txt +364 MISS12 0x07 hatch 0x0107 0x01FB 244 71 debug_symbols_then_end 4 pseudocode/MISS12/slot_07_hatch.txt +365 MISS13 0x04 cachein 0x00DA 0x010D 51 20 end_opcode 0 pseudocode/MISS13/slot_04_cachein.txt +365 MISS13 0x07 hatch 0x010D 0x0182 117 44 end_opcode 0 pseudocode/MISS13/slot_07_hatch.txt +365 MISS13 0x20 0x0182 0x0690 1294 431 debug_symbols_then_end 7 pseudocode/MISS13/slot_20_slot_20.txt +366 MISS14 0x04 cachein 0x032C 0x03AB 127 39 debug_symbols_then_end 2 pseudocode/MISS14/slot_04_cachein.txt +366 MISS14 0x07 hatch 0x00D4 0x032C 600 196 debug_symbols_then_end 2 pseudocode/MISS14/slot_07_hatch.txt +367 MISS15 0x04 cachein 0x00D4 0x0153 127 39 debug_symbols_then_end 2 pseudocode/MISS15/slot_04_cachein.txt +367 MISS15 0x07 hatch 0x0153 0x0528 981 319 debug_symbols_then_end 5 pseudocode/MISS15/slot_07_hatch.txt +368 MUSIC 0x07 hatch 0x00D4 0x00FE 42 17 end_opcode 0 pseudocode/MUSIC/slot_07_hatch.txt +369 STEAMEGG 0x07 hatch 0x00D4 0x01CD 249 79 debug_symbols_then_end 3 pseudocode/STEAMEGG/slot_07_hatch.txt +370 BARREL 0x20 0x00DA 0x0575 1179 410 debug_symbols_then_end 11 pseudocode/BARREL/slot_20_slot_20.txt +371 BBETTY 0x10 leaveFastArea 0x0566 0x05A0 58 23 end_opcode 0 pseudocode/BBETTY/slot_10_leaveFastArea.txt +371 BBETTY 0x20 0x00E0 0x027F 415 141 debug_symbols_then_end 5 pseudocode/BBETTY/slot_20_slot_20.txt +371 BBETTY 0x21 0x027F 0x0566 743 276 debug_symbols_then_end 8 pseudocode/BBETTY/slot_21_slot_21.txt +372 BLASER 0x20 0x00E0 0x04FC 1052 387 debug_symbols_then_end 12 pseudocode/BLASER/slot_20_slot_20.txt +372 BLASER 0x21 0x04FC 0x0669 365 123 debug_symbols_then_end 6 pseudocode/BLASER/slot_21_slot_21.txt +373 BRIDGE 0x20 0x00FE 0x0220 290 95 debug_symbols_then_end 3 pseudocode/BRIDGE/slot_20_slot_20.txt +373 BRIDGE 0x21 0x0220 0x02B1 145 40 debug_symbols_then_end 4 pseudocode/BRIDGE/slot_21_slot_21.txt +373 BRIDGE 0x22 0x02B1 0x036C 187 60 debug_symbols_then_end 4 pseudocode/BRIDGE/slot_22_slot_22.txt +373 BRIDGE 0x23 0x036C 0x0588 540 207 debug_symbols_then_end 5 pseudocode/BRIDGE/slot_23_slot_23.txt +373 BRIDGE 0x24 0x0588 0x0803 635 210 debug_symbols_then_end 8 pseudocode/BRIDGE/slot_24_slot_24.txt +373 BRIDGE 0x25 0x0803 0x0CC6 1219 443 debug_symbols_then_end 10 pseudocode/BRIDGE/slot_25_slot_25.txt +373 BRIDGE 0x26 0x0CC6 0x1395 1743 610 debug_symbols_then_end 16 pseudocode/BRIDGE/slot_26_slot_26.txt +374 CONVEYOR 0x10 leaveFastArea 0x03F3 0x043B 72 28 end_opcode 0 pseudocode/CONVEYOR/slot_10_leaveFastArea.txt +374 CONVEYOR 0x20 0x00DA 0x03F3 793 285 debug_symbols_then_end 10 pseudocode/CONVEYOR/slot_20_slot_20.txt +375 DEATHFL 0x20 0x00DA 0x07AE 1748 637 debug_symbols_then_end 13 pseudocode/DEATHFL/slot_20_slot_20.txt +376 DOOR 0x20 0x00EC 0x017A 142 52 end_opcode 0 pseudocode/DOOR/slot_20_slot_20.txt +376 DOOR 0x21 0x017A 0x16B9 5439 2146 debug_symbols_then_end 4 pseudocode/DOOR/slot_21_slot_21.txt +376 DOOR 0x22 0x16B9 0x1801 328 99 debug_symbols_then_end 6 pseudocode/DOOR/slot_22_slot_22.txt +376 DOOR 0x23 0x1801 0x2128 2343 886 debug_symbols_then_end 8 pseudocode/DOOR/slot_23_slot_23.txt +377 DOOR2 0x20 0x01CA 0x0341 375 119 debug_symbols_then_end 4 pseudocode/DOOR2/slot_20_slot_20.txt +377 DOOR2 0x21 0x0341 0x0565 548 196 debug_symbols_then_end 4 pseudocode/DOOR2/slot_21_slot_21.txt +377 DOOR2 0x22 0x0565 0x06D5 368 119 debug_symbols_then_end 4 pseudocode/DOOR2/slot_22_slot_22.txt +377 DOOR2 0x23 0x06D5 0x08F5 544 191 debug_symbols_then_end 5 pseudocode/DOOR2/slot_23_slot_23.txt +377 DOOR2 0x24 0x08F5 0x0A18 291 94 debug_symbols_then_end 3 pseudocode/DOOR2/slot_24_slot_24.txt +377 DOOR2 0x25 0x0A18 0x0B55 317 101 debug_symbols_then_end 4 pseudocode/DOOR2/slot_25_slot_25.txt +377 DOOR2 0x26 0x0B55 0x0C78 291 94 debug_symbols_then_end 3 pseudocode/DOOR2/slot_26_slot_26.txt +377 DOOR2 0x27 0x0C78 0x0DB5 317 101 debug_symbols_then_end 4 pseudocode/DOOR2/slot_27_slot_27.txt +377 DOOR2 0x28 0x0DB5 0x0F1C 359 114 debug_symbols_then_end 4 pseudocode/DOOR2/slot_28_slot_28.txt +377 DOOR2 0x29 0x0F1C 0x1119 509 181 debug_symbols_then_end 4 pseudocode/DOOR2/slot_29_slot_29.txt +377 DOOR2 0x2A 0x1119 0x1275 348 110 debug_symbols_then_end 4 pseudocode/DOOR2/slot_2A_slot_2A.txt +377 DOOR2 0x2B 0x1275 0x1472 509 181 debug_symbols_then_end 4 pseudocode/DOOR2/slot_2B_slot_2B.txt +377 DOOR2 0x2C 0x1472 0x1588 278 88 debug_symbols_then_end 3 pseudocode/DOOR2/slot_2C_slot_2C.txt +377 DOOR2 0x2D 0x1588 0x16A5 285 92 debug_symbols_then_end 3 pseudocode/DOOR2/slot_2D_slot_2D.txt +377 DOOR2 0x2E 0x16A5 0x1791 236 70 debug_symbols_then_end 3 pseudocode/DOOR2/slot_2E_slot_2E.txt +377 DOOR2 0x2F 0x1791 0x18AE 285 92 debug_symbols_then_end 3 pseudocode/DOOR2/slot_2F_slot_2F.txt +377 DOOR2 0x30 0x18AE 0x1AD7 553 175 debug_symbols_then_end 8 pseudocode/DOOR2/slot_30_slot_30.txt +377 DOOR2 0x31 0x1AD7 0x1EEF 1048 362 debug_symbols_then_end 12 pseudocode/DOOR2/slot_31_slot_31.txt +377 DOOR2 0x32 0x1EEF 0x2118 553 175 debug_symbols_then_end 8 pseudocode/DOOR2/slot_32_slot_32.txt +377 DOOR2 0x33 0x2118 0x2561 1097 382 debug_symbols_then_end 12 pseudocode/DOOR2/slot_33_slot_33.txt +377 DOOR2 0x34 0x2561 0x2704 419 138 debug_symbols_then_end 6 pseudocode/DOOR2/slot_34_slot_34.txt +377 DOOR2 0x35 0x2704 0x29E9 741 233 debug_symbols_then_end 17 pseudocode/DOOR2/slot_35_slot_35.txt +377 DOOR2 0x36 0x29E9 0x2B8C 419 138 debug_symbols_then_end 6 pseudocode/DOOR2/slot_36_slot_36.txt +377 DOOR2 0x37 0x2B8C 0x2E67 731 233 debug_symbols_then_end 16 pseudocode/DOOR2/slot_37_slot_37.txt +377 DOOR2 0x38 0x2E67 0x2F71 266 88 debug_symbols_then_end 2 pseudocode/DOOR2/slot_38_slot_38.txt +377 DOOR2 0x39 0x2F71 0x3052 225 78 debug_symbols_then_end 2 pseudocode/DOOR2/slot_39_slot_39.txt +377 DOOR2 0x3A 0x3052 0x3132 224 70 debug_symbols_then_end 2 pseudocode/DOOR2/slot_3A_slot_3A.txt +377 DOOR2 0x3B 0x3132 0x320F 221 76 debug_symbols_then_end 2 pseudocode/DOOR2/slot_3B_slot_3B.txt +377 DOOR2 0x3C 0x320F 0x33B9 426 153 debug_symbols_then_end 2 pseudocode/DOOR2/slot_3C_slot_3C.txt +377 DOOR2 0x3D 0x33B9 0x3506 333 110 debug_symbols_then_end 3 pseudocode/DOOR2/slot_3D_slot_3D.txt +377 DOOR2 0x3E 0x3506 0x36B4 430 161 debug_symbols_then_end 3 pseudocode/DOOR2/slot_3E_slot_3E.txt +377 DOOR2 0x3F 0x36B4 0x3801 333 110 debug_symbols_then_end 3 pseudocode/DOOR2/slot_3F_slot_3F.txt +377 DOOR2 0x40 0x3801 0x39AF 430 161 debug_symbols_then_end 3 pseudocode/DOOR2/slot_40_slot_40.txt +377 DOOR2 0x41 0x39AF 0x3AA3 244 74 debug_symbols_then_end 3 pseudocode/DOOR2/slot_41_slot_41.txt +377 DOOR2 0x42 0x3AA3 0x3B8A 231 77 debug_symbols_then_end 3 pseudocode/DOOR2/slot_42_slot_42.txt +377 DOOR2 0x43 0x3B8A 0x3C7E 244 74 debug_symbols_then_end 3 pseudocode/DOOR2/slot_43_slot_43.txt +377 DOOR2 0x44 0x3C7E 0x3D65 231 77 debug_symbols_then_end 3 pseudocode/DOOR2/slot_44_slot_44.txt +377 DOOR2 0x45 0x3D65 0x3E92 301 94 debug_symbols_then_end 4 pseudocode/DOOR2/slot_45_slot_45.txt +377 DOOR2 0x46 0x3E92 0x3FAA 280 92 debug_symbols_then_end 4 pseudocode/DOOR2/slot_46_slot_46.txt +377 DOOR2 0x47 0x3FAA 0x40D7 301 94 debug_symbols_then_end 4 pseudocode/DOOR2/slot_47_slot_47.txt +377 DOOR2 0x48 0x40D7 0x41EF 280 92 debug_symbols_then_end 4 pseudocode/DOOR2/slot_48_slot_48.txt +378 DOOR3 0x20 0x011C 0x03CF 691 233 debug_symbols_then_end 6 pseudocode/DOOR3/slot_20_slot_20.txt +378 DOOR3 0x21 0x03CF 0x08DC 1293 471 debug_symbols_then_end 12 pseudocode/DOOR3/slot_21_slot_21.txt +378 DOOR3 0x22 0x08DC 0x0B8F 691 233 debug_symbols_then_end 6 pseudocode/DOOR3/slot_22_slot_22.txt +378 DOOR3 0x23 0x0B8F 0x109C 1293 471 debug_symbols_then_end 12 pseudocode/DOOR3/slot_23_slot_23.txt +378 DOOR3 0x24 0x109C 0x1327 651 215 debug_symbols_then_end 6 pseudocode/DOOR3/slot_24_slot_24.txt +378 DOOR3 0x25 0x1327 0x1848 1313 476 debug_symbols_then_end 12 pseudocode/DOOR3/slot_25_slot_25.txt +378 DOOR3 0x26 0x1848 0x1AD0 648 213 debug_symbols_then_end 6 pseudocode/DOOR3/slot_26_slot_26.txt +378 DOOR3 0x27 0x1AD0 0x1FE9 1305 472 debug_symbols_then_end 12 pseudocode/DOOR3/slot_27_slot_27.txt +378 DOOR3 0x28 0x1FE9 0x20FF 278 88 debug_symbols_then_end 3 pseudocode/DOOR3/slot_28_slot_28.txt +378 DOOR3 0x29 0x20FF 0x221C 285 92 debug_symbols_then_end 3 pseudocode/DOOR3/slot_29_slot_29.txt +378 DOOR3 0x2A 0x221C 0x2332 278 88 debug_symbols_then_end 3 pseudocode/DOOR3/slot_2A_slot_2A.txt +378 DOOR3 0x2B 0x2332 0x244F 285 92 debug_symbols_then_end 3 pseudocode/DOOR3/slot_2B_slot_2B.txt +379 ELEVAT 0x20 0x00F8 0x01B1 185 67 end_opcode 0 pseudocode/ELEVAT/slot_20_slot_20.txt +379 ELEVAT 0x21 0x01B1 0x01E2 49 19 end_opcode 0 pseudocode/ELEVAT/slot_21_slot_21.txt +379 ELEVAT 0x22 0x01E2 0x0213 49 19 end_opcode 0 pseudocode/ELEVAT/slot_22_slot_22.txt +379 ELEVAT 0x23 0x0213 0x0514 769 268 debug_symbols_then_end 9 pseudocode/ELEVAT/slot_23_slot_23.txt +379 ELEVAT 0x24 0x0514 0x0989 1141 411 debug_symbols_then_end 12 pseudocode/ELEVAT/slot_24_slot_24.txt +379 ELEVAT 0x25 0x0989 0x0B95 524 173 debug_symbols_then_end 6 pseudocode/ELEVAT/slot_25_slot_25.txt +381 FLAME 0x20 0x00E0 0x0203 291 93 debug_symbols_then_end 4 pseudocode/FLAME/slot_20_slot_20.txt +381 FLAME 0x21 0x0203 0x02D0 205 64 debug_symbols_then_end 3 pseudocode/FLAME/slot_21_slot_21.txt +382 FREE 0x20 0x01A0 0x01CC 44 16 body_exhausted 0 pseudocode/FREE/slot_20_slot_20.txt +382 FREE 0x21 0x01CC 0x0237 107 36 body_exhausted 0 pseudocode/FREE/slot_21_slot_21.txt +382 FREE 0x22 0x0237 0x057F 840 248 body_exhausted 0 pseudocode/FREE/slot_22_slot_22.txt +382 FREE 0x23 0x057F 0x05AC 45 14 body_exhausted 0 pseudocode/FREE/slot_23_slot_23.txt +382 FREE 0x24 0x05AC 0x06ED 321 104 body_exhausted 0 pseudocode/FREE/slot_24_slot_24.txt +382 FREE 0x25 0x06ED 0x0724 55 17 body_exhausted 0 pseudocode/FREE/slot_25_slot_25.txt +382 FREE 0x26 0x0724 0x0886 354 107 debug_symbols_then_end 2 pseudocode/FREE/slot_26_slot_26.txt +382 FREE 0x27 0x0886 0x0965 223 100 body_exhausted 0 pseudocode/FREE/slot_27_slot_27.txt +382 FREE 0x28 0x0965 0x0B2D 456 159 debug_symbols_then_end 10 pseudocode/FREE/slot_28_slot_28.txt +382 FREE 0x29 0x0B2D 0x0B80 83 20 debug_symbols_then_end 3 pseudocode/FREE/slot_29_slot_29.txt +382 FREE 0x2A 0x0B80 0x0C60 224 60 debug_symbols_then_end 7 pseudocode/FREE/slot_2A_slot_2A.txt +382 FREE 0x2B 0x0C60 0x0CA9 73 29 body_exhausted 0 pseudocode/FREE/slot_2B_slot_2B.txt +382 FREE 0x2C 0x0CA9 0x0CF8 79 32 body_exhausted 0 pseudocode/FREE/slot_2C_slot_2C.txt +382 FREE 0x2D 0x0CF8 0x0E00 264 81 debug_symbols_then_end 8 pseudocode/FREE/slot_2D_slot_2D.txt +382 FREE 0x2E 0x0E00 0x0F25 293 103 debug_symbols_then_end 6 pseudocode/FREE/slot_2E_slot_2E.txt +382 FREE 0x2F 0x0F25 0x105F 314 108 debug_symbols_then_end 7 pseudocode/FREE/slot_2F_slot_2F.txt +382 FREE 0x30 0x105F 0x1158 249 77 debug_symbols_then_end 6 pseudocode/FREE/slot_30_slot_30.txt +382 FREE 0x31 0x1158 0x12E6 398 140 debug_symbols_then_end 6 pseudocode/FREE/slot_31_slot_31.txt +382 FREE 0x32 0x12E6 0x139B 181 54 debug_symbols_then_end 3 pseudocode/FREE/slot_32_slot_32.txt +382 FREE 0x33 0x139B 0x13CC 49 17 body_exhausted 0 pseudocode/FREE/slot_33_slot_33.txt +382 FREE 0x34 0x13CC 0x1454 136 59 body_exhausted 0 pseudocode/FREE/slot_34_slot_34.txt +382 FREE 0x35 0x1454 0x14B5 97 23 debug_symbols_then_end 3 pseudocode/FREE/slot_35_slot_35.txt +382 FREE 0x36 0x14B5 0x1510 91 24 debug_symbols_then_end 3 pseudocode/FREE/slot_36_slot_36.txt +382 FREE 0x37 0x1510 0x1569 89 34 end_opcode 0 pseudocode/FREE/slot_37_slot_37.txt +382 FREE 0x38 0x1569 0x15B7 78 24 end_opcode 0 pseudocode/FREE/slot_38_slot_38.txt +382 FREE 0x39 0x15B7 0x1621 106 28 debug_symbols_then_end 3 pseudocode/FREE/slot_39_slot_39.txt +382 FREE 0x3A 0x1621 0x1681 96 22 debug_symbols_then_end 3 pseudocode/FREE/slot_3A_slot_3A.txt +382 FREE 0x3B 0x1681 0x1AC0 1087 406 debug_symbols_then_end 6 pseudocode/FREE/slot_3B_slot_3B.txt +382 FREE 0x3C 0x1AC0 0x1D2E 622 198 debug_symbols_then_end 3 pseudocode/FREE/slot_3C_slot_3C.txt +382 FREE 0x3D 0x1D2E 0x1D71 67 26 body_exhausted 0 pseudocode/FREE/slot_3D_slot_3D.txt +382 FREE 0x3E 0x1D71 0x1DBE 77 28 body_exhausted 0 pseudocode/FREE/slot_3E_slot_3E.txt +382 FREE 0x3F 0x1DBE 0x1DFB 61 24 body_exhausted 0 pseudocode/FREE/slot_3F_slot_3F.txt +382 FREE 0x40 0x1DFB 0x1EA9 174 52 debug_symbols_then_end 3 pseudocode/FREE/slot_40_slot_40.txt +382 FREE 0x41 0x1EA9 0x1F02 89 28 debug_symbols_then_end 1 pseudocode/FREE/slot_41_slot_41.txt +383 HOVER 0x20 0x00F2 0x0F22 3632 1473 debug_symbols_then_end 30 pseudocode/HOVER/slot_20_slot_20.txt +383 HOVER 0x21 0x0F22 0x12D7 949 328 debug_symbols_then_end 13 pseudocode/HOVER/slot_21_slot_21.txt +383 HOVER 0x22 0x12D7 0x14E6 527 183 debug_symbols_then_end 3 pseudocode/HOVER/slot_22_slot_22.txt +383 HOVER 0x23 0x14E6 0x16F7 529 175 debug_symbols_then_end 14 pseudocode/HOVER/slot_23_slot_23.txt +383 HOVER 0x24 0x16F7 0x18D4 477 152 debug_symbols_then_end 14 pseudocode/HOVER/slot_24_slot_24.txt +384 KEYPAD 0x20 0x00DA 0x0328 590 173 debug_symbols_then_end 8 pseudocode/KEYPAD/slot_20_slot_20.txt +385 LAZER 0x20 0x00DA 0x0331 599 220 debug_symbols_then_end 4 pseudocode/LAZER/slot_20_slot_20.txt +386 LITEWALL 0x20 0x00E0 0x02CA 490 155 debug_symbols_then_end 6 pseudocode/LITEWALL/slot_20_slot_20.txt +386 LITEWALL 0x21 0x02CA 0x04D5 523 157 debug_symbols_then_end 14 pseudocode/LITEWALL/slot_21_slot_21.txt +387 NPC 0x0A equip 0x0BB7 0x0E13 604 235 body_exhausted 0 pseudocode/NPC/slot_0A_equip.txt +387 NPC 0x20 0x012E 0x01C8 154 47 debug_symbols_then_end 2 pseudocode/NPC/slot_20_slot_20.txt +387 NPC 0x21 0x01C8 0x027F 183 61 debug_symbols_then_end 3 pseudocode/NPC/slot_21_slot_21.txt +387 NPC 0x22 0x027F 0x02FB 124 31 debug_symbols_then_end 3 pseudocode/NPC/slot_22_slot_22.txt +387 NPC 0x23 0x02FB 0x055E 611 213 debug_symbols_then_end 4 pseudocode/NPC/slot_23_slot_23.txt +387 NPC 0x24 0x055E 0x08FE 928 318 debug_symbols_then_end 4 pseudocode/NPC/slot_24_slot_24.txt +387 NPC 0x25 0x08FE 0x09C9 203 58 debug_symbols_then_end 4 pseudocode/NPC/slot_25_slot_25.txt +387 NPC 0x26 0x09C9 0x0BB7 494 152 debug_symbols_then_end 13 pseudocode/NPC/slot_26_slot_26.txt +387 NPC 0x27 0x0E13 0x0F5C 329 131 body_exhausted 0 pseudocode/NPC/slot_27_slot_27.txt +387 NPC 0x28 0x0F5C 0x0F88 44 17 end_opcode 0 pseudocode/NPC/slot_28_slot_28.txt +387 NPC 0x29 0x0F88 0x100E 134 51 body_exhausted 0 pseudocode/NPC/slot_29_slot_29.txt +387 NPC 0x2A 0x100E 0x111A 268 83 debug_symbols_then_end 3 pseudocode/NPC/slot_2A_slot_2A.txt +387 NPC 0x2B 0x111A 0x11D8 190 82 end_opcode 0 pseudocode/NPC/slot_2B_slot_2B.txt +387 NPC 0x2C 0x11D8 0x123A 98 21 debug_symbols_then_end 2 pseudocode/NPC/slot_2C_slot_2C.txt +387 NPC 0x2D 0x123A 0x137B 321 107 debug_symbols_then_end 4 pseudocode/NPC/slot_2D_slot_2D.txt +387 NPC 0x2E 0x137B 0x13E5 106 38 end_opcode 0 pseudocode/NPC/slot_2E_slot_2E.txt +389 SHOCKER 0x20 0x00E0 0x0345 613 198 debug_symbols_then_end 7 pseudocode/SHOCKER/slot_20_slot_20.txt +389 SHOCKER 0x21 0x0345 0x0485 320 106 debug_symbols_then_end 2 pseudocode/SHOCKER/slot_21_slot_21.txt +390 SPIDER 0x20 0x00E6 0x042E 840 285 debug_symbols_then_end 7 pseudocode/SPIDER/slot_20_slot_20.txt +390 SPIDER 0x21 0x042E 0x05B0 386 128 debug_symbols_then_end 7 pseudocode/SPIDER/slot_21_slot_21.txt +390 SPIDER 0x22 0x05B0 0x0A37 1159 426 debug_symbols_then_end 23 pseudocode/SPIDER/slot_22_slot_22.txt +391 STEAM 0x20 0x00E0 0x0243 355 120 debug_symbols_then_end 4 pseudocode/STEAM/slot_20_slot_20.txt +391 STEAM 0x21 0x0243 0x0354 273 94 debug_symbols_then_end 3 pseudocode/STEAM/slot_21_slot_21.txt +392 SWITCH 0x20 0x00E0 0x01E4 260 85 debug_symbols_then_end 2 pseudocode/SWITCH/slot_20_slot_20.txt +392 SWITCH 0x21 0x01E4 0x0457 627 202 debug_symbols_then_end 2 pseudocode/SWITCH/slot_21_slot_21.txt +393 TEXTFILE 0x20 0x00EC 0x0131 69 29 end_opcode 0 pseudocode/TEXTFILE/slot_20_slot_20.txt +393 TEXTFILE 0x21 0x0131 0x01D0 159 48 debug_symbols_then_end 3 pseudocode/TEXTFILE/slot_21_slot_21.txt +393 TEXTFILE 0x22 0x01D0 0x02B5 229 73 debug_symbols_then_end 3 pseudocode/TEXTFILE/slot_22_slot_22.txt +393 TEXTFILE 0x23 0x02B5 0x252C 8823 812 debug_symbols_then_end 6 pseudocode/TEXTFILE/slot_23_slot_23.txt +394 TRIGGER 0x20 0x011C 0x0699 1405 488 debug_symbols_then_end 14 pseudocode/TRIGGER/slot_20_slot_20.txt +394 TRIGGER 0x21 0x0699 0x09FE 869 300 debug_symbols_then_end 10 pseudocode/TRIGGER/slot_21_slot_21.txt +394 TRIGGER 0x22 0x09FE 0x0AD8 218 61 debug_symbols_then_end 4 pseudocode/TRIGGER/slot_22_slot_22.txt +394 TRIGGER 0x23 0x0AD8 0x1107 1583 606 debug_symbols_then_end 17 pseudocode/TRIGGER/slot_23_slot_23.txt +394 TRIGGER 0x24 0x1107 0x1761 1626 618 debug_symbols_then_end 18 pseudocode/TRIGGER/slot_24_slot_24.txt +394 TRIGGER 0x25 0x1761 0x1D00 1439 542 debug_symbols_then_end 17 pseudocode/TRIGGER/slot_25_slot_25.txt +394 TRIGGER 0x26 0x1D00 0x22ED 1517 576 debug_symbols_then_end 17 pseudocode/TRIGGER/slot_26_slot_26.txt +394 TRIGGER 0x27 0x22ED 0x2905 1560 588 debug_symbols_then_end 18 pseudocode/TRIGGER/slot_27_slot_27.txt +394 TRIGGER 0x28 0x2905 0x2E62 1373 512 debug_symbols_then_end 17 pseudocode/TRIGGER/slot_28_slot_28.txt +394 TRIGGER 0x29 0x2E62 0x3516 1716 611 debug_symbols_then_end 22 pseudocode/TRIGGER/slot_29_slot_29.txt +394 TRIGGER 0x2A 0x3516 0x3AA7 1425 496 debug_symbols_then_end 17 pseudocode/TRIGGER/slot_2A_slot_2A.txt +394 TRIGGER 0x2B 0x3AA7 0x41A0 1785 649 debug_symbols_then_end 17 pseudocode/TRIGGER/slot_2B_slot_2B.txt +395 VALBOX 0x20 0x00DA 0x0178 158 42 debug_symbols_then_end 4 pseudocode/VALBOX/slot_20_slot_20.txt +396 WALLGUN 0x20 0x01DC 0x0234 88 26 debug_symbols_then_end 2 pseudocode/WALLGUN/slot_20_slot_20.txt +396 WALLGUN 0x21 0x0234 0x028C 88 26 debug_symbols_then_end 2 pseudocode/WALLGUN/slot_21_slot_21.txt +396 WALLGUN 0x22 0x028C 0x02D0 68 28 body_exhausted 0 pseudocode/WALLGUN/slot_22_slot_22.txt +396 WALLGUN 0x23 0x02D0 0x0314 68 28 body_exhausted 0 pseudocode/WALLGUN/slot_23_slot_23.txt +396 WALLGUN 0x24 0x0314 0x042F 283 100 debug_symbols_then_end 3 pseudocode/WALLGUN/slot_24_slot_24.txt +396 WALLGUN 0x25 0x042F 0x0520 241 92 debug_symbols_then_end 3 pseudocode/WALLGUN/slot_25_slot_25.txt +396 WALLGUN 0x26 0x0520 0x058A 106 38 end_opcode 0 pseudocode/WALLGUN/slot_26_slot_26.txt +396 WALLGUN 0x27 0x058A 0x06B5 299 114 end_opcode 0 pseudocode/WALLGUN/slot_27_slot_27.txt +396 WALLGUN 0x28 0x06B5 0x0C36 1409 488 debug_symbols_then_end 5 pseudocode/WALLGUN/slot_28_slot_28.txt +396 WALLGUN 0x29 0x0C36 0x0C8D 87 26 debug_symbols_then_end 2 pseudocode/WALLGUN/slot_29_slot_29.txt +396 WALLGUN 0x2A 0x0C8D 0x0CED 96 36 end_opcode 0 pseudocode/WALLGUN/slot_2A_slot_2A.txt +396 WALLGUN 0x2B 0x0CED 0x0D44 87 33 end_opcode 0 pseudocode/WALLGUN/slot_2B_slot_2B.txt +396 WALLGUN 0x2C 0x0D44 0x0DE3 159 68 end_opcode 0 pseudocode/WALLGUN/slot_2C_slot_2C.txt +396 WALLGUN 0x2D 0x0DE3 0x0FB2 463 166 debug_symbols_then_end 7 pseudocode/WALLGUN/slot_2D_slot_2D.txt +396 WALLGUN 0x2E 0x0FB2 0x113A 392 124 debug_symbols_then_end 10 pseudocode/WALLGUN/slot_2E_slot_2E.txt +396 WALLGUN 0x2F 0x113A 0x1264 298 99 debug_symbols_then_end 6 pseudocode/WALLGUN/slot_2F_slot_2F.txt +396 WALLGUN 0x30 0x1264 0x12F2 142 43 debug_symbols_then_end 2 pseudocode/WALLGUN/slot_30_slot_30.txt +396 WALLGUN 0x31 0x12F2 0x1669 887 307 debug_symbols_then_end 10 pseudocode/WALLGUN/slot_31_slot_31.txt +396 WALLGUN 0x32 0x1669 0x1968 767 250 debug_symbols_then_end 10 pseudocode/WALLGUN/slot_32_slot_32.txt +396 WALLGUN 0x33 0x1968 0x1C6A 770 252 debug_symbols_then_end 10 pseudocode/WALLGUN/slot_33_slot_33.txt +396 WALLGUN 0x34 0x1C6A 0x1EB6 588 192 debug_symbols_then_end 8 pseudocode/WALLGUN/slot_34_slot_34.txt +396 WALLGUN 0x35 0x1EB6 0x2104 590 194 debug_symbols_then_end 8 pseudocode/WALLGUN/slot_35_slot_35.txt +396 WALLGUN 0x36 0x2104 0x23C3 703 232 debug_symbols_then_end 9 pseudocode/WALLGUN/slot_36_slot_36.txt +396 WALLGUN 0x37 0x23C3 0x2685 706 234 debug_symbols_then_end 9 pseudocode/WALLGUN/slot_37_slot_37.txt +396 WALLGUN 0x38 0x2685 0x295D 728 233 debug_symbols_then_end 10 pseudocode/WALLGUN/slot_38_slot_38.txt +396 WALLGUN 0x39 0x295D 0x2C35 728 233 debug_symbols_then_end 10 pseudocode/WALLGUN/slot_39_slot_39.txt +396 WALLGUN 0x3A 0x2C35 0x2F59 804 255 debug_symbols_then_end 10 pseudocode/WALLGUN/slot_3A_slot_3A.txt +396 WALLGUN 0x3B 0x2F59 0x3283 810 259 debug_symbols_then_end 10 pseudocode/WALLGUN/slot_3B_slot_3B.txt +396 WALLGUN 0x3C 0x3283 0x353A 695 235 debug_symbols_then_end 9 pseudocode/WALLGUN/slot_3C_slot_3C.txt +396 WALLGUN 0x3D 0x353A 0x365D 291 93 debug_symbols_then_end 5 pseudocode/WALLGUN/slot_3D_slot_3D.txt +396 WALLGUN 0x3E 0x365D 0x3F94 2359 1043 debug_symbols_then_end 2 pseudocode/WALLGUN/slot_3E_slot_3E.txt +396 WALLGUN 0x3F 0x3F94 0x48DF 2379 1041 debug_symbols_then_end 3 pseudocode/WALLGUN/slot_3F_slot_3F.txt +396 WALLGUN 0x40 0x48DF 0x49F9 282 114 debug_symbols_then_end 2 pseudocode/WALLGUN/slot_40_slot_40.txt +396 WALLGUN 0x41 0x49F9 0x4B7B 386 158 debug_symbols_then_end 2 pseudocode/WALLGUN/slot_41_slot_41.txt +396 WALLGUN 0x42 0x4B7B 0x4CFD 386 158 debug_symbols_then_end 2 pseudocode/WALLGUN/slot_42_slot_42.txt +396 WALLGUN 0x43 0x4CFD 0x4D54 87 23 debug_symbols_then_end 2 pseudocode/WALLGUN/slot_43_slot_43.txt +396 WALLGUN 0x44 0x4D54 0x4DC1 109 35 debug_symbols_then_end 2 pseudocode/WALLGUN/slot_44_slot_44.txt +396 WALLGUN 0x45 0x4DC1 0x53D6 1557 537 debug_symbols_then_end 9 pseudocode/WALLGUN/slot_45_slot_45.txt +396 WALLGUN 0x46 0x53D6 0x59E7 1553 540 debug_symbols_then_end 8 pseudocode/WALLGUN/slot_46_slot_46.txt +396 WALLGUN 0x47 0x59E7 0x5B91 426 143 debug_symbols_then_end 9 pseudocode/WALLGUN/slot_47_slot_47.txt +396 WALLGUN 0x48 0x5B91 0x5DA7 534 197 debug_symbols_then_end 6 pseudocode/WALLGUN/slot_48_slot_48.txt +396 WALLGUN 0x49 0x5DA7 0x6548 1953 774 debug_symbols_then_end 6 pseudocode/WALLGUN/slot_49_slot_49.txt +396 WALLGUN 0x4A 0x6548 0x6B59 1553 540 debug_symbols_then_end 8 pseudocode/WALLGUN/slot_4A_slot_4A.txt +396 WALLGUN 0x4B 0x6B59 0x6D03 426 143 debug_symbols_then_end 9 pseudocode/WALLGUN/slot_4B_slot_4B.txt +397 YELRAIL 0x20 0x00DA 0x048C 946 369 debug_symbols_then_end 6 pseudocode/YELRAIL/slot_20_slot_20.txt +398 NPCDEATH 0x20 0x00E6 0x1432 4940 1903 debug_symbols_then_end 24 pseudocode/NPCDEATH/slot_20_slot_20.txt +398 NPCDEATH 0x21 0x1432 0x14C8 150 42 debug_symbols_then_end 3 pseudocode/NPCDEATH/slot_21_slot_21.txt +398 NPCDEATH 0x22 0x14C8 0x1EDD 2581 1027 debug_symbols_then_end 8 pseudocode/NPCDEATH/slot_22_slot_22.txt +399 TEXTFIL1 0x20 0x00DA 0x2567 9357 801 debug_symbols_then_end 5 pseudocode/TEXTFIL1/slot_20_slot_20.txt +400 ITEM 0x20 0x012E 0x0184 86 13 debug_symbols_then_end 4 pseudocode/ITEM/slot_20_slot_20.txt +400 ITEM 0x21 0x0184 0x0223 159 39 debug_symbols_then_end 4 pseudocode/ITEM/slot_21_slot_21.txt +400 ITEM 0x22 0x0223 0x0288 101 42 body_exhausted 0 pseudocode/ITEM/slot_22_slot_22.txt +400 ITEM 0x23 0x0288 0x02C4 60 25 body_exhausted 0 pseudocode/ITEM/slot_23_slot_23.txt +400 ITEM 0x24 0x02C4 0x0301 61 26 body_exhausted 0 pseudocode/ITEM/slot_24_slot_24.txt +400 ITEM 0x25 0x0301 0x0746 1093 406 debug_symbols_then_end 23 pseudocode/ITEM/slot_25_slot_25.txt +400 ITEM 0x26 0x0746 0x0B0E 968 352 debug_symbols_then_end 22 pseudocode/ITEM/slot_26_slot_26.txt +400 ITEM 0x27 0x0B0E 0x0C03 245 63 debug_symbols_then_end 7 pseudocode/ITEM/slot_27_slot_27.txt +400 ITEM 0x28 0x0C03 0x0F54 849 313 debug_symbols_then_end 8 pseudocode/ITEM/slot_28_slot_28.txt +400 ITEM 0x29 0x0F54 0x10D9 389 133 debug_symbols_then_end 8 pseudocode/ITEM/slot_29_slot_29.txt +400 ITEM 0x2A 0x10D9 0x13C2 745 281 debug_symbols_then_end 7 pseudocode/ITEM/slot_2A_slot_2A.txt +400 ITEM 0x2B 0x13C2 0x169B 729 264 debug_symbols_then_end 3 pseudocode/ITEM/slot_2B_slot_2B.txt +400 ITEM 0x2C 0x169B 0x1726 139 50 debug_symbols_then_end 2 pseudocode/ITEM/slot_2C_slot_2C.txt +400 ITEM 0x2D 0x1726 0x1A22 764 277 debug_symbols_then_end 10 pseudocode/ITEM/slot_2D_slot_2D.txt +400 ITEM 0x2E 0x1A22 0x1ABB 153 33 debug_symbols_then_end 5 pseudocode/ITEM/slot_2E_slot_2E.txt +401 TEXTFIL2 0x20 0x00DA 0x26A8 9678 1021 debug_symbols_then_end 5 pseudocode/TEXTFIL2/slot_20_slot_20.txt +402 FLICTEST 0x20 0x00E0 0x279F 9919 3435 debug_symbols_then_end 2 pseudocode/FLICTEST/slot_20_slot_20.txt +402 FLICTEST 0x21 0x279F 0x4E4C 9901 3439 body_exhausted 0 pseudocode/FLICTEST/slot_21_slot_21.txt diff --git a/crusader_decompilation_notes.md b/crusader_decompilation_notes.md index 4f5e759..662f9f0 100644 --- a/crusader_decompilation_notes.md +++ b/crusader_decompilation_notes.md @@ -4,7 +4,15 @@ This file is an index. Detailed notes have been split into the `docs/` folder by Active live analysis target is now `CRUSADER.EXE`. Existing `CRUSADER-RAW.EXE` notes remain in scope as cross-reference evidence and should be cited alongside live NE addresses when they support a rename, variable role, or behavior claim. -Recent verified batch: [docs/ne-segment1.md](docs/ne-segment1.md) now carries the strongest live proof that the direct No Remorse immortality combo sits behind the same F10 cheat lane under the `0x6045` latch, that event `0x410` is the CD transfer display toggle rather than immortality, that the `jassica16` matcher is a scan-code sequence ending with top-row `1` / `6`, that the shared `0x85f` gameplay-input gate now has clearer live names around its Laurie, controller, and camera call sites, and that the hidden seg109 "cheat menu" is best modeled as a usecode debugger whose most likely original entry point was the surviving seg1408 breakpoint callback lane around `0x659c/0x659e`, not the cheat-toggle event helper. New live renames in that debugger lane now cover the seg1408 breakpoint/state object, sorted breakpoint table, callstack/current-entry stack, and single-step flags, while the current `REGRET.EXE` cross-check still moves the latch-enabling secret code from `jassica16` to `loosecannon` and the keyboard helper swap is now code-proven in No Remorse: the old Alt/Ctrl names on `11c8:01a8` and `11c8:018a` were reversed against BIOS `INT 16h, AH=12h` shift-flag bits, and the repeat path explains why the practical gesture behaves as `F10`-then-`Ctrl`. +Recent verified batch: [docs/retail-debug-arg.md](docs/retail-debug-arg.md) now records the live NE proof that retail `CRUSADER.EXE` still recognizes and executes a real `-debug` command-line branch. That branch prints `Debugging mode ON.`, sets `g_debugMsgLevel` at `1478:87e0`, and toggles two debug globals at `1478:0845/0859`. The later sink pass also closes the text-output target more tightly: `ProbablyPrintDebugMessage` formats through the static stdio-style table at `1478:6c32..6c81` and writes to the handle-`1` entry at `1478:6c46`, so the non-video side is ordinary DOS `stdout` gated by the debug threshold, plus the already-confirmed AVI timing overlay. Current best read remains `surviving debug-output / instrumentation switch`, not `the missing bootstrap for the hidden seg109/seg1408 usecode debugger`. The same batch also leaves the earlier `-laurie` and `0x659c/659e` debugger-state conclusions intact: `-debug` is a separate switch and is not currently evidenced as constructing the hidden usecode-debugger break-state object. + +Latest doc-reconciliation batch: [docs/ne-segment1.md](docs/ne-segment1.md) now has a combined hidden-debugger component table that explicitly separates the seg109/raw-reference UI wrappers (`000b:9a86`, `000b:9c0d`, `000b:b3b1`, `000b:b62c`, `000b:2882`) from the live seg1408 breakpoint-state helpers (`1408:0000`, `1408:0053`, `1408:00dd`, `1408:029e`, `1408:03b0`, `1408:03f7`, `1408:0419`, `1408:0432`, `1408:0444`) and the interpreter hook at `1418:04aa..04b5`. Current best read remains `two connected layers of one hidden usecode debugger`, not `conflicting address claims for the same function family`. + +Follow-up cheat-key correction pass: [docs/ne-segment1.md](docs/ne-segment1.md) now also records a live NE cleanup of several folklore keyboard-cheat claims. `~` is a real runtime cheat-latch toggle at `13e8:203d`, `Ctrl+C` is wrong for this build and should be `Ctrl+L` for the coordinate popup at `13e8:255e`, and the third F7-family overlay really does exist as a separate `Ctrl+F7` path at `13e8:1a20` alongside the other two cheat-gated F7 overlay toggles. + +That same note now also separates `~` from `jassica16` more cleanly: `jassica16` is the raw scan-code unlock path that toggles both `1478:0844` and `1478:6045` and sets the extra post-sequence latch `1478:8c52`, while `~` is only the later translated logical-`0x7e` hotkey that flips `1478:6045` after `1478:0844` is already on. The F7-family clarification is tighter too: `Ctrl+F7` is best read as an egg-hatcher trigger-range overlay rather than a third generic background grid. + +The same `docs/ne-segment1.md` note now also has the first consolidated cheat/debug key matrix for the live NE target, including which paths need the broader Laurie/debug master gate (`1478:0844`), which ones need the full keyboard-cheat latch (`1478:6045`), and which ones depend on the extra post-`jassica16` latch (`1478:8c52`). That pass also expands the egg-hatcher explanation: `Ctrl+F7` is now documented as a live `EggHatcherProcess` range visualizer, with practical guidance on where to look for egg-trigger regions in gameplay. ## Documentation Structure @@ -22,7 +30,13 @@ Recent verified batch: [docs/ne-segment1.md](docs/ne-segment1.md) now carries th | [docs/crusader-disasm-reference.md](docs/crusader-disasm-reference.md) | Local auxiliary disassembly corpus at `K:/ghidra/crusader-disasm`: handwritten notes, shape tables, map dumps, opcode lists, intrinsic/function dumps, and the safe reuse rules for porting into `CRUSADER.EXE` | | [docs/ne-hole-filling-priorities.md](docs/ne-hole-filling-priorities.md) | Ranked `CRUSADER.EXE` hole-filling tracker: NE-side unclear lanes, the verified raw-side knowledge that can close them, and the recommended order for old-to-new porting passes | | [docs/retail-debugger-patch-attempts.md](docs/retail-debugger-patch-attempts.md) | Chronological log of retail `CRUSADER.EXE` debugger-unlock patch attempts, byte-level designs, runtime failures, root-cause findings, and the current live candidate | +| [docs/retail-debug-arg.md](docs/retail-debug-arg.md) | Focused note on the retail `-debug` command-line switch: live parser evidence, exact startup message, surviving globals, segment `1468` instrumentation path, and why it is currently separate from the hidden usecode debugger bootstrap | | [docs/scummvm-crusader-reference.md](docs/scummvm-crusader-reference.md) | ScummVM Ultima8/Pentagram Crusader integration survey: USECODE/event tables, FLEX/resource formats, world/map loaders, HUD/media, and RE follow-up priorities | | [docs/pentagram-crusader-reference.md](docs/pentagram-crusader-reference.md) | Pentagram-source Crusader/U8 reference: direct Crusader USECODE parser and VM evidence, U8 usecode docs, runtime-confidence limits, and cross-checks against the ScummVM note | | [docs/usecode-roundtrip-ir.md](docs/usecode-roundtrip-ir.md) | ScummVM-to-binary USECODE cross-walk, owner-loaded class-layout and header/event-count reconciliation, conservative IR v0 plan, and the generated class-event/body-window outputs that now ground reversible `_BOOT`, `SURCAM*`, and environmental family decompile artifacts plus repeated-family regression checks | | [docs/usecode-pentagram-ghidra-path.md](docs/usecode-pentagram-ghidra-path.md) | Pentagram-derived Crusader USECODE parser plan, proof-of-concept workflow, canonical IR v1 goals, and the Ghidra-side annotation import path | +| [docs/usecode-tooling-comparison.md](docs/usecode-tooling-comparison.md) | Comparison of Pentagram's converter/disassembler, the local `crusader-disasm` corpus/scripts, and the current workspace parser/pseudocode exporter, with emphasis on assumptions, strengths, and repo-specific differences | +| [docs/usecode-tool-improvement-plan.md](docs/usecode-tool-improvement-plan.md) | Concrete next-step plan for the local USECODE parser/decompiler, distilled from the Pentagram and `crusader-disasm` comparison into prioritized parser, loop-decoding, intrinsic, trailer, corpus, and runtime-bridge upgrades | +| [docs/usecode-jelyhack-analysis.md](docs/usecode-jelyhack-analysis.md) | Focused analysis of exported `JELYHACK` / `JELYH2` pseudocode, the tiny shared `use` stub, and why the current best model remains `referent anchor + neighboring event-bearing attachment` | +| [docs/usecode-equipment-system.md](docs/usecode-equipment-system.md) | Evidence-backed note on Crusader's surviving `equip` / `unequip` event system, including live compiled-side dispatcher proof, corpus-wide slot counts, actor/turret/environment examples, and the current best model of `equip` as a generalized inherited Ultima-style item event | +| [docs/usecode-alarmhat-analysis.md](docs/usecode-alarmhat-analysis.md) | Focused analysis of exported `ALARMHAT::equip`, the nearby `shape 0x04D0` equip loops, alarm-family comparisons, and the current gameplay-facing read of `ALARMHAT` as a local alarm-state driver | diff --git a/docs/crusader-disasm-reference.md b/docs/crusader-disasm-reference.md index 9bcf1b4..c44db58 100644 --- a/docs/crusader-disasm-reference.md +++ b/docs/crusader-disasm-reference.md @@ -91,6 +91,28 @@ Current unsafe use: - direct rename authority for modern Ghidra functions - assuming one game's intrinsic numbering matches another without local confirmation +### Validated follow-up on `misc_crusader_notes.txt` + +Several of the old scratchpad items are now tight enough to record as verified follow-up rather than open leads. + +- `STEAM2` (`shape 1297`) is no longer just a handwritten event hint. Local extracted data now confirms non-empty `STEAM2::enterFastArea` (`event 0x0f`) and `STEAM2::gotHit` (`event 0x06`) bodies in `USECODE/EUSECODE_extracted/class_event_index.tsv`, which matches the old note's `event 15 (enter fast area)` and `Got Hit: spawn process` direction. +- The old standalone labels `FUN_1130_0896`, `FUN_1130_32af`, `FUN_1020_0000`, and `FUN_1128_026b` are now closed in the live NE database as `Key_HandleOptionKeys`, `NPC_ResetToStartOfAnim`, `Game_Start`, and `Item_ReceiveHit`. The historical notes were directionally useful, but the live names now capture their real scope: `NPC_ResetToStartOfAnim` resets an NPC/item frame to the first frame of a chosen animation and updates the stored last-anim state, while `Item_ReceiveHit` is the main damage/death handler rather than a loose "various deaths" helper. +- The `Item_ReceiveHit` decomp also closes several handwritten shape hints directly from code. It uses `0x576` for the burning human replacement path (`flaming guy running around`), `0x5a9` and `0x52b` for shield-zap sprites, and still routes controlled-NPC death through `Target_PutTargetingReticleOnItem(0)`, which keeps the old `0x59a` reticle note on the right subsystem. +- The old `ItemNPC_AnotherCreate` area-search TODO is now directly closed in the live NE program: `10e8:2710` (now renamed `NPC_CreateIfAreaSearchValid`) allocates/initializes an `AreaSearch` struct, checks `AreaSearch_IsValidPositionPt`, and only then runs `NPC_Create` plus `Item_PopToCoords`. So the practical role is `create NPC only if the requested point passes area-search placement validation`, not a second independent spawn path. +- The handwritten `Kernel_11d0_2491` gloss was incomplete. The live function is not merely "prints kernel info"; it serializes the process table, timer/keyboard/mouse process-id lists, process sizes, and per-process state through file-like writer callbacks, then restores timer/interrupt state afterward. Current safest read is `kernel/process snapshot writer` rather than a simple printf-style diagnostics helper. +- `FREE::ordinal3C` is still corpus-side evidence rather than live-NE proof, but the old disassembly now constrains it much better than the original note implied. It clears the alert state, checks avatar stasis, rolls random thresholds, and spawns `FREE::ordinal21` with a small set of ordinals (`0x0e`, `0x0f`, `0x00b6`, `0x00d2`). That makes `random global FREE event chooser after alert clear` a safer description than the narrower `random voices when alarm is disabled` guess. +- The old `high priority unknown intrinsic: 01E - fire` note is now effectively closed as a hint. The old Remorse intrinsic tables map `Int01E` to `Actor::I_maybeFire(...)`, and the current live export map ties `Int01E` to `1128:11da`. That is still hint-level naming until the compiled body is analyzed locally, but it is no longer an unidentified ordinal. +- The `combat.dat` scratch note is also better grounded now. The external corpus already showed the extracted tactic files are identical between Remorse and Regret, and the live `CRUSADER.EXE` export map now has NPC fields such as `combatDatTacticPtr`, `combatDatTacticCurOffset`, `combatDatBlockNo`, and `tacticNo`. So the named tactic strings are good portable data labels, but they should still be attached to tactic records and NPC state fields, not promoted directly into compiled function names. + +Two shape hints also have light compiled-side support now: + +- `0x59a` is passed into `SpriteProcess::I_createSprite` from the cursor/targeting lane in segment `1130`, which fits the old `targetting reticle` note. +- `0x5a3` is passed into `SpriteProcess::I_createSprite` from the `13e8` gameplay/UI lane and stored at `0x6054`, which fits the old `use item crosshairs` note. + +Remaining caution: + +- these follow-ups make the scratchpad much more reusable, but `misc_crusader_notes.txt` is still an auxiliary corpus. The verified parts above should be cited with their live NE addresses or extracted-data files when reused elsewhere in the repo. + ### Combat data note `combat_dat/readme.txt` records that the extracted `combat.dat` tactic files are identical between No Remorse and No Regret. diff --git a/docs/ne-hole-filling-priorities.md b/docs/ne-hole-filling-priorities.md index 73c6477..5201b80 100644 --- a/docs/ne-hole-filling-priorities.md +++ b/docs/ne-hole-filling-priorities.md @@ -55,13 +55,15 @@ Evidence used here: ### Latest verified NE pass - `0005:295f` is now the only recovered non-hub consumer of `entity_vm_slot_index_from_entity` in the open NE session. It recomputes the slot index, tests owner-row bit `0x0040` directly, exposes that result to the caller, and only then optionally calls `entity_vm_context_try_create_masked_for_entity` with slot `0x06` and mask `0x0040`. -- The direct NE callers currently recovered for `0005:295f` are `0006:43c3`, `0006:c5f0`, and `0007:3584`. That materially narrows the selector frontier to three gameplay-side caller families instead of the older wider `find any caller of 000d:45c5` search. +- The direct NE callers currently recovered for `0005:295f` are still only `0006:43c3`, `0006:c5f0`, and `0007:3584`, but they are now all structurally classified in the live NE session instead of only enumerated as open caller families. - The first anchored caller family is now structurally classified in the live NE session. Repaired wrapper `0006:4379` is a seg031 dispatch-entry subtype gate over objects built by `0006:42d9`: event type `0x236`, source type `8`, subtype/tag at `+0x3c`, dword payload/source far pointer at `+0x32`, and aux words at `+0x36/+0x38`. - In that wrapper, subtype `0x20c` at `0006:43c3` routes into `0005:295f`, while nearby sibling subtype `0x20b` at `0006:43e5` routes into `0005:2918` (`slot 0x05` / `mask 0x0020`) using the same `+0x36/+0x38` aux pair. The split is therefore local to one dispatch-entry family, not a direct compiled `NPCTRIG` / `EVENT` class-family selector by itself. - The `0006:43c3` lane now shows where the owner-row bit-`0x0040` probe is consumed locally: inside a subtype-`0x20c` dispatch-entry object rather than at a generic descriptor-choice site. That improves caller provenance for `0005:295f`, but it still does not prove which owner-loaded class family seeded the later VM data. +- The second direct caller family is now closed too. Old `0006:c5f0` lands at live call site `1128:0ff0` inside `Item_ReceiveHit`, where the non-NPC item path calls `Item_GetDamaged` with hitter sentinel `0x4000`, packed damage `(damagetype << 8) | damage_lo`, and a local flag-out byte that records the returned owner-row bit-`0x0040` capability before the local destruction / impact follow-up. +- The third direct caller family is now closed too. Old `0007:3584` lands at live call site `1138:1384` inside `SuperSprite_HitAndFinish`, where the non-NPC collision lane probes `Item_GetDamaged` with hitter sentinel `0x4000` and packed damage `(firetype << 8) | damage`; only when that flag-out byte stays clear and the target is not fixed does the lane fall through into the local `Item_ReceiveHit` knockback path. - `0005:2c35` remains outward-dark in the current NE session: instruction search still shows no recovered code or data xrefs, and its proven local role is still only `sign-extended additive word -> slot 0x0a / mask 0x0400 -> generic masked hub`. -- The first live `CRUSADER.EXE` integration batch is now applied for this lane. Comment-backed anchors were added at `1420:0dc5` (`Item_GetUsecodeClassId`), `1420:0e3a` (`Usecode_ItemCallEvent`), `10a0:2718` (`Item_Hit`), `10a0:275f` (`Item_GetDamaged`), `10f0:02d9` (`StorageDataProcess_Create`), and `10f0:0379` (`StorageDataProcess_Run`), with branch comments at `10f0:03c3` and `10f0:03e5` preserving the verified `0x20c` / `0x20b` split in the open NE program. -- Result of this pass: the compiled-side selector evidence still bottoms out at category spans plus owner-row capability bits, not a concrete `NPCTRIG` / `EVENT` class-family choice. The next defensible NE step is to classify the three `0005:295f` caller families or recover an earlier producer that feeds the later owner-loaded class lane. +- The live `CRUSADER.EXE` integration batch is now extended for this lane. Comment-backed anchors were already present at `1420:0dc5` (`Item_GetUsecodeClassId`), `1420:0e3a` (`Usecode_ItemCallEvent`), `10a0:2718` (`Item_Hit`), `10a0:275f` (`Item_GetDamaged`), `10f0:02d9` (`StorageDataProcess_Create`), and `10f0:0379` (`StorageDataProcess_Run`), with branch comments at `10f0:03c3` and `10f0:03e5` preserving the verified `0x20c` / `0x20b` split; new live comments now also anchor the remaining direct caller sites at `1128:0ff0` and `1138:1384`. +- Result of this pass: all currently recovered direct `0005:295f` caller families are now closed, but the compiled-side selector evidence still bottoms out at subtype-gated dispatch or generic gameplay damage consumers plus owner-row capability bits, not a concrete `NPCTRIG` / `EVENT` class-family choice. The next defensible NE step is therefore an earlier producer that assigns subtype `0x20b/0x20c` into field `+0x3c` or otherwise chooses the owner-loaded class family before these generic damage consumers run. ## Priority 2: Rendering / Camera / Tile-Visibility / Watch-Controller Lane diff --git a/docs/ne-segment1.md b/docs/ne-segment1.md index 93f8ce4..f16c9e8 100644 --- a/docs/ne-segment1.md +++ b/docs/ne-segment1.md @@ -320,6 +320,81 @@ What `-laurie` appears to enable by itself: - It is also enough to permit the separate event-`0x7e` runtime toggle path, whose entire job is to flip `0x6045` later and post the `0x6087` / `0x6091` notifications. - It is **not** enough for low-level keyboard-only cheat branches that check `0x6045` directly. That is why the user can see the `0x844`-gated debug-box behavior while plain F10 still behaves as if full keyboard cheats are off. +### Keyboard folklore correction pass (`CRUSADER.EXE` live NE) + +- `~` is real in this build. In `World_HandleKeyboardInput_13e8_14b4`, the branch at `13e8:202d..203d` requires `0x844 != 0`, flips the live keyboard-cheat latch `0x6045`, and posts the paired on/off messages at `0x6087` / `0x6091`. +- `Ctrl+C` is **not** the current-location popup in this build. The actual location-display branch is `Ctrl+L` (`0x426`), which formats the avatar's X/Y/Z into the `1478:610c` string and displays it at `13e8:255e..25ac`. +- The third F7-family overlay is also real. The three cheat-gated overlay toggles live at `13e8:1a7c` (`0x141`), `13e8:1a50` (`0x241`), and `13e8:1a20` (`0x441`), writing `1478:2bca`, `1478:2bc9`, and `1478:0ee0` respectively before forcing a camera refresh through `[g_cameraProcess+0x2c]`. +- The unresolved online entry is therefore best corrected as `Ctrl+F7 exists but is cheat-gated`; the obviously bogus list item is `Ctrl+C`, which should be `Ctrl+L` for the coordinate popup. + +### `~` versus `jassica16` + +- These are **not** the same mechanism. `jassica16` is handled earlier in `Key_CheckCheatToggle` as a raw scan-code matcher over `1478:2833`, while `~` is handled later in `World_HandleKeyboardInput_13e8_14b4` as a translated logical key value (`0x7e`). +- That means Shift is probably normal behavior here, not a DOSBox-only artifact. On a standard US DOS keyboard layout, plain grave is `` ` `` (`0x60`) and Shift+grave is `~` (`0x7e`); the live handler we recovered is the `0x7e` branch, and no separate backtick/`0x60` hotkey path was recovered in this handler. +- DOSBox can still affect host-to-DOS layout mapping, but the recovered game logic is asking for the translated `~` character value, not the raw grave-key scancode. So on a US layout the expected in-game gesture is Shift+grave. +- `jassica16` is the stronger unlock path. On success it sets `0x8c52 = 1`, toggles both `0x844` and `0x6045`, emits the `0x103` voice/helper side effect, and shows the `1478:287b` / `1478:2892` cheat-state modals. +- Plain `~` is narrower. It only works after the broader `0x844` gate is already on, and then it flips just the live keyboard-cheat latch `0x6045` while showing the `0x6087` / `0x6091` on/off messages. +- Practically: `jassica16` can bootstrap cheats from a cold state because it toggles the master gate and the low-level latch together; `~` cannot bootstrap that state by itself because its own branch first requires `0x844 != 0`. +- The extra `0x8c52` write also means `jassica16` is not just a different UI for the same toggle. It leaves a second latch behind that later keyboard-side cheat/debug branches can test, while plain `~` does not touch that latch. + +### What `Ctrl+F7` is supposed to show + +- `Ctrl+F7` (`13e8:1a20` -> `1478:0ee0`) is not just a third generic grid. In the camera redraw path, `Camera_1180_15ef` treats `0x0ee0` differently from the simpler `0x2bca` grid flag. +- Plain `F7` (`1478:2bca`) draws a coarse `3 x 3` isometric world-cell grid around the camera by stepping `0x200` world units and drawing diamond tile boundaries. +- `Alt+F7` (`1478:2bc9`) calls `Snap_1058_0814`, which walks the snap-process egg list and draws per-entry diamonds from packed egg range data. That is closer to a snap/trigger coverage overlay than to a camera-aligned background grid. +- `Ctrl+F7` (`1478:0ee0`) walks `EggHatcherProcess` objects and calls `EggHatcher_1090_0921`, which draws diamond trigger ranges using `Egg_GetXRange`, `Egg_GetYRange`, and the shared diamond helper at `1180:1ce5`. +- So the intended visual for `Ctrl+F7` is an **egg / hatch trigger-range overlay**. It should highlight live egg-hatcher or monster-egg regions, not fill the screen with a regular map grid. +- That also explains why it can appear to do nothing. If the current map has no live `EggHatcherProcess` objects, or a non-monster-egg trigger has already hatched while normal gameplay input is active, the draw loop has nothing eligible to outline even though the toggle flag itself changed. + +### Egg-Hatcher Runtime Notes + +- The live NE runtime has a dedicated egg-hatcher process type: `EggHatcher_CreateProcess` builds process type `0x20f`, stores one target item number in the process, and names it `EggHatcher`. +- The corresponding runner `EggHatcherProcess_Run` reads the avatar footprint and compares it against the egg item's center, `Egg_GetXRange`, `Egg_GetYRange`, and a vertical window of about `+/- 0x30` Z units. +- For non-monster egg families, entering that range sets the process `ishatched` byte and calls `Item_CallHatchEvent`; leaving the range clears `ishatched` and calls `Item_CallUnhatchEvent`. +- The overlay helper `EggHatcher_1090_0921` uses the same range values to draw the visible diamond outlines for `Ctrl+F7`. In other words, the visualizer is showing the same trigger footprint the runtime is testing against. +- Current safest gameplay-facing read: these "eggs" are hidden trigger items that fire enter/leave behaviors when the avatar crosses their footprint. Some are likely classic trap/trigger/controller eggs rather than literal spawn objects. +- The wider workspace evidence agrees with that interpretation. The extracted USECODE corpus contains egg-like labels such as `TRIGEGG`, `ONCEEGG`, `DOOREGG`, `LAZEREGG`, `STEAMEGG`, `MISS1EGG`, `GRENEGG`, and `REB_EGG`, while the older `crusader-disasm` notes explicitly call out `SnapEgg` as a fast-area participant. + +### How To Find One In Practice + +- The most reliable bootstrap is now: start with `-laurie`, then press `Shift+~` to flip the live keyboard cheat latch on, then use the F7-family overlays. +- Use `Ctrl+F7` when you want true egg-hatcher ranges. If nothing appears, switch to `Alt+F7` too; that overlay walks the snap-process egg list and can reveal related trigger coverage that is not currently present in the live egg-hatcher process list. +- Search in gameplay spaces that are likely controlled by hidden trigger items rather than by obvious UI state: door thresholds, ambush spawn zones, laser or steam hazards, missile/grenade trap corridors, teleporter pads, and one-shot scripted encounter rooms. +- If a region only reacts once, walk out of the area and re-enter it. The live runner explicitly tracks enter/leave transitions and only calls the hatch/unhatch events when the avatar crosses the trigger boundary. +- Monster-egg handling still looks special-cased, so a blank `Ctrl+F7` result does not prove a map has no egg-related logic at all; it only proves there are no eligible live `EggHatcherProcess` outlines being drawn at that moment. + +### Cheat / Debug Key Matrix + +Cheat-state legend used below: + +- `master gate (0x844)`: broader Laurie/debug permission state. `-laurie` sets this directly. +- `keyboard latch (0x6045)`: full keyboard-cheat latch used by the low-level F10 path and some other direct keyboard branches. +- `sequence latch (0x8c52)`: extra post-sequence latch left behind by `jassica16`; plain `~` does not set it. +- `input-active gate (0x85f)`: broader gameplay-input state. This is not a cheat bit, but it still suppresses some option-key behavior when the game is in modal/non-gameplay states. + +| Input | State Needed | Effect | Evidence / Notes | +|------|--------------|--------|------------------| +| `-laurie` | none at startup | Sets the `master gate (0x844)` only | This is the easiest way to unlock the broader debug/event family without entering the hidden key sequence. | +| `jassica16` | none | Toggles `0x844` and `0x6045`, sets `0x8c52`, emits `0x103`, shows cheat active/inactive modal | Raw scan-code matcher, not a translated text string. Can bootstrap full cheat state from cold. | +| `Shift+~` / `~` | `0x844` already on | Toggles only `0x6045`; shows the on/off cheat-latch modal | On a US layout the game is checking logical `0x7e`, so Shift is the expected normal gesture. With `-laurie`, this becomes a practical way to enable full keyboard cheats. | +| `F10` | `0x85f` and `0x6045` | Refill/loadout branch: restore/refill, credits, items, ammo, weapon set | This is the plain full-keyboard-cheat branch in `Key_HandleOptionKeys`. | +| `Ctrl+F10` | `0x85f` and `0x6045`; current NPC alive | Toggles the current controlled NPC's immortal flag | Same F10 branch, but only the modifier-gated immortality sub-path. | +| `Ctrl+L` | no cheat gate recovered | Shows current avatar X/Y/Z popup | Online `Ctrl+C` folklore is wrong for this build. | +| `Ctrl+C` | no live branch recovered | No confirmed effect in this build | Best current correction is `Ctrl+L`. | +| `Ctrl+V` | no cheat gate recovered | Displays internal stats / version / memory info | This branch appears to be available without the cheat gates. | +| `Ctrl+Q` | `0x844` | Toggles CD transfer display state (`0x604f`) | Distinct from immortality. Uses the broader master gate, not the full keyboard latch. | +| `F7` | `0x844` | Draws coarse `3 x 3` camera-aligned world-cell grid | Simple isometric background grid. | +| `Alt+F7` | `0x844` | Draws snap-process egg diamonds | Better read as snap/trigger coverage overlay than generic grid. | +| `Ctrl+F7` | `0x844` | Draws egg-hatcher trigger diamonds | Visualizes live `EggHatcherProcess` ranges; can look blank on maps without eligible live processes. | +| `F` | `0x844` | Toggles object/framework paint overlay | Laurie/debug-side visual lane, not a full keyboard-cheat-latch feature. | +| `H` | `0x844` and `0x8c52` | Toggles Hack Mover | Strongest current read is that this needs the broader Laurie/debug gate plus the extra post-`jassica16` sequence latch. | + +Practical state recipes: + +- `-laurie` by itself gives you the broader Laurie/debug event family (`0x844`) but not full keyboard cheats. +- `-laurie` plus `Shift+~` is enough to reach the full keyboard-cheat state in live play, because `-laurie` supplies `0x844` and `~` then flips `0x6045`. +- `jassica16` is still the most complete single-step unlock, because it toggles both cheat bytes together and also leaves the extra `0x8c52` sequence latch behind for later branches such as Hack Mover. + ### Cheat-related string table (seg014 / `000e:xxxx`) | Address | String | Notes | @@ -411,30 +486,48 @@ Current strongest read: **Secondary handler (000b:b62c):** -`cheat_event_listener_handle_event` (`000b:b62c`) receives event 0x410 through the registration installed by `cheat_event_listener_create` at `000b:b3b1`. When event 0x410 arrives, it writes state code `0xe` (decimal 14) into the event object's field `+0x6` and passes it to `000b:b7f3` for processing. This is a parallel state-machine path that runs alongside the 000c toggle; likely it drives an associated USECODE process or animation object into state 14. +`usecode_debugger_handle_event` (`000b:b62c`, live `13a0:1df3`) receives event 0x410 through the registration installed by `usecode_debugger_gump_create` at `000b:b3b1` (`13a0:19b1`). When event 0x410 arrives, it writes state code `0xe` (decimal 14) into the event object's field `+0x6` and passes it to the shared debugger tail. This is a parallel state-machine path that runs alongside the 000c toggle; current best read is that it drives the hidden usecode-debugger state machine rather than a standalone cheat-only listener. | Address | Symbol | Role | |-------------|-------------------------------|------| -| `000b:b3b1` | `cheat_event_listener_create` | Allocates one seg109 listener object and subscribes it to the shared cheat/control event bundle that includes `0x410`. | -| `000b:b62c` | `cheat_event_listener_handle_event` | Subscriber-side event mapper: rewrites incoming `0x410` to local state `0x0e` before entering the shared listener state machine. | +| `000b:b3b1` | `usecode_debugger_gump_create` | Allocates the seg109 debugger gump object, initializes its panes/watch state, and subscribes it to the shared debugger/control event bundle that includes `0x410`. | +| `000b:b62c` | `usecode_debugger_handle_event` | Debugger-side event mapper: rewrites incoming `0x410` to local state `0x0e` before entering the shared debugger state machine. | | `DS:0x604f` | `g_cdTransferDisplayActive` | Set/cleared by event `0x410`. | | `DS:0x60d2` | CD-transfer-on notification ptr | Near pointer in DS; resolves to far ptr → "CD TRANSFER DISPLAY ACTIVE." | | `DS:0x60ee` | CD-transfer-off notification ptr | Near pointer in DS; resolves to far ptr → "CD TRANSFER DISPLAY INACTIVE." | | `000a:b988` | `video_bios_state_snapshot` | Called after notification display in the 0x410 toggle to refresh screen state. | -### Hidden cheat menu investigation (seg109 UI lane) +### Hidden usecode debugger investigation (seg109 UI lane) -New compiled-side evidence shows that the old "hidden cheat menu" label is misleading. The seg109 UI path is much closer to a hidden **usecode debugger / unit inspector** than to a retail cheat list: +New compiled-side evidence shows that the older "hidden cheat menu" label was misleading. The recovered path is much closer to a hidden **usecode debugger / unit inspector** than to a retail cheat list. -| Address | Symbol | Role | -|-------------|-------------------------------------|------| -| `000b:9a86` | `usecode_debugger_open_for_current_unit` | Builds the seg109 debugger gump in current-unit mode, derives a usecode path from the live runtime context (`0x659c/0x659e`), loads that file, centers the current line, and then runs a modal UI loop. | -| `000b:9c0d` | `usecode_debugger_open_modal` | Smaller generic modal wrapper that opens the same debugger UI without first preloading a current unit/file. | -| `000b:b3b1` | `usecode_debugger_gump_create` | Constructor for the debugger object. Builds the panes/menu bar, initializes watch state, resolves the base `usecode` path, and registers the shared control-event bundle including `0x23f`, `0x410`, `0x411`, and `0x441`. | -| `000b:b62c` | `usecode_debugger_handle_event` | Debugger event mapper; recovered cases are debugger-style commands (open unit/file, go to line, watch, inspect, clear watches, change global, find/search again, break to debugger). Event `0x23f` is reused as a local debugger-state command; event `0x410` remaps to local state `0x0e` before entering the shared tail. | -| `000b:2882` | `usecode_debugger_build_menubar` | Builds the top-level debugger menus: File, Run, Breakpoints, Search, and Data. Recovered entries include `Open Unit`, `View File`, `Run to cursor`, `Trace into`, `Step over`, `Run until return`, `Toggle F2`, `Break to TDP`, `Find`, `Search again`, `Go to line`, `Watch`, `Inspect`, `Change Global`, and `Quit`. | +The two address families that looked inconsistent in older notes are actually two connected layers of the same subsystem, not competing identifications: -This better explains the long-running negative result about the "infamous scrollable cheat menu": the hidden UI we can actually recover is not a plain scrollable cheat list at all. It is a modal debugger/unit-inspector front-end that expects valid usecode file context and developer-style command routing. +- the `000b:*` / live `13a0:*` functions build and drive the modal debugger UI, +- the `1408:*` helpers hold breakpoint/callstack state, +- and the interpreter hook at `1418:04aa..04b5` ties the runtime back into that debugger state. + +Combined debugger component table: + +| Layer | Raw/reference anchor | Live NE Ghidra | Symbol | Verified role | +|-------|----------------------|----------------|--------|---------------| +| UI wrapper | `000b:9a86` | `13a0:0086` | `usecode_debugger_open_for_current_unit` | Builds the debugger gump in current-unit mode, resolves the active unit name from the live debugger state at `0x659c/0x659e`, loads the corresponding usecode file, centers on the current line, and enters the modal debugger UI. | +| UI wrapper | `000b:9c0d` | `13a0:020d` | `usecode_debugger_open_modal` | Smaller generic modal wrapper for the same debugger gump; it skips current-unit preload and simply opens the modal UI. | +| UI constructor | `000b:b3b1` | `13a0:19b1` | `usecode_debugger_gump_create` | Allocates the root debugger gump, builds the menu bar and panes, initializes watch state, resolves the base `usecode` path, and registers the shared debugger/control event bundle including `0x23f`, `0x410`, `0x411`, and `0x441`. | +| UI dispatcher | `000b:b62c` | `13a0:1df3` | `usecode_debugger_handle_event` | Main debugger event dispatcher. Recovered cases are debugger-style commands: open unit/file, go to line, watch, inspect, clear watches, change global, find/search again, and break to TDP. Incoming event `0x410` is remapped to local state `0x0e`. | +| UI menu builder | `000b:2882` | `13a0:2882` | `usecode_debugger_build_menubar` | Builds the hidden debugger menu bar with File, Run, Breakpoints, Search, and Data menus plus entries such as `Open Unit`, `View File`, `Run to cursor`, `Trace into`, `Step over`, `Run until return`, `Toggle F2`, `Break to TDP`, `Find`, `Search again`, `Go to line`, `Watch`, `Inspect`, `Change Global`, and `Quit`. | +| Break-state constructor | n/a | `1408:0000` | `usecode_debugger_break_state_create` | Allocates and initializes the seg1408 debugger-state object: vtable, breakpoint table, current-entry stack, and run/step flags. This is the object the rest of the breakpoint lane appears to expect at `0x659c/0x659e`. | +| Breakpoint gate | n/a | `1408:0053` | `usecode_debugger_maybe_break_on_current_line` | Stores the current interpreted line, resolves the active unit name through `1408:0444`, checks file+line breakpoints through `1408:029e`, evaluates run/step flags, and callbacks through the object's vtable when a break condition is met. | +| Breakpoint helper | n/a | `1408:00dd` | `usecode_debugger_breakpoint_insert_sorted` | Inserts `(file,line)` breakpoint entries into the seg1408 table in sorted order. | +| Breakpoint helper | n/a | `1408:029e` | `usecode_debugger_has_breakpoint` | Exact `(file,line)` membership test over the seg1408 breakpoint table. | +| Callstack helper | n/a | `1408:03b0` | `usecode_debugger_callstack_push_entry` | Pushes the current unit/line debugger entry onto the seg1408 callstack. | +| Callstack helper | n/a | `1408:03f7` | `usecode_debugger_callstack_pop_entry` | Pops one debugger callstack entry and asserts on underflow. | +| Step-state helper | n/a | `1408:0419` | `usecode_debugger_enable_single_step` | Arms the single-step mode flags in the debugger-state object. | +| Step-state helper | n/a | `1408:0432` | `usecode_debugger_clear_step_state` | Clears the break/step flags in the debugger-state object. | +| Current-entry helper | n/a | `1408:0444` | `usecode_debugger_current_entry_get_unit_name` | Returns the active unit/file name pointer from the current debugger entry stack. | +| Interpreter hook | n/a | `1418:04aa..04b5` | interpreter-side break callback site | Checks whether `0x659c/0x659e` is non-null, pushes the current interpreted line, then calls `1408:0053`. This is the concrete runtime handoff that links usecode execution to the hidden debugger state. | + +This better explains the long-running negative result about the supposed scrollable cheat menu: the hidden UI we can actually recover is not a plain scrollable cheat list at all. It is a modal debugger/unit-inspector front-end that expects valid usecode file context and developer-style command routing. #### Reachability status in retail binary @@ -443,27 +536,13 @@ This better explains the long-running negative result about the "infamous scroll - The cheat-code matcher `cheat_code_check` (`0007:0d0a`) toggles `0x844/0x6045` and emits event `0x103`; it does **not** call these menu wrappers directly. - The 000c handler for `0x103` (`000c:99dd`) executes a status/refresh lane and notification path; no direct call to `usecode_debugger_gump_create` appears there. -Current best read: this debugger path is compiled and functional at object level, but likely orphaned/hidden in final gameplay flow (possibly dev-only entry removed, or only reachable through non-recovered data-driven callback wiring). That orphaned status is a better fit for the missing retail cheat menu than assuming a still-live player-facing scrollable cheat list. +Current best read: this debugger path is compiled and functional at object level, but likely orphaned/hidden in final gameplay flow (possibly dev-only entry removed, or only reachable through non-recovered data-driven callback wiring). That orphaned status is a better fit for the missing retail debugger entry than assuming a still-live player-facing scrollable cheat list. #### Breakpoint callback lane (new strongest orphan candidate) -The next live NE pass shifts the strongest likely entry point away from the cheat-toggle helper and toward a surviving **usecode breakpoint callback lane** in seg1408/seg1418. +The strongest likely original entry point is no longer the cheat-toggle helper. It is the surviving **usecode breakpoint callback lane** summarized in the combined table above. -New live renames in this lane: - -| Live NE | Name | Role | -|---------|------|------| -| `1408:0000` | `usecode_debugger_break_state_create` | Allocates and initializes the seg1408 debugger-state object: breakpoint table, current-entry stack, and run-mode flags. | -| `1408:0053` | `usecode_debugger_maybe_break_on_current_line` | Runtime breakpoint gate. Stores the current line into the debugger state, resolves the current unit/file name through `1408:0444`, checks the breakpoint table through `1408:029e`, and callbacks through the object's vtable when a break condition is met. | -| `1408:00dd` | `usecode_debugger_breakpoint_insert_sorted` | Inserts `(file,line)` breakpoint entries into the seg1408 table in sorted order. | -| `1408:029e` | `usecode_debugger_has_breakpoint` | Exact `(file,line)` membership test over the seg1408 breakpoint table. | -| `1408:03b0` | `usecode_debugger_callstack_push_entry` | Pushes one current-unit/current-line debugger entry into the seg1408 stack. | -| `1408:03f7` | `usecode_debugger_callstack_pop_entry` | Pops one debugger callstack/current-entry record. | -| `1408:0419` | `usecode_debugger_enable_single_step` | Arms the step/run-state flags that make the next interpreter lane callback eligible. | -| `1408:0432` | `usecode_debugger_clear_step_state` | Clears the step/run flags. | -| `1408:0444` | `usecode_debugger_current_entry_get_unit_name` | Returns the active unit/file name pointer from the current debugger entry stack. | - -This matters because `1418:04aa..04b5` is now comment-backed as a concrete interpreter-side handoff into `usecode_debugger_maybe_break_on_current_line`: +The key live proof is the interpreter-side handoff at `1418:04aa..04b5`: - it first checks whether `0x659c/0x659e` is non-null, - then pushes the current interpreted line, @@ -521,8 +600,8 @@ Verified retail anchor points: | `0x70d75` | `0007:0d75` | cheat matcher emits event `0x103` | retail bytes = `68 03 01 9A FF FF 00 00 83 C4 02`; NE fixup source = `0007:0d79` -> `seg092:0476` | | `0x71d68` | fixup entry for `0007:0d79` | seg039 relocation record | exact retail entry: addr_type `0x03`, rel_type `0x00`, chain_off `0x2b79`, target `seg092:0476` | | `0xc99dd` | `000c:99dd` | later controller-side handler that also executes `push 0x103 / call 000a:5276` | retail fixup source = `000c:99e0` -> `seg092:0476`; this is the first materially safer deferred hook candidate after the direct matcher path failed | -| `0xb9a8d` | `000b:9a8d` | arg setup inside `cheat_menu_open_from_current_slot` | original wrapper uses caller stack words `[BP+8]` and `[BP+6]` plus local armed flag `1` | -| `0xb9c48` | `000b:9c48` | modal wrapper prologue; the inherited caller-word patch subsite is `000b:9c4e` / live `13a0:024a` | original wrapper still feeds caller stack words `[BP+8]` and `[BP+6]` into `cheat_event_listener_create`, but starts with local defaults `-1`, `-1`, `0` | +| `0xb9a8d` | `000b:9a8d` | arg setup inside `usecode_debugger_open_for_current_unit` | wrapper-local constructor setup uses caller stack words `[BP+8]` and `[BP+6]` plus the current-unit mode flag `1` before calling `usecode_debugger_gump_create` | +| `0xb9c48` | `000b:9c48` | modal wrapper prologue; the inherited caller-word patch subsite is `000b:9c4e` / live `13a0:024a` | wrapper-local setup still feeds caller stack words `[BP+8]` and `[BP+6]` into `usecode_debugger_gump_create`, but starts with local defaults `-1`, `-1`, `0` | #### Live NE `CRUSADER.EXE` mapping in Ghidra @@ -565,7 +644,7 @@ One remaining function-hygiene caveat: What failed and why: - Direct retarget of `0007:0d79` to `000b:9a86` crashed at startup when the NE relocation table was patched incorrectly as a raw far pointer. That was a file-format problem, not a semantic proof. -- After the patcher was made NE-fixup-aware, direct retarget to `000b:9a86` no longer broke startup, but the game hung when the cheat actually fired. Disassembly shows why: `cheat_menu_open_from_current_slot` consumes caller-supplied words at `[BP+8]` and `[BP+6]`, so the cheat matcher context is the wrong stack shape. +- After the patcher was made NE-fixup-aware, direct retarget to `000b:9a86` no longer broke startup, but the game hung when the cheat actually fired. Disassembly shows why: `usecode_debugger_open_for_current_unit` consumes caller-supplied words at `[BP+8]` and `[BP+6]`, so the cheat matcher context is the wrong stack shape. - Retargeting the same early cheat-matcher call to `000b:9c0d` got farther: the mouse pointer appeared, proving the hidden menu/display path was being entered. But it still hung with looping music, which points to **timing/context**, not a bad target address. The modal path appears unsafe when entered directly from the keyboard matcher even after the constructor args are forced to zero. - The narrower direct current-slot patch was then runtime-tested on `/Writable/CRUSADER-PATCHED.EXE` with bytes verified as `1130:2b78 = 9A 86 00 A0 13` and `13a0:008d = 6A 01 6A 00 6A 00 90 90`. User test result: the normal cheat-toggle path still appeared, but no hidden menu appeared. That closes the direct current-slot route as a practical candidate, not just a theoretical one. @@ -573,13 +652,13 @@ Current best patch rationale: - `0007:0d75` remains the verified cheat-sequence success site, but the direct `1130:2b78 -> 13a0:0086` retarget is no longer the best live patch because it has now failed both analytically and at runtime. - The first materially safer deferred hook remains the controller-side `000c:99dd` lane, where the live call opcode begins at `13e8:25e0`. That path preserves the real `0x103` event context instead of substituting `0x42f`, which is the strongest evidence-backed difference from the rejected deferred experiment. -- The chosen writable patch therefore restores `1130:2b78` to `CALLF 12d8:0476`, restores `13a0:008d` to the original current-slot wrapper bytes, retargets `13e8:25e0` to `13a0:020d` (`cheat_menu_open_modal`), and zeros only the inherited caller-word pushes at `13a0:024a` while preserving the modal wrapper's leading local defaults (`PUSH -1`, `PUSH -1`, `PUSH 0`). +- The chosen writable patch therefore restores `1130:2b78` to `CALLF 12d8:0476`, restores `13a0:008d` to the original current-slot wrapper bytes, retargets `13e8:25e0` to `13a0:020d` (`usecode_debugger_open_modal`), and zeros only the inherited caller-word pushes at `13a0:024a` while preserving the modal wrapper's leading local defaults (`PUSH -1`, `PUSH -1`, `PUSH 0`). - The deferred `0x42f` branch remains negative evidence only: it proved the modal wrapper can enter the hidden UI path, but it also proved that substituting the event id or landing in the wrong deferred context trips the retail `FLEX.C` failure. Rejected follow-up patch design: - Site 1 tried changing `0007:0d75` from `push 0x103` to `push 0x42f`, keeping the original event-dispatch helper call intact. -- Site 2 retargeted the `000c:99e1` relocation so the `0x42f` handler's internal `push 0x103 / call 000a:5276` sequence called `cheat_menu_open_modal` instead. +- Site 2 retargeted the `000c:99e1` relocation so the `0x42f` handler's internal `push 0x103 / call 000a:5276` sequence called `usecode_debugger_open_modal` instead. - Site 3 patched `000b:9c48` from `6A 00 FF 76 08 FF 76 06` to `6A 00 6A 00 6A 00 90 90`. Observed result on retail test build: @@ -592,8 +671,8 @@ Current Ghidra-side patch plan for a copy: 1. Open the writable `/Writable/CRUSADER-PATCHED.EXE` program in Ghidra or PyGhidra, not the raw full-EXE database. 2. Restore the disproven direct-hook sites: `1130:2b78` back to `9A 76 04 D8 12` (`CALLF 12d8:0476`) and `13a0:008d` back to `6A 01 FF 76 08 FF 76 06`. -3. Navigate to the later controller-side `0x103` lane at `13e8:25e0` and retarget that `CALLF 12d8:0476` operand to `13a0:020d` (`cheat_menu_open_modal`), yielding bytes `9A 0D 02 A0 13`. -4. Navigate to `13a0:024a` inside `cheat_menu_open_modal`. Replace only the inherited caller-frame pushes with `PUSH 0` / `PUSH 0` (`6A 00 6A 00 90 90`) and leave the leading `PUSH -1`, `PUSH -1`, `PUSH 0` defaults intact. +3. Navigate to the later controller-side `0x103` lane at `13e8:25e0` and retarget that `CALLF 12d8:0476` operand to `13a0:020d` (`usecode_debugger_open_modal`), yielding bytes `9A 0D 02 A0 13`. +4. Navigate to `13a0:024a` inside `usecode_debugger_open_modal`. Replace only the inherited caller-frame pushes with `PUSH 0` / `PUSH 0` (`6A 00 6A 00 90 90`) and leave the leading `PUSH -1`, `PUSH -1`, `PUSH 0` defaults intact. 5. Do not reintroduce the `0x42f` substitution or the direct `13a0:0086` current-slot hook in the same test build. They are now negative evidence, not live candidates. These edits are now applied and byte-verified on `/Writable/CRUSADER-PATCHED.EXE`. The live NE `CRUSADER.EXE` analysis database remains documentation-only for this batch. @@ -601,7 +680,7 @@ These edits are now applied and byte-verified on `/Writable/CRUSADER-PATCHED.EXE Rationale for the revised wrapper patch: - Earlier direct-hook attempts proved that inheriting the two caller-frame words at `000b:9a8f/9a92` is unsafe from the cheat matcher context. -- But later decompilation of `cheat_event_listener_create` showed that the leading `push 0x1` at `000b:9a8d` is a distinct mode byte used by the constructor path, so zeroing all three pushed values was too aggressive. +- But later decompilation of `usecode_debugger_gump_create` showed that the leading `push 0x1` at `000b:9a8d` is a distinct current-unit mode byte used by the constructor path, so zeroing all three pushed values was too aggressive. - The current patch therefore preserves the leading `1` and only forces the two ambiguous 16-bit parameters to zero. Risk notes: diff --git a/docs/retail-debug-arg.md b/docs/retail-debug-arg.md new file mode 100644 index 0000000..03988f9 --- /dev/null +++ b/docs/retail-debug-arg.md @@ -0,0 +1,401 @@ +# Retail `-debug` Argument in `CRUSADER.EXE` + +This note records the current evidence-backed read of the retail `-debug` command-line switch in the live NE `CRUSADER.EXE` database. + +Short version: +- retail `CRUSADER.EXE` does recognize `-debug` +- the switch is not fully disabled in the parser +- it sets a global debug-print threshold and two debug-related globals +- one surviving `-debug` feature is now concretely identified as an AVI/video-player timing overlay +- current evidence does **not** show it constructing or wiring the hidden seg109/seg1408 usecode debugger state object at `1478:659c/659e` +- current best read is `debug-print threshold plus movie-playback timing overlay`, not `the lost hidden debugger bootstrap` + +## Verified Parser Evidence + +In the live NE image, `HandleCommandlineArgs` at `1048:09b9` contains a real branch for `"-debug"` at `1048:0a93`. + +The branch body does all of the following: +- writes `0x000a` to `1478:87e0` (`g_debugMsgLevel`) +- calls `ConsolePrintf(0x32, 1478:0ad6)` +- writes `1` to `1478:0845` (`g_someDebugFlag`) +- writes `1` to `1478:0859` (`g_someDebugFlag2`) + +So the parameter has exactly three direct state effects currently recovered: +- it changes the global print threshold +- it sets one still-unresolved debug latch at `1478:0845` +- it enables the seg1468 video timing overlay through `1478:0859` + +The printed string at `1478:0ad6` is: + +`Debugging mode ON.` + +That is strong evidence against the narrow claim that retail only still recognizes the string but has the feature body disabled. The retail parser still executes real side effects when `-debug` is present. + +Nearby startup strings in the same table also confirm this is the normal command-line switch cluster: +- `CRUSADER: No Remorse` +- `Cheats are active.` +- `You DO need help!` +- `Debugging mode ON.` +- `Enabling ENHANCED mode. (NOT!)` + +## What Still Reacts To `-debug` + +### 1. Debug message threshold is live + +`1478:87e0` is already symbolized as `g_debugMsgLevel` in the live export. + +Data-use recovery shows it is read by: +- `ConsolePrintf` +- `DebugPrintAndWaitForInput` +- two adjacent positioned debug-print helpers in the same family (`12d0:0391`, `12d0:0442`) + +Current best read: +- `-debug` sets the runtime print threshold to `10` +- the compare in the wrappers is effectively `if (call_level < g_debugMsgLevel) skip` +- so `-debug` does **not** create a new console sink by itself; it only changes which existing callsites are eligible to print +- the shared print staging buffer at `1478:45a6` is allocated independently by `12d0:0513`, not by the `-debug` parser branch + +The low-level sink path is now tighter too: +- `ProbablyPrintDebugMessage` at `1000:65cc` formats through the generic `ProbablySomethingDebuggy` / `FUN_1000_67ac` stream pipeline +- that helper passes DS:`1478:6c46` as the target stream object +- the surrounding DS data at `1478:6c32..1478:6c81` is a four-entry static stdio-style table with handle words `0`, `1`, `2`, and `3` +- the `1478:6c46` entry is therefore the handle-`1` stream, i.e. the program's `stdout` slot + +Practical implication: +- the text side of `-debug` is not a hidden second debugger UI and not a newly-created in-memory log sink +- it is ordinary formatted DOS standard-output text gated by `g_debugMsgLevel` +- the main reason it is easy to miss is that Crusader spends most of its runtime in graphics mode, while many eligible callsites are startup, shutdown, or failure diagnostics + +This matters because it narrows the real effect of the print side: +- `-debug` definitely changes print gating +- but it does not add a new visible on-screen text channel by itself +- any visible text side effect depends on already-existing print callsites and on how DOS `stdout` is surfaced in the running environment + +### 1a. What subsystems use that print gate + +Recovered `ConsolePrintf` callers show that the thresholded text/debug lane is not limited to video. Current caller families include: +- command-line handling and startup/shutdown (`HandleCommandlineArgs`, `CheckForLaurieArg`, `Init_Everything`, `Uninitialize`) +- config parsing (`LoadConfigFile`) +- cache/shape rebuild work (`CacheShapeHand_1070_15a9`) +- item/glob spawning failure paths (`ItemGlob_GlobEggHatch`) +- drawlist or display initialization (`DList_Init`) +- audio init (`Init_ASS`) +- joystick init/calibration (`Joystick_Init`, `Joystick_Calibrate`, nearby helper `1400:0c7e`) +- teleporter and several `UProcess_*` / `1428:*` runtime helpers + +The rarer blocking helper `DebugPrintAndWaitForInput` is much narrower. Current recovered callers are: +- `Dispatch_Init_320_0281` +- `Dispatch_1320_103e` +- `NewGump_Alloc` + +Those are all failure/debug-stop style paths rather than normal AVI playback logic. + +Practical interpretation: +- there **is** a non-video `-debug` lane +- but the recovered non-video lane is primarily `thresholded debug/error text`, often in startup or failure handling +- it is not currently a second confirmed visible feature on the level of the movie timing dots you observed + +### 1c. Recovered printed strings and format strings + +The print inventory is now tighter than the earlier subsystem-only caller list. + +Recovered call levels so far: +- `0x32` +- `0xff` + +Because retail `-debug` sets `g_debugMsgLevel = 10`, both recovered levels are above threshold and therefore eligible to print when their code paths execute. + +#### Command-line and startup argument strings + +Recovered directly from `HandleCommandlineArgs` / `CheckForLaurieArg`: +- `Cheats are active.` +- `You DO need help!` +- `Debugging mode ON.` +- `Enabling ENHANCED mode. (NOT!)` +- `Warping to mission %d.` +- `Warping to mission %d @ x:%d y:%d z:%d.` +- `Defaulting to skill level %d` +- `Map offset = %d` +- `Destination Egg = %d` +- `Demo mode.` + +These are the cleanest first things to look for in DOSBox logging because they belong to deterministic early startup/argument paths. + +#### Init / config / install-status strings + +Recovered from `Init_Everything` and `LoadConfigFile`: +- `Using map patch file.` +- `Loading: [` +- ` ]` +- `.` +- `Running with partial installation.` +- `Running with full installation.` +- `Redirecting mission %d tune to '%s'` + +Interpretation: +- some of these are not human-readable status sentences so much as progress-bar fragments and single-character emitters +- that means an `INT 21h` log may show very short writes rather than one tidy line of text + +#### Cache / rebuild strings + +Recovered from `CacheShapeHand_1070_15a9`: +- `Creating Swap file [` +- ` ]` +- `] ` +- `\n\r[` +- ` ]\r[` +- a single-byte progress marker at `1478:0e1e` + +Interpretation: +- this lane appears to print progress scaffolding rather than rich prose +- if DOSBox logs writes with counts but not payload text, many tiny startup writes may belong to this cache/swap-file progress path + +#### Runtime / failure diagnostics + +Recovered from narrower runtime and failure paths: +- `dl init ` from `DList_Init` +- `COULD NOT CREATE GLOB ITEM!` from `ItemGlob_GlobEggHatch` + +These are useful because they are strong “real debug text” fingerprints if they ever show up in a live log. + +#### Audio init marker + +Recovered from `Init_ASS`: +- `.` + +Current best read: +- this is another minimal progress marker, not a descriptive sentence + +#### Blocking `DebugPrintAndWaitForInput` strings + +Recovered from the three currently known `DebugPrintAndWaitForInput` callers: +- `No room for Dispatcher Record/Playback.` +- `End of script! (press any key)` +- `Out of Memory! [%u]` + +Interpretation: +- these are failure/debug-stop strings +- they are good fingerprints for recognizing the lane, but they should not be expected during healthy normal gameplay + +#### Shutdown strings + +Recovered from `Uninitialize` and nearby startup/shutdown text: +- `CRUSADER: No Remorse` +- `No pity. No mercy. No remorse.` + +Current best read: +- the first is a normal shutdown-side banner +- the second is associated with the Laurie-enabled lane and is not a generic `-debug` print on its own + +### 1b. How to read that text in practice + +Current best evidence-backed read is: +- the messages go to the executable's normal DOS `stdout` stream, not to a bespoke debugger console +- if `stdout` is left attached to `CON`, text may only be practically visible when Crusader is still in a text-ish startup/shutdown context or when a failure path forces a text-mode-style report +- replacing `stdout` with a disk file via shell redirection is now a poor default recommendation, because live user testing showed `CRUSADER.EXE -debug > DEBUG.TXT` surviving startup but crashing after the intro cutscene + +What this does and does not mean: +- plain file redirection probably changes the handle-1 stream semantics enough to destabilize later stdio/device logic in this executable or runtime +- it will not magically produce extra chatter unless existing callsites actually execute at or above the threshold +- it does not by itself surface the hidden seg109/seg1408 debugger UI, because that is a separate control path + +Remaining caution: +- this is a strong static conclusion about the sink identity +- runtime capture details still depend on the exact DOSBox / shell setup, because the game often runs after switching away from a normal text-console presentation +- safest current guidance is to keep handle `1` attached to a character-device-style sink and capture around it, rather than redirecting directly to a regular file + +### 2. `g_someDebugFlag2` is live + +`1478:0859` (`g_someDebugFlag2`) is written by the `-debug` parser branch and read later in segment `1468`. + +Recovered readers: +- `VideoPlayer_AdvanceFrameAndHandleSkip` (`1468:2869`) +- `VideoPlayer_StreamChunks` (`1468:2af4`) + +Both routines conditionally call `VideoPlayer_DrawDebugTimingOverlay` (`1468:2de9`) when `g_someDebugFlag2 != 0`. + +The current live export already places these functions in the `VideoPlayer_*` neighborhood: +- preceding function `1468:283f..2868` is typed as `VideoPlayer_Run(struct Process * p_proc)` +- `AVI_1468_2188` is an AVI-header parser that recognizes `AVI ` / `LIST` / `strl` / `strh` / `strf` +- `FUN_1468_3904` is a later `movi`-chunk setup/prime path that calls `VideoPlayer_StreamChunks(..., 1)` + +Current best read of this lane: +- this is part of a video / presentation / media-processing subsystem +- `-debug` leaves behind an extra instrumentation path in that subsystem +- the behavior does not currently look like debugger-object creation, breakpoint management, or usecode UI entry + +`VideoPlayer_DrawDebugTimingOverlay` is now specific enough to describe concretely: +- it clears a temporary `0x1f4`-byte buffer (`500` bytes) +- it computes marker positions from AVI timing fields using a divisor of `6000` +- it writes marker bytes `8` and `9` into that temporary line buffer +- it copies the resulting `500`-byte line into a video buffer near offset `0x1de * 0x280 + 0x78` +- it builds and copies a second `500`-byte line into the next scanline at `+0x280` + +Because the helper writes into two adjacent scanlines of a `0x280`-wide (`640`-pixel) buffer near the bottom of the frame, current best read is: +- this is a built-in movie-playback timing overlay or marker strip +- it is probably intended to visualize AVI/video timing state while playback is running +- it is a practical runtime feature that may be observable during intro/cutscene playback when launched with `-debug` +- it is still unrelated to the seg109/seg1408 usecode debugger object model + +Runtime confirmation now matches the static read: +- the observed moving dots at the bottom of played videos are consistent with this helper's two-line marker overlay +- that closes the strongest user-visible effect of retail `-debug` + +### 3. `g_someDebugFlag` is only weakly understood + +`1478:0845` is symbolized as `g_someDebugFlag` and is also written by the `-debug` branch. + +Current evidence is weaker here: +- the parser write is confirmed +- no equally clear downstream reader has been recovered yet + +Current safest read: +- this is a real surviving `-debug` state cell +- it may be vestigial, sparsely used, or hiding inside still-unrecovered data/indirect uses +- it should not currently be overinterpreted as a debugger bootstrap flag + +At this point the absence evidence is fairly strong: +- direct data-use recovery still finds only the parser write +- nearby bytes `1478:0844` and `1478:0846` do have real readers/writers, so this is not just a search blind spot across the whole region +- current best read is `orphaned or still-hidden latch`, not `known active second feature` + +## Comprehensive Current Effect Summary + +Based on the current live NE evidence, retail `-debug` enables or changes the following and no more has yet been proven: + +### Confirmed direct effects + +1. It prints `Debugging mode ON.` during command-line handling. +2. It sets `g_debugMsgLevel` at `1478:87e0` to `10`. +3. It sets `g_someDebugFlag` at `1478:0845` to `1`. +4. It sets `g_someDebugFlag2` at `1478:0859` to `1`. + +### Confirmed runtime-visible effect + +1. It enables the seg1468 AVI/video-player timing overlay, which draws moving marker dots or traces near the bottom of played videos. + +### Confirmed non-video effect class + +1. It changes eligibility for existing debug/error print wrappers used across startup, config, cache, joystick, audio, item/glob, dispatch, and some runtime process code. +2. A smaller subset of those callsites are blocking `print-and-wait` diagnostics used on failure/debug-stop paths in dispatch/gump allocation code. +3. The recovered text sink for those wrappers is the program's handle-`1` stdio stream at `1478:6c46`, so the lane is standard-output text rather than a separate debugger-only channel. +4. The recovered printable inventory is currently dominated by startup/status/progress strings plus a smaller number of failure-only diagnostics; it is not a rich always-on gameplay console. + +### Things not currently proven as practical effects + +1. A new visible text console or new text window. +2. Any hidden usecode debugger bootstrap. +3. Any connection to the seg109/seg1408 debugger-state pointer at `1478:659c/659e`. +4. Any second confirmed user-visible feature beyond the AVI timing dots. +5. Any active downstream behavior for `1478:0845`. + +## What `-debug` Does **Not** Currently Prove + +The hidden retail debugger / unit-inspector work already mapped elsewhere in this repo still centers on: +- seg109 UI wrappers such as `usecode_debugger_open_for_current_unit` and `usecode_debugger_open_modal` +- seg1408 debugger-state helpers such as `usecode_debugger_break_state_create` and `usecode_debugger_maybe_break_on_current_line` +- the global debugger-state far pointer at `1478:659c/659e` + +That `1478:659c/659e` pointer is still read by the known interpreter-side debugger path, including the break callback lane around `1418:04aa..04b5` and the seg109 debugger-opening wrappers. + +What has **not** been shown in the current `-debug` pass: +- no recovered write from the `-debug` branch to `1478:659c/659e` +- no evidence that `-debug` calls `usecode_debugger_break_state_create` +- no evidence that `-debug` enters `usecode_debugger_open_for_current_unit` +- no evidence that `-debug` is the same switch as `-laurie` + +So the current answer is: +- `-debug` is real +- `-debug` still does something +- but it is currently **not** the same evidence trail as the hidden usecode debugger bootstrap + +## Relationship To `-laurie` + +The two switches should stay separated. + +Current repo evidence still supports: +- `-laurie` / `CheckForLaurieArg(...)` writes the cheat/debugger gate at `1478:0844` (`g_wasLaurieSet` / prior `cheats_enabled` lane) +- `-debug` is handled inside the normal command-line option loop in `HandleCommandlineArgs` +- `-debug` writes `1478:0845`, `1478:0859`, and `1478:87e0`, not `1478:0844` + +That means the old hidden debugger/UI work and the `-debug` switch are adjacent only at a broad `debug features existed` level. They are not currently the same recovered control path. + +## Best Current Conclusion + +The wiki claim is only partly right. + +Accurate part: +- there really is a retail `-debug` command-line argument + +Inaccurate or currently unsupported parts: +- it is not merely a dead recognized string; the parser branch is still live +- the current evidence does not support `secondary monitor debug kernel` specifically +- the current evidence does not support `-debug` as the missing bootstrap for the hidden seg109/seg1408 usecode debugger + +Best current evidence-backed replacement claim: + +> Retail `CRUSADER.EXE` still recognizes and executes a live `-debug` branch. That branch prints `Debugging mode ON.`, raises the debug message level, and enables a concrete seg1468 AVI/video-player timing overlay that draws two 500-byte marker traces into adjacent scanlines near the bottom of the playback buffer. However, current evidence does not show it creating the seg1408 debugger-state object at `1478:659c/659e`, so it should not currently be treated as the missing bootstrap for the hidden usecode debugger UI. + +## Claim Check: `E69FB` And The "Secondary Monochrome Monitor" Idea + +An external claim said the potential debug instructions were at flat file offset `E69FB` and might only be visible on a secondary monochrome monitor. + +Current evidence does not support that. + +### `E69FB` mapping + +Using the local NE segment map: +- NE segment `144` begins at file offset `0xE3C00` +- flat offset `0xE69FB` therefore lands at segment-relative offset `0x2dfb` +- in the live NE image that maps to `1478:2dfb` + +The bytes around that location are not executable instructions for a hidden monitor-debug path. They fall inside a data/string cluster: +- `KeyboardProcess` +- `KEYIO.C` +- `PRIORITY.C` +- `SystemTimer` +- `SYSTIMER.C` +- `AccWait` + +`1478:2dfb` itself lands inside the `SYSTIMER.C` string, not inside a code body. + +Current safest read: +- the cited flat offset is almost certainly a mistaken pointer into a data/descriptor/source-file-name region +- it is not a useful anchor for `-debug` behavior and not evidence for hidden display-specific code by itself + +### Secondary monochrome monitor check + +The current `-debug` evidence points elsewhere: +- text/debug output goes through the normal `stdout` sink at `1478:6c46` +- the user-visible runtime feature is the seg1468 AVI timing overlay drawn into the main video buffer + +Additional negative evidence from the live program: +- no recovered text strings mentioning `mono`, `monochrome`, `hercules`, or `MDA` +- no recovered instruction hits referencing obvious monochrome-adapter I/O ports such as `0x3b4`, `0x3b5`, `0x3b8`, or `0x3ba` +- no recovered instruction hits referencing the `B000` monochrome text-memory window + +That does **not** mathematically prove that no historical or stripped monitor-debug code ever existed during development, but it does mean: +- the current retail `-debug` evidence does not support the "secondary monochrome monitor" explanation +- the current retail implementation is better explained as `stdout`-gated text plus the AVI timing overlay + +## Ghidra Refinements Applied + +The live `CRUSADER.EXE` database now carries this batch's first-pass refinements too: +- `1468:2869` -> `VideoPlayer_AdvanceFrameAndHandleSkip` +- `1468:2af4` -> `VideoPlayer_StreamChunks` +- `1468:2de9` -> `VideoPlayer_DrawDebugTimingOverlay` +- parser and global comments at `1048:0a93`, `1478:0845`, `1478:0859`, and `1478:87e0` +- overlay-gate comments at `1468:2920` and `1468:2dc8` +- debug-print helper comments at `12d0:0391`, `12d0:03ee`, and `12d0:0442` +- sink/init comments at `1000:65cc` and `12d0:0513` +- stdio-table comments at `1478:6c32` and `1478:6c46` + +## Follow-Up Targets + +If this lane is revisited, the highest-value remaining questions are: +- identify a concrete behavioral name for `1478:0845` by finding a real downstream consumer +- classify the remaining nearby seg1468 helpers so the AVI/video-player object layout around `+0x117/+0x11b/+0x11f/+0x123` can be named cleanly +- test whether the overlay is visibly present during intro/cutscene playback in DOSBox or another live runtime +- find meaningful callsites into the seg12d0 positioned debug-print helpers to learn whether `-debug` exposes additional text diagnostics beyond movie timing markers +- determine the default runtime value path for `g_debugMsgLevel` more rigorously, since static initialized data alone does not yet explain the full practical print behavior +- sample a few representative `ConsolePrintf` / `DebugPrintAndWaitForInput` format strings under live capture so the stdout lane can be characterized with runtime output rather than only static caller families \ No newline at end of file diff --git a/docs/usecode-alarmhat-analysis.md b/docs/usecode-alarmhat-analysis.md new file mode 100644 index 0000000..fb7d4b7 --- /dev/null +++ b/docs/usecode-alarmhat-analysis.md @@ -0,0 +1,180 @@ +# ALARMHAT Analysis + +## Purpose + +This note records the current evidence-backed read of exported `ALARMHAT` pseudocode and what the class most likely means in gameplay. + +The goal is not to force a final rename. The goal is to state what the script definitely does, what it probably does, and where the remaining uncertainty sits. + +## Sources used + +- exported pseudocode: `USECODE/EUSECODE_extracted/pseudocode/ALARMHAT/slot_0A_equip.txt` +- class/event index rows for `ALARMHAT` +- raw linear disassembly in `K:/ghidra/crusader-disasm/crusader_disasm.txt` +- nearby alarm-family comparators: + - `ALARMBOX` + - `ALRMTRIG` + - `ALARM_NS` + - `ALARM_EW` + +## Short version + +`ALARMHAT` is not a general many-event alarm controller. In the extracted corpus it has one live body: slot `0x0A` (`equip`). + +That body behaves like an alarm-family state controller attached to an item. It does two different things depending on the current frame of the item: + +1. in frame `0`, it searches nearby shape `0x04D0` objects and equips qualifying ones with mode `0x17` +2. in non-zero frames, it first requires the item to be on-screen, then performs a nearby actor/family scan, and if that passes it searches nearby shape `0x04D0` objects and equips qualifying ones with mode `0x15` + +The likely gameplay read is: `ALARMHAT` is a local alarm-state driver that flips nearby helper objects or actors into one of two equipment/activation states, with the second state gated by player-visible activity near the item. + +## Structural facts + +From `class_event_index.tsv`: + +- class: `ALARMHAT` +- class id: `0x0561` +- only decoded non-zero slot: `0x0A equip` +- body window: `0x00D4..0x025F` +- body length: `395` bytes + +From the debug trailer/local names in the exported body: + +- locals currently render as `referent`, `var`, `item`, and `npc` + +Those local names are useful hints, but the behavior matters more than the variable spelling. + +## Direct script behavior + +The body begins with the standard alarm-family setup: + +```text +set_info(0x0211, *(arg_06)); +process_exclude(); +``` + +That matches `ALARMBOX::equip`, which also begins with `set_info(0x0211, *(arg_06)); process_exclude();`. + +After that, the script splits on `Item.getFrame(arg_06)`. + +### Branch 1: frame == 0 + +The raw disassembly shows a loop-selector sequence equivalent to: + +- search nearby items +- constrain by `item->shape == 0x04D0` +- use the current item as the search origin + +For each matching object: + +- call `Item.getFrame(item)` +- only continue on frame `0` +- call `Item::I_equip(pid, 0x17, item)` +- `suspend` + +So the first branch is not sounding an alarm by itself. It is driving nearby shape `0x04D0` objects into a specific equip/activation mode. + +### Branch 2: frame != 0 + +This branch only runs if `Item::I_isOnScreen(arg_06)` passes. + +It then performs another nearby search, this time using `item->family` with family value `6`. Inside that scan it uses: + +- `Actor::I_isNPC(...)` +- `Item::I_getZ(...)` +- a vertical-band test of `origin_z - 10 < candidate_z < origin_z + 10` + +The exact truth sense of the `Actor::I_isNPC` step is still slightly uncertain because we are reading it through the current pseudo-IR condition simplifier, but the script is clearly trying to qualify nearby actor-like entities in the same local vertical band before proceeding. + +If that actor/family gate succeeds, the script runs a second nearby shape search for `item->shape == 0x04D0`, again requiring frame `0` on the found object, then calls: + +```text +Item::I_equip(pid, 0x15, item) +``` + +followed by `suspend`. + +So the non-zero-frame branch is the more selective mode: it only arms the nearby `0x04D0` helper objects once a local visibility/actor-proximity condition is satisfied. + +## What shape `0x04D0` likely is + +The old disassembly corpus labels usecode class `0x04D0` as `MONSTER`. + +That does not prove every shape-id use of `0x04D0` is literally a monster actor object, but it is a strong clue that `ALARMHAT` is not interacting with an arbitrary visual prop. It is probably targeting a helper/actor class in the monster or hostile-response lane. + +This is the strongest reason not to read `ALARMHAT` as just a decorative siren hat sprite. The script is actively scanning for nearby `0x04D0` objects and equipping them. + +## Comparison to the rest of the alarm family + +`ALARMHAT` fits the broader alarm family, but it is not identical to the other alarm classes. + +### `ALARM_NS` and `ALARM_EW` + +These are tiny `enterFastArea` stubs. They mainly stamp info, exclude themselves from processing, and gate on a simple intrinsic. + +Those look like directional/environment trigger markers. + +### `ALRMTRIG` + +This class is a compact trigger/spawner. Its `equip` body branches on map/state and spawns `class_0A18_slot_20(...)` with different mode values. + +That looks more like an alarm-event relay. + +### `ALARMBOX` + +This is the closest comparator. + +`ALARMBOX::equip`: + +- uses the same `set_info(0x0211)` + `process_exclude()` prologue +- branches by local state and frame +- spawns different helper slots for low/high alarm states +- can also spawn `class_0A18_slot_20(...)` + +So `ALARMBOX` reads like a more explicit alarm control box, while `ALARMHAT` reads like a local accessory/controller that pushes nearby helper objects into one of two equip states. + +## Gameplay interpretation + +The safest gameplay-facing read is: + +`ALARMHAT` is an alarm-state accessory or controller item that toggles nearby hostile/helper objects between two alarm-response modes. + +The second mode only activates when the item is visible on screen and when a nearby actor-like entity qualifies within a narrow Z band, which strongly suggests local encounter awareness rather than a map-global trigger. + +In practical gameplay terms, the object likely does something like one of these: + +- wake up or arm nearby hostile responders +- switch nearby helper entities between idle and alert states +- mark a local alarm point as actively triggered once the player or another actor is nearby + +The name `ALARMHAT` therefore probably reflects object art or designer shorthand rather than a full behavior description. The script behavior is closer to `alarm accessory that equips nearby monster/helper actors into a response mode` than to `play a siren sound` or `flash a light`. + +## Confidence and uncertainty + +High confidence: + +- `ALARMHAT` has one live exported body, slot `0x0A equip` +- it uses the same `0x0211` alarm-family setup as `ALARMBOX` +- it branches on its own frame +- it performs nearby searches on shape `0x04D0` +- it calls `Item::I_equip(...)` on qualifying found objects with two different mode values: `0x17` and `0x15` +- the second mode is gated by on-screen and nearby actor/family checks + +Moderate confidence: + +- shape `0x04D0` is a monster/helper/hostile-response class rather than an inert prop +- the non-zero-frame branch is the alert or escalation state + +Lower confidence / still open: + +- the exact semantic meaning of equip modes `0x17` versus `0x15` +- the precise truth sense of the `Actor::I_isNPC`-named intrinsic inside the family-`6` scan +- whether `ALARMHAT` is physically a wearable-looking prop, a mounted alarm device, or a small controller object whose art happened to be named `HAT` + +## Current best rename-level takeaway + +Do not rename it yet. + +But the current best mental model is: + +`ALARMHAT = local alarm-state driver that equips nearby MONSTER/helper objects into one of two response modes depending on frame/state and nearby actor visibility.` \ No newline at end of file diff --git a/docs/usecode-equipment-system.md b/docs/usecode-equipment-system.md new file mode 100644 index 0000000..fe3189d --- /dev/null +++ b/docs/usecode-equipment-system.md @@ -0,0 +1,248 @@ +# Crusader USECODE Equipment System + +## Purpose + +This note records the current evidence-backed read of Crusader's surviving `equip` / `unequip` system. + +The short answer is: yes, a real inherited equipment-style event system survived into Crusader, but by this point it has been generalized far beyond RPG inventory handling. In Crusader, `equip` and `unequip` are standard item usecode events that many classes reuse for actor setup, turret arming, trap activation, alarm-state changes, and environmental control. + +## Short version + +The funny interpretation is half true and half misleading. + +What is true: + +- Crusader still has first-class `equip` and `unequip` item events. +- The live binary has dedicated intrinsics for them. +- The extracted USECODE corpus has a large number of slot `0x0A equip` and slot `0x0B unequip` bodies. +- Actor-like classes such as `NPC` and `MONSTER` really do implement `equip` bodies. + +What is misleading: + +- this is not yet proof of a fully intact Ultima-style paper-doll equipment subsystem +- many `equip` bodies are plainly being used as generalized state-change hooks rather than literal "put item on actor" logic +- alarms, sentries, guns, floors, conveyors, cameras, and hazard objects all reuse the same event vocabulary + +Current best read: + +Crusader inherited the Ultima 8 event names and event slots, then repurposed them into a broad object-activation vocabulary. The old RPG-flavored name `equip` survived, but its semantics widened into `apply mode / arm / initialize / attach behavior / activate state`. + +## Compiled-side proof + +The live `CRUSADER.EXE` session already has named intrinsic handlers for these events: + +- `10a0:2a35` = `Item_Equip` +- `10a0:2a68` = `Item_Unequip` +- nearby sibling `10a0:2b30` = `Item_EnterFastArea` + +The decompiler output for `Item_Equip` is the key proof: + +```c +word __cdecl16far Item_Equip(int *pitemno,uint dest) +{ + res = Usecode_ItemCallEvent(pitemno,0x400,UC_Equip,...); + if (res != 0) { + return in_stack_0000fffc; + } + return 0; +} +``` + +`Item_Unequip` is parallel: + +```c +word __cdecl16far Item_Unequip(int *pitemno,int val) +{ + res = Usecode_ItemCallEvent(pitemno,0x800,UC_Unequip,...); + if (res != 0) { + return in_stack_0000fffc; + } + return 0; +} +``` + +That proves several things immediately: + +1. `equip` and `unequip` are real compiled-side usecode events, not parser inventions. +2. They are gated by dedicated owner-row capability masks: `0x400` for equip and `0x800` for unequip. +3. The intrinsic does not directly manipulate an inventory table itself. It forwards into a generic item-event dispatcher. + +The central dispatcher decompiles as `Usecode_ItemCallEvent`. Its current Ghidra decompile explicitly comments it as a generic owner-row mask gate: + +- compute item usecode class id +- consult the owner-row table behind the runtime at `0x6611` +- test the supplied capability mask +- if the row supports the event, create a usecode process for the requested event + +That is the architectural core of the surviving system: `equip` and `unequip` are class capabilities, not hardwired game-engine special cases. + +## Cross-check against the engine source lineage + +ScummVM's Ultima8/Crusader code preserves the same event interpretation. + +In `engines/ultima/ultima8/world/item.cpp`: + +- `callUsecodeEvent_equipWithParam(param)` is explicitly documented as event `A` +- `callUsecodeEvent_unequipWithParam(param)` is explicitly documented as event `B` + +That source also shows the event neighborhood: + +- event `9` = release +- event `A` = equip +- event `B` = unequip +- event `C` = combine +- event `E` = called from anim +- event `F` = enter fast area +- event `10` = leave fast area +- event `11` = cast + +This strongly supports the idea that Crusader inherited an Ultima-style item event vocabulary wholesale and kept using it even after the gameplay moved away from a classic RPG. + +## How widespread it is in the extracted corpus + +The current exported pseudocode corpus contains: + +- `77` slot `0x0A equip` entries +- `50` slot `0x0B unequip` entries + +That is far too widespread to be accidental or restricted to a tiny one-off subsystem. + +The distribution is also telling: + +- actor/NPC classes: `NPC`, `MONSTER` +- turret/weapon classes: `BASEGUN`, `SENTRY`, `GATGUN*`, `WALGUN*`, `GOVGUN*` +- alarm/hazard/environment classes: `ALARMBOX`, `ALARMHAT`, `FFFLOOR`, `FLAMEBOX`, `STEAMBOX` +- cameras and movers: `CAM_*`, `EYECAM*`, `CONVEY_*`, `ROLL_*`, `HOVER*` + +So the names survived as a general event interface across many object families. + +## What `equip` means in practice + +### 1. General activation or state application + +Many non-actor classes use `equip` exactly the way a modern engine might use `activate`, `arm`, `enable`, or `set mode`. + +Representative example: `BASEGUN::equip` + +```text +set_info(0x0211, *(arg_06)); +process_exclude(); +spawn class_0A1A_slot_24(pid, arg_0A, ..., arg_06); +suspend; +``` + +Parallel example: `SENTRY::equip` + +Its exported pseudocode is the same structural pattern as `BASEGUN::equip`, and `SENTRY::unequip` mirrors the same shutdown logic as `BASEGUN::unequip`. + +That is not wearable-item behavior. It is a clean arm/disarm lifecycle. + +### 2. Alarm-state or environmental mode switching + +`ALARMBOX::equip` and `ALARMHAT::equip` are good examples of the generalized meaning. + +They both begin with: + +```text +set_info(0x0211, *(arg_06)); +process_exclude(); +``` + +Then they branch by frame/state and spawn or equip helper objects in specific response modes. + +`ALARMHAT` is especially illustrative because it calls `Item::I_equip(pid, 0x17, item)` and `Item::I_equip(pid, 0x15, item)` on nearby `shape 0x04D0` helper objects. That is exactly where the older RPG-flavored naming sounds absurdly literal, but the behavior is really `push nearby helper into alarm response mode`. + +### 3. NPC and monster setup + +Actor-facing classes really do implement `equip`, but the current evidence still points to scripted setup and state application rather than visible inventory slot management. + +Representative example: `NPC::equip` + +The exported body does not look like a paper-doll or inventory routine. It looks like a setup dispatcher keyed by `arg_0A`: + +- `arg_0A == 10`: reset, teleport to egg, gather several values, create or legalize the NPC/item context, then spawn `class_0A11_slot_29(...)` +- `arg_0A == 30`: read several values with `Intrinsic00DF(...)` +- `arg_0A == 31`: suspend +- `arg_0A == 1/2/3`: explicit but empty branches + +That reads much more like `apply initialization mode` or `run NPC setup variant` than `equip helmet`. + +Representative example: `MONSTER::equip` + +`MONSTER::equip` checks frame/state, stamps `0x0211`, then spawns `class_0A1E_slot_2D(pid, var, monster1, arg_06)` for a range of mode values. Again, that looks like a dispatcher for monster behavior setup or activation, not a visible inventory pane. + +## What `unequip` means in practice + +`unequip` is the paired shutdown or detachment event. + +Representative example: `BASEGUN::unequip` + +```text +set_info(0x0212, *(arg_06)); +process_exclude(); +if (Item.getStatus(arg_06) & 4) { + spawn class_0A1A_slot_27(arg_06); +} +``` + +`SENTRY::unequip` is the same pattern. + +That strongly suggests `unequip` has become the general reverse transition for classes that use `equip` as `arm` or `enable`. + +Environmental example: `FFFLOOR::unequip` + +This body does not resemble inventory logic at all. It scans nearby family-`6` objects, filters by overlap, and then spawns an actor-facing helper `class_0A11_slot_2D(retval, *(arg_06), item)` before suspending. + +So by the time we reach Crusader, `unequip` has clearly broadened into `deactivate / detach / reverse state / cleanup side effects`. + +## What survived from the RPG ancestor + +The surviving part is not just the word choice. The system architecture survived too: + +- item classes advertise event capabilities through owner-row mask bits +- the engine exposes generic intrinsics that dispatch into class-specific usecode handlers +- the event numbers remain organized in an Ultima-style item-event vocabulary +- actor and item classes both participate in the same event model + +That is exactly the kind of subsystem that makes sense as an inherited RPG engine layer which later got repurposed for an action game. + +## What we do not have yet + +We do **not** yet have proof of a fully intact classic RPG equipment layout such as: + +- fixed visible paper-doll slots +- a clean actor inventory table indexed by helmet/armor/weapon slots +- universal actor gear attachment semantics across all NPCs + +The current evidence is stronger for: + +- an inherited event vocabulary with `equip` / `unequip` +- class-specific scripted setup and mode application +- actor and environmental reuse of the same event names + +So the safe statement is: + +Crusader definitely has a hidden equipment **event system**. + +Crusader may also retain deeper actor-equipment semantics under that layer, but that is not yet proven from the current pass. + +## Current best model + +The most defensible current model is: + +1. Ultima-style item events `A = equip` and `B = unequip` survived into Crusader. +2. The compiled engine still dispatches them through generic item-event intrinsics. +3. Owner-row capability bits decide which classes support those events. +4. USECODE then interprets `equip` and `unequip` per class. +5. In Crusader, many classes reinterpret those events as `activate/deactivate`, `arm/disarm`, `initialize/teardown`, or `switch mode`, while actor-facing classes also use them for setup-like behavior. + +## Good follow-up targets + +The best next places to deepen this are: + +1. compare more actor-facing equip bodies (`NPC`, `MONSTER`, `ANDROID`, `AVATAR`) against each other +2. find compiled-side consumers of the value passed as the `equip` parameter to see whether it maps to actor slots, modes, or stance/state enums +3. recover more names around the helper slots repeatedly spawned from equip bodies, especially the `0A11`, `0A1A`, and `0A1E` families +4. check whether any actor-only classes expose both equip and unequip in ways that look like real gear attach/detach rather than generic initialization +5. decode more loop-selector idioms so actor/environment equip bodies become less VM-shaped +6. cross-check ScummVM Crusader actor/inventory code for surviving slot semantics that may still map to the retail binary \ No newline at end of file diff --git a/docs/usecode-jelyhack-analysis.md b/docs/usecode-jelyhack-analysis.md new file mode 100644 index 0000000..4e90739 --- /dev/null +++ b/docs/usecode-jelyhack-analysis.md @@ -0,0 +1,140 @@ +# JELYHACK USECODE Analysis + +## Scope + +This note focuses on the currently exported pseudocode and byte-level decode for `JELYHACK` class `277` / class id `0x04D3`, especially its only non-zero event body: slot `0x01` (`use`). + +Current generated pseudocode lives at: + +- `USECODE/EUSECODE_extracted/pseudocode/JELYHACK/slot_01_use.txt` +- `USECODE/EUSECODE_extracted/pseudocode/JELYH2/slot_01_use.txt` + +## Direct decompilation result + +Current readable decompilation for `JELYHACK::use`: + +```text +function jelyhack_use() /* entry=277 class_id=0x04D3 slot=0x01 */ +{ + entry: + set_info(0x0207, *(arg_06)); + process_exclude(); + return; + +} +``` + +Byte-faithful decode of the same body: + +```text +00D4: 5A init local_bytes=0x0 +00D6: 5C symbol_info symbol=JELYHACK +00E2: 0B push_word_immediate value_u16=0x0207 +00E5: 40 push_local_dword [BP+06h] +00E7: 4C push_indirect size=0x2 +00E9: 77 set_info +00EA: 78 process_exclude +00EB: 5B line_number line_number=0x00DB +00EE: 50 ret +``` + +The parser still sees bytes after `ret`, but on the current readable pass they are intentionally elided because control has already returned. Those post-`ret` bytes are identical between `JELYHACK` and `JELYH2`, so they do not currently support any class-specific behavioral claim. + +## What is directly supported + +1. `JELYHACK` is not an active event hub in the same sense as `EVENT`, `NPCTRIG`, or `_BOOT` classes. +2. Its only non-zero slot is `0x01` (`use`), with `raw_event_entry_word = 0x002A`, `raw_code_offset = 0x00000001`, and body range `0x00D4..0x00FE` (`42` bytes). +3. The actual readable body before return is tiny: one `set_info(0x0207, *(arg_06))`, one `process_exclude()`, then return. +4. `JELYH2` is the same script body for practical purposes. The only pre-return differences are the symbol label string and line-number metadata; control flow and active ops are otherwise the same. +5. `JELYHACK` still exposes only the `referent` field on the descriptor side, which keeps it in the `referent-anchor` category rather than the event-bearing category. + +## Comparison against the exported pseudocode corpus + +The `JELYHACK::use` body is not unique. Normalizing away only the function header, the exact same readable body currently appears in these seven exports: + +- `AVATAR/slot_01_use.txt` +- `GRAVITON/slot_01_use.txt` +- `IONIC/slot_01_use.txt` +- `JELYHACK/slot_01_use.txt` +- `JELYH2/slot_01_use.txt` +- `PLASMA/slot_01_use.txt` +- `WEA_BOOT/slot_01_use.txt` + +That matters because it argues against a special-purpose `JELYHACK` event implementation. The more defensible reading is that this is one small generic `use` stub reused across several classes. + +There is also a second useful comparison: other classes often start with the same `set_info(...); process_exclude();` prologue and then continue into much richer logic. `DATALINK::use` is a good example: it begins with the same opening but then expands into a larger branch-heavy routine. So the `set_info/process_exclude` pair is best treated as a common preamble, not the whole semantic payload of a class family. + +## What `JELYHACK::use` most likely does + +Current safest reading: + +- It performs a small generic `use`-entry setup using info id `0x0207` and the dereferenced word at `arg_06`. +- It then marks the current process or handler for exclusion/suppression through `process_exclude()`. +- It does not itself implement the richer trigger logic one would expect from an active gameplay event script. + +The unresolved part is the exact gameplay meaning of `set_info(0x0207, *(arg_06))`. The exported corpus shows this exact pattern in multiple unrelated classes, so `0x0207` currently looks more like a shared UI/message/interaction setup code than a JELYHACK-specific action. + +## What it probably does not do + +The current evidence argues against several stronger claims: + +- It is probably not the main script that drives the JELYHACK gameplay behavior by itself. +- It is probably not the actual event-bearing payload that reaches the richer runtime opcode lanes recovered around `000d:208b`, `000d:21ed`, and `000d:22bc`. +- It is probably not a unique script template specialized only for the JELYHACK object. + +## Relationship to JELYH2 and the surrounding island + +`JELYHACK` and `JELYH2` remain the clearest referent-anchor twins in the extracted USECODE data: + +- same lone live slot `0x01` +- same event-table row shape (`0x002A / 0x00000001`) +- same `42`-byte body length +- same readable `use` body before return +- same descriptor-side role: `referent-anchor` + +This fits the broader neighborhood evidence already captured elsewhere: + +- `JELYHACK` / `JELYH2` sit beside event-bearing neighbors such as `REE_BOOT`, `SURCAMEW`, and `SFXTRIG` +- those neighbors expose `event` or `eventTrigger` fields and carry materially richer behavior bodies +- the current best model is therefore still `referent anchor + neighboring event-bearing attachment`, not `JELYHACK as a standalone active event core` + +## Comparison with nearby event-bearing neighbors + +The generated pseudocode reinforces that split. + +`REE_BOOT` slot `0x0A` and `SFXTRIG` slot `0x0A` diverge immediately from the JELYHACK body: + +- they use `set_info(0x0211, *(arg_06))` instead of `0x0207` +- they perform status checks, helper calls, spawns, waits/suspends, and other active logic +- they therefore look like genuine event-bearing routines rather than passive anchor stubs + +`DATALINK` slot `0x01` is also instructive in the other direction: + +- it starts with the same `set_info/process_exclude` preamble +- but it then continues into a much larger routine +- so the shared opening is not enough to classify a body as anchor-only or event-bearing by itself + +## Current best conclusion + +The decompiled `JELYHACK::use` body is important mainly because it supports a negative result cleanly: + +- `JELYHACK` is not hiding a large active event script in its only live slot +- its visible `use` handler is a minimal generic stub shared with several other classes +- the interesting gameplay semantics around the JELYHACK island are still more likely to live in neighboring event-bearing descriptors attached to the same referent context + +So the current best human-readable model remains: + +```text +anchor JELYHACK(referent) +anchor JELYH2(referent) + +use: + set_info(shared_use_code_0x0207, deref(arg_06)) + process_exclude() + return + +actual island behavior: + likely carried by neighboring event-bearing attachments such as REE_BOOT / SURCAMEW / SFXTRIG +``` + +That is a stronger and cleaner claim than the older vague label `referent anchor`: the exported pseudocode now shows that the anchor really does have code, but the code is a tiny shared interaction stub, not the island's main behavior engine. \ No newline at end of file diff --git a/docs/usecode-pentagram-ghidra-path.md b/docs/usecode-pentagram-ghidra-path.md index ed4c0c1..0d0a53c 100644 --- a/docs/usecode-pentagram-ghidra-path.md +++ b/docs/usecode-pentagram-ghidra-path.md @@ -134,15 +134,17 @@ Use comments on the compiled runtime functions that already consume or materiali Best current anchors: -- `000d:51fd` = slot value load path -- `000d:5572` = slot value plus additive word - `000d:46ec` = context create from slot index +- `000d:0988` = referent-chain mutation family (`0x18..0x1b`) +- `000d:208b` = materialize-or-forward value lane +- `000d:21ed` = inline payload prepend stage - `000d:22bc` = decoded matrix/pushback consumer +- `000d:2104` = mixed immediate/object finalize-to-outptr stage - `000d:ebe3` = opcode sequence runner Comment payload should stay short and evidence-heavy, for example: -`POC USECODE body anchor: NPCTRIG slot 0x0A -> body 0x00DA..0x024F, raw word 0x013E, payload shape unresolved, parsed via tools/poc_crusader_usecode_parser.py` +`POC USECODE body anchor: NPCTRIG slot 0x0A -> body 0x00DA..0x024F, raw word 0x013E, 5 local/debug rows after ret, parsed via tools/poc_crusader_usecode_parser.py` ### 3. Optional comment bundles per runtime family diff --git a/docs/usecode-roundtrip-ir.md b/docs/usecode-roundtrip-ir.md index ed88833..c3a6746 100644 --- a/docs/usecode-roundtrip-ir.md +++ b/docs/usecode-roundtrip-ir.md @@ -113,6 +113,28 @@ The safe reading is: The first script IR should preserve exact recompilation inputs before it tries to look pretty. +## Current Parser Views + +The current proof-of-concept parser now emits three complementary views for a single class/slot body: + +- JSON IR: the authoritative machine-facing output for tooling and any future assembler. +- Flat text listing: a byte-faithful decode with offsets, raw bytes, and trailer sections. +- Script view: a more readable block-labeled decompilation with locals, labels, and stack-VM statements. +- Pseudocode view: a higher-level decompilation that tries to collapse common compare ladders and stack expressions into programming-language-like control flow. + +The script and pseudocode views are intentionally descriptive rather than authoritative. They are meant to help read bodies like `NPCTRIG 0x0A` or `EVENT 0x0A` without losing the exact JSON IR that a round-trip compiler will need. + +## Deferred Readability Follow-Ups + +Keep these parser-facing readability tasks for later while the current focus stays on broad pseudocode export and class-family understanding: + +1. Replace unresolved `class_XXXX_slot_YY` call labels with behavior-backed names where the compiled/runtime evidence is strong enough. +2. Replace placeholder argument names such as `arg_06` with semantic names inferred from stable usage patterns. +3. Detect more control-flow shapes beyond compare ladders, especially simple loops and early-return guards. +4. Collapse common spawn/setup idioms into more domain-specific statements when the stack pattern is consistent. +5. Run the pseudocode renderer across larger families like `EVENT`, `_BOOT`, and `SURCAM*` and tighten the heuristics where they still leak VM structure. +6. Add small behavior-level comments only where they help explain gameplay meaning rather than VM mechanics. + ### Unit of decompilation The IR should be organized as: @@ -219,6 +241,7 @@ The compiler side will need more than pretty script text. At minimum it must pre - Width/sign information for immediates - Inline versus indirect payload form - String payload encoding and terminators +- Post-`ret` debug/local symbol trailers, including the local count byte and each per-local metadata row - Any unknown opcode byte sequences verbatim If any of those are dropped, a source-level editor can still be readable, but it will stop being a trustworthy recompilation format. @@ -396,9 +419,20 @@ event: derived_body_length: 373 repeated_template_status: "" body: - end_reason: end_opcode + end_reason: debug_symbols_then_end raw_body_sha1: unknown_trailing_bytes: "" + debug_symbol_offset: 0x0143 + debug_symbol_count: 5 +debug_symbols: + - index: 0x00 + type_id: 0x69 + bp_repr: [BP+00h] + name: referent + - index: 0x01 + type_id: 0x69 + bp_repr: [BP+0Ah] + name: event ops: - offset: 0x0000 absolute_body_offset: 0x00da @@ -417,9 +451,12 @@ ops: annotation_hints: runtime_family: slot-backed-owner-loaded-body compiled_anchors: - - 000d:51fd - - 000d:5572 - 000d:46ec + - 000d:0988 + - 000d:208b + - 000d:21ed + - 000d:22bc + - 000d:2104 - 000d:ebe3 ``` @@ -431,7 +468,7 @@ annotation_hints: `event` keeps the exact six-byte row meaningfully split into authoritative fields plus the derived body window. -`body` records how far the parser got and whether any bytes remain undecoded or trailing. +`body` records how far the parser got, whether the body terminated at a real `0x7a` end marker, and whether a post-`ret` local/debug trailer was parsed instead of being misclassified as stray opcodes. `ops` is intentionally lossless. Each decoded op keeps: @@ -442,6 +479,8 @@ annotation_hints: - exact raw bytes for the whole op - parsed operands as typed fields +`debug_symbols` preserves the owner-loaded post-`ret` local metadata block. Current evidence from `crusader-disasm` and the live extracted chunks shows that many bodies end as: executable ops -> `ret` -> local/debug symbol rows -> `0x7a` end. Those rows are not executable bytecode and should survive round-trip as structured metadata rather than raw tail bytes. + `annotation_hints` is the bridge to Ghidra. It is not a source-language feature. It exists so a later importer can attach the right comments and bookmarks to the compiled VM/runtime addresses without trying to infer them from free text. ### Opcode result policy @@ -451,7 +490,7 @@ The parser should use four result classes only: - `decoded_op`: normal parsed opcode with structured operands - `unknown_opcode`: one-byte opcode not yet modeled; stop or fall back conservatively - `raw_tail`: remaining undecoded bytes after a stop condition -- `debug_blob`: symbol/debug tail such as `0x5c`-anchored metadata +- `debug_blob`: post-`ret` local/debug trailer ending in `0x7a` That keeps the IR trustworthy even before the whole Crusader VM is modeled. @@ -474,16 +513,23 @@ annotation_hints: runtime_family: slot-backed-owner-loaded-body payload_shape_hint: signed_word compiled_anchors: - - address: 000d:51fd - role: slot_value_loader - - address: 000d:5572 - role: slot_value_plus_offset - address: 000d:46ec role: context_create_from_slot - - address: 000d:ebe3 - role: opcode_sequence_run + - address: 000d:0988 + role: referent_chain_mutator + - address: 000d:208b + role: materialize_or_forward_value + - address: 000d:21ed + role: prepend_inline_payload - address: 000d:22bc role: matrix_pushback_stage + - address: 000d:2104 + role: finalize_to_outptr + - address: 000d:ebe3 + role: opcode_sequence_run + runtime_stage_hints: + - stage_address: 000d:0988 + ir_name: APPEND_UNIQUE_INDIRECT ``` This is deliberately smaller than a full import format. It keeps the parser reusable even if the first Ghidra-side importer is only a comment/bookmark script. diff --git a/docs/usecode-tool-improvement-plan.md b/docs/usecode-tool-improvement-plan.md new file mode 100644 index 0000000..bcaa033 --- /dev/null +++ b/docs/usecode-tool-improvement-plan.md @@ -0,0 +1,248 @@ +# USECODE Tool Improvement Plan + +## Purpose + +This note turns the earlier tooling comparison into a concrete improvement plan for the local parser/decompiler. + +The intent is not to copy Pentagram or `crusader-disasm` wholesale. The intent is to extract the parts that are genuinely useful for the current workspace toolchain: + +- `tools/poc_crusader_usecode_parser.py` +- `tools/export_usecode_pseudocode.py` +- the extracted owner-loaded corpus under `USECODE/EUSECODE_extracted/` + +## Short version + +The most useful next upgrades are: + +1. make the decoder tables more authoritative +2. decode loop/selector idioms into real structured searches +3. improve intrinsic naming and signatures +4. distinguish code from trailers more rigorously +5. add corpus-level pattern clustering and family annotations +6. keep strengthening the runtime bridge back into the retail binary + +## Priority 1: Authoritative opcode metadata + +### What to borrow + +From Pentagram and `crusader-disasm`: + +- stable opcode names +- operand-shape knowledge +- special handling for records like `SYMBOL_INFO`, `LINE_NUMBER`, `PROCESS_EXCLUDE`, and `END` + +### Why it matters + +The current parser already decodes enough to produce readable pseudocode, but some opcodes are still treated more heuristically than declaratively. That is fine for proof-of-concept output, but it becomes fragile once more control-flow and loop idioms are added. + +### Concrete change + +Move the per-opcode knowledge into a single explicit table describing: + +- mnemonic +- stack effect where known +- immediate layout +- control-flow behavior +- whether the opcode is normal code, metadata, or trailer-oriented +- whether the opcode participates in loop selector mini-languages + +### Expected payoff + +- fewer ad hoc decode branches +- easier regression testing against the text corpus +- cleaner IR for later restructuring passes + +## Priority 2: Real loop/selector decoding + +### What to borrow + +From the older disassembly corpus: + +- the meaning of `loopscr` tokens such as `end`, `==`, `item->shape`, `item->family`, and typed literal selectors +- the visible repeated patterns in alarm-family and trigger-family bodies + +### Why it matters + +Right now the parser preserves loop selector bytes faithfully, but readable pseudocode still shows comments like `loopscr value_u8=0x40` instead of the underlying search semantics. + +That is the main reason scripts like `ALARMHAT` still read as partially machine-shaped even though the overall behavior is already understandable. + +### Concrete change + +Introduce a small loop-selector IR layer so common loop forms render as something closer to: + +```text +for item in nearby_items(shape=0x04D0, origin=arg_06): +``` + +or: + +```text +for candidate in nearby_items(family=6, origin=arg_06): +``` + +The first target is not full generality. The first target is the set of repeated loop forms already seen in: + +- `NPCTRIG` +- `ALARMHAT` +- `ALARMBOX` +- `ALRMTRIG` +- nearby environmental families + +### Expected payoff + +- much better readability for object-searching scripts +- better gameplay interpretation of trigger/controller classes +- a cleaner path to naming common search idioms + +## Priority 3: Better intrinsic naming and signatures + +### What to borrow + +From Pentagram and `crusader-disasm`: + +- historical intrinsic names +- text-mined call arities and stack cleanup behavior +- rough prototype guesses from the older corpus tools + +### Why it matters + +Readable pseudocode is bottlenecked less by control flow now and more by anonymous calls like `Intrinsic0007()` or generic placeholders like `class_0A18_slot_20(...)`. + +The older tool lines already contain partial information that can improve this materially, as long as it is treated as hint-quality evidence rather than rename authority. + +### Concrete change + +Build a local intrinsic metadata table with confidence levels: + +- `verified` +- `strong hint` +- `weak hint` + +Populate it from: + +- Pentagram tables +- `usecode_opcodes.txt` +- mined `calli`/`add sp` patterns from `crusader_disasm.txt` +- current repo notes where compiled-side names are already justified + +### Expected payoff + +- more readable pseudocode +- safer future promotion of intrinsic names +- less confusion between Remorse-only, Regret-only, and cross-game vocabulary + +## Priority 4: Explicit code-versus-trailer boundaries + +### What to borrow + +From Pentagram's symbol-info/debug-symbol handling: + +- the idea that `0x5C` points into structured trailer data +- the practical distinction between executable body and debug/local trailer rows + +### Why it matters + +The JELYHACK pass already showed how important this is. Tiny scripts are easy to misread if post-`ret` metadata gets rendered as live code. + +The current parser now avoids that in readable pseudocode, but the boundary logic should become a first-class part of the IR rather than a readability-only safeguard. + +### Concrete change + +Make trailer parsing explicit in the IR: + +- code extent +- trailer extent +- debug symbol rows +- line-number records +- terminal `END` + +### Expected payoff + +- safer whole-corpus export +- better local naming and source-like output +- fewer false positives when mining repeated code bodies + +## Priority 5: Corpus-level pattern clustering + +### What to borrow + +From the `crusader-disasm` corpus mindset: + +- treat the full body set as a searchable evidence base, not only as isolated scripts + +### Why it matters + +The JELYHACK result was only obvious after repeated-body comparison showed it was a small shared stub. The same strategy can keep the decompiler honest elsewhere. + +### Concrete change + +Add corpus analysis helpers that cluster or index: + +- exact repeated bodies +- normalized repeated bodies +- repeated loop-selector templates +- repeated spawn/call templates by class and slot + +Those results should feed back into readable annotations like: + +- `shared interaction stub` +- `alarm-family controller template` +- `common trigger setup pattern` + +### Expected payoff + +- faster triage of interesting scripts +- better distinction between generic templates and unique gameplay logic +- fewer overinterpretations of tiny bodies + +## Priority 6: Stronger runtime bridge and import path + +### What to borrow + +From the local repo workflow rather than directly from Pentagram: + +- the current runtime anchors already recorded in `runtime_vm_ir.tsv` +- the Ghidra-side annotation path planned in the USECODE notes + +### Why it matters + +The parser is strongest when its readable output can be tied back to the compiled loader and sequencer. That keeps the decompiler grounded instead of drifting into pure script aesthetics. + +### Concrete change + +Expand the export and annotation path so pseudocode/index output can carry verified runtime anchors where known, especially around: + +- `000d:51fd` +- `000d:5572` +- `000d:46ec` +- `000d:21ed` +- `000d:22bc` +- `000d:ebe3` + +### Expected payoff + +- easier Ghidra-side correlation +- safer promotion of slot/event names +- better compiled-to-script navigation + +## Suggested implementation order + +1. stabilize opcode metadata tables +2. formalize trailer parsing in IR +3. implement first real loop-selector decoder for common `shape` and `family` searches +4. add intrinsic metadata with confidence levels +5. add corpus clustering/index helpers +6. extend runtime-anchor export/import integration + +## What not to do yet + +- Do not chase full round-tripping first. Readability is still the higher-value frontier. +- Do not mass-promote intrinsic or event names from Pentagram or the old disasm corpus without current-binary support. +- Do not try to solve every loop/selector form before landing the small repeated set that already appears across the alarm and trigger families. + +## Current best next step + +The most leverage is in loop-selector decoding. + +That is the place where the older tools still give us directly reusable structure and where the current readable output most obviously needs another step forward. \ No newline at end of file diff --git a/docs/usecode-tooling-comparison.md b/docs/usecode-tooling-comparison.md new file mode 100644 index 0000000..dc2d4f5 --- /dev/null +++ b/docs/usecode-tooling-comparison.md @@ -0,0 +1,282 @@ +# USECODE Tooling Comparison + +## Purpose + +This note compares three different USECODE-facing tool lines now in use around the Crusader work: + +1. Pentagram's built-in Crusader usecode converter/disassembler +2. the local `crusader-disasm` corpus and helper scripts +3. the current workspace parser/decompiler in `tools/poc_crusader_usecode_parser.py` + +The goal is not to rank them abstractly. The goal is to state what each one is actually good at, what assumptions it bakes in, and why the current local parser had to diverge. + +## Short version + +Pentagram is a game-engine-side disassembler/converter with generic Crusader hooks. + +`crusader-disasm` is mostly a generated disassembly corpus plus small maintenance scripts that mine or preserve information from that corpus. + +Our current parser is the first tool in this workspace that is explicitly built around the validated owner-loaded `EUSECODE.FLX` structure recovered from the retail binary and then pushed further into readable pseudocode export. + +## Pentagram: what it does + +The relevant Pentagram pieces are: + +- `convert/crusader/ConvertUsecodeCrusader.h` +- `convert/Convert.h` +- `tools/disasm/Disasm.cpp` +- `usecode/UsecodeFlex.cpp` + +### Pentagram's model + +Pentagram is trying to solve a different problem from our current script. It is not primarily a workspace extraction/decompilation pipeline. It is an engine-aware converter/disassembler that sits on top of Pentagram's own USECODE model. + +Its Crusader-specific logic provides: + +- an event-name table for slots `0x00..0x1f` +- an intrinsic-name table +- a Crusader header reader +- Crusader event-table decoding through `readevents` +- Crusader opcode parsing by routing into the generic `readOpGeneric(..., crusader=true)` path + +### What Pentagram assumes + +Pentagram's class/container assumptions come from its own `UsecodeFlex` and converter model: + +- class bodies are addressed as object `classid + 2` +- class names come from object `1` +- the Crusader base offset comes from bytes `8..11`, then decremented by `1` +- event count is derived as `(base_offset + 19) / 6` +- disassembly is driven from the converter header and event table, not from our later owner-loaded extractor outputs + +That is close enough to be extremely useful, but it is not the same as the now-validated local owner-loaded reading we use in this repo. + +### What Pentagram outputs well + +Pentagram is strong at: + +- linear opcode disassembly +- printing BP/SP-relative references in a readable way +- mapping class/slot offsets to event names +- following opcode `0x5C` symbol-info records into trailing local/debug symbol data +- printing those debug symbols after the code body + +The JELYHACK example is a good illustration. Pentagram's disassembly prints: + +```text +Func_1 (Event 1) JELYHACK::use(): + 0001: 5A init 00 + 0003: 5C symbol info offset 001Ch = "JELYHACK" + 000F: 0B push 0207h + 0012: 40 push dword [BP+06h] + 0014: 4C push indirect 02h bytes + 0016: 77 set info + 0017: 78 process exclude + 0018: 5B line number 219 (00DBh) + 001B: 50 ret +00: 01 type=69 (i) [BP+00h] (00) 00 referent + 002A: 7A end +``` + +That is still one of the clearest proofs that the post-`ret` region contains local/debug-style metadata, not active control flow. + +### Where Pentagram stops short for this repo + +Pentagram is not built around our current local needs: + +- it does not consume `class_layout_index.tsv`, `class_event_index.tsv`, or the extracted chunk corpus +- it does not expose a workspace-friendly IR +- it does not attach our verified runtime anchors from `runtime_vm_ir.tsv` +- it does not export batch pseudocode for the whole `EUSECODE` corpus +- it still reflects a converter/disassembler view, not a readability-first decompiler view +- its Crusader intrinsic table is explicitly mixed with Regret-era knowledge and is useful as a hint table, not rename authority + +So Pentagram gave us crucial structure and vocabulary, but not the repo-specific decompilation pipeline we needed. + +## crusader-disasm: what it does + +The local `crusader-disasm` tree is different again. It is not one coherent parser in the same way Pentagram is. It is a mixture of: + +- a large generated disassembly corpus in `crusader_disasm.txt` +- opcode-name tables such as `usecode_opcodes.txt` +- small maintenance scripts such as `parse_crusader_disasm.py` and `update_disasm_comments.py` +- handwritten notes and side data gathered over time + +### What `crusader-disasm` is strongest at + +Its biggest strength is that it is already a rich evidence corpus. + +`usecode_opcodes.txt` gives a full opcode-name vocabulary such as: + +- `0x04 ASSIGN_MEMBER_CHAR` +- `0x10 NEAR_ROUTINE_CALL` +- `0x5C SYMBOL_INFO` +- `0x78 PROCESS_EXCLUDE` +- `0x7A END` + +That helped verify several names and fill decode gaps in our parser. + +The generated `crusader_disasm.txt` is also valuable because it shows concrete output form, not just names. It proved things like: + +- how `symbol info` is rendered +- where local/debug symbol rows appear +- what a tiny body like `JELYHACK::use` looks like in a traditional disassembly listing + +### What the helper scripts actually do + +The helper scripts in `crusader-disasm` are narrow and pragmatic. + +`parse_crusader_disasm.py`: + +- scans an already-generated `crusader_disasm.txt` +- looks for `calli` lines, nearby `add sp`, and retval pushes +- infers rough intrinsic prototypes from the text listing +- emits a guessed intrinsic table + +That means it is not parsing `EUSECODE.FLX` directly. It is mining structure from a pre-rendered textual disassembly. + +`update_disasm_comments.py`: + +- merges comments from an older disassembly into an updated regenerated one +- preserves manual annotations when intrinsic names change + +So this is again a maintenance aid around a text corpus, not a first-principles byte parser. + +### Where `crusader-disasm` stops short for this repo + +`crusader-disasm` is excellent evidence, but weak as a live decompilation pipeline: + +- it does not operate on our extracted owner-loaded chunk/index data +- it does not produce structured IR +- it does not know our validated body windows from `class_event_index.tsv` +- it does not emit script/pseudocode views +- it does not integrate runtime-anchor hints from the current RE notes +- some of its information is annotation-quality and corpus-quality rather than machine-robust parser output + +In practice, `crusader-disasm` has been most useful as a vocabulary/evidence source, not as the final tool we run to generate the readable corpus. + +## Our current parser/decompiler: what it does differently + +The current local tool line is centered on: + +- `tools/extract_eusecode_flx.py` +- `tools/poc_crusader_usecode_parser.py` +- `tools/export_usecode_pseudocode.py` + +### 1. It is built around the validated owner-loaded local format + +This is the biggest difference. + +Our parser does not start from Pentagram's generic converter header model or from a pre-rendered disassembly text file. It starts from the extracted local artifacts and the currently validated retail-binary understanding: + +- `class_id + 2` body lookup +- bytes `8..11` treated as the first code-byte anchor / `code_base_minus_one` basis +- 6-byte event rows at `+20` +- derived body ranges emitted into `class_event_index.tsv` +- chunk files under `USECODE/EUSECODE_extracted/chunks/` + +That is why it can decompile the actual extracted corpus in a repeatable workspace-local way. + +### 2. It separates authoritative IR from readable views + +Pentagram and `crusader-disasm` mostly produce one human-facing linear listing. + +Our parser deliberately splits output into layers: + +- JSON IR for machine-facing structure +- flat text listing for byte-faithful decode +- script view for stack-machine readability +- pseudocode view for programming-language-like readability +- batch export of that pseudocode corpus into `USECODE/EUSECODE_extracted/pseudocode` + +That separation is what let us make JELYHACK readable without losing the exact bytes and trailer structure. + +### 3. It handles post-`ret` metadata differently + +Pentagram already knew about debug symbols through `0x5C` and `readDbgSymbols()`. + +The important difference is that our parser had to make that logic safe in the extracted-corpus setting: + +- it now detects ret-anchored debug/local trailers explicitly +- it avoids mis-decoding those bytes as live opcodes on bodies like `NPCTRIG 0x0A` +- it exposes debug symbols in the IR and readable views +- it now hides dead post-return junk from the human pseudocode when readability matters more than raw listing fidelity + +So Pentagram gave the structural clue, but our parser had to adapt it to the owner-loaded extracted corpus and to the readability-first output mode. + +### 4. It adds runtime cross-reference hints that the older tools do not + +Our parser attaches the verified runtime bridge information from `runtime_vm_ir.tsv` and related notes, such as: + +- `000d:0988` +- `000d:177c` +- `000d:1acb` +- `000d:208b` +- `000d:21ed` +- `000d:22bc` +- `000d:2104` +- `000d:46ec` +- `000d:ebe3` + +Neither Pentagram nor `crusader-disasm` is doing that kind of live repo-specific runtime correlation. + +### 5. It is aimed at whole-corpus readability, not only opcode fidelity + +This is the most visible practical difference. + +Pentagram and `crusader-disasm` are good at telling you what bytes and opcodes are present. + +Our current script is trying to answer a different question too: + +`What does this class body seem to do, in language a human can scan?` + +That is why the current parser now: + +- names locals where the debug trailer provides them +- folds compare ladders into `if / else if` +- suppresses dead post-`ret` tail noise in pseudocode +- exports the whole decoded corpus into per-class pseudocode files + +That is the main place where our script now goes beyond the older tools. + +## What the older tools still do better + +This is not a one-way replacement story. + +Pentagram still does some things better than our current script: + +- broader mature generic opcode conversion framework +- a cleaner historical disassembler path for symbol-info and debug-symbol printing +- a converter architecture that already knows how to build node-like structures for many ops + +`crusader-disasm` still does some things better too: + +- richer long-lived annotation corpus +- a larger existing body of older naming/vocabulary experiments +- a direct opcode-name table from a distinct extraction route +- concrete disassembly output that is sometimes easier to cross-check than a newer heuristic pseudocode layer + +So the best current workflow is still hybrid: + +- use Pentagram for structural/reference behavior +- use `crusader-disasm` for opcode vocabulary and corpus evidence +- use the local parser for validated owner-loaded extraction, IR, pseudocode, and batch readability export + +## Best current summary + +Pentagram is a converter/disassembler. + +`crusader-disasm` is a disassembly corpus with helper scripts. + +Our script is the first repo-local tool that is explicitly trying to be a readable decompiler over the validated extracted `EUSECODE` corpus. + +That is why the current parser looks less like a classic disassembler and more like a layered RE workbench: + +- extractor-backed local format understanding +- structured IR +- byte-faithful listing +- readability-first script/pseudocode views +- batch corpus export +- runtime-annotation hints tied to the current Crusader notes + +The tradeoff is that our current script is newer and more heuristic. It is better at producing something a human can read across the whole corpus, but it is not yet as mature or as battle-tested at raw opcode coverage as the older reference tools. \ No newline at end of file diff --git a/exports/CRUSADER.EXE.xml b/exports/CRUSADER.EXE.xml index 138e7b7..5ca0965 100644 --- a/exports/CRUSADER.EXE.xml +++ b/exports/CRUSADER.EXE.xml @@ -322,7 +322,7 @@ ]> - + @@ -7884,6 +7884,7 @@ DL = new default drive (00h = A:, 01h = B:, etc) FINDFIRST - FIND FIRST MATCHING FILE Int 21/AH=1Ah - DOS 1+ - SET DISK TRANSFER AREA ADDRESS (popped off stack 4f == Find Next Matching File + Formats via ProbablySomethingDebuggy/FUN_1000_67ac into DS:1478:6c46, the handle-1 stdio entry. This is the normal stdout path used by ConsolePrintf and related wrappers, including the retail -debug thresholded text lane. Probably pointer to FUN_1000_6e93 probably pointing to previous function? Segment: 2 @@ -8031,6 +8032,7 @@ Flags: 0d00 Intrinsic 0CE - is GAME COMPILE=1 "-?" "-u" + Retail -debug branch is live. It raises g_debugMsgLevel to 10, prints "Debugging mode ON.", sets 1478:0845, and enables the seg1468 video-player debug timing overlay via 1478:0859. "-debug" "-setver" "-asylum" @@ -8069,6 +8071,7 @@ Flags: 0d00 copy egg2 data to egg1 get location of current controlled npc snap to this egg + Alt+F7 overlay consumer. Walks the SnapProcess egg list and draws per-entry diamonds from packed egg range data via 1180:1ce5, so this overlay is closer to snap/trigger coverage than to a camera-aligned background grid. Segment: 13 Offset: 00048200 Length: 1f6c @@ -8162,6 +8165,8 @@ Flags: 0d00 intrinsic 03F g_eggHatcherProcessFnPtr = 0x14780f16 0x14780f0b = "EggHatcher" + Egg-hatcher runtime step. Tracks avatar footprint against the egg item's X/Y range rectangle and Z window; for non-monster-egg families it toggles ishatched and calls Item_CallHatchEvent / Item_CallUnhatchEvent on enter/leave. + Ctrl+F7 overlay consumer. When 1478:0ee0 is enabled, this draws egg-hatcher trigger diamonds using Egg_GetXRange / Egg_GetYRange and the shared diamond helper at 1180:1ce5. If the current map has no live EggHatcherProcess objects, or a non-monster-egg trigger has already hatched while gameplay is active, the overlay can appear blank even though the toggle succeeded. Segment: 20 Offset: 0004f800 Length: 0878 @@ -8710,10 +8715,16 @@ Flags: 0d00 0x168 = 360 0x168 = 360 (degrees). 0x10e = 270 0x4cc == small red crosshairs + Controller option-key handler. The F10 cheat branch is gated by the live keyboard cheat latch (0x6045). Within that branch, plain F10 performs the large restore/refill/loadout path, while Ctrl+F10 directly toggles the current controlled NPC's immortal flag through NPC_GetIsImmortal / NPC_SetImmortal / NPC_ClearImmortal and displays the local immortality enabled/disabled messages. This is stronger evidence for a real keyboard immortality combo than the older CTRL-Q scratch note. scan code 0x44 = F10? + Pre-F10 gameplay gate. This byte is checked before the low-level cheat latch at DS:0x6045; it is written by Game_Start and the 1398:0212 / 1398:01f5 helper pair, so it appears to track a broader gameplay option-key enabled state rather than the cheat state itself. + Pre-F10 gameplay gate. This byte is checked before the low-level cheat latch at DS:0x6045; it is written by Game_Start and the 1398:0212 / 1398:01f5 helper pair, so it appears to track a broader gameplay option-key enabled state rather than the cheat state itself. + Live F10 cheat branch. Once the low-level cheat latch (0x6045) is active, plain F10 runs the restore/refill path and Alt+F10 directly toggles the current controlled NPC's immortal flag, displaying the local Immortality enabled/disabled strings. Stop any DeathSilence process set HP to max val + Ctrl-gated F10 immortality branch: calls KeyEvent_IsCtrlDown on the queued KeyEvent snapshot before toggling the current NPC immortal flag. probably "is alt or control down", to toggle god mode + Later unrelated branch uses KeyEvent_IsAltDown. This is not the F10 immortality path. scan code 0x4b = left scan code 0x4d = right animation 46 = kneeling with weapon @@ -8731,11 +8742,13 @@ Flags: 0d00 scan code 0x4c = 5 scan code 0x53 = del scan code 0x35 = questionmark + Copies the full incoming KeyEvent to a local snapshot before cheat-toggle and option-key handling. That preserves the queued modifier/repeat state all the way into the F10 immortality branch. note: decompiler is wrong, this is actually 0x1130273b The array we're comparing param2 to contains 1, 2, 4, 0x10, 0x100. The other array is all 0s The jump table is: 0x1130226E, 0x11302276, 0x113022B6, 0x113022BD, 0x113022B6 + Controller_HandleKeyEvent copies the full incoming KeyEvent, including modifier/repeat bytes, before Key_CheckCheatToggle and Key_HandleOptionKeys inspect it. pressing fire when some global is set.. anim picked and field_0x8 != 0 scan code 0x4a = Scan_NumMinus @@ -8749,6 +8762,14 @@ Flags: 0d00 reload now Shape 0x332 = SG-A1 not shots left and no inventory to reload with + Exact hidden cheat-code matcher. Only keydown events participate; the terminal digits in DS:0x2833 are top-row scan codes 0x02 and 0x07, so keypad 1/6 will not complete jassica16. + Exact hidden cheat-code matcher. Only keydown events participate; the terminal digits in DS:0x2833 are top-row scan codes 0x02 and 0x07, so keypad 1/6 will not complete jassica16. + jassica16 success sets latch 1478:8c52 before toggling 1478:0844 and 1478:6045. Plain logical-~ at 13e8:203d only flips 1478:6045 under the existing 1478:0844 gate and does not set this extra post-sequence latch. + Live cheat-code success core. The matcher bytes at DS:0x2833 are the scan-code sequence 24 1e 1f 1f 17 2e 1e 02 07 = j a s s i c a 1 6, with the final 1/6 using top-row scan codes. On completion this path toggles DS:0x844 and mirrors the same value into DS:0x6045. + Live cheat-code success core. The matcher bytes at DS:0x2833 are the scan-code sequence 24 1e 1f 1f 17 2e 1e 02 07 = j a s s i c a 1 6, with the final 1/6 using top-row scan codes. On completion this path toggles DS:0x844 and mirrors the same value into DS:0x6045. + jassica16 success path: raw scancode matcher over 1478:2833 toggles both 1478:0844 and 1478:6045, then emits 0x103 and shows the active/inactive cheat modal. This is structurally different from the later translated logical-~ hotkey path. + Live cheat-code success path: toggles cheats_enabled (0x844/0x6045), then emits event 0x103. On a COPY only, the current best hidden-menu experiment in Ghidra is to retarget the existing CALLF/fixup at 1130:2b78 from 12d8:0476 to 13a0:0086 (cheat_menu_open_from_current_slot). Do not patch raw bytes here in the main database. + cheat_code_check success path: resets the matcher index, marks the cheat side-effect latch, toggles both cheats_enabled (0x844) and the live keyboard cheat latch (0x6045), then emits event/helper 0x103. If -laurie has already forced 0x844 on, hitting this path again will toggle both values back off, which matches the observed 'jassica16 disables cheats when laurie is active' behavior. sound 0x103 - female voice saying "Crusader: No Remorse" stop process type 0xc (also stopped on destroy..) shape 0x38d (909) a big gun @@ -8949,7 +8970,10 @@ Flags: 0d00 check SI_DRAW shape data byte 1 bit 3 == SI_TRANSL intrinsic 040 + Camera debug-overlay helper. 1478:2bca draws the coarse 3x3 world-cell grid, while 1478:0ee0 iterates EggHatcherProcess objects and draws their egg / hatch trigger diamonds through EggHatcher_1090_0921 rather than a generic grid. get egg hatcher (0x20f) processes + Main camera redraw pass that updates the viewport, applies the DS:0x085f gameplay-input gate to the avatar-centered redraw rectangle, and calls the 1188 overlay draw/clear helpers around the viewport blit. + Main camera redraw pass that updates the viewport, applies the DS:0x085f gameplay-input gate to the avatar-centered redraw rectangle, and calls the 1188 overlay draw/clear helpers around the viewport blit. note: checked this list and they do all appear to be void fns. Intrinsic 041 Intrinsic 086 @@ -8965,6 +8989,10 @@ Flags: 0d00 LoadOnCall Impure (Non-shareable) + Scans the tracked overlay list at 1478:835a..8422, marks entries visible, and draws each active gameplay overlay window when the modal overlay-suppression flag at DS:0x2c64 is clear. + Scans the tracked overlay list at 1478:835a..8422, marks entries visible, and draws each active gameplay overlay window when the modal overlay-suppression flag at DS:0x2c64 is clear. + Clears the dirty rectangles for tracked gameplay overlay windows after the main viewport copy, but only while the modal overlay-suppression flag at DS:0x2c64 is clear. + Clears the dirty rectangles for tracked gameplay overlay windows after the main viewport copy, but only while the modal overlay-suppression flag at DS:0x2c64 is clear. Segment: 51 Offset: 0007ea00 Length: 1d02 @@ -9037,6 +9065,10 @@ Flags: 0d00 LoadOnCall Impure (Non-shareable) + Synthesizes repeated held-key KeyEvent records from the current-down tables. Each generated repeat event refreshes the modifier snapshot from DS:31a4 before dispatch/queue, which explains why holding F10 first and then pressing physical Ctrl can satisfy the immortality branch on later repeated F10 events. + Snapshot the current extended-shift/modifier word from DS:31a4 into the synthesized repeat KeyEvent before dispatch/queue. + Return the cached last KeyEvent exactly as stored by the keyboard process, including the queued modifier snapshot bytes. + Returns the last keyboard-process KeyEvent snapshot verbatim, including the modifier bytes that were captured when the event was queued or synthesized. reset driver and read status define mickey/pixel ratio (3 horizontally, 16 vertically) call mask 3f - call the routine for ~all events @@ -9062,6 +9094,10 @@ Flags: 0d00 LoadOnCall Impure (Non-shareable) + Tests AH bits 1 and 3 from INT 16h AH=12 keyboard shift state, i.e. left Alt or right Alt. The older Ctrl label was reversed. + Test modifiers word for Alt bits: 0x0200 = left Alt, 0x0800 = right Alt from BIOS INT 16h AH=12 shift flags 2. + Tests AH bits 0 and 2 from INT 16h AH=12 keyboard shift state, i.e. left Ctrl or right Ctrl. The older Alt label was reversed. + Test modifiers word for Ctrl bits: 0x0100 = left Ctrl, 0x0400 = right Ctrl from BIOS INT 16h AH=12 shift flags 2. Segment: 59 Offset: 00086a00 Length: 4288 @@ -9079,11 +9115,17 @@ Flags: 0d00 assert process is "linear" if NoTerminatedState extflag is set cpu generated breakpoint + Kernel/process snapshot writer: walks process tables/lists and serializes per-process state via writer callbacks. + Serializes the process table, timer/keyboard/mouse proc-id lists, process sizes, names, and per-process state through a file-like writer; this is a kernel/process snapshot writer, not just a printf-style kernel-info routine. Port 0x43 PIT mode control - 00110110 = counter 0, write 16 bits, mode 3 (square wave), binary counter 0040 RW PIT counter 0, counter divisor (XT, AT, PS/2) Used to keep the system time; the default divisor of (1)0000h produces the 18.2Hz clock tick. + Small repeat-suppression predicate used by the held-key repeat path and cycle update. Verified behavior: returns nonzero only when keyboard state word DS:31a4 has bit 0x0010 set and DS:39af is enabled; exact physical-key meaning of that bit is still not promoted. + Queues one 12-byte KeyEvent into the pending keyboard ring at DS:31cc. If the ring is full, it sets DS:31a0 instead of writing a new event. + Read BIOS INT 16h AH=12 extended keyboard shift states and cache the result in DS:31a4 for later KeyEvent synthesis. + Reads BIOS extended keyboard shift state (INT 16h AH=12) and caches the current modifier word at DS:31a4. The held-key repeat path reuses that cached word when building repeated KeyEvent records. pushflags popflags Segment: 60 @@ -9439,6 +9481,10 @@ Flags: 0d00 fire one-shots read joystick position and status cpu-generated breakpoint + Threshold-gated positioned debug print helper. Moves the cursor via 1000:4d68, then prints only when g_debugMsgLevel <= level. + Threshold-gated debug print plus blocking key wait. Current recovered callers are failure/debug-stop paths in dispatch/gump allocation code, not the seg1468 AVI overlay lane. + Threshold-gated positioned debug print helper. Moves the cursor via 1000:4d68, then prints only when g_debugMsgLevel <= level. + Initializes shared system/video state and allocates the 0x400-byte staging buffer at 1478:45a6 used by ConsolePrintf / DebugPrintAndWaitForInput. Retail -debug does not create this sink; it only sets the print threshold and the video overlay flag. set mode 3 (80x25 8x8 640x200 16) set mode from param1 get current video mode @@ -9705,6 +9751,9 @@ Flags: 0d00 Intrinsic 0FE shapeno 21 is the computer frame + End of ComputerGump_CreateGump: clears DS:0x085f before returning the modal computer gump, which explains why gameplay option-key handling (including Alt+F10) is suppressed while this modal is active. + Computer-gump teardown override. Restores the gameplay-input gate at DS:0x085f, releases pending text at +0x34/+0x36, refreshes controller/UI state, then falls into the generic gump cleanup path and optional free. + Computer-gump teardown override. Restores the gameplay-input gate at DS:0x085f, releases pending text at +0x34/+0x36, refreshes controller/UI state, then falls into the generic gump cleanup path and optional free. very short "beep" sound for text being displayed Segment: 117 Offset: 000b9a00 @@ -9716,6 +9765,20 @@ Flags: 0d00 LoadOnCall Impure (Non-shareable) + Live NE hidden cheat-menu wrapper confirmed by direct disassembly. Builds cheat_event_listener_create with mode byte 1, then enters the larger modal/UI traversal lane using current UI state. This is the current best direct retarget target for the 0x103 cheat success path. + Likely intended breakpoint/debugger callback target. Expects a live seg1408 debugger state object at 0x659c/0x659e, resolves the current unit filename, loads that file, centers on the current line, and enters the modal debugger UI. No direct retail caller has been confirmed. + Constructor arg site for cheat_menu_open_from_current_slot. Current live call shape is PUSH 1, PUSH [BP+8], PUSH [BP+6], PUSH 0, PUSH 0, CALL 13a0:19b1. On a COPY only, preserve the leading mode byte 1 and zero the two caller-frame words if the direct 1130:2b78 retarget is tested from the cheat matcher context. + Smaller hidden modal wrapper. Directly constructs cheat_event_listener_create and traverses it, but prior deferred-hook experiments reached the UI here from the wrong runtime context and hit FLEX.C line 83. Keep as a rejected or secondary patch target unless a safer controller context is proven. + Generic modal wrapper for the same usecode debugger UI. It is a practical forced-open target because it skips current-unit preload, but prior retail patch tests show that entering it from the wrong runtime context still fails. + Constructor arg site inside cheat_menu_open_modal. This is the live NE counterpart of the previously tested modal-wrapper patch lane. Rejected path: 13e8:25dd (0x42f branch) -> retarget here reached the menu but failed at runtime. + Sets the current debugger line selection and optional anchor line, clamps the requested line to the loaded file range, clears transient cursor state, and forces a redraw. + Centers the debugger viewport on a requested source line. Stores the target line in the gump state, computes a top-of-window line from the visible row count, and then delegates to 13a0:0b06 to clamp and apply the selection. + Loads a usecode/debug unit file into the debugger panes. Resets selection state, drops any previously loaded file object, opens the requested unit/file, refreshes the list/text widgets, and reports failure if the file is too large or cannot be opened. + Creates the usecode debugger gump: allocates the root gump, builds the menu bar, creates the file/list panes, initializes the shared watch table, stores the open-for-current-unit mode flag, resolves the base usecode path, and registers the debugger/control event bundle. + cheat_event_listener_create registers the shared cheat/control event bundle here, including 0x23f, 0x410, 0x411, 0x431, 0x441, 0x421, and 0x22d. This is listener-side subscription data, not the compiled emitter of 0x410. + Shared cheat-event listener dispatcher. Event object code comes from +0x6; the 0x410 case remaps to local state 0x0e before falling into the shared tail. Confirms that the hidden menu lane reacts to immortality, but does not emit it. + Main usecode debugger event dispatcher. The recovered cases map to debugger-style commands rather than retail cheats: open unit/file, go to line, watch/inspect, clear watches, change global, find/search again, and break-to-debugger. Event 0x23f is reused as a local debugger state command, and incoming event 0x410 is remapped to local state 0x0e before entering the shared state-machine tail. + Builds the hidden usecode debugger menu bar. The recovered labels are File/Open Unit/View File, Run/Run to cursor/Trace into/Step over/Run until return, Breakpoints/Toggle F2/Break to TDP/Delete All, Search/Find/Search again, and Data/Go to line/Watch/Inspect/Clear Current Watch/Clear All Watches/Change Global/Quit. Segment: 118 Offset: 000bd400 Length: 0a0a @@ -9939,6 +10002,14 @@ Flags: 0d00 Intrinsic 074 Intrinsic 070 Intrinsic 071 + Shows the hidden Laurie computer-gump hint string at DS:0x605e. The 13e8:0f4a wrapper calls this only when DS:0x085f says gameplay option-key handling is active. + Shows the hidden Laurie computer-gump hint string at DS:0x605e. The 13e8:0f4a wrapper calls this only when DS:0x085f says gameplay option-key handling is active. + Paired with 13e8:0ef9. This path stops SFX, clears DS:0x27cb so Controller_HandleKeyEvent stops consuming gameplay keys, flips the modal/overlay state bytes at DS:0x2c64 and DS:0x8c53, then refreshes the camera. + Paired with 13e8:0ef9. This path stops SFX, clears DS:0x27cb so Controller_HandleKeyEvent stops consuming gameplay keys, flips the modal/overlay state bytes at DS:0x2c64 and DS:0x8c53, then refreshes the camera. + Inverse of 13e8:0e7d. Restores DS:0x27cb so controller key handling resumes, clears the modal/overlay flags at DS:0x2c64 and DS:0x8c53, refreshes camera state, and clears the secondary DS:0x6050 latch. + Inverse of 13e8:0e7d. Restores DS:0x27cb so controller key handling resumes, clears the modal/overlay flags at DS:0x2c64 and DS:0x8c53, refreshes camera state, and clears the secondary DS:0x6050 latch. + Tiny wrapper around Game_ShowLaurieHintComputerGump. It bails when DS:0x085f is low, which ties the Laurie hint path to the same gameplay-input gate that also suppresses Alt+F10. + Tiny wrapper around Game_ShowLaurieHintComputerGump. It bails when DS:0x085f is low, which ties the Laurie hint path to the same gameplay-input gate that also suppresses Alt+F10. Shape 4d4 = data link shape 0x598 = a weird smiley thing.. "Exit to dos?" sound @@ -9950,21 +10021,34 @@ Flags: 0d00 'T' Case 'b' or 'B' - detonate bomb search area for shape 0x55F (1375) - DETPAC + Ctrl+F7 branch: toggles debug overlay flag 1478:0ee0, then forces camera refresh via [g_cameraProcess+0x2c]. This path is gated by 1478:0844, so it only works when the cheat/debug latch is already enabled. + Alt+F7 branch: toggles debug overlay flag 1478:2bc9, then forces camera refresh via [g_cameraProcess+0x2c]. This is one of the three cheat-gated F7 overlay toggles. + F7 branch: toggles debug overlay flag 1478:2bca, then forces camera refresh via [g_cameraProcess+0x2c]. This is the plain F7 overlay toggle under the same 1478:0844 gate. "Quick load." sound "quick save" sound + Event 0x7e branch inside World_HandleKeyboardInput. Requires DS:0x844 but flips the independent keyboard cheat latch at DS:0x6045 and posts the 0x6087/0x6091 on-off notifications. This is the main runtime path that can undo a successful jassica16 toggle later. + Event 0x7e branch inside World_HandleKeyboardInput. Requires DS:0x844 but flips the independent keyboard cheat latch at DS:0x6045 and posts the 0x6087/0x6091 on-off notifications. This is the main runtime path that can undo a successful jassica16 toggle later. + Event 0x7e runtime cheat-latch toggle. This path requires cheats_enabled (0x844) but flips the live keyboard latch at 0x6045 separately and posts the on/off notifications at 0x6087 and 0x6091. In other words: -laurie grants permission for this path, but does not itself turn the latch on. + Logical-~ hotkey path: flips only 1478:6045 after the wider 1478:0844 gate has already passed. Because this branch is keyed from the translated logical keycode side of World_HandleKeyboardInput rather than the raw scancode matcher, Shift is normally required on a US layout to produce 0x7e. case '?' - show help screen case 'e' or 'E' - use energy cube 0x582 == 1410 == energy cube 'm' - use medikit in inventory 'R' - targeting reticle targetting reticle active + Live NE event 0x410 handler: gated by cheats_enabled (0x844), toggles DS:0x604f / g_cdTransferDisplayActive, and posts the CD TRANSFER DISPLAY ACTIVE/INACTIVE notification strings at 1478:60d2 and 1478:60ee. This is distinct from the direct Alt+F10 immortality toggle in Key_HandleOptionKeys. + Live NE event 0x410 handler: gated by cheats_enabled (0x844), toggles DS:0x604f / g_cdTransferDisplayActive, and posts the CD TRANSFER DISPLAY ACTIVE/INACTIVE notification strings at 1478:60d2 and 1478:60ee. This is distinct from the direct Alt+F10 immortality toggle in Key_HandleOptionKeys. + Retail second far-call slot inside the 0x410/Ctrl+Q body. Retail target is Dispatch_ModalGump. Current debugger patch candidates reuse this relocation entry as the private UI call target; an earlier O/P script bug left this slot on the retail target, producing an invalid runtime build. 'Q' - cycle through weapons 'W' - cycle through weapons 'U' - use item 0x4d4 = 1236 = datalink, 0x52d = 1325 = scanner, 0x52e = 1326 = ionic, 0x52f = 1327 = plasma, 0x530 = 1328 = graviton i - cycle through inventory 'O' - toggle inventory in reverse + Ctrl+L branch: builds and displays the "X: %u Y: %u Z: %u" popup using avatar coordinates. Online cheat lists that claim Ctrl+C for current location are incorrect in this build. 'f' - paint frames + Rejected deferred patch context. This 0x42f branch also emits 0x103, but prior retarget tests entered the hidden menu from the wrong deferred state and hit the retail FLEX.C line 83 failure after the pointer appeared. Do not treat this as the live patch point. + Controller-side 0x103 lane still matters only as a forced-entry patch candidate. The stronger orphaning evidence now sits in the seg1408 breakpoint callback path rather than in the cheat-toggle event helper. play "crusader, no remorse" voice TODO: Somewhere in here it fetches the current difficulty level case 'G' or 'g' - grab nearby items @@ -10015,16 +10099,10 @@ Flags: 0d00 Impure (Non-shareable) joystick calibration successful - Segment: 130 -Offset: 000cea00 -Length: 047d -Min Alloc: 047d -Flags: 0d00 - Code - Fixed - LoadOnCall - Impure (Non-shareable) - + Constructor for the seg1408 debugger breakpoint/state object. This object holds breakpoint entries, current-frame/unit state, and run-mode flags and appears to be the object expected at 0x659c/0x659e when debugger support is live. + Runtime breakpoint gate for the hidden usecode debugger. Stores the current line in the seg1408 debugger state, checks file+line breakpoints and step/run flags, and callbacks through the object's vtable when a break condition is met. This is a stronger surviving entry path than the cheat-toggle event hook. + Break-next dispatch branch: this is the narrowest shared compiled hook for a deferred Ctrl+Q debugger open because it only runs after 0x659c/0x659e is live and +0x74 is armed. + Shared method-0 vtable callback stub. Retail patch attempts that rewired this body crashed at startup, so keep it as negative evidence: broader than the break-next branch at 1408:00cf. Segment: 131 Offset: 000cf000 Length: 044d @@ -10046,6 +10124,8 @@ Flags: 0d00 Impure (Non-shareable) called by usecode op 0x5a (init) + Interpreter-side handoff into the hidden usecode debugger: if 1478:659c/659e holds a live seg1408 break-state object, this CALLF checks the current file/line and may callback into the seg109 debugger UI path. + Interpreter-side handoff into usecode_debugger_maybe_break_on_current_line. If retail never instantiates the seg1408 debugger state object at 0x659c/0x659e, this compiled breakpoint hook remains dormant and the debugger UI stays orphaned. Opcode 0xd = push string Opcode 0x41 = push local var (string) 26 = strcmp, 16 = concat @@ -10183,6 +10263,9 @@ Flags: 0d00 'strf' 'RRV1' 'RRV2' + 1478:0859 gate from the retail -debug switch. When enabled, update the per-frame video timing overlay before advancing playback. + 1478:0859 gate from the retail -debug switch. When enabled and param_2 != 0, refresh the video timing overlay during chunk streaming/priming. + Builds two 500-byte timing-marker traces and copies them into adjacent scanlines near the bottom of a 640-wide video buffer. Reached only from the seg1468 video-player path when 1478:0859 is non-zero; this is separate from the hidden seg109/seg1408 usecode debugger state at 1478:659c/659e. "LIST" Segment: 143 Offset: 000e3400 @@ -10209,11 +10292,16 @@ Flags: 0d01 g_gumpsFlxFilenamePtr s_music.flx s_gumps.flx + Set by the retail -debug parser branch, but no downstream reader has been recovered yet. Treat as an otherwise-unclassified or vestigial debug latch until a real consumer is found. + Set by the retail -debug parser branch. Read only in seg1468 video-player code to enable the timing overlay helper now named VideoPlayer_DrawDebugTimingOverlay. + Global gameplay-input / option-key-active gate. Set at Game_Start, cleared when ComputerGump_CreateGump hands control to the modal computer gump, and restored by ComputerGump_CloseAndResumeGameplay. Key_HandleOptionKeys checks this before the 0x6045 cheat latch. this gets set but appears to never be read? inititalized to a block of 200 bytes g_femaleUghNoises + Gameplay controller/key-input enabled latch. Controller_HandleKeyEvent reads this before invoking option-key and gameplay key handling; 13e8:0e7d clears it during modal transitions and 13e8:0ef9 restores it. these all point to the null byte at the end of the wpnoverlay.dat string. these are shapes of weapons and some value + Modal overlay-suppression flag. Set by 13e8:0e7d and cleared by 13e8:0ef9; the 1188 overlay draw/clear helpers skip their work while this flag is high. points to a block of 640 words points to a block of 640 words clear system timer process flag.. maybe destroy? @@ -10221,10 +10309,16 @@ Flags: 0d01 g_vtableForSomething these are pointers to the Pure Virtual Function. TODO: What process uses this? + Negative evidence for retail debugger patching: this dword sits inside live debugger-adjacent data, not proven spare storage. Raw bytes nearby include active-looking far-pointer values and DEBUGGER.C text; candidates that reused 1478:6597 as a deferred target slot were retired. these are color numbers, used as offsets into the palette data these are flags. if the value is 1 then the color is cycled differently and some randomness is used.. + Start of the static stdio-style FILE table in DS. First entry is handle 0 (stdin). The retail -debug text lane does not create a separate sink; ProbablyPrintDebugMessage formats into this table's handle-1 entry at 1478:6c46 instead. + Second static stdio-style FILE entry in DS, with handle word 1. ProbablyPrintDebugMessage / ConsolePrintf target this record, so retail -debug text goes to ordinary DOS stdout rather than to a hidden debugger-only console. see fn 11b0:09ba - seems to be 4 blocks of 0xd sized data music buffer + Global print threshold used by ConsolePrintf, DebugPrintAndWaitForInput, and the positioned print helpers. The compare is `if (call_level < g_debugMsgLevel) skip`, so the retail -debug switch sets the minimum printed level to 10 rather than creating a new output sink. + Transient modal camera/overlay state flag. Raised by 13e8:0e7d and cleared by 13e8:0ef9 together with the broader gameplay-input disable/restore sequence. + Saved copy of DS:0x2d24 taken on entry to 13e8:0e7d. It appears to preserve the pre-modal mode byte so the paired modal transition can refresh camera/audio state consistently. struct Palette initailized to 0 initialized to 0x800 @@ -23311,7 +23405,7 @@ Flags: 0c01 - + @@ -23976,7 +24070,7 @@ Flags: 0c01 - + @@ -23993,6 +24087,8 @@ Flags: 0c01 + + @@ -24048,6 +24144,7 @@ Flags: 0c01 + @@ -24084,8 +24181,8 @@ Flags: 0c01 - - + + @@ -24137,9 +24234,13 @@ Flags: 0c01 + + + + @@ -24579,9 +24680,14 @@ Flags: 0c01 + + + + + @@ -24600,8 +24706,10 @@ Flags: 0c01 - - + + + + @@ -24623,7 +24731,12 @@ Flags: 0c01 + + + + + @@ -24825,7 +24938,10 @@ Flags: 0c01 - + + + + @@ -24937,10 +25053,16 @@ Flags: 0c01 - + + + + - - + + + + + @@ -25203,6 +25325,9 @@ Flags: 0c01 + + + @@ -33362,12 +33487,12 @@ Other Flags: 00 - + - byte __cdecl16far NPC_AnotherCreate_10e8_2710(int * pitemno, uint shapeno, undefined2 frameno, word x, word y, byte z) + byte __cdecl16far NPC_CreateIfAreaSearchValid(int * pitemno, uint shapeno, undefined2 frameno, word x, word y, byte z) @@ -38365,10 +38490,10 @@ This is either called from usecode or from an animation (via NPC_FireWeapon) - + - void __cdecl16far Camera_1180_19c1(void) + void __cdecl16far Camera_RedrawViewportAndGameplayOverlays(void) @@ -38537,7 +38662,7 @@ This is either called from usecode or from an animation (via NPC_FireWeapon) - + @@ -38567,7 +38692,7 @@ This is either called from usecode or from an animation (via NPC_FireWeapon) - + @@ -39760,7 +39885,7 @@ This is either called from usecode or from an animation (via NPC_FireWeapon)void __cdecl16far nullfn_11b8_00ef(void) - + @@ -40166,18 +40291,18 @@ This is either called from usecode or from an animation (via NPC_FireWeapon) - + - bool __cdecl16far KeyEvent_IsCtrlDown(struct KeyEvent * keyevent) + bool __cdecl16far KeyEvent_IsAltDown(struct KeyEvent * keyevent) - + - bool __cdecl16far KeyEvent_IsAltDown(struct KeyEvent * keyevent) + bool __cdecl16far KeyEvent_IsCtrlDown(struct KeyEvent * keyevent) @@ -40900,7 +41025,7 @@ This is either called from usecode or from an animation (via NPC_FireWeapon) - + @@ -40912,7 +41037,7 @@ This is either called from usecode or from an animation (via NPC_FireWeapon) - + @@ -40947,18 +41072,18 @@ This is either called from usecode or from an animation (via NPC_FireWeapon) - + - byte __cdecl16far FUN_11d0_3a74(void) + byte __cdecl16far Kernel_GetPendingKeyboardEventCount(void) - + - byte __cdecl16far FUN_11d0_3aad(void) + byte __cdecl16far Kernel_IsPendingKeyboardEventQueueFull(void) @@ -50145,7 +50270,7 @@ This is either called from usecode or from an animation (via NPC_FireWeapon) - + @@ -50226,7 +50351,7 @@ This is either called from usecode or from an animation (via NPC_FireWeapon) - + @@ -50245,7 +50370,7 @@ This is either called from usecode or from an animation (via NPC_FireWeapon) - + @@ -50337,7 +50462,7 @@ This is either called from usecode or from an animation (via NPC_FireWeapon) - + @@ -50346,7 +50471,7 @@ This is either called from usecode or from an animation (via NPC_FireWeapon) - + @@ -50384,7 +50509,7 @@ This is either called from usecode or from an animation (via NPC_FireWeapon) - + @@ -50438,7 +50563,7 @@ This is either called from usecode or from an animation (via NPC_FireWeapon) - + @@ -50501,10 +50626,10 @@ This is either called from usecode or from an animation (via NPC_FireWeapon) - + - int * __stdcall16far Debugump_13a0_19b1(int * param_1, undefined2 param_2, undefined2 param_3, undefined param_4) + int * __stdcall16far usecode_debugger_gump_create(int * param_1, undefined2 param_2, undefined2 param_3, undefined param_4) @@ -50553,7 +50678,7 @@ This is either called from usecode or from an animation (via NPC_FireWeapon) - + @@ -50589,7 +50714,7 @@ This is either called from usecode or from an animation (via NPC_FireWeapon) - + @@ -50600,7 +50725,7 @@ This is either called from usecode or from an animation (via NPC_FireWeapon) - + @@ -50608,7 +50733,7 @@ This is either called from usecode or from an animation (via NPC_FireWeapon) - + @@ -50616,7 +50741,7 @@ This is either called from usecode or from an animation (via NPC_FireWeapon) - + @@ -50657,7 +50782,7 @@ This is either called from usecode or from an animation (via NPC_FireWeapon) - + @@ -52415,23 +52540,23 @@ This is either called from usecode or from an animation (via NPC_FireWeapon)void __cdecl16far Game_SetUnknownGlobalFlag6050(void) - + - + - void __cdecl16far FUN_13e8_0e7d(void) + void __cdecl16far Game_DisableGameplayInputAndRefreshCamera(void) - + - void __cdecl16far FUN_13e8_0ef9(void) + void __cdecl16far Game_RestoreGameplayInputAndClearModalState(void) - + @@ -53116,23 +53241,23 @@ This is either called from usecode or from an animation (via NPC_FireWeapon) - + - + - void __cdecl16far Debugger_1408_0053(undefined2 * param_1, int param_2) + void __cdecl16far usecode_debugger_maybe_break_on_current_line(undefined2 * param_1, int param_2) - + @@ -53166,10 +53291,10 @@ This is either called from usecode or from an animation (via NPC_FireWeapon) - + - uint __cdecl16far FUN_1408_029e(char * param_1, char * param_2, word param_3, word param_4) + uint __cdecl16far usecode_debugger_has_breakpoint(char * param_1, char * param_2, word param_3, word param_4) @@ -53193,7 +53318,7 @@ This is either called from usecode or from an animation (via NPC_FireWeapon) - + @@ -53201,27 +53326,27 @@ This is either called from usecode or from an animation (via NPC_FireWeapon) - + - void __cdecl16far Debugger_1408_03f7(uint * param_1) + void __cdecl16far usecode_debugger_callstack_pop_entry(uint * param_1) - + - + - + @@ -55847,22 +55972,22 @@ This is either called from usecode or from an animation (via NPC_FireWeapon) - + - + - void __cdecl16far FUN_1468_2af4(struct Process * p_proc, char param_2) + void __cdecl16far VideoPlayer_StreamChunks(struct Process * p_proc, char param_2) - + diff --git a/npctrig_0A_emit.txt b/npctrig_0A_emit.txt new file mode 100644 index 0000000..bcecef1 --- /dev/null +++ b/npctrig_0A_emit.txt @@ -0,0 +1,1473 @@ +{ + "schema_version": "crusader-usecode-ir-v1-poc", + "source": { + "flex_path": "USECODE/EUSECODE.FLX", + "extracted_root": "USECODE/EUSECODE_extracted", + "chunk_file": "USECODE/EUSECODE_extracted/chunks/chunk_191_table_1BA8_off_04C347_len_0003A8.bin" + }, + "class": { + "entry_index": 191, + "object_index": 869, + "class_id": 867, + "class_name": "NPCTRIG", + "raw_code_base_u32": 218, + "code_base_minus_one": 217, + "conservative_event_count": 33 + }, + "event": { + "slot": 10, + "event_name_hint": "equip", + "raw_event_entry_word": 373, + "raw_code_offset": 1, + "derived_body_start": 218, + "derived_body_end": 591, + "derived_body_length": 373, + "repeated_template_status": "" + }, + "body": { + "end_reason": "debug_symbols_then_end", + "raw_body_sha1": "98524ea452eae2723f4b27e630c33a920c16def7", + "unknown_trailing_bytes": "", + "decoded_op_count": 111, + "debug_symbol_offset": 323, + "debug_symbol_count": 5, + "field_tag_count": 0 + }, + "ops": [ + { + "offset": 0, + "absolute_body_offset": 218, + "opcode": 90, + "mnemonic": "init", + "raw_bytes": "5a06", + "operands": { + "local_bytes": 6 + } + }, + { + "offset": 2, + "absolute_body_offset": 220, + "opcode": 92, + "mnemonic": "symbol_info", + "raw_bytes": "5c3e014e5043545249470000", + "operands": { + "symbol_offset": 323, + "symbol": "NPCTRIG", + "trailing_zero": 0 + } + }, + { + "offset": 14, + "absolute_body_offset": 232, + "opcode": 11, + "mnemonic": "push_word_immediate", + "raw_bytes": "0b1102", + "operands": { + "value_u16": 529 + } + }, + { + "offset": 17, + "absolute_body_offset": 235, + "opcode": 64, + "mnemonic": "push_local_dword", + "raw_bytes": "4006", + "operands": { + "bp_offset": 6, + "target": "[BP+06h]" + } + }, + { + "offset": 19, + "absolute_body_offset": 237, + "opcode": 76, + "mnemonic": "push_indirect", + "raw_bytes": "4c02", + "operands": { + "size": 2 + } + }, + { + "offset": 21, + "absolute_body_offset": 239, + "opcode": 119, + "mnemonic": "set_info", + "raw_bytes": "77", + "operands": {} + }, + { + "offset": 22, + "absolute_body_offset": 240, + "opcode": 120, + "mnemonic": "process_exclude", + "raw_bytes": "78", + "operands": {} + }, + { + "offset": 23, + "absolute_body_offset": 241, + "opcode": 91, + "mnemonic": "line_number", + "raw_bytes": "5b2000", + "operands": { + "line_number": 32 + } + }, + { + "offset": 26, + "absolute_body_offset": 244, + "opcode": 91, + "mnemonic": "line_number", + "raw_bytes": "5b1f00", + "operands": { + "line_number": 31 + } + }, + { + "offset": 29, + "absolute_body_offset": 247, + "opcode": 64, + "mnemonic": "push_local_dword", + "raw_bytes": "4006", + "operands": { + "bp_offset": 6, + "target": "[BP+06h]" + } + }, + { + "offset": 31, + "absolute_body_offset": 249, + "opcode": 15, + "mnemonic": "call_intrinsic", + "raw_bytes": "0f040400", + "operands": { + "arg_bytes": 4, + "intrinsic_ordinal": 4, + "intrinsic_name_hint": "Item::getStatus(void)" + } + }, + { + "offset": 35, + "absolute_body_offset": 253, + "opcode": 110, + "mnemonic": "add_sp", + "raw_bytes": "6efc", + "operands": { + "value_u8": 252 + } + }, + { + "offset": 37, + "absolute_body_offset": 255, + "opcode": 94, + "mnemonic": "push_retval_word", + "raw_bytes": "5e", + "operands": {} + }, + { + "offset": 38, + "absolute_body_offset": 256, + "opcode": 91, + "mnemonic": "line_number", + "raw_bytes": "5b2000", + "operands": { + "line_number": 32 + } + }, + { + "offset": 41, + "absolute_body_offset": 259, + "opcode": 11, + "mnemonic": "push_word_immediate", + "raw_bytes": "0b0010", + "operands": { + "value_u16": 4096 + } + }, + { + "offset": 44, + "absolute_body_offset": 262, + "opcode": 57, + "mnemonic": "bit_and", + "raw_bytes": "39", + "operands": {} + }, + { + "offset": 45, + "absolute_body_offset": 263, + "opcode": 81, + "mnemonic": "jne", + "raw_bytes": "510600", + "operands": { + "relative_u16": 6, + "relative_signed": 6, + "target_offset": 54 + } + }, + { + "offset": 48, + "absolute_body_offset": 266, + "opcode": 91, + "mnemonic": "line_number", + "raw_bytes": "5b2100", + "operands": { + "line_number": 33 + } + }, + { + "offset": 51, + "absolute_body_offset": 269, + "opcode": 82, + "mnemonic": "jmp", + "raw_bytes": "520901", + "operands": { + "relative_u16": 265, + "relative_signed": 265, + "target_offset": 319 + } + }, + { + "offset": 54, + "absolute_body_offset": 272, + "opcode": 91, + "mnemonic": "line_number", + "raw_bytes": "5b2400", + "operands": { + "line_number": 36 + } + }, + { + "offset": 57, + "absolute_body_offset": 275, + "opcode": 11, + "mnemonic": "push_word_immediate", + "raw_bytes": "0b0010", + "operands": { + "value_u16": 4096 + } + }, + { + "offset": 60, + "absolute_body_offset": 278, + "opcode": 64, + "mnemonic": "push_local_dword", + "raw_bytes": "4006", + "operands": { + "bp_offset": 6, + "target": "[BP+06h]" + } + }, + { + "offset": 62, + "absolute_body_offset": 280, + "opcode": 17, + "mnemonic": "call_class_event", + "raw_bytes": "111e0a2300", + "operands": { + "target_class_id": 2590, + "target_event_slot": 35, + "target_event_name_hint": null + } + }, + { + "offset": 67, + "absolute_body_offset": 285, + "opcode": 110, + "mnemonic": "add_sp", + "raw_bytes": "6efa", + "operands": { + "value_u8": 250 + } + }, + { + "offset": 69, + "absolute_body_offset": 287, + "opcode": 63, + "mnemonic": "push_local_word", + "raw_bytes": "3f0a", + "operands": { + "bp_offset": 10, + "target": "[BP+0Ah]" + } + }, + { + "offset": 71, + "absolute_body_offset": 289, + "opcode": 10, + "mnemonic": "push_byte_immediate", + "raw_bytes": "0a01", + "operands": { + "value_u8": 1, + "value_signed": 1 + } + }, + { + "offset": 73, + "absolute_body_offset": 291, + "opcode": 36, + "mnemonic": "cmp", + "raw_bytes": "24", + "operands": {} + }, + { + "offset": 74, + "absolute_body_offset": 292, + "opcode": 81, + "mnemonic": "jne", + "raw_bytes": "512700", + "operands": { + "relative_u16": 39, + "relative_signed": 39, + "target_offset": 116 + } + }, + { + "offset": 77, + "absolute_body_offset": 295, + "opcode": 91, + "mnemonic": "line_number", + "raw_bytes": "5b2c00", + "operands": { + "line_number": 44 + } + }, + { + "offset": 80, + "absolute_body_offset": 298, + "opcode": 89, + "mnemonic": "push_pid", + "raw_bytes": "59", + "operands": {} + }, + { + "offset": 81, + "absolute_body_offset": 299, + "opcode": 11, + "mnemonic": "push_word_immediate", + "raw_bytes": "0bfd02", + "operands": { + "value_u16": 765 + } + }, + { + "offset": 84, + "absolute_body_offset": 302, + "opcode": 64, + "mnemonic": "push_local_dword", + "raw_bytes": "4006", + "operands": { + "bp_offset": 6, + "target": "[BP+06h]" + } + }, + { + "offset": 86, + "absolute_body_offset": 304, + "opcode": 87, + "mnemonic": "spawn", + "raw_bytes": "57020263032000", + "operands": { + "arg_bytes": 2, + "this_size": 2, + "target_class_id": 867, + "target_event_slot": 32, + "target_event_name_hint": null + } + }, + { + "offset": 93, + "absolute_body_offset": 311, + "opcode": 110, + "mnemonic": "add_sp", + "raw_bytes": "6efe", + "operands": { + "value_u8": 254 + } + }, + { + "offset": 95, + "absolute_body_offset": 313, + "opcode": 94, + "mnemonic": "push_retval_word", + "raw_bytes": "5e", + "operands": {} + }, + { + "offset": 96, + "absolute_body_offset": 314, + "opcode": 84, + "mnemonic": "implies", + "raw_bytes": "540101", + "operands": { + "arg0": 1, + "arg1": 1 + } + }, + { + "offset": 99, + "absolute_body_offset": 317, + "opcode": 18, + "mnemonic": "pop_temp", + "raw_bytes": "12", + "operands": {} + }, + { + "offset": 100, + "absolute_body_offset": 318, + "opcode": 83, + "mnemonic": "suspend", + "raw_bytes": "53", + "operands": {} + }, + { + "offset": 101, + "absolute_body_offset": 319, + "opcode": 92, + "mnemonic": "symbol_info", + "raw_bytes": "5cdb004e5043545249470000", + "operands": { + "symbol_offset": 323, + "symbol": "NPCTRIG", + "trailing_zero": 0 + } + }, + { + "offset": 113, + "absolute_body_offset": 331, + "opcode": 82, + "mnemonic": "jmp", + "raw_bytes": "52bc00", + "operands": { + "relative_u16": 188, + "relative_signed": 188, + "target_offset": 304 + } + }, + { + "offset": 116, + "absolute_body_offset": 334, + "opcode": 63, + "mnemonic": "push_local_word", + "raw_bytes": "3f0a", + "operands": { + "bp_offset": 10, + "target": "[BP+0Ah]" + } + }, + { + "offset": 118, + "absolute_body_offset": 336, + "opcode": 10, + "mnemonic": "push_byte_immediate", + "raw_bytes": "0a02", + "operands": { + "value_u8": 2, + "value_signed": 2 + } + }, + { + "offset": 120, + "absolute_body_offset": 338, + "opcode": 36, + "mnemonic": "cmp", + "raw_bytes": "24", + "operands": {} + }, + { + "offset": 121, + "absolute_body_offset": 339, + "opcode": 81, + "mnemonic": "jne", + "raw_bytes": "512700", + "operands": { + "relative_u16": 39, + "relative_signed": 39, + "target_offset": 163 + } + }, + { + "offset": 124, + "absolute_body_offset": 342, + "opcode": 91, + "mnemonic": "line_number", + "raw_bytes": "5b3100", + "operands": { + "line_number": 49 + } + }, + { + "offset": 127, + "absolute_body_offset": 345, + "opcode": 89, + "mnemonic": "push_pid", + "raw_bytes": "59", + "operands": {} + }, + { + "offset": 128, + "absolute_body_offset": 346, + "opcode": 11, + "mnemonic": "push_word_immediate", + "raw_bytes": "0b8403", + "operands": { + "value_u16": 900 + } + }, + { + "offset": 131, + "absolute_body_offset": 349, + "opcode": 64, + "mnemonic": "push_local_dword", + "raw_bytes": "4006", + "operands": { + "bp_offset": 6, + "target": "[BP+06h]" + } + }, + { + "offset": 133, + "absolute_body_offset": 351, + "opcode": 87, + "mnemonic": "spawn", + "raw_bytes": "57020263032000", + "operands": { + "arg_bytes": 2, + "this_size": 2, + "target_class_id": 867, + "target_event_slot": 32, + "target_event_name_hint": null + } + }, + { + "offset": 140, + "absolute_body_offset": 358, + "opcode": 110, + "mnemonic": "add_sp", + "raw_bytes": "6efe", + "operands": { + "value_u8": 254 + } + }, + { + "offset": 142, + "absolute_body_offset": 360, + "opcode": 94, + "mnemonic": "push_retval_word", + "raw_bytes": "5e", + "operands": {} + }, + { + "offset": 143, + "absolute_body_offset": 361, + "opcode": 84, + "mnemonic": "implies", + "raw_bytes": "540101", + "operands": { + "arg0": 1, + "arg1": 1 + } + }, + { + "offset": 146, + "absolute_body_offset": 364, + "opcode": 18, + "mnemonic": "pop_temp", + "raw_bytes": "12", + "operands": {} + }, + { + "offset": 147, + "absolute_body_offset": 365, + "opcode": 83, + "mnemonic": "suspend", + "raw_bytes": "53", + "operands": {} + }, + { + "offset": 148, + "absolute_body_offset": 366, + "opcode": 92, + "mnemonic": "symbol_info", + "raw_bytes": "5cac004e5043545249470000", + "operands": { + "symbol_offset": 323, + "symbol": "NPCTRIG", + "trailing_zero": 0 + } + }, + { + "offset": 160, + "absolute_body_offset": 378, + "opcode": 82, + "mnemonic": "jmp", + "raw_bytes": "528d00", + "operands": { + "relative_u16": 141, + "relative_signed": 141, + "target_offset": 304 + } + }, + { + "offset": 163, + "absolute_body_offset": 381, + "opcode": 63, + "mnemonic": "push_local_word", + "raw_bytes": "3f0a", + "operands": { + "bp_offset": 10, + "target": "[BP+0Ah]" + } + }, + { + "offset": 165, + "absolute_body_offset": 383, + "opcode": 10, + "mnemonic": "push_byte_immediate", + "raw_bytes": "0a03", + "operands": { + "value_u8": 3, + "value_signed": 3 + } + }, + { + "offset": 167, + "absolute_body_offset": 385, + "opcode": 36, + "mnemonic": "cmp", + "raw_bytes": "24", + "operands": {} + }, + { + "offset": 168, + "absolute_body_offset": 386, + "opcode": 81, + "mnemonic": "jne", + "raw_bytes": "512700", + "operands": { + "relative_u16": 39, + "relative_signed": 39, + "target_offset": 210 + } + }, + { + "offset": 171, + "absolute_body_offset": 389, + "opcode": 91, + "mnemonic": "line_number", + "raw_bytes": "5b3600", + "operands": { + "line_number": 54 + } + }, + { + "offset": 174, + "absolute_body_offset": 392, + "opcode": 89, + "mnemonic": "push_pid", + "raw_bytes": "59", + "operands": {} + }, + { + "offset": 175, + "absolute_body_offset": 393, + "opcode": 11, + "mnemonic": "push_word_immediate", + "raw_bytes": "0b7103", + "operands": { + "value_u16": 881 + } + }, + { + "offset": 178, + "absolute_body_offset": 396, + "opcode": 64, + "mnemonic": "push_local_dword", + "raw_bytes": "4006", + "operands": { + "bp_offset": 6, + "target": "[BP+06h]" + } + }, + { + "offset": 180, + "absolute_body_offset": 398, + "opcode": 87, + "mnemonic": "spawn", + "raw_bytes": "57020263032000", + "operands": { + "arg_bytes": 2, + "this_size": 2, + "target_class_id": 867, + "target_event_slot": 32, + "target_event_name_hint": null + } + }, + { + "offset": 187, + "absolute_body_offset": 405, + "opcode": 110, + "mnemonic": "add_sp", + "raw_bytes": "6efe", + "operands": { + "value_u8": 254 + } + }, + { + "offset": 189, + "absolute_body_offset": 407, + "opcode": 94, + "mnemonic": "push_retval_word", + "raw_bytes": "5e", + "operands": {} + }, + { + "offset": 190, + "absolute_body_offset": 408, + "opcode": 84, + "mnemonic": "implies", + "raw_bytes": "540101", + "operands": { + "arg0": 1, + "arg1": 1 + } + }, + { + "offset": 193, + "absolute_body_offset": 411, + "opcode": 18, + "mnemonic": "pop_temp", + "raw_bytes": "12", + "operands": {} + }, + { + "offset": 194, + "absolute_body_offset": 412, + "opcode": 83, + "mnemonic": "suspend", + "raw_bytes": "53", + "operands": {} + }, + { + "offset": 195, + "absolute_body_offset": 413, + "opcode": 92, + "mnemonic": "symbol_info", + "raw_bytes": "5c7d004e5043545249470000", + "operands": { + "symbol_offset": 323, + "symbol": "NPCTRIG", + "trailing_zero": 0 + } + }, + { + "offset": 207, + "absolute_body_offset": 425, + "opcode": 82, + "mnemonic": "jmp", + "raw_bytes": "525e00", + "operands": { + "relative_u16": 94, + "relative_signed": 94, + "target_offset": 304 + } + }, + { + "offset": 210, + "absolute_body_offset": 428, + "opcode": 63, + "mnemonic": "push_local_word", + "raw_bytes": "3f0a", + "operands": { + "bp_offset": 10, + "target": "[BP+0Ah]" + } + }, + { + "offset": 212, + "absolute_body_offset": 430, + "opcode": 10, + "mnemonic": "push_byte_immediate", + "raw_bytes": "0a04", + "operands": { + "value_u8": 4, + "value_signed": 4 + } + }, + { + "offset": 214, + "absolute_body_offset": 432, + "opcode": 36, + "mnemonic": "cmp", + "raw_bytes": "24", + "operands": {} + }, + { + "offset": 215, + "absolute_body_offset": 433, + "opcode": 81, + "mnemonic": "jne", + "raw_bytes": "512700", + "operands": { + "relative_u16": 39, + "relative_signed": 39, + "target_offset": 257 + } + }, + { + "offset": 218, + "absolute_body_offset": 436, + "opcode": 91, + "mnemonic": "line_number", + "raw_bytes": "5b3b00", + "operands": { + "line_number": 59 + } + }, + { + "offset": 221, + "absolute_body_offset": 439, + "opcode": 89, + "mnemonic": "push_pid", + "raw_bytes": "59", + "operands": {} + }, + { + "offset": 222, + "absolute_body_offset": 440, + "opcode": 11, + "mnemonic": "push_word_immediate", + "raw_bytes": "0bd104", + "operands": { + "value_u16": 1233 + } + }, + { + "offset": 225, + "absolute_body_offset": 443, + "opcode": 64, + "mnemonic": "push_local_dword", + "raw_bytes": "4006", + "operands": { + "bp_offset": 6, + "target": "[BP+06h]" + } + }, + { + "offset": 227, + "absolute_body_offset": 445, + "opcode": 87, + "mnemonic": "spawn", + "raw_bytes": "57020263032000", + "operands": { + "arg_bytes": 2, + "this_size": 2, + "target_class_id": 867, + "target_event_slot": 32, + "target_event_name_hint": null + } + }, + { + "offset": 234, + "absolute_body_offset": 452, + "opcode": 110, + "mnemonic": "add_sp", + "raw_bytes": "6efe", + "operands": { + "value_u8": 254 + } + }, + { + "offset": 236, + "absolute_body_offset": 454, + "opcode": 94, + "mnemonic": "push_retval_word", + "raw_bytes": "5e", + "operands": {} + }, + { + "offset": 237, + "absolute_body_offset": 455, + "opcode": 84, + "mnemonic": "implies", + "raw_bytes": "540101", + "operands": { + "arg0": 1, + "arg1": 1 + } + }, + { + "offset": 240, + "absolute_body_offset": 458, + "opcode": 18, + "mnemonic": "pop_temp", + "raw_bytes": "12", + "operands": {} + }, + { + "offset": 241, + "absolute_body_offset": 459, + "opcode": 83, + "mnemonic": "suspend", + "raw_bytes": "53", + "operands": {} + }, + { + "offset": 242, + "absolute_body_offset": 460, + "opcode": 92, + "mnemonic": "symbol_info", + "raw_bytes": "5c4e004e5043545249470000", + "operands": { + "symbol_offset": 323, + "symbol": "NPCTRIG", + "trailing_zero": 0 + } + }, + { + "offset": 254, + "absolute_body_offset": 472, + "opcode": 82, + "mnemonic": "jmp", + "raw_bytes": "522f00", + "operands": { + "relative_u16": 47, + "relative_signed": 47, + "target_offset": 304 + } + }, + { + "offset": 257, + "absolute_body_offset": 475, + "opcode": 63, + "mnemonic": "push_local_word", + "raw_bytes": "3f0a", + "operands": { + "bp_offset": 10, + "target": "[BP+0Ah]" + } + }, + { + "offset": 259, + "absolute_body_offset": 477, + "opcode": 10, + "mnemonic": "push_byte_immediate", + "raw_bytes": "0a05", + "operands": { + "value_u8": 5, + "value_signed": 5 + } + }, + { + "offset": 261, + "absolute_body_offset": 479, + "opcode": 36, + "mnemonic": "cmp", + "raw_bytes": "24", + "operands": {} + }, + { + "offset": 262, + "absolute_body_offset": 480, + "opcode": 81, + "mnemonic": "jne", + "raw_bytes": "512700", + "operands": { + "relative_u16": 39, + "relative_signed": 39, + "target_offset": 304 + } + }, + { + "offset": 265, + "absolute_body_offset": 483, + "opcode": 91, + "mnemonic": "line_number", + "raw_bytes": "5b4000", + "operands": { + "line_number": 64 + } + }, + { + "offset": 268, + "absolute_body_offset": 486, + "opcode": 89, + "mnemonic": "push_pid", + "raw_bytes": "59", + "operands": {} + }, + { + "offset": 269, + "absolute_body_offset": 487, + "opcode": 11, + "mnemonic": "push_word_immediate", + "raw_bytes": "0bb401", + "operands": { + "value_u16": 436 + } + }, + { + "offset": 272, + "absolute_body_offset": 490, + "opcode": 64, + "mnemonic": "push_local_dword", + "raw_bytes": "4006", + "operands": { + "bp_offset": 6, + "target": "[BP+06h]" + } + }, + { + "offset": 274, + "absolute_body_offset": 492, + "opcode": 87, + "mnemonic": "spawn", + "raw_bytes": "57020263032000", + "operands": { + "arg_bytes": 2, + "this_size": 2, + "target_class_id": 867, + "target_event_slot": 32, + "target_event_name_hint": null + } + }, + { + "offset": 281, + "absolute_body_offset": 499, + "opcode": 110, + "mnemonic": "add_sp", + "raw_bytes": "6efe", + "operands": { + "value_u8": 254 + } + }, + { + "offset": 283, + "absolute_body_offset": 501, + "opcode": 94, + "mnemonic": "push_retval_word", + "raw_bytes": "5e", + "operands": {} + }, + { + "offset": 284, + "absolute_body_offset": 502, + "opcode": 84, + "mnemonic": "implies", + "raw_bytes": "540101", + "operands": { + "arg0": 1, + "arg1": 1 + } + }, + { + "offset": 287, + "absolute_body_offset": 505, + "opcode": 18, + "mnemonic": "pop_temp", + "raw_bytes": "12", + "operands": {} + }, + { + "offset": 288, + "absolute_body_offset": 506, + "opcode": 83, + "mnemonic": "suspend", + "raw_bytes": "53", + "operands": {} + }, + { + "offset": 289, + "absolute_body_offset": 507, + "opcode": 92, + "mnemonic": "symbol_info", + "raw_bytes": "5c1f004e5043545249470000", + "operands": { + "symbol_offset": 323, + "symbol": "NPCTRIG", + "trailing_zero": 0 + } + }, + { + "offset": 301, + "absolute_body_offset": 519, + "opcode": 82, + "mnemonic": "jmp", + "raw_bytes": "520000", + "operands": { + "relative_u16": 0, + "relative_signed": 0, + "target_offset": 304 + } + }, + { + "offset": 304, + "absolute_body_offset": 522, + "opcode": 91, + "mnemonic": "line_number", + "raw_bytes": "5b4500", + "operands": { + "line_number": 69 + } + }, + { + "offset": 307, + "absolute_body_offset": 525, + "opcode": 11, + "mnemonic": "push_word_immediate", + "raw_bytes": "0b0010", + "operands": { + "value_u16": 4096 + } + }, + { + "offset": 310, + "absolute_body_offset": 528, + "opcode": 64, + "mnemonic": "push_local_dword", + "raw_bytes": "4006", + "operands": { + "bp_offset": 6, + "target": "[BP+06h]" + } + }, + { + "offset": 312, + "absolute_body_offset": 530, + "opcode": 17, + "mnemonic": "call_class_event", + "raw_bytes": "111e0a2400", + "operands": { + "target_class_id": 2590, + "target_event_slot": 36, + "target_event_name_hint": null + } + }, + { + "offset": 317, + "absolute_body_offset": 535, + "opcode": 110, + "mnemonic": "add_sp", + "raw_bytes": "6efa", + "operands": { + "value_u8": 250 + } + }, + { + "offset": 319, + "absolute_body_offset": 537, + "opcode": 91, + "mnemonic": "line_number", + "raw_bytes": "5b4700", + "operands": { + "line_number": 71 + } + }, + { + "offset": 322, + "absolute_body_offset": 540, + "opcode": 80, + "mnemonic": "ret", + "raw_bytes": "50", + "operands": {} + } + ], + "debug_symbols": [ + { + "index": 0, + "unknown1": 1, + "type_id": 105, + "type_char": "i", + "bp_offset": 0, + "bp_repr": "[BP+00h]", + "unknown3": 0, + "name": "referent" + }, + { + "index": 1, + "unknown1": 0, + "type_id": 105, + "type_char": "i", + "bp_offset": 10, + "bp_repr": "[BP+0Ah]", + "unknown3": 0, + "name": "event" + }, + { + "index": 2, + "unknown1": 0, + "type_id": 36, + "type_char": "$", + "bp_offset": 254, + "bp_repr": "[BP-02h]", + "unknown3": 2, + "name": "item" + }, + { + "index": 3, + "unknown1": 0, + "type_id": 36, + "type_char": "$", + "bp_offset": 252, + "bp_repr": "[BP-04h]", + "unknown3": 2, + "name": "item2" + }, + { + "index": 4, + "unknown1": 0, + "type_id": 36, + "type_char": "$", + "bp_offset": 250, + "bp_repr": "[BP-06h]", + "unknown3": 2, + "name": "n" + } + ], + "field_tags": [], + "annotation_hints": { + "runtime_family": "slot-backed-owner-loaded-body", + "payload_shape_hint": "word", + "compiled_anchors": [ + { + "address": "000d:46ec", + "role": "context_create_from_slot" + }, + { + "address": "000d:0988", + "role": "referent_chain_mutator" + }, + { + "address": "000d:177c", + "role": "push_frame_word_literal" + }, + { + "address": "000d:1acb", + "role": "compare_stream_dword_and_push_bool" + }, + { + "address": "000d:208b", + "role": "materialize_or_forward_value" + }, + { + "address": "000d:21ed", + "role": "prepend_inline_payload" + }, + { + "address": "000d:22bc", + "role": "matrix_pushback_stage" + }, + { + "address": "000d:2104", + "role": "finalize_to_outptr" + }, + { + "address": "000d:ebe3", + "role": "opcode_sequence_run" + } + ], + "runtime_stage_hints": [ + { + "stage_address": "000d:177c", + "ir_name": "PUSH_FRAME_WORD_LITERAL", + "opcode_or_lane": "same FUN_000d_ebe3 sequencer family", + "payload_shape": "word scalar pushed to stream stack", + "evidence": "000d:177c subtracts 2 from [context+0xcc] and stores frame-local word before entity_vm_opcode_finish" + }, + { + "stage_address": "000d:1acb", + "ir_name": "COMPARE_STREAM_DWORD_AND_PUSH_BOOL", + "opcode_or_lane": "same FUN_000d_ebe3 sequencer family", + "payload_shape": "stream dword pair consumed, predicate word emitted", + "evidence": "000d:1acb reads one 32-bit pair from stream, compares against AX:DX, pushes boolean word result" + }, + { + "stage_address": "000d:21ed", + "ir_name": "PREPEND_INLINE_PAYLOAD", + "opcode_or_lane": "inline payload substage", + "payload_shape": "caller-owned blob copied into context +0x102 buffer", + "evidence": "000d:21ed prepends caller bytes into backward-growing context buffer before metadata-driven follow-on work" + }, + { + "stage_address": "000d:22bc", + "ir_name": "BUILD_ENTITY_LINK_MATRIX", + "opcode_or_lane": "inline payload follow-on stage", + "payload_shape": "two signed metadata bytes plus streamed entity/link ids", + "evidence": "000d:22bc consumes two signed bytes from +0xd6/+0xd8 and streamed words for repeated entity_link calls" + }, + { + "stage_address": "000d:22bc", + "ir_name": "EMIT_OR_PUSHBACK_RESULT", + "opcode_or_lane": "inline payload follow-on stage", + "payload_shape": "stream writeback filter", + "evidence": "000d:23da..2421 pushes back only results without 0x0400 list flag before opcode finish" + }, + { + "stage_address": "000d:2104", + "ir_name": "FINALIZE_MIXED_VALUE_TO_OUTPTR", + "opcode_or_lane": "same FUN_000d_ebe3 sequencer family", + "payload_shape": "mixed immediate/object scalar return", + "evidence": "000d:2104 writes either frame-local dword or object word with high word cleared to caller out-ptr" + } + ], + "slot_taxonomy": { + "slot": 10, + "event_name_hint": "equip" + } + } +} +script NPCTRIG.equip (entry=191, class_id=0x0363, slot=0x0A) +{ + body_range 0x00DA..0x024F + raw_event_word 0x0175 + raw_code_offset 0x00000001 + end_reason debug_symbols_then_end + locals + { + [BP+00h] referent ; type=0x69 ('i') unk1=0x01 unk3=0x00 + [BP+0Ah] event ; type=0x69 ('i') unk1=0x00 unk3=0x00 + [BP-02h] item ; type=0x24 ('$') unk1=0x00 unk3=0x02 + [BP-04h] item2 ; type=0x24 ('$') unk1=0x00 unk3=0x02 + [BP-06h] n ; type=0x24 ('$') unk1=0x00 unk3=0x02 + } + + entry: + init locals 0x06 ; 00DA: 5a06 + symbol_info NPCTRIG -> 0x0143 ; 00DC: 5c3e014e5043545249470000 + push 0x0211 ; 00E8: 0b1102 + push [BP+06h] ; 00EB: 4006 + push_indirect size=0x2 ; 00ED: 4c02 + set_info ; 00EF: 77 + process_exclude ; 00F0: 78 + line 32 ; 00F1: 5b2000 + line 31 ; 00F4: 5b1f00 + push [BP+06h] ; 00F7: 4006 + call intrinsic 0x0004 Item::getStatus(void) args=0x04 ; 00F9: 0f040400 + add_sp value_u8=0xFC ; 00FD: 6efc + push_retval_word ; 00FF: 5e + line 32 ; 0100: 5b2000 + push 0x1000 ; 0103: 0b0010 + bit_and ; 0106: 39 + if pop() != 0 goto block_0110 ; 0107: 510600 + + block_010A: + line 33 ; 010A: 5b2100 + goto block_0219 ; 010D: 520901 + + block_0110: + line 36 ; 0110: 5b2400 + push 0x1000 ; 0113: 0b0010 + push [BP+06h] ; 0116: 4006 + call class 0x0A1E.slot 0x23 ; 0118: 111e0a2300 + add_sp value_u8=0xFA ; 011D: 6efa + push [BP+0Ah] ; 011F: 3f0a + push 0x01 ; signed 1 ; 0121: 0a01 + cmp ; 0123: 24 + if pop() != 0 goto block_014E ; 0124: 512700 + + block_0127: + line 44 ; 0127: 5b2c00 + push_pid ; 012A: 59 + push 0x02FD ; 012B: 0bfd02 + push [BP+06h] ; 012E: 4006 + spawn class 0x0363.slot 0x20 args=0x02 this_size=0x02 ; 0130: 57020263032000 + add_sp value_u8=0xFE ; 0137: 6efe + push_retval_word ; 0139: 5e + implies arg0=0x1 arg1=0x1 ; 013A: 540101 + pop_temp ; 013D: 12 + suspend ; 013E: 53 + symbol_info NPCTRIG -> 0x0143 ; 013F: 5cdb004e5043545249470000 + goto block_020A ; 014B: 52bc00 + + block_014E: + push [BP+0Ah] ; 014E: 3f0a + push 0x02 ; signed 2 ; 0150: 0a02 + cmp ; 0152: 24 + if pop() != 0 goto block_017D ; 0153: 512700 + + block_0156: + line 49 ; 0156: 5b3100 + push_pid ; 0159: 59 + push 0x0384 ; 015A: 0b8403 + push [BP+06h] ; 015D: 4006 + spawn class 0x0363.slot 0x20 args=0x02 this_size=0x02 ; 015F: 57020263032000 + add_sp value_u8=0xFE ; 0166: 6efe + push_retval_word ; 0168: 5e + implies arg0=0x1 arg1=0x1 ; 0169: 540101 + pop_temp ; 016C: 12 + suspend ; 016D: 53 + symbol_info NPCTRIG -> 0x0143 ; 016E: 5cac004e5043545249470000 + goto block_020A ; 017A: 528d00 + + block_017D: + push [BP+0Ah] ; 017D: 3f0a + push 0x03 ; signed 3 ; 017F: 0a03 + cmp ; 0181: 24 + if pop() != 0 goto block_01AC ; 0182: 512700 + + block_0185: + line 54 ; 0185: 5b3600 + push_pid ; 0188: 59 + push 0x0371 ; 0189: 0b7103 + push [BP+06h] ; 018C: 4006 + spawn class 0x0363.slot 0x20 args=0x02 this_size=0x02 ; 018E: 57020263032000 + add_sp value_u8=0xFE ; 0195: 6efe + push_retval_word ; 0197: 5e + implies arg0=0x1 arg1=0x1 ; 0198: 540101 + pop_temp ; 019B: 12 + suspend ; 019C: 53 + symbol_info NPCTRIG -> 0x0143 ; 019D: 5c7d004e5043545249470000 + goto block_020A ; 01A9: 525e00 + + block_01AC: + push [BP+0Ah] ; 01AC: 3f0a + push 0x04 ; signed 4 ; 01AE: 0a04 + cmp ; 01B0: 24 + if pop() != 0 goto block_01DB ; 01B1: 512700 + + block_01B4: + line 59 ; 01B4: 5b3b00 + push_pid ; 01B7: 59 + push 0x04D1 ; 01B8: 0bd104 + push [BP+06h] ; 01BB: 4006 + spawn class 0x0363.slot 0x20 args=0x02 this_size=0x02 ; 01BD: 57020263032000 + add_sp value_u8=0xFE ; 01C4: 6efe + push_retval_word ; 01C6: 5e + implies arg0=0x1 arg1=0x1 ; 01C7: 540101 + pop_temp ; 01CA: 12 + suspend ; 01CB: 53 + symbol_info NPCTRIG -> 0x0143 ; 01CC: 5c4e004e5043545249470000 + goto block_020A ; 01D8: 522f00 + + block_01DB: + push [BP+0Ah] ; 01DB: 3f0a + push 0x05 ; signed 5 ; 01DD: 0a05 + cmp ; 01DF: 24 + if pop() != 0 goto block_020A ; 01E0: 512700 + + block_01E3: + line 64 ; 01E3: 5b4000 + push_pid ; 01E6: 59 + push 0x01B4 ; 01E7: 0bb401 + push [BP+06h] ; 01EA: 4006 + spawn class 0x0363.slot 0x20 args=0x02 this_size=0x02 ; 01EC: 57020263032000 + add_sp value_u8=0xFE ; 01F3: 6efe + push_retval_word ; 01F5: 5e + implies arg0=0x1 arg1=0x1 ; 01F6: 540101 + pop_temp ; 01F9: 12 + suspend ; 01FA: 53 + symbol_info NPCTRIG -> 0x0143 ; 01FB: 5c1f004e5043545249470000 + goto block_020A ; 0207: 520000 + + block_020A: + line 69 ; 020A: 5b4500 + push 0x1000 ; 020D: 0b0010 + push [BP+06h] ; 0210: 4006 + call class 0x0A1E.slot 0x24 ; 0212: 111e0a2400 + add_sp value_u8=0xFA ; 0217: 6efa + + block_0219: + line 71 ; 0219: 5b4700 + return ; 021C: 50 + +} + diff --git a/out_NPCTRIG_0A.txt b/out_NPCTRIG_0A.txt deleted file mode 100644 index 6f73316..0000000 --- a/out_NPCTRIG_0A.txt +++ /dev/null @@ -1,117 +0,0 @@ -Class NPCTRIG entry=191 class_id=0x363 -Slot 0x0A hint=equip body=0x00DA..0x024F -End reason: unknown_opcode ops=111 sha1=98524ea452eae2723f4b27e630c33a920c16def7 - -00DA: 5A init local_bytes=0x6 raw=5a06 -00DC: 5C symbol_info symbol_offset=0x143 symbol=NPCTRIG trailing_zero=0x0 raw=5c3e014e5043545249470000 -00E8: 0B push_word_immediate value_u16=0x211 raw=0b1102 -00EB: 40 push_local_dword bp_offset=0x6 target=[BP+06h] raw=4006 -00ED: 4C push_indirect size=0x2 raw=4c02 -00EF: 77 set_info raw=77 -00F0: 78 process_exclude raw=78 -00F1: 5B line_number line_number=0x20 raw=5b2000 -00F4: 5B line_number line_number=0x1F raw=5b1f00 -00F7: 40 push_local_dword bp_offset=0x6 target=[BP+06h] raw=4006 -00F9: 0F call_intrinsic arg_bytes=0x4 intrinsic_ordinal=0x4 intrinsic_name_hint=Item::getStatus(void) raw=0f040400 -00FD: 6E add_sp value_u8=0xFC raw=6efc -00FF: 5E push_retval_word raw=5e -0100: 5B line_number line_number=0x20 raw=5b2000 -0103: 0B push_word_immediate value_u16=0x1000 raw=0b0010 -0106: 39 bit_and raw=39 -0107: 51 jne relative_u16=0x6 relative_signed=0x6 target_offset=0x36 raw=510600 -010A: 5B line_number line_number=0x21 raw=5b2100 -010D: 52 jmp relative_u16=0x109 relative_signed=0x109 target_offset=0x13F raw=520901 -0110: 5B line_number line_number=0x24 raw=5b2400 -0113: 0B push_word_immediate value_u16=0x1000 raw=0b0010 -0116: 40 push_local_dword bp_offset=0x6 target=[BP+06h] raw=4006 -0118: 11 call_class_event target_class_id=0xA1E target_event_slot=0x23 target_event_name_hint=None raw=111e0a2300 -011D: 6E add_sp value_u8=0xFA raw=6efa -011F: 3F push_local_word bp_offset=0xA target=[BP+0Ah] raw=3f0a -0121: 0A push_byte_immediate value_u8=0x1 value_signed=0x1 raw=0a01 -0123: 24 cmp raw=24 -0124: 51 jne relative_u16=0x27 relative_signed=0x27 target_offset=0x74 raw=512700 -0127: 5B line_number line_number=0x2C raw=5b2c00 -012A: 59 push_pid raw=59 -012B: 0B push_word_immediate value_u16=0x2FD raw=0bfd02 -012E: 40 push_local_dword bp_offset=0x6 target=[BP+06h] raw=4006 -0130: 57 spawn arg_bytes=0x2 this_size=0x2 target_class_id=0x363 target_event_slot=0x20 target_event_name_hint=None raw=57020263032000 -0137: 6E add_sp value_u8=0xFE raw=6efe -0139: 5E push_retval_word raw=5e -013A: 54 implies arg0=0x1 arg1=0x1 raw=540101 -013D: 12 pop_temp raw=12 -013E: 53 suspend raw=53 -013F: 5C symbol_info symbol_offset=0x143 symbol=NPCTRIG trailing_zero=0x0 raw=5cdb004e5043545249470000 -014B: 52 jmp relative_u16=0xBC relative_signed=0xBC target_offset=0x130 raw=52bc00 -014E: 3F push_local_word bp_offset=0xA target=[BP+0Ah] raw=3f0a -0150: 0A push_byte_immediate value_u8=0x2 value_signed=0x2 raw=0a02 -0152: 24 cmp raw=24 -0153: 51 jne relative_u16=0x27 relative_signed=0x27 target_offset=0xA3 raw=512700 -0156: 5B line_number line_number=0x31 raw=5b3100 -0159: 59 push_pid raw=59 -015A: 0B push_word_immediate value_u16=0x384 raw=0b8403 -015D: 40 push_local_dword bp_offset=0x6 target=[BP+06h] raw=4006 -015F: 57 spawn arg_bytes=0x2 this_size=0x2 target_class_id=0x363 target_event_slot=0x20 target_event_name_hint=None raw=57020263032000 -0166: 6E add_sp value_u8=0xFE raw=6efe -0168: 5E push_retval_word raw=5e -0169: 54 implies arg0=0x1 arg1=0x1 raw=540101 -016C: 12 pop_temp raw=12 -016D: 53 suspend raw=53 -016E: 5C symbol_info symbol_offset=0x143 symbol=NPCTRIG trailing_zero=0x0 raw=5cac004e5043545249470000 -017A: 52 jmp relative_u16=0x8D relative_signed=0x8D target_offset=0x130 raw=528d00 -017D: 3F push_local_word bp_offset=0xA target=[BP+0Ah] raw=3f0a -017F: 0A push_byte_immediate value_u8=0x3 value_signed=0x3 raw=0a03 -0181: 24 cmp raw=24 -0182: 51 jne relative_u16=0x27 relative_signed=0x27 target_offset=0xD2 raw=512700 -0185: 5B line_number line_number=0x36 raw=5b3600 -0188: 59 push_pid raw=59 -0189: 0B push_word_immediate value_u16=0x371 raw=0b7103 -018C: 40 push_local_dword bp_offset=0x6 target=[BP+06h] raw=4006 -018E: 57 spawn arg_bytes=0x2 this_size=0x2 target_class_id=0x363 target_event_slot=0x20 target_event_name_hint=None raw=57020263032000 -0195: 6E add_sp value_u8=0xFE raw=6efe -0197: 5E push_retval_word raw=5e -0198: 54 implies arg0=0x1 arg1=0x1 raw=540101 -019B: 12 pop_temp raw=12 -019C: 53 suspend raw=53 -019D: 5C symbol_info symbol_offset=0x143 symbol=NPCTRIG trailing_zero=0x0 raw=5c7d004e5043545249470000 -01A9: 52 jmp relative_u16=0x5E relative_signed=0x5E target_offset=0x130 raw=525e00 -01AC: 3F push_local_word bp_offset=0xA target=[BP+0Ah] raw=3f0a -01AE: 0A push_byte_immediate value_u8=0x4 value_signed=0x4 raw=0a04 -01B0: 24 cmp raw=24 -01B1: 51 jne relative_u16=0x27 relative_signed=0x27 target_offset=0x101 raw=512700 -01B4: 5B line_number line_number=0x3B raw=5b3b00 -01B7: 59 push_pid raw=59 -01B8: 0B push_word_immediate value_u16=0x4D1 raw=0bd104 -01BB: 40 push_local_dword bp_offset=0x6 target=[BP+06h] raw=4006 -01BD: 57 spawn arg_bytes=0x2 this_size=0x2 target_class_id=0x363 target_event_slot=0x20 target_event_name_hint=None raw=57020263032000 -01C4: 6E add_sp value_u8=0xFE raw=6efe -01C6: 5E push_retval_word raw=5e -01C7: 54 implies arg0=0x1 arg1=0x1 raw=540101 -01CA: 12 pop_temp raw=12 -01CB: 53 suspend raw=53 -01CC: 5C symbol_info symbol_offset=0x143 symbol=NPCTRIG trailing_zero=0x0 raw=5c4e004e5043545249470000 -01D8: 52 jmp relative_u16=0x2F relative_signed=0x2F target_offset=0x130 raw=522f00 -01DB: 3F push_local_word bp_offset=0xA target=[BP+0Ah] raw=3f0a -01DD: 0A push_byte_immediate value_u8=0x5 value_signed=0x5 raw=0a05 -01DF: 24 cmp raw=24 -01E0: 51 jne relative_u16=0x27 relative_signed=0x27 target_offset=0x130 raw=512700 -01E3: 5B line_number line_number=0x40 raw=5b4000 -01E6: 59 push_pid raw=59 -01E7: 0B push_word_immediate value_u16=0x1B4 raw=0bb401 -01EA: 40 push_local_dword bp_offset=0x6 target=[BP+06h] raw=4006 -01EC: 57 spawn arg_bytes=0x2 this_size=0x2 target_class_id=0x363 target_event_slot=0x20 target_event_name_hint=None raw=57020263032000 -01F3: 6E add_sp value_u8=0xFE raw=6efe -01F5: 5E push_retval_word raw=5e -01F6: 54 implies arg0=0x1 arg1=0x1 raw=540101 -01F9: 12 pop_temp raw=12 -01FA: 53 suspend raw=53 -01FB: 5C symbol_info symbol_offset=0x143 symbol=NPCTRIG trailing_zero=0x0 raw=5c1f004e5043545249470000 -0207: 52 jmp relative_u16=0x0 relative_signed=0x0 target_offset=0x130 raw=520000 -020A: 5B line_number line_number=0x45 raw=5b4500 -020D: 0B push_word_immediate value_u16=0x1000 raw=0b0010 -0210: 40 push_local_dword bp_offset=0x6 target=[BP+06h] raw=4006 -0212: 11 call_class_event target_class_id=0xA1E target_event_slot=0x24 target_event_name_hint=None raw=111e0a2400 -0217: 6E add_sp value_u8=0xFA raw=6efa -0219: 5B line_number line_number=0x47 raw=5b4700 -021C: 50 ret raw=50 - -unknown_trailing_bytes=05016900007265666572656e740000690a006576656e74000024fe026974656d000024fc026974656d32000024fa026e007a diff --git a/plan-mid.md b/plan-mid.md index 570e209..fef165a 100644 --- a/plan-mid.md +++ b/plan-mid.md @@ -15,8 +15,8 @@ Detailed completed analysis belongs in the files under `docs/`, not in this plan ## Progress Snapshot -- Overall useful decompilation progress: about 49% -- Reasonable uncertainty band: about 44% to 52% +- Overall useful decompilation progress: about 50% +- Reasonable uncertainty band: about 45% to 52% - Top 100 far-call target coverage: about 80% - Segment spread with meaningful analysis: about 26% to 32% - Tooling maturity for continued work: about 77% @@ -26,6 +26,7 @@ Detailed completed analysis belongs in the files under `docs/`, not in this plan - Recent work materially improved semantic confidence inside the startup/display, cache/allocator, callback-object, and USECODE/VM lanes. - The startup/display lane is now materially complete as an active major section: the shared `g_active_dispatch_entry_farptr[+0x40]` hold token is separated from the seg108-local `0x4f38` bit-`0x40` lane, the seg126 control stream is confirmed as file-backed, the paired `0x8c5c/0x8c60` renderer objects are narrowed to two script-selected preset text lanes, and the neighboring seg127 fade controller now has an exact local contract at `0x630a..0x6316`. - The current VM/loader batch also justified a small bump: `000d:ebe3` is now a named ordered opcode sequencer with a tighter entry/exit contract, the masked-create hub at `000d:463a` is now a verified owner-table gate rather than an inferred wrapper sink, and the seg070 twin loops under `entity_vm_runtime_owner_resource_create` now read as paired file-family loaders writing into separate temporary buffers rather than one ambiguous callback shard. +- The latest live-NE caller-family batch justified another small confidence bump: the remaining direct `0005:295f -> 10a0:275f` callers now close to `Item_ReceiveHit` and `SuperSprite_HitAndFinish` non-NPC damage lanes, which removes the last direct-caller ambiguity in that selector-consumer island even though the upstream class-family selector is still unresolved. - The latest USECODE pass justified another small VM-lane bump: the gameplay-side wrapper ladder now extends through slots `0x10..0x14` with verified mixed payload shapes (`none` vs extra signed word), the new slot-only Ghidra names keep that taxonomy visible without overpromoting event labels, and the `000d:22bc` stage is now comment-backed as a sequencer-internal link-matrix/pushback consumer over decoded workspace bytes rather than a direct descriptor-row reader. - The immortality follow-up justified another small tooling-and-confidence bump: the extractor now emits a dedicated target-body scan, the strongest current USECODE candidates show no inline `0x410` / `0x00000410` literal, and the remaining frontier is narrowed to data-driven decoding of `EVENT` slot `0x0a` plus `NPCTRIG` slots `0x0a` / `0x20` rather than the older wider trigger family set. - The latest owner-loaded range pass justified another small confidence bump too: the owner-resource child selector now matches extracted `class_id + 2` exactly, the class header/subentry math at `000d:5066/51fd/53b4` is closed against the extractor's raw headers and event rows, and the surviving immortality uncertainty has moved from `can the loader fit NPCTRIG arithmetic at all?` to the narrower `which class family is actually selected upstream?` question. @@ -50,6 +51,9 @@ Detailed completed analysis belongs in the files under `docs/`, not in this plan - The auxiliary local disassembly corpus at `K:/ghidra/crusader-disasm` is now inventoried and integrated as a separate evidence source for shape metadata, static map/object dumps, opcode names, and older Remorse/Regret intrinsic-function vocabularies; its safe-reuse rules and porting implications are captured in `docs/crusader-disasm-reference.md`. - The USECODE/VM owner/resource/runtime lane now has a workable partial model, a named sequencer entry, paired external file-family loader evidence, and supporting extraction/reporting tooling. - The USECODE/VM tooling lane now also has a concrete near-term implementation path: a Pentagram-derived proof-of-concept parser can reuse opcode decoding while swapping in the locally verified owner-loaded class and slot arithmetic, with a hybrid Ghidra comment/bookmark import path instead of a premature custom processor module. +- The USECODE tooling lane now also has a first full readable corpus export: `tools/export_usecode_pseudocode.py` writes `977` current pseudocode bodies into `USECODE/EUSECODE_extracted/pseudocode`, and the first focused read of that corpus now shows `JELYHACK::use` / `JELYH2::use` as tiny shared `set_info(0x0207) -> process_exclude -> return` stubs rather than hidden active event cores. +- The USECODE tooling lane now also has two new follow-up notes grounded in the exported corpus: `docs/usecode-tool-improvement-plan.md` turns the Pentagram/`crusader-disasm` comparison into a concrete parser roadmap, and `docs/usecode-alarmhat-analysis.md` records the current best evidence-backed read of `ALARMHAT::equip` as a frame-driven local alarm-state controller that equips nearby `shape 0x04D0` helper objects in different modes. +- The USECODE tooling lane now also has a broader equipment-event note: `docs/usecode-equipment-system.md` records live binary proof that `Item_Equip` / `Item_Unequip` are real generic usecode event dispatchers gated by owner-row capability masks (`0x400` / `0x800`), and that the exported corpus currently contains `77` `equip` bodies plus `50` `unequip` bodies spread across actor, turret, alarm, conveyor, camera, and hazard classes. Current best read is `surviving Ultima-style event vocabulary generalized into activation/setup/state-change semantics`, not yet `fully proven paper-doll RPG gear subsystem`. - The USECODE/VM lane now also has a verified generic masked-context creation hub (`000d:463a`) plus two concrete sequencer-internal consumer blocks (`000d:208b`, `000d:21ed`) built directly on `entity_vm_context_create_from_slot_index`. - The USECODE/VM lane now also has first caller-role evidence outside the older seg021 wrapper island: the new seg004 callers keep masks `0x8000:0x0007` and `0x2000:0x0015` in gameplay-side materialization lanes, while the newly named seg006 helpers now separate one extra-word masked lane with a real local class-state transition fallback (`0x0008:0x0030`) from a guarded `0x0010:0x0008` materializer that simply returns `0` on miss after readiness checks. - The USECODE/VM lane now also has a wider verified higher-slot wrapper ladder: the `0005` island reaches slot ordinals `0x10..0x14`, slot `0x12` is a zero-extra-word lane, slots `0x11/0x13/0x14` carry extra-word payloads, and the current safest read is `slot-stable payload-shape taxonomy` rather than direct event-name promotion. @@ -74,7 +78,11 @@ Detailed completed analysis belongs in the files under `docs/`, not in this plan - The first focused NE `CRUSADER.EXE` hole-filling pass tightens that same wall one step further without breaking it. In the live NE session, `0005:295f` is now confirmed as the only recovered non-hub consumer of `entity_vm_slot_index_from_entity`, and its only currently recovered callers are `0006:43c3`, `0006:c5f0`, and `0007:3584`. That gives the selector lane three concrete gameplay-side caller families to classify next, while `0005:2c35` remains outward-xref-dark and therefore still does not prove a class-family choice by itself. - The next focused NE pass closes the first of those caller families structurally. Repaired wrapper `0006:4379` is now a verified seg031 dispatch-entry subtype gate over objects created by `0006:42d9` with event type `0x236`, source type `8`, subtype/tag at `+0x3c`, payload/source far pointer at `+0x32`, and aux words at `+0x36/+0x38`. Within that family, subtype `0x20c` at `0006:43c3` routes into `0005:295f`, while sibling subtype `0x20b` at `0006:43e5` routes into `0005:2918` using the same aux pair. That localizes the owner-row bit-`0x0040` consumer to one subtype-tagged dispatch-entry family, but still does not identify the upstream owner-loaded class family. - The first doc-to-live-NE integration batch is now applied in the open `CRUSADER.EXE` database too. Comment-backed anchors landed on the live selector/core pair `1420:0dc5` / `1420:0e3a`, the consumer pair `10a0:2718` / `10a0:275f`, and the first closed caller-family runner `10f0:02d9` / `10f0:0379`, with branch comments at `10f0:03c3` and `10f0:03e5` preserving the verified `0x20c -> 10a0:275f` and `0x20b -> 10a0:2718` split. This improves the live NE handoff without justifying a headline progress-estimate change yet. -- The compiled cheat/control lane is now split more cleanly. `cheat_code_check` (`0007:0d0a`) is still the sole hidden cheat-sequence matcher (5-byte table via `DS:0x2833`, index `DS:0x283d`), and it toggles `DS:0x844` (`cheats_enabled`) plus mirror `DS:0x6045`, then emits event `0x103`. The matcher bytes themselves are now rechecked in the live NE image as scan codes `24 1e 1f 1f 17 2e 1e 02 07` = `j a s s i c a 1 6`, with the trailing digits specifically using top-row scan codes `0x02` / `0x07`. Live data-use recovery also tightens the latch story: `0x6045` is written only by `Key_CheckCheatToggle` (`1130:2b72`) and the event-`0x7e` runtime toggle at `13e8:203d`. The live NE F10 proof is stronger than the earlier folklore-level read: inside `Key_HandleOptionKeys` (`1130:0896`), the F10 cheat branch first checks `DAT_1478_085f`, then `0x6045`, then reaches `1130:0afd` and calls helper `11c8:01a8`; the `11c8:018a` helper call in the same function appears later at `1130:0cad`, in a different branch. The helper identity is now closed from the code too: `KeyboardGetExtendedShiftStates` (`11d0:39e6`) uses BIOS `INT 16h, AH=12h`, whose AH bits are `0=left Ctrl`, `1=left Alt`, `2=right Ctrl`, `3=right Alt`, so `11c8:01a8` testing `0x0100|0x0400` is really `KeyEvent_IsCtrlDown`, and `11c8:018a` testing `0x0200|0x0800` is really `KeyEvent_IsAltDown`. Upstream keyboard-path recovery also closes the practical behavior too: the held-key repeat builder at `11b8:0129..022b` samples BIOS extended-shift state through `11d0:39e6`, stores the current `31a4` modifier snapshot into each repeated `KeyEvent`, and queues that event through `11d0:3533`, so holding `F10` first and then pressing physical `Ctrl` lets later repeated F10 events reach the immortality branch with refreshed modifier bits. The same repeated F10 event synthesis plus missing debounce explains the multi-modal on/off spam. The F10 immortality sub-branch also only runs for a live current NPC (`NPC_IsDead` gate at `10e8:1fed`). `DAT_1478_085f` is now tighter too: it is set during `Game_Start` (`1020:0127`), cleared at the end of `ComputerGump_CreateGump` (`1398:01f5`), and restored by `ComputerGump_CloseAndResumeGameplay` (`1398:0212`) during the paired computer-gump teardown path before falling into generic gump cleanup. Current safest read is a broader gameplay-input / option-key-active state rather than any cheat-state bit. Separately, event `0x410` at `000c:9703` does **not** toggle immortality; it boolean-toggles `DS:0x604f` / `g_cdTransferDisplayActive` and posts the `CD TRANSFER DISPLAY ACTIVE/INACTIVE` notifications under the broader `0x844` gate, which matches both the user's runtime observation and the old `crusader-disasm` note `CTRL-Q = 0x410`. The older `DS:0x6050` lane at `immortality_activate` (`000c:8231`) remains a separate secondary entity/process path. The old seg109 "cheat menu" label is now narrowed further: in the live NE database, `000b:9a86`, `000b:9c0d`, `000b:b3b1`, `000b:b62c`, `000b:15ac`, `000b:0b52`, `000b:0b06`, and `000b:2882` now read more defensibly as `usecode_debugger_*` helpers, with menu labels like `Open Unit`, `View File`, `Watch`, `Inspect`, `Find`, and `Break to TDP`. Current best read is a hidden usecode debugger / unit inspector, not a retail scrollable cheat list. This also tightens the `-laurie` split: `-laurie` enables `0x844`-gated event cheats and debugger-side paths, but not the low-level `0x6045` keyboard latch, which matches the observed `F`-overlay-on / `F10`-refill-off behavior. Renamed in this area: `FUN_000c_8231` -> `immortality_activate`, `FUN_000c_834a` -> `immortality_conditional_activate`, `FUN_000c_8486` -> `immortality_activate_and_reset`, `FUN_000c_743f` -> `immortality_entity_process_create`, `FUN_000b_9a86` -> `usecode_debugger_open_for_current_unit`, `FUN_000b_9c0d` -> `usecode_debugger_open_modal`, `FUN_000b_b3b1` -> `usecode_debugger_gump_create`, `FUN_000b_b62c` -> `usecode_debugger_handle_event`, `FUN_000b_15ac` -> `usecode_debugger_load_unit_file`, `FUN_000b_0b52` -> `usecode_debugger_center_on_line`, `FUN_000b_0b06` -> `usecode_debugger_set_line_selection`, `FUN_000b_2882` -> `usecode_debugger_build_menubar`, `FUN_1398_0212` -> `ComputerGump_CloseAndResumeGameplay`. +- The next live-NE caller-family pass closes the remaining direct `0005:295f` callers too. Old `0006:c5f0` now lands at `1128:0ff0` inside `Item_ReceiveHit`, where the non-NPC damage path probes `Item_GetDamaged` with hitter sentinel `0x4000`, packed `(damagetype << 8) | damage_lo`, and a local flag-out byte; old `0007:3584` now lands at `1138:1384` inside `SuperSprite_HitAndFinish`, where the non-NPC collision lane probes the same helper with packed `(firetype << 8) | damage` before optionally falling through to local `Item_ReceiveHit` knockback logic. Live comments now anchor both sites, so the selector frontier has moved upstream again to an earlier subtype/class-family producer rather than another direct caller search. +- The compiled cheat/control lane is now split more cleanly. `cheat_code_check` (`0007:0d0a`) is still the sole hidden cheat-sequence matcher (5-byte table via `DS:0x2833`, index `DS:0x283d`), and it toggles `DS:0x844` (`cheats_enabled`) plus mirror `DS:0x6045`, then emits event `0x103`. The matcher bytes themselves are now rechecked in the live NE image as scan codes `24 1e 1f 1f 17 2e 1e 02 07` = `j a s s i c a 1 6`, with the trailing digits specifically using top-row scan codes `0x02` / `0x07`. Live data-use recovery also tightens the latch story: `0x6045` is written only by `Key_CheckCheatToggle` (`1130:2b72`) and the event-`0x7e` runtime toggle at `13e8:203d`. The live NE F10 proof is stronger than the earlier folklore-level read: inside `Key_HandleOptionKeys` (`1130:0896`), the F10 cheat branch first checks `DAT_1478_085f`, then `0x6045`, then reaches `1130:0afd` and calls helper `11c8:01a8`; the `11c8:018a` helper call in the same function appears later at `1130:0cad`, in a different branch. The helper identity is now closed from the code too: `KeyboardGetExtendedShiftStates` (`11d0:39e6`) uses BIOS `INT 16h, AH=12h`, whose AH bits are `0=left Ctrl`, `1=left Alt`, `2=right Ctrl`, `3=right Alt`, so `11c8:01a8` testing `0x0100|0x0400` is really `KeyEvent_IsCtrlDown`, and `11c8:018a` testing `0x0200|0x0800` is really `KeyEvent_IsAltDown`. Upstream keyboard-path recovery also closes the practical behavior too: the held-key repeat builder at `11b8:0129..022b` samples BIOS extended-shift state through `11d0:39e6`, stores the current `31a4` modifier snapshot into each repeated `KeyEvent`, and queues that event through `11d0:3533`, so holding `F10` first and then pressing physical `Ctrl` lets later repeated F10 events reach the immortality branch with refreshed modifier bits. The same repeated F10 event synthesis plus missing debounce explains the multi-modal on/off spam. The F10 immortality sub-branch also only runs for a live current NPC (`NPC_IsDead` gate at `10e8:1fed`). `DAT_1478_085f` is now tighter too: it is set during `Game_Start` (`1020:0127`), cleared at the end of `ComputerGump_CreateGump` (`1398:01f5`), and restored by `ComputerGump_CloseAndResumeGameplay` (`1398:0212`) during the paired computer-gump teardown path before falling into generic gump cleanup. Current safest read is a broader gameplay-input / option-key-active state rather than any cheat-state bit. Separately, event `0x410` at `000c:9703` does **not** toggle immortality; it boolean-toggles `DS:0x604f` / `g_cdTransferDisplayActive` and posts the `CD TRANSFER DISPLAY ACTIVE/INACTIVE` notifications under the broader `0x844` gate, which matches both the user's runtime observation and the old `crusader-disasm` note `CTRL-Q = 0x410`. The older `DS:0x6050` lane at `immortality_activate` (`000c:8231`) remains a separate secondary entity/process path. The older seg109 hidden-menu label is now narrowed further: in the live NE database, `000b:9a86`, `000b:9c0d`, `000b:b3b1`, `000b:b62c`, `000b:15ac`, `000b:0b52`, `000b:0b06`, and `000b:2882` now read more defensibly as `usecode_debugger_*` helpers, with menu labels like `Open Unit`, `View File`, `Watch`, `Inspect`, `Find`, and `Break to TDP`. Current best read is a hidden usecode debugger / unit inspector, not a retail scrollable cheat list. This also tightens the `-laurie` split: `-laurie` enables `0x844`-gated event cheats and debugger-side paths, but not the low-level `0x6045` keyboard latch, which matches the observed `F`-overlay-on / `F10`-refill-off behavior. Renamed in this area: `FUN_000c_8231` -> `immortality_activate`, `FUN_000c_834a` -> `immortality_conditional_activate`, `FUN_000c_8486` -> `immortality_activate_and_reset`, `FUN_000c_743f` -> `immortality_entity_process_create`, `FUN_000b_9a86` -> `usecode_debugger_open_for_current_unit`, `FUN_000b_9c0d` -> `usecode_debugger_open_modal`, `FUN_000b_b3b1` -> `usecode_debugger_gump_create`, `FUN_000b_b62c` -> `usecode_debugger_handle_event`, `FUN_000b_15ac` -> `usecode_debugger_load_unit_file`, `FUN_000b_0b52` -> `usecode_debugger_center_on_line`, `FUN_000b_0b06` -> `usecode_debugger_set_line_selection`, `FUN_000b_2882` -> `usecode_debugger_build_menubar`, `FUN_1398_0212` -> `ComputerGump_CloseAndResumeGameplay`. +- The same cheat/control lane is now a little cleaner at the user-facing hotkey level too. A focused live NE pass closed three folklore items: `~` is a real runtime cheat-latch toggle at `13e8:203d` under the broader `0x844` gate; the online `Ctrl+C = show current location` claim is wrong for this build and is really `Ctrl+L`, whose popup branch formats `1478:610c` at `13e8:255e`; and the missing third overlay is not bogus after all, because a separate `Ctrl+F7` branch at `13e8:1a20` toggles `1478:0ee0` while the other two F7-family toggles write `1478:2bc9` and `1478:2bca`. +- The follow-up pass closes the `~` versus `jassica16` confusion more tightly too. `jassica16` is the earlier raw scan-code matcher that toggles both `1478:0844` and `1478:6045`, sets `1478:8c52`, and can therefore bootstrap the whole cheat state from cold; `~` is only the later translated logical-`0x7e` branch, so Shift is the expected normal gesture on a US layout and that hotkey can only flip `1478:6045` after `1478:0844` is already enabled. The same pass also improves the third-overlay classification: `Ctrl+F7` is not a third generic camera grid but an `EggHatcherProcess` trigger-range overlay, which can legitimately appear blank on maps without eligible live egg/hatcher processes. +- The next cheat/overlay refinement pass is now folded back into the docs too. `docs/ne-segment1.md` now has a consolidated live-NE cheat/debug key matrix, the practical `-laurie` plus `Shift+~` bootstrap recipe for full keyboard cheats, and a fuller egg-hatcher note grounded in `EggHatcher_CreateProcess` / `EggHatcherProcess_Run`: non-monster egg families are enter/leave trigger items with X/Y/Z range checks, while `Ctrl+F7` visualizes the live egg-hatcher ranges and `Alt+F7` visualizes the related snap-process egg list. - The `0x85f` reader side is now clearer too. The live NE database now names the paired `13e8` transition wrappers as `Game_DisableGameplayInputAndRefreshCamera` (`13e8:0e7d`) and `Game_RestoreGameplayInputAndClearModalState` (`13e8:0ef9`), which matches their concrete behavior: `13e8:0e7d` clears the controller/key-input latch `1478:27cb`, raises the modal overlay-suppression state at `1478:2c64` / `1478:8c53`, preserves `1478:8c54` from `1478:2d24`, and refreshes camera state; `13e8:0ef9` performs the inverse restore path and clears the secondary `1478:6050` latch. The Laurie-only wrapper side is clearer as well: `Game_ShowLaurieHintComputerGump` (`13e8:0e31`) is the hidden `-laurie` computer-gump hint path, while `Game_ShowLaurieHintIfGameplayInputActive` (`13e8:0f4a`) only calls it when `0x85f` is high. The main camera pass consuming the same gate is now `Camera_RedrawViewportAndGameplayOverlays` (`1180:19c1`), with comment-backed `1188:010f` / `1188:0394` overlay helpers bracketing the viewport redraw. - The next blocker layer is narrower too. Those modal wrappers are not abstract helpers; inside `World_HandleKeyboardInput_13e8_14b4` they already wrap concrete user-facing lanes including exit-to-DOS confirmation (`0x22d`), quick save (`0x13f`), quick load (`0x13e`), restart/main-menu handling (`Game_RestartMaybe`), and the neighboring load/menu gump lanes. Separately, event `0x7e` remains the only other recovered writer of `0x6045` besides `Key_CheckCheatToggle`, so a successful `jassica16` match can still be undone later by that independent runtime path. `Key_CheckCheatToggle` itself is now comment-backed as keydown-only and still requires top-row `1` / `6` scan codes at the tail, leaving keypad digits and other non-matching input routes as a still-live explanation for failed tests. - Cross-game verification against the currently opened `REGRET.EXE` now has a runtime correction too. The F10 branch at `1148:0d0e` still reaches the same modifier helper at `11e0:01a8`, and live testing shows the practical gesture is hold `F10` first and then press `Ctrl`, not `Alt`. The same BIOS-backed helper swap should be verified directly in that target before promoting renames there. The same runtime test also explains the repeated immortality popups: the F10 branch is not debounced, so holding the keys lets repeated F10 keydown events flip immortality on and off multiple times. The real gameplay difference remains the latch code: `1148:34d2` (`Key_CheckSecretCodeSequences`) still contains a `jassica16` table at `1480:2ff0`, but the latch-enabling sequence in No Regret is the second table at `1480:2ffc`, decoded as `loosecannon`, which toggles `1480:0ac0` and mirrors the result into the F10 latch byte `1480:009b`. @@ -112,10 +120,17 @@ Detailed completed analysis belongs in the files under `docs/`, not in this plan Both apply/restore cleanly on a disposable retail copy and are the next runtime tests. - Full chronology for this patch line now lives in `docs/retail-debugger-patch-attempts.md`, including the failed global callback rewrite, direct wrapper call, single-step `65af` build, break-next `65af` build, guarded `0474` trampoline, shared `046f` method patch, and the current private-vtable candidate. - The hidden-menu orphan model is now materially stronger too. New live renames in seg1408 (`usecode_debugger_break_state_create`, `usecode_debugger_maybe_break_on_current_line`, `usecode_debugger_breakpoint_insert_sorted`, `usecode_debugger_has_breakpoint`, `usecode_debugger_callstack_push_entry`, `usecode_debugger_callstack_pop_entry`, `usecode_debugger_enable_single_step`, `usecode_debugger_clear_step_state`, `usecode_debugger_current_entry_get_unit_name`) line up with the seg109 UI in a way the cheat-only hook never did. The concrete interpreter-side handoff at `1418:04aa..04b5` now calls `usecode_debugger_maybe_break_on_current_line` whenever the far pointer at `0x659c/0x659e` is non-null, and that helper checks `(file,line)` breakpoints before callbacking through the debugger-state object's vtable. Current best read is therefore that the retail orphan happened one layer earlier than the cheat/event experiments: the seg109 current-unit debugger UI likely used to be entered from this seg1408 breakpoint object, but retail no longer appears to instantiate/store that object at `0x659c/0x659e`. That makes the breakpoint callback lane a stronger original-entry candidate than direct event `0x103` retargeting. +- The follow-up doc reconciliation is now closed too. `docs/ne-segment1.md` no longer presents the seg109/raw-reference UI addresses (`000b:*`) and the live seg1408 breakpoint-state addresses (`1408:*`) as if they were competing versions of one table; it now uses one combined component map that makes the layering explicit and preserves the interpreter callback at `1418:04aa..04b5` as the bridge between them. - The live NE `CRUSADER.EXE` mapping for that hidden-menu lane is now explicit and comment-backed in Ghidra too: direct hook `1130:2b75/2b78`, current-slot wrapper `13a0:0086` with constructor arg site `13a0:008d`, modal wrapper `13a0:020d` with inherited-arg patch subsite `13a0:024a`, listener create/dispatch `13a0:19b1` / `13a0:1df3`, compiled `0x410` CD-transfer-display body `13e8:2303`, deferred controller-side hook `13e8:25dd/25e0`, and the supporting cheat-state data cells at `1020:2833`, `1020:283d`, `1020:0844`, `1020:6045`, `1020:604f`, and `1020:6050`. The `0x410` body is still documented in place rather than renamed because it remains embedded inside the oversized `World_HandleKeyboardInput_13e8_14b4` function object. This improved live handoff and patch reproducibility still does not justify a headline estimate change by itself. +- The retail `-debug` switch is now separated cleanly from that hidden debugger lane too. Live `HandleCommandlineArgs` recovery in `CRUSADER.EXE` confirms a real `"-debug"` branch at `1048:0a93` that sets `g_debugMsgLevel = 10` (`1478:87e0`), prints `Debugging mode ON.`, and writes `1478:0845/0859` (`g_someDebugFlag` / `g_someDebugFlag2`). The `0x87e0` threshold is read by `ConsolePrintf` / `DebugPrintAndWaitForInput`, and `0x0859` is read by the segment `1468` `VideoPlayer_*` neighborhood (`1468:2869`, `1468:2af4`, helper `1468:2de9`). Current best read is `surviving debug-output / media-instrumentation switch`, not `dead parser stub`, and still not `the missing seg109/seg1408 usecode debugger bootstrap`, because the same pass found no evidence that `-debug` constructs or stores the real debugger-state pointer at `1478:659c/659e`. Focused write-up now lives in `docs/retail-debug-arg.md`. +- That `-debug` lane is tighter again after the follow-up deep dive and live Ghidra refinements. The seg1468 readers are now renamed/comment-backed as `VideoPlayer_AdvanceFrameAndHandleSkip`, `VideoPlayer_StreamChunks`, and `VideoPlayer_DrawDebugTimingOverlay`, and the helper body is no longer only `instrumentation-looking`: it writes two `500`-byte marker traces into adjacent scanlines near the bottom of a `0x280`-wide AVI playback buffer, using timing deltas scaled by `6000`. Current best read is therefore `built-in movie-playback timing overlay` plus the separate `g_debugMsgLevel` console/positioned-print threshold, still explicitly distinct from the hidden seg109/seg1408 usecode debugger path at `1478:659c/659e`. +- The same `-debug` lane is now bounded more comprehensively too. The user-confirmed moving bottom-of-video dots match the static two-scanline overlay model, so that AVI timing overlay is now the first closed visible effect. Outside the video lane, `-debug` also changes the global seg12d0 print threshold (`1478:87e0 = 10`) used by `ConsolePrintf`, `DebugPrintAndWaitForInput`, and the positioned print helpers, but the sink side is now tighter as well: `ProbablyPrintDebugMessage` formats through the static stdio-style table at `1478:6c32..6c81` and writes to the handle-`1` entry at `1478:6c46`, so the non-video side is ordinary DOS `stdout` gated by the threshold, not a separate hidden debugger console. Current xrefs still show that lane mostly as existing startup/config/cache/joystick/process diagnostics and a small set of dispatch/gump allocation failure-stop paths, not as a second confirmed hidden feature. The unresolved leftover is still `1478:0845`, which remains a parser-set latch with no recovered downstream consumer. +- The print inventory behind that same `-debug` lane is now materially tighter too. A focused pass recovered concrete `ConsolePrintf` / `DebugPrintAndWaitForInput` strings instead of only caller families: startup/arg strings such as `Debugging mode ON.`, `You DO need help!`, `Enabling ENHANCED mode. (NOT!)`, `Warping to mission %d ...`, `Defaulting to skill level %d`, and `Demo mode.`; init/config strings such as `Using map patch file.`, `Running with partial installation.`, `Running with full installation.`, and `Redirecting mission %d tune to '%s'`; cache/swap progress scaffolding such as `Creating Swap file [` and repeated `.` / bracket fragments; plus stronger failure/debug-stop fingerprints like `COULD NOT CREATE GLOB ITEM!`, `No room for Dispatcher Record/Playback.`, `End of script! (press any key)`, and `Out of Memory! [%u]`. Recovered call levels so far are `0x32` and `0xff`, both above the `-debug` threshold of `10`, which reinforces that the practical scarcity of visible text is about path frequency and graphics-mode presentation, not about the threshold still filtering these known messages out. +- The older folklore claim about flat offset `E69FB` and a possible secondary monochrome monitor is now materially weaker too. Local NE-segment mapping puts `0xE69FB` at live address `1478:2dfb`, which falls inside the `SYSTIMER.C` string in a data/name table (`KeyboardProcess`, `KEYIO.C`, `PRIORITY.C`, `SystemTimer`, `SYSTIMER.C`, `AccWait`), not inside executable instructions. The current retail print lane still points to ordinary `stdout` at `1478:6c46`, and targeted searches found no direct `mono`/`monochrome`/`hercules`/`MDA` strings or obvious monochrome-adapter port/memory references (`0x3b4/0x3b5/0x3b8/0x3ba`, `B000`). Current best read is therefore `folklore or address-mapping mistake`, not evidence for a hidden retail secondary-monitor debug display. ### Recently Closed Or No Longer Live +- The most reusable `misc_crusader_notes.txt` scratch items are no longer loose leads. `STEAM2` event hints are now checked against extracted USECODE rows, the old labels `FUN_1130_0896` / `FUN_1130_32af` / `FUN_1020_0000` / `FUN_1128_026b` are closed against live NE names, `ItemNPC_AnotherCreate` is now explicitly documented as the area-search-gated helper `NPC_CreateIfAreaSearchValid`, `Kernel_11d0_2491` is narrowed to a kernel/process snapshot writer, `FREE::ordinal3C` is constrained to an alert-clearing random `FREE::ordinal21` spawner, and `Int01E` is at least tightened from `unknown fire intrinsic` to `Actor::I_maybeFire` plus live export `1128:11da`. - `ASYLUM.24` is resolved as `_ASS_StopAllSFX`; it is no longer an open plan item. - The cheat/input side lane is complete enough to leave the live queue. - The segment coverage ledger is no longer a missing artifact; only refinement remains. @@ -159,7 +174,7 @@ Detailed completed analysis belongs in the files under `docs/`, not in this plan 12. Tighten the paired-file-family reading of the seg070 twin loops at `0009:67b6` and `0009:6916` by recovering which temporary buffer and record schema each family populates behind `entity_vm_runtime_owner_resource_create`. 13. Promote additional ledger rows where the current docs already justify `Foothold`, `Partial`, or `Deep`. 14. If the VM lane stalls again, revisit `000e:ffb0` from the now-verified `00db/00dc` caller windows and try to recover an adjacent non-overlapped helper before attempting any boundary repair. -15. If the immortality lane is revisited, stay focused on `NPCTRIG` slot `0x0a` first, with slot `0x20` still treated as the typed/setup companion and `EVENT` only as the generic hub baseline; the first anchored `0005:295f` caller family is now closed structurally at `0006:4379` (`0x20c -> 0005:295f`, sibling `0x20b -> 0005:2918` inside one seg031 dispatch-entry family) and comment-backed in the live NE program at `10f0:02d9`, `10f0:0379`, `10f0:03c3`, and `10f0:03e5`, so the next defensible step is the remaining caller families at `0006:c5f0` and `0007:3584`, or an earlier producer that assigns subtype `0x20b/0x20c` into field `+0x3c` before the owner-loaded class choice reaches the VM lane. +15. If the immortality lane is revisited, stay focused on `NPCTRIG` slot `0x0a` first, with slot `0x20` still treated as the typed/setup companion and `EVENT` only as the generic hub baseline; the three currently recovered direct `0005:295f` caller families are now all closed and comment-backed in the live NE program at `10f0:02d9`, `10f0:0379`, `10f0:03c3`, `10f0:03e5`, `1128:0ff0`, and `1138:1384`, so the next defensible step is an earlier producer that assigns subtype `0x20b/0x20c` into field `+0x3c` or otherwise chooses the owner-loaded class family before these generic damage consumers run. 16. Use the new Pentagram-derived parser proof of concept as the first tooling bridge for raw class/slot bodies: extend opcode coverage conservatively, emit IR v1 artifacts, and only then prototype a Ghidra-side annotation importer against compiled anchors like `000d:51fd`, `000d:5572`, `000d:46ec`, `000d:22bc`, and `000d:ebe3`. ## Remaining Work To Reach A Reasonably Complete Decompilation State diff --git a/tools/export_usecode_pseudocode.py b/tools/export_usecode_pseudocode.py new file mode 100644 index 0000000..49086ea --- /dev/null +++ b/tools/export_usecode_pseudocode.py @@ -0,0 +1,148 @@ +from __future__ import annotations + +import argparse +import csv +import re +import sys +from pathlib import Path + + +REPO_ROOT = Path(__file__).resolve().parents[1] +if str(REPO_ROOT) not in sys.path: + sys.path.insert(0, str(REPO_ROOT)) + + +from tools.poc_crusader_usecode_parser import CLASS_LAYOUT_INDEX, EXTRACTED_ROOT, parse_body_ir, render_pseudocode + + +CLASS_EVENT_INDEX = EXTRACTED_ROOT / "class_event_index.tsv" + + +def load_rows() -> list[dict[str, str]]: + with CLASS_EVENT_INDEX.open("r", encoding="utf-8", newline="") as handle: + return list(csv.DictReader(handle, delimiter="\t")) + + +def load_layout_by_entry() -> dict[int, dict[str, str]]: + with CLASS_LAYOUT_INDEX.open("r", encoding="utf-8", newline="") as handle: + rows = list(csv.DictReader(handle, delimiter="\t")) + layout_by_entry: dict[int, dict[str, str]] = {} + for row in rows: + try: + entry_index = parse_int(row["entry_index"]) + except (KeyError, TypeError, ValueError): + continue + layout_by_entry[entry_index] = row + return layout_by_entry + + +def parse_int(value: str) -> int: + return int(value, 0) + + +def safe_name(value: str) -> str: + cleaned = re.sub(r"[^A-Za-z0-9_.-]+", "_", value.strip()) + return cleaned.strip("._") or "unknown" + + +def output_path_for_row(output_root: Path, row: dict[str, str]) -> Path: + class_name = row["class_name_hint"] + slot = parse_int(row["slot"]) + event_name = row.get("event_name_hint") or f"slot_{slot:02X}" + class_dir = output_root / safe_name(class_name) + filename = f"slot_{slot:02X}_{safe_name(event_name)}.txt" + return class_dir / filename + + +def build_index_row(output_root: Path, row: dict[str, str], path: Path, ir: dict[str, object]) -> dict[str, str]: + return { + "entry_index": row["entry_index"], + "class_name": row["class_name_hint"], + "slot": row["slot"], + "event_name_hint": row.get("event_name_hint", ""), + "derived_body_start": row["derived_body_start"], + "derived_body_end": row["derived_body_end"], + "derived_body_length": row["derived_body_length"], + "decoded_op_count": str(ir["body"]["decoded_op_count"]), + "end_reason": str(ir["body"]["end_reason"]), + "debug_symbol_count": str(ir["body"]["debug_symbol_count"]), + "pseudocode_path": path.relative_to(output_root.parent).as_posix(), + } + + +def write_index(output_root: Path, index_rows: list[dict[str, str]]) -> None: + index_path = output_root / "index.tsv" + fieldnames = [ + "entry_index", + "class_name", + "slot", + "event_name_hint", + "derived_body_start", + "derived_body_end", + "derived_body_length", + "decoded_op_count", + "end_reason", + "debug_symbol_count", + "pseudocode_path", + ] + with index_path.open("w", encoding="utf-8", newline="") as handle: + writer = csv.DictWriter(handle, fieldnames=fieldnames, delimiter="\t") + writer.writeheader() + writer.writerows(index_rows) + + +def write_readme(output_root: Path, export_count: int) -> None: + readme_path = output_root / "README.md" + readme_path.write_text( + "# USECODE pseudocode export\n\n" + f"Generated pseudocode files: {export_count}\n\n" + "This folder is produced by tools/export_usecode_pseudocode.py using the current\n" + "pseudocode renderer in tools/poc_crusader_usecode_parser.py.\n\n" + "- Each class gets its own subfolder.\n" + "- Each non-empty decoded slot body is emitted as one text file.\n" + "- index.tsv records the body range, op count, end reason, and file path.\n", + encoding="utf-8", + ) + + +def main() -> None: + parser = argparse.ArgumentParser(description="Export pseudocode for all decoded Crusader USECODE bodies") + parser.add_argument( + "--output-dir", + default=str(EXTRACTED_ROOT / "pseudocode"), + help="Output directory for pseudocode files (default: USECODE/EUSECODE_extracted/pseudocode)", + ) + args = parser.parse_args() + + output_root = Path(args.output_dir) + output_root.mkdir(parents=True, exist_ok=True) + + rows = load_rows() + layout_by_entry = load_layout_by_entry() + index_rows: list[dict[str, str]] = [] + exported = 0 + + for row in rows: + if not row.get("derived_body_start") or not row.get("derived_body_end"): + continue + + entry_index = parse_int(row["entry_index"]) + layout_row = layout_by_entry.get(entry_index) + if layout_row is None: + continue + ir = parse_body_ir(row, layout_row) + pseudocode = render_pseudocode(ir) + + path = output_path_for_row(output_root, row) + path.parent.mkdir(parents=True, exist_ok=True) + path.write_text(pseudocode, encoding="utf-8") + index_rows.append(build_index_row(output_root, row, path, ir)) + exported += 1 + + write_index(output_root, index_rows) + write_readme(output_root, exported) + print(f"Exported {exported} pseudocode files to {output_root}") + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/tools/poc_crusader_usecode_parser.py b/tools/poc_crusader_usecode_parser.py index 2c678d4..7e5cc7a 100644 --- a/tools/poc_crusader_usecode_parser.py +++ b/tools/poc_crusader_usecode_parser.py @@ -4,6 +4,7 @@ import argparse import csv import hashlib import json +import re from dataclasses import dataclass from pathlib import Path from typing import Any @@ -13,6 +14,7 @@ REPO_ROOT = Path(__file__).resolve().parents[1] EXTRACTED_ROOT = REPO_ROOT / "USECODE" / "EUSECODE_extracted" CLASS_EVENT_INDEX = EXTRACTED_ROOT / "class_event_index.tsv" CLASS_LAYOUT_INDEX = EXTRACTED_ROOT / "class_layout_index.tsv" +RUNTIME_VM_IR_INDEX = EXTRACTED_ROOT / "runtime_vm_ir.tsv" CHUNKS_DIR = EXTRACTED_ROOT / "chunks" @@ -412,6 +414,7 @@ INTRINSIC_HINTS: dict[int, str] = { NO_ARG_MNEMONICS = { 0x08: "pop_result", 0x12: "pop_temp", + 0x13: "pop_temp_dword", 0x14: "add", 0x15: "add_dword", 0x16: "concat", @@ -427,6 +430,7 @@ NO_ARG_MNEMONICS = { 0x24: "cmp", 0x25: "cmp_dword", 0x26: "strcmp", + 0x27: "cmp_huge", 0x28: "lt", 0x29: "lt_dword", 0x2A: "le", @@ -456,6 +460,8 @@ NO_ARG_MNEMONICS = { 0x5F: "push_retval_dword", 0x60: "word_to_dword", 0x61: "dword_to_word", + 0x68: "copy_string", + 0x6A: "ptr_to_string", 0x6B: "str_to_ptr", 0x6D: "push_process_result", 0x73: "loopnext", @@ -500,6 +506,41 @@ class ParseResult: unknown_tail: bytes | None = None +@dataclass +class DebugSymbolRecord: + index: int + unknown1: int + type_id: int + type_char: str + bp_offset: int + bp_repr: str + unknown3: int + name: str + + +@dataclass +class DebugSymbolParseResult: + debug_symbols: list[DebugSymbolRecord] + end_offset: int + has_end_opcode: bool + trailing_bytes: bytes + + +@dataclass +class FieldTagRecord: + tag_id: int + bp_offset: int + value_kind: int + name: str + + +@dataclass +class FieldTagParseResult: + field_tags: list[FieldTagRecord] + end_offset: int + trailing_bytes: bytes + + class BodyReader: def __init__(self, data: bytes, offset: int = 0) -> None: self.data = data @@ -566,6 +607,20 @@ def parse_one_op(body: bytes, start: int) -> ParseResult: size = reader.read_u8() operands = {"bp_offset": bp_offset, "target": bp_repr(bp_offset), "size": size} mnemonic = "pop_local_blob" + elif opcode == 0x04: + operands = {"bp_offset": reader.read_u8(), "target": bp_repr(body[start + 1])} + mnemonic = "pop_member_byte" + elif opcode == 0x05: + operands = {"bp_offset": reader.read_u8(), "target": bp_repr(body[start + 1])} + mnemonic = "pop_member_word" + elif opcode == 0x06: + operands = {"bp_offset": reader.read_u8(), "target": bp_repr(body[start + 1])} + mnemonic = "pop_member_dword" + elif opcode == 0x07: + bp_offset = reader.read_u8() + size = reader.read_u8() + operands = {"bp_offset": bp_offset, "target": bp_repr(bp_offset), "size": size} + mnemonic = "pop_member_blob" elif opcode == 0x09: bp_offset = reader.read_u8() element_size = reader.read_u8() @@ -606,6 +661,9 @@ def parse_one_op(body: bytes, start: int) -> ParseResult: "intrinsic_name_hint": INTRINSIC_HINTS.get(intrinsic_ordinal), } mnemonic = "call_intrinsic" + elif opcode == 0x10: + operands = {"target_offset": reader.read_u16()} + mnemonic = "call_near" elif opcode == 0x11: target_class_id = reader.read_u16() target_slot = reader.read_u16() @@ -615,16 +673,21 @@ def parse_one_op(body: bytes, start: int) -> ParseResult: "target_event_name_hint": EVENT_NAME_HINTS.get(target_slot), } mnemonic = "call_class_event" - elif opcode in {0x19, 0x1A, 0x1B}: + elif opcode in {0x18, 0x19, 0x1A, 0x1B}: element_size = reader.read_u8() operands = {"element_size": element_size} - mnemonic = {0x19: "append_slist", 0x1A: "remove_slist", 0x1B: "remove_list"}[opcode] + mnemonic = { + 0x18: "append_unique_inline", + 0x19: "append_unique_indirect", + 0x1A: "remove_matching_indirect", + 0x1B: "remove_matching_inline", + }[opcode] elif opcode == 0x38: element_size = reader.read_u8() slist_flag = reader.read_u8() operands = {"element_size": element_size, "slist_flag": slist_flag} mnemonic = "in_list" - elif opcode in {0x3E, 0x3F, 0x40, 0x41, 0x43, 0x4B, 0x62, 0x63, 0x64, 0x69}: + elif opcode in {0x3E, 0x3F, 0x40, 0x41, 0x43, 0x46, 0x47, 0x48, 0x49, 0x4B, 0x62, 0x63, 0x64, 0x69}: bp_offset = reader.read_u8() operands = {"bp_offset": bp_offset, "target": bp_repr(bp_offset)} mnemonic = { @@ -633,6 +696,10 @@ def parse_one_op(body: bytes, start: int) -> ParseResult: 0x40: "push_local_dword", 0x41: "push_local_string", 0x43: "push_local_slist", + 0x46: "push_member_byte", + 0x47: "push_member_word", + 0x48: "push_member_dword", + 0x49: "push_member_huge", 0x4B: "push_local_addr", 0x62: "free_local_string", 0x63: "free_local_slist", @@ -776,7 +843,9 @@ def load_tsv_rows(path: Path) -> list[dict[str, str]]: def find_chunk_file(entry_index: int) -> Path: - matches = sorted(CHUNKS_DIR.glob(f"chunk_{entry_index}_*.bin")) + matches = sorted(CHUNKS_DIR.glob(f"chunk_{entry_index:03d}_*.bin")) + if not matches: + matches = sorted(CHUNKS_DIR.glob(f"chunk_{entry_index}_*.bin")) if not matches: raise FileNotFoundError(f"No chunk file found for entry_index={entry_index}") return matches[0] @@ -810,18 +879,42 @@ def select_rows(class_name: str, slot: int) -> tuple[dict[str, str], dict[str, s return event_row, layout_row -def annotation_hints(event_row: dict[str, str], payload_shape_hint: str) -> dict[str, Any]: +def load_runtime_ir_rows() -> list[dict[str, str]]: + return load_tsv_rows(RUNTIME_VM_IR_INDEX) + + +def runtime_stage_hints(ops: list[dict[str, Any]]) -> list[dict[str, str]]: + opcode_values = {op["opcode"] for op in ops} + hints: list[dict[str, str]] = [] + for row in load_runtime_ir_rows(): + opcode_or_lane = row.get("opcode_or_lane", "") + if opcode_or_lane.lower().startswith("opcode 0x"): + opcode_value = try_parse_int(opcode_or_lane.split()[1]) + if opcode_value is None or opcode_value not in opcode_values: + continue + elif row.get("stage_address") not in {"000d:177c", "000d:1acb", "000d:2104", "000d:21ed", "000d:22bc"}: + continue + hints.append(row) + return hints + + +def annotation_hints(event_row: dict[str, str], payload_shape_hint: str, ops: list[dict[str, Any]]) -> dict[str, Any]: slot = parse_int(event_row["slot"]) return { "runtime_family": "slot-backed-owner-loaded-body", "payload_shape_hint": payload_shape_hint, "compiled_anchors": [ - {"address": "000d:51fd", "role": "slot_value_loader"}, - {"address": "000d:5572", "role": "slot_value_plus_offset"}, {"address": "000d:46ec", "role": "context_create_from_slot"}, + {"address": "000d:0988", "role": "referent_chain_mutator"}, + {"address": "000d:177c", "role": "push_frame_word_literal"}, + {"address": "000d:1acb", "role": "compare_stream_dword_and_push_bool"}, + {"address": "000d:208b", "role": "materialize_or_forward_value"}, + {"address": "000d:21ed", "role": "prepend_inline_payload"}, {"address": "000d:22bc", "role": "matrix_pushback_stage"}, + {"address": "000d:2104", "role": "finalize_to_outptr"}, {"address": "000d:ebe3", "role": "opcode_sequence_run"}, ], + "runtime_stage_hints": runtime_stage_hints(ops), "slot_taxonomy": {"slot": slot, "event_name_hint": event_row["event_name_hint"] or EVENT_NAME_HINTS.get(slot)}, } @@ -836,6 +929,79 @@ def infer_payload_shape(slot: int) -> str | None: return None +def parse_debug_symbols(body: bytes, start: int) -> DebugSymbolParseResult | None: + if start >= len(body): + return None + if body[start] == 0x7A: + return DebugSymbolParseResult(debug_symbols=[], end_offset=start + 1, has_end_opcode=True, trailing_bytes=body[start + 1:]) + + reader = BodyReader(body, start) + count = reader.read_u8() + debug_symbols: list[DebugSymbolRecord] = [] + + try: + for index in range(count): + unknown1 = reader.read_u8() + type_id = reader.read_u8() + bp_offset = reader.read_u8() + unknown3 = reader.read_u8() + name = reader.read_cstring() + type_char = chr(type_id) if 0x20 <= type_id <= 0x7E else "." + debug_symbols.append( + DebugSymbolRecord( + index=index, + unknown1=unknown1, + type_id=type_id, + type_char=type_char, + bp_offset=bp_offset, + bp_repr=bp_repr(bp_offset), + unknown3=unknown3, + name=name, + ) + ) + except IndexError: + return None + + has_end_opcode = reader.offset < len(body) and body[reader.offset] == 0x7A + end_offset = reader.offset + (1 if has_end_opcode else 0) + trailing_bytes = body[end_offset:] + if not has_end_opcode: + return None + return DebugSymbolParseResult( + debug_symbols=debug_symbols, + end_offset=end_offset, + has_end_opcode=has_end_opcode, + trailing_bytes=trailing_bytes, + ) + + +def parse_field_tags(body: bytes, start: int) -> FieldTagParseResult | None: + if start >= len(body): + return None + + reader = BodyReader(body, start) + field_tags: list[FieldTagRecord] = [] + + try: + while reader.offset < len(body) and body[reader.offset] != 0x7A: + tag_id = reader.read_u8() + bp_offset = reader.read_u8() + value_kind = reader.read_u8() + name = reader.read_cstring() + if not name: + return None + field_tags.append(FieldTagRecord(tag_id=tag_id, bp_offset=bp_offset, value_kind=value_kind, name=name)) + if reader.offset < len(body) and body[reader.offset] == 0x00: + reader.offset += 1 + except IndexError: + return None + + if not field_tags or reader.offset >= len(body) or body[reader.offset] != 0x7A: + return None + end_offset = reader.offset + 1 + return FieldTagParseResult(field_tags=field_tags, end_offset=end_offset, trailing_bytes=body[end_offset:]) + + def parse_body_ir(event_row: dict[str, str], layout_row: dict[str, str]) -> dict[str, Any]: entry_index = parse_int(event_row["entry_index"]) chunk_file = find_chunk_file(entry_index) @@ -849,6 +1015,9 @@ def parse_body_ir(event_row: dict[str, str], layout_row: dict[str, str]) -> dict offset = 0 end_reason = "body_exhausted" unknown_tail = b"" + debug_symbols: list[dict[str, Any]] = [] + debug_symbol_offset: int | None = None + field_tags: list[dict[str, Any]] = [] while offset < len(body): result = parse_one_op(body, offset) @@ -867,6 +1036,86 @@ def parse_body_ir(event_row: dict[str, str], layout_row: dict[str, str]) -> dict if offset >= len(body) and end_reason == "body_exhausted": unknown_tail = b"" + candidate_debug_offsets = sorted( + { + operands["symbol_offset"] + for op in ops + for operands in [op["operands"]] + if op["mnemonic"] == "symbol_info" + and isinstance(operands.get("symbol_offset"), int) + and 0 <= operands["symbol_offset"] < len(body) + } + ) + last_ret_index = next((index for index in range(len(ops) - 1, -1, -1) if ops[index]["mnemonic"] == "ret"), None) + if end_reason == "unknown_opcode" and last_ret_index is not None: + ret_end = ops[last_ret_index]["offset"] + (len(ops[last_ret_index]["raw_bytes"]) // 2) + ret_debug_result = parse_debug_symbols(body, ret_end) + if ret_debug_result is not None: + ops = ops[:last_ret_index + 1] + debug_symbol_offset = ret_end + debug_symbols = [ + { + "index": symbol.index, + "unknown1": symbol.unknown1, + "type_id": symbol.type_id, + "type_char": symbol.type_char, + "bp_offset": symbol.bp_offset, + "bp_repr": symbol.bp_repr, + "unknown3": symbol.unknown3, + "name": symbol.name, + } + for symbol in ret_debug_result.debug_symbols + ] + end_reason = "debug_symbols_then_end" + unknown_tail = ret_debug_result.trailing_bytes + offset = ret_debug_result.end_offset + + if end_reason == "unknown_opcode" and candidate_debug_offsets: + for candidate_offset in reversed(candidate_debug_offsets): + if candidate_offset != offset: + continue + debug_result = parse_debug_symbols(body, candidate_offset) + if debug_result is None: + continue + debug_symbol_offset = candidate_offset + debug_symbols = [ + { + "index": symbol.index, + "unknown1": symbol.unknown1, + "type_id": symbol.type_id, + "type_char": symbol.type_char, + "bp_offset": symbol.bp_offset, + "bp_repr": symbol.bp_repr, + "unknown3": symbol.unknown3, + "name": symbol.name, + } + for symbol in debug_result.debug_symbols + ] + end_reason = "debug_symbols_then_end" + unknown_tail = debug_result.trailing_bytes + offset = debug_result.end_offset + break + + if end_reason == "unknown_opcode" and last_ret_index is not None: + ret_end = ops[last_ret_index]["offset"] + (len(ops[last_ret_index]["raw_bytes"]) // 2) + field_tag_result = parse_field_tags(body, ret_end) + if field_tag_result is not None: + ops = ops[:last_ret_index + 1] + field_tags = [ + { + "tag_id": tag.tag_id, + "bp_offset": tag.bp_offset, + "bp_repr": bp_repr(tag.bp_offset), + "value_kind": tag.value_kind, + "name": tag.name, + "tag_label": f"{tag.tag_id:02X}:{tag.bp_offset:02X}{tag.value_kind:02X}->{tag.name}", + } + for tag in field_tag_result.field_tags + ] + end_reason = "field_tags_then_end" + unknown_tail = field_tag_result.trailing_bytes + offset = field_tag_result.end_offset + slot = parse_int(event_row["slot"]) payload_shape = infer_payload_shape(slot) return { @@ -900,9 +1149,14 @@ def parse_body_ir(event_row: dict[str, str], layout_row: dict[str, str]) -> dict "raw_body_sha1": hashlib.sha1(body).hexdigest(), "unknown_trailing_bytes": unknown_tail.hex(), "decoded_op_count": len(ops), + "debug_symbol_offset": debug_symbol_offset, + "debug_symbol_count": len(debug_symbols), + "field_tag_count": len(field_tags), }, "ops": ops, - "annotation_hints": annotation_hints(event_row, payload_shape), + "debug_symbols": debug_symbols, + "field_tags": field_tags, + "annotation_hints": annotation_hints(event_row, payload_shape, ops), } @@ -1060,23 +1314,823 @@ def render_family_diff_text(diff: dict[str, Any]) -> str: return "\n".join(lines) + "\n" +def build_listing_labels(ir: dict[str, Any]) -> dict[int, str]: + return { + op["operands"]["target_offset"] + ir["event"]["derived_body_start"]: f"L_{op['operands']['target_offset'] + ir['event']['derived_body_start']:04X}" + for op in ir["ops"] + if "target_offset" in op["operands"] and isinstance(op["operands"]["target_offset"], int) + } + + +def build_script_blocks(ir: dict[str, Any]) -> tuple[dict[int, str], list[tuple[str, list[dict[str, Any]]]]]: + ops = ir["ops"] + if not ops: + return {}, [] + + branch_mnemonics = {"jne", "jmp", "foreach_list", "foreach_slist"} + leaders = {ops[0]["absolute_body_offset"]} + for index, op in enumerate(ops): + target_offset = op["operands"].get("target_offset") + if isinstance(target_offset, int): + leaders.add(ir["event"]["derived_body_start"] + target_offset) + if op["mnemonic"] in branch_mnemonics and index + 1 < len(ops): + leaders.add(ops[index + 1]["absolute_body_offset"]) + + ordered_leaders = sorted(leaders) + label_map = {ordered_leaders[0]: "entry"} + for absolute_offset in ordered_leaders[1:]: + label_map[absolute_offset] = f"block_{absolute_offset:04X}" + + blocks: list[tuple[str, list[dict[str, Any]]]] = [] + current_label = label_map[ops[0]["absolute_body_offset"]] + current_ops: list[dict[str, Any]] = [] + for op in ops: + absolute_offset = op["absolute_body_offset"] + if absolute_offset in label_map and current_ops and label_map[absolute_offset] != current_label: + blocks.append((current_label, current_ops)) + current_label = label_map[absolute_offset] + current_ops = [] + current_ops.append(op) + if current_ops: + blocks.append((current_label, current_ops)) + return label_map, blocks + + +def format_script_string(value: str) -> str: + escaped = value.replace("\\", "\\\\").replace('"', '\\"') + return f'"{escaped}"' + + +def format_generic_operands(operands: dict[str, Any], label_map: dict[int, str], body_start: int) -> str: + parts: list[str] = [] + for key, value in operands.items(): + if value is None or value == "": + continue + if key == "target_offset" and isinstance(value, int): + parts.append(f"target={label_map.get(body_start + value, f'0x{body_start + value:04X}')}") + continue + if key == "target_event_name_hint": + parts.append(f"event={value}") + continue + if key == "intrinsic_name_hint": + parts.append(f"hint={value}") + continue + if isinstance(value, int): + if key.endswith("_signed"): + parts.append(f"{key}={value}") + else: + parts.append(f"{key}=0x{value:X}") + continue + parts.append(f"{key}={value}") + return " ".join(parts) + + +def format_script_statement(op: dict[str, Any], label_map: dict[int, str], body_start: int) -> str: + mnemonic = op["mnemonic"] + operands = op["operands"] + + if mnemonic == "init": + return f"init locals 0x{operands['local_bytes']:02X}" + if mnemonic == "push_byte_immediate": + return f"push 0x{operands['value_u8']:02X} ; signed {operands['value_signed']}" + if mnemonic == "push_word_immediate": + return f"push 0x{operands['value_u16']:04X}" + if mnemonic == "push_dword_immediate": + return f"push 0x{operands['value_u32']:08X}" + if mnemonic == "push_string_immediate": + return f"push {format_script_string(operands['string'])}" + if mnemonic.startswith("push_local_") or mnemonic.startswith("push_member_"): + return f"push {operands['target']}" + if mnemonic == "push_local_list": + return f"push {operands['target']}" + if mnemonic == "push_list_element": + return f"push list_element size=0x{operands['element_size']:X} slist=0x{operands['slist_flag']:X}" + if mnemonic == "push_huge": + return f"push huge 0x{operands['value_a']:02X}:0x{operands['value_b']:02X}" + if mnemonic == "push_global": + return f"push global[0x{operands['global_id']:04X}] size=0x{operands['size']:X}" + if mnemonic == "push_local_addr": + return f"push &{operands['target']}" + if mnemonic == "push_string_ptr": + return f"push string_ptr {operands['target']}" + if mnemonic.startswith("pop_local_") or mnemonic.startswith("pop_member_"): + return f"pop -> {operands['target']}" + if mnemonic == "pop_local_blob" or mnemonic == "pop_member_blob": + return f"pop_blob -> {operands['target']} size=0x{operands['size']:X}" + if mnemonic == "pop_list_element": + return f"pop_list_element -> {operands['target']} elem_size=0x{operands['element_size']:X} slist=0x{operands['slist_flag']:X}" + if mnemonic == "pop_global": + return f"pop -> global[0x{operands['global_id']:04X}] size=0x{operands['size']:X}" + if mnemonic == "call_intrinsic": + hint = operands.get("intrinsic_name_hint") or "unknown_intrinsic" + return f"call intrinsic 0x{operands['intrinsic_ordinal']:04X} {hint} args=0x{operands['arg_bytes']:02X}" + if mnemonic == "call_near": + target = label_map.get(body_start + operands["target_offset"], f"0x{body_start + operands['target_offset']:04X}") + return f"call {target}" + if mnemonic == "call_class_event": + event_hint = operands.get("target_event_name_hint") + suffix = f" {event_hint}" if event_hint else "" + return f"call class 0x{operands['target_class_id']:04X}.slot 0x{operands['target_event_slot']:02X}{suffix}" + if mnemonic in {"append_unique_inline", "append_unique_indirect", "remove_matching_indirect", "remove_matching_inline"}: + return f"{mnemonic} size=0x{operands['element_size']:X}" + if mnemonic == "create_list": + return f"create_list elem_size=0x{operands['element_size']:X} count=0x{operands['count']:X}" + if mnemonic == "in_list": + return f"in_list elem_size=0x{operands['element_size']:X} slist=0x{operands['slist_flag']:X}" + if mnemonic == "jne": + target = label_map.get(body_start + operands["target_offset"], f"0x{body_start + operands['target_offset']:04X}") + return f"if pop() != 0 goto {target}" + if mnemonic == "jmp": + target = label_map.get(body_start + operands["target_offset"], f"0x{body_start + operands['target_offset']:04X}") + return f"goto {target}" + if mnemonic in {"foreach_list", "foreach_slist"}: + target = label_map.get(body_start + operands["target_offset"], f"0x{body_start + operands['target_offset']:04X}") + return f"{mnemonic} {operands['target_var']} elem_size=0x{operands['element_size']:X} -> {target}" + if mnemonic == "spawn": + event_hint = operands.get("target_event_name_hint") + suffix = f" {event_hint}" if event_hint else "" + return ( + f"spawn class 0x{operands['target_class_id']:04X}.slot 0x{operands['target_event_slot']:02X}{suffix} " + f"args=0x{operands['arg_bytes']:02X} this_size=0x{operands['this_size']:02X}" + ) + if mnemonic == "spawn_inline": + event_hint = operands.get("target_event_name_hint") + suffix = f" {event_hint}" if event_hint else "" + return ( + f"spawn_inline class 0x{operands['target_class_id']:04X}.slot 0x{operands['target_event_slot']:02X}{suffix} " + f"inline=0x{operands['inline_offset']:04X} this_size=0x{operands['this_size']:02X} unk=0x{operands['unknown']:02X}" + ) + if mnemonic == "line_number": + return f"line {operands['line_number']}" + if mnemonic == "symbol_info": + return f"symbol_info {operands['symbol']} -> 0x{operands['symbol_offset']:04X}" + if mnemonic == "global_address": + return f"push &global[0x{operands['global_id']:04X}]" + if mnemonic == "ret": + return "return" + if mnemonic in NO_ARG_MNEMONICS.values(): + return mnemonic + + rendered_operands = format_generic_operands(operands, label_map, body_start) + return f"{mnemonic} {rendered_operands}".rstrip() + + +def render_script(ir: dict[str, Any]) -> str: + label_map, blocks = build_script_blocks(ir) + slot_name = ir["event"]["event_name_hint"] or f"slot_{ir['event']['slot']:02X}" + lines = [ + ( + f"script {ir['class']['class_name']}.{slot_name} " + f"(entry={ir['class']['entry_index']}, class_id=0x{ir['class']['class_id']:04X}, slot=0x{ir['event']['slot']:02X})" + ), + "{", + f" body_range 0x{ir['event']['derived_body_start']:04X}..0x{ir['event']['derived_body_end']:04X}", + f" raw_event_word 0x{ir['event']['raw_event_entry_word']:04X}", + f" raw_code_offset 0x{ir['event']['raw_code_offset']:08X}", + f" end_reason {ir['body']['end_reason']}", + ] + + if ir["debug_symbols"]: + lines.append(" locals") + lines.append(" {") + for symbol in ir["debug_symbols"]: + lines.append( + f" {symbol['bp_repr']} {symbol['name']} ; type=0x{symbol['type_id']:02X} ('{symbol['type_char']}') unk1=0x{symbol['unknown1']:02X} unk3=0x{symbol['unknown3']:02X}" + ) + lines.append(" }") + + lines.append("") + for label, ops in blocks: + lines.append(f" {label}:") + for op in ops: + statement = format_script_statement(op, label_map, ir["event"]["derived_body_start"]) + lines.append(f" {statement} ; {op['absolute_body_offset']:04X}: {op['raw_bytes']}") + lines.append("") + + if ir["field_tags"]: + lines.append(" field_tags") + lines.append(" {") + for tag in ir["field_tags"]: + lines.append( + f" {tag['bp_repr']} {tag['name']} ; tag=0x{tag['tag_id']:02X} kind=0x{tag['value_kind']:02X}" + ) + lines.append(" }") + + if ir["body"]["unknown_trailing_bytes"]: + lines.append(f" unknown_trailing_bytes {ir['body']['unknown_trailing_bytes']}") + + lines.append("}") + return "\n".join(lines) + "\n" + + +def sanitize_identifier(name: str) -> str: + cleaned = [char if char.isalnum() or char == "_" else "_" for char in name.strip()] + identifier = "".join(cleaned).strip("_") or "var" + if identifier[0].isdigit(): + identifier = f"v_{identifier}" + return identifier + + +def build_local_name_map(ir: dict[str, Any]) -> dict[int, str]: + return { + symbol["bp_offset"]: sanitize_identifier(symbol["name"]) + for symbol in ir["debug_symbols"] + } + + +def format_bp_name(bp_offset: int, local_name_map: dict[int, str]) -> str: + if bp_offset in local_name_map: + return local_name_map[bp_offset] + disp = signed_byte(bp_offset) + if disp >= 0: + return f"arg_{disp:02X}" + return f"local_{abs(disp):02X}" + + +def intrinsic_display_name(name_hint: str | None, ordinal: int) -> str: + if not name_hint: + return f"intrinsic_{ordinal:04X}" + display = name_hint.replace("::", ".") + paren = display.find("(") + if paren != -1: + display = display[:paren] + return display + + +def push_expr_from_op(op: dict[str, Any], local_name_map: dict[int, str]) -> tuple[str, int] | None: + mnemonic = op["mnemonic"] + operands = op["operands"] + + if mnemonic == "push_byte_immediate": + return (str(operands["value_signed"]), 1) + if mnemonic == "push_word_immediate": + return (f"0x{operands['value_u16']:04X}", 2) + if mnemonic == "push_dword_immediate": + return (f"0x{operands['value_u32']:08X}", 4) + if mnemonic == "push_string_immediate": + return (format_script_string(operands["string"]), max(2, operands["declared_length"])) + if mnemonic in {"push_local_byte", "push_local_word", "push_local_dword", "push_local_string", "push_local_slist", "push_local_addr", "push_string_ptr"}: + return (format_bp_name(operands["bp_offset"], local_name_map), 4 if mnemonic in {"push_local_dword", "push_local_addr", "push_string_ptr"} else 2) + if mnemonic in {"push_member_byte", "push_member_word", "push_member_dword", "push_member_huge"}: + return (f"member.{format_bp_name(operands['bp_offset'], local_name_map)}", 4 if mnemonic in {"push_member_dword", "push_member_huge"} else 2) + if mnemonic == "push_local_list": + return (format_bp_name(operands["bp_offset"], local_name_map), max(2, operands["element_size"])) + if mnemonic == "push_list_element": + return (f"list_element(size=0x{operands['element_size']:X})", max(1, operands["element_size"])) + if mnemonic == "push_huge": + return (f"0x{operands['value_a']:02X}{operands['value_b']:02X}", 4) + if mnemonic == "push_global": + return (f"global[0x{operands['global_id']:04X}]", max(1, operands["size"])) + if mnemonic == "push_pid": + return ("pid", 2) + if mnemonic == "push_process_result": + return ("process_result", 2) + return None + + +def pop_stack_bytes(stack: list[tuple[str, int]], byte_count: int) -> list[str]: + if byte_count <= 0: + return [] + parts: list[str] = [] + consumed = 0 + while stack and consumed < byte_count: + expr, width = stack.pop() + parts.append(expr) + consumed += max(1, width) + parts.reverse() + return parts + + +def combine_binary(stack: list[tuple[str, int]], operator: str, result_width: int = 2) -> None: + if len(stack) < 2: + return + right_expr, _ = stack.pop() + left_expr, _ = stack.pop() + stack.append((f"({left_expr} {operator} {right_expr})", result_width)) + + +def decompile_pseudocode_blocks(ir: dict[str, Any]) -> list[tuple[str, list[str]]]: + label_map, blocks = build_script_blocks(ir) + local_name_map = build_local_name_map(ir) + skip_mnemonics = {"line_number", "symbol_info", "add_sp", "init"} + pending_result: str | None + rendered_blocks: list[tuple[str, list[str]]] = [] + + for label, ops in blocks: + stack: list[tuple[str, int]] = [] + pending_result = None + block_lines: list[str] = [] + index = 0 + while index < len(ops): + op = ops[index] + mnemonic = op["mnemonic"] + operands = op["operands"] + + pushed = push_expr_from_op(op, local_name_map) + if pushed is not None: + stack.append(pushed) + index += 1 + continue + + if mnemonic in skip_mnemonics: + index += 1 + continue + + if mnemonic == "push_indirect": + if stack: + expr, _ = stack.pop() + stack.append((f"*({expr})", max(1, operands["size"]))) + index += 1 + continue + + if mnemonic == "set_info": + args = ", ".join(expr for expr, _ in stack) if stack else "" + stack.clear() + block_lines.append(f"set_info({args});") + index += 1 + continue + + if mnemonic == "process_exclude": + block_lines.append("process_exclude();") + index += 1 + continue + + if mnemonic == "call_intrinsic": + arg_exprs = pop_stack_bytes(stack, operands["arg_bytes"]) + pending_result = f"{intrinsic_display_name(operands.get('intrinsic_name_hint'), operands['intrinsic_ordinal'])}({', '.join(arg_exprs)})" + index += 1 + continue + + if mnemonic == "push_retval_byte": + stack.append((pending_result or "retval", 1)) + pending_result = None + index += 1 + continue + + if mnemonic == "push_retval_word": + stack.append((pending_result or "retval", 2)) + pending_result = None + index += 1 + continue + + if mnemonic == "push_retval_dword": + stack.append((pending_result or "retval", 4)) + pending_result = None + index += 1 + continue + + if mnemonic == "call_class_event": + arg_text = ", ".join(expr for expr, _ in stack) + stack.clear() + event_name = operands.get("target_event_name_hint") or f"slot_{operands['target_event_slot']:02X}" + block_lines.append( + f"class_{operands['target_class_id']:04X}_{sanitize_identifier(event_name)}({arg_text});" + ) + pending_result = None + index += 1 + continue + + if mnemonic == "spawn": + arg_text = ", ".join(expr for expr, _ in stack) + stack.clear() + event_name = operands.get("target_event_name_hint") or f"slot_{operands['target_event_slot']:02X}" + block_lines.append( + f"spawn class_{operands['target_class_id']:04X}_{sanitize_identifier(event_name)}({arg_text});" + ) + pending_result = None + index += 1 + continue + + if mnemonic == "spawn_inline": + arg_text = ", ".join(expr for expr, _ in stack) + stack.clear() + event_name = operands.get("target_event_name_hint") or f"slot_{operands['target_event_slot']:02X}" + block_lines.append( + f"spawn_inline class_{operands['target_class_id']:04X}_{sanitize_identifier(event_name)}({arg_text}) /* inline=0x{operands['inline_offset']:04X} */;" + ) + pending_result = None + index += 1 + continue + + if mnemonic in {"add", "add_dword"}: + combine_binary(stack, "+", 4 if mnemonic.endswith("dword") else 2) + index += 1 + continue + + if mnemonic in {"sub", "sub_dword"}: + combine_binary(stack, "-", 4 if mnemonic.endswith("dword") else 2) + index += 1 + continue + + if mnemonic in {"mul", "mul_dword"}: + combine_binary(stack, "*", 4 if mnemonic.endswith("dword") else 2) + index += 1 + continue + + if mnemonic in {"div", "div_dword"}: + combine_binary(stack, "/", 4 if mnemonic.endswith("dword") else 2) + index += 1 + continue + + if mnemonic == "bit_and": + combine_binary(stack, "&") + index += 1 + continue + + if mnemonic == "bit_or": + combine_binary(stack, "|") + index += 1 + continue + + if mnemonic == "and": + combine_binary(stack, "&&") + index += 1 + continue + + if mnemonic == "or": + combine_binary(stack, "||") + index += 1 + continue + + if mnemonic == "cmp": + combine_binary(stack, "!=") + index += 1 + continue + + if mnemonic == "ne": + combine_binary(stack, "!=") + index += 1 + continue + + if mnemonic == "lt": + combine_binary(stack, "<") + index += 1 + continue + + if mnemonic == "le": + combine_binary(stack, "<=") + index += 1 + continue + + if mnemonic == "gt": + combine_binary(stack, ">") + index += 1 + continue + + if mnemonic == "ge": + combine_binary(stack, ">=") + index += 1 + continue + + if mnemonic == "not": + if stack: + expr, width = stack.pop() + stack.append((f"(!{expr})", width)) + index += 1 + continue + + if mnemonic == "implies": + expr = stack.pop()[0] if stack else "retval" + stack.append((f"implies({expr}, 0x{operands['arg0']:X}, 0x{operands['arg1']:X})", 1)) + index += 1 + continue + + if mnemonic == "pop_temp": + if stack: + stack.pop() + index += 1 + continue + + if mnemonic == "suspend": + block_lines.append("suspend;") + stack.clear() + index += 1 + continue + + if mnemonic == "jne": + target = label_map.get(ir["event"]["derived_body_start"] + operands["target_offset"], f"block_{ir['event']['derived_body_start'] + operands['target_offset']:04X}") + condition = stack.pop()[0] if stack else "condition" + block_lines.append(f"if {condition} goto {target};") + index += 1 + continue + + if mnemonic == "jmp": + target = label_map.get(ir["event"]["derived_body_start"] + operands["target_offset"], f"block_{ir['event']['derived_body_start'] + operands['target_offset']:04X}") + block_lines.append(f"goto {target};") + stack.clear() + index += 1 + continue + + if mnemonic in {"foreach_list", "foreach_slist"}: + target = label_map.get(ir["event"]["derived_body_start"] + operands["target_offset"], f"block_{ir['event']['derived_body_start'] + operands['target_offset']:04X}") + block_lines.append( + f"{mnemonic} {format_bp_name(operands['bp_offset'], local_name_map)} -> {target};" + ) + index += 1 + continue + + if mnemonic == "ret": + block_lines.append("return;") + stack.clear() + break + + if mnemonic.startswith("pop_local_") or mnemonic.startswith("pop_member_"): + if stack: + expr, _ = stack.pop() + else: + expr = "value" + target_name = format_bp_name(operands["bp_offset"], local_name_map) + block_lines.append(f"{target_name} = {expr};") + index += 1 + continue + + rendered_operands = format_generic_operands(operands, label_map, ir["event"]["derived_body_start"]) + block_lines.append(f"/* {mnemonic} {rendered_operands} */") + index += 1 + + rendered_blocks.append((label, block_lines)) + + return rendered_blocks + + +@dataclass(frozen=True) +class TerminalStatement: + kind: str + condition: str | None = None + target: str | None = None + + +def parse_terminal_statement(statement: str) -> TerminalStatement | None: + if statement == "return;": + return TerminalStatement("return") + + goto_match = re.fullmatch(r"goto ([A-Za-z0-9_]+);", statement) + if goto_match is not None: + return TerminalStatement("goto", target=goto_match.group(1)) + + if_match = re.fullmatch(r"if (.+) goto ([A-Za-z0-9_]+);", statement) + if if_match is not None: + return TerminalStatement("if", condition=if_match.group(1), target=if_match.group(2)) + + return None + + +def strip_outer_parens(expr: str) -> str: + text = expr.strip() + while text.startswith("(") and text.endswith(")"): + depth = 0 + balanced = True + for index, char in enumerate(text): + if char == "(": + depth += 1 + elif char == ")": + depth -= 1 + if depth == 0 and index != len(text) - 1: + balanced = False + break + if depth < 0: + balanced = False + break + if not balanced or depth != 0: + break + text = text[1:-1].strip() + return text + + +def invert_condition_text(condition: str) -> str: + expr = strip_outer_parens(condition) + comparisons = { + " != ": " == ", + " == ": " != ", + " <= ": " > ", + " >= ": " < ", + " < ": " >= ", + " > ": " <= ", + } + for source, replacement in comparisons.items(): + if source in expr: + return expr.replace(source, replacement, 1) + if expr.startswith("!"): + return strip_outer_parens(expr[1:]) + if re.fullmatch(r"[A-Za-z_][A-Za-z0-9_:.]*(\(.*\))?", expr): + return f"!{expr}" + return f"!({expr})" + + +def indent_lines(lines: list[str], prefix: str = " ") -> list[str]: + return [f"{prefix}{line}" if line else "" for line in lines] + + +def detect_noop_compare_chain( + blocks: list[tuple[str, list[str]]], + label_to_index: dict[str, int], + start_index: int, + end_index: int, +) -> int | None: + cursor = start_index + common_target: str | None = None + + while cursor + 1 < end_index: + _, compare_statements = blocks[cursor] + _, goto_statements = blocks[cursor + 1] + if len(compare_statements) != 1 or len(goto_statements) != 1: + return None + + compare_terminal = parse_terminal_statement(compare_statements[0]) + goto_terminal = parse_terminal_statement(goto_statements[0]) + if compare_terminal is None or compare_terminal.kind != "if": + return None + if goto_terminal is None or goto_terminal.kind != "goto": + return None + + if common_target is None: + common_target = goto_terminal.target + elif goto_terminal.target != common_target: + return None + + if compare_terminal.target == common_target: + body_index = label_to_index.get(common_target or "") + if body_index is None or body_index != cursor + 2 or body_index >= end_index: + return None + return body_index + + next_index = label_to_index.get(compare_terminal.target or "") + if next_index is None or next_index != cursor + 2 or next_index >= end_index: + return None + cursor += 2 + + return None + + +def render_structured_region( + blocks: list[tuple[str, list[str]]], + label_to_index: dict[str, int], + start_index: int, + end_index: int, + return_labels: set[str], +) -> tuple[list[str], bool] | None: + lines: list[str] = [] + index = start_index + + while index < end_index: + skipped_index = detect_noop_compare_chain(blocks, label_to_index, index, end_index) + if skipped_index is not None: + index = skipped_index + continue + + _, statements = blocks[index] + if not statements: + index += 1 + continue + + terminal = parse_terminal_statement(statements[-1]) + if terminal is None: + lines.extend(statements) + index += 1 + continue + + lines.extend(statements[:-1]) + + if terminal.kind == "return": + lines.append("return;") + return lines, False + + if terminal.kind == "goto": + target_label = terminal.target or "" + target_index = label_to_index.get(target_label) + if target_label in return_labels: + lines.append("return;") + return lines, False + if target_index is None: + return None + if target_index == index + 1: + index += 1 + continue + if index < target_index < end_index: + index = target_index + continue + return None + + target_label = terminal.target or "" + target_index = label_to_index.get(target_label) + if target_index is None or target_index <= index or target_index > end_index: + return None + if target_index == index + 1: + index += 1 + continue + + inner_result = render_structured_region(blocks, label_to_index, index + 1, target_index, return_labels) + if inner_result is None: + return None + + inner_lines, inner_falls_through = inner_result + if inner_lines: + lines.append(f"if ({invert_condition_text(terminal.condition or 'condition')}) {{") + lines.extend(indent_lines(inner_lines)) + lines.append("}") + elif not inner_falls_through: + lines.append(f"if ({invert_condition_text(terminal.condition or 'condition')}) {{") + lines.append("}") + + index = target_index + + return lines, True + + +def render_structured_pseudocode(blocks: list[tuple[str, list[str]]]) -> list[str] | None: + if not blocks: + return [] + + label_to_index = {label: index for index, (label, _) in enumerate(blocks)} + return_labels = { + label + for label, statements in blocks + if len(statements) == 1 and statements[0] == "return;" + } + structured = render_structured_region(blocks, label_to_index, 0, len(blocks), return_labels) + if structured is None: + return None + return structured[0] + + +def render_pseudocode(ir: dict[str, Any]) -> str: + slot_name = sanitize_identifier(ir["event"]["event_name_hint"] or f"slot_{ir['event']['slot']:02X}") + lines = [ + ( + f"function {sanitize_identifier(ir['class']['class_name'].lower())}_{slot_name}() " + f"/* entry={ir['class']['entry_index']} class_id=0x{ir['class']['class_id']:04X} slot=0x{ir['event']['slot']:02X} */" + ), + "{", + ] + + if ir["debug_symbols"]: + lines.append(" var") + for index, symbol in enumerate(ir["debug_symbols"]): + separator = "," if index + 1 < len(ir["debug_symbols"]) else ";" + lines.append(f" {sanitize_identifier(symbol['name'])}{separator} /* {symbol['bp_repr']} type=0x{symbol['type_id']:02X} */") + lines.append("") + + rendered_blocks = decompile_pseudocode_blocks(ir) + structured_lines = render_structured_pseudocode(rendered_blocks) + if structured_lines is not None: + for statement in structured_lines: + lines.append(f" {statement}" if statement else "") + else: + for label, statements in rendered_blocks: + lines.append(f" {label}:") + for statement in statements: + lines.append(f" {statement}") + lines.append("") + + lines.append("}") + return "\n".join(lines) + "\n" + + def render_text(ir: dict[str, Any]) -> str: + labels = build_listing_labels(ir) + + def format_operand(key: str, value: Any) -> str: + if value is None or value == "": + return "" + if key == "intrinsic_name_hint" and value: + return f"hint={value}" + if key == "target_event_name_hint" and value: + return f"event={value}" + if key == "target_offset" and isinstance(value, int): + label = labels.get(value + ir["event"]["derived_body_start"]) + return f"->{label or f'0x{value + ir['event']['derived_body_start']:04X}'}" + if isinstance(value, int): + if key.endswith("_signed"): + return f"{key}={value}" + return f"{key}=0x{value:X}" + return f"{key}={value}" + lines = [ f"Class {ir['class']['class_name']} entry={ir['class']['entry_index']} class_id=0x{ir['class']['class_id']:X}", - f"Slot 0x{ir['event']['slot']:02X} hint={ir['event']['event_name_hint']} body=0x{ir['event']['derived_body_start']:04X}..0x{ir['event']['derived_body_end']:04X}", - f"End reason: {ir['body']['end_reason']} ops={ir['body']['decoded_op_count']} sha1={ir['body']['raw_body_sha1']}", + f"Slot 0x{ir['event']['slot']:02X} hint={ir['event']['event_name_hint']} raw_word=0x{ir['event']['raw_event_entry_word']:04X} raw_code_off=0x{ir['event']['raw_code_offset']:08X}", + f"Body 0x{ir['event']['derived_body_start']:04X}..0x{ir['event']['derived_body_end']:04X} len={ir['event']['derived_body_length']} end={ir['body']['end_reason']} ops={ir['body']['decoded_op_count']}", + f"SHA1 {ir['body']['raw_body_sha1']}", "", ] for op in ir["ops"]: - operand_items = [] - for key, value in op["operands"].items(): - if isinstance(value, int): - operand_items.append(f"{key}=0x{value:X}") - else: - operand_items.append(f"{key}={value}") - lines.append( - f"{op['absolute_body_offset']:04X}: {op['opcode']:02X} {op['mnemonic']} {' '.join(operand_items)} raw={op['raw_bytes']}" - ) + absolute_offset = op["absolute_body_offset"] + label = labels.get(absolute_offset) + if label is not None: + lines.extend(["", f"{label}:"]) + operand_items = [formatted for key, value in op["operands"].items() if (formatted := format_operand(key, value))] + lines.append(f"{absolute_offset:04X}: {op['opcode']:02X} {op['mnemonic']:<24} {' '.join(operand_items)} raw={op['raw_bytes']}") + if ir["debug_symbols"]: + lines.extend(["", f"Debug symbols @ 0x{ir['body']['debug_symbol_offset']:04X}:"]) + for symbol in ir["debug_symbols"]: + lines.append( + f" {symbol['index']:02X}: unk1=0x{symbol['unknown1']:02X} type=0x{symbol['type_id']:02X} ('{symbol['type_char']}') {symbol['bp_repr']} unk3=0x{symbol['unknown3']:02X} name={symbol['name']}" + ) + if ir["field_tags"]: + lines.extend(["", "Field tags:"]) + for tag in ir["field_tags"]: + lines.append( + f" {tag['tag_label']} ({tag['bp_repr']})" + ) if ir["body"]["unknown_trailing_bytes"]: lines.extend(["", f"unknown_trailing_bytes={ir['body']['unknown_trailing_bytes']}"]) return "\n".join(lines) + "\n" @@ -1089,6 +2143,10 @@ def main() -> None: parser.add_argument("--output", help="Write IR JSON to this file instead of stdout") parser.add_argument("--emit-text", action="store_true", help="Emit a readable text listing beside the JSON") parser.add_argument("--text-output", help="Write the text listing to this file") + parser.add_argument("--emit-script", action="store_true", help="Emit a decompiled script-style view beside the JSON") + parser.add_argument("--script-output", help="Write the script-style decompilation to this file") + parser.add_argument("--emit-pseudocode", action="store_true", help="Emit a higher-level pseudocode view beside the JSON") + parser.add_argument("--pseudocode-output", help="Write the pseudocode view to this file") parser.add_argument("--family-diff", action="store_true", help="Emit repeated-body family diff report instead of (or alongside) the IR") parser.add_argument("--family-diff-output", help="Write the family diff JSON to this file") parser.add_argument("--family-diff-text-output", help="Write the family diff text report to this file") @@ -1111,6 +2169,20 @@ def main() -> None: else: print(rendered_text) + if args.emit_script: + rendered_script = render_script(ir) + if args.script_output: + Path(args.script_output).write_text(rendered_script, encoding="utf-8") + else: + print(rendered_script) + + if args.emit_pseudocode: + rendered_pseudocode = render_pseudocode(ir) + if args.pseudocode_output: + Path(args.pseudocode_output).write_text(rendered_pseudocode, encoding="utf-8") + else: + print(rendered_pseudocode) + if args.family_diff: diff = compute_family_diff(args.class_name, slot) diff_json = json.dumps(diff, indent=2) diff --git a/tools/pyghidra_crusader/__pycache__/cli.cpython-311.pyc b/tools/pyghidra_crusader/__pycache__/cli.cpython-311.pyc index ccc61f3..08f9331 100644 Binary files a/tools/pyghidra_crusader/__pycache__/cli.cpython-311.pyc and b/tools/pyghidra_crusader/__pycache__/cli.cpython-311.pyc differ diff --git a/tools/pyghidra_crusader/__pycache__/common.cpython-311.pyc b/tools/pyghidra_crusader/__pycache__/common.cpython-311.pyc index a92f121..9419d92 100644 Binary files a/tools/pyghidra_crusader/__pycache__/common.cpython-311.pyc and b/tools/pyghidra_crusader/__pycache__/common.cpython-311.pyc differ diff --git a/tools/pyghidra_crusader/_tmp_patch_hidden_cheat_menu.py b/tools/pyghidra_crusader/_tmp_patch_hidden_cheat_menu.py index 12d3539..bf2abe5 100644 --- a/tools/pyghidra_crusader/_tmp_patch_hidden_cheat_menu.py +++ b/tools/pyghidra_crusader/_tmp_patch_hidden_cheat_menu.py @@ -56,7 +56,7 @@ def print_instructions(address_text: str, count: int) -> None: instruction = instruction.getNext() -tx = program.startTransaction("Patch hidden cheat menu") +tx = program.startTransaction("Patch hidden usecode debugger entry") commit = False try: write_bytes("1130:2b78", bytes.fromhex("9A 76 04 D8 12"), bytes.fromhex("9A 86 00 A0 13")) diff --git a/tools/pyghidra_crusader/_tmp_patch_hidden_cheat_menu_deferred.py b/tools/pyghidra_crusader/_tmp_patch_hidden_cheat_menu_deferred.py index c7b1c73..aa0bf578 100644 --- a/tools/pyghidra_crusader/_tmp_patch_hidden_cheat_menu_deferred.py +++ b/tools/pyghidra_crusader/_tmp_patch_hidden_cheat_menu_deferred.py @@ -56,7 +56,7 @@ def print_instructions(address_text: str, count: int) -> None: instruction = instruction.getNext() -tx = program.startTransaction("Patch hidden cheat menu via deferred 0x103 lane") +tx = program.startTransaction("Patch hidden usecode debugger via deferred 0x103 lane") commit = False try: write_bytes("1130:2b78", bytes.fromhex("9A 86 00 A0 13"), bytes.fromhex("9A 76 04 D8 12")) diff --git a/tools/tests/test_usecode_structuring.py b/tools/tests/test_usecode_structuring.py new file mode 100644 index 0000000..c85df85 --- /dev/null +++ b/tools/tests/test_usecode_structuring.py @@ -0,0 +1,54 @@ +from __future__ import annotations + +import unittest + +from tools.poc_crusader_usecode_parser import render_structured_pseudocode + + +class UsecodeStructuringTests(unittest.TestCase): + def test_alarmbox_style_forward_flow_renders_without_block_labels(self) -> None: + blocks = [ + ("entry", ["set_info(0x0211, *(arg_06));", "process_exclude();", "if var goto block_0330;"]), + ("block_026D", ["if !Intrinsic0000() goto block_02CB;"]), + ("block_027C", ["if (Item.getFrame(arg_06) != 0) goto block_029B;"]), + ("block_028B", ["goto block_02BA;"]), + ("block_029B", ["if (Item.getFrame(arg_06) != 1) goto block_02BA;"]), + ("block_02AA", ["goto block_02BA;"]), + ("block_02BA", ["spawn class_0A0C_slot_3B(0x00000000);"]), + ("block_02CB", ["a = Item.getStatus(arg_06);", "if ((a & 4) != 0) goto block_032D;"]), + ("block_02E7", ["if (Item.getMapNum(arg_06) != 0) goto block_032D;"]), + ("block_02F9", ["spawn class_0A18_slot_20(pid, 0, *(arg_06), arg_06);", "suspend;"]), + ("block_032D", ["goto block_03C3;"]), + ("block_0330", ["if Intrinsic0000() goto block_03C3;"]), + ("block_033B", ["if (Item.getFrame(arg_06) != 2) goto block_035A;"]), + ("block_034A", ["goto block_0379;"]), + ("block_035A", ["if (Item.getFrame(arg_06) != 3) goto block_0379;"]), + ("block_0369", ["goto block_0379;"]), + ("block_0379", ["spawn class_0A0C_slot_3C(0x00000000);", "if (Item.getMapNum(arg_06) != 0) goto block_03C3;"]), + ("block_039C", ["spawn class_0A18_slot_20(pid, 1, *(arg_06), arg_06);", "suspend;"]), + ("block_03C3", ["return;"]), + ] + + rendered = render_structured_pseudocode(blocks) + + self.assertIsNotNone(rendered) + text = "\n".join(rendered or []) + self.assertNotIn("block_027C:", text) + self.assertNotIn("goto block_03C3;", text) + self.assertIn("if (!var) {", text) + self.assertIn("if (Intrinsic0000()) {", text) + self.assertIn("if ((a & 4) == 0) {", text) + self.assertIn("if (!Intrinsic0000()) {", text) + + def test_backward_jump_keeps_structured_renderer_disabled(self) -> None: + blocks = [ + ("entry", ["if flag goto block_0010;"]), + ("block_0004", ["return;"]), + ("block_0010", ["goto entry;"]), + ] + + self.assertIsNone(render_structured_pseudocode(blocks)) + + +if __name__ == "__main__": + unittest.main() \ No newline at end of file