Welcome to the GBF Test Portal

This was built to track decompiler and CFG progress.

Decompiler Output

function public.addRainParticles()
{
    player.isinrain = player.level.name in this.rainlevels;
    // RegionId(0)
    // RegionId(1)
    if (client.disableeffects) 
    {
        lit#9 = "flash";
        // RegionId(1)
        // RegionId(2)
        if (player.platform == lit#9) 
        {
        }
    }
    // RegionId(4)
    if (phi<idx=0, regions=()>) 
    {
        lit#10 = 201;
        fn_call#12 = hideimg#11(lit#10);
        lit#13 = 0;
        return lit#13;
    }
    // RegionId(5)
    else
    {
        lit#17 = 16;
        lit#18 = 2;
        temp.screenwh = (screenwidth#16 / lit#17) / lit#18;
        lit#21 = 16;
        lit#22 = 2;
        temp.screenhh = (screenheight#20 / lit#21) / lit#22;
        lit#23 = 201;
        fn_call#25 = findimg#24(lit#23);
        // RegionId(5)
        // RegionId(6)
        with (fn_call#25) 
        {
            lit#27 = 1;
            layer#28 = lit#27;
            x#30 = player.x;
            y#32 = player.y;
            lit#34 = true;
            attachtoowner#35 = lit#34;
            // RegionId(6)
            // RegionId(7)
            with (emitter#36) 
            {
                // RegionId(7)
                // RegionId(8)
                with (particle#37) 
                {
                    lit#39 = 2.1;
                    lifetime#40 = lit#39;
                    lit#42 = "g4_particle_spark.png";
                    image#43 = lit#42;
                    lit#47 = 1;
                    blue#48 = lit#47;
                    green#49 = blue#46;
                    red#50 = green#45;
                    lit#52 = 0;
                    alpha#53 = lit#52;
                    lit#55 = 1;
                    mode#56 = lit#55;
                    lit#58 = 0.5;
                    zoom#59 = lit#58;
                    lit#61 = 0;
                    angle#62 = lit#61;
                    lit#64 = 12;
                    speed#65 = lit#64;
                }
                lit#67 = 0.1;
                delaymin#68 = lit#67;
                lit#70 = 0.2;
                delaymax#71 = lit#70;
                nrofparticles#73 = temp.screenwh;
                lit#75 = 10;
                maxparticles#76 = temp.screenwh * lit#75;
                lit#78 = true;
                checkbelowterrain#79 = lit#78;
                lit#81 = true;
                continueafterdestroy#82 = lit#81;
                lit#84 = true;
                autorotation#85 = lit#84;
                lit#87 = 0;
                lit#88 = -1;
                lit#89 = -1;
                emissionoffset#90 = {lit#89, lit#88, lit#87};
                lit#92 = true;
                wraptoclippingbox#93 = lit#92;
                lit#95 = true;
                cliptoscreen#96 = lit#95;
                lit#98 = -1.570796326;
                lit#99 = -0.314159265;
                lit#100 = 0.314159265;
                builtin_fn_call#101 = random(lit#99, lit#100);
                this.wind_direction = lit#98 + builtin_fn_call#101;
                lit#103 = -25;
                builtin_fn_call#104 = cos(this.wind_direction);
                this.wind_startx = lit#103 * builtin_fn_call#104;
                lit#105 = 2;
                lit#106 = 2;
                lit#107 = "add";
                lit#108 = "x";
                lit#109 = 0;
                lit#110 = 0;
                lit#111 = "once";
                fn_call#113 = addLocalModifier#112(lit#111, lit#110, lit#109, lit#108, lit#107, (-temp.screenwh) - lit#106, temp.screenwh + lit#105);
                lit#114 = "add";
                lit#115 = "y";
                lit#116 = 0;
                lit#117 = 0;
                lit#118 = "once";
                fn_call#119 = addLocalModifier#112(lit#118, lit#117, lit#116, lit#115, lit#114, -temp.screenhh, temp.screenhh);
                lit#120 = 3;
                lit#121 = -3;
                lit#122 = "add";
                lit#123 = "x";
                lit#124 = 0;
                lit#125 = 0;
                lit#126 = "once";
                fn_call#127 = addLocalModifier#112(lit#126, lit#125, lit#124, lit#123, lit#122, lit#121 + this.wind_startx, lit#120 + this.wind_startx);
                lit#128 = 6;
                lit#129 = "add";
                lit#130 = "y";
                lit#131 = 0;
                lit#132 = 0;
                lit#133 = "once";
                fn_call#134 = addLocalModifier#112(lit#133, lit#132, lit#131, lit#130, lit#129, (-temp.screenhh) - lit#128, -temp.screenhh);
                lit#135 = 1;
                lit#136 = 1;
                lit#137 = "add";
                lit#138 = "z";
                lit#139 = 0;
                lit#140 = 0;
                lit#141 = "once";
                fn_call#142 = addLocalModifier#112(lit#141, lit#140, lit#139, lit#138, lit#137, lit#136, lit#135);
                lit#143 = "replace";
                lit#144 = "angle";
                lit#145 = 0;
                lit#146 = 0;
                lit#147 = "once";
                fn_call#148 = addLocalModifier#112(lit#147, lit#146, lit#145, lit#144, lit#143, this.wind_direction, this.wind_direction);
                lit#149 = 0.75;
                lit#150 = 0;
                lit#151 = "replace";
                lit#152 = "alpha";
                lit#153 = 1;
                lit#154 = 0;
                lit#155 = "range";
                fn_call#156 = addLocalModifier#112(lit#155, lit#154, lit#153, lit#152, lit#151, lit#150, lit#149);
                fn_call#158 = emit#157();
                // RegionId(9)
                // RegionId(10)
                with (dropemitter#159) 
                {
                    // RegionId(10)
                    // RegionId(11)
                    with (particle#37) 
                    {
                        lit#160 = "g4_particle_ring.png";
                        image#161 = lit#160;
                        lit#162 = 0.5;
                        lifetime#163 = lit#162;
                        lit#164 = 1;
                        blue#165 = lit#164;
                        green#166 = blue#48;
                        red#167 = green#49;
                        lit#168 = 0.99;
                        alpha#169 = lit#168;
                        lit#170 = 0;
                        speed#171 = lit#170;
                        lit#172 = 0;
                        zoom#173 = lit#172;
                        lit#175 = 0.5;
                        stretchy#176 = lit#175;
                        lit#177 = 0;
                        layer#178 = lit#177;
                        lit#179 = 0;
                        angle#180 = lit#179;
                    }
                    lit#181 = 1;
                    nrofparticles#182 = lit#181;
                    lit#183 = 0;
                    lit#184 = 1;
                    lit#185 = 0;
                    emissionoffset#186 = {lit#185, lit#184, lit#183};
                    lit#187 = 0;
                    lit#188 = 0.99;
                    lit#189 = "replace";
                    lit#190 = "alpha";
                    lit#191 = 0.5;
                    lit#192 = 0;
                    lit#193 = "range";
                    fn_call#194 = addLocalModifier#112(lit#193, lit#192, lit#191, lit#190, lit#189, lit#188, lit#187);
                    lit#195 = 0.5;
                    lit#196 = 0;
                    lit#197 = "replace";
                    lit#198 = "zoom";
                    lit#199 = 0.5;
                    lit#200 = 0;
                    lit#201 = "range";
                    fn_call#202 = addLocalModifier#112(lit#201, lit#200, lit#199, lit#198, lit#197, lit#196, lit#195);
                }
                // RegionId(13)
                // RegionId(14)
                with (dropwateremitter#203) 
                {
                    // RegionId(14)
                    // RegionId(15)
                    with (particle#37) 
                    {
                        lit#204 = 0.75;
                        lifetime#205 = lit#204;
                        lit#206 = "g4_particle_ring.png";
                        image#207 = lit#206;
                        lit#208 = 1;
                        blue#209 = lit#208;
                        green#210 = blue#165;
                        red#211 = green#166;
                        lit#212 = 0.99;
                        alpha#213 = lit#212;
                        lit#214 = 0;
                        speed#215 = lit#214;
                        lit#216 = 0;
                        zoom#217 = lit#216;
                        lit#218 = 0.5;
                        stretchy#219 = lit#218;
                        lit#220 = 0;
                        layer#221 = lit#220;
                        lit#222 = 0;
                        angle#223 = lit#222;
                    }
                    lit#224 = 1;
                    nrofparticles#225 = lit#224;
                    lit#226 = 0;
                    lit#227 = 1;
                    lit#228 = 0;
                    emissionoffset#229 = {lit#228, lit#227, lit#226};
                    lit#230 = 0;
                    lit#231 = 0.99;
                    lit#232 = "replace";
                    lit#233 = "alpha";
                    lit#234 = 0.75;
                    lit#235 = 0;
                    lit#236 = "range";
                    fn_call#237 = addLocalModifier#112(lit#236, lit#235, lit#234, lit#233, lit#232, lit#231, lit#230);
                    lit#238 = 0.75;
                    lit#239 = 0;
                    lit#240 = "replace";
                    lit#241 = "zoom";
                    lit#242 = 0.75;
                    lit#243 = 0;
                    lit#244 = "range";
                    fn_call#245 = addLocalModifier#112(lit#244, lit#243, lit#242, lit#241, lit#240, lit#239, lit#238);
                }
            }
        }
        lit#247 = 0;
        this.thundermode = lit#247;
        lit#249 = 0;
        this.thunderintensity = lit#249;
        lit#251 = 0;
        this.thunderflashes = lit#251;
        lit#252 = "";
        lit#253 = "Thunder";
        lit#254 = 3;
        fn_call#256 = scheduleevent#255(lit#254, lit#253, lit#252);
        lit#257 = 0;
        return lit#257;
    }
}