This was built to track decompiler and CFG progress.
function public.onIceFreezePlayer(temp.time, temp.oldKeyPressed)
{
lit#7 = 0;
// RegionId(0)
// RegionId(1)
if (temp.time <= lit#7)
{
lit#9 = 0;
// RegionId(1)
// RegionId(2)
if (player.hearts <= lit#9)
{
lit#12 = "dead";
}
}
// RegionId(4)
if (phi<idx=0, regions=()>)
{
lit#14 = false;
player.frozen = lit#14;
lit#17 = false;
player.isinvincible2 = lit#17;
player.isinvincible = player.isinvincible2;
lit#18 = 100;
fn_call#20 = hideimg#19(lit#18);
lit#21 = 20001;
fn_call#23 = findimg#22(lit#21);
// RegionId(4)
// RegionId(5)
with (fn_call#23)
{
// RegionId(5)
// RegionId(6)
with (emitter#24)
{
lit#25 = 0;
temp.i = lit#25;
lit#26 = 10;
while (temp.i < lit#26)
{
fn_call#28 = emit#27();
temp.i++;
}
}
}
lit#29 = 20001;
lit#30 = "HideAni";
lit#31 = 1;
lit#32 = "-System";
fn_call#34 = lit.scheduleEvent(lit#31, lit#30, lit#29);
lit#35 = 0;
return lit#35;
}
// RegionId(12)
else
{
lit#36 = true;
player.frozen = lit#36;
lit#37 = true;
player.isinvincible2 = lit#37;
player.isinvincible = player.isinvincible2;
lit#38 = -1;
temp.keyPressed = lit#38;
lit#39 = 0;
temp.i = lit#39;
lit#40 = 4;
while (temp.i < lit#40)
{
fn_call#41 = keydown#3(temp.i);
// RegionId(14)
// RegionId(15)
if (fn_call#41)
{
temp.keyPressed = temp.i;
}
temp.i++;
}
lit#42 = -1;
// RegionId(17)
// RegionId(18)
if (!(lit#42 in {temp.keyPressed, temp.oldKeyPressed}))
{
// RegionId(18)
// RegionId(19)
if (temp.keyPressed != temp.oldKeyPressed)
{
lit#44 = -0.35;
lit#45 = 0.35;
builtin_fn_call#46 = random(lit#44, lit#45);
lit#47 = -0.35;
lit#48 = 0.35;
builtin_fn_call#49 = random(lit#47, lit#48);
temp.offset = {builtin_fn_call#49, builtin_fn_call#46};
lit#50 = 0.1;
temp.time = temp.time - lit#50;
lit#51 = 20001;
fn_call#52 = findimg#22(lit#51);
// RegionId(19)
// RegionId(20)
with (fn_call#52)
{
// RegionId(20)
// RegionId(21)
with (emitter#24)
{
lit#53 = 0;
temp.i = lit#53;
lit#54 = 3;
while (temp.i < lit#54)
{
fn_call#55 = emit#27();
temp.i++;
}
}
}
}
}
lit#57 = null;
// RegionId(26)
// RegionId(27)
if (player.maxfreeze != lit#57)
{
lit#59 = 2;
lit#60 = 2;
lit#61 = 0.5;
builtin_fn_call#62 = int(((temp.time / player.maxfreeze) * lit#60) + lit#61);
temp.frame = lit#59 - builtin_fn_call#62;
}
lit#64 = "%s[%d]";
fn_call#66 = format2#65(lit#64, {player.ani.name, player.anistep});
player.ani = fn_call#66;
fn_call#68 = freezeplayer#67(temp.time);
lit#69 = 100;
fn_call#70 = findimg#22(lit#69);
// RegionId(28)
// RegionId(29)
with (fn_call#70)
{
lit#72 = "dcfort_largeicepart";
lit#73 = ".png";
image#74 = (lit#72 @ temp.frame) @ lit#73;
lit#76 = true;
attachtoowner#77 = lit#76;
lit#79 = 0;
lit#80 = -1;
lit#81 = 1;
lit#82 = -0.5;
lit#83 = 0;
attachoffset#84 = {lit#82 + temp.offset[lit#83], lit#80 + temp.offset[lit#81], lit#79};
lit#86 = 2;
layer#87 = lit#86;
lit#89 = 1;
mode#90 = lit#89;
lit#92 = 0.75;
alpha#93 = lit#92;
lit#95 = 0;
partx#96 = lit#95;
lit#98 = 0;
party#99 = lit#98;
lit#101 = 64;
partw#102 = lit#101;
lit#103 = 64;
party#104 = lit#103;
}
lit#105 = 0.1;
lit#106 = "IceFreezePlayer";
lit#107 = 0.1;
fn_call#108 = scheduleEvent#33(lit#107, lit#106, temp.time - lit#105, temp.keyPressed);
lit#109 = 0;
return lit#109;
}
}
Use the mouse wheel + shift to zoom in and out, and click and drag to pan.
Use the mouse wheel + shift to zoom in and out, and click and drag to pan.
Step 1 of 58