This was built to track decompiler and CFG progress.
The AST Node stack is empty.
{
"frames": [
{
"line": 212,
"function": "gbf_core::decompiler::function_decompiler_context::FunctionDecompilerContext::pop_one_node",
"file": ".\\gbf_core\\src\\decompiler\\function_decompiler_context.rs"
},
{
"line": 29,
"function": "gbf_core::decompiler::handlers::general::impl$0::handle_instruction",
"file": ".\\gbf_core\\src\\decompiler\\handlers\\general.rs"
},
{
"line": 171,
"function": "gbf_core::decompiler::function_decompiler_context::FunctionDecompilerContext::process_instruction",
"file": ".\\gbf_core\\src\\decompiler\\function_decompiler_context.rs"
},
{
"line": 467,
"file": ".\\gbf_core\\src\\decompiler\\function_decompiler.rs",
"function": "gbf_core::decompiler::function_decompiler::FunctionDecompiler::process_regions"
},
{
"line": 286,
"file": ".\\gbf_core\\src\\decompiler\\function_decompiler.rs",
"function": "gbf_core::decompiler::function_decompiler::FunctionDecompiler::decompile"
}
]
}
{
"current_block_id": {
"index": 7,
"address": 19822,
"block_type": "Normal"
},
"current_ast_node_stack": [],
"current_instruction": {
"opcode": "Pop",
"operand": null,
"address": 19823
}
}
function showBanWindow(texttype#2, textoptions#1, textlines#0)
{
lit#12 = null;
// RegionId(0)
// RegionId(1)
if (ScriptedRCBanWindow#11 != lit#12)
{
fn_call#14 = ScriptedRCBanWindow.destroy();
}
lit#16 = "TStaticVar";
new_node#17 = new lit#16(unknown_object#15);
temp.ban = new_node#17;
lit#18 = "TStaticVar";
new_node#19 = new lit#18(unknown_object#15);
temp.pcban = new_node#19;
lit#20 = "TStaticVar";
new_node#21 = new lit#20(unknown_object#15);
temp.globalban = new_node#21;
lit#22 = "TStaticVar";
new_node#23 = new lit#22(unknown_object#15);
temp.globalpcban = new_node#23;
lit#24 = 2;
temp.i = lit#24;
builtin_fn_call#25 = temp.textlines.size();
while (temp.i < builtin_fn_call#25)
{
lit#26 = "TStaticVar";
new_node#27 = new lit#26(unknown_object#15);
temp.data = new_node#27;
lit#28 = 0;
for (phi<idx=0, regions=()> : phi<idx=1, regions=()>)
{
lit#29 = 0;
lit#30 = "=";
builtin_fn_call#31 = temp.line.pos(lit#30);
builtin_fn_call#32 = temp.line.substring(lit#29, builtin_fn_call#31);
lit#33 = "=";
builtin_fn_call#34 = temp.line.pos(lit#33);
lit#35 = 1;
lit#36 = -1;
builtin_fn_call#37 = temp.line.substring(builtin_fn_call#34 + lit#35, lit#36);
temp.data.builtin_fn_call = builtin_fn_call#37;
phi<idx=0, regions=()>++;
}
lit#39 = "all";
// RegionId(7)
// RegionId(8)
if (temp.data.world != lit#39)
{
lit#41 = "pc:";
builtin_fn_call#42 = temp.data.account.starts(lit#41);
// RegionId(8)
// RegionId(9)
if (builtin_fn_call#42)
{
fn_call#44 = temp.pcban.copyfrom(temp.data);
}
// RegionId(10)
else
{
fn_call#45 = temp.ban.copyfrom(temp.data);
}
}
// RegionId(11)
else
{
lit#46 = "pc:";
builtin_fn_call#47 = temp.data.account.starts(lit#46);
// RegionId(11)
// RegionId(12)
if (builtin_fn_call#47)
{
fn_call#48 = temp.globalpcban.copyfrom(temp.data);
}
// RegionId(13)
else
{
fn_call#49 = temp.globalban.copyfrom(temp.data);
}
}
fn_call#50 = temp.data.destroy();
temp.i++;
}
gbf_new_obj#51 = ScriptedRCBanWindow#11;
lit#52 = "GuiWindowCtrl";
new_node#53 = new lit#52(gbf_new_obj#51);
gbf_new_obj#54 = new_node#53;
// RegionId(15)
// RegionId(16)
with (gbf_new_obj#51)
{
lit#56 = 100;
lit#57 = 100;
position#58 = {lit#57, lit#56};
lit#60 = "GuiBlueWindowProfile";
profile#61 = lit#60;
lit#63 = true;
useOwnProfile#64 = lit#63;
lit#66 = true;
visible#67 = lit#66;
fn_call#70 = getGUIStyle#69();
style#71 = fn_call#70;
lit#73 = true;
clientrelative#74 = lit#73;
lit#76 = 186;
lit#77 = 534;
clientextent#78 = {lit#77, lit#76};
lit#80 = true;
isexternal#81 = lit#80;
lit#83 = false;
canmaximize#84 = lit#83;
lit#86 = false;
canresize#87 = lit#86;
lit#90 = 0;
this.acc = temp.textlines[lit#90];
lit#92 = 1;
this.pcid = temp.textlines[lit#92];
lit#94 = 0;
lit#95 = null;
// RegionId(16)
// RegionId(17)
if (temp.textlines[lit#94] != lit#95)
{
lit#96 = 0;
}
// RegionId(18)
else
{
lit#97 = "Player";
}
phi<idx=1, regions=()> = phi<idx=0, regions=()>;
lit#99 = "Ban information of ";
text#100 = lit#99 @ this.dispname;
fn_call#102 = bringToFront#101();
gbf_new_obj#104 = ScriptedRCBanWindowTabSelect#103;
lit#105 = "GuiTabCtrl";
new_node#106 = new lit#105(gbf_new_obj#104);
gbf_new_obj#107 = new_node#106;
// RegionId(19)
// RegionId(20)
with (gbf_new_obj#104)
{
lit#108 = 2;
lit#109 = 2;
position#110 = {lit#109, lit#108};
lit#112 = 24;
lit#113 = 530;
extent#114 = {lit#113, lit#112};
profile#116 = GuiBlueTabProfile#115;
lit#117 = 16;
lit#118 = 16;
fn_call#120 = seticonsize#119(lit#118, lit#117);
lit#122 = 120;
tabwidth#123 = lit#122;
lit#125 = "width";
horizSizing#126 = lit#125;
lit#127 = 0;
fn_call#129 = setselectedrow#128(lit#127);
}
fn_call#131 = addcontrol#130(phi<idx=0, regions=()>);
gbf_new_obj#133 = ScriptedRCBanWindowAccountPane#132;
lit#134 = "GuiScrollCtrl";
new_node#135 = new lit#134(gbf_new_obj#133);
gbf_new_obj#136 = new_node#135;
// RegionId(21)
// RegionId(22)
with (gbf_new_obj#133)
{
lit#137 = 26;
lit#138 = 2;
position#139 = {lit#138, lit#137};
lit#140 = 121;
lit#141 = 530;
extent#142 = {lit#141, lit#140};
lit#143 = "GuiBlueScrollProfile";
profile#144 = lit#143;
lit#146 = "alwaysOff";
hScrollBar#147 = lit#146;
lit#149 = "alwaysOff";
vScrollBar#150 = lit#149;
lit#151 = "width";
horizSizing#152 = lit#151;
lit#154 = "height";
vertSizing#155 = lit#154;
lit#156 = false;
visible#157 = lit#156;
gbf_new_obj#159 = ScriptedRCIsBanned#158;
lit#160 = "GuiCheckBoxCtrl";
new_node#161 = new lit#160(gbf_new_obj#159);
gbf_new_obj#162 = new_node#161;
// RegionId(22)
// RegionId(23)
with (gbf_new_obj#159)
{
lit#163 = 4;
lit#164 = 10;
position#165 = {lit#164, lit#163};
lit#166 = 24;
lit#167 = 300;
extent#168 = {lit#167, lit#166};
lit#169 = "GuiBlueCheckBoxProfile";
profile#170 = lit#169;
lit#172 = null;
checked#173 = temp.ban.account != lit#172;
lit#174 = "%s is locally banned";
builtin_fn_call#175 = format(lit#174, ScriptedRCBanWindow.dispname);
text#176 = builtin_fn_call#175;
}
fn_call#177 = addcontrol#130(phi<idx=0, regions=()>);
gbf_new_obj#179 = ScriptedRCBanText1#178;
lit#180 = "GuiTextCtrl";
new_node#181 = new lit#180(gbf_new_obj#179);
gbf_new_obj#182 = new_node#181;
// RegionId(24)
// RegionId(25)
with (gbf_new_obj#179)
{
lit#183 = 38;
lit#184 = 10;
position#185 = {lit#184, lit#183};
lit#186 = 24;
lit#187 = 100;
extent#188 = {lit#187, lit#186};
lit#189 = "Ban type: ";
text#190 = lit#189;
lit#191 = "GuiBlueTextProfile";
profile#192 = lit#191;
}
fn_call#193 = addcontrol#130(phi<idx=0, regions=()>);
gbf_new_obj#195 = ScriptedRCBanType#194;
lit#196 = "GuiPopUpMenuCtrl";
new_node#197 = new lit#196(gbf_new_obj#195);
gbf_new_obj#198 = new_node#197;
// RegionId(26)
// RegionId(27)
with (gbf_new_obj#195)
{
lit#199 = 36;
lit#200 = 64;
position#201 = {lit#200, lit#199};
lit#202 = 24;
lit#203 = 400;
extent#204 = {lit#203, lit#202};
lit#205 = "GuiBluePopUpMenuProfile";
profile#206 = lit#205;
lit#208 = "GuiBlueScrollProfile";
scrollprofile#209 = lit#208;
lit#211 = "GuiBlueTextListProfile";
textprofile#212 = lit#211;
lit#213 = "width";
horizSizing#214 = lit#213;
fn_call#216 = clearRows#215();
lit#218 = 0;
temp.rowindex = lit#218;
lit#222 = 0;
for (phi<idx=0, regions=()> : phi<idx=1, regions=()>)
{
lit#224 = 1;
lit#225 = 100000000;
// RegionId(29)
// RegionId(30)
if (temp.bantype[lit#224] > lit#225)
{
lit#226 = "(Unlimited)";
}
// RegionId(31)
else
{
lit#227 = "(";
lit#228 = 1;
lit#229 = 60;
lit#230 = 60;
lit#231 = 24;
lit#232 = " days)";
}
phi<idx=1, regions=()> = phi<idx=0, regions=()>;
lit#233 = 0;
lit#234 = " ";
fn_call#236 = addRow#235(temp.rowindex, (temp.bantype[lit#233] @ lit#234) @ temp.banlength);
// RegionId(32)
// RegionId(33)
with (fn_call#236)
{
lit#238 = 0;
this.banname = temp.bantype[lit#238];
lit#240 = 1;
this.time = temp.bantype[lit#240];
}
temp.rowindex++;
phi<idx=0, regions=()>++;
}
lit#243 = 0;
for (phi<idx=0, regions=()> : phi<idx=1, regions=()>)
{
builtin_fn_call#244 = temp.row.banname.starts(temp.ban.bantype);
// RegionId(37)
// RegionId(38)
if (builtin_fn_call#244)
{
fn_call#246 = setselectedrow#128(temp.row.id);
}
phi<idx=0, regions=()>++;
}
}
fn_call#247 = addcontrol#130(phi<idx=0, regions=()>);
gbf_new_obj#249 = ScriptedRCBanText2#248;
lit#250 = "GuiTextCtrl";
new_node#251 = new lit#250(gbf_new_obj#249);
gbf_new_obj#252 = new_node#251;
// RegionId(41)
// RegionId(42)
with (gbf_new_obj#249)
{
lit#253 = 66;
lit#254 = 10;
position#255 = {lit#254, lit#253};
lit#256 = 24;
lit#257 = 200;
extent#258 = {lit#257, lit#256};
lit#259 = "GuiBlueTextProfile";
profile#260 = lit#259;
lit#261 = "Reason: ";
text#262 = lit#261;
}
fn_call#263 = addcontrol#130(phi<idx=0, regions=()>);
gbf_new_obj#265 = ScriptedRCBanText3#264;
lit#266 = "GuiMLTextCtrl";
new_node#267 = new lit#266(gbf_new_obj#265);
gbf_new_obj#268 = new_node#267;
// RegionId(43)
// RegionId(44)
with (gbf_new_obj#265)
{
lit#269 = 94;
lit#270 = 10;
position#271 = {lit#270, lit#269};
lit#272 = 24;
lit#273 = 290;
extent#274 = {lit#273, lit#272};
lit#275 = "GuiBlueTextProfile";
profile#276 = lit#275;
lit#277 = "all";
// RegionId(44)
// RegionId(45)
if (temp.ban.world == lit#277)
{
lit#278 = "<font color=red><b>Globally banned</b></font> for ";
lit#280 = 3600;
lit#281 = 86400;
lit#282 = "%j days %H hours %M mins";
fn_call#284 = timestamp#283(lit#282, (temp.ban.releasetime - lit#280) - lit#281);
}
// RegionId(46)
else
{
lit#285 = 0;
// RegionId(46)
// RegionId(47)
if (temp.ban.releasetime == lit#285)
{
lit#286 = "<font color=limegreen><b>Not banned</b></font>";
}
// RegionId(48)
else
{
lit#287 = "<font color=red><b>Locally banned</b></font> for ";
lit#288 = 3600;
lit#289 = 86400;
lit#290 = "%j days %H hours %M mins";
fn_call#291 = timestamp#283(lit#290, (temp.ban.releasetime - lit#288) - lit#289);
}
}
phi<idx=1, regions=()> = phi<idx=0, regions=()>;
}
fn_call#292 = addcontrol#130(phi<idx=0, regions=()>);
gbf_new_obj#294 = ScriptedRCBanReason#293;
lit#295 = "GuiTextEditCtrl";
new_node#296 = new lit#295(gbf_new_obj#294);
gbf_new_obj#297 = new_node#296;
// RegionId(50)
// RegionId(51)
with (gbf_new_obj#294)
{
lit#298 = 64;
lit#299 = 64;
position#300 = {lit#299, lit#298};
lit#301 = 24;
lit#302 = 420;
extent#303 = {lit#302, lit#301};
lit#304 = "GuiBlueTextEditProfile";
profile#305 = lit#304;
lit#306 = "width";
horizSizing#307 = lit#306;
}
fn_call#308 = addcontrol#130(phi<idx=0, regions=()>);
}
fn_call#309 = addcontrol#130(phi<idx=0, regions=()>);
gbf_new_obj#311 = ScriptedRCBanWindowPCPane#310;
lit#312 = "GuiScrollCtrl";
new_node#313 = new lit#312(gbf_new_obj#311);
gbf_new_obj#314 = new_node#313;
// RegionId(53)
// RegionId(54)
with (gbf_new_obj#311)
{
lit#315 = 26;
lit#316 = 2;
position#317 = {lit#316, lit#315};
lit#318 = 121;
lit#319 = 530;
extent#320 = {lit#319, lit#318};
lit#321 = "GuiBlueScrollProfile";
profile#322 = lit#321;
lit#323 = false;
visible#324 = lit#323;
lit#325 = "alwaysOff";
hScrollBar#326 = lit#325;
lit#327 = "alwaysOff";
vScrollBar#328 = lit#327;
lit#329 = "width";
horizSizing#330 = lit#329;
lit#331 = "height";
vertSizing#332 = lit#331;
gbf_new_obj#334 = ScriptedRCIsPCBanned#333;
lit#335 = "GuiCheckBoxCtrl";
new_node#336 = new lit#335(gbf_new_obj#334);
gbf_new_obj#337 = new_node#336;
// RegionId(54)
// RegionId(55)
with (gbf_new_obj#334)
{
lit#338 = 4;
lit#339 = 10;
position#340 = {lit#339, lit#338};
lit#341 = 24;
lit#342 = 300;
extent#343 = {lit#342, lit#341};
lit#344 = "GuiBlueCheckBoxProfile";
profile#345 = lit#344;
lit#346 = null;
checked#347 = temp.pcban.account != lit#346;
lit#348 = "Computer %s is locally banned";
builtin_fn_call#349 = format(lit#348, ScriptedRCBanWindow.pcid);
text#350 = builtin_fn_call#349;
}
fn_call#351 = addcontrol#130(phi<idx=0, regions=()>);
gbf_new_obj#353 = ScriptedRCBanPCText1#352;
lit#354 = "GuiTextCtrl";
new_node#355 = new lit#354(gbf_new_obj#353);
gbf_new_obj#356 = new_node#355;
// RegionId(56)
// RegionId(57)
with (gbf_new_obj#353)
{
lit#357 = 38;
lit#358 = 10;
position#359 = {lit#358, lit#357};
lit#360 = 24;
lit#361 = 100;
extent#362 = {lit#361, lit#360};
lit#363 = "Ban type: ";
text#364 = lit#363;
lit#365 = "GuiBlueTextProfile";
profile#366 = lit#365;
}
fn_call#367 = addcontrol#130(phi<idx=0, regions=()>);
gbf_new_obj#369 = ScriptedRCBanPCType#368;
lit#370 = "GuiPopUpMenuCtrl";
new_node#371 = new lit#370(gbf_new_obj#369);
gbf_new_obj#372 = new_node#371;
// RegionId(58)
// RegionId(59)
with (gbf_new_obj#369)
{
lit#373 = 36;
lit#374 = 64;
position#375 = {lit#374, lit#373};
lit#376 = 24;
lit#377 = 400;
extent#378 = {lit#377, lit#376};
lit#379 = "GuiBluePopUpMenuProfile";
profile#380 = lit#379;
lit#381 = "GuiBlueScrollProfile";
scrollprofile#382 = lit#381;
lit#383 = "GuiBlueTextListProfile";
textprofile#384 = lit#383;
fn_call#385 = clearRows#215();
lit#386 = "width";
horizSizing#387 = lit#386;
lit#388 = 0;
temp.rowindex = lit#388;
lit#389 = 0;
for (phi<idx=0, regions=()> : phi<idx=1, regions=()>)
{
lit#390 = 1;
lit#391 = 100000000;
// RegionId(61)
// RegionId(62)
if (temp.bantype[lit#390] > lit#391)
{
lit#392 = "(Unlimited)";
}
// RegionId(63)
else
{
lit#393 = "(";
lit#394 = 1;
lit#395 = 60;
lit#396 = 60;
lit#397 = 24;
lit#398 = " days)";
}
phi<idx=1, regions=()> = phi<idx=0, regions=()>;
lit#399 = 0;
lit#400 = " ";
fn_call#401 = addRow#235(temp.rowindex, (temp.bantype[lit#399] @ lit#400) @ temp.banlength);
// RegionId(64)
// RegionId(65)
with (fn_call#401)
{
lit#402 = 0;
this.banname = temp.bantype[lit#402];
lit#403 = 1;
this.time = temp.bantype[lit#403];
}
temp.rowindex++;
phi<idx=0, regions=()>++;
}
lit#404 = 0;
for (phi<idx=0, regions=()> : phi<idx=1, regions=()>)
{
builtin_fn_call#405 = temp.row.banname.starts(temp.pcban.bantype);
// RegionId(69)
// RegionId(70)
if (builtin_fn_call#405)
{
fn_call#406 = setselectedrow#128(temp.row.id);
}
phi<idx=0, regions=()>++;
}
}
fn_call#407 = addcontrol#130(phi<idx=0, regions=()>);
gbf_new_obj#409 = ScriptedRCBanPCText2#408;
lit#410 = "GuiTextCtrl";
new_node#411 = new lit#410(gbf_new_obj#409);
gbf_new_obj#412 = new_node#411;
// RegionId(73)
// RegionId(74)
with (gbf_new_obj#409)
{
lit#413 = 66;
lit#414 = 10;
position#415 = {lit#414, lit#413};
lit#416 = 24;
lit#417 = 200;
extent#418 = {lit#417, lit#416};
lit#419 = "GuiBlueTextProfile";
profile#420 = lit#419;
lit#421 = "Reason: ";
text#422 = lit#421;
}
fn_call#423 = addcontrol#130(phi<idx=0, regions=()>);
gbf_new_obj#425 = ScriptedRCBanPCText3#424;
lit#426 = "GuiMLTextCtrl";
new_node#427 = new lit#426(gbf_new_obj#425);
gbf_new_obj#428 = new_node#427;
// RegionId(75)
// RegionId(76)
with (gbf_new_obj#425)
{
lit#429 = 94;
lit#430 = 10;
position#431 = {lit#430, lit#429};
lit#432 = 24;
lit#433 = 290;
extent#434 = {lit#433, lit#432};
lit#435 = "GuiBlueTextProfile";
profile#436 = lit#435;
lit#437 = "all";
// RegionId(76)
// RegionId(77)
if (temp.pcban.world == lit#437)
{
lit#438 = "<font color=red><b>Globally banned</b></font> for ";
lit#439 = 3600;
lit#440 = 86400;
lit#441 = "%j days %H hours %M mins";
fn_call#442 = timestamp#283(lit#441, (temp.pcban.releasetime - lit#439) - lit#440);
}
// RegionId(78)
else
{
lit#443 = 0;
// RegionId(78)
// RegionId(79)
if (temp.pcban.releasetime == lit#443)
{
lit#444 = "<font color=limegreen><b>Not banned</b></font>";
}
// RegionId(80)
else
{
lit#445 = "<font color=red><b>Locally banned</b></font> for ";
lit#446 = 3600;
lit#447 = 86400;
lit#448 = "%j days %H hours %M mins";
fn_call#449 = timestamp#283(lit#448, (temp.pcban.releasetime - lit#446) - lit#447);
}
}
phi<idx=1, regions=()> = phi<idx=0, regions=()>;
}
fn_call#450 = addcontrol#130(phi<idx=0, regions=()>);
gbf_new_obj#452 = ScriptedRCBanPCReason#451;
lit#453 = "GuiTextEditCtrl";
new_node#454 = new lit#453(gbf_new_obj#452);
gbf_new_obj#455 = new_node#454;
// RegionId(82)
// RegionId(83)
with (gbf_new_obj#452)
{
lit#456 = 64;
lit#457 = 64;
position#458 = {lit#457, lit#456};
lit#459 = 24;
lit#460 = 420;
extent#461 = {lit#460, lit#459};
lit#462 = "width";
horizSizing#463 = lit#462;
lit#464 = "GuiBlueTextEditProfile";
profile#465 = lit#464;
}
fn_call#466 = addcontrol#130(phi<idx=0, regions=()>);
}
fn_call#467 = addcontrol#130(phi<idx=0, regions=()>);
gbf_new_obj#469 = ScriptedRCBanWindowGlobalAccountPane#468;
lit#470 = "GuiScrollCtrl";
new_node#471 = new lit#470(gbf_new_obj#469);
gbf_new_obj#472 = new_node#471;
// RegionId(85)
// RegionId(86)
with (gbf_new_obj#469)
{
lit#473 = 26;
lit#474 = 2;
position#475 = {lit#474, lit#473};
lit#476 = 121;
lit#477 = 530;
extent#478 = {lit#477, lit#476};
lit#479 = "GuiBlueScrollProfile";
profile#480 = lit#479;
lit#481 = "alwaysOff";
hScrollBar#482 = lit#481;
lit#483 = "alwaysOff";
vScrollBar#484 = lit#483;
lit#485 = "width";
horizSizing#486 = lit#485;
lit#487 = "height";
vertSizing#488 = lit#487;
lit#489 = false;
visible#490 = lit#489;
gbf_new_obj#492 = ScriptedRCIsGlobalBanned#491;
lit#493 = "GuiCheckBoxCtrl";
new_node#494 = new lit#493(gbf_new_obj#492);
gbf_new_obj#495 = new_node#494;
// RegionId(86)
// RegionId(87)
with (gbf_new_obj#492)
{
lit#496 = 4;
lit#497 = 10;
position#498 = {lit#497, lit#496};
lit#499 = 24;
lit#500 = 300;
extent#501 = {lit#500, lit#499};
lit#502 = "GuiBlueCheckBoxProfile";
profile#503 = lit#502;
lit#504 = null;
checked#505 = temp.globalban.account != lit#504;
lit#506 = "%s is globally banned";
builtin_fn_call#507 = format(lit#506, ScriptedRCBanWindow.dispname);
text#508 = builtin_fn_call#507;
}
fn_call#509 = addcontrol#130(phi<idx=0, regions=()>);
gbf_new_obj#511 = ScriptedRCBanGlobalText1#510;
lit#512 = "GuiTextCtrl";
new_node#513 = new lit#512(gbf_new_obj#511);
gbf_new_obj#514 = new_node#513;
// RegionId(88)
// RegionId(89)
with (gbf_new_obj#511)
{
lit#515 = 38;
lit#516 = 10;
position#517 = {lit#516, lit#515};
lit#518 = 24;
lit#519 = 100;
extent#520 = {lit#519, lit#518};
lit#521 = "Ban type: ";
text#522 = lit#521;
lit#523 = "GuiBlueTextProfile";
profile#524 = lit#523;
}
fn_call#525 = addcontrol#130(phi<idx=0, regions=()>);
gbf_new_obj#527 = ScriptedRCBanGlobalType#526;
lit#528 = "GuiPopUpMenuCtrl";
new_node#529 = new lit#528(gbf_new_obj#527);
gbf_new_obj#530 = new_node#529;
// RegionId(90)
// RegionId(91)
with (gbf_new_obj#527)
{
lit#531 = 36;
lit#532 = 64;
position#533 = {lit#532, lit#531};
lit#534 = 24;
lit#535 = 400;
extent#536 = {lit#535, lit#534};
lit#537 = "GuiBluePopUpMenuProfile";
profile#538 = lit#537;
lit#539 = "GuiBlueScrollProfile";
scrollprofile#540 = lit#539;
lit#541 = "GuiBlueTextListProfile";
textprofile#542 = lit#541;
lit#543 = "width";
horizSizing#544 = lit#543;
fn_call#545 = clearRows#215();
lit#546 = 0;
temp.rowindex = lit#546;
lit#547 = 0;
for (phi<idx=0, regions=()> : phi<idx=1, regions=()>)
{
lit#548 = 1;
lit#549 = 100000000;
// RegionId(93)
// RegionId(94)
if (temp.bantype[lit#548] > lit#549)
{
lit#550 = "(Unlimited)";
}
// RegionId(95)
else
{
lit#551 = "(";
lit#552 = 1;
lit#553 = 60;
lit#554 = 60;
lit#555 = 24;
lit#556 = " days)";
}
phi<idx=1, regions=()> = phi<idx=0, regions=()>;
lit#557 = 0;
lit#558 = " ";
fn_call#559 = addRow#235(temp.rowindex, (temp.bantype[lit#557] @ lit#558) @ temp.banlength);
// RegionId(96)
// RegionId(97)
with (fn_call#559)
{
lit#560 = 0;
this.banname = temp.bantype[lit#560];
lit#561 = 1;
this.time = temp.bantype[lit#561];
}
temp.rowindex++;
phi<idx=0, regions=()>++;
}
lit#562 = 0;
for (phi<idx=0, regions=()> : phi<idx=1, regions=()>)
{
builtin_fn_call#563 = temp.row.banname.starts(temp.globalban.bantype);
// RegionId(101)
// RegionId(102)
if (builtin_fn_call#563)
{
fn_call#564 = setselectedrow#128(temp.row.id);
}
phi<idx=0, regions=()>++;
}
}
fn_call#565 = addcontrol#130(phi<idx=0, regions=()>);
gbf_new_obj#567 = ScriptedRCBanGlobalText2#566;
lit#568 = "GuiTextCtrl";
new_node#569 = new lit#568(gbf_new_obj#567);
gbf_new_obj#570 = new_node#569;
// RegionId(105)
// RegionId(106)
with (gbf_new_obj#567)
{
lit#571 = 66;
lit#572 = 10;
position#573 = {lit#572, lit#571};
lit#574 = 24;
lit#575 = 200;
extent#576 = {lit#575, lit#574};
lit#577 = "GuiBlueTextProfile";
profile#578 = lit#577;
lit#579 = "Reason: ";
text#580 = lit#579;
}
fn_call#581 = addcontrol#130(phi<idx=0, regions=()>);
gbf_new_obj#583 = ScriptedRCBanGlobalText3#582;
lit#584 = "GuiMLTextCtrl";
new_node#585 = new lit#584(gbf_new_obj#583);
gbf_new_obj#586 = new_node#585;
// RegionId(107)
// RegionId(108)
with (gbf_new_obj#583)
{
lit#587 = 94;
lit#588 = 10;
position#589 = {lit#588, lit#587};
lit#590 = 24;
lit#591 = 490;
extent#592 = {lit#591, lit#590};
lit#593 = "GuiBlueTextProfile";
profile#594 = lit#593;
lit#595 = "all";
// RegionId(108)
// RegionId(109)
if (temp.globalban.world == lit#595)
{
lit#596 = "<font color=red><b>Globally banned</b></font> for ";
lit#597 = 3600;
lit#598 = 86400;
lit#599 = "%j days %H hours %M mins";
fn_call#600 = timestamp#283(lit#599, (temp.globalban.releasetime - lit#597) - lit#598);
}
// RegionId(110)
else
{
lit#601 = 0;
// RegionId(110)
// RegionId(111)
if (temp.globalban.releasetime == lit#601)
{
lit#602 = "<font color=limegreen><b>Not banned</b></font>";
}
// RegionId(112)
else
{
lit#603 = "<font color=red><b>Locally banned</b></font> for ";
lit#604 = 3600;
lit#605 = 86400;
lit#606 = "%j days %H hours %M mins";
fn_call#607 = timestamp#283(lit#606, (temp.globalban.releasetime - lit#604) - lit#605);
}
}
phi<idx=1, regions=()> = phi<idx=0, regions=()>;
}
fn_call#608 = addcontrol#130(phi<idx=0, regions=()>);
gbf_new_obj#610 = ScriptedRCBanGlobalReason#609;
lit#611 = "GuiTextEditCtrl";
new_node#612 = new lit#611(gbf_new_obj#610);
gbf_new_obj#613 = new_node#612;
// RegionId(114)
// RegionId(115)
with (gbf_new_obj#610)
{
lit#614 = 64;
lit#615 = 64;
position#616 = {lit#615, lit#614};
lit#617 = 24;
lit#618 = 420;
extent#619 = {lit#618, lit#617};
lit#620 = "GuiBlueTextEditProfile";
profile#621 = lit#620;
lit#622 = "width";
horizSizing#623 = lit#622;
}
fn_call#624 = addcontrol#130(phi<idx=0, regions=()>);
}
fn_call#625 = addcontrol#130(phi<idx=0, regions=()>);
gbf_new_obj#627 = ScriptedRCBanWindowGlobalPCPane#626;
lit#628 = "GuiScrollCtrl";
new_node#629 = new lit#628(gbf_new_obj#627);
gbf_new_obj#630 = new_node#629;
// RegionId(117)
// RegionId(118)
with (gbf_new_obj#627)
{
lit#631 = 26;
lit#632 = 2;
position#633 = {lit#632, lit#631};
lit#634 = 121;
lit#635 = 530;
extent#636 = {lit#635, lit#634};
lit#637 = "GuiBlueScrollProfile";
profile#638 = lit#637;
lit#639 = "alwaysOff";
hScrollBar#640 = lit#639;
lit#641 = "alwaysOff";
vScrollBar#642 = lit#641;
lit#643 = "width";
horizSizing#644 = lit#643;
lit#645 = "height";
vertSizing#646 = lit#645;
lit#647 = false;
visible#648 = lit#647;
gbf_new_obj#650 = ScriptedRCIsGlobalPCBanned#649;
lit#651 = "GuiCheckBoxCtrl";
new_node#652 = new lit#651(gbf_new_obj#650);
gbf_new_obj#653 = new_node#652;
// RegionId(118)
// RegionId(119)
with (gbf_new_obj#650)
{
lit#654 = 4;
lit#655 = 10;
position#656 = {lit#655, lit#654};
lit#657 = 24;
lit#658 = 300;
extent#659 = {lit#658, lit#657};
lit#660 = "GuiBlueCheckBoxProfile";
profile#661 = lit#660;
lit#662 = null;
checked#663 = temp.globalpcban.account != lit#662;
lit#664 = "Computer %s is globally banned";
builtin_fn_call#665 = format(lit#664, ScriptedRCBanWindow.pcid);
text#666 = builtin_fn_call#665;
}
fn_call#667 = addcontrol#130(phi<idx=0, regions=()>);
gbf_new_obj#669 = ScriptedRCBanGlobalPCText1#668;
lit#670 = "GuiTextCtrl";
new_node#671 = new lit#670(gbf_new_obj#669);
gbf_new_obj#672 = new_node#671;
// RegionId(120)
// RegionId(121)
with (gbf_new_obj#669)
{
lit#673 = 38;
lit#674 = 10;
position#675 = {lit#674, lit#673};
lit#676 = 24;
lit#677 = 100;
extent#678 = {lit#677, lit#676};
lit#679 = "Ban type: ";
text#680 = lit#679;
lit#681 = "GuiBlueTextProfile";
profile#682 = lit#681;
}
fn_call#683 = addcontrol#130(phi<idx=0, regions=()>);
gbf_new_obj#685 = ScriptedRCBanGlobalPCType#684;
lit#686 = "GuiPopUpMenuCtrl";
new_node#687 = new lit#686(gbf_new_obj#685);
gbf_new_obj#688 = new_node#687;
// RegionId(122)
// RegionId(123)
with (gbf_new_obj#685)
{
lit#689 = 36;
lit#690 = 64;
position#691 = {lit#690, lit#689};
lit#692 = 24;
lit#693 = 400;
extent#694 = {lit#693, lit#692};
lit#695 = "GuiBluePopUpMenuProfile";
profile#696 = lit#695;
lit#697 = "GuiBlueScrollProfile";
scrollprofile#698 = lit#697;
lit#699 = "GuiBlueTextListProfile";
textprofile#700 = lit#699;
lit#701 = "width";
horizSizing#702 = lit#701;
fn_call#703 = clearRows#215();
lit#704 = 0;
temp.rowindex = lit#704;
lit#705 = 0;
for (phi<idx=0, regions=()> : phi<idx=1, regions=()>)
{
lit#706 = 1;
lit#707 = 100000000;
// RegionId(125)
// RegionId(126)
if (temp.bantype[lit#706] > lit#707)
{
lit#708 = "(Unlimited)";
}
// RegionId(127)
else
{
lit#709 = "(";
lit#710 = 1;
lit#711 = 60;
lit#712 = 60;
lit#713 = 24;
lit#714 = " days)";
}
phi<idx=1, regions=()> = phi<idx=0, regions=()>;
lit#715 = 0;
lit#716 = " ";
fn_call#717 = addRow#235(temp.rowindex, (temp.bantype[lit#715] @ lit#716) @ temp.banlength);
// RegionId(128)
// RegionId(129)
with (fn_call#717)
{
lit#718 = 0;
this.banname = temp.bantype[lit#718];
lit#719 = 1;
this.time = temp.bantype[lit#719];
}
temp.rowindex++;
phi<idx=0, regions=()>++;
}
lit#720 = 0;
for (phi<idx=0, regions=()> : phi<idx=1, regions=()>)
{
builtin_fn_call#721 = temp.row.banname.starts(temp.globalpcban.bantype);
// RegionId(133)
// RegionId(134)
if (builtin_fn_call#721)
{
fn_call#722 = setselectedrow#128(temp.row.id);
}
phi<idx=0, regions=()>++;
}
}
fn_call#723 = addcontrol#130(phi<idx=0, regions=()>);
gbf_new_obj#725 = ScriptedRCBanGlobalPCText2#724;
lit#726 = "GuiTextCtrl";
new_node#727 = new lit#726(gbf_new_obj#725);
gbf_new_obj#728 = new_node#727;
// RegionId(137)
// RegionId(138)
with (gbf_new_obj#725)
{
lit#729 = 66;
lit#730 = 10;
position#731 = {lit#730, lit#729};
lit#732 = 24;
lit#733 = 200;
extent#734 = {lit#733, lit#732};
lit#735 = "GuiBlueTextProfile";
profile#736 = lit#735;
lit#737 = "Reason: ";
text#738 = lit#737;
}
fn_call#739 = addcontrol#130(phi<idx=0, regions=()>);
gbf_new_obj#741 = ScriptedRCBanGlobalPCText3#740;
lit#742 = "GuiMLTextCtrl";
new_node#743 = new lit#742(gbf_new_obj#741);
gbf_new_obj#744 = new_node#743;
// RegionId(139)
// RegionId(140)
with (gbf_new_obj#741)
{
lit#745 = 94;
lit#746 = 10;
position#747 = {lit#746, lit#745};
lit#748 = 24;
lit#749 = 490;
extent#750 = {lit#749, lit#748};
lit#751 = "GuiBlueTextProfile";
profile#752 = lit#751;
lit#753 = "all";
// RegionId(140)
// RegionId(141)
if (temp.globalpcban.world == lit#753)
{
lit#754 = "<font color=red><b>Globally banned</b></font> for ";
lit#755 = 3600;
lit#756 = 86400;
lit#757 = "%j days %H hours %M mins";
fn_call#758 = timestamp#283(lit#757, (temp.globalpcban.releasetime - lit#755) - lit#756);
}
// RegionId(142)
else
{
lit#759 = 0;
// RegionId(142)
// RegionId(143)
if (temp.globalpcban.releasetime == lit#759)
{
lit#760 = "<font color=limegreen><b>Not banned</b></font>";
}
// RegionId(144)
else
{
lit#761 = "<font color=red><b>Locally banned</b></font> for ";
lit#762 = 3600;
lit#763 = 86400;
lit#764 = "%j days %H hours %M mins";
fn_call#765 = timestamp#283(lit#764, (temp.globalpcban.releasetime - lit#762) - lit#763);
}
}
phi<idx=1, regions=()> = phi<idx=0, regions=()>;
}
fn_call#766 = addcontrol#130(phi<idx=0, regions=()>);
gbf_new_obj#768 = ScriptedRCBanGlobalPCReason#767;
lit#769 = "GuiTextEditCtrl";
new_node#770 = new lit#769(gbf_new_obj#768);
gbf_new_obj#771 = new_node#770;
// RegionId(146)
// RegionId(147)
with (gbf_new_obj#768)
{
lit#772 = 64;
lit#773 = 64;
position#774 = {lit#773, lit#772};
lit#775 = 24;
lit#776 = 420;
extent#777 = {lit#776, lit#775};
lit#778 = "GuiBlueTextEditProfile";
profile#779 = lit#778;
lit#780 = "width";
horizSizing#781 = lit#780;
}
fn_call#782 = addcontrol#130(phi<idx=0, regions=()>);
}
fn_call#783 = addcontrol#130(phi<idx=0, regions=()>);
gbf_new_obj#785 = ScriptedRCBanHist#784;
lit#786 = "GuiButtonCtrl";
new_node#787 = new lit#786(gbf_new_obj#785);
gbf_new_obj#788 = new_node#787;
// RegionId(149)
// RegionId(150)
with (gbf_new_obj#785)
{
lit#789 = 150;
lit#790 = 304;
position#791 = {lit#790, lit#789};
lit#792 = 32;
lit#793 = 96;
extent#794 = {lit#793, lit#792};
lit#795 = "GuiBlueButtonProfile";
profile#796 = lit#795;
lit#797 = "pc:";
lit#798 = 1;
lit#799 = 0;
this.acc = {temp.textlines[lit#799], lit#797 @ temp.textlines[lit#798]};
lit#800 = "Ban &History";
text#801 = lit#800;
lit#802 = "left";
horizSizing#803 = lit#802;
lit#804 = "top";
vertSizing#805 = lit#804;
}
fn_call#806 = addcontrol#130(phi<idx=0, regions=()>);
gbf_new_obj#808 = ScriptedRCBanOK#807;
lit#809 = "GuiButtonCtrl";
new_node#810 = new lit#809(gbf_new_obj#808);
gbf_new_obj#811 = new_node#810;
// RegionId(151)
// RegionId(152)
with (gbf_new_obj#808)
{
lit#812 = 150;
lit#813 = 402;
position#814 = {lit#813, lit#812};
lit#815 = 32;
lit#816 = 64;
extent#817 = {lit#816, lit#815};
lit#818 = "GuiBlueButtonProfile";
profile#819 = lit#818;
lit#820 = "&Apply";
text#821 = lit#820;
lit#822 = "onApplyBan";
lit#823 = "onAction";
fn_call#825 = thiso.catchEvent(this#88, lit#823, lit#822);
lit#826 = "left";
horizSizing#827 = lit#826;
lit#828 = "top";
vertSizing#829 = lit#828;
}
fn_call#830 = addcontrol#130(phi<idx=0, regions=()>);
gbf_new_obj#832 = ScriptedRCBanCancel#831;
lit#833 = "GuiButtonCtrl";
new_node#834 = new lit#833(gbf_new_obj#832);
gbf_new_obj#835 = new_node#834;
// RegionId(153)
// RegionId(154)
with (gbf_new_obj#832)
{
lit#836 = 150;
lit#837 = 468;
position#838 = {lit#837, lit#836};
lit#839 = 32;
lit#840 = 64;
extent#841 = {lit#840, lit#839};
lit#842 = "GuiBlueButtonProfile";
profile#843 = lit#842;
lit#844 = "&Close";
text#845 = lit#844;
lit#846 = "left";
horizSizing#847 = lit#846;
lit#848 = "top";
vertSizing#849 = lit#848;
}
fn_call#850 = addcontrol#130(phi<idx=0, regions=()>);
}
fn_call#851 = addcontrol#130(phi<idx=0, regions=()>);
lit#853 = 0;
temp.pctab = lit#853;
lit#854 = 0;
lit#855 = null;
// RegionId(156)
// RegionId(157)
if (temp.textlines[lit#854] != lit#855)
{
lit#856 = 0;
lit#857 = "pc:";
builtin_fn_call#858 = temp.textlines[lit#856].starts(lit#857);
// RegionId(157)
// RegionId(158)
if (!builtin_fn_call#858)
{
lit#859 = 1;
temp.pctab = lit#859;
lit#860 = "Local ban";
lit#861 = 0;
fn_call#863 = ScriptedRCBanWindowTabSelect.addrow(lit#861, lit#860);
// RegionId(158)
// RegionId(159)
with (fn_call#863)
{
// RegionId(159)
// RegionId(160)
if (ScriptedRCIsBanned.checked)
{
lit#864 = "rcicon_banned.png";
lit#865 = 0;
lit#866 = 0;
fn_call#869 = this.icon.drawimage(lit#866, lit#865, lit#864);
}
// RegionId(161)
else
{
lit#870 = "rcicon_unbanned.png";
lit#871 = 0;
lit#872 = 0;
fn_call#873 = this.icon.drawimage(lit#872, lit#871, lit#870);
}
}
lit#874 = true;
ScriptedRCBanWindowAccountPane.visible = lit#874;
lit#875 = false;
ScriptedRCBanWindowPCPane.visible = lit#875;
}
}
lit#876 = 1;
lit#877 = -1;
// RegionId(164)
// RegionId(165)
if (temp.textlines[lit#876] > lit#877)
{
lit#878 = "Computer ban";
fn_call#879 = ScriptedRCBanWindowTabSelect.addrow(temp.pctab, lit#878);
// RegionId(165)
// RegionId(166)
with (fn_call#879)
{
// RegionId(166)
// RegionId(167)
if (ScriptedRCIsPCBanned.checked)
{
lit#880 = "rcicon_banned.png";
lit#881 = 0;
lit#882 = 0;
fn_call#883 = this.icon.drawimage(lit#882, lit#881, lit#880);
}
// RegionId(168)
else
{
lit#884 = "rcicon_unbanned.png";
lit#885 = 0;
lit#886 = 0;
fn_call#887 = this.icon.drawimage(lit#886, lit#885, lit#884);
}
}
lit#888 = 0;
// RegionId(170)
// RegionId(171)
if (temp.pctab == lit#888)
{
lit#889 = false;
ScriptedRCBanWindowAccountPane.visible = lit#889;
lit#890 = true;
ScriptedRCBanWindowPCPane.visible = lit#890;
}
// RegionId(172)
else
{
lit#891 = true;
ScriptedRCBanWindowAccountPane.visible = lit#891;
lit#892 = false;
ScriptedRCBanWindowPCPane.visible = lit#892;
}
}
lit#893 = 0;
lit#894 = null;
// RegionId(173)
// RegionId(174)
if (temp.textlines[lit#893] != lit#894)
{
lit#895 = 0;
lit#896 = "pc:";
builtin_fn_call#897 = temp.textlines[lit#895].starts(lit#896);
// RegionId(174)
// RegionId(175)
if (!builtin_fn_call#897)
{
lit#898 = "Global ban";
lit#899 = 2;
fn_call#900 = ScriptedRCBanWindowTabSelect.addrow(lit#899, lit#898);
// RegionId(175)
// RegionId(176)
with (fn_call#900)
{
// RegionId(176)
// RegionId(177)
if (ScriptedRCIsGlobalBanned.checked)
{
lit#901 = "rcicon_banned.png";
lit#902 = 0;
lit#903 = 0;
fn_call#904 = this.icon.drawimage(lit#903, lit#902, lit#901);
}
// RegionId(178)
else
{
lit#905 = "rcicon_unbanned.png";
lit#906 = 0;
lit#907 = 0;
fn_call#908 = this.icon.drawimage(lit#907, lit#906, lit#905);
}
}
}
}
lit#909 = 1;
lit#910 = -1;
// RegionId(180)
// RegionId(181)
if (temp.textlines[lit#909] > lit#910)
{
lit#911 = "Global PC ban";
lit#912 = 3;
fn_call#913 = ScriptedRCBanWindowTabSelect.addrow(lit#912, lit#911);
// RegionId(181)
// RegionId(182)
with (fn_call#913)
{
// RegionId(182)
// RegionId(183)
if (ScriptedRCIsGlobalPCBanned.checked)
{
lit#914 = "rcicon_banned.png";
lit#915 = 0;
lit#916 = 0;
fn_call#917 = this.icon.drawimage(lit#916, lit#915, lit#914);
}
// RegionId(184)
else
{
lit#918 = "rcicon_unbanned.png";
lit#919 = 0;
lit#920 = 0;
fn_call#921 = this.icon.drawimage(lit#920, lit#919, lit#918);
}
}
}
lit#922 = 0;
fn_call#923 = ScriptedRCBanWindowTabSelect.setselectedrow(lit#922);
lit#925 = "TStaticVar";
new_node#926 = new lit#925(unknown_object#15);
this.accountbaninfo = new_node#926;
fn_call#927 = this.accountbaninfo.copyfrom(temp.ban);
lit#929 = "TStaticVar";
new_node#930 = new lit#929(unknown_object#15);
this.pcbaninfo = new_node#930;
fn_call#931 = this.pcbaninfo.copyfrom(temp.pcban);
lit#932 = 0;
return lit#932;
}
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 331