STORY   LOOP   FURRY   PORN   GAMES
• C •   SERVICES [?] [R] RND   POPULAR
Archived flashes:
228118
/disc/ · /res/     /show/ · /fap/ · /gg/ · /swf/P0001 · P2561 · P5121

<div style="position:absolute;top:-99px;left:-99px;"><img src="http://swfchan.com:57475/34637602?noj=FRM34637602-11DC" width="1" height="1"></div>

Jumpix - a challenging skill game.swf

This is the info page for
Flash #93295

(Click the ID number above for more basic data on this flash file.)


Text
<p align="center"></p>

<p align="center"></p>

<p align="center"></p>

sound on/off

0123456789

Best:

Current:

00:00

00:00

<p align="center"><font face="Arial_10pt_st" size="10" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>TIME MODE</b></font></p>

KARMA

TEAM

<p align="center"><font face="Arial_10pt_st" size="10" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>HIGH SCORES</b></font></p>

<p align="center"><font face="Arial_10pt_st" size="10" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>MORE GAMES</b></font></p>

JUMPIX

<p align="center"><font face="Arial_10pt_st" size="10" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>SCORE MODE</b></font></p>

music by xhale

particles on/off

LEVEL COMPLETE

VICTORY

NEXT LEVEL

SUBMIT SCORE

MAIN MENU

YOU TIME

BEST TIME!

SELECT LEVEL

Platform bonus - 100

Camera bonus - 50

Life bonus - 30

LEVEL FAILED

REPLAY

SCORE MODE

<p align="center"><font face="Arial_10pt_st" size="10" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>PLAY</b></font></p>

<p align="center"><font face="Arial_10pt_st" size="10" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>CONTINUE</b></font></p>

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

30:30

00:00

Select Level

PAUSE

RESUME

Map Title

Press ARROW keys to move.
Reaching green platform
completes the level.
Press ESCAPE or P keys to
show menu.

Press any key for continue.

Press SPACE key to change
camera view. Beware of falling
from edges.

Collect yellow dots to achieve
more scores.

Now it is time to go up.

Warning, some platforms
breaking down when you touch
them.

Pink will take you to the seven
skies.

Hit yellow blocks at the bottom
to achieve more scores.

Be careful, if you fall to lava (red
platform) - you will die!

Game slows down too much?
Try turn off particles in
Main Menu.

ActionScript [AS3]

Section 1
//CameraController (alternativa.engine3d.controllers.CameraController) package alternativa.engine3d.controllers { import flash.events.*; import flash.display.*; import alternativa.types.*; import flash.geom.*; import alternativa.engine3d.core.*; import alternativa.engine3d.physics.*; import alternativa.utils.*; import flash.utils.*; import alternativa.engine3d.*; public class CameraController { private var prevDragCoords:Point; private var mouseLookActive:Boolean; private var keyBindings:Map; private var destination:Point3D; private var _zoomMultiplier:Number;// = 0.1 private var _onStopMoving:Function; private var _mouseSensitivity:Number;// = 1 private var _right:Boolean; private var _collisionRadius:Number;// = 0 private var _speedMultiplier:Number;// = 2 private var _up:Boolean; private var _mousePitch:Number; private var _camera:Camera3D; private var _speed:Number;// = 100 private var _yawRight:Boolean; private var _collider:EllipsoidCollider; private var _checkCollisions:Boolean; private var _controlsEnabled:Boolean;// = false private var _eventsSource:DisplayObject; private var _yawSpeed:Number;// = 1 private var startDragCoords:Point; private var _accelerate:Boolean; private var _isMoving:Boolean; private var _down:Boolean; private var _pitchDown:Boolean; private var _forward:Boolean; private var _pitchSpeed:Number;// = 1 private var _mouseYawCoeff:Number; private var _moveLocal:Boolean;// = true private var _pitchUp:Boolean; private var _collisionIgnoreSet:Set; private var _back:Boolean; private var currentDragCoords:Point; private var _yawLeft:Boolean; private var velocity:Point3D; private var _mousePitchCoeff:Number; private var startRotX:Number; private var startRotZ:Number; private var _left:Boolean; private var _mouseYaw:Number; private var lastFrameTime:uint; private var _onStartMoving:Function; private var actionBindings:Map; private var _fovStep:Number; public static const ACTION_PITCH_UP:String = "ACTION_PITCH_UP"; public static const ACTION_UP:String = "ACTION_UP"; public static const ACTION_PITCH_DOWN:String = "ACTION_PITCH_DOWN"; public static const ACTION_DOWN:String = "ACTION_DOWN"; public static const ACTION_YAW_LEFT:String = "ACTION_YAW_LEFT"; public static const ACTION_LEFT:String = "ACTION_LEFT"; public static const ACTION_YAW_RIGHT:String = "ACTION_YAW_RIGHT"; public static const ACTION_RIGHT:String = "ACTION_RIGHT"; public static const ACTION_BACK:String = "ACTION_BACK"; public static const ACTION_FORWARD:String = "ACTION_FORWARD"; public static const ACTION_ACCELERATE:String = "ACTION_ACCELERATE"; public function CameraController(_arg1:DisplayObject){ _mousePitch = (Math.PI / 360); _mousePitchCoeff = (_mouseSensitivity * _mousePitch); _mouseYaw = (Math.PI / 360); _mouseYawCoeff = (_mouseSensitivity * _mouseYaw); startDragCoords = new Point(); currentDragCoords = new Point(); prevDragCoords = new Point(); velocity = new Point3D(); destination = new Point3D(); _fovStep = (Math.PI / 180); keyBindings = new Map(); actionBindings = new Map(); _collisionIgnoreSet = new Set(true); super(); if (_arg1 == null){ throw (new ArgumentError("CameraController: eventsSource is null")); }; _eventsSource = _arg1; actionBindings[ACTION_FORWARD] = forward; actionBindings[ACTION_BACK] = back; actionBindings[ACTION_LEFT] = left; actionBindings[ACTION_RIGHT] = right; actionBindings[ACTION_UP] = up; actionBindings[ACTION_DOWN] = down; actionBindings[ACTION_PITCH_UP] = pitchUp; actionBindings[ACTION_PITCH_DOWN] = pitchDown; actionBindings[ACTION_YAW_LEFT] = yawLeft; actionBindings[ACTION_YAW_RIGHT] = yawRight; actionBindings[ACTION_ACCELERATE] = accelerate; } private function onKey(_arg1:KeyboardEvent):void{ var _local2:Function = keyBindings[_arg1.keyCode]; if (_local2 != null){ _local2.call(this, (_arg1.type == KeyboardEvent.KEY_DOWN)); }; } public function get zoomMultiplier():Number{ return (_zoomMultiplier); } public function bindKey(_arg1:uint, _arg2:String):void{ var _local3:Function = actionBindings[_arg2]; if (_local3 != null){ keyBindings[_arg1] = _local3; }; } public function left(_arg1:Boolean):void{ _left = _arg1; } public function pitchDown(_arg1:Boolean):void{ _pitchDown = _arg1; } private function createCollider():void{ _collider = new EllipsoidCollider(_camera.scene, _collisionRadius); _collider.offsetThreshold = 0.01; _collider.collisionSet = _collisionIgnoreSet; } public function yawLeft(_arg1:Boolean):void{ _yawLeft = _arg1; } private function onMouseWheel(_arg1:MouseEvent):void{ if (_camera.orthographic){ _camera.zoom = (_camera.zoom * (1 + (_arg1.delta * _zoomMultiplier))); } else { _camera.fov = (_camera.fov - (_fovStep * _arg1.delta)); }; } public function get yawSpeed():Number{ return (_yawSpeed); } public function get collisionIgnoreSet():Set{ return (_collisionIgnoreSet); } public function get moveLocal():Boolean{ return (_moveLocal); } public function set eventsSource(_arg1:DisplayObject):void{ if (_eventsSource != _arg1){ if (_arg1 == null){ throw (new ArgumentError("CameraController: eventsSource is null")); }; if (_controlsEnabled){ unregisterEventsListeners(); }; _eventsSource = _arg1; if (_controlsEnabled){ registerEventListeners(); }; }; } public function right(_arg1:Boolean):void{ _right = _arg1; } public function get camera():Camera3D{ return (_camera); } public function setDefaultBindings():void{ unbindAll(); bindKey(KeyboardUtils.W, ACTION_FORWARD); bindKey(KeyboardUtils.S, ACTION_BACK); bindKey(KeyboardUtils.A, ACTION_LEFT); bindKey(KeyboardUtils.D, ACTION_RIGHT); bindKey(KeyboardUtils.SPACE, ACTION_UP); bindKey(KeyboardUtils.Z, ACTION_DOWN); bindKey(KeyboardUtils.UP, ACTION_PITCH_UP); bindKey(KeyboardUtils.DOWN, ACTION_PITCH_DOWN); bindKey(KeyboardUtils.LEFT, ACTION_YAW_LEFT); bindKey(KeyboardUtils.RIGHT, ACTION_YAW_RIGHT); bindKey(KeyboardUtils.SHIFT, ACTION_ACCELERATE); } public function get onStopMoving():Function{ return (_onStopMoving); } public function unbindKey(_arg1:uint):void{ keyBindings.remove(_arg1); } public function set moveLocal(_arg1:Boolean):void{ _moveLocal = _arg1; } public function set yawSpeed(_arg1:Number):void{ _yawSpeed = _arg1; } public function lookAt(_arg1:Point3D):void{ if (_camera == null){ return; }; var _local2:Number = (_arg1.x - _camera.x); var _local3:Number = (_arg1.y - _camera.y); var _local4:Number = (_arg1.z - _camera.z); _camera.rotationZ = -(Math.atan2(_local2, _local3)); _camera.rotationX = (Math.atan2(_local4, Math.sqrt(((_local2 * _local2) + (_local3 * _local3)))) - MathUtils.DEG90); } public function set mousePitch(_arg1:Number):void{ _mousePitch = _arg1; _mousePitchCoeff = (_mouseSensitivity * _mousePitch); } public function get fovStep():Number{ return (_fovStep); } public function get speed():Number{ return (_speed); } public function set camera(_arg1:Camera3D):void{ if (_camera != _arg1){ _camera = _arg1; if (_arg1 == null){ controlsEnabled = false; } else { createCollider(); }; }; } public function set mouseYaw(_arg1:Number):void{ _mouseYaw = _arg1; _mouseYawCoeff = (_mouseSensitivity * _mouseYaw); } private function registerEventListeners():void{ _eventsSource.addEventListener(KeyboardEvent.KEY_DOWN, onKey); _eventsSource.addEventListener(KeyboardEvent.KEY_UP, onKey); _eventsSource.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); _eventsSource.addEventListener(MouseEvent.MOUSE_WHEEL, onMouseWheel); } private function onMouseUp(_arg1:MouseEvent):void{ mouseLookActive = false; _eventsSource.stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseUp); } public function set controlsEnabled(_arg1:Boolean):void{ if ((((_camera == null)) || ((_controlsEnabled == _arg1)))){ return; }; if (_arg1){ lastFrameTime = getTimer(); registerEventListeners(); } else { unregisterEventsListeners(); }; _controlsEnabled = _arg1; } public function set checkCollisions(_arg1:Boolean):void{ _checkCollisions = _arg1; } public function set onStopMoving(_arg1:Function):void{ _onStopMoving = _arg1; } private function unregisterEventsListeners():void{ _eventsSource.removeEventListener(KeyboardEvent.KEY_DOWN, onKey); _eventsSource.removeEventListener(KeyboardEvent.KEY_UP, onKey); _eventsSource.removeEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); _eventsSource.removeEventListener(MouseEvent.MOUSE_UP, onMouseUp); _eventsSource.removeEventListener(MouseEvent.MOUSE_WHEEL, onMouseWheel); } public function get collisionRadius():Number{ return (_collisionRadius); } public function get speedMultiplier():Number{ return (_speedMultiplier); } public function unbindAll():void{ keyBindings.clear(); } public function set fovStep(_arg1:Number):void{ _fovStep = _arg1; } public function get mouseYaw():Number{ return (_mouseYaw); } public function set speed(_arg1:Number):void{ _speed = _arg1; } public function get eventsSource():DisplayObject{ return (_eventsSource); } public function up(_arg1:Boolean):void{ _up = _arg1; } public function get checkCollisions():Boolean{ return (_checkCollisions); } public function get mousePitch():Number{ return (_mousePitch); } public function get controlsEnabled():Boolean{ return (_controlsEnabled); } public function set mouseSensitivity(_arg1:Number):void{ _mouseSensitivity = _arg1; _mousePitchCoeff = (_mouseSensitivity * _mousePitch); _mouseYawCoeff = (_mouseSensitivity * _mouseYaw); } public function down(_arg1:Boolean):void{ _down = _arg1; } public function processInput():void{ var _local4:Number; var _local5:Number; var _local6:Number; if (((!(_controlsEnabled)) || ((_camera == null)))){ return; }; var _local1:Number = (getTimer() - lastFrameTime); lastFrameTime = (lastFrameTime + _local1); _local1 = (_local1 / 1000); if (mouseLookActive){ prevDragCoords.x = currentDragCoords.x; prevDragCoords.y = currentDragCoords.y; currentDragCoords.x = _eventsSource.stage.mouseX; currentDragCoords.y = _eventsSource.stage.mouseY; if (!prevDragCoords.equals(currentDragCoords)){ _camera.rotationZ = (startRotZ + ((startDragCoords.x - currentDragCoords.x) * _mouseYawCoeff)); _local4 = (startRotX + ((startDragCoords.y - currentDragCoords.y) * _mousePitchCoeff)); _camera.rotationX = ((_local4)>0) ? 0 : ((_local4)<-(MathUtils.DEG180)) ? -(MathUtils.DEG180) : _local4; }; }; if (_yawLeft){ _camera.rotationZ = (_camera.rotationZ + (_yawSpeed * _local1)); } else { if (_yawRight){ _camera.rotationZ = (_camera.rotationZ - (_yawSpeed * _local1)); }; }; if (_pitchUp){ _local4 = (_camera.rotationX + (_pitchSpeed * _local1)); _camera.rotationX = ((_local4)>0) ? 0 : ((_local4)<-(MathUtils.DEG180)) ? -(MathUtils.DEG180) : _local4; } else { if (_pitchDown){ _local4 = (_camera.rotationX - (_pitchSpeed * _local1)); _camera.rotationX = ((_local4)>0) ? 0 : ((_local4)<-(MathUtils.DEG180)) ? -(MathUtils.DEG180) : _local4; }; }; var _local2:Number = (_speed * _local1); if (_accelerate){ _local2 = (_local2 * _speedMultiplier); }; velocity.x = 0; velocity.y = 0; velocity.z = 0; var _local3:Matrix3D = _camera._transformation; if (_moveLocal){ if (_forward){ velocity.x = (velocity.x + (_local2 * _local3.c)); velocity.y = (velocity.y + (_local2 * _local3.g)); velocity.z = (velocity.z + (_local2 * _local3.k)); } else { if (_back){ velocity.x = (velocity.x - (_local2 * _local3.c)); velocity.y = (velocity.y - (_local2 * _local3.g)); velocity.z = (velocity.z - (_local2 * _local3.k)); }; }; if (_left){ velocity.x = (velocity.x - (_local2 * _local3.a)); velocity.y = (velocity.y - (_local2 * _local3.e)); velocity.z = (velocity.z - (_local2 * _local3.i)); } else { if (_right){ velocity.x = (velocity.x + (_local2 * _local3.a)); velocity.y = (velocity.y + (_local2 * _local3.e)); velocity.z = (velocity.z + (_local2 * _local3.i)); }; }; if (_up){ velocity.x = (velocity.x - (_local2 * _local3.b)); velocity.y = (velocity.y - (_local2 * _local3.f)); velocity.z = (velocity.z - (_local2 * _local3.j)); } else { if (_down){ velocity.x = (velocity.x + (_local2 * _local3.b)); velocity.y = (velocity.y + (_local2 * _local3.f)); velocity.z = (velocity.z + (_local2 * _local3.j)); }; }; } else { _local5 = Math.cos(_camera.rotationZ); _local6 = Math.sin(_camera.rotationZ); if (_forward){ velocity.x = (velocity.x - (_local2 * _local6)); velocity.y = (velocity.y + (_local2 * _local5)); } else { if (_back){ velocity.x = (velocity.x + (_local2 * _local6)); velocity.y = (velocity.y - (_local2 * _local5)); }; }; if (_left){ velocity.x = (velocity.x - (_local2 * _local5)); velocity.y = (velocity.y - (_local2 * _local6)); } else { if (_right){ velocity.x = (velocity.x + (_local2 * _local5)); velocity.y = (velocity.y + (_local2 * _local6)); }; }; if (_up){ velocity.z = (velocity.z + _local2); } else { if (_down){ velocity.z = (velocity.z - _local2); }; }; }; if (((((!((velocity.x == 0))) || (!((velocity.y == 0))))) || (!((velocity.z == 0))))){ velocity.length = _local2; }; if (_checkCollisions){ _collider.calculateDestination(_camera.coords, velocity, destination); _camera.x = destination.x; _camera.y = destination.y; _camera.z = destination.z; } else { _camera.x = (_camera.x + velocity.x); _camera.y = (_camera.y + velocity.y); _camera.z = (_camera.z + velocity.z); }; if (((_camera.changeRotationOrScaleOperation.queued) || (_camera.changeCoordsOperation.queued))){ if (!_isMoving){ _isMoving = true; if (_onStartMoving != null){ _onStartMoving.call(this); }; }; } else { if (_isMoving){ _isMoving = false; if (_onStopMoving != null){ _onStopMoving.call(this); }; }; }; } public function get mouseSensitivity():Number{ return (_mouseSensitivity); } public function forward(_arg1:Boolean):void{ _forward = _arg1; } public function set pitchSpeed(_arg1:Number):void{ _pitchSpeed = _arg1; } public function set speedMultiplier(_arg1:Number):void{ _speedMultiplier = _arg1; } public function set collisionRadius(_arg1:Number):void{ _collisionRadius = _arg1; if (_collider != null){ _collider.radiusX = _collisionRadius; _collider.radiusY = _collisionRadius; _collider.radiusZ = _collisionRadius; }; } public function set onStartMoving(_arg1:Function):void{ _onStartMoving = _arg1; } public function back(_arg1:Boolean):void{ _back = _arg1; } private function onMouseDown(_arg1:MouseEvent):void{ mouseLookActive = true; currentDragCoords.x = (startDragCoords.x = _eventsSource.stage.mouseX); currentDragCoords.y = (startDragCoords.y = _eventsSource.stage.mouseY); startRotX = _camera.rotationX; startRotZ = _camera.rotationZ; _eventsSource.stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp); } public function accelerate(_arg1:Boolean):void{ _accelerate = _arg1; } public function set zoomMultiplier(_arg1:Number):void{ _zoomMultiplier = _arg1; } public function get onStartMoving():Function{ return (_onStartMoving); } public function get pitchSpeed():Number{ return (_pitchSpeed); } public function pitchUp(_arg1:Boolean):void{ _pitchUp = _arg1; } public function yawRight(_arg1:Boolean):void{ _yawRight = _arg1; } } }//package alternativa.engine3d.controllers
Section 2
//BSPNode (alternativa.engine3d.core.BSPNode) package alternativa.engine3d.core { import alternativa.types.*; import alternativa.engine3d.*; public final class BSPNode { alternativa3d var primitive:PolyPrimitive; alternativa3d var normal:Point3D; alternativa3d var front:BSPNode; alternativa3d var parent:BSPNode; alternativa3d var mobility:int;// = 2147483647 alternativa3d var offset:Number; alternativa3d var back:BSPNode; alternativa3d var backPrimitives:Set; alternativa3d var frontPrimitives:Set; alternativa3d var sprited:Boolean; private static var collector:Array = new Array(); public function BSPNode(){ normal = new Point3D(); super(); } alternativa3d static function createBSPNode(_arg1:PolyPrimitive):BSPNode{ var _local2:BSPNode; _local2 = collector.pop(); if (_local2 == null){ _local2 = new (BSPNode); }; _local2.primitive = _arg1; _arg1.node = _local2; if (_arg1.face == null){ _local2.normal.x = 0; _local2.normal.y = 0; _local2.normal.z = 0; _local2.offset = 0; _local2.sprited = true; } else { _local2.normal.copy(_arg1.face.globalNormal); _local2.offset = _arg1.face.globalOffset; _local2.sprited = false; }; _local2.mobility = _arg1.mobility; return (_local2); } alternativa3d static function destroyBSPNode(_arg1:BSPNode):void{ collector.push(_arg1); } } }//package alternativa.engine3d.core
Section 3
//Camera3D (alternativa.engine3d.core.Camera3D) package alternativa.engine3d.core { import alternativa.types.*; import flash.geom.*; import alternativa.engine3d.display.*; import alternativa.engine3d.materials.*; import alternativa.engine3d.*; public class Camera3D extends Object3D { private var topPlane:Point3D; alternativa3d var _fov:Number;// = 1.5707963267949 alternativa3d var _orthographic:Boolean;// = false private var spritePrimitives:Array; private var viewAngle:Number; alternativa3d var uvMatricesCalculated:Set; alternativa3d var _farClipping:Boolean;// = false alternativa3d var cameraMatrix:Matrix3D; private var topOffset:Number; alternativa3d var calculatePlanesOperation:Operation; private var firstSkin:Skin; alternativa3d var _farClippingDistance:Number;// = 1000 private var prevSkin:Skin; alternativa3d var calculateMatrixOperation:Operation; alternativa3d var _viewClipping:Boolean;// = true alternativa3d var renderOperation:Operation; private var fullDraw:Boolean; private var leftOffset:Number; private var direction:Point3D; alternativa3d var _view:View; private var farPlane:Point3D; private var textureA:Point3D; private var textureB:Point3D; private var textureC:Point3D; private var farOffset:Number; private var leftPlane:Point3D; private var currentSkin:Skin; private var bottomOffset:Number; private var rightPlane:Point3D; alternativa3d var focalLength:Number; private var points1:Array; private var points2:Array; alternativa3d var _zoom:Number;// = 1 private var spritePoint:Point3D; private var rightOffset:Number; private var nearOffset:Number; alternativa3d var _nearClipping:Boolean;// = false alternativa3d var focalDistortion:Number; private var bottomPlane:Point3D; alternativa3d var _nearClippingDistance:Number;// = 10 private static var counter:uint = 0; public function Camera3D(_arg1:String=null){ calculateMatrixOperation = new Operation("calculateMatrix", this, calculateMatrix, Operation.CAMERA_CALCULATE_MATRIX); calculatePlanesOperation = new Operation("calculatePlanes", this, calculatePlanes, Operation.CAMERA_CALCULATE_PLANES); renderOperation = new Operation("render", this, render, Operation.CAMERA_RENDER); uvMatricesCalculated = new Set(true); textureA = new Point3D(); textureB = new Point3D(); textureC = new Point3D(); direction = new Point3D(0, 0, 1); cameraMatrix = new Matrix3D(); leftPlane = new Point3D(); rightPlane = new Point3D(); topPlane = new Point3D(); bottomPlane = new Point3D(); farPlane = new Point3D(); points1 = new Array(); points2 = new Array(); spritePoint = new Point3D(); spritePrimitives = new Array(); super(_arg1); } alternativa3d function removeFromView(_arg1:View):void{ firstSkin = null; calculateTransformationOperation.removeSequel(calculateMatrixOperation); calculateMatrixOperation.removeSequel(calculatePlanesOperation); calculatePlanesOperation.removeSequel(renderOperation); if (_scene != null){ _scene.removeOperation(calculateMatrixOperation); _scene.removeOperation(calculatePlanesOperation); _scene.removeOperation(renderOperation); _scene.changePrimitivesOperation.removeSequel(renderOperation); }; _view = null; } public function get nearClipping():Boolean{ return (_nearClipping); } public function set nearClipping(_arg1:Boolean):void{ if (_nearClipping != _arg1){ _nearClipping = _arg1; addOperationToScene(calculatePlanesOperation); }; } private function insertCurrentSkin():void{ var _local1:Skin = Skin.createSkin(); _view.canvas.addChildAt(_local1, _view.canvas.getChildIndex(currentSkin)); _local1.nextSkin = currentSkin; if (prevSkin == null){ firstSkin = _local1; } else { prevSkin.nextSkin = _local1; }; currentSkin = _local1; } public function get nearClippingDistance():Number{ return (_nearClippingDistance); } public function set farClippingDistance(_arg1:Number):void{ if (_arg1 < 0){ _arg1 = 0; }; if (_farClippingDistance != _arg1){ _farClippingDistance = _arg1; addOperationToScene(calculatePlanesOperation); }; } alternativa3d function calculateUVMatrix(_arg1:Face, _arg2:uint, _arg3:uint):void{ var _local4:Point3D = _arg1.primitive.points[0]; textureA.x = (((cameraMatrix.a * _local4.x) + (cameraMatrix.b * _local4.y)) + (cameraMatrix.c * _local4.z)); textureA.y = (((cameraMatrix.e * _local4.x) + (cameraMatrix.f * _local4.y)) + (cameraMatrix.g * _local4.z)); _local4 = _arg1.primitive.points[1]; textureB.x = (((cameraMatrix.a * _local4.x) + (cameraMatrix.b * _local4.y)) + (cameraMatrix.c * _local4.z)); textureB.y = (((cameraMatrix.e * _local4.x) + (cameraMatrix.f * _local4.y)) + (cameraMatrix.g * _local4.z)); _local4 = _arg1.primitive.points[2]; textureC.x = (((cameraMatrix.a * _local4.x) + (cameraMatrix.b * _local4.y)) + (cameraMatrix.c * _local4.z)); textureC.y = (((cameraMatrix.e * _local4.x) + (cameraMatrix.f * _local4.y)) + (cameraMatrix.g * _local4.z)); var _local5:Number = (textureB.x - textureA.x); var _local6:Number = (textureB.y - textureA.y); var _local7:Number = (textureC.x - textureA.x); var _local8:Number = (textureC.y - textureA.y); var _local9:Matrix = _arg1.uvMatrixBase; var _local10:Matrix = _arg1.uvMatrix; _local10.a = (((_local9.a * _local5) + (_local9.b * _local7)) / _arg2); _local10.b = (((_local9.a * _local6) + (_local9.b * _local8)) / _arg2); _local10.c = (-(((_local9.c * _local5) + (_local9.d * _local7))) / _arg3); _local10.d = (-(((_local9.c * _local6) + (_local9.d * _local8))) / _arg3); _local10.tx = (((((_local9.tx + _local9.c) * _local5) + ((_local9.ty + _local9.d) * _local7)) + textureA.x) + cameraMatrix.d); _local10.ty = (((((_local9.tx + _local9.c) * _local6) + ((_local9.ty + _local9.d) * _local8)) + textureA.y) + cameraMatrix.h); uvMatricesCalculated[_arg1] = true; } public function get orthographic():Boolean{ return (_orthographic); } private function addCurrentSkin():void{ currentSkin = Skin.createSkin(); _view.canvas.addChild(currentSkin); if (prevSkin == null){ firstSkin = currentSkin; } else { prevSkin.nextSkin = currentSkin; }; } public function get farClippingDistance():Number{ return (_farClippingDistance); } public function set nearClippingDistance(_arg1:Number):void{ if (_arg1 < 0){ _arg1 = 0; }; if (_nearClippingDistance != _arg1){ _nearClippingDistance = _arg1; addOperationToScene(calculatePlanesOperation); }; } override protected function clonePropertiesFrom(_arg1:Object3D):void{ super.clonePropertiesFrom(_arg1); var _local2:Camera3D = Camera3D(_arg1); orthographic = _local2._orthographic; zoom = _local2._zoom; fov = _local2._fov; } public function set viewClipping(_arg1:Boolean):void{ if (_viewClipping != _arg1){ _viewClipping = _arg1; addOperationToScene(calculatePlanesOperation); }; } public function set view(_arg1:View):void{ if (_arg1 != _view){ if (_view != null){ _view.camera = null; }; if (_arg1 != null){ _arg1.camera = this; }; }; } private function drawSpriteSkin(_arg1:SpritePrimitive):void{ var _local2:Sprite3D; var _local3:SpriteMaterial; if (((((((!(fullDraw)) && (!((currentSkin == null))))) && ((currentSkin.primitive == _arg1)))) && (!(_scene.changedPrimitives[_arg1])))){ prevSkin = currentSkin; currentSkin = currentSkin.nextSkin; } else { _local2 = _arg1.sprite; _local3 = _local2._material; if (_local3 == null){ return; }; if (!_local3.canDraw(this)){ return; }; if (((fullDraw) || (_scene.changedPrimitives[_arg1]))){ if (currentSkin == null){ addCurrentSkin(); } else { if (((fullDraw) || (_scene.changedPrimitives[currentSkin.primitive]))){ currentSkin.material.clear(currentSkin); } else { insertCurrentSkin(); }; }; currentSkin.primitive = _arg1; currentSkin.material = _local3; _local3.draw(this, currentSkin); prevSkin = currentSkin; currentSkin = currentSkin.nextSkin; } else { while (((!((currentSkin == null))) && (_scene.changedPrimitives[currentSkin.primitive]))) { removeCurrentSkin(); }; if (currentSkin != null){ prevSkin = currentSkin; currentSkin = currentSkin.nextSkin; }; }; }; } private function clip(_arg1:uint, _arg2:Array, _arg3:Array, _arg4:Point3D, _arg5:Number, _arg6:Boolean):uint{ var _local7:uint; var _local8:Number; var _local10:DrawPoint; var _local11:DrawPoint; var _local12:DrawPoint; var _local13:Number; var _local14:Number; var _local9:uint; _local11 = _arg2[(_arg1 - 1)]; _local13 = ((((_arg4.x * _local11.x) + (_arg4.y * _local11.y)) + (_arg4.z * _local11.z)) - _arg5); if (_arg6){ _local7 = 0; while (_local7 < _arg1) { _local12 = _arg2[_local7]; _local14 = ((((_arg4.x * _local12.x) + (_arg4.y * _local12.y)) + (_arg4.z * _local12.z)) - _arg5); if (_local14 > 0){ if (_local13 <= 0){ _local8 = (_local14 / (_local14 - _local13)); _local10 = _arg3[_local9]; if (_local10 == null){ _local10 = new DrawPoint((_local12.x - ((_local12.x - _local11.x) * _local8)), (_local12.y - ((_local12.y - _local11.y) * _local8)), (_local12.z - ((_local12.z - _local11.z) * _local8)), (_local12.u - ((_local12.u - _local11.u) * _local8)), (_local12.v - ((_local12.v - _local11.v) * _local8))); _arg3[_local9] = _local10; } else { _local10.x = (_local12.x - ((_local12.x - _local11.x) * _local8)); _local10.y = (_local12.y - ((_local12.y - _local11.y) * _local8)); _local10.z = (_local12.z - ((_local12.z - _local11.z) * _local8)); _local10.u = (_local12.u - ((_local12.u - _local11.u) * _local8)); _local10.v = (_local12.v - ((_local12.v - _local11.v) * _local8)); }; _local9++; }; _local10 = _arg3[_local9]; if (_local10 == null){ _local10 = new DrawPoint(_local12.x, _local12.y, _local12.z, _local12.u, _local12.v); _arg3[_local9] = _local10; } else { _local10.x = _local12.x; _local10.y = _local12.y; _local10.z = _local12.z; _local10.u = _local12.u; _local10.v = _local12.v; }; _local9++; } else { if (_local13 > 0){ _local8 = (_local14 / (_local14 - _local13)); _local10 = _arg3[_local9]; if (_local10 == null){ _local10 = new DrawPoint((_local12.x - ((_local12.x - _local11.x) * _local8)), (_local12.y - ((_local12.y - _local11.y) * _local8)), (_local12.z - ((_local12.z - _local11.z) * _local8)), (_local12.u - ((_local12.u - _local11.u) * _local8)), (_local12.v - ((_local12.v - _local11.v) * _local8))); _arg3[_local9] = _local10; } else { _local10.x = (_local12.x - ((_local12.x - _local11.x) * _local8)); _local10.y = (_local12.y - ((_local12.y - _local11.y) * _local8)); _local10.z = (_local12.z - ((_local12.z - _local11.z) * _local8)); _local10.u = (_local12.u - ((_local12.u - _local11.u) * _local8)); _local10.v = (_local12.v - ((_local12.v - _local11.v) * _local8)); }; _local9++; }; }; _local13 = _local14; _local11 = _local12; _local7++; }; } else { _local7 = 0; while (_local7 < _arg1) { _local12 = _arg2[_local7]; _local14 = ((((_arg4.x * _local12.x) + (_arg4.y * _local12.y)) + (_arg4.z * _local12.z)) - _arg5); if (_local14 > 0){ if (_local13 <= 0){ _local8 = (_local14 / (_local14 - _local13)); _local10 = _arg3[_local9]; if (_local10 == null){ _local10 = new DrawPoint((_local12.x - ((_local12.x - _local11.x) * _local8)), (_local12.y - ((_local12.y - _local11.y) * _local8)), (_local12.z - ((_local12.z - _local11.z) * _local8))); _arg3[_local9] = _local10; } else { _local10.x = (_local12.x - ((_local12.x - _local11.x) * _local8)); _local10.y = (_local12.y - ((_local12.y - _local11.y) * _local8)); _local10.z = (_local12.z - ((_local12.z - _local11.z) * _local8)); }; _local9++; }; _local10 = _arg3[_local9]; if (_local10 == null){ _local10 = new DrawPoint(_local12.x, _local12.y, _local12.z); _arg3[_local9] = _local10; } else { _local10.x = _local12.x; _local10.y = _local12.y; _local10.z = _local12.z; }; _local9++; } else { if (_local13 > 0){ _local8 = (_local14 / (_local14 - _local13)); _local10 = _arg3[_local9]; if (_local10 == null){ _local10 = new DrawPoint((_local12.x - ((_local12.x - _local11.x) * _local8)), (_local12.y - ((_local12.y - _local11.y) * _local8)), (_local12.z - ((_local12.z - _local11.z) * _local8))); _arg3[_local9] = _local10; } else { _local10.x = (_local12.x - ((_local12.x - _local11.x) * _local8)); _local10.y = (_local12.y - ((_local12.y - _local11.y) * _local8)); _local10.z = (_local12.z - ((_local12.z - _local11.z) * _local8)); }; _local9++; }; }; _local13 = _local14; _local11 = _local12; _local7++; }; }; return (_local9); } override protected function createEmptyObject():Object3D{ return (new Camera3D()); } public function set orthographic(_arg1:Boolean):void{ if (_orthographic != _arg1){ addOperationToScene(calculateMatrixOperation); _orthographic = _arg1; }; } private function renderBSPNode(_arg1:BSPNode):void{ var _local2:*; var _local3:Point3D; var _local4:Number; var _local5:Number; if (_arg1 != null){ if (_arg1.sprited){ if (_arg1.primitive != null){ drawSpriteSkin((_arg1.primitive as SpritePrimitive)); } else { drawSpritePrimitives(_arg1.frontPrimitives); }; } else { _local3 = _arg1.normal; _local4 = (((direction.x * _local3.x) + (direction.y * _local3.y)) + (direction.z * _local3.z)); if (!_orthographic){ _local5 = ((((globalCoords.x * _local3.x) + (globalCoords.y * _local3.y)) + (globalCoords.z * _local3.z)) - _arg1.offset); }; if (_arg1.primitive != null){ if ((_orthographic) ? (_local4 < 0) : (_local5 > 0)){ if (((_orthographic) || ((_local4 < viewAngle)))){ renderBSPNode(_arg1.back); drawSkin(_arg1.primitive); }; renderBSPNode(_arg1.front); } else { if (((_orthographic) || ((_local4 > -(viewAngle))))){ renderBSPNode(_arg1.front); }; renderBSPNode(_arg1.back); }; } else { if ((_orthographic) ? (_local4 < 0) : (_local5 > 0)){ if (((_orthographic) || ((_local4 < viewAngle)))){ renderBSPNode(_arg1.back); for (_local2 in _arg1.frontPrimitives) { drawSkin(_local2); }; }; renderBSPNode(_arg1.front); } else { if (((_orthographic) || ((_local4 > -(viewAngle))))){ renderBSPNode(_arg1.front); for (_local2 in _arg1.backPrimitives) { drawSkin(_local2); }; }; renderBSPNode(_arg1.back); }; }; }; }; } override protected function defaultName():String{ return (("camera" + ++counter)); } private function drawSpritePrimitives(_arg1:Set):void{ var _local2:SpritePrimitive; var _local4:*; var _local6:Point3D; var _local7:Number; var _local3 = -1; for (_local4 in _arg1) { _local2 = _local4; _local6 = _local2.sprite.globalCoords; _local7 = ((((cameraMatrix.i * _local6.x) + (cameraMatrix.j * _local6.y)) + (cameraMatrix.k * _local6.z)) + cameraMatrix.l); _local2.screenDepth = _local7; ++_local3; var _local10 = _local3; spritePrimitives[_local10] = _local2; }; if (_local3 > 0){ sortSpritePrimitives(0, _local3); }; var _local5:int = _local3; while (_local5 >= 0) { drawSpriteSkin(spritePrimitives[_local5]); _local5--; }; } private function removeCurrentSkin():void{ var _local1:Skin = currentSkin.nextSkin; _view.canvas.removeChild(currentSkin); if (currentSkin.material != null){ currentSkin.material.clear(currentSkin); }; currentSkin.nextSkin = null; currentSkin.primitive = null; currentSkin.material = null; Skin.destroySkin(currentSkin); currentSkin = _local1; if (prevSkin == null){ firstSkin = currentSkin; } else { prevSkin.nextSkin = currentSkin; }; } public function get viewClipping():Boolean{ return (_viewClipping); } public function set fov(_arg1:Number):void{ _arg1 = ((_arg1)<0) ? 0 : ((_arg1)>(Math.PI - 0.0001)) ? (Math.PI - 0.0001) : _arg1; if (_fov != _arg1){ if (!_orthographic){ addOperationToScene(calculatePlanesOperation); }; _fov = _arg1; }; } private function calculatePlanes():void{ var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; var _local29:Number; var _local1:Number = (_view._width * 0.5); var _local2:Number = (_view._height * 0.5); var _local3:Number = (_transformation.a * _local1); var _local4:Number = (_transformation.e * _local1); var _local5:Number = (_transformation.i * _local1); var _local6:Number = (_transformation.b * _local2); var _local7:Number = (_transformation.f * _local2); var _local8:Number = (_transformation.j * _local2); if (_orthographic){ if (_viewClipping){ _local3 = (_local3 / _zoom); _local4 = (_local4 / _zoom); _local5 = (_local5 / _zoom); _local6 = (_local6 / _zoom); _local7 = (_local7 / _zoom); _local8 = (_local8 / _zoom); leftPlane.x = ((_transformation.f * _transformation.k) - (_transformation.j * _transformation.g)); leftPlane.y = ((_transformation.j * _transformation.c) - (_transformation.b * _transformation.k)); leftPlane.z = ((_transformation.b * _transformation.g) - (_transformation.f * _transformation.c)); leftOffset = ((((_transformation.d - _local3) * leftPlane.x) + ((_transformation.h - _local4) * leftPlane.y)) + ((_transformation.l - _local5) * leftPlane.z)); rightPlane.x = -(leftPlane.x); rightPlane.y = -(leftPlane.y); rightPlane.z = -(leftPlane.z); rightOffset = ((((_transformation.d + _local3) * rightPlane.x) + ((_transformation.h + _local4) * rightPlane.y)) + ((_transformation.l + _local5) * rightPlane.z)); topPlane.x = ((_transformation.g * _transformation.i) - (_transformation.k * _transformation.e)); topPlane.y = ((_transformation.k * _transformation.a) - (_transformation.c * _transformation.i)); topPlane.z = ((_transformation.c * _transformation.e) - (_transformation.g * _transformation.a)); topOffset = ((((_transformation.d - _local6) * topPlane.x) + ((_transformation.h - _local7) * topPlane.y)) + ((_transformation.l - _local8) * topPlane.z)); bottomPlane.x = -(topPlane.x); bottomPlane.y = -(topPlane.y); bottomPlane.z = -(topPlane.z); bottomOffset = ((((_transformation.d + _local6) * bottomPlane.x) + ((_transformation.h + _local7) * bottomPlane.y)) + ((_transformation.l + _local8) * bottomPlane.z)); }; } else { focalLength = ((Math.sqrt(((_view._width * _view._width) + (_view._height * _view._height))) * 0.5) / Math.tan((0.5 * _fov))); focalDistortion = (1 / (focalLength * focalLength)); if (_viewClipping){ _local13 = (_transformation.c * focalLength); _local14 = (_transformation.g * focalLength); _local15 = (_transformation.k * focalLength); _local16 = ((-(_local3) - _local6) + _local13); _local17 = ((-(_local4) - _local7) + _local14); _local18 = ((-(_local5) - _local8) + _local15); _local19 = ((_local3 - _local6) + _local13); _local20 = ((_local4 - _local7) + _local14); _local21 = ((_local5 - _local8) + _local15); _local22 = ((-(_local3) + _local6) + _local13); _local23 = ((-(_local4) + _local7) + _local14); _local24 = ((-(_local5) + _local8) + _local15); _local25 = ((_local3 + _local6) + _local13); _local26 = ((_local4 + _local7) + _local14); _local27 = ((_local5 + _local8) + _local15); leftPlane.x = ((_local23 * _local18) - (_local24 * _local17)); leftPlane.y = ((_local24 * _local16) - (_local22 * _local18)); leftPlane.z = ((_local22 * _local17) - (_local23 * _local16)); leftOffset = (((_transformation.d * leftPlane.x) + (_transformation.h * leftPlane.y)) + (_transformation.l * leftPlane.z)); rightPlane.x = ((_local20 * _local27) - (_local21 * _local26)); rightPlane.y = ((_local21 * _local25) - (_local19 * _local27)); rightPlane.z = ((_local19 * _local26) - (_local20 * _local25)); rightOffset = (((_transformation.d * rightPlane.x) + (_transformation.h * rightPlane.y)) + (_transformation.l * rightPlane.z)); topPlane.x = ((_local17 * _local21) - (_local18 * _local20)); topPlane.y = ((_local18 * _local19) - (_local16 * _local21)); topPlane.z = ((_local16 * _local20) - (_local17 * _local19)); topOffset = (((_transformation.d * topPlane.x) + (_transformation.h * topPlane.y)) + (_transformation.l * topPlane.z)); bottomPlane.x = ((_local26 * _local24) - (_local27 * _local23)); bottomPlane.y = ((_local27 * _local22) - (_local25 * _local24)); bottomPlane.z = ((_local25 * _local23) - (_local26 * _local22)); bottomOffset = (((_transformation.d * bottomPlane.x) + (_transformation.h * bottomPlane.y)) + (_transformation.l * bottomPlane.z)); _local28 = Math.sqrt((((_local16 * _local16) + (_local17 * _local17)) + (_local18 * _local18))); _local16 = (_local16 / _local28); _local17 = (_local17 / _local28); _local18 = (_local18 / _local28); _local28 = Math.sqrt((((_local19 * _local19) + (_local20 * _local20)) + (_local21 * _local21))); _local19 = (_local19 / _local28); _local20 = (_local20 / _local28); _local21 = (_local21 / _local28); _local28 = Math.sqrt((((_local22 * _local22) + (_local23 * _local23)) + (_local24 * _local24))); _local22 = (_local22 / _local28); _local23 = (_local23 / _local28); _local24 = (_local24 / _local28); _local28 = Math.sqrt((((_local25 * _local25) + (_local26 * _local26)) + (_local27 * _local27))); _local25 = (_local25 / _local28); _local26 = (_local26 / _local28); _local27 = (_local27 / _local28); viewAngle = (((_local16 * direction.x) + (_local17 * direction.y)) + (_local18 * direction.z)); _local29 = (((_local19 * direction.x) + (_local20 * direction.y)) + (_local21 * direction.z)); viewAngle = ((_local29)<viewAngle) ? _local29 : viewAngle; _local29 = (((_local22 * direction.x) + (_local23 * direction.y)) + (_local24 * direction.z)); viewAngle = ((_local29)<viewAngle) ? _local29 : viewAngle; _local29 = (((_local25 * direction.x) + (_local26 * direction.y)) + (_local27 * direction.z)); viewAngle = ((_local29)<viewAngle) ? _local29 : viewAngle; viewAngle = Math.sin(Math.acos(viewAngle)); } else { viewAngle = 1; }; }; if (_nearClipping){ if (_orthographic){ _local12 = (_nearClippingDistance / _zoom); _local9 = ((_transformation.c * _local12) + _transformation.d); _local10 = ((_transformation.g * _local12) + _transformation.h); _local11 = ((_transformation.k * _local12) + _transformation.l); } else { _local9 = ((_transformation.c * _nearClippingDistance) + _transformation.d); _local10 = ((_transformation.g * _nearClippingDistance) + _transformation.h); _local11 = ((_transformation.k * _nearClippingDistance) + _transformation.l); }; nearOffset = (((direction.x * _local9) + (direction.y * _local10)) + (direction.z * _local11)); }; if (_farClipping){ if (_orthographic){ _local12 = (_farClippingDistance / _zoom); _local9 = ((_transformation.c * _local12) + _transformation.d); _local10 = ((_transformation.g * _local12) + _transformation.h); _local11 = ((_transformation.k * _local12) + _transformation.l); } else { _local9 = ((_transformation.c * _farClippingDistance) + _transformation.d); _local10 = ((_transformation.g * _farClippingDistance) + _transformation.h); _local11 = ((_transformation.k * _farClippingDistance) + _transformation.l); }; farPlane.x = -(direction.x); farPlane.y = -(direction.y); farPlane.z = -(direction.z); farOffset = (((farPlane.x * _local9) + (farPlane.y * _local10)) + (farPlane.z * _local11)); }; } public function set zoom(_arg1:Number):void{ _arg1 = ((_arg1)<0) ? 0 : _arg1; if (_zoom != _arg1){ if (_orthographic){ addOperationToScene(calculateMatrixOperation); }; _zoom = _arg1; }; } public function get view():View{ return (_view); } private function render():void{ fullDraw = ((calculateMatrixOperation.queued) || (calculatePlanesOperation.queued)); uvMatricesCalculated.clear(); prevSkin = null; currentSkin = firstSkin; renderBSPNode(_scene.bsp); while (currentSkin != null) { removeCurrentSkin(); }; if (_view._interactive){ _view.checkMouseOverOut(true); }; } alternativa3d function addToView(_arg1:View):void{ firstSkin = ((_arg1.canvas.numChildren)>0) ? Skin(_arg1.canvas.getChildAt(0)) : null; calculateTransformationOperation.addSequel(calculateMatrixOperation); calculateMatrixOperation.addSequel(calculatePlanesOperation); calculatePlanesOperation.addSequel(renderOperation); if (_scene != null){ _scene.addOperation(calculateMatrixOperation); _scene.changePrimitivesOperation.addSequel(renderOperation); }; _view = _arg1; } private function calculateMatrix():void{ cameraMatrix.copy(_transformation); cameraMatrix.invert(); if (_orthographic){ cameraMatrix.scale(_zoom, _zoom, _zoom); }; direction.x = _transformation.c; direction.y = _transformation.g; direction.z = _transformation.k; direction.normalize(); } public function get fov():Number{ return (_fov); } private function sortSpritePrimitives(_arg1:int, _arg2:int):void{ var _local5:SpritePrimitive; var _local7:SpritePrimitive; var _local3:int = _arg1; var _local4:int = _arg2; var _local6:Number = spritePrimitives[((_arg2 + _arg1) >> 1)].screenDepth; do { while ((_local5 = spritePrimitives[_local3]).screenDepth < _local6) { _local3++; }; while (_local6 < (_local7 = spritePrimitives[_local4]).screenDepth) { _local4--; }; if (_local3 <= _local4){ var _temp1 = _local3; _local3 = (_local3 + 1); var _local8 = _temp1; spritePrimitives[_local8] = _local7; var _temp2 = _local4; _local4 = (_local4 - 1); var _local9 = _temp2; spritePrimitives[_local9] = _local5; }; } while (_local3 <= _local4); if (_arg1 < _local4){ sortSpritePrimitives(_arg1, _local4); }; if (_local3 < _arg2){ sortSpritePrimitives(_local3, _arg2); }; } public function get zoom():Number{ return (_zoom); } override protected function removeFromScene(_arg1:Scene3D):void{ super.removeFromScene(_arg1); _arg1.removeOperation(calculateMatrixOperation); _arg1.removeOperation(calculatePlanesOperation); _arg1.removeOperation(renderOperation); if (_view != null){ _arg1.changePrimitivesOperation.removeSequel(renderOperation); }; } private function drawSkin(_arg1:PolyPrimitive):void{ var _local2:Surface; var _local3:SurfaceMaterial; var _local4:uint; var _local5:uint; var _local6:Point3D; var _local7:Point; var _local8:DrawPoint; var _local9:Boolean; var _local10:Array; var _local11:Number; var _local12:Number; var _local13:Number; if (((((((!(fullDraw)) && (!((currentSkin == null))))) && ((currentSkin.primitive == _arg1)))) && (!(_scene.changedPrimitives[_arg1])))){ prevSkin = currentSkin; currentSkin = currentSkin.nextSkin; } else { _local2 = _arg1.face._surface; if (_local2 == null){ return; }; _local3 = _local2._material; if ((((_local3 == null)) || (!(_local3.canDraw(_arg1))))){ return; }; _local5 = _arg1.num; _local9 = ((((!(_orthographic)) && (_local3.useUV))) && (_arg1.face.uvMatrixBase)); if (_local9){ _local4 = 0; while (_local4 < _local5) { _local6 = _arg1.points[_local4]; _local7 = _arg1.uvs[_local4]; _local8 = points1[_local4]; if (_local8 == null){ points1[_local4] = new DrawPoint(_local6.x, _local6.y, _local6.z, _local7.x, _local7.y); } else { _local8.x = _local6.x; _local8.y = _local6.y; _local8.z = _local6.z; _local8.u = _local7.x; _local8.v = _local7.y; }; _local4++; }; } else { _local4 = 0; while (_local4 < _local5) { _local6 = _arg1.points[_local4]; _local8 = points1[_local4]; if (_local8 == null){ points1[_local4] = new DrawPoint(_local6.x, _local6.y, _local6.z); } else { _local8.x = _local6.x; _local8.y = _local6.y; _local8.z = _local6.z; }; _local4++; }; }; if (_viewClipping){ _local5 = clip(_local5, points1, points2, leftPlane, leftOffset, _local9); if (_local5 < 3){ return; }; _local5 = clip(_local5, points2, points1, rightPlane, rightOffset, _local9); if (_local5 < 3){ return; }; _local5 = clip(_local5, points1, points2, topPlane, topOffset, _local9); if (_local5 < 3){ return; }; _local5 = clip(_local5, points2, points1, bottomPlane, bottomOffset, _local9); if (_local5 < 3){ return; }; }; if (((_farClipping) && (_nearClipping))){ _local5 = clip(_local5, points1, points2, farPlane, farOffset, _local9); if (_local5 < 3){ return; }; _local5 = clip(_local5, points2, points1, direction, nearOffset, _local9); if (_local5 < 3){ return; }; } else { if (_farClipping){ _local5 = clip(_local5, points1, points2, farPlane, farOffset, _local9); if (_local5 < 3){ return; }; _local10 = points1; points1 = points2; points2 = _local10; } else { if (_nearClipping){ _local5 = clip(_local5, points1, points2, direction, nearOffset, _local9); if (_local5 < 3){ return; }; _local10 = points1; points1 = points2; points2 = _local10; }; }; }; if (((fullDraw) || (_scene.changedPrimitives[_arg1]))){ if (currentSkin == null){ addCurrentSkin(); } else { if (((fullDraw) || (_scene.changedPrimitives[currentSkin.primitive]))){ currentSkin.material.clear(currentSkin); } else { insertCurrentSkin(); }; }; _local4 = 0; while (_local4 < _local5) { _local8 = points1[_local4]; _local11 = _local8.x; _local12 = _local8.y; _local13 = _local8.z; _local8.x = ((((cameraMatrix.a * _local11) + (cameraMatrix.b * _local12)) + (cameraMatrix.c * _local13)) + cameraMatrix.d); _local8.y = ((((cameraMatrix.e * _local11) + (cameraMatrix.f * _local12)) + (cameraMatrix.g * _local13)) + cameraMatrix.h); _local8.z = ((((cameraMatrix.i * _local11) + (cameraMatrix.j * _local12)) + (cameraMatrix.k * _local13)) + cameraMatrix.l); _local4++; }; currentSkin.primitive = _arg1; currentSkin.material = _local3; _local3.draw(this, currentSkin, _local5, points1); prevSkin = currentSkin; currentSkin = currentSkin.nextSkin; } else { while (((!((currentSkin == null))) && (_scene.changedPrimitives[currentSkin.primitive]))) { removeCurrentSkin(); }; if (currentSkin != null){ prevSkin = currentSkin; currentSkin = currentSkin.nextSkin; }; }; }; } public function set farClipping(_arg1:Boolean):void{ if (_farClipping != _arg1){ _farClipping = _arg1; addOperationToScene(calculatePlanesOperation); }; } override protected function addToScene(_arg1:Scene3D):void{ super.addToScene(_arg1); if (_view != null){ _arg1.addOperation(calculatePlanesOperation); _arg1.changePrimitivesOperation.addSequel(renderOperation); }; } public function get farClipping():Boolean{ return (_farClipping); } } }//package alternativa.engine3d.core
Section 4
//Face (alternativa.engine3d.core.Face) package alternativa.engine3d.core { import flash.events.*; import alternativa.types.*; import flash.geom.*; import alternativa.engine3d.*; public final class Face implements IEventDispatcher { alternativa3d var _aUV:Point; alternativa3d var _cUV:Point; alternativa3d var globalOffset:Number; alternativa3d var _verticesCount:uint; alternativa3d var calculateUVOperation:Operation; private var dispatcher:EventDispatcher; alternativa3d var uvMatrixBase:Matrix; alternativa3d var updateMaterialOperation:Operation; alternativa3d var uvMatrix:Matrix; alternativa3d var _bUV:Point; alternativa3d var calculateFragmentsUVOperation:Operation; alternativa3d var _mesh:Mesh; alternativa3d var _vertices:Array; public var mouseEnabled:Boolean;// = true alternativa3d var primitive:PolyPrimitive; alternativa3d var updatePrimitiveOperation:Operation; alternativa3d var globalNormal:Point3D; alternativa3d var _surface:Surface; alternativa3d var calculateNormalOperation:Operation; private static const uvThreshold:Number = 0.000347222222222222; public function Face(_arg1:Array){ var _local3:Vertex; calculateNormalOperation = new Operation("calculateNormal", this, calculateNormal, Operation.FACE_CALCULATE_NORMAL); calculateUVOperation = new Operation("calculateUV", this, calculateUV, Operation.FACE_CALCULATE_UV); updatePrimitiveOperation = new Operation("updatePrimitive", this, updatePrimitive, Operation.FACE_UPDATE_PRIMITIVE); updateMaterialOperation = new Operation("updateMaterial", this, updateMaterial, Operation.FACE_UPDATE_MATERIAL); calculateFragmentsUVOperation = new Operation("calculateFragmentsUV", this, calculateFragmentsUV, Operation.FACE_CALCULATE_FRAGMENTS_UV); globalNormal = new Point3D(); super(); _vertices = _arg1; _verticesCount = _arg1.length; primitive = PolyPrimitive.createPolyPrimitive(); primitive.face = this; primitive.num = _verticesCount; var _local2:uint; while (_local2 < _verticesCount) { _local3 = _arg1[_local2]; primitive.points.push(_local3.globalCoords); primitive.uvs.push(null); _local3.addToFace(this); _local2++; }; calculateNormalOperation.addSequel(updatePrimitiveOperation); calculateUVOperation.addSequel(calculateFragmentsUVOperation); calculateUVOperation.addSequel(updateMaterialOperation); } private function calculatePrimitiveUV(_arg1:PolyPrimitive):void{ var _local2:Array; var _local3:Array; var _local4:Array; var _local5:Array; var _local6:Array; var _local7:Array; var _local8:uint; var _local9:uint; var _local10:Point3D; var _local11:Point; var _local12:Point; var _local13:Point; var _local14:Number; var _local15:Boolean; var _local16:uint; var _local17:Boolean; if (_arg1.backFragment != null){ _local2 = _arg1.points; _local3 = _arg1.backFragment.points; _local4 = _arg1.frontFragment.points; _local5 = _arg1.uvs; _local6 = _arg1.backFragment.uvs; _local7 = _arg1.frontFragment.uvs; _local8 = 0; _local9 = 0; _local15 = true; _local16 = 0; while (_local16 < _arg1.num) { _local17 = true; _local10 = _local2[_local16]; if (_local10 == _local4[_local9]){ if (_local7[_local9] == null){ _local7[_local9] = _local5[_local16]; }; _local17 = false; _local9++; }; if (_local10 == _local3[_local8]){ if (_local6[_local8] == null){ _local6[_local8] = _local5[_local16]; }; _local17 = false; _local8++; }; if (_local17){ _local12 = _local5[((_local16)==0) ? (_arg1.num - 1) : (_local16 - 1)]; _local13 = _local5[_local16]; _local14 = (_local15) ? _arg1.splitTime1 : _arg1.splitTime2; _local11 = _local7[_local9]; if (_local11 == null){ _local11 = new Point((_local12.x + ((_local13.x - _local12.x) * _local14)), (_local12.y + ((_local13.y - _local12.y) * _local14))); _local7[_local9] = _local11; _local6[_local8] = _local11; } else { _local11.x = (_local12.x + ((_local13.x - _local12.x) * _local14)); _local11.y = (_local12.y + ((_local13.y - _local12.y) * _local14)); }; _local15 = false; _local9++; _local8++; if (_local10 == _local4[_local9]){ if (_local7[_local9] == null){ _local7[_local9] = _local5[_local16]; }; _local9++; }; if (_local10 == _local3[_local8]){ if (_local6[_local8] == null){ _local6[_local8] = _local5[_local16]; }; _local8++; }; }; _local16++; }; if (_local9 < _arg1.frontFragment.num){ _local12 = _local5[(_arg1.num - 1)]; _local13 = _local5[0]; _local14 = (_local15) ? _arg1.splitTime1 : _arg1.splitTime2; _local11 = _local7[_local9]; if (_local11 == null){ _local11 = new Point((_local12.x + ((_local13.x - _local12.x) * _local14)), (_local12.y + ((_local13.y - _local12.y) * _local14))); _local7[_local9] = _local11; _local6[_local8] = _local11; } else { _local11.x = (_local12.x + ((_local13.x - _local12.x) * _local14)); _local11.y = (_local12.y + ((_local13.y - _local12.y) * _local14)); }; }; calculatePrimitiveUV(_arg1.backFragment); calculatePrimitiveUV(_arg1.frontFragment); }; } private function calculateUV():void{ var _local1:uint; var _local2:Point; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Point3D; var _local10:Point3D; var _local11:Point3D; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Point3D; if (((((!((_aUV == null))) && (!((_bUV == null))))) && (!((_cUV == null))))){ _local3 = (_bUV.x - _aUV.x); _local4 = (_bUV.y - _aUV.y); _local5 = (_cUV.x - _aUV.x); _local6 = (_cUV.y - _aUV.y); _local7 = ((_local3 * _local6) - (_local4 * _local5)); if ((((_local7 < uvThreshold)) && ((_local7 > -(uvThreshold))))){ if ((((((((_local3 < uvThreshold)) && ((_local3 > -(uvThreshold))))) && ((_local4 < uvThreshold)))) && ((_local4 > -(uvThreshold))))){ if ((((((((_local5 < uvThreshold)) && ((_local5 > -(uvThreshold))))) && ((_local6 < uvThreshold)))) && ((_local6 > -(uvThreshold))))){ _local3 = uvThreshold; _local6 = uvThreshold; } else { _local8 = Math.sqrt(((_local5 * _local5) + (_local6 * _local6))); _local3 = ((uvThreshold * _local6) / _local8); _local4 = ((-(uvThreshold) * _local5) / _local8); }; } else { if ((((((((_local5 < uvThreshold)) && ((_local5 > -(uvThreshold))))) && ((_local6 < uvThreshold)))) && ((_local6 > -(uvThreshold))))){ _local8 = Math.sqrt(((_local3 * _local3) + (_local4 * _local4))); _local5 = ((-(uvThreshold) * _local4) / _local8); _local6 = ((uvThreshold * _local3) / _local8); } else { _local8 = Math.sqrt(((_local3 * _local3) + (_local4 * _local4))); _local5 = (_local5 + ((uvThreshold * _local4) / _local8)); _local6 = (_local6 - ((uvThreshold * _local3) / _local8)); }; }; _local7 = ((_local3 * _local6) - (_local4 * _local5)); primitive.uvs[0] = _aUV; primitive.uvs[1] = new Point((_aUV.x + _local3), (_aUV.y + _local4)); primitive.uvs[2] = new Point((_aUV.x + _local5), (_aUV.y + _local6)); } else { primitive.uvs[0] = _aUV; primitive.uvs[1] = _bUV; primitive.uvs[2] = _cUV; }; if (uvMatrixBase == null){ uvMatrixBase = new Matrix(); uvMatrix = new Matrix(); }; uvMatrixBase.a = (_local6 / _local7); uvMatrixBase.b = (-(_local4) / _local7); uvMatrixBase.c = (-(_local5) / _local7); uvMatrixBase.d = (_local3 / _local7); uvMatrixBase.tx = -(((uvMatrixBase.a * _aUV.x) + (uvMatrixBase.c * _aUV.y))); uvMatrixBase.ty = -(((uvMatrixBase.b * _aUV.x) + (uvMatrixBase.d * _aUV.y))); if (_verticesCount > 3){ _local9 = primitive.points[0]; _local10 = primitive.points[1]; _local11 = primitive.points[2]; if (((globalNormal.x)<0) ? -(globalNormal.x) : globalNormal.x > ((globalNormal.y)<0) ? -(globalNormal.y) : globalNormal.y){ if (((globalNormal.x)<0) ? -(globalNormal.x) : globalNormal.x > ((globalNormal.z)<0) ? -(globalNormal.z) : globalNormal.z){ _local12 = (_local10.y - _local9.y); _local13 = (_local10.z - _local9.z); _local14 = (_local11.y - _local9.y); _local15 = (_local11.z - _local9.z); _local7 = ((_local12 * _local15) - (_local14 * _local13)); _local1 = 3; while (_local1 < _verticesCount) { _local20 = primitive.points[_local1]; _local16 = (_local20.y - _local9.y); _local17 = (_local20.z - _local9.z); _local18 = (((_local16 * _local15) - (_local14 * _local17)) / _local7); _local19 = (((_local12 * _local17) - (_local16 * _local13)) / _local7); _local2 = primitive.uvs[_local1]; if (_local2 == null){ _local2 = new Point(); primitive.uvs[_local1] = _local2; }; _local2.x = ((_aUV.x + (_local3 * _local18)) + (_local5 * _local19)); _local2.y = ((_aUV.y + (_local4 * _local18)) + (_local6 * _local19)); _local1++; }; } else { _local12 = (_local10.x - _local9.x); _local13 = (_local10.y - _local9.y); _local14 = (_local11.x - _local9.x); _local15 = (_local11.y - _local9.y); _local7 = ((_local12 * _local15) - (_local14 * _local13)); _local1 = 3; while (_local1 < _verticesCount) { _local20 = primitive.points[_local1]; _local16 = (_local20.x - _local9.x); _local17 = (_local20.y - _local9.y); _local18 = (((_local16 * _local15) - (_local14 * _local17)) / _local7); _local19 = (((_local12 * _local17) - (_local16 * _local13)) / _local7); _local2 = primitive.uvs[_local1]; if (_local2 == null){ _local2 = new Point(); primitive.uvs[_local1] = _local2; }; _local2.x = ((_aUV.x + (_local3 * _local18)) + (_local5 * _local19)); _local2.y = ((_aUV.y + (_local4 * _local18)) + (_local6 * _local19)); _local1++; }; }; } else { if (((globalNormal.y)<0) ? -(globalNormal.y) : globalNormal.y > ((globalNormal.z)<0) ? -(globalNormal.z) : globalNormal.z){ _local12 = (_local10.x - _local9.x); _local13 = (_local10.z - _local9.z); _local14 = (_local11.x - _local9.x); _local15 = (_local11.z - _local9.z); _local7 = ((_local12 * _local15) - (_local14 * _local13)); _local1 = 3; while (_local1 < _verticesCount) { _local20 = primitive.points[_local1]; _local16 = (_local20.x - _local9.x); _local17 = (_local20.z - _local9.z); _local18 = (((_local16 * _local15) - (_local14 * _local17)) / _local7); _local19 = (((_local12 * _local17) - (_local16 * _local13)) / _local7); _local2 = primitive.uvs[_local1]; if (_local2 == null){ _local2 = new Point(); primitive.uvs[_local1] = _local2; }; _local2.x = ((_aUV.x + (_local3 * _local18)) + (_local5 * _local19)); _local2.y = ((_aUV.y + (_local4 * _local18)) + (_local6 * _local19)); _local1++; }; } else { _local12 = (_local10.x - _local9.x); _local13 = (_local10.y - _local9.y); _local14 = (_local11.x - _local9.x); _local15 = (_local11.y - _local9.y); _local7 = ((_local12 * _local15) - (_local14 * _local13)); _local1 = 3; while (_local1 < _verticesCount) { _local20 = primitive.points[_local1]; _local16 = (_local20.x - _local9.x); _local17 = (_local20.y - _local9.y); _local18 = (((_local16 * _local15) - (_local14 * _local17)) / _local7); _local19 = (((_local12 * _local17) - (_local16 * _local13)) / _local7); _local2 = primitive.uvs[_local1]; if (_local2 == null){ _local2 = new Point(); primitive.uvs[_local1] = _local2; }; _local2.x = ((_aUV.x + (_local3 * _local18)) + (_local5 * _local19)); _local2.y = ((_aUV.y + (_local4 * _local18)) + (_local6 * _local19)); _local1++; }; }; }; }; } else { uvMatrixBase = null; uvMatrix = null; _local1 = 0; while (_local1 < _verticesCount) { primitive.uvs[_local1] = null; _local1++; }; }; } alternativa3d function addToMesh(_arg1:Mesh):void{ _arg1.changeCoordsOperation.addSequel(updatePrimitiveOperation); _arg1.changeRotationOrScaleOperation.addSequel(calculateNormalOperation); _arg1.calculateMobilityOperation.addSequel(updatePrimitiveOperation); _mesh = _arg1; } public function set aUV(_arg1:Point):void{ if (_aUV != null){ if (_arg1 != null){ if (!_aUV.equals(_arg1)){ _aUV.x = _arg1.x; _aUV.y = _arg1.y; if (_mesh != null){ _mesh.addOperationToScene(calculateUVOperation); }; }; } else { _aUV = null; if (_mesh != null){ _mesh.addOperationToScene(calculateUVOperation); }; }; } else { if (_arg1 != null){ _aUV = _arg1.clone(); if (_mesh != null){ _mesh.addOperationToScene(calculateUVOperation); }; }; }; } public function set bUV(_arg1:Point):void{ if (_bUV != null){ if (_arg1 != null){ if (!_bUV.equals(_arg1)){ _bUV.x = _arg1.x; _bUV.y = _arg1.y; if (_mesh != null){ _mesh.addOperationToScene(calculateUVOperation); }; }; } else { _bUV = null; if (_mesh != null){ _mesh.addOperationToScene(calculateUVOperation); }; }; } else { if (_arg1 != null){ _bUV = _arg1.clone(); if (_mesh != null){ _mesh.addOperationToScene(calculateUVOperation); }; }; }; } alternativa3d function removeFromSurface(_arg1:Surface):void{ _arg1.changeMaterialOperation.removeSequel(updateMaterialOperation); if (_arg1._material != null){ _mesh.addOperationToScene(updateMaterialOperation); }; _surface = null; } public function set cUV(_arg1:Point):void{ if (_cUV != null){ if (_arg1 != null){ if (!_cUV.equals(_arg1)){ _cUV.x = _arg1.x; _cUV.y = _arg1.y; if (_mesh != null){ _mesh.addOperationToScene(calculateUVOperation); }; }; } else { _cUV = null; if (_mesh != null){ _mesh.addOperationToScene(calculateUVOperation); }; }; } else { if (_arg1 != null){ _cUV = _arg1.clone(); if (_mesh != null){ _mesh.addOperationToScene(calculateUVOperation); }; }; }; } private function updateMaterial():void{ if (!updatePrimitiveOperation.queued){ changePrimitive(primitive); }; } alternativa3d function addToSurface(_arg1:Surface):void{ _arg1.changeMaterialOperation.addSequel(updateMaterialOperation); if (((!((_mesh == null))) && (((((!((_surface == null))) && (!((_surface._material == _arg1._material))))) || ((((_surface == null)) && (!((_arg1._material == null))))))))){ _mesh.addOperationToScene(updateMaterialOperation); }; _surface = _arg1; } public function willTrigger(_arg1:String):Boolean{ if (dispatcher != null){ return (dispatcher.willTrigger(_arg1)); }; return (false); } public function get id():Object{ return (((_mesh)!=null) ? _mesh.getFaceId(this) : null); } public function get verticesCount():uint{ return (_verticesCount); } private function updatePrimitive():void{ var _local1:Vertex = _vertices[0]; globalOffset = (((_local1.globalCoords.x * globalNormal.x) + (_local1.globalCoords.y * globalNormal.y)) + (_local1.globalCoords.z * globalNormal.z)); removePrimitive(primitive); primitive.mobility = _mesh.inheritedMobility; _mesh._scene.addPrimitives.push(primitive); } private function removePrimitiveUV(_arg1:PolyPrimitive):void{ var _local2:uint; while (_local2 < _arg1.num) { _arg1.uvs[_local2] = null; _local2++; }; if (_arg1.backFragment != null){ removePrimitiveUV(_arg1.backFragment); removePrimitiveUV(_arg1.frontFragment); }; } public function get bUV():Point{ return (((_bUV)!=null) ? _bUV.clone() : null); } private function changePrimitive(_arg1:PolyPrimitive):void{ if (_arg1.backFragment != null){ changePrimitive(_arg1.backFragment); changePrimitive(_arg1.frontFragment); } else { _mesh._scene.changedPrimitives[_arg1] = true; }; } public function get surface():Surface{ return (_surface); } alternativa3d function removeVertices():void{ var _local2:Vertex; var _local1:uint; while (_local1 < _verticesCount) { _local2 = _vertices.pop(); primitive.points.pop(); _local2.removeFromFace(this); _local1++; }; _verticesCount = 0; } private function calculateFragmentsUV():void{ if (!updatePrimitiveOperation.queued){ if (uvMatrixBase != null){ calculatePrimitiveUV(primitive); } else { removePrimitiveUV(primitive); }; }; } private function removePrimitive(_arg1:PolyPrimitive):void{ if (_arg1.backFragment != null){ removePrimitive(_arg1.backFragment); removePrimitive(_arg1.frontFragment); _arg1.backFragment = null; _arg1.frontFragment = null; if (_arg1 != this.primitive){ _arg1.parent = null; _arg1.sibling = null; PolyPrimitive.destroyPolyPrimitive(_arg1); }; } else { if (_arg1.node != null){ _mesh._scene.removeBSPPrimitive(_arg1); }; }; } public function dispatchEvent(_arg1:Event):Boolean{ if (dispatcher != null){ dispatcher.dispatchEvent(_arg1); }; return (false); } public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ if (dispatcher != null){ _arg3 = false; dispatcher.removeEventListener(_arg1, _arg2, _arg3); }; } public function get cUV():Point{ return (((_cUV)!=null) ? _cUV.clone() : null); } public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{ if (dispatcher == null){ dispatcher = new EventDispatcher(this); }; _arg3 = false; dispatcher.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); } public function get aUV():Point{ return (((_aUV)!=null) ? _aUV.clone() : null); } alternativa3d function removeFromMesh(_arg1:Mesh):void{ _arg1.changeCoordsOperation.removeSequel(updatePrimitiveOperation); _arg1.changeRotationOrScaleOperation.removeSequel(calculateNormalOperation); _arg1.calculateMobilityOperation.removeSequel(updatePrimitiveOperation); _mesh = null; } alternativa3d function removeFromScene(_arg1:Scene3D):void{ _arg1.removeOperation(calculateUVOperation); _arg1.removeOperation(calculateFragmentsUVOperation); _arg1.removeOperation(calculateNormalOperation); _arg1.removeOperation(updatePrimitiveOperation); _arg1.removeOperation(updateMaterialOperation); removePrimitive(primitive); _arg1.addOperation(_arg1.calculateBSPOperation); updatePrimitiveOperation.removeSequel(_arg1.calculateBSPOperation); updateMaterialOperation.removeSequel(_arg1.changePrimitivesOperation); } public function toString():String{ var _local3:Vertex; var _local1:String = (("[Face ID:" + id) + ((_verticesCount)>0) ? " vertices:" : ""); var _local2:uint; while (_local2 < _verticesCount) { _local3 = _vertices[_local2]; _local1 = (_local1 + (_local3.id + ((_local2)<(_verticesCount - 1)) ? ", " : "")); _local2++; }; _local1 = (_local1 + "]"); return (_local1); } private function calculateNormal():void{ var _local1:Vertex = _vertices[0]; var _local2:Point3D = _local1.globalCoords; _local1 = _vertices[1]; var _local3:Point3D = _local1.globalCoords; var _local4:Number = (_local3.x - _local2.x); var _local5:Number = (_local3.y - _local2.y); var _local6:Number = (_local3.z - _local2.z); _local1 = _vertices[2]; var _local7:Point3D = _local1.globalCoords; var _local8:Number = (_local7.x - _local2.x); var _local9:Number = (_local7.y - _local2.y); var _local10:Number = (_local7.z - _local2.z); globalNormal.x = ((_local10 * _local5) - (_local9 * _local6)); globalNormal.y = ((_local8 * _local6) - (_local10 * _local4)); globalNormal.z = ((_local9 * _local4) - (_local8 * _local5)); globalNormal.normalize(); } public function get edgeJoinedFaces():Set{ var _local3:Vertex; var _local4:Vertex; var _local5:*; var _local6:Face; var _local1:Set = new Set(true); var _local2:uint; while (_local2 < _verticesCount) { _local3 = _vertices[_local2]; _local4 = _vertices[((_local2)<(_verticesCount - 1)) ? (_local2 + 1) : 0]; for (_local5 in _local3._faces) { _local6 = _local5; if (((!((_local6 == this))) && ((_local6._vertices.indexOf(_local4) >= 0)))){ _local1[_local6] = true; }; }; _local2++; }; return (_local1); } alternativa3d function getUVFast(_arg1:Point3D, _arg2:Point3D):Point{ var _local3:uint; if ((((((_aUV == null)) || ((_bUV == null)))) || ((_cUV == null)))){ return (null); }; if (((_arg2.x)<0) ? -(_arg2.x) : _arg2.x > ((_arg2.y)<0) ? -(_arg2.y) : _arg2.y){ if (((_arg2.x)<0) ? -(_arg2.x) : _arg2.x > ((_arg2.z)<0) ? -(_arg2.z) : _arg2.z){ _local3 = 0; } else { _local3 = 2; }; } else { if (((_arg2.y)<0) ? -(_arg2.y) : _arg2.y > ((_arg2.z)<0) ? -(_arg2.z) : _arg2.z){ _local3 = 1; } else { _local3 = 2; }; }; var _local4:Vertex = _vertices[0]; var _local5:Point3D = _local4._coords; _local4 = _vertices[1]; var _local6:Point3D = _local4._coords; _local4 = _vertices[2]; var _local7:Point3D = _local4._coords; var _local8:Number = ((_local3)==0) ? (_local6.y - _local5.y) : (_local6.x - _local5.x); var _local9:Number = ((_local3)==2) ? (_local6.y - _local5.y) : (_local6.z - _local5.z); var _local10:Number = ((_local3)==0) ? (_local7.y - _local5.y) : (_local7.x - _local5.x); var _local11:Number = ((_local3)==2) ? (_local7.y - _local5.y) : (_local7.z - _local5.z); var _local12:Number = ((_local8 * _local11) - (_local10 * _local9)); var _local13:Number = ((_local3)==0) ? (_arg1.y - _local5.y) : (_arg1.x - _local5.x); var _local14:Number = ((_local3)==2) ? (_arg1.y - _local5.y) : (_arg1.z - _local5.z); var _local15:Number = (((_local13 * _local11) - (_local10 * _local14)) / _local12); var _local16:Number = (((_local8 * _local14) - (_local13 * _local9)) / _local12); var _local17:Number = (_bUV.x - _aUV.x); var _local18:Number = (_bUV.y - _aUV.y); var _local19:Number = (_cUV.x - _aUV.x); var _local20:Number = (_cUV.y - _aUV.y); return (new Point(((_aUV.x + (_local17 * _local15)) + (_local19 * _local16)), ((_aUV.y + (_local18 * _local15)) + (_local20 * _local16)))); } public function get normal():Point3D{ var _local12:Number; var _local1:Point3D = new Point3D(); var _local2:Vertex = _vertices[0]; var _local3:Point3D = _local2.coords; _local2 = _vertices[1]; var _local4:Point3D = _local2.coords; var _local5:Number = (_local4.x - _local3.x); var _local6:Number = (_local4.y - _local3.y); var _local7:Number = (_local4.z - _local3.z); _local2 = _vertices[2]; var _local8:Point3D = _local2.coords; var _local9:Number = (_local8.x - _local3.x); var _local10:Number = (_local8.y - _local3.y); var _local11:Number = (_local8.z - _local3.z); _local1.x = ((_local11 * _local6) - (_local10 * _local7)); _local1.y = ((_local9 * _local7) - (_local11 * _local5)); _local1.z = ((_local10 * _local5) - (_local9 * _local6)); if (((((!((_local1.x == 0))) || (!((_local1.y == 0))))) || (!((_local1.z == 0))))){ _local12 = Math.sqrt((((_local1.x * _local1.x) + (_local1.y * _local1.y)) + (_local1.z * _local1.z))); _local1.x = (_local1.x / _local12); _local1.y = (_local1.y / _local12); _local1.z = (_local1.z / _local12); }; return (_local1); } public function getUV(_arg1:Point3D):Point{ return (getUVFast(_arg1, normal)); } public function get vertices():Array{ return (new Array().concat(_vertices)); } public function hasEventListener(_arg1:String):Boolean{ if (dispatcher != null){ return (dispatcher.hasEventListener(_arg1)); }; return (false); } public function get mesh():Mesh{ return (_mesh); } alternativa3d function addToScene(_arg1:Scene3D):void{ _arg1.addOperation(calculateNormalOperation); _arg1.addOperation(calculateUVOperation); updatePrimitiveOperation.addSequel(_arg1.calculateBSPOperation); updateMaterialOperation.addSequel(_arg1.changePrimitivesOperation); } } }//package alternativa.engine3d.core
Section 5
//Mesh (alternativa.engine3d.core.Mesh) package alternativa.engine3d.core { import alternativa.types.*; import flash.geom.*; import alternativa.engine3d.materials.*; import alternativa.utils.*; import alternativa.engine3d.errors.*; import alternativa.engine3d.*; public class Mesh extends Object3D { alternativa3d var _surfaces:Map; private var surfaceIDCounter:uint;// = 0 alternativa3d var _vertices:Map; private var faceIDCounter:uint;// = 0 alternativa3d var _faces:Map; private var vertexIDCounter:uint;// = 0 private static var counter:uint = 0; public function Mesh(_arg1:String=null){ _vertices = new Map(); _faces = new Map(); _surfaces = new Map(); super(_arg1); } public function createVertex(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Object=null):Vertex{ if (_arg4 != null){ if (_vertices[_arg4] != undefined){ if ((_vertices[_arg4] is Vertex)){ throw (new VertexExistsError(_arg4, this)); }; throw (new InvalidIDError(_arg4, this)); }; } else { while (_vertices[vertexIDCounter] != undefined) { vertexIDCounter++; }; _arg4 = vertexIDCounter; }; var _local5:Vertex = new Vertex(_arg1, _arg2, _arg3); if (_scene != null){ _local5.addToScene(_scene); }; _local5.addToMesh(this); _vertices[_arg4] = _local5; return (_local5); } public function removeFace(_arg1:Object):Face{ var _local2 = (_arg1 is Face); if (_arg1 == null){ throw (new FaceNotFoundError(null, this)); }; if (_local2){ if (Face(_arg1)._mesh != this){ throw (new FaceNotFoundError(_arg1, this)); }; } else { if (_faces[_arg1] == undefined){ throw (new FaceNotFoundError(_arg1, this)); }; if (!(_faces[_arg1] is Face)){ throw (new InvalidIDError(_arg1, this)); }; }; var _local3:Face = (_local2) ? Face(_arg1) : _faces[_arg1]; var _local4:Object = (_local2) ? getFaceId(Face(_arg1)) : _arg1; _local3.removeVertices(); if (_local3._surface != null){ _local3._surface._faces.remove(_local3); _local3.removeFromSurface(_local3._surface); }; if (_scene != null){ _local3.removeFromScene(_scene); }; _local3.removeFromMesh(this); delete _faces[_local4]; return (_local3); } public function hasSurface(_arg1:Object):Boolean{ if (_arg1 == null){ throw (new SurfaceNotFoundError(null, this)); }; if ((_arg1 is Surface)){ return ((_arg1._mesh == this)); }; if (_surfaces[_arg1] != undefined){ if ((_surfaces[_arg1] is Surface)){ return (true); }; throw (new InvalidIDError(_arg1, this)); //unresolved jump }; return (false); } public function removeSurface(_arg1:Object):Surface{ var _local2 = (_arg1 is Surface); if (_arg1 == null){ throw (new SurfaceNotFoundError(null, this)); }; if (_local2){ if (Surface(_arg1)._mesh != this){ throw (new SurfaceNotFoundError(_arg1, this)); }; } else { if (_surfaces[_arg1] == undefined){ throw (new SurfaceNotFoundError(_arg1, this)); }; if (!(_surfaces[_arg1] is Surface)){ throw (new InvalidIDError(_arg1, this)); }; }; var _local3:Surface = (_local2) ? Surface(_arg1) : _surfaces[_arg1]; var _local4:Object = (_local2) ? getSurfaceId(Surface(_arg1)) : _arg1; if (_scene != null){ _local3.removeFromScene(_scene); }; _local3.removeFaces(); _local3.removeFromMesh(this); delete _surfaces[_local4]; return (_local3); } public function moveAllFacesToSurface(_arg1:Object=null, _arg2:Boolean=false):Surface{ var _local3:Surface; var _local4:Object; var _local5:Face; var _local6:Map; var _local7:*; var _local8:Surface; if ((_arg1 is Surface)){ if (_arg1._mesh == this){ _local3 = Surface(_arg1); } else { throw (new SurfaceNotFoundError(_arg1, this)); }; } else { if (_surfaces[_arg1] == undefined){ _local3 = createSurface(null, _arg1); _local4 = _arg1; } else { if ((_surfaces[_arg1] is Surface)){ _local3 = _surfaces[_arg1]; } else { throw (new InvalidIDError(_arg1, this)); }; }; }; for each (_local5 in _faces) { if (_local5._surface != _local3){ _local3.addFace(_local5); }; }; if (_arg2){ if (_local4 == null){ _local4 = getSurfaceId(_local3); }; _local6 = new Map(); _local6[_local4] = _local3; delete _surfaces[_local4]; for (_local7 in _surfaces) { _local8 = _surfaces[_local7]; if (_scene != null){ _local8.removeFromScene(_scene); }; _local8.removeFromMesh(this); delete _surfaces[_local7]; }; _surfaces = _local6; }; return (_local3); } public function getFaceId(_arg1:Face):Object{ var _local2:Object; if (_arg1 == null){ throw (new FaceNotFoundError(null, this)); }; if (_arg1._mesh != this){ throw (new FaceNotFoundError(_arg1, this)); }; for (_local2 in _faces) { if (_faces[_local2] == _arg1){ return (_local2); }; }; throw (new FaceNotFoundError(_arg1, this)); } public function removeVertex(_arg1:Object):Vertex{ var _local2 = (_arg1 is Vertex); if (_arg1 == null){ throw (new VertexNotFoundError(null, this)); }; if (_local2){ if (Vertex(_arg1)._mesh != this){ throw (new VertexNotFoundError(_arg1, this)); }; } else { if (_vertices[_arg1] == undefined){ throw (new VertexNotFoundError(_arg1, this)); }; if (!(_vertices[_arg1] is Vertex)){ throw (new InvalidIDError(_arg1, this)); }; }; var _local3:Vertex = (_local2) ? Vertex(_arg1) : _vertices[_arg1]; var _local4:Object = (_local2) ? getVertexId(Vertex(_arg1)) : _arg1; if (_scene != null){ _local3.removeFromScene(_scene); }; _local3.removeFromMesh(this); delete _vertices[_local4]; return (_local3); } public function setMaterialToSurface(_arg1:SurfaceMaterial, _arg2:Object):void{ var _local3 = (_arg2 is Surface); if (_arg2 == null){ throw (new SurfaceNotFoundError(null, this)); }; if (_local3){ if (Surface(_arg2)._mesh != this){ throw (new SurfaceNotFoundError(_arg2, this)); }; } else { if (_surfaces[_arg2] == undefined){ throw (new SurfaceNotFoundError(_arg2, this)); }; if (!(_surfaces[_arg2] is Surface)){ throw (new InvalidIDError(_arg2, this)); }; }; var _local4:Surface = (_local3) ? Surface(_arg2) : _surfaces[_arg2]; _local4.material = _arg1; } public function createSurface(_arg1:Array=null, _arg2:Object=null):Surface{ var _local4:uint; var _local5:uint; if (_arg2 != null){ if (_surfaces[_arg2] != undefined){ if ((_surfaces[_arg2] is Surface)){ throw (new SurfaceExistsError(_arg2, this)); }; throw (new InvalidIDError(_arg2, this)); }; } else { while (_surfaces[surfaceIDCounter] != undefined) { surfaceIDCounter++; }; _arg2 = surfaceIDCounter; }; var _local3:Surface = new Surface(); if (_scene != null){ _local3.addToScene(_scene); }; _local3.addToMesh(this); _surfaces[_arg2] = _local3; if (_arg1 != null){ _local4 = _arg1.length; _local5 = 0; while (_local5 < _local4) { _local3.addFace(_arg1[_local5]); _local5++; }; }; return (_local3); } override protected function clonePropertiesFrom(_arg1:Object3D):void{ var _local3:*; var _local4:int; var _local5:int; var _local7:Map; var _local8:Vertex; var _local9:Face; var _local10:Array; var _local11:Face; var _local12:Surface; var _local13:Array; var _local14:Surface; var _local15:SurfaceMaterial; super.clonePropertiesFrom(_arg1); var _local2:Mesh = Mesh(_arg1); var _local6:Map = new Map(true); for (_local3 in _local2._vertices) { _local8 = _local2._vertices[_local3]; _local6[_local8] = createVertex(_local8.x, _local8.y, _local8.z, _local3); }; _local7 = new Map(true); for (_local3 in _local2._faces) { _local9 = _local2._faces[_local3]; _local4 = _local9._vertices.length; _local10 = new Array(_local4); _local5 = 0; while (_local5 < _local4) { _local10[_local5] = _local6[_local9._vertices[_local5]]; _local5++; }; _local11 = createFace(_local10, _local3); _local11.aUV = _local9._aUV; _local11.bUV = _local9._bUV; _local11.cUV = _local9._cUV; _local7[_local9] = _local11; }; for (_local3 in _local2._surfaces) { _local12 = _local2._surfaces[_local3]; _local13 = _local12._faces.toArray(); _local4 = _local13.length; _local5 = 0; while (_local5 < _local4) { _local13[_local5] = _local7[_local13[_local5]]; _local5++; }; _local14 = createSurface(_local13, _local3); _local15 = _local12.material; if (_local15 != null){ _local14.material = SurfaceMaterial(_local15.clone()); }; }; } public function getVertexById(_arg1:Object):Vertex{ if (_arg1 == null){ throw (new VertexNotFoundError(null, this)); }; if (_vertices[_arg1] == undefined){ throw (new VertexNotFoundError(_arg1, this)); }; if ((_vertices[_arg1] is Vertex)){ return (_vertices[_arg1]); }; throw (new InvalidIDError(_arg1, this)); } public function cloneMaterialToAllSurfaces(_arg1:SurfaceMaterial):void{ var _local2:Surface; for each (_local2 in _surfaces) { _local2.material = ((_arg1)!=null) ? SurfaceMaterial(_arg1.clone()) : null; }; } public function hasFace(_arg1:Object):Boolean{ if (_arg1 == null){ throw (new FaceNotFoundError(null, this)); }; if ((_arg1 is Face)){ return ((_arg1._mesh == this)); }; if (_faces[_arg1] != undefined){ if ((_faces[_arg1] is Face)){ return (true); }; throw (new InvalidIDError(_arg1, this)); //unresolved jump }; return (false); } override alternativa3d function setScene(_arg1:Scene3D):void{ var _local2:Vertex; var _local3:Face; var _local4:Surface; if (_scene != _arg1){ if (_arg1 != null){ for each (_local2 in _vertices) { _local2.addToScene(_arg1); }; for each (_local3 in _faces) { _local3.addToScene(_arg1); }; for each (_local4 in _surfaces) { _local4.addToScene(_arg1); }; } else { for each (_local2 in _vertices) { _local2.removeFromScene(_scene); }; for each (_local3 in _faces) { _local3.removeFromScene(_scene); }; for each (_local4 in _surfaces) { _local4.removeFromScene(_scene); }; }; }; super.setScene(_arg1); } public function createFace(_arg1:Array, _arg2:Object=null):Face{ var _local5:Vertex; if (_arg1 == null){ throw (new FaceNeedMoreVerticesError(this)); }; if (_arg2 != null){ if (_faces[_arg2] != undefined){ if ((_faces[_arg2] is Face)){ throw (new FaceExistsError(_arg2, this)); }; throw (new InvalidIDError(_arg2, this)); }; } else { while (_faces[faceIDCounter] != undefined) { faceIDCounter++; }; _arg2 = faceIDCounter; }; var _local3:uint = _arg1.length; if (_local3 < 3){ throw (new FaceNeedMoreVerticesError(this, _local3)); }; var _local4:Array = new Array(); var _local6:uint; while (_local6 < _local3) { if ((_arg1[_local6] is Vertex)){ _local5 = _arg1[_local6]; if (_local5._mesh != this){ throw (new VertexNotFoundError(_arg1[_local6], this)); }; } else { if (_vertices[_arg1[_local6]] == null){ throw (new VertexNotFoundError(_arg1[_local6], this)); }; if (!(_vertices[_arg1[_local6]] is Vertex)){ throw (new InvalidIDError(_arg1[_local6], this)); }; _local5 = _vertices[_arg1[_local6]]; }; _local4.push(_local5); _local6++; }; var _local7:Face = new Face(_local4); if (_scene != null){ _local7.addToScene(_scene); }; _local7.addToMesh(this); _faces[_arg2] = _local7; return (_local7); } public function getVertexId(_arg1:Vertex):Object{ var _local2:Object; if (_arg1 == null){ throw (new VertexNotFoundError(null, this)); }; if (_arg1._mesh != this){ throw (new VertexNotFoundError(_arg1, this)); }; for (_local2 in _vertices) { if (_vertices[_local2] == _arg1){ return (_local2); }; }; throw (new VertexNotFoundError(_arg1, this)); } public function getFaceById(_arg1:Object):Face{ if (_arg1 == null){ throw (new FaceNotFoundError(null, this)); }; if (_faces[_arg1] == undefined){ throw (new FaceNotFoundError(_arg1, this)); }; if ((_faces[_arg1] is Face)){ return (_faces[_arg1]); }; throw (new InvalidIDError(_arg1, this)); } public function hasVertex(_arg1:Object):Boolean{ if (_arg1 == null){ throw (new VertexNotFoundError(null, this)); }; if ((_arg1 is Vertex)){ return ((_arg1._mesh == this)); }; if (_vertices[_arg1] != undefined){ if ((_vertices[_arg1] is Vertex)){ return (true); }; throw (new InvalidIDError(_arg1, this)); //unresolved jump }; return (false); } override protected function createEmptyObject():Object3D{ return (new Mesh()); } public function get surfaces():Map{ return (_surfaces.clone()); } public function getSurfaceById(_arg1:Object):Surface{ if (_arg1 == null){ throw (new SurfaceNotFoundError(null, this)); }; if (_surfaces[_arg1] == undefined){ throw (new SurfaceNotFoundError(_arg1, this)); }; if ((_surfaces[_arg1] is Surface)){ return (_surfaces[_arg1]); }; throw (new InvalidIDError(_arg1, this)); } override protected function defaultName():String{ return (("mesh" + ++counter)); } public function setUVsToFace(_arg1:Point, _arg2:Point, _arg3:Point, _arg4:Object):void{ var _local5 = (_arg4 is Face); if (_arg4 == null){ throw (new FaceNotFoundError(null, this)); }; if (_local5){ if (Face(_arg4)._mesh != this){ throw (new FaceNotFoundError(_arg4, this)); }; } else { if (_faces[_arg4] == undefined){ throw (new FaceNotFoundError(_arg4, this)); }; if (!(_faces[_arg4] is Face)){ throw (new InvalidIDError(_arg4, this)); }; }; var _local6:Face = (_local5) ? Face(_arg4) : _faces[_arg4]; _local6.aUV = _arg1; _local6.bUV = _arg2; _local6.cUV = _arg3; } public function getSurfaceId(_arg1:Surface):Object{ var _local2:Object; if (_arg1 == null){ throw (new SurfaceNotFoundError(null, this)); }; if (_arg1._mesh != this){ throw (new SurfaceNotFoundError(_arg1, this)); }; for (_local2 in _surfaces) { if (_surfaces[_local2] == _arg1){ return (_local2); }; }; return (null); } public function get faces():Map{ return (_faces.clone()); } public function get vertices():Map{ return (_vertices.clone()); } override public function toString():String{ return ((((((((("[" + ObjectUtils.getClassName(this)) + " ") + _name) + " vertices: ") + _vertices.length) + " faces: ") + _faces.length) + "]")); } } }//package alternativa.engine3d.core
Section 6
//Object3D (alternativa.engine3d.core.Object3D) package alternativa.engine3d.core { import flash.events.*; import alternativa.types.*; import alternativa.utils.*; import alternativa.engine3d.errors.*; import alternativa.engine3d.*; public class Object3D implements IEventDispatcher { alternativa3d var _mobility:int;// = 0 alternativa3d var calculateTransformationOperation:Operation; alternativa3d var changeCoordsOperation:Operation; alternativa3d var _rotationX:Number;// = 0 alternativa3d var _rotationY:Number;// = 0 alternativa3d var _rotationZ:Number;// = 0 alternativa3d var _transformation:Matrix3D; alternativa3d var _coords:Point3D; alternativa3d var calculateMobilityOperation:Operation; alternativa3d var _children:Set; alternativa3d var _name:String; alternativa3d var _scaleX:Number;// = 1 alternativa3d var changeRotationOrScaleOperation:Operation; alternativa3d var _scaleZ:Number;// = 1 alternativa3d var _scaleY:Number;// = 1 alternativa3d var _scene:Scene3D; alternativa3d var globalCoords:Point3D; alternativa3d var inheritedMobility:int; private var dispatcher:EventDispatcher; alternativa3d var _parent:Object3D; public var mouseEnabled:Boolean;// = true alternativa3d static var matrix1:Matrix3D = new Matrix3D(); alternativa3d static var matrix2:Matrix3D = new Matrix3D(); private static var counter:uint = 0; public function Object3D(_arg1:String=null){ changeRotationOrScaleOperation = new Operation("changeRotationOrScale", this); changeCoordsOperation = new Operation("changeCoords", this); calculateTransformationOperation = new Operation("calculateTransformation", this, calculateTransformation, Operation.OBJECT_CALCULATE_TRANSFORMATION); calculateMobilityOperation = new Operation("calculateMobility", this, calculateMobility, Operation.OBJECT_CALCULATE_MOBILITY); _children = new Set(); _coords = new Point3D(); _transformation = new Matrix3D(); globalCoords = new Point3D(); super(); _name = ((_arg1)!=null) ? _arg1 : defaultName(); changeRotationOrScaleOperation.addSequel(calculateTransformationOperation); changeCoordsOperation.addSequel(calculateTransformationOperation); } public function addChild(_arg1:Object3D):Object3D{ var _local2:Object3D; if (_arg1 == null){ throw (new Object3DHierarchyError(null, this)); }; if (_arg1._parent == this){ return (_arg1); }; if (_arg1 == this){ throw (new Object3DHierarchyError(this, this)); }; if (_arg1._scene == _scene){ _local2 = _parent; while (_local2 != null) { if (_arg1 == _local2){ throw (new Object3DHierarchyError(_arg1, this)); }; _local2 = _local2._parent; }; }; if (_arg1._parent != null){ _arg1._parent._children.remove(_arg1); } else { if (((!((_arg1._scene == null))) && ((_arg1._scene._root == _arg1)))){ _arg1._scene.root = null; }; }; _children.add(_arg1); _arg1.setParent(this); _arg1.setLevel(((calculateTransformationOperation.priority & 0xFFFFFF) + 1)); _arg1.setScene(_scene); return (_arg1); } public function set z(_arg1:Number):void{ if (_coords.z != _arg1){ _coords.z = _arg1; addOperationToScene(changeCoordsOperation); }; } public function get children():Set{ return (_children.clone()); } public function get transformation():Matrix3D{ var _local1:Matrix3D = new Matrix3D(); getTransformation(_local1); return (_local1); } alternativa3d function getTransformation(_arg1:Matrix3D):Boolean{ var _local3:Object3D; var _local2:Object3D = _scene._root; var _local4:Object3D = this; do { if (((_local4.changeCoordsOperation.queued) || (_local4.changeRotationOrScaleOperation.queued))){ _local3 = _local4._parent; }; _local4 = _local4._parent; } while (_local4 != _local2); if (_local3 != null){ _arg1.toTransform(_coords.x, _coords.y, _coords.z, _rotationX, _rotationY, _rotationZ, _scaleX, _scaleY, _scaleZ); _local4 = this; while ((_local4 = _local4._parent) != _local3) { matrix1.toTransform(_local4._coords.x, _local4._coords.y, _local4._coords.z, _local4._rotationX, _local4._rotationY, _local4._rotationZ, _local4._scaleX, _local4._scaleY, _local4._scaleZ); _arg1.combine(matrix1); }; if (_local3 != _local2){ _arg1.combine(_local3._transformation); }; return (true); }; _arg1.copy(_transformation); return (false); } alternativa3d function calculateTransformation():void{ if (changeRotationOrScaleOperation.queued){ _transformation.toTransform(_coords.x, _coords.y, _coords.z, _rotationX, _rotationY, _rotationZ, _scaleX, _scaleY, _scaleZ); if (_parent != null){ _transformation.combine(_parent._transformation); }; globalCoords.x = _transformation.d; globalCoords.y = _transformation.h; globalCoords.z = _transformation.l; } else { globalCoords.copy(_coords); if (_parent != null){ globalCoords.transform(_parent._transformation); }; _transformation.offset(globalCoords.x, globalCoords.y, globalCoords.z); }; } public function set name(_arg1:String):void{ _name = _arg1; } public function get coords():Point3D{ return (_coords.clone()); } alternativa3d function addOperationToScene(_arg1:Operation):void{ if (_scene != null){ _scene.addOperation(_arg1); }; } private function calculateMobility():void{ inheritedMobility = (((_parent)!=null) ? _parent.inheritedMobility : 0 + _mobility); } public function set rotationX(_arg1:Number):void{ if (_rotationX != _arg1){ _rotationX = _arg1; addOperationToScene(changeRotationOrScaleOperation); }; } public function set coords(_arg1:Point3D):void{ if (!_coords.equals(_arg1)){ _coords.copy(_arg1); addOperationToScene(changeCoordsOperation); }; } public function set rotationZ(_arg1:Number):void{ if (_rotationZ != _arg1){ _rotationZ = _arg1; addOperationToScene(changeRotationOrScaleOperation); }; } protected function clonePropertiesFrom(_arg1:Object3D):void{ _name = _arg1._name; _mobility = _arg1._mobility; _coords.x = _arg1._coords.x; _coords.y = _arg1._coords.y; _coords.z = _arg1._coords.z; _rotationX = _arg1._rotationX; _rotationY = _arg1._rotationY; _rotationZ = _arg1._rotationZ; _scaleX = _arg1._scaleX; _scaleY = _arg1._scaleY; _scaleZ = _arg1._scaleZ; } public function dispatchEvent(_arg1:Event):Boolean{ if (dispatcher != null){ dispatcher.dispatchEvent(_arg1); }; return (false); } alternativa3d function setLevel(_arg1:uint):void{ var _local2:*; var _local3:Object3D; calculateTransformationOperation.priority = ((calculateTransformationOperation.priority & 4278190080) | _arg1); calculateMobilityOperation.priority = ((calculateMobilityOperation.priority & 4278190080) | _arg1); for (_local2 in _children) { _local3 = _local2; _local3.setLevel((_arg1 + 1)); }; } public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{ if (dispatcher == null){ dispatcher = new EventDispatcher(this); }; _arg3 = false; dispatcher.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); } public function get scaleY():Number{ return (_scaleY); } alternativa3d function setScene(_arg1:Scene3D):void{ var _local2:*; var _local3:Object3D; if (_scene != _arg1){ if (_scene != null){ removeFromScene(_scene); }; if (_arg1 != null){ addToScene(_arg1); }; _scene = _arg1; } else { addOperationToScene(changeRotationOrScaleOperation); addOperationToScene(calculateMobilityOperation); }; for (_local2 in _children) { _local3 = _local2; _local3.setScene(_scene); }; } public function get scaleX():Number{ return (_scaleX); } public function set mobility(_arg1:int):void{ if (_mobility != _arg1){ _mobility = _arg1; addOperationToScene(calculateMobilityOperation); }; } public function get scaleZ():Number{ return (_scaleZ); } public function set rotationY(_arg1:Number):void{ if (_rotationY != _arg1){ _rotationY = _arg1; addOperationToScene(changeRotationOrScaleOperation); }; } public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ if (dispatcher != null){ _arg3 = false; dispatcher.removeEventListener(_arg1, _arg2, _arg3); }; } public function clone():Object3D{ var _local2:*; var _local3:Object3D; var _local1:Object3D = createEmptyObject(); _local1.clonePropertiesFrom(this); for (_local2 in _children) { _local3 = _local2; _local1.addChild(_local3.clone()); }; return (_local1); } protected function createEmptyObject():Object3D{ return (new Object3D()); } protected function defaultName():String{ return (("object" + ++counter)); } public function get x():Number{ return (_coords.x); } public function get y():Number{ return (_coords.y); } public function get z():Number{ return (_coords.z); } public function toString():String{ return ((((("[" + ObjectUtils.getClassName(this)) + " ") + _name) + "]")); } public function willTrigger(_arg1:String):Boolean{ if (dispatcher != null){ return (dispatcher.willTrigger(_arg1)); }; return (false); } public function getChildByName(_arg1:String, _arg2:Boolean=false):Object3D{ var _local3:*; var _local4:Object3D; for (_local3 in _children) { _local4 = _local3; if (_local4._name == _arg1){ return (_local4); }; }; if (_arg2){ for (_local3 in _children) { _local4 = _local3; _local4 = _local4.getChildByName(_arg1, true); if (_local4 != null){ return (_local4); }; }; }; return (null); } public function localToGlobal(_arg1:Point3D):Point3D{ if (_scene == null){ return (null); }; var _local2:Point3D = _arg1.clone(); if (_parent == null){ return (_local2); }; getTransformation(matrix2); _local2.transform(matrix2); return (_local2); } public function get name():String{ return (_name); } public function get scene():Scene3D{ return (_scene); } public function globalToLocal(_arg1:Point3D):Point3D{ var _local2:Point3D = _arg1.clone(); getTransformation(matrix2); matrix2.invert(); _local2.transform(matrix2); return (_local2); } public function get rotationX():Number{ return (_rotationX); } public function get rotationY():Number{ return (_rotationY); } public function get rotationZ():Number{ return (_rotationZ); } public function set scaleY(_arg1:Number):void{ if (_scaleY != _arg1){ _scaleY = _arg1; addOperationToScene(changeRotationOrScaleOperation); }; } public function set scaleZ(_arg1:Number):void{ if (_scaleZ != _arg1){ _scaleZ = _arg1; addOperationToScene(changeRotationOrScaleOperation); }; } public function set scaleX(_arg1:Number):void{ if (_scaleX != _arg1){ _scaleX = _arg1; addOperationToScene(changeRotationOrScaleOperation); }; } public function get parent():Object3D{ return (_parent); } public function get mobility():int{ return (_mobility); } alternativa3d function setParent(_arg1:Object3D):void{ if (_parent != null){ removeParentSequels(); }; _parent = _arg1; if (_arg1 != null){ addParentSequels(); }; } private function removeParentSequels():void{ _parent.changeCoordsOperation.removeSequel(changeCoordsOperation); _parent.changeRotationOrScaleOperation.removeSequel(changeRotationOrScaleOperation); _parent.calculateMobilityOperation.removeSequel(calculateMobilityOperation); } private function addParentSequels():void{ _parent.changeCoordsOperation.addSequel(changeCoordsOperation); _parent.changeRotationOrScaleOperation.addSequel(changeRotationOrScaleOperation); _parent.calculateMobilityOperation.addSequel(calculateMobilityOperation); } protected function removeFromScene(_arg1:Scene3D):void{ _arg1.removeOperation(changeRotationOrScaleOperation); _arg1.removeOperation(changeCoordsOperation); _arg1.removeOperation(calculateMobilityOperation); } protected function addToScene(_arg1:Scene3D):void{ _arg1.addOperation(changeRotationOrScaleOperation); _arg1.addOperation(calculateMobilityOperation); } public function set y(_arg1:Number):void{ if (_coords.y != _arg1){ _coords.y = _arg1; addOperationToScene(changeCoordsOperation); }; } public function hasEventListener(_arg1:String):Boolean{ if (dispatcher != null){ return (dispatcher.hasEventListener(_arg1)); }; return (false); } public function set x(_arg1:Number):void{ if (_coords.x != _arg1){ _coords.x = _arg1; addOperationToScene(changeCoordsOperation); }; } public function removeChild(_arg1:Object3D):Object3D{ if (_arg1 == null){ throw (new Object3DNotFoundError(null, this)); }; if (_arg1._parent != this){ throw (new Object3DNotFoundError(_arg1, this)); }; _children.remove(_arg1); _arg1.setParent(null); _arg1.setScene(null); return (_arg1); } alternativa3d function removeOperationFromScene(_arg1:Operation):void{ if (_scene != null){ _scene.removeOperation(_arg1); }; } } }//package alternativa.engine3d.core
Section 7
//Operation (alternativa.engine3d.core.Operation) package alternativa.engine3d.core { import alternativa.types.*; import alternativa.engine3d.*; public class Operation { alternativa3d var method:Function; alternativa3d var priority:uint; alternativa3d var name:String; alternativa3d var queued:Boolean;// = false private var sequel:Operation; private var sequels:Set; alternativa3d var object:Object; alternativa3d static const SCENE_CLEAR_PRIMITIVES:uint = 234881024; alternativa3d static const CAMERA_CALCULATE_PLANES:uint = 201326592; alternativa3d static const OBJECT_CALCULATE_MOBILITY:uint = 33554432; alternativa3d static const SCENE_CALCULATE_BSP:uint = 117440512; alternativa3d static const FACE_CALCULATE_FRAGMENTS_UV:uint = 167772160; alternativa3d static const FACE_CALCULATE_UV:uint = 83886080; alternativa3d static const OBJECT_CALCULATE_TRANSFORMATION:uint = 16777216; alternativa3d static const SPRITE_UPDATE_MATERIAL:uint = 150994944; alternativa3d static const FACE_CALCULATE_NORMAL:uint = 67108864; alternativa3d static const VERTEX_CALCULATE_COORDS:uint = 50331648; alternativa3d static const FACE_UPDATE_PRIMITIVE:uint = 100663296; alternativa3d static const CAMERA_CALCULATE_MATRIX:uint = 184549376; alternativa3d static const CAMERA_RENDER:uint = 218103808; alternativa3d static const FACE_UPDATE_MATERIAL:uint = 134217728; public function Operation(_arg1:String, _arg2:Object=null, _arg3:Function=null, _arg4:uint=0){ this.object = _arg2; this.method = _arg3; this.name = _arg1; this.priority = _arg4; } alternativa3d function addSequel(_arg1:Operation):void{ if (sequel == null){ if (sequels == null){ sequel = _arg1; } else { sequels[_arg1] = true; }; } else { if (sequel != _arg1){ sequels = new Set(true); sequels[sequel] = true; sequels[_arg1] = true; sequel = null; }; }; } public function toString():String{ return ((((((((("[Operation " + (priority >>> 24)) + "/") + (priority & 0xFFFFFF)) + " ") + object) + ".") + name) + "]")); } alternativa3d function removeSequel(_arg1:Operation):void{ var _local2:*; var _local3:Boolean; if (sequel == null){ if (sequels != null){ delete sequels[_arg1]; _local3 = false; for (_local2 in sequels) { if (_local3){ _local3 = false; break; }; _local3 = true; }; if (_local3){ sequel = _local2; sequels = null; }; }; } else { if (sequel == _arg1){ sequel = null; }; }; } alternativa3d function collectSequels(_arg1:Array):void{ var _local2:*; var _local3:Operation; if (sequel == null){ for (_local2 in sequels) { _local3 = _local2; if (!_local3.queued){ _arg1.push(_local3); _local3.queued = true; _local3.collectSequels(_arg1); }; }; } else { if (!sequel.queued){ _arg1.push(sequel); sequel.queued = true; sequel.collectSequels(_arg1); }; }; } } }//package alternativa.engine3d.core
Section 8
//PolyPrimitive (alternativa.engine3d.core.PolyPrimitive) package alternativa.engine3d.core { import alternativa.engine3d.*; public class PolyPrimitive { alternativa3d var sibling:PolyPrimitive; public var splitQuality:Number; alternativa3d var node:BSPNode; alternativa3d var splitTime1:Number; alternativa3d var num:uint; alternativa3d var disbalance:int; alternativa3d var splitTime2:Number; alternativa3d var backFragment:PolyPrimitive; alternativa3d var splits:uint; alternativa3d var face:Face; alternativa3d var frontFragment:PolyPrimitive; alternativa3d var points:Array; alternativa3d var parent:PolyPrimitive; public var mobility:int; alternativa3d var uvs:Array; private static var collector:Array = new Array(); public function PolyPrimitive(){ points = new Array(); uvs = new Array(); super(); } public function toString():String{ return ((("[Primitive " + face._mesh._name) + "]")); } alternativa3d static function destroyPolyPrimitive(_arg1:PolyPrimitive):void{ _arg1.face = null; var _local2:uint; while (_local2 < _arg1.num) { _arg1.points.pop(); _arg1.uvs.pop(); _local2++; }; collector.push(_arg1); } alternativa3d static function createPolyPrimitive():PolyPrimitive{ var _local1:PolyPrimitive; _local1 = collector.pop(); if (_local1 != null){ return (_local1); }; return (new (PolyPrimitive)); } } }//package alternativa.engine3d.core
Section 9
//Scene3D (alternativa.engine3d.core.Scene3D) package alternativa.engine3d.core { import flash.display.*; import alternativa.types.*; import flash.geom.*; import alternativa.engine3d.materials.*; import alternativa.engine3d.*; public class Scene3D { alternativa3d var changePrimitivesOperation:Operation; alternativa3d var removeNodes:Set; alternativa3d var _splitAnalysis:Boolean;// = true alternativa3d var dummyOperation:Operation; private var childPrimitives:Set; alternativa3d var bsp:BSPNode; alternativa3d var changedPrimitives:Set; alternativa3d var _root:Object3D; alternativa3d var _splitBalance:Number;// = 0 alternativa3d var dummyNode:BSPNode; alternativa3d var clearPrimitivesOperation:Operation; alternativa3d var updateBSPOperation:Operation; alternativa3d var addPrimitives:Array; alternativa3d var calculateBSPOperation:Operation; alternativa3d var operations:Array; private var _planeOffsetThreshold:Number;// = 0.01 public function Scene3D(){ updateBSPOperation = new Operation("updateBSP", this); changePrimitivesOperation = new Operation("changePrimitives", this); calculateBSPOperation = new Operation("calculateBSP", this, calculateBSP, Operation.SCENE_CALCULATE_BSP); clearPrimitivesOperation = new Operation("clearPrimitives", this, clearPrimitives, Operation.SCENE_CLEAR_PRIMITIVES); operations = new Array(); dummyOperation = new Operation("removed", this); changedPrimitives = new Set(); childPrimitives = new Set(); addPrimitives = new Array(); removeNodes = new Set(); dummyNode = new BSPNode(); super(); updateBSPOperation.addSequel(calculateBSPOperation); calculateBSPOperation.addSequel(changePrimitivesOperation); changePrimitivesOperation.addSequel(clearPrimitivesOperation); } protected function childBSP(_arg1:BSPNode):void{ var _local2:PolyPrimitive; var _local3:*; if (((!((_arg1 == null))) && (!((_arg1 == dummyNode))))){ _local2 = _arg1.primitive; if (_local2 != null){ childPrimitives[_local2] = true; changedPrimitives[_local2] = true; _arg1.primitive = null; _local2.node = null; } else { for (_local3 in _arg1.backPrimitives) { _local2 = _local3; childPrimitives[_local2] = true; changedPrimitives[_local2] = true; _local2.node = null; }; for (_local3 in _arg1.frontPrimitives) { _local2 = _local3; childPrimitives[_local2] = true; changedPrimitives[_local2] = true; _local2.node = null; }; _arg1.backPrimitives = null; _arg1.frontPrimitives = null; }; childBSP(_arg1.back); childBSP(_arg1.front); _arg1.parent = null; _arg1.back = null; _arg1.front = null; BSPNode.destroyBSPNode(_arg1); }; } private function drawBSPNode(_arg1:BSPNode, _arg2:Sprite, _arg3:Number, _arg4:Number, _arg5:Number):void{ var _local8:PolyPrimitive; var _local11:SpriteTextureMaterial; var _local6:Shape = new Shape(); _arg2.addChild(_local6); _local6.x = _arg3; _local6.y = _arg4; var _local7:uint = 0xFF0000; if (_arg1.primitive != null){ _local8 = _arg1.primitive; } else { if (_arg1.frontPrimitives != null){ _local8 = _arg1.frontPrimitives.peek(); }; }; if (_local8 != null){ if (_local8.face == null){ _local11 = ((_local8 as SpritePrimitive).sprite._material as SpriteTextureMaterial); if (((!((_local11 == null))) && (!((_local11._texture == null))))){ _local7 = _local11._texture._bitmapData.getPixel(0, 0); }; } else { if (((!((_local8.face._surface == null))) && (!((_local8.face._surface._material == null))))){ if ((_local8.face._surface._material is FillMaterial)){ _local7 = FillMaterial(_local8.face._surface._material)._color; }; if ((_local8.face._surface._material is WireMaterial)){ _local7 = WireMaterial(_local8.face._surface._material)._color; }; if ((((_local8.face._surface._material is TextureMaterial)) && (!((TextureMaterial(_local8.face._surface._material)._texture == null))))){ _local7 = TextureMaterial(_local8.face._surface._material).texture._bitmapData.getPixel(0, 0); }; }; }; }; if (_arg1 == dummyNode){ _local7 = 0xFF00FF; }; _local6.graphics.beginFill(_local7); _local6.graphics.drawCircle(0, 0, 3); _local6.graphics.endFill(); var _local9:Number = 100; var _local10:Number = 20; if (_arg1.back != null){ _arg2.graphics.lineStyle(0, 0x660000); _arg2.graphics.moveTo(_arg3, _arg4); _arg2.graphics.lineTo((_arg3 - (_local9 * _arg5)), (_arg4 + _local10)); drawBSPNode(_arg1.back, _arg2, (_arg3 - (_local9 * _arg5)), (_arg4 + _local10), (_arg5 * 0.8)); }; if (_arg1.front != null){ _arg2.graphics.lineStyle(0, 0x6600); _arg2.graphics.moveTo(_arg3, _arg4); _arg2.graphics.lineTo((_arg3 + (_local9 * _arg5)), (_arg4 + _local10)); drawBSPNode(_arg1.front, _arg2, (_arg3 + (_local9 * _arg5)), (_arg4 + _local10), (_arg5 * 0.8)); }; } alternativa3d function removeBSPPrimitive(_arg1:PolyPrimitive):void{ var _local4:*; var _local5:BSPNode; var _local2:BSPNode = _arg1.node; _arg1.node = null; var _local3:Boolean; changedPrimitives[_arg1] = true; if (_local2.primitive == _arg1){ removeNodes[_local2] = true; _local2.primitive = null; } else { if (_local2.frontPrimitives[_arg1]){ delete _local2.frontPrimitives[_arg1]; for (_local4 in _local2.frontPrimitives) { if (_local3){ _local3 = false; break; }; _local3 = true; }; if (_local4 == null){ _local5 = _local2.back; _local2.back = _local2.front; _local2.front = _local5; _local2.normal.invert(); _local2.offset = -(_local2.offset); for (_local4 in _local2.backPrimitives) { if (_local3){ _local3 = false; break; }; _local3 = true; }; if (_local3){ _local2.primitive = _local4; _local2.mobility = _local2.primitive.mobility; _local2.frontPrimitives = null; } else { _local2.frontPrimitives = _local2.backPrimitives; if (_arg1.mobility == _local2.mobility){ _local2.mobility = int.MAX_VALUE; for (_local4 in _local2.frontPrimitives) { _arg1 = _local4; _local2.mobility = ((_local2.mobility)>_arg1.mobility) ? _arg1.mobility : _local2.mobility; }; }; }; _local2.backPrimitives = null; } else { if (((_local3) && ((_local2.backPrimitives == null)))){ _local2.primitive = _local4; _local2.mobility = _local2.primitive.mobility; _local2.frontPrimitives = null; } else { if (_arg1.mobility == _local2.mobility){ _local2.mobility = int.MAX_VALUE; for (_local4 in _local2.backPrimitives) { _arg1 = _local4; _local2.mobility = ((_local2.mobility)>_arg1.mobility) ? _arg1.mobility : _local2.mobility; }; for (_local4 in _local2.frontPrimitives) { _arg1 = _local4; _local2.mobility = ((_local2.mobility)>_arg1.mobility) ? _arg1.mobility : _local2.mobility; }; }; }; }; } else { delete _local2.backPrimitives[_arg1]; for (_local4 in _local2.backPrimitives) { break; }; if (_local4 == null){ for (_local4 in _local2.frontPrimitives) { if (_local3){ _local3 = false; break; }; _local3 = true; }; if (_local3){ _local2.primitive = _local4; _local2.mobility = _local2.primitive.mobility; _local2.frontPrimitives = null; } else { if (_arg1.mobility == _local2.mobility){ _local2.mobility = int.MAX_VALUE; for (_local4 in _local2.frontPrimitives) { _arg1 = _local4; _local2.mobility = ((_local2.mobility)>_arg1.mobility) ? _arg1.mobility : _local2.mobility; }; }; }; _local2.backPrimitives = null; } else { if (_arg1.mobility == _local2.mobility){ _local2.mobility = int.MAX_VALUE; for (_local4 in _local2.backPrimitives) { _arg1 = _local4; _local2.mobility = ((_local2.mobility)>_arg1.mobility) ? _arg1.mobility : _local2.mobility; }; for (_local4 in _local2.frontPrimitives) { _arg1 = _local4; _local2.mobility = ((_local2.mobility)>_arg1.mobility) ? _arg1.mobility : _local2.mobility; }; }; }; }; }; } private function analyseSplitQuality():void{ var _local1:uint; var _local5:PolyPrimitive; var _local6:Point3D; var _local7:Number; var _local8:uint; var _local9:PolyPrimitive; var _local10:Boolean; var _local11:Boolean; var _local12:uint; var _local13:Point3D; var _local14:Number; var _local2:uint = addPrimitives.length; var _local3:uint; var _local4:uint; _local1 = 0; while (_local1 < _local2) { _local5 = addPrimitives[_local1]; if (_local5.face == null){ } else { _local5.splits = 0; _local5.disbalance = 0; _local6 = _local5.face.globalNormal; _local7 = _local5.face.globalOffset; _local8 = 0; while (_local8 < _local2) { if (_local1 != _local8){ _local9 = addPrimitives[_local8]; if (_local9.face == null){ } else { if (_local5.mobility <= _local9.mobility){ _local10 = false; _local11 = false; _local12 = 0; while (_local12 < _local9.num) { _local13 = _local9.points[_local12]; _local14 = ((((_local13.x * _local6.x) + (_local13.y * _local6.y)) + (_local13.z * _local6.z)) - _local7); if (_local14 > _planeOffsetThreshold){ if (!_local10){ _local5.disbalance++; _local10 = true; }; if (_local11){ _local5.splits++; break; }; } else { if (_local14 < -(_planeOffsetThreshold)){ if (!_local11){ _local5.disbalance--; _local11 = true; }; if (_local10){ _local5.splits++; break; }; }; }; _local12++; }; }; }; }; _local8++; }; _local5.disbalance = ((_local5.disbalance)>0) ? _local5.disbalance : -(_local5.disbalance); _local3 = ((_local3)>_local5.splits) ? _local3 : _local5.splits; _local4 = ((_local4)>_local5.disbalance) ? _local4 : _local5.disbalance; }; _local1++; }; _local1 = 0; while (_local1 < _local2) { _local5 = addPrimitives[_local1]; _local5.splitQuality = ((((1 - _splitBalance) * _local5.splits) / _local3) + ((_splitBalance * _local5.disbalance) / _local4)); _local1++; }; } private function clearPrimitives():void{ changedPrimitives.clear(); } public function get splitAnalysis():Boolean{ return (_splitAnalysis); } public function get planeOffsetThreshold():Number{ return (_planeOffsetThreshold); } alternativa3d function sortOperations(_arg1:int, _arg2:int):void{ var _local5:Operation; var _local7:Operation; var _local3:int = _arg1; var _local4:int = _arg2; var _local6:uint = operations[((_arg2 + _arg1) >> 1)].priority; do { while ((_local5 = operations[_local3]).priority < _local6) { _local3++; }; while (_local6 < (_local7 = operations[_local4]).priority) { _local4--; }; if (_local3 <= _local4){ var _temp1 = _local3; _local3 = (_local3 + 1); var _local8 = _temp1; operations[_local8] = _local7; var _temp2 = _local4; _local4 = (_local4 - 1); var _local9 = _temp2; operations[_local9] = _local5; }; } while (_local3 <= _local4); if (_arg1 < _local4){ sortOperations(_arg1, _local4); }; if (_local3 < _arg2){ sortOperations(_local3, _arg2); }; } public function set splitAnalysis(_arg1:Boolean):void{ if (_splitAnalysis != _arg1){ _splitAnalysis = _arg1; addOperation(updateBSPOperation); }; } alternativa3d function sortPrimitives(_arg1:int, _arg2:int):void{ var _local5:PolyPrimitive; var _local9:PolyPrimitive; var _local3:int = _arg1; var _local4:int = _arg2; var _local6:PolyPrimitive = addPrimitives[((_arg2 + _arg1) >> 1)]; var _local7:int = _local6.mobility; var _local8:Number = _local6.splitQuality; do { while (((((_local5 = addPrimitives[_local3]).mobility > _local7)) || ((((_local5.mobility == _local7)) && ((_local5.splitQuality > _local8)))))) { _local3++; }; while ((((_local7 > (_local9 = addPrimitives[_local4]).mobility)) || ((((_local7 == _local9.mobility)) && ((_local8 > _local9.splitQuality)))))) { _local4--; }; if (_local3 <= _local4){ var _temp1 = _local3; _local3 = (_local3 + 1); var _local10 = _temp1; addPrimitives[_local10] = _local9; var _temp2 = _local4; _local4 = (_local4 - 1); var _local11 = _temp2; addPrimitives[_local11] = _local5; }; } while (_local3 <= _local4); if (_arg1 < _local4){ sortPrimitives(_arg1, _local4); }; if (_local3 < _arg2){ sortPrimitives(_local3, _arg2); }; } private function assemblePrimitive(_arg1:PolyPrimitive):void{ if (((!((_arg1.sibling == null))) && (canAssemble(_arg1.sibling)))){ assemblePrimitive(_arg1.parent); _arg1.sibling.sibling = null; _arg1.sibling.parent = null; PolyPrimitive.destroyPolyPrimitive(_arg1.sibling); _arg1.sibling = null; _arg1.parent.backFragment = null; _arg1.parent.frontFragment = null; _arg1.parent = null; PolyPrimitive.destroyPolyPrimitive(_arg1); } else { addPrimitives.push(_arg1); }; } public function set planeOffsetThreshold(_arg1:Number):void{ _arg1 = ((_arg1)<0) ? 0 : _arg1; if (_planeOffsetThreshold != _arg1){ _planeOffsetThreshold = _arg1; addOperation(updateBSPOperation); }; } protected function removeBSPNode(_arg1:BSPNode):BSPNode{ var _local2:BSPNode; if (_arg1 != null){ _arg1.back = removeBSPNode(_arg1.back); _arg1.front = removeBSPNode(_arg1.front); if (!removeNodes[_arg1]){ _local2 = _arg1; if (_arg1.back != null){ if (_arg1.back != dummyNode){ _arg1.back.parent = _arg1; } else { _arg1.back = null; }; }; if (_arg1.front != null){ if (_arg1.front != dummyNode){ _arg1.front.parent = _arg1; } else { _arg1.front = null; }; }; } else { if (_arg1.back == null){ if (_arg1.front != null){ _local2 = _arg1.front; _arg1.front = null; }; } else { if (_arg1.front == null){ _local2 = _arg1.back; _arg1.back = null; } else { childBSP(_arg1.back); childBSP(_arg1.front); _local2 = dummyNode; _arg1.back = null; _arg1.front = null; }; }; delete removeNodes[_arg1]; _arg1.parent = null; BSPNode.destroyBSPNode(_arg1); }; }; return (_local2); } private function canAssemble(_arg1:PolyPrimitive):Boolean{ var _local2:PolyPrimitive; var _local3:PolyPrimitive; var _local4:Boolean; var _local5:Boolean; if (childPrimitives[_arg1]){ delete childPrimitives[_arg1]; return (true); }; _local2 = _arg1.backFragment; _local3 = _arg1.frontFragment; if (_local2 != null){ _local4 = canAssemble(_local2); _local5 = canAssemble(_local3); if (((_local4) && (_local5))){ _local2.parent = null; _local3.parent = null; _local2.sibling = null; _local3.sibling = null; _arg1.backFragment = null; _arg1.frontFragment = null; PolyPrimitive.destroyPolyPrimitive(_local2); PolyPrimitive.destroyPolyPrimitive(_local3); return (true); }; if (_local4){ addPrimitives.push(_local2); }; if (_local5){ addPrimitives.push(_local3); }; }; return (false); } alternativa3d function removeOperation(_arg1:Operation):void{ if (_arg1.queued){ operations[operations.indexOf(_arg1)] = dummyOperation; _arg1.queued = false; }; } public function set root(_arg1:Object3D):void{ if (_root != _arg1){ if (_arg1 != null){ if (_arg1._parent != null){ _arg1._parent._children.remove(_arg1); } else { if (((!((_arg1._scene == null))) && ((_arg1._scene._root == _arg1)))){ _arg1._scene.root = null; }; }; _arg1.setParent(null); _arg1.setScene(this); _arg1.setLevel(0); }; if (_root != null){ _root.setParent(null); _root.setScene(null); }; _root = _arg1; }; } alternativa3d function addOperation(_arg1:Operation):void{ if (!_arg1.queued){ operations.push(_arg1); _arg1.queued = true; }; } public function hasChanges():Boolean{ var _local1:int = operations.length; var _local2:int; while (_local2 < _local1) { if (operations[_local2] != dummyOperation){ return (true); }; _local2++; }; return (false); } public function set splitBalance(_arg1:Number):void{ _arg1 = ((_arg1)<0) ? 0 : ((_arg1)>1) ? 1 : _arg1; if (_splitBalance != _arg1){ _splitBalance = _arg1; if (_splitAnalysis){ addOperation(updateBSPOperation); }; }; } public function drawBSP(_arg1:Sprite):void{ _arg1.graphics.clear(); while (_arg1.numChildren > 0) { _arg1.removeChildAt(0); }; if (bsp != null){ drawBSPNode(bsp, _arg1, 0, 0, 1); }; } protected function addBSP(_arg1:BSPNode, _arg2:PolyPrimitive):void{ var _local3:Point3D; var _local4:Point3D; var _local5:*; var _local6:PolyPrimitive; var _local7:Array; var _local8:Array; var _local9:Boolean; var _local10:Boolean; var _local11:uint; var _local12:Number; var _local13:PolyPrimitive; var _local14:PolyPrimitive; var _local15:Boolean; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:uint; var _local20:Number; var _local21:Point; if ((((_arg2.mobility < _arg1.mobility)) || (((_arg1.sprited) && (!((_arg2.face == null))))))){ if (_arg1.primitive != null){ childPrimitives[_arg1.primitive] = true; changedPrimitives[_arg1.primitive] = true; _arg1.primitive.node = null; } else { for (_local5 in _arg1.backPrimitives) { _local6 = _local5; childPrimitives[_local6] = true; changedPrimitives[_local6] = true; _local6.node = null; }; for (_local5 in _arg1.frontPrimitives) { _local6 = _local5; childPrimitives[_local6] = true; changedPrimitives[_local6] = true; _local6.node = null; }; }; childBSP(_arg1.back); childBSP(_arg1.front); assembleChildPrimitives(); if (_splitAnalysis){ analyseSplitQuality(); sortPrimitives(0, (addPrimitives.length - 1)); } else { sortPrimitivesByMobility(0, (addPrimitives.length - 1)); }; _arg1.primitive = _arg2; changedPrimitives[_arg2] = true; _arg2.node = _arg1; _arg1.normal.copy(_arg2.face.globalNormal); _arg1.offset = _arg2.face.globalOffset; _arg1.sprited = false; _arg1.mobility = _arg2.mobility; _arg1.backPrimitives = null; _arg1.frontPrimitives = null; _arg1.back = null; _arg1.front = null; } else { _local4 = _arg1.normal; _local7 = _arg2.points; _local8 = _arg2.uvs; _local9 = false; _local10 = false; _local11 = 0; while (_local11 < _arg2.num) { _local3 = _local7[_local11]; _local12 = ((((_local3.x * _local4.x) + (_local3.y * _local4.y)) + (_local3.z * _local4.z)) - _arg1.offset); if (_local12 > _planeOffsetThreshold){ _local9 = true; if (_local10){ break; }; } else { if (_local12 < -(_planeOffsetThreshold)){ _local10 = true; if (_local9){ break; }; }; }; _local11++; }; if (((((!(_local9)) && (!(_local10)))) && (((!((_arg2.face == null))) || (_arg1.sprited))))){ _arg2.node = _arg1; if (_arg1.primitive != null){ _arg1.frontPrimitives = new Set(true); _arg1.frontPrimitives[_arg1.primitive] = true; _arg1.primitive = null; }; if ((((_arg2.face == null)) || ((Point3D.dot(_arg2.face.globalNormal, _local4) > 0)))){ _arg1.frontPrimitives[_arg2] = true; } else { if (_arg1.backPrimitives == null){ _arg1.backPrimitives = new Set(true); }; _arg1.backPrimitives[_arg2] = true; }; changedPrimitives[_arg2] = true; } else { if (!_local10){ if (_arg1.front == null){ _arg1.front = BSPNode.createBSPNode(_arg2); _arg1.front.parent = _arg1; changedPrimitives[_arg2] = true; } else { addBSP(_arg1.front, _arg2); }; } else { if (!_local9){ if (_arg1.back == null){ _arg1.back = BSPNode.createBSPNode(_arg2); _arg1.back.parent = _arg1; changedPrimitives[_arg2] = true; } else { addBSP(_arg1.back, _arg2); }; } else { _local13 = PolyPrimitive.createPolyPrimitive(); _local14 = PolyPrimitive.createPolyPrimitive(); _local15 = true; _local3 = _local7[0]; _local16 = ((((_local3.x * _local4.x) + (_local3.y * _local4.y)) + (_local3.z * _local4.z)) - _arg1.offset); _local17 = _local16; _local11 = 0; while (_local11 < _arg2.num) { if (_local11 < (_arg2.num - 1)){ _local19 = (_local11 + 1); _local3 = _local7[_local19]; _local18 = ((((_local3.x * _local4.x) + (_local3.y * _local4.y)) + (_local3.z * _local4.z)) - _arg1.offset); } else { _local19 = 0; _local18 = _local16; }; if (_local17 > _planeOffsetThreshold){ _local14.points.push(_local7[_local11]); _local14.uvs.push(_arg2.uvs[_local11]); } else { if (_local17 < -(_planeOffsetThreshold)){ _local13.points.push(_local7[_local11]); _local13.uvs.push(_arg2.uvs[_local11]); } else { _local13.points.push(_local7[_local11]); _local13.uvs.push(_arg2.uvs[_local11]); _local14.points.push(_local7[_local11]); _local14.uvs.push(_arg2.uvs[_local11]); }; }; if ((((((_local17 > _planeOffsetThreshold)) && ((_local18 < -(_planeOffsetThreshold))))) || ((((_local17 < -(_planeOffsetThreshold))) && ((_local18 > _planeOffsetThreshold)))))){ _local20 = (_local17 / (_local17 - _local18)); _local3 = Point3D.interpolate(_local7[_local11], _local7[_local19], _local20); _local13.points.push(_local3); _local14.points.push(_local3); if (_arg2.face.uvMatrixBase != null){ _local21 = Point.interpolate(_local8[_local19], _local8[_local11], _local20); } else { _local21 = null; }; _local13.uvs.push(_local21); _local14.uvs.push(_local21); if (_local15){ _arg2.splitTime1 = _local20; _local15 = false; } else { _arg2.splitTime2 = _local20; }; }; _local17 = _local18; _local11++; }; _local13.num = _local13.points.length; _local14.num = _local14.points.length; _local13.mobility = _arg2.mobility; _local14.mobility = _arg2.mobility; _local13.face = _arg2.face; _local14.face = _arg2.face; _local13.parent = _arg2; _local14.parent = _arg2; _local13.sibling = _local14; _local14.sibling = _local13; _arg2.backFragment = _local13; _arg2.frontFragment = _local14; if (_arg1.back == null){ _arg1.back = BSPNode.createBSPNode(_local13); _arg1.back.parent = _arg1; changedPrimitives[_local13] = true; } else { addBSP(_arg1.back, _local13); }; if (_arg1.front == null){ _arg1.front = BSPNode.createBSPNode(_local14); _arg1.front.parent = _arg1; changedPrimitives[_local14] = true; } else { addBSP(_arg1.front, _local14); }; }; }; }; }; } public function get root():Object3D{ return (_root); } public function calculate():void{ var _local1:Operation; var _local2:uint; var _local3:uint; if (operations[0] != undefined){ _local2 = operations.length; _local3 = 0; while (_local3 < _local2) { _local1 = operations[_local3]; _local1.collectSequels(operations); _local3++; }; _local2 = operations.length; sortOperations(0, (_local2 - 1)); _local3 = 0; while (_local3 < _local2) { _local1 = operations[_local3]; if (_local1.method != null){ _local1.method(); }; _local3++; }; _local3 = 0; while (_local3 < _local2) { _local1 = operations.pop(); _local1.queued = false; _local3++; }; }; } public function get splitBalance():Number{ return (_splitBalance); } alternativa3d function sortPrimitivesByMobility(_arg1:int, _arg2:int):void{ var _local5:PolyPrimitive; var _local7:PolyPrimitive; var _local3:int = _arg1; var _local4:int = _arg2; var _local6:int = addPrimitives[((_arg2 + _arg1) >> 1)].mobility; do { while ((_local5 = addPrimitives[_local3]).mobility > _local6) { _local3++; }; while (_local6 > (_local7 = addPrimitives[_local4]).mobility) { _local4--; }; if (_local3 <= _local4){ var _temp1 = _local3; _local3 = (_local3 + 1); var _local8 = _temp1; addPrimitives[_local8] = _local7; var _temp2 = _local4; _local4 = (_local4 - 1); var _local9 = _temp2; addPrimitives[_local9] = _local5; }; } while (_local3 <= _local4); if (_arg1 < _local4){ sortPrimitivesByMobility(_arg1, _local4); }; if (_local3 < _arg2){ sortPrimitivesByMobility(_local3, _arg2); }; } protected function assembleChildPrimitives():void{ var _local1:PolyPrimitive; while ((_local1 = childPrimitives.take()) != null) { assemblePrimitive(_local1); }; } protected function calculateBSP():void{ var _local1:*; var _local2:PolyPrimitive; var _local3:BSPNode; var _local4:BSPNode; var _local5:BSPNode; var _local6:BSPNode; if (updateBSPOperation.queued){ removeNodes.clear(); childBSP(bsp); bsp = null; assembleChildPrimitives(); } else { if (!removeNodes.isEmpty()){ while ((_local3 = removeNodes.peek()) != null) { _local4 = _local3; while ((_local3 = _local3.parent) != null) { if (removeNodes[_local3]){ _local4 = _local3; }; }; _local5 = _local4.parent; _local6 = removeBSPNode(_local4); if (_local6 == dummyNode){ _local6 = null; }; if (_local5 != null){ if (_local5.front == _local4){ _local5.front = _local6; } else { _local5.back = _local6; }; } else { bsp = _local6; }; if (_local6 != null){ _local6.parent = _local5; }; }; assembleChildPrimitives(); }; }; if (addPrimitives[0] != undefined){ if (_splitAnalysis){ analyseSplitQuality(); sortPrimitives(0, (addPrimitives.length - 1)); } else { sortPrimitivesByMobility(0, (addPrimitives.length - 1)); }; if (bsp == null){ _local2 = addPrimitives.pop(); bsp = BSPNode.createBSPNode(_local2); changedPrimitives[_local2] = true; }; while ((_local2 = addPrimitives.pop()) != null) { addBSP(bsp, _local2); }; }; } } }//package alternativa.engine3d.core
Section 10
//Sprite3D (alternativa.engine3d.core.Sprite3D) package alternativa.engine3d.core { import alternativa.engine3d.materials.*; import alternativa.engine3d.*; public class Sprite3D extends Object3D { alternativa3d var _materialScale:Number; alternativa3d var _material:SpriteMaterial; alternativa3d var primitive:SpritePrimitive; alternativa3d var updateMaterialOperation:Operation; private static var counter:uint = 0; public function Sprite3D(_arg1:String=null){ updateMaterialOperation = new Operation("updateSpriteMaterial", this, updateMaterial, Operation.SPRITE_UPDATE_MATERIAL); super(_arg1); primitive = new SpritePrimitive(); primitive.sprite = this; primitive.points = [this.globalCoords]; primitive.num = 1; primitive.mobility = int.MAX_VALUE; } override protected function removeFromScene(_arg1:Scene3D):void{ _arg1.removeOperation(updateMaterialOperation); if (primitive.node != null){ _arg1.removeBSPPrimitive(primitive); }; _arg1.addOperation(_arg1.calculateBSPOperation); calculateTransformationOperation.removeSequel(_arg1.calculateBSPOperation); updateMaterialOperation.removeSequel(_arg1.changePrimitivesOperation); if (_material != null){ _material.removeFromScene(_arg1); }; super.removeFromScene(_arg1); } public function get material():SpriteMaterial{ return (_material); } override alternativa3d function calculateTransformation():void{ var _local1:Number; var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; super.calculateTransformation(); updatePrimitive(); if (changeRotationOrScaleOperation.queued){ _local1 = _transformation.a; _local2 = _transformation.b; _local3 = _transformation.c; _local4 = _transformation.e; _local5 = _transformation.f; _local6 = _transformation.g; _local7 = _transformation.i; _local8 = _transformation.j; _local9 = _transformation.k; _materialScale = (((Math.sqrt((((_local1 * _local1) + (_local4 * _local4)) + (_local7 * _local7))) + Math.sqrt((((_local2 * _local2) + (_local5 * _local5)) + (_local8 * _local8)))) + Math.sqrt((((_local3 * _local3) + (_local6 * _local6)) + (_local9 * _local9)))) / 3); }; } private function updateMaterial():void{ if (!calculateTransformationOperation.queued){ _scene.changedPrimitives[primitive] = true; }; } override protected function createEmptyObject():Object3D{ return (new Sprite3D()); } alternativa3d function addMaterialChangedOperationToScene():void{ if (_scene != null){ _scene.addOperation(updateMaterialOperation); }; } override protected function clonePropertiesFrom(_arg1:Object3D):void{ super.clonePropertiesFrom(_arg1); material = ((_arg1 as Sprite3D).material.clone() as SpriteMaterial); } override protected function defaultName():String{ return (("sprite" + ++counter)); } public function set material(_arg1:SpriteMaterial):void{ if (_material != _arg1){ if (_material != null){ _material.removeFromSprite(this); if (_scene != null){ _material.removeFromScene(_scene); }; }; if (_arg1 != null){ if (_arg1._sprite != null){ _arg1._sprite.material = null; }; _arg1.addToSprite(this); if (_scene != null){ _arg1.addToScene(_scene); }; }; _material = _arg1; addMaterialChangedOperationToScene(); }; } private function updatePrimitive():void{ if (primitive.node != null){ _scene.removeBSPPrimitive(primitive); }; _scene.addPrimitives.push(primitive); } override protected function addToScene(_arg1:Scene3D):void{ super.addToScene(_arg1); calculateTransformationOperation.addSequel(_arg1.calculateBSPOperation); updateMaterialOperation.addSequel(_arg1.changePrimitivesOperation); if (_material != null){ _material.addToScene(_arg1); }; } } }//package alternativa.engine3d.core
Section 11
//SpritePrimitive (alternativa.engine3d.core.SpritePrimitive) package alternativa.engine3d.core { import alternativa.engine3d.*; public class SpritePrimitive extends PolyPrimitive { alternativa3d var sprite:Sprite3D; alternativa3d var screenDepth:Number; public function SpritePrimitive(){ uvs = null; } override public function toString():String{ return ((("[SpritePrimitive " + sprite.toString()) + "]")); } } }//package alternativa.engine3d.core
Section 12
//Surface (alternativa.engine3d.core.Surface) package alternativa.engine3d.core { import flash.events.*; import alternativa.types.*; import alternativa.engine3d.materials.*; import alternativa.engine3d.errors.*; import alternativa.engine3d.*; public class Surface implements IEventDispatcher { alternativa3d var _material:SurfaceMaterial; alternativa3d var _mesh:Mesh; public var mouseEnabled:Boolean;// = true alternativa3d var changeFacesOperation:Operation; private var dispatcher:EventDispatcher; alternativa3d var changeMaterialOperation:Operation; alternativa3d var _faces:Set; public function Surface(){ changeFacesOperation = new Operation("changeFaces", this); changeMaterialOperation = new Operation("changeMaterial", this); _faces = new Set(); super(); } public function dispatchEvent(_arg1:Event):Boolean{ if (dispatcher != null){ dispatcher.dispatchEvent(_arg1); }; return (false); } public function removeFace(_arg1:Object):void{ var _local2 = (_arg1 is Face); if (_mesh == null){ throw (new FaceNotFoundError(_arg1, this)); }; if (_arg1 == null){ throw (new FaceNotFoundError(null, this)); }; if (_local2){ if (Face(_arg1)._mesh != _mesh){ throw (new FaceNotFoundError(_arg1, this)); }; } else { if (_mesh._faces[_arg1] == undefined){ throw (new FaceNotFoundError(_arg1, this)); }; if (!(_mesh._faces[_arg1] is Face)){ throw (new InvalidIDError(_arg1, this)); }; }; var _local3:Face = (_local2) ? Face(_arg1) : _mesh._faces[_arg1]; if (!_faces.has(_local3)){ throw (new FaceNotFoundError(_local3, this)); }; _faces.remove(_local3); _local3.removeFromSurface(this); _mesh.addOperationToScene(changeFacesOperation); } alternativa3d function addToMesh(_arg1:Mesh):void{ if (_material != null){ _material.addToMesh(_arg1); }; _mesh = _arg1; } public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ if (dispatcher != null){ _arg3 = false; dispatcher.removeEventListener(_arg1, _arg2, _arg3); }; } public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{ if (dispatcher == null){ dispatcher = new EventDispatcher(this); }; _arg3 = false; dispatcher.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); } alternativa3d function removeFaces():void{ var _local1:*; var _local2:Face; for (_local1 in _faces) { _local2 = _local1; _faces.remove(_local2); _local2.removeFromSurface(this); }; } public function set material(_arg1:SurfaceMaterial):void{ if (_material != _arg1){ if (_material != null){ _material.removeFromSurface(this); if (_mesh != null){ _material.removeFromMesh(_mesh); if (_mesh._scene != null){ _material.removeFromScene(_mesh._scene); }; }; }; if (_arg1 != null){ if (_arg1._surface != null){ _arg1._surface.material = null; }; _arg1.addToSurface(this); if (_mesh != null){ _arg1.addToMesh(_mesh); if (_mesh._scene != null){ _arg1.addToScene(_mesh._scene); }; }; }; _material = _arg1; addMaterialChangedOperationToScene(); }; } public function get id():Object{ return (((_mesh)!=null) ? _mesh.getSurfaceId(this) : null); } alternativa3d function removeFromScene(_arg1:Scene3D):void{ _arg1.removeOperation(changeFacesOperation); _arg1.removeOperation(changeMaterialOperation); if (_material != null){ _material.removeFromScene(_arg1); }; } alternativa3d function removeFromMesh(_arg1:Mesh):void{ if (_material != null){ _material.removeFromMesh(_arg1); }; _mesh = null; } public function addFace(_arg1:Object):void{ var _local2 = (_arg1 is Face); if (_mesh == null){ throw (new FaceNotFoundError(_arg1, this)); }; if (_arg1 == null){ throw (new FaceNotFoundError(null, this)); }; if (_local2){ if (Face(_arg1)._mesh != _mesh){ throw (new FaceNotFoundError(_arg1, this)); }; } else { if (_mesh._faces[_arg1] == undefined){ throw (new FaceNotFoundError(_arg1, this)); }; if (!(_mesh._faces[_arg1] is Face)){ throw (new InvalidIDError(_arg1, this)); }; }; var _local3:Face = (_local2) ? Face(_arg1) : _mesh._faces[_arg1]; if (_faces.has(_local3)){ throw (new FaceExistsError(_local3, this)); }; if (_local3._surface != null){ _local3._surface._faces.remove(_local3); _local3.removeFromSurface(_local3._surface); }; _faces.add(_local3); _local3.addToSurface(this); _mesh.addOperationToScene(changeFacesOperation); } public function willTrigger(_arg1:String):Boolean{ if (dispatcher != null){ return (dispatcher.willTrigger(_arg1)); }; return (false); } public function toString():String{ var _local4:*; var _local5:Face; var _local1:uint = _faces.length; var _local2:String = (("[Surface ID:" + id) + ((_local1)>0) ? " faces:" : ""); var _local3:uint; for (_local4 in _faces) { _local5 = _local4; _local2 = (_local2 + (_local5.id + ((_local3)<(_local1 - 1)) ? ", " : "")); _local3++; }; _local2 = (_local2 + "]"); return (_local2); } public function get mesh():Mesh{ return (_mesh); } public function hasEventListener(_arg1:String):Boolean{ if (dispatcher != null){ return (dispatcher.hasEventListener(_arg1)); }; return (false); } public function get faces():Set{ return (_faces.clone()); } alternativa3d function addToScene(_arg1:Scene3D):void{ if (_material != null){ _material.addToScene(_arg1); }; } alternativa3d function addMaterialChangedOperationToScene():void{ if (_mesh != null){ _mesh.addOperationToScene(changeMaterialOperation); }; } public function get material():SurfaceMaterial{ return (_material); } } }//package alternativa.engine3d.core
Section 13
//Vertex (alternativa.engine3d.core.Vertex) package alternativa.engine3d.core { import alternativa.types.*; import alternativa.engine3d.*; public final class Vertex { alternativa3d var _mesh:Mesh; alternativa3d var changeCoordsOperation:Operation; alternativa3d var globalCoords:Point3D; alternativa3d var calculateCoordsOperation:Operation; alternativa3d var _faces:Set; alternativa3d var _coords:Point3D; public function Vertex(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0){ changeCoordsOperation = new Operation("changeCoords", this); calculateCoordsOperation = new Operation("calculateCoords", this, calculateCoords, Operation.VERTEX_CALCULATE_COORDS); _faces = new Set(); globalCoords = new Point3D(); super(); _coords = new Point3D(_arg1, _arg2, _arg3); changeCoordsOperation.addSequel(calculateCoordsOperation); } alternativa3d function addToFace(_arg1:Face):void{ changeCoordsOperation.addSequel(_arg1.calculateUVOperation); changeCoordsOperation.addSequel(_arg1.calculateNormalOperation); _faces.add(_arg1); } alternativa3d function removeFromFace(_arg1:Face):void{ changeCoordsOperation.removeSequel(_arg1.calculateUVOperation); changeCoordsOperation.removeSequel(_arg1.calculateNormalOperation); _faces.remove(_arg1); } alternativa3d function addToMesh(_arg1:Mesh):void{ _arg1.changeCoordsOperation.addSequel(calculateCoordsOperation); _arg1.changeRotationOrScaleOperation.addSequel(calculateCoordsOperation); _mesh = _arg1; } public function get id():Object{ return (((_mesh)!=null) ? _mesh.getVertexId(this) : null); } public function get coords():Point3D{ return (_coords.clone()); } alternativa3d function removeFromMesh(_arg1:Mesh):void{ var _local2:*; var _local3:Face; _arg1.changeCoordsOperation.removeSequel(calculateCoordsOperation); _arg1.changeRotationOrScaleOperation.removeSequel(calculateCoordsOperation); for (_local2 in _faces) { _local3 = _local2; _arg1.removeFace(_local3); }; _mesh = null; } private function calculateCoords():void{ globalCoords.copy(_coords); globalCoords.transform(_mesh._transformation); } alternativa3d function removeFromScene(_arg1:Scene3D):void{ _arg1.removeOperation(calculateCoordsOperation); _arg1.removeOperation(changeCoordsOperation); } public function toString():String{ return ((((((((("[Vertex ID:" + id) + " ") + _coords.x.toFixed(2)) + ", ") + _coords.y.toFixed(2)) + ", ") + _coords.z.toFixed(2)) + "]")); } public function get mesh():Mesh{ return (_mesh); } public function set x(_arg1:Number):void{ if (_coords.x != _arg1){ _coords.x = _arg1; if (_mesh != null){ _mesh.addOperationToScene(changeCoordsOperation); }; }; } public function set y(_arg1:Number):void{ if (_coords.y != _arg1){ _coords.y = _arg1; if (_mesh != null){ _mesh.addOperationToScene(changeCoordsOperation); }; }; } public function set z(_arg1:Number):void{ if (_coords.z != _arg1){ _coords.z = _arg1; if (_mesh != null){ _mesh.addOperationToScene(changeCoordsOperation); }; }; } public function get faces():Set{ return (_faces.clone()); } public function get x():Number{ return (_coords.x); } public function get y():Number{ return (_coords.y); } public function get z():Number{ return (_coords.z); } public function set coords(_arg1:Point3D):void{ if (!_coords.equals(_arg1)){ _coords.copy(_arg1); if (_mesh != null){ _mesh.addOperationToScene(changeCoordsOperation); }; }; } alternativa3d function addToScene(_arg1:Scene3D):void{ _arg1.addOperation(calculateCoordsOperation); } } }//package alternativa.engine3d.core
Section 14
//Skin (alternativa.engine3d.display.Skin) package alternativa.engine3d.display { import flash.display.*; import alternativa.engine3d.core.*; import alternativa.engine3d.materials.*; import alternativa.engine3d.*; public class Skin extends Sprite { alternativa3d var nextSkin:Skin; alternativa3d var material:Material; alternativa3d var primitive:PolyPrimitive; alternativa3d var gfx:Graphics; private static var collector:Array = new Array(); public function Skin(){ gfx = graphics; super(); } alternativa3d static function createSkin():Skin{ var _local1:Skin; _local1 = collector.pop(); if (_local1 != null){ return (_local1); }; return (new (Skin)); } alternativa3d static function destroySkin(_arg1:Skin):void{ collector.push(_arg1); } } }//package alternativa.engine3d.display
Section 15
//View (alternativa.engine3d.display.View) package alternativa.engine3d.display { import flash.events.*; import flash.display.*; import alternativa.types.*; import flash.geom.*; import alternativa.engine3d.core.*; import alternativa.engine3d.events.*; import alternativa.engine3d.*; public class View extends Sprite { private var pressedObject:Object3D; private var inverseMatrix:Matrix3D; private var localCursor3DCoords:Point3D; private var currentObject:Object3D; private var pressedFace:Face; alternativa3d var _interactive:Boolean; private var lastMouseEvent:MouseEvent; private var stagePoint:Point; private var pressedSurface:Surface; private var _camera:Camera3D; alternativa3d var _height:Number; alternativa3d var _width:Number; private var globalCursor3DCoords:Point3D; private var objectUnderPoint:Object3D; private var faceUnderPoint:Face; private var lineVector:Point3D; alternativa3d var canvas:Sprite; private var uvPoint:Point; private var currentSurface:Surface; private var currentFace:Face; private var linePoint:Point3D; public function View(_arg1:Camera3D=null, _arg2:Number=0, _arg3:Number=0){ stagePoint = new Point(); lineVector = new Point3D(); linePoint = new Point3D(); globalCursor3DCoords = new Point3D(); localCursor3DCoords = new Point3D(); uvPoint = new Point(); inverseMatrix = new Matrix3D(); super(); canvas = new Sprite(); canvas.mouseEnabled = false; canvas.mouseChildren = false; canvas.tabEnabled = false; canvas.tabChildren = false; addChild(canvas); this.camera = _arg1; this.width = _arg2; this.height = _arg3; } private function getInteractiveObjectUnderPoint(_arg1:Number, _arg2:Number):void{ var _local4:Skin; var _local6:Sprite3D; faceUnderPoint = null; objectUnderPoint = null; stagePoint.x = _arg1; stagePoint.y = _arg2; var _local3:Array = stage.getObjectsUnderPoint(stagePoint); var _local5:int = (_local3.length - 1); while (_local5 >= 0) { _local4 = (_local3[_local5] as Skin); if (((!((_local4 == null))) && ((_local4.parent.parent == this)))){ if (_local4.primitive.face != null){ if (_local4.primitive.face._mesh.mouseEnabled){ faceUnderPoint = _local4.primitive.face; objectUnderPoint = faceUnderPoint._mesh; return; }; } else { _local6 = (_local4.primitive as SpritePrimitive).sprite; if (_local6.mouseEnabled){ objectUnderPoint = _local6; return; }; }; }; _local5--; }; } private function processMouseWheel():void{ var _local1:MouseEvent3D; if (objectUnderPoint == null){ return; }; if (faceUnderPoint != null){ currentFace = faceUnderPoint; currentSurface = faceUnderPoint._surface; if (currentFace.mouseEnabled){ _local1 = createFullMouseEvent3D(MouseEvent3D.MOUSE_WHEEL, currentObject, currentSurface, currentFace); currentFace.dispatchEvent(_local1); }; if (currentSurface.mouseEnabled){ _local1 = createFullMouseEvent3D(MouseEvent3D.MOUSE_WHEEL, currentObject, currentSurface, currentFace); currentSurface.dispatchEvent(_local1); }; } else { currentFace = null; currentSurface = null; }; currentObject = objectUnderPoint; _local1 = createFullMouseEvent3D(MouseEvent3D.MOUSE_WHEEL, currentObject, currentSurface, currentFace); currentObject.dispatchEvent(_local1); } override public function set width(_arg1:Number):void{ if (_width != _arg1){ _width = _arg1; canvas.x = (_width * 0.5); if (_camera != null){ camera.addOperationToScene(camera.calculatePlanesOperation); }; }; } private function createSimpleMouseEvent3D(_arg1:String, _arg2:Object3D, _arg3:Surface, _arg4:Face):MouseEvent3D{ var _local5:Boolean = ((lastMouseEvent == null)) ? false : lastMouseEvent.altKey; var _local6:Boolean = ((lastMouseEvent == null)) ? false : lastMouseEvent.ctrlKey; var _local7:Boolean = ((lastMouseEvent == null)) ? false : lastMouseEvent.shiftKey; var _local8:int = ((lastMouseEvent == null)) ? 0 : lastMouseEvent.delta; return (new MouseEvent3D(_arg1, this, _arg2, _arg3, _arg4, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, _local5, _local6, _local7, _local8)); } override public function getObjectsUnderPoint(_arg1:Point):Array{ var _local7:Skin; var _local2:Point = localToGlobal(_arg1); var _local3:Array = stage.getObjectsUnderPoint(_local2); var _local4:Array = new Array(); var _local5:uint = _local3.length; var _local6:uint; while (_local6 < _local5) { _local7 = (_local3[_local6] as Skin); if (((!((_local7 == null))) && ((_local7.parent.parent == this)))){ if (_local7.primitive.face != null){ _local4.push(_local7.primitive.face); } else { _local4.push((_local7.primitive as SpritePrimitive).sprite); }; }; _local6++; }; return (_local4); } alternativa3d function checkMouseOverOut(_arg1:Boolean=false):void{ var _local2:MouseEvent3D; var _local3:Surface; var _local4:Boolean; var _local5:Boolean; var _local6:Boolean; if (_arg1){ getInteractiveObjectUnderPoint(stage.mouseX, stage.mouseY); getInteractiveObjectPointProperties((mouseX - (_width >> 1)), (mouseY - (_height >> 1))); }; if (objectUnderPoint == null){ if (currentFace != null){ if (currentFace.mouseEnabled){ _local2 = createSimpleMouseEvent3D(MouseEvent3D.MOUSE_OUT, currentObject, currentSurface, currentFace); currentFace.dispatchEvent(_local2); }; if (currentSurface.mouseEnabled){ _local2 = createSimpleMouseEvent3D(MouseEvent3D.MOUSE_OUT, currentObject, currentSurface, currentFace); currentSurface.dispatchEvent(_local2); }; }; if (currentObject != null){ _local2 = createSimpleMouseEvent3D(MouseEvent3D.MOUSE_OUT, currentObject, currentSurface, currentFace); currentObject.dispatchEvent(_local2); }; currentFace = null; currentSurface = null; currentObject = null; } else { if (faceUnderPoint != null){ _local3 = faceUnderPoint._surface; }; if (faceUnderPoint != currentFace){ if (((!((currentFace == null))) && (currentFace.mouseEnabled))){ _local2 = createSimpleMouseEvent3D(MouseEvent3D.MOUSE_OUT, currentObject, currentSurface, currentFace); currentFace.dispatchEvent(_local2); }; _local4 = true; if (_local3 != currentSurface){ if (((!((currentSurface == null))) && (currentSurface.mouseEnabled))){ _local2 = createSimpleMouseEvent3D(MouseEvent3D.MOUSE_OUT, currentObject, currentSurface, currentFace); currentSurface.dispatchEvent(_local2); }; _local5 = true; }; }; if (objectUnderPoint != currentObject){ if (currentObject != null){ _local2 = createSimpleMouseEvent3D(MouseEvent3D.MOUSE_OUT, currentObject, currentSurface, currentFace); currentObject.dispatchEvent(_local2); }; _local6 = true; }; currentFace = faceUnderPoint; currentSurface = _local3; currentObject = objectUnderPoint; if (currentFace != null){ if (((_local4) && (currentFace.mouseEnabled))){ _local2 = createFullMouseEvent3D(MouseEvent3D.MOUSE_OVER, currentObject, currentSurface, currentFace); currentFace.dispatchEvent(_local2); }; if (((_local5) && (currentSurface.mouseEnabled))){ _local2 = createFullMouseEvent3D(MouseEvent3D.MOUSE_OVER, currentObject, currentSurface, currentFace); currentSurface.dispatchEvent(_local2); }; }; if (_local6){ _local2 = createFullMouseEvent3D(MouseEvent3D.MOUSE_OVER, currentObject, currentSurface, currentFace); currentObject.dispatchEvent(_local2); }; }; } public function get camera():Camera3D{ return (_camera); } override public function get height():Number{ return (_height); } public function getObjectUnderPoint(_arg1:Point):Object{ var _local4:Skin; var _local2:Point = localToGlobal(_arg1); var _local3:Array = stage.getObjectsUnderPoint(_local2); var _local5:int = (_local3.length - 1); while (_local5 >= 0) { _local4 = (_local3[_local5] as Skin); if (((!((_local4 == null))) && ((_local4.parent.parent == this)))){ return (((_local4.primitive.face)!=null) ? _local4.primitive.face : (_local4.primitive as SpritePrimitive).sprite); }; _local5--; }; return (null); } private function processMouseUp():void{ var _local1:MouseEvent3D; if (objectUnderPoint == null){ pressedFace = null; pressedSurface = null; pressedObject = null; return; }; if (faceUnderPoint != null){ currentFace = faceUnderPoint; currentSurface = faceUnderPoint._surface; } else { currentFace = null; currentSurface = null; }; currentObject = objectUnderPoint; if (((!((currentFace == null))) && (currentFace.mouseEnabled))){ _local1 = createFullMouseEvent3D(MouseEvent3D.MOUSE_UP, currentObject, currentSurface, currentFace); currentFace.dispatchEvent(_local1); }; if (((!((currentSurface == null))) && (currentSurface.mouseEnabled))){ _local1 = createFullMouseEvent3D(MouseEvent3D.MOUSE_UP, currentObject, currentSurface, currentFace); currentSurface.dispatchEvent(_local1); }; _local1 = createFullMouseEvent3D(MouseEvent3D.MOUSE_UP, currentObject, currentSurface, currentFace); currentObject.dispatchEvent(_local1); if (((((!((currentFace == null))) && ((currentFace == pressedFace)))) && (currentFace.mouseEnabled))){ _local1 = createFullMouseEvent3D(MouseEvent3D.CLICK, currentObject, currentSurface, currentFace); currentFace.dispatchEvent(_local1); }; if (((((!((currentSurface == null))) && ((currentSurface == pressedSurface)))) && (currentSurface.mouseEnabled))){ _local1 = createFullMouseEvent3D(MouseEvent3D.CLICK, currentObject, currentSurface, currentFace); currentSurface.dispatchEvent(_local1); }; if (currentObject == pressedObject){ _local1 = createFullMouseEvent3D(MouseEvent3D.CLICK, currentObject, currentSurface, currentFace); currentObject.dispatchEvent(_local1); }; pressedFace = null; pressedSurface = null; pressedObject = null; } private function onMouseEvent(_arg1:MouseEvent):void{ lastMouseEvent = _arg1; getInteractiveObjectUnderPoint(stage.mouseX, stage.mouseY); getInteractiveObjectPointProperties((mouseX - (_width >> 1)), (mouseY - (_height >> 1))); switch (_arg1.type){ case MouseEvent.MOUSE_MOVE: processMouseMove(); break; case MouseEvent.MOUSE_OUT: stage.addEventListener(MouseEvent.MOUSE_UP, stageMouseUp); checkMouseOverOut(); break; case MouseEvent.MOUSE_DOWN: processMouseDown(); break; case MouseEvent.MOUSE_UP: processMouseUp(); break; case MouseEvent.MOUSE_WHEEL: processMouseWheel(); break; }; lastMouseEvent = null; } private function processMouseDown():void{ var _local1:MouseEvent3D; if (objectUnderPoint == null){ return; }; if (faceUnderPoint != null){ currentFace = faceUnderPoint; currentSurface = faceUnderPoint._surface; } else { currentFace = null; currentSurface = null; }; currentObject = (pressedObject = objectUnderPoint); if (((!((currentFace == null))) && (currentFace.mouseEnabled))){ pressedFace = currentFace; _local1 = createFullMouseEvent3D(MouseEvent3D.MOUSE_DOWN, currentObject, currentSurface, currentFace); currentFace.dispatchEvent(_local1); }; if (((!((currentSurface == null))) && (currentSurface.mouseEnabled))){ pressedSurface = currentSurface; _local1 = createFullMouseEvent3D(MouseEvent3D.MOUSE_DOWN, currentObject, currentSurface, currentFace); currentSurface.dispatchEvent(_local1); }; _local1 = createFullMouseEvent3D(MouseEvent3D.MOUSE_DOWN, currentObject, currentSurface, currentFace); currentObject.dispatchEvent(_local1); } private function stageMouseUp(_arg1:MouseEvent):void{ pressedFace = null; pressedSurface = null; pressedObject = null; stage.removeEventListener(MouseEvent.MOUSE_UP, stageMouseUp); } public function get3DCoords(_arg1:Point, _arg2:Number):Point3D{ var _local3:Number; if (_camera == null){ return (null); }; if (_camera._orthographic){ return (new Point3D((_arg1.x - (_width >> 1)), (_arg1.y - (_height >> 1)), _arg2)); }; _local3 = (_arg2 / _camera.focalLength); return (new Point3D(((_arg1.x - (_width >> 1)) * _local3), ((_arg1.y - (_height >> 1)) * _local3), _arg2)); } public function set camera(_arg1:Camera3D):void{ var _local2:Skin; var _local3:Skin; if (_camera != _arg1){ if (_camera != null){ _camera.removeFromView(this); }; if (_arg1 != null){ if (_arg1._view != null){ _arg1._view.camera = null; }; _arg1.addToView(this); } else { if (canvas.numChildren > 0){ _local2 = Skin(canvas.getChildAt(0)); while (_local2 != null) { _local3 = _local2.nextSkin; canvas.removeChild(_local2); if (_local2.material != null){ _local2.material.clear(_local2); }; _local2.nextSkin = null; _local2.primitive = null; _local2.material = null; Skin.destroySkin(_local2); _local2 = _local3; }; }; }; _camera = _arg1; }; } public function set interactive(_arg1:Boolean):void{ if (_interactive == _arg1){ return; }; _interactive = _arg1; if (_interactive){ addEventListener(MouseEvent.MOUSE_DOWN, onMouseEvent); addEventListener(MouseEvent.MOUSE_UP, onMouseEvent); addEventListener(MouseEvent.MOUSE_MOVE, onMouseEvent); addEventListener(MouseEvent.MOUSE_WHEEL, onMouseEvent); addEventListener(MouseEvent.MOUSE_OUT, onMouseEvent); } else { removeEventListener(MouseEvent.MOUSE_DOWN, onMouseEvent); removeEventListener(MouseEvent.MOUSE_UP, onMouseEvent); removeEventListener(MouseEvent.MOUSE_MOVE, onMouseEvent); removeEventListener(MouseEvent.MOUSE_WHEEL, onMouseEvent); removeEventListener(MouseEvent.MOUSE_OUT, onMouseEvent); pressedFace = (currentFace = null); pressedSurface = (currentSurface = null); pressedObject = (currentObject = null); }; } override public function set height(_arg1:Number):void{ if (_height != _arg1){ _height = _arg1; canvas.y = (_height * 0.5); if (_camera != null){ camera.addOperationToScene(camera.calculatePlanesOperation); }; }; } private function getInteractiveObjectPointProperties(_arg1:Number, _arg2:Number):void{ var _local3:Number; var _local4:Number; var _local5:Number; var _local7:Point3D; var _local8:Number; var _local9:Point; if (objectUnderPoint == null){ return; }; var _local6:Matrix3D = _camera._transformation; if (_camera._orthographic){ _local4 = 0; _local3 = _local4; _local5 = 1; linePoint.x = (_arg1 / _camera.zoom); linePoint.y = (_arg2 / _camera.zoom); linePoint.z = 0; linePoint.transform(_local6); } else { _local3 = _arg1; _local4 = _arg2; _local5 = _camera.focalLength; linePoint.copy(_camera.globalCoords); }; lineVector.x = (((_local3 * _local6.a) + (_local4 * _local6.b)) + (_local5 * _local6.c)); lineVector.y = (((_local3 * _local6.e) + (_local4 * _local6.f)) + (_local5 * _local6.g)); lineVector.z = (((_local3 * _local6.i) + (_local4 * _local6.j)) + (_local5 * _local6.k)); if (faceUnderPoint != null){ _local7 = faceUnderPoint.globalNormal; _local8 = faceUnderPoint.globalOffset; } else { _local7 = lineVector.clone(); _local7.multiply(-1); globalCursor3DCoords.copy(objectUnderPoint._coords); globalCursor3DCoords.transform(objectUnderPoint._transformation); _local8 = Point3D.dot(globalCursor3DCoords, _local7); }; getLineAndPlaneIntersection(linePoint, lineVector, _local7, _local8, globalCursor3DCoords); inverseMatrix.copy(((faceUnderPoint)!=null) ? faceUnderPoint._mesh : objectUnderPoint._transformation); inverseMatrix.invert(); localCursor3DCoords.copy(globalCursor3DCoords); localCursor3DCoords.transform(inverseMatrix); if (faceUnderPoint != null){ _local9 = faceUnderPoint.getUV(localCursor3DCoords); if (_local9 != null){ uvPoint.x = _local9.x; uvPoint.y = _local9.y; } else { uvPoint.x = NaN; uvPoint.y = NaN; }; }; } public function get interactive():Boolean{ return (_interactive); } private function processMouseMove():void{ var _local1:MouseEvent3D; checkMouseOverOut(); if (currentFace != null){ if (currentFace.mouseEnabled){ _local1 = createFullMouseEvent3D(MouseEvent3D.MOUSE_MOVE, currentObject, currentSurface, currentFace); currentFace.dispatchEvent(_local1); }; if (currentSurface.mouseEnabled){ _local1 = createFullMouseEvent3D(MouseEvent3D.MOUSE_MOVE, currentObject, currentSurface, currentFace); currentSurface.dispatchEvent(_local1); }; }; if (currentObject != null){ _local1 = createFullMouseEvent3D(MouseEvent3D.MOUSE_MOVE, currentObject, currentSurface, currentFace); currentObject.dispatchEvent(_local1); }; } private function createFullMouseEvent3D(_arg1:String, _arg2:Object3D, _arg3:Surface, _arg4:Face):MouseEvent3D{ var _local5:Boolean = ((lastMouseEvent == null)) ? false : lastMouseEvent.altKey; var _local6:Boolean = ((lastMouseEvent == null)) ? false : lastMouseEvent.ctrlKey; var _local7:Boolean = ((lastMouseEvent == null)) ? false : lastMouseEvent.shiftKey; var _local8:int = ((lastMouseEvent == null)) ? 0 : lastMouseEvent.delta; return (new MouseEvent3D(_arg1, this, _arg2, _arg3, _arg4, globalCursor3DCoords.x, globalCursor3DCoords.y, globalCursor3DCoords.z, localCursor3DCoords.x, localCursor3DCoords.y, localCursor3DCoords.z, uvPoint.x, uvPoint.y, _local5, _local6, _local7, _local8)); } override public function get width():Number{ return (_width); } public function projectPoint(_arg1:Point3D):Point3D{ var _local4:Number; if ((((_camera == null)) || ((_camera._scene == null)))){ return (null); }; var _local2:Matrix3D = Object3D.matrix2; var _local3:Number = _camera.focalLength; if (camera.getTransformation(_local2)){ _local2.invert(); if (_camera._orthographic){ _local4 = _camera.zoom; _local2.scale(_local4, _local4, _local4); }; } else { if (((_camera._orthographic) && (_camera.calculateMatrixOperation.queued))){ _local2.invert(); _local4 = _camera.zoom; _local2.scale(_local4, _local4, _local4); } else { _local2 = _camera.cameraMatrix; }; }; if (((!(_camera._orthographic)) && (_camera.calculatePlanesOperation.queued))){ _local3 = ((0.5 * Math.sqrt(((_height * _height) + (_width * _width)))) / Math.tan((0.5 * _camera._fov))); }; var _local5:Number = ((((_local2.a * _arg1.x) + (_local2.b * _arg1.y)) + (_local2.c * _arg1.z)) + _local2.d); var _local6:Number = ((((_local2.e * _arg1.x) + (_local2.f * _arg1.y)) + (_local2.g * _arg1.z)) + _local2.h); var _local7:Number = ((((_local2.i * _arg1.x) + (_local2.j * _arg1.y)) + (_local2.k * _arg1.z)) + _local2.l); if (_camera._orthographic){ return (new Point3D((_local5 + (_width >> 1)), (_local6 + (_height >> 1)), _local7)); }; return (new Point3D((((_local5 * _local3) / _local7) + (_width >> 1)), (((_local6 * _local3) / _local7) + (_height >> 1)), _local7)); } private function getLineAndPlaneIntersection(_arg1:Point3D, _arg2:Point3D, _arg3:Point3D, _arg4:Number, _arg5:Point3D):void{ var _local9:Number; var _local10:Number; var _local11:Number; var _local6:Number = (((_arg3.x * _arg2.x) + (_arg3.y * _arg2.y)) + (_arg3.z * _arg2.z)); if (_local6 == 0){ _arg5.x = NaN; _arg5.y = NaN; _arg5.z = NaN; return; }; var _local7:int; var _local8:Number = _arg2.x; if ((((_local8 < _arg2.y)) && ((_local8 > -(_arg2.y))))){ _local8 = _arg2.y; _local7 = 1; }; if ((((_local8 < _arg2.z)) && ((_local8 > -(_arg2.z))))){ _local7 = 2; }; switch (_local7){ case 0: _local9 = ((((_arg4 * _arg2.x) + (_arg3.y * ((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x)))) + (_arg3.z * ((_arg1.x * _arg2.z) - (_arg1.z * _arg2.x)))) / _local6); _arg5.x = _local9; _arg5.y = ((((_local9 - _arg1.x) * _arg2.y) / _arg2.x) + _arg1.y); _arg5.z = ((((_local9 - _arg1.x) * _arg2.z) / _arg2.x) + _arg1.z); break; case 1: _local10 = ((((_arg4 * _arg2.y) + (_arg3.x * ((_arg1.y * _arg2.x) - (_arg1.x * _arg2.y)))) + (_arg3.z * ((_arg1.y * _arg2.z) - (_arg1.z * _arg2.y)))) / _local6); _arg5.x = ((((_local10 - _arg1.y) * _arg2.x) / _arg2.y) + _arg1.x); _arg5.y = _local10; _arg5.z = ((((_local10 - _arg1.y) * _arg2.z) / _arg2.y) + _arg1.z); break; case 2: _local11 = ((((_arg4 * _arg2.z) + (_arg3.x * ((_arg1.z * _arg2.x) - (_arg1.x * _arg2.z)))) + (_arg3.y * ((_arg1.z * _arg2.y) - (_arg1.y * _arg2.z)))) / _local6); _arg5.x = ((((_local11 - _arg1.z) * _arg2.x) / _arg2.z) + _arg1.x); _arg5.y = ((((_local11 - _arg1.z) * _arg2.y) / _arg2.z) + _arg1.y); _arg5.z = _local11; break; }; } } }//package alternativa.engine3d.display
Section 16
//Engine3DError (alternativa.engine3d.errors.Engine3DError) package alternativa.engine3d.errors { public class Engine3DError extends Error { public var source:Object; public function Engine3DError(_arg1:String="", _arg2:Object=null){ super(_arg1); this.source = _arg2; this.name = "Engine3DError"; } } }//package alternativa.engine3d.errors
Section 17
//FaceExistsError (alternativa.engine3d.errors.FaceExistsError) package alternativa.engine3d.errors { import alternativa.engine3d.core.*; import alternativa.utils.*; public class FaceExistsError extends ObjectExistsError { public function FaceExistsError(_arg1:Object=null, _arg2:Object=null){ var _local3:String; if ((_arg2 is Mesh)){ _local3 = "Mesh "; } else { if ((_arg2 is Surface)){ _local3 = "Surface "; }; }; if ((_arg1 is Face)){ _local3 = (_local3 + "%1. Face %2 already exists."); } else { _local3 = (_local3 + "%1. Face with ID '%2' already exists."); }; super(TextUtils.insertVars(_local3, _arg2, _arg1), _arg1, _arg2); this.name = "FaceExistsError"; } } }//package alternativa.engine3d.errors
Section 18
//FaceNeedMoreVerticesError (alternativa.engine3d.errors.FaceNeedMoreVerticesError) package alternativa.engine3d.errors { import alternativa.engine3d.core.*; import alternativa.utils.*; public class FaceNeedMoreVerticesError extends Engine3DError { public var count:uint; public function FaceNeedMoreVerticesError(_arg1:Mesh=null, _arg2:uint=0){ super(TextUtils.insertVars("Mesh %1. %2 vertices not enough for face creation.", _arg1, _arg2), _arg1); this.count = _arg2; this.name = "FaceNeedMoreVerticesError"; } } }//package alternativa.engine3d.errors
Section 19
//FaceNotFoundError (alternativa.engine3d.errors.FaceNotFoundError) package alternativa.engine3d.errors { import alternativa.engine3d.core.*; import alternativa.utils.*; public class FaceNotFoundError extends ObjectNotFoundError { public function FaceNotFoundError(_arg1:Object=null, _arg2:Object=null){ var _local3:String; if ((_arg2 is Mesh)){ _local3 = "Mesh "; } else { _local3 = "Surface "; }; if ((_arg1 is Face)){ _local3 = (_local3 + "%1. Face %2 not found."); } else { _local3 = (_local3 + "%1. Face with ID '%2' not found."); }; super(TextUtils.insertVars(_local3, _arg2, _arg1), _arg1, _arg2); this.name = "FaceNotFoundError"; } } }//package alternativa.engine3d.errors
Section 20
//InvalidIDError (alternativa.engine3d.errors.InvalidIDError) package alternativa.engine3d.errors { import alternativa.engine3d.core.*; import alternativa.utils.*; public class InvalidIDError extends Engine3DError { public var id:Object; public function InvalidIDError(_arg1:Object=null, _arg2:Object=null){ var _local3:String; if ((_arg2 is Mesh)){ _local3 = "Mesh %2. "; } else { if ((_arg2 is Surface)){ _local3 = "Surface %2. "; }; }; super(TextUtils.insertVars((_local3 + "ID %1 is reserved and cannot be used"), [_arg1, _arg2]), _arg2); this.id = _arg1; this.name = "InvalidIDError"; } } }//package alternativa.engine3d.errors
Section 21
//Object3DHierarchyError (alternativa.engine3d.errors.Object3DHierarchyError) package alternativa.engine3d.errors { import alternativa.engine3d.core.*; import alternativa.utils.*; public class Object3DHierarchyError extends Engine3DError { public var object:Object3D; public function Object3DHierarchyError(_arg1:Object3D=null, _arg2:Object3D=null){ super(TextUtils.insertVars("Object3D %1. Object %2 cannot be added", _arg2, _arg1), _arg2); this.object = _arg1; this.name = "Object3DHierarchyError"; } } }//package alternativa.engine3d.errors
Section 22
//Object3DNotFoundError (alternativa.engine3d.errors.Object3DNotFoundError) package alternativa.engine3d.errors { import alternativa.engine3d.core.*; import alternativa.utils.*; public class Object3DNotFoundError extends ObjectNotFoundError { public function Object3DNotFoundError(_arg1:Object3D=null, _arg2:Object3D=null){ super(TextUtils.insertVars("Object3D %1. Object %2 not in child list", _arg2, _arg1), _arg1, _arg2); this.name = "Object3DNotFoundError"; } } }//package alternativa.engine3d.errors
Section 23
//ObjectExistsError (alternativa.engine3d.errors.ObjectExistsError) package alternativa.engine3d.errors { public class ObjectExistsError extends Engine3DError { public var object:Object; public function ObjectExistsError(_arg1:String="", _arg2:Object=null, _arg3:Object=null){ super(_arg1, _arg3); this.object = _arg2; this.name = "ObjectExistsError"; } } }//package alternativa.engine3d.errors
Section 24
//ObjectNotFoundError (alternativa.engine3d.errors.ObjectNotFoundError) package alternativa.engine3d.errors { public class ObjectNotFoundError extends Engine3DError { public var object:Object; public function ObjectNotFoundError(_arg1:String="", _arg2:Object=null, _arg3:Object=null){ super(_arg1, _arg3); this.object = _arg2; this.name = "ObjectNotFoundError"; } } }//package alternativa.engine3d.errors
Section 25
//SurfaceExistsError (alternativa.engine3d.errors.SurfaceExistsError) package alternativa.engine3d.errors { import alternativa.engine3d.core.*; import alternativa.utils.*; public class SurfaceExistsError extends ObjectExistsError { public function SurfaceExistsError(_arg1:Object=null, _arg2:Mesh=null){ super(TextUtils.insertVars("Mesh %1. Surface with ID '%2' already exists.", _arg2, _arg1), _arg1, _arg2); this.name = "SurfaceExistsError"; } } }//package alternativa.engine3d.errors
Section 26
//SurfaceNotFoundError (alternativa.engine3d.errors.SurfaceNotFoundError) package alternativa.engine3d.errors { import alternativa.engine3d.core.*; import alternativa.utils.*; public class SurfaceNotFoundError extends ObjectNotFoundError { public function SurfaceNotFoundError(_arg1:Object=null, _arg2:Mesh=null){ if (_arg2 == null){ }; if ((_arg1 is Surface)){ message = "Mesh %1. Surface %2 not found."; } else { message = "Mesh %1. Surface with ID '%2' not found."; }; super(TextUtils.insertVars(message, _arg2, _arg1), _arg1, _arg2); this.name = "SurfaceNotFoundError"; } } }//package alternativa.engine3d.errors
Section 27
//VertexExistsError (alternativa.engine3d.errors.VertexExistsError) package alternativa.engine3d.errors { import alternativa.engine3d.core.*; import alternativa.utils.*; public class VertexExistsError extends ObjectExistsError { public function VertexExistsError(_arg1:Object=null, _arg2:Mesh=null){ super(TextUtils.insertVars("Mesh %1. Vertex with ID '%2' already exists.", _arg2, _arg1), _arg1, _arg2); this.name = "VertexExistsError"; } } }//package alternativa.engine3d.errors
Section 28
//VertexNotFoundError (alternativa.engine3d.errors.VertexNotFoundError) package alternativa.engine3d.errors { import alternativa.engine3d.core.*; import alternativa.utils.*; public class VertexNotFoundError extends ObjectNotFoundError { public function VertexNotFoundError(_arg1:Object=null, _arg2:Mesh=null){ if ((_arg1 is Vertex)){ message = "Mesh %1. Vertex %2 not found."; } else { message = "Mesh %1. Vertex with ID '%2' not found."; }; super(TextUtils.insertVars(message, _arg2, _arg1), _arg1, _arg2); this.name = "VertexNotFoundError"; } } }//package alternativa.engine3d.errors
Section 29
//MouseEvent3D (alternativa.engine3d.events.MouseEvent3D) package alternativa.engine3d.events { import flash.events.*; import alternativa.engine3d.core.*; import alternativa.engine3d.display.*; public class MouseEvent3D extends Event { public var shiftKey:Boolean; public var localX:Number; public var localY:Number; public var localZ:Number; public var globalX:Number; public var globalY:Number; public var globalZ:Number; public var face:Face; public var view:View; public var surface:Surface; public var ctrlKey:Boolean; public var u:Number; public var altKey:Boolean; public var delta:int; public var v:Number; public var object:Object3D; public static const MOUSE_WHEEL:String = "mouseWheel"; public static const MOUSE_DOWN:String = "mouseDown"; public static const MOUSE_MOVE:String = "mouseMove"; public static const MOUSE_OVER:String = "mouseOver"; public static const CLICK:String = "click"; public static const MOUSE_OUT:String = "mouseOut"; public static const MOUSE_UP:String = "mouseUp"; public function MouseEvent3D(_arg1:String, _arg2:View, _arg3:Object3D, _arg4:Surface, _arg5:Face, _arg6:Number=NaN, _arg7:Number=NaN, _arg8:Number=NaN, _arg9:Number=NaN, _arg10:Number=NaN, _arg11:Number=NaN, _arg12:Number=NaN, _arg13:Number=NaN, _arg14:Boolean=false, _arg15:Boolean=false, _arg16:Boolean=false, _arg17:int=0){ super(_arg1); this.object = _arg3; this.surface = _arg4; this.face = _arg5; this.globalX = _arg6; this.globalY = _arg7; this.globalZ = _arg8; this.localX = _arg9; this.localY = _arg10; this.localZ = _arg11; this.u = _arg12; this.v = _arg13; this.altKey = _arg14; this.ctrlKey = _arg15; this.shiftKey = _arg16; this.delta = _arg17; } override public function toString():String{ return (formatToString("MouseEvent3D", "object", "surface", "face", "globalX", "globalY", "globalZ", "localX", "localY", "localZ", "u", "v", "delta", "altKey", "ctrlKey", "shiftKey")); } override public function clone():Event{ return (new MouseEvent3D(type, view, object, surface, face, globalX, globalY, globalZ, localX, localY, localZ, u, v, altKey, ctrlKey, shiftKey, delta)); } } }//package alternativa.engine3d.events
Section 30
//DrawPoint (alternativa.engine3d.materials.DrawPoint) package alternativa.engine3d.materials { public final class DrawPoint { public var u:Number; public var v:Number; public var x:Number; public var y:Number; public var z:Number; public function DrawPoint(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number=0, _arg5:Number=0){ this.x = _arg1; this.y = _arg2; this.z = _arg3; this.u = _arg4; this.v = _arg5; } } }//package alternativa.engine3d.materials
Section 31
//FillMaterial (alternativa.engine3d.materials.FillMaterial) package alternativa.engine3d.materials { import flash.display.*; import alternativa.engine3d.core.*; import alternativa.engine3d.display.*; import alternativa.engine3d.*; public class FillMaterial extends SurfaceMaterial { alternativa3d var _color:uint; alternativa3d var _wireThickness:Number; alternativa3d var _wireColor:uint; public function FillMaterial(_arg1:uint, _arg2:Number=1, _arg3:String="normal", _arg4:Number=-1, _arg5:uint=0){ super(_arg2, _arg3); _color = _arg1; _wireThickness = _arg4; _wireColor = _arg5; } public function get color():uint{ return (_color); } public function set color(_arg1:uint):void{ if (_color != _arg1){ _color = _arg1; markToChange(); }; } override alternativa3d function draw(_arg1:Camera3D, _arg2:Skin, _arg3:uint, _arg4:Array):void{ var _local5:uint; var _local6:DrawPoint; var _local8:Number; _arg2.alpha = _alpha; _arg2.blendMode = _blendMode; var _local7:Graphics = _arg2.gfx; if (_arg1._orthographic){ _local7.beginFill(_color); if (_wireThickness >= 0){ _local7.lineStyle(_wireThickness, _wireColor); }; _local6 = _arg4[0]; _local7.moveTo(_local6.x, _local6.y); _local5 = 1; while (_local5 < _arg3) { _local6 = _arg4[_local5]; _local7.lineTo(_local6.x, _local6.y); _local5++; }; if (_wireThickness >= 0){ _local6 = _arg4[0]; _local7.lineTo(_local6.x, _local6.y); }; } else { _local7.beginFill(_color); if (_wireThickness >= 0){ _local7.lineStyle(_wireThickness, _wireColor); }; _local6 = _arg4[0]; _local8 = (_arg1.focalLength / _local6.z); _local7.moveTo((_local6.x * _local8), (_local6.y * _local8)); _local5 = 1; while (_local5 < _arg3) { _local6 = _arg4[_local5]; _local8 = (_arg1.focalLength / _local6.z); _local7.lineTo((_local6.x * _local8), (_local6.y * _local8)); _local5++; }; if (_wireThickness >= 0){ _local6 = _arg4[0]; _local8 = (_arg1.focalLength / _local6.z); _local7.lineTo((_local6.x * _local8), (_local6.y * _local8)); }; }; } public function get wireColor():uint{ return (_wireColor); } public function get wireThickness():Number{ return (_wireThickness); } public function set wireColor(_arg1:uint):void{ if (_wireColor != _arg1){ _wireColor = _arg1; markToChange(); }; } override public function clone():Material{ var _local1:FillMaterial = new FillMaterial(_color, _alpha, _blendMode, _wireThickness, _wireColor); return (_local1); } public function set wireThickness(_arg1:Number):void{ if (_wireThickness != _arg1){ _wireThickness = _arg1; markToChange(); }; } } }//package alternativa.engine3d.materials
Section 32
//Material (alternativa.engine3d.materials.Material) package alternativa.engine3d.materials { import alternativa.engine3d.display.*; import alternativa.engine3d.*; public class Material { alternativa3d var _blendMode:String; alternativa3d var _alpha:Number; public function Material(_arg1:Number, _arg2:String){ _alpha = _arg1; _blendMode = _arg2; } public function clone():Material{ return (new Material(_alpha, _blendMode)); } public function get blendMode():String{ return (_blendMode); } alternativa3d function clear(_arg1:Skin):void{ _arg1.gfx.clear(); } protected function markToChange():void{ } public function set blendMode(_arg1:String):void{ if (_blendMode != _arg1){ _blendMode = _arg1; markToChange(); }; } public function set alpha(_arg1:Number):void{ if (_alpha != _arg1){ _alpha = _arg1; markToChange(); }; } public function get alpha():Number{ return (_alpha); } } }//package alternativa.engine3d.materials
Section 33
//SpriteMaterial (alternativa.engine3d.materials.SpriteMaterial) package alternativa.engine3d.materials { import alternativa.engine3d.core.*; import alternativa.engine3d.display.*; import alternativa.engine3d.*; public class SpriteMaterial extends Material { alternativa3d var _sprite:Sprite3D; public function SpriteMaterial(_arg1:Number=1, _arg2:String="normal"){ super(_arg1, _arg2); } alternativa3d function addToScene(_arg1:Scene3D):void{ } alternativa3d function addToSprite(_arg1:Sprite3D):void{ _sprite = _arg1; } public function get sprite():Sprite3D{ return (_sprite); } alternativa3d function removeFromSprite(_arg1:Sprite3D):void{ _sprite = null; } alternativa3d function canDraw(_arg1:Camera3D):Boolean{ return (true); } alternativa3d function draw(_arg1:Camera3D, _arg2:Skin):void{ _arg2.alpha = _alpha; _arg2.blendMode = _blendMode; } override public function clone():Material{ return (new SpriteMaterial(_alpha, _blendMode)); } alternativa3d function removeFromScene(_arg1:Scene3D):void{ } override protected function markToChange():void{ if (_sprite != null){ _sprite.addMaterialChangedOperationToScene(); }; } } }//package alternativa.engine3d.materials
Section 34
//SpriteTextureMaterial (alternativa.engine3d.materials.SpriteTextureMaterial) package alternativa.engine3d.materials { import alternativa.types.*; import flash.geom.*; import alternativa.engine3d.core.*; import alternativa.engine3d.display.*; import alternativa.engine3d.*; public class SpriteTextureMaterial extends SpriteMaterial { alternativa3d var _smooth:Boolean; alternativa3d var _originY:Number; alternativa3d var _originX:Number; alternativa3d var _texture:Texture; private static var drawRect:Rectangle = new Rectangle(); private static var textureMatrix:Matrix = new Matrix(); public function SpriteTextureMaterial(_arg1:Texture, _arg2:Number=1, _arg3:Boolean=false, _arg4:String="normal", _arg5:Number=0.5, _arg6:Number=0.5){ super(_arg2, _arg4); _texture = _arg1; _smooth = _arg3; _originX = _arg5; _originY = _arg6; } public function get texture():Texture{ return (_texture); } public function set smooth(_arg1:Boolean):void{ if (_smooth != _arg1){ _smooth = _arg1; markToChange(); }; } override alternativa3d function draw(_arg1:Camera3D, _arg2:Skin):void{ _arg2.alpha = _alpha; _arg2.blendMode = _blendMode; _arg2.gfx.beginBitmapFill(_texture._bitmapData, textureMatrix, false, _smooth); _arg2.gfx.drawRect(drawRect.x, drawRect.y, drawRect.width, drawRect.height); } public function set originX(_arg1:Number):void{ if (_originX != _arg1){ _originX = _arg1; markToChange(); }; } public function get smooth():Boolean{ return (_smooth); } public function get originX():Number{ return (_originX); } public function get originY():Number{ return (_originY); } public function set texture(_arg1:Texture):void{ if (_texture != _arg1){ _texture = _arg1; markToChange(); }; } override alternativa3d function canDraw(_arg1:Camera3D):Boolean{ var _local9:Number; var _local10:Number; var _local13:Number; if (_texture == null){ return (false); }; var _local2:Matrix3D = _arg1.cameraMatrix; var _local3:Number = _sprite.globalCoords.x; var _local4:Number = _sprite.globalCoords.y; var _local5:Number = _sprite.globalCoords.z; var _local6:Number = ((((_local2.a * _local3) + (_local2.b * _local4)) + (_local2.c * _local5)) + _local2.d); var _local7:Number = ((((_local2.e * _local3) + (_local2.f * _local4)) + (_local2.g * _local5)) + _local2.h); var _local8:Number = ((((_local2.i * _local3) + (_local2.j * _local4)) + (_local2.k * _local5)) + _local2.l); if (_arg1._orthographic){ if (((((_arg1._nearClipping) && ((_local8 < _arg1._nearClippingDistance)))) || (((_arg1._farClipping) && ((_local8 > _arg1._farClippingDistance)))))){ return (false); }; _local9 = ((_texture._width * _arg1._zoom) * _sprite._materialScale); _local10 = ((_texture._height * _arg1._zoom) * _sprite._materialScale); _local3 = (_local6 - (_local9 * _originX)); _local4 = (_local7 - (_local10 * _originY)); } else { if ((((((_local8 <= 0)) || (((_arg1._nearClipping) && ((_local8 < _arg1._nearClippingDistance)))))) || (((_arg1._farClipping) && ((_local8 > _arg1._farClippingDistance)))))){ return (false); }; _local13 = (_arg1.focalLength / _local8); _local9 = ((_texture._width * _local13) * _sprite._materialScale); _local10 = ((_texture._height * _local13) * _sprite._materialScale); _local3 = ((_local6 * _local13) - (_local9 * _originX)); _local4 = ((_local7 * _local13) - (_local10 * _originY)); }; var _local11:Number = (_arg1._view._width * 0.5); var _local12:Number = (_arg1._view._height * 0.5); if (((_arg1._viewClipping) && ((((((((_local3 >= _local11)) || ((_local4 >= _local12)))) || (((_local3 + _local9) <= -(_local11))))) || (((_local4 + _local10) <= -(_local12))))))){ return (false); }; textureMatrix.a = (_local9 / _texture._width); textureMatrix.d = (_local10 / _texture._height); textureMatrix.tx = _local3; textureMatrix.ty = _local4; if (_arg1._viewClipping){ if (_local3 < -(_local11)){ _local9 = (_local9 - (-(_local11) - _local3)); _local3 = -(_local11); }; if ((_local3 + _local9) > _local11){ _local9 = (_local11 - _local3); }; if (_local4 < -(_local12)){ _local10 = (_local10 - (-(_local12) - _local4)); _local4 = -(_local12); }; if ((_local4 + _local10) > _local12){ _local10 = (_local12 - _local4); }; }; drawRect.x = _local3; drawRect.y = _local4; drawRect.width = _local9; drawRect.height = _local10; return (true); } override public function clone():Material{ return (new SpriteTextureMaterial(_texture, _alpha, _smooth, _blendMode, _originX, _originY)); } public function set originY(_arg1:Number):void{ if (_originY != _arg1){ _originY = _arg1; markToChange(); }; } } }//package alternativa.engine3d.materials
Section 35
//SurfaceMaterial (alternativa.engine3d.materials.SurfaceMaterial) package alternativa.engine3d.materials { import alternativa.engine3d.core.*; import alternativa.engine3d.display.*; import alternativa.engine3d.*; public class SurfaceMaterial extends Material { alternativa3d var useUV:Boolean;// = false alternativa3d var _surface:Surface; public function SurfaceMaterial(_arg1:Number=1, _arg2:String="normal"){ super(_arg1, _arg2); } alternativa3d function draw(_arg1:Camera3D, _arg2:Skin, _arg3:uint, _arg4:Array):void{ _arg2.alpha = _alpha; _arg2.blendMode = _blendMode; } alternativa3d function addToMesh(_arg1:Mesh):void{ } public function get surface():Surface{ return (_surface); } alternativa3d function addToSurface(_arg1:Surface):void{ _surface = _arg1; } alternativa3d function canDraw(_arg1:PolyPrimitive):Boolean{ return (true); } alternativa3d function addToScene(_arg1:Scene3D):void{ } override protected function markToChange():void{ if (_surface != null){ _surface.addMaterialChangedOperationToScene(); }; } alternativa3d function removeFromMesh(_arg1:Mesh):void{ } override public function clone():Material{ return (new SurfaceMaterial(_alpha, _blendMode)); } alternativa3d function removeFromScene(_arg1:Scene3D):void{ } alternativa3d function removeFromSurface(_arg1:Surface):void{ _surface = null; } } }//package alternativa.engine3d.materials
Section 36
//TextureMaterial (alternativa.engine3d.materials.TextureMaterial) package alternativa.engine3d.materials { import flash.display.*; import alternativa.types.*; import flash.geom.*; import alternativa.engine3d.core.*; import alternativa.engine3d.display.*; import alternativa.engine3d.*; public class TextureMaterial extends SurfaceMaterial { alternativa3d var _repeat:Boolean; alternativa3d var _smooth:Boolean; alternativa3d var _texture:Texture; private var distortion:Number; alternativa3d var _wireColor:uint; private var focalLength:Number; alternativa3d var _wireThickness:Number; private var gfx:Graphics; private var textureMatrix:Matrix; alternativa3d var _precision:Number; private static var stubMatrix:Matrix; private static var stubBitmapData:BitmapData; public function TextureMaterial(_arg1:Texture, _arg2:Number=1, _arg3:Boolean=true, _arg4:Boolean=false, _arg5:String="normal", _arg6:Number=-1, _arg7:uint=0, _arg8:Number=10){ textureMatrix = new Matrix(); super(_arg2, _arg5); _texture = _arg1; _repeat = _arg3; _smooth = _arg4; _wireThickness = _arg6; _wireColor = _arg7; _precision = _arg8; useUV = true; } public function set wireColor(_arg1:uint):void{ if (_wireColor != _arg1){ _wireColor = _arg1; markToChange(); }; } override alternativa3d function draw(_arg1:Camera3D, _arg2:Skin, _arg3:uint, _arg4:Array):void{ var _local5:uint; var _local6:DrawPoint; var _local7:Number; var _local8:Face; var _local9:uint; var _local10:uint; var _local11:uint; var _local12:uint; var _local13:Boolean; var _local14:DrawPoint; var _local15:DrawPoint; var _local16:DrawPoint; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; _arg2.alpha = _alpha; _arg2.blendMode = _blendMode; gfx = _arg2.gfx; if (_arg2.primitive.face.uvMatrixBase == null){ if (stubBitmapData == null){ stubBitmapData = new BitmapData(2, 2, false, 0); stubBitmapData.setPixel(0, 0, 0xFF00FF); stubBitmapData.setPixel(1, 1, 0xFF00FF); stubMatrix = new Matrix(10, 0, 0, 10, 0, 0); }; gfx.beginBitmapFill(stubBitmapData, stubMatrix); if (_arg1._orthographic){ if (_wireThickness >= 0){ gfx.lineStyle(_wireThickness, _wireColor); }; _local6 = _arg4[0]; gfx.moveTo(_local6.x, _local6.y); _local5 = 1; while (_local5 < _arg3) { _local6 = _arg4[_local5]; gfx.lineTo(_local6.x, _local6.y); _local5++; }; if (_wireThickness >= 0){ _local6 = _arg4[0]; gfx.lineTo(_local6.x, _local6.y); }; } else { if (_wireThickness >= 0){ gfx.lineStyle(_wireThickness, _wireColor); }; _local6 = _arg4[0]; _local7 = (_arg1.focalLength / _local6.z); gfx.moveTo((_local6.x * _local7), (_local6.y * _local7)); _local5 = 1; while (_local5 < _arg3) { _local6 = _arg4[_local5]; _local7 = (_arg1.focalLength / _local6.z); gfx.lineTo((_local6.x * _local7), (_local6.y * _local7)); _local5++; }; if (_wireThickness >= 0){ _local6 = _arg4[0]; _local7 = (_arg1.focalLength / _local6.z); gfx.lineTo((_local6.x * _local7), (_local6.y * _local7)); }; }; return; }; if (_arg1._orthographic){ _local8 = _arg2.primitive.face; if (!_arg1.uvMatricesCalculated[_local8]){ _arg1.calculateUVMatrix(_local8, _texture._width, _texture._height); }; gfx.beginBitmapFill(_texture._bitmapData, _local8.uvMatrix, _repeat, _smooth); if (_wireThickness >= 0){ gfx.lineStyle(_wireThickness, _wireColor); }; _local6 = _arg4[0]; gfx.moveTo(_local6.x, _local6.y); _local5 = 1; while (_local5 < _arg3) { _local6 = _arg4[_local5]; gfx.lineTo(_local6.x, _local6.y); _local5++; }; if (_wireThickness >= 0){ _local6 = _arg4[0]; gfx.lineTo(_local6.x, _local6.y); }; } else { focalLength = _arg1.focalLength; distortion = (_arg1.focalDistortion * _precision); _local9 = 0; _local10 = (_arg3 - 1); _local11 = 1; _local12 = ((_local10)>0) ? (_local10 - 1) : (_arg3 - 1); _local13 = true; _local14 = _arg4[_local10]; _local16 = _arg4[_local9]; if (_precision > 0){ _local17 = (_local14.x / _local14.z); _local18 = (_local14.y / _local14.z); _local21 = (_local16.x / _local16.z); _local22 = (_local16.y / _local16.z); _local23 = (((_local16.x + _local14.x) / (_local16.z + _local14.z)) - (0.5 * (_local21 + _local17))); _local24 = (((_local16.y + _local14.y) / (_local16.z + _local14.z)) - (0.5 * (_local22 + _local18))); _local27 = ((_local23 * _local23) + (_local24 * _local24)); while (_local9 != _local12) { if (_local13){ _local14 = _arg4[_local9]; _local15 = _arg4[_local11]; _local16 = _arg4[_local10]; _local19 = _local17; _local20 = _local18; _local17 = _local21; _local18 = _local22; _local21 = _local19; _local22 = _local20; _local19 = (_local15.x / _local15.z); _local20 = (_local15.y / _local15.z); _local23 = (((_local15.x + _local16.x) / (_local15.z + _local16.z)) - (0.5 * (_local19 + _local21))); _local24 = (((_local15.y + _local16.y) / (_local15.z + _local16.z)) - (0.5 * (_local20 + _local22))); _local26 = ((_local23 * _local23) + (_local24 * _local24)); _local9 = _local11; _local11 = ((_local9)<(_arg3 - 1)) ? (_local9 + 1) : 0; } else { _local14 = _arg4[_local12]; _local15 = _arg4[_local10]; _local16 = _arg4[_local9]; _local17 = _local19; _local18 = _local20; _local19 = _local21; _local20 = _local22; _local21 = _local17; _local22 = _local18; _local17 = (_local14.x / _local14.z); _local18 = (_local14.y / _local14.z); _local23 = (((_local16.x + _local14.x) / (_local16.z + _local14.z)) - (0.5 * (_local21 + _local17))); _local24 = (((_local16.y + _local14.y) / (_local16.z + _local14.z)) - (0.5 * (_local22 + _local18))); _local27 = ((_local23 * _local23) + (_local24 * _local24)); _local10 = _local12; _local12 = ((_local10)>0) ? (_local10 - 1) : (_arg3 - 1); }; if ((((_local19 - _local17) * (_local22 - _local18)) - ((_local20 - _local18) * (_local21 - _local17))) < -(_arg1.focalDistortion)){ _local23 = (((_local14.x + _local15.x) / (_local14.z + _local15.z)) - (0.5 * (_local17 + _local19))); _local24 = (((_local14.y + _local15.y) / (_local14.z + _local15.z)) - (0.5 * (_local18 + _local20))); _local25 = ((_local23 * _local23) + (_local24 * _local24)); bisection(_local14.x, _local14.y, _local14.z, _local14.u, _local14.v, _local15.x, _local15.y, _local15.z, _local15.u, _local15.v, _local16.x, _local16.y, _local16.z, _local16.u, _local16.v, _local25, _local26, _local27); }; _local13 = !(_local13); }; } else { _local17 = ((focalLength * _local14.x) / _local14.z); _local18 = ((focalLength * _local14.y) / _local14.z); _local21 = ((focalLength * _local16.x) / _local16.z); _local22 = ((focalLength * _local16.y) / _local16.z); while (_local9 != _local12) { if (_local13){ _local14 = _arg4[_local9]; _local15 = _arg4[_local11]; _local16 = _arg4[_local10]; _local19 = _local17; _local20 = _local18; _local17 = _local21; _local18 = _local22; _local21 = _local19; _local22 = _local20; _local19 = ((focalLength * _local15.x) / _local15.z); _local20 = ((focalLength * _local15.y) / _local15.z); _local9 = _local11; _local11 = ((_local9)<(_arg3 - 1)) ? (_local9 + 1) : 0; } else { _local14 = _arg4[_local12]; _local15 = _arg4[_local10]; _local16 = _arg4[_local9]; _local17 = _local19; _local18 = _local20; _local19 = _local21; _local20 = _local22; _local21 = _local17; _local22 = _local18; _local17 = ((focalLength * _local14.x) / _local14.z); _local18 = ((focalLength * _local14.y) / _local14.z); _local10 = _local12; _local12 = ((_local10)>0) ? (_local10 - 1) : (_arg3 - 1); }; drawTriangle(_local17, _local18, _local14.u, _local14.v, _local19, _local20, _local15.u, _local15.v, _local21, _local22, _local16.u, _local16.v); _local13 = !(_local13); }; }; }; } private function bisection(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number, _arg10:Number, _arg11:Number, _arg12:Number, _arg13:Number, _arg14:Number, _arg15:Number, _arg16:Number, _arg17:Number, _arg18:Number):void{ var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local26:Number; var _local27:Number; var _local28:Number; if (_arg16 > _arg17){ if (_arg16 > _arg18){ if (_arg16 > distortion){ _local19 = (0.5 * (_arg1 + _arg6)); _local20 = (0.5 * (_arg2 + _arg7)); _local21 = (0.5 * (_arg3 + _arg8)); _local22 = (0.5 * (_arg4 + _arg9)); _local23 = (0.5 * (_arg5 + _arg10)); _local24 = (((_arg1 + _local19) / (_arg3 + _local21)) - (0.5 * ((_arg1 / _arg3) + (_local19 / _local21)))); _local25 = (((_arg2 + _local20) / (_arg3 + _local21)) - (0.5 * ((_arg2 / _arg3) + (_local20 / _local21)))); _local26 = ((_local24 * _local24) + (_local25 * _local25)); _local24 = (((_arg6 + _local19) / (_arg8 + _local21)) - (0.5 * ((_arg6 / _arg8) + (_local19 / _local21)))); _local25 = (((_arg7 + _local20) / (_arg8 + _local21)) - (0.5 * ((_arg7 / _arg8) + (_local20 / _local21)))); _local27 = ((_local24 * _local24) + (_local25 * _local25)); _local24 = (((_arg11 + _local19) / (_arg13 + _local21)) - (0.5 * ((_arg11 / _arg13) + (_local19 / _local21)))); _local25 = (((_arg12 + _local20) / (_arg13 + _local21)) - (0.5 * ((_arg12 / _arg13) + (_local20 / _local21)))); _local28 = ((_local24 * _local24) + (_local25 * _local25)); bisection(_local19, _local20, _local21, _local22, _local23, _arg11, _arg12, _arg13, _arg14, _arg15, _arg1, _arg2, _arg3, _arg4, _arg5, _local28, _arg18, _local26); bisection(_local19, _local20, _local21, _local22, _local23, _arg6, _arg7, _arg8, _arg9, _arg10, _arg11, _arg12, _arg13, _arg14, _arg15, _local27, _arg17, _local28); return; }; } else { if (_arg18 > distortion){ _local19 = (0.5 * (_arg11 + _arg1)); _local20 = (0.5 * (_arg12 + _arg2)); _local21 = (0.5 * (_arg13 + _arg3)); _local22 = (0.5 * (_arg14 + _arg4)); _local23 = (0.5 * (_arg15 + _arg5)); _local24 = (((_arg1 + _local19) / (_arg3 + _local21)) - (0.5 * ((_arg1 / _arg3) + (_local19 / _local21)))); _local25 = (((_arg2 + _local20) / (_arg3 + _local21)) - (0.5 * ((_arg2 / _arg3) + (_local20 / _local21)))); _local26 = ((_local24 * _local24) + (_local25 * _local25)); _local24 = (((_arg6 + _local19) / (_arg8 + _local21)) - (0.5 * ((_arg6 / _arg8) + (_local19 / _local21)))); _local25 = (((_arg7 + _local20) / (_arg8 + _local21)) - (0.5 * ((_arg7 / _arg8) + (_local20 / _local21)))); _local27 = ((_local24 * _local24) + (_local25 * _local25)); _local24 = (((_arg11 + _local19) / (_arg13 + _local21)) - (0.5 * ((_arg11 / _arg13) + (_local19 / _local21)))); _local25 = (((_arg12 + _local20) / (_arg13 + _local21)) - (0.5 * ((_arg12 / _arg13) + (_local20 / _local21)))); _local28 = ((_local24 * _local24) + (_local25 * _local25)); bisection(_local19, _local20, _local21, _local22, _local23, _arg6, _arg7, _arg8, _arg9, _arg10, _arg11, _arg12, _arg13, _arg14, _arg15, _local27, _arg17, _local28); bisection(_local19, _local20, _local21, _local22, _local23, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10, _local26, _arg16, _local27); return; }; }; } else { if (_arg17 > _arg18){ if (_arg17 > distortion){ _local19 = (0.5 * (_arg6 + _arg11)); _local20 = (0.5 * (_arg7 + _arg12)); _local21 = (0.5 * (_arg8 + _arg13)); _local22 = (0.5 * (_arg9 + _arg14)); _local23 = (0.5 * (_arg10 + _arg15)); _local24 = (((_arg1 + _local19) / (_arg3 + _local21)) - (0.5 * ((_arg1 / _arg3) + (_local19 / _local21)))); _local25 = (((_arg2 + _local20) / (_arg3 + _local21)) - (0.5 * ((_arg2 / _arg3) + (_local20 / _local21)))); _local26 = ((_local24 * _local24) + (_local25 * _local25)); _local24 = (((_arg6 + _local19) / (_arg8 + _local21)) - (0.5 * ((_arg6 / _arg8) + (_local19 / _local21)))); _local25 = (((_arg7 + _local20) / (_arg8 + _local21)) - (0.5 * ((_arg7 / _arg8) + (_local20 / _local21)))); _local27 = ((_local24 * _local24) + (_local25 * _local25)); _local24 = (((_arg11 + _local19) / (_arg13 + _local21)) - (0.5 * ((_arg11 / _arg13) + (_local19 / _local21)))); _local25 = (((_arg12 + _local20) / (_arg13 + _local21)) - (0.5 * ((_arg12 / _arg13) + (_local20 / _local21)))); _local28 = ((_local24 * _local24) + (_local25 * _local25)); bisection(_local19, _local20, _local21, _local22, _local23, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10, _local26, _arg16, _local27); bisection(_local19, _local20, _local21, _local22, _local23, _arg11, _arg12, _arg13, _arg14, _arg15, _arg1, _arg2, _arg3, _arg4, _arg5, _local28, _arg18, _local26); return; }; } else { if (_arg18 > distortion){ _local19 = (0.5 * (_arg11 + _arg1)); _local20 = (0.5 * (_arg12 + _arg2)); _local21 = (0.5 * (_arg13 + _arg3)); _local22 = (0.5 * (_arg14 + _arg4)); _local23 = (0.5 * (_arg15 + _arg5)); _local24 = (((_arg1 + _local19) / (_arg3 + _local21)) - (0.5 * ((_arg1 / _arg3) + (_local19 / _local21)))); _local25 = (((_arg2 + _local20) / (_arg3 + _local21)) - (0.5 * ((_arg2 / _arg3) + (_local20 / _local21)))); _local26 = ((_local24 * _local24) + (_local25 * _local25)); _local24 = (((_arg6 + _local19) / (_arg8 + _local21)) - (0.5 * ((_arg6 / _arg8) + (_local19 / _local21)))); _local25 = (((_arg7 + _local20) / (_arg8 + _local21)) - (0.5 * ((_arg7 / _arg8) + (_local20 / _local21)))); _local27 = ((_local24 * _local24) + (_local25 * _local25)); _local24 = (((_arg11 + _local19) / (_arg13 + _local21)) - (0.5 * ((_arg11 / _arg13) + (_local19 / _local21)))); _local25 = (((_arg12 + _local20) / (_arg13 + _local21)) - (0.5 * ((_arg12 / _arg13) + (_local20 / _local21)))); _local28 = ((_local24 * _local24) + (_local25 * _local25)); bisection(_local19, _local20, _local21, _local22, _local23, _arg6, _arg7, _arg8, _arg9, _arg10, _arg11, _arg12, _arg13, _arg14, _arg15, _local27, _arg17, _local28); bisection(_local19, _local20, _local21, _local22, _local23, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10, _local26, _arg16, _local27); return; }; }; }; var _local29:Number = (focalLength / _arg3); var _local30:Number = (focalLength / _arg8); var _local31:Number = (focalLength / _arg13); drawTriangle((_arg1 * _local29), (_arg2 * _local29), _arg4, _arg5, (_arg6 * _local30), (_arg7 * _local30), _arg9, _arg10, (_arg11 * _local31), (_arg12 * _local31), _arg14, _arg15); } public function set precision(_arg1:Number):void{ if (_precision != _arg1){ _precision = _arg1; markToChange(); }; } public function get precision():Number{ return (_precision); } public function get texture():Texture{ return (_texture); } public function set wireThickness(_arg1:Number):void{ if (_wireThickness != _arg1){ _wireThickness = _arg1; markToChange(); }; } public function get repeat():Boolean{ return (_repeat); } public function set smooth(_arg1:Boolean):void{ if (_smooth != _arg1){ _smooth = _arg1; if (_surface != null){ _surface.addMaterialChangedOperationToScene(); }; }; } override public function clone():Material{ var _local1:TextureMaterial = new TextureMaterial(_texture, _alpha, _repeat, _smooth, _blendMode, _wireThickness, _wireColor, _precision); return (_local1); } public function get wireColor():uint{ return (_wireColor); } private function drawTriangle(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Number, _arg8:Number, _arg9:Number, _arg10:Number, _arg11:Number, _arg12:Number):void{ var _local13:Number = (_arg5 - _arg1); var _local14:Number = (_arg6 - _arg2); var _local15:Number = (_arg9 - _arg1); var _local16:Number = (_arg10 - _arg2); var _local17:Number = (_arg7 - _arg3); var _local18:Number = (_arg8 - _arg4); var _local19:Number = (_arg11 - _arg3); var _local20:Number = (_arg12 - _arg4); var _local21:Number = ((_local17 * _local20) - (_local18 * _local19)); var _local22:Number = _texture._width; var _local23:Number = _texture._height; textureMatrix.a = (((_local20 * _local13) - (_local18 * _local15)) / _local21); textureMatrix.b = (((_local20 * _local14) - (_local18 * _local16)) / _local21); textureMatrix.c = (((_local19 * _local13) - (_local17 * _local15)) / _local21); textureMatrix.d = (((_local19 * _local14) - (_local17 * _local16)) / _local21); textureMatrix.tx = ((((_arg4 - 1) * textureMatrix.c) - (_arg3 * textureMatrix.a)) + _arg1); textureMatrix.ty = ((((_arg4 - 1) * textureMatrix.d) - (_arg3 * textureMatrix.b)) + _arg2); textureMatrix.a = (textureMatrix.a / _local22); textureMatrix.b = (textureMatrix.b / _local22); textureMatrix.c = (textureMatrix.c / _local23); textureMatrix.d = (textureMatrix.d / _local23); gfx.beginBitmapFill(_texture._bitmapData, textureMatrix, _repeat, _smooth); if (_wireThickness >= 0){ gfx.lineStyle(_wireThickness, _wireColor); }; gfx.moveTo(_arg1, _arg2); gfx.lineTo(_arg5, _arg6); gfx.lineTo(_arg9, _arg10); if (_wireThickness >= 0){ gfx.lineTo(_arg1, _arg2); }; } public function get smooth():Boolean{ return (_smooth); } public function get wireThickness():Number{ return (_wireThickness); } public function set texture(_arg1:Texture):void{ if (_texture != _arg1){ _texture = _arg1; markToChange(); }; } override alternativa3d function canDraw(_arg1:PolyPrimitive):Boolean{ return (!((_texture == null))); } public function set repeat(_arg1:Boolean):void{ if (_repeat != _arg1){ _repeat = _arg1; markToChange(); }; } } }//package alternativa.engine3d.materials
Section 37
//TextureMaterialPrecision (alternativa.engine3d.materials.TextureMaterialPrecision) package alternativa.engine3d.materials { public class TextureMaterialPrecision { public static const HIGH:Number = 6; public static const VERY_LOW:Number = 50; public static const VERY_HIGH:Number = 3; public static const BEST:Number = 1; public static const LOW:Number = 25; public static const MEDIUM:Number = 10; public static const NONE:Number = -1; } }//package alternativa.engine3d.materials
Section 38
//WireMaterial (alternativa.engine3d.materials.WireMaterial) package alternativa.engine3d.materials { import flash.display.*; import alternativa.engine3d.core.*; import alternativa.engine3d.display.*; import alternativa.engine3d.*; public class WireMaterial extends SurfaceMaterial { alternativa3d var _color:uint; alternativa3d var _thickness:Number; public function WireMaterial(_arg1:Number=0, _arg2:uint=0, _arg3:Number=1, _arg4:String="normal"){ super(_arg3, _arg4); _color = _arg2; _thickness = _arg1; } public function get thickness():Number{ return (_thickness); } public function get color():uint{ return (_color); } public function set color(_arg1:uint):void{ if (_color != _arg1){ _color = _arg1; markToChange(); }; } override alternativa3d function canDraw(_arg1:PolyPrimitive):Boolean{ return ((_thickness >= 0)); } override alternativa3d function draw(_arg1:Camera3D, _arg2:Skin, _arg3:uint, _arg4:Array):void{ var _local5:uint; var _local6:DrawPoint; var _local8:Number; _arg2.alpha = _alpha; _arg2.blendMode = _blendMode; var _local7:Graphics = _arg2.gfx; if (_arg1._orthographic){ _local7.lineStyle(_thickness, _color); _local6 = _arg4[(_arg3 - 1)]; _local7.moveTo(_local6.x, _local6.y); _local5 = 0; while (_local5 < _arg3) { _local6 = _arg4[_local5]; _local7.lineTo(_local6.x, _local6.y); _local5++; }; } else { _local7.lineStyle(_thickness, _color); _local6 = _arg4[(_arg3 - 1)]; _local8 = (_arg1.focalLength / _local6.z); _local7.moveTo((_local6.x * _local8), (_local6.y * _local8)); _local5 = 0; while (_local5 < _arg3) { _local6 = _arg4[_local5]; _local8 = (_arg1.focalLength / _local6.z); _local7.lineTo((_local6.x * _local8), (_local6.y * _local8)); _local5++; }; }; } override public function clone():Material{ return (new WireMaterial(_thickness, _color, _alpha, _blendMode)); } public function set thickness(_arg1:Number):void{ if (_thickness != _arg1){ _thickness = _arg1; markToChange(); }; } } }//package alternativa.engine3d.materials
Section 39
//Collision (alternativa.engine3d.physics.Collision) package alternativa.engine3d.physics { import alternativa.types.*; import alternativa.engine3d.core.*; public class Collision { public var point:Point3D; public var offset:Number; public var normal:Point3D; public var face:Face; } }//package alternativa.engine3d.physics
Section 40
//CollisionPlane (alternativa.engine3d.physics.CollisionPlane) package alternativa.engine3d.physics { import alternativa.engine3d.core.*; import alternativa.engine3d.*; public class CollisionPlane { public var destinationOffset:Number; public var node:BSPNode; public var infront:Boolean; public var sourceOffset:Number; private static var collector:Array = new Array(); alternativa3d static function destroyCollisionPlane(_arg1:CollisionPlane):void{ _arg1.node = null; collector.push(_arg1); } alternativa3d static function createCollisionPlane(_arg1:BSPNode, _arg2:Boolean, _arg3:Number, _arg4:Number):CollisionPlane{ var _local5:CollisionPlane = collector.pop(); if (_local5 == null){ _local5 = new (CollisionPlane); }; _local5.node = _arg1; _local5.infront = _arg2; _local5.sourceOffset = _arg3; _local5.destinationOffset = _arg4; return (_local5); } } }//package alternativa.engine3d.physics
Section 41
//CollisionSetMode (alternativa.engine3d.physics.CollisionSetMode) package alternativa.engine3d.physics { public class CollisionSetMode { public static const INCLUDE:int = 2; public static const EXCLUDE:int = 1; } }//package alternativa.engine3d.physics
Section 42
//EllipsoidCollider (alternativa.engine3d.physics.EllipsoidCollider) package alternativa.engine3d.physics { import alternativa.types.*; import alternativa.engine3d.core.*; import alternativa.utils.*; import alternativa.engine3d.*; public class EllipsoidCollider { private var collisionDestination:Point3D; private var _scaleY2:Number;// = 1 private var _radiusZ2:Number; public var scene:Scene3D; private var radiusVector:Point3D; private var localCollisionPlanePoint:Point3D; public var offsetThreshold:Number;// = 0.0001 private var _radius2:Number; private var _scaleZ2:Number;// = 1 private var currentDisplacement:Point3D; private var _radius:Number;// = 100 private var collision:Collision; private var collisionNormal:Point3D; private var collisionPrimitivePoint:Point3D; private var p1:Point3D; private var collisionPrimitiveNearestLengthSqr:Number; private var _radiusX:Number; private var _radiusY:Number; private var _radiusZ:Number; private var _radiusX2:Number; private var collisionPrimitiveNearest:PolyPrimitive; private var collisionPrimitive:PolyPrimitive; private var useSimpleAlgorithm:Boolean;// = true public var collisionSet:Set; private var _scaleX2:Number;// = 1 private var collisionPlanePoint:Point3D; private var collisionPlanes:Array; private var _radiusY2:Number; private var collisionRadius:Number; private var collisionOffset:Number; private var _scaleX:Number;// = 1 private var _scaleY:Number;// = 1 private var _scaleZ:Number;// = 1 private var collisionSource:Point3D; private var currentCoords:Point3D; private var _collisionSetMode:int;// = 1 private var p2:Point3D; private var collisionPoint:Point3D; private static const MAX_COLLISIONS:uint = 50; public function EllipsoidCollider(_arg1:Scene3D=null, _arg2:Number=100, _arg3:Number=100, _arg4:Number=100){ _radius2 = (_radius * _radius); _radiusX = _radius; _radiusY = _radius; _radiusZ = _radius; _radiusX2 = (_radiusX * _radiusX); _radiusY2 = (_radiusY * _radiusY); _radiusZ2 = (_radiusZ * _radiusZ); currentDisplacement = new Point3D(); collisionDestination = new Point3D(); collisionPlanes = new Array(); collisionPlanePoint = new Point3D(); collisionPrimitivePoint = new Point3D(); collisionNormal = new Point3D(); collisionPoint = new Point3D(); currentCoords = new Point3D(); collision = new Collision(); radiusVector = new Point3D(); p1 = new Point3D(); p2 = new Point3D(); localCollisionPlanePoint = new Point3D(); super(); this.scene = _arg1; this.radiusX = _arg2; this.radiusY = _arg3; this.radiusZ = _arg4; } public function calculateDestination(_arg1:Point3D, _arg2:Point3D, _arg3:Point3D):void{ if ((((((((((((_arg2.x < offsetThreshold)) && ((_arg2.x > -(offsetThreshold))))) && ((_arg2.y < offsetThreshold)))) && ((_arg2.y > -(offsetThreshold))))) && ((_arg2.z < offsetThreshold)))) && ((_arg2.z > -(offsetThreshold))))){ _arg3.x = _arg1.x; _arg3.y = _arg1.y; _arg3.z = _arg1.z; return; }; currentCoords.x = _arg1.x; currentCoords.y = _arg1.y; currentCoords.z = _arg1.z; currentDisplacement.x = _arg2.x; currentDisplacement.y = _arg2.y; currentDisplacement.z = _arg2.z; _arg3.x = (_arg1.x + currentDisplacement.x); _arg3.y = (_arg1.y + currentDisplacement.y); _arg3.z = (_arg1.z + currentDisplacement.z); if (useSimpleAlgorithm){ calculateDestinationS(_arg1, _arg3); } else { calculateDestinationE(_arg1, _arg3); }; } public function get radiusX():Number{ return (_radiusX); } public function get radiusY():Number{ return (_radiusY); } public function get radiusZ():Number{ return (_radiusZ); } private function calculateScales():void{ _radius = _radiusX; if (_radiusY > _radius){ _radius = _radiusY; }; if (_radiusZ > _radius){ _radius = _radiusZ; }; _radius2 = (_radius * _radius); _scaleX = (_radiusX / _radius); _scaleY = (_radiusY / _radius); _scaleZ = (_radiusZ / _radius); _scaleX2 = (_scaleX * _scaleX); _scaleY2 = (_scaleY * _scaleY); _scaleZ2 = (_scaleZ * _scaleZ); useSimpleAlgorithm = (((_radiusX == _radiusY)) && ((_radiusX == _radiusZ))); } public function getCollision(_arg1:Point3D, _arg2:Point3D, _arg3:Collision):Boolean{ var _local4:CollisionPlane; if (scene == null){ return (false); }; collisionSource = _arg1; currentDisplacement.x = _arg2.x; currentDisplacement.y = _arg2.y; currentDisplacement.z = _arg2.z; collisionDestination.x = (collisionSource.x + currentDisplacement.x); collisionDestination.y = (collisionSource.y + currentDisplacement.y); collisionDestination.z = (collisionSource.z + currentDisplacement.z); collectPotentialCollisionPlanes(scene.bsp); collisionPlanes.sortOn("sourceOffset", (Array.NUMERIC | Array.DESCENDING)); if (useSimpleAlgorithm){ while ((_local4 = collisionPlanes.pop()) != null) { if (collisionPrimitive == null){ calculateCollisionWithPlaneS(_local4); }; CollisionPlane.destroyCollisionPlane(_local4); }; } else { while ((_local4 = collisionPlanes.pop()) != null) { if (collisionPrimitive == null){ calculateCollisionWithPlaneE(_local4); }; CollisionPlane.destroyCollisionPlane(_local4); }; }; var _local5 = !((collisionPrimitive == null)); if (_local5){ _arg3.face = collisionPrimitive.face; _arg3.normal = collisionNormal; _arg3.offset = collisionOffset; _arg3.point = collisionPoint; }; collisionPrimitive = null; collisionSource = null; return (_local5); } public function set radiusY(_arg1:Number):void{ _radiusY = ((_arg1 >= 0)) ? _arg1 : -(_arg1); _radiusY2 = (_radiusY * _radiusY); calculateScales(); } public function set radiusZ(_arg1:Number):void{ _radiusZ = ((_arg1 >= 0)) ? _arg1 : -(_arg1); _radiusZ2 = (_radiusZ * _radiusZ); calculateScales(); } public function get collisionSetMode():int{ return (_collisionSetMode); } public function set radiusX(_arg1:Number):void{ _radiusX = ((_arg1 >= 0)) ? _arg1 : -(_arg1); _radiusX2 = (_radiusX * _radiusX); calculateScales(); } public function set collisionSetMode(_arg1:int):void{ if (((!((_arg1 == CollisionSetMode.EXCLUDE))) && (!((_arg1 == CollisionSetMode.INCLUDE))))){ throw (ArgumentError((ObjectUtils.getClassName(this) + ".collisionSetMode invalid value"))); }; _collisionSetMode = _arg1; } private function calculateDestinationS(_arg1:Point3D, _arg2:Point3D):void{ var _local4:Boolean; var _local5:*; var _local3:uint; do { _local4 = getCollision(currentCoords, currentDisplacement, collision); } while (!(_local4)); if (_local3 == MAX_COLLISIONS){ _arg2.x = _arg1.x; _arg2.y = _arg1.y; _arg2.z = _arg1.z; }; } private function collectPotentialCollisionPlanes(_arg1:BSPNode):void{ var _local4:CollisionPlane; if (_arg1 == null){ return; }; var _local2:Number = ((((collisionSource.x * _arg1.normal.x) + (collisionSource.y * _arg1.normal.y)) + (collisionSource.z * _arg1.normal.z)) - _arg1.offset); var _local3:Number = ((((collisionDestination.x * _arg1.normal.x) + (collisionDestination.y * _arg1.normal.y)) + (collisionDestination.z * _arg1.normal.z)) - _arg1.offset); if (_local2 >= 0){ collectPotentialCollisionPlanes(_arg1.front); if ((((_local3 < _radius)) && (!(_arg1.sprited)))){ _local4 = CollisionPlane.createCollisionPlane(_arg1, true, _local2, _local3); collisionPlanes.push(_local4); collectPotentialCollisionPlanes(_arg1.back); }; } else { collectPotentialCollisionPlanes(_arg1.back); if (_local3 > -(_radius)){ if (_arg1.backPrimitives != null){ _local4 = CollisionPlane.createCollisionPlane(_arg1, false, -(_local2), -(_local3)); collisionPlanes.push(_local4); }; collectPotentialCollisionPlanes(_arg1.front); }; }; } private function calculateDestinationE(_arg1:Point3D, _arg2:Point3D):void{ var _local4:Boolean; var _local5:*; var _local3:uint; do { _local4 = getCollision(currentCoords, currentDisplacement, collision); } while (!(_local4)); if (_local3 == MAX_COLLISIONS){ _arg2.x = _arg1.x; _arg2.y = _arg1.y; _arg2.z = _arg1.z; }; } private function calculateCollisionWithPrimitiveS(_arg1:PolyPrimitive):void{ var _local7:Point3D; var _local8:Point3D; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local2:uint = _arg1.num; var _local3:Array = _arg1.points; var _local4:Point3D = _arg1.face.globalNormal; var _local5:Boolean; var _local6:uint; while (_local6 < _local2) { _local7 = _local3[_local6]; _local8 = _local3[((_local6)<(_local2 - 1)) ? (_local6 + 1) : 0]; _local9 = (_local8.x - _local7.x); _local10 = (_local8.y - _local7.y); _local11 = (_local8.z - _local7.z); _local12 = (collisionPlanePoint.x - _local7.x); _local13 = (collisionPlanePoint.y - _local7.y); _local14 = (collisionPlanePoint.z - _local7.z); _local15 = ((_local13 * _local11) - (_local14 * _local10)); _local16 = ((_local14 * _local9) - (_local12 * _local11)); _local17 = ((_local12 * _local10) - (_local13 * _local9)); if ((((_local15 * _local4.x) + (_local16 * _local4.y)) + (_local17 * _local4.z)) > 0){ _local5 = false; _local18 = (((_local9 * _local9) + (_local10 * _local10)) + (_local11 * _local11)); _local19 = ((((_local15 * _local15) + (_local16 * _local16)) + (_local17 * _local17)) / _local18); if (_local19 < collisionPrimitiveNearestLengthSqr){ _local20 = Math.sqrt(_local18); _local21 = (_local9 / _local20); _local22 = (_local10 / _local20); _local23 = (_local11 / _local20); _local24 = (((_local21 * _local12) + (_local22 * _local13)) + (_local23 * _local14)); if (_local24 < 0){ _local25 = (((_local12 * _local12) + (_local13 * _local13)) + (_local14 * _local14)); if (_local25 < collisionPrimitiveNearestLengthSqr){ collisionPrimitiveNearestLengthSqr = _local25; collisionPrimitivePoint.x = _local7.x; collisionPrimitivePoint.y = _local7.y; collisionPrimitivePoint.z = _local7.z; collisionPrimitiveNearest = _arg1; }; } else { if (_local24 > _local20){ _local12 = (collisionPlanePoint.x - _local8.x); _local13 = (collisionPlanePoint.y - _local8.y); _local14 = (collisionPlanePoint.z - _local8.z); _local25 = (((_local12 * _local12) + (_local13 * _local13)) + (_local14 * _local14)); if (_local25 < collisionPrimitiveNearestLengthSqr){ collisionPrimitiveNearestLengthSqr = _local25; collisionPrimitivePoint.x = _local8.x; collisionPrimitivePoint.y = _local8.y; collisionPrimitivePoint.z = _local8.z; collisionPrimitiveNearest = _arg1; }; } else { collisionPrimitiveNearestLengthSqr = _local19; collisionPrimitivePoint.x = (_local7.x + (_local21 * _local24)); collisionPrimitivePoint.y = (_local7.y + (_local22 * _local24)); collisionPrimitivePoint.z = (_local7.z + (_local23 * _local24)); collisionPrimitiveNearest = _arg1; }; }; }; }; _local6++; }; if (_local5){ collisionPrimitive = _arg1; }; } private function calculateCollisionWithPrimitiveE(_arg1:PolyPrimitive):void{ var _local6:Point3D; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local25:Number; var _local2:uint = _arg1.num; var _local3:Array = _arg1.points; var _local4:Point3D = _arg1.face.globalNormal; var _local5:Boolean; var _local7:Point3D = _local3[(_local2 - 1)]; p2.x = ((_local7.x - currentCoords.x) / _scaleX); p2.y = ((_local7.y - currentCoords.y) / _scaleY); p2.z = ((_local7.z - currentCoords.z) / _scaleZ); localCollisionPlanePoint.x = ((collisionPlanePoint.x - currentCoords.x) / _scaleX); localCollisionPlanePoint.y = ((collisionPlanePoint.y - currentCoords.y) / _scaleY); localCollisionPlanePoint.z = ((collisionPlanePoint.z - currentCoords.z) / _scaleZ); var _local8:uint; while (_local8 < _local2) { _local6 = _local7; _local7 = _local3[_local8]; p1.x = p2.x; p1.y = p2.y; p1.z = p2.z; p2.x = ((_local7.x - currentCoords.x) / _scaleX); p2.y = ((_local7.y - currentCoords.y) / _scaleY); p2.z = ((_local7.z - currentCoords.z) / _scaleZ); _local9 = (p2.x - p1.x); _local10 = (p2.y - p1.y); _local11 = (p2.z - p1.z); _local12 = (localCollisionPlanePoint.x - p1.x); _local13 = (localCollisionPlanePoint.y - p1.y); _local14 = (localCollisionPlanePoint.z - p1.z); _local15 = ((_local13 * _local11) - (_local14 * _local10)); _local16 = ((_local14 * _local9) - (_local12 * _local11)); _local17 = ((_local12 * _local10) - (_local13 * _local9)); if ((((_local15 * _local4.x) + (_local16 * _local4.y)) + (_local17 * _local4.z)) > 0){ _local5 = false; _local18 = (((_local9 * _local9) + (_local10 * _local10)) + (_local11 * _local11)); _local19 = ((((_local15 * _local15) + (_local16 * _local16)) + (_local17 * _local17)) / _local18); if (_local19 < collisionPrimitiveNearestLengthSqr){ _local20 = Math.sqrt(_local18); _local21 = (_local9 / _local20); _local22 = (_local10 / _local20); _local23 = (_local11 / _local20); _local24 = (((_local21 * _local12) + (_local22 * _local13)) + (_local23 * _local14)); if (_local24 < 0){ _local25 = (((_local12 * _local12) + (_local13 * _local13)) + (_local14 * _local14)); if (_local25 < collisionPrimitiveNearestLengthSqr){ collisionPrimitiveNearestLengthSqr = _local25; collisionPrimitivePoint.x = p1.x; collisionPrimitivePoint.y = p1.y; collisionPrimitivePoint.z = p1.z; collisionPrimitiveNearest = _arg1; }; } else { if (_local24 > _local20){ _local12 = (localCollisionPlanePoint.x - p2.x); _local13 = (localCollisionPlanePoint.y - p2.y); _local14 = (localCollisionPlanePoint.z - p2.z); _local25 = (((_local12 * _local12) + (_local13 * _local13)) + (_local14 * _local14)); if (_local25 < collisionPrimitiveNearestLengthSqr){ collisionPrimitiveNearestLengthSqr = _local25; collisionPrimitivePoint.x = p2.x; collisionPrimitivePoint.y = p2.y; collisionPrimitivePoint.z = p2.z; collisionPrimitiveNearest = _arg1; }; } else { collisionPrimitiveNearestLengthSqr = _local19; collisionPrimitivePoint.x = (p1.x + (_local21 * _local24)); collisionPrimitivePoint.y = (p1.y + (_local22 * _local24)); collisionPrimitivePoint.z = (p1.z + (_local23 * _local24)); collisionPrimitiveNearest = _arg1; }; }; }; }; _local8++; }; if (_local5){ collisionPrimitive = _arg1; }; } private function calculateCollisionWithPlaneE(_arg1:CollisionPlane):void{ var _local14:*; var _local15:Number; var _local16:Boolean; var _local17:Number; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local24:Number; var _local2:Number = _arg1.node.normal.x; var _local3:Number = _arg1.node.normal.y; var _local4:Number = _arg1.node.normal.z; var _local5:Number = (((currentDisplacement.x * _local2) + (currentDisplacement.y * _local3)) + (currentDisplacement.z * _local4)); if (_arg1.infront){ _local5 = -(_local5); }; if (_local5 < 0){ return; }; var _local6:Number = (_radius / Math.sqrt(((((_local2 * _local2) * _scaleX2) + ((_local3 * _local3) * _scaleY2)) + ((_local4 * _local4) * _scaleZ2)))); var _local7:Number = ((_local6 * _local2) * _scaleX2); var _local8:Number = ((_local6 * _local3) * _scaleY2); var _local9:Number = ((_local6 * _local4) * _scaleZ2); var _local10:Number = (collisionSource.x + _local7); var _local11:Number = (collisionSource.y + _local8); var _local12:Number = (collisionSource.z + _local9); var _local13:Number = ((((_local10 * _local2) + (_local11 * _local3)) + (_local12 * _local4)) - _arg1.node.offset); if (!_arg1.infront){ _local13 = -(_local13); }; if (_local13 > _arg1.sourceOffset){ _local10 = (collisionSource.x - _local7); _local11 = (collisionSource.y - _local8); _local12 = (collisionSource.z - _local9); _local13 = ((((_local10 * _local2) + (_local11 * _local3)) + (_local12 * _local4)) - _arg1.node.offset); if (!_arg1.infront){ _local13 = -(_local13); }; }; if (_local13 > _local5){ return; }; if (_local13 <= 0){ if (_arg1.infront){ collisionPlanePoint.x = (_local10 - (_local2 * _local13)); collisionPlanePoint.y = (_local11 - (_local3 * _local13)); collisionPlanePoint.z = (_local12 - (_local4 * _local13)); } else { collisionPlanePoint.x = (_local10 + (_local2 * _local13)); collisionPlanePoint.y = (_local11 + (_local3 * _local13)); collisionPlanePoint.z = (_local12 + (_local4 * _local13)); }; } else { _local15 = (_local13 / _local5); collisionPlanePoint.x = (_local10 + (currentDisplacement.x * _local15)); collisionPlanePoint.y = (_local11 + (currentDisplacement.y * _local15)); collisionPlanePoint.z = (_local12 + (currentDisplacement.z * _local15)); }; collisionPrimitiveNearestLengthSqr = Number.MAX_VALUE; collisionPrimitiveNearest = null; if (_arg1.infront){ _local14 = _arg1.node.primitive; if (_local14 != null){ if ((((((_collisionSetMode == CollisionSetMode.EXCLUDE)) && ((((collisionSet == null)) || (!(((collisionSet[_local14.face._mesh]) || (collisionSet[_local14.face._surface])))))))) || ((((((_collisionSetMode == CollisionSetMode.INCLUDE)) && (!((collisionSet == null))))) && (((collisionSet[_local14.face._mesh]) || (collisionSet[_local14.face._surface]))))))){ calculateCollisionWithPrimitiveE(_local14); }; } else { for (_local14 in _arg1.node.frontPrimitives) { if ((((((_collisionSetMode == CollisionSetMode.EXCLUDE)) && ((((collisionSet == null)) || (!(((collisionSet[_local14.face._mesh]) || (collisionSet[_local14.face._surface])))))))) || ((((((_collisionSetMode == CollisionSetMode.INCLUDE)) && (!((collisionSet == null))))) && (((collisionSet[_local14.face._mesh]) || (collisionSet[_local14.face._surface]))))))){ calculateCollisionWithPrimitiveE(_local14); if (collisionPrimitive != null){ break; }; }; }; }; } else { for (_local14 in _arg1.node.backPrimitives) { if ((((((_collisionSetMode == CollisionSetMode.EXCLUDE)) && ((((collisionSet == null)) || (!(((collisionSet[_local14.face._mesh]) || (collisionSet[_local14.face._surface])))))))) || ((((((_collisionSetMode == CollisionSetMode.INCLUDE)) && (!((collisionSet == null))))) && (((collisionSet[_local14.face._mesh]) || (collisionSet[_local14.face._surface]))))))){ calculateCollisionWithPrimitiveE(_local14); if (collisionPrimitive != null){ break; }; }; }; }; if (collisionPrimitive != null){ if (_arg1.infront){ collisionNormal.x = _local2; collisionNormal.y = _local3; collisionNormal.z = _local4; collisionOffset = _arg1.node.offset; } else { collisionNormal.x = -(_local2); collisionNormal.y = -(_local3); collisionNormal.z = -(_local4); collisionOffset = -(_arg1.node.offset); }; collisionRadius = (((_local7 * collisionNormal.x) + (_local8 * collisionNormal.y)) + (_local9 * collisionNormal.z)); if (collisionRadius < 0){ collisionRadius = -(collisionRadius); }; radiusVector.x = (_local10 - collisionSource.x); radiusVector.y = (_local11 - collisionSource.y); radiusVector.z = (_local12 - collisionSource.z); collisionPoint.x = collisionPlanePoint.x; collisionPoint.y = collisionPlanePoint.y; collisionPoint.z = collisionPlanePoint.z; } else { _local10 = collisionPrimitivePoint.x; _local11 = collisionPrimitivePoint.y; _local12 = collisionPrimitivePoint.z; _local17 = (((_local10 * _local10) + (_local11 * _local11)) + (_local12 * _local12)); if (_local17 < _radius2){ _local6 = (_radius / Math.sqrt(_local17)); _local10 = (_local10 * (_local6 * _scaleX)); _local11 = (_local11 * (_local6 * _scaleY)); _local12 = (_local12 * (_local6 * _scaleZ)); _local16 = true; } else { _local18 = (-(currentDisplacement.x) / _scaleX); _local19 = (-(currentDisplacement.y) / _scaleY); _local20 = (-(currentDisplacement.z) / _scaleZ); _local21 = (((_local18 * _local18) + (_local19 * _local19)) + (_local20 * _local20)); _local22 = (2 * (((_local10 * _local18) + (_local11 * _local19)) + (_local12 * _local20))); _local23 = (_local17 - _radius2); _local24 = ((_local22 * _local22) - ((4 * _local21) * _local23)); if (_local24 >= 0){ _local15 = ((-0.5 * (_local22 + Math.sqrt(_local24))) / _local21); if ((((_local15 >= 0)) && ((_local15 <= 1)))){ _local10 = ((_local10 + (_local15 * _local18)) * _scaleX); _local11 = ((_local11 + (_local15 * _local19)) * _scaleY); _local12 = ((_local12 + (_local15 * _local20)) * _scaleZ); _local16 = true; }; }; }; if (_local16){ collisionNormal.x = (-(_local10) / _scaleX2); collisionNormal.y = (-(_local11) / _scaleY2); collisionNormal.z = (-(_local12) / _scaleZ2); collisionNormal.normalize(); collisionRadius = (((_local10 * collisionNormal.x) + (_local11 * collisionNormal.y)) + (_local12 * collisionNormal.z)); if (collisionRadius < 0){ collisionRadius = -(collisionRadius); }; radiusVector.x = _local10; radiusVector.y = _local11; radiusVector.z = _local12; collisionPoint.x = ((collisionPrimitivePoint.x * _scaleX) + currentCoords.x); collisionPoint.y = ((collisionPrimitivePoint.y * _scaleY) + currentCoords.y); collisionPoint.z = ((collisionPrimitivePoint.z * _scaleZ) + currentCoords.z); collisionOffset = (((collisionPoint.x * collisionNormal.x) + (collisionPoint.y * collisionNormal.y)) + (collisionPoint.z * collisionNormal.z)); collisionPrimitive = collisionPrimitiveNearest; }; }; } private function calculateCollisionWithPlaneS(_arg1:CollisionPlane):void{ var _local3:*; var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; var _local15:Number; var _local16:Number; collisionPlanePoint.copy(collisionSource); var _local2:Point3D = _arg1.node.normal; if (_arg1.sourceOffset <= _radius){ if (_arg1.infront){ collisionPlanePoint.x = (collisionPlanePoint.x - (_local2.x * _arg1.sourceOffset)); collisionPlanePoint.y = (collisionPlanePoint.y - (_local2.y * _arg1.sourceOffset)); collisionPlanePoint.z = (collisionPlanePoint.z - (_local2.z * _arg1.sourceOffset)); } else { collisionPlanePoint.x = (collisionPlanePoint.x + (_local2.x * _arg1.sourceOffset)); collisionPlanePoint.y = (collisionPlanePoint.y + (_local2.y * _arg1.sourceOffset)); collisionPlanePoint.z = (collisionPlanePoint.z + (_local2.z * _arg1.sourceOffset)); }; } else { _local4 = ((_arg1.sourceOffset - _radius) / (_arg1.sourceOffset - _arg1.destinationOffset)); collisionPlanePoint.x = (collisionSource.x + (currentDisplacement.x * _local4)); collisionPlanePoint.y = (collisionSource.y + (currentDisplacement.y * _local4)); collisionPlanePoint.z = (collisionSource.z + (currentDisplacement.z * _local4)); if (_arg1.infront){ collisionPlanePoint.x = (collisionPlanePoint.x - (_local2.x * _radius)); collisionPlanePoint.y = (collisionPlanePoint.y - (_local2.y * _radius)); collisionPlanePoint.z = (collisionPlanePoint.z - (_local2.z * _radius)); } else { collisionPlanePoint.x = (collisionPlanePoint.x + (_local2.x * _radius)); collisionPlanePoint.y = (collisionPlanePoint.y + (_local2.y * _radius)); collisionPlanePoint.z = (collisionPlanePoint.z + (_local2.z * _radius)); }; }; collisionPrimitiveNearestLengthSqr = Number.MAX_VALUE; collisionPrimitiveNearest = null; if (_arg1.infront){ _local3 = _arg1.node.primitive; if (_local3 != null){ if ((((((_collisionSetMode == CollisionSetMode.EXCLUDE)) && ((((collisionSet == null)) || (!(((collisionSet[_local3.face._mesh]) || (collisionSet[_local3.face._surface])))))))) || ((((((_collisionSetMode == CollisionSetMode.INCLUDE)) && (!((collisionSet == null))))) && (((collisionSet[_local3.face._mesh]) || (collisionSet[_local3.face._surface]))))))){ calculateCollisionWithPrimitiveS(_arg1.node.primitive); }; } else { for (_local3 in _arg1.node.frontPrimitives) { if ((((((_collisionSetMode == CollisionSetMode.EXCLUDE)) && ((((collisionSet == null)) || (!(((collisionSet[_local3.face._mesh]) || (collisionSet[_local3.face._surface])))))))) || ((((((_collisionSetMode == CollisionSetMode.INCLUDE)) && (!((collisionSet == null))))) && (((collisionSet[_local3.face._mesh]) || (collisionSet[_local3.face._surface]))))))){ calculateCollisionWithPrimitiveS(_local3); if (collisionPrimitive != null){ break; }; }; }; }; } else { for (_local3 in _arg1.node.backPrimitives) { if ((((((_collisionSetMode == CollisionSetMode.EXCLUDE)) && ((((collisionSet == null)) || (!(((collisionSet[_local3.face._mesh]) || (collisionSet[_local3.face._surface])))))))) || ((((((_collisionSetMode == CollisionSetMode.INCLUDE)) && (!((collisionSet == null))))) && (((collisionSet[_local3.face._mesh]) || (collisionSet[_local3.face._surface]))))))){ calculateCollisionWithPrimitiveS(_local3); if (collisionPrimitive != null){ break; }; }; }; }; if (collisionPrimitive != null){ if (_arg1.infront){ collisionNormal.x = _local2.x; collisionNormal.y = _local2.y; collisionNormal.z = _local2.z; collisionOffset = _arg1.node.offset; } else { collisionNormal.x = -(_local2.x); collisionNormal.y = -(_local2.y); collisionNormal.z = -(_local2.z); collisionOffset = -(_arg1.node.offset); }; collisionPoint.x = collisionPlanePoint.x; collisionPoint.y = collisionPlanePoint.y; collisionPoint.z = collisionPlanePoint.z; } else { _local5 = (collisionSource.x - collisionPrimitivePoint.x); _local6 = (collisionSource.y - collisionPrimitivePoint.y); _local7 = (collisionSource.z - collisionPrimitivePoint.z); if ((((_local5 * currentDisplacement.x) + (_local6 * currentDisplacement.y)) + (_local7 * currentDisplacement.z)) <= 0){ _local8 = Math.sqrt((((currentDisplacement.x * currentDisplacement.x) + (currentDisplacement.y * currentDisplacement.y)) + (currentDisplacement.z * currentDisplacement.z))); _local9 = (-(currentDisplacement.x) / _local8); _local10 = (-(currentDisplacement.y) / _local8); _local11 = (-(currentDisplacement.z) / _local8); _local12 = (((_local5 * _local5) + (_local6 * _local6)) + (_local7 * _local7)); _local13 = (((_local5 * _local9) + (_local6 * _local10)) + (_local7 * _local11)); _local14 = ((_radius2 - _local12) + (_local13 * _local13)); if (_local14 > 0){ _local15 = (_local13 - Math.sqrt(_local14)); if (_local15 < _local8){ collisionPoint.x = collisionPrimitivePoint.x; collisionPoint.y = collisionPrimitivePoint.y; collisionPoint.z = collisionPrimitivePoint.z; _local16 = Math.sqrt(_local12); collisionNormal.x = (_local5 / _local16); collisionNormal.y = (_local6 / _local16); collisionNormal.z = (_local7 / _local16); collisionOffset = (((collisionPoint.x * collisionNormal.x) + (collisionPoint.y * collisionNormal.y)) + (collisionPoint.z * collisionNormal.z)); collisionPrimitive = collisionPrimitiveNearest; }; }; }; }; } } }//package alternativa.engine3d.physics
Section 43
//Box (alternativa.engine3d.primitives.Box) package alternativa.engine3d.primitives { import flash.geom.*; import alternativa.engine3d.core.*; public class Box extends Mesh { public function Box(_arg1:Number=100, _arg2:Number=100, _arg3:Number=100, _arg4:uint=1, _arg5:uint=1, _arg6:uint=1, _arg7:Boolean=false, _arg8:Boolean=false){ var _local15:int; var _local16:int; var _local17:int; var _local27:String; var _local28:Point; var _local29:Point; super(); if ((((((_arg4 == 0)) || ((_arg5 == 0)))) || ((_arg6 == 0)))){ return; }; _arg1 = ((_arg1)<0) ? 0 : _arg1; _arg2 = ((_arg2)<0) ? 0 : _arg2; _arg3 = ((_arg3)<0) ? 0 : _arg3; var _local9:Number = (_arg1 / 2); var _local10:Number = (_arg2 / 2); var _local11:Number = (_arg3 / 2); var _local12:Number = (_arg1 / _arg4); var _local13:Number = (_arg2 / _arg5); var _local14:Number = (_arg3 / _arg6); _local15 = 0; while (_local15 <= _arg4) { _local16 = 0; while (_local16 <= _arg5) { _local17 = 0; while (_local17 <= _arg6) { if ((((((((((((_local15 == 0)) || ((_local15 == _arg4)))) || ((_local16 == 0)))) || ((_local16 == _arg5)))) || ((_local17 == 0)))) || ((_local17 == _arg6)))){ createVertex(((_local15 * _local12) - _local9), ((_local16 * _local13) - _local10), ((_local17 * _local14) - _local11), ((((_local15 + "_") + _local16) + "_") + _local17)); }; _local17++; }; _local16++; }; _local15++; }; var _local18:Surface = createSurface(null, "front"); var _local19:Surface = createSurface(null, "back"); var _local20:Surface = createSurface(null, "left"); var _local21:Surface = createSurface(null, "right"); var _local22:Surface = createSurface(null, "top"); var _local23:Surface = createSurface(null, "bottom"); var _local24:Number = (1 / _arg4); var _local25:Number = (1 / _arg5); var _local26:Number = (1 / _arg6); _local16 = 0; while (_local16 < _arg5) { _local15 = 0; while (_local15 < _arg4) { _local27 = ((("top_" + _local15) + "_") + _local16); if (_arg7){ if (_arg8){ _local28 = new Point((_local15 * _local24), ((_arg5 - _local16) * _local25)); _local29 = new Point(((_local15 + 1) * _local24), (((_arg5 - _local16) - 1) * _local25)); createFace([((((_local15 + "_") + _local16) + "_") + _arg6), ((((_local15 + "_") + (_local16 + 1)) + "_") + _arg6), (((((_local15 + 1) + "_") + (_local16 + 1)) + "_") + _arg6)], (_local27 + ":1")); setUVsToFace(_local28, new Point((_local15 * _local24), (((_arg5 - _local16) - 1) * _local25)), _local29, (_local27 + ":1")); createFace([(((((_local15 + 1) + "_") + (_local16 + 1)) + "_") + _arg6), (((((_local15 + 1) + "_") + _local16) + "_") + _arg6), ((((_local15 + "_") + _local16) + "_") + _arg6)], (_local27 + ":0")); setUVsToFace(_local29, new Point(((_local15 + 1) * _local24), ((_arg5 - _local16) * _local25)), _local28, (_local27 + ":0")); } else { createFace([((((_local15 + "_") + _local16) + "_") + _arg6), ((((_local15 + "_") + (_local16 + 1)) + "_") + _arg6), (((((_local15 + 1) + "_") + (_local16 + 1)) + "_") + _arg6), (((((_local15 + 1) + "_") + _local16) + "_") + _arg6)], _local27); setUVsToFace(new Point((_local15 * _local24), ((_arg5 - _local16) * _local25)), new Point((_local15 * _local24), (((_arg5 - _local16) - 1) * _local25)), new Point(((_local15 + 1) * _local24), (((_arg5 - _local16) - 1) * _local25)), _local27); }; } else { if (_arg8){ _local28 = new Point((_local15 * _local24), (_local16 * _local25)); _local29 = new Point(((_local15 + 1) * _local24), ((_local16 + 1) * _local25)); createFace([((((_local15 + "_") + _local16) + "_") + _arg6), (((((_local15 + 1) + "_") + _local16) + "_") + _arg6), (((((_local15 + 1) + "_") + (_local16 + 1)) + "_") + _arg6)], (_local27 + ":0")); setUVsToFace(_local28, new Point(((_local15 + 1) * _local24), (_local16 * _local25)), _local29, (_local27 + ":0")); createFace([(((((_local15 + 1) + "_") + (_local16 + 1)) + "_") + _arg6), ((((_local15 + "_") + (_local16 + 1)) + "_") + _arg6), ((((_local15 + "_") + _local16) + "_") + _arg6)], (_local27 + ":1")); setUVsToFace(_local29, new Point((_local15 * _local24), ((_local16 + 1) * _local25)), _local28, (_local27 + ":1")); } else { createFace([((((_local15 + "_") + _local16) + "_") + _arg6), (((((_local15 + 1) + "_") + _local16) + "_") + _arg6), (((((_local15 + 1) + "_") + (_local16 + 1)) + "_") + _arg6), ((((_local15 + "_") + (_local16 + 1)) + "_") + _arg6)], _local27); setUVsToFace(new Point((_local15 * _local24), (_local16 * _local25)), new Point(((_local15 + 1) * _local24), (_local16 * _local25)), new Point(((_local15 + 1) * _local24), ((_local16 + 1) * _local25)), _local27); }; }; if (_arg8){ _local22.addFace((_local27 + ":0")); _local22.addFace((_local27 + ":1")); } else { _local22.addFace(_local27); }; _local15++; }; _local16++; }; _local16 = 0; while (_local16 < _arg5) { _local15 = 0; while (_local15 < _arg4) { _local27 = ((("bottom_" + _local15) + "_") + _local16); if (_arg7){ if (_arg8){ _local28 = new Point(((_arg4 - _local15) * _local24), ((_arg5 - _local16) * _local25)); _local29 = new Point((((_arg4 - _local15) - 1) * _local24), (((_arg5 - _local16) - 1) * _local25)); createFace([((((_local15 + "_") + _local16) + "_") + 0), (((((_local15 + 1) + "_") + _local16) + "_") + 0), (((((_local15 + 1) + "_") + (_local16 + 1)) + "_") + 0)], (_local27 + ":0")); setUVsToFace(_local28, new Point((((_arg4 - _local15) - 1) * _local24), ((_arg5 - _local16) * _local25)), _local29, (_local27 + ":0")); createFace([(((((_local15 + 1) + "_") + (_local16 + 1)) + "_") + 0), ((((_local15 + "_") + (_local16 + 1)) + "_") + 0), ((((_local15 + "_") + _local16) + "_") + 0)], (_local27 + ":1")); setUVsToFace(_local29, new Point(((_arg4 - _local15) * _local24), (((_arg5 - _local16) - 1) * _local25)), _local28, (_local27 + ":1")); } else { createFace([((((_local15 + "_") + _local16) + "_") + 0), (((((_local15 + 1) + "_") + _local16) + "_") + 0), (((((_local15 + 1) + "_") + (_local16 + 1)) + "_") + 0), ((((_local15 + "_") + (_local16 + 1)) + "_") + 0)], _local27); setUVsToFace(new Point(((_arg4 - _local15) * _local24), ((_arg5 - _local16) * _local25)), new Point((((_arg4 - _local15) - 1) * _local24), ((_arg5 - _local16) * _local25)), new Point((((_arg4 - _local15) - 1) * _local24), (((_arg5 - _local16) - 1) * _local25)), _local27); }; } else { if (_arg8){ _local28 = new Point(((_arg4 - _local15) * _local24), (_local16 * _local25)); _local29 = new Point((((_arg4 - _local15) - 1) * _local24), ((_local16 + 1) * _local25)); createFace([((((_local15 + "_") + _local16) + "_") + 0), ((((_local15 + "_") + (_local16 + 1)) + "_") + 0), (((((_local15 + 1) + "_") + (_local16 + 1)) + "_") + 0)], (_local27 + ":1")); setUVsToFace(_local28, new Point(((_arg4 - _local15) * _local24), ((_local16 + 1) * _local25)), _local29, (_local27 + ":1")); createFace([(((((_local15 + 1) + "_") + (_local16 + 1)) + "_") + 0), (((((_local15 + 1) + "_") + _local16) + "_") + 0), ((((_local15 + "_") + _local16) + "_") + 0)], (_local27 + ":0")); setUVsToFace(_local29, new Point((((_arg4 - _local15) - 1) * _local24), (_local16 * _local25)), _local28, (_local27 + ":0")); } else { createFace([((((_local15 + "_") + _local16) + "_") + 0), ((((_local15 + "_") + (_local16 + 1)) + "_") + 0), (((((_local15 + 1) + "_") + (_local16 + 1)) + "_") + 0), (((((_local15 + 1) + "_") + _local16) + "_") + 0)], _local27); setUVsToFace(new Point(((_arg4 - _local15) * _local24), (_local16 * _local25)), new Point(((_arg4 - _local15) * _local24), ((_local16 + 1) * _local25)), new Point((((_arg4 - _local15) - 1) * _local24), ((_local16 + 1) * _local25)), _local27); }; }; if (_arg8){ _local23.addFace((_local27 + ":0")); _local23.addFace((_local27 + ":1")); } else { _local23.addFace(_local27); }; _local15++; }; _local16++; }; _local17 = 0; while (_local17 < _arg6) { _local15 = 0; while (_local15 < _arg4) { _local27 = ((("front_" + _local15) + "_") + _local17); if (_arg7){ if (_arg8){ _local28 = new Point(((_arg4 - _local15) * _local24), (_local17 * _local26)); _local29 = new Point((((_arg4 - _local15) - 1) * _local24), ((_local17 + 1) * _local26)); createFace([((((_local15 + "_") + 0) + "_") + _local17), ((((_local15 + "_") + 0) + "_") + (_local17 + 1)), (((((_local15 + 1) + "_") + 0) + "_") + (_local17 + 1))], (_local27 + ":1")); setUVsToFace(_local28, new Point(((_arg4 - _local15) * _local24), ((_local17 + 1) * _local26)), _local29, (_local27 + ":1")); createFace([(((((_local15 + 1) + "_") + 0) + "_") + (_local17 + 1)), (((((_local15 + 1) + "_") + 0) + "_") + _local17), ((((_local15 + "_") + 0) + "_") + _local17)], (_local27 + ":0")); setUVsToFace(_local29, new Point((((_arg4 - _local15) - 1) * _local24), (_local17 * _local26)), _local28, (_local27 + ":0")); } else { createFace([((((_local15 + "_") + 0) + "_") + _local17), ((((_local15 + "_") + 0) + "_") + (_local17 + 1)), (((((_local15 + 1) + "_") + 0) + "_") + (_local17 + 1)), (((((_local15 + 1) + "_") + 0) + "_") + _local17)], _local27); setUVsToFace(new Point(((_arg4 - _local15) * _local24), (_local17 * _local26)), new Point(((_arg4 - _local15) * _local24), ((_local17 + 1) * _local26)), new Point((((_arg4 - _local15) - 1) * _local24), ((_local17 + 1) * _local26)), _local27); }; } else { if (_arg8){ _local28 = new Point((_local15 * _local24), (_local17 * _local26)); _local29 = new Point(((_local15 + 1) * _local24), ((_local17 + 1) * _local26)); createFace([((((_local15 + "_") + 0) + "_") + _local17), (((((_local15 + 1) + "_") + 0) + "_") + _local17), (((((_local15 + 1) + "_") + 0) + "_") + (_local17 + 1))], (_local27 + ":0")); setUVsToFace(_local28, new Point(((_local15 + 1) * _local24), (_local17 * _local26)), _local29, (_local27 + ":0")); createFace([(((((_local15 + 1) + "_") + 0) + "_") + (_local17 + 1)), ((((_local15 + "_") + 0) + "_") + (_local17 + 1)), ((((_local15 + "_") + 0) + "_") + _local17)], (_local27 + ":1")); setUVsToFace(_local29, new Point((_local15 * _local24), ((_local17 + 1) * _local26)), _local28, (_local27 + ":1")); } else { createFace([((((_local15 + "_") + 0) + "_") + _local17), (((((_local15 + 1) + "_") + 0) + "_") + _local17), (((((_local15 + 1) + "_") + 0) + "_") + (_local17 + 1)), ((((_local15 + "_") + 0) + "_") + (_local17 + 1))], _local27); setUVsToFace(new Point((_local15 * _local24), (_local17 * _local26)), new Point(((_local15 + 1) * _local24), (_local17 * _local26)), new Point(((_local15 + 1) * _local24), ((_local17 + 1) * _local26)), _local27); }; }; if (_arg8){ _local18.addFace((_local27 + ":0")); _local18.addFace((_local27 + ":1")); } else { _local18.addFace(_local27); }; _local15++; }; _local17++; }; _local17 = 0; while (_local17 < _arg6) { _local15 = 0; while (_local15 < _arg4) { _local27 = ((("back_" + _local15) + "_") + _local17); if (_arg7){ if (_arg8){ _local28 = new Point((_local15 * _local24), ((_local17 + 1) * _local26)); _local29 = new Point(((_local15 + 1) * _local24), (_local17 * _local26)); createFace([((((_local15 + "_") + _arg5) + "_") + (_local17 + 1)), ((((_local15 + "_") + _arg5) + "_") + _local17), (((((_local15 + 1) + "_") + _arg5) + "_") + _local17)], (_local27 + ":0")); setUVsToFace(_local28, new Point((_local15 * _local24), (_local17 * _local26)), _local29, (_local27 + ":0")); createFace([(((((_local15 + 1) + "_") + _arg5) + "_") + _local17), (((((_local15 + 1) + "_") + _arg5) + "_") + (_local17 + 1)), ((((_local15 + "_") + _arg5) + "_") + (_local17 + 1))], (_local27 + ":1")); setUVsToFace(_local29, new Point(((_local15 + 1) * _local24), ((_local17 + 1) * _local26)), _local28, (_local27 + ":1")); } else { createFace([((((_local15 + "_") + _arg5) + "_") + _local17), (((((_local15 + 1) + "_") + _arg5) + "_") + _local17), (((((_local15 + 1) + "_") + _arg5) + "_") + (_local17 + 1)), ((((_local15 + "_") + _arg5) + "_") + (_local17 + 1))], _local27); setUVsToFace(new Point((_local15 * _local24), (_local17 * _local26)), new Point(((_local15 + 1) * _local24), (_local17 * _local26)), new Point(((_local15 + 1) * _local24), ((_local17 + 1) * _local26)), _local27); }; } else { if (_arg8){ _local28 = new Point(((_arg4 - _local15) * _local24), ((_local17 + 1) * _local26)); _local29 = new Point((((_arg4 - _local15) - 1) * _local24), (_local17 * _local26)); createFace([((((_local15 + "_") + _arg5) + "_") + _local17), ((((_local15 + "_") + _arg5) + "_") + (_local17 + 1)), (((((_local15 + 1) + "_") + _arg5) + "_") + _local17)], (_local27 + ":0")); setUVsToFace(new Point(((_arg4 - _local15) * _local24), (_local17 * _local26)), _local28, _local29, (_local27 + ":0")); createFace([((((_local15 + "_") + _arg5) + "_") + (_local17 + 1)), (((((_local15 + 1) + "_") + _arg5) + "_") + (_local17 + 1)), (((((_local15 + 1) + "_") + _arg5) + "_") + _local17)], (_local27 + ":1")); setUVsToFace(_local28, new Point((((_arg4 - _local15) - 1) * _local24), ((_local17 + 1) * _local26)), _local29, (_local27 + ":1")); } else { createFace([((((_local15 + "_") + _arg5) + "_") + _local17), ((((_local15 + "_") + _arg5) + "_") + (_local17 + 1)), (((((_local15 + 1) + "_") + _arg5) + "_") + (_local17 + 1)), (((((_local15 + 1) + "_") + _arg5) + "_") + _local17)], _local27); setUVsToFace(new Point(((_arg4 - _local15) * _local24), (_local17 * _local26)), new Point(((_arg4 - _local15) * _local24), ((_local17 + 1) * _local26)), new Point((((_arg4 - _local15) - 1) * _local24), ((_local17 + 1) * _local26)), _local27); }; }; if (_arg8){ _local19.addFace((_local27 + ":0")); _local19.addFace((_local27 + ":1")); } else { _local19.addFace(_local27); }; _local15++; }; _local17++; }; _local16 = 0; while (_local16 < _arg5) { _local17 = 0; while (_local17 < _arg6) { _local27 = ((("left_" + _local16) + "_") + _local17); if (_arg7){ if (_arg8){ _local28 = new Point((_local16 * _local25), ((_local17 + 1) * _local26)); _local29 = new Point(((_local16 + 1) * _local25), (_local17 * _local26)); createFace([((((0 + "_") + _local16) + "_") + (_local17 + 1)), ((((0 + "_") + _local16) + "_") + _local17), ((((0 + "_") + (_local16 + 1)) + "_") + _local17)], (_local27 + ":0")); setUVsToFace(_local28, new Point((_local16 * _local25), (_local17 * _local26)), _local29, (_local27 + ":0")); createFace([((((0 + "_") + (_local16 + 1)) + "_") + _local17), ((((0 + "_") + (_local16 + 1)) + "_") + (_local17 + 1)), ((((0 + "_") + _local16) + "_") + (_local17 + 1))], (_local27 + ":1")); setUVsToFace(_local29, new Point(((_local16 + 1) * _local25), ((_local17 + 1) * _local26)), _local28, (_local27 + ":1")); } else { createFace([((((0 + "_") + _local16) + "_") + _local17), ((((0 + "_") + (_local16 + 1)) + "_") + _local17), ((((0 + "_") + (_local16 + 1)) + "_") + (_local17 + 1)), ((((0 + "_") + _local16) + "_") + (_local17 + 1))], _local27); setUVsToFace(new Point((_local16 * _local25), (_local17 * _local26)), new Point(((_local16 + 1) * _local25), (_local17 * _local26)), new Point(((_local16 + 1) * _local25), ((_local17 + 1) * _local26)), _local27); }; } else { if (_arg8){ _local28 = new Point((((_arg5 - _local16) - 1) * _local25), (_local17 * _local26)); _local29 = new Point(((_arg5 - _local16) * _local25), ((_local17 + 1) * _local26)); createFace([((((0 + "_") + (_local16 + 1)) + "_") + _local17), ((((0 + "_") + _local16) + "_") + _local17), ((((0 + "_") + _local16) + "_") + (_local17 + 1))], (_local27 + ":0")); setUVsToFace(_local28, new Point(((_arg5 - _local16) * _local25), (_local17 * _local26)), _local29, (_local27 + ":0")); createFace([((((0 + "_") + _local16) + "_") + (_local17 + 1)), ((((0 + "_") + (_local16 + 1)) + "_") + (_local17 + 1)), ((((0 + "_") + (_local16 + 1)) + "_") + _local17)], (_local27 + ":1")); setUVsToFace(_local29, new Point((((_arg5 - _local16) - 1) * _local25), ((_local17 + 1) * _local26)), _local28, (_local27 + ":1")); } else { createFace([((((0 + "_") + _local16) + "_") + _local17), ((((0 + "_") + _local16) + "_") + (_local17 + 1)), ((((0 + "_") + (_local16 + 1)) + "_") + (_local17 + 1)), ((((0 + "_") + (_local16 + 1)) + "_") + _local17)], _local27); setUVsToFace(new Point(((_arg5 - _local16) * _local25), (_local17 * _local26)), new Point(((_arg5 - _local16) * _local25), ((_local17 + 1) * _local26)), new Point((((_arg5 - _local16) - 1) * _local25), ((_local17 + 1) * _local26)), _local27); }; }; if (_arg8){ _local20.addFace((_local27 + ":0")); _local20.addFace((_local27 + ":1")); } else { _local20.addFace(_local27); }; _local17++; }; _local16++; }; _local16 = 0; while (_local16 < _arg5) { _local17 = 0; while (_local17 < _arg6) { _local27 = ((("right_" + _local16) + "_") + _local17); if (_arg7){ if (_arg8){ _local28 = new Point(((_arg5 - _local16) * _local25), (_local17 * _local26)); _local29 = new Point((((_arg5 - _local16) - 1) * _local25), ((_local17 + 1) * _local26)); createFace([((((_arg4 + "_") + _local16) + "_") + _local17), ((((_arg4 + "_") + _local16) + "_") + (_local17 + 1)), ((((_arg4 + "_") + (_local16 + 1)) + "_") + (_local17 + 1))], (_local27 + ":1")); setUVsToFace(_local28, new Point(((_arg5 - _local16) * _local25), ((_local17 + 1) * _local26)), _local29, (_local27 + ":1")); createFace([((((_arg4 + "_") + (_local16 + 1)) + "_") + (_local17 + 1)), ((((_arg4 + "_") + (_local16 + 1)) + "_") + _local17), ((((_arg4 + "_") + _local16) + "_") + _local17)], (_local27 + ":0")); setUVsToFace(_local29, new Point((((_arg5 - _local16) - 1) * _local25), (_local17 * _local26)), _local28, (_local27 + ":0")); } else { createFace([((((_arg4 + "_") + _local16) + "_") + _local17), ((((_arg4 + "_") + _local16) + "_") + (_local17 + 1)), ((((_arg4 + "_") + (_local16 + 1)) + "_") + (_local17 + 1)), ((((_arg4 + "_") + (_local16 + 1)) + "_") + _local17)], _local27); setUVsToFace(new Point(((_arg5 - _local16) * _local25), (_local17 * _local26)), new Point(((_arg5 - _local16) * _local25), ((_local17 + 1) * _local26)), new Point((((_arg5 - _local16) - 1) * _local25), ((_local17 + 1) * _local26)), _local27); }; } else { if (_arg8){ _local28 = new Point((_local16 * _local25), (_local17 * _local26)); _local29 = new Point(((_local16 + 1) * _local25), ((_local17 + 1) * _local26)); createFace([((((_arg4 + "_") + _local16) + "_") + _local17), ((((_arg4 + "_") + (_local16 + 1)) + "_") + _local17), ((((_arg4 + "_") + (_local16 + 1)) + "_") + (_local17 + 1))], (_local27 + ":0")); setUVsToFace(_local28, new Point(((_local16 + 1) * _local25), (_local17 * _local26)), _local29, (_local27 + ":0")); createFace([((((_arg4 + "_") + (_local16 + 1)) + "_") + (_local17 + 1)), ((((_arg4 + "_") + _local16) + "_") + (_local17 + 1)), ((((_arg4 + "_") + _local16) + "_") + _local17)], (_local27 + ":1")); setUVsToFace(_local29, new Point((_local16 * _local25), ((_local17 + 1) * _local26)), _local28, (_local27 + ":1")); } else { createFace([((((_arg4 + "_") + _local16) + "_") + _local17), ((((_arg4 + "_") + (_local16 + 1)) + "_") + _local17), ((((_arg4 + "_") + (_local16 + 1)) + "_") + (_local17 + 1)), ((((_arg4 + "_") + _local16) + "_") + (_local17 + 1))], _local27); setUVsToFace(new Point((_local16 * _local25), (_local17 * _local26)), new Point(((_local16 + 1) * _local25), (_local17 * _local26)), new Point(((_local16 + 1) * _local25), ((_local17 + 1) * _local26)), _local27); }; }; if (_arg8){ _local21.addFace((_local27 + ":0")); _local21.addFace((_local27 + ":1")); } else { _local21.addFace(_local27); }; _local17++; }; _local16++; }; } override protected function createEmptyObject():Object3D{ return (new Box(0, 0, 0, 0)); } } }//package alternativa.engine3d.primitives
Section 44
//GeoSphere (alternativa.engine3d.primitives.GeoSphere) package alternativa.engine3d.primitives { import alternativa.types.*; import flash.geom.*; import alternativa.engine3d.core.*; import alternativa.utils.*; import alternativa.engine3d.*; public class GeoSphere extends Mesh { public function GeoSphere(_arg1:Number=100, _arg2:uint=2, _arg3:Boolean=false){ var _local6:uint; var _local7:uint; var _local8:Number; var _local9:Number; var _local10:Number; var _local13:Face; var _local15:uint; var _local16:uint; var _local17:uint; var _local18:uint; var _local19:uint; var _local20:Vertex; var _local21:Vertex; var _local22:Vertex; var _local23:Point; var _local24:Point; var _local25:Point; var _local26:Point3D; var _local27:Point3D; var _local28:Point3D; var _local29:Vertex; super(); if (_arg2 == 0){ return; }; _arg1 = ((_arg1)<0) ? 0 : _arg1; var _local4:uint = 20; var _local5:Array = new Array(); var _local11:Number = (0.4472136 * _arg1); var _local12:Number = (2 * _local11); _local5.push(createVertex(0, 0, _arg1, "poleUp")); _local6 = 0; while (_local6 < 5) { _local8 = ((MathUtils.DEG360 * _local6) / 5); _local9 = Math.sin(_local8); _local10 = Math.cos(_local8); _local5.push(createVertex((_local12 * _local10), (_local12 * _local9), _local11)); _local6++; }; _local6 = 0; while (_local6 < 5) { _local8 = ((MathUtils.DEG180 * ((_local6 << 1) + 1)) / 5); _local9 = Math.sin(_local8); _local10 = Math.cos(_local8); _local5.push(createVertex((_local12 * _local10), (_local12 * _local9), -(_local11))); _local6++; }; _local5.push(createVertex(0, 0, -(_arg1), "poleDown")); _local6 = 1; while (_local6 < 6) { interpolate(0, _local6, _arg2, _local5); _local6++; }; _local6 = 1; while (_local6 < 6) { interpolate(_local6, ((_local6 % 5) + 1), _arg2, _local5); _local6++; }; _local6 = 1; while (_local6 < 6) { interpolate(_local6, (_local6 + 5), _arg2, _local5); _local6++; }; _local6 = 1; while (_local6 < 6) { interpolate(_local6, (((_local6 + 3) % 5) + 6), _arg2, _local5); _local6++; }; _local6 = 1; while (_local6 < 6) { interpolate((_local6 + 5), ((_local6 % 5) + 6), _arg2, _local5); _local6++; }; _local6 = 6; while (_local6 < 11) { interpolate(11, _local6, _arg2, _local5); _local6++; }; _local7 = 0; while (_local7 < 5) { _local6 = 1; while (_local6 <= (_arg2 - 2)) { interpolate(((12 + (_local7 * (_arg2 - 1))) + _local6), ((12 + (((_local7 + 1) % 5) * (_arg2 - 1))) + _local6), (_local6 + 1), _local5); _local6++; }; _local7++; }; _local7 = 0; while (_local7 < 5) { _local6 = 1; while (_local6 <= (_arg2 - 2)) { interpolate(((12 + ((_local7 + 15) * (_arg2 - 1))) + _local6), ((12 + ((_local7 + 10) * (_arg2 - 1))) + _local6), (_local6 + 1), _local5); _local6++; }; _local7++; }; _local7 = 0; while (_local7 < 5) { _local6 = 1; while (_local6 <= (_arg2 - 2)) { interpolate(((((12 + ((((_local7 + 1) % 5) + 15) * (_arg2 - 1))) + _arg2) - 2) - _local6), ((((12 + ((_local7 + 10) * (_arg2 - 1))) + _arg2) - 2) - _local6), (_local6 + 1), _local5); _local6++; }; _local7++; }; _local7 = 0; while (_local7 < 5) { _local6 = 1; while (_local6 <= (_arg2 - 2)) { interpolate(((12 + ((((_local7 + 1) % 5) + 25) * (_arg2 - 1))) + _local6), ((12 + ((_local7 + 25) * (_arg2 - 1))) + _local6), (_local6 + 1), _local5); _local6++; }; _local7++; }; var _local14:Surface = createSurface(); _local7 = 0; while (_local7 < _local4) { _local15 = 0; while (_local15 < _arg2) { _local16 = 0; while (_local16 <= _local15) { _local17 = findVertices(_arg2, _local7, _local15, _local16); _local18 = findVertices(_arg2, _local7, (_local15 + 1), _local16); _local19 = findVertices(_arg2, _local7, (_local15 + 1), (_local16 + 1)); _local20 = _local5[_local17]; _local21 = _local5[_local18]; _local22 = _local5[_local19]; _local26 = _local20._coords; _local27 = _local21._coords; _local28 = _local22._coords; if ((((((_local26.y >= 0)) && ((_local26.x < 0)))) && ((((_local27.y < 0)) || ((_local28.y < 0)))))){ _local23 = new Point(((Math.atan2(_local26.y, _local26.x) / MathUtils.DEG360) - 0.5), ((Math.asin((_local26.z / _arg1)) / MathUtils.DEG180) + 0.5)); } else { _local23 = new Point(((Math.atan2(_local26.y, _local26.x) / MathUtils.DEG360) + 0.5), ((Math.asin((_local26.z / _arg1)) / MathUtils.DEG180) + 0.5)); }; if ((((((_local27.y >= 0)) && ((_local27.x < 0)))) && ((((_local26.y < 0)) || ((_local28.y < 0)))))){ _local24 = new Point(((Math.atan2(_local27.y, _local27.x) / MathUtils.DEG360) - 0.5), ((Math.asin((_local27.z / _arg1)) / MathUtils.DEG180) + 0.5)); } else { _local24 = new Point(((Math.atan2(_local27.y, _local27.x) / MathUtils.DEG360) + 0.5), ((Math.asin((_local27.z / _arg1)) / MathUtils.DEG180) + 0.5)); }; if ((((((_local28.y >= 0)) && ((_local28.x < 0)))) && ((((_local26.y < 0)) || ((_local27.y < 0)))))){ _local25 = new Point(((Math.atan2(_local28.y, _local28.x) / MathUtils.DEG360) - 0.5), ((Math.asin((_local28.z / _arg1)) / MathUtils.DEG180) + 0.5)); } else { _local25 = new Point(((Math.atan2(_local28.y, _local28.x) / MathUtils.DEG360) + 0.5), ((Math.asin((_local28.z / _arg1)) / MathUtils.DEG180) + 0.5)); }; if ((((_local17 == 0)) || ((_local17 == 11)))){ _local23.x = (_local24.x + ((_local25.x - _local24.x) * 0.5)); }; if ((((_local18 == 0)) || ((_local18 == 11)))){ _local24.x = (_local23.x + ((_local25.x - _local23.x) * 0.5)); }; if ((((_local19 == 0)) || ((_local19 == 11)))){ _local25.x = (_local23.x + ((_local24.x - _local23.x) * 0.5)); }; if (_arg3){ _local13 = createFace([_local20, _local22, _local21], (((((_local16 << 1) + "_") + _local15) + "_") + _local7)); _local23.x = (1 - _local23.x); _local24.x = (1 - _local24.x); _local25.x = (1 - _local25.x); setUVsToFace(_local23, _local25, _local24, _local13); } else { _local13 = createFace([_local20, _local21, _local22], (((((_local16 << 1) + "_") + _local15) + "_") + _local7)); setUVsToFace(_local23, _local24, _local25, _local13); }; _local14.addFace(_local13); if (_local16 < _local15){ _local18 = findVertices(_arg2, _local7, _local15, (_local16 + 1)); _local29 = _local5[_local18]; _local27 = _local29._coords; if ((((((_local26.y >= 0)) && ((_local26.x < 0)))) && ((((_local27.y < 0)) || ((_local28.y < 0)))))){ _local23 = new Point(((Math.atan2(_local26.y, _local26.x) / MathUtils.DEG360) - 0.5), ((Math.asin((_local26.z / _arg1)) / MathUtils.DEG180) + 0.5)); } else { _local23 = new Point(((Math.atan2(_local26.y, _local26.x) / MathUtils.DEG360) + 0.5), ((Math.asin((_local26.z / _arg1)) / MathUtils.DEG180) + 0.5)); }; if ((((((_local27.y >= 0)) && ((_local27.x < 0)))) && ((((_local26.y < 0)) || ((_local28.y < 0)))))){ _local24 = new Point(((Math.atan2(_local27.y, _local27.x) / MathUtils.DEG360) - 0.5), ((Math.asin((_local27.z / _arg1)) / MathUtils.DEG180) + 0.5)); } else { _local24 = new Point(((Math.atan2(_local27.y, _local27.x) / MathUtils.DEG360) + 0.5), ((Math.asin((_local27.z / _arg1)) / MathUtils.DEG180) + 0.5)); }; if ((((((_local28.y >= 0)) && ((_local28.x < 0)))) && ((((_local26.y < 0)) || ((_local27.y < 0)))))){ _local25 = new Point(((Math.atan2(_local28.y, _local28.x) / MathUtils.DEG360) - 0.5), ((Math.asin((_local28.z / _arg1)) / MathUtils.DEG180) + 0.5)); } else { _local25 = new Point(((Math.atan2(_local28.y, _local28.x) / MathUtils.DEG360) + 0.5), ((Math.asin((_local28.z / _arg1)) / MathUtils.DEG180) + 0.5)); }; if ((((_local17 == 0)) || ((_local17 == 11)))){ _local23.x = (_local24.x + ((_local25.x - _local24.x) * 0.5)); }; if ((((_local18 == 0)) || ((_local18 == 11)))){ _local24.x = (_local23.x + ((_local25.x - _local23.x) * 0.5)); }; if ((((_local19 == 0)) || ((_local19 == 11)))){ _local25.x = (_local23.x + ((_local24.x - _local23.x) * 0.5)); }; if (_arg3){ _local13 = createFace([_local20, _local29, _local22], ((((((_local16 << 1) + 1) + "_") + _local15) + "_") + _local7)); _local23.x = (1 - _local23.x); _local24.x = (1 - _local24.x); _local25.x = (1 - _local25.x); setUVsToFace(_local23, _local24, _local25, _local13); } else { _local13 = createFace([_local20, _local22, _local29], ((((((_local16 << 1) + 1) + "_") + _local15) + "_") + _local7)); setUVsToFace(_local23, _local25, _local24, _local13); }; _local14.addFace(_local13); }; _local16++; }; _local15++; }; _local7++; }; } override protected function createEmptyObject():Object3D{ return (new GeoSphere(0, 0)); } private function interpolate(_arg1:uint, _arg2:uint, _arg3:uint, _arg4:Array):void{ var _local11:Number; var _local12:Number; var _local13:Number; var _local14:Number; if (_arg3 < 2){ return; }; var _local5:Vertex = Vertex(_arg4[_arg1]); var _local6:Vertex = Vertex(_arg4[_arg2]); var _local7:Number = ((((_local5.x * _local6.x) + (_local5.y * _local6.y)) + (_local5.z * _local6.z)) / (((_local5.x * _local5.x) + (_local5.y * _local5.y)) + (_local5.z * _local5.z))); _local7 = ((_local7)<-1) ? -1 : ((_local7)>1) ? 1 : _local7; var _local8:Number = Math.acos(_local7); var _local9:Number = Math.sin(_local8); var _local10:uint = 1; while (_local10 < _arg3) { _local11 = ((_local8 * _local10) / _arg3); _local12 = ((_local8 * (_arg3 - _local10)) / _arg3); _local13 = Math.sin(_local11); _local14 = Math.sin(_local12); _arg4.push(createVertex((((_local5.x * _local14) + (_local6.x * _local13)) / _local9), (((_local5.y * _local14) + (_local6.y * _local13)) / _local9), (((_local5.z * _local14) + (_local6.z * _local13)) / _local9))); _local10++; }; } private function findVertices(_arg1:uint, _arg2:uint, _arg3:uint, _arg4:uint):uint{ if (_arg3 == 0){ if (_arg2 < 5){ return (0); }; if (_arg2 > 14){ return (11); }; return ((_arg2 - 4)); }; if ((((_arg3 == _arg1)) && ((_arg4 == 0)))){ if (_arg2 < 5){ return ((_arg2 + 1)); }; if (_arg2 < 10){ return ((((_arg2 + 4) % 5) + 6)); }; if (_arg2 < 15){ return ((((_arg2 + 1) % 5) + 1)); }; return ((((_arg2 + 1) % 5) + 6)); }; if ((((_arg3 == _arg1)) && ((_arg4 == _arg1)))){ if (_arg2 < 5){ return ((((_arg2 + 1) % 5) + 1)); }; if (_arg2 < 10){ return ((_arg2 + 1)); }; if (_arg2 < 15){ return ((_arg2 - 9)); }; return ((_arg2 - 9)); }; if (_arg3 == _arg1){ if (_arg2 < 5){ return ((((12 + ((5 + _arg2) * (_arg1 - 1))) + _arg4) - 1)); }; if (_arg2 < 10){ return ((((12 + ((20 + ((_arg2 + 4) % 5)) * (_arg1 - 1))) + _arg4) - 1)); }; if (_arg2 < 15){ return (((((12 + ((_arg2 - 5) * (_arg1 - 1))) + _arg1) - 1) - _arg4)); }; return (((((12 + ((5 + _arg2) * (_arg1 - 1))) + _arg1) - 1) - _arg4)); }; if (_arg4 == 0){ if (_arg2 < 5){ return ((((12 + (_arg2 * (_arg1 - 1))) + _arg3) - 1)); }; if (_arg2 < 10){ return ((((12 + (((_arg2 % 5) + 15) * (_arg1 - 1))) + _arg3) - 1)); }; if (_arg2 < 15){ return (((((12 + ((((_arg2 + 1) % 5) + 15) * (_arg1 - 1))) + _arg1) - 1) - _arg3)); }; return ((((12 + ((((_arg2 + 1) % 5) + 25) * (_arg1 - 1))) + _arg3) - 1)); }; if (_arg4 == _arg3){ if (_arg2 < 5){ return ((((12 + (((_arg2 + 1) % 5) * (_arg1 - 1))) + _arg3) - 1)); }; if (_arg2 < 10){ return ((((12 + (((_arg2 % 5) + 10) * (_arg1 - 1))) + _arg3) - 1)); }; if (_arg2 < 15){ return (((((12 + (((_arg2 % 5) + 10) * (_arg1 - 1))) + _arg1) - _arg3) - 1)); }; return ((((12 + (((_arg2 % 5) + 25) * (_arg1 - 1))) + _arg3) - 1)); }; return ((((((12 + (30 * (_arg1 - 1))) + (((_arg2 * (_arg1 - 1)) * (_arg1 - 2)) / 2)) + (((_arg3 - 1) * (_arg3 - 2)) / 2)) + _arg4) - 1)); } } }//package alternativa.engine3d.primitives
Section 45
//alternativa3d (alternativa.engine3d.alternativa3d) package alternativa.engine3d { public namespace alternativa3d = "http://alternativaplatform.com/en/alternativa3d"; }//package alternativa.engine3d
Section 46
//Emitter (alternativa.particle3d.Emitter) package alternativa.particle3d { import alternativa.types.*; import alternativa.engine3d.core.*; public class Emitter extends Object3D { protected var pos:Point3D; protected var max:int;// = 100 protected var is_alive:Boolean;// = true protected var particles:Array; protected var attr:Object; protected var life:Number;// = -1 public static const LIFE_TIME:Number = -1; public function Emitter(_arg1:Object){ is_alive = true; max = 100; life = LIFE_TIME; pos = new Point3D(); super(); attr = _arg1; if (attr.emitter){ if (attr.emitter.max != undefined){ max = attr.emitter.max; }; if (attr.emitter.life != undefined){ life = attr.emitter.life; }; if (attr.emitter.pos != undefined){ pos = attr.emitter.pos.clone(); }; }; particles = []; } public function fireAt(_arg1:Point3D):void{ pos.x = _arg1.x; pos.y = _arg1.y; pos.z = _arg1.z; } public function getCount():int{ return (particles.length); } public function removeAll():void{ var _local1:int; _local1 = 0; while (_local1 < particles.length) { removeChild(particles[_local1]); particles[_local1].free(); _local1++; }; particles = []; } public function free():void{ removeAll(); particles = null; attr = null; } public function remove(_arg1:int):void{ if ((((_arg1 < 0)) || (!(particles[_arg1])))){ return; }; removeChild(particles[_arg1]); particles[_arg1].free(); particles.splice(_arg1, 1); } public function render():void{ } public function add():void{ } public function isAlive():Boolean{ return (((is_alive) || ((particles.length > 0)))); } public function update(_arg1:Number):void{ if (((is_alive) && ((particles.length < max)))){ add(); }; if (life >= 0){ life = (life - _arg1); if (life < 0){ is_alive = false; }; }; } } }//package alternativa.particle3d
Section 47
//EmitterManager (alternativa.particle3d.EmitterManager) package alternativa.particle3d { import alternativa.types.*; public class EmitterManager { public var emitters:Array; public var attr:Object; public function EmitterManager(_arg1:Object){ attr = _arg1; emitters = []; } public function add(_arg1:Emitter):Emitter{ if (!_arg1){ return (null); }; emitters.push(_arg1); attr.scene.root.addChild(_arg1); return (_arg1); } public function remove(_arg1:Emitter):void{ var _local2:int; _local2 = emitters.indexOf(_arg1); if (_local2 >= 0){ attr.scene.root.removeChild(emitters[_local2]); emitters[_local2].free(); emitters.splice(_local2, 1); }; } public function update(_arg1:Number):void{ var _local2:int; _local2 = 0; while (_local2 < emitters.length) { emitters[_local2].update(_arg1); if (!emitters[_local2].isAlive()){ remove(emitters[_local2]); _local2--; }; _local2++; }; } public function free():void{ removeAll(); emitters = null; attr = null; } public function createAt(_arg1:Object, _arg2:Point3D):Emitter{ var _local3:Emitter; _local3 = new _arg1.cls(_arg1.attr); return (add(_local3)); } public function removeAll():void{ var _local1:int; _local1 = 0; while (_local1 < emitters.length) { attr.scene.root.removeChild(emitters[_local1]); emitters[_local1].free(); _local1++; }; emitters = []; } } }//package alternativa.particle3d
Section 48
//ExplosionEmitter (alternativa.particle3d.ExplosionEmitter) package alternativa.particle3d { import flash.display.*; import alternativa.types.*; public class ExplosionEmitter extends Emitter { protected var par_scale_d:Number; protected var par_smooth:Boolean;// = false protected var par_speed:Number;// = 100 protected var par_alpha_d:Number; protected var par_blend:String;// = "add" protected var par_scale_end:Number;// = 1 protected var par_alpha_end:Number;// = 0 protected var par_life_min:Number;// = 0.5 protected var par_life_max:Number;// = 1 protected var par_speed_rnd:Point3D; protected var par_pos_rnd:Point3D; protected var par_gravity:Point3D; protected var textures:Array; protected var par_life_rnd:Number;// = 0.5 protected var par_scale_begin:Number;// = 0 protected var par_alpha_begin:Number;// = 1 public function ExplosionEmitter(_arg1:Object){ var i:int; var bd:BitmapData; var attrIn = _arg1; par_life_min = 0.5; par_life_max = 1; par_life_rnd = 0.5; par_alpha_begin = 1; par_alpha_end = 0; par_scale_begin = 0; par_scale_end = 1; par_blend = BlendMode.ADD; par_speed = 100; par_speed_rnd = new Point3D(0.5, 0.5, 0.5); par_gravity = new Point3D(); par_smooth = false; par_pos_rnd = new Point3D(10, 10, 10); super(attrIn); if (attr.particle){ if (attr.particle.life_min != undefined){ par_life_min = attr.particle.life_min; }; if (attr.particle.life_max != undefined){ par_life_max = attr.particle.life_max; }; if (attr.particle.life_rnd != undefined){ par_life_rnd = attr.particle.life_rnd; }; if (attr.particle.alpha_begin != undefined){ par_alpha_begin = attr.particle.alpha_begin; }; if (attr.particle.alpha_end != undefined){ par_alpha_end = attr.particle.alpha_end; }; if (attr.particle.scale_begin != undefined){ par_scale_begin = attr.particle.scale_begin; }; if (attr.particle.scale_end != undefined){ par_scale_end = attr.particle.scale_end; }; if (attr.particle.blend != undefined){ par_blend = attr.particle.blend; }; if (attr.particle.speed != undefined){ par_speed = attr.particle.speed; }; if (attr.particle.speed_rnd != undefined){ par_speed_rnd = attr.particle.speed_rnd.clone(); }; if (attr.particle.gravity != undefined){ par_gravity = attr.particle.gravity.clone(); }; if (attr.particle.smooth != undefined){ par_smooth = attr.particle.smooth; }; if (attr.particle.pos_rnd != undefined){ if ((attr.particle.pos_rnd is Point3D)){ par_pos_rnd = attr.particle.pos_rnd.clone(); } else { par_pos_rnd.x = (par_pos_rnd.y = (par_pos_rnd.z = Number(attr.particle.pos_rnd))); }; }; }; par_alpha_d = ((par_alpha_end - par_alpha_begin) / par_life_min); par_scale_d = ((par_scale_end - par_scale_begin) / par_life_min); textures = []; i = 0; while (i < attr.bitmaps.length) { try { bd = new attr.bitmaps[i].cls(attr.bitmaps[i].width, attr.bitmaps[i].height); textures.push(new Texture(bd)); } catch(e:Error) { return; }; i = (i + 1); }; i = 0; while (i < max) { add(); i = (i + 1); }; } override public function add():void{ var _local1:Number; var _local2:Point3D; var _local3:Particle; if (textures.length <= 0){ return; }; _local1 = ((par_life_min * par_life_rnd) + ((Math.random() * (1 - par_life_rnd)) * (par_life_max - par_life_min))); _local2 = new Point3D(); _local2.x = ((par_speed * par_speed_rnd.x) * Math.random()); _local2.y = ((par_speed * par_speed_rnd.y) * Math.random()); _local2.z = ((par_speed * par_speed_rnd.z) * Math.random()); _local3 = new Particle({texture:textures[Math.floor((Math.random() * textures.length))], blend:par_blend, smooth:par_smooth, alpha:par_alpha_begin}); _local3.life = _local1; _local3.alpha_d = ((par_alpha_end - par_alpha_begin) / _local1); _local3.scaleX = (_local3.scaleY = (_local3.scaleZ = par_scale_begin)); _local3.scale_d = ((par_scale_end - par_scale_begin) / _local1); _local3.speed = _local2; _local3.x = ((pos.x + ((par_pos_rnd.x * Math.random()) * 2)) - par_pos_rnd.x); _local3.y = ((pos.y + ((par_pos_rnd.y * Math.random()) * 2)) - par_pos_rnd.y); _local3.z = ((pos.z + ((par_pos_rnd.z * Math.random()) * 2)) - par_pos_rnd.z); particles.push(_local3); addChild(_local3); } override public function update(_arg1:Number):void{ var _local2:int; _local2 = 0; while (_local2 < particles.length) { if (particles[_local2].life <= 0){ remove(_local2); _local2--; } else { particles[_local2].life = (particles[_local2].life - _arg1); particles[_local2].speed.x = (particles[_local2].speed.x + (_arg1 * par_gravity.x)); particles[_local2].speed.y = (particles[_local2].speed.y + (_arg1 * par_gravity.y)); particles[_local2].speed.z = (particles[_local2].speed.z + (_arg1 * par_gravity.z)); particles[_local2].x = (particles[_local2].x + (_arg1 * particles[_local2].speed.x)); particles[_local2].y = (particles[_local2].y + (_arg1 * particles[_local2].speed.y)); particles[_local2].z = (particles[_local2].z + (_arg1 * particles[_local2].speed.z)); particles[_local2].material.alpha = (particles[_local2].material.alpha + (_arg1 * particles[_local2].alpha_d)); particles[_local2].scaleX = (particles[_local2].scaleY = (particles[_local2].scaleZ = (particles[_local2].scaleX + (_arg1 * particles[_local2].scale_d)))); }; _local2++; }; super.update(_arg1); } } }//package alternativa.particle3d
Section 49
//Particle (alternativa.particle3d.Particle) package alternativa.particle3d { import alternativa.types.*; import alternativa.engine3d.core.*; import alternativa.engine3d.materials.*; public class Particle extends Sprite3D { public var speed:Point3D; public var scale_d:Number;// = 0 public var alpha_d:Number;// = 0 public var life:Number;// = 0 public function Particle(_arg1:Object){ life = 0; speed = new Point3D(); alpha_d = 0; scale_d = 0; super(); material = new SpriteTextureMaterial(_arg1.texture, _arg1.alpha, _arg1.smooth, _arg1.blend); } public function free():void{ } } }//package alternativa.particle3d
Section 50
//alternativatypes (alternativa.types.alternativatypes) package alternativa.types { public namespace alternativatypes = "http://alternativaplatform.com/en/alternativatypes"; }//package alternativa.types
Section 51
//Map (alternativa.types.Map) package alternativa.types { import flash.utils.*; public dynamic class Map extends Dictionary { private var weakKeys:Boolean; public function Map(_arg1:Boolean=false){ this.weakKeys = _arg1; super(_arg1); } public function add(_arg1, _arg2):void{ this[_arg1] = _arg2; } public function isEmpty():Boolean{ var _local1:*; for (_local1 in this) { return (false); }; return (true); } public function remove(_arg1):void{ delete this[_arg1]; } public function hasKey(_arg1):Boolean{ return (!((this[_arg1] === undefined))); } public function get length():uint{ var _local2:*; var _local1:uint; for (_local2 in this) { _local1++; }; return (_local1); } public function take(){ var _local1:*; var _local2:*; for (_local1 in this) { _local2 = this[_local1]; delete this[_local1]; return (_local2); }; return (null); } public function clear():void{ var _local1:*; for (_local1 in this) { delete this[_local1]; }; } public function any(){ var _local3:*; var _local1:uint; var _local2:uint = (Math.random() * length); for (_local3 in this) { if (_local1 == _local2){ return (this[_local3]); }; _local1++; }; return (null); } public function isSingle():Boolean{ var _local2:*; var _local1:Boolean; for (_local2 in this) { if (_local1){ return (false); }; _local1 = true; }; return (_local1); } public function concat(_arg1:Map):void{ var _local2:*; for (_local2 in _arg1) { this[_local2] = _arg1[_local2]; }; } public function toSet(_arg1:Boolean=false):Set{ var _local3:*; var _local2:Set = new Set(_arg1); for each (_local3 in this) { _local2[_local3] = true; }; return (_local2); } public function hasValue(_arg1):Boolean{ var _local2:*; for (_local2 in this) { if (this[_local2] === _arg1){ return (true); }; }; return (false); } public function toString():String{ var _local3:*; var _local1:int; var _local2 = ""; for (_local3 in this) { _local2 = (_local2 + ((("," + _local3) + ":") + this[_local3])); _local1++; }; return (((("[Map length:" + _local1) + ((_local1 > 0)) ? (" " + _local2.substring(1)) : "") + "]")); } public function peek(){ var _local1:*; for (_local1 in this) { return (this[_local1]); }; return (null); } public function clone():Map{ var _local2:*; var _local1:Map = new Map(weakKeys); for (_local2 in this) { _local1[_local2] = this[_local2]; }; return (_local1); } public function toArray(_arg1:Boolean=false):Array{ var _local3:*; var _local2:Array = new Array(); if (_arg1){ for (_local3 in this) { _local2.push(this[_local3]); }; } else { for (_local3 in this) { _local2[_local3] = this[_local3]; }; }; return (_local2); } } }//package alternativa.types
Section 52
//Matrix3D (alternativa.types.Matrix3D) package alternativa.types { public final class Matrix3D { public var a:Number; public var b:Number; public var c:Number; public var d:Number; public var e:Number; public var f:Number; public var g:Number; public var h:Number; public var i:Number; public var j:Number; public var k:Number; public var l:Number; public function Matrix3D(_arg1:Number=1, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0, _arg6:Number=1, _arg7:Number=0, _arg8:Number=0, _arg9:Number=0, _arg10:Number=0, _arg11:Number=1, _arg12:Number=0){ this.a = _arg1; this.b = _arg2; this.c = _arg3; this.d = _arg4; this.e = _arg5; this.f = _arg6; this.g = _arg7; this.h = _arg8; this.i = _arg9; this.j = _arg10; this.k = _arg11; this.l = _arg12; } public function clone():Matrix3D{ return (new Matrix3D(a, b, c, d, e, f, g, h, i, j, k, l)); } public function toString():String{ return (((((((((((((((((((((((((("[Matrix3D " + "[") + a.toFixed(3)) + " ") + b.toFixed(3)) + " ") + c.toFixed(3)) + " ") + d.toFixed(3)) + "] [") + e.toFixed(3)) + " ") + f.toFixed(3)) + " ") + g.toFixed(3)) + " ") + h.toFixed(3)) + "] [") + i.toFixed(3)) + " ") + j.toFixed(3)) + " ") + k.toFixed(3)) + " ") + l.toFixed(3)) + "]]")); } public function scale(_arg1:Number=1, _arg2:Number=1, _arg3:Number=1):void{ a = (a * _arg1); b = (b * _arg1); c = (c * _arg1); d = (d * _arg1); e = (e * _arg2); f = (f * _arg2); g = (g * _arg2); h = (h * _arg2); i = (i * _arg3); j = (j * _arg3); k = (k * _arg3); l = (l * _arg3); } public function offset(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0):void{ d = _arg1; h = _arg2; l = _arg3; } public function translate(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0):void{ d = (d + _arg1); h = (h + _arg2); l = (l + _arg3); } public function equals(_arg1:Matrix3D, _arg2:Number=0):Boolean{ var _local3:Number = (a - _arg1.a); var _local4:Number = (b - _arg1.b); var _local5:Number = (c - _arg1.c); var _local6:Number = (d - _arg1.d); var _local7:Number = (e - _arg1.e); var _local8:Number = (f - _arg1.f); var _local9:Number = (g - _arg1.g); var _local10:Number = (h - _arg1.h); var _local11:Number = (i - _arg1.i); var _local12:Number = (j - _arg1.j); var _local13:Number = (k - _arg1.k); var _local14:Number = (l - _arg1.l); _local3 = ((_local3)<0) ? -(_local3) : _local3; _local4 = ((_local4)<0) ? -(_local4) : _local4; _local5 = ((_local5)<0) ? -(_local5) : _local5; _local6 = ((_local6)<0) ? -(_local6) : _local6; _local7 = ((_local7)<0) ? -(_local7) : _local7; _local8 = ((_local8)<0) ? -(_local8) : _local8; _local9 = ((_local9)<0) ? -(_local9) : _local9; _local10 = ((_local10)<0) ? -(_local10) : _local10; _local11 = ((_local11)<0) ? -(_local11) : _local11; _local12 = ((_local12)<0) ? -(_local12) : _local12; _local13 = ((_local13)<0) ? -(_local13) : _local13; _local14 = ((_local14)<0) ? -(_local14) : _local14; return ((((((((((((((((((((((((_local3 <= _arg2)) && ((_local4 <= _arg2)))) && ((_local5 <= _arg2)))) && ((_local6 <= _arg2)))) && ((_local7 <= _arg2)))) && ((_local8 <= _arg2)))) && ((_local9 <= _arg2)))) && ((_local10 <= _arg2)))) && ((_local11 <= _arg2)))) && ((_local12 <= _arg2)))) && ((_local13 <= _arg2)))) && ((_local14 <= _arg2)))); } public function toIdentity():void{ a = (f = (k = 1)); b = (c = (d = (e = (g = (h = (i = (j = (l = 0)))))))); } public function rotate(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0):void{ var _local4:Number = Math.cos(_arg1); var _local5:Number = Math.sin(_arg1); var _local6:Number = Math.cos(_arg2); var _local7:Number = Math.sin(_arg2); var _local8:Number = Math.cos(_arg3); var _local9:Number = Math.sin(_arg3); var _local10:Number = (_local8 * _local7); var _local11:Number = (_local9 * _local7); var _local12:Number = (_local8 * _local6); var _local13:Number = ((_local10 * _local5) - (_local9 * _local4)); var _local14:Number = ((_local10 * _local4) + (_local9 * _local5)); var _local15:Number = (_local9 * _local6); var _local16:Number = ((_local11 * _local5) + (_local8 * _local4)); var _local17:Number = ((_local11 * _local4) - (_local8 * _local5)); var _local18:Number = -(_local7); var _local19:Number = (_local6 * _local5); var _local20:Number = (_local6 * _local4); var _local21:Number = a; var _local22:Number = b; var _local23:Number = c; var _local24:Number = d; var _local25:Number = e; var _local26:Number = f; var _local27:Number = g; var _local28:Number = h; var _local29:Number = i; var _local30:Number = j; var _local31:Number = k; var _local32:Number = l; a = (((_local12 * _local21) + (_local13 * _local25)) + (_local14 * _local29)); b = (((_local12 * _local22) + (_local13 * _local26)) + (_local14 * _local30)); c = (((_local12 * _local23) + (_local13 * _local27)) + (_local14 * _local31)); d = (((_local12 * _local24) + (_local13 * _local28)) + (_local14 * _local32)); e = (((_local15 * _local21) + (_local16 * _local25)) + (_local17 * _local29)); f = (((_local15 * _local22) + (_local16 * _local26)) + (_local17 * _local30)); g = (((_local15 * _local23) + (_local16 * _local27)) + (_local17 * _local31)); h = (((_local15 * _local24) + (_local16 * _local28)) + (_local17 * _local32)); i = (((_local18 * _local21) + (_local19 * _local25)) + (_local20 * _local29)); j = (((_local18 * _local22) + (_local19 * _local26)) + (_local20 * _local30)); k = (((_local18 * _local23) + (_local19 * _local27)) + (_local20 * _local31)); l = (((_local18 * _local24) + (_local19 * _local28)) + (_local20 * _local32)); } public function inverseTransform(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0, _arg6:Number=0, _arg7:Number=1, _arg8:Number=1, _arg9:Number=1):void{ var _local10:Number = Math.cos(_arg4); var _local11:Number = Math.sin(-(_arg4)); var _local12:Number = Math.cos(_arg5); var _local13:Number = Math.sin(-(_arg5)); var _local14:Number = Math.cos(_arg6); var _local15:Number = Math.sin(-(_arg6)); var _local16:Number = (_local11 * _local13); var _local17:Number = (1 / _arg7); var _local18:Number = (1 / _arg8); var _local19:Number = (1 / _arg9); var _local20:Number = (_local12 * _local17); var _local21:Number = (_local10 * _local18); var _local22:Number = (_local11 * _local19); var _local23:Number = (_local10 * _local19); var _local24:Number = (_local14 * _local20); var _local25:Number = (-(_local15) * _local20); var _local26:Number = (_local13 * _local17); var _local27:Number = -((((_local24 * _arg1) + (_local25 * _arg2)) + (_local26 * _arg3))); var _local28:Number = ((_local15 * _local21) + ((_local16 * _local14) * _local18)); var _local29:Number = ((_local14 * _local21) - ((_local16 * _local15) * _local18)); var _local30:Number = ((-(_local11) * _local12) * _local18); var _local31:Number = -((((_local28 * _arg1) + (_local29 * _arg2)) + (_local30 * _arg3))); var _local32:Number = ((_local15 * _local22) - ((_local14 * _local13) * _local23)); var _local33:Number = ((_local14 * _local22) + ((_local13 * _local15) * _local23)); var _local34:Number = (_local12 * _local23); var _local35:Number = -((((_local32 * _arg1) + (_local33 * _arg2)) + (_local34 * _arg3))); var _local36:Number = a; var _local37:Number = b; var _local38:Number = c; var _local39:Number = d; var _local40:Number = e; var _local41:Number = f; var _local42:Number = g; var _local43:Number = h; var _local44:Number = i; var _local45:Number = j; var _local46:Number = k; var _local47:Number = l; a = (((_local24 * _local36) + (_local25 * _local40)) + (_local26 * _local44)); b = (((_local24 * _local37) + (_local25 * _local41)) + (_local26 * _local45)); c = (((_local24 * _local38) + (_local25 * _local42)) + (_local26 * _local46)); d = ((((_local24 * _local39) + (_local25 * _local43)) + (_local26 * _local47)) + _local27); e = (((_local28 * _local36) + (_local29 * _local40)) + (_local30 * _local44)); f = (((_local28 * _local37) + (_local29 * _local41)) + (_local30 * _local45)); g = (((_local28 * _local38) + (_local29 * _local42)) + (_local30 * _local46)); h = ((((_local28 * _local39) + (_local29 * _local43)) + (_local30 * _local47)) + _local31); i = (((_local32 * _local36) + (_local33 * _local40)) + (_local34 * _local44)); j = (((_local32 * _local37) + (_local33 * _local41)) + (_local34 * _local45)); k = (((_local32 * _local38) + (_local33 * _local42)) + (_local34 * _local46)); l = ((((_local32 * _local39) + (_local33 * _local43)) + (_local34 * _local47)) + _local35); } public function invert():void{ var _local1:Number = a; var _local2:Number = b; var _local3:Number = c; var _local4:Number = d; var _local5:Number = e; var _local6:Number = f; var _local7:Number = g; var _local8:Number = h; var _local9:Number = i; var _local10:Number = j; var _local11:Number = k; var _local12:Number = l; var _local13:Number = (((((((-(_local3) * _local6) * _local9) + ((_local2 * _local7) * _local9)) + ((_local3 * _local5) * _local10)) - ((_local1 * _local7) * _local10)) - ((_local2 * _local5) * _local11)) + ((_local1 * _local6) * _local11)); a = (((-(_local7) * _local10) + (_local6 * _local11)) / _local13); b = (((_local3 * _local10) - (_local2 * _local11)) / _local13); c = (((-(_local3) * _local6) + (_local2 * _local7)) / _local13); d = ((((((((_local4 * _local7) * _local10) - ((_local3 * _local8) * _local10)) - ((_local4 * _local6) * _local11)) + ((_local2 * _local8) * _local11)) + ((_local3 * _local6) * _local12)) - ((_local2 * _local7) * _local12)) / _local13); e = (((_local7 * _local9) - (_local5 * _local11)) / _local13); f = (((-(_local3) * _local9) + (_local1 * _local11)) / _local13); g = (((_local3 * _local5) - (_local1 * _local7)) / _local13); h = ((((((((_local3 * _local8) * _local9) - ((_local4 * _local7) * _local9)) + ((_local4 * _local5) * _local11)) - ((_local1 * _local8) * _local11)) - ((_local3 * _local5) * _local12)) + ((_local1 * _local7) * _local12)) / _local13); i = (((-(_local6) * _local9) + (_local5 * _local10)) / _local13); j = (((_local2 * _local9) - (_local1 * _local10)) / _local13); k = (((-(_local2) * _local5) + (_local1 * _local6)) / _local13); l = ((((((((_local4 * _local6) * _local9) - ((_local2 * _local8) * _local9)) - ((_local4 * _local5) * _local10)) + ((_local1 * _local8) * _local10)) + ((_local2 * _local5) * _local12)) - ((_local1 * _local6) * _local12)) / _local13); } public function inverseCombine(_arg1:Matrix3D):void{ var _local2:Number = a; var _local3:Number = b; var _local4:Number = c; var _local5:Number = d; var _local6:Number = e; var _local7:Number = f; var _local8:Number = g; var _local9:Number = h; var _local10:Number = i; var _local11:Number = j; var _local12:Number = k; var _local13:Number = l; a = (((_local2 * _arg1.a) + (_local3 * _arg1.e)) + (_local4 * _arg1.i)); b = (((_local2 * _arg1.b) + (_local3 * _arg1.f)) + (_local4 * _arg1.j)); c = (((_local2 * _arg1.c) + (_local3 * _arg1.g)) + (_local4 * _arg1.k)); d = ((((_local2 * _arg1.d) + (_local3 * _arg1.h)) + (_local4 * _arg1.l)) + _local5); e = (((_local6 * _arg1.a) + (_local7 * _arg1.e)) + (_local8 * _arg1.i)); f = (((_local6 * _arg1.b) + (_local7 * _arg1.f)) + (_local8 * _arg1.j)); g = (((_local6 * _arg1.c) + (_local7 * _arg1.g)) + (_local8 * _arg1.k)); h = ((((_local6 * _arg1.d) + (_local7 * _arg1.h)) + (_local8 * _arg1.l)) + _local9); i = (((_local10 * _arg1.a) + (_local11 * _arg1.e)) + (_local12 * _arg1.i)); j = (((_local10 * _arg1.b) + (_local11 * _arg1.f)) + (_local12 * _arg1.j)); k = (((_local10 * _arg1.c) + (_local11 * _arg1.g)) + (_local12 * _arg1.k)); l = ((((_local10 * _arg1.d) + (_local11 * _arg1.h)) + (_local12 * _arg1.l)) + _local13); } public function toTransform(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0, _arg6:Number=0, _arg7:Number=1, _arg8:Number=1, _arg9:Number=1):void{ var _local10:Number = Math.cos(_arg4); var _local11:Number = Math.sin(_arg4); var _local12:Number = Math.cos(_arg5); var _local13:Number = Math.sin(_arg5); var _local14:Number = Math.cos(_arg6); var _local15:Number = Math.sin(_arg6); var _local16:Number = (_local14 * _local13); var _local17:Number = (_local15 * _local13); var _local18:Number = (_local12 * _arg7); var _local19:Number = (_local11 * _arg8); var _local20:Number = (_local10 * _arg8); var _local21:Number = (_local10 * _arg9); var _local22:Number = (_local11 * _arg9); a = (_local14 * _local18); b = ((_local16 * _local19) - (_local15 * _local20)); c = ((_local16 * _local21) + (_local15 * _local22)); d = _arg1; e = (_local15 * _local18); f = ((_local17 * _local19) + (_local14 * _local20)); g = ((_local17 * _local21) - (_local14 * _local22)); h = _arg2; i = (-(_local13) * _arg7); j = (_local12 * _local19); k = (_local12 * _local21); l = _arg3; } public function inverseRotate(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0):void{ var _local4:Number = Math.cos(_arg1); var _local5:Number = Math.sin(-(_arg1)); var _local6:Number = Math.cos(_arg2); var _local7:Number = Math.sin(-(_arg2)); var _local8:Number = Math.cos(_arg3); var _local9:Number = Math.sin(-(_arg3)); var _local10:Number = (_local5 * _local7); var _local11:Number = (_local6 * _local8); var _local12:Number = (-(_local6) * _local9); var _local13:Number = _local7; var _local14:Number = ((_local4 * _local9) + (_local10 * _local8)); var _local15:Number = ((_local4 * _local8) - (_local10 * _local9)); var _local16:Number = (-(_local5) * _local6); var _local17:Number = ((_local5 * _local9) - ((_local4 * _local8) * _local7)); var _local18:Number = ((_local5 * _local8) + ((_local4 * _local7) * _local9)); var _local19:Number = (_local4 * _local6); var _local20:Number = a; var _local21:Number = b; var _local22:Number = c; var _local23:Number = d; var _local24:Number = e; var _local25:Number = f; var _local26:Number = g; var _local27:Number = h; var _local28:Number = i; var _local29:Number = j; var _local30:Number = k; var _local31:Number = l; a = (((_local11 * _local20) + (_local12 * _local24)) + (_local13 * _local28)); b = (((_local11 * _local21) + (_local12 * _local25)) + (_local13 * _local29)); c = (((_local11 * _local22) + (_local12 * _local26)) + (_local13 * _local30)); d = (((_local11 * _local23) + (_local12 * _local27)) + (_local13 * _local31)); e = (((_local14 * _local20) + (_local15 * _local24)) + (_local16 * _local28)); f = (((_local14 * _local21) + (_local15 * _local25)) + (_local16 * _local29)); g = (((_local14 * _local22) + (_local15 * _local26)) + (_local16 * _local30)); h = (((_local14 * _local23) + (_local15 * _local27)) + (_local16 * _local31)); i = (((_local17 * _local20) + (_local18 * _local24)) + (_local19 * _local28)); j = (((_local17 * _local21) + (_local18 * _local25)) + (_local19 * _local29)); k = (((_local17 * _local22) + (_local18 * _local26)) + (_local19 * _local30)); l = (((_local17 * _local23) + (_local18 * _local27)) + (_local19 * _local31)); } public function copy(_arg1:Matrix3D):void{ a = _arg1.a; b = _arg1.b; c = _arg1.c; d = _arg1.d; e = _arg1.e; f = _arg1.f; g = _arg1.g; h = _arg1.h; i = _arg1.i; j = _arg1.j; k = _arg1.k; l = _arg1.l; } public function fromAxisAngle(_arg1:Point3D, _arg2:Number=0):void{ var _local3:Number = Math.cos(_arg2); var _local4:Number = Math.sin(_arg2); var _local5:Number = (1 - _local3); var _local6:Number = _arg1.x; var _local7:Number = _arg1.y; var _local8:Number = _arg1.z; a = (((_local5 * _local6) * _local6) + _local3); b = (((_local5 * _local6) * _local7) - (_local8 * _local4)); c = (((_local5 * _local6) * _local8) + (_local7 * _local4)); d = 0; e = (((_local5 * _local6) * _local7) + (_local8 * _local4)); f = (((_local5 * _local7) * _local7) + _local3); g = (((_local5 * _local7) * _local8) - (_local6 * _local4)); h = 0; i = (((_local5 * _local6) * _local8) - (_local7 * _local4)); j = (((_local5 * _local7) * _local8) + (_local6 * _local4)); k = (((_local5 * _local8) * _local8) + _local3); l = 0; } public function getRotations(_arg1:Point3D=null):Point3D{ if (_arg1 == null){ _arg1 = new Point3D(); }; _arg1.y = -(Math.asin(i)); if ((((-0.999 <= i)) && ((i <= 0.999)))){ _arg1.x = Math.atan2(j, k); _arg1.z = Math.atan2(e, a); } else { _arg1.x = 0; _arg1.z = Math.atan2(-(b), f); }; return (_arg1); } public function inverseScale(_arg1:Number=1, _arg2:Number=1, _arg3:Number=1):void{ var _local4:Number = (1 / _arg1); var _local5:Number = (1 / _arg2); var _local6:Number = (1 / _arg3); a = (a * _local4); b = (b * _local4); c = (c * _local4); d = (d * _local4); e = (e * _local5); f = (f * _local5); g = (g * _local5); h = (h * _local5); i = (i * _local6); j = (j * _local6); k = (k * _local6); l = (l * _local6); } public function transform(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0, _arg6:Number=0, _arg7:Number=1, _arg8:Number=1, _arg9:Number=1):void{ var _local10:Number = Math.cos(_arg4); var _local11:Number = Math.sin(_arg4); var _local12:Number = Math.cos(_arg5); var _local13:Number = Math.sin(_arg5); var _local14:Number = Math.cos(_arg6); var _local15:Number = Math.sin(_arg6); var _local16:Number = (_local14 * _local13); var _local17:Number = (_local15 * _local13); var _local18:Number = (_local12 * _arg7); var _local19:Number = (_local11 * _arg8); var _local20:Number = (_local10 * _arg8); var _local21:Number = (_local10 * _arg9); var _local22:Number = (_local11 * _arg9); var _local23:Number = (_local14 * _local18); var _local24:Number = ((_local16 * _local19) - (_local15 * _local20)); var _local25:Number = ((_local16 * _local21) + (_local15 * _local22)); var _local26:Number = _arg1; var _local27:Number = (_local15 * _local18); var _local28:Number = ((_local17 * _local19) + (_local14 * _local20)); var _local29:Number = ((_local17 * _local21) - (_local14 * _local22)); var _local30:Number = _arg2; var _local31:Number = (-(_local13) * _arg7); var _local32:Number = (_local12 * _local19); var _local33:Number = (_local12 * _local21); var _local34:Number = _arg3; var _local35:Number = a; var _local36:Number = b; var _local37:Number = c; var _local38:Number = d; var _local39:Number = e; var _local40:Number = f; var _local41:Number = g; var _local42:Number = h; var _local43:Number = i; var _local44:Number = j; var _local45:Number = k; var _local46:Number = l; a = (((_local23 * _local35) + (_local24 * _local39)) + (_local25 * _local43)); b = (((_local23 * _local36) + (_local24 * _local40)) + (_local25 * _local44)); c = (((_local23 * _local37) + (_local24 * _local41)) + (_local25 * _local45)); d = ((((_local23 * _local38) + (_local24 * _local42)) + (_local25 * _local46)) + _local26); e = (((_local27 * _local35) + (_local28 * _local39)) + (_local29 * _local43)); f = (((_local27 * _local36) + (_local28 * _local40)) + (_local29 * _local44)); g = (((_local27 * _local37) + (_local28 * _local41)) + (_local29 * _local45)); h = ((((_local27 * _local38) + (_local28 * _local42)) + (_local29 * _local46)) + _local30); i = (((_local31 * _local35) + (_local32 * _local39)) + (_local33 * _local43)); j = (((_local31 * _local36) + (_local32 * _local40)) + (_local33 * _local44)); k = (((_local31 * _local37) + (_local32 * _local41)) + (_local33 * _local45)); l = ((((_local31 * _local38) + (_local32 * _local42)) + (_local33 * _local46)) + _local34); } public function translateLocal(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0):void{ d = (d + (((a * _arg1) + (b * _arg2)) + (c * _arg3))); h = (h + (((e * _arg1) + (f * _arg2)) + (g * _arg3))); l = (l + (((i * _arg1) + (j * _arg2)) + (k * _arg3))); } public function inverseTranslate(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0):void{ d = (d - _arg1); h = (h - _arg2); l = (l - _arg3); } public function combine(_arg1:Matrix3D):void{ var _local2:Number = a; var _local3:Number = b; var _local4:Number = c; var _local5:Number = d; var _local6:Number = e; var _local7:Number = f; var _local8:Number = g; var _local9:Number = h; var _local10:Number = i; var _local11:Number = j; var _local12:Number = k; var _local13:Number = l; a = (((_arg1.a * _local2) + (_arg1.b * _local6)) + (_arg1.c * _local10)); b = (((_arg1.a * _local3) + (_arg1.b * _local7)) + (_arg1.c * _local11)); c = (((_arg1.a * _local4) + (_arg1.b * _local8)) + (_arg1.c * _local12)); d = ((((_arg1.a * _local5) + (_arg1.b * _local9)) + (_arg1.c * _local13)) + _arg1.d); e = (((_arg1.e * _local2) + (_arg1.f * _local6)) + (_arg1.g * _local10)); f = (((_arg1.e * _local3) + (_arg1.f * _local7)) + (_arg1.g * _local11)); g = (((_arg1.e * _local4) + (_arg1.f * _local8)) + (_arg1.g * _local12)); h = ((((_arg1.e * _local5) + (_arg1.f * _local9)) + (_arg1.g * _local13)) + _arg1.h); i = (((_arg1.i * _local2) + (_arg1.j * _local6)) + (_arg1.k * _local10)); j = (((_arg1.i * _local3) + (_arg1.j * _local7)) + (_arg1.k * _local11)); k = (((_arg1.i * _local4) + (_arg1.j * _local8)) + (_arg1.k * _local12)); l = ((((_arg1.i * _local5) + (_arg1.j * _local9)) + (_arg1.k * _local13)) + _arg1.l); } public static function inverseTranslationMatrix(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0):Matrix3D{ return (new Matrix3D(1, 0, 0, -(_arg1), 0, 1, 0, -(_arg2), 0, 0, 1, -(_arg3))); } public static function translationMatrix(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0):Matrix3D{ return (new Matrix3D(1, 0, 0, _arg1, 0, 1, 0, _arg2, 0, 0, 1, _arg3)); } public static function axisAngleToMatrix(_arg1:Point3D, _arg2:Number=0):Matrix3D{ var _local3:Number = Math.cos(_arg2); var _local4:Number = Math.sin(_arg2); var _local5:Number = (1 - _local3); var _local6:Number = _arg1.x; var _local7:Number = _arg1.y; var _local8:Number = _arg1.z; var _local9:Matrix3D = new Matrix3D((((_local5 * _local6) * _local6) + _local3), (((_local5 * _local6) * _local7) - (_local8 * _local4)), (((_local5 * _local6) * _local8) + (_local7 * _local4)), 0, (((_local5 * _local6) * _local7) + (_local8 * _local4)), (((_local5 * _local7) * _local7) + _local3), (((_local5 * _local7) * _local8) - (_local6 * _local4)), 0, (((_local5 * _local6) * _local8) - (_local7 * _local4)), (((_local5 * _local7) * _local8) + (_local6 * _local4)), (((_local5 * _local8) * _local8) + _local3), 0); return (_local9); } public static function inverseRotationMatrix(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0):Matrix3D{ var _local4:Number = Math.cos(_arg1); var _local5:Number = Math.sin(-(_arg1)); var _local6:Number = Math.cos(_arg2); var _local7:Number = Math.sin(-(_arg2)); var _local8:Number = Math.cos(_arg3); var _local9:Number = Math.sin(-(_arg3)); var _local10:Number = (_local5 * _local7); return (new Matrix3D((_local6 * _local8), (-(_local6) * _local9), _local7, 0, ((_local4 * _local9) + (_local10 * _local8)), ((_local4 * _local8) - (_local10 * _local9)), (-(_local5) * _local6), 0, ((_local5 * _local9) - ((_local4 * _local8) * _local7)), ((_local5 * _local8) + ((_local4 * _local7) * _local9)), (_local4 * _local6), 0)); } public static function inverseTransformationMatrix(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0, _arg6:Number=0, _arg7:Number=1, _arg8:Number=1, _arg9:Number=1):Matrix3D{ var _local10:Number = Math.cos(-(_arg4)); var _local11:Number = Math.sin(-(_arg4)); var _local12:Number = Math.cos(-(_arg5)); var _local13:Number = Math.sin(-(_arg5)); var _local14:Number = Math.cos(-(_arg6)); var _local15:Number = Math.sin(-(_arg6)); var _local16:Number = (_local11 * _local13); var _local17:Number = (1 / _arg7); var _local18:Number = (1 / _arg8); var _local19:Number = (1 / _arg9); var _local20:Number = (_local12 * _local17); var _local21:Number = (_local10 * _local18); var _local22:Number = (_local11 * _local19); var _local23:Number = (_local10 * _local19); var _local24:Number = (_local14 * _local20); var _local25:Number = (-(_local15) * _local20); var _local26:Number = (_local13 * _local17); var _local27:Number = ((_local15 * _local21) + ((_local16 * _local14) * _local18)); var _local28:Number = ((_local14 * _local21) - ((_local16 * _local15) * _local18)); var _local29:Number = ((-(_local11) * _local12) * _local18); var _local30:Number = ((_local15 * _local22) - ((_local14 * _local13) * _local23)); var _local31:Number = ((_local14 * _local22) + ((_local13 * _local15) * _local23)); var _local32:Number = (_local12 * _local23); return (new Matrix3D(_local24, _local25, _local26, -((((_local24 * _arg1) + (_local25 * _arg2)) + (_local26 * _arg3))), _local27, _local28, _local29, -((((_local27 * _arg1) + (_local28 * _arg2)) + (_local29 * _arg3))), _local30, _local31, _local32, -((((_local30 * _arg1) + (_local31 * _arg2)) + (_local32 * _arg3))))); } public static function inverseMatrix(_arg1:Matrix3D):Matrix3D{ var _local2:Number = (((((((-(_arg1.c) * _arg1.f) * _arg1.i) + ((_arg1.b * _arg1.g) * _arg1.i)) + ((_arg1.c * _arg1.e) * _arg1.j)) - ((_arg1.a * _arg1.g) * _arg1.j)) - ((_arg1.b * _arg1.e) * _arg1.k)) + ((_arg1.a * _arg1.f) * _arg1.k)); var _local3:Number = (((-(_arg1.g) * _arg1.j) + (_arg1.f * _arg1.k)) / _local2); var _local4:Number = (((_arg1.c * _arg1.j) - (_arg1.b * _arg1.k)) / _local2); var _local5:Number = (((-(_arg1.c) * _arg1.f) + (_arg1.b * _arg1.g)) / _local2); var _local6:Number = ((((((((_arg1.d * _arg1.g) * _arg1.j) - ((_arg1.c * _arg1.h) * _arg1.j)) - ((_arg1.d * _arg1.f) * _arg1.k)) + ((_arg1.b * _arg1.h) * _arg1.k)) + ((_arg1.c * _arg1.f) * _arg1.l)) - ((_arg1.b * _arg1.g) * _arg1.l)) / _local2); var _local7:Number = (((_arg1.g * _arg1.i) - (_arg1.e * _arg1.k)) / _local2); var _local8:Number = (((-(_arg1.c) * _arg1.i) + (_arg1.a * _arg1.k)) / _local2); var _local9:Number = (((_arg1.c * _arg1.e) - (_arg1.a * _arg1.g)) / _local2); var _local10:Number = ((((((((_arg1.c * _arg1.h) * _arg1.i) - ((_arg1.d * _arg1.g) * _arg1.i)) + ((_arg1.d * _arg1.e) * _arg1.k)) - ((_arg1.a * _arg1.h) * _arg1.k)) - ((_arg1.c * _arg1.e) * _arg1.l)) + ((_arg1.a * _arg1.g) * _arg1.l)) / _local2); var _local11:Number = (((-(_arg1.f) * _arg1.i) + (_arg1.e * _arg1.j)) / _local2); var _local12:Number = (((_arg1.b * _arg1.i) - (_arg1.a * _arg1.j)) / _local2); var _local13:Number = (((-(_arg1.b) * _arg1.e) + (_arg1.a * _arg1.f)) / _local2); var _local14:Number = ((((((((_arg1.d * _arg1.f) * _arg1.i) - ((_arg1.b * _arg1.h) * _arg1.i)) - ((_arg1.d * _arg1.e) * _arg1.j)) + ((_arg1.a * _arg1.h) * _arg1.j)) + ((_arg1.b * _arg1.e) * _arg1.l)) - ((_arg1.a * _arg1.f) * _arg1.l)) / _local2); return (new Matrix3D(_local3, _local4, _local5, _local6, _local7, _local8, _local9, _local10, _local11, _local12, _local13, _local14)); } public static function inverseScaleMatrix(_arg1:Number=1, _arg2:Number=1, _arg3:Number=1):Matrix3D{ return (new Matrix3D((1 / _arg1), 0, 0, 0, 0, (1 / _arg2), 0, 0, 0, 0, (1 / _arg3), 0)); } public static function scaleMatrix(_arg1:Number=1, _arg2:Number=1, _arg3:Number=1):Matrix3D{ return (new Matrix3D(_arg1, 0, 0, 0, 0, _arg2, 0, 0, 0, 0, _arg3, 0)); } public static function transformationMatrix(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0, _arg6:Number=0, _arg7:Number=1, _arg8:Number=1, _arg9:Number=1):Matrix3D{ var _local10:Number = Math.cos(_arg4); var _local11:Number = Math.sin(_arg4); var _local12:Number = Math.cos(_arg5); var _local13:Number = Math.sin(_arg5); var _local14:Number = Math.cos(_arg6); var _local15:Number = Math.sin(_arg6); var _local16:Number = (_local14 * _local13); var _local17:Number = (_local15 * _local13); var _local18:Number = (_local12 * _arg7); var _local19:Number = (_local11 * _arg8); var _local20:Number = (_local10 * _arg8); var _local21:Number = (_local10 * _arg9); var _local22:Number = (_local11 * _arg9); return (new Matrix3D((_local14 * _local18), ((_local16 * _local19) - (_local15 * _local20)), ((_local16 * _local21) + (_local15 * _local22)), _arg1, (_local15 * _local18), ((_local17 * _local19) + (_local14 * _local20)), ((_local17 * _local21) - (_local14 * _local22)), _arg2, (-(_local13) * _arg7), (_local12 * _local19), (_local12 * _local21), _arg3)); } public static function product(_arg1:Matrix3D, _arg2:Matrix3D):Matrix3D{ return (new Matrix3D((((_arg1.a * _arg2.a) + (_arg1.b * _arg2.e)) + (_arg1.c * _arg2.i)), (((_arg1.a * _arg2.b) + (_arg1.b * _arg2.f)) + (_arg1.c * _arg2.j)), (((_arg1.a * _arg2.c) + (_arg1.b * _arg2.g)) + (_arg1.c * _arg2.k)), ((((_arg1.a * _arg2.d) + (_arg1.b * _arg2.h)) + (_arg1.c * _arg2.l)) + _arg1.d), (((_arg1.e * _arg2.a) + (_arg1.f * _arg2.e)) + (_arg1.g * _arg2.i)), (((_arg1.e * _arg2.b) + (_arg1.f * _arg2.f)) + (_arg1.g * _arg2.j)), (((_arg1.e * _arg2.c) + (_arg1.f * _arg2.g)) + (_arg1.g * _arg2.k)), ((((_arg1.e * _arg2.d) + (_arg1.f * _arg2.h)) + (_arg1.g * _arg2.l)) + _arg1.h), (((_arg1.i * _arg2.a) + (_arg1.j * _arg2.e)) + (_arg1.k * _arg2.i)), (((_arg1.i * _arg2.b) + (_arg1.j * _arg2.f)) + (_arg1.k * _arg2.j)), (((_arg1.i * _arg2.c) + (_arg1.j * _arg2.g)) + (_arg1.k * _arg2.k)), ((((_arg1.i * _arg2.d) + (_arg1.j * _arg2.h)) + (_arg1.k * _arg2.l)) + _arg1.l))); } public static function rotationMatrix(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0):Matrix3D{ var _local4:Number = Math.cos(_arg1); var _local5:Number = Math.sin(_arg1); var _local6:Number = Math.cos(_arg2); var _local7:Number = Math.sin(_arg2); var _local8:Number = Math.cos(_arg3); var _local9:Number = Math.sin(_arg3); var _local10:Number = (_local8 * _local7); var _local11:Number = (_local9 * _local7); return (new Matrix3D((_local8 * _local6), ((_local10 * _local5) - (_local9 * _local4)), ((_local10 * _local4) + (_local9 * _local5)), 0, (_local9 * _local6), ((_local11 * _local5) + (_local8 * _local4)), ((_local11 * _local4) - (_local8 * _local5)), 0, -(_local7), (_local6 * _local5), (_local6 * _local4), 0)); } } }//package alternativa.types
Section 53
//Point3D (alternativa.types.Point3D) package alternativa.types { import flash.geom.*; public final class Point3D { public var x:Number; public var y:Number; public var z:Number; public function Point3D(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0){ this.x = _arg1; this.y = _arg2; this.z = _arg3; } public function floor():void{ x = Math.floor(x); y = Math.floor(y); z = Math.floor(z); } public function add(_arg1:Point3D):void{ x = (x + _arg1.x); y = (y + _arg1.y); z = (z + _arg1.z); } public function toString():String{ return ((((((("[Point3D X: " + x.toFixed(3)) + " Y:") + y.toFixed(3)) + " Z:") + z.toFixed(3)) + "]")); } public function multiply(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); z = (z * _arg1); } public function transform(_arg1:Matrix3D):void{ var _local2:Number = x; var _local3:Number = y; var _local4:Number = z; x = ((((_arg1.a * _local2) + (_arg1.b * _local3)) + (_arg1.c * _local4)) + _arg1.d); y = ((((_arg1.e * _local2) + (_arg1.f * _local3)) + (_arg1.g * _local4)) + _arg1.h); z = ((((_arg1.i * _local2) + (_arg1.j * _local3)) + (_arg1.k * _local4)) + _arg1.l); } public function get length():Number{ return (Math.sqrt((((x * x) + (y * y)) + (z * z)))); } public function clone():Point3D{ return (new Point3D(x, y, z)); } public function set length(_arg1:Number):void{ var _local2:Number; if (((((!((x == 0))) || (!((y == 0))))) || (!((z == 0))))){ _local2 = (_arg1 / length); x = (x * _local2); y = (y * _local2); z = (z * _local2); } else { z = _arg1; }; } public function normalize():void{ var _local1:Number; if (((((!((x == 0))) || (!((y == 0))))) || (!((z == 0))))){ _local1 = Math.sqrt((((x * x) + (y * y)) + (z * z))); x = (x / _local1); y = (y / _local1); z = (z / _local1); } else { z = 1; }; } public function get lengthSqr():Number{ return ((((x * x) + (y * y)) + (z * z))); } public function reset():void{ x = 0; y = 0; z = 0; } public function copy(_arg1:Point3D):void{ x = _arg1.x; y = _arg1.y; z = _arg1.z; } public function invert():void{ x = -(x); y = -(y); z = -(z); } public function subtract(_arg1:Point3D):void{ x = (x - _arg1.x); y = (y - _arg1.y); z = (z - _arg1.z); } public function toPoint():Point{ return (new Point(x, y)); } public function round():void{ x = Math.round(x); y = Math.round(y); z = Math.round(z); } public function equals(_arg1:Point3D, _arg2:Number=0):Boolean{ return (((((((((((((x - _arg1.x) <= _arg2)) && (((x - _arg1.x) >= -(_arg2))))) && (((y - _arg1.y) <= _arg2)))) && (((y - _arg1.y) >= -(_arg2))))) && (((z - _arg1.z) <= _arg2)))) && (((z - _arg1.z) >= -(_arg2))))); } public static function cross(_arg1:Point3D, _arg2:Point3D):Point3D{ return (new Point3D(((_arg1.y * _arg2.z) - (_arg1.z * _arg2.y)), ((_arg1.z * _arg2.x) - (_arg1.x * _arg2.z)), ((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x)))); } public static function cross2D(_arg1:Point3D, _arg2:Point3D):Number{ return (((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x))); } public static function angle(_arg1:Point3D, _arg2:Point3D):Number{ var _local3:Number = Math.sqrt(((((_arg1.x * _arg1.x) + (_arg1.y * _arg1.y)) + (_arg1.z * _arg1.z)) * (((_arg2.x * _arg2.x) + (_arg2.y * _arg2.y)) + (_arg2.z * _arg2.z)))); var _local4:Number = ((_local3)!=0) ? (dot(_arg1, _arg2) / _local3) : 1; return (Math.acos(_local4)); } public static function average(_arg1:Point3D, _arg2:Point3D=null, _arg3:Point3D=null, _arg4:Point3D=null):Point3D{ if (_arg2 == null){ return (_arg1.clone()); }; if (_arg3 == null){ return (new Point3D(((_arg1.x + _arg2.x) * 0.5), ((_arg1.y + _arg2.y) * 0.5), ((_arg1.z + _arg2.z) * 0.5))); }; if (_arg4 == null){ return (new Point3D((((_arg1.x + _arg2.x) + _arg3.x) / 3), (((_arg1.y + _arg2.y) + _arg3.y) / 3), (((_arg1.z + _arg2.z) + _arg3.z) / 3))); }; return (new Point3D(((((_arg1.x + _arg2.x) + _arg3.x) + _arg4.x) * 0.25), ((((_arg1.y + _arg2.y) + _arg3.y) + _arg4.y) * 0.25), ((((_arg1.z + _arg2.z) + _arg3.z) + _arg4.z) / 0.25))); } public static function random(_arg1:Number=0, _arg2:Number=0, _arg3:Number=0, _arg4:Number=0, _arg5:Number=0, _arg6:Number=0):Point3D{ return (new Point3D((_arg1 + (Math.random() * (_arg2 - _arg1))), (_arg3 + (Math.random() * (_arg4 - _arg3))), (_arg5 + (Math.random() * (_arg6 - _arg5))))); } public static function interpolate(_arg1:Point3D, _arg2:Point3D, _arg3:Number=0.5):Point3D{ return (new Point3D((_arg1.x + ((_arg2.x - _arg1.x) * _arg3)), (_arg1.y + ((_arg2.y - _arg1.y) * _arg3)), (_arg1.z + ((_arg2.z - _arg1.z) * _arg3)))); } public static function dot(_arg1:Point3D, _arg2:Point3D):Number{ return ((((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y)) + (_arg1.z * _arg2.z))); } public static function sum(_arg1:Point3D, _arg2:Point3D):Point3D{ return (new Point3D((_arg1.x + _arg2.x), (_arg1.y + _arg2.y), (_arg1.z + _arg2.z))); } public static function dot2D(_arg1:Point3D, _arg2:Point3D):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } public static function difference(_arg1:Point3D, _arg2:Point3D):Point3D{ return (new Point3D((_arg1.x - _arg2.x), (_arg1.y - _arg2.y), (_arg1.z - _arg2.z))); } public static function angleFast(_arg1:Point3D, _arg2:Point3D):Number{ var _local3:Number = dot(_arg1, _arg2); if (Math.abs(_local3) > 1){ _local3 = ((_local3)>0) ? 1 : -1; }; return (Math.acos(_local3)); } } }//package alternativa.types
Section 54
//Set (alternativa.types.Set) package alternativa.types { import flash.utils.*; public dynamic final class Set extends Dictionary { private var weakKeys:Boolean; public function Set(_arg1:Boolean=false){ this.weakKeys = _arg1; super(_arg1); } public function add(_arg1):void{ this[_arg1] = true; } public function isEmpty():Boolean{ var _local1:*; for (_local1 in this) { return (false); }; return (true); } public function remove(_arg1):void{ delete this[_arg1]; } public function get length():uint{ var _local2:*; var _local1:uint; for (_local2 in this) { _local1++; }; return (_local1); } public function take(){ var _local1:*; for (_local1 in this) { delete this[_local1]; return (_local1); }; return (null); } public function clear():void{ var _local1:*; for (_local1 in this) { delete this[_local1]; }; } public function any(){ var _local3:*; var _local1:uint; var _local2:uint = (Math.random() * length); for (_local3 in this) { if (_local1 == _local2){ return (_local3); }; _local1++; }; return (null); } public function isSingle():Boolean{ var _local2:*; var _local1:Boolean; for (_local2 in this) { if (_local1){ return (false); }; _local1 = true; }; return (_local1); } public function concat(_arg1:Set):void{ var _local2:*; for (_local2 in _arg1) { this[_local2] = true; }; } public function subtract(_arg1:Set):void{ var _local2:*; for (_local2 in _arg1) { delete this[_local2]; }; } public function toString():String{ var _local3:*; var _local1:int; var _local2 = ""; for (_local3 in this) { _local2 = (_local2 + ("," + _local3)); _local1++; }; return (((("[Set length:" + _local1) + ((_local1 > 0)) ? (" " + _local2.substring(1)) : "") + "]")); } public function has(_arg1):Boolean{ return (this[_arg1]); } public function peek(){ var _local1:*; for (_local1 in this) { return (_local1); }; return (null); } public function clone():Set{ var _local2:*; var _local1:Set = new Set(weakKeys); for (_local2 in this) { _local1[_local2] = true; }; return (_local1); } public function toArray():Array{ var _local2:*; var _local1:Array = new Array(); for (_local2 in this) { _local1.push(_local2); }; return (_local1); } public function intersect(_arg1:Set):void{ var _local3:*; var _local2:Set = new Set(true); for (_local3 in this) { if (_arg1[_local3]){ _local2[_local3] = true; }; delete this[_local3]; }; concat(_local2); } public static function intersection(_arg1:Set, _arg2:Set, _arg3:Boolean=false):Set{ var _local5:*; var _local4:Set = new Set(_arg3); for (_local5 in _arg1) { if (_arg2[_local5]){ _local4[_local5] = true; }; }; return (_local4); } public static function createFromArray(_arg1:Array, _arg2:Boolean=false):Set{ var _local4:*; var _local3:Set = new Set(_arg2); for each (_local4 in _arg1) { _local3[_local4] = true; }; return (_local3); } public static function difference(_arg1:Set, _arg2:Set, _arg3:Boolean=false):Set{ var _local5:*; var _local4:Set = new Set(_arg3); for (_local5 in _arg1) { if (!_arg2[_local5]){ _local4[_local5] = true; }; }; return (_local4); } public static function union(_arg1:Set, _arg2:Set, _arg3:Boolean=false):Set{ var _local5:*; var _local4:Set = new Set(_arg3); for (_local5 in _arg1) { _local4[_local5] = true; }; for (_local5 in _arg2) { _local4[_local5] = true; }; return (_local4); } } }//package alternativa.types
Section 55
//Texture (alternativa.types.Texture) package alternativa.types { import flash.display.*; public class Texture { alternativatypes var _height:uint; alternativatypes var _width:uint; alternativatypes var _name:String; alternativatypes var _bitmapData:BitmapData; public function Texture(_arg1:BitmapData, _arg2:String=null){ if (_arg1 == null){ throw (new Error("Cannot create texture from null bitmapData")); }; _bitmapData = _arg1; _width = _arg1.width; _height = _arg1.height; _name = _arg2; } public function get name():String{ return (_name); } public function get width():uint{ return (_width); } public function get height():uint{ return (_height); } public function get bitmapData():BitmapData{ return (_bitmapData); } public function toString():String{ return ((((((("[Texture " + ((_name)!=null) ? _name : "") + " ") + _width) + "x") + _height) + "]")); } } }//package alternativa.types
Section 56
//KeyboardUtils (alternativa.utils.KeyboardUtils) package alternativa.utils { import flash.utils.*; public class KeyboardUtils { public static const F13:uint = 124; public static const F14:uint = 125; public static const LEFT:uint = 37; public static const RIGHTBRACKET:uint = 221; public static const EQUAL:uint = 187; public static const F15:uint = 126; public static const COMMAND:uint = 15; public static const CONTROL:uint = 17; public static const NUMPAD_DECIMAL:uint = 110; public static const A:uint = 65; public static const B:uint = 66; public static const C:uint = 67; public static const D:uint = 68; public static const E:uint = 69; public static const F:uint = 70; public static const G:uint = 71; public static const H:uint = 72; public static const I:uint = 73; public static const J:uint = 74; public static const K:uint = 75; public static const L:uint = 76; public static const M:uint = 77; public static const N:uint = 78; public static const O:uint = 79; public static const P:uint = 80; public static const Q:uint = 81; public static const R:uint = 82; public static const S:uint = 83; public static const T:uint = 84; public static const U:uint = 85; public static const V:uint = 86; public static const W:uint = 87; public static const X:uint = 88; public static const Y:uint = 89; public static const Z:uint = 90; public static const QUOTE:uint = 222; public static const SLASH:uint = 191; public static const NUMPAD_ENTER:uint = 108; public static const BACKSPACE:uint = 8; public static const PAGE_DOWN:uint = 34; public static const SHIFT:uint = 16; public static const PAGE_UP:uint = 33; public static const MINUS:uint = 189; public static const NUMPAD:uint = 21; public static const TAB:uint = 9; public static const SEMICOLON:uint = 186; public static const LEFTBRACKET:uint = 219; public static const ESCAPE:uint = 27; public static const F3:uint = 114; public static const COMMA:uint = 188; public static const F5:uint = 116; public static const INSERT:uint = 45; public static const END:uint = 35; public static const NUMBER_2:uint = 50; public static const NUMBER_3:uint = 51; public static const NUMBER_5:uint = 53; public static const NUMBER_6:uint = 54; public static const PERIOD:uint = 190; public static const NUMBER_1:uint = 49; public static const DELETE:uint = 46; public static const NUMPAD_6:uint = 102; public static const NUMPAD_1:uint = 97; public static const NUMPAD_2:uint = 98; public static const NUMBER_7:uint = 55; public static const NUMBER_0:uint = 48; public static const NUMBER_9:uint = 57; public static const NUMBER_4:uint = 52; public static const NUMPAD_9:uint = 105; public static const DOWN:uint = 40; public static const NUMPAD_3:uint = 99; public static const NUMBER_8:uint = 56; public static const NUMPAD_5:uint = 101; public static const F7:uint = 118; public static const NUMPAD_7:uint = 103; public static const BACKQUOTE:uint = 192; public static const BACKSLASH:uint = 220; public static const NUMPAD_DIVIDE:uint = 111; public static const NUMPAD_4:uint = 100; public static const F4:uint = 115; public static const NUMPAD_MULTIPLY:uint = 106; public static const NUMPAD_8:uint = 104; public static const HOME:uint = 36; public static const NUMPAD_0:uint = 96; public static const CAPS_LOCK:uint = 20; public static const NUMPAD_ADD:uint = 107; public static const F1:uint = 112; public static const SPACE:uint = 32; public static const F12:uint = 123; public static const NUMPAD_SUBTRACT:uint = 109; public static const F6:uint = 117; public static const F8:uint = 119; public static const F11:uint = 122; public static const ENTER:uint = 13; public static const F2:uint = 113; public static const F10:uint = 121; public static const F9:uint = 120; public static const RIGHT:uint = 39; public static const UP:uint = 38; private static var keyCodeStringRepresentation:Dictionary; private static function fillKeyCodes():void{ keyCodeStringRepresentation = new Dictionary(true); keyCodeStringRepresentation[A] = "A"; keyCodeStringRepresentation[B] = "B"; keyCodeStringRepresentation[C] = "C"; keyCodeStringRepresentation[D] = "D"; keyCodeStringRepresentation[E] = "E"; keyCodeStringRepresentation[F] = "F"; keyCodeStringRepresentation[G] = "G"; keyCodeStringRepresentation[H] = "H"; keyCodeStringRepresentation[I] = "I"; keyCodeStringRepresentation[J] = "J"; keyCodeStringRepresentation[K] = "K"; keyCodeStringRepresentation[L] = "L"; keyCodeStringRepresentation[M] = "M"; keyCodeStringRepresentation[N] = "N"; keyCodeStringRepresentation[O] = "O"; keyCodeStringRepresentation[P] = "P"; keyCodeStringRepresentation[Q] = "Q"; keyCodeStringRepresentation[R] = "R"; keyCodeStringRepresentation[S] = "S"; keyCodeStringRepresentation[T] = "T"; keyCodeStringRepresentation[U] = "U"; keyCodeStringRepresentation[V] = "V"; keyCodeStringRepresentation[W] = "W"; keyCodeStringRepresentation[X] = "X"; keyCodeStringRepresentation[Y] = "Y"; keyCodeStringRepresentation[Z] = "Z"; keyCodeStringRepresentation[SPACE] = "SPACE"; keyCodeStringRepresentation[SEMICOLON] = "SEMICOLON"; keyCodeStringRepresentation[COMMA] = "COMMA"; keyCodeStringRepresentation[PERIOD] = "PERIOD"; keyCodeStringRepresentation[SLASH] = "SLASH"; keyCodeStringRepresentation[BACKQUOTE] = "BACK QUOTE"; keyCodeStringRepresentation[LEFTBRACKET] = "LEFT BRACKET"; keyCodeStringRepresentation[BACKSLASH] = "BACK SLASH"; keyCodeStringRepresentation[RIGHTBRACKET] = "RIGHT BRACKET"; keyCodeStringRepresentation[QUOTE] = "'"; keyCodeStringRepresentation[BACKSPACE] = "BACKSPACE"; keyCodeStringRepresentation[TAB] = "TAB"; keyCodeStringRepresentation[PAGE_UP] = "PAGE UP"; keyCodeStringRepresentation[PAGE_DOWN] = "PAGE DOWN"; keyCodeStringRepresentation[END] = "END"; keyCodeStringRepresentation[HOME] = "HOME"; keyCodeStringRepresentation[INSERT] = "INSERT"; keyCodeStringRepresentation[DELETE] = "DELETE"; keyCodeStringRepresentation[NUMBER_0] = "0"; keyCodeStringRepresentation[NUMBER_1] = "1"; keyCodeStringRepresentation[NUMBER_2] = "2"; keyCodeStringRepresentation[NUMBER_3] = "3"; keyCodeStringRepresentation[NUMBER_4] = "4"; keyCodeStringRepresentation[NUMBER_5] = "5"; keyCodeStringRepresentation[NUMBER_6] = "6"; keyCodeStringRepresentation[NUMBER_7] = "7"; keyCodeStringRepresentation[NUMBER_8] = "8"; keyCodeStringRepresentation[NUMBER_9] = "9"; keyCodeStringRepresentation[EQUAL] = "EQUAL"; keyCodeStringRepresentation[MINUS] = "MINUS"; keyCodeStringRepresentation[NUMPAD] = "NUM LOCK"; keyCodeStringRepresentation[NUMPAD_0] = "0"; keyCodeStringRepresentation[NUMPAD_1] = "1"; keyCodeStringRepresentation[NUMPAD_2] = "2"; keyCodeStringRepresentation[NUMPAD_3] = "3"; keyCodeStringRepresentation[NUMPAD_4] = "4"; keyCodeStringRepresentation[NUMPAD_5] = "5"; keyCodeStringRepresentation[NUMPAD_6] = "6"; keyCodeStringRepresentation[NUMPAD_7] = "7"; keyCodeStringRepresentation[NUMPAD_8] = "8"; keyCodeStringRepresentation[NUMPAD_9] = "9"; keyCodeStringRepresentation[NUMPAD_ADD] = "NUM+"; keyCodeStringRepresentation[NUMPAD_DECIMAL] = "NUM DECIMAL"; keyCodeStringRepresentation[NUMPAD_DIVIDE] = "NUM DIVIDE"; keyCodeStringRepresentation[NUMPAD_ENTER] = "NUMPAD ENTER"; keyCodeStringRepresentation[NUMPAD_MULTIPLY] = "NUM MULTIPLY"; keyCodeStringRepresentation[NUMPAD_SUBTRACT] = "NUM SUBTRACT"; keyCodeStringRepresentation[ENTER] = "ENTER"; keyCodeStringRepresentation[COMMAND] = "COMMAND"; keyCodeStringRepresentation[SHIFT] = "SHIFT"; keyCodeStringRepresentation[CONTROL] = "CONTROL"; keyCodeStringRepresentation[CAPS_LOCK] = "CAPS LOCK"; keyCodeStringRepresentation[ESCAPE] = "ESCAPE"; keyCodeStringRepresentation[LEFT] = "LEFT"; keyCodeStringRepresentation[UP] = "UP"; keyCodeStringRepresentation[RIGHT] = "RIGHT"; keyCodeStringRepresentation[DOWN] = "DOWN"; keyCodeStringRepresentation[F1] = "F1"; keyCodeStringRepresentation[F2] = "F2"; keyCodeStringRepresentation[F3] = "F3"; keyCodeStringRepresentation[F4] = "F4"; keyCodeStringRepresentation[F5] = "F5"; keyCodeStringRepresentation[F6] = "F6"; keyCodeStringRepresentation[F7] = "F7"; keyCodeStringRepresentation[F8] = "F8"; keyCodeStringRepresentation[F9] = "F9"; keyCodeStringRepresentation[F10] = "F10"; keyCodeStringRepresentation[F11] = "F11"; keyCodeStringRepresentation[F12] = "F12"; keyCodeStringRepresentation[F13] = "F13"; keyCodeStringRepresentation[F14] = "F14"; keyCodeStringRepresentation[F15] = "F15"; } public static function getKeyCodeStringRepresentation(_arg1:uint):String{ if (keyCodeStringRepresentation == null){ fillKeyCodes(); }; return (keyCodeStringRepresentation[_arg1]); } } }//package alternativa.utils
Section 57
//MathUtils (alternativa.utils.MathUtils) package alternativa.utils { import flash.geom.*; public final class MathUtils { public static const DEG30:Number = (Math.PI / 6); public static const DEG10:Number = (Math.PI / 18); public static const DEG360:Number = (Math.PI + Math.PI); public static const DEG1:Number = toRad; public static const DEG5:Number = (Math.PI / 36); private static const toDeg:Number = (180 / Math.PI); private static const toRad:Number = (Math.PI / 180); public static const DEG180:Number = Math.PI; public static const DEG60:Number = (Math.PI / 3); public static const DEG45:Number = (Math.PI / 4); public static const DEG90:Number = (Math.PI / 2); public static function vectorCross(_arg1:Point, _arg2:Point):Number{ return (((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x))); } public static function segmentDistance(_arg1:Point, _arg2:Point, _arg3:Point):Number{ var _local4:Number = (_arg2.x - _arg1.x); var _local5:Number = (_arg2.y - _arg1.y); var _local6:Number = (_arg3.x - _arg1.x); var _local7:Number = (_arg3.y - _arg1.y); return ((((_local4 * _local7) - (_local5 * _local6)) / Math.sqrt(((_local4 * _local4) + (_local5 * _local5))))); } public static function vectorAngleFast(_arg1:Point, _arg2:Point):Number{ var _local3:Number = vectorDot(_arg1, _arg2); if (Math.abs(_local3) > 1){ _local3 = ((_local3)>0) ? 1 : -1; }; return (Math.acos(_local3)); } public static function randomAngle():Number{ return ((Math.random() * DEG360)); } public static function vectorAngle(_arg1:Point, _arg2:Point):Number{ var _local3:Number = (_arg1.length * _arg2.length); var _local4:Number = ((_local3)!=0) ? (vectorDot(_arg1, _arg2) / _local3) : 1; return (Math.acos(_local4)); } public static function limitAngle(_arg1:Number):Number{ var _local2:Number = (_arg1 % DEG360); _local2 = ((_local2)>0) ? ((_local2)>DEG180) ? (_local2 - DEG360) : _local2 : ((_local2)<-(DEG180)) ? (_local2 + DEG360) : _local2; return (_local2); } public static function random(_arg1:Number=NaN, _arg2:Number=NaN):Number{ if (isNaN(_arg1)){ return (Math.random()); }; if (isNaN(_arg2)){ return ((Math.random() * _arg1)); }; return (((Math.random() * (_arg2 - _arg1)) + _arg1)); } public static function vectorDot(_arg1:Point, _arg2:Point):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } public static function toDegree(_arg1:Number):Number{ return ((_arg1 * toDeg)); } public static function deltaAngle(_arg1:Number, _arg2:Number):Number{ var _local3:Number = (_arg2 - _arg1); if (_local3 > DEG180){ return ((_local3 - DEG360)); }; if (_local3 < -(DEG180)){ return ((_local3 + DEG360)); }; return (_local3); } public static function toRadian(_arg1:Number):Number{ return ((_arg1 * toRad)); } public static function triangleHasPoint(_arg1:Point, _arg2:Point, _arg3:Point, _arg4:Point):Boolean{ if (vectorCross(_arg3.subtract(_arg1), _arg4.subtract(_arg1)) <= 0){ if (vectorCross(_arg2.subtract(_arg3), _arg4.subtract(_arg3)) <= 0){ if (vectorCross(_arg1.subtract(_arg2), _arg4.subtract(_arg2)) <= 0){ return (true); }; return (false); } else { return (false); }; //unresolved jump }; return (false); } public static function equals(_arg1:Number, _arg2:Number, _arg3:Number=0):Boolean{ return (((((_arg2 - _arg1) <= _arg3)) && (((_arg2 - _arg1) >= -(_arg3))))); } } }//package alternativa.utils
Section 58
//ObjectUtils (alternativa.utils.ObjectUtils) package alternativa.utils { import flash.utils.*; public class ObjectUtils { public static function getClassTree(_arg1, _arg2:Class=null):Array{ var _local3:Array = new Array(); var _local4:Class = Class(getDefinitionByName(getQualifiedClassName(_arg1))); _arg2 = ((_arg2)==null) ? Object : _arg2; while (_local4 != _arg2) { _local3.push(_local4); _local4 = Class(getDefinitionByName(getQualifiedSuperclassName(_local4))); }; _local3.push(_local4); return (_local3); } public static function getClass(_arg1):Class{ return (Class(getDefinitionByName(getQualifiedClassName(_arg1)))); } public static function getClassName(_arg1):String{ var _local2:String = getQualifiedClassName(_arg1); var _local3:int = _local2.indexOf("::"); return (((_local3 == -1)) ? _local2 : _local2.substring((_local3 + 2))); } } }//package alternativa.utils
Section 59
//TextUtils (alternativa.utils.TextUtils) package alternativa.utils { public final class TextUtils { public static function insertVars(_arg1:String, ... _args):String{ var _local3:String = _arg1; var _local4 = 1; while (_local4 <= _args.length) { _local3 = _local3.replace(("%" + _local4.toString()), _args[(_local4 - 1)]); _local4++; }; return (_local3); } } }//package alternativa.utils
Section 60
//ViewUtils (alternativa.utils.ViewUtils) package alternativa.utils { import alternativa.types.*; import flash.geom.*; import alternativa.engine3d.display.*; public class ViewUtils { private static var view:View; public static function init(_arg1:View):void{ view = _arg1; } public static function free():void{ view = null; } public static function getPoint3DByPlane(_arg1:Point, _arg2:Point3D, _arg3:Point3D):Point3D{ var _local4:Point3D; var _local5:Point3D; var _local6:Point3D; var _local7:Number; var _local8:Number; var _local9:Number; var _local10:Number; var _local11:Number; var _local12:Number; if (((!(view)) || (!(view.camera)))){ return (null); }; _local4 = new Point3D(); _local5 = view.get3DCoords(_arg1, 1); _local4 = view.camera.localToGlobal(_local4); _local5 = view.camera.localToGlobal(_local5); _local6 = Point3D.difference(_local5, _local4); _local7 = Point3D.dot(_local6, _arg3); _local8 = (Point3D.dot(_local4, _arg3) - Point3D.dot(_arg2, _arg3)); if ((((((_local7 >= 0)) && ((_local8 > 0)))) || ((((_local7 <= 0)) && ((_local8 < 0)))))){ return (null); }; _local9 = (-(_local8) / _local7); _local10 = (_local4.x + (_local6.x * _local9)); _local11 = (_local4.y + (_local6.y * _local9)); _local12 = (_local4.z + (_local6.z * _local9)); return (new Point3D(_local10, _local11, _local12)); } } }//package alternativa.utils
Section 61
//b2Mat22 (Box2D.Common.Math.b2Mat22) package Box2D.Common.Math { public class b2Mat22 { public var col1:b2Vec2; public var col2:b2Vec2; public function b2Mat22(_arg1:Number=0, _arg2:b2Vec2=null, _arg3:b2Vec2=null){ var _local4:Number; var _local5:Number; col1 = new b2Vec2(); col2 = new b2Vec2(); super(); if (((!((_arg2 == null))) && (!((_arg3 == null))))){ col1.SetV(_arg2); col2.SetV(_arg3); } else { _local4 = Math.cos(_arg1); _local5 = Math.sin(_arg1); col1.x = _local4; col2.x = -(_local5); col1.y = _local5; col2.y = _local4; }; } public function SetIdentity():void{ col1.x = 1; col2.x = 0; col1.y = 0; col2.y = 1; } public function Set(_arg1:Number):void{ var _local2:Number; var _local3:Number; _local2 = Math.cos(_arg1); _local3 = Math.sin(_arg1); col1.x = _local2; col2.x = -(_local3); col1.y = _local3; col2.y = _local2; } public function SetVV(_arg1:b2Vec2, _arg2:b2Vec2):void{ col1.SetV(_arg1); col2.SetV(_arg2); } public function SetZero():void{ col1.x = 0; col2.x = 0; col1.y = 0; col2.y = 0; } public function SetM(_arg1:b2Mat22):void{ col1.SetV(_arg1.col1); col2.SetV(_arg1.col2); } public function AddM(_arg1:b2Mat22):void{ col1.x = (col1.x + _arg1.col1.x); col1.y = (col1.y + _arg1.col1.y); col2.x = (col2.x + _arg1.col2.x); col2.y = (col2.y + _arg1.col2.y); } public function Abs():void{ col1.Abs(); col2.Abs(); } public function Copy():b2Mat22{ return (new b2Mat22(0, col1, col2)); } public function Invert(_arg1:b2Mat22):b2Mat22{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; var _local6:Number; _local2 = col1.x; _local3 = col2.x; _local4 = col1.y; _local5 = col2.y; _local6 = ((_local2 * _local5) - (_local3 * _local4)); _local6 = (1 / _local6); _arg1.col1.x = (_local6 * _local5); _arg1.col2.x = (-(_local6) * _local3); _arg1.col1.y = (-(_local6) * _local4); _arg1.col2.y = (_local6 * _local2); return (_arg1); } public function GetAngle():Number{ return (Math.atan2(col1.y, col1.x)); } public function Solve(_arg1:b2Vec2, _arg2:Number, _arg3:Number):b2Vec2{ var _local4:Number; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; _local4 = col1.x; _local5 = col2.x; _local6 = col1.y; _local7 = col2.y; _local8 = ((_local4 * _local7) - (_local5 * _local6)); _local8 = (1 / _local8); _arg1.x = (_local8 * ((_local7 * _arg2) - (_local5 * _arg3))); _arg1.y = (_local8 * ((_local4 * _arg3) - (_local6 * _arg2))); return (_arg1); } } }//package Box2D.Common.Math
Section 62
//b2Math (Box2D.Common.Math.b2Math) package Box2D.Common.Math { public class b2Math { public static const b2Mat22_identity:b2Mat22 = new b2Mat22(0, new b2Vec2(1, 0), new b2Vec2(0, 1)); public static const b2XForm_identity:b2XForm = new b2XForm(b2Vec2_zero, b2Mat22_identity); public static const b2Vec2_zero:b2Vec2 = new b2Vec2(0, 0); public static function b2CrossVF(_arg1:b2Vec2, _arg2:Number):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg2 * _arg1.y), (-(_arg2) * _arg1.x)); return (_local3); } public static function AddVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg1.x + _arg2.x), (_arg1.y + _arg2.y)); return (_local3); } public static function b2IsValid(_arg1:Number):Boolean{ return (isFinite(_arg1)); } public static function b2MinV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(b2Min(_arg1.x, _arg2.x), b2Min(_arg1.y, _arg2.y)); return (_local3); } public static function b2MulX(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = b2MulMV(_arg1.R, _arg2); _local3.x = (_local3.x + _arg1.position.x); _local3.y = (_local3.y + _arg1.position.y); return (_local3); } public static function b2DistanceSquared(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number; var _local4:Number; _local3 = (_arg1.x - _arg2.x); _local4 = (_arg1.y - _arg2.y); return (((_local3 * _local3) + (_local4 * _local4))); } public static function b2Swap(_arg1:Array, _arg2:Array):void{ var _local3:*; _local3 = _arg1[0]; _arg1[0] = _arg2[0]; _arg2[0] = _local3; } public static function b2AbsM(_arg1:b2Mat22):b2Mat22{ var _local2:b2Mat22; _local2 = new b2Mat22(0, b2AbsV(_arg1.col1), b2AbsV(_arg1.col2)); return (_local2); } public static function SubtractVV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg1.x - _arg2.x), (_arg1.y - _arg2.y)); return (_local3); } public static function b2MulXT(_arg1:b2XForm, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; var _local4:Number; _local3 = SubtractVV(_arg2, _arg1.position); _local4 = ((_local3.x * _arg1.R.col1.x) + (_local3.y * _arg1.R.col1.y)); _local3.y = ((_local3.x * _arg1.R.col2.x) + (_local3.y * _arg1.R.col2.y)); _local3.x = _local4; return (_local3); } public static function b2Abs(_arg1:Number):Number{ return (((_arg1 > 0)) ? _arg1 : -(_arg1)); } public static function b2Clamp(_arg1:Number, _arg2:Number, _arg3:Number):Number{ return (b2Max(_arg2, b2Min(_arg1, _arg3))); } public static function b2AbsV(_arg1:b2Vec2):b2Vec2{ var _local2:b2Vec2; _local2 = new b2Vec2(b2Abs(_arg1.x), b2Abs(_arg1.y)); return (_local2); } public static function MulFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((_arg1 * _arg2.x), (_arg1 * _arg2.y)); return (_local3); } public static function b2CrossVV(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.y) - (_arg1.y * _arg2.x))); } public static function b2Dot(_arg1:b2Vec2, _arg2:b2Vec2):Number{ return (((_arg1.x * _arg2.x) + (_arg1.y * _arg2.y))); } public static function b2CrossFV(_arg1:Number, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2((-(_arg1) * _arg2.y), (_arg1 * _arg2.x)); return (_local3); } public static function AddMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22; _local3 = new b2Mat22(0, AddVV(_arg1.col1, _arg2.col1), AddVV(_arg1.col2, _arg2.col2)); return (_local3); } public static function b2Distance(_arg1:b2Vec2, _arg2:b2Vec2):Number{ var _local3:Number; var _local4:Number; _local3 = (_arg1.x - _arg2.x); _local4 = (_arg1.y - _arg2.y); return (Math.sqrt(((_local3 * _local3) + (_local4 * _local4)))); } public static function b2MulTMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Vec2; var _local4:b2Vec2; var _local5:b2Mat22; _local3 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col1), b2Dot(_arg1.col2, _arg2.col1)); _local4 = new b2Vec2(b2Dot(_arg1.col1, _arg2.col2), b2Dot(_arg1.col2, _arg2.col2)); _local5 = new b2Mat22(0, _local3, _local4); return (_local5); } public static function b2MaxV(_arg1:b2Vec2, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(b2Max(_arg1.x, _arg2.x), b2Max(_arg1.y, _arg2.y)); return (_local3); } public static function b2IsPowerOfTwo(_arg1:uint):Boolean{ var _local2:Boolean; _local2 = (((_arg1 > 0)) && (((_arg1 & (_arg1 - 1)) == 0))); return (_local2); } public static function b2ClampV(_arg1:b2Vec2, _arg2:b2Vec2, _arg3:b2Vec2):b2Vec2{ return (b2MaxV(_arg2, b2MinV(_arg1, _arg3))); } public static function b2RandomRange(_arg1:Number, _arg2:Number):Number{ var _local3:Number; _local3 = Math.random(); _local3 = (((_arg2 - _arg1) * _local3) + _arg1); return (_local3); } public static function b2MulTMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(b2Dot(_arg2, _arg1.col1), b2Dot(_arg2, _arg1.col2)); return (_local3); } public static function b2Min(_arg1:Number, _arg2:Number):Number{ return (((_arg1 < _arg2)) ? _arg1 : _arg2); } public static function b2Random():Number{ return (((Math.random() * 2) - 1)); } public static function b2MulMM(_arg1:b2Mat22, _arg2:b2Mat22):b2Mat22{ var _local3:b2Mat22; _local3 = new b2Mat22(0, b2MulMV(_arg1, _arg2.col1), b2MulMV(_arg1, _arg2.col2)); return (_local3); } public static function b2NextPowerOfTwo(_arg1:uint):uint{ _arg1 = (_arg1 | ((_arg1 >> 1) & 2147483647)); _arg1 = (_arg1 | ((_arg1 >> 2) & 1073741823)); _arg1 = (_arg1 | ((_arg1 >> 4) & 268435455)); _arg1 = (_arg1 | ((_arg1 >> 8) & 0xFFFFFF)); _arg1 = (_arg1 | ((_arg1 >> 16) & 0xFFFF)); return ((_arg1 + 1)); } public static function b2Max(_arg1:Number, _arg2:Number):Number{ return (((_arg1 > _arg2)) ? _arg1 : _arg2); } public static function b2MulMV(_arg1:b2Mat22, _arg2:b2Vec2):b2Vec2{ var _local3:b2Vec2; _local3 = new b2Vec2(((_arg1.col1.x * _arg2.x) + (_arg1.col2.x * _arg2.y)), ((_arg1.col1.y * _arg2.x) + (_arg1.col2.y * _arg2.y))); return (_local3); } } }//package Box2D.Common.Math
Section 63
//b2Vec2 (Box2D.Common.Math.b2Vec2) package Box2D.Common.Math { public class b2Vec2 { public var x:Number; public var y:Number; public function b2Vec2(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Set(_arg1:Number=0, _arg2:Number=0):void{ x = _arg1; y = _arg2; } public function Multiply(_arg1:Number):void{ x = (x * _arg1); y = (y * _arg1); } public function Length():Number{ return (Math.sqrt(((x * x) + (y * y)))); } public function LengthSquared():Number{ return (((x * x) + (y * y))); } public function SetZero():void{ x = 0; y = 0; } public function Add(_arg1:b2Vec2):void{ x = (x + _arg1.x); y = (y + _arg1.y); } public function MaxV(_arg1:b2Vec2):void{ x = ((x > _arg1.x)) ? x : _arg1.x; y = ((y > _arg1.y)) ? y : _arg1.y; } public function SetV(_arg1:b2Vec2):void{ x = _arg1.x; y = _arg1.y; } public function Negative():b2Vec2{ return (new b2Vec2(-(x), -(y))); } public function CrossVF(_arg1:Number):void{ var _local2:Number; _local2 = x; x = (_arg1 * y); y = (-(_arg1) * _local2); } public function Abs():void{ if (x < 0){ x = -(x); }; if (y < 0){ y = -(y); }; } public function Copy():b2Vec2{ return (new b2Vec2(x, y)); } public function MulTM(_arg1:b2Mat22):void{ var _local2:Number; _local2 = b2Math.b2Dot(this, _arg1.col1); y = b2Math.b2Dot(this, _arg1.col2); x = _local2; } public function IsValid():Boolean{ return (((b2Math.b2IsValid(x)) && (b2Math.b2IsValid(y)))); } public function MinV(_arg1:b2Vec2):void{ x = ((x < _arg1.x)) ? x : _arg1.x; y = ((y < _arg1.y)) ? y : _arg1.y; } public function MulM(_arg1:b2Mat22):void{ var _local2:Number; _local2 = x; x = ((_arg1.col1.x * _local2) + (_arg1.col2.x * y)); y = ((_arg1.col1.y * _local2) + (_arg1.col2.y * y)); } public function Normalize():Number{ var _local1:Number; var _local2:Number; _local1 = Math.sqrt(((x * x) + (y * y))); if (_local1 < Number.MIN_VALUE){ return (0); }; _local2 = (1 / _local1); x = (x * _local2); y = (y * _local2); return (_local1); } public function Subtract(_arg1:b2Vec2):void{ x = (x - _arg1.x); y = (y - _arg1.y); } public function CrossFV(_arg1:Number):void{ var _local2:Number; _local2 = x; x = (-(_arg1) * y); y = (_arg1 * _local2); } public static function Make(_arg1:Number, _arg2:Number):b2Vec2{ return (new b2Vec2(_arg1, _arg2)); } } }//package Box2D.Common.Math
Section 64
//b2XForm (Box2D.Common.Math.b2XForm) package Box2D.Common.Math { public class b2XForm { public var R:b2Mat22; public var position:b2Vec2; public function b2XForm(_arg1:b2Vec2=null, _arg2:b2Mat22=null):void{ position = new b2Vec2(); R = new b2Mat22(); super(); if (_arg1){ position.SetV(_arg1); R.SetM(_arg2); }; } public function Initialize(_arg1:b2Vec2, _arg2:b2Mat22):void{ position.SetV(_arg1); R.SetM(_arg2); } public function Set(_arg1:b2XForm):void{ position.SetV(_arg1.position); R.SetM(_arg1.R); } public function SetIdentity():void{ position.SetZero(); R.SetIdentity(); } } }//package Box2D.Common.Math
Section 65
//Btn (edt.Btn) package edt { import flash.display.*; public dynamic class Btn extends SimpleButton { } }//package edt
Section 66
//Gui (edt.Gui) package edt { import flash.display.*; import flash.text.*; public dynamic class Gui extends MovieClip { public var btn_lava:Btn; public var t_map:TextField; public var btn_player:Btn; public var btn_money:Btn; public var btn_exit:Btn; public var btn_jump:Btn; public var btn_hide:Btn; public var t_name:TextField; public var btn_save:Btn; public var btn_free:Btn; public var btn_moneybox:Btn; public var btn_teleport:Btn; public var btn_remove:Btn; public var t_value:TextField; public var btn_load:Btn; public var btn_platform:Btn; } }//package edt
Section 67
//Kongregate (elm.apis.Kongregate) package elm.apis { import flash.events.*; import elm.core.*; import flash.display.*; import flash.net.*; import flash.system.*; public class Kongregate extends ScoreApi { private var api:Object;// = null public function Kongregate(){ api = null; super(); } override public function submitStatistic(_arg1:String, _arg2:int):void{ var name = _arg1; var value = _arg2; try { api.stats.submit(name, value); } catch(e:Error) { }; } override public function submitScore(_arg1:int, _arg2:String=null):void{ var score = _arg1; var mode = _arg2; try { api.scores.submit(score); } catch(e:Error) { }; } override public function connect():void{ var _local1:Object; var _local2:String; var _local3:URLRequest; var _local4:Loader; _local1 = LoaderInfo(Game.clip.root.loaderInfo).parameters; _local2 = ((_local1.api_path) || ("http://www.kongregate.com/flash/API_AS3_Local.swf")); _local3 = new URLRequest(_local2); Security.allowDomain(_local3.url); _local4 = new Loader(); _local4.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); _local4.load(_local3); Game.clip.addChild(_local4); } override public function isDone():Boolean{ return (!((api == null))); } override public function onComplete(_arg1:Event):void{ api = _arg1.target.content; api.services.connect(); } } }//package elm.apis
Section 68
//MindJolt (elm.apis.MindJolt) package elm.apis { import flash.events.*; import elm.core.*; import flash.display.*; import flash.net.*; public class MindJolt extends ScoreApi { private var api:Object;// = null public function MindJolt(){ api = null; super(); } override public function submitScore(_arg1:int, _arg2:String=null):void{ var score = _arg1; var mode = _arg2; try { api.service.submitScore(score, mode); } catch(e:Error) { }; } override public function connect():void{ var _local1:Object; var _local2:Loader; _local1 = LoaderInfo(Game.clip.root.loaderInfo).parameters; _local2 = new Loader(); _local2.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); _local2.load(new URLRequest(((_local1.mjPath) || ("http://static.mindjolt.com/api/as3/scoreapi_as3_local.swf")))); Game.clip.addChild(_local2); } override public function isDone():Boolean{ return (!((api == null))); } override public function onComplete(_arg1:Event):void{ api = _arg1.currentTarget.content; api.service.connect(); } } }//package elm.apis
Section 69
//ScoreApi (elm.apis.ScoreApi) package elm.apis { import flash.events.*; public class ScoreApi { public function submitStatistic(_arg1:String, _arg2:int):void{ } public function onComplete(_arg1:Event):void{ } public function submitScore(_arg1:int, _arg2:String=null):void{ } public function connect():void{ } public function isDone():Boolean{ return (false); } } }//package elm.apis
Section 70
//Game (elm.core.Game) package elm.core { import flash.events.*; import flash.display.*; import elm.utils.*; import flash.utils.*; import flash.net.*; public class Game { public static const MODE_BACK:int = 1; public static const DELTA_MAX:Number = 0.0333333333333333; public static const MODE_FRONT:int = 0; private static var states:Object; private static var m_is_debug:Boolean = true; public static var is_stable_fps:Boolean = false; private static var vars:Object; public static var SYS:Layer; private static var state_curr:String; private static var fps_num:uint; public static var delta:Number; public static var clip:Layer; public static var mouseX:Number; public static var mouseY:Number; private static var last_time:Number; private static var delta_orig:Number; public static var fps:uint; private static var last_fps_time:Number; private static var state_old:String; public static function getDelta():Number{ return (delta_orig); } public static function getStateName():String{ return (state_curr); } public static function init(_arg1:Layer):void{ Game.clip = _arg1; states = {}; state_curr = null; state_old = null; vars = []; _arg1.addEventListener(Event.ENTER_FRAME, Game.frame); SYS = Gfx.createLayer(null, "sys", 999, false); SYS.mouseEnabled = false; Gfx.createText(SYS, "fps", 0, 0, Gfx.Width, 20, {font:"_sans", embed:false, size:12, align:"center", color:0xCCCCCC, bold:false}, []); resetFps(); } public static function clearSavesVars(_arg1:String):void{ var _local2:SharedObject; _local2 = SharedObject.getLocal(_arg1); _local2.clear(); } public static function clearVars():void{ vars = []; } public static function resetFps():void{ last_time = (last_fps_time = getTimer()); } public static function loadVars(_arg1:String):void{ var _local2:SharedObject; vars = null; _local2 = SharedObject.getLocal(_arg1); vars = _local2.data.vars; } public static function get Width():Number{ return (Gfx.Width); } public static function getConfig(_arg1:String, _arg2=""){ var _local3:SharedObject; _local3 = SharedObject.getLocal("config"); if (_local3.data[_arg1] != undefined){ return (_local3.data[_arg1]); }; return (_arg2); } public static function get Debug():Boolean{ return (m_is_debug); } public static function setConfig(_arg1:String, _arg2):void{ var _local3:SharedObject; _local3 = SharedObject.getLocal("config"); _local3.data[_arg1] = Data.clone(_arg2); _local3.flush(); } public static function openUrl(_arg1:String, _arg2:String="_blank"):void{ var request:URLRequest; var url = _arg1; var target = _arg2; request = new URLRequest(url); try { navigateToURL(request, target); } catch(e:Error) { }; } public static function get Height():Number{ return (Gfx.Height); } public static function saveVars(_arg1:String):void{ var _local2:SharedObject; _local2 = SharedObject.getLocal(_arg1); _local2.setProperty("vars", Data.clone(vars)); _local2.flush(); } public static function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ clip.stage.removeEventListener(_arg1, _arg2, _arg3); } public static function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{ clip.stage.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); } public static function setState(_arg1:String, _arg2:int=0, _arg3=null):State{ var _local4:State; if (states[_arg1] == undefined){ return (null); }; if (state_curr == _arg1){ states[state_curr].free(); Gfx.freeLayers(state_curr); states[state_curr].init(_arg3); return (states[state_curr]); }; if (state_curr != null){ clip.stage.removeEventListener(MouseEvent.CLICK, states[state_curr].onMouseClick); clip.stage.removeEventListener(MouseEvent.DOUBLE_CLICK, states[state_curr].onMouseDoubleClick); clip.stage.removeEventListener(MouseEvent.MOUSE_DOWN, states[state_curr].onMouseDown); clip.stage.removeEventListener(MouseEvent.MOUSE_UP, states[state_curr].onMouseUp); clip.stage.removeEventListener(MouseEvent.MOUSE_MOVE, states[state_curr].onMouseMove); clip.stage.removeEventListener(KeyboardEvent.KEY_DOWN, states[state_curr].onKeyDown, false); clip.stage.removeEventListener(KeyboardEvent.KEY_UP, states[state_curr].onKeyUp, false); state_old = state_curr; }; state_curr = _arg1; if (_arg2 == MODE_FRONT){ _local4 = (clip.addChild(states[_arg1]) as State); clip.swapChildren(SYS, _local4); } else { if (_arg2 == MODE_BACK){ clip.addChildAt(states[_arg1], 0); }; }; if (!states[_arg1].init(_arg3)){ clip.removeChild(states[_arg1]); return (null); }; if (state_old == null){ state_old = ""; }; clip.stage.focus = null; last_time = (last_fps_time = getTimer()); delta_orig = (delta = 0); return (states[state_curr]); } public static function getState(_arg1:String=null):State{ if (_arg1 == null){ _arg1 = state_curr; }; if (((!((_arg1 == null))) && (!((states[_arg1] == undefined))))){ return (states[_arg1]); }; return (null); } public static function getLoaderInfo():LoaderInfo{ return (clip.stage.loaderInfo); } private static function _initState(_arg1:String):void{ clip.stage.addEventListener(MouseEvent.CLICK, states[_arg1].onMouseClick); clip.stage.addEventListener(MouseEvent.MOUSE_DOWN, states[_arg1].onMouseDown); clip.stage.addEventListener(MouseEvent.MOUSE_UP, states[_arg1].onMouseUp); clip.stage.addEventListener(MouseEvent.MOUSE_MOVE, states[_arg1].onMouseMove); clip.stage.addEventListener(KeyboardEvent.KEY_DOWN, states[_arg1].onKeyDown, false, 10000); clip.stage.addEventListener(KeyboardEvent.KEY_UP, states[_arg1].onKeyUp, false, 10000); last_time = (last_fps_time = getTimer()); delta_orig = (delta = 0); } public static function getClassByName(_arg1:String):Class{ var def:Object; var name = _arg1; def = null; try { def = getDefinitionByName(name); } catch(error:Error) { return (null); }; if ((def is Class)){ return ((def as Class)); }; return (null); } public static function setVar(_arg1:String, _arg2):void{ vars[_arg1] = Data.clone(_arg2); } public static function set Debug(_arg1:Boolean):void{ var _local2:DisplayObject; m_is_debug = _arg1; _local2 = Gfx.getMovie(SYS, "fps"); if (_local2){ if (!m_is_debug){ _local2.y = -10; } else { _local2.y = 10; }; }; } public static function isSavedVars(_arg1:String):Boolean{ var _local2:SharedObject; _local2 = SharedObject.getLocal(_arg1); return (!((_local2.data.vars == undefined))); } public static function frame(_arg1:Event):void{ var _local2:int; var _local3:int; var _local4:Boolean; var _local5:Boolean; _local2 = 1; delta_orig = ((getTimer() - last_time) / 1000); last_time = getTimer(); fps_num++; if ((getTimer() - last_fps_time) >= 1000){ fps = fps_num; fps_num = 0; last_fps_time = getTimer(); }; mouseX = clip.mouseX; mouseY = clip.mouseY; if (is_stable_fps){ _local2 = ((delta_orig / DELTA_MAX) + 1); } else { delta = delta_orig; }; _local3 = 0; while (_local3 < _local2) { if (is_stable_fps){ delta = Math.min(DELTA_MAX, delta_orig); delta_orig = (delta_orig - DELTA_MAX); }; if (state_old != null){ _local4 = (((state_old == "")) || (states[state_old].isHide())); _local5 = states[state_curr].isShow(); if (((_local4) && (_local5))){ if (((state_old) && (!((state_old == ""))))){ states[state_old].free(); Gfx.freeLayers(state_old); clip.removeChild(states[state_old]); }; _initState(state_curr); state_old = null; }; } else { if (state_curr != null){ states[state_curr].frame(); }; }; Sfx.frame(); _local3++; }; if (is_debug){ Gfx.setText(SYS, "fps", ((((((fps + " fps, ") + delta) + " delta, x:") + mouseX) + ", y:") + mouseY)); }; } public static function getVar(_arg1:String){ return (Data.clone(vars[_arg1])); } public static function addState(_arg1:String, _arg2:State):void{ states[_arg1] = _arg2; } public static function set is_debug(_arg1:Boolean):void{ var _local2:DisplayObject; m_is_debug = _arg1; _local2 = Gfx.getMovie(SYS, "fps"); if (_local2){ if (!m_is_debug){ _local2.y = -10; } else { _local2.y = 10; }; }; } public static function isUrl(_arg1:Array):Boolean{ var _local2:String; var _local3:Number; var _local4:Number; var _local5:String; var _local6:Number; var _local7:Number; var _local8:int; _local2 = clip.stage.loaderInfo.loaderURL; _local3 = (_local2.indexOf("://") + 3); _local4 = _local2.indexOf("/", _local3); _local5 = _local2.substring(_local3, _local4); _local6 = (_local5.lastIndexOf(".") - 1); _local7 = (_local5.lastIndexOf(".", _local6) + 1); _local5 = _local5.substring(_local7, _local5.length); _local8 = 0; while (_local8 < _arg1.length) { if (_local5 == _arg1[_local8]){ return (true); }; _local8++; }; return (false); } public static function get is_debug():Boolean{ return (m_is_debug); } } }//package elm.core
Section 71
//Gfx (elm.core.Gfx) package elm.core { import flash.display.*; public class Gfx { private static var clip:Layer; public static function getText(_arg1:Layer, _arg2:String):String{ var _local3:Text; if (!_arg1){ _arg1 = (Game.getState() as Layer); }; _local3 = (_arg1.getChildByName(_arg2) as Text); if (_local3){ return (_local3.text); }; return (""); } public static function freeLayers(_arg1:String=null){ var _local2:State; var _local3:Layer; var _local4:int; var _local5:Number; _local2 = Game.getState(_arg1); _local5 = 0; while (_local5 < _local2.autoLayer.length) { _local3 = (_local2.getChildByName(_local2.autoLayer[_local5]) as Layer); _local4 = _local2.getChildIndex(_local3); if (_local4 >= 0){ _local2.depthLayer.splice(_local4, 1); _local2.removeChildAt(_local4); }; _local5++; }; _local2.autoLayer = []; } public static function get Height():Number{ return (clip.stage.stageHeight); } public static function makeMovie(_arg1:String, _arg2:String, _arg3:Object=null):DisplayObject{ var _local4:Class; var _local5:*; var _local6:*; _local4 = Game.getClassByName(_arg1); if (_local4){ _local5 = new (_local4); for (_local6 in _arg3) { _local5[_local6] = _arg3[_local6]; }; _local5.name = _arg2; return ((_local5 as DisplayObject)); //unresolved jump }; return (null); } public static function removeMovie(_arg1:Layer, _arg2:DisplayObject):void{ if (!_arg2){ return; }; if (!_arg1){ _arg1 = (Game.getState() as Layer); }; _arg1.removeChild(_arg2); } public static function removeLayer(_arg1:Layer, _arg2:Layer){ var _local3:int; if (!_arg1){ _arg1 = (Game.getState() as Layer); }; _local3 = _arg1.autoLayer.indexOf(_arg2.name); if (_local3 >= 0){ _arg1.autoLayer.splice(_local3, 1); }; _local3 = _arg1.getChildIndex(_arg2); if (_local3 >= 0){ _arg1.depthLayer.splice(_local3, 1); _arg1.removeChildAt(_local3); }; } public static function removeMovieByName(_arg1:Layer, _arg2:String):void{ if (!_arg1){ _arg1 = (Game.getState() as Layer); }; removeMovie(_arg1, _arg1.getChildByName(_arg2)); } public static function addMovie(_arg1:Layer, _arg2:DisplayObject, _arg3:String=null, _arg4:Object=null):DisplayObject{ var _local5:*; if (!_arg2){ return (null); }; if (!_arg1){ _arg1 = (Game.getState() as Layer); }; for (_local5 in _arg4) { _arg2[_local5] = _arg4[_local5]; }; _arg1.addChild(_arg2); if (_arg3){ _arg2.name = _arg3; }; return (_arg2); } public static function createMovie(_arg1:Layer, _arg2:String, _arg3:String, _arg4:Object=null):DisplayObject{ var _local5:Class; var _local6:*; var _local7:*; if (!_arg1){ _arg1 = (Game.getState() as Layer); }; _local5 = Game.getClassByName(_arg2); if (_local5){ _local6 = new (_local5); for (_local7 in _arg4) { _local6[_local7] = _arg4[_local7]; }; _arg1.addChild(_local6); _local6.name = _arg3; return ((_local6 as DisplayObject)); //unresolved jump }; return (null); } public static function createLayer(_arg1:Layer, _arg2:String, _arg3:uint, _arg4:Boolean=true):Layer{ var _local5:Layer; var _local6:uint; var _local7:uint; if (!_arg1){ _arg1 = (Game.getState() as Layer); if (!_arg1){ _arg1 = clip; }; }; _local5 = new Layer(); _local5.name = _arg2; _local6 = _arg1.depthLayer.length; _local7 = 0; while (_local7 < _arg1.depthLayer.length) { if (_arg1.depthLayer[_local7] >= _arg3){ _local6 = _local7; break; }; _local7++; }; if (_arg4){ _arg1.autoLayer.push(_arg2); }; _arg1.depthLayer.splice(_local6, 0, _arg3); return ((_arg1.addChildAt(_local5, _local6) as Layer)); } public static function setText(_arg1:Layer, _arg2:String, _arg3:String):void{ var _local4:Text; if (!_arg1){ _arg1 = (Game.getState() as Layer); }; _local4 = (_arg1.getChildByName(_arg2) as Text); if (_local4){ _local4.text = _arg3; }; } public static function init(_arg1:Layer):void{ Gfx.clip = _arg1; } public static function createText(_arg1:Layer, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:Number, _arg7:Object, _arg8:Array):Text{ var _local9:Text; if (!_arg1){ _arg1 = (Game.getState() as Layer); }; _local9 = new Text(_arg3, _arg4, _arg5, _arg6, _arg7); _local9.name = _arg2; if (_arg8){ _local9.filters = _arg8; }; _arg1.addChild(_local9); return (_local9); } public static function getMovie(_arg1:Layer, _arg2:String):DisplayObject{ return ((_arg1.getChildByName(_arg2) as DisplayObject)); } public static function getLayerByName(_arg1:Layer, _arg2:String):Layer{ if (!_arg1){ _arg1 = (Game.getState() as Layer); }; return ((_arg1.getChildByName(_arg2) as Layer)); } public static function get Width():Number{ return (clip.stage.stageWidth); } } }//package elm.core
Section 72
//Layer (elm.core.Layer) package elm.core { import flash.display.*; public class Layer extends Sprite { public var depthLayer:Array; public var autoLayer:Array; public function Layer(){ depthLayer = []; autoLayer = []; super(); } } }//package elm.core
Section 73
//PreloaderMochi (elm.core.PreloaderMochi) package elm.core { import flash.display.*; import flash.events.*; import mochi.as3.*; public dynamic class PreloaderMochi extends MovieClip { public function PreloaderMochi(){ stop(); addEventListener(Event.ADDED_TO_STAGE, onAddedToStage); } public function onProgress(_arg1:Number):void{ } public function onCompleteMochiAd():void{ addEventListener(Event.ENTER_FRAME, onEnterFrame); play(); } public function ShowLeaderboard(_arg1:uint=undefined, _arg2:Function=null, _arg3:MovieClip=null):void{ var bid:String; var o:Object; var score = _arg1; var on_close = _arg2; var clip = _arg3; bid = GetMochiLeaderBoardId(); if (!bid){ return; }; o = {boardID:bid}; if (clip){ o.clip = clip; } else { o.clip = this; }; if (score){ o.score = score; }; if (on_close){ o.onClose = on_close; } else { if (!score){ o.onClose = function ():void{ }; //unresolved jump }; }; MochiScores.showLeaderboard(o); } public function GetDocumentClass():String{ return ("Main"); } public function GetMochiObject():Object{ return ({}); } public function GetNoProgressBar():Boolean{ return (true); } public function onAddedToStage(_arg1:Event):void{ var _local2:Object; _local2 = GetMochiObject(); _local2.clip = this; _local2.ad_finished = onCompleteMochiAd; _local2.ad_progress = onProgress; _local2.no_progress_bar = GetNoProgressBar(); MochiServices.connect(_local2.id, this); MochiAd.showPreGameAd(_local2); } final private function main():void{ var _local1:Class; _local1 = (loaderInfo.applicationDomain.getDefinition(GetDocumentClass()) as Class); addChild(new (_local1)); } private function onEnterFrame(_arg1:Event):void{ if (currentFrame >= GetEntryFrame()){ removeEventListener(Event.ENTER_FRAME, onEnterFrame); stop(); main(); }; } public function GetMochiLeaderBoardId():String{ return (null); } public function GetEntryFrame():uint{ return (3); } public function GetMochiGameId():String{ var _local1:Object; _local1 = GetMochiObject(); if (_local1.id){ return (_local1.id); }; return (null); } } }//package elm.core
Section 74
//RootLayer (elm.core.RootLayer) package elm.core { import flash.events.*; public class RootLayer extends Layer { public var layers:Layer; public function RootLayer(){ this.addEventListener(Event.ADDED_TO_STAGE, onAddedToStage); } public function init():void{ this.removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage); Gfx.init(this); Sfx.init(this); Game.init(this); } public function onAddedToStage(_arg1:Event):void{ init(); } } }//package elm.core
Section 75
//Sfx (elm.core.Sfx) package elm.core { import flash.events.*; import flash.media.*; import flash.utils.*; public class Sfx { private static const T_MUS:int = 0; private static const V_DN:int = 1; private static const T_SND:int = 1; private static const V_UP:int = 0; private static var sfx:Object = {}; private static var samples:Object = {}; public static var clip:Layer = null; public static var sound_volume:Number = 1; private static var m_enable:Boolean = true; private static var channels:Array = []; public static var sound_count:int = 0; public static var music_volume:Number = 1; public static var music_count:int = 0; public static var music_volume_mod:Number = 0.4; public static function get enable():Boolean{ return (m_enable); } public static function set enable(_arg1:Boolean):void{ m_enable = _arg1; if (!m_enable){ Music_Stop(); Sound_Stop(); }; } public static function Sfx_PlayVol(_arg1:String, _arg2:Number=0, _arg3:Number=1, _arg4:Function=null):SoundChannel{ if (((!(_arg1)) || ((_arg1 == "")))){ return (null); }; if (((!(sfx[_arg1])) || ((sfx[_arg1].length <= 0)))){ return (null); }; return (Sound_PlayVol(sfx[_arg1][Math.floor((Math.random() * sfx[_arg1].length))], _arg2, _arg3, _arg4)); } public static function Music_Play(_arg1:String, _arg2:Boolean=false, _arg3:Function=null):SoundChannel{ var i:int; var ch:Object; var loop_num:int; var classDefintion:Class; var def:Object; var name = _arg1; var loop = _arg2; var on_complete = _arg3; if (!m_enable){ return (null); }; if (((!(name)) || ((name == "")))){ return (null); }; if (((!(samples[name])) || ((samples[name] == undefined)))){ try { def = getDefinitionByName(name); } catch(error:Error) { return (null); }; classDefintion = (def as Class); samples[name] = new (classDefintion); }; i = 0; while (i < channels.length) { if ((((channels[i].type == T_MUS)) && ((channels[i].name == name)))){ if (channels[i].on_complete){ channels[i].on_complete(); }; channels[i].action = V_UP; channels[i].loop = loop; channels[i].on_complete = on_complete; return (channels[i].channel); }; i = (i + 1); }; ch = {type:T_MUS, action:V_UP, channel:null, volume:0, name:name, loop:loop, on_complete:on_complete}; loop_num = 0; if (loop){ loop_num = 9999; }; ch.channel = (samples[name] as Sound).play(0, loop_num, new SoundTransform(0, 0)); if (on_complete){ ch.channel.addEventListener(Event.SOUND_COMPLETE, on_complete); }; channels.push(ch); return (ch.channel); } public static function Sound_PlayVol(_arg1:String, _arg2:Number=0, _arg3:Number=1, _arg4:Function=null):SoundChannel{ var ch:Object; var classDefintion:Class; var def:Object; var name = _arg1; var pan = _arg2; var vol = _arg3; var on_complete = _arg4; if (!m_enable){ return (null); }; if (((!(name)) || ((name == "")))){ return (null); }; if (((!(samples[name])) || ((samples[name] == undefined)))){ try { def = getDefinitionByName(name); } catch(error:Error) { return (null); }; classDefintion = (def as Class); samples[name] = new (classDefintion); }; ch = {type:T_SND, action:V_UP, channel:null, name:name, on_complete:on_complete}; ch.channel = (samples[name] as Sound).play(0, 0, new SoundTransform((sound_volume * vol), pan)); if (on_complete){ ch.channel.addEventListener(Event.SOUND_COMPLETE, on_complete); }; channels.push(ch); return (ch.channel); } public static function Music_IsPlay(_arg1:String):Boolean{ var _local2:int; if (!m_enable){ return (false); }; _local2 = 0; while (_local2 < channels.length) { if ((((channels[_local2].type == T_MUS)) && ((channels[_local2].name == _arg1)))){ return (true); }; _local2++; }; return (false); } public static function Music_Stop():void{ var _local1:int; _local1 = 0; while (_local1 < channels.length) { if (channels[_local1].type == T_MUS){ channels[_local1].action = V_DN; }; _local1++; }; } public static function Sound_Play(_arg1:String, _arg2:Number=0, _arg3:Function=null):SoundChannel{ return (Sound_PlayVol(_arg1, _arg2, 1, _arg3)); } public static function frame():void{ var delta:Number; var i:int; var st:SoundTransform; if (!m_enable){ return; }; delta = Game.delta; music_count = 0; sound_count = 0; i = 0; while (i < channels.length) { if (channels[i].channel == null){ channels.splice(i, i); } else { if (channels[i].type == T_MUS){ music_count++; st = (channels[i].channel as SoundChannel).soundTransform; if (st.volume > music_volume){ channels[i].volume = (channels[i].volume - ((delta * music_volume_mod) * 2)); if (channels[i].volume < music_volume){ channels[i].volume = music_volume; }; st.volume = channels[i].volume; }; if (channels[i].action == V_UP){ if (st.volume < music_volume){ channels[i].volume = (channels[i].volume + (delta * music_volume_mod)); if (channels[i].volume > music_volume){ channels[i].volume = music_volume; }; st.volume = channels[i].volume; }; } else { st.volume = (st.volume - (delta * music_volume_mod)); }; if (((((!(channels[i].loop)) && ((channels[i].channel.position >= samples[channels[i].name].length)))) || ((((st.volume <= 0)) && ((channels[i].action == V_DN)))))){ delete samples[channels[i].name]; samples[channels[i].name] = null; (channels[i].channel as SoundChannel).stop(); channels.splice(i, 1); } else { (channels[i].channel as SoundChannel).soundTransform = st; }; } else { if (channels[i].type == T_SND){ sound_count++; try { if (((((channels[i].channel as SoundChannel).position >= (samples[channels[i].name] as Sound).length)) || ((channels[i].action == V_DN)))){ (channels[i].channel as SoundChannel).stop(); channels.splice(i, 1); }; } catch(e:Error) { }; } else { if (channels[i].channel){ channels[i].channel.stop(); }; channels.splice(i, 1); }; }; }; i = (i + 1); }; } public static function Reset():void{ samples = {}; channels = []; } public static function init(_arg1:Layer){ Sfx.clip = _arg1; Reset(); } public static function Music_StopAndPlay(_arg1:String, _arg2:Boolean=false, _arg3:Function=null):SoundChannel{ Music_Stop(); return (Music_Play(_arg1, _arg2, _arg3)); } public static function Sound_Stop():void{ var _local1:int; _local1 = 0; while (_local1 < channels.length) { if (channels[_local1].type == T_SND){ channels[_local1].action = V_DN; }; _local1++; }; } public static function play(_arg1:String, _arg2:Number=1, _arg3:Number=0, _arg4:Function=null):SoundChannel{ return (Sound_Play(_arg1, _arg3, _arg4)); } public static function Sfx_Play(_arg1:String, _arg2:Number=0, _arg3:Function=null):SoundChannel{ return (Sfx_PlayVol(_arg1, _arg2, 1, _arg3)); } public static function Sfx_Add(_arg1:String, _arg2):void{ if (!_arg2){ return; }; if (!sfx[_arg1]){ sfx[_arg1] = []; }; if ((_arg2 is Array)){ sfx[_arg1] = sfx[_arg1].concat(_arg2); } else { if ((_arg2 is String)){ sfx[_arg1].push(_arg2); }; }; } } }//package elm.core
Section 76
//State (elm.core.State) package elm.core { import flash.events.*; public class State extends Layer { public function init(_arg1=null):Boolean{ return (false); } public function onMouseClick(_arg1:MouseEvent):void{ } public function onMouseUp(_arg1:MouseEvent):void{ } public function isShow():Boolean{ return (true); } public function onMouseDoubleClick(_arg1:MouseEvent):void{ } public function frame():void{ } public function free():void{ } public function isHide():Boolean{ return (true); } public function onKeyUp(_arg1:KeyboardEvent):void{ } public function onKeyDown(_arg1:KeyboardEvent):void{ } public function isKeyEvent():Boolean{ return (true); } public function onMouseDown(_arg1:MouseEvent):void{ } public function isMouseEvent():Boolean{ return (true); } public function onMouseMove(_arg1:MouseEvent):void{ } } }//package elm.core
Section 77
//Text (elm.core.Text) package elm.core { import flash.display.*; import flash.text.*; public dynamic class Text extends Sprite { private var _text:TextField; public function Text(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Object){ var _local6:TextFormat; super(); this.x = (_arg1 + (_arg3 * 0.5)); this.y = (_arg2 + (_arg4 * 0.5)); _text = new TextField(); _text.x = (-(_arg3) * 0.5); _text.y = (-(_arg4) * 0.5); _text.width = _arg3; _text.height = _arg4; _text.selectable = false; _text.embedFonts = _arg5.embed; _text.multiline = true; _text.wordWrap = true; _text.antiAliasType = AntiAliasType.ADVANCED; _text.mouseEnabled = false; _local6 = new TextFormat(_arg5.font, _arg5.size, _arg5.color, _arg5.bold, _arg5.italic, _arg5.underline, _arg5.url, _arg5.target, _arg5.align, _arg5.leftMargin, _arg5.rightMargin, _arg5.indent, _arg5.leading); _text.defaultTextFormat = _local6; addChild(_text); mouseEnabled = false; mouseChildren = false; } public function get text():String{ return (_text.text); } public function set text(_arg1:String):void{ _text.text = _arg1; } public function set a(_arg1:Number):void{ alpha = _arg1; _text.alpha = _arg1; } } }//package elm.core
Section 78
//CooldownTimer (elm.game.CooldownTimer) package elm.game { public class CooldownTimer { private var timer:Number;// = 0 private var time:Number;// = 0 private var is_active:Boolean;// = false public function CooldownTimer(_arg1:Number=0){ is_active = false; time = 0; timer = 0; super(); time = _arg1; timer = 0; } public function start(_arg1:Number=-1):void{ if (_arg1 >= 0){ time = _arg1; }; is_active = true; timer = time; } public function isComplete():Boolean{ return (((is_active) && ((timer <= 0)))); } public function stop():void{ is_active = false; } public function update(_arg1:Number):void{ if (!is_active){ return; }; if (timer > 0){ timer = (timer - _arg1); }; } public function complete():void{ is_active = true; timer = 0; } } }//package elm.game
Section 79
//Fader (elm.state.Fader) package elm.state { import flash.events.*; import elm.core.*; import flash.media.*; import flash.display.*; import elm.gfx.*; import flash.filters.*; public class Fader extends State { private var attr:Object; override public function init(_arg1=null):Boolean{ if (!_arg1){ _arg1 = {}; }; if (!_arg1.color){ _arg1.color = 0; }; if (!_arg1.alpha){ _arg1.alpha = 0; }; if (!_arg1.state){ _arg1.state = "mainmenu"; }; if (!_arg1.attr){ _arg1.attr = null; }; this.attr = _arg1; alpha = _arg1.alpha; graphics.clear(); graphics.beginFill(_arg1.color, 1); graphics.drawRect(0, 0, Game.Width, Game.Height); return (true); } override public function onMouseClick(_arg1:MouseEvent):void{ } override public function isShow():Boolean{ alpha = (alpha + Game.delta); if (alpha >= 1){ alpha = 1; return (true); }; return (false); } override public function free():void{ } override public function frame():void{ Game.setState(attr.state, Game.MODE_BACK, attr.attr); } override public function isHide():Boolean{ alpha = (alpha - Game.delta); if (alpha <= 0){ alpha = 0; return (true); }; return (false); } override public function onKeyDown(_arg1:KeyboardEvent):void{ } public static function start(_arg1:String, _arg2:int=0xFFFFFF, _arg3:Number=0, _arg4:Object=null, _arg5:String="fader"):void{ Game.setState(_arg5, Game.MODE_FRONT, {color:_arg2, alpha:_arg3, state:_arg1, attr:_arg4}); } } }//package elm.state
Section 80
//XmlLoaderState (elm.state.XmlLoaderState) package elm.state { import flash.events.*; import elm.core.*; import game.*; import flash.net.*; import flash.system.*; public class XmlLoaderState extends State { private var is_loading:Boolean; private var data:Object; private var attempt:int;// = 0 private var attr:Object;// = null public function XmlLoaderState(){ attr = null; data = {name:"", xml_str:""}; attempt = 0; super(); } override public function init(_arg1=null):Boolean{ attr = _arg1; data.name = attr.name; data.xml_str = ""; is_loading = false; return (true); } override public function free():void{ } override public function frame():void{ var _local1:URLVariables; var _local2:URLRequest; var _local3:URLLoader; if (!is_loading){ _local1 = new URLVariables(); _local1.act = "load"; _local1.path = getXmlPath(); _local1.name = attr.name; _local1.random = Math.floor((Math.random() * int.MAX_VALUE)); _local2 = new URLRequest((getServerUrl() + "xmls.php")); Security.allowDomain(_local2.url); _local2.data = _local1; _local2.method = URLRequestMethod.POST; _local3 = new URLLoader(); _local3.dataFormat = URLLoaderDataFormat.TEXT; _local3.addEventListener(Event.COMPLETE, onLoad); _local3.addEventListener(IOErrorEvent.IO_ERROR, onIoError); _local3.load(_local2); is_loading = true; }; } public function getServerUrl():String{ return (""); } public function onLoad(_arg1:Event):void{ data.xml_str = (_arg1.target as URLLoader).data; Game.setState((attr.state) ? attr.state : "mainmenu", (attr.mode) ? attr.mode : Game.MODE_BACK, data); attr = null; attempt = 0; } public function getXmlPath():String{ return (""); } public function onIoError(_arg1:IOErrorEvent):void{ attempt++; if (attempt > 10){ Game.setState("mainmenu"); } else { is_loading = false; }; } public function XmlLoader(){ } } }//package elm.state
Section 81
//Vec2 (elm.types.Vec2) package elm.types { import flash.geom.*; import Box2D.Common.Math.*; public class Vec2 extends b2Vec2 { public function Vec2(_arg1:Number=0, _arg2:Number=0){ super(_arg1, _arg2); } public function MoveTo(_arg1:Number, _arg2:Vec2, _arg3:Boolean=true):void{ var _local4:Number; if (_arg3){ _local4 = DistanceTo(_arg2); if (_local4 < _arg1){ x = _arg2.x; y = _arg2.y; } else { Move(_arg1, AngleTo(_arg2)); }; } else { Move(_arg1, AngleTo(_arg2)); }; } public function SetP(_arg1:Point):void{ x = _arg1.x; y = _arg1.y; } public function Is(_arg1:b2Vec2):Boolean{ return ((((x == _arg1.x)) && ((y == _arg1.y)))); } override public function Copy():b2Vec2{ return (new Vec2(x, y)); } public function DistancePowTo(_arg1:b2Vec2):Number{ return ((((_arg1.x - x) * (_arg1.x - x)) + ((_arg1.y - y) * (_arg1.y - y)))); } public function AngleTo(_arg1:b2Vec2):Number{ var _local2:Number; if ((((x == _arg1.x)) && ((y == _arg1.y)))){ return (0); }; _local2 = ((Math.atan(((_arg1.y - y) / (_arg1.x - x))) * 180) / Math.PI); if (_arg1.x >= x){ return ((_local2 + 90)); }; return ((_local2 - 90)); } public function Move(_arg1:Number, _arg2:Number){ var _local3:Number; _local3 = ((Math.PI / 180) * _arg2); x = (x + (Math.sin(_local3) * _arg1)); y = (y - (Math.cos(_local3) * _arg1)); } public function DistanceTo(_arg1:b2Vec2):Number{ return (Math.sqrt((((_arg1.x - x) * (_arg1.x - x)) + ((_arg1.y - y) * (_arg1.y - y))))); } public function Angle():Number{ var _local1:Vec2; _local1 = new Vec2(); return (_local1.AngleTo(this)); } public function SetA(_arg1:Number, _arg2:Number):void{ x = 0; y = 0; Move(_arg1, _arg2); } } }//package elm.types
Section 82
//Data (elm.utils.Data) package elm.utils { import flash.utils.*; public class Data { public static function toBool(_arg1):Boolean{ if ((((_arg1 is String)) && ((_arg1 == "true")))){ return (true); }; if ((((_arg1 is int)) && ((_arg1 == 1)))){ return (true); }; return (false); } public static function clone(_arg1){ var _local2:ByteArray; _local2 = new ByteArray(); _local2.writeObject(_arg1); _local2.position = 0; return (_local2.readObject()); } } }//package elm.utils
Section 83
//Float (elm.utils.Float) package elm.utils { public class Float { public static function approach(_arg1:Number, _arg2:Number, _arg3:Number):Number{ var _local4:Number; _local4 = (_arg2 - _arg3); if (_local4 > 0){ if (_local4 < _arg1){ return (_arg3); }; return ((_arg2 - _arg1)); //unresolved jump }; if (_local4 < 0){ _local4 = -(_local4); if (_local4 < _arg1){ return (_arg3); }; return ((_arg2 + _arg1)); //unresolved jump }; return (_arg3); } } }//package elm.utils
Section 84
//Player (game.actors.player.Player) package game.actors.player { import elm.core.*; import flash.display.*; import alternativa.types.*; import alternativa.engine3d.core.*; import alternativa.engine3d.materials.*; import game.actors.*; import alternativa.engine3d.primitives.*; import gfx.*; public class Player extends Actor { private var jump_vel:Number;// = 0 public var pos:Point3D; private var mesh:Mesh; public static const RADIUS:Number = 32; public static const JUMP_SPEED:Number = 400; public static const SPEED:Number = 200; public static const GRAVITY:Number = 500; public function Player(_arg1:Object){ var _local2:FillMaterial; jump_vel = 0; super(_arg1); mesh = new GeoSphere(RADIUS); _local2 = new FillMaterial(0xFFFFFF, 1, BlendMode.NORMAL, 1, 0); mesh.cloneMaterialToAllSurfaces(_local2); mesh.mobility = 1000; mesh.mouseEnabled = false; pos = new Point3D(); pos.x = attr.x; pos.y = attr.y; pos.z = attr.z; render(); } override public function update(_arg1:Number):void{ pos.z = (pos.z + (jump_vel * _arg1)); jump_vel = (jump_vel - (_arg1 * GRAVITY)); } override public function getVisualObject():Object3D{ return (mesh); } override public function render():void{ mesh.x = pos.x; mesh.y = pos.y; mesh.z = pos.z; } public function isJumped():Boolean{ return ((jump_vel > 0)); } override public function die():void{ super.die(); } override public function onDeath():void{ } public function unjump():void{ if (jump_vel > 0){ jump_vel = 0; }; } override public function free():void{ mesh = null; pos = null; super.free(); } public function jump(_arg1:Number=1):void{ jump_vel = (JUMP_SPEED * _arg1); Sfx.Sfx_Play("jump"); } } }//package game.actors.player
Section 85
//Actor (game.actors.Actor) package game.actors { import game.*; public class Actor extends Entity { public function Actor(_arg1:Object){ super(_arg1); } public function update(_arg1:Number):void{ } public function render():void{ } override public function free():void{ } } }//package game.actors
Section 86
//DeadMesh (game.actors.DeadMesh) package game.actors { import alternativa.engine3d.core.*; import alternativa.engine3d.materials.*; public class DeadMesh extends Actor { protected var mat:SurfaceMaterial; protected var alpha_speed:Number; protected var mesh:Mesh; public static const LIFE_TIME:Number = 1; public static const DOWN:int = 1; public static const SPEED:Number = 200; public static const UP:int = 0; public function DeadMesh(_arg1:Object){ super(_arg1); if (!attr.type){ (attr.type == DOWN); }; if (!attr.speed){ attr.speed = SPEED; }; if (!attr.life_timer){ attr.life_timer = LIFE_TIME; }; mesh = _arg1.mesh; mat = _arg1.mat; mesh.cloneMaterialToAllSurfaces(mat); mesh.x = attr.x; mesh.y = attr.y; mesh.z = attr.z; mesh.mobility = 100; mesh.mouseEnabled = false; alpha_speed = (1 / attr.life_timer); } override public function update(_arg1:Number):void{ if (attr.type == UP){ mesh.z = (mesh.z + (_arg1 * attr.speed)); } else { mesh.z = (mesh.z - (_arg1 * attr.speed)); }; mat.alpha = (mat.alpha - (_arg1 * alpha_speed)); mesh.cloneMaterialToAllSurfaces(mat); attr.life_timer = (attr.life_timer - _arg1); if (attr.life_timer <= 0){ die(); }; } override public function getVisualObject():Object3D{ return (mesh); } override public function free():void{ mesh = null; mat = null; super.free(); } } }//package game.actors
Section 87
//Exit (game.actors.Exit) package game.actors { import flash.display.*; import alternativa.types.*; import alternativa.engine3d.core.*; import alternativa.particle3d.*; import alternativa.engine3d.materials.*; import game.*; import alternativa.engine3d.primitives.*; public class Exit extends Actor implements Selectable { private var mat:FillMaterial; private var em:ExplosionEmitter;// = null private var mesh:Mesh; public static const COLOR_BLOCK:int = 3568694; public static const COLOR_NORMAL:int = 7864183; public function Exit(_arg1:Object){ em = null; super(_arg1); mesh = new Box(100, 100, 20); mat = new FillMaterial(COLOR_BLOCK, 1, BlendMode.NORMAL, 1, 0); mesh.cloneMaterialToAllSurfaces(mat); mesh.mobility = 1; mesh.mouseEnabled = false; mesh.x = attr.x; mesh.y = attr.y; mesh.z = attr.z; if (Main.is_effects){ em = new ExplosionEmitter({emitter:{life:-1, max:40, pos:mesh.coords}, particle:{life_min:1, life_max:2.5, scale_begin:2, scale_end:1, blend:BlendMode.ADD, speed:500, speed_rnd:new Point3D(0, 0, 1), pos_rnd:new Point3D(50, 50, 1)}, bitmaps:[{cls:ParticleBitmap4, width:6, height:6}, {cls:ParticleBitmap4_0, width:8, height:8}]}); }; } override public function getVisualObject():Object3D{ return (mesh); } public function open(_arg1:Boolean):void{ if (_arg1){ mat.color = COLOR_NORMAL; mesh.cloneMaterialToAllSurfaces(mat); if (Main.is_effects){ room.emitter_manager.add(em); }; } else { mat.color = COLOR_BLOCK; mesh.cloneMaterialToAllSurfaces(mat); if (Main.is_effects){ room.emitter_manager.remove(em); }; }; } override public function setRoom(_arg1:Room):void{ super.setRoom(_arg1); } override public function free():void{ room.emitter_manager.remove(em); em = null; mat = null; mesh = null; super.free(); } public function select(_arg1:Boolean):void{ if (_arg1){ if (Main.is_effects){ room.emitter_manager.add(new ExplosionEmitter({emitter:{life:0, max:40, pos:mesh.coords}, particle:{life_min:1, life_max:2.5, scale_begin:2, scale_end:1, blend:BlendMode.ADD, speed:500, speed_rnd:new Point3D(0, 0, 1), pos_rnd:new Point3D(50, 50, 1)}, bitmaps:[{cls:ParticleBitmap4, width:6, height:6}, {cls:ParticleBitmap4_0, width:8, height:8}]})); }; }; } } }//package game.actors
Section 88
//Lava (game.actors.Lava) package game.actors { import flash.display.*; import alternativa.types.*; import alternativa.engine3d.core.*; import alternativa.particle3d.*; import alternativa.engine3d.materials.*; import game.*; import alternativa.engine3d.primitives.*; public class Lava extends Actor implements Selectable { private var em:ExplosionEmitter;// = null private var mesh:Mesh; public function Lava(_arg1:Object){ var _local2:FillMaterial; em = null; super(_arg1); mesh = new Box(100, 100, 20); _local2 = new FillMaterial(16716083, 1, BlendMode.NORMAL, 1, 0); mesh.cloneMaterialToAllSurfaces(_local2); mesh.mobility = 1; mesh.mouseEnabled = false; mesh.x = attr.x; mesh.y = attr.y; mesh.z = attr.z; if (Main.is_effects){ em = new ExplosionEmitter({emitter:{life:-1, max:5, pos:mesh.coords}, particle:{life_min:2, life_max:8, scale_begin:5, scale_end:0.5, blend:BlendMode.MULTIPLY, speed:100, speed_rnd:new Point3D(0, 0, 1), pos_rnd:new Point3D(50, 50, 1)}, bitmaps:[{cls:ParticleBitmap2_0, width:16, height:16}, {cls:ParticleBitmap2_1, width:16, height:16}, {cls:ParticleBitmap2_2, width:16, height:16}]}); }; } override public function getVisualObject():Object3D{ return (mesh); } override public function setRoom(_arg1:Room):void{ super.setRoom(_arg1); if (Main.is_effects){ room.emitter_manager.add(em); }; } override public function free():void{ room.emitter_manager.remove(em); em = null; mesh = null; super.free(); } public function select(_arg1:Boolean):void{ if (_arg1){ if (Main.is_effects){ room.emitter_manager.add(new ExplosionEmitter({emitter:{life:0, max:20, pos:mesh.coords}, particle:{life_min:2, life_max:8, scale_begin:5, scale_end:0.5, blend:BlendMode.MULTIPLY, speed:300, speed_rnd:new Point3D(0, 0, 1), pos_rnd:new Point3D(50, 50, 1)}, bitmaps:[{cls:ParticleBitmap2_0, width:16, height:16}, {cls:ParticleBitmap2_1, width:16, height:16}, {cls:ParticleBitmap2_2, width:16, height:16}]})); }; }; } } }//package game.actors
Section 89
//HidePlatform (game.entities.HidePlatform) package game.entities { import flash.display.*; import alternativa.engine3d.core.*; import alternativa.engine3d.materials.*; import game.*; import game.actors.*; import alternativa.engine3d.primitives.*; public class HidePlatform extends Entity implements Selectable { private var mat:FillMaterial; private var mesh:Mesh; public function HidePlatform(_arg1:Object){ super(_arg1); mesh = new Box(100, 100, 20); mesh.name = ("hideplatform" + id); mat = new FillMaterial(0xF3F3F3, 1, BlendMode.NORMAL, 1, 0); mesh.cloneMaterialToAllSurfaces(mat); mesh.mobility = 1; mesh.mouseEnabled = false; mesh.x = attr.x; mesh.y = attr.y; mesh.z = attr.z; } override public function getVisualObject():Object3D{ return (mesh); } override public function die():void{ var _local1:Object; if (Main.is_effects){ _local1 = {}; _local1.mesh = mesh.clone(); _local1.mat = mat.clone(); _local1.x = mesh.x; _local1.y = mesh.y; _local1.z = mesh.z; _local1.type = DeadMesh.DOWN; room.add(new DeadMesh(_local1)); }; super.die(); } override public function free():void{ mesh = null; mat = null; super.free(); } public function select(_arg1:Boolean):void{ if (_arg1){ mat.color = 11598263; } else { mat.color = 0xF3F3F3; }; mesh.cloneMaterialToAllSurfaces(mat); } } }//package game.entities
Section 90
//Money (game.entities.Money) package game.entities { import flash.display.*; import alternativa.engine3d.core.*; import alternativa.engine3d.materials.*; import game.*; import alternativa.engine3d.primitives.*; public class Money extends Entity { private var mat:FillMaterial; private var mesh:Mesh; public function Money(_arg1:Object){ super(_arg1); mesh = new Box(20, 20, 20); mesh.name = ("money" + id); mat = new FillMaterial(16777045, 1, BlendMode.NORMAL, 1, 0); mesh.cloneMaterialToAllSurfaces(mat); mesh.mobility = 100; mesh.mouseEnabled = false; mesh.x = attr.x; mesh.y = attr.y; mesh.z = (attr.z - 40); mesh.rotationZ = (Math.PI / 4); mesh.rotationY = (Math.PI / 4); } override public function getVisualObject():Object3D{ return (mesh); } override public function die():void{ super.die(); } override public function free():void{ mesh = null; super.free(); } } }//package game.entities
Section 91
//MoneyBox (game.entities.MoneyBox) package game.entities { import flash.display.*; import alternativa.engine3d.core.*; import alternativa.engine3d.materials.*; import game.*; import game.actors.*; import alternativa.engine3d.primitives.*; public class MoneyBox extends Entity { public var count:int; private var mat:FillMaterial; private var mesh:Mesh; public function MoneyBox(_arg1:Object){ super(_arg1); mesh = new Box(60, 60, 40); mesh.name = ("moneybox" + id); mat = new FillMaterial(16777045, 1, BlendMode.NORMAL, 1, 0); mesh.cloneMaterialToAllSurfaces(mat); mesh.mobility = 10; mesh.mouseEnabled = false; mesh.x = attr.x; mesh.y = attr.y; mesh.z = (attr.z + 20); if (attr.count){ count = attr.count; } else { count = 5; }; } override public function getVisualObject():Object3D{ return (mesh); } override public function die():void{ var _local1:Object; if (Main.is_effects){ _local1 = {}; _local1.mesh = mesh.clone(); _local1.mat = mat.clone(); _local1.x = mesh.x; _local1.y = mesh.y; _local1.z = mesh.z; _local1.type = DeadMesh.UP; room.add(new DeadMesh(_local1)); }; super.die(); } override public function free():void{ mesh = null; super.free(); } } }//package game.entities
Section 92
//Platform (game.entities.Platform) package game.entities { import flash.display.*; import alternativa.engine3d.core.*; import alternativa.engine3d.materials.*; import game.*; import alternativa.engine3d.primitives.*; public class Platform extends Entity implements Selectable { private var mat:FillMaterial; private var mesh:Mesh; public static const TYPE_TELEPORT:int = 2; public static const TYPE_JUMP:int = 1; public static const TYPE_NORMAL:int = 0; public static const TYPES_COLOR:Array = [15134960, 16167368, 7842559, 0]; public static const TYPES_COLOR_SELECT:Array = [11598329, 16422327, 7842559, 0]; public function Platform(_arg1:Object){ super(_arg1); mesh = new Box(100, 100, 20); mat = new FillMaterial(TYPES_COLOR[attr.type], 1, BlendMode.NORMAL, 1, 0); mesh.cloneMaterialToAllSurfaces(mat); mesh.mobility = 1; mesh.mouseEnabled = false; mesh.x = attr.x; mesh.y = attr.y; mesh.z = attr.z; } override public function getVisualObject():Object3D{ return (mesh); } override public function free():void{ mesh = null; mat = null; super.free(); } public function select(_arg1:Boolean):void{ if (!mesh){ return; }; if (_arg1){ mat.color = TYPES_COLOR_SELECT[attr.type]; } else { mat.color = TYPES_COLOR[attr.type]; }; mesh.cloneMaterialToAllSurfaces(mat); } } }//package game.entities
Section 93
//Entity (game.Entity) package game { import flash.events.*; import alternativa.engine3d.core.*; public class Entity extends EventDispatcher { protected var id:int; protected var room:Room; protected var attr:Object; ManagerAccess var is_alive:Boolean;// = true private static var ids:int = -1; public function Entity(_arg1:Object){ is_alive = true; super(); id = ++ids; attr = _arg1; } public function isAlive():Boolean{ return (is_alive); } public function die():void{ dispatchEvent(new EntityEvent(this, EntityEvent.DEATH)); } public function getVisualObject():Object3D{ return (null); } public function setRoom(_arg1:Room):void{ room = _arg1; } public function onDeath():void{ } public function free():void{ } } }//package game
Section 94
//EntityEvent (game.EntityEvent) package game { import flash.events.*; public class EntityEvent extends Event { public var entity:Entity; public static const ADD:String = "add"; public static const REMOVE:String = "remove"; public static const DEATH:String = "death"; public function EntityEvent(_arg1:Entity, _arg2:String, _arg3:Boolean=false, _arg4:Boolean=false){ super(_arg2, _arg3, cancelable); entity = _arg1; } } }//package game
Section 95
//GameXmlData (game.GameXmlData) package game { public class GameXmlData { public static var map:Array = []; map.push("<map name=\"01. JOURNEY BEGINS\"><platform x=\"5\" y=\"11\" z=\"0\" type=\"0\" /><platform x=\"5\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"5\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"5\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"5\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"11\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"7\" y=\"11\" z=\"0\" type=\"0\" /><platform x=\"7\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"7\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"7\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"7\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"11\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"11\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"11\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"13\" z=\"0\" type=\"4\" /><platform x=\"14\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"7\" y=\"13\" z=\"1\" type=\"-1\" /></map>"); map.push("<map name=\"02. FIRST TURN\"><platform x=\"6\" y=\"21\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"7\" y=\"21\" z=\"0\" type=\"0\" /><platform x=\"7\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"7\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"21\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"11\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"16\" z=\"0\" type=\"4\" /><platform x=\"13\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"18\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"19\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"20\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"21\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"7\" y=\"22\" z=\"1\" type=\"-1\" /></map>"); map.push("<map name=\"03. YELLOW ROAD\"><platform x=\"2\" y=\"24\" z=\"0\" type=\"0\" /><platform x=\"2\" y=\"25\" z=\"0\" type=\"0\" /><platform x=\"2\" y=\"26\" z=\"0\" type=\"0\" /><platform x=\"3\" y=\"24\" z=\"0\" type=\"0\" /><platform x=\"3\" y=\"25\" z=\"0\" type=\"0\" /><platform x=\"3\" y=\"26\" z=\"0\" type=\"0\" /><platform x=\"4\" y=\"24\" z=\"0\" type=\"0\" /><platform x=\"4\" y=\"25\" z=\"0\" type=\"0\" /><platform x=\"4\" y=\"26\" z=\"0\" type=\"0\" /><platform x=\"5\" y=\"25\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"25\" z=\"0\" type=\"0\" /><platform x=\"7\" y=\"25\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"25\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"21\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"24\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"25\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"21\" z=\"0\" type=\"0\" /><platform x=\"11\" y=\"21\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"21\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"15\" z=\"0\" type=\"4\" /><platform x=\"13\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"18\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"19\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"20\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"21\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"3\" y=\"25\" z=\"1\" type=\"-1\" /><platform x=\"5\" y=\"25\" z=\"1\" type=\"6\" /><platform x=\"6\" y=\"25\" z=\"1\" type=\"6\" /><platform x=\"7\" y=\"25\" z=\"1\" type=\"6\" /><platform x=\"8\" y=\"25\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"21\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"23\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"24\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"25\" z=\"1\" type=\"6\" /><platform x=\"10\" y=\"21\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"21\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"21\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"21\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"16\" z=\"1\" type=\"6\" /></map>"); map.push("<map name=\"04. STAIRS\"><platform x=\"9\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"12\" z=\"1\" type=\"-1\" /><platform x=\"11\" y=\"12\" z=\"1\" type=\"0\" /><platform x=\"12\" y=\"12\" z=\"1\" type=\"0\" /><platform x=\"11\" y=\"12\" z=\"2\" type=\"6\" /><platform x=\"12\" y=\"12\" z=\"2\" type=\"6\" /><platform x=\"13\" y=\"12\" z=\"2\" type=\"0\" /><platform x=\"13\" y=\"13\" z=\"2\" type=\"0\" /><platform x=\"13\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"13\" y=\"13\" z=\"3\" type=\"6\" /><platform x=\"13\" y=\"14\" z=\"3\" type=\"0\" /><platform x=\"13\" y=\"15\" z=\"3\" type=\"0\" /><platform x=\"13\" y=\"14\" z=\"4\" type=\"6\" /><platform x=\"13\" y=\"15\" z=\"4\" type=\"6\" /><platform x=\"14\" y=\"15\" z=\"4\" type=\"0\" /><platform x=\"15\" y=\"15\" z=\"4\" type=\"0\" /><platform x=\"14\" y=\"15\" z=\"5\" type=\"6\" /><platform x=\"15\" y=\"15\" z=\"5\" type=\"6\" /><platform x=\"16\" y=\"15\" z=\"5\" type=\"0\" /><platform x=\"17\" y=\"14\" z=\"5\" type=\"0\" /><platform x=\"17\" y=\"15\" z=\"5\" type=\"0\" /><platform x=\"17\" y=\"16\" z=\"5\" type=\"0\" /><platform x=\"18\" y=\"14\" z=\"5\" type=\"0\" /><platform x=\"18\" y=\"15\" z=\"5\" type=\"4\" /><platform x=\"18\" y=\"16\" z=\"5\" type=\"0\" /><platform x=\"19\" y=\"14\" z=\"5\" type=\"0\" /><platform x=\"19\" y=\"15\" z=\"5\" type=\"0\" /><platform x=\"19\" y=\"16\" z=\"5\" type=\"0\" /><platform x=\"20\" y=\"13\" z=\"5\" type=\"0\" /><platform x=\"20\" y=\"17\" z=\"5\" type=\"0\" /><platform x=\"21\" y=\"12\" z=\"5\" type=\"0\" /><platform x=\"21\" y=\"18\" z=\"5\" type=\"0\" /><platform x=\"20\" y=\"13\" z=\"6\" type=\"6\" /><platform x=\"20\" y=\"17\" z=\"6\" type=\"6\" /><platform x=\"21\" y=\"12\" z=\"6\" type=\"6\" /><platform x=\"21\" y=\"18\" z=\"6\" type=\"6\" /></map>"); map.push("<map name=\"05. WATCH YOUR STEP\"><platform x=\"5\" y=\"21\" z=\"0\" type=\"0\" /><platform x=\"5\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"5\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"21\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"7\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"7\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"7\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"7\" y=\"21\" z=\"0\" type=\"0\" /><platform x=\"7\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"7\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"16\" z=\"0\" type=\"7\" /><platform x=\"8\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"22\" z=\"0\" type=\"7\" /><platform x=\"9\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"16\" z=\"0\" type=\"7\" /><platform x=\"10\" y=\"22\" z=\"0\" type=\"7\" /><platform x=\"11\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"11\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"16\" z=\"0\" type=\"7\" /><platform x=\"12\" y=\"22\" z=\"0\" type=\"7\" /><platform x=\"13\" y=\"7\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"8\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"9\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"21\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"7\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"8\" z=\"0\" type=\"7\" /><platform x=\"14\" y=\"9\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"10\" z=\"0\" type=\"7\" /><platform x=\"14\" y=\"11\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"12\" z=\"0\" type=\"7\" /><platform x=\"14\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"14\" z=\"0\" type=\"7\" /><platform x=\"14\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"18\" z=\"0\" type=\"7\" /><platform x=\"14\" y=\"19\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"20\" z=\"0\" type=\"7\" /><platform x=\"14\" y=\"21\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"7\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"8\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"9\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"21\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"16\" z=\"0\" type=\"7\" /><platform x=\"17\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"18\" y=\"16\" z=\"0\" type=\"7\" /><platform x=\"19\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"20\" y=\"16\" z=\"0\" type=\"7\" /><platform x=\"21\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"21\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"21\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"22\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"22\" y=\"16\" z=\"0\" type=\"4\" /><platform x=\"22\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"23\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"23\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"23\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"22\" z=\"1\" type=\"-1\" /><platform x=\"7\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"7\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"7\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"8\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"8\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"8\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"8\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"10\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"10\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"7\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"8\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"9\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"21\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"23\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"7\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"8\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"9\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"10\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"11\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"13\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"21\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"23\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"7\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"8\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"9\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"21\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"23\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"19\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"16\" z=\"1\" type=\"6\" /></map>"); map.push("<map name=\"06. PINK LAUNCH\"><platform x=\"10\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"11\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"11\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"11\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"16\" z=\"0\" type=\"1\" /><platform x=\"11\" y=\"16\" z=\"1\" type=\"-1\" /><platform x=\"13\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"16\" y=\"16\" z=\"3\" type=\"6\" /><platform x=\"19\" y=\"12\" z=\"3\" type=\"1\" /><platform x=\"16\" y=\"16\" z=\"4\" type=\"6\" /><platform x=\"17\" y=\"16\" z=\"4\" type=\"0\" /><platform x=\"18\" y=\"11\" z=\"4\" type=\"0\" /><platform x=\"18\" y=\"12\" z=\"4\" type=\"0\" /><platform x=\"18\" y=\"13\" z=\"4\" type=\"0\" /><platform x=\"18\" y=\"16\" z=\"4\" type=\"0\" /><platform x=\"19\" y=\"11\" z=\"4\" type=\"0\" /><platform x=\"19\" y=\"12\" z=\"4\" type=\"6\" /><platform x=\"19\" y=\"13\" z=\"4\" type=\"0\" /><platform x=\"19\" y=\"14\" z=\"4\" type=\"0\" /><platform x=\"19\" y=\"15\" z=\"4\" type=\"0\" /><platform x=\"19\" y=\"16\" z=\"4\" type=\"0\" /><platform x=\"20\" y=\"11\" z=\"4\" type=\"0\" /><platform x=\"20\" y=\"12\" z=\"4\" type=\"0\" /><platform x=\"20\" y=\"13\" z=\"4\" type=\"0\" /><platform x=\"17\" y=\"16\" z=\"5\" type=\"6\" /><platform x=\"18\" y=\"11\" z=\"5\" type=\"6\" /><platform x=\"18\" y=\"12\" z=\"5\" type=\"6\" /><platform x=\"18\" y=\"13\" z=\"5\" type=\"6\" /><platform x=\"18\" y=\"16\" z=\"5\" type=\"6\" /><platform x=\"19\" y=\"11\" z=\"5\" type=\"6\" /><platform x=\"19\" y=\"12\" z=\"5\" type=\"6\" /><platform x=\"19\" y=\"13\" z=\"5\" type=\"6\" /><platform x=\"19\" y=\"14\" z=\"5\" type=\"6\" /><platform x=\"19\" y=\"15\" z=\"5\" type=\"6\" /><platform x=\"19\" y=\"16\" z=\"5\" type=\"6\" /><platform x=\"20\" y=\"11\" z=\"5\" type=\"6\" /><platform x=\"20\" y=\"12\" z=\"5\" type=\"6\" /><platform x=\"20\" y=\"13\" z=\"5\" type=\"6\" /><platform x=\"19\" y=\"12\" z=\"6\" type=\"6\" /><platform x=\"19\" y=\"12\" z=\"7\" type=\"6\" /><platform x=\"19\" y=\"12\" z=\"8\" type=\"6\" /><platform x=\"20\" y=\"12\" z=\"8\" type=\"0\" /><platform x=\"21\" y=\"12\" z=\"8\" type=\"0\" /><platform x=\"22\" y=\"12\" z=\"8\" type=\"0\" /><platform x=\"23\" y=\"11\" z=\"8\" type=\"0\" /><platform x=\"23\" y=\"12\" z=\"8\" type=\"0\" /><platform x=\"23\" y=\"13\" z=\"8\" type=\"0\" /><platform x=\"24\" y=\"11\" z=\"8\" type=\"0\" /><platform x=\"24\" y=\"12\" z=\"8\" type=\"4\" /><platform x=\"24\" y=\"13\" z=\"8\" type=\"0\" /><platform x=\"25\" y=\"11\" z=\"8\" type=\"0\" /><platform x=\"25\" y=\"12\" z=\"8\" type=\"0\" /><platform x=\"25\" y=\"13\" z=\"8\" type=\"0\" /><platform x=\"20\" y=\"12\" z=\"9\" type=\"6\" /><platform x=\"21\" y=\"12\" z=\"9\" type=\"6\" /><platform x=\"22\" y=\"12\" z=\"9\" type=\"6\" /><platform x=\"23\" y=\"11\" z=\"9\" type=\"6\" /><platform x=\"23\" y=\"12\" z=\"9\" type=\"6\" /><platform x=\"23\" y=\"13\" z=\"9\" type=\"6\" /><platform x=\"24\" y=\"11\" z=\"9\" type=\"6\" /><platform x=\"24\" y=\"13\" z=\"9\" type=\"6\" /><platform x=\"25\" y=\"11\" z=\"9\" type=\"6\" /><platform x=\"25\" y=\"12\" z=\"9\" type=\"6\" /><platform x=\"25\" y=\"13\" z=\"9\" type=\"6\" /></map>"); map.push("<map name=\"07. BREAK IT DOWN\"><platform x=\"3\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"3\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"3\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"3\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"3\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"3\" y=\"24\" z=\"0\" type=\"0\" /><platform x=\"4\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"4\" y=\"14\" z=\"0\" type=\"4\" /><platform x=\"4\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"4\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"4\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"4\" y=\"24\" z=\"0\" type=\"0\" /><platform x=\"5\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"5\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"5\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"5\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"5\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"5\" y=\"24\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"7\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"7\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"11\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"11\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"11\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"11\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"11\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"11\" y=\"24\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"24\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"24\" z=\"0\" type=\"0\" /><platform x=\"18\" y=\"18\" z=\"0\" type=\"1\" /><platform x=\"18\" y=\"19\" z=\"0\" type=\"1\" /><platform x=\"19\" y=\"18\" z=\"0\" type=\"1\" /><platform x=\"19\" y=\"19\" z=\"0\" type=\"1\" /><platform x=\"4\" y=\"23\" z=\"1\" type=\"-1\" /><platform x=\"6\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"6\" y=\"23\" z=\"1\" type=\"6\" /><platform x=\"7\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"7\" y=\"23\" z=\"1\" type=\"6\" /><platform x=\"8\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"8\" y=\"23\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"23\" z=\"1\" type=\"6\" /><platform x=\"10\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"10\" y=\"23\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"13\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"23\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"24\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"13\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"24\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"13\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"23\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"24\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"16\" z=\"1\" type=\"0\" /><platform x=\"14\" y=\"17\" z=\"1\" type=\"0\" /><platform x=\"14\" y=\"20\" z=\"1\" type=\"0\" /><platform x=\"14\" y=\"21\" z=\"1\" type=\"0\" /><platform x=\"15\" y=\"16\" z=\"1\" type=\"0\" /><platform x=\"15\" y=\"17\" z=\"1\" type=\"0\" /><platform x=\"15\" y=\"20\" z=\"1\" type=\"0\" /><platform x=\"15\" y=\"21\" z=\"1\" type=\"0\" /><platform x=\"12\" y=\"14\" z=\"2\" type=\"5\" /><platform x=\"12\" y=\"23\" z=\"2\" type=\"5\" /><platform x=\"14\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"14\" y=\"17\" z=\"2\" type=\"6\" /><platform x=\"14\" y=\"20\" z=\"2\" type=\"6\" /><platform x=\"14\" y=\"21\" z=\"2\" type=\"6\" /><platform x=\"15\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"15\" y=\"17\" z=\"2\" type=\"6\" /><platform x=\"15\" y=\"20\" z=\"2\" type=\"6\" /><platform x=\"15\" y=\"21\" z=\"2\" type=\"6\" /><platform x=\"16\" y=\"18\" z=\"2\" type=\"0\" /><platform x=\"16\" y=\"19\" z=\"2\" type=\"0\" /><platform x=\"17\" y=\"18\" z=\"2\" type=\"0\" /><platform x=\"17\" y=\"19\" z=\"2\" type=\"0\" /><platform x=\"16\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"19\" z=\"3\" type=\"6\" /><platform x=\"17\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"17\" y=\"19\" z=\"3\" type=\"6\" /><platform x=\"20\" y=\"18\" z=\"3\" type=\"0\" /><platform x=\"20\" y=\"19\" z=\"3\" type=\"0\" /><platform x=\"21\" y=\"18\" z=\"3\" type=\"0\" /><platform x=\"21\" y=\"19\" z=\"3\" type=\"0\" /><platform x=\"20\" y=\"18\" z=\"5\" type=\"5\" /><platform x=\"20\" y=\"19\" z=\"5\" type=\"5\" /><platform x=\"21\" y=\"18\" z=\"5\" type=\"5\" /><platform x=\"21\" y=\"19\" z=\"5\" type=\"5\" /></map>"); map.push("<map name=\"08. VOLCANO\"><platform x=\"1\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"1\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"1\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"2\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"2\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"2\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"3\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"3\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"3\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"4\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"5\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"7\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"18\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"19\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"20\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"20\" z=\"0\" type=\"0\" /><platform x=\"11\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"11\" y=\"20\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"20\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"11\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"19\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"20\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"21\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"11\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"12\" z=\"0\" type=\"2\" /><platform x=\"14\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"19\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"20\" z=\"0\" type=\"2\" /><platform x=\"14\" y=\"21\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"11\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"19\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"20\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"21\" z=\"0\" type=\"0\" /><platform x=\"27\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"28\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"2\" y=\"16\" z=\"1\" type=\"-1\" /><platform x=\"4\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"5\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"6\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"7\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"8\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"13\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"10\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"10\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"11\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"13\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"21\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"11\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"13\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"21\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"11\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"13\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"21\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"12\" z=\"1\" type=\"0\" /><platform x=\"16\" y=\"20\" z=\"1\" type=\"0\" /><platform x=\"17\" y=\"12\" z=\"1\" type=\"0\" /><platform x=\"17\" y=\"20\" z=\"1\" type=\"0\" /><platform x=\"18\" y=\"12\" z=\"1\" type=\"0\" /><platform x=\"18\" y=\"20\" z=\"1\" type=\"0\" /><platform x=\"19\" y=\"11\" z=\"1\" type=\"0\" /><platform x=\"19\" y=\"12\" z=\"1\" type=\"0\" /><platform x=\"19\" y=\"13\" z=\"1\" type=\"0\" /><platform x=\"19\" y=\"19\" z=\"1\" type=\"0\" /><platform x=\"19\" y=\"20\" z=\"1\" type=\"0\" /><platform x=\"19\" y=\"21\" z=\"1\" type=\"0\" /><platform x=\"20\" y=\"11\" z=\"1\" type=\"0\" /><platform x=\"20\" y=\"12\" z=\"1\" type=\"2\" /><platform x=\"20\" y=\"13\" z=\"1\" type=\"0\" /><platform x=\"20\" y=\"19\" z=\"1\" type=\"0\" /><platform x=\"20\" y=\"20\" z=\"1\" type=\"2\" /><platform x=\"20\" y=\"21\" z=\"1\" type=\"0\" /><platform x=\"21\" y=\"11\" z=\"1\" type=\"0\" /><platform x=\"21\" y=\"12\" z=\"1\" type=\"0\" /><platform x=\"21\" y=\"13\" z=\"1\" type=\"0\" /><platform x=\"21\" y=\"19\" z=\"1\" type=\"0\" /><platform x=\"21\" y=\"20\" z=\"1\" type=\"0\" /><platform x=\"21\" y=\"21\" z=\"1\" type=\"0\" /><platform x=\"25\" y=\"16\" z=\"1\" type=\"0\" /><platform x=\"26\" y=\"16\" z=\"1\" type=\"0\" /><platform x=\"27\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"28\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"29\" y=\"16\" z=\"1\" type=\"0\" /><platform x=\"30\" y=\"16\" z=\"1\" type=\"0\" /><platform x=\"16\" y=\"12\" z=\"2\" type=\"6\" /><platform x=\"16\" y=\"20\" z=\"2\" type=\"6\" /><platform x=\"17\" y=\"12\" z=\"2\" type=\"6\" /><platform x=\"17\" y=\"20\" z=\"2\" type=\"6\" /><platform x=\"18\" y=\"12\" z=\"2\" type=\"6\" /><platform x=\"18\" y=\"20\" z=\"2\" type=\"6\" /><platform x=\"19\" y=\"11\" z=\"2\" type=\"6\" /><platform x=\"19\" y=\"12\" z=\"2\" type=\"6\" /><platform x=\"19\" y=\"13\" z=\"2\" type=\"6\" /><platform x=\"19\" y=\"19\" z=\"2\" type=\"6\" /><platform x=\"19\" y=\"20\" z=\"2\" type=\"6\" /><platform x=\"19\" y=\"21\" z=\"2\" type=\"6\" /><platform x=\"20\" y=\"11\" z=\"2\" type=\"6\" /><platform x=\"20\" y=\"13\" z=\"2\" type=\"6\" /><platform x=\"20\" y=\"19\" z=\"2\" type=\"6\" /><platform x=\"20\" y=\"21\" z=\"2\" type=\"6\" /><platform x=\"21\" y=\"11\" z=\"2\" type=\"6\" /><platform x=\"21\" y=\"12\" z=\"2\" type=\"6\" /><platform x=\"21\" y=\"13\" z=\"2\" type=\"6\" /><platform x=\"21\" y=\"19\" z=\"2\" type=\"6\" /><platform x=\"21\" y=\"20\" z=\"2\" type=\"6\" /><platform x=\"21\" y=\"21\" z=\"2\" type=\"6\" /><platform x=\"22\" y=\"12\" z=\"2\" type=\"0\" /><platform x=\"22\" y=\"20\" z=\"2\" type=\"0\" /><platform x=\"23\" y=\"12\" z=\"2\" type=\"0\" /><platform x=\"23\" y=\"16\" z=\"2\" type=\"0\" /><platform x=\"23\" y=\"20\" z=\"2\" type=\"0\" /><platform x=\"24\" y=\"12\" z=\"2\" type=\"0\" /><platform x=\"24\" y=\"16\" z=\"2\" type=\"0\" /><platform x=\"24\" y=\"20\" z=\"2\" type=\"0\" /><platform x=\"25\" y=\"11\" z=\"2\" type=\"0\" /><platform x=\"25\" y=\"12\" z=\"2\" type=\"0\" /><platform x=\"25\" y=\"13\" z=\"2\" type=\"0\" /><platform x=\"25\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"25\" y=\"19\" z=\"2\" type=\"0\" /><platform x=\"25\" y=\"20\" z=\"2\" type=\"0\" /><platform x=\"25\" y=\"21\" z=\"2\" type=\"0\" /><platform x=\"26\" y=\"11\" z=\"2\" type=\"0\" /><platform x=\"26\" y=\"12\" z=\"2\" type=\"2\" /><platform x=\"26\" y=\"13\" z=\"2\" type=\"0\" /><platform x=\"26\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"26\" y=\"19\" z=\"2\" type=\"0\" /><platform x=\"26\" y=\"20\" z=\"2\" type=\"2\" /><platform x=\"26\" y=\"21\" z=\"2\" type=\"0\" /><platform x=\"27\" y=\"11\" z=\"2\" type=\"0\" /><platform x=\"27\" y=\"12\" z=\"2\" type=\"0\" /><platform x=\"27\" y=\"13\" z=\"2\" type=\"0\" /><platform x=\"27\" y=\"19\" z=\"2\" type=\"0\" /><platform x=\"27\" y=\"20\" z=\"2\" type=\"0\" /><platform x=\"27\" y=\"21\" z=\"2\" type=\"0\" /><platform x=\"28\" y=\"12\" z=\"2\" type=\"0\" /><platform x=\"28\" y=\"20\" z=\"2\" type=\"0\" /><platform x=\"29\" y=\"12\" z=\"2\" type=\"0\" /><platform x=\"29\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"29\" y=\"20\" z=\"2\" type=\"0\" /><platform x=\"30\" y=\"12\" z=\"2\" type=\"0\" /><platform x=\"30\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"30\" y=\"20\" z=\"2\" type=\"0\" /><platform x=\"31\" y=\"12\" z=\"2\" type=\"0\" /><platform x=\"31\" y=\"13\" z=\"2\" type=\"0\" /><platform x=\"31\" y=\"14\" z=\"2\" type=\"0\" /><platform x=\"31\" y=\"15\" z=\"2\" type=\"0\" /><platform x=\"31\" y=\"16\" z=\"2\" type=\"0\" /><platform x=\"31\" y=\"17\" z=\"2\" type=\"0\" /><platform x=\"31\" y=\"18\" z=\"2\" type=\"0\" /><platform x=\"31\" y=\"19\" z=\"2\" type=\"0\" /><platform x=\"31\" y=\"20\" z=\"2\" type=\"0\" /><platform x=\"17\" y=\"12\" z=\"3\" type=\"5\" /><platform x=\"17\" y=\"20\" z=\"3\" type=\"5\" /><platform x=\"21\" y=\"16\" z=\"3\" type=\"0\" /><platform x=\"22\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"22\" y=\"16\" z=\"3\" type=\"0\" /><platform x=\"22\" y=\"20\" z=\"3\" type=\"6\" /><platform x=\"23\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"23\" y=\"16\" z=\"3\" type=\"6\" /><platform x=\"23\" y=\"20\" z=\"3\" type=\"6\" /><platform x=\"24\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"24\" y=\"16\" z=\"3\" type=\"6\" /><platform x=\"24\" y=\"20\" z=\"3\" type=\"6\" /><platform x=\"25\" y=\"11\" z=\"3\" type=\"6\" /><platform x=\"25\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"25\" y=\"13\" z=\"3\" type=\"6\" /><platform x=\"25\" y=\"19\" z=\"3\" type=\"6\" /><platform x=\"25\" y=\"20\" z=\"3\" type=\"6\" /><platform x=\"25\" y=\"21\" z=\"3\" type=\"6\" /><platform x=\"26\" y=\"11\" z=\"3\" type=\"6\" /><platform x=\"26\" y=\"13\" z=\"3\" type=\"6\" /><platform x=\"26\" y=\"19\" z=\"3\" type=\"6\" /><platform x=\"26\" y=\"21\" z=\"3\" type=\"6\" /><platform x=\"27\" y=\"11\" z=\"3\" type=\"6\" /><platform x=\"27\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"27\" y=\"13\" z=\"3\" type=\"6\" /><platform x=\"27\" y=\"19\" z=\"3\" type=\"6\" /><platform x=\"27\" y=\"20\" z=\"3\" type=\"6\" /><platform x=\"27\" y=\"21\" z=\"3\" type=\"6\" /><platform x=\"28\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"28\" y=\"20\" z=\"3\" type=\"6\" /><platform x=\"29\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"29\" y=\"20\" z=\"3\" type=\"6\" /><platform x=\"30\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"30\" y=\"20\" z=\"3\" type=\"6\" /><platform x=\"31\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"31\" y=\"13\" z=\"3\" type=\"6\" /><platform x=\"31\" y=\"14\" z=\"3\" type=\"6\" /><platform x=\"31\" y=\"15\" z=\"3\" type=\"6\" /><platform x=\"31\" y=\"17\" z=\"3\" type=\"6\" /><platform x=\"31\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"31\" y=\"19\" z=\"3\" type=\"6\" /><platform x=\"31\" y=\"20\" z=\"3\" type=\"6\" /><platform x=\"19\" y=\"16\" z=\"4\" type=\"0\" /><platform x=\"20\" y=\"16\" z=\"4\" type=\"0\" /><platform x=\"21\" y=\"16\" z=\"4\" type=\"6\" /><platform x=\"22\" y=\"16\" z=\"4\" type=\"6\" /><platform x=\"31\" y=\"16\" z=\"4\" type=\"5\" /><platform x=\"17\" y=\"16\" z=\"5\" type=\"0\" /><platform x=\"18\" y=\"16\" z=\"5\" type=\"0\" /><platform x=\"19\" y=\"16\" z=\"5\" type=\"6\" /><platform x=\"20\" y=\"16\" z=\"5\" type=\"6\" /><platform x=\"15\" y=\"16\" z=\"6\" type=\"0\" /><platform x=\"16\" y=\"16\" z=\"6\" type=\"0\" /><platform x=\"17\" y=\"16\" z=\"6\" type=\"6\" /><platform x=\"18\" y=\"16\" z=\"6\" type=\"6\" /><platform x=\"13\" y=\"16\" z=\"7\" type=\"0\" /><platform x=\"14\" y=\"16\" z=\"7\" type=\"0\" /><platform x=\"15\" y=\"16\" z=\"7\" type=\"6\" /><platform x=\"16\" y=\"16\" z=\"7\" type=\"6\" /><platform x=\"10\" y=\"15\" z=\"8\" type=\"0\" /><platform x=\"10\" y=\"16\" z=\"8\" type=\"0\" /><platform x=\"10\" y=\"17\" z=\"8\" type=\"0\" /><platform x=\"11\" y=\"15\" z=\"8\" type=\"0\" /><platform x=\"11\" y=\"16\" z=\"8\" type=\"4\" /><platform x=\"11\" y=\"17\" z=\"8\" type=\"0\" /><platform x=\"12\" y=\"15\" z=\"8\" type=\"0\" /><platform x=\"12\" y=\"16\" z=\"8\" type=\"0\" /><platform x=\"12\" y=\"17\" z=\"8\" type=\"0\" /><platform x=\"13\" y=\"16\" z=\"8\" type=\"6\" /><platform x=\"14\" y=\"16\" z=\"8\" type=\"6\" /><platform x=\"10\" y=\"16\" z=\"9\" type=\"6\" /><platform x=\"11\" y=\"15\" z=\"9\" type=\"6\" /><platform x=\"11\" y=\"17\" z=\"9\" type=\"6\" /><platform x=\"12\" y=\"16\" z=\"9\" type=\"6\" /><platform x=\"10\" y=\"15\" z=\"10\" type=\"5\" /><platform x=\"10\" y=\"17\" z=\"10\" type=\"5\" /><platform x=\"12\" y=\"15\" z=\"10\" type=\"5\" /><platform x=\"12\" y=\"17\" z=\"10\" type=\"5\" /></map>"); map.push("<map name=\"09. STONES\"><platform x=\"4\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"4\" y=\"24\" z=\"0\" type=\"7\" /><platform x=\"4\" y=\"25\" z=\"0\" type=\"0\" /><platform x=\"5\" y=\"23\" z=\"0\" type=\"7\" /><platform x=\"5\" y=\"25\" z=\"0\" type=\"7\" /><platform x=\"6\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"24\" z=\"0\" type=\"7\" /><platform x=\"6\" y=\"25\" z=\"0\" type=\"0\" /><platform x=\"22\" y=\"5\" z=\"0\" type=\"0\" /><platform x=\"22\" y=\"6\" z=\"0\" type=\"7\" /><platform x=\"22\" y=\"7\" z=\"0\" type=\"0\" /><platform x=\"23\" y=\"5\" z=\"0\" type=\"7\" /><platform x=\"23\" y=\"6\" z=\"0\" type=\"4\" /><platform x=\"23\" y=\"7\" z=\"0\" type=\"7\" /><platform x=\"24\" y=\"5\" z=\"0\" type=\"0\" /><platform x=\"24\" y=\"6\" z=\"0\" type=\"7\" /><platform x=\"24\" y=\"7\" z=\"0\" type=\"0\" /><platform x=\"4\" y=\"23\" z=\"1\" type=\"6\" /><platform x=\"4\" y=\"24\" z=\"1\" type=\"6\" /><platform x=\"4\" y=\"25\" z=\"1\" type=\"-1\" /><platform x=\"5\" y=\"23\" z=\"1\" type=\"6\" /><platform x=\"5\" y=\"25\" z=\"1\" type=\"6\" /><platform x=\"6\" y=\"23\" z=\"1\" type=\"6\" /><platform x=\"6\" y=\"24\" z=\"1\" type=\"6\" /><platform x=\"6\" y=\"25\" z=\"1\" type=\"6\" /><platform x=\"7\" y=\"20\" z=\"1\" type=\"0\" /><platform x=\"7\" y=\"21\" z=\"1\" type=\"7\" /><platform x=\"7\" y=\"22\" z=\"1\" type=\"0\" /><platform x=\"8\" y=\"20\" z=\"1\" type=\"7\" /><platform x=\"8\" y=\"22\" z=\"1\" type=\"7\" /><platform x=\"9\" y=\"20\" z=\"1\" type=\"0\" /><platform x=\"9\" y=\"21\" z=\"1\" type=\"7\" /><platform x=\"9\" y=\"22\" z=\"1\" type=\"0\" /><platform x=\"19\" y=\"8\" z=\"1\" type=\"0\" /><platform x=\"19\" y=\"9\" z=\"1\" type=\"7\" /><platform x=\"19\" y=\"10\" z=\"1\" type=\"0\" /><platform x=\"20\" y=\"8\" z=\"1\" type=\"7\" /><platform x=\"20\" y=\"10\" z=\"1\" type=\"7\" /><platform x=\"21\" y=\"8\" z=\"1\" type=\"0\" /><platform x=\"21\" y=\"9\" z=\"1\" type=\"7\" /><platform x=\"21\" y=\"10\" z=\"1\" type=\"0\" /><platform x=\"22\" y=\"5\" z=\"1\" type=\"6\" /><platform x=\"22\" y=\"6\" z=\"1\" type=\"6\" /><platform x=\"22\" y=\"7\" z=\"1\" type=\"6\" /><platform x=\"23\" y=\"5\" z=\"1\" type=\"6\" /><platform x=\"23\" y=\"7\" z=\"1\" type=\"6\" /><platform x=\"24\" y=\"5\" z=\"1\" type=\"6\" /><platform x=\"24\" y=\"6\" z=\"1\" type=\"6\" /><platform x=\"24\" y=\"7\" z=\"1\" type=\"6\" /><platform x=\"7\" y=\"20\" z=\"2\" type=\"6\" /><platform x=\"7\" y=\"21\" z=\"2\" type=\"6\" /><platform x=\"7\" y=\"22\" z=\"2\" type=\"6\" /><platform x=\"8\" y=\"20\" z=\"2\" type=\"6\" /><platform x=\"8\" y=\"22\" z=\"2\" type=\"6\" /><platform x=\"9\" y=\"20\" z=\"2\" type=\"6\" /><platform x=\"9\" y=\"21\" z=\"2\" type=\"6\" /><platform x=\"9\" y=\"22\" z=\"2\" type=\"6\" /><platform x=\"10\" y=\"17\" z=\"2\" type=\"0\" /><platform x=\"10\" y=\"18\" z=\"2\" type=\"7\" /><platform x=\"10\" y=\"19\" z=\"2\" type=\"0\" /><platform x=\"11\" y=\"17\" z=\"2\" type=\"7\" /><platform x=\"11\" y=\"19\" z=\"2\" type=\"7\" /><platform x=\"12\" y=\"17\" z=\"2\" type=\"0\" /><platform x=\"12\" y=\"18\" z=\"2\" type=\"7\" /><platform x=\"12\" y=\"19\" z=\"2\" type=\"0\" /><platform x=\"16\" y=\"11\" z=\"2\" type=\"0\" /><platform x=\"16\" y=\"12\" z=\"2\" type=\"7\" /><platform x=\"16\" y=\"13\" z=\"2\" type=\"0\" /><platform x=\"17\" y=\"11\" z=\"2\" type=\"7\" /><platform x=\"17\" y=\"13\" z=\"2\" type=\"7\" /><platform x=\"18\" y=\"11\" z=\"2\" type=\"0\" /><platform x=\"18\" y=\"12\" z=\"2\" type=\"7\" /><platform x=\"18\" y=\"13\" z=\"2\" type=\"0\" /><platform x=\"19\" y=\"8\" z=\"2\" type=\"6\" /><platform x=\"19\" y=\"9\" z=\"2\" type=\"6\" /><platform x=\"19\" y=\"10\" z=\"2\" type=\"6\" /><platform x=\"20\" y=\"8\" z=\"2\" type=\"6\" /><platform x=\"20\" y=\"10\" z=\"2\" type=\"6\" /><platform x=\"21\" y=\"8\" z=\"2\" type=\"6\" /><platform x=\"21\" y=\"9\" z=\"2\" type=\"6\" /><platform x=\"21\" y=\"10\" z=\"2\" type=\"6\" /><platform x=\"10\" y=\"17\" z=\"3\" type=\"6\" /><platform x=\"10\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"10\" y=\"19\" z=\"3\" type=\"6\" /><platform x=\"11\" y=\"17\" z=\"3\" type=\"6\" /><platform x=\"11\" y=\"19\" z=\"3\" type=\"6\" /><platform x=\"12\" y=\"17\" z=\"3\" type=\"6\" /><platform x=\"12\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"12\" y=\"19\" z=\"3\" type=\"6\" /><platform x=\"13\" y=\"14\" z=\"3\" type=\"0\" /><platform x=\"13\" y=\"15\" z=\"3\" type=\"7\" /><platform x=\"13\" y=\"16\" z=\"3\" type=\"0\" /><platform x=\"14\" y=\"14\" z=\"3\" type=\"7\" /><platform x=\"14\" y=\"16\" z=\"3\" type=\"7\" /><platform x=\"15\" y=\"14\" z=\"3\" type=\"0\" /><platform x=\"15\" y=\"15\" z=\"3\" type=\"7\" /><platform x=\"15\" y=\"16\" z=\"3\" type=\"0\" /><platform x=\"16\" y=\"11\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"13\" z=\"3\" type=\"6\" /><platform x=\"17\" y=\"11\" z=\"3\" type=\"6\" /><platform x=\"18\" y=\"11\" z=\"3\" type=\"6\" /><platform x=\"18\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"18\" y=\"13\" z=\"3\" type=\"6\" /><platform x=\"13\" y=\"14\" z=\"4\" type=\"6\" /><platform x=\"13\" y=\"15\" z=\"4\" type=\"6\" /><platform x=\"13\" y=\"16\" z=\"4\" type=\"6\" /><platform x=\"14\" y=\"14\" z=\"4\" type=\"6\" /><platform x=\"14\" y=\"16\" z=\"4\" type=\"6\" /><platform x=\"15\" y=\"14\" z=\"4\" type=\"6\" /><platform x=\"15\" y=\"15\" z=\"4\" type=\"6\" /><platform x=\"15\" y=\"16\" z=\"4\" type=\"6\" /></map>"); map.push("<map name=\"10. MOUNTAIN ROAD\"><platform x=\"1\" y=\"28\" z=\"1\" type=\"0\" /><platform x=\"1\" y=\"29\" z=\"1\" type=\"0\" /><platform x=\"1\" y=\"30\" z=\"1\" type=\"0\" /><platform x=\"1\" y=\"25\" z=\"2\" type=\"0\" /><platform x=\"1\" y=\"26\" z=\"2\" type=\"2\" /><platform x=\"1\" y=\"27\" z=\"2\" type=\"0\" /><platform x=\"1\" y=\"22\" z=\"3\" type=\"0\" /><platform x=\"1\" y=\"23\" z=\"3\" type=\"2\" /><platform x=\"1\" y=\"24\" z=\"3\" type=\"0\" /><platform x=\"1\" y=\"25\" z=\"3\" type=\"6\" /><platform x=\"1\" y=\"27\" z=\"3\" type=\"6\" /><platform x=\"1\" y=\"19\" z=\"4\" type=\"0\" /><platform x=\"1\" y=\"20\" z=\"4\" type=\"7\" /><platform x=\"1\" y=\"21\" z=\"4\" type=\"0\" /><platform x=\"1\" y=\"22\" z=\"4\" type=\"6\" /><platform x=\"1\" y=\"24\" z=\"4\" type=\"6\" /><platform x=\"1\" y=\"30\" z=\"4\" type=\"-1\" /><platform x=\"1\" y=\"19\" z=\"5\" type=\"6\" /><platform x=\"1\" y=\"20\" z=\"5\" type=\"6\" /><platform x=\"1\" y=\"21\" z=\"5\" type=\"6\" /><platform x=\"2\" y=\"19\" z=\"5\" type=\"0\" /><platform x=\"3\" y=\"19\" z=\"5\" type=\"7\" /><platform x=\"4\" y=\"19\" z=\"5\" type=\"0\" /><platform x=\"2\" y=\"19\" z=\"6\" type=\"6\" /><platform x=\"3\" y=\"19\" z=\"6\" type=\"6\" /><platform x=\"4\" y=\"19\" z=\"6\" type=\"6\" /><platform x=\"5\" y=\"19\" z=\"6\" type=\"0\" /><platform x=\"6\" y=\"19\" z=\"6\" type=\"2\" /><platform x=\"7\" y=\"19\" z=\"6\" type=\"0\" /><platform x=\"5\" y=\"19\" z=\"7\" type=\"6\" /><platform x=\"7\" y=\"19\" z=\"7\" type=\"6\" /><platform x=\"8\" y=\"19\" z=\"7\" type=\"0\" /><platform x=\"9\" y=\"19\" z=\"7\" type=\"2\" /><platform x=\"10\" y=\"19\" z=\"7\" type=\"0\" /><platform x=\"8\" y=\"19\" z=\"8\" type=\"6\" /><platform x=\"10\" y=\"19\" z=\"8\" type=\"6\" /><platform x=\"11\" y=\"19\" z=\"8\" type=\"0\" /><platform x=\"12\" y=\"19\" z=\"8\" type=\"7\" /><platform x=\"13\" y=\"19\" z=\"8\" type=\"0\" /><platform x=\"11\" y=\"19\" z=\"9\" type=\"6\" /><platform x=\"12\" y=\"19\" z=\"9\" type=\"6\" /><platform x=\"13\" y=\"16\" z=\"9\" type=\"0\" /><platform x=\"13\" y=\"17\" z=\"9\" type=\"7\" /><platform x=\"13\" y=\"18\" z=\"9\" type=\"0\" /><platform x=\"13\" y=\"19\" z=\"9\" type=\"6\" /><platform x=\"13\" y=\"13\" z=\"10\" type=\"0\" /><platform x=\"13\" y=\"14\" z=\"10\" type=\"2\" /><platform x=\"13\" y=\"15\" z=\"10\" type=\"0\" /><platform x=\"13\" y=\"16\" z=\"10\" type=\"6\" /><platform x=\"13\" y=\"17\" z=\"10\" type=\"6\" /><platform x=\"13\" y=\"18\" z=\"10\" type=\"6\" /><platform x=\"17\" y=\"18\" z=\"10\" type=\"0\" /><platform x=\"17\" y=\"19\" z=\"10\" type=\"0\" /><platform x=\"17\" y=\"20\" z=\"10\" type=\"0\" /><platform x=\"18\" y=\"18\" z=\"10\" type=\"0\" /><platform x=\"18\" y=\"19\" z=\"10\" type=\"4\" /><platform x=\"18\" y=\"20\" z=\"10\" type=\"0\" /><platform x=\"19\" y=\"18\" z=\"10\" type=\"0\" /><platform x=\"19\" y=\"19\" z=\"10\" type=\"0\" /><platform x=\"19\" y=\"20\" z=\"10\" type=\"0\" /><platform x=\"20\" y=\"19\" z=\"10\" type=\"0\" /><platform x=\"21\" y=\"19\" z=\"10\" type=\"0\" /><platform x=\"13\" y=\"10\" z=\"11\" type=\"0\" /><platform x=\"13\" y=\"11\" z=\"11\" type=\"2\" /><platform x=\"13\" y=\"12\" z=\"11\" type=\"0\" /><platform x=\"13\" y=\"13\" z=\"11\" type=\"6\" /><platform x=\"13\" y=\"15\" z=\"11\" type=\"6\" /><platform x=\"17\" y=\"19\" z=\"11\" type=\"6\" /><platform x=\"18\" y=\"18\" z=\"11\" type=\"6\" /><platform x=\"18\" y=\"20\" z=\"11\" type=\"6\" /><platform x=\"19\" y=\"19\" z=\"11\" type=\"6\" /><platform x=\"20\" y=\"19\" z=\"11\" type=\"6\" /><platform x=\"21\" y=\"19\" z=\"11\" type=\"6\" /><platform x=\"22\" y=\"19\" z=\"11\" type=\"0\" /><platform x=\"23\" y=\"19\" z=\"11\" type=\"0\" /><platform x=\"24\" y=\"19\" z=\"11\" type=\"0\" /><platform x=\"13\" y=\"7\" z=\"12\" type=\"0\" /><platform x=\"13\" y=\"8\" z=\"12\" type=\"7\" /><platform x=\"13\" y=\"9\" z=\"12\" type=\"0\" /><platform x=\"13\" y=\"10\" z=\"12\" type=\"6\" /><platform x=\"13\" y=\"12\" z=\"12\" type=\"6\" /><platform x=\"17\" y=\"18\" z=\"12\" type=\"5\" /><platform x=\"17\" y=\"20\" z=\"12\" type=\"5\" /><platform x=\"19\" y=\"18\" z=\"12\" type=\"5\" /><platform x=\"19\" y=\"20\" z=\"12\" type=\"5\" /><platform x=\"22\" y=\"19\" z=\"12\" type=\"6\" /><platform x=\"23\" y=\"19\" z=\"12\" type=\"6\" /><platform x=\"24\" y=\"19\" z=\"12\" type=\"6\" /><platform x=\"25\" y=\"17\" z=\"12\" type=\"0\" /><platform x=\"25\" y=\"18\" z=\"12\" type=\"7\" /><platform x=\"25\" y=\"19\" z=\"12\" type=\"0\" /><platform x=\"13\" y=\"7\" z=\"13\" type=\"6\" /><platform x=\"13\" y=\"8\" z=\"13\" type=\"6\" /><platform x=\"13\" y=\"9\" z=\"13\" type=\"6\" /><platform x=\"14\" y=\"7\" z=\"13\" type=\"0\" /><platform x=\"15\" y=\"7\" z=\"13\" type=\"7\" /><platform x=\"16\" y=\"7\" z=\"13\" type=\"0\" /><platform x=\"25\" y=\"14\" z=\"13\" type=\"0\" /><platform x=\"25\" y=\"15\" z=\"13\" type=\"2\" /><platform x=\"25\" y=\"16\" z=\"13\" type=\"0\" /><platform x=\"25\" y=\"17\" z=\"13\" type=\"6\" /><platform x=\"25\" y=\"18\" z=\"13\" type=\"6\" /><platform x=\"25\" y=\"19\" z=\"13\" type=\"6\" /><platform x=\"14\" y=\"7\" z=\"14\" type=\"6\" /><platform x=\"15\" y=\"7\" z=\"14\" type=\"6\" /><platform x=\"16\" y=\"7\" z=\"14\" type=\"6\" /><platform x=\"17\" y=\"7\" z=\"14\" type=\"0\" /><platform x=\"18\" y=\"7\" z=\"14\" type=\"2\" /><platform x=\"19\" y=\"7\" z=\"14\" type=\"0\" /><platform x=\"25\" y=\"11\" z=\"14\" type=\"0\" /><platform x=\"25\" y=\"12\" z=\"14\" type=\"2\" /><platform x=\"25\" y=\"13\" z=\"14\" type=\"0\" /><platform x=\"25\" y=\"14\" z=\"14\" type=\"6\" /><platform x=\"25\" y=\"16\" z=\"14\" type=\"6\" /><platform x=\"17\" y=\"7\" z=\"15\" type=\"6\" /><platform x=\"19\" y=\"7\" z=\"15\" type=\"6\" /><platform x=\"20\" y=\"7\" z=\"15\" type=\"0\" /><platform x=\"21\" y=\"7\" z=\"15\" type=\"2\" /><platform x=\"22\" y=\"7\" z=\"15\" type=\"0\" /><platform x=\"23\" y=\"7\" z=\"15\" type=\"7\" /><platform x=\"24\" y=\"7\" z=\"15\" type=\"0\" /><platform x=\"25\" y=\"7\" z=\"15\" type=\"7\" /><platform x=\"25\" y=\"8\" z=\"15\" type=\"0\" /><platform x=\"25\" y=\"9\" z=\"15\" type=\"7\" /><platform x=\"25\" y=\"10\" z=\"15\" type=\"0\" /><platform x=\"25\" y=\"11\" z=\"15\" type=\"6\" /><platform x=\"25\" y=\"13\" z=\"15\" type=\"6\" /></map>"); map.push("<map name=\"11. SPACESHIP\"><platform x=\"9\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"11\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"26\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"26\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"26\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"27\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"28\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"29\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"15\" z=\"1\" type=\"0\" /><platform x=\"13\" y=\"16\" z=\"1\" type=\"0\" /><platform x=\"13\" y=\"17\" z=\"1\" type=\"0\" /><platform x=\"25\" y=\"15\" z=\"1\" type=\"0\" /><platform x=\"25\" y=\"16\" z=\"1\" type=\"0\" /><platform x=\"25\" y=\"17\" z=\"1\" type=\"0\" /><platform x=\"9\" y=\"16\" z=\"2\" type=\"5\" /><platform x=\"13\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"13\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"13\" y=\"17\" z=\"2\" type=\"6\" /><platform x=\"14\" y=\"15\" z=\"2\" type=\"0\" /><platform x=\"14\" y=\"16\" z=\"2\" type=\"0\" /><platform x=\"14\" y=\"17\" z=\"2\" type=\"0\" /><platform x=\"24\" y=\"15\" z=\"2\" type=\"0\" /><platform x=\"24\" y=\"16\" z=\"2\" type=\"0\" /><platform x=\"24\" y=\"17\" z=\"2\" type=\"0\" /><platform x=\"25\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"25\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"25\" y=\"17\" z=\"2\" type=\"6\" /><platform x=\"29\" y=\"16\" z=\"2\" type=\"5\" /><platform x=\"15\" y=\"15\" z=\"3\" type=\"0\" /><platform x=\"15\" y=\"16\" z=\"3\" type=\"0\" /><platform x=\"15\" y=\"17\" z=\"3\" type=\"0\" /><platform x=\"18\" y=\"8\" z=\"3\" type=\"0\" /><platform x=\"18\" y=\"9\" z=\"3\" type=\"0\" /><platform x=\"18\" y=\"10\" z=\"3\" type=\"0\" /><platform x=\"19\" y=\"8\" z=\"3\" type=\"0\" /><platform x=\"19\" y=\"9\" z=\"3\" type=\"4\" /><platform x=\"19\" y=\"10\" z=\"3\" type=\"0\" /><platform x=\"19\" y=\"11\" z=\"3\" type=\"0\" /><platform x=\"19\" y=\"12\" z=\"3\" type=\"0\" /><platform x=\"20\" y=\"8\" z=\"3\" type=\"0\" /><platform x=\"20\" y=\"9\" z=\"3\" type=\"0\" /><platform x=\"20\" y=\"10\" z=\"3\" type=\"0\" /><platform x=\"23\" y=\"15\" z=\"3\" type=\"0\" /><platform x=\"23\" y=\"16\" z=\"3\" type=\"0\" /><platform x=\"23\" y=\"17\" z=\"3\" type=\"0\" /><platform x=\"15\" y=\"15\" z=\"4\" type=\"6\" /><platform x=\"15\" y=\"16\" z=\"4\" type=\"6\" /><platform x=\"15\" y=\"17\" z=\"4\" type=\"6\" /><platform x=\"16\" y=\"15\" z=\"4\" type=\"0\" /><platform x=\"16\" y=\"16\" z=\"4\" type=\"0\" /><platform x=\"16\" y=\"17\" z=\"4\" type=\"0\" /><platform x=\"18\" y=\"8\" z=\"4\" type=\"6\" /><platform x=\"18\" y=\"9\" z=\"4\" type=\"6\" /><platform x=\"18\" y=\"10\" z=\"4\" type=\"6\" /><platform x=\"19\" y=\"8\" z=\"4\" type=\"6\" /><platform x=\"19\" y=\"10\" z=\"4\" type=\"6\" /><platform x=\"19\" y=\"11\" z=\"4\" type=\"6\" /><platform x=\"19\" y=\"12\" z=\"4\" type=\"6\" /><platform x=\"20\" y=\"8\" z=\"4\" type=\"6\" /><platform x=\"20\" y=\"9\" z=\"4\" type=\"6\" /><platform x=\"20\" y=\"10\" z=\"4\" type=\"6\" /><platform x=\"22\" y=\"15\" z=\"4\" type=\"0\" /><platform x=\"22\" y=\"16\" z=\"4\" type=\"0\" /><platform x=\"22\" y=\"17\" z=\"4\" type=\"0\" /><platform x=\"23\" y=\"15\" z=\"4\" type=\"6\" /><platform x=\"23\" y=\"16\" z=\"4\" type=\"6\" /><platform x=\"23\" y=\"17\" z=\"4\" type=\"6\" /><platform x=\"17\" y=\"15\" z=\"5\" type=\"0\" /><platform x=\"17\" y=\"16\" z=\"5\" type=\"0\" /><platform x=\"17\" y=\"17\" z=\"5\" type=\"0\" /><platform x=\"19\" y=\"13\" z=\"5\" type=\"0\" /><platform x=\"19\" y=\"14\" z=\"5\" type=\"0\" /><platform x=\"21\" y=\"15\" z=\"5\" type=\"0\" /><platform x=\"21\" y=\"16\" z=\"5\" type=\"0\" /><platform x=\"21\" y=\"17\" z=\"5\" type=\"0\" /><platform x=\"17\" y=\"15\" z=\"6\" type=\"6\" /><platform x=\"17\" y=\"16\" z=\"6\" type=\"6\" /><platform x=\"17\" y=\"17\" z=\"6\" type=\"6\" /><platform x=\"18\" y=\"15\" z=\"6\" type=\"0\" /><platform x=\"18\" y=\"16\" z=\"6\" type=\"0\" /><platform x=\"18\" y=\"17\" z=\"6\" type=\"0\" /><platform x=\"20\" y=\"15\" z=\"6\" type=\"0\" /><platform x=\"20\" y=\"16\" z=\"6\" type=\"0\" /><platform x=\"20\" y=\"17\" z=\"6\" type=\"0\" /><platform x=\"21\" y=\"15\" z=\"6\" type=\"6\" /><platform x=\"21\" y=\"16\" z=\"6\" type=\"6\" /><platform x=\"21\" y=\"17\" z=\"6\" type=\"6\" /><platform x=\"17\" y=\"19\" z=\"7\" type=\"0\" /><platform x=\"17\" y=\"20\" z=\"7\" type=\"0\" /><platform x=\"17\" y=\"21\" z=\"7\" type=\"0\" /><platform x=\"17\" y=\"22\" z=\"7\" type=\"0\" /><platform x=\"17\" y=\"23\" z=\"7\" type=\"0\" /><platform x=\"17\" y=\"24\" z=\"7\" type=\"0\" /><platform x=\"17\" y=\"25\" z=\"7\" type=\"0\" /><platform x=\"17\" y=\"26\" z=\"7\" type=\"0\" /><platform x=\"17\" y=\"27\" z=\"7\" type=\"0\" /><platform x=\"17\" y=\"28\" z=\"7\" type=\"0\" /><platform x=\"17\" y=\"29\" z=\"7\" type=\"0\" /><platform x=\"17\" y=\"30\" z=\"7\" type=\"0\" /><platform x=\"17\" y=\"31\" z=\"7\" type=\"0\" /><platform x=\"18\" y=\"19\" z=\"7\" type=\"0\" /><platform x=\"19\" y=\"15\" z=\"7\" type=\"0\" /><platform x=\"19\" y=\"16\" z=\"7\" type=\"0\" /><platform x=\"19\" y=\"17\" z=\"7\" type=\"0\" /><platform x=\"19\" y=\"18\" z=\"7\" type=\"0\" /><platform x=\"19\" y=\"19\" z=\"7\" type=\"0\" /><platform x=\"20\" y=\"19\" z=\"7\" type=\"0\" /><platform x=\"21\" y=\"19\" z=\"7\" type=\"0\" /><platform x=\"21\" y=\"20\" z=\"7\" type=\"0\" /><platform x=\"21\" y=\"21\" z=\"7\" type=\"0\" /><platform x=\"21\" y=\"22\" z=\"7\" type=\"0\" /><platform x=\"21\" y=\"23\" z=\"7\" type=\"0\" /><platform x=\"21\" y=\"24\" z=\"7\" type=\"0\" /><platform x=\"21\" y=\"25\" z=\"7\" type=\"0\" /><platform x=\"21\" y=\"26\" z=\"7\" type=\"0\" /><platform x=\"21\" y=\"27\" z=\"7\" type=\"0\" /><platform x=\"21\" y=\"28\" z=\"7\" type=\"0\" /><platform x=\"21\" y=\"29\" z=\"7\" type=\"0\" /><platform x=\"21\" y=\"30\" z=\"7\" type=\"0\" /><platform x=\"21\" y=\"31\" z=\"7\" type=\"0\" /><platform x=\"17\" y=\"20\" z=\"8\" type=\"6\" /><platform x=\"17\" y=\"21\" z=\"8\" type=\"6\" /><platform x=\"17\" y=\"22\" z=\"8\" type=\"6\" /><platform x=\"17\" y=\"23\" z=\"8\" type=\"6\" /><platform x=\"17\" y=\"24\" z=\"8\" type=\"6\" /><platform x=\"17\" y=\"25\" z=\"8\" type=\"6\" /><platform x=\"17\" y=\"26\" z=\"8\" type=\"6\" /><platform x=\"17\" y=\"27\" z=\"8\" type=\"6\" /><platform x=\"17\" y=\"28\" z=\"8\" type=\"6\" /><platform x=\"17\" y=\"29\" z=\"8\" type=\"6\" /><platform x=\"17\" y=\"30\" z=\"8\" type=\"6\" /><platform x=\"18\" y=\"20\" z=\"8\" type=\"0\" /><platform x=\"19\" y=\"15\" z=\"8\" type=\"6\" /><platform x=\"19\" y=\"16\" z=\"8\" type=\"6\" /><platform x=\"19\" y=\"17\" z=\"8\" type=\"6\" /><platform x=\"19\" y=\"20\" z=\"8\" type=\"0\" /><platform x=\"20\" y=\"20\" z=\"8\" type=\"0\" /><platform x=\"21\" y=\"20\" z=\"8\" type=\"6\" /><platform x=\"21\" y=\"21\" z=\"8\" type=\"6\" /><platform x=\"21\" y=\"22\" z=\"8\" type=\"6\" /><platform x=\"21\" y=\"23\" z=\"8\" type=\"6\" /><platform x=\"21\" y=\"24\" z=\"8\" type=\"6\" /><platform x=\"21\" y=\"25\" z=\"8\" type=\"6\" /><platform x=\"21\" y=\"26\" z=\"8\" type=\"6\" /><platform x=\"21\" y=\"27\" z=\"8\" type=\"6\" /><platform x=\"21\" y=\"28\" z=\"8\" type=\"6\" /><platform x=\"21\" y=\"29\" z=\"8\" type=\"6\" /><platform x=\"21\" y=\"30\" z=\"8\" type=\"6\" /><platform x=\"17\" y=\"31\" z=\"9\" type=\"5\" /><platform x=\"18\" y=\"20\" z=\"9\" type=\"6\" /><platform x=\"18\" y=\"21\" z=\"9\" type=\"0\" /><platform x=\"19\" y=\"20\" z=\"9\" type=\"6\" /><platform x=\"19\" y=\"21\" z=\"9\" type=\"0\" /><platform x=\"20\" y=\"20\" z=\"9\" type=\"6\" /><platform x=\"20\" y=\"21\" z=\"9\" type=\"0\" /><platform x=\"21\" y=\"31\" z=\"9\" type=\"5\" /><platform x=\"18\" y=\"22\" z=\"10\" type=\"0\" /><platform x=\"19\" y=\"22\" z=\"10\" type=\"0\" /><platform x=\"20\" y=\"22\" z=\"10\" type=\"0\" /><platform x=\"18\" y=\"22\" z=\"11\" type=\"6\" /><platform x=\"18\" y=\"23\" z=\"11\" type=\"0\" /><platform x=\"19\" y=\"22\" z=\"11\" type=\"6\" /><platform x=\"19\" y=\"23\" z=\"11\" type=\"0\" /><platform x=\"20\" y=\"22\" z=\"11\" type=\"6\" /><platform x=\"20\" y=\"23\" z=\"11\" type=\"0\" /><platform x=\"18\" y=\"24\" z=\"12\" type=\"0\" /><platform x=\"19\" y=\"24\" z=\"12\" type=\"0\" /><platform x=\"20\" y=\"24\" z=\"12\" type=\"0\" /><platform x=\"18\" y=\"24\" z=\"13\" type=\"6\" /><platform x=\"18\" y=\"25\" z=\"13\" type=\"0\" /><platform x=\"19\" y=\"24\" z=\"13\" type=\"6\" /><platform x=\"19\" y=\"25\" z=\"13\" type=\"0\" /><platform x=\"20\" y=\"24\" z=\"13\" type=\"6\" /><platform x=\"20\" y=\"25\" z=\"13\" type=\"0\" /><platform x=\"18\" y=\"26\" z=\"14\" type=\"0\" /><platform x=\"18\" y=\"28\" z=\"14\" type=\"0\" /><platform x=\"18\" y=\"29\" z=\"14\" type=\"0\" /><platform x=\"18\" y=\"30\" z=\"14\" type=\"0\" /><platform x=\"19\" y=\"26\" z=\"14\" type=\"0\" /><platform x=\"19\" y=\"28\" z=\"14\" type=\"0\" /><platform x=\"19\" y=\"29\" z=\"14\" type=\"0\" /><platform x=\"19\" y=\"30\" z=\"14\" type=\"0\" /><platform x=\"20\" y=\"26\" z=\"14\" type=\"0\" /><platform x=\"20\" y=\"28\" z=\"14\" type=\"0\" /><platform x=\"20\" y=\"29\" z=\"14\" type=\"0\" /><platform x=\"20\" y=\"30\" z=\"14\" type=\"0\" /><platform x=\"18\" y=\"26\" z=\"15\" type=\"6\" /><platform x=\"18\" y=\"27\" z=\"15\" type=\"0\" /><platform x=\"19\" y=\"26\" z=\"15\" type=\"6\" /><platform x=\"19\" y=\"27\" z=\"15\" type=\"0\" /><platform x=\"19\" y=\"29\" z=\"15\" type=\"-1\" /><platform x=\"20\" y=\"26\" z=\"15\" type=\"6\" /><platform x=\"20\" y=\"27\" z=\"15\" type=\"0\" /></map>"); map.push("<map name=\"12. CHESS\"><platform x=\"4\" y=\"14\" z=\"0\" type=\"2\" /><platform x=\"4\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"4\" y=\"16\" z=\"0\" type=\"2\" /><platform x=\"4\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"4\" y=\"18\" z=\"0\" type=\"2\" /><platform x=\"4\" y=\"19\" z=\"0\" type=\"0\" /><platform x=\"4\" y=\"20\" z=\"0\" type=\"2\" /><platform x=\"4\" y=\"21\" z=\"0\" type=\"0\" /><platform x=\"5\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"5\" y=\"15\" z=\"0\" type=\"2\" /><platform x=\"5\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"5\" y=\"17\" z=\"0\" type=\"2\" /><platform x=\"5\" y=\"18\" z=\"0\" type=\"7\" /><platform x=\"5\" y=\"19\" z=\"0\" type=\"2\" /><platform x=\"5\" y=\"20\" z=\"0\" type=\"7\" /><platform x=\"5\" y=\"21\" z=\"0\" type=\"2\" /><platform x=\"6\" y=\"14\" z=\"0\" type=\"2\" /><platform x=\"6\" y=\"15\" z=\"0\" type=\"7\" /><platform x=\"6\" y=\"16\" z=\"0\" type=\"2\" /><platform x=\"6\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"18\" z=\"0\" type=\"2\" /><platform x=\"6\" y=\"19\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"20\" z=\"0\" type=\"2\" /><platform x=\"6\" y=\"21\" z=\"0\" type=\"0\" /><platform x=\"7\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"7\" y=\"15\" z=\"0\" type=\"2\" /><platform x=\"7\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"7\" y=\"17\" z=\"0\" type=\"2\" /><platform x=\"7\" y=\"18\" z=\"0\" type=\"0\" /><platform x=\"7\" y=\"19\" z=\"0\" type=\"2\" /><platform x=\"7\" y=\"20\" z=\"0\" type=\"7\" /><platform x=\"7\" y=\"21\" z=\"0\" type=\"2\" /><platform x=\"8\" y=\"14\" z=\"0\" type=\"2\" /><platform x=\"8\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"16\" z=\"0\" type=\"2\" /><platform x=\"8\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"18\" z=\"0\" type=\"2\" /><platform x=\"8\" y=\"19\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"20\" z=\"0\" type=\"2\" /><platform x=\"8\" y=\"21\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"14\" z=\"0\" type=\"7\" /><platform x=\"9\" y=\"15\" z=\"0\" type=\"2\" /><platform x=\"9\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"17\" z=\"0\" type=\"2\" /><platform x=\"9\" y=\"18\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"19\" z=\"0\" type=\"2\" /><platform x=\"9\" y=\"20\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"21\" z=\"0\" type=\"2\" /><platform x=\"10\" y=\"14\" z=\"0\" type=\"2\" /><platform x=\"10\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"16\" z=\"0\" type=\"2\" /><platform x=\"10\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"18\" z=\"0\" type=\"2\" /><platform x=\"10\" y=\"19\" z=\"0\" type=\"7\" /><platform x=\"10\" y=\"20\" z=\"0\" type=\"2\" /><platform x=\"10\" y=\"21\" z=\"0\" type=\"0\" /><platform x=\"11\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"11\" y=\"15\" z=\"0\" type=\"2\" /><platform x=\"11\" y=\"16\" z=\"0\" type=\"7\" /><platform x=\"11\" y=\"17\" z=\"0\" type=\"2\" /><platform x=\"11\" y=\"18\" z=\"0\" type=\"0\" /><platform x=\"11\" y=\"19\" z=\"0\" type=\"2\" /><platform x=\"11\" y=\"20\" z=\"0\" type=\"0\" /><platform x=\"11\" y=\"21\" z=\"0\" type=\"2\" /><platform x=\"4\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"4\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"4\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"4\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"4\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"4\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"4\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"4\" y=\"21\" z=\"1\" type=\"-1\" /><platform x=\"5\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"5\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"5\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"5\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"5\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"5\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"5\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"5\" y=\"21\" z=\"1\" type=\"6\" /><platform x=\"6\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"6\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"6\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"6\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"6\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"6\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"6\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"6\" y=\"21\" z=\"1\" type=\"6\" /><platform x=\"7\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"7\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"7\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"7\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"7\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"7\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"7\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"8\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"8\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"8\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"8\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"8\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"8\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"8\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"8\" y=\"21\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"21\" z=\"1\" type=\"6\" /><platform x=\"10\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"10\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"10\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"10\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"10\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"10\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"10\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"10\" y=\"21\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"12\" z=\"1\" type=\"7\" /><platform x=\"11\" y=\"13\" z=\"1\" type=\"2\" /><platform x=\"11\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"21\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"13\" z=\"1\" type=\"0\" /><platform x=\"12\" y=\"14\" z=\"1\" type=\"2\" /><platform x=\"13\" y=\"14\" z=\"1\" type=\"7\" /><platform x=\"11\" y=\"10\" z=\"2\" type=\"7\" /><platform x=\"11\" y=\"11\" z=\"2\" type=\"2\" /><platform x=\"11\" y=\"12\" z=\"2\" type=\"6\" /><platform x=\"12\" y=\"11\" z=\"2\" type=\"0\" /><platform x=\"12\" y=\"12\" z=\"2\" type=\"2\" /><platform x=\"12\" y=\"13\" z=\"2\" type=\"6\" /><platform x=\"13\" y=\"12\" z=\"2\" type=\"0\" /><platform x=\"13\" y=\"13\" z=\"2\" type=\"2\" /><platform x=\"13\" y=\"14\" z=\"2\" type=\"6\" /><platform x=\"14\" y=\"13\" z=\"2\" type=\"0\" /><platform x=\"14\" y=\"14\" z=\"2\" type=\"2\" /><platform x=\"15\" y=\"14\" z=\"2\" type=\"7\" /><platform x=\"11\" y=\"8\" z=\"3\" type=\"0\" /><platform x=\"11\" y=\"9\" z=\"3\" type=\"2\" /><platform x=\"11\" y=\"10\" z=\"3\" type=\"6\" /><platform x=\"12\" y=\"9\" z=\"3\" type=\"0\" /><platform x=\"12\" y=\"10\" z=\"3\" type=\"2\" /><platform x=\"12\" y=\"11\" z=\"3\" type=\"6\" /><platform x=\"13\" y=\"10\" z=\"3\" type=\"0\" /><platform x=\"13\" y=\"11\" z=\"3\" type=\"2\" /><platform x=\"13\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"14\" y=\"11\" z=\"3\" type=\"7\" /><platform x=\"14\" y=\"12\" z=\"3\" type=\"2\" /><platform x=\"14\" y=\"13\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"12\" z=\"3\" type=\"0\" /><platform x=\"15\" y=\"13\" z=\"3\" type=\"2\" /><platform x=\"15\" y=\"14\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"13\" z=\"3\" type=\"0\" /><platform x=\"16\" y=\"14\" z=\"3\" type=\"2\" /><platform x=\"17\" y=\"14\" z=\"3\" type=\"0\" /><platform x=\"11\" y=\"7\" z=\"4\" type=\"2\" /><platform x=\"12\" y=\"7\" z=\"4\" type=\"0\" /><platform x=\"12\" y=\"8\" z=\"4\" type=\"2\" /><platform x=\"12\" y=\"9\" z=\"4\" type=\"6\" /><platform x=\"13\" y=\"8\" z=\"4\" type=\"0\" /><platform x=\"13\" y=\"9\" z=\"4\" type=\"2\" /><platform x=\"13\" y=\"10\" z=\"4\" type=\"6\" /><platform x=\"14\" y=\"9\" z=\"4\" type=\"7\" /><platform x=\"14\" y=\"10\" z=\"4\" type=\"2\" /><platform x=\"14\" y=\"11\" z=\"4\" type=\"6\" /><platform x=\"15\" y=\"10\" z=\"4\" type=\"0\" /><platform x=\"15\" y=\"11\" z=\"4\" type=\"2\" /><platform x=\"15\" y=\"12\" z=\"4\" type=\"6\" /><platform x=\"16\" y=\"11\" z=\"4\" type=\"7\" /><platform x=\"16\" y=\"12\" z=\"4\" type=\"2\" /><platform x=\"16\" y=\"13\" z=\"4\" type=\"6\" /><platform x=\"17\" y=\"12\" z=\"4\" type=\"0\" /><platform x=\"17\" y=\"13\" z=\"4\" type=\"2\" /><platform x=\"18\" y=\"13\" z=\"4\" type=\"0\" /><platform x=\"18\" y=\"14\" z=\"4\" type=\"2\" /><platform x=\"11\" y=\"8\" z=\"5\" type=\"5\" /><platform x=\"13\" y=\"7\" z=\"5\" type=\"2\" /><platform x=\"13\" y=\"8\" z=\"5\" type=\"6\" /><platform x=\"14\" y=\"7\" z=\"5\" type=\"0\" /><platform x=\"14\" y=\"8\" z=\"5\" type=\"2\" /><platform x=\"14\" y=\"9\" z=\"5\" type=\"6\" /><platform x=\"15\" y=\"8\" z=\"5\" type=\"0\" /><platform x=\"15\" y=\"9\" z=\"5\" type=\"2\" /><platform x=\"15\" y=\"10\" z=\"5\" type=\"6\" /><platform x=\"16\" y=\"9\" z=\"5\" type=\"7\" /><platform x=\"16\" y=\"10\" z=\"5\" type=\"2\" /><platform x=\"16\" y=\"11\" z=\"5\" type=\"6\" /><platform x=\"17\" y=\"10\" z=\"5\" type=\"0\" /><platform x=\"17\" y=\"11\" z=\"5\" type=\"2\" /><platform x=\"17\" y=\"12\" z=\"5\" type=\"6\" /><platform x=\"17\" y=\"14\" z=\"5\" type=\"5\" /><platform x=\"18\" y=\"11\" z=\"5\" type=\"0\" /><platform x=\"18\" y=\"12\" z=\"5\" type=\"2\" /><platform x=\"12\" y=\"7\" z=\"6\" type=\"5\" /><platform x=\"14\" y=\"7\" z=\"6\" type=\"6\" /><platform x=\"15\" y=\"7\" z=\"6\" type=\"2\" /><platform x=\"15\" y=\"8\" z=\"6\" type=\"6\" /><platform x=\"16\" y=\"7\" z=\"6\" type=\"0\" /><platform x=\"16\" y=\"8\" z=\"6\" type=\"2\" /><platform x=\"16\" y=\"9\" z=\"6\" type=\"6\" /><platform x=\"17\" y=\"8\" z=\"6\" type=\"0\" /><platform x=\"17\" y=\"9\" z=\"6\" type=\"2\" /><platform x=\"17\" y=\"10\" z=\"6\" type=\"6\" /><platform x=\"18\" y=\"9\" z=\"6\" type=\"0\" /><platform x=\"18\" y=\"10\" z=\"6\" type=\"2\" /><platform x=\"18\" y=\"11\" z=\"6\" type=\"6\" /><platform x=\"18\" y=\"13\" z=\"6\" type=\"5\" /><platform x=\"16\" y=\"7\" z=\"7\" type=\"6\" /><platform x=\"17\" y=\"7\" z=\"7\" type=\"2\" /><platform x=\"17\" y=\"8\" z=\"7\" type=\"6\" /><platform x=\"18\" y=\"7\" z=\"7\" type=\"4\" /><platform x=\"18\" y=\"8\" z=\"7\" type=\"2\" /><platform x=\"18\" y=\"9\" z=\"7\" type=\"6\" /></map>"); map.push("<map name=\"13. PYRAMID\"><platform x=\"8\" y=\"8\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"9\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"10\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"11\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"18\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"19\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"20\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"21\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"8\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"8\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"11\" y=\"8\" z=\"0\" type=\"0\" /><platform x=\"11\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"8\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"8\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"8\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"8\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"8\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"17\" y=\"8\" z=\"0\" type=\"0\" /><platform x=\"17\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"18\" y=\"8\" z=\"0\" type=\"0\" /><platform x=\"18\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"19\" y=\"8\" z=\"0\" type=\"0\" /><platform x=\"19\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"20\" y=\"8\" z=\"0\" type=\"0\" /><platform x=\"20\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"21\" y=\"8\" z=\"0\" type=\"0\" /><platform x=\"21\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"22\" y=\"8\" z=\"0\" type=\"0\" /><platform x=\"22\" y=\"9\" z=\"0\" type=\"0\" /><platform x=\"22\" y=\"10\" z=\"0\" type=\"0\" /><platform x=\"22\" y=\"11\" z=\"0\" type=\"0\" /><platform x=\"22\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"22\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"22\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"22\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"22\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"22\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"22\" y=\"18\" z=\"0\" type=\"0\" /><platform x=\"22\" y=\"19\" z=\"0\" type=\"0\" /><platform x=\"22\" y=\"20\" z=\"0\" type=\"0\" /><platform x=\"22\" y=\"21\" z=\"0\" type=\"0\" /><platform x=\"22\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"22\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"9\" z=\"1\" type=\"6\" /><platform x=\"8\" y=\"10\" z=\"1\" type=\"6\" /><platform x=\"8\" y=\"11\" z=\"1\" type=\"6\" /><platform x=\"8\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"8\" y=\"13\" z=\"1\" type=\"6\" /><platform x=\"8\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"8\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"8\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"8\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"8\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"8\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"8\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"8\" y=\"21\" z=\"1\" type=\"6\" /><platform x=\"8\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"8\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"9\" z=\"1\" type=\"0\" /><platform x=\"9\" y=\"10\" z=\"1\" type=\"0\" /><platform x=\"9\" y=\"11\" z=\"1\" type=\"0\" /><platform x=\"9\" y=\"12\" z=\"1\" type=\"0\" /><platform x=\"9\" y=\"13\" z=\"1\" type=\"0\" /><platform x=\"9\" y=\"14\" z=\"1\" type=\"0\" /><platform x=\"9\" y=\"15\" z=\"1\" type=\"0\" /><platform x=\"9\" y=\"16\" z=\"1\" type=\"0\" /><platform x=\"9\" y=\"17\" z=\"1\" type=\"0\" /><platform x=\"9\" y=\"18\" z=\"1\" type=\"0\" /><platform x=\"9\" y=\"19\" z=\"1\" type=\"0\" /><platform x=\"9\" y=\"20\" z=\"1\" type=\"0\" /><platform x=\"9\" y=\"21\" z=\"1\" type=\"0\" /><platform x=\"9\" y=\"22\" z=\"1\" type=\"0\" /><platform x=\"9\" y=\"23\" z=\"1\" type=\"6\" /><platform x=\"10\" y=\"8\" z=\"1\" type=\"6\" /><platform x=\"10\" y=\"9\" z=\"1\" type=\"0\" /><platform x=\"10\" y=\"22\" z=\"1\" type=\"0\" /><platform x=\"10\" y=\"23\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"8\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"9\" z=\"1\" type=\"0\" /><platform x=\"11\" y=\"22\" z=\"1\" type=\"0\" /><platform x=\"11\" y=\"23\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"8\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"9\" z=\"1\" type=\"0\" /><platform x=\"12\" y=\"22\" z=\"1\" type=\"0\" /><platform x=\"12\" y=\"23\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"8\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"9\" z=\"1\" type=\"0\" /><platform x=\"13\" y=\"22\" z=\"1\" type=\"0\" /><platform x=\"13\" y=\"23\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"8\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"9\" z=\"1\" type=\"0\" /><platform x=\"14\" y=\"22\" z=\"1\" type=\"0\" /><platform x=\"14\" y=\"23\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"8\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"9\" z=\"1\" type=\"0\" /><platform x=\"15\" y=\"22\" z=\"1\" type=\"0\" /><platform x=\"15\" y=\"23\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"8\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"9\" z=\"1\" type=\"0\" /><platform x=\"16\" y=\"22\" z=\"1\" type=\"0\" /><platform x=\"16\" y=\"23\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"8\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"9\" z=\"1\" type=\"0\" /><platform x=\"17\" y=\"22\" z=\"1\" type=\"0\" /><platform x=\"17\" y=\"23\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"8\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"9\" z=\"1\" type=\"0\" /><platform x=\"18\" y=\"22\" z=\"1\" type=\"0\" /><platform x=\"18\" y=\"23\" z=\"1\" type=\"6\" /><platform x=\"19\" y=\"8\" z=\"1\" type=\"6\" /><platform x=\"19\" y=\"9\" z=\"1\" type=\"0\" /><platform x=\"19\" y=\"22\" z=\"1\" type=\"0\" /><platform x=\"19\" y=\"23\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"8\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"9\" z=\"1\" type=\"0\" /><platform x=\"20\" y=\"22\" z=\"1\" type=\"0\" /><platform x=\"20\" y=\"23\" z=\"1\" type=\"6\" /><platform x=\"21\" y=\"8\" z=\"1\" type=\"6\" /><platform x=\"21\" y=\"9\" z=\"1\" type=\"0\" /><platform x=\"21\" y=\"10\" z=\"1\" type=\"0\" /><platform x=\"21\" y=\"11\" z=\"1\" type=\"0\" /><platform x=\"21\" y=\"12\" z=\"1\" type=\"0\" /><platform x=\"21\" y=\"13\" z=\"1\" type=\"0\" /><platform x=\"21\" y=\"14\" z=\"1\" type=\"0\" /><platform x=\"21\" y=\"15\" z=\"1\" type=\"0\" /><platform x=\"21\" y=\"16\" z=\"1\" type=\"0\" /><platform x=\"21\" y=\"17\" z=\"1\" type=\"0\" /><platform x=\"21\" y=\"18\" z=\"1\" type=\"0\" /><platform x=\"21\" y=\"19\" z=\"1\" type=\"0\" /><platform x=\"21\" y=\"20\" z=\"1\" type=\"0\" /><platform x=\"21\" y=\"21\" z=\"1\" type=\"0\" /><platform x=\"21\" y=\"22\" z=\"1\" type=\"0\" /><platform x=\"21\" y=\"23\" z=\"1\" type=\"6\" /><platform x=\"22\" y=\"9\" z=\"1\" type=\"6\" /><platform x=\"22\" y=\"10\" z=\"1\" type=\"6\" /><platform x=\"22\" y=\"11\" z=\"1\" type=\"6\" /><platform x=\"22\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"22\" y=\"13\" z=\"1\" type=\"6\" /><platform x=\"22\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"22\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"22\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"22\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"22\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"22\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"22\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"22\" y=\"21\" z=\"1\" type=\"6\" /><platform x=\"22\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"8\" y=\"8\" z=\"2\" type=\"5\" /><platform x=\"8\" y=\"23\" z=\"2\" type=\"5\" /><platform x=\"9\" y=\"10\" z=\"2\" type=\"6\" /><platform x=\"9\" y=\"11\" z=\"2\" type=\"6\" /><platform x=\"9\" y=\"12\" z=\"2\" type=\"6\" /><platform x=\"9\" y=\"13\" z=\"2\" type=\"6\" /><platform x=\"9\" y=\"14\" z=\"2\" type=\"6\" /><platform x=\"9\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"9\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"9\" y=\"17\" z=\"2\" type=\"6\" /><platform x=\"9\" y=\"18\" z=\"2\" type=\"6\" /><platform x=\"9\" y=\"19\" z=\"2\" type=\"6\" /><platform x=\"9\" y=\"20\" z=\"2\" type=\"6\" /><platform x=\"9\" y=\"21\" z=\"2\" type=\"6\" /><platform x=\"10\" y=\"9\" z=\"2\" type=\"6\" /><platform x=\"10\" y=\"10\" z=\"2\" type=\"0\" /><platform x=\"10\" y=\"11\" z=\"2\" type=\"0\" /><platform x=\"10\" y=\"12\" z=\"2\" type=\"0\" /><platform x=\"10\" y=\"13\" z=\"2\" type=\"0\" /><platform x=\"10\" y=\"14\" z=\"2\" type=\"0\" /><platform x=\"10\" y=\"15\" z=\"2\" type=\"0\" /><platform x=\"10\" y=\"16\" z=\"2\" type=\"0\" /><platform x=\"10\" y=\"17\" z=\"2\" type=\"0\" /><platform x=\"10\" y=\"18\" z=\"2\" type=\"0\" /><platform x=\"10\" y=\"19\" z=\"2\" type=\"0\" /><platform x=\"10\" y=\"20\" z=\"2\" type=\"0\" /><platform x=\"10\" y=\"21\" z=\"2\" type=\"0\" /><platform x=\"10\" y=\"22\" z=\"2\" type=\"6\" /><platform x=\"11\" y=\"9\" z=\"2\" type=\"6\" /><platform x=\"11\" y=\"10\" z=\"2\" type=\"0\" /><platform x=\"11\" y=\"21\" z=\"2\" type=\"0\" /><platform x=\"11\" y=\"22\" z=\"2\" type=\"6\" /><platform x=\"12\" y=\"9\" z=\"2\" type=\"6\" /><platform x=\"12\" y=\"10\" z=\"2\" type=\"0\" /><platform x=\"12\" y=\"21\" z=\"2\" type=\"0\" /><platform x=\"12\" y=\"22\" z=\"2\" type=\"6\" /><platform x=\"13\" y=\"9\" z=\"2\" type=\"6\" /><platform x=\"13\" y=\"10\" z=\"2\" type=\"0\" /><platform x=\"13\" y=\"21\" z=\"2\" type=\"0\" /><platform x=\"13\" y=\"22\" z=\"2\" type=\"6\" /><platform x=\"14\" y=\"9\" z=\"2\" type=\"6\" /><platform x=\"14\" y=\"10\" z=\"2\" type=\"0\" /><platform x=\"14\" y=\"21\" z=\"2\" type=\"0\" /><platform x=\"14\" y=\"22\" z=\"2\" type=\"6\" /><platform x=\"15\" y=\"9\" z=\"2\" type=\"6\" /><platform x=\"15\" y=\"10\" z=\"2\" type=\"0\" /><platform x=\"15\" y=\"21\" z=\"2\" type=\"0\" /><platform x=\"15\" y=\"22\" z=\"2\" type=\"6\" /><platform x=\"16\" y=\"9\" z=\"2\" type=\"6\" /><platform x=\"16\" y=\"10\" z=\"2\" type=\"0\" /><platform x=\"16\" y=\"21\" z=\"2\" type=\"0\" /><platform x=\"16\" y=\"22\" z=\"2\" type=\"6\" /><platform x=\"17\" y=\"9\" z=\"2\" type=\"6\" /><platform x=\"17\" y=\"10\" z=\"2\" type=\"0\" /><platform x=\"17\" y=\"21\" z=\"2\" type=\"0\" /><platform x=\"17\" y=\"22\" z=\"2\" type=\"6\" /><platform x=\"18\" y=\"9\" z=\"2\" type=\"6\" /><platform x=\"18\" y=\"10\" z=\"2\" type=\"0\" /><platform x=\"18\" y=\"21\" z=\"2\" type=\"0\" /><platform x=\"18\" y=\"22\" z=\"2\" type=\"6\" /><platform x=\"19\" y=\"9\" z=\"2\" type=\"6\" /><platform x=\"19\" y=\"10\" z=\"2\" type=\"0\" /><platform x=\"19\" y=\"21\" z=\"2\" type=\"0\" /><platform x=\"19\" y=\"22\" z=\"2\" type=\"6\" /><platform x=\"20\" y=\"9\" z=\"2\" type=\"6\" /><platform x=\"20\" y=\"10\" z=\"2\" type=\"0\" /><platform x=\"20\" y=\"11\" z=\"2\" type=\"0\" /><platform x=\"20\" y=\"12\" z=\"2\" type=\"0\" /><platform x=\"20\" y=\"13\" z=\"2\" type=\"0\" /><platform x=\"20\" y=\"14\" z=\"2\" type=\"0\" /><platform x=\"20\" y=\"15\" z=\"2\" type=\"0\" /><platform x=\"20\" y=\"16\" z=\"2\" type=\"0\" /><platform x=\"20\" y=\"17\" z=\"2\" type=\"0\" /><platform x=\"20\" y=\"18\" z=\"2\" type=\"0\" /><platform x=\"20\" y=\"19\" z=\"2\" type=\"0\" /><platform x=\"20\" y=\"20\" z=\"2\" type=\"0\" /><platform x=\"20\" y=\"21\" z=\"2\" type=\"0\" /><platform x=\"20\" y=\"22\" z=\"2\" type=\"6\" /><platform x=\"21\" y=\"10\" z=\"2\" type=\"6\" /><platform x=\"21\" y=\"11\" z=\"2\" type=\"6\" /><platform x=\"21\" y=\"12\" z=\"2\" type=\"6\" /><platform x=\"21\" y=\"13\" z=\"2\" type=\"6\" /><platform x=\"21\" y=\"14\" z=\"2\" type=\"6\" /><platform x=\"21\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"21\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"21\" y=\"17\" z=\"2\" type=\"6\" /><platform x=\"21\" y=\"18\" z=\"2\" type=\"6\" /><platform x=\"21\" y=\"19\" z=\"2\" type=\"6\" /><platform x=\"21\" y=\"20\" z=\"2\" type=\"6\" /><platform x=\"21\" y=\"21\" z=\"2\" type=\"6\" /><platform x=\"22\" y=\"8\" z=\"2\" type=\"5\" /><platform x=\"22\" y=\"23\" z=\"2\" type=\"5\" /><platform x=\"9\" y=\"9\" z=\"3\" type=\"5\" /><platform x=\"9\" y=\"22\" z=\"3\" type=\"5\" /><platform x=\"10\" y=\"11\" z=\"3\" type=\"6\" /><platform x=\"10\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"10\" y=\"13\" z=\"3\" type=\"6\" /><platform x=\"10\" y=\"14\" z=\"3\" type=\"6\" /><platform x=\"10\" y=\"15\" z=\"3\" type=\"6\" /><platform x=\"10\" y=\"16\" z=\"3\" type=\"6\" /><platform x=\"10\" y=\"17\" z=\"3\" type=\"6\" /><platform x=\"10\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"10\" y=\"19\" z=\"3\" type=\"6\" /><platform x=\"10\" y=\"20\" z=\"3\" type=\"6\" /><platform x=\"11\" y=\"10\" z=\"3\" type=\"6\" /><platform x=\"11\" y=\"11\" z=\"3\" type=\"0\" /><platform x=\"11\" y=\"12\" z=\"3\" type=\"0\" /><platform x=\"11\" y=\"13\" z=\"3\" type=\"0\" /><platform x=\"11\" y=\"14\" z=\"3\" type=\"0\" /><platform x=\"11\" y=\"15\" z=\"3\" type=\"0\" /><platform x=\"11\" y=\"16\" z=\"3\" type=\"0\" /><platform x=\"11\" y=\"17\" z=\"3\" type=\"0\" /><platform x=\"11\" y=\"18\" z=\"3\" type=\"0\" /><platform x=\"11\" y=\"19\" z=\"3\" type=\"0\" /><platform x=\"11\" y=\"20\" z=\"3\" type=\"0\" /><platform x=\"11\" y=\"21\" z=\"3\" type=\"6\" /><platform x=\"12\" y=\"10\" z=\"3\" type=\"6\" /><platform x=\"12\" y=\"11\" z=\"3\" type=\"0\" /><platform x=\"12\" y=\"20\" z=\"3\" type=\"0\" /><platform x=\"12\" y=\"21\" z=\"3\" type=\"6\" /><platform x=\"13\" y=\"10\" z=\"3\" type=\"6\" /><platform x=\"13\" y=\"11\" z=\"3\" type=\"0\" /><platform x=\"13\" y=\"20\" z=\"3\" type=\"0\" /><platform x=\"13\" y=\"21\" z=\"3\" type=\"6\" /><platform x=\"14\" y=\"10\" z=\"3\" type=\"6\" /><platform x=\"14\" y=\"11\" z=\"3\" type=\"0\" /><platform x=\"14\" y=\"20\" z=\"3\" type=\"0\" /><platform x=\"14\" y=\"21\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"10\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"11\" z=\"3\" type=\"0\" /><platform x=\"15\" y=\"20\" z=\"3\" type=\"0\" /><platform x=\"15\" y=\"21\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"10\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"11\" z=\"3\" type=\"0\" /><platform x=\"16\" y=\"20\" z=\"3\" type=\"0\" /><platform x=\"16\" y=\"21\" z=\"3\" type=\"6\" /><platform x=\"17\" y=\"10\" z=\"3\" type=\"6\" /><platform x=\"17\" y=\"11\" z=\"3\" type=\"0\" /><platform x=\"17\" y=\"20\" z=\"3\" type=\"0\" /><platform x=\"17\" y=\"21\" z=\"3\" type=\"6\" /><platform x=\"18\" y=\"10\" z=\"3\" type=\"6\" /><platform x=\"18\" y=\"11\" z=\"3\" type=\"0\" /><platform x=\"18\" y=\"20\" z=\"3\" type=\"0\" /><platform x=\"18\" y=\"21\" z=\"3\" type=\"6\" /><platform x=\"19\" y=\"10\" z=\"3\" type=\"6\" /><platform x=\"19\" y=\"11\" z=\"3\" type=\"0\" /><platform x=\"19\" y=\"12\" z=\"3\" type=\"0\" /><platform x=\"19\" y=\"13\" z=\"3\" type=\"0\" /><platform x=\"19\" y=\"14\" z=\"3\" type=\"0\" /><platform x=\"19\" y=\"15\" z=\"3\" type=\"0\" /><platform x=\"19\" y=\"16\" z=\"3\" type=\"0\" /><platform x=\"19\" y=\"17\" z=\"3\" type=\"0\" /><platform x=\"19\" y=\"18\" z=\"3\" type=\"0\" /><platform x=\"19\" y=\"19\" z=\"3\" type=\"0\" /><platform x=\"19\" y=\"20\" z=\"3\" type=\"0\" /><platform x=\"19\" y=\"21\" z=\"3\" type=\"6\" /><platform x=\"20\" y=\"11\" z=\"3\" type=\"6\" /><platform x=\"20\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"20\" y=\"13\" z=\"3\" type=\"6\" /><platform x=\"20\" y=\"14\" z=\"3\" type=\"6\" /><platform x=\"20\" y=\"15\" z=\"3\" type=\"6\" /><platform x=\"20\" y=\"16\" z=\"3\" type=\"6\" /><platform x=\"20\" y=\"17\" z=\"3\" type=\"6\" /><platform x=\"20\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"20\" y=\"19\" z=\"3\" type=\"6\" /><platform x=\"20\" y=\"20\" z=\"3\" type=\"6\" /><platform x=\"21\" y=\"9\" z=\"3\" type=\"5\" /><platform x=\"21\" y=\"22\" z=\"3\" type=\"5\" /><platform x=\"10\" y=\"10\" z=\"4\" type=\"5\" /><platform x=\"10\" y=\"21\" z=\"4\" type=\"5\" /><platform x=\"11\" y=\"12\" z=\"4\" type=\"6\" /><platform x=\"11\" y=\"13\" z=\"4\" type=\"6\" /><platform x=\"11\" y=\"14\" z=\"4\" type=\"6\" /><platform x=\"11\" y=\"15\" z=\"4\" type=\"6\" /><platform x=\"11\" y=\"16\" z=\"4\" type=\"6\" /><platform x=\"11\" y=\"17\" z=\"4\" type=\"6\" /><platform x=\"11\" y=\"18\" z=\"4\" type=\"6\" /><platform x=\"11\" y=\"19\" z=\"4\" type=\"6\" /><platform x=\"12\" y=\"11\" z=\"4\" type=\"6\" /><platform x=\"12\" y=\"12\" z=\"4\" type=\"0\" /><platform x=\"12\" y=\"13\" z=\"4\" type=\"0\" /><platform x=\"12\" y=\"14\" z=\"4\" type=\"0\" /><platform x=\"12\" y=\"15\" z=\"4\" type=\"0\" /><platform x=\"12\" y=\"16\" z=\"4\" type=\"0\" /><platform x=\"12\" y=\"17\" z=\"4\" type=\"0\" /><platform x=\"12\" y=\"18\" z=\"4\" type=\"0\" /><platform x=\"12\" y=\"19\" z=\"4\" type=\"0\" /><platform x=\"12\" y=\"20\" z=\"4\" type=\"6\" /><platform x=\"13\" y=\"11\" z=\"4\" type=\"6\" /><platform x=\"13\" y=\"12\" z=\"4\" type=\"0\" /><platform x=\"13\" y=\"19\" z=\"4\" type=\"0\" /><platform x=\"13\" y=\"20\" z=\"4\" type=\"6\" /><platform x=\"14\" y=\"11\" z=\"4\" type=\"6\" /><platform x=\"14\" y=\"12\" z=\"4\" type=\"0\" /><platform x=\"14\" y=\"19\" z=\"4\" type=\"0\" /><platform x=\"14\" y=\"20\" z=\"4\" type=\"6\" /><platform x=\"15\" y=\"11\" z=\"4\" type=\"6\" /><platform x=\"15\" y=\"12\" z=\"4\" type=\"0\" /><platform x=\"15\" y=\"19\" z=\"4\" type=\"0\" /><platform x=\"15\" y=\"20\" z=\"4\" type=\"6\" /><platform x=\"16\" y=\"11\" z=\"4\" type=\"6\" /><platform x=\"16\" y=\"12\" z=\"4\" type=\"0\" /><platform x=\"16\" y=\"19\" z=\"4\" type=\"0\" /><platform x=\"16\" y=\"20\" z=\"4\" type=\"6\" /><platform x=\"17\" y=\"11\" z=\"4\" type=\"6\" /><platform x=\"17\" y=\"12\" z=\"4\" type=\"0\" /><platform x=\"17\" y=\"19\" z=\"4\" type=\"0\" /><platform x=\"17\" y=\"20\" z=\"4\" type=\"6\" /><platform x=\"18\" y=\"11\" z=\"4\" type=\"6\" /><platform x=\"18\" y=\"12\" z=\"4\" type=\"0\" /><platform x=\"18\" y=\"13\" z=\"4\" type=\"0\" /><platform x=\"18\" y=\"14\" z=\"4\" type=\"0\" /><platform x=\"18\" y=\"15\" z=\"4\" type=\"0\" /><platform x=\"18\" y=\"16\" z=\"4\" type=\"0\" /><platform x=\"18\" y=\"17\" z=\"4\" type=\"0\" /><platform x=\"18\" y=\"18\" z=\"4\" type=\"0\" /><platform x=\"18\" y=\"19\" z=\"4\" type=\"0\" /><platform x=\"18\" y=\"20\" z=\"4\" type=\"6\" /><platform x=\"19\" y=\"12\" z=\"4\" type=\"6\" /><platform x=\"19\" y=\"13\" z=\"4\" type=\"6\" /><platform x=\"19\" y=\"14\" z=\"4\" type=\"6\" /><platform x=\"19\" y=\"15\" z=\"4\" type=\"6\" /><platform x=\"19\" y=\"16\" z=\"4\" type=\"6\" /><platform x=\"19\" y=\"17\" z=\"4\" type=\"6\" /><platform x=\"19\" y=\"18\" z=\"4\" type=\"6\" /><platform x=\"19\" y=\"19\" z=\"4\" type=\"6\" /><platform x=\"20\" y=\"10\" z=\"4\" type=\"5\" /><platform x=\"20\" y=\"21\" z=\"4\" type=\"5\" /><platform x=\"11\" y=\"11\" z=\"5\" type=\"5\" /><platform x=\"11\" y=\"20\" z=\"5\" type=\"5\" /><platform x=\"12\" y=\"13\" z=\"5\" type=\"6\" /><platform x=\"12\" y=\"14\" z=\"5\" type=\"6\" /><platform x=\"12\" y=\"15\" z=\"5\" type=\"6\" /><platform x=\"12\" y=\"16\" z=\"5\" type=\"6\" /><platform x=\"12\" y=\"17\" z=\"5\" type=\"6\" /><platform x=\"12\" y=\"18\" z=\"5\" type=\"6\" /><platform x=\"13\" y=\"12\" z=\"5\" type=\"6\" /><platform x=\"13\" y=\"13\" z=\"5\" type=\"0\" /><platform x=\"13\" y=\"14\" z=\"5\" type=\"0\" /><platform x=\"13\" y=\"15\" z=\"5\" type=\"0\" /><platform x=\"13\" y=\"16\" z=\"5\" type=\"0\" /><platform x=\"13\" y=\"17\" z=\"5\" type=\"0\" /><platform x=\"13\" y=\"18\" z=\"5\" type=\"0\" /><platform x=\"13\" y=\"19\" z=\"5\" type=\"6\" /><platform x=\"14\" y=\"12\" z=\"5\" type=\"6\" /><platform x=\"14\" y=\"13\" z=\"5\" type=\"0\" /><platform x=\"14\" y=\"18\" z=\"5\" type=\"0\" /><platform x=\"14\" y=\"19\" z=\"5\" type=\"6\" /><platform x=\"15\" y=\"12\" z=\"5\" type=\"6\" /><platform x=\"15\" y=\"13\" z=\"5\" type=\"0\" /><platform x=\"15\" y=\"18\" z=\"5\" type=\"0\" /><platform x=\"15\" y=\"19\" z=\"5\" type=\"6\" /><platform x=\"16\" y=\"12\" z=\"5\" type=\"6\" /><platform x=\"16\" y=\"13\" z=\"5\" type=\"0\" /><platform x=\"16\" y=\"18\" z=\"5\" type=\"0\" /><platform x=\"16\" y=\"19\" z=\"5\" type=\"6\" /><platform x=\"17\" y=\"12\" z=\"5\" type=\"6\" /><platform x=\"17\" y=\"13\" z=\"5\" type=\"0\" /><platform x=\"17\" y=\"14\" z=\"5\" type=\"0\" /><platform x=\"17\" y=\"15\" z=\"5\" type=\"0\" /><platform x=\"17\" y=\"16\" z=\"5\" type=\"0\" /><platform x=\"17\" y=\"17\" z=\"5\" type=\"0\" /><platform x=\"17\" y=\"18\" z=\"5\" type=\"0\" /><platform x=\"17\" y=\"19\" z=\"5\" type=\"6\" /><platform x=\"18\" y=\"13\" z=\"5\" type=\"6\" /><platform x=\"18\" y=\"14\" z=\"5\" type=\"6\" /><platform x=\"18\" y=\"15\" z=\"5\" type=\"6\" /><platform x=\"18\" y=\"16\" z=\"5\" type=\"6\" /><platform x=\"18\" y=\"17\" z=\"5\" type=\"6\" /><platform x=\"18\" y=\"18\" z=\"5\" type=\"6\" /><platform x=\"19\" y=\"11\" z=\"5\" type=\"5\" /><platform x=\"19\" y=\"20\" z=\"5\" type=\"5\" /><platform x=\"12\" y=\"12\" z=\"6\" type=\"5\" /><platform x=\"12\" y=\"19\" z=\"6\" type=\"5\" /><platform x=\"13\" y=\"14\" z=\"6\" type=\"6\" /><platform x=\"13\" y=\"15\" z=\"6\" type=\"6\" /><platform x=\"13\" y=\"16\" z=\"6\" type=\"6\" /><platform x=\"13\" y=\"17\" z=\"6\" type=\"6\" /><platform x=\"14\" y=\"13\" z=\"6\" type=\"6\" /><platform x=\"14\" y=\"14\" z=\"6\" type=\"0\" /><platform x=\"14\" y=\"15\" z=\"6\" type=\"0\" /><platform x=\"14\" y=\"16\" z=\"6\" type=\"0\" /><platform x=\"14\" y=\"17\" z=\"6\" type=\"0\" /><platform x=\"14\" y=\"18\" z=\"6\" type=\"6\" /><platform x=\"15\" y=\"13\" z=\"6\" type=\"6\" /><platform x=\"15\" y=\"14\" z=\"6\" type=\"0\" /><platform x=\"15\" y=\"17\" z=\"6\" type=\"0\" /><platform x=\"15\" y=\"18\" z=\"6\" type=\"6\" /><platform x=\"16\" y=\"13\" z=\"6\" type=\"6\" /><platform x=\"16\" y=\"14\" z=\"6\" type=\"0\" /><platform x=\"16\" y=\"15\" z=\"6\" type=\"0\" /><platform x=\"16\" y=\"16\" z=\"6\" type=\"0\" /><platform x=\"16\" y=\"17\" z=\"6\" type=\"0\" /><platform x=\"16\" y=\"18\" z=\"6\" type=\"6\" /><platform x=\"17\" y=\"14\" z=\"6\" type=\"6\" /><platform x=\"17\" y=\"15\" z=\"6\" type=\"6\" /><platform x=\"17\" y=\"16\" z=\"6\" type=\"6\" /><platform x=\"17\" y=\"17\" z=\"6\" type=\"6\" /><platform x=\"18\" y=\"12\" z=\"6\" type=\"5\" /><platform x=\"18\" y=\"19\" z=\"6\" type=\"5\" /><platform x=\"13\" y=\"13\" z=\"7\" type=\"5\" /><platform x=\"13\" y=\"18\" z=\"7\" type=\"5\" /><platform x=\"14\" y=\"15\" z=\"7\" type=\"6\" /><platform x=\"14\" y=\"16\" z=\"7\" type=\"6\" /><platform x=\"15\" y=\"14\" z=\"7\" type=\"6\" /><platform x=\"15\" y=\"15\" z=\"7\" type=\"0\" /><platform x=\"15\" y=\"16\" z=\"7\" type=\"4\" /><platform x=\"15\" y=\"17\" z=\"7\" type=\"6\" /><platform x=\"16\" y=\"15\" z=\"7\" type=\"6\" /><platform x=\"16\" y=\"16\" z=\"7\" type=\"6\" /><platform x=\"17\" y=\"13\" z=\"7\" type=\"5\" /><platform x=\"17\" y=\"18\" z=\"7\" type=\"5\" /><platform x=\"14\" y=\"14\" z=\"8\" type=\"5\" /><platform x=\"14\" y=\"17\" z=\"8\" type=\"5\" /><platform x=\"15\" y=\"15\" z=\"8\" type=\"-1\" /><platform x=\"16\" y=\"14\" z=\"8\" type=\"5\" /><platform x=\"16\" y=\"17\" z=\"8\" type=\"5\" /></map>"); map.push("<map name=\"14. SNOW\"><platform x=\"11\" y=\"11\" z=\"0\" type=\"1\" /><platform x=\"11\" y=\"12\" z=\"0\" type=\"1\" /><platform x=\"11\" y=\"13\" z=\"0\" type=\"1\" /><platform x=\"11\" y=\"14\" z=\"0\" type=\"1\" /><platform x=\"11\" y=\"15\" z=\"0\" type=\"1\" /><platform x=\"11\" y=\"16\" z=\"0\" type=\"1\" /><platform x=\"11\" y=\"17\" z=\"0\" type=\"1\" /><platform x=\"11\" y=\"18\" z=\"0\" type=\"1\" /><platform x=\"11\" y=\"19\" z=\"0\" type=\"1\" /><platform x=\"11\" y=\"20\" z=\"0\" type=\"1\" /><platform x=\"12\" y=\"11\" z=\"0\" type=\"1\" /><platform x=\"12\" y=\"12\" z=\"0\" type=\"1\" /><platform x=\"12\" y=\"13\" z=\"0\" type=\"1\" /><platform x=\"12\" y=\"14\" z=\"0\" type=\"1\" /><platform x=\"12\" y=\"15\" z=\"0\" type=\"1\" /><platform x=\"12\" y=\"16\" z=\"0\" type=\"1\" /><platform x=\"12\" y=\"17\" z=\"0\" type=\"1\" /><platform x=\"12\" y=\"18\" z=\"0\" type=\"1\" /><platform x=\"12\" y=\"19\" z=\"0\" type=\"1\" /><platform x=\"12\" y=\"20\" z=\"0\" type=\"1\" /><platform x=\"13\" y=\"11\" z=\"0\" type=\"1\" /><platform x=\"13\" y=\"12\" z=\"0\" type=\"1\" /><platform x=\"13\" y=\"13\" z=\"0\" type=\"7\" /><platform x=\"13\" y=\"14\" z=\"0\" type=\"7\" /><platform x=\"13\" y=\"15\" z=\"0\" type=\"7\" /><platform x=\"13\" y=\"16\" z=\"0\" type=\"7\" /><platform x=\"13\" y=\"17\" z=\"0\" type=\"7\" /><platform x=\"13\" y=\"18\" z=\"0\" type=\"7\" /><platform x=\"13\" y=\"19\" z=\"0\" type=\"1\" /><platform x=\"13\" y=\"20\" z=\"0\" type=\"1\" /><platform x=\"14\" y=\"11\" z=\"0\" type=\"1\" /><platform x=\"14\" y=\"12\" z=\"0\" type=\"1\" /><platform x=\"14\" y=\"13\" z=\"0\" type=\"7\" /><platform x=\"14\" y=\"14\" z=\"0\" type=\"1\" /><platform x=\"14\" y=\"15\" z=\"0\" type=\"1\" /><platform x=\"14\" y=\"16\" z=\"0\" type=\"1\" /><platform x=\"14\" y=\"17\" z=\"0\" type=\"1\" /><platform x=\"14\" y=\"18\" z=\"0\" type=\"7\" /><platform x=\"14\" y=\"19\" z=\"0\" type=\"1\" /><platform x=\"14\" y=\"20\" z=\"0\" type=\"1\" /><platform x=\"15\" y=\"11\" z=\"0\" type=\"1\" /><platform x=\"15\" y=\"12\" z=\"0\" type=\"1\" /><platform x=\"15\" y=\"13\" z=\"0\" type=\"7\" /><platform x=\"15\" y=\"14\" z=\"0\" type=\"1\" /><platform x=\"15\" y=\"15\" z=\"0\" type=\"1\" /><platform x=\"15\" y=\"16\" z=\"0\" type=\"1\" /><platform x=\"15\" y=\"17\" z=\"0\" type=\"1\" /><platform x=\"15\" y=\"18\" z=\"0\" type=\"7\" /><platform x=\"15\" y=\"19\" z=\"0\" type=\"1\" /><platform x=\"15\" y=\"20\" z=\"0\" type=\"1\" /><platform x=\"16\" y=\"11\" z=\"0\" type=\"1\" /><platform x=\"16\" y=\"12\" z=\"0\" type=\"1\" /><platform x=\"16\" y=\"13\" z=\"0\" type=\"7\" /><platform x=\"16\" y=\"14\" z=\"0\" type=\"1\" /><platform x=\"16\" y=\"15\" z=\"0\" type=\"1\" /><platform x=\"16\" y=\"16\" z=\"0\" type=\"1\" /><platform x=\"16\" y=\"17\" z=\"0\" type=\"1\" /><platform x=\"16\" y=\"18\" z=\"0\" type=\"7\" /><platform x=\"16\" y=\"19\" z=\"0\" type=\"1\" /><platform x=\"16\" y=\"20\" z=\"0\" type=\"1\" /><platform x=\"17\" y=\"11\" z=\"0\" type=\"1\" /><platform x=\"17\" y=\"12\" z=\"0\" type=\"1\" /><platform x=\"17\" y=\"13\" z=\"0\" type=\"7\" /><platform x=\"17\" y=\"14\" z=\"0\" type=\"1\" /><platform x=\"17\" y=\"15\" z=\"0\" type=\"1\" /><platform x=\"17\" y=\"16\" z=\"0\" type=\"1\" /><platform x=\"17\" y=\"17\" z=\"0\" type=\"1\" /><platform x=\"17\" y=\"18\" z=\"0\" type=\"7\" /><platform x=\"17\" y=\"19\" z=\"0\" type=\"1\" /><platform x=\"17\" y=\"20\" z=\"0\" type=\"1\" /><platform x=\"18\" y=\"11\" z=\"0\" type=\"1\" /><platform x=\"18\" y=\"12\" z=\"0\" type=\"1\" /><platform x=\"18\" y=\"13\" z=\"0\" type=\"7\" /><platform x=\"18\" y=\"14\" z=\"0\" type=\"7\" /><platform x=\"18\" y=\"15\" z=\"0\" type=\"7\" /><platform x=\"18\" y=\"16\" z=\"0\" type=\"7\" /><platform x=\"18\" y=\"17\" z=\"0\" type=\"7\" /><platform x=\"18\" y=\"18\" z=\"0\" type=\"7\" /><platform x=\"18\" y=\"19\" z=\"0\" type=\"1\" /><platform x=\"18\" y=\"20\" z=\"0\" type=\"1\" /><platform x=\"19\" y=\"11\" z=\"0\" type=\"1\" /><platform x=\"19\" y=\"12\" z=\"0\" type=\"1\" /><platform x=\"19\" y=\"13\" z=\"0\" type=\"1\" /><platform x=\"19\" y=\"14\" z=\"0\" type=\"1\" /><platform x=\"19\" y=\"15\" z=\"0\" type=\"1\" /><platform x=\"19\" y=\"16\" z=\"0\" type=\"1\" /><platform x=\"19\" y=\"17\" z=\"0\" type=\"1\" /><platform x=\"19\" y=\"18\" z=\"0\" type=\"1\" /><platform x=\"19\" y=\"19\" z=\"0\" type=\"1\" /><platform x=\"19\" y=\"20\" z=\"0\" type=\"1\" /><platform x=\"20\" y=\"11\" z=\"0\" type=\"1\" /><platform x=\"20\" y=\"12\" z=\"0\" type=\"1\" /><platform x=\"20\" y=\"13\" z=\"0\" type=\"1\" /><platform x=\"20\" y=\"14\" z=\"0\" type=\"1\" /><platform x=\"20\" y=\"15\" z=\"0\" type=\"1\" /><platform x=\"20\" y=\"16\" z=\"0\" type=\"1\" /><platform x=\"20\" y=\"17\" z=\"0\" type=\"1\" /><platform x=\"20\" y=\"18\" z=\"0\" type=\"1\" /><platform x=\"20\" y=\"19\" z=\"0\" type=\"1\" /><platform x=\"20\" y=\"20\" z=\"0\" type=\"1\" /><platform x=\"21\" y=\"10\" z=\"0\" type=\"4\" /><platform x=\"11\" y=\"11\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"13\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"20\" z=\"1\" type=\"-1\" /><platform x=\"12\" y=\"11\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"13\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"11\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"13\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"11\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"13\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"11\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"13\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"11\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"13\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"11\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"13\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"11\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"13\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"19\" y=\"11\" z=\"1\" type=\"6\" /><platform x=\"19\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"19\" y=\"13\" z=\"1\" type=\"6\" /><platform x=\"19\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"19\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"19\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"19\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"19\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"19\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"19\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"11\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"13\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"11\" z=\"2\" type=\"6\" /><platform x=\"11\" y=\"12\" z=\"2\" type=\"6\" /><platform x=\"11\" y=\"13\" z=\"2\" type=\"6\" /><platform x=\"11\" y=\"14\" z=\"2\" type=\"6\" /><platform x=\"11\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"11\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"11\" y=\"17\" z=\"2\" type=\"6\" /><platform x=\"11\" y=\"18\" z=\"2\" type=\"6\" /><platform x=\"11\" y=\"19\" z=\"2\" type=\"6\" /><platform x=\"11\" y=\"20\" z=\"2\" type=\"6\" /><platform x=\"12\" y=\"11\" z=\"2\" type=\"6\" /><platform x=\"12\" y=\"12\" z=\"2\" type=\"6\" /><platform x=\"12\" y=\"13\" z=\"2\" type=\"6\" /><platform x=\"12\" y=\"14\" z=\"2\" type=\"6\" /><platform x=\"12\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"12\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"12\" y=\"17\" z=\"2\" type=\"6\" /><platform x=\"12\" y=\"18\" z=\"2\" type=\"6\" /><platform x=\"12\" y=\"19\" z=\"2\" type=\"6\" /><platform x=\"12\" y=\"20\" z=\"2\" type=\"6\" /><platform x=\"13\" y=\"11\" z=\"2\" type=\"6\" /><platform x=\"13\" y=\"12\" z=\"2\" type=\"6\" /><platform x=\"13\" y=\"13\" z=\"2\" type=\"6\" /><platform x=\"13\" y=\"14\" z=\"2\" type=\"6\" /><platform x=\"13\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"13\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"13\" y=\"17\" z=\"2\" type=\"6\" /><platform x=\"13\" y=\"18\" z=\"2\" type=\"6\" /><platform x=\"13\" y=\"19\" z=\"2\" type=\"6\" /><platform x=\"13\" y=\"20\" z=\"2\" type=\"6\" /><platform x=\"14\" y=\"11\" z=\"2\" type=\"6\" /><platform x=\"14\" y=\"12\" z=\"2\" type=\"6\" /><platform x=\"14\" y=\"13\" z=\"2\" type=\"6\" /><platform x=\"14\" y=\"14\" z=\"2\" type=\"6\" /><platform x=\"14\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"14\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"14\" y=\"17\" z=\"2\" type=\"6\" /><platform x=\"14\" y=\"18\" z=\"2\" type=\"6\" /><platform x=\"14\" y=\"19\" z=\"2\" type=\"6\" /><platform x=\"14\" y=\"20\" z=\"2\" type=\"6\" /><platform x=\"15\" y=\"11\" z=\"2\" type=\"6\" /><platform x=\"15\" y=\"12\" z=\"2\" type=\"6\" /><platform x=\"15\" y=\"13\" z=\"2\" type=\"6\" /><platform x=\"15\" y=\"14\" z=\"2\" type=\"6\" /><platform x=\"15\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"15\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"15\" y=\"17\" z=\"2\" type=\"6\" /><platform x=\"15\" y=\"18\" z=\"2\" type=\"6\" /><platform x=\"15\" y=\"19\" z=\"2\" type=\"6\" /><platform x=\"15\" y=\"20\" z=\"2\" type=\"6\" /><platform x=\"16\" y=\"11\" z=\"2\" type=\"6\" /><platform x=\"16\" y=\"12\" z=\"2\" type=\"6\" /><platform x=\"16\" y=\"13\" z=\"2\" type=\"6\" /><platform x=\"16\" y=\"14\" z=\"2\" type=\"6\" /><platform x=\"16\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"16\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"16\" y=\"17\" z=\"2\" type=\"6\" /><platform x=\"16\" y=\"18\" z=\"2\" type=\"6\" /><platform x=\"16\" y=\"19\" z=\"2\" type=\"6\" /><platform x=\"16\" y=\"20\" z=\"2\" type=\"6\" /><platform x=\"17\" y=\"11\" z=\"2\" type=\"6\" /><platform x=\"17\" y=\"12\" z=\"2\" type=\"6\" /><platform x=\"17\" y=\"13\" z=\"2\" type=\"6\" /><platform x=\"17\" y=\"14\" z=\"2\" type=\"6\" /><platform x=\"17\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"17\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"17\" y=\"17\" z=\"2\" type=\"6\" /><platform x=\"17\" y=\"18\" z=\"2\" type=\"6\" /><platform x=\"17\" y=\"19\" z=\"2\" type=\"6\" /><platform x=\"17\" y=\"20\" z=\"2\" type=\"6\" /><platform x=\"18\" y=\"11\" z=\"2\" type=\"6\" /><platform x=\"18\" y=\"12\" z=\"2\" type=\"6\" /><platform x=\"18\" y=\"13\" z=\"2\" type=\"6\" /><platform x=\"18\" y=\"14\" z=\"2\" type=\"6\" /><platform x=\"18\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"18\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"18\" y=\"17\" z=\"2\" type=\"6\" /><platform x=\"18\" y=\"18\" z=\"2\" type=\"6\" /><platform x=\"18\" y=\"19\" z=\"2\" type=\"6\" /><platform x=\"18\" y=\"20\" z=\"2\" type=\"6\" /><platform x=\"19\" y=\"11\" z=\"2\" type=\"6\" /><platform x=\"19\" y=\"12\" z=\"2\" type=\"6\" /><platform x=\"19\" y=\"13\" z=\"2\" type=\"6\" /><platform x=\"19\" y=\"14\" z=\"2\" type=\"6\" /><platform x=\"19\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"19\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"19\" y=\"17\" z=\"2\" type=\"6\" /><platform x=\"19\" y=\"18\" z=\"2\" type=\"6\" /><platform x=\"19\" y=\"19\" z=\"2\" type=\"6\" /><platform x=\"19\" y=\"20\" z=\"2\" type=\"6\" /><platform x=\"20\" y=\"11\" z=\"2\" type=\"6\" /><platform x=\"20\" y=\"12\" z=\"2\" type=\"6\" /><platform x=\"20\" y=\"13\" z=\"2\" type=\"6\" /><platform x=\"20\" y=\"14\" z=\"2\" type=\"6\" /><platform x=\"20\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"20\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"20\" y=\"17\" z=\"2\" type=\"6\" /><platform x=\"20\" y=\"18\" z=\"2\" type=\"6\" /><platform x=\"20\" y=\"19\" z=\"2\" type=\"6\" /><platform x=\"20\" y=\"20\" z=\"2\" type=\"6\" /><platform x=\"11\" y=\"11\" z=\"3\" type=\"6\" /><platform x=\"11\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"11\" y=\"13\" z=\"3\" type=\"6\" /><platform x=\"11\" y=\"14\" z=\"3\" type=\"6\" /><platform x=\"11\" y=\"15\" z=\"3\" type=\"6\" /><platform x=\"11\" y=\"16\" z=\"3\" type=\"6\" /><platform x=\"11\" y=\"17\" z=\"3\" type=\"6\" /><platform x=\"11\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"11\" y=\"19\" z=\"3\" type=\"6\" /><platform x=\"11\" y=\"20\" z=\"3\" type=\"6\" /><platform x=\"12\" y=\"11\" z=\"3\" type=\"6\" /><platform x=\"12\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"12\" y=\"13\" z=\"3\" type=\"6\" /><platform x=\"12\" y=\"14\" z=\"3\" type=\"6\" /><platform x=\"12\" y=\"15\" z=\"3\" type=\"6\" /><platform x=\"12\" y=\"16\" z=\"3\" type=\"6\" /><platform x=\"12\" y=\"17\" z=\"3\" type=\"6\" /><platform x=\"12\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"12\" y=\"19\" z=\"3\" type=\"6\" /><platform x=\"12\" y=\"20\" z=\"3\" type=\"6\" /><platform x=\"13\" y=\"11\" z=\"3\" type=\"6\" /><platform x=\"13\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"13\" y=\"13\" z=\"3\" type=\"6\" /><platform x=\"13\" y=\"14\" z=\"3\" type=\"6\" /><platform x=\"13\" y=\"15\" z=\"3\" type=\"6\" /><platform x=\"13\" y=\"16\" z=\"3\" type=\"6\" /><platform x=\"13\" y=\"17\" z=\"3\" type=\"6\" /><platform x=\"13\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"13\" y=\"19\" z=\"3\" type=\"6\" /><platform x=\"13\" y=\"20\" z=\"3\" type=\"6\" /><platform x=\"14\" y=\"11\" z=\"3\" type=\"6\" /><platform x=\"14\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"14\" y=\"13\" z=\"3\" type=\"6\" /><platform x=\"14\" y=\"14\" z=\"3\" type=\"6\" /><platform x=\"14\" y=\"15\" z=\"3\" type=\"6\" /><platform x=\"14\" y=\"16\" z=\"3\" type=\"6\" /><platform x=\"14\" y=\"17\" z=\"3\" type=\"6\" /><platform x=\"14\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"14\" y=\"19\" z=\"3\" type=\"6\" /><platform x=\"14\" y=\"20\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"11\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"13\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"14\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"15\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"16\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"17\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"19\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"20\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"11\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"13\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"14\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"15\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"16\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"17\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"19\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"20\" z=\"3\" type=\"6\" /><platform x=\"17\" y=\"11\" z=\"3\" type=\"6\" /><platform x=\"17\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"17\" y=\"13\" z=\"3\" type=\"6\" /><platform x=\"17\" y=\"14\" z=\"3\" type=\"6\" /><platform x=\"17\" y=\"15\" z=\"3\" type=\"6\" /><platform x=\"17\" y=\"16\" z=\"3\" type=\"6\" /><platform x=\"17\" y=\"17\" z=\"3\" type=\"6\" /><platform x=\"17\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"17\" y=\"19\" z=\"3\" type=\"6\" /><platform x=\"17\" y=\"20\" z=\"3\" type=\"6\" /><platform x=\"18\" y=\"11\" z=\"3\" type=\"6\" /><platform x=\"18\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"18\" y=\"13\" z=\"3\" type=\"6\" /><platform x=\"18\" y=\"14\" z=\"3\" type=\"6\" /><platform x=\"18\" y=\"15\" z=\"3\" type=\"6\" /><platform x=\"18\" y=\"16\" z=\"3\" type=\"6\" /><platform x=\"18\" y=\"17\" z=\"3\" type=\"6\" /><platform x=\"18\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"18\" y=\"19\" z=\"3\" type=\"6\" /><platform x=\"18\" y=\"20\" z=\"3\" type=\"6\" /><platform x=\"19\" y=\"11\" z=\"3\" type=\"6\" /><platform x=\"19\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"19\" y=\"13\" z=\"3\" type=\"6\" /><platform x=\"19\" y=\"14\" z=\"3\" type=\"6\" /><platform x=\"19\" y=\"15\" z=\"3\" type=\"6\" /><platform x=\"19\" y=\"16\" z=\"3\" type=\"6\" /><platform x=\"19\" y=\"17\" z=\"3\" type=\"6\" /><platform x=\"19\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"19\" y=\"19\" z=\"3\" type=\"6\" /><platform x=\"19\" y=\"20\" z=\"3\" type=\"6\" /><platform x=\"20\" y=\"11\" z=\"3\" type=\"6\" /><platform x=\"20\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"20\" y=\"13\" z=\"3\" type=\"6\" /><platform x=\"20\" y=\"14\" z=\"3\" type=\"6\" /><platform x=\"20\" y=\"15\" z=\"3\" type=\"6\" /><platform x=\"20\" y=\"16\" z=\"3\" type=\"6\" /><platform x=\"20\" y=\"17\" z=\"3\" type=\"6\" /><platform x=\"20\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"20\" y=\"19\" z=\"3\" type=\"6\" /><platform x=\"20\" y=\"20\" z=\"3\" type=\"6\" /><platform x=\"11\" y=\"15\" z=\"4\" type=\"5\" /><platform x=\"11\" y=\"16\" z=\"4\" type=\"5\" /><platform x=\"12\" y=\"12\" z=\"4\" type=\"5\" /><platform x=\"12\" y=\"15\" z=\"4\" type=\"5\" /><platform x=\"12\" y=\"16\" z=\"4\" type=\"5\" /><platform x=\"12\" y=\"19\" z=\"4\" type=\"5\" /><platform x=\"14\" y=\"14\" z=\"4\" type=\"5\" /><platform x=\"14\" y=\"17\" z=\"4\" type=\"5\" /><platform x=\"15\" y=\"11\" z=\"4\" type=\"5\" /><platform x=\"15\" y=\"12\" z=\"4\" type=\"5\" /><platform x=\"15\" y=\"15\" z=\"4\" type=\"5\" /><platform x=\"15\" y=\"16\" z=\"4\" type=\"5\" /><platform x=\"15\" y=\"19\" z=\"4\" type=\"5\" /><platform x=\"15\" y=\"20\" z=\"4\" type=\"5\" /><platform x=\"16\" y=\"11\" z=\"4\" type=\"5\" /><platform x=\"16\" y=\"12\" z=\"4\" type=\"5\" /><platform x=\"16\" y=\"15\" z=\"4\" type=\"5\" /><platform x=\"16\" y=\"16\" z=\"4\" type=\"5\" /><platform x=\"16\" y=\"19\" z=\"4\" type=\"5\" /><platform x=\"16\" y=\"20\" z=\"4\" type=\"5\" /><platform x=\"17\" y=\"14\" z=\"4\" type=\"5\" /><platform x=\"17\" y=\"17\" z=\"4\" type=\"5\" /><platform x=\"19\" y=\"12\" z=\"4\" type=\"5\" /><platform x=\"19\" y=\"15\" z=\"4\" type=\"5\" /><platform x=\"19\" y=\"16\" z=\"4\" type=\"5\" /><platform x=\"19\" y=\"19\" z=\"4\" type=\"5\" /><platform x=\"20\" y=\"15\" z=\"4\" type=\"5\" /><platform x=\"20\" y=\"16\" z=\"4\" type=\"5\" /></map>"); map.push("<map name=\"15. EDGE\"><platform x=\"13\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"18\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"18\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"15\" z=\"0\" type=\"1\" /><platform x=\"15\" y=\"16\" z=\"0\" type=\"1\" /><platform x=\"15\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"18\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"15\" z=\"0\" type=\"1\" /><platform x=\"16\" y=\"16\" z=\"0\" type=\"1\" /><platform x=\"16\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"18\" z=\"0\" type=\"0\" /><platform x=\"17\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"17\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"17\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"17\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"17\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"17\" y=\"18\" z=\"0\" type=\"0\" /><platform x=\"18\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"18\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"18\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"18\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"18\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"18\" y=\"18\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"14\" z=\"1\" type=\"-1\" /><platform x=\"17\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"13\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"11\" z=\"2\" type=\"0\" /><platform x=\"13\" y=\"12\" z=\"2\" type=\"4\" /><platform x=\"13\" y=\"13\" z=\"2\" type=\"0\" /><platform x=\"13\" y=\"18\" z=\"2\" type=\"0\" /><platform x=\"13\" y=\"19\" z=\"2\" type=\"4\" /><platform x=\"13\" y=\"20\" z=\"2\" type=\"0\" /><platform x=\"14\" y=\"11\" z=\"2\" type=\"0\" /><platform x=\"14\" y=\"12\" z=\"2\" type=\"0\" /><platform x=\"14\" y=\"13\" z=\"2\" type=\"0\" /><platform x=\"14\" y=\"18\" z=\"2\" type=\"0\" /><platform x=\"14\" y=\"19\" z=\"2\" type=\"0\" /><platform x=\"14\" y=\"20\" z=\"2\" type=\"0\" /><platform x=\"15\" y=\"11\" z=\"2\" type=\"0\" /><platform x=\"15\" y=\"12\" z=\"2\" type=\"0\" /><platform x=\"15\" y=\"13\" z=\"2\" type=\"0\" /><platform x=\"15\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"15\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"15\" y=\"18\" z=\"2\" type=\"0\" /><platform x=\"15\" y=\"19\" z=\"2\" type=\"0\" /><platform x=\"15\" y=\"20\" z=\"2\" type=\"0\" /><platform x=\"16\" y=\"11\" z=\"2\" type=\"0\" /><platform x=\"16\" y=\"12\" z=\"2\" type=\"0\" /><platform x=\"16\" y=\"13\" z=\"2\" type=\"0\" /><platform x=\"16\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"16\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"16\" y=\"18\" z=\"2\" type=\"0\" /><platform x=\"16\" y=\"19\" z=\"2\" type=\"0\" /><platform x=\"16\" y=\"20\" z=\"2\" type=\"0\" /><platform x=\"17\" y=\"11\" z=\"2\" type=\"0\" /><platform x=\"17\" y=\"12\" z=\"2\" type=\"0\" /><platform x=\"17\" y=\"13\" z=\"2\" type=\"0\" /><platform x=\"17\" y=\"18\" z=\"2\" type=\"0\" /><platform x=\"17\" y=\"19\" z=\"2\" type=\"0\" /><platform x=\"17\" y=\"20\" z=\"2\" type=\"0\" /><platform x=\"18\" y=\"12\" z=\"2\" type=\"0\" /><platform x=\"18\" y=\"19\" z=\"2\" type=\"0\" /><platform x=\"19\" y=\"12\" z=\"2\" type=\"0\" /><platform x=\"19\" y=\"13\" z=\"2\" type=\"0\" /><platform x=\"19\" y=\"14\" z=\"2\" type=\"0\" /><platform x=\"19\" y=\"15\" z=\"2\" type=\"0\" /><platform x=\"19\" y=\"16\" z=\"2\" type=\"0\" /><platform x=\"19\" y=\"17\" z=\"2\" type=\"0\" /><platform x=\"19\" y=\"18\" z=\"2\" type=\"0\" /><platform x=\"19\" y=\"19\" z=\"2\" type=\"0\" /><platform x=\"21\" y=\"15\" z=\"2\" type=\"1\" /><platform x=\"21\" y=\"16\" z=\"2\" type=\"1\" /><platform x=\"25\" y=\"15\" z=\"2\" type=\"1\" /><platform x=\"25\" y=\"16\" z=\"2\" type=\"1\" /><platform x=\"29\" y=\"14\" z=\"2\" type=\"1\" /><platform x=\"29\" y=\"15\" z=\"2\" type=\"0\" /><platform x=\"29\" y=\"16\" z=\"2\" type=\"0\" /><platform x=\"29\" y=\"17\" z=\"2\" type=\"1\" /><platform x=\"30\" y=\"14\" z=\"2\" type=\"0\" /><platform x=\"30\" y=\"15\" z=\"2\" type=\"0\" /><platform x=\"30\" y=\"16\" z=\"2\" type=\"0\" /><platform x=\"30\" y=\"17\" z=\"2\" type=\"0\" /><platform x=\"31\" y=\"14\" z=\"2\" type=\"0\" /><platform x=\"31\" y=\"15\" z=\"2\" type=\"0\" /><platform x=\"31\" y=\"16\" z=\"2\" type=\"0\" /><platform x=\"31\" y=\"17\" z=\"2\" type=\"0\" /><platform x=\"13\" y=\"11\" z=\"3\" type=\"6\" /><platform x=\"13\" y=\"13\" z=\"3\" type=\"6\" /><platform x=\"13\" y=\"14\" z=\"3\" type=\"1\" /><platform x=\"13\" y=\"17\" z=\"3\" type=\"1\" /><platform x=\"13\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"13\" y=\"20\" z=\"3\" type=\"6\" /><platform x=\"14\" y=\"11\" z=\"3\" type=\"6\" /><platform x=\"14\" y=\"13\" z=\"3\" type=\"6\" /><platform x=\"14\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"14\" y=\"20\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"11\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"13\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"15\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"16\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"20\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"11\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"13\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"15\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"16\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"20\" z=\"3\" type=\"6\" /><platform x=\"17\" y=\"11\" z=\"3\" type=\"6\" /><platform x=\"17\" y=\"13\" z=\"3\" type=\"6\" /><platform x=\"17\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"17\" y=\"20\" z=\"3\" type=\"6\" /><platform x=\"19\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"19\" y=\"13\" z=\"3\" type=\"6\" /><platform x=\"19\" y=\"14\" z=\"3\" type=\"6\" /><platform x=\"19\" y=\"15\" z=\"3\" type=\"6\" /><platform x=\"19\" y=\"16\" z=\"3\" type=\"6\" /><platform x=\"19\" y=\"17\" z=\"3\" type=\"6\" /><platform x=\"19\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"19\" y=\"19\" z=\"3\" type=\"6\" /><platform x=\"29\" y=\"15\" z=\"3\" type=\"6\" /><platform x=\"29\" y=\"16\" z=\"3\" type=\"6\" /><platform x=\"30\" y=\"14\" z=\"3\" type=\"6\" /><platform x=\"30\" y=\"15\" z=\"3\" type=\"6\" /><platform x=\"30\" y=\"16\" z=\"3\" type=\"6\" /><platform x=\"30\" y=\"17\" z=\"3\" type=\"6\" /><platform x=\"31\" y=\"14\" z=\"3\" type=\"6\" /><platform x=\"31\" y=\"15\" z=\"3\" type=\"6\" /><platform x=\"31\" y=\"16\" z=\"3\" type=\"6\" /><platform x=\"31\" y=\"17\" z=\"3\" type=\"6\" /><platform x=\"30\" y=\"14\" z=\"4\" type=\"5\" /><platform x=\"30\" y=\"15\" z=\"4\" type=\"5\" /><platform x=\"30\" y=\"16\" z=\"4\" type=\"5\" /><platform x=\"30\" y=\"17\" z=\"4\" type=\"5\" /><platform x=\"31\" y=\"14\" z=\"4\" type=\"5\" /><platform x=\"31\" y=\"15\" z=\"4\" type=\"5\" /><platform x=\"31\" y=\"16\" z=\"4\" type=\"5\" /><platform x=\"31\" y=\"17\" z=\"4\" type=\"5\" /><platform x=\"12\" y=\"15\" z=\"6\" type=\"1\" /><platform x=\"12\" y=\"16\" z=\"6\" type=\"1\" /><platform x=\"13\" y=\"15\" z=\"9\" type=\"1\" /><platform x=\"13\" y=\"16\" z=\"9\" type=\"1\" /><platform x=\"15\" y=\"15\" z=\"11\" type=\"0\" /><platform x=\"15\" y=\"16\" z=\"11\" type=\"0\" /><platform x=\"16\" y=\"15\" z=\"11\" type=\"0\" /><platform x=\"16\" y=\"16\" z=\"11\" type=\"0\" /><platform x=\"16\" y=\"15\" z=\"13\" type=\"5\" /><platform x=\"16\" y=\"16\" z=\"13\" type=\"5\" /></map>"); map.push("<map name=\"16. BIG CROSS\"><platform x=\"15\" y=\"15\" z=\"0\" type=\"1\" /><platform x=\"15\" y=\"16\" z=\"0\" type=\"1\" /><platform x=\"15\" y=\"17\" z=\"0\" type=\"1\" /><platform x=\"16\" y=\"15\" z=\"0\" type=\"1\" /><platform x=\"16\" y=\"16\" z=\"0\" type=\"1\" /><platform x=\"16\" y=\"17\" z=\"0\" type=\"1\" /><platform x=\"17\" y=\"15\" z=\"0\" type=\"1\" /><platform x=\"17\" y=\"16\" z=\"0\" type=\"1\" /><platform x=\"17\" y=\"17\" z=\"0\" type=\"1\" /><platform x=\"16\" y=\"16\" z=\"1\" type=\"-1\" /><platform x=\"15\" y=\"6\" z=\"2\" type=\"7\" /><platform x=\"15\" y=\"7\" z=\"2\" type=\"0\" /><platform x=\"15\" y=\"8\" z=\"2\" type=\"7\" /><platform x=\"15\" y=\"14\" z=\"2\" type=\"0\" /><platform x=\"15\" y=\"18\" z=\"2\" type=\"0\" /><platform x=\"15\" y=\"24\" z=\"2\" type=\"7\" /><platform x=\"15\" y=\"25\" z=\"2\" type=\"0\" /><platform x=\"15\" y=\"26\" z=\"2\" type=\"7\" /><platform x=\"16\" y=\"6\" z=\"2\" type=\"0\" /><platform x=\"16\" y=\"7\" z=\"2\" type=\"7\" /><platform x=\"16\" y=\"8\" z=\"2\" type=\"0\" /><platform x=\"16\" y=\"9\" z=\"2\" type=\"7\" /><platform x=\"16\" y=\"10\" z=\"2\" type=\"0\" /><platform x=\"16\" y=\"11\" z=\"2\" type=\"7\" /><platform x=\"16\" y=\"12\" z=\"2\" type=\"0\" /><platform x=\"16\" y=\"13\" z=\"2\" type=\"7\" /><platform x=\"16\" y=\"14\" z=\"2\" type=\"0\" /><platform x=\"16\" y=\"18\" z=\"2\" type=\"0\" /><platform x=\"16\" y=\"19\" z=\"2\" type=\"7\" /><platform x=\"16\" y=\"20\" z=\"2\" type=\"0\" /><platform x=\"16\" y=\"21\" z=\"2\" type=\"7\" /><platform x=\"16\" y=\"22\" z=\"2\" type=\"0\" /><platform x=\"16\" y=\"23\" z=\"2\" type=\"7\" /><platform x=\"16\" y=\"24\" z=\"2\" type=\"0\" /><platform x=\"16\" y=\"25\" z=\"2\" type=\"7\" /><platform x=\"16\" y=\"26\" z=\"2\" type=\"0\" /><platform x=\"17\" y=\"6\" z=\"2\" type=\"7\" /><platform x=\"17\" y=\"7\" z=\"2\" type=\"0\" /><platform x=\"17\" y=\"8\" z=\"2\" type=\"7\" /><platform x=\"17\" y=\"14\" z=\"2\" type=\"0\" /><platform x=\"17\" y=\"18\" z=\"2\" type=\"0\" /><platform x=\"17\" y=\"24\" z=\"2\" type=\"7\" /><platform x=\"17\" y=\"25\" z=\"2\" type=\"0\" /><platform x=\"17\" y=\"26\" z=\"2\" type=\"7\" /><platform x=\"15\" y=\"6\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"7\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"8\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"14\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"24\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"25\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"26\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"6\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"7\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"8\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"9\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"10\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"11\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"13\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"14\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"19\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"20\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"21\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"22\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"23\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"24\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"25\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"26\" z=\"3\" type=\"6\" /><platform x=\"17\" y=\"6\" z=\"3\" type=\"6\" /><platform x=\"17\" y=\"7\" z=\"3\" type=\"6\" /><platform x=\"17\" y=\"8\" z=\"3\" type=\"6\" /><platform x=\"17\" y=\"14\" z=\"3\" type=\"6\" /><platform x=\"17\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"17\" y=\"24\" z=\"3\" type=\"6\" /><platform x=\"17\" y=\"25\" z=\"3\" type=\"6\" /><platform x=\"17\" y=\"26\" z=\"3\" type=\"6\" /><platform x=\"6\" y=\"15\" z=\"4\" type=\"7\" /><platform x=\"6\" y=\"16\" z=\"4\" type=\"0\" /><platform x=\"6\" y=\"17\" z=\"4\" type=\"7\" /><platform x=\"7\" y=\"15\" z=\"4\" type=\"0\" /><platform x=\"7\" y=\"16\" z=\"4\" type=\"4\" /><platform x=\"7\" y=\"17\" z=\"4\" type=\"0\" /><platform x=\"8\" y=\"15\" z=\"4\" type=\"7\" /><platform x=\"8\" y=\"16\" z=\"4\" type=\"0\" /><platform x=\"8\" y=\"17\" z=\"4\" type=\"7\" /><platform x=\"9\" y=\"16\" z=\"4\" type=\"7\" /><platform x=\"10\" y=\"16\" z=\"4\" type=\"0\" /><platform x=\"11\" y=\"16\" z=\"4\" type=\"7\" /><platform x=\"12\" y=\"16\" z=\"4\" type=\"0\" /><platform x=\"13\" y=\"16\" z=\"4\" type=\"7\" /><platform x=\"14\" y=\"15\" z=\"4\" type=\"0\" /><platform x=\"14\" y=\"16\" z=\"4\" type=\"0\" /><platform x=\"14\" y=\"17\" z=\"4\" type=\"0\" /><platform x=\"16\" y=\"6\" z=\"4\" type=\"5\" /><platform x=\"16\" y=\"26\" z=\"4\" type=\"5\" /><platform x=\"18\" y=\"15\" z=\"4\" type=\"0\" /><platform x=\"18\" y=\"16\" z=\"4\" type=\"0\" /><platform x=\"18\" y=\"17\" z=\"4\" type=\"0\" /><platform x=\"19\" y=\"16\" z=\"4\" type=\"7\" /><platform x=\"20\" y=\"16\" z=\"4\" type=\"0\" /><platform x=\"21\" y=\"16\" z=\"4\" type=\"7\" /><platform x=\"22\" y=\"16\" z=\"4\" type=\"0\" /><platform x=\"23\" y=\"16\" z=\"4\" type=\"7\" /><platform x=\"24\" y=\"15\" z=\"4\" type=\"7\" /><platform x=\"24\" y=\"16\" z=\"4\" type=\"0\" /><platform x=\"24\" y=\"17\" z=\"4\" type=\"7\" /><platform x=\"25\" y=\"15\" z=\"4\" type=\"0\" /><platform x=\"25\" y=\"16\" z=\"4\" type=\"7\" /><platform x=\"25\" y=\"17\" z=\"4\" type=\"0\" /><platform x=\"26\" y=\"15\" z=\"4\" type=\"7\" /><platform x=\"26\" y=\"16\" z=\"4\" type=\"0\" /><platform x=\"26\" y=\"17\" z=\"4\" type=\"7\" /><platform x=\"6\" y=\"15\" z=\"5\" type=\"6\" /><platform x=\"6\" y=\"16\" z=\"5\" type=\"6\" /><platform x=\"6\" y=\"17\" z=\"5\" type=\"6\" /><platform x=\"7\" y=\"15\" z=\"5\" type=\"6\" /><platform x=\"7\" y=\"17\" z=\"5\" type=\"6\" /><platform x=\"8\" y=\"15\" z=\"5\" type=\"6\" /><platform x=\"8\" y=\"16\" z=\"5\" type=\"6\" /><platform x=\"8\" y=\"17\" z=\"5\" type=\"6\" /><platform x=\"9\" y=\"16\" z=\"5\" type=\"6\" /><platform x=\"10\" y=\"16\" z=\"5\" type=\"6\" /><platform x=\"11\" y=\"16\" z=\"5\" type=\"6\" /><platform x=\"12\" y=\"16\" z=\"5\" type=\"6\" /><platform x=\"13\" y=\"16\" z=\"5\" type=\"6\" /><platform x=\"14\" y=\"15\" z=\"5\" type=\"6\" /><platform x=\"14\" y=\"16\" z=\"5\" type=\"6\" /><platform x=\"14\" y=\"17\" z=\"5\" type=\"6\" /><platform x=\"18\" y=\"15\" z=\"5\" type=\"6\" /><platform x=\"18\" y=\"16\" z=\"5\" type=\"6\" /><platform x=\"18\" y=\"17\" z=\"5\" type=\"6\" /><platform x=\"19\" y=\"16\" z=\"5\" type=\"6\" /><platform x=\"20\" y=\"16\" z=\"5\" type=\"6\" /><platform x=\"21\" y=\"16\" z=\"5\" type=\"6\" /><platform x=\"22\" y=\"16\" z=\"5\" type=\"6\" /><platform x=\"23\" y=\"16\" z=\"5\" type=\"6\" /><platform x=\"24\" y=\"15\" z=\"5\" type=\"6\" /><platform x=\"24\" y=\"16\" z=\"5\" type=\"6\" /><platform x=\"24\" y=\"17\" z=\"5\" type=\"6\" /><platform x=\"25\" y=\"15\" z=\"5\" type=\"6\" /><platform x=\"25\" y=\"16\" z=\"5\" type=\"6\" /><platform x=\"25\" y=\"17\" z=\"5\" type=\"6\" /><platform x=\"26\" y=\"15\" z=\"5\" type=\"6\" /><platform x=\"26\" y=\"16\" z=\"5\" type=\"6\" /><platform x=\"26\" y=\"17\" z=\"5\" type=\"6\" /><platform x=\"25\" y=\"15\" z=\"6\" type=\"5\" /><platform x=\"25\" y=\"17\" z=\"6\" type=\"5\" /><platform x=\"26\" y=\"16\" z=\"6\" type=\"5\" /></map>"); map.push("<map name=\"17. ESCAPE FROM HELL\"><platform x=\"10\" y=\"10\" z=\"0\" type=\"7\" /><platform x=\"10\" y=\"11\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"12\" z=\"0\" type=\"7\" /><platform x=\"10\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"14\" z=\"0\" type=\"7\" /><platform x=\"10\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"16\" z=\"0\" type=\"7\" /><platform x=\"10\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"18\" z=\"0\" type=\"7\" /><platform x=\"10\" y=\"19\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"20\" z=\"0\" type=\"7\" /><platform x=\"10\" y=\"21\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"22\" z=\"0\" type=\"4\" /><platform x=\"11\" y=\"10\" z=\"0\" type=\"0\" /><platform x=\"11\" y=\"11\" z=\"0\" type=\"2\" /><platform x=\"11\" y=\"12\" z=\"0\" type=\"2\" /><platform x=\"11\" y=\"13\" z=\"0\" type=\"2\" /><platform x=\"11\" y=\"14\" z=\"0\" type=\"2\" /><platform x=\"11\" y=\"15\" z=\"0\" type=\"2\" /><platform x=\"11\" y=\"16\" z=\"0\" type=\"2\" /><platform x=\"11\" y=\"17\" z=\"0\" type=\"2\" /><platform x=\"11\" y=\"18\" z=\"0\" type=\"2\" /><platform x=\"11\" y=\"19\" z=\"0\" type=\"2\" /><platform x=\"11\" y=\"20\" z=\"0\" type=\"2\" /><platform x=\"11\" y=\"21\" z=\"0\" type=\"2\" /><platform x=\"11\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"10\" z=\"0\" type=\"7\" /><platform x=\"12\" y=\"11\" z=\"0\" type=\"2\" /><platform x=\"12\" y=\"12\" z=\"0\" type=\"7\" /><platform x=\"12\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"14\" z=\"0\" type=\"7\" /><platform x=\"12\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"16\" z=\"0\" type=\"7\" /><platform x=\"12\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"18\" z=\"0\" type=\"7\" /><platform x=\"12\" y=\"19\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"20\" z=\"0\" type=\"7\" /><platform x=\"12\" y=\"21\" z=\"0\" type=\"2\" /><platform x=\"12\" y=\"22\" z=\"0\" type=\"7\" /><platform x=\"13\" y=\"10\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"11\" z=\"0\" type=\"2\" /><platform x=\"13\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"13\" z=\"0\" type=\"2\" /><platform x=\"13\" y=\"14\" z=\"0\" type=\"2\" /><platform x=\"13\" y=\"15\" z=\"0\" type=\"2\" /><platform x=\"13\" y=\"16\" z=\"0\" type=\"2\" /><platform x=\"13\" y=\"17\" z=\"0\" type=\"2\" /><platform x=\"13\" y=\"18\" z=\"0\" type=\"2\" /><platform x=\"13\" y=\"19\" z=\"0\" type=\"2\" /><platform x=\"13\" y=\"20\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"21\" z=\"0\" type=\"2\" /><platform x=\"13\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"10\" z=\"0\" type=\"7\" /><platform x=\"14\" y=\"11\" z=\"0\" type=\"2\" /><platform x=\"14\" y=\"12\" z=\"0\" type=\"7\" /><platform x=\"14\" y=\"13\" z=\"0\" type=\"2\" /><platform x=\"14\" y=\"14\" z=\"0\" type=\"7\" /><platform x=\"14\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"16\" z=\"0\" type=\"7\" /><platform x=\"14\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"18\" z=\"0\" type=\"7\" /><platform x=\"14\" y=\"19\" z=\"0\" type=\"2\" /><platform x=\"14\" y=\"20\" z=\"0\" type=\"7\" /><platform x=\"14\" y=\"21\" z=\"0\" type=\"2\" /><platform x=\"14\" y=\"22\" z=\"0\" type=\"7\" /><platform x=\"15\" y=\"10\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"11\" z=\"0\" type=\"2\" /><platform x=\"15\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"13\" z=\"0\" type=\"2\" /><platform x=\"15\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"15\" z=\"0\" type=\"2\" /><platform x=\"15\" y=\"16\" z=\"0\" type=\"2\" /><platform x=\"15\" y=\"17\" z=\"0\" type=\"2\" /><platform x=\"15\" y=\"18\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"19\" z=\"0\" type=\"2\" /><platform x=\"15\" y=\"20\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"21\" z=\"0\" type=\"2\" /><platform x=\"15\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"10\" z=\"0\" type=\"7\" /><platform x=\"16\" y=\"11\" z=\"0\" type=\"2\" /><platform x=\"16\" y=\"12\" z=\"0\" type=\"7\" /><platform x=\"16\" y=\"13\" z=\"0\" type=\"2\" /><platform x=\"16\" y=\"14\" z=\"0\" type=\"7\" /><platform x=\"16\" y=\"15\" z=\"0\" type=\"2\" /><platform x=\"16\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"17\" z=\"0\" type=\"2\" /><platform x=\"16\" y=\"18\" z=\"0\" type=\"7\" /><platform x=\"16\" y=\"19\" z=\"0\" type=\"2\" /><platform x=\"16\" y=\"20\" z=\"0\" type=\"7\" /><platform x=\"16\" y=\"21\" z=\"0\" type=\"2\" /><platform x=\"16\" y=\"22\" z=\"0\" type=\"7\" /><platform x=\"17\" y=\"10\" z=\"0\" type=\"0\" /><platform x=\"17\" y=\"11\" z=\"0\" type=\"2\" /><platform x=\"17\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"17\" y=\"13\" z=\"0\" type=\"2\" /><platform x=\"17\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"17\" y=\"15\" z=\"0\" type=\"2\" /><platform x=\"17\" y=\"16\" z=\"0\" type=\"2\" /><platform x=\"17\" y=\"17\" z=\"0\" type=\"2\" /><platform x=\"17\" y=\"18\" z=\"0\" type=\"0\" /><platform x=\"17\" y=\"19\" z=\"0\" type=\"2\" /><platform x=\"17\" y=\"20\" z=\"0\" type=\"0\" /><platform x=\"17\" y=\"21\" z=\"0\" type=\"2\" /><platform x=\"17\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"18\" y=\"10\" z=\"0\" type=\"7\" /><platform x=\"18\" y=\"11\" z=\"0\" type=\"2\" /><platform x=\"18\" y=\"12\" z=\"0\" type=\"7\" /><platform x=\"18\" y=\"13\" z=\"0\" type=\"2\" /><platform x=\"18\" y=\"14\" z=\"0\" type=\"7\" /><platform x=\"18\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"18\" y=\"16\" z=\"0\" type=\"7\" /><platform x=\"18\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"18\" y=\"18\" z=\"0\" type=\"7\" /><platform x=\"18\" y=\"19\" z=\"0\" type=\"2\" /><platform x=\"18\" y=\"20\" z=\"0\" type=\"7\" /><platform x=\"18\" y=\"21\" z=\"0\" type=\"2\" /><platform x=\"18\" y=\"22\" z=\"0\" type=\"7\" /><platform x=\"19\" y=\"10\" z=\"0\" type=\"0\" /><platform x=\"19\" y=\"11\" z=\"0\" type=\"2\" /><platform x=\"19\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"19\" y=\"13\" z=\"0\" type=\"2\" /><platform x=\"19\" y=\"14\" z=\"0\" type=\"2\" /><platform x=\"19\" y=\"15\" z=\"0\" type=\"2\" /><platform x=\"19\" y=\"16\" z=\"0\" type=\"2\" /><platform x=\"19\" y=\"17\" z=\"0\" type=\"2\" /><platform x=\"19\" y=\"18\" z=\"0\" type=\"2\" /><platform x=\"19\" y=\"19\" z=\"0\" type=\"2\" /><platform x=\"19\" y=\"20\" z=\"0\" type=\"0\" /><platform x=\"19\" y=\"21\" z=\"0\" type=\"2\" /><platform x=\"19\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"20\" y=\"10\" z=\"0\" type=\"7\" /><platform x=\"20\" y=\"11\" z=\"0\" type=\"2\" /><platform x=\"20\" y=\"12\" z=\"0\" type=\"7\" /><platform x=\"20\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"20\" y=\"14\" z=\"0\" type=\"7\" /><platform x=\"20\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"20\" y=\"16\" z=\"0\" type=\"7\" /><platform x=\"20\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"20\" y=\"18\" z=\"0\" type=\"7\" /><platform x=\"20\" y=\"19\" z=\"0\" type=\"0\" /><platform x=\"20\" y=\"20\" z=\"0\" type=\"7\" /><platform x=\"20\" y=\"21\" z=\"0\" type=\"2\" /><platform x=\"20\" y=\"22\" z=\"0\" type=\"7\" /><platform x=\"21\" y=\"10\" z=\"0\" type=\"0\" /><platform x=\"21\" y=\"11\" z=\"0\" type=\"2\" /><platform x=\"21\" y=\"12\" z=\"0\" type=\"2\" /><platform x=\"21\" y=\"13\" z=\"0\" type=\"2\" /><platform x=\"21\" y=\"14\" z=\"0\" type=\"2\" /><platform x=\"21\" y=\"15\" z=\"0\" type=\"2\" /><platform x=\"21\" y=\"16\" z=\"0\" type=\"2\" /><platform x=\"21\" y=\"17\" z=\"0\" type=\"2\" /><platform x=\"21\" y=\"18\" z=\"0\" type=\"2\" /><platform x=\"21\" y=\"19\" z=\"0\" type=\"2\" /><platform x=\"21\" y=\"20\" z=\"0\" type=\"2\" /><platform x=\"21\" y=\"21\" z=\"0\" type=\"2\" /><platform x=\"21\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"22\" y=\"10\" z=\"0\" type=\"7\" /><platform x=\"22\" y=\"11\" z=\"0\" type=\"0\" /><platform x=\"22\" y=\"12\" z=\"0\" type=\"7\" /><platform x=\"22\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"22\" y=\"14\" z=\"0\" type=\"7\" /><platform x=\"22\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"22\" y=\"16\" z=\"0\" type=\"7\" /><platform x=\"22\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"22\" y=\"18\" z=\"0\" type=\"7\" /><platform x=\"22\" y=\"19\" z=\"0\" type=\"0\" /><platform x=\"22\" y=\"20\" z=\"0\" type=\"7\" /><platform x=\"22\" y=\"21\" z=\"0\" type=\"0\" /><platform x=\"22\" y=\"22\" z=\"0\" type=\"7\" /><platform x=\"10\" y=\"11\" z=\"1\" type=\"6\" /><platform x=\"10\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"10\" y=\"13\" z=\"1\" type=\"6\" /><platform x=\"10\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"10\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"10\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"10\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"10\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"10\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"10\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"10\" y=\"21\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"10\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"10\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"13\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"10\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"10\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"10\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"10\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"16\" z=\"1\" type=\"-1\" /><platform x=\"16\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"10\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"10\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"19\" y=\"10\" z=\"1\" type=\"6\" /><platform x=\"19\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"19\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"19\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"10\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"13\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"21\" y=\"10\" z=\"1\" type=\"6\" /><platform x=\"21\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"22\" y=\"11\" z=\"1\" type=\"6\" /><platform x=\"22\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"22\" y=\"13\" z=\"1\" type=\"6\" /><platform x=\"22\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"22\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"22\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"22\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"22\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"22\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"22\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"22\" y=\"21\" z=\"1\" type=\"6\" /><platform x=\"10\" y=\"10\" z=\"2\" type=\"5\" /><platform x=\"22\" y=\"10\" z=\"2\" type=\"5\" /><platform x=\"22\" y=\"22\" z=\"2\" type=\"5\" /></map>"); map.push("<map name=\"18. PEAKS\"><platform x=\"6\" y=\"12\" z=\"3\" type=\"0\" /><platform x=\"18\" y=\"0\" z=\"3\" type=\"0\" /><platform x=\"18\" y=\"24\" z=\"3\" type=\"0\" /><platform x=\"30\" y=\"12\" z=\"3\" type=\"0\" /><platform x=\"6\" y=\"11\" z=\"4\" type=\"0\" /><platform x=\"7\" y=\"12\" z=\"4\" type=\"0\" /><platform x=\"17\" y=\"0\" z=\"4\" type=\"0\" /><platform x=\"18\" y=\"1\" z=\"4\" type=\"0\" /><platform x=\"18\" y=\"23\" z=\"4\" type=\"0\" /><platform x=\"19\" y=\"24\" z=\"4\" type=\"0\" /><platform x=\"29\" y=\"12\" z=\"4\" type=\"0\" /><platform x=\"30\" y=\"13\" z=\"4\" type=\"0\" /><platform x=\"6\" y=\"10\" z=\"5\" type=\"0\" /><platform x=\"8\" y=\"12\" z=\"5\" type=\"0\" /><platform x=\"16\" y=\"0\" z=\"5\" type=\"0\" /><platform x=\"18\" y=\"2\" z=\"5\" type=\"0\" /><platform x=\"18\" y=\"22\" z=\"5\" type=\"0\" /><platform x=\"20\" y=\"24\" z=\"5\" type=\"0\" /><platform x=\"28\" y=\"12\" z=\"5\" type=\"0\" /><platform x=\"30\" y=\"14\" z=\"5\" type=\"0\" /><platform x=\"6\" y=\"9\" z=\"6\" type=\"0\" /><platform x=\"9\" y=\"12\" z=\"6\" type=\"0\" /><platform x=\"10\" y=\"12\" z=\"6\" type=\"0\" /><platform x=\"15\" y=\"0\" z=\"6\" type=\"0\" /><platform x=\"18\" y=\"3\" z=\"6\" type=\"0\" /><platform x=\"18\" y=\"4\" z=\"6\" type=\"0\" /><platform x=\"18\" y=\"20\" z=\"6\" type=\"0\" /><platform x=\"18\" y=\"21\" z=\"6\" type=\"0\" /><platform x=\"21\" y=\"24\" z=\"6\" type=\"0\" /><platform x=\"26\" y=\"12\" z=\"6\" type=\"0\" /><platform x=\"27\" y=\"12\" z=\"6\" type=\"0\" /><platform x=\"30\" y=\"15\" z=\"6\" type=\"0\" /><platform x=\"7\" y=\"9\" z=\"7\" type=\"0\" /><platform x=\"11\" y=\"12\" z=\"7\" type=\"0\" /><platform x=\"15\" y=\"1\" z=\"7\" type=\"0\" /><platform x=\"18\" y=\"5\" z=\"7\" type=\"0\" /><platform x=\"18\" y=\"19\" z=\"7\" type=\"0\" /><platform x=\"21\" y=\"23\" z=\"7\" type=\"0\" /><platform x=\"25\" y=\"12\" z=\"7\" type=\"0\" /><platform x=\"29\" y=\"15\" z=\"7\" type=\"0\" /><platform x=\"7\" y=\"9\" z=\"8\" type=\"6\" /><platform x=\"8\" y=\"9\" z=\"8\" type=\"0\" /><platform x=\"11\" y=\"12\" z=\"8\" type=\"6\" /><platform x=\"12\" y=\"12\" z=\"8\" type=\"0\" /><platform x=\"15\" y=\"1\" z=\"8\" type=\"6\" /><platform x=\"15\" y=\"2\" z=\"8\" type=\"0\" /><platform x=\"18\" y=\"6\" z=\"8\" type=\"0\" /><platform x=\"18\" y=\"18\" z=\"8\" type=\"0\" /><platform x=\"21\" y=\"22\" z=\"8\" type=\"0\" /><platform x=\"21\" y=\"23\" z=\"8\" type=\"6\" /><platform x=\"24\" y=\"12\" z=\"8\" type=\"0\" /><platform x=\"25\" y=\"12\" z=\"8\" type=\"6\" /><platform x=\"28\" y=\"15\" z=\"8\" type=\"0\" /><platform x=\"29\" y=\"15\" z=\"8\" type=\"6\" /><platform x=\"9\" y=\"9\" z=\"9\" type=\"0\" /><platform x=\"13\" y=\"12\" z=\"9\" type=\"0\" /><platform x=\"15\" y=\"3\" z=\"9\" type=\"0\" /><platform x=\"18\" y=\"6\" z=\"9\" type=\"6\" /><platform x=\"18\" y=\"7\" z=\"9\" type=\"0\" /><platform x=\"18\" y=\"17\" z=\"9\" type=\"0\" /><platform x=\"18\" y=\"18\" z=\"9\" type=\"6\" /><platform x=\"21\" y=\"21\" z=\"9\" type=\"0\" /><platform x=\"23\" y=\"12\" z=\"9\" type=\"0\" /><platform x=\"27\" y=\"15\" z=\"9\" type=\"0\" /><platform x=\"10\" y=\"9\" z=\"10\" type=\"0\" /><platform x=\"13\" y=\"12\" z=\"10\" type=\"6\" /><platform x=\"14\" y=\"12\" z=\"10\" type=\"0\" /><platform x=\"15\" y=\"4\" z=\"10\" type=\"0\" /><platform x=\"18\" y=\"8\" z=\"10\" type=\"0\" /><platform x=\"18\" y=\"16\" z=\"10\" type=\"0\" /><platform x=\"21\" y=\"20\" z=\"10\" type=\"0\" /><platform x=\"22\" y=\"12\" z=\"10\" type=\"0\" /><platform x=\"23\" y=\"12\" z=\"10\" type=\"6\" /><platform x=\"26\" y=\"15\" z=\"10\" type=\"0\" /><platform x=\"11\" y=\"9\" z=\"11\" type=\"0\" /><platform x=\"15\" y=\"5\" z=\"11\" type=\"4\" /><platform x=\"15\" y=\"12\" z=\"11\" type=\"0\" /><platform x=\"18\" y=\"8\" z=\"11\" type=\"6\" /><platform x=\"18\" y=\"9\" z=\"11\" type=\"0\" /><platform x=\"18\" y=\"15\" z=\"11\" type=\"0\" /><platform x=\"18\" y=\"16\" z=\"11\" type=\"6\" /><platform x=\"21\" y=\"12\" z=\"11\" type=\"0\" /><platform x=\"21\" y=\"19\" z=\"11\" type=\"0\" /><platform x=\"25\" y=\"15\" z=\"11\" type=\"0\" /><platform x=\"15\" y=\"12\" z=\"12\" type=\"6\" /><platform x=\"16\" y=\"12\" z=\"12\" type=\"0\" /><platform x=\"18\" y=\"10\" z=\"12\" type=\"0\" /><platform x=\"18\" y=\"14\" z=\"12\" type=\"0\" /><platform x=\"20\" y=\"12\" z=\"12\" type=\"0\" /><platform x=\"21\" y=\"12\" z=\"12\" type=\"6\" /><platform x=\"11\" y=\"9\" z=\"13\" type=\"5\" /><platform x=\"17\" y=\"12\" z=\"13\" type=\"0\" /><platform x=\"18\" y=\"10\" z=\"13\" type=\"6\" /><platform x=\"18\" y=\"11\" z=\"13\" type=\"0\" /><platform x=\"18\" y=\"13\" z=\"13\" type=\"0\" /><platform x=\"18\" y=\"14\" z=\"13\" type=\"6\" /><platform x=\"19\" y=\"12\" z=\"13\" type=\"0\" /><platform x=\"21\" y=\"19\" z=\"13\" type=\"5\" /><platform x=\"25\" y=\"15\" z=\"13\" type=\"5\" /><platform x=\"17\" y=\"12\" z=\"14\" type=\"6\" /><platform x=\"18\" y=\"11\" z=\"14\" type=\"6\" /><platform x=\"18\" y=\"12\" z=\"14\" type=\"0\" /><platform x=\"18\" y=\"13\" z=\"14\" type=\"6\" /><platform x=\"19\" y=\"12\" z=\"14\" type=\"6\" /><platform x=\"18\" y=\"12\" z=\"15\" type=\"-1\" /></map>"); map.push("<map name=\"19. SPACE FLEET\"><platform x=\"6\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"7\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"12\" z=\"0\" type=\"1\" /><platform x=\"9\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"16\" z=\"0\" type=\"2\" /><platform x=\"9\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"18\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"19\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"20\" z=\"0\" type=\"1\" /><platform x=\"10\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"11\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"16\" z=\"0\" type=\"1\" /><platform x=\"6\" y=\"16\" z=\"1\" type=\"-1\" /><platform x=\"7\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"8\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"13\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"10\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"10\" y=\"12\" z=\"4\" type=\"0\" /><platform x=\"10\" y=\"20\" z=\"4\" type=\"0\" /><platform x=\"14\" y=\"16\" z=\"4\" type=\"0\" /><platform x=\"11\" y=\"12\" z=\"5\" type=\"0\" /><platform x=\"11\" y=\"20\" z=\"5\" type=\"0\" /><platform x=\"15\" y=\"16\" z=\"5\" type=\"0\" /><platform x=\"12\" y=\"12\" z=\"6\" type=\"0\" /><platform x=\"12\" y=\"20\" z=\"6\" type=\"0\" /><platform x=\"13\" y=\"12\" z=\"6\" type=\"0\" /><platform x=\"13\" y=\"20\" z=\"6\" type=\"0\" /><platform x=\"14\" y=\"9\" z=\"6\" type=\"1\" /><platform x=\"14\" y=\"10\" z=\"6\" type=\"0\" /><platform x=\"14\" y=\"11\" z=\"6\" type=\"0\" /><platform x=\"14\" y=\"12\" z=\"6\" type=\"0\" /><platform x=\"14\" y=\"20\" z=\"6\" type=\"0\" /><platform x=\"14\" y=\"21\" z=\"6\" type=\"0\" /><platform x=\"14\" y=\"22\" z=\"6\" type=\"0\" /><platform x=\"14\" y=\"23\" z=\"6\" type=\"1\" /><platform x=\"16\" y=\"16\" z=\"6\" type=\"0\" /><platform x=\"17\" y=\"16\" z=\"6\" type=\"0\" /><platform x=\"18\" y=\"13\" z=\"6\" type=\"1\" /><platform x=\"18\" y=\"14\" z=\"6\" type=\"0\" /><platform x=\"18\" y=\"15\" z=\"6\" type=\"0\" /><platform x=\"18\" y=\"16\" z=\"6\" type=\"0\" /><platform x=\"18\" y=\"17\" z=\"6\" type=\"0\" /><platform x=\"18\" y=\"18\" z=\"6\" type=\"0\" /><platform x=\"18\" y=\"19\" z=\"6\" type=\"1\" /><platform x=\"19\" y=\"16\" z=\"6\" type=\"0\" /><platform x=\"20\" y=\"16\" z=\"6\" type=\"0\" /><platform x=\"21\" y=\"16\" z=\"6\" type=\"1\" /><platform x=\"12\" y=\"12\" z=\"7\" type=\"6\" /><platform x=\"12\" y=\"20\" z=\"7\" type=\"6\" /><platform x=\"13\" y=\"12\" z=\"7\" type=\"6\" /><platform x=\"13\" y=\"20\" z=\"7\" type=\"6\" /><platform x=\"14\" y=\"10\" z=\"7\" type=\"6\" /><platform x=\"14\" y=\"11\" z=\"7\" type=\"6\" /><platform x=\"14\" y=\"12\" z=\"7\" type=\"6\" /><platform x=\"14\" y=\"16\" z=\"7\" type=\"6\" /><platform x=\"14\" y=\"20\" z=\"7\" type=\"6\" /><platform x=\"14\" y=\"21\" z=\"7\" type=\"6\" /><platform x=\"14\" y=\"22\" z=\"7\" type=\"6\" /><platform x=\"15\" y=\"16\" z=\"7\" type=\"6\" /><platform x=\"16\" y=\"16\" z=\"7\" type=\"6\" /><platform x=\"17\" y=\"16\" z=\"7\" type=\"6\" /><platform x=\"18\" y=\"16\" z=\"7\" type=\"6\" /><platform x=\"18\" y=\"17\" z=\"7\" type=\"6\" /><platform x=\"18\" y=\"18\" z=\"7\" type=\"6\" /><platform x=\"19\" y=\"16\" z=\"7\" type=\"6\" /><platform x=\"20\" y=\"16\" z=\"7\" type=\"6\" /><platform x=\"14\" y=\"8\" z=\"10\" type=\"0\" /><platform x=\"14\" y=\"24\" z=\"10\" type=\"0\" /><platform x=\"15\" y=\"8\" z=\"10\" type=\"0\" /><platform x=\"15\" y=\"24\" z=\"10\" type=\"0\" /><platform x=\"16\" y=\"6\" z=\"10\" type=\"0\" /><platform x=\"16\" y=\"7\" z=\"10\" type=\"0\" /><platform x=\"16\" y=\"8\" z=\"10\" type=\"0\" /><platform x=\"16\" y=\"24\" z=\"10\" type=\"0\" /><platform x=\"16\" y=\"25\" z=\"10\" type=\"0\" /><platform x=\"16\" y=\"26\" z=\"10\" type=\"0\" /><platform x=\"18\" y=\"12\" z=\"10\" type=\"0\" /><platform x=\"18\" y=\"20\" z=\"10\" type=\"0\" /><platform x=\"19\" y=\"12\" z=\"10\" type=\"0\" /><platform x=\"19\" y=\"20\" z=\"10\" type=\"0\" /><platform x=\"20\" y=\"10\" z=\"10\" type=\"0\" /><platform x=\"20\" y=\"11\" z=\"10\" type=\"0\" /><platform x=\"20\" y=\"12\" z=\"10\" type=\"0\" /><platform x=\"20\" y=\"20\" z=\"10\" type=\"0\" /><platform x=\"20\" y=\"21\" z=\"10\" type=\"0\" /><platform x=\"20\" y=\"22\" z=\"10\" type=\"0\" /><platform x=\"21\" y=\"16\" z=\"10\" type=\"4\" /><platform x=\"14\" y=\"8\" z=\"11\" type=\"6\" /><platform x=\"14\" y=\"24\" z=\"11\" type=\"6\" /><platform x=\"15\" y=\"8\" z=\"11\" type=\"6\" /><platform x=\"15\" y=\"24\" z=\"11\" type=\"6\" /><platform x=\"16\" y=\"7\" z=\"11\" type=\"6\" /><platform x=\"16\" y=\"8\" z=\"11\" type=\"6\" /><platform x=\"16\" y=\"24\" z=\"11\" type=\"6\" /><platform x=\"16\" y=\"25\" z=\"11\" type=\"6\" /><platform x=\"18\" y=\"12\" z=\"11\" type=\"6\" /><platform x=\"18\" y=\"20\" z=\"11\" type=\"6\" /><platform x=\"19\" y=\"12\" z=\"11\" type=\"6\" /><platform x=\"19\" y=\"20\" z=\"11\" type=\"6\" /><platform x=\"20\" y=\"11\" z=\"11\" type=\"6\" /><platform x=\"20\" y=\"12\" z=\"11\" type=\"6\" /><platform x=\"20\" y=\"20\" z=\"11\" type=\"6\" /><platform x=\"20\" y=\"21\" z=\"11\" type=\"6\" /><platform x=\"16\" y=\"6\" z=\"12\" type=\"5\" /><platform x=\"16\" y=\"26\" z=\"12\" type=\"5\" /><platform x=\"20\" y=\"10\" z=\"12\" type=\"5\" /><platform x=\"20\" y=\"22\" z=\"12\" type=\"5\" /></map>"); map.push("<map name=\"20. CRYSTAL\"><platform x=\"15\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"15\" z=\"0\" type=\"4\" /><platform x=\"16\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"17\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"17\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"17\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"13\" z=\"1\" type=\"0\" /><platform x=\"14\" y=\"17\" z=\"1\" type=\"0\" /><platform x=\"15\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"13\" z=\"1\" type=\"0\" /><platform x=\"18\" y=\"17\" z=\"1\" type=\"0\" /><platform x=\"13\" y=\"12\" z=\"2\" type=\"0\" /><platform x=\"13\" y=\"18\" z=\"2\" type=\"0\" /><platform x=\"14\" y=\"13\" z=\"2\" type=\"6\" /><platform x=\"14\" y=\"17\" z=\"2\" type=\"6\" /><platform x=\"18\" y=\"13\" z=\"2\" type=\"6\" /><platform x=\"18\" y=\"17\" z=\"2\" type=\"6\" /><platform x=\"19\" y=\"12\" z=\"2\" type=\"0\" /><platform x=\"19\" y=\"18\" z=\"2\" type=\"0\" /><platform x=\"12\" y=\"11\" z=\"3\" type=\"7\" /><platform x=\"12\" y=\"12\" z=\"3\" type=\"0\" /><platform x=\"12\" y=\"18\" z=\"3\" type=\"0\" /><platform x=\"12\" y=\"19\" z=\"3\" type=\"7\" /><platform x=\"13\" y=\"11\" z=\"3\" type=\"0\" /><platform x=\"13\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"13\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"13\" y=\"19\" z=\"3\" type=\"0\" /><platform x=\"19\" y=\"11\" z=\"3\" type=\"0\" /><platform x=\"19\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"19\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"19\" y=\"19\" z=\"3\" type=\"0\" /><platform x=\"20\" y=\"11\" z=\"3\" type=\"7\" /><platform x=\"20\" y=\"12\" z=\"3\" type=\"0\" /><platform x=\"20\" y=\"18\" z=\"3\" type=\"0\" /><platform x=\"20\" y=\"19\" z=\"3\" type=\"7\" /><platform x=\"11\" y=\"10\" z=\"4\" type=\"2\" /><platform x=\"11\" y=\"20\" z=\"4\" type=\"2\" /><platform x=\"12\" y=\"11\" z=\"4\" type=\"6\" /><platform x=\"12\" y=\"12\" z=\"4\" type=\"6\" /><platform x=\"12\" y=\"18\" z=\"4\" type=\"6\" /><platform x=\"12\" y=\"19\" z=\"4\" type=\"6\" /><platform x=\"13\" y=\"11\" z=\"4\" type=\"6\" /><platform x=\"13\" y=\"19\" z=\"4\" type=\"6\" /><platform x=\"19\" y=\"11\" z=\"4\" type=\"6\" /><platform x=\"20\" y=\"11\" z=\"4\" type=\"6\" /><platform x=\"20\" y=\"12\" z=\"4\" type=\"6\" /><platform x=\"21\" y=\"10\" z=\"4\" type=\"2\" /><platform x=\"21\" y=\"20\" z=\"4\" type=\"2\" /><platform x=\"10\" y=\"9\" z=\"5\" type=\"0\" /><platform x=\"10\" y=\"21\" z=\"5\" type=\"0\" /><platform x=\"22\" y=\"9\" z=\"5\" type=\"0\" /><platform x=\"22\" y=\"21\" z=\"5\" type=\"0\" /><platform x=\"9\" y=\"8\" z=\"6\" type=\"0\" /><platform x=\"9\" y=\"22\" z=\"6\" type=\"0\" /><platform x=\"10\" y=\"9\" z=\"6\" type=\"6\" /><platform x=\"10\" y=\"21\" z=\"6\" type=\"6\" /><platform x=\"11\" y=\"10\" z=\"6\" type=\"6\" /><platform x=\"11\" y=\"20\" z=\"6\" type=\"6\" /><platform x=\"21\" y=\"10\" z=\"6\" type=\"6\" /><platform x=\"21\" y=\"20\" z=\"6\" type=\"6\" /><platform x=\"22\" y=\"9\" z=\"6\" type=\"6\" /><platform x=\"22\" y=\"21\" z=\"6\" type=\"6\" /><platform x=\"23\" y=\"8\" z=\"6\" type=\"0\" /><platform x=\"23\" y=\"22\" z=\"6\" type=\"0\" /><platform x=\"8\" y=\"7\" z=\"7\" type=\"0\" /><platform x=\"8\" y=\"23\" z=\"7\" type=\"0\" /><platform x=\"9\" y=\"8\" z=\"7\" type=\"6\" /><platform x=\"9\" y=\"22\" z=\"7\" type=\"6\" /><platform x=\"23\" y=\"8\" z=\"7\" type=\"6\" /><platform x=\"23\" y=\"22\" z=\"7\" type=\"6\" /><platform x=\"24\" y=\"7\" z=\"7\" type=\"0\" /><platform x=\"24\" y=\"23\" z=\"7\" type=\"0\" /><platform x=\"7\" y=\"6\" z=\"8\" type=\"0\" /><platform x=\"7\" y=\"24\" z=\"8\" type=\"0\" /><platform x=\"8\" y=\"7\" z=\"8\" type=\"6\" /><platform x=\"8\" y=\"23\" z=\"8\" type=\"6\" /><platform x=\"24\" y=\"7\" z=\"8\" type=\"6\" /><platform x=\"24\" y=\"23\" z=\"8\" type=\"6\" /><platform x=\"25\" y=\"6\" z=\"8\" type=\"0\" /><platform x=\"25\" y=\"24\" z=\"8\" type=\"0\" /><platform x=\"6\" y=\"5\" z=\"9\" type=\"0\" /><platform x=\"6\" y=\"25\" z=\"9\" type=\"0\" /><platform x=\"7\" y=\"6\" z=\"9\" type=\"6\" /><platform x=\"7\" y=\"24\" z=\"9\" type=\"6\" /><platform x=\"25\" y=\"6\" z=\"9\" type=\"6\" /><platform x=\"25\" y=\"24\" z=\"9\" type=\"6\" /><platform x=\"26\" y=\"5\" z=\"9\" type=\"0\" /><platform x=\"26\" y=\"25\" z=\"9\" type=\"0\" /><platform x=\"6\" y=\"5\" z=\"10\" type=\"6\" /><platform x=\"6\" y=\"25\" z=\"10\" type=\"6\" /><platform x=\"7\" y=\"6\" z=\"10\" type=\"0\" /><platform x=\"7\" y=\"24\" z=\"10\" type=\"0\" /><platform x=\"25\" y=\"6\" z=\"10\" type=\"0\" /><platform x=\"25\" y=\"24\" z=\"10\" type=\"0\" /><platform x=\"26\" y=\"5\" z=\"10\" type=\"6\" /><platform x=\"26\" y=\"25\" z=\"10\" type=\"6\" /><platform x=\"7\" y=\"6\" z=\"11\" type=\"6\" /><platform x=\"7\" y=\"24\" z=\"11\" type=\"6\" /><platform x=\"8\" y=\"7\" z=\"11\" type=\"0\" /><platform x=\"8\" y=\"23\" z=\"11\" type=\"0\" /><platform x=\"24\" y=\"7\" z=\"11\" type=\"0\" /><platform x=\"24\" y=\"23\" z=\"11\" type=\"0\" /><platform x=\"25\" y=\"6\" z=\"11\" type=\"6\" /><platform x=\"25\" y=\"24\" z=\"11\" type=\"6\" /><platform x=\"8\" y=\"7\" z=\"12\" type=\"6\" /><platform x=\"8\" y=\"23\" z=\"12\" type=\"6\" /><platform x=\"9\" y=\"8\" z=\"12\" type=\"0\" /><platform x=\"9\" y=\"22\" z=\"12\" type=\"0\" /><platform x=\"15\" y=\"14\" z=\"12\" type=\"0\" /><platform x=\"15\" y=\"15\" z=\"12\" type=\"0\" /><platform x=\"15\" y=\"16\" z=\"12\" type=\"0\" /><platform x=\"16\" y=\"14\" z=\"12\" type=\"0\" /><platform x=\"16\" y=\"16\" z=\"12\" type=\"0\" /><platform x=\"17\" y=\"14\" z=\"12\" type=\"0\" /><platform x=\"17\" y=\"15\" z=\"12\" type=\"0\" /><platform x=\"17\" y=\"16\" z=\"12\" type=\"0\" /><platform x=\"23\" y=\"8\" z=\"12\" type=\"0\" /><platform x=\"23\" y=\"22\" z=\"12\" type=\"0\" /><platform x=\"24\" y=\"7\" z=\"12\" type=\"6\" /><platform x=\"24\" y=\"23\" z=\"12\" type=\"6\" /><platform x=\"9\" y=\"8\" z=\"13\" type=\"6\" /><platform x=\"9\" y=\"22\" z=\"13\" type=\"6\" /><platform x=\"10\" y=\"9\" z=\"13\" type=\"0\" /><platform x=\"10\" y=\"21\" z=\"13\" type=\"0\" /><platform x=\"14\" y=\"13\" z=\"13\" type=\"0\" /><platform x=\"14\" y=\"17\" z=\"13\" type=\"0\" /><platform x=\"15\" y=\"15\" z=\"13\" type=\"6\" /><platform x=\"16\" y=\"14\" z=\"13\" type=\"6\" /><platform x=\"16\" y=\"16\" z=\"13\" type=\"6\" /><platform x=\"17\" y=\"14\" z=\"13\" type=\"-1\" /><platform x=\"17\" y=\"15\" z=\"13\" type=\"6\" /><platform x=\"18\" y=\"13\" z=\"13\" type=\"0\" /><platform x=\"18\" y=\"17\" z=\"13\" type=\"0\" /><platform x=\"22\" y=\"9\" z=\"13\" type=\"0\" /><platform x=\"22\" y=\"21\" z=\"13\" type=\"0\" /><platform x=\"23\" y=\"8\" z=\"13\" type=\"6\" /><platform x=\"23\" y=\"22\" z=\"13\" type=\"6\" /><platform x=\"10\" y=\"9\" z=\"14\" type=\"6\" /><platform x=\"10\" y=\"21\" z=\"14\" type=\"6\" /><platform x=\"11\" y=\"10\" z=\"14\" type=\"0\" /><platform x=\"11\" y=\"20\" z=\"14\" type=\"0\" /><platform x=\"13\" y=\"12\" z=\"14\" type=\"0\" /><platform x=\"13\" y=\"18\" z=\"14\" type=\"0\" /><platform x=\"14\" y=\"13\" z=\"14\" type=\"6\" /><platform x=\"14\" y=\"17\" z=\"14\" type=\"6\" /><platform x=\"18\" y=\"13\" z=\"14\" type=\"6\" /><platform x=\"18\" y=\"17\" z=\"14\" type=\"6\" /><platform x=\"19\" y=\"12\" z=\"14\" type=\"0\" /><platform x=\"19\" y=\"18\" z=\"14\" type=\"0\" /><platform x=\"21\" y=\"10\" z=\"14\" type=\"0\" /><platform x=\"21\" y=\"20\" z=\"14\" type=\"0\" /><platform x=\"22\" y=\"9\" z=\"14\" type=\"6\" /><platform x=\"22\" y=\"21\" z=\"14\" type=\"6\" /><platform x=\"11\" y=\"10\" z=\"15\" type=\"6\" /><platform x=\"11\" y=\"20\" z=\"15\" type=\"6\" /><platform x=\"12\" y=\"11\" z=\"15\" type=\"0\" /><platform x=\"12\" y=\"19\" z=\"15\" type=\"0\" /><platform x=\"13\" y=\"12\" z=\"15\" type=\"6\" /><platform x=\"13\" y=\"18\" z=\"15\" type=\"6\" /><platform x=\"19\" y=\"12\" z=\"15\" type=\"6\" /><platform x=\"19\" y=\"18\" z=\"15\" type=\"6\" /><platform x=\"20\" y=\"11\" z=\"15\" type=\"0\" /><platform x=\"20\" y=\"19\" z=\"15\" type=\"0\" /><platform x=\"21\" y=\"10\" z=\"15\" type=\"6\" /><platform x=\"21\" y=\"20\" z=\"15\" type=\"6\" /></map>"); map.push("<map name=\"21. PENTHOUSE\"><platform x=\"1\" y=\"1\" z=\"0\" type=\"0\" /><platform x=\"1\" y=\"2\" z=\"0\" type=\"0\" /><platform x=\"1\" y=\"3\" z=\"0\" type=\"0\" /><platform x=\"1\" y=\"4\" z=\"0\" type=\"1\" /><platform x=\"1\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"1\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"1\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"1\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"1\" y=\"27\" z=\"0\" type=\"1\" /><platform x=\"1\" y=\"28\" z=\"0\" type=\"0\" /><platform x=\"1\" y=\"29\" z=\"0\" type=\"0\" /><platform x=\"1\" y=\"30\" z=\"0\" type=\"0\" /><platform x=\"2\" y=\"1\" z=\"0\" type=\"0\" /><platform x=\"2\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"2\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"2\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"2\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"2\" y=\"30\" z=\"0\" type=\"0\" /><platform x=\"3\" y=\"1\" z=\"0\" type=\"0\" /><platform x=\"3\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"3\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"3\" y=\"30\" z=\"0\" type=\"0\" /><platform x=\"4\" y=\"1\" z=\"0\" type=\"1\" /><platform x=\"4\" y=\"15\" z=\"0\" type=\"1\" /><platform x=\"4\" y=\"16\" z=\"0\" type=\"1\" /><platform x=\"4\" y=\"30\" z=\"0\" type=\"1\" /><platform x=\"10\" y=\"1\" z=\"0\" type=\"1\" /><platform x=\"10\" y=\"30\" z=\"0\" type=\"1\" /><platform x=\"14\" y=\"1\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"2\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"14\" z=\"0\" type=\"7\" /><platform x=\"14\" y=\"15\" z=\"0\" type=\"7\" /><platform x=\"14\" y=\"16\" z=\"0\" type=\"7\" /><platform x=\"14\" y=\"17\" z=\"0\" type=\"7\" /><platform x=\"14\" y=\"29\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"30\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"1\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"2\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"3\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"4\" z=\"0\" type=\"1\" /><platform x=\"15\" y=\"14\" z=\"0\" type=\"7\" /><platform x=\"15\" y=\"15\" z=\"0\" type=\"4\" /><platform x=\"15\" y=\"16\" z=\"0\" type=\"4\" /><platform x=\"15\" y=\"17\" z=\"0\" type=\"7\" /><platform x=\"15\" y=\"27\" z=\"0\" type=\"1\" /><platform x=\"15\" y=\"28\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"29\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"30\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"1\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"2\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"3\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"4\" z=\"0\" type=\"1\" /><platform x=\"16\" y=\"14\" z=\"0\" type=\"7\" /><platform x=\"16\" y=\"15\" z=\"0\" type=\"4\" /><platform x=\"16\" y=\"16\" z=\"0\" type=\"4\" /><platform x=\"16\" y=\"17\" z=\"0\" type=\"7\" /><platform x=\"16\" y=\"27\" z=\"0\" type=\"1\" /><platform x=\"16\" y=\"28\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"29\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"30\" z=\"0\" type=\"0\" /><platform x=\"17\" y=\"1\" z=\"0\" type=\"0\" /><platform x=\"17\" y=\"2\" z=\"0\" type=\"0\" /><platform x=\"17\" y=\"14\" z=\"0\" type=\"7\" /><platform x=\"17\" y=\"15\" z=\"0\" type=\"7\" /><platform x=\"17\" y=\"16\" z=\"0\" type=\"7\" /><platform x=\"17\" y=\"17\" z=\"0\" type=\"7\" /><platform x=\"17\" y=\"29\" z=\"0\" type=\"0\" /><platform x=\"17\" y=\"30\" z=\"0\" type=\"0\" /><platform x=\"21\" y=\"1\" z=\"0\" type=\"1\" /><platform x=\"21\" y=\"30\" z=\"0\" type=\"1\" /><platform x=\"27\" y=\"1\" z=\"0\" type=\"1\" /><platform x=\"27\" y=\"15\" z=\"0\" type=\"1\" /><platform x=\"27\" y=\"16\" z=\"0\" type=\"1\" /><platform x=\"27\" y=\"30\" z=\"0\" type=\"1\" /><platform x=\"28\" y=\"1\" z=\"0\" type=\"0\" /><platform x=\"28\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"28\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"28\" y=\"30\" z=\"0\" type=\"0\" /><platform x=\"29\" y=\"1\" z=\"0\" type=\"0\" /><platform x=\"29\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"29\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"29\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"29\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"29\" y=\"30\" z=\"0\" type=\"0\" /><platform x=\"30\" y=\"1\" z=\"0\" type=\"0\" /><platform x=\"30\" y=\"2\" z=\"0\" type=\"0\" /><platform x=\"30\" y=\"3\" z=\"0\" type=\"0\" /><platform x=\"30\" y=\"4\" z=\"0\" type=\"1\" /><platform x=\"30\" y=\"10\" z=\"0\" type=\"1\" /><platform x=\"30\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"30\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"30\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"30\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"30\" y=\"21\" z=\"0\" type=\"1\" /><platform x=\"30\" y=\"27\" z=\"0\" type=\"1\" /><platform x=\"30\" y=\"28\" z=\"0\" type=\"0\" /><platform x=\"30\" y=\"29\" z=\"0\" type=\"0\" /><platform x=\"30\" y=\"30\" z=\"0\" type=\"0\" /><platform x=\"1\" y=\"1\" z=\"1\" type=\"6\" /><platform x=\"1\" y=\"2\" z=\"1\" type=\"6\" /><platform x=\"1\" y=\"3\" z=\"1\" type=\"6\" /><platform x=\"1\" y=\"4\" z=\"1\" type=\"6\" /><platform x=\"1\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"1\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"1\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"1\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"1\" y=\"27\" z=\"1\" type=\"6\" /><platform x=\"1\" y=\"28\" z=\"1\" type=\"6\" /><platform x=\"1\" y=\"29\" z=\"1\" type=\"6\" /><platform x=\"1\" y=\"30\" z=\"1\" type=\"-1\" /><platform x=\"2\" y=\"1\" z=\"1\" type=\"6\" /><platform x=\"2\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"2\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"2\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"2\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"2\" y=\"30\" z=\"1\" type=\"6\" /><platform x=\"3\" y=\"1\" z=\"1\" type=\"6\" /><platform x=\"3\" y=\"30\" z=\"1\" type=\"6\" /><platform x=\"4\" y=\"1\" z=\"1\" type=\"6\" /><platform x=\"4\" y=\"30\" z=\"1\" type=\"6\" /><platform x=\"10\" y=\"1\" z=\"1\" type=\"6\" /><platform x=\"10\" y=\"30\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"1\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"2\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"29\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"30\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"1\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"2\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"29\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"30\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"1\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"2\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"29\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"30\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"1\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"2\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"29\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"30\" z=\"1\" type=\"6\" /><platform x=\"21\" y=\"1\" z=\"1\" type=\"6\" /><platform x=\"21\" y=\"30\" z=\"1\" type=\"6\" /><platform x=\"27\" y=\"1\" z=\"1\" type=\"6\" /><platform x=\"27\" y=\"30\" z=\"1\" type=\"6\" /><platform x=\"28\" y=\"1\" z=\"1\" type=\"6\" /><platform x=\"28\" y=\"30\" z=\"1\" type=\"6\" /><platform x=\"29\" y=\"1\" z=\"1\" type=\"6\" /><platform x=\"29\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"29\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"29\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"29\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"29\" y=\"30\" z=\"1\" type=\"6\" /><platform x=\"30\" y=\"1\" z=\"1\" type=\"6\" /><platform x=\"30\" y=\"2\" z=\"1\" type=\"6\" /><platform x=\"30\" y=\"3\" z=\"1\" type=\"6\" /><platform x=\"30\" y=\"4\" z=\"1\" type=\"6\" /><platform x=\"30\" y=\"10\" z=\"1\" type=\"6\" /><platform x=\"30\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"30\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"30\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"30\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"30\" y=\"21\" z=\"1\" type=\"6\" /><platform x=\"30\" y=\"27\" z=\"1\" type=\"6\" /><platform x=\"30\" y=\"28\" z=\"1\" type=\"6\" /><platform x=\"30\" y=\"29\" z=\"1\" type=\"6\" /><platform x=\"30\" y=\"30\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"16\" y=\"16\" z=\"3\" type=\"6\" /><platform x=\"4\" y=\"14\" z=\"4\" type=\"0\" /><platform x=\"4\" y=\"15\" z=\"4\" type=\"0\" /><platform x=\"4\" y=\"16\" z=\"4\" type=\"0\" /><platform x=\"4\" y=\"17\" z=\"4\" type=\"0\" /><platform x=\"14\" y=\"5\" z=\"4\" type=\"0\" /><platform x=\"14\" y=\"27\" z=\"4\" type=\"0\" /><platform x=\"15\" y=\"5\" z=\"4\" type=\"0\" /><platform x=\"15\" y=\"27\" z=\"4\" type=\"0\" /><platform x=\"16\" y=\"5\" z=\"4\" type=\"0\" /><platform x=\"16\" y=\"16\" z=\"4\" type=\"6\" /><platform x=\"16\" y=\"27\" z=\"4\" type=\"0\" /><platform x=\"17\" y=\"5\" z=\"4\" type=\"0\" /><platform x=\"17\" y=\"27\" z=\"4\" type=\"0\" /><platform x=\"27\" y=\"14\" z=\"4\" type=\"0\" /><platform x=\"27\" y=\"15\" z=\"4\" type=\"0\" /><platform x=\"27\" y=\"16\" z=\"4\" type=\"0\" /><platform x=\"27\" y=\"17\" z=\"4\" type=\"0\" /><platform x=\"5\" y=\"14\" z=\"5\" type=\"0\" /><platform x=\"5\" y=\"17\" z=\"5\" type=\"0\" /><platform x=\"7\" y=\"14\" z=\"5\" type=\"0\" /><platform x=\"7\" y=\"17\" z=\"5\" type=\"0\" /><platform x=\"14\" y=\"6\" z=\"5\" type=\"0\" /><platform x=\"14\" y=\"8\" z=\"5\" type=\"0\" /><platform x=\"14\" y=\"24\" z=\"5\" type=\"0\" /><platform x=\"14\" y=\"26\" z=\"5\" type=\"0\" /><platform x=\"16\" y=\"16\" z=\"5\" type=\"6\" /><platform x=\"17\" y=\"6\" z=\"5\" type=\"0\" /><platform x=\"17\" y=\"8\" z=\"5\" type=\"0\" /><platform x=\"17\" y=\"24\" z=\"5\" type=\"0\" /><platform x=\"17\" y=\"26\" z=\"5\" type=\"0\" /><platform x=\"24\" y=\"14\" z=\"5\" type=\"0\" /><platform x=\"24\" y=\"17\" z=\"5\" type=\"0\" /><platform x=\"26\" y=\"14\" z=\"5\" type=\"0\" /><platform x=\"26\" y=\"17\" z=\"5\" type=\"0\" /><platform x=\"8\" y=\"13\" z=\"6\" type=\"0\" /><platform x=\"8\" y=\"14\" z=\"6\" type=\"0\" /><platform x=\"8\" y=\"17\" z=\"6\" type=\"0\" /><platform x=\"8\" y=\"18\" z=\"6\" type=\"0\" /><platform x=\"13\" y=\"9\" z=\"6\" type=\"0\" /><platform x=\"13\" y=\"23\" z=\"6\" type=\"0\" /><platform x=\"14\" y=\"9\" z=\"6\" type=\"0\" /><platform x=\"14\" y=\"23\" z=\"6\" type=\"0\" /><platform x=\"16\" y=\"16\" z=\"6\" type=\"6\" /><platform x=\"17\" y=\"9\" z=\"6\" type=\"0\" /><platform x=\"17\" y=\"23\" z=\"6\" type=\"0\" /><platform x=\"18\" y=\"9\" z=\"6\" type=\"0\" /><platform x=\"18\" y=\"23\" z=\"6\" type=\"0\" /><platform x=\"23\" y=\"13\" z=\"6\" type=\"0\" /><platform x=\"23\" y=\"14\" z=\"6\" type=\"0\" /><platform x=\"23\" y=\"17\" z=\"6\" type=\"0\" /><platform x=\"23\" y=\"18\" z=\"6\" type=\"0\" /><platform x=\"8\" y=\"13\" z=\"7\" type=\"6\" /><platform x=\"8\" y=\"14\" z=\"7\" type=\"6\" /><platform x=\"8\" y=\"17\" z=\"7\" type=\"6\" /><platform x=\"8\" y=\"18\" z=\"7\" type=\"6\" /><platform x=\"9\" y=\"11\" z=\"7\" type=\"0\" /><platform x=\"9\" y=\"12\" z=\"7\" type=\"0\" /><platform x=\"9\" y=\"19\" z=\"7\" type=\"0\" /><platform x=\"9\" y=\"20\" z=\"7\" type=\"0\" /><platform x=\"9\" y=\"21\" z=\"7\" type=\"0\" /><platform x=\"11\" y=\"10\" z=\"7\" type=\"0\" /><platform x=\"11\" y=\"22\" z=\"7\" type=\"0\" /><platform x=\"12\" y=\"10\" z=\"7\" type=\"0\" /><platform x=\"12\" y=\"22\" z=\"7\" type=\"0\" /><platform x=\"13\" y=\"9\" z=\"7\" type=\"6\" /><platform x=\"13\" y=\"23\" z=\"7\" type=\"6\" /><platform x=\"14\" y=\"9\" z=\"7\" type=\"6\" /><platform x=\"14\" y=\"23\" z=\"7\" type=\"6\" /><platform x=\"16\" y=\"16\" z=\"7\" type=\"6\" /><platform x=\"17\" y=\"9\" z=\"7\" type=\"6\" /><platform x=\"17\" y=\"23\" z=\"7\" type=\"6\" /><platform x=\"18\" y=\"9\" z=\"7\" type=\"6\" /><platform x=\"18\" y=\"23\" z=\"7\" type=\"6\" /><platform x=\"19\" y=\"10\" z=\"7\" type=\"0\" /><platform x=\"19\" y=\"22\" z=\"7\" type=\"0\" /><platform x=\"20\" y=\"10\" z=\"7\" type=\"0\" /><platform x=\"20\" y=\"22\" z=\"7\" type=\"0\" /><platform x=\"22\" y=\"11\" z=\"7\" type=\"0\" /><platform x=\"22\" y=\"12\" z=\"7\" type=\"0\" /><platform x=\"22\" y=\"19\" z=\"7\" type=\"0\" /><platform x=\"22\" y=\"20\" z=\"7\" type=\"0\" /><platform x=\"22\" y=\"21\" z=\"7\" type=\"0\" /><platform x=\"23\" y=\"13\" z=\"7\" type=\"6\" /><platform x=\"23\" y=\"14\" z=\"7\" type=\"6\" /><platform x=\"23\" y=\"17\" z=\"7\" type=\"6\" /><platform x=\"23\" y=\"18\" z=\"7\" type=\"6\" /><platform x=\"10\" y=\"11\" z=\"8\" type=\"0\" /><platform x=\"10\" y=\"21\" z=\"8\" type=\"0\" /><platform x=\"16\" y=\"16\" z=\"8\" type=\"6\" /><platform x=\"21\" y=\"11\" z=\"8\" type=\"0\" /><platform x=\"21\" y=\"21\" z=\"8\" type=\"0\" /><platform x=\"11\" y=\"12\" z=\"9\" type=\"0\" /><platform x=\"11\" y=\"20\" z=\"9\" type=\"0\" /><platform x=\"16\" y=\"16\" z=\"9\" type=\"6\" /><platform x=\"20\" y=\"12\" z=\"9\" type=\"0\" /><platform x=\"20\" y=\"20\" z=\"9\" type=\"0\" /><platform x=\"12\" y=\"13\" z=\"10\" type=\"0\" /><platform x=\"12\" y=\"14\" z=\"10\" type=\"0\" /><platform x=\"12\" y=\"15\" z=\"10\" type=\"0\" /><platform x=\"12\" y=\"16\" z=\"10\" type=\"0\" /><platform x=\"12\" y=\"17\" z=\"10\" type=\"0\" /><platform x=\"12\" y=\"18\" z=\"10\" type=\"0\" /><platform x=\"12\" y=\"19\" z=\"10\" type=\"0\" /><platform x=\"13\" y=\"13\" z=\"10\" type=\"0\" /><platform x=\"13\" y=\"14\" z=\"10\" type=\"0\" /><platform x=\"13\" y=\"15\" z=\"10\" type=\"0\" /><platform x=\"13\" y=\"16\" z=\"10\" type=\"0\" /><platform x=\"13\" y=\"17\" z=\"10\" type=\"0\" /><platform x=\"13\" y=\"18\" z=\"10\" type=\"0\" /><platform x=\"13\" y=\"19\" z=\"10\" type=\"0\" /><platform x=\"14\" y=\"13\" z=\"10\" type=\"0\" /><platform x=\"14\" y=\"14\" z=\"10\" type=\"0\" /><platform x=\"14\" y=\"15\" z=\"10\" type=\"0\" /><platform x=\"14\" y=\"16\" z=\"10\" type=\"0\" /><platform x=\"14\" y=\"17\" z=\"10\" type=\"0\" /><platform x=\"14\" y=\"18\" z=\"10\" type=\"0\" /><platform x=\"14\" y=\"19\" z=\"10\" type=\"0\" /><platform x=\"15\" y=\"13\" z=\"10\" type=\"0\" /><platform x=\"15\" y=\"14\" z=\"10\" type=\"0\" /><platform x=\"15\" y=\"15\" z=\"10\" type=\"0\" /><platform x=\"15\" y=\"16\" z=\"10\" type=\"0\" /><platform x=\"15\" y=\"17\" z=\"10\" type=\"0\" /><platform x=\"15\" y=\"18\" z=\"10\" type=\"0\" /><platform x=\"15\" y=\"19\" z=\"10\" type=\"0\" /><platform x=\"16\" y=\"13\" z=\"10\" type=\"0\" /><platform x=\"16\" y=\"14\" z=\"10\" type=\"0\" /><platform x=\"16\" y=\"15\" z=\"10\" type=\"0\" /><platform x=\"16\" y=\"16\" z=\"10\" type=\"6\" /><platform x=\"16\" y=\"17\" z=\"10\" type=\"0\" /><platform x=\"16\" y=\"18\" z=\"10\" type=\"0\" /><platform x=\"16\" y=\"19\" z=\"10\" type=\"0\" /><platform x=\"17\" y=\"13\" z=\"10\" type=\"0\" /><platform x=\"17\" y=\"14\" z=\"10\" type=\"0\" /><platform x=\"17\" y=\"15\" z=\"10\" type=\"0\" /><platform x=\"17\" y=\"16\" z=\"10\" type=\"0\" /><platform x=\"17\" y=\"17\" z=\"10\" type=\"0\" /><platform x=\"17\" y=\"18\" z=\"10\" type=\"0\" /><platform x=\"17\" y=\"19\" z=\"10\" type=\"0\" /><platform x=\"18\" y=\"13\" z=\"10\" type=\"0\" /><platform x=\"18\" y=\"14\" z=\"10\" type=\"0\" /><platform x=\"18\" y=\"15\" z=\"10\" type=\"0\" /><platform x=\"18\" y=\"16\" z=\"10\" type=\"0\" /><platform x=\"18\" y=\"17\" z=\"10\" type=\"0\" /><platform x=\"18\" y=\"18\" z=\"10\" type=\"0\" /><platform x=\"18\" y=\"19\" z=\"10\" type=\"0\" /><platform x=\"19\" y=\"13\" z=\"10\" type=\"0\" /><platform x=\"19\" y=\"14\" z=\"10\" type=\"0\" /><platform x=\"19\" y=\"15\" z=\"10\" type=\"0\" /><platform x=\"19\" y=\"16\" z=\"10\" type=\"0\" /><platform x=\"19\" y=\"17\" z=\"10\" type=\"0\" /><platform x=\"19\" y=\"18\" z=\"10\" type=\"0\" /><platform x=\"19\" y=\"19\" z=\"10\" type=\"0\" /><platform x=\"12\" y=\"13\" z=\"11\" type=\"6\" /><platform x=\"12\" y=\"14\" z=\"11\" type=\"6\" /><platform x=\"12\" y=\"15\" z=\"11\" type=\"6\" /><platform x=\"12\" y=\"16\" z=\"11\" type=\"6\" /><platform x=\"12\" y=\"17\" z=\"11\" type=\"6\" /><platform x=\"12\" y=\"18\" z=\"11\" type=\"6\" /><platform x=\"12\" y=\"19\" z=\"11\" type=\"6\" /><platform x=\"13\" y=\"13\" z=\"11\" type=\"6\" /><platform x=\"13\" y=\"14\" z=\"11\" type=\"6\" /><platform x=\"13\" y=\"15\" z=\"11\" type=\"6\" /><platform x=\"13\" y=\"16\" z=\"11\" type=\"6\" /><platform x=\"13\" y=\"17\" z=\"11\" type=\"6\" /><platform x=\"13\" y=\"18\" z=\"11\" type=\"6\" /><platform x=\"13\" y=\"19\" z=\"11\" type=\"6\" /><platform x=\"14\" y=\"13\" z=\"11\" type=\"6\" /><platform x=\"14\" y=\"14\" z=\"11\" type=\"6\" /><platform x=\"14\" y=\"15\" z=\"11\" type=\"6\" /><platform x=\"14\" y=\"16\" z=\"11\" type=\"6\" /><platform x=\"14\" y=\"17\" z=\"11\" type=\"6\" /><platform x=\"14\" y=\"18\" z=\"11\" type=\"6\" /><platform x=\"14\" y=\"19\" z=\"11\" type=\"6\" /><platform x=\"15\" y=\"13\" z=\"11\" type=\"6\" /><platform x=\"15\" y=\"14\" z=\"11\" type=\"6\" /><platform x=\"15\" y=\"15\" z=\"11\" type=\"6\" /><platform x=\"15\" y=\"16\" z=\"11\" type=\"6\" /><platform x=\"15\" y=\"17\" z=\"11\" type=\"6\" /><platform x=\"15\" y=\"18\" z=\"11\" type=\"6\" /><platform x=\"15\" y=\"19\" z=\"11\" type=\"6\" /><platform x=\"16\" y=\"13\" z=\"11\" type=\"6\" /><platform x=\"16\" y=\"14\" z=\"11\" type=\"6\" /><platform x=\"16\" y=\"15\" z=\"11\" type=\"6\" /><platform x=\"16\" y=\"16\" z=\"11\" type=\"6\" /><platform x=\"16\" y=\"17\" z=\"11\" type=\"6\" /><platform x=\"16\" y=\"18\" z=\"11\" type=\"6\" /><platform x=\"16\" y=\"19\" z=\"11\" type=\"6\" /><platform x=\"17\" y=\"13\" z=\"11\" type=\"6\" /><platform x=\"17\" y=\"14\" z=\"11\" type=\"6\" /><platform x=\"17\" y=\"15\" z=\"11\" type=\"6\" /><platform x=\"17\" y=\"16\" z=\"11\" type=\"6\" /><platform x=\"17\" y=\"17\" z=\"11\" type=\"6\" /><platform x=\"17\" y=\"18\" z=\"11\" type=\"6\" /><platform x=\"17\" y=\"19\" z=\"11\" type=\"6\" /><platform x=\"18\" y=\"13\" z=\"11\" type=\"6\" /><platform x=\"18\" y=\"14\" z=\"11\" type=\"6\" /><platform x=\"18\" y=\"15\" z=\"11\" type=\"6\" /><platform x=\"18\" y=\"16\" z=\"11\" type=\"6\" /><platform x=\"18\" y=\"17\" z=\"11\" type=\"6\" /><platform x=\"18\" y=\"18\" z=\"11\" type=\"6\" /><platform x=\"18\" y=\"19\" z=\"11\" type=\"6\" /><platform x=\"19\" y=\"13\" z=\"11\" type=\"6\" /><platform x=\"19\" y=\"14\" z=\"11\" type=\"6\" /><platform x=\"19\" y=\"15\" z=\"11\" type=\"6\" /><platform x=\"19\" y=\"16\" z=\"11\" type=\"6\" /><platform x=\"19\" y=\"17\" z=\"11\" type=\"6\" /><platform x=\"19\" y=\"18\" z=\"11\" type=\"6\" /><platform x=\"19\" y=\"19\" z=\"11\" type=\"6\" /><platform x=\"16\" y=\"16\" z=\"12\" type=\"6\" /></map>"); map.push("<map name=\"22. BEANSTALK\"><platform x=\"15\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"15\" z=\"1\" type=\"0\" /><platform x=\"15\" y=\"16\" z=\"1\" type=\"-1\" /><platform x=\"15\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"16\" y=\"15\" z=\"2\" type=\"0\" /><platform x=\"16\" y=\"15\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"16\" z=\"3\" type=\"0\" /><platform x=\"15\" y=\"16\" z=\"4\" type=\"0\" /><platform x=\"16\" y=\"16\" z=\"4\" type=\"6\" /><platform x=\"15\" y=\"15\" z=\"5\" type=\"0\" /><platform x=\"15\" y=\"16\" z=\"5\" type=\"6\" /><platform x=\"15\" y=\"15\" z=\"6\" type=\"6\" /><platform x=\"16\" y=\"15\" z=\"6\" type=\"0\" /><platform x=\"16\" y=\"15\" z=\"7\" type=\"6\" /><platform x=\"16\" y=\"16\" z=\"7\" type=\"0\" /><platform x=\"15\" y=\"16\" z=\"8\" type=\"0\" /><platform x=\"16\" y=\"16\" z=\"8\" type=\"6\" /><platform x=\"15\" y=\"15\" z=\"9\" type=\"0\" /><platform x=\"15\" y=\"16\" z=\"9\" type=\"6\" /><platform x=\"15\" y=\"15\" z=\"10\" type=\"6\" /><platform x=\"16\" y=\"15\" z=\"10\" type=\"0\" /><platform x=\"16\" y=\"15\" z=\"11\" type=\"6\" /><platform x=\"16\" y=\"16\" z=\"11\" type=\"0\" /><platform x=\"15\" y=\"16\" z=\"12\" type=\"0\" /><platform x=\"16\" y=\"16\" z=\"12\" type=\"6\" /><platform x=\"15\" y=\"15\" z=\"13\" type=\"0\" /><platform x=\"15\" y=\"16\" z=\"13\" type=\"6\" /><platform x=\"15\" y=\"15\" z=\"14\" type=\"6\" /><platform x=\"16\" y=\"15\" z=\"14\" type=\"0\" /><platform x=\"16\" y=\"15\" z=\"15\" type=\"6\" /><platform x=\"16\" y=\"16\" z=\"15\" type=\"4\" /></map>"); map.push("<map name=\"23. WEB\"><platform x=\"0\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"0\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"2\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"2\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"4\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"4\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"0\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"2\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"4\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"6\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"8\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"10\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"19\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"21\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"25\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"27\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"29\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"31\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"0\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"2\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"4\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"6\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"8\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"10\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"19\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"21\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"25\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"27\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"29\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"31\" z=\"0\" type=\"0\" /><platform x=\"17\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"17\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"19\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"19\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"21\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"21\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"23\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"23\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"25\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"25\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"27\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"27\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"29\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"29\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"31\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"31\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"0\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"0\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"2\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"2\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"4\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"4\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"6\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"6\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"8\" y=\"8\" z=\"1\" type=\"0\" /><platform x=\"8\" y=\"9\" z=\"1\" type=\"0\" /><platform x=\"8\" y=\"10\" z=\"1\" type=\"0\" /><platform x=\"8\" y=\"11\" z=\"1\" type=\"0\" /><platform x=\"8\" y=\"12\" z=\"1\" type=\"0\" /><platform x=\"8\" y=\"13\" z=\"1\" type=\"0\" /><platform x=\"8\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"8\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"8\" z=\"1\" type=\"0\" /><platform x=\"10\" y=\"8\" z=\"1\" type=\"0\" /><platform x=\"10\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"10\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"8\" z=\"1\" type=\"0\" /><platform x=\"12\" y=\"8\" z=\"1\" type=\"0\" /><platform x=\"12\" y=\"12\" z=\"1\" type=\"0\" /><platform x=\"12\" y=\"13\" z=\"1\" type=\"0\" /><platform x=\"12\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"18\" z=\"1\" type=\"0\" /><platform x=\"12\" y=\"19\" z=\"1\" type=\"0\" /><platform x=\"13\" y=\"8\" z=\"1\" type=\"0\" /><platform x=\"13\" y=\"12\" z=\"1\" type=\"0\" /><platform x=\"13\" y=\"19\" z=\"1\" type=\"0\" /><platform x=\"14\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"0\" z=\"1\" type=\"-1\" /><platform x=\"15\" y=\"2\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"4\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"6\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"8\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"10\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"21\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"23\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"25\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"27\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"29\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"31\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"0\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"2\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"4\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"6\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"8\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"10\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"21\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"23\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"25\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"27\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"29\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"31\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"12\" z=\"1\" type=\"0\" /><platform x=\"18\" y=\"19\" z=\"1\" type=\"0\" /><platform x=\"18\" y=\"23\" z=\"1\" type=\"0\" /><platform x=\"19\" y=\"12\" z=\"1\" type=\"0\" /><platform x=\"19\" y=\"13\" z=\"1\" type=\"0\" /><platform x=\"19\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"19\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"19\" y=\"18\" z=\"1\" type=\"0\" /><platform x=\"19\" y=\"19\" z=\"1\" type=\"0\" /><platform x=\"19\" y=\"23\" z=\"1\" type=\"0\" /><platform x=\"20\" y=\"23\" z=\"1\" type=\"0\" /><platform x=\"21\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"21\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"21\" y=\"23\" z=\"1\" type=\"0\" /><platform x=\"22\" y=\"23\" z=\"1\" type=\"0\" /><platform x=\"23\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"23\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"23\" y=\"18\" z=\"1\" type=\"0\" /><platform x=\"23\" y=\"19\" z=\"1\" type=\"0\" /><platform x=\"23\" y=\"20\" z=\"1\" type=\"0\" /><platform x=\"23\" y=\"21\" z=\"1\" type=\"0\" /><platform x=\"23\" y=\"22\" z=\"1\" type=\"0\" /><platform x=\"23\" y=\"23\" z=\"1\" type=\"0\" /><platform x=\"25\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"25\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"27\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"27\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"29\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"29\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"31\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"31\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"8\" y=\"9\" z=\"2\" type=\"6\" /><platform x=\"8\" y=\"10\" z=\"2\" type=\"6\" /><platform x=\"8\" y=\"11\" z=\"2\" type=\"6\" /><platform x=\"8\" y=\"12\" z=\"2\" type=\"6\" /><platform x=\"9\" y=\"8\" z=\"2\" type=\"6\" /><platform x=\"10\" y=\"8\" z=\"2\" type=\"6\" /><platform x=\"10\" y=\"10\" z=\"2\" type=\"0\" /><platform x=\"10\" y=\"11\" z=\"2\" type=\"0\" /><platform x=\"10\" y=\"12\" z=\"2\" type=\"0\" /><platform x=\"10\" y=\"13\" z=\"2\" type=\"0\" /><platform x=\"10\" y=\"18\" z=\"2\" type=\"0\" /><platform x=\"10\" y=\"19\" z=\"2\" type=\"0\" /><platform x=\"10\" y=\"20\" z=\"2\" type=\"0\" /><platform x=\"10\" y=\"21\" z=\"2\" type=\"0\" /><platform x=\"11\" y=\"8\" z=\"2\" type=\"6\" /><platform x=\"11\" y=\"10\" z=\"2\" type=\"0\" /><platform x=\"11\" y=\"21\" z=\"2\" type=\"0\" /><platform x=\"12\" y=\"8\" z=\"2\" type=\"6\" /><platform x=\"12\" y=\"10\" z=\"2\" type=\"0\" /><platform x=\"12\" y=\"12\" z=\"2\" type=\"6\" /><platform x=\"12\" y=\"13\" z=\"2\" type=\"6\" /><platform x=\"12\" y=\"18\" z=\"2\" type=\"6\" /><platform x=\"12\" y=\"19\" z=\"2\" type=\"6\" /><platform x=\"12\" y=\"21\" z=\"2\" type=\"0\" /><platform x=\"13\" y=\"10\" z=\"2\" type=\"0\" /><platform x=\"13\" y=\"12\" z=\"2\" type=\"6\" /><platform x=\"13\" y=\"19\" z=\"2\" type=\"6\" /><platform x=\"13\" y=\"21\" z=\"2\" type=\"0\" /><platform x=\"18\" y=\"10\" z=\"2\" type=\"0\" /><platform x=\"18\" y=\"12\" z=\"2\" type=\"6\" /><platform x=\"18\" y=\"19\" z=\"2\" type=\"6\" /><platform x=\"18\" y=\"21\" z=\"2\" type=\"0\" /><platform x=\"19\" y=\"10\" z=\"2\" type=\"0\" /><platform x=\"19\" y=\"12\" z=\"2\" type=\"6\" /><platform x=\"19\" y=\"13\" z=\"2\" type=\"6\" /><platform x=\"19\" y=\"18\" z=\"2\" type=\"6\" /><platform x=\"19\" y=\"19\" z=\"2\" type=\"6\" /><platform x=\"19\" y=\"21\" z=\"2\" type=\"0\" /><platform x=\"19\" y=\"23\" z=\"2\" type=\"6\" /><platform x=\"20\" y=\"10\" z=\"2\" type=\"0\" /><platform x=\"20\" y=\"21\" z=\"2\" type=\"0\" /><platform x=\"20\" y=\"23\" z=\"2\" type=\"6\" /><platform x=\"21\" y=\"10\" z=\"2\" type=\"0\" /><platform x=\"21\" y=\"11\" z=\"2\" type=\"0\" /><platform x=\"21\" y=\"12\" z=\"2\" type=\"0\" /><platform x=\"21\" y=\"13\" z=\"2\" type=\"0\" /><platform x=\"21\" y=\"18\" z=\"2\" type=\"0\" /><platform x=\"21\" y=\"19\" z=\"2\" type=\"0\" /><platform x=\"21\" y=\"20\" z=\"2\" type=\"0\" /><platform x=\"21\" y=\"21\" z=\"2\" type=\"0\" /><platform x=\"21\" y=\"23\" z=\"2\" type=\"6\" /><platform x=\"22\" y=\"23\" z=\"2\" type=\"6\" /><platform x=\"23\" y=\"19\" z=\"2\" type=\"6\" /><platform x=\"23\" y=\"20\" z=\"2\" type=\"6\" /><platform x=\"23\" y=\"21\" z=\"2\" type=\"6\" /><platform x=\"23\" y=\"22\" z=\"2\" type=\"6\" /><platform x=\"8\" y=\"8\" z=\"3\" type=\"5\" /><platform x=\"8\" y=\"13\" z=\"3\" type=\"5\" /><platform x=\"8\" y=\"18\" z=\"3\" type=\"0\" /><platform x=\"8\" y=\"19\" z=\"3\" type=\"0\" /><platform x=\"8\" y=\"20\" z=\"3\" type=\"0\" /><platform x=\"8\" y=\"21\" z=\"3\" type=\"0\" /><platform x=\"8\" y=\"22\" z=\"3\" type=\"0\" /><platform x=\"8\" y=\"23\" z=\"3\" type=\"0\" /><platform x=\"9\" y=\"23\" z=\"3\" type=\"0\" /><platform x=\"10\" y=\"10\" z=\"3\" type=\"6\" /><platform x=\"10\" y=\"11\" z=\"3\" type=\"6\" /><platform x=\"10\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"10\" y=\"13\" z=\"3\" type=\"6\" /><platform x=\"10\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"10\" y=\"19\" z=\"3\" type=\"6\" /><platform x=\"10\" y=\"20\" z=\"3\" type=\"6\" /><platform x=\"10\" y=\"21\" z=\"3\" type=\"6\" /><platform x=\"10\" y=\"23\" z=\"3\" type=\"0\" /><platform x=\"11\" y=\"10\" z=\"3\" type=\"6\" /><platform x=\"11\" y=\"21\" z=\"3\" type=\"6\" /><platform x=\"11\" y=\"23\" z=\"3\" type=\"0\" /><platform x=\"12\" y=\"10\" z=\"3\" type=\"6\" /><platform x=\"12\" y=\"21\" z=\"3\" type=\"6\" /><platform x=\"12\" y=\"23\" z=\"3\" type=\"0\" /><platform x=\"13\" y=\"8\" z=\"3\" type=\"5\" /><platform x=\"13\" y=\"10\" z=\"3\" type=\"6\" /><platform x=\"13\" y=\"21\" z=\"3\" type=\"6\" /><platform x=\"13\" y=\"23\" z=\"3\" type=\"0\" /><platform x=\"18\" y=\"8\" z=\"3\" type=\"0\" /><platform x=\"18\" y=\"10\" z=\"3\" type=\"6\" /><platform x=\"18\" y=\"21\" z=\"3\" type=\"6\" /><platform x=\"18\" y=\"23\" z=\"3\" type=\"5\" /><platform x=\"19\" y=\"8\" z=\"3\" type=\"0\" /><platform x=\"19\" y=\"10\" z=\"3\" type=\"6\" /><platform x=\"19\" y=\"21\" z=\"3\" type=\"6\" /><platform x=\"20\" y=\"8\" z=\"3\" type=\"0\" /><platform x=\"20\" y=\"10\" z=\"3\" type=\"6\" /><platform x=\"20\" y=\"21\" z=\"3\" type=\"6\" /><platform x=\"21\" y=\"8\" z=\"3\" type=\"0\" /><platform x=\"21\" y=\"10\" z=\"3\" type=\"6\" /><platform x=\"21\" y=\"11\" z=\"3\" type=\"6\" /><platform x=\"21\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"21\" y=\"13\" z=\"3\" type=\"6\" /><platform x=\"21\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"21\" y=\"19\" z=\"3\" type=\"6\" /><platform x=\"21\" y=\"20\" z=\"3\" type=\"6\" /><platform x=\"21\" y=\"21\" z=\"3\" type=\"6\" /><platform x=\"22\" y=\"8\" z=\"3\" type=\"0\" /><platform x=\"23\" y=\"8\" z=\"3\" type=\"0\" /><platform x=\"23\" y=\"9\" z=\"3\" type=\"0\" /><platform x=\"23\" y=\"10\" z=\"3\" type=\"0\" /><platform x=\"23\" y=\"11\" z=\"3\" type=\"0\" /><platform x=\"23\" y=\"12\" z=\"3\" type=\"0\" /><platform x=\"23\" y=\"13\" z=\"3\" type=\"0\" /><platform x=\"23\" y=\"18\" z=\"3\" type=\"5\" /><platform x=\"23\" y=\"23\" z=\"3\" type=\"5\" /><platform x=\"8\" y=\"18\" z=\"4\" type=\"6\" /><platform x=\"8\" y=\"19\" z=\"4\" type=\"6\" /><platform x=\"8\" y=\"20\" z=\"4\" type=\"6\" /><platform x=\"8\" y=\"21\" z=\"4\" type=\"6\" /><platform x=\"8\" y=\"22\" z=\"4\" type=\"6\" /><platform x=\"9\" y=\"22\" z=\"4\" type=\"0\" /><platform x=\"9\" y=\"23\" z=\"4\" type=\"6\" /><platform x=\"10\" y=\"23\" z=\"4\" type=\"6\" /><platform x=\"11\" y=\"23\" z=\"4\" type=\"6\" /><platform x=\"12\" y=\"23\" z=\"4\" type=\"6\" /><platform x=\"13\" y=\"23\" z=\"4\" type=\"6\" /><platform x=\"18\" y=\"8\" z=\"4\" type=\"6\" /><platform x=\"19\" y=\"8\" z=\"4\" type=\"6\" /><platform x=\"20\" y=\"8\" z=\"4\" type=\"6\" /><platform x=\"21\" y=\"8\" z=\"4\" type=\"6\" /><platform x=\"22\" y=\"8\" z=\"4\" type=\"6\" /><platform x=\"22\" y=\"9\" z=\"4\" type=\"0\" /><platform x=\"23\" y=\"9\" z=\"4\" type=\"6\" /><platform x=\"23\" y=\"10\" z=\"4\" type=\"6\" /><platform x=\"23\" y=\"11\" z=\"4\" type=\"6\" /><platform x=\"23\" y=\"12\" z=\"4\" type=\"6\" /><platform x=\"23\" y=\"13\" z=\"4\" type=\"6\" /><platform x=\"8\" y=\"23\" z=\"5\" type=\"5\" /><platform x=\"9\" y=\"22\" z=\"5\" type=\"6\" /><platform x=\"10\" y=\"21\" z=\"5\" type=\"0\" /><platform x=\"21\" y=\"10\" z=\"5\" type=\"0\" /><platform x=\"22\" y=\"9\" z=\"5\" type=\"6\" /><platform x=\"23\" y=\"8\" z=\"5\" type=\"5\" /><platform x=\"10\" y=\"21\" z=\"6\" type=\"6\" /><platform x=\"11\" y=\"20\" z=\"6\" type=\"0\" /><platform x=\"20\" y=\"11\" z=\"6\" type=\"0\" /><platform x=\"21\" y=\"10\" z=\"6\" type=\"6\" /><platform x=\"11\" y=\"20\" z=\"7\" type=\"6\" /><platform x=\"12\" y=\"19\" z=\"7\" type=\"0\" /><platform x=\"19\" y=\"12\" z=\"7\" type=\"0\" /><platform x=\"20\" y=\"11\" z=\"7\" type=\"6\" /><platform x=\"12\" y=\"19\" z=\"8\" type=\"6\" /><platform x=\"13\" y=\"18\" z=\"8\" type=\"0\" /><platform x=\"18\" y=\"13\" z=\"8\" type=\"0\" /><platform x=\"19\" y=\"12\" z=\"8\" type=\"6\" /><platform x=\"13\" y=\"18\" z=\"9\" type=\"6\" /><platform x=\"14\" y=\"17\" z=\"9\" type=\"0\" /><platform x=\"17\" y=\"14\" z=\"9\" type=\"0\" /><platform x=\"18\" y=\"13\" z=\"9\" type=\"6\" /><platform x=\"14\" y=\"17\" z=\"10\" type=\"6\" /><platform x=\"15\" y=\"15\" z=\"10\" type=\"4\" /><platform x=\"15\" y=\"16\" z=\"10\" type=\"4\" /><platform x=\"16\" y=\"15\" z=\"10\" type=\"4\" /><platform x=\"16\" y=\"16\" z=\"10\" type=\"4\" /><platform x=\"17\" y=\"14\" z=\"10\" type=\"6\" /><platform x=\"14\" y=\"17\" z=\"11\" type=\"5\" /><platform x=\"17\" y=\"14\" z=\"11\" type=\"5\" /></map>"); map.push("<map name=\"24. PIT\"><platform x=\"12\" y=\"15\" z=\"0\" type=\"1\" /><platform x=\"14\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"12\" z=\"0\" type=\"1\" /><platform x=\"15\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"18\" z=\"0\" type=\"1\" /><platform x=\"16\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"18\" y=\"15\" z=\"0\" type=\"1\" /><platform x=\"12\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"15\" z=\"1\" type=\"-1\" /><platform x=\"15\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"15\" y=\"12\" z=\"2\" type=\"6\" /><platform x=\"15\" y=\"18\" z=\"2\" type=\"6\" /><platform x=\"18\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"12\" y=\"15\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"18\" y=\"15\" z=\"3\" type=\"6\" /><platform x=\"12\" y=\"15\" z=\"4\" type=\"6\" /><platform x=\"15\" y=\"12\" z=\"4\" type=\"6\" /><platform x=\"15\" y=\"18\" z=\"4\" type=\"6\" /><platform x=\"18\" y=\"15\" z=\"4\" type=\"6\" /><platform x=\"9\" y=\"15\" z=\"5\" type=\"0\" /><platform x=\"11\" y=\"15\" z=\"5\" type=\"0\" /><platform x=\"12\" y=\"15\" z=\"5\" type=\"6\" /><platform x=\"15\" y=\"9\" z=\"5\" type=\"0\" /><platform x=\"15\" y=\"11\" z=\"5\" type=\"0\" /><platform x=\"15\" y=\"12\" z=\"5\" type=\"6\" /><platform x=\"15\" y=\"18\" z=\"5\" type=\"6\" /><platform x=\"15\" y=\"19\" z=\"5\" type=\"0\" /><platform x=\"15\" y=\"21\" z=\"5\" type=\"0\" /><platform x=\"18\" y=\"15\" z=\"5\" type=\"6\" /><platform x=\"19\" y=\"15\" z=\"5\" type=\"0\" /><platform x=\"21\" y=\"15\" z=\"5\" type=\"0\" /><platform x=\"8\" y=\"15\" z=\"6\" type=\"0\" /><platform x=\"9\" y=\"15\" z=\"6\" type=\"6\" /><platform x=\"11\" y=\"15\" z=\"6\" type=\"6\" /><platform x=\"12\" y=\"15\" z=\"6\" type=\"6\" /><platform x=\"15\" y=\"8\" z=\"6\" type=\"0\" /><platform x=\"15\" y=\"9\" z=\"6\" type=\"6\" /><platform x=\"15\" y=\"11\" z=\"6\" type=\"6\" /><platform x=\"15\" y=\"12\" z=\"6\" type=\"6\" /><platform x=\"15\" y=\"18\" z=\"6\" type=\"6\" /><platform x=\"15\" y=\"19\" z=\"6\" type=\"6\" /><platform x=\"15\" y=\"21\" z=\"6\" type=\"6\" /><platform x=\"15\" y=\"22\" z=\"6\" type=\"0\" /><platform x=\"18\" y=\"15\" z=\"6\" type=\"6\" /><platform x=\"19\" y=\"15\" z=\"6\" type=\"6\" /><platform x=\"21\" y=\"15\" z=\"6\" type=\"6\" /><platform x=\"22\" y=\"15\" z=\"6\" type=\"0\" /><platform x=\"5\" y=\"14\" z=\"7\" type=\"0\" /><platform x=\"5\" y=\"15\" z=\"7\" type=\"0\" /><platform x=\"5\" y=\"16\" z=\"7\" type=\"0\" /><platform x=\"6\" y=\"14\" z=\"7\" type=\"0\" /><platform x=\"6\" y=\"15\" z=\"7\" type=\"4\" /><platform x=\"6\" y=\"16\" z=\"7\" type=\"0\" /><platform x=\"7\" y=\"14\" z=\"7\" type=\"0\" /><platform x=\"7\" y=\"15\" z=\"7\" type=\"0\" /><platform x=\"7\" y=\"16\" z=\"7\" type=\"0\" /><platform x=\"8\" y=\"15\" z=\"7\" type=\"6\" /><platform x=\"10\" y=\"15\" z=\"7\" type=\"6\" /><platform x=\"14\" y=\"5\" z=\"7\" type=\"0\" /><platform x=\"14\" y=\"6\" z=\"7\" type=\"0\" /><platform x=\"14\" y=\"7\" z=\"7\" type=\"0\" /><platform x=\"14\" y=\"23\" z=\"7\" type=\"0\" /><platform x=\"14\" y=\"24\" z=\"7\" type=\"0\" /><platform x=\"14\" y=\"25\" z=\"7\" type=\"0\" /><platform x=\"15\" y=\"5\" z=\"7\" type=\"0\" /><platform x=\"15\" y=\"6\" z=\"7\" type=\"2\" /><platform x=\"15\" y=\"7\" z=\"7\" type=\"0\" /><platform x=\"15\" y=\"8\" z=\"7\" type=\"6\" /><platform x=\"15\" y=\"10\" z=\"7\" type=\"6\" /><platform x=\"15\" y=\"20\" z=\"7\" type=\"6\" /><platform x=\"15\" y=\"22\" z=\"7\" type=\"6\" /><platform x=\"15\" y=\"23\" z=\"7\" type=\"0\" /><platform x=\"15\" y=\"24\" z=\"7\" type=\"2\" /><platform x=\"15\" y=\"25\" z=\"7\" type=\"0\" /><platform x=\"16\" y=\"5\" z=\"7\" type=\"0\" /><platform x=\"16\" y=\"6\" z=\"7\" type=\"0\" /><platform x=\"16\" y=\"7\" z=\"7\" type=\"0\" /><platform x=\"16\" y=\"23\" z=\"7\" type=\"0\" /><platform x=\"16\" y=\"24\" z=\"7\" type=\"0\" /><platform x=\"16\" y=\"25\" z=\"7\" type=\"0\" /><platform x=\"20\" y=\"15\" z=\"7\" type=\"6\" /><platform x=\"22\" y=\"15\" z=\"7\" type=\"6\" /><platform x=\"23\" y=\"14\" z=\"7\" type=\"0\" /><platform x=\"23\" y=\"15\" z=\"7\" type=\"0\" /><platform x=\"23\" y=\"16\" z=\"7\" type=\"0\" /><platform x=\"24\" y=\"14\" z=\"7\" type=\"0\" /><platform x=\"24\" y=\"15\" z=\"7\" type=\"2\" /><platform x=\"24\" y=\"16\" z=\"7\" type=\"0\" /><platform x=\"25\" y=\"14\" z=\"7\" type=\"0\" /><platform x=\"25\" y=\"15\" z=\"7\" type=\"0\" /><platform x=\"25\" y=\"16\" z=\"7\" type=\"0\" /><platform x=\"5\" y=\"14\" z=\"8\" type=\"6\" /><platform x=\"5\" y=\"15\" z=\"8\" type=\"6\" /><platform x=\"5\" y=\"16\" z=\"8\" type=\"6\" /><platform x=\"6\" y=\"14\" z=\"8\" type=\"6\" /><platform x=\"6\" y=\"16\" z=\"8\" type=\"6\" /><platform x=\"7\" y=\"14\" z=\"8\" type=\"6\" /><platform x=\"7\" y=\"15\" z=\"8\" type=\"6\" /><platform x=\"7\" y=\"16\" z=\"8\" type=\"6\" /><platform x=\"8\" y=\"15\" z=\"8\" type=\"6\" /><platform x=\"14\" y=\"5\" z=\"8\" type=\"6\" /><platform x=\"14\" y=\"6\" z=\"8\" type=\"6\" /><platform x=\"14\" y=\"7\" z=\"8\" type=\"6\" /><platform x=\"14\" y=\"23\" z=\"8\" type=\"6\" /><platform x=\"14\" y=\"24\" z=\"8\" type=\"6\" /><platform x=\"14\" y=\"25\" z=\"8\" type=\"6\" /><platform x=\"15\" y=\"5\" z=\"8\" type=\"6\" /><platform x=\"15\" y=\"7\" z=\"8\" type=\"6\" /><platform x=\"15\" y=\"8\" z=\"8\" type=\"6\" /><platform x=\"15\" y=\"22\" z=\"8\" type=\"6\" /><platform x=\"15\" y=\"23\" z=\"8\" type=\"6\" /><platform x=\"15\" y=\"25\" z=\"8\" type=\"6\" /><platform x=\"16\" y=\"5\" z=\"8\" type=\"6\" /><platform x=\"16\" y=\"6\" z=\"8\" type=\"6\" /><platform x=\"16\" y=\"7\" z=\"8\" type=\"6\" /><platform x=\"16\" y=\"23\" z=\"8\" type=\"6\" /><platform x=\"16\" y=\"24\" z=\"8\" type=\"6\" /><platform x=\"16\" y=\"25\" z=\"8\" type=\"6\" /><platform x=\"22\" y=\"15\" z=\"8\" type=\"6\" /><platform x=\"23\" y=\"14\" z=\"8\" type=\"6\" /><platform x=\"23\" y=\"15\" z=\"8\" type=\"6\" /><platform x=\"23\" y=\"16\" z=\"8\" type=\"6\" /><platform x=\"24\" y=\"14\" z=\"8\" type=\"6\" /><platform x=\"24\" y=\"16\" z=\"8\" type=\"6\" /><platform x=\"25\" y=\"14\" z=\"8\" type=\"6\" /><platform x=\"25\" y=\"15\" z=\"8\" type=\"6\" /><platform x=\"25\" y=\"16\" z=\"8\" type=\"6\" /><platform x=\"14\" y=\"5\" z=\"9\" type=\"5\" /><platform x=\"14\" y=\"6\" z=\"9\" type=\"6\" /><platform x=\"14\" y=\"7\" z=\"9\" type=\"5\" /><platform x=\"14\" y=\"23\" z=\"9\" type=\"5\" /><platform x=\"14\" y=\"24\" z=\"9\" type=\"6\" /><platform x=\"14\" y=\"25\" z=\"9\" type=\"5\" /><platform x=\"15\" y=\"5\" z=\"9\" type=\"6\" /><platform x=\"15\" y=\"7\" z=\"9\" type=\"6\" /><platform x=\"15\" y=\"23\" z=\"9\" type=\"6\" /><platform x=\"16\" y=\"5\" z=\"9\" type=\"5\" /><platform x=\"16\" y=\"6\" z=\"9\" type=\"6\" /><platform x=\"16\" y=\"7\" z=\"9\" type=\"5\" /><platform x=\"16\" y=\"23\" z=\"9\" type=\"5\" /><platform x=\"16\" y=\"24\" z=\"9\" type=\"6\" /><platform x=\"16\" y=\"25\" z=\"9\" type=\"5\" /><platform x=\"23\" y=\"14\" z=\"9\" type=\"5\" /><platform x=\"23\" y=\"15\" z=\"9\" type=\"6\" /><platform x=\"23\" y=\"16\" z=\"9\" type=\"5\" /><platform x=\"24\" y=\"14\" z=\"9\" type=\"6\" /><platform x=\"24\" y=\"16\" z=\"9\" type=\"6\" /><platform x=\"25\" y=\"14\" z=\"9\" type=\"5\" /><platform x=\"25\" y=\"15\" z=\"9\" type=\"6\" /><platform x=\"25\" y=\"16\" z=\"9\" type=\"5\" /></map>"); map.push("<map name=\"25. CRAZY BUBBLES\"><platform x=\"3\" y=\"27\" z=\"0\" type=\"0\" /><platform x=\"3\" y=\"28\" z=\"0\" type=\"0\" /><platform x=\"4\" y=\"26\" z=\"0\" type=\"0\" /><platform x=\"4\" y=\"29\" z=\"0\" type=\"0\" /><platform x=\"5\" y=\"26\" z=\"0\" type=\"0\" /><platform x=\"5\" y=\"29\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"27\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"28\" z=\"0\" type=\"0\" /><platform x=\"7\" y=\"25\" z=\"0\" type=\"1\" /><platform x=\"3\" y=\"27\" z=\"1\" type=\"6\" /><platform x=\"3\" y=\"28\" z=\"1\" type=\"6\" /><platform x=\"4\" y=\"26\" z=\"1\" type=\"6\" /><platform x=\"4\" y=\"29\" z=\"1\" type=\"-1\" /><platform x=\"5\" y=\"26\" z=\"1\" type=\"6\" /><platform x=\"5\" y=\"29\" z=\"1\" type=\"6\" /><platform x=\"6\" y=\"27\" z=\"1\" type=\"6\" /><platform x=\"6\" y=\"28\" z=\"1\" type=\"6\" /><platform x=\"7\" y=\"25\" z=\"1\" type=\"6\" /><platform x=\"10\" y=\"22\" z=\"1\" type=\"1\" /><platform x=\"3\" y=\"27\" z=\"2\" type=\"6\" /><platform x=\"3\" y=\"28\" z=\"2\" type=\"6\" /><platform x=\"4\" y=\"26\" z=\"2\" type=\"6\" /><platform x=\"5\" y=\"26\" z=\"2\" type=\"6\" /><platform x=\"5\" y=\"29\" z=\"2\" type=\"6\" /><platform x=\"6\" y=\"27\" z=\"2\" type=\"6\" /><platform x=\"6\" y=\"28\" z=\"2\" type=\"6\" /><platform x=\"7\" y=\"25\" z=\"2\" type=\"6\" /><platform x=\"10\" y=\"22\" z=\"2\" type=\"6\" /><platform x=\"11\" y=\"19\" z=\"2\" type=\"0\" /><platform x=\"11\" y=\"20\" z=\"2\" type=\"0\" /><platform x=\"12\" y=\"18\" z=\"2\" type=\"0\" /><platform x=\"12\" y=\"21\" z=\"2\" type=\"0\" /><platform x=\"13\" y=\"18\" z=\"2\" type=\"0\" /><platform x=\"13\" y=\"21\" z=\"2\" type=\"0\" /><platform x=\"14\" y=\"19\" z=\"2\" type=\"0\" /><platform x=\"14\" y=\"20\" z=\"2\" type=\"0\" /><platform x=\"15\" y=\"17\" z=\"2\" type=\"1\" /><platform x=\"7\" y=\"25\" z=\"3\" type=\"6\" /><platform x=\"10\" y=\"22\" z=\"3\" type=\"6\" /><platform x=\"11\" y=\"19\" z=\"3\" type=\"6\" /><platform x=\"11\" y=\"20\" z=\"3\" type=\"6\" /><platform x=\"12\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"12\" y=\"21\" z=\"3\" type=\"6\" /><platform x=\"13\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"13\" y=\"21\" z=\"3\" type=\"6\" /><platform x=\"14\" y=\"19\" z=\"3\" type=\"6\" /><platform x=\"14\" y=\"20\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"17\" z=\"3\" type=\"6\" /><platform x=\"18\" y=\"14\" z=\"3\" type=\"1\" /><platform x=\"7\" y=\"25\" z=\"4\" type=\"6\" /><platform x=\"10\" y=\"22\" z=\"4\" type=\"6\" /><platform x=\"11\" y=\"19\" z=\"4\" type=\"6\" /><platform x=\"11\" y=\"20\" z=\"4\" type=\"6\" /><platform x=\"12\" y=\"18\" z=\"4\" type=\"6\" /><platform x=\"12\" y=\"21\" z=\"4\" type=\"6\" /><platform x=\"13\" y=\"18\" z=\"4\" type=\"6\" /><platform x=\"13\" y=\"21\" z=\"4\" type=\"6\" /><platform x=\"14\" y=\"19\" z=\"4\" type=\"6\" /><platform x=\"14\" y=\"20\" z=\"4\" type=\"6\" /><platform x=\"15\" y=\"17\" z=\"4\" type=\"6\" /><platform x=\"18\" y=\"14\" z=\"4\" type=\"6\" /><platform x=\"19\" y=\"11\" z=\"4\" type=\"0\" /><platform x=\"19\" y=\"12\" z=\"4\" type=\"0\" /><platform x=\"20\" y=\"10\" z=\"4\" type=\"0\" /><platform x=\"20\" y=\"13\" z=\"4\" type=\"0\" /><platform x=\"21\" y=\"10\" z=\"4\" type=\"0\" /><platform x=\"21\" y=\"13\" z=\"4\" type=\"0\" /><platform x=\"22\" y=\"11\" z=\"4\" type=\"0\" /><platform x=\"22\" y=\"12\" z=\"4\" type=\"0\" /><platform x=\"23\" y=\"9\" z=\"4\" type=\"1\" /><platform x=\"7\" y=\"25\" z=\"5\" type=\"6\" /><platform x=\"10\" y=\"22\" z=\"5\" type=\"6\" /><platform x=\"18\" y=\"14\" z=\"5\" type=\"6\" /><platform x=\"19\" y=\"11\" z=\"5\" type=\"6\" /><platform x=\"19\" y=\"12\" z=\"5\" type=\"6\" /><platform x=\"20\" y=\"10\" z=\"5\" type=\"6\" /><platform x=\"20\" y=\"13\" z=\"5\" type=\"6\" /><platform x=\"21\" y=\"10\" z=\"5\" type=\"6\" /><platform x=\"21\" y=\"13\" z=\"5\" type=\"6\" /><platform x=\"22\" y=\"11\" z=\"5\" type=\"6\" /><platform x=\"22\" y=\"12\" z=\"5\" type=\"6\" /><platform x=\"23\" y=\"9\" z=\"5\" type=\"6\" /><platform x=\"7\" y=\"25\" z=\"6\" type=\"6\" /><platform x=\"10\" y=\"22\" z=\"6\" type=\"6\" /><platform x=\"15\" y=\"17\" z=\"6\" type=\"6\" /><platform x=\"18\" y=\"14\" z=\"6\" type=\"6\" /><platform x=\"19\" y=\"11\" z=\"6\" type=\"6\" /><platform x=\"19\" y=\"12\" z=\"6\" type=\"6\" /><platform x=\"20\" y=\"10\" z=\"6\" type=\"6\" /><platform x=\"20\" y=\"13\" z=\"6\" type=\"6\" /><platform x=\"21\" y=\"10\" z=\"6\" type=\"6\" /><platform x=\"21\" y=\"13\" z=\"6\" type=\"6\" /><platform x=\"22\" y=\"11\" z=\"6\" type=\"6\" /><platform x=\"22\" y=\"12\" z=\"6\" type=\"6\" /><platform x=\"23\" y=\"9\" z=\"6\" type=\"6\" /><platform x=\"15\" y=\"17\" z=\"7\" type=\"6\" /><platform x=\"18\" y=\"14\" z=\"7\" type=\"6\" /><platform x=\"23\" y=\"9\" z=\"7\" type=\"6\" /><platform x=\"23\" y=\"9\" z=\"8\" type=\"6\" /><platform x=\"17\" y=\"15\" z=\"9\" type=\"1\" /><platform x=\"18\" y=\"12\" z=\"9\" type=\"0\" /><platform x=\"18\" y=\"13\" z=\"9\" type=\"0\" /><platform x=\"19\" y=\"11\" z=\"9\" type=\"0\" /><platform x=\"19\" y=\"14\" z=\"9\" type=\"0\" /><platform x=\"20\" y=\"11\" z=\"9\" type=\"0\" /><platform x=\"20\" y=\"14\" z=\"9\" type=\"0\" /><platform x=\"21\" y=\"12\" z=\"9\" type=\"0\" /><platform x=\"21\" y=\"13\" z=\"9\" type=\"0\" /><platform x=\"23\" y=\"9\" z=\"9\" type=\"6\" /><platform x=\"17\" y=\"15\" z=\"10\" type=\"6\" /><platform x=\"18\" y=\"12\" z=\"10\" type=\"6\" /><platform x=\"18\" y=\"13\" z=\"10\" type=\"6\" /><platform x=\"19\" y=\"11\" z=\"10\" type=\"6\" /><platform x=\"19\" y=\"14\" z=\"10\" type=\"6\" /><platform x=\"20\" y=\"11\" z=\"10\" type=\"6\" /><platform x=\"20\" y=\"14\" z=\"10\" type=\"6\" /><platform x=\"21\" y=\"12\" z=\"10\" type=\"6\" /><platform x=\"21\" y=\"13\" z=\"10\" type=\"6\" /><platform x=\"23\" y=\"9\" z=\"10\" type=\"6\" /><platform x=\"17\" y=\"15\" z=\"11\" type=\"6\" /><platform x=\"17\" y=\"15\" z=\"12\" type=\"6\" /><platform x=\"17\" y=\"15\" z=\"13\" type=\"6\" /><platform x=\"15\" y=\"16\" z=\"14\" type=\"4\" /><platform x=\"15\" y=\"17\" z=\"14\" type=\"4\" /><platform x=\"16\" y=\"16\" z=\"14\" type=\"4\" /><platform x=\"16\" y=\"17\" z=\"14\" type=\"4\" /><platform x=\"17\" y=\"15\" z=\"14\" type=\"6\" /></map>"); map.push("<map name=\"26. FALLING SKY\"><platform x=\"2\" y=\"15\" z=\"0\" type=\"7\" /><platform x=\"2\" y=\"16\" z=\"0\" type=\"7\" /><platform x=\"2\" y=\"17\" z=\"0\" type=\"7\" /><platform x=\"3\" y=\"15\" z=\"0\" type=\"7\" /><platform x=\"3\" y=\"16\" z=\"0\" type=\"4\" /><platform x=\"3\" y=\"17\" z=\"0\" type=\"7\" /><platform x=\"4\" y=\"15\" z=\"0\" type=\"7\" /><platform x=\"4\" y=\"16\" z=\"0\" type=\"7\" /><platform x=\"4\" y=\"17\" z=\"0\" type=\"7\" /><platform x=\"5\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"16\" z=\"0\" type=\"7\" /><platform x=\"7\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"2\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"2\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"2\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"3\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"3\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"4\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"4\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"4\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"5\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"6\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"7\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"8\" y=\"15\" z=\"1\" type=\"0\" /><platform x=\"8\" y=\"16\" z=\"1\" type=\"0\" /><platform x=\"8\" y=\"17\" z=\"1\" type=\"0\" /><platform x=\"2\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"2\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"2\" y=\"17\" z=\"2\" type=\"6\" /><platform x=\"3\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"3\" y=\"17\" z=\"2\" type=\"6\" /><platform x=\"4\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"4\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"4\" y=\"17\" z=\"2\" type=\"6\" /><platform x=\"5\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"6\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"7\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"8\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"8\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"8\" y=\"17\" z=\"2\" type=\"6\" /><platform x=\"9\" y=\"14\" z=\"2\" type=\"0\" /><platform x=\"9\" y=\"18\" z=\"2\" type=\"0\" /><platform x=\"10\" y=\"14\" z=\"2\" type=\"7\" /><platform x=\"10\" y=\"18\" z=\"2\" type=\"7\" /><platform x=\"11\" y=\"14\" z=\"2\" type=\"0\" /><platform x=\"11\" y=\"18\" z=\"2\" type=\"0\" /><platform x=\"9\" y=\"14\" z=\"3\" type=\"6\" /><platform x=\"9\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"10\" y=\"14\" z=\"3\" type=\"6\" /><platform x=\"10\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"11\" y=\"14\" z=\"3\" type=\"6\" /><platform x=\"11\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"12\" y=\"15\" z=\"3\" type=\"0\" /><platform x=\"12\" y=\"17\" z=\"3\" type=\"0\" /><platform x=\"13\" y=\"15\" z=\"3\" type=\"0\" /><platform x=\"13\" y=\"17\" z=\"3\" type=\"0\" /><platform x=\"12\" y=\"15\" z=\"4\" type=\"6\" /><platform x=\"12\" y=\"17\" z=\"4\" type=\"6\" /><platform x=\"13\" y=\"15\" z=\"4\" type=\"6\" /><platform x=\"13\" y=\"17\" z=\"4\" type=\"6\" /><platform x=\"14\" y=\"16\" z=\"4\" type=\"0\" /><platform x=\"16\" y=\"16\" z=\"4\" type=\"0\" /><platform x=\"18\" y=\"16\" z=\"4\" type=\"0\" /><platform x=\"19\" y=\"10\" z=\"4\" type=\"0\" /><platform x=\"19\" y=\"12\" z=\"4\" type=\"0\" /><platform x=\"19\" y=\"20\" z=\"4\" type=\"0\" /><platform x=\"19\" y=\"22\" z=\"4\" type=\"0\" /><platform x=\"20\" y=\"7\" z=\"4\" type=\"0\" /><platform x=\"20\" y=\"8\" z=\"4\" type=\"0\" /><platform x=\"20\" y=\"14\" z=\"4\" type=\"0\" /><platform x=\"20\" y=\"15\" z=\"4\" type=\"0\" /><platform x=\"20\" y=\"16\" z=\"4\" type=\"0\" /><platform x=\"20\" y=\"17\" z=\"4\" type=\"0\" /><platform x=\"20\" y=\"18\" z=\"4\" type=\"0\" /><platform x=\"20\" y=\"24\" z=\"4\" type=\"0\" /><platform x=\"20\" y=\"25\" z=\"4\" type=\"0\" /><platform x=\"21\" y=\"10\" z=\"4\" type=\"0\" /><platform x=\"21\" y=\"12\" z=\"4\" type=\"0\" /><platform x=\"21\" y=\"20\" z=\"4\" type=\"0\" /><platform x=\"21\" y=\"22\" z=\"4\" type=\"0\" /><platform x=\"2\" y=\"4\" z=\"5\" type=\"0\" /><platform x=\"2\" y=\"5\" z=\"5\" type=\"0\" /><platform x=\"2\" y=\"6\" z=\"5\" type=\"0\" /><platform x=\"2\" y=\"26\" z=\"5\" type=\"0\" /><platform x=\"2\" y=\"27\" z=\"5\" type=\"0\" /><platform x=\"2\" y=\"28\" z=\"5\" type=\"0\" /><platform x=\"3\" y=\"4\" z=\"5\" type=\"0\" /><platform x=\"3\" y=\"5\" z=\"5\" type=\"0\" /><platform x=\"3\" y=\"6\" z=\"5\" type=\"0\" /><platform x=\"3\" y=\"26\" z=\"5\" type=\"0\" /><platform x=\"3\" y=\"27\" z=\"5\" type=\"0\" /><platform x=\"3\" y=\"28\" z=\"5\" type=\"0\" /><platform x=\"4\" y=\"4\" z=\"5\" type=\"0\" /><platform x=\"4\" y=\"5\" z=\"5\" type=\"0\" /><platform x=\"4\" y=\"6\" z=\"5\" type=\"0\" /><platform x=\"4\" y=\"26\" z=\"5\" type=\"0\" /><platform x=\"4\" y=\"27\" z=\"5\" type=\"0\" /><platform x=\"4\" y=\"28\" z=\"5\" type=\"0\" /><platform x=\"5\" y=\"5\" z=\"5\" type=\"7\" /><platform x=\"5\" y=\"27\" z=\"5\" type=\"7\" /><platform x=\"6\" y=\"5\" z=\"5\" type=\"0\" /><platform x=\"6\" y=\"27\" z=\"5\" type=\"7\" /><platform x=\"7\" y=\"5\" z=\"5\" type=\"7\" /><platform x=\"7\" y=\"27\" z=\"5\" type=\"7\" /><platform x=\"8\" y=\"5\" z=\"5\" type=\"0\" /><platform x=\"8\" y=\"27\" z=\"5\" type=\"7\" /><platform x=\"9\" y=\"5\" z=\"5\" type=\"7\" /><platform x=\"9\" y=\"27\" z=\"5\" type=\"7\" /><platform x=\"10\" y=\"5\" z=\"5\" type=\"0\" /><platform x=\"10\" y=\"27\" z=\"5\" type=\"7\" /><platform x=\"11\" y=\"5\" z=\"5\" type=\"7\" /><platform x=\"11\" y=\"27\" z=\"5\" type=\"7\" /><platform x=\"12\" y=\"5\" z=\"5\" type=\"0\" /><platform x=\"12\" y=\"27\" z=\"5\" type=\"7\" /><platform x=\"13\" y=\"5\" z=\"5\" type=\"7\" /><platform x=\"13\" y=\"27\" z=\"5\" type=\"7\" /><platform x=\"14\" y=\"5\" z=\"5\" type=\"0\" /><platform x=\"14\" y=\"16\" z=\"5\" type=\"6\" /><platform x=\"14\" y=\"27\" z=\"5\" type=\"7\" /><platform x=\"15\" y=\"5\" z=\"5\" type=\"7\" /><platform x=\"15\" y=\"27\" z=\"5\" type=\"7\" /><platform x=\"16\" y=\"5\" z=\"5\" type=\"0\" /><platform x=\"16\" y=\"16\" z=\"5\" type=\"6\" /><platform x=\"16\" y=\"27\" z=\"5\" type=\"7\" /><platform x=\"17\" y=\"5\" z=\"5\" type=\"7\" /><platform x=\"17\" y=\"27\" z=\"5\" type=\"7\" /><platform x=\"18\" y=\"5\" z=\"5\" type=\"0\" /><platform x=\"18\" y=\"16\" z=\"5\" type=\"6\" /><platform x=\"18\" y=\"27\" z=\"5\" type=\"7\" /><platform x=\"19\" y=\"5\" z=\"5\" type=\"7\" /><platform x=\"19\" y=\"27\" z=\"5\" type=\"7\" /><platform x=\"20\" y=\"5\" z=\"5\" type=\"0\" /><platform x=\"20\" y=\"6\" z=\"5\" type=\"0\" /><platform x=\"20\" y=\"14\" z=\"5\" type=\"6\" /><platform x=\"20\" y=\"15\" z=\"5\" type=\"6\" /><platform x=\"20\" y=\"17\" z=\"5\" type=\"6\" /><platform x=\"20\" y=\"18\" z=\"5\" type=\"6\" /><platform x=\"20\" y=\"26\" z=\"5\" type=\"0\" /><platform x=\"20\" y=\"27\" z=\"5\" type=\"0\" /><platform x=\"3\" y=\"5\" z=\"6\" type=\"-1\" /><platform x=\"3\" y=\"27\" z=\"6\" type=\"6\" /><platform x=\"5\" y=\"5\" z=\"6\" type=\"6\" /><platform x=\"5\" y=\"27\" z=\"6\" type=\"6\" /><platform x=\"6\" y=\"5\" z=\"6\" type=\"6\" /><platform x=\"6\" y=\"27\" z=\"6\" type=\"6\" /><platform x=\"7\" y=\"5\" z=\"6\" type=\"6\" /><platform x=\"7\" y=\"27\" z=\"6\" type=\"6\" /><platform x=\"8\" y=\"5\" z=\"6\" type=\"6\" /><platform x=\"8\" y=\"27\" z=\"6\" type=\"6\" /><platform x=\"9\" y=\"5\" z=\"6\" type=\"6\" /><platform x=\"9\" y=\"27\" z=\"6\" type=\"6\" /><platform x=\"10\" y=\"5\" z=\"6\" type=\"6\" /><platform x=\"10\" y=\"27\" z=\"6\" type=\"6\" /><platform x=\"11\" y=\"5\" z=\"6\" type=\"6\" /><platform x=\"11\" y=\"27\" z=\"6\" type=\"6\" /><platform x=\"12\" y=\"5\" z=\"6\" type=\"6\" /><platform x=\"12\" y=\"27\" z=\"6\" type=\"6\" /><platform x=\"13\" y=\"5\" z=\"6\" type=\"6\" /><platform x=\"13\" y=\"27\" z=\"6\" type=\"6\" /><platform x=\"14\" y=\"5\" z=\"6\" type=\"6\" /><platform x=\"14\" y=\"16\" z=\"6\" type=\"6\" /><platform x=\"14\" y=\"27\" z=\"6\" type=\"6\" /><platform x=\"15\" y=\"5\" z=\"6\" type=\"6\" /><platform x=\"15\" y=\"16\" z=\"6\" type=\"6\" /><platform x=\"15\" y=\"27\" z=\"6\" type=\"6\" /><platform x=\"16\" y=\"5\" z=\"6\" type=\"6\" /><platform x=\"16\" y=\"16\" z=\"6\" type=\"6\" /><platform x=\"16\" y=\"27\" z=\"6\" type=\"6\" /><platform x=\"17\" y=\"5\" z=\"6\" type=\"6\" /><platform x=\"17\" y=\"16\" z=\"6\" type=\"6\" /><platform x=\"17\" y=\"27\" z=\"6\" type=\"6\" /><platform x=\"18\" y=\"5\" z=\"6\" type=\"6\" /><platform x=\"18\" y=\"16\" z=\"6\" type=\"6\" /><platform x=\"18\" y=\"27\" z=\"6\" type=\"6\" /><platform x=\"19\" y=\"5\" z=\"6\" type=\"6\" /><platform x=\"19\" y=\"27\" z=\"6\" type=\"6\" /><platform x=\"20\" y=\"5\" z=\"6\" type=\"6\" /><platform x=\"20\" y=\"6\" z=\"6\" type=\"6\" /><platform x=\"20\" y=\"8\" z=\"6\" type=\"5\" /><platform x=\"20\" y=\"14\" z=\"6\" type=\"6\" /><platform x=\"20\" y=\"15\" z=\"6\" type=\"6\" /><platform x=\"20\" y=\"16\" z=\"6\" type=\"5\" /><platform x=\"20\" y=\"17\" z=\"6\" type=\"6\" /><platform x=\"20\" y=\"18\" z=\"6\" type=\"6\" /><platform x=\"20\" y=\"24\" z=\"6\" type=\"5\" /><platform x=\"20\" y=\"26\" z=\"6\" type=\"6\" /><platform x=\"20\" y=\"27\" z=\"6\" type=\"6\" /><platform x=\"2\" y=\"26\" z=\"7\" type=\"5\" /><platform x=\"2\" y=\"28\" z=\"7\" type=\"5\" /><platform x=\"3\" y=\"27\" z=\"7\" type=\"6\" /><platform x=\"4\" y=\"26\" z=\"7\" type=\"5\" /><platform x=\"4\" y=\"28\" z=\"7\" type=\"5\" /><platform x=\"3\" y=\"27\" z=\"8\" type=\"6\" /><platform x=\"3\" y=\"27\" z=\"9\" type=\"6\" /></map>"); map.push("<map name=\"27. STADIUM\"><platform x=\"3\" y=\"8\" z=\"0\" type=\"0\" /><platform x=\"3\" y=\"9\" z=\"0\" type=\"7\" /><platform x=\"3\" y=\"10\" z=\"0\" type=\"0\" /><platform x=\"3\" y=\"11\" z=\"0\" type=\"2\" /><platform x=\"3\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"3\" y=\"13\" z=\"0\" type=\"7\" /><platform x=\"3\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"3\" y=\"15\" z=\"0\" type=\"2\" /><platform x=\"3\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"3\" y=\"17\" z=\"0\" type=\"7\" /><platform x=\"3\" y=\"18\" z=\"0\" type=\"0\" /><platform x=\"3\" y=\"19\" z=\"0\" type=\"2\" /><platform x=\"3\" y=\"20\" z=\"0\" type=\"0\" /><platform x=\"3\" y=\"21\" z=\"0\" type=\"7\" /><platform x=\"3\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"3\" y=\"23\" z=\"0\" type=\"2\" /><platform x=\"3\" y=\"24\" z=\"0\" type=\"0\" /><platform x=\"3\" y=\"25\" z=\"0\" type=\"7\" /><platform x=\"3\" y=\"26\" z=\"0\" type=\"0\" /><platform x=\"3\" y=\"8\" z=\"1\" type=\"6\" /><platform x=\"3\" y=\"9\" z=\"1\" type=\"6\" /><platform x=\"3\" y=\"10\" z=\"1\" type=\"6\" /><platform x=\"3\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"3\" y=\"13\" z=\"1\" type=\"6\" /><platform x=\"3\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"3\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"3\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"3\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"3\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"3\" y=\"21\" z=\"1\" type=\"6\" /><platform x=\"3\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"3\" y=\"24\" z=\"1\" type=\"6\" /><platform x=\"3\" y=\"25\" z=\"1\" type=\"6\" /><platform x=\"3\" y=\"26\" z=\"1\" type=\"-1\" /><platform x=\"4\" y=\"8\" z=\"1\" type=\"0\" /><platform x=\"3\" y=\"11\" z=\"2\" type=\"6\" /><platform x=\"3\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"3\" y=\"19\" z=\"2\" type=\"6\" /><platform x=\"3\" y=\"23\" z=\"2\" type=\"6\" /><platform x=\"4\" y=\"8\" z=\"2\" type=\"6\" /><platform x=\"5\" y=\"8\" z=\"2\" type=\"0\" /><platform x=\"5\" y=\"9\" z=\"2\" type=\"7\" /><platform x=\"5\" y=\"10\" z=\"2\" type=\"0\" /><platform x=\"5\" y=\"11\" z=\"2\" type=\"2\" /><platform x=\"5\" y=\"12\" z=\"2\" type=\"0\" /><platform x=\"5\" y=\"13\" z=\"2\" type=\"7\" /><platform x=\"5\" y=\"14\" z=\"2\" type=\"0\" /><platform x=\"5\" y=\"15\" z=\"2\" type=\"2\" /><platform x=\"5\" y=\"16\" z=\"2\" type=\"0\" /><platform x=\"5\" y=\"17\" z=\"2\" type=\"7\" /><platform x=\"5\" y=\"18\" z=\"2\" type=\"0\" /><platform x=\"5\" y=\"19\" z=\"2\" type=\"2\" /><platform x=\"5\" y=\"20\" z=\"2\" type=\"0\" /><platform x=\"5\" y=\"21\" z=\"2\" type=\"7\" /><platform x=\"5\" y=\"22\" z=\"2\" type=\"0\" /><platform x=\"5\" y=\"23\" z=\"2\" type=\"2\" /><platform x=\"5\" y=\"24\" z=\"2\" type=\"0\" /><platform x=\"5\" y=\"25\" z=\"2\" type=\"7\" /><platform x=\"5\" y=\"26\" z=\"2\" type=\"0\" /><platform x=\"5\" y=\"8\" z=\"3\" type=\"6\" /><platform x=\"5\" y=\"9\" z=\"3\" type=\"6\" /><platform x=\"5\" y=\"10\" z=\"3\" type=\"6\" /><platform x=\"5\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"5\" y=\"13\" z=\"3\" type=\"6\" /><platform x=\"5\" y=\"14\" z=\"3\" type=\"6\" /><platform x=\"5\" y=\"16\" z=\"3\" type=\"6\" /><platform x=\"5\" y=\"17\" z=\"3\" type=\"6\" /><platform x=\"5\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"5\" y=\"20\" z=\"3\" type=\"6\" /><platform x=\"5\" y=\"21\" z=\"3\" type=\"6\" /><platform x=\"5\" y=\"22\" z=\"3\" type=\"6\" /><platform x=\"5\" y=\"24\" z=\"3\" type=\"6\" /><platform x=\"5\" y=\"25\" z=\"3\" type=\"6\" /><platform x=\"5\" y=\"26\" z=\"3\" type=\"6\" /><platform x=\"6\" y=\"26\" z=\"3\" type=\"0\" /><platform x=\"5\" y=\"11\" z=\"4\" type=\"6\" /><platform x=\"5\" y=\"15\" z=\"4\" type=\"6\" /><platform x=\"5\" y=\"19\" z=\"4\" type=\"6\" /><platform x=\"5\" y=\"23\" z=\"4\" type=\"6\" /><platform x=\"6\" y=\"26\" z=\"4\" type=\"6\" /><platform x=\"7\" y=\"8\" z=\"4\" type=\"0\" /><platform x=\"7\" y=\"9\" z=\"4\" type=\"7\" /><platform x=\"7\" y=\"10\" z=\"4\" type=\"0\" /><platform x=\"7\" y=\"11\" z=\"4\" type=\"2\" /><platform x=\"7\" y=\"12\" z=\"4\" type=\"0\" /><platform x=\"7\" y=\"13\" z=\"4\" type=\"7\" /><platform x=\"7\" y=\"14\" z=\"4\" type=\"0\" /><platform x=\"7\" y=\"15\" z=\"4\" type=\"2\" /><platform x=\"7\" y=\"16\" z=\"4\" type=\"0\" /><platform x=\"7\" y=\"17\" z=\"4\" type=\"7\" /><platform x=\"7\" y=\"18\" z=\"4\" type=\"0\" /><platform x=\"7\" y=\"19\" z=\"4\" type=\"2\" /><platform x=\"7\" y=\"20\" z=\"4\" type=\"0\" /><platform x=\"7\" y=\"21\" z=\"4\" type=\"7\" /><platform x=\"7\" y=\"22\" z=\"4\" type=\"0\" /><platform x=\"7\" y=\"23\" z=\"4\" type=\"2\" /><platform x=\"7\" y=\"24\" z=\"4\" type=\"0\" /><platform x=\"7\" y=\"25\" z=\"4\" type=\"7\" /><platform x=\"7\" y=\"26\" z=\"4\" type=\"0\" /><platform x=\"7\" y=\"8\" z=\"5\" type=\"6\" /><platform x=\"7\" y=\"9\" z=\"5\" type=\"6\" /><platform x=\"7\" y=\"10\" z=\"5\" type=\"6\" /><platform x=\"7\" y=\"12\" z=\"5\" type=\"6\" /><platform x=\"7\" y=\"13\" z=\"5\" type=\"6\" /><platform x=\"7\" y=\"14\" z=\"5\" type=\"6\" /><platform x=\"7\" y=\"16\" z=\"5\" type=\"6\" /><platform x=\"7\" y=\"17\" z=\"5\" type=\"6\" /><platform x=\"7\" y=\"18\" z=\"5\" type=\"6\" /><platform x=\"7\" y=\"20\" z=\"5\" type=\"6\" /><platform x=\"7\" y=\"21\" z=\"5\" type=\"6\" /><platform x=\"7\" y=\"22\" z=\"5\" type=\"6\" /><platform x=\"7\" y=\"24\" z=\"5\" type=\"6\" /><platform x=\"7\" y=\"25\" z=\"5\" type=\"6\" /><platform x=\"7\" y=\"26\" z=\"5\" type=\"6\" /><platform x=\"8\" y=\"8\" z=\"5\" type=\"0\" /><platform x=\"7\" y=\"11\" z=\"6\" type=\"6\" /><platform x=\"7\" y=\"15\" z=\"6\" type=\"6\" /><platform x=\"7\" y=\"19\" z=\"6\" type=\"6\" /><platform x=\"7\" y=\"23\" z=\"6\" type=\"6\" /><platform x=\"8\" y=\"8\" z=\"6\" type=\"6\" /><platform x=\"9\" y=\"8\" z=\"6\" type=\"0\" /><platform x=\"9\" y=\"9\" z=\"6\" type=\"7\" /><platform x=\"9\" y=\"10\" z=\"6\" type=\"0\" /><platform x=\"9\" y=\"11\" z=\"6\" type=\"2\" /><platform x=\"9\" y=\"12\" z=\"6\" type=\"0\" /><platform x=\"9\" y=\"13\" z=\"6\" type=\"7\" /><platform x=\"9\" y=\"14\" z=\"6\" type=\"0\" /><platform x=\"9\" y=\"15\" z=\"6\" type=\"2\" /><platform x=\"9\" y=\"16\" z=\"6\" type=\"0\" /><platform x=\"9\" y=\"17\" z=\"6\" type=\"7\" /><platform x=\"9\" y=\"18\" z=\"6\" type=\"0\" /><platform x=\"9\" y=\"19\" z=\"6\" type=\"2\" /><platform x=\"9\" y=\"20\" z=\"6\" type=\"0\" /><platform x=\"9\" y=\"21\" z=\"6\" type=\"7\" /><platform x=\"9\" y=\"22\" z=\"6\" type=\"0\" /><platform x=\"9\" y=\"23\" z=\"6\" type=\"2\" /><platform x=\"9\" y=\"24\" z=\"6\" type=\"0\" /><platform x=\"9\" y=\"25\" z=\"6\" type=\"7\" /><platform x=\"9\" y=\"26\" z=\"6\" type=\"0\" /><platform x=\"9\" y=\"8\" z=\"7\" type=\"6\" /><platform x=\"9\" y=\"9\" z=\"7\" type=\"6\" /><platform x=\"9\" y=\"10\" z=\"7\" type=\"6\" /><platform x=\"9\" y=\"12\" z=\"7\" type=\"6\" /><platform x=\"9\" y=\"13\" z=\"7\" type=\"6\" /><platform x=\"9\" y=\"14\" z=\"7\" type=\"6\" /><platform x=\"9\" y=\"16\" z=\"7\" type=\"6\" /><platform x=\"9\" y=\"17\" z=\"7\" type=\"6\" /><platform x=\"9\" y=\"18\" z=\"7\" type=\"6\" /><platform x=\"9\" y=\"20\" z=\"7\" type=\"6\" /><platform x=\"9\" y=\"21\" z=\"7\" type=\"6\" /><platform x=\"9\" y=\"22\" z=\"7\" type=\"6\" /><platform x=\"9\" y=\"24\" z=\"7\" type=\"6\" /><platform x=\"9\" y=\"25\" z=\"7\" type=\"6\" /><platform x=\"9\" y=\"26\" z=\"7\" type=\"6\" /><platform x=\"10\" y=\"26\" z=\"7\" type=\"0\" /><platform x=\"9\" y=\"11\" z=\"8\" type=\"6\" /><platform x=\"9\" y=\"15\" z=\"8\" type=\"6\" /><platform x=\"9\" y=\"19\" z=\"8\" type=\"6\" /><platform x=\"9\" y=\"23\" z=\"8\" type=\"6\" /><platform x=\"10\" y=\"26\" z=\"8\" type=\"6\" /><platform x=\"11\" y=\"8\" z=\"8\" type=\"0\" /><platform x=\"11\" y=\"9\" z=\"8\" type=\"7\" /><platform x=\"11\" y=\"10\" z=\"8\" type=\"0\" /><platform x=\"11\" y=\"11\" z=\"8\" type=\"2\" /><platform x=\"11\" y=\"12\" z=\"8\" type=\"0\" /><platform x=\"11\" y=\"13\" z=\"8\" type=\"7\" /><platform x=\"11\" y=\"14\" z=\"8\" type=\"0\" /><platform x=\"11\" y=\"15\" z=\"8\" type=\"2\" /><platform x=\"11\" y=\"16\" z=\"8\" type=\"0\" /><platform x=\"11\" y=\"17\" z=\"8\" type=\"7\" /><platform x=\"11\" y=\"18\" z=\"8\" type=\"0\" /><platform x=\"11\" y=\"19\" z=\"8\" type=\"2\" /><platform x=\"11\" y=\"20\" z=\"8\" type=\"0\" /><platform x=\"11\" y=\"21\" z=\"8\" type=\"7\" /><platform x=\"11\" y=\"22\" z=\"8\" type=\"0\" /><platform x=\"11\" y=\"23\" z=\"8\" type=\"2\" /><platform x=\"11\" y=\"24\" z=\"8\" type=\"0\" /><platform x=\"11\" y=\"25\" z=\"8\" type=\"7\" /><platform x=\"11\" y=\"26\" z=\"8\" type=\"0\" /><platform x=\"11\" y=\"8\" z=\"9\" type=\"6\" /><platform x=\"11\" y=\"9\" z=\"9\" type=\"6\" /><platform x=\"11\" y=\"10\" z=\"9\" type=\"6\" /><platform x=\"11\" y=\"12\" z=\"9\" type=\"6\" /><platform x=\"11\" y=\"13\" z=\"9\" type=\"6\" /><platform x=\"11\" y=\"14\" z=\"9\" type=\"6\" /><platform x=\"11\" y=\"16\" z=\"9\" type=\"6\" /><platform x=\"11\" y=\"17\" z=\"9\" type=\"6\" /><platform x=\"11\" y=\"18\" z=\"9\" type=\"6\" /><platform x=\"11\" y=\"20\" z=\"9\" type=\"6\" /><platform x=\"11\" y=\"21\" z=\"9\" type=\"6\" /><platform x=\"11\" y=\"22\" z=\"9\" type=\"6\" /><platform x=\"11\" y=\"24\" z=\"9\" type=\"6\" /><platform x=\"11\" y=\"25\" z=\"9\" type=\"6\" /><platform x=\"11\" y=\"26\" z=\"9\" type=\"6\" /><platform x=\"12\" y=\"8\" z=\"9\" type=\"0\" /><platform x=\"11\" y=\"11\" z=\"10\" type=\"6\" /><platform x=\"11\" y=\"15\" z=\"10\" type=\"6\" /><platform x=\"11\" y=\"19\" z=\"10\" type=\"6\" /><platform x=\"11\" y=\"23\" z=\"10\" type=\"6\" /><platform x=\"12\" y=\"8\" z=\"10\" type=\"6\" /><platform x=\"13\" y=\"8\" z=\"10\" type=\"0\" /><platform x=\"13\" y=\"9\" z=\"10\" type=\"7\" /><platform x=\"13\" y=\"10\" z=\"10\" type=\"0\" /><platform x=\"13\" y=\"11\" z=\"10\" type=\"2\" /><platform x=\"13\" y=\"12\" z=\"10\" type=\"0\" /><platform x=\"13\" y=\"13\" z=\"10\" type=\"7\" /><platform x=\"13\" y=\"14\" z=\"10\" type=\"0\" /><platform x=\"13\" y=\"15\" z=\"10\" type=\"2\" /><platform x=\"13\" y=\"16\" z=\"10\" type=\"0\" /><platform x=\"13\" y=\"17\" z=\"10\" type=\"7\" /><platform x=\"13\" y=\"18\" z=\"10\" type=\"0\" /><platform x=\"13\" y=\"19\" z=\"10\" type=\"2\" /><platform x=\"13\" y=\"20\" z=\"10\" type=\"0\" /><platform x=\"13\" y=\"21\" z=\"10\" type=\"7\" /><platform x=\"13\" y=\"22\" z=\"10\" type=\"0\" /><platform x=\"13\" y=\"23\" z=\"10\" type=\"2\" /><platform x=\"13\" y=\"24\" z=\"10\" type=\"0\" /><platform x=\"13\" y=\"25\" z=\"10\" type=\"7\" /><platform x=\"13\" y=\"26\" z=\"10\" type=\"0\" /><platform x=\"13\" y=\"8\" z=\"11\" type=\"6\" /><platform x=\"13\" y=\"9\" z=\"11\" type=\"6\" /><platform x=\"13\" y=\"10\" z=\"11\" type=\"6\" /><platform x=\"13\" y=\"12\" z=\"11\" type=\"6\" /><platform x=\"13\" y=\"13\" z=\"11\" type=\"6\" /><platform x=\"13\" y=\"14\" z=\"11\" type=\"6\" /><platform x=\"13\" y=\"16\" z=\"11\" type=\"6\" /><platform x=\"13\" y=\"17\" z=\"11\" type=\"6\" /><platform x=\"13\" y=\"18\" z=\"11\" type=\"6\" /><platform x=\"13\" y=\"20\" z=\"11\" type=\"6\" /><platform x=\"13\" y=\"21\" z=\"11\" type=\"6\" /><platform x=\"13\" y=\"22\" z=\"11\" type=\"6\" /><platform x=\"13\" y=\"24\" z=\"11\" type=\"6\" /><platform x=\"13\" y=\"25\" z=\"11\" type=\"6\" /><platform x=\"13\" y=\"26\" z=\"11\" type=\"6\" /><platform x=\"14\" y=\"26\" z=\"11\" type=\"0\" /><platform x=\"13\" y=\"11\" z=\"12\" type=\"6\" /><platform x=\"13\" y=\"15\" z=\"12\" type=\"6\" /><platform x=\"13\" y=\"19\" z=\"12\" type=\"6\" /><platform x=\"13\" y=\"23\" z=\"12\" type=\"6\" /><platform x=\"14\" y=\"26\" z=\"12\" type=\"6\" /><platform x=\"15\" y=\"8\" z=\"12\" type=\"4\" /><platform x=\"15\" y=\"9\" z=\"12\" type=\"7\" /><platform x=\"15\" y=\"10\" z=\"12\" type=\"0\" /><platform x=\"15\" y=\"11\" z=\"12\" type=\"2\" /><platform x=\"15\" y=\"12\" z=\"12\" type=\"0\" /><platform x=\"15\" y=\"13\" z=\"12\" type=\"7\" /><platform x=\"15\" y=\"14\" z=\"12\" type=\"0\" /><platform x=\"15\" y=\"15\" z=\"12\" type=\"2\" /><platform x=\"15\" y=\"16\" z=\"12\" type=\"0\" /><platform x=\"15\" y=\"17\" z=\"12\" type=\"7\" /><platform x=\"15\" y=\"18\" z=\"12\" type=\"0\" /><platform x=\"15\" y=\"19\" z=\"12\" type=\"2\" /><platform x=\"15\" y=\"20\" z=\"12\" type=\"0\" /><platform x=\"15\" y=\"21\" z=\"12\" type=\"7\" /><platform x=\"15\" y=\"22\" z=\"12\" type=\"0\" /><platform x=\"15\" y=\"23\" z=\"12\" type=\"2\" /><platform x=\"15\" y=\"24\" z=\"12\" type=\"0\" /><platform x=\"15\" y=\"25\" z=\"12\" type=\"7\" /><platform x=\"15\" y=\"26\" z=\"12\" type=\"0\" /><platform x=\"15\" y=\"9\" z=\"13\" type=\"6\" /><platform x=\"15\" y=\"10\" z=\"13\" type=\"6\" /><platform x=\"15\" y=\"12\" z=\"13\" type=\"6\" /><platform x=\"15\" y=\"13\" z=\"13\" type=\"6\" /><platform x=\"15\" y=\"14\" z=\"13\" type=\"6\" /><platform x=\"15\" y=\"16\" z=\"13\" type=\"6\" /><platform x=\"15\" y=\"17\" z=\"13\" type=\"6\" /><platform x=\"15\" y=\"18\" z=\"13\" type=\"6\" /><platform x=\"15\" y=\"20\" z=\"13\" type=\"6\" /><platform x=\"15\" y=\"21\" z=\"13\" type=\"6\" /><platform x=\"15\" y=\"22\" z=\"13\" type=\"6\" /><platform x=\"15\" y=\"24\" z=\"13\" type=\"6\" /><platform x=\"15\" y=\"25\" z=\"13\" type=\"6\" /><platform x=\"15\" y=\"26\" z=\"13\" type=\"6\" /><platform x=\"15\" y=\"11\" z=\"14\" type=\"6\" /><platform x=\"15\" y=\"15\" z=\"14\" type=\"6\" /><platform x=\"15\" y=\"19\" z=\"14\" type=\"6\" /><platform x=\"15\" y=\"23\" z=\"14\" type=\"6\" /></map>"); map.push("<map name=\"28. CRITICAL POINT\"><platform x=\"14\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"18\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"17\" z=\"0\" type=\"1\" /><platform x=\"15\" y=\"18\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"18\" z=\"0\" type=\"0\" /><platform x=\"20\" y=\"11\" z=\"0\" type=\"4\" /><platform x=\"20\" y=\"12\" z=\"0\" type=\"4\" /><platform x=\"20\" y=\"13\" z=\"0\" type=\"4\" /><platform x=\"21\" y=\"11\" z=\"0\" type=\"4\" /><platform x=\"21\" y=\"12\" z=\"0\" type=\"1\" /><platform x=\"21\" y=\"13\" z=\"0\" type=\"4\" /><platform x=\"22\" y=\"11\" z=\"0\" type=\"4\" /><platform x=\"22\" y=\"12\" z=\"0\" type=\"4\" /><platform x=\"22\" y=\"13\" z=\"0\" type=\"4\" /><platform x=\"14\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"18\" z=\"1\" type=\"-1\" /><platform x=\"15\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"21\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"16\" z=\"2\" type=\"5\" /><platform x=\"16\" y=\"16\" z=\"2\" type=\"5\" /><platform x=\"16\" y=\"18\" z=\"2\" type=\"5\" /><platform x=\"21\" y=\"12\" z=\"2\" type=\"6\" /><platform x=\"21\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"14\" y=\"16\" z=\"4\" type=\"0\" /><platform x=\"14\" y=\"17\" z=\"4\" type=\"0\" /><platform x=\"14\" y=\"18\" z=\"4\" type=\"0\" /><platform x=\"15\" y=\"16\" z=\"4\" type=\"0\" /><platform x=\"15\" y=\"18\" z=\"4\" type=\"0\" /><platform x=\"16\" y=\"16\" z=\"4\" type=\"1\" /><platform x=\"16\" y=\"17\" z=\"4\" type=\"0\" /><platform x=\"16\" y=\"18\" z=\"4\" type=\"0\" /><platform x=\"21\" y=\"12\" z=\"4\" type=\"6\" /><platform x=\"14\" y=\"17\" z=\"5\" type=\"6\" /><platform x=\"15\" y=\"16\" z=\"5\" type=\"6\" /><platform x=\"15\" y=\"18\" z=\"5\" type=\"6\" /><platform x=\"16\" y=\"16\" z=\"5\" type=\"6\" /><platform x=\"16\" y=\"17\" z=\"5\" type=\"6\" /><platform x=\"21\" y=\"12\" z=\"5\" type=\"6\" /><platform x=\"14\" y=\"16\" z=\"6\" type=\"5\" /><platform x=\"14\" y=\"18\" z=\"6\" type=\"5\" /><platform x=\"16\" y=\"16\" z=\"6\" type=\"6\" /><platform x=\"16\" y=\"18\" z=\"6\" type=\"5\" /><platform x=\"21\" y=\"12\" z=\"6\" type=\"5\" /><platform x=\"16\" y=\"16\" z=\"7\" type=\"6\" /><platform x=\"15\" y=\"15\" z=\"8\" type=\"0\" /><platform x=\"15\" y=\"16\" z=\"8\" type=\"0\" /><platform x=\"15\" y=\"17\" z=\"8\" type=\"0\" /><platform x=\"16\" y=\"15\" z=\"8\" type=\"0\" /><platform x=\"16\" y=\"16\" z=\"8\" type=\"6\" /><platform x=\"16\" y=\"17\" z=\"8\" type=\"0\" /><platform x=\"17\" y=\"15\" z=\"8\" type=\"1\" /><platform x=\"17\" y=\"16\" z=\"8\" type=\"0\" /><platform x=\"17\" y=\"17\" z=\"8\" type=\"0\" /><platform x=\"15\" y=\"16\" z=\"9\" type=\"6\" /><platform x=\"16\" y=\"15\" z=\"9\" type=\"6\" /><platform x=\"16\" y=\"16\" z=\"9\" type=\"6\" /><platform x=\"16\" y=\"17\" z=\"9\" type=\"6\" /><platform x=\"17\" y=\"16\" z=\"9\" type=\"6\" /><platform x=\"15\" y=\"15\" z=\"10\" type=\"5\" /><platform x=\"15\" y=\"17\" z=\"10\" type=\"5\" /><platform x=\"16\" y=\"16\" z=\"10\" type=\"6\" /><platform x=\"17\" y=\"17\" z=\"10\" type=\"5\" /></map>"); map.push("<map name=\"29. BUSH\"><platform x=\"16\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"14\" z=\"1\" type=\"7\" /><platform x=\"15\" y=\"15\" z=\"1\" type=\"0\" /><platform x=\"15\" y=\"16\" z=\"1\" type=\"7\" /><platform x=\"16\" y=\"14\" z=\"1\" type=\"0\" /><platform x=\"16\" y=\"15\" z=\"1\" type=\"-1\" /><platform x=\"16\" y=\"16\" z=\"1\" type=\"0\" /><platform x=\"17\" y=\"14\" z=\"1\" type=\"7\" /><platform x=\"17\" y=\"15\" z=\"1\" type=\"0\" /><platform x=\"17\" y=\"16\" z=\"1\" type=\"7\" /><platform x=\"13\" y=\"15\" z=\"2\" type=\"0\" /><platform x=\"14\" y=\"15\" z=\"2\" type=\"0\" /><platform x=\"15\" y=\"14\" z=\"2\" type=\"6\" /><platform x=\"15\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"15\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"16\" y=\"12\" z=\"2\" type=\"0\" /><platform x=\"16\" y=\"13\" z=\"2\" type=\"0\" /><platform x=\"16\" y=\"14\" z=\"2\" type=\"6\" /><platform x=\"16\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"16\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"16\" y=\"17\" z=\"2\" type=\"0\" /><platform x=\"16\" y=\"18\" z=\"2\" type=\"0\" /><platform x=\"17\" y=\"14\" z=\"2\" type=\"6\" /><platform x=\"17\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"17\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"18\" y=\"15\" z=\"2\" type=\"0\" /><platform x=\"19\" y=\"15\" z=\"2\" type=\"0\" /><platform x=\"11\" y=\"15\" z=\"3\" type=\"0\" /><platform x=\"12\" y=\"15\" z=\"3\" type=\"0\" /><platform x=\"13\" y=\"15\" z=\"3\" type=\"6\" /><platform x=\"14\" y=\"15\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"14\" z=\"3\" type=\"5\" /><platform x=\"15\" y=\"16\" z=\"3\" type=\"5\" /><platform x=\"15\" y=\"19\" z=\"3\" type=\"0\" /><platform x=\"16\" y=\"11\" z=\"3\" type=\"1\" /><platform x=\"16\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"13\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"17\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"19\" z=\"3\" type=\"0\" /><platform x=\"17\" y=\"14\" z=\"3\" type=\"5\" /><platform x=\"17\" y=\"16\" z=\"3\" type=\"5\" /><platform x=\"17\" y=\"19\" z=\"3\" type=\"0\" /><platform x=\"20\" y=\"14\" z=\"3\" type=\"0\" /><platform x=\"20\" y=\"15\" z=\"3\" type=\"0\" /><platform x=\"20\" y=\"16\" z=\"3\" type=\"0\" /><platform x=\"21\" y=\"14\" z=\"3\" type=\"0\" /><platform x=\"21\" y=\"15\" z=\"3\" type=\"2\" /><platform x=\"21\" y=\"16\" z=\"3\" type=\"0\" /><platform x=\"22\" y=\"14\" z=\"3\" type=\"0\" /><platform x=\"22\" y=\"15\" z=\"3\" type=\"0\" /><platform x=\"22\" y=\"16\" z=\"3\" type=\"0\" /><platform x=\"9\" y=\"15\" z=\"4\" type=\"0\" /><platform x=\"10\" y=\"15\" z=\"4\" type=\"0\" /><platform x=\"11\" y=\"15\" z=\"4\" type=\"6\" /><platform x=\"12\" y=\"15\" z=\"4\" type=\"6\" /><platform x=\"14\" y=\"20\" z=\"4\" type=\"0\" /><platform x=\"15\" y=\"19\" z=\"4\" type=\"6\" /><platform x=\"16\" y=\"11\" z=\"4\" type=\"6\" /><platform x=\"16\" y=\"19\" z=\"4\" type=\"6\" /><platform x=\"17\" y=\"19\" z=\"4\" type=\"6\" /><platform x=\"18\" y=\"15\" z=\"4\" type=\"6\" /><platform x=\"18\" y=\"20\" z=\"4\" type=\"0\" /><platform x=\"19\" y=\"15\" z=\"4\" type=\"6\" /><platform x=\"20\" y=\"14\" z=\"4\" type=\"6\" /><platform x=\"20\" y=\"15\" z=\"4\" type=\"6\" /><platform x=\"20\" y=\"16\" z=\"4\" type=\"6\" /><platform x=\"21\" y=\"14\" z=\"4\" type=\"6\" /><platform x=\"21\" y=\"16\" z=\"4\" type=\"6\" /><platform x=\"22\" y=\"14\" z=\"4\" type=\"6\" /><platform x=\"22\" y=\"15\" z=\"4\" type=\"6\" /><platform x=\"22\" y=\"16\" z=\"4\" type=\"6\" /><platform x=\"23\" y=\"15\" z=\"4\" type=\"0\" /><platform x=\"24\" y=\"15\" z=\"4\" type=\"0\" /><platform x=\"9\" y=\"14\" z=\"5\" type=\"0\" /><platform x=\"9\" y=\"15\" z=\"5\" type=\"6\" /><platform x=\"10\" y=\"15\" z=\"5\" type=\"6\" /><platform x=\"13\" y=\"21\" z=\"5\" type=\"0\" /><platform x=\"14\" y=\"20\" z=\"5\" type=\"6\" /><platform x=\"16\" y=\"11\" z=\"5\" type=\"6\" /><platform x=\"18\" y=\"20\" z=\"5\" type=\"6\" /><platform x=\"19\" y=\"21\" z=\"5\" type=\"0\" /><platform x=\"23\" y=\"15\" z=\"5\" type=\"6\" /><platform x=\"24\" y=\"15\" z=\"5\" type=\"6\" /><platform x=\"25\" y=\"14\" z=\"5\" type=\"0\" /><platform x=\"25\" y=\"15\" z=\"5\" type=\"7\" /><platform x=\"25\" y=\"16\" z=\"5\" type=\"0\" /><platform x=\"26\" y=\"14\" z=\"5\" type=\"7\" /><platform x=\"26\" y=\"15\" z=\"5\" type=\"2\" /><platform x=\"26\" y=\"16\" z=\"5\" type=\"7\" /><platform x=\"27\" y=\"14\" z=\"5\" type=\"0\" /><platform x=\"27\" y=\"15\" z=\"5\" type=\"7\" /><platform x=\"27\" y=\"16\" z=\"5\" type=\"0\" /><platform x=\"9\" y=\"14\" z=\"6\" type=\"6\" /><platform x=\"10\" y=\"14\" z=\"6\" type=\"0\" /><platform x=\"12\" y=\"22\" z=\"6\" type=\"0\" /><platform x=\"13\" y=\"21\" z=\"6\" type=\"6\" /><platform x=\"16\" y=\"11\" z=\"6\" type=\"6\" /><platform x=\"19\" y=\"21\" z=\"6\" type=\"6\" /><platform x=\"20\" y=\"22\" z=\"6\" type=\"0\" /><platform x=\"25\" y=\"14\" z=\"6\" type=\"6\" /><platform x=\"25\" y=\"15\" z=\"6\" type=\"6\" /><platform x=\"25\" y=\"16\" z=\"6\" type=\"6\" /><platform x=\"26\" y=\"14\" z=\"6\" type=\"6\" /><platform x=\"26\" y=\"16\" z=\"6\" type=\"6\" /><platform x=\"27\" y=\"14\" z=\"6\" type=\"6\" /><platform x=\"27\" y=\"15\" z=\"6\" type=\"6\" /><platform x=\"27\" y=\"16\" z=\"6\" type=\"6\" /><platform x=\"10\" y=\"14\" z=\"7\" type=\"6\" /><platform x=\"10\" y=\"15\" z=\"7\" type=\"0\" /><platform x=\"11\" y=\"23\" z=\"7\" type=\"0\" /><platform x=\"12\" y=\"22\" z=\"7\" type=\"6\" /><platform x=\"16\" y=\"11\" z=\"7\" type=\"6\" /><platform x=\"20\" y=\"22\" z=\"7\" type=\"6\" /><platform x=\"21\" y=\"23\" z=\"7\" type=\"0\" /><platform x=\"25\" y=\"14\" z=\"7\" type=\"6\" /><platform x=\"25\" y=\"15\" z=\"7\" type=\"6\" /><platform x=\"25\" y=\"16\" z=\"7\" type=\"6\" /><platform x=\"26\" y=\"14\" z=\"7\" type=\"6\" /><platform x=\"26\" y=\"15\" z=\"7\" type=\"6\" /><platform x=\"26\" y=\"16\" z=\"7\" type=\"6\" /><platform x=\"27\" y=\"14\" z=\"7\" type=\"6\" /><platform x=\"27\" y=\"15\" z=\"7\" type=\"6\" /><platform x=\"27\" y=\"16\" z=\"7\" type=\"6\" /><platform x=\"10\" y=\"15\" z=\"8\" type=\"6\" /><platform x=\"16\" y=\"10\" z=\"8\" type=\"4\" /><platform x=\"11\" y=\"23\" z=\"9\" type=\"5\" /><platform x=\"21\" y=\"23\" z=\"9\" type=\"5\" /></map>"); map.push("<map name=\"30. ILLUSION\"><platform x=\"9\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"21\" y=\"10\" z=\"0\" type=\"0\" /><platform x=\"22\" y=\"10\" z=\"0\" type=\"0\" /><platform x=\"22\" y=\"11\" z=\"0\" type=\"0\" /><platform x=\"9\" y=\"20\" z=\"1\" type=\"0\" /><platform x=\"9\" y=\"21\" z=\"1\" type=\"0\" /><platform x=\"11\" y=\"23\" z=\"1\" type=\"0\" /><platform x=\"12\" y=\"23\" z=\"1\" type=\"0\" /><platform x=\"19\" y=\"10\" z=\"1\" type=\"0\" /><platform x=\"20\" y=\"10\" z=\"1\" type=\"0\" /><platform x=\"22\" y=\"12\" z=\"1\" type=\"0\" /><platform x=\"22\" y=\"13\" z=\"1\" type=\"0\" /><platform x=\"9\" y=\"18\" z=\"2\" type=\"0\" /><platform x=\"9\" y=\"19\" z=\"2\" type=\"0\" /><platform x=\"9\" y=\"23\" z=\"2\" type=\"5\" /><platform x=\"13\" y=\"23\" z=\"2\" type=\"0\" /><platform x=\"14\" y=\"23\" z=\"2\" type=\"0\" /><platform x=\"17\" y=\"10\" z=\"2\" type=\"0\" /><platform x=\"18\" y=\"10\" z=\"2\" type=\"0\" /><platform x=\"22\" y=\"10\" z=\"2\" type=\"5\" /><platform x=\"22\" y=\"14\" z=\"2\" type=\"0\" /><platform x=\"22\" y=\"15\" z=\"2\" type=\"0\" /><platform x=\"9\" y=\"16\" z=\"3\" type=\"0\" /><platform x=\"9\" y=\"17\" z=\"3\" type=\"0\" /><platform x=\"15\" y=\"10\" z=\"3\" type=\"0\" /><platform x=\"15\" y=\"23\" z=\"3\" type=\"0\" /><platform x=\"16\" y=\"10\" z=\"3\" type=\"0\" /><platform x=\"16\" y=\"23\" z=\"3\" type=\"0\" /><platform x=\"22\" y=\"16\" z=\"3\" type=\"0\" /><platform x=\"22\" y=\"17\" z=\"3\" type=\"0\" /><platform x=\"9\" y=\"14\" z=\"4\" type=\"0\" /><platform x=\"9\" y=\"15\" z=\"4\" type=\"0\" /><platform x=\"13\" y=\"10\" z=\"4\" type=\"0\" /><platform x=\"14\" y=\"10\" z=\"4\" type=\"0\" /><platform x=\"17\" y=\"23\" z=\"4\" type=\"0\" /><platform x=\"18\" y=\"23\" z=\"4\" type=\"0\" /><platform x=\"22\" y=\"18\" z=\"4\" type=\"0\" /><platform x=\"22\" y=\"19\" z=\"4\" type=\"0\" /><platform x=\"9\" y=\"12\" z=\"5\" type=\"0\" /><platform x=\"9\" y=\"13\" z=\"5\" type=\"0\" /><platform x=\"11\" y=\"10\" z=\"5\" type=\"0\" /><platform x=\"12\" y=\"10\" z=\"5\" type=\"0\" /><platform x=\"19\" y=\"23\" z=\"5\" type=\"0\" /><platform x=\"20\" y=\"23\" z=\"5\" type=\"0\" /><platform x=\"22\" y=\"20\" z=\"5\" type=\"0\" /><platform x=\"22\" y=\"21\" z=\"5\" type=\"0\" /><platform x=\"9\" y=\"10\" z=\"6\" type=\"0\" /><platform x=\"9\" y=\"11\" z=\"6\" type=\"0\" /><platform x=\"10\" y=\"10\" z=\"6\" type=\"0\" /><platform x=\"21\" y=\"23\" z=\"6\" type=\"0\" /><platform x=\"22\" y=\"22\" z=\"6\" type=\"0\" /><platform x=\"22\" y=\"23\" z=\"6\" type=\"1\" /><platform x=\"9\" y=\"10\" z=\"7\" type=\"-1\" /><platform x=\"25\" y=\"26\" z=\"7\" type=\"1\" /><platform x=\"14\" y=\"15\" z=\"8\" type=\"4\" /><platform x=\"18\" y=\"19\" z=\"8\" type=\"1\" /><platform x=\"22\" y=\"23\" z=\"10\" type=\"1\" /></map>"); map.push("<map name=\"35. WATERFALL\"><platform x=\"0\" y=\"2\" z=\"0\" type=\"0\" /><platform x=\"0\" y=\"3\" z=\"0\" type=\"0\" /><platform x=\"0\" y=\"4\" z=\"0\" type=\"0\" /><platform x=\"0\" y=\"5\" z=\"0\" type=\"0\" /><platform x=\"0\" y=\"6\" z=\"0\" type=\"0\" /><platform x=\"0\" y=\"7\" z=\"0\" type=\"0\" /><platform x=\"0\" y=\"8\" z=\"0\" type=\"0\" /><platform x=\"0\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"0\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"0\" y=\"24\" z=\"0\" type=\"0\" /><platform x=\"0\" y=\"25\" z=\"0\" type=\"0\" /><platform x=\"0\" y=\"26\" z=\"0\" type=\"0\" /><platform x=\"0\" y=\"27\" z=\"0\" type=\"0\" /><platform x=\"0\" y=\"28\" z=\"0\" type=\"0\" /><platform x=\"1\" y=\"2\" z=\"0\" type=\"0\" /><platform x=\"1\" y=\"8\" z=\"0\" type=\"0\" /><platform x=\"1\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"1\" y=\"28\" z=\"0\" type=\"0\" /><platform x=\"2\" y=\"2\" z=\"0\" type=\"0\" /><platform x=\"2\" y=\"8\" z=\"0\" type=\"0\" /><platform x=\"2\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"2\" y=\"28\" z=\"0\" type=\"0\" /><platform x=\"3\" y=\"2\" z=\"0\" type=\"0\" /><platform x=\"3\" y=\"8\" z=\"0\" type=\"0\" /><platform x=\"3\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"3\" y=\"28\" z=\"0\" type=\"0\" /><platform x=\"4\" y=\"2\" z=\"0\" type=\"0\" /><platform x=\"4\" y=\"8\" z=\"0\" type=\"0\" /><platform x=\"4\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"4\" y=\"28\" z=\"0\" type=\"0\" /><platform x=\"5\" y=\"2\" z=\"0\" type=\"0\" /><platform x=\"5\" y=\"8\" z=\"0\" type=\"0\" /><platform x=\"5\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"5\" y=\"28\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"2\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"3\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"4\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"5\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"6\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"7\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"8\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"24\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"25\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"26\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"27\" z=\"0\" type=\"0\" /><platform x=\"6\" y=\"28\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"10\" z=\"0\" type=\"0\" /><platform x=\"8\" y=\"20\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"18\" z=\"0\" type=\"0\" /><platform x=\"11\" y=\"15\" z=\"0\" type=\"1\" /><platform x=\"12\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"13\" z=\"0\" type=\"1\" /><platform x=\"13\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"17\" z=\"0\" type=\"1\" /><platform x=\"14\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"15\" z=\"0\" type=\"1\" /><platform x=\"16\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"18\" z=\"0\" type=\"0\" /><platform x=\"18\" y=\"10\" z=\"0\" type=\"0\" /><platform x=\"18\" y=\"20\" z=\"0\" type=\"0\" /><platform x=\"20\" y=\"2\" z=\"0\" type=\"0\" /><platform x=\"20\" y=\"3\" z=\"0\" type=\"0\" /><platform x=\"20\" y=\"4\" z=\"0\" type=\"0\" /><platform x=\"20\" y=\"5\" z=\"0\" type=\"0\" /><platform x=\"20\" y=\"6\" z=\"0\" type=\"0\" /><platform x=\"20\" y=\"7\" z=\"0\" type=\"0\" /><platform x=\"20\" y=\"8\" z=\"0\" type=\"0\" /><platform x=\"20\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"20\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"20\" y=\"24\" z=\"0\" type=\"0\" /><platform x=\"20\" y=\"25\" z=\"0\" type=\"0\" /><platform x=\"20\" y=\"26\" z=\"0\" type=\"0\" /><platform x=\"20\" y=\"27\" z=\"0\" type=\"0\" /><platform x=\"20\" y=\"28\" z=\"0\" type=\"0\" /><platform x=\"21\" y=\"2\" z=\"0\" type=\"0\" /><platform x=\"21\" y=\"8\" z=\"0\" type=\"0\" /><platform x=\"21\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"21\" y=\"28\" z=\"0\" type=\"0\" /><platform x=\"22\" y=\"2\" z=\"0\" type=\"0\" /><platform x=\"22\" y=\"8\" z=\"0\" type=\"0\" /><platform x=\"22\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"22\" y=\"28\" z=\"0\" type=\"0\" /><platform x=\"23\" y=\"2\" z=\"0\" type=\"0\" /><platform x=\"23\" y=\"8\" z=\"0\" type=\"0\" /><platform x=\"23\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"23\" y=\"28\" z=\"0\" type=\"0\" /><platform x=\"24\" y=\"2\" z=\"0\" type=\"0\" /><platform x=\"24\" y=\"8\" z=\"0\" type=\"0\" /><platform x=\"24\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"24\" y=\"28\" z=\"0\" type=\"0\" /><platform x=\"25\" y=\"2\" z=\"0\" type=\"0\" /><platform x=\"25\" y=\"8\" z=\"0\" type=\"0\" /><platform x=\"25\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"25\" y=\"28\" z=\"0\" type=\"0\" /><platform x=\"26\" y=\"2\" z=\"0\" type=\"0\" /><platform x=\"26\" y=\"3\" z=\"0\" type=\"0\" /><platform x=\"26\" y=\"4\" z=\"0\" type=\"0\" /><platform x=\"26\" y=\"5\" z=\"0\" type=\"0\" /><platform x=\"26\" y=\"6\" z=\"0\" type=\"0\" /><platform x=\"26\" y=\"7\" z=\"0\" type=\"0\" /><platform x=\"26\" y=\"8\" z=\"0\" type=\"0\" /><platform x=\"26\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"26\" y=\"23\" z=\"0\" type=\"0\" /><platform x=\"26\" y=\"24\" z=\"0\" type=\"0\" /><platform x=\"26\" y=\"25\" z=\"0\" type=\"0\" /><platform x=\"26\" y=\"26\" z=\"0\" type=\"0\" /><platform x=\"26\" y=\"27\" z=\"0\" type=\"0\" /><platform x=\"26\" y=\"28\" z=\"0\" type=\"0\" /><platform x=\"0\" y=\"2\" z=\"1\" type=\"6\" /><platform x=\"0\" y=\"3\" z=\"1\" type=\"6\" /><platform x=\"0\" y=\"4\" z=\"1\" type=\"6\" /><platform x=\"0\" y=\"5\" z=\"1\" type=\"6\" /><platform x=\"0\" y=\"6\" z=\"1\" type=\"6\" /><platform x=\"0\" y=\"7\" z=\"1\" type=\"6\" /><platform x=\"0\" y=\"8\" z=\"1\" type=\"6\" /><platform x=\"0\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"0\" y=\"23\" z=\"1\" type=\"6\" /><platform x=\"0\" y=\"24\" z=\"1\" type=\"6\" /><platform x=\"0\" y=\"25\" z=\"1\" type=\"6\" /><platform x=\"0\" y=\"26\" z=\"1\" type=\"6\" /><platform x=\"0\" y=\"27\" z=\"1\" type=\"6\" /><platform x=\"0\" y=\"28\" z=\"1\" type=\"6\" /><platform x=\"1\" y=\"2\" z=\"1\" type=\"6\" /><platform x=\"1\" y=\"8\" z=\"1\" type=\"6\" /><platform x=\"1\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"1\" y=\"28\" z=\"1\" type=\"6\" /><platform x=\"2\" y=\"2\" z=\"1\" type=\"6\" /><platform x=\"2\" y=\"8\" z=\"1\" type=\"6\" /><platform x=\"2\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"2\" y=\"28\" z=\"1\" type=\"6\" /><platform x=\"3\" y=\"2\" z=\"1\" type=\"6\" /><platform x=\"3\" y=\"8\" z=\"1\" type=\"6\" /><platform x=\"3\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"3\" y=\"28\" z=\"1\" type=\"6\" /><platform x=\"4\" y=\"2\" z=\"1\" type=\"6\" /><platform x=\"4\" y=\"8\" z=\"1\" type=\"6\" /><platform x=\"4\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"4\" y=\"28\" z=\"1\" type=\"6\" /><platform x=\"5\" y=\"2\" z=\"1\" type=\"6\" /><platform x=\"5\" y=\"8\" z=\"1\" type=\"6\" /><platform x=\"5\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"5\" y=\"28\" z=\"1\" type=\"6\" /><platform x=\"6\" y=\"2\" z=\"1\" type=\"6\" /><platform x=\"6\" y=\"3\" z=\"1\" type=\"6\" /><platform x=\"6\" y=\"4\" z=\"1\" type=\"6\" /><platform x=\"6\" y=\"5\" z=\"1\" type=\"6\" /><platform x=\"6\" y=\"6\" z=\"1\" type=\"6\" /><platform x=\"6\" y=\"7\" z=\"1\" type=\"6\" /><platform x=\"6\" y=\"8\" z=\"1\" type=\"6\" /><platform x=\"6\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"6\" y=\"23\" z=\"1\" type=\"6\" /><platform x=\"6\" y=\"24\" z=\"1\" type=\"6\" /><platform x=\"6\" y=\"25\" z=\"1\" type=\"6\" /><platform x=\"6\" y=\"26\" z=\"1\" type=\"6\" /><platform x=\"6\" y=\"27\" z=\"1\" type=\"6\" /><platform x=\"6\" y=\"28\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"15\" z=\"1\" type=\"-1\" /><platform x=\"20\" y=\"2\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"3\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"4\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"5\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"6\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"7\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"8\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"23\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"24\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"25\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"26\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"27\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"28\" z=\"1\" type=\"6\" /><platform x=\"21\" y=\"2\" z=\"1\" type=\"6\" /><platform x=\"21\" y=\"8\" z=\"1\" type=\"6\" /><platform x=\"21\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"21\" y=\"28\" z=\"1\" type=\"6\" /><platform x=\"22\" y=\"2\" z=\"1\" type=\"6\" /><platform x=\"22\" y=\"8\" z=\"1\" type=\"6\" /><platform x=\"22\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"22\" y=\"28\" z=\"1\" type=\"6\" /><platform x=\"23\" y=\"2\" z=\"1\" type=\"6\" /><platform x=\"23\" y=\"8\" z=\"1\" type=\"6\" /><platform x=\"23\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"23\" y=\"28\" z=\"1\" type=\"6\" /><platform x=\"24\" y=\"2\" z=\"1\" type=\"6\" /><platform x=\"24\" y=\"8\" z=\"1\" type=\"6\" /><platform x=\"24\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"24\" y=\"28\" z=\"1\" type=\"6\" /><platform x=\"25\" y=\"2\" z=\"1\" type=\"6\" /><platform x=\"25\" y=\"8\" z=\"1\" type=\"6\" /><platform x=\"25\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"25\" y=\"28\" z=\"1\" type=\"6\" /><platform x=\"26\" y=\"2\" z=\"1\" type=\"6\" /><platform x=\"26\" y=\"3\" z=\"1\" type=\"6\" /><platform x=\"26\" y=\"4\" z=\"1\" type=\"6\" /><platform x=\"26\" y=\"5\" z=\"1\" type=\"6\" /><platform x=\"26\" y=\"6\" z=\"1\" type=\"6\" /><platform x=\"26\" y=\"7\" z=\"1\" type=\"6\" /><platform x=\"26\" y=\"8\" z=\"1\" type=\"6\" /><platform x=\"26\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"26\" y=\"23\" z=\"1\" type=\"6\" /><platform x=\"26\" y=\"24\" z=\"1\" type=\"6\" /><platform x=\"26\" y=\"25\" z=\"1\" type=\"6\" /><platform x=\"26\" y=\"26\" z=\"1\" type=\"6\" /><platform x=\"26\" y=\"27\" z=\"1\" type=\"6\" /><platform x=\"26\" y=\"28\" z=\"1\" type=\"6\" /><platform x=\"1\" y=\"3\" z=\"3\" type=\"0\" /><platform x=\"1\" y=\"4\" z=\"3\" type=\"0\" /><platform x=\"1\" y=\"5\" z=\"3\" type=\"0\" /><platform x=\"1\" y=\"6\" z=\"3\" type=\"0\" /><platform x=\"1\" y=\"7\" z=\"3\" type=\"0\" /><platform x=\"1\" y=\"23\" z=\"3\" type=\"0\" /><platform x=\"1\" y=\"24\" z=\"3\" type=\"0\" /><platform x=\"1\" y=\"25\" z=\"3\" type=\"0\" /><platform x=\"1\" y=\"26\" z=\"3\" type=\"0\" /><platform x=\"1\" y=\"27\" z=\"3\" type=\"0\" /><platform x=\"2\" y=\"3\" z=\"3\" type=\"0\" /><platform x=\"2\" y=\"7\" z=\"3\" type=\"0\" /><platform x=\"2\" y=\"23\" z=\"3\" type=\"0\" /><platform x=\"2\" y=\"27\" z=\"3\" type=\"0\" /><platform x=\"3\" y=\"3\" z=\"3\" type=\"0\" /><platform x=\"3\" y=\"7\" z=\"3\" type=\"0\" /><platform x=\"3\" y=\"23\" z=\"3\" type=\"0\" /><platform x=\"3\" y=\"27\" z=\"3\" type=\"0\" /><platform x=\"4\" y=\"3\" z=\"3\" type=\"0\" /><platform x=\"4\" y=\"7\" z=\"3\" type=\"0\" /><platform x=\"4\" y=\"23\" z=\"3\" type=\"0\" /><platform x=\"4\" y=\"27\" z=\"3\" type=\"0\" /><platform x=\"5\" y=\"3\" z=\"3\" type=\"0\" /><platform x=\"5\" y=\"4\" z=\"3\" type=\"0\" /><platform x=\"5\" y=\"5\" z=\"3\" type=\"0\" /><platform x=\"5\" y=\"6\" z=\"3\" type=\"0\" /><platform x=\"5\" y=\"7\" z=\"3\" type=\"0\" /><platform x=\"5\" y=\"23\" z=\"3\" type=\"0\" /><platform x=\"5\" y=\"24\" z=\"3\" type=\"0\" /><platform x=\"5\" y=\"25\" z=\"3\" type=\"0\" /><platform x=\"5\" y=\"26\" z=\"3\" type=\"0\" /><platform x=\"5\" y=\"27\" z=\"3\" type=\"0\" /><platform x=\"21\" y=\"3\" z=\"3\" type=\"0\" /><platform x=\"21\" y=\"4\" z=\"3\" type=\"0\" /><platform x=\"21\" y=\"5\" z=\"3\" type=\"0\" /><platform x=\"21\" y=\"6\" z=\"3\" type=\"0\" /><platform x=\"21\" y=\"7\" z=\"3\" type=\"0\" /><platform x=\"21\" y=\"23\" z=\"3\" type=\"0\" /><platform x=\"21\" y=\"24\" z=\"3\" type=\"0\" /><platform x=\"21\" y=\"25\" z=\"3\" type=\"0\" /><platform x=\"21\" y=\"26\" z=\"3\" type=\"0\" /><platform x=\"21\" y=\"27\" z=\"3\" type=\"0\" /><platform x=\"22\" y=\"3\" z=\"3\" type=\"0\" /><platform x=\"22\" y=\"7\" z=\"3\" type=\"0\" /><platform x=\"22\" y=\"23\" z=\"3\" type=\"0\" /><platform x=\"22\" y=\"27\" z=\"3\" type=\"0\" /><platform x=\"23\" y=\"3\" z=\"3\" type=\"0\" /><platform x=\"23\" y=\"7\" z=\"3\" type=\"0\" /><platform x=\"23\" y=\"23\" z=\"3\" type=\"0\" /><platform x=\"23\" y=\"27\" z=\"3\" type=\"0\" /><platform x=\"24\" y=\"3\" z=\"3\" type=\"0\" /><platform x=\"24\" y=\"7\" z=\"3\" type=\"0\" /><platform x=\"24\" y=\"23\" z=\"3\" type=\"0\" /><platform x=\"24\" y=\"27\" z=\"3\" type=\"0\" /><platform x=\"25\" y=\"3\" z=\"3\" type=\"0\" /><platform x=\"25\" y=\"4\" z=\"3\" type=\"0\" /><platform x=\"25\" y=\"5\" z=\"3\" type=\"0\" /><platform x=\"25\" y=\"6\" z=\"3\" type=\"0\" /><platform x=\"25\" y=\"7\" z=\"3\" type=\"0\" /><platform x=\"25\" y=\"23\" z=\"3\" type=\"0\" /><platform x=\"25\" y=\"24\" z=\"3\" type=\"0\" /><platform x=\"25\" y=\"25\" z=\"3\" type=\"0\" /><platform x=\"25\" y=\"26\" z=\"3\" type=\"0\" /><platform x=\"25\" y=\"27\" z=\"3\" type=\"0\" /><platform x=\"1\" y=\"3\" z=\"4\" type=\"6\" /><platform x=\"1\" y=\"4\" z=\"4\" type=\"6\" /><platform x=\"1\" y=\"5\" z=\"4\" type=\"6\" /><platform x=\"1\" y=\"6\" z=\"4\" type=\"6\" /><platform x=\"1\" y=\"7\" z=\"4\" type=\"6\" /><platform x=\"1\" y=\"23\" z=\"4\" type=\"6\" /><platform x=\"1\" y=\"24\" z=\"4\" type=\"6\" /><platform x=\"1\" y=\"25\" z=\"4\" type=\"6\" /><platform x=\"1\" y=\"26\" z=\"4\" type=\"6\" /><platform x=\"1\" y=\"27\" z=\"4\" type=\"6\" /><platform x=\"2\" y=\"3\" z=\"4\" type=\"6\" /><platform x=\"2\" y=\"7\" z=\"4\" type=\"6\" /><platform x=\"2\" y=\"23\" z=\"4\" type=\"6\" /><platform x=\"2\" y=\"27\" z=\"4\" type=\"6\" /><platform x=\"3\" y=\"3\" z=\"4\" type=\"6\" /><platform x=\"3\" y=\"7\" z=\"4\" type=\"6\" /><platform x=\"3\" y=\"23\" z=\"4\" type=\"6\" /><platform x=\"3\" y=\"27\" z=\"4\" type=\"6\" /><platform x=\"4\" y=\"3\" z=\"4\" type=\"6\" /><platform x=\"4\" y=\"7\" z=\"4\" type=\"6\" /><platform x=\"4\" y=\"23\" z=\"4\" type=\"6\" /><platform x=\"4\" y=\"27\" z=\"4\" type=\"6\" /><platform x=\"5\" y=\"3\" z=\"4\" type=\"6\" /><platform x=\"5\" y=\"4\" z=\"4\" type=\"6\" /><platform x=\"5\" y=\"5\" z=\"4\" type=\"6\" /><platform x=\"5\" y=\"6\" z=\"4\" type=\"6\" /><platform x=\"5\" y=\"7\" z=\"4\" type=\"6\" /><platform x=\"5\" y=\"23\" z=\"4\" type=\"6\" /><platform x=\"5\" y=\"24\" z=\"4\" type=\"6\" /><platform x=\"5\" y=\"25\" z=\"4\" type=\"6\" /><platform x=\"5\" y=\"26\" z=\"4\" type=\"6\" /><platform x=\"5\" y=\"27\" z=\"4\" type=\"6\" /><platform x=\"21\" y=\"3\" z=\"4\" type=\"6\" /><platform x=\"21\" y=\"4\" z=\"4\" type=\"6\" /><platform x=\"21\" y=\"5\" z=\"4\" type=\"6\" /><platform x=\"21\" y=\"6\" z=\"4\" type=\"6\" /><platform x=\"21\" y=\"7\" z=\"4\" type=\"6\" /><platform x=\"21\" y=\"23\" z=\"4\" type=\"6\" /><platform x=\"21\" y=\"24\" z=\"4\" type=\"6\" /><platform x=\"21\" y=\"25\" z=\"4\" type=\"6\" /><platform x=\"21\" y=\"26\" z=\"4\" type=\"6\" /><platform x=\"21\" y=\"27\" z=\"4\" type=\"6\" /><platform x=\"22\" y=\"3\" z=\"4\" type=\"6\" /><platform x=\"22\" y=\"7\" z=\"4\" type=\"6\" /><platform x=\"22\" y=\"23\" z=\"4\" type=\"6\" /><platform x=\"22\" y=\"27\" z=\"4\" type=\"6\" /><platform x=\"23\" y=\"3\" z=\"4\" type=\"6\" /><platform x=\"23\" y=\"7\" z=\"4\" type=\"6\" /><platform x=\"23\" y=\"23\" z=\"4\" type=\"6\" /><platform x=\"23\" y=\"27\" z=\"4\" type=\"6\" /><platform x=\"24\" y=\"3\" z=\"4\" type=\"6\" /><platform x=\"24\" y=\"7\" z=\"4\" type=\"6\" /><platform x=\"24\" y=\"23\" z=\"4\" type=\"6\" /><platform x=\"24\" y=\"27\" z=\"4\" type=\"6\" /><platform x=\"25\" y=\"3\" z=\"4\" type=\"6\" /><platform x=\"25\" y=\"4\" z=\"4\" type=\"6\" /><platform x=\"25\" y=\"5\" z=\"4\" type=\"6\" /><platform x=\"25\" y=\"6\" z=\"4\" type=\"6\" /><platform x=\"25\" y=\"7\" z=\"4\" type=\"6\" /><platform x=\"25\" y=\"23\" z=\"4\" type=\"6\" /><platform x=\"25\" y=\"24\" z=\"4\" type=\"6\" /><platform x=\"25\" y=\"25\" z=\"4\" type=\"6\" /><platform x=\"25\" y=\"26\" z=\"4\" type=\"6\" /><platform x=\"25\" y=\"27\" z=\"4\" type=\"6\" /><platform x=\"13\" y=\"15\" z=\"5\" type=\"1\" /><platform x=\"2\" y=\"4\" z=\"6\" type=\"0\" /><platform x=\"2\" y=\"5\" z=\"6\" type=\"0\" /><platform x=\"2\" y=\"6\" z=\"6\" type=\"0\" /><platform x=\"2\" y=\"24\" z=\"6\" type=\"0\" /><platform x=\"2\" y=\"25\" z=\"6\" type=\"0\" /><platform x=\"2\" y=\"26\" z=\"6\" type=\"0\" /><platform x=\"3\" y=\"4\" z=\"6\" type=\"0\" /><platform x=\"3\" y=\"6\" z=\"6\" type=\"0\" /><platform x=\"3\" y=\"24\" z=\"6\" type=\"0\" /><platform x=\"3\" y=\"26\" z=\"6\" type=\"0\" /><platform x=\"4\" y=\"4\" z=\"6\" type=\"0\" /><platform x=\"4\" y=\"5\" z=\"6\" type=\"0\" /><platform x=\"4\" y=\"6\" z=\"6\" type=\"0\" /><platform x=\"4\" y=\"24\" z=\"6\" type=\"0\" /><platform x=\"4\" y=\"25\" z=\"6\" type=\"0\" /><platform x=\"4\" y=\"26\" z=\"6\" type=\"0\" /><platform x=\"13\" y=\"15\" z=\"6\" type=\"6\" /><platform x=\"22\" y=\"4\" z=\"6\" type=\"0\" /><platform x=\"22\" y=\"5\" z=\"6\" type=\"0\" /><platform x=\"22\" y=\"6\" z=\"6\" type=\"0\" /><platform x=\"22\" y=\"24\" z=\"6\" type=\"0\" /><platform x=\"22\" y=\"25\" z=\"6\" type=\"0\" /><platform x=\"22\" y=\"26\" z=\"6\" type=\"0\" /><platform x=\"23\" y=\"4\" z=\"6\" type=\"0\" /><platform x=\"23\" y=\"6\" z=\"6\" type=\"0\" /><platform x=\"23\" y=\"24\" z=\"6\" type=\"0\" /><platform x=\"23\" y=\"26\" z=\"6\" type=\"0\" /><platform x=\"24\" y=\"4\" z=\"6\" type=\"0\" /><platform x=\"24\" y=\"5\" z=\"6\" type=\"0\" /><platform x=\"24\" y=\"6\" z=\"6\" type=\"0\" /><platform x=\"24\" y=\"24\" z=\"6\" type=\"0\" /><platform x=\"24\" y=\"25\" z=\"6\" type=\"0\" /><platform x=\"24\" y=\"26\" z=\"6\" type=\"0\" /><platform x=\"2\" y=\"4\" z=\"7\" type=\"6\" /><platform x=\"2\" y=\"5\" z=\"7\" type=\"6\" /><platform x=\"2\" y=\"6\" z=\"7\" type=\"6\" /><platform x=\"2\" y=\"24\" z=\"7\" type=\"6\" /><platform x=\"2\" y=\"25\" z=\"7\" type=\"6\" /><platform x=\"2\" y=\"26\" z=\"7\" type=\"6\" /><platform x=\"3\" y=\"4\" z=\"7\" type=\"6\" /><platform x=\"3\" y=\"6\" z=\"7\" type=\"6\" /><platform x=\"3\" y=\"24\" z=\"7\" type=\"6\" /><platform x=\"3\" y=\"26\" z=\"7\" type=\"6\" /><platform x=\"4\" y=\"4\" z=\"7\" type=\"6\" /><platform x=\"4\" y=\"5\" z=\"7\" type=\"6\" /><platform x=\"4\" y=\"6\" z=\"7\" type=\"6\" /><platform x=\"4\" y=\"24\" z=\"7\" type=\"6\" /><platform x=\"4\" y=\"25\" z=\"7\" type=\"6\" /><platform x=\"4\" y=\"26\" z=\"7\" type=\"6\" /><platform x=\"13\" y=\"15\" z=\"7\" type=\"6\" /><platform x=\"22\" y=\"4\" z=\"7\" type=\"6\" /><platform x=\"22\" y=\"5\" z=\"7\" type=\"6\" /><platform x=\"22\" y=\"6\" z=\"7\" type=\"6\" /><platform x=\"22\" y=\"24\" z=\"7\" type=\"6\" /><platform x=\"22\" y=\"25\" z=\"7\" type=\"6\" /><platform x=\"22\" y=\"26\" z=\"7\" type=\"6\" /><platform x=\"23\" y=\"4\" z=\"7\" type=\"6\" /><platform x=\"23\" y=\"6\" z=\"7\" type=\"6\" /><platform x=\"23\" y=\"24\" z=\"7\" type=\"6\" /><platform x=\"23\" y=\"26\" z=\"7\" type=\"6\" /><platform x=\"24\" y=\"4\" z=\"7\" type=\"6\" /><platform x=\"24\" y=\"5\" z=\"7\" type=\"6\" /><platform x=\"24\" y=\"6\" z=\"7\" type=\"6\" /><platform x=\"24\" y=\"24\" z=\"7\" type=\"6\" /><platform x=\"24\" y=\"25\" z=\"7\" type=\"6\" /><platform x=\"24\" y=\"26\" z=\"7\" type=\"6\" /><platform x=\"12\" y=\"14\" z=\"8\" type=\"4\" /><platform x=\"12\" y=\"15\" z=\"8\" type=\"4\" /><platform x=\"12\" y=\"16\" z=\"8\" type=\"4\" /><platform x=\"13\" y=\"14\" z=\"8\" type=\"4\" /><platform x=\"13\" y=\"15\" z=\"8\" type=\"6\" /><platform x=\"13\" y=\"16\" z=\"8\" type=\"4\" /><platform x=\"14\" y=\"14\" z=\"8\" type=\"4\" /><platform x=\"14\" y=\"15\" z=\"8\" type=\"4\" /><platform x=\"14\" y=\"16\" z=\"8\" type=\"4\" /><platform x=\"3\" y=\"5\" z=\"9\" type=\"0\" /><platform x=\"3\" y=\"25\" z=\"9\" type=\"0\" /><platform x=\"13\" y=\"15\" z=\"9\" type=\"6\" /><platform x=\"23\" y=\"5\" z=\"9\" type=\"0\" /><platform x=\"23\" y=\"25\" z=\"9\" type=\"0\" /><platform x=\"3\" y=\"5\" z=\"10\" type=\"6\" /><platform x=\"3\" y=\"25\" z=\"10\" type=\"6\" /><platform x=\"13\" y=\"15\" z=\"10\" type=\"6\" /><platform x=\"23\" y=\"5\" z=\"10\" type=\"6\" /><platform x=\"23\" y=\"25\" z=\"10\" type=\"6\" /><platform x=\"12\" y=\"14\" z=\"11\" type=\"1\" /><platform x=\"12\" y=\"15\" z=\"11\" type=\"1\" /><platform x=\"12\" y=\"16\" z=\"11\" type=\"1\" /><platform x=\"13\" y=\"14\" z=\"11\" type=\"1\" /><platform x=\"13\" y=\"15\" z=\"11\" type=\"6\" /><platform x=\"13\" y=\"16\" z=\"11\" type=\"1\" /><platform x=\"14\" y=\"14\" z=\"11\" type=\"1\" /><platform x=\"14\" y=\"15\" z=\"11\" type=\"1\" /><platform x=\"14\" y=\"16\" z=\"11\" type=\"1\" /><platform x=\"13\" y=\"15\" z=\"12\" type=\"6\" /><platform x=\"11\" y=\"13\" z=\"15\" type=\"1\" /><platform x=\"11\" y=\"17\" z=\"15\" type=\"1\" /><platform x=\"15\" y=\"13\" z=\"15\" type=\"1\" /><platform x=\"15\" y=\"17\" z=\"15\" type=\"1\" /></map>"); map.push("<map name=\"36. CANDLES\"><platform x=\"7\" y=\"16\" z=\"0\" type=\"1\" /><platform x=\"11\" y=\"16\" z=\"0\" type=\"1\" /><platform x=\"12\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"14\" z=\"0\" type=\"4\" /><platform x=\"14\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"18\" z=\"0\" type=\"4\" /><platform x=\"15\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"7\" z=\"0\" type=\"1\" /><platform x=\"16\" y=\"11\" z=\"0\" type=\"1\" /><platform x=\"16\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"18\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"19\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"20\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"21\" z=\"0\" type=\"1\" /><platform x=\"16\" y=\"25\" z=\"0\" type=\"1\" /><platform x=\"17\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"18\" y=\"14\" z=\"0\" type=\"4\" /><platform x=\"18\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"18\" y=\"18\" z=\"0\" type=\"4\" /><platform x=\"19\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"20\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"21\" y=\"16\" z=\"0\" type=\"1\" /><platform x=\"25\" y=\"16\" z=\"0\" type=\"1\" /><platform x=\"12\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"13\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"16\" z=\"1\" type=\"-1\" /><platform x=\"16\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"19\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"9\" y=\"16\" z=\"6\" type=\"5\" /><platform x=\"16\" y=\"9\" z=\"6\" type=\"5\" /><platform x=\"16\" y=\"23\" z=\"6\" type=\"5\" /><platform x=\"23\" y=\"16\" z=\"6\" type=\"5\" /><platform x=\"8\" y=\"16\" z=\"8\" type=\"1\" /><platform x=\"9\" y=\"15\" z=\"8\" type=\"1\" /><platform x=\"9\" y=\"17\" z=\"8\" type=\"1\" /><platform x=\"10\" y=\"16\" z=\"8\" type=\"1\" /><platform x=\"15\" y=\"9\" z=\"8\" type=\"1\" /><platform x=\"15\" y=\"23\" z=\"8\" type=\"1\" /><platform x=\"16\" y=\"8\" z=\"8\" type=\"1\" /><platform x=\"16\" y=\"10\" z=\"8\" type=\"1\" /><platform x=\"16\" y=\"22\" z=\"8\" type=\"1\" /><platform x=\"16\" y=\"24\" z=\"8\" type=\"1\" /><platform x=\"17\" y=\"9\" z=\"8\" type=\"1\" /><platform x=\"17\" y=\"23\" z=\"8\" type=\"1\" /><platform x=\"22\" y=\"16\" z=\"8\" type=\"1\" /><platform x=\"23\" y=\"15\" z=\"8\" type=\"1\" /><platform x=\"23\" y=\"17\" z=\"8\" type=\"1\" /><platform x=\"24\" y=\"16\" z=\"8\" type=\"1\" /><platform x=\"8\" y=\"16\" z=\"9\" type=\"6\" /><platform x=\"9\" y=\"15\" z=\"9\" type=\"6\" /><platform x=\"9\" y=\"17\" z=\"9\" type=\"6\" /><platform x=\"10\" y=\"16\" z=\"9\" type=\"6\" /><platform x=\"15\" y=\"9\" z=\"9\" type=\"6\" /><platform x=\"15\" y=\"23\" z=\"9\" type=\"6\" /><platform x=\"16\" y=\"8\" z=\"9\" type=\"6\" /><platform x=\"16\" y=\"10\" z=\"9\" type=\"6\" /><platform x=\"16\" y=\"22\" z=\"9\" type=\"6\" /><platform x=\"16\" y=\"24\" z=\"9\" type=\"6\" /><platform x=\"17\" y=\"9\" z=\"9\" type=\"6\" /><platform x=\"17\" y=\"23\" z=\"9\" type=\"6\" /><platform x=\"22\" y=\"16\" z=\"9\" type=\"6\" /><platform x=\"23\" y=\"15\" z=\"9\" type=\"6\" /><platform x=\"23\" y=\"17\" z=\"9\" type=\"6\" /><platform x=\"24\" y=\"16\" z=\"9\" type=\"6\" /><platform x=\"8\" y=\"16\" z=\"10\" type=\"6\" /><platform x=\"9\" y=\"15\" z=\"10\" type=\"6\" /><platform x=\"9\" y=\"17\" z=\"10\" type=\"6\" /><platform x=\"10\" y=\"16\" z=\"10\" type=\"6\" /><platform x=\"15\" y=\"9\" z=\"10\" type=\"6\" /><platform x=\"15\" y=\"23\" z=\"10\" type=\"6\" /><platform x=\"16\" y=\"8\" z=\"10\" type=\"6\" /><platform x=\"16\" y=\"10\" z=\"10\" type=\"6\" /><platform x=\"16\" y=\"22\" z=\"10\" type=\"6\" /><platform x=\"16\" y=\"24\" z=\"10\" type=\"6\" /><platform x=\"17\" y=\"9\" z=\"10\" type=\"6\" /><platform x=\"17\" y=\"23\" z=\"10\" type=\"6\" /><platform x=\"22\" y=\"16\" z=\"10\" type=\"6\" /><platform x=\"23\" y=\"15\" z=\"10\" type=\"6\" /><platform x=\"23\" y=\"17\" z=\"10\" type=\"6\" /><platform x=\"24\" y=\"16\" z=\"10\" type=\"6\" /><platform x=\"8\" y=\"16\" z=\"11\" type=\"6\" /><platform x=\"9\" y=\"15\" z=\"11\" type=\"6\" /><platform x=\"9\" y=\"17\" z=\"11\" type=\"6\" /><platform x=\"10\" y=\"16\" z=\"11\" type=\"6\" /><platform x=\"15\" y=\"9\" z=\"11\" type=\"6\" /><platform x=\"15\" y=\"23\" z=\"11\" type=\"6\" /><platform x=\"16\" y=\"8\" z=\"11\" type=\"6\" /><platform x=\"16\" y=\"10\" z=\"11\" type=\"6\" /><platform x=\"16\" y=\"22\" z=\"11\" type=\"6\" /><platform x=\"16\" y=\"24\" z=\"11\" type=\"6\" /><platform x=\"17\" y=\"9\" z=\"11\" type=\"6\" /><platform x=\"17\" y=\"23\" z=\"11\" type=\"6\" /><platform x=\"22\" y=\"16\" z=\"11\" type=\"6\" /><platform x=\"23\" y=\"15\" z=\"11\" type=\"6\" /><platform x=\"23\" y=\"17\" z=\"11\" type=\"6\" /><platform x=\"24\" y=\"16\" z=\"11\" type=\"6\" /><platform x=\"8\" y=\"16\" z=\"12\" type=\"6\" /><platform x=\"9\" y=\"15\" z=\"12\" type=\"6\" /><platform x=\"9\" y=\"17\" z=\"12\" type=\"6\" /><platform x=\"10\" y=\"16\" z=\"12\" type=\"6\" /><platform x=\"15\" y=\"9\" z=\"12\" type=\"6\" /><platform x=\"15\" y=\"23\" z=\"12\" type=\"6\" /><platform x=\"16\" y=\"8\" z=\"12\" type=\"6\" /><platform x=\"16\" y=\"10\" z=\"12\" type=\"6\" /><platform x=\"16\" y=\"22\" z=\"12\" type=\"6\" /><platform x=\"16\" y=\"24\" z=\"12\" type=\"6\" /><platform x=\"17\" y=\"9\" z=\"12\" type=\"6\" /><platform x=\"17\" y=\"23\" z=\"12\" type=\"6\" /><platform x=\"22\" y=\"16\" z=\"12\" type=\"6\" /><platform x=\"23\" y=\"15\" z=\"12\" type=\"6\" /><platform x=\"23\" y=\"17\" z=\"12\" type=\"6\" /><platform x=\"24\" y=\"16\" z=\"12\" type=\"6\" /><platform x=\"8\" y=\"16\" z=\"13\" type=\"6\" /><platform x=\"9\" y=\"15\" z=\"13\" type=\"6\" /><platform x=\"9\" y=\"17\" z=\"13\" type=\"6\" /><platform x=\"10\" y=\"16\" z=\"13\" type=\"6\" /><platform x=\"15\" y=\"9\" z=\"13\" type=\"6\" /><platform x=\"15\" y=\"23\" z=\"13\" type=\"6\" /><platform x=\"16\" y=\"8\" z=\"13\" type=\"6\" /><platform x=\"16\" y=\"10\" z=\"13\" type=\"6\" /><platform x=\"16\" y=\"22\" z=\"13\" type=\"6\" /><platform x=\"16\" y=\"24\" z=\"13\" type=\"6\" /><platform x=\"17\" y=\"9\" z=\"13\" type=\"6\" /><platform x=\"17\" y=\"23\" z=\"13\" type=\"6\" /><platform x=\"22\" y=\"16\" z=\"13\" type=\"6\" /><platform x=\"23\" y=\"15\" z=\"13\" type=\"6\" /><platform x=\"23\" y=\"17\" z=\"13\" type=\"6\" /><platform x=\"24\" y=\"16\" z=\"13\" type=\"6\" /><platform x=\"8\" y=\"16\" z=\"14\" type=\"6\" /><platform x=\"9\" y=\"15\" z=\"14\" type=\"6\" /><platform x=\"9\" y=\"17\" z=\"14\" type=\"6\" /><platform x=\"10\" y=\"16\" z=\"14\" type=\"6\" /><platform x=\"15\" y=\"9\" z=\"14\" type=\"6\" /><platform x=\"15\" y=\"23\" z=\"14\" type=\"6\" /><platform x=\"16\" y=\"8\" z=\"14\" type=\"6\" /><platform x=\"16\" y=\"10\" z=\"14\" type=\"6\" /><platform x=\"16\" y=\"22\" z=\"14\" type=\"6\" /><platform x=\"16\" y=\"24\" z=\"14\" type=\"6\" /><platform x=\"17\" y=\"9\" z=\"14\" type=\"6\" /><platform x=\"17\" y=\"23\" z=\"14\" type=\"6\" /><platform x=\"22\" y=\"16\" z=\"14\" type=\"6\" /><platform x=\"23\" y=\"15\" z=\"14\" type=\"6\" /><platform x=\"23\" y=\"17\" z=\"14\" type=\"6\" /><platform x=\"24\" y=\"16\" z=\"14\" type=\"6\" /><platform x=\"8\" y=\"16\" z=\"15\" type=\"6\" /><platform x=\"9\" y=\"15\" z=\"15\" type=\"6\" /><platform x=\"9\" y=\"17\" z=\"15\" type=\"6\" /><platform x=\"10\" y=\"16\" z=\"15\" type=\"6\" /><platform x=\"15\" y=\"9\" z=\"15\" type=\"6\" /><platform x=\"15\" y=\"23\" z=\"15\" type=\"6\" /><platform x=\"16\" y=\"8\" z=\"15\" type=\"6\" /><platform x=\"16\" y=\"10\" z=\"15\" type=\"6\" /><platform x=\"16\" y=\"22\" z=\"15\" type=\"6\" /><platform x=\"16\" y=\"24\" z=\"15\" type=\"6\" /><platform x=\"17\" y=\"9\" z=\"15\" type=\"6\" /><platform x=\"17\" y=\"23\" z=\"15\" type=\"6\" /><platform x=\"22\" y=\"16\" z=\"15\" type=\"6\" /><platform x=\"23\" y=\"15\" z=\"15\" type=\"6\" /><platform x=\"23\" y=\"17\" z=\"15\" type=\"6\" /><platform x=\"24\" y=\"16\" z=\"15\" type=\"6\" /></map>"); map.push("<map name=\"38. WHIRL\"><platform x=\"12\" y=\"10\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"11\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"18\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"19\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"10\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"19\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"10\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"19\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"10\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"19\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"10\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"15\" z=\"0\" type=\"1\" /><platform x=\"16\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"19\" z=\"0\" type=\"0\" /><platform x=\"17\" y=\"10\" z=\"0\" type=\"0\" /><platform x=\"17\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"17\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"17\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"17\" y=\"19\" z=\"0\" type=\"0\" /><platform x=\"18\" y=\"10\" z=\"0\" type=\"0\" /><platform x=\"18\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"18\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"18\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"18\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"18\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"18\" y=\"19\" z=\"0\" type=\"0\" /><platform x=\"19\" y=\"10\" z=\"0\" type=\"0\" /><platform x=\"19\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"19\" y=\"19\" z=\"0\" type=\"0\" /><platform x=\"20\" y=\"10\" z=\"0\" type=\"0\" /><platform x=\"20\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"20\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"20\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"20\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"20\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"20\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"20\" y=\"18\" z=\"0\" type=\"0\" /><platform x=\"20\" y=\"19\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"10\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"11\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"13\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"10\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"10\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"13\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"10\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"10\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"10\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"10\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"19\" y=\"10\" z=\"1\" type=\"6\" /><platform x=\"19\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"19\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"10\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"13\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"10\" z=\"2\" type=\"5\" /><platform x=\"12\" y=\"11\" z=\"2\" type=\"6\" /><platform x=\"12\" y=\"12\" z=\"2\" type=\"6\" /><platform x=\"12\" y=\"13\" z=\"2\" type=\"6\" /><platform x=\"12\" y=\"14\" z=\"2\" type=\"6\" /><platform x=\"12\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"12\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"12\" y=\"17\" z=\"2\" type=\"6\" /><platform x=\"12\" y=\"18\" z=\"2\" type=\"6\" /><platform x=\"12\" y=\"19\" z=\"2\" type=\"5\" /><platform x=\"13\" y=\"10\" z=\"2\" type=\"6\" /><platform x=\"13\" y=\"19\" z=\"2\" type=\"6\" /><platform x=\"14\" y=\"10\" z=\"2\" type=\"6\" /><platform x=\"14\" y=\"12\" z=\"2\" type=\"5\" /><platform x=\"14\" y=\"13\" z=\"2\" type=\"6\" /><platform x=\"14\" y=\"14\" z=\"2\" type=\"6\" /><platform x=\"14\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"14\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"14\" y=\"17\" z=\"2\" type=\"5\" /><platform x=\"14\" y=\"19\" z=\"2\" type=\"6\" /><platform x=\"15\" y=\"10\" z=\"2\" type=\"6\" /><platform x=\"15\" y=\"12\" z=\"2\" type=\"6\" /><platform x=\"15\" y=\"17\" z=\"2\" type=\"6\" /><platform x=\"15\" y=\"19\" z=\"2\" type=\"6\" /><platform x=\"16\" y=\"10\" z=\"2\" type=\"6\" /><platform x=\"16\" y=\"12\" z=\"2\" type=\"6\" /><platform x=\"16\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"16\" y=\"17\" z=\"2\" type=\"6\" /><platform x=\"16\" y=\"19\" z=\"2\" type=\"6\" /><platform x=\"17\" y=\"10\" z=\"2\" type=\"6\" /><platform x=\"17\" y=\"12\" z=\"2\" type=\"6\" /><platform x=\"17\" y=\"17\" z=\"2\" type=\"6\" /><platform x=\"17\" y=\"19\" z=\"2\" type=\"6\" /><platform x=\"18\" y=\"10\" z=\"2\" type=\"6\" /><platform x=\"18\" y=\"12\" z=\"2\" type=\"6\" /><platform x=\"18\" y=\"14\" z=\"2\" type=\"5\" /><platform x=\"18\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"18\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"18\" y=\"17\" z=\"2\" type=\"5\" /><platform x=\"18\" y=\"19\" z=\"2\" type=\"6\" /><platform x=\"19\" y=\"10\" z=\"2\" type=\"6\" /><platform x=\"19\" y=\"12\" z=\"2\" type=\"6\" /><platform x=\"19\" y=\"19\" z=\"2\" type=\"6\" /><platform x=\"20\" y=\"10\" z=\"2\" type=\"6\" /><platform x=\"20\" y=\"12\" z=\"2\" type=\"5\" /><platform x=\"20\" y=\"13\" z=\"2\" type=\"6\" /><platform x=\"20\" y=\"14\" z=\"2\" type=\"6\" /><platform x=\"20\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"20\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"20\" y=\"17\" z=\"2\" type=\"6\" /><platform x=\"20\" y=\"18\" z=\"2\" type=\"6\" /><platform x=\"20\" y=\"19\" z=\"2\" type=\"5\" /><platform x=\"16\" y=\"15\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"15\" z=\"4\" type=\"6\" /><platform x=\"16\" y=\"15\" z=\"5\" type=\"1\" /><platform x=\"16\" y=\"15\" z=\"6\" type=\"6\" /><platform x=\"16\" y=\"15\" z=\"7\" type=\"6\" /><platform x=\"16\" y=\"15\" z=\"8\" type=\"6\" /><platform x=\"16\" y=\"15\" z=\"9\" type=\"6\" /><platform x=\"16\" y=\"15\" z=\"10\" type=\"1\" /><platform x=\"16\" y=\"15\" z=\"11\" type=\"6\" /><platform x=\"16\" y=\"15\" z=\"12\" type=\"6\" /><platform x=\"16\" y=\"15\" z=\"13\" type=\"6\" /><platform x=\"16\" y=\"14\" z=\"14\" type=\"0\" /><platform x=\"16\" y=\"15\" z=\"14\" type=\"6\" /><platform x=\"16\" y=\"16\" z=\"14\" type=\"4\" /><platform x=\"16\" y=\"14\" z=\"15\" type=\"-1\" /><platform x=\"16\" y=\"15\" z=\"15\" type=\"6\" /></map>"); map.push("<map name=\"31. SCORPIO\"><platform x=\"13\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"17\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"19\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"15\" z=\"1\" type=\"0\" /><platform x=\"11\" y=\"15\" z=\"1\" type=\"0\" /><platform x=\"12\" y=\"15\" z=\"1\" type=\"0\" /><platform x=\"13\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"12\" z=\"1\" type=\"0\" /><platform x=\"16\" y=\"13\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"15\" z=\"1\" type=\"-1\" /><platform x=\"16\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"18\" z=\"1\" type=\"0\" /><platform x=\"19\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"15\" z=\"1\" type=\"0\" /><platform x=\"21\" y=\"15\" z=\"1\" type=\"0\" /><platform x=\"22\" y=\"15\" z=\"1\" type=\"0\" /><platform x=\"8\" y=\"15\" z=\"2\" type=\"0\" /><platform x=\"9\" y=\"15\" z=\"2\" type=\"0\" /><platform x=\"10\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"11\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"12\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"16\" y=\"11\" z=\"2\" type=\"0\" /><platform x=\"16\" y=\"19\" z=\"2\" type=\"0\" /><platform x=\"20\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"21\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"22\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"23\" y=\"15\" z=\"2\" type=\"0\" /><platform x=\"24\" y=\"15\" z=\"2\" type=\"0\" /><platform x=\"7\" y=\"15\" z=\"3\" type=\"0\" /><platform x=\"8\" y=\"15\" z=\"3\" type=\"6\" /><platform x=\"9\" y=\"15\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"9\" z=\"3\" type=\"0\" /><platform x=\"16\" y=\"10\" z=\"3\" type=\"0\" /><platform x=\"16\" y=\"20\" z=\"3\" type=\"0\" /><platform x=\"16\" y=\"21\" z=\"3\" type=\"0\" /><platform x=\"23\" y=\"15\" z=\"3\" type=\"6\" /><platform x=\"24\" y=\"15\" z=\"3\" type=\"6\" /><platform x=\"25\" y=\"15\" z=\"3\" type=\"0\" /><platform x=\"7\" y=\"13\" z=\"4\" type=\"0\" /><platform x=\"7\" y=\"14\" z=\"4\" type=\"0\" /><platform x=\"7\" y=\"15\" z=\"4\" type=\"6\" /><platform x=\"16\" y=\"6\" z=\"4\" type=\"0\" /><platform x=\"16\" y=\"7\" z=\"4\" type=\"0\" /><platform x=\"16\" y=\"8\" z=\"4\" type=\"0\" /><platform x=\"16\" y=\"22\" z=\"4\" type=\"0\" /><platform x=\"16\" y=\"23\" z=\"4\" type=\"0\" /><platform x=\"16\" y=\"24\" z=\"4\" type=\"0\" /><platform x=\"25\" y=\"15\" z=\"4\" type=\"6\" /><platform x=\"25\" y=\"16\" z=\"4\" type=\"0\" /><platform x=\"25\" y=\"17\" z=\"4\" type=\"0\" /><platform x=\"7\" y=\"13\" z=\"5\" type=\"6\" /><platform x=\"7\" y=\"14\" z=\"5\" type=\"6\" /><platform x=\"8\" y=\"12\" z=\"5\" type=\"0\" /><platform x=\"9\" y=\"12\" z=\"5\" type=\"0\" /><platform x=\"10\" y=\"12\" z=\"5\" type=\"0\" /><platform x=\"14\" y=\"6\" z=\"5\" type=\"0\" /><platform x=\"14\" y=\"24\" z=\"5\" type=\"0\" /><platform x=\"15\" y=\"6\" z=\"5\" type=\"0\" /><platform x=\"15\" y=\"24\" z=\"5\" type=\"0\" /><platform x=\"17\" y=\"6\" z=\"5\" type=\"0\" /><platform x=\"17\" y=\"24\" z=\"5\" type=\"0\" /><platform x=\"18\" y=\"6\" z=\"5\" type=\"0\" /><platform x=\"18\" y=\"24\" z=\"5\" type=\"0\" /><platform x=\"22\" y=\"18\" z=\"5\" type=\"0\" /><platform x=\"23\" y=\"18\" z=\"5\" type=\"0\" /><platform x=\"24\" y=\"18\" z=\"5\" type=\"0\" /><platform x=\"25\" y=\"16\" z=\"5\" type=\"6\" /><platform x=\"25\" y=\"17\" z=\"5\" type=\"6\" /><platform x=\"8\" y=\"12\" z=\"6\" type=\"6\" /><platform x=\"9\" y=\"12\" z=\"6\" type=\"6\" /><platform x=\"10\" y=\"12\" z=\"6\" type=\"6\" /><platform x=\"11\" y=\"11\" z=\"6\" type=\"0\" /><platform x=\"12\" y=\"11\" z=\"6\" type=\"0\" /><platform x=\"13\" y=\"6\" z=\"6\" type=\"0\" /><platform x=\"13\" y=\"11\" z=\"6\" type=\"0\" /><platform x=\"13\" y=\"24\" z=\"6\" type=\"0\" /><platform x=\"14\" y=\"6\" z=\"6\" type=\"6\" /><platform x=\"14\" y=\"11\" z=\"6\" type=\"0\" /><platform x=\"14\" y=\"24\" z=\"6\" type=\"6\" /><platform x=\"15\" y=\"6\" z=\"6\" type=\"6\" /><platform x=\"15\" y=\"24\" z=\"6\" type=\"6\" /><platform x=\"17\" y=\"6\" z=\"6\" type=\"6\" /><platform x=\"17\" y=\"24\" z=\"6\" type=\"6\" /><platform x=\"18\" y=\"6\" z=\"6\" type=\"6\" /><platform x=\"18\" y=\"19\" z=\"6\" type=\"0\" /><platform x=\"18\" y=\"24\" z=\"6\" type=\"6\" /><platform x=\"19\" y=\"6\" z=\"6\" type=\"0\" /><platform x=\"19\" y=\"19\" z=\"6\" type=\"0\" /><platform x=\"19\" y=\"24\" z=\"6\" type=\"0\" /><platform x=\"20\" y=\"19\" z=\"6\" type=\"0\" /><platform x=\"21\" y=\"19\" z=\"6\" type=\"0\" /><platform x=\"22\" y=\"18\" z=\"6\" type=\"6\" /><platform x=\"23\" y=\"18\" z=\"6\" type=\"6\" /><platform x=\"24\" y=\"18\" z=\"6\" type=\"6\" /><platform x=\"11\" y=\"6\" z=\"7\" type=\"0\" /><platform x=\"11\" y=\"11\" z=\"7\" type=\"6\" /><platform x=\"11\" y=\"24\" z=\"7\" type=\"0\" /><platform x=\"12\" y=\"5\" z=\"7\" type=\"0\" /><platform x=\"12\" y=\"6\" z=\"7\" type=\"0\" /><platform x=\"12\" y=\"7\" z=\"7\" type=\"0\" /><platform x=\"12\" y=\"11\" z=\"7\" type=\"6\" /><platform x=\"12\" y=\"23\" z=\"7\" type=\"0\" /><platform x=\"12\" y=\"24\" z=\"7\" type=\"0\" /><platform x=\"12\" y=\"25\" z=\"7\" type=\"0\" /><platform x=\"13\" y=\"6\" z=\"7\" type=\"6\" /><platform x=\"13\" y=\"11\" z=\"7\" type=\"6\" /><platform x=\"13\" y=\"24\" z=\"7\" type=\"6\" /><platform x=\"14\" y=\"11\" z=\"7\" type=\"6\" /><platform x=\"15\" y=\"11\" z=\"7\" type=\"1\" /><platform x=\"17\" y=\"19\" z=\"7\" type=\"1\" /><platform x=\"18\" y=\"19\" z=\"7\" type=\"6\" /><platform x=\"19\" y=\"6\" z=\"7\" type=\"6\" /><platform x=\"19\" y=\"19\" z=\"7\" type=\"6\" /><platform x=\"19\" y=\"24\" z=\"7\" type=\"6\" /><platform x=\"20\" y=\"5\" z=\"7\" type=\"0\" /><platform x=\"20\" y=\"6\" z=\"7\" type=\"0\" /><platform x=\"20\" y=\"7\" z=\"7\" type=\"0\" /><platform x=\"20\" y=\"19\" z=\"7\" type=\"6\" /><platform x=\"20\" y=\"23\" z=\"7\" type=\"0\" /><platform x=\"20\" y=\"24\" z=\"7\" type=\"0\" /><platform x=\"20\" y=\"25\" z=\"7\" type=\"0\" /><platform x=\"21\" y=\"6\" z=\"7\" type=\"0\" /><platform x=\"21\" y=\"19\" z=\"7\" type=\"6\" /><platform x=\"21\" y=\"24\" z=\"7\" type=\"0\" /><platform x=\"7\" y=\"4\" z=\"8\" type=\"7\" /><platform x=\"7\" y=\"5\" z=\"8\" type=\"7\" /><platform x=\"7\" y=\"6\" z=\"8\" type=\"7\" /><platform x=\"7\" y=\"7\" z=\"8\" type=\"7\" /><platform x=\"7\" y=\"8\" z=\"8\" type=\"7\" /><platform x=\"7\" y=\"22\" z=\"8\" type=\"7\" /><platform x=\"7\" y=\"23\" z=\"8\" type=\"7\" /><platform x=\"7\" y=\"24\" z=\"8\" type=\"7\" /><platform x=\"7\" y=\"25\" z=\"8\" type=\"7\" /><platform x=\"7\" y=\"26\" z=\"8\" type=\"7\" /><platform x=\"8\" y=\"4\" z=\"8\" type=\"7\" /><platform x=\"8\" y=\"8\" z=\"8\" type=\"7\" /><platform x=\"8\" y=\"22\" z=\"8\" type=\"7\" /><platform x=\"8\" y=\"26\" z=\"8\" type=\"7\" /><platform x=\"9\" y=\"4\" z=\"8\" type=\"7\" /><platform x=\"9\" y=\"6\" z=\"8\" type=\"0\" /><platform x=\"9\" y=\"8\" z=\"8\" type=\"7\" /><platform x=\"9\" y=\"22\" z=\"8\" type=\"7\" /><platform x=\"9\" y=\"24\" z=\"8\" type=\"0\" /><platform x=\"9\" y=\"26\" z=\"8\" type=\"7\" /><platform x=\"11\" y=\"6\" z=\"8\" type=\"6\" /><platform x=\"11\" y=\"24\" z=\"8\" type=\"6\" /><platform x=\"12\" y=\"5\" z=\"8\" type=\"6\" /><platform x=\"12\" y=\"7\" z=\"8\" type=\"6\" /><platform x=\"12\" y=\"23\" z=\"8\" type=\"6\" /><platform x=\"12\" y=\"25\" z=\"8\" type=\"6\" /><platform x=\"20\" y=\"5\" z=\"8\" type=\"6\" /><platform x=\"20\" y=\"7\" z=\"8\" type=\"6\" /><platform x=\"20\" y=\"23\" z=\"8\" type=\"6\" /><platform x=\"20\" y=\"25\" z=\"8\" type=\"6\" /><platform x=\"21\" y=\"6\" z=\"8\" type=\"6\" /><platform x=\"21\" y=\"24\" z=\"8\" type=\"6\" /><platform x=\"23\" y=\"4\" z=\"8\" type=\"7\" /><platform x=\"23\" y=\"6\" z=\"8\" type=\"0\" /><platform x=\"23\" y=\"8\" z=\"8\" type=\"7\" /><platform x=\"23\" y=\"22\" z=\"8\" type=\"7\" /><platform x=\"23\" y=\"24\" z=\"8\" type=\"0\" /><platform x=\"23\" y=\"26\" z=\"8\" type=\"7\" /><platform x=\"24\" y=\"4\" z=\"8\" type=\"7\" /><platform x=\"24\" y=\"8\" z=\"8\" type=\"7\" /><platform x=\"24\" y=\"22\" z=\"8\" type=\"7\" /><platform x=\"24\" y=\"26\" z=\"8\" type=\"7\" /><platform x=\"25\" y=\"4\" z=\"8\" type=\"7\" /><platform x=\"25\" y=\"5\" z=\"8\" type=\"7\" /><platform x=\"25\" y=\"6\" z=\"8\" type=\"7\" /><platform x=\"25\" y=\"7\" z=\"8\" type=\"7\" /><platform x=\"25\" y=\"8\" z=\"8\" type=\"7\" /><platform x=\"25\" y=\"22\" z=\"8\" type=\"7\" /><platform x=\"25\" y=\"23\" z=\"8\" type=\"7\" /><platform x=\"25\" y=\"24\" z=\"8\" type=\"7\" /><platform x=\"25\" y=\"25\" z=\"8\" type=\"7\" /><platform x=\"25\" y=\"26\" z=\"8\" type=\"7\" /><platform x=\"7\" y=\"4\" z=\"9\" type=\"6\" /><platform x=\"7\" y=\"5\" z=\"9\" type=\"6\" /><platform x=\"7\" y=\"6\" z=\"9\" type=\"6\" /><platform x=\"7\" y=\"7\" z=\"9\" type=\"6\" /><platform x=\"7\" y=\"8\" z=\"9\" type=\"6\" /><platform x=\"7\" y=\"22\" z=\"9\" type=\"6\" /><platform x=\"7\" y=\"23\" z=\"9\" type=\"6\" /><platform x=\"7\" y=\"24\" z=\"9\" type=\"6\" /><platform x=\"7\" y=\"25\" z=\"9\" type=\"6\" /><platform x=\"7\" y=\"26\" z=\"9\" type=\"6\" /><platform x=\"8\" y=\"4\" z=\"9\" type=\"6\" /><platform x=\"8\" y=\"8\" z=\"9\" type=\"6\" /><platform x=\"8\" y=\"22\" z=\"9\" type=\"6\" /><platform x=\"8\" y=\"26\" z=\"9\" type=\"6\" /><platform x=\"9\" y=\"4\" z=\"9\" type=\"6\" /><platform x=\"9\" y=\"8\" z=\"9\" type=\"6\" /><platform x=\"9\" y=\"22\" z=\"9\" type=\"6\" /><platform x=\"9\" y=\"26\" z=\"9\" type=\"6\" /><platform x=\"12\" y=\"6\" z=\"9\" type=\"5\" /><platform x=\"12\" y=\"24\" z=\"9\" type=\"5\" /><platform x=\"20\" y=\"6\" z=\"9\" type=\"5\" /><platform x=\"20\" y=\"24\" z=\"9\" type=\"5\" /><platform x=\"23\" y=\"4\" z=\"9\" type=\"6\" /><platform x=\"23\" y=\"8\" z=\"9\" type=\"6\" /><platform x=\"23\" y=\"22\" z=\"9\" type=\"6\" /><platform x=\"23\" y=\"26\" z=\"9\" type=\"6\" /><platform x=\"24\" y=\"4\" z=\"9\" type=\"6\" /><platform x=\"24\" y=\"8\" z=\"9\" type=\"6\" /><platform x=\"24\" y=\"22\" z=\"9\" type=\"6\" /><platform x=\"24\" y=\"26\" z=\"9\" type=\"6\" /><platform x=\"25\" y=\"4\" z=\"9\" type=\"6\" /><platform x=\"25\" y=\"5\" z=\"9\" type=\"6\" /><platform x=\"25\" y=\"6\" z=\"9\" type=\"6\" /><platform x=\"25\" y=\"7\" z=\"9\" type=\"6\" /><platform x=\"25\" y=\"8\" z=\"9\" type=\"6\" /><platform x=\"25\" y=\"22\" z=\"9\" type=\"6\" /><platform x=\"25\" y=\"23\" z=\"9\" type=\"6\" /><platform x=\"25\" y=\"24\" z=\"9\" type=\"6\" /><platform x=\"25\" y=\"25\" z=\"9\" type=\"6\" /><platform x=\"25\" y=\"26\" z=\"9\" type=\"6\" /><platform x=\"16\" y=\"11\" z=\"12\" type=\"0\" /><platform x=\"16\" y=\"12\" z=\"12\" type=\"1\" /><platform x=\"16\" y=\"18\" z=\"12\" type=\"1\" /><platform x=\"16\" y=\"19\" z=\"12\" type=\"0\" /><platform x=\"16\" y=\"11\" z=\"13\" type=\"6\" /><platform x=\"16\" y=\"12\" z=\"13\" type=\"6\" /><platform x=\"16\" y=\"18\" z=\"13\" type=\"6\" /><platform x=\"16\" y=\"19\" z=\"13\" type=\"6\" /><platform x=\"16\" y=\"12\" z=\"14\" type=\"6\" /><platform x=\"16\" y=\"13\" z=\"14\" type=\"1\" /><platform x=\"16\" y=\"15\" z=\"14\" type=\"4\" /><platform x=\"16\" y=\"17\" z=\"14\" type=\"1\" /><platform x=\"16\" y=\"18\" z=\"14\" type=\"6\" /><platform x=\"16\" y=\"13\" z=\"15\" type=\"6\" /><platform x=\"16\" y=\"17\" z=\"15\" type=\"6\" /></map>"); map.push("<map name=\"32. OLD BRIDGE\"><platform x=\"15\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"17\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"18\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"19\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"15\" z=\"1\" type=\"0\" /><platform x=\"13\" y=\"15\" z=\"1\" type=\"0\" /><platform x=\"14\" y=\"15\" z=\"1\" type=\"0\" /><platform x=\"15\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"19\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"17\" z=\"1\" type=\"0\" /><platform x=\"21\" y=\"17\" z=\"1\" type=\"0\" /><platform x=\"22\" y=\"17\" z=\"1\" type=\"0\" /><platform x=\"8\" y=\"11\" z=\"2\" type=\"0\" /><platform x=\"8\" y=\"12\" z=\"2\" type=\"0\" /><platform x=\"8\" y=\"13\" z=\"2\" type=\"0\" /><platform x=\"9\" y=\"14\" z=\"2\" type=\"0\" /><platform x=\"10\" y=\"14\" z=\"2\" type=\"0\" /><platform x=\"11\" y=\"14\" z=\"2\" type=\"0\" /><platform x=\"12\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"13\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"14\" y=\"15\" z=\"2\" type=\"6\" /><platform x=\"20\" y=\"17\" z=\"2\" type=\"6\" /><platform x=\"21\" y=\"17\" z=\"2\" type=\"6\" /><platform x=\"22\" y=\"17\" z=\"2\" type=\"6\" /><platform x=\"23\" y=\"18\" z=\"2\" type=\"0\" /><platform x=\"24\" y=\"18\" z=\"2\" type=\"0\" /><platform x=\"25\" y=\"18\" z=\"2\" type=\"0\" /><platform x=\"26\" y=\"19\" z=\"2\" type=\"0\" /><platform x=\"26\" y=\"20\" z=\"2\" type=\"0\" /><platform x=\"26\" y=\"21\" z=\"2\" type=\"0\" /><platform x=\"8\" y=\"11\" z=\"3\" type=\"6\" /><platform x=\"8\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"8\" y=\"13\" z=\"3\" type=\"6\" /><platform x=\"9\" y=\"9\" z=\"3\" type=\"0\" /><platform x=\"9\" y=\"10\" z=\"3\" type=\"0\" /><platform x=\"9\" y=\"14\" z=\"3\" type=\"6\" /><platform x=\"10\" y=\"8\" z=\"3\" type=\"0\" /><platform x=\"10\" y=\"14\" z=\"3\" type=\"6\" /><platform x=\"11\" y=\"8\" z=\"3\" type=\"0\" /><platform x=\"11\" y=\"14\" z=\"3\" type=\"6\" /><platform x=\"17\" y=\"16\" z=\"3\" type=\"-1\" /><platform x=\"23\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"23\" y=\"24\" z=\"3\" type=\"0\" /><platform x=\"24\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"24\" y=\"24\" z=\"3\" type=\"0\" /><platform x=\"25\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"25\" y=\"22\" z=\"3\" type=\"0\" /><platform x=\"25\" y=\"23\" z=\"3\" type=\"0\" /><platform x=\"26\" y=\"19\" z=\"3\" type=\"6\" /><platform x=\"26\" y=\"20\" z=\"3\" type=\"6\" /><platform x=\"26\" y=\"21\" z=\"3\" type=\"6\" /><platform x=\"9\" y=\"9\" z=\"4\" type=\"6\" /><platform x=\"9\" y=\"10\" z=\"4\" type=\"6\" /><platform x=\"10\" y=\"8\" z=\"4\" type=\"6\" /><platform x=\"11\" y=\"8\" z=\"4\" type=\"6\" /><platform x=\"12\" y=\"7\" z=\"4\" type=\"0\" /><platform x=\"13\" y=\"7\" z=\"4\" type=\"0\" /><platform x=\"14\" y=\"7\" z=\"4\" type=\"0\" /><platform x=\"20\" y=\"25\" z=\"4\" type=\"0\" /><platform x=\"21\" y=\"25\" z=\"4\" type=\"0\" /><platform x=\"22\" y=\"25\" z=\"4\" type=\"0\" /><platform x=\"23\" y=\"24\" z=\"4\" type=\"6\" /><platform x=\"24\" y=\"24\" z=\"4\" type=\"6\" /><platform x=\"25\" y=\"22\" z=\"4\" type=\"6\" /><platform x=\"25\" y=\"23\" z=\"4\" type=\"6\" /><platform x=\"12\" y=\"7\" z=\"5\" type=\"6\" /><platform x=\"13\" y=\"7\" z=\"5\" type=\"6\" /><platform x=\"14\" y=\"7\" z=\"5\" type=\"6\" /><platform x=\"15\" y=\"6\" z=\"5\" type=\"0\" /><platform x=\"15\" y=\"26\" z=\"5\" type=\"0\" /><platform x=\"16\" y=\"6\" z=\"5\" type=\"0\" /><platform x=\"16\" y=\"26\" z=\"5\" type=\"0\" /><platform x=\"17\" y=\"6\" z=\"5\" type=\"0\" /><platform x=\"17\" y=\"8\" z=\"5\" type=\"7\" /><platform x=\"17\" y=\"10\" z=\"5\" type=\"7\" /><platform x=\"17\" y=\"12\" z=\"5\" type=\"7\" /><platform x=\"17\" y=\"14\" z=\"5\" type=\"7\" /><platform x=\"17\" y=\"16\" z=\"5\" type=\"7\" /><platform x=\"17\" y=\"18\" z=\"5\" type=\"7\" /><platform x=\"17\" y=\"20\" z=\"5\" type=\"7\" /><platform x=\"17\" y=\"22\" z=\"5\" type=\"7\" /><platform x=\"17\" y=\"24\" z=\"5\" type=\"7\" /><platform x=\"17\" y=\"26\" z=\"5\" type=\"0\" /><platform x=\"18\" y=\"6\" z=\"5\" type=\"0\" /><platform x=\"18\" y=\"26\" z=\"5\" type=\"0\" /><platform x=\"19\" y=\"6\" z=\"5\" type=\"0\" /><platform x=\"19\" y=\"26\" z=\"5\" type=\"0\" /><platform x=\"20\" y=\"25\" z=\"5\" type=\"6\" /><platform x=\"21\" y=\"25\" z=\"5\" type=\"6\" /><platform x=\"22\" y=\"25\" z=\"5\" type=\"6\" /><platform x=\"12\" y=\"25\" z=\"6\" type=\"0\" /><platform x=\"13\" y=\"25\" z=\"6\" type=\"0\" /><platform x=\"14\" y=\"25\" z=\"6\" type=\"0\" /><platform x=\"15\" y=\"6\" z=\"6\" type=\"6\" /><platform x=\"15\" y=\"26\" z=\"6\" type=\"6\" /><platform x=\"16\" y=\"6\" z=\"6\" type=\"6\" /><platform x=\"16\" y=\"26\" z=\"6\" type=\"6\" /><platform x=\"17\" y=\"6\" z=\"6\" type=\"6\" /><platform x=\"17\" y=\"8\" z=\"6\" type=\"6\" /><platform x=\"17\" y=\"10\" z=\"6\" type=\"6\" /><platform x=\"17\" y=\"12\" z=\"6\" type=\"6\" /><platform x=\"17\" y=\"14\" z=\"6\" type=\"6\" /><platform x=\"17\" y=\"16\" z=\"6\" type=\"6\" /><platform x=\"17\" y=\"18\" z=\"6\" type=\"6\" /><platform x=\"17\" y=\"20\" z=\"6\" type=\"6\" /><platform x=\"17\" y=\"22\" z=\"6\" type=\"6\" /><platform x=\"17\" y=\"24\" z=\"6\" type=\"6\" /><platform x=\"17\" y=\"26\" z=\"6\" type=\"6\" /><platform x=\"18\" y=\"6\" z=\"6\" type=\"6\" /><platform x=\"18\" y=\"26\" z=\"6\" type=\"6\" /><platform x=\"19\" y=\"6\" z=\"6\" type=\"6\" /><platform x=\"19\" y=\"26\" z=\"6\" type=\"6\" /><platform x=\"20\" y=\"7\" z=\"6\" type=\"0\" /><platform x=\"21\" y=\"7\" z=\"6\" type=\"0\" /><platform x=\"22\" y=\"7\" z=\"6\" type=\"0\" /><platform x=\"9\" y=\"22\" z=\"7\" type=\"0\" /><platform x=\"9\" y=\"23\" z=\"7\" type=\"0\" /><platform x=\"10\" y=\"24\" z=\"7\" type=\"0\" /><platform x=\"11\" y=\"24\" z=\"7\" type=\"0\" /><platform x=\"12\" y=\"25\" z=\"7\" type=\"6\" /><platform x=\"13\" y=\"25\" z=\"7\" type=\"6\" /><platform x=\"14\" y=\"25\" z=\"7\" type=\"6\" /><platform x=\"15\" y=\"6\" z=\"7\" type=\"5\" /><platform x=\"15\" y=\"26\" z=\"7\" type=\"5\" /><platform x=\"17\" y=\"6\" z=\"7\" type=\"5\" /><platform x=\"17\" y=\"26\" z=\"7\" type=\"5\" /><platform x=\"19\" y=\"6\" z=\"7\" type=\"5\" /><platform x=\"19\" y=\"26\" z=\"7\" type=\"5\" /><platform x=\"20\" y=\"7\" z=\"7\" type=\"6\" /><platform x=\"21\" y=\"7\" z=\"7\" type=\"6\" /><platform x=\"22\" y=\"7\" z=\"7\" type=\"6\" /><platform x=\"23\" y=\"8\" z=\"7\" type=\"0\" /><platform x=\"24\" y=\"8\" z=\"7\" type=\"0\" /><platform x=\"25\" y=\"9\" z=\"7\" type=\"0\" /><platform x=\"25\" y=\"10\" z=\"7\" type=\"0\" /><platform x=\"8\" y=\"19\" z=\"8\" type=\"0\" /><platform x=\"8\" y=\"20\" z=\"8\" type=\"0\" /><platform x=\"8\" y=\"21\" z=\"8\" type=\"0\" /><platform x=\"9\" y=\"18\" z=\"8\" type=\"0\" /><platform x=\"9\" y=\"22\" z=\"8\" type=\"6\" /><platform x=\"9\" y=\"23\" z=\"8\" type=\"6\" /><platform x=\"10\" y=\"18\" z=\"8\" type=\"0\" /><platform x=\"10\" y=\"24\" z=\"8\" type=\"6\" /><platform x=\"11\" y=\"18\" z=\"8\" type=\"0\" /><platform x=\"11\" y=\"24\" z=\"8\" type=\"6\" /><platform x=\"17\" y=\"16\" z=\"8\" type=\"4\" /><platform x=\"23\" y=\"8\" z=\"8\" type=\"6\" /><platform x=\"23\" y=\"14\" z=\"8\" type=\"0\" /><platform x=\"24\" y=\"8\" z=\"8\" type=\"6\" /><platform x=\"24\" y=\"14\" z=\"8\" type=\"0\" /><platform x=\"25\" y=\"9\" z=\"8\" type=\"6\" /><platform x=\"25\" y=\"10\" z=\"8\" type=\"6\" /><platform x=\"25\" y=\"14\" z=\"8\" type=\"0\" /><platform x=\"26\" y=\"11\" z=\"8\" type=\"0\" /><platform x=\"26\" y=\"12\" z=\"8\" type=\"0\" /><platform x=\"26\" y=\"13\" z=\"8\" type=\"0\" /><platform x=\"8\" y=\"19\" z=\"9\" type=\"6\" /><platform x=\"8\" y=\"20\" z=\"9\" type=\"6\" /><platform x=\"8\" y=\"21\" z=\"9\" type=\"6\" /><platform x=\"9\" y=\"18\" z=\"9\" type=\"6\" /><platform x=\"10\" y=\"18\" z=\"9\" type=\"6\" /><platform x=\"11\" y=\"18\" z=\"9\" type=\"6\" /><platform x=\"12\" y=\"17\" z=\"9\" type=\"0\" /><platform x=\"13\" y=\"17\" z=\"9\" type=\"0\" /><platform x=\"14\" y=\"17\" z=\"9\" type=\"0\" /><platform x=\"20\" y=\"15\" z=\"9\" type=\"0\" /><platform x=\"21\" y=\"15\" z=\"9\" type=\"0\" /><platform x=\"22\" y=\"15\" z=\"9\" type=\"0\" /><platform x=\"23\" y=\"14\" z=\"9\" type=\"6\" /><platform x=\"24\" y=\"14\" z=\"9\" type=\"6\" /><platform x=\"25\" y=\"14\" z=\"9\" type=\"6\" /><platform x=\"26\" y=\"11\" z=\"9\" type=\"6\" /><platform x=\"26\" y=\"12\" z=\"9\" type=\"6\" /><platform x=\"26\" y=\"13\" z=\"9\" type=\"6\" /><platform x=\"12\" y=\"17\" z=\"10\" type=\"6\" /><platform x=\"13\" y=\"17\" z=\"10\" type=\"6\" /><platform x=\"14\" y=\"17\" z=\"10\" type=\"6\" /><platform x=\"15\" y=\"16\" z=\"10\" type=\"0\" /><platform x=\"16\" y=\"16\" z=\"10\" type=\"0\" /><platform x=\"17\" y=\"16\" z=\"10\" type=\"7\" /><platform x=\"18\" y=\"16\" z=\"10\" type=\"0\" /><platform x=\"19\" y=\"16\" z=\"10\" type=\"0\" /><platform x=\"20\" y=\"15\" z=\"10\" type=\"6\" /><platform x=\"21\" y=\"15\" z=\"10\" type=\"6\" /><platform x=\"22\" y=\"15\" z=\"10\" type=\"6\" /><platform x=\"15\" y=\"16\" z=\"11\" type=\"6\" /><platform x=\"16\" y=\"16\" z=\"11\" type=\"6\" /><platform x=\"17\" y=\"16\" z=\"11\" type=\"6\" /><platform x=\"18\" y=\"16\" z=\"11\" type=\"6\" /><platform x=\"19\" y=\"16\" z=\"11\" type=\"6\" /></map>"); map.push("<map name=\"33. DEMON'S EYE\"><platform x=\"10\" y=\"10\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"11\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"13\" z=\"0\" type=\"1\" /><platform x=\"10\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"18\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"19\" z=\"0\" type=\"1\" /><platform x=\"10\" y=\"20\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"21\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"11\" y=\"10\" z=\"0\" type=\"0\" /><platform x=\"11\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"11\" z=\"0\" type=\"0\" /><platform x=\"12\" y=\"21\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"11\" z=\"0\" type=\"0\" /><platform x=\"13\" y=\"21\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"14\" y=\"20\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"20\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"19\" z=\"0\" type=\"0\" /><platform x=\"17\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"17\" y=\"19\" z=\"0\" type=\"0\" /><platform x=\"18\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"18\" y=\"18\" z=\"0\" type=\"0\" /><platform x=\"19\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"19\" y=\"18\" z=\"0\" type=\"0\" /><platform x=\"20\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"20\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"21\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"21\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"22\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"23\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"10\" y=\"10\" z=\"1\" type=\"6\" /><platform x=\"10\" y=\"16\" z=\"1\" type=\"-1\" /><platform x=\"10\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"10\" z=\"1\" type=\"6\" /><platform x=\"11\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"11\" z=\"1\" type=\"6\" /><platform x=\"12\" y=\"21\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"11\" z=\"1\" type=\"6\" /><platform x=\"13\" y=\"21\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"14\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"13\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"13\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"18\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"19\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"19\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"20\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"21\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"21\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"22\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"23\" y=\"16\" z=\"2\" type=\"5\" /><platform x=\"10\" y=\"15\" z=\"4\" type=\"1\" /><platform x=\"10\" y=\"17\" z=\"4\" type=\"1\" /><platform x=\"10\" y=\"11\" z=\"5\" type=\"6\" /><platform x=\"10\" y=\"21\" z=\"5\" type=\"6\" /><platform x=\"10\" y=\"11\" z=\"6\" type=\"6\" /><platform x=\"10\" y=\"21\" z=\"6\" type=\"6\" /><platform x=\"10\" y=\"11\" z=\"7\" type=\"6\" /><platform x=\"10\" y=\"21\" z=\"7\" type=\"6\" /><platform x=\"10\" y=\"11\" z=\"8\" type=\"6\" /><platform x=\"10\" y=\"21\" z=\"8\" type=\"6\" /><platform x=\"10\" y=\"15\" z=\"9\" type=\"6\" /><platform x=\"10\" y=\"16\" z=\"9\" type=\"0\" /><platform x=\"10\" y=\"17\" z=\"9\" type=\"6\" /><platform x=\"11\" y=\"16\" z=\"9\" type=\"0\" /><platform x=\"12\" y=\"15\" z=\"9\" type=\"0\" /><platform x=\"12\" y=\"17\" z=\"9\" type=\"0\" /><platform x=\"13\" y=\"15\" z=\"9\" type=\"0\" /><platform x=\"13\" y=\"17\" z=\"9\" type=\"0\" /><platform x=\"14\" y=\"14\" z=\"9\" type=\"0\" /><platform x=\"14\" y=\"18\" z=\"9\" type=\"0\" /><platform x=\"15\" y=\"14\" z=\"9\" type=\"0\" /><platform x=\"15\" y=\"18\" z=\"9\" type=\"0\" /><platform x=\"16\" y=\"13\" z=\"9\" type=\"0\" /><platform x=\"16\" y=\"19\" z=\"9\" type=\"0\" /><platform x=\"17\" y=\"13\" z=\"9\" type=\"0\" /><platform x=\"17\" y=\"15\" z=\"9\" type=\"2\" /><platform x=\"17\" y=\"16\" z=\"9\" type=\"2\" /><platform x=\"17\" y=\"17\" z=\"9\" type=\"2\" /><platform x=\"17\" y=\"19\" z=\"9\" type=\"0\" /><platform x=\"18\" y=\"12\" z=\"9\" type=\"0\" /><platform x=\"18\" y=\"15\" z=\"9\" type=\"2\" /><platform x=\"18\" y=\"16\" z=\"9\" type=\"4\" /><platform x=\"18\" y=\"17\" z=\"9\" type=\"2\" /><platform x=\"18\" y=\"20\" z=\"9\" type=\"0\" /><platform x=\"19\" y=\"12\" z=\"9\" type=\"0\" /><platform x=\"19\" y=\"15\" z=\"9\" type=\"2\" /><platform x=\"19\" y=\"16\" z=\"9\" type=\"2\" /><platform x=\"19\" y=\"17\" z=\"9\" type=\"2\" /><platform x=\"19\" y=\"20\" z=\"9\" type=\"0\" /><platform x=\"20\" y=\"11\" z=\"9\" type=\"0\" /><platform x=\"20\" y=\"21\" z=\"9\" type=\"0\" /><platform x=\"21\" y=\"11\" z=\"9\" type=\"0\" /><platform x=\"21\" y=\"21\" z=\"9\" type=\"0\" /><platform x=\"22\" y=\"10\" z=\"9\" type=\"0\" /><platform x=\"22\" y=\"22\" z=\"9\" type=\"0\" /><platform x=\"23\" y=\"10\" z=\"9\" type=\"0\" /><platform x=\"23\" y=\"11\" z=\"9\" type=\"0\" /><platform x=\"23\" y=\"12\" z=\"9\" type=\"0\" /><platform x=\"23\" y=\"13\" z=\"9\" type=\"0\" /><platform x=\"23\" y=\"14\" z=\"9\" type=\"0\" /><platform x=\"23\" y=\"15\" z=\"9\" type=\"0\" /><platform x=\"23\" y=\"16\" z=\"9\" type=\"1\" /><platform x=\"23\" y=\"17\" z=\"9\" type=\"0\" /><platform x=\"23\" y=\"18\" z=\"9\" type=\"0\" /><platform x=\"23\" y=\"19\" z=\"9\" type=\"0\" /><platform x=\"23\" y=\"20\" z=\"9\" type=\"0\" /><platform x=\"23\" y=\"21\" z=\"9\" type=\"0\" /><platform x=\"23\" y=\"22\" z=\"9\" type=\"0\" /><platform x=\"10\" y=\"12\" z=\"10\" type=\"6\" /><platform x=\"10\" y=\"15\" z=\"10\" type=\"6\" /><platform x=\"10\" y=\"16\" z=\"10\" type=\"6\" /><platform x=\"10\" y=\"17\" z=\"10\" type=\"6\" /><platform x=\"10\" y=\"20\" z=\"10\" type=\"6\" /><platform x=\"11\" y=\"16\" z=\"10\" type=\"6\" /><platform x=\"12\" y=\"15\" z=\"10\" type=\"6\" /><platform x=\"12\" y=\"17\" z=\"10\" type=\"6\" /><platform x=\"13\" y=\"15\" z=\"10\" type=\"6\" /><platform x=\"13\" y=\"17\" z=\"10\" type=\"6\" /><platform x=\"14\" y=\"14\" z=\"10\" type=\"6\" /><platform x=\"14\" y=\"18\" z=\"10\" type=\"6\" /><platform x=\"15\" y=\"14\" z=\"10\" type=\"6\" /><platform x=\"15\" y=\"18\" z=\"10\" type=\"6\" /><platform x=\"16\" y=\"13\" z=\"10\" type=\"6\" /><platform x=\"16\" y=\"19\" z=\"10\" type=\"6\" /><platform x=\"17\" y=\"13\" z=\"10\" type=\"6\" /><platform x=\"17\" y=\"19\" z=\"10\" type=\"6\" /><platform x=\"18\" y=\"12\" z=\"10\" type=\"6\" /><platform x=\"18\" y=\"20\" z=\"10\" type=\"6\" /><platform x=\"19\" y=\"12\" z=\"10\" type=\"6\" /><platform x=\"19\" y=\"20\" z=\"10\" type=\"6\" /><platform x=\"20\" y=\"11\" z=\"10\" type=\"6\" /><platform x=\"20\" y=\"21\" z=\"10\" type=\"6\" /><platform x=\"21\" y=\"11\" z=\"10\" type=\"6\" /><platform x=\"21\" y=\"21\" z=\"10\" type=\"6\" /><platform x=\"22\" y=\"10\" z=\"10\" type=\"6\" /><platform x=\"22\" y=\"22\" z=\"10\" type=\"6\" /><platform x=\"23\" y=\"10\" z=\"10\" type=\"6\" /><platform x=\"23\" y=\"11\" z=\"10\" type=\"6\" /><platform x=\"23\" y=\"12\" z=\"10\" type=\"6\" /><platform x=\"23\" y=\"13\" z=\"10\" type=\"6\" /><platform x=\"23\" y=\"14\" z=\"10\" type=\"6\" /><platform x=\"23\" y=\"15\" z=\"10\" type=\"6\" /><platform x=\"23\" y=\"16\" z=\"10\" type=\"6\" /><platform x=\"23\" y=\"17\" z=\"10\" type=\"6\" /><platform x=\"23\" y=\"18\" z=\"10\" type=\"6\" /><platform x=\"23\" y=\"19\" z=\"10\" type=\"6\" /><platform x=\"23\" y=\"20\" z=\"10\" type=\"6\" /><platform x=\"23\" y=\"21\" z=\"10\" type=\"6\" /><platform x=\"23\" y=\"22\" z=\"10\" type=\"6\" /><platform x=\"10\" y=\"13\" z=\"11\" type=\"6\" /><platform x=\"10\" y=\"14\" z=\"11\" type=\"6\" /><platform x=\"10\" y=\"18\" z=\"11\" type=\"6\" /><platform x=\"10\" y=\"19\" z=\"11\" type=\"6\" /><platform x=\"23\" y=\"10\" z=\"11\" type=\"5\" /><platform x=\"23\" y=\"13\" z=\"11\" type=\"5\" /><platform x=\"23\" y=\"16\" z=\"11\" type=\"5\" /><platform x=\"23\" y=\"19\" z=\"11\" type=\"5\" /><platform x=\"23\" y=\"22\" z=\"11\" type=\"5\" /></map>"); map.push("<map name=\"34. GOLDEN HILL\"><platform x=\"15\" y=\"8\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"10\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"18\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"19\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"20\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"21\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"22\" z=\"0\" type=\"4\" /><platform x=\"15\" y=\"7\" z=\"1\" type=\"1\" /><platform x=\"15\" y=\"8\" z=\"1\" type=\"-1\" /><platform x=\"15\" y=\"13\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"21\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"14\" z=\"2\" type=\"5\" /><platform x=\"15\" y=\"15\" z=\"2\" type=\"5\" /><platform x=\"15\" y=\"16\" z=\"2\" type=\"5\" /><platform x=\"15\" y=\"17\" z=\"2\" type=\"5\" /><platform x=\"15\" y=\"18\" z=\"2\" type=\"5\" /><platform x=\"15\" y=\"19\" z=\"2\" type=\"5\" /><platform x=\"15\" y=\"20\" z=\"2\" type=\"5\" /><platform x=\"15\" y=\"21\" z=\"2\" type=\"5\" /><platform x=\"15\" y=\"14\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"15\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"16\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"17\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"18\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"19\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"20\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"21\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"15\" z=\"4\" type=\"5\" /><platform x=\"15\" y=\"16\" z=\"4\" type=\"5\" /><platform x=\"15\" y=\"17\" z=\"4\" type=\"5\" /><platform x=\"15\" y=\"18\" z=\"4\" type=\"5\" /><platform x=\"15\" y=\"19\" z=\"4\" type=\"5\" /><platform x=\"15\" y=\"20\" z=\"4\" type=\"5\" /><platform x=\"15\" y=\"15\" z=\"5\" type=\"6\" /><platform x=\"15\" y=\"16\" z=\"5\" type=\"6\" /><platform x=\"15\" y=\"17\" z=\"5\" type=\"6\" /><platform x=\"15\" y=\"18\" z=\"5\" type=\"6\" /><platform x=\"15\" y=\"19\" z=\"5\" type=\"6\" /><platform x=\"15\" y=\"20\" z=\"5\" type=\"6\" /><platform x=\"15\" y=\"10\" z=\"6\" type=\"1\" /><platform x=\"15\" y=\"16\" z=\"6\" type=\"5\" /><platform x=\"15\" y=\"17\" z=\"6\" type=\"5\" /><platform x=\"15\" y=\"18\" z=\"6\" type=\"5\" /><platform x=\"15\" y=\"19\" z=\"6\" type=\"5\" /><platform x=\"15\" y=\"16\" z=\"7\" type=\"6\" /><platform x=\"15\" y=\"17\" z=\"7\" type=\"6\" /><platform x=\"15\" y=\"18\" z=\"7\" type=\"6\" /><platform x=\"15\" y=\"19\" z=\"7\" type=\"6\" /><platform x=\"15\" y=\"17\" z=\"8\" type=\"5\" /><platform x=\"15\" y=\"18\" z=\"8\" type=\"5\" /><platform x=\"15\" y=\"17\" z=\"9\" type=\"6\" /><platform x=\"15\" y=\"18\" z=\"9\" type=\"6\" /><platform x=\"15\" y=\"14\" z=\"10\" type=\"1\" /></map>"); map.push("<map name=\"37. DANGEROUS SNAKE\"><platform x=\"16\" y=\"11\" z=\"0\" type=\"1\" /><platform x=\"16\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"13\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"15\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"17\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"18\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"19\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"20\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"21\" z=\"0\" type=\"4\" /><platform x=\"16\" y=\"11\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"13\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"15\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"16\" z=\"1\" type=\"-1\" /><platform x=\"16\" y=\"17\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"19\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"21\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"11\" z=\"2\" type=\"6\" /><platform x=\"16\" y=\"21\" z=\"2\" type=\"6\" /><platform x=\"16\" y=\"11\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"21\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"11\" z=\"4\" type=\"6\" /><platform x=\"16\" y=\"21\" z=\"4\" type=\"6\" /><platform x=\"13\" y=\"12\" z=\"5\" type=\"2\" /><platform x=\"13\" y=\"13\" z=\"5\" type=\"2\" /><platform x=\"13\" y=\"17\" z=\"5\" type=\"2\" /><platform x=\"13\" y=\"21\" z=\"5\" type=\"2\" /><platform x=\"14\" y=\"11\" z=\"5\" type=\"2\" /><platform x=\"14\" y=\"14\" z=\"5\" type=\"2\" /><platform x=\"14\" y=\"16\" z=\"5\" type=\"2\" /><platform x=\"14\" y=\"18\" z=\"5\" type=\"2\" /><platform x=\"14\" y=\"20\" z=\"5\" type=\"2\" /><platform x=\"14\" y=\"22\" z=\"5\" type=\"2\" /><platform x=\"15\" y=\"10\" z=\"5\" type=\"2\" /><platform x=\"15\" y=\"11\" z=\"5\" type=\"2\" /><platform x=\"15\" y=\"12\" z=\"5\" type=\"2\" /><platform x=\"15\" y=\"14\" z=\"5\" type=\"2\" /><platform x=\"15\" y=\"16\" z=\"5\" type=\"2\" /><platform x=\"15\" y=\"18\" z=\"5\" type=\"2\" /><platform x=\"15\" y=\"20\" z=\"5\" type=\"2\" /><platform x=\"15\" y=\"22\" z=\"5\" type=\"2\" /><platform x=\"16\" y=\"10\" z=\"5\" type=\"2\" /><platform x=\"16\" y=\"11\" z=\"5\" type=\"6\" /><platform x=\"16\" y=\"12\" z=\"5\" type=\"2\" /><platform x=\"16\" y=\"13\" z=\"5\" type=\"7\" /><platform x=\"16\" y=\"14\" z=\"5\" type=\"2\" /><platform x=\"16\" y=\"15\" z=\"5\" type=\"7\" /><platform x=\"16\" y=\"16\" z=\"5\" type=\"2\" /><platform x=\"16\" y=\"17\" z=\"5\" type=\"7\" /><platform x=\"16\" y=\"18\" z=\"5\" type=\"2\" /><platform x=\"16\" y=\"19\" z=\"5\" type=\"7\" /><platform x=\"16\" y=\"20\" z=\"5\" type=\"2\" /><platform x=\"16\" y=\"21\" z=\"5\" type=\"7\" /><platform x=\"16\" y=\"22\" z=\"5\" type=\"2\" /><platform x=\"17\" y=\"10\" z=\"5\" type=\"2\" /><platform x=\"17\" y=\"11\" z=\"5\" type=\"2\" /><platform x=\"17\" y=\"12\" z=\"5\" type=\"2\" /><platform x=\"17\" y=\"14\" z=\"5\" type=\"2\" /><platform x=\"17\" y=\"16\" z=\"5\" type=\"2\" /><platform x=\"17\" y=\"18\" z=\"5\" type=\"2\" /><platform x=\"17\" y=\"20\" z=\"5\" type=\"2\" /><platform x=\"17\" y=\"22\" z=\"5\" type=\"2\" /><platform x=\"18\" y=\"14\" z=\"5\" type=\"2\" /><platform x=\"18\" y=\"16\" z=\"5\" type=\"2\" /><platform x=\"18\" y=\"18\" z=\"5\" type=\"2\" /><platform x=\"18\" y=\"20\" z=\"5\" type=\"2\" /><platform x=\"19\" y=\"15\" z=\"5\" type=\"2\" /><platform x=\"19\" y=\"19\" z=\"5\" type=\"2\" /><platform x=\"16\" y=\"11\" z=\"6\" type=\"6\" /><platform x=\"16\" y=\"13\" z=\"6\" type=\"6\" /><platform x=\"16\" y=\"15\" z=\"6\" type=\"6\" /><platform x=\"16\" y=\"17\" z=\"6\" type=\"6\" /><platform x=\"16\" y=\"19\" z=\"6\" type=\"6\" /><platform x=\"16\" y=\"21\" z=\"6\" type=\"6\" /></map>"); map.push("<map name=\"39. SLIDE\"><platform x=\"15\" y=\"12\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"16\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"20\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"24\" z=\"0\" type=\"0\" /><platform x=\"16\" y=\"9\" z=\"0\" type=\"4\" /><platform x=\"16\" y=\"11\" z=\"0\" type=\"2\" /><platform x=\"16\" y=\"13\" z=\"0\" type=\"2\" /><platform x=\"16\" y=\"15\" z=\"0\" type=\"2\" /><platform x=\"16\" y=\"17\" z=\"0\" type=\"2\" /><platform x=\"16\" y=\"19\" z=\"0\" type=\"2\" /><platform x=\"16\" y=\"21\" z=\"0\" type=\"2\" /><platform x=\"16\" y=\"23\" z=\"0\" type=\"2\" /><platform x=\"16\" y=\"25\" z=\"0\" type=\"2\" /><platform x=\"16\" y=\"27\" z=\"0\" type=\"1\" /><platform x=\"17\" y=\"10\" z=\"0\" type=\"0\" /><platform x=\"17\" y=\"14\" z=\"0\" type=\"0\" /><platform x=\"17\" y=\"18\" z=\"0\" type=\"0\" /><platform x=\"17\" y=\"22\" z=\"0\" type=\"0\" /><platform x=\"17\" y=\"26\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"12\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"16\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"20\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"24\" z=\"1\" type=\"6\" /><platform x=\"16\" y=\"27\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"10\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"14\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"18\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"22\" z=\"1\" type=\"6\" /><platform x=\"17\" y=\"26\" z=\"1\" type=\"-1\" /><platform x=\"15\" y=\"12\" z=\"2\" type=\"6\" /><platform x=\"15\" y=\"16\" z=\"2\" type=\"6\" /><platform x=\"15\" y=\"20\" z=\"2\" type=\"6\" /><platform x=\"15\" y=\"24\" z=\"2\" type=\"6\" /><platform x=\"16\" y=\"27\" z=\"2\" type=\"6\" /><platform x=\"17\" y=\"10\" z=\"2\" type=\"6\" /><platform x=\"17\" y=\"14\" z=\"2\" type=\"6\" /><platform x=\"17\" y=\"18\" z=\"2\" type=\"6\" /><platform x=\"17\" y=\"22\" z=\"2\" type=\"6\" /><platform x=\"16\" y=\"10\" z=\"3\" type=\"7\" /><platform x=\"16\" y=\"11\" z=\"3\" type=\"7\" /><platform x=\"16\" y=\"12\" z=\"3\" type=\"7\" /><platform x=\"16\" y=\"13\" z=\"3\" type=\"7\" /><platform x=\"16\" y=\"27\" z=\"3\" type=\"6\" /><platform x=\"16\" y=\"10\" z=\"4\" type=\"6\" /><platform x=\"16\" y=\"11\" z=\"4\" type=\"6\" /><platform x=\"16\" y=\"12\" z=\"4\" type=\"6\" /><platform x=\"16\" y=\"13\" z=\"4\" type=\"6\" /><platform x=\"16\" y=\"14\" z=\"6\" type=\"7\" /><platform x=\"16\" y=\"15\" z=\"6\" type=\"7\" /><platform x=\"16\" y=\"16\" z=\"6\" type=\"7\" /><platform x=\"16\" y=\"23\" z=\"6\" type=\"1\" /><platform x=\"16\" y=\"14\" z=\"7\" type=\"6\" /><platform x=\"16\" y=\"15\" z=\"7\" type=\"6\" /><platform x=\"16\" y=\"16\" z=\"7\" type=\"6\" /><platform x=\"16\" y=\"23\" z=\"7\" type=\"6\" /><platform x=\"16\" y=\"23\" z=\"8\" type=\"6\" /><platform x=\"16\" y=\"17\" z=\"9\" type=\"7\" /><platform x=\"16\" y=\"18\" z=\"9\" type=\"7\" /><platform x=\"16\" y=\"23\" z=\"9\" type=\"6\" /><platform x=\"16\" y=\"17\" z=\"11\" type=\"6\" /><platform x=\"16\" y=\"18\" z=\"11\" type=\"6\" /><platform x=\"16\" y=\"19\" z=\"12\" type=\"7\" /><platform x=\"16\" y=\"19\" z=\"13\" type=\"6\" /></map>"); map.push("<map name=\"40. KITE\"><platform x=\"15\" y=\"3\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"5\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"7\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"9\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"10\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"11\" z=\"0\" type=\"0\" /><platform x=\"15\" y=\"2\" z=\"1\" type=\"4\" /><platform x=\"15\" y=\"3\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"4\" z=\"1\" type=\"4\" /><platform x=\"15\" y=\"5\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"6\" z=\"1\" type=\"4\" /><platform x=\"15\" y=\"7\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"8\" z=\"1\" type=\"4\" /><platform x=\"15\" y=\"9\" z=\"1\" type=\"-1\" /><platform x=\"15\" y=\"10\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"11\" z=\"1\" type=\"6\" /><platform x=\"15\" y=\"12\" z=\"1\" type=\"0\" /><platform x=\"15\" y=\"13\" z=\"1\" type=\"0\" /><platform x=\"15\" y=\"3\" z=\"2\" type=\"6\" /><platform x=\"15\" y=\"5\" z=\"2\" type=\"6\" /><platform x=\"15\" y=\"7\" z=\"2\" type=\"6\" /><platform x=\"15\" y=\"10\" z=\"2\" type=\"6\" /><platform x=\"15\" y=\"11\" z=\"2\" type=\"6\" /><platform x=\"15\" y=\"12\" z=\"2\" type=\"6\" /><platform x=\"15\" y=\"13\" z=\"2\" type=\"6\" /><platform x=\"15\" y=\"14\" z=\"2\" type=\"0\" /><platform x=\"15\" y=\"12\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"13\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"14\" z=\"3\" type=\"6\" /><platform x=\"15\" y=\"15\" z=\"3\" type=\"0\" /><platform x=\"15\" y=\"14\" z=\"4\" type=\"6\" /><platform x=\"15\" y=\"15\" z=\"4\" type=\"6\" /><platform x=\"15\" y=\"14\" z=\"5\" type=\"1\" /><platform x=\"15\" y=\"15\" z=\"5\" type=\"6\" /><platform x=\"15\" y=\"16\" z=\"5\" type=\"1\" /><platform x=\"15\" y=\"14\" z=\"6\" type=\"6\" /><platform x=\"15\" y=\"15\" z=\"6\" type=\"6\" /><platform x=\"15\" y=\"16\" z=\"6\" type=\"6\" /><platform x=\"15\" y=\"13\" z=\"7\" type=\"0\" /><platform x=\"15\" y=\"14\" z=\"7\" type=\"6\" /><platform x=\"15\" y=\"15\" z=\"7\" type=\"6\" /><platform x=\"15\" y=\"16\" z=\"7\" type=\"6\" /><platform x=\"15\" y=\"17\" z=\"7\" type=\"0\" /><platform x=\"15\" y=\"13\" z=\"8\" type=\"6\" /><platform x=\"15\" y=\"14\" z=\"8\" type=\"6\" /><platform x=\"15\" y=\"15\" z=\"8\" type=\"6\" /><platform x=\"15\" y=\"16\" z=\"8\" type=\"6\" /><platform x=\"15\" y=\"17\" z=\"8\" type=\"6\" /><platform x=\"15\" y=\"12\" z=\"9\" type=\"0\" /><platform x=\"15\" y=\"13\" z=\"9\" type=\"6\" /><platform x=\"15\" y=\"14\" z=\"9\" type=\"5\" /><platform x=\"15\" y=\"15\" z=\"9\" type=\"6\" /><platform x=\"15\" y=\"16\" z=\"9\" type=\"5\" /><platform x=\"15\" y=\"17\" z=\"9\" type=\"6\" /><platform x=\"15\" y=\"18\" z=\"9\" type=\"0\" /><platform x=\"15\" y=\"13\" z=\"10\" type=\"0\" /><platform x=\"15\" y=\"14\" z=\"10\" type=\"6\" /><platform x=\"15\" y=\"15\" z=\"10\" type=\"6\" /><platform x=\"15\" y=\"16\" z=\"10\" type=\"6\" /><platform x=\"15\" y=\"17\" z=\"10\" type=\"0\" /><platform x=\"15\" y=\"14\" z=\"11\" type=\"0\" /><platform x=\"15\" y=\"15\" z=\"11\" type=\"6\" /><platform x=\"15\" y=\"16\" z=\"11\" type=\"0\" /><platform x=\"15\" y=\"15\" z=\"12\" type=\"0\" /></map>"); } }//package game
Section 96
//ManagerAccess (game.ManagerAccess) package game { public namespace ManagerAccess = "ManagerAccess"; }//package game
Section 97
//Room (game.Room) package game { import flash.events.*; import alternativa.types.*; import alternativa.engine3d.core.*; import alternativa.particle3d.*; import flash.utils.*; import game.entities.*; import game.actors.*; import game.actors.player.*; public class Room extends EventDispatcher { protected var entities:Array; public var player_start:Point3D; public var title:String;// = "" protected var user_datas:Dictionary; protected var actors:Array; public var cells:Array; public var emitter_manager:EmitterManager; protected var load:Object; protected var entities_dead:Array; protected var attr:Object;// = null public static const CELL_HIDE:int = 7; public static const CELL_MONEY:int = 6; public static const CELL_NORMAL:int = 0; public static const CELL_MONEYBOX:int = 5; public static const CELL_JUMP:int = 1; public static const CELLS_X_MAX:int = 32; public static const CELLS_Y_MAX:int = 32; public static const CELLS_Z_MAX:int = 16; public static const CELL_TELEPORT:int = 3; public static const CELL_EXIT:int = 4; public static const CELL_LAVA:int = 2; public static const CELL_PLAYER:int = -1; public function Room(_arg1:Object){ var _local2:int; var _local3:int; var _local4:int; attr = null; load = {xml:null, i:0, is_load:false}; title = ""; super(); attr = _arg1; entities = []; entities_dead = []; actors = []; user_datas = new Dictionary(); cells = []; _local2 = 0; while (_local2 < CELLS_X_MAX) { cells[_local2] = []; _local3 = 0; while (_local3 < CELLS_Y_MAX) { cells[_local2][_local3] = []; _local4 = 0; while (_local4 < CELLS_Z_MAX) { cells[_local2][_local3][_local4] = null; _local4++; }; _local3++; }; _local2++; }; emitter_manager = new EmitterManager({scene:attr.scene}); } public function update(_arg1:Number):void{ var _local2:int; _local2 = 0; while (_local2 < actors.length) { if (actors[_local2].isAlive()){ (actors[_local2] as Actor).update(_arg1); }; _local2++; }; if (entities_dead.length > 0){ _local2 = 0; while (_local2 < entities_dead.length) { entities_dead[_local2].onDeath(); remove(entities_dead[_local2]); _local2++; }; entities_dead = []; }; emitter_manager.update(_arg1); } public function remove(_arg1:Entity):void{ var _local2:int; var _local3:Object3D; if (!_arg1){ return; }; dispatchEvent(new EntityEvent(_arg1, EntityEvent.REMOVE)); if ((_arg1 is Actor)){ _local2 = actors.indexOf(_arg1); if (_local2 >= 0){ actors.splice(_local2, 1); }; }; _local3 = _arg1.getVisualObject(); if (_local3){ delete user_datas[_local3]; }; _local2 = entities.indexOf(_arg1); if (_local2 >= 0){ entities[_local2].removeEventListener(EntityEvent.DEATH, onDeath); entities.splice(_local2, 1); }; } public function render():void{ var _local1:int; _local1 = 0; while (_local1 < actors.length) { (actors[_local1] as Actor).render(); _local1++; }; } public function free():void{ attr = null; entities = null; entities_dead = null; actors = null; user_datas.clear(); user_datas = null; emitter_manager.free(); emitter_manager = null; } public function buildStep():void{ var _local1:XML; var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:int; var _local7:int; _local1 = load.xml; _local2 = load.i; if (((_local1) && ((load.i < _local1.platform.length())))){ _local3 = int(_local1.platform[_local2].@x); _local4 = int(_local1.platform[_local2].@y); _local5 = int(_local1.platform[_local2].@z); _local6 = int(_local1.platform[_local2].@type); if (_local6 == CELL_PLAYER){ player_start = new Point3D((_local3 * 100), (_local4 * 100), (_local5 * 100)); add(new Player({x:(_local3 * 100), y:(_local4 * 100), z:(_local5 * 100)})); } else { if (_local6 == CELL_MONEYBOX){ cells[_local3][_local4][_local5] = {o:new MoneyBox({x:(_local3 * 100), y:(_local4 * 100), z:(_local5 * 100)}), type:_local6}; add(cells[_local3][_local4][_local5].o); } else { if (_local6 == CELL_MONEY){ cells[_local3][_local4][_local5] = {o:new Money({x:(_local3 * 100), y:(_local4 * 100), z:(_local5 * 100)}), type:_local6}; add(cells[_local3][_local4][_local5].o); } else { if (_local6 == CELL_HIDE){ cells[_local3][_local4][_local5] = {o:new HidePlatform({x:(_local3 * 100), y:(_local4 * 100), z:(_local5 * 100)}), type:_local6}; add(cells[_local3][_local4][_local5].o); } else { if (_local6 == CELL_LAVA){ cells[_local3][_local4][_local5] = {o:new Lava({x:(_local3 * 100), y:(_local4 * 100), z:(_local5 * 100)}), type:_local6}; add(cells[_local3][_local4][_local5].o); } else { if (_local6 == CELL_EXIT){ cells[_local3][_local4][_local5] = {o:new Exit({x:(_local3 * 100), y:(_local4 * 100), z:(_local5 * 100)}), type:_local6}; add(cells[_local3][_local4][_local5].o); } else { switch (_local6){ case CELL_NORMAL: _local7 = Platform.TYPE_NORMAL; break; case CELL_JUMP: _local7 = Platform.TYPE_JUMP; break; case CELL_TELEPORT: _local7 = Platform.TYPE_TELEPORT; break; default: _local7 = Platform.TYPE_NORMAL; }; cells[_local3][_local4][_local5] = {o:new Platform({x:(_local3 * 100), y:(_local4 * 100), z:(_local5 * 100), type:_local7}), type:_local6}; add(cells[_local3][_local4][_local5].o); }; }; }; }; }; }; load.i++; } else { load.is_load = false; }; } public function add(_arg1:Entity):Entity{ var _local2:int; var _local3:Object3D; if (!_arg1){ return (null); }; _arg1.setRoom(this); _local2 = (entities.push(_arg1) - 1); dispatchEvent(new EntityEvent(_arg1, EntityEvent.ADD)); entities[_local2].addEventListener(EntityEvent.DEATH, onDeath); _local3 = _arg1.getVisualObject(); if (_local3){ user_datas[_local3] = _arg1; }; if ((_arg1 is Actor)){ actors.push(_arg1); }; return (_arg1); } public function isBuild():Boolean{ return (load.is_load); } public function onDeath(_arg1:EntityEvent):void{ _arg1.entity.is_alive = false; entities_dead.push(_arg1.entity); } public function build():void{ load.xml = new XML(attr.xml_str); title = String(load.xml.@name); load.i = 0; load.is_load = true; } public function removeAll():void{ var _local1:int; _local1 = 0; while (_local1 < entities.length) { dispatchEvent(new EntityEvent(entities[_local1], EntityEvent.REMOVE)); entities[_local1].removeEventListener(EntityEvent.DEATH, onDeath); _local1++; }; entities = []; entities_dead = []; actors = []; } } }//package game
Section 98
//Selectable (game.Selectable) package game { public interface Selectable { function select(_arg1:Boolean):void; } }//package game
Section 99
//BtnContinue (gui.BtnContinue) package gui { import ui.*; public dynamic class BtnContinue extends SoundButton { } }//package gui
Section 100
//BtnGfx (gui.BtnGfx) package gui { import ui.*; public dynamic class BtnGfx extends SoundButton { } }//package gui
Section 101
//BtnLevel (gui.BtnLevel) package gui { import flash.display.*; import flash.text.*; public dynamic class BtnLevel extends MovieClip { public var btn:BtnNumLevelBtn; public var t_best:TextField; public var t_time:TextField; } }//package gui
Section 102
//BtnMainmenu (gui.BtnMainmenu) package gui { import ui.*; public dynamic class BtnMainmenu extends SoundButton { } }//package gui
Section 103
//BtnMoreGames (gui.BtnMoreGames) package gui { import ui.*; public dynamic class BtnMoreGames extends SoundButton { } }//package gui
Section 104
//BtnNext (gui.BtnNext) package gui { import ui.*; public dynamic class BtnNext extends SoundButton { } }//package gui
Section 105
//BtnNumLevelBtn (gui.BtnNumLevelBtn) package gui { import ui.*; public dynamic class BtnNumLevelBtn extends SoundButton { } }//package gui
Section 106
//BtnPlay (gui.BtnPlay) package gui { import ui.*; public dynamic class BtnPlay extends SoundButton { } }//package gui
Section 107
//BtnReplay (gui.BtnReplay) package gui { import ui.*; public dynamic class BtnReplay extends SoundButton { } }//package gui
Section 108
//BtnResume (gui.BtnResume) package gui { import ui.*; public dynamic class BtnResume extends SoundButton { } }//package gui
Section 109
//BtnScoreMode (gui.BtnScoreMode) package gui { import ui.*; public dynamic class BtnScoreMode extends SoundButton { } }//package gui
Section 110
//BtnScores (gui.BtnScores) package gui { import ui.*; public dynamic class BtnScores extends SoundButton { } }//package gui
Section 111
//BtnSelectLevel (gui.BtnSelectLevel) package gui { import ui.*; public dynamic class BtnSelectLevel extends SoundButton { } }//package gui
Section 112
//BtnSubmit (gui.BtnSubmit) package gui { import ui.*; public dynamic class BtnSubmit extends SoundButton { } }//package gui
Section 113
//BtnTimeMode (gui.BtnTimeMode) package gui { import ui.*; public dynamic class BtnTimeMode extends SoundButton { } }//package gui
Section 114
//Gameover (gui.Gameover) package gui { import flash.display.*; public dynamic class Gameover extends MovieClip { public var btn_mainmenu:BtnMainmenu; public var btn_replay:BtnReplay; } }//package gui
Section 115
//Gameplay (gui.Gameplay) package gui { import flash.display.*; public dynamic class Gameplay extends MovieClip { public var life:MovieClip; public var stat:MovieClip; public var score:MovieClip; } }//package gui
Section 116
//Gfx (gui.Gfx) package gui { import flash.display.*; public dynamic class Gfx extends MovieClip { public var btn:BtnGfx; } }//package gui
Section 117
//Hint0 (gui.Hint0) package gui { import flash.display.*; public dynamic class Hint0 extends MovieClip { } }//package gui
Section 118
//Hint1 (gui.Hint1) package gui { import flash.display.*; public dynamic class Hint1 extends MovieClip { } }//package gui
Section 119
//Hint11 (gui.Hint11) package gui { import flash.display.*; public dynamic class Hint11 extends MovieClip { } }//package gui
Section 120
//Hint2 (gui.Hint2) package gui { import flash.display.*; public dynamic class Hint2 extends MovieClip { } }//package gui
Section 121
//Hint3 (gui.Hint3) package gui { import flash.display.*; public dynamic class Hint3 extends MovieClip { } }//package gui
Section 122
//Hint4 (gui.Hint4) package gui { import flash.display.*; public dynamic class Hint4 extends MovieClip { } }//package gui
Section 123
//Hint5 (gui.Hint5) package gui { import flash.display.*; public dynamic class Hint5 extends MovieClip { } }//package gui
Section 124
//Hint6 (gui.Hint6) package gui { import flash.display.*; public dynamic class Hint6 extends MovieClip { } }//package gui
Section 125
//Hint7 (gui.Hint7) package gui { import flash.display.*; public dynamic class Hint7 extends MovieClip { } }//package gui
Section 126
//Loading (gui.Loading) package gui { import flash.display.*; public dynamic class Loading extends MovieClip { public var bar:MovieClip; } }//package gui
Section 127
//Mainmenu (gui.Mainmenu) package gui { import flash.display.*; public dynamic class Mainmenu extends MovieClip { public var btn_scoremode:BtnScoreMode; public var effects_control:Gfx; public var btn_records:BtnScores; public var btn_moregames:BtnMoreGames; public var btn_timemode:BtnTimeMode; public var alternativa:MovieClip; public var karmateam:karmateam_logo; } }//package gui
Section 128
//MapTitle (gui.MapTitle) package gui { import flash.display.*; import flash.text.*; public dynamic class MapTitle extends MovieClip { public var t_title:TextField; } }//package gui
Section 129
//Pause (gui.Pause) package gui { import flash.display.*; public dynamic class Pause extends MovieClip { public var btn_mainmenu:BtnMainmenu; public var btn_resume:BtnResume; } }//package gui
Section 130
//ScoreMode (gui.ScoreMode) package gui { import flash.display.*; public dynamic class ScoreMode extends MovieClip { public var btn_mainmenu:BtnMainmenu; public var btn_continue:BtnContinue; public var btn_play:BtnPlay; } }//package gui
Section 131
//Sfx (gui.Sfx) package gui { import flash.display.*; public dynamic class Sfx extends MovieClip { public var btn:SimpleButton; } }//package gui
Section 132
//TimeMode (gui.TimeMode) package gui { import flash.display.*; public dynamic class TimeMode extends MovieClip { public var map3:BtnLevel; public var map4:BtnLevel; public var map5:BtnLevel; public var map7:BtnLevel; public var map8:BtnLevel; public var map2:BtnLevel; public var map6:BtnLevel; public var map0:BtnLevel; public var map1:BtnLevel; public var map9:BtnLevel; public var map10:BtnLevel; public var map11:BtnLevel; public var map13:BtnLevel; public var map14:BtnLevel; public var map15:BtnLevel; public var map18:BtnLevel; public var map12:BtnLevel; public var map16:BtnLevel; public var map17:BtnLevel; public var map20:BtnLevel; public var map21:BtnLevel; public var map23:BtnLevel; public var map25:BtnLevel; public var map27:BtnLevel; public var map22:BtnLevel; public var map24:BtnLevel; public var map19:BtnLevel; public var map26:BtnLevel; public var map28:BtnLevel; public var map30:BtnLevel; public var map31:BtnLevel; public var map32:BtnLevel; public var map35:BtnLevel; public var map36:BtnLevel; public var map39:BtnLevel; public var map34:BtnLevel; public var map29:BtnLevel; public var map37:BtnLevel; public var map33:BtnLevel; public var map38:BtnLevel; public var btn_mainmenu:BtnMainmenu; } }//package gui
Section 133
//Victory (gui.Victory) package gui { import flash.display.*; public dynamic class Victory extends MovieClip { public var btn_mainmenu:BtnMainmenu; public var time_msg:MovieClip; public var label:MovieClip; public var bonus:MovieClip; public var btn_select:BtnSelectLevel; public var btn_submit:BtnSubmit; public var score:MovieClip; public var btn_next:BtnNext; } }//package gui
Section 134
//HintManager (hints.HintManager) package hints { import elm.core.*; import flash.display.*; public class HintManager { protected var m:MovieClip; protected var attr:Object; protected var is_active:Boolean;// = false public static const TIME:Number = 2; public function HintManager(_arg1:Object){ is_active = false; super(); attr = _arg1; if (!attr.layer){ attr.layer = Game.SYS; }; if (!attr.map){ attr.map = 0; }; if (!attr.timer){ attr.timer = TIME; }; } public function update(_arg1:Number):void{ if (!is_active){ return; }; attr.timer = (attr.timer - _arg1); } public function free():void{ onAnyKeyPress(); attr = null; } public function isActive():Boolean{ return (is_active); } public function onAnyKeyPress():void{ if (((is_active) && ((attr.timer <= 0)))){ Gfx.removeMovie(attr.layer, m); m = null; is_active = false; }; } public function show(_arg1:int, _arg2=2):void{ attr.map = _arg1; attr.timer = _arg2; m = (Gfx.makeMovie(("gui.Hint" + attr.map), "hint") as MovieClip); if (((m) && (attr.layer))){ Gfx.addMovie(attr.layer, m); is_active = true; }; } } }//package hints
Section 135
//export_1 (jumpoo_fla.export_1) package jumpoo_fla { import flash.display.*; public dynamic class export_1 extends MovieClip { public function export_1(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package jumpoo_fla
Section 136
//gfx_bonus_32 (jumpoo_fla.gfx_bonus_32) package jumpoo_fla { import flash.display.*; import flash.text.*; public dynamic class gfx_bonus_32 extends MovieClip { public var t_hide:TextField; public var t_space:TextField; public var t_life:TextField; } }//package jumpoo_fla
Section 137
//gfx_life_bar_8 (jumpoo_fla.gfx_life_bar_8) package jumpoo_fla { import flash.display.*; public dynamic class gfx_life_bar_8 extends MovieClip { public var life_0:MovieClip; public var life_2:MovieClip; public var life_1:MovieClip; } }//package jumpoo_fla
Section 138
//gfx_score_6 (jumpoo_fla.gfx_score_6) package jumpoo_fla { import flash.display.*; import flash.text.*; public dynamic class gfx_score_6 extends MovieClip { public var t_score:TextField; } }//package jumpoo_fla
Section 139
//gfx_statistic_7 (jumpoo_fla.gfx_statistic_7) package jumpoo_fla { import flash.display.*; import flash.text.*; public dynamic class gfx_statistic_7 extends MovieClip { public var t_best:TextField; public var t_time:TextField; } }//package jumpoo_fla
Section 140
//karmateam_prialka_15 (jumpoo_fla.karmateam_prialka_15) package jumpoo_fla { import flash.display.*; public dynamic class karmateam_prialka_15 extends MovieClip { public var roll:MovieClip; } }//package jumpoo_fla
Section 141
//MochiAd (mochi.as3.MochiAd) package mochi.as3 { import flash.display.*; import flash.events.*; import flash.net.*; import flash.utils.*; import flash.system.*; public class MochiAd { public static function getVersion():String{ return ("3.0 as3"); } public static function showClickAwayAd(_arg1:Object):void{ var DEFAULTS:Object; var clip:Object; var ad_timeout:Number; var mc:MovieClip; var wh:Array; var w:Number; var h:Number; var chk:MovieClip; var sendHostProgress:Boolean; var options = _arg1; DEFAULTS = {ad_timeout:2000, regpt:"o", method:"showClickAwayAd", res:"300x250", no_bg:true, ad_started:function ():void{ }, ad_finished:function ():void{ }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ }, ad_skipped:function ():void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); clip = options.clip; ad_timeout = options.ad_timeout; delete options.ad_timeout; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); options.ad_finished(); }; wh = MochiAd._getRes(options, clip); w = wh[0]; h = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; mc.unloadAd = function ():void{ MochiAd.unload(clip); }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.rpc = function (_arg1:Number, _arg2:Object):void{ MochiAd.rpc(clip, _arg1, _arg2); }; sendHostProgress = false; mc.regContLC = function (_arg1:String):void{ mc._containerLCName = _arg1; }; chk["onEnterFrame"] = function ():void{ var _local1:Object; var _local2:Number; var _local3:Boolean; var _local4:Number; if (!this.parent){ delete this.onEnterFrame; return; }; _local1 = this.parent._mochiad_ctr; _local2 = (getTimer() - this.started); _local3 = false; if (!chk.showing){ _local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local4 > 0){ chk.showing = true; _local3 = true; chk.started = getTimer(); } else { if (_local2 > chk.ad_timeout){ options.ad_failed(); _local3 = true; }; }; }; if (this.root == null){ _local3 = true; }; if (_local3){ delete this.onEnterFrame; }; }; doOnEnterFrame(chk); } public static function _isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function _allowDomains(_arg1:String):String{ var _local2:String; _local2 = _arg1.split("/")[2].split(":")[0]; if (Security.sandboxType == "application"){ return (_local2); }; Security.allowDomain("*"); Security.allowDomain(_local2); Security.allowInsecureDomain("*"); Security.allowInsecureDomain(_local2); return (_local2); } public static function unload(_arg1:Object):Boolean{ if (((_arg1.clip) && (_arg1.clip._mochiad))){ _arg1 = _arg1.clip; }; if (_arg1.origFrameRate != undefined){ _arg1.stage.frameRate = _arg1.origFrameRate; }; if (!_arg1._mochiad){ return (false); }; if (_arg1._mochiad._containerLCName != undefined){ _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "notify", {id:"unload"}); }; if (_arg1._mochiad.onUnload){ _arg1._mochiad.onUnload(); }; delete _arg1._mochiad_loaded; delete _arg1._mochiad; return (true); } public static function showInterLevelAd(_arg1:Object):void{ var DEFAULTS:Object; var clip:Object; var ad_msec:Number; var ad_timeout:Number; var fadeout_time:Number; var mc:MovieClip; var wh:Array; var w:Number; var h:Number; var chk:MovieClip; var options = _arg1; DEFAULTS = {ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function ():void{ if ((this.clip is MovieClip)){ this.clip.stop(); } else { throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_finished:function ():void{ if ((this.clip is MovieClip)){ this.clip.play(); } else { throw (new Error("MochiAd.showInterLevelAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ }, ad_skipped:function ():void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); clip = options.clip; ad_msec = 11000; ad_timeout = options.ad_timeout; delete options.ad_timeout; fadeout_time = options.fadeout_time; delete options.fadeout_time; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ MochiAd._cleanup(mc); options.ad_finished(); }; wh = MochiAd._getRes(options, clip); w = wh[0]; h = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.ad_msec = ad_msec; chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; chk.fadeout_time = fadeout_time; chk.fadeFunction = function ():void{ var _local1:Number; if (!this.parent){ delete this.onEnterFrame; delete this.fadeFunction; return; }; _local1 = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time))); if (_local1 > 0){ this.parent.alpha = (_local1 * 0.01); } else { MochiAd.unload(clip); delete this["onEnterFrame"]; }; }; mc.unloadAd = function ():void{ MochiAd.unload(clip); }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.adjustProgress = function (_arg1:Number):void{ var _local2:Object; _local2 = mc._mochiad_wait; _local2.server_control = true; _local2.showing = true; _local2.started = getTimer(); _local2.ad_msec = (_arg1 - 250); }; mc.rpc = function (_arg1:Number, _arg2:Object):void{ MochiAd.rpc(clip, _arg1, _arg2); }; chk["onEnterFrame"] = function ():void{ var _local1:Object; var _local2:Number; var _local3:Boolean; var _local4:Number; if (!this.parent){ delete this.onEnterFrame; delete this.fadeFunction; return; }; _local1 = this.parent._mochiad_ctr; _local2 = (getTimer() - this.started); _local3 = false; if (!chk.showing){ _local4 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local4 > 0){ chk.showing = true; chk.started = getTimer(); MochiAd.adShowing(clip); } else { if (_local2 > chk.ad_timeout){ options.ad_failed(); _local3 = true; }; }; }; if (_local2 > chk.ad_msec){ _local3 = true; }; if (_local3){ if (this.server_control){ delete this.onEnterFrame; } else { this.fadeout_start = getTimer(); this.onEnterFrame = this.fadeFunction; }; }; }; doOnEnterFrame(chk); } public static function _parseOptions(_arg1:Object, _arg2:Object):Object{ var _local3:Object; var _local4:String; var _local5:Array; var _local6:Number; var _local7:Array; _local3 = {}; for (_local4 in _arg2) { _local3[_local4] = _arg2[_local4]; }; if (_arg1){ for (_local4 in _arg1) { _local3[_local4] = _arg1[_local4]; }; }; if (_local3.clip == undefined){ throw (new Error("MochiAd is missing the 'clip' parameter. This should be a MovieClip, Sprite or an instance of a class that extends MovieClip or Sprite.")); }; _arg1 = _local3.clip.loaderInfo.parameters.mochiad_options; if (_arg1){ _local5 = _arg1.split("&"); _local6 = 0; while (_local6 < _local5.length) { _local7 = _local5[_local6].split("="); _local3[unescape(_local7[0])] = unescape(_local7[1]); _local6++; }; }; if (_local3.id == "test"){ }; return (_local3); } public static function _cleanup(_arg1:Object):void{ var idx:Number; var k:String; var lc:LocalConnection; var f:Function; var mc = _arg1; if (("lc" in mc)){ lc = mc.lc; f = function ():void{ try { lc.client = null; lc.close(); } catch(e:Error) { }; }; setTimeout(f, 0); }; idx = DisplayObjectContainer(mc).numChildren; while (idx > 0) { idx = (idx - 1); DisplayObjectContainer(mc).removeChildAt(idx); }; for (k in mc) { delete mc[k]; }; } public static function load(_arg1:Object):MovieClip{ var DEFAULTS:Object; var clip:Object; var depth:Number; var mc:MovieClip; var wh:Array; var lv:URLVariables; var k:String; var server:String; var hostname:String; var lc:LocalConnection; var name:String; var loader:Loader; var g:Function; var req:URLRequest; var v:Object; var options = _arg1; DEFAULTS = {server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"}; options = MochiAd._parseOptions(options, DEFAULTS); options.swfv = 9; options.mav = MochiAd.getVersion(); clip = options.clip; if (!MochiAd._isNetworkAvailable()){ return (null); }; try { if (clip._mochiad_loaded){ return (null); }; } catch(e:Error) { throw (new Error("MochiAd requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic.")); }; depth = options.depth; delete options.depth; mc = createEmptyMovieClip(clip, "_mochiad", depth); wh = MochiAd._getRes(options, clip); options.res = ((wh[0] + "x") + wh[1]); options.server = (options.server + options.id); delete options.id; clip._mochiad_loaded = true; if (clip.loaderInfo.loaderURL.indexOf("http") == 0){ options.as3_swf = clip.loaderInfo.loaderURL; //unresolved jump }; lv = new URLVariables(); for (k in options) { v = options[k]; if (!(v is Function)){ lv[k] = v; }; }; server = lv.server; delete lv.server; hostname = _allowDomains(server); lc = new LocalConnection(); lc.client = mc; name = ["", Math.floor(new Date().getTime()), Math.floor((Math.random() * 999999))].join("_"); lc.allowDomain("*", "localhost"); lc.allowInsecureDomain("*", "localhost"); lc.connect(name); mc.lc = lc; mc.lcName = name; lv.lc = name; lv.st = getTimer(); loader = new Loader(); g = function (_arg1:Object):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); MochiAd.unload(clip); }; loader.contentLoaderInfo.addEventListener(Event.UNLOAD, g); req = new URLRequest(((server + ".swf?cacheBust=") + new Date().getTime())); req.contentType = "application/x-www-form-urlencoded"; req.method = URLRequestMethod.POST; req.data = lv; loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, function (_arg1:IOErrorEvent):void{ }); loader.load(req); mc.addChild(loader); mc._mochiad_ctr = loader; return (mc); } public static function runMethod(_arg1:Object, _arg2:String, _arg3:Array):Object{ var _local4:Array; var _local5:Number; _local4 = _arg2.split("."); _local5 = 0; while (_local5 < (_local4.length - 1)) { if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){ return (undefined); }; _arg1 = _arg1[_local4[_local5]]; _local5++; }; if (typeof(_arg1[_local4[_local5]]) == "function"){ return (_arg1[_local4[_local5]].apply(_arg1, _arg3)); }; return (undefined); } public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number):MovieClip{ var _local4:MovieClip; _local4 = new MovieClip(); if (((false) && (_arg3))){ _arg1.addChildAt(_local4, _arg3); } else { _arg1.addChild(_local4); }; _arg1[_arg2] = _local4; _local4["_name"] = _arg2; return (_local4); } public static function _getRes(_arg1:Object, _arg2:Object):Array{ var _local3:Object; var _local4:Number; var _local5:Number; var _local6:Array; _local3 = _arg2.getBounds(_arg2.root); _local4 = 0; _local5 = 0; if (typeof(_arg1.res) != "undefined"){ _local6 = _arg1.res.split("x"); _local4 = parseFloat(_local6[0]); _local5 = parseFloat(_local6[1]); } else { _local4 = (_local3.xMax - _local3.xMin); _local5 = (_local3.yMax - _local3.yMin); }; if ((((_local4 == 0)) || ((_local5 == 0)))){ _local4 = _arg2.stage.stageWidth; _local5 = _arg2.stage.stageHeight; }; return ([_local4, _local5]); } public static function adShowing(_arg1:Object):void{ _arg1.origFrameRate = _arg1.stage.frameRate; _arg1.stage.frameRate = 30; } public static function getValue(_arg1:Object, _arg2:String):Object{ var _local3:Array; var _local4:Number; _local3 = _arg2.split("."); _local4 = 0; while (_local4 < (_local3.length - 1)) { if ((((_arg1[_local3[_local4]] == undefined)) || ((_arg1[_local3[_local4]] == null)))){ return (undefined); }; _arg1 = _arg1[_local3[_local4]]; _local4++; }; return (_arg1[_local3[_local4]]); } public static function rpc(_arg1:Object, _arg2:Number, _arg3:Object):void{ var _local4:Object; var _local5:Object; switch (_arg3.id){ case "setValue": MochiAd.setValue(_arg1, _arg3.objectName, _arg3.value); break; case "getValue": _local4 = MochiAd.getValue(_arg1, _arg3.objectName); _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local4); break; case "runMethod": _local5 = MochiAd.runMethod(_arg1, _arg3.method, _arg3.args); _arg1._mochiad.lc.send(_arg1._mochiad._containerLCName, "rpcResult", _arg2, _local5); break; }; } public static function setValue(_arg1:Object, _arg2:String, _arg3:Object):void{ var _local4:Array; var _local5:Number; _local4 = _arg2.split("."); _local5 = 0; while (_local5 < (_local4.length - 1)) { if ((((_arg1[_local4[_local5]] == undefined)) || ((_arg1[_local4[_local5]] == null)))){ return; }; _arg1 = _arg1[_local4[_local5]]; _local5++; }; _arg1[_local4[_local5]] = _arg3; } public static function showPreGameAd(_arg1:Object):void{ var DEFAULTS:Object; var clip:Object; var ad_msec:Number; var ad_timeout:Number; var fadeout_time:Number; var mc:MovieClip; var wh:Array; var w:Number; var h:Number; var chk:MovieClip; var bar:MovieClip; var bar_color:Number; var bar_background:Number; var bar_outline:Number; var backing_mc:MovieClip; var backing:Object; var inside_mc:MovieClip; var inside:Object; var outline_mc:MovieClip; var outline:Object; var complete:Boolean; var unloaded:Boolean; var f:Function; var sendHostProgress:Boolean; var fn:Function; var r:MovieClip; var options = _arg1; DEFAULTS = {ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:0xFF8A00, background:16777161, outline:13994812, no_progress_bar:false, ad_started:function ():void{ if ((this.clip is MovieClip)){ this.clip.stop(); } else { throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_finished:function ():void{ if ((this.clip is MovieClip)){ this.clip.play(); } else { throw (new Error("MochiAd.showPreGameAd requires a clip that is a MovieClip or is an instance of a class that extends MovieClip. If your clip is a Sprite, then you must provide custom ad_started and ad_finished handlers.")); }; }, ad_loaded:function (_arg1:Number, _arg2:Number):void{ }, ad_failed:function ():void{ }, ad_skipped:function ():void{ }, ad_progress:function (_arg1:Number):void{ }}; options = MochiAd._parseOptions(options, DEFAULTS); if ("c862232051e0a94e1c3609b3916ddb17".substr(0) == "dfeada81ac97cde83665f81c12da7def"){ options.ad_started(); fn = function ():void{ options.ad_finished(); }; setTimeout(fn, 100); return; }; clip = options.clip; ad_msec = 11000; ad_timeout = options.ad_timeout; delete options.ad_timeout; fadeout_time = options.fadeout_time; delete options.fadeout_time; if (!MochiAd.load(options)){ options.ad_failed(); options.ad_finished(); return; }; options.ad_started(); mc = clip._mochiad; mc["onUnload"] = function ():void{ var fn:Function; MochiAd._cleanup(mc); fn = function ():void{ options.ad_finished(); }; setTimeout(fn, 100); }; wh = MochiAd._getRes(options, clip); w = wh[0]; h = wh[1]; mc.x = (w * 0.5); mc.y = (h * 0.5); chk = createEmptyMovieClip(mc, "_mochiad_wait", 3); chk.x = (w * -0.5); chk.y = (h * -0.5); bar = createEmptyMovieClip(chk, "_mochiad_bar", 4); if (options.no_progress_bar){ bar.visible = false; delete options.no_progress_bar; } else { bar.x = 10; bar.y = (h - 20); }; bar_color = options.color; delete options.color; bar_background = options.background; delete options.background; bar_outline = options.outline; delete options.outline; backing_mc = createEmptyMovieClip(bar, "_outline", 1); backing = backing_mc.graphics; backing.beginFill(bar_background); backing.moveTo(0, 0); backing.lineTo((w - 20), 0); backing.lineTo((w - 20), 10); backing.lineTo(0, 10); backing.lineTo(0, 0); backing.endFill(); inside_mc = createEmptyMovieClip(bar, "_inside", 2); inside = inside_mc.graphics; inside.beginFill(bar_color); inside.moveTo(0, 0); inside.lineTo((w - 20), 0); inside.lineTo((w - 20), 10); inside.lineTo(0, 10); inside.lineTo(0, 0); inside.endFill(); inside_mc.scaleX = 0; outline_mc = createEmptyMovieClip(bar, "_outline", 3); outline = outline_mc.graphics; outline.lineStyle(0, bar_outline, 100); outline.moveTo(0, 0); outline.lineTo((w - 20), 0); outline.lineTo((w - 20), 10); outline.lineTo(0, 10); outline.lineTo(0, 0); chk.ad_msec = ad_msec; chk.ad_timeout = ad_timeout; chk.started = getTimer(); chk.showing = false; chk.last_pcnt = 0; chk.fadeout_time = fadeout_time; chk.fadeFunction = function ():void{ var _local1:Number; _local1 = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time))); if (_local1 > 0){ this.parent.alpha = (_local1 * 0.01); } else { MochiAd.unload(clip); delete this["onEnterFrame"]; }; }; complete = false; unloaded = false; f = function (_arg1:Event):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); complete = true; if (unloaded){ MochiAd.unload(clip); }; }; clip.loaderInfo.addEventListener(Event.COMPLETE, f); if ((clip.root is MovieClip)){ r = (clip.root as MovieClip); if (r.framesLoaded >= r.totalFrames){ complete = true; }; }; mc.unloadAd = function ():void{ unloaded = true; if (complete){ MochiAd.unload(clip); }; }; mc.adLoaded = options.ad_loaded; mc.adSkipped = options.ad_skipped; mc.adjustProgress = function (_arg1:Number):void{ var _local2:Object; _local2 = mc._mochiad_wait; _local2.server_control = true; _local2.showing = true; _local2.started = getTimer(); _local2.ad_msec = _arg1; }; mc.rpc = function (_arg1:Number, _arg2:Object):void{ MochiAd.rpc(clip, _arg1, _arg2); }; mc.rpcTestFn = function (_arg1:String):Object{ return (_arg1); }; mc.regContLC = function (_arg1:String):void{ mc._containerLCName = _arg1; }; sendHostProgress = false; mc.sendHostLoadProgress = function (_arg1:String):void{ sendHostProgress = true; }; chk["onEnterFrame"] = function ():void{ var _local1:Object; var _local2:Object; var _local3:Number; var _local4:Boolean; var _local5:Number; var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Object; var _local10:Number; var _local11:Number; if (((!(this.parent)) || (!(this.parent.parent)))){ delete this["onEnterFrame"]; return; }; _local1 = this.parent.parent.root; _local2 = this.parent._mochiad_ctr; _local3 = (getTimer() - this.started); _local4 = false; _local5 = _local1.loaderInfo.bytesTotal; _local6 = _local1.loaderInfo.bytesLoaded; if (complete){ _local6 = Math.max(1, _local6); _local5 = _local6; }; _local7 = ((100 * _local6) / _local5); _local8 = ((100 * _local3) / chk.ad_msec); _local9 = this._mochiad_bar._inside; _local10 = Math.min(100, Math.min(((_local7) || (0)), _local8)); _local10 = Math.max(this.last_pcnt, _local10); this.last_pcnt = _local10; _local9.scaleX = (_local10 * 0.01); options.ad_progress(_local10); if (sendHostProgress){ clip._mochiad.lc.send(clip._mochiad._containerLCName, "notify", {id:"hostLoadPcnt", pcnt:_local7}); if (_local7 == 100){ sendHostProgress = false; }; }; if (!chk.showing){ _local11 = this.parent._mochiad_ctr.contentLoaderInfo.bytesTotal; if (_local11 > 0){ chk.showing = true; chk.started = getTimer(); MochiAd.adShowing(clip); } else { if ((((_local3 > chk.ad_timeout)) && ((_local7 == 100)))){ options.ad_failed(); _local4 = true; }; }; }; if (_local3 > chk.ad_msec){ _local4 = true; }; if (((complete) && (_local4))){ if (this.server_control){ delete this.onEnterFrame; } else { this.fadeout_start = getTimer(); this.onEnterFrame = chk.fadeFunction; }; }; }; doOnEnterFrame(chk); } public static function showPreloaderAd(_arg1:Object):void{ MochiAd.showPreGameAd(_arg1); } public static function showTimedAd(_arg1:Object):void{ MochiAd.showInterLevelAd(_arg1); } public static function doOnEnterFrame(_arg1:MovieClip):void{ var f:Function; var mc = _arg1; f = function (_arg1:Object):void{ if (((("onEnterFrame" in mc)) && (mc.onEnterFrame))){ mc.onEnterFrame(); } else { _arg1.target.removeEventListener(_arg1.type, arguments.callee); }; }; mc.addEventListener(Event.ENTER_FRAME, f); } } }//package mochi.as3
Section 142
//MochiDigits (mochi.as3.MochiDigits) package mochi.as3 { public final class MochiDigits { private var Sibling:MochiDigits; private var Fragment:Number; private var Encoder:Number; public function MochiDigits(_arg1:Number=0, _arg2:uint=0):void{ Encoder = 0; setValue(_arg1, _arg2); } public function set value(_arg1:Number):void{ setValue(_arg1); } public function reencode():void{ var _local1:uint; _local1 = int((2147483647 * Math.random())); Fragment = (Fragment ^ (_local1 ^ Encoder)); Encoder = _local1; } public function toString():String{ var _local1:String; _local1 = String.fromCharCode((Fragment ^ Encoder)); if (Sibling != null){ _local1 = (_local1 + Sibling.toString()); }; return (_local1); } public function get value():Number{ return (Number(this.toString())); } public function setValue(_arg1:Number=0, _arg2:uint=0):void{ var _local3:String; _local3 = _arg1.toString(); var _temp1 = _arg2; _arg2 = (_arg2 + 1); Fragment = (_local3.charCodeAt(_temp1) ^ Encoder); if (_arg2 < _local3.length){ Sibling = new MochiDigits(_arg1, _arg2); } else { Sibling = null; }; reencode(); } public function addValue(_arg1:Number):void{ value = (value + _arg1); } } }//package mochi.as3
Section 143
//MochiScores (mochi.as3.MochiScores) package mochi.as3 { import flash.display.*; import flash.text.*; public class MochiScores { private static var boardID:String; public static var onErrorHandler:Object; public static var onCloseHandler:Object; public static function showLeaderboard(_arg1:Object=null):void{ var n:Number; var options = _arg1; if (options != null){ if (options.clip != null){ if ((options.clip is Sprite)){ MochiServices.setContainer(options.clip); }; delete options.clip; } else { MochiServices.setContainer(); }; MochiServices.stayOnTop(); if (options.name != null){ if ((options.name is TextField)){ if (options.name.text.length > 0){ options.name = options.name.text; }; }; }; if (options.score != null){ if ((options.score is TextField)){ if (options.score.text.length > 0){ options.score = options.score.text; }; } else { if ((options.score is MochiDigits)){ options.score = options.score.value; }; }; n = Number(options.score); if (isNaN(n)){ } else { if ((((n == Number.NEGATIVE_INFINITY)) || ((n == Number.POSITIVE_INFINITY)))){ } else { if (Math.floor(n) != n){ }; options.score = n; }; }; }; if (options.onDisplay != null){ options.onDisplay(); } else { if (MochiServices.clip != null){ if ((MochiServices.clip is MovieClip)){ MochiServices.clip.stop(); //unresolved jump }; }; }; } else { options = {}; if ((MochiServices.clip is MovieClip)){ MochiServices.clip.stop(); //unresolved jump }; }; if (options.onClose != null){ onCloseHandler = options.onClose; } else { onCloseHandler = function ():void{ if ((MochiServices.clip is MovieClip)){ MochiServices.clip.play(); //unresolved jump }; }; }; if (options.onError != null){ onErrorHandler = options.onError; } else { onErrorHandler = null; }; if (options.boardID == null){ if (MochiScores.boardID != null){ options.boardID = MochiScores.boardID; }; }; MochiServices.send("scores_showLeaderboard", {options:options}, null, onClose); } public static function closeLeaderboard():void{ MochiServices.send("scores_closeLeaderboard"); } public static function getPlayerInfo(_arg1:Object, _arg2:Object=null):void{ MochiServices.send("scores_getPlayerInfo", null, _arg1, _arg2); } public static function requestList(_arg1:Object, _arg2:Object=null):void{ MochiServices.send("scores_requestList", null, _arg1, _arg2); } public static function scoresArrayToObjects(_arg1:Object):Object{ var _local2:Object; var _local3:Number; var _local4:Number; var _local5:Object; var _local6:Object; var _local7:String; var _local8:String; _local2 = {}; for (_local7 in _arg1) { if (typeof(_arg1[_local7]) == "object"){ if (((!((_arg1[_local7].cols == null))) && (!((_arg1[_local7].rows == null))))){ _local2[_local7] = []; _local5 = _arg1[_local7]; _local4 = 0; while (_local4 < _local5.rows.length) { _local6 = {}; _local3 = 0; while (_local3 < _local5.cols.length) { _local6[_local5.cols[_local3]] = _local5.rows[_local4][_local3]; _local3++; }; _local2[_local7].push(_local6); _local4++; }; } else { _local2[_local7] = {}; for (_local8 in _arg1[_local7]) { _local2[_local7][_local8] = _arg1[_local7][_local8]; }; }; } else { _local2[_local7] = _arg1[_local7]; }; }; return (_local2); } public static function submit(_arg1:Number, _arg2:String, _arg3:Object=null, _arg4:Object=null):void{ _arg1 = Number(_arg1); if (isNaN(_arg1)){ } else { if ((((_arg1 == Number.NEGATIVE_INFINITY)) || ((_arg1 == Number.POSITIVE_INFINITY)))){ } else { if (Math.floor(_arg1) != _arg1){ }; _arg1 = Number(_arg1); }; }; MochiServices.send("scores_submit", {score:_arg1, name:_arg2}, _arg3, _arg4); } public static function onClose(_arg1:Object=null):void{ if (_arg1 != null){ if (_arg1.error != null){ if (_arg1.error == true){ if (onErrorHandler != null){ if (_arg1.errorCode == null){ _arg1.errorCode = "IOError"; }; onErrorHandler(_arg1.errorCode); MochiServices.doClose(); return; }; }; }; }; onCloseHandler(); MochiServices.doClose(); } public static function setBoardID(_arg1:String):void{ MochiScores.boardID = _arg1; MochiServices.send("scores_setBoardID", {boardID:_arg1}); } } }//package mochi.as3
Section 144
//MochiServices (mochi.as3.MochiServices) package mochi.as3 { import flash.display.*; import flash.events.*; import flash.net.*; import flash.utils.*; import flash.system.*; import flash.geom.*; public class MochiServices { private static var _container:Object; private static var _connected:Boolean = false; private static var _swfVersion:String; public static var netupAttempted:Boolean = false; private static var _sendChannel:LocalConnection; private static var _clip:MovieClip; private static var _loader:Loader; private static var _id:String; private static var _listenChannel:LocalConnection; public static var widget:Boolean = false; private static var _timer:Timer; private static var _sendChannelName:String; private static var _connecting:Boolean = false; public static var onError:Object; private static var _listenChannelName:String = "__ms_"; private static var _servicesURL:String = "http://www.mochiads.com/static/lib/services/services.swf"; public static var netup:Boolean = true; public static function isNetworkAvailable():Boolean{ return (!((Security.sandboxType == "localWithFile"))); } public static function get connected():Boolean{ return (_connected); } private static function flush(_arg1:Boolean):void{ var _local2:Object; var _local3:Object; if (_clip != null){ if (_clip._queue != null){ while (_clip._queue.length > 0) { _local2 = _clip._queue.shift(); _local3 = null; if (_local2 != null){ if (_local2.callbackID != null){ _local3 = _clip._callbacks[_local2.callbackID]; }; delete _clip._callbacks[_local2.callbackID]; if (((_arg1) && (!((_local3 == null))))){ handleError(_local2.args, _local3.callbackObject, _local3.callbackMethod); }; }; }; }; }; } public static function send(_arg1:String, _arg2:Object=null, _arg3:Object=null, _arg4:Object=null):void{ if (_connected){ _sendChannel.send(_sendChannelName, "onReceive", {methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID}); } else { if ((((_clip == null)) || (!(_connecting)))){ onError("NotConnected"); handleError(_arg2, _arg3, _arg4); flush(true); return; }; _clip._queue.push({methodName:_arg1, args:_arg2, callbackID:_clip._nextcallbackID}); }; if (_clip != null){ if (((!((_clip._callbacks == null))) && (!((_clip._nextcallbackID == null))))){ _clip._callbacks[_clip._nextcallbackID] = {callbackObject:_arg3, callbackMethod:_arg4}; _clip._nextcallbackID++; }; }; } private static function init(_arg1:String, _arg2:Object):void{ _id = _arg1; if (_arg2 != null){ _container = _arg2; loadCommunicator(_arg1, _container); }; } public static function get childClip():Object{ return (_clip); } private static function clickMovie(_arg1:String, _arg2:Function):MovieClip{ var _local3:Array; var _local4:int; var _local5:Array; var _local6:Array; var _local7:MovieClip; var _local8:LocalConnection; var _local9:String; var _local10:ByteArray; var _local11:ByteArray; var _local12:uint; var _local13:uint; var _local14:Loader; _local3 = [150, 21, 0, 7, 1, 0, 0, 0, 0, 98, 116, 110, 0, 7, 2, 0, 0, 0, 0, 116, 104, 105, 115, 0, 28, 150, 22, 0, 0, 99, 114, 101, 97, 116, 101, 69, 109, 112, 116, 121, 77, 111, 118, 105, 101, 67, 108, 105, 112, 0, 82, 135, 1, 0, 0, 23, 150, 13, 0, 4, 0, 0, 111, 110, 82, 101, 108, 101, 97, 115, 101, 0, 142, 8, 0, 0, 0, 0, 2, 42, 0, 114, 0, 150, 17, 0, 0, 32, 0, 7, 1, 0, 0, 0, 8, 0, 0, 115, 112, 108, 105, 116, 0, 82, 135, 1, 0, 1, 23, 150, 7, 0, 4, 1, 7, 0, 0, 0, 0, 78, 150, 8, 0, 0, 95, 98, 108, 97, 110, 107, 0, 154, 1, 0, 0, 150, 7, 0, 0, 99, 108, 105, 99, 107, 0, 150, 7, 0, 4, 1, 7, 1, 0, 0, 0, 78, 150, 27, 0, 7, 2, 0, 0, 0, 7, 0, 0, 0, 0, 0, 76, 111, 99, 97, 108, 67, 111, 110, 110, 101, 99, 116, 105, 111, 110, 0, 64, 150, 6, 0, 0, 115, 101, 110, 100, 0, 82, 79, 150, 15, 0, 4, 0, 0, 95, 97, 108, 112, 104, 97, 0, 7, 0, 0, 0, 0, 79, 150, 23, 0, 7, 0xFF, 0, 0xFF, 0, 7, 1, 0, 0, 0, 4, 0, 0, 98, 101, 103, 105, 110, 70, 105, 108, 108, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 109, 111, 118, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 100, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 100, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 25, 0, 7, 0, 0, 0, 0, 7, 0, 0, 0, 0, 7, 2, 0, 0, 0, 4, 0, 0, 108, 105, 110, 101, 84, 111, 0, 82, 23, 150, 16, 0, 7, 0, 0, 0, 0, 4, 0, 0, 101, 110, 100, 70, 105, 108, 108, 0, 82, 23]; _local5 = [104, 0, 31, 64, 0, 7, 208, 0, 0, 12, 1, 0, 67, 2, 0xFF, 0xFF, 0xFF, 63, 3]; _local6 = [0, 64, 0, 0, 0]; _local7 = new MovieClip(); _local8 = new LocalConnection(); _local9 = ((("_click_" + Math.floor((Math.random() * 999999))) + "_") + Math.floor(new Date().getTime())); _local8 = new LocalConnection(); _local7.lc = _local8; _local7.click = _arg2; _local8.client = _local7; _local8.connect(_local9); _local10 = new ByteArray(); _local11 = new ByteArray(); _local11.endian = Endian.LITTLE_ENDIAN; _local11.writeShort(1); _local11.writeUTFBytes(((_arg1 + " ") + _local9)); _local11.writeByte(0); _local12 = ((_local3.length + _local11.length) + 4); _local13 = (_local12 + 35); _local10.endian = Endian.LITTLE_ENDIAN; _local10.writeUTFBytes("FWS"); _local10.writeByte(8); _local10.writeUnsignedInt(_local13); for each (_local4 in _local5) { _local10.writeByte(_local4); }; _local10.writeUnsignedInt(_local12); _local10.writeByte(136); _local10.writeShort(_local11.length); _local10.writeBytes(_local11); for each (_local4 in _local3) { _local10.writeByte(_local4); }; for each (_local4 in _local6) { _local10.writeByte(_local4); }; _local14 = new Loader(); _local14.loadBytes(_local10); _local7.addChild(_local14); return (_local7); } public static function stayOnTop():void{ _container.addEventListener(Event.ENTER_FRAME, MochiServices.bringToTop, false, 0, true); if (_clip != null){ _clip.visible = true; }; } public static function addLinkEvent(_arg1:String, _arg2:String, _arg3:DisplayObjectContainer, _arg4:Function=null):void{ var vars:Object; var avm1Click:DisplayObject; var s:String; var i:Number; var x:String; var req:URLRequest; var loader:Loader; var setURL:Function; var err:Function; var complete:Function; var url = _arg1; var burl = _arg2; var btn = _arg3; var onClick = _arg4; vars = new Object(); vars["mav"] = getVersion(); vars["swfv"] = "9"; vars["swfurl"] = btn.loaderInfo.loaderURL; vars["fv"] = Capabilities.version; vars["os"] = Capabilities.os; vars["lang"] = Capabilities.language; vars["scres"] = ((Capabilities.screenResolutionX + "x") + Capabilities.screenResolutionY); s = "?"; i = 0; for (x in vars) { if (i != 0){ s = (s + "&"); }; i = (i + 1); s = (((s + x) + "=") + escape(vars[x])); }; req = new URLRequest("http://x.mochiads.com/linkping.swf"); loader = new Loader(); setURL = function (_arg1:String):void{ var _local2:Rectangle; if (avm1Click){ btn.removeChild(avm1Click); }; avm1Click = clickMovie(_arg1, onClick); _local2 = btn.getBounds(btn); btn.addChild(avm1Click); avm1Click.x = _local2.x; avm1Click.y = _local2.y; avm1Click.scaleX = (0.01 * _local2.width); avm1Click.scaleY = (0.01 * _local2.height); }; err = function (_arg1:Object):void{ netup = false; _arg1.target.removeEventListener(_arg1.type, arguments.callee); setURL(burl); }; complete = function (_arg1:Object):void{ _arg1.target.removeEventListener(_arg1.type, arguments.callee); }; if (netup){ setURL((url + s)); } else { setURL(burl); }; if (!((netupAttempted) || (_connected))){ netupAttempted = true; loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, err); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, complete); loader.load(req); }; } public static function disconnect():void{ if (((_connected) || (_connecting))){ if (_clip != null){ if (_clip.parent != null){ if ((_clip.parent is Sprite)){ Sprite(_clip.parent).removeChild(_clip); _clip = null; }; }; }; _connecting = (_connected = false); flush(true); try { _listenChannel.close(); } catch(error:Error) { }; }; if (_timer != null){ try { _timer.stop(); } catch(error:Error) { }; }; } public static function allowDomains(_arg1:String):String{ var _local2:String; if (Security.sandboxType != "application"){ Security.allowDomain("*"); Security.allowInsecureDomain("*"); }; if (_arg1.indexOf("http://") != -1){ _local2 = _arg1.split("/")[2].split(":")[0]; if (Security.sandboxType != "application"){ Security.allowDomain(_local2); Security.allowInsecureDomain(_local2); }; }; return (_local2); } public static function getVersion():String{ return ("3.0"); } public static function doClose():void{ _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); if (_clip.parent != null){ Sprite(_clip.parent).removeChild(_clip); }; } private static function onStatus(_arg1:StatusEvent):void{ switch (_arg1.level){ case "error": _connected = false; _listenChannel.connect(_listenChannelName); break; }; } public static function get id():String{ return (_id); } private static function urlOptions(_arg1:Object):Object{ var _local2:Object; var _local3:String; var _local4:Array; var _local5:Number; var _local6:Array; _local2 = {}; _local3 = _arg1.loaderInfo.parameters.mochiad_options; if (_local3){ _local4 = _local3.split("&"); _local5 = 0; while (_local5 < _local4.length) { _local6 = _local4[_local5].split("="); _local2[unescape(_local6[0])] = unescape(_local6[1]); _local5++; }; }; return (_local2); } public static function setContainer(_arg1:Object=null, _arg2:Boolean=true):void{ if (_arg1 != null){ if ((_arg1 is Sprite)){ _container = _arg1; }; }; if (_arg2){ if ((_container is Sprite)){ Sprite(_container).addChild(_clip); }; }; } private static function handleError(_arg1:Object, _arg2:Object, _arg3:Object):void{ var args = _arg1; var callbackObject = _arg2; var callbackMethod = _arg3; if (args != null){ if (args.onError != null){ args.onError.apply(null, ["NotConnected"]); }; if (((!((args.options == null))) && (!((args.options.onError == null))))){ args.options.onError.apply(null, ["NotConnected"]); }; }; if (callbackMethod != null){ args = {}; args.error = true; args.errorCode = "NotConnected"; if (((!((callbackObject == null))) && ((callbackMethod is String)))){ try { var _local5 = callbackObject; _local5[callbackMethod](args); } catch(error:Error) { }; } else { if (callbackMethod != null){ try { callbackMethod.apply(args); } catch(error:Error) { }; }; }; }; } private static function initComChannels():void{ if (!_connected){ _sendChannel.addEventListener(StatusEvent.STATUS, MochiServices.onStatus); _sendChannel.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"}); _sendChannel.send(_sendChannelName, "onReceive", {methodName:"registerGame", id:_id, clip:_container, version:getVersion(), parentURL:_container.loaderInfo.loaderURL}); _listenChannel.addEventListener(StatusEvent.STATUS, MochiServices.onStatus); _clip.onReceive = function (_arg1:Object):void{ var cb:String; var cblst:Object; var method:*; var methodName:String; var obj:Object; var pkg = _arg1; cb = pkg.callbackID; cblst = this.client._callbacks[cb]; if (!cblst){ return; }; method = cblst.callbackMethod; methodName = ""; obj = cblst.callbackObject; if (((obj) && ((typeof(method) == "string")))){ methodName = method; if (obj[method] != null){ method = obj[method]; //unresolved jump }; }; if (method != undefined){ try { method.apply(obj, pkg.args); } catch(error:Error) { }; } else { if (obj != null){ try { obj(pkg.args); } catch(error:Error) { }; }; }; delete this.client._callbacks[cb]; }; _clip.onError = function ():void{ MochiServices.onError("IOError"); }; _connecting = false; _connected = true; while (_clip._queue.length > 0) { _sendChannel.send(_sendChannelName, "onReceive", _clip._queue.shift()); }; }; } private static function listen():void{ _listenChannel = new LocalConnection(); _listenChannel.client = _clip; _clip.handshake = function (_arg1:Object):void{ MochiServices.comChannelName = _arg1.newChannel; }; _listenChannel.allowDomain("*", "localhost"); _listenChannel.allowInsecureDomain("*", "localhost"); _listenChannel.connect(_listenChannelName); } public static function set comChannelName(_arg1:String):void{ if (_arg1 != null){ if (_arg1.length > 3){ _sendChannelName = (_arg1 + "_fromgame"); initComChannels(); }; }; } private static function loadCommunicator(_arg1:String, _arg2:Object):MovieClip{ var clipname:String; var f:Function; var req:URLRequest; var vars:URLVariables; var id = _arg1; var clip = _arg2; clipname = ("_mochiservices_com_" + id); if (_clip != null){ return (_clip); }; if (!MochiServices.isNetworkAvailable()){ return (null); }; if (urlOptions(clip).servicesURL != undefined){ _servicesURL = urlOptions(clip).servicesURL; }; MochiServices.allowDomains(_servicesURL); _clip = createEmptyMovieClip(clip, clipname, 10336, false); _loader = new Loader(); f = function (_arg1:Object):void{ _clip._mochiad_ctr_failed = true; MochiServices.disconnect(); MochiServices.onError("IOError"); }; _listenChannelName = (_listenChannelName + ((Math.floor(new Date().getTime()) + "_") + Math.floor((Math.random() * 99999)))); _loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, f); req = new URLRequest(_servicesURL); vars = new URLVariables(); vars.listenLC = _listenChannelName; vars.mochiad_options = clip.loaderInfo.parameters.mochiad_options; if (widget){ vars.widget = true; }; req.data = vars; listen(); _loader.load(req); _clip.addChild(_loader); _clip._mochiservices_com = _loader; _sendChannel = new LocalConnection(); _clip._queue = []; _clip._nextcallbackID = 0; _clip._callbacks = {}; _timer = new Timer(10000, 1); _timer.addEventListener(TimerEvent.TIMER, connectWait); _timer.start(); return (_clip); } public static function get clip():Object{ return (_container); } public static function bringToTop(_arg1:Event):void{ var e = _arg1; if (MochiServices.clip != null){ if (MochiServices.childClip != null){ try { if (MochiServices.clip.numChildren > 1){ MochiServices.clip.setChildIndex(MochiServices.childClip, (MochiServices.clip.numChildren - 1)); }; } catch(errorObject:Error) { _container.removeEventListener(Event.ENTER_FRAME, MochiServices.bringToTop); }; }; }; } public static function connect(_arg1:String, _arg2:Object, _arg3:Object=null):void{ var id = _arg1; var clip = _arg2; var onError = _arg3; if ((clip is DisplayObject)){ if (((!(_connected)) && ((_clip == null)))){ _connecting = true; init(id, clip); }; //unresolved jump }; if (onError != null){ MochiServices.onError = onError; } else { if (MochiServices.onError == null){ MochiServices.onError = function (_arg1:String):void{ }; }; }; } public static function createEmptyMovieClip(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Boolean=true):MovieClip{ var mc:MovieClip; var parent = _arg1; var name = _arg2; var depth = _arg3; var doAdd = _arg4; mc = new MovieClip(); if (doAdd){ if (((false) && (depth))){ parent.addChildAt(mc, depth); } else { parent.addChild(mc); }; }; try { parent[name] = mc; } catch(e:Error) { throw (new Error("MochiServices requires a clip that is an instance of a dynamic class. If your class extends Sprite or MovieClip, you must make it dynamic.")); }; mc["_name"] = name; return (mc); } public static function connectWait(_arg1:TimerEvent):void{ if (!_connected){ _clip._mochiad_ctr_failed = true; MochiServices.disconnect(); MochiServices.onError("IOError"); }; } } }//package mochi.as3
Section 145
//Gameover (state.Gameover) package state { import flash.events.*; import elm.core.*; import flash.media.*; import flash.display.*; import elm.state.*; import elm.gfx.*; public class Gameover extends State { private var GUI:Layer; private var gui:MovieClip; private var angle:Number;// = 0 public function Gameover(){ angle = 0; super(); } override public function init(_arg1=null):Boolean{ var attr = _arg1; GUI = Gfx.createLayer(null, "gui", 100, true); gui = (Gfx.createMovie(GUI, "gui.Gameover", "gui") as MovieClip); gui["btn_replay"].addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent){ Game.loadVars("autosave"); Gameplay.play(("map" + int(Game.getVar("map")))); }); gui["btn_mainmenu"].addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent){ Fader.start("mainmenu", 0); }); return (true); } override public function free():void{ gui = null; } } }//package state
Section 146
//Gameplay (state.Gameplay) package state { import flash.events.*; import elm.core.*; import flash.display.*; import alternativa.types.*; import flash.geom.*; import alternativa.engine3d.core.*; import alternativa.engine3d.display.*; import alternativa.particle3d.*; import alternativa.engine3d.materials.*; import game.*; import elm.types.*; import elm.game.*; import hints.*; import alternativa.engine3d.controllers.*; import elm.utils.*; import alternativa.utils.*; import game.entities.*; import game.actors.*; import alternativa.engine3d.primitives.*; import game.actors.player.*; import elm.state.*; import flash.ui.*; import elm.input.*; import elm.physic.*; public class Gameplay extends State { public var is_victory:Boolean; public var title:MovieClip;// = null public var stat:Object; public var select_platform:Selectable;// = null public var is_inited:Boolean; public var control_rotate:int; public var hint:HintManager; private var scene:Scene3D; private var cameraController:CameraController; private var view:View; public var is_pause:Boolean; public var room:Room; public var player:Player; public var BACK:Layer; public var is_exit_opened:Boolean;// = false public var GUI:Layer; private var camera:Camera3D; public var is_key_up:Boolean; private var camera_preset:int; public var is_gameover:Boolean; public var loading:MovieClip;// = null public var gui:MovieClip; public var is_key_left:Boolean; public var is_key_right:Boolean; private var camera_vel:Point3D; private var camera_pos_d:Point3D; public var is_player_down:Boolean;// = false public var control_vel:Vec2; private var guiCooldown:CooldownTimer; public var is_player_resurrection:Boolean;// = false public var GAME:Layer; public var select_x:int;// = -1 public var select_y:int;// = -1 public var select_z:int;// = -1 public var attr:Object; public var is_key_down:Boolean; public static const CAMERA_SPEED:Number = 150; public static const CAMERA_DISTANCE:Number = 500; public function Gameplay(){ select_platform = null; select_x = -1; select_y = -1; select_z = -1; is_player_down = false; is_player_resurrection = false; is_exit_opened = false; loading = null; title = null; super(); } public function setCamera(_arg1:int):void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:Number; _local2 = 1000; _local3 = 400; _local4 = 1600; _local5 = 200; switch (_arg1){ case 0: camera.x = (1600 + 0); camera.y = (1600 + _local2); camera.z = _local4; cameraController.lookAt(new Point3D((1600 + 0), (1600 + _local3), _local5)); break; case 1: camera.x = (1600 + _local2); camera.y = (1600 + 0); camera.z = _local4; cameraController.lookAt(new Point3D((1600 + _local3), (1600 + 0), _local5)); break; case 2: camera.x = (1600 + 0); camera.y = (1600 - _local2); camera.z = _local4; cameraController.lookAt(new Point3D((1600 + 0), (1600 - _local3), _local5)); break; case 3: camera.x = (1600 - _local2); camera.y = (1600 + 0); camera.z = _local4; cameraController.lookAt(new Point3D((1600 - _local3), (1600 + 0), _local5)); break; case 4: camera.x = 1700; camera.y = 1600; camera.z = 3500; cameraController.lookAt(new Point3D(1700, 1600, 0)); camera.rotationZ = (-(Math.PI) / 2); break; }; } public function setGameover():void{ if (((is_victory) || (!(is_inited)))){ return; }; is_gameover = true; Fader.start("gameover", 0, 0); } override public function free():void{ is_inited = false; room.removeAll(); room = null; player = null; ViewUtils.free(); GAME.removeChild(view); view = null; cameraController = null; scene.root.removeChild(camera); camera = null; scene.root = null; scene = null; } public function openAllExits():void{ var _local1:int; var _local2:int; var _local3:int; is_exit_opened = true; Sfx.Sound_Play("exit_open"); _local1 = 0; while (_local1 < Room.CELLS_X_MAX) { _local2 = 0; while (_local2 < Room.CELLS_Y_MAX) { _local3 = 0; while (_local3 < Room.CELLS_Z_MAX) { if (((room.cells[_local1][_local2][_local3]) && ((room.cells[_local1][_local2][_local3].o is Exit)))){ (room.cells[_local1][_local2][_local3].o as Exit).open(true); }; _local3++; }; _local2++; }; _local1++; }; } public function rotateCamera(_arg1:int):void{ switch (_arg1){ case 0: control_vel.Set(1, 0); break; case 1: control_vel.Set(0, 1); break; case 2: control_vel.Set(-1, 0); break; case 3: control_vel.Set(0, -1); break; }; } public function addScore(_arg1:int):void{ stat.score = (stat.score + (_arg1 * 10)); gui["score"]["t_score"].text = stat.score; } public function onEntityAdd(_arg1:EntityEvent):void{ var _local2:Object3D; if ((_arg1.entity is Player)){ player = (_arg1.entity as Player); is_player_down = false; is_key_up = false; is_key_down = false; is_key_left = false; is_key_right = false; }; if ((_arg1.entity is Exit)){ if (stat.mode == "score"){ (_arg1.entity as Exit).open(true); }; }; if ((_arg1.entity is Money)){ stat.score_max = (stat.score_max + 10); }; if ((_arg1.entity is MoneyBox)){ stat.score_max = (stat.score_max + 100); }; if ((_arg1.entity is HidePlatform)){ stat.hide++; }; _local2 = _arg1.entity.getVisualObject(); if (_local2){ scene.root.addChild(_local2); }; } override public function onKeyUp(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.UP){ is_key_up = false; }; if (_arg1.keyCode == Keyboard.DOWN){ is_key_down = false; }; if (_arg1.keyCode == Keyboard.LEFT){ is_key_left = false; }; if (_arg1.keyCode == Keyboard.RIGHT){ is_key_right = false; }; } override public function onKeyDown(_arg1:KeyboardEvent):void{ if (loading){ return; }; if (_arg1.keyCode == Keyboard.UP){ is_key_up = true; }; if (_arg1.keyCode == Keyboard.DOWN){ is_key_down = true; }; if (_arg1.keyCode == Keyboard.LEFT){ is_key_left = true; }; if (_arg1.keyCode == Keyboard.RIGHT){ is_key_right = true; }; if (_arg1.keyCode == Keyboard.SPACE){ control_rotate++; if (control_rotate > 3){ control_rotate = 0; }; rotateCamera(control_rotate); stat.space++; }; if ((((_arg1.keyCode == Keyboard.ESCAPE)) || ((_arg1.keyCode == 80)))){ setPause(); }; if (hint.isActive()){ hint.onAnyKeyPress(); return; }; } public function setPause():void{ var m:MovieClip; is_pause = !(is_pause); if (is_pause){ m = (Gfx.createMovie(GUI, "gui.Pause", "pause") as MovieClip); m["btn_resume"].addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent){ setPause(); }); m["btn_mainmenu"].addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent){ Fader.start("mainmenu", 0); }); } else { Gfx.removeMovieByName(GUI, "pause"); stage.focus = null; }; } override public function onMouseMove(_arg1:MouseEvent):void{ } override public function init(_arg1=null):Boolean{ attr = _arg1; BACK = Gfx.createLayer(null, "back", 0, true); GAME = Gfx.createLayer(null, "game", 50, true); GUI = Gfx.createLayer(null, "gui", 100, true); scene = new Scene3D(); scene.root = new Object3D(); camera = new Camera3D(); camera.x = 0; camera.y = 0; camera.z = 0; camera.orthographic = false; scene.root.addChild(camera); view = new View(); view.camera = camera; view.width = 640; view.height = 480; GAME.addChild(view); ViewUtils.init(view); cameraController = new CameraController(stage); cameraController.camera = camera; cameraController.setDefaultBindings(); cameraController.checkCollisions = true; cameraController.collisionRadius = 10; cameraController.controlsEnabled = false; camera_vel = new Point3D(); camera_pos_d = new Point3D(); is_victory = false; is_gameover = false; is_pause = false; stat = {}; attr.scene = scene; room = new Room(attr); room.addEventListener(EntityEvent.ADD, onEntityAdd); room.addEventListener(EntityEvent.REMOVE, onEntityRemove); player = null; is_player_down = false; is_player_resurrection = false; gui = (Gfx.createMovie(GUI, "gui.Gameplay", "gui") as MovieClip); is_key_up = false; is_key_down = false; is_key_left = false; is_key_right = false; hint = new HintManager({layer:GUI}); guiCooldown = new CooldownTimer(1); gen(); Game.resetFps(); is_inited = true; return (true); } override public function onMouseClick(_arg1:MouseEvent):void{ } public function updateCamera(_arg1:Number):void{ var _local2:Number; if (player){ _local2 = CAMERA_SPEED; camera_pos_d.x = (player.pos.x - (control_vel.x * CAMERA_DISTANCE)); camera_pos_d.y = (player.pos.y - (control_vel.y * CAMERA_DISTANCE)); camera_pos_d.z = (player.pos.z + CAMERA_DISTANCE); camera_vel.x = (camera.x - camera_pos_d.x); camera_vel.y = (camera.y - camera_pos_d.y); camera_vel.z = (camera.z - camera_pos_d.z); if (camera_vel.x < 0){ camera_vel.x = -(camera_vel.x); }; if (camera_vel.y < 0){ camera_vel.y = -(camera_vel.y); }; if (camera_vel.z < 0){ camera_vel.z = -(camera_vel.z); }; if (camera_vel.x > 100){ _local2 = (_local2 * (camera_vel.x / 100)); }; if (camera_vel.y > 100){ _local2 = (_local2 * (camera_vel.y / 100)); }; camera_vel.normalize(); camera.x = Float.approach(((camera_vel.x * _local2) * _arg1), camera.x, camera_pos_d.x); camera.y = Float.approach(((camera_vel.y * _local2) * _arg1), camera.y, camera_pos_d.y); camera.z = Float.approach(((camera_vel.z * _local2) * _arg1), camera.z, camera_pos_d.z); cameraController.lookAt(player.pos); }; } public function gen(){ var _local1:int; room.build(); loading = (Gfx.createMovie(GUI, "gui.Loading", "loading") as MovieClip); title = (Gfx.createMovie(GUI, "gui.MapTitle", "title", {scaleX:4, scaleY:4}) as MovieClip); title["t_title"].text = room.title; stat.mode = String(Game.getVar("mode")); stat.score = int(Game.getVar("score")); stat.score_max = 0; stat.map = int(Game.getVar("map")); stat.time_best = Number(Game.getConfig((("map" + stat.map) + "time_best"), ((30 * 60) + 30))); stat.time = Number(0); stat.life = 1; stat.hide = int(0); stat.space = int(0); addScore(0); if (stat.mode == "time"){ _local1 = int((stat.time_best / 60)); gui["stat"]["t_best"].text = ((Main.formatTime(_local1) + ":") + Main.formatTime(int((stat.time_best - (_local1 * 60))))); gui["life"].alpha = 0; is_exit_opened = false; } else { if (stat.mode == "score"){ stat.life = 3; gui["stat"].alpha = 0; is_exit_opened = true; }; }; control_vel = new Vec2(); control_rotate = 0; rotateCamera(control_rotate); guiCooldown.start(); } public function setVictory():void{ if (((is_gameover) || (!(is_inited)))){ return; }; is_victory = true; Sfx.Sfx_Play("fanfare"); if (stat.space < 10){ stat.score = (stat.score + ((10 - stat.space) * 50)); }; stat.score = (stat.score + (stat.hide * 5)); stat.score = (stat.score + (stat.life * 100)); Game.setVar("map", (stat.map + 1)); Game.setVar("score", stat.score); Game.setVar("time", stat.time); Game.setVar("life", stat.life); Game.setVar("space", stat.space); Game.setVar("hide", stat.hide); Game.saveVars("autosave"); Fader.start("victory", 0, 0); } override public function frame():void{ var _local1:Number; var _local2:int; var _local3:int; var _local4:int; var _local5:int; var _local6:Boolean; var _local7:int; var _local8:Number; if (!is_inited){ return; }; if (is_victory){ return; }; if (is_gameover){ return; }; if (is_pause){ return; }; _local1 = Game.delta; if (loading){ loading["bar"].rotation = (loading["bar"].rotation + (120 * _local1)); if (room.isBuild()){ room.buildStep(); updateCamera((_local1 * 0.3)); scene.calculate(); return; }; loading.alpha = (loading.alpha - (_local1 * 3)); if (loading.alpha <= 0){ Gfx.removeMovie(GUI, loading); loading = null; if (stat.mode == "score"){ hint.show(stat.map, 0.5); } else { if (stat.mode == "time"){ if (Boolean(Game.getConfig("timemodehint", true)) == true){ hint.show(999, 0.5); Game.setConfig("timemodehint", false); }; }; }; }; } else { if (hint.isActive()){ hint.update(_local1); return; }; }; if (title){ title.alpha = (title.alpha - (_local1 * 0.5)); if (title.alpha <= 0){ Gfx.removeMovie(GUI, title); title = null; }; }; if (stat.mode == "time"){ stat.time = (stat.time + _local1); _local2 = int((stat.time / 60)); gui["stat"]["t_time"].text = ((Main.formatTime(_local2) + ":") + Main.formatTime(int((stat.time - (_local2 * 60))))); }; if (player){ if (is_key_up){ player.pos.x = (player.pos.x + ((control_vel.x * _local1) * Player.SPEED)); player.pos.y = (player.pos.y + ((control_vel.y * _local1) * Player.SPEED)); } else { if (is_key_down){ player.pos.x = (player.pos.x - ((control_vel.x * _local1) * Player.SPEED)); player.pos.y = (player.pos.y - ((control_vel.y * _local1) * Player.SPEED)); }; }; if (is_key_left){ player.pos.x = (player.pos.x - ((control_vel.y * _local1) * Player.SPEED)); player.pos.y = (player.pos.y + ((control_vel.x * _local1) * Player.SPEED)); } else { if (is_key_right){ player.pos.x = (player.pos.x + ((control_vel.y * _local1) * Player.SPEED)); player.pos.y = (player.pos.y - ((control_vel.x * _local1) * Player.SPEED)); }; }; }; room.update(Game.delta); if (player){ _local3 = Math.floor(((player.pos.x + 50) / 100)); _local4 = Math.floor(((player.pos.y + 50) / 100)); _local5 = Math.floor(((player.pos.z + 50) / 100)); _local6 = true; _local7 = (_local5 - 1); while ((((_local7 >= 0)) && ((_local7 > (_local5 - 6))))) { if (((room.cells[_local3][_local4][_local7]) && ((room.cells[_local3][_local4][_local7].o is Selectable)))){ _local6 = false; if (((!((room.cells[_local3][_local4][_local7].o == select_platform))) && ((((((_local7 >= select_z)) || (!((_local3 == select_x))))) || (!((_local4 == select_y))))))){ if (select_platform){ select_platform.select(false); }; select_platform = room.cells[_local3][_local4][_local7].o; select_platform.select(true); select_x = _local3; select_y = _local4; select_z = _local7; break; }; }; _local7--; }; if (((_local6) && (select_platform))){ select_platform.select(false); select_platform = null; select_x = -1; select_y = -1; select_z = -1; }; if ((((((((_local3 >= 0)) && ((_local4 >= 0)))) && ((_local5 >= 0)))) && (room.cells[_local3][_local4][_local5]))){ _local8 = ((_local5 * 100) - player.pos.z); if (_local8 < 0){ if (!player.isJumped()){ if (room.cells[_local3][_local4][_local5].type == Room.CELL_NORMAL){ player.jump(1); } else { if (room.cells[_local3][_local4][_local5].type == Room.CELL_MONEYBOX){ player.jump(1); } else { if (room.cells[_local3][_local4][_local5].type == Room.CELL_JUMP){ if (Main.is_effects){ room.emitter_manager.add(new ExplosionEmitter({emitter:{life:0, max:30, pos:room.cells[_local3][_local4][_local5].o.getVisualObject().coords}, particle:{life_min:1, life_max:2, scale_begin:1, scale_end:3, blend:BlendMode.ADD, speed:1000, speed_rnd:new Point3D(0, 0, 1), pos_rnd:new Point3D(50, 50, 10)}, bitmaps:[{cls:ParticleBitmap3, width:16, height:16}]})); }; player.jump(2); Sfx.Sfx_Play("jump_mega"); } else { if (room.cells[_local3][_local4][_local5].type == Room.CELL_LAVA){ is_player_resurrection = true; player.die(); } else { if (room.cells[_local3][_local4][_local5].type == Room.CELL_EXIT){ if (stat.mode == "score"){ setVictory(); } else { if (stat.mode == "time"){ if (stat.score >= stat.score_max){ setVictory(); } else { player.jump(1); }; }; }; } else { if (room.cells[_local3][_local4][_local5].type == Room.CELL_TELEPORT){ } else { if (room.cells[_local3][_local4][_local5].type == Room.CELL_MONEY){ addScore(1); if (Main.is_effects){ room.emitter_manager.add(new ExplosionEmitter({emitter:{life:0, max:5, pos:room.cells[_local3][_local4][_local5].o.getVisualObject().coords}, particle:{life_min:1, life_max:2, scale_begin:2, scale_end:0.5, blend:BlendMode.NORMAL, speed:400, speed_rnd:new Point3D(0, 0, 1), pos_rnd:20}, bitmaps:[{cls:ParticleBitmap1, width:16, height:16}]})); }; Sfx.Sfx_Play("money"); room.cells[_local3][_local4][_local5].o.die(); room.cells[_local3][_local4][_local5] = null; } else { if (room.cells[_local3][_local4][_local5].type == Room.CELL_HIDE){ if (Main.is_effects){ room.emitter_manager.add(new ExplosionEmitter({emitter:{life:0, max:20, pos:room.cells[_local3][_local4][_local5].o.getVisualObject().coords}, particle:{life_min:2, life_max:5, scale_begin:3, scale_end:1, blend:BlendMode.ADD, speed:10, speed_rnd:new Point3D(0, 0, -1), pos_rnd:new Point3D(50, 50, 1)}, bitmaps:[{cls:ParticleBitmap0, width:16, height:16}]})); }; player.jump(); room.cells[_local3][_local4][_local5].o.die(); room.cells[_local3][_local4][_local5] = null; }; }; }; }; }; }; }; }; }; } else { if (player.isJumped()){ if (room.cells[_local3][_local4][_local5].type == Room.CELL_MONEYBOX){ if (room.cells[_local3][_local4][_local5].o.count > 0){ room.cells[_local3][_local4][_local5].o.count--; if (room.cells[_local3][_local4][_local5].o.count <= 0){ addScore(6); if (Main.is_effects){ room.emitter_manager.add(new ExplosionEmitter({emitter:{life:0, max:40, pos:room.cells[_local3][_local4][_local5].o.getVisualObject().coords}, particle:{life_min:2, life_max:5, scale_begin:5, scale_end:2, blend:BlendMode.ADD, speed:400, speed_rnd:new Point3D(0, 0, 1), pos_rnd:30}, bitmaps:[{cls:ParticleBitmap1, width:16, height:16}]})); }; Sfx.Sfx_Play("moneybox"); room.cells[_local3][_local4][_local5].o.die(); room.cells[_local3][_local4][_local5] = null; } else { addScore(1); if (Main.is_effects){ room.emitter_manager.add(new ExplosionEmitter({emitter:{life:0, max:10, pos:room.cells[_local3][_local4][_local5].o.getVisualObject().coords}, particle:{life_min:0.5, life_max:1, scale_begin:5, scale_end:2, blend:BlendMode.ADD, speed:400, speed_rnd:new Point3D(0, 0, 1), pos_rnd:30}, bitmaps:[{cls:ParticleBitmap1, width:16, height:16}]})); }; Sfx.Sfx_Play("money"); }; }; player.unjump(); } else { if (room.cells[_local3][_local4][_local5].type == Room.CELL_MONEY){ addScore(1); if (Main.is_effects){ room.emitter_manager.add(new ExplosionEmitter({emitter:{life:0, max:5, pos:room.cells[_local3][_local4][_local5].o.getVisualObject().coords}, particle:{life_min:1, life_max:2, scale_begin:2, scale_end:0.5, blend:BlendMode.NORMAL, speed:400, speed_rnd:new Point3D(0, 0, 1), pos_rnd:20}, bitmaps:[{cls:ParticleBitmap1, width:16, height:16}]})); }; Sfx.Sfx_Play("money"); room.cells[_local3][_local4][_local5].o.die(); room.cells[_local3][_local4][_local5] = null; } else { player.unjump(); }; }; }; }; }; if ((((player.pos.z < -100)) && (!(is_player_down)))){ is_player_down = true; Sfx.Sfx_Play("player_down"); }; if (player.pos.z < -2000){ is_player_resurrection = true; player.die(); }; if (((((!(is_exit_opened)) && ((stat.mode == "time")))) && ((stat.score >= stat.score_max)))){ openAllExits(); }; }; room.render(); if (guiCooldown.isComplete()){ guiCooldown.start(); }; guiCooldown.update(_local1); updateCamera(_local1); scene.calculate(); } override public function onMouseDown(_arg1:MouseEvent):void{ if (loading){ return; }; if (hint.isActive()){ hint.onAnyKeyPress(); return; }; } public function onEntityRemove(_arg1:EntityEvent):void{ var _local2:Object3D; _local2 = _arg1.entity.getVisualObject(); if (_local2){ scene.root.removeChild(_local2); }; if ((_arg1.entity is HidePlatform)){ stat.hide--; }; if ((((_arg1.entity is Selectable)) && ((_arg1.entity == select_platform)))){ select_platform = null; select_x = -1; select_y = -1; select_z = -1; }; if ((_arg1.entity is Player)){ player = null; if (is_player_resurrection){ if (stat.mode == "score"){ stat.life--; gui["life"][("life_" + stat.life)].alpha = 0; if (stat.life <= 0){ setGameover(); }; }; room.add(new Player({x:room.player_start.x, y:room.player_start.y, z:room.player_start.z})); is_player_resurrection = false; }; }; _arg1.entity.free(); } public static function play(_arg1:String):void{ Game.setState("fader", Game.MODE_FRONT, {color:0, state:"gameplay", attr:{name:_arg1, xml_str:GameXmlData.map[int(Game.getVar("map"))]}}); } public static function newGame():void{ Game.setVar("map", 0); Game.setVar("score", 0); Game.saveVars("autosave"); play("map0"); } } }//package state
Section 147
//Mainmenu (state.Mainmenu) package state { import flash.events.*; import elm.core.*; import flash.media.*; import flash.display.*; import elm.state.*; import elm.gfx.*; import flash.filters.*; public class Mainmenu extends State { private var GUI:Layer; private var gui:MovieClip; private var angle:Number;// = 0 public function Mainmenu(){ var m:MovieClip; angle = 0; super(); m = (Gfx.createMovie(Game.SYS, "gui.Sfx", "sound_control", {x:(640 - 16), y:(480 - 16)}) as MovieClip); m.stop(); if (Sfx.music_volume == 0){ m.gotoAndStop(2); }; (m["btn"] as SimpleButton).addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent){ if (Sfx.music_volume == 1){ _arg1.currentTarget.parent.gotoAndStop(2); Sfx.music_volume = 0; Sfx.sound_volume = 0; } else { _arg1.currentTarget.parent.gotoAndStop(1); Sfx.music_volume = 1; Sfx.sound_volume = 1; }; Game.setConfig("mute", Sfx.music_volume); }); Sfx.Music_Play("track0", true); } override public function init(_arg1=null):Boolean{ var m:DisplayObject; var attr = _arg1; GUI = Gfx.createLayer(null, "gui", 100, true); gui = (Gfx.createMovie(GUI, "gui.Mainmenu", "gui") as MovieClip); gui["btn_scoremode"].addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent){ Fader.start("scoremode", 0); }); gui["btn_timemode"].addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent){ Fader.start("timemode", 0); }); gui["btn_records"].addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent){ (Game.clip.parent as PreloaderClass).ShowLeaderboard(); }); gui["btn_moregames"].addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent){ Game.openUrl(Main.MOREGAMES_URL); }); (gui["karmateam"] as MovieClip).buttonMode = true; gui["karmateam"].addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent){ Game.openUrl(Main.KARMATEAM_URL); }); (gui["alternativa"] as MovieClip).buttonMode = true; gui["alternativa"].addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent){ Game.openUrl(Main.ALTERNATIVA_URL); }); gui["effects_control"].stop(); if (Main.is_effects == 0){ gui["effects_control"].gotoAndStop(2); }; (gui["effects_control"]["btn"] as SimpleButton).addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent){ if (Main.is_effects){ _arg1.currentTarget.parent.gotoAndStop(2); Main.is_effects = false; } else { _arg1.currentTarget.parent.gotoAndStop(1); Main.is_effects = true; }; Game.setConfig("effects", Main.is_effects); }); angle = 0; return (true); } override public function onMouseClick(_arg1:MouseEvent):void{ } override public function free():void{ gui = null; } override public function frame():void{ angle = (angle + (60 * Game.delta)); if (angle > 360){ angle = (angle - 360); }; gui["karmateam"]["logo"]["roll"].rotation = angle; } override public function onKeyDown(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == 32){ Game.loadVars("autosave"); }; } } }//package state
Section 148
//ScoreMode (state.ScoreMode) package state { import flash.events.*; import elm.core.*; import flash.media.*; import flash.display.*; import ui.*; import elm.state.*; import elm.gfx.*; public class ScoreMode extends State { private var GUI:Layer; private var gui:MovieClip; private var angle:Number;// = 0 public function ScoreMode(){ angle = 0; super(); } override public function init(_arg1=null):Boolean{ var attr = _arg1; GUI = Gfx.createLayer(null, "gui", 100, true); gui = (Gfx.createMovie(GUI, "gui.ScoreMode", "gui") as MovieClip); if (!Game.isSavedVars("autosave")){ (gui["btn_continue"] as SoundButton).enabled = false; gui["btn_continue"].alpha = 0.2; } else { gui["btn_continue"].addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent){ Game.loadVars("autosave"); Game.setVar("mode", "score"); Gameplay.play(("map" + int(Game.getVar("map")))); }); }; gui["btn_play"].addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent){ Game.setVar("mode", "score"); Gameplay.newGame(); }); gui["btn_mainmenu"].addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent){ Fader.start("mainmenu", 0); }); return (true); } override public function free():void{ gui = null; } } }//package state
Section 149
//TimeMode (state.TimeMode) package state { import flash.events.*; import elm.core.*; import flash.media.*; import flash.display.*; import elm.state.*; import flash.net.*; import elm.gfx.*; public class TimeMode extends State { private var GUI:Layer; private var gui:MovieClip; private var angle:Number;// = 0 public function TimeMode(){ angle = 0; super(); } override public function init(_arg1=null):Boolean{ var unlock:int; var i:int; var time:Number; var best:Number; var min:int; var attr = _arg1; GUI = Gfx.createLayer(null, "gui", 100, true); gui = (Gfx.createMovie(GUI, "gui.TimeMode", "gui") as MovieClip); gui["btn_mainmenu"].addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent){ Fader.start("mainmenu", 0); }); unlock = Math.max(int(Game.getConfig("unlock", 0)), 10); i = 0; while (i < 40) { gui[("map" + i)].stop(); if (unlock > i){ gui[("map" + i)].num = i; gui[("map" + i)].gotoAndStop(2); gui[("map" + i)]["btn"].addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent){ setLevel(_arg1.currentTarget.parent.num); }); time = Number(Game.getConfig((("map" + i) + "time"), 0)); best = Number(Game.getConfig((("map" + i) + "time_best"), ((30 * 60) + 30))); min = int((time / 60)); gui[("map" + i)]["t_time"].text = ((Main.formatTime(min) + ":") + Main.formatTime(int((time - (min * 60))))); min = int((best / 60)); gui[("map" + i)]["t_best"].text = ((Main.formatTime(min) + ":") + Main.formatTime(int((best - (min * 60))))); } else { gui[("map" + i)]["btn"].enabled = false; gui[("map" + i)]["t_time"].text = ""; gui[("map" + i)]["t_best"].text = ""; }; i = (i + 1); }; Main.exchangeDataFromServer("load", Main.DATASERVER_URL, onLoad); return (true); } public function setLevel(_arg1:int):void{ Game.setVar("mode", "time"); Game.setVar("map", _arg1); Game.setVar("score", 0); Gameplay.play(("map" + _arg1)); } override public function free():void{ gui = null; } protected function onLoad(_arg1:Event):void{ var loader:URLLoader; var xml:XML; var unlock:int; var map:int; var i:int; var best:Number; var min:int; var e = _arg1; if (this != Game.getState()){ return; }; loader = (e.target as URLLoader); xml = null; try { xml = new XML(loader.data); } catch(err:Error) { return; }; unlock = Math.max(int(Game.getConfig("unlock", 0)), 10); i = 0; while (i < xml.map.length()) { map = int(xml.map[i].@num); if (unlock > map){ best = Number(xml.map[i].@time); Game.setConfig((("map" + map) + "time_best"), best); min = int((best / 60)); gui[("map" + map)]["t_best"].text = ((Main.formatTime(min) + ":") + Main.formatTime(int((best - (min * 60))))); }; i = (i + 1); }; } } }//package state
Section 150
//Victory (state.Victory) package state { import flash.events.*; import elm.core.*; import flash.media.*; import flash.display.*; import elm.state.*; import flash.net.*; import elm.gfx.*; import flash.filters.*; import flash.ui.*; public class Victory extends State { private var GUI:Layer; private var gui:MovieClip; private var angle:Number;// = 0 public function Victory(){ angle = 0; super(); } override public function init(_arg1=null):Boolean{ var mode:String; var map:int; var score:int; var life:int; var hide:int; var space:int; var vic:Boolean; var time:Number; var time_best:Number; var is_best:Boolean; var min:int; var attr = _arg1; GUI = Gfx.createLayer(null, "gui", 100, true); gui = (Gfx.createMovie(GUI, "gui.Victory", "gui") as MovieClip); gui["label"].stop(); gui["time_msg"].stop(); gui["btn_mainmenu"].addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent){ Fader.start("mainmenu", 0); }); mode = String(Game.getVar("mode")); map = int(Game.getVar("map")); if (mode == "score"){ Game.setConfig("unlock", map); }; map = (map - 1); score = int(Game.getVar("score")); if (mode == "score"){ life = int(Game.getVar("life")); hide = int(Game.getVar("hide")); space = int(Game.getVar("space")); gui["btn_select"].y = 1000; gui["score"]["t_score"].text = score; gui["bonus"]["t_hide"].text = ("Platform bonus - " + (hide * 5)); if (space < 10){ gui["bonus"]["t_space"].text = ("Camera bonus - " + ((10 - space) * 50)); } else { gui["bonus"]["t_space"].text = "Camera bonus - 0"; }; gui["bonus"]["t_life"].text = ("Life bonus - " + (life * 100)); vic = false; if (map >= (Main.MAP_MAX - 1)){ vic = true; }; if (!vic){ gui["btn_submit"].y = 1000; gui["btn_next"].addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent){ Gameplay.play(("map" + int(Game.getVar("map")))); }); } else { gui["label"].gotoAndStop(2); gui["btn_next"].y = 1000; gui["btn_submit"].addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent){ var e = _arg1; if (Main.score_api.isDone()){ Main.score_api.submitScore(score); }; (Game.clip.parent as PreloaderMochi).ShowLeaderboard(score, function (){ Fader.start("mainmenu", 0); }); }); Game.clearSavesVars("autosave"); }; } else { if (mode == "time"){ time = Number(Game.getVar("time")); time_best = Number(Game.getConfig((("map" + map) + "time_best"), ((30 * 60) + 30))); is_best = false; if (time < time_best){ time_best = time; is_best = true; Game.setConfig((("map" + map) + "time_best"), time_best); Main.exchangeDataFromServer(((((int((Math.random() * 999)) + "|") + int(((time * 1000) + 753))) + "|") + int(((map * 246) - 135))), Main.DATASERVER_URL, onLoad); }; Game.setConfig((("map" + map) + "time"), time); if (is_best){ gui["time_msg"].gotoAndStop(3); } else { gui["time_msg"].gotoAndStop(2); }; min = int((time / 60)); gui["score"]["t_score"].text = ((Main.formatTime(min) + ":") + Main.formatTime(int((time - (min * 60))))); gui["btn_submit"].y = 1000; gui["btn_next"].y = 1000; gui["bonus"].y = 1000; gui["btn_select"].addEventListener(MouseEvent.CLICK, function (_arg1:MouseEvent){ Fader.start("timemode", 0); }); }; }; return (true); } override public function free():void{ gui = null; } protected function onLoad(_arg1:Event):void{ var _local2:URLLoader; _local2 = (_arg1.target as URLLoader); } override public function onKeyDown(_arg1:KeyboardEvent):void{ var _local2:String; if ((((_arg1.keyCode == Keyboard.SPACE)) || ((_arg1.keyCode == Keyboard.ENTER)))){ _local2 = String(Game.getVar("mode")); if (_local2 == "score"){ Gameplay.play(("map" + int(Game.getVar("map")))); } else { if (_local2 == "time"){ Fader.start("timemode", 0); }; }; }; } } }//package state
Section 151
//XmlLoader (state.XmlLoader) package state { import elm.state.*; public class XmlLoader extends XmlLoaderState { override public function init(_arg1=null):Boolean{ if (!super.init(_arg1)){ return (false); }; return (true); } override public function free():void{ } override public function getServerUrl():String{ return ("http://tools/"); } override public function getXmlPath():String{ return ("jumpoo"); } } }//package state
Section 152
//SoundButton (ui.SoundButton) package ui { import flash.events.*; import elm.core.*; import flash.display.*; public class SoundButton extends SimpleButton { public function SoundButton(){ this.addEventListener(MouseEvent.CLICK, this.onSoundClick); this.addEventListener(MouseEvent.ROLL_OVER, this.onSoundRollOver); } public function onSoundRollOver(_arg1:MouseEvent):void{ if (enabled){ Sfx.Sound_Play("over"); }; } public function onSoundClick(_arg1:MouseEvent):void{ } } }//package ui
Section 153
//CellsBitmap (CellsBitmap) package { import flash.display.*; public dynamic class CellsBitmap extends BitmapData { public function CellsBitmap(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 154
//exit_open (exit_open) package { import flash.media.*; public dynamic class exit_open extends Sound { } }//package
Section 155
//export_Main (export_Main) package { public dynamic class export_Main extends Main { } }//package
Section 156
//export_Textures (export_Textures) package { import flash.display.*; public dynamic class export_Textures extends MovieClip { } }//package
Section 157
//fanfare_0 (fanfare_0) package { import flash.media.*; public dynamic class fanfare_0 extends Sound { } }//package
Section 158
//fanfare_1 (fanfare_1) package { import flash.media.*; public dynamic class fanfare_1 extends Sound { } }//package
Section 159
//fanfare_2 (fanfare_2) package { import flash.media.*; public dynamic class fanfare_2 extends Sound { } }//package
Section 160
//jump_0 (jump_0) package { import flash.media.*; public dynamic class jump_0 extends Sound { } }//package
Section 161
//jump_1 (jump_1) package { import flash.media.*; public dynamic class jump_1 extends Sound { } }//package
Section 162
//jump_2 (jump_2) package { import flash.media.*; public dynamic class jump_2 extends Sound { } }//package
Section 163
//jump_mega (jump_mega) package { import flash.media.*; public dynamic class jump_mega extends Sound { } }//package
Section 164
//karmateam_logo (karmateam_logo) package { import flash.display.*; public dynamic class karmateam_logo extends MovieClip { public var logo:MovieClip; } }//package
Section 165
//Main (Main) package { import flash.events.*; import elm.core.*; import flash.media.*; import flash.display.*; import elm.apis.*; import state.*; import elm.state.*; import flash.net.*; import flash.system.*; public class Main extends RootLayer { public static const MAP_MAX:int = 40; public static const KARMATEAM_URL:String = "http://team.elmortem.ru"; public static const ALTERNATIVA_URL:String = "http://alternativaplatform.com"; public static const MOREGAMES_URL:String = "http://team.elmortem.ru"; public static const DATASERVER_URL:String = "http://team.elmortem.ru/jumpix/jumpix.php"; public static var score_api:ScoreApi = null; public static var is_effects:Boolean = true; override public function init():void{ super.init(); MochiBot.track(this, "13699dbc"); if (Game.isUrl(["kongregate.com"])){ score_api = new Kongregate(); } else { score_api = new MindJolt(); }; score_api.connect(); Sfx.music_volume = (Sfx.sound_volume = Number(Game.getConfig("mute", 1))); is_effects = Boolean(Game.getConfig("effects", true)); Game.Debug = false; Game.is_stable_fps = true; Game.addState("fader", new Fader()); Game.addState("mainmenu", new Mainmenu()); Game.addState("scoremode", new ScoreMode()); Game.addState("timemode", new TimeMode()); Game.addState("xmlloader", new XmlLoader()); Game.addState("gameplay", new Gameplay()); Game.addState("victory", new Victory()); Game.addState("gameover", new Gameover()); Fader.start("mainmenu", 0, 1); Sfx.Sfx_Add("fanfare", ["fanfare_0", "fanfare_1", "fanfare_2"]); Sfx.Sfx_Add("jump", ["jump_0", "jump_1", "jump_2"]); Sfx.Sfx_Add("jump_mega", "jump_mega"); Sfx.Sfx_Add("moneybox", "moneybox"); Sfx.Sfx_Add("money", "money"); Sfx.Sfx_Add("player_down", "player_down"); } public static function exchangeDataFromServer(_arg1:String, _arg2:String, _arg3:Function=null):void{ var _local4:URLVariables; var _local5:URLRequest; var _local6:URLLoader; _local4 = new URLVariables(); _local4.data = _arg1; _local4.random = Math.floor((Math.random() * int.MAX_VALUE)); _local5 = new URLRequest(_arg2); Security.allowDomain(_local5.url); _local5.data = _local4; _local5.method = URLRequestMethod.POST; _local6 = new URLLoader(); _local6.dataFormat = URLLoaderDataFormat.TEXT; if (_arg3){ _local6.addEventListener(Event.COMPLETE, _arg3); }; _local6.load(_local5); } public static function formatTime(_arg1:int):String{ if (_arg1 > 9){ return (String(_arg1)); }; return (("0" + _arg1)); } } }//package
Section 166
//MochiBot (MochiBot) package { import flash.display.*; import flash.net.*; import flash.system.*; public dynamic class MochiBot extends Sprite { public static function track(_arg1:Sprite, _arg2:String):MochiBot{ var _local3:MochiBot; var _local4:String; var _local5:URLVariables; var _local6:String; var _local7:URLRequest; var _local8:Loader; if (Security.sandboxType == "localWithFile"){ return (null); }; _local3 = new (MochiBot); _arg1.addChild(_local3); Security.allowDomain("*"); Security.allowInsecureDomain("*"); _local4 = "http://core.mochibot.com/my/core.swf"; _local5 = new URLVariables(); _local5["sb"] = Security.sandboxType; _local5["v"] = Capabilities.version; _local5["swfid"] = _arg2; _local5["mv"] = "8"; _local5["fv"] = "9"; _local6 = _local3.root.loaderInfo.loaderURL; if (_local6.indexOf("http") == 0){ _local5["url"] = _local6; } else { _local5["url"] = "local"; }; _local7 = new URLRequest(_local4); _local7.contentType = "application/x-www-form-urlencoded"; _local7.method = URLRequestMethod.POST; _local7.data = _local5; _local8 = new Loader(); _local3.addChild(_local8); _local8.load(_local7); return (_local3); } } }//package
Section 167
//money (money) package { import flash.media.*; public dynamic class money extends Sound { } }//package
Section 168
//moneybox (moneybox) package { import flash.media.*; public dynamic class moneybox extends Sound { } }//package
Section 169
//over (over) package { import flash.media.*; public dynamic class over extends Sound { } }//package
Section 170
//ParticleBitmap0 (ParticleBitmap0) package { import flash.display.*; public dynamic class ParticleBitmap0 extends BitmapData { public function ParticleBitmap0(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 171
//ParticleBitmap1 (ParticleBitmap1) package { import flash.display.*; public dynamic class ParticleBitmap1 extends BitmapData { public function ParticleBitmap1(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 172
//ParticleBitmap2 (ParticleBitmap2) package { import flash.display.*; public dynamic class ParticleBitmap2 extends BitmapData { public function ParticleBitmap2(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 173
//ParticleBitmap2_0 (ParticleBitmap2_0) package { import flash.display.*; public dynamic class ParticleBitmap2_0 extends BitmapData { public function ParticleBitmap2_0(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 174
//ParticleBitmap2_1 (ParticleBitmap2_1) package { import flash.display.*; public dynamic class ParticleBitmap2_1 extends BitmapData { public function ParticleBitmap2_1(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 175
//ParticleBitmap2_2 (ParticleBitmap2_2) package { import flash.display.*; public dynamic class ParticleBitmap2_2 extends BitmapData { public function ParticleBitmap2_2(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 176
//ParticleBitmap3 (ParticleBitmap3) package { import flash.display.*; public dynamic class ParticleBitmap3 extends BitmapData { public function ParticleBitmap3(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 177
//ParticleBitmap4 (ParticleBitmap4) package { import flash.display.*; public dynamic class ParticleBitmap4 extends BitmapData { public function ParticleBitmap4(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 178
//ParticleBitmap4_0 (ParticleBitmap4_0) package { import flash.display.*; public dynamic class ParticleBitmap4_0 extends BitmapData { public function ParticleBitmap4_0(_arg1:Number, _arg2:Number){ super(_arg1, _arg2); } } }//package
Section 179
//player_down (player_down) package { import flash.media.*; public dynamic class player_down extends Sound { } }//package
Section 180
//PreloaderClass (PreloaderClass) package { import flash.display.*; import flash.events.*; import elm.core.*; public dynamic class PreloaderClass extends PreloaderMochi { public function PreloaderClass(){ addFrameScript(2, frame3); } override public function onProgress(_arg1:Number):void{ } function frame3(){ stop(); } override public function GetDocumentClass():String{ return ("Main"); } override public function GetMochiObject():Object{ return ({id:"e1c0c6de06f62213", res:"640x480", background:0xFFFFFF, color:65331, outline:0, no_bg:true}); } override public function GetMochiLeaderBoardId():String{ var o:Object; o = {n:[8, 4, 0, 12, 14, 0, 4, 6, 9, 2, 13, 1, 8, 1, 2, 6], f:function (_arg1:Number, _arg2:String):String{ if (_arg2.length == 16){ return (_arg2); }; return (this.f((_arg1 + 1), (_arg2 + this.n[_arg1].toString(16)))); }}; return (o.f(0, "")); } override public function GetNoProgressBar():Boolean{ return (false); } } }//package
Section 181
//track0 (track0) package { import flash.media.*; public dynamic class track0 extends Sound { } }//package

Library Items

Symbol 1 Bitmap {CellsBitmap}
Symbol 2 GraphicUsed by:9
Symbol 3 GraphicUsed by:4
Symbol 4 Button {edt.Btn}Uses:3Used by:9
Symbol 5 FontUsed by:6 7 8
Symbol 6 EditableTextUses:5Used by:9
Symbol 7 EditableTextUses:5Used by:9
Symbol 8 EditableTextUses:5Used by:9
Symbol 9 MovieClip {edt.Gui}Uses:2 4 6 7 8
Symbol 10 BitmapUsed by:11
Symbol 11 GraphicUses:10Used by:20
Symbol 12 BitmapUsed by:13
Symbol 13 GraphicUses:12Used by:14
Symbol 14 MovieClipUses:13Used by:20
Symbol 15 GraphicUsed by:19
Symbol 16 FontUsed by:17 51 65 67 71 81 114 116 171 182
Symbol 17 TextUses:16Used by:19
Symbol 18 GraphicUsed by:19 83
Symbol 19 ButtonUses:15 17 18Used by:20
Symbol 20 MovieClip {gui.Sfx}Uses:11 14 19Used by:178
Symbol 21 MovieClip {export_Main}Used by:216
Symbol 22 Bitmap {ParticleBitmap0}Used by:31
Symbol 23 Bitmap {ParticleBitmap1}Used by:31
Symbol 24 Bitmap {ParticleBitmap2}Used by:31
Symbol 25 Bitmap {ParticleBitmap3}Used by:31
Symbol 26 Bitmap {ParticleBitmap4}Used by:31
Symbol 27 Bitmap {ParticleBitmap2_0}Used by:31
Symbol 28 Bitmap {ParticleBitmap2_1}Used by:31
Symbol 29 Bitmap {ParticleBitmap2_2}Used by:31
Symbol 30 Bitmap {ParticleBitmap4_0}Used by:31
Symbol 31 MovieClip {export_Textures}Uses:22 23 24 25 26 27 28 29 30Used by:216
Symbol 32 FontUsed by:33 35 36 37 38 51 65 67 69 71 88 89 91 93 95 97 98 100 102 103 104 107 109 112 114 116 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 165 166 173 176
Symbol 33 EditableTextUses:32Used by:34
Symbol 34 MovieClip {jumpoo_fla.gfx_score_6}Uses:33Used by:43 106
Symbol 35 TextUses:32Used by:39
Symbol 36 TextUses:32Used by:39
Symbol 37 EditableTextUses:32Used by:39
Symbol 38 EditableTextUses:32Used by:39
Symbol 39 MovieClip {jumpoo_fla.gfx_statistic_7}Uses:35 36 37 38Used by:43
Symbol 40 GraphicUsed by:41
Symbol 41 MovieClipUses:40Used by:42
Symbol 42 MovieClip {jumpoo_fla.gfx_life_bar_8}Uses:41Used by:43
Symbol 43 MovieClip {gui.Gameplay}Uses:34 39 42Used by:178
Symbol 44 GraphicUsed by:47 175
Symbol 45 GraphicUsed by:46
Symbol 46 MovieClipUses:45Used by:47
Symbol 47 MovieClip {gui.Loading}Uses:44 46Used by:178
Symbol 48 BitmapUsed by:50 87
Symbol 49 BitmapUsed by:50
Symbol 50 GraphicUses:48 49Used by:86
Symbol 51 EditableTextUses:16 32Used by:55
Symbol 52 GraphicUsed by:55 66 68 72 92 94 96 101 110 115 117 174
Symbol 53 GraphicUsed by:55 66 68 72 92 94 96 101 110 115 117 174
Symbol 54 GraphicUsed by:55 66 68 72 92 94 96 101 110 115 117 174
Symbol 55 Button {gui.BtnTimeMode}Uses:51 52 53 54Used by:86
Symbol 56 GraphicUsed by:59
Symbol 57 GraphicUsed by:58
Symbol 58 MovieClipUses:57Used by:59
Symbol 59 MovieClip {jumpoo_fla.karmateam_prialka_15}Uses:56 58Used by:64
Symbol 60 FontUsed by:61 62
Symbol 61 TextUses:60Used by:63
Symbol 62 TextUses:60Used by:63
Symbol 63 MovieClipUses:61 62Used by:64
Symbol 64 MovieClip {karmateam_logo}Uses:59 63Used by:86
Symbol 65 EditableTextUses:16 32Used by:66
Symbol 66 Button {gui.BtnScores}Uses:65 52 53 54Used by:86
Symbol 67 EditableTextUses:16 32Used by:68
Symbol 68 Button {gui.BtnMoreGames}Uses:67 52 53 54Used by:86
Symbol 69 TextUses:32Used by:70
Symbol 70 MovieClipUses:69Used by:86
Symbol 71 EditableTextUses:16 32Used by:72
Symbol 72 Button {gui.BtnScoreMode}Uses:71 52 53 54Used by:86
Symbol 73 BitmapUsed by:74
Symbol 74 GraphicUses:73Used by:75
Symbol 75 MovieClipUses:74Used by:86
Symbol 76 FontUsed by:77 168
Symbol 77 TextUses:76Used by:86
Symbol 78 GraphicUsed by:85
Symbol 79 GraphicUsed by:83
Symbol 80 GraphicUsed by:83
Symbol 81 TextUses:16Used by:83
Symbol 82 GraphicUsed by:83
Symbol 83 Button {gui.BtnGfx}Uses:79 80 81 82 18Used by:85
Symbol 84 GraphicUsed by:85
Symbol 85 MovieClip {gui.Gfx}Uses:78 83 84Used by:86
Symbol 86 MovieClip {gui.Mainmenu}Uses:50 55 64 66 68 70 72 75 77 85Used by:178
Symbol 87 GraphicUses:48Used by:106 111 118
Symbol 88 TextUses:32Used by:90
Symbol 89 TextUses:32Used by:90
Symbol 90 MovieClipUses:88 89Used by:106
Symbol 91 TextUses:32Used by:92
Symbol 92 Button {gui.BtnNext}Uses:91 52 53 54Used by:106
Symbol 93 TextUses:32Used by:94
Symbol 94 Button {gui.BtnSubmit}Uses:93 52 53 54Used by:106
Symbol 95 TextUses:32Used by:96
Symbol 96 Button {gui.BtnMainmenu}Uses:95 52 53 54Used by:106 111 118 170 175
Symbol 97 TextUses:32Used by:99
Symbol 98 TextUses:32Used by:99
Symbol 99 MovieClipUses:97 98Used by:106
Symbol 100 TextUses:32Used by:101
Symbol 101 Button {gui.BtnSelectLevel}Uses:100 52 53 54Used by:106
Symbol 102 EditableTextUses:32Used by:105
Symbol 103 EditableTextUses:32Used by:105
Symbol 104 EditableTextUses:32Used by:105
Symbol 105 MovieClip {jumpoo_fla.gfx_bonus_32}Uses:102 103 104Used by:106
Symbol 106 MovieClip {gui.Victory}Uses:87 90 92 34 94 96 99 101 105Used by:178
Symbol 107 TextUses:32Used by:108
Symbol 108 MovieClipUses:107Used by:111
Symbol 109 TextUses:32Used by:110
Symbol 110 Button {gui.BtnReplay}Uses:109 52 53 54Used by:111
Symbol 111 MovieClip {gui.Gameover}Uses:87 96 108 110Used by:178
Symbol 112 TextUses:32Used by:113
Symbol 113 MovieClipUses:112Used by:118
Symbol 114 EditableTextUses:16 32Used by:115
Symbol 115 Button {gui.BtnPlay}Uses:114 52 53 54Used by:118
Symbol 116 EditableTextUses:16 32Used by:117
Symbol 117 Button {gui.BtnContinue}Uses:116 52 53 54Used by:118
Symbol 118 MovieClip {gui.ScoreMode}Uses:87 96 113 115 117Used by:178
Symbol 119 TextUses:32Used by:170
Symbol 120 TextUses:32Used by:170
Symbol 121 TextUses:32Used by:170
Symbol 122 TextUses:32Used by:170
Symbol 123 TextUses:32Used by:170
Symbol 124 TextUses:32Used by:170
Symbol 125 TextUses:32Used by:170
Symbol 126 TextUses:32Used by:170
Symbol 127 TextUses:32Used by:170
Symbol 128 TextUses:32Used by:170
Symbol 129 TextUses:32Used by:170
Symbol 130 TextUses:32Used by:170
Symbol 131 TextUses:32Used by:170
Symbol 132 TextUses:32Used by:170
Symbol 133 TextUses:32Used by:170
Symbol 134 TextUses:32Used by:170
Symbol 135 TextUses:32Used by:170
Symbol 136 TextUses:32Used by:170
Symbol 137 TextUses:32Used by:170
Symbol 138 TextUses:32Used by:170
Symbol 139 TextUses:32Used by:170
Symbol 140 TextUses:32Used by:170
Symbol 141 TextUses:32Used by:170
Symbol 142 TextUses:32Used by:170
Symbol 143 TextUses:32Used by:170
Symbol 144 TextUses:32Used by:170
Symbol 145 TextUses:32Used by:170
Symbol 146 TextUses:32Used by:170
Symbol 147 TextUses:32Used by:170
Symbol 148 TextUses:32Used by:170
Symbol 149 TextUses:32Used by:170
Symbol 150 TextUses:32Used by:170
Symbol 151 TextUses:32Used by:170
Symbol 152 TextUses:32Used by:170
Symbol 153 TextUses:32Used by:170
Symbol 154 TextUses:32Used by:170
Symbol 155 TextUses:32Used by:170
Symbol 156 TextUses:32Used by:170
Symbol 157 TextUses:32Used by:170
Symbol 158 TextUses:32Used by:170
Symbol 159 GraphicUsed by:160
Symbol 160 MovieClipUses:159Used by:167
Symbol 161 GraphicUsed by:164
Symbol 162 GraphicUsed by:164
Symbol 163 GraphicUsed by:164
Symbol 164 Button {gui.BtnNumLevelBtn}Uses:161 162 163Used by:167
Symbol 165 EditableTextUses:32Used by:167
Symbol 166 EditableTextUses:32Used by:167
Symbol 167 MovieClip {gui.BtnLevel}Uses:160 164 165 166Used by:170
Symbol 168 TextUses:76Used by:169
Symbol 169 MovieClipUses:168Used by:170
Symbol 170 MovieClip {gui.TimeMode}Uses:119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 167 96 169Used by:178
Symbol 171 TextUses:16Used by:172
Symbol 172 MovieClipUses:171Used by:175
Symbol 173 TextUses:32Used by:174
Symbol 174 Button {gui.BtnResume}Uses:173 52 53 54Used by:175
Symbol 175 MovieClip {gui.Pause}Uses:44 172 96 174Used by:178
Symbol 176 EditableTextUses:32Used by:177
Symbol 177 MovieClip {gui.MapTitle}Uses:176Used by:178
Symbol 178 MovieClipUses:43 47 86 106 111 20 118 170 175 177Used by:216
Symbol 179 GraphicUsed by:183 185 187 189 191 193 195 197 199
Symbol 180 FontUsed by:181 184 186 188 190 192 194 196 198
Symbol 181 TextUses:180Used by:183
Symbol 182 TextUses:16Used by:183 185 187 189 191 193 195 197 199
Symbol 183 MovieClip {gui.Hint0}Uses:179 181 182Used by:200
Symbol 184 TextUses:180Used by:185
Symbol 185 MovieClip {gui.Hint1}Uses:179 184 182Used by:200
Symbol 186 TextUses:180Used by:187
Symbol 187 MovieClip {gui.Hint2}Uses:179 186 182Used by:200
Symbol 188 TextUses:180Used by:189
Symbol 189 MovieClip {gui.Hint3}Uses:179 188 182Used by:200
Symbol 190 TextUses:180Used by:191
Symbol 191 MovieClip {gui.Hint4}Uses:179 190 182Used by:200
Symbol 192 TextUses:180Used by:193
Symbol 193 MovieClip {gui.Hint5}Uses:179 192 182Used by:200
Symbol 194 TextUses:180Used by:195
Symbol 195 MovieClip {gui.Hint6}Uses:179 194 182Used by:200
Symbol 196 TextUses:180Used by:197
Symbol 197 MovieClip {gui.Hint7}Uses:179 196 182Used by:200
Symbol 198 TextUses:180Used by:199
Symbol 199 MovieClip {gui.Hint11}Uses:179 198 182Used by:200
Symbol 200 MovieClipUses:183 185 187 189 191 193 195 197 199Used by:216
Symbol 201 GraphicUsed by:215
Symbol 202 Sound {track0}Used by:215
Symbol 203 Sound {player_down}Used by:215
Symbol 204 Sound {fanfare_0}Used by:215
Symbol 205 Sound {over}Used by:215
Symbol 206 Sound {money}Used by:215
Symbol 207 Sound {jump_0}Used by:215
Symbol 208 Sound {fanfare_1}Used by:215
Symbol 209 Sound {moneybox}Used by:215
Symbol 210 Sound {jump_1}Used by:215
Symbol 211 Sound {fanfare_2}Used by:215
Symbol 212 Sound {exit_open}Used by:215
Symbol 213 Sound {jump_2}Used by:215
Symbol 214 Sound {jump_mega}Used by:215
Symbol 215 MovieClipUses:201 202 203 204 205 206 207 208 209 210 211 212 213 214Used by:216
Symbol 216 MovieClip {jumpoo_fla.export_1}Uses:21 31 178 200 215Used by:Timeline

Instance Names

"btn_free"Symbol 9 MovieClip {edt.Gui} Frame 1Symbol 4 Button {edt.Btn}
"btn_platform"Symbol 9 MovieClip {edt.Gui} Frame 1Symbol 4 Button {edt.Btn}
"btn_jump"Symbol 9 MovieClip {edt.Gui} Frame 1Symbol 4 Button {edt.Btn}
"btn_save"Symbol 9 MovieClip {edt.Gui} Frame 1Symbol 4 Button {edt.Btn}
"btn_load"Symbol 9 MovieClip {edt.Gui} Frame 1Symbol 4 Button {edt.Btn}
"t_map"Symbol 9 MovieClip {edt.Gui} Frame 1Symbol 6 EditableText
"t_name"Symbol 9 MovieClip {edt.Gui} Frame 1Symbol 7 EditableText
"btn_remove"Symbol 9 MovieClip {edt.Gui} Frame 1Symbol 4 Button {edt.Btn}
"btn_lava"Symbol 9 MovieClip {edt.Gui} Frame 1Symbol 4 Button {edt.Btn}
"btn_teleport"Symbol 9 MovieClip {edt.Gui} Frame 1Symbol 4 Button {edt.Btn}
"btn_exit"Symbol 9 MovieClip {edt.Gui} Frame 1Symbol 4 Button {edt.Btn}
"btn_player"Symbol 9 MovieClip {edt.Gui} Frame 1Symbol 4 Button {edt.Btn}
"t_value"Symbol 9 MovieClip {edt.Gui} Frame 1Symbol 8 EditableText
"btn_moneybox"Symbol 9 MovieClip {edt.Gui} Frame 1Symbol 4 Button {edt.Btn}
"btn_money"Symbol 9 MovieClip {edt.Gui} Frame 1Symbol 4 Button {edt.Btn}
"btn_hide"Symbol 9 MovieClip {edt.Gui} Frame 1Symbol 4 Button {edt.Btn}
"btn"Symbol 20 MovieClip {gui.Sfx} Frame 1Symbol 19 Button
"t_score"Symbol 34 MovieClip {jumpoo_fla.gfx_score_6} Frame 1Symbol 33 EditableText
"t_best"Symbol 39 MovieClip {jumpoo_fla.gfx_statistic_7} Frame 1Symbol 37 EditableText
"t_time"Symbol 39 MovieClip {jumpoo_fla.gfx_statistic_7} Frame 1Symbol 38 EditableText
"life_1"Symbol 42 MovieClip {jumpoo_fla.gfx_life_bar_8} Frame 1Symbol 41 MovieClip
"life_2"Symbol 42 MovieClip {jumpoo_fla.gfx_life_bar_8} Frame 1Symbol 41 MovieClip
"life_0"Symbol 42 MovieClip {jumpoo_fla.gfx_life_bar_8} Frame 1Symbol 41 MovieClip
"score"Symbol 43 MovieClip {gui.Gameplay} Frame 1Symbol 34 MovieClip {jumpoo_fla.gfx_score_6}
"stat"Symbol 43 MovieClip {gui.Gameplay} Frame 1Symbol 39 MovieClip {jumpoo_fla.gfx_statistic_7}
"life"Symbol 43 MovieClip {gui.Gameplay} Frame 1Symbol 42 MovieClip {jumpoo_fla.gfx_life_bar_8}
"bar"Symbol 47 MovieClip {gui.Loading} Frame 1Symbol 46 MovieClip
"roll"Symbol 59 MovieClip {jumpoo_fla.karmateam_prialka_15} Frame 1Symbol 58 MovieClip
"logo"Symbol 64 MovieClip {karmateam_logo} Frame 1Symbol 59 MovieClip {jumpoo_fla.karmateam_prialka_15}
"btn"Symbol 85 MovieClip {gui.Gfx} Frame 1Symbol 83 Button {gui.BtnGfx}
"btn_timemode"Symbol 86 MovieClip {gui.Mainmenu} Frame 1Symbol 55 Button {gui.BtnTimeMode}
"karmateam"Symbol 86 MovieClip {gui.Mainmenu} Frame 1Symbol 64 MovieClip {karmateam_logo}
"btn_records"Symbol 86 MovieClip {gui.Mainmenu} Frame 1Symbol 66 Button {gui.BtnScores}
"btn_moregames"Symbol 86 MovieClip {gui.Mainmenu} Frame 1Symbol 68 Button {gui.BtnMoreGames}
"btn_scoremode"Symbol 86 MovieClip {gui.Mainmenu} Frame 1Symbol 72 Button {gui.BtnScoreMode}
"alternativa"Symbol 86 MovieClip {gui.Mainmenu} Frame 1Symbol 75 MovieClip
"effects_control"Symbol 86 MovieClip {gui.Mainmenu} Frame 1Symbol 85 MovieClip {gui.Gfx}
"t_hide"Symbol 105 MovieClip {jumpoo_fla.gfx_bonus_32} Frame 1Symbol 102 EditableText
"t_space"Symbol 105 MovieClip {jumpoo_fla.gfx_bonus_32} Frame 1Symbol 103 EditableText
"t_life"Symbol 105 MovieClip {jumpoo_fla.gfx_bonus_32} Frame 1Symbol 104 EditableText
"label"Symbol 106 MovieClip {gui.Victory} Frame 1Symbol 90 MovieClip
"btn_next"Symbol 106 MovieClip {gui.Victory} Frame 1Symbol 92 Button {gui.BtnNext}
"score"Symbol 106 MovieClip {gui.Victory} Frame 1Symbol 34 MovieClip {jumpoo_fla.gfx_score_6}
"btn_submit"Symbol 106 MovieClip {gui.Victory} Frame 1Symbol 94 Button {gui.BtnSubmit}
"btn_mainmenu"Symbol 106 MovieClip {gui.Victory} Frame 1Symbol 96 Button {gui.BtnMainmenu}
"time_msg"Symbol 106 MovieClip {gui.Victory} Frame 1Symbol 99 MovieClip
"btn_select"Symbol 106 MovieClip {gui.Victory} Frame 1Symbol 101 Button {gui.BtnSelectLevel}
"bonus"Symbol 106 MovieClip {gui.Victory} Frame 1Symbol 105 MovieClip {jumpoo_fla.gfx_bonus_32}
"btn_mainmenu"Symbol 111 MovieClip {gui.Gameover} Frame 1Symbol 96 Button {gui.BtnMainmenu}
"btn_replay"Symbol 111 MovieClip {gui.Gameover} Frame 1Symbol 110 Button {gui.BtnReplay}
"btn_mainmenu"Symbol 118 MovieClip {gui.ScoreMode} Frame 1Symbol 96 Button {gui.BtnMainmenu}
"btn_play"Symbol 118 MovieClip {gui.ScoreMode} Frame 1Symbol 115 Button {gui.BtnPlay}
"btn_continue"Symbol 118 MovieClip {gui.ScoreMode} Frame 1Symbol 117 Button {gui.BtnContinue}
"btn"Symbol 167 MovieClip {gui.BtnLevel} Frame 1Symbol 164 Button {gui.BtnNumLevelBtn}
"t_best"Symbol 167 MovieClip {gui.BtnLevel} Frame 1Symbol 165 EditableText
"t_time"Symbol 167 MovieClip {gui.BtnLevel} Frame 1Symbol 166 EditableText
"map0"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map1"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map2"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map3"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map4"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map5"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map6"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map7"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map8"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map9"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map10"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map11"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map12"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map13"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map14"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map15"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map16"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map17"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map18"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map19"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map20"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map21"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map22"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map23"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map24"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map25"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map26"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map27"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map28"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map29"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map30"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map31"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map32"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map33"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map34"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map35"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map36"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map37"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map38"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"map39"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 167 MovieClip {gui.BtnLevel}
"btn_mainmenu"Symbol 170 MovieClip {gui.TimeMode} Frame 1Symbol 96 Button {gui.BtnMainmenu}
"btn_mainmenu"Symbol 175 MovieClip {gui.Pause} Frame 1Symbol 96 Button {gui.BtnMainmenu}
"btn_resume"Symbol 175 MovieClip {gui.Pause} Frame 1Symbol 174 Button {gui.BtnResume}
"t_title"Symbol 177 MovieClip {gui.MapTitle} Frame 1Symbol 176 EditableText

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata present, AS3.
SWFMetaData (77)Timeline Frame 1308 bytes "<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><rdf:Description rdf:about="" xmlns ..."
Protect (24)Timeline Frame 131 bytes "..$1$5u$V6UiQE6CDc4aq0/A0PXRF.."

Labels

"preloader"Frame 1
"export"Frame 2
"game"Frame 3
"main"Symbol 216 MovieClip {jumpoo_fla.export_1} Frame 2
"game"Symbol 216 MovieClip {jumpoo_fla.export_1} Frame 7
"texture"Symbol 216 MovieClip {jumpoo_fla.export_1} Frame 12
"gui"Symbol 216 MovieClip {jumpoo_fla.export_1} Frame 19
"hints"Symbol 216 MovieClip {jumpoo_fla.export_1} Frame 23
"sfx"Symbol 216 MovieClip {jumpoo_fla.export_1} Frame 28




http://swfchan.com/19/93295/info.shtml
Created: 27/3 -2019 00:23:30 Last modified: 27/3 -2019 00:23:30 Server time: 11/05 -2024 18:21:23