This was built to track decompiler and CFG progress.
An error occurred while decompiling the function: Expected StandaloneNode
{
"frames": []
}
{
"current_block_id": {
"index": 4,
"address": 16755,
"block_type": "Normal"
},
"current_ast_node_stack": [],
"current_instruction": {
"opcode": "Jne",
"operand": {
"Number": 16765
},
"address": 16754
}
}
function public.showTextEditor(texttype#4, textoptions#3, textlines#2, temp.settext)
{
// RegionId(1)
if (!temp.texttype)
{
lit#7 = 0;
return lit#7;
}
// RegionId(2)
else
{
lit#9 = "TStaticVar";
new_node#10 = new lit#9(unknown_object#8);
this.titles = new_node#10;
lit#12 = "Weapons of player %s";
this.titles.playerweapons = lit#12;
lit#14 = "Flags of player %s";
this.titles.playerflags = lit#14;
lit#16 = "Server flags";
this.titles.serverflags = lit#16;
lit#18 = "Server options for ";
this.titles.options = lit#18 @ servername#19;
lit#21 = "Comments of player %s";
this.titles.comments = lit#21;
lit#23 = "Global staff activity of player %s";
this.titles.staffactivity = lit#23;
lit#25 = "Global ban history of player %s";
this.titles.banhistory = lit#25;
lit#27 = "Chests of player %s";
this.titles.playerchests = lit#27;
lit#29 = "Script of class %s";
this.titles.class = lit#29;
lit#31 = "Script of weapon %s";
this.titles.weapon = lit#31;
lit#33 = "Documentation for %s";
this.titles.scripthelp = lit#33;
lit#35 = "File %s";
this.titles.editastext = lit#35;
this.texteditors++;
lit#37 = "ScriptedRCTextEditor_Window";
gbf_new_obj#38 = lit#37 @ this.texteditors;
lit#39 = "GuiWindowCtrl";
new_node#40 = new lit#39(gbf_new_obj#38);
gbf_new_obj#41 = new_node#40;
// RegionId(2)
// RegionId(3)
with (gbf_new_obj#38)
{
this.tags = {temp.texttype, temp.textoptions, temp.textlines};
this.windowid = thiso.texteditors;
lit#46 = 60;
lit#47 = 60;
position#48 = {lit#47, lit#46};
lit#50 = 0;
lit#51 = null;
// RegionId(3)
// RegionId(4)
if (thiso.titles.temp.texttype != lit#51)
{
}
// RegionId(5)
else
{
lit#52 = "%s ";
}
builtin_fn_call#53 = phi<idx=0, regions=()>.trim();
builtin_fn_call#54 = phi_fn_call({format, builtin_fn_call#53, ...phi<idx=1, regions=()>});
phi<idx=2, regions=()> = builtin_fn_call#54;
lit#56 = "GuiBlueWindowProfile";
profile#57 = lit#56;
lit#59 = true;
useOwnProfile#60 = lit#59;
fn_call#63 = getGUIStyle#62();
style#64 = fn_call#63;
lit#66 = true;
clientrelative#67 = lit#66;
lit#69 = 282;
lit#70 = 440;
clientextent#71 = {lit#70, lit#69};
lit#73 = true;
visible#74 = lit#73;
lit#76 = true;
isexternal#77 = lit#76;
fn_call#79 = bringToFront#78();
lit#81 = true;
closequery#82 = lit#81;
lit#83 = "onTextEditorCloseQuery";
lit#84 = "onCloseQuery";
fn_call#86 = thiso.catchevent(this#5, lit#84, lit#83);
lit#87 = "ScriptedRCTextEditor_Scroll";
gbf_new_obj#88 = lit#87 @ thiso.texteditors;
lit#89 = "GuiScrollCtrl";
new_node#90 = new lit#89(gbf_new_obj#88);
gbf_new_obj#91 = new_node#90;
// RegionId(6)
// RegionId(7)
with (gbf_new_obj#88)
{
lit#93 = "width";
horizSizing#94 = lit#93;
lit#96 = "height";
vertSizing#97 = lit#96;
lit#98 = 2;
lit#99 = 2;
position#100 = {lit#99, lit#98};
lit#102 = 245;
lit#103 = 436;
extent#104 = {lit#103, lit#102};
lit#105 = true;
useOwnProfile#106 = lit#105;
lit#108 = "255 255 255";
profile.fillColor = lit#108;
lit#110 = true;
profile.opaque = lit#110;
lit#112 = 1;
profile.border = lit#112;
lit#114 = "guiblue_scroll_noback.png";
profile.bitmap = lit#114;
lit#115 = "height";
vertSizing#116 = lit#115;
lit#117 = "width";
horizSizing#118 = lit#117;
lit#120 = "dynamic";
hScrollBar#121 = lit#120;
lit#123 = "dynamic";
vScrollBar#124 = lit#123;
lit#125 = "ScriptedRCTextEditor_TextEdit";
gbf_new_obj#126 = lit#125 @ thiso.texteditors;
lit#127 = "GuiMLTextEditCtrl";
new_node#128 = new lit#127(gbf_new_obj#126);
gbf_new_obj#129 = new_node#128;
// RegionId(7)
// RegionId(8)
with (gbf_new_obj#126)
{
profile#131 = SyntaxHighlightProfile#130;
lit#132 = 240;
lit#133 = 430;
extent#134 = {lit#133, lit#132};
lit#136 = "npcflags";
lit#137 = "weapon";
lit#138 = "class";
lit#139 = "npc";
syntaxhighlighting#140 = temp.texttype in {lit#139, lit#138, lit#137, lit#136};
lit#142 = false;
wordwrap#143 = lit#142;
lit#145 = 2;
tabspaces#146 = lit#145;
lit#148 = true;
autoindenting#149 = lit#148;
// RegionId(8)
// RegionId(9)
if (temp.settext)
{
fn_call#151 = setText#150(temp.textlines);
}
// RegionId(10)
else
{
fn_call#153 = setLines#152(temp.textlines);
}
lit#154 = "onTextEditorLineChanged";
lit#155 = "onCursorLineChanged";
fn_call#156 = thiso.catchevent(this#5, lit#155, lit#154);
lit#157 = "onTextEditorKeyDown";
lit#158 = "onKeyDown";
fn_call#159 = thiso.catchevent(this#5, lit#158, lit#157);
thiso.selectedtextarea = this#5;
}
fn_call#162 = addcontrol#161(phi<idx=0, regions=()>);
}
fn_call#163 = addcontrol#161(phi<idx=0, regions=()>);
lit#164 = "ScriptedRCTextEditor_LineCount";
gbf_new_obj#165 = lit#164 @ thiso.texteditors;
lit#166 = "GuiTextCtrl";
new_node#167 = new lit#166(gbf_new_obj#165);
gbf_new_obj#168 = new_node#167;
// RegionId(13)
// RegionId(14)
with (gbf_new_obj#165)
{
profile#170 = GuiBlueTextProfile#169;
lit#171 = 254;
lit#172 = 8;
position#173 = {lit#172, lit#171};
lit#174 = 16;
lit#175 = 100;
extent#176 = {lit#175, lit#174};
lit#177 = "top";
vertSizing#178 = lit#177;
lit#179 = "";
text#180 = lit#179;
}
fn_call#181 = addcontrol#161(phi<idx=0, regions=()>);
lit#182 = "ScriptedRCTextEditor_FindButton";
gbf_new_obj#183 = lit#182 @ thiso.texteditors;
lit#184 = "GuiButtonCtrl";
new_node#185 = new lit#184(gbf_new_obj#183);
gbf_new_obj#186 = new_node#185;
// RegionId(15)
// RegionId(16)
with (gbf_new_obj#183)
{
profile#188 = GuiBlueButtonProfile#187;
lit#190 = true;
active#191 = lit#190;
lit#192 = 31;
lit#193 = 64;
extent#194 = {lit#193, lit#192};
lit#195 = 249;
lit#196 = 242;
position#197 = {lit#196, lit#195};
lit#198 = "top";
vertSizing#199 = lit#198;
lit#200 = "left";
horizSizing#201 = lit#200;
lit#202 = "&Find";
text#203 = lit#202;
lit#204 = "onOpenFindReplace";
lit#205 = "onAction";
fn_call#207 = thiso.catchEvent(this#5, lit#205, lit#204);
}
fn_call#208 = addcontrol#161(phi<idx=0, regions=()>);
lit#209 = "ScriptedRCTextEditor_ApplyButton";
gbf_new_obj#210 = lit#209 @ thiso.texteditors;
lit#211 = "GuiButtonCtrl";
new_node#212 = new lit#211(gbf_new_obj#210);
gbf_new_obj#213 = new_node#212;
// RegionId(17)
// RegionId(18)
with (gbf_new_obj#210)
{
profile#214 = GuiBlueButtonProfile#187;
lit#215 = "scripthelp";
lit#216 = "banhistory";
lit#217 = "staffactivity";
active#218 = !(temp.texttype in {lit#217, lit#216, lit#215});
lit#219 = 31;
lit#220 = 64;
extent#221 = {lit#220, lit#219};
lit#222 = 249;
lit#223 = 308;
position#224 = {lit#223, lit#222};
lit#225 = "top";
vertSizing#226 = lit#225;
lit#227 = "left";
horizSizing#228 = lit#227;
lit#229 = "&Apply";
text#230 = lit#229;
lit#231 = "onTextEditorButton";
lit#232 = "onAction";
fn_call#233 = thiso.catchEvent(this#5, lit#232, lit#231);
}
fn_call#234 = addcontrol#161(phi<idx=0, regions=()>);
lit#235 = "ScriptedRCTextEditor_CloseButton";
gbf_new_obj#236 = lit#235 @ thiso.texteditors;
lit#237 = "GuiButtonCtrl";
new_node#238 = new lit#237(gbf_new_obj#236);
gbf_new_obj#239 = new_node#238;
// RegionId(19)
// RegionId(20)
with (gbf_new_obj#236)
{
profile#240 = GuiBlueButtonProfile#187;
lit#241 = 31;
lit#242 = 64;
extent#243 = {lit#242, lit#241};
lit#244 = 249;
lit#245 = 374;
position#246 = {lit#245, lit#244};
lit#247 = "top";
vertSizing#248 = lit#247;
lit#249 = "left";
horizSizing#250 = lit#249;
lit#251 = "&Cancel";
text#252 = lit#251;
lit#253 = "onTextEditorClose";
lit#254 = "onAction";
fn_call#255 = thiso.catchEvent(this#5, lit#254, lit#253);
}
fn_call#256 = addcontrol#161(phi<idx=0, regions=()>);
}
fn_call#257 = addcontrol#161(phi<idx=0, regions=()>);
lit#258 = 0;
return lit#258;
}
}
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 38