This was built to track decompiler and CFG progress.
function public.createHearts()
{
lit#2 = "UpdateHearts";
fn_call#4 = cancelEvents#3(lit#2);
// RegionId(0)
// RegionId(1)
if (player.level.hidehearts)
{
}
// RegionId(3)
if (phi<idx=0, regions=()>)
{
lit#11 = false;
Sys_Hearts_Control.visible = lit#11;
lit#12 = 0;
return lit#12;
}
// RegionId(4)
else
{
// RegionId(4)
// RegionId(5)
if (!Deadwood_LabyrinthHUD.visible)
{
}
phi<idx=1, regions=()> = phi<idx=0, regions=()>;
fn_call#16 = Sys_Hearts_Control.destroy();
temp.controlscale = ControlsContainer.height / ControlsContainer.clientheight;
lit#22 = 1;
lit#23 = 3;
lit#24 = 1;
builtin_fn_call#25 = int(temp.controlscale / lit#24);
builtin_fn_call#26 = min(lit#23, builtin_fn_call#25);
builtin_fn_call#27 = max(lit#22, builtin_fn_call#26);
temp.scale = builtin_fn_call#27;
temp.control = GraalControl#29;
lit#30 = "quickfavorites_bgcontrol";
fn_call#32 = isObject#31(lit#30);
// RegionId(7)
// RegionId(8)
if (fn_call#32)
{
// RegionId(8)
// RegionId(9)
if (!quickfavorites_bgcontrol.leaving)
{
fn_call#36 = quickfavorites_bgcontrol.isActuallyVisible();
// RegionId(9)
// RegionId(10)
if (fn_call#36)
{
temp.offsetx = quickfavorites_bgcontrol.clientwidth;
}
}
}
lit#39 = 100;
temp.width = lit#39;
lit#40 = 60;
temp.height = lit#40;
// RegionId(11)
// RegionId(12)
if (clientr.isStaff)
{
lit#44 = 30;
}
// RegionId(13)
else
{
lit#45 = 16;
}
phi<idx=1, regions=()> = phi<idx=0, regions=()>;
// RegionId(14)
// RegionId(15)
if (clientr.isStaff)
{
lit#47 = 400;
}
// RegionId(16)
else
{
lit#48 = 230;
}
phi<idx=1, regions=()> = phi<idx=0, regions=()>;
fn_call#51 = detectCanUseSafeArea#50();
temp.safeArea = fn_call#51;
// RegionId(17)
// RegionId(18)
if ((temp.y + (temp.height * temp.scale)) > (temp.control.height - (temp.buttonheight * temp.controlscale)))
{
lit#52 = 55;
temp.offsetx = (lit#52 * temp.controlscale) + ControlsContainer.x;
}
lit#54 = 0;
// RegionId(19)
// RegionId(20)
if (temp.offsetx <= lit#54)
{
// RegionId(20)
// RegionId(21)
if (Classic_FullscreenButtton.visible)
{
lit#56 = 40;
temp.offsetx = lit#56;
}
}
// RegionId(22)
// RegionId(23)
if (this.canUseSafeArea)
{
lit#59 = 0;
lit#60 = 2;
lit#61 = 16;
temp.x = (((temp.safeArea[lit#59] + temp.safeArea[lit#60]) - (temp.width * temp.scale)) - lit#61) - temp.offsetx;
}
// RegionId(24)
else
{
lit#62 = 16;
temp.x = ((temp.control.clientwidth - (temp.width * temp.scale)) - lit#62) - temp.offsetx;
}
// RegionId(25)
// RegionId(26)
with (temp.control)
{
lit#63 = "Sys_Hearts_Control";
gbf_new_obj#64 = lit#63;
lit#65 = "GuiStretchCtrl";
new_node#66 = new lit#65(gbf_new_obj#64);
gbf_new_obj#67 = new_node#66;
// RegionId(26)
// RegionId(27)
with (gbf_new_obj#64)
{
lit#69 = true;
useownprofile#70 = lit#69;
lit#73 = false;
profile.modal = lit#73;
lit#75 = 0;
profile.border = lit#75;
width#76 = temp.width * temp.scale;
height#77 = temp.height * temp.scale;
x#78 = temp.x;
y#79 = temp.y;
lit#81 = "left";
horizsizing#82 = lit#81;
lit#85 = false;
clipchildren#86 = lit#85;
cliptobounds#87 = clipchildren#84;
clientwidth#88 = temp.width;
clientheight#89 = temp.height;
visible#90 = temp.visible;
lit#92 = false;
this.rightalign = lit#92;
lit#93 = "Sys_Hearts_SubControl";
gbf_new_obj#94 = lit#93;
lit#95 = "GuiControl";
new_node#96 = new lit#95(gbf_new_obj#94);
gbf_new_obj#97 = new_node#96;
// RegionId(27)
// RegionId(28)
with (gbf_new_obj#94)
{
lit#98 = true;
useownprofile#99 = lit#98;
lit#100 = false;
profile.modal = lit#100;
lit#101 = 0;
profile.border = lit#101;
lit#102 = 0;
lit#103 = 0;
fn_call#105 = resize#104(lit#103, lit#102, Sys_Hearts_Control.clientwidth, Sys_Hearts_Control.clientheight);
lit#106 = false;
clipchildren#107 = lit#106;
cliptobounds#108 = clipchildren#86;
}
fn_call#110 = addcontrol#109(phi<idx=0, regions=()>);
}
fn_call#111 = addcontrol#109(phi<idx=0, regions=()>);
}
fn_call#113 = onUpdateHearts#112();
lit#114 = 0;
return lit#114;
}
}
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 54