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