// How to use // 1. Copy the contents of this file and paste it at the bottom of your data/menus.cfg file // 2. look for "newgui editing" and add the following in there somewhere: guibutton "new particles" "showgui newparticles" // // particles menus (c) Hirato Kirata // Distributed under a zlib/libpng license parttocol = [ col1 = (div (& $arg1 0xF00) 0x100) col2 = (div (& $arg1 0xF0) 0x10) col3 = (& $arg1 0xF) ] coltopart = [result (| (| (* $col1 0x100) (* $col2 0x010)) $col3)] partcolsliders = [ loop i 3 [ if $arg1 [ guislider (concatword "col" (+ $i 1)) 0 15 [@arg1 = (coltopart); entupdate] ] [ guislider (concatword "col" (+ $i 1)) 0 15 ] ] ] col1 = 0 col2 = 0 col3 = 0 newpartdir = 0 newpartstdtype = 1 newpartexpsize = 0 newpartfiretype = 0 newpartfirerad = 0 newpartfireheight = 0 newpartmulttype = 4 newpartmultlen = 0 newpartmulteffect = 0 newpartmultrev = 0 newpartmultvalue = 0 newpartmulteff = 0 //bool, generate using effects or directions newpartbartype = 5 newpartbarprcnt = 0 newpartflaretype = 32 newpartflarecol1 = 0 newpartflarecol2 = 0 newpartflarecol3 = 0 partmultieffectname = [ if (< $arg1 3) [ multieffectname = "Circle" ] [ if (< $arg1 6) [ multieffectname = "Cylinder Shell" ] [ if (< $arg1 12) [ multieffectname = "Cone Shell" ] [ if (< $arg1 15) [ multieffectname = "Plane Volume" ] [ if (< $arg1 21) [ multieffectname = "Line Volume (Wall)" ] [ multieffectname = "Sphere" ] ] ] ] ] ] newgui particles [ if (|| (|| (= $tmp0 0) (= $tmp0 11)) (= $tmp0 12)) [ curpart = 1 parttocol $tmp3 guiradio "Fire + Smoke" tmp0 0 [entupdate] guiradio "Fire" tmp0 11 [entupdate] guiradio "Smoke" tmp0 12 [entupdate] guibar guitext "Radius" guislider tmp1 0 500 entupdate guitext "Height" guislider tmp2 0 500 entupdate guitext "Colour (RGB)" partcolsliders tmp3 ] if (|| (= $tmp0 2) (= $tmp0 1)) [ curpart = 2 guitext "Type (smoke->fountain)" guislider tmp0 1 2 entupdate guitext "Direction" guislider tmp1 0 5 entupdate ] if (= $tmp0 3) [ curpart = 7 parttocol $tmp2 guitext "Size" guislider tmp1 -5 50 entupdate guitext "Colour (RGB)" partcolsliders tmp2 ] if (|| (= $tmp0 4) (&& (<= $tmp0 10) (>= $tmp0 7))) [ parttocol $tmp3 curpart = 3 guilist [ guilist [ guiradio "Flare " tmp0 4 [entupdate] guiradio "Lightning " tmp0 7 [entupdate] ] guilist [ guiradio "Smoke" tmp0 9 [entupdate] guiradio "Water" tmp0 10 [entupdate] ] ] guibar if (> $tmp1 255) [ guistayopen [guibutton "Make Directional" [tmp1 = 0; entupdate]] multieffectreverse = (> (- $tmp1 256) 31) if (= $multieffectreverse 0) [multieffectvalue = (- $tmp1 256)] [multieffectvalue = (- $tmp1 288)] partmultieffectname $multieffectvalue guitext $multieffectname guislider multieffectvalue 0 0x1F [tmp1 = (| 256 (| $multieffectvalue (* $multieffectreverse 32))); entupdate] guicheckbox "Reverse Direction" multieffectreverse 1 0 [tmp1 = (| 256 (| $multieffectvalue (* $multieffectreverse 32))); entupdate] ] [ guistayopen [guibutton "Use Effects" [tmp1 = 256; entupdate]] guitext "Direction" guislider tmp1 0 5 entupdate ] guitext "Length" guislider tmp2 0 200 entupdate guitext "Colour (RGB)" partcolsliders tmp3 ] if (|| (= $tmp0 5) (= $tmp0 6)) [ curpart = 4 parttocol $tmp2 guilist [ guiradio "Normal style" tmp0 5 [entupdate] guibar guiradio "Versus style" tmp0 6 [entupdate] ] guitext "Captured Percentage" guislider tmp1 0 100 [entupdate] guitext "Colour (RGB)" partcolsliders tmp2 ] if (&& (>= $tmp0 32) (<= $tmp0 35)) [ curpart = 5 guiradio "Normal" tmp0 32 [entupdate] guiradio "Normal W/ Sparkle" tmp0 33 [entupdate] guiradio "Fixed" tmp0 34 [entupdate] guiradio "Fixed W/ Sparkle" tmp0 35 [entupdate] guitext "Colour (RGB)" guislider tmp1 0 255 entupdate guislider tmp2 0 255 entupdate guislider tmp3 0 255 entupdate ] guitab type guiradio "Fire" curpart 1 [tmp0 = (at "0 11 12" (rnd 3)); entupdate] guiradio "Standard" curpart 2 [tmp0 = (at "1 2" (rnd 2)); entupdate] guiradio "Effect" curpart 3 [tmp0 = (at "4 7 9 10" (rnd 4)); entupdate] guiradio "Bars" curpart 4 [tmp0 = (at "5 6" (rnd 2)); entupdate] guiradio "Lens Flare" curpart 5 [tmp0 = (at "32 33 34 35" (rnd 4)); entupdate] guiradio "Explosion" curpart 7 [tmp0 = 3; entupdate] guitab ent guilistsplit n 2 $enttypelist [ guibutton $n [ entset @n ] ] guitab misc @quickeditmenu ] newgui newparticles [ guibutton "Create Fire/Smoke" "newent particles $newpartfiretype $newpartfirerad $newpartfireheight (coltopart)" guibar guilist [ guiradio "Flame + Smoke" newpartfiretype 0 guibar guiradio "Flame" newpartfiretype 11 guibar guiradio "Smoke" newpartfiretype 12 ] guibar guitext "Area/Radius (recommended: height*3)" guislider newpartfirerad 0 500 guitext "Height (recommended: area/3)" guislider newpartfireheight 0 500 guitext "Colour (RGB)" partcolsliders guitab "Standard" guibutton "Create" "newent particles $newpartstdtype $newpartdir" guibar guilist [ guiradio "Smoke" newpartstdtype 1 guibar guiradio "Fountain" newpartstdtype 2 ] guibar guitext "Direction" guislider newpartdir 0 5 guitab Explosion guibutton "Create" "newent particles 3 $newpartexpsize (coltopart)" guibar guitext "Size" guislider newpartexpsize -5 50 guitext "Colour (RGB)" partcolsliders guitab "Effects" guibutton "Create" "newent particles $newpartmulttype $newpartmultvalue $newpartmultlen (coltopart)" guibar guilist [ guiradio "Flare" newpartmulttype 4 guibar guiradio "Lightning" newpartmulttype 7 guibar guiradio "Smoke" newpartmulttype 9 guibar guiradio "Water" newpartmulttype 10 ] guibar if $newpartmulteff [ guilist [ guicheckbox "Use effects" newpartmulteff guibar guicheckbox "Reverse" newpartmultrev ] guibar partmultieffectname $newpartmulteffect guitext $multieffectname guislider newpartmulteffect 0 0x1F newpartmultvalue = (| 256 (| $newpartmulteffect (* 32 $newpartmultrev))) ] [ guicheckbox "Use effects" newpartmulteff guibar guitext "Direction" guislider newpartdir 0 5 [newpartmultvalue = $newpartdir] ] guitext "Length" guislider newpartmultlen 0 200 guitext "Colour (RGB)" partcolsliders guitab "Bars" guibutton "Create" "newent particles $newpartbartype $newpartbarprcnt (coltopart)" guibar guilist [ guiradio "Standard" newpartbartype 5 guibar guiradio "Versus" newpartbartype 6 ] guibar guitext "Percentage" guislider newpartbarprcnt 0 100 guitext "Colour (RGB)" partcolsliders guitab "Lens Flares" guibutton "Create" "newent particles $newpartflaretype $newpartflarecol1 $newpartflarecol2 $newpartflarecol3" guibar guilist [ guiradio "Normal" newpartflaretype 32 guibar guiradio "Normal W/ sparkle" newpartflaretype 33 guibar guiradio "Fixed" newpartflaretype 34 guibar guiradio "Fixed W/ Sparkle" newpartflaretype 35 ] guibar guitext "Colour (RGB)" guislider newpartflarecol1 0 255 guislider newpartflarecol2 0 255 guislider newpartflarecol3 0 255 ] "Fire"