In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

Level Optimizer

rectangle level optimizer

CLICK to change bitmap view / graphics view
LEFT prev level
RIGHT next level
DRAG level with mouse

used in: http://castlemonster.flashplusplus.net
included first 8 level
Get Adobe Flash player
by NewKrok 12 Jun 2013
package {

    import flash.display.Sprite;
    import flash.text.TextField;
    import flash.text.TextFormat;
    import flash.events.MouseEvent;
    import flash.events.Event;
    import flash.display.Sprite;
    import flash.display.DisplayObject;
    import flash.display.BitmapData;
    import flash.geom.Point;
    import flash.display.Bitmap;
    import flash.geom.Rectangle;
    import flash.display.Loader;
    import flash.net.URLRequest;
    import flash.system.LoaderContext;
    import flash.events.KeyboardEvent;
    import flash.ui.Keyboard;

    public class FlashTest extends Sprite {
        
        private var cLevel:int = 0;
        private var checkClick:Boolean = true;
        private var isGraphicsView:Boolean = true;
        private var container:Sprite;
        private var back:Sprite;
        private var _levelStrings:Vector.<String>;
        private var size:Point = new Point ();
        private var terrain:Bitmap;
        
        public function FlashTest () :void {
            loadImage ( "http://assets.wonderfl.net/images/related_images/0/00/0082/0082dd6f4d0d071752915367f439b4c6d29c85d5m", inited );
        }
        
        private function loadImage ( $url:String, $onComplete:Function ) :void {
            var imageLoader:Loader = new Loader ();
            imageLoader.contentLoaderInfo.addEventListener ( Event.COMPLETE, $onComplete );
            var image:URLRequest = new URLRequest ( $url );
            imageLoader.load ( image, new LoaderContext ( true ) );
        }
        
        private function inited ( event:Event ) :void {
            var terrainBMD:BitmapData = new BitmapData ( event.currentTarget.content.width, event.currentTarget.content.height, true, 0x60 );
            terrainBMD.draw ( event.currentTarget.content );
            terrain = new Bitmap ( terrainBMD, "auto", true );
            back = addChildAt ( new Sprite, 0 ) as Sprite;
            back.graphics.beginFill ( 0, 0 );
            back.graphics.drawRect ( 0, 0, 400, 400 );
            back.graphics.endFill ();
            back.addEventListener ( MouseEvent.MOUSE_DOWN, onMDown );
            back.addEventListener ( MouseEvent.MOUSE_UP, onMUp );
            back.addEventListener ( MouseEvent.MOUSE_MOVE, onMMove );
            back.addEventListener ( MouseEvent.CLICK, onClick );
            container = addChildAt ( new Sprite, 0 ) as Sprite;
            container.mouseChildren = false;
            container.mouseEnabled = false
            _levelStrings = getLevelStrings ();
            drawGraphicLevel ( processStaticData ( _levelStrings[cLevel] ) );
            stage.addEventListener ( KeyboardEvent.KEY_UP, keyUp );
        }

        private function keyUp ( event:KeyboardEvent ) :void {
            switch ( event.keyCode ) {
                case Keyboard.LEFT:
                    prevL ();
                    break;
                case Keyboard.RIGHT:
                    nextL ();
                    break;
            }
        }

/*controller.rightB.addEventListener ( MouseEvent.CLICK, nextL );
controller.leftB.addEventListener ( MouseEvent.CLICK, prevL );
*/
        private function nextL ( event:MouseEvent = null ) :void {
            cLevel++;
            if ( cLevel > _levelStrings.length - 1 )
                cLevel = 0;
            if ( isGraphicsView )
                drawGraphicLevel ( processStaticData ( _levelStrings[cLevel] ) );
            else
                drawBitmapLevel ( processStaticData ( _levelStrings[cLevel] ) );
        }
        
        private function prevL ( event:MouseEvent = null ) :void {
            cLevel--;
            if ( cLevel < 0 )
                cLevel = _levelStrings.length - 1;
            if ( isGraphicsView )
                drawGraphicLevel ( processStaticData ( _levelStrings[cLevel] ) );
            else
                drawBitmapLevel ( processStaticData ( _levelStrings[cLevel] ) );
        }

        private function onClick ( event:MouseEvent ) :void {
            if ( checkClick ) {
                isGraphicsView = !isGraphicsView;
                if ( isGraphicsView )
                    drawGraphicLevel ( processStaticData ( _levelStrings[cLevel] ), false );
                else
                    drawBitmapLevel ( processStaticData ( _levelStrings[cLevel] ), false );
            }
        }

        private function onMMove ( event:MouseEvent ) :void {
            checkClick = false;
            back.x = mouseX - back.width / 2;
            back.y = mouseY - back.height / 2;
        }
        
        private function onMDown ( event:MouseEvent ) :void {
            checkClick = true;
            container.startDrag ();
        }
        
        private function onMUp ( event:MouseEvent ) :void {
            container.stopDrag ();
        }

        private function processStaticData ( $levelString:String ) :Vector.<Rectangle> {
            size = new Point;
            var baseProperties:Array = $levelString.split ( "|" );
            var tmpRectangles:Vector.<Rectangle> = new Vector.<Rectangle>;
            baseProperties[0] = baseProperties[0].replace ( "BASE_TERRAIN_POINTS:", "" );
            var points:Array = baseProperties[0].split ( "),(" );
            var baseCounter:uint = 0;
            for ( var i:int = 0; i < points.length; i++ ) {
                points[i] = points[i].replace ( "(", "" );
                points[i] = points[i].replace ( ")", "" );
                points[i] = points[i].replace ( " ", "" );
                points[i] = points[i].replace ( "x=", "" );
                points[i] = points[i].replace ( "y=", "" );
                var tmpArray:Array = points[i].split ( "," );
                baseCounter++;
                tmpRectangles.push ( new Rectangle ( tmpArray[0], tmpArray[1], 31, 30 ) );
                if ( size.y < Number ( tmpArray[1] ) ) {
                    size.y = Number ( tmpArray[1] ) + 30;
                }
                if ( size.x < Number ( tmpArray[0] ) )
                    size.x = Number ( tmpArray[0] ) + 31;
            }
            baseProperties[17] = baseProperties[17].replace ( "ICE_TERRAIN_POINTS:", "" );
            points = baseProperties[17].split ( "),(" );
            for ( i = 0; i < points.length; i++ ) {
                points[i] = points[i].replace ( "(", "" );
                points[i] = points[i].replace ( ")", "" );
                points[i] = points[i].replace ( " ", "" );
                points[i] = points[i].replace ( "x=", "" );
                points[i] = points[i].replace ( "y=", "" );
                tmpArray = points[i].split ( "," );
                baseCounter++;
                if ( !isNaN ( tmpArray[1] ) )
                    tmpRectangles.push ( new Rectangle ( tmpArray[0], tmpArray[1], 31, 30 ) );
            }
            for ( i = 0; i < tmpRectangles.length; i++ ) {
                var rectA:Rectangle = tmpRectangles[i];
                for ( var j:uint = 0; j < tmpRectangles.length; j++ ) {
                    if ( i != j ) {
                        var rectB:Rectangle = tmpRectangles[j];
                        var conditionLeftToRight:Boolean = rectA.x + rectA.width == rectB.x && rectA.y == rectB.y && rectA.height == rectB.height;
                        if ( conditionLeftToRight ) {
                            tmpRectangles.splice ( i, 1 );
                            tmpRectangles.splice ( j - ( j < i ? 0 : 1 ), 1 );
                            var original:Vector.<Rectangle> = tmpRectangles.slice ();
                            var temp:Vector.<Rectangle> = original.splice ( i, tmpRectangles.length - i );
                            original[i > original.length ? original.length - 1 : i] = new Rectangle ( rectA.x, rectA.y, rectA.width + rectB.width, rectA.height );
                            original = original.concat ( temp )
                            tmpRectangles = original;
                            i--;
                            break;
                        }
                        var conditionRightToLeft:Boolean = rectA.x - rectB.width == rectB.x && rectA.y == rectB.y && rectA.height == rectB.height;
                        if ( conditionRightToLeft ) {
                            tmpRectangles.splice ( i, 1 );
                            tmpRectangles.splice ( j - ( j < i ? 0 : 1 ), 1 );
                            original = tmpRectangles.slice ();
                            temp = original.splice ( i, tmpRectangles.length - i );
                            original[i > original.length ? original.length - 1 : i] = new Rectangle ( rectB.x, rectB.y, rectB.width + rectA.width, rectB.height );
                            original = original.concat ( temp )
                            tmpRectangles = original;
                            i--;
                            break;
                        }
                        var conditionUpToBottom:Boolean = rectA.y + rectA.height == rectB.y && rectA.x == rectB.x && rectA.width == rectB.width;
                        if ( conditionUpToBottom ) {
                            tmpRectangles.splice ( i, 1 );
                            tmpRectangles.splice ( j - ( j < i ? 0 : 1 ), 1 );
                            original = tmpRectangles.slice ();
                            temp = original.splice ( i, tmpRectangles.length - i );
                            original[i] = new Rectangle ( rectA.x, rectA.y, rectA.width, rectA.height + rectB.height );
                            original = original.concat ( temp )
                            tmpRectangles = original;
                            i--;
                            break;
                        }
                        var conditionBottomToUp:Boolean =  rectA.y - rectB.height == rectB.y && rectA.x == rectB.x && rectA.width == rectB.width;
                        if ( conditionBottomToUp ) {
                            tmpRectangles.splice ( i, 1 );
                            tmpRectangles.splice ( j - ( j < i ? 0 : 1 ), 1 );
                            original = tmpRectangles.slice ();
                            temp = original.splice ( i, tmpRectangles.length - i );
                            original[i] = new Rectangle ( rectB.x, rectB.y, rectB.width, rectA.height + rectB.height );
                            original = original.concat ( temp )
                            tmpRectangles = original;
                            i--;
                            break;
                        }
                    }
                }
            }
            //controller.result_txt.text = baseCounter + " => " + tmpRectangles.length;
            return tmpRectangles;
        }

        private function drawGraphicLevel ( $rectangles:Vector.<Rectangle>, $resetPosition:Boolean = true ) :void {
            //controller.level_txt.text = "level " + cLevel;
            if ( $resetPosition ) {
                container.x = 0;
                container.y = 0;
            }
            while ( container.numChildren > 0 )
                container.removeChildAt ( 0 );
            container.graphics.clear ();
            var baseTextFormat:TextFormat = new TextFormat ( "Arial", 16, 0x000000 );
            var index:uint = 0;
            for each ( var rect:Rectangle in $rectangles ) {
                container.graphics.lineStyle ( 1, 0, 1 );
                container.graphics.beginFill ( uint.MAX_VALUE * Math.random (), .5 );
                container.graphics.drawRect ( rect.x, rect.y, rect.width, rect.height );
                container.graphics.endFill ();
                var textField:TextField = container.addChild ( new TextField () ) as TextField;
                textField.x = rect.x;
                textField.y = rect.y + 5;
                textField.selectable = false;
                textField.width = rect.width;
                textField.autoSize = "center";
                textField.text = String ( index );
                textField.embedFonts = true;
                textField.defaultTextFormat = baseTextFormat;
                textField.text = String ( index );
                textField.mouseEnabled = false;
                index++;
            }
        }

        private function drawBitmapLevel ( $rectangles:Vector.<Rectangle>, $resetPosition:Boolean = true ) :void {
            //controller.level_txt.text = "level " + cLevel;
            if ( $resetPosition ) {
                container.x = 0;
                container.y = 0;
            }
            while ( container.numChildren > 0 )
                container.removeChildAt ( 0 );
            container.graphics.clear ();
            var sprite:Sprite = container.addChild ( new Sprite ) as Sprite;
            sprite.graphics.lineStyle ( 1, 0, 1 );
            sprite.graphics.beginFill ( 0xFF0000, .2 );
            var xPiece:uint = Math.ceil ( size.x / 2048 );
            var yPiece:uint = Math.ceil ( size.y / 2048 );
            for ( i = 0; i < xPiece; i++ ) {
                for ( j = 0; j < yPiece; j++ ) {
                    sprite.graphics.drawRect ( i * 2048, j * 2048, i == xPiece - 1 ? size.x - i * 2048 : 2048, j == yPiece - 1 ? size.y - j * 2048 : 2048 );
                }
            }
            sprite.graphics.endFill ();
            var baseGraphics:Bitmap = new Bitmap ( new BitmapData ( 31, 30 ) );
            baseGraphics.bitmapData.draw ( terrain );
            var tmp:BitmapData = new BitmapData ( size.x, size.y, true, 0x060 );
            for each ( var rect:Rectangle in $rectangles ) {
                for ( var i:uint = 0; i < Math.ceil ( rect.width / 31 ); i++ ) {
                    for ( var j:uint = 0; j < Math.ceil ( rect.height / 30 ); j++ ) {
                        tmp.copyPixels ( baseGraphics.bitmapData, new Rectangle ( 0, 0, rect.width, rect.height ), new Point ( rect.x + 31 * i, rect.y + 30 * j ) );
                    }
                }
            }
            var tmp2:Bitmap = container.addChild ( new Bitmap ( tmp ) ) as Bitmap;
            baseGraphics.bitmapData.dispose ();
        }

       private function getLevelStrings () :Vector.<String> {
            return new <String> [
                        "BASE_TERRAIN_POINTS:(x=0, y=420),(x=0, y=390),(x=0, y=330),(x=0, y=300),(x=0, y=270),(x=0, y=150),(x=0, y=120),(x=0, y=90),(x=0, y=60),(x=0, y=30),(x=0, y=0),(x=930, y=360),(x=930, y=330),(x=930, y=300),(x=930, y=270),(x=930, y=240),(x=930, y=210),(x=930, y=180),(x=930, y=150),(x=930, y=120),(x=930, y=90),(x=930, y=60),(x=930, y=30),(x=930, y=0),(x=527, y=0),(x=558, y=0),(x=589, y=0),(x=620, y=0),(x=651, y=0),(x=682, y=0),(x=713, y=0),(x=744, y=0),(x=775, y=0),(x=806, y=0),(x=837, y=0),(x=868, y=0),(x=899, y=0),(x=31, y=0),(x=62, y=0),(x=93, y=0),(x=124, y=0),(x=155, y=0),(x=186, y=0),(x=217, y=0),(x=248, y=0),(x=279, y=0),(x=310, y=0),(x=341, y=0),(x=372, y=0),(x=403, y=0),(x=434, y=0),(x=465, y=0),(x=496, y=0),(x=0, y=450),(x=930, y=390),(x=0, y=240),(x=0, y=210),(x=0, y=180),(x=0, y=360),(x=0, y=480),(x=930, y=480),(x=930, y=450),(x=930, y=420),(x=0, y=510),(x=930, y=510),(x=31, y=340),(x=62, y=340),(x=93, y=340),(x=124, y=340),(x=155, y=340),(x=186, y=340),(x=217, y=340),(x=248, y=340),(x=279, y=340),(x=310, y=340),(x=465, y=340),(x=496, y=370),(x=527, y=400),(x=558, y=400),(x=589, y=370),(x=620, y=340),(x=651, y=340),(x=682, y=340),(x=713, y=340),(x=744, y=340),(x=286, y=310),(x=317, y=310),(x=348, y=310),(x=286, y=280),(x=317, y=280),(x=255, y=310),(x=465, y=370),(x=620, y=370),(x=496, y=400),(x=589, y=400),(x=806, y=340),(x=837, y=340),(x=868, y=340),(x=899, y=340),(x=341, y=340),(x=372, y=340),(x=403, y=340),(x=434, y=340),(x=31, y=30),(x=899, y=30),(x=31, y=310),(x=899, y=310),(x=775, y=340)|CHARACTER_START_POINT:(x=664, y=314)|END_POINT:(x=779, y=278)|KEY_POINT:(x=315, y=253)|STAR_POINTS:(x=433, y=312),(x=559, y=372),(x=140, y=312)|BASE_BOX_POINTS:(x=113.95, y=288.65, r=0)|SPIKE_POINTS:|FALL_POINT:(x=31, y=682)|LONG_BOX_POINTS:|BOUNCER_POINTS:|DESTRUCTIBLE_TERRAIN_POINTS:|MOVING_PLATFORM_DATAS:|GHOST_DATAS:|MOVING_STAR_DATAS:|PORTAL_DATAS:|HEAT_DATAS:|SPIKE_BALL_DATAS:|ICE_TERRAIN_POINTS:|",
                        "BASE_TERRAIN_POINTS:(x=0, y=360),(x=0, y=330),(x=0, y=240),(x=0, y=210),(x=0, y=180),(x=0, y=150),(x=0, y=120),(x=0, y=90),(x=0, y=60),(x=0, y=30),(x=0, y=0),(x=930, y=360),(x=930, y=330),(x=930, y=300),(x=930, y=270),(x=930, y=240),(x=930, y=210),(x=930, y=180),(x=930, y=150),(x=930, y=120),(x=930, y=90),(x=930, y=60),(x=930, y=30),(x=930, y=0),(x=527, y=0),(x=558, y=0),(x=589, y=0),(x=620, y=0),(x=651, y=0),(x=682, y=0),(x=713, y=0),(x=744, y=0),(x=775, y=0),(x=806, y=0),(x=837, y=0),(x=868, y=0),(x=899, y=0),(x=31, y=0),(x=62, y=0),(x=93, y=0),(x=124, y=0),(x=155, y=0),(x=186, y=0),(x=217, y=0),(x=248, y=0),(x=279, y=0),(x=310, y=0),(x=341, y=0),(x=372, y=0),(x=403, y=0),(x=434, y=0),(x=465, y=0),(x=496, y=0),(x=0, y=420),(x=0, y=390),(x=930, y=420),(x=930, y=390),(x=0, y=300),(x=0, y=270),(x=0, y=450),(x=930, y=480),(x=930, y=450),(x=0, y=480),(x=31, y=340),(x=62, y=340),(x=93, y=340),(x=124, y=340),(x=155, y=340),(x=186, y=340),(x=217, y=340),(x=248, y=340),(x=279, y=340),(x=310, y=340),(x=465, y=340),(x=620, y=340),(x=651, y=340),(x=682, y=340),(x=246, y=310),(x=215, y=310),(x=837, y=340),(x=868, y=340),(x=899, y=340),(x=341, y=340),(x=372, y=340),(x=403, y=340),(x=434, y=340),(x=246, y=280),(x=215, y=280),(x=184, y=310),(x=246, y=250),(x=277, y=310),(x=277, y=280),(x=277, y=250),(x=394, y=310),(x=394, y=280),(x=394, y=250),(x=425, y=310),(x=425, y=280),(x=425, y=250),(x=496, y=340),(x=527, y=340),(x=558, y=340),(x=589, y=340),(x=456, y=310),(x=456, y=280),(x=487, y=310),(x=744, y=340),(x=775, y=340),(x=806, y=340),(x=713, y=340),(x=837, y=310),(x=806, y=310),(x=837, y=280),(x=806, y=280),(x=775, y=310),(x=837, y=250),(x=899, y=310),(x=899, y=280),(x=899, y=250),(x=868, y=310),(x=868, y=280),(x=868, y=250)|CHARACTER_START_POINT:(x=710, y=314)|END_POINT:(x=844, y=188)|KEY_POINT:(x=350, y=299)|STAR_POINTS:(x=351, y=174),(x=610, y=313),(x=107, y=313)|BASE_BOX_POINTS:(x=584.95, y=287.55, r=0)|SPIKE_POINTS:|FALL_POINT:(x=31, y=682)|LONG_BOX_POINTS:|BOUNCER_POINTS:|DESTRUCTIBLE_TERRAIN_POINTS:|MOVING_PLATFORM_DATAS:|GHOST_DATAS:|MOVING_STAR_DATAS:|PORTAL_DATAS:|HEAT_DATAS:|SPIKE_BALL_DATAS:|ICE_TERRAIN_POINTS:|",
                        "BASE_TERRAIN_POINTS:(x=0, y=270),(x=0, y=240),(x=0, y=210),(x=0, y=180),(x=0, y=150),(x=0, y=120),(x=0, y=90),(x=0, y=60),(x=0, y=30),(x=0, y=0),(x=930, y=330),(x=930, y=300),(x=930, y=270),(x=930, y=240),(x=930, y=210),(x=930, y=180),(x=930, y=150),(x=930, y=120),(x=930, y=90),(x=930, y=60),(x=930, y=30),(x=930, y=0),(x=527, y=0),(x=558, y=0),(x=589, y=0),(x=620, y=0),(x=651, y=0),(x=682, y=0),(x=713, y=0),(x=744, y=0),(x=775, y=0),(x=806, y=0),(x=837, y=0),(x=868, y=0),(x=899, y=0),(x=31, y=0),(x=62, y=0),(x=93, y=0),(x=124, y=0),(x=155, y=0),(x=186, y=0),(x=217, y=0),(x=248, y=0),(x=279, y=0),(x=310, y=0),(x=341, y=0),(x=372, y=0),(x=403, y=0),(x=434, y=0),(x=465, y=0),(x=496, y=0),(x=930, y=360),(x=930, y=390),(x=930, y=420),(x=930, y=450),(x=930, y=480),(x=930, y=510),(x=0, y=450),(x=0, y=420),(x=0, y=390),(x=0, y=360),(x=0, y=330),(x=0, y=300),(x=0, y=510),(x=0, y=480),(x=31, y=370),(x=62, y=370),(x=93, y=370),(x=124, y=370),(x=155, y=370),(x=186, y=370),(x=217, y=370),(x=248, y=370),(x=279, y=370),(x=310, y=370),(x=341, y=370),(x=403, y=370),(x=434, y=370),(x=496, y=370),(x=527, y=370),(x=558, y=370),(x=589, y=370),(x=620, y=370),(x=651, y=370),(x=682, y=370),(x=713, y=370),(x=744, y=370),(x=775, y=370),(x=372, y=370),(x=465, y=370),(x=124, y=270),(x=155, y=270),(x=186, y=270),(x=62, y=240),(x=62, y=210),(x=93, y=240),(x=124, y=240),(x=217, y=270),(x=31, y=240),(x=31, y=210),(x=434, y=210),(x=465, y=210),(x=806, y=370),(x=837, y=370),(x=868, y=370),(x=899, y=370),(x=31, y=270),(x=62, y=270),(x=93, y=270),(x=496, y=210),(x=496, y=180),(x=496, y=150),(x=496, y=120),(x=496, y=30),(x=403, y=210),(x=496, y=90),(x=496, y=60),(x=372, y=210),(x=465, y=30),(x=527, y=30),(x=31, y=30),(x=899, y=30),(x=496, y=240),(x=527, y=240),(x=558, y=240),(x=589, y=240),(x=738, y=180),(x=769, y=180),(x=800, y=180),(x=800, y=150),(x=800, y=120),(x=800, y=90),(x=800, y=60),(x=800, y=30),(x=831, y=30),(x=769, y=30)|CHARACTER_START_POINT:(x=449, y=185)|END_POINT:(x=809, y=308)|KEY_POINT:(x=120, y=160)|STAR_POINTS:(x=767, y=155),(x=574, y=208),(x=58, y=335)|BASE_BOX_POINTS:(x=157, y=219.35, r=0),(x=94, y=188.35, r=0)|SPIKE_POINTS:|FALL_POINT:(x=31, y=459)|LONG_BOX_POINTS:|BOUNCER_POINTS:|DESTRUCTIBLE_TERRAIN_POINTS:|MOVING_PLATFORM_DATAS:|GHOST_DATAS:|MOVING_STAR_DATAS:|PORTAL_DATAS:|HEAT_DATAS:|SPIKE_BALL_DATAS:|ICE_TERRAIN_POINTS:|",
                        "BASE_TERRAIN_POINTS:(x=0, y=420),(x=0, y=390),(x=0, y=360),(x=0, y=330),(x=0, y=300),(x=0, y=270),(x=0, y=240),(x=0, y=210),(x=0, y=180),(x=0, y=150),(x=0, y=120),(x=0, y=90),(x=0, y=60),(x=0, y=30),(x=0, y=0),(x=930, y=510),(x=930, y=420),(x=930, y=390),(x=930, y=360),(x=930, y=330),(x=930, y=300),(x=930, y=270),(x=930, y=240),(x=930, y=210),(x=930, y=180),(x=930, y=150),(x=930, y=120),(x=930, y=90),(x=930, y=60),(x=930, y=30),(x=930, y=0),(x=527, y=0),(x=558, y=0),(x=589, y=0),(x=620, y=0),(x=651, y=0),(x=682, y=0),(x=713, y=0),(x=744, y=0),(x=775, y=0),(x=806, y=0),(x=837, y=0),(x=868, y=0),(x=899, y=0),(x=31, y=0),(x=62, y=0),(x=93, y=0),(x=124, y=0),(x=155, y=0),(x=186, y=0),(x=217, y=0),(x=248, y=0),(x=279, y=0),(x=310, y=0),(x=341, y=0),(x=372, y=0),(x=403, y=0),(x=434, y=0),(x=465, y=0),(x=496, y=0),(x=930, y=540),(x=0, y=480),(x=930, y=570),(x=930, y=480),(x=930, y=450),(x=0, y=510),(x=0, y=540),(x=0, y=450),(x=0, y=570),(x=31, y=390),(x=62, y=450),(x=93, y=480),(x=124, y=480),(x=155, y=420),(x=186, y=420),(x=217, y=420),(x=248, y=420),(x=279, y=420),(x=310, y=420),(x=341, y=420),(x=403, y=420),(x=434, y=420),(x=527, y=450),(x=558, y=450),(x=620, y=420),(x=651, y=420),(x=682, y=420),(x=713, y=420),(x=744, y=420),(x=372, y=420),(x=465, y=420),(x=155, y=300),(x=186, y=300),(x=217, y=300),(x=155, y=210),(x=248, y=300),(x=124, y=210),(x=93, y=210),(x=62, y=210),(x=31, y=210),(x=186, y=210),(x=31, y=300),(x=310, y=180),(x=341, y=180),(x=372, y=180),(x=403, y=180),(x=434, y=180),(x=465, y=180),(x=806, y=390),(x=806, y=300),(x=837, y=300),(x=868, y=300),(x=899, y=300),(x=496, y=180),(x=806, y=420),(x=775, y=420),(x=806, y=360),(x=806, y=330),(x=31, y=240),(x=31, y=270),(x=899, y=30),(x=31, y=30),(x=31, y=180),(x=31, y=420),(x=155, y=450),(x=31, y=450),(x=155, y=480),(x=31, y=330),(x=31, y=360),(x=62, y=390),(x=62, y=420),(x=62, y=240),(x=62, y=270),(x=62, y=330),(x=62, y=300),(x=62, y=360),(x=248, y=330),(x=279, y=330),(x=310, y=330),(x=496, y=450),(x=589, y=420),(x=62, y=480),(x=31, y=480),(x=465, y=450),(x=558, y=420)|CHARACTER_START_POINT:(x=120, y=185)|END_POINT:(x=827, y=239)|KEY_POINT:(x=485, y=287)|STAR_POINTS:(x=123, y=361),(x=465, y=155),(x=123, y=451)|BASE_BOX_POINTS:(x=159.5, y=247.3, r=0),(x=439.65, y=128.9, r=0),(x=459.5, y=369.3, r=0)|SPIKE_POINTS:|FALL_POINT:(x=31, y=529)|LONG_BOX_POINTS:|BOUNCER_POINTS:|DESTRUCTIBLE_TERRAIN_POINTS:|MOVING_PLATFORM_DATAS:|GHOST_DATAS:|MOVING_STAR_DATAS:|PORTAL_DATAS:|HEAT_DATAS:|SPIKE_BALL_DATAS:|ICE_TERRAIN_POINTS:|",
                        "BASE_TERRAIN_POINTS:(x=0, y=450),(x=0, y=420),(x=0, y=390),(x=0, y=360),(x=0, y=270),(x=0, y=240),(x=0, y=210),(x=0, y=180),(x=0, y=150),(x=0, y=120),(x=0, y=90),(x=0, y=60),(x=0, y=30),(x=0, y=0),(x=992, y=450),(x=992, y=420),(x=992, y=390),(x=992, y=360),(x=992, y=270),(x=992, y=240),(x=992, y=210),(x=992, y=180),(x=992, y=150),(x=992, y=120),(x=992, y=90),(x=992, y=60),(x=992, y=30),(x=992, y=0),(x=527, y=0),(x=558, y=0),(x=589, y=0),(x=620, y=0),(x=651, y=0),(x=682, y=0),(x=713, y=0),(x=744, y=0),(x=775, y=0),(x=806, y=0),(x=837, y=0),(x=868, y=0),(x=899, y=0),(x=31, y=0),(x=62, y=0),(x=93, y=0),(x=124, y=0),(x=155, y=0),(x=186, y=0),(x=217, y=0),(x=248, y=0),(x=279, y=0),(x=310, y=0),(x=341, y=0),(x=372, y=0),(x=403, y=0),(x=434, y=0),(x=465, y=0),(x=496, y=0),(x=930, y=0),(x=961, y=0),(x=0, y=480),(x=992, y=480),(x=0, y=510),(x=992, y=510),(x=0, y=540),(x=992, y=540),(x=0, y=570),(x=992, y=570),(x=0, y=330),(x=0, y=300),(x=992, y=330),(x=992, y=300),(x=62, y=460),(x=93, y=460),(x=124, y=460),(x=155, y=460),(x=186, y=460),(x=217, y=460),(x=248, y=460),(x=279, y=460),(x=310, y=460),(x=341, y=460),(x=372, y=460),(x=434, y=460),(x=465, y=460),(x=527, y=460),(x=558, y=460),(x=589, y=460),(x=620, y=460),(x=651, y=460),(x=682, y=460),(x=403, y=460),(x=496, y=460),(x=155, y=250),(x=124, y=250),(x=93, y=250),(x=62, y=250),(x=186, y=250),(x=186, y=280),(x=217, y=280),(x=217, y=310),(x=744, y=460),(x=775, y=460),(x=837, y=460),(x=868, y=460),(x=899, y=460),(x=930, y=460),(x=713, y=460),(x=806, y=460),(x=899, y=250),(x=868, y=250),(x=837, y=250),(x=806, y=250),(x=930, y=250),(x=775, y=280),(x=806, y=280),(x=775, y=310),(x=556, y=220),(x=525, y=220),(x=494, y=220),(x=463, y=220),(x=432, y=220),(x=587, y=250),(x=401, y=250),(x=587, y=280),(x=401, y=280),(x=587, y=220),(x=401, y=220),(x=248, y=310),(x=744, y=310),(x=31, y=460),(x=961, y=460),(x=930, y=220),(x=62, y=220),(x=556, y=250),(x=432, y=250),(x=618, y=220),(x=370, y=220),(x=961, y=430),(x=961, y=400),(x=961, y=340),(x=961, y=310),(x=961, y=280),(x=961, y=250),(x=961, y=220),(x=31, y=430),(x=31, y=400),(x=31, y=340),(x=31, y=310),(x=31, y=280),(x=31, y=250),(x=31, y=220),(x=961, y=30),(x=31, y=30),(x=525, y=30),(x=494, y=30),(x=463, y=30),(x=31, y=370),(x=961, y=370)|CHARACTER_START_POINT:(x=511, y=195)|END_POINT:(x=113, y=188)|KEY_POINT:(x=897, y=313)|STAR_POINTS:(x=122, y=315),(x=870, y=223),(x=509, y=286)|BASE_BOX_POINTS:(x=844.6, y=197.35, r=0),(x=795.3, y=407.9, r=0),(x=178.3, y=407.9, r=0),(x=849.3, y=407.9, r=0),(x=124.3, y=407.9, r=0)|SPIKE_POINTS:(x=85, y=449, r=0),(x=131, y=449, r=0),(x=85, y=449, r=0),(x=131, y=449, r=0),(x=894, y=449, r=0),(x=940, y=449, r=0)|FALL_POINT:(x=31, y=538)|LONG_BOX_POINTS:|BOUNCER_POINTS:|DESTRUCTIBLE_TERRAIN_POINTS:|MOVING_PLATFORM_DATAS:|GHOST_DATAS:|MOVING_STAR_DATAS:|PORTAL_DATAS:|HEAT_DATAS:|SPIKE_BALL_DATAS:|ICE_TERRAIN_POINTS:|",
                        "BASE_TERRAIN_POINTS:(x=0, y=0),(x=1023, y=0),(x=527, y=0),(x=558, y=0),(x=589, y=0),(x=620, y=0),(x=651, y=0),(x=682, y=0),(x=713, y=0),(x=744, y=0),(x=775, y=0),(x=806, y=0),(x=837, y=0),(x=868, y=0),(x=899, y=0),(x=31, y=0),(x=62, y=0),(x=93, y=0),(x=124, y=0),(x=155, y=0),(x=186, y=0),(x=217, y=0),(x=248, y=0),(x=279, y=0),(x=310, y=0),(x=341, y=0),(x=372, y=0),(x=403, y=0),(x=434, y=0),(x=465, y=0),(x=496, y=0),(x=930, y=0),(x=961, y=0),(x=992, y=0),(x=0, y=720),(x=0, y=450),(x=0, y=420),(x=0, y=390),(x=0, y=360),(x=0, y=270),(x=0, y=240),(x=0, y=210),(x=0, y=180),(x=0, y=150),(x=0, y=120),(x=0, y=90),(x=0, y=60),(x=0, y=30),(x=0, y=330),(x=0, y=300),(x=0, y=570),(x=0, y=540),(x=0, y=510),(x=0, y=480),(x=0, y=690),(x=0, y=660),(x=0, y=630),(x=0, y=600),(x=1023, y=720),(x=1023, y=450),(x=1023, y=420),(x=1023, y=390),(x=1023, y=360),(x=1023, y=270),(x=1023, y=240),(x=1023, y=210),(x=1023, y=180),(x=1023, y=150),(x=1023, y=120),(x=1023, y=90),(x=1023, y=60),(x=1023, y=30),(x=1023, y=330),(x=1023, y=300),(x=1023, y=570),(x=1023, y=540),(x=1023, y=510),(x=1023, y=480),(x=1023, y=690),(x=1023, y=660),(x=1023, y=630),(x=1023, y=600),(x=31, y=610),(x=62, y=610),(x=93, y=610),(x=124, y=610),(x=155, y=610),(x=186, y=610),(x=217, y=610),(x=248, y=610),(x=310, y=610),(x=341, y=610),(x=403, y=610),(x=434, y=610),(x=496, y=610),(x=527, y=610),(x=558, y=610),(x=589, y=610),(x=620, y=610),(x=372, y=610),(x=465, y=610),(x=651, y=610),(x=682, y=610),(x=31, y=370),(x=62, y=370),(x=93, y=370),(x=124, y=370),(x=342, y=420),(x=373, y=420),(x=404, y=420),(x=435, y=420),(x=466, y=420),(x=497, y=420),(x=528, y=420),(x=559, y=420),(x=590, y=420),(x=621, y=420),(x=652, y=420),(x=683, y=420),(x=714, y=420),(x=526, y=210),(x=557, y=210),(x=588, y=210),(x=619, y=210),(x=405, y=333),(x=436, y=333),(x=467, y=333),(x=498, y=333),(x=529, y=333),(x=560, y=333),(x=591, y=333),(x=622, y=333),(x=526, y=240),(x=155, y=370),(x=186, y=370),(x=279, y=610),(x=717, y=210),(x=748, y=210),(x=779, y=210),(x=713, y=610),(x=930, y=550),(x=961, y=550),(x=961, y=520),(x=992, y=520),(x=217, y=370),(x=31, y=30),(x=992, y=30),(x=810, y=210),(x=810, y=180),(x=810, y=150),(x=810, y=120),(x=810, y=90),(x=810, y=60),(x=810, y=30),(x=779, y=30),(x=841, y=30),(x=745, y=420),(x=776, y=420),(x=807, y=420),(x=838, y=420),(x=869, y=420),(x=744, y=610),(x=775, y=610),(x=806, y=610),(x=837, y=610),(x=868, y=610),(x=899, y=580),(x=899, y=610),(x=930, y=580),(x=653, y=333)|CHARACTER_START_POINT:(x=186, y=585)|END_POINT:(x=546, y=148)|KEY_POINT:(x=138, y=236)|STAR_POINTS:(x=76, y=434),(x=764, y=179),(x=139, y=289)|BASE_BOX_POINTS:(x=578.5, y=278.35, r=0),(x=522.5, y=367.35, r=0),(x=57.5, y=317.45, r=0),(x=113.5, y=317.45, r=0),(x=169.5, y=317.45, r=0),(x=113.5, y=262.45, r=0),(x=525.5, y=278.35, r=0)|SPIKE_POINTS:(x=494, y=598, r=0),(x=721, y=598, r=0),(x=492, y=321, r=0),(x=54, y=598, r=0),(x=101, y=598, r=0)|FALL_POINT:(x=31, y=655)|LONG_BOX_POINTS:|BOUNCER_POINTS:|DESTRUCTIBLE_TERRAIN_POINTS:|MOVING_PLATFORM_DATAS:|GHOST_DATAS:|MOVING_STAR_DATAS:|PORTAL_DATAS:|HEAT_DATAS:|SPIKE_BALL_DATAS:|ICE_TERRAIN_POINTS:|",
                        "BASE_TERRAIN_POINTS:(x=0, y=0),(x=930, y=0),(x=527, y=0),(x=558, y=0),(x=589, y=0),(x=620, y=0),(x=651, y=0),(x=682, y=0),(x=713, y=0),(x=744, y=0),(x=775, y=0),(x=806, y=0),(x=837, y=0),(x=868, y=0),(x=899, y=0),(x=31, y=0),(x=62, y=0),(x=93, y=0),(x=124, y=0),(x=155, y=0),(x=186, y=0),(x=217, y=0),(x=248, y=0),(x=279, y=0),(x=310, y=0),(x=341, y=0),(x=372, y=0),(x=403, y=0),(x=434, y=0),(x=465, y=0),(x=496, y=0),(x=0, y=450),(x=0, y=420),(x=0, y=390),(x=0, y=360),(x=0, y=270),(x=0, y=240),(x=0, y=210),(x=0, y=180),(x=0, y=150),(x=0, y=120),(x=0, y=90),(x=0, y=60),(x=0, y=30),(x=0, y=330),(x=0, y=300),(x=0, y=570),(x=0, y=540),(x=0, y=510),(x=0, y=480),(x=0, y=630),(x=0, y=600),(x=930, y=450),(x=930, y=420),(x=930, y=390),(x=930, y=360),(x=930, y=270),(x=930, y=240),(x=930, y=210),(x=930, y=180),(x=930, y=150),(x=930, y=120),(x=930, y=90),(x=930, y=60),(x=930, y=30),(x=930, y=330),(x=930, y=300),(x=930, y=570),(x=930, y=540),(x=930, y=510),(x=930, y=480),(x=930, y=630),(x=930, y=600),(x=247, y=200),(x=278, y=200),(x=309, y=200),(x=340, y=200),(x=465, y=200),(x=496, y=200),(x=527, y=200),(x=558, y=200),(x=341, y=420),(x=372, y=420),(x=403, y=420),(x=186, y=360),(x=217, y=360),(x=248, y=360),(x=124, y=360),(x=155, y=360),(x=651, y=200),(x=713, y=200),(x=558, y=230),(x=651, y=230),(x=558, y=260),(x=651, y=260),(x=589, y=260),(x=620, y=260),(x=496, y=480),(x=527, y=480),(x=744, y=200),(x=775, y=200),(x=806, y=200),(x=744, y=540),(x=403, y=450),(x=403, y=480),(x=558, y=480),(x=651, y=540),(x=558, y=510),(x=558, y=540),(x=589, y=540),(x=620, y=540),(x=279, y=360),(x=279, y=390),(x=279, y=420),(x=310, y=420),(x=682, y=200),(x=837, y=540),(x=868, y=540),(x=899, y=540),(x=93, y=230),(x=124, y=230),(x=31, y=30),(x=899, y=30),(x=806, y=230),(x=806, y=260),(x=806, y=290),(x=62, y=230),(x=31, y=230),(x=124, y=390),(x=124, y=260),(x=434, y=200)|CHARACTER_START_POINT:(x=312, y=175)|END_POINT:(x=704, y=138)|KEY_POINT:(x=756, y=361)|STAR_POINTS:(x=619, y=232),(x=883, y=213),(x=203, y=334)|BASE_BOX_POINTS:(x=527.15, y=147.35, r=0),(x=124.15, y=307.35, r=0),(x=178.15, y=307.35, r=0),(x=732.25, y=487.5, r=0),(x=659.5, y=487.5, r=0),(x=806.25, y=489.35, r=0),(x=763.25, y=435.35, r=0),(x=699.25, y=435.35, r=0),(x=730.25, y=382.35, r=0)|SPIKE_POINTS:(x=284, y=242, r=3.141592653589793),(x=331, y=242, r=3.141592653589793),(x=596, y=303, r=3.141592653589793),(x=643, y=303, r=3.141592653589793)|FALL_POINT:(x=31, y=655)|LONG_BOX_POINTS:|BOUNCER_POINTS:|DESTRUCTIBLE_TERRAIN_POINTS:|MOVING_PLATFORM_DATAS:|GHOST_DATAS:|MOVING_STAR_DATAS:|PORTAL_DATAS:|HEAT_DATAS:|SPIKE_BALL_DATAS:|ICE_TERRAIN_POINTS:|",
                        "BASE_TERRAIN_POINTS:(x=0, y=0),(x=1054, y=0),(x=527, y=0),(x=558, y=0),(x=589, y=0),(x=620, y=0),(x=651, y=0),(x=682, y=0),(x=713, y=0),(x=744, y=0),(x=775, y=0),(x=806, y=0),(x=837, y=0),(x=868, y=0),(x=899, y=0),(x=31, y=0),(x=62, y=0),(x=93, y=0),(x=124, y=0),(x=155, y=0),(x=186, y=0),(x=217, y=0),(x=248, y=0),(x=279, y=0),(x=310, y=0),(x=341, y=0),(x=372, y=0),(x=403, y=0),(x=434, y=0),(x=465, y=0),(x=496, y=0),(x=930, y=0),(x=961, y=0),(x=992, y=0),(x=1023, y=0),(x=0, y=450),(x=0, y=420),(x=0, y=390),(x=0, y=360),(x=0, y=270),(x=0, y=240),(x=0, y=210),(x=0, y=180),(x=0, y=150),(x=0, y=120),(x=0, y=90),(x=0, y=60),(x=0, y=30),(x=0, y=330),(x=0, y=300),(x=0, y=570),(x=0, y=540),(x=0, y=510),(x=0, y=480),(x=0, y=630),(x=0, y=600),(x=0, y=660),(x=1054, y=450),(x=1054, y=420),(x=1054, y=390),(x=1054, y=360),(x=1054, y=270),(x=1054, y=240),(x=1054, y=210),(x=1054, y=180),(x=1054, y=150),(x=1054, y=120),(x=1054, y=90),(x=1054, y=60),(x=1054, y=30),(x=1054, y=330),(x=1054, y=300),(x=1054, y=570),(x=1054, y=540),(x=1054, y=510),(x=1054, y=480),(x=1054, y=630),(x=1054, y=600),(x=1054, y=660),(x=930, y=240),(x=961, y=240),(x=992, y=240),(x=1023, y=240),(x=899, y=240),(x=992, y=430),(x=1023, y=430),(x=837, y=240),(x=837, y=270),(x=837, y=300),(x=837, y=330),(x=837, y=360),(x=837, y=390),(x=806, y=390),(x=775, y=390),(x=744, y=390),(x=713, y=390),(x=682, y=390),(x=31, y=490),(x=62, y=490),(x=93, y=490),(x=124, y=490),(x=403, y=550),(x=434, y=550),(x=496, y=550),(x=527, y=550),(x=558, y=550),(x=713, y=550),(x=744, y=550),(x=775, y=550),(x=372, y=550),(x=465, y=550),(x=837, y=550),(x=868, y=550),(x=930, y=550),(x=961, y=550),(x=806, y=550),(x=899, y=550),(x=725, y=290),(x=694, y=290),(x=403, y=240),(x=434, y=240),(x=465, y=240),(x=496, y=240),(x=372, y=240),(x=93, y=240),(x=62, y=240),(x=31, y=240),(x=248, y=300),(x=217, y=300),(x=248, y=490),(x=372, y=580),(x=279, y=300),(x=310, y=300),(x=372, y=270),(x=868, y=330),(x=899, y=330),(x=651, y=420),(x=651, y=390),(x=620, y=420),(x=620, y=450),(x=589, y=450),(x=620, y=550),(x=651, y=550),(x=682, y=550),(x=589, y=550),(x=527, y=240),(x=558, y=240),(x=589, y=240),(x=930, y=330),(x=868, y=240),(x=341, y=270),(x=248, y=520),(x=372, y=610),(x=248, y=550),(x=372, y=640),(x=1023, y=30),(x=31, y=30),(x=310, y=270),(x=248, y=580),(x=248, y=610),(x=248, y=640),(x=217, y=490),(x=186, y=490),(x=155, y=490),(x=961, y=580)|CHARACTER_START_POINT:(x=78, y=215)|END_POINT:(x=910, y=178)|KEY_POINT:(x=924, y=302)|STAR_POINTS:(x=725, y=262),(x=601, y=213),(x=75, y=407)|BASE_BOX_POINTS:(x=576.5, y=188.35, r=0),(x=522.5, y=187.4, r=0),(x=255.5, y=247.35, r=0)|SPIKE_POINTS:(x=881, y=391, r=1.5707963267948966),(x=845, y=431, r=3.141592653589793),(x=707, y=431, r=3.141592653589793),(x=54, y=478, r=0),(x=99, y=478, r=0),(x=753, y=431, r=3.141592653589793),(x=800, y=431, r=3.141592653589793),(x=881, y=300, r=1.5707963267948966),(x=725, y=332, r=3.141592653589793)|FALL_POINT:(x=31, y=705)|LONG_BOX_POINTS:|BOUNCER_POINTS:|DESTRUCTIBLE_TERRAIN_POINTS:|MOVING_PLATFORM_DATAS:|GHOST_DATAS:|MOVING_STAR_DATAS:|PORTAL_DATAS:|HEAT_DATAS:|SPIKE_BALL_DATAS:|ICE_TERRAIN_POINTS:|"
                        ];
        }
    }
}