Usecode pseudocode

This commit is contained in:
MaddoScientisto 2026-03-26 00:37:17 +01:00
commit c12bb39437
1362 changed files with 71072 additions and 38056 deletions

View file

@ -10,187 +10,107 @@ function telepad_gotHit() /* entry=111 class_id=0x01DB slot=0x06 */
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:
set_info(0x020C, *(arg_06));
process_exclude();
item = ref;
pad = *(arg_06);
theQual = Item.getQuality(pad);
set_info(1, 0);
spawn class_0A0C_slot_32(pid, 1, 0x00000000);
suspend;
class_0A0C_slot_2C(ke, ref);
if (!retval) {
return;
}
else if (Ultima8Engine.getUnkCrusaderFlag() == 1) {
/* 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:
while (!condition) {
/* loopnext */
}
return;
}
else if (Item.isCentreOn(*(arg_06), item)) {
return;
}
else {
/* global_address global_id=0x3C */
if (Item.getShape((item == 1)) != 1) {
if (theQual == 0x00FF) {
return;
}
else if ((theQual > 0) && (theQual >= 30)) {
/* global_address global_id=0x3C */
spawn class_01DB_slot_20(Actor.getMap(theQual), arg_06);
return;
}
else if (theQual == 30) {
spawn class_01DB_slot_20(30, 40, arg_06);
return;
}
else if (theQual == 31) {
spawn class_01DB_slot_20(69, 69, arg_06);
return;
}
else if (theQual == 32) {
spawn class_01DB_slot_20(16, 4, arg_06);
return;
}
else if (theQual == 33) {
spawn class_01DB_slot_20(17, 3, arg_06);
return;
}
else if (theQual == 35) {
spawn class_01DB_slot_20(30, 41, arg_06);
return;
}
else if (theQual == 100) {
spawn class_01DB_slot_20(100, 5, arg_06);
return;
}
else if (theQual == 101) {
spawn class_01DB_slot_20(101, 5, arg_06);
return;
}
else if (theQual == 0x0082) {
spawn class_01DB_slot_20(0x0082, 25, arg_06);
return;
}
else if (theQual == 0x0083) {
spawn class_01DB_slot_20(0x0083, 25, arg_06);
return;
}
else if (theQual == 0x0084) {
spawn class_01DB_slot_20(0x0082, 25, arg_06);
return;
}
else if (theQual == 0x0085) {
spawn class_01DB_slot_20(0x0083, 25, arg_06);
return;
}
else if (theQual == 0x00D7) {
spawn class_01DB_slot_20(0x00D7, 5, arg_06);
return;
}
else if (theQual == 0x00DA) {
spawn class_01DB_slot_20(0x00DA, 5, arg_06);
return;
}
else if (theQual == 0x00DB) {
spawn class_01DB_slot_20(0x00DB, 5, arg_06);
return;
}
else if (theQual == 0x00DC) {
spawn class_01DB_slot_20(0x00DC, 5, arg_06);
return;
}
else {
return;
}
}
}
return;
}

View file

@ -5,34 +5,18 @@ function telepad_release() /* entry=111 class_id=0x01DB slot=0x09 */
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:
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 */
while (!condition) {
if (npc == 1) {
onPad = 1;
}
/* loopnext */
goto block_0B3B;
block_0B57:
if (!onPad) goto block_0B69;
block_0B62:
block_0B69:
return;
}
return;
}

View file

@ -1,13 +1,6 @@
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;
set_info(0x021B, *(arg_06));
process_exclude();
return;
}

View file

@ -13,165 +13,108 @@ function telepad_slot_20() /* entry=111 class_id=0x01DB slot=0x20 */
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:
set_info(1, 0);
/* global_address global_id=0x3C */
if (!Actor.isDead()) {
return;
}
else {
/* 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:
if (mapNum == 69) {
/* global_address global_id=0x3C */
if (Actor.getMap() == mapNum) {
suspend;
if (mapNum == 40) {
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 (Actor.getMap() == 1) {
/* str_to_ptr */
/* free_stack_string value_u8=0x4 target=[SP+04h] */
suspend;
}
else if (Actor.getMap() == 13) {
/* str_to_ptr */
/* free_stack_string value_u8=0x4 target=[SP+04h] */
suspend;
}
else if (Actor.getMap() == 5) {
/* 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;
}
return;
}
if (mapNum == 41) {
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;
return;
}
if (!mapNum) {
suspend;
}
suspend;
}
else {
suspend;
}
}
/* 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;
if (eggNum == 69) {
/* global_address global_id=0x3C */
y = Item.getY();
/* 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 */
while (!condition) {
newx = Item.getX(floor);
newy = Item.getY(floor);
newz = Item.getZ(floor);
/* loopnext */
}
/* 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 */
while (!condition) {
/* loopnext */
}
spawn class_0A0C_slot_32(pid, 5, 0x00000000);
suspend;
counter = 0;
while (counter > 40) {
spawn class_0A0C_slot_32(pid, 10, 0x00000000);
suspend;
counter = (1 + counter);
}
/* global_address global_id=0x3C */
return;
}
else {
/* global_address global_id=0x3C */
}
}
return;
}