commit d66ba78474ea435d33280d3023f3e8bb38b0d6f2 Author: calliope <me@calliope.sh> Date: Wed, 17 Sep 2025 02:32:51 -0500 zzzz Diffstat:
193 files changed, 14730 insertions(+), 0 deletions(-)
diff --git a/.gitignore b/.gitignore @@ -0,0 +1,53 @@ +# Leave out all config files (except autoexecs) for now +# FTE autogenerates them anyway +# IMPORTANT: Particle effects are also defined in files with .cfg +# extension (in fangflecked/particles) do NOT ignore these!! +fte.cfg +config.cfg + +# Misc engine logs +maptimes.txt +conhistory.txt + +# .lno files are for FTEQCC error debugging. +# Stuff that should be sorted out before you commit. +*.lno + +# Stuff involved in map compiles. See no need to commit it. +*.log +*.prt +*.vis +*.srf +*.lin + +# Think the windows compiling gui might've generated this one? +*.bat + +# Autosave stuff +*.blend1 +*.png~ +*.tga~ +*.kra~ +sourcefiles/mapsrc/autosave + +# Trenchbroom crash autosaves / logs +# Again, this is stuff that should be sorted out +# before you commit. +*-crash.map +*-crash.log +*-crash-* +*-crash.txt + +# WILL REMOVE THIS EVENTUALLY +# None of our maps use colored lighting ATM +# so it's just clutter. +# (also my map compiling shell script doesn't +# put them in the correct place right now, lol) +*.lit + +# These files are used for deluxemapping in fteqw +# they seem to be autogenerated +# ericw tools can compile them as well +# I don't think we need them unless we use normalmapping +# (and no RT lights) +*.lux diff --git a/gamedata/default.fmf b/gamedata/default.fmf @@ -0,0 +1,6 @@ +FTEMANIFEST 1 +GAME fangflecked +NAME "FANGFLECKED" +PROTOCOLNAME FANGFLECKED +DEFAULTEXEC "" +BASEGAME "fangflecked" diff --git a/gamedata/fangflecked/csprogs.dat b/gamedata/fangflecked/csprogs.dat Binary files differ. diff --git a/gamedata/fangflecked/maps/bloodfont.bsp b/gamedata/fangflecked/maps/bloodfont.bsp Binary files differ. diff --git a/gamedata/fangflecked/maps/box2.bsp b/gamedata/fangflecked/maps/box2.bsp Binary files differ. diff --git a/gamedata/fangflecked/maps/box3.bsp b/gamedata/fangflecked/maps/box3.bsp Binary files differ. diff --git a/gamedata/fangflecked/maps/caves1.bsp b/gamedata/fangflecked/maps/caves1.bsp Binary files differ. diff --git a/gamedata/fangflecked/maps/infil.bsp b/gamedata/fangflecked/maps/infil.bsp Binary files differ. diff --git a/gamedata/fangflecked/maps/sealab.bsp b/gamedata/fangflecked/maps/sealab.bsp Binary files differ. diff --git a/gamedata/fangflecked/maps/skystairs.bsp b/gamedata/fangflecked/maps/skystairs.bsp Binary files differ. diff --git a/gamedata/fangflecked/maps/start.bsp b/gamedata/fangflecked/maps/start.bsp Binary files differ. diff --git a/gamedata/fangflecked/maps/strawberry.bsp b/gamedata/fangflecked/maps/strawberry.bsp Binary files differ. diff --git a/gamedata/fangflecked/models/bigcandle.iqm b/gamedata/fangflecked/models/bigcandle.iqm Binary files differ. diff --git a/gamedata/fangflecked/models/chandelier1.iqm b/gamedata/fangflecked/models/chandelier1.iqm Binary files differ. diff --git a/gamedata/fangflecked/models/pmodel.iqm b/gamedata/fangflecked/models/pmodel.iqm Binary files differ. diff --git a/gamedata/fangflecked/models/sconce.iqm b/gamedata/fangflecked/models/sconce.iqm Binary files differ. diff --git a/gamedata/fangflecked/models/shell.iqm b/gamedata/fangflecked/models/shell.iqm Binary files differ. diff --git a/gamedata/fangflecked/models/shotty.iqm b/gamedata/fangflecked/models/shotty.iqm Binary files differ. diff --git a/gamedata/fangflecked/models/spitter.iqm b/gamedata/fangflecked/models/spitter.iqm Binary files differ. diff --git a/gamedata/fangflecked/models/spitwad.iqm b/gamedata/fangflecked/models/spitwad.iqm Binary files differ. diff --git a/gamedata/fangflecked/models/stalag1.iqm b/gamedata/fangflecked/models/stalag1.iqm Binary files differ. diff --git a/gamedata/fangflecked/models/stalag2.iqm b/gamedata/fangflecked/models/stalag2.iqm Binary files differ. diff --git a/gamedata/fangflecked/models/tcube.iqm b/gamedata/fangflecked/models/tcube.iqm Binary files differ. diff --git a/gamedata/fangflecked/models/trif.iqm b/gamedata/fangflecked/models/trif.iqm Binary files differ. diff --git a/gamedata/fangflecked/particles/fire.cfg b/gamedata/fangflecked/particles/fire.cfg @@ -0,0 +1,36 @@ +echo "particles fire.cfg initialized" + +r_part torchflame +{ + type normal + texture "" + alpha 0.01 + alphadelta 1 + die 1 2 + randomvel 2 30 + veladd 25 + rgb 255 255 128 + rgbdelta -90 -200 -200 + lightrgb 1 .2 .05 + lightradius 50 + count 5 10 + scale 31 + scalefactor 1 +} + +r_part +torchflame +{ + type normal + texture "" + alpha 0.01 + alphadelta 0.5 + die 1 2 + randomvel 2 30 + veladd 35 + rgb 25 25 50 + rgbdelta -25 -25 -25 + lightrgb 0 0 0 + count 1 2 + scale 50 + scalefactor 1 +} diff --git a/gamedata/fangflecked/particles/weapons.cfg b/gamedata/fangflecked/particles/weapons.cfg @@ -0,0 +1,58 @@ +echo "particles weapons.cfg initialized" + +r_part pelletsparks +{ + type normal + texture "" + count 1 2 + scale 10 + scalefactor 1 + alpha 0.6 + die .7 + randomvel 50 + veladd 200 + rgb 64 64 64 + blend add + gravity 400 +} + +r_part bloodspray +{ + type normal + texture "" + count 3 7 + scale 40 + scalefactor 1 + alpha 0.94 + die 25 10 + randomvel 100 + veladd 200 + rgb 255 31 32 +// blend add + gravity 600 +} + +r_part bulletimpact +{ + type cdecal + texture "textures/bulletimpact.png" + scale 5 + scalefactor 1 + alpha 0.7 + die 50 + rgb 255 255 255 +} + +r_part blah +{ + texture "textures/particles/pstone1.tga" + tcoords 0 0 64 64 64 + die 2 + scalefactor 1 + scale 20 + alpha 0.5 + rgb 255 0 0 + rgbdelta 0 128 128 + spawnmode ball + spawnorg 32 +} diff --git a/gamedata/fangflecked/qwprogs.dat b/gamedata/fangflecked/qwprogs.dat Binary files differ. diff --git a/gamedata/fangflecked/sounds/PHfootstep1.wav b/gamedata/fangflecked/sounds/PHfootstep1.wav Binary files differ. diff --git a/gamedata/fangflecked/sounds/PHfootstep2.wav b/gamedata/fangflecked/sounds/PHfootstep2.wav Binary files differ. diff --git a/gamedata/fangflecked/sounds/danger_shunt.wav b/gamedata/fangflecked/sounds/danger_shunt.wav Binary files differ. diff --git a/gamedata/fangflecked/sounds/death.wav b/gamedata/fangflecked/sounds/death.wav Binary files differ. diff --git a/gamedata/fangflecked/sounds/hock.wav b/gamedata/fangflecked/sounds/hock.wav Binary files differ. diff --git a/gamedata/fangflecked/sounds/hurtbad.wav b/gamedata/fangflecked/sounds/hurtbad.wav Binary files differ. diff --git a/gamedata/fangflecked/sounds/ouch.wav b/gamedata/fangflecked/sounds/ouch.wav Binary files differ. diff --git a/gamedata/fangflecked/sounds/ouch2.wav b/gamedata/fangflecked/sounds/ouch2.wav Binary files differ. diff --git a/gamedata/fangflecked/sounds/riddomedis.wav b/gamedata/fangflecked/sounds/riddomedis.wav Binary files differ. diff --git a/gamedata/fangflecked/sounds/shotgun.wav b/gamedata/fangflecked/sounds/shotgun.wav Binary files differ. diff --git a/gamedata/fangflecked/textures/MustRemove/brickscg1.png b/gamedata/fangflecked/textures/MustRemove/brickscg1.png Binary files differ. diff --git a/gamedata/fangflecked/textures/MustRemove/bulkhead1.png b/gamedata/fangflecked/textures/MustRemove/bulkhead1.png Binary files differ. diff --git a/gamedata/fangflecked/textures/MustRemove/bulkhead2.png b/gamedata/fangflecked/textures/MustRemove/bulkhead2.png Binary files differ. diff --git a/gamedata/fangflecked/textures/MustRemove/copper1.png b/gamedata/fangflecked/textures/MustRemove/copper1.png Binary files differ. diff --git a/gamedata/fangflecked/textures/MustRemove/copper2.png b/gamedata/fangflecked/textures/MustRemove/copper2.png Binary files differ. diff --git a/gamedata/fangflecked/textures/MustRemove/copper3.png b/gamedata/fangflecked/textures/MustRemove/copper3.png Binary files differ. diff --git a/gamedata/fangflecked/textures/MustRemove/copper4.png b/gamedata/fangflecked/textures/MustRemove/copper4.png Binary files differ. diff --git a/gamedata/fangflecked/textures/MustRemove/copper5.png b/gamedata/fangflecked/textures/MustRemove/copper5.png Binary files differ. diff --git a/gamedata/fangflecked/textures/MustRemove/fancytiles1.png b/gamedata/fangflecked/textures/MustRemove/fancytiles1.png Binary files differ. diff --git a/gamedata/fangflecked/textures/MustRemove/fancytiles2.png b/gamedata/fangflecked/textures/MustRemove/fancytiles2.png Binary files differ. diff --git a/gamedata/fangflecked/textures/MustRemove/fancytiles3.png b/gamedata/fangflecked/textures/MustRemove/fancytiles3.png Binary files differ. diff --git a/gamedata/fangflecked/textures/MustRemove/fancytiles4.png b/gamedata/fangflecked/textures/MustRemove/fancytiles4.png Binary files differ. diff --git a/gamedata/fangflecked/textures/MustRemove/gravel.png b/gamedata/fangflecked/textures/MustRemove/gravel.png Binary files differ. diff --git a/gamedata/fangflecked/textures/MustRemove/marble1.png b/gamedata/fangflecked/textures/MustRemove/marble1.png Binary files differ. diff --git a/gamedata/fangflecked/textures/MustRemove/marble2.png b/gamedata/fangflecked/textures/MustRemove/marble2.png Binary files differ. diff --git a/gamedata/fangflecked/textures/MustRemove/marble3.png b/gamedata/fangflecked/textures/MustRemove/marble3.png Binary files differ. diff --git a/gamedata/fangflecked/textures/MustRemove/panel1.png b/gamedata/fangflecked/textures/MustRemove/panel1.png Binary files differ. diff --git a/gamedata/fangflecked/textures/MustRemove/rock1.png b/gamedata/fangflecked/textures/MustRemove/rock1.png Binary files differ. diff --git a/gamedata/fangflecked/textures/MustRemove/rock2.png b/gamedata/fangflecked/textures/MustRemove/rock2.png Binary files differ. diff --git a/gamedata/fangflecked/textures/MustRemove/sandstone.png b/gamedata/fangflecked/textures/MustRemove/sandstone.png Binary files differ. diff --git a/gamedata/fangflecked/textures/MustRemove/treadplate1.png b/gamedata/fangflecked/textures/MustRemove/treadplate1.png Binary files differ. diff --git a/gamedata/fangflecked/textures/MustRemove/wood1.png b/gamedata/fangflecked/textures/MustRemove/wood1.png Binary files differ. diff --git a/gamedata/fangflecked/textures/MustRemove/wood2.png b/gamedata/fangflecked/textures/MustRemove/wood2.png Binary files differ. diff --git a/gamedata/fangflecked/textures/banded door bump.png b/gamedata/fangflecked/textures/banded door bump.png Binary files differ. diff --git a/gamedata/fangflecked/textures/bigcandle.png b/gamedata/fangflecked/textures/bigcandle.png Binary files differ. diff --git a/gamedata/fangflecked/textures/bigcandle_glow.png b/gamedata/fangflecked/textures/bigcandle_glow.png Binary files differ. diff --git a/gamedata/fangflecked/textures/bulletimpact.png b/gamedata/fangflecked/textures/bulletimpact.png Binary files differ. diff --git a/gamedata/fangflecked/textures/cathedralbrick.png b/gamedata/fangflecked/textures/cathedralbrick.png Binary files differ. diff --git a/gamedata/fangflecked/textures/cathedralbrick_gloss.png b/gamedata/fangflecked/textures/cathedralbrick_gloss.png Binary files differ. diff --git a/gamedata/fangflecked/textures/cathedralbrick_norm.png b/gamedata/fangflecked/textures/cathedralbrick_norm.png Binary files differ. diff --git a/gamedata/fangflecked/textures/cathedralwall.png b/gamedata/fangflecked/textures/cathedralwall.png Binary files differ. diff --git a/gamedata/fangflecked/textures/cathedralwall_gloss.png b/gamedata/fangflecked/textures/cathedralwall_gloss.png Binary files differ. diff --git a/gamedata/fangflecked/textures/cathedralwall_norm.png b/gamedata/fangflecked/textures/cathedralwall_norm.png Binary files differ. diff --git a/gamedata/fangflecked/textures/chandelier1.png b/gamedata/fangflecked/textures/chandelier1.png Binary files differ. diff --git a/gamedata/fangflecked/textures/chandelier1_glow.png b/gamedata/fangflecked/textures/chandelier1_glow.png Binary files differ. diff --git a/gamedata/fangflecked/textures/door1.png b/gamedata/fangflecked/textures/door1.png Binary files differ. diff --git a/gamedata/fangflecked/textures/door1_gloss.png b/gamedata/fangflecked/textures/door1_gloss.png Binary files differ. diff --git a/gamedata/fangflecked/textures/placeholder/+0button1.png b/gamedata/fangflecked/textures/placeholder/+0button1.png Binary files differ. diff --git a/gamedata/fangflecked/textures/placeholder/+abutton1.png b/gamedata/fangflecked/textures/placeholder/+abutton1.png Binary files differ. diff --git a/gamedata/fangflecked/textures/placeholder/claybricks.tga b/gamedata/fangflecked/textures/placeholder/claybricks.tga Binary files differ. diff --git a/gamedata/fangflecked/textures/placeholder/deviltrims.tga b/gamedata/fangflecked/textures/placeholder/deviltrims.tga Binary files differ. diff --git a/gamedata/fangflecked/textures/placeholder/pstone1.tga b/gamedata/fangflecked/textures/placeholder/pstone1.tga Binary files differ. diff --git a/gamedata/fangflecked/textures/placeholder/tile2.tga b/gamedata/fangflecked/textures/placeholder/tile2.tga Binary files differ. diff --git a/gamedata/fangflecked/textures/pmodel.png b/gamedata/fangflecked/textures/pmodel.png Binary files differ. diff --git a/gamedata/fangflecked/textures/sconcetex.png b/gamedata/fangflecked/textures/sconcetex.png Binary files differ. diff --git a/gamedata/fangflecked/textures/sconcetex_glow.png b/gamedata/fangflecked/textures/sconcetex_glow.png Binary files differ. diff --git a/gamedata/fangflecked/textures/shotgun.png b/gamedata/fangflecked/textures/shotgun.png Binary files differ. diff --git a/gamedata/fangflecked/textures/shotty.png b/gamedata/fangflecked/textures/shotty.png Binary files differ. diff --git a/gamedata/fangflecked/textures/skip.png b/gamedata/fangflecked/textures/skip.png Binary files differ. diff --git a/gamedata/fangflecked/textures/spitter.png b/gamedata/fangflecked/textures/spitter.png Binary files differ. diff --git a/gamedata/fangflecked/textures/spitwad.png b/gamedata/fangflecked/textures/spitwad.png Binary files differ. diff --git a/gamedata/fangflecked/textures/trigger.png b/gamedata/fangflecked/textures/trigger.png Binary files differ. diff --git a/gamedata/fangflecked/textures/window1.png b/gamedata/fangflecked/textures/window1.png Binary files differ. diff --git a/gamedata/fangflecked/textures/window2.png b/gamedata/fangflecked/textures/window2.png Binary files differ. diff --git a/issues.txt b/issues.txt @@ -0,0 +1,7 @@ +**TO IMPLEMENT** +-light color +-clip texture + +**Technical Stuff** ++ Clean up CSQC ++ Fix music tracks not looping diff --git a/sourcefiles/blend/arm.png b/sourcefiles/blend/arm.png Binary files differ. diff --git a/sourcefiles/blend/arms.blend b/sourcefiles/blend/arms.blend Binary files differ. diff --git a/sourcefiles/blend/bigcandle.blend b/sourcefiles/blend/bigcandle.blend Binary files differ. diff --git a/sourcefiles/blend/bigcandleUV.png b/sourcefiles/blend/bigcandleUV.png Binary files differ. diff --git a/sourcefiles/blend/bore.blend b/sourcefiles/blend/bore.blend Binary files differ. diff --git a/sourcefiles/blend/cathedraltile_preview.blend b/sourcefiles/blend/cathedraltile_preview.blend Binary files differ. diff --git a/sourcefiles/blend/chandelier.png b/sourcefiles/blend/chandelier.png Binary files differ. diff --git a/sourcefiles/blend/chandelier1.blend b/sourcefiles/blend/chandelier1.blend Binary files differ. diff --git a/sourcefiles/blend/chandelierUV.png b/sourcefiles/blend/chandelierUV.png Binary files differ. diff --git a/sourcefiles/blend/demon1.blend b/sourcefiles/blend/demon1.blend Binary files differ. diff --git a/sourcefiles/blend/demon1tex.png b/sourcefiles/blend/demon1tex.png Binary files differ. diff --git a/sourcefiles/blend/gibs/bilehead.blend b/sourcefiles/blend/gibs/bilehead.blend Binary files differ. diff --git a/sourcefiles/blend/gibs/bileheadUV.png b/sourcefiles/blend/gibs/bileheadUV.png Binary files differ. diff --git a/sourcefiles/blend/gibs/eyeball.blend b/sourcefiles/blend/gibs/eyeball.blend Binary files differ. diff --git a/sourcefiles/blend/gibs/eyeball.png b/sourcefiles/blend/gibs/eyeball.png Binary files differ. diff --git a/sourcefiles/blend/gibs/intestine.png b/sourcefiles/blend/gibs/intestine.png Binary files differ. diff --git a/sourcefiles/blend/gibs/intestines.blend b/sourcefiles/blend/gibs/intestines.blend Binary files differ. diff --git a/sourcefiles/blend/gibs/jaw.blend b/sourcefiles/blend/gibs/jaw.blend Binary files differ. diff --git a/sourcefiles/blend/gibs/muffler.blend b/sourcefiles/blend/gibs/muffler.blend Binary files differ. diff --git a/sourcefiles/blend/gibs/muffler.png b/sourcefiles/blend/gibs/muffler.png Binary files differ. diff --git a/sourcefiles/blend/handrig.blend b/sourcefiles/blend/handrig.blend Binary files differ. diff --git a/sourcefiles/blend/pmodel-placeholder.blend b/sourcefiles/blend/pmodel-placeholder.blend Binary files differ. diff --git a/sourcefiles/blend/pmodeluv.png b/sourcefiles/blend/pmodeluv.png Binary files differ. diff --git a/sourcefiles/blend/sconce.blend b/sourcefiles/blend/sconce.blend Binary files differ. diff --git a/sourcefiles/blend/sconce.iqm b/sourcefiles/blend/sconce.iqm Binary files differ. diff --git a/sourcefiles/blend/sconce.png b/sourcefiles/blend/sconce.png Binary files differ. diff --git a/sourcefiles/blend/scrambler.blend b/sourcefiles/blend/scrambler.blend Binary files differ. diff --git a/sourcefiles/blend/scrambler.png b/sourcefiles/blend/scrambler.png Binary files differ. diff --git a/sourcefiles/blend/shell.blend b/sourcefiles/blend/shell.blend Binary files differ. diff --git a/sourcefiles/blend/shotgun.png b/sourcefiles/blend/shotgun.png Binary files differ. diff --git a/sourcefiles/blend/shotty.blend b/sourcefiles/blend/shotty.blend Binary files differ. diff --git a/sourcefiles/blend/shotty4.blend b/sourcefiles/blend/shotty4.blend Binary files differ. diff --git a/sourcefiles/blend/shottyanimate.blend b/sourcefiles/blend/shottyanimate.blend Binary files differ. diff --git a/sourcefiles/blend/spitter.png b/sourcefiles/blend/spitter.png Binary files differ. diff --git a/sourcefiles/blend/spitterUV.png b/sourcefiles/blend/spitterUV.png Binary files differ. diff --git a/sourcefiles/blend/spitwad.blend b/sourcefiles/blend/spitwad.blend Binary files differ. diff --git a/sourcefiles/code/client/csdefs.qc b/sourcefiles/code/client/csdefs.qc @@ -0,0 +1,1431 @@ +/* +This file was automatically generated by FTE QuakeWorld v1.03 +This file can be regenerated by issuing the following command: +pr_dumpplatform -O csdefs -Tcs +Available options: +-Ffte - target only FTE (optimations and additional extensions) +-Tnq - dump specifically NQ fields +-Tqw - dump specifically QW fields +-Tcs - dump specifically CSQC fields +-Tmenu - dump specifically menuqc fields +-Fdefines - generate #defines instead of constants +-Faccessors - use accessors instead of basic types via defines +-O - write to a different qc file +*/ +#pragma noref 1 +#pragma warning error Q101 /*too many parms*/ +#pragma warning error Q105 /*too few parms*/ +#pragma warning enable F301 /*non-utf-8 strings*/ +#pragma warning enable F302 /*uninitialised locals*/ +#pragma target FTE +#ifndef CSQC +#define CSQC +#endif +#define strbuf float +#define searchhandle float +#define hashtable float +#define infostring string +#define filestream float +entity self; /* The magic me */ +entity other; /* Valid in touch functions, this is the entity that we touched. */ +entity world; /* The null entity. Hurrah. Readonly after map spawn time. */ +float time; /* The current game time. Stops when paused. */ +float cltime; /* A local timer that ticks relative to local time regardless of latency, packetloss, or pause. */ +float frametime; /* The time since the last physics/render/input frame. */ +float player_localentnum; /* This is entity number the player is seeing from/spectating, or the player themself, can change mid-map. */ +float player_localnum; /* The 0-based player index, valid for getplayerkeyvalue calls. */ +float maxclients; /* Maximum number of player slots on the server. */ +float clientcommandframe; /* This is the input-frame sequence. frames < clientcommandframe have been sent to the server. frame==clientcommandframe is still being generated and can still change. */ +float servercommandframe; /* This is the input-frame that was last acknowledged by the server. Input frames greater than this should be applied to the player's entity. */ +string mapname; /* The short name of the map. */ +float intermission; +vector v_forward, v_up, v_right; +vector view_angles; +float trace_allsolid, trace_startsolid, trace_fraction; +vector trace_endpos, trace_plane_normal; +float trace_plane_dist; +entity trace_ent; +float trace_inopen; +float trace_inwater; +float input_timelength; +vector input_angles; +vector input_movevalues; +float input_buttons; +float input_impulse; +void end_sys_globals; +.float modelindex; +.vector absmin; +.vector absmax; +.float entnum; /* The entity number as its known on the server. */ +.float drawmask; /* Acts as a filter in the addentities call. */ +.float() predraw; /* Called by addentities after the filter and before the entity is actually drawn. Do your interpolation and animation in here. Should return one of the PREDRAW_* constants. */ +.float movetype; +.float solid; +.vector origin; +.vector oldorigin; +.vector velocity; +.vector angles; +.vector avelocity; +.float pmove_flags; +.string classname; +.float renderflags; +.string model; +.float frame; +.float frame1time; /* The absolute time into the animation/framegroup specified by .frame. */ +.float frame2; +.float frame2time; /* The absolute time into the animation/framegroup specified by .frame2. */ +.float lerpfrac; /* If 0, use frame1 only. If 1, use frame2 only. Mix them together for values between. */ +.float skin; +.float effects; +.vector mins; +.vector maxs; +.vector size; +.void() touch; +.void() think; +.void() blocked; +.float nextthink; +.entity chain; +.entity enemy; +.float flags; +.float colormap; +.entity owner; +void end_sys_fields; + +.vector punchangle; +.float gravity; +.float hull; /* Overrides the hull used by the entity for walkmove/movetogoal and not traceline/tracebox. */ +.entity movechain; /* This is a linked list of entities which will be moved whenever this entity moves, logically they are attached to this entity. */ +.void() chainmoved; /* Called when the entity is moved as a result of being part of another entity's .movechain */ +.void(float old, float new) contentstransition; /* This function is called when the entity moves between water and air. If specified, default splash sounds will be disabled allowing you to provide your own. */ +.float dimension_solid; /* This is the bitmask of dimensions which the entity is solid within. */ +.float dimension_hit; /* This is the bitmask of dimensions which the entity will be blocked by. If other.dimension_solid & self.dimension_hit, our traces will impact and not proceed. If its false, the traces will NOT impact, allowing self to pass straight through. */ +.float hitcontentsmask; +.float scale; /* Multiplier that resizes the entity. 1 is normal sized, 2 is double sized. scale 0 is remapped to 1. In SSQC, this is limited to 1/16th precision, with a maximum just shy of 16. */ +.float fatness; /* How many QuakeUnits to push the entity's verticies along their normals by. */ +.float alpha; /* The transparency of the entity. 1 means opaque, 0.0001 means virtually invisible. 0 is remapped to 1, for compatibility. */ +.float modelflags; /* Used to override the flags set in the entity's model. Should be set according to the MF_ constants. Use effects|=EF_NOMODELFLAGS to ignore the model's flags completely. The traileffectnum field is more versatile. */ +.void() customphysics; /* Called once each physics frame, overriding the entity's .movetype field and associated logic. You'll probably want to use tracebox to move it through the world. Be sure to call .think as appropriate. */ +.entity tag_entity; +.float tag_index; +.float skeletonindex; /* This object serves as a container for the skeletal bone states used to override the animation data. */ +.vector colormod; +.vector glowmod; +.vector gravitydir; /* Specifies the direction in which gravity acts. Must be normalised. '0 0 0' also means down. Use '0 0 1' if you want the player to be able to run on ceilings. */ +.vector(vector org, vector ang) camera_transform; /* Provides portal transform information for portal surfaces attached to this entity. Also used to open up pvs in ssqc. */ +.float geomtype; +.float friction; +.float erp; +.float jointtype; +.float mass; +.float bouncefactor; +.float bouncestop; +.float idealpitch; +.float pitch_speed; +.float forceshader; /* Contains a shader handle used to replace all surfaces upon the entity. */ +.float baseframe; /* See basebone */ +.float baseframe2; /* See basebone */ +.float baseframe1time; /* See basebone */ +.float baseframe2time; /* See basebone */ +.float baselerpfrac; /* See basebone */ +.float basebone; /* The base* frame animations are equivelent to their non-base versions, except that they only affect bone numbers below the 'basebone' value. This means that the base* animation can affect the legs of a skeletal model independantly of the normal animation fields affecting the torso area. For more complex animation than this, use skeletal objects. */ +.float bonecontrol1; /* Halflife model format bone controller. On player models, this typically affects the spine's yaw. */ +.float bonecontrol2; /* Halflife model format bone controller. On player models, this typically affects the spine's yaw. */ +.float bonecontrol3; /* Halflife model format bone controller. On player models, this typically affects the spine's yaw. */ +.float bonecontrol4; /* Halflife model format bone controller. On player models, this typically affects the spine's yaw. */ +.float bonecontrol5; /* Halflife model format bone controller. This typically affects the mouth. */ +.float subblendfrac; /* Weird animation value specific to halflife models. On player models, this typically affects the spine's pitch. */ +.float basesubblendfrac; /* See basebone */ +noref void(float reqid, float responsecode, string resourcebody) URI_Get_Callback; /* Called as an eventual result of the uri_get builtin. */ +noref void(float apilevel, string enginename, float engineversion) CSQC_Init; /* Called at startup. enginename and engineversion are arbitary hints and can take any form. enginename should be consistant between revisions, but this cannot truely be relied upon. */ +noref void() CSQC_WorldLoaded; /* Called after model+sound precaches have been executed. Gives a chance for the qc to read the entity lump from the bsp. */ +noref void() CSQC_Shutdown; /* Specifies that the csqc is going down. Save your persistant settings here. */ +noref void(float vwidth, float vheight, float notmenu) CSQC_UpdateView; /* Called every single video frame. The CSQC is responsible for rendering the entire screen. */ +noref void(string msg) CSQC_Parse_StuffCmd; /* Gives the CSQC a chance to intercept stuffcmds. Use the tokenize builtin to parse the message. Unrecognised commands would normally be localcmded, but its probably better to drop unrecognised stuffcmds completely. */ +noref float(string msg) CSQC_Parse_CenterPrint; /* Gives the CSQC a chance to intercept centerprints. Return true if you wish the engine to otherwise ignore the centerprint. */ +noref void(string printmsg, float printlvl) CSQC_Parse_Print; /* Gives the CSQC a chance to intercept sprint/bprint builtin calls. CSQC should filter by the client's current msg setting and then pass the message on to the print command, or handle them itself. */ +noref void() CSQC_Parse_Event; /* Called when the client receives an SVC_CGAMEPACKET. The csqc should read the data or call the error builtin if it does not recognise the message. */ +noref float(float evtype, float scanx, float chary, float devid) CSQC_InputEvent; /* Called whenever a key is pressed, the mouse is moved, etc. evtype will be one of the IE_* constants. The other arguments vary depending on the evtype. Key presses are not guarenteed to have both scan and unichar values set at the same time. */ +noref void() CSQC_Input_Frame; /* Called just before each time clientcommandframe is updated. You can edit the input_* globals in order to apply your own player inputs within csqc, which may allow you a convienient way to pass certain info to ssqc. */ +noref float(string cmd) CSQC_ConsoleCommand; /* Called if the user uses any console command registed via registercommand. */ +noref float(string text, string info) CSQC_ConsoleLink; /* Called if the user clicks a ^[text\infokey\infovalue^] link. Use infoget to read/check each supported key. Return true if you wish the engine to not attempt to handle the link itself. */ +noref void(float isnew) CSQC_Ent_Update; +noref void() CSQC_Ent_Remove; +noref float(float entnum, float channel, string soundname, float vol, float attenuation, vector pos, float pitchmod) CSQC_Event_Sound; +noref float(string resname, string restype) CSQC_LoadResource; /* Called each time some resource is being loaded. CSQC can invoke various draw calls to provide a loading screen, until WorldLoaded is called. */ +noref float() CSQC_Parse_TempEntity; /* Please don't use this. Use CSQC_Parse_Event and multicasts instead. */ +noref void(string cmdtext) GameCommand; +var float physics_mode = 2; /* 0: original csqc - physics are not run +1: DP-compat. Thinks occur, but not true movetypes. +2: movetypes occur just as they do in ssqc. */ +float gamespeed; /* Set by the engine, this is the value of the sv_gamespeed cvar */ +float numclientseats; /* This is the number of splitscreen clients currently running on this client. */ +var vector drawfontscale = '1 1 0'; /* Specifies a scaler for all text rendering. There are other ways to implement this. */ +float drawfont; /* Allows you to choose exactly which font is to be used to draw text. Fonts can be registered/allocated with the loadfont builtin. */ +const float FONT_DEFAULT = 0; +const float TRUE = 1; +const float FALSE = 0; /* File not found... */ +const float M_PI = 3.14159; +const float MOVETYPE_NONE = 0; +const float MOVETYPE_WALK = 3; +const float MOVETYPE_STEP = 4; +const float MOVETYPE_FLY = 5; +const float MOVETYPE_TOSS = 6; +const float MOVETYPE_PUSH = 7; +const float MOVETYPE_NOCLIP = 8; +const float MOVETYPE_FLYMISSILE = 9; +const float MOVETYPE_BOUNCE = 10; +const float MOVETYPE_BOUNCEMISSILE = 11; +const float MOVETYPE_FOLLOW = 12; +const float MOVETYPE_WALLWALK = 31; /* Players using this movetype will be able to orient themselves to walls, and then run up them. */ +const float MOVETYPE_PHYSICS = 32; /* Enable the use of ODE physics upon this entity. */ +const float SOLID_NOT = 0; +const float SOLID_TRIGGER = 1; +const float SOLID_BBOX = 2; +const float SOLID_SLIDEBOX = 3; +const float SOLID_BSP = 4; +const float SOLID_CORPSE = 5; +const float SOLID_LADDER = 20; /* Obsolete and may be removed at some point. Use skin=CONTENT_LADDER and solid_bsp or solid_trigger instead. */ +const float SOLID_PHYSICS_BOX = 32; +const float SOLID_PHYSICS_SPHERE = 33; +const float SOLID_PHYSICS_CAPSULE = 34; +const float SOLID_PHYSICS_TRIMESH = 35; +const float SOLID_PHYSICS_CYLINDER = 36; +const float GEOMTYPE_NONE = -1; +const float GEOMTYPE_SOLID = 0; +const float GEOMTYPE_BOX = 1; +const float GEOMTYPE_SPHERE = 2; +const float GEOMTYPE_CAPSULE = 3; +const float GEOMTYPE_TRIMESH = 4; +const float GEOMTYPE_CYLINDER = 5; +const float GEOMTYPE_CAPSULE_X = 6; +const float GEOMTYPE_CAPSULE_Y = 7; +const float GEOMTYPE_CAPSULE_Z = 8; +const float GEOMTYPE_CYLINDER_X = 9; +const float GEOMTYPE_CYLINDER_Y = 10; +const float GEOMTYPE_CYLINDER_Z = 11; +const float JOINTTYPE_FIXED = -1; +const float JOINTTYPE_POINT = 1; +const float JOINTTYPE_HINGE = 2; +const float JOINTTYPE_SLIDER = 3; +const float JOINTTYPE_UNIVERSAL = 4; +const float JOINTTYPE_HINGE2 = 5; +const float GE_MAXENTS = -1; /* Valid for getentity, ignores the entity argument. Returns the maximum number of entities which may be valid, to avoid having to poll 65k when only 100 are used. */ +const float GE_ACTIVE = 0; /* Valid for getentity. Returns whether this entity is known to the client or not. */ +const float GE_ORIGIN = 1; /* Valid for getentity. Returns the interpolated .origin. */ +const float GE_FORWARD = 2; /* Valid for getentity. Returns the interpolated forward vector. */ +const float GE_RIGHT = 3; /* Valid for getentity. Returns the entity's right vector. */ +const float GE_UP = 4; /* Valid for getentity. Returns the entity's up vector. */ +const float GE_SCALE = 5; /* Valid for getentity. Returns the entity .scale. */ +const float GE_ORIGINANDVECTORS = 6; /* Valid for getentity. Returns interpolated .origin, but also sets v_forward, v_right, and v_up accordingly. Use vectoangles(v_forward,v_up) to determine the angles. */ +const float GE_ALPHA = 7; /* Valid for getentity. Returns the entity alpha. */ +const float GE_COLORMOD = 8; /* Valid for getentity. Returns the colormod vector. */ +const float GE_PANTSCOLOR = 9; /* Valid for getentity. Returns the entity's lower color (from .colormap), as a palette range value. */ +const float GE_SHIRTCOLOR = 10; /* Valid for getentity. Returns the entity's lower color (from .colormap), as a palette range value. */ +const float GE_SKIN = 11; /* Valid for getentity. Returns the entity's .skin index. */ +const float GE_MINS = 12; /* Valid for getentity. Guesses the entity's .min vector. */ +const float GE_MAXS = 13; /* Valid for getentity. Guesses the entity's .max vector. */ +const float GE_ABSMIN = 14; /* Valid for getentity. Guesses the entity's .absmin vector. */ +const float GE_ABSMAX = 15; /* Valid for getentity. Guesses the entity's .absmax vector. */ +const float CONTENT_EMPTY = -1; +const float CONTENT_SOLID = -2; +const float CONTENT_WATER = -3; +const float CONTENT_SLIME = -4; +const float CONTENT_LAVA = -5; +const float CONTENT_SKY = -6; +const float CONTENT_LADDER = -16; /* If this value is assigned to a solid_bsp's .skin field, the entity will become a ladder volume. */ +const float CHAN_AUTO = 0; /* The automatic channel, play as many sounds on this channel as you want, and they'll all play, however the other channels will replace each other. */ +const float CHAN_WEAPON = 1; +const float CHAN_VOICE = 2; +const float CHAN_ITEM = 3; +const float CHAN_BODY = 4; +const float ATTN_NONE = 0; /* Sounds with this attenuation can be heard throughout the map */ +const float ATTN_NORM = 1; /* Standard attenuation */ +const float ATTN_IDLE = 2; /* Extra attenuation so that sounds don't travel too far. */ +const float ATTN_STATIC = 3; /* Even more attenuation to avoid torches drowing out everything else throughout the map. */ +const string INFOKEY_P_PING = "ping"; /* The player's ping time, in milliseconds. */ +const string INFOKEY_P_NAME = "name"; /* The player's name. */ +const string INFOKEY_P_TOPCOLOR = "topcolor"; /* The player's upper/shirt colour (palette index). */ +const string INFOKEY_P_BOTTOMCOLOR = "bottomcolor"; /* The player's lower/pants/trouser colour (palette index). */ +const string INFOKEY_P_TOPCOLOR_RGB = "topcolor_rgb"; /* The player's upper/shirt colour as an rgb value in a format usable with stov. */ +const string INFOKEY_P_BOTTOMCOLOR_RGB = "bottomcolor_rgb"; /* The player's lower/pants/trouser colour as an rgb value in a format usable with stov. */ +const string INFOKEY_P_MUTED = "ignored"; /* 0: we can see the result of the player's say/say_team commands. 1: we see no say/say_team messages from this player. Use the ignore command to toggle this value. */ +const string INFOKEY_P_VOIP_MUTED = "vignored"; /* 0: we can hear this player when they speak (assuming voip is generally enabled). 1: we ignore everything this player says. Use cl_voip_mute to change the values. */ +const string INFOKEY_P_ENTERTIME = "entertime"; /* Reads the timestamp at which the player entered the game, in terms of csqc's time global. */ +const string INFOKEY_P_FRAGS = "frags"; /* Reads a player's frag count. */ +const string INFOKEY_P_PACKETLOSS = "pl"; /* Reads a player's packetloss, as a percentage. */ +const string INFOKEY_P_VOIPSPEAKING = "voipspeaking"; /* Boolean value that says whether the given player is currently sending voice information. */ +const string INFOKEY_P_VOIPLOUDNESS = "voiploudness"; /* Only valid for the local player. Gives a value between 0 and 1 to indicate to the user how loud their mic is. */ +const float FL_FLY = 1; +const float FL_SWIM = 2; +const float FL_CLIENT = 8; +const float FL_INWATER = 16; +const float FL_MONSTER = 32; +const float FL_ITEM = 256; +const float FL_ONGROUND = 512; +const float FL_PARTIALGROUND = 1024; +const float FL_WATERJUMP = 2048; +const float FL_JUMPRELEASED = 4096; +const float FL_FINDABLE_NONSOLID = 16384; /* Allows this entity to be found with findradius */ +const float MOVE_NORMAL = 0; +const float MOVE_NOMONSTERS = 1; /* The trace will ignore all non-solid_bsp entities. */ +const float MOVE_MISSILE = 2; /* The trace will use a bbox size of +/- 15 against entities with FL_MONSTER set. */ +const float MOVE_HITMODEL = 4; /* Traces will impact the actual mesh of the model instead of merely their bounding box. Should generally only be used for tracelines. Note that this flag is unreliable as an object can animate through projectiles. The bounding box MUST be set to completely encompass the entity or those extra areas will be non-solid (leaving a hole for things to go through). */ +const float MOVE_TRIGGERS = 16; /* This trace type will impact only triggers. It will ignore non-solid entities. */ +const float MOVE_EVERYTHING = 32; /* This type of trace will hit solids and triggers alike. Even non-solid entities. */ +const float MOVE_ENTCHAIN = 128; /* Returns a list of entities impacted via the trace_ent.chain field */ +const float RESTYPE_MODEL = 0; /* RESTYPE_* constants are used as arguments with the resourcestatus builtin. */ +const float RESTYPE_SOUND = 1; /* precache_sound */ +const float RESTYPE_PARTICLE = 2; /* particleeffectnum */ +const float RESTYPE_PIC = 3; /* precache_pic. Status results are an amalgomation of the textures used by the named shader. */ +const float RESTYPE_SKIN = 4; /* setcustomskin */ +const float RESTYPE_TEXTURE = 5; /* Individual textures within shaders. These are not directly usable, but may be named as part of a skin file, or a shader. */ +const float RESSTATE_NOTKNOWN = 0; /* RESSTATE_* constants are return values from the resourcestatus builtin. The engine doesn't know about the resource if it is in this state. This means you will need to precache it. Attempting to use it anyway may result in warnings, errors, or silently succeed, depending on engine version and resource type. */ +const float RESSTATE_NOTLOADED = 1; /* The resource was precached, but has been flushed and there has not been an attempt to reload it. If you use the resource normally, chances are it'll be loaded but at the cost of a stall. */ +const float RESSTATE_LOADING = 2; /* Resources in this this state are queued for loading, and will be loaded at the engine's convienience. If you attempt to query the resource now, the engine will stall until the result is available. sounds in this state may be delayed, while models/pics/shaders may be invisible. */ +const float RESSTATE_FAILED = 3; /* Resources in this state are unusable/could not be loaded. You will get placeholders or dummy results. Queries will not stall the engine. The engine may display placeholder content. */ +const float RESSTATE_LOADED = 4; /* Resources in this state are finally usable, everything will work okay. Hurrah. Queries will not stall the engine. */ +const float EF_BRIGHTFIELD = 1; +const float EF_MUZZLEFLASH = 2; +const float EF_BRIGHTLIGHT = 4; +const float EF_DIMLIGHT = 8; +const float EF_ADDITIVE = 32; +const float EF_BLUE = 64; +const float EF_RED = 128; +const float EF_FULLBRIGHT = 512; +const float EF_NODEPTHTEST = 8192; +const float MF_ROCKET = 1; +const float MF_GRENADE = 2; +const float MF_GIB = 4; +const float MF_ROTATE = 8; +const float MF_TRACER = 16; +const float MF_ZOMGIB = 32; +const float MF_TRACER2 = 64; +const float MF_TRACER3 = 128; +const float PFLAGS_NOSHADOW = 1; /* Associated RT lights attached will not cast shadows, making them significantly faster to draw. */ +const float PFLAGS_CORONA = 2; /* Enables support of coronas on the associated rtlights. */ +const float EV_STRING = 1; +const float EV_FLOAT = 2; +const float EV_VECTOR = 3; +const float EV_ENTITY = 4; +const float EV_FUNCTION = 6; +const float EV_POINTER = 7; +const float EV_INTEGER = 8; +const float EV_VARIANT = 9; +hashtable gamestate; /* Special hash table index for hash_add and hash_get. Entries in this table will persist over map changes (and doesn't need to be created/deleted). */ +const float HASH_REPLACE = 256; /* Used with hash_add. Attempts to remove the old value instead of adding two values for a single key. */ +const float STAT_HEALTH = 0; +const float STAT_WEAPON = 2; +const float STAT_AMMO = 3; +const float STAT_ARMOR = 4; +const float STAT_WEAPONFRAME = 5; +const float STAT_SHELLS = 6; +const float STAT_NAILS = 7; +const float STAT_ROCKETS = 8; +const float STAT_CELLS = 9; +const float STAT_ACTIVEWEAPON = 10; +const float STAT_TOTALSECRETS = 11; +const float STAT_TOTALMONSTERS = 12; +const float STAT_FOUNDSECRETS = 13; +const float STAT_KILLEDMONSTERS = 14; +const float STAT_ITEMS = 15; +const float STAT_VIEWHEIGHT = 16; +const float STAT_VIEW2 = 20; /* This stat contains the number of the entity in the server's .view2 field. */ +const float STAT_VIEWZOOM = 21; +const float VF_MIN = 1; /* The top-left of the 3d viewport in screenspace. The VF_ values are used via the setviewprop/getviewprop builtins. */ +const float VF_MIN_X = 2; +const float VF_MIN_Y = 3; +const float VF_SIZE = 4; /* The width+height of the 3d viewport in screenspace. */ +const float VF_SIZE_X = 5; +const float VF_SIZE_Y = 6; +const float VF_VIEWPORT = 7; /* vector+vector. Two argument shortcut for VF_MIN and VF_SIZE */ +const float VF_FOV = 8; /* sets both fovx and fovy. consider using afov instead. */ +const float VF_FOVX = 9; /* horizontal field of view. does not consider aspect at all. */ +const float VF_FOVY = 10; /* vertical field of view. does not consider aspect at all. */ +const float VF_ORIGIN = 11; /* The origin of the view. Not of the player. */ +const float VF_ORIGIN_X = 12; +const float VF_ORIGIN_Y = 13; +const float VF_ORIGIN_Z = 14; +const float VF_ANGLES = 15; /* The angles the view will be drawn at. Not the angle the client reports to the server. */ +const float VF_ANGLES_X = 16; +const float VF_ANGLES_Y = 17; +const float VF_ANGLES_Z = 18; +const float VF_DRAWWORLD = 19; /* boolean. If set to 1, the engine will draw the world and static/persistant rtlights. If 0, the world will be skipped and everything will be fullbright. */ +const float VF_DRAWENGINESBAR = 20; /* boolean. If set to 1, the sbar will be drawn, and viewsize will be honoured automatically. */ +const float VF_DRAWCROSSHAIR = 21; /* boolean. If set to 1, the engine will draw its default crosshair. */ +const float VF_CL_VIEWANGLES = 33; +const float VF_CL_VIEWANGLES_X = 34; +const float VF_CL_VIEWANGLES_Y = 35; +const float VF_CL_VIEWANGLES_Z = 36; +const float VF_PERSPECTIVE = 200; /* 1: regular rendering. Fov specifies the angle. 0: isometric-style. Fov specifies the number of Quake Units each side of the viewport. */ +const float VF_LPLAYER = 202; /* The 'seat' number, used when running splitscreen. */ +const float VF_AFOV = 203; /* Aproximate fov. Matches the 'fov' cvar. The engine handles the aspect ratio for you. */ +const float VF_SCREENVSIZE = 204; /* Provides a reliable way to retrieve the current virtual screen size (even if the screen is automatically scaled to retain aspect). */ +const float VF_SCREENPSIZE = 205; /* Provides a reliable way to retrieve the current physical screen size (cvars need vid_restart for them to take effect). */ +const float VF_VIEWENTITY = 206; /* Changes the RF_EXTERNALMODEL flag on entities to match the new selection, and removes entities flaged with RF_VIEWENTITY. Requires cunning use of .entnum and typically requires calling addentities(MASK_VIEWMODEL) too. */ +const float VF_RT_DESTCOLOUR = 212; /* The texture name to write colour info into, this includes both 3d and 2d drawing. +Additional arguments are: format (rgba8=1,rgba16f=2,rgba32f=3), sizexy. +Written to by both 3d and 2d rendering. +Note that any rendertarget textures may be destroyed on video mode changes or so. Shaders can name render targets by prefixing texture names with '$rt:', or $sourcecolour. */ +const float VF_RT_SOURCECOLOUR = 209; /* The texture name to use with shaders that specify a $sourcecolour map. */ +const float VF_RT_DEPTH = 210; /* The texture name to use as a depth buffer. Also used for shaders that specify $sourcedepth. 1-based. Additional arguments are: format (16bit=4,24bit=5,32bit=6), sizexy. */ +const float VF_RT_RIPPLE = 211; /* The texture name to use as a ripplemap (target for shaders with 'sort ripple'). Also used for shaders that specify $ripplemap. 1-based. Additional arguments are: format, sizexy. */ +const float RF_VIEWMODEL = 1; /* Specifies that the entity is a view model, and that its origin is relative to the current view position. These entities are also subject to viewweapon bob. */ +const float RF_EXTERNALMODEL = 2; /* Specifies that this entity should be displayed in mirrors (and may still cast shadows), but will not otherwise be visible. */ +const float RF_DEPTHHACK = 4; /* Hacks the depth values such that the entity uses depth values as if it were closer to the screen. This is useful when combined with viewmodels to avoid weapons poking in to walls. */ +const float RF_ADDITIVE = 8; /* Shaders from this entity will temporarily be hacked to use an additive blend mode instead of their normal blend mode. */ +const float RF_USEAXIS = 16; /* The entity will be oriented according to the current v_forward+v_right+v_up vector values instead of the entity's .angles field. */ +const float RF_NOSHADOW = 32; /* This entity will not cast shadows. Often useful on view models. */ +const float RF_FRAMETIMESARESTARTTIMES = 64; /* Specifies that the frame1time, frame2time field are timestamps (denoting the start of the animation) rather than time into the animation. */ +const float IE_KEYDOWN = 0; /* Specifies that a key was pressed. Second argument is the scan code. Third argument is the unicode (printable) char value. Fourth argument denotes which keyboard(or mouse, if its a mouse 'scan' key) the event came from. Note that some systems may completely separate scan codes and unicode values, with a 0 value for the unspecified argument. */ +const float IE_KEYUP = 1; /* Specifies that a key was released. Arguments are the same as IE_KEYDOWN. On some systems, this may be fired instantly after IE_KEYDOWN was fired. */ +const float IE_MOUSEDELTA = 2; /* Specifies that a mouse was moved (touch screens and tablets typically give IE_MOUSEABS events instead, use _windowed_mouse 0 to test code to cope with either). Second argument is the X displacement, third argument is the Y displacement. Fourth argument is which mouse or touch event triggered the event. */ +const float IE_MOUSEABS = 3; /* Specifies that a mouse cursor or touch event was moved to a specific location relative to the virtual screen space. Second argument is the new X position, third argument is the new Y position. Fourth argument is which mouse or touch event triggered the event. */ +const float IE_ACCELEROMETER = 4; +const float IE_FOCUS = 5; /* Specifies that input focus was given. parama says mouse focus, paramb says keyboard focus. If either are -1, then it is unchanged. */ +const float IE_JOYAXIS = 6; /* Specifies that what value a joystick/controller axis currently specifies. x=axis, y=value. Will be called multiple times, once for each axis of each active controller. */ +const float FILE_READ = 0; /* The file may be read via fgets to read a single line at a time. */ +const float FILE_APPEND = 1; /* Like FILE_WRITE, but writing starts at the end of the file. */ +const float FILE_WRITE = 2; /* fputs will be used to write to the file. */ +const float FILE_READNL = 4; /* Like FILE_READ, except newlines are not special. fgets reads the entire file into a tempstring. */ +const float FILE_MMAP_READ = 5; /* The file will be loaded into memory. fgets returns a pointer to the first byte (and will always return the same value for this file). Cast this to your datatype. */ +const float FILE_MMAP_RW = 6; /* Like FILE_MMAP_READ, except any changes to the data will be written back to disk once the file is closed. */ +const float MASK_ENGINE = 1; /* Valid as an argument for addentities. If specified, all non-csqc entities will be added to the scene. */ +const float MASK_VIEWMODEL = 2; /* Valid as an argument for addentities. If specified, the regular engine viewmodel will be added to the scene. */ +const float PREDRAW_AUTOADD = 0; /* Valid as a return value from the predraw function. Returning this will cause the engine to automatically invoke addentity(self) for you. */ +const float PREDRAW_NEXT = 1; /* Valid as a return value from the predraw function. Returning this will simply move on to the next entity without the autoadd behaviour, so can be used for particle/invisible/special entites, or entities that were explicitly drawn with addentity. */ +const float LFIELD_ORIGIN = 0; +const float LFIELD_COLOUR = 1; +const float LFIELD_RADIUS = 2; +const float LFIELD_FLAGS = 3; +const float LFIELD_STYLE = 4; +const float LFIELD_ANGLES = 5; +const float LFIELD_FOV = 6; +const float LFIELD_CORONA = 7; +const float LFIELD_CORONASCALE = 8; +const float LFIELD_CUBEMAPNAME = 9; +const float LFIELD_AMBIENTSCALE = 10; +const float LFIELD_DIFFUSESCALE = 11; +const float LFIELD_SPECULARSCALE = 12; +const float LFIELD_ROTATION = 13; +const float LFLAG_NORMALMODE = 1; +const float LFLAG_REALTIMEMODE = 2; +const float LFLAG_LIGHTMAP = 4; +const float LFLAG_FLASHBLEND = 8; +const float LFLAG_NOSHADOWS = 256; +const float LFLAG_SHADOWMAP = 512; +const float LFLAG_CREPUSCULAR = 1024; +const float TEREDIT_RELOAD = 0; +const float TEREDIT_SAVE = 1; +const float TEREDIT_SETHOLE = 2; +const float TEREDIT_HEIGHT_SET = 3; +const float TEREDIT_HEIGHT_SMOOTH = 4; +const float TEREDIT_HEIGHT_SPREAD = 5; +const float TEREDIT_HEIGHT_RAISE = 6; +const float TEREDIT_HEIGHT_FLATTEN = 18; +const float TEREDIT_HEIGHT_LOWER = 7; +const float TEREDIT_TEX_KILL = 8; +const float TEREDIT_TEX_GET = 9; +const float TEREDIT_TEX_BLEND = 10; +const float TEREDIT_TEX_UNIFY = 11; +const float TEREDIT_TEX_NOISE = 12; +const float TEREDIT_TEX_BLUR = 13; +const float TEREDIT_WATER_SET = 14; +const float TEREDIT_MESH_ADD = 15; +const float TEREDIT_MESH_KILL = 16; +const float TEREDIT_TINT = 17; +const float TEREDIT_TEX_REPLACE = 19; +const float TEREDIT_RESET_SECT = 20; +const float TEREDIT_RELOAD_SECT = 21; +const float SLIST_HOSTCACHEVIEWCOUNT = 0; +const float SLIST_HOSTCACHETOTALCOUNT = 1; +const float SLIST_MASTERQUERYCOUNT = 2; +const float SLIST_MASTERREPLYCOUNT = 3; +const float SLIST_SERVERQUERYCOUNT = 4; +const float SLIST_SERVERREPLYCOUNT = 5; +const float SLIST_SORTFIELD = 6; +const float SLIST_SORTDESCENDING = 7; +const float SLIST_TEST_CONTAINS = 0; +const float SLIST_TEST_NOTCONTAIN = 1; +const float SLIST_TEST_LESSEQUAL = 2; +const float SLIST_TEST_LESS = 3; +const float SLIST_TEST_EQUAL = 4; +const float SLIST_TEST_GREATER = 5; +const float SLIST_TEST_GREATEREQUAL = 6; +const float SLIST_TEST_NOTEQUAL = 7; +const float SLIST_TEST_STARTSWITH = 8; +const float SLIST_TEST_NOTSTARTSWITH = 9; +void(vector vang) makevectors = #1; /* + Takes an angle vector (pitch,yaw,roll). Writes its results into v_forward, v_right, v_up vectors. */ + +void(entity e, vector o) setorigin = #2; /* + Changes e's origin to be equal to o. Also relinks collision state (as well as setting absmin+absmax), which is required after changing .solid */ + +void(entity e, string m) setmodel = #3; /* + Looks up m in the model precache list, and sets both e.model and e.modelindex to match. BSP models will set e.mins and e.maxs accordingly, other models depend upon the value of sv_gameplayfix_setmodelrealbox - for compatibility you should always call setsize after all pickups or non-bsp models. Also relinks collision state. */ + +void(entity e, vector min, vector max) setsize = #4; /* + Sets the e's mins and maxs fields. Also relinks collision state, which sets absmin and absmax too. */ + +float() random = #7; /* + Returns a random value between 0 and 1. Be warned, this builtin can return 1 in most engines, which can break arrays. */ + +void(entity e, float chan, string samp, float vol, float atten, optional float speedpct, optional float flags) sound = #8; /* + Starts a sound centered upon the given entity. + chan is the entity sound channel to use, channel 0 will allow you to mix many samples at once, others will replace the old sample + 'samp' must have been precached first + if specified, 'speedpct' should normally be around 100 (or =0), 200 for double speed or 50 for half speed. + flags&1 means the sound should be sent reliably. */ + +vector(vector v) normalize = #9; /* + Shorten or lengthen a direction vector such that it is only one quake unit long. */ + +void(string e) error = #10; /* + Ends the game with an easily readable error message. */ + +void(string e) objerror = #11; /* + Displays a non-fatal easily readable error message concerning the self entity, including a field dump. self will be removed! */ + +float(vector v) vlen = #12; /* + Returns the square root of the dotproduct of a vector with itself. Or in other words the length of a distance vector, in quake units. */ + +float(vector v, optional entity reference) vectoyaw = #13; /* + Given a direction vector, returns the yaw angle in which that direction vector points. If an entity is passed, the yaw angle will be relative to that entity's gravity direction. */ + +entity() spawn = #14; /* + Adds a brand new entity into the world! Hurrah, you're now a parent! */ + +void(entity e) remove = #15; /* + Destroys the given entity and clears some limited fields (including model, modelindex, solid, classname). Any references to the entity following the call are an error. After two seconds, the entity will be reused, in the interim you can unfortunatly still read its fields to see if the reference is no longer valid. */ + +void(vector v1, vector v2, float flags, entity ent) traceline = #16; /* + Traces an infinitely thin line through the world from v1 towards v2. + Will not collide with ent, ent.owner, or any entity who's owner field refers to ent. + There are no side effects beyond the trace_* globals being written. + flags&MOVE_NOMONSTERS will not impact on non-bsp entities. + flags&MOVE_MISSILE will impact with increased size. + flags&MOVE_HITMODEL will impact upon model meshes, instead of their bounding boxes. + flags&MOVE_TRIGGERS will also stop on triggers + flags&MOVE_EVERYTHING will stop if it hits anything, even non-solid entities. + flags&MOVE_LAGGED will backdate entity positions for the purposes of this builtin according to the indicated player ent's latency, to provide lag compensation. */ + +entity(entity start, .string fld, string match) find = #18; /* + Scan for the next entity with a given field set to the given 'match' value. start should be either world, or the previous entity that was found. Returns world on failure/if there are no more. */ + +string(string s) precache_sound = #19; /* + Precaches a sound, making it known to clients and loading it from disk. This builtin (strongly) should be called during spawn functions. This builtin must be called for the sound before the sound builtin is called, or it might not even be heard. */ + +string(string s) precache_model = #20; /* + Precaches a model, making it known to clients and loading it from disk if it has a .bsp extension. This builtin (strongly) should be called during spawn functions. This must be called for each model name before setmodel may use that model name. + Modelindicies precached in SSQC will always be positive. CSQC precaches will be negative if they are not also on the server. */ + +entity(vector org, float rad) findradius = #22; /* + Finds all entities within a distance of the 'org' specified. One entity is returned directly, while other entities are returned via that entity's .chain field. */ + +void(string s, ...) dprint = #25; /* + NQ: Prints the given message on the server's console, but only if the developer cvar is set. Arguments will be concatenated into a single message. */ + +void(string s, ...) dprint = #25; /* + QW: Unconditionally prints the given message on the server's console. Arguments will be concatenated into a single message. */ + +string(float val) ftos = #26; /* + Returns a tempstring containing a representation of the given float. Precision depends upon engine. */ + +string(vector val) vtos = #27; /* + Returns a tempstring containing a representation of the given vector. Precision depends upon engine. */ + +void() coredump = #28; /* + Writes out a coredump. This contains stack, globals, and field info for all ents. This can be handy for debugging. */ + +void() traceon = #29; /* + Enables tracing. This may be spammy, slow, and stuff. Set debugger 1 in order to use fte's qc debugger. */ + +void() traceoff = #30; /* + Disables tracing again. */ + +void(entity e) eprint = #31; /* + Debugging builtin that prints all fields of the given entity to the console. */ + +float(float yaw, float dist, optional float settraceglobals) walkmove = #32; /* + Attempt to walk the entity at a given angle for a given distance. + if settraceglobals is set, the trace_* globals will be set, showing the results of the movement. + This function will trigger touch events. */ + +float() droptofloor = #34; /* + Instantly moves the entity downwards until it hits the ground. If the entity would need to drop more than 'pr_droptofloorunits' quake units, its position will be considered invalid and the builtin will abort. */ + +void(float lightstyle, string stylestring, optional vector rgb) lightstyle = #35; /* + Specifies an auto-animating string that specifies the light intensity for entities using that lightstyle. + a is off, z is fully lit. Should be lower case only. + rgb will recolour all lights using that lightstyle. */ + +float(float) rint = #36; /* + Rounds the given float up or down to the closest integeral value. X.5 rounds away from 0 */ + +float(float) floor = #37; /* + Rounds the given float downwards, even when negative. */ + +float(float) ceil = #38; /* + Rounds the given float upwards, even when negative. */ + +float(entity ent) checkbottom = #40; /* + Expensive checks to ensure that the entity is actually sitting on something solid, returns true if it is. */ + +float(vector pos) pointcontents = #41; /* + Checks the given point to see what is there. Returns one of the SOLID_* constants. Just because a spot is empty does not mean that the player can stand there due to the size of the player - use tracebox for such tests. */ + +float(float) fabs = #43; /* + Removes the sign of the float, making it positive if it is negative. */ + +float(string) cvar = #45; /* + Returns the numeric value of the named cvar */ + +void(string, ...) localcmd = #46; /* + Adds the string to the console command queue. Commands will not be executed immediately, but rather at the start of the following frame. */ + +entity(entity) nextent = #47; /* + Returns the following entity. Skips over removed entities. Returns world when passed the last valid entity. */ + +void(vector pos, vector dir, float colour, float count) particle = #48; /* + Spawn 'count' particles around 'pos' moving in the direction 'dir', with a palette colour index between 'colour' and 'colour+8'. */ + +#define ChangeYaw changeyaw +void() changeyaw = #49; /* + Changes the self.angles_y field towards self.ideal_yaw by up to self.yawspeed. */ + +vector(vector fwd, optional vector up) vectoangles = #51; /* + Returns the angles required to orient an entity to look in the given direction. The 'up' argument is required if you wish to set a roll angle, otherwise it will be limited to just monster-style turning. */ + +float(float angle) sin = #60; /* Part of DP_QC_SINCOSSQRTPOW*/ +float(float angle) cos = #61; /* Part of DP_QC_SINCOSSQRTPOW*/ +float(float value) sqrt = #62; /* Part of DP_QC_SINCOSSQRTPOW*/ +void(entity ent) changepitch = #63; /* Part of DP_QC_CHANGEPITCH*/ +void(entity ent, entity ignore) tracetoss = #64; +string(entity ent) etos = #65; /* Part of DP_QC_ETOS*/ +void(float step) movetogoal = #67; +string(string s) precache_file = #68; /* + This builtin does nothing. It was used only as a hint for pak generation. */ + +void(entity e) makestatic = #69; /* + Sends a copy of the entity's renderable fields to all clients, and REMOVES the entity, preventing further changes. This means it will be unmutable and non-solid. */ + +void(string cvarname, string valuetoset) cvar_set = #72; /* + Instantly sets a cvar to the given string value. */ + +void (vector pos, string samp, float vol, float atten) ambientsound = #74; +string(string str) precache_model2 = #75; +string(string str) precache_sound2 = #76; +string(string str) precache_file2 = #77; +float(string) stof = #81; /* Part of FRIK_FILE, FTE_STRINGS, QW_ENGINE, ZQ_QC_STRINGS*/ +void(vector start, vector mins, vector maxs, vector end, float nomonsters, entity ent) tracebox = #90; /* Part of DP_QC_TRACEBOX + Exactly like traceline, but a box instead of a uselessly thin point. Acceptable sizes are limited by bsp format, q1bsp has strict acceptable size values. */ + +vector() randomvec = #91; /* Part of DP_QC_RANDOMVEC + Returns a vector with random values. Each axis is independantly a value between -1 and 1 inclusive. */ + +vector(vector org) getlight = #92; +void(string cvarname, string defaultvalue) registercvar = #93; /* Part of DP_REGISTERCVAR + Creates a new cvar on the fly. If it does not already exist, it will be given the specified value. If it does exist, this is a no-op. + This builtin has the limitation that it does not apply to configs or commandlines. Such configs will need to use the set or seta command causing this builtin to be a noop. + In engines that support it, you will generally find the autocvar feature easier and more efficient to use. */ + +float(float a, float b, ...) min = #94; /* Part of DP_QC_MINMAXBOUND + Returns the lowest value of its arguments. */ + +float(float a, float b, ...) max = #95; /* Part of DP_QC_MINMAXBOUND + Returns the highest value of its arguments. */ + +float(float minimum, float val, float maximum) bound = #96; /* Part of DP_QC_MINMAXBOUND + Returns val, unless minimum is higher, or maximum is less. */ + +float(float value, float exp) pow = #97; /* Part of DP_QC_SINCOSSQRTPOW*/ +entity(entity start, .float fld, float match) findfloat = #98; /* Part of DP_QC_FINDFLOAT + Equivelent to the find builtin, but instead of comparing strings, this builtin compares floats. This builtin requires multiple calls in order to scan all entities - set start to the previous call's return value. + world is returned when there are no more entities. */ + +float(string extname) checkextension = #99; /* + Checks for an extension by its name (eg: checkextension("FRIK_FILE") says that its okay to go ahead and use strcat). + Use cvar("pr_checkextension") to see if this builtin exists. */ + +float(float value) anglemod = #102; +filestream(string filename, float mode, optional float mmapminsize) fopen = #110; /* Part of FRIK_FILE*/ +void(filestream fhandle) fclose = #111; /* Part of FRIK_FILE*/ +string(filestream fhandle) fgets = #112; /* Part of FRIK_FILE*/ +void(filestream fhandle, string s, optional string s2, optional string s3, optional string s4, optional string s5, optional string s6, optional string s7) fputs = #113; /* Part of FRIK_FILE*/ +float(string s) strlen = #114; /* Part of FRIK_FILE, FTE_STRINGS, ZQ_QC_STRINGS*/ +string(string s1, optional string s2, ...) strcat = #115; /* Part of FRIK_FILE, FTE_STRINGS, ZQ_QC_STRINGS*/ +string(string s, float start, float length) substring = #116; /* Part of FRIK_FILE, FTE_STRINGS, ZQ_QC_STRINGS*/ +vector(string s) stov = #117; /* Part of FRIK_FILE, FTE_STRINGS, ZQ_QC_STRINGS*/ +string(string s, ...) strzone = #118; /* Part of FRIK_FILE, FTE_STRINGS, ZQ_QC_STRINGS*/ +void(string s) strunzone = #119; /* Part of FRIK_FILE, FTE_STRINGS, ZQ_QC_STRINGS*/ +float(string modelname, optional float queryonly) getmodelindex = #200; /* + Acts as an alternative to precache_model(foo);setmodel(bar, foo); return bar.modelindex; + If queryonly is set and the model was not previously precached, the builtin will return 0 without needlessly precaching the model. */ + +__variant(float prnum, string funcname, ...) externcall = #201; /* Part of FTE_MULTIPROGS + Directly call a function in a different/same progs by its name. + prnum=0 is the 'default' or 'main' progs. + prnum=-1 means current progs. + prnum=-2 will scan through the active progs and will use the first it finds. */ + +float(string progsname) addprogs = #202; /* Part of FTE_MULTIPROGS + Loads an additional .dat file into the current qcvm. The returned handle can be used with any of the externcall/externset/externvalue builtins. + There are cvars that allow progs to be loaded automatically. */ + +__variant(float prnum, string varname) externvalue = #203; /* Part of FTE_MULTIPROGS + Reads a global in the named progs by the name of that global. + prnum=0 is the 'default' or 'main' progs. + prnum=-1 means current progs. + prnum=-2 will scan through the active progs and will use the first it finds. */ + +void(float prnum, __variant newval, string varname) externset = #204; /* Part of FTE_MULTIPROGS + Sets a global in the named progs by name. + prnum=0 is the 'default' or 'main' progs. + prnum=-1 means current progs. + prnum=-2 will scan through the active progs and will use the first it finds. */ + +float(string input, string token) instr = #206; /* Part of FTE_MULTIPROGS + Returns substring(input, strstrpos(input, token), -1), or the null string if token was not found in input. You're probably better off using strstrpos. */ + +void(entity portal, float state) openportal = #207; /* + Opens or closes the portals associated with a door or some such on q2 or q3 maps. On Q2BSPs, the entity should be the 'func_areaportal' entity - its style field will say which portal to open. On Q3BSPs, the entity is the door itself, the portal will be determined by the two areas found from a preceding setorigin call. */ + +void(optional __variant ret) abort = #211; /* Part of FTE_MULTITHREADED + QC execution is aborted. Parent QC functions on the stack will be skipped, effectively this forces all QC functions to 'return ret' until execution returns to the engine. If ret is ommited, it is assumed to be 0. */ + +void(vector org, vector dmin, vector dmax, float colour, float effect, float count) particle2 = #215; /* Part of FTE_HEXEN2*/ +void(vector org, vector box, float colour, float effect, float count) particle3 = #216; /* Part of FTE_HEXEN2*/ +void(vector org, float radius, float colour, float effect, float count) particle4 = #217; /* Part of FTE_HEXEN2*/ +float(float number, float quantity) bitshift = #218; /* Part of EXT_BITSHIFT*/ +void(vector pos) te_lightningblood = #219; /* Part of FTE_TE_STANDARDEFFECTBUILTINS*/ +float(string s1, string sub, optional float startidx) strstrofs = #221; /* Part of FTE_STRINGS + Returns the 0-based offset of sub within the s1 string, or -1 if sub is not in s1. + If startidx is set, this builtin will ignore matches before that 0-based offset. */ + +float(string str, float index) str2chr = #222; /* Part of FTE_STRINGS + Retrieves the character value at offset 'index'. */ + +string(float chr, ...) chr2str = #223; /* Part of FTE_STRINGS + The input floats are considered character values, and are concatenated. */ + +string(float ccase, float redalpha, float redchars, string str, ...) strconv = #224; /* Part of FTE_STRINGS + Converts quake chars in the input string amongst different representations. + ccase specifies the new case for letters. + 0: not changed. + 1: forced to lower case. + 2: forced to upper case. + redalpha and redchars switch between colour ranges. + 0: no change. + 1: Forced white. + 2: Forced red. + 3: Forced gold(low) (numbers only). + 4: Forced gold (high) (numbers only). + 5+6: Forced to white and red alternately. + You should not use this builtin in combination with UTF-8. */ + +string(float pad, string str1, ...) strpad = #225; /* Part of FTE_STRINGS + Pads the string with spaces, to ensure its a specific length (so long as a fixed-width font is used, anyway). If pad is negative, the spaces are added on the left. If positive the padding is on the right. */ + +string(infostring old, string key, string value) infoadd = #226; /* Part of FTE_STRINGS + Returns a new tempstring infostring with the named value changed (or added if it was previously unspecified). Key and value may not contain the \ character. */ + +string(infostring info, string key) infoget = #227; /* Part of FTE_STRINGS + Reads a named value from an infostring. The returned value is a tempstring */ + +#define strcmp strncmp +float(string s1, string s2, optional float len, optional float s1ofs, optional float s2ofs) strncmp = #228; /* Part of FTE_STRINGS + Compares up to 'len' chars in the two strings. s1ofs allows you to treat s2 as a substring to compare against, or should be 0. + Returns 0 if the two strings are equal, a negative value if s1 appears numerically lower, and positive if s1 appears numerically higher. */ + +float(string s1, string s2) strcasecmp = #229; /* Part of FTE_STRINGS + Compares the two strings without case sensitivity. + Returns 0 if they are equal. The sign of the return value may be significant, but should not be depended upon. */ + +float(string s1, string s2, float len, optional float s1ofs, optional float s2ofs) strncasecmp = #230; /* Part of FTE_STRINGS + Compares up to 'len' chars in the two strings without case sensitivity. s1ofs allows you to treat s2 as a substring to compare against, or should be 0. + Returns 0 if they are equal. The sign of the return value may be significant, but should not be depended upon. */ + +void() calltimeofday = #231; /* Part of FTE_CALLTIMEOFDAY + Asks the engine to instantly call the qc's 'timeofday' function, before returning. For compatibility with mvdsv. + timeofday should have the prototype: void(float secs, float mins, float hour, float day, float mon, float year, string strvalue) + The strftime builtin is more versatile and less weird. */ + +void(vector angle) rotatevectorsbyangle = #235; +void(vector fwd, vector right, vector up) rotatevectorsbyvectors = #236; +float(float mdlindex, string skinname) skinforname = #237; +float(string shadername, optional string defaultshader, ...) shaderforname = #238; /* Part of FTE_FORCESHADER + Caches the named shader and returns a handle to it. + If the shader could not be loaded from disk (missing file or ruleset_allow_shaders 0), it will be created from the 'defaultshader' string if specified, or a 'skin shader' default will be used. + defaultshader if not empty should include the outer {} that you would ordinarily find in a shader. */ + +void(vector org, optional float count) te_bloodqw = #239; /* Part of FTE_TE_STANDARDEFFECTBUILTINS*/ +float(vector viewpos, entity entity) checkpvs = #240; /* Part of FTE_QC_CHECKPVS*/ +vector(entity ent, float tagnum) rotatevectorsbytag = #244; +int(string) stoi = #259; /* Part of FTE_QC_INTCONV + Converts the given string into an integer. Base 8, 10, or 16 is determined based upon the format of the string. */ + +string(int) itos = #260; /* Part of FTE_QC_INTCONV + Converts the passed integer into a base10 string. */ + +int(string) stoh = #261; /* Part of FTE_QC_INTCONV + Reads a base-16 string (with or without 0x prefix) as an integer. Bugs out if given a base 8 or base 10 string. :P */ + +string(int) htos = #262; /* Part of FTE_QC_INTCONV + Formats an integer as a base16 string, with leading 0s and no prefix. Always returns 8 characters. */ + +float(float modlindex, optional float useabstransforms) skel_create = #263; /* Part of FTE_CSQC_SKELETONOBJECTS + Allocates a new uninitiaised skeletal object, with enough bone info to animate the given model. + eg: self.skeletonobject = skel_create(self.modelindex); */ + +float(float skel, entity ent, float modelindex, float retainfrac, float firstbone, float lastbone, optional float addfrac) skel_build = #264; /* Part of FTE_CSQC_SKELETONOBJECTS + Animation data (according to the entity's frame info) is pulled from the specified model and blended into the specified skeletal object. + If retainfrac is set to 0 on the first call and 1 on the others, you can blend multiple animations together according to the addfrac value. The final weight should be 1. Other values will result in scaling and/or other weirdness. You can use firstbone and lastbone to update only part of the skeletal object, to allow legs to animate separately from torso, use 0 for both arguments to specify all, as bones are 1-based. */ + +float(float skel) skel_get_numbones = #265; /* Part of FTE_CSQC_SKELETONOBJECTS + Retrives the number of bones in the model. The valid range is 1<=bone<=numbones. */ + +string(float skel, float bonenum) skel_get_bonename = #266; /* Part of FTE_CSQC_SKELETONOBJECTS + Retrieves the name of the specified bone. Mostly only for debugging. */ + +float(float skel, float bonenum) skel_get_boneparent = #267; /* Part of FTE_CSQC_SKELETONOBJECTS + Retrieves which bone this bone's position is relative to. Bone 0 refers to the entity's position rather than an actual bone */ + +float(float skel, string tagname) skel_find_bone = #268; /* Part of FTE_CSQC_SKELETONOBJECTS + Finds a bone by its name, from the model that was used to create the skeletal object. */ + +vector(float skel, float bonenum) skel_get_bonerel = #269; /* Part of FTE_CSQC_SKELETONOBJECTS + Gets the bone position and orientation relative to the bone's parent. Return value is the offset, and v_forward, v_right, v_up contain the orientation. */ + +vector(float skel, float bonenum) skel_get_boneabs = #270; /* Part of FTE_CSQC_SKELETONOBJECTS + Gets the bone position and orientation relative to the entity. Return value is the offset, and v_forward, v_right, v_up contain the orientation. + Use gettaginfo for world coord+orientation. */ + +void(float skel, float bonenum, vector org, optional vector fwd, optional vector right, optional vector up) skel_set_bone = #271; /* Part of FTE_CSQC_SKELETONOBJECTS + Sets a bone position relative to its parent. If the orientation arguments are not specified, v_forward+v_right+v_up are used instead. */ + +void(float skel, float bonenum, vector org, optional vector fwd, optional vector right, optional vector up) skel_mul_bone = #272; /* Part of FTE_CSQC_SKELETONOBJECTS + Transforms a single bone by a matrix. You can use makevectors to generate a rotation matrix from an angle. */ + +void(float skel, float startbone, float endbone, vector org, optional vector fwd, optional vector right, optional vector up) skel_mul_bones = #273; /* Part of FTE_CSQC_SKELETONOBJECTS + Transforms an entire consecutive range of bones by a matrix. You can use makevectors to generate a rotation matrix from an angle, but you'll probably want to divide the angle by the number of bones. */ + +void(float skeldst, float skelsrc, float startbone, float entbone) skel_copybones = #274; /* Part of FTE_CSQC_SKELETONOBJECTS + Copy bone data from one skeleton directly into another. */ + +void(float skel) skel_delete = #275; /* Part of FTE_CSQC_SKELETONOBJECTS + Deletes a skeletal object. The actual delete is delayed, allowing the skeletal object to be deleted in an entity's predraw function yet still be valid by the time the addentity+renderscene builtins need it. Also uninstanciates any ragdoll currently in effect on the skeletal object. */ + +float(float modidx, string framename) frameforname = #276; /* Part of FTE_CSQC_SKELETONOBJECTS + Looks up a framegroup from a model by name, avoiding the need for hardcoding. Returns -1 on error. */ + +float(float modidx, float framenum) frameduration = #277; /* Part of FTE_CSQC_SKELETONOBJECTS + Retrieves the duration (in seconds) of the specified framegroup. */ + +void(float action, optional vector pos, optional float radius, optional float quant, ...) terrain_edit = #278; /* + Realtime terrain editing. Actions are the TEREDIT_ constants. */ + +void() touchtriggers = #279; /* + Triggers a touch events between self and every entity that it is in contact with. This should typically just be the triggers touch functions. */ + +float(entity skelent, string dollcmd, float animskel) skel_ragupdate = #281; /* + Updates the skeletal object attached to the entity according to its origin and other properties. + if animskel is non-zero, the ragdoll will animate towards the bone state in the animskel skeletal object, otherwise they will pick up the model's base pose which may not give nice results. + If dollcmd is not set, the ragdoll will update (this should be done each frame). + If the doll is updated without having a valid doll, the model's default .doll will be instanciated. + commands: + doll foo.doll : sets up the entity to use the named doll file + dollstring TEXT : uses the doll file directly embedded within qc, with that extra prefix. + cleardoll : uninstanciates the doll without destroying the skeletal object. + animate 0.5 : specifies the strength of the ragdoll as a whole + animatebody somebody 0.5 : specifies the strength of the ragdoll on a specific body (0 will disable ragdoll animations on that body). + enablejoint somejoint 1 : enables (or disables) a joint. Disabling joints will allow the doll to shatter. */ + +float*(float skel) skel_mmap = #282; /* + Map the bones in VM memory. They can then be accessed via pointers. Each bone is 12 floats, the four vectors interleaved (sadly). */ + +void(entity ent, float bonenum, vector org, optional vector angorfwd, optional vector right, optional vector up) skel_set_bone_world = #283; /* + Sets the world position of a bone within the given entity's attached skeletal object. The world position is dependant upon the owning entity's position. If no orientation argument is specified, v_forward+v_right+v_up are used for the orientation instead. If 1 is specified, it is understood as angles. If 3 are specified, they are the forawrd/right/up vectors to use. */ + +string(float modidx, float framenum) frametoname = #284; +string(float modidx, float skin) skintoname = #285; +float(float resourcetype, float tryload, string resourcename) resourcestatus = #286; /* + resourcetype must be one of the RESTYPE_ constants. Returns one of the RESSTATE_ constants. Tryload 0 is a query only. Tryload 1 will attempt to reload the content if it was flushed. */ + +hashtable(float tabsize, optional float defaulttype) hash_createtab = #287; /* Part of FTE_QC_HASHTABLES + Creates a hash table object with at least 'tabsize' slots. hash table with index 0 is a game-persistant table and will NEVER be returned by this builtin (except as an error return). */ + +void(hashtable table) hash_destroytab = #288; /* Part of FTE_QC_HASHTABLES + Destroys a hash table object. */ + +void(hashtable table, string name, __variant value, optional float typeandflags) hash_add = #289; /* Part of FTE_QC_HASHTABLES + Adds the given key with the given value to the table. + If flags&HASH_REPLACE, the old value will be removed, if not set then multiple values may be added for a single key, they won't overwrite. + The type argument describes how the value should be stored and saved to files. While you can claim that all variables are just vectors, being more precise can result in less issues with tempstrings or saved games. */ + +__variant(hashtable table, string name, optional __variant deflt, optional float requiretype, optional float index) hash_get = #290; /* Part of FTE_QC_HASHTABLES + looks up the specified key name in the hash table. returns deflt if key was not found. If stringsonly=1, the return value will be in the form of a tempstring, otherwise it'll be the original value argument exactly as it was. If requiretype is specified, then values not of the specified type will be ignored. Hurrah for multiple types with the same name. */ + +__variant(hashtable table, string name) hash_delete = #291; /* Part of FTE_QC_HASHTABLES + removes the named key. returns the value of the object that was destroyed, or 0 on error. */ + +string(hashtable table, float idx) hash_getkey = #292; /* Part of FTE_QC_HASHTABLES + gets some random key name. add+delete can change return values of this, so don't blindly increment the key index if you're removing all. */ + +float(string name) checkcommand = #294; /* Part of FTE_QC_CHECKCOMMAND + Checks to see if the supplied name is a valid command, cvar, or alias. Returns 0 if it does not exist. */ + +string(string s) argescape = #295; /* + Marks up a string so that it can be reliably tokenized as a single argument later. */ + +void() clearscene = #300; /* + Forgets all rentities, polygons, and temporary dlights. Resets all view properties to their default values. */ + +void(float mask) addentities = #301; /* + Walks through all entities effectively doing this: + if (ent.drawmask&mask){ ent.predaw(); if (wasremoved(ent)||(ent.renderflags&RF_NOAUTOADD))continue; addentity(ent); } + If mask&MASK_DELTA, non-csqc entities, particles, and related effects will also be added to the rentity list. + If mask&MASK_STDVIEWMODEL then the default view model will also be added. */ + +void(entity ent) addentity = #302; /* + Copies the entity fields into a new rentity for later rendering via addscene. */ + +#define setviewprop setproperty +float(float property, ...) setproperty = #303; /* + Allows you to override default view properties like viewport, fov, and whether the engine hud will be drawn. Different VF_ values have slightly different arguments, some are vectors, some floats. */ + +void() renderscene = #304; /* + Draws all entities, polygons, and particles on the rentity list (which were added via addentities or addentity), using the various view properties set via setproperty. There is no ordering dependancy. + The scene must generally be cleared again before more entities are added, as entities will persist even over to the next frame. + You may call this builtin multiple times per frame, but should only be called from CSQC_UpdateView. */ + +float(vector org, float radius, vector lightcolours, optional float style, optional string cubemapname, optional float pflags) dynamiclight_add = #305; /* + Adds a temporary dlight, ready to be drawn via addscene. Cubemap orientation will be read from v_forward/v_right/v_up. */ + +void(string texturename, optional float flags) R_BeginPolygon = #306; /* + Specifies the shader to use for the following polygons, along with optional flags. + If flags&4, the polygon will be drawn as soon as the EndPolygon call is made, rather than waiting for renderscene. This allows complex 2d effects. */ + +void(vector org, vector texcoords, vector rgb, float alpha) R_PolygonVertex = #307; /* + Specifies a polygon vertex with its various properties. */ + +void() R_EndPolygon = #308; /* + Ends the current polygon. At least 3 verticies must have been specified. You do not need to call beginpolygon if you wish to draw another polygon with the same shader. */ + +#define getviewprop getproperty +__variant(float property) getproperty = #309; /* + Retrieve a currently-set (typically view) property, allowing you to read the current viewport or other things. Due to cheat protection, certain values may be unretrievable. */ + +vector (vector v) unproject = #310; /* + Transform a 2d screen-space point (with depth) into a 3d world-space point, according the various origin+angle+fov etc settings set via setproperty. */ + +vector (vector v) project = #311; /* + Transform a 3d world-space point into a 2d screen-space point, according the various origin+angle+fov etc settings set via setproperty. */ + +void(float width, vector pos1, vector pos2, vector rgb, float alpha, optional float drawflag) drawline = #315; /* + Draws a 2d line between the two 2d points. */ + +float(string name) iscachedpic = #316; /* + Checks to see if the image is currently loaded. Engines might lie, or cache between maps. */ + +string(string name, optional float trywad) precache_pic = #317; /* + Forces the engine to load the named image. If trywad is specified, the specified name must any lack path and extension. */ + +#define draw_getimagesize drawgetimagesize +vector(string picname) drawgetimagesize = #318; /* + Returns the dimensions of the named image. Images specified with .lmp should give the original .lmp's dimensions even if texture replacements use a different resolution. */ + +void(string name) freepic = #319; /* + Tells the engine that the image is no longer needed. The image will appear to be new the next time its needed. */ + +float(vector position, float character, vector size, vector rgb, float alpha, optional float drawflag) drawcharacter = #320; /* + Draw the given quake character at the given position. + If flag&4, the function will consider the char to be a unicode char instead (or display as a ? if outside the 32-127 range). + size should normally be something like '8 8 0'. + rgb should normally be '1 1 1' + alpha normally 1. + Software engines may assume the named defaults. + Note that ALL text may be rescaled on the X axis due to variable width fonts. The X axis may even be ignored completely. */ + +float(vector position, string text, vector size, vector rgb, float alpha, optional float drawflag) drawrawstring = #321; /* + Draws the specified string without using any markup at all, even in engines that support it. + If UTF-8 is globally enabled in the engine, then that encoding is used (without additional markup), otherwise it is raw quake chars. + Software engines may assume a size of '8 8 0', rgb='1 1 1', alpha=1, flag&3=0, but it is not an error to draw out of the screen. */ + +float(vector position, string pic, vector size, vector rgb, float alpha, optional float drawflag) drawpic = #322; /* + Draws an shader within the given 2d screen box. Software engines may omit support for rgb+alpha, but must support rescaling, and must clip to the screen without crashing. */ + +float(vector position, vector size, vector rgb, float alpha, optional float drawflag) drawfill = #323; /* + Draws a solid block over the given 2d box, with given colour, alpha, and blend mode (specified via flags). + flags&3=0 simple blend. + flags&3=1 additive blend */ + +void(float x, float y, float width, float height) drawsetcliparea = #324; /* + Specifies a 2d clipping region (aka: scissor test). 2d draw calls will all be clipped to this 2d box, the area outside will not be modified by any 2d draw call (even 2d polygons). */ + +void(void) drawresetcliparea = #325; /* + Reverts the scissor/clip area to the whole screen. */ + +float(vector position, string text, vector size, vector rgb, float alpha, float drawflag) drawstring = #326; /* + Draws a string, interpreting markup and recolouring as appropriate. */ + +float(string text, float usecolours, optional vector fontsize) stringwidth = #327; /* + Calculates the width of the screen in virtual pixels. If usecolours is 1, markup that does not affect the string width will be ignored. Will always be decoded as UTF-8 if UTF-8 is globally enabled. + If the char size is not specified, '8 8 0' will be assumed. */ + +void(vector pos, vector sz, string pic, vector srcpos, vector srcsz, vector rgb, float alpha, optional float drawflag) drawsubpic = #328; /* + Draws a rescaled subsection of an image to the screen. */ + +float(float stnum) getstati = #330; /* + Retrieves the numerical value of the given EV_INTEGER or EV_ENTITY stat (converted to a float). */ + +#define getstatbits getstatf +float(float stnum, optional float firstbit, optional float bitcount) getstatf = #331; /* + Retrieves the numerical value of the given EV_FLOAT stat. If firstbit and bitcount are specified, retrieves the upper bits of the STAT_ITEMS stat. */ + +string(float firststnum) getstats = #332; /* + Retrieves the value of the given EV_STRING stat, as a tempstring. + Older engines may use 4 consecutive integer stats, with a limit of 15 chars (yes, really. 15.), but FTE QuakeWorld uses a separate namespace for string stats and has a much higher length limit. */ + +void(entity e, float mdlindex) setmodelindex = #333; /* + Sets a model by precache index instead of by name. Otherwise identical to setmodel. */ + +string(float mdlindex) modelnameforindex = #334; /* + Retrieves the name of the model based upon a precache index. This can be used to reduce csqc network traffic by enabling model matching. */ + +float(string effectname) particleeffectnum = #335; /* + Precaches the named particle effect. If your effect name is of the form 'foo.bar' then particles/foo.cfg will be loaded by the client if foo.bar was not already defined. + Different engines will have different particle systems, this specifies the QC API only. */ + +void(float effectnum, entity ent, vector start, vector end) trailparticles = #336; /* + Draws the given effect between the two named points. If ent is not world, distances will be cached in the entity in order to avoid framerate dependancies. The entity is not otherwise used. */ + +void(float effectnum, vector origin, optional vector dir, optional float count) pointparticles = #337; /* + Spawn a load of particles from the given effect at the given point traveling or aiming along the direction specified. The number of particles are scaled by the count argument. */ + +void(string s, ...) cprint = #338; /* + Print into the center of the screen just as ssqc's centerprint would appear. */ + +void(string s, ...) print = #339; /* + Unconditionally print on the local system's console, even in ssqc (doesn't care about the value of the developer cvar). */ + +string(float keynum) keynumtostring = #340; /* + Returns a hunam-readable name for the given keycode, as a tempstring. */ + +float(string keyname) stringtokeynum = #341; /* + Looks up the key name in the same way that the bind command would, returning the keycode for that key. */ + +string(float keynum) getkeybind = #342; /* + Finds the current binding for the given key (ignores modifiers like shift/alt/ctrl). */ + +void(float usecursor, optional string cursorimage, optional vector hotspot, optional float scale) setcursormode = #343; /* + Pass TRUE if you want the engine to release the mouse cursor (absolute input events + touchscreen mode). Pass FALSE if you want the engine to grab the cursor (relative input events + standard looking). If the image name is specified, the engine will use that image for a cursor (use an empty string to clear it again), in a way that will not conflict with the console. Images specified this way will be hardware accelerated, if supported by the platform/port. */ + +vector() getmousepos = #344; /* + Nasty convoluted DP extension. Typically returns deltas instead of positions. Use CSQC_InputEvent for such things in csqc mods. */ + +float(float inputsequencenum) getinputstate = #345; /* + Looks up an input frame from the log, setting the input_* globals accordingly. + The sequence number range used for prediction should normally be servercommandframe < sequence <= clientcommandframe. + The sequence equal to clientcommandframe will change between input frames. */ + +void(float sens) setsensitivityscaler = #346; /* + Temporarily scales the player's mouse sensitivity based upon something like zoom, avoiding potential cvar saving and thus corruption. */ + +void(entity ent) runstandardplayerphysics = #347; /* + Perform the engine's standard player movement prediction upon the given entity using the input_* globals to describe movement. */ + +string(float playernum, string keyname) getplayerkeyvalue = #348; /* + Look up a player's userinfo, to discover things like their name, topcolor, bottomcolor, skin, team, *ver. + Also includes scoreboard info like frags, ping, pl, userid, entertime, as well as voipspeaking and voiploudness. */ + +float() isdemo = #349; /* + Returns if the client is currently playing a demo or not */ + +float() isserver = #350; /* + Returns if the client is acting as the server (aka: listen server) */ + +void(vector origin, vector forward, vector right, vector up, optional float inwater) SetListener = #351; /* + Sets the position of the view, as far as the audio subsystem is concerned. This should be called once per CSQC_UpdateView as it will otherwise revert to default. */ + +void(string cmdname) registercommand = #352; /* + Register the given console command, for easy console use. + Console commands that are later used will invoke CSQC_ConsoleCommand. */ + +float(entity ent) wasfreed = #353; /* + Quickly check to see if the entity is currently free. This function is only valid during the two-second non-reuse window, after that it may give bad results. Try one second to make it more robust. */ + +string(string key) serverkey = #354; /* + Look up a key in the server's public serverinfo string */ + +string(optional string resetstring) getentitytoken = #355; /* + Grab the next token in the map's entity lump. + If resetstring is not specified, the next token will be returned with no other sideeffects. + If empty, will reset from the map before returning the first token, probably {. + If not empty, will tokenize from that string instead. + Always returns tempstrings. */ + +float(string s) findfont = #356; /* + Looks up a named font slot. Matches the actual font name as a last resort. */ + +float(string fontname, string fontmaps, string sizes, float slot, optional float fix_scale, optional float fix_voffset) loadfont = #357; /* + too convoluted for me to even try to explain correct usage. Try drawfont = loadfont("foo", "cour", "16", 0, 0, 0); to switch to the courier font, if you have the freetype2 library in windows.. */ + +void(string evname, string evargs, ...) sendevent = #359; /* + Invoke Cmd_evname_evargs in ssqc. evargs must be a string of initials refering to the types of the arguments to pass. v=vector, e=entity(.entnum field is sent), f=float, i=int. 6 arguments max - you can get more if you pack your floats into vectors. */ + +float() readbyte = #360; +float() readchar = #361; +float() readshort = #362; +float() readlong = #363; +float() readcoord = #364; +float() readangle = #365; +string() readstring = #366; +float() readfloat = #367; +float() readentitynum = #368; +float(string modelname, float(float isnew) updatecallback, float flags) deltalisten = #371; /* + Specifies a per-modelindex callback to listen for engine-networking entity updates. Such entities are automatically interpolated by the engine (unless flags specifies not to). + The various standard entity fields will be overwritten each frame before the updatecallback function is called. */ + +__variant(float lno, float fld) dynamiclight_get = #372; /* + Retrieves a property from the given dynamic/rt light. Return type depends upon the light field requested. */ + +void(float lno, float fld, __variant value) dynamiclight_set = #373; /* + Changes a property on the given dynamic/rt light. Value type depends upon the light field to be changed. */ + +string(float efnum, float body) particleeffectquery = #374; /* + Retrieves either the name or the body of the effect with the given number. The effect body is regenerated from internal state, and can be changed before being reapplied via the localcmd builtin. */ + +void(string shadername, vector origin, vector up, vector side, vector rgb, float alpha) adddecal = #375; /* + Adds a temporary clipped decal shader to the scene, centered at the given point with given orientation. Will be drawn by the next renderscene call, and freed by the next clearscene call. */ + +void(entity e, string skinfilename, optional string skindata) setcustomskin = #376; /* + Sets an entity's skin overrides. These are custom per-entity surface->shader lookups. The skinfilename/data should be in .skin format: + surfacename,shadername - makes the named surface use the named shader + replace "surfacename" "shadername" - same. + compose "surfacename" "shader" "imagename@x,y:w,h?r,g,b,a" - compose a skin texture from multiple images. The texture is determined to be sufficient to hold the first named image, additional images can be named as extra tokens on the same line. Use a + at the end of the line to continue reading image tokens from the next line also, the named shader must use 'map $diffuse' to read the composed texture (compatible with the defaultskin shader). */ + +__variant*(int size) memalloc = #384; /* Part of FTE_MEMALLOC + Allocate an arbitary block of memory */ + +void(__variant *ptr) memfree = #385; /* Part of FTE_MEMALLOC + Frees a block of memory that was allocated with memfree */ + +void(__variant *dst, __variant *src, int size) memcpy = #386; /* Part of FTE_MEMALLOC + Copys memory from one location to another */ + +void(__variant *dst, int val, int size) memfill8 = #387; /* Part of FTE_MEMALLOC + Sets an entire block of memory to a specified value. Pretty much always 0. */ + +__variant(__variant *dst, float ofs) memgetval = #388; /* + Looks up the 32bit value stored at a pointer-with-offset. */ + +void(__variant *dst, float ofs, __variant val) memsetval = #389; /* + Changes the 32bit value stored at the specified pointer-with-offset. */ + +__variant*(__variant *base, float ofs) memptradd = #390; /* + Perform some pointer maths. Woo. */ + +string(string conname, string field, optional string newvalue) con_getset = #391; /* Part of FTE_CSQC_ALTCONSOLES_WIP + Reads or sets a property from a console object. The old value is returned. Iterrate through consoles with the 'next' field. Valid properties: title, name, next, unseen, markup, forceutf8, close, clear, hidden, linecount */ + +void(string conname, string messagefmt, ...) con_printf = #392; /* Part of FTE_CSQC_ALTCONSOLES_WIP + Prints onto a named console. */ + +void(string conname, vector pos, vector size, float fontsize) con_draw = #393; /* Part of FTE_CSQC_ALTCONSOLES_WIP + Draws the named console. */ + +float(string conname, float inevtype, float parama, float paramb, float paramc) con_input = #394; /* Part of FTE_CSQC_ALTCONSOLES_WIP + Forwards input events to the named console. Mouse updates should be absolute only. */ + +void(entity from, entity to) copyentity = #400; /* Part of DP_QC_COPYENTITY*/ +entity(.string field, string match) findchain = #402; /* Part of DP_QC_FINDCHAIN*/ +entity(.float fld, float match) findchainfloat = #403; /* Part of DP_QC_FINDCHAINFLOAT*/ +void(vector org, string modelname, float startframe, float endframe, float framerate) effect = #404; /* Part of DP_SV_EFFECT + Spawns a self-animating sprite */ + +void(vector org, vector dir, float count) te_blood = #405; /* Part of DP_TE_BLOOD*/ +void(vector mincorner, vector maxcorner, float explosionspeed, float howmany) te_bloodshower = #406; /* Part of DP_TE_BLOODSHOWER*/ +void(vector org, vector color) te_explosionrgb = #407; /* Part of DP_TE_EXPLOSIONRGB*/ +void(vector mincorner, vector maxcorner, vector vel, float howmany, float color, float gravityflag, float randomveljitter) te_particlecube = #408; /* Part of DP_TE_PARTICLECUBE*/ +void(vector mincorner, vector maxcorner, vector vel, float howmany, float color) te_particlerain = #409; /* Part of _DP_TE_PARTICLERAIN*/ +void(vector mincorner, vector maxcorner, vector vel, float howmany, float color) te_particlesnow = #410; /* Part of _DP_TE_PARTICLESNOW*/ +void(vector org, vector vel, float howmany) te_spark = #411; /* Part of DP_TE_SPARK*/ +void(vector org) te_gunshotquad = #412; /* Part of _DP_TE_QUADEFFECTS1*/ +void(vector org) te_spikequad = #413; /* Part of _DP_TE_QUADEFFECTS1*/ +void(vector org) te_superspikequad = #414; /* Part of _DP_TE_QUADEFFECTS1*/ +void(vector org) te_explosionquad = #415; /* Part of _DP_TE_QUADEFFECTS1*/ +void(vector org) te_smallflash = #416; /* Part of DP_TE_SMALLFLASH*/ +void(vector org, float radius, float lifetime, vector color) te_customflash = #417; /* Part of DP_TE_CUSTOMFLASH*/ +void(vector org, optional float count) te_gunshot = #418; /* Part of DP_TE_STANDARDEFFECTBUILTINS, FTE_TE_STANDARDEFFECTBUILTINS*/ +void(vector org) te_spike = #419; /* Part of DP_TE_STANDARDEFFECTBUILTINS, FTE_TE_STANDARDEFFECTBUILTINS*/ +void(vector org) te_superspike = #420; /* Part of DP_TE_STANDARDEFFECTBUILTINS, FTE_TE_STANDARDEFFECTBUILTINS*/ +void(vector org) te_explosion = #421; /* Part of DP_TE_STANDARDEFFECTBUILTINS, FTE_TE_STANDARDEFFECTBUILTINS*/ +void(vector org) te_tarexplosion = #422; /* Part of DP_TE_STANDARDEFFECTBUILTINS, FTE_TE_STANDARDEFFECTBUILTINS*/ +void(vector org) te_wizspike = #423; /* Part of DP_TE_STANDARDEFFECTBUILTINS, FTE_TE_STANDARDEFFECTBUILTINS*/ +void(vector org) te_knightspike = #424; /* Part of DP_TE_STANDARDEFFECTBUILTINS, FTE_TE_STANDARDEFFECTBUILTINS*/ +void(vector org) te_lavasplash = #425; /* Part of DP_TE_STANDARDEFFECTBUILTINS, FTE_TE_STANDARDEFFECTBUILTINS*/ +void(vector org) te_teleport = #426; /* Part of DP_TE_STANDARDEFFECTBUILTINS, FTE_TE_STANDARDEFFECTBUILTINS*/ +void(vector org, float color, float colorlength) te_explosion2 = #427; /* Part of DP_TE_STANDARDEFFECTBUILTINS*/ +void(entity own, vector start, vector end) te_lightning1 = #428; /* Part of DP_TE_STANDARDEFFECTBUILTINS, FTE_TE_STANDARDEFFECTBUILTINS*/ +void(entity own, vector start, vector end) te_lightning2 = #429; /* Part of DP_TE_STANDARDEFFECTBUILTINS, FTE_TE_STANDARDEFFECTBUILTINS*/ +void(entity own, vector start, vector end) te_lightning3 = #430; /* Part of DP_TE_STANDARDEFFECTBUILTINS, FTE_TE_STANDARDEFFECTBUILTINS*/ +void(entity own, vector start, vector end) te_beam = #431; /* Part of DP_TE_STANDARDEFFECTBUILTINS*/ +void(vector dir) vectorvectors = #432; /* Part of DP_QC_VECTORVECTORS*/ +void(vector org) te_plasmaburn = #433; /* Part of _DP_TE_PLASMABURN*/ +float(entity e, float s) getsurfacenumpoints = #434; /* Part of DP_QC_GETSURFACE*/ +vector(entity e, float s, float n) getsurfacepoint = #435; /* Part of DP_QC_GETSURFACE*/ +vector(entity e, float s) getsurfacenormal = #436; /* Part of DP_QC_GETSURFACE*/ +string(entity e, float s) getsurfacetexture = #437; /* Part of DP_QC_GETSURFACE*/ +float(entity e, vector p) getsurfacenearpoint = #438; /* Part of DP_QC_GETSURFACE*/ +vector(entity e, float s, vector p) getsurfaceclippedpoint = #439; /* Part of DP_QC_GETSURFACE*/ +float(string s) tokenize = #441; /* Part of KRIMZON_SV_PARSECLIENTCOMMAND*/ +string(float n) argv = #442; /* Part of KRIMZON_SV_PARSECLIENTCOMMAND*/ +void(entity e, entity tagentity, string tagname) setattachment = #443; /* Part of DP_GFX_QUAKE3MODELTAGS*/ +searchhandle(string pattern, float caseinsensitive, float quiet) search_begin = #444; /* Part of DP_QC_FS_SEARCH + initiate a filesystem scan based upon filenames. Be sure to call search_end on the returned handle. */ + +void(searchhandle handle) search_end = #445; /* Part of DP_QC_FS_SEARCH*/ +float(searchhandle handle) search_getsize = #446; /* Part of DP_QC_FS_SEARCH + Retrieves the number of files that were found. */ + +string(searchhandle handle, float num) search_getfilename = #447; /* Part of DP_QC_FS_SEARCH + Retrieves name of one of the files that was found by the initial search. */ + +string(string cvarname) cvar_string = #448; /* Part of DP_QC_CVAR_STRING*/ +entity(entity start, .float fld, float match) findflags = #449; /* Part of DP_QC_FINDFLAGS*/ +entity(.float fld, float match) findchainflags = #450; /* Part of DP_QC_FINDCHAINFLAGS*/ +float(entity ent, string tagname) gettagindex = #451; /* Part of DP_MD3_TAGSINFO*/ +vector(entity ent, float tagindex) gettaginfo = #452; /* Part of DP_MD3_TAGSINFO + Obtains the current worldspace position+orientation of the bone or tag from the given entity. The return value is the world coord, v_forward, v_right, v_up are also set according to the bone/tag's orientation. */ + +entity(float entnum) edict_num = #459; /* Part of DP_QC_EDICT_NUM*/ +strbuf() buf_create = #460; /* Part of DP_QC_STRINGBUFFERS*/ +void(strbuf bufhandle) buf_del = #461; /* Part of DP_QC_STRINGBUFFERS*/ +float(strbuf bufhandle) buf_getsize = #462; /* Part of DP_QC_STRINGBUFFERS*/ +void(strbuf bufhandle_from, strbuf bufhandle_to) buf_copy = #463; /* Part of DP_QC_STRINGBUFFERS*/ +void(strbuf bufhandle, float sortprefixlen, float backward) buf_sort = #464; /* Part of DP_QC_STRINGBUFFERS*/ +string(strbuf bufhandle, string glue) buf_implode = #465; /* Part of DP_QC_STRINGBUFFERS*/ +string(strbuf bufhandle, float string_index) bufstr_get = #466; /* Part of DP_QC_STRINGBUFFERS*/ +void(strbuf bufhandle, float string_index, string str) bufstr_set = #467; /* Part of DP_QC_STRINGBUFFERS*/ +float(strbuf bufhandle, string str, float order) bufstr_add = #468; /* Part of DP_QC_STRINGBUFFERS*/ +void(strbuf bufhandle, float string_index) bufstr_free = #469; /* Part of DP_QC_STRINGBUFFERS*/ +float(float s) asin = #471; /* Part of DP_QC_ASINACOSATANATAN2TAN*/ +float(float c) acos = #472; /* Part of DP_QC_ASINACOSATANATAN2TAN*/ +float(float t) atan = #473; /* Part of DP_QC_ASINACOSATANATAN2TAN*/ +float(float c, float s) atan2 = #474; /* Part of DP_QC_ASINACOSATANATAN2TAN*/ +float(float a) tan = #475; /* Part of DP_QC_ASINACOSATANATAN2TAN*/ +float(string s) strlennocol = #476; /* Part of DP_QC_STRINGCOLORFUNCTIONS*/ +string(string s) strdecolorize = #477; /* Part of DP_QC_STRINGCOLORFUNCTIONS*/ +string(float uselocaltime, string format, ...) strftime = #478; /* Part of DP_QC_STRFTIME*/ +float(string s, string separator1, ...) tokenizebyseparator = #479; /* Part of DP_QC_TOKENIZEBYSEPARATOR*/ +string(string s) strtolower = #480; /* Part of DP_QC_STRING_CASE_FUNCTIONS*/ +string(string s) strtoupper = #481; /* Part of DP_QC_STRING_CASE_FUNCTIONS*/ +string(string s) cvar_defstring = #482; /* Part of DP_QC_CVAR_DEFSTRING*/ +void(vector origin, string sample, float volume, float attenuation) pointsound = #483; /* Part of DP_SV_POINTSOUND*/ +string(string search, string replace, string subject) strreplace = #484; /* Part of DP_QC_STRREPLACE*/ +string(string search, string replace, string subject) strireplace = #485; /* Part of DP_QC_STRREPLACE*/ +vector(entity e, float s, float n, float a) getsurfacepointattribute = #486; /* Part of DP_QC_GETSURFACEPOINTATTRIBUTE*/ +float(string name) gecko_create = #487; /* Part of DP_GECKO_SUPPORT*/ +void(string name) gecko_destroy = #488; /* Part of DP_GECKO_SUPPORT*/ +void(string name, string URI) gecko_navigate = #489; /* Part of DP_GECKO_SUPPORT*/ +float(string name, float key, float eventtype) gecko_keyevent = #490; /* Part of DP_GECKO_SUPPORT*/ +void(string name, float x, float y) gecko_mousemove = #491; /* Part of DP_GECKO_SUPPORT*/ +void(string name, float w, float h) gecko_resize = #492; /* Part of DP_GECKO_SUPPORT*/ +vector(string name) gecko_get_texture_extent = #493; /* Part of DP_GECKO_SUPPORT*/ +float(float caseinsensitive, string s, ...) crc16 = #494; /* Part of DP_QC_CRC16*/ +float(string name) cvar_type = #495; /* Part of DP_QC_CVAR_TYPE*/ +float() numentityfields = #496; /* Part of DP_QC_ENTITYDATA*/ +string(float fieldnum) entityfieldname = #497; /* Part of DP_QC_ENTITYDATA*/ +float(float fieldnum) entityfieldtype = #498; /* Part of DP_QC_ENTITYDATA*/ +string(float fieldnum, entity ent) getentityfieldstring = #499; /* Part of DP_QC_ENTITYDATA*/ +float(float fieldnum, entity ent, string s) putentityfieldstring = #500; /* Part of DP_QC_ENTITYDATA*/ +void(float effectindex, entity own, vector org_from, vector org_to, vector dir_from, vector dir_to, float countmultiplier, optional float flags) boxparticles = #502; +string(string filename, optional float makereferenced) whichpack = #503; /* Part of DP_QC_WHICHPACK + Returns the pak file name that contains the file specified. progs/player.mdl will generally return something like 'pak0.pak'. If makereferenced is true, clients will automatically be told that the returned package should be pre-downloaded and used, even if allow_download_refpackages is not set. */ + +__variant(float entnum, float fieldnum) getentity = #504; /* + Looks up fields from non-csqc-visible entities. The entity will need to be within the player's pvs. fieldnum should be one of the GE_ constants. */ + +string(string in) uri_escape = #510; /* Part of DP_QC_URI_ESCAPE*/ +string(string in) uri_unescape = #511; /* Part of DP_QC_URI_ESCAPE*/ +float(entity ent) num_for_edict = #512; +float(string uril, float id, optional string postmimetype, optional string postdata) uri_get = #513; /* Part of DP_QC_URI_GET + uri_get() gets content from an URL and calls a callback "uri_get_callback" with it set as string; an unique ID of the transfer is returned + returns 1 on success, and then calls the callback with the ID, 0 or the HTTP status code, and the received data in a string */ + +float(string str) tokenize_console = #514; +float(float idx) argv_start_index = #515; +float(float idx) argv_end_index = #516; +void(strbuf strbuf) buf_cvarlist = #517; +string(string cvarname) cvar_description = #518; +float(optional float timetype) gettime = #519; +string(float keynum) keynumtostring_omgwtf = #520; +string(string command, optional float bindmap) findkeysforcommand = #521; +void(string s) loadfromdata = #529; /* + Reads a set of entities from the given string. This string should have the same format as a .ent file or a saved game. Entities will be spawned as required. If you need to see the entities that were created, you should use parseentitydata instead. */ + +void(string s) loadfromfile = #530; /* + Reads a set of entities from the named file. This file should have the same format as a .ent file or a saved game. Entities will be spawned as required. If you need to see the entities that were created, you should use parseentitydata instead. */ + +float(entity e, float channel) getsoundtime = #533; +float(string sample) soundlength = #534; +float(string filename, strbuf bufhandle) buf_loadfile = #535; +float(filestream filehandle, strbuf bufhandle, optional float startpos, optional float numstrings) buf_writefile = #536; +void(entity e, float physics_enabled) physics_enable = #540; /* + Enable or disable the physics attached to a MOVETYPE_PHYSICS entity. Entities which have been disabled in this way will stop taking so much cpu time. */ + +void(entity e, vector force, vector relative_ofs) physics_addforce = #541; /* + Apply some impulse directional force upon a MOVETYPE_PHYSICS entity. */ + +void(entity e, vector torque) physics_addtorque = #542; /* + Apply some impulse rotational force upon a MOVETYPE_PHYSICS entity. */ + +void(float trg) setmousetarget = #603; +float() getmousetarget = #604; +void(.../*, string funcname*/) callfunction = #605; /* + Invokes the named function. The function name is always passed as the last parameter and must always be present. The others are passed to the named function as-is */ + +void(filestream fh, entity e) writetofile = #606; /* + Writes an entity's fields to the named frik_file file handle. */ + +float(string s) isfunction = #607; +vector(float vidmode, optional float forfullscreen) getresolution = #608; +string(float keynum) keynumtostring_menu = #609; +string(string command, optional float bindmap) findkeysforcommand_dp = #610; +float(float type) gethostcachevalue = #611; /* Part of FTE_CSQC_SERVERBROWSER*/ +string(float type, float hostnr) gethostcachestring = #612; /* Part of FTE_CSQC_SERVERBROWSER*/ +void(entity e, string s) parseentitydata = #613; /* + Reads a single entity's fields into an already-spawned entity. s should contain field pairs like in a saved game: {"foo1" "bar" "foo2" "5"} */ + +float(string key) stringtokeynum_menu = #614; +void() resethostcachemasks = #615; /* Part of FTE_CSQC_SERVERBROWSER*/ +void(float mask, float fld, string str, float op) sethostcachemaskstring = #616; /* Part of FTE_CSQC_SERVERBROWSER*/ +void(float mask, float fld, float num, float op) sethostcachemasknumber = #617; /* Part of FTE_CSQC_SERVERBROWSER*/ +void() resorthostcache = #618; /* Part of FTE_CSQC_SERVERBROWSER*/ +void(float fld, float descending) sethostcachesort = #619; /* Part of FTE_CSQC_SERVERBROWSER*/ +void() refreshhostcache = #620; /* Part of FTE_CSQC_SERVERBROWSER*/ +float(float fld, float hostnr) gethostcachenumber = #621; /* Part of FTE_CSQC_SERVERBROWSER*/ +float(string key) gethostcacheindexforkey = #622; /* Part of FTE_CSQC_SERVERBROWSER*/ +void(string key) addwantedhostcachekey = #623; /* Part of FTE_CSQC_SERVERBROWSER*/ +string() getextresponse = #624; /* Part of FTE_CSQC_SERVERBROWSER*/ +string(string dnsname, optional float defport) netaddress_resolve = #625; +string(string fmt, ...) sprintf = #627; +float(entity e, float s) getsurfacenumtriangles = #628; +vector(entity e, float s, float n) getsurfacetriangle = #629; +string(string digest, string data, ...) digest_hex = #639; +#if defined(CSQC) || defined(MENU) +#define K_TAB 9 +#define K_ENTER 13 +#define K_ESCAPE 27 +#define K_SPACE 32 +#define K_BACKSPACE 127 +#define K_UPARROW 128 +#define K_DOWNARROW 129 +#define K_LEFTARROW 130 +#define K_RIGHTARROW 131 +#define K_LALT 132 +#define K_RALT -245 +#define K_LCTRL 133 +#define K_RCTRL -246 +#define K_LSHIFT 134 +#define K_RSHIFT -247 +#define K_F1 135 +#define K_F2 136 +#define K_F3 137 +#define K_F4 138 +#define K_F5 139 +#define K_F6 140 +#define K_F7 141 +#define K_F8 142 +#define K_F9 143 +#define K_F10 144 +#define K_F11 145 +#define K_F12 146 +#define K_INS 147 +#define K_DEL 148 +#define K_PGDN 149 +#define K_PGUP 150 +#define K_HOME 151 +#define K_END 152 +#define K_KP_HOME 164 +#define K_KP_UPARROW 165 +#define K_KP_PGUP 166 +#define K_KP_LEFTARROW 161 +#define K_KP_5 162 +#define K_KP_RIGHTARROW 163 +#define K_KP_END 158 +#define K_KP_DOWNARROW 159 +#define K_KP_PGDN 160 +#define K_KP_ENTER 172 +#define K_KP_INS 157 +#define K_KP_DEL 167 +#define K_KP_SLASH 168 +#define K_KP_MINUS 170 +#define K_KP_PLUS 171 +#define K_KP_NUMLOCK 154 +#define K_KP_STAR 169 +#define K_KP_EQUALS 173 +#define K_MOUSE1 512 +#define K_MOUSE2 513 +#define K_MOUSE3 514 +#define K_MOUSE4 517 +#define K_MOUSE5 518 +#define K_MOUSE6 519 +#define K_MOUSE7 520 +#define K_MOUSE8 521 +#define K_MOUSE9 522 +#define K_MOUSE10 523 +#define K_LWIN 239 +#define K_RWIN 240 +#define K_APP -241 +#define K_SEARCH -242 +#define K_POWER 130 +#define K_VOLUP -243 +#define K_VOLDOWN -244 +#define K_JOY1 768 +#define K_JOY2 769 +#define K_JOY3 770 +#define K_JOY4 771 +#define K_AUX1 784 +#define K_AUX2 785 +#define K_AUX3 786 +#define K_AUX4 787 +#define K_AUX5 788 +#define K_AUX6 789 +#define K_AUX7 790 +#define K_AUX8 791 +#define K_AUX9 792 +#define K_AUX10 793 +#define K_AUX11 794 +#define K_AUX12 795 +#define K_AUX13 796 +#define K_AUX14 797 +#define K_AUX15 798 +#define K_AUX16 799 +#define K_AUX17 800 +#define K_AUX18 801 +#define K_AUX19 802 +#define K_AUX20 803 +#define K_AUX21 804 +#define K_AUX22 805 +#define K_AUX23 806 +#define K_AUX24 807 +#define K_AUX25 808 +#define K_AUX26 809 +#define K_AUX27 810 +#define K_AUX28 811 +#define K_AUX29 812 +#define K_AUX30 813 +#define K_AUX31 814 +#define K_AUX32 815 +#define K_PAUSE 153 +#define K_MWHEELUP 515 +#define K_MWHEELDOWN 516 +#define K_PRINTSCREEN 174 +#define K_CAPSLOCK 155 +#define K_SCROLLLOCK 156 +#define K_SEMICOLON 59 +#define K_TILDE 126 +#define K_BACKQUOTE 96 +#define K_BACKSLASH 92 +#endif +#pragma noref 0 +\ No newline at end of file diff --git a/sourcefiles/code/client/customdefs.qc b/sourcefiles/code/client/customdefs.qc @@ -0,0 +1,43 @@ +//Various globals that are used in this FTEQW example are defined here, they are not used by the engine itself + +//events from ssqc +#define EVENT_PLAYERDEATH 0 +#define EVENT_WEAPONCHANGE 1 +#define EVENT_PISTOLFIRE 2 +#define EVENT_MGFIRE 3 +#define EVENT_EMITPARTICLES 4 + +#pragma warning disable Q302 +vector cursor_pos; /* Current mouse cursor position, updated in csqc_inputevent */ +float g_width, g_height; /* Globals for screen width and height */ + +float walk; + +//Menu stuff +float in_menu; //what menu are we in +float time_in_menu; + +entity player; +entity vmodel; +entity mzlflash; +entity dummy; + +float weapon; + +float tracercounter; +.float rate; +.vector targetpos; + +vector vmodel_targetpos; +vector vmodel_currentpos; +vector vmodel_velocity; +vector vmodel_avelocity; +vector vmodel_muzzleoffset; + +const float MENU_NONE = 0; +const float MENU_MAIN = 1; +const float MENU_SINGLE = 2; +const float MENU_MULTI = 4; +const float MENU_SETTINGS = 8; +const float MENU_ABOUT = 16; +const float MENU_JOIN = 32; diff --git a/sourcefiles/code/client/main.qc b/sourcefiles/code/client/main.qc @@ -0,0 +1,402 @@ +//THIS FILE NEEDS AN OVERHAUL + +void() ToggleMenu = +{ + if(serverkey("constate") != "disconnected") + { + if(in_menu == MENU_NONE) + { + in_menu = MENU_MAIN; + time_in_menu = 0; + local float i; + for(i = 0; i < BUTTONS_COUNT; i++) + { + buttons[i].active = 1; + } + setcursormode(TRUE,"menu/cursor"); + } + else + { + in_menu = MENU_NONE; + setcursormode(FALSE); + } + } + else + { + in_menu = MENU_MAIN; + time_in_menu = 0; + setcursormode(TRUE,"menu/cursor"); + } +} + +noref void(float apiver, string enginename, float enginever) CSQC_Init = +{ + registercommand("togglemenu"); + registercommand("startwalk"); + registercommand("stopwalk"); + registercommand("promptjoin"); + print("CSQC Started\n"); + dummy = spawn(); + if(serverkey("constate") == "disconnected") + ToggleMenu(); + //bgpos = 0; +}; + +noref void() CSQC_WorldLoaded = +{ + precache_model("models/stalag1.iqm"); + precache_model("models/stalag2.iqm"); + + particleeffectnum("weapons.bulletimpact"); + + if(!vmodel) + vmodel = spawn(); + + vmodel.renderflags = RF_VIEWMODEL; + vmodel.origin = '24 0 -18'; + vmodel_targetpos = vmodel_currentpos = vmodel.origin; + vmodel_velocity = '0 0 0'; + vmodel_muzzleoffset = '48 -1 2'; + setmodel(vmodel,""); +}; + +void() Update_Vmodel = +{ + local vector offset; + local vector dir; + + offset_x = 0.6 * sin(time * 1.2); + offset_y = 0.4 * cos(time * 1.5); + offset_z = 0.7 * sin(1.1*time + 0.5); + + dir = vmodel_targetpos - vmodel_currentpos; + if(vlen(dir) < (0.15 * 128 * frametime)) + vmodel_currentpos = vmodel_targetpos; + else + vmodel_currentpos += (dir * 0.15 * 128) * frametime; + + if(vlen(vmodel.angles) < (0.1 * 128 * frametime)) + vmodel.angles = '0 0 0'; + else + vmodel.angles += (-vmodel.angles * 0.2 * 128) * frametime; + + vmodel_currentpos += (vmodel_velocity * 128) * frametime; + vmodel_velocity *= 1 - frametime * 30; + + vmodel.angles += (vmodel_avelocity * 128) * frametime; + vmodel_avelocity *= 1 - frametime * 30; + + vmodel.origin = vmodel_currentpos + offset; + + if (vmodel.frame1time >= 1) + { + vmodel.frame1time = 0; + vmodel.frame = 0; //real hacky, it'll work for now + } + vmodel.frame1time = vmodel.frame1time + .008; +} + +noref void(float isnew) CSQC_Ent_Update = +{ + if(isnew) + print(strcat(etos(self),"\n")); +} + +noref void(float width, float height, float menushown) CSQC_UpdateView = +{ + clearscene(); + g_width = width; + g_height = height; + + setviewprop(VF_DRAWENGINESBAR, 0); + setviewprop(VF_DRAWCROSSHAIR, 0); + //setviewprop(VF_ORIGIN, self.origin); + //setviewprop(VF_ANGLES, input_angles); + + addentities(MASK_ENGINE); + dynamiclight_add('-30 0 80', 200, '1 0.6 0.6'); + + if(vmodel) + { + Update_Vmodel(); + addentity(vmodel); +/* if(mzlflash.alpha > 0.09) + { + makevectors(view_angles); + local vector offset = vmodel.origin + vmodel_muzzleoffset; + local vector muzzlepos; + muzzlepos = getviewprop(VF_ORIGIN); + muzzlepos += v_forward * offset_x; + muzzlepos -= v_right * offset_y; + muzzlepos += v_up * (offset_z + 6); + } + */ + } + + renderscene(); + + if(in_menu) + { + Draw_Menu(); + } + else + { + local float health, ammo; + health = getstatf(STAT_HEALTH); + if(weapon == 1) + ammo = getstatf(51); + else if(weapon == 2) + ammo = getstatf(50); + else + ammo = -1; + drawstring([0.01*width, 0.94*height, 0], strcat("+",ftos(health)), [0.03*width, 0.03*width, 0], [1, 1, 1], 1, 1); + if(ammo != -1) + drawstring([0.75*width, 0.94*height, 0], strcat("AMMO:",ftos(ammo)), [0.03*width, 0.03*width, 0], [1, 1, 1], 1, 1); + } + if(serverkey("constate") != "active" && serverkey("disconnected")) + { + drawfill('0 0 0', [width, height, 0], '0.2 0.4 0.7', 1); + drawstring([width/2 - 60, height/2, 0], "Loading...", [16,16,0],[1,1,1],1,1); + } +}; + +noref float(string cmd) CSQC_ConsoleCommand = +{ + //self = theplayer; + //if (!self) + // return FALSE; + + tokenize(cmd); + switch(argv(0)) + { + case "togglemenu": + ToggleMenu(); + return TRUE; + break; + case "map": + return FALSE; + break; + case "startwalk": + walk = TRUE; + return FALSE; + case "stopwalk": + walk = FALSE; + return FALSE; + case "promptjoin": + menu_join(); + return TRUE; + default: + return FALSE; + } + return FALSE; +}; + +noref float(float evtype, float scanx, float chary, float devid) CSQC_InputEvent = +{ + switch(evtype) + { + case IE_KEYDOWN: + if(in_menu != MENU_NONE) + { + if(scanx == K_MOUSE1) + { + print(strcat(ftos(num_for_edict(world)), ", ", ftos(num_for_edict(self)), "\n")); + Menu_Click(); + return TRUE; + } + } + return FALSE; + case IE_KEYUP: + return FALSE; + case IE_MOUSEDELTA: + return FALSE; + case IE_MOUSEABS: + //if(devid != 0 && devid != 1) + // return FALSE; + cursor_pos_x = scanx; + cursor_pos_y = chary; + return FALSE; + } + return FALSE; +}; + +noref void() CSQC_Input_Frame = +{ + + if(walk) + { + input_movevalues *= 0.5; + } + //TODO: this was causing deprecation warnings + //but I think removing it will disable + //player movement prediction. Figure + //out a better place to put it! + //also: figure out what the rest of the code in + //this function is doing :V +// runstandardplayerphysics(self); +} + +//TODO: Put this somewhere else +float() alphafade = +{ + + self.alpha -= (frametime / 7); +// self.scale += (frametime * 9); + if(self.alpha <= 0.05) + remove(self); + + local vector cross1 = 10 * self.scale * normalize(crossproduct( getviewprop(VF_ORIGIN) - self.origin + self.targetpos * self.scale, self.targetpos * self.scale)); + local vector cross2 = 10 * self.scale * normalize(crossproduct( getviewprop(VF_ORIGIN) - self.origin, self.targetpos * self.scale)); + R_BeginPolygon("bloodsplat2"); + + R_PolygonVertex(self.origin + cross2, '0 1 0', '1 1 1', self.alpha); + R_PolygonVertex(self.origin - cross2, '0 0 0', '1 1 1', self.alpha); + R_PolygonVertex(self.origin + (self.targetpos*self.scale*18) - cross1, '1 0 0', '1 1 1', self.alpha); + + R_PolygonVertex(self.origin + (self.targetpos*self.scale*18) + cross1, '1 1 0', '1 1 1', self.alpha); + R_PolygonVertex(self.origin + cross2, '0 1 0', '1 1 1', self.alpha); + R_PolygonVertex(self.origin + (self.targetpos*self.scale*18) - cross1, '1 0 0', '1 1 1', self.alpha); + + R_EndPolygon(); + + return 0; +} + +//TODO: Clean this up, motherfucker! +noref void() CSQC_Parse_Event = +{ + local float first = readbyte(); + if + ( + first == EVENT_PISTOLFIRE + || first == EVENT_MGFIRE + ) //Event is a gunshot + { + local float entnum, traceent; + local vector pos, norm; + entnum = readentitynum(); + + pos_x = readcoord(); + pos_y = readcoord(); + pos_z = readcoord(); + norm_x = readcoord(); + norm_y = readcoord(); + norm_z = readcoord(); + + traceent = readentitynum(); + + //why do I pass which type of + //gunshot it is, AND check which + //weapon the player is holding? + //TODO: CCLEAN THIS UP + + if(entnum == player_localentnum) + { + if(weapon == 1) + { + if (vmodel.frame1time > 0) + { + vmodel.frame1time = 0; + vmodel.frame = frameforname(vmodel.modelindex, "fire"); +// local entity casing = spawn(); +// setmodel(casing, "models/shell.iqm"); +// setorigin(casing, vmodel.origin); +// casing.drawmask = 1; +// casing.alpha = 1; +// casing.scale = 1; +// casing.angles = '0 0 90'; + // casing.targetpos = norm * 1.5; +// casing.predraw = alphafade; +// casing.movetype = MOVETYPE_BOUNCE; + } + + } + else if(weapon == 2) + { + + } + } + //really need to put a ton of this stuff into + //a separate function, in a different file + if(traceent == 0) + { + local float sparksnum, bulletnum; + bulletnum = particleeffectnum("weapons.bulletimpact"); + sparksnum = particleeffectnum("weapons.pelletsparks"); + pointparticles(sparksnum, pos); + pointparticles(bulletnum, pos); + } + else + { + local vector entorg; + local float effect; + entorg = getentity(traceent, GE_ORIGIN); + norm = (norm * 0.25) + (normalize(pos - (entorg + '0 0 12')) * 0.75); + effect = particleeffectnum("weapons.bloodspray"); + pointparticles(effect, pos); + +// local entity splat = spawn(); +// setmodel(splat, "models/blood.iqm"); +// setorigin(splat, pos + '0 0 0'); +// splat.drawmask = 1; +// splat.alpha = 1; +// splat.scale = 0.05; +// splat.angles = [random()*360, random()*360, random()*360]; +// splat.targetpos = norm * 1.5; +// splat.predraw = alphafade; + } + } + else if + ( + first == EVENT_WEAPONCHANGE + ) //Event is a weapon switch + { + //weapon to switch to + //TODO: Do defines for these too + local float to; + to = readbyte(); + if(to == 1) + { + vmodel.origin = '32 -8 -16'; + vmodel.angles = '-60 0 0'; + vmodel_currentpos = vmodel.origin + '0 0 -24'; + vmodel_targetpos = vmodel.origin; + vmodel_muzzleoffset = '12 0 1'; + setmodel(vmodel,"models/shotty.iqm"); + vmodel.skin = 0; + weapon = to; + } + else if(to == 2) + { + vmodel.origin = '10 -8 -18'; + vmodel.angles = '-70 0 0'; + vmodel_currentpos = vmodel.origin + '0 0 -24'; + vmodel_targetpos = vmodel.origin; + vmodel_muzzleoffset = '40 0 4'; + setmodel(vmodel,""); + weapon = to; + } + } + else if + ( + first == EVENT_PLAYERDEATH + ) //player just died + { + setmodel(vmodel,""); + //yep, this is all that happens when + //you die atm + } + else if + ( + first == EVENT_EMITPARTICLES + ) //just does fire for now + { + pos_x = readcoord(); + pos_y = readcoord(); + pos_z = readcoord(); + + local float effect; + effect = particleeffectnum("fire.torchflame"); + pointparticles(effect, pos); + } +} diff --git a/sourcefiles/code/client/math.qc b/sourcefiles/code/client/math.qc @@ -0,0 +1,10 @@ + + +vector(vector a, vector b) crossproduct = +{ + local vector result; + result_x = (a_y * b_z) - (a_z * b_y); + result_y = (a_z * b_x) - (a_x * b_z); + result_z = (a_x * b_y) - (a_y * b_x); + return result; +} +\ No newline at end of file diff --git a/sourcefiles/code/client/menu.qc b/sourcefiles/code/client/menu.qc @@ -0,0 +1,232 @@ +// +// Menu stuff +// + + +void() menu_single = +{ + in_menu = MENU_SINGLE; + time_in_menu = 0; +}; + +void() menu_multi = +{ + in_menu = MENU_MULTI; + time_in_menu = 0; +}; + +void() menu_settings = +{ + in_menu = MENU_SETTINGS; + time_in_menu = 0; +}; + +void() menu_about = +{ + in_menu = MENU_ABOUT; + time_in_menu = 0; +}; + +void() menu_quit = +{ + localcmd("quit\n"); +}; + +void() menu_back = +{ + in_menu = MENU_MAIN; + time_in_menu = 0; +}; + +void() menu_loadtest = +{ + print("loading test\n"); + localcmd("map test_lms\n"); +}; + +void() menu_join = +{ + setcursormode(TRUE,"menu/cursor"); + in_menu = MENU_JOIN; +}; + +void() game_join = +{ + localcmd("cmd joingame\n"); + in_menu = MENU_NONE; + setcursormode(FALSE); +}; + +void() game_spec = +{ + localcmd("cmd specgame\n"); + in_menu = MENU_NONE; + setcursormode(FALSE); +}; + +//struct for all buttons, note pos and scale are going to be multiplied with width/height in draw step, so keep them between 0 and 1 +var struct +{ + vector pos; + vector scale; + string text; + float active; //used for mouseover hilight (positive values) and alpha (negative values) + void() action; //function that is called when the button is pressed + float group; //a bit field, button will be usable/visible when these bits are active +} buttons[] = +{ + {[0.025, 0.500, 0], [0.25, 0.05, 0], "Singleplayer", -1, menu_single, MENU_MAIN}, + {[0.025, 0.575, 0], [0.25, 0.05, 0], "Multiplayer", -1, menu_multi, MENU_MAIN}, + {[0.025, 0.650, 0], [0.25, 0.05, 0], "Settings", -1, menu_settings, MENU_MAIN}, + {[0.025, 0.725, 0], [0.25, 0.05, 0], "About", -1, menu_about, MENU_MAIN}, + {[0.025, 0.925, 0], [0.25, 0.05, 0], "Quit", -1, menu_quit, MENU_MAIN}, + {[0.025, 0.925, 0], [0.25, 0.05, 0], "Back", -1, menu_back, MENU_SINGLE + MENU_MULTI + MENU_SETTINGS + MENU_ABOUT}, + {[0.025, 0.500, 0], [0.25, 0.05, 0], "Load test", -1, menu_loadtest, MENU_SINGLE}, + {[0.475, 0.500, 0], [0.25, 0.05, 0], "Join", -1, game_join, MENU_JOIN}, + {[0.475, 0.575, 0], [0.25, 0.05, 0], "Spectate", -1, game_spec, MENU_JOIN} +}; + +//REMEMBER TO UPDATE THIS CONST IF YOU ADD BUTTONS +const float BUTTONS_COUNT = 9; + + +//this function handles drawing the buttons and checking if they should be active/hilighted +void(float index) Update_Button = +{ + if(in_menu != in_menu & buttons[index].group) + buttons[index].active = -1; + + if(buttons[index].active == -1) + { + if(in_menu == in_menu & buttons[index].group) + buttons[index].active = 1; + else + return; + } + + local vector pos = buttons[index].pos; + pos_x *= g_width; + pos_y *= g_height; + local vector scale = buttons[index].scale; + scale_x *= g_width; + scale_y *= g_height; + + local float alphafactor; + + if(buttons[index].active > 0) + alphafactor = 1; + else + alphafactor = buttons[index].active + 1; //-1 invis, 0 normal + + if(cursor_pos_x > pos_x && cursor_pos_x < pos_x + scale_x && cursor_pos_y > pos_y && cursor_pos_y < pos_y + scale_y ) + buttons[index].active = 1; + + drawfill(pos, scale, [0.2,0.2,0.2] + [0.15,0.15,0.15]*buttons[index].active, 0.3 * alphafactor); + drawline(1, pos, [pos_x + scale_x, pos_y, 0], [0.6, 0.6, 0.6], 0.5, 1); //top outline + drawline(1, pos, [pos_x, pos_y + scale_y, 0], [0.6, 0.6, 0.6], 0.5, 1); //left outline + drawline(1, [pos_x, pos_y + scale_y, 0], [pos_x + scale_x, pos_y + scale_y, 0], [0.6, 0.6, 0.6], 0.5, 1); //bottom outline + drawline(1, [pos_x + scale_x, pos_y, 0], [pos_x + scale_x, pos_y + scale_y, 0], [0.6, 0.6, 0.6], 0.5, 1); //right outline + drawstring(pos + [scale_x*0.05, scale_y*0.25, 0], buttons[index].text, [scale_y*0.5, scale_y*0.5, 1], [0.8,0.8,0.8], 1 * alphafactor, 1); + + if(buttons[index].active > 0) + { + buttons[index].active -= frametime * 5; + if(buttons[index].active < 0) + buttons[index].active = 0; + } +}; + + +void(float index) Button_Click = +{ + //don't click if not active + if(buttons[index].active == -1) + return; + + local vector pos = buttons[index].pos; + pos_x *= g_width; + pos_y *= g_height; + local vector scale = buttons[index].scale; + scale_x *= g_width; + scale_y *= g_height; + + if(cursor_pos_x > pos_x && cursor_pos_x < pos_x + scale_x && cursor_pos_y > pos_y && cursor_pos_y < pos_y + scale_y ) + { + buttons[index].action(); //do whatever this button is supposed to do + } +}; + + +void() Menu_Click = +{ + float i; + for(i = 0; i < BUTTONS_COUNT; i++) + { + Button_Click(i); + } +}; + + + +void() Draw_Menu = +{ + + //Background picture with a nice scrolling effect, scrolling happens in the shader in scripts/menu.shader + if(serverkey("constate") == "disconnected") + { + if(g_width <= g_height * 1.77778) + drawpic([0,0,0], "menu/bg", [g_height * 1.77778, g_height, 1], [1, 1, 1], 1); + else + drawpic([0,0,0], "menu/bg", [g_width, g_height, 1], [1, 1, 1], 1); + } + + + //Gradient on the background + drawpic([0,0,0], "menu/gradient_l2r", [0.75*g_width, g_height, 1], [1, 1, 1], 1); + + + //Title with a simple but nice animation + local string title = ""; + switch(in_menu) + { + case MENU_MAIN: + title = "Game: Video"; + break; + case MENU_SINGLE: + title = "Singleplayer"; + break; + case MENU_MULTI: + title = "Multiplayer"; + break; + case MENU_SETTINGS: + title = "Settings"; + break; + case MENU_ABOUT: + title = "About"; + break; + default: + title = "FTEQW Example"; + } + + local float chars_to_keep; + time_in_menu += frametime; + + if(time_in_menu < 0.5) + { + chars_to_keep = time_in_menu * 2; + chars_to_keep = rint(chars_to_keep * strlen(title)); + } + else + chars_to_keep = strlen(title); + + drawstring([0.025*g_width, 0.05*g_height, 0], substring(title, 0, chars_to_keep), [g_height * 0.05, g_height * 0.05, 1], [0.8, 0.8, 0.8], 1, 1); + + + //Update buttons + local float i; + + for(i = 0; i < BUTTONS_COUNT; i++) + { + Update_Button(i); + } +}; +\ No newline at end of file diff --git a/sourcefiles/code/client/player.qc b/sourcefiles/code/client/player.qc @@ -0,0 +1,14 @@ + + +void() Player_Interpolate = +{ + if(self.entnum == player_localentnum) + { + UpdateLocalMovement(self); + } +} + +void(float isnew) Player_Refresh = +{ + self.predraw = Player_Interpolate; +} +\ No newline at end of file diff --git a/sourcefiles/code/csprogs.src b/sourcefiles/code/csprogs.src @@ -0,0 +1,11 @@ +#output "../../toPackage/fangflecked/csprogs.dat" + +#message "CSQC Compiling." + +#includelist +client/csdefs.qc +client/math.qc +client/customdefs.qc +client/menu.qc +client/main.qc +#endlist diff --git a/sourcefiles/code/progs.src b/sourcefiles/code/progs.src @@ -0,0 +1,2 @@ +#pragma sourcefile "csprogs.src" +#pragma sourcefile "ssprogs.src" diff --git a/sourcefiles/code/server/ai.qc b/sourcefiles/code/server/ai.qc @@ -0,0 +1,232 @@ +//void() SUB_Remove = {remove(self);}; + +//Search for targets + +/* +============= +range + +returns the range categorization of an entity relative to self +0 melee range, will become hostile even if back is turned +1 visibility and infront, or visibility and show hostile +2 infront and show hostile +3 only triggered by damage +============= +*/ +float(entity targ) range = +{ +local vector spot1, spot2; +local float r; + spot1 = self.origin + self.view_ofs; + spot2 = targ.origin + targ.view_ofs; + + r = vlen (spot1 - spot2); + return r; +}; + +/* +============= +visible + +returns 1 if the entity is visible to self, even if not infront () +============= +*/ +float (entity targ) visible = +{ + local vector spot1, spot2; + + spot1 = self.origin + self.view_ofs; + spot2 = targ.origin + targ.view_ofs; + traceline (spot1, spot2, TRUE, self); // see through other monsters + + if (trace_inopen && trace_inwater) + return FALSE; // sight line crossed contents + + if (trace_fraction == 1) + return TRUE; + return FALSE; +}; + + +/* +============= +infront + +returns 1 if the entity is in front (in sight) of self +============= +*/ +float(entity targ) infront = +{ + local vector vec; + local float dot; + + makevectors (self.angles); + vec = normalize (targ.origin - self.origin); + dot = vec * v_forward; + + if ( dot > 0.3) + { + return TRUE; + } + return FALSE; +}; + + +//============================================================================ + +/* +=========== +FindTarget + +Self is currently not attacking anything, so try to find a target + +Returns TRUE if an enemy was sighted + +When a player fires a missile, the point of impact becomes a fakeplayer so +that monsters that see the impact will respond as if they had seen the +player. + +To avoid spending too much time, only a single client (or fakeclient) is +checked each frame. This means multi player games will have slightly +slower noticing monsters. +============ +*/ +float() FindTarget = +{ + local entity client; + local float r; + + client = checkclient (); + if (!client) + return FALSE; // current check entity isn't in PVS + + if (client == self.enemy) + return FALSE; + + r = range (client); + if (r == 3) + return FALSE; + + if (!visible (client)) + return FALSE; + + if (r == 1) + { + if (/* client.show_hostile < time && */ !infront (client)) + return FALSE; + } + else if (r == 2) + { + if ( /* client.show_hostile < time || */ !infront (client)) + return FALSE; + } + +// +// got one +// + self.enemy = client; + if (self.enemy.classname != "player") + { + self.enemy = self.enemy.enemy; + if (self.enemy.classname != "player") + { + self.enemy = world; + return FALSE; + } + } + self.goalentity = self.enemy; + self.think = self.th_run; + self.ideal_yaw = vectoyaw(self.enemy.origin - self.origin); + self.nextthink = time + 0.1; +// SUB_AttackFinished (1); // wait a while before first attack + + return TRUE; +}; + +//monster think functions +void () monster_think = +{ + self.origin_z = self.origin_z + 1; + droptofloor(); + self.nextthink = time + 0.1; + FindTarget(); +} + + +void() monster_init = +{ + //delay drop to floor + self.nextthink = time + 0.1; + self.think = monster_think; +} + +void() ai_face = +{ + self.ideal_yaw = vectoyaw(self.enemy.origin - self.origin); + ChangeYaw (); +}; + +/* +============= +ai_run + +The monster has an enemy it is trying to kill +============= +*/ +void(float dist) ai_run = +{ +// local vector delta; +// local float axis; + local float direct, ang_rint, ang_floor, ang_ceil; + local float enemy_vis, enemy_infront, enemy_range, enemy_yaw; + +// movedist = dist; +// see if the enemy is dead + if (self.enemy.health <= 0) + { + self.enemy = world; + // FIXME: look all around for other targets + if (self.oldenemy.health > 0) + { + self.enemy = self.oldenemy; +// HuntTarget (); + } + else + { +// if (self.movetarget) +// self.th_walk (); +// else +// self.th_stand (); +// return; + } + } + +// self.show_hostile = time + 1; // wake up other monsters + +// check knowledge of enemy + enemy_vis = visible(self.enemy); + if (enemy_vis) + self.search_time = time + 5; + +// look for other coop players + if (self.search_time < time) + { + if (FindTarget ()) + return; + } + + enemy_infront = infront(self.enemy); + enemy_range = range(self.enemy); + enemy_yaw = vectoyaw(self.enemy.origin - self.origin); + + self.ideal_yaw = enemy_yaw; + ChangeYaw (); + +// head straight in + movetogoal (dist); // done in C code... +}; + +void() ai_stand = +{ + FindTarget (); +} diff --git a/sourcefiles/code/server/buttons.qc b/sourcefiles/code/server/buttons.qc @@ -0,0 +1,20 @@ +void() button_touch = +{ + if (other.classname != "player") + return; + if (self.movestate != MST_REST) + return; + + self.movestate = MST_CLICK; + self.frame = 1; + SUB_UseTargets(); +} + +void() func_button = +{ + self.movetype = MOVETYPE_PUSH; + self.solid = SOLID_BSP; + setmodel (self, self.model); + + self.touch = button_touch; +} diff --git a/sourcefiles/code/server/combat.qc b/sourcefiles/code/server/combat.qc @@ -0,0 +1,47 @@ +void(entity target, entity attacker) Killed = +{ + + local entity oself; + + oself = self; + self = target; + + if (self.health < 0) + self.health = 0; + + if (self.movetype == MOVETYPE_PUSH || self.movetype == MOVETYPE_NONE) + { //doors and such +// self.th_die(); + return; + } + + self.enemy = attacker; + self.takedamage = DAMAGE_NO; + self.touch = SUB_Null; + + self.th_die(); + + self = oself; +} + +/* +Inflictor is what deals the damage. Attacker is who shot. Sometimes the same, not always. +Use only this function to reduce health. +*/ + +void(entity target, entity inflictor, entity attacker, float damage) T_Damage= +{ + if (!target.takedamage) + return; + + + target.health = target.health - damage; + + if (target.health <= 0) + { + Killed (target, attacker); + return; + } + + target.th_pain(attacker, damage); +} +\ No newline at end of file diff --git a/sourcefiles/code/server/doors.qc b/sourcefiles/code/server/doors.qc @@ -0,0 +1,17 @@ +//super simple door implementation +//they just move when a button targeting the door is pressed + +void() door_trigger = +{ + SUB_CalcMove(self.origin + '0 0 100'); +} + +void func_door() = +{ + self.use = door_trigger; + self.solid = SOLID_BSP; + self.movetype = MOVETYPE_PUSH; + setorigin(self, self.origin); + setmodel(self, self.model); + self.classname = "door"; +} diff --git a/sourcefiles/code/server/items.qc b/sourcefiles/code/server/items.qc @@ -0,0 +1,87 @@ +// +// Items.qc - all the definitions for item spawn functions as well as other functions related to them +// +void() fade_in = +{ + self.alpha += 0.1; + if(self.alpha >= 1) + { + self.alpha = 1; + return; + } + self.nextthink = time + 0.05; + self.think = fade_in; + +} + +//TODO:come up with particle +//effect for this +void() item_respawn = +{ + sound(self, 0, "sounds/items/respawn.wav", 0.6, 1.5); //0.4 for a bit lower volume + self.alpha += 0.1; + self.nextthink = time + 0.05; + self.think = fade_in; +// pointparticles(self.parts, self.origin, '0 0 1', 20); +} + +void() ammo_touch = +{ + if(other.classname == "player" && self) + { + if(self.classname == "item_ammo_mg") + { + other.ammo_mg += 50; + if(other.ammo_mg > MAXAMMO_MG) + other.ammo_mg = MAXAMMO_MG; + } +// sound(other, 0, "sounds/items/health.wav", 1, 1); + self.nextthink = time + 5; + self.think = item_respawn; + self.alpha = 0.05; +// pointparticles(particleeffectnum("items.pickup"), self.origin, '0 0 1', 20); + } +} + +void() weapon_touch = +{ + if(other.classname == "player" && self) + { + if(self.classname == "item_mg" && !(other.items & IT_MG)) + { + other.ammo_mg += 50; + other.items = other.items + IT_MG; + + if(other.ammo_mg > MAXAMMO_MG) + other.ammo_mg = MAXAMMO_MG; + + sound(other, 0, "sounds/items/health.wav", 1, 1); + self.nextthink = time + 10; + self.think = item_respawn; + self.alpha = 0.05; +// pointparticles(particleeffectnum("items.pickup"), self.origin, '0 0 1', 20); + } + } +} + +void() item_ammo_mg = +{ + self.solid = SOLID_TRIGGER; +// setmodel(self, "models/mg_ammo.iqm"); + setsize(self, '-16 -16 -16', '16 16 32'); + self.classname = "item_ammo_mg"; + self.modelflags = MF_ROTATE; + self.touch = ammo_touch; +// self.parts = particleeffectnum("items.respawn"); +} + +void() item_mg = +{ + self.solid = SOLID_TRIGGER; +// setmodel(self, "models/weapons/mg/mg.iqm"); + setsize(self, '-16 -16 -16', '16 16 32'); + self.classname = "item_mg"; + self.modelflags = MF_ROTATE; + self.touch = weapon_touch; +// self.parts = particleeffectnum("items.respawn"); +} diff --git a/sourcefiles/code/server/level.qc b/sourcefiles/code/server/level.qc @@ -0,0 +1,64 @@ +//handles mapchanges and other such things + +void InitTrigger() +{ + self.solid = SOLID_TRIGGER; + self.movetype = MOVETYPE_NONE; + + //TODO: We really need to do this? + setmodel(self, self.model); + self.modelindex = 0; + self.model = ""; +} + +void() trigger_changelevel = +{ + //Quake map compatibility? +} + +void() mapend_think = +{ + local entity play; + + self.nextthink = time + 5; + + //check if all players are in + play = find(world, classname, "player"); + while (play != world) + { + //if any player is not touching the trigger_mapend + if (play.mapend != 1 ) + { + return; + } + play = find(play, classname, "player"); + } + + //engine function + changelevel(self.map); +} + +void() mapend_touch = +{ + if (other.classname != "player") + return; + + other.mapend = 1; + + centerprint(other, self.message); +} + +//Fangflecked level end trigger ent +//all players must be touching it for the map to change +void() trigger_mapend = +{ + self.classname = "trigger_mapend"; + if (!self.map) + objerror("trigger_mapend must have a destination map specified!"); + + InitTrigger(); + self.touch = mapend_touch; + self.think = mapend_think; + self.nextthink = time + 5; +} + diff --git a/sourcefiles/code/server/main.qc b/sourcefiles/code/server/main.qc @@ -0,0 +1,61 @@ +// +// Main.qc - mostly functions that will be called from the engine and are expected to exist +// Assets are precached in the worldspawn function +// + +//called when starting server/loading the map +void() main = +{ + localcmd("echo Server starting...\n"); + +} + +//called for each frame that QC runs +void() StartFrame = +{ +} + +//called when map loaded +void() worldspawn = +{ + //players + precache_model("models/pmodel.iqm"); + + //static meshes + precache_model("models/stalag1.iqm"); + precache_model("models/stalag2.iqm"); + precache_model("models/bigcandle.iqm"); + precache_model("models/chandelier1.iqm"); + precache_model("models/sconce.iqm"); + + //monsters and projectiles + precache_model ("models/spitter.iqm"); + precache_model ("models/tcube.iqm"); + precache_model ("models/spitwad.iqm"); + + //guns and clientside stuff + precache_model ("models/shotty.iqm"); + precache_model ("models/shell.iqm"); + + precache_sound("sounds/hurtbad.wav"); + precache_sound("sounds/ouch.wav"); + precache_sound("sounds/ouch2.wav"); + precache_sound("sounds/death.wav"); + precache_sound("sounds/PHfootstep1.wav"); + precache_sound("sounds/PHfootstep2.wav"); + precache_sound("sounds/riddomedis.wav"); + precache_sound("sounds/danger_shunt.wav"); + precache_sound("sounds/shotgun.wav"); + precache_sound("sounds/hock.wav"); + + + clientstat(50, EV_FLOAT, ammo_mg); + clientstat(51, EV_FLOAT, ammo_pistol); +} + +void() SpectatorConnect = +{ + bprint(PRINT_HIGH, self.netname); + bprint(PRINT_HIGH, " has joined the spectators.\n"); +} + diff --git a/sourcefiles/code/server/meshes.qc b/sourcefiles/code/server/meshes.qc @@ -0,0 +1,86 @@ +//static meshes====================== +//remember to call makestatic() + +void() mesh_stalagmite = +{ + self.solid = SOLID_BBOX; + setmodel(self, "models/stalag1.iqm"); + setsize(self, '-32 -32 -32', '32 32 64'); + self.classname = "mesh_stalagmite"; + self.movetype = MOVETYPE_NONE; +// self.touch = weapon_touch; +// self.parts = particleeffectnum("items.respawn"); +} + +void() mesh_stalag2 = +{ + self.solid = SOLID_BBOX; + setmodel(self, "models/stalag2.iqm"); + setsize(self, '-32 -32 -32', '32 32 64'); + self.classname = "mesh_stalag2"; + self.movetype = MOVETYPE_NONE; +} + +void() mesh_ptest = +{ + self.classname = "mesh_ptest"; + self.solid = SOLID_BBOX; + setmodel(self, "models/pmodel.iqm"); + setsize(self, '-32 -32 -32', '32 32 64'); + self.movetype = MOVETYPE_NONE; +} + +//nonsolid props =============================================================== +//TODO: see if some/all of these +//can be moved to the client +void() mesh_bigcandle = +{ + self.classname = "mesh_bigcandle"; + self.solid = SOLID_NOT; + self.movetype = MOVETYPE_NONE; + setmodel(self, "models/bigcandle.iqm"); + + makestatic(self); +} + +void() mesh_chandelier1 = +{ + self.classname = "mesh_chandelier1"; + self.solid = SOLID_NOT; + self.movetype = MOVETYPE_NONE; + setmodel(self, "models/chandelier1.iqm"); + + makestatic(self); +} + +//Thinking decorations================= +//Particle emitters and whatnot +//DON'T call makestatic() + +void() part_think = +{ + local float firenum = particleeffectnum("fire.torchflame"); +// local vector org = self.origin + '0 0 20'; + + pointparticles(firenum, self.origin, '0 0 1'); + +// WriteByte(MSG_MULTICAST, SVC_CGAMEPACKET); +// WriteByte(MSG_MULTICAST, EVENT_EMITPARTICLES); +// WriteCoord(MSG_MULTICAST, self.origin_x); +// WriteCoord(MSG_MULTICAST, self.origin_y); +// WriteCoord(MSG_MULTICAST, self.origin_z); +// multicast(self.origin, MULTICAST_PVS); + + self.nextthink = time + 0.3; +} + +void() mesh_sconce1 = +{ + self.solid = SOLID_NOT; + self.movetype = MOVETYPE_NONE; + self.classname = "flameparttest"; + setmodel(self, "models/sconce.iqm"); + + self.nextthink = time + 1; + self.think = part_think; +} diff --git a/sourcefiles/code/server/player.qc b/sourcefiles/code/server/player.qc @@ -0,0 +1,278 @@ +// +// Player.qc - Various stuff done for the player, including per-frame functions like PlayerPreThink and PlayerPostThink, also client specific stuff like PutClientInServer etc. +// + +void() PlayerJump = +{ + if (!(self.flags & FL_ONGROUND)) + return; + + if ( !(self.flags & FL_JUMPRELEASED) ) + return; + + self.flags = self.flags - (self.flags & FL_JUMPRELEASED); + sound(self, CHAN_VOICE, "sounds/ouch.wav", 1, 1.75); + self.button2 = 0; +} + +void() CheckImpulses = +{ + if(self.impulse == 1) + SwitchWeapon(IT_PISTOL); + else if(self.impulse == 2) + SwitchWeapon(IT_MG); + + self.impulse = 0; +} + +void() PlayerPreThink = +{ + if(self.isspec != 0) + { + if(self.button0 && time > self.ready) + { + self.aiment = find(self.aiment, classname, "player"); + if(self.aiment != world) + { + sprint(self, PRINT_HIGH, "Now spectating "); + sprint(self, PRINT_HIGH, self.aiment.netname); + sprint(self, PRINT_HIGH, "\n"); + + self.solid = SOLID_NOT; + self.movetype = MOVETYPE_NONE; + } + else + { + sprint(self, PRINT_HIGH, "Freefly spectate\n"); + self.movetype = MOVETYPE_FLY; + } + self.ready = time + 0.5; + } + if(self.aiment != world) + { + self.origin = self.aiment.origin; + self.angles = self.aiment.v_angle; + self.velocity = self.aiment.velocity; + self.fixangle = TRUE; + } + return; + } + + CheckImpulses(); + + if(self.button0) + { + FireWeapon(); + } + else + { + if(time > self.ready) + { + self.readystate = READY; + } + else if(self.readystate == FIRING_SEMI) + { + self.readystate = FIRING; + } + } + if(self.button2) + { + PlayerJump (); + } + else + self.flags = self.flags | FL_JUMPRELEASED; +}; + +void() PlayerPostThink = +{ + if(self.isspec) + return; + + //landsound + if((self.oldvelocity_z < -10) && (self.flags & FL_ONGROUND)) + { + if(self.oldvelocity_z < -270) + sound(self, CHAN_BODY, "sounds/PHfootstep2.wav", 1, 1.75); + self.lastsound_time = time - 0.15; + } + + //footsteps + if((vlen(self.velocity) > 315) &&( time - self.lastsound_time > 0.3) && (self.flags & FL_ONGROUND)) + { + local float movelen = vlen(input_movevalues); + if(movelen > 300) + { + local float ran = random(); + if(ran > 0.5) + sound(self, CHAN_BODY, "sounds/PHfootstep1.wav", 0.01, 2.5); + else + sound(self, CHAN_BODY, "sounds/PHfootstep1.wav", 0.01, 2.5); + self.lastsound_time = time; + } + } + + self.oldvelocity = self.velocity; +}; + +void() ClientKill = +{ +}; + +//called when a client connects to the server +void(optional float csqcactive) ClientConnect = +{ + bprint(PRINT_HIGH, self.netname); //print player name + bprint(PRINT_HIGH, " connected.\n"); + + if (!world.strack) + return; + + //TODO: Make it so you don't need to add + //"sound/.." to the beginning of the + //strack string + sound(self, CHAN_AUTO, world.strack, 0.4, ATTN_NONE); +}; + +void(entity attacker, float damage) PlayerPain = +{ + local float rs; + + if (damage > 40) + { + sound (self, CHAN_VOICE, "sounds/hurtbad.wav", 1, ATTN_NORM); + } + else + { + rs = rint((random() * 2) + 1); + + if (rs == 1) + sound (self, CHAN_VOICE, "sounds/ouch.wav", 1, ATTN_NORM); + else + sound (self, CHAN_VOICE, "sounds/ouch2.wav", 1, ATTN_NORM); + } +} + +void() PlayerDie = +{ +// self.view_ofs = '0 0 -8'; +// self.deadflag = DEAD_DYING; + self.solid = SOLID_NOT; + self.flags = self.flags - (self.flags & FL_ONGROUND); + self.movetype = MOVETYPE_TOSS; + sound(self, CHAN_VOICE, "sounds/death.wav", 1, ATTN_NONE); + + WriteByte(MSG_MULTICAST, SVC_CGAMEPACKET); + WriteByte(MSG_MULTICAST, EVENT_PLAYERDEATH); + multicast(self.origin, MULTICAST_ONE); + + self.nextthink = -1; +// self.deadflag = DEAD_DEAD; +// bprint(PRINT_HIGH, "PlayerDie called\n"); +} + +void() PlayerSpawn = +{ + local entity spawnpoint; + spawnpoint = find(world, classname, "info_player_start"); + + self.isspec = FALSE; + self.classname = "player"; + self.solid = SOLID_SLIDEBOX; + setmodel(self, "models/pmodel.iqm"); + self.movetype = MOVETYPE_WALK; + self.health = 100; + self.takedamage = DAMAGE_AIM; + self.origin = spawnpoint.origin + [0,0,1]; + self.fixangle = TRUE; + setsize(self, [-16, -16, -24], [16, 16, 32]); +// self.view_ofs = '0 0 22'; + self.ammo_pistol = 50; + self.items = IT_PISTOL; + self.ready = 0; + self.readystate = READY; + self.mapend = 0; + SwitchWeapon(IT_PISTOL); + stuffcmd(self, "cl_gunx 8;cl_guny 16;cl_gunz 25\n"); + +// self.attack_finished = time; + self.th_die = PlayerDie; + self.th_pain = PlayerPain; + self.deadflag = DEAD_NO; +}; + +void() SpectatorSpawn = +{ + local entity spawnpoint; + spawnpoint = find(world, classname, "info_player_start"); + + self.isspec = TRUE; + self.classname = "spectator"; + self.solid = SOLID_NOT; + setmodel(self, ""); + self.movetype = MOVETYPE_FLY; + self.origin = spawnpoint.origin + [0,0,1]; + self.fixangle = TRUE; + setsize(self, [-16, -16, -24], [16, 16, 32]); + self.view_ofs = '0 0 22'; + self.aiment = world; +}; + +//called when a client loads a map +void() PutClientInServer = +{ + stuffcmd(self, "promptjoin\n"); + SpectatorSpawn(); +}; + +//called when client disconnects from the server +void() ClientDisconnect = +{ + bprint(PRINT_HIGH, self.netname); + bprint(PRINT_HIGH, " has left the game.\n"); + remove(self); +}; + + +void() SetNewParms = +{ +}; + +void() SetChangeParms = +{ +}; + +void() info_player_start = +{ + +}; + +void(string com) SV_ParseClientCommand = +{ + if(com == "joingame") + { + if(self.isspec) + { + bprint(PRINT_HIGH, self.netname); + bprint(PRINT_HIGH, " has joined the game.\n"); + PlayerSpawn(); + } + else + sprint(self, PRINT_HIGH, "You're already in game!\n"); + } + else if(com == "specgame") + { + if(self.isspec) + return; + else + { + SpectatorSpawn(); + bprint(PRINT_HIGH, self.netname); //print player name + bprint(PRINT_HIGH, " has joined the spectators.\n"); + } + } +}; + +void() SV_RunClientCommand = +{ + runstandardplayerphysics(self); +} diff --git a/sourcefiles/code/server/scrambler.qc b/sourcefiles/code/server/scrambler.qc @@ -0,0 +1,136 @@ +void() SpitwadTouch = +{ + if (other == self.owner) + return; // don't explode on owner + + if (pointcontents(self.origin) == CONTENT_SKY) + { + remove(self); + return; + } + + if (other.health) + { + T_Damage (other, self, self.owner, 20); + } + + remove(self); +} + +void() acidspit = +{ + local entity spitwad; + + sound(self, CHAN_VOICE, "sounds/hock.wav", 1, ATTN_NORM); + + spitwad = spawn(); + spitwad.owner = self; + spitwad.movetype = MOVETYPE_BOUNCE; + spitwad.solid = SOLID_BBOX; + + setmodel (spitwad, "models/spitwad.iqm"); + spitwad.origin = self.origin + '0 0 50'; + setsize (spitwad, '-16 -16 -16', '16 16 16'); + + spitwad.velocity = normalize(self.enemy.origin - self.origin); + spitwad.velocity = spitwad.velocity * 450; + spitwad.velocity_z = 200; + + spitwad.angles = vectoangles(spitwad.velocity); + spitwad.classname = "spitwad"; + + spitwad.touch = SpitwadTouch; + spitwad.nextthink = time + 2.5; + spitwad.think = SUB_Remove; + +} + + +void() trif_testattack = +{ + ai_face(); + self.frame = 2; + if(time >= self.attack_finished) + { + acidspit(); + self.think = self.th_run; + } + self.nextthink = time + 0.1; +} + +void() trif_run = +{ + self.frame = 0; + local float enemy_range; + + enemy_range = range(self.enemy); + if (enemy_range > 300) + { + ai_run(60); + } + if (enemy_range <= 300) + { + self.attack_finished = time + .3; + self.think = trif_testattack; + } + self.nextthink = time + 0.1; +} + +void() trif_stand = +{ +// ai_stand(); +// self.nextthink = time + 0.1; +} + +void() trif_dead +{ + self.nextthink = time + 0.1; +} + + +void() trif_die = +{ + self.solid = SOLID_NOT; + self.frame = 1; + self.think = trif_dead; + + self.nextthink = time + 0.1; +} + +void(entity attacker, float damage) trif_pain = +{ + +} + +void() trif_walk = +{ + +} + + + +void() monster_scrambler = +{ + self.solid = SOLID_SLIDEBOX; + self.movetype = MOVETYPE_STEP; + self.yaw_speed = 20; + + setmodel (self, "models/spitter.iqm"); + setsize(self, '-32 -32 0', '32 32 64'); + self.health = 200; +// self.painchance = 5; no painchance var + + self.th_stand = trif_stand; + self.th_walk = trif_walk; + self.th_run = trif_run; + self.th_die = trif_die; + self.th_pain = trif_pain; +// self.th_missile = trif_attack1; + self.th_missile = trif_testattack; + + self.takedamage = DAMAGE_AIM; + + self.think = monster_init; + self.nextthink = time + 0.1; + +}; diff --git a/sourcefiles/code/server/ss_customdefs.qc b/sourcefiles/code/server/ss_customdefs.qc @@ -0,0 +1,88 @@ +//defs used by Fangflecked, rather +//than the engine + +//ENT PROPERTIES================== + +//firing states +.float attack_finished; + +//ammo types +.float ammo_mg; +.float ammo_pistol; + +//for worldspawn +.string strack; //music track + +//for trigger_mapend entity +.string map; //destination + +//technically used by players, +//but it's for the mapend entity. +//this gets set to true if a player +//is inside the mapend trigger +.float mapend; + +//for monster ai +.void() th_stand; +.void() th_walk; +.void() th_run; +.void() th_missile; +.void() th_melee; +.void(entity attacker, float damage) th_pain; +.void() th_die; +.entity oldenemy; // mad at this player before taking damage +.float pausetime; +.entity movetarget; +.float search_time; + +//for buttons and doors and such +.float movestate; + +//for player gunfire states +.float ready; +.float readystate; + +//don't remember what these do, but +//they're used in player.qc. +//TODO: Figure it out! +.float isspec; +.float lastsound_time; +.vector oldvelocity; + +//DEFINES========================== + +//csqc events +//any additions should also be added to +//client/customdefs.qc +#define EVENT_PLAYERDEATH 0 +#define EVENT_WEAPONCHANGE 1 +#define EVENT_PISTOLFIRE 2 +#define EVENT_MGFIRE 3 +#define EVENT_EMITPARTICLES 4 + +//TODO: figure out what this is +#define FL_JUMPRELEASED 4096 + +#define IT_PISTOL 1 +#define IT_MG 2 + +//weapon ammo. move this to weapons.qc? +#define MAXAMMO_PISTOL 50 +#define MAXAMMO_MG 200 + +//player states I think? TODO: Confirm +#define DEAD_NO 0 +#define DEAD_DYING 1 +#define DEAD_DEAD 2 + +//gun firing states +//stored in .float readystate +#define READY 1 +#define FIRING_SEMI 2 +#define FIRING 3 +#define SWITCHING 4 + +//states for buttons and doors +//(they go in .float movestate) +#define MST_REST 0 +#define MST_CLICK 1 diff --git a/sourcefiles/code/server/ssdefs.qc b/sourcefiles/code/server/ssdefs.qc @@ -0,0 +1,1784 @@ +/* +This file was generated by FTE Quake 5695, dated 2020-05-16T13:12:58.990875Z. +This file can be regenerated by issuing the following command: +pr_dumpplatform -O ssdefs -Tqw -Ffte -Fdefines +Available options: +-Ffte - target only FTE (optimations and additional extensions) +-Tnq - dump specifically NQ fields +-Tqw - dump specifically QW fields +-Tcs - dump specifically CSQC fields +-Tmenu - dump specifically menuqc fields +-Fdefines - generate #defines instead of constants +-Faccessors - use accessors instead of basic types via defines +-O - write to a different qc file +*/ +#pragma noref 1 +//#pragma flag enable logicops +#pragma warning error Q101 /*too many parms. The vanilla qcc didn't validate properly, hence why fteqcc normally treats it as a warning.*/ +#pragma warning error Q105 /*too few parms. The vanilla qcc didn't validate properly, hence why fteqcc normally treats it as a warning.*/ +#pragma warning error Q106 /*assignment to constant/lvalue. Define them as var if you want to initialise something.*/ +#pragma warning error Q208 /*system crc unknown. Compatibility goes out of the window if you disable this.*/ +#pragma warning disable F211 /*system crc outdated (eg: dp's csqc). Note that this may trigger emulation.*/ +#pragma warning enable F301 /*non-utf-8 strings. Think of the foreigners! Also think of text editors that insist on screwing up your char encodings.*/ +#pragma warning enable F302 /*uninitialised locals. They usually default to 0 in qc (except in recursive functions), but its still probably a bug*/ +#pragma target FTE +#ifndef QUAKEWORLD +#define QUAKEWORLD +#endif +#ifndef QWSSQC +#define QWSSQC +#endif +#ifndef SSQC +#define SSQC +#endif +#define FTE_PEXT_SETVIEW /* NQ's svc_setview works correctly even in quakeworld */ +#define DP_ENT_SCALE +#define FTE_PEXT_LIGHTSTYLECOL +#define DP_ENT_ALPHA +#define FTE_PEXT_VIEW2 +#define FTE_PEXT_ACURATETIMINGS +#define FTE_PEXT_SOUNDDBL +#define FTE_PEXT_FATNESS +#define DP_HALFLIFE_MAP +#define FTE_PEXT_TE_BULLET +#define FTE_PEXT_HULLSIZE +#define FTE_PEXT_MODELDBL +#define FTE_PEXT_ENTITYDBL +#define FTE_PEXT_ENTITYDBL2 +#define FTE_PEXT_FLOATCOORDS +#define FTE_PEXT_VWEAP +#define FTE_PEXT_Q2BSP +#define FTE_PEXT_Q3BSP +#define DP_ENT_COLORMOD +#define FTE_HEXEN2 +#define FTE_PEXT_SPAWNSTATIC +#define FTE_PEXT_CUSTOMTENTS +#define FTE_PEXT_256PACKETENTITIES +#define TEI_SHOWLMP2 +#define DP_GFX_QUAKE3MODELTAGS +#define FTE_PK3DOWNLOADS +#define PEXT_CHUNKEDDOWNLOADS +#define EXT_CSQC_SHARED +#define PEXT_DPFLAGS +#define EXT_CSQC +#define BX_COLOREDTEXT +#define DP_CON_SET /* The 'set' console command exists, and can be used to create/set cvars. */ +#define DP_CON_SETA /* The 'seta' console command exists, like the 'set' command, but also marks the cvar for archiving, allowing it to be written into the user's config. Use this command in your default.cfg file. */ +#define DP_CSQC_ROTATEMOVES +#define DP_EF_ADDITIVE +#define DP_EF_BLUE +#define DP_EF_FULLBRIGHT +#define DP_EF_NODEPTHTEST +#define DP_EF_NODRAW +#define DP_EF_NOGUNBOB +#define DP_EF_NOSHADOW +#define DP_EF_RED +#define DP_ENT_CUSTOMCOLORMAP +#define DP_ENT_EXTERIORMODELTOCLIENT +#define DP_ENT_TRAILEFFECTNUM /* self.traileffectnum=particleeffectnum("myeffectname"); can be used to attach a particle trail to the given server entity. This is equivelent to calling trailparticles each frame. */ +#define DP_ENT_VIEWMODEL +#define DP_GECKO_SUPPORT +#define DP_GFX_FONTS +#define DP_GFX_SKINFILES +#define DP_GFX_SKYBOX +#define DP_HALFLIFE_MAP_CVAR +#define DP_INPUTBUTTONS +#define DP_LIGHTSTYLE_STATICVALUE +#define DP_LITSUPPORT +#define DP_MONSTERWALK /* MOVETYPE_WALK is valid on non-player entities. Note that only players receive acceleration etc in line with none/bounce/fly/noclip movetypes on the player, thus you will have to provide your own accelerations (incluing gravity) yourself. */ +#define DP_MOVETYPEBOUNCEMISSILE +#define DP_MOVETYPEFOLLOW +#define DP_QC_ASINACOSATANATAN2TAN +#define DP_QC_CHANGEPITCH +#define DP_QC_COPYENTITY +#define DP_QC_CRC16 +#define DP_QC_CVAR_DEFSTRING +#define DP_QC_CVAR_STRING +#define DP_QC_CVAR_TYPE +#define DP_QC_DIGEST_SHA256 +#define DP_QC_EDICT_NUM +#define DP_QC_ENTITYDATA +#define DP_QC_ETOS +#define DP_QC_FINDCHAIN +#define DP_QC_FINDCHAINFLOAT +#define DP_QC_FINDFLAGS +#define DP_QC_FINDCHAINFLAGS +#define DP_QC_FINDFLOAT +#define DP_QC_FS_SEARCH +#define DP_QC_GETSURFACE +#define DP_QC_GETSURFACEPOINTATTRIBUTE +#define DP_QC_GETTAGINFO +#define DP_QC_MINMAXBOUND +#define DP_QC_MULTIPLETEMPSTRINGS /* Superseded by DP_QC_UNLIMITEDTEMPSTRINGS. Functions that return a temporary string will not overwrite/destroy previous temporary strings until at least 16 strings are returned (or control returns to the engine). */ +#define DP_QC_RANDOMVEC +#define DP_QC_RENDER_SCENE /* clearscene+addentity+setviewprop+renderscene+setmodel are available to menuqc. WARNING: DP advertises this extension without actually supporting it, FTE does actually support it. */ +#define DP_QC_SINCOSSQRTPOW +#define DP_QC_SPRINTF /* Provides the sprintf builtin, which allows for rich formatting along the lines of C's function with the same name. Not to be confused with QC's sprint builtin. */ +#define DP_QC_STRFTIME +#define DP_QC_STRING_CASE_FUNCTIONS +#define DP_QC_STRINGBUFFERS +#define DP_QC_STRINGCOLORFUNCTIONS +#define DP_QC_STRREPLACE +#define DP_QC_TOKENIZEBYSEPARATOR +#define DP_QC_TRACEBOX +#define DP_QC_TRACETOSS +#define DP_QC_TRACE_MOVETYPE_HITMODEL +#define DP_QC_TRACE_MOVETYPE_WORLDONLY +#define DP_QC_TRACE_MOVETYPES +#define DP_QC_UNLIMITEDTEMPSTRINGS /* Supersedes DP_QC_MULTIPLETEMPSTRINGS, superseded by FTE_QC_PERSISTENTTEMPSTRINGS. Specifies that all temp strings will be valid at least until the QCVM returns. */ +#define DP_QC_URI_ESCAPE +#define DP_QC_URI_GET +#define DP_QC_URI_POST +#define DP_QC_VECTOANGLES_WITH_ROLL +#define DP_QC_VECTORVECTORS +#define DP_QC_WHICHPACK +#define DP_QUAKE2_MODEL +#define DP_QUAKE2_SPRITE +#define DP_QUAKE3_MODEL +#define DP_REGISTERCVAR +#define DP_SND_SOUND7_WIP2 +#define DP_SND_STEREOWAV +#define DP_SND_OGGVORBIS +#define DP_SOLIDCORPSE +#define DP_SPRITE32 +#define DP_SV_BOTCLIENT +#define DP_SV_CLIENTCAMERA /* Works like svc_setview except also handles pvs. */ +#define DP_SV_CLIENTCOLORS /* Provided only for compatibility with DP. */ +#define DP_SV_CLIENTNAME /* Provided only for compatibility with DP. */ +#define DP_SV_DRAWONLYTOCLIENT +#define DP_SV_DROPCLIENT /* Equivelent to quakeworld's stuffcmd(self,"disconnect\n"); hack */ +#define DP_SV_EFFECT +#define DP_SV_EXTERIORMODELFORCLIENT +#define DP_SV_NODRAWTOCLIENT +#define DP_SV_PLAYERPHYSICS /* Allows reworking parts of NQ player physics. USE AT OWN RISK - this necessitates NQ physics and is thus guarenteed to break prediction. */ +#define DP_SV_POINTSOUND +#define DP_SV_PRECACHEANYTIME /* Specifies that the various precache builtins can be called at any time. WARNING: precaches are sent reliably while sound events, modelindexes, and particle events are not. This can mean sounds and particles might not work the first time around, or models may take a while to appear (after the reliables are received and the model is loaded from disk). Always attempt to precache a little in advance in order to reduce these issues (preferably at the start of the map...) */ +#define DP_SV_PRINT /* Says that the print builtin can be used from nqssqc (as well as just csqc), bypassing the developer cvar issues. */ +#define DP_SV_SETCOLOR +#define DP_SV_SPAWNFUNC_PREFIX +#define DP_SV_WRITEPICTURE +#define DP_SV_WRITEUNTERMINATEDSTRING +#define DP_TE_BLOOD +#define DP_TE_CUSTOMFLASH +#define DP_TE_EXPLOSIONRGB +#define DP_TE_PARTICLECUBE +#define DP_TE_PARTICLERAIN +#define DP_TE_PARTICLESNOW +#define DP_TE_SMALLFLASH +#define DP_TE_SPARK +#define DP_TE_STANDARDEFFECTBUILTINS +#define DP_VIEWZOOM +#define EXT_BITSHIFT +#define EXT_DIMENSION_VISIBILITY +#define EXT_DIMENSION_PHYSICS +#define EXT_DIMENSION_GHOST +#define FRIK_FILE +#define FTE_CALLTIMEOFDAY /* Replication of mvdsv functionality (call calltimeofday to cause 'timeofday' to be called, with arguments that can be saved off to a global). Generally strftime is simpler to use. */ +#define FTE_CSQC_ALTCONSOLES /* The engine tracks multiple consoles. These may or may not be directly visible to the user. */ +#define FTE_CSQC_BASEFRAME /* Specifies that .basebone, .baseframe2, .baselerpfrac, baseframe1time, etc exist in csqc. These fields affect all bones in the entity's model with a lower index than the .basebone field, allowing you to give separate control to the legs of a skeletal model, without affecting the torso animations. */ +#define FTE_CSQC_HALFLIFE_MODELS +#define FTE_CSQC_SERVERBROWSER /* Provides builtins to query the engine's serverbrowser servers list from ssqc. Note that these builtins are always available in menuqc. */ +#define FTE_CSQC_SKELETONOBJECTS /* Provides container objects for skeletal bone data, which can be modified on a per bone basis if needed. This allows you to dynamically generate animations (or just blend them with greater customisation) instead of being limited to a single animation or two. */ +#define FTE_CSQC_RAWIMAGES /* Provides raw rgba image access to csqc. With this, the csprogs can read textures into qc-accessible memory, modify it, and then upload it to the renderer. */ +#define FTE_CSQC_RENDERTARGETS /* VF_RT_DESTCOLOUR exists and can be used to redirect any rendering to a texture instead of the screen. */ +#define FTE_CSQC_REVERB /* Specifies that the mod can create custom reverb effects. Whether they will actually be used or not depends upon the sound driver. */ +#define FTE_CSQC_WINDOWCAPTION /* Provides csqc with the ability to change the window caption as displayed when running windowed or in the task bar when switched out. */ +#define FTE_ENT_SKIN_CONTENTS /* self.skin = CONTENTS_WATER; makes a brush entity into water. use -16 for a ladder. */ +#define FTE_ENT_UNIQUESPAWNID +#define FTE_EXTENDEDTEXTCODES +#define FTE_FORCESHADER /* Allows csqc to override shaders on models with an explicitly named replacement. Also allows you to define shaders with a fallback if it does not exist on disk. */ +#define FTE_FORCEINFOKEY /* Provides an easy way to change a user's userinfo from the server. */ +#define FTE_GFX_QUAKE3SHADERS /* specifies that the engine has full support for vanilla quake3 shaders */ +#define FTE_GFX_REMAPSHADER /* With the raw power of stuffcmds, the r_remapshader console command is exposed! This mystical command can be used to remap any shader to another. Remapped shaders that specify $diffuse etc in some form will inherit the textures implied by the surface. */ +#define FTE_GFX_MODELEVENTS /* Provides a query for per-animation events in model files, including from progs/foo.mdl.events files. */ +#define FTE_ISBACKBUFFERED /* Allows you to check if a client has too many reliable messages pending. */ +#define FTE_MEMALLOC /* Allows dynamically allocating memory. Use pointers to access this memory. Memory will not be saved into saved games. */ +#define FTE_MEDIA_CIN /* playfilm command supports q2 cin files. */ +#define FTE_MEDIA_ROQ /* playfilm command supports q3 roq files. */ +#define FTE_MULTIPROGS /* Multiple progs.dat files can be loaded inside the same qcvm. Insert new ones with addprogs inside the 'init' function, and use externvalue+externset to rewrite globals (and hook functions) to link them together. Note that the result is generally not very clean unless you carefully design for it beforehand. */ +#define FTE_MULTITHREADED /* Faux multithreading, allowing multiple contexts to run in sequence. */ +#define FTE_MVD_PLAYERSTATS /* In csqc, getplayerstat can be used to query any player's stats when playing back MVDs. isdemo will return 2 in this case. */ +#define FTE_PART_SCRIPT /* Specifies that the r_particledesc cvar can be used to select a list of particle effects to load from particles/*.cfg, the format of which is documented elsewhere. */ +#define FTE_PART_NAMESPACES /* Specifies that the engine can use foo.bar to load effect foo from particle description bar. When used via ssqc, this should cause the client to download whatever effects as needed. */ +#define FTE_PART_NAMESPACE_EFFECTINFO /* Specifies that effectinfo.bar can load effects from effectinfo.txt for DP compatibility. */ +#define FTE_QC_BASEFRAME /* Specifies that .basebone and .baseframe exist in ssqc. These fields affect all bones in the entity's model with a lower index than the .basebone field, allowing you to give separate control to the legs of a skeletal model, without affecting the torso animations, from ssqc. */ +#define FTE_QC_FILE_BINARY /* Extends FRIK_FILE with binary read+write, as well as allowing seeking. Requires pointers. */ +#define FTE_QC_CHANGELEVEL_HUB /* Adds an extra argument to changelevel which is carried over to the next map in the 'spawnspot' global. Maps will be saved+reloaded until the extra argument is omitted again, purging all saved maps. Saved games will contain a copy of each preserved map. parm1-parm64 globals can be used, giving more space to transfer more player data. */ +#define FTE_QC_CHECKCOMMAND /* Provides a way to test if a console command exists, and whether its a command/alias/cvar. Does not say anything about the expected meanings of any arguments or values. */ +#define FTE_QC_CHECKPVS +#define FTE_QC_CROSSPRODUCT +#define FTE_QC_CUSTOMSKINS /* The engine supports the use of q3 skins, as well as the use of such skin 'files' to specify rich top+bottom colours, qw skins, geomsets, or texture composition even on non-players.. */ +#define FTE_QC_DIGEST_SHA1 +#define FTE_QC_DIGEST_SHA224 +#define FTE_QC_DIGEST_SHA384 +#define FTE_QC_DIGEST_SHA512 +#define FTE_QC_FS_SEARCH_SIZEMTIME +#define FTE_QC_HARDWARECURSORS /* setcursormode exists in both csqc+menuqc, and accepts additional arguments to specify a cursor image to use when this module has focus. If the image exceeds hardware limits (or hardware cursors are unsupported), it will be emulated using regular draws - this at least still avoids conflicting cursors as only one will ever be used, even if console+menu+csqc are all overlayed. */ +#define FTE_QC_HASHTABLES /* Provides efficient string-based lookups. */ +#define FTE_QC_INFOKEY /* QuakeWorld's infokey builtin works, and reports at least name+topcolor+bottomcolor+ping(in ms)+ip(unmasked, but not always ipv4)+team(aka bottomcolor in nq). Does not require actual localinfo/serverinfo/userinfo, but they're _highly_ recommended to any engines with csqc */ +#define FTE_QC_INTCONV /* Provides string<>int conversions, including hex representations. */ +#define FTE_QC_MATCHCLIENTNAME +#define FTE_QC_MULTICAST /* QuakeWorld's multicast builtin works along with MSG_MULTICAST, but also with unicast support. */ +#define FTE_QC_PAUSED +#define FTE_QC_PERSISTENTTEMPSTRINGS /* Supersedes DP_QC_MULTIPLETEMPSTRINGS. Temp strings are garbage collected automatically, and do not expire while they're still in use. This makes strzone redundant. */ +#define FTE_QC_RAGDOLL_WIP +#define FTE_QC_SENDPACKET /* Allows the use of out-of-band udp packets to/from other hosts. Includes the SV_ParseConnectionlessPacket event. */ +#define FTE_QC_STUFFCMDFLAGS /* Variation on regular stuffcmd that gives control over how spectators/mvds should be treated. */ +#define FTE_QC_TRACETRIGGER +#define FTE_QUAKE2_CLIENT /* This engine is able to act as a quake2 client */ +#define FTE_QUAKE2_SERVER /* This engine is able to act as a quake2 server */ +#define FTE_QUAKE3_CLIENT /* This engine is able to act as a quake3 client */ +#define FTE_QUAKE3_SERVER /* This engine is able to act as a quake3 server */ +#define FTE_SOLID_LADDER /* Allows a simple trigger to remove effects of gravity (solid 20). obsolete. will prolly be removed at some point as it is not networked properly. Use FTE_ENT_SKIN_CONTENTS */ +#define FTE_SPLITSCREEN /* Client supports splitscreen, controlled via cl_splitscreen. Servers require allow_splitscreen 1 if splitscreen is to be used over the internet. Mods that use csqc will need to be aware for this to work properly. per-client networking may be problematic. */ +#define FTE_SQL /* Provides sql* builtins which can be used for sql database access */ +#define FTE_SQL_SQLITE /* SQL functionality is able to utilise sqlite databases */ +#define FTE_STRINGS /* Extra builtins (and additional behaviour) to make string manipulation easier */ +#define FTE_SV_POINTPARTICLES /* Specifies that particleeffectnum, pointparticles, and trailparticles exist in ssqc as well as csqc. particleeffectnum acts as a precache, allowing ssqc values to be networked up with csqc for use. Use in combination with FTE_PART_SCRIPT+FTE_PART_NAMESPACES to use custom effects. This extension is functionally identical to the DP version, but avoids any misplaced assumptions about the format of the client's particle descriptions. */ +#define FTE_SV_REENTER +#define FTE_TE_STANDARDEFFECTBUILTINS /* Provides builtins to replace writebytes, with a QW compatible twist. */ +#define FTE_TERRAIN_MAP /* This engine supports .hmp files, as well as terrain embedded within bsp files. */ +#define FTE_RAW_MAP /* This engine supports directly loading .map files, as well as realtime editing of the various brushes. */ +#define KRIMZON_SV_PARSECLIENTCOMMAND /* SSQC's SV_ParseClientCommand function is able to handle client 'cmd' commands. The tokenizing parts also work in csqc. */ +#define NEH_CMD_PLAY2 +#define NEH_RESTOREGAME +#define QSG_CVARSTRING +#define QW_ENGINE +#define QWE_MVD_RECORD /* You can use the easyrecord command to record MVD demos serverside. */ +#define TEI_MD3_MODEL +#define TENEBRAE_GFX_DLIGHTS /* Allows ssqc to attach rtlights to entities with various special properties. */ +#define ZQ_MOVETYPE_FLY /* MOVETYPE_FLY works on players. */ +#define ZQ_MOVETYPE_NOCLIP /* MOVETYPE_NOCLIP works on players. */ +#define ZQ_MOVETYPE_NONE /* MOVETYPE_NONE works on players. */ +#define ZQ_VWEP +#define ZQ_QC_STRINGS /* The strings-only subset of FRIK_FILE is supported. */ + +#ifdef _ACCESSORS +accessor strbuf : float; +accessor searchhandle : float; +accessor hashtable : float; +accessor infostring : string; +accessor filestream : float; +accessor filestream : float; +#else +#define strbuf float +#define searchhandle float +#define hashtable float +#define infostring string +#define filestream float +#endif + +entity self; /* The magic me */ +entity other; /* Valid in touch functions, this is the entity that we touched. */ +entity world; /* The null entity. Hurrah. Readonly after map spawn time. */ +float time; /* The current game time. Stops when paused. */ +float frametime; /* The time since the last physics/render/input frame. */ +entity newmis; /* A named entity that should be run soon, to reduce the effects of latency. */ +float force_retouch; /* If positive, causes all entities to check for triggers. */ +string mapname; /* The short name of the map. */ +float serverflags; +float total_secrets; +float total_monsters; +float found_secrets; +float killed_monsters; +float parm1, parm2, parm3, parm4, parm5, parm6, parm7, parm8, parm9, parm10, parm11, parm12, parm13, parm14, parm15, parm16; /* Player specific mod-defined values that are transferred from one map to the next. These are set by the qc inside calls to SetNewParms and SetChangeParms, and can then be read on a per-player basis after a call to the setspawnparms builtin. They are not otherwise valid. */ +vector v_forward, v_up, v_right; +float trace_allsolid, trace_startsolid, trace_fraction; +vector trace_endpos, trace_plane_normal; +float trace_plane_dist; +entity trace_ent; +float trace_inopen; +float trace_inwater; +entity msg_entity; +void() main; /* This function is never called, and is effectively dead code. */ +void() StartFrame; /* Called at the start of each new physics frame. Player entities may think out of sequence so try not to depend upon explicit ordering too much. */ +void() PlayerPreThink; /* With Prediction(QW compat/FTE default): Called before the player's input commands are processed. +No Prediction(NQ compat): Called AFTER the player's movement intents have already been processed (ie: velocity will have already changed according to input_*, but before the actual position change. */ +void() PlayerPostThink; /* Called after the player's input commands are processed. */ +void() ClientKill; /* Called in response to 'cmd kill' (or just 'kill'). */ +void(optional float csqcactive) ClientConnect; /* Called after the connecting client has finished loading and is ready to receive active entities. Note that this is NOT the first place that a client might be referred to. */ +void() PutClientInServer; /* Enginewise, this is only ever called immediately after ClientConnect and is thus a little redundant. Modwise, this is also called for respawning a player etc. */ +void() ClientDisconnect; /* Called once a client disconnects or times out. Not guarenteed to be called on map changes. */ +void() SetNewParms; /* Called without context when a new client initially connects (before ClientConnect is even called). This function is expected to only set the parm* globals so that they can be decoded properly later. You should not rely on 'self' being set. */ +void() SetChangeParms; /* Called for each client on map changes. Should copy various entity fields to the parm* globals. */ +void end_sys_globals; +.float modelindex; /* This is the model precache index for the model that was set on the entity, instead of having to look up the model according to the .model field. Use setmodel to change it. */ +.vector absmin; /* Set by the engine when the entity is relinked (by setorigin, setsize, or setmodel). This is in world coordinates. */ +.vector absmax; /* Set by the engine when the entity is relinked (by setorigin, setsize, or setmodel). This is in world coordinates. */ +.float ltime; /* On MOVETYPE_PUSH entities, this is used as an alternative to the 'time' global, and .nextthink is synced to this instead of time. This allows time to effectively freeze if the entity is blocked, ensuring the think happens when the entity reaches the target point instead of randomly. */ +.float lastruntime; /* This field used to be used to avoid running an entity multiple times in a single frame due to quakeworld's out-of-order thinks. It is no longer used by FTE due to precision issues, but may still be updated for compatibility reasons. */ +.float movetype; /* Describes how the entity moves. One of the MOVETYPE_ constants. */ +.float solid; /* Describes whether the entity is solid or not, and any special properties infered by that. Must be one of the SOLID_ constants */ +.vector origin; /* The current location of the entity in world space. Inline bsp entities (ie: ones placed by a mapper) will typically have a value of '0 0 0' in their neutral pose, as the geometry is offset from that. It is the reference point of the entity rather than the center of its geometry, for non-bsp models, this is often not a significant distinction. */ +.vector oldorigin; /* This is often used on players to reset the player back to where they were last frame if they somehow got stuck inside something due to fpu precision. Never change a player's oldorigin field to inside a solid, because that might cause them to become pemanently stuck. */ +.vector velocity; /* The direction and speed that the entity is moving in world space. */ +.vector angles; /* The eular angles the entity is facing in, in pitch, yaw, roll order. Due to a legacy bug, mdl/iqm/etc formats use +x=UP, bsp/spr/etc formats use +x=DOWN. */ +.vector avelocity; /* The amount the entity's angles change by per second. Note that this is direct eular angles, and thus the angular change is non-linear and often just looks buggy if you're changing more than one angle at a time. */ +.string classname; /* Identifies the class/type of the entity. Useful for debugging, also used for loading, but its value is not otherwise significant to the engine, this leaves the mod free to set it to whatever it wants and randomly test strings for values in whatever inefficient way it chooses fit. */ +.string model; /* The model name that was set via setmodel, in theory. Often, this is cleared to null to prevent the engine from being seen by clients while not changing modelindex. This behaviour allows inline models to remain solid yet be invisible. */ +.float frame; /* The current frame the entity is meant to be displayed in. In CSQC, note the lerpfrac and frame2 fields as well. if it specifies a framegroup, the framegroup will autoanimate in ssqc, but not in csqc. */ +.float skin; /* The skin index to use. on a bsp entity, setting this to 1 will switch to the 'activated' texture instead. A negative value will be understood as a replacement contents value, so setting it to CONTENTS_WATER will make a movable pool of water. */ +.float effects; /* Lots of random flags that change random effects. See EF_* constants. */ +.vector mins; /* The minimum extent of the model (ie: the bottom-left coordinate relative to the entity's origin). Change via setsize. May also be changed by setmodel. */ +.vector maxs; /* like mins, but in the other direction. */ +.vector size; /* maxs-mins. Updated when the entity is relinked (by setorigin, setsize, setmodel) */ +.void() touch; +.void() use; +.void() think; +.void() blocked; +.float nextthink; /* The time at which the entity is next scheduled to fire its think event. For MOVETYPE_PUSH entities, this is relative to that entity's ltime field, for all other entities it is relative to the time gloal. */ +.entity groundentity; +.float health; +.float frags; +.float weapon; +.string weaponmodel; +.float weaponframe; +.float currentammo; +.float ammo_shells; +.float ammo_nails; +.float ammo_rockets; +.float ammo_cells; +.float items; +.float takedamage; +.entity chain; +.float deadflag; +.vector view_ofs; +.float button0; +.float button1; +.float button2; +.float impulse; +.float fixangle; /* Forces the clientside view angles to change to the value of .angles (has some lag). If set to 1/TRUE, the server will guess whether to send a delta or an explicit angle. If 2, will always send a delta (due to lag between transmission and acknowledgement, this cannot be spammed reliably). If 3, will always send an explicit angle. */ +.vector v_angle; /* The angles a player is viewing. +x is DOWN (pitch, yaw, roll) */ +.string netname; +.entity enemy; +.float flags; +.float colormap; +.float team; +.float max_health; +.float teleport_time; /* While active, prevents the player from using the +back command, also blocks waterjumping. */ +.float armortype; +.float armorvalue; +.float waterlevel; +.float watertype; +.float ideal_yaw; +.float yaw_speed; +.entity aiment; +.entity goalentity; +.float spawnflags; +.string target; +.string targetname; +.float dmg_take; +.float dmg_save; +.entity dmg_inflictor; +.entity owner; +.vector movedir; +.string message; +.float sounds; +.string noise; +.string noise1; +.string noise2; +.string noise3; +void end_sys_fields; +float input_timelength; +vector input_angles; /* +x=DOWN */ +vector input_movevalues; +float input_buttons; +float input_impulse; +int trace_endcontents; +int trace_surfaceflags; +int trace_brush_id; +int trace_brush_faceid; +int trace_surface_id; /* 1-based. 0 if not known. */ +int trace_bone_id; /* 1-based. 0 if not known. typically needs MOVE_HITMODEL. */ +int trace_triangle_id; /* 1-based. 0 if not known. */ +vector global_gravitydir = '0 0 -1'; /* The direction gravity should act in if not otherwise specified per entity. */ +int serverid; /* The unique id of this server within the server cluster. */ +.float button3; +.float button4; +.float button5; +.float button6; +.float button7; +.float button8; +.vector punchangle; +.float gravity; /* Multiplier applied in addition to sv_gravity (not absolute units), to control the gravity affecting this entity specifically. */ +.float hull; /* Overrides the hull used by the entity for walkmove/movetogoal and not traceline/tracebox. */ +.entity movechain; /* This is a linked list of entities which will be moved whenever this entity moves, logically they are attached to this entity. */ +.void() chainmoved; /* Called when the entity is moved as a result of being part of another entity's .movechain */ +.void(float old, float new) contentstransition; /* This function is called when the entity moves between water and air. If specified, default splash sounds will be disabled allowing you to provide your own. */ +.float dimension_solid; /* This is the bitmask of dimensions which the entity is solid within. */ +.float dimension_hit; /* This is the bitmask of dimensions which the entity will be blocked by. If other.dimension_solid & self.dimension_hit, our traces will impact and not proceed. If its false, the traces will NOT impact, allowing self to pass straight through. */ +.int hitcontentsmaski; /* Traces performed for this entity will impact against surfaces that match this contents mask. */ +.float dphitcontentsmask; /* Some crappy field that inefficiently requires translating to the native contents flags. Ditch the 'dp', do it properly. */ +.float scale; /* Multiplier that resizes the entity. 1 is normal sized, 2 is double sized. scale 0 is remapped to 1. In SSQC, this is limited to 1/16th precision, with a maximum just shy of 16. */ +.float fatness; /* How many QuakeUnits to push the entity's verticies along their normals by. */ +.float alpha; /* The transparency of the entity. 1 means opaque, 0.0001 means virtually invisible. 0 is remapped to 1, for compatibility. */ +.float modelflags; /* Used to override the flags set in the entity's model. Should be set according to the MF_ constants. Use effects|=EF_NOMODELFLAGS to ignore the model's flags completely. The traileffectnum field is more versatile. */ +.float frame1time; /* This controls the time into the framegroup/animation named by .frame, you should increment this value according to frametime or to distance moved, depending on the sort of animation you're attempting. You may wish to avoid incrementing this while lerpfrac is still changing, to avoid wasting parts of the animation. */ +.float basebone; /* The base* frame animations are equivelent to their non-base versions, except that they only affect bone numbers below the 'basebone' value. This means that the base* animation can affect the legs of a skeletal model independantly of the normal animation fields affecting the torso area. For more complex animation than this, use skeletal objects. */ +.float baseframe; /* See basebone */ +.void() customphysics; /* Called once each physics frame, overriding the entity's .movetype field and associated logic. You'll probably want to use tracebox to move it through the world. Be sure to call .think as appropriate. */ +.entity tag_entity; +.float tag_index; +.float skeletonindex; /* This object serves as a container for the skeletal bone states used to override the animation data. */ +.vector colormod; /* Provides a colour tint for the entity (does not affect fullbrights). */ +.vector glowmod; /* Scaler for an entity's fullbright textures. */ +.vector gravitydir; /* Specifies the direction in which gravity acts. Must be normalised. '0 0 0' also means down. Use '0 0 1' if you want the player to be able to run on ceilings. */ +.vector(vector org, vector ang) camera_transform; /* Provides portal transform information for portal surfaces attached to this entity. Also used to open up pvs in ssqc. */ +.float pmove_flags; +.float geomtype; +.float friction; +.float erp; +.float jointtype; +.float mass; +.float bouncefactor; +.float bouncestop; +.float idealpitch; +.float pitch_speed; +.float drawflags; /* Various flags that affect lighting values and scaling. Typically set to 96 in quake for proper compatibility with DP_QC_SCALE. */ +.float abslight; /* Allows overriding light levels. Use drawflags to state that this field should actually be used. */ +.vector color; /* This affects the colour of realtime lights that were enabled via the pflags field. */ +.float light_lev; /* This is the radius of an entity's light. This is not normally used by the engine, but is used for realtime lights (ones that are enabled with the pflags field). */ +.float style; /* Used by the light util to decide how an entity's light should animate. On an entity with pflags set, this also affects realtime lights. */ +.float pflags; /* Realtime lighting flags */ +.float maxspeed; +.entity view2; /* defines a second viewpoint, typically displayed in a corner of the screen (also punches open pvs). */ +.vector movement; /* These are the directions that the player is currently trying to move in (ie: which +forward/+moveright/+moveup etc buttons they have held), expressed relative to that player's angles. Order is forward, right, up. */ +.float vw_index; /* This acts as a second modelindex, using the same frames etc. */ +.entity nodrawtoclient; /* This entity will not be sent to the player named by this field. They will be invisible and not emit dlights/particles. Does not work in MVD-recorded game. */ +.entity drawonlytoclient; /* This entity will be sent *only* to the player named by this field. To other players they will be invisible and not emit dlights/particles. Does not work in MVD-recorded game. */ +.entity viewmodelforclient; /* This entity will be sent only to the player named by this field, and this entity will be attached to the player's view as an additional weapon model. */ +.entity exteriormodeltoclient; /* This entity will be invisible to the player named by this field, except in mirrors or mirror-like surfaces, where it will be visible as normal. It may still cast shadows as normal, and generate lights+particles, depending on client settings. Does not affect how other players see the entity. */ +.entity clientcamera; /* Controls which entity to use for this client's camera. */ +.float glow_size; /* Some outdated particle trail thing. */ +.float glow_color; /* Some outdated particle trail thing. */ +.float glow_trail; /* Some outdated particle trail thing. */ +.float traileffectnum; /* This should be set to the result of particleeffectnum, in order to attach a custom trail effect to an entity as it moves. */ +.float emiteffectnum; /* This should be set to the result of particleeffectnum, in order to continually spawn particles in the direction that this entity faces. */ +.float dimension_see; /* This is the dimension mask (bitfield) that the client is allowed to see. Entities and events not in this dimension mask will be invisible. */ +.float dimension_seen; /* This is the dimension mask (bitfield) that the client is visible within. Clients that cannot see this dimension mask will not see this entity. */ +.float dimension_ghost; /* If this entity is visible only within these dimensions, it will become transparent, as if a ghost. */ +.float dimension_ghost_alpha; /* If this entity is subject to dimension_ghost, this is the scaler for its alpha value. If 0, 0.5 will be used instead. */ +.float(entity playerent, float changedflags) SendEntity; /* Called by the engine whenever an entity needs to be (re)sent to a client's csprogs, either because SendFlags was set or because data was lost. Must write its data to the MSG_ENTITY buffer. Will be called at the engine's leasure. */ +.float SendFlags; /* Indicates that something in the entity has been changed, and that it needs to be updated to all players that can see it. The engine will clear it at some point, with the cleared bits appearing in the 'changedflags' argument of the SendEntity method. */ +.float Version; /* Obsolete, set a SendFlags bit instead. */ +.float clientcolors; +.float viewzoom; +.float items2; +.float playerclass; +.float hasted; +.float light_level; /* Used by hexen2 to indicate the light level where the player is standing. */ +.float pvsflags; /* Reconfigures when the entity is visible to clients */ +.float uniquespawnid; /* Incremented by 1 whenever the entity is respawned. Persists across remove calls, for when the two-second grace period is insufficient. */ +.float() customizeentityforclient; /* Called just before an entity is sent to a client (non-csqc protocol). This gives you a chance to tailor 'self' according to what 'other' should see. */ +void(float reqid, float responsecode, string resourcebody, int resourcebytes) URI_Get_Callback; /* Called as an eventual result of the uri_get builtin. */ +void() SpectatorConnect; /* Called when a spectator joins the game. */ +void() SpectatorDisconnect; /* Called when a spectator disconnects from the game. */ +void() SpectatorThink; /* Called each frame for each spectator. */ +void(string cmd) SV_ParseClientCommand; /* Provides QC with a way to intercept 'cmd foo' commands from the client. Very handy. Self will be set to the sending client, while the 'cmd' argument can be tokenize()d and each element retrieved via argv(argno). Unrecognised cmds MUST be passed on to the clientcommand builtin. */ +void(string dest, string from, string cmd, string info) SV_ParseClusterEvent; /* Part of cluster mode. Handles cross-node events that were sent via clusterevent, on behalf of the named client. */ +float(string sender, string body) SV_ParseConnectionlessPacket; /* Provides QC with a way to communicate between servers, or with client server browsers. Sender is the sender's ip. Body is the body of the message. You'll need to add your own password/etc support as required. Self is not valid. */ +void(float pauseduration) SV_PausedTic; /* For each frame that the server is paused, this function will be called to give the gamecode a chance to unpause the server again. the pauseduration argument says how long the server has been paused for (the time global is frozen and will not increment while paused). Self is not valid. */ +float(float newstatus) SV_ShouldPause; /* Called to give the qc a change to block pause/unpause requests. Return false for the pause request to be ignored. newstatus is 1 if the user is trying to pause the game. For the duration of the call, self will be set to the player who tried to pause, or to world if it was triggered by a server-side event. */ +void() SV_RunClientCommand; /* Called each time a player movement packet was received from a client. Self is set to the player entity which should be updated, while the input_* globals specify the various properties stored within the input packet. The contents of this function should be somewaht identical to the equivelent function in CSQC, or prediction misses will occur. If you're feeling lazy, you can simply call 'runstandardplayerphysics' after modifying the inputs. */ +void() SV_AddDebugPolygons; /* Called each video frame. This is the only place where ssqc is allowed to call the R_BeginPolygon/R_PolygonVertex/R_EndPolygon builtins. This is exclusively for debugging, and will break in anything but single player as it will not be called if the engine is not running both a client and a server. */ +void() SV_PlayerPhysics; /* Compatibility method to tweak player input that does not reliably work with prediction (prediction WILL break). Mods that care about prediction should use SV_RunClientCommand instead. If pr_no_playerphysics is set to 1, this function will never be called, which will either fix prediction or completely break player movement depending on whether the feature was even useful. */ +void() EndFrame; /* Called after non-player entities have been run at the end of the physics frame. Player physics is performed out of order and can/will still occur between EndFrame and BeginFrame. */ +string(string addr, string uinfo, string features) SV_CheckRejectConnection; /* Called to give the mod a chance to ignore connection requests based upon client protocol support or other properties. Use infoget to read the uinfo and features arguments. */ +string(string uri, string method, string postdata, __in string requestheaders, __inout string responseheaders) Cef_GeneratePage; /* Provides an entrypoint to generate pages for the CEF plugin from within QC. Headers are +-separated key/value pairs (use tokenizebyseparator). */ +string(string uri, string method, string postdata, __in string requestheaders, __inout string responseheaders) HTTP_GeneratePage; /* Provides an entrypoint to generate pages for pages requested over http (sv_port_tcp+net_enable_http). Headers are +-separated key/value pairs (use tokenizebyseparator). Return __NULL__ to let the engine handle it, an empty string for a 404, and any other text for a regular 200 response. */ +void(float prevprogs) init; /* Part of FTE_MULTIPROGS. Called as soon as a progs is loaded, called at a time when entities are not valid. This is the only time when it is safe to call addprogs without field assignment. As it is also called as part of addprogs, this also gives you a chance to hook functions in modules that are already loaded (via externget+externget). */ +void() initents; /* Part of FTE_MULTIPROGS. Called after fields have been finalized. This is the first point at which it is safe to call spawn(), and is called before any entity fields have been parsed. You can use this entrypoint to send notifications to other modules. */ +float parm17, parm18, parm19, parm20, parm21, parm22, parm23, parm24, parm25, parm26, parm27, parm28, parm29, parm30, parm31, parm32; /* Additional spawn parms, following the same parmN theme. */ +float parm33, parm34, parm35, parm36, parm37, parm38, parm39, parm40, parm41, parm42, parm43, parm44, parm45, parm46, parm47, parm48; +float parm49, parm50, parm51, parm52, parm53, parm54, parm55, parm56, parm57, parm58, parm59, parm60, parm61, parm62, parm63, parm64; +string parm_string; /* Like the regular parmN globals, but preserves string contents. */ +string startspot; /* Receives the value of the second argument to changelevel from the previous map. */ +var float dimension_send; /* Used by multicast functionality. Multicasts (and related builtins that multicast internally) will only be sent to players where (player.dimension_see & dimension_send) is non-zero. */ +//var float dimension_default = 255; +/* Default dimension bitmask */ +__used var float physics_mode = 2; /* 0: original csqc - physics are not run +1: DP-compat. Thinks occur, but not true movetypes. +2: movetypes occur just as they do in ssqc. */ +#define TRUE 1 +#define FALSE 0 /* File not found... */ +#define M_PI 3.14159 +#define MOVETYPE_NONE 0 +#define MOVETYPE_WALK 3 +#define MOVETYPE_STEP 4 +#define MOVETYPE_FLY 5 +#define MOVETYPE_TOSS 6 +#define MOVETYPE_PUSH 7 +#define MOVETYPE_NOCLIP 8 +#define MOVETYPE_FLYMISSILE 9 +#define MOVETYPE_BOUNCE 10 +#define MOVETYPE_BOUNCEMISSILE 11 +#define MOVETYPE_FOLLOW 12 +#define MOVETYPE_6DOF 30 /* A glorified MOVETYPE_FLY. Players using this movetype will get some flightsim-like physics, with fully independant rotations (order-dependant transforms). */ +#define MOVETYPE_WALLWALK 31 /* Players using this movetype will be able to orient themselves to walls, and then run up them. */ +#define MOVETYPE_PHYSICS 32 /* Enable the use of ODE physics upon this entity. */ +#define SOLID_NOT 0 +#define SOLID_TRIGGER 1 +#define SOLID_BBOX 2 +#define SOLID_SLIDEBOX 3 +#define SOLID_BSP 4 /* Does not collide against other SOLID_BSP entities. Normally paired with MOVETYPE_PUSH. */ +#define SOLID_CORPSE 5 /* Non-solid to SOLID_SLIDEBOX or other SOLID_CORPSE entities. For hitscan weapons to hit corpses, change the player's .solid value to SOLID_BBOX or so, perform the traceline, then revert the player's .solid value. */ +#define SOLID_LADDER 20 /* Obsolete and may be removed at some point. Use skin=CONTENT_LADDER and solid_bsp or solid_trigger instead. */ +#define SOLID_PORTAL 21 /* CSG subtraction volume combined with entity transformations on impact. */ +#define SOLID_BSPTRIGGER 22 /* For complex-shaped trigger volumes, instead of being a pure aabb. */ +#define SOLID_PHYSICS_BOX 32 +#define SOLID_PHYSICS_SPHERE 33 +#define SOLID_PHYSICS_CAPSULE 34 +#define SOLID_PHYSICS_TRIMESH 35 +#define SOLID_PHYSICS_CYLINDER 36 +#define GEOMTYPE_NONE -1 +#define GEOMTYPE_SOLID 0 +#define GEOMTYPE_BOX 1 +#define GEOMTYPE_SPHERE 2 +#define GEOMTYPE_CAPSULE 3 +#define GEOMTYPE_TRIMESH 4 +#define GEOMTYPE_CYLINDER 5 +#define GEOMTYPE_CAPSULE_X 6 +#define GEOMTYPE_CAPSULE_Y 7 +#define GEOMTYPE_CAPSULE_Z 8 +#define GEOMTYPE_CYLINDER_X 9 +#define GEOMTYPE_CYLINDER_Y 10 +#define GEOMTYPE_CYLINDER_Z 11 +#define JOINTTYPE_FIXED -1 +#define JOINTTYPE_POINT 1 +#define JOINTTYPE_HINGE 2 +#define JOINTTYPE_SLIDER 3 +#define JOINTTYPE_UNIVERSAL 4 +#define JOINTTYPE_HINGE2 5 +#define DAMAGE_NO 0 +#define DAMAGE_YES 1 +#define DAMAGE_AIM 2 +#define CONTENT_EMPTY -1 +#define CONTENT_SOLID -2 +#define CONTENT_WATER -3 +#define CONTENT_SLIME -4 +#define CONTENT_LAVA -5 +#define CONTENT_SKY -6 +#define CONTENT_LADDER -16 /* If this value is assigned to a solid_bsp's .skin field, the entity will become a ladder volume. */ +const int CONTENTBIT_NONE = 0x00000000i; +const int CONTENTBIT_SOLID = 0x00000001i; +const int CONTENTBIT_LAVA = 0x00000008i; +const int CONTENTBIT_SLIME = 0x00000010i; +const int CONTENTBIT_WATER = 0x00000020i; +const int CONTENTBIT_FTELADDER = 0x00004000i; +const int CONTENTBIT_PLAYERCLIP = 0x00010000i; +const int CONTENTBIT_MONSTERCLIP = 0x00020000i; +const int CONTENTBIT_BODY = 0x02000000i; +const int CONTENTBIT_CORPSE = 0x04000000i; +const int CONTENTBIT_Q2LADDER = 0x20000000i; /* Content bit specific to q2bsp */ +const int CONTENTBIT_SKY = 0x80000000i; /* Content bit somewhat specific to q1bsp (aliases to NODROP in q3bsp), but you should probably check surfaceflags&SURF_SKY as well for q2+q3bsp too. */ +const int CONTENTBITS_POINTSOLID = CONTENTBIT_SOLID|0x00000002i|CONTENTBIT_BODY; /* Bits that traceline would normally consider solid */ +const int CONTENTBITS_BOXSOLID = CONTENTBIT_SOLID|0x00000002i|CONTENTBIT_BODY|CONTENTBIT_PLAYERCLIP; /* Bits that tracebox would normally consider solid */ +const int CONTENTBITS_FLUID = CONTENTBIT_WATER|CONTENTBIT_SLIME|CONTENTBIT_LAVA|CONTENTBIT_SKY; +#define SPA_POSITION 0 /* These SPA_* constants are to specify which attribute is returned by the getsurfacepointattribute builtin */ +#define SPA_S_AXIS 1 +#define SPA_T_AXIS 2 +#define SPA_R_AXIS 3 /* aka: SPA_NORMAL */ +#define SPA_TEXCOORDS0 4 +#define SPA_LIGHTMAP0_TEXCOORDS 5 +#define SPA_LIGHTMAP0_COLOR 6 +#define CHAN_AUTO 0 /* The automatic channel, play as many sounds on this channel as you want, and they'll all play, however the other channels will replace each other. */ +#define CHAN_WEAPON 1 +#define CHAN_VOICE 2 +#define CHAN_ITEM 3 +#define CHAN_BODY 4 +#define CHANF_RELIABLE 8 /* Only valid if the flags argument is not specified. The sound will be sent reliably, which is important if it is intended to replace looping sounds on doors etc. */ +#define SOUNDFLAG_RELIABLE 1 /* The sound will be sent reliably, and without regard to phs. */ +#define SOUNDFLAG_FORCELOOP 2 /* The sound will restart once it reaches the end of the sample. */ +#define SOUNDFLAG_NOREVERB 32 /* Disables the use of underwater/reverb effects on this sound effect. */ +#define SOUNDFLAG_FOLLOW 64 /* The sound's origin will updated to follow the emitting entity. */ +#define SOUNDFLAG_UNICAST 256 /* The sound will be sent only by the player specified by msg_entity. Spectators and related splitscreen players will also hear the sound. */ +#define SOUNDFLAG_SENDVELOCITY 512 /* The entity's current velocity will be sent to the client, only useful if doppler is enabled. */ +#define ATTN_NONE 0 /* Sounds with this attenuation can be heard throughout the map */ +#define ATTN_NORM 1 /* Standard attenuation */ +#define ATTN_IDLE 2 /* Extra attenuation so that sounds don't travel too far. */ +#define ATTN_STATIC 3 /* Even more attenuation to avoid torches drowing out everything else throughout the map. */ +#define SVC_CGAMEPACKET 83 /* Direct ssqc->csqc message. Must only be multicast. The data triggers a CSQC_Parse_Event call in the csqc for the csqc to read the contents. The server *may* insert length information for clients connected via proxies which are not able to cope with custom csqc payloads. This should only ever be used in conjunction with the MSG_MULTICAST destination. */ +#define MSG_BROADCAST 0 /* The byte(s) will be unreliably sent to all players. MSG_ constants are valid arguments to the Write* builtin family. */ +#define MSG_ONE 1 /* The byte(s) will be reliably sent to the player specified in the msg_entity global. WARNING: in quakeworld servers without network preparsing enabled, this can result in illegible server messages (due to individual reliable messages being split between multiple backbuffers/packets). NQ has larger reliable buffers which avoids this issue, but still kicks the client. */ +#define MSG_ALL 2 /* The byte(s) will be reliably sent to all players. */ +#define MSG_INIT 3 /* The byte(s) will be written into the signon buffer. Clients will see these messages when they connect later. This buffer is only flushed on map changes, so spamming it _WILL_ result in overflows. */ +#define MSG_MULTICAST 4 /* The byte(s) will be written into the multicast buffer for more selective sending. Messages sent this way will never be split across packets, and using this for csqc-only messages will not break protocol translation. */ +#define MSG_ENTITY 5 /* The byte(s) will be written into the entity buffer. This is a special value used only inside 'SendEntity' functions. */ +#define MULTICAST_ALL 0 /* The multicast message is unreliably sent to all players. MULTICAST_ constants are valid arguments for the multicast builtin, which ignores the specified origin when given this constant. */ +#define MULTICAST_PHS 1 /* The multicast message is unreliably sent to only players that can potentially hear the specified origin. Its quite loose. */ +#define MULTICAST_PVS 2 /* The multicast message is unreliably sent to only players that can potentially see the specified origin. */ +#define MULTICAST_ONE 6 /* The multicast message is unreliably sent to the player (AND ALL TRACKING SPECTATORS) specified in the msg_entity global. The specified origin is ignored. */ +#define MULTICAST_ONE_NOSPECS 9 /* The multicast message is unreliably sent to the player specified in the msg_entity global. The specified origin is ignored. */ +#define MULTICAST_ALL_R 3 /* The multicast message is reliably sent to all players. The specified origin is ignored. */ +#define MULTICAST_PHS_R 4 /* The multicast message is reliably sent to only players that can potentially hear the specified origin. Players might still not receive it if they are out of range. */ +#define MULTICAST_PVS_R 5 /* The multicast message is reliably sent to only players that can potentially see the specified origin. Players might still not receive it if they cannot see the event. */ +#define MULTICAST_ONE_R 7 /* The multicast message is reliably sent to the player (AND ALL TRACKING SPECTATORS) specified in the msg_entity global. The specified origin is ignored */ +#define MULTICAST_ONE_R_NOSPECS 10 /* The multicast message is reliably sent to the player specified in the msg_entity global. The specified origin is ignored */ +#define PRINT_LOW 0 +#define PRINT_MEDIUM 1 +#define PRINT_HIGH 2 +#define PRINT_CHAT 3 +#define PVSF_NORMALPVS 0 /* Filter first by PVS, then filter this entity using tracelines if sv_cullentities is enabled. */ +#define PVSF_NOTRACECHECK 1 /* Filter strictly by PVS. */ +#define PVSF_USEPHS 2 /* Send if we're close enough to be able to hear this entity. */ +#define PVSF_IGNOREPVS 3 /* Ignores pvs. This entity is visible whereever you are on the map. Updates will be sent regardless of pvs or phs */ +#define PVSF_NOREMOVE 128 /* Once visible to a client, this entity will remain visible. This can be useful for csqc and corpses. While this flag is set, no CSQC_Remove events will be sent for the entity, but this does NOT mean that it will still receive further updates while outside of the pvs. */ +#define INFOKEY_P_IP "ip" /* The apparent ip address of the client. This may be a proxy's ip address. */ +#define INFOKEY_P_REALIP "realip" /* If sv_getrealip is set, this gives the ip as determine using that algorithm. */ +#define INFOKEY_P_CSQCACTIVE "csqcactive" /* Client has csqc enabled. CSQC ents etc will be sent to this player. */ +#define INFOKEY_P_SVPING "svping" +#define INFOKEY_P_GUID "guid" /* Some hash string which should be reasonably unique to this player's quake installation. */ +#define INFOKEY_P_CHALLENGE "challenge" +#define INFOKEY_P_USERID "*userid" +#define INFOKEY_P_DOWNLOADPCT "download" /* The client's download percentage for the current file. Additional files are not known. */ +#define INFOKEY_P_TRUSTLEVEL "trustlevel" +#define INFOKEY_P_PROTOCOL "protocol" /* The network protocol the client is using to connect to the server. */ +#define INFOKEY_P_VIP "*VIP" /* 1 if the player has the VIP 'penalty'. */ +#define INFOKEY_P_ISMUTED "*ismuted" /* 1 if the player has the 'mute' penalty and is not allowed to use the say/say_team commands. */ +#define INFOKEY_P_ISDEAF "*isdeaf" /* 1 if the player has the 'deaf' penalty and cannot see other people's say/say_team commands. */ +#define INFOKEY_P_ISCRIPPLED "*ismuted" /* 1 if the player has the cripple penalty, and their movement values are ignored (.movement is locked to 0). */ +#define INFOKEY_P_ISCUFFED "*ismuted" /* 1 if the player has the cuff penalty, and is unable to attack or use impulses(.button0 and .impulse fields are locked to 0). */ +#define INFOKEY_P_ISLAGGED "*ismuted" /* 1 if the player has the fakelag penalty and has an extra 200ms of lag. */ +#define INFOKEY_P_PING "ping" /* The player's ping time, in milliseconds. */ +#define INFOKEY_P_NAME "name" /* The player's name. */ +#define INFOKEY_P_SPECTATOR "*spectator" /* Whether the player is a spectator or not. */ +#define INFOKEY_P_TOPCOLOR "topcolor" /* The player's upper/shirt colour (palette index). */ +#define INFOKEY_P_BOTTOMCOLOR "bottomcolor" /* The player's lower/pants/trouser colour (palette index). */ +#define STUFFCMD_IGNOREINDEMO 1 /* This stuffcmd will NOT be written to mvds/qtv. */ +#define STUFFCMD_DEMOONLY 2 /* This stuffcmd will ONLY be written into mvds/qtv streams. */ +#define STUFFCMD_BROADCAST 4 /* The stuffcmd will be broadcast server-wide (according to the mvd filters). */ +#define STUFFCMD_UNRELIABLE 8 /* The stuffcmd might not arrive. It might also get there faster than ones sent over the reliable channel. */ +#define FL_FLY 1 +#define FL_SWIM 2 +#define FL_CLIENT 8 +#define FL_INWATER 16 +#define FL_MONSTER 32 +#define FL_GODMODE 64 +#define FL_NOTARGET 128 +#define FL_ITEM 256 +#define FL_ONGROUND 512 +#define FL_PARTIALGROUND 1024 +#define FL_WATERJUMP 2048 +#define FL_FINDABLE_NONSOLID 16384 /* Allows this entity to be found with findradius */ +#define FL_LAGGEDMOVE 65536 /* Enables anti-lag on rockets etc. */ +#define MOVE_NORMAL 0 +#define MOVE_NOMONSTERS 1 /* The trace will ignore all non-solid_bsp entities. */ +#define MOVE_MISSILE 2 /* The trace will use a bbox size of +/- 15 against entities with FL_MONSTER set. */ +#define MOVE_HITMODEL 4 /* Traces will impact the actual mesh of the model instead of merely their bounding box. Should generally only be used for tracelines. Note that this flag is unreliable as an object can animate through projectiles. The bounding box MUST be set to completely encompass the entity or those extra areas will be non-solid (leaving a hole for things to go through). */ +#define MOVE_TRIGGERS 16 /* This trace type will impact only triggers. It will ignore non-solid entities. */ +#define MOVE_EVERYTHING 32 /* This type of trace will hit solids and triggers alike. Even non-solid entities. */ +#define MOVE_LAGGED 64 /* Will use antilag based upon the player's latency. Traces will be performed against old positions for entities instead of their current origin. */ +#define MOVE_ENTCHAIN 128 /* Returns a list of entities impacted via the trace_ent.chain field */ +#define MOVE_OTHERONLY 256 /* Traces that use this trace type will collide against *only* the entity specified via the 'other' global, and will ignore all owner/solid_not/dimension etc rules, they will still adhere to contents and bsp/bbox rules though. */ +#define RESTYPE_MODEL 0 /* RESTYPE_* constants are used as arguments with the resourcestatus builtin. */ +#define RESTYPE_SOUND 1 /* precache_sound */ +#define RESTYPE_PARTICLE 2 /* particleeffectnum */ +#define RESSTATE_NOTKNOWN 0 /* RESSTATE_* constants are return values from the resourcestatus builtin. The engine doesn't know about the resource if it is in this state. This means you will need to precache it. Attempting to use it anyway may result in warnings, errors, or silently succeed, depending on engine version and resource type. */ +#define RESSTATE_NOTLOADED 1 /* The resource was precached, but has been flushed and there has not been an attempt to reload it. If you use the resource normally, chances are it'll be loaded but at the cost of a stall. */ +#define RESSTATE_LOADING 2 /* Resources in this this state are queued for loading, and will be loaded at the engine's convienience. If you attempt to query the resource now, the engine will stall until the result is available. sounds in this state may be delayed, while models/pics/shaders may be invisible. */ +#define RESSTATE_FAILED 3 /* Resources in this state are unusable/could not be loaded. You will get placeholders or dummy results. Queries will not stall the engine. The engine may display placeholder content. */ +#define RESSTATE_LOADED 4 /* Resources in this state are finally usable, everything will work okay. Hurrah. Queries will not stall the engine. */ +#define EF_BRIGHTFIELD 1 +#define EF_BRIGHTLIGHT 4 +#define EF_DIMLIGHT 8 +#define EF_FLAG1 16 +#define EF_FLAG2 32 +#define EF_ADDITIVE 32 /* The entity will be drawn with an additive blend. This is NOT supported on players in any quakeworld engine. */ +#define EF_BLUE 64 /* A blue glow */ +#define EF_RED 128 /* A red glow */ +#define EF_GREEN 262144 /* A green glow */ +#define EF_FULLBRIGHT 512 /* This entity will ignore lighting */ +#define EF_NOSHADOW 4096 /* This entity will not cast shadows */ +#define EF_NODEPTHTEST 8192 /* This entity will be drawn over the top of other things that are closer. */ +#define EF_NOMODELFLAGS 8388608 /* Surpresses the normal flags specified in the model. */ +#define MF_ROCKET 1 +#define MF_GRENADE 2 +#define MF_GIB 4 /* Regular blood trail */ +#define MF_ROTATE 8 +#define MF_TRACER 16 /* AKA: green scrag trail */ +#define MF_ZOMGIB 32 /* Dark blood trail */ +#define MF_TRACER2 64 /* AKA: hellknight projectile trail */ +#define MF_TRACER3 128 /* AKA: purple vore trail */ +#define SL_ORG_TL 20 /* Used with showpic etc, specifies that the x+y values are relative to the top-left of the screen */ +#define SL_ORG_TR 21 +#define SL_ORG_BL 22 +#define SL_ORG_BR 23 +#define SL_ORG_MM 24 +#define SL_ORG_TM 25 +#define SL_ORG_BM 26 +#define SL_ORG_ML 27 +#define SL_ORG_MR 28 +#define PFLAGS_NOSHADOW 1 /* Associated RT lights attached will not cast shadows, making them significantly faster to draw. */ +#define PFLAGS_CORONA 2 /* Enables support of coronas on the associated rtlights. */ +#define PFLAGS_FULLDYNAMIC 128 /* When set in self.pflags, enables fully-customised dynamic lights. Custom rtlight information is not otherwise used. */ +#define EV_STRING 1 +#define EV_FLOAT 2 +#define EV_VECTOR 3 +#define EV_ENTITY 4 +#define EV_FIELD 5 +#define EV_FUNCTION 6 +#define EV_POINTER 7 +#define EV_INTEGER 8 +#define EV_VARIANT 9 +hashtable gamestate; /* Special hash table index for hash_add and hash_get. Entries in this table will persist over map changes (and doesn't need to be created/deleted). */ +#define HASH_REPLACE 256 /* Used with hash_add. Attempts to remove the old value instead of adding two values for a single key. */ +#define HASH_ADD 512 /* Used with hash_add. The new entry will be inserted in addition to the existing entry. */ +#define STAT_USER 32 /* Custom user stats start here (lower values are reserved for engine use). */ +#define CLIENTTYPE_DISCONNECTED 0 /* Return value from clienttype() builtin. This entity is a player slot that is currently empty. */ +#define CLIENTTYPE_REAL 1 /* This is a real player, and not a bot. */ +#define CLIENTTYPE_BOT 2 /* This player slot does not correlate to a real player, any messages sent to this client will be ignored. */ +#define CLIENTTYPE_NOTACLIENT 3 /* This entity is not even a player slot. This is typically an error condition. */ +#define FILE_READ 0 /* The file may be read via fgets to read a single line at a time. */ +#define FILE_APPEND 1 /* Like FILE_WRITE, but writing starts at the end of the file. */ +#define FILE_WRITE 2 /* fputs will be used to write to the file. */ +#define FILE_READNL 4 /* Like FILE_READ, except newlines are not special. fgets reads the entire file into a tempstring. */ +#define FILE_MMAP_READ 5 /* The file will be loaded into memory. fgets returns a pointer to the first byte (and will always return the same value for this file). Cast this to your datatype. */ +#define FILE_MMAP_RW 6 /* Like FILE_MMAP_READ, except any changes to the data will be written back to disk once the file is closed. */ +void(vector vang) makevectors = #1; /* + Takes an angle vector (pitch,yaw,roll) (+x=DOWN). Writes its results into v_forward, v_right, v_up vectors. */ + +void(entity e, vector o) setorigin = #2; /* + Changes e's origin to be equal to o. Also relinks collision state (as well as setting absmin+absmax), which is required after changing .solid */ + +void(entity e, string m) setmodel = #3; /* + Looks up m in the model precache list, and sets both e.model and e.modelindex to match. BSP models will set e.mins and e.maxs accordingly, other models depend upon the value of sv_gameplayfix_setmodelrealbox - for compatibility you should always call setsize after all pickups or non-bsp models. Also relinks collision state. */ + +void(entity e, vector min, vector max) setsize = #4; /* + Sets the e's mins and maxs fields. Also relinks collision state, which sets absmin and absmax too. */ + +void() breakpoint = #6; /* + Trigger a debugging event. FTE will break into the qc debugger. Other engines may crash with a debug execption. */ + +float() random = #7; /* + Returns a random value between 0 and 1. Be warned, this builtin can return 1 in most engines, which can break arrays. */ + +void(entity e, float chan, string samp, float vol, float atten, optional float speedpct, optional float flags, optional float timeofs) sound = #8; /* + Starts a sound centered upon the given entity. + chan is the entity sound channel to use, channel 0 will allow you to mix many samples at once, others will replace the old sample + 'samp' must have been precached first + if specified, 'speedpct' should normally be around 100 (or =0), 200 for double speed or 50 for half speed. + If flags is specified, the reliable flag in the channels argument is used for additional channels. Flags should be made from SOUNDFLAG_* constants + timeofs should be negative in order to provide a delay before the sound actually starts. */ + +vector(vector v) normalize = #9; /* + Shorten or lengthen a direction vector such that it is only one quake unit long. */ + +void(string e) error = #10; /* + Ends the game with an easily readable error message. */ + +void(string e) objerror = #11; /* + Displays a non-fatal easily readable error message concerning the self entity, including a field dump. self will be removed! */ + +float(vector v) vlen = #12; /* + Returns the square root of the dotproduct of a vector with itself. Or in other words the length of a distance vector, in quake units. */ + +float(vector v, optional entity reference) vectoyaw = #13; /* + Given a direction vector, returns the yaw angle in which that direction vector points. If an entity is passed, the yaw angle will be relative to that entity's gravity direction. */ + +entity() spawn = #14; /* + Adds a brand new entity into the world! Hurrah, you're now a parent! */ + +void(entity e) remove = #15; /* + Destroys the given entity and clears some limited fields (including model, modelindex, solid, classname). Any references to the entity following the call are an error. After half a second the entity will be reused, in the interim you can unfortunatly still read its fields to see if the reference is no longer valid. */ + +void(entity e) removeinstant = #0:removeinstant; /* + Same thing as the regular remove builtin, but bypasses the half-second rule. The entity slot may be reused instantly. Be CERTAIN that you have no lingering references, because if they're followed they will end up poking an entirely different type of entity! So only use this where you're sure its safe. */ + +void(vector v1, vector v2, float flags, entity ent) traceline = #16; /* + Traces a thin line through the world from v1 towards v2. + Will not collide with ent, ent.owner, or any entity who's owner field refers to ent. + The passed entity will also be used to determine whether to use a capsule trace, the contents that the trace should impact, and a couple of other extra fields that define the trace. + There are no side effects beyond the trace_* globals being written. + flags&MOVE_NOMONSTERS will not impact on non-bsp entities. + flags&MOVE_MISSILE will impact with increased size. + flags&MOVE_HITMODEL will impact upon model meshes, instead of their bounding boxes. + flags&MOVE_TRIGGERS will also stop on triggers + flags&MOVE_EVERYTHING will stop if it hits anything, even non-solid entities. + flags&MOVE_LAGGED will backdate entity positions for the purposes of this builtin according to the indicated player ent's latency, to provide lag compensation. */ + +entity() checkclient = #17; /* + Returns one of the player entities. The returned player will change periodically. */ + +entity(entity start, .string fld, string match) find = #18; /* + Scan for the next entity with a given field set to the given 'match' value. start should be either world, or the previous entity that was found. Returns world on failure/if there are no more. + If you have many many entities then you may find that hashtables will give more performance (but requires extra upkeep). */ + +string(string s) precache_sound = #19; /* + Precaches a sound, making it known to clients and loading it from disk. This builtin (strongly) should be called during spawn functions. This builtin must be called for the sound before the sound builtin is called, or it might not even be heard. */ + +string(string s) precache_model = #20; /* + Precaches a model, making it known to clients and loading it from disk if it has a .bsp extension. This builtin (strongly) should be called during spawn functions. This must be called for each model name before setmodel may use that model name. + Modelindicies precached in SSQC will always be positive. CSQC precaches will be negative if they are not also on the server. */ + +void(entity client, string s) stuffcmd = #21; /* + Sends a console command (or cvar) to the client, where it will be executed. Different clients support different commands. Do NOT forget the final \n. + This builtin is generally considered evil. */ + +void(entity client, float flags, string s) stuffcmdflags = #0:stuffcmdflags; /* Part of FTE_QC_STUFFCMDFLAGS + Sends a console command (or cvar) to the client, where it will be executed. Different clients support different commands. Do NOT forget the final \n. + This (just as evil) variant allows specifying some flags too. See the STUFFCMD_* constants. */ + +entity(vector org, float rad, optional .entity chainfield) findradius = #22; /* + Finds all entities within a distance of the 'org' specified. One entity is returned directly, while other entities are returned via that entity's .chain field. */ + +void(float msglvl, string s, optional string s2, optional string s3, optional string s4, optional string s5, optional string s6, optional string s7) bprint = #23; /* + QW: Concatenates all string arguments, and prints the messsage on the console of only all clients who's 'msg' infokey is set lower or equal to the supplied 'msglvl' argument. */ + +void(entity client, float msglvl, string s, optional string s2, optional string s3, optional string s4, optional string s5, optional string s6) sprint = #24; /* + QW: Concatenates all string arguments, and prints the messsage on the named client's console, but only if that client's 'msg' infokey is set lower or equal to the supplied 'msglvl' argument. */ + +void(string s, ...) dprint = #25; /* + QW: Unconditionally prints the given message on the server's console. Arguments will be concatenated into a single message. */ + +string(float val) ftos = #26; /* + Returns a tempstring containing a representation of the given float. Precision depends upon engine. */ + +string(vector val) vtos = #27; /* + Returns a tempstring containing a representation of the given vector. Precision depends upon engine. */ + +void() coredump = #28; /* + Writes out a coredump. This contains stack, globals, and field info for all ents. This can be handy for debugging. */ + +void() traceon = #29; /* + Enables tracing. This may be spammy, slow, and stuff. Set debugger 1 in order to use fte's qc debugger. */ + +void() traceoff = #30; /* + Disables tracing again. */ + +void(entity e) eprint = #31; /* + Debugging builtin that prints all fields of the given entity to the console. */ + +float(float yaw, float dist, optional float settraceglobals) walkmove = #32; /* + Attempt to walk the entity at a given angle for a given distance. + if settraceglobals is set, the trace_* globals will be set, showing the results of the movement. + This function will trigger touch events. */ + +float() droptofloor = #34; /* + Instantly moves the entity downwards until it hits the ground. If the entity is in solid or would need to drop more than 'pr_droptofloorunits' quake units, its position will be considered invalid and the builtin will abort, returning FALSE, otherwise TRUE. */ + +void(float lightstyle, string stylestring, optional vector rgb) lightstyle = #35; /* + Specifies an auto-animating string that specifies the light intensity for entities using that lightstyle. + a is off, z is fully lit. Should be lower case only. + rgb will recolour all lights using that lightstyle. */ + +float(float) rint = #36; /* + Rounds the given float up or down to the closest integeral value. X.5 rounds away from 0 */ + +float(float) floor = #37; /* + Rounds the given float downwards, even when negative. */ + +float(float) ceil = #38; /* + Rounds the given float upwards, even when negative. */ + +float(entity ent) checkbottom = #40; /* + Expensive checks to ensure that the entity is actually sitting on something solid, returns true if it is. */ + +float(vector pos) pointcontents = #41; /* + Checks the given point to see what is there. Returns one of the SOLID_* constants. Just because a spot is empty does not mean that the player can stand there due to the size of the player - use tracebox for such tests. */ + +float(float) fabs = #43; /* + Removes the sign of the float, making it positive if it is negative. */ + +vector(entity player, float missilespeed) aim = #44; /* + Returns a tweaked copy of the v_forward vector (must be set! ie: makevectors(player.v_angle) ). This is important for keyboard users (that don't want to have to look up/down the whole time), as well as joystick users (who's aim is otherwise annoyingly imprecise). Only the upwards component of the result will differ from the value of v_forward. The builtin will select the enemy closest to the crosshair within the angle of acos(sv_aim). */ + +float(string) cvar = #45; /* + Returns the numeric value of the named cvar */ + +void(string, ...) localcmd = #46; /* + Adds the string to the console command queue. Commands will not be executed immediately, but rather at the start of the following frame. */ + +entity(entity) nextent = #47; /* + Returns the following entity. Skips over removed entities. Returns world when passed the last valid entity. */ + +void(vector pos, vector dir, float colour, float count) particle = #48; /* + Spawn 'count' particles around 'pos' moving in the direction 'dir', with a palette colour index between 'colour' and 'colour+8'. */ + +#define ChangeYaw changeyaw +void() changeyaw = #49; /* + Changes the self.angles_y field towards self.ideal_yaw by up to self.yaw_speed. */ + +vector(vector fwd, optional vector up) vectoangles = #51; /* + Returns the angles (+x=UP) required to orient an entity to look in the given direction. The 'up' argument is required if you wish to set a roll angle, otherwise it will be limited to just monster-style turning. */ + +void(float to, float val) WriteByte = #52; /* + Writes a single byte into a network message buffer. Typically you will find a more correct alternative to writing arbitary data. 'to' should be one of the MSG_* constants. MSG_ONE must have msg_entity set first. */ + +void(float to, float val) WriteChar = #53; /* + Writes a signed value between -128 and 127. */ + +void(float to, float val) WriteShort = #54; /* + Writes a signed value between -32768 and 32767. As an exception, values up to 65535 will not trigger warnings (but readshort will read the result as negative!) */ + +void(float to, float val) WriteLong = #55; /* + Writes a signed 32bit integer. Note that the input argument being of float type limits the resulting integer to a mere 24 consecutive bits of validity. Use WriteInt if you want to write an entire 32bit int without data loss. */ + +void(float to, float val) WriteCoord = #56; /* + Writes a single value suitable for a map coordinate axis. The precision is not strictly specified but is assumed to be of at least 13.3 fixed-point precision (ie: +/-4k with 1/8th precision). */ + +void(float to, float val) WriteAngle = #57; /* + Writes a single value suitable for an angle axis. The precision is not strictly specified but is assumed to be 8bit, giving 256 notches instead of the assumed 360 range passed in. */ + +void(float to, string val) WriteString = #58; /* + Writes a variable-length null terminated string. There are length limits. The codepage is not translated, so be sure that client+server agree on whether utf-8 is being used or not (or just stick to ascii+markup). */ + +void(float to, entity val) WriteEntity = #59; /* + Writes the index of the specified entity (the network data size is not specified). This can be read clientside using the readentitynum builtin, with caveats. */ + +float(float angle) sin = #60; /* Part of DP_QC_SINCOSSQRTPOW + Forgive me father, for I have trigonometry homework. */ + +float(float angle) cos = #61; /* Part of DP_QC_SINCOSSQRTPOW*/ +float(float value) sqrt = #62; /* Part of DP_QC_SINCOSSQRTPOW*/ +float(float a, float n) modulo = #0:modulo; +void(entity ent) changepitch = #63; /* Part of DP_QC_CHANGEPITCH*/ +void(entity ent, entity ignore) tracetoss = #64; +string(entity ent) etos = #65; /* Part of DP_QC_ETOS*/ +void(float step) movetogoal = #67; /* + Runs lots and lots of fancy logic in order to try to step the entity the specified distance towards its goalentity. */ + +string(string s) precache_file = #68; /* + This builtin does nothing. It was used only as a hint for pak generation. */ + +void(entity e) makestatic = #69; /* + Sends a copy of the entity's renderable fields to all clients, and REMOVES the entity, preventing further changes. This means it will be unmutable and non-solid. */ + +void(string mapname, optional string newmapstartspot) changelevel = #70; /* + Attempts to change the map to the named map. If 'newmapstartspot' is specified, the state of the current map will be preserved, and the argument will be passed to the next map in the 'startspot' global, and the next map will be loaded from archived state if it was previously visited. If not specified, all archived map states will be purged. */ + +void(string cvarname, string valuetoset) cvar_set = #72; /* + Instantly sets a cvar to the given string value. Warning: the resulting string includes apostrophies surrounding the result. You may wish to use sprintf instead. */ + +void(entity ent, string text, optional string text2, optional string text3, optional string text4, optional string text5, optional string text6, optional string text7) centerprint = #73; +void (vector pos, string samp, float vol, float atten) ambientsound = #74; +string(string str) precache_model2 = #75; +string(string str) precache_sound2 = #76; +string(string str) precache_file2 = #77; +void(entity player) setspawnparms = #78; +void(entity killer, entity killee) logfrag = #79; /* Part of QW_ENGINE*/ +string(entity e, string key) infokey = #80; /* Part of FTE_QC_INFOKEY, QW_ENGINE + If e is world, returns the field 'key' from either the serverinfo or the localinfo. If e is a player, returns the value of 'key' from the player's userinfo string. There are a few special exceptions, like 'ip' which is not technically part of the userinfo. */ + +float(entity e, string key) infokeyf = #0:infokeyf; /* + Identical to regular infokey, except returns a float. */ + +float(string) stof = #81; /* Part of FRIK_FILE, FTE_QC_INFOKEY, FTE_STRINGS, QW_ENGINE, ZQ_QC_STRINGS*/ +#define unicast(pl,reli) do{msg_entity = pl; multicast('0 0 0', reli?MULITCAST_ONE_R:MULTICAST_ONE);}while(0) +void(vector where, float set) multicast = #82; /* Part of FTE_QC_MULTICAST + Once the MSG_MULTICAST network message buffer has been filled with data, this builtin is used to dispatch it to the given target, filtering by pvs for reduced network bandwidth. */ + +void(entity to, string str) redirectcmd = #101; /* Part of ??MVDSV_BUILTINS + Executes a single console command, and sends the text generated by it to the specified player. The command will be executed at the end of the frame once QC is no longer running - you may wish to pre/postfix it with 'echo'. */ + +string(float style, optional __out vector rgb) getlightstyle = #0:getlightstyle; /* + Obtains the light style string for the given style. */ + +vector(float style) getlightstylergb = #0:getlightstylergb; /* + Obtains the current rgb value of the specified light style. In csqc, this is correct with regard to the current frame, while ssqc gives no guarentees about time and ignores client cvars. Note: use getlight if you want the actual light value at a point. */ + +void(float style, float val, optional vector rgb) lightstylestatic = #5; /* + Sets the lightstyle to an explicit numerical level. From Hexen2. */ + +void(vector start, vector mins, vector maxs, vector end, float nomonsters, entity ent) tracebox = #90; /* Part of DP_QC_TRACEBOX + Exactly like traceline, but a box instead of a uselessly thin point. Acceptable sizes are limited by bsp format, q1bsp has strict acceptable size values. */ + +vector() randomvec = #91; /* Part of DP_QC_RANDOMVEC + Returns a vector with random values. Each axis is independantly a value between -1 and 1 inclusive. */ + +vector(vector org) getlight = #92; +float(string cvarname, string defaultvalue) registercvar = #93; /* Part of DP_REGISTERCVAR + Creates a new cvar on the fly. If it does not already exist, it will be given the specified value. If it does exist, this is a no-op. + This builtin has the limitation that it does not apply to configs or commandlines. Such configs will need to use the set or seta command causing this builtin to be a noop. + In engines that support it, you will generally find the autocvar feature easier and more efficient to use. */ + +float(float a, float b, ...) min = #94; /* Part of DP_QC_MINMAXBOUND + Returns the lowest value of its arguments. */ + +float(float a, float b, ...) max = #95; /* Part of DP_QC_MINMAXBOUND + Returns the highest value of its arguments. */ + +float(float minimum, float val, float maximum) bound = #96; /* Part of DP_QC_MINMAXBOUND + Returns val, unless minimum is higher, or maximum is less. */ + +float(float value, float exp) pow = #97; /* Part of DP_QC_SINCOSSQRTPOW*/ +float(float v, optional float base) logarithm = #0:logarithm; /* + Determines the logarithm of the input value according to the specified base. This can be used to calculate how much something was shifted by. */ + +#define findentity findfloat +entity(entity start, .__variant fld, __variant match) findfloat = #98; /* Part of DP_QC_FINDFLOAT + Equivelent to the find builtin, but instead of comparing strings contents, this builtin compares the raw values. This builtin requires multiple calls in order to scan all entities - set start to the previous call's return value. + world is returned when there are no more entities. */ + +float(string extname) checkextension = #99; /* + Checks for an extension by its name (eg: checkextension("FRIK_FILE") says that its okay to go ahead and use strcat). + Use cvar("pr_checkextension") to see if this builtin exists. */ + +float(__variant funcref) checkbuiltin = #0:checkbuiltin; /* + Checks to see if the specified builtin is supported/mapped. This is intended as a way to check for #0 functions, allowing for simple single-builtin functions. Warning, if two different engines map different builtins to the same number, then this function will not tell you which will be called, only that it won't crash (the exception being #0, which are remapped as available). */ + +float(string builtinname) builtin_find = #100; /* + Looks to see if the named builtin is valid, and returns the builtin number it exists at. */ + +float(float value) anglemod = #102; +void(string slot, string picname, float x, float y, float zone, optional entity player) showpic = #104; /* Part of TEI_SHOWLMP2*/ +void(string slot, optional entity player) hidepic = #105; /* Part of TEI_SHOWLMP2*/ +void(string slot, float x, float y, float zone, optional entity player) movepic = #106; /* Part of TEI_SHOWLMP2*/ +void(string slot, string picname, optional entity player) changepic = #107; /* Part of TEI_SHOWLMP2*/ +filestream(string filename, float mode, optional float mmapminsize) fopen = #110; /* Part of FRIK_FILE + Opens a file, typically prefixed with "data/", for either read or write access. */ + +void(filestream fhandle) fclose = #111; /* Part of FRIK_FILE*/ +string(filestream fhandle) fgets = #112; /* Part of FRIK_FILE + Reads a single line out of the file. The new line character is not returned as part of the string. Returns the null string on EOF (use if not(string) to easily test for this, which distinguishes it from the empty string which is returned if the line being read is blank */ + +void(filestream fhandle, string s, optional string s2, optional string s3, optional string s4, optional string s5, optional string s6, optional string s7) fputs = #113; /* Part of FRIK_FILE + Writes the given string(s) into the file. For compatibility with fgets, you should ensure that the string is terminated with a \n - this will not otherwise be done for you. It is up to the engine whether dos or unix line endings are actually written. */ + +int(filestream fhandle, void *ptr, int size) fread = #0:fread; /* Part of FTE_QC_FILE_BINARY + Reads binary data out of the file. Returns truncated lengths if the read exceeds the length of the file. */ + +int(filestream fhandle, void *ptr, int size) fwrite = #0:fwrite; /* Part of FTE_QC_FILE_BINARY + Writes binary data out of the file. */ + +#define ftell fseek //c compat +int(filestream fhandle, optional int newoffset) fseek = #0:fseek; /* Part of FTE_QC_FILE_BINARY + Changes the current position of the file, if specified. Returns prior position, in bytes. */ + +int(filestream fhandle, optional int newsize) fsize = #0:fsize; /* Part of FTE_QC_FILE_BINARY + Reports the total size of the file, in bytes. Can also be used to truncate/extend the file */ + +float(string s) strlen = #114; /* Part of FRIK_FILE, FTE_STRINGS, ZQ_QC_STRINGS*/ +string(string s1, optional string s2, optional string s3, optional string s4, optional string s5, optional string s6, optional string s7, optional string s8) strcat = #115; /* Part of FRIK_FILE, FTE_STRINGS, ZQ_QC_STRINGS*/ +string(string s, float start, float length) substring = #116; /* Part of FRIK_FILE, FTE_STRINGS, ZQ_QC_STRINGS*/ +vector(string s) stov = #117; /* Part of FRIK_FILE, FTE_STRINGS, ZQ_QC_STRINGS*/ +string(string s, ...) strzone = #118; /* Part of FRIK_FILE, FTE_STRINGS, ZQ_QC_STRINGS + Create a semi-permanent copy of a string that only becomes invalid once strunzone is called on the string (instead of when the engine assumes your string has left scope). This builtin has become redundant in FTEQW due to the FTE_QC_PERSISTENTTEMPSTRINGS extension and is now functionally identical to strcat for compatibility with old engines+mods. */ + +void(string s) strunzone = #119; /* Part of FRIK_FILE, FTE_STRINGS, ZQ_QC_STRINGS + Destroys a string that was allocated by strunzone. Further references to the string MAY crash the game. In FTE, this function became redundant and now does nothing. */ + +void(string cvar, float val) cvar_setf = #176; +void(string soundname, optional float channel, optional float volume) localsound = #177; /* + Plays a sound... locally... probably best not to call this from ssqc. Also disables reverb. */ + +float(string soundname, float queryonly) getsoundindex = #0:getsoundindex; /* + Provides a way to query if a sound is already precached or not. The return value can also be checked for <=255 to see if it'll work over any network protocol. The sound index can also be used for writebyte hacks, but this is discouraged - use SOUNDFLAG_UNICAST instead. */ + +float(string modelname, optional float queryonly) getmodelindex = #200; /* + Acts as an alternative to precache_model(foo);setmodel(bar, foo); return bar.modelindex; + If queryonly is set and the model was not previously precached, the builtin will return 0 without needlessly precaching the model. */ + +__variant(float prnum, string funcname, ...) externcall = #201; /* Part of FTE_MULTIPROGS + Directly call a function in a different/same progs by its name. + prnum=0 is the 'default' or 'main' progs. + prnum=-1 means current progs. + prnum=-2 will scan through the active progs and will use the first it finds. */ + +float(string progsname) addprogs = #202; /* Part of FTE_MULTIPROGS + Loads an additional .dat file into the current qcvm. The returned handle can be used with any of the externcall/externset/externvalue builtins. + There are cvars that allow progs to be loaded automatically. */ + +__variant(float prnum, string varname) externvalue = #203; /* Part of FTE_MULTIPROGS + Reads a global in the named progs by the name of that global. + prnum=0 is the 'default' or 'main' progs. + prnum=-1 means current progs. + prnum=-2 will scan through the active progs and will use the first it finds. */ + +void(float prnum, __variant newval, string varname) externset = #204; /* Part of FTE_MULTIPROGS + Sets a global in the named progs by name. + prnum=0 is the 'default' or 'main' progs. + prnum=-1 means current progs. + prnum=-2 will scan through the active progs and will use the first it finds. */ + +void(entity portal, float state) openportal = #207; /* + Opens or closes the portals associated with a door or some such on q2 or q3 maps. On Q2BSPs, the entity should be the 'func_areaportal' entity - its style field will say which portal to open. On Q3BSPs, the entity is the door itself, the portal will be determined by the two areas found from a preceding setorigin call. */ + +float(float attributes, string effectname, ...) RegisterTempEnt = #208; /* Part of FTE_PEXT_CUSTOMTENTS*/ +void(float type, vector pos, ...) CustomTempEnt = #209; /* Part of FTE_PEXT_CUSTOMTENTS*/ +float(optional float sleeptime) fork = #210; /* Part of FTE_MULTITHREADED + When called, this builtin simply returns. Twice. + The current 'thread' will return instantly with a return value of 0. The new 'thread' will return after sleeptime seconds with a return value of 1. See documentation for the 'sleep' builtin for limitations/requirements concerning the new thread. Note that QC should probably call abort in the new thread, as otherwise the function will return to the calling qc function twice also. */ + +void(optional __variant ret) abort = #211; /* Part of FTE_MULTITHREADED + QC execution is aborted. Parent QC functions on the stack will be skipped, effectively this forces all QC functions to 'return ret' until execution returns to the engine. If ret is ommited, it is assumed to be 0. */ + +void(float sleeptime) sleep = #212; /* Part of FTE_MULTITHREADED + Suspends the current QC execution thread for 'sleeptime' seconds. + Other QC functions can and will be executed in the interim, including changing globals and field state (but not simultaneously). + The self and other globals will be restored when the thread wakes up (or set to world if they were removed since the thread started sleeping). Locals will be preserved, but will not be protected from remove calls. + If the engine is expecting the QC to return a value (even in the parent/root function), the value 0 shall be used instead of waiting for the qc to resume. */ + +void(entity player, string key, string value) forceinfokey = #213; /* Part of FTE_FORCEINFOKEY + Directly changes a user's info without pinging off the client. Also allows explicitly setting * keys, including *spectator. Does not affect the user's config or other servers. */ + +void(entity player, string key, void *data, int size) forceinfokeyblob = #0:forceinfokeyblob; /* + Directly changes a user's info without pinging off the client. Also allows explicitly setting * keys, including *spectator. Does not affect the user's config or other servers. */ + +void(vector org, vector dmin, vector dmax, float colour, float effect, float count) particle2 = #215; /* Part of FTE_HEXEN2*/ +void(vector org, vector box, float colour, float effect, float count) particle3 = #216; /* Part of FTE_HEXEN2*/ +void(vector org, float radius, float colour, float effect, float count) particle4 = #217; /* Part of FTE_HEXEN2*/ +float(float number, float quantity) bitshift = #218; /* Part of EXT_BITSHIFT*/ +void(vector pos) te_lightningblood = #219; /* Part of FTE_TE_STANDARDEFFECTBUILTINS*/ +float(string s1, string sub, optional float startidx) strstrofs = #221; /* Part of FTE_STRINGS + Returns the 0-based offset of sub within the s1 string, or -1 if sub is not in s1. + If startidx is set, this builtin will ignore matches before that 0-based offset. */ + +float(string str, float index) str2chr = #222; /* Part of FTE_STRINGS + Retrieves the character value at offset 'index'. */ + +string(float chr, ...) chr2str = #223; /* Part of FTE_STRINGS + The input floats are considered character values, and are concatenated. */ + +string(float ccase, float redalpha, float redchars, string str, ...) strconv = #224; /* Part of FTE_STRINGS + Converts quake chars in the input string amongst different representations. + ccase specifies the new case for letters. + 0: not changed. + 1: forced to lower case. + 2: forced to upper case. + redalpha and redchars switch between colour ranges. + 0: no change. + 1: Forced white. + 2: Forced red. + 3: Forced gold(low) (numbers only). + 4: Forced gold (high) (numbers only). + 5+6: Forced to white and red alternately. + You should not use this builtin in combination with UTF-8. */ + +string(float pad, string str1, ...) strpad = #225; /* Part of FTE_STRINGS + Pads the string with spaces, to ensure its a specific length (so long as a fixed-width font is used, anyway). If pad is negative, the spaces are added on the left. If positive the padding is on the right. */ + +string(infostring old, string key, string value) infoadd = #226; /* Part of FTE_STRINGS + Returns a new tempstring infostring with the named value changed (or added if it was previously unspecified). Key and value may not contain the \ character. */ + +string(infostring info, string key) infoget = #227; /* Part of FTE_STRINGS + Reads a named value from an infostring. The returned value is a tempstring */ + +#define strcmp strncmp +float(string s1, string s2, optional float len, optional float s1ofs, optional float s2ofs) strncmp = #228; /* Part of FTE_STRINGS + Compares up to 'len' chars in the two strings. s1ofs allows you to treat s2 as a substring to compare against, or should be 0. + Returns 0 if the two strings are equal, a negative value if s1 appears numerically lower, and positive if s1 appears numerically higher. */ + +float(string s1, string s2) strcasecmp = #229; /* Part of FTE_STRINGS + Compares the two strings without case sensitivity. + Returns 0 if they are equal. The sign of the return value may be significant, but should not be depended upon. */ + +float(string s1, string s2, float len, optional float s1ofs, optional float s2ofs) strncasecmp = #230; /* Part of FTE_STRINGS + Compares up to 'len' chars in the two strings without case sensitivity. s1ofs allows you to treat s2 as a substring to compare against, or should be 0. + Returns 0 if they are equal. The sign of the return value may be significant, but should not be depended upon. */ + +string(string s) strtrim = #0:strtrim; /* + Trims the whitespace from the start+end of the string. */ + +void() calltimeofday = #231; /* Part of FTE_CALLTIMEOFDAY + Asks the engine to instantly call the qc's 'timeofday' function, before returning. For compatibility with mvdsv. + timeofday should have the prototype: void(float secs, float mins, float hour, float day, float mon, float year, string strvalue) + The strftime builtin is more versatile and less weird. */ + +void(float num, float type, .__variant fld) clientstat = #232; /* + Specifies what data to use in order to send various stats, in a client-specific way. + 'num' should be a value between 32 and 127, other values are reserved. + 'type' must be set to one of the EV_* constants, one of EV_FLOAT, EV_STRING, EV_INTEGER, EV_ENTITY. + fld must be a reference to the field used, each player will be sent only their own copy of these fields. */ + +void(float num, float type, string name) globalstat = #233; /* + Specifies what data to use in order to send various stats, in a non-client-specific way. num and type are as in clientstat, name however, is the name of the global to read in the form of a string (pass "foo"). */ + +void(float num, float type, __variant *address) pointerstat = #0:pointerstat; /* + Specifies what data to use in order to send various stats, in a non-client-specific way. num and type are as in clientstat, address however, is the address of the variable you would like to use (pass &foo). */ + +float(entity player) isbackbuffered = #234; /* Part of FTE_ISBACKBUFFERED + Returns if the given player's network buffer will take multiple network frames in order to clear. If this builtin returns non-zero, you should delay or reduce the amount of reliable (and also unreliable) data that you are sending to that client. */ + +void(vector angle) rotatevectorsbyangle = #235; /* + rotates the v_forward,v_right,v_up matrix by the specified angles. */ + +void(vector fwd, vector right, vector up) rotatevectorsbyvectors = #236; +float(float mdlindex, string skinname) skinforname = #237; +void(vector org, optional float count) te_bloodqw = #239; /* Part of FTE_TE_STANDARDEFFECTBUILTINS*/ +void(entity ent) te_muzzleflash = #0:te_muzzleflash; +float(vector viewpos, entity entity) checkpvs = #240; /* Part of FTE_QC_CHECKPVS*/ +entity(string match, optional float matchnum) matchclientname = #241; /* Part of FTE_QC_MATCHCLIENTNAME*/ +float(string destaddress, string content) sendpacket = #242; /* Part of FTE_QC_SENDPACKET + Sends a UDP packet to the specified destination. Note that the payload will be prefixed with four 255 bytes as a sort of security feature. */ + +float(float dividend, float divisor) mod = #245; +float(optional string host, optional string user, optional string pass, optional string defaultdb, optional string driver) sqlconnect = #250; /* Part of FTE_SQL*/ +void(float serveridx) sqldisconnect = #251; /* Part of FTE_SQL*/ +float(float serveridx, void(float serveridx, float queryidx, float rows, float columns, float eof, float firstrow) callback, float querytype, string query) sqlopenquery = #252; /* Part of FTE_SQL*/ +void(float serveridx, float queryidx) sqlclosequery = #253; /* Part of FTE_SQL*/ +string(float serveridx, float queryidx, float row, float column) sqlreadfield = #254; /* Part of FTE_SQL*/ +string(float serveridx, optional float queryidx) sqlerror = #255; /* Part of FTE_SQL*/ +string(float serveridx, string data) sqlescape = #256; /* Part of FTE_SQL*/ +string(float serveridx) sqlversion = #257; /* Part of FTE_SQL*/ +float(float serveridx, float queryidx, float row, float column) sqlreadfloat = #258; /* Part of FTE_SQL*/ +int(float serveridx, float queryidx, float row, float column, __variant *ptr, int maxsize) sqlreadblob = #0:sqlreadblob; +string(float serveridx, __variant *ptr, int maxsize) sqlescapeblob = #0:sqlescapeblob; +int(string) stoi = #259; /* Part of FTE_QC_INTCONV + Converts the given string into a true integer. Base 8, 10, or 16 is determined based upon the format of the string. */ + +string(int) itos = #260; /* Part of FTE_QC_INTCONV + Converts the passed true integer into a base10 string. */ + +int(string) stoh = #261; /* Part of FTE_QC_INTCONV + Reads a base-16 string (with or without 0x prefix) as an integer. Bugs out if given a base 8 or base 10 string. :P */ + +string(int) htos = #262; /* Part of FTE_QC_INTCONV + Formats an integer as a base16 string, with leading 0s and no prefix. Always returns 8 characters. */ + +int(float) ftoi = #0:ftoi; /* Part of FTE_QC_INTCONV + Converts the given float into a true integer without depending on extended qcvm instructions. */ + +float(int) itof = #0:itof; /* Part of FTE_QC_INTCONV + Converts the given true integer into a float without depending on extended qcvm instructions. */ + +float(float modlindex, optional float useabstransforms) skel_create = #263; /* Part of FTE_CSQC_SKELETONOBJECTS + Allocates a new uninitiaised skeletal object, with enough bone info to animate the given model. + eg: self.skeletonobject = skel_create(self.modelindex); */ + +float(float skel, entity ent, float modelindex, float retainfrac, float firstbone, float lastbone, optional float addfrac) skel_build = #264; /* Part of FTE_CSQC_SKELETONOBJECTS + Animation data (according to the entity's frame info) is pulled from the specified model and blended into the specified skeletal object. + If retainfrac is set to 0 on the first call and 1 on the others, you can blend multiple animations together according to the addfrac value. The final weight should be 1. Other values will result in scaling and/or other weirdness. You can use firstbone and lastbone to update only part of the skeletal object, to allow legs to animate separately from torso, use 0 for both arguments to specify all, as bones are 1-based. */ + +typedef struct +{ + int sourcemodelindex; /*frame data will be imported from this model, bones must be compatible*/ + int reserved; + int firstbone; + int lastbone; + float prescale; /*0 destroys existing data, 1 retains it*/ + float scale[4]; /*you'll need to do lerpfrac manually*/ + int animation[4]; + float animationtime[4]; + /*halflife models*/ + float subblend[2]; + float controllers[5]; +} skelblend_t; +float(float skel, int numblends, skelblend_t *weights, int structsize) skel_build_ptr = #0:skel_build_ptr; /* + Like skel_build, but slightly simpler. */ + +float(float skel) skel_get_numbones = #265; /* Part of FTE_CSQC_SKELETONOBJECTS + Retrives the number of bones in the model. The valid range is 1<=bone<=numbones. */ + +string(float skel, float bonenum) skel_get_bonename = #266; /* Part of FTE_CSQC_SKELETONOBJECTS + Retrieves the name of the specified bone. Mostly only for debugging. */ + +float(float skel, float bonenum) skel_get_boneparent = #267; /* Part of FTE_CSQC_SKELETONOBJECTS + Retrieves which bone this bone's position is relative to. Bone 0 refers to the entity's position rather than an actual bone */ + +float(float skel, string tagname) skel_find_bone = #268; /* Part of FTE_CSQC_SKELETONOBJECTS + Finds a bone by its name, from the model that was used to create the skeletal object. */ + +vector(float skel, float bonenum) skel_get_bonerel = #269; /* Part of FTE_CSQC_SKELETONOBJECTS + Gets the bone position and orientation relative to the bone's parent. Return value is the offset, and v_forward, v_right, v_up contain the orientation. */ + +vector(float skel, float bonenum) skel_get_boneabs = #270; /* Part of FTE_CSQC_SKELETONOBJECTS + Gets the bone position and orientation relative to the entity. Return value is the offset, and v_forward, v_right, v_up contain the orientation. + Use gettaginfo for world coord+orientation. */ + +void(float skel, float bonenum, vector org, optional vector fwd, optional vector right, optional vector up) skel_set_bone = #271; /* Part of FTE_CSQC_SKELETONOBJECTS + Sets a bone position relative to its parent. If the orientation arguments are not specified, v_forward+v_right+v_up are used instead. */ + +void(float skel, float bonenum, vector org, optional vector fwd, optional vector right, optional vector up) skel_premul_bone = #272; /* Part of FTE_CSQC_SKELETONOBJECTS + Transforms a single bone by a matrix. You can use makevectors to generate a rotation matrix from an angle. */ + +void(float skel, float startbone, float endbone, vector org, optional vector fwd, optional vector right, optional vector up) skel_premul_bones = #273; /* Part of FTE_CSQC_SKELETONOBJECTS + Transforms an entire consecutive range of bones by a matrix. You can use makevectors to generate a rotation matrix from an angle, but you'll probably want to divide the angle by the number of bones. */ + +void(float skel, float bonenum, vector org, optional vector fwd, optional vector right, optional vector up) skel_postmul_bone = #0:skel_postmul_bone; /* + Transforms a single bone by a matrix. You can use makevectors to generate a rotation matrix from an angle. */ + +void(float skeldst, float skelsrc, float startbone, float entbone) skel_copybones = #274; /* Part of FTE_CSQC_SKELETONOBJECTS + Copy bone data from one skeleton directly into another. */ + +void(float skel) skel_delete = #275; /* Part of FTE_CSQC_SKELETONOBJECTS + Deletes a skeletal object. The actual delete is delayed, allowing the skeletal object to be deleted in an entity's predraw function yet still be valid by the time the addentity+renderscene builtins need it. Also uninstanciates any ragdoll currently in effect on the skeletal object. */ + +float(float modidx, string framename) frameforname = #276; /* Part of FTE_CSQC_SKELETONOBJECTS + Looks up a framegroup from a model by name, avoiding the need for hardcoding. Returns -1 on error. */ + +float(float modidx, float framenum) frameduration = #277; /* Part of FTE_CSQC_SKELETONOBJECTS + Retrieves the duration (in seconds) of the specified framegroup. */ + +void(float modidx, float framenum, __inout float basetime, float targettime, void(float timestamp, int code, string data) callback) processmodelevents = #0:processmodelevents; /* Part of FTE_GFX_MODELEVENTS + Calls a callback for each event that has been reached. Basetime is set to targettime. */ + +float(float modidx, float framenum, __inout float basetime, float targettime, __out int code, __out string data) getnextmodelevent = #0:getnextmodelevent; /* + Reports the next event within a model's animation. Returns a boolean if an event was found between basetime and targettime. Writes to basetime,code,data arguments (if an event was found, basetime is set to the event's time, otherwise to targettime). + WARNING: this builtin cannot deal with multiple events with the same timestamp (only the first will be reported). */ + +float(float modidx, float framenum, int eventidx, __out float timestamp, __out int code, __out string data) getmodeleventidx = #0:getmodeleventidx; /* + Reports an indexed event within a model's animation. Writes to timestamp,code,data arguments on success. Returns false if the animation/event/model was out of range/invalid. Does not consider looping animations (retry from index 0 if it fails and you know that its a looping animation). This builtin is more annoying to use than getnextmodelevent, but can be made to deal with multiple events with the exact same timestamp. */ + +#define dotproduct(v1,v2) ((vector)(v1)*(vector)(v2)) +vector(vector v1, vector v2) crossproduct = #0:crossproduct; /* Part of FTE_QC_CROSSPRODUCT + Small helper function to calculate the crossproduct of two vectors. */ + +float(entity pusher, vector move, vector amove) pushmove = #0:pushmove; +__variant(float action, optional vector pos, optional float radius, optional float quant, ...) terrain_edit = #278; /* Part of FTE_TERRAIN_MAP + Realtime terrain editing. Actions are the TEREDIT_ constants. */ + +typedef struct +{ + string shadername; + vector planenormal; + float planedist; + vector sdir; + float sbias; + vector tdir; + float tbias; +} brushface_t; +int(float modelidx, int brushid, brushface_t *out_faces, int maxfaces, int *out_contents) brush_get = #0:brush_get; /* Part of FTE_RAW_MAP + Queries a brush's information. You must pre-allocate the face array for the builtin to write to. Return value is the number of faces retrieved, 0 on error. */ + +int(float modelidx, brushface_t *in_faces, int numfaces, int contents, optional int brushid) brush_create = #0:brush_create; /* Part of FTE_RAW_MAP + Inserts a new brush into the model. Return value is the new brush's id. */ + +void(float modelidx, int brushid) brush_delete = #0:brush_delete; /* Part of FTE_RAW_MAP + Destroys the specified brush. */ + +float(float modelid, int brushid, int faceid, float selectedstate) brush_selected = #0:brush_selected; /* Part of FTE_RAW_MAP + Allows you to easily set transient visual properties of a brush. returns old value. selectedstate=-1 changes nothing (called for its return value). */ + +int(float modelid, int brushid, int faceid, vector *points, int maxpoints) brush_getfacepoints = #0:brush_getfacepoints; /* Part of FTE_RAW_MAP + Returns the list of verticies surrounding the given face. If face is 0, returns the center of the brush (if space for 1 point) or the mins+maxs (if space for 2 points). */ + +int(int faceid, brushface_t *in_faces, int numfaces, vector *points, int maxpoints) brush_calcfacepoints = #0:brush_calcfacepoints; /* Part of FTE_RAW_MAP + Determines the points of the specified face, if the specified brush were to actually be created. */ + +int(float modelid, vector *planes, float *dists, int numplanes, int *out_brushes, int *out_faces, int maxresults) brush_findinvolume = #0:brush_findinvolume; /* Part of FTE_RAW_MAP + Allows you to easily obtain a list of brushes+faces within the given bounding region. If out_faces is not null, the same brush might be listed twice. */ + +typedef struct +{ + vector dest; + int linkflags; +} nodeslist_t; +void(entity ent, vector dest, int denylinkflags, void(entity ent, vector dest, int numnodes, nodeslist_t *nodelist) callback) route_calculate = #0:route_calculate; /* + Begin calculating a route. The callback function will be called once the route has finished being calculated. The route must be memfreed once it is no longer needed. The route must be followed in reverse order (ie: the first node that must be reached is at index numnodes-1). If no route is available then the callback will be called with no nodes. */ + +void(optional entity ent, optional vector neworigin) touchtriggers = #279; /* + Triggers a touch events between self and every SOLID_TRIGGER entity that it is in contact with. This should typically just be the triggers touch functions. Also optionally updates the origin of the moved entity. */ + +void(float buf, float fl) WriteFloat = #280; /* + Writes a full 32bit float without any data conversions at all, for full precision. */ + +void(float buf, int fl) WriteInt = #0:WriteInt; /* + Equivelent to WriteLong, but doesn't truncate to a float first before converting back to an int. */ + +float(entity skelent, string dollcmd, float animskel) skel_ragupdate = #281; /* + Updates the skeletal object attached to the entity according to its origin and other properties. + if animskel is non-zero, the ragdoll will animate towards the bone state in the animskel skeletal object, otherwise they will pick up the model's base pose which may not give nice results. + If dollcmd is not set, the ragdoll will update (this should be done each frame). + If the doll is updated without having a valid doll, the model's default .doll will be instanciated. + commands: + doll foo.doll : sets up the entity to use the named doll file + dollstring TEXT : uses the doll file directly embedded within qc, with that extra prefix. + cleardoll : uninstanciates the doll without destroying the skeletal object. + animate 0.5 : specifies the strength of the ragdoll as a whole + animatebody somebody 0.5 : specifies the strength of the ragdoll on a specific body (0 will disable ragdoll animations on that body). + enablejoint somejoint 1 : enables (or disables) a joint. Disabling joints will allow the doll to shatter. */ + +float*(float skel) skel_mmap = #282; /* + Map the bones in VM memory. They can then be accessed via pointers. Each bone is 12 floats, the four vectors interleaved (sadly). */ + +void(entity ent, float bonenum, vector org, optional vector angorfwd, optional vector right, optional vector up) skel_set_bone_world = #283; /* + Sets the world position of a bone within the given entity's attached skeletal object. The world position is dependant upon the owning entity's position. If no orientation argument is specified, v_forward+v_right+v_up are used for the orientation instead. If 1 is specified, it is understood as angles. If 3 are specified, they are the forawrd/right/up vectors to use. */ + +string(float modidx, float framenum) frametoname = #284; +string(float modidx, float skin) skintoname = #285; +float(float resourcetype, float tryload, string resourcename) resourcestatus = #286; /* + resourcetype must be one of the RESTYPE_ constants. Returns one of the RESSTATE_ constants. Tryload 0 is a query only. Tryload 1 will attempt to reload the content if it was flushed. */ + +hashtable(float tabsize, optional float defaulttype) hash_createtab = #287; /* Part of FTE_QC_HASHTABLES + Creates a hash table object. + The tabsize argument is a performance hint and should generally be set to something similar to the number of entries expected, typically a power of two assumption. Too high simply wastes memory, too low results in extra string compares but no actual bugs. + defaulttype must be one of the EV_* values, if specified. + The hash table with index 0 is a game-persistant table and will NEVER be returned by this builtin (except as an error return). */ + +void(hashtable table) hash_destroytab = #288; /* Part of FTE_QC_HASHTABLES + Destroys a hash table object. */ + +void(hashtable table, string name, __variant value, optional float typeandflags) hash_add = #289; /* Part of FTE_QC_HASHTABLES + Adds the given key with the given value to the table. + If flags&HASH_REPLACE, the old value will be removed, otherwise if flags&HASH_ADD then a duplicate entry will be added with a second value (can be obtained via hash_get's index argument). + The type argument describes how the value should be stored in saved games, as well as providing constraints with the hash_get function. While you can claim that all variables are just vectors, being more precise can result in less issues with tempstrings or saved games - be sure to be explicit with EV_STRING where appropriate because tempstrings may be reclaimed before the get (especially with saved games or table 0). */ + +__variant(hashtable table, string name, optional __variant deflt, optional float requiretype, optional float index) hash_get = #290; /* Part of FTE_QC_HASHTABLES + Looks up the specified key name in the hash table. Returns deflt if the key was not found. + If requiretype is specified then the function will only consider entries of the matching type (allowing you to store both flags+strings under a single name without getting confused). + If index is specified then the function will ignore the first N entries with the same key (applicable only with entries added using HASH_ADD, not HASH_REPLACE), allowing you to store multiple entries. Keep querying higher indexes starting from 0 until it returns the deflt value. + You will usually need to cast the result of this function to a real datatype. */ + +__variant(hashtable table, string name) hash_delete = #291; /* Part of FTE_QC_HASHTABLES + removes the named key. returns the value of the object that was destroyed, or 0 on error. */ + +string(hashtable table, float idx) hash_getkey = #292; /* Part of FTE_QC_HASHTABLES + gets some random key name. add+delete can change return values of this, so don't blindly increment the key index if you're removing all. */ + +float(string name) checkcommand = #294; /* Part of FTE_QC_CHECKCOMMAND + Checks to see if the supplied name is a valid command, cvar, or alias. Returns 0 if it does not exist. */ + +string(string s) argescape = #295; /* + Marks up a string so that it can be reliably tokenized as a single argument later. */ + +void(string dest, string from, string cmd, string info) clusterevent = #0:clusterevent; /* + Only functions in mapcluster mode. Sends an event to whichever server the named player is on. The destination server can then dispatch the event to the client or handle it itself via the SV_ParseClusterEvent entrypoint. If dest is empty, the event is broadcast to ALL servers. If the named player can't be found, the event will be returned to this server with the cmd prefixed with 'error:'. */ + +string(entity player, optional string newnode) clustertransfer = #0:clustertransfer; /* + Only functions in mapcluster mode. Initiate transfer of the player to a different node. Can take some time. If dest is specified, returns null on error. Otherwise returns the current/new target node (or null if not transferring). */ + +float(float mdlidx) modelframecount = #0:modelframecount; /* + Retrieves the number of frames in the specified model. */ + +void(string texturename, optional float flags, optional float is2d) R_BeginPolygon = #306; /* + Specifies the shader to use for the following polygons, along with optional flags. + If is2d, the polygon will be drawn as soon as the EndPolygon call is made, rather than waiting for renderscene. This allows complex 2d effects. */ + +void(vector org, vector texcoords, vector rgb, float alpha) R_PolygonVertex = #307; /* + Specifies a polygon vertex with its various properties. */ + +void() R_EndPolygon = #308; /* + Ends the current polygon. At least 3 verticies must have been specified. You do not need to call beginpolygon again if you wish to draw another polygon with the same shader. */ + +float(string effectname) particleeffectnum = #335; /* Part of DP_ENT_TRAILEFFECTNUM, FTE_SV_POINTPARTICLES + Precaches the named particle effect. If your effect name is of the form 'foo.bar' then particles/foo.cfg will be loaded by the client if foo.bar was not already defined. + Different engines will have different particle systems, this specifies the QC API only. */ + +void(float effectnum, entity ent, vector start, vector end) trailparticles = #336; /* Part of FTE_SV_POINTPARTICLES + Draws the given effect between the two named points. If ent is not world, distances will be cached in the entity in order to avoid framerate dependancies. The entity is not otherwise used. */ + +void(float effectnum, vector origin, optional vector dir, optional float count) pointparticles = #337; /* Part of FTE_SV_POINTPARTICLES + Spawn a load of particles from the given effect at the given point traveling or aiming along the direction specified. The number of particles are scaled by the count argument. + For regular particles, the dir vector is multiplied by the 'veladd' property (while orgadd will push the particles along it). Decals will use it as a hint to align to the correct surface. In both cases, it should normally be a unit vector, but other lengths will still work. If it has length 0 then FTE will assume downwards. */ + +void(string s, ...) print = #339; /* Part of DP_SV_PRINT + Unconditionally print on the local system's console, even in ssqc (doesn't care about the value of the developer cvar). */ + +void(entity ent) runstandardplayerphysics = #347; /* + Perform the engine's standard player movement prediction upon the given entity using the input_* globals to describe movement. */ + +int(string keyname, optional void *outptr, int size) getlocalinfo = #0:getlocalinfo; /* + Obtains a copy of a data blob (with spaces) from the server's private localinfo. Will write up to size bytes and return the actual size. Does not null terminate (but memalloc(ret+1) will, if you want to cast the buffer to a string), and the blob may contain embedded nulls. Ignores all special keys, returning only what is actually there. */ + +void(string keyname, optional void *outptr, int size) setlocalinfo = #0:setlocalinfo; /* + Changes the server's private localinfo. This data will be available for the following map, and will *usually* reload with saved games. */ + +float(entity ent) wasfreed = #353; /* + Quickly check to see if the entity is currently free. This function is only valid during the two-second non-reuse window, after that it may give bad results. Try one second to make it more robust. */ + +string(string key) serverkey = #354; /* + Look up a key in the server's public serverinfo string. If the key contains binary data then it will be truncated at the first null. */ + +float(string key, optional float assumevalue) serverkeyfloat = #0:serverkeyfloat; /* + Version of serverkey that returns the value as a float (which avoids tempstrings). */ + +int(string key, optional void *ptr, int maxsize) serverkeyblob = #0:serverkeyblob; /* + Version of serverkey that returns data as a blob (ie: binary data that may contain nulls). Returns the full blob size, even if truncated (pass maxsize=0 to query required storage). */ + +void(string key, void *ptr, optional int size) setserverkey = #0:setserverkey; /* + Changes the server's serverinfo. */ + +__variant*(int size) memalloc = #384; /* Part of FTE_MEMALLOC + Allocate an arbitary block of memory */ + +void(__variant *ptr) memfree = #385; /* Part of FTE_MEMALLOC + Frees a block of memory that was allocated with memfree */ + +void(__variant *dst, __variant *src, int size) memcpy = #386; /* Part of FTE_MEMALLOC + Copys memory from one location to another */ + +void(__variant *dst, int val, int size) memfill8 = #387; /* Part of FTE_MEMALLOC + Sets an entire block of memory to a specified value. Pretty much always 0. */ + +__variant(__variant *dst, float ofs) memgetval = #388; /* + Looks up the 32bit value stored at a pointer-with-offset. */ + +void(__variant *dst, float ofs, __variant val) memsetval = #389; /* + Changes the 32bit value stored at the specified pointer-with-offset. */ + +__variant*(__variant *base, float ofs) memptradd = #390; /* + Perform some pointer maths. Woo. */ + +float(string s) memstrsize = #0:memstrsize; /* + strlen, except ignores utf-8 */ + +float(entity e, float nowreadonly) entityprotection = #0:entityprotection; /* + Changes the protection on the specified entity to protect it from further edits from QC. The return value is the previous setting. Note that this can be used to unprotect the world, but doing so long term is not advised as you will no longer be able to detect invalid entity references. Also, world is not networked, so results might not be seen by clients (or in other words, world.avelocity_y=64 is a bad idea). */ + +entity(entity from, optional entity to) copyentity = #400; /* Part of DP_QC_COPYENTITY + Copies all fields from one entity to another. */ + +void(entity ent, float colours) setcolors = #401; /* + Changes a player's colours. The bits 0-3 are the lower/trouser colour, bits 4-7 are the upper/shirt colours. */ + +entity(.string field, string match, optional .entity chainfield) findchain = #402; /* Part of DP_QC_FINDCHAIN*/ +entity(.float fld, float match, optional .entity chainfield) findchainfloat = #403; /* Part of DP_QC_FINDCHAINFLOAT*/ +void(vector org, string modelname, float startframe, float endframe, float framerate) effect = #404; /* Part of DP_SV_EFFECT + Spawns a self-animating sprite */ + +void(vector org, vector dir, float count) te_blood = #405; /* Part of DP_TE_BLOOD*/ +void(vector mincorner, vector maxcorner, float explosionspeed, float howmany) te_bloodshower = #406; /* Part of _DP_TE_BLOODSHOWER*/ +void(vector org, vector color) te_explosionrgb = #407; /* Part of DP_TE_EXPLOSIONRGB*/ +void(vector mincorner, vector maxcorner, vector vel, float howmany, float color, float gravityflag, float randomveljitter) te_particlecube = #408; /* Part of DP_TE_PARTICLECUBE*/ +void(vector mincorner, vector maxcorner, vector vel, float howmany, float color) te_particlerain = #409; /* Part of DP_TE_PARTICLERAIN*/ +void(vector mincorner, vector maxcorner, vector vel, float howmany, float color) te_particlesnow = #410; /* Part of DP_TE_PARTICLESNOW*/ +void(vector org, vector vel, float howmany) te_spark = #411; /* Part of DP_TE_SPARK*/ +void(vector org) te_gunshotquad = #412; /* Part of _DP_TE_QUADEFFECTS1*/ +void(vector org) te_spikequad = #413; /* Part of _DP_TE_QUADEFFECTS1*/ +void(vector org) te_superspikequad = #414; /* Part of _DP_TE_QUADEFFECTS1*/ +void(vector org) te_explosionquad = #415; /* Part of _DP_TE_QUADEFFECTS1*/ +void(vector org) te_smallflash = #416; /* Part of DP_TE_SMALLFLASH*/ +void(vector org, float radius, float lifetime, vector color) te_customflash = #417; /* Part of DP_TE_CUSTOMFLASH*/ +void(vector org, optional float count) te_gunshot = #418; /* Part of DP_TE_STANDARDEFFECTBUILTINS, FTE_TE_STANDARDEFFECTBUILTINS*/ +void(vector org) te_spike = #419; /* Part of DP_TE_STANDARDEFFECTBUILTINS, FTE_TE_STANDARDEFFECTBUILTINS*/ +void(vector org) te_superspike = #420; /* Part of DP_TE_STANDARDEFFECTBUILTINS, FTE_TE_STANDARDEFFECTBUILTINS*/ +void(vector org) te_explosion = #421; /* Part of DP_TE_STANDARDEFFECTBUILTINS, FTE_TE_STANDARDEFFECTBUILTINS*/ +void(vector org) te_tarexplosion = #422; /* Part of DP_TE_STANDARDEFFECTBUILTINS, FTE_TE_STANDARDEFFECTBUILTINS*/ +void(vector org) te_wizspike = #423; /* Part of DP_TE_STANDARDEFFECTBUILTINS, FTE_TE_STANDARDEFFECTBUILTINS*/ +void(vector org) te_knightspike = #424; /* Part of DP_TE_STANDARDEFFECTBUILTINS, FTE_TE_STANDARDEFFECTBUILTINS*/ +void(vector org) te_lavasplash = #425; /* Part of DP_TE_STANDARDEFFECTBUILTINS, FTE_TE_STANDARDEFFECTBUILTINS*/ +void(vector org) te_teleport = #426; /* Part of DP_TE_STANDARDEFFECTBUILTINS, FTE_TE_STANDARDEFFECTBUILTINS*/ +void(vector org, float color, float colorlength) te_explosion2 = #427; /* Part of DP_TE_STANDARDEFFECTBUILTINS*/ +void(entity own, vector start, vector end) te_lightning1 = #428; /* Part of DP_TE_STANDARDEFFECTBUILTINS, FTE_TE_STANDARDEFFECTBUILTINS*/ +void(entity own, vector start, vector end) te_lightning2 = #429; /* Part of DP_TE_STANDARDEFFECTBUILTINS, FTE_TE_STANDARDEFFECTBUILTINS*/ +void(entity own, vector start, vector end) te_lightning3 = #430; /* Part of DP_TE_STANDARDEFFECTBUILTINS, FTE_TE_STANDARDEFFECTBUILTINS*/ +void(entity own, vector start, vector end) te_beam = #431; /* Part of DP_TE_STANDARDEFFECTBUILTINS*/ +void(vector dir) vectorvectors = #432; /* Part of DP_QC_VECTORVECTORS*/ +void(vector org) te_plasmaburn = #433; /* Part of _DP_TE_PLASMABURN*/ +float(entity e, float s) getsurfacenumpoints = #434; /* Part of DP_QC_GETSURFACE*/ +vector(entity e, float s, float n) getsurfacepoint = #435; /* Part of DP_QC_GETSURFACE*/ +vector(entity e, float s) getsurfacenormal = #436; /* Part of DP_QC_GETSURFACE*/ +string(entity e, float s) getsurfacetexture = #437; /* Part of DP_QC_GETSURFACE*/ +float(entity e, vector p) getsurfacenearpoint = #438; /* Part of DP_QC_GETSURFACE*/ +vector(entity e, float s, vector p) getsurfaceclippedpoint = #439; /* Part of DP_QC_GETSURFACE*/ +void(entity e, string s) clientcommand = #440; /* Part of KRIMZON_SV_PARSECLIENTCOMMAND*/ +float(string s) tokenize = #441; /* Part of KRIMZON_SV_PARSECLIENTCOMMAND*/ +string(float n) argv = #442; /* Part of KRIMZON_SV_PARSECLIENTCOMMAND*/ +void(entity e, entity tagentity, string tagname) setattachment = #443; /* Part of DP_GFX_QUAKE3MODELTAGS*/ +searchhandle(string pattern, float caseinsensitive, float quiet) search_begin = #444; /* Part of DP_QC_FS_SEARCH + initiate a filesystem scan based upon filenames. Be sure to call search_end on the returned handle. */ + +void(searchhandle handle) search_end = #445; /* Part of DP_QC_FS_SEARCH*/ +float(searchhandle handle) search_getsize = #446; /* Part of DP_QC_FS_SEARCH + Retrieves the number of files that were found. */ + +string(searchhandle handle, float num) search_getfilename = #447; /* Part of DP_QC_FS_SEARCH + Retrieves name of one of the files that was found by the initial search. */ + +float(searchhandle handle, float num) search_getfilesize = #0:search_getfilesize; /* Part of FTE_QC_FS_SEARCH_SIZEMTIME + Retrieves the size of one of the files that was found by the initial search. */ + +string(searchhandle handle, float num) search_getfilemtime = #0:search_getfilemtime; /* Part of FTE_QC_FS_SEARCH_SIZEMTIME + Retrieves modification time of one of the files. */ + +string(string cvarname) cvar_string = #448; /* Part of DP_QC_CVAR_STRING*/ +entity(entity start, .float fld, float match) findflags = #449; /* Part of DP_QC_FINDFLAGS*/ +entity(.float fld, float match, optional .entity chainfield) findchainflags = #450; /* Part of DP_QC_FINDCHAINFLAGS*/ +float(entity ent, string tagname) gettagindex = #451; /* Part of DP_QC_GETTAGINFO*/ +vector(entity ent, float tagindex) gettaginfo = #452; /* Part of DP_QC_GETTAGINFO + Obtains the current worldspace position+orientation of the bone or tag from the given entity. The return value is the world coord, v_forward, v_right, v_up are also set according to the bone/tag's orientation. */ + +void(entity player) dropclient = #453; /* Part of DP_SV_DROPCLIENT*/ +entity() spawnclient = #454; /* Part of DP_SV_BOTCLIENT*/ +float(entity client) clienttype = #455; /* Part of DP_SV_BOTCLIENT*/ +void(float target, string str) WriteUnterminatedString = #456; /* Part of DP_SV_WRITEUNTERMINATEDSTRING*/ +void(vector org, vector vel, float howmany) te_flamejet = #457; /* Part of _DP_TE_FLAMEJET*/ +entity(float entnum) edict_num = #459; /* Part of DP_QC_EDICT_NUM*/ +strbuf() buf_create = #460; /* Part of DP_QC_STRINGBUFFERS*/ +void(strbuf bufhandle) buf_del = #461; /* Part of DP_QC_STRINGBUFFERS*/ +float(strbuf bufhandle) buf_getsize = #462; /* Part of DP_QC_STRINGBUFFERS*/ +void(strbuf bufhandle_from, strbuf bufhandle_to) buf_copy = #463; /* Part of DP_QC_STRINGBUFFERS*/ +void(strbuf bufhandle, float sortprefixlen, float backward) buf_sort = #464; /* Part of DP_QC_STRINGBUFFERS*/ +string(strbuf bufhandle, string glue) buf_implode = #465; /* Part of DP_QC_STRINGBUFFERS*/ +string(strbuf bufhandle, float string_index) bufstr_get = #466; /* Part of DP_QC_STRINGBUFFERS*/ +void(strbuf bufhandle, float string_index, string str) bufstr_set = #467; /* Part of DP_QC_STRINGBUFFERS*/ +float(strbuf bufhandle, string str, float ordered) bufstr_add = #468; /* Part of DP_QC_STRINGBUFFERS*/ +void(strbuf bufhandle, float string_index) bufstr_free = #469; /* Part of DP_QC_STRINGBUFFERS*/ +float(float s) asin = #471; /* Part of DP_QC_ASINACOSATANATAN2TAN*/ +float(float c) acos = #472; /* Part of DP_QC_ASINACOSATANATAN2TAN*/ +float(float t) atan = #473; /* Part of DP_QC_ASINACOSATANATAN2TAN*/ +float(float c, float s) atan2 = #474; /* Part of DP_QC_ASINACOSATANATAN2TAN*/ +float(float a) tan = #475; /* Part of DP_QC_ASINACOSATANATAN2TAN + Forgive me father, for I have a sunbed and I'm not afraid to use it. */ + +float(string s) strlennocol = #476; /* Part of DP_QC_STRINGCOLORFUNCTIONS + Returns the number of characters in the string after any colour codes or other markup has been parsed. */ + +string(string s) strdecolorize = #477; /* Part of DP_QC_STRINGCOLORFUNCTIONS + Flattens any markup/colours, removing them from the string. */ + +string(float uselocaltime, string format, ...) strftime = #478; /* Part of DP_QC_STRFTIME*/ +float(string s, string separator1, ...) tokenizebyseparator = #479; /* Part of DP_QC_TOKENIZEBYSEPARATOR*/ +string(string s) strtolower = #480; /* Part of DP_QC_STRING_CASE_FUNCTIONS*/ +string(string s) strtoupper = #481; /* Part of DP_QC_STRING_CASE_FUNCTIONS*/ +string(string s) cvar_defstring = #482; /* Part of DP_QC_CVAR_DEFSTRING*/ +void(vector origin, string sample, float volume, float attenuation) pointsound = #483; /* Part of DP_SV_POINTSOUND*/ +string(string search, string replace, string subject) strreplace = #484; /* Part of DP_QC_STRREPLACE*/ +string(string search, string replace, string subject) strireplace = #485; /* Part of DP_QC_STRREPLACE*/ +vector(entity e, float s, float n, float a) getsurfacepointattribute = #486; /* Part of DP_QC_GETSURFACEPOINTATTRIBUTE*/ +float(float caseinsensitive, string s, ...) crc16 = #494; /* Part of DP_QC_CRC16*/ +float(string name) cvar_type = #495; /* Part of DP_QC_CVAR_TYPE*/ +float() numentityfields = #496; /* Part of DP_QC_ENTITYDATA + Gives the number of named entity fields. Note that this is not the size of an entity, but rather just the number of unique names (ie: vectors use 4 names rather than 3). */ + +float(string fieldname) findentityfield = #0:findentityfield; /* + Find a field index by name. */ + +typedef .__variant field_t; +field_t(float fieldnum) entityfieldref = #0:entityfieldref; /* + Returns a field value that can be directly used to read entity fields. Be sure to validate the type with entityfieldtype before using. */ + +string(float fieldnum) entityfieldname = #497; /* Part of DP_QC_ENTITYDATA + Retrieves the name of the given entity field. */ + +float(float fieldnum) entityfieldtype = #498; /* Part of DP_QC_ENTITYDATA + Provides information about the type of the field specified by the field num. Returns one of the EV_ values. */ + +string(float fieldnum, entity ent) getentityfieldstring = #499; /* Part of DP_QC_ENTITYDATA*/ +float(float fieldnum, entity ent, string s) putentityfieldstring = #500; /* Part of DP_QC_ENTITYDATA*/ +void(float to, string s, float sz) WritePicture = #501; /* Part of DP_SV_WRITEPICTURE + Encodes the named image across the network as-is adhering to some size limit. In FTE, this simply writes the string and is equivelent to writestring and sz is ignored. WritePicture should be paired with ReadPicture in csqc. */ + +string(string filename, optional float makereferenced) whichpack = #503; /* Part of DP_QC_WHICHPACK + Returns the pak file name that contains the file specified. progs/player.mdl will generally return something like 'pak0.pak'. If makereferenced is true, clients will automatically be told that the returned package should be pre-downloaded and used, even if allow_download_refpackages is not set. */ + +string(string in) uri_escape = #510; /* Part of DP_QC_URI_ESCAPE*/ +string(string in) uri_unescape = #511; /* Part of DP_QC_URI_ESCAPE*/ +float(entity ent) num_for_edict = #512; +#define uri_post uri_get +float(string uril, float id, optional string postmimetype, optional string postdata) uri_get = #513; /* Part of DP_QC_URI_GET, DP_QC_URI_POST + uri_get() gets content from an URL and calls a callback "uri_get_callback" with it set as string; an unique ID of the transfer is returned + returns 1 on success, and then calls the callback with the ID, 0 or the HTTP status code, and the received data in a string + For a POST request, you will typically want the postmimetype set to application/x-www-form-urlencoded. + For a GET request, omit the mime+data entirely. + Consult your webserver/php/etc documentation for best-practise. */ + +float(string str) tokenize_console = #514; /* + Tokenize a string exactly as the console's tokenizer would do so. The regular tokenize builtin became bastardized for convienient string parsing, which resulted in a large disparity that can be exploited to bypass checks implemented in a naive SV_ParseClientCommand function, therefore you can use this builtin to make sure it exactly matches. */ + +float(float idx) argv_start_index = #515; /* + Returns the character index that the tokenized arg started at. */ + +float(float idx) argv_end_index = #516; /* + Returns the character index that the tokenized arg stopped at. */ + +void(strbuf strbuf, string pattern, string antipattern) buf_cvarlist = #517; +string(string cvarname) cvar_description = #518; /* + Retrieves the description of a cvar, which might be useful for tooltips or help files. This may still not be useful. */ + +float(optional float timetype) gettime = #519; +void(string s) loadfromdata = #529; /* + Reads a set of entities from the given string. This string should have the same format as a .ent file or a saved game. Entities will be spawned as required. If you need to see the entities that were created, you should use parseentitydata instead. */ + +void(string s) loadfromfile = #530; /* + Reads a set of entities from the named file. This file should have the same format as a .ent file or a saved game. Entities will be spawned as required. If you need to see the entities that were created, you should use parseentitydata instead. */ + +void(float pause) setpause = #531; /* + Sets whether the server should or should not be paused. This does not affect auto-paused things like when the console is down. */ + +float(string mname) precache_vwep_model = #532; /* Part of ZQ_VWEP*/ +float(float v, optional float base) log = #532; /* Part of ??MVDSV_BUILTINS + Determines the logarithm of the input value according to the specified base. This can be used to calculate how much something was shifted by. */ + +float(string filename, strbuf bufhandle) buf_loadfile = #535; /* + Appends the named file into a string buffer (which must have been created in advance). The return value merely says whether the file was readable. */ + +float(filestream filehandle, strbuf bufhandle, optional float startpos, optional float numstrings) buf_writefile = #536; /* + Writes the contents of a string buffer onto the end of the supplied filehandle (you must have already used fopen). Additional optional arguments permit you to constrain the writes to a subsection of the stringbuffer. */ + +float(optional float forcestate) physics_supported = #0:physics_supported; /* + Queries whether rigid body physics is enabled or not. CSQC and SSQC may report different values. If the force argument is specified then the engine will try to activate or release physics (returning the new state, which may fail if plugins or dlls are missing). Note that restarting the physics engine is likely to result in hitches when collision trees get generated. The state may change if a plugin is disabled mid-map. */ + +void(entity e, float physics_enabled) physics_enable = #540; /* + Enable or disable the physics attached to a MOVETYPE_PHYSICS entity. Entities which have been disabled in this way will stop taking so much cpu time. */ + +void(entity e, vector force, vector relative_ofs) physics_addforce = #541; /* + Apply some impulse directional force upon a MOVETYPE_PHYSICS entity. */ + +void(entity e, vector torque) physics_addtorque = #542; /* + Apply some impulse rotational force upon a MOVETYPE_PHYSICS entity. */ + +void(.../*, string funcname*/) callfunction = #605; /* + Invokes the named function. The function name is always passed as the last parameter and must always be present. The others are passed to the named function as-is */ + +void(filestream fh, entity e) writetofile = #606; /* + Writes an entity's fields to the named frik_file file handle. */ + +float(string s) isfunction = #607; /* + Returns true if the named function exists and can be called with the callfunction builtin. */ + +float(entity e, string s, optional float offset) parseentitydata = #613; /* + Reads a single entity's fields into an already-spawned entity. s should contain field pairs like in a saved game: {"foo1" "bar" "foo2" "5"}. Returns <=0 on failure, otherwise returns the offset in the string that was read to. */ + +string(entity e) generateentitydata = #0:generateentitydata; /* + Dumps the entities fields into a string which can later be parsed with parseentitydata. */ + +string(string dnsname, optional float defport) netaddress_resolve = #625; +string(string fmt, ...) sprintf = #627; /* Part of DP_QC_SPRINTF + 'prints' to a formatted temp-string. Mostly acts as in C, however %d assumes floats (fteqcc has arg checking. Use it.). + type conversions: l=arg is an int, h=arg is a float, and will work as a prefix for any float or int representation. + float representations: d=decimal, e,E=exponent-notation, f,F=floating-point notation, g,G=terse float, c=char code, x,X=hex + other representations: i=int, s=string, S=quoted and marked-up string, v=vector, p=pointer + so %ld will accept an int arg, while %hi will expect a float arg. + entities, fields, and functions will generally need to be printed as ints with %i. */ + +float(entity e, float s) getsurfacenumtriangles = #628; +vector(entity e, float s, float n) getsurfacetriangle = #629; +string(string digest, string data, ...) digest_hex = #639; +string(string digest, void *data, int length) digest_ptr = #0:digest_ptr; /* + Calculates the digest of a single contiguous block of memory (including nulls) using the specified hash function. */ + +float(string src, string dst) fcopy = #650; /* + Equivelent to fopen+fread+fwrite+fclose from QC (ie: reads from $gamedir/data/ or $gamedir, but always writes to $gamedir/data/ ) */ + +float(string src, string dst) frename = #651; /* + Renames the file, returning 0 on success. Both paths are relative to the data/ subdir. */ + +float(string fname) fremove = #652; /* + Deletes the named file - path is relative to data/ subdir, like fopen's FILE_WRITE. Returns 0 on success. */ + +float(string fname) fexists = #653; /* + Use whichpack instead. Returns true if it exists inside the default writable path. */ + +float(string path) rmtree = #654; /* + Dangerous, but sandboxed to data/ */ + +#ifdef _ACCESSORS +accessor strbuf : float +{ + inline get float asfloat[float idx] = {return stof(bufstr_get(this, idx));}; + inline set float asfloat[float idx] = {bufstr_set(this, idx, ftos(value));}; + get string[float] = bufstr_get; + set string[float] = bufstr_set; + get float length = buf_getsize; +}; +accessor searchhandle : float +{ + get string[float] = search_getfilename; + get float length = search_getsize; +}; +accessor hashtable : float +{ + inline get vector v[string key] = {return hash_get(this, key, '0 0 0', EV_VECTOR);}; + inline set vector v[string key] = {hash_add(this, key, value, HASH_REPLACE|EV_VECTOR);}; + inline get string s[string key] = {return hash_get(this, key, "", EV_STRING);}; + inline set string s[string key] = {hash_add(this, key, value, HASH_REPLACE|EV_STRING);}; + inline get float f[string key] = {return hash_get(this, key, 0.0, EV_FLOAT);}; + inline set float f[string key] = {hash_add(this, key, value, HASH_REPLACE|EV_FLOAT);}; + inline get __variant[string key] = {return hash_get(this, key, __NULL__);}; + inline set __variant[string key] = {hash_add(this, key, value, HASH_REPLACE);}; +}; +accessor infostring : string +{ + get string[string] = infoget; + inline set& string[string fld] = {this = infoadd(this, fld, value);}; +}; +accessor filestream : float +{ + get string = fgets; + inline set string = {fputs(this,value);}; +}; +#endif +#pragma noref 0 diff --git a/sourcefiles/code/server/subs.qc b/sourcefiles/code/server/subs.qc @@ -0,0 +1,68 @@ +void() SUB_Null = {}; + +void() SUB_Remove = {remove(self);}; + +void() SUB_UseTargets = +{ + local entity t; + local entity oSelf, oOther; + + + t = world; + + if (self.target) + do + { + //find all entities with + //targetname that matches + //this ent's target + t = find(t, targetname, self.target); + if(!t) + return; + + //need to temporarily set self to the target, + //otherwise the target's use function will effect + //THIS entity + oSelf = self; + oOther = other; + + self = t; + other = oSelf; + + if(t.use) + t.use(); + + self = oSelf; + other = oOther; + }while(1); +} + +void() SUB_CalcMoveDone = +{ + //TODO: Make sure this does what I want it to... + setorigin(self, self.origin); + self.velocity = '0 0 0'; + self.nextthink = -1; +} + +void(vector tdest) SUB_CalcMove = +{ + local vector delta_v; + local float traveltime; + self.think = SUB_CalcMoveDone; + + if (tdest == self.origin) + { + self.velocity = '0 0 0'; + } + + delta_v = tdest - self.origin; + + //travel speed is hardcoded to 300 for now + traveltime = vlen(delta_v) / 300; + + self.nextthink = self.ltime + traveltime; + + self.velocity = delta_v / traveltime; +} + diff --git a/sourcefiles/code/server/weapons.qc b/sourcefiles/code/server/weapons.qc @@ -0,0 +1,154 @@ + +void(float to) SwitchWeapon = +{ + if(self.weapon == to) + return; + if(time < self.ready && self.readystate != SWITCHING) + return; + if(!(self.items & to)) + { + sprint(self, PRINT_HIGH, "No weapon.\n"); + return; + } + + self.ready = time + 0.150; + self.readystate = SWITCHING; + +// sound(self, CHAN_BODY, "sounds/player/land.wav", 1, 1.75); + + self.weapon = to; + + WriteByte(MSG_MULTICAST, SVC_CGAMEPACKET); + WriteByte(MSG_MULTICAST, EVENT_WEAPONCHANGE); + WriteByte(MSG_MULTICAST, to); + msg_entity = self; + multicast('0 0 0', MULTICAST_ONE); + +} + +//called by shotgun +//TODO: combine multiple shots into single damage call +void(float shotcount, float spread, float damage) FireBullets = +{ + local vector vorg, dir; + makevectors(self.v_angle); + + msg_entity = self; + + while (shotcount > 0) + { + dir = v_forward + (v_right * (random() - 0.5)*spread) + (v_up * (random() - 0.5)*spread); + vorg = self.origin + '0 0 22'; + traceline(vorg, vorg + dir * 16000, FALSE, self); + + //handled by CSQC_Parse_Event + WriteByte(MSG_MULTICAST, SVC_CGAMEPACKET); + WriteByte(MSG_MULTICAST, EVENT_PISTOLFIRE); + WriteEntity(MSG_MULTICAST, self); + WriteCoord(MSG_MULTICAST, trace_endpos_x); + WriteCoord(MSG_MULTICAST, trace_endpos_y); + WriteCoord(MSG_MULTICAST, trace_endpos_z); + WriteCoord(MSG_MULTICAST, trace_plane_normal_x); + WriteCoord(MSG_MULTICAST, trace_plane_normal_y); + WriteCoord(MSG_MULTICAST, trace_plane_normal_z); + WriteEntity(MSG_MULTICAST, trace_ent); + multicast(trace_endpos, MULTICAST_PHS); + + shotcount = shotcount - 1; + T_Damage(trace_ent, self, self, damage); + } +} + +void() FirePistol = +{ + if(self.ammo_pistol <= 0) + { + return; + } + //local float damage; + local vector vorg, dir; + makevectors(self.v_angle); + dir = v_forward + (v_right * (random() - 0.5)*0.005) + (v_up * (random() - 0.5)*0.005); + vorg = self.origin + '0 0 22'; + traceline(vorg, vorg + dir * 16000, FALSE, self); + msg_entity = self; + + //write some stuff for CSQC that is handled in CSQC_Parse_Event + WriteByte(MSG_MULTICAST, SVC_CGAMEPACKET); + WriteByte(MSG_MULTICAST, EVENT_PISTOLFIRE); + WriteEntity(MSG_MULTICAST, self); + WriteCoord(MSG_MULTICAST, trace_endpos_x); + WriteCoord(MSG_MULTICAST, trace_endpos_y); + WriteCoord(MSG_MULTICAST, trace_endpos_z); + WriteCoord(MSG_MULTICAST, trace_plane_normal_x); + WriteCoord(MSG_MULTICAST, trace_plane_normal_y); + WriteCoord(MSG_MULTICAST, trace_plane_normal_z); + WriteEntity(MSG_MULTICAST, trace_ent); + multicast(trace_endpos, MULTICAST_PHS); + +// sound(self, CHAN_WEAPON, "sounds/weapons/mg.wav", 1, 0.4, 100 + (random() - 0.5) * 5); + self.ready = time + 0.15; + self.readystate = FIRING_SEMI; + self.ammo_pistol -= 1; +} + +void() FireMG = +{ + if(self.ammo_mg <= 0) + { + return; + } + //local float damage; + local vector vorg, dir; + makevectors(self.v_angle); + dir = v_forward + (v_right * (random() - 0.5)*0.025) + (v_up * (random() - 0.5)*0.025); + vorg = self.origin + '0 0 22'; + traceline(vorg, vorg + dir * 16000, FALSE, self); + msg_entity = self; + + //write some stuff for CSQC that is handled in CSQC_Parse_Event + WriteByte(MSG_MULTICAST, SVC_CGAMEPACKET); + WriteByte(MSG_MULTICAST, EVENT_MGFIRE); + WriteEntity(MSG_MULTICAST, self); + WriteCoord(MSG_MULTICAST, trace_endpos_x); + WriteCoord(MSG_MULTICAST, trace_endpos_y); + WriteCoord(MSG_MULTICAST, trace_endpos_z); + WriteCoord(MSG_MULTICAST, trace_plane_normal_x); + WriteCoord(MSG_MULTICAST, trace_plane_normal_y); + WriteCoord(MSG_MULTICAST, trace_plane_normal_z); + WriteEntity(MSG_MULTICAST, trace_ent); + multicast(trace_endpos, MULTICAST_PHS); + + sound(self, CHAN_WEAPON, "sounds/weapons/mg.wav", 1, 0.4, 100 + (random() - 0.5) * 5); + self.ready = time + 0.075; + self.readystate = FIRING; + self.ammo_mg -= 1; +} + +void() FireWeapon = +{ + if(time > self.ready) + { + if(self.readystate == FIRING_SEMI) + return; + else + self.readystate = READY; + + switch(self.weapon) + { + case(IT_MG): + FireMG(); + break; + case(IT_PISTOL): //TODO: put all this in a function + if(self.ammo_pistol > 0) + { + sound(self, CHAN_WEAPON, "sounds/shotgun.wav", 1, ATTN_NORM); + FireBullets(14, .1, 20); + self.ready = time + 1.5; + self.readystate = FIRING; + self.ammo_pistol -= 1; + } + break; + } + } +} diff --git a/sourcefiles/code/ssprogs.src b/sourcefiles/code/ssprogs.src @@ -0,0 +1,20 @@ +#output "../../toPackage/fangflecked/qwprogs.dat" + +#message "SSQC compiling." + +#includelist +server/ssdefs.qc +server/ss_customdefs.qc +server/subs.qc +server/combat.qc +server/weapons.qc +server/player.qc +server/main.qc +server/items.qc +server/meshes.qc +server/ai.qc +server/scrambler.qc +server/buttons.qc +server/level.qc +server/doors.qc +#endlist diff --git a/sourcefiles/concepts/boar.png b/sourcefiles/concepts/boar.png Binary files differ. diff --git a/sourcefiles/concepts/candles1.png b/sourcefiles/concepts/candles1.png Binary files differ. diff --git a/sourcefiles/concepts/cultists1.png b/sourcefiles/concepts/cultists1.png Binary files differ. diff --git a/sourcefiles/concepts/gungod1.png b/sourcefiles/concepts/gungod1.png Binary files differ. diff --git a/sourcefiles/concepts/guns1.png b/sourcefiles/concepts/guns1.png Binary files differ. diff --git a/sourcefiles/concepts/homingprojectiles1.png b/sourcefiles/concepts/homingprojectiles1.png Binary files differ. diff --git a/sourcefiles/concepts/monkeybat.png b/sourcefiles/concepts/monkeybat.png Binary files differ. diff --git a/sourcefiles/concepts/mortar1.png b/sourcefiles/concepts/mortar1.png Binary files differ. diff --git a/sourcefiles/mapsrc/bloodfont.map b/sourcefiles/mapsrc/bloodfont.map @@ -0,0 +1,1474 @@ +// Game: FANGFLECKED +// Format: Quake3 (legacy) +// entity 0 +{ +"classname" "worldspawn" +"_tb_textures" "textures;textures/MustRemove;textures/placeholder" +"_keepLights" "1" +// brush 0 +{ +( -512 -512 -256 ) ( -512 -511 -256 ) ( -512 -512 -255 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( -512 -512 -256 ) ( -512 -512 -255 ) ( -511 -512 -256 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( -512 -512 0 ) ( -511 -512 0 ) ( -512 -511 0 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( 0 256 256 ) ( 0 257 256 ) ( 1 256 256 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( 0 256 0 ) ( 1 256 0 ) ( 0 256 1 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( 0 256 0 ) ( 0 256 1 ) ( 0 257 0 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +} +// brush 1 +{ +( -768 -512 -512 ) ( -768 -511 -512 ) ( -768 -512 -511 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -512 -512 -512 ) ( -512 -512 -511 ) ( -511 -512 -512 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -512 -512 -512 ) ( -511 -512 -512 ) ( -512 -511 -512 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -256 256 -256 ) ( -256 257 -256 ) ( -255 256 -256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -256 1024 -256 ) ( -255 1024 -256 ) ( -256 1024 -255 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 256 256 -256 ) ( 256 256 -255 ) ( 256 257 -256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +} +// brush 2 +{ +( 0 -512 -256 ) ( 0 -511 -256 ) ( 0 -512 -255 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( 0 -512 -256 ) ( 0 -512 -255 ) ( 1 -512 -256 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( 0 -512 0 ) ( 1 -512 0 ) ( 0 -511 0 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( 256 -256 256 ) ( 256 -255 256 ) ( 257 -256 256 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( 256 -256 0 ) ( 257 -256 0 ) ( 256 -256 1 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( 256 -256 0 ) ( 256 -256 1 ) ( 256 -255 0 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +} +// brush 3 +{ +( -768 -512 -256 ) ( -768 -511 -256 ) ( -768 -512 -255 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( -768 -512 -256 ) ( -768 -512 -255 ) ( -767 -512 -256 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( -768 -512 0 ) ( -767 -512 0 ) ( -768 -511 0 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( -512 -256 256 ) ( -512 -255 256 ) ( -511 -256 256 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( -512 -256 0 ) ( -511 -256 0 ) ( -512 -256 1 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( -512 -256 0 ) ( -512 -256 1 ) ( -512 -255 0 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +} +// brush 4 +{ +( -768 -256 256 ) ( -768 -256 -256 ) ( -768 768 -256 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( -768 -256 256 ) ( -512 -256 256 ) ( -512 -256 -256 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( -512 -256 -256 ) ( -512 768 -256 ) ( -768 768 -256 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( -512 -256 256 ) ( -768 -256 256 ) ( -768 768 -256 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( -512 -256 256 ) ( -512 768 -256 ) ( -512 -256 -256 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +} +// brush 5 +{ +( 0 -256 256 ) ( 0 -256 -256 ) ( 0 768 -256 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( 0 -256 256 ) ( 256 -256 256 ) ( 256 -256 -256 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( 256 -256 -256 ) ( 256 768 -256 ) ( 0 768 -256 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( 256 -256 256 ) ( 0 -256 256 ) ( 0 768 -256 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( 256 -256 256 ) ( 256 768 -256 ) ( 256 -256 -256 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +} +// brush 6 +{ +( -1024 -512 -512 ) ( -1024 -511 -512 ) ( -1024 -512 -511 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 -256 -512 ) ( -1024 -256 -511 ) ( -1023 -256 -512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 -512 -512 ) ( -1023 -512 -512 ) ( -1024 -511 -512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 1024 2304 ) ( -768 1025 2304 ) ( -767 1024 2304 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 1024 -256 ) ( -767 1024 -256 ) ( -768 1024 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 1024 -256 ) ( -768 1024 -255 ) ( -768 1025 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 7 +{ +( 256 -512 -512 ) ( 256 -511 -512 ) ( 256 -512 -511 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 256 -256 -512 ) ( 256 -256 -511 ) ( 257 -256 -512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 256 -512 -512 ) ( 257 -512 -512 ) ( 256 -511 -512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 512 1024 1024 ) ( 512 1025 1024 ) ( 513 1024 1024 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 512 1024 -256 ) ( 513 1024 -256 ) ( 512 1024 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 512 1024 -256 ) ( 512 1024 -255 ) ( 512 1025 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 8 +{ +( -1024 1024 -512 ) ( -1024 1025 -512 ) ( -1024 1024 -511 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 1024 -512 ) ( -1024 1024 -511 ) ( -1023 1024 -512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 1024 -512 ) ( -1023 1024 -512 ) ( -1024 1025 -512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 512 1280 1024 ) ( 512 1281 1024 ) ( 513 1280 1024 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 512 1280 -256 ) ( 513 1280 -256 ) ( 512 1280 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 512 1280 -256 ) ( 512 1280 -255 ) ( 512 1281 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 9 +{ +( -1024 -768 -512 ) ( -1024 -767 -512 ) ( -1024 -768 -511 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 -768 -512 ) ( -1024 -768 -511 ) ( -1023 -768 -512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 -768 -512 ) ( -1023 -768 -512 ) ( -1024 -767 -512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 512 -512 2304 ) ( 512 -511 2304 ) ( 513 -512 2304 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 512 -512 -256 ) ( 513 -512 -256 ) ( 512 -512 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 -512 -256 ) ( -512 -512 -255 ) ( -512 -511 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 10 +{ +( -768 -512 768 ) ( -768 -511 768 ) ( -768 -512 769 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 -512 768 ) ( -768 -512 769 ) ( -767 -512 768 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 -512 768 ) ( -767 -512 768 ) ( -768 -511 768 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 256 1024 1024 ) ( 256 1025 1024 ) ( 257 1024 1024 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 256 1024 1024 ) ( 257 1024 1024 ) ( 256 1024 1025 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 256 1024 1024 ) ( 256 1024 1025 ) ( 256 1025 1024 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 11 +{ +( 0 -768 -512 ) ( 0 -767 -512 ) ( 0 -768 -511 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 -768 -512 ) ( 0 -768 -511 ) ( 1 -768 -512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 -768 -512 ) ( 1 -768 -512 ) ( 0 -767 -512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1536 -512 1024 ) ( 1536 -511 1024 ) ( 1537 -512 1024 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1536 -512 -256 ) ( 1537 -512 -256 ) ( 1536 -512 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 512 -512 -256 ) ( 512 -512 -255 ) ( 512 -511 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 12 +{ +( -512 -768 0 ) ( -512 -767 0 ) ( -512 -768 1 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( -512 -2304 0 ) ( -512 -2304 1 ) ( -511 -2304 0 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( -512 -768 -512 ) ( -511 -768 -512 ) ( -512 -767 -512 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( 0 -512 256 ) ( 0 -511 256 ) ( 1 -512 256 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( 0 -512 256 ) ( 1 -512 256 ) ( 0 -512 257 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( 0 -512 256 ) ( 0 -512 257 ) ( 0 -511 256 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +} +// brush 13 +{ +( -512 -1024 768 ) ( -512 -1023 768 ) ( -512 -1024 769 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 -2304 768 ) ( -512 -2304 769 ) ( -511 -2304 768 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 -1024 768 ) ( -511 -1024 768 ) ( -512 -1023 768 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 -512 1024 ) ( 0 -511 1024 ) ( 1 -512 1024 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 -512 1024 ) ( 1 -512 1024 ) ( 0 -512 1025 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 -512 1024 ) ( 0 -512 1025 ) ( 0 -511 1024 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 14 +{ +( -768 -1280 768 ) ( -768 -1279 768 ) ( -768 -1280 769 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 -2304 768 ) ( -768 -2304 769 ) ( -767 -2304 768 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 -1280 -512 ) ( -767 -1280 -512 ) ( -768 -1279 -512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 -768 1024 ) ( -512 -767 1024 ) ( -511 -768 1024 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 -768 1024 ) ( -511 -768 1024 ) ( -512 -768 1025 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 -768 1024 ) ( -512 -768 1025 ) ( -512 -767 1024 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 15 +{ +( 0 -1280 768 ) ( 0 -1279 768 ) ( 0 -1280 769 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 -2304 768 ) ( 0 -2304 769 ) ( 1 -2304 768 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 -1280 -512 ) ( 1 -1280 -512 ) ( 0 -1279 -512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 256 -768 1024 ) ( 256 -767 1024 ) ( 257 -768 1024 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 256 -768 1024 ) ( 257 -768 1024 ) ( 256 -768 1025 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 256 -768 1024 ) ( 256 -768 1025 ) ( 256 -767 1024 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 16 +{ +( 256 -512 0 ) ( 256 -511 0 ) ( 256 -512 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 256 -512 0 ) ( 256 -512 1 ) ( 257 -512 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 256 -512 0 ) ( 257 -512 0 ) ( 256 -511 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 512 -256 1024 ) ( 512 -255 1024 ) ( 513 -256 1024 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 512 -256 256 ) ( 513 -256 256 ) ( 512 -256 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 512 -256 256 ) ( 512 -256 257 ) ( 512 -255 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 17 +{ +( 256 -512 -512 ) ( 256 -511 -512 ) ( 256 -512 -511 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 256 -512 -512 ) ( 256 -512 -511 ) ( 257 -512 -512 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 256 -512 -512 ) ( 257 -512 -512 ) ( 256 -511 -512 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 768 -256 -256 ) ( 768 -255 -256 ) ( 769 -256 -256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 768 -256 -256 ) ( 769 -256 -256 ) ( 768 -256 -255 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 512 -256 -256 ) ( 512 -256 -255 ) ( 512 -255 -256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +} +// brush 18 +{ +( -768 -3072 0 ) ( -768 -3071 0 ) ( -768 -3072 1 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( -768 -5376 0 ) ( -768 -5376 1 ) ( -767 -5376 0 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( -768 -3072 0 ) ( -767 -3072 0 ) ( -768 -3071 0 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( 256 -2304 256 ) ( 256 -2303 256 ) ( 257 -2304 256 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( 256 -2304 256 ) ( 257 -2304 256 ) ( 256 -2304 257 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( 1280 -2304 256 ) ( 1280 -2304 257 ) ( 1280 -2303 256 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +} +// brush 19 +{ +( -256 -5120 256 ) ( -256 -5119 256 ) ( -256 -5120 257 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( -256 -5376 256 ) ( -256 -5376 257 ) ( -255 -5376 256 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( -256 -5120 1280 ) ( -255 -5120 1280 ) ( -256 -5119 1280 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( 768 -4096 1792 ) ( 768 -4095 1792 ) ( 769 -4096 1792 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( 768 -4096 512 ) ( 769 -4096 512 ) ( 768 -4096 513 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( 768 -4096 512 ) ( 768 -4096 513 ) ( 768 -4095 512 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +} +// brush 20 +{ +( -1280 -2304 0 ) ( -1280 -2303 0 ) ( -1280 -2304 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -2304 0 ) ( -1280 -2304 1 ) ( -1279 -2304 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -2304 0 ) ( -1279 -2304 0 ) ( -1280 -2303 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 -2048 3072 ) ( -768 -2047 3072 ) ( -767 -2048 3072 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 -2048 256 ) ( -767 -2048 256 ) ( -768 -2048 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 -2048 256 ) ( -768 -2048 257 ) ( -768 -2047 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 21 +{ +( -1536 -2304 0 ) ( -1536 -2303 0 ) ( -1536 -2304 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1792 -4864 0 ) ( -1792 -4864 1 ) ( -1791 -4864 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1792 -2304 256 ) ( -1791 -2304 256 ) ( -1792 -2303 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -2048 2048 ) ( -1280 -2047 2048 ) ( -1279 -2048 2048 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -2048 256 ) ( -1279 -2048 256 ) ( -1280 -2048 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -2048 256 ) ( -1280 -2048 257 ) ( -1280 -2047 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 22 +{ +( -1536 -5632 0 ) ( -1536 -5631 0 ) ( -1536 -5632 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -5632 0 ) ( -1280 -5632 1 ) ( -1279 -5632 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -5632 1024 ) ( -1279 -5632 1024 ) ( -1280 -5631 1024 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 -5376 2048 ) ( -1024 -5375 2048 ) ( -1023 -5376 2048 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 -5376 256 ) ( -1023 -5376 256 ) ( -1024 -5376 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1280 -5376 256 ) ( 1280 -5376 257 ) ( 1280 -5375 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 23 +{ +( 256 -2304 0 ) ( 256 -2303 0 ) ( 256 -2304 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 256 -2304 0 ) ( 256 -2304 1 ) ( 257 -2304 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 256 -2304 256 ) ( 257 -2304 256 ) ( 256 -2303 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 768 -2048 3072 ) ( 768 -2047 3072 ) ( 769 -2048 3072 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 768 -2048 256 ) ( 769 -2048 256 ) ( 768 -2048 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2304 -2048 256 ) ( 2304 -2048 257 ) ( 2304 -2047 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 24 +{ +( -768 -2304 1024 ) ( -768 -2303 1024 ) ( -768 -2304 1025 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 -2304 1024 ) ( -768 -2304 1025 ) ( -767 -2304 1024 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 -2304 1024 ) ( -767 -2304 1024 ) ( -768 -2303 1024 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 256 -2048 3072 ) ( 256 -2047 3072 ) ( 257 -2048 3072 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 256 -2048 1280 ) ( 257 -2048 1280 ) ( 256 -2048 1281 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 256 -2048 1280 ) ( 256 -2048 1281 ) ( 256 -2047 1280 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 25 +{ +( -2048 -2816 2816 ) ( -2048 -2815 2816 ) ( -2048 -2816 2817 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( -1280 -6144 2816 ) ( -1280 -6144 2817 ) ( -1279 -6144 2816 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( -1280 -2816 2816 ) ( -1279 -2816 2816 ) ( -1280 -2815 2816 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( 1280 -2304 3072 ) ( 1280 -2303 3072 ) ( 1281 -2304 3072 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( 1280 -2304 3072 ) ( 1281 -2304 3072 ) ( 1280 -2304 3073 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( 2048 -2304 3072 ) ( 2048 -2304 3073 ) ( 2048 -2303 3072 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +} +// brush 26 +{ +( -256 -5120 -768 ) ( -256 -5119 -768 ) ( -256 -5120 -767 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( -256 -5376 -768 ) ( -256 -5376 -767 ) ( -255 -5376 -768 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( -256 -5120 256 ) ( -255 -5120 256 ) ( -256 -5119 256 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( 768 -4096 768 ) ( 768 -4095 768 ) ( 769 -4096 768 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( 768 -4096 -512 ) ( 769 -4096 -512 ) ( 768 -4096 -511 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( 768 -4096 -512 ) ( 768 -4096 -511 ) ( 768 -4095 -512 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +} +// brush 27 +{ +( -256 -4352 768 ) ( -256 -4351 768 ) ( -256 -4352 769 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 -4352 768 ) ( -256 -4352 769 ) ( -255 -4352 768 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 -4352 768 ) ( -255 -4352 768 ) ( -256 -4351 768 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 -4096 1280 ) ( 0 -4095 1280 ) ( 1 -4096 1280 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 -4096 1024 ) ( 1 -4096 1024 ) ( 0 -4096 1025 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 -4096 1024 ) ( 0 -4096 1025 ) ( 0 -4095 1024 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 28 +{ +( 512 -4352 768 ) ( 512 -4351 768 ) ( 512 -4352 769 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 512 -4352 768 ) ( 512 -4352 769 ) ( 513 -4352 768 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 512 -4352 768 ) ( 513 -4352 768 ) ( 512 -4351 768 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 768 -4096 1280 ) ( 768 -4095 1280 ) ( 769 -4096 1280 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 768 -4096 1024 ) ( 769 -4096 1024 ) ( 768 -4096 1025 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 768 -4096 1024 ) ( 768 -4096 1025 ) ( 768 -4095 1024 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 29 +{ +( 0 -4096 768 ) ( 0 -4096 256 ) ( 0 -3072 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 -4096 768 ) ( 512 -4096 768 ) ( 512 -4096 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 512 -4096 256 ) ( 512 -3072 256 ) ( 0 -3072 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 -3072 256 ) ( 512 -3072 256 ) ( 512 -4096 768 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 512 -4096 768 ) ( 512 -3072 256 ) ( 512 -4096 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 30 +{ +( -1024 -3072 256 ) ( -1024 -3071 256 ) ( -1024 -3072 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 -3072 256 ) ( -1024 -3072 257 ) ( -1023 -3072 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 -3072 256 ) ( -1023 -3072 256 ) ( -1024 -3071 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 -2560 768 ) ( -512 -2559 768 ) ( -511 -2560 768 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 -2560 512 ) ( -511 -2560 512 ) ( -512 -2560 513 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 -2560 512 ) ( -512 -2560 513 ) ( -512 -2559 512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 31 +{ +( -1280 -5120 256 ) ( -1280 -5119 256 ) ( -1280 -5120 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 -5376 256 ) ( -512 -5376 257 ) ( -511 -5376 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 -5120 256 ) ( -511 -5120 256 ) ( -512 -5119 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 -4608 768 ) ( -256 -4607 768 ) ( -255 -4608 768 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 -4864 512 ) ( -255 -4864 512 ) ( -256 -4864 513 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 -4608 512 ) ( -256 -4608 513 ) ( -256 -4607 512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 32 +{ +( -2048 -5632 1792 ) ( -2048 -5631 1792 ) ( -2048 -5632 1793 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2048 -5632 1792 ) ( -2048 -5632 1793 ) ( -2047 -5632 1792 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2048 -5632 1792 ) ( -2047 -5632 1792 ) ( -2048 -5631 1792 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1536 -2048 2048 ) ( -1536 -2047 2048 ) ( -1535 -2048 2048 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1536 -2048 2048 ) ( -1535 -2048 2048 ) ( -1536 -2048 2049 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1536 -2048 2048 ) ( -1536 -2048 2049 ) ( -1536 -2047 2048 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 33 +{ +( -2048 -6144 1792 ) ( -2048 -6143 1792 ) ( -2048 -6144 1793 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2048 -6144 1792 ) ( -2048 -6144 1793 ) ( -2047 -6144 1792 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2048 -6144 1792 ) ( -2047 -6144 1792 ) ( -2048 -6143 1792 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1536 -5632 2048 ) ( 1536 -5631 2048 ) ( 1537 -5632 2048 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1536 -5632 2048 ) ( 1537 -5632 2048 ) ( 1536 -5632 2049 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1280 -5632 2048 ) ( 1280 -5632 2049 ) ( 1280 -5631 2048 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 34 +{ +( 1280 -6144 1792 ) ( 1280 -6143 1792 ) ( 1280 -6144 1793 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1536 -6144 1792 ) ( 1536 -6144 1793 ) ( 1537 -6144 1792 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1536 -6144 1792 ) ( 1537 -6144 1792 ) ( 1536 -6143 1792 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2048 -2048 2048 ) ( 2048 -2047 2048 ) ( 2049 -2048 2048 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2048 -2048 2048 ) ( 2049 -2048 2048 ) ( 2048 -2048 2049 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2048 -2048 2048 ) ( 2048 -2048 2049 ) ( 2048 -2047 2048 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 35 +{ +( 768 -4352 1792 ) ( 768 -4864 1792 ) ( 768 -4864 1536 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 768 -4352 1792 ) ( 1280 -4352 2048 ) ( 1280 -4864 2048 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 768 -4864 1792 ) ( 1280 -4864 2048 ) ( 1280 -4864 1536 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1280 -4864 1536 ) ( 1280 -4352 1536 ) ( 768 -4352 1536 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1280 -4352 1536 ) ( 1280 -4352 2048 ) ( 768 -4352 1792 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1280 -4864 2048 ) ( 1280 -4352 2048 ) ( 1280 -4352 1536 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 36 +{ +( 2048 -6144 1792 ) ( 2048 -6143 1792 ) ( 2048 -6144 1793 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2048 -6144 1792 ) ( 2048 -6144 1793 ) ( 2049 -6144 1792 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2048 -6144 1792 ) ( 2049 -6144 1792 ) ( 2048 -6143 1792 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2816 -2048 3072 ) ( 2816 -2047 3072 ) ( 2817 -2048 3072 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2816 -2048 2048 ) ( 2817 -2048 2048 ) ( 2816 -2048 2049 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2304 -2048 2048 ) ( 2304 -2048 2049 ) ( 2304 -2047 2048 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 37 +{ +( -2304 -6144 1792 ) ( -2304 -6143 1792 ) ( -2304 -6144 1793 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2304 -5376 1792 ) ( -2304 -5376 1793 ) ( -2303 -5376 1792 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2304 -6144 1792 ) ( -2303 -6144 1792 ) ( -2304 -6143 1792 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1536 -2048 3072 ) ( -1536 -2047 3072 ) ( -1535 -2048 3072 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1536 -2048 2048 ) ( -1535 -2048 2048 ) ( -1536 -2048 2049 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2048 -2048 2048 ) ( -2048 -2048 2049 ) ( -2048 -2047 2048 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 38 +{ +( -2304 -6400 1792 ) ( -2304 -6399 1792 ) ( -2304 -6400 1793 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2304 -6400 1792 ) ( -2304 -6400 1793 ) ( -2303 -6400 1792 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2304 -6400 1792 ) ( -2303 -6400 1792 ) ( -2304 -6399 1792 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2304 -6144 3072 ) ( 2304 -6143 3072 ) ( 2305 -6144 3072 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2304 -6144 2048 ) ( 2305 -6144 2048 ) ( 2304 -6144 2049 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2304 -6144 2048 ) ( 2304 -6144 2049 ) ( 2304 -6143 2048 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 39 +{ +( -2048 -2304 2048 ) ( -2048 -2303 2048 ) ( -2048 -2304 2049 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2048 -2304 2048 ) ( -2048 -2304 2049 ) ( -2047 -2304 2048 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2048 -2304 2048 ) ( -2047 -2304 2048 ) ( -2048 -2303 2048 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -2048 3072 ) ( -1280 -2047 3072 ) ( -1279 -2048 3072 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -2048 2304 ) ( -1279 -2048 2304 ) ( -1280 -2048 2305 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -2048 2304 ) ( -1280 -2048 2305 ) ( -1280 -2047 2304 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 40 +{ +( 1280 -2304 2048 ) ( 1280 -2303 2048 ) ( 1280 -2304 2049 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1280 -2304 2048 ) ( 1280 -2304 2049 ) ( 1281 -2304 2048 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1280 -2304 2048 ) ( 1281 -2304 2048 ) ( 1280 -2303 2048 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2048 -2048 3072 ) ( 2048 -2047 3072 ) ( 2049 -2048 3072 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2048 -2048 2304 ) ( 2049 -2048 2304 ) ( 2048 -2048 2305 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2048 -2048 2304 ) ( 2048 -2048 2305 ) ( 2048 -2047 2304 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 41 +{ +( 512 -256 0 ) ( 512 -255 0 ) ( 512 -256 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 512 -256 0 ) ( 512 -256 1 ) ( 513 -256 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 512 -256 -512 ) ( 513 -256 -512 ) ( 512 -255 -512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1024 0 512 ) ( 1024 1 512 ) ( 1025 0 512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1024 0 256 ) ( 1025 0 256 ) ( 1024 0 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2048 0 256 ) ( 2048 0 257 ) ( 2048 1 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 42 +{ +( 512 -1792 -512 ) ( 512 -1791 -512 ) ( 512 -1792 -511 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 512 -1792 -512 ) ( 512 -1792 -511 ) ( 513 -1792 -512 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 512 -1792 -512 ) ( 513 -1792 -512 ) ( 512 -1791 -512 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 1536 -512 -256 ) ( 1536 -511 -256 ) ( 1537 -512 -256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 1536 -256 -256 ) ( 1537 -256 -256 ) ( 1536 -256 -255 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 2048 -512 -256 ) ( 2048 -512 -255 ) ( 2048 -511 -256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +} +// brush 43 +{ +( 1792 -2048 -512 ) ( 1792 -2047 -512 ) ( 1792 -2048 -511 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1792 -1792 -512 ) ( 1792 -1792 -511 ) ( 1793 -1792 -512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1792 -2048 -256 ) ( 1793 -2048 -256 ) ( 1792 -2047 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2048 -256 512 ) ( 2048 -255 512 ) ( 2049 -256 512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2048 -256 -256 ) ( 2049 -256 -256 ) ( 2048 -256 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2048 -256 -256 ) ( 2048 -256 -255 ) ( 2048 -255 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 44 +{ +( 256 -1792 -512 ) ( 256 -1791 -512 ) ( 256 -1792 -511 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 256 -1792 -512 ) ( 256 -1792 -511 ) ( 257 -1792 -512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 256 -1792 -512 ) ( 257 -1792 -512 ) ( 256 -1791 -512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 512 -768 512 ) ( 512 -767 512 ) ( 513 -768 512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 512 -768 -256 ) ( 513 -768 -256 ) ( 512 -768 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 512 -768 -256 ) ( 512 -768 -255 ) ( 512 -767 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 45 +{ +( 512 -1792 256 ) ( 512 -1791 256 ) ( 512 -1792 257 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( 512 -1792 256 ) ( 512 -1792 257 ) ( 513 -1792 256 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( 512 -1792 256 ) ( 513 -1792 256 ) ( 512 -1791 256 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( 1280 -256 512 ) ( 1280 -255 512 ) ( 1281 -256 512 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( 1280 -256 512 ) ( 1281 -256 512 ) ( 1280 -256 513 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( 1792 -256 512 ) ( 1792 -256 513 ) ( 1792 -255 512 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +} +// brush 46 +{ +( -1024 -512 0 ) ( -1024 -511 0 ) ( -1024 -512 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 -512 0 ) ( -1024 -512 1 ) ( -1023 -512 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 -512 0 ) ( -1023 -512 0 ) ( -1024 -511 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 -256 2304 ) ( -768 -255 2304 ) ( -767 -256 2304 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 -256 256 ) ( -767 -256 256 ) ( -768 -256 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 -256 256 ) ( -768 -256 257 ) ( -768 -255 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 47 +{ +( -1024 -512 -512 ) ( -1024 -511 -512 ) ( -1024 -512 -511 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -1024 -512 -512 ) ( -1024 -512 -511 ) ( -1023 -512 -512 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -1024 -512 -512 ) ( -1023 -512 -512 ) ( -1024 -511 -512 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -512 -256 -256 ) ( -512 -255 -256 ) ( -511 -256 -256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -512 -256 -256 ) ( -511 -256 -256 ) ( -512 -256 -255 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -768 -256 -256 ) ( -768 -256 -255 ) ( -768 -255 -256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +} +// brush 48 +{ +( -2304 -1024 -512 ) ( -2304 -1023 -512 ) ( -2304 -1024 -511 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -1792 -2048 -512 ) ( -1792 -2048 -511 ) ( -1791 -2048 -512 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -1792 -1024 -512 ) ( -1791 -1024 -512 ) ( -1792 -1023 -512 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -1024 -256 -256 ) ( -1024 -255 -256 ) ( -1023 -256 -256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -1024 -256 -256 ) ( -1023 -256 -256 ) ( -1024 -256 -255 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -1024 -256 -256 ) ( -1024 -256 -255 ) ( -1024 -255 -256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +} +// brush 49 +{ +( -2304 -1792 256 ) ( -2304 -1792 -256 ) ( -2304 -768 -256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -2304 -1792 256 ) ( -2048 -1792 256 ) ( -2048 -1792 -256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -2048 -1792 -256 ) ( -2048 -768 -256 ) ( -2304 -768 -256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -2304 -768 -256 ) ( -2048 -768 -256 ) ( -2048 -1792 256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -2048 -1792 256 ) ( -2048 -768 -256 ) ( -2048 -1792 -256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +} +// brush 50 +{ +( -2304 -2048 -256 ) ( -2304 -2047 -256 ) ( -2304 -2048 -255 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -2304 -2048 -256 ) ( -2304 -2048 -255 ) ( -2303 -2048 -256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -2304 -2048 -256 ) ( -2303 -2048 -256 ) ( -2304 -2047 -256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -2048 -1792 256 ) ( -2048 -1791 256 ) ( -2047 -1792 256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -2048 -1792 0 ) ( -2047 -1792 0 ) ( -2048 -1792 1 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -2048 -1792 0 ) ( -2048 -1792 1 ) ( -2048 -1791 0 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +} +// brush 51 +{ +( -2048 -2048 -256 ) ( -2048 -2047 -256 ) ( -2048 -2048 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2048 -2048 -256 ) ( -2048 -2048 -255 ) ( -2047 -2048 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2048 -2048 -256 ) ( -2047 -2048 -256 ) ( -2048 -2047 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1792 -1792 256 ) ( -1792 -1791 256 ) ( -1791 -1792 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1792 -1792 0 ) ( -1791 -1792 0 ) ( -1792 -1792 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1792 -1792 0 ) ( -1792 -1792 1 ) ( -1792 -1791 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 52 +{ +( -1536 -2048 -256 ) ( -1536 -2047 -256 ) ( -1536 -2048 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1536 -2048 -256 ) ( -1536 -2048 -255 ) ( -1535 -2048 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1536 -2048 -256 ) ( -1535 -2048 -256 ) ( -1536 -2047 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -1792 256 ) ( -1280 -1791 256 ) ( -1279 -1792 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -1792 0 ) ( -1279 -1792 0 ) ( -1280 -1792 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 -1792 0 ) ( -1024 -1792 1 ) ( -1024 -1791 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 53 +{ +( -2048 -1792 256 ) ( -1280 -1792 512 ) ( -1280 -2048 512 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -2048 -2048 256 ) ( -1280 -2048 512 ) ( -1280 -2048 256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -1280 -2048 256 ) ( -1280 -1792 256 ) ( -2048 -1792 256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -1280 -1792 256 ) ( -1280 -1792 512 ) ( -2048 -1792 256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -1280 -2048 512 ) ( -1280 -1792 512 ) ( -1280 -1792 256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +} +// brush 54 +{ +( -1280 -1792 -256 ) ( -1280 -1791 -256 ) ( -1280 -1792 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -1792 -256 ) ( -1280 -1792 -255 ) ( -1279 -1792 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -1792 -256 ) ( -1279 -1792 -256 ) ( -1280 -1791 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 -768 256 ) ( -1024 -767 256 ) ( -1023 -768 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 -768 0 ) ( -1023 -768 0 ) ( -1024 -768 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 -768 0 ) ( -1024 -768 1 ) ( -1024 -767 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 55 +{ +( -1280 -2048 256 ) ( -1280 -2047 256 ) ( -1280 -2048 257 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -1280 -2048 256 ) ( -1280 -2048 257 ) ( -1279 -2048 256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -1280 -2048 256 ) ( -1279 -2048 256 ) ( -1280 -2047 256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -1024 -1792 512 ) ( -1024 -1791 512 ) ( -1023 -1792 512 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -1024 -1792 512 ) ( -1023 -1792 512 ) ( -1024 -1792 513 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -1024 -1792 512 ) ( -1024 -1792 513 ) ( -1024 -1791 512 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +} +// brush 56 +{ +( -1280 -768 1024 ) ( -1280 -1792 512 ) ( -1280 -1792 256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -1280 -1792 512 ) ( -1024 -1792 512 ) ( -1024 -1792 256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -1280 -768 1024 ) ( -1024 -768 1024 ) ( -1024 -1792 512 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -1024 -1792 256 ) ( -1024 -768 256 ) ( -1280 -768 256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -1024 -768 256 ) ( -1024 -768 1024 ) ( -1280 -768 1024 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -1024 -1792 512 ) ( -1024 -768 1024 ) ( -1024 -768 256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +} +// brush 57 +{ +( -1280 -768 -256 ) ( -1280 -767 -256 ) ( -1280 -768 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -768 -256 ) ( -1280 -768 -255 ) ( -1279 -768 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -768 -256 ) ( -1279 -768 -256 ) ( -1280 -767 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 -512 1024 ) ( -1024 -511 1024 ) ( -1023 -512 1024 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 -512 0 ) ( -1023 -512 0 ) ( -1024 -512 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 -512 0 ) ( -1024 -512 1 ) ( -1024 -511 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 58 +{ +( -1024 -2048 -512 ) ( -1024 -2047 -512 ) ( -1024 -2048 -511 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 -2048 -512 ) ( -1024 -2048 -511 ) ( -1023 -2048 -512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 -2048 -512 ) ( -1023 -2048 -512 ) ( -1024 -2047 -512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 -1280 2304 ) ( -768 -1279 2304 ) ( -767 -1280 2304 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 -768 -256 ) ( -767 -768 -256 ) ( -768 -768 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 -1280 -256 ) ( -768 -1280 -255 ) ( -768 -1279 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 59 +{ +( -2048 -768 -256 ) ( -2048 -767 -256 ) ( -2048 -768 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2048 -768 -256 ) ( -2048 -768 -255 ) ( -2047 -768 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2048 -768 -256 ) ( -2047 -768 -256 ) ( -2048 -767 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1792 -512 768 ) ( -1792 -511 768 ) ( -1791 -512 768 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1792 -512 0 ) ( -1791 -512 0 ) ( -1792 -512 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1792 -512 0 ) ( -1792 -512 1 ) ( -1792 -511 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 60 +{ +( -1792 -1024 768 ) ( -1792 -1023 768 ) ( -1792 -1024 769 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1536 -768 768 ) ( -1536 -768 769 ) ( -1535 -768 768 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1536 -1024 768 ) ( -1535 -1024 768 ) ( -1536 -1023 768 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -512 1024 ) ( -1280 -511 1024 ) ( -1279 -512 1024 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -512 1024 ) ( -1279 -512 1024 ) ( -1280 -512 1025 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -512 1024 ) ( -1280 -512 1025 ) ( -1280 -511 1024 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 61 +{ +( -2048 -768 768 ) ( -2048 -767 768 ) ( -2048 -768 769 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -2048 -2048 768 ) ( -2048 -2048 769 ) ( -2047 -2048 768 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -2048 -768 768 ) ( -2047 -768 768 ) ( -2048 -767 768 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -1792 -512 1024 ) ( -1792 -511 1024 ) ( -1791 -512 1024 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -1792 -512 1024 ) ( -1791 -512 1024 ) ( -1792 -512 1025 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -1792 -512 1024 ) ( -1792 -512 1025 ) ( -1792 -511 1024 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +} +// brush 62 +{ +( -2816 -2304 256 ) ( -2816 -2303 256 ) ( -2816 -2304 257 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -2304 -3328 256 ) ( -2304 -3328 257 ) ( -2303 -3328 256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -2304 -2304 256 ) ( -2303 -2304 256 ) ( -2304 -2303 256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -1536 -1792 1024 ) ( -1536 -1791 1024 ) ( -1535 -1792 1024 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -1536 -2048 512 ) ( -1535 -2048 512 ) ( -1536 -2048 513 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -1536 -1792 512 ) ( -1536 -1792 513 ) ( -1536 -1791 512 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +} +// brush 63 +{ +( -2560 -2048 768 ) ( -2560 -2047 768 ) ( -2560 -2048 769 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2560 -2048 768 ) ( -2560 -2048 769 ) ( -2559 -2048 768 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2560 -2048 -512 ) ( -2559 -2048 -512 ) ( -2560 -2047 -512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2304 -1280 2304 ) ( -2304 -1279 2304 ) ( -2303 -1280 2304 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2304 -256 1024 ) ( -2303 -256 1024 ) ( -2304 -256 1025 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2304 -1280 1024 ) ( -2304 -1280 1025 ) ( -2304 -1279 1024 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 64 +{ +( -2560 -256 -512 ) ( -2560 -255 -512 ) ( -2560 -256 -511 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2560 -256 -512 ) ( -2560 -256 -511 ) ( -2559 -256 -512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2560 -256 -512 ) ( -2559 -256 -512 ) ( -2560 -255 -512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 0 2304 ) ( -1024 1 2304 ) ( -1023 0 2304 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 0 -256 ) ( -1023 0 -256 ) ( -1024 0 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 0 -256 ) ( -1024 0 -255 ) ( -1024 1 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 65 +{ +( -2304 -2048 2048 ) ( -2304 -2047 2048 ) ( -2304 -2048 2049 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( -2304 -2048 2048 ) ( -2304 -2048 2049 ) ( -2303 -2048 2048 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( -2304 -2048 2048 ) ( -2303 -2048 2048 ) ( -2304 -2047 2048 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( -1024 -256 2304 ) ( -1024 -255 2304 ) ( -1023 -256 2304 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( -1024 -256 2304 ) ( -1023 -256 2304 ) ( -1024 -256 2305 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( -1024 -256 2304 ) ( -1024 -256 2305 ) ( -1024 -255 2304 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +} +// brush 66 +{ +( -1536 -5632 0 ) ( -1536 -5631 0 ) ( -1536 -5632 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -5632 0 ) ( -1280 -5632 1 ) ( -1279 -5632 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -5632 0 ) ( -1279 -5632 0 ) ( -1280 -5631 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1280 -5376 768 ) ( 1280 -5375 768 ) ( 1281 -5376 768 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1280 -5376 256 ) ( 1281 -5376 256 ) ( 1280 -5376 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1280 -5376 256 ) ( 1280 -5376 257 ) ( 1280 -5375 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 67 +{ +( 512 -5632 768 ) ( 512 -5631 768 ) ( 512 -5632 769 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 256 -5632 768 ) ( 256 -5632 769 ) ( 257 -5632 768 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 256 -5632 768 ) ( 257 -5632 768 ) ( 256 -5631 768 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1280 -5376 1024 ) ( 1280 -5375 1024 ) ( 1281 -5376 1024 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1280 -5376 1024 ) ( 1281 -5376 1024 ) ( 1280 -5376 1025 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1280 -5376 1024 ) ( 1280 -5376 1025 ) ( 1280 -5375 1024 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 68 +{ +( -1536 -5632 768 ) ( -1536 -5631 768 ) ( -1536 -5632 769 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -5632 768 ) ( -1280 -5632 769 ) ( -1279 -5632 768 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -5632 768 ) ( -1279 -5632 768 ) ( -1280 -5631 768 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 256 -5376 1024 ) ( 256 -5375 1024 ) ( 257 -5376 1024 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 256 -5376 1024 ) ( 257 -5376 1024 ) ( 256 -5376 1025 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 256 -5376 1024 ) ( 256 -5376 1025 ) ( 256 -5375 1024 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 69 +{ +( 0 -5888 512 ) ( 0 -5887 512 ) ( 0 -5888 513 ) MustRemove/copper2 0 0 0 1 1 0 0 0 +( 0 -5888 512 ) ( 0 -5888 513 ) ( 1 -5888 512 ) MustRemove/copper2 0 0 0 1 1 0 0 0 +( 0 -5888 512 ) ( 1 -5888 512 ) ( 0 -5887 512 ) MustRemove/copper2 0 0 0 1 1 0 0 0 +( 768 -5632 1280 ) ( 768 -5631 1280 ) ( 769 -5632 1280 ) MustRemove/copper2 0 0 0 1 1 0 0 0 +( 768 -5632 768 ) ( 769 -5632 768 ) ( 768 -5632 769 ) MustRemove/copper2 0 0 0 1 1 0 0 0 +( 768 -5632 768 ) ( 768 -5632 769 ) ( 768 -5631 768 ) MustRemove/copper2 0 0 0 1 1 0 0 0 +} +// brush 70 +{ +( -2048 -1280 -256 ) ( -2048 -1279 -256 ) ( -2048 -1280 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2048 -1280 -256 ) ( -2048 -1280 -255 ) ( -2047 -1280 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2048 -1280 -256 ) ( -2047 -1280 -256 ) ( -2048 -1279 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1792 -1024 768 ) ( -1792 -1023 768 ) ( -1791 -1024 768 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1792 -1024 0 ) ( -1791 -1024 0 ) ( -1792 -1024 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1792 -1024 0 ) ( -1792 -1024 1 ) ( -1792 -1023 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 71 +{ +( -2048 -1792 -256 ) ( -2048 -1791 -256 ) ( -2048 -1792 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2048 -1792 -256 ) ( -2048 -1792 -255 ) ( -2047 -1792 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2048 -1792 -256 ) ( -2047 -1792 -256 ) ( -2048 -1791 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1792 -1536 768 ) ( -1792 -1535 768 ) ( -1791 -1536 768 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1792 -1536 0 ) ( -1791 -1536 0 ) ( -1792 -1536 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1792 -1536 0 ) ( -1792 -1536 1 ) ( -1792 -1535 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 72 +{ +( -2560 -5376 2048 ) ( -2560 -5376 1024 ) ( -2560 -3328 1024 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -2560 -5376 2048 ) ( -2304 -5376 2048 ) ( -2304 -5376 1024 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -2304 -5376 1024 ) ( -2304 -3328 1024 ) ( -2560 -3328 1024 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -2560 -3328 1024 ) ( -2304 -3328 1024 ) ( -2304 -5376 2048 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -2304 -5376 2048 ) ( -2304 -3328 1024 ) ( -2304 -5376 1024 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +} +// brush 73 +{ +( -2560 -5632 1024 ) ( -2560 -5631 1024 ) ( -2560 -5632 1025 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -2560 -5632 1024 ) ( -2560 -5632 1025 ) ( -2559 -5632 1024 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -2560 -5632 1024 ) ( -2559 -5632 1024 ) ( -2560 -5631 1024 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -2304 -5376 2048 ) ( -2304 -5375 2048 ) ( -2303 -5376 2048 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -2304 -5376 1280 ) ( -2303 -5376 1280 ) ( -2304 -5376 1281 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -2304 -5376 1280 ) ( -2304 -5376 1281 ) ( -2304 -5375 1280 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +} +// brush 74 +{ +( -2816 -2304 1024 ) ( -2816 -2303 1024 ) ( -2816 -2304 1025 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2816 -5632 1024 ) ( -2816 -5632 1025 ) ( -2815 -5632 1024 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2816 -2304 1024 ) ( -2815 -2304 1024 ) ( -2816 -2303 1024 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2304 -2048 2560 ) ( -2304 -2047 2560 ) ( -2303 -2048 2560 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2304 -2048 1280 ) ( -2303 -2048 1280 ) ( -2304 -2048 1281 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2560 -2048 1280 ) ( -2560 -2048 1281 ) ( -2560 -2047 1280 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 75 +{ +( -2816 -6144 1536 ) ( -2816 -6143 1536 ) ( -2816 -6144 1537 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2816 -5888 1536 ) ( -2816 -5888 1537 ) ( -2815 -5888 1536 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2816 -6144 256 ) ( -2815 -6144 256 ) ( -2816 -6143 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2304 -5632 2560 ) ( -2304 -5631 2560 ) ( -2303 -5632 2560 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2304 -5632 1792 ) ( -2303 -5632 1792 ) ( -2304 -5632 1793 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2304 -5632 1792 ) ( -2304 -5632 1793 ) ( -2304 -5631 1792 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 76 +{ +( -2304 -5888 256 ) ( -2304 -5887 256 ) ( -2304 -5888 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2304 -5888 256 ) ( -2304 -5888 257 ) ( -2303 -5888 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2304 -5888 256 ) ( -2303 -5888 256 ) ( -2304 -5887 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -5632 1792 ) ( -1280 -5631 1792 ) ( -1279 -5632 1792 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -5632 512 ) ( -1279 -5632 512 ) ( -1280 -5632 513 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -5632 512 ) ( -1280 -5632 513 ) ( -1280 -5631 512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 77 +{ +( -2560 -2560 2304 ) ( -2560 -2559 2304 ) ( -2560 -2560 2305 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( -2560 -5632 2304 ) ( -2560 -5632 2305 ) ( -2559 -5632 2304 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( -2560 -2560 2304 ) ( -2559 -2560 2304 ) ( -2560 -2559 2304 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( -2304 -2048 2560 ) ( -2304 -2047 2560 ) ( -2303 -2048 2560 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( -2304 -2048 2560 ) ( -2303 -2048 2560 ) ( -2304 -2048 2561 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( -2304 -2048 2560 ) ( -2304 -2048 2561 ) ( -2304 -2047 2560 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +} +// brush 78 +{ +( -2304 -3328 1024 ) ( -2304 -4352 768 ) ( -2304 -4352 512 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -2304 -4352 768 ) ( -1536 -4352 768 ) ( -1536 -4352 512 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -2304 -3328 1024 ) ( -1536 -3328 1024 ) ( -1536 -4352 768 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -1536 -4352 512 ) ( -1536 -3328 768 ) ( -2304 -3328 768 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -1536 -3328 768 ) ( -1536 -3328 1024 ) ( -2304 -3328 1024 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -1536 -4352 768 ) ( -1536 -3328 1024 ) ( -1536 -3328 768 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +} +// brush 79 +{ +( -2304 -4864 512 ) ( -2304 -4863 512 ) ( -2304 -4864 513 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -2304 -5632 512 ) ( -2304 -5632 513 ) ( -2303 -5632 512 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -2304 -4864 512 ) ( -2303 -4864 512 ) ( -2304 -4863 512 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -1536 -4352 768 ) ( -1536 -4351 768 ) ( -1535 -4352 768 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -1536 -4352 768 ) ( -1535 -4352 768 ) ( -1536 -4352 769 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -1536 -4352 768 ) ( -1536 -4352 769 ) ( -1536 -4351 768 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +} +// brush 80 +{ +( -2560 -4608 768 ) ( -2560 -4607 768 ) ( -2560 -4608 769 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -2560 -5632 768 ) ( -2560 -5632 769 ) ( -2559 -5632 768 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -2560 -4608 512 ) ( -2559 -4608 512 ) ( -2560 -4607 512 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -2304 -3328 1024 ) ( -2304 -3327 1024 ) ( -2303 -3328 1024 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -2304 -3328 1024 ) ( -2303 -3328 1024 ) ( -2304 -3328 1025 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -2304 -3328 1024 ) ( -2304 -3328 1025 ) ( -2304 -3327 1024 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +} +// brush 81 +{ +( -2304 -6144 1792 ) ( -2304 -6143 1792 ) ( -2304 -6144 1793 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2304 -6144 1792 ) ( -2304 -6144 1793 ) ( -2303 -6144 1792 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2304 -6144 1792 ) ( -2303 -6144 1792 ) ( -2304 -6143 1792 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2048 -5888 3072 ) ( -2048 -5887 3072 ) ( -2047 -5888 3072 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2048 -5632 2048 ) ( -2047 -5632 2048 ) ( -2048 -5632 2049 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2048 -5888 2048 ) ( -2048 -5888 2049 ) ( -2048 -5887 2048 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 82 +{ +( -2304 -5632 2304 ) ( -2304 -5631 2304 ) ( -2304 -5632 2305 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2304 -5632 2304 ) ( -2304 -5632 2305 ) ( -2303 -5632 2304 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2304 -5632 2304 ) ( -2303 -5632 2304 ) ( -2304 -5631 2304 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2048 -5376 3072 ) ( -2048 -5375 3072 ) ( -2047 -5376 3072 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2048 -5376 2560 ) ( -2047 -5376 2560 ) ( -2048 -5376 2561 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2048 -5376 2560 ) ( -2048 -5376 2561 ) ( -2048 -5375 2560 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 83 +{ +( -2304 -5632 1792 ) ( -2304 -5631 1792 ) ( -2304 -5632 1793 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2304 -5632 1792 ) ( -2304 -5632 1793 ) ( -2303 -5632 1792 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2304 -5632 1792 ) ( -2303 -5632 1792 ) ( -2304 -5631 1792 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2048 -5376 2048 ) ( -2048 -5375 2048 ) ( -2047 -5376 2048 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2048 -5376 2048 ) ( -2047 -5376 2048 ) ( -2048 -5376 2049 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2048 -5376 2048 ) ( -2048 -5376 2049 ) ( -2048 -5375 2048 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 84 +{ +( -1536 -5376 512 ) ( -1536 -5375 512 ) ( -1536 -5376 513 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1536 -5376 512 ) ( -1536 -5376 513 ) ( -1535 -5376 512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1536 -5376 512 ) ( -1535 -5376 512 ) ( -1536 -5375 512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -5120 768 ) ( -1280 -5119 768 ) ( -1279 -5120 768 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -4864 768 ) ( -1279 -4864 768 ) ( -1280 -4864 769 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -5120 768 ) ( -1280 -5120 769 ) ( -1280 -5119 768 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 85 +{ +( -1536 -5376 1792 ) ( -1536 -5375 1792 ) ( -1536 -5376 1793 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1536 -5376 1792 ) ( -1536 -5376 1793 ) ( -1535 -5376 1792 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1536 -5376 1792 ) ( -1535 -5376 1792 ) ( -1536 -5375 1792 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -4864 2048 ) ( -1280 -4863 2048 ) ( -1279 -4864 2048 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -4864 2048 ) ( -1279 -4864 2048 ) ( -1280 -4864 2049 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -4864 2048 ) ( -1280 -4864 2049 ) ( -1280 -4863 2048 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 86 +{ +( 1280 -5632 1536 ) ( 1280 -5631 1536 ) ( 1280 -5632 1537 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1280 -5632 1536 ) ( 1280 -5632 1537 ) ( 1281 -5632 1536 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1280 -5632 -256 ) ( 1281 -5632 -256 ) ( 1280 -5631 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1536 -5376 1792 ) ( 1536 -5375 1792 ) ( 1537 -5376 1792 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1536 -3840 1792 ) ( 1537 -3840 1792 ) ( 1536 -3840 1793 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1536 -5376 1792 ) ( 1536 -5376 1793 ) ( 1536 -5375 1792 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 87 +{ +( 1280 -3584 -256 ) ( 1280 -3583 -256 ) ( 1280 -3584 -255 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 1024 -3840 -256 ) ( 1024 -3840 -255 ) ( 1025 -3840 -256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 1024 -3584 -256 ) ( 1025 -3584 -256 ) ( 1024 -3583 -256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 2304 -2304 0 ) ( 2304 -2303 0 ) ( 2305 -2304 0 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 2304 -2304 0 ) ( 2305 -2304 0 ) ( 2304 -2304 1 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 2304 -2304 0 ) ( 2304 -2304 1 ) ( 2304 -2303 0 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +} +// brush 88 +{ +( 1280 -3584 256 ) ( 1280 -3840 256 ) ( 1280 -3840 0 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 1280 -3840 256 ) ( 2048 -3840 0 ) ( 1280 -3840 0 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 2048 -3840 0 ) ( 2048 -3584 0 ) ( 1280 -3584 0 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 1280 -3584 0 ) ( 2048 -3584 0 ) ( 1280 -3584 256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 1280 -3584 256 ) ( 2048 -3584 0 ) ( 2048 -3840 0 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +} +// brush 89 +{ +( 1536 -4096 1536 ) ( 1536 -4095 1536 ) ( 1536 -4096 1537 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1536 -4096 1536 ) ( 1536 -4096 1537 ) ( 1537 -4096 1536 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1536 -4096 -256 ) ( 1537 -4096 -256 ) ( 1536 -4095 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 3072 -3840 1792 ) ( 3072 -3839 1792 ) ( 3073 -3840 1792 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 3072 -3840 1792 ) ( 3073 -3840 1792 ) ( 3072 -3840 1793 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2304 -3840 1792 ) ( 2304 -3840 1793 ) ( 2304 -3839 1792 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 90 +{ +( 2304 -4096 -256 ) ( 2304 -4095 -256 ) ( 2304 -4096 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2304 -4096 -256 ) ( 2304 -4096 -255 ) ( 2305 -4096 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2304 -4096 -256 ) ( 2305 -4096 -256 ) ( 2304 -4095 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2560 -2048 2048 ) ( 2560 -2047 2048 ) ( 2561 -2048 2048 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2560 -2048 0 ) ( 2561 -2048 0 ) ( 2560 -2048 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2560 -2048 0 ) ( 2560 -2048 1 ) ( 2560 -2047 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 91 +{ +( 1280 -2304 0 ) ( 1280 -2304 -256 ) ( 1280 -1280 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1280 -2304 0 ) ( 1792 -2304 0 ) ( 1792 -2304 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1792 -2304 -256 ) ( 1792 -1280 -256 ) ( 1280 -1280 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1280 -1280 -256 ) ( 1792 -1280 -256 ) ( 1792 -2304 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1792 -2304 0 ) ( 1792 -1280 -256 ) ( 1792 -2304 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 92 +{ +( 256 -2048 -256 ) ( 256 -2047 -256 ) ( 256 -2048 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 768 -2304 -256 ) ( 768 -2304 -255 ) ( 769 -2304 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 768 -2048 -512 ) ( 769 -2048 -512 ) ( 768 -2047 -512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1280 -1792 256 ) ( 1280 -1791 256 ) ( 1281 -1792 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1280 -1792 0 ) ( 1281 -1792 0 ) ( 1280 -1792 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1280 -1792 0 ) ( 1280 -1792 1 ) ( 1280 -1791 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 93 +{ +( 1792 -2304 -512 ) ( 1792 -2303 -512 ) ( 1792 -2304 -511 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1792 -2304 -512 ) ( 1792 -2304 -511 ) ( 1793 -2304 -512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1792 -2304 -512 ) ( 1793 -2304 -512 ) ( 1792 -2303 -512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2048 -1792 256 ) ( 2048 -1791 256 ) ( 2049 -1792 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2048 -1792 -256 ) ( 2049 -1792 -256 ) ( 2048 -1792 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2304 -1792 -256 ) ( 2304 -1792 -255 ) ( 2304 -1791 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 94 +{ +( 1280 -2304 -512 ) ( 1280 -2303 -512 ) ( 1280 -2304 -511 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1280 -2304 -512 ) ( 1280 -2304 -511 ) ( 1281 -2304 -512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1280 -2304 -512 ) ( 1281 -2304 -512 ) ( 1280 -2303 -512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1792 -1792 -256 ) ( 1792 -1791 -256 ) ( 1793 -1792 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1792 -1792 -256 ) ( 1793 -1792 -256 ) ( 1792 -1792 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1792 -1792 -256 ) ( 1792 -1792 -255 ) ( 1792 -1791 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 95 +{ +( 256 -2048 256 ) ( 256 -2047 256 ) ( 256 -2048 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 256 -2048 256 ) ( 256 -2048 257 ) ( 257 -2048 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 256 -2048 256 ) ( 257 -2048 256 ) ( 256 -2047 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1792 -1792 512 ) ( 1792 -1791 512 ) ( 1793 -1792 512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1792 -1792 512 ) ( 1793 -1792 512 ) ( 1792 -1792 513 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2304 -1792 512 ) ( 2304 -1792 513 ) ( 2304 -1791 512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 96 +{ +( -2304 -2304 -512 ) ( -2304 -2303 -512 ) ( -2304 -2304 -511 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -2048 -3840 -512 ) ( -2048 -3840 -511 ) ( -2047 -3840 -512 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -2048 -2304 -512 ) ( -2047 -2304 -512 ) ( -2048 -2303 -512 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -1280 -2048 -256 ) ( -1280 -2047 -256 ) ( -1279 -2048 -256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -1280 -2048 -256 ) ( -1279 -2048 -256 ) ( -1280 -2048 -255 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -1280 -2048 -256 ) ( -1280 -2048 -255 ) ( -1280 -2047 -256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +} +// brush 97 +{ +( -1792 -3584 -256 ) ( -768 -3584 256 ) ( -768 -3840 256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -1792 -3840 -256 ) ( -768 -3840 256 ) ( -768 -3840 -256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -768 -3840 -256 ) ( -768 -3584 -256 ) ( -1792 -3584 -256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -768 -3584 -256 ) ( -768 -3584 256 ) ( -1792 -3584 -256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( -768 -3840 256 ) ( -768 -3584 256 ) ( -768 -3584 -256 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +} +// brush 98 +{ +( -1280 -3584 0 ) ( -1280 -3583 0 ) ( -1280 -3584 1 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( -1280 -3584 0 ) ( -1280 -3584 1 ) ( -1279 -3584 0 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( -1280 -3584 0 ) ( -1279 -3584 0 ) ( -1280 -3583 0 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( -768 -2304 256 ) ( -768 -2303 256 ) ( -767 -2304 256 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( -768 -2304 256 ) ( -767 -2304 256 ) ( -768 -2304 257 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( -768 -2304 256 ) ( -768 -2304 257 ) ( -768 -2303 256 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +} +// brush 99 +{ +( -2304 -4864 0 ) ( -2304 -4863 0 ) ( -2304 -4864 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1536 -4864 0 ) ( -1536 -4864 1 ) ( -1535 -4864 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1536 -4864 -512 ) ( -1535 -4864 -512 ) ( -1536 -4863 -512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -3840 256 ) ( -1280 -3839 256 ) ( -1279 -3840 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -3840 256 ) ( -1279 -3840 256 ) ( -1280 -3840 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -3840 256 ) ( -1280 -3840 257 ) ( -1280 -3839 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 100 +{ +( -1280 -5376 0 ) ( -1280 -5375 0 ) ( -1280 -5376 1 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( -1024 -5376 0 ) ( -1024 -5376 1 ) ( -1023 -5376 0 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( -1024 -5376 0 ) ( -1023 -5376 0 ) ( -1024 -5375 0 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( -768 -3840 256 ) ( -768 -3839 256 ) ( -767 -3840 256 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( -768 -3840 256 ) ( -767 -3840 256 ) ( -768 -3840 257 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +( -768 -3840 256 ) ( -768 -3840 257 ) ( -768 -3839 256 ) MustRemove/fancytiles2 0 0 0 1 1 0 0 0 +} +// brush 101 +{ +( -1536 -3584 -256 ) ( -1536 -3583 -256 ) ( -1536 -3584 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1536 -3584 -256 ) ( -1536 -3584 -255 ) ( -1535 -3584 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1536 -3584 -256 ) ( -1535 -3584 -256 ) ( -1536 -3583 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -2048 256 ) ( -1280 -2047 256 ) ( -1279 -2048 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -2048 0 ) ( -1279 -2048 0 ) ( -1280 -2048 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -2048 0 ) ( -1280 -2048 1 ) ( -1280 -2047 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 102 +{ +( -2560 -2304 -512 ) ( -2560 -2303 -512 ) ( -2560 -2304 -511 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2560 -4096 -512 ) ( -2560 -4096 -511 ) ( -2559 -4096 -512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2560 -2304 -512 ) ( -2559 -2304 -512 ) ( -2560 -2303 -512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2304 -2048 256 ) ( -2304 -2047 256 ) ( -2303 -2048 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2304 -2048 -256 ) ( -2303 -2048 -256 ) ( -2304 -2048 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2304 -2048 -256 ) ( -2304 -2048 -255 ) ( -2304 -2047 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 103 +{ +( -2304 -3840 256 ) ( -2304 -3839 256 ) ( -2304 -3840 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1792 -3840 256 ) ( -1792 -3840 257 ) ( -1791 -3840 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1792 -3840 256 ) ( -1791 -3840 256 ) ( -1792 -3839 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1536 -3328 512 ) ( -1536 -3327 512 ) ( -1535 -3328 512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1536 -3328 512 ) ( -1535 -3328 512 ) ( -1536 -3328 513 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1536 -3328 512 ) ( -1536 -3328 513 ) ( -1536 -3327 512 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +} +// entity 1 +{ +"classname" "info_player_start" +"origin" "-272 912 -104" +} +// entity 2 +{ +"classname" "light" +"origin" "8 504 520" +"light" "500" +} +// entity 3 +{ +"classname" "light" +"origin" "-504 504 520" +"light" "500" +} +// entity 4 +{ +"classname" "light" +"origin" "-504 -264 520" +"light" "500" +} +// entity 5 +{ +"classname" "light" +"origin" "8 -264 520" +"light" "500" +} +// entity 6 +{ +"classname" "light" +"origin" "-248 504 8" +"light" "500" +} +// entity 7 +{ +"classname" "light" +"origin" "136 -504 -136" +} +// entity 8 +{ +"classname" "light" +"origin" "-632 -504 -136" +} +// entity 9 +{ +"classname" "light" +"origin" "520 -1288 -136" +} +// entity 10 +{ +"classname" "light" +"origin" "1272 -1160 -120" +} +// entity 11 +{ +"classname" "light" +"origin" "1272 -520 -120" +} +// entity 12 +{ +"classname" "light" +"origin" "888 -1672 -120" +} +// entity 13 +{ +"classname" "light" +"origin" "520 -776 -136" +} +// entity 14 +{ +"classname" "light" +"origin" "776 -3448 1544" +"light" "700" +} +// entity 15 +{ +"classname" "light" +"origin" "8 -4360 2056" +"light" "600" +} +// entity 16 +{ +"classname" "light" +"origin" "248 -4616 1032" +} +// entity 17 +{ +"classname" "light" +"origin" "-776 -2808 1032" +"light" "500" +} +// entity 18 +{ +"classname" "light" +"origin" "-776 -4104 1032" +"light" "600" +} +// entity 19 +{ +"classname" "light" +"origin" "-776 -4872 1288" +} +// entity 20 +{ +"classname" "light" +"origin" "1544 -4600 2568" +"light" "500" +} +// entity 21 +{ +"classname" "light" +"origin" "1800 -3064 2568" +"light" "500" +} +// entity 22 +{ +"classname" "light" +"origin" "-776 -5896 2312" +"light" "500" +} +// entity 23 +{ +"classname" "light" +"origin" "-1544 -4088 2568" +"light" "500" +} +// entity 24 +{ +"classname" "light" +"origin" "-8 -1032 504" +} +// entity 25 +{ +"classname" "light" +"origin" "-8 -1288 504" +} +// entity 26 +{ +"classname" "light" +"origin" "-8 -1544 504" +} +// entity 27 +{ +"classname" "light" +"origin" "-8 -2056 504" +} +// entity 28 +{ +"classname" "light" +"origin" "-8 -1800 504" +} +// entity 29 +{ +"classname" "light" +"origin" "-456 -1800 504" +} +// entity 30 +{ +"classname" "light" +"origin" "-456 -1032 504" +} +// entity 31 +{ +"classname" "light" +"origin" "-456 -1288 504" +} +// entity 32 +{ +"classname" "light" +"origin" "-456 -1544 504" +} +// entity 33 +{ +"classname" "light" +"origin" "-456 -2056 504" +} +// entity 34 +{ +"classname" "light" +"origin" "1544 -3912 2376" +"light" "500" +} +// entity 35 +{ +"classname" "light" +"origin" "1544 -5640 2312" +"light" "500" +} +// entity 36 +{ +"classname" "light" +"origin" "328 -5640 2312" +"light" "500" +} +// entity 37 +{ +"classname" "light" +"origin" "-1528 -5512 2312" +"light" "500" +} +// entity 38 +{ +"classname" "light" +"origin" "-1336 -4296 2568" +"light" "500" +} +// entity 39 +{ +"classname" "light" +"origin" "-456 -4360 520" +"light" "500" +} +// entity 40 +{ +"classname" "light" +"origin" "584 -5000 1032" +} +// entity 41 +{ +"classname" "light" +"origin" "-72 -4936 1032" +} +// entity 42 +{ +"classname" "light" +"origin" "200 -3720 776" +"light" "600" +} +// entity 43 +{ +"classname" "light" +"origin" "264 -3272 584" +"light" "500" +} +// entity 44 +{ +"classname" "light" +"origin" "904 -3336 520" +"light" "500" +} +// entity 45 +{ +"classname" "light" +"origin" "56 952 504" +} +// entity 46 +{ +"classname" "light" +"origin" "-456 840 456" +} +// entity 47 +{ +"classname" "trigger_mapend" +"map" "start" +"message" "Congratulations" +// brush 0 +{ +( 256 -5632 768 ) ( 256 -5631 768 ) ( 256 -5632 769 ) trigger 0 0 0 1 1 0 0 0 +( 256 -5632 768 ) ( 256 -5632 769 ) ( 257 -5632 768 ) trigger 0 0 0 1 1 0 0 0 +( 256 -5632 768 ) ( 257 -5632 768 ) ( 256 -5631 768 ) trigger 0 0 0 1 1 0 0 0 +( 512 -5376 1024 ) ( 512 -5375 1024 ) ( 513 -5376 1024 ) trigger 0 0 0 1 1 0 0 0 +( 512 -5376 1024 ) ( 513 -5376 1024 ) ( 512 -5376 1025 ) trigger 0 0 0 1 1 0 0 0 +( 512 -5376 1024 ) ( 512 -5376 1025 ) ( 512 -5375 1024 ) trigger 0 0 0 1 1 0 0 0 +} +} +// entity 48 +{ +"classname" "func_button" +"target" "bill" +// brush 0 +{ +( 0 -6144 2144 ) ( 0 -6143 2144 ) ( 0 -6144 2145 ) placeholder/+0button1 0 -16 0 1 1 0 0 0 +( 0 -6144 2144 ) ( 0 -6144 2145 ) ( 1 -6144 2144 ) placeholder/+0button1 0 -16 0 1 1 0 0 0 +( 0 -6144 2096 ) ( 1 -6144 2096 ) ( 0 -6143 2096 ) placeholder/+0button1 0 16 0 1 1 0 0 0 +( 64 -6128 2160 ) ( 64 -6127 2160 ) ( 65 -6128 2160 ) placeholder/+0button1 0 16 0 1 1 0 0 0 +( 64 -6128 2160 ) ( 65 -6128 2160 ) ( 64 -6128 2161 ) placeholder/+0button1 0 -16 0 1 1 0 0 0 +( 64 -6128 2160 ) ( 64 -6128 2161 ) ( 64 -6127 2160 ) placeholder/+0button1 0 -16 0 1 1 0 0 0 +} +} +// entity 49 +{ +"classname" "func_door" +"targetname" "bill" +// brush 0 +{ +( 224 -5376 768 ) ( 224 -5375 768 ) ( 224 -5376 769 ) MustRemove/fancytiles1 0 0 0 1 1 0 0 0 +( 240 -5376 768 ) ( 240 -5376 769 ) ( 241 -5376 768 ) MustRemove/fancytiles1 0 0 0 1 1 0 0 0 +( 240 -5376 768 ) ( 241 -5376 768 ) ( 240 -5375 768 ) MustRemove/fancytiles1 0 0 0 1 1 0 0 0 +( 544 -5344 1024 ) ( 544 -5343 1024 ) ( 545 -5344 1024 ) MustRemove/fancytiles1 0 0 0 1 1 0 0 0 +( 544 -5344 784 ) ( 545 -5344 784 ) ( 544 -5344 785 ) MustRemove/fancytiles1 0 0 0 1 1 0 0 0 +( 544 -5344 784 ) ( 544 -5344 785 ) ( 544 -5343 784 ) MustRemove/fancytiles1 0 0 0 1 1 0 0 0 +} +} +// entity 50 +{ +"classname" "light" +"origin" "264 -3336 1800" +"light" "1000" +} +// entity 51 +{ +"classname" "light" +"origin" "-1272 -3064 2552" +"light" "500" +} +// entity 52 +{ +"classname" "light" +"origin" "1544 -3064 264" +"light" "600" +} +// entity 53 +{ +"classname" "light" +"origin" "2056 -2552 264" +"light" "500" +} +// entity 54 +{ +"classname" "light" +"origin" "1544 -2040 8" +} +// entity 55 +{ +"classname" "light" +"origin" "1800 -3592 520" +"light" "500" +} +// entity 56 +{ +"classname" "light" +"origin" "-1800 -3768 8" +} +// entity 57 +{ +"classname" "light" +"origin" "-1480 -3768 136" +} +// entity 58 +{ +"classname" "light" +"origin" "-1096 -3768 200" +} +// entity 59 +{ +"classname" "light" +"origin" "-2056 -2760 -56" +} +// entity 60 +{ +"classname" "light" +"origin" "-1720 -2696 -56" +} +// entity 61 +{ +"classname" "light" +"origin" "-1784 -2504 -56" +} +// entity 62 +{ +"classname" "light" +"origin" "-2120 -3656 -56" +} +// entity 63 +{ +"classname" "light" +"origin" "-1912 -1480 -72" +} +// entity 64 +{ +"classname" "light" +"origin" "-1928 -1016 -72" +} +// entity 65 +{ +"classname" "light" +"origin" "-1528 -1416 1480" +"light" "1000" +} +// entity 66 +{ +"classname" "light" +"origin" "-2296 -1352 184" +} +// entity 67 +{ +"classname" "light" +"origin" "-2296 -840 -8" +} +// entity 68 +{ +"classname" "light" +"origin" "-2296 -1928 376" +} +// entity 69 +{ +"classname" "light" +"origin" "-1784 -2040 504" +} +// entity 70 +{ +"classname" "light" +"origin" "-1144 -2040 696" +} +// entity 71 +{ +"classname" "light" +"origin" "-1544 -568 1288" +} +// entity 72 +{ +"classname" "light" +"origin" "-2504 -3720 1480" +"light" "500" +} +// entity 73 +{ +"classname" "light" +"origin" "-2440 -4104 1672" +} +// entity 74 +{ +"classname" "light" +"origin" "-2440 -4808 2056" +} +// entity 75 +{ +"classname" "light" +"origin" "-2440 -5448 2184" +} +// entity 76 +{ +"classname" "light" +"origin" "-1912 -4616 1416" +"light" "800" +} +// entity 77 +{ +"classname" "light" +"origin" "-2104 -2872 1416" +"light" "700" +} +// entity 78 +{ +"classname" "light" +"origin" "136 -5368 952" +"light" "500" +} +// entity 79 +{ +"classname" "light" +"origin" "648 -5368 952" +"light" "500" +} +// entity 80 +{ +"classname" "light" +"origin" "8 -6008 2312" +"light" "500" +} +// entity 81 +{ +"classname" "light" +"origin" "328 -5576 968" +"light" "500" +} +// entity 82 +{ +"classname" "light" +"origin" "-504 -5128 904" +"light" "500" +} +// entity 83 +{ +"classname" "light" +"origin" "-760 -5128 904" +"light" "500" +} +// entity 84 +{ +"classname" "light" +"origin" "-1144 -5128 904" +"light" "500" +} +// entity 85 +{ +"classname" "light" +"origin" "-712 -4616 584" +"light" "500" +} +// entity 86 +{ +"classname" "light" +"origin" "-1096 -4488 584" +"light" "500" +} +// entity 87 +{ +"classname" "light" +"origin" "1016 -5192 520" +"light" "600" +} +// entity 88 +{ +"classname" "light" +"origin" "1080 -4552 520" +"light" "600" +} +// entity 89 +{ +"classname" "light" +"origin" "1080 -4040 520" +"light" "600" +} +// entity 90 +{ +"classname" "light" +"origin" "1608 -2872 264" +"light" "600" +} +// entity 91 +{ +"classname" "light" +"origin" "1928 -3192 264" +"light" "600" +} +// entity 92 +{ +"classname" "light" +"origin" "968 -4616 2120" +"light" "600" +} +// entity 93 +{ +"classname" "light" +"origin" "392 -5304 888" +} diff --git a/sourcefiles/mapsrc/box2.map b/sourcefiles/mapsrc/box2.map @@ -0,0 +1,156 @@ +// Game: FANGFLECKED +// Format: Quake3 (legacy) +// entity 0 +{ +"classname" "worldspawn" +"_tb_textures" "maptex" +// brush 0 +{ +( 16 -80 -352 ) ( 16 -79 -352 ) ( 16 -80 -351 ) claybricks 0 0 0 1 1 0 0 0 +( 16 -560 -352 ) ( 16 -560 -351 ) ( 17 -560 -352 ) claybricks 0 0 0 1 1 0 0 0 +( 16 -80 -352 ) ( 17 -80 -352 ) ( 16 -79 -352 ) claybricks 0 0 0 1 1 0 0 0 +( 144 48 -320 ) ( 144 49 -320 ) ( 145 48 -320 ) claybricks 0 0 0 1 1 0 0 0 +( 144 48 -320 ) ( 145 48 -320 ) ( 144 48 -319 ) claybricks 0 0 0 1 1 0 0 0 +( 768 48 -320 ) ( 768 48 -319 ) ( 768 49 -320 ) claybricks 0 0 0 1 1 0 0 0 +} +// brush 1 +{ +( 16 -80 -80 ) ( 16 -79 -80 ) ( 16 -80 -79 ) claybricks 0 0 0 1 1 0 0 0 +( 16 -560 -80 ) ( 16 -560 -79 ) ( 17 -560 -80 ) claybricks 0 0 0 1 1 0 0 0 +( 16 -80 -80 ) ( 17 -80 -80 ) ( 16 -79 -80 ) claybricks 0 0 0 1 1 0 0 0 +( 144 48 -48 ) ( 144 49 -48 ) ( 145 48 -48 ) claybricks 0 0 0 1 1 0 0 0 +( 144 48 -48 ) ( 145 48 -48 ) ( 144 48 -47 ) claybricks 0 0 0 1 1 0 0 0 +( 768 48 -48 ) ( 768 48 -47 ) ( 768 49 -48 ) claybricks 0 0 0 1 1 0 0 0 +} +// brush 2 +{ +( 32 -560 -320 ) ( 32 -559 -320 ) ( 32 -560 -319 ) claybricks 0 0 0 1 1 0 0 0 +( 16 -560 -320 ) ( 16 -560 -319 ) ( 17 -560 -320 ) claybricks 0 0 0 1 1 0 0 0 +( 16 -560 -320 ) ( 17 -560 -320 ) ( 16 -559 -320 ) claybricks 0 0 0 1 1 0 0 0 +( 592 -544 -80 ) ( 592 -543 -80 ) ( 593 -544 -80 ) claybricks 0 0 0 1 1 0 0 0 +( 592 -544 -304 ) ( 593 -544 -304 ) ( 592 -544 -303 ) claybricks 0 0 0 1 1 0 0 0 +( 752 -544 -304 ) ( 752 -544 -303 ) ( 752 -543 -304 ) claybricks 0 0 0 1 1 0 0 0 +} +// brush 3 +{ +( 32 32 -320 ) ( 32 33 -320 ) ( 32 32 -319 ) claybricks 0 0 0 1 1 0 0 0 +( 160 32 -320 ) ( 160 32 -319 ) ( 161 32 -320 ) claybricks 0 0 0 1 1 0 0 0 +( 160 32 -320 ) ( 161 32 -320 ) ( 160 33 -320 ) claybricks 0 0 0 1 1 0 0 0 +( 736 48 -80 ) ( 736 49 -80 ) ( 737 48 -80 ) claybricks 0 0 0 1 1 0 0 0 +( 736 48 -304 ) ( 737 48 -304 ) ( 736 48 -303 ) claybricks 0 0 0 1 1 0 0 0 +( 752 48 -304 ) ( 752 48 -303 ) ( 752 49 -304 ) claybricks 0 0 0 1 1 0 0 0 +} +// brush 4 +{ +( 16 -560 -320 ) ( 16 -559 -320 ) ( 16 -560 -319 ) claybricks 0 0 0 1 1 0 0 0 +( 16 -560 -320 ) ( 16 -560 -319 ) ( 17 -560 -320 ) claybricks 0 0 0 1 1 0 0 0 +( 16 -560 -320 ) ( 17 -560 -320 ) ( 16 -559 -320 ) claybricks 0 0 0 1 1 0 0 0 +( 32 48 -80 ) ( 32 49 -80 ) ( 33 48 -80 ) claybricks 0 0 0 1 1 0 0 0 +( 32 48 -304 ) ( 33 48 -304 ) ( 32 48 -303 ) claybricks 0 0 0 1 1 0 0 0 +( 32 48 -304 ) ( 32 48 -303 ) ( 32 49 -304 ) claybricks 0 0 0 1 1 0 0 0 +} +// brush 5 +{ +( 752 -560 -320 ) ( 752 -559 -320 ) ( 752 -560 -319 ) claybricks 0 0 0 1 1 0 0 0 +( 752 -560 -320 ) ( 752 -560 -319 ) ( 753 -560 -320 ) claybricks 0 0 0 1 1 0 0 0 +( 752 -560 -320 ) ( 753 -560 -320 ) ( 752 -559 -320 ) claybricks 0 0 0 1 1 0 0 0 +( 768 48 -80 ) ( 768 49 -80 ) ( 769 48 -80 ) claybricks 0 0 0 1 1 0 0 0 +( 768 48 -304 ) ( 769 48 -304 ) ( 768 48 -303 ) claybricks 0 0 0 1 1 0 0 0 +( 768 48 -304 ) ( 768 48 -303 ) ( 768 49 -304 ) claybricks 0 0 0 1 1 0 0 0 +} +// brush 6 +{ +( 320 -368 -272 ) ( 320 -367 -272 ) ( 320 -368 -271 ) pstone1 0 0 0 1 1 0 0 0 +( 320 -368 -272 ) ( 320 -368 -271 ) ( 321 -368 -272 ) skip 0 0 0 0 0 0 0 0 +( 320 -368 -272 ) ( 321 -368 -272 ) ( 320 -367 -272 ) pstone1 0 0 0 1 1 0 0 0 +( 448 -304 -176 ) ( 448 -303 -176 ) ( 449 -304 -176 ) pstone1 0 0 0 1 1 0 0 0 +( 448 -304 -256 ) ( 449 -304 -256 ) ( 448 -304 -255 ) pstone1 0 0 0 1 1 0 0 0 +( 448 -304 -256 ) ( 448 -304 -255 ) ( 448 -303 -256 ) pstone1 0 0 0 1 1 0 0 0 +} +} +// entity 1 +{ +"classname" "func_button" +"target" "james" +// brush 0 +{ +( 656 0 -288 ) ( 656 1 -288 ) ( 656 0 -287 ) +0button1 0 0 0 0.5 0.5 0 0 0 +( 656 16 -288 ) ( 656 16 -287 ) ( 657 16 -288 ) +0button1 0 0 0 0.5 0.5 0 0 0 +( 656 0 -288 ) ( 657 0 -288 ) ( 656 1 -288 ) +0button1 0 0 0 0.5 0.5 0 0 0 +( 688 32 -256 ) ( 688 33 -256 ) ( 689 32 -256 ) +0button1 0 0 0 0.5 0.5 0 0 0 +( 688 32 -272 ) ( 689 32 -272 ) ( 688 32 -271 ) +0button1 0 0 0 0.5 0.5 0 0 0 +( 688 32 -272 ) ( 688 32 -271 ) ( 688 33 -272 ) +0button1 0 0 0 0.5 0.5 0 0 0 +} +} +// entity 2 +{ +"classname" "func_door" +"targetname" "james" +// brush 0 +{ +( 528 -288 -320 ) ( 528 -287 -320 ) ( 528 -288 -319 ) tile2 0 0 0 1 1 0 0 0 +( 528 -288 -320 ) ( 528 -288 -319 ) ( 529 -288 -320 ) tile2 0 0 0 1 1 0 0 0 +( 528 -288 -320 ) ( 529 -288 -320 ) ( 528 -287 -320 ) tile2 0 0 0 1 1 0 0 0 +( 688 -272 -192 ) ( 688 -271 -192 ) ( 689 -272 -192 ) tile2 0 0 0 1 1 0 0 0 +( 688 -272 -304 ) ( 689 -272 -304 ) ( 688 -272 -303 ) tile2 0 0 0 1 1 0 0 0 +( 688 -272 -304 ) ( 688 -272 -303 ) ( 688 -271 -304 ) tile2 0 0 0 1 1 0 0 0 +} +} +// entity 3 +{ +"classname" "info_player_start" +"origin" "112 -32 -280" +} +// entity 4 +{ +"classname" "light" +"origin" "168 -8 -120" +} +// entity 5 +{ +"classname" "light" +"origin" "680 -536 -104" +} +// entity 6 +{ +"classname" "light" +"origin" "88 -520 -168" +} +// entity 7 +{ +"classname" "light" +"origin" "728 -40 -152" +} +// entity 8 +{ +"classname" "light" +"origin" "280 -312 -296" +} +// entity 9 +{ +"classname" "light" +"origin" "472 -168 -296" +} +// entity 10 +{ +"classname" "mesh_sconce1" +"origin" "568 20 -248" +"angle" "270" +} +// entity 11 +{ +"classname" "mesh_sconce1" +"origin" "524 -532 -248" +"angle" "90" +} +// entity 12 +{ +"classname" "mesh_sconce1" +"origin" "740 -248 -248" +"angle" "180" +} +// entity 13 +{ +"classname" "light" +"origin" "520 -536 -216" +} diff --git a/sourcefiles/mapsrc/cathedral.map b/sourcefiles/mapsrc/cathedral.map @@ -0,0 +1,842 @@ +// Game: FANGFLECKED +// Format: Quake3 (legacy) +// entity 0 +{ +"classname" "worldspawn" +"_tb_textures" "textures;textures/MustRemove;textures/placeholder" +"_keepLights" "1" +// brush 0 +{ +( -4096 -2560 -256 ) ( -4096 -2559 -256 ) ( -4096 -2560 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -4096 -4096 -256 ) ( -4096 -4096 -255 ) ( -4095 -4096 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -4096 -2560 -256 ) ( -4095 -2560 -256 ) ( -4096 -2559 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -3840 -2304 0 ) ( -3840 -2303 0 ) ( -3839 -2304 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -3840 -768 0 ) ( -3839 -768 0 ) ( -3840 -768 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -3584 -2304 0 ) ( -3584 -2304 1 ) ( -3584 -2303 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 1 +{ +( -4096 -768 -256 ) ( -4096 -767 -256 ) ( -4096 -768 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -4096 -768 -256 ) ( -4096 -768 -255 ) ( -4095 -768 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -4096 -768 -256 ) ( -4095 -768 -256 ) ( -4096 -767 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -3584 -512 0 ) ( -3584 -511 0 ) ( -3583 -512 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -3584 768 0 ) ( -3583 768 0 ) ( -3584 768 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -2560 -512 0 ) ( -2560 -512 1 ) ( -2560 -511 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 2 +{ +( -768 -768 -256 ) ( -768 -767 -256 ) ( -768 -768 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 -768 -256 ) ( -768 -768 -255 ) ( -767 -768 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 -768 -64 ) ( -767 -768 -64 ) ( -768 -767 -64 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 0 0 ) ( -512 1 0 ) ( -511 0 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 2560 0 ) ( -511 2560 0 ) ( -512 2560 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 0 0 ) ( -512 0 1 ) ( -512 1 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 3 +{ +( -768 2560 -256 ) ( -768 2561 -256 ) ( -768 2560 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 2560 -256 ) ( -768 2560 -255 ) ( -767 2560 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 2560 -256 ) ( -767 2560 -256 ) ( -768 2561 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 2816 256 ) ( -512 2817 256 ) ( -511 2816 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 2576 0 ) ( -511 2576 0 ) ( -512 2576 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -496 2816 0 ) ( -496 2816 1 ) ( -496 2817 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 4 +{ +( -1280 2304 -256 ) ( -1280 2305 -256 ) ( -1280 2304 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 2304 -256 ) ( -1024 2304 -255 ) ( -1023 2304 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 2304 -256 ) ( -1023 2304 -256 ) ( -1024 2305 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 2560 0 ) ( -768 2561 0 ) ( -767 2560 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 2816 0 ) ( -767 2816 0 ) ( -768 2816 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 2560 0 ) ( -768 2560 1 ) ( -768 2561 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 5 +{ +( -1280 1280 -256 ) ( -1280 1281 -256 ) ( -1280 1280 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 1280 -256 ) ( -1024 1280 -255 ) ( -1023 1280 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 1280 -256 ) ( -1023 1280 -256 ) ( -1024 1281 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 1536 0 ) ( -768 1537 0 ) ( -767 1536 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 1792 0 ) ( -767 1792 0 ) ( -768 1792 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 1536 0 ) ( -768 1536 1 ) ( -768 1537 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 6 +{ +( -1280 256 -256 ) ( -1280 257 -256 ) ( -1280 256 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 256 -256 ) ( -1024 256 -255 ) ( -1023 256 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 256 -256 ) ( -1023 256 -256 ) ( -1024 257 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 512 0 ) ( -768 513 0 ) ( -767 512 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 768 0 ) ( -767 768 0 ) ( -768 768 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 512 0 ) ( -768 512 1 ) ( -768 513 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 7 +{ +( -1280 -768 -256 ) ( -1280 -767 -256 ) ( -1280 -768 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 -768 -256 ) ( -1024 -768 -255 ) ( -1023 -768 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 -768 -256 ) ( -1023 -768 -256 ) ( -1024 -767 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 -512 0 ) ( -768 -511 0 ) ( -767 -512 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 -256 0 ) ( -767 -256 0 ) ( -768 -256 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 -512 0 ) ( -768 -512 1 ) ( -768 -511 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 8 +{ +( -512 -256 -256 ) ( -512 -255 -256 ) ( -512 -256 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 -256 -256 ) ( -256 -256 -255 ) ( -255 -256 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 -256 -256 ) ( -255 -256 -256 ) ( -256 -255 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 0 0 ) ( 0 1 0 ) ( 1 0 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 256 0 ) ( 1 256 0 ) ( 0 256 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 0 0 ) ( 0 0 1 ) ( 0 1 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 9 +{ +( -512 768 -256 ) ( -512 769 -256 ) ( -512 768 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 768 -256 ) ( -256 768 -255 ) ( -255 768 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 768 -256 ) ( -255 768 -256 ) ( -256 769 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 1024 0 ) ( 0 1025 0 ) ( 1 1024 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 1280 0 ) ( 1 1280 0 ) ( 0 1280 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 1024 0 ) ( 0 1024 1 ) ( 0 1025 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 10 +{ +( -512 1792 -256 ) ( -512 1793 -256 ) ( -512 1792 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 2048 -256 ) ( -256 2048 -255 ) ( -255 2048 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 1792 -256 ) ( -255 1792 -256 ) ( -256 1793 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 2048 0 ) ( 0 2049 0 ) ( 1 2048 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 2304 0 ) ( 1 2304 0 ) ( 0 2304 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 2048 0 ) ( 0 2048 1 ) ( 0 2049 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 11 +{ +( -1024 2048 -1024 ) ( -1024 2049 -1024 ) ( -1024 2048 -1023 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 1792 -1024 ) ( -512 1792 -1023 ) ( -511 1792 -1024 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 2048 -1024 ) ( -511 2048 -1024 ) ( -512 2049 -1024 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 2304 -256 ) ( -256 2305 -256 ) ( -255 2304 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 2048 -1024 ) ( -511 2048 -1024 ) ( -512 2048 -1023 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 2304 -768 ) ( 0 2304 -767 ) ( 0 2305 -768 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 12 +{ +( 0 1536 -1024 ) ( 0 1537 -1024 ) ( 0 1536 -1023 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 1280 -1024 ) ( 0 1280 -1023 ) ( 1 1280 -1024 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 1536 -256 ) ( 1 1536 -256 ) ( 0 1537 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 256 1792 0 ) ( 256 1793 0 ) ( 257 1792 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 1792 -1024 ) ( 1 1792 -1024 ) ( 0 1792 -1023 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 256 1792 -768 ) ( 256 1792 -767 ) ( 256 1793 -768 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 13 +{ +( -512 -256 0 ) ( -512 -255 0 ) ( -512 -256 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 -256 0 ) ( -512 -256 1 ) ( -511 -256 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 -256 0 ) ( -511 -256 0 ) ( -512 -255 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 0 256 ) ( -256 1 256 ) ( -255 0 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 0 256 ) ( -255 0 256 ) ( -256 0 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -496 0 256 ) ( -496 0 257 ) ( -496 1 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 14 +{ +( 0 0 256 ) ( 0 1 256 ) ( 0 0 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 -256 0 ) ( -512 -256 1 ) ( -511 -256 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 -256 0 ) ( -511 -256 0 ) ( -512 -255 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 0 256 ) ( -256 1 256 ) ( -255 0 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 256 256 ) ( -255 256 256 ) ( -256 256 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 16 0 256 ) ( 16 0 257 ) ( 16 1 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 15 +{ +( -496 0 256 ) ( -496 1 256 ) ( -496 0 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 -272 0 ) ( -512 -272 1 ) ( -511 -272 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 -256 0 ) ( -511 -256 0 ) ( -512 -255 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 0 256 ) ( -256 1 256 ) ( -255 0 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 -256 0 ) ( -511 -256 0 ) ( -512 -256 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 0 256 ) ( 0 0 257 ) ( 0 1 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 16 +{ +( -512 -256 0 ) ( -512 -255 0 ) ( -512 -256 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 -768 0 ) ( -512 -768 1 ) ( -511 -768 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 -256 0 ) ( -511 -256 0 ) ( -512 -255 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 0 256 ) ( -256 1 256 ) ( -255 0 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 -256 0 ) ( -511 -256 0 ) ( -512 -256 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -496 0 256 ) ( -496 0 257 ) ( -496 1 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 17 +{ +( -512 0 256 ) ( -512 1 256 ) ( -512 0 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 256 256 ) ( -256 256 257 ) ( -255 256 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 -256 0 ) ( -511 -256 0 ) ( -512 -255 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 0 256 ) ( -256 1 256 ) ( -255 0 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 272 256 ) ( -255 272 256 ) ( -256 272 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 0 256 ) ( 0 0 257 ) ( 0 1 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 18 +{ +( -512 1024 256 ) ( -512 1025 256 ) ( -512 1024 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 1280 256 ) ( -256 1280 257 ) ( -255 1280 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 768 0 ) ( -511 768 0 ) ( -512 769 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 1024 256 ) ( -256 1025 256 ) ( -255 1024 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 1296 256 ) ( -255 1296 256 ) ( -256 1296 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 1024 256 ) ( 0 1024 257 ) ( 0 1025 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 19 +{ +( 0 1024 256 ) ( 0 1025 256 ) ( 0 1024 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 768 0 ) ( -512 768 1 ) ( -511 768 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 768 0 ) ( -511 768 0 ) ( -512 769 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 1024 256 ) ( -256 1025 256 ) ( -255 1024 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 1280 256 ) ( -255 1280 256 ) ( -256 1280 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 16 1024 256 ) ( 16 1024 257 ) ( 16 1025 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 20 +{ +( -496 1024 256 ) ( -496 1025 256 ) ( -496 1024 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 752 0 ) ( -512 752 1 ) ( -511 752 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 768 0 ) ( -511 768 0 ) ( -512 769 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 1024 256 ) ( -256 1025 256 ) ( -255 1024 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 768 0 ) ( -511 768 0 ) ( -512 768 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 1024 256 ) ( 0 1024 257 ) ( 0 1025 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 21 +{ +( -512 768 0 ) ( -512 769 0 ) ( -512 768 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 768 0 ) ( -512 768 1 ) ( -511 768 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 768 0 ) ( -511 768 0 ) ( -512 769 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 1024 256 ) ( -256 1025 256 ) ( -255 1024 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 1024 256 ) ( -255 1024 256 ) ( -256 1024 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -496 1024 256 ) ( -496 1024 257 ) ( -496 1025 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 22 +{ +( -512 2048 256 ) ( -512 2049 256 ) ( -512 2048 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 2304 256 ) ( -256 2304 257 ) ( -255 2304 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 1792 0 ) ( -511 1792 0 ) ( -512 1793 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 2048 256 ) ( -256 2049 256 ) ( -255 2048 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 2320 256 ) ( -255 2320 256 ) ( -256 2320 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 2048 256 ) ( 0 2048 257 ) ( 0 2049 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 23 +{ +( 0 2048 256 ) ( 0 2049 256 ) ( 0 2048 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 1296 0 ) ( -512 1296 1 ) ( -511 1296 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 1792 0 ) ( -511 1792 0 ) ( -512 1793 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 2048 256 ) ( -256 2049 256 ) ( -255 2048 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 2304 256 ) ( -255 2304 256 ) ( -256 2304 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 16 2048 256 ) ( 16 2048 257 ) ( 16 2049 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 24 +{ +( -496 2048 256 ) ( -496 2049 256 ) ( -496 2048 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 1776 0 ) ( -512 1776 1 ) ( -511 1776 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 1792 -16 ) ( -511 1792 -16 ) ( -512 1793 -16 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 2048 256 ) ( -256 2049 256 ) ( -255 2048 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 1792 0 ) ( -511 1792 0 ) ( -512 1792 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 2048 256 ) ( -256 2048 257 ) ( -256 2049 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 25 +{ +( -512 1792 0 ) ( -512 1793 0 ) ( -512 1792 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 1792 0 ) ( -512 1792 1 ) ( -511 1792 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 1792 0 ) ( -511 1792 0 ) ( -512 1793 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 2048 256 ) ( -256 2049 256 ) ( -255 2048 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 2048 256 ) ( -255 2048 256 ) ( -256 2048 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -496 2048 256 ) ( -496 2048 257 ) ( -496 2049 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 26 +{ +( -1280 512 256 ) ( -1280 513 256 ) ( -1280 512 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 768 256 ) ( -1025 768 256 ) ( -1024 768 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 256 0 ) ( -768 257 0 ) ( -769 256 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 512 256 ) ( -1025 512 256 ) ( -1024 513 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 784 256 ) ( -1024 784 257 ) ( -1025 784 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 512 256 ) ( -768 512 257 ) ( -768 513 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 27 +{ +( -1296 512 256 ) ( -1296 513 256 ) ( -1296 512 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 256 0 ) ( -769 256 0 ) ( -768 256 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 256 0 ) ( -768 257 0 ) ( -769 256 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 512 256 ) ( -1025 512 256 ) ( -1024 513 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 768 256 ) ( -1024 768 257 ) ( -1025 768 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 512 256 ) ( -1280 512 257 ) ( -1280 513 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 28 +{ +( -1280 512 256 ) ( -1280 513 256 ) ( -1280 512 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 240 0 ) ( -769 240 0 ) ( -768 240 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 256 0 ) ( -768 257 0 ) ( -769 256 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 512 256 ) ( -1025 512 256 ) ( -1024 513 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 256 0 ) ( -768 256 1 ) ( -769 256 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -784 512 256 ) ( -784 512 257 ) ( -784 513 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 29 +{ +( -784 512 256 ) ( -784 513 256 ) ( -784 512 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 256 0 ) ( -769 256 0 ) ( -768 256 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 256 0 ) ( -768 257 0 ) ( -769 256 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 512 256 ) ( -1025 512 256 ) ( -1024 513 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 512 256 ) ( -1024 512 257 ) ( -1025 512 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 256 0 ) ( -768 256 1 ) ( -768 257 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 30 +{ +( -1280 1536 256 ) ( -1280 1537 256 ) ( -1280 1536 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 1792 256 ) ( -1025 1792 256 ) ( -1024 1792 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 1280 0 ) ( -768 1281 0 ) ( -769 1280 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 1536 256 ) ( -1025 1536 256 ) ( -1024 1537 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 1808 256 ) ( -1024 1808 257 ) ( -1025 1808 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 1536 256 ) ( -768 1536 257 ) ( -768 1537 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 31 +{ +( -1296 1536 256 ) ( -1296 1537 256 ) ( -1296 1536 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 1280 0 ) ( -769 1280 0 ) ( -768 1280 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 1280 0 ) ( -768 1281 0 ) ( -769 1280 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 1536 256 ) ( -1025 1536 256 ) ( -1024 1537 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 1792 256 ) ( -1024 1792 257 ) ( -1025 1792 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 1536 256 ) ( -1280 1536 257 ) ( -1280 1537 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 32 +{ +( -1280 1536 256 ) ( -1280 1537 256 ) ( -1280 1536 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 1264 0 ) ( -769 1264 0 ) ( -768 1264 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 1280 0 ) ( -768 1281 0 ) ( -769 1280 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 1536 256 ) ( -1025 1536 256 ) ( -1024 1537 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 1280 0 ) ( -768 1280 1 ) ( -769 1280 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -784 1536 256 ) ( -784 1536 257 ) ( -784 1537 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 33 +{ +( -784 1536 256 ) ( -784 1537 256 ) ( -784 1536 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 1280 0 ) ( -769 1280 0 ) ( -768 1280 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 1280 0 ) ( -768 1281 0 ) ( -769 1280 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 1536 256 ) ( -1025 1536 256 ) ( -1024 1537 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 1536 256 ) ( -1024 1536 257 ) ( -1025 1536 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 1280 0 ) ( -768 1280 1 ) ( -768 1281 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 34 +{ +( -1280 2560 256 ) ( -1280 2560 257 ) ( -1280 2559 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 2288 256 ) ( -1025 2288 256 ) ( -1024 2288 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 2816 0 ) ( -769 2816 0 ) ( -768 2815 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 2560 256 ) ( -1024 2559 256 ) ( -1025 2560 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 2304 256 ) ( -1024 2304 257 ) ( -1025 2304 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -784 2560 256 ) ( -784 2559 256 ) ( -784 2560 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 35 +{ +( -1296 2560 256 ) ( -1296 2560 257 ) ( -1296 2559 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 2304 256 ) ( -1025 2304 256 ) ( -1024 2304 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 2816 0 ) ( -769 2816 0 ) ( -768 2815 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 2560 256 ) ( -1024 2559 256 ) ( -1025 2560 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 2816 0 ) ( -768 2816 1 ) ( -769 2816 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 2560 256 ) ( -1280 2559 256 ) ( -1280 2560 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 36 +{ +( -1280 2560 256 ) ( -1280 2560 257 ) ( -1280 2559 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 2816 0 ) ( -769 2816 0 ) ( -768 2816 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 2816 0 ) ( -769 2816 0 ) ( -768 2815 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1024 2560 256 ) ( -1024 2559 256 ) ( -1025 2560 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 2832 0 ) ( -768 2832 1 ) ( -769 2832 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 2560 256 ) ( -768 2559 256 ) ( -768 2560 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 37 +{ +( -512 768 0 ) ( -512 769 0 ) ( -512 768 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 272 0 ) ( -512 272 1 ) ( -511 272 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 768 0 ) ( -511 768 0 ) ( -512 769 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 1024 256 ) ( -256 1025 256 ) ( -255 1024 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 768 0 ) ( -511 768 0 ) ( -512 768 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -496 1024 256 ) ( -496 1024 257 ) ( -496 1025 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 38 +{ +( -512 1792 0 ) ( -512 1793 0 ) ( -512 1792 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 1296 0 ) ( -512 1296 1 ) ( -511 1296 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 1792 0 ) ( -511 1792 0 ) ( -512 1793 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 2048 256 ) ( -256 2049 256 ) ( -255 2048 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 1792 0 ) ( -511 1792 0 ) ( -512 1792 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -496 2048 256 ) ( -496 2048 257 ) ( -496 2049 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 39 +{ +( -784 2304 0 ) ( -784 2305 0 ) ( -784 2304 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -784 1808 0 ) ( -784 1808 1 ) ( -783 1808 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -784 2304 0 ) ( -783 2304 0 ) ( -784 2305 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -528 2560 256 ) ( -528 2561 256 ) ( -527 2560 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -784 2560 0 ) ( -783 2560 0 ) ( -784 2560 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 2560 256 ) ( -768 2560 257 ) ( -768 2561 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 40 +{ +( -784 1280 0 ) ( -784 1281 0 ) ( -784 1280 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -784 784 0 ) ( -784 784 1 ) ( -783 784 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -784 1280 0 ) ( -783 1280 0 ) ( -784 1281 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -528 1536 256 ) ( -528 1537 256 ) ( -527 1536 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -784 1280 0 ) ( -783 1280 0 ) ( -784 1280 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 1536 256 ) ( -768 1536 257 ) ( -768 1537 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 41 +{ +( -784 256 0 ) ( -784 257 0 ) ( -784 256 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -784 -240 0 ) ( -784 -240 1 ) ( -783 -240 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -784 256 0 ) ( -783 256 0 ) ( -784 257 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -528 512 256 ) ( -528 513 256 ) ( -527 512 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -784 256 0 ) ( -783 256 0 ) ( -784 256 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -768 512 256 ) ( -768 512 257 ) ( -768 513 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 42 +{ +( -512 2048 256 ) ( -512 2049 256 ) ( -512 2048 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -240 2320 256 ) ( -240 2320 257 ) ( -239 2320 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -496 1792 0 ) ( -495 1792 0 ) ( -496 1793 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -240 2048 256 ) ( -240 2049 256 ) ( -239 2048 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -240 2560 256 ) ( -239 2560 256 ) ( -240 2560 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -496 2048 256 ) ( -496 2048 257 ) ( -496 2049 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 43 +{ +( -256 1792 -256 ) ( -256 1793 -256 ) ( -256 1792 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 1744 -256 ) ( -272 1744 -255 ) ( -271 1744 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 1792 -112 ) ( -271 1792 -112 ) ( -272 1793 -112 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -16 2048 0 ) ( -16 2049 0 ) ( -15 2048 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 1792 -256 ) ( -271 1792 -256 ) ( -272 1792 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 2048 0 ) ( 0 2048 1 ) ( 0 2049 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 44 +{ +( -256 1744 -272 ) ( -256 1745 -272 ) ( -256 1744 -271 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 1696 -272 ) ( -272 1696 -271 ) ( -271 1696 -272 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 1744 -112 ) ( -271 1744 -112 ) ( -272 1745 -112 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -16 2000 -16 ) ( -16 2001 -16 ) ( -15 2000 -16 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 1744 -272 ) ( -271 1744 -272 ) ( -272 1744 -271 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 2000 -16 ) ( 0 2000 -15 ) ( 0 2001 -16 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 45 +{ +( -256 1696 -288 ) ( -256 1697 -288 ) ( -256 1696 -287 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 1648 -288 ) ( -272 1648 -287 ) ( -271 1648 -288 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 1696 -112 ) ( -271 1696 -112 ) ( -272 1697 -112 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -16 1952 -32 ) ( -16 1953 -32 ) ( -15 1952 -32 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 1696 -288 ) ( -271 1696 -288 ) ( -272 1696 -287 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 1952 -32 ) ( 0 1952 -31 ) ( 0 1953 -32 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 46 +{ +( -256 1648 -304 ) ( -256 1649 -304 ) ( -256 1648 -303 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 1600 -304 ) ( -272 1600 -303 ) ( -271 1600 -304 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 1648 -112 ) ( -271 1648 -112 ) ( -272 1649 -112 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -16 1904 -48 ) ( -16 1905 -48 ) ( -15 1904 -48 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 1648 -304 ) ( -271 1648 -304 ) ( -272 1648 -303 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 1904 -48 ) ( 0 1904 -47 ) ( 0 1905 -48 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 47 +{ +( -256 1504 -352 ) ( -256 1505 -352 ) ( -256 1504 -351 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 1456 -352 ) ( -272 1456 -351 ) ( -271 1456 -352 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 1504 -112 ) ( -271 1504 -112 ) ( -272 1505 -112 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -16 1760 -96 ) ( -16 1761 -96 ) ( -15 1760 -96 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 1504 -352 ) ( -271 1504 -352 ) ( -272 1504 -351 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 1760 -96 ) ( 0 1760 -95 ) ( 0 1761 -96 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 48 +{ +( -256 1456 -368 ) ( -256 1457 -368 ) ( -256 1456 -367 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 1280 -368 ) ( -272 1280 -367 ) ( -271 1280 -368 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 1456 -128 ) ( -271 1456 -128 ) ( -272 1457 -128 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -16 1712 -112 ) ( -16 1713 -112 ) ( -15 1712 -112 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 1456 -368 ) ( -271 1456 -368 ) ( -272 1456 -367 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 1712 -112 ) ( 0 1712 -111 ) ( 0 1713 -112 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 49 +{ +( -256 1600 -320 ) ( -256 1601 -320 ) ( -256 1600 -319 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 1552 -320 ) ( -272 1552 -319 ) ( -271 1552 -320 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 1600 -112 ) ( -271 1600 -112 ) ( -272 1601 -112 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -16 1856 -64 ) ( -16 1857 -64 ) ( -15 1856 -64 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 1600 -320 ) ( -271 1600 -320 ) ( -272 1600 -319 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 1856 -64 ) ( 0 1856 -63 ) ( 0 1857 -64 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 50 +{ +( -256 1552 -336 ) ( -256 1553 -336 ) ( -256 1552 -335 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 1504 -336 ) ( -272 1504 -335 ) ( -271 1504 -336 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 1552 -112 ) ( -271 1552 -112 ) ( -272 1553 -112 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -16 1808 -80 ) ( -16 1809 -80 ) ( -15 1808 -80 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 1552 -336 ) ( -271 1552 -336 ) ( -272 1552 -335 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 1808 -80 ) ( 0 1808 -79 ) ( 0 1809 -80 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 51 +{ +( -512 1456 128 ) ( -512 1456 127 ) ( -512 1457 128 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -528 1280 128 ) ( -527 1280 128 ) ( -528 1280 127 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 1712 -128 ) ( -271 1712 -128 ) ( -272 1713 -128 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -528 1456 -112 ) ( -528 1457 -112 ) ( -527 1456 -112 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -528 1456 128 ) ( -528 1456 127 ) ( -527 1456 128 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 1712 -128 ) ( -256 1713 -128 ) ( -256 1712 -129 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 52 +{ +( -512 1744 32 ) ( -512 1744 31 ) ( -512 1745 32 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -528 1696 32 ) ( -527 1696 32 ) ( -528 1696 31 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 2000 -224 ) ( -271 2000 -224 ) ( -272 2001 -224 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -528 1744 -208 ) ( -528 1745 -208 ) ( -527 1744 -208 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -528 1744 32 ) ( -528 1744 31 ) ( -527 1744 32 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 2000 -224 ) ( -256 2001 -224 ) ( -256 2000 -225 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 53 +{ +( -512 1648 64 ) ( -512 1648 63 ) ( -512 1649 64 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -528 1600 64 ) ( -527 1600 64 ) ( -528 1600 63 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 1904 -192 ) ( -271 1904 -192 ) ( -272 1905 -192 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -528 1648 -176 ) ( -528 1649 -176 ) ( -527 1648 -176 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -528 1648 64 ) ( -528 1648 63 ) ( -527 1648 64 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 1904 -192 ) ( -256 1905 -192 ) ( -256 1904 -193 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 54 +{ +( -512 1552 96 ) ( -512 1552 95 ) ( -512 1553 96 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -528 1504 96 ) ( -527 1504 96 ) ( -528 1504 95 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 1808 -160 ) ( -271 1808 -160 ) ( -272 1809 -160 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -528 1552 -144 ) ( -528 1553 -144 ) ( -527 1552 -144 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -528 1552 96 ) ( -528 1552 95 ) ( -527 1552 96 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 1808 -160 ) ( -256 1809 -160 ) ( -256 1808 -161 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 55 +{ +( -512 1504 112 ) ( -512 1504 111 ) ( -512 1505 112 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -528 1456 112 ) ( -527 1456 112 ) ( -528 1456 111 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 1760 -144 ) ( -271 1760 -144 ) ( -272 1761 -144 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -528 1504 -128 ) ( -528 1505 -128 ) ( -527 1504 -128 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -528 1504 112 ) ( -528 1504 111 ) ( -527 1504 112 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 1760 -144 ) ( -256 1761 -144 ) ( -256 1760 -145 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 56 +{ +( -512 1696 48 ) ( -512 1696 47 ) ( -512 1697 48 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -528 1648 48 ) ( -527 1648 48 ) ( -528 1648 47 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 1952 -208 ) ( -271 1952 -208 ) ( -272 1953 -208 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -528 1696 -192 ) ( -528 1697 -192 ) ( -527 1696 -192 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -528 1696 48 ) ( -528 1696 47 ) ( -527 1696 48 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 1952 -208 ) ( -256 1953 -208 ) ( -256 1952 -209 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 57 +{ +( -512 1600 80 ) ( -512 1600 79 ) ( -512 1601 80 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -528 1552 80 ) ( -527 1552 80 ) ( -528 1552 79 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 1856 -176 ) ( -271 1856 -176 ) ( -272 1857 -176 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -528 1600 -160 ) ( -528 1601 -160 ) ( -527 1600 -160 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -528 1600 80 ) ( -528 1600 79 ) ( -527 1600 80 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 1856 -176 ) ( -256 1857 -176 ) ( -256 1856 -177 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 58 +{ +( -512 1792 -256 ) ( -512 1793 -256 ) ( -512 1792 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 1792 -256 ) ( -256 1792 -255 ) ( -255 1792 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 1792 -16 ) ( -255 1792 -16 ) ( -256 1793 -16 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 2048 0 ) ( 0 2049 0 ) ( 1 2048 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 2048 -256 ) ( -255 2048 -256 ) ( -256 2048 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 2048 0 ) ( -256 2048 1 ) ( -256 2049 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 59 +{ +( -256 2048 0 ) ( -256 2049 0 ) ( -256 2048 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 1792 -256 ) ( -256 1792 -255 ) ( -255 1792 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 1792 -256 ) ( -255 1792 -256 ) ( -256 1793 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 2048 0 ) ( 0 2049 0 ) ( 1 2048 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 2048 -256 ) ( -255 2048 -256 ) ( -256 2048 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 2048 0 ) ( 0 2048 1 ) ( 0 2049 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 60 +{ +( -256 1504 -352 ) ( -256 1505 -352 ) ( -256 1504 -351 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 1456 -352 ) ( -272 1456 -351 ) ( -271 1456 -352 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 1504 -256 ) ( -271 1504 -256 ) ( -272 1505 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 1504 -112 ) ( -272 1505 -112 ) ( -271 1504 -112 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 1792 -352 ) ( -271 1792 -352 ) ( -272 1792 -351 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 1760 -96 ) ( 0 1760 -95 ) ( 0 1761 -96 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 61 +{ +( -512 1792 16 ) ( -512 1792 15 ) ( -512 1793 16 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -528 1744 16 ) ( -527 1744 16 ) ( -528 1744 15 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 2048 -240 ) ( -271 2048 -240 ) ( -272 2049 -240 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -528 1792 -224 ) ( -528 1793 -224 ) ( -527 1792 -224 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -528 1792 16 ) ( -528 1792 15 ) ( -527 1792 16 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 2048 -240 ) ( -256 2049 -240 ) ( -256 2048 -241 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 62 +{ +( -512 1840 0 ) ( -512 1840 -1 ) ( -512 1841 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -528 1792 0 ) ( -527 1792 0 ) ( -528 1792 -1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 2096 -256 ) ( -271 2096 -256 ) ( -272 2097 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -528 1840 -240 ) ( -528 1841 -240 ) ( -527 1840 -240 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -528 1840 0 ) ( -528 1840 -1 ) ( -527 1840 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -256 2096 -256 ) ( -256 2097 -256 ) ( -256 2096 -257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 63 +{ +( -768 1840 0 ) ( -768 1840 -1 ) ( -768 1841 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -528 1280 0 ) ( -527 1280 0 ) ( -528 1280 -1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -272 2096 -256 ) ( -271 2096 -256 ) ( -272 2097 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -528 1840 -64 ) ( -528 1841 -64 ) ( -527 1840 -64 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -528 1840 0 ) ( -528 1840 -1 ) ( -527 1840 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -512 1840 0 ) ( -512 1841 0 ) ( -512 1840 -1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 64 +{ +( -3584 -2304 0 ) ( -3584 -2303 0 ) ( -3584 -2304 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -4096 -4096 -256 ) ( -4096 -4096 -255 ) ( -4095 -4096 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -4096 -2560 -256 ) ( -4095 -2560 -256 ) ( -4096 -2559 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -3840 -2304 0 ) ( -3840 -2303 0 ) ( -3839 -2304 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -3840 -3584 0 ) ( -3839 -3584 0 ) ( -3840 -3584 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1536 -2304 0 ) ( -1536 -2304 1 ) ( -1536 -2303 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 65 +{ +( -3328 -3584 -256 ) ( -3328 -3583 -256 ) ( -3328 -3584 -255 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -3328 -3584 -256 ) ( -3328 -3584 -255 ) ( -3327 -3584 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -3328 -3584 -256 ) ( -3327 -3584 -256 ) ( -3328 -3583 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -3072 -3072 0 ) ( -3072 -3071 0 ) ( -3071 -3072 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -3072 -1024 0 ) ( -3071 -1024 0 ) ( -3072 -1024 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1536 -3072 0 ) ( -1536 -3072 1 ) ( -1536 -3071 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 66 +{ +( -1536 -3072 0 ) ( -1536 -3071 0 ) ( -1536 -3072 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -3328 -3072 -256 ) ( -3328 -3072 -255 ) ( -3327 -3072 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -3328 -3584 -256 ) ( -3327 -3584 -256 ) ( -3328 -3583 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -3072 -3072 0 ) ( -3072 -3071 0 ) ( -3071 -3072 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -3072 -1536 0 ) ( -3071 -1536 0 ) ( -3072 -1536 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -3072 0 ) ( -1280 -3072 1 ) ( -1280 -3071 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 67 +{ +( -1280 -3072 0 ) ( -1280 -3071 0 ) ( -1280 -3072 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -3328 -3840 -256 ) ( -3328 -3840 -255 ) ( -3327 -3840 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -3328 -3584 -256 ) ( -3327 -3584 -256 ) ( -3328 -3583 -256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -3072 -3072 0 ) ( -3072 -3071 0 ) ( -3071 -3072 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -3072 -768 0 ) ( -3071 -768 0 ) ( -3072 -768 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 4096 -3072 0 ) ( 4096 -3072 1 ) ( 4096 -3071 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 68 +{ +( 0 -3848 0 ) ( 0 -3847 0 ) ( 0 -3848 1 ) placeholder/stainedglass 0 0 0 1 1 0 0 0 +( 384 -3848 0 ) ( 384 -3848 1 ) ( 385 -3848 0 ) placeholder/stainedglass 0 0 0 1 1 0 0 0 +( 384 -3848 0 ) ( 385 -3848 0 ) ( 384 -3847 0 ) placeholder/stainedglass 0 0 0 1 1 0 0 0 +( 640 -3720 400 ) ( 640 -3719 400 ) ( 641 -3720 400 ) placeholder/stainedglass 0 0 0 1 1 0 0 0 +( 640 -3840 128 ) ( 641 -3840 128 ) ( 640 -3840 129 ) placeholder/stainedglass 0 0 0 1 1 0 0 0 +( 200 -3848 0 ) ( 200 -3848 1 ) ( 200 -3847 0 ) placeholder/stainedglass 0 0 0 1 1 0 0 0 +} +// brush 69 +{ +( 1200 -3848 0 ) ( 1200 -3847 0 ) ( 1200 -3848 1 ) placeholder/stainedglass 0 0 0 1 1 0 0 0 +( 1584 -3848 0 ) ( 1584 -3848 1 ) ( 1585 -3848 0 ) placeholder/stainedglass 0 0 0 1 1 0 0 0 +( 1584 -3848 0 ) ( 1585 -3848 0 ) ( 1584 -3847 0 ) placeholder/stainedglass 0 0 0 1 1 0 0 0 +( 1840 -3720 400 ) ( 1840 -3719 400 ) ( 1841 -3720 400 ) placeholder/stainedglass 0 0 0 1 1 0 0 0 +( 1840 -3840 128 ) ( 1841 -3840 128 ) ( 1840 -3840 129 ) placeholder/stainedglass 0 0 0 1 1 0 0 0 +( 1400 -3848 0 ) ( 1400 -3848 1 ) ( 1400 -3847 0 ) placeholder/stainedglass 0 0 0 1 1 0 0 0 +} +// brush 70 +{ +( 2400 -3848 0 ) ( 2400 -3847 0 ) ( 2400 -3848 1 ) placeholder/stainedglass 0 0 0 1 1 0 0 0 +( 2784 -3848 0 ) ( 2784 -3848 1 ) ( 2785 -3848 0 ) placeholder/stainedglass 0 0 0 1 1 0 0 0 +( 2784 -3848 0 ) ( 2785 -3848 0 ) ( 2784 -3847 0 ) placeholder/stainedglass 0 0 0 1 1 0 0 0 +( 3040 -3720 400 ) ( 3040 -3719 400 ) ( 3041 -3720 400 ) placeholder/stainedglass 0 0 0 1 1 0 0 0 +( 3040 -3840 128 ) ( 3041 -3840 128 ) ( 3040 -3840 129 ) placeholder/stainedglass 0 0 0 1 1 0 0 0 +( 2600 -3848 0 ) ( 2600 -3848 1 ) ( 2600 -3847 0 ) placeholder/stainedglass 0 0 0 1 1 0 0 0 +} +// brush 71 +{ +( -200 -768 0 ) ( -200 -767 0 ) ( -200 -768 1 ) placeholder/stainedglass 0 0 0 1 1 0 0 0 +( 184 -768 0 ) ( 184 -768 1 ) ( 185 -768 0 ) placeholder/stainedglass 0 0 0 1 1 0 0 0 +( 184 -768 0 ) ( 185 -768 0 ) ( 184 -767 0 ) placeholder/stainedglass 0 0 0 1 1 0 0 0 +( 440 -640 400 ) ( 440 -639 400 ) ( 441 -640 400 ) placeholder/stainedglass 0 0 0 1 1 0 0 0 +( 440 -760 128 ) ( 441 -760 128 ) ( 440 -760 129 ) placeholder/stainedglass 0 0 0 1 1 0 0 0 +( 0 -768 0 ) ( 0 -768 1 ) ( 0 -767 0 ) placeholder/stainedglass 0 0 0 1 1 0 0 0 +} +// brush 72 +{ +( 1000 -768 0 ) ( 1000 -767 0 ) ( 1000 -768 1 ) placeholder/stainedglass 0 0 0 1 1 0 0 0 +( 1384 -768 0 ) ( 1384 -768 1 ) ( 1385 -768 0 ) placeholder/stainedglass 0 0 0 1 1 0 0 0 +( 1384 -768 0 ) ( 1385 -768 0 ) ( 1384 -767 0 ) placeholder/stainedglass 0 0 0 1 1 0 0 0 +( 1640 -640 400 ) ( 1640 -639 400 ) ( 1641 -640 400 ) placeholder/stainedglass 0 0 0 1 1 0 0 0 +( 1640 -760 128 ) ( 1641 -760 128 ) ( 1640 -760 129 ) placeholder/stainedglass 0 0 0 1 1 0 0 0 +( 1200 -768 0 ) ( 1200 -768 1 ) ( 1200 -767 0 ) placeholder/stainedglass 0 0 0 1 1 0 0 0 +} +// brush 73 +{ +( 2200 -768 0 ) ( 2200 -767 0 ) ( 2200 -768 1 ) placeholder/stainedglass 0 0 0 1 1 0 0 0 +( 2584 -768 0 ) ( 2584 -768 1 ) ( 2585 -768 0 ) placeholder/stainedglass 0 0 0 1 1 0 0 0 +( 2584 -768 0 ) ( 2585 -768 0 ) ( 2584 -767 0 ) placeholder/stainedglass 0 0 0 1 1 0 0 0 +( 2840 -640 400 ) ( 2840 -639 400 ) ( 2841 -640 400 ) placeholder/stainedglass 0 0 0 1 1 0 0 0 +( 2840 -760 128 ) ( 2841 -760 128 ) ( 2840 -760 129 ) placeholder/stainedglass 0 0 0 1 1 0 0 0 +( 2400 -768 0 ) ( 2400 -768 1 ) ( 2400 -767 0 ) placeholder/stainedglass 0 0 0 1 1 0 0 0 +} +// brush 74 +{ +( -512 -16 256 ) ( -512 -15 256 ) ( -512 -16 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -504 -784 0 ) ( -504 -784 1 ) ( -503 -784 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -504 -272 0 ) ( -503 -272 0 ) ( -504 -271 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -248 -16 400 ) ( -248 -15 400 ) ( -247 -16 400 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -504 -768 0 ) ( -503 -768 0 ) ( -504 -768 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -192 -16 256 ) ( -192 -16 257 ) ( -192 -15 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 75 +{ +( 0 -16 256 ) ( 0 -15 256 ) ( 0 -16 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -16 -784 0 ) ( -16 -784 1 ) ( -15 -784 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -16 -272 0 ) ( -15 -272 0 ) ( -16 -271 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 240 -16 400 ) ( 240 -15 400 ) ( 241 -16 400 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -16 -768 0 ) ( -15 -768 0 ) ( -16 -768 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1000 -16 256 ) ( 1000 -16 257 ) ( 1000 -15 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 76 +{ +( 1200 -16 256 ) ( 1200 -15 256 ) ( 1200 -16 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1184 -784 0 ) ( 1184 -784 1 ) ( 1185 -784 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1184 -272 0 ) ( 1185 -272 0 ) ( 1184 -271 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1440 -16 400 ) ( 1440 -15 400 ) ( 1441 -16 400 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1184 -768 0 ) ( 1185 -768 0 ) ( 1184 -768 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2200 -16 256 ) ( 2200 -16 257 ) ( 2200 -15 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 77 +{ +( 2400 -16 256 ) ( 2400 -15 256 ) ( 2400 -16 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2384 -784 0 ) ( 2384 -784 1 ) ( 2385 -784 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2384 -272 0 ) ( 2385 -272 0 ) ( 2384 -271 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2640 -16 400 ) ( 2640 -15 400 ) ( 2641 -16 400 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2384 -768 0 ) ( 2385 -768 0 ) ( 2384 -768 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 4096 -16 256 ) ( 4096 -16 257 ) ( 4096 -15 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 78 +{ +( 2600 -3072 256 ) ( 2600 -3071 256 ) ( 2600 -3072 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2584 -3840 0 ) ( 2584 -3840 1 ) ( 2585 -3840 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2584 -3328 0 ) ( 2585 -3328 0 ) ( 2584 -3327 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2840 -3072 400 ) ( 2840 -3071 400 ) ( 2841 -3072 400 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2584 -3824 0 ) ( 2585 -3824 0 ) ( 2584 -3824 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 4096 -3072 256 ) ( 4096 -3072 257 ) ( 4096 -3071 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 79 +{ +( 200 -3072 256 ) ( 200 -3071 256 ) ( 200 -3072 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 184 -3840 0 ) ( 184 -3840 1 ) ( 185 -3840 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 184 -3328 0 ) ( 185 -3328 0 ) ( 184 -3327 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 440 -3072 400 ) ( 440 -3071 400 ) ( 441 -3072 400 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 184 -3824 0 ) ( 185 -3824 0 ) ( 184 -3824 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1200 -3072 256 ) ( 1200 -3072 257 ) ( 1200 -3071 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 80 +{ +( 1400 -3072 256 ) ( 1400 -3071 256 ) ( 1400 -3072 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1384 -3840 0 ) ( 1384 -3840 1 ) ( 1385 -3840 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1384 -3328 0 ) ( 1385 -3328 0 ) ( 1384 -3327 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1640 -3072 400 ) ( 1640 -3071 400 ) ( 1641 -3072 400 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 1384 -3824 0 ) ( 1385 -3824 0 ) ( 1384 -3824 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2400 -3072 256 ) ( 2400 -3072 257 ) ( 2400 -3071 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 81 +{ +( -1280 -3072 256 ) ( -1280 -3071 256 ) ( -1280 -3072 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1016 -3840 0 ) ( -1016 -3840 1 ) ( -1015 -3840 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1016 -3328 0 ) ( -1015 -3328 0 ) ( -1016 -3327 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -760 -3072 400 ) ( -760 -3071 400 ) ( -759 -3072 400 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1016 -3824 0 ) ( -1015 -3824 0 ) ( -1016 -3824 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 0 -3072 256 ) ( 0 -3072 257 ) ( 0 -3071 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 82 +{ +( 4096 -3072 256 ) ( 4096 -3071 256 ) ( 4096 -3072 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2584 -3840 0 ) ( 2584 -3840 1 ) ( 2585 -3840 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2584 -3328 0 ) ( 2585 -3328 0 ) ( 2584 -3327 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2840 -3072 400 ) ( 2840 -3071 400 ) ( 2841 -3072 400 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2584 -784 0 ) ( 2585 -784 0 ) ( 2584 -784 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 4112 -3072 256 ) ( 4112 -3072 257 ) ( 4112 -3071 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 83 +{ +( -512 -256 928 ) ( -512 -255 928 ) ( -512 -256 929 ) MustRemove/wood1 0 0 0 1 1 0 0 0 +( -512 -1536 1056 ) ( -640 -1728 1376 ) ( -512 -1728 1376 ) MustRemove/wood1 0 0 0 1 1 0 0 0 +( -512 -1344 800 ) ( -640 -1536 1056 ) ( -512 -1536 1056 ) MustRemove/wood1 0 0 0 1 1 0 0 0 +( -512 -1152 608 ) ( -640 -1344 800 ) ( -512 -1344 800 ) MustRemove/wood1 0 0 0 1 1 0 0 0 +( -512 -960 480 ) ( -640 -1152 608 ) ( -512 -1152 608 ) MustRemove/wood1 0 0 0 1 1 0 0 0 +( -512 -960 480 ) ( -512 -768 416 ) ( -640 -768 416 ) MustRemove/wood1 0 0 0 1 1 0 0 0 +( -512 -256 1440 ) ( -513 -256 1440 ) ( -512 -255 1440 ) MustRemove/wood1 0 0 0 1 1 0 0 0 +( -512 -768 928 ) ( -512 -768 929 ) ( -513 -768 928 ) MustRemove/wood1 0 0 0 1 1 0 0 0 +( 4096 -1792 672 ) ( 4096 -1792 673 ) ( 4096 -1791 672 ) MustRemove/wood1 0 0 0 1 1 0 0 0 +} +// brush 84 +{ +( -512 -776 400 ) ( -512 -775 400 ) ( -512 -776 401 ) MustRemove/wood1 0 0 0 1 1 0 0 0 +( -512 -784 400 ) ( -512 -784 401 ) ( -511 -784 400 ) MustRemove/wood1 0 0 0 1 1 0 0 0 +( -512 -776 400 ) ( -511 -776 400 ) ( -512 -775 400 ) MustRemove/wood1 0 0 0 1 1 0 0 0 +( -496 -768 416 ) ( -496 -767 416 ) ( -495 -768 416 ) MustRemove/wood1 0 0 0 1 1 0 0 0 +( -496 -768 408 ) ( -495 -768 408 ) ( -496 -768 409 ) MustRemove/wood1 0 0 0 1 1 0 0 0 +( 4096 -768 408 ) ( 4096 -768 409 ) ( 4096 -767 408 ) MustRemove/wood1 0 0 0 1 1 0 0 0 +} +// brush 85 +{ +( -512 -4352 928 ) ( -512 -4352 929 ) ( -512 -4353 928 ) MustRemove/wood1 0 0 0 1 1 0 0 0 +( -512 -3840 928 ) ( -513 -3840 928 ) ( -512 -3840 929 ) MustRemove/wood1 0 0 0 1 1 0 0 0 +( -512 -4352 1440 ) ( -512 -4353 1440 ) ( -513 -4352 1440 ) MustRemove/wood1 0 0 0 1 1 0 0 0 +( -512 -3648 480 ) ( -640 -3840 416 ) ( -512 -3840 416 ) MustRemove/wood1 0 0 0 1 1 0 0 0 +( -512 -3648 480 ) ( -512 -3456 608 ) ( -640 -3456 608 ) MustRemove/wood1 0 0 0 1 1 0 0 0 +( -512 -3456 608 ) ( -512 -3264 800 ) ( -640 -3264 800 ) MustRemove/wood1 0 0 0 1 1 0 0 0 +( -512 -3264 800 ) ( -512 -3072 1056 ) ( -640 -3072 1056 ) MustRemove/wood1 0 0 0 1 1 0 0 0 +( -512 -3072 1056 ) ( -512 -2880 1376 ) ( -640 -2880 1376 ) MustRemove/wood1 0 0 0 1 1 0 0 0 +( 4096 -2816 672 ) ( 4096 -2817 672 ) ( 4096 -2816 673 ) MustRemove/wood1 0 0 0 1 1 0 0 0 +} +// brush 86 +{ +( -512 -3832 400 ) ( -512 -3832 401 ) ( -512 -3833 400 ) MustRemove/wood1 0 0 0 1 1 0 0 0 +( -496 -3840 408 ) ( -496 -3840 409 ) ( -495 -3840 408 ) MustRemove/wood1 0 0 0 1 1 0 0 0 +( -512 -3832 400 ) ( -512 -3833 400 ) ( -511 -3832 400 ) MustRemove/wood1 0 0 0 1 1 0 0 0 +( -496 -3840 416 ) ( -495 -3840 416 ) ( -496 -3841 416 ) MustRemove/wood1 0 0 0 1 1 0 0 0 +( -512 -3824 400 ) ( -511 -3824 400 ) ( -512 -3824 401 ) MustRemove/wood1 0 0 0 1 1 0 0 0 +( 4096 -3840 408 ) ( 4096 -3841 408 ) ( 4096 -3840 409 ) MustRemove/wood1 0 0 0 1 1 0 0 0 +} +// brush 87 +{ +( -512 -2040 1440 ) ( -512 -2039 1440 ) ( -512 -2040 1441 ) MustRemove/wood1 0 0 0 1 1 0 0 0 +( -512 -2848 1440 ) ( -512 -2848 1441 ) ( -511 -2848 1440 ) MustRemove/wood1 0 0 0 1 1 0 0 0 +( -512 -2040 1440 ) ( -511 -2040 1440 ) ( -512 -2039 1440 ) MustRemove/wood1 0 0 0 1 1 0 0 0 +( -504 -1760 1448 ) ( -504 -1759 1448 ) ( -503 -1760 1448 ) MustRemove/wood1 0 0 0 1 1 0 0 0 +( -504 -1760 1448 ) ( -503 -1760 1448 ) ( -504 -1760 1449 ) MustRemove/wood1 0 0 0 1 1 0 0 0 +( 4096 -1760 1448 ) ( 4096 -1760 1449 ) ( 4096 -1759 1448 ) MustRemove/wood1 0 0 0 1 1 0 0 0 +} +// brush 88 +{ +( 4096 -3072 256 ) ( 4096 -3071 256 ) ( 4096 -3072 257 ) placeholder/stainedglass 154 95 0 15 15 0 0 0 +( 2584 -2560 0 ) ( 2584 -2560 1 ) ( 2585 -2560 0 ) placeholder/stainedglass 154 95 0 15 15 0 0 0 +( 2840 -3072 400 ) ( 2841 -3072 400 ) ( 2840 -3071 400 ) placeholder/stainedglass 154 95 0 15 15 0 0 0 +( 2840 -3072 1408 ) ( 2840 -3071 1408 ) ( 2841 -3072 1408 ) placeholder/stainedglass 154 95 0 15 15 0 0 0 +( 2584 -2048 0 ) ( 2585 -2048 0 ) ( 2584 -2048 1 ) placeholder/stainedglass 154 95 0 15 15 0 0 0 +( 4112 -3072 256 ) ( 4112 -3072 257 ) ( 4112 -3071 256 ) placeholder/stainedglass 154 95 0 15 15 0 0 0 +} +// brush 89 +{ +( 4096 -3072 256 ) ( 4096 -3071 256 ) ( 4096 -3072 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2584 -3840 0 ) ( 2584 -3840 1 ) ( 2585 -3840 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2840 -3072 1408 ) ( 2841 -3072 1408 ) ( 2840 -3071 1408 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2840 -3072 1472 ) ( 2840 -3071 1472 ) ( 2841 -3072 1472 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2584 -784 0 ) ( 2585 -784 0 ) ( 2584 -784 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 4112 -3072 256 ) ( 4112 -3072 257 ) ( 4112 -3071 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 90 +{ +( 4096 -3072 256 ) ( 4096 -3071 256 ) ( 4096 -3072 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2584 -3840 0 ) ( 2584 -3840 1 ) ( 2585 -3840 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2840 -3072 400 ) ( 2841 -3072 400 ) ( 2840 -3071 400 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2840 -3072 1408 ) ( 2840 -3071 1408 ) ( 2841 -3072 1408 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2584 -2560 0 ) ( 2585 -2560 0 ) ( 2584 -2560 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 4112 -3072 256 ) ( 4112 -3072 257 ) ( 4112 -3071 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 91 +{ +( 4096 -3072 256 ) ( 4096 -3071 256 ) ( 4096 -3072 257 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2584 -2048 0 ) ( 2584 -2048 1 ) ( 2585 -2048 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2840 -3072 400 ) ( 2841 -3072 400 ) ( 2840 -3071 400 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2840 -3072 1408 ) ( 2840 -3071 1408 ) ( 2841 -3072 1408 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 2584 -784 0 ) ( 2585 -784 0 ) ( 2584 -784 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 4112 -3072 256 ) ( 4112 -3072 257 ) ( 4112 -3071 256 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +} diff --git a/sourcefiles/mapsrc/caves1.map b/sourcefiles/mapsrc/caves1.map @@ -0,0 +1,2484 @@ +// Game: FANGFLECKED +// Format: Quake3 (legacy) +// entity 0 +{ +"classname" "worldspawn" +"_tb_textures" "textures;textures/MustRemove;textures/placeholder" +"_keepLights" "1" +// brush 0 +{ +( -1088 -624 -6448 ) ( -1088 -623 -6448 ) ( -1088 -624 -6447 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -3008 -624 -6448 ) ( -3008 -624 -6447 ) ( -3007 -624 -6448 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -3008 -624 -64 ) ( -3007 -624 -64 ) ( -3008 -623 -64 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -2752 -368 -48 ) ( -2752 -367 -48 ) ( -2751 -368 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -2752 2192 -6192 ) ( -2751 2192 -6192 ) ( -2752 2192 -6191 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 1344 -368 -6192 ) ( 1344 -368 -6191 ) ( 1344 -367 -6192 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 1 +{ +( -1088 -624 -6448 ) ( -1088 -623 -6448 ) ( -1088 -624 -6447 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -3008 -640 -6448 ) ( -3008 -640 -6447 ) ( -3007 -640 -6448 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -3008 -624 -48 ) ( -3007 -624 -48 ) ( -3008 -623 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -2752 -368 784 ) ( -2752 -367 784 ) ( -2751 -368 784 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -3008 -624 -6448 ) ( -3007 -624 -6448 ) ( -3008 -624 -6447 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 1360 -368 -6192 ) ( 1360 -368 -6191 ) ( 1360 -367 -6192 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 2 +{ +( -1088 -624 -6448 ) ( -1088 -623 -6448.227272727273 ) ( -1088 -624 -6447 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -3008 -624 -6448 ) ( -3008 -624 -6447 ) ( -3007 -624 -6448 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -2752 -368 725.81818181818107 ) ( -2751 -368 725.81818181818107 ) ( -2752 -367 725.59090909090901 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -2752 -368 741.81818181818107 ) ( -2752 -367 741.59090909090901 ) ( -2751 -368 741.81818181818107 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -3008 2192 -7088 ) ( -3007 2192 -7088 ) ( -3008 2192 -7087 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 1344 -368 -6250.181818181818 ) ( 1344 -368 -6249.181818181818 ) ( 1344 -367 -6250.409090909091 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 3 +{ +( -640 -637 -61 ) ( -640 -636 -61 ) ( -640 -637 -60 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 -624 -61 ) ( -640 -624 -60 ) ( -639 -624 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 -637 -48 ) ( -639 -637 -48 ) ( -640 -636 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -576 387 451 ) ( -576 388 451 ) ( -575 387 451 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -576 131 387 ) ( -448 35 451 ) ( -576 35 451 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -576 128 3 ) ( -575 128 3 ) ( -576 128 4 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -576 387 3 ) ( -576 387 4 ) ( -576 388 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 4 +{ +( 832 -637 -61 ) ( 832 -636 -61 ) ( 832 -637 -60 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 832 -624 -61 ) ( 832 -624 -60 ) ( 833 -624 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 832 -637 -48 ) ( 833 -637 -48 ) ( 832 -636 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 896 387 451 ) ( 896 388 451 ) ( 897 387 451 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 832 131 387 ) ( 960 35 451 ) ( 832 35 451 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 896 128 3 ) ( 897 128 3 ) ( 896 128 4 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 896 387 3 ) ( 896 387 4 ) ( 896 388 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 5 +{ +( -576 -624 -48 ) ( -576 -623 -48 ) ( -576 -624 -47 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -576 -624 -48 ) ( -576 -624 -47 ) ( -575 -624 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -576 -624 -48 ) ( -575 -624 -48 ) ( -576 -623 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 800 -64 272 ) ( 800 -63 272 ) ( 801 -64 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 800 128 -32 ) ( 801 128 -32 ) ( 800 128 -31 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 832 -64 -32 ) ( 832 -64 -31 ) ( 832 -63 -32 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 6 +{ +( 512 64 272 ) ( 320 128 272 ) ( 512 112 288 ) MustRemove/rock2 1 -14.5288 1.77636e-15 3.1 1 0 0 0 +( 320 128 272 ) ( 512 128 291 ) ( 512 112 288 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 64 272 ) ( 512 128 272 ) ( 320 128 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 128 272 ) ( 512 128 291 ) ( 320 128 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 112 288 ) ( 512 128 291 ) ( 512 128 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 7 +{ +( 512 128 291 ) ( 512 112 288 ) ( 512 64 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 64 272 ) ( 704 128 272 ) ( 512 128 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 128 272 ) ( 704 128 272 ) ( 512 128 291 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 128 291 ) ( 704 128 272 ) ( 512 112 288 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 112 288 ) ( 704 128 272 ) ( 512 64 272 ) MustRemove/rock2 1 -14.5288 1.77636e-15 3.1 1 0 0 0 +} +// brush 8 +{ +( 896 64 272 ) ( 704 128 272 ) ( 896 112 288 ) MustRemove/rock2 1 -14.5288 1.77636e-15 3.1 1 0 0 0 +( 704 128 272 ) ( 896 128 291 ) ( 896 112 288 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 896 64 272 ) ( 896 128 272 ) ( 704 128 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 896 128 272 ) ( 896 128 291 ) ( 704 128 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 832 112 288 ) ( 832 128 291 ) ( 832 128 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 9 +{ +( 128 64 272 ) ( -64 128 272 ) ( 128 112 288 ) MustRemove/rock2 1 -14.5288 1.77636e-15 3.1 1 0 0 0 +( -64 128 272 ) ( 128 128 291 ) ( 128 112 288 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 64 272 ) ( 128 128 272 ) ( -64 128 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 128 272 ) ( 128 128 291 ) ( -64 128 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 112 288 ) ( 128 128 291 ) ( 128 128 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 10 +{ +( 128 128 291 ) ( 128 112 288 ) ( 128 64 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 64 272 ) ( 320 128 272 ) ( 128 128 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 128 272 ) ( 320 128 272 ) ( 128 128 291 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 128 291 ) ( 320 128 272 ) ( 128 112 288 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 112 288 ) ( 320 128 272 ) ( 128 64 272 ) MustRemove/rock2 1 -14.5288 1.77636e-15 3.1 1 0 0 0 +} +// brush 11 +{ +( -256 64 272 ) ( -448 128 272 ) ( -256 112 288 ) MustRemove/rock2 1 -14.5288 1.77636e-15 3.1 1 0 0 0 +( -448 128 272 ) ( -256 128 291 ) ( -256 112 288 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 64 272 ) ( -256 128 272 ) ( -448 128 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 128 272 ) ( -256 128 291 ) ( -448 128 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 112 288 ) ( -256 128 291 ) ( -256 128 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 12 +{ +( -256 128 291 ) ( -256 112 288 ) ( -256 64 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 64 272 ) ( -64 128 272 ) ( -256 128 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 128 272 ) ( -64 128 272 ) ( -256 128 291 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 128 291 ) ( -64 128 272 ) ( -256 112 288 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 112 288 ) ( -64 128 272 ) ( -256 64 272 ) MustRemove/rock2 1 -14.5288 1.77636e-15 3.1 1 0 0 0 +} +// brush 13 +{ +( -576 128 291 ) ( -576 112 288 ) ( -576 64 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 64 272 ) ( -448 128 272 ) ( -640 128 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 128 272 ) ( -448 128 272 ) ( -640 128 291 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 128 291 ) ( -448 128 272 ) ( -640 112 288 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 112 288 ) ( -448 128 272 ) ( -640 64 272 ) MustRemove/rock2 1 -14.5288 1.77636e-15 3.1 1 0 0 0 +} +// brush 14 +{ +( 1344 2192 147.61581920944718 ) ( 1344 -624 784 ) ( 1344 -624 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 1344 -624 784 ) ( 1360 -624 784 ) ( 1360 -624 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 1360 -624 -48 ) ( 1360 2192 -48.384180790552819 ) ( 1344 2192 -48.384180790552819 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 1344 2192 147.61581920944718 ) ( 1360 2192 147.61581920944718 ) ( 1360 -624 784 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 1360 2192 -48.384180790552819 ) ( 1360 2192 147.61581920944718 ) ( 1344 2192 147.61581920944718 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 1360 -624 784 ) ( 1360 2192 147.61581920944718 ) ( 1360 2192 -48.384180790552819 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 15 +{ +( -1104 2192 147.61581920944718 ) ( -1104 -624 784 ) ( -1104 -624 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -1104 -624 784 ) ( -1088 -624 784 ) ( -1088 -624 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -1088 -624 -48 ) ( -1088 2192 -48.384180790552819 ) ( -1104 2192 -48.384180790552819 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -1104 2192 147.61581920944718 ) ( -1088 2192 147.61581920944718 ) ( -1088 -624 784 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -1088 2192 -48.384180790552819 ) ( -1088 2192 147.61581920944718 ) ( -1104 2192 147.61581920944718 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -1088 -624 784 ) ( -1088 2192 147.61581920944718 ) ( -1088 2192 -48.384180790552819 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 16 +{ +( -1088 2192 -48 ) ( -1088 2193 -48 ) ( -1088 2192 -47 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( -1088 2192 -48 ) ( -1088 2192 -47 ) ( -1087 2192 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( -1088 2192 -48 ) ( -1087 2192 -48 ) ( -1088 2193 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( -1072 2208 144 ) ( -1072 2209 144 ) ( -1071 2208 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( -1072 2208 -32 ) ( -1071 2208 -32 ) ( -1072 2208 -31 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( -64 2208 -32 ) ( -64 2208 -31 ) ( -64 2209 -32 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 17 +{ +( 320 2192 -48 ) ( 320 2193 -48 ) ( 320 2192 -47 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 816 2192 -48 ) ( 816 2192 -47 ) ( 817 2192 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 816 2192 -48 ) ( 817 2192 -48 ) ( 816 2193 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 832 2208 144 ) ( 832 2209 144 ) ( 833 2208 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 832 2208 -32 ) ( 833 2208 -32 ) ( 832 2208 -31 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 1344 2208 -32 ) ( 1344 2208 -31 ) ( 1344 2209 -32 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 18 +{ +( -64 2192 -64 ) ( -64 2193 -64 ) ( -64 2192 -63 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 320 2192 -64 ) ( 320 2192 -63 ) ( 321 2192 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 320 2192 -64 ) ( 321 2192 -64 ) ( 320 2193 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 2208 -48 ) ( 336 2209 -48 ) ( 337 2208 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 2992 -48 ) ( 337 2992 -48 ) ( 336 2992 -47 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 320 2208 -48 ) ( 320 2208 -47 ) ( 320 2209 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 19 +{ +( -320 2208 -48 ) ( -320 2209 -48 ) ( -320 2208 -47 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( -320 2208 -64 ) ( -320 2208 -63 ) ( -319 2208 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( -320 2192 -64 ) ( -319 2192 -64 ) ( -320 2193 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( -304 2208 -48 ) ( -304 2209 -48 ) ( -303 2208 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( -304 2560 -48 ) ( -303 2560 -48 ) ( -304 2560 -47 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( -64 2208 -48 ) ( -64 2208 -47 ) ( -64 2209 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 20 +{ +( -336 2208 -48 ) ( -336 2209 -48 ) ( -336 2208 -47 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( -320 2208 -64 ) ( -320 2208 -63 ) ( -319 2208 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( -320 2192 -64 ) ( -319 2192 -64 ) ( -320 2193 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( -304 2208 144 ) ( -304 2209 144 ) ( -303 2208 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( -304 2560 -48 ) ( -303 2560 -48 ) ( -304 2560 -47 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( -320 2208 -48 ) ( -320 2208 -47 ) ( -320 2209 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 21 +{ +( -320 2208 -48 ) ( -320 2209 -48 ) ( -320 2208 -47 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( -304 2560 -48 ) ( -304 2560 -47 ) ( -303 2560 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( -320 2192 -64 ) ( -319 2192 -64 ) ( -320 2193 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( -304 2208 144 ) ( -304 2209 144 ) ( -303 2208 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( -304 2576 -48 ) ( -303 2576 -48 ) ( -304 2576 -47 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( -64 2208 -48 ) ( -64 2208 -47 ) ( -64 2209 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 22 +{ +( -80 2192 -64 ) ( -80 2193 -64 ) ( -80 2192 -63 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 320 2576 -64 ) ( 320 2576 -63 ) ( 321 2576 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 320 2192 -64 ) ( 321 2192 -64 ) ( 320 2193 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 2208 144 ) ( 336 2209 144 ) ( 337 2208 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 2992 -48 ) ( 337 2992 -48 ) ( 336 2992 -47 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( -64 2192 -64 ) ( -64 2192 -63 ) ( -64 2193 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 23 +{ +( 320 2192 -64 ) ( 320 2193 -64 ) ( 320 2192 -63 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( -64 2576 -64 ) ( -65 2576 -64 ) ( -64 2576 -63 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( -64 2192 -64 ) ( -64 2193 -64 ) ( -65 2192 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( -80 2208 144 ) ( -81 2208 144 ) ( -80 2209 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( -80 2992 -48 ) ( -80 2992 -47 ) ( -81 2992 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 2192 -64 ) ( 336 2192 -63 ) ( 336 2193 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 24 +{ +( 320 2208 -48 ) ( 320 2209 -48 ) ( 320 2208 -47 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 560 2560 -48 ) ( 559 2560 -48 ) ( 560 2560 -47 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 576 2192 -64 ) ( 576 2193 -64 ) ( 575 2192 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 560 2208 144 ) ( 559 2208 144 ) ( 560 2209 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 560 2576 -48 ) ( 560 2576 -47 ) ( 559 2576 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 576 2208 -48 ) ( 576 2208 -47 ) ( 576 2209 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 25 +{ +( 576 2208 -48 ) ( 576 2209 -48 ) ( 576 2208 -47 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 576 2208 -64 ) ( 575 2208 -64 ) ( 576 2208 -63 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 576 2192 -64 ) ( 576 2193 -64 ) ( 575 2192 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 560 2208 144 ) ( 559 2208 144 ) ( 560 2209 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 560 2560 -48 ) ( 560 2560 -47 ) ( 559 2560 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 592 2208 -48 ) ( 592 2208 -47 ) ( 592 2209 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 26 +{ +( 320 2208 -48 ) ( 320 2209 -48 ) ( 320 2208 -47 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 576 2208 -64 ) ( 575 2208 -64 ) ( 576 2208 -63 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 576 2192 -64 ) ( 576 2193 -64 ) ( 575 2192 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 560 2208 -48 ) ( 559 2208 -48 ) ( 560 2209 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 560 2560 -48 ) ( 560 2560 -47 ) ( 559 2560 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 576 2208 -48 ) ( 576 2208 -47 ) ( 576 2209 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 27 +{ +( -64 2192 -80 ) ( -64 2193 -80 ) ( -64 2192 -79 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 2992 -64 ) ( 336 2992 -63 ) ( 337 2992 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 320 2192 -80 ) ( 321 2192 -80 ) ( 320 2193 -80 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 2208 -64 ) ( 336 2209 -64 ) ( 337 2208 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 3376 -64 ) ( 337 3376 -64 ) ( 336 3376 -63 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 1312 2208 -64 ) ( 1312 2208 -63 ) ( 1312 2209 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 28 +{ +( -80 2192 -64 ) ( -80 2193 -64 ) ( -80 2192 -63 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 2992 -48 ) ( 336 2992 -47 ) ( 337 2992 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 320 2192 -64 ) ( 321 2192 -64 ) ( 320 2193 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 2208 144 ) ( 336 2209 144 ) ( 337 2208 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 3376 -48 ) ( 337 3376 -48 ) ( 336 3376 -47 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( -64 2192 -64 ) ( -64 2192 -63 ) ( -64 2193 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 29 +{ +( -80 2192 -64 ) ( -80 2193 -64 ) ( -80 2192 -63 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 3376 -48 ) ( 336 3376 -47 ) ( 337 3376 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 320 2192 -64 ) ( 321 2192 -64 ) ( 320 2193 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 2208 144 ) ( 336 2209 144 ) ( 337 2208 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 3392 -48 ) ( 337 3392 -48 ) ( 336 3392 -47 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( -64 2192 -64 ) ( -64 2192 -63 ) ( -64 2193 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 30 +{ +( -64 2192 -64 ) ( -64 2193 -64 ) ( -64 2192 -63 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 3376 -48 ) ( 336 3376 -47 ) ( 337 3376 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 320 2192 -64 ) ( 321 2192 -64 ) ( 320 2193 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 2208 144 ) ( 336 2209 144 ) ( 337 2208 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 3392 -48 ) ( 337 3392 -48 ) ( 336 3392 -47 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 816 2192 -64 ) ( 816 2192 -63 ) ( 816 2193 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 31 +{ +( 336 2192 -64 ) ( 336 2193 -64 ) ( 336 2192 -63 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( -64 2976 -64 ) ( -65 2976 -64 ) ( -64 2976 -63 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( -64 2192 -64 ) ( -64 2193 -64 ) ( -65 2192 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( -80 2208 144 ) ( -81 2208 144 ) ( -80 2209 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( -80 2992 -48 ) ( -80 2992 -47 ) ( -81 2992 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 816 2192 -64 ) ( 816 2192 -63 ) ( 816 2193 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 32 +{ +( 816 2192 -64 ) ( 816 2193 -64 ) ( 816 2192 -63 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 3764.5714285714289 -48 ) ( 336 3764.5714285714289 -47 ) ( 337 3763.761904761906 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 320 2593.5238095238105 -64 ) ( 321 2592.7142857142862 -64 ) ( 320 2594.5238095238105 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 2596.5714285714289 144 ) ( 336 2597.5714285714289 144 ) ( 337 2595.761904761906 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 3780.5714285714289 -48 ) ( 337 3779.761904761906 -48 ) ( 336 3780.5714285714289 -47 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 1488 1648 -64 ) ( 1488 1648 -63 ) ( 1488 1649 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 33 +{ +( 816 1792 -64 ) ( 816 1793 -64 ) ( 816 1792 -63 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 3364.5714285714289 -48 ) ( 336 3364.5714285714289 -47 ) ( 337 3363.761904761906 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 320 2193.5238095238105 -64 ) ( 321 2192.7142857142862 -64 ) ( 320 2194.5238095238105 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 2196.5714285714289 144 ) ( 336 2197.5714285714289 144 ) ( 337 2195.761904761906 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 3380.5714285714289 -48 ) ( 337 3379.761904761906 -48 ) ( 336 3380.5714285714289 -47 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 1488 1248 -64 ) ( 1488 1248 -63 ) ( 1488 1249 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 34 +{ +( 1712 1408 -64 ) ( 1712 1409 -64 ) ( 1712 1408 -63 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 1004.1658986175189 -48 ) ( 337 1005.1996927803441 -48 ) ( 336 1004.1658986175189 -47 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 320 -212.37480798770218 -64 ) ( 321 -211.34101382487796 -64 ) ( 320 -211.37480798770218 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 -179.83410138248175 144 ) ( 336 -178.83410138248175 144 ) ( 337 -178.80030721965409 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 988.16589861751891 -48 ) ( 336 988.16589861751891 -47 ) ( 337 989.19969278034409 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2064 1968 -64 ) ( 2064 1968 -63 ) ( 2064 1969 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 35 +{ +( 1488 1648 -64 ) ( 1488 1649 -64 ) ( 1488 1648 -63 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 2832 -48 ) ( 336 2832 -47 ) ( 337 2832 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 320 1648 -64 ) ( 321 1648 -64 ) ( 320 1649 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 1664 144 ) ( 336 1665 144 ) ( 337 1664 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 2848 -48 ) ( 337 2848 -48 ) ( 336 2848 -47 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 1527.5294117662693 1680 -64 ) ( 1527.5294117662693 1680 -63 ) ( 1527.5294117662693 1681 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 36 +{ +( 1527.5294117662693 1680 -64 ) ( 1527.5294117662693 1681 -64 ) ( 1527.5294117662693 1680 -63 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 1753.0810810771836 -48 ) ( 337 1754 -48 ) ( 336 1753.0810810771836 -47 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 320 538.3783783744484 -64 ) ( 321 539.29729729337157 -64 ) ( 320 539.3783783744484 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 569.08108107718533 144 ) ( 336 570.08108107718533 144 ) ( 337 570 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 1737.0810810771836 -48 ) ( 336 1737.0810810771836 -47 ) ( 337 1738 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2224 2320 -64 ) ( 2224 2320 -63 ) ( 2224 2321 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 37 +{ +( 816 2192 -80 ) ( 816 2193 -80 ) ( 816 2192 -79 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 1408 -64 ) ( 336 1408 -63 ) ( 337 1408 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 320 2192 -80 ) ( 321 2192 -80 ) ( 320 2193 -80 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 2208 -64 ) ( 336 2209 -64 ) ( 337 2208 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 2992 -64 ) ( 337 2992 -64 ) ( 336 2992 -63 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2864 2208 -64 ) ( 2864 2208 -63 ) ( 2864 2209 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 38 +{ +( 1696 2192 -80 ) ( 1696 2193 -80 ) ( 1696 2192 -79 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 2992 -64 ) ( 336 2992 -63 ) ( 337 2992 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 320 2192 -80 ) ( 321 2192 -80 ) ( 320 2193 -80 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 2208 -64 ) ( 336 2209 -64 ) ( 337 2208 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 3536 -64 ) ( 337 3536 -64 ) ( 336 3536 -63 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2656 2208 -64 ) ( 2656 2208 -63 ) ( 2656 2209 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 39 +{ +( 2640 3376 -64 ) ( 2640 3377 -64 ) ( 2640 3376 -63 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2640 3376 -64 ) ( 2640 3376 -63 ) ( 2641 3376 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2640 3376 -64 ) ( 2641 3376 -64 ) ( 2640 3377 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2656 3840 144 ) ( 2656 3841 144 ) ( 2657 3840 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2656 3840 -48 ) ( 2657 3840 -48 ) ( 2656 3840 -47 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2656 3840 -48 ) ( 2656 3840 -47 ) ( 2656 3841 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 40 +{ +( 2224 3472 -64 ) ( 2224 3473 -64 ) ( 2224 3472 -63 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2224 3472 -64 ) ( 2224 3472 -63 ) ( 2225 3472 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2224 3472 -64 ) ( 2225 3472 -64 ) ( 2224 3473 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2240 3488 144 ) ( 2240 3489 144 ) ( 2241 3488 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2240 3536 -48 ) ( 2241 3536 -48 ) ( 2240 3536 -47 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2240 3488 -48 ) ( 2240 3488 -47 ) ( 2240 3489 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 41 +{ +( 640 3472 -208 ) ( 640 3473 -208 ) ( 640 3472 -207 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2240 3488 144 ) ( 2240 3489 144 ) ( 2241 3488 144.26470588235296 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2240 3536 -48 ) ( 2240 3536 -47 ) ( 2241 3536 -47.735294117647044 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2240 3552 -48 ) ( 2241 3552 -47.735294117647044 ) ( 2240 3552 -47 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2224 3472 -68.235294117647044 ) ( 2225 3472 -67.970588235294088 ) ( 2224 3473 -68.235294117647044 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2240 3488 -48 ) ( 2240 3488 -47 ) ( 2240 3489 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 42 +{ +( 640 3376 -208 ) ( 640 3377 -208 ) ( 640 3376 -207 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2656 3840 254.11764705882365 ) ( 2656 3841 254.11764705882365 ) ( 2657 3840 254.38235294117635 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2656 3840 62.117647058823522 ) ( 2656 3840 63.117647058823536 ) ( 2657 3840 62.382352941176464 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2656 3856 62.117647058823522 ) ( 2657 3856 62.382352941176464 ) ( 2656 3856 63.117647058823536 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2640 3376 41.882352941176478 ) ( 2641 3376 42.147058823529434 ) ( 2640 3377 41.882352941176478 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2240 3840 -48 ) ( 2240 3840 -47 ) ( 2240 3841 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 43 +{ +( 2352 3152 144 ) ( 2352 3024 144 ) ( 2352 3024 -64 ) MustRemove/rock2 -124.152 0 0 3.1 1 0 0 0 +( 2352 3152 144 ) ( 2352 3152 -64 ) ( 2640 3392 -64 ) MustRemove/rock2 115.581 0 0 3.1 1 0 0 0 +( 2352 3024 -64 ) ( 2640 3392 -64 ) ( 2352 3152 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2352 3152 144 ) ( 2640 3392 144 ) ( 2352 3024 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2352 3024 144 ) ( 2640 3392 144 ) ( 2640 3392 -64 ) MustRemove/rock2 -127 0 0 3.1 1 0 0 0 +} +// brush 44 +{ +( 1488 2432 -64 ) ( 1488 2433 -64 ) ( 1488 2432 -63 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 1488 2176 -64 ) ( 1488 2176 -63 ) ( 1489 2176 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 1488 2432 -64 ) ( 1489 2432 -64 ) ( 1488 2433 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 1504 2448 144 ) ( 1504 2449 144 ) ( 1505 2448 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 1504 2448 -48 ) ( 1505 2448 -48 ) ( 1504 2448 -47 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 1504 2448 -48 ) ( 1504 2448 -47 ) ( 1504 2449 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 45 +{ +( 1701.6820208040003 1408 -64 ) ( 1701.6820208040003 1409 -64 ) ( 1701.6820208040003 1408 -63 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 1004.1658986175189 -48 ) ( 337 1005.1996927803441 -48 ) ( 336 1004.1658986175189 -47 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 320 -212.37480798770218 -64 ) ( 321 -211.34101382487796 -64 ) ( 320 -211.37480798770218 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 -179.83410138248175 144 ) ( 336 -178.83410138248175 144 ) ( 337 -178.80030721965409 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 415.95583589018645 910.82377504460112 -48 ) ( 415.95583589018645 910.82377504460112 -47 ) ( 416.95583589018645 911.85756920742631 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 1712 1408 -64 ) ( 1712 1408 -63 ) ( 1712 1409 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 46 +{ +( 1272.4210526315794 2432 -64 ) ( 1271.5789473684206 2433 -64 ) ( 1272.4210526315794 2432 -63 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2000 1568 -64 ) ( 2000 1568 -63 ) ( 2001 1568 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 1272.4210526315794 2432 -64 ) ( 1273.4210526315794 2432 -64 ) ( 1271.5789473684206 2433 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 1274.9473684210529 2448 144 ) ( 1274.1052631578939 2449 144 ) ( 1275.9473684210529 2448 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 1488 2176 -64 ) ( 1489 2176 -64 ) ( 1488 2176 -63 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 1274.9473684210529 2448 -48 ) ( 1274.9473684210529 2448 -47 ) ( 1274.1052631578939 2449 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 47 +{ +( 1712 2256 144 ) ( 1712 2240 144 ) ( 1712 2240 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 1712 2240 144 ) ( 2192 2048 144 ) ( 2192 2048 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2192 2048 -64 ) ( 2272 2144 -64 ) ( 1712 2256 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 1712 2256 144 ) ( 2272 2144 144 ) ( 2192 2048 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2272 2144 -64 ) ( 2272 2144 144 ) ( 1712 2256 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2192 2048 144 ) ( 2272 2144 144 ) ( 2272 2144 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 48 +{ +( 2000 1552 -64 ) ( 2000 1553 -64 ) ( 2000 1552 -63 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2000 1552 -64 ) ( 2000 1552 -63 ) ( 2001 1552 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2000 1552 -64 ) ( 2001 1552 -64 ) ( 2000 1553 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2032 1568 144 ) ( 2032 1569 144 ) ( 2033 1568 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2032 1568 -48 ) ( 2033 1568 -48 ) ( 2032 1568 -47 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2752 1568 -48 ) ( 2752 1568 -47 ) ( 2752 1569 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 49 +{ +( 2352 3024 144 ) ( 2752 1552 144 ) ( 2752 1552 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2752 1552 144 ) ( 2768 1552 144 ) ( 2768 1552 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2752 1552 -64 ) ( 2768 1552 -64 ) ( 2368 3024 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2368 3024 144 ) ( 2768 1552 144 ) ( 2752 1552 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2368 3024 144 ) ( 2352 3024 144 ) ( 2352 3024 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2768 1552 -64 ) ( 2768 1552 144 ) ( 2368 3024 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 50 +{ +( 2048 2768 144 ) ( 2272 2144 144 ) ( 2272 2144 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2064 2784 144 ) ( 2048 2768 144 ) ( 2048 2768 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2272 2144 -64 ) ( 2288 2160 -64 ) ( 2064 2784 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2064 2784 144 ) ( 2288 2160 144 ) ( 2272 2144 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2272 2144 144 ) ( 2288 2160 144 ) ( 2288 2160 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2288 2160 -64 ) ( 2288 2160 144 ) ( 2064 2784 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 51 +{ +( -64 2192 144 ) ( -64 2193 144 ) ( -64 2192 145 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 320 2192 144 ) ( 320 2192 145 ) ( 321 2192 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 320 2192 144 ) ( 321 2192 144 ) ( 320 2193 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 2208 160 ) ( 336 2209 160 ) ( 337 2208 160 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 2992 160 ) ( 337 2992 160 ) ( 336 2992 161 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 320 2208 160 ) ( 320 2208 161 ) ( 320 2209 160 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 52 +{ +( -320 2208 160 ) ( -320 2209 160 ) ( -320 2208 161 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( -320 2208 144 ) ( -320 2208 145 ) ( -319 2208 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( -320 2192 144 ) ( -319 2192 144 ) ( -320 2193 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( -304 2208 160 ) ( -304 2209 160 ) ( -303 2208 160 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( -304 2560 160 ) ( -303 2560 160 ) ( -304 2560 161 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( -64 2208 160 ) ( -64 2208 161 ) ( -64 2209 160 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 53 +{ +( 320 2208 160 ) ( 320 2209 160 ) ( 320 2208 161 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 576 2208 144 ) ( 575 2208 144 ) ( 576 2208 145 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 576 2192 144 ) ( 576 2193 144 ) ( 575 2192 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 560 2208 160 ) ( 559 2208 160 ) ( 560 2209 160 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 560 2560 160 ) ( 560 2560 161 ) ( 559 2560 160 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 576 2208 160 ) ( 576 2208 161 ) ( 576 2209 160 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 54 +{ +( -64 2192 144 ) ( -64 2193 144 ) ( -64 2192 145 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 2992 160 ) ( 336 2992 161 ) ( 337 2992 160 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 320 2192 144 ) ( 321 2192 144 ) ( 320 2193 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 2208 160 ) ( 336 2209 160 ) ( 337 2208 160 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 3376 160 ) ( 337 3376 160 ) ( 336 3376 161 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 1312 2208 160 ) ( 1312 2208 161 ) ( 1312 2209 160 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 55 +{ +( 816 2192 144 ) ( 816 2193 144 ) ( 816 2192 145 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 2208 160 ) ( 336 2208 161 ) ( 337 2208 160 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 320 2192 144 ) ( 321 2192 144 ) ( 320 2193 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 2208 160 ) ( 336 2209 160 ) ( 337 2208 160 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 2992 160 ) ( 337 2992 160 ) ( 336 2992 161 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2864 2208 160 ) ( 2864 2208 161 ) ( 2864 2209 160 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 56 +{ +( 1696 2192 144 ) ( 1696 2193 144 ) ( 1696 2192 145 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 2992 160 ) ( 336 2992 161 ) ( 337 2992 160 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 320 2192 144 ) ( 321 2192 144 ) ( 320 2193 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 2208 160 ) ( 336 2209 160 ) ( 337 2208 160 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 3536 160 ) ( 337 3536 160 ) ( 336 3536 161 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2656 2208 160 ) ( 2656 2208 161 ) ( 2656 2209 160 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 57 +{ +( 1488 2192 144 ) ( 1488 2193 144 ) ( 1488 2192 145 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 1552 160 ) ( 336 1552 161 ) ( 337 1552 160 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 320 2192 144 ) ( 321 2192 144 ) ( 320 2193 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 2208 160 ) ( 336 2209 160 ) ( 337 2208 160 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 2208 160 ) ( 337 2208 160 ) ( 336 2208 161 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2864 2208 160 ) ( 2864 2208 161 ) ( 2864 2209 160 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 58 +{ +( 2240 2192 -80 ) ( 2240 2193 -80 ) ( 2240 2192 -79 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 3536 -64 ) ( 336 3536 -63 ) ( 337 3536 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 320 2192 -80 ) ( 321 2192 -80 ) ( 320 2193 -80 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 2208 -64 ) ( 336 2209 -64 ) ( 337 2208 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 3840 -64 ) ( 337 3840 -64 ) ( 336 3840 -63 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2656 2208 -64 ) ( 2656 2208 -63 ) ( 2656 2209 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 59 +{ +( 640 2192 0 ) ( 640 2193 0 ) ( 640 2192 1 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 2208 -344 ) ( 336 2209 -344 ) ( 337 2208 -343.73529411764702 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 3536 -344 ) ( 336 3536 -343 ) ( 337 3536 -343.73529411764702 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 3840 -344 ) ( 337 3840 -343.73529411764702 ) ( 336 3840 -343 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 320 2192 -364.23529411764702 ) ( 321 2192 -363.97058823529409 ) ( 320 2193 -364.23529411764702 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2240 2208 160 ) ( 2240 2208 161 ) ( 2240 2209 160 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 60 +{ +( 2240 3840 -48 ) ( 2240 3841 -48 ) ( 2240 3840 -47 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2656 3840 -48 ) ( 2656 3840 -47 ) ( 2657 3840 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2640 3376 -64 ) ( 2641 3376 -64 ) ( 2640 3377 -64 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2656 3840 144 ) ( 2656 3841 144 ) ( 2657 3840 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2656 3856 -48 ) ( 2657 3856 -48 ) ( 2656 3856 -47 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2656 3840 -48 ) ( 2656 3840 -47 ) ( 2656 3841 -48 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 61 +{ +( 640 2192 -224 ) ( 640 2193 -224 ) ( 640 2192 -223 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 2208 -568 ) ( 336 2209 -568 ) ( 337 2208 -567.73529411764684 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 3536 -568 ) ( 336 3536 -567 ) ( 337 3536 -567.73529411764684 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 3856 -568 ) ( 337 3856 -567.73529411764684 ) ( 336 3856 -567 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 320 2192 -588.23529411764696 ) ( 321 2192 -587.97058823529403 ) ( 320 2193 -588.23529411764696 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2240 2192 -80 ) ( 2240 2192 -79 ) ( 2240 2193 -80 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 62 +{ +( 2240 2208 160 ) ( 2240 2209 160 ) ( 2240 2208 161 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 3536 160 ) ( 336 3536 161 ) ( 337 3536 160 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 320 2192 144 ) ( 321 2192 144 ) ( 320 2193 144 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 2208 160 ) ( 336 2209 160 ) ( 337 2208 160 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 336 3840 160 ) ( 337 3840 160 ) ( 336 3840 161 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +( 2656 2208 160 ) ( 2656 2208 161 ) ( 2656 2209 160 ) MustRemove/rock2 1 0 0 3.1 1 0 0 0 +} +// brush 63 +{ +( 272 3824 -544 ) ( 272 3825 -544 ) ( 272 3824 -543 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 272 3824 -544 ) ( 273 3824 -544 ) ( 272 3825 -544 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 304 3840 -528 ) ( 304 3841 -528 ) ( 305 3840 -528 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3536 -496 ) ( -656 3072 -992 ) ( -656 3072 -864 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3856 -496 ) ( -656 4368 -864 ) ( -656 4368 -992 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 304 3840 -528 ) ( 304 3840 -527 ) ( 304 3841 -528 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +} +// brush 64 +{ +( 336 3824 -512 ) ( 336 3825 -512 ) ( 336 3824 -511 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 336 3824 -512 ) ( 337 3824 -512 ) ( 336 3825 -512 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3840 -496 ) ( 368 3841 -496 ) ( 369 3840 -496 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3536 -496 ) ( -656 3072 -992 ) ( -656 3072 -864 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3856 -496 ) ( -656 4368 -864 ) ( -656 4368 -992 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3840 -496 ) ( 368 3840 -495 ) ( 368 3841 -496 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +} +// brush 65 +{ +( 304 3824 -528 ) ( 304 3825 -528 ) ( 304 3824 -527 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 304 3824 -528 ) ( 305 3824 -528 ) ( 304 3825 -528 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 336 3840 -512 ) ( 336 3841 -512 ) ( 337 3840 -512 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3536 -496 ) ( -656 3072 -992 ) ( -656 3072 -864 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3856 -496 ) ( -656 4368 -864 ) ( -656 4368 -992 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 336 3840 -512 ) ( 336 3840 -511 ) ( 336 3841 -512 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +} +// brush 66 +{ +( 240 3824 -560 ) ( 240 3825 -560 ) ( 240 3824 -559 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 240 3824 -560 ) ( 241 3824 -560 ) ( 240 3825 -560 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 272 3840 -544 ) ( 272 3841 -544 ) ( 273 3840 -544 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3536 -496 ) ( -656 3072 -992 ) ( -656 3072 -864 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3856 -496 ) ( -656 4368 -864 ) ( -656 4368 -992 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 272 3840 -544 ) ( 272 3840 -543 ) ( 272 3841 -544 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +} +// brush 67 +{ +( 208 3824 -576 ) ( 208 3825 -576 ) ( 208 3824 -575 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 208 3824 -576 ) ( 209 3824 -576 ) ( 208 3825 -576 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 240 3840 -560 ) ( 240 3841 -560 ) ( 241 3840 -560 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3536 -496 ) ( -656 3072 -992 ) ( -656 3072 -864 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3856 -496 ) ( -656 4368 -864 ) ( -656 4368 -992 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 240 3840 -560 ) ( 240 3840 -559 ) ( 240 3841 -560 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +} +// brush 68 +{ +( 176 3824 -592 ) ( 176 3825 -592 ) ( 176 3824 -591 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 176 3824 -592 ) ( 177 3824 -592 ) ( 176 3825 -592 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 208 3840 -576 ) ( 208 3841 -576 ) ( 209 3840 -576 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3536 -496 ) ( -656 3072 -992 ) ( -656 3072 -864 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3856 -496 ) ( -656 4368 -864 ) ( -656 4368 -992 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 208 3840 -576 ) ( 208 3840 -575 ) ( 208 3841 -576 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +} +// brush 69 +{ +( 144 3824 -608 ) ( 144 3825 -608 ) ( 144 3824 -607 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 144 3824 -608 ) ( 145 3824 -608 ) ( 144 3825 -608 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 176 3840 -592 ) ( 176 3841 -592 ) ( 177 3840 -592 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3536 -496 ) ( -656 3072 -992 ) ( -656 3072 -864 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3856 -496 ) ( -656 4368 -864 ) ( -656 4368 -992 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 176 3840 -592 ) ( 176 3840 -591 ) ( 176 3841 -592 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +} +// brush 70 +{ +( 112 3824 -624 ) ( 112 3825 -624 ) ( 112 3824 -623 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 112 3824 -624 ) ( 113 3824 -624 ) ( 112 3825 -624 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 144 3840 -608 ) ( 144 3841 -608 ) ( 145 3840 -608 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3536 -496 ) ( -656 3072 -992 ) ( -656 3072 -864 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3856 -496 ) ( -656 4368 -864 ) ( -656 4368 -992 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 144 3840 -608 ) ( 144 3840 -607 ) ( 144 3841 -608 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +} +// brush 71 +{ +( 80 3824 -640 ) ( 80 3825 -640 ) ( 80 3824 -639 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 80 3824 -640 ) ( 81 3824 -640 ) ( 80 3825 -640 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 112 3840 -624 ) ( 112 3841 -624 ) ( 113 3840 -624 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3536 -496 ) ( -656 3072 -992 ) ( -656 3072 -864 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3856 -496 ) ( -656 4368 -864 ) ( -656 4368 -992 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 112 3840 -624 ) ( 112 3840 -623 ) ( 112 3841 -624 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +} +// brush 72 +{ +( 48 3824 -656 ) ( 48 3825 -656 ) ( 48 3824 -655 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 48 3824 -656 ) ( 49 3824 -656 ) ( 48 3825 -656 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 80 3840 -640 ) ( 80 3841 -640 ) ( 81 3840 -640 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3536 -496 ) ( -656 3072 -992 ) ( -656 3072 -864 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3856 -496 ) ( -656 4368 -864 ) ( -656 4368 -992 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 80 3840 -640 ) ( 80 3840 -639 ) ( 80 3841 -640 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +} +// brush 73 +{ +( 16 3824 -672 ) ( 16 3825 -672 ) ( 16 3824 -671 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 16 3824 -672 ) ( 17 3824 -672 ) ( 16 3825 -672 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 48 3840 -656 ) ( 48 3841 -656 ) ( 49 3840 -656 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3536 -496 ) ( -656 3072 -992 ) ( -656 3072 -864 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3856 -496 ) ( -656 4368 -864 ) ( -656 4368 -992 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 48 3840 -656 ) ( 48 3840 -655 ) ( 48 3841 -656 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +} +// brush 74 +{ +( -16 3824 -688 ) ( -16 3825 -688 ) ( -16 3824 -687 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -16 3824 -688 ) ( -15 3824 -688 ) ( -16 3825 -688 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 16 3840 -672 ) ( 16 3841 -672 ) ( 17 3840 -672 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3536 -496 ) ( -656 3072 -992 ) ( -656 3072 -864 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3856 -496 ) ( -656 4368 -864 ) ( -656 4368 -992 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 16 3840 -672 ) ( 16 3840 -671 ) ( 16 3841 -672 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +} +// brush 75 +{ +( -48 3824 -704 ) ( -48 3825 -704 ) ( -48 3824 -703 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -48 3824 -704 ) ( -47 3824 -704 ) ( -48 3825 -704 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -16 3840 -688 ) ( -16 3841 -688 ) ( -15 3840 -688 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3536 -496 ) ( -656 3072 -992 ) ( -656 3072 -864 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3856 -496 ) ( -656 4368 -864 ) ( -656 4368 -992 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -16 3840 -688 ) ( -16 3840 -687 ) ( -16 3841 -688 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +} +// brush 76 +{ +( -112 3824 -736 ) ( -112 3825 -736 ) ( -112 3824 -735 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -112 3824 -736 ) ( -111 3824 -736 ) ( -112 3825 -736 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -80 3840 -720 ) ( -80 3841 -720 ) ( -79 3840 -720 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3536 -496 ) ( -656 3072 -992 ) ( -656 3072 -864 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3856 -496 ) ( -656 4368 -864 ) ( -656 4368 -992 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -80 3840 -720 ) ( -80 3840 -719 ) ( -80 3841 -720 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +} +// brush 77 +{ +( -176 3824 -768 ) ( -176 3825 -768 ) ( -176 3824 -767 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -176 3824 -768 ) ( -175 3824 -768 ) ( -176 3825 -768 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -144 3840 -752 ) ( -144 3841 -752 ) ( -143 3840 -752 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3536 -496 ) ( -656 3072 -992 ) ( -656 3072 -864 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3856 -496 ) ( -656 4368 -864 ) ( -656 4368 -992 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -144 3840 -752 ) ( -144 3840 -751 ) ( -144 3841 -752 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +} +// brush 78 +{ +( -272 3824 -816 ) ( -272 3825 -816 ) ( -272 3824 -815 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -272 3824 -816 ) ( -271 3824 -816 ) ( -272 3825 -816 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -240 3840 -800 ) ( -240 3841 -800 ) ( -239 3840 -800 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3536 -496 ) ( -656 3072 -992 ) ( -656 3072 -864 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3856 -496 ) ( -656 4368 -864 ) ( -656 4368 -992 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -240 3840 -800 ) ( -240 3840 -799 ) ( -240 3841 -800 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +} +// brush 79 +{ +( -304 3824 -832 ) ( -304 3825 -832 ) ( -304 3824 -831 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -304 3824 -832 ) ( -303 3824 -832 ) ( -304 3825 -832 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -272 3840 -816 ) ( -272 3841 -816 ) ( -271 3840 -816 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3536 -496 ) ( -656 3072 -992 ) ( -656 3072 -864 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3856 -496 ) ( -656 4368 -864 ) ( -656 4368 -992 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -272 3840 -816 ) ( -272 3840 -815 ) ( -272 3841 -816 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +} +// brush 80 +{ +( -400 3824 -880 ) ( -400 3825 -880 ) ( -400 3824 -879 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -400 3824 -880 ) ( -399 3824 -880 ) ( -400 3825 -880 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -368 3840 -864 ) ( -368 3841 -864 ) ( -367 3840 -864 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3536 -496 ) ( -656 3072 -992 ) ( -656 3072 -864 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3856 -496 ) ( -656 4368 -864 ) ( -656 4368 -992 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -368 3840 -864 ) ( -368 3840 -863 ) ( -368 3841 -864 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +} +// brush 81 +{ +( -432 3824 -896 ) ( -432 3825 -896 ) ( -432 3824 -895 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -432 3824 -896 ) ( -431 3824 -896 ) ( -432 3825 -896 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -400 3840 -880 ) ( -400 3841 -880 ) ( -399 3840 -880 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3536 -496 ) ( -656 3072 -992 ) ( -656 3072 -864 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3856 -496 ) ( -656 4368 -864 ) ( -656 4368 -992 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -400 3840 -880 ) ( -400 3840 -879 ) ( -400 3841 -880 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +} +// brush 82 +{ +( -528 3824 -944 ) ( -528 3825 -944 ) ( -528 3824 -943 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -528 3824 -944 ) ( -527 3824 -944 ) ( -528 3825 -944 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -496 3840 -928 ) ( -496 3841 -928 ) ( -495 3840 -928 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3536 -496 ) ( -656 3072 -992 ) ( -656 3072 -864 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3856 -496 ) ( -656 4368 -864 ) ( -656 4368 -992 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -496 3840 -928 ) ( -496 3840 -927 ) ( -496 3841 -928 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +} +// brush 83 +{ +( -560 3824 -960 ) ( -560 3825 -960 ) ( -560 3824 -959 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -560 3824 -960 ) ( -559 3824 -960 ) ( -560 3825 -960 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -528 3840 -944 ) ( -528 3841 -944 ) ( -527 3840 -944 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3536 -496 ) ( -656 3072 -992 ) ( -656 3072 -864 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3856 -496 ) ( -656 4368 -864 ) ( -656 4368 -992 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -528 3840 -944 ) ( -528 3840 -943 ) ( -528 3841 -944 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +} +// brush 84 +{ +( -624 3824 -992 ) ( -624 3825 -992 ) ( -624 3824 -991 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -624 3824 -992 ) ( -623 3824 -992 ) ( -624 3825 -992 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -592 3840 -976 ) ( -592 3841 -976 ) ( -591 3840 -976 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3536 -496 ) ( -656 3072 -992 ) ( -656 3072 -864 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3856 -496 ) ( -656 4368 -864 ) ( -656 4368 -992 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -592 3840 -976 ) ( -592 3840 -975 ) ( -592 3841 -976 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +} +// brush 85 +{ +( -656 3824 -1008 ) ( -656 3825 -1008 ) ( -656 3824 -1007 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -656 3824 -1008 ) ( -655 3824 -1008 ) ( -656 3825 -1008 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -624 3840 -992 ) ( -624 3841 -992 ) ( -623 3840 -992 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3536 -496 ) ( -656 3072 -992 ) ( -656 3072 -864 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3856 -496 ) ( -656 4368 -864 ) ( -656 4368 -992 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -624 3840 -992 ) ( -624 3840 -991 ) ( -624 3841 -992 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +} +// brush 86 +{ +( -592 3824 -976 ) ( -592 3825 -976 ) ( -592 3824 -975 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -592 3824 -976 ) ( -591 3824 -976 ) ( -592 3825 -976 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -560 3840 -960 ) ( -560 3841 -960 ) ( -559 3840 -960 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3536 -496 ) ( -656 3072 -992 ) ( -656 3072 -864 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3856 -496 ) ( -656 4368 -864 ) ( -656 4368 -992 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -560 3840 -960 ) ( -560 3840 -959 ) ( -560 3841 -960 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +} +// brush 87 +{ +( -496 3824 -928 ) ( -496 3825 -928 ) ( -496 3824 -927 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -496 3824 -928 ) ( -495 3824 -928 ) ( -496 3825 -928 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -464 3840 -912 ) ( -464 3841 -912 ) ( -463 3840 -912 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3536 -496 ) ( -656 3072 -992 ) ( -656 3072 -864 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3856 -496 ) ( -656 4368 -864 ) ( -656 4368 -992 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -464 3840 -912 ) ( -464 3840 -911 ) ( -464 3841 -912 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +} +// brush 88 +{ +( -464 3824 -912 ) ( -464 3825 -912 ) ( -464 3824 -911 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -464 3824 -912 ) ( -463 3824 -912 ) ( -464 3825 -912 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -432 3840 -896 ) ( -432 3841 -896 ) ( -431 3840 -896 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3536 -496 ) ( -656 3072 -992 ) ( -656 3072 -864 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3856 -496 ) ( -656 4368 -864 ) ( -656 4368 -992 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -432 3840 -896 ) ( -432 3840 -895 ) ( -432 3841 -896 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +} +// brush 89 +{ +( -368 3824 -864 ) ( -368 3825 -864 ) ( -368 3824 -863 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -368 3824 -864 ) ( -367 3824 -864 ) ( -368 3825 -864 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -336 3840 -848 ) ( -336 3841 -848 ) ( -335 3840 -848 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3536 -496 ) ( -656 3072 -992 ) ( -656 3072 -864 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3856 -496 ) ( -656 4368 -864 ) ( -656 4368 -992 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -336 3840 -848 ) ( -336 3840 -847 ) ( -336 3841 -848 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +} +// brush 90 +{ +( -336 3824 -848 ) ( -336 3825 -848 ) ( -336 3824 -847 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -336 3824 -848 ) ( -335 3824 -848 ) ( -336 3825 -848 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -304 3840 -832 ) ( -304 3841 -832 ) ( -303 3840 -832 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3536 -496 ) ( -656 3072 -992 ) ( -656 3072 -864 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3856 -496 ) ( -656 4368 -864 ) ( -656 4368 -992 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -304 3840 -832 ) ( -304 3840 -831 ) ( -304 3841 -832 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +} +// brush 91 +{ +( -240 3824 -800 ) ( -240 3825 -800 ) ( -240 3824 -799 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -240 3824 -800 ) ( -239 3824 -800 ) ( -240 3825 -800 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -208 3840 -784 ) ( -208 3841 -784 ) ( -207 3840 -784 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3536 -496 ) ( -656 3072 -992 ) ( -656 3072 -864 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3856 -496 ) ( -656 4368 -864 ) ( -656 4368 -992 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -208 3840 -784 ) ( -208 3840 -783 ) ( -208 3841 -784 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +} +// brush 92 +{ +( -208 3824 -784 ) ( -208 3825 -784 ) ( -208 3824 -783 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -208 3824 -784 ) ( -207 3824 -784 ) ( -208 3825 -784 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -176 3840 -768 ) ( -176 3841 -768 ) ( -175 3840 -768 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3536 -496 ) ( -656 3072 -992 ) ( -656 3072 -864 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3856 -496 ) ( -656 4368 -864 ) ( -656 4368 -992 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -176 3840 -768 ) ( -176 3840 -767 ) ( -176 3841 -768 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +} +// brush 93 +{ +( -144 3824 -752 ) ( -144 3825 -752 ) ( -144 3824 -751 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -144 3824 -752 ) ( -143 3824 -752 ) ( -144 3825 -752 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -112 3840 -736 ) ( -112 3841 -736 ) ( -111 3840 -736 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3536 -496 ) ( -656 3072 -992 ) ( -656 3072 -864 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3856 -496 ) ( -656 4368 -864 ) ( -656 4368 -992 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -112 3840 -736 ) ( -112 3840 -735 ) ( -112 3841 -736 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +} +// brush 94 +{ +( -80 3824 -720 ) ( -80 3825 -720 ) ( -80 3824 -719 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -80 3824 -720 ) ( -79 3824 -720 ) ( -80 3825 -720 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -48 3840 -704 ) ( -48 3841 -704 ) ( -47 3840 -704 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3536 -496 ) ( -656 3072 -992 ) ( -656 3072 -864 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3856 -496 ) ( -656 4368 -864 ) ( -656 4368 -992 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -48 3840 -704 ) ( -48 3840 -703 ) ( -48 3841 -704 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +} +// brush 95 +{ +( -688 3041.5000000000073 -672 ) ( -688 3041.5000000000077 -1008 ) ( -688 3057.5 -1008 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -688 3057.5 -672 ) ( 384 3536 -256 ) ( 368 3520 -256 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 384 3536 -1008 ) ( 384 3536 -256 ) ( -688 3057.5 -672 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -688 3057.5 -672 ) ( 368 3520 -256 ) ( -688 3041.5000000000073 -672 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3520 -1008 ) ( 384 3536 -1008 ) ( -688 3057.5 -1008 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -688 3041.5000000000073 -672 ) ( 368 3520 -256 ) ( 368 3520 -1008 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3520 -256 ) ( 384 3536 -256 ) ( 384 3536 -1008 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +} +// brush 96 +{ +( -688 4384 -896 ) ( -688 4368 -896 ) ( -688 4368 -1008 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -656 4368 -896 ) ( 368 3856 -496 ) ( 368 3856 -1008 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( -656 4384 -896 ) ( 368 3872 -496 ) ( 368 3856 -496 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3856 -1008 ) ( 368 3872 -1008 ) ( -656 4384 -1008 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3872 -1008 ) ( 368 3872 -496 ) ( -656 4384 -896 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 368 3856 -496 ) ( 368 3872 -496 ) ( 368 3872 -1008 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +} +// brush 97 +{ +( 368 3824 -512 ) ( 368 3825 -512 ) ( 368 3824 -511 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 608 3536 -512 ) ( 608 3536 -511 ) ( 609 3536 -512 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 608 3824 -1008 ) ( 609 3824 -1008 ) ( 608 3825 -1008 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 640 3840 -496 ) ( 640 3841 -496 ) ( 641 3840 -496 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 640 3872 -496 ) ( 641 3872 -496 ) ( 640 3872 -495 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 640 3840 -496 ) ( 640 3840 -495 ) ( 640 3841 -496 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +} +// brush 98 +{ +( 640 3552 -496 ) ( 640 3552 -272 ) ( 384 3536 -272 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 640 3536 -496 ) ( 384 3536 -496 ) ( 384 3536 -272 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 640 3536 -496 ) ( 640 3552 -496 ) ( 384 3536 -496 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 384 3536 -272 ) ( 640 3552 -272 ) ( 640 3536 -272 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +( 640 3536 -272 ) ( 640 3552 -272 ) ( 640 3552 -496 ) MustRemove/rock2 0 0 0 1 1 0 0 0 +} +} +// entity 1 +{ +"classname" "func_group" +"_tb_type" "_tb_group" +"_tb_name" "cave stairs" +"_tb_id" "16" +// brush 0 +{ +( 768 224 259 ) ( 768 224 275 ) ( 704 128 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 128 272 ) ( 768 224 275 ) ( 768 208 291 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 192 291 ) ( 704 128 272 ) ( 768 208 291 ) MustRemove/rock2 1 -16 1.77636e-15 3.1 1 0 0 0 +( 768 192 291 ) ( 848 152 291 ) ( 704 128 272 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( 848 152 291 ) ( 867.33031674200265 128 286.22171945702848 ) ( 704 128 272 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( 704 128 272 ) ( 886.30303030457071 128 259 ) ( 768 224 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 867.33031674200265 128 286.22171945702848 ) ( 886.30303030457071 128 259 ) ( 704 128 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 224 259 ) ( 886.30303030457071 128 259 ) ( 849.45454545406437 183.27272727344825 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 832 176 291 ) ( 848 152 291 ) ( 768 192 291 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 224 275 ) ( 832.727272725288 191.63636363769058 275 ) ( 832 176 291 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 224 259 ) ( 849.45454545406437 183.27272727344825 259 ) ( 832.727272725288 191.63636363769058 275 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 849.45454545406437 183.27272727344825 259 ) ( 886.30303030457071 128 259 ) ( 867.33031674200265 128 286.22171945702848 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 1 +{ +( 704 128 272 ) ( 704 128 -48 ) ( 704 189.39999999999338 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 189.39999999999338 -48 ) ( 706.73684210413512 194.73684210238014 -48 ) ( 704 128 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 706.73684210413512 194.73684210238014 -48 ) ( 768 256 243 ) ( 704 128 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 128 272 ) ( 768 256 243 ) ( 768 240 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 706.73684210413512 194.73684210238014 -48 ) ( 890.52631578704541 194.73684210239855 -48 ) ( 768 256 243 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 886.3030302178654 128 259 ) ( 896 128 245.08695649772926 ) ( 896 128 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 896 128 -48 ) ( 896 192 -48 ) ( 890.52631578704541 194.73684210239855 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 240 259 ) ( 833.45454548909129 207.27272730375182 259 ) ( 704 128 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 833.45454548909129 207.27272730375182 259 ) ( 886.3030302178654 128 259 ) ( 704 128 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 833.45454548909129 207.27272730375182 259 ) ( 768 240 259 ) ( 768 256 243 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 834.18181834873894 222.90909086887063 243 ) ( 768 256 243 ) ( 890.52631578704541 194.73684210239855 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 896 128 245.08695649772926 ) ( 886.3030302178654 128 259 ) ( 833.45454548909129 207.27272730375182 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 896 128 245.08695649772926 ) ( 896 192 183.86956566106892 ) ( 896 192 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 2 +{ +( 768 288 195 ) ( 768 288 211 ) ( 704 192 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 192 195 ) ( 768 288 211 ) ( 768 272 227 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 256 227 ) ( 704 192 195 ) ( 768 272 227 ) MustRemove/rock2 1 -16 1.77636e-15 3.1 1 0 0 0 +( 768 256 227 ) ( 896 192 227 ) ( 704 192 195 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( 704 192 195 ) ( 896 192 227 ) ( 896 192 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 896 192 195 ) ( 896 224 195 ) ( 768 288 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 272 227 ) ( 896 208 227 ) ( 896 192 227 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 896 208 227 ) ( 768 272 227 ) ( 768 288 211 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 896 224 195 ) ( 896 224 211 ) ( 768 288 211 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 864 496 -61 ) ( 896 448 -61 ) ( 864 128 291 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 3 +{ +( 704 192 195 ) ( 704 192 -61 ) ( 704 256 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 256 -61 ) ( 768 320 179 ) ( 704 192 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 192 195 ) ( 768 320 179 ) ( 768 304 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 192 195 ) ( 896 192 195 ) ( 896 192 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 896 192 -48 ) ( 896 256 -48 ) ( 704 256 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 304 195 ) ( 896 240 195 ) ( 896 192 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 256 -61 ) ( 896 256 -61 ) ( 768 320 179 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 320 179 ) ( 896 256 179 ) ( 896 240 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 896 256 -61 ) ( 896 256 179 ) ( 768 320 179 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 864 496 -61 ) ( 896 448 -61 ) ( 864 128 291 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 896 240 195 ) ( 896 256 179 ) ( 896 256 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 4 +{ +( 768 352 131 ) ( 768 352 147 ) ( 704 256 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 256 131 ) ( 768 352 147 ) ( 768 336 163 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 320 163 ) ( 704 256 131 ) ( 768 336 163 ) MustRemove/rock2 1 -16 1.77636e-15 3.1 1 0 0 0 +( 768 320 163 ) ( 896 256 163 ) ( 704 256 131 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( 704 256 131 ) ( 896 256 163 ) ( 896 256 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 896 256 131 ) ( 896 288 131 ) ( 768 352 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 336 163 ) ( 896 272 163 ) ( 896 256 163 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 352 147 ) ( 896 288 147 ) ( 896 272 163 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 896 288 131 ) ( 896 288 147 ) ( 768 352 147 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 864 496 -61 ) ( 896 448 -61 ) ( 864 128 291 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 5 +{ +( 704 256 131 ) ( 704 256 -61 ) ( 704 320 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 320 -61 ) ( 768 384 115 ) ( 704 256 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 256 131 ) ( 768 384 115 ) ( 768 368 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 256 131 ) ( 896 256 131 ) ( 896 256 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 896 256 -48 ) ( 896 320 -48 ) ( 704 320 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 368 131 ) ( 896 304 131 ) ( 896 256 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 320 -61 ) ( 896 320 -61 ) ( 768 384 115 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 896 304 131 ) ( 768 368 131 ) ( 768 384 115 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 896 320 -61 ) ( 896 320 115 ) ( 768 384 115 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 864 496 -61 ) ( 896 448 -61 ) ( 864 128 291 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 896 304 131 ) ( 896 320 115 ) ( 896 320 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 6 +{ +( 768 416 67 ) ( 768 416 83 ) ( 704 320 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 320 67 ) ( 768 416 83 ) ( 768 400 99 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 384 99 ) ( 704 320 67 ) ( 768 400 99 ) MustRemove/rock2 1 -16 1.77636e-15 3.1 1 0 0 0 +( 768 384 99 ) ( 896 320 99 ) ( 704 320 67 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( 704 320 67 ) ( 896 320 99 ) ( 896 320 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 896 320 67 ) ( 896 352 67 ) ( 768 416 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 400 99 ) ( 896 336 99 ) ( 896 320 99 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 416 83 ) ( 896 352 83 ) ( 896 336 99 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 896 352 67 ) ( 896 352 83 ) ( 768 416 83 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 864 496 -61 ) ( 896 448 -61 ) ( 864 128 291 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 7 +{ +( 704 320 67 ) ( 704 320 -61 ) ( 704 384 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 384 -61 ) ( 768 448 51 ) ( 704 320 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 320 67 ) ( 768 448 51 ) ( 768 432 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 320 67 ) ( 896 320 67 ) ( 896 320 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 896 320 -48 ) ( 896 384 -48 ) ( 704 384 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 432 67 ) ( 896 368 67 ) ( 896 320 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 384 -61 ) ( 896 384 -61 ) ( 768 448 51 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 448 51 ) ( 896 384 51 ) ( 896 368 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 896 384 -61 ) ( 896 384 51 ) ( 768 448 51 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 864 496 -61 ) ( 896 448 -61 ) ( 864 128 291 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 896 368 67 ) ( 896 384 51 ) ( 896 384 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 8 +{ +( 768 480 3 ) ( 768 480 19 ) ( 704 384 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 384 3 ) ( 768 480 19 ) ( 768 464 35 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 448 35 ) ( 704 384 3 ) ( 768 464 35 ) MustRemove/rock2 1 -16 1.77636e-15 3.1 1 0 0 0 +( 768 448 35 ) ( 896 384 35 ) ( 704 384 3 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( 704 384 3 ) ( 896 384 35 ) ( 896 384 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 896 384 3 ) ( 896 416 3 ) ( 768 480 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 464 35 ) ( 896 400 35 ) ( 896 384 35 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 896 400 35 ) ( 768 464 35 ) ( 768 480 19 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 896 416 3 ) ( 896 416 19 ) ( 768 480 19 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 864 496 -61 ) ( 896 448 -61 ) ( 864 128 291 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 9 +{ +( 704 384 3 ) ( 704 384 -61 ) ( 704 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 496 3 ) ( 704 384 3 ) ( 704 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 384 3 ) ( 896 384 3 ) ( 896 384 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 896 384 -48 ) ( 896 448 -48 ) ( 704 448 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 496 3 ) ( 896 432 3 ) ( 896 384 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 448 -61 ) ( 896 448 -61 ) ( 768 512 -13 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 512 -13 ) ( 896 448 -13 ) ( 896 432 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 896 448 -61 ) ( 896 448 -13 ) ( 768 512 -13 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 864 496 -61 ) ( 896 448 -61 ) ( 864 128 291 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 896 432 3 ) ( 896 448 -13 ) ( 896 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 10 +{ +( 768 544 -61 ) ( 768 544 -45 ) ( 704 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 448 -61 ) ( 768 544 -45 ) ( 768 528 -29 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 512 -29 ) ( 704 448 -61 ) ( 768 528 -29 ) MustRemove/rock2 1 -16 1.77636e-15 3.1 1 0 0 0 +( 768 512 -29 ) ( 896 448 -29 ) ( 704 448 -61 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( 704 448 -61 ) ( 896 448 -29 ) ( 896 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 896 448 -48 ) ( 896 480 -48 ) ( 768 544 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 528 -29 ) ( 896 464 -29 ) ( 896 448 -29 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 544 -45 ) ( 896 480 -45 ) ( 896 464 -29 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 896 480 -61 ) ( 896 480 -45 ) ( 768 544 -45 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 864 496 -61 ) ( 896 448 -61 ) ( 864 128 291 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 11 +{ +( 512 480 -45 ) ( 512 464 -29 ) ( 512 448 -29 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 544 -61 ) ( 768 544 -45 ) ( 512 480 -45 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 480 -45 ) ( 768 544 -45 ) ( 768 528 -29 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 448 -29 ) ( 704 448 -61 ) ( 512 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 448 -48 ) ( 768 544 -48 ) ( 512 480 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 464 -29 ) ( 768 528 -29 ) ( 768 512 -29 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 448 -29 ) ( 768 512 -29 ) ( 704 448 -61 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( 768 512 -29 ) ( 768 544 -61 ) ( 704 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 528 -29 ) ( 768 544 -45 ) ( 768 544 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 12 +{ +( 512 448 -13 ) ( 512 432 3 ) ( 512 384 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 448 -61 ) ( 768 512 -13 ) ( 512 448 -13 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 448 -13 ) ( 768 512 -13 ) ( 768 496 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 384 3 ) ( 704 384 3 ) ( 704 384 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 384 -48 ) ( 704 448 -48 ) ( 512 448 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 432 3 ) ( 768 496 3 ) ( 704 384 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 448 -61 ) ( 768 512 -13 ) ( 512 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 384 -61 ) ( 768 512 -13 ) ( 704 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 384 3 ) ( 768 496 3 ) ( 704 384 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 496 3 ) ( 768 512 -13 ) ( 704 384 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 13 +{ +( 512 416 19 ) ( 512 400 35 ) ( 512 384 35 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 480 3 ) ( 768 480 19 ) ( 512 416 19 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 416 19 ) ( 768 480 19 ) ( 768 464 35 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 384 35 ) ( 704 384 3 ) ( 512 384 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 384 3 ) ( 768 480 3 ) ( 512 416 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 400 35 ) ( 768 464 35 ) ( 768 448 35 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 384 35 ) ( 768 448 35 ) ( 704 384 3 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( 768 448 35 ) ( 768 480 3 ) ( 704 384 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 464 35 ) ( 768 480 19 ) ( 768 480 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 14 +{ +( 512 384 51 ) ( 512 368 67 ) ( 512 320 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 384 -61 ) ( 768 448 51 ) ( 512 384 51 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 384 51 ) ( 768 448 51 ) ( 768 432 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 320 67 ) ( 704 320 67 ) ( 704 320 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 320 -48 ) ( 704 384 -48 ) ( 512 384 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 368 67 ) ( 768 432 67 ) ( 704 320 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 384 -61 ) ( 768 448 51 ) ( 512 384 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 320 67 ) ( 768 432 67 ) ( 704 320 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 320 -61 ) ( 768 448 51 ) ( 704 384 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 432 67 ) ( 768 448 51 ) ( 704 320 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 15 +{ +( 512 352 83 ) ( 512 336 99 ) ( 512 320 99 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 416 67 ) ( 768 416 83 ) ( 512 352 83 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 352 83 ) ( 768 416 83 ) ( 768 400 99 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 320 99 ) ( 704 320 67 ) ( 512 320 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 320 67 ) ( 768 416 67 ) ( 512 352 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 336 99 ) ( 768 400 99 ) ( 768 384 99 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 320 99 ) ( 768 384 99 ) ( 704 320 67 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( 768 384 99 ) ( 768 416 67 ) ( 704 320 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 400 99 ) ( 768 416 83 ) ( 768 416 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 16 +{ +( 512 320 115 ) ( 512 304 131 ) ( 512 256 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 320 -61 ) ( 768 384 115 ) ( 512 320 115 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 320 115 ) ( 768 384 115 ) ( 768 368 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 256 131 ) ( 704 256 131 ) ( 704 256 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 256 -48 ) ( 704 320 -48 ) ( 512 320 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 304 131 ) ( 768 368 131 ) ( 704 256 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 320 -61 ) ( 768 384 115 ) ( 512 320 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 256 131 ) ( 768 368 131 ) ( 704 256 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 256 -61 ) ( 768 384 115 ) ( 704 320 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 368 131 ) ( 768 384 115 ) ( 704 256 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 17 +{ +( 512 288 147 ) ( 512 272 163 ) ( 512 256 163 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 352 131 ) ( 768 352 147 ) ( 512 288 147 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 288 147 ) ( 768 352 147 ) ( 768 336 163 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 256 163 ) ( 704 256 131 ) ( 512 256 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 256 131 ) ( 768 352 131 ) ( 512 288 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 272 163 ) ( 768 336 163 ) ( 768 320 163 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 256 163 ) ( 768 320 163 ) ( 704 256 131 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( 768 320 163 ) ( 768 352 131 ) ( 704 256 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 336 163 ) ( 768 352 147 ) ( 768 352 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 18 +{ +( 512 256 179 ) ( 512 240 195 ) ( 512 192 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 256 -61 ) ( 768 320 179 ) ( 512 256 179 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 256 179 ) ( 768 320 179 ) ( 768 304 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 192 195 ) ( 704 192 195 ) ( 704 192 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 192 -48 ) ( 704 256 -48 ) ( 512 256 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 240 195 ) ( 768 304 195 ) ( 704 192 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 256 -61 ) ( 768 320 179 ) ( 512 256 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 192 195 ) ( 768 304 195 ) ( 704 192 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 192 -61 ) ( 768 320 179 ) ( 704 256 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 304 195 ) ( 768 320 179 ) ( 704 192 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 19 +{ +( 512 224 211 ) ( 512 208 227 ) ( 512 192 227 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 288 195 ) ( 768 288 211 ) ( 512 224 211 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 272 227 ) ( 512 208 227 ) ( 512 224 211 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 192 227 ) ( 704 192 195 ) ( 512 192 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 192 195 ) ( 768 288 195 ) ( 512 224 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 208 227 ) ( 768 272 227 ) ( 768 256 227 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 192 227 ) ( 768 256 227 ) ( 704 192 195 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( 768 256 227 ) ( 768 288 195 ) ( 704 192 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 272 227 ) ( 768 288 211 ) ( 768 288 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 20 +{ +( 512 192 243 ) ( 512 176 259 ) ( 512 128 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 522.94736842106067 194.73684210526517 -48 ) ( 768 256 243 ) ( 512 192 243 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 192 243 ) ( 768 256 243 ) ( 768 240 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 176 259 ) ( 704 128 272 ) ( 512 128 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 176 259 ) ( 768 240 259 ) ( 704 128 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 128 259 ) ( 704 128 272 ) ( 704 128 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 706.73684210526335 133.47368421052499 -48 ) ( 706.73684210526335 194.73684210526517 -48 ) ( 522.94736842106067 194.73684210526517 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 706.73684210526335 194.73684210526517 -48 ) ( 768 256 243 ) ( 522.94736842106067 194.73684210526517 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 128 272 ) ( 768 240 259 ) ( 706.60000000000036 132.55000000000462 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 706.73684210526335 133.47368421052499 -48 ) ( 768 256 243 ) ( 706.73684210526335 194.73684210526517 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 706.73684210526335 133.47368421052499 -48 ) ( 706.60000000000036 132.55000000000462 -48 ) ( 768 240 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 21 +{ +( 512 160 275 ) ( 512 144 291 ) ( 512 128 291 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 224 259 ) ( 768 224 275 ) ( 512 160 275 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 160 275 ) ( 768 224 275 ) ( 768 208 291 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 128 291 ) ( 704 128 272 ) ( 512 128 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 128 259 ) ( 768 224 259 ) ( 512 160 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 144 291 ) ( 768 208 291 ) ( 768 192 291 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 704 128 272 ) ( 768 224 259 ) ( 512 128 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 128 291 ) ( 768 192 291 ) ( 704 128 272 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( 768 192 291 ) ( 768 224 259 ) ( 704 128 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 768 208 291 ) ( 768 224 275 ) ( 768 224 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 22 +{ +( 384 224 259 ) ( 384 224 275 ) ( 320 128 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 128 272 ) ( 384 224 275 ) ( 384 208 291 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 192 291 ) ( 320 128 272 ) ( 384 208 291 ) MustRemove/rock2 1 -16 1.77636e-15 3.1 1 0 0 0 +( 384 192 291 ) ( 512 128 291 ) ( 320 128 272 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( 320 128 272 ) ( 512 128 259 ) ( 384 224 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 128 272 ) ( 512 128 291 ) ( 512 128 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 128 259 ) ( 512 160 259 ) ( 384 224 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 208 291 ) ( 512 144 291 ) ( 512 128 291 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 144 291 ) ( 384 208 291 ) ( 384 224 275 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 160 259 ) ( 512 160 275 ) ( 384 224 275 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 144 291 ) ( 512 160 275 ) ( 512 160 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 23 +{ +( 320 128 259 ) ( 320 128 -61 ) ( 320 192 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 192 -61 ) ( 384 256 243 ) ( 320 128 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 128 259 ) ( 384 256 243 ) ( 384 240 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 128 259 ) ( 512 128 259 ) ( 512 128 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 128 -48 ) ( 512 192 -48 ) ( 320 192 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 240 259 ) ( 512 176 259 ) ( 512 128 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 192 -61 ) ( 512 192 -61 ) ( 384 256 243 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 256 243 ) ( 512 192 243 ) ( 512 176 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 192 -61 ) ( 512 192 243 ) ( 384 256 243 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 176 259 ) ( 512 192 243 ) ( 512 192 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 24 +{ +( 128 192 243 ) ( 128 176 259 ) ( 128 128 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 192 -61 ) ( 384 256 243 ) ( 128 192 243 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 192 243 ) ( 384 256 243 ) ( 384 240 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 128 259 ) ( 320 128 259 ) ( 320 128 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 128 -48 ) ( 320 192 -48 ) ( 128 192 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 176 259 ) ( 384 240 259 ) ( 320 128 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 192 -61 ) ( 384 256 243 ) ( 128 192 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 128 259 ) ( 384 240 259 ) ( 320 128 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 128 -61 ) ( 384 256 243 ) ( 320 192 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 240 259 ) ( 384 256 243 ) ( 320 128 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 25 +{ +( 128 224 211 ) ( 128 208 227 ) ( 128 192 227 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 288 195 ) ( 384 288 211 ) ( 128 224 211 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 272 227 ) ( 128 208 227 ) ( 128 224 211 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 192 227 ) ( 320 192 195 ) ( 128 192 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 192 195 ) ( 384 288 195 ) ( 128 224 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 208 227 ) ( 384 272 227 ) ( 384 256 227 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 192 227 ) ( 384 256 227 ) ( 320 192 195 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( 384 256 227 ) ( 384 288 195 ) ( 320 192 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 272 227 ) ( 384 288 211 ) ( 384 288 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 26 +{ +( 128 256 179 ) ( 128 240 195 ) ( 128 192 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 256 -61 ) ( 384 320 179 ) ( 128 256 179 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 256 179 ) ( 384 320 179 ) ( 384 304 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 192 195 ) ( 320 192 195 ) ( 320 192 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 192 -48 ) ( 320 256 -48 ) ( 128 256 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 240 195 ) ( 384 304 195 ) ( 320 192 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 256 -61 ) ( 384 320 179 ) ( 128 256 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 192 195 ) ( 384 304 195 ) ( 320 192 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 192 -61 ) ( 384 320 179 ) ( 320 256 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 304 195 ) ( 384 320 179 ) ( 320 192 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 27 +{ +( 320 192 195 ) ( 320 192 -61 ) ( 320 256 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 256 -61 ) ( 384 320 179 ) ( 320 192 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 192 195 ) ( 384 320 179 ) ( 384 304 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 192 195 ) ( 512 192 195 ) ( 512 192 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 192 -48 ) ( 512 256 -48 ) ( 320 256 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 304 195 ) ( 512 240 195 ) ( 512 192 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 256 -61 ) ( 512 256 -61 ) ( 384 320 179 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 320 179 ) ( 512 256 179 ) ( 512 240 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 256 -61 ) ( 512 256 179 ) ( 384 320 179 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 240 195 ) ( 512 256 179 ) ( 512 256 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 28 +{ +( 384 352 131 ) ( 384 352 147 ) ( 320 256 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 256 131 ) ( 384 352 147 ) ( 384 336 163 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 320 163 ) ( 320 256 131 ) ( 384 336 163 ) MustRemove/rock2 1 -16 1.77636e-15 3.1 1 0 0 0 +( 384 320 163 ) ( 512 256 163 ) ( 320 256 131 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( 320 256 131 ) ( 512 256 163 ) ( 512 256 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 256 131 ) ( 512 288 131 ) ( 384 352 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 336 163 ) ( 512 272 163 ) ( 512 256 163 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 352 147 ) ( 512 288 147 ) ( 512 272 163 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 288 131 ) ( 512 288 147 ) ( 384 352 147 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 272 163 ) ( 512 288 147 ) ( 512 288 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 29 +{ +( 320 256 131 ) ( 320 256 -61 ) ( 320 320 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 320 -61 ) ( 384 384 115 ) ( 320 256 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 256 131 ) ( 384 384 115 ) ( 384 368 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 256 131 ) ( 512 256 131 ) ( 512 256 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 256 -48 ) ( 512 320 -48 ) ( 320 320 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 368 131 ) ( 512 304 131 ) ( 512 256 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 320 -61 ) ( 512 320 -61 ) ( 384 384 115 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 304 131 ) ( 384 368 131 ) ( 384 384 115 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 320 -61 ) ( 512 320 115 ) ( 384 384 115 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 304 131 ) ( 512 320 115 ) ( 512 320 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 30 +{ +( 384 288 195 ) ( 384 288 211 ) ( 320 192 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 192 195 ) ( 384 288 211 ) ( 384 272 227 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 256 227 ) ( 320 192 195 ) ( 384 272 227 ) MustRemove/rock2 1 -16 1.77636e-15 3.1 1 0 0 0 +( 384 256 227 ) ( 512 192 227 ) ( 320 192 195 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( 320 192 195 ) ( 512 192 227 ) ( 512 192 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 192 195 ) ( 512 224 195 ) ( 384 288 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 272 227 ) ( 512 208 227 ) ( 512 192 227 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 208 227 ) ( 384 272 227 ) ( 384 288 211 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 224 195 ) ( 512 224 211 ) ( 384 288 211 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 208 227 ) ( 512 224 211 ) ( 512 224 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 31 +{ +( 384 416 67 ) ( 384 416 83 ) ( 320 320 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 320 67 ) ( 384 416 83 ) ( 384 400 99 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 384 99 ) ( 320 320 67 ) ( 384 400 99 ) MustRemove/rock2 1 -16 1.77636e-15 3.1 1 0 0 0 +( 384 384 99 ) ( 512 320 99 ) ( 320 320 67 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( 320 320 67 ) ( 512 320 99 ) ( 512 320 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 320 67 ) ( 512 352 67 ) ( 384 416 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 400 99 ) ( 512 336 99 ) ( 512 320 99 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 416 83 ) ( 512 352 83 ) ( 512 336 99 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 352 67 ) ( 512 352 83 ) ( 384 416 83 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 336 99 ) ( 512 352 83 ) ( 512 352 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 32 +{ +( 320 320 67 ) ( 320 320 -61 ) ( 320 384 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 384 -61 ) ( 384 448 51 ) ( 320 320 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 320 67 ) ( 384 448 51 ) ( 384 432 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 320 67 ) ( 512 320 67 ) ( 512 320 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 320 -48 ) ( 512 384 -48 ) ( 320 384 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 432 67 ) ( 512 368 67 ) ( 512 320 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 384 -61 ) ( 512 384 -61 ) ( 384 448 51 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 448 51 ) ( 512 384 51 ) ( 512 368 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 384 -61 ) ( 512 384 51 ) ( 384 448 51 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 368 67 ) ( 512 384 51 ) ( 512 384 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 33 +{ +( 384 480 3 ) ( 384 480 19 ) ( 320 384 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 384 3 ) ( 384 480 19 ) ( 384 464 35 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 448 35 ) ( 320 384 3 ) ( 384 464 35 ) MustRemove/rock2 1 -16 1.77636e-15 3.1 1 0 0 0 +( 384 448 35 ) ( 512 384 35 ) ( 320 384 3 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( 320 384 3 ) ( 512 384 35 ) ( 512 384 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 384 3 ) ( 512 416 3 ) ( 384 480 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 464 35 ) ( 512 400 35 ) ( 512 384 35 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 400 35 ) ( 384 464 35 ) ( 384 480 19 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 416 3 ) ( 512 416 19 ) ( 384 480 19 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 400 35 ) ( 512 416 19 ) ( 512 416 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 34 +{ +( 320 384 3 ) ( 320 384 -61 ) ( 320 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 496 3 ) ( 320 384 3 ) ( 320 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 384 3 ) ( 512 384 3 ) ( 512 384 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 384 -48 ) ( 512 448 -48 ) ( 320 448 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 496 3 ) ( 512 432 3 ) ( 512 384 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 448 -61 ) ( 512 448 -61 ) ( 384 512 -13 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 512 -13 ) ( 512 448 -13 ) ( 512 432 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 448 -61 ) ( 512 448 -13 ) ( 384 512 -13 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 432 3 ) ( 512 448 -13 ) ( 512 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 35 +{ +( 384 544 -61 ) ( 384 544 -45 ) ( 320 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 448 -61 ) ( 384 544 -45 ) ( 384 528 -29 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 512 -29 ) ( 320 448 -61 ) ( 384 528 -29 ) MustRemove/rock2 1 -16 1.77636e-15 3.1 1 0 0 0 +( 384 512 -29 ) ( 512 448 -29 ) ( 320 448 -61 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( 320 448 -61 ) ( 512 448 -29 ) ( 512 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 448 -48 ) ( 512 480 -48 ) ( 384 544 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 528 -29 ) ( 512 464 -29 ) ( 512 448 -29 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 544 -45 ) ( 512 480 -45 ) ( 512 464 -29 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 480 -61 ) ( 512 480 -45 ) ( 384 544 -45 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 512 464 -29 ) ( 512 480 -45 ) ( 512 480 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 36 +{ +( 128 480 -45 ) ( 128 464 -29 ) ( 128 448 -29 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 544 -61 ) ( 384 544 -45 ) ( 128 480 -45 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 480 -45 ) ( 384 544 -45 ) ( 384 528 -29 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 448 -29 ) ( 320 448 -61 ) ( 128 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 448 -48 ) ( 384 544 -48 ) ( 128 480 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 464 -29 ) ( 384 528 -29 ) ( 384 512 -29 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 448 -29 ) ( 384 512 -29 ) ( 320 448 -61 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( 384 512 -29 ) ( 384 544 -61 ) ( 320 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 528 -29 ) ( 384 544 -45 ) ( 384 544 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 37 +{ +( 128 448 -13 ) ( 128 432 3 ) ( 128 384 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 448 -61 ) ( 384 512 -13 ) ( 128 448 -13 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 448 -13 ) ( 384 512 -13 ) ( 384 496 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 384 3 ) ( 320 384 3 ) ( 320 384 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 384 -48 ) ( 320 448 -48 ) ( 128 448 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 432 3 ) ( 384 496 3 ) ( 320 384 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 448 -61 ) ( 384 512 -13 ) ( 128 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 384 -61 ) ( 384 512 -13 ) ( 320 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 384 3 ) ( 384 496 3 ) ( 320 384 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 496 3 ) ( 384 512 -13 ) ( 320 384 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 38 +{ +( 128 416 19 ) ( 128 400 35 ) ( 128 384 35 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 480 3 ) ( 384 480 19 ) ( 128 416 19 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 416 19 ) ( 384 480 19 ) ( 384 464 35 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 384 35 ) ( 320 384 3 ) ( 128 384 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 384 3 ) ( 384 480 3 ) ( 128 416 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 400 35 ) ( 384 464 35 ) ( 384 448 35 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 384 35 ) ( 384 448 35 ) ( 320 384 3 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( 384 448 35 ) ( 384 480 3 ) ( 320 384 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 464 35 ) ( 384 480 19 ) ( 384 480 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 39 +{ +( 128 384 51 ) ( 128 368 67 ) ( 128 320 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 384 -61 ) ( 384 448 51 ) ( 128 384 51 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 384 51 ) ( 384 448 51 ) ( 384 432 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 320 67 ) ( 320 320 67 ) ( 320 320 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 320 -48 ) ( 320 384 -48 ) ( 128 384 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 368 67 ) ( 384 432 67 ) ( 320 320 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 384 -61 ) ( 384 448 51 ) ( 128 384 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 320 67 ) ( 384 432 67 ) ( 320 320 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 320 -61 ) ( 384 448 51 ) ( 320 384 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 432 67 ) ( 384 448 51 ) ( 320 320 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 40 +{ +( 128 352 83 ) ( 128 336 99 ) ( 128 320 99 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 416 67 ) ( 384 416 83 ) ( 128 352 83 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 352 83 ) ( 384 416 83 ) ( 384 400 99 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 320 99 ) ( 320 320 67 ) ( 128 320 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 320 67 ) ( 384 416 67 ) ( 128 352 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 336 99 ) ( 384 400 99 ) ( 384 384 99 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 320 99 ) ( 384 384 99 ) ( 320 320 67 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( 384 384 99 ) ( 384 416 67 ) ( 320 320 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 400 99 ) ( 384 416 83 ) ( 384 416 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 41 +{ +( 128 320 115 ) ( 128 304 131 ) ( 128 256 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 320 -61 ) ( 384 384 115 ) ( 128 320 115 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 320 115 ) ( 384 384 115 ) ( 384 368 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 256 131 ) ( 320 256 131 ) ( 320 256 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 256 -48 ) ( 320 320 -48 ) ( 128 320 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 304 131 ) ( 384 368 131 ) ( 320 256 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 320 -61 ) ( 384 384 115 ) ( 128 320 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 256 131 ) ( 384 368 131 ) ( 320 256 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 256 -61 ) ( 384 384 115 ) ( 320 320 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 368 131 ) ( 384 384 115 ) ( 320 256 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 42 +{ +( 128 288 147 ) ( 128 272 163 ) ( 128 256 163 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 352 131 ) ( 384 352 147 ) ( 128 288 147 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 288 147 ) ( 384 352 147 ) ( 384 336 163 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 256 163 ) ( 320 256 131 ) ( 128 256 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 256 131 ) ( 384 352 131 ) ( 128 288 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 272 163 ) ( 384 336 163 ) ( 384 320 163 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 256 163 ) ( 384 320 163 ) ( 320 256 131 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( 384 320 163 ) ( 384 352 131 ) ( 320 256 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 336 163 ) ( 384 352 147 ) ( 384 352 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 43 +{ +( 128 160 275 ) ( 128 144 291 ) ( 128 128 291 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 224 259 ) ( 384 224 275 ) ( 128 160 275 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 160 275 ) ( 384 224 275 ) ( 384 208 291 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 128 291 ) ( 320 128 272 ) ( 128 128 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 128 259 ) ( 384 224 259 ) ( 128 160 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 144 291 ) ( 384 208 291 ) ( 384 192 291 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 320 128 272 ) ( 384 224 259 ) ( 128 128 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 128 291 ) ( 384 192 291 ) ( 320 128 272 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( 384 192 291 ) ( 384 224 259 ) ( 320 128 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 384 208 291 ) ( 384 224 275 ) ( 384 224 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 44 +{ +( 0 544 -61 ) ( 0 544 -45 ) ( -64 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 448 -61 ) ( 0 544 -45 ) ( 0 528 -29 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 512 -29 ) ( -64 448 -61 ) ( 0 528 -29 ) MustRemove/rock2 1 -16 1.77636e-15 3.1 1 0 0 0 +( 0 512 -29 ) ( 128 448 -29 ) ( -64 448 -61 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( -64 448 -61 ) ( 128 448 -29 ) ( 128 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 448 -48 ) ( 128 480 -48 ) ( 0 544 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 528 -29 ) ( 128 464 -29 ) ( 128 448 -29 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 544 -45 ) ( 128 480 -45 ) ( 128 464 -29 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 480 -61 ) ( 128 480 -45 ) ( 0 544 -45 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 464 -29 ) ( 128 480 -45 ) ( 128 480 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 45 +{ +( -64 384 3 ) ( -64 384 -61 ) ( -64 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 496 3 ) ( -64 384 3 ) ( -64 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 384 3 ) ( 128 384 3 ) ( 128 384 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 384 -48 ) ( 128 448 -48 ) ( -64 448 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 496 3 ) ( 128 432 3 ) ( 128 384 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 448 -61 ) ( 128 448 -61 ) ( 0 512 -13 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 512 -13 ) ( 128 448 -13 ) ( 128 432 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 448 -61 ) ( 128 448 -13 ) ( 0 512 -13 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 432 3 ) ( 128 448 -13 ) ( 128 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 46 +{ +( 0 480 3 ) ( 0 480 19 ) ( -64 384 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 384 3 ) ( 0 480 19 ) ( 0 464 35 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 448 35 ) ( -64 384 3 ) ( 0 464 35 ) MustRemove/rock2 1 -16 1.77636e-15 3.1 1 0 0 0 +( 0 448 35 ) ( 128 384 35 ) ( -64 384 3 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( -64 384 3 ) ( 128 384 35 ) ( 128 384 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 384 3 ) ( 128 416 3 ) ( 0 480 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 464 35 ) ( 128 400 35 ) ( 128 384 35 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 400 35 ) ( 0 464 35 ) ( 0 480 19 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 416 3 ) ( 128 416 19 ) ( 0 480 19 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 400 35 ) ( 128 416 19 ) ( 128 416 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 47 +{ +( -64 320 67 ) ( -64 320 -61 ) ( -64 384 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 384 -61 ) ( 0 448 51 ) ( -64 320 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 320 67 ) ( 0 448 51 ) ( 0 432 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 320 67 ) ( 128 320 67 ) ( 128 320 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 320 -48 ) ( 128 384 -48 ) ( -64 384 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 432 67 ) ( 128 368 67 ) ( 128 320 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 384 -61 ) ( 128 384 -61 ) ( 0 448 51 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 448 51 ) ( 128 384 51 ) ( 128 368 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 384 -61 ) ( 128 384 51 ) ( 0 448 51 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 368 67 ) ( 128 384 51 ) ( 128 384 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 48 +{ +( 0 416 67 ) ( 0 416 83 ) ( -64 320 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 320 67 ) ( 0 416 83 ) ( 0 400 99 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 384 99 ) ( -64 320 67 ) ( 0 400 99 ) MustRemove/rock2 1 -16 1.77636e-15 3.1 1 0 0 0 +( 0 384 99 ) ( 128 320 99 ) ( -64 320 67 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( -64 320 67 ) ( 128 320 99 ) ( 128 320 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 320 67 ) ( 128 352 67 ) ( 0 416 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 400 99 ) ( 128 336 99 ) ( 128 320 99 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 416 83 ) ( 128 352 83 ) ( 128 336 99 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 352 67 ) ( 128 352 83 ) ( 0 416 83 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 336 99 ) ( 128 352 83 ) ( 128 352 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 49 +{ +( -64 256 131 ) ( -64 256 -61 ) ( -64 320 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 320 -61 ) ( 0 384 115 ) ( -64 256 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 256 131 ) ( 0 384 115 ) ( 0 368 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 256 131 ) ( 128 256 131 ) ( 128 256 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 256 -48 ) ( 128 320 -48 ) ( -64 320 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 368 131 ) ( 128 304 131 ) ( 128 256 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 320 -61 ) ( 128 320 -61 ) ( 0 384 115 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 304 131 ) ( 0 368 131 ) ( 0 384 115 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 320 -61 ) ( 128 320 115 ) ( 0 384 115 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 304 131 ) ( 128 320 115 ) ( 128 320 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 50 +{ +( 0 352 131 ) ( 0 352 147 ) ( -64 256 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 256 131 ) ( 0 352 147 ) ( 0 336 163 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 320 163 ) ( -64 256 131 ) ( 0 336 163 ) MustRemove/rock2 1 -16 1.77636e-15 3.1 1 0 0 0 +( 0 320 163 ) ( 128 256 163 ) ( -64 256 131 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( -64 256 131 ) ( 128 256 163 ) ( 128 256 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 256 131 ) ( 128 288 131 ) ( 0 352 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 336 163 ) ( 128 272 163 ) ( 128 256 163 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 352 147 ) ( 128 288 147 ) ( 128 272 163 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 288 131 ) ( 128 288 147 ) ( 0 352 147 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 272 163 ) ( 128 288 147 ) ( 128 288 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 51 +{ +( -64 192 195 ) ( -64 192 -61 ) ( -64 256 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 256 -61 ) ( 0 320 179 ) ( -64 192 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 192 195 ) ( 0 320 179 ) ( 0 304 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 192 195 ) ( 128 192 195 ) ( 128 192 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 192 -48 ) ( 128 256 -48 ) ( -64 256 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 304 195 ) ( 128 240 195 ) ( 128 192 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 256 -61 ) ( 128 256 -61 ) ( 0 320 179 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 320 179 ) ( 128 256 179 ) ( 128 240 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 256 -61 ) ( 128 256 179 ) ( 0 320 179 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 240 195 ) ( 128 256 179 ) ( 128 256 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 52 +{ +( 0 288 195 ) ( 0 288 211 ) ( -64 192 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 192 195 ) ( 0 288 211 ) ( 0 272 227 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 256 227 ) ( -64 192 195 ) ( 0 272 227 ) MustRemove/rock2 1 -16 1.77636e-15 3.1 1 0 0 0 +( 0 256 227 ) ( 128 192 227 ) ( -64 192 195 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( -64 192 195 ) ( 128 192 227 ) ( 128 192 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 192 195 ) ( 128 224 195 ) ( 0 288 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 272 227 ) ( 128 208 227 ) ( 128 192 227 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 208 227 ) ( 0 272 227 ) ( 0 288 211 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 224 195 ) ( 128 224 211 ) ( 0 288 211 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 208 227 ) ( 128 224 211 ) ( 128 224 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 53 +{ +( -64 128 259 ) ( -64 128 -61 ) ( -64 192 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 192 -61 ) ( 0 256 243 ) ( -64 128 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 128 259 ) ( 0 256 243 ) ( 0 240 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 128 259 ) ( 128 128 259 ) ( 128 128 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 128 -48 ) ( 128 192 -48 ) ( -64 192 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 240 259 ) ( 128 176 259 ) ( 128 128 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 192 -61 ) ( 128 192 -61 ) ( 0 256 243 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 256 243 ) ( 128 192 243 ) ( 128 176 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 192 -61 ) ( 128 192 243 ) ( 0 256 243 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 176 259 ) ( 128 192 243 ) ( 128 192 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 54 +{ +( 0 224 259 ) ( 0 224 275 ) ( -64 128 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 128 272 ) ( 0 224 275 ) ( 0 208 291 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 192 291 ) ( -64 128 272 ) ( 0 208 291 ) MustRemove/rock2 1 -16 1.77636e-15 3.1 1 0 0 0 +( 0 192 291 ) ( 128 128 291 ) ( -64 128 272 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( -64 128 272 ) ( 128 128 259 ) ( 0 224 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 128 272 ) ( 128 128 291 ) ( 128 128 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 128 259 ) ( 128 160 259 ) ( 0 224 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 208 291 ) ( 128 144 291 ) ( 128 128 291 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 144 291 ) ( 0 208 291 ) ( 0 224 275 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 160 259 ) ( 128 160 275 ) ( 0 224 275 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 128 144 291 ) ( 128 160 275 ) ( 128 160 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 55 +{ +( -256 160 275 ) ( -256 144 291 ) ( -256 128 291 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 224 259 ) ( 0 224 275 ) ( -256 160 275 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 160 275 ) ( 0 224 275 ) ( 0 208 291 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 128 291 ) ( -64 128 272 ) ( -256 128 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 128 259 ) ( 0 224 259 ) ( -256 160 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 144 291 ) ( 0 208 291 ) ( 0 192 291 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 128 272 ) ( 0 224 259 ) ( -256 128 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 128 291 ) ( 0 192 291 ) ( -64 128 272 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( 0 192 291 ) ( 0 224 259 ) ( -64 128 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 208 291 ) ( 0 224 275 ) ( 0 224 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 56 +{ +( -256 192 243 ) ( -256 176 259 ) ( -256 128 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 192 -61 ) ( 0 256 243 ) ( -256 192 243 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 192 243 ) ( 0 256 243 ) ( 0 240 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 128 259 ) ( -64 128 259 ) ( -64 128 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 128 -48 ) ( -64 192 -48 ) ( -256 192 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 176 259 ) ( 0 240 259 ) ( -64 128 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 192 -61 ) ( 0 256 243 ) ( -256 192 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 128 259 ) ( 0 240 259 ) ( -64 128 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 128 -61 ) ( 0 256 243 ) ( -64 192 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 240 259 ) ( 0 256 243 ) ( -64 128 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 57 +{ +( -256 224 211 ) ( -256 208 227 ) ( -256 192 227 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 288 195 ) ( 0 288 211 ) ( -256 224 211 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 272 227 ) ( -256 208 227 ) ( -256 224 211 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 192 227 ) ( -64 192 195 ) ( -256 192 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 192 195 ) ( 0 288 195 ) ( -256 224 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 208 227 ) ( 0 272 227 ) ( 0 256 227 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 192 227 ) ( 0 256 227 ) ( -64 192 195 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( 0 256 227 ) ( 0 288 195 ) ( -64 192 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 272 227 ) ( 0 288 211 ) ( 0 288 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 58 +{ +( -256 256 179 ) ( -256 240 195 ) ( -256 192 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 256 -61 ) ( 0 320 179 ) ( -256 256 179 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 256 179 ) ( 0 320 179 ) ( 0 304 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 192 195 ) ( -64 192 195 ) ( -64 192 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 192 -48 ) ( -64 256 -48 ) ( -256 256 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 240 195 ) ( 0 304 195 ) ( -64 192 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 256 -61 ) ( 0 320 179 ) ( -256 256 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 192 195 ) ( 0 304 195 ) ( -64 192 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 192 -61 ) ( 0 320 179 ) ( -64 256 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 304 195 ) ( 0 320 179 ) ( -64 192 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 59 +{ +( -256 288 147 ) ( -256 272 163 ) ( -256 256 163 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 352 131 ) ( 0 352 147 ) ( -256 288 147 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 288 147 ) ( 0 352 147 ) ( 0 336 163 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 256 163 ) ( -64 256 131 ) ( -256 256 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 256 131 ) ( 0 352 131 ) ( -256 288 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 272 163 ) ( 0 336 163 ) ( 0 320 163 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 256 163 ) ( 0 320 163 ) ( -64 256 131 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( 0 320 163 ) ( 0 352 131 ) ( -64 256 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 336 163 ) ( 0 352 147 ) ( 0 352 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 60 +{ +( -256 320 115 ) ( -256 304 131 ) ( -256 256 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 320 -61 ) ( 0 384 115 ) ( -256 320 115 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 320 115 ) ( 0 384 115 ) ( 0 368 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 256 131 ) ( -64 256 131 ) ( -64 256 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 256 -48 ) ( -64 320 -48 ) ( -256 320 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 304 131 ) ( 0 368 131 ) ( -64 256 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 320 -61 ) ( 0 384 115 ) ( -256 320 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 256 131 ) ( 0 368 131 ) ( -64 256 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 256 -61 ) ( 0 384 115 ) ( -64 320 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 368 131 ) ( 0 384 115 ) ( -64 256 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 61 +{ +( -256 352 83 ) ( -256 336 99 ) ( -256 320 99 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 416 67 ) ( 0 416 83 ) ( -256 352 83 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 352 83 ) ( 0 416 83 ) ( 0 400 99 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 320 99 ) ( -64 320 67 ) ( -256 320 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 320 67 ) ( 0 416 67 ) ( -256 352 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 336 99 ) ( 0 400 99 ) ( 0 384 99 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 320 99 ) ( 0 384 99 ) ( -64 320 67 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( 0 384 99 ) ( 0 416 67 ) ( -64 320 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 400 99 ) ( 0 416 83 ) ( 0 416 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 62 +{ +( -256 384 51 ) ( -256 368 67 ) ( -256 320 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 384 -61 ) ( 0 448 51 ) ( -256 384 51 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 384 51 ) ( 0 448 51 ) ( 0 432 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 320 67 ) ( -64 320 67 ) ( -64 320 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 320 -48 ) ( -64 384 -48 ) ( -256 384 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 368 67 ) ( 0 432 67 ) ( -64 320 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 384 -61 ) ( 0 448 51 ) ( -256 384 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 320 67 ) ( 0 432 67 ) ( -64 320 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 320 -61 ) ( 0 448 51 ) ( -64 384 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 432 67 ) ( 0 448 51 ) ( -64 320 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 63 +{ +( -256 416 19 ) ( -256 400 35 ) ( -256 384 35 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 480 3 ) ( 0 480 19 ) ( -256 416 19 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 416 19 ) ( 0 480 19 ) ( 0 464 35 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 384 35 ) ( -64 384 3 ) ( -256 384 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 384 3 ) ( 0 480 3 ) ( -256 416 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 400 35 ) ( 0 464 35 ) ( 0 448 35 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 384 35 ) ( 0 448 35 ) ( -64 384 3 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( 0 448 35 ) ( 0 480 3 ) ( -64 384 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 464 35 ) ( 0 480 19 ) ( 0 480 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 64 +{ +( -256 448 -13 ) ( -256 432 3 ) ( -256 384 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 448 -61 ) ( 0 512 -13 ) ( -256 448 -13 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 448 -13 ) ( 0 512 -13 ) ( 0 496 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 384 3 ) ( -64 384 3 ) ( -64 384 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 384 -48 ) ( -64 448 -48 ) ( -256 448 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 432 3 ) ( 0 496 3 ) ( -64 384 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 448 -61 ) ( 0 512 -13 ) ( -256 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 384 -61 ) ( 0 512 -13 ) ( -64 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 384 3 ) ( 0 496 3 ) ( -64 384 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 496 3 ) ( 0 512 -13 ) ( -64 384 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 65 +{ +( -256 480 -45 ) ( -256 464 -29 ) ( -256 448 -29 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 544 -61 ) ( 0 544 -45 ) ( -256 480 -45 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 480 -45 ) ( 0 544 -45 ) ( 0 528 -29 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 448 -29 ) ( -64 448 -61 ) ( -256 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -64 448 -48 ) ( 0 544 -48 ) ( -256 480 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 464 -29 ) ( 0 528 -29 ) ( 0 512 -29 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 448 -29 ) ( 0 512 -29 ) ( -64 448 -61 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( 0 512 -29 ) ( 0 544 -61 ) ( -64 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( 0 528 -29 ) ( 0 544 -45 ) ( 0 544 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 66 +{ +( -384 544 -61 ) ( -384 544 -45 ) ( -448 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 448 -61 ) ( -384 544 -45 ) ( -384 528 -29 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 512 -29 ) ( -448 448 -61 ) ( -384 528 -29 ) MustRemove/rock2 1 -16 1.77636e-15 3.1 1 0 0 0 +( -384 512 -29 ) ( -256 448 -29 ) ( -448 448 -61 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( -448 448 -61 ) ( -256 448 -29 ) ( -256 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 448 -48 ) ( -256 480 -48 ) ( -384 544 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 528 -29 ) ( -256 464 -29 ) ( -256 448 -29 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 544 -45 ) ( -256 480 -45 ) ( -256 464 -29 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 480 -61 ) ( -256 480 -45 ) ( -384 544 -45 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 464 -29 ) ( -256 480 -45 ) ( -256 480 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 67 +{ +( -448 384 3 ) ( -448 384 -61 ) ( -448 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 496 3 ) ( -448 384 3 ) ( -448 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 384 3 ) ( -256 384 3 ) ( -256 384 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 384 -48 ) ( -256 448 -48 ) ( -448 448 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 496 3 ) ( -256 432 3 ) ( -256 384 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 448 -61 ) ( -256 448 -61 ) ( -384 512 -13 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 512 -13 ) ( -256 448 -13 ) ( -256 432 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 448 -61 ) ( -256 448 -13 ) ( -384 512 -13 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 432 3 ) ( -256 448 -13 ) ( -256 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 68 +{ +( -384 480 3 ) ( -384 480 19 ) ( -448 384 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 384 3 ) ( -384 480 19 ) ( -384 464 35 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 448 35 ) ( -448 384 3 ) ( -384 464 35 ) MustRemove/rock2 1 -16 1.77636e-15 3.1 1 0 0 0 +( -384 448 35 ) ( -256 384 35 ) ( -448 384 3 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( -448 384 3 ) ( -256 384 35 ) ( -256 384 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 384 3 ) ( -256 416 3 ) ( -384 480 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 464 35 ) ( -256 400 35 ) ( -256 384 35 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 400 35 ) ( -384 464 35 ) ( -384 480 19 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 416 3 ) ( -256 416 19 ) ( -384 480 19 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 400 35 ) ( -256 416 19 ) ( -256 416 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 69 +{ +( -448 320 67 ) ( -448 320 -61 ) ( -448 384 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 384 -61 ) ( -384 448 51 ) ( -448 320 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 320 67 ) ( -384 448 51 ) ( -384 432 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 320 67 ) ( -256 320 67 ) ( -256 320 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 320 -48 ) ( -256 384 -48 ) ( -448 384 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 432 67 ) ( -256 368 67 ) ( -256 320 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 384 -61 ) ( -256 384 -61 ) ( -384 448 51 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 448 51 ) ( -256 384 51 ) ( -256 368 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 384 -61 ) ( -256 384 51 ) ( -384 448 51 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 368 67 ) ( -256 384 51 ) ( -256 384 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 70 +{ +( -384 416 67 ) ( -384 416 83 ) ( -448 320 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 320 67 ) ( -384 416 83 ) ( -384 400 99 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 384 99 ) ( -448 320 67 ) ( -384 400 99 ) MustRemove/rock2 1 -16 1.77636e-15 3.1 1 0 0 0 +( -384 384 99 ) ( -256 320 99 ) ( -448 320 67 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( -448 320 67 ) ( -256 320 99 ) ( -256 320 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 320 67 ) ( -256 352 67 ) ( -384 416 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 400 99 ) ( -256 336 99 ) ( -256 320 99 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 416 83 ) ( -256 352 83 ) ( -256 336 99 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 352 67 ) ( -256 352 83 ) ( -384 416 83 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 336 99 ) ( -256 352 83 ) ( -256 352 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 71 +{ +( -448 256 131 ) ( -448 256 -61 ) ( -448 320 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 320 -61 ) ( -384 384 115 ) ( -448 256 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 256 131 ) ( -384 384 115 ) ( -384 368 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 256 131 ) ( -256 256 131 ) ( -256 256 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 256 -48 ) ( -256 320 -48 ) ( -448 320 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 368 131 ) ( -256 304 131 ) ( -256 256 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 320 -61 ) ( -256 320 -61 ) ( -384 384 115 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 304 131 ) ( -384 368 131 ) ( -384 384 115 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 320 -61 ) ( -256 320 115 ) ( -384 384 115 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 304 131 ) ( -256 320 115 ) ( -256 320 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 72 +{ +( -384 352 131 ) ( -384 352 147 ) ( -448 256 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 256 131 ) ( -384 352 147 ) ( -384 336 163 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 320 163 ) ( -448 256 131 ) ( -384 336 163 ) MustRemove/rock2 1 -16 1.77636e-15 3.1 1 0 0 0 +( -384 320 163 ) ( -256 256 163 ) ( -448 256 131 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( -448 256 131 ) ( -256 256 163 ) ( -256 256 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 256 131 ) ( -256 288 131 ) ( -384 352 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 336 163 ) ( -256 272 163 ) ( -256 256 163 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 352 147 ) ( -256 288 147 ) ( -256 272 163 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 288 131 ) ( -256 288 147 ) ( -384 352 147 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 272 163 ) ( -256 288 147 ) ( -256 288 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 73 +{ +( -448 192 195 ) ( -448 192 -61 ) ( -448 256 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 256 -61 ) ( -384 320 179 ) ( -448 192 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 192 195 ) ( -384 320 179 ) ( -384 304 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 192 195 ) ( -256 192 195 ) ( -256 192 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 192 -48 ) ( -256 256 -48 ) ( -448 256 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 304 195 ) ( -256 240 195 ) ( -256 192 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 256 -61 ) ( -256 256 -61 ) ( -384 320 179 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 320 179 ) ( -256 256 179 ) ( -256 240 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 256 -61 ) ( -256 256 179 ) ( -384 320 179 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 240 195 ) ( -256 256 179 ) ( -256 256 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 74 +{ +( -384 288 195 ) ( -384 288 211 ) ( -448 192 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 192 195 ) ( -384 288 211 ) ( -384 272 227 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 256 227 ) ( -448 192 195 ) ( -384 272 227 ) MustRemove/rock2 1 -16 1.77636e-15 3.1 1 0 0 0 +( -384 256 227 ) ( -256 192 227 ) ( -448 192 195 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( -448 192 195 ) ( -256 192 227 ) ( -256 192 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 192 195 ) ( -256 224 195 ) ( -384 288 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 272 227 ) ( -256 208 227 ) ( -256 192 227 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 208 227 ) ( -384 272 227 ) ( -384 288 211 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 224 195 ) ( -256 224 211 ) ( -384 288 211 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 208 227 ) ( -256 224 211 ) ( -256 224 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 75 +{ +( -448 128 272 ) ( -448 128 -48 ) ( -448 189.39999999998508 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 189.39999999998508 -48 ) ( -445.26315789317277 194.73684210829822 -48 ) ( -448 128 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -445.26315789317277 194.73684210829822 -48 ) ( -384 256 243 ) ( -448 128 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 128 272 ) ( -384 256 243 ) ( -384 240 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 128 272 ) ( -256 128 259 ) ( -256 128 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 128 -48 ) ( -256 192 -48 ) ( -261.47368421655983 194.7368421082798 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -445.26315789317277 194.73684210829822 -48 ) ( -261.47368421655983 194.7368421082798 -48 ) ( -384 256 243 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 240 259 ) ( -256 176 259 ) ( -448 128 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 128 272 ) ( -256 176 259 ) ( -256 128 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 256 243 ) ( -256 192 243 ) ( -256 176 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 192 -48 ) ( -256 192 243 ) ( -384 256 243 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 176 259 ) ( -256 192 243 ) ( -256 192 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 76 +{ +( -384 224 259 ) ( -384 224 275 ) ( -448 128 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 128 272 ) ( -384 224 275 ) ( -384 208 291 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 192 291 ) ( -448 128 272 ) ( -384 208 291 ) MustRemove/rock2 1 -16 1.77636e-15 3.1 1 0 0 0 +( -384 192 291 ) ( -256 128 291 ) ( -448 128 272 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( -448 128 272 ) ( -256 128 259 ) ( -384 224 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 128 272 ) ( -256 128 291 ) ( -256 128 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 128 259 ) ( -256 160 259 ) ( -384 224 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 208 291 ) ( -256 144 291 ) ( -256 128 291 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 144 291 ) ( -384 208 291 ) ( -384 224 275 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 160 259 ) ( -256 160 275 ) ( -384 224 275 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -256 144 291 ) ( -256 160 275 ) ( -256 160 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 77 +{ +( -640 128 274.60975609758771 ) ( -640 128 259 ) ( -640 142.88372093025509 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -622.88372093024736 164.2790697674377 259 ) ( -607.62790697675155 168.0930232558112 275 ) ( -608.37209302326619 151.90697674418607 291 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -607.62790697675155 168.0930232558112 275 ) ( -622.88372093024736 164.2790697674377 259 ) ( -384 224 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -607.62790697675155 168.0930232558112 275 ) ( -384 224 275 ) ( -384 208 291 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -628.90784044018255 128 289.1513067400283 ) ( -448 128 272 ) ( -640 128 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 128 259 ) ( -384 224 259 ) ( -622.88372093024736 164.2790697674377 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -608.37209302326619 151.90697674418607 291 ) ( -384 208 291 ) ( -384 192 291 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 128 272 ) ( -384 224 259 ) ( -640 128 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -624.37209302327437 131.90697674418345 291 ) ( -448 128 272 ) ( -628.90784044018255 128 289.1513067400283 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( -624.37209302327437 131.90697674418345 291 ) ( -384 192 291 ) ( -448 128 272 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( -384 192 291 ) ( -384 224 259 ) ( -448 128 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 208 291 ) ( -384 224 275 ) ( -384 224 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 78 +{ +( -640 192 207.4878048780738 ) ( -640 142.88372093020462 259 ) ( -640 128 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -606.88372093021871 184.27906976744146 259 ) ( -640 142.88372093020462 259 ) ( -640 192 207.4878048780738 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -629.05263157893569 194.73684210526426 -48 ) ( -384 256 243 ) ( -606.13953488372135 200.46511627906239 243 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -606.13953488372135 200.46511627906239 243 ) ( -384 256 243 ) ( -384 240 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 142.88372093020462 259 ) ( -448 128 272 ) ( -640 128 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -606.88372093021871 184.27906976744146 259 ) ( -448 128 272 ) ( -640 142.88372093020462 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -606.88372093021871 184.27906976744146 259 ) ( -384 240 259 ) ( -448 128 272 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 128 259 ) ( -448 128 272 ) ( -448 128 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -445.26315789473574 133.47368421053511 -48 ) ( -445.26315789473574 194.73684210526426 -48 ) ( -629.05263157893569 194.73684210526426 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -445.26315789473574 194.73684210526426 -48 ) ( -384 256 243 ) ( -629.05263157893569 194.73684210526426 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 128 272 ) ( -384 240 259 ) ( -445.40000000000055 132.55000000000018 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -445.26315789473574 133.47368421053511 -48 ) ( -384 256 243 ) ( -445.26315789473574 194.73684210526426 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -445.26315789473574 133.47368421053511 -48 ) ( -445.40000000000055 132.55000000000018 -48 ) ( -384 240 259 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 79 +{ +( -640 224 211 ) ( -640 208 227 ) ( -640 192 227 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -608 488 -61 ) ( -608 160 283 ) ( -640 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 288 195 ) ( -384 288 211 ) ( -640 224 211 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 272 227 ) ( -640 208 227 ) ( -640 224 211 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 192 227 ) ( -448 192 195 ) ( -640 192 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 192 195 ) ( -384 288 195 ) ( -640 224 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 208 227 ) ( -384 272 227 ) ( -384 256 227 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 192 227 ) ( -384 256 227 ) ( -448 192 195 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( -384 256 227 ) ( -384 288 195 ) ( -448 192 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 272 227 ) ( -384 288 211 ) ( -384 288 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 80 +{ +( -640 256 179 ) ( -640 240 195 ) ( -640 192 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -608 488 -61 ) ( -608 160 283 ) ( -640 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 256 -61 ) ( -384 320 179 ) ( -640 256 179 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 256 179 ) ( -384 320 179 ) ( -384 304 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 192 195 ) ( -448 192 195 ) ( -448 192 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 192 -48 ) ( -448 256 -48 ) ( -640 256 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 240 195 ) ( -384 304 195 ) ( -448 192 195 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 256 -61 ) ( -384 320 179 ) ( -640 256 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 192 195 ) ( -384 304 195 ) ( -448 192 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 192 -61 ) ( -384 320 179 ) ( -448 256 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 304 195 ) ( -384 320 179 ) ( -448 192 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 81 +{ +( -640 288 147 ) ( -640 272 163 ) ( -640 256 163 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -608 488 -61 ) ( -608 160 283 ) ( -640 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 352 131 ) ( -384 352 147 ) ( -640 288 147 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 288 147 ) ( -384 352 147 ) ( -384 336 163 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 256 163 ) ( -448 256 131 ) ( -640 256 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 256 131 ) ( -384 352 131 ) ( -640 288 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 272 163 ) ( -384 336 163 ) ( -384 320 163 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 256 163 ) ( -384 320 163 ) ( -448 256 131 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( -384 320 163 ) ( -384 352 131 ) ( -448 256 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 336 163 ) ( -384 352 147 ) ( -384 352 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 82 +{ +( -640 320 115 ) ( -640 304 131 ) ( -640 256 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -608 488 -61 ) ( -608 160 283 ) ( -640 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 320 -61 ) ( -384 384 115 ) ( -640 320 115 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 320 115 ) ( -384 384 115 ) ( -384 368 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 256 131 ) ( -448 256 131 ) ( -448 256 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 256 -48 ) ( -448 320 -48 ) ( -640 320 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 304 131 ) ( -384 368 131 ) ( -448 256 131 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 320 -61 ) ( -384 384 115 ) ( -640 320 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 256 131 ) ( -384 368 131 ) ( -448 256 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 256 -61 ) ( -384 384 115 ) ( -448 320 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 368 131 ) ( -384 384 115 ) ( -448 256 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 83 +{ +( -640 352 83 ) ( -640 336 99 ) ( -640 320 99 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -608 488 -61 ) ( -608 160 283 ) ( -640 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 416 67 ) ( -384 416 83 ) ( -640 352 83 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 352 83 ) ( -384 416 83 ) ( -384 400 99 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 320 99 ) ( -448 320 67 ) ( -640 320 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 320 67 ) ( -384 416 67 ) ( -640 352 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 336 99 ) ( -384 400 99 ) ( -384 384 99 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 320 99 ) ( -384 384 99 ) ( -448 320 67 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( -384 384 99 ) ( -384 416 67 ) ( -448 320 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 400 99 ) ( -384 416 83 ) ( -384 416 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 84 +{ +( -640 384 51 ) ( -640 368 67 ) ( -640 320 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -608 488 -61 ) ( -608 160 283 ) ( -640 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 384 -61 ) ( -384 448 51 ) ( -640 384 51 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 384 51 ) ( -384 448 51 ) ( -384 432 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 320 67 ) ( -448 320 67 ) ( -448 320 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 320 -48 ) ( -448 384 -48 ) ( -640 384 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 368 67 ) ( -384 432 67 ) ( -448 320 67 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 384 -61 ) ( -384 448 51 ) ( -640 384 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 320 67 ) ( -384 432 67 ) ( -448 320 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 320 -61 ) ( -384 448 51 ) ( -448 384 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 432 67 ) ( -384 448 51 ) ( -448 320 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 85 +{ +( -640 416 19 ) ( -640 400 35 ) ( -640 384 35 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -608 488 -61 ) ( -608 160 283 ) ( -640 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 480 3 ) ( -384 480 19 ) ( -640 416 19 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 416 19 ) ( -384 480 19 ) ( -384 464 35 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 384 35 ) ( -448 384 3 ) ( -640 384 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 384 3 ) ( -384 480 3 ) ( -640 416 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 400 35 ) ( -384 464 35 ) ( -384 448 35 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 384 35 ) ( -384 448 35 ) ( -448 384 3 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( -384 448 35 ) ( -384 480 3 ) ( -448 384 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 464 35 ) ( -384 480 19 ) ( -384 480 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 86 +{ +( -640 448 -13 ) ( -640 432 3 ) ( -640 384 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -608 488 -61 ) ( -608 160 283 ) ( -640 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 448 -61 ) ( -384 512 -13 ) ( -640 448 -13 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 448 -13 ) ( -384 512 -13 ) ( -384 496 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 384 3 ) ( -448 384 3 ) ( -448 384 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 384 -48 ) ( -448 448 -48 ) ( -640 448 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 432 3 ) ( -384 496 3 ) ( -448 384 3 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 448 -61 ) ( -384 512 -13 ) ( -640 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 384 -61 ) ( -384 512 -13 ) ( -448 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 384 3 ) ( -384 496 3 ) ( -448 384 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 496 3 ) ( -384 512 -13 ) ( -448 384 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +// brush 87 +{ +( -608 488 -61 ) ( -608 160 283 ) ( -640 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 544 -61 ) ( -384 544 -45 ) ( -640 480 -45 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 480 -45 ) ( -384 544 -45 ) ( -384 528 -29 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 448 -29 ) ( -448 448 -61 ) ( -640 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -448 448 -48 ) ( -384 544 -48 ) ( -640 480 -48 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 464 -29 ) ( -384 528 -29 ) ( -384 512 -29 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -640 448 -29 ) ( -384 512 -29 ) ( -448 448 -61 ) MustRemove/rock2 1 -10.9551 1.77636e-15 3.1 1 0 0 0 +( -384 512 -29 ) ( -384 544 -61 ) ( -448 448 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +( -384 528 -29 ) ( -384 544 -45 ) ( -384 544 -61 ) MustRemove/rock2 1 0 1.77636e-15 3.1 1 0 0 0 +} +} +// entity 2 +{ +"classname" "info_player_start" +"origin" "192 -176 424" +} +// entity 3 +{ +"classname" "info_player_start" +"origin" "64 -176 424" +} +// entity 4 +{ +"classname" "info_player_start" +"origin" "192 -304 424" +} +// entity 5 +{ +"classname" "info_player_start" +"origin" "64 -304 424" +} +// entity 6 +{ +"classname" "light" +"origin" "-8 1464 72" +"light" "150" +} +// entity 7 +{ +"classname" "light" +"origin" "952 1064 216" +"light" "150" +} +// entity 8 +{ +"classname" "mesh_sconce1" +"origin" "-568 120 344" +"light" "300" +} +// entity 9 +{ +"classname" "light" +"origin" "-568 120 376" +"light" "50" +} +// entity 10 +{ +"classname" "mesh_sconce1" +"origin" "824 120 344" +"light" "300" +"angle" "180" +} +// entity 11 +{ +"classname" "light" +"origin" "824 120 376" +"light" "50" +"angle" "180" +} +// entity 12 +{ +"classname" "light" +"origin" "888 1720 56" +"light" "150" +} +// entity 13 +{ +"classname" "light" +"origin" "-680 1768 88" +"light" "150" +} +// entity 14 +{ +"classname" "light" +"origin" "-504 1240 216" +"light" "150" +} +// entity 15 +{ +"classname" "light" +"origin" "1144 -88 216" +"light" "150" +} +// entity 16 +{ +"classname" "light" +"origin" "-856 -216 216" +"light" "150" +} +// entity 17 +{ +"classname" "light" +"origin" "584 520 264" +"light" "150" +} +// entity 18 +{ +"classname" "light" +"origin" "136 664 264" +"light" "150" +} +// entity 19 +{ +"classname" "light" +"origin" "-296 600 264" +"light" "150" +} +// entity 20 +{ +"classname" "light" +"origin" "-696 3048 -920" +"light" "50" +"angle" "180" +} +// entity 21 +{ +"classname" "mesh_sconce1" +"origin" "-696 3048 -952" +"light" "300" +"angle" "180" +} +// entity 22 +{ +"classname" "light" +"origin" "-696 4392 -920" +"light" "50" +"angle" "180" +} +// entity 23 +{ +"classname" "mesh_sconce1" +"origin" "-696 4392 -952" +"light" "300" +"angle" "180" +} +// entity 24 +{ +"classname" "light" +"origin" "-88 2184 104" +"light" "50" +"angle" "270" +} +// entity 25 +{ +"classname" "mesh_sconce1" +"origin" "-88 2184 72" +"light" "300" +"angle" "270" +} +// entity 26 +{ +"classname" "light" +"origin" "344 2184 104" +"light" "50" +"angle" "270" +} +// entity 27 +{ +"classname" "mesh_sconce1" +"origin" "344 2184 72" +"light" "300" +"angle" "270" +} +// entity 28 +{ +"classname" "light" +"origin" "-312 2360 88" +"light" "50" +"angle" "0" +} +// entity 29 +{ +"classname" "mesh_sconce1" +"origin" "-312 2360 56" +"light" "300" +"angle" "0" +} +// entity 30 +{ +"classname" "light" +"origin" "568 2360 88" +"light" "50" +"angle" "180" +} +// entity 31 +{ +"classname" "mesh_sconce1" +"origin" "568 2360 56" +"light" "300" +"angle" "180" +} +// entity 32 +{ +"classname" "light" +"origin" "-56 2856 72" +"light" "50" +} +// entity 33 +{ +"classname" "mesh_sconce1" +"origin" "-56 2856 40" +"light" "300" +} +// entity 34 +{ +"classname" "light" +"origin" "152 3368 72" +"light" "50" +"angle" "270" +} +// entity 35 +{ +"classname" "mesh_sconce1" +"origin" "152 3368 40" +"light" "300" +"angle" "270" +} +// entity 36 +{ +"classname" "light" +"origin" "504 3368 72" +"light" "50" +"angle" "270" +} +// entity 37 +{ +"classname" "mesh_sconce1" +"origin" "504 3368 40" +"light" "300" +"angle" "270" +} +// entity 38 +{ +"classname" "light" +"origin" "946.931 2885.07 24" +"light" "50" +"angle" "60" +} +// entity 39 +{ +"classname" "mesh_sconce1" +"origin" "946.931 2885.07 -8" +"light" "300" +"angle" "60" +} +// entity 40 +{ +"classname" "light" +"origin" "1496 2824 32" +"light" "50" +"angle" "270" +} +// entity 41 +{ +"classname" "mesh_sconce1" +"origin" "1496 2824 0" +"light" "300" +"angle" "270" +} +// entity 42 +{ +"classname" "light" +"origin" "1694.32 2372 32" +"light" "50" +"angle" "180" +} +// entity 43 +{ +"classname" "mesh_sconce1" +"origin" "1694.32 2372 0" +"light" "300" +"angle" "180" +} +// entity 44 +{ +"classname" "mesh_chandelier1" +"origin" "1524 2624 136" +} +// entity 45 +{ +"classname" "light" +"origin" "1524 2624 136" +} +// entity 46 +{ +"classname" "mesh_bigcandle" +"origin" "1524 2624 -56" +} +// entity 47 +{ +"classname" "light" +"origin" "2116 1576 48" +"light" "50" +"angle" "90" +} +// entity 48 +{ +"classname" "mesh_sconce1" +"origin" "2116 1576 16" +"light" "300" +"angle" "90" +} +// entity 49 +{ +"classname" "light" +"origin" "2664 1576 48" +"light" "50" +"angle" "90" +} +// entity 50 +{ +"classname" "mesh_sconce1" +"origin" "2664 1576 16" +"light" "300" +"angle" "90" +} +// entity 51 +{ +"classname" "light" +"origin" "2248 2108 56" +"light" "50" +"angle" "330" +} +// entity 52 +{ +"classname" "mesh_sconce1" +"origin" "2248 2108 24" +"light" "300" +"angle" "330" +} +// entity 53 +{ +"classname" "light" +"origin" "2180 2472 68" +"light" "50" +} +// entity 54 +{ +"classname" "mesh_sconce1" +"origin" "2180 2472 36" +"light" "300" +} +// entity 55 +{ +"classname" "light" +"origin" "2452 2640 56" +"light" "50" +"angle" "180" +} +// entity 56 +{ +"classname" "mesh_sconce1" +"origin" "2452 2640 24" +"light" "300" +"angle" "180" +} +// entity 57 +{ +"classname" "light" +"origin" "2084 3344 48" +"light" "50" +} +// entity 58 +{ +"classname" "mesh_sconce1" +"origin" "2084 3344 16" +"light" "300" +} +// entity 59 +{ +"classname" "light" +"origin" "2632 3452 52" +"light" "50" +"angle" "180" +} +// entity 60 +{ +"classname" "mesh_sconce1" +"origin" "2632 3452 20" +"light" "300" +"angle" "180" +} +// entity 61 +{ +"classname" "light" +"origin" "2220 3560 44" +"light" "50" +"angle" "90" +} +// entity 62 +{ +"classname" "mesh_sconce1" +"origin" "2220 3560 12" +"light" "300" +"angle" "90" +} +// entity 63 +{ +"classname" "light" +"origin" "1592 3560 -132" +"light" "50" +"angle" "90" +} +// entity 64 +{ +"classname" "mesh_sconce1" +"origin" "1592 3560 -164" +"light" "300" +"angle" "90" +} +// entity 65 +{ +"classname" "light" +"origin" "904 3560 -328" +"light" "50" +"angle" "90" +} +// entity 66 +{ +"classname" "mesh_sconce1" +"origin" "900 3560 -360" +"light" "300" +"angle" "90" +} +// entity 67 +{ +"classname" "light" +"origin" "640 3560 -404" +"light" "50" +"angle" "90" +} +// entity 68 +{ +"classname" "mesh_sconce1" +"origin" "640 3560 -436" +"light" "300" +"angle" "90" +} diff --git a/sourcefiles/mapsrc/infil.map b/sourcefiles/mapsrc/infil.map @@ -0,0 +1,1120 @@ +// Game: Generic +// Format: Standard +// entity 0 +{ +"classname" "worldspawn" +"_tb_def" "external:C:/AllProjects/fangflecked-dev/mapz/fang.fgd" +"_tb_textures" "textures" +"_tb_mod" "fangflecked" +"wad" "fangflecked.wad" +// brush 0 +{ +( -832 -768 544 ) ( -832 -767 544 ) ( -832 -768 545 ) claybricks 0 0 0 1 1 +( -384 -704 544 ) ( -384 -704 545 ) ( -383 -704 544 ) claybricks 0 0 0 1 1 +( -384 -768 560 ) ( -383 -768 560 ) ( -384 -767 560 ) claybricks 0 0 0 1 1 +( -256 -640 624 ) ( -256 -639 624 ) ( -255 -640 624 ) claybricks 0 0 0 1 1 +( -256 -640 576 ) ( -255 -640 576 ) ( -256 -640 577 ) claybricks 0 0 0 1 1 +( -256 -640 576 ) ( -256 -640 577 ) ( -256 -639 576 ) claybricks 0 0 0 1 1 +} +// brush 1 +{ +( -752 -720 688 ) ( -768 -768 688 ) ( -768 -768 560 ) claybricks 0 0 0 1 1 +( -512 -704 560 ) ( -512 -704 688 ) ( -752 -720 688 ) claybricks 0 0 0 1 1 +( -768 -768 688 ) ( -512 -768 688 ) ( -512 -768 560 ) claybricks 0 0 0 1 1 +( -512 -768 560 ) ( -512 -704 560 ) ( -752 -720 560 ) claybricks 0 0 0 1 1 +( -752 -720 752 ) ( -512 -704 752 ) ( -512 -768 752 ) claybricks 0 0 0 1 1 +( -512 -768 688 ) ( -512 -704 688 ) ( -512 -704 560 ) claybricks 0 0 0 1 1 +} +// brush 2 +{ +( -832 -704 560 ) ( -832 -703 560 ) ( -832 -704 561 ) claybricks 0 0 0 1 1 +( -640 -640 560 ) ( -640 -640 561 ) ( -639 -640 560 ) claybricks 0 0 0 1 1 +( -640 -704 560 ) ( -639 -704 560 ) ( -640 -703 560 ) claybricks 0 0 0 1 1 +( -576 -576 736 ) ( -576 -575 736 ) ( -575 -576 736 ) claybricks 0 0 0 1 1 +( -576 -576 624 ) ( -575 -576 624 ) ( -576 -576 625 ) claybricks 0 0 0 1 1 +( -576 -576 624 ) ( -576 -576 625 ) ( -576 -575 624 ) claybricks 0 0 0 1 1 +} +// brush 3 +{ +( -64 -832 624 ) ( -64 -831 624 ) ( -64 -832 625 ) pstone1 0 0 0 1 1 +( -64 -1856 624 ) ( -64 -1856 625 ) ( -63 -1856 624 ) pstone1 0 0 0 1 1 +( -64 -832 48 ) ( -63 -832 48 ) ( -64 -831 48 ) pstone1 0 0 0 1 1 +( 0 -512 1264 ) ( 0 -511 1264 ) ( 1 -512 1264 ) pstone1 0 0 0 1 1 +( 0 -64 688 ) ( 1 -64 688 ) ( 0 -64 689 ) pstone1 0 0 0 1 1 +( 0 -512 688 ) ( 0 -512 689 ) ( 0 -511 688 ) pstone1 0 0 0 1 1 +} +// brush 4 +{ +( -2048 -832 624 ) ( -2048 -831 624 ) ( -2048 -832 625 ) pstone1 0 0 0 1 1 +( -64 -1856 624 ) ( -64 -1856 625 ) ( -63 -1856 624 ) pstone1 0 0 0 1 1 +( 0 -512 1264 ) ( 1 -512 1264 ) ( 0 -511 1264 ) pstone1 0 0 0 1 1 +( 0 -512 1328 ) ( 0 -511 1328 ) ( 1 -512 1328 ) pstone1 0 0 0 1 1 +( 0 -64 688 ) ( 1 -64 688 ) ( 0 -64 689 ) pstone1 0 0 0 1 1 +( -64 -512 688 ) ( -64 -512 689 ) ( -64 -511 688 ) pstone1 0 0 0 1 1 +} +// brush 5 +{ +( -2112 -832 624 ) ( -2112 -831 624 ) ( -2112 -832 625 ) pstone1 0 0 0 1 1 +( -64 -1856 624 ) ( -64 -1856 625 ) ( -63 -1856 624 ) pstone1 0 0 0 1 1 +( 0 -512 48 ) ( 1 -512 48 ) ( 0 -511 48 ) pstone1 0 0 0 1 1 +( 0 -512 1264 ) ( 0 -511 1264 ) ( 1 -512 1264 ) pstone1 0 0 0 1 1 +( 0 -64 688 ) ( 1 -64 688 ) ( 0 -64 689 ) pstone1 0 0 0 1 1 +( -2048 -832 624 ) ( -2048 -832 625 ) ( -2048 -831 624 ) pstone1 0 0 0 1 1 +} +// brush 6 +{ +( -2048 -832 624 ) ( -2048 -831 624 ) ( -2048 -832 625 ) pstone1 0 0 0 1 1 +( -64 -1856 624 ) ( -64 -1856 625 ) ( -63 -1856 624 ) pstone1 0 0 0 1 1 +( -64 -832 -16 ) ( -63 -832 -16 ) ( -64 -831 -16 ) pstone1 0 0 0 1 1 +( -64 -832 48 ) ( -64 -831 48 ) ( -63 -832 48 ) pstone1 0 0 0 1 1 +( 0 -64 688 ) ( 1 -64 688 ) ( 0 -64 689 ) pstone1 0 0 0 1 1 +( -64 -512 688 ) ( -64 -512 689 ) ( -64 -511 688 ) pstone1 0 0 0 1 1 +} +// brush 7 +{ +( -2048 -832 624 ) ( -2048 -831 624 ) ( -2048 -832 625 ) pstone1 0 0 0 1 1 +( -64 -64 688 ) ( -64 -64 689 ) ( -63 -64 688 ) pstone1 0 0 0 1 1 +( -128 -832 48 ) ( -127 -832 48 ) ( -128 -831 48 ) pstone1 0 0 0 1 1 +( -64 -512 1264 ) ( -64 -511 1264 ) ( -63 -512 1264 ) pstone1 0 0 0 1 1 +( -64 0 688 ) ( -63 0 688 ) ( -64 0 689 ) pstone1 0 0 0 1 1 +( -64 -512 688 ) ( -64 -512 689 ) ( -64 -511 688 ) pstone1 0 0 0 1 1 +} +// brush 8 +{ +( -2048 -2688 624 ) ( -2048 -2687 624 ) ( -2048 -2688 625 ) pstone1 0 0 0 1 1 +( -64 -1920 688 ) ( -64 -1920 689 ) ( -63 -1920 688 ) pstone1 0 0 0 1 1 +( -128 -2688 48 ) ( -127 -2688 48 ) ( -128 -2687 48 ) pstone1 0 0 0 1 1 +( -64 -2368 1264 ) ( -64 -2367 1264 ) ( -63 -2368 1264 ) pstone1 0 0 0 1 1 +( -64 -1856 688 ) ( -63 -1856 688 ) ( -64 -1856 689 ) pstone1 0 0 0 1 1 +( -64 -2368 688 ) ( -64 -2368 689 ) ( -64 -2367 688 ) pstone1 0 0 0 1 1 +} +// brush 9 +{ +( -512 -768 544 ) ( -512 -767 544 ) ( -512 -768 545 ) claybricks 0 0 0 1 1 +( -256 -640 576 ) ( -256 -640 577 ) ( -255 -640 576 ) claybricks 0 0 0 1 1 +( -384 -768 560 ) ( -383 -768 560 ) ( -384 -767 560 ) claybricks 0 0 0 1 1 +( -256 -640 624 ) ( -256 -639 624 ) ( -255 -640 624 ) claybricks 0 0 0 1 1 +( -256 -512 576 ) ( -255 -512 576 ) ( -256 -512 577 ) claybricks 0 0 0 1 1 +( -256 -640 576 ) ( -256 -640 577 ) ( -256 -639 576 ) claybricks 0 0 0 1 1 +} +// brush 10 +{ +( -512 -1024 544 ) ( -512 -1023 544 ) ( -512 -1024 545 ) claybricks 0 0 0 1 1 +( -256 -832 576 ) ( -256 -832 577 ) ( -255 -832 576 ) claybricks 0 0 0 1 1 +( -384 -1024 560 ) ( -383 -1024 560 ) ( -384 -1023 560 ) claybricks 0 0 0 1 1 +( -256 -896 624 ) ( -256 -895 624 ) ( -255 -896 624 ) claybricks 0 0 0 1 1 +( -256 -704 576 ) ( -255 -704 576 ) ( -256 -704 577 ) claybricks 0 0 0 1 1 +( -256 -896 576 ) ( -256 -896 577 ) ( -256 -895 576 ) claybricks 0 0 0 1 1 +} +// brush 11 +{ +( -512 -1152 608 ) ( -512 -1151 608 ) ( -512 -1152 609 ) claybricks 0 0 0 1 1 +( -640 -896 640 ) ( -640 -896 641 ) ( -639 -896 640 ) claybricks 0 0 0 1 1 +( -640 -1024 624 ) ( -639 -1024 624 ) ( -640 -1023 624 ) claybricks 0 0 0 1 1 +( -640 -1024 816 ) ( -640 -1023 816 ) ( -639 -1024 816 ) claybricks 0 0 0 1 1 +( -640 -832 640 ) ( -639 -832 640 ) ( -640 -832 641 ) claybricks 0 0 0 1 1 +( -256 -1024 640 ) ( -256 -1024 641 ) ( -256 -1023 640 ) claybricks 0 0 0 1 1 +} +// brush 12 +{ +( -576 -1088 480 ) ( -576 -1087 480 ) ( -576 -1088 481 ) claybricks 0 0 0 1 1 +( -704 -976 512 ) ( -704 -976 513 ) ( -703 -976 512 ) claybricks 0 0 0 1 1 +( -704 -960 624 ) ( -703 -960 624 ) ( -704 -959 624 ) claybricks 0 0 0 1 1 +( -704 -960 880 ) ( -704 -959 880 ) ( -703 -960 880 ) claybricks 0 0 0 1 1 +( -704 -768 512 ) ( -703 -768 512 ) ( -704 -768 513 ) claybricks 0 0 0 1 1 +( -512 -960 512 ) ( -512 -960 513 ) ( -512 -959 512 ) claybricks 0 0 0 1 1 +} +// brush 13 +{ +( -256 -1088 480 ) ( -256 -1087 480 ) ( -256 -1088 481 ) claybricks 0 0 0 1 1 +( -384 -832 512 ) ( -384 -832 513 ) ( -383 -832 512 ) claybricks 0 0 0 1 1 +( -384 -960 624 ) ( -383 -960 624 ) ( -384 -959 624 ) claybricks 0 0 0 1 1 +( -384 -960 880 ) ( -384 -959 880 ) ( -383 -960 880 ) claybricks 0 0 0 1 1 +( -384 -512 512 ) ( -383 -512 512 ) ( -384 -512 513 ) claybricks 0 0 0 1 1 +( -192 -960 512 ) ( -192 -960 513 ) ( -192 -959 512 ) claybricks 0 0 0 1 1 +} +// brush 14 +{ +( -512 -768 608 ) ( -512 -767 608 ) ( -512 -768 609 ) claybricks 0 0 0 1 1 +( -640 -512 640 ) ( -640 -512 641 ) ( -639 -512 640 ) claybricks 0 0 0 1 1 +( -640 -640 624 ) ( -639 -640 624 ) ( -640 -639 624 ) claybricks 0 0 0 1 1 +( -640 -640 816 ) ( -640 -639 816 ) ( -639 -640 816 ) claybricks 0 0 0 1 1 +( -640 -448 640 ) ( -639 -448 640 ) ( -640 -448 641 ) claybricks 0 0 0 1 1 +( -256 -640 640 ) ( -256 -640 641 ) ( -256 -639 640 ) claybricks 0 0 0 1 1 +} +// brush 15 +{ +( -576 -768 480 ) ( -576 -767 480 ) ( -576 -768 481 ) claybricks 0 0 0 1 1 +( -704 -576 512 ) ( -704 -576 513 ) ( -703 -576 512 ) claybricks 0 0 0 1 1 +( -704 -640 624 ) ( -703 -640 624 ) ( -704 -639 624 ) claybricks 0 0 0 1 1 +( -704 -640 880 ) ( -704 -639 880 ) ( -703 -640 880 ) claybricks 0 0 0 1 1 +( -704 -512 512 ) ( -703 -512 512 ) ( -704 -512 513 ) claybricks 0 0 0 1 1 +( -512 -640 512 ) ( -512 -640 513 ) ( -512 -639 512 ) claybricks 0 0 0 1 1 +} +// brush 16 +{ +( -512 -1216 608 ) ( -512 -1215 608 ) ( -512 -1216 609 ) claybricks 0 0 0 1 1 +( -640 -960 640 ) ( -640 -960 641 ) ( -639 -960 640 ) claybricks 0 0 0 1 1 +( -640 -1088 816 ) ( -639 -1088 816 ) ( -640 -1087 816 ) claybricks 0 0 0 1 1 +( -640 -1088 880 ) ( -640 -1087 880 ) ( -639 -1088 880 ) claybricks 0 0 0 1 1 +( -640 -768 640 ) ( -639 -768 640 ) ( -640 -768 641 ) claybricks 0 0 0 1 1 +( -256 -1088 640 ) ( -256 -1088 641 ) ( -256 -1087 640 ) claybricks 0 0 0 1 1 +} +// brush 17 +{ +( -512 -896 608 ) ( -512 -895 608 ) ( -512 -896 609 ) claybricks 0 0 0 1 1 +( -640 -640 640 ) ( -640 -640 641 ) ( -639 -640 640 ) claybricks 0 0 0 1 1 +( -640 -768 816 ) ( -639 -768 816 ) ( -640 -767 816 ) claybricks 0 0 0 1 1 +( -640 -768 880 ) ( -640 -767 880 ) ( -639 -768 880 ) claybricks 0 0 0 1 1 +( -640 -448 640 ) ( -639 -448 640 ) ( -640 -448 641 ) claybricks 0 0 0 1 1 +( -256 -768 640 ) ( -256 -768 641 ) ( -256 -767 640 ) claybricks 0 0 0 1 1 +} +// brush 18 +{ +( -576 -896 608 ) ( -576 -895 608 ) ( -576 -896 609 ) claybricks 0 0 0 1 1 +( -640 -768 640 ) ( -640 -768 641 ) ( -639 -768 640 ) claybricks 0 0 0 1 1 +( -640 -768 752 ) ( -639 -768 752 ) ( -640 -767 752 ) claybricks 0 0 0 1 1 +( -640 -768 880 ) ( -640 -767 880 ) ( -639 -768 880 ) claybricks 0 0 0 1 1 +( -640 -576 640 ) ( -639 -576 640 ) ( -640 -576 641 ) claybricks 0 0 0 1 1 +( -512 -896 608 ) ( -512 -896 609 ) ( -512 -895 608 ) claybricks 0 0 0 1 1 +} +// brush 19 +{ +( -512 -768 740 ) ( -512 -767 740 ) ( -512 -768 741 ) claybricks 0 -12 0 1 1 +( -512 -708 740 ) ( -512 -708 741 ) ( -511 -708 740 ) claybricks 0 -12 0 1 1 +( -512 -768 800 ) ( -511 -768 800 ) ( -512 -767 800 ) claybricks 0 0 0 1 1 +( -448 -704 880 ) ( -448 -703 880 ) ( -447 -704 880 ) claybricks 0 0 0 1 1 +( -448 -704 804 ) ( -447 -704 804 ) ( -448 -704 805 ) claybricks 0 -12 0 1 1 +( -508 -704 804 ) ( -508 -704 805 ) ( -508 -703 804 ) claybricks 0 -12 0 1 1 +} +// brush 20 +{ +( -512 -740 740 ) ( -512 -739 740 ) ( -512 -740 741 ) claybricks 4 -12 0 1 1 +( -512 -680 740 ) ( -512 -680 741 ) ( -511 -680 740 ) claybricks 0 -12 0 1 1 +( -512 -740 800 ) ( -511 -740 800 ) ( -512 -739 800 ) claybricks 0 -4 0 1 1 +( -448 -676 880 ) ( -448 -675 880 ) ( -447 -676 880 ) claybricks 0 -4 0 1 1 +( -448 -676 804 ) ( -447 -676 804 ) ( -448 -676 805 ) claybricks 0 -12 0 1 1 +( -508 -676 804 ) ( -508 -676 805 ) ( -508 -675 804 ) claybricks 4 -12 0 1 1 +} +// brush 21 +{ +( -512 -760 776 ) ( -512 -759 776 ) ( -512 -760 777 ) claybricks 24 24 0 1 1 +( -512 -704 776 ) ( -512 -704 777 ) ( -511 -704 776 ) claybricks 0 24 0 1 1 +( -512 -760 836 ) ( -511 -760 836 ) ( -512 -759 836 ) claybricks 0 -24 0 1 1 +( -448 -696 840 ) ( -448 -695 840 ) ( -447 -696 840 ) claybricks 0 -24 0 1 1 +( -448 -680 840 ) ( -447 -680 840 ) ( -448 -680 841 ) claybricks 0 24 0 1 1 +( -508 -696 840 ) ( -508 -696 841 ) ( -508 -695 840 ) claybricks 24 24 0 1 1 +} +// brush 22 +{ +( -512 -760 760 ) ( -512 -759 760 ) ( -512 -760 761 ) claybricks 24 8 0 1 1 +( -512 -704 760 ) ( -512 -704 761 ) ( -511 -704 760 ) claybricks 0 8 0 1 1 +( -512 -760 820 ) ( -511 -760 820 ) ( -512 -759 820 ) claybricks 0 -24 0 1 1 +( -448 -696 824 ) ( -448 -695 824 ) ( -447 -696 824 ) claybricks 0 -24 0 1 1 +( -448 -680 824 ) ( -447 -680 824 ) ( -448 -680 825 ) claybricks 0 8 0 1 1 +( -508 -696 824 ) ( -508 -696 825 ) ( -508 -695 824 ) claybricks 24 8 0 1 1 +} +// brush 23 +{ +( -512 -760 744 ) ( -512 -759 744 ) ( -512 -760 745 ) claybricks 24 -8 0 1 1 +( -512 -704 744 ) ( -512 -704 745 ) ( -511 -704 744 ) claybricks 0 -8 0 1 1 +( -512 -760 804 ) ( -511 -760 804 ) ( -512 -759 804 ) claybricks 0 -24 0 1 1 +( -448 -696 808 ) ( -448 -695 808 ) ( -447 -696 808 ) claybricks 0 -24 0 1 1 +( -448 -680 808 ) ( -447 -680 808 ) ( -448 -680 809 ) claybricks 0 -8 0 1 1 +( -508 -696 808 ) ( -508 -696 809 ) ( -508 -695 808 ) claybricks 24 -8 0 1 1 +} +// brush 24 +{ +( -512 -760 796 ) ( -512 -759 796 ) ( -512 -760 797 ) claybricks 24 12 0 1 1 +( -512 -704 796 ) ( -512 -704 797 ) ( -511 -704 796 ) claybricks 0 12 0 1 1 +( -512 -760 856 ) ( -511 -760 856 ) ( -512 -759 856 ) claybricks 0 -24 0 1 1 +( -448 -696 860 ) ( -448 -695 860 ) ( -447 -696 860 ) claybricks 0 -24 0 1 1 +( -448 -680 860 ) ( -447 -680 860 ) ( -448 -680 861 ) claybricks 0 12 0 1 1 +( -508 -696 860 ) ( -508 -696 861 ) ( -508 -695 860 ) claybricks 24 12 0 1 1 +} +// brush 25 +{ +( -832 -768 560 ) ( -832 -767 560 ) ( -832 -768 561 ) claybricks 0 0 0 1 1 +( -832 -768 560 ) ( -832 -768 561 ) ( -831 -768 560 ) claybricks 0 0 0 1 1 +( -832 -768 560 ) ( -831 -768 560 ) ( -832 -767 560 ) claybricks 0 0 0 1 1 +( -768 -704 624 ) ( -768 -703 624 ) ( -767 -704 624 ) claybricks 0 0 0 1 1 +( -768 -704 624 ) ( -767 -704 624 ) ( -768 -704 625 ) claybricks 0 0 0 1 1 +( -768 -704 624 ) ( -768 -704 625 ) ( -768 -703 624 ) claybricks 0 0 0 1 1 +} +// brush 26 +{ +( -896 -704 624 ) ( -896 -703 624 ) ( -896 -704 625 ) claybricks 0 0 0 1 1 +( -896 -768 624 ) ( -896 -768 625 ) ( -895 -768 624 ) claybricks 0 0 0 1 1 +( -896 -704 624 ) ( -895 -704 624 ) ( -896 -703 624 ) claybricks 0 0 0 1 1 +( -832 -640 688 ) ( -832 -639 688 ) ( -831 -640 688 ) claybricks 0 0 0 1 1 +( -832 -704 688 ) ( -831 -704 688 ) ( -832 -704 689 ) claybricks 0 0 0 1 1 +( -832 -640 688 ) ( -832 -640 689 ) ( -832 -639 688 ) claybricks 0 0 0 1 1 +} +// brush 27 +{ +( -768 -768 560 ) ( -768 -767 560 ) ( -768 -768 561 ) claybricks 0 0 0 1 1 +( -768 -768 560 ) ( -768 -768 561 ) ( -767 -768 560 ) claybricks 0 0 0 1 1 +( -768 -768 560 ) ( -767 -768 560 ) ( -768 -767 560 ) claybricks 0 0 0 1 1 +( -704 -704 624 ) ( -704 -703 624 ) ( -703 -704 624 ) claybricks 0 0 0 1 1 +( -704 -704 624 ) ( -703 -704 624 ) ( -704 -704 625 ) claybricks 0 0 0 1 1 +( -512 -704 624 ) ( -512 -704 625 ) ( -512 -703 624 ) claybricks 0 0 0 1 1 +} +// brush 28 +{ +( -832 -896 560 ) ( -832 -895 560 ) ( -832 -896 561 ) claybricks 0 0 0 1 1 +( -832 -896 560 ) ( -832 -896 561 ) ( -831 -896 560 ) claybricks 0 0 0 1 1 +( -832 -896 560 ) ( -831 -896 560 ) ( -832 -895 560 ) claybricks 0 0 0 1 1 +( -768 -832 640 ) ( -768 -831 640 ) ( -767 -832 640 ) claybricks 0 0 0 1 1 +( -768 -832 624 ) ( -767 -832 624 ) ( -768 -832 625 ) claybricks 0 0 0 1 1 +( -768 -832 624 ) ( -768 -832 625 ) ( -768 -831 624 ) claybricks 0 0 0 1 1 +} +// brush 29 +{ +( -896 -896 560 ) ( -896 -895 560 ) ( -896 -896 561 ) claybricks 0 0 0 1 1 +( -896 -896 560 ) ( -896 -896 561 ) ( -895 -896 560 ) claybricks 0 0 0 1 1 +( -896 -896 560 ) ( -895 -896 560 ) ( -896 -895 560 ) claybricks 0 0 0 1 1 +( -832 -832 656 ) ( -832 -831 656 ) ( -831 -832 656 ) claybricks 0 0 0 1 1 +( -832 -832 624 ) ( -831 -832 624 ) ( -832 -832 625 ) claybricks 0 0 0 1 1 +( -832 -832 624 ) ( -832 -832 625 ) ( -832 -831 624 ) claybricks 0 0 0 1 1 +} +// brush 30 +{ +( -896 -832 560 ) ( -896 -831 560 ) ( -896 -832 561 ) claybricks 0 0 0 1 1 +( -896 -832 560 ) ( -896 -832 561 ) ( -895 -832 560 ) claybricks 0 0 0 1 1 +( -896 -832 560 ) ( -895 -832 560 ) ( -896 -831 560 ) claybricks 0 0 0 1 1 +( -832 -768 672 ) ( -832 -767 672 ) ( -831 -768 672 ) claybricks 0 0 0 1 1 +( -832 -768 624 ) ( -831 -768 624 ) ( -832 -768 625 ) claybricks 0 0 0 1 1 +( -832 -768 624 ) ( -832 -768 625 ) ( -832 -767 624 ) claybricks 0 0 0 1 1 +} +// brush 31 +{ +( -832 -832 560 ) ( -832 -831 560 ) ( -832 -832 561 ) claybricks 0 0 0 1 1 +( -832 -832 560 ) ( -832 -832 561 ) ( -831 -832 560 ) claybricks 0 0 0 1 1 +( -832 -832 560 ) ( -831 -832 560 ) ( -832 -831 560 ) claybricks 0 0 0 1 1 +( -768 -768 624 ) ( -768 -767 624 ) ( -767 -768 624 ) claybricks 0 0 0 1 1 +( -768 -768 624 ) ( -767 -768 624 ) ( -768 -768 625 ) claybricks 0 0 0 1 1 +( -768 -768 624 ) ( -768 -768 625 ) ( -768 -767 624 ) claybricks 0 0 0 1 1 +} +// brush 32 +{ +( -448 -768 816 ) ( -448 -767 816 ) ( -448 -768 817 ) claybricks 0 0 0 1 1 +( -320 -768 816 ) ( -320 -768 817 ) ( -319 -768 816 ) claybricks 0 0 0 1 1 +( -320 -768 816 ) ( -319 -768 816 ) ( -320 -767 816 ) claybricks 0 0 0 1 1 +( -256 -640 880 ) ( -256 -639 880 ) ( -255 -640 880 ) claybricks 0 0 0 1 1 +( -256 -640 880 ) ( -255 -640 880 ) ( -256 -640 881 ) claybricks 0 0 0 1 1 +( -256 -640 880 ) ( -256 -640 881 ) ( -256 -639 880 ) claybricks 0 0 0 1 1 +} +// brush 33 +{ +( -512 -704 608 ) ( -512 -703 608 ) ( -512 -704 609 ) claybricks 0 0 0 1 1 +( -640 -448 640 ) ( -640 -448 641 ) ( -639 -448 640 ) claybricks 0 0 0 1 1 +( -640 -576 880 ) ( -639 -576 880 ) ( -640 -575 880 ) claybricks 0 0 0 1 1 +( -640 -576 1072 ) ( -640 -575 1072 ) ( -639 -576 1072 ) claybricks 0 0 0 1 1 +( -640 -384 640 ) ( -639 -384 640 ) ( -640 -384 641 ) claybricks 0 0 0 1 1 +( -192 -576 640 ) ( -192 -576 641 ) ( -192 -575 640 ) claybricks 0 0 0 1 1 +} +// brush 34 +{ +( -512 -704 608 ) ( -512 -703 608 ) ( -512 -704 609 ) claybricks 0 0 0 1 1 +( -640 -960 640 ) ( -640 -960 641 ) ( -639 -960 640 ) claybricks 0 0 0 1 1 +( -640 -576 1072 ) ( -639 -576 1072 ) ( -640 -575 1072 ) claybricks 0 0 0 1 1 +( -640 -576 1136 ) ( -640 -575 1136 ) ( -639 -576 1136 ) claybricks 0 0 0 1 1 +( -640 -448 640 ) ( -639 -448 640 ) ( -640 -448 641 ) claybricks 0 0 0 1 1 +( -192 -576 640 ) ( -192 -576 641 ) ( -192 -575 640 ) claybricks 0 0 0 1 1 +} +// brush 35 +{ +( -512 -1280 608 ) ( -512 -1279 608 ) ( -512 -1280 609 ) claybricks 0 0 0 1 1 +( -640 -1024 640 ) ( -640 -1024 641 ) ( -639 -1024 640 ) claybricks 0 0 0 1 1 +( -640 -1152 880 ) ( -639 -1152 880 ) ( -640 -1151 880 ) claybricks 0 0 0 1 1 +( -640 -1152 1072 ) ( -640 -1151 1072 ) ( -639 -1152 1072 ) claybricks 0 0 0 1 1 +( -640 -960 640 ) ( -639 -960 640 ) ( -640 -960 641 ) claybricks 0 0 0 1 1 +( -192 -1152 640 ) ( -192 -1152 641 ) ( -192 -1151 640 ) claybricks 0 0 0 1 1 +} +// brush 36 +{ +( -576 -704 608 ) ( -576 -703 608 ) ( -576 -704 609 ) claybricks 0 0 0 1 1 +( -640 -960 640 ) ( -640 -960 641 ) ( -639 -960 640 ) claybricks 0 0 0 1 1 +( -640 -576 880 ) ( -639 -576 880 ) ( -640 -575 880 ) claybricks 0 0 0 1 1 +( -640 -576 1072 ) ( -640 -575 1072 ) ( -639 -576 1072 ) claybricks 0 0 0 1 1 +( -640 -352 640 ) ( -639 -352 640 ) ( -640 -352 641 ) claybricks 0 0 0 1 1 +( -512 -704 608 ) ( -512 -704 609 ) ( -512 -703 608 ) claybricks 0 0 0 1 1 +} +// brush 37 +{ +( -192 -1088 640 ) ( -192 -1087 640 ) ( -192 -1088 641 ) claybricks 0 0 0 1 1 +( -640 -960 640 ) ( -640 -960 641 ) ( -639 -960 640 ) claybricks 0 0 0 1 1 +( -640 -1088 880 ) ( -639 -1088 880 ) ( -640 -1087 880 ) claybricks 0 0 0 1 1 +( -640 -1088 1072 ) ( -640 -1087 1072 ) ( -639 -1088 1072 ) claybricks 0 0 0 1 1 +( -640 -448 640 ) ( -639 -448 640 ) ( -640 -448 641 ) claybricks 0 0 0 1 1 +( -128 -1088 640 ) ( -128 -1088 641 ) ( -128 -1087 640 ) claybricks 0 0 0 1 1 +} +// brush 38 +{ +( -256 -832 816 ) ( -256 -832 880 ) ( -256 -960 816 ) claybricks 0 0 0 1 1 +( -256 -832 880 ) ( -192 -832 880 ) ( -192 -960 816 ) claybricks 0 0 0 1 1 +( -192 -960 816 ) ( -192 -832 816 ) ( -256 -832 816 ) claybricks 0 0 0 1 1 +( -192 -832 816 ) ( -192 -832 880 ) ( -256 -832 880 ) claybricks 0 0 0 1 1 +( -192 -960 816 ) ( -192 -832 880 ) ( -192 -832 816 ) claybricks 0 0 0 1 1 +} +// brush 39 +{ +( -256 -1024 816 ) ( -256 -1023 816 ) ( -256 -1024 817 ) claybricks 0 0 0 1 1 +( -256 -1024 816 ) ( -256 -1024 817 ) ( -255 -1024 816 ) claybricks 0 0 0 1 1 +( -256 -1024 816 ) ( -255 -1024 816 ) ( -256 -1023 816 ) claybricks 0 0 0 1 1 +( -192 -960 880 ) ( -192 -959 880 ) ( -191 -960 880 ) claybricks 0 0 0 1 1 +( -192 -960 880 ) ( -191 -960 880 ) ( -192 -960 881 ) claybricks 0 0 0 1 1 +( -192 -960 880 ) ( -192 -960 881 ) ( -192 -959 880 ) claybricks 0 0 0 1 1 +} +// brush 40 +{ +( -192 -1024 816 ) ( -192 -1023 816 ) ( -192 -1024 817 ) claybricks 0 0 0 1 1 +( -192 -1024 816 ) ( -192 -1024 817 ) ( -191 -1024 816 ) claybricks 0 0 0 1 1 +( -192 -1024 816 ) ( -191 -1024 816 ) ( -192 -1023 816 ) claybricks 0 0 0 1 1 +( -128 -960 880 ) ( -128 -959 880 ) ( -127 -960 880 ) claybricks 0 0 0 1 1 +( -128 -832 880 ) ( -127 -832 880 ) ( -128 -832 881 ) claybricks 0 0 0 1 1 +( -128 -960 880 ) ( -128 -960 881 ) ( -128 -959 880 ) claybricks 0 0 0 1 1 +} +// brush 41 +{ +( -256 -512 816 ) ( -256 -511 816 ) ( -256 -512 817 ) claybricks 0 0 0 1 1 +( -256 -512 816 ) ( -256 -512 817 ) ( -255 -512 816 ) claybricks 0 0 0 1 1 +( -256 -512 816 ) ( -255 -512 816 ) ( -256 -511 816 ) claybricks 0 0 0 1 1 +( -192 -448 880 ) ( -192 -447 880 ) ( -191 -448 880 ) claybricks 0 0 0 1 1 +( -192 -448 880 ) ( -191 -448 880 ) ( -192 -448 881 ) claybricks 0 0 0 1 1 +( -192 -448 880 ) ( -192 -448 881 ) ( -192 -447 880 ) claybricks 0 0 0 1 1 +} +// brush 42 +{ +( -896 -640 640 ) ( -896 -639 640 ) ( -896 -640 641 ) claybricks 0 16 0 1 1 +( -896 -704 640 ) ( -896 -704 641 ) ( -895 -704 640 ) claybricks 0 16 0 1 1 +( -896 -640 624 ) ( -895 -640 624 ) ( -896 -639 624 ) claybricks 0 0 0 1 1 +( -832 -576 704 ) ( -832 -575 704 ) ( -831 -576 704 ) claybricks 0 0 0 1 1 +( -832 -640 704 ) ( -831 -640 704 ) ( -832 -640 705 ) claybricks 0 16 0 1 1 +( -832 -576 704 ) ( -832 -576 705 ) ( -832 -575 704 ) claybricks 0 16 0 1 1 +} +// brush 43 +{ +( -896 -576 656 ) ( -896 -575 656 ) ( -896 -576 657 ) claybricks 0 0 0 1 1 +( -896 -640 656 ) ( -896 -640 657 ) ( -895 -640 656 ) claybricks 0 0 0 1 1 +( -896 -576 640 ) ( -895 -576 640 ) ( -896 -575 640 ) claybricks 0 0 0 1 1 +( -832 -512 720 ) ( -832 -511 720 ) ( -831 -512 720 ) claybricks 0 0 0 1 1 +( -832 -576 720 ) ( -831 -576 720 ) ( -832 -576 721 ) claybricks 0 0 0 1 1 +( -832 -512 720 ) ( -832 -512 721 ) ( -832 -511 720 ) claybricks 0 0 0 1 1 +} +// brush 44 +{ +( -896 -512 672 ) ( -896 -511 672 ) ( -896 -512 673 ) claybricks 0 16 0 1 1 +( -896 -576 672 ) ( -896 -576 673 ) ( -895 -576 672 ) claybricks 0 16 0 1 1 +( -896 -512 656 ) ( -895 -512 656 ) ( -896 -511 656 ) claybricks 0 0 0 1 1 +( -832 -448 736 ) ( -832 -447 736 ) ( -831 -448 736 ) claybricks 0 0 0 1 1 +( -832 -512 736 ) ( -831 -512 736 ) ( -832 -512 737 ) claybricks 0 16 0 1 1 +( -832 -448 736 ) ( -832 -448 737 ) ( -832 -447 736 ) claybricks 0 16 0 1 1 +} +// brush 45 +{ +( -768 -512 672 ) ( -768 -511 672 ) ( -768 -512 673 ) claybricks 0 16 0 1 1 +( -832 -576 672 ) ( -832 -576 673 ) ( -831 -576 672 ) claybricks 0 16 0 1 1 +( -832 -512 656 ) ( -831 -512 656 ) ( -832 -511 656 ) claybricks 0 0 0 1 1 +( -768 -448 736 ) ( -768 -447 736 ) ( -767 -448 736 ) claybricks 0 0 0 1 1 +( -768 -512 736 ) ( -767 -512 736 ) ( -768 -512 737 ) claybricks 0 16 0 1 1 +( -576 -448 736 ) ( -576 -448 737 ) ( -576 -447 736 ) claybricks 0 16 0 1 1 +} +// brush 46 +{ +( -768 -512 672 ) ( -768 -511 672 ) ( -768 -512 673 ) claybricks 0 16 0 1 1 +( -832 -832 672 ) ( -832 -832 673 ) ( -831 -832 672 ) claybricks 0 16 0 1 1 +( -768 -448 736 ) ( -767 -448 736 ) ( -768 -447 736 ) claybricks 0 0 0 1 1 +( -768 -448 768 ) ( -768 -447 768 ) ( -767 -448 768 ) claybricks 0 0 0 1 1 +( -768 -512 736 ) ( -767 -512 736 ) ( -768 -512 737 ) claybricks 0 16 0 1 1 +( -576 -448 736 ) ( -576 -448 737 ) ( -576 -447 736 ) claybricks 0 16 0 1 1 +} +// brush 47 +{ +( -768 -832 624 ) ( -768 -831 624 ) ( -768 -832 625 ) claybricks 0 0 0 1 1 +( -768 -832 624 ) ( -768 -832 625 ) ( -767 -832 624 ) claybricks 0 0 0 1 1 +( -768 -832 624 ) ( -767 -832 624 ) ( -768 -831 624 ) claybricks 0 0 0 1 1 +( -704 -768 752 ) ( -704 -767 752 ) ( -703 -768 752 ) claybricks 0 0 0 1 1 +( -704 -768 688 ) ( -703 -768 688 ) ( -704 -768 689 ) claybricks 0 0 0 1 1 +( -704 -768 688 ) ( -704 -768 689 ) ( -704 -767 688 ) claybricks 0 0 0 1 1 +} +// brush 48 +{ +( -768 -896 688 ) ( -768 -895 688 ) ( -768 -896 689 ) claybricks 0 0 0 1 1 +( -768 -896 688 ) ( -768 -896 689 ) ( -767 -896 688 ) claybricks 0 0 0 1 1 +( -768 -896 624 ) ( -767 -896 624 ) ( -768 -895 624 ) claybricks 0 0 0 1 1 +( -704 -832 752 ) ( -704 -831 752 ) ( -703 -832 752 ) claybricks 0 0 0 1 1 +( -704 -832 752 ) ( -703 -832 752 ) ( -704 -832 753 ) claybricks 0 0 0 1 1 +( -704 -832 752 ) ( -704 -832 753 ) ( -704 -831 752 ) claybricks 0 0 0 1 1 +} +// brush 49 +{ +( -896 -896 688 ) ( -896 -895 688 ) ( -896 -896 689 ) claybricks 0 0 0 1 1 +( -832 -960 688 ) ( -832 -960 689 ) ( -831 -960 688 ) claybricks 0 0 0 1 1 +( -832 -896 624 ) ( -831 -896 624 ) ( -832 -895 624 ) claybricks 0 0 0 1 1 +( -768 -832 752 ) ( -768 -831 752 ) ( -767 -832 752 ) claybricks 0 0 0 1 1 +( -832 -896 688 ) ( -831 -896 688 ) ( -832 -896 689 ) claybricks 0 0 0 1 1 +( -768 -832 752 ) ( -768 -832 753 ) ( -768 -831 752 ) claybricks 0 0 0 1 1 +} +// brush 50 +{ +( -960 -896 688 ) ( -960 -895 688 ) ( -960 -896 689 ) claybricks 0 0 0 1 1 +( -832 -960 688 ) ( -832 -960 689 ) ( -831 -960 688 ) claybricks 0 0 0 1 1 +( -832 -896 624 ) ( -831 -896 624 ) ( -832 -895 624 ) claybricks 0 0 0 1 1 +( -768 -832 880 ) ( -768 -831 880 ) ( -767 -832 880 ) claybricks 0 0 0 1 1 +( -832 -512 688 ) ( -831 -512 688 ) ( -832 -512 689 ) claybricks 0 0 0 1 1 +( -896 -896 688 ) ( -896 -896 689 ) ( -896 -895 688 ) claybricks 0 0 0 1 1 +} +// brush 51 +{ +( -960 -896 688 ) ( -960 -895 688 ) ( -960 -896 689 ) claybricks 0 0 0 1 1 +( -832 -960 688 ) ( -832 -960 689 ) ( -831 -960 688 ) claybricks 0 0 0 1 1 +( -768 -832 880 ) ( -767 -832 880 ) ( -768 -831 880 ) claybricks 0 0 0 1 1 +( -768 -832 944 ) ( -768 -831 944 ) ( -767 -832 944 ) claybricks 0 0 0 1 1 +( -832 -512 688 ) ( -831 -512 688 ) ( -832 -512 689 ) claybricks 0 0 0 1 1 +( -576 -896 688 ) ( -576 -896 689 ) ( -576 -895 688 ) claybricks 0 0 0 1 1 +} +// brush 52 +{ +( -768 -976 736 ) ( -768 -975 736 ) ( -768 -976 737 ) claybricks 16 0 0 1 1 +( -768 -1104 736 ) ( -768 -1104 737 ) ( -767 -1104 736 ) claybricks 0 0 0 1 1 +( -768 -976 736 ) ( -767 -976 736 ) ( -768 -975 736 ) claybricks 0 -16 0 1 1 +( -672 -896 752 ) ( -672 -895 752 ) ( -671 -896 752 ) claybricks 0 -16 0 1 1 +( -672 -896 752 ) ( -671 -896 752 ) ( -672 -896 753 ) claybricks 0 0 0 1 1 +( -512 -896 752 ) ( -512 -896 753 ) ( -512 -895 752 ) claybricks 16 0 0 1 1 +} +// brush 53 +{ +( -704 -896 736 ) ( -704 -895 736 ) ( -704 -896 737 ) claybricks 0 0 0 1 1 +( -704 -896 736 ) ( -704 -896 737 ) ( -703 -896 736 ) claybricks 0 0 0 1 1 +( -704 -896 736 ) ( -703 -896 736 ) ( -704 -895 736 ) claybricks 0 0 0 1 1 +( -672 -832 752 ) ( -672 -831 752 ) ( -671 -832 752 ) claybricks 0 0 0 1 1 +( -672 -832 752 ) ( -671 -832 752 ) ( -672 -832 753 ) claybricks 0 0 0 1 1 +( -512 -832 752 ) ( -512 -832 753 ) ( -512 -831 752 ) claybricks 0 0 0 1 1 +} +// brush 54 +{ +( -960 -512 736 ) ( -960 -511 736 ) ( -960 -512 737 ) claybricks 0 0 0 1 1 +( -896 -512 736 ) ( -896 -512 737 ) ( -895 -512 736 ) claybricks 0 0 0 1 1 +( -896 -512 736 ) ( -895 -512 736 ) ( -896 -511 736 ) claybricks 0 0 0 1 1 +( -576 -496 880 ) ( -576 -495 880 ) ( -575 -496 880 ) claybricks 0 0 0 1 1 +( -576 -496 752 ) ( -575 -496 752 ) ( -576 -496 753 ) claybricks 0 0 0 1 1 +( -576 -496 752 ) ( -576 -496 753 ) ( -576 -495 752 ) claybricks 0 0 0 1 1 +} +// brush 55 +{ +( -832 -960 752 ) ( -832 -959 752 ) ( -832 -960 753 ) claybricks 0 0 0 1 1 +( -832 -960 752 ) ( -832 -960 753 ) ( -831 -960 752 ) claybricks 0 0 0 1 1 +( -832 -960 752 ) ( -831 -960 752 ) ( -832 -959 752 ) claybricks 0 0 0 1 1 +( -816 -944 880 ) ( -816 -943 880 ) ( -815 -944 880 ) claybricks 0 0 0 1 1 +( -816 -944 768 ) ( -815 -944 768 ) ( -816 -944 769 ) claybricks 0 0 0 1 1 +( -800 -944 768 ) ( -800 -944 769 ) ( -800 -943 768 ) claybricks 0 0 0 1 1 +} +// brush 56 +{ +( -800 -960 864 ) ( -800 -959 864 ) ( -800 -960 865 ) deviltrims 0 0 0 1 1 +( -800 -960 864 ) ( -800 -960 865 ) ( -799 -960 864 ) deviltrims 0 0 0 1 1 +( -800 -960 864 ) ( -799 -960 864 ) ( -800 -959 864 ) deviltrims 0 0 0 1 1 +( -784 -944 880 ) ( -784 -943 880 ) ( -783 -944 880 ) deviltrims 0 0 0 1 1 +( -784 -944 880 ) ( -783 -944 880 ) ( -784 -944 881 ) deviltrims 0 0 0 1 1 +( -752 -944 880 ) ( -752 -944 881 ) ( -752 -943 880 ) deviltrims 0 0 0 1 1 +} +// brush 57 +{ +( -768 -960 848 ) ( -768 -959 848 ) ( -768 -960 849 ) deviltrims 0 -16 0 1 1 +( -784 -960 848 ) ( -784 -960 849 ) ( -783 -960 848 ) deviltrims 16 -16 0 1 1 +( -784 -960 816 ) ( -783 -960 816 ) ( -784 -959 816 ) deviltrims 16 0 0 1 1 +( -768 -944 864 ) ( -768 -943 864 ) ( -767 -944 864 ) deviltrims 16 0 0 1 1 +( -768 -944 864 ) ( -767 -944 864 ) ( -768 -944 865 ) deviltrims 16 -16 0 1 1 +( -752 -944 864 ) ( -752 -944 865 ) ( -752 -943 864 ) deviltrims 0 -16 0 1 1 +} +// brush 58 +{ +( -800 -960 848 ) ( -800 -959 848 ) ( -800 -960 849 ) deviltrims 0 -16 0 1 1 +( -816 -960 848 ) ( -816 -960 849 ) ( -815 -960 848 ) deviltrims -16 -16 0 1 1 +( -816 -960 816 ) ( -815 -960 816 ) ( -816 -959 816 ) deviltrims -16 0 0 1 1 +( -800 -944 864 ) ( -800 -943 864 ) ( -799 -944 864 ) deviltrims -16 0 0 1 1 +( -800 -944 864 ) ( -799 -944 864 ) ( -800 -944 865 ) deviltrims -16 -16 0 1 1 +( -784 -944 864 ) ( -784 -944 865 ) ( -784 -943 864 ) deviltrims 0 -16 0 1 1 +} +// brush 59 +{ +( -784 -960 784 ) ( -784 -959 784 ) ( -784 -960 785 ) deviltrims 0 -16 0 1 1 +( -800 -960 784 ) ( -800 -960 785 ) ( -799 -960 784 ) deviltrims 0 -16 0 1 1 +( -800 -960 752 ) ( -799 -960 752 ) ( -800 -959 752 ) deviltrims 0 0 0 1 1 +( -784 -944 784 ) ( -784 -943 784 ) ( -783 -944 784 ) deviltrims 0 0 0 1 1 +( -784 -944 800 ) ( -783 -944 800 ) ( -784 -944 801 ) deviltrims 0 -16 0 1 1 +( -768 -944 800 ) ( -768 -944 801 ) ( -768 -943 800 ) deviltrims 0 -16 0 1 1 +} +// brush 60 +{ +( -768 -960 784 ) ( -768 -959 784 ) ( -768 -960 785 ) deviltrims 0 -16 0 1 1 +( -784 -960 784 ) ( -784 -960 785 ) ( -783 -960 784 ) deviltrims -16 -16 0 1 1 +( -784 -960 752 ) ( -783 -960 752 ) ( -784 -959 752 ) deviltrims -16 0 0 1 1 +( -768 -944 800 ) ( -768 -943 800 ) ( -767 -944 800 ) deviltrims -16 0 0 1 1 +( -768 -944 800 ) ( -767 -944 800 ) ( -768 -944 801 ) deviltrims -16 -16 0 1 1 +( -752 -944 800 ) ( -752 -944 801 ) ( -752 -943 800 ) deviltrims 0 -16 0 1 1 +} +// brush 61 +{ +( -800 -960 784 ) ( -800 -959 784 ) ( -800 -960 785 ) deviltrims 0 -16 0 1 1 +( -816 -960 784 ) ( -816 -960 785 ) ( -815 -960 784 ) deviltrims 16 -16 0 1 1 +( -816 -960 752 ) ( -815 -960 752 ) ( -816 -959 752 ) deviltrims 16 0 0 1 1 +( -800 -944 800 ) ( -800 -943 800 ) ( -799 -944 800 ) deviltrims 16 0 0 1 1 +( -800 -944 800 ) ( -799 -944 800 ) ( -800 -944 801 ) deviltrims 16 -16 0 1 1 +( -784 -944 800 ) ( -784 -944 801 ) ( -784 -943 800 ) deviltrims 0 -16 0 1 1 +} +// brush 62 +{ +( -896 -976 752 ) ( -896 -975 752 ) ( -896 -976 753 ) claybricks 16 16 0 1 1 +( -752 -1104 752 ) ( -752 -1104 753 ) ( -751 -1104 752 ) claybricks -16 16 0 1 1 +( -752 -976 752 ) ( -751 -976 752 ) ( -752 -975 752 ) claybricks -16 -16 0 1 1 +( -656 -896 768 ) ( -656 -895 768 ) ( -655 -896 768 ) claybricks -16 -16 0 1 1 +( -752 -960 752 ) ( -751 -960 752 ) ( -752 -960 753 ) claybricks -16 16 0 1 1 +( -768 -896 768 ) ( -768 -896 769 ) ( -768 -895 768 ) claybricks 16 16 0 1 1 +} +// brush 63 +{ +( -1088 -976 768 ) ( -1088 -975 768 ) ( -1088 -976 769 ) claybricks 16 16 0 1 1 +( -880 -1104 768 ) ( -880 -1104 769 ) ( -879 -1104 768 ) claybricks -16 16 0 1 1 +( -880 -976 768 ) ( -879 -976 768 ) ( -880 -975 768 ) claybricks -16 -16 0 1 1 +( -784 -896 784 ) ( -784 -895 784 ) ( -783 -896 784 ) claybricks -16 -16 0 1 1 +( -880 -960 768 ) ( -879 -960 768 ) ( -880 -960 769 ) claybricks -16 16 0 1 1 +( -896 -896 784 ) ( -896 -896 785 ) ( -896 -895 784 ) claybricks 16 16 0 1 1 +} +// brush 64 +{ +( -1088 -832 784 ) ( -1088 -831 784 ) ( -1088 -832 785 ) claybricks 16 16 0 1 1 +( -944 -960 784 ) ( -944 -960 785 ) ( -943 -960 784 ) claybricks -16 16 0 1 1 +( -944 -832 784 ) ( -943 -832 784 ) ( -944 -831 784 ) claybricks -16 -16 0 1 1 +( -848 -752 800 ) ( -848 -751 800 ) ( -847 -752 800 ) claybricks -16 -16 0 1 1 +( -944 -816 784 ) ( -943 -816 784 ) ( -944 -816 785 ) claybricks -16 16 0 1 1 +( -960 -752 800 ) ( -960 -752 801 ) ( -960 -751 800 ) claybricks 16 16 0 1 1 +} +// brush 65 +{ +( -1088 -688 800 ) ( -1088 -687 800 ) ( -1088 -688 801 ) claybricks 16 16 0 1 1 +( -944 -816 800 ) ( -944 -816 801 ) ( -943 -816 800 ) claybricks -16 16 0 1 1 +( -944 -688 800 ) ( -943 -688 800 ) ( -944 -687 800 ) claybricks -16 -16 0 1 1 +( -848 -608 816 ) ( -848 -607 816 ) ( -847 -608 816 ) claybricks -16 -16 0 1 1 +( -944 -672 800 ) ( -943 -672 800 ) ( -944 -672 801 ) claybricks -16 16 0 1 1 +( -960 -608 816 ) ( -960 -608 817 ) ( -960 -607 816 ) claybricks 16 16 0 1 1 +} +// brush 66 +{ +( -1088 -544 816 ) ( -1088 -543 816 ) ( -1088 -544 817 ) claybricks 16 16 0 1 1 +( -944 -672 816 ) ( -944 -672 817 ) ( -943 -672 816 ) claybricks -16 16 0 1 1 +( -944 -544 816 ) ( -943 -544 816 ) ( -944 -543 816 ) claybricks -16 -16 0 1 1 +( -848 -464 832 ) ( -848 -463 832 ) ( -847 -464 832 ) claybricks -16 -16 0 1 1 +( -944 -528 816 ) ( -943 -528 816 ) ( -944 -528 817 ) claybricks -16 16 0 1 1 +( -960 -464 832 ) ( -960 -464 833 ) ( -960 -463 832 ) claybricks 16 16 0 1 1 +} +// brush 67 +{ +( -1088 -400 832 ) ( -1088 -399 832 ) ( -1088 -400 833 ) claybricks 16 16 0 1 1 +( -944 -528 832 ) ( -944 -528 833 ) ( -943 -528 832 ) claybricks -16 16 0 1 1 +( -944 -400 832 ) ( -943 -400 832 ) ( -944 -399 832 ) claybricks -16 -16 0 1 1 +( -848 -320 848 ) ( -848 -319 848 ) ( -847 -320 848 ) claybricks -16 -16 0 1 1 +( -944 -352 832 ) ( -943 -352 832 ) ( -944 -352 833 ) claybricks -16 16 0 1 1 +( -960 -320 848 ) ( -960 -320 849 ) ( -960 -319 848 ) claybricks 16 16 0 1 1 +} +// brush 68 +{ +( -960 -368 848 ) ( -960 -367 848 ) ( -960 -368 849 ) claybricks 16 16 0 1 1 +( -816 -496 848 ) ( -816 -496 849 ) ( -815 -496 848 ) claybricks -16 16 0 1 1 +( -816 -368 848 ) ( -815 -368 848 ) ( -816 -367 848 ) claybricks -16 -16 0 1 1 +( -720 -288 864 ) ( -720 -287 864 ) ( -719 -288 864 ) claybricks -16 -16 0 1 1 +( -816 -352 848 ) ( -815 -352 848 ) ( -816 -352 849 ) claybricks -16 16 0 1 1 +( -832 -288 864 ) ( -832 -288 865 ) ( -832 -287 864 ) claybricks 16 16 0 1 1 +} +// brush 69 +{ +( -832 -368 864 ) ( -832 -367 864 ) ( -832 -368 865 ) claybricks 16 16 0 1 1 +( -688 -496 864 ) ( -688 -496 865 ) ( -687 -496 864 ) claybricks -16 16 0 1 1 +( -688 -368 864 ) ( -687 -368 864 ) ( -688 -367 864 ) claybricks -16 -16 0 1 1 +( -592 -288 880 ) ( -592 -287 880 ) ( -591 -288 880 ) claybricks -16 -16 0 1 1 +( -688 -352 864 ) ( -687 -352 864 ) ( -688 -352 865 ) claybricks -16 16 0 1 1 +( -512 -288 880 ) ( -512 -288 881 ) ( -512 -287 880 ) claybricks 16 16 0 1 1 +} +// brush 70 +{ +( -976 -512 928 ) ( -976 -511 928 ) ( -976 -512 929 ) claybricks 0 0 0 1 1 +( -960 -512 928 ) ( -960 -512 929 ) ( -959 -512 928 ) claybricks 0 0 0 1 1 +( -960 -512 928 ) ( -959 -512 928 ) ( -960 -511 928 ) claybricks 0 0 0 1 1 +( -576 -496 944 ) ( -576 -495 944 ) ( -575 -496 944 ) claybricks 0 0 0 1 1 +( -576 -496 944 ) ( -575 -496 944 ) ( -576 -496 945 ) claybricks 0 0 0 1 1 +( -576 -496 944 ) ( -576 -496 945 ) ( -576 -495 944 ) claybricks 0 0 0 1 1 +} +// brush 71 +{ +( -964 -512 880 ) ( -964 -511 880 ) ( -964 -512 881 ) deviltrims 0 0 0 1 1 +( -956 -512 880 ) ( -956 -512 881 ) ( -955 -512 880 ) deviltrims 0 0 0 1 1 +( -956 -512 880 ) ( -955 -512 880 ) ( -956 -511 880 ) deviltrims 0 0 0 1 1 +( -952 -500 928 ) ( -952 -499 928 ) ( -951 -500 928 ) deviltrims 0 0 0 1 1 +( -952 -508 884 ) ( -951 -508 884 ) ( -952 -508 885 ) deviltrims 0 0 0 1 1 +( -576 -500 884 ) ( -576 -500 885 ) ( -576 -499 884 ) deviltrims 0 0 0 1 1 +} +// brush 72 +{ +( -964 -888 884 ) ( -964 -887 884 ) ( -964 -888 885 ) deviltrims 0 0 0 1 1 +( -960 -960 880 ) ( -961 -960 880 ) ( -960 -960 881 ) deviltrims 0 0 0 1 1 +( -960 -892 880 ) ( -960 -891 880 ) ( -961 -892 880 ) deviltrims 0 0 0 1 1 +( -972 -888 928 ) ( -973 -888 928 ) ( -972 -887 928 ) deviltrims 0 0 0 1 1 +( -972 -512 884 ) ( -972 -512 885 ) ( -973 -512 884 ) deviltrims 0 0 0 1 1 +( -960 -892 880 ) ( -960 -892 881 ) ( -960 -891 880 ) deviltrims 0 0 0 1 1 +} +// brush 73 +{ +( -976 -512 944 ) ( -976 -511 944 ) ( -976 -512 945 ) claybricks 0 0 0 1 1 +( -960 -960 928 ) ( -961 -960 928 ) ( -960 -960 929 ) claybricks 0 0 0 1 1 +( -960 -896 928 ) ( -960 -895 928 ) ( -961 -896 928 ) claybricks 0 0 0 1 1 +( -976 -512 944 ) ( -977 -512 944 ) ( -976 -511 944 ) claybricks 0 0 0 1 1 +( -976 -512 944 ) ( -976 -512 945 ) ( -977 -512 944 ) claybricks 0 0 0 1 1 +( -960 -896 928 ) ( -960 -896 929 ) ( -960 -895 928 ) claybricks 0 0 0 1 1 +} +// brush 74 +{ +( -960 -972 884 ) ( -960 -972 885 ) ( -960 -973 884 ) deviltrims 0 0 0 1 1 +( -584 -964 884 ) ( -585 -964 884 ) ( -584 -964 885 ) deviltrims 0 0 0 1 1 +( -580 -960 880 ) ( -581 -960 880 ) ( -580 -961 880 ) deviltrims 0 0 0 1 1 +( -584 -972 928 ) ( -584 -973 928 ) ( -585 -972 928 ) deviltrims 0 0 0 1 1 +( -580 -960 880 ) ( -580 -960 881 ) ( -581 -960 880 ) deviltrims 0 0 0 1 1 +( -512 -960 880 ) ( -512 -961 880 ) ( -512 -960 881 ) deviltrims 0 0 0 1 1 +} +// brush 75 +{ +( -960 -976 944 ) ( -960 -976 945 ) ( -960 -977 944 ) claybricks 0 0 0 1 1 +( -960 -976 944 ) ( -961 -976 944 ) ( -960 -976 945 ) claybricks 0 0 0 1 1 +( -576 -960 928 ) ( -577 -960 928 ) ( -576 -961 928 ) claybricks 0 0 0 1 1 +( -960 -976 944 ) ( -960 -977 944 ) ( -961 -976 944 ) claybricks 0 0 0 1 1 +( -576 -960 928 ) ( -576 -960 929 ) ( -577 -960 928 ) claybricks 0 0 0 1 1 +( -512 -960 928 ) ( -512 -961 928 ) ( -512 -960 929 ) claybricks 0 0 0 1 1 +} +// brush 76 +{ +( -1088 -1248 736 ) ( -1088 -1247 736 ) ( -1088 -1248 737 ) pstone1 0 0 0 1 1 +( -640 -1120 736 ) ( -640 -1120 737 ) ( -639 -1120 736 ) pstone1 0 0 0 1 1 +( -640 -1248 736 ) ( -639 -1248 736 ) ( -640 -1247 736 ) pstone1 0 0 0 1 1 +( -592 -1104 960 ) ( -592 -1103 960 ) ( -591 -1104 960 ) pstone1 0 0 0 1 1 +( -592 -1104 752 ) ( -591 -1104 752 ) ( -592 -1104 753 ) pstone1 0 0 0 1 1 +( -512 -1104 752 ) ( -512 -1104 753 ) ( -512 -1103 752 ) pstone1 0 0 0 1 1 +} +// brush 77 +{ +( -1104 -1248 736 ) ( -1104 -1247 736 ) ( -1104 -1248 737 ) claybricks 0 0 0 1 1 +( -640 -1120 736 ) ( -640 -1120 737 ) ( -639 -1120 736 ) claybricks 0 0 0 1 1 +( -640 -1248 736 ) ( -639 -1248 736 ) ( -640 -1247 736 ) claybricks 0 0 0 1 1 +( -592 -1104 1232 ) ( -592 -1103 1232 ) ( -591 -1104 1232 ) claybricks 0 0 0 1 1 +( -592 -352 752 ) ( -591 -352 752 ) ( -592 -352 753 ) claybricks 0 0 0 1 1 +( -1088 -1248 736 ) ( -1088 -1248 737 ) ( -1088 -1247 736 ) claybricks 0 0 0 1 1 +} +// brush 78 +{ +( -1104 -1248 736 ) ( -1104 -1247 736 ) ( -1104 -1248 737 ) claybricks 0 0 0 1 1 +( -592 -352 752 ) ( -592 -352 753 ) ( -591 -352 752 ) claybricks 0 0 0 1 1 +( -640 -1248 736 ) ( -639 -1248 736 ) ( -640 -1247 736 ) claybricks 0 0 0 1 1 +( -592 -1104 960 ) ( -592 -1103 960 ) ( -591 -1104 960 ) claybricks 0 0 0 1 1 +( -592 -336 752 ) ( -591 -336 752 ) ( -592 -336 753 ) claybricks 0 0 0 1 1 +( -576 -1248 736 ) ( -576 -1248 737 ) ( -576 -1247 736 ) claybricks 0 0 0 1 1 +} +// brush 79 +{ +( -592 -496 896 ) ( -592 -495 896 ) ( -592 -496 897 ) claybricks 0 0 0 1 1 +( -592 -704 896 ) ( -592 -704 897 ) ( -591 -704 896 ) claybricks 0 0 0 1 1 +( -592 -496 896 ) ( -591 -496 896 ) ( -592 -495 896 ) claybricks 0 0 0 1 1 +( -576 -352 1248 ) ( -576 -351 1248 ) ( -575 -352 1248 ) claybricks 0 0 0 1 1 +( -576 -352 912 ) ( -575 -352 912 ) ( -576 -352 913 ) claybricks 0 0 0 1 1 +( -576 -352 912 ) ( -576 -352 913 ) ( -576 -351 912 ) claybricks 0 0 0 1 1 +} +// brush 80 +{ +( -944 -496 944 ) ( -944 -704 1264 ) ( -944 -720 1264 ) claybricks 0 0 0 1 1 +( -576 -1023.6906854130038 1066.6010544815463 ) ( -576 -815.69068541300385 746.60105448154627 ) ( -960 -815.69068541300385 746.60105448154627 ) claybricks 0 0 0 1 1 +( -576 -512 944 ) ( -576 -496 944 ) ( -960 -496 944 ) claybricks 0 0 0 1 1 +( -960 -704 1248 ) ( -576 -704 1248 ) ( -576 -720 1248 ) claybricks 0 0 0 1 1 +( -960 -496 944 ) ( -576 -496 944 ) ( -576 -704 1264 ) claybricks 0 0 0 1 1 +( -592 -704 1264 ) ( -592 -496 944 ) ( -592 -512 944 ) claybricks 0 0 0 1 1 +} +// brush 81 +{ +( -1104 -1248 736 ) ( -1104 -1247 736 ) ( -1104 -1248 737 ) claybricks 0 0 0 1 1 +( -592 -352 752 ) ( -592 -352 753 ) ( -591 -352 752 ) claybricks 0 0 0 1 1 +( -640 -1248 960 ) ( -639 -1248 960 ) ( -640 -1247 960 ) claybricks 0 0 0 1 1 +( -592 -1104 1248 ) ( -592 -1103 1248 ) ( -591 -1104 1248 ) claybricks 0 0 0 1 1 +( -592 -80 752 ) ( -591 -80 752 ) ( -592 -80 753 ) claybricks 0 0 0 1 1 +( -1088 -1248 736 ) ( -1088 -1248 737 ) ( -1088 -1247 736 ) claybricks 0 0 0 1 1 +} +// brush 82 +{ +( -592 -496 896 ) ( -592 -495 896 ) ( -592 -496 897 ) claybricks 0 0 0 1 1 +( -576 -352 912 ) ( -576 -352 913 ) ( -575 -352 912 ) claybricks 0 0 0 1 1 +( -592 -496 960 ) ( -591 -496 960 ) ( -592 -495 960 ) claybricks 0 0 0 1 1 +( -576 -352 1248 ) ( -576 -351 1248 ) ( -575 -352 1248 ) claybricks 0 0 0 1 1 +( -576 -144 912 ) ( -575 -144 912 ) ( -576 -144 913 ) claybricks 0 0 0 1 1 +( -576 -352 912 ) ( -576 -352 913 ) ( -576 -351 912 ) claybricks 0 0 0 1 1 +} +// brush 83 +{ +( -592 -416 880 ) ( -592 -415 880 ) ( -592 -416 881 ) claybricks 0 0 0 1 1 +( -592 -512 880 ) ( -592 -512 881 ) ( -591 -512 880 ) claybricks 0 0 0 1 1 +( -592 -416 880 ) ( -591 -416 880 ) ( -592 -415 880 ) claybricks 0 0 0 1 1 +( -560 -352 896 ) ( -560 -351 896 ) ( -559 -352 896 ) claybricks 0 0 0 1 1 +( -560 -352 896 ) ( -559 -352 896 ) ( -560 -352 897 ) claybricks 0 0 0 1 1 +( -576 -352 896 ) ( -576 -352 897 ) ( -576 -351 896 ) claybricks 0 0 0 1 1 +} +// brush 84 +{ +( -596 -436 956 ) ( -596 -435 956 ) ( -596 -436 957 ) claybricks 0 0 0 1 1 +( -644 -436 956 ) ( -644 -436 957 ) ( -643 -436 956 ) claybricks 0 0 0 1 1 +( -644 -436 880 ) ( -643 -436 880 ) ( -644 -435 880 ) claybricks 0 0 0 1 1 +( -592 -400 960 ) ( -592 -399 960 ) ( -591 -400 960 ) claybricks 0 0 0 1 1 +( -592 -400 960 ) ( -591 -400 960 ) ( -592 -400 961 ) claybricks 0 0 0 1 1 +( -592 -400 960 ) ( -592 -400 961 ) ( -592 -399 960 ) claybricks 0 0 0 1 1 +} +// brush 85 +{ +( -524 -1104 752 ) ( -524 -1103 752 ) ( -524 -1104 753 ) claybricks 0 0 0 1 1 +( -524 -1104 752 ) ( -524 -1104 753 ) ( -523 -1104 752 ) claybricks 0 0 0 1 1 +( -524 -1104 752 ) ( -523 -1104 752 ) ( -524 -1103 752 ) claybricks 0 0 0 1 1 +( -516 -980 832 ) ( -516 -979 832 ) ( -515 -980 832 ) claybricks 0 0 0 1 1 +( -516 -976 756 ) ( -515 -976 756 ) ( -516 -976 757 ) claybricks 0 0 0 1 1 +( -516 -980 756 ) ( -516 -980 757 ) ( -516 -979 756 ) claybricks 0 0 0 1 1 +} +// brush 86 +{ +( -576 -576 624 ) ( -576 -575 624 ) ( -576 -576 625 ) claybricks 0 0 0 1 1 +( -640 -640 560 ) ( -640 -640 561 ) ( -639 -640 560 ) claybricks 0 0 0 1 1 +( -640 -704 560 ) ( -639 -704 560 ) ( -640 -703 560 ) claybricks 0 0 0 1 1 +( -576 -576 748 ) ( -576 -575 748 ) ( -575 -576 748 ) claybricks 0 0 0 1 1 +( -576 -576 624 ) ( -575 -576 624 ) ( -576 -576 625 ) claybricks 0 0 0 1 1 +( -512 -576 624 ) ( -512 -576 625 ) ( -512 -575 624 ) claybricks 0 0 0 1 1 +} +// brush 87 +{ +( -832 -512 672 ) ( -832 -511 672 ) ( -832 -512 673 ) claybricks 0 16 0 1 1 +( -832 -576 672 ) ( -832 -576 673 ) ( -831 -576 672 ) claybricks 0 16 0 1 1 +( -832 -512 656 ) ( -831 -512 656 ) ( -832 -511 656 ) claybricks 0 0 0 1 1 +( -768 -448 752 ) ( -768 -447 752 ) ( -767 -448 752 ) claybricks 0 0 0 1 1 +( -768 -512 736 ) ( -767 -512 736 ) ( -768 -512 737 ) claybricks 0 16 0 1 1 +( -768 -512 672 ) ( -768 -512 673 ) ( -768 -511 672 ) claybricks 0 16 0 1 1 +} +// brush 88 +{ +( -832 -896 560 ) ( -832 -895 560 ) ( -832 -896 561 ) claybricks 0 0 0 1 1 +( -768 -832 624 ) ( -768 -832 625 ) ( -767 -832 624 ) claybricks 0 0 0 1 1 +( -832 -896 624 ) ( -831 -896 624 ) ( -832 -895 624 ) claybricks 0 0 0 1 1 +( -768 -832 880 ) ( -768 -831 880 ) ( -767 -832 880 ) claybricks 0 0 0 1 1 +( -768 -640 624 ) ( -767 -640 624 ) ( -768 -640 625 ) claybricks 0 0 0 1 1 +( -816 -832 624 ) ( -816 -832 625 ) ( -816 -831 624 ) claybricks 0 0 0 1 1 +} +// brush 89 +{ +( -832 -896 560 ) ( -832 -895 560 ) ( -832 -896 561 ) claybricks 0 0 0 1 1 +( -768 -640 624 ) ( -768 -640 625 ) ( -767 -640 624 ) claybricks 0 0 0 1 1 +( -832 -896 736 ) ( -831 -896 736 ) ( -832 -895 736 ) claybricks 0 0 0 1 1 +( -768 -832 880 ) ( -768 -831 880 ) ( -767 -832 880 ) claybricks 0 0 0 1 1 +( -768 -576 624 ) ( -767 -576 624 ) ( -768 -576 625 ) claybricks 0 0 0 1 1 +( -816 -832 624 ) ( -816 -832 625 ) ( -816 -831 624 ) claybricks 0 0 0 1 1 +} +// brush 90 +{ +( -816 -704 560 ) ( -816 -703 560 ) ( -816 -704 561 ) claybricks 0 0 0 1 1 +( -640 -832 560 ) ( -640 -832 561 ) ( -639 -832 560 ) claybricks 0 0 0 1 1 +( -576 -576 736 ) ( -575 -576 736 ) ( -576 -575 736 ) claybricks 0 0 0 1 1 +( -576 -576 768 ) ( -576 -575 768 ) ( -575 -576 768 ) claybricks 0 0 0 1 1 +( -576 -576 624 ) ( -575 -576 624 ) ( -576 -576 625 ) claybricks 0 0 0 1 1 +( -768 -576 624 ) ( -768 -576 625 ) ( -768 -575 624 ) claybricks 0 0 0 1 1 +} +// brush 91 +{ +( -688 -960 848 ) ( -688 -959 848 ) ( -688 -960 849 ) deviltrims 0 -16 0 1 1 +( -704 -960 848 ) ( -704 -960 849 ) ( -703 -960 848 ) deviltrims 16 -16 0 1 1 +( -704 -960 816 ) ( -703 -960 816 ) ( -704 -959 816 ) deviltrims 16 0 0 1 1 +( -688 -944 864 ) ( -688 -943 864 ) ( -687 -944 864 ) deviltrims 16 0 0 1 1 +( -688 -944 864 ) ( -687 -944 864 ) ( -688 -944 865 ) deviltrims 16 -16 0 1 1 +( -672 -944 864 ) ( -672 -944 865 ) ( -672 -943 864 ) deviltrims 0 -16 0 1 1 +} +// brush 92 +{ +( -720 -960 864 ) ( -720 -959 864 ) ( -720 -960 865 ) deviltrims 0 0 0 1 1 +( -720 -960 864 ) ( -720 -960 865 ) ( -719 -960 864 ) deviltrims 0 0 0 1 1 +( -720 -960 864 ) ( -719 -960 864 ) ( -720 -959 864 ) deviltrims 0 0 0 1 1 +( -704 -944 880 ) ( -704 -943 880 ) ( -703 -944 880 ) deviltrims 0 0 0 1 1 +( -704 -944 880 ) ( -703 -944 880 ) ( -704 -944 881 ) deviltrims 0 0 0 1 1 +( -672 -944 880 ) ( -672 -944 881 ) ( -672 -943 880 ) deviltrims 0 0 0 1 1 +} +// brush 93 +{ +( -752 -960 752 ) ( -752 -959 752 ) ( -752 -960 753 ) claybricks 0 0 0 1 1 +( -752 -960 752 ) ( -752 -960 753 ) ( -751 -960 752 ) claybricks 0 0 0 1 1 +( -752 -960 752 ) ( -751 -960 752 ) ( -752 -959 752 ) claybricks 0 0 0 1 1 +( -736 -944 880 ) ( -736 -943 880 ) ( -735 -944 880 ) claybricks 0 0 0 1 1 +( -736 -944 768 ) ( -735 -944 768 ) ( -736 -944 769 ) claybricks 0 0 0 1 1 +( -720 -944 768 ) ( -720 -944 769 ) ( -720 -943 768 ) claybricks 0 0 0 1 1 +} +// brush 94 +{ +( -720 -960 848 ) ( -720 -959 848 ) ( -720 -960 849 ) deviltrims 0 -16 0 1 1 +( -736 -960 848 ) ( -736 -960 849 ) ( -735 -960 848 ) deviltrims -16 -16 0 1 1 +( -736 -960 816 ) ( -735 -960 816 ) ( -736 -959 816 ) deviltrims -16 0 0 1 1 +( -720 -944 864 ) ( -720 -943 864 ) ( -719 -944 864 ) deviltrims -16 0 0 1 1 +( -720 -944 864 ) ( -719 -944 864 ) ( -720 -944 865 ) deviltrims -16 -16 0 1 1 +( -704 -944 864 ) ( -704 -944 865 ) ( -704 -943 864 ) deviltrims 0 -16 0 1 1 +} +// brush 95 +{ +( -720 -960 784 ) ( -720 -959 784 ) ( -720 -960 785 ) deviltrims 0 -16 0 1 1 +( -736 -960 784 ) ( -736 -960 785 ) ( -735 -960 784 ) deviltrims 16 -16 0 1 1 +( -736 -960 752 ) ( -735 -960 752 ) ( -736 -959 752 ) deviltrims 16 0 0 1 1 +( -720 -944 800 ) ( -720 -943 800 ) ( -719 -944 800 ) deviltrims 16 0 0 1 1 +( -720 -944 800 ) ( -719 -944 800 ) ( -720 -944 801 ) deviltrims 16 -16 0 1 1 +( -704 -944 800 ) ( -704 -944 801 ) ( -704 -943 800 ) deviltrims 0 -16 0 1 1 +} +// brush 96 +{ +( -704 -960 784 ) ( -704 -959 784 ) ( -704 -960 785 ) deviltrims 0 -16 0 1 1 +( -720 -960 784 ) ( -720 -960 785 ) ( -719 -960 784 ) deviltrims 0 -16 0 1 1 +( -720 -960 752 ) ( -719 -960 752 ) ( -720 -959 752 ) deviltrims 0 0 0 1 1 +( -704 -944 784 ) ( -704 -943 784 ) ( -703 -944 784 ) deviltrims 0 0 0 1 1 +( -704 -944 800 ) ( -703 -944 800 ) ( -704 -944 801 ) deviltrims 0 -16 0 1 1 +( -688 -944 800 ) ( -688 -944 801 ) ( -688 -943 800 ) deviltrims 0 -16 0 1 1 +} +// brush 97 +{ +( -688 -960 784 ) ( -688 -959 784 ) ( -688 -960 785 ) deviltrims 0 -16 0 1 1 +( -704 -960 784 ) ( -704 -960 785 ) ( -703 -960 784 ) deviltrims -16 -16 0 1 1 +( -704 -960 752 ) ( -703 -960 752 ) ( -704 -959 752 ) deviltrims -16 0 0 1 1 +( -688 -944 800 ) ( -688 -943 800 ) ( -687 -944 800 ) deviltrims -16 0 0 1 1 +( -688 -944 800 ) ( -687 -944 800 ) ( -688 -944 801 ) deviltrims -16 -16 0 1 1 +( -672 -944 800 ) ( -672 -944 801 ) ( -672 -943 800 ) deviltrims 0 -16 0 1 1 +} +// brush 98 +{ +( -608 -960 848 ) ( -608 -959 848 ) ( -608 -960 849 ) deviltrims 0 -16 0 1 1 +( -624 -960 848 ) ( -624 -960 849 ) ( -623 -960 848 ) deviltrims 16 -16 0 1 1 +( -624 -960 816 ) ( -623 -960 816 ) ( -624 -959 816 ) deviltrims 16 0 0 1 1 +( -608 -944 864 ) ( -608 -943 864 ) ( -607 -944 864 ) deviltrims 16 0 0 1 1 +( -608 -944 864 ) ( -607 -944 864 ) ( -608 -944 865 ) deviltrims 16 -16 0 1 1 +( -592 -944 864 ) ( -592 -944 865 ) ( -592 -943 864 ) deviltrims 0 -16 0 1 1 +} +// brush 99 +{ +( -640 -960 864 ) ( -640 -959 864 ) ( -640 -960 865 ) deviltrims 0 0 0 1 1 +( -640 -960 864 ) ( -640 -960 865 ) ( -639 -960 864 ) deviltrims 0 0 0 1 1 +( -640 -960 864 ) ( -639 -960 864 ) ( -640 -959 864 ) deviltrims 0 0 0 1 1 +( -624 -944 880 ) ( -624 -943 880 ) ( -623 -944 880 ) deviltrims 0 0 0 1 1 +( -624 -944 880 ) ( -623 -944 880 ) ( -624 -944 881 ) deviltrims 0 0 0 1 1 +( -592 -944 880 ) ( -592 -944 881 ) ( -592 -943 880 ) deviltrims 0 0 0 1 1 +} +// brush 100 +{ +( -672 -960 752 ) ( -672 -959 752 ) ( -672 -960 753 ) claybricks 0 0 0 1 1 +( -672 -960 752 ) ( -672 -960 753 ) ( -671 -960 752 ) claybricks 0 0 0 1 1 +( -672 -960 752 ) ( -671 -960 752 ) ( -672 -959 752 ) claybricks 0 0 0 1 1 +( -656 -944 880 ) ( -656 -943 880 ) ( -655 -944 880 ) claybricks 0 0 0 1 1 +( -656 -944 768 ) ( -655 -944 768 ) ( -656 -944 769 ) claybricks 0 0 0 1 1 +( -640 -944 768 ) ( -640 -944 769 ) ( -640 -943 768 ) claybricks 0 0 0 1 1 +} +// brush 101 +{ +( -640 -960 848 ) ( -640 -959 848 ) ( -640 -960 849 ) deviltrims 0 -16 0 1 1 +( -656 -960 848 ) ( -656 -960 849 ) ( -655 -960 848 ) deviltrims -16 -16 0 1 1 +( -656 -960 816 ) ( -655 -960 816 ) ( -656 -959 816 ) deviltrims -16 0 0 1 1 +( -640 -944 864 ) ( -640 -943 864 ) ( -639 -944 864 ) deviltrims -16 0 0 1 1 +( -640 -944 864 ) ( -639 -944 864 ) ( -640 -944 865 ) deviltrims -16 -16 0 1 1 +( -624 -944 864 ) ( -624 -944 865 ) ( -624 -943 864 ) deviltrims 0 -16 0 1 1 +} +// brush 102 +{ +( -640 -960 784 ) ( -640 -959 784 ) ( -640 -960 785 ) deviltrims 0 -16 0 1 1 +( -656 -960 784 ) ( -656 -960 785 ) ( -655 -960 784 ) deviltrims 16 -16 0 1 1 +( -656 -960 752 ) ( -655 -960 752 ) ( -656 -959 752 ) deviltrims 16 0 0 1 1 +( -640 -944 800 ) ( -640 -943 800 ) ( -639 -944 800 ) deviltrims 16 0 0 1 1 +( -640 -944 800 ) ( -639 -944 800 ) ( -640 -944 801 ) deviltrims 16 -16 0 1 1 +( -624 -944 800 ) ( -624 -944 801 ) ( -624 -943 800 ) deviltrims 0 -16 0 1 1 +} +// brush 103 +{ +( -624 -960 784 ) ( -624 -959 784 ) ( -624 -960 785 ) deviltrims 0 -16 0 1 1 +( -640 -960 784 ) ( -640 -960 785 ) ( -639 -960 784 ) deviltrims 0 -16 0 1 1 +( -640 -960 752 ) ( -639 -960 752 ) ( -640 -959 752 ) deviltrims 0 0 0 1 1 +( -624 -944 784 ) ( -624 -943 784 ) ( -623 -944 784 ) deviltrims 0 0 0 1 1 +( -624 -944 800 ) ( -623 -944 800 ) ( -624 -944 801 ) deviltrims 0 -16 0 1 1 +( -608 -944 800 ) ( -608 -944 801 ) ( -608 -943 800 ) deviltrims 0 -16 0 1 1 +} +// brush 104 +{ +( -608 -960 784 ) ( -608 -959 784 ) ( -608 -960 785 ) deviltrims 0 -16 0 1 1 +( -624 -960 784 ) ( -624 -960 785 ) ( -623 -960 784 ) deviltrims -16 -16 0 1 1 +( -624 -960 752 ) ( -623 -960 752 ) ( -624 -959 752 ) deviltrims -16 0 0 1 1 +( -608 -944 800 ) ( -608 -943 800 ) ( -607 -944 800 ) deviltrims -16 0 0 1 1 +( -608 -944 800 ) ( -607 -944 800 ) ( -608 -944 801 ) deviltrims -16 -16 0 1 1 +( -592 -944 800 ) ( -592 -944 801 ) ( -592 -943 800 ) deviltrims 0 -16 0 1 1 +} +// brush 105 +{ +( -592 -960 848 ) ( -592 -959 848 ) ( -592 -960 849 ) claybricks 0 -16 0 1 1 +( -608 -960 848 ) ( -608 -960 849 ) ( -607 -960 848 ) claybricks 16 -16 0 1 1 +( -608 -960 752 ) ( -607 -960 752 ) ( -608 -959 752 ) claybricks 16 0 0 1 1 +( -592 -944 880 ) ( -592 -943 880 ) ( -591 -944 880 ) claybricks 16 0 0 1 1 +( -592 -944 864 ) ( -591 -944 864 ) ( -592 -944 865 ) claybricks 16 -16 0 1 1 +( -576 -944 864 ) ( -576 -944 865 ) ( -576 -943 864 ) claybricks 0 -16 0 1 1 +} +// brush 106 +{ +( -784 -848 736 ) ( -784 -847 736 ) ( -784 -848 737 ) claybricks 0 0 0 1 1 +( -784 -848 736 ) ( -784 -848 737 ) ( -783 -848 736 ) claybricks 0 0 0 1 1 +( -784 -848 736 ) ( -783 -848 736 ) ( -784 -847 736 ) claybricks 0 0 0 1 1 +( -768 -832 784 ) ( -768 -831 784 ) ( -767 -832 784 ) claybricks 0 0 0 1 1 +( -768 -832 800 ) ( -767 -832 800 ) ( -768 -832 801 ) claybricks 0 0 0 1 1 +( -768 -832 800 ) ( -768 -832 801 ) ( -768 -831 800 ) claybricks 0 0 0 1 1 +} +// brush 107 +{ +( -784 -896 736 ) ( -784 -895 736 ) ( -784 -896 737 ) claybricks 0 0 0 1 1 +( -784 -896 736 ) ( -784 -896 737 ) ( -783 -896 736 ) claybricks 0 0 0 1 1 +( -784 -896 736 ) ( -783 -896 736 ) ( -784 -895 736 ) claybricks 0 0 0 1 1 +( -768 -880 784 ) ( -768 -879 784 ) ( -767 -880 784 ) claybricks 0 0 0 1 1 +( -768 -880 800 ) ( -767 -880 800 ) ( -768 -880 801 ) claybricks 0 0 0 1 1 +( -768 -880 800 ) ( -768 -880 801 ) ( -768 -879 800 ) claybricks 0 0 0 1 1 +} +// brush 108 +{ +( -832 -896 736 ) ( -832 -895 736 ) ( -832 -896 737 ) claybricks 0 0 0 1 1 +( -832 -896 736 ) ( -832 -896 737 ) ( -831 -896 736 ) claybricks 0 0 0 1 1 +( -832 -896 736 ) ( -831 -896 736 ) ( -832 -895 736 ) claybricks 0 0 0 1 1 +( -816 -880 784 ) ( -816 -879 784 ) ( -815 -880 784 ) claybricks 0 0 0 1 1 +( -816 -880 800 ) ( -815 -880 800 ) ( -816 -880 801 ) claybricks 0 0 0 1 1 +( -816 -880 800 ) ( -816 -880 801 ) ( -816 -879 800 ) claybricks 0 0 0 1 1 +} +// brush 109 +{ +( -880 -896 736 ) ( -880 -895 736 ) ( -880 -896 737 ) claybricks 0 0 0 1 1 +( -880 -896 736 ) ( -880 -896 737 ) ( -879 -896 736 ) claybricks 0 0 0 1 1 +( -880 -896 736 ) ( -879 -896 736 ) ( -880 -895 736 ) claybricks 0 0 0 1 1 +( -864 -880 784 ) ( -864 -879 784 ) ( -863 -880 784 ) claybricks 0 0 0 1 1 +( -864 -880 800 ) ( -863 -880 800 ) ( -864 -880 801 ) claybricks 0 0 0 1 1 +( -864 -880 800 ) ( -864 -880 801 ) ( -864 -879 800 ) claybricks 0 0 0 1 1 +} +// brush 110 +{ +( -784 -896 784 ) ( -784 -895 784 ) ( -784 -896 785 ) claybricks 0 0 0 1 1 +( -784 -896 784 ) ( -784 -896 785 ) ( -783 -896 784 ) claybricks 0 0 0 1 1 +( -784 -896 784 ) ( -783 -896 784 ) ( -784 -895 784 ) claybricks 0 0 0 1 1 +( -768 -832 800 ) ( -768 -831 800 ) ( -767 -832 800 ) claybricks 0 0 0 1 1 +( -768 -832 800 ) ( -767 -832 800 ) ( -768 -832 801 ) claybricks 0 0 0 1 1 +( -768 -832 800 ) ( -768 -832 801 ) ( -768 -831 800 ) claybricks 0 0 0 1 1 +} +// brush 111 +{ +( -896 -896 784 ) ( -896 -895 784 ) ( -896 -896 785 ) claybricks 0 0 0 1 1 +( -880 -896 784 ) ( -880 -896 785 ) ( -879 -896 784 ) claybricks 0 0 0 1 1 +( -880 -896 784 ) ( -879 -896 784 ) ( -880 -895 784 ) claybricks 0 0 0 1 1 +( -784 -880 800 ) ( -784 -879 800 ) ( -783 -880 800 ) claybricks 0 0 0 1 1 +( -784 -880 800 ) ( -783 -880 800 ) ( -784 -880 801 ) claybricks 0 0 0 1 1 +( -784 -880 800 ) ( -784 -880 801 ) ( -784 -879 800 ) claybricks 0 0 0 1 1 +} +// brush 112 +{ +( -784 -832 768 ) ( -784 -831 768 ) ( -784 -832 769 ) claybricks 0 0 0 1 1 +( -816 -832 768 ) ( -816 -832 769 ) ( -815 -832 768 ) claybricks 0 0 0 1 1 +( -816 -832 768 ) ( -815 -832 768 ) ( -816 -831 768 ) claybricks 0 0 0 1 1 +( -768 -816 784 ) ( -768 -815 784 ) ( -767 -816 784 ) claybricks 0 0 0 1 1 +( -768 -816 784 ) ( -767 -816 784 ) ( -768 -816 785 ) claybricks 0 0 0 1 1 +( -768 -816 784 ) ( -768 -816 785 ) ( -768 -815 784 ) claybricks 0 0 0 1 1 +} +// brush 113 +{ +( -816 -832 768 ) ( -816 -831 768 ) ( -816 -832 769 ) claybricks 0 0 0 1 1 +( -848 -832 768 ) ( -848 -832 769 ) ( -847 -832 768 ) claybricks 0 0 0 1 1 +( -848 -832 768 ) ( -847 -832 768 ) ( -848 -831 768 ) claybricks 0 0 0 1 1 +( -800 -816 784 ) ( -800 -815 784 ) ( -799 -816 784 ) claybricks 0 0 0 1 1 +( -800 -816 784 ) ( -799 -816 784 ) ( -800 -816 785 ) claybricks 0 0 0 1 1 +( -800 -816 784 ) ( -800 -816 785 ) ( -800 -815 784 ) claybricks 0 0 0 1 1 +} +// brush 114 +{ +( -816 -832 784 ) ( -816 -831 784 ) ( -816 -832 785 ) claybricks 0 0 0 1 1 +( -848 -832 784 ) ( -848 -832 785 ) ( -847 -832 784 ) claybricks 0 0 0 1 1 +( -848 -832 784 ) ( -847 -832 784 ) ( -848 -831 784 ) claybricks 0 0 0 1 1 +( -800 -816 800 ) ( -800 -815 800 ) ( -799 -816 800 ) claybricks 0 0 0 1 1 +( -800 -816 800 ) ( -799 -816 800 ) ( -800 -816 801 ) claybricks 0 0 0 1 1 +( -768 -816 800 ) ( -768 -816 801 ) ( -768 -815 800 ) claybricks 0 0 0 1 1 +} +// brush 115 +{ +( -496 -608 880 ) ( -496 -607 880 ) ( -496 -608 881 ) pstone1 0 0 0 1 1 +( -552 -584 880 ) ( -552 -584 881 ) ( -551 -584 880 ) pstone1 0 0 0 1 1 +( -552 -608 912 ) ( -551 -608 912 ) ( -552 -607 912 ) pstone1 0 0 0 1 1 +( -488 -568 944 ) ( -488 -567 944 ) ( -487 -568 944 ) pstone1 0 0 0 1 1 +( -488 -472 888 ) ( -487 -472 888 ) ( -488 -472 889 ) pstone1 0 0 0 1 1 +( -408 -568 888 ) ( -408 -568 889 ) ( -408 -567 888 ) pstone1 0 0 0 1 1 +} +// brush 116 +{ +( -1104 -1248 736 ) ( -1104 -1247 736 ) ( -1104 -1248 737 ) claybricks 0 0 0 1 1 +( -640 -1120 736 ) ( -640 -1120 737 ) ( -639 -1120 736 ) claybricks 0 0 0 1 1 +( -640 -1248 736 ) ( -639 -1248 736 ) ( -640 -1247 736 ) claybricks 0 0 0 1 1 +( -592 -1104 1248 ) ( -592 -1103 1248 ) ( -591 -1104 1248 ) claybricks 0 0 0 1 1 +( -592 -352 752 ) ( -591 -352 752 ) ( -592 -352 753 ) claybricks 0 0 0 1 1 +( -1088 -1248 736 ) ( -1088 -1248 737 ) ( -1088 -1247 736 ) claybricks 0 0 0 1 1 +} +// brush 117 +{ +( -1088 -144 1280 ) ( -1088 -352 960 ) ( -1088 -336 960 ) claybricks 0 0 0 1 1 +( -592 -352 960 ) ( -976 -352 960 ) ( -976 -144 1280 ) claybricks 0 0 0 1 1 +( -976 -336 960 ) ( -976 -352 960 ) ( -592 -352 960 ) claybricks 0 0 0 1 1 +( -592 -144 1248 ) ( -976 -144 1248 ) ( -976 -128 1248 ) claybricks 0 0 0 1 1 +( -976 -128 1280 ) ( -976 -336 960 ) ( -592 -336 960 ) claybricks 0 0 0 1 1 +( -592 -352 960 ) ( -592 -144 1280 ) ( -592 -128 1280 ) claybricks 0 0 0 1 1 +} +} +// entity 1 +{ +"classname" "info_player_start" +"origin" "-288 -672 920" +} +// entity 2 +{ +"classname" "monster_scrambler" +"origin" "-784 -672 664" +} +// entity 3 +{ +"classname" "monster_scrambler" +"origin" "-304 -656 664" +} +// entity 4 +{ +"classname" "monster_scrambler" +"origin" "-1024 -448 888" +} +// entity 5 +{ +"classname" "info_player_start" +"origin" "-304 -560 920" +} +// entity 6 +{ +"classname" "info_player_start" +"origin" "-304 -848 920" +} +// entity 7 +{ +"classname" "info_player_start" +"origin" "-400 -864 912" +} +// entity 8 +{ +"classname" "trigger_mapend" +"map" "box1" +// brush 0 +{ +( -720 -512 880 ) ( -720 -511 880 ) ( -720 -512 881 ) claybricks 0 0 0 1 1 +( -704 -512 880 ) ( -704 -512 881 ) ( -703 -512 880 ) claybricks 0 0 0 1 1 +( -704 -512 880 ) ( -703 -512 880 ) ( -704 -511 880 ) claybricks 0 0 0 1 1 +( -592 -352 884 ) ( -592 -351 884 ) ( -591 -352 884 ) claybricks 0 0 0 1 1 +( -592 -352 896 ) ( -591 -352 896 ) ( -592 -352 897 ) claybricks 0 0 0 1 1 +( -592 -352 896 ) ( -592 -352 897 ) ( -592 -351 896 ) claybricks 0 0 0 1 1 +} +} diff --git a/sourcefiles/mapsrc/skystairs.map b/sourcefiles/mapsrc/skystairs.map @@ -0,0 +1,1194 @@ +// Game: FANGFLECKED +// Format: Quake3 (legacy) +// entity 0 +{ +"classname" "worldspawn" +"_tb_textures" "textures;textures/MustRemove;textures/placeholder" +"_keepLights" "1" +// brush 0 +{ +( -640 256 896 ) ( -640 257 896 ) ( -640 256 897 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -640 256 896 ) ( -640 256 897 ) ( -639 256 896 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -640 256 896 ) ( -639 256 896 ) ( -640 257 896 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -128 512 2560 ) ( -128 513 2560 ) ( -127 512 2560 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -128 512 1024 ) ( -127 512 1024 ) ( -128 512 1025 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -128 512 1024 ) ( -128 512 1025 ) ( -128 513 1024 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 1 +{ +( -384 -384 896 ) ( -384 -383 896 ) ( -384 -384 897 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -384 -384 896 ) ( -384 -384 897 ) ( -383 -384 896 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -384 -384 896 ) ( -383 -384 896 ) ( -384 -383 896 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 -128 2304 ) ( 128 -127 2304 ) ( 129 -128 2304 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 -128 1024 ) ( 129 -128 1024 ) ( 128 -128 1025 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 -128 1024 ) ( 128 -128 1025 ) ( 128 -127 1024 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 2 +{ +( -1664 -256 128 ) ( -1664 -255 128 ) ( -1664 -256 129 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1664 -256 128 ) ( -1664 -256 129 ) ( -1663 -256 128 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1664 -256 128 ) ( -1663 -256 128 ) ( -1664 -255 128 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1280 384 3072 ) ( -1280 385 3072 ) ( -1279 384 3072 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1280 384 256 ) ( -1279 384 256 ) ( -1280 384 257 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1280 384 256 ) ( -1280 384 257 ) ( -1280 385 256 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 3 +{ +( -3584 256 2048 ) ( -3584 257 2048 ) ( -3584 256 2049 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -2944 256 2048 ) ( -2944 256 2049 ) ( -2943 256 2048 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -2944 256 1792 ) ( -2943 256 1792 ) ( -2944 257 1792 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -2688 896 4224 ) ( -2688 897 4224 ) ( -2687 896 4224 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -2688 1152 2176 ) ( -2687 1152 2176 ) ( -2688 1152 2177 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -2688 896 2176 ) ( -2688 896 2177 ) ( -2688 897 2176 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 4 +{ +( -1024 1024 128 ) ( -1024 1025 128 ) ( -1024 1024 129 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1024 1024 128 ) ( -1024 1024 129 ) ( -1023 1024 128 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1024 1024 128 ) ( -1023 1024 128 ) ( -1024 1025 128 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -640 1280 2560 ) ( -640 1281 2560 ) ( -639 1280 2560 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -640 1280 256 ) ( -639 1280 256 ) ( -640 1280 257 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -640 1280 256 ) ( -640 1280 257 ) ( -640 1281 256 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 5 +{ +( 512 128 1664 ) ( 512 129 1664 ) ( 512 128 1665 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 512 128 1664 ) ( 512 128 1665 ) ( 513 128 1664 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 512 128 1664 ) ( 513 128 1664 ) ( 512 129 1664 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 640 512 2560 ) ( 640 513 2560 ) ( 641 512 2560 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 640 512 1792 ) ( 641 512 1792 ) ( 640 512 1793 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 640 512 1792 ) ( 640 512 1793 ) ( 640 513 1792 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 6 +{ +( 512 -512 2816 ) ( 512 -511 2816 ) ( 512 -512 2817 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 512 -512 2816 ) ( 512 -512 2817 ) ( 513 -512 2816 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 512 -512 2816 ) ( 513 -512 2816 ) ( 512 -511 2816 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 768 0 5632 ) ( 768 1 5632 ) ( 769 0 5632 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 768 0 2944 ) ( 769 0 2944 ) ( 768 0 2945 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 768 0 2944 ) ( 768 0 2945 ) ( 768 1 2944 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 7 +{ +( -128 -128 3072 ) ( -128 -127 3072 ) ( -128 -128 3073 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -256 -128 3072 ) ( -256 -128 3073 ) ( -255 -128 3072 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -256 -128 3072 ) ( -255 -128 3072 ) ( -256 -127 3072 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 256 4352 ) ( 128 257 4352 ) ( 129 256 4352 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 256 3200 ) ( 129 256 3200 ) ( 128 256 3201 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 256 3200 ) ( 128 256 3201 ) ( 128 257 3200 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 8 +{ +( -768 -384 5248 ) ( -768 -383 5248 ) ( -768 -384 5249 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -384 5248 ) ( -768 -384 5249 ) ( -767 -384 5248 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -384 5248 ) ( -767 -384 5248 ) ( -768 -383 5248 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -384 0 6784 ) ( -384 1 6784 ) ( -383 0 6784 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -384 0 5376 ) ( -383 0 5376 ) ( -384 0 5377 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -384 0 5376 ) ( -384 0 5377 ) ( -384 1 5376 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 9 +{ +( -1408 384 5248 ) ( -1408 385 5248 ) ( -1408 384 5249 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1408 384 5248 ) ( -1408 384 5249 ) ( -1407 384 5248 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1408 384 5248 ) ( -1407 384 5248 ) ( -1408 385 5248 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1152 896 7424 ) ( -1152 897 7424 ) ( -1151 896 7424 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1152 896 5376 ) ( -1151 896 5376 ) ( -1152 896 5377 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1152 896 5376 ) ( -1152 896 5377 ) ( -1152 897 5376 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 10 +{ +( -512 896 3456 ) ( -512 897 3456 ) ( -512 896 3457 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -512 896 3456 ) ( -512 896 3457 ) ( -511 896 3456 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -512 896 3456 ) ( -511 896 3456 ) ( -512 897 3456 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -128 1152 5760 ) ( -128 1153 5760 ) ( -127 1152 5760 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -128 1152 3584 ) ( -127 1152 3584 ) ( -128 1152 3585 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -128 1152 3584 ) ( -128 1152 3585 ) ( -128 1153 3584 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 11 +{ +( -1280 -1152 1920 ) ( -1280 -1151 1920 ) ( -1280 -1152 1921 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1280 -1152 1920 ) ( -1280 -1152 1921 ) ( -1279 -1152 1920 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1280 -1152 1920 ) ( -1279 -1152 1920 ) ( -1280 -1151 1920 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -640 -768 3712 ) ( -640 -767 3712 ) ( -639 -768 3712 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -640 -768 2048 ) ( -639 -768 2048 ) ( -640 -768 2049 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -640 -768 2048 ) ( -640 -768 2049 ) ( -640 -767 2048 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 12 +{ +( 640 256 6272 ) ( 640 257 6272 ) ( 640 256 6273 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 640 256 6272 ) ( 640 256 6273 ) ( 641 256 6272 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 640 256 6272 ) ( 641 256 6272 ) ( 640 257 6272 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 896 768 8064 ) ( 896 769 8064 ) ( 897 768 8064 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 896 768 6400 ) ( 897 768 6400 ) ( 896 768 6401 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 896 768 6400 ) ( 896 768 6401 ) ( 896 769 6400 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 13 +{ +( -1152 -1024 3968 ) ( -1152 -1023 3968 ) ( -1152 -1024 3969 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1152 -2176 3968 ) ( -1152 -2176 3969 ) ( -1151 -2176 3968 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1152 -1024 3968 ) ( -1151 -1024 3968 ) ( -1152 -1023 3968 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -768 4096 ) ( -768 -767 4096 ) ( -767 -768 4096 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -768 4096 ) ( -767 -768 4096 ) ( -768 -768 4097 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -768 4096 ) ( -768 -768 4097 ) ( -768 -767 4096 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 14 +{ +( -1280 -2688 3968 ) ( -1280 -2687 3968 ) ( -1280 -2688 3969 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1280 -2688 3968 ) ( -1280 -2688 3969 ) ( -1279 -2688 3968 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1280 -2688 3712 ) ( -1279 -2688 3712 ) ( -1280 -2687 3712 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -2176 5632 ) ( -768 -2175 5632 ) ( -767 -2176 5632 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -2176 4096 ) ( -767 -2176 4096 ) ( -768 -2176 4097 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -640 -2176 4096 ) ( -640 -2176 4097 ) ( -640 -2175 4096 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 15 +{ +( 128 -896 5888 ) ( 128 -895 5888 ) ( 128 -896 5889 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 -1920 5888 ) ( 128 -1920 5889 ) ( 129 -1920 5888 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 -896 5888 ) ( 129 -896 5888 ) ( 128 -895 5888 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 512 -768 6016 ) ( 512 -767 6016 ) ( 513 -768 6016 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 512 -768 6016 ) ( 513 -768 6016 ) ( 512 -768 6017 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 512 -768 6016 ) ( 512 -768 6017 ) ( 512 -767 6016 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 16 +{ +( 0 -2176 5888 ) ( 0 -2175 5888 ) ( 0 -2176 5889 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 -2688 5888 ) ( 128 -2688 5889 ) ( 129 -2688 5888 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 -2176 5632 ) ( 129 -2176 5632 ) ( 128 -2175 5632 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 640 -1920 7168 ) ( 640 -1919 7168 ) ( 641 -1920 7168 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 640 -1920 6016 ) ( 641 -1920 6016 ) ( 640 -1920 6017 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 640 -1920 6016 ) ( 640 -1920 6017 ) ( 640 -1919 6016 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +} +// entity 1 +{ +"classname" "light" +"origin" "184 -760 1272" +"light" "500" +} +// entity 2 +{ +"classname" "light" +"origin" "232 -408 1272" +"light" "500" +} +// entity 3 +{ +"classname" "light" +"origin" "-8 -392 1272" +"light" "500" +} +// entity 4 +{ +"classname" "light" +"origin" "-440 -360 1272" +"light" "500" +} +// entity 5 +{ +"classname" "light" +"origin" "-280 -88 1272" +"light" "500" +} +// entity 6 +{ +"classname" "light" +"origin" "-712 296 1144" +"light" "500" +} +// entity 7 +{ +"classname" "light" +"origin" "-168 328 1272" +"light" "500" +} +// entity 8 +{ +"classname" "light" +"origin" "200 312 1272" +"light" "500" +} +// entity 9 +{ +"classname" "light" +"origin" "200 664 1272" +"light" "500" +} +// entity 10 +{ +"classname" "light" +"origin" "104 664 1272" +"light" "500" +} +// entity 11 +{ +"classname" "light" +"origin" "-792 712 1272" +"light" "500" +} +// entity 12 +{ +"classname" "light" +"origin" "-280 -88 2168" +"light" "500" +} +// entity 13 +{ +"classname" "light" +"origin" "-408 296 2168" +"light" "500" +} +// entity 14 +{ +"classname" "light" +"origin" "-664 808 2424" +"light" "500" +} +// entity 15 +{ +"classname" "light" +"origin" "488 808 2168" +"light" "500" +} +// entity 16 +{ +"classname" "light" +"origin" "-152 -728 1656" +"light" "600" +} +// entity 17 +{ +"classname" "light" +"origin" "-968 -88 1272" +"light" "500" +} +// entity 18 +{ +"classname" "trigger_mapend" +"map" "start" +"message" "Prepare to ascend to the next level" +// brush 0 +{ +( -640 -384 7584 ) ( -640 -383 7584 ) ( -640 -384 7585 ) trigger 0 32 0 1 1 0 0 0 +( -640 -128 7584 ) ( -640 -128 7585 ) ( -639 -128 7584 ) trigger 0 32 0 1 1 0 0 0 +( -640 -384 7584 ) ( -639 -384 7584 ) ( -640 -383 7584 ) trigger 0 0 0 1 1 0 0 0 +( 128 640 8096 ) ( 128 641 8096 ) ( 129 640 8096 ) trigger 0 0 0 1 1 0 0 0 +( 128 640 7712 ) ( 129 640 7712 ) ( 128 640 7713 ) trigger 0 32 0 1 1 0 0 0 +( 128 640 7712 ) ( 128 640 7713 ) ( 128 641 7712 ) trigger 0 32 0 1 1 0 0 0 +} +} +// entity 19 +{ +"classname" "light" +"origin" "-888 -520 6280" +"light" "700" +} +// entity 20 +{ +"classname" "light" +"origin" "264 -520 6536" +"light" "700" +} +// entity 21 +{ +"classname" "light" +"origin" "-888 632 5640" +"light" "700" +} +// entity 22 +{ +"classname" "light" +"origin" "264 -520 5000" +"light" "700" +} +// entity 23 +{ +"classname" "light" +"origin" "-1016 -648 4616" +"light" "700" +} +// entity 24 +{ +"classname" "light" +"origin" "-888 760 4232" +"light" "700" +} +// entity 25 +{ +"classname" "light" +"origin" "392 632 3848" +"light" "700" +} +// entity 26 +{ +"classname" "light" +"origin" "392 -520 3208" +"light" "700" +} +// entity 27 +{ +"classname" "light" +"origin" "-1016 -392 3208" +"light" "700" +} +// entity 28 +{ +"classname" "light" +"origin" "-1016 120 2824" +"light" "700" +} +// entity 29 +{ +"classname" "func_group" +"_tb_type" "_tb_layer" +"_tb_name" "container" +"_tb_id" "1" +"_tb_layer_sort_index" "0" +"_tb_layer_locked" "1" +// brush 0 +{ +( -4224 -2048 128 ) ( -4224 -2047 128 ) ( -4224 -2048 129 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( -4224 -4736 128 ) ( -4224 -4736 129 ) ( -4223 -4736 128 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( -4224 -2048 128 ) ( -4223 -2048 128 ) ( -4224 -2047 128 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( -4096 2048 8448 ) ( -4096 2049 8448 ) ( -4095 2048 8448 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( -4096 2048 256 ) ( -4095 2048 256 ) ( -4096 2048 257 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( -4096 2048 256 ) ( -4096 2048 257 ) ( -4096 2049 256 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +} +// brush 1 +{ +( -4096 -2048 0 ) ( -4096 -2047 0 ) ( -4096 -2048 1 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( -2304 -4608 0 ) ( -2304 -4608 1 ) ( -2303 -4608 0 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( -2304 -2048 0 ) ( -2303 -2048 0 ) ( -2304 -2047 0 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( -1280 2048 128 ) ( -1280 2049 128 ) ( -1279 2048 128 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( -1280 2048 128 ) ( -1279 2048 128 ) ( -1280 2048 129 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( -1280 2048 128 ) ( -1280 2048 129 ) ( -1280 2049 128 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +} +// brush 2 +{ +( -4096 -4736 128 ) ( -4096 -4735 128 ) ( -4096 -4736 129 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( -2176 -4736 128 ) ( -2176 -4736 129 ) ( -2175 -4736 128 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( -2176 -4736 128 ) ( -2175 -4736 128 ) ( -2176 -4735 128 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( 1664 -4608 8448 ) ( 1664 -4607 8448 ) ( 1665 -4608 8448 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( 1664 -4608 256 ) ( 1665 -4608 256 ) ( 1664 -4608 257 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( 1664 -4608 256 ) ( 1664 -4608 257 ) ( 1664 -4607 256 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +} +// brush 3 +{ +( -1280 -1408 0 ) ( -1280 -1407 0 ) ( -1280 -1408 1 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( -1280 -4608 0 ) ( -1280 -4608 1 ) ( -1279 -4608 0 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( -1280 -1408 0 ) ( -1279 -1408 0 ) ( -1280 -1407 0 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( 768 -1024 128 ) ( 768 -1023 128 ) ( 769 -1024 128 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( 768 -1024 128 ) ( 769 -1024 128 ) ( 768 -1024 129 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( 768 -1024 128 ) ( 768 -1024 129 ) ( 768 -1023 128 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +} +// brush 4 +{ +( 768 -2048 0 ) ( 768 -2047 0 ) ( 768 -2048 1 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( 768 -4608 0 ) ( 768 -4608 1 ) ( 769 -4608 0 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( 768 -2048 0 ) ( 769 -2048 0 ) ( 768 -2047 0 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( 1792 2048 128 ) ( 1792 2049 128 ) ( 1793 2048 128 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( 1792 2048 128 ) ( 1793 2048 128 ) ( 1792 2048 129 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( 1792 2048 128 ) ( 1792 2048 129 ) ( 1792 2049 128 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +} +// brush 5 +{ +( 1664 -2048 128 ) ( 1664 -2047 128 ) ( 1664 -2048 129 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( 1664 -4736 128 ) ( 1664 -4736 129 ) ( 1665 -4736 128 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( 1664 -2048 128 ) ( 1665 -2048 128 ) ( 1664 -2047 128 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( 1792 2048 8448 ) ( 1792 2049 8448 ) ( 1793 2048 8448 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( 1792 2048 256 ) ( 1793 2048 256 ) ( 1792 2048 257 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( 1792 2048 256 ) ( 1792 2048 257 ) ( 1792 2049 256 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +} +// brush 6 +{ +( -4096 1920 128 ) ( -4096 1921 128 ) ( -4096 1920 129 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( -2176 1920 128 ) ( -2176 1920 129 ) ( -2175 1920 128 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( -2176 1920 128 ) ( -2175 1920 128 ) ( -2176 1921 128 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( 1664 2048 8448 ) ( 1664 2049 8448 ) ( 1665 2048 8448 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( 1664 2048 256 ) ( 1665 2048 256 ) ( 1664 2048 257 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( 1664 2048 256 ) ( 1664 2048 257 ) ( 1664 2049 256 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +} +// brush 7 +{ +( -4096 -1920 8320 ) ( -4096 -1919 8320 ) ( -4096 -1920 8321 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( -2176 -4608 8320 ) ( -2176 -4608 8321 ) ( -2175 -4608 8320 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( -2176 -1920 8320 ) ( -2175 -1920 8320 ) ( -2176 -1919 8320 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( 1664 1920 8448 ) ( 1664 1921 8448 ) ( 1665 1920 8448 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( 1664 1920 8448 ) ( 1665 1920 8448 ) ( 1664 1920 8449 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( 1664 1920 8448 ) ( 1664 1920 8449 ) ( 1664 1921 8448 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +} +} +// entity 30 +{ +"classname" "func_group" +"_tb_type" "_tb_layer" +"_tb_name" "base" +"_tb_id" "2" +"_tb_layer_sort_index" "1" +"_tb_layer_locked" "1" +// brush 0 +{ +( -768 896 384 ) ( -1152 512 384 ) ( -1152 512 0 ) placeholder/tile2 0 0 0 1.75 1 0 0 0 +( -1152 512 384 ) ( 640 512 384 ) ( 640 512 0 ) placeholder/tile2 -45.71428 0 0 1.75 1 0 0 0 +( -1152 512 0 ) ( 640 512 0 ) ( 256 896 0 ) placeholder/tile2 -45.71428 0 0 1.75 1.75 0 0 0 +( 256 896 128 ) ( 640 512 128 ) ( -1152 512 128 ) placeholder/tile2 -45.71428 0 0 1.75 1.75 0 0 0 +( 256 896 0 ) ( 256 896 384 ) ( -768 896 384 ) placeholder/tile2 -45.71428 0 0 1.75 1 0 0 0 +( 640 512 0 ) ( 640 512 384 ) ( 256 896 384 ) placeholder/tile2 32 0 0 1.75 1 0 0 0 +} +// brush 1 +{ +( -1152 512 384 ) ( -1152 -512 384 ) ( -1152 -512 0 ) placeholder/tile2 0 0 0 1.75 1 0 0 0 +( -1152 -512 384 ) ( 640 -512 384 ) ( 640 -512 0 ) placeholder/tile2 -45.71428 0 0 1.75 1 0 0 0 +( 640 -512 0 ) ( 640 512 0 ) ( -1152 512 0 ) placeholder/tile2 -45.71428 0 0 1.75 1.75 0 0 0 +( -1152 512 128 ) ( 640 512 128 ) ( 640 -512 128 ) placeholder/tile2 -45.71428 0 0 1.75 1.75 0 0 0 +( 640 512 0 ) ( 640 512 384 ) ( -1152 512 384 ) placeholder/tile2 -45.71428 0 0 1.75 1 0 0 0 +( 640 -512 384 ) ( 640 512 384 ) ( 640 512 0 ) placeholder/tile2 0 0 0 1.75 1 0 0 0 +} +// brush 2 +{ +( -768 -896 0 ) ( -1152 -512 0 ) ( -1152 -512 384 ) placeholder/tile2 -32 0 180 1.75 -1 0 0 0 +( -768 -896 384 ) ( 256 -896 384 ) ( 256 -896 0 ) placeholder/tile2 45.71428 0 180 1.75 -1 0 0 0 +( 256 -896 0 ) ( 640 -512 0 ) ( -1152 -512 0 ) placeholder/tile2 45.71428 0 180 1.75 1.75 0 0 0 +( -1152 -512 128 ) ( 640 -512 128 ) ( 256 -896 128 ) placeholder/tile2 45.71428 0 180 1.75 1.75 0 0 0 +( 640 -512 0 ) ( 640 -512 384 ) ( -1152 -512 384 ) placeholder/tile2 45.71428 0 180 1.75 -1 0 0 0 +( 256 -896 384 ) ( 640 -512 384 ) ( 640 -512 0 ) placeholder/tile2 0 0 180 1.75 -1 0 0 0 +} +// brush 3 +{ +( -1280 -256 0 ) ( -1280 -255 0 ) ( -1280 -256 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1408 -896 0 ) ( -1408 -896 1 ) ( -1407 -896 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1408 -256 0 ) ( -1407 -256 0 ) ( -1408 -255 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1152 512 896 ) ( -1152 513 896 ) ( -1151 512 896 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1152 896 128 ) ( -1151 896 128 ) ( -1152 896 129 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1152 512 128 ) ( -1152 512 129 ) ( -1152 513 128 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 4 +{ +( -1280 -1024 0 ) ( -1280 -1023 0 ) ( -1280 -1024 1 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -1024 0 ) ( -1280 -1024 1 ) ( -1279 -1024 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1280 -1024 0 ) ( -1279 -1024 0 ) ( -1280 -1023 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 640 -896 896 ) ( 640 -895 896 ) ( 641 -896 896 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 640 -896 128 ) ( 641 -896 128 ) ( 640 -896 129 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 768 -896 128 ) ( 768 -896 129 ) ( 768 -895 128 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 5 +{ +( 640 -512 0 ) ( 640 -512 128 ) ( 256 -896 128 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 640 -896 0 ) ( 256 -896 0 ) ( 256 -896 128 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 640 -896 0 ) ( 640 -512 0 ) ( 256 -896 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 256 -896 896 ) ( 640 -512 896 ) ( 640 -896 896 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( 640 -896 128 ) ( 640 -512 128 ) ( 640 -512 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 6 +{ +( -1152 -512 128 ) ( -1152 -896 128 ) ( -1152 -896 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1152 -896 128 ) ( -768 -896 128 ) ( -768 -896 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1152 -896 0 ) ( -768 -896 0 ) ( -1152 -512 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1152 -512 896 ) ( -768 -896 896 ) ( -1152 -896 896 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +( -1152 -512 128 ) ( -1152 -512 0 ) ( -768 -896 0 ) MustRemove/brickscg1 0 0 0 1 1 0 0 0 +} +// brush 7 +{ +( -1152 896 128 ) ( -1152 512 128 ) ( -1152 512 0 ) MustRemove/brickscg1 0 0 180 1 -1 0 0 0 +( -1152 896 0 ) ( -1152 512 0 ) ( -768 896 0 ) MustRemove/brickscg1 0 0 180 1 1 0 0 0 +( -768 896 896 ) ( -1152 512 896 ) ( -1152 896 896 ) MustRemove/brickscg1 0 0 180 1 1 0 0 0 +( -1152 896 0 ) ( -768 896 0 ) ( -768 896 128 ) MustRemove/brickscg1 0 0 180 1 -1 0 0 0 +( -1152 512 0 ) ( -1152 512 128 ) ( -768 896 128 ) MustRemove/brickscg1 0 0 180 1 -1 0 0 0 +} +// brush 8 +{ +( -1280 896 128 ) ( -1280 896 129 ) ( -1280 895 128 ) MustRemove/brickscg1 0 0 180 1 -1 0 0 0 +( -1152 896 128 ) ( -1153 896 128 ) ( -1152 896 129 ) MustRemove/brickscg1 0 0 180 1 -1 0 0 0 +( 768 1024 0 ) ( 767 1024 0 ) ( 768 1023 0 ) MustRemove/brickscg1 0 0 180 1 1 0 0 0 +( -1152 896 896 ) ( -1152 895 896 ) ( -1153 896 896 ) MustRemove/brickscg1 0 0 180 1 1 0 0 0 +( 768 1024 0 ) ( 768 1024 1 ) ( 767 1024 0 ) MustRemove/brickscg1 0 0 180 1 -1 0 0 0 +( 768 1024 0 ) ( 768 1023 0 ) ( 768 1024 1 ) MustRemove/brickscg1 0 0 180 1 -1 0 0 0 +} +// brush 9 +{ +( 640 512 128 ) ( 640 512 0 ) ( 256 896 0 ) MustRemove/brickscg1 0 0 180 1 -1 0 0 0 +( 640 896 0 ) ( 256 896 0 ) ( 640 512 0 ) MustRemove/brickscg1 0 0 180 1 1 0 0 0 +( 640 512 896 ) ( 256 896 896 ) ( 640 896 896 ) MustRemove/brickscg1 0 0 180 1 1 0 0 0 +( 640 896 128 ) ( 256 896 128 ) ( 256 896 0 ) MustRemove/brickscg1 0 0 180 1 -1 0 0 0 +( 640 512 128 ) ( 640 896 128 ) ( 640 896 0 ) MustRemove/brickscg1 0 0 180 1 -1 0 0 0 +} +// brush 10 +{ +( 640 -512 128 ) ( 640 -512 129 ) ( 640 -513 128 ) MustRemove/brickscg1 0 0 180 1 -1 0 0 0 +( 640 -896 128 ) ( 639 -896 128 ) ( 640 -896 129 ) MustRemove/brickscg1 0 0 180 1 -1 0 0 0 +( 896 256 0 ) ( 895 256 0 ) ( 896 255 0 ) MustRemove/brickscg1 0 0 180 1 1 0 0 0 +( 640 -512 896 ) ( 640 -513 896 ) ( 639 -512 896 ) MustRemove/brickscg1 0 0 180 1 1 0 0 0 +( 896 896 0 ) ( 896 896 1 ) ( 895 896 0 ) MustRemove/brickscg1 0 0 180 1 -1 0 0 0 +( 768 256 0 ) ( 768 255 0 ) ( 768 256 1 ) MustRemove/brickscg1 0 0 180 1 -1 0 0 0 +} +// brush 11 +{ +( -1152 512 1152 ) ( -1152 -512 1152 ) ( -1152 -512 768 ) MustRemove/fancytiles4 0 0 0 1.75 1 0 0 0 +( -1152 -512 1152 ) ( 640 -512 1152 ) ( 640 -512 768 ) MustRemove/fancytiles4 -45.71428 0 0 1.75 1 0 0 0 +( 640 -512 768 ) ( 640 512 768 ) ( -1152 512 768 ) MustRemove/fancytiles4 -45.71428 0 0 1.75 1.75 0 0 0 +( -1152 512 896 ) ( 640 512 896 ) ( 640 -512 896 ) MustRemove/fancytiles4 -45.71428 0 0 1.75 1.75 0 0 0 +( 640 512 768 ) ( 640 512 1152 ) ( -1152 512 1152 ) MustRemove/fancytiles4 -45.71428 0 0 1.75 1 0 0 0 +( 640 -512 1152 ) ( 640 512 1152 ) ( 640 512 768 ) MustRemove/fancytiles4 0 0 0 1.75 1 0 0 0 +} +// brush 12 +{ +( -768 896 1152 ) ( -1152 512 1152 ) ( -1152 512 768 ) MustRemove/fancytiles4 0 0 0 1.75 1 0 0 0 +( -1152 512 1152 ) ( 640 512 1152 ) ( 640 512 768 ) MustRemove/fancytiles4 -45.71428 0 0 1.75 1 0 0 0 +( -1152 512 768 ) ( 640 512 768 ) ( 256 896 768 ) MustRemove/fancytiles4 -45.71428 0 0 1.75 1.75 0 0 0 +( 256 896 896 ) ( 640 512 896 ) ( -1152 512 896 ) MustRemove/fancytiles4 -45.71428 0 0 1.75 1.75 0 0 0 +( 256 896 768 ) ( 256 896 1152 ) ( -768 896 1152 ) MustRemove/fancytiles4 -45.71428 0 0 1.75 1 0 0 0 +( 640 512 768 ) ( 640 512 1152 ) ( 256 896 1152 ) MustRemove/fancytiles4 32 0 0 1.75 1 0 0 0 +} +// brush 13 +{ +( -768 -896 128 ) ( -1152 -512 128 ) ( -1152 -512 464 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -896 128 ) ( -768 -512 128 ) ( -1152 -512 128 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1152 -512 448 ) ( -768 -512 448 ) ( -768 -896 448 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -512 128 ) ( -768 -512 464 ) ( -1152 -512 464 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -896 464 ) ( -768 -512 464 ) ( -768 -512 128 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 14 +{ +( 96 -816 896 ) ( 96 -544 896 ) ( 96 -544 1024 ) MustRemove/fancytiles4 -32 0 0 1.75 -1 0 0 0 +( -768 -896 1152 ) ( 256 -896 1152 ) ( 256 -896 768 ) MustRemove/fancytiles4 45.71428 0 180 1.75 -1 0 0 0 +( 256 -896 768 ) ( 640 -512 768 ) ( -1152 -512 768 ) MustRemove/fancytiles4 45.71428 0 180 1.75 1.75 0 0 0 +( -1152 -512 896 ) ( 640 -512 896 ) ( 256 -896 896 ) MustRemove/fancytiles4 45.71428 0 180 1.75 1.75 0 0 0 +( 640 -512 768 ) ( 640 -512 1152 ) ( -1152 -512 1152 ) MustRemove/fancytiles4 45.71428 0 180 1.75 -1 0 0 0 +( 256 -896 1152 ) ( 640 -512 1152 ) ( 640 -512 768 ) MustRemove/fancytiles4 0 0 180 1.75 -1 0 0 0 +} +// brush 15 +{ +( -768 -896 1152 ) ( -1152 -512 768 ) ( -1152 -512 1152 ) MustRemove/fancytiles4 0 0 180 1.75 -1 0 0 0 +( 256 -896 1152 ) ( -768 -896 768 ) ( -768 -896 1152 ) MustRemove/fancytiles4 82.285706 0 0 1.75 1 0 0 0 +( -768 -896 768 ) ( 640 -512 768 ) ( -1152 -512 768 ) MustRemove/fancytiles4 82.285675 0 0 1.75 -1.75 0 0 0 +( 640 -512 896 ) ( -768 -896 896 ) ( -1152 -512 896 ) MustRemove/fancytiles4 82.285675 0 0 1.75 -1.75 0 0 0 +( -1152 -512 768 ) ( 640 -512 1152 ) ( -1152 -512 1152 ) MustRemove/fancytiles4 82.285675 0 0 1.75 1 0 0 0 +( -688 -816 896 ) ( -688 -544 1024 ) ( -688 -544 896 ) MustRemove/fancytiles4 -32 0 0 1.75 -1 0 0 0 +} +// brush 16 +{ +( -1280 1664 0 ) ( -1280 1665 0 ) ( -1280 1664 1 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( -1280 1024 0 ) ( -1280 1024 1 ) ( -1279 1024 0 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( -1280 1664 0 ) ( -1279 1664 0 ) ( -1280 1665 0 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( 768 2048 128 ) ( 768 2049 128 ) ( 769 2048 128 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( 768 2048 128 ) ( 769 2048 128 ) ( 768 2048 129 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +( 768 2048 128 ) ( 768 2048 129 ) ( 768 2049 128 ) MustRemove/gravel 0 0 0 1 1 0 0 0 +} +// brush 17 +{ +( -1152 -512 448 ) ( -1152 -512 128 ) ( -1152 32 128 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1152 -512 448 ) ( -768 -512 448 ) ( -768 -512 128 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -512 128 ) ( -768 32 128 ) ( -1152 32 128 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1152 32 128 ) ( -768 32 128 ) ( -768 -512 448 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -512 448 ) ( -768 32 128 ) ( -768 -512 128 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 18 +{ +( -768 -544 448 ) ( -768 -896 448 ) ( -768 -896 128 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -544 448 ) ( 96 -544 896 ) ( 96 -896 896 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -896 448 ) ( 96 -896 896 ) ( 96 -896 128 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 96 -896 128 ) ( 96 -544 128 ) ( -768 -544 128 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 96 -512 128 ) ( 96 -512 896 ) ( -768 -512 448 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 96 -896 896 ) ( 96 -544 896 ) ( 96 -544 128 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +} +// entity 31 +{ +"classname" "info_player_start" +"origin" "-384 256 152" +"_tb_layer" "2" +} +// entity 32 +{ +"classname" "light" +"origin" "-424 744 424" +"_tb_layer" "2" +} +// entity 33 +{ +"classname" "light" +"origin" "-760 264 408" +"_tb_layer" "2" +} +// entity 34 +{ +"classname" "light" +"origin" "328 -360 392" +"_tb_layer" "2" +} +// entity 35 +{ +"classname" "light" +"origin" "344 568 328" +"_tb_layer" "2" +} +// entity 36 +{ +"classname" "light" +"origin" "296 72 232" +"_tb_layer" "2" +} +// entity 37 +{ +"classname" "light" +"origin" "-104 -344 216" +"_tb_layer" "2" +} +// entity 38 +{ +"classname" "light" +"origin" "-648 -168 248" +"_tb_layer" "2" +} +// entity 39 +{ +"classname" "light" +"origin" "-200 392 216" +"_tb_layer" "2" +} +// entity 40 +{ +"classname" "light" +"origin" "-936 -648 616" +"_tb_layer" "2" +} +// entity 41 +{ +"classname" "light" +"origin" "-1144 -72 344" +"_tb_layer" "2" +} +// entity 42 +{ +"classname" "light" +"origin" "-552 -888 664" +"_tb_layer" "2" +} +// entity 43 +{ +"classname" "light" +"origin" "-888 -648 1544" +"_tb_layer" "2" +} +// entity 44 +{ +"classname" "light" +"origin" "-888 -648 1544" +"_tb_layer" "2" +} +// entity 45 +{ +"classname" "light" +"origin" "-888 -648 1544" +"_tb_layer" "2" +} +// entity 46 +{ +"classname" "light" +"origin" "520 -776 1928" +"light" "500" +"_tb_layer" "2" +} +// entity 47 +{ +"classname" "light" +"origin" "392 120 1928" +"light" "500" +"_tb_layer" "2" +} +// entity 48 +{ +"classname" "monster_scrambler" +"origin" "16 -272 2328" +"_tb_layer" "2" +} +// entity 49 +{ +"classname" "monster_scrambler" +"origin" "-624 16 920" +"_tb_layer" "2" +} +// entity 50 +{ +"classname" "monster_scrambler" +"origin" "272 400 920" +"_tb_layer" "2" +} +// entity 51 +{ +"classname" "monster_scrambler" +"origin" "272 656 1944" +"_tb_layer" "2" +} +// entity 52 +{ +"classname" "light" +"origin" "-2296 776 3208" +"light" "700" +"_tb_layer" "2" +} +// entity 53 +{ +"classname" "light" +"origin" "-760 -632 3208" +"light" "700" +"_tb_layer" "2" +} +// entity 54 +{ +"classname" "func_group" +"_tb_type" "_tb_layer" +"_tb_name" "spiral" +"_tb_id" "3" +"_tb_layer_sort_index" "2" +"_tb_layer_locked" "1" +// brush 0 +{ +( -768 -384 7168 ) ( -768 -768 7168 ) ( -768 -768 7040 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -384 7168 ) ( 128 -384 7552 ) ( 128 -768 7552 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -768 7168 ) ( 128 -768 7552 ) ( 128 -768 7424 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 -384 7424 ) ( 128 -384 7552 ) ( -768 -384 7168 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 -768 7424 ) ( 128 -384 7424 ) ( -768 -384 7040 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 -768 7552 ) ( 128 -384 7552 ) ( 128 -384 7424 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 1 +{ +( -1152 -512 7040 ) ( -1152 -511 7040 ) ( -1152 -512 7041 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1152 -768 7040 ) ( -1152 -768 7041 ) ( -1151 -768 7040 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1152 -512 7040 ) ( -1151 -512 7040 ) ( -1152 -511 7040 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -384 7168 ) ( -768 -383 7168 ) ( -767 -384 7168 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -384 7168 ) ( -767 -384 7168 ) ( -768 -384 7169 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -384 7168 ) ( -768 -384 7169 ) ( -768 -383 7168 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 2 +{ +( -1152 512 6784 ) ( -1152 -384 7168 ) ( -1152 -384 7040 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1152 -384 7168 ) ( -768 -384 7168 ) ( -768 -384 7040 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -384 7040 ) ( -768 512 6656 ) ( -1152 512 6656 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1152 512 6784 ) ( -768 512 6784 ) ( -768 -384 7168 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 512 6656 ) ( -768 512 6784 ) ( -1152 512 6784 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -384 7168 ) ( -768 512 6784 ) ( -768 512 6656 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 3 +{ +( -768 896 6784 ) ( -768 512 6784 ) ( -768 512 6656 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 512 6272 ) ( 128 896 6272 ) ( -768 896 6656 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 512 6784 ) ( 128 512 6400 ) ( 128 512 6272 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 896 6272 ) ( 128 896 6400 ) ( -768 896 6784 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 896 6784 ) ( 128 896 6400 ) ( 128 512 6400 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 512 6400 ) ( 128 896 6400 ) ( 128 896 6272 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 4 +{ +( 128 512 6272 ) ( 128 513 6272 ) ( 128 512 6273 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 512 6272 ) ( 128 512 6273 ) ( 129 512 6272 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 512 6272 ) ( 129 512 6272 ) ( 128 513 6272 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 512 896 6400 ) ( 512 897 6400 ) ( 513 896 6400 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 512 896 6400 ) ( 513 896 6400 ) ( 512 896 6401 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 512 896 6400 ) ( 512 896 6401 ) ( 512 897 6400 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 5 +{ +( 128 512 6400 ) ( 128 -384 6016 ) ( 128 -384 5888 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 -384 6016 ) ( 512 -384 6016 ) ( 512 -384 5888 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 512 6400 ) ( 512 512 6400 ) ( 512 -384 6016 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 512 -384 5888 ) ( 512 512 6272 ) ( 128 512 6272 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 512 512 6272 ) ( 512 512 6400 ) ( 128 512 6400 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 512 -384 6016 ) ( 512 512 6400 ) ( 512 512 6272 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 6 +{ +( 128 -768 5888 ) ( 128 -767 5888 ) ( 128 -768 5889 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 -768 5888 ) ( 128 -768 5889 ) ( 129 -768 5888 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 -768 5888 ) ( 129 -768 5888 ) ( 128 -767 5888 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 256 -384 6016 ) ( 256 -383 6016 ) ( 257 -384 6016 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 256 -384 6016 ) ( 257 -384 6016 ) ( 256 -384 6017 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 512 -384 6016 ) ( 512 -384 6017 ) ( 512 -383 6016 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 7 +{ +( -768 -384 5632 ) ( -768 -768 5632 ) ( -768 -768 5504 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -384 5632 ) ( 128 -384 6016 ) ( 128 -768 6016 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -768 5632 ) ( 128 -768 6016 ) ( 128 -768 5888 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 -384 5888 ) ( 128 -384 6016 ) ( -768 -384 5632 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 -768 5888 ) ( 128 -384 5888 ) ( -768 -384 5504 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 -768 6016 ) ( 128 -384 6016 ) ( 128 -384 5888 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 8 +{ +( -1152 -512 5504 ) ( -1152 -511 5504 ) ( -1152 -512 5505 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1152 -768 5504 ) ( -1152 -768 5505 ) ( -1151 -768 5504 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1152 -512 5504 ) ( -1151 -512 5504 ) ( -1152 -511 5504 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -384 5632 ) ( -768 -383 5632 ) ( -767 -384 5632 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -384 5632 ) ( -767 -384 5632 ) ( -768 -384 5633 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -384 5632 ) ( -768 -384 5633 ) ( -768 -383 5632 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 9 +{ +( -1152 512 5248 ) ( -1152 -384 5632 ) ( -1152 -384 5504 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1152 -384 5632 ) ( -768 -384 5632 ) ( -768 -384 5504 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -384 5504 ) ( -768 512 5120 ) ( -1152 512 5120 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1152 512 5248 ) ( -768 512 5248 ) ( -768 -384 5632 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 512 5120 ) ( -768 512 5248 ) ( -1152 512 5248 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -384 5632 ) ( -768 512 5248 ) ( -768 512 5120 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 10 +{ +( -1152 512 5120 ) ( -1152 513 5120 ) ( -1152 512 5121 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1152 512 5120 ) ( -1152 512 5121 ) ( -1151 512 5120 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1152 512 5120 ) ( -1151 512 5120 ) ( -1152 513 5120 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 896 5248 ) ( -768 897 5248 ) ( -767 896 5248 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 896 5248 ) ( -767 896 5248 ) ( -768 896 5249 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 896 5248 ) ( -768 896 5249 ) ( -768 897 5248 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 11 +{ +( -768 896 5248 ) ( -768 512 5248 ) ( -768 512 5120 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 512 4736 ) ( 128 896 4736 ) ( -768 896 5120 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 512 5248 ) ( 128 512 4864 ) ( 128 512 4736 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 896 4736 ) ( 128 896 4864 ) ( -768 896 5248 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 896 5248 ) ( 128 896 4864 ) ( 128 512 4864 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 512 4864 ) ( 128 896 4864 ) ( 128 896 4736 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 12 +{ +( 128 512 4864 ) ( 128 -384 4480 ) ( 128 -384 4352 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 -384 4480 ) ( 512 -384 4480 ) ( 512 -384 4352 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 512 4864 ) ( 512 512 4864 ) ( 512 -384 4480 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 512 -384 4352 ) ( 512 512 4736 ) ( 128 512 4736 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 512 512 4736 ) ( 512 512 4864 ) ( 128 512 4864 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 512 -384 4480 ) ( 512 512 4864 ) ( 512 512 4736 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 13 +{ +( 128 -768 4352 ) ( 128 -767 4352 ) ( 128 -768 4353 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 -768 4352 ) ( 128 -768 4353 ) ( 129 -768 4352 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 -768 4352 ) ( 129 -768 4352 ) ( 128 -767 4352 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 256 -384 4480 ) ( 256 -383 4480 ) ( 257 -384 4480 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 256 -384 4480 ) ( 257 -384 4480 ) ( 256 -384 4481 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 512 -384 4480 ) ( 512 -384 4481 ) ( 512 -383 4480 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 14 +{ +( -768 -384 4096 ) ( -768 -768 4096 ) ( -768 -768 3968 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -384 4096 ) ( 128 -384 4480 ) ( 128 -768 4480 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -768 4096 ) ( 128 -768 4480 ) ( 128 -768 4352 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 -384 4352 ) ( 128 -384 4480 ) ( -768 -384 4096 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 -768 4352 ) ( 128 -384 4352 ) ( -768 -384 3968 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 -768 4480 ) ( 128 -384 4480 ) ( 128 -384 4352 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 15 +{ +( -1152 -512 3968 ) ( -1152 -511 3968 ) ( -1152 -512 3969 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1152 -768 3968 ) ( -1152 -768 3969 ) ( -1151 -768 3968 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1152 -512 3968 ) ( -1151 -512 3968 ) ( -1152 -511 3968 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -384 4096 ) ( -768 -383 4096 ) ( -767 -384 4096 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -384 4096 ) ( -767 -384 4096 ) ( -768 -384 4097 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -384 4096 ) ( -768 -384 4097 ) ( -768 -383 4096 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 16 +{ +( -768 896 3712 ) ( -768 512 3712 ) ( -768 512 3584 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 512 3200 ) ( 128 896 3200 ) ( -768 896 3584 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 512 3712 ) ( 128 512 3328 ) ( 128 512 3200 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 896 3200 ) ( 128 896 3328 ) ( -768 896 3712 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 896 3712 ) ( 128 896 3328 ) ( 128 512 3328 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 512 3328 ) ( 128 896 3328 ) ( 128 896 3200 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 17 +{ +( -1152 512 3712 ) ( -1152 -384 4096 ) ( -1152 -384 3968 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1152 -384 4096 ) ( -768 -384 4096 ) ( -768 -384 3968 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -384 3968 ) ( -768 512 3584 ) ( -1152 512 3584 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1152 512 3712 ) ( -768 512 3712 ) ( -768 -384 4096 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 512 3584 ) ( -768 512 3712 ) ( -1152 512 3712 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -384 4096 ) ( -768 512 3712 ) ( -768 512 3584 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 18 +{ +( -1152 512 3584 ) ( -1152 513 3584 ) ( -1152 512 3585 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1152 512 3584 ) ( -1152 512 3585 ) ( -1151 512 3584 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1152 512 3584 ) ( -1151 512 3584 ) ( -1152 513 3584 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 896 3712 ) ( -768 897 3712 ) ( -767 896 3712 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 896 3712 ) ( -767 896 3712 ) ( -768 896 3713 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 896 3712 ) ( -768 896 3713 ) ( -768 897 3712 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 19 +{ +( 128 512 3200 ) ( 128 513 3200 ) ( 128 512 3201 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 512 3200 ) ( 128 512 3201 ) ( 129 512 3200 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 512 3200 ) ( 129 512 3200 ) ( 128 513 3200 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 512 896 3328 ) ( 512 897 3328 ) ( 513 896 3328 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 512 896 3328 ) ( 513 896 3328 ) ( 512 896 3329 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 512 896 3328 ) ( 512 896 3329 ) ( 512 897 3328 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 20 +{ +( 128 512 3328 ) ( 128 -384 2944 ) ( 128 -384 2816 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 -384 2944 ) ( 512 -384 2944 ) ( 512 -384 2816 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 512 3328 ) ( 512 512 3328 ) ( 512 -384 2944 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 512 -384 2816 ) ( 512 512 3200 ) ( 128 512 3200 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 512 512 3200 ) ( 512 512 3328 ) ( 128 512 3328 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 512 -384 2944 ) ( 512 512 3328 ) ( 512 512 3200 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 21 +{ +( 128 -768 2816 ) ( 128 -767 2816 ) ( 128 -768 2817 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 -768 2816 ) ( 128 -768 2817 ) ( 129 -768 2816 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 -768 2816 ) ( 129 -768 2816 ) ( 128 -767 2816 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 256 -384 2944 ) ( 256 -383 2944 ) ( 257 -384 2944 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 256 -384 2944 ) ( 257 -384 2944 ) ( 256 -384 2945 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 512 -384 2944 ) ( 512 -384 2945 ) ( 512 -383 2944 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 22 +{ +( -768 -384 2560 ) ( -768 -768 2560 ) ( -768 -768 2432 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -384 2560 ) ( 128 -384 2944 ) ( 128 -768 2944 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -768 2560 ) ( 128 -768 2944 ) ( 128 -768 2816 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 -384 2816 ) ( 128 -384 2944 ) ( -768 -384 2560 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 -768 2816 ) ( 128 -384 2816 ) ( -768 -384 2432 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 -768 2944 ) ( 128 -384 2944 ) ( 128 -384 2816 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 23 +{ +( -1152 -512 2432 ) ( -1152 -511 2432 ) ( -1152 -512 2433 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1152 -768 2432 ) ( -1152 -768 2433 ) ( -1151 -768 2432 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1152 -512 2432 ) ( -1151 -512 2432 ) ( -1152 -511 2432 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -384 2560 ) ( -768 -383 2560 ) ( -767 -384 2560 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -384 2560 ) ( -767 -384 2560 ) ( -768 -384 2561 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -384 2560 ) ( -768 -384 2561 ) ( -768 -383 2560 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 24 +{ +( -1152 512 2176 ) ( -1152 -384 2560 ) ( -1152 -384 2432 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1152 -384 2560 ) ( -768 -384 2560 ) ( -768 -384 2432 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -384 2432 ) ( -768 512 2048 ) ( -1152 512 2048 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1152 512 2176 ) ( -768 512 2176 ) ( -768 -384 2560 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 512 2048 ) ( -768 512 2176 ) ( -1152 512 2176 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -384 2560 ) ( -768 512 2176 ) ( -768 512 2048 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 25 +{ +( -2688 512 2048 ) ( -2688 513 2048 ) ( -2688 512 2049 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1152 512 2048 ) ( -1152 512 2049 ) ( -1151 512 2048 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1152 512 2048 ) ( -1151 512 2048 ) ( -1152 513 2048 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 896 2176 ) ( -768 897 2176 ) ( -767 896 2176 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 896 2176 ) ( -767 896 2176 ) ( -768 896 2177 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 896 2176 ) ( -768 896 2177 ) ( -768 897 2176 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 26 +{ +( -768 896 2176 ) ( -768 512 2176 ) ( -768 512 2048 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 512 1792 ) ( 128 896 1792 ) ( -768 896 2048 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 512 2176 ) ( 128 512 1920 ) ( 128 512 1792 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 896 1792 ) ( 128 896 1920 ) ( -768 896 2176 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 896 2176 ) ( 128 896 1920 ) ( 128 512 1920 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 512 1920 ) ( 128 896 1920 ) ( 128 896 1792 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 27 +{ +( 128 512 1792 ) ( 128 513 1792 ) ( 128 512 1793 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 512 1792 ) ( 128 512 1793 ) ( 129 512 1792 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 512 1792 ) ( 129 512 1792 ) ( 128 513 1792 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 512 896 1920 ) ( 512 897 1920 ) ( 513 896 1920 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 512 896 1920 ) ( 513 896 1920 ) ( 512 896 1921 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 512 896 1920 ) ( 512 896 1921 ) ( 512 897 1920 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 28 +{ +( 128 512 1920 ) ( 128 -384 1536 ) ( 128 -384 1408 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 -384 1536 ) ( 512 -384 1536 ) ( 512 -384 1408 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 512 1920 ) ( 512 512 1920 ) ( 512 -384 1536 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 512 -384 1408 ) ( 512 512 1792 ) ( 128 512 1792 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 512 512 1792 ) ( 512 512 1920 ) ( 128 512 1920 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 512 -384 1536 ) ( 512 512 1920 ) ( 512 512 1792 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 29 +{ +( 128 -768 1408 ) ( 128 -767 1408 ) ( 128 -768 1409 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 -768 1408 ) ( 128 -768 1409 ) ( 129 -768 1408 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 -768 1408 ) ( 129 -768 1408 ) ( 128 -767 1408 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 256 -384 1536 ) ( 256 -383 1536 ) ( 257 -384 1536 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 256 -384 1536 ) ( 257 -384 1536 ) ( 256 -384 1537 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 512 -384 1536 ) ( 512 -384 1537 ) ( 512 -383 1536 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 30 +{ +( -640 -384 1280 ) ( -640 -768 1280 ) ( -640 -768 1152 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -640 -384 1280 ) ( 128 -384 1536 ) ( 128 -768 1536 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -640 -768 1280 ) ( 128 -768 1536 ) ( 128 -768 1408 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 -384 1408 ) ( 128 -384 1536 ) ( -640 -384 1280 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 -768 1408 ) ( 128 -384 1408 ) ( -640 -384 1152 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 -768 1536 ) ( 128 -384 1536 ) ( 128 -384 1408 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 31 +{ +( -1152 -512 1152 ) ( -1152 -511 1152 ) ( -1152 -512 1153 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1152 -768 1152 ) ( -1152 -768 1153 ) ( -1151 -768 1152 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1152 -512 1152 ) ( -1151 -512 1152 ) ( -1152 -511 1152 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -640 -384 1280 ) ( -640 -383 1280 ) ( -639 -384 1280 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -640 -384 1280 ) ( -639 -384 1280 ) ( -640 -384 1281 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -640 -384 1280 ) ( -640 -384 1281 ) ( -640 -383 1280 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 32 +{ +( -1152 256 896 ) ( -1152 -384 1280 ) ( -1152 -384 1152 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1152 -384 1280 ) ( -640 -384 1280 ) ( -640 -384 1152 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -640 -384 1152 ) ( -640 128 896 ) ( -1152 128 896 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -640 128 896 ) ( -640 256 896 ) ( -1152 256 896 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -640 -384 1280 ) ( -1152 -384 1280 ) ( -1152 256 896 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 -384 1280 ) ( -768 256 896 ) ( -768 128 896 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 33 +{ +( 128 512 4736 ) ( 128 513 4736 ) ( 128 512 4737 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 512 4736 ) ( 128 512 4737 ) ( 129 512 4736 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 128 512 4736 ) ( 129 512 4736 ) ( 128 513 4736 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 512 896 4864 ) ( 512 897 4864 ) ( 513 896 4864 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 512 896 4864 ) ( 513 896 4864 ) ( 512 896 4865 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( 512 896 4864 ) ( 512 896 4865 ) ( 512 897 4864 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +// brush 34 +{ +( -1152 512 6656 ) ( -1152 513 6656 ) ( -1152 512 6657 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1152 512 6656 ) ( -1152 512 6657 ) ( -1151 512 6656 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -1152 512 6656 ) ( -1151 512 6656 ) ( -1152 513 6656 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 896 6784 ) ( -768 897 6784 ) ( -767 896 6784 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 896 6784 ) ( -767 896 6784 ) ( -768 896 6785 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +( -768 896 6784 ) ( -768 896 6785 ) ( -768 897 6784 ) MustRemove/copper3 0 0 0 1 1 0 0 0 +} +} +// entity 55 +{ +"classname" "func_group" +"_tb_type" "_tb_layer" +"_tb_name" "top" +"_tb_id" "4" +"_tb_layer_sort_index" "3" +"_tb_layer_locked" "1" +// brush 0 +{ +( -768 -768 7808 ) ( -1152 -384 7424 ) ( -1152 -384 7808 ) MustRemove/fancytiles4 73.14285 0 180 1.75 -1 0 0 0 +( 256 -768 7808 ) ( -768 -768 7424 ) ( -768 -768 7808 ) MustRemove/fancytiles4 82.285706 0 0 1.75 1 0 0 0 +( -768 -768 7424 ) ( 640 -384 7424 ) ( -1152 -384 7424 ) MustRemove/fancytiles4 82.285675 -73.14285 0 1.75 -1.75 0 0 0 +( 640 -384 7552 ) ( -768 -768 7552 ) ( -1152 -384 7552 ) MustRemove/fancytiles4 82.285675 -73.14285 0 1.75 -1.75 0 0 0 +( -1152 -384 7424 ) ( 640 -384 7808 ) ( -1152 -384 7808 ) MustRemove/fancytiles4 82.285675 0 0 1.75 1 0 0 0 +( -640 -688 7552 ) ( -640 -416 7680 ) ( -640 -416 7552 ) MustRemove/fancytiles4 -105.14285 0 0 1.75 -1 0 0 0 +} +// brush 1 +{ +( -1152 -384 7424 ) ( -1152 -383 7424 ) ( -1152 -384 7425 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( -1152 -384 7424 ) ( -1152 -384 7425 ) ( -1151 -384 7424 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( -1152 -384 7424 ) ( -1151 -384 7424 ) ( -1152 -383 7424 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( -640 640 7552 ) ( -640 641 7552 ) ( -639 640 7552 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( -640 640 7552 ) ( -639 640 7552 ) ( -640 640 7553 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( -640 640 7552 ) ( -640 640 7553 ) ( -640 641 7552 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +} +// brush 2 +{ +( -640 -384 7424 ) ( -640 -383 7424 ) ( -640 -384 7425 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( -640 -384 7424 ) ( -640 -384 7425 ) ( -639 -384 7424 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( -640 -384 7424 ) ( -639 -384 7424 ) ( -640 -383 7424 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 128 -128 7552 ) ( 128 -127 7552 ) ( 129 -128 7552 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 128 -128 7552 ) ( 129 -128 7552 ) ( 128 -128 7553 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 128 -128 7552 ) ( 128 -128 7553 ) ( 128 -127 7552 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +} +// brush 3 +{ +( 128 -384 7424 ) ( 128 -383 7424 ) ( 128 -384 7425 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 128 -384 7424 ) ( 128 -384 7425 ) ( 129 -384 7424 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 128 -384 7424 ) ( 129 -384 7424 ) ( 128 -383 7424 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 640 640 7552 ) ( 640 641 7552 ) ( 641 640 7552 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 640 640 7552 ) ( 641 640 7552 ) ( 640 640 7553 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 640 640 7552 ) ( 640 640 7553 ) ( 640 641 7552 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +} +// brush 4 +{ +( 128 -688 7552 ) ( 128 -416 7552 ) ( 128 -416 7680 ) MustRemove/fancytiles4 -105.14285 0 0 1.75 -1 0 0 0 +( -768 -768 7808 ) ( 256 -768 7808 ) ( 256 -768 7424 ) MustRemove/fancytiles4 45.71428 0 180 1.75 -1 0 0 0 +( 256 -768 7424 ) ( 640 -384 7424 ) ( -1152 -384 7424 ) MustRemove/fancytiles4 45.71428 -73.14285 180 1.75 1.75 0 0 0 +( -1152 -384 7552 ) ( 640 -384 7552 ) ( 256 -768 7552 ) MustRemove/fancytiles4 45.71428 -73.14285 180 1.75 1.75 0 0 0 +( 640 -384 7424 ) ( 640 -384 7808 ) ( -1152 -384 7808 ) MustRemove/fancytiles4 45.71428 0 180 1.75 -1 0 0 0 +( 256 -768 7808 ) ( 640 -384 7808 ) ( 640 -384 7424 ) MustRemove/fancytiles4 73.14285 0 180 1.75 -1 0 0 0 +} +// brush 5 +{ +( -768 1024 7808 ) ( -1152 640 7808 ) ( -1152 640 7424 ) MustRemove/fancytiles4 -73.14285 0 0 1.75 1 0 0 0 +( -1152 640 7808 ) ( 640 640 7808 ) ( 640 640 7424 ) MustRemove/fancytiles4 -45.71428 0 0 1.75 1 0 0 0 +( -1152 640 7424 ) ( 640 640 7424 ) ( 256 1024 7424 ) MustRemove/fancytiles4 -45.71428 73.14285 0 1.75 1.75 0 0 0 +( 256 1024 7552 ) ( 640 640 7552 ) ( -1152 640 7552 ) MustRemove/fancytiles4 -45.71428 73.14285 0 1.75 1.75 0 0 0 +( 256 1024 7424 ) ( 256 1024 7808 ) ( -768 1024 7808 ) MustRemove/fancytiles4 -45.71428 0 0 1.75 1 0 0 0 +( 640 640 7424 ) ( 640 640 7808 ) ( 256 1024 7808 ) MustRemove/fancytiles4 -41.142853 0 0 1.75 1 0 0 0 +} +// brush 6 +{ +( -640 640 7840 ) ( -640 -384 7840 ) ( -640 -384 7456 ) MustRemove/fancytiles1 -73.14286 -96 0 1.75 1 0 0 0 +( -1152 -128 7840 ) ( 640 -128 7840 ) ( 640 -128 7456 ) MustRemove/fancytiles1 -45.71428 -96 0 1.75 1 0 0 0 +( 640 -384 7456 ) ( 640 640 7456 ) ( -1152 640 7456 ) MustRemove/fancytiles1 -45.71428 73.14286 0 1.75 1.75 0 0 0 +( -1152 640 7584 ) ( 640 640 7584 ) ( 640 -384 7584 ) MustRemove/fancytiles1 -45.71428 73.14286 0 1.75 1.75 0 0 0 +( 640 640 7456 ) ( 640 640 7840 ) ( -1152 640 7840 ) MustRemove/fancytiles1 -45.71428 -96 0 1.75 1 0 0 0 +( 128 -384 7840 ) ( 128 640 7840 ) ( 128 640 7456 ) MustRemove/fancytiles1 -73.14286 -96 0 1.75 1 0 0 0 +} +} +// entity 56 +{ +"classname" "light" +"origin" "-904 376 7944" +"light" "600" +"_tb_layer" "4" +} +// entity 57 +{ +"classname" "light" +"origin" "-264 888 7944" +"light" "600" +"_tb_layer" "4" +} +// entity 58 +{ +"classname" "light" +"origin" "504 376 7944" +"light" "600" +"_tb_layer" "4" +} +// entity 59 +{ +"classname" "light" +"origin" "-136 -392 7944" +"light" "600" +"_tb_layer" "4" +} +// entity 60 +{ +"classname" "light" +"origin" "264 632 5384" +"light" "700" +"_tb_layer" "4" +} +// entity 61 +{ +"classname" "light" +"origin" "392 760 6792" +"light" "700" +"_tb_layer" "4" +} +// entity 62 +{ +"classname" "light" +"origin" "-888 504 7176" +"light" "700" +"_tb_layer" "4" +} +// entity 63 +{ +"classname" "light" +"origin" "-888 -520 7304" +"light" "700" +"_tb_layer" "4" +} +// entity 64 +{ +"classname" "light" +"origin" "392 -392 7816" +"light" "700" +"_tb_layer" "4" +} diff --git a/sourcefiles/mapsrc/start.map b/sourcefiles/mapsrc/start.map @@ -0,0 +1,190 @@ +// Game: FANGFLECKED +// Format: Quake3 (legacy) +// entity 0 +{ +"classname" "worldspawn" +"_tb_textures" "maptex;maptex/MustRemove;maptex/placeholder" +"message" "" +"_keepLights" "1" +// brush 0 +{ +( 32 -80 -336 ) ( 32 -79 -336 ) ( 32 -80 -335 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 32 -560 -336 ) ( 32 -560 -335 ) ( 33 -560 -336 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 32 -80 -336 ) ( 33 -80 -336 ) ( 32 -79 -336 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 160 48 -304 ) ( 160 49 -304 ) ( 161 48 -304 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 160 48 -304 ) ( 161 48 -304 ) ( 160 48 -303 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 784 48 -304 ) ( 784 48 -303 ) ( 784 49 -304 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +} +// brush 1 +{ +( 32 -80 -64 ) ( 32 -79 -64 ) ( 32 -80 -63 ) MustRemove/marble1 0 0 0 1 1 0 0 0 +( 32 -560 -64 ) ( 32 -560 -63 ) ( 33 -560 -64 ) MustRemove/marble1 0 0 0 1 1 0 0 0 +( 32 -80 -64 ) ( 33 -80 -64 ) ( 32 -79 -64 ) MustRemove/marble1 0 0 0 1 1 0 0 0 +( 160 48 -32 ) ( 160 49 -32 ) ( 161 48 -32 ) MustRemove/marble1 0 0 0 1 1 0 0 0 +( 160 48 -32 ) ( 161 48 -32 ) ( 160 48 -31 ) MustRemove/marble1 0 0 0 1 1 0 0 0 +( 784 48 -32 ) ( 784 48 -31 ) ( 784 49 -32 ) MustRemove/marble1 0 0 0 1 1 0 0 0 +} +// brush 2 +{ +( 48 -560 -304 ) ( 48 -559 -304 ) ( 48 -560 -303 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 32 -560 -304 ) ( 32 -560 -303 ) ( 33 -560 -304 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 32 -560 -304 ) ( 33 -560 -304 ) ( 32 -559 -304 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 608 -544 -64 ) ( 608 -543 -64 ) ( 609 -544 -64 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 608 -544 -288 ) ( 609 -544 -288 ) ( 608 -544 -287 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 608 -544 -288 ) ( 608 -544 -287 ) ( 608 -543 -288 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +} +// brush 3 +{ +( 48 32 -304 ) ( 48 33 -304 ) ( 48 32 -303 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 176 32 -304 ) ( 176 32 -303 ) ( 177 32 -304 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 176 32 -304 ) ( 177 32 -304 ) ( 176 33 -304 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 752 48 -64 ) ( 752 49 -64 ) ( 753 48 -64 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 752 48 -288 ) ( 753 48 -288 ) ( 752 48 -287 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 768 48 -288 ) ( 768 48 -287 ) ( 768 49 -288 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +} +// brush 4 +{ +( 32 -560 -304 ) ( 32 -559 -304 ) ( 32 -560 -303 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 32 -560 -304 ) ( 32 -560 -303 ) ( 33 -560 -304 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 32 -560 -304 ) ( 33 -560 -304 ) ( 32 -559 -304 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 48 48 -64 ) ( 48 49 -64 ) ( 49 48 -64 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 48 48 -288 ) ( 49 48 -288 ) ( 48 48 -287 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 48 48 -288 ) ( 48 48 -287 ) ( 48 49 -288 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +} +// brush 5 +{ +( 768 -560 -304 ) ( 768 -559 -304 ) ( 768 -560 -303 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 768 -560 -304 ) ( 768 -560 -303 ) ( 769 -560 -304 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 768 -560 -304 ) ( 769 -560 -304 ) ( 768 -559 -304 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 784 48 -64 ) ( 784 49 -64 ) ( 785 48 -64 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 784 48 -288 ) ( 785 48 -288 ) ( 784 48 -287 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 784 48 -288 ) ( 784 48 -287 ) ( 784 49 -288 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +} +// brush 6 +{ +( 592 -592 -320 ) ( 592 -591 -320 ) ( 592 -592 -319 ) MustRemove/marble1 0 0 0 1 1 0 0 0 +( 608 -736 -320 ) ( 608 -736 -319 ) ( 609 -736 -320 ) MustRemove/marble1 0 0 0 1 1 0 0 0 +( 608 -592 -320 ) ( 609 -592 -320 ) ( 608 -591 -320 ) MustRemove/marble1 0 0 0 1 1 0 0 0 +( 784 -560 -304 ) ( 784 -559 -304 ) ( 785 -560 -304 ) MustRemove/marble1 0 0 0 1 1 0 0 0 +( 784 -560 -304 ) ( 785 -560 -304 ) ( 784 -560 -303 ) MustRemove/marble1 0 0 0 1 1 0 0 0 +( 784 -560 -304 ) ( 784 -560 -303 ) ( 784 -559 -304 ) MustRemove/marble1 0 0 0 1 1 0 0 0 +} +// brush 7 +{ +( 592 -592 -128 ) ( 592 -591 -128 ) ( 592 -592 -127 ) MustRemove/marble1 0 0 0 1 1 0 0 0 +( 608 -736 -128 ) ( 608 -736 -127 ) ( 609 -736 -128 ) MustRemove/marble1 0 0 0 1 1 0 0 0 +( 608 -592 -128 ) ( 609 -592 -128 ) ( 608 -591 -128 ) MustRemove/marble1 0 0 0 1 1 0 0 0 +( 784 -560 -112 ) ( 784 -559 -112 ) ( 785 -560 -112 ) MustRemove/marble1 0 0 0 1 1 0 0 0 +( 784 -560 -112 ) ( 785 -560 -112 ) ( 784 -560 -111 ) MustRemove/marble1 0 0 0 1 1 0 0 0 +( 784 -560 -112 ) ( 784 -560 -111 ) ( 784 -559 -112 ) MustRemove/marble1 0 0 0 1 1 0 0 0 +} +// brush 8 +{ +( 768 -736 -304 ) ( 768 -735 -304 ) ( 768 -736 -303 ) MustRemove/marble1 0 0 0 1 1 0 0 0 +( 768 -736 -304 ) ( 768 -736 -303 ) ( 769 -736 -304 ) MustRemove/marble1 0 0 0 1 1 0 0 0 +( 768 -736 -304 ) ( 769 -736 -304 ) ( 768 -735 -304 ) MustRemove/marble1 0 0 0 1 1 0 0 0 +( 784 -560 -128 ) ( 784 -559 -128 ) ( 785 -560 -128 ) MustRemove/marble1 0 0 0 1 1 0 0 0 +( 784 -560 -288 ) ( 785 -560 -288 ) ( 784 -560 -287 ) MustRemove/marble1 0 0 0 1 1 0 0 0 +( 784 -560 -288 ) ( 784 -560 -287 ) ( 784 -559 -288 ) MustRemove/marble1 0 0 0 1 1 0 0 0 +} +// brush 9 +{ +( 592 -736 -304 ) ( 592 -735 -304 ) ( 592 -736 -303 ) MustRemove/marble1 0 0 0 1 1 0 0 0 +( 592 -736 -304 ) ( 592 -736 -303 ) ( 593 -736 -304 ) MustRemove/marble1 0 0 0 1 1 0 0 0 +( 592 -736 -304 ) ( 593 -736 -304 ) ( 592 -735 -304 ) MustRemove/marble1 0 0 0 1 1 0 0 0 +( 608 -560 -128 ) ( 608 -559 -128 ) ( 609 -560 -128 ) MustRemove/marble1 0 0 0 1 1 0 0 0 +( 608 -560 -288 ) ( 609 -560 -288 ) ( 608 -560 -287 ) MustRemove/marble1 0 0 0 1 1 0 0 0 +( 608 -560 -288 ) ( 608 -560 -287 ) ( 608 -559 -288 ) MustRemove/marble1 0 0 0 1 1 0 0 0 +} +// brush 10 +{ +( 608 -736 -304 ) ( 608 -735 -304 ) ( 608 -736 -303 ) MustRemove/marble1 0 0 0 1 1 0 0 0 +( 608 -736 -304 ) ( 608 -736 -303 ) ( 609 -736 -304 ) MustRemove/marble1 0 0 0 1 1 0 0 0 +( 608 -736 -304 ) ( 609 -736 -304 ) ( 608 -735 -304 ) MustRemove/marble1 0 0 0 1 1 0 0 0 +( 768 -720 -128 ) ( 768 -719 -128 ) ( 769 -720 -128 ) MustRemove/marble1 0 0 0 1 1 0 0 0 +( 768 -720 -288 ) ( 769 -720 -288 ) ( 768 -720 -287 ) MustRemove/marble1 0 0 0 1 1 0 0 0 +( 768 -720 -288 ) ( 768 -720 -287 ) ( 768 -719 -288 ) MustRemove/marble1 0 0 0 1 1 0 0 0 +} +// brush 11 +{ +( 592 -576 -112 ) ( 592 -575 -112 ) ( 592 -576 -111 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 592 -576 -112 ) ( 592 -576 -111 ) ( 593 -576 -112 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 592 -576 -112 ) ( 593 -576 -112 ) ( 592 -575 -112 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 784 -560 -32 ) ( 784 -559 -32 ) ( 785 -560 -32 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 784 -560 -96 ) ( 785 -560 -96 ) ( 784 -560 -95 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +( 784 -560 -96 ) ( 784 -560 -95 ) ( 784 -559 -96 ) MustRemove/marble2 0 0 0 1 1 0 0 0 +} +} +// entity 1 +{ +"classname" "trigger_mapend" +"map" "box2" +"message" "All players must be in the exit" +// brush 0 +{ +( 608 -688 -304 ) ( 608 -687 -304 ) ( 608 -688 -303 ) spitwad 0 0 0 1 1 0 0 0 +( 608 -720 -304 ) ( 608 -720 -303 ) ( 609 -720 -304 ) spitwad 0 0 0 1 1 0 0 0 +( 608 -688 -304 ) ( 609 -688 -304 ) ( 608 -687 -304 ) spitwad 0 0 0 1 1 0 0 0 +( 768 -592 -160 ) ( 768 -591 -160 ) ( 769 -592 -160 ) spitwad 0 0 0 1 1 0 0 0 +( 768 -592 -288 ) ( 769 -592 -288 ) ( 768 -592 -287 ) spitwad 0 0 0 1 1 0 0 0 +( 768 -592 -288 ) ( 768 -592 -287 ) ( 768 -591 -288 ) spitwad 0 0 0 1 1 0 0 0 +} +} +// entity 2 +{ +"classname" "info_player_start" +"origin" "128 -32 -264" +} +// entity 3 +{ +"classname" "mesh_bigcandle" +"origin" "456 -296 -296" +"light" "15" +} +// entity 4 +{ +"classname" "mesh_bigcandle" +"origin" "472 -264 -296" +"light" "15" +} +// entity 5 +{ +"classname" "mesh_bigcandle" +"origin" "424 -312 -296" +"light" "15" +} +// entity 6 +{ +"classname" "mesh_bigcandle" +"origin" "424 -264 -296" +"property 1" "light 15" +} +// entity 7 +{ +"classname" "mesh_bigcandle" +"origin" "488 -328 -296" +"light" "15" +} +// entity 8 +{ +"classname" "mesh_chandelier1" +"origin" "456 -296 -72" +"light" "40" +} +// entity 9 +{ +"classname" "light" +"origin" "472 -376 -88" +"light" "100" +} +// entity 10 +{ +"classname" "light" +"origin" "440 -280 -296" +"light" "30" +} +// entity 11 +{ +"classname" "light" +"origin" "232 -88 -264" +} diff --git a/sourcefiles/mapsrc/strawberry.map b/sourcefiles/mapsrc/strawberry.map @@ -0,0 +1,1704 @@ +// Game: FANGFLECKED +// Format: Quake3 (legacy) +// entity 0 +{ +"classname" "worldspawn" +"_tb_textures" "textures;textures/MustRemove;textures/placeholder" +"_keepLights" "1" +// brush 0 +{ +( -32 -48 -86 ) ( -32 64 -70 ) ( -32 -48 -70 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -16 -48 -86 ) ( 128 -48 -70 ) ( 128 -48 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -16 -48 -192 ) ( 128 64 -192 ) ( -16 64 -192 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -16 -48 400 ) ( 128 64 400 ) ( 128 -48 400 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -16 64 -86 ) ( 128 64 -70 ) ( -16 64 -70 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 112 -48 -86 ) ( 112 64 -70 ) ( 112 64 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 1 +{ +( -32 -448 -86 ) ( -32 -336 -70 ) ( -32 -448 -70 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -16 -448 -86 ) ( 128 -448 -70 ) ( 128 -448 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -16 -448 -192 ) ( 128 -336 -192 ) ( -16 -336 -192 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -16 -448 400 ) ( 128 -336 400 ) ( 128 -448 400 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -16 -336 -86 ) ( 128 -336 -70 ) ( -16 -336 -70 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 112 -448 -86 ) ( 112 -336 -70 ) ( 112 -336 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 2 +{ +( -16 -304 -198 ) ( -16 64 -182 ) ( -16 -304 -182 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 128 -336 -86 ) ( 224 -336 42 ) ( 224 -336 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 48 -304 -192 ) ( 432 64 -192 ) ( 48 64 -192 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 48 -304 -150 ) ( 432 64 -150 ) ( 432 -304 -150 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 160 -48 -86 ) ( 304 -48 -86 ) ( 304 -48 42 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 16 -64 -86 ) ( 16 -176 -86 ) ( 16 -176 42 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 3 +{ +( 16 -64 -86 ) ( 16 -176 42 ) ( 16 -176 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 128 -336 -86 ) ( 224 -336 42 ) ( 224 -336 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 48 -304 -192 ) ( 432 64 -192 ) ( 48 64 -192 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 48 -304 -134 ) ( 432 64 -134 ) ( 432 -304 -134 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 160 -48 -86 ) ( 304 -48 -86 ) ( 304 -48 42 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 48 -64 -86 ) ( 48 -176 -86 ) ( 48 -176 42 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 4 +{ +( 48 -64 -86 ) ( 48 -176 42 ) ( 48 -176 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 128 -336 -86 ) ( 224 -336 42 ) ( 224 -336 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 48 -304 -192 ) ( 432 64 -192 ) ( 48 64 -192 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 48 -304 -118 ) ( 432 64 -118 ) ( 432 -304 -118 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 160 -48 -86 ) ( 304 -48 -86 ) ( 304 -48 42 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 80 -64 -86 ) ( 80 -176 -86 ) ( 80 -176 42 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 5 +{ +( 80 -64 -86 ) ( 80 -176 42 ) ( 80 -176 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 128 -336 -86 ) ( 224 -336 42 ) ( 224 -336 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 48 -304 -192 ) ( 432 64 -192 ) ( 48 64 -192 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 48 -304 -102 ) ( 432 64 -102 ) ( 432 -304 -102 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 160 -48 -86 ) ( 304 -48 -86 ) ( 304 -48 42 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 112 -64 -86 ) ( 112 -176 -86 ) ( 112 -176 42 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 6 +{ +( -112 -224 -198 ) ( -112 -48 -182 ) ( -112 -224 -182 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -112 -368 -198 ) ( -64 -368 -182 ) ( -64 -368 -198 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -112 -224 -192 ) ( -64 -48 -192 ) ( -112 -48 -192 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -112 -224 -182 ) ( -64 -48 -182 ) ( -64 -224 -182 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -112 -16 -198 ) ( -64 -16 -182 ) ( -112 -16 -182 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -64 -224 -198 ) ( -64 -48 -182 ) ( -64 -48 -198 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 7 +{ +( -64 -224 -198 ) ( -64 -48 -182 ) ( -64 -224 -182 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -64 -368 -198 ) ( -16 -368 -182 ) ( -16 -368 -198 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -64 -224 -192 ) ( -16 -48 -192 ) ( -64 -48 -192 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -64 -224 -166 ) ( -16 -48 -166 ) ( -16 -224 -166 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -64 -16 -198 ) ( -16 -16 -182 ) ( -64 -16 -182 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -32 -64 -166 ) ( -32 -160 -166 ) ( -32 -160 -38 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 8 +{ +( -32 -64 -166 ) ( -32 -160 -38 ) ( -32 -160 -166 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -64 -336 -198 ) ( -16 -336 -182 ) ( -16 -336 -198 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -64 -224 -192 ) ( -16 -48 -192 ) ( -64 -48 -192 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -64 -224 -166 ) ( -16 -48 -166 ) ( -16 -224 -166 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -64 -48 -198 ) ( -16 -48 -182 ) ( -64 -48 -182 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -16 -224 -198 ) ( -16 -48 -182 ) ( -16 -48 -198 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 9 +{ +( 112 32 -86 ) ( 112 48 -86 ) ( 112 48 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 112 32 250 ) ( 208 32 250 ) ( 208 32 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 208 48 -86 ) ( 112 48 -86 ) ( 112 32 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 176 48 170 ) ( 128 48 170 ) ( 128 176 170 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 208 48 -86 ) ( 208 48 250 ) ( 112 48 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 176 32 250 ) ( 176 48 250 ) ( 176 48 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 10 +{ +( 112 48 170 ) ( 112 48 250 ) ( 112 32 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 112 32 250 ) ( 208 32 250 ) ( 176 32 170 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 112 32 170 ) ( 176 32 170 ) ( 176 48 170 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 112 48 250 ) ( 208 48 250 ) ( 208 32 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 176 48 170 ) ( 208 48 250 ) ( 112 48 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 208 32 250 ) ( 208 48 250 ) ( 176 48 170 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 11 +{ +( 224 48 250 ) ( 224 32 250 ) ( 256 32 170 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 224 32 250 ) ( 352 32 250 ) ( 320 32 170 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 320 32 170 ) ( 320 48 170 ) ( 256 48 170 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 224 48 250 ) ( 352 48 250 ) ( 352 32 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 320 48 170 ) ( 352 48 250 ) ( 224 48 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 352 32 250 ) ( 352 48 250 ) ( 320 48 170 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 12 +{ +( 256 32 250 ) ( 256 32 -86 ) ( 256 48 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 352 32 -86 ) ( 208 32 -86 ) ( 208 32 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 208 48 -86 ) ( 208 32 -86 ) ( 352 32 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 272 48 170 ) ( 304 176 170 ) ( 304 48 170 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 352 48 250 ) ( 208 48 250 ) ( 208 48 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 320 32 -86 ) ( 320 32 250 ) ( 320 48 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 13 +{ +( 400 48 170 ) ( 368 48 250 ) ( 368 32 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 368 32 250 ) ( 688 32 250 ) ( 688 32 170 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 400 48 170 ) ( 400 32 170 ) ( 688 32 170 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 368 32 250 ) ( 368 48 250 ) ( 688 48 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 688 48 250 ) ( 368 48 250 ) ( 400 48 170 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 688 32 250 ) ( 688 48 250 ) ( 688 48 170 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 14 +{ +( 400 32 170 ) ( 400 32 -86 ) ( 400 48 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 688 32 170 ) ( 688 32 -86 ) ( 400 32 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 400 32 -86 ) ( 688 32 -86 ) ( 688 48 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 688 48 170 ) ( 688 32 170 ) ( 400 32 170 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 688 48 -86 ) ( 688 48 170 ) ( 400 48 170 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 688 48 -86 ) ( 688 32 -86 ) ( 688 32 170 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 15 +{ +( 112 -432 -86 ) ( 112 -416 -86 ) ( 112 -416 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 112 -432 250 ) ( 208 -432 250 ) ( 208 -432 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 208 -416 -86 ) ( 112 -416 -86 ) ( 112 -432 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 176 -416 170 ) ( 128 -416 170 ) ( 128 -288 170 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 208 -416 -86 ) ( 208 -416 250 ) ( 112 -416 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 176 -432 250 ) ( 176 -416 250 ) ( 176 -416 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 16 +{ +( 112 -416 170 ) ( 112 -416 250 ) ( 112 -432 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 112 -432 250 ) ( 208 -432 250 ) ( 176 -432 170 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 112 -432 170 ) ( 176 -432 170 ) ( 176 -416 170 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 112 -416 250 ) ( 208 -416 250 ) ( 208 -432 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 176 -416 170 ) ( 208 -416 250 ) ( 112 -416 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 208 -432 250 ) ( 208 -416 250 ) ( 176 -416 170 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 17 +{ +( 224 -416 250 ) ( 224 -432 250 ) ( 256 -432 170 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 224 -432 250 ) ( 352 -432 250 ) ( 320 -432 170 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 320 -432 170 ) ( 320 -416 170 ) ( 256 -416 170 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 224 -416 250 ) ( 352 -416 250 ) ( 352 -432 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 320 -416 170 ) ( 352 -416 250 ) ( 224 -416 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 352 -432 250 ) ( 352 -416 250 ) ( 320 -416 170 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 18 +{ +( 256 -432 250 ) ( 256 -432 -86 ) ( 256 -416 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 352 -432 -86 ) ( 208 -432 -86 ) ( 208 -432 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 208 -416 -86 ) ( 208 -432 -86 ) ( 352 -432 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 272 -416 170 ) ( 304 -288 170 ) ( 304 -416 170 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 352 -416 250 ) ( 208 -416 250 ) ( 208 -416 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 320 -432 -86 ) ( 320 -432 250 ) ( 320 -416 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 19 +{ +( 400 -432 -86 ) ( 400 -416 -86 ) ( 400 -416 170 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 688 -432 -86 ) ( 400 -432 -86 ) ( 400 -432 170 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 688 -416 -86 ) ( 400 -416 -86 ) ( 400 -432 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 400 -432 170 ) ( 400 -416 170 ) ( 688 -416 170 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 400 -416 170 ) ( 400 -416 -86 ) ( 688 -416 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 688 -416 170 ) ( 688 -416 -86 ) ( 688 -432 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 20 +{ +( 400 -416 170 ) ( 368 -416 250 ) ( 368 -432 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 368 -432 250 ) ( 688 -432 250 ) ( 688 -432 170 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 400 -416 170 ) ( 400 -432 170 ) ( 688 -432 170 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 368 -432 250 ) ( 368 -416 250 ) ( 688 -416 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 688 -416 250 ) ( 368 -416 250 ) ( 400 -416 170 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 688 -432 250 ) ( 688 -416 250 ) ( 688 -416 170 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 21 +{ +( 112 -64 -86 ) ( 112 -176 42 ) ( 112 -176 -86 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 128 -336 -86 ) ( 224 -336 42 ) ( 224 -336 -86 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 48 -304 -192 ) ( 432 64 -192 ) ( 48 64 -192 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 48 -304 -86 ) ( 432 64 -86 ) ( 432 -304 -86 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 160 -48 -86 ) ( 304 -48 -86 ) ( 304 -48 42 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 592 -16 -86 ) ( 592 -208 -86 ) ( 592 -208 42 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +} +// brush 22 +{ +( 112 48 -86 ) ( 112 -48 -86 ) ( 112 -48 -198 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 112 -48 -198 ) ( 112 -48 -86 ) ( 784 -48 -86 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 112 48 -192 ) ( 112 -48 -192 ) ( 784 -48 -192 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 784 -48 -86 ) ( 112 -48 -86 ) ( 112 48 -86 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 112 48 -198 ) ( 688 48 -198 ) ( 688 48 -86 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 592 -16 -86 ) ( 592 -208 -86 ) ( 592 -208 42 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +} +// brush 23 +{ +( 112 -432 -198 ) ( 112 -336 -198 ) ( 112 -336 -86 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 688 -432 -198 ) ( 112 -432 -198 ) ( 112 -432 -86 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 784 -336 -192 ) ( 112 -336 -192 ) ( 112 -432 -192 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 112 -336 -86 ) ( 784 -336 -86 ) ( 688 -432 -86 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 112 -336 -86 ) ( 112 -336 -198 ) ( 784 -336 -198 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 592 -160 -86 ) ( 592 -352 -86 ) ( 592 -352 42 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +} +// brush 24 +{ +( 592 -48 -86 ) ( 592 -48 -198 ) ( 592 16 -198 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 784 -48 -86 ) ( 784 -48 -198 ) ( 592 -48 -198 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 592 -48 -192 ) ( 784 -48 -192 ) ( 752 16 -192 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 752 16 -86 ) ( 784 -48 -86 ) ( 592 -48 -86 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 752 16 -198 ) ( 752 16 -86 ) ( 592 16 -86 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 752 16 -198 ) ( 784 -48 -198 ) ( 784 -48 -86 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +} +// brush 25 +{ +( 592 48 -198 ) ( 592 48 -86 ) ( 592 16 -86 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 752 16 -86 ) ( 752 16 -198 ) ( 592 16 -198 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 592 16 -192 ) ( 752 16 -192 ) ( 688 48 -192 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 592 48 -86 ) ( 688 48 -86 ) ( 752 16 -86 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 592 48 -198 ) ( 688 48 -198 ) ( 688 48 -86 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 688 48 -198 ) ( 752 16 -198 ) ( 752 16 -86 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +} +// brush 26 +{ +( 592 -400 -86 ) ( 592 -432 -86 ) ( 592 -432 -198 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 592 -432 -198 ) ( 592 -432 -86 ) ( 688 -432 -86 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 752 -400 -192 ) ( 592 -400 -192 ) ( 592 -432 -192 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 688 -432 -86 ) ( 592 -432 -86 ) ( 592 -400 -86 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 592 -400 -86 ) ( 592 -400 -198 ) ( 752 -400 -198 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 688 -432 -198 ) ( 688 -432 -86 ) ( 752 -400 -86 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +} +// brush 27 +{ +( 592 -400 -198 ) ( 592 -336 -198 ) ( 592 -336 -86 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 592 -400 -198 ) ( 592 -400 -86 ) ( 752 -400 -86 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 752 -400 -192 ) ( 784 -336 -192 ) ( 592 -336 -192 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 592 -400 -86 ) ( 592 -336 -86 ) ( 784 -336 -86 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 592 -336 -198 ) ( 784 -336 -198 ) ( 784 -336 -86 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 784 -336 -86 ) ( 784 -336 -198 ) ( 752 -400 -198 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +} +// brush 28 +{ +( 688 -432 -86 ) ( 688 -416 -86 ) ( 688 -416 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 688 -416 250 ) ( 688 -416 -86 ) ( 736 -384 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 736 -384 -86 ) ( 688 -416 -86 ) ( 688 -432 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 688 -432 250 ) ( 688 -416 250 ) ( 736 -384 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 752 -400 250 ) ( 752 -400 -86 ) ( 688 -432 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 736 -384 -86 ) ( 752 -400 -86 ) ( 752 -400 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 29 +{ +( 768 -336 -86 ) ( 768 -336 250 ) ( 736 -384 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 736 -384 250 ) ( 752 -400 250 ) ( 752 -400 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 752 -400 -86 ) ( 784 -336 -86 ) ( 768 -336 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 736 -384 250 ) ( 768 -336 250 ) ( 784 -336 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 768 -336 -86 ) ( 784 -336 -86 ) ( 784 -336 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 784 -336 250 ) ( 784 -336 -86 ) ( 752 -400 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 30 +{ +( 688 48 250 ) ( 688 32 250 ) ( 688 32 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 688 32 250 ) ( 736 0 250 ) ( 736 0 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 688 32 -86 ) ( 736 0 -86 ) ( 752 16 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 752 16 250 ) ( 736 0 250 ) ( 688 32 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 752 16 -86 ) ( 752 16 250 ) ( 688 48 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 736 0 -86 ) ( 736 0 250 ) ( 752 16 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 31 +{ +( 768 -48 -86 ) ( 736 0 -86 ) ( 736 0 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 736 0 250 ) ( 736 0 -86 ) ( 752 16 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 768 -48 250 ) ( 784 -48 250 ) ( 784 -48 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 752 16 -86 ) ( 736 0 -86 ) ( 768 -48 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 752 16 250 ) ( 784 -48 250 ) ( 768 -48 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 784 -48 -86 ) ( 784 -48 250 ) ( 752 16 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 32 +{ +( 592 -288 -86 ) ( 592 -336 -86 ) ( 592 -336 -198 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 592 -336 -198 ) ( 592 -336 -86 ) ( 784 -336 -86 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 592 -288 -192 ) ( 592 -336 -192 ) ( 784 -336 -192 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 784 -336 -86 ) ( 592 -336 -86 ) ( 592 -288 -86 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 800 -288 -86 ) ( 592 -288 -86 ) ( 592 -288 -198 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 784 -336 -198 ) ( 784 -336 -86 ) ( 800 -288 -86 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +} +// brush 33 +{ +( 592 -96 -198 ) ( 592 -96 -86 ) ( 592 -144 -86 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( 800 -288 -198 ) ( 592 -288 -198 ) ( 592 -288 -86 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( 800 -96 -192 ) ( 592 -96 -192 ) ( 592 -144 -192 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( 592 -144 -80 ) ( 592 -96 -80 ) ( 800 -96 -80 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( 800 -96 -86 ) ( 592 -96 -86 ) ( 592 -96 -198 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( 800 -96 -198 ) ( 800 -144 -198 ) ( 800 -144 -86 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +} +// brush 34 +{ +( 592 -48 -86 ) ( 592 -96 -86 ) ( 592 -96 -198 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 592 -96 -198 ) ( 592 -96 -86 ) ( 800 -96 -86 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 784 -48 -192 ) ( 592 -48 -192 ) ( 592 -96 -192 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 800 -96 -86 ) ( 592 -96 -86 ) ( 592 -48 -86 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 784 -48 -86 ) ( 592 -48 -86 ) ( 592 -48 -198 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +( 784 -48 -86 ) ( 784 -48 -198 ) ( 800 -96 -198 ) MustRemove/fancytiles4 0 0 0 1 1 0 0 0 +} +// brush 35 +{ +( 784 -96 250 ) ( 784 -96 -86 ) ( 768 -48 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 800 -96 -86 ) ( 784 -96 -86 ) ( 784 -96 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 768 -48 -86 ) ( 784 -96 -86 ) ( 800 -96 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 768 -48 250 ) ( 784 -48 250 ) ( 800 -96 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 784 -48 -86 ) ( 784 -48 250 ) ( 768 -48 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 800 -96 250 ) ( 784 -48 250 ) ( 784 -48 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 36 +{ +( 784 -96 -86 ) ( 784 -96 250 ) ( 784 -144 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 800 -288 250 ) ( 800 -288 -86 ) ( 784 -288 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 800 -144 192 ) ( 800 -96 192 ) ( 784 -96 192 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 784 -144 250 ) ( 784 -96 250 ) ( 800 -96 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 800 -96 250 ) ( 784 -96 250 ) ( 784 -96 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 800 -144 250 ) ( 800 -96 250 ) ( 800 -96 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 37 +{ +( 784 -288 250 ) ( 768 -336 250 ) ( 768 -336 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 768 -336 -86 ) ( 768 -336 250 ) ( 784 -336 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 784 -336 -86 ) ( 800 -288 -86 ) ( 784 -288 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 784 -336 250 ) ( 768 -336 250 ) ( 784 -288 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 784 -288 -86 ) ( 800 -288 -86 ) ( 800 -288 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 800 -288 250 ) ( 800 -288 -86 ) ( 784 -336 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 38 +{ +( -32 -48 314 ) ( -32 -48 346 ) ( -32 -96 346 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -32 -96 346 ) ( 640 -96 346 ) ( 640 -96 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 640 -96 330 ) ( 640 -48 314 ) ( -32 -48 314 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -32 -48 400 ) ( 640 -48 400 ) ( 640 -96 400 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 640 -48 314 ) ( 640 -48 346 ) ( -32 -48 346 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 640 -96 346 ) ( 640 -48 346 ) ( 640 -48 314 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 39 +{ +( -32 -144 346 ) ( -32 -144 330 ) ( -32 -96 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 640 -288 330 ) ( -32 -288 330 ) ( -32 -288 346 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -32 -96 330 ) ( -32 -144 330 ) ( 640 -144 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 640 -144 400 ) ( -32 -144 400 ) ( -32 -96 400 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -32 -96 346 ) ( -32 -96 330 ) ( 640 -96 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 640 -96 330 ) ( 640 -144 330 ) ( 640 -144 346 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 40 +{ +( -32 -288 330 ) ( -32 -288 346 ) ( -32 -336 346 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -32 -336 314 ) ( -32 -336 346 ) ( 640 -336 346 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -32 -336 400 ) ( -32 -288 400 ) ( 640 -288 400 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -32 -336 314 ) ( 640 -336 314 ) ( 640 -288 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 640 -288 346 ) ( -32 -288 346 ) ( -32 -288 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 640 -336 314 ) ( 640 -336 346 ) ( 640 -288 346 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 41 +{ +( 112 0 346 ) ( 112 0 282 ) ( 112 32 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 640 0 282 ) ( 112 0 282 ) ( 112 0 346 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 112 32 250 ) ( 112 0 282 ) ( 640 0 282 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 112 32 400 ) ( 640 32 400 ) ( 640 0 400 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 640 32 250 ) ( 640 32 346 ) ( 112 32 346 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 640 0 346 ) ( 640 32 346 ) ( 640 32 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 42 +{ +( 112 48 346 ) ( 112 32 346 ) ( 112 32 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 112 32 346 ) ( 640 32 346 ) ( 640 32 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 112 32 250 ) ( 640 32 250 ) ( 640 48 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 112 48 400 ) ( 640 48 400 ) ( 640 32 400 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 640 48 250 ) ( 640 48 346 ) ( 112 48 346 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 640 32 346 ) ( 640 48 346 ) ( 640 48 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 43 +{ +( 112 -48 346 ) ( 112 -48 314 ) ( 112 0 282 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 640 -48 314 ) ( 112 -48 314 ) ( 112 -48 346 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 112 0 282 ) ( 112 -48 314 ) ( 640 -48 314 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 112 0 400 ) ( 640 0 400 ) ( 640 -48 400 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 640 0 282 ) ( 640 0 346 ) ( 112 0 346 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 640 -48 346 ) ( 640 0 346 ) ( 640 0 282 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 44 +{ +( 112 -336 346 ) ( 112 -384 346 ) ( 112 -384 282 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 112 -384 282 ) ( 112 -384 346 ) ( 640 -384 346 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 640 -384 400 ) ( 112 -384 400 ) ( 112 -336 400 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 640 -384 282 ) ( 640 -336 314 ) ( 112 -336 314 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 640 -336 314 ) ( 640 -336 346 ) ( 112 -336 346 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 640 -384 282 ) ( 640 -384 346 ) ( 640 -336 346 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 45 +{ +( 112 -384 282 ) ( 112 -384 346 ) ( 112 -416 346 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 112 -416 346 ) ( 640 -416 346 ) ( 640 -416 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 640 -384 400 ) ( 640 -416 400 ) ( 112 -416 400 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 112 -416 250 ) ( 640 -416 250 ) ( 640 -384 282 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 640 -384 346 ) ( 112 -384 346 ) ( 112 -384 282 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 640 -416 250 ) ( 640 -416 346 ) ( 640 -384 346 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 46 +{ +( 112 -416 250 ) ( 112 -416 346 ) ( 112 -432 346 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 640 -432 250 ) ( 112 -432 250 ) ( 112 -432 346 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 640 -416 250 ) ( 112 -416 250 ) ( 112 -432 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 112 -432 400 ) ( 112 -416 400 ) ( 640 -416 400 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 640 -416 346 ) ( 112 -416 346 ) ( 112 -416 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 640 -432 346 ) ( 640 -416 346 ) ( 640 -416 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 47 +{ +( 640 48 346 ) ( 640 32 346 ) ( 640 32 250 ) MustRemove/sandstone -16 10 0 1 1 0 0 0 +( 640 32 250 ) ( 640 32 346 ) ( 688 32 346 ) MustRemove/sandstone -16 10 0 1 1 0 0 0 +( 640 32 250 ) ( 688 32 250 ) ( 688 48 250 ) MustRemove/sandstone -16 16 0 1 1 0 0 0 +( 688 32 400 ) ( 640 32 400 ) ( 640 48 400 ) MustRemove/sandstone -16 16 0 1 1 0 0 0 +( 688 48 250 ) ( 688 48 346 ) ( 640 48 346 ) MustRemove/sandstone -16 10 0 1 1 0 0 0 +( 688 48 250 ) ( 688 32 250 ) ( 688 32 346 ) MustRemove/sandstone -16 10 0 1 1 0 0 0 +} +// brush 48 +{ +( 784 -96 346 ) ( 784 -144 346 ) ( 784 -144 250 ) MustRemove/sandstone -16 10 0 1 1 0 0 0 +( 784 -288 250 ) ( 784 -288 346 ) ( 800 -288 346 ) MustRemove/sandstone -16 10 0 1 1 0 0 0 +( 784 -144 250 ) ( 800 -144 250 ) ( 800 -96 250 ) MustRemove/sandstone -16 16 0 1 1 0 0 0 +( 800 -144 400 ) ( 784 -144 400 ) ( 784 -96 400 ) MustRemove/sandstone -16 16 0 1 1 0 0 0 +( 800 -96 250 ) ( 800 -96 346 ) ( 784 -96 346 ) MustRemove/sandstone -16 10 0 1 1 0 0 0 +( 800 -96 250 ) ( 800 -144 250 ) ( 800 -144 346 ) MustRemove/sandstone -16 10 0 1 1 0 0 0 +} +// brush 49 +{ +( 640 -144 330 ) ( 640 -96 346 ) ( 640 -144 346 ) MustRemove/sandstone -16 10 0 1 1 0 0 0 +( 640 -288 330 ) ( 688 -288 346 ) ( 688 -288 330 ) MustRemove/sandstone -16 10 0 1 1 0 0 0 +( 640 -144 330 ) ( 688 -96 330 ) ( 640 -96 330 ) MustRemove/sandstone -16 16 0 1 1 0 0 0 +( 640 -144 400 ) ( 688 -96 400 ) ( 688 -144 400 ) MustRemove/sandstone -16 16 0 1 1 0 0 0 +( 640 -96 330 ) ( 688 -96 346 ) ( 640 -96 346 ) MustRemove/sandstone -16 10 0 1 1 0 0 0 +( 784 -144 330 ) ( 784 -96 346 ) ( 784 -96 330 ) MustRemove/sandstone -16 10 0 1 1 0 0 0 +} +// brush 50 +{ +( 784 -96 250 ) ( 768 -48 250 ) ( 768 -48 346 ) MustRemove/sandstone -16 10 0 1 1 0 0 0 +( 784 -96 346 ) ( 800 -96 346 ) ( 800 -96 250 ) MustRemove/sandstone -16 10 0 1 1 0 0 0 +( 784 -48 250 ) ( 768 -48 250 ) ( 784 -96 250 ) MustRemove/sandstone -16 16 0 1 1 0 0 0 +( 768 -48 400 ) ( 784 -48 400 ) ( 800 -96 400 ) MustRemove/sandstone -16 16 0 1 1 0 0 0 +( 784 -48 250 ) ( 784 -48 346 ) ( 768 -48 346 ) MustRemove/sandstone -16 10 0 1 1 0 0 0 +( 800 -96 346 ) ( 784 -48 346 ) ( 784 -48 250 ) MustRemove/sandstone -16 10 0 1 1 0 0 0 +} +// brush 51 +{ +( 768 -48 346 ) ( 768 -48 250 ) ( 736 0 250 ) MustRemove/sandstone -16 10 0 1 1 0 0 0 +( 736 0 250 ) ( 752 16 250 ) ( 752 16 346 ) MustRemove/sandstone -16 10 0 1 1 0 0 0 +( 768 -48 346 ) ( 784 -48 346 ) ( 784 -48 250 ) MustRemove/sandstone -16 10 0 1 1 0 0 0 +( 784 -48 250 ) ( 752 16 250 ) ( 736 0 250 ) MustRemove/sandstone -16 16 0 1 1 0 0 0 +( 752 16 400 ) ( 784 -48 400 ) ( 768 -48 400 ) MustRemove/sandstone -16 16 0 1 1 0 0 0 +( 752 16 346 ) ( 752 16 250 ) ( 784 -48 250 ) MustRemove/sandstone -16 10 0 1 1 0 0 0 +} +// brush 52 +{ +( 688 32 346 ) ( 688 32 250 ) ( 688 48 250 ) MustRemove/sandstone -16 10 0 1 1 0 0 0 +( 736 0 250 ) ( 688 32 250 ) ( 688 32 346 ) MustRemove/sandstone -16 10 0 1 1 0 0 0 +( 688 48 250 ) ( 688 32 250 ) ( 736 0 250 ) MustRemove/sandstone -16 16 0 1 1 0 0 0 +( 736 0 400 ) ( 688 32 400 ) ( 688 48 400 ) MustRemove/sandstone -16 16 0 1 1 0 0 0 +( 752 16 346 ) ( 688 48 346 ) ( 688 48 250 ) MustRemove/sandstone -16 10 0 1 1 0 0 0 +( 736 0 250 ) ( 736 0 346 ) ( 752 16 346 ) MustRemove/sandstone -16 10 0 1 1 0 0 0 +} +// brush 53 +{ +( 640 -96 346 ) ( 640 -96 330 ) ( 768 -48 330 ) MustRemove/sandstone -16 10 0 1 1 0 0 0 +( 640 -96 346 ) ( 784 -96 346 ) ( 784 -96 330 ) MustRemove/sandstone -16 10 0 1 1 0 0 0 +( 768 -48 330 ) ( 640 -96 330 ) ( 784 -96 330 ) MustRemove/sandstone -16 16 0 1 1 0 0 0 +( 768 -48 400 ) ( 784 -96 400 ) ( 640 -96 400 ) MustRemove/sandstone -16 16 0 1 1 0 0 0 +( 784 -96 330 ) ( 784 -96 346 ) ( 768 -48 346 ) MustRemove/sandstone -16 10 0 1 1 0 0 0 +} +// brush 54 +{ +( 736 0 346 ) ( 640 -96 346 ) ( 640 -96 330 ) MustRemove/sandstone -16 10 0 1 1 0 0 0 +( 640 -96 330 ) ( 768 -48 330 ) ( 736 0 330 ) MustRemove/sandstone -16 16 0 1 1 0 0 0 +( 768 -48 400 ) ( 640 -96 400 ) ( 736 0 400 ) MustRemove/sandstone -16 16 0 1 1 0 0 0 +( 640 -96 330 ) ( 640 -96 346 ) ( 768 -48 346 ) MustRemove/sandstone -16 10 0 1 1 0 0 0 +( 768 -48 330 ) ( 768 -48 346 ) ( 736 0 346 ) MustRemove/sandstone -16 10 0 1 1 0 0 0 +} +// brush 55 +{ +( 688 32 330 ) ( 688 32 346 ) ( 640 -96 346 ) MustRemove/sandstone -16 10 0 1 1 0 0 0 +( 640 -96 330 ) ( 736 0 330 ) ( 688 32 330 ) MustRemove/sandstone -16 15.999979 0 1 1 0 0 0 +( 640 -96 400 ) ( 688 32 400 ) ( 736 0 400 ) MustRemove/sandstone -16 15.999979 0 1 1 0 0 0 +( 736 0 346 ) ( 688 32 346 ) ( 688 32 330 ) MustRemove/sandstone -16 10 0 1 1 0 0 0 +( 736 0 346 ) ( 736 0 330 ) ( 640 -96 330 ) MustRemove/sandstone -16 10 0 1 1 0 0 0 +} +// brush 56 +{ +( 640 32 330 ) ( 640 32 346 ) ( 640 -96 346 ) MustRemove/sandstone -16 10 0 1 1 0 0 0 +( 640 32 330 ) ( 640 -96 330 ) ( 688 32 330 ) MustRemove/sandstone -16 15.9999895 0 1 1 0 0 0 +( 640 -96 400 ) ( 640 32 400 ) ( 688 32 400 ) MustRemove/sandstone -16 15.9999895 0 1 1 0 0 0 +( 688 32 346 ) ( 640 32 346 ) ( 640 32 330 ) MustRemove/sandstone -16 10 0 1 1 0 0 0 +( 640 -96 330 ) ( 640 -96 346 ) ( 688 32 346 ) MustRemove/sandstone -16 10 0 1 1 0 0 0 +} +// brush 57 +{ +( 640 0 330 ) ( 640 0 282 ) ( 640 32 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 676 0 282 ) ( 640 0 282 ) ( 640 0 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 640 32 250 ) ( 640 0 282 ) ( 676 0 282 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 676 0 330 ) ( 640 0 330 ) ( 640 32 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 688 32 330 ) ( 640 32 330 ) ( 640 32 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 676 0 282 ) ( 676 0 330 ) ( 688 32 330 ) MustRemove/sandstone -0.6529541 0.5410156 0 1 1 0 0 0 +} +// brush 58 +{ +( 640 0 330 ) ( 640 -48 330 ) ( 640 -48 314 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 640 -48 330 ) ( 658 -48 330 ) ( 658 -48 314 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 658 -48 314 ) ( 676 0 282 ) ( 640 0 282 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 640 0 330 ) ( 676 0 330 ) ( 658 -48 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 676 0 282 ) ( 676 0 330 ) ( 640 0 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 658 -48 330 ) ( 676 0 330 ) ( 676 0 282 ) MustRemove/sandstone -0.6529541 0.5410156 0 1 1 0 0 0 +} +// brush 59 +{ +( 640 -96 330 ) ( 640 -48 314 ) ( 640 -48 330 ) MustRemove/sandstone 0 0.9999695 0 1 1 0 0 0 +( 658 -48 314 ) ( 640 -48 314 ) ( 640 -96 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 658 -48 330 ) ( 640 -96 330 ) ( 640 -48 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 640 -48 330 ) ( 640 -48 314 ) ( 658 -48 314 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 658 -48 330 ) ( 658 -48 314 ) ( 640 -96 330 ) MustRemove/sandstone -0.6529541 0.5410156 0 1 1 0 0 0 +} +// brush 60 +{ +( 676 0 282 ) ( 676 0 330 ) ( 658 -48 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 658 -48 314 ) ( 658 -48 330 ) ( 672 -64 330 ) MustRemove/sandstone -0.17077637 0 0 1 1 0 0 0 +( 658 -48 314 ) ( 672 -64 314 ) ( 676 0 282 ) MustRemove/sandstone 0 0.99998474 0 1 1 0 0 0 +( 676 0 282 ) ( 672 -64 314 ) ( 712 -24 282 ) MustRemove/sandstone 0 0.99998283 0 1 1 0 0 0 +( 658 -48 330 ) ( 676 0 330 ) ( 712 -24 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 712 -24 330 ) ( 676 0 330 ) ( 676 0 282 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 672 -64 330 ) ( 712 -24 330 ) ( 712 -24 282 ) MustRemove/sandstone -0.6529541 0.5410156 0 1 1 0 0 0 +} +// brush 61 +{ +( 676 0 330 ) ( 676 0 282 ) ( 688 32 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 712 -24 330 ) ( 712 -24 282 ) ( 676 0 282 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 676 0 282 ) ( 712 -24 282 ) ( 736 0 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 736 0 330 ) ( 712 -24 330 ) ( 676 0 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 736 0 250 ) ( 736 0 330 ) ( 688 32 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 736 0 250 ) ( 712 -24 282 ) ( 712 -24 330 ) MustRemove/sandstone -0.6529541 0.5410156 0 1 1 0 0 0 +} +// brush 62 +{ +( 658 -48 330 ) ( 640 -96 330 ) ( 658 -48 314 ) MustRemove/sandstone 0 0.9999695 0 1 1 0 0 0 +( 658 -48 314 ) ( 640 -96 330 ) ( 672 -64 314 ) MustRemove/sandstone 0 0.9999771 0 1 1 0 0 0 +( 672 -64 330 ) ( 640 -96 330 ) ( 658 -48 330 ) MustRemove/sandstone 0 0.9999771 0 1 1 0 0 0 +( 672 -64 314 ) ( 640 -96 330 ) ( 672 -64 330 ) MustRemove/sandstone -0.65291595 0.5410156 0 1 1 0 0 0 +( 672 -64 314 ) ( 672 -64 330 ) ( 658 -48 330 ) MustRemove/sandstone -0.17077637 0 0 1 1 0 0 0 +} +// brush 63 +{ +( 712 -24 330 ) ( 736 -60 330 ) ( 736 -60 282 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 736 0 250 ) ( 736 0 330 ) ( 712 -24 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 736 -60 282 ) ( 768 -48 250 ) ( 736 0 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 712 -24 330 ) ( 736 0 330 ) ( 768 -48 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 736 -60 282 ) ( 736 -60 330 ) ( 768 -48 330 ) MustRemove/sandstone -0.6529541 0.5410156 0 1 1 0 0 0 +( 768 -48 330 ) ( 736 0 330 ) ( 736 0 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 64 +{ +( 680 -81 330 ) ( 680 -81 314 ) ( 672 -64 314 ) MustRemove/sandstone -0.17077637 0 0 1 1 0 0 0 +( 712 -24 282 ) ( 712 -24 330 ) ( 672 -64 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 672 -64 314 ) ( 680 -81 314 ) ( 712 -24 282 ) MustRemove/sandstone 0 0.9999809 0 1 1 0 0 0 +( 712 -24 282 ) ( 680 -81 314 ) ( 736 -60 282 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 672 -64 330 ) ( 712 -24 330 ) ( 736 -60 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 736 -60 282 ) ( 680 -81 314 ) ( 680 -81 330 ) MustRemove/sandstone -0.6529541 0.5410156 0 1 1 0 0 0 +( 712 -24 282 ) ( 736 -60 282 ) ( 736 -60 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 65 +{ +( 672 -64 330 ) ( 640 -96 330 ) ( 672 -64 314 ) MustRemove/sandstone -0.99996185 0.9999695 0 1 1 0 0 0 +( 672 -64 314 ) ( 640 -96 330 ) ( 680 -81 314 ) MustRemove/sandstone 0 0.9999771 0 1 1 0 0 0 +( 680 -81 330 ) ( 640 -96 330 ) ( 672 -64 330 ) MustRemove/sandstone 0 0.9999771 0 1 1 0 0 0 +( 680 -81 314 ) ( 640 -96 330 ) ( 680 -81 330 ) MustRemove/sandstone -0.65301514 0.5410156 0 1 1 0 0 0 +( 680 -81 314 ) ( 680 -81 330 ) ( 672 -64 330 ) MustRemove/sandstone -0.17077637 0 0 1 1 0 0 0 +} +// brush 66 +{ +( 736 -60 282 ) ( 736 -60 330 ) ( 744 -96 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 744 -96 282 ) ( 768 -48 250 ) ( 736 -60 282 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 744 -96 282 ) ( 784 -96 250 ) ( 768 -48 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 736 -60 282 ) ( 768 -48 250 ) ( 768 -48 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 784 -96 330 ) ( 784 -96 250 ) ( 744 -96 282 ) MustRemove/sandstone -0.6529541 0.5410156 0 1 1 0 0 0 +( 736 -60 330 ) ( 768 -48 330 ) ( 784 -96 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 768 -48 250 ) ( 784 -96 250 ) ( 784 -96 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 67 +{ +( 680 -96 330 ) ( 680 -96 314 ) ( 680 -81 314 ) MustRemove/sandstone -0.17077637 0 0 1 1 0 0 0 +( 680 -81 314 ) ( 680 -96 314 ) ( 736 -60 282 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 680 -96 314 ) ( 744 -96 282 ) ( 736 -60 282 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 680 -81 314 ) ( 736 -60 282 ) ( 736 -60 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 680 -96 330 ) ( 744 -96 330 ) ( 744 -96 282 ) MustRemove/sandstone -0.6529541 0.5410156 0 1 1 0 0 0 +( 736 -60 330 ) ( 744 -96 330 ) ( 680 -96 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 744 -96 282 ) ( 744 -96 330 ) ( 736 -60 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 68 +{ +( 680 -81 314 ) ( 640 -96 330 ) ( 680 -96 314 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 680 -81 330 ) ( 640 -96 330 ) ( 680 -81 314 ) MustRemove/sandstone 0 0.9999695 0 1 1 0 0 0 +( 680 -96 314 ) ( 640 -96 330 ) ( 680 -96 330 ) MustRemove/sandstone -0.65301514 0.5410156 0 1 1 0 0 0 +( 680 -96 330 ) ( 640 -96 330 ) ( 680 -81 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 680 -96 314 ) ( 680 -96 330 ) ( 680 -81 330 ) MustRemove/sandstone -0.17077637 0 0 1 1 0 0 0 +} +// brush 69 +{ +( 736 -324 282 ) ( 744 -288 330 ) ( 736 -324 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 744 -288 282 ) ( 736 -324 282 ) ( 768 -336 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 744 -288 282 ) ( 768 -336 250 ) ( 784 -288 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 736 -324 282 ) ( 768 -336 330 ) ( 768 -336 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 736 -324 330 ) ( 784 -288 330 ) ( 768 -336 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 784 -288 330 ) ( 744 -288 282 ) ( 784 -288 250 ) MustRemove/sandstone 0.3470459 0.5410156 0 1 1 0 0 0 +( 768 -336 250 ) ( 784 -288 330 ) ( 784 -288 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 70 +{ +( 680 -288 330 ) ( 680 -303 314 ) ( 680 -288 314 ) MustRemove/sandstone 0.82922363 0 0 1 1 0 0 0 +( 680 -303 314 ) ( 736 -324 282 ) ( 680 -288 314 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 680 -288 314 ) ( 736 -324 282 ) ( 744 -288 282 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 680 -303 314 ) ( 736 -324 330 ) ( 736 -324 282 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 736 -324 330 ) ( 680 -288 330 ) ( 744 -288 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 680 -288 330 ) ( 744 -288 282 ) ( 744 -288 330 ) MustRemove/sandstone 0.3470459 0.5410156 0 1 1 0 0 0 +( 744 -288 282 ) ( 736 -324 330 ) ( 744 -288 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 71 +{ +( 680 -303 314 ) ( 680 -288 314 ) ( 640 -288 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 680 -303 330 ) ( 680 -303 314 ) ( 640 -288 330 ) MustRemove/sandstone 0 0.9999695 0 1 1 0 0 0 +( 680 -288 330 ) ( 680 -303 330 ) ( 640 -288 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 680 -288 314 ) ( 680 -288 330 ) ( 640 -288 330 ) MustRemove/sandstone 0.34698486 0.5410156 0 1 1 0 0 0 +( 680 -288 314 ) ( 680 -303 330 ) ( 680 -288 330 ) MustRemove/sandstone 0.82922363 0 0 1 1 0 0 0 +} +// brush 72 +{ +( 680 -303 330 ) ( 672 -320 314 ) ( 680 -303 314 ) MustRemove/sandstone 0.82922363 0 0 1 1 0 0 0 +( 712 -360 282 ) ( 672 -320 330 ) ( 712 -360 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 672 -320 314 ) ( 712 -360 282 ) ( 680 -303 314 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 712 -360 282 ) ( 736 -324 282 ) ( 680 -303 314 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 672 -320 330 ) ( 736 -324 330 ) ( 712 -360 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 736 -324 282 ) ( 680 -303 330 ) ( 680 -303 314 ) MustRemove/sandstone 0.3470459 0.5410156 0 1 1 0 0 0 +( 712 -360 282 ) ( 736 -324 330 ) ( 736 -324 282 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 73 +{ +( 712 -360 330 ) ( 736 -324 282 ) ( 736 -324 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 736 -384 250 ) ( 712 -360 330 ) ( 736 -384 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 736 -324 282 ) ( 736 -384 250 ) ( 768 -336 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 712 -360 330 ) ( 768 -336 330 ) ( 736 -384 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 736 -324 282 ) ( 768 -336 330 ) ( 736 -324 330 ) MustRemove/sandstone 0.3470459 0.5410156 0 1 1 0 0 0 +( 768 -336 330 ) ( 736 -384 250 ) ( 736 -384 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 74 +{ +( 672 -320 330 ) ( 672 -320 314 ) ( 640 -288 330 ) MustRemove/sandstone 0 0.9999695 0 1 1 0 0 0 +( 672 -320 314 ) ( 680 -303 314 ) ( 640 -288 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 680 -303 330 ) ( 672 -320 330 ) ( 640 -288 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 680 -303 314 ) ( 680 -303 330 ) ( 640 -288 330 ) MustRemove/sandstone 0.34698486 0.5410156 0 1 1 0 0 0 +( 680 -303 314 ) ( 672 -320 330 ) ( 680 -303 330 ) MustRemove/sandstone 0.82922363 0 0 1 1 0 0 0 +} +// brush 75 +{ +( 658 -336 330 ) ( 658 -336 314 ) ( 640 -288 330 ) MustRemove/sandstone 0 0.9999695 0 1 1 0 0 0 +( 658 -336 314 ) ( 672 -320 314 ) ( 640 -288 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 672 -320 330 ) ( 658 -336 330 ) ( 640 -288 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 672 -320 314 ) ( 672 -320 330 ) ( 640 -288 330 ) MustRemove/sandstone 0.34701538 0.5410156 0 1 1 0 0 0 +( 672 -320 314 ) ( 658 -336 330 ) ( 672 -320 330 ) MustRemove/sandstone 0.82922363 0 0 1 1 0 0 0 +} +// brush 76 +{ +( 676 -384 282 ) ( 658 -336 330 ) ( 676 -384 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 658 -336 314 ) ( 672 -320 330 ) ( 658 -336 330 ) MustRemove/sandstone 0.82922363 0 0 1 1 0 0 0 +( 658 -336 314 ) ( 676 -384 282 ) ( 672 -320 314 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 676 -384 282 ) ( 712 -360 282 ) ( 672 -320 314 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 658 -336 330 ) ( 712 -360 330 ) ( 676 -384 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 712 -360 330 ) ( 676 -384 282 ) ( 676 -384 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 672 -320 330 ) ( 712 -360 282 ) ( 712 -360 330 ) MustRemove/sandstone 0.3470459 0.5410156 0 1 1 0 0 0 +} +// brush 77 +{ +( 676 -384 330 ) ( 688 -416 250 ) ( 676 -384 282 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 712 -360 330 ) ( 676 -384 282 ) ( 712 -360 282 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 676 -384 282 ) ( 736 -384 250 ) ( 712 -360 282 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 736 -384 330 ) ( 676 -384 330 ) ( 712 -360 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 736 -384 250 ) ( 688 -416 330 ) ( 736 -384 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 736 -384 250 ) ( 712 -360 330 ) ( 712 -360 282 ) MustRemove/sandstone 0.3470459 0.5410156 0 1 1 0 0 0 +} +// brush 78 +{ +( 640 -384 330 ) ( 640 -416 250 ) ( 640 -384 282 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 688 -416 330 ) ( 640 -416 250 ) ( 640 -416 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 676 -384 330 ) ( 640 -416 330 ) ( 640 -384 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 640 -416 250 ) ( 676 -384 282 ) ( 640 -384 282 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 676 -384 282 ) ( 640 -384 330 ) ( 640 -384 282 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 676 -384 282 ) ( 688 -416 330 ) ( 676 -384 330 ) MustRemove/sandstone 0.3470459 0.5410156 0 1 1 0 0 0 +} +// brush 79 +{ +( 640 -384 330 ) ( 640 -336 314 ) ( 640 -336 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 676 -384 282 ) ( 640 -384 330 ) ( 676 -384 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 640 -384 330 ) ( 658 -336 330 ) ( 676 -384 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 658 -336 314 ) ( 640 -384 282 ) ( 676 -384 282 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 640 -336 330 ) ( 658 -336 314 ) ( 658 -336 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 658 -336 330 ) ( 676 -384 282 ) ( 676 -384 330 ) MustRemove/sandstone 0.3470459 0.5410156 0 1 1 0 0 0 +} +// brush 80 +{ +( 640 -288 330 ) ( 640 -336 330 ) ( 640 -336 314 ) MustRemove/sandstone 0 0.9999695 0 1 1 0 0 0 +( 640 -336 330 ) ( 658 -336 314 ) ( 640 -336 314 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 658 -336 330 ) ( 640 -336 330 ) ( 640 -288 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 658 -336 314 ) ( 640 -288 330 ) ( 640 -336 314 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 658 -336 330 ) ( 640 -288 330 ) ( 658 -336 314 ) MustRemove/sandstone 0.3470459 0.5410156 0 1 1 0 0 0 +} +// brush 81 +{ +( 744 -96 330 ) ( 744 -144 330 ) ( 744 -144 282 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 744 -144 282 ) ( 784 -144 250 ) ( 784 -96 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 744 -288 330 ) ( 784 -288 330 ) ( 784 -288 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 744 -96 330 ) ( 784 -96 330 ) ( 784 -144 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 784 -96 250 ) ( 784 -96 330 ) ( 744 -96 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 784 -144 330 ) ( 784 -96 330 ) ( 784 -96 250 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 82 +{ +( 680 -144 314 ) ( 680 -96 314 ) ( 680 -96 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 744 -96 282 ) ( 680 -96 314 ) ( 680 -144 314 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 680 -288 330 ) ( 744 -288 330 ) ( 744 -288 282 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 744 -96 330 ) ( 744 -144 330 ) ( 680 -144 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 680 -96 330 ) ( 680 -96 314 ) ( 744 -96 282 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 744 -144 282 ) ( 744 -144 330 ) ( 744 -96 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 83 +{ +( 680 -96 314 ) ( 640 -96 330 ) ( 640 -144 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 680 -288 330 ) ( 680 -288 314 ) ( 640 -288 330 ) MustRemove/sandstone 0 0.9999695 0 1 1 0 0 0 +( 640 -144 330 ) ( 640 -96 330 ) ( 680 -96 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 680 -96 330 ) ( 640 -96 330 ) ( 680 -96 314 ) MustRemove/sandstone 0 0.9999695 0 1 1 0 0 0 +( 680 -96 314 ) ( 680 -144 314 ) ( 680 -144 330 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 84 +{ +( 784 -288 250 ) ( 768 -336 346 ) ( 768 -336 250 ) MustRemove/sandstone 0 10 0 1 1 0 0 0 +( 784 -336 250 ) ( 768 -336 346 ) ( 784 -336 346 ) MustRemove/sandstone 16 10 0 1 1 0 0 0 +( 784 -336 250 ) ( 784 -288 250 ) ( 768 -336 250 ) MustRemove/sandstone 16 0 0 1 1 0 0 0 +( 768 -336 400 ) ( 800 -288 400 ) ( 784 -336 400 ) MustRemove/sandstone 16 0 0 1 1 0 0 0 +( 784 -288 346 ) ( 800 -288 250 ) ( 800 -288 346 ) MustRemove/sandstone 16 10 0 1 1 0 0 0 +( 800 -288 346 ) ( 784 -336 250 ) ( 784 -336 346 ) MustRemove/sandstone 0 10 0 1 1 0 0 0 +} +// brush 85 +{ +( 640 -288 346 ) ( 768 -336 330 ) ( 640 -288 330 ) MustRemove/sandstone 16 10 0 1 1 0 0 0 +( 768 -336 330 ) ( 784 -288 330 ) ( 640 -288 330 ) MustRemove/sandstone 16 0 0 1 1 0 0 0 +( 768 -336 400 ) ( 640 -288 400 ) ( 784 -288 400 ) MustRemove/sandstone 16 0 0 1 1 0 0 0 +( 640 -288 346 ) ( 784 -288 330 ) ( 784 -288 346 ) MustRemove/sandstone 16 10 0 1 1 0 0 0 +( 784 -288 330 ) ( 768 -336 346 ) ( 784 -288 346 ) MustRemove/sandstone 0 10 0 1 1 0 0 0 +} +// brush 86 +{ +( 736 -384 346 ) ( 640 -288 330 ) ( 640 -288 346 ) MustRemove/sandstone 0 10 0 1 1 0 0 0 +( 640 -288 330 ) ( 736 -384 330 ) ( 768 -336 330 ) MustRemove/sandstone 16 0 0 1 1 0 0 0 +( 768 -336 400 ) ( 736 -384 400 ) ( 640 -288 400 ) MustRemove/sandstone 16 0 0 1 1 0 0 0 +( 640 -288 330 ) ( 768 -336 346 ) ( 640 -288 346 ) MustRemove/sandstone 16 10 0 1 1 0 0 0 +( 768 -336 330 ) ( 736 -384 346 ) ( 768 -336 346 ) MustRemove/sandstone 0 10 0 1 1 0 0 0 +} +// brush 87 +{ +( 768 -336 346 ) ( 736 -384 250 ) ( 768 -336 250 ) MustRemove/sandstone 0 10 0 1 1 0 0 0 +( 736 -384 250 ) ( 752 -400 346 ) ( 752 -400 250 ) MustRemove/sandstone 0 10 0 1 1 0 0 0 +( 784 -336 250 ) ( 736 -384 250 ) ( 752 -400 250 ) MustRemove/sandstone 16 0 0 1 1 0 0 0 +( 752 -400 400 ) ( 768 -336 400 ) ( 784 -336 400 ) MustRemove/sandstone 16 0 0 1 1 0 0 0 +( 768 -336 346 ) ( 784 -336 250 ) ( 784 -336 346 ) MustRemove/sandstone 16 10 0 1 1 0 0 0 +( 752 -400 346 ) ( 784 -336 250 ) ( 752 -400 250 ) MustRemove/sandstone 0 10 0 1 1 0 0 0 +} +// brush 88 +{ +( 688 -416 346 ) ( 688 -432 250 ) ( 688 -416 250 ) MustRemove/sandstone 0 10 0 1 1 0 0 0 +( 736 -384 250 ) ( 688 -416 346 ) ( 688 -416 250 ) MustRemove/sandstone 16 10 0 1 1 0 0 0 +( 688 -432 250 ) ( 736 -384 250 ) ( 688 -416 250 ) MustRemove/sandstone 16 0 0 1 1 0 0 0 +( 736 -384 400 ) ( 688 -432 400 ) ( 688 -416 400 ) MustRemove/sandstone 16 0 0 1 1 0 0 0 +( 752 -400 346 ) ( 688 -432 250 ) ( 688 -432 346 ) MustRemove/sandstone 16 10 0 1 1 0 0 0 +( 736 -384 250 ) ( 752 -400 346 ) ( 736 -384 346 ) MustRemove/sandstone 0 10 0 1 1 0 0 0 +} +// brush 89 +{ +( 688 -416 330 ) ( 640 -288 346 ) ( 688 -416 346 ) MustRemove/sandstone 0 10 0 1 1 0 0 0 +( 640 -288 330 ) ( 688 -416 330 ) ( 736 -384 330 ) MustRemove/sandstone 16 0 0 1 1 0 0 0 +( 640 -288 400 ) ( 736 -384 400 ) ( 688 -416 400 ) MustRemove/sandstone 16 0 0 1 1 0 0 0 +( 736 -384 346 ) ( 688 -416 330 ) ( 688 -416 346 ) MustRemove/sandstone 16 10 0 1 1 0 0 0 +( 736 -384 346 ) ( 640 -288 330 ) ( 736 -384 330 ) MustRemove/sandstone 0 10 0 1 1 0 0 0 +} +// brush 90 +{ +( 640 -416 330 ) ( 640 -288 346 ) ( 640 -416 346 ) MustRemove/sandstone 0 10 0 1 1 0 0 0 +( 688 -416 346 ) ( 640 -416 330 ) ( 640 -416 346 ) MustRemove/sandstone 16 10 0 1 1 0 0 0 +( 640 -416 330 ) ( 688 -416 330 ) ( 640 -288 330 ) MustRemove/sandstone 16 0 0 1 1 0 0 0 +( 640 -288 400 ) ( 688 -416 400 ) ( 640 -416 400 ) MustRemove/sandstone 16 0 0 1 1 0 0 0 +( 640 -288 330 ) ( 688 -416 346 ) ( 640 -288 346 ) MustRemove/sandstone 0 10 0 1 1 0 0 0 +} +// brush 91 +{ +( 640 -432 346 ) ( 640 -416 250 ) ( 640 -416 346 ) MustRemove/sandstone 0 10 0 1 1 0 0 0 +( 688 -432 250 ) ( 640 -432 346 ) ( 688 -432 346 ) MustRemove/sandstone 16 10 0 1 1 0 0 0 +( 640 -416 250 ) ( 688 -432 250 ) ( 688 -416 250 ) MustRemove/sandstone 16 0 0 1 1 0 0 0 +( 688 -416 400 ) ( 640 -432 400 ) ( 640 -416 400 ) MustRemove/sandstone 16 0 0 1 1 0 0 0 +( 640 -416 250 ) ( 688 -416 346 ) ( 640 -416 346 ) MustRemove/sandstone 16 10 0 1 1 0 0 0 +( 688 -432 250 ) ( 688 -416 346 ) ( 688 -416 250 ) MustRemove/sandstone 0 10 0 1 1 0 0 0 +} +// brush 92 +{ +( 464 32 122 ) ( 464 -16 122 ) ( 464 -16 -86 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 464 -16 -86 ) ( 464 -16 122 ) ( 512 -16 122 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 464 -16 -86 ) ( 512 -16 -86 ) ( 512 32 -86 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 512 -16 122 ) ( 464 -16 122 ) ( 464 32 122 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 512 32 -86 ) ( 512 32 122 ) ( 464 32 122 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 512 32 -86 ) ( 512 -16 -86 ) ( 512 -16 122 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +} +// brush 93 +{ +( 464 -16 122 ) ( 464 32 122 ) ( 464 32 250 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 464 -16 186 ) ( 512 -16 186 ) ( 512 -16 122 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 512 32 250 ) ( 512 -16 186 ) ( 464 -16 186 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 512 32 122 ) ( 464 32 122 ) ( 464 -16 122 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 464 32 250 ) ( 464 32 122 ) ( 512 32 122 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 512 -16 122 ) ( 512 -16 186 ) ( 512 32 250 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +} +// brush 94 +{ +( 464 -16 186 ) ( 464 32 250 ) ( 464 0 282 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 512 -16 186 ) ( 464 -16 186 ) ( 464 -32 234 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 464 -32 234 ) ( 464 0 282 ) ( 512 0 282 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 464 32 250 ) ( 512 32 250 ) ( 512 0 282 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 512 -16 186 ) ( 512 32 250 ) ( 464 32 250 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 512 0 282 ) ( 512 32 250 ) ( 512 -16 186 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +} +// brush 95 +{ +( 464 -32 234 ) ( 464 0 282 ) ( 464 -48 314 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 464 -64 266 ) ( 464 -48 314 ) ( 512 -48 314 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 464 -32 234 ) ( 464 -64 266 ) ( 512 -64 266 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 464 -48 314 ) ( 464 0 282 ) ( 512 0 282 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 512 0 282 ) ( 464 0 282 ) ( 464 -32 234 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 512 -48 314 ) ( 512 0 282 ) ( 512 -32 234 ) MustRemove/marble3 -0.6665039 0 0 1 1 0 0 0 +} +// brush 96 +{ +( 464 -96 330 ) ( 464 -104 282 ) ( 464 -64 266 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 512 -104 282 ) ( 464 -104 282 ) ( 464 -96 330 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 464 -64 266 ) ( 464 -104 282 ) ( 512 -104 282 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 512 -96 330 ) ( 464 -96 330 ) ( 464 -48 314 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 464 -48 314 ) ( 464 -64 266 ) ( 512 -64 266 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 512 -64 266 ) ( 512 -104 282 ) ( 512 -96 330 ) MustRemove/marble3 -0.30737305 0 0 1 1 0 0 0 +} +// brush 97 +{ +( 464 -134 270 ) ( 464 -106 270 ) ( 464 -96 330 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 512 -274.108108108108 246.64864864864876 ) ( 464 -274.108108108108 246.64864864864876 ) ( 464 -284.10810810810807 306.64864864864876 ) MustRemove/marble3 0 -0.35144043 0 1 1 0 0 0 +( 512 -134 282 ) ( 512 -106 282 ) ( 464 -106 282 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 464 -144 330 ) ( 464 -96 330 ) ( 512 -96 330 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 464 -106 270 ) ( 512 -106 270 ) ( 512 -96 330 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 512 -96 330 ) ( 512 -106 270 ) ( 512 -134 270 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +} +// brush 98 +{ +( 464 -288 330 ) ( 464 -336 314 ) ( 464 -320 266 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 512 -336 314 ) ( 512 -320 266 ) ( 464 -320 266 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 464 -288 330 ) ( 512 -288 330 ) ( 512 -336 314 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 464 -320 266 ) ( 512 -320 266 ) ( 512 -280 282 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 512 -280 282 ) ( 512 -288 330 ) ( 464 -288 330 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 512 -280 282 ) ( 512 -320 266 ) ( 512 -336 314 ) MustRemove/marble3 0.69262695 0 0 1 1 0 0 0 +} +// brush 99 +{ +( 464 -384 282 ) ( 464 -352 234 ) ( 464 -320 266 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 512 -384 282 ) ( 512 -352 234 ) ( 464 -352 234 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 464 -336 314 ) ( 512 -336 314 ) ( 512 -384 282 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 464 -352 234 ) ( 512 -352 234 ) ( 512 -320 266 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 464 -320 266 ) ( 512 -320 266 ) ( 512 -336 314 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 512 -320 266 ) ( 512 -352 234 ) ( 512 -384 282 ) MustRemove/marble3 0.3334961 0 0 1 1 0 0 0 +} +// brush 100 +{ +( 464 -368 186 ) ( 464 -352 234 ) ( 464 -384 282 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 464 -368 186 ) ( 464 -416 250 ) ( 512 -416 250 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 464 -416 250 ) ( 464 -384 282 ) ( 512 -384 282 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 464 -384 282 ) ( 464 -352 234 ) ( 512 -352 234 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 512 -352 234 ) ( 464 -352 234 ) ( 464 -368 186 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 512 -352 234 ) ( 512 -368 186 ) ( 512 -416 250 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +} +// brush 101 +{ +( 464 -416 250 ) ( 464 -416 122 ) ( 464 -368 122 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 512 -416 250 ) ( 512 -416 122 ) ( 464 -416 122 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 464 -416 122 ) ( 512 -416 122 ) ( 512 -368 122 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 512 -368 186 ) ( 512 -416 250 ) ( 464 -416 250 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 512 -368 122 ) ( 512 -368 186 ) ( 464 -368 186 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 512 -368 122 ) ( 512 -416 122 ) ( 512 -416 250 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +} +// brush 102 +{ +( 464 -416 -86 ) ( 464 -368 -86 ) ( 464 -368 122 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 464 -416 122 ) ( 512 -416 122 ) ( 512 -416 -86 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 512 -368 -86 ) ( 464 -368 -86 ) ( 464 -416 -86 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 512 -368 122 ) ( 512 -416 122 ) ( 464 -416 122 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 464 -368 122 ) ( 464 -368 -86 ) ( 512 -368 -86 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +( 512 -416 -86 ) ( 512 -416 122 ) ( 512 -368 122 ) MustRemove/marble3 0 0 0 1 1 0 0 0 +} +// brush 103 +{ +( 320 32 -86 ) ( 320 48 -70 ) ( 320 32 -70 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 320 32 -86 ) ( 400 32 -70 ) ( 400 32 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 320 32 -86 ) ( 400 48 -86 ) ( 320 48 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 320 32 -54 ) ( 400 48 -54 ) ( 400 32 -54 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 320 48 -86 ) ( 400 48 -70 ) ( 320 48 -70 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 400 32 -86 ) ( 400 48 -70 ) ( 400 48 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 104 +{ +( 176 32 -86 ) ( 176 48 -70 ) ( 176 32 -70 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 176 32 -86 ) ( 256 32 -70 ) ( 256 32 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 176 32 -86 ) ( 256 48 -86 ) ( 176 48 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 176 32 -54 ) ( 256 48 -54 ) ( 256 32 -54 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 176 48 -86 ) ( 256 48 -70 ) ( 176 48 -70 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 256 32 -86 ) ( 256 48 -70 ) ( 256 48 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 105 +{ +( 320 -432 -86 ) ( 320 -416 -70 ) ( 320 -432 -70 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 320 -432 -86 ) ( 400 -432 -70 ) ( 400 -432 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 320 -432 -86 ) ( 400 -416 -86 ) ( 320 -416 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 320 -432 -54 ) ( 400 -416 -54 ) ( 400 -432 -54 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 320 -416 -86 ) ( 400 -416 -70 ) ( 320 -416 -70 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 400 -432 -86 ) ( 400 -416 -70 ) ( 400 -416 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 106 +{ +( 176 -432 -86 ) ( 176 -416 -70 ) ( 176 -432 -70 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 176 -432 -86 ) ( 256 -432 -70 ) ( 256 -432 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 176 -432 -86 ) ( 256 -416 -86 ) ( 176 -416 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 176 -432 -54 ) ( 256 -416 -54 ) ( 256 -432 -54 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 176 -416 -86 ) ( 256 -416 -70 ) ( 176 -416 -70 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 256 -432 -86 ) ( 256 -416 -70 ) ( 256 -416 -86 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 107 +{ +( -544 -544 -208 ) ( -544 -543 -208 ) ( -544 -544 -207 ) MustRemove/sandstone -80 -48 0 1 1 0 0 0 +( 432 -848 -208 ) ( 432 -848 -207 ) ( 433 -848 -208 ) MustRemove/sandstone 32 -48 0 1 1 0 0 0 +( 432 -544 -368 ) ( 433 -544 -368 ) ( 432 -543 -368 ) MustRemove/sandstone 32 80 0 1 1 0 0 0 +( 576 -400 -192 ) ( 576 -399 -192 ) ( 577 -400 -192 ) MustRemove/sandstone 32 80 0 1 1 0 0 0 +( 576 64 -192 ) ( 577 64 -192 ) ( 576 64 -191 ) MustRemove/sandstone 32 -48 0 1 1 0 0 0 +( 512 -400 -192 ) ( 512 -400 -191 ) ( 512 -399 -192 ) MustRemove/sandstone -80 -48 0 1 1 0 0 0 +} +// brush 108 +{ +( 512 -672 -192 ) ( 512 -671 -192 ) ( 512 -672 -191 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 496 -960 -192 ) ( 496 -960 -191 ) ( 497 -960 -192 ) MustRemove/sandstone -64 0 0 1 1 0 0 0 +( 496 -672 -240 ) ( 497 -672 -240 ) ( 496 -671 -240 ) MustRemove/sandstone -64 0 0 1 1 0 0 0 +( 576 -432 448 ) ( 576 -431 448 ) ( 577 -432 448 ) MustRemove/sandstone -64 0 0 1 1 0 0 0 +( 576 -432 -176 ) ( 577 -432 -176 ) ( 576 -432 -175 ) MustRemove/sandstone -64 0 0 1 1 0 0 0 +( 576 -432 -176 ) ( 576 -432 -175 ) ( 576 -431 -176 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 109 +{ +( -544 -672 400 ) ( -544 -671 400 ) ( -544 -672 401 ) MustRemove/sandstone 0 64 0 1 1 0 0 0 +( -416 -848 400 ) ( -416 -848 401 ) ( -415 -848 400 ) MustRemove/sandstone 0 64 0 1 1 0 0 0 +( -416 -672 400 ) ( -415 -672 400 ) ( -416 -671 400 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -32 -128 448 ) ( -32 -127 448 ) ( -31 -128 448 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -32 416 416 ) ( -31 416 416 ) ( -32 416 417 ) MustRemove/sandstone 0 64 0 1 1 0 0 0 +( 512 -128 416 ) ( 512 -128 417 ) ( 512 -127 416 ) MustRemove/sandstone 0 64 0 1 1 0 0 0 +} +// brush 110 +{ +( -544 -960 -240 ) ( -544 -959 -240 ) ( -544 -960 -239 ) MustRemove/sandstone 48 0 0 1 1 0 0 0 +( -288 -960 -240 ) ( -288 -960 -239 ) ( -287 -960 -240 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -288 -960 -240 ) ( -287 -960 -240 ) ( -288 -959 -240 ) MustRemove/sandstone 0 -48 0 1 1 0 0 0 +( 512 -848 448 ) ( 512 -847 448 ) ( 513 -848 448 ) MustRemove/sandstone 0 -48 0 1 1 0 0 0 +( 512 -848 -224 ) ( 513 -848 -224 ) ( 512 -848 -223 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 512 -848 -224 ) ( 512 -848 -223 ) ( 512 -847 -224 ) MustRemove/sandstone 48 0 0 1 1 0 0 0 +} +// brush 111 +{ +( -672 -784 -208 ) ( -672 -783 -208 ) ( -672 -784 -207 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -672 -960 -208 ) ( -672 -960 -207 ) ( -671 -960 -208 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -672 -784 -336 ) ( -671 -784 -336 ) ( -672 -783 -336 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -544 416 448 ) ( -544 417 448 ) ( -543 416 448 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -544 448 -192 ) ( -543 448 -192 ) ( -544 448 -191 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -544 416 -192 ) ( -544 416 -191 ) ( -544 417 -192 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 112 +{ +( 512 32 -224 ) ( 512 33 -224 ) ( 512 32 -223 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 512 48 -224 ) ( 512 48 -223 ) ( 513 48 -224 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 512 32 -368 ) ( 513 32 -368 ) ( 512 33 -368 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 544 416 448 ) ( 544 417 448 ) ( 545 416 448 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 544 448 -208 ) ( 545 448 -208 ) ( 544 448 -207 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 544 416 -208 ) ( 544 416 -207 ) ( 544 417 -208 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 113 +{ +( -544 416 -240 ) ( -544 417 -240 ) ( -544 416 -239 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -416 416 -240 ) ( -416 416 -239 ) ( -415 416 -240 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -416 416 -64 ) ( -415 416 -64 ) ( -416 417 -64 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 544 448 656 ) ( 544 449 656 ) ( 545 448 656 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 544 448 -224 ) ( 545 448 -224 ) ( 544 448 -223 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -64 448 -224 ) ( -64 448 -223 ) ( -64 449 -224 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 114 +{ +( 784 -288 -80 ) ( 784 -287 -80 ) ( 784 -288 -79 ) MustRemove/sandstone 0 16 0 1 1 0 0 0 +( 784 -288 -80 ) ( 784 -288 -79 ) ( 785 -288 -80 ) MustRemove/sandstone 0 16 0 1 1 0 0 0 +( 784 -288 -80 ) ( 785 -288 -80 ) ( 784 -287 -80 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 800 -240 -48 ) ( 800 -239 -48 ) ( 801 -240 -48 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 800 -96 -64 ) ( 801 -96 -64 ) ( 800 -96 -63 ) MustRemove/sandstone 0 16 0 1 1 0 0 0 +( 800 -240 -64 ) ( 800 -240 -63 ) ( 800 -239 -64 ) MustRemove/sandstone 0 16 0 1 1 0 0 0 +} +// brush 115 +{ +( 784 -288 -48 ) ( 784 -287 -48 ) ( 784 -288 -47 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 784 -288 -48 ) ( 784 -288 -47 ) ( 785 -288 -48 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 784 -288 -48 ) ( 785 -288 -48 ) ( 784 -287 -48 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 800 -272 192 ) ( 800 -271 192 ) ( 801 -272 192 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 800 -248 -32 ) ( 801 -248 -32 ) ( 800 -248 -31 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 800 -272 -32 ) ( 800 -272 -31 ) ( 800 -271 -32 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 116 +{ +( 784 -112 -32 ) ( 784 -112 -31 ) ( 784 -113 -32 ) MustRemove/sandstone 0 0 180 1 -1 0 0 0 +( 784 -136 -32 ) ( 783 -136 -32 ) ( 784 -136 -31 ) MustRemove/sandstone 48 0 180 1 -1 0 0 0 +( 800 -96 -48 ) ( 799 -96 -48 ) ( 800 -97 -48 ) MustRemove/sandstone 48 0 180 1 1 0 0 0 +( 784 -112 192 ) ( 784 -113 192 ) ( 783 -112 192 ) MustRemove/sandstone 48 0 180 1 1 0 0 0 +( 800 -96 -48 ) ( 800 -96 -47 ) ( 799 -96 -48 ) MustRemove/sandstone 48 0 180 1 -1 0 0 0 +( 800 -96 -48 ) ( 800 -97 -48 ) ( 800 -96 -47 ) MustRemove/sandstone 0 0 180 1 -1 0 0 0 +} +// brush 117 +{ +( 800 -288 -80 ) ( 800 -287 -80 ) ( 800 -288 -79 ) placeholder/stainedglass 16 -80 0 1.75 4 0 0 0 +( 800 -288 -80 ) ( 800 -288 -79 ) ( 801 -288 -80 ) placeholder/stainedglass 16 -80 0 1.75 4 0 0 0 +( 800 -288 -80 ) ( 801 -288 -80 ) ( 800 -287 -80 ) placeholder/stainedglass 16 -80 0 1.75 4 0 0 0 +( 848 -96 192 ) ( 848 -95 192 ) ( 849 -96 192 ) placeholder/stainedglass 16 -80 0 1.75 4 0 0 0 +( 848 -96 -64 ) ( 849 -96 -64 ) ( 848 -96 -63 ) placeholder/stainedglass 16 -80 0 1.75 4 0 0 0 +( 848 -96 -64 ) ( 848 -96 -63 ) ( 848 -95 -64 ) placeholder/stainedglass 16 -80 0 1.75 4 0 0 0 +} +// brush 118 +{ +( -544 -848 -192 ) ( -544 -847 -192 ) ( -544 -848 -191 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 208 -848 -192 ) ( 208 -848 -191 ) ( 209 -848 -192 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 208 -848 -192 ) ( 209 -848 -192 ) ( 208 -847 -192 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 512 -720 -64 ) ( 512 -719 -64 ) ( 513 -720 -64 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 512 -672 -176 ) ( 513 -672 -176 ) ( 512 -672 -175 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 512 -720 -176 ) ( 512 -720 -175 ) ( 512 -719 -176 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 119 +{ +( -544 -672 -80 ) ( -544 -671 -80 ) ( -544 -672 -79 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -544 -672 -80 ) ( -544 -672 -79 ) ( -543 -672 -80 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -544 -672 -192 ) ( -543 -672 -192 ) ( -544 -671 -192 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -416 -368 -64 ) ( -416 -367 -64 ) ( -415 -368 -64 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -416 208 -64 ) ( -415 208 -64 ) ( -416 208 -63 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -384 -368 -64 ) ( -384 -368 -63 ) ( -384 -367 -64 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 120 +{ +( -544 208 -192 ) ( -544 209 -192 ) ( -544 208 -191 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -544 208 -192 ) ( -544 208 -191 ) ( -543 208 -192 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -544 208 -128 ) ( -543 208 -128 ) ( -544 209 -128 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -368 416 -64 ) ( -368 417 -64 ) ( -367 416 -64 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -368 448 -176 ) ( -367 448 -176 ) ( -368 448 -175 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 512 416 -176 ) ( 512 416 -175 ) ( 512 417 -176 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 121 +{ +( 160 416 -240 ) ( 160 417 -240 ) ( 160 416 -239 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 192 416 -240 ) ( 192 416 -239 ) ( 193 416 -240 ) MustRemove/sandstone 32 0 0 1 1 0 0 0 +( 192 416 -64 ) ( 193 416 -64 ) ( 192 417 -64 ) MustRemove/sandstone 32 0 0 1 1 0 0 0 +( 1152 448 656 ) ( 1152 449 656 ) ( 1153 448 656 ) MustRemove/sandstone 32 0 0 1 1 0 0 0 +( 1152 448 -224 ) ( 1153 448 -224 ) ( 1152 448 -223 ) MustRemove/sandstone 32 0 0 1 1 0 0 0 +( 512 448 -224 ) ( 512 448 -223 ) ( 512 449 -224 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 122 +{ +( -64 432 432 ) ( -64 433 432 ) ( -64 432 433 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 128 416 432 ) ( 128 416 433 ) ( 129 416 432 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 128 432 112 ) ( 129 432 112 ) ( 128 433 112 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 160 448 656 ) ( 160 449 656 ) ( 161 448 656 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 160 448 448 ) ( 161 448 448 ) ( 160 448 449 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 160 448 448 ) ( 160 448 449 ) ( 160 449 448 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 123 +{ +( -368 448 -240 ) ( -368 449 -240 ) ( -368 448 -239 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -368 448 -240 ) ( -368 448 -239 ) ( -367 448 -240 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -368 448 -304 ) ( -367 448 -304 ) ( -368 449 -304 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -320 480 656 ) ( -320 481 656 ) ( -319 480 656 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -320 1104 -224 ) ( -319 1104 -224 ) ( -320 1104 -223 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -320 480 -224 ) ( -320 480 -223 ) ( -320 481 -224 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 124 +{ +( 368 448 -240 ) ( 368 449 -240 ) ( 368 448 -239 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 368 448 -240 ) ( 368 448 -239 ) ( 369 448 -240 ) MustRemove/sandstone -96 0 0 1 1 0 0 0 +( 368 448 -304 ) ( 369 448 -304 ) ( 368 449 -304 ) MustRemove/sandstone -96 0 0 1 1 0 0 0 +( 416 480 656 ) ( 416 481 656 ) ( 417 480 656 ) MustRemove/sandstone -96 0 0 1 1 0 0 0 +( 416 1376 -224 ) ( 417 1376 -224 ) ( 416 1376 -223 ) MustRemove/sandstone -96 0 0 1 1 0 0 0 +( 416 480 -224 ) ( 416 480 -223 ) ( 416 481 -224 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 125 +{ +( -320 1328 -240 ) ( -320 1329 -240 ) ( -320 1328 -239 ) MustRemove/sandstone -16 -96 0 1 1 0 0 0 +( 336 1328 -240 ) ( 336 1328 -239 ) ( 337 1328 -240 ) MustRemove/sandstone -32 -96 0 1 1 0 0 0 +( 336 1328 -304 ) ( 337 1328 -304 ) ( 336 1329 -304 ) MustRemove/sandstone -32 16 0 1 1 0 0 0 +( 368 1376 64 ) ( 368 1377 64 ) ( 369 1376 64 ) MustRemove/sandstone -32 16 0 1 1 0 0 0 +( 368 1376 -224 ) ( 369 1376 -224 ) ( 368 1376 -223 ) MustRemove/sandstone -32 -96 0 1 1 0 0 0 +( 368 1376 -224 ) ( 368 1376 -223 ) ( 368 1377 -224 ) MustRemove/sandstone -16 -96 0 1 1 0 0 0 +} +// brush 126 +{ +( -368 912 -320 ) ( -368 913 -320 ) ( -368 912 -319 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 176 448 -320 ) ( 176 448 -319 ) ( 177 448 -320 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 176 912 -368 ) ( 177 912 -368 ) ( 176 913 -368 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 368 1056 -304 ) ( 368 1057 -304 ) ( 369 1056 -304 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 368 1376 -304 ) ( 369 1376 -304 ) ( 368 1376 -303 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 416 1056 -304 ) ( 416 1056 -303 ) ( 416 1057 -304 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 127 +{ +( -320 448 640 ) ( -320 449 640 ) ( -320 448 641 ) MustRemove/fancytiles1 0 0 0 5 5 0 0 0 +( -320 448 640 ) ( -320 448 641 ) ( -319 448 640 ) MustRemove/fancytiles1 0 0 0 5 5 0 0 0 +( -320 448 640 ) ( -319 448 640 ) ( -320 449 640 ) MustRemove/fancytiles1 0 0 0 5 5 0 0 0 +( 368 752 656 ) ( 368 753 656 ) ( 369 752 656 ) MustRemove/fancytiles1 0 0 0 5 5 0 0 0 +( 368 1328 656 ) ( 369 1328 656 ) ( 368 1328 657 ) MustRemove/fancytiles1 0 0 0 5 5 0 0 0 +( 368 752 656 ) ( 368 752 657 ) ( 368 753 656 ) MustRemove/fancytiles1 0 0 0 5 5 0 0 0 +} +// brush 128 +{ +( -64 448 -80 ) ( -64 449 -80 ) ( -64 448 -79 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( -64 448 -80 ) ( -64 448 -79 ) ( -63 448 -80 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( -64 448 -96 ) ( -63 448 -96 ) ( -64 449 -96 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( 160 560 -64 ) ( 160 561 -64 ) ( 161 560 -64 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( 160 640 -64 ) ( 161 640 -64 ) ( 160 640 -63 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( 160 560 -64 ) ( 160 560 -63 ) ( 160 561 -64 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +} +// brush 129 +{ +( -208 640 -96 ) ( -208 641 -96 ) ( -208 640 -95 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( -64 640 -96 ) ( -64 640 -95 ) ( -63 640 -96 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( -64 640 -96 ) ( -63 640 -96 ) ( -64 641 -96 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( 160 688 -64 ) ( 160 689 -64 ) ( 161 688 -64 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( 160 784 -80 ) ( 161 784 -80 ) ( 160 784 -79 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( 304 688 -80 ) ( 304 688 -79 ) ( 304 689 -80 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +} +// brush 130 +{ +( -208 1104 64 ) ( -208 784 -64 ) ( -208 784 -96 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( -208 784 -64 ) ( -80 784 -64 ) ( -80 784 -96 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( -208 1104 64 ) ( -80 1104 64 ) ( -80 784 -64 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( -80 784 -96 ) ( -80 1104 32 ) ( -208 1104 32 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( -80 1104 32 ) ( -80 1104 64 ) ( -208 1104 64 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( -80 784 -64 ) ( -80 1104 64 ) ( -80 1104 32 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +} +// brush 131 +{ +( 176 1104 64 ) ( 176 784 -64 ) ( 176 784 -96 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( 176 784 -64 ) ( 304 784 -64 ) ( 304 784 -96 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( 176 1104 64 ) ( 304 1104 64 ) ( 304 784 -64 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( 304 784 -96 ) ( 304 1104 32 ) ( 176 1104 32 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( 304 1104 32 ) ( 304 1104 64 ) ( 176 1104 64 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( 304 784 -64 ) ( 304 1104 64 ) ( 304 1104 32 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +} +// brush 132 +{ +( -320 1136 -304 ) ( -320 1137 -304 ) ( -320 1136 -303 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 80 1104 -304 ) ( 80 1104 -303 ) ( 81 1104 -304 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 80 1136 -304 ) ( 81 1136 -304 ) ( 80 1137 -304 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 368 1328 64 ) ( 368 1329 64 ) ( 369 1328 64 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 368 1328 -288 ) ( 369 1328 -288 ) ( 368 1328 -287 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 368 1328 -288 ) ( 368 1328 -287 ) ( 368 1329 -288 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 133 +{ +( -368 1344 256 ) ( -368 1345 256 ) ( -368 1344 257 ) MustRemove/sandstone 0 -112 0 1 1 0 0 0 +( -320 1328 256 ) ( -320 1328 257 ) ( -319 1328 256 ) MustRemove/sandstone 0 -112 0 1 1 0 0 0 +( -320 1344 256 ) ( -319 1344 256 ) ( -320 1345 256 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -288 1360 656 ) ( -288 1361 656 ) ( -287 1360 656 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -288 1376 272 ) ( -287 1376 272 ) ( -288 1376 273 ) MustRemove/sandstone 0 -112 0 1 1 0 0 0 +( 368 1360 272 ) ( 368 1360 273 ) ( 368 1361 272 ) MustRemove/sandstone 0 -112 0 1 1 0 0 0 +} +// brush 134 +{ +( 112 1344 64 ) ( 112 1345 64 ) ( 112 1344 65 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 192 1328 64 ) ( 192 1328 65 ) ( 193 1328 64 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 192 1344 64 ) ( 193 1344 64 ) ( 192 1345 64 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 368 1376 256 ) ( 368 1377 256 ) ( 369 1376 256 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 368 1376 80 ) ( 369 1376 80 ) ( 368 1376 81 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 368 1376 80 ) ( 368 1376 81 ) ( 368 1377 80 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 135 +{ +( -368 1344 64 ) ( -368 1345 64 ) ( -368 1344 65 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -240 1328 64 ) ( -240 1328 65 ) ( -239 1328 64 ) MustRemove/sandstone 48 0 0 1 1 0 0 0 +( -240 1344 64 ) ( -239 1344 64 ) ( -240 1345 64 ) MustRemove/sandstone 48 0 0 1 1 0 0 0 +( -64 1376 256 ) ( -64 1377 256 ) ( -63 1376 256 ) MustRemove/sandstone 48 0 0 1 1 0 0 0 +( -64 1376 80 ) ( -63 1376 80 ) ( -64 1376 81 ) MustRemove/sandstone 48 0 0 1 1 0 0 0 +( -64 1376 80 ) ( -64 1376 81 ) ( -64 1377 80 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 136 +{ +( -64 1376 48 ) ( -64 1377 48 ) ( -64 1376 49 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( -64 1376 48 ) ( -64 1376 49 ) ( -63 1376 48 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( -64 1376 16 ) ( -63 1376 16 ) ( -64 1377 16 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( 112 1488 64 ) ( 112 1489 64 ) ( 113 1488 64 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( 112 1600 64 ) ( 113 1600 64 ) ( 112 1600 65 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( 112 1488 64 ) ( 112 1488 65 ) ( 112 1489 64 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +} +// brush 137 +{ +( -64 1376 288 ) ( -64 1377 288 ) ( -64 1376 289 ) MustRemove/fancytiles3 0 112 0 1 1 0 0 0 +( -64 1376 288 ) ( -64 1376 289 ) ( -63 1376 288 ) MustRemove/fancytiles3 0 112 0 1 1 0 0 0 +( -64 1376 256 ) ( -63 1376 256 ) ( -64 1377 256 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( 112 1488 304 ) ( 112 1489 304 ) ( 113 1488 304 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( 112 1600 304 ) ( 113 1600 304 ) ( 112 1600 305 ) MustRemove/fancytiles3 0 112 0 1 1 0 0 0 +( 112 1488 304 ) ( 112 1488 305 ) ( 112 1489 304 ) MustRemove/fancytiles3 0 112 0 1 1 0 0 0 +} +// brush 138 +{ +( 112 1392 16 ) ( 112 1393 16 ) ( 112 1392 17 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( 112 1376 16 ) ( 112 1376 17 ) ( 113 1376 16 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( 112 1392 16 ) ( 113 1392 16 ) ( 112 1393 16 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( 144 1552 304 ) ( 144 1553 304 ) ( 145 1552 304 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( 144 1600 32 ) ( 145 1600 32 ) ( 144 1600 33 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( 144 1552 32 ) ( 144 1552 33 ) ( 144 1553 32 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +} +// brush 139 +{ +( -96 1392 16 ) ( -96 1393 16 ) ( -96 1392 17 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( -96 1376 16 ) ( -96 1376 17 ) ( -95 1376 16 ) MustRemove/fancytiles3 80 0 0 1 1 0 0 0 +( -96 1392 16 ) ( -95 1392 16 ) ( -96 1393 16 ) MustRemove/fancytiles3 80 0 0 1 1 0 0 0 +( -64 1552 304 ) ( -64 1553 304 ) ( -63 1552 304 ) MustRemove/fancytiles3 80 0 0 1 1 0 0 0 +( -64 1600 32 ) ( -63 1600 32 ) ( -64 1600 33 ) MustRemove/fancytiles3 80 0 0 1 1 0 0 0 +( -64 1552 32 ) ( -64 1552 33 ) ( -64 1553 32 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +} +// brush 140 +{ +( -96 1600 16 ) ( -96 1601 16 ) ( -96 1600 17 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( -96 1600 16 ) ( -96 1600 17 ) ( -95 1600 16 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( -96 1600 16 ) ( -95 1600 16 ) ( -96 1601 16 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( 144 1648 304 ) ( 144 1649 304 ) ( 145 1648 304 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( 144 1648 32 ) ( 145 1648 32 ) ( 144 1648 33 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +( 144 1648 32 ) ( 144 1648 33 ) ( 144 1649 32 ) MustRemove/fancytiles3 0 0 0 1 1 0 0 0 +} +// brush 141 +{ +( -160 224 -144 ) ( -160 225 -144 ) ( -160 224 -143 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 272 208 -144 ) ( 272 208 -143 ) ( 273 208 -144 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 272 224 -368 ) ( 273 224 -368 ) ( 272 225 -368 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 512 448 -128 ) ( 512 449 -128 ) ( 513 448 -128 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 512 448 -128 ) ( 513 448 -128 ) ( 512 448 -127 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 512 448 -128 ) ( 512 448 -127 ) ( 512 449 -128 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 142 +{ +( -544 208 -144 ) ( -544 209 -144 ) ( -544 208 -143 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -544 208 -144 ) ( -544 208 -143 ) ( -543 208 -144 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -544 208 -336 ) ( -543 208 -336 ) ( -544 209 -336 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -256 448 -128 ) ( -256 449 -128 ) ( -255 448 -128 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -256 448 -128 ) ( -255 448 -128 ) ( -256 448 -127 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -320 448 -128 ) ( -320 448 -127 ) ( -320 449 -128 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 143 +{ +( -320 448 -304 ) ( -320 64 -192 ) ( -320 64 -368 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -320 64 -192 ) ( -112 64 -192 ) ( -112 64 -368 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -112 64 -368 ) ( -112 448 -368 ) ( -320 448 -368 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -320 448 -304 ) ( -112 448 -304 ) ( -112 64 -192 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -112 448 -368 ) ( -112 448 -304 ) ( -320 448 -304 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -160 64 -192 ) ( -160 448 -304 ) ( -160 448 -368 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 144 +{ +( -544 64 -208 ) ( -544 65 -208 ) ( -544 64 -207 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -544 64 -208 ) ( -544 64 -207 ) ( -543 64 -208 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -544 64 -336 ) ( -543 64 -336 ) ( -544 65 -336 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -480 208 -192 ) ( -480 209 -192 ) ( -479 208 -192 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -480 208 -192 ) ( -479 208 -192 ) ( -480 208 -191 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -320 208 -192 ) ( -320 208 -191 ) ( -320 209 -192 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 145 +{ +( -160 64 -208 ) ( -160 65 -208 ) ( -160 64 -207 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 256 64 -208 ) ( 256 64 -207 ) ( 257 64 -208 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 256 64 -368 ) ( 257 64 -368 ) ( 256 65 -368 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 512 208 -192 ) ( 512 209 -192 ) ( 513 208 -192 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 512 208 -192 ) ( 513 208 -192 ) ( 512 208 -191 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( 512 208 -192 ) ( 512 208 -191 ) ( 512 209 -192 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 146 +{ +( -368 1104 -304 ) ( -368 1105 -304 ) ( -368 1104 -303 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -368 1104 -304 ) ( -368 1104 -303 ) ( -367 1104 -304 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -368 1104 -304 ) ( -367 1104 -304 ) ( -368 1105 -304 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -320 1376 64 ) ( -320 1377 64 ) ( -319 1376 64 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -320 1376 -288 ) ( -319 1376 -288 ) ( -320 1376 -287 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -320 1376 -288 ) ( -320 1376 -287 ) ( -320 1377 -288 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 147 +{ +( -368 1104 624 ) ( -368 1105 624 ) ( -368 1104 625 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -368 1104 624 ) ( -368 1104 625 ) ( -367 1104 624 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -368 1104 208 ) ( -367 1104 208 ) ( -368 1105 208 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -320 1328 656 ) ( -320 1329 656 ) ( -319 1328 656 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -320 1328 640 ) ( -319 1328 640 ) ( -320 1328 641 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -320 1328 640 ) ( -320 1328 641 ) ( -320 1329 640 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 148 +{ +( -656 1104 48 ) ( -656 1105 48 ) ( -656 1104 49 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -480 640 48 ) ( -480 640 49 ) ( -479 640 48 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -480 1104 32 ) ( -479 1104 32 ) ( -480 1105 32 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -368 1328 64 ) ( -368 1329 64 ) ( -367 1328 64 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -368 1360 64 ) ( -367 1360 64 ) ( -368 1360 65 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -368 1328 64 ) ( -368 1328 65 ) ( -368 1329 64 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 149 +{ +( -656 640 64 ) ( -656 641 64 ) ( -656 640 65 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -656 640 64 ) ( -656 640 65 ) ( -655 640 64 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -656 640 64 ) ( -655 640 64 ) ( -656 641 64 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -368 672 320 ) ( -368 673 320 ) ( -367 672 320 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -368 672 80 ) ( -367 672 80 ) ( -368 672 81 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -368 672 80 ) ( -368 672 81 ) ( -368 673 80 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +// brush 150 +{ +( -656 1328 64 ) ( -656 1329 64 ) ( -656 1328 65 ) MustRemove/sandstone 80 0 0 1 1 0 0 0 +( -656 1328 64 ) ( -656 1328 65 ) ( -655 1328 64 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -656 1328 64 ) ( -655 1328 64 ) ( -656 1329 64 ) MustRemove/sandstone 0 -80 0 1 1 0 0 0 +( -368 1360 320 ) ( -368 1361 320 ) ( -367 1360 320 ) MustRemove/sandstone 0 -80 0 1 1 0 0 0 +( -368 1360 80 ) ( -367 1360 80 ) ( -368 1360 81 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -368 1360 80 ) ( -368 1360 81 ) ( -368 1361 80 ) MustRemove/sandstone 80 0 0 1 1 0 0 0 +} +// brush 151 +{ +( -656 1104 336 ) ( -656 1105 336 ) ( -656 1104 337 ) MustRemove/sandstone 0 32 0 1 1 0 0 0 +( -480 640 336 ) ( -480 640 337 ) ( -479 640 336 ) MustRemove/sandstone 0 32 0 1 1 0 0 0 +( -480 1104 320 ) ( -479 1104 320 ) ( -480 1105 320 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -368 1328 352 ) ( -368 1329 352 ) ( -367 1328 352 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -368 1360 352 ) ( -367 1360 352 ) ( -368 1360 353 ) MustRemove/sandstone 0 32 0 1 1 0 0 0 +( -368 1328 352 ) ( -368 1328 353 ) ( -368 1329 352 ) MustRemove/sandstone 0 32 0 1 1 0 0 0 +} +// brush 152 +{ +( -656 672 64 ) ( -656 673 64 ) ( -656 672 65 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -656 672 64 ) ( -656 672 65 ) ( -655 672 64 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -656 672 64 ) ( -655 672 64 ) ( -656 673 64 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -624 704 320 ) ( -624 705 320 ) ( -623 704 320 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -624 1328 80 ) ( -623 1328 80 ) ( -624 1328 81 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +( -624 704 80 ) ( -624 704 81 ) ( -624 705 80 ) MustRemove/sandstone 0 0 0 1 1 0 0 0 +} +} +// entity 1 +{ +"classname" "light" +"origin" "280 -408 34" +} +// entity 2 +{ +"classname" "light" +"origin" "424 -408 34" +} +// entity 3 +{ +"classname" "light" +"origin" "280 24 34" +} +// entity 4 +{ +"classname" "light" +"origin" "424 24 34" +} +// entity 5 +{ +"classname" "mesh_sconce1" +"origin" "424 24 8" +"angle" "270" +} +// entity 6 +{ +"classname" "mesh_sconce1" +"origin" "280 24 8" +"angle" "270" +} +// entity 7 +{ +"classname" "mesh_sconce1" +"origin" "280 -408 8" +"angle" "90" +} +// entity 8 +{ +"classname" "mesh_sconce1" +"origin" "424 -408 8" +"angle" "90" +} +// entity 9 +{ +"classname" "light" +"origin" "712 -184 114" +"light" "450" +} +// entity 10 +{ +"classname" "light" +"origin" "296 376 82" +} +// entity 11 +{ +"classname" "light" +"origin" "-56 392 82" +"light" "200" +} +// entity 12 +{ +"classname" "func_button" +"targetname" "" +"angle" "" +"target" "james" +// brush 0 +{ +( 560 16 -32 ) ( 560 17 -32 ) ( 560 16 -31 ) placeholder/+0button1 32 32 0 0.5 0.5 0 0 0 +( 560 16 -32 ) ( 560 16 -31 ) ( 561 16 -32 ) placeholder/+0button1 32 32 0 0.5 0.5 0 0 0 +( 560 16 -48 ) ( 561 16 -48 ) ( 560 17 -48 ) placeholder/+0button1 32 0 0 0.5 0.5 0 0 0 +( 592 32 -16 ) ( 592 33 -16 ) ( 593 32 -16 ) placeholder/+0button1 32 0 0 0.5 0.5 0 0 0 +( 592 32 -16 ) ( 593 32 -16 ) ( 592 32 -15 ) placeholder/+0button1 32 32 0 0.5 0.5 0 0 0 +( 592 32 -16 ) ( 592 32 -15 ) ( 592 33 -16 ) placeholder/+0button1 32 32 0 0.5 0.5 0 0 0 +} +} +// entity 13 +{ +"classname" "func_door" +"targetname" "james" +// brush 0 +{ +( -80 1296 64 ) ( -80 1297 64 ) ( -80 1296 65 ) MustRemove/fancytiles1 48 0 0 1.5 1.1 0 0 0 +( -80 1296 64 ) ( -80 1296 65 ) ( -79 1296 64 ) MustRemove/fancytiles1 48 0 0 1.5 1.1 0 0 0 +( -80 1296 64 ) ( -79 1296 64 ) ( -80 1297 64 ) MustRemove/fancytiles1 48 0 0 1.5 1.1 0 0 0 +( 128 1328 272 ) ( 128 1329 272 ) ( 129 1328 272 ) MustRemove/fancytiles1 48 0 0 1.5 1.1 0 0 0 +( 128 1328 80 ) ( 129 1328 80 ) ( 128 1328 81 ) MustRemove/fancytiles1 48 0 0 1.5 1.1 0 0 0 +( 128 1328 80 ) ( 128 1328 81 ) ( 128 1329 80 ) MustRemove/fancytiles1 48 0 0 1.5 1.1 0 0 0 +} +} +// entity 14 +{ +"classname" "mesh_bigcandle" +"origin" "344 -760 -56" +} +// entity 15 +{ +"classname" "mesh_bigcandle" +"origin" "392 -792 -56" +} +// entity 16 +{ +"classname" "mesh_bigcandle" +"origin" "296 -760 -56" +} +// entity 17 +{ +"classname" "light" +"origin" "360 -760 -8" +"light" "250" +} +// entity 18 +{ +"classname" "mesh_bigcandle" +"origin" "-216 -776 -56" +} +// entity 19 +{ +"classname" "light" +"origin" "-152 -776 -8" +"light" "150" +} +// entity 20 +{ +"classname" "mesh_bigcandle" +"origin" "-152 -824 -56" +} +// entity 21 +{ +"classname" "mesh_bigcandle" +"origin" "-120 -760 -56" +} +// entity 22 +{ +"classname" "mesh_bigcandle" +"origin" "-88 -536 -184" +} +// entity 23 +{ +"classname" "mesh_bigcandle" +"origin" "-56 -584 -184" +} +// entity 24 +{ +"classname" "light" +"origin" "-40 -536 -136" +"light" "150" +} +// entity 25 +{ +"classname" "mesh_bigcandle" +"origin" "-24 -520 -184" +} +// entity 26 +{ +"classname" "mesh_bigcandle" +"origin" "-88 328 -56" +} +// entity 27 +{ +"classname" "mesh_bigcandle" +"origin" "-136 264 -56" +} +// entity 28 +{ +"classname" "light" +"origin" "-120 312 -8" +"light" "250" +} +// entity 29 +{ +"classname" "mesh_bigcandle" +"origin" "-152 312 -56" +} +// entity 30 +{ +"classname" "mesh_bigcandle" +"origin" "-168 360 -56" +} +// entity 31 +{ +"classname" "mesh_bigcandle" +"origin" "-504 -200 -56" +} +// entity 32 +{ +"classname" "mesh_bigcandle" +"origin" "-440 -184 -56" +} +// entity 33 +{ +"classname" "light" +"origin" "-456 -152 -8" +"light" "250" +} +// entity 34 +{ +"classname" "mesh_bigcandle" +"origin" "-440 -104 -56" +} +// entity 35 +{ +"classname" "mesh_bigcandle" +"origin" "-504 -104 -56" +} +// entity 36 +{ +"classname" "mesh_bigcandle" +"origin" "-456 -136 -56" +} +// entity 37 +{ +"classname" "mesh_bigcandle" +"origin" "344 -728 -56" +} +// entity 38 +{ +"classname" "mesh_bigcandle" +"origin" "408 -744 -56" +} +// entity 39 +{ +"classname" "mesh_sconce1" +"origin" "184 1320 200" +"angle" "270" +} +// entity 40 +{ +"classname" "mesh_sconce1" +"origin" "-136 1320 200" +"angle" "270" +} +// entity 41 +{ +"classname" "light" +"origin" "184 1320 232" +} +// entity 42 +{ +"classname" "light" +"origin" "-136 1320 232" +} +// entity 43 +{ +"classname" "light" +"origin" "-8 856 344" +"light" "600" +} +// entity 44 +{ +"classname" "trigger_mapend" +"map" "start" +"message" "You're not leaving without your friends, are you?" +// brush 0 +{ +( -64 1376 64 ) ( -64 1377 64 ) ( -64 1376 65 ) trigger 0 0 0 1 1 0 0 0 +( -64 1376 64 ) ( -64 1376 65 ) ( -63 1376 64 ) trigger 0 0 0 1 1 0 0 0 +( -64 1376 64 ) ( -63 1376 64 ) ( -64 1377 64 ) trigger 0 0 0 1 1 0 0 0 +( 112 1600 256 ) ( 112 1601 256 ) ( 113 1600 256 ) trigger 0 0 0 1 1 0 0 0 +( 112 1600 80 ) ( 113 1600 80 ) ( 112 1600 81 ) trigger 0 0 0 1 1 0 0 0 +( 112 1600 80 ) ( 112 1600 81 ) ( 112 1601 80 ) trigger 0 0 0 1 1 0 0 0 +} +} +// entity 45 +{ +"classname" "light" +"origin" "24 1592 232" +"light" "100" +} +// entity 46 +{ +"classname" "light" +"origin" "-312 376 -168" +"light" "100" +} +// entity 47 +{ +"classname" "light" +"origin" "360 1016 -200" +"light" "100" +} +// entity 48 +{ +"classname" "light" +"origin" "-312 952 -216" +"light" "100" +} +// entity 49 +{ +"classname" "info_player_start" +"origin" "-480 752 88" +} +// entity 50 +{ +"classname" "light" +"origin" "-536 888 200" +} +// entity 51 +{ +"classname" "light" +"origin" "360 728 -200" +"light" "100" +} +// entity 52 +{ +"classname" "light" +"origin" "-296 696 -216" +"light" "100" +} +// entity 53 +{ +"classname" "light" +"origin" "104 616 -200" +"light" "100" +} +// entity 54 +{ +"classname" "light" +"origin" "8 -328 -56" +"light" "100" +} +// entity 55 +{ +"classname" "light" +"origin" "24 -56 -56" +"light" "100" +} diff --git a/sourcefiles/psd/banded door.psd b/sourcefiles/psd/banded door.psd Binary files differ. diff --git a/sourcefiles/psd/bileheadUV.kra b/sourcefiles/psd/bileheadUV.kra Binary files differ. diff --git a/sourcefiles/psd/bileheadUV.psd b/sourcefiles/psd/bileheadUV.psd Binary files differ. diff --git a/sourcefiles/psd/boar.psd b/sourcefiles/psd/boar.psd Binary files differ. diff --git a/sourcefiles/psd/cathedralbrick.psd b/sourcefiles/psd/cathedralbrick.psd Binary files differ. diff --git a/sourcefiles/psd/cathedralwall.psd b/sourcefiles/psd/cathedralwall.psd Binary files differ. diff --git a/sourcefiles/psd/eyeball.psd b/sourcefiles/psd/eyeball.psd Binary files differ. diff --git a/sourcefiles/psd/intestine.psd b/sourcefiles/psd/intestine.psd Binary files differ. diff --git a/sourcefiles/psd/monkeybat.psd b/sourcefiles/psd/monkeybat.psd Binary files differ. diff --git a/sourcefiles/psd/muffler.psd b/sourcefiles/psd/muffler.psd Binary files differ. diff --git a/sourcefiles/psd/scrambler.kra b/sourcefiles/psd/scrambler.kra Binary files differ. diff --git a/sourcefiles/psd/scrambler.psd b/sourcefiles/psd/scrambler.psd Binary files differ. diff --git a/sourcefiles/psd/stainedglass.psd b/sourcefiles/psd/stainedglass.psd Binary files differ. diff --git a/sourcefiles/psd/window 2.psd b/sourcefiles/psd/window 2.psd Binary files differ. diff --git a/sourcefiles/sounds/PHfootstep1.wav b/sourcefiles/sounds/PHfootstep1.wav Binary files differ. diff --git a/sourcefiles/sounds/PHfootstep2.wav b/sourcefiles/sounds/PHfootstep2.wav Binary files differ. diff --git a/sourcefiles/sounds/death.wav b/sourcefiles/sounds/death.wav Binary files differ. diff --git a/sourcefiles/sounds/hock.wav b/sourcefiles/sounds/hock.wav Binary files differ. diff --git a/sourcefiles/sounds/hurtbad.wav b/sourcefiles/sounds/hurtbad.wav Binary files differ. diff --git a/sourcefiles/sounds/ouch.wav b/sourcefiles/sounds/ouch.wav Binary files differ. diff --git a/sourcefiles/sounds/ouch2.wav b/sourcefiles/sounds/ouch2.wav Binary files differ. diff --git a/sourcefiles/sounds/shotgun.wav b/sourcefiles/sounds/shotgun.wav Binary files differ. diff --git a/sourcefiles/trenchbroom-files/CABBAGE.png b/sourcefiles/trenchbroom-files/CABBAGE.png Binary files differ. diff --git a/sourcefiles/trenchbroom-files/GameConfig.cfg b/sourcefiles/trenchbroom-files/GameConfig.cfg @@ -0,0 +1,34 @@ +{ + version: 4, + name: "FANGFLECKED", + icon: "CABBAGE.png", + "fileformats": [ + { "format": "Quake3 (legacy)", "initialmap": "initial_fang.map" } + ], + "filesystem": { + "searchpath": "fangflecked", + "packageformat": { "extension": "pk3", "format": "zip" } + }, + "textures": { + "package": { "type": "directory", "root": "textures" }, + "format": { "extensions": ["png", "tga"], "format": "image" }, + "attribute": "_tb_textures" + }, + "entities": { + "definitions": [ "fang.fgd" ], + "defaultcolor": "0.6 0.6 0.6 1.0", + "modelformats": [ "mdl", "bsp", "iqm" ] + }, + "tags": { + "brush": [ + { + "name": "Trigger", + "attribs": [ "transparent" ], + "match": "classname", + "pattern": "trigger*", + "texture": "trigger" + } + ] + }, + "softMapBounds":"-4096 -4096 -4096 4096 4096 4096" +} diff --git a/sourcefiles/trenchbroom-files/fang.fgd b/sourcefiles/trenchbroom-files/fang.fgd @@ -0,0 +1,63 @@ +//spawnflags not yet implemented. Get on that! + +@SolidClass = worldspawn : "World entity" +[ + message(string) : "Text (broadcast to all players) on entering the world" + strack(string) : "Preface the filename with 'sounds/' for now." +] + +@baseclass = Angle [ angle(integer) : "Direction" ] +@baseclass = Targetname [ + targetname(target_source) : "Name" +] +@baseclass = Target [ + target(target_destination) : "Target" +] + +@baseclass base(Appearflags) size(-16 -16 -24, 16 16 32) + color(0 255 0) model({ "path": "models/pmodel.iqm" }) = PlayerClass [] + + @PointClass base(PlayerClass) = info_player_start : "Player start" [] + +@baseclass color(255 255 40) = Light +[ + light(integer) : "Brightness" : 300 +] + +@PointClass size(-8 -8 -8, 8 8 8) base(Light) = + light : "Invisible light source" + [ +// spawnflags(Flags) = [ 1 : "Start off" : 0 ] + ] + +@baseclass base(Angle) color(220 0 0) = Monster [] + +@PointClass base(Monster) size(-16 -16 -24, 16 16 40) model({ "path": "models/spitter.iqm" }) = monster_scrambler : "Scrambler" [] + +@SolidClass base(Angle, Target, Targetname) = func_button : "Button" +[ + target(target_source) : "Target" +] + +@baseclass = Trigger +[ + +] + +@solidclass base(Trigger) = trigger_mapend : "Level End Trigger" +[ + map(string) : "Next Map" + message(string) : "Text displayed when there's a player not in the exit" +] + +@solidclass base(Angle, Targetname) = func_door : "Door" [] + +@baseclass = Mesh +[ + +] + +@PointClass base(Mesh) = mesh_bigcandle : "Large Candle" [] +@PointClass base(Mesh) = mesh_chandelier1 : "Chandelier" [] + +@Pointclass base(Mesh) = mesh_sconce1 : "flame particle test" [] diff --git a/sourcefiles/trenchbroom-files/initial_fang.map b/sourcefiles/trenchbroom-files/initial_fang.map @@ -0,0 +1,17 @@ +// Game: FANGFLECKED +// Format: Quake3 (legacy) +// entity 0 +{ +"classname" "worldspawn" +"_tb_textures" "textures;textures/MustRemove;textures/placeholder" +"_keepLights" "1" +// brush 0 +{ +( -64 -64 -16 ) ( -64 -63 -16 ) ( -64 -64 -15 ) placeholder/tile2 0 0 0 1 1 0 0 0 +( -64 -64 -16 ) ( -64 -64 -15 ) ( -63 -64 -16 ) placeholder/tile2 0 0 0 1 1 0 0 0 +( -64 -64 -16 ) ( -63 -64 -16 ) ( -64 -63 -16 ) placeholder/tile2 0 0 0 1 1 0 0 0 +( 64 64 16 ) ( 64 65 16 ) ( 65 64 16 ) placeholder/tile2 0 0 0 1 1 0 0 0 +( 64 64 16 ) ( 65 64 16 ) ( 64 64 17 ) placeholder/tile2 0 0 0 1 1 0 0 0 +( 64 64 16 ) ( 64 64 17 ) ( 64 65 16 ) placeholder/tile2 0 0 0 1 1 0 0 0 +} +}