Pseudocode and stuff

This commit is contained in:
MaddoScientisto 2026-03-25 23:32:13 +01:00
commit ee33f94b4b
466 changed files with 27770 additions and 276 deletions

View file

@ -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;
}

View file

@ -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;
}